Migrate "base::TimeDelta::FromX" to "base:X".

All changes were done automatically with git grep, sed, xargs, etc.

No-Presubmit: true
No-Try: true
Bug: 1243777
Change-Id: I7cc197e9027f7837cd36afc67a209079f85ec364
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3198824
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Owners-Override: Peter Kasting <pkasting@chromium.org>
Reviewed-by: Peter Boström <pbos@chromium.org>
Cr-Commit-Position: refs/heads/main@{#927512}
diff --git a/android_webview/browser/aw_contents.cc b/android_webview/browser/aw_contents.cc
index 431b474..eade452 100644
--- a/android_webview/browser/aw_contents.cc
+++ b/android_webview/browser/aw_contents.cc
@@ -1146,8 +1146,7 @@
                                  jlong animation_time_millis) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
   browser_view_renderer_.OnComputeScroll(
-      base::TimeTicks() +
-      base::TimeDelta::FromMilliseconds(animation_time_millis));
+      base::TimeTicks() + base::Milliseconds(animation_time_millis));
 }
 
 jlong AwContents::ReleasePopupAwContents(JNIEnv* env,
@@ -1263,9 +1262,8 @@
     scale *= browser_view_renderer_.dip_scale();
 
   DCHECK_GE(duration_ms, 0);
-  render_view_host_ext_->SmoothScroll(
-      target_x / scale, target_y / scale,
-      base::TimeDelta::FromMilliseconds(duration_ms));
+  render_view_host_ext_->SmoothScroll(target_x / scale, target_y / scale,
+                                      base::Milliseconds(duration_ms));
 }
 
 void AwContents::OnWebLayoutPageScaleFactorChanged(float page_scale_factor) {
diff --git a/android_webview/browser/component_updater/loader_policies/aw_apps_package_names_allowlist_component_loader_policy.cc b/android_webview/browser/component_updater/loader_policies/aw_apps_package_names_allowlist_component_loader_policy.cc
index d2629d57..8134a34 100644
--- a/android_webview/browser/component_updater/loader_policies/aw_apps_package_names_allowlist_component_loader_policy.cc
+++ b/android_webview/browser/component_updater/loader_policies/aw_apps_package_names_allowlist_component_loader_policy.cc
@@ -189,9 +189,8 @@
     return;
   }
 
-  base::Time expiry_date =
-      base::Time::UnixEpoch() +
-      base::TimeDelta::FromMillisecondsD(expiry_date_ms.value_or(0.0));
+  base::Time expiry_date = base::Time::UnixEpoch() +
+                           base::Milliseconds(expiry_date_ms.value_or(0.0));
   if (expiry_date <= base::Time::Now()) {
     RecordAndReportResult(std::move(lookup_callback_),
                           {AllowlistPraseStatus::kExpiredAllowlist});
diff --git a/android_webview/browser/component_updater/loader_policies/aw_apps_package_names_allowlist_component_loader_policy_unittest.cc b/android_webview/browser/component_updater/loader_policies/aw_apps_package_names_allowlist_component_loader_policy_unittest.cc
index 61c7789..3b8d6ff 100644
--- a/android_webview/browser/component_updater/loader_policies/aw_apps_package_names_allowlist_component_loader_policy_unittest.cc
+++ b/android_webview/browser/component_updater/loader_policies/aw_apps_package_names_allowlist_component_loader_policy_unittest.cc
@@ -51,9 +51,9 @@
   auto manifest = std::make_unique<base::Value>(base::Value::Type::DICTIONARY);
   manifest->SetKey(kBloomFilterNumHashKey, base::Value(kNumHash));
   manifest->SetKey(kBloomFilterNumBitsKey, base::Value(3 * kNumBitsPerEntry));
-  manifest->SetKey(kExpiryDateKey,
-                   base::Value(MillisFromUnixEpoch(
-                       base::Time::Now() + base::TimeDelta::FromDays(1))));
+  manifest->SetKey(
+      kExpiryDateKey,
+      base::Value(MillisFromUnixEpoch(base::Time::Now() + base::Days(1))));
 
   return manifest;
 }
@@ -116,8 +116,7 @@
   base::flat_map<std::string, base::ScopedFD> fd_map;
   fd_map[kAllowlistBloomFilterFileName] = OpenAndGetAllowlistFd();
   std::unique_ptr<base::Value> manifest = BuildTestManifest();
-  base::Time one_day_from_now =
-      base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time one_day_from_now = base::Time::Now() + base::Days(1);
   manifest->SetDoubleKey(kExpiryDateKey, MillisFromUnixEpoch(one_day_from_now));
   base::Version new_version(kTestAllowlistVersion);
 
@@ -148,8 +147,7 @@
        TestSameVersionAsCache) {
   base::flat_map<std::string, base::ScopedFD> fd_map;
   std::unique_ptr<base::Value> manifest = BuildTestManifest();
-  base::Time one_day_from_now =
-      base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time one_day_from_now = base::Time::Now() + base::Days(1);
   base::Version version(kTestAllowlistVersion);
 
   AppPackageNameLoggingRule expected_record(version, one_day_from_now);
@@ -304,9 +302,9 @@
   base::flat_map<std::string, base::ScopedFD> fd_map;
   fd_map[kAllowlistBloomFilterFileName] = OpenAndGetAllowlistFd();
   std::unique_ptr<base::Value> manifest = BuildTestManifest();
-  manifest->SetKey(kExpiryDateKey,
-                   base::Value(MillisFromUnixEpoch(
-                       base::Time::Now() - base::TimeDelta::FromDays(1))));
+  manifest->SetKey(
+      kExpiryDateKey,
+      base::Value(MillisFromUnixEpoch(base::Time::Now() - base::Days(1))));
 
   auto policy =
       std::make_unique<AwAppsPackageNamesAllowlistComponentLoaderPolicy>(
diff --git a/android_webview/browser/gfx/test/invalidate_test.cc b/android_webview/browser/gfx/test/invalidate_test.cc
index d1e3ade..6612b5f 100644
--- a/android_webview/browser/gfx/test/invalidate_test.cc
+++ b/android_webview/browser/gfx/test/invalidate_test.cc
@@ -71,7 +71,7 @@
             int max_pending_frames,
             int frame_rate)
       : max_pending_frames_(max_pending_frames),
-        frame_interval_(base::TimeDelta::FromSeconds(1) / frame_rate) {
+        frame_interval_(base::Seconds(1) / frame_rate) {
     support_ = std::make_unique<viz::CompositorFrameSinkSupport>(
         this,
         VizCompositorThreadRunnerWebView::GetInstance()->GetFrameSinkManager(),
diff --git a/android_webview/browser/metrics/aw_metrics_service_client.cc b/android_webview/browser/metrics/aw_metrics_service_client.cc
index b527975..4b174be8 100644
--- a/android_webview/browser/metrics/aw_metrics_service_client.cc
+++ b/android_webview/browser/metrics/aw_metrics_service_client.cc
@@ -242,7 +242,7 @@
     JNIEnv* env,
     jlong upload_interval_ms) {
   AwMetricsServiceClient::GetInstance()->SetUploadIntervalForTesting(
-      base::TimeDelta::FromMilliseconds(upload_interval_ms));
+      base::Milliseconds(upload_interval_ms));
 }
 
 // static
@@ -263,8 +263,7 @@
   AwMetricsServiceClient::GetInstance()->SetAppPackageNameLoggingRule(
       AppPackageNameLoggingRule(
           base::Version(base::android::ConvertJavaStringToUTF8(env, version)),
-          base::Time::UnixEpoch() +
-              base::TimeDelta::FromMilliseconds(expiry_date_ms)));
+          base::Time::UnixEpoch() + base::Milliseconds(expiry_date_ms)));
 }
 
 }  // namespace android_webview
diff --git a/android_webview/browser/metrics/aw_metrics_service_client_unittest.cc b/android_webview/browser/metrics/aw_metrics_service_client_unittest.cc
index 3ab0bff..f3701282 100644
--- a/android_webview/browser/metrics/aw_metrics_service_client_unittest.cc
+++ b/android_webview/browser/metrics/aw_metrics_service_client_unittest.cc
@@ -91,7 +91,7 @@
   AwMetricsServiceClient* client = GetClient();
   TestingPrefServiceSimple* prefs = GetPrefs();
 
-  auto one_day_from_now = base::Time::Now() + base::TimeDelta::FromDays(1);
+  auto one_day_from_now = base::Time::Now() + base::Days(1);
   AppPackageNameLoggingRule expected_record(
       base::Version(kTestAllowlistVersion), one_day_from_now);
   prefs->Set(prefs::kMetricsAppPackageNameLoggingRule,
@@ -146,7 +146,7 @@
   scoped_list.InitAndEnableFeature(
       android_webview::features::kWebViewAppsPackageNamesAllowlist);
 
-  auto one_day_from_now = base::Time::Now() + base::TimeDelta::FromDays(1);
+  auto one_day_from_now = base::Time::Now() + base::Days(1);
 
   AwMetricsServiceClient* client = GetClient();
   AppPackageNameLoggingRule expected_record(
@@ -175,7 +175,7 @@
   scoped_list.InitAndEnableFeature(
       android_webview::features::kWebViewAppsPackageNamesAllowlist);
 
-  auto one_day_from_now = base::Time::Now() + base::TimeDelta::FromDays(1);
+  auto one_day_from_now = base::Time::Now() + base::Days(1);
 
   AwMetricsServiceClient* client = GetClient();
   AppPackageNameLoggingRule expected_record(
@@ -229,9 +229,8 @@
   AwMetricsServiceClient* client = GetClient();
   TestingPrefServiceSimple* prefs = GetPrefs();
 
-  AppPackageNameLoggingRule record(
-      base::Version(kTestAllowlistVersion),
-      base::Time::Now() + base::TimeDelta::FromDays(1));
+  AppPackageNameLoggingRule record(base::Version(kTestAllowlistVersion),
+                                   base::Time::Now() + base::Days(1));
   prefs->Set(prefs::kMetricsAppPackageNameLoggingRule, record.ToDictionary());
   client->SetAppPackageNameLoggingRule(record);
 
diff --git a/android_webview/browser/metrics/visibility_metrics_logger.cc b/android_webview/browser/metrics/visibility_metrics_logger.cc
index 1e0c211e..33885886e 100644
--- a/android_webview/browser/metrics/visibility_metrics_logger.cc
+++ b/android_webview/browser/metrics/visibility_metrics_logger.cc
@@ -222,20 +222,20 @@
   any_webview_visible_seconds =
       visible_duration_tracker_.any_webview_tracked_duration_.InSeconds();
   visible_duration_tracker_.any_webview_tracked_duration_ -=
-      base::TimeDelta::FromSeconds(any_webview_visible_seconds);
+      base::Seconds(any_webview_visible_seconds);
   no_webview_visible_seconds =
       visible_duration_tracker_.no_webview_tracked_duration_.InSeconds();
   visible_duration_tracker_.no_webview_tracked_duration_ -=
-      base::TimeDelta::FromSeconds(no_webview_visible_seconds);
+      base::Seconds(no_webview_visible_seconds);
 
   total_webview_visible_seconds =
       visible_duration_tracker_.per_webview_duration_.InSeconds();
   visible_duration_tracker_.per_webview_duration_ -=
-      base::TimeDelta::FromSeconds(total_webview_visible_seconds);
+      base::Seconds(total_webview_visible_seconds);
   total_no_webview_visible_seconds =
       visible_duration_tracker_.per_webview_untracked_duration_.InSeconds();
   visible_duration_tracker_.per_webview_untracked_duration_ -=
-      base::TimeDelta::FromSeconds(total_no_webview_visible_seconds);
+      base::Seconds(total_no_webview_visible_seconds);
 
   if (any_webview_visible_seconds) {
     GetGlobalVisibilityHistogram()->AddCount(
@@ -266,20 +266,20 @@
   any_webcontent_visible_seconds =
       webcontent_visible_tracker_.any_webview_tracked_duration_.InSeconds();
   webcontent_visible_tracker_.any_webview_tracked_duration_ -=
-      base::TimeDelta::FromSeconds(any_webcontent_visible_seconds);
+      base::Seconds(any_webcontent_visible_seconds);
   no_webcontent_visible_seconds =
       webcontent_visible_tracker_.no_webview_tracked_duration_.InSeconds();
   webcontent_visible_tracker_.no_webview_tracked_duration_ -=
-      base::TimeDelta::FromSeconds(no_webcontent_visible_seconds);
+      base::Seconds(no_webcontent_visible_seconds);
 
   total_webcontent_isible_seconds =
       webcontent_visible_tracker_.per_webview_duration_.InSeconds();
   webcontent_visible_tracker_.per_webview_duration_ -=
-      base::TimeDelta::FromSeconds(total_webcontent_isible_seconds);
+      base::Seconds(total_webcontent_isible_seconds);
   total_not_webcontent_or_not_visible_seconds =
       webcontent_visible_tracker_.per_webview_untracked_duration_.InSeconds();
   webcontent_visible_tracker_.per_webview_untracked_duration_ -=
-      base::TimeDelta::FromSeconds(total_not_webcontent_or_not_visible_seconds);
+      base::Seconds(total_not_webcontent_or_not_visible_seconds);
 
   if (any_webcontent_visible_seconds) {
     GetGlobalOpenWebVisibilityHistogram()->AddCount(
@@ -313,7 +313,7 @@
       continue;
 
     open_web_screen_portion_tracked_duration_[i] -=
-        base::TimeDelta::FromSeconds(elapsed_seconds);
+        base::Seconds(elapsed_seconds);
     GetOpenWebVisibileScreenPortionHistogram()->AddCount(i, elapsed_seconds);
   }
 }
diff --git a/android_webview/browser/metrics/visibility_metrics_logger.h b/android_webview/browser/metrics/visibility_metrics_logger.h
index 4efd97e..00f5470 100644
--- a/android_webview/browser/metrics/visibility_metrics_logger.h
+++ b/android_webview/browser/metrics/visibility_metrics_logger.h
@@ -116,17 +116,14 @@
 
   struct WebViewDurationTracker {
     // Duration any WebView meets the tracking criteria
-    base::TimeDelta any_webview_tracked_duration_ =
-        base::TimeDelta::FromSeconds(0);
+    base::TimeDelta any_webview_tracked_duration_ = base::Seconds(0);
     // Duration no WebViews meet the tracking criteria
-    base::TimeDelta no_webview_tracked_duration_ =
-        base::TimeDelta::FromSeconds(0);
+    base::TimeDelta no_webview_tracked_duration_ = base::Seconds(0);
     // Total duration that WebViews meet the tracking criteria (i.e. if
     // 2x WebViews meet the criteria for 1 second then increment by 2 seconds)
-    base::TimeDelta per_webview_duration_ = base::TimeDelta::FromSeconds(0);
+    base::TimeDelta per_webview_duration_ = base::Seconds(0);
     // Total duration that WebViews exist but do not meet the tracking criteria
-    base::TimeDelta per_webview_untracked_duration_ =
-        base::TimeDelta::FromSeconds(0);
+    base::TimeDelta per_webview_untracked_duration_ = base::Seconds(0);
   };
 
   WebViewDurationTracker visible_duration_tracker_;
diff --git a/android_webview/browser/metrics/visibility_metrics_logger_unittest.cc b/android_webview/browser/metrics/visibility_metrics_logger_unittest.cc
index 4179d2e25..58298f1 100644
--- a/android_webview/browser/metrics/visibility_metrics_logger_unittest.cc
+++ b/android_webview/browser/metrics/visibility_metrics_logger_unittest.cc
@@ -89,14 +89,14 @@
   client->SetViewAttached(true);
   client->SetWindowVisible(true);
 
-  task_environment().FastForwardBy(base::TimeDelta::FromMilliseconds(500));
+  task_environment().FastForwardBy(base::Milliseconds(500));
 
   logger()->RecordMetrics();
   histogram_tester.ExpectBucketCount(
       "Android.WebView.Visibility.Global",
       VisibilityMetricsLogger::Visibility::kVisible, 0);
 
-  task_environment().FastForwardBy(base::TimeDelta::FromMilliseconds(500));
+  task_environment().FastForwardBy(base::Milliseconds(500));
 
   logger()->RecordMetrics();
   histogram_tester.ExpectBucketCount(
@@ -109,16 +109,16 @@
 TEST_F(VisibilityMetricsLoggerTest, TestSingleVisibleClient) {
   base::HistogramTester histogram_tester;
 
-  task_environment().FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment().FastForwardBy(base::Seconds(10));
   std::unique_ptr<TestClient> client = std::make_unique<TestClient>(logger());
 
-  task_environment().FastForwardBy(base::TimeDelta::FromSeconds(30));
+  task_environment().FastForwardBy(base::Seconds(30));
   client->SetViewVisible(true);
   client->SetViewAttached(true);
   client->SetWindowVisible(true);
   client->SetSchemeHttpOrHttps(true);
 
-  task_environment().FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment().FastForwardBy(base::Seconds(10));
   client->SetWindowVisible(false);
 
   logger()->RecordMetrics();
@@ -143,7 +143,7 @@
   client->SetViewAttached(true);
   client->SetWindowVisible(true);
   client->SetSchemeHttpOrHttps(false);
-  task_environment().FastForwardBy(base::TimeDelta::FromSeconds(90));
+  task_environment().FastForwardBy(base::Seconds(90));
 
   logger()->RecordMetrics();
   histogram_tester.ExpectBucketCount(
@@ -170,20 +170,20 @@
   std::unique_ptr<TestClient> client1 = std::make_unique<TestClient>(logger());
   std::unique_ptr<TestClient> client2 = std::make_unique<TestClient>(logger());
 
-  task_environment().FastForwardBy(base::TimeDelta::FromSeconds(300));
+  task_environment().FastForwardBy(base::Seconds(300));
   client1->SetViewVisible(true);
   client1->SetViewAttached(true);
   client1->SetWindowVisible(true);
 
-  task_environment().FastForwardBy(base::TimeDelta::FromSeconds(50));
+  task_environment().FastForwardBy(base::Seconds(50));
   client2->SetViewVisible(true);
   client2->SetViewAttached(true);
   client2->SetWindowVisible(true);
 
-  task_environment().FastForwardBy(base::TimeDelta::FromSeconds(50));
+  task_environment().FastForwardBy(base::Seconds(50));
   client2.reset();
 
-  task_environment().FastForwardBy(base::TimeDelta::FromSeconds(50));
+  task_environment().FastForwardBy(base::Seconds(50));
   client1.reset();
 
   logger()->RecordMetrics();
@@ -217,32 +217,32 @@
   base::HistogramTester histogram_tester;
   std::unique_ptr<TestClient> client1 = std::make_unique<TestClient>(logger());
 
-  task_environment().FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment().FastForwardBy(base::Seconds(10));
   std::unique_ptr<TestClient> client2 = std::make_unique<TestClient>(logger());
 
-  task_environment().FastForwardBy(base::TimeDelta::FromSeconds(30));
+  task_environment().FastForwardBy(base::Seconds(30));
   // This queues delayed recording after 60 seconds (test-defined)
   client1->SetViewVisible(true);
   client1->SetViewAttached(true);
   client1->SetWindowVisible(true);
 
-  task_environment().FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment().FastForwardBy(base::Seconds(10));
   // No additional task is queued
   client2->SetViewVisible(true);
   client2->SetViewAttached(true);
   client2->SetWindowVisible(true);
 
-  task_environment().FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment().FastForwardBy(base::Seconds(10));
   // This does not cause metrics to be recorded because one client remains
   // visible.
   client1->SetWindowVisible(false);
 
-  task_environment().FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment().FastForwardBy(base::Seconds(10));
   // The last client becoming invisible triggers immediate recording and the
   // cancellation of the queued task.
   client2->SetWindowVisible(false);
 
-  task_environment().FastForwardBy(base::TimeDelta::FromSeconds(30));
+  task_environment().FastForwardBy(base::Seconds(30));
   client1.reset();
   client2.reset();
 
@@ -284,36 +284,36 @@
   base::HistogramTester histogram_tester;
   std::unique_ptr<TestClient> client1 = std::make_unique<TestClient>(logger());
 
-  task_environment().FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment().FastForwardBy(base::Seconds(10));
   std::unique_ptr<TestClient> client2 = std::make_unique<TestClient>(logger());
 
-  task_environment().FastForwardBy(base::TimeDelta::FromSeconds(30));
+  task_environment().FastForwardBy(base::Seconds(30));
   // This queues delayed recording after 60 seconds (test-defined)
   client1->SetViewVisible(true);
   client1->SetViewAttached(true);
   client1->SetWindowVisible(true);
 
-  task_environment().FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment().FastForwardBy(base::Seconds(10));
   // No additional task is queued
   client1->SetSchemeHttpOrHttps(true);
 
-  task_environment().FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment().FastForwardBy(base::Seconds(10));
   // No additional task is queued
   client2->SetViewVisible(true);
   client2->SetViewAttached(true);
   client2->SetWindowVisible(true);
 
-  task_environment().FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment().FastForwardBy(base::Seconds(10));
   // This does not cause metrics to be recorded because one client remains
   // visible.
   client1->SetWindowVisible(false);
 
-  task_environment().FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment().FastForwardBy(base::Seconds(10));
   // The last client becoming invisible triggers immediate recording and the
   // cancellation of the queued task.
   client2->SetWindowVisible(false);
 
-  task_environment().FastForwardBy(base::TimeDelta::FromSeconds(20));
+  task_environment().FastForwardBy(base::Seconds(20));
   client1.reset();
   client2.reset();
 
diff --git a/android_webview/browser/network_service/aw_network_change_notifier.cc b/android_webview/browser/network_service/aw_network_change_notifier.cc
index a66e119..6aafe54 100644
--- a/android_webview/browser/network_service/aw_network_change_notifier.cc
+++ b/android_webview/browser/network_service/aw_network_change_notifier.cc
@@ -72,10 +72,10 @@
 AwNetworkChangeNotifier::DefaultNetworkChangeCalculatorParams() {
   net::NetworkChangeNotifier::NetworkChangeCalculatorParams params;
   // Use defaults as in network_change_notifier_android.cc
-  params.ip_address_offline_delay_ = base::TimeDelta::FromSeconds(1);
-  params.ip_address_online_delay_ = base::TimeDelta::FromSeconds(1);
-  params.connection_type_offline_delay_ = base::TimeDelta::FromSeconds(0);
-  params.connection_type_online_delay_ = base::TimeDelta::FromSeconds(0);
+  params.ip_address_offline_delay_ = base::Seconds(1);
+  params.ip_address_online_delay_ = base::Seconds(1);
+  params.connection_type_offline_delay_ = base::Seconds(0);
+  params.connection_type_online_delay_ = base::Seconds(0);
   return params;
 }
 
diff --git a/android_webview/browser/state_serializer_unittest.cc b/android_webview/browser/state_serializer_unittest.cc
index 48a2482a..d62a554 100644
--- a/android_webview/browser/state_serializer_unittest.cc
+++ b/android_webview/browser/state_serializer_unittest.cc
@@ -246,9 +246,9 @@
   EXPECT_EQ(base_url_for_data_url, copy->GetBaseURLForDataURL());
   EXPECT_FALSE(copy->GetDataURLAsString());
   EXPECT_EQ(is_overriding_user_agent, copy->GetIsOverridingUserAgent());
-  EXPECT_EQ(base::Time::FromDeltaSinceWindowsEpoch(
-                base::TimeDelta::FromMicroseconds(timestamp)),
-            copy->GetTimestamp());
+  EXPECT_EQ(
+      base::Time::FromDeltaSinceWindowsEpoch(base::Microseconds(timestamp)),
+      copy->GetTimestamp());
   EXPECT_EQ(http_status_code, copy->GetHttpStatusCode());
 }
 
diff --git a/android_webview/common/metrics/app_package_name_logging_rule_unittests.cc b/android_webview/common/metrics/app_package_name_logging_rule_unittests.cc
index a3d2611..e26babc4 100644
--- a/android_webview/common/metrics/app_package_name_logging_rule_unittests.cc
+++ b/android_webview/common/metrics/app_package_name_logging_rule_unittests.cc
@@ -29,8 +29,7 @@
 
 TEST_F(AppPackageNameLoggingRuleTest, TestFromDictionary) {
   base::Version version(kTestAllowlistVersion);
-  base::Time one_day_from_now =
-      base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time one_day_from_now = base::Time::Now() + base::Days(1);
   {
     AppPackageNameLoggingRule expected_record(version, one_day_from_now);
     absl::optional<AppPackageNameLoggingRule> record =
diff --git a/android_webview/renderer/aw_render_thread_observer.cc b/android_webview/renderer/aw_render_thread_observer.cc
index 5c49356..88ae28f 100644
--- a/android_webview/renderer/aw_render_thread_observer.cc
+++ b/android_webview/renderer/aw_render_thread_observer.cc
@@ -55,7 +55,7 @@
                                                   float min_cputime_ratio) {
   power_scheduler::SchedulingPolicyParams params{
       (power_scheduler::SchedulingPolicy)policy,
-      base::TimeDelta::FromMilliseconds(min_time_ms), min_cputime_ratio};
+      base::Milliseconds(min_time_ms), min_cputime_ratio};
   power_scheduler::PowerScheduler::GetInstance()->SetPolicy(params);
 }
 
diff --git a/ash/accelerators/accelerator_controller_impl.cc b/ash/accelerators/accelerator_controller_impl.cc
index ca13202..cc6e665 100644
--- a/ash/accelerators/accelerator_controller_impl.cc
+++ b/ash/accelerators/accelerator_controller_impl.cc
@@ -141,8 +141,7 @@
     "/usr/share/chromeos-assets/side_volume_button/location.json";
 
 // The interval between two volume control actions within one volume adjust.
-constexpr base::TimeDelta kVolumeAdjustTimeout =
-    base::TimeDelta::FromSeconds(2);
+constexpr base::TimeDelta kVolumeAdjustTimeout = base::Seconds(2);
 
 // These values are written to logs.  New enum values can be added, but existing
 // enums must never be renumbered or deleted and reused.
diff --git a/ash/accelerators/exit_warning_handler.cc b/ash/accelerators/exit_warning_handler.cc
index 913936b..ded497f 100644
--- a/ash/accelerators/exit_warning_handler.cc
+++ b/ash/accelerators/exit_warning_handler.cc
@@ -127,8 +127,7 @@
 void ExitWarningHandler::StartTimer() {
   if (stub_timer_for_test_)
     return;
-  timer_.Start(FROM_HERE,
-               base::TimeDelta::FromMilliseconds(kTimeOutMilliseconds), this,
+  timer_.Start(FROM_HERE, base::Milliseconds(kTimeOutMilliseconds), this,
                &ExitWarningHandler::TimerAction);
 }
 
diff --git a/ash/accelerometer/accelerometer_file_reader.cc b/ash/accelerometer/accelerometer_file_reader.cc
index aec248e..172f04d 100644
--- a/ash/accelerometer/accelerometer_file_reader.cc
+++ b/ash/accelerometer/accelerometer_file_reader.cc
@@ -95,16 +95,14 @@
 constexpr int kSizeOfReading = kDataSize * kNumberOfAxes;
 
 // The time to wait between reading the accelerometer.
-constexpr base::TimeDelta kDelayBetweenReads =
-    base::TimeDelta::FromMilliseconds(100);
+constexpr base::TimeDelta kDelayBetweenReads = base::Milliseconds(100);
 
 // The TimeDelta before giving up on initialization. This is needed because the
 // sensor hub might not be online when the Initialize function is called.
-constexpr base::TimeDelta kInitializeTimeout = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kInitializeTimeout = base::Seconds(5);
 
 // The time between initialization checks.
-constexpr base::TimeDelta kDelayBetweenInitChecks =
-    base::TimeDelta::FromMilliseconds(500);
+constexpr base::TimeDelta kDelayBetweenInitChecks = base::Milliseconds(500);
 
 // Reads |path| to the unsigned int pointed to by |value|. Returns true on
 // success or false on failure.
diff --git a/ash/accelerometer/accelerometer_provider_mojo.cc b/ash/accelerometer/accelerometer_provider_mojo.cc
index 08fddc43..a4bd1d4 100644
--- a/ash/accelerometer/accelerometer_provider_mojo.cc
+++ b/ash/accelerometer/accelerometer_provider_mojo.cc
@@ -22,12 +22,10 @@
 namespace {
 
 // Delay of the reconnection to Sensor Hal Dispatcher.
-constexpr base::TimeDelta kDelayReconnect =
-    base::TimeDelta::FromMilliseconds(1000);
+constexpr base::TimeDelta kDelayReconnect = base::Milliseconds(1000);
 
 // Timeout for the late-present devices: 10 seconds.
-constexpr base::TimeDelta kNewDevicesTimeout =
-    base::TimeDelta::FromMilliseconds(10000);
+constexpr base::TimeDelta kNewDevicesTimeout = base::Milliseconds(10000);
 
 }  // namespace
 
diff --git a/ash/accessibility/accessibility_controller_impl.cc b/ash/accessibility/accessibility_controller_impl.cc
index d20a48f..27af40dc 100644
--- a/ash/accessibility/accessibility_controller_impl.cc
+++ b/ash/accessibility/accessibility_controller_impl.cc
@@ -1610,7 +1610,7 @@
 
 void AccessibilityControllerImpl::UpdateAutoclickDelayFromPref() {
   DCHECK(active_user_prefs_);
-  base::TimeDelta autoclick_delay = base::TimeDelta::FromMilliseconds(int64_t{
+  base::TimeDelta autoclick_delay = base::Milliseconds(int64_t{
       active_user_prefs_->GetInteger(prefs::kAccessibilityAutoclickDelayMs)});
 
   if (autoclick_delay_ == autoclick_delay)
diff --git a/ash/accessibility/autoclick/autoclick_controller.cc b/ash/accessibility/autoclick/autoclick_controller.cc
index 36c290b..46ff4a34 100644
--- a/ash/accessibility/autoclick/autoclick_controller.cc
+++ b/ash/accessibility/autoclick/autoclick_controller.cc
@@ -69,7 +69,7 @@
 
 // static.
 base::TimeDelta AutoclickController::GetDefaultAutoclickDelay() {
-  return base::TimeDelta::FromMilliseconds(int64_t{kDefaultAutoclickDelayMs});
+  return base::Milliseconds(int64_t{kDefaultAutoclickDelayMs});
 }
 
 AutoclickController::AutoclickController()
diff --git a/ash/accessibility/autoclick/autoclick_scroll_position_handler.h b/ash/accessibility/autoclick/autoclick_scroll_position_handler.h
index 6269f1e..cf2a917 100644
--- a/ash/accessibility/autoclick/autoclick_scroll_position_handler.h
+++ b/ash/accessibility/autoclick/autoclick_scroll_position_handler.h
@@ -43,8 +43,8 @@
   void SetScrollPointCenterInScreen(const gfx::Point& scroll_point_center);
 
  private:
-  static constexpr auto kOpaqueTime = base::TimeDelta::FromMilliseconds(500);
-  static constexpr auto kFadeTime = base::TimeDelta::FromMilliseconds(500);
+  static constexpr auto kOpaqueTime = base::Milliseconds(500);
+  static constexpr auto kFadeTime = base::Milliseconds(500);
 
   // gfx::AnimationDelegate:
   void AnimationProgressed(const gfx::Animation* animation) override;
diff --git a/ash/accessibility/autoclick/autoclick_unittest.cc b/ash/accessibility/autoclick/autoclick_unittest.cc
index 2f68295..4f2152da 100644
--- a/ash/accessibility/autoclick/autoclick_unittest.cc
+++ b/ash/accessibility/autoclick/autoclick_unittest.cc
@@ -145,8 +145,7 @@
   }
 
   void FastForwardBy(int milliseconds) {
-    task_environment()->FastForwardBy(
-        base::TimeDelta::FromMilliseconds(milliseconds));
+    task_environment()->FastForwardBy(base::Milliseconds(milliseconds));
   }
 
   AutoclickController* GetAutoclickController() {
@@ -159,8 +158,7 @@
     float ratio =
         GetAutoclickController()->GetStartGestureDelayRatioForTesting();
     int full_delay = ceil(1.0 / ratio) * animation_delay;
-    GetAutoclickController()->SetAutoclickDelay(
-        base::TimeDelta::FromMilliseconds(full_delay));
+    GetAutoclickController()->SetAutoclickDelay(base::Milliseconds(full_delay));
     return full_delay;
   }
 
@@ -486,16 +484,14 @@
   // Test another gesture.
   GetEventGenerator()->MoveMouseTo(100, 100);
   GetEventGenerator()->GestureScrollSequence(
-      gfx::Point(100, 100), gfx::Point(200, 200),
-      base::TimeDelta::FromMilliseconds(200), 3);
+      gfx::Point(100, 100), gfx::Point(200, 200), base::Milliseconds(200), 3);
   events = WaitForMouseEvents();
   EXPECT_EQ(0u, events.size());
 
   // Test scroll events.
   GetEventGenerator()->MoveMouseTo(200, 200);
   GetEventGenerator()->ScrollSequence(gfx::Point(100, 100),
-                                      base::TimeDelta::FromMilliseconds(200), 0,
-                                      100, 3, 2);
+                                      base::Milliseconds(200), 0, 100, 3, 2);
   events = WaitForMouseEvents();
   EXPECT_EQ(0u, events.size());
 
diff --git a/ash/accessibility/chromevox/key_accessibility_enabler_unittest.cc b/ash/accessibility/chromevox/key_accessibility_enabler_unittest.cc
index 90ec803..f2c6ef5 100644
--- a/ash/accessibility/chromevox/key_accessibility_enabler_unittest.cc
+++ b/ash/accessibility/chromevox/key_accessibility_enabler_unittest.cc
@@ -43,7 +43,7 @@
 
   void WaitForAccessibilityStatusChanged() {
     run_loop_ = std::make_unique<base::RunLoop>();
-    clock_.Advance(base::TimeDelta::FromMilliseconds(5000));
+    clock_.Advance(base::Milliseconds(5000));
     run_loop_->Run();
   }
 
diff --git a/ash/accessibility/chromevox/spoken_feedback_enabler.cc b/ash/accessibility/chromevox/spoken_feedback_enabler.cc
index 0603b94..dda943b4 100644
--- a/ash/accessibility/chromevox/spoken_feedback_enabler.cc
+++ b/ash/accessibility/chromevox/spoken_feedback_enabler.cc
@@ -14,7 +14,7 @@
 namespace {
 
 // Delay between timer callbacks. Each one plays a tick sound.
-constexpr base::TimeDelta kTimerDelay = base::TimeDelta::FromMilliseconds(500);
+constexpr base::TimeDelta kTimerDelay = base::Milliseconds(500);
 
 // The number of ticks of the timer before the first sound is generated.
 constexpr int kTimerTicksOfFirstSoundFeedback = 6;
diff --git a/ash/accessibility/chromevox/touch_accessibility_enabler.cc b/ash/accessibility/chromevox/touch_accessibility_enabler.cc
index 7933a4c..715e34af 100644
--- a/ash/accessibility/chromevox/touch_accessibility_enabler.cc
+++ b/ash/accessibility/chromevox/touch_accessibility_enabler.cc
@@ -25,7 +25,7 @@
 namespace {
 
 // Delay between timer callbacks. Each one plays a tick sound.
-constexpr auto kTimerDelay = base::TimeDelta::FromMilliseconds(500);
+constexpr auto kTimerDelay = base::Milliseconds(500);
 
 // The number of ticks of the timer before the first sound is generated.
 constexpr int kTimerTicksOfFirstSoundFeedback = 6;
diff --git a/ash/accessibility/chromevox/touch_accessibility_enabler_unittest.cc b/ash/accessibility/chromevox/touch_accessibility_enabler_unittest.cc
index f3e1dfd..e3bfd018 100644
--- a/ash/accessibility/chromevox/touch_accessibility_enabler_unittest.cc
+++ b/ash/accessibility/chromevox/touch_accessibility_enabler_unittest.cc
@@ -75,7 +75,7 @@
     generator_ = std::make_unique<ui::test::EventGenerator>(root_window());
 
     // Tests fail if time is ever 0.
-    simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(10));
+    simulated_clock_.Advance(base::Milliseconds(10));
     ui::SetEventTickClockForTesting(&simulated_clock_);
 
     enabler_ =
@@ -119,7 +119,7 @@
   generator_->set_current_screen_location(gfx::Point(11, 12));
   generator_->PressTouchId(1);
 
-  simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(500));
+  simulated_clock_.Advance(base::Milliseconds(500));
 
   generator_->set_current_screen_location(gfx::Point(22, 34));
   generator_->PressTouchId(2);
@@ -168,7 +168,7 @@
   enabler_->TriggerOnTimerForTesting();
   EXPECT_EQ(0U, delegate_.feedback_progress_sound_count());
 
-  simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(3000));
+  simulated_clock_.Advance(base::Milliseconds(3000));
   enabler_->TriggerOnTimerForTesting();
   EXPECT_EQ(1U, delegate_.feedback_progress_sound_count());
 }
@@ -189,7 +189,7 @@
   enabler_->TriggerOnTimerForTesting();
   EXPECT_FALSE(delegate_.toggle_spoken_feedback());
 
-  simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(5000));
+  simulated_clock_.Advance(base::Milliseconds(5000));
   enabler_->TriggerOnTimerForTesting();
   EXPECT_TRUE(delegate_.toggle_spoken_feedback());
   EXPECT_TRUE(delegate_.started());
diff --git a/ash/accessibility/chromevox/touch_exploration_controller.cc b/ash/accessibility/chromevox/touch_exploration_controller.cc
index bc0aa02..511a37e 100644
--- a/ash/accessibility/chromevox/touch_exploration_controller.cc
+++ b/ash/accessibility/chromevox/touch_exploration_controller.cc
@@ -46,7 +46,7 @@
 
 // How long the user must stay in the same anchor point in touch exploration
 // before a right-click is triggered.
-const base::TimeDelta kLongPressTimerDelay = base::TimeDelta::FromSeconds(5);
+const base::TimeDelta kLongPressTimerDelay = base::Seconds(5);
 
 void SetTouchAccessibilityFlag(ui::Event* event) {
   // This flag is used to identify mouse move events that were generated from
@@ -711,8 +711,7 @@
   // This can occur if the user leaves the screen edge and then returns to it to
   // continue adjusting the sound.
   if (!sound_timer_.IsRunning()) {
-    sound_timer_.Start(FROM_HERE,
-                       base::TimeDelta::FromMilliseconds(kSoundDelayInMS), this,
+    sound_timer_.Start(FROM_HERE, base::Milliseconds(kSoundDelayInMS), this,
                        &TouchExplorationController::PlaySoundForTimer);
     delegate_->PlayVolumeAdjustEarcon();
   }
diff --git a/ash/accessibility/chromevox/touch_exploration_controller_unittest.cc b/ash/accessibility/chromevox/touch_exploration_controller_unittest.cc
index acafab4..f7682544 100644
--- a/ash/accessibility/chromevox/touch_exploration_controller_unittest.cc
+++ b/ash/accessibility/chromevox/touch_exploration_controller_unittest.cc
@@ -183,7 +183,7 @@
     generator_ = std::make_unique<ui::test::EventGenerator>(root_window());
 
     // Tests fail if time is ever 0.
-    simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(10));
+    simulated_clock_.Advance(base::Milliseconds(10));
     // ui takes ownership of the tick clock.
     ui::SetEventTickClockForTesting(&simulated_clock_);
 
@@ -250,17 +250,17 @@
 
   void AdvanceSimulatedTimePastTapDelay() {
     simulated_clock_.Advance(gesture_detector_config_.double_tap_timeout);
-    simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(1));
+    simulated_clock_.Advance(base::Milliseconds(1));
     touch_exploration_controller_->CallTapTimerNowForTesting();
   }
 
   void AdvanceSimulatedTimePastPotentialTapDelay() {
-    simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(1000));
+    simulated_clock_.Advance(base::Milliseconds(1000));
     touch_exploration_controller_->CallTapTimerNowIfRunningForTesting();
   }
 
   void AdvanceSimulatedTimePastLongPressDelay() {
-    simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(5000));
+    simulated_clock_.Advance(base::Milliseconds(5000));
     touch_exploration_controller_->CallLongPressTimerNowIfRunningForTesting();
   }
 
@@ -570,7 +570,7 @@
 
   // Send a press, then add another finger after the double-tap timeout.
   generator_->PressTouchId(1);
-  simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(1000));
+  simulated_clock_.Advance(base::Milliseconds(1000));
   generator_->PressTouchId(2);
   std::vector<ui::LocatedEvent*> events =
       GetCapturedLocatedEventsOfType(ui::ET_MOUSE_MOVED);
@@ -600,7 +600,7 @@
   // timer fires.
   gfx::Point location1(33, 34);
   generator_->set_current_screen_location(location1);
-  simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(301));
+  simulated_clock_.Advance(base::Milliseconds(301));
   generator_->PressTouch();
   generator_->ReleaseTouch();
   AdvanceSimulatedTimePastTapDelay();
@@ -649,9 +649,9 @@
   generator_->PressTouch();
   generator_->ReleaseTouch();
   simulated_clock_.Advance(gesture_detector_config_.double_tap_timeout -
-                           base::TimeDelta::FromMilliseconds(25));
+                           base::Milliseconds(25));
   generator_->PressTouch();
-  simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(50));
+  simulated_clock_.Advance(base::Milliseconds(50));
   generator_->ReleaseTouch();
 
   std::vector<ui::LocatedEvent*> captured_events = GetCapturedLocatedEvents();
@@ -823,7 +823,7 @@
   // tapping again.
   gfx::Point final_location(33, 34);
   generator_->set_current_screen_location(final_location);
-  simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(250));
+  simulated_clock_.Advance(base::Milliseconds(250));
   generator_->PressTouch();
   generator_->ReleaseTouch();
 
@@ -1093,13 +1093,13 @@
   gfx::Point touch_exploration_location(20, 21);
 
   generator_->Dispatch(&first_press);
-  simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(10));
+  simulated_clock_.Advance(base::Milliseconds(10));
   // Since we are not out of the touch slop yet, we should not be in gesture in
   // progress.
   generator_->MoveTouch(second_location);
   EXPECT_FALSE(IsInTouchToMouseMode());
   EXPECT_FALSE(IsInGestureInProgressState());
-  simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(10));
+  simulated_clock_.Advance(base::Milliseconds(10));
 
   // Once we are out of slop, we should be in GestureInProgress.
   generator_->MoveTouch(third_location);
@@ -1377,7 +1377,7 @@
       ui::ET_TOUCH_PRESSED, gfx::Point(100, 200), Now(),
       ui::PointerDetails(ui::EventPointerType::kTouch, 0));
   generator_->Dispatch(&first_press);
-  simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(10));
+  simulated_clock_.Advance(base::Milliseconds(10));
   gfx::Point second_location(100 + distance, 200);
   generator_->MoveTouch(second_location);
   EXPECT_TRUE(IsInGestureInProgressState());
@@ -1412,14 +1412,14 @@
   gfx::Point fourth_location(window_right, 35);
 
   generator_->Dispatch(&first_press);
-  simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(10));
+  simulated_clock_.Advance(base::Milliseconds(10));
 
   // Since we haven't moved past slop yet, we should not be in slide gesture.
   generator_->MoveTouch(second_location);
   EXPECT_FALSE(IsInTouchToMouseMode());
   EXPECT_FALSE(IsInGestureInProgressState());
   EXPECT_FALSE(IsInSlideGestureState());
-  simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(10));
+  simulated_clock_.Advance(base::Milliseconds(10));
 
   // Once we are out of slop, we should be in slide gesture since we are along
   // the edge of the screen.
@@ -1472,13 +1472,13 @@
   gfx::Point into_boundaries(window.right() - GetMaxDistanceFromEdge() / 2, 1);
 
   generator_->Dispatch(&first_press);
-  simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(10));
+  simulated_clock_.Advance(base::Milliseconds(10));
 
   generator_->MoveTouch(out_of_slop);
   EXPECT_FALSE(IsInTouchToMouseMode());
   EXPECT_TRUE(IsInGestureInProgressState());
   EXPECT_FALSE(IsInSlideGestureState());
-  simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(10));
+  simulated_clock_.Advance(base::Milliseconds(10));
 
   // Since we did not start moving while in the boundaries, we should not be in
   // slide gestures.
@@ -1509,7 +1509,7 @@
       ui::ET_TOUCH_PRESSED, initial_press, Now(),
       ui::PointerDetails(ui::EventPointerType::kTouch, 0));
   generator_->Dispatch(&first_press);
-  simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(10));
+  simulated_clock_.Advance(base::Milliseconds(10));
   EXPECT_FALSE(IsInGestureInProgressState());
   EXPECT_FALSE(IsInSlideGestureState());
   EXPECT_FALSE(IsInTouchToMouseMode());
@@ -1523,7 +1523,7 @@
   EXPECT_FALSE(IsInGestureInProgressState());
   EXPECT_TRUE(IsInSlideGestureState());
   EXPECT_FALSE(IsInTouchToMouseMode());
-  simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(10));
+  simulated_clock_.Advance(base::Milliseconds(10));
 
   // Move the touch into slop boundaries. It should still be in slide gestures
   // and adjust the volume.
@@ -1535,7 +1535,7 @@
   EXPECT_FALSE(IsInTouchToMouseMode());
 
   // The sound is rate limiting so it only activates every 150ms.
-  simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(200));
+  simulated_clock_.Advance(base::Milliseconds(200));
 
   size_t num_adjust_sounds = delegate_.NumAdjustSounds();
   ASSERT_EQ(1U, num_adjust_sounds);
@@ -1548,7 +1548,7 @@
   EXPECT_TRUE(IsInSlideGestureState());
   EXPECT_FALSE(IsInTouchToMouseMode());
 
-  simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(200));
+  simulated_clock_.Advance(base::Milliseconds(200));
   num_adjust_sounds = delegate_.NumAdjustSounds();
   ASSERT_EQ(1U, num_adjust_sounds);
   ASSERT_EQ(1U, delegate_.VolumeChanges().size());
@@ -1563,7 +1563,7 @@
   generator_->MoveTouch(
       gfx::Point(into_slop_boundaries.x() + gesture_detector_config_.touch_slop,
                  into_slop_boundaries.y()));
-  simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(200));
+  simulated_clock_.Advance(base::Milliseconds(200));
 
   num_adjust_sounds = delegate_.NumAdjustSounds();
   ASSERT_EQ(2U, num_adjust_sounds);
diff --git a/ash/accessibility/magnifier/docked_magnifier_controller.cc b/ash/accessibility/magnifier/docked_magnifier_controller.cc
index 070f706..4b68d76 100644
--- a/ash/accessibility/magnifier/docked_magnifier_controller.cc
+++ b/ash/accessibility/magnifier/docked_magnifier_controller.cc
@@ -224,7 +224,7 @@
   // point of interest due to input caret bounds changes ... etc.).
   ui::ScopedLayerAnimationSettings settings(
       viewport_magnifier_layer_->GetAnimator());
-  settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(0));
+  settings.SetTransitionDuration(base::Milliseconds(0));
   settings.SetTweenType(gfx::Tween::ZERO);
   settings.SetPreemptionStrategy(ui::LayerAnimator::IMMEDIATELY_SET_NEW_TARGET);
   viewport_magnifier_layer_->SetTransform(transform);
diff --git a/ash/accessibility/magnifier/fullscreen_magnifier_controller.cc b/ash/accessibility/magnifier/fullscreen_magnifier_controller.cc
index d7250a7..18124f9 100644
--- a/ash/accessibility/magnifier/fullscreen_magnifier_controller.cc
+++ b/ash/accessibility/magnifier/fullscreen_magnifier_controller.cc
@@ -529,8 +529,7 @@
 
   const ui::LayerAnimator::PreemptionStrategy strategy =
       ui::LayerAnimator::IMMEDIATELY_ANIMATE_TO_NEW_TARGET;
-  const base::TimeDelta duration =
-      base::TimeDelta::FromMilliseconds(duration_in_ms);
+  const base::TimeDelta duration = base::Milliseconds(duration_in_ms);
 
   ui::ScopedLayerAnimationSettings root_layer_settings(
       root_window_->layer()->GetAnimator());
diff --git a/ash/accessibility/magnifier/magnifier_utils.h b/ash/accessibility/magnifier/magnifier_utils.h
index 60715b05..f5656fc 100644
--- a/ash/accessibility/magnifier/magnifier_utils.h
+++ b/ash/accessibility/magnifier/magnifier_utils.h
@@ -35,8 +35,7 @@
 // (~16ms assuming 60hz screen updates), however most importantly keep it short,
 // so e.g. when user focuses an element, and then starts typing, the viewport
 // quickly moves to the caret position.
-constexpr base::TimeDelta kPauseCaretUpdateDuration =
-    base::TimeDelta::FromMilliseconds(15);
+constexpr base::TimeDelta kPauseCaretUpdateDuration = base::Milliseconds(15);
 
 // Calculates the new scale if it were to be adjusted exponentially by the
 // given |linear_offset|. This allows linear changes in scroll offset
diff --git a/ash/accessibility/sticky_keys/sticky_keys_overlay.cc b/ash/accessibility/sticky_keys/sticky_keys_overlay.cc
index 7893efd44..7fce2d6c 100644
--- a/ash/accessibility/sticky_keys/sticky_keys_overlay.cc
+++ b/ash/accessibility/sticky_keys/sticky_keys_overlay.cc
@@ -252,8 +252,7 @@
   settings.SetPreemptionStrategy(
       ui::LayerAnimator::IMMEDIATELY_ANIMATE_TO_NEW_TARGET);
   settings.SetTweenType(visible ? gfx::Tween::EASE_OUT : gfx::Tween::EASE_IN);
-  settings.SetTransitionDuration(
-      base::TimeDelta::FromMilliseconds(kSlideAnimationDurationMs));
+  settings.SetTransitionDuration(base::Milliseconds(kSlideAnimationDurationMs));
 
   overlay_widget_->GetLayer()->SetTransform(gfx::Transform());
 }
diff --git a/ash/accessibility/switch_access/point_scan_layer_animation_info.cc b/ash/accessibility/switch_access/point_scan_layer_animation_info.cc
index cb9419c..37fce29 100644
--- a/ash/accessibility/switch_access/point_scan_layer_animation_info.cc
+++ b/ash/accessibility/switch_access/point_scan_layer_animation_info.cc
@@ -5,7 +5,7 @@
 #include "ash/accessibility/switch_access/point_scan_layer_animation_info.h"
 
 namespace {
-constexpr base::TimeDelta kLingerDelay = base::TimeDelta::FromMilliseconds(250);
+constexpr base::TimeDelta kLingerDelay = base::Milliseconds(250);
 }
 
 namespace ash {
diff --git a/ash/accessibility/test_accessibility_controller_client.h b/ash/accessibility/test_accessibility_controller_client.h
index e2909d7..19eef32 100644
--- a/ash/accessibility/test_accessibility_controller_client.h
+++ b/ash/accessibility/test_accessibility_controller_client.h
@@ -29,7 +29,7 @@
   ~TestAccessibilityControllerClient();
 
   static constexpr base::TimeDelta kShutdownSoundDuration =
-      base::TimeDelta::FromMilliseconds(1000);
+      base::Milliseconds(1000);
 
   // AccessibilityControllerClient:
   void TriggerAccessibilityAlert(AccessibilityAlert alert) override;
diff --git a/ash/accessibility/ui/accessibility_focus_ring_controller_impl.cc b/ash/accessibility/ui/accessibility_focus_ring_controller_impl.cc
index a3b20ad..20b17fc 100644
--- a/ash/accessibility/ui/accessibility_focus_ring_controller_impl.cc
+++ b/ash/accessibility/ui/accessibility_focus_ring_controller_impl.cc
@@ -45,13 +45,13 @@
 
 AccessibilityFocusRingControllerImpl::AccessibilityFocusRingControllerImpl() {
   cursor_animation_info_.fade_in_time =
-      base::TimeDelta::FromMilliseconds(kCursorFadeInTimeMilliseconds);
+      base::Milliseconds(kCursorFadeInTimeMilliseconds);
   cursor_animation_info_.fade_out_time =
-      base::TimeDelta::FromMilliseconds(kCursorFadeOutTimeMilliseconds);
+      base::Milliseconds(kCursorFadeOutTimeMilliseconds);
   caret_animation_info_.fade_in_time =
-      base::TimeDelta::FromMilliseconds(kCaretFadeInTimeMilliseconds);
+      base::Milliseconds(kCaretFadeInTimeMilliseconds);
   caret_animation_info_.fade_out_time =
-      base::TimeDelta::FromMilliseconds(kCaretFadeOutTimeMilliseconds);
+      base::Milliseconds(kCaretFadeOutTimeMilliseconds);
 }
 
 AccessibilityFocusRingControllerImpl::~AccessibilityFocusRingControllerImpl() =
@@ -156,13 +156,12 @@
        ++iter) {
     iter->second->set_no_fade_for_testing();
     iter->second->focus_animation_info()->fade_in_time = base::TimeDelta();
-    iter->second->focus_animation_info()->fade_out_time =
-        base::TimeDelta::FromHours(1);
+    iter->second->focus_animation_info()->fade_out_time = base::Hours(1);
   }
   cursor_animation_info_.fade_in_time = base::TimeDelta();
-  cursor_animation_info_.fade_out_time = base::TimeDelta::FromHours(1);
+  cursor_animation_info_.fade_out_time = base::Hours(1);
   caret_animation_info_.fade_in_time = base::TimeDelta();
-  caret_animation_info_.fade_out_time = base::TimeDelta::FromHours(1);
+  caret_animation_info_.fade_out_time = base::Hours(1);
 }
 
 const AccessibilityFocusRingGroup*
diff --git a/ash/accessibility/ui/accessibility_focus_ring_group.cc b/ash/accessibility/ui/accessibility_focus_ring_group.cc
index 810229b..e88fc27d 100644
--- a/ash/accessibility/ui/accessibility_focus_ring_group.cc
+++ b/ash/accessibility/ui/accessibility_focus_ring_group.cc
@@ -47,9 +47,9 @@
 
 AccessibilityFocusRingGroup::AccessibilityFocusRingGroup() {
   focus_animation_info_.fade_in_time =
-      base::TimeDelta::FromMilliseconds(kFocusFadeInTimeMilliseconds);
+      base::Milliseconds(kFocusFadeInTimeMilliseconds);
   focus_animation_info_.fade_out_time =
-      base::TimeDelta::FromMilliseconds(kFocusFadeOutTimeMilliseconds);
+      base::Milliseconds(kFocusFadeOutTimeMilliseconds);
 }
 
 AccessibilityFocusRingGroup::~AccessibilityFocusRingGroup() {}
@@ -113,7 +113,7 @@
   if (focus_ring_info_->behavior == FocusRingBehavior::PERSIST) {
     base::TimeDelta delta = timestamp - focus_animation_info_.change_time;
     base::TimeDelta transition_time =
-        base::TimeDelta::FromMilliseconds(kTransitionTimeMilliseconds);
+        base::Milliseconds(kTransitionTimeMilliseconds);
     if (delta >= transition_time) {
       focus_layers_[0]->Set(focus_rings_[0]);
       return true;
diff --git a/ash/ambient/ambient_constants.h b/ash/ambient/ambient_constants.h
index e0a891b..9c6aa8d 100644
--- a/ash/ambient/ambient_constants.h
+++ b/ash/ambient/ambient_constants.h
@@ -11,22 +11,18 @@
 
 // Duration of the slide show animation. Also used as |delay| in posted task to
 // download images.
-constexpr base::TimeDelta kAnimationDuration =
-    base::TimeDelta::FromMilliseconds(500);
+constexpr base::TimeDelta kAnimationDuration = base::Milliseconds(500);
 
 // Topic related numbers.
 
 // The default interval to fetch Topics.
-constexpr base::TimeDelta kTopicFetchInterval =
-    base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kTopicFetchInterval = base::Seconds(30);
 
 // The default interval to fetch backup cache photos.
-constexpr base::TimeDelta kBackupPhotoRefreshDelay =
-    base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kBackupPhotoRefreshDelay = base::Minutes(5);
 
 // The default interval to refresh weather.
-constexpr base::TimeDelta kWeatherRefreshInterval =
-    base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kWeatherRefreshInterval = base::Minutes(5);
 
 // The batch size of topics to fetch in one request.
 constexpr int kTopicsBatchSize = 100;
@@ -52,8 +48,7 @@
 constexpr char kAmbientModeBackupCacheDirectoryName[] = "backup";
 
 // The buffer time to use the access token.
-constexpr base::TimeDelta kTokenUsageTimeBuffer =
-    base::TimeDelta::FromMinutes(10);
+constexpr base::TimeDelta kTokenUsageTimeBuffer = base::Minutes(10);
 
 // PhotoView related constants.
 // Spacing between two portrait images.
diff --git a/ash/ambient/ambient_controller.cc b/ash/ambient/ambient_controller.cc
index 9c28778..2f7be47 100644
--- a/ash/ambient/ambient_controller.cc
+++ b/ash/ambient/ambient_controller.cc
@@ -611,7 +611,7 @@
     return;
 
   ambient_ui_model_.SetLockScreenInactivityTimeout(
-      base::TimeDelta::FromSeconds(pref_service->GetInteger(
+      base::Seconds(pref_service->GetInteger(
           ambient::prefs::kAmbientModeLockScreenInactivityTimeoutSeconds)));
 }
 
@@ -621,7 +621,7 @@
     return;
 
   ambient_ui_model_.SetBackgroundLockScreenTimeout(
-      base::TimeDelta::FromSeconds(pref_service->GetInteger(
+      base::Seconds(pref_service->GetInteger(
           ambient::prefs::kAmbientModeLockScreenBackgroundTimeoutSeconds)));
 }
 
@@ -631,7 +631,7 @@
     return;
 
   ambient_ui_model_.SetPhotoRefreshInterval(
-      base::TimeDelta::FromSeconds(pref_service->GetInteger(
+      base::Seconds(pref_service->GetInteger(
           ambient::prefs::kAmbientModePhotoRefreshIntervalSeconds)));
 }
 
diff --git a/ash/ambient/ambient_controller_unittest.cc b/ash/ambient/ambient_controller_unittest.cc
index 510e457f..707d663 100644
--- a/ash/ambient/ambient_controller_unittest.cc
+++ b/ash/ambient/ambient_controller_unittest.cc
@@ -318,8 +318,7 @@
 
   base::RunLoop run_loop_2;
   // When token expired, another token request will get empty token.
-  constexpr base::TimeDelta kTokenRefreshDelay =
-      base::TimeDelta::FromSeconds(60);
+  constexpr base::TimeDelta kTokenRefreshDelay = base::Seconds(60);
   task_environment()->FastForwardBy(kTokenRefreshDelay);
 
   closure = base::MakeExpectedRunClosure(FROM_HERE);
diff --git a/ash/ambient/autotest_ambient_api_unittest.cc b/ash/ambient/autotest_ambient_api_unittest.cc
index 7917425..48576fc4 100644
--- a/ash/ambient/autotest_ambient_api_unittest.cc
+++ b/ash/ambient/autotest_ambient_api_unittest.cc
@@ -30,7 +30,7 @@
   base::RunLoop run_loop;
   AutotestAmbientApi test_api;
   test_api.WaitForPhotoTransitionAnimationCompleted(
-      /*num_completions=*/10, /*timeout=*/base::TimeDelta::FromSeconds(30),
+      /*num_completions=*/10, /*timeout=*/base::Seconds(30),
       /*on_complete=*/run_loop.QuitClosure(),
       /*on_timeout=*/base::BindOnce([]() { NOTREACHED(); }));
   run_loop.Run();
@@ -47,7 +47,7 @@
   base::RunLoop run_loop;
   AutotestAmbientApi test_api;
   test_api.WaitForPhotoTransitionAnimationCompleted(
-      /*num_completions=*/10, /*timeout=*/base::TimeDelta::FromSeconds(5),
+      /*num_completions=*/10, /*timeout=*/base::Seconds(5),
       /*on_complete=*/base::BindOnce([]() { NOTREACHED(); }),
       /*on_timeout=*/run_loop.QuitClosure());
   run_loop.Run();
diff --git a/ash/ambient/model/ambient_backend_model_unittest.cc b/ash/ambient/model/ambient_backend_model_unittest.cc
index e90b44f..8fc1d18 100644
--- a/ash/ambient/model/ambient_backend_model_unittest.cc
+++ b/ash/ambient/model/ambient_backend_model_unittest.cc
@@ -167,7 +167,7 @@
   EXPECT_EQ(GetPhotoRefreshInterval(), kPhotoRefreshInterval);
 
   // Change the photo refresh interval.
-  const base::TimeDelta interval = base::TimeDelta::FromMinutes(1);
+  const base::TimeDelta interval = base::Minutes(1);
   SetPhotoRefreshInterval(interval);
   // The refresh interval will be the set value.
   EXPECT_EQ(GetPhotoRefreshInterval(), interval);
diff --git a/ash/ambient/test/ambient_ash_test_base.cc b/ash/ambient/test/ambient_ash_test_base.cc
index 0288fb7..bf37c32 100644
--- a/ash/ambient/test/ambient_ash_test_base.cc
+++ b/ash/ambient/test/ambient_ash_test_base.cc
@@ -66,7 +66,7 @@
     // Pretend to respond asynchronously.
     base::SequencedTaskRunnerHandle::Get()->PostDelayedTask(
         FROM_HERE, base::BindOnce(std::move(callback), std::move(data)),
-        base::TimeDelta::FromMilliseconds(1));
+        base::Milliseconds(1));
   }
 
   void DownloadPhotoToFile(const std::string& url,
@@ -174,8 +174,7 @@
   ambient_controller()->set_backend_controller_for_testing(nullptr);
   ambient_controller()->set_backend_controller_for_testing(
       std::make_unique<FakeAmbientBackendControllerImpl>());
-  token_controller()->SetTokenUsageBufferForTesting(
-      base::TimeDelta::FromSeconds(30));
+  token_controller()->SetTokenUsageBufferForTesting(base::Seconds(30));
   SetAmbientModeEnabled(true);
   base::RunLoop().RunUntilIdle();
 }
@@ -352,7 +351,7 @@
 void AmbientAshTestBase::FastForwardTiny() {
   // `TestAmbientURLLoaderImpl` has a small delay (1ms) to fake download delay,
   // here we fake plenty of time to download the image.
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(10));
+  task_environment()->FastForwardBy(base::Milliseconds(10));
 }
 
 void AmbientAshTestBase::FastForwardToBackgroundLockScreenTimeout() {
diff --git a/ash/ambient/test/test_ambient_client.cc b/ash/ambient/test/test_ambient_client.cc
index 69bcc5c..669bae7 100644
--- a/ash/ambient/test/test_ambient_client.cc
+++ b/ash/ambient/test/test_ambient_client.cc
@@ -18,8 +18,7 @@
 
 const char* kTestGaiaId = "0123456789";
 
-constexpr base::TimeDelta kDefaultTokenExpirationDelay =
-    base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kDefaultTokenExpirationDelay = base::Seconds(60);
 
 // A simple SharedURLLoaderFactory implementation for tests.
 class FakeSharedURLLoaderFactory : public network::SharedURLLoaderFactory {
diff --git a/ash/ambient/ui/media_string_view.cc b/ash/ambient/ui/media_string_view.cc
index 0f0deca..2326f8bf 100644
--- a/ash/ambient/ui/media_string_view.cc
+++ b/ash/ambient/ui/media_string_view.cc
@@ -331,8 +331,7 @@
     const int end_x = -(text_width + shadow_width) / 2;
     const int transform_distance = start_x - end_x;
     const base::TimeDelta kScrollingDuration =
-        base::TimeDelta::FromSeconds(10) * transform_distance /
-        kMediaStringMaxWidthDip;
+        base::Seconds(10) * transform_distance / kMediaStringMaxWidthDip;
 
     ui::ScopedLayerAnimationSettings animation(text_layer->GetAnimator());
     animation.SetTransitionDuration(kScrollingDuration);
diff --git a/ash/ambient/ui/media_string_view_unittest.cc b/ash/ambient/ui/media_string_view_unittest.cc
index 6d93df5..b436819 100644
--- a/ash/ambient/ui/media_string_view_unittest.cc
+++ b/ash/ambient/ui/media_string_view_unittest.cc
@@ -106,7 +106,7 @@
 
   EXPECT_FALSE(
       GetMediaStringViewTextLabel()->layer()->GetAnimator()->is_animating());
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  task_environment()->FastForwardBy(base::Milliseconds(100));
   EXPECT_FALSE(
       GetMediaStringViewTextLabel()->layer()->GetAnimator()->is_animating());
 }
@@ -131,7 +131,7 @@
 
   EXPECT_FALSE(
       GetMediaStringViewTextLabel()->layer()->GetAnimator()->is_animating());
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  task_environment()->FastForwardBy(base::Milliseconds(100));
   EXPECT_TRUE(
       GetMediaStringViewTextLabel()->layer()->GetAnimator()->is_animating());
 }
@@ -156,7 +156,7 @@
 
   EXPECT_FALSE(
       GetMediaStringViewTextLabel()->layer()->GetAnimator()->is_animating());
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  task_environment()->FastForwardBy(base::Milliseconds(100));
   EXPECT_TRUE(
       GetMediaStringViewTextLabel()->layer()->GetAnimator()->is_animating());
 
@@ -170,7 +170,7 @@
 
   EXPECT_FALSE(
       GetMediaStringViewTextLabel()->layer()->GetAnimator()->is_animating());
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  task_environment()->FastForwardBy(base::Milliseconds(100));
   EXPECT_TRUE(
       GetMediaStringViewTextLabel()->layer()->GetAnimator()->is_animating());
 }
@@ -195,7 +195,7 @@
 
   EXPECT_FALSE(
       GetMediaStringViewTextLabel()->layer()->GetAnimator()->is_animating());
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  task_environment()->FastForwardBy(base::Milliseconds(100));
   EXPECT_FALSE(
       GetMediaStringViewTextLabel()->layer()->GetAnimator()->is_animating());
 
@@ -209,7 +209,7 @@
 
   EXPECT_FALSE(
       GetMediaStringViewTextLabel()->layer()->GetAnimator()->is_animating());
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  task_environment()->FastForwardBy(base::Milliseconds(100));
   EXPECT_TRUE(
       GetMediaStringViewTextLabel()->layer()->GetAnimator()->is_animating());
 
@@ -223,7 +223,7 @@
 
   EXPECT_FALSE(
       GetMediaStringViewTextLabel()->layer()->GetAnimator()->is_animating());
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  task_environment()->FastForwardBy(base::Milliseconds(100));
   EXPECT_FALSE(
       GetMediaStringViewTextLabel()->layer()->GetAnimator()->is_animating());
 }
@@ -248,7 +248,7 @@
 
   EXPECT_FALSE(
       GetMediaStringViewTextLabel()->layer()->GetAnimator()->is_animating());
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  task_environment()->FastForwardBy(base::Milliseconds(100));
   EXPECT_TRUE(
       GetMediaStringViewTextLabel()->layer()->GetAnimator()->is_animating());
 
diff --git a/ash/app_list/app_list_controller_impl.cc b/ash/app_list/app_list_controller_impl.cc
index 9c06218..0d87cafa 100644
--- a/ash/app_list/app_list_controller_impl.cc
+++ b/ash/app_list/app_list_controller_impl.cc
@@ -96,7 +96,7 @@
 // The home launcher animation duration for transitions that accompany overview
 // fading transitions.
 constexpr base::TimeDelta kOverviewFadeAnimationDuration =
-    base::TimeDelta::FromMilliseconds(350);
+    base::Milliseconds(350);
 
 // Update layer animation settings for launcher scale and opacity animation that
 // runs on overview mode change.
diff --git a/ash/app_list/app_list_controller_impl_unittest.cc b/ash/app_list/app_list_controller_impl_unittest.cc
index bd5b7aed..5af2abe 100644
--- a/ash/app_list/app_list_controller_impl_unittest.cc
+++ b/ash/app_list/app_list_controller_impl_unittest.cc
@@ -539,8 +539,8 @@
 
   // Swipe away notification by gesture. Verifies that AppListView still shows.
   ui::test::EventGenerator* event_generator = GetEventGenerator();
-  event_generator->GestureScrollSequence(
-      drag_start, drag_end, base::TimeDelta::FromMicroseconds(500), 10);
+  event_generator->GestureScrollSequence(drag_start, drag_end,
+                                         base::Microseconds(500), 10);
   base::RunLoop().RunUntilIdle();
   EXPECT_TRUE(GetAppListView());
   EXPECT_EQ(
@@ -599,7 +599,7 @@
   // launcher to finish. Note that the launcher does not exist before toggling
   // the home button.
   PressHomeButton();
-  const base::TimeDelta delta = base::TimeDelta::FromMilliseconds(200);
+  const base::TimeDelta delta = base::Milliseconds(200);
   do {
     base::RunLoop run_loop;
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
@@ -1261,7 +1261,7 @@
       display::Screen::GetScreen()->GetPrimaryDisplay().bounds().CenterPoint();
   ui::test::EventGenerator* generator = GetEventGenerator();
   generator->GestureScrollSequence(shelf_center, target_point,
-                                   base::TimeDelta::FromMicroseconds(500), 1);
+                                   base::Microseconds(500), 1);
   EXPECT_EQ(AppListViewState::kFullscreenAllApps,
             GetAppListView()->app_list_state());
   histogram_tester_.ExpectTotalCount(
diff --git a/ash/app_list/app_list_presenter_unittest.cc b/ash/app_list/app_list_presenter_unittest.cc
index 7d5e523..728ba43 100644
--- a/ash/app_list/app_list_presenter_unittest.cc
+++ b/ash/app_list/app_list_presenter_unittest.cc
@@ -136,7 +136,7 @@
   target_point.Offset(0, offset);
 
   generator->GestureScrollSequence(start_point, target_point,
-                                   base::TimeDelta::FromMilliseconds(10), 2);
+                                   base::Milliseconds(10), 2);
 }
 
 std::unique_ptr<TestSearchResult> CreateOmniboxSuggestionResult(
@@ -2001,8 +2001,8 @@
   // result in no state change.
   ui::test::EventGenerator* generator = GetEventGenerator();
   generator->GestureScrollSequence(GetPointOutsideSearchbox(),
-                                   gfx::Point(10, 900),
-                                   base::TimeDelta::FromMilliseconds(100), 10);
+                                   gfx::Point(10, 900), base::Milliseconds(100),
+                                   10);
   GetAppListTestHelper()->WaitUntilIdle();
   GetAppListTestHelper()->CheckState(AppListViewState::kFullscreenAllApps);
 
@@ -2136,13 +2136,13 @@
       GetAppListView()->GetWidget()->GetWindowBoundsInScreen().y();
   generator->GestureScrollSequence(gfx::Point(0, top_of_app_list + 20),
                                    gfx::Point(0, top_of_app_list - 20),
-                                   base::TimeDelta::FromMilliseconds(500), 50);
+                                   base::Milliseconds(500), 50);
   GetAppListTestHelper()->CheckState(AppListViewState::kPeeking);
 
   // Execute a long upwards drag, this should transition the app list.
   generator->GestureScrollSequence(gfx::Point(10, top_of_app_list + 20),
-                                   gfx::Point(10, 10),
-                                   base::TimeDelta::FromMilliseconds(100), 10);
+                                   gfx::Point(10, 10), base::Milliseconds(100),
+                                   10);
   GetAppListTestHelper()->CheckState(AppListViewState::kFullscreenAllApps);
 
   // Execute a short downward drag, this should fail to transition the app list.
@@ -2165,8 +2165,8 @@
 
   // Transition to fullscreen.
   generator->GestureScrollSequence(gfx::Point(10, top_of_app_list + 20),
-                                   gfx::Point(10, 10),
-                                   base::TimeDelta::FromMilliseconds(100), 10);
+                                   gfx::Point(10, 10), base::Milliseconds(100),
+                                   10);
   GetAppListTestHelper()->CheckState(AppListViewState::kFullscreenAllApps);
 
   // Enter text to transition to |FULLSCREEN_SEARCH|.
@@ -2184,7 +2184,7 @@
 
   // Execute a long downward drag, this should close the app list.
   generator->GestureScrollSequence(gfx::Point(10, 10), gfx::Point(10, 900),
-                                   base::TimeDelta::FromMilliseconds(100), 10);
+                                   base::Milliseconds(100), 10);
   GetAppListTestHelper()->WaitUntilIdle();
   GetAppListTestHelper()->CheckState(AppListViewState::kClosed);
   GetAppListTestHelper()->CheckVisibility(false);
@@ -2500,8 +2500,8 @@
   const int top_of_app_list =
       app_list_view->GetWidget()->GetWindowBoundsInScreen().y();
   generator->GestureScrollSequence(gfx::Point(10, top_of_app_list + 20),
-                                   gfx::Point(10, 10),
-                                   base::TimeDelta::FromMilliseconds(100), 10);
+                                   gfx::Point(10, 10), base::Milliseconds(100),
+                                   10);
   GetAppListTestHelper()->WaitUntilIdle();
   GetAppListTestHelper()->CheckState(AppListViewState::kFullscreenAllApps);
 
@@ -2846,8 +2846,8 @@
                           .bottom();
   generator->GestureScrollSequence(
       gfx::Point(0, bezel_y - (kAppListBezelMargin + 100)),
-      gfx::Point(0, bezel_y - (kAppListBezelMargin)),
-      base::TimeDelta::FromMilliseconds(1500), 100);
+      gfx::Point(0, bezel_y - (kAppListBezelMargin)), base::Milliseconds(1500),
+      100);
 
   GetAppListTestHelper()->WaitUntilIdle();
   GetAppListTestHelper()->CheckState(AppListViewState::kClosed);
@@ -2886,7 +2886,7 @@
   GetEventGenerator()->GestureScrollSequence(
       gfx::Point(drag_x, bezel_y - (kAppListBezelMargin + 100)),
       gfx::Point(drag_x, bezel_y - (kAppListBezelMargin)),
-      base::TimeDelta::FromMilliseconds(1500), 100);
+      base::Milliseconds(1500), 100);
 
   GetAppListTestHelper()->WaitUntilIdle();
   SCOPED_TRACE("Closed");
diff --git a/ash/app_list/views/app_drag_icon_proxy_unittest.cc b/ash/app_list/views/app_drag_icon_proxy_unittest.cc
index a5ab186..5dd262c 100644
--- a/ash/app_list/views/app_drag_icon_proxy_unittest.cc
+++ b/ash/app_list/views/app_drag_icon_proxy_unittest.cc
@@ -232,8 +232,7 @@
   {
     ui::ScopedLayerAnimationSettings animation_settings(
         drag_icon_proxy->GetImageLayerForTesting()->GetAnimator());
-    animation_settings.SetTransitionDuration(
-        base::TimeDelta::FromMilliseconds(300));
+    animation_settings.SetTransitionDuration(base::Milliseconds(300));
     gfx::Transform transform;
     transform.Translate(100, 100);
     drag_icon_proxy->GetImageLayerForTesting()->SetTransform(transform);
diff --git a/ash/app_list/views/app_list_folder_view.cc b/ash/app_list/views/app_list_folder_view.cc
index 2a706032..174b5e7a 100644
--- a/ash/app_list/views/app_list_folder_view.cc
+++ b/ash/app_list/views/app_list_folder_view.cc
@@ -78,8 +78,7 @@
 // Duration for fading in the target page when opening
 // or closing a folder, and the duration for the top folder icon animation
 // for flying in or out the folder.
-constexpr base::TimeDelta kFolderTransitionDuration =
-    base::TimeDelta::FromMilliseconds(250);
+constexpr base::TimeDelta kFolderTransitionDuration = base::Milliseconds(250);
 
 // Transit from the background of the folder item's icon to the opened
 // folder's background when opening the folder. Transit the other way when
diff --git a/ash/app_list/views/app_list_item_view.cc b/ash/app_list/views/app_list_item_view.cc
index 8a01940f..709a49f 100644
--- a/ash/app_list/views/app_list_item_view.cc
+++ b/ash/app_list/views/app_list_item_view.cc
@@ -210,7 +210,7 @@
     if (animate) {
       settings.emplace(layer()->GetAnimator());
       settings->SetTweenType(gfx::Tween::EASE_IN);
-      settings->SetTransitionDuration(base::TimeDelta::FromMilliseconds(125));
+      settings->SetTransitionDuration(base::Milliseconds(125));
     }
 
     extended_ = extended;
@@ -431,7 +431,7 @@
 
   ui::ScopedLayerAnimationSettings settings(layer()->GetAnimator());
   settings.SetTransitionDuration(
-      base::TimeDelta::FromMilliseconds((kDragDropAppIconScaleTransitionInMs)));
+      base::Milliseconds((kDragDropAppIconScaleTransitionInMs)));
   settings.SetTweenType(gfx::Tween::EASE_OUT_2);
   if (scale_up) {
     if (is_folder_) {
@@ -736,9 +736,8 @@
   if (!InitiateDrag(event.location(), event.root_location()))
     return true;
 
-  mouse_drag_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(kMouseDragUIDelayInMs), this,
-      &AppListItemView::OnMouseDragTimer);
+  mouse_drag_timer_.Start(FROM_HERE, base::Milliseconds(kMouseDragUIDelayInMs),
+                          this, &AppListItemView::OnMouseDragTimer);
   return true;
 }
 
@@ -860,8 +859,7 @@
       if (GetState() != STATE_DISABLED) {
         SetState(STATE_PRESSED);
         touch_drag_timer_.Start(
-            FROM_HERE,
-            base::TimeDelta::FromMilliseconds(kTouchLongpressDelayInMs),
+            FROM_HERE, base::Milliseconds(kTouchLongpressDelayInMs),
             base::BindOnce(&AppListItemView::OnTouchDragTimer,
                            base::Unretained(this), event->location(),
                            event->root_location()));
@@ -1128,8 +1126,7 @@
 
   dragged_view_hover_animation_ = std::make_unique<gfx::SlideAnimation>(this);
   dragged_view_hover_animation_->SetTweenType(gfx::Tween::EASE_IN);
-  dragged_view_hover_animation_->SetSlideDuration(
-      base::TimeDelta::FromMilliseconds(250));
+  dragged_view_hover_animation_->SetSlideDuration(base::Milliseconds(250));
 }
 
 void AppListItemView::AdaptBoundsForSelectionHighlight(gfx::Rect* bounds) {
diff --git a/ash/app_list/views/app_list_view.cc b/ash/app_list/views/app_list_view.cc
index a7a3130..60281f7 100644
--- a/ash/app_list/views/app_list_view.cc
+++ b/ash/app_list/views/app_list_view.cc
@@ -978,10 +978,9 @@
     page_reset_timer_.Stop();
     return;
   }
-  page_reset_timer_.Start(
-      FROM_HERE,
-      base::TimeDelta::FromMinutes(kAppListPageResetTimeLimitMinutes), this,
-      &AppListView::SelectInitialAppsPage);
+  page_reset_timer_.Start(FROM_HERE,
+                          base::Minutes(kAppListPageResetTimeLimitMinutes),
+                          this, &AppListView::SelectInitialAppsPage);
 
   if (skip_page_reset_timer_for_testing)
     page_reset_timer_.FireNow();
@@ -1833,19 +1832,17 @@
   if (ShortAnimationsForTesting() || is_side_shelf_ ||
       (target_state == AppListViewState::kClosed &&
        delegate_->ShouldDismissImmediately())) {
-    return base::TimeDelta::FromMilliseconds(
-        kAppListAnimationDurationImmediateMs);
+    return base::Milliseconds(kAppListAnimationDurationImmediateMs);
   }
 
   if (is_fullscreen() || target_state == AppListViewState::kFullscreenAllApps ||
       target_state == AppListViewState::kFullscreenSearch) {
     // Animate over more time to or from a fullscreen state, to maintain a
     // similar speed.
-    return base::TimeDelta::FromMilliseconds(
-        kAppListAnimationDurationFromFullscreenMs);
+    return base::Milliseconds(kAppListAnimationDurationFromFullscreenMs);
   }
 
-  return base::TimeDelta::FromMilliseconds(kAppListAnimationDurationMs);
+  return base::Milliseconds(kAppListAnimationDurationMs);
 }
 
 void AppListView::StartAnimationForState(AppListViewState target_state) {
diff --git a/ash/app_list/views/app_list_view_unittest.cc b/ash/app_list/views/app_list_view_unittest.cc
index fa30f1b..6484230 100644
--- a/ash/app_list/views/app_list_view_unittest.cc
+++ b/ash/app_list/views/app_list_view_unittest.cc
@@ -2194,7 +2194,7 @@
       "Apps.StateTransition.Drag.PresentationTime.ClamshellMode", 0);
 
   // Drag down the launcher.
-  timestamp += base::TimeDelta::FromMilliseconds(25);
+  timestamp += base::Milliseconds(25);
   delta_y += 10;
   start.Offset(0, 1);
   ui::GestureEvent update_event = ui::GestureEvent(
@@ -2221,7 +2221,7 @@
 
   // Ends to drag the launcher.
   EXPECT_TRUE(SetAppListState(ash::AppListState::kStateApps));
-  timestamp += base::TimeDelta::FromMilliseconds(25);
+  timestamp += base::Milliseconds(25);
   start.Offset(0, 1);
   ui::GestureEvent end_event =
       ui::GestureEvent(start.x(), start.y() + delta_y, ui::EF_NONE, timestamp,
diff --git a/ash/app_list/views/apps_grid_view.cc b/ash/app_list/views/apps_grid_view.cc
index cf436cb4..91efcad 100644
--- a/ash/app_list/views/apps_grid_view.cc
+++ b/ash/app_list/views/apps_grid_view.cc
@@ -82,8 +82,7 @@
 
 // Time delay before shelf starts to handle icon drag operation,
 // such as shelf icons re-layout.
-constexpr base::TimeDelta kShelfHandleIconDragDelay =
-    base::TimeDelta::FromMilliseconds(500);
+constexpr base::TimeDelta kShelfHandleIconDragDelay = base::Milliseconds(500);
 
 // The drag and drop proxy should get scaled by this factor.
 constexpr float kDragAndDropProxyScale = 1.2f;
@@ -573,15 +572,13 @@
       // the item
       if (last_drop_target_region == BETWEEN_ITEMS)
         reorder_timer_.Stop();
-      reorder_timer_.Start(FROM_HERE,
-                           base::TimeDelta::FromMilliseconds(kReorderDelay * 5),
+      reorder_timer_.Start(FROM_HERE, base::Milliseconds(kReorderDelay * 5),
                            this, &AppsGridView::OnReorderTimer);
     } else if (drop_target_region_ != NO_TARGET) {
       // If none of the above cases evaluated true, then all of the possible
       // drop regions should result in a fast reorder.
-      reorder_timer_.Start(FROM_HERE,
-                           base::TimeDelta::FromMilliseconds(kReorderDelay),
-                           this, &AppsGridView::OnReorderTimer);
+      reorder_timer_.Start(FROM_HERE, base::Milliseconds(kReorderDelay), this,
+                           &AppsGridView::OnReorderTimer);
     }
   }
 }
@@ -1385,8 +1382,7 @@
   if (is_item_dragged_out_of_folder) {
     if (!drag_out_of_folder_container_) {
       folder_item_reparent_timer_.Start(
-          FROM_HERE,
-          base::TimeDelta::FromMilliseconds(kFolderItemReparentDelay), this,
+          FROM_HERE, base::Milliseconds(kFolderItemReparentDelay), this,
           &AppsGridView::OnFolderItemReparentTimer);
       drag_out_of_folder_container_ = true;
     }
diff --git a/ash/app_list/views/apps_grid_view_unittest.cc b/ash/app_list/views/apps_grid_view_unittest.cc
index f6986ce..183082d 100644
--- a/ash/app_list/views/apps_grid_view_unittest.cc
+++ b/ash/app_list/views/apps_grid_view_unittest.cc
@@ -323,11 +323,9 @@
   }
 
   void SetPageFlipDurationForTest(PagedAppsGridView* apps_grid_view) {
-    apps_grid_view->set_page_flip_delay_for_testing(
-        base::TimeDelta::FromMilliseconds(3));
+    apps_grid_view->set_page_flip_delay_for_testing(base::Milliseconds(3));
     apps_grid_view->pagination_model()->SetTransitionDurations(
-        base::TimeDelta::FromMilliseconds(2),
-        base::TimeDelta::FromMilliseconds(1));
+        base::Milliseconds(2), base::Milliseconds(1));
   }
 
   bool HasPendingPageFlip(PagedAppsGridView* apps_grid_view) {
diff --git a/ash/app_list/views/assistant/assistant_dialog_plate.cc b/ash/app_list/views/assistant/assistant_dialog_plate.cc
index a484cf4..49129b3 100644
--- a/ash/app_list/views/assistant/assistant_dialog_plate.cc
+++ b/ash/app_list/views/assistant/assistant_dialog_plate.cc
@@ -51,14 +51,11 @@
 constexpr int kPaddingTopDip = 12;
 
 // Animation.
-constexpr base::TimeDelta kAnimationFadeInDelay =
-    base::TimeDelta::FromMilliseconds(83);
-constexpr base::TimeDelta kAnimationFadeInDuration =
-    base::TimeDelta::FromMilliseconds(100);
-constexpr base::TimeDelta kAnimationFadeOutDuration =
-    base::TimeDelta::FromMilliseconds(83);
+constexpr base::TimeDelta kAnimationFadeInDelay = base::Milliseconds(83);
+constexpr base::TimeDelta kAnimationFadeInDuration = base::Milliseconds(100);
+constexpr base::TimeDelta kAnimationFadeOutDuration = base::Milliseconds(83);
 constexpr base::TimeDelta kAnimationTransformInDuration =
-    base::TimeDelta::FromMilliseconds(333);
+    base::Milliseconds(333);
 constexpr int kAnimationTranslationDip = 30;
 
 using keyboard::KeyboardUIController;
diff --git a/ash/app_list/views/assistant/assistant_main_stage.cc b/ash/app_list/views/assistant/assistant_main_stage.cc
index fa13b5775..53faf17 100644
--- a/ash/app_list/views/assistant/assistant_main_stage.cc
+++ b/ash/app_list/views/assistant/assistant_main_stage.cc
@@ -54,28 +54,28 @@
 
 // Footer entry animation.
 constexpr base::TimeDelta kFooterEntryAnimationFadeInDelay =
-    base::TimeDelta::FromMilliseconds(283);
+    base::Milliseconds(283);
 constexpr base::TimeDelta kFooterEntryAnimationFadeInDuration =
-    base::TimeDelta::FromMilliseconds(167);
+    base::Milliseconds(167);
 
 // Divider animation.
 constexpr base::TimeDelta kDividerAnimationFadeInDelay =
-    base::TimeDelta::FromMilliseconds(233);
+    base::Milliseconds(233);
 constexpr base::TimeDelta kDividerAnimationFadeInDuration =
-    base::TimeDelta::FromMilliseconds(167);
+    base::Milliseconds(167);
 constexpr base::TimeDelta kDividerAnimationFadeOutDuration =
-    base::TimeDelta::FromMilliseconds(83);
+    base::Milliseconds(83);
 
 // Zero state animation.
 constexpr base::TimeDelta kZeroStateAnimationFadeOutDuration =
-    base::TimeDelta::FromMilliseconds(83);
+    base::Milliseconds(83);
 constexpr int kZeroStateAnimationTranslationDip = 115;
 constexpr base::TimeDelta kZeroStateAnimationFadeInDelay =
-    base::TimeDelta::FromMilliseconds(33);
+    base::Milliseconds(33);
 constexpr base::TimeDelta kZeroStateAnimationFadeInDuration =
-    base::TimeDelta::FromMilliseconds(167);
+    base::Milliseconds(167);
 constexpr base::TimeDelta kZeroStateAnimationTranslateUpDuration =
-    base::TimeDelta::FromMilliseconds(250);
+    base::Milliseconds(250);
 
 // Helpers ---------------------------------------------------------------------
 
@@ -377,7 +377,7 @@
   // Animate the opacity to 100% with delay equal to |zero_state_view_| fade out
   // animation duration to avoid the two views displaying at the same time.
   constexpr base::TimeDelta kQueryAnimationFadeInDuration =
-      base::TimeDelta::FromMilliseconds(433);
+      base::Milliseconds(433);
   query_view_->layer()->SetOpacity(0.f);
   query_view_->layer()->GetAnimator()->StartAnimation(
       CreateLayerAnimationSequence(
diff --git a/ash/app_list/views/assistant/assistant_main_view.cc b/ash/app_list/views/assistant/assistant_main_view.cc
index 1e3a09f..f9b540a 100644
--- a/ash/app_list/views/assistant/assistant_main_view.cc
+++ b/ash/app_list/views/assistant/assistant_main_view.cc
@@ -28,9 +28,9 @@
 
 // Dialog plate animation.
 constexpr base::TimeDelta kDialogPlateAnimationFadeInDelay =
-    base::TimeDelta::FromMilliseconds(283);
+    base::Milliseconds(283);
 constexpr base::TimeDelta kDialogPlateAnimationFadeInDuration =
-    base::TimeDelta::FromMilliseconds(167);
+    base::Milliseconds(167);
 
 }  // namespace
 
diff --git a/ash/app_list/views/assistant/assistant_page_view_unittest.cc b/ash/app_list/views/assistant/assistant_page_view_unittest.cc
index e298b06..32f5d8a 100644
--- a/ash/app_list/views/assistant/assistant_page_view_unittest.cc
+++ b/ash/app_list/views/assistant/assistant_page_view_unittest.cc
@@ -570,10 +570,9 @@
 TEST_P(AssistantPageClamshellTest, ShouldShowOnboardingForNewUsers) {
   // A user is considered new if they haven't had an Assistant interaction in
   // the past 28 days.
-  const base::Time new_user_cutoff =
-      base::Time::Now() - base::TimeDelta::FromDays(28);
+  const base::Time new_user_cutoff = base::Time::Now() - base::Days(28);
 
-  SetTimeOfLastInteraction(new_user_cutoff + base::TimeDelta::FromMinutes(1));
+  SetTimeOfLastInteraction(new_user_cutoff + base::Minutes(1));
   ShowAssistantUi();
 
   // This user *has* interacted with Assistant more recently than 28 days ago so
@@ -591,7 +590,7 @@
 }
 
 TEST_P(AssistantPageClamshellTest, ShouldShowOnboardingUntilInteractionOccurs) {
-  SetTimeOfLastInteraction(base::Time::Now() - base::TimeDelta::FromDays(28));
+  SetTimeOfLastInteraction(base::Time::Now() - base::Days(28));
   ShowAssistantUi();
 
   // This user has *not* interacted with Assistant more recently than 28 days
diff --git a/ash/app_list/views/contents_view.cc b/ash/app_list/views/contents_view.cc
index b57819e..222fa1e 100644
--- a/ash/app_list/views/contents_view.cc
+++ b/ash/app_list/views/contents_view.cc
@@ -77,12 +77,11 @@
 constexpr float kSearchBoxOpacityEndProgress = 1.0f;
 
 // Duration for page transition.
-constexpr base::TimeDelta kPageTransitionDuration =
-    base::TimeDelta::FromMilliseconds(250);
+constexpr base::TimeDelta kPageTransitionDuration = base::Milliseconds(250);
 
 // Duration for overscroll page transition.
 constexpr base::TimeDelta kOverscrollPageTransitionDuration =
-    base::TimeDelta::FromMilliseconds(50);
+    base::Milliseconds(50);
 
 // Calculates opacity value for the current app list progress.
 // |progress| - The target app list view progress - a value in [0.0, 2.0]
diff --git a/ash/app_list/views/expand_arrow_view.cc b/ash/app_list/views/expand_arrow_view.cc
index 1fdb23e..27a8a26 100644
--- a/ash/app_list/views/expand_arrow_view.cc
+++ b/ash/app_list/views/expand_arrow_view.cc
@@ -74,8 +74,8 @@
 constexpr float kPulseMaxOpacity = 0.3f;
 constexpr int kAnimationInitialWaitTimeInSec = 3;
 constexpr int kAnimationIntervalInSec = 10;
-constexpr auto kCycleDuration = base::TimeDelta::FromMilliseconds(1000);
-constexpr auto kCycleInterval = base::TimeDelta::FromMilliseconds(500);
+constexpr auto kCycleDuration = base::Milliseconds(1000);
+constexpr auto kCycleInterval = base::Milliseconds(500);
 
 constexpr int kFocusRingWidth = 2;
 
@@ -302,14 +302,10 @@
   }
 
   // Update pulse opacity.
-  constexpr auto kPulseOpacityShowBeginTime =
-      base::TimeDelta::FromMilliseconds(100);
-  constexpr auto kPulseOpacityShowEndTime =
-      base::TimeDelta::FromMilliseconds(200);
-  constexpr auto kPulseOpacityHideBeginTime =
-      base::TimeDelta::FromMilliseconds(800);
-  constexpr auto kPulseOpacityHideEndTime =
-      base::TimeDelta::FromMilliseconds(1000);
+  constexpr auto kPulseOpacityShowBeginTime = base::Milliseconds(100);
+  constexpr auto kPulseOpacityShowEndTime = base::Milliseconds(200);
+  constexpr auto kPulseOpacityHideBeginTime = base::Milliseconds(800);
+  constexpr auto kPulseOpacityHideEndTime = base::Milliseconds(1000);
   if (time > kPulseOpacityShowBeginTime && time <= kPulseOpacityShowEndTime) {
     pulse_opacity_ =
         kPulseMinOpacity +
@@ -332,11 +328,10 @@
                                                   time / kCycleDuration));
 
   // Update y position offset of the arrow.
-  constexpr auto kArrowMoveOutBeginTime =
-      base::TimeDelta::FromMilliseconds(100);
-  constexpr auto kArrowMoveOutEndTime = base::TimeDelta::FromMilliseconds(500);
-  constexpr auto kArrowMoveInBeginTime = base::TimeDelta::FromMilliseconds(500);
-  constexpr auto kArrowMoveInEndTime = base::TimeDelta::FromMilliseconds(900);
+  constexpr auto kArrowMoveOutBeginTime = base::Milliseconds(100);
+  constexpr auto kArrowMoveOutEndTime = base::Milliseconds(500);
+  constexpr auto kArrowMoveInBeginTime = base::Milliseconds(500);
+  constexpr auto kArrowMoveInEndTime = base::Milliseconds(900);
   if (time > kArrowMoveOutBeginTime && time <= kArrowMoveOutEndTime) {
     const double progress = (time - kArrowMoveOutBeginTime) /
                             (kArrowMoveOutEndTime - kArrowMoveOutBeginTime);
@@ -408,9 +403,8 @@
   int delay_in_sec = kAnimationIntervalInSec;
   if (is_first_time)
     delay_in_sec = kAnimationInitialWaitTimeInSec;
-  hinting_animation_timer_.Start(FROM_HERE,
-                                 base::TimeDelta::FromSeconds(delay_in_sec),
-                                 this, &ExpandArrowView::StartHintingAnimation);
+  hinting_animation_timer_.Start(FROM_HERE, base::Seconds(delay_in_sec), this,
+                                 &ExpandArrowView::StartHintingAnimation);
 }
 
 void ExpandArrowView::StartHintingAnimation() {
diff --git a/ash/app_list/views/ghost_image_view.cc b/ash/app_list/views/ghost_image_view.cc
index b8a0fcc..c4ade68 100644
--- a/ash/app_list/views/ghost_image_view.cc
+++ b/ash/app_list/views/ghost_image_view.cc
@@ -25,8 +25,7 @@
 constexpr int kGhostColorOpacity = 0x4D;  // 30% opacity.
 constexpr int kRootGridGhostColor = gfx::kGoogleGrey200;
 constexpr int kInFolderGhostColor = gfx::kGoogleGrey700;
-constexpr base::TimeDelta kGhostFadeInOutLength =
-    base::TimeDelta::FromMilliseconds(180);
+constexpr base::TimeDelta kGhostFadeInOutLength = base::Milliseconds(180);
 constexpr gfx::Tween::Type kGhostTween = gfx::Tween::FAST_OUT_SLOW_IN;
 
 }  // namespace
diff --git a/ash/app_list/views/paged_apps_grid_view.cc b/ash/app_list/views/paged_apps_grid_view.cc
index a66b9a1..1c4bda3 100644
--- a/ash/app_list/views/paged_apps_grid_view.cc
+++ b/ash/app_list/views/paged_apps_grid_view.cc
@@ -66,12 +66,10 @@
     "TabletMode";
 
 // Delay in milliseconds to do the page flip in fullscreen app list.
-constexpr base::TimeDelta kPageFlipDelay =
-    base::TimeDelta::FromMilliseconds(500);
+constexpr base::TimeDelta kPageFlipDelay = base::Milliseconds(500);
 
 // Duration for page transition.
-constexpr base::TimeDelta kPageTransitionDuration =
-    base::TimeDelta::FromMilliseconds(250);
+constexpr base::TimeDelta kPageTransitionDuration = base::Milliseconds(250);
 
 // The size of the zone within which app list item drag events will trigger a
 // page flip.
@@ -82,7 +80,7 @@
 
 // Duration for overscroll page transition.
 constexpr base::TimeDelta kOverscrollPageTransitionDuration =
-    base::TimeDelta::FromMilliseconds(50);
+    base::Milliseconds(50);
 
 // Vertical padding between the apps grid pages.
 constexpr int kPaddingBetweenPages = 48;
@@ -1170,7 +1168,7 @@
     animator.SetTweenType(kCardifiedStateTweenType);
     if (!cardified_state_) {
       animator.SetTransitionDuration(
-          base::TimeDelta::FromMilliseconds(kDefaultAnimationDuration));
+          base::Milliseconds(kDefaultAnimationDuration));
     }
     // When the animations are done, discard the layer and reset view to
     // proper scale.
@@ -1191,7 +1189,7 @@
         ui::LayerAnimator::IMMEDIATELY_ANIMATE_TO_NEW_TARGET);
     if (!cardified_state_) {
       animator.SetTransitionDuration(
-          base::TimeDelta::FromMilliseconds(kDefaultAnimationDuration));
+          base::Milliseconds(kDefaultAnimationDuration));
     }
     animator.AddObserver(this);
     ui::AnimationThroughputReporter reporter(
diff --git a/ash/app_list/views/paged_apps_grid_view_unittest.cc b/ash/app_list/views/paged_apps_grid_view_unittest.cc
index b7a14eba..870a306 100644
--- a/ash/app_list/views/paged_apps_grid_view_unittest.cc
+++ b/ash/app_list/views/paged_apps_grid_view_unittest.cc
@@ -166,7 +166,7 @@
   // Drag the item at page 1 slot 0 to the next page and hold it there.
   StartDragOnItemViewAtVisualIndex(1, 0);
   GetEventGenerator()->MoveMouseTo(next_page_point);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_environment()->FastForwardBy(base::Seconds(2));
   GetEventGenerator()->ReleaseLeftButton();
 
   // With the drag complete, check that page 1 is still selected, because a new
diff --git a/ash/app_list/views/pulsing_block_view.cc b/ash/app_list/views/pulsing_block_view.cc
index a32cdb0..a16e32e 100644
--- a/ash/app_list/views/pulsing_block_view.cc
+++ b/ash/app_list/views/pulsing_block_view.cc
@@ -40,16 +40,14 @@
   views::AnimationBuilder builder;
   views::AnimationSequenceBlock block = builder.Repeatedly();
   for (size_t i = 0; i < base::size(kAnimationOpacity); ++i) {
-    block = block
-                .SetDuration(
-                    base::TimeDelta::FromMilliseconds(kAnimationDurationInMs))
+    block = block.SetDuration(base::Milliseconds(kAnimationDurationInMs))
                 .SetOpacity(layer, kAnimationOpacity[i])
                 .SetTransform(layer,
                               gfx::GetScaleTransform(local_bounds.CenterPoint(),
                                                      kAnimationScale[i]))
                 .Then();
   }
-  block.SetDuration(base::TimeDelta::FromMilliseconds(kAnimationDurationInMs));
+  block.SetDuration(base::Milliseconds(kAnimationDurationInMs));
 }
 
 }  // namespace
@@ -62,8 +60,8 @@
 
   const int max_delay = kAnimationDurationInMs * base::size(kAnimationOpacity);
   const int delay = start_delay ? base::RandInt(0, max_delay) : 0;
-  start_delay_timer_.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(delay),
-                           this, &PulsingBlockView::OnStartDelayTimer);
+  start_delay_timer_.Start(FROM_HERE, base::Milliseconds(delay), this,
+                           &PulsingBlockView::OnStartDelayTimer);
 }
 
 PulsingBlockView::~PulsingBlockView() {}
diff --git a/ash/app_list/views/scrollable_apps_grid_view.cc b/ash/app_list/views/scrollable_apps_grid_view.cc
index ff4d99cb..f32c203 100644
--- a/ash/app_list/views/scrollable_apps_grid_view.cc
+++ b/ash/app_list/views/scrollable_apps_grid_view.cc
@@ -34,7 +34,7 @@
 constexpr int kAutoScrollMargin = 32;
 
 // How often to auto-scroll when the mouse is held in the auto-scroll margin.
-constexpr base::TimeDelta kAutoScrollInterval = base::TimeDelta::FromHz(60.0);
+constexpr base::TimeDelta kAutoScrollInterval = base::Hertz(60.0);
 
 // How much to auto-scroll the view per second. Empirically chosen.
 const int kAutoScrollDipsPerSecond = 400;
diff --git a/ash/app_list/views/scrollable_apps_grid_view_unittest.cc b/ash/app_list/views/scrollable_apps_grid_view_unittest.cc
index 1fcddbf3..766aeb3 100644
--- a/ash/app_list/views/scrollable_apps_grid_view_unittest.cc
+++ b/ash/app_list/views/scrollable_apps_grid_view_unittest.cc
@@ -305,7 +305,7 @@
   EXPECT_FALSE(apps_grid_view_->reorder_timer_for_test()->IsRunning());
 
   // Holding the mouse in place for a while scrolls down more.
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  task_environment()->FastForwardBy(base::Milliseconds(100));
   const int scroll_offset2 = scroll_view_->GetVisibleRect().y();
   EXPECT_GT(scroll_offset2, scroll_offset1);
 
@@ -330,7 +330,7 @@
   StartDragOnItemViewAt(0);
   GetEventGenerator()->MoveMouseTo(
       scroll_view_->GetBoundsInScreen().top_center());
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(500));
+  task_environment()->FastForwardBy(base::Milliseconds(500));
 
   // View did not scroll.
   int scroll_offset = scroll_view_->GetVisibleRect().y();
@@ -351,7 +351,7 @@
   StartDragOnItemViewAt(29);
   GetEventGenerator()->MoveMouseTo(
       scroll_view_->GetBoundsInScreen().bottom_center());
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(500));
+  task_environment()->FastForwardBy(base::Milliseconds(500));
 
   // View did not scroll.
   int scroll_offset = scroll_view_->GetVisibleRect().y();
@@ -369,7 +369,7 @@
   gfx::Point point = scroll_view_->GetBoundsInScreen().bottom_right();
   point.Offset(10, 10);
   GetEventGenerator()->MoveMouseTo(point);
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(500));
+  task_environment()->FastForwardBy(base::Milliseconds(500));
 
   // View did not scroll.
   int scroll_offset = scroll_view_->GetVisibleRect().y();
diff --git a/ash/app_list/views/search_result_list_view.cc b/ash/app_list/views/search_result_list_view.cc
index f4725cc1..b0f911a6 100644
--- a/ash/app_list/views/search_result_list_view.cc
+++ b/ash/app_list/views/search_result_list_view.cc
@@ -48,8 +48,7 @@
 constexpr int kPreferredTitleTopMargins = 12;
 constexpr int kPreferredTitleBottomMargins = 4;
 
-constexpr base::TimeDelta kImpressionThreshold =
-    base::TimeDelta::FromSeconds(3);
+constexpr base::TimeDelta kImpressionThreshold = base::Seconds(3);
 
 // TODO(crbug.com/1199206): Move this into SharedAppListConfig once the UI for
 // categories is more developed.
diff --git a/ash/app_list/views/search_result_page_view.cc b/ash/app_list/views/search_result_page_view.cc
index 9f9a60a..f609f8f2 100644
--- a/ash/app_list/views/search_result_page_view.cc
+++ b/ash/app_list/views/search_result_page_view.cc
@@ -75,8 +75,7 @@
 
 // The amount of time by which notifications to accessibility framework about
 // result page changes are delayed.
-constexpr base::TimeDelta kNotifyA11yDelay =
-    base::TimeDelta::FromMilliseconds(1500);
+constexpr base::TimeDelta kNotifyA11yDelay = base::Milliseconds(1500);
 
 // A container view that ensures the card background and the shadow are painted
 // in the correct order.
diff --git a/ash/app_list/views/search_result_tile_item_list_view.cc b/ash/app_list/views/search_result_tile_item_list_view.cc
index 10a17fc..d22f418 100644
--- a/ash/app_list/views/search_result_tile_item_list_view.cc
+++ b/ash/app_list/views/search_result_tile_item_list_view.cc
@@ -199,8 +199,7 @@
     recent_playstore_query_ = user_typed_query;
     playstore_impression_timer_.Stop();
     playstore_impression_timer_.Start(
-        FROM_HERE,
-        base::TimeDelta::FromMilliseconds(kPlayStoreImpressionDelayInMs), this,
+        FROM_HERE, base::Milliseconds(kPlayStoreImpressionDelayInMs), this,
         &SearchResultTileItemListView::OnPlayStoreImpressionTimer);
     // Set the starting time in result view for play store results.
     base::TimeTicks result_display_start = base::TimeTicks::Now();
diff --git a/ash/assistant/assistant_alarm_timer_controller_impl.cc b/ash/assistant/assistant_alarm_timer_controller_impl.cc
index 25dd430..cb7f0634 100644
--- a/ash/assistant/assistant_alarm_timer_controller_impl.cc
+++ b/ash/assistant/assistant_alarm_timer_controller_impl.cc
@@ -192,13 +192,13 @@
          /*remove_notification_on_click=*/true});
 
     // "ADD 1 MIN" button.
-    buttons.push_back({l10n_util::GetStringUTF8(
-                           IDS_ASSISTANT_TIMER_NOTIFICATION_ADD_1_MIN_BUTTON),
-                       assistant::util::CreateAlarmTimerDeepLink(
-                           AlarmTimerAction::kAddTimeToTimer, timer.id,
-                           base::TimeDelta::FromMinutes(1))
-                           .value(),
-                       /*remove_notification_on_click=*/false});
+    buttons.push_back(
+        {l10n_util::GetStringUTF8(
+             IDS_ASSISTANT_TIMER_NOTIFICATION_ADD_1_MIN_BUTTON),
+         assistant::util::CreateAlarmTimerDeepLink(
+             AlarmTimerAction::kAddTimeToTimer, timer.id, base::Minutes(1))
+             .value(),
+         /*remove_notification_on_click=*/false});
   } else {
     // "CANCEL" button.
     buttons.push_back({l10n_util::GetStringUTF8(
@@ -222,7 +222,7 @@
 
   // If the notification has lived for at least |kPopupThreshold|, drop the
   // priority to |kLow| so that the notification will not pop up to the user.
-  constexpr base::TimeDelta kPopupThreshold = base::TimeDelta::FromSeconds(6);
+  constexpr base::TimeDelta kPopupThreshold = base::Seconds(6);
   const base::TimeDelta lifetime =
       base::Time::Now() - timer.creation_time.value_or(base::Time::Now());
   if (lifetime >= kPopupThreshold)
@@ -463,8 +463,7 @@
   // when Tick() is called due to the possibility of the |model_| being updated
   // via a call to OnTimerStateChanged(), such as might happen if a timer is
   // created, paused, resumed, or removed by LibAssistant.
-  ticker.Start(FROM_HERE,
-               base::TimeDelta::FromMilliseconds(millis_to_next_full_sec),
+  ticker.Start(FROM_HERE, base::Milliseconds(millis_to_next_full_sec),
                base::BindOnce(&AssistantAlarmTimerControllerImpl::Tick,
                               base::Unretained(this), timer.id));
 }
diff --git a/ash/assistant/assistant_alarm_timer_controller_unittest.cc b/ash/assistant/assistant_alarm_timer_controller_unittest.cc
index 79e05591..4660d20 100644
--- a/ash/assistant/assistant_alarm_timer_controller_unittest.cc
+++ b/ash/assistant/assistant_alarm_timer_controller_unittest.cc
@@ -399,7 +399,7 @@
   testing::Mock::VerifyAndClearExpectations(&mock);
 
   // If specified, |creation_time| should be respected.
-  creation_time -= base::TimeDelta::FromMinutes(1);
+  creation_time -= base::Minutes(1);
   EXPECT_CALL(mock, OnTimerAdded)
       .WillOnce(testing::Invoke([&](const AssistantTimer& timer) {
         EXPECT_EQ(creation_time, timer.creation_time.value());
@@ -423,12 +423,12 @@
       /*ticks=*/
       {
           {base::TimeDelta(), "1:01:01"},
-          {base::TimeDelta::FromHours(1), "1:01"},
-          {base::TimeDelta::FromMinutes(1), "0:01"},
-          {base::TimeDelta::FromSeconds(1), "0:00"},
-          {base::TimeDelta::FromSeconds(1), "-0:01"},
-          {base::TimeDelta::FromMinutes(1), "-1:01"},
-          {base::TimeDelta::FromHours(1), "-1:01:01"},
+          {base::Hours(1), "1:01"},
+          {base::Minutes(1), "0:01"},
+          {base::Seconds(1), "0:00"},
+          {base::Seconds(1), "-0:01"},
+          {base::Minutes(1), "-1:01"},
+          {base::Hours(1), "-1:01:01"},
       },
   });
 
@@ -438,12 +438,12 @@
       /*ticks=*/
       {
           {base::TimeDelta(), "1.01.01"},
-          {base::TimeDelta::FromHours(1), "1.01"},
-          {base::TimeDelta::FromMinutes(1), "0.01"},
-          {base::TimeDelta::FromSeconds(1), "0.00"},
-          {base::TimeDelta::FromSeconds(1), "-0.01"},
-          {base::TimeDelta::FromMinutes(1), "-1.01"},
-          {base::TimeDelta::FromHours(1), "-1.01.01"},
+          {base::Hours(1), "1.01"},
+          {base::Minutes(1), "0.01"},
+          {base::Seconds(1), "0.00"},
+          {base::Seconds(1), "-0.01"},
+          {base::Minutes(1), "-1.01"},
+          {base::Hours(1), "-1.01.01"},
       },
   });
 
@@ -455,9 +455,8 @@
     ScopedNotificationModelObserver observer;
 
     // Schedule a timer.
-    ScheduleTimer(kTimerId).WithRemainingTime(base::TimeDelta::FromHours(1) +
-                                              base::TimeDelta::FromMinutes(1) +
-                                              base::TimeDelta::FromSeconds(1));
+    ScheduleTimer(kTimerId).WithRemainingTime(
+        base::Hours(1) + base::Minutes(1) + base::Seconds(1));
 
     // Run each tick of the clock in the test.
     for (auto& tick : i18n_test_case.ticks) {
@@ -476,9 +475,9 @@
 // Tests that a notification is added for a timer and has the expected message.
 TEST_F(AssistantAlarmTimerControllerTest, TimerNotificationHasExpectedMessage) {
   constexpr char kEmptyLabel[] = "";
-  constexpr base::TimeDelta kOneSec = base::TimeDelta::FromSeconds(1);
-  constexpr base::TimeDelta kOneMin = base::TimeDelta::FromMinutes(1);
-  constexpr base::TimeDelta kOneHour = base::TimeDelta::FromHours(1);
+  constexpr base::TimeDelta kOneSec = base::Seconds(1);
+  constexpr base::TimeDelta kOneMin = base::Minutes(1);
+  constexpr base::TimeDelta kOneHour = base::Hours(1);
 
   // We'll verify the message of our notification with various timers.
   typedef struct {
@@ -564,7 +563,7 @@
   // Observe notifications.
   ScopedNotificationModelObserver observer;
 
-  constexpr base::TimeDelta kTimeRemaining = base::TimeDelta::FromMinutes(1);
+  constexpr base::TimeDelta kTimeRemaining = base::Minutes(1);
 
   // Schedule a timer.
   ScheduleTimer(kTimerId).WithRemainingTime(kTimeRemaining);
@@ -645,7 +644,7 @@
           .WithLabel(IDS_ASSISTANT_TIMER_NOTIFICATION_ADD_1_MIN_BUTTON)
           .WithActionUrl(assistant::util::CreateAlarmTimerDeepLink(
                              assistant::util::AlarmTimerAction::kAddTimeToTimer,
-                             kTimerId, base::TimeDelta::FromMinutes(1))
+                             kTimerId, base::Minutes(1))
                              .value())
           .WithRemoveNotificationOnClick(false),
       observer.last_notification().buttons.at(1));
@@ -697,7 +696,7 @@
   ScopedNotificationModelObserver notification_model_observer;
 
   // Schedule a timer.
-  ScheduleTimer(kTimerId).WithRemainingTime(base::TimeDelta::FromSeconds(10));
+  ScheduleTimer(kTimerId).WithRemainingTime(base::Seconds(10));
 
   // Make assertions about the notification.
   EXPECT_EQ(ExpectedNotification().WithClientId(kClientId).WithPriority(
@@ -706,7 +705,7 @@
 
   // Advance the clock.
   // NOTE: Six seconds is the threshold for popping up our notification.
-  AdvanceClockAndWaitForTimerUpdate(base::TimeDelta::FromSeconds(6));
+  AdvanceClockAndWaitForTimerUpdate(base::Seconds(6));
 
   // Make assertions about the notification.
   EXPECT_EQ(ExpectedNotification().WithClientId(kClientId).WithPriority(
diff --git a/ash/assistant/assistant_notification_controller_impl_unittest.cc b/ash/assistant/assistant_notification_controller_impl_unittest.cc
index 21b262cd..c5d5519 100644
--- a/ash/assistant/assistant_notification_controller_impl_unittest.cc
+++ b/ash/assistant/assistant_notification_controller_impl_unittest.cc
@@ -120,7 +120,7 @@
   }
 
   AssistantNotificationBuilder& WithTimeoutMs(int timeout_ms) {
-    return WithTimeout(base::TimeDelta::FromMilliseconds(timeout_ms));
+    return WithTimeout(base::Milliseconds(timeout_ms));
   }
 
  private:
@@ -237,8 +237,7 @@
   }
 
   void ForwardTimeInMs(int time_in_ms) {
-    task_environment()->FastForwardBy(
-        base::TimeDelta::FromMilliseconds(time_in_ms));
+    task_environment()->FastForwardBy(base::Milliseconds(time_in_ms));
   }
 
  private:
diff --git a/ash/assistant/assistant_view_delegate_impl.cc b/ash/assistant/assistant_view_delegate_impl.cc
index baf563b..3747420 100644
--- a/ash/assistant/assistant_view_delegate_impl.cc
+++ b/ash/assistant/assistant_view_delegate_impl.cc
@@ -147,7 +147,7 @@
   // The feature will start to show only for new users which we define as users
   // who haven't had an interaction with Assistant in the last 28 days.
   return interaction_controller->GetTimeDeltaSinceLastInteraction() >=
-         base::TimeDelta::FromDays(28);
+         base::Days(28);
 }
 
 }  // namespace ash
diff --git a/ash/assistant/ui/main_stage/assistant_footer_view.cc b/ash/assistant/ui/main_stage/assistant_footer_view.cc
index 604fe35c..77b12d4 100644
--- a/ash/assistant/ui/main_stage/assistant_footer_view.cc
+++ b/ash/assistant/ui/main_stage/assistant_footer_view.cc
@@ -28,12 +28,9 @@
 constexpr int kPreferredHeightDip = 48;
 
 // Animation.
-constexpr base::TimeDelta kAnimationFadeInDelay =
-    base::TimeDelta::FromMilliseconds(167);
-constexpr base::TimeDelta kAnimationFadeInDuration =
-    base::TimeDelta::FromMilliseconds(167);
-constexpr base::TimeDelta kAnimationFadeOutDuration =
-    base::TimeDelta::FromMilliseconds(167);
+constexpr base::TimeDelta kAnimationFadeInDelay = base::Milliseconds(167);
+constexpr base::TimeDelta kAnimationFadeInDuration = base::Milliseconds(167);
+constexpr base::TimeDelta kAnimationFadeOutDuration = base::Milliseconds(167);
 
 }  // namespace
 
diff --git a/ash/assistant/ui/main_stage/assistant_onboarding_view_unittest.cc b/ash/assistant/ui/main_stage/assistant_onboarding_view_unittest.cc
index 89e9db5..f92c721 100644
--- a/ash/assistant/ui/main_stage/assistant_onboarding_view_unittest.cc
+++ b/ash/assistant/ui/main_stage/assistant_onboarding_view_unittest.cc
@@ -207,13 +207,12 @@
     CreateAndSwitchActiveUser(test_case.display_email, test_case.given_name);
 
     // Advance clock to midnight tomorrow.
-    AdvanceClock(base::Time::Now().LocalMidnight() +
-                 base::TimeDelta::FromHours(24) - base::Time::Now());
+    AdvanceClock(base::Time::Now().LocalMidnight() + base::Hours(24) -
+                 base::Time::Now());
 
     {
       // Verify 4:59 AM.
-      AdvanceClock(base::TimeDelta::FromHours(4) +
-                   base::TimeDelta::FromMinutes(59));
+      AdvanceClock(base::Hours(4) + base::Minutes(59));
       ScopedShowUi scoped_show_ui;
       EXPECT_EQ(greeting_label()->GetText(),
                 test_case.expected_greeting.for_night);
@@ -221,7 +220,7 @@
 
     {
       // Verify 5:00 AM.
-      AdvanceClock(base::TimeDelta::FromMinutes(1));
+      AdvanceClock(base::Minutes(1));
       ScopedShowUi scoped_show_ui;
       EXPECT_EQ(greeting_label()->GetText(),
                 test_case.expected_greeting.for_morning);
@@ -229,8 +228,7 @@
 
     {
       // Verify 11:59 AM.
-      AdvanceClock(base::TimeDelta::FromHours(6) +
-                   base::TimeDelta::FromMinutes(59));
+      AdvanceClock(base::Hours(6) + base::Minutes(59));
       ScopedShowUi scoped_show_ui;
       EXPECT_EQ(greeting_label()->GetText(),
                 test_case.expected_greeting.for_morning);
@@ -238,7 +236,7 @@
 
     {
       // Verify 12:00 PM.
-      AdvanceClock(base::TimeDelta::FromMinutes(1));
+      AdvanceClock(base::Minutes(1));
       ScopedShowUi scoped_show_ui;
       EXPECT_EQ(greeting_label()->GetText(),
                 test_case.expected_greeting.for_afternoon);
@@ -246,8 +244,7 @@
 
     {
       // Verify 4:59 PM.
-      AdvanceClock(base::TimeDelta::FromHours(4) +
-                   base::TimeDelta::FromMinutes(59));
+      AdvanceClock(base::Hours(4) + base::Minutes(59));
       ScopedShowUi scoped_show_ui;
       EXPECT_EQ(greeting_label()->GetText(),
                 test_case.expected_greeting.for_afternoon);
@@ -255,7 +252,7 @@
 
     {
       // Verify 5:00 PM.
-      AdvanceClock(base::TimeDelta::FromMinutes(1));
+      AdvanceClock(base::Minutes(1));
       ScopedShowUi scoped_show_ui;
       EXPECT_EQ(greeting_label()->GetText(),
                 test_case.expected_greeting.for_evening);
@@ -263,8 +260,7 @@
 
     {
       // Verify 10:59 PM.
-      AdvanceClock(base::TimeDelta::FromHours(5) +
-                   base::TimeDelta::FromMinutes(59));
+      AdvanceClock(base::Hours(5) + base::Minutes(59));
       ScopedShowUi scoped_show_ui;
       EXPECT_EQ(greeting_label()->GetText(),
                 test_case.expected_greeting.for_evening);
@@ -272,7 +268,7 @@
 
     {
       // Verify 11:00 PM.
-      AdvanceClock(base::TimeDelta::FromMinutes(1));
+      AdvanceClock(base::Minutes(1));
       ScopedShowUi scoped_show_ui;
       EXPECT_EQ(greeting_label()->GetText(),
                 test_case.expected_greeting.for_night);
diff --git a/ash/assistant/ui/main_stage/assistant_progress_indicator.cc b/ash/assistant/ui/main_stage/assistant_progress_indicator.cc
index 7ee28a53..494c570 100644
--- a/ash/assistant/ui/main_stage/assistant_progress_indicator.cc
+++ b/ash/assistant/ui/main_stage/assistant_progress_indicator.cc
@@ -146,21 +146,19 @@
           start_offset,
           ui::LayerAnimationElement::AnimatableProperty::TRANSFORM);
     }
-    start_offset += base::TimeDelta::FromMilliseconds(216);
+    start_offset += base::Milliseconds(216);
 
     // Schedule transformation animation.
     child->layer()->GetAnimator()->ScheduleAnimation(
         CreateLayerAnimationSequence(
             // Animate scale up.
-            CreateTransformElement(transform,
-                                   base::TimeDelta::FromMilliseconds(266)),
+            CreateTransformElement(transform, base::Milliseconds(266)),
             // Animate scale down.
-            CreateTransformElement(gfx::Transform(),
-                                   base::TimeDelta::FromMilliseconds(450)),
+            CreateTransformElement(gfx::Transform(), base::Milliseconds(450)),
             // Pause before next iteration.
             ui::LayerAnimationElement::CreatePauseElement(
                 ui::LayerAnimationElement::AnimatableProperty::TRANSFORM,
-                base::TimeDelta::FromMilliseconds(500)),
+                base::Milliseconds(500)),
             // Animation parameters.
             {/*is_cyclic=*/true}));
   }
diff --git a/ash/assistant/ui/main_stage/assistant_ui_element_view_animator.cc b/ash/assistant/ui/main_stage/assistant_ui_element_view_animator.cc
index 1c8a049..57dd738 100644
--- a/ash/assistant/ui/main_stage/assistant_ui_element_view_animator.cc
+++ b/ash/assistant/ui/main_stage/assistant_ui_element_view_animator.cc
@@ -22,10 +22,8 @@
 using assistant::util::StartLayerAnimationSequence;
 
 // Animation.
-constexpr base::TimeDelta kAnimateInDuration =
-    base::TimeDelta::FromMilliseconds(250);
-constexpr base::TimeDelta kAnimateOutDuration =
-    base::TimeDelta::FromMilliseconds(200);
+constexpr base::TimeDelta kAnimateInDuration = base::Milliseconds(250);
+constexpr base::TimeDelta kAnimateOutDuration = base::Milliseconds(200);
 
 }  // namespace
 
diff --git a/ash/assistant/ui/main_stage/element_animator.h b/ash/assistant/ui/main_stage/element_animator.h
index 0d8e645..5c429256 100644
--- a/ash/assistant/ui/main_stage/element_animator.h
+++ b/ash/assistant/ui/main_stage/element_animator.h
@@ -23,8 +23,7 @@
 class ElementAnimator {
  public:
   // Fade out duration used in the default implementation of |FadeOut|.
-  constexpr static base::TimeDelta kFadeOutDuration =
-      base::TimeDelta::FromMilliseconds(150);
+  constexpr static base::TimeDelta kFadeOutDuration = base::Milliseconds(150);
   // Fade out opacity used in the default implementation of |FadeOut|.
   constexpr static float kFadeOutOpacity = 0.26f;
   // Minimum allowed opacity as a target when fading out.
diff --git a/ash/assistant/ui/main_stage/suggestion_container_view.cc b/ash/assistant/ui/main_stage/suggestion_container_view.cc
index eed81d0..1b703ee 100644
--- a/ash/assistant/ui/main_stage/suggestion_container_view.cc
+++ b/ash/assistant/ui/main_stage/suggestion_container_view.cc
@@ -38,10 +38,8 @@
 using assistant::util::StartLayerAnimationSequence;
 
 // Animation.
-constexpr base::TimeDelta kChipFadeInDuration =
-    base::TimeDelta::FromMilliseconds(250);
-constexpr base::TimeDelta kChipFadeOutDuration =
-    base::TimeDelta::FromMilliseconds(200);
+constexpr base::TimeDelta kChipFadeInDuration = base::Milliseconds(250);
+constexpr base::TimeDelta kChipFadeOutDuration = base::Milliseconds(200);
 
 // Appearance.
 constexpr int kPreferredHeightDip = 48;
diff --git a/ash/assistant/util/deep_link_util.cc b/ash/assistant/util/deep_link_util.cc
index 3467154..f922775 100644
--- a/ash/assistant/util/deep_link_util.cc
+++ b/ash/assistant/util/deep_link_util.cc
@@ -349,7 +349,7 @@
   if (!duration_ms.has_value())
     return absl::nullopt;
 
-  return base::TimeDelta::FromMilliseconds(duration_ms.value());
+  return base::Milliseconds(duration_ms.value());
 }
 
 DeepLinkType GetDeepLinkType(const GURL& url) {
diff --git a/ash/assistant/util/deep_link_util_unittest.cc b/ash/assistant/util/deep_link_util_unittest.cc
index 311b294..63166c0 100644
--- a/ash/assistant/util/deep_link_util_unittest.cc
+++ b/ash/assistant/util/deep_link_util_unittest.cc
@@ -73,7 +73,7 @@
       "googleassistant://"
       "alarm-timer?action=addTimeToTimer&id=1&durationMs=60000",
       CreateAlarmTimerDeepLink(AlarmTimerAction::kAddTimeToTimer, "1",
-                               base::TimeDelta::FromMinutes(1))
+                               base::Minutes(1))
           .value());
   ASSERT_EQ("googleassistant://alarm-timer?action=pauseTimer&id=1",
             CreateAlarmTimerDeepLink(AlarmTimerAction::kPauseTimer, "1",
@@ -98,9 +98,9 @@
   ASSERT_EQ(absl::nullopt,
             CreateAlarmTimerDeepLink(AlarmTimerAction::kAddTimeToTimer, "1",
                                      absl::nullopt));
-  ASSERT_EQ(absl::nullopt, CreateAlarmTimerDeepLink(
-                               AlarmTimerAction::kAddTimeToTimer, absl::nullopt,
-                               base::TimeDelta::FromMinutes(1)));
+  ASSERT_EQ(absl::nullopt,
+            CreateAlarmTimerDeepLink(AlarmTimerAction::kAddTimeToTimer,
+                                     absl::nullopt, base::Minutes(1)));
   ASSERT_EQ(absl::nullopt,
             CreateAlarmTimerDeepLink(AlarmTimerAction::kAddTimeToTimer,
                                      absl::nullopt, absl::nullopt));
@@ -108,32 +108,32 @@
   ASSERT_EQ(absl::nullopt,
             CreateAlarmTimerDeepLink(AlarmTimerAction::kPauseTimer,
                                      absl::nullopt, absl::nullopt));
-  ASSERT_EQ(absl::nullopt, CreateAlarmTimerDeepLink(
-                               AlarmTimerAction::kPauseTimer, absl::nullopt,
-                               base::TimeDelta::FromMinutes(1)));
+  ASSERT_EQ(absl::nullopt,
+            CreateAlarmTimerDeepLink(AlarmTimerAction::kPauseTimer,
+                                     absl::nullopt, base::Minutes(1)));
   ASSERT_EQ(absl::nullopt,
             CreateAlarmTimerDeepLink(AlarmTimerAction::kPauseTimer, "1",
-                                     base::TimeDelta::FromMinutes(1)));
+                                     base::Minutes(1)));
 
   ASSERT_EQ(absl::nullopt,
             CreateAlarmTimerDeepLink(AlarmTimerAction::kRemoveAlarmOrTimer,
                                      absl::nullopt, absl::nullopt));
-  ASSERT_EQ(absl::nullopt, CreateAlarmTimerDeepLink(
-                               AlarmTimerAction::kRemoveAlarmOrTimer,
-                               absl::nullopt, base::TimeDelta::FromMinutes(1)));
+  ASSERT_EQ(absl::nullopt,
+            CreateAlarmTimerDeepLink(AlarmTimerAction::kRemoveAlarmOrTimer,
+                                     absl::nullopt, base::Minutes(1)));
   ASSERT_EQ(absl::nullopt,
             CreateAlarmTimerDeepLink(AlarmTimerAction::kRemoveAlarmOrTimer, "1",
-                                     base::TimeDelta::FromMinutes(1)));
+                                     base::Minutes(1)));
 
   ASSERT_EQ(absl::nullopt,
             CreateAlarmTimerDeepLink(AlarmTimerAction::kResumeTimer,
                                      absl::nullopt, absl::nullopt));
-  ASSERT_EQ(absl::nullopt, CreateAlarmTimerDeepLink(
-                               AlarmTimerAction::kResumeTimer, absl::nullopt,
-                               base::TimeDelta::FromMinutes(1)));
+  ASSERT_EQ(absl::nullopt,
+            CreateAlarmTimerDeepLink(AlarmTimerAction::kResumeTimer,
+                                     absl::nullopt, base::Minutes(1)));
   ASSERT_EQ(absl::nullopt,
             CreateAlarmTimerDeepLink(AlarmTimerAction::kResumeTimer, "1",
-                                     base::TimeDelta::FromMinutes(1)));
+                                     base::Minutes(1)));
 }
 
 TEST_F(DeepLinkUtilTest, CreateAssistantQueryDeepLink) {
@@ -438,11 +438,9 @@
 
   // Case: Deep link parameter present, well formed "60000".
   params["durationMs"] = "60000";
-  AssertDeepLinkParamEq(base::TimeDelta::FromMinutes(1),
-                        DeepLinkParam::kDurationMs);
+  AssertDeepLinkParamEq(base::Minutes(1), DeepLinkParam::kDurationMs);
   params["durationMs"] = "00";
-  AssertDeepLinkParamEq(base::TimeDelta::FromMilliseconds(0),
-                        DeepLinkParam::kDurationMs);
+  AssertDeepLinkParamEq(base::Milliseconds(0), DeepLinkParam::kDurationMs);
 
   // Case: Deep link parameter present, non-int value.
   params["durationMs"] = "true";
diff --git a/ash/capture_mode/capture_label_view.cc b/ash/capture_mode/capture_label_view.cc
index d9302e7..985f11a 100644
--- a/ash/capture_mode/capture_label_view.cc
+++ b/ash/capture_mode/capture_label_view.cc
@@ -44,25 +44,20 @@
 constexpr int kCountDownEndSeconds = 1;
 
 constexpr base::TimeDelta kCaptureLabelOpacityFadeoutDuration =
-    base::TimeDelta::FromMilliseconds(33);
+    base::Milliseconds(33);
 // Opacity fade in animation duration and scale up animation duration when the
 // timeout label enters 3.
-constexpr base::TimeDelta kCountDownEnter3Duration =
-    base::TimeDelta::FromMilliseconds(267);
+constexpr base::TimeDelta kCountDownEnter3Duration = base::Milliseconds(267);
 // Opacity fade out animation duration and scale down animation duration when
 // the timeout label exits 1.
-constexpr base::TimeDelta kCountDownExit1Duration =
-    base::TimeDelta::FromMilliseconds(333);
+constexpr base::TimeDelta kCountDownExit1Duration = base::Milliseconds(333);
 // For other number enter/exit fade in/out, scale up/down animation duration.
-constexpr base::TimeDelta kCountDownEnterExitDuration =
-    base::TimeDelta::FromMilliseconds(167);
+constexpr base::TimeDelta kCountDownEnterExitDuration = base::Milliseconds(167);
 
 // Delay to enter number 3 to start count down.
-constexpr base::TimeDelta kStartCountDownDelay =
-    base::TimeDelta::FromMilliseconds(233);
+constexpr base::TimeDelta kStartCountDownDelay = base::Milliseconds(233);
 // Delay to exit a number after entering animation is completed.
-constexpr base::TimeDelta kCountDownExitDelay =
-    base::TimeDelta::FromMilliseconds(667);
+constexpr base::TimeDelta kCountDownExitDelay = base::Milliseconds(667);
 
 // Different scales for enter/exiting countdown numbers.
 constexpr float kEnterLabelScaleDown = 0.8f;
diff --git a/ash/capture_mode/capture_mode_controller.cc b/ash/capture_mode/capture_mode_controller.cc
index 32e8466..107106ec 100644
--- a/ash/capture_mode/capture_mode_controller.cc
+++ b/ash/capture_mode/capture_mode_controller.cc
@@ -68,8 +68,7 @@
 
 // The amount of time that can elapse from the prior screenshot to be considered
 // consecutive.
-constexpr base::TimeDelta kConsecutiveScreenshotThreshold =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kConsecutiveScreenshotThreshold = base::Seconds(5);
 
 constexpr char kScreenCaptureNotificationId[] = "capture_mode_notification";
 constexpr char kScreenCaptureStoppedNotificationId[] =
@@ -89,8 +88,7 @@
 constexpr char kAmPmTimeFmtStr[] = "%d.%02d.%02d";
 
 // Duration to clear the capture region selection from the previous session.
-constexpr base::TimeDelta kResetCaptureRegionDuration =
-    base::TimeDelta::FromMinutes(8);
+constexpr base::TimeDelta kResetCaptureRegionDuration = base::Minutes(8);
 
 // The name of a file path pref for the user-selected custom path to which
 // captured images and videos should be saved.
@@ -343,14 +341,14 @@
 
   // Schedule recording of the number of screenshots taken per day.
   num_screenshots_taken_in_last_day_scheduler_.Start(
-      FROM_HERE, base::TimeDelta::FromDays(1),
+      FROM_HERE, base::Days(1),
       base::BindRepeating(
           &CaptureModeController::RecordAndResetScreenshotsTakenInLastDay,
           weak_ptr_factory_.GetWeakPtr()));
 
   // Schedule recording of the number of screenshots taken per week.
   num_screenshots_taken_in_last_week_scheduler_.Start(
-      FROM_HERE, base::TimeDelta::FromDays(7),
+      FROM_HERE, base::Days(7),
       base::BindRepeating(
           &CaptureModeController::RecordAndResetScreenshotsTakenInLastWeek,
           weak_ptr_factory_.GetWeakPtr()));
diff --git a/ash/capture_mode/capture_mode_metrics.cc b/ash/capture_mode/capture_mode_metrics.cc
index ce9cc2c..d728b59 100644
--- a/ash/capture_mode/capture_mode_metrics.cc
+++ b/ash/capture_mode/capture_mode_metrics.cc
@@ -90,10 +90,10 @@
 void RecordCaptureModeRecordTime(int64_t length_in_seconds) {
   // Use custom counts macro instead of custom times so we can record in
   // seconds instead of milliseconds. The max bucket is 3 hours.
-  base::UmaHistogramCustomCounts(
-      kRecordTimeHistogramName, length_in_seconds, /*min=*/1,
-      /*max=*/base::TimeDelta::FromHours(3).InSeconds(),
-      /*bucket_count=*/50);
+  base::UmaHistogramCustomCounts(kRecordTimeHistogramName, length_in_seconds,
+                                 /*min=*/1,
+                                 /*max=*/base::Hours(3).InSeconds(),
+                                 /*bucket_count=*/50);
 }
 
 void RecordCaptureModeSwitchesFromInitialMode(bool switched) {
diff --git a/ash/capture_mode/capture_mode_session.cc b/ash/capture_mode/capture_mode_session.cc
index f61ffd4..dfd9ead 100644
--- a/ash/capture_mode/capture_mode_session.cc
+++ b/ash/capture_mode/capture_mode_session.cc
@@ -131,15 +131,14 @@
 // The animation duration that the label fades out and scales down before count
 // down starts.
 constexpr base::TimeDelta kCaptureLabelCountdownStartDuration =
-    base::TimeDelta::FromMilliseconds(267);
+    base::Milliseconds(267);
 // The animation duration that the capture bar fades out before count down
 // starts.
-constexpr base::TimeDelta kCaptureBarFadeOutDuration =
-    base::TimeDelta::FromMilliseconds(167);
+constexpr base::TimeDelta kCaptureBarFadeOutDuration = base::Milliseconds(167);
 // The animation duration that the fullscreen shield fades out before count down
 // starts.
 constexpr base::TimeDelta kCaptureShieldFadeOutDuration =
-    base::TimeDelta::FromMilliseconds(333);
+    base::Milliseconds(333);
 // If there is no text message was showing when count down starts, the label
 // widget will shrink down from 120% -> 100% and fade in.
 constexpr float kLabelScaleUpOnCountdown = 1.2;
@@ -147,10 +146,10 @@
 // The animation duration that the label fades out and scales up when going from
 // the selection phase to the fine tune phase.
 constexpr base::TimeDelta kCaptureLabelRegionPhaseChangeDuration =
-    base::TimeDelta::FromMilliseconds(167);
+    base::Milliseconds(167);
 // The delay before the label fades out and scales up.
 constexpr base::TimeDelta kCaptureLabelRegionPhaseChangeDelay =
-    base::TimeDelta::FromMilliseconds(67);
+    base::Milliseconds(67);
 // When going from the select region phase to the fine tune phase, the label
 // widget will scale up from 80% -> 100%.
 constexpr float kLabelScaleDownOnPhaseChange = 0.8;
@@ -158,10 +157,10 @@
 // Animation parameters for capture bar overlapping the user capture region.
 // The default animation duration for opacity changes to the capture bar.
 constexpr base::TimeDelta kCaptureBarOpacityChangeDuration =
-    base::TimeDelta::FromMilliseconds(100);
+    base::Milliseconds(100);
 // The animation duration for showing the capture bar on mouse/touch release.
 constexpr base::TimeDelta kCaptureBarOnReleaseOpacityChangeDuration =
-    base::TimeDelta::FromMilliseconds(167);
+    base::Milliseconds(167);
 // When the capture bar and user capture region overlap and the mouse is not
 // hovering over the capture bar, drop the opacity to this value to make the
 // region easier to see.
diff --git a/ash/capture_mode/capture_mode_unittests.cc b/ash/capture_mode/capture_mode_unittests.cc
index 7182b63d..f1177b34 100644
--- a/ash/capture_mode/capture_mode_unittests.cc
+++ b/ash/capture_mode/capture_mode_unittests.cc
@@ -452,8 +452,7 @@
     while (!controller->is_recording_in_progress()) {
       base::RunLoop run_loop;
       base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-          FROM_HERE, run_loop.QuitClosure(),
-          base::TimeDelta::FromMilliseconds(100));
+          FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(100));
       run_loop.Run();
     }
   }
@@ -482,7 +481,7 @@
     base::RunLoop loop;
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
         FROM_HERE, base::BindLambdaForTesting([&]() { loop.Quit(); }),
-        base::TimeDelta::FromSeconds(seconds));
+        base::Seconds(seconds));
     loop.Run();
   }
 
@@ -3678,13 +3677,13 @@
   SelectRegion(capture_region);
   take_n_screenshots(3);
   histogram_tester.ExpectBucketCount(kConsecutiveScreenshotsHistogram, 3, 0);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment()->FastForwardBy(base::Seconds(5));
   histogram_tester.ExpectBucketCount(kConsecutiveScreenshotsHistogram, 3, 1);
 
   // Take only one screenshot. This should not be recorded.
   take_n_screenshots(1);
   histogram_tester.ExpectBucketCount(kConsecutiveScreenshotsHistogram, 1, 0);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment()->FastForwardBy(base::Seconds(5));
   histogram_tester.ExpectBucketCount(kConsecutiveScreenshotsHistogram, 1, 0);
 
   // Take a screenshot, change source and take another screenshot. This should
@@ -3694,7 +3693,7 @@
                                          CaptureModeType::kImage);
   controller->PerformCapture();
   histogram_tester.ExpectBucketCount(kConsecutiveScreenshotsHistogram, 2, 0);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment()->FastForwardBy(base::Seconds(5));
   histogram_tester.ExpectBucketCount(kConsecutiveScreenshotsHistogram, 2, 1);
 }
 
@@ -3712,7 +3711,7 @@
 
   // Start region image capture again shortly after the previous capture
   // session, we should still be able to reuse the previous capture region.
-  task_environment()->FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_environment()->FastForwardBy(base::Minutes(1));
   StartImageRegionCapture();
   EXPECT_EQ(capture_region, controller->user_capture_region());
   auto* event_generator = GetEventGenerator();
@@ -3722,7 +3721,7 @@
 
   // Wait for 8 second and then start region image capture again. We should have
   // forgot the previous capture region.
-  task_environment()->FastForwardBy(base::TimeDelta::FromMinutes(8));
+  task_environment()->FastForwardBy(base::Minutes(8));
   StartImageRegionCapture();
   EXPECT_EQ(gfx::Rect(), controller->user_capture_region());
 }
diff --git a/ash/capture_mode/video_recording_watcher.cc b/ash/capture_mode/video_recording_watcher.cc
index c12e3a2f..bcf7f86 100644
--- a/ash/capture_mode/video_recording_watcher.cc
+++ b/ash/capture_mode/video_recording_watcher.cc
@@ -47,14 +47,13 @@
 // events that are too frequent will be throttled. We use the frame duration as
 // the minimum delay between any two successive such events that we use to
 // update the cursor overlay.
-constexpr base::TimeDelta kCursorEventsThrottleDelay =
-    base::TimeDelta::FromHz(30);
+constexpr base::TimeDelta kCursorEventsThrottleDelay = base::Hertz(30);
 
 // Window resizes can be done on many intermediate steps. This delay is used to
 // throttle these resize events so that we send the final size of the window to
 // the recording service when it stabilizes.
 constexpr base::TimeDelta kWindowSizeChangeThrottleDelay =
-    base::TimeDelta::FromMilliseconds(250);
+    base::Milliseconds(250);
 
 // Returns true if |window_1| and |window_2| are both windows that belong to
 // the same Desk. Note that it will return false for windows that don't belong
diff --git a/ash/clipboard/clipboard_history.cc b/ash/clipboard/clipboard_history.cc
index bda92fb..796da02a 100644
--- a/ash/clipboard/clipboard_history.cc
+++ b/ash/clipboard/clipboard_history.cc
@@ -121,7 +121,7 @@
       base::BindOnce(&ClipboardHistory::OnClipboardOperation,
                      clipboard_histogram_weak_factory_.GetWeakPtr(),
                      /*copy=*/true),
-      base::TimeDelta::FromMilliseconds(100));
+      base::Milliseconds(100));
 
   // We post commit |clipboard_data| at the end of the current task sequence to
   // debounce the case where multiple copies are programmatically performed.
@@ -153,7 +153,7 @@
       base::BindOnce(&ClipboardHistory::OnClipboardOperation,
                      clipboard_histogram_weak_factory_.GetWeakPtr(),
                      /*copy=*/false),
-      base::TimeDelta::FromMilliseconds(100));
+      base::Milliseconds(100));
 }
 
 void ClipboardHistory::OnClipboardOperation(bool copy) {
diff --git a/ash/clipboard/clipboard_history_controller_impl.cc b/ash/clipboard/clipboard_history_controller_impl.cc
index 8f2ac3b..2ad68327 100644
--- a/ash/clipboard/clipboard_history_controller_impl.cc
+++ b/ash/clipboard/clipboard_history_controller_impl.cc
@@ -644,7 +644,7 @@
             GetClipboard()->WriteClipboardData(std::move(original_data));
           },
           weak_ptr_factory_.GetWeakPtr(), std::move(original_data)),
-      base::TimeDelta::FromMilliseconds(200));
+      base::Milliseconds(200));
 }
 
 void ClipboardHistoryControllerImpl::DeleteSelectedMenuItemIfAny() {
diff --git a/ash/clipboard/clipboard_nudge_constants.h b/ash/clipboard/clipboard_nudge_constants.h
index ab65f601..c9b42e0 100644
--- a/ash/clipboard/clipboard_nudge_constants.h
+++ b/ash/clipboard/clipboard_nudge_constants.h
@@ -51,9 +51,8 @@
 
 constexpr int kNotificationLimit = 3;
 constexpr int kContextMenuBadgeShowLimit = 3;
-constexpr base::TimeDelta kMinInterval = base::TimeDelta::FromDays(1);
-constexpr base::TimeDelta kMaxTimeBetweenPaste =
-    base::TimeDelta::FromMinutes(10);
+constexpr base::TimeDelta kMinInterval = base::Days(1);
+constexpr base::TimeDelta kMaxTimeBetweenPaste = base::Minutes(10);
 
 }  // namespace ash
 
diff --git a/ash/clipboard/clipboard_nudge_controller_unittest.cc b/ash/clipboard/clipboard_nudge_controller_unittest.cc
index 97d8b87..755462d2 100644
--- a/ash/clipboard/clipboard_nudge_controller_unittest.cc
+++ b/ash/clipboard/clipboard_nudge_controller_unittest.cc
@@ -72,7 +72,7 @@
     nudge_controller_ =
         Shell::Get()->clipboard_history_controller()->nudge_controller();
     nudge_controller_->OverrideClockForTesting(&test_clock_);
-    test_clock_.Advance(base::TimeDelta::FromSeconds(360));
+    test_clock_.Advance(base::Seconds(360));
   }
 
   void TearDown() override {
diff --git a/ash/clipboard/views/clipboard_history_bitmap_item_view.cc b/ash/clipboard/views/clipboard_history_bitmap_item_view.cc
index fb05ed7..dc013f7 100644
--- a/ash/clipboard/views/clipboard_history_bitmap_item_view.cc
+++ b/ash/clipboard/views/clipboard_history_bitmap_item_view.cc
@@ -35,13 +35,11 @@
 
 // The duration of the fade out animation for transitioning the placeholder
 // image to rendered HTML.
-constexpr base::TimeDelta kFadeOutDurationMs =
-    base::TimeDelta::FromMilliseconds(60);
+constexpr base::TimeDelta kFadeOutDurationMs = base::Milliseconds(60);
 
 // The duration of the fade in animation for transitioning the placeholder image
 // to rendered HTML.
-constexpr base::TimeDelta kFadeInDurationMs =
-    base::TimeDelta::FromMilliseconds(200);
+constexpr base::TimeDelta kFadeInDurationMs = base::Milliseconds(200);
 
 ////////////////////////////////////////////////////////////////////////////////
 // FadeImageView
diff --git a/ash/components/audio/cras_audio_handler.cc b/ash/components/audio/cras_audio_handler.cc
index cca32fb..ea2ab017 100644
--- a/ash/components/audio/cras_audio_handler.cc
+++ b/ash/components/audio/cras_audio_handler.cc
@@ -1822,9 +1822,8 @@
   hdmi_rediscover_timer_.Stop();
   hdmi_rediscover_timer_.Start(
       FROM_HERE,
-      base::TimeDelta::FromMilliseconds(
-          hdmi_rediscover_grace_period_duration_in_ms_),
-      this, &CrasAudioHandler::UpdateAudioAfterHDMIRediscoverGracePeriod);
+      base::Milliseconds(hdmi_rediscover_grace_period_duration_in_ms_), this,
+      &CrasAudioHandler::UpdateAudioAfterHDMIRediscoverGracePeriod);
 }
 
 void CrasAudioHandler::SetHDMIRediscoverGracePeriodForTesting(
diff --git a/ash/components/audio/cras_audio_handler_unittest.cc b/ash/components/audio/cras_audio_handler_unittest.cc
index f33936e..e47b7626 100644
--- a/ash/components/audio/cras_audio_handler_unittest.cc
+++ b/ash/components/audio/cras_audio_handler_unittest.cc
@@ -518,7 +518,7 @@
     base::RunLoop run_loop;
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
         FROM_HERE, run_loop.QuitClosure(),
-        base::TimeDelta::FromMilliseconds(wait_duration_in_ms));
+        base::Milliseconds(wait_duration_in_ms));
     run_loop.Run();
   }
 
@@ -531,7 +531,7 @@
         FROM_HERE,
         base::BindOnce(&HDMIRediscoverWaiter::CheckHDMIRediscoverGracePeriodEnd,
                        base::Unretained(this), std::move(quit_loop_func)),
-        base::TimeDelta::FromMilliseconds(grace_period_duration_in_ms_ / 4));
+        base::Milliseconds(grace_period_duration_in_ms_ / 4));
   }
 
   void WaitUntilHDMIRediscoverGracePeriodEnd() {
diff --git a/ash/components/drivefs/drivefs_auth.cc b/ash/components/drivefs/drivefs_auth.cc
index b9adfc7..c4fe446b 100644
--- a/ash/components/drivefs/drivefs_auth.cc
+++ b/ash/components/drivefs/drivefs_auth.cc
@@ -61,7 +61,7 @@
   get_access_token_callback_ = std::move(callback);
   // Timer is cancelled when it is destroyed, so use base::Unretained().
   timer_->Start(
-      FROM_HERE, base::TimeDelta::FromSeconds(30),
+      FROM_HERE, base::Seconds(30),
       base::BindOnce(&DriveFsAuth::AuthTimeout, base::Unretained(this)));
   std::set<std::string> scopes({"https://www.googleapis.com/auth/drive"});
   access_token_fetcher_ =
diff --git a/ash/components/drivefs/drivefs_auth_unittest.cc b/ash/components/drivefs/drivefs_auth_unittest.cc
index f43336ef..61e65cf6 100644
--- a/ash/components/drivefs/drivefs_auth_unittest.cc
+++ b/ash/components/drivefs/drivefs_auth_unittest.cc
@@ -28,7 +28,7 @@
 using testing::_;
 
 constexpr char kTestEmail[] = "test@example.com";
-constexpr base::TimeDelta kTokenLifetime = base::TimeDelta::FromHours(1);
+constexpr base::TimeDelta kTokenLifetime = base::Hours(1);
 
 class AuthDelegateImpl : public DriveFsAuth::Delegate {
  public:
@@ -281,7 +281,7 @@
   EXPECT_TRUE(identity_test_env_.IsAccessTokenRequestPending());
   RespondWithAccessToken("auth token");
 
-  clock_.Advance(base::TimeDelta::FromHours(2));
+  clock_.Advance(base::Hours(2));
 
   // The token expired so a new one is requested.
   auth_->GetAccessToken(true, base::BindOnce([](mojom::AccessTokenStatus status,
diff --git a/ash/components/drivefs/drivefs_host_unittest.cc b/ash/components/drivefs/drivefs_host_unittest.cc
index 1f306bdd..c8d3cbd3 100644
--- a/ash/components/drivefs/drivefs_host_unittest.cc
+++ b/ash/components/drivefs/drivefs_host_unittest.cc
@@ -48,7 +48,7 @@
 using testing::_;
 using MountFailure = DriveFsHost::MountObserver::MountFailure;
 
-constexpr base::TimeDelta kTokenLifetime = base::TimeDelta::FromHours(1);
+constexpr base::TimeDelta kTokenLifetime = base::Hours(1);
 
 class MockDriveFs : public mojom::DriveFsInterceptorForTesting,
                     public mojom::SearchQuery {
@@ -738,7 +738,7 @@
       "auth token", clock_.Now() + kTokenLifetime);
   EXPECT_FALSE(identity_test_env_.IsAccessTokenRequestPending());
 
-  absl::optional<base::TimeDelta> delay = base::TimeDelta::FromSeconds(5);
+  absl::optional<base::TimeDelta> delay = base::Seconds(5);
   EXPECT_CALL(*host_delegate_, OnUnmounted(delay));
   SendOnUnmounted(delay);
   base::RunLoop().RunUntilIdle();
@@ -774,7 +774,7 @@
       base::BindLambdaForTesting([&](mojom::AccessTokenStatus status,
                                      const std::string& token) { FAIL(); }));
 
-  absl::optional<base::TimeDelta> delay = base::TimeDelta::FromSeconds(5);
+  absl::optional<base::TimeDelta> delay = base::Seconds(5);
   EXPECT_CALL(*host_delegate_, OnUnmounted(delay));
   SendOnUnmounted(delay);
   base::RunLoop().RunUntilIdle();
@@ -799,7 +799,7 @@
       base::BindLambdaForTesting([&](mojom::AccessTokenStatus status,
                                      const std::string& token) { FAIL(); }));
 
-  absl::optional<base::TimeDelta> delay = base::TimeDelta::FromSeconds(5);
+  absl::optional<base::TimeDelta> delay = base::Seconds(5);
   EXPECT_CALL(*host_delegate_, OnUnmounted(delay));
   SendOnUnmounted(delay);
   base::RunLoop().RunUntilIdle();
diff --git a/ash/components/drivefs/drivefs_search.cc b/ash/components/drivefs/drivefs_search.cc
index 36ab55e3a..2af79bd 100644
--- a/ash/components/drivefs/drivefs_search.cc
+++ b/ash/components/drivefs/drivefs_search.cc
@@ -15,7 +15,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kQueryCacheTtl = base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kQueryCacheTtl = base::Minutes(5);
 
 bool IsCloudSharedWithMeQuery(const drivefs::mojom::QueryParametersPtr& query) {
   return query->query_source ==
diff --git a/ash/components/drivefs/drivefs_search_unittest.cc b/ash/components/drivefs/drivefs_search_unittest.cc
index 844906f..98c2edc6 100644
--- a/ash/components/drivefs/drivefs_search_unittest.cc
+++ b/ash/components/drivefs/drivefs_search_unittest.cc
@@ -287,7 +287,7 @@
   EXPECT_TRUE(called);
 
   // Time has passed...
-  clock_.Advance(base::TimeDelta::FromHours(1));
+  clock_.Advance(base::Hours(1));
 
   params = mojom::QueryParameters::New();
   params->query_source = mojom::QueryParameters::QuerySource::kCloudOnly;
diff --git a/ash/components/drivefs/drivefs_session.cc b/ash/components/drivefs/drivefs_session.cc
index b5bbc16..34ab6cad 100644
--- a/ash/components/drivefs/drivefs_session.cc
+++ b/ash/components/drivefs/drivefs_session.cc
@@ -20,7 +20,7 @@
 constexpr char kDataDirOption[] = "datadir=";
 constexpr char kMyFilesOption[] = "myfiles=";
 constexpr char kMountScheme[] = "drivefs://";
-constexpr base::TimeDelta kMountTimeout = base::TimeDelta::FromSeconds(20);
+constexpr base::TimeDelta kMountTimeout = base::Seconds(20);
 
 class DiskMounterImpl : public DiskMounter {
  public:
diff --git a/ash/components/drivefs/drivefs_session_unittest.cc b/ash/components/drivefs/drivefs_session_unittest.cc
index c88dbc8c..ae2e4bb 100644
--- a/ash/components/drivefs/drivefs_session_unittest.cc
+++ b/ash/components/drivefs/drivefs_session_unittest.cc
@@ -30,8 +30,7 @@
 constexpr char kExpectedMyFilesDir[] = "/path/to/profile/MyFiles";
 
 static const absl::optional<base::TimeDelta> kEmptyDelay;
-static const absl::optional<base::TimeDelta> kDefaultDelay =
-    base::TimeDelta::FromSeconds(5);
+static const absl::optional<base::TimeDelta> kDefaultDelay = base::Seconds(5);
 
 using testing::_;
 using testing::Invoke;
diff --git a/ash/components/power/dark_resume_controller.cc b/ash/components/power/dark_resume_controller.cc
index 247a0c5..387a456 100644
--- a/ash/components/power/dark_resume_controller.cc
+++ b/ash/components/power/dark_resume_controller.cc
@@ -16,8 +16,7 @@
 
 // The default value of |dark_resume_hard_timeout_| till
 // |PowerManagerInitialized| is called.
-constexpr base::TimeDelta kDefaultDarkResumeHardTimeout =
-    base::TimeDelta::FromSeconds(20);
+constexpr base::TimeDelta kDefaultDarkResumeHardTimeout = base::Seconds(20);
 
 }  // namespace
 
diff --git a/ash/components/power/dark_resume_controller.h b/ash/components/power/dark_resume_controller.h
index e7a02ca..6f838d5 100644
--- a/ash/components/power/dark_resume_controller.h
+++ b/ash/components/power/dark_resume_controller.h
@@ -58,7 +58,7 @@
   // Time after a dark resume when wake lock count is checked and a decision is
   // made to re-suspend or wait for wake lock release.
   static constexpr base::TimeDelta kDarkResumeWakeLockCheckTimeout =
-      base::TimeDelta::FromSeconds(3);
+      base::Seconds(3);
 
   // chromeos::PowerManagerClient::Observer overrides.
   void PowerManagerInitialized() override;
diff --git a/ash/components/power/dark_resume_controller_unittest.cc b/ash/components/power/dark_resume_controller_unittest.cc
index 871cbf51f..5a1adb3a 100644
--- a/ash/components/power/dark_resume_controller_unittest.cc
+++ b/ash/components/power/dark_resume_controller_unittest.cc
@@ -130,7 +130,7 @@
 
   // Move time forward by < |dark_resume_hard_timeout_| and release the
   // partial wake lock. This should instantaneously re-suspend the device.
-  base::TimeDelta small_delay = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta small_delay = base::Seconds(1);
   ASSERT_GT(dark_resume_controller_->GetHardTimeoutForTesting(), small_delay);
   task_environment_.FastForwardBy(
       dark_resume_controller_->GetHardTimeoutForTesting() - small_delay);
diff --git a/ash/components/quick_answers/quick_answers_notice_unittest.cc b/ash/components/quick_answers/quick_answers_notice_unittest.cc
index 90c988b..7f06e83 100644
--- a/ash/components/quick_answers/quick_answers_notice_unittest.cc
+++ b/ash/components/quick_answers/quick_answers_notice_unittest.cc
@@ -74,7 +74,7 @@
   notice_->StartNotice();
 
   // Notice is accepted after 6 seconds.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(6));
+  task_environment_.FastForwardBy(base::Seconds(6));
   notice_->AcceptNotice(NoticeInteractionType::kAccept);
 
   // Verify that the notice has been accepted.
@@ -91,7 +91,7 @@
   notice_->StartNotice();
 
   // Dismiss the notice after reaching the impression cap.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(8));
+  task_environment_.FastForwardBy(base::Seconds(8));
   notice_->DismissNotice();
 
   // Verify that the impression count is recorded.
diff --git a/ash/components/smbfs/smbfs_mounter.cc b/ash/components/smbfs/smbfs_mounter.cc
index 2a568e46..31eafbe 100644
--- a/ash/components/smbfs/smbfs_mounter.cc
+++ b/ash/components/smbfs/smbfs_mounter.cc
@@ -17,7 +17,7 @@
 
 namespace {
 constexpr char kMountUrlPrefix[] = "smbfs://";
-constexpr base::TimeDelta kMountTimeout = base::TimeDelta::FromSeconds(20);
+constexpr base::TimeDelta kMountTimeout = base::Seconds(20);
 }  // namespace
 
 SmbFsMounter::KerberosOptions::KerberosOptions(Source source,
diff --git a/ash/components/smbfs/smbfs_mounter_unittest.cc b/ash/components/smbfs/smbfs_mounter_unittest.cc
index 27dfeec..6de6f96 100644
--- a/ash/components/smbfs/smbfs_mounter_unittest.cc
+++ b/ash/components/smbfs/smbfs_mounter_unittest.cc
@@ -172,8 +172,7 @@
   // task, which is the mount timeout in this case.
   run_loop.Run();
 
-  EXPECT_GE(task_environment_.NowTicks() - start_time,
-            base::TimeDelta::FromSeconds(20));
+  EXPECT_GE(task_environment_.NowTicks() - start_time, base::Seconds(20));
 }
 
 TEST_F(SmbFsMounterTest, FilesystemMountFailure) {
@@ -231,8 +230,7 @@
   // task, which is the mount timeout in this case.
   run_loop.Run();
 
-  EXPECT_GE(task_environment_.NowTicks() - start_time,
-            base::TimeDelta::FromSeconds(20));
+  EXPECT_GE(task_environment_.NowTicks() - start_time, base::Seconds(20));
 }
 
 TEST_F(SmbFsMounterTest, FilesystemMountAfterDestruction) {
diff --git a/ash/constants/ash_constants.h b/ash/constants/ash_constants.h
index 7883001..0b66639 100644
--- a/ash/constants/ash_constants.h
+++ b/ash/constants/ash_constants.h
@@ -50,7 +50,7 @@
 // element on the page that is interesting, based on the Switch Access
 // predicates.
 constexpr base::TimeDelta kDefaultSwitchAccessAutoScanSpeed =
-    base::TimeDelta::FromMilliseconds(1200);
+    base::Milliseconds(1200);
 
 // The default speed in dips per second that the gliding point scan cursor
 // in switch access moves across the screen.
@@ -73,12 +73,11 @@
 constexpr bool kDefaultColorModeThemed = true;
 
 // The default delay before a held keypress will start to auto repeat.
-constexpr base::TimeDelta kDefaultKeyAutoRepeatDelay =
-    base::TimeDelta::FromMilliseconds(500);
+constexpr base::TimeDelta kDefaultKeyAutoRepeatDelay = base::Milliseconds(500);
 
 // The default interval between auto-repeated key events.
 constexpr base::TimeDelta kDefaultKeyAutoRepeatInterval =
-    base::TimeDelta::FromMilliseconds(50);
+    base::Milliseconds(50);
 
 }  // namespace ash
 
diff --git a/ash/constants/ash_switches.cc b/ash/constants/ash_switches.cc
index fde7813d..3406523 100644
--- a/ash/constants/ash_switches.cc
+++ b/ash/constants/ash_switches.cc
@@ -26,10 +26,8 @@
 
 // Max and min number of seconds that must pass between showing user contextual
 // nudges when override switch is set.
-constexpr base::TimeDelta kAshContextualNudgesMinInterval =
-    base::TimeDelta::FromSeconds(0);
-constexpr base::TimeDelta kAshContextualNudgesMaxInterval =
-    base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kAshContextualNudgesMinInterval = base::Seconds(0);
+constexpr base::TimeDelta kAshContextualNudgesMaxInterval = base::Seconds(60);
 
 }  // namespace
 
@@ -925,8 +923,7 @@
           base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
               kAshContextualNudgesInterval),
           &numeric_cooldown_time)) {
-    base::TimeDelta cooldown_time =
-        base::TimeDelta::FromSeconds(numeric_cooldown_time);
+    base::TimeDelta cooldown_time = base::Seconds(numeric_cooldown_time);
     cooldown_time = base::clamp(cooldown_time, kAshContextualNudgesMinInterval,
                                 kAshContextualNudgesMaxInterval);
     return absl::optional<base::TimeDelta>(cooldown_time);
diff --git a/ash/controls/rounded_scroll_bar.cc b/ash/controls/rounded_scroll_bar.cc
index 6f9c9e07..7351ce29 100644
--- a/ash/controls/rounded_scroll_bar.cc
+++ b/ash/controls/rounded_scroll_bar.cc
@@ -25,11 +25,9 @@
 // Radius of the scroll bar thumb.
 constexpr int kScrollThumbRadiusDp = 4;
 // How long for the scrollbar to hide after no scroll events have been received?
-constexpr base::TimeDelta kScrollThumbHideTimeout =
-    base::TimeDelta::FromMilliseconds(500);
+constexpr base::TimeDelta kScrollThumbHideTimeout = base::Milliseconds(500);
 // How long for the scrollbar to fade away?
-constexpr base::TimeDelta kScrollThumbFadeDuration =
-    base::TimeDelta::FromMilliseconds(240);
+constexpr base::TimeDelta kScrollThumbFadeDuration = base::Milliseconds(240);
 // Opacity values from go/semantic-color-system for "Scrollbar".
 constexpr float kDefaultOpacity = 0.38f;
 constexpr float kActiveOpacity = 1.0f;
diff --git a/ash/controls/rounded_scroll_bar_unittest.cc b/ash/controls/rounded_scroll_bar_unittest.cc
index b47ba7a4..038465e 100644
--- a/ash/controls/rounded_scroll_bar_unittest.cc
+++ b/ash/controls/rounded_scroll_bar_unittest.cc
@@ -90,7 +90,7 @@
 
 TEST_F(RoundedScrollBarTest, FadesAfterScroll) {
   scroll_bar_->ScrollByAmount(views::ScrollBar::ScrollAmount::kNextLine);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
   EXPECT_EQ(thumb_->layer()->GetTargetOpacity(), 0.f);
 }
 
diff --git a/ash/display/display_alignment_controller.cc b/ash/display/display_alignment_controller.cc
index afbb4f1..f45b3f97 100644
--- a/ash/display/display_alignment_controller.cc
+++ b/ash/display/display_alignment_controller.cc
@@ -22,10 +22,9 @@
 constexpr int kTriggerThresholdCount = 2;
 // Time between last time the mouse leaves a screen edge and the counter
 // resetting.
-constexpr base::TimeDelta kCounterResetTime = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kCounterResetTime = base::Seconds(1);
 // How long the indicators are visible for.
-constexpr base::TimeDelta kIndicatorVisibilityDuration =
-    base::TimeDelta::FromSeconds(2);
+constexpr base::TimeDelta kIndicatorVisibilityDuration = base::Seconds(2);
 
 // Returns true if |screen_location| is on the edge of |display|. |display| must
 // be valid.
diff --git a/ash/display/display_animator.cc b/ash/display/display_animator.cc
index e6545f13..bec52869 100644
--- a/ash/display/display_animator.cc
+++ b/ash/display/display_animator.cc
@@ -131,7 +131,7 @@
 
     ui::ScopedLayerAnimationSettings settings(hiding_layer->GetAnimator());
     settings.SetTransitionDuration(
-        base::TimeDelta::FromMilliseconds(kFadingAnimationDurationInMS));
+        base::Milliseconds(kFadingAnimationDurationInMS));
     observer->AddNewAnimator(hiding_layer->GetAnimator());
     hiding_layer->SetOpacity(1.0f);
     hiding_layer->SetVisible(true);
@@ -142,9 +142,8 @@
   // canceled due to some unknown errors, we set a timer to clear these
   // hiding layers.
   timer_ = std::make_unique<base::OneShotTimer>();
-  timer_->Start(FROM_HERE,
-                base::TimeDelta::FromSeconds(kFadingTimeoutDurationInSeconds),
-                this, &DisplayAnimator::ClearHidingLayers);
+  timer_->Start(FROM_HERE, base::Seconds(kFadingTimeoutDurationInSeconds), this,
+                &DisplayAnimator::ClearHidingLayers);
 }
 
 void DisplayAnimator::StartFadeInAnimation() {
@@ -190,7 +189,7 @@
 
     ui::ScopedLayerAnimationSettings settings(hiding_layer->GetAnimator());
     settings.SetTransitionDuration(
-        base::TimeDelta::FromMilliseconds(kFadingAnimationDurationInMS));
+        base::Milliseconds(kFadingAnimationDurationInMS));
     observer->AddNewAnimator(hiding_layer->GetAnimator());
     hiding_layer->SetOpacity(0.0f);
     hiding_layer->SetVisible(false);
diff --git a/ash/display/display_change_dialog.cc b/ash/display/display_change_dialog.cc
index b032145..1ee8790 100644
--- a/ash/display/display_change_dialog.cc
+++ b/ash/display/display_change_dialog.cc
@@ -65,7 +65,7 @@
   // TODO(baileyberro): Verify behavior in kiosk mode.
   widget->Show();
 
-  timer_.Start(FROM_HERE, base::TimeDelta::FromSeconds(1), this,
+  timer_.Start(FROM_HERE, base::Seconds(1), this,
                &DisplayChangeDialog::OnTimerTick);
 }
 
@@ -99,7 +99,7 @@
 std::u16string DisplayChangeDialog::GetRevertTimeoutString() const {
   const std::u16string timer = ui::TimeFormat::Simple(
       ui::TimeFormat::FORMAT_DURATION, ui::TimeFormat::LENGTH_LONG,
-      base::TimeDelta::FromSeconds(timeout_count_));
+      base::Seconds(timeout_count_));
   return base::ReplaceStringPlaceholders(timeout_message_with_placeholder_,
                                          timer, /*offset=*/nullptr);
 }
diff --git a/ash/display/display_configuration_controller.cc b/ash/display/display_configuration_controller.cc
index 3b3b071..dc7f9c9 100644
--- a/ash/display/display_configuration_controller.cc
+++ b/ash/display/display_configuration_controller.cc
@@ -68,8 +68,7 @@
   DisplayChangeLimiter& operator=(const DisplayChangeLimiter&) = delete;
 
   void SetThrottleTimeout(int64_t throttle_ms) {
-    throttle_timeout_ =
-        base::Time::Now() + base::TimeDelta::FromMilliseconds(throttle_ms);
+    throttle_timeout_ = base::Time::Now() + base::Milliseconds(throttle_ms);
   }
 
   bool IsThrottled() const { return base::Time::Now() < throttle_timeout_; }
diff --git a/ash/display/resolution_notification_controller_unittest.cc b/ash/display/resolution_notification_controller_unittest.cc
index f0d9d75d..0a34d53 100644
--- a/ash/display/resolution_notification_controller_unittest.cc
+++ b/ash/display/resolution_notification_controller_unittest.cc
@@ -44,9 +44,9 @@
                                              float new_refresh_rate) {
     const std::u16string display_name =
         base::UTF8ToUTF16(display_manager()->GetDisplayNameForId(display_id));
-    const std::u16string countdown = ui::TimeFormat::Simple(
-        ui::TimeFormat::FORMAT_DURATION, ui::TimeFormat::LENGTH_LONG,
-        base::TimeDelta::FromSeconds(15));
+    const std::u16string countdown =
+        ui::TimeFormat::Simple(ui::TimeFormat::FORMAT_DURATION,
+                               ui::TimeFormat::LENGTH_LONG, base::Seconds(15));
     if (::display::features::IsListAllDisplayModesEnabled()) {
       return l10n_util::GetStringFUTF16(
           IDS_ASH_RESOLUTION_REFRESH_CHANGE_DIALOG_CHANGED, display_name,
@@ -66,9 +66,9 @@
       float fallback_refresh_rate) {
     const std::u16string display_name =
         base::UTF8ToUTF16(display_manager()->GetDisplayNameForId(display_id));
-    const std::u16string countdown = ui::TimeFormat::Simple(
-        ui::TimeFormat::FORMAT_DURATION, ui::TimeFormat::LENGTH_LONG,
-        base::TimeDelta::FromSeconds(15));
+    const std::u16string countdown =
+        ui::TimeFormat::Simple(ui::TimeFormat::FORMAT_DURATION,
+                               ui::TimeFormat::LENGTH_LONG, base::Seconds(15));
     if (::display::features::IsListAllDisplayModesEnabled()) {
       return l10n_util::GetStringFUTF16(
           IDS_ASH_RESOLUTION_REFRESH_CHANGE_DIALOG_FALLBACK,
diff --git a/ash/display/root_window_transformers_unittest.cc b/ash/display/root_window_transformers_unittest.cc
index 913066d..c1c9e867 100644
--- a/ash/display/root_window_transformers_unittest.cc
+++ b/ash/display/root_window_transformers_unittest.cc
@@ -341,9 +341,8 @@
   EXPECT_FLOAT_EQ(0.2f, event_handler.touch_radius_x());
   EXPECT_FLOAT_EQ(0.2f, event_handler.touch_radius_y());
 
-  generator.ScrollSequence(gfx::Point(0, 0),
-                           base::TimeDelta::FromMilliseconds(100), 10.0, 1.0, 5,
-                           1);
+  generator.ScrollSequence(gfx::Point(0, 0), base::Milliseconds(100), 10.0, 1.0,
+                           5, 1);
 
   // ordinal_offset is invariant to the device scale factor.
   EXPECT_FLOAT_EQ(event_handler.scroll_x_offset(),
@@ -517,7 +516,7 @@
   ui::Layer* layer = root_window->layer();
   {
     ui::ScopedLayerAnimationSettings settings(layer->GetAnimator());
-    settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(100));
+    settings.SetTransitionDuration(base::Milliseconds(100));
     gfx::Transform transform;
     transform.Translate(100, 200);
     layer->SetTransform(transform);
@@ -544,7 +543,7 @@
   ui::Layer* layer = root_window->layer();
   {
     ui::ScopedLayerAnimationSettings settings(layer->GetAnimator());
-    settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(100));
+    settings.SetTransitionDuration(base::Milliseconds(100));
     gfx::Transform transform;
     transform.Translate(100, 200);
     layer->SetTransform(transform);
@@ -570,7 +569,7 @@
   {
     ui::Layer* layer = root_window->layer();
     ui::ScopedLayerAnimationSettings settings(layer->GetAnimator());
-    settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(100));
+    settings.SetTransitionDuration(base::Milliseconds(100));
     layer->SetOpacity(0.1f);
   }
 
diff --git a/ash/display/shared_display_edge_indicator.cc b/ash/display/shared_display_edge_indicator.cc
index d86834d..4e2b9f1 100644
--- a/ash/display/shared_display_edge_indicator.cc
+++ b/ash/display/shared_display_edge_indicator.cc
@@ -63,7 +63,7 @@
   container->SetAnimationRunner(
       std::make_unique<views::CompositorAnimationRunner>(src_widget_.get()));
   animation_->SetContainer(container);
-  animation_->SetThrobDuration(base::TimeDelta::FromMilliseconds(1000));
+  animation_->SetThrobDuration(base::Milliseconds(1000));
   animation_->StartThrobbing(/*infinite=*/-1);
 }
 
diff --git a/ash/display/touch_calibrator_controller.cc b/ash/display/touch_calibrator_controller.cc
index 384beb6..63f25e9 100644
--- a/ash/display/touch_calibrator_controller.cc
+++ b/ash/display/touch_calibrator_controller.cc
@@ -77,7 +77,7 @@
 // Time interval after a touch event during which all other touch events are
 // ignored during calibration.
 const base::TimeDelta TouchCalibratorController::kTouchIntervalThreshold =
-    base::TimeDelta::FromMilliseconds(200);
+    base::Milliseconds(200);
 
 TouchCalibratorController::TouchCalibratorController()
     : last_touch_timestamp_(base::Time::Now()) {}
diff --git a/ash/display/touch_calibrator_view.cc b/ash/display/touch_calibrator_view.cc
index 64b36a1..b45098bd 100644
--- a/ash/display/touch_calibrator_view.cc
+++ b/ash/display/touch_calibrator_view.cc
@@ -31,9 +31,9 @@
 constexpr char kWidgetName[] = "TouchCalibratorOverlay";
 
 constexpr int kAnimationFrameRate = 100;
-constexpr auto kFadeDuration = base::TimeDelta::FromMilliseconds(150);
-constexpr auto kPointMoveDuration = base::TimeDelta::FromMilliseconds(400);
-constexpr auto kPointMoveDurationLong = base::TimeDelta::FromMilliseconds(500);
+constexpr auto kFadeDuration = base::Milliseconds(150);
+constexpr auto kPointMoveDuration = base::Milliseconds(400);
+constexpr auto kPointMoveDurationLong = base::Milliseconds(500);
 
 const SkColor kExitLabelColor = SkColorSetARGB(255, 138, 138, 138);
 constexpr int kExitLabelWidth = 300;
@@ -49,8 +49,7 @@
 constexpr int kThrobberCircleViewWidth = 64;
 constexpr float kThrobberCircleRadiusFactor = 3.f / 8.f;
 
-constexpr auto kFinalMessageTransitionDuration =
-    base::TimeDelta::FromMilliseconds(200);
+constexpr auto kFinalMessageTransitionDuration = base::Milliseconds(200);
 constexpr int kCompleteMessageViewWidth = 427;
 constexpr int kCompleteMessageViewHeight = kThrobberCircleViewWidth;
 constexpr int kCompleteMessageTextSize = 16;
@@ -66,8 +65,7 @@
 const SkColor kInnerCircleColor = SK_ColorWHITE;
 const SkColor kOuterCircleColor = SkColorSetA(kInnerCircleColor, 255 * 0.2);
 
-constexpr auto kCircleAnimationDuration =
-    base::TimeDelta::FromMilliseconds(900);
+constexpr auto kCircleAnimationDuration = base::Milliseconds(900);
 
 constexpr int kHintRectBorderRadius = 4;
 
diff --git a/ash/display/window_tree_host_manager.cc b/ash/display/window_tree_host_manager.cc
index f6690bc..027549f 100644
--- a/ash/display/window_tree_host_manager.cc
+++ b/ash/display/window_tree_host_manager.cc
@@ -74,7 +74,7 @@
 // keeps track of the effective resolution most used on internal display by the
 // user.
 constexpr base::TimeDelta kEffectiveResolutionRepeatingDelay =
-    base::TimeDelta::FromMinutes(30);
+    base::Minutes(30);
 
 display::DisplayManager* GetDisplayManager() {
   return Shell::Get()->display_manager();
diff --git a/ash/display/window_tree_host_manager_unittest.cc b/ash/display/window_tree_host_manager_unittest.cc
index 21efd6dc..6d3405f 100644
--- a/ash/display/window_tree_host_manager_unittest.cc
+++ b/ash/display/window_tree_host_manager_unittest.cc
@@ -1290,9 +1290,8 @@
   EXPECT_EQ(0.5, event_handler.touch_radius_x());
   EXPECT_EQ(0.5, event_handler.touch_radius_y());
 
-  generator.ScrollSequence(gfx::Point(0, 0),
-                           base::TimeDelta::FromMilliseconds(100), 10.0, 1.0, 5,
-                           1);
+  generator.ScrollSequence(gfx::Point(0, 0), base::Milliseconds(100), 10.0, 1.0,
+                           5, 1);
 
   // ordinal_offset is invariant to the device scale factor.
   EXPECT_EQ(event_handler.scroll_x_offset(),
diff --git a/ash/drag_drop/drag_drop_controller.cc b/ash/drag_drop/drag_drop_controller.cc
index 62e3c88..5f8699f 100644
--- a/ash/drag_drop/drag_drop_controller.cc
+++ b/ash/drag_drop/drag_drop_controller.cc
@@ -48,10 +48,9 @@
 using ::ui::mojom::DragOperation;
 
 // The duration of the drag cancel animation in millisecond.
-constexpr base::TimeDelta kCancelAnimationDuration =
-    base::TimeDelta::FromMilliseconds(250);
+constexpr base::TimeDelta kCancelAnimationDuration = base::Milliseconds(250);
 constexpr base::TimeDelta kTouchCancelAnimationDuration =
-    base::TimeDelta::FromMilliseconds(20);
+    base::Milliseconds(20);
 // The frame rate of the drag cancel animation in hertz.
 const int kCancelAnimationFrameRate = 60;
 
diff --git a/ash/drag_drop/drag_drop_controller_unittest.cc b/ash/drag_drop/drag_drop_controller_unittest.cc
index c31da1a..231769b 100644
--- a/ash/drag_drop/drag_drop_controller_unittest.cc
+++ b/ash/drag_drop/drag_drop_controller_unittest.cc
@@ -1299,13 +1299,13 @@
 
   DispatchGesture(ui::ET_GESTURE_LONG_PRESS, start);
   UpdateDragData();
-  timestamp += base::TimeDelta::FromMilliseconds(10);
+  timestamp += base::Milliseconds(10);
   ui::TouchEvent move1(ui::ET_TOUCH_MOVED, mid, timestamp,
                        ui::PointerDetails(ui::EventPointerType::kTouch, 0));
   generator.Dispatch(&move1);
   // Doing two moves instead of one will guarantee to generate a fling at the
   // end.
-  timestamp += base::TimeDelta::FromMilliseconds(10);
+  timestamp += base::Milliseconds(10);
   ui::TouchEvent move2(ui::ET_TOUCH_MOVED, end, timestamp,
                        ui::PointerDetails(ui::EventPointerType::kTouch, 0));
   generator.Dispatch(&move2);
diff --git a/ash/fast_ink/cursor/cursor_view.cc b/ash/fast_ink/cursor/cursor_view.cc
index 7edf229..8794ffc 100644
--- a/ash/fast_ink/cursor/cursor_view.cc
+++ b/ash/fast_ink/cursor/cursor_view.cc
@@ -68,7 +68,7 @@
       new_location_(initial_location),
       stationary_timer_(
           FROM_HERE,
-          base::TimeDelta::FromMilliseconds(kStationaryDelayMs),
+          base::Milliseconds(kStationaryDelayMs),
           base::BindRepeating(&CursorView::StationaryOnPaintThread,
                               base::Unretained(this))) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(ui_sequence_checker_);
@@ -333,7 +333,7 @@
 
   DCHECK(time_source_);
   time_source_->SetTimebaseAndInterval(
-      timebase + base::TimeDelta::FromMilliseconds(kVSyncOffsetMs), interval);
+      timebase + base::Milliseconds(kVSyncOffsetMs), interval);
 }
 
 void CursorView::DidPresentCompositorFrame(
diff --git a/ash/fast_ink/fast_ink_pointer_controller.cc b/ash/fast_ink/fast_ink_pointer_controller.cc
index 13388d6..b310529 100644
--- a/ash/fast_ink/fast_ink_pointer_controller.cc
+++ b/ash/fast_ink/fast_ink_pointer_controller.cc
@@ -25,8 +25,7 @@
 }  // namespace
 
 FastInkPointerController::FastInkPointerController()
-    : presentation_delay_(
-          base::TimeDelta::FromMilliseconds(kPresentationDelayMs)) {
+    : presentation_delay_(base::Milliseconds(kPresentationDelayMs)) {
   auto* local_state = ash::Shell::Get()->local_state();
   // |local_state| could be null in tests.
   if (!local_state)
diff --git a/ash/fast_ink/fast_ink_points.cc b/ash/fast_ink/fast_ink_points.cc
index 4f51239..520dbb7 100644
--- a/ash/fast_ink/fast_ink_points.cc
+++ b/ash/fast_ink/fast_ink_points.cc
@@ -163,9 +163,8 @@
   const float kPredictionIntervalMs = 5.0f;
   const float kMaxPointIntervalMs = 10.0f;
   base::TimeDelta prediction_interval =
-      base::TimeDelta::FromMilliseconds(kPredictionIntervalMs);
-  base::TimeDelta max_point_interval =
-      base::TimeDelta::FromMilliseconds(kMaxPointIntervalMs);
+      base::Milliseconds(kPredictionIntervalMs);
+  base::TimeDelta max_point_interval = base::Milliseconds(kMaxPointIntervalMs);
   const FastInkPoint newest_real_point = real_points.GetNewest();
   base::TimeTicks last_point_time = newest_real_point.time;
   gfx::PointF last_point_location =
diff --git a/ash/fast_ink/fast_ink_points_unittest.cc b/ash/fast_ink/fast_ink_points_unittest.cc
index 65f4e78..14542560 100644
--- a/ash/fast_ink/fast_ink_points_unittest.cc
+++ b/ash/fast_ink/fast_ink_points_unittest.cc
@@ -14,8 +14,8 @@
 class FastInkPointsTest : public testing::Test {
  public:
   FastInkPointsTest()
-      : points_(base::TimeDelta::FromSeconds(kTestPointsLifetimeSeconds)),
-        predicted_(base::TimeDelta::FromSeconds(kTestPointsLifetimeSeconds)),
+      : points_(base::Seconds(kTestPointsLifetimeSeconds)),
+        predicted_(base::Seconds(kTestPointsLifetimeSeconds)),
         event_time_(base::TimeTicks()),
         screen_size_(1000, 1000) {}
 
@@ -138,27 +138,27 @@
   // should get removed. The age of the point is a number between 0.0 and 1.0,
   // with 0.0 specifying a newly added point and 1.0 specifying the age of a
   // point added |kTestPointsLifetimeSeconds| ago.
-  AddPoint(gfx::PointF(), base::TimeDelta::FromSeconds(1));
+  AddPoint(gfx::PointF(), base::Seconds(1));
   EXPECT_EQ(1, points_.GetNumberOfPoints());
   EXPECT_FLOAT_EQ(0.0, points_.GetFadeoutFactor(0));
 
   // Verify when we move forward in time by one second, the age of the last
   // point, added one second ago is 1 / |kTestPointsLifetimeSeconds|.
-  AddPoint(gfx::PointF(), base::TimeDelta::FromSeconds(1));
+  AddPoint(gfx::PointF(), base::Seconds(1));
   EXPECT_EQ(2, points_.GetNumberOfPoints());
   EXPECT_FLOAT_EQ(0.2, points_.GetFadeoutFactor(0));
   EXPECT_FLOAT_EQ(0.0, points_.GetFadeoutFactor(1));
   // Verify adding a point 10 seconds later will clear all other points, since
   // they are older than 5 seconds.
-  AddPoint(gfx::PointF(), base::TimeDelta::FromSeconds(10));
+  AddPoint(gfx::PointF(), base::Seconds(10));
   EXPECT_EQ(1, points_.GetNumberOfPoints());
 
   // Verify adding 3 points one second apart each will add 3 points to the
   // collection, since all 4 points are younger than 5 seconds. All 4 points are
   // added 1 second apart so their age should be 0.2 apart.
-  AddPoint(gfx::PointF(), base::TimeDelta::FromSeconds(1));
-  AddPoint(gfx::PointF(), base::TimeDelta::FromSeconds(1));
-  AddPoint(gfx::PointF(), base::TimeDelta::FromSeconds(1));
+  AddPoint(gfx::PointF(), base::Seconds(1));
+  AddPoint(gfx::PointF(), base::Seconds(1));
+  AddPoint(gfx::PointF(), base::Seconds(1));
   EXPECT_EQ(4, points_.GetNumberOfPoints());
   EXPECT_FLOAT_EQ(0.6, points_.GetFadeoutFactor(0));
   EXPECT_FLOAT_EQ(0.4, points_.GetFadeoutFactor(1));
@@ -167,15 +167,15 @@
 
   // Verify adding 1 point three seconds later will remove 2 points which are
   // older than 5 seconds.
-  AddPoint(gfx::PointF(), base::TimeDelta::FromSeconds(3));
+  AddPoint(gfx::PointF(), base::Seconds(3));
   EXPECT_EQ(3, points_.GetNumberOfPoints());
 }
 
 // Test the fast ink prediction.
 TEST_F(FastInkPointsTest, FastInkPointsPrediction) {
-  prediction_duration_ = base::TimeDelta::FromMilliseconds(18);
+  prediction_duration_ = base::Milliseconds(18);
 
-  const base::TimeDelta kTraceInterval = base::TimeDelta::FromMilliseconds(5);
+  const base::TimeDelta kTraceInterval = base::Milliseconds(5);
 
   const int kExpectedPredictionDepth = 3;
 
diff --git a/ash/fast_ink/laser/laser_pointer_controller.cc b/ash/fast_ink/laser/laser_pointer_controller.cc
index 2786021c..813fde7 100644
--- a/ash/fast_ink/laser/laser_pointer_controller.cc
+++ b/ash/fast_ink/laser/laser_pointer_controller.cc
@@ -91,9 +91,8 @@
     base::TimeDelta presentation_delay,
     aura::Window* root_window) {
   laser_pointer_view_widget_ = LaserPointerView::Create(
-      base::TimeDelta::FromMilliseconds(kPointLifeDurationMs),
-      presentation_delay,
-      base::TimeDelta::FromMilliseconds(kAddStationaryPointsDelayMs),
+      base::Milliseconds(kPointLifeDurationMs), presentation_delay,
+      base::Milliseconds(kAddStationaryPointsDelayMs),
       Shell::GetContainer(root_window, kShellWindowId_OverlayContainer));
 }
 
diff --git a/ash/frame/caption_buttons/frame_size_button_unittest.cc b/ash/frame/caption_buttons/frame_size_button_unittest.cc
index 32d4e9f..c93b2df 100644
--- a/ash/frame/caption_buttons/frame_size_button_unittest.cc
+++ b/ash/frame/caption_buttons/frame_size_button_unittest.cc
@@ -233,14 +233,14 @@
   // Snap right.
   generator->GestureScrollSequence(CenterPointInScreen(size_button()),
                                    CenterPointInScreen(close_button()),
-                                   base::TimeDelta::FromMilliseconds(100), 3);
+                                   base::Milliseconds(100), 3);
   base::RunLoop().RunUntilIdle();
   EXPECT_TRUE(HasStateType(WindowStateType::kSecondarySnapped));
 
   // Snap left.
   generator->GestureScrollSequence(CenterPointInScreen(size_button()),
                                    CenterPointInScreen(minimize_button()),
-                                   base::TimeDelta::FromMilliseconds(100), 3);
+                                   base::Milliseconds(100), 3);
   base::RunLoop().RunUntilIdle();
   EXPECT_TRUE(HasStateType(WindowStateType::kPrimarySnapped));
 
diff --git a/ash/frame_throttler/frame_throttling_controller.cc b/ash/frame_throttler/frame_throttling_controller.cc
index 1715745..c296788 100644
--- a/ash/frame_throttler/frame_throttling_controller.cc
+++ b/ash/frame_throttler/frame_throttling_controller.cc
@@ -189,7 +189,7 @@
 
 void FrameThrottlingController::UpdateThrottlingOnBrowserWindows() {
   context_factory_->GetHostFrameSinkManager()->Throttle(
-      GetFrameSinkIdsToThrottle(), base::TimeDelta::FromHz(throttled_fps_));
+      GetFrameSinkIdsToThrottle(), base::Hertz(throttled_fps_));
 }
 
 void FrameThrottlingController::AddArcObserver(
diff --git a/ash/highlighter/highlighter_controller.cc b/ash/highlighter/highlighter_controller.cc
index cffa4bf..688948e3 100644
--- a/ash/highlighter/highlighter_controller.cc
+++ b/ash/highlighter/highlighter_controller.cc
@@ -145,7 +145,7 @@
 
   interrupted_stroke_timer_ = std::make_unique<base::OneShotTimer>();
   interrupted_stroke_timer_->Start(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(kInterruptedStrokeTimeoutMs),
+      FROM_HERE, base::Milliseconds(kInterruptedStrokeTimeoutMs),
       base::BindOnce(&HighlighterController::RecognizeGesture,
                      base::Unretained(this)));
 }
diff --git a/ash/highlighter/highlighter_result_view.cc b/ash/highlighter/highlighter_result_view.cc
index 0dae85577..742a6e1e 100644
--- a/ash/highlighter/highlighter_result_view.cc
+++ b/ash/highlighter/highlighter_result_view.cc
@@ -212,9 +212,8 @@
 
     layer->Add(result_layer_.get());
 
-    delay = base::TimeDelta::FromMilliseconds(kResultInPlaceFadeinDelayMs);
-    duration =
-        base::TimeDelta::FromMilliseconds(kResultInPlaceFadeinDurationMs);
+    delay = base::Milliseconds(kResultInPlaceFadeinDelayMs);
+    duration = base::Milliseconds(kResultInPlaceFadeinDurationMs);
   } else {
     DCHECK(gesture_type == HighlighterGestureType::kClosedShape);
     // The original stroke is fading out and inflating.
@@ -229,8 +228,8 @@
     transform.Scale(kInitialScale, kInitialScale);
     layer->SetTransform(transform);
 
-    delay = base::TimeDelta::FromMilliseconds(kResultFadeinDelayMs);
-    duration = base::TimeDelta::FromMilliseconds(kResultFadeinDurationMs);
+    delay = base::Milliseconds(kResultFadeinDelayMs);
+    duration = base::Milliseconds(kResultFadeinDurationMs);
   }
 
   layer->SetOpacity(0);
@@ -260,8 +259,7 @@
 
   animation_timer_ = std::make_unique<base::OneShotTimer>();
   animation_timer_->Start(
-      FROM_HERE,
-      duration + base::TimeDelta::FromMilliseconds(kResultFadeoutDelayMs),
+      FROM_HERE, duration + base::Milliseconds(kResultFadeoutDelayMs),
       base::BindOnce(&HighlighterResultView::FadeOut, base::Unretained(this),
                      std::move(done)));
 }
@@ -269,8 +267,7 @@
 void HighlighterResultView::FadeOut(base::OnceClosure done) {
   ui::Layer* layer = GetWidget()->GetLayer();
 
-  base::TimeDelta duration =
-      base::TimeDelta::FromMilliseconds(kResultFadeoutDurationMs);
+  base::TimeDelta duration = base::Milliseconds(kResultFadeoutDurationMs);
 
   ui::ScopedLayerAnimationSettings settings(layer->GetAnimator());
   settings.SetTransitionDuration(duration);
diff --git a/ash/highlighter/highlighter_view.cc b/ash/highlighter/highlighter_view.cc
index 0fc67d85..498b9d0 100644
--- a/ash/highlighter/highlighter_view.cc
+++ b/ash/highlighter/highlighter_view.cc
@@ -144,7 +144,7 @@
                               base::OnceClosure done) {
   animation_timer_ = std::make_unique<base::OneShotTimer>();
   animation_timer_->Start(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(kStrokeFadeoutDelayMs),
+      FROM_HERE, base::Milliseconds(kStrokeFadeoutDelayMs),
       base::BindOnce(&HighlighterView::FadeOut, base::Unretained(this), pivot,
                      gesture_type, std::move(done)));
 }
@@ -172,8 +172,7 @@
                               base::OnceClosure done) {
   ui::Layer* layer = GetWidget()->GetLayer();
 
-  base::TimeDelta duration =
-      base::TimeDelta::FromMilliseconds(kStrokeFadeoutDurationMs);
+  base::TimeDelta duration = base::Milliseconds(kStrokeFadeoutDurationMs);
 
   {
     ui::ScopedLayerAnimationSettings settings(layer->GetAnimator());
@@ -185,8 +184,7 @@
 
   if (gesture_type != HighlighterGestureType::kHorizontalStroke) {
     ui::ScopedLayerAnimationSettings settings(layer->GetAnimator());
-    settings.SetTransitionDuration(
-        base::TimeDelta::FromMilliseconds(kStrokeScaleDurationMs));
+    settings.SetTransitionDuration(base::Milliseconds(kStrokeScaleDurationMs));
     settings.SetTweenType(gfx::Tween::LINEAR_OUT_SLOW_IN);
 
     const float scale = gesture_type == HighlighterGestureType::kClosedShape
diff --git a/ash/hud_display/fps_graph_page_view.cc b/ash/hud_display/fps_graph_page_view.cc
index 5399157a..3fc8131e 100644
--- a/ash/hud_display/fps_graph_page_view.cc
+++ b/ash/hud_display/fps_graph_page_view.cc
@@ -173,8 +173,8 @@
 }
 
 void FPSGraphPageView::UpdateStats(const gfx::PresentationFeedback& feedback) {
-  constexpr base::TimeDelta kOneSec = base::TimeDelta::FromSeconds(1);
-  constexpr base::TimeDelta k500ms = base::TimeDelta::FromMilliseconds(500);
+  constexpr base::TimeDelta kOneSec = base::Seconds(1);
+  constexpr base::TimeDelta k500ms = base::Milliseconds(500);
   if (!feedback.failed())
     presented_times_.push_back(feedback.timestamp);
 
diff --git a/ash/hud_display/graphs_container_view.cc b/ash/hud_display/graphs_container_view.cc
index 143f2737..1a699087 100644
--- a/ash/hud_display/graphs_container_view.cc
+++ b/ash/hud_display/graphs_container_view.cc
@@ -22,8 +22,7 @@
 namespace {
 
 // UI refresh interval.
-constexpr base::TimeDelta kGraphsDataRefreshInterval =
-    base::TimeDelta::FromMilliseconds(500);
+constexpr base::TimeDelta kGraphsDataRefreshInterval = base::Milliseconds(500);
 
 void GetDataSnapshotOnThreadPool(DataSource* data_source,
                                  DataSource::Snapshot* out_snapshot) {
diff --git a/ash/hud_display/hud_settings_view.cc b/ash/hud_display/hud_settings_view.cc
index fa878c3e..0c4e5fa 100644
--- a/ash/hud_display/hud_settings_view.cc
+++ b/ash/hud_display/hud_settings_view.cc
@@ -387,7 +387,7 @@
   void DisableWithSpinner() {
     DCHECK(!spinner_refresh_timer_.IsRunning());
     SetEnabled(false);
-    constexpr base::TimeDelta interval = base::TimeDelta::FromSecondsD(0.5);
+    constexpr base::TimeDelta interval = base::Seconds(0.5);
     spinner_created_ = base::Time::Now();
     spinner_refresh_timer_.Start(
         FROM_HERE, interval,
diff --git a/ash/ime/ime_mode_indicator_view.cc b/ash/ime/ime_mode_indicator_view.cc
index 95354d66..70baeac0 100644
--- a/ash/ime/ime_mode_indicator_view.cc
+++ b/ash/ime/ime_mode_indicator_view.cc
@@ -70,8 +70,8 @@
   ::wm::SetWindowVisibilityAnimationTransition(GetWidget()->GetNativeView(),
                                                ::wm::ANIMATE_HIDE);
   GetWidget()->Show();
-  timer_.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(kShowingDuration),
-               GetWidget(), &views::Widget::Close);
+  timer_.Start(FROM_HERE, base::Milliseconds(kShowingDuration), GetWidget(),
+               &views::Widget::Close);
 }
 
 void ImeModeIndicatorView::OnBeforeBubbleWidgetInit(
diff --git a/ash/in_session_auth/auth_dialog_contents_view.cc b/ash/in_session_auth/auth_dialog_contents_view.cc
index 2633cb2..72ed280 100644
--- a/ash/in_session_auth/auth_dialog_contents_view.cc
+++ b/ash/in_session_auth/auth_dialog_contents_view.cc
@@ -60,12 +60,11 @@
 constexpr int kSpacingBetweenFingerprintIconAndLabelDp = 15;
 constexpr int kFingerprintViewWidthDp = 204;
 constexpr int kFingerprintFailedAnimationNumFrames = 45;
-constexpr base::TimeDelta kResetToDefaultIconDelay =
-    base::TimeDelta::FromMilliseconds(1300);
+constexpr base::TimeDelta kResetToDefaultIconDelay = base::Milliseconds(1300);
 constexpr base::TimeDelta kResetToDefaultMessageDelay =
-    base::TimeDelta::FromMilliseconds(3000);
+    base::Milliseconds(3000);
 constexpr base::TimeDelta kFingerprintFailedAnimationDuration =
-    base::TimeDelta::FromMilliseconds(700);
+    base::Milliseconds(700);
 
 // 38% opacity.
 constexpr SkColor kDisabledFingerprintIconColor =
diff --git a/ash/keyboard/keyboard_controller_impl.cc b/ash/keyboard/keyboard_controller_impl.cc
index f25dc84..42989eb4 100644
--- a/ash/keyboard/keyboard_controller_impl.cc
+++ b/ash/keyboard/keyboard_controller_impl.cc
@@ -274,9 +274,8 @@
   bool enabled = prefs->GetBoolean(ash::prefs::kXkbAutoRepeatEnabled);
   int delay_in_ms = prefs->GetInteger(ash::prefs::kXkbAutoRepeatDelay);
   int interval_in_ms = prefs->GetInteger(ash::prefs::kXkbAutoRepeatInterval);
-  return KeyRepeatSettings{enabled,
-                           base::TimeDelta::FromMilliseconds(delay_in_ms),
-                           base::TimeDelta::FromMilliseconds(interval_in_ms)};
+  return KeyRepeatSettings{enabled, base::Milliseconds(delay_in_ms),
+                           base::Milliseconds(interval_in_ms)};
 }
 
 // SessionObserver
diff --git a/ash/keyboard/keyboard_controller_impl_unittest.cc b/ash/keyboard/keyboard_controller_impl_unittest.cc
index ba3f4c250c..2ba73dd6 100644
--- a/ash/keyboard/keyboard_controller_impl_unittest.cc
+++ b/ash/keyboard/keyboard_controller_impl_unittest.cc
@@ -709,7 +709,7 @@
       display::Screen::GetScreen()->GetPrimaryDisplay().bounds();
   const gfx::Point start(display_bounds.bottom_center());
   const gfx::Point end(start + gfx::Vector2d(0, -80));
-  const base::TimeDelta time_delta = base::TimeDelta::FromMilliseconds(100);
+  const base::TimeDelta time_delta = base::Milliseconds(100);
   const int num_scroll_steps = 4;
   GetEventGenerator()->GestureScrollSequence(start, end, time_delta,
                                              num_scroll_steps);
@@ -764,7 +764,7 @@
       display::Screen::GetScreen()->GetPrimaryDisplay().bounds();
   const gfx::Point start(display_bounds.bottom_center());
   const gfx::Point end(start + gfx::Vector2d(0, -80));
-  const base::TimeDelta time_delta = base::TimeDelta::FromMilliseconds(100);
+  const base::TimeDelta time_delta = base::Milliseconds(100);
   const int num_scroll_steps = 4;
   GetEventGenerator()->GestureScrollSequence(start, end, time_delta,
                                              num_scroll_steps);
diff --git a/ash/keyboard/ui/container_floating_behavior.cc b/ash/keyboard/ui/container_floating_behavior.cc
index ed14197..b3af4b9 100644
--- a/ash/keyboard/ui/container_floating_behavior.cc
+++ b/ash/keyboard/ui/container_floating_behavior.cc
@@ -22,8 +22,8 @@
 namespace keyboard {
 
 // The virtual keyboard show/hide animation durations.
-constexpr auto kShowAnimationDuration = base::TimeDelta::FromMilliseconds(200);
-constexpr auto kHideAnimationDuration = base::TimeDelta::FromMilliseconds(100);
+constexpr auto kShowAnimationDuration = base::Milliseconds(200);
+constexpr auto kHideAnimationDuration = base::Milliseconds(100);
 
 // Distance the keyboard moves during the animation
 constexpr int kAnimationDistance = 30;
diff --git a/ash/keyboard/ui/container_full_width_behavior.cc b/ash/keyboard/ui/container_full_width_behavior.cc
index 351b044..dafebce 100644
--- a/ash/keyboard/ui/container_full_width_behavior.cc
+++ b/ash/keyboard/ui/container_full_width_behavior.cc
@@ -14,8 +14,8 @@
 namespace keyboard {
 
 // The virtual keyboard show/hide animation durations.
-constexpr auto kShowAnimationDuration = base::TimeDelta::FromMilliseconds(200);
-constexpr auto kHideAnimationDuration = base::TimeDelta::FromMilliseconds(100);
+constexpr auto kShowAnimationDuration = base::Milliseconds(200);
+constexpr auto kHideAnimationDuration = base::Milliseconds(100);
 
 // The height of the area from the bottom of the keyboard where the user can
 // swipe up to access the shelf. Manually calculated to be slightly below
diff --git a/ash/keyboard/ui/keyboard_ui_controller.cc b/ash/keyboard/ui/keyboard_ui_controller.cc
index 1038389..6bc313e 100644
--- a/ash/keyboard/ui/keyboard_ui_controller.cc
+++ b/ash/keyboard/ui/keyboard_ui_controller.cc
@@ -59,21 +59,18 @@
 KeyboardUIController* g_keyboard_controller = nullptr;
 
 // How long the keyboard stays in WILL_HIDE state before moving to HIDDEN.
-constexpr base::TimeDelta kHideKeyboardDelay =
-    base::TimeDelta::FromMilliseconds(100);
+constexpr base::TimeDelta kHideKeyboardDelay = base::Milliseconds(100);
 
 // Reports an error histogram if the keyboard state is lingering in an
 // intermediate state for more than 5 seconds.
-constexpr base::TimeDelta kReportLingeringStateDelay =
-    base::TimeDelta::FromMilliseconds(5000);
+constexpr base::TimeDelta kReportLingeringStateDelay = base::Milliseconds(5000);
 
 // Delay threshold after the keyboard enters the WILL_HIDE state. If text focus
 // is regained during this threshold, the keyboard will show again, even if it
 // is an asynchronous event. This is for the benefit of things like login flow
 // where the password field may get text focus after an animation that plays
 // after the user enters their username.
-constexpr base::TimeDelta kTransientBlurThreshold =
-    base::TimeDelta::FromMilliseconds(3500);
+constexpr base::TimeDelta kTransientBlurThreshold = base::Milliseconds(3500);
 
 // An enumeration of different keyboard control events that should be logged.
 // These values are persisted to logs. Entries should not be renumbered and
diff --git a/ash/keyboard/ui/keyboard_ui_controller_unittest.cc b/ash/keyboard/ui/keyboard_ui_controller_unittest.cc
index 788aca6..43ddfe7 100644
--- a/ash/keyboard/ui/keyboard_ui_controller_unittest.cc
+++ b/ash/keyboard/ui/keyboard_ui_controller_unittest.cc
@@ -60,8 +60,7 @@
   while (controller.animator()->is_animating()) {
     controller.StartThreadedAnimationsIfNeeded();
     base::TimeTicks step_time = controller.animator()->last_step_time();
-    controller.animator()->Step(step_time +
-                                base::TimeDelta::FromMilliseconds(1000));
+    controller.animator()->Step(step_time + base::Milliseconds(1000));
   }
 }
 
@@ -228,7 +227,7 @@
   }
 
   void AddTimeToTransientBlurCounter(double seconds) {
-    controller_.time_of_last_blur_ -= base::TimeDelta::FromSecondsD(seconds);
+    controller_.time_of_last_blur_ -= base::Seconds(seconds);
   }
 
   void SetFocus(ui::TextInputClient* client) {
diff --git a/ash/lock_screen_action/lock_screen_note_display_state_handler.cc b/ash/lock_screen_action/lock_screen_note_display_state_handler.cc
index 03be2e7..326b9ecb 100644
--- a/ash/lock_screen_action/lock_screen_note_display_state_handler.cc
+++ b/ash/lock_screen_action/lock_screen_note_display_state_handler.cc
@@ -22,8 +22,7 @@
 // The max amount of time display state change handling can be delayed due to a
 // lock screen note action launch. The time starts running when the app launch
 // is requested.
-constexpr base::TimeDelta kNoteLaunchTimeout =
-    base::TimeDelta::FromMilliseconds(1500);
+constexpr base::TimeDelta kNoteLaunchTimeout = base::Milliseconds(1500);
 
 }  // namespace
 
diff --git a/ash/lock_screen_action/lock_screen_note_display_state_handler_unittest.cc b/ash/lock_screen_action/lock_screen_note_display_state_handler_unittest.cc
index 91f024f..12325bd 100644
--- a/ash/lock_screen_action/lock_screen_note_display_state_handler_unittest.cc
+++ b/ash/lock_screen_action/lock_screen_note_display_state_handler_unittest.cc
@@ -115,7 +115,7 @@
     power_manager_observer_->ClearBrightnessChanges();
 
     // Advance the tick clock so it's not close to the null clock value.
-    tick_clock_.Advance(base::TimeDelta::FromMilliseconds(10000));
+    tick_clock_.Advance(base::Milliseconds(10000));
   }
   void TearDown() override {
     power_manager_observer_.reset();
@@ -154,7 +154,7 @@
 
   void SimulatePowerButtonPress() {
     power_manager_client()->SendPowerButtonEvent(true, tick_clock_.NowTicks());
-    tick_clock_.Advance(base::TimeDelta::FromMilliseconds(10));
+    tick_clock_.Advance(base::Milliseconds(10));
     power_manager_client()->SendPowerButtonEvent(false, tick_clock_.NowTicks());
     base::RunLoop().RunUntilIdle();
   }
diff --git a/ash/login/login_screen_controller.cc b/ash/login/login_screen_controller.cc
index 7f6801f1..3bb430e 100644
--- a/ash/login/login_screen_controller.cc
+++ b/ash/login/login_screen_controller.cc
@@ -120,7 +120,7 @@
           base::BindOnce(&LoginScreenController::OnAuthenticateComplete,
                          weak_factory_.GetWeakPtr(), std::move(callback),
                          false),
-          base::TimeDelta::FromSeconds(1));
+          base::Seconds(1));
       return;
   }
 
diff --git a/ash/login/ui/arrow_button_view.cc b/ash/login/ui/arrow_button_view.cc
index da20781..32220d0 100644
--- a/ash/login/ui/arrow_button_view.cc
+++ b/ash/login/ui/arrow_button_view.cc
@@ -33,8 +33,7 @@
 
 // How long does a single step of the loading animation take - i.e., the time it
 // takes for the arc to grow from a point to a full circle.
-constexpr base::TimeDelta kLoadingAnimationStepDuration =
-    base::TimeDelta::FromSeconds(2);
+constexpr base::TimeDelta kLoadingAnimationStepDuration = base::Seconds(2);
 
 void PaintLoadingArc(gfx::Canvas* canvas,
                      const gfx::Rect& bounds,
diff --git a/ash/login/ui/lock_contents_view_unittest.cc b/ash/login/ui/lock_contents_view_unittest.cc
index 3b42310..37ebe455 100644
--- a/ash/login/ui/lock_contents_view_unittest.cc
+++ b/ash/login/ui/lock_contents_view_unittest.cc
@@ -77,7 +77,7 @@
   base::SimpleTestTickClock tick_clock;
   auto dispatch_power_button_event_after_delay =
       [&](const base::TimeDelta& delta, bool down) {
-        tick_clock.Advance(delta + base::TimeDelta::FromMilliseconds(1));
+        tick_clock.Advance(delta + base::Milliseconds(1));
         Shell::Get()->power_button_controller()->OnPowerButtonEvent(
             down, tick_clock.NowTicks());
         base::RunLoop().RunUntilIdle();
@@ -109,8 +109,7 @@
 // important.
 AuthDisabledData GetTestDisabledAuthData() {
   return AuthDisabledData(ash::AuthDisabledReason::kTimeWindowLimit,
-                          base::Time::Now() + base::TimeDelta::FromHours(8),
-                          base::TimeDelta::FromHours(1),
+                          base::Time::Now() + base::Hours(8), base::Hours(1),
                           true /*disable_lock_screen_media*/);
 }
 
@@ -2138,10 +2137,9 @@
   // Setting auth disabled due to time window limit.
   DataDispatcher()->DisableAuthForUser(
       kFirstUserAccountId,
-      AuthDisabledData(
-          ash::AuthDisabledReason::kTimeWindowLimit,
-          base::Time::Now().LocalMidnight() + base::TimeDelta::FromHours(8),
-          base::TimeDelta::FromHours(1), true /*disable_lock_screen_media*/));
+      AuthDisabledData(ash::AuthDisabledReason::kTimeWindowLimit,
+                       base::Time::Now().LocalMidnight() + base::Hours(8),
+                       base::Hours(1), true /*disable_lock_screen_media*/));
   EXPECT_FALSE(password_view->GetVisible());
   EXPECT_FALSE(pin_view->GetVisible());
   EXPECT_EQ(
@@ -2151,7 +2149,7 @@
   DataDispatcher()->DisableAuthForUser(
       kFirstUserAccountId,
       AuthDisabledData(ash::AuthDisabledReason::kTimeUsageLimit,
-                       base::Time::Now(), base::TimeDelta::FromMinutes(30),
+                       base::Time::Now(), base::Minutes(30),
                        true /*disable_lock_screen_media*/));
   EXPECT_FALSE(password_view->GetVisible());
   EXPECT_FALSE(pin_view->GetVisible());
@@ -2162,7 +2160,7 @@
   DataDispatcher()->DisableAuthForUser(
       kFirstUserAccountId,
       AuthDisabledData(ash::AuthDisabledReason::kTimeLimitOverride,
-                       base::Time::Now(), base::TimeDelta::FromMinutes(30),
+                       base::Time::Now(), base::Minutes(30),
                        true /*disable_lock_screen_media*/));
   EXPECT_FALSE(password_view->GetVisible());
   EXPECT_FALSE(pin_view->GetVisible());
@@ -2271,8 +2269,7 @@
   DataDispatcher()->DisableAuthForUser(
       kFirstUserAccountId,
       AuthDisabledData(AuthDisabledReason::kTimeWindowLimit,
-                       base::Time::Now() + base::TimeDelta::FromHours(8),
-                       base::TimeDelta::FromHours(1),
+                       base::Time::Now() + base::Hours(8), base::Hours(1),
                        true /*disable_lock_screen_media*/));
   EXPECT_FALSE(lock_contents.media_controls_view()->IsDrawn());
 }
@@ -2297,8 +2294,7 @@
   DataDispatcher()->DisableAuthForUser(
       kFirstUserAccountId,
       AuthDisabledData(AuthDisabledReason::kTimeWindowLimit,
-                       base::Time::Now() + base::TimeDelta::FromHours(8),
-                       base::TimeDelta::FromHours(1),
+                       base::Time::Now() + base::Hours(8), base::Hours(1),
                        true /*disable_lock_screen_media*/));
   EXPECT_FALSE(lock_contents.media_controls_view()->IsDrawn());
 
@@ -2333,8 +2329,7 @@
   DataDispatcher()->DisableAuthForUser(
       kFirstUserAccountId,
       AuthDisabledData(AuthDisabledReason::kTimeWindowLimit,
-                       base::Time::Now() + base::TimeDelta::FromHours(8),
-                       base::TimeDelta::FromHours(1),
+                       base::Time::Now() + base::Hours(8), base::Hours(1),
                        false /*disable_lock_screen_media*/));
   EXPECT_TRUE(lock_contents.media_controls_view()->IsDrawn());
 }
diff --git a/ash/login/ui/lock_debug_view.cc b/ash/login/ui/lock_debug_view.cc
index 457ca99..58f52fb3 100644
--- a/ash/login/ui/lock_debug_view.cc
+++ b/ash/login/ui/lock_debug_view.cc
@@ -437,12 +437,10 @@
       case DebugAuthEnabledState::kTimeWindowLimit:
         debug_dispatcher_.DisableAuthForUser(
             debug_user->account_id,
-            AuthDisabledData(reason,
-                             base::Time::Now() +
-                                 base::TimeDelta::FromHours(user_index) +
-                                 base::TimeDelta::FromHours(8),
-                             base::TimeDelta::FromMinutes(15),
-                             true /*bool disable_lock_screen_media*/));
+            AuthDisabledData(
+                reason,
+                base::Time::Now() + base::Hours(user_index) + base::Hours(8),
+                base::Minutes(15), true /*bool disable_lock_screen_media*/));
         break;
       case DebugAuthEnabledState::kMultiProfilePrimaryOnly:
       case DebugAuthEnabledState::kMultiProfileNotAllowed:
diff --git a/ash/login/ui/lock_screen_media_controls_view.cc b/ash/login/ui/lock_screen_media_controls_view.cc
index 5b3d37f..567973ec 100644
--- a/ash/login/ui/lock_screen_media_controls_view.cc
+++ b/ash/login/ui/lock_screen_media_controls_view.cc
@@ -82,12 +82,10 @@
 
 constexpr int kDragVelocityThreshold = 6;
 constexpr int kDistanceDismissalThreshold = 20;
-constexpr base::TimeDelta kAnimationDuration =
-    base::TimeDelta::FromMilliseconds(200);
+constexpr base::TimeDelta kAnimationDuration = base::Milliseconds(200);
 
 // How long to wait (in milliseconds) for a new media session to begin.
-constexpr base::TimeDelta kNextMediaDelay =
-    base::TimeDelta::FromMilliseconds(2500);
+constexpr base::TimeDelta kNextMediaDelay = base::Milliseconds(2500);
 
 // Scales |size| to fit |view_size| while preserving proportions.
 gfx::Size ScaleSizeToFitView(const gfx::Size& size,
diff --git a/ash/login/ui/lock_screen_media_controls_view_unittest.cc b/ash/login/ui/lock_screen_media_controls_view_unittest.cc
index dfcc9ba..cdebc38 100644
--- a/ash/login/ui/lock_screen_media_controls_view_unittest.cc
+++ b/ash/login/ui/lock_screen_media_controls_view_unittest.cc
@@ -445,8 +445,8 @@
   EXPECT_FALSE(progress_view()->GetVisible());
 
   media_session::MediaPosition media_position(
-      /*playback_rate=*/1, /*duration=*/base::TimeDelta::FromSeconds(600),
-      /*position=*/base::TimeDelta::FromSeconds(300), /*end_of_media=*/false);
+      /*playback_rate=*/1, /*duration=*/base::Seconds(600),
+      /*position=*/base::Seconds(300), /*end_of_media=*/false);
 
   // Simulate position changing.
   media_controls_view_->MediaSessionPositionChanged(media_position);
@@ -861,7 +861,7 @@
   // Simulate scroll with velocity past the threshold.
   ui::test::EventGenerator* generator = GetEventGenerator();
   generator->GestureScrollSequence(scroll_start, scroll_end,
-                                   base::TimeDelta::FromMilliseconds(100), 3);
+                                   base::Milliseconds(100), 3);
 
   animation_waiter_->Wait();
 
@@ -880,8 +880,8 @@
 
   // Simulate scroll with distance past the threshold.
   ui::test::EventGenerator* generator = GetEventGenerator();
-  generator->GestureScrollSequence(scroll_start, scroll_end,
-                                   base::TimeDelta::FromSeconds(3), 3);
+  generator->GestureScrollSequence(scroll_start, scroll_end, base::Seconds(3),
+                                   3);
 
   animation_waiter_->Wait();
 
@@ -904,8 +904,8 @@
 
   // Simulate scroll with neither distance nor velocity past the thresholds.
   ui::test::EventGenerator* generator = GetEventGenerator();
-  generator->GestureScrollSequence(scroll_start, scroll_end,
-                                   base::TimeDelta::FromSeconds(3), 3);
+  generator->GestureScrollSequence(scroll_start, scroll_end, base::Seconds(3),
+                                   3);
 
   animation_waiter_->Wait();
 
@@ -930,8 +930,8 @@
 
   // Simulate scroll that attempts to go below the view bounds.
   ui::test::EventGenerator* generator = GetEventGenerator();
-  generator->GestureScrollSequence(scroll_start, scroll_end,
-                                   base::TimeDelta::FromSeconds(3), 3);
+  generator->GestureScrollSequence(scroll_start, scroll_end, base::Seconds(3),
+                                   3);
 
   animation_waiter_->Wait();
 
@@ -950,8 +950,8 @@
   EXPECT_EQ(0, media_controller()->seek_to_count());
 
   media_session::MediaPosition media_position(
-      /*playback_rate=*/1, /*duration=*/base::TimeDelta::FromSeconds(600),
-      /*position=*/base::TimeDelta::FromSeconds(100), /*end_of_media=*/false);
+      /*playback_rate=*/1, /*duration=*/base::Seconds(600),
+      /*position=*/base::Seconds(100), /*end_of_media=*/false);
 
   // Simulate initial position change.
   media_controls_view_->MediaSessionPositionChanged(media_position);
@@ -964,8 +964,7 @@
   // Verify the media was seeked to its halfway point.
   media_controls_view_->FlushForTesting();
   EXPECT_EQ(1, media_controller()->seek_to_count());
-  EXPECT_EQ(base::TimeDelta::FromSeconds(300),
-            media_controller()->seek_to_time());
+  EXPECT_EQ(base::Seconds(300), media_controller()->seek_to_time());
 
   tester.ExpectUniqueSample(
       LockScreenMediaControlsView::kMediaControlsUserActionHistogramName,
@@ -981,8 +980,8 @@
   EXPECT_EQ(0, media_controller()->seek_to_count());
 
   media_session::MediaPosition media_position(
-      /*playback_rate=*/1, /*duration=*/base::TimeDelta::FromSeconds(600),
-      /*position=*/base::TimeDelta::FromSeconds(100), /*end_of_media=*/false);
+      /*playback_rate=*/1, /*duration=*/base::Seconds(600),
+      /*position=*/base::Seconds(100), /*end_of_media=*/false);
 
   // Simulate initial position change.
   media_controls_view_->MediaSessionPositionChanged(media_position);
@@ -994,8 +993,7 @@
   // Verify the media was seeked to its halfway point.
   media_controls_view_->FlushForTesting();
   EXPECT_EQ(1, media_controller()->seek_to_count());
-  EXPECT_EQ(base::TimeDelta::FromSeconds(300),
-            media_controller()->seek_to_time());
+  EXPECT_EQ(base::Seconds(300), media_controller()->seek_to_time());
 
   tester.ExpectUniqueSample(
       LockScreenMediaControlsView::kMediaControlsUserActionHistogramName,
diff --git a/ash/login/ui/login_auth_user_view.cc b/ash/login/ui/login_auth_user_view.cc
index c0100294..dda2aac10 100644
--- a/ash/login/ui/login_auth_user_view.cc
+++ b/ash/login/ui/login_auth_user_view.cc
@@ -102,7 +102,7 @@
 constexpr int kFingerprintIconSizeDp = 28;
 constexpr int kResetToDefaultIconDelayMs = 1300;
 constexpr base::TimeDelta kResetToDefaultMessageDelayMs =
-    base::TimeDelta::FromMilliseconds(3000);
+    base::Milliseconds(3000);
 constexpr int kFingerprintIconTopSpacingDp = 20;
 constexpr int kSpacingBetweenFingerprintIconAndLabelDp = 15;
 constexpr int kFingerprintViewWidthDp = 204;
@@ -111,7 +111,7 @@
 constexpr int kFingerprintFailedAnimationNumFrames = 45;
 
 constexpr base::TimeDelta kChallengeResponseResetAfterFailureDelay =
-    base::TimeDelta::FromSeconds(5);
+    base::Seconds(5);
 constexpr int kChallengeResponseArrowSizeDp = 48;
 constexpr int kSpacingBetweenChallengeResponseArrowAndIconDp = 100;
 constexpr int kSpacingBetweenChallengeResponseIconAndLabelDp = 15;
@@ -324,11 +324,11 @@
         unlock_time, base::k12HourClock, base::kKeepAmPm);
   }
 
-  if (unlock_time < local_midnight + base::TimeDelta::FromDays(1)) {
+  if (unlock_time < local_midnight + base::Days(1)) {
     // Unlock time is today.
     message.content = l10n_util::GetStringFUTF16(
         IDS_ASH_LOGIN_COME_BACK_MESSAGE, time_to_display);
-  } else if (unlock_time < local_midnight + base::TimeDelta::FromDays(2)) {
+  } else if (unlock_time < local_midnight + base::Days(2)) {
     // Unlock time is tomorrow.
     message.content = l10n_util::GetStringFUTF16(
         IDS_ASH_LOGIN_COME_BACK_TOMORROW_MESSAGE, time_to_display);
@@ -349,7 +349,7 @@
 
   // 1 minute is used instead of 0, because the device is used for a few
   // milliseconds before locking.
-  if (used_time < base::TimeDelta::FromMinutes(1)) {
+  if (used_time < base::Minutes(1)) {
     // The device was locked all day.
     message.title = l10n_util::GetStringUTF16(IDS_ASH_LOGIN_TAKE_BREAK_MESSAGE);
     message.content =
@@ -466,11 +466,10 @@
     } else {
       SetIcon(FingerprintState::DISABLED_FROM_ATTEMPTS);
       // base::Unretained is safe because reset_state_ is owned by |this|.
-      reset_state_.Start(
-          FROM_HERE,
-          base::TimeDelta::FromMilliseconds(kResetToDefaultIconDelayMs),
-          base::BindOnce(&FingerprintView::DisplayCurrentState,
-                         base::Unretained(this)));
+      reset_state_.Start(FROM_HERE,
+                         base::Milliseconds(kResetToDefaultIconDelayMs),
+                         base::BindOnce(&FingerprintView::DisplayCurrentState,
+                                        base::Unretained(this)));
 
       FireAlert();
     }
@@ -536,8 +535,7 @@
             std::make_unique<HorizontalImageSequenceAnimationDecoder>(
                 *ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
                     IDR_LOGIN_FINGERPRINT_UNLOCK_SPINNER),
-                base::TimeDelta::FromMilliseconds(
-                    kFingerprintFailedAnimationDurationMs),
+                base::Milliseconds(kFingerprintFailedAnimationDurationMs),
                 kFingerprintFailedAnimationNumFrames),
             AnimatedRoundedImageView::Playback::kSingle);
         break;
@@ -1421,8 +1419,7 @@
     auto transition =
         ui::LayerAnimationElement::CreateInterpolatedTransformElement(
             std::move(move_to_center),
-            base::TimeDelta::FromMilliseconds(
-                login::kChangeUserAnimationDurationMs));
+            base::Milliseconds(login::kChangeUserAnimationDurationMs));
     transition->set_tween_type(gfx::Tween::Type::FAST_OUT_SLOW_IN);
     auto* sequence = new ui::LayerAnimationSequence(std::move(transition));
     auto* observer = BuildObserverToNotifyA11yLocationChanged(this);
@@ -1444,8 +1441,8 @@
     {
       ui::ScopedLayerAnimationSettings settings(
           password_view_->layer()->GetAnimator());
-      settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(
-          login::kChangeUserAnimationDurationMs));
+      settings.SetTransitionDuration(
+          base::Milliseconds(login::kChangeUserAnimationDurationMs));
       settings.SetTweenType(gfx::Tween::Type::FAST_OUT_SLOW_IN);
       if (previous_state_->has_password && !current_state.has_password) {
         settings.AddObserver(
@@ -1468,8 +1465,8 @@
     {
       ui::ScopedLayerAnimationSettings settings(
           pin_password_toggle_->layer()->GetAnimator());
-      settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(
-          login::kChangeUserAnimationDurationMs));
+      settings.SetTransitionDuration(
+          base::Milliseconds(login::kChangeUserAnimationDurationMs));
       settings.SetTweenType(gfx::Tween::Type::FAST_OUT_SLOW_IN);
       pin_password_toggle_->layer()->SetOpacity(opacity_end);
     }
@@ -1496,8 +1493,7 @@
     auto transition = std::make_unique<PinKeyboardAnimation>(
         current_state.has_pinpad /*grow*/, pin_view_->height(),
         // TODO(https://crbug.com/955119): Implement proper animation.
-        base::TimeDelta::FromMilliseconds(
-            login::kChangeUserAnimationDurationMs / 2.0f),
+        base::Milliseconds(login::kChangeUserAnimationDurationMs / 2.0f),
         gfx::Tween::FAST_OUT_SLOW_IN);
     auto* sequence = new ui::LayerAnimationSequence(std::move(transition));
 
@@ -1527,8 +1523,8 @@
     {
       ui::ScopedLayerAnimationSettings settings(
           fingerprint_view_->layer()->GetAnimator());
-      settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(
-          login::kChangeUserAnimationDurationMs));
+      settings.SetTransitionDuration(
+          base::Milliseconds(login::kChangeUserAnimationDurationMs));
       settings.SetTweenType(gfx::Tween::Type::FAST_OUT_SLOW_IN);
       fingerprint_view_->layer()->SetOpacity(opacity_end);
     }
@@ -1547,8 +1543,8 @@
     {
       ui::ScopedLayerAnimationSettings settings(
           challenge_response_view_->layer()->GetAnimator());
-      settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(
-          login::kChangeUserAnimationDurationMs));
+      settings.SetTransitionDuration(
+          base::Milliseconds(login::kChangeUserAnimationDurationMs));
       settings.SetTweenType(gfx::Tween::Type::FAST_OUT_SLOW_IN);
       challenge_response_view_->layer()->SetOpacity(opacity_end);
     }
diff --git a/ash/login/ui/login_base_bubble_view.cc b/ash/login/ui/login_base_bubble_view.cc
index 87f4c61..6b8585d 100644
--- a/ash/login/ui/login_base_bubble_view.cc
+++ b/ash/login/ui/login_base_bubble_view.cc
@@ -39,8 +39,7 @@
 constexpr int kBubbleBorderRadius = 8;
 
 // The amount of time for bubble show/hide animation.
-constexpr base::TimeDelta kBubbleAnimationDuration =
-    base::TimeDelta::FromMilliseconds(300);
+constexpr base::TimeDelta kBubbleAnimationDuration = base::Milliseconds(300);
 
 }  // namespace
 
diff --git a/ash/login/ui/login_password_view.cc b/ash/login/ui/login_password_view.cc
index 3d5e784..564d0eee 100644
--- a/ash/login/ui/login_password_view.cc
+++ b/ash/login/ui/login_password_view.cc
@@ -130,19 +130,16 @@
 // Delay after which the password gets cleared if nothing has been typed. It is
 // only running if the display password button is shown, as there is no
 // potential security threat otherwise.
-constexpr base::TimeDelta kClearPasswordAfterDelay =
-    base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kClearPasswordAfterDelay = base::Seconds(30);
 
 // Delay after which the password gets back to hidden state, for security.
-constexpr base::TimeDelta kHidePasswordAfterDelay =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kHidePasswordAfterDelay = base::Seconds(5);
 
 constexpr const char kLoginPasswordViewName[] = "LoginPasswordView";
 
 struct FrameParams {
   FrameParams(int duration_in_ms, float opacity_param)
-      : duration(base::TimeDelta::FromMilliseconds(duration_in_ms)),
-        opacity(opacity_param) {}
+      : duration(base::Milliseconds(duration_in_ms)), opacity(opacity_param) {}
 
   base::TimeDelta duration;
   float opacity;
@@ -350,10 +347,9 @@
       if (immediately_hover_for_test_) {
         on_hovered_.Run();
       } else {
-        invoke_hover_.Start(
-            FROM_HERE,
-            base::TimeDelta::FromMilliseconds(kDelayBeforeShowingTooltipMs),
-            on_hovered_);
+        invoke_hover_.Start(FROM_HERE,
+                            base::Milliseconds(kDelayBeforeShowingTooltipMs),
+                            on_hovered_);
       }
     }
   }
diff --git a/ash/login/ui/login_password_view_test.cc b/ash/login/ui/login_password_view_test.cc
index 0d2b1cf..b159b341 100644
--- a/ash/login/ui/login_password_view_test.cc
+++ b/ash/login/ui/login_password_view_test.cc
@@ -24,14 +24,11 @@
 
 namespace {
 
-constexpr base::TimeDelta kClearPasswordAfterDelay =
-    base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kClearPasswordAfterDelay = base::Seconds(30);
 
-constexpr base::TimeDelta kHidePasswordAfterDelay =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kHidePasswordAfterDelay = base::Seconds(5);
 
-constexpr base::TimeDelta kLeftIconDisplayTime =
-    base::TimeDelta::FromSeconds(4);
+constexpr base::TimeDelta kLeftIconDisplayTime = base::Seconds(4);
 
 class LoginPasswordViewTest : public LoginTestBase {
  public:
diff --git a/ash/login/ui/login_pin_view.cc b/ash/login/ui/login_pin_view.cc
index 286a19b..9a1025df 100644
--- a/ash/login/ui/login_pin_view.cc
+++ b/ash/login/ui/login_pin_view.cc
@@ -326,11 +326,10 @@
       is_held_ = true;
       DCHECK(!delay_timer_->IsRunning());
       DCHECK(!repeat_timer_->IsRunning());
-      delay_timer_->Start(
-          FROM_HERE,
-          base::TimeDelta::FromMilliseconds(kInitialBackspaceDelayMs),
-          base::BindOnce(&BackspacePinButton::DispatchPress,
-                         base::Unretained(this), nullptr));
+      delay_timer_->Start(FROM_HERE,
+                          base::Milliseconds(kInitialBackspaceDelayMs),
+                          base::BindOnce(&BackspacePinButton::DispatchPress,
+                                         base::Unretained(this), nullptr));
 
       if (event)
         event->SetHandled();
@@ -346,8 +345,7 @@
     // make sure the repeat_timer_ is running so the function will fire again.
     if (!repeat_timer_->IsRunning()) {
       repeat_timer_->Start(
-          FROM_HERE,
-          base::TimeDelta::FromMilliseconds(kRepeatingBackspaceDelayMs),
+          FROM_HERE, base::Milliseconds(kRepeatingBackspaceDelayMs),
           base::BindRepeating(&BackspacePinButton::DispatchPress,
                               base::Unretained(this), nullptr));
     }
diff --git a/ash/login/ui/login_public_account_user_view.cc b/ash/login/ui/login_public_account_user_view.cc
index a9e3ea6..19630f6f 100644
--- a/ash/login/ui/login_public_account_user_view.cc
+++ b/ash/login/ui/login_public_account_user_view.cc
@@ -192,7 +192,7 @@
     ui::ScopedLayerAnimationSettings settings(
         arrow_button_->layer()->GetAnimator());
     settings.SetTransitionDuration(
-        base::TimeDelta::FromMilliseconds(kArrowButtonFadeAnimationDurationMs));
+        base::Milliseconds(kArrowButtonFadeAnimationDurationMs));
     settings.SetTweenType(gfx::Tween::EASE_IN_OUT);
 
     arrow_button_->layer()->SetOpacity(target_opacity);
diff --git a/ash/login/ui/login_user_view.cc b/ash/login/ui/login_user_view.cc
index ea965a4..e8a665a 100644
--- a/ash/login/ui/login_user_view.cc
+++ b/ash/login/ui/login_user_view.cc
@@ -508,8 +508,7 @@
     auto image_transition = std::make_unique<UserSwitchFlipAnimation>(
         user_image_->width(), 0 /*start_degrees*/, 90 /*midpoint_degrees*/,
         180 /*end_degrees*/,
-        base::TimeDelta::FromMilliseconds(
-            login::kChangeUserAnimationDurationMs),
+        base::Milliseconds(login::kChangeUserAnimationDurationMs),
         gfx::Tween::Type::EASE_OUT,
         base::BindOnce(&LoginUserView::UpdateCurrentUserState,
                        base::Unretained(this)));
@@ -522,8 +521,8 @@
     auto make_opacity_sequence = [is_opaque]() {
       auto make_opacity_element = [](float target_opacity) {
         auto element = ui::LayerAnimationElement::CreateOpacityElement(
-            target_opacity, base::TimeDelta::FromMilliseconds(
-                                login::kChangeUserAnimationDurationMs / 2.0f));
+            target_opacity,
+            base::Milliseconds(login::kChangeUserAnimationDurationMs / 2.0f));
         element->set_tween_type(gfx::Tween::Type::EASE_OUT);
         return element;
       };
@@ -677,7 +676,7 @@
     auto settings = std::make_unique<ui::ScopedLayerAnimationSettings>(
         view->layer()->GetAnimator());
     settings->SetTransitionDuration(
-        base::TimeDelta::FromMilliseconds(kUserFadeAnimationDurationMs));
+        base::Milliseconds(kUserFadeAnimationDurationMs));
     settings->SetTweenType(gfx::Tween::Type::EASE_IN_OUT);
     return settings;
   };
diff --git a/ash/login/ui/note_action_launch_button_unittest.cc b/ash/login/ui/note_action_launch_button_unittest.cc
index 75708333..2c4d9351 100644
--- a/ash/login/ui/note_action_launch_button_unittest.cc
+++ b/ash/login/ui/note_action_launch_button_unittest.cc
@@ -66,8 +66,7 @@
 
   void GestureFling(const gfx::Point& start, const gfx::Point& end) {
     ui::test::EventGenerator* generator = GetEventGenerator();
-    generator->GestureScrollSequence(start, end,
-                                     base::TimeDelta::FromMilliseconds(10), 2);
+    generator->GestureScrollSequence(start, end, base::Milliseconds(10), 2);
 
     Shell::Get()->tray_action()->FlushMojoForTesting();
   }
diff --git a/ash/media/media_controller_impl.cc b/ash/media/media_controller_impl.cc
index 24daadd..f77760d 100644
--- a/ash/media/media_controller_impl.cc
+++ b/ash/media/media_controller_impl.cc
@@ -25,7 +25,7 @@
 namespace {
 
 constexpr base::TimeDelta kDefaultSeekTime =
-    base::TimeDelta::FromSeconds(media_session::mojom::kDefaultSeekTimeSeconds);
+    base::Seconds(media_session::mojom::kDefaultSeekTimeSeconds);
 
 bool IsMediaSessionActionEligibleForKeyControl(
     media_session::mojom::MediaSessionAction action) {
diff --git a/ash/metrics/demo_session_metrics_recorder.cc b/ash/metrics/demo_session_metrics_recorder.cc
index 1111ac3..0ace2f2 100644
--- a/ash/metrics/demo_session_metrics_recorder.cc
+++ b/ash/metrics/demo_session_metrics_recorder.cc
@@ -32,7 +32,7 @@
 using DemoModeApp = DemoSessionMetricsRecorder::DemoModeApp;
 
 // How often to sample.
-constexpr auto kSamplePeriod = base::TimeDelta::FromSeconds(1);
+constexpr auto kSamplePeriod = base::Seconds(1);
 
 // Redefining chromeos::preinstalled_web_apps::kHelpAppId as ash can't depend on
 // chrome.
@@ -42,8 +42,7 @@
 // This timeout is low because demo sessions tend to be very short. If we
 // recorded samples for a full minute while the device is in between uses, we
 // would bias our measurements toward whatever app was used last.
-constexpr int kMaxPeriodsWithoutActivity =
-    base::TimeDelta::FromSeconds(15) / kSamplePeriod;
+constexpr int kMaxPeriodsWithoutActivity = base::Seconds(15) / kSamplePeriod;
 
 // Maps a Chrome app ID to a DemoModeApp value for metrics.
 DemoModeApp GetAppFromAppId(const std::string& app_id) {
diff --git a/ash/metrics/demo_session_metrics_recorder_unittest.cc b/ash/metrics/demo_session_metrics_recorder_unittest.cc
index 493b07a..cfea9ec 100644
--- a/ash/metrics/demo_session_metrics_recorder_unittest.cc
+++ b/ash/metrics/demo_session_metrics_recorder_unittest.cc
@@ -680,14 +680,14 @@
   // Simulate user activity for 10 seconds.
   SendUserActivity();
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment()->FastForwardBy(base::Seconds(5));
   SendUserActivity();
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment()->FastForwardBy(base::Seconds(5));
   SendUserActivity();
 
   // Simulate a session "timing out" after 60 seconds.
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(60));
+  task_environment()->FastForwardBy(base::Seconds(60));
   DeleteMetricsRecorder();
 
   // The recorded dwell time should be 10 seconds.
diff --git a/ash/metrics/login_unlock_throughput_recorder.cc b/ash/metrics/login_unlock_throughput_recorder.cc
index 3ce3cd62..4f6ff91c 100644
--- a/ash/metrics/login_unlock_throughput_recorder.cc
+++ b/ash/metrics/login_unlock_throughput_recorder.cc
@@ -47,9 +47,8 @@
   // TODO(crbug.com/1143898): Deprecate this metrics once the login/unlock
   // performance issue is resolved.
   base::UmaHistogramCustomTimes(duration_name + suffix,
-                                base::TimeDelta::FromMilliseconds(duration_ms),
-                                base::TimeDelta::FromMilliseconds(100),
-                                base::TimeDelta::FromSeconds(5), 50);
+                                base::Milliseconds(duration_ms),
+                                base::Milliseconds(100), base::Seconds(5), 50);
 }
 
 void ReportLogin(base::TimeTicks start,
diff --git a/ash/metrics/presentation_time_recorder_unittest.cc b/ash/metrics/presentation_time_recorder_unittest.cc
index 76b3c36..d407203 100644
--- a/ash/metrics/presentation_time_recorder_unittest.cc
+++ b/ash/metrics/presentation_time_recorder_unittest.cc
@@ -31,8 +31,7 @@
   // Flush pending draw callbask by waiting for presentation until it times out.
   // We assume if the new frame wasn't generated for 100ms (6 frames worth
   // time) there is no pending draw request.
-  while (ui::WaitForNextFrameToBePresented(
-      compositor, base::TimeDelta::FromMilliseconds(100)))
+  while (ui::WaitForNextFrameToBePresented(compositor, base::Milliseconds(100)))
     ;
 
   compositor->ScheduleFullRedraw();
@@ -76,7 +75,7 @@
   auto test_recorder = CreatePresentationTimeHistogramRecorder(
       compositor, kName, kMaxLatencyName);
   PresentationTimeRecorder::TestApi test_api(test_recorder.get());
-  base::TimeDelta interval_not_used = base::TimeDelta::FromMilliseconds(0);
+  base::TimeDelta interval_not_used = base::Milliseconds(0);
   gfx::PresentationFeedback failure(base::TimeTicks::FromUptimeMillis(2000),
                                     interval_not_used,
                                     gfx::PresentationFeedback::kFailure);
@@ -115,7 +114,7 @@
   PresentationTimeRecorder::TestApi test_api(test_recorder.get());
   test_recorder->RequestNext();
   test_api.OnCompositingDidCommit(compositor);
-  base::TimeDelta interval_not_used = base::TimeDelta::FromMilliseconds(0);
+  base::TimeDelta interval_not_used = base::Milliseconds(0);
   base::TimeTicks start = base::TimeTicks::FromUptimeMillis(1000);
   gfx::PresentationFeedback success(base::TimeTicks::FromUptimeMillis(1100),
                                     interval_not_used, /*flags=*/0);
diff --git a/ash/metrics/stylus_metrics_recorder_unittest.cc b/ash/metrics/stylus_metrics_recorder_unittest.cc
index bfa7555..c507d6ae 100644
--- a/ash/metrics/stylus_metrics_recorder_unittest.cc
+++ b/ash/metrics/stylus_metrics_recorder_unittest.cc
@@ -140,7 +140,7 @@
 }
 
 TEST_F(StylusMetricsRecorderTest, BaselineStayInGarage) {
-  const base::TimeDelta kTimeSpentCharging = base::TimeDelta::FromMinutes(5);
+  const base::TimeDelta kTimeSpentCharging = base::Minutes(5);
 
   SetChargerState(StylusChargingStyle::kGarage,
                   BatteryInfo::ChargeStatus::kCharging);
@@ -161,7 +161,7 @@
 }
 
 TEST_F(StylusMetricsRecorderTest, BaselineStayInDock) {
-  const base::TimeDelta kTimeSpentCharging = base::TimeDelta::FromMinutes(5);
+  const base::TimeDelta kTimeSpentCharging = base::Minutes(5);
 
   SetChargerState(StylusChargingStyle::kDock,
                   BatteryInfo::ChargeStatus::kCharging);
@@ -182,8 +182,8 @@
 }
 
 TEST_F(StylusMetricsRecorderTest, RemovedFromGarage) {
-  const base::TimeDelta kTimeSpentInUse = base::TimeDelta::FromMinutes(5);
-  const base::TimeDelta kTimeSpentCharging = base::TimeDelta::FromMinutes(1);
+  const base::TimeDelta kTimeSpentInUse = base::Minutes(5);
+  const base::TimeDelta kTimeSpentCharging = base::Minutes(1);
 
   SetChargerState(StylusChargingStyle::kGarage,
                   BatteryInfo::ChargeStatus::kDischarging);
@@ -233,8 +233,8 @@
 }
 
 TEST_F(StylusMetricsRecorderTest, RemovedFromDock) {
-  const base::TimeDelta kTimeSpentInUse = base::TimeDelta::FromMinutes(5);
-  const base::TimeDelta kTimeSpentCharging = base::TimeDelta::FromMinutes(1);
+  const base::TimeDelta kTimeSpentInUse = base::Minutes(5);
+  const base::TimeDelta kTimeSpentCharging = base::Minutes(1);
 
   SetChargerState(StylusChargingStyle::kDock,
                   BatteryInfo::ChargeStatus::kDischarging);
@@ -284,7 +284,7 @@
 }
 
 TEST_F(StylusMetricsRecorderTest, ShutdownWhileStylusRemoved) {
-  const base::TimeDelta kTimeSpentInUse = base::TimeDelta::FromMinutes(5);
+  const base::TimeDelta kTimeSpentInUse = base::Minutes(5);
 
   SetChargerState(StylusChargingStyle::kGarage,
                   BatteryInfo::ChargeStatus::kDischarging);
@@ -308,7 +308,7 @@
 }
 
 TEST_F(StylusMetricsRecorderTest, StylusUsageOverMultipleDays) {
-  const base::TimeDelta kTimeSpentInUse = base::TimeDelta::FromHours(48);
+  const base::TimeDelta kTimeSpentInUse = base::Hours(48);
 
   SetChargerState(StylusChargingStyle::kGarage,
                   BatteryInfo::ChargeStatus::kDischarging);
@@ -327,12 +327,10 @@
 }
 
 TEST_F(StylusMetricsRecorderTest, StylusChargeSequencing) {
-  const base::TimeDelta kTimeSpentTrickleCharging =
-      base::TimeDelta::FromMinutes(1);
-  const base::TimeDelta kTimeSpentCharging = base::TimeDelta::FromMinutes(60);
-  const base::TimeDelta kTimeSpentFull = base::TimeDelta::FromMinutes(5);
-  const base::TimeDelta kTimeSpentDischarging =
-      base::TimeDelta::FromMinutes(60);
+  const base::TimeDelta kTimeSpentTrickleCharging = base::Minutes(1);
+  const base::TimeDelta kTimeSpentCharging = base::Minutes(60);
+  const base::TimeDelta kTimeSpentFull = base::Minutes(5);
+  const base::TimeDelta kTimeSpentDischarging = base::Minutes(60);
   const int kCycles = 2;
 
   // Initial state, stylus is garage, charging, not in use
diff --git a/ash/metrics/task_switch_time_tracker.cc b/ash/metrics/task_switch_time_tracker.cc
index dd5744c..da56ad7 100644
--- a/ash/metrics/task_switch_time_tracker.cc
+++ b/ash/metrics/task_switch_time_tracker.cc
@@ -67,10 +67,9 @@
     // its bucket construction then you must rename all of the histograms using
     // the TaskSwitchTimeTracker mechanism.
     histogram_ = base::Histogram::FactoryGet(
-        histogram_name_,
-        base::TimeDelta::FromSeconds(kMinBucketSizeInSeconds).InSeconds(),
-        base::TimeDelta::FromSeconds(kMaxBucketSizeInSeconds).InSeconds(),
-        kBucketCount, base::HistogramBase::kUmaTargetedHistogramFlag);
+        histogram_name_, base::Seconds(kMinBucketSizeInSeconds).InSeconds(),
+        base::Seconds(kMaxBucketSizeInSeconds).InSeconds(), kBucketCount,
+        base::HistogramBase::kUmaTargetedHistogramFlag);
   }
 
 #if DCHECK_IS_ON()
diff --git a/ash/metrics/task_switch_time_tracker_unittest.cc b/ash/metrics/task_switch_time_tracker_unittest.cc
index 35a3f81..1624892 100644
--- a/ash/metrics/task_switch_time_tracker_unittest.cc
+++ b/ash/metrics/task_switch_time_tracker_unittest.cc
@@ -61,7 +61,7 @@
       std::make_unique<TaskSwitchTimeTrackerTestAPI>(kHistogramName);
   // The TaskSwitchTimeTracker interprets a value of base::TimeTicks() as if the
   // |last_action_time_| has not been set.
-  time_tracker_test_api_->Advance(base::TimeDelta::FromMilliseconds(1));
+  time_tracker_test_api_->Advance(base::Milliseconds(1));
 }
 
 void TaskSwitchTimeTrackerTest::TearDown() {
@@ -94,12 +94,12 @@
 TEST_F(TaskSwitchTimeTrackerTest, RecordAfterTwoTaskSwitches) {
   OnTaskSwitch();
 
-  time_tracker_test_api_->Advance(base::TimeDelta::FromMilliseconds(2));
+  time_tracker_test_api_->Advance(base::Milliseconds(2));
   OnTaskSwitch();
   histogram_tester_->ExpectTotalCount(kHistogramName, 1);
   histogram_tester_->ExpectBucketCount(kHistogramName, 0, 1);
 
-  time_tracker_test_api_->Advance(base::TimeDelta::FromSeconds(1));
+  time_tracker_test_api_->Advance(base::Seconds(1));
   OnTaskSwitch();
   histogram_tester_->ExpectTotalCount(kHistogramName, 2);
   histogram_tester_->ExpectBucketCount(kHistogramName, 1, 1);
diff --git a/ash/metrics/user_metrics_recorder.cc b/ash/metrics/user_metrics_recorder.cc
index e4586d0..c2a20fc 100644
--- a/ash/metrics/user_metrics_recorder.cc
+++ b/ash/metrics/user_metrics_recorder.cc
@@ -514,9 +514,8 @@
 }
 
 void UserMetricsRecorder::StartTimer() {
-  timer_.Start(FROM_HERE,
-               base::TimeDelta::FromSeconds(kAshPeriodicMetricsTimeInSeconds),
-               this, &UserMetricsRecorder::RecordPeriodicMetrics);
+  timer_.Start(FROM_HERE, base::Seconds(kAshPeriodicMetricsTimeInSeconds), this,
+               &UserMetricsRecorder::RecordPeriodicMetrics);
 }
 
 }  // namespace ash
diff --git a/ash/multi_user/multi_user_window_manager_impl.cc b/ash/multi_user/multi_user_window_manager_impl.cc
index 4750290..644dc41 100644
--- a/ash/multi_user/multi_user_window_manager_impl.cc
+++ b/ash/multi_user/multi_user_window_manager_impl.cc
@@ -30,16 +30,13 @@
 namespace {
 
 // The animation time for a single window that is fading in / out.
-constexpr base::TimeDelta kAnimationTime =
-    base::TimeDelta::FromMilliseconds(100);
+constexpr base::TimeDelta kAnimationTime = base::Milliseconds(100);
 
 // The animation time for the fade in and / or out when switching users.
-constexpr base::TimeDelta kUserFadeTime =
-    base::TimeDelta::FromMilliseconds(110);
+constexpr base::TimeDelta kUserFadeTime = base::Milliseconds(110);
 
 // The animation time in ms for a window which get teleported to another screen.
-constexpr base::TimeDelta kTeleportAnimationTime =
-    base::TimeDelta::FromMilliseconds(300);
+constexpr base::TimeDelta kTeleportAnimationTime = base::Milliseconds(300);
 
 MultiUserWindowManagerImpl* g_instance = nullptr;
 
@@ -566,7 +563,7 @@
   return animation_speed_ == ANIMATION_SPEED_NORMAL
              ? default_time
              : (animation_speed_ == ANIMATION_SPEED_FAST
-                    ? base::TimeDelta::FromMilliseconds(10)
+                    ? base::Milliseconds(10)
                     : base::TimeDelta());
 }
 
diff --git a/ash/multi_user/user_switch_animator.cc b/ash/multi_user/user_switch_animator.cc
index 2d629d3..a8bba5a0 100644
--- a/ash/multi_user/user_switch_animator.cc
+++ b/ash/multi_user/user_switch_animator.cc
@@ -29,8 +29,7 @@
 
 // The minimal possible animation time for animations which should happen
 // "instantly".
-constexpr base::TimeDelta kMinimalAnimationTime =
-    base::TimeDelta::FromMilliseconds(1);
+constexpr base::TimeDelta kMinimalAnimationTime = base::Milliseconds(1);
 
 // logic while the user gets switched.
 class UserChangeActionDisabler {
@@ -209,9 +208,9 @@
   UserChangeActionDisabler disabler;
 
   // Animation duration.
-  base::TimeDelta duration = base::TimeDelta::FromMilliseconds(
-      std::max(kMinimalAnimationTime.InMilliseconds(),
-               2 * animation_speed_.InMilliseconds()));
+  base::TimeDelta duration =
+      base::Milliseconds(std::max(kMinimalAnimationTime.InMilliseconds(),
+                                  2 * animation_speed_.InMilliseconds()));
 
   switch (animation_step) {
     case ANIMATION_STEP_HIDE_OLD_USER: {
diff --git a/ash/policy/policy_recommendation_restorer.cc b/ash/policy/policy_recommendation_restorer.cc
index 561d690..20a1c7f 100644
--- a/ash/policy/policy_recommendation_restorer.cc
+++ b/ash/policy/policy_recommendation_restorer.cc
@@ -19,8 +19,7 @@
 namespace {
 
 // The amount of idle time after which recommended values are restored.
-constexpr base::TimeDelta kRestoreDelayInMinutes =
-    base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kRestoreDelayInMinutes = base::Minutes(1);
 
 }  // namespace
 
diff --git a/ash/projector/projector_controller_unittest.cc b/ash/projector/projector_controller_unittest.cc
index 93a42f3..272ae8f 100644
--- a/ash/projector/projector_controller_unittest.cc
+++ b/ash/projector/projector_controller_unittest.cc
@@ -35,10 +35,8 @@
   result.transcription = "transcript text 1";
   result.is_final = true;
   result.timing_information = media::TimingInformation();
-  result.timing_information->audio_start_time =
-      base::TimeDelta::FromMilliseconds(0);
-  result.timing_information->audio_end_time =
-      base::TimeDelta::FromMilliseconds(3000);
+  result.timing_information->audio_start_time = base::Milliseconds(0);
+  result.timing_information->audio_end_time = base::Milliseconds(3000);
 
   std::vector<media::HypothesisParts> hypothesis_parts;
   std::string hypothesis_text[3] = {"transcript", "text", "1"};
@@ -46,7 +44,7 @@
   for (int i = 0; i < 3; i++) {
     hypothesis_parts.emplace_back(
         std::vector<std::string>({hypothesis_text[i]}),
-        base::TimeDelta::FromMilliseconds(hypothesis_time[i]));
+        base::Milliseconds(hypothesis_time[i]));
   }
 
   result.timing_information->hypothesis_parts = std::move(hypothesis_parts);
diff --git a/ash/projector/projector_metadata_model_unittest.cc b/ash/projector/projector_metadata_model_unittest.cc
index 92f83e8b..07f0561 100644
--- a/ash/projector/projector_metadata_model_unittest.cc
+++ b/ash/projector/projector_metadata_model_unittest.cc
@@ -105,8 +105,8 @@
 
 TEST_F(ProjectorKeyIdeaTest, ToJson) {
   ProjectorKeyIdea key_idea(
-      /*start_time=*/base::TimeDelta::FromMilliseconds(1000),
-      /*end_time=*/base::TimeDelta::FromMilliseconds(3000));
+      /*start_time=*/base::Milliseconds(1000),
+      /*end_time=*/base::Milliseconds(3000));
 
   std::string key_idea_str;
   base::JSONWriter::Write(key_idea.ToJson(), &key_idea_str);
@@ -117,8 +117,8 @@
 
 TEST_F(ProjectorKeyIdeaTest, ToJsonWithText) {
   ProjectorKeyIdea key_idea(
-      /*start_time=*/base::TimeDelta::FromMilliseconds(1000),
-      /*end_time=*/base::TimeDelta::FromMilliseconds(3000), "Key idea text");
+      /*start_time=*/base::Milliseconds(1000),
+      /*end_time=*/base::Milliseconds(3000), "Key idea text");
 
   std::string key_idea_str;
   base::JSONWriter::Write(key_idea.ToJson(), &key_idea_str);
@@ -138,16 +138,16 @@
 TEST_F(ProjectorTranscriptTest, ToJson) {
   std::vector<media::HypothesisParts> hypothesis_parts;
   hypothesis_parts.emplace_back(std::vector<std::string>({"transcript"}),
-                                base::TimeDelta::FromMilliseconds(1000));
+                                base::Milliseconds(1000));
   hypothesis_parts.emplace_back(std::vector<std::string>({"text"}),
-                                base::TimeDelta::FromMilliseconds(2000));
+                                base::Milliseconds(2000));
 
   const auto expected_transcript =
       BuildTranscriptJson(1000, 3000, "transcript text", hypothesis_parts);
 
   ProjectorTranscript transcript(
-      /*start_time=*/base::TimeDelta::FromMilliseconds(1000),
-      /*end_time=*/base::TimeDelta::FromMilliseconds(3000), "transcript text",
+      /*start_time=*/base::Milliseconds(1000),
+      /*end_time=*/base::Milliseconds(3000), "transcript text",
       std::move(hypothesis_parts));
 
   std::string transcript_str;
@@ -228,28 +228,28 @@
 
   std::vector<media::HypothesisParts> first_transcript;
   first_transcript.emplace_back(std::vector<std::string>({"transcript"}),
-                                base::TimeDelta::FromMilliseconds(1000));
+                                base::Milliseconds(1000));
   first_transcript.emplace_back(std::vector<std::string>({"text"}),
-                                base::TimeDelta::FromMilliseconds(2000));
+                                base::Milliseconds(2000));
 
   metadata.AddTranscript(std::make_unique<ProjectorTranscript>(
-      /*start_time=*/base::TimeDelta::FromMilliseconds(1000),
-      /*end_time=*/base::TimeDelta::FromMilliseconds(3000), "transcript text",
+      /*start_time=*/base::Milliseconds(1000),
+      /*end_time=*/base::Milliseconds(3000), "transcript text",
       std::move(first_transcript)));
 
   metadata.MarkKeyIdea();
 
   std::vector<media::HypothesisParts> second_transcript;
   second_transcript.emplace_back(std::vector<std::string>({"transcript"}),
-                                 base::TimeDelta::FromMilliseconds(3200));
+                                 base::Milliseconds(3200));
   second_transcript.emplace_back(std::vector<std::string>({"text"}),
-                                 base::TimeDelta::FromMilliseconds(4200));
+                                 base::Milliseconds(4200));
   second_transcript.emplace_back(std::vector<std::string>({"2"}),
-                                 base::TimeDelta::FromMilliseconds(4500));
+                                 base::Milliseconds(4500));
 
   metadata.AddTranscript(std::make_unique<ProjectorTranscript>(
-      /*start_time=*/base::TimeDelta::FromMilliseconds(3000),
-      /*end_time=*/base::TimeDelta::FromMilliseconds(5000), "transcript text 2",
+      /*start_time=*/base::Milliseconds(3000),
+      /*end_time=*/base::Milliseconds(5000), "transcript text 2",
       std::move(second_transcript)));
 
   AssertSerializedString(kExpectedMetaData, metadata.Serialize());
diff --git a/ash/projector/projector_ui_controller.cc b/ash/projector/projector_ui_controller.cc
index 93545af..9df1cb7e 100644
--- a/ash/projector/projector_ui_controller.cc
+++ b/ash/projector/projector_ui_controller.cc
@@ -29,8 +29,7 @@
 namespace {
 
 constexpr char kMarkedKeyIdeaToastId[] = "projector_marked_key_idea";
-constexpr base::TimeDelta kToastDuration =
-    base::TimeDelta::FromMilliseconds(2500);
+constexpr base::TimeDelta kToastDuration = base::Milliseconds(2500);
 
 void ShowToast(const std::string& id,
                int message_id,
diff --git a/ash/public/cpp/ambient/ambient_metrics.cc b/ash/public/cpp/ambient/ambient_metrics.cc
index e7e1f9a..8864d378 100644
--- a/ash/public/cpp/ambient/ambient_metrics.cc
+++ b/ash/public/cpp/ambient/ambient_metrics.cc
@@ -64,8 +64,8 @@
   base::UmaHistogramCustomTimes(
       /*name=*/GetHistogramName("Ash.AmbientMode.EngagementTime", tablet_mode),
       /*sample=*/time_delta,
-      /*min=*/base::TimeDelta::FromHours(0),
-      /*max=*/base::TimeDelta::FromHours(24),
+      /*min=*/base::Hours(0),
+      /*max=*/base::Hours(24),
       /*buckets=*/kAmbientModeElapsedTimeHistogramBuckets);
 }
 
diff --git a/ash/public/cpp/ambient/ambient_ui_model.h b/ash/public/cpp/ambient/ambient_ui_model.h
index 91b2e5c..7ca9a3a 100644
--- a/ash/public/cpp/ambient/ambient_ui_model.h
+++ b/ash/public/cpp/ambient/ambient_ui_model.h
@@ -29,16 +29,13 @@
 };
 
 // The default time before starting Ambient mode on lock screen.
-constexpr base::TimeDelta kLockScreenInactivityTimeout =
-    base::TimeDelta::FromSeconds(7);
+constexpr base::TimeDelta kLockScreenInactivityTimeout = base::Seconds(7);
 
 // The default time to lock screen in the background after Ambient mode begins.
-constexpr base::TimeDelta kLockScreenBackgroundTimeout =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kLockScreenBackgroundTimeout = base::Seconds(5);
 
 // The default interval to refresh photos.
-constexpr base::TimeDelta kPhotoRefreshInterval =
-    base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kPhotoRefreshInterval = base::Seconds(60);
 
 // A checked observer which receives notification of changes to the Ambient Mode
 // UI model.
diff --git a/ash/public/cpp/holding_space/holding_space_constants.h b/ash/public/cpp/holding_space/holding_space_constants.h
index 8df7eba..b0926bf 100644
--- a/ash/public/cpp/holding_space/holding_space_constants.h
+++ b/ash/public/cpp/holding_space/holding_space_constants.h
@@ -72,7 +72,7 @@
 
 // The maximum allowed age for files restored into the holding space model.
 // Note that this is not enforced for pinned items.
-constexpr base::TimeDelta kMaxFileAge = base::TimeDelta::FromDays(1);
+constexpr base::TimeDelta kMaxFileAge = base::Days(1);
 
 // The maximum allowed number of downloads to display in holding space UI in the
 // default case or in the case in-progress downloads integration is enabled.
diff --git a/ash/public/cpp/holding_space/holding_space_image.cc b/ash/public/cpp/holding_space/holding_space_image.cc
index 64aded64..5c1e37f 100644
--- a/ash/public/cpp/holding_space/holding_space_image.cc
+++ b/ash/public/cpp/holding_space/holding_space_image.cc
@@ -226,7 +226,7 @@
   invalidate_timer_.Start(FROM_HERE,
                           g_use_zero_invalidation_delay_for_testing
                               ? base::TimeDelta()
-                              : base::TimeDelta::FromMilliseconds(250),
+                              : base::Milliseconds(250),
                           base::BindOnce(&HoldingSpaceImage::OnInvalidateTimer,
                                          base::Unretained(this)));
 }
diff --git a/ash/public/cpp/holding_space/holding_space_metrics.cc b/ash/public/cpp/holding_space/holding_space_metrics.cc
index fb910d0..d07f6f1 100644
--- a/ash/public/cpp/holding_space/holding_space_metrics.cc
+++ b/ash/public/cpp/holding_space/holding_space_metrics.cc
@@ -178,8 +178,8 @@
   // NOTE: 24 days appears to be the max supported number of days.
   base::UmaHistogramCustomTimes(
       "HoldingSpace.TimeFromFirstAvailabilityToFirstAdd", time_delta,
-      /*min=*/base::TimeDelta::FromMinutes(1),
-      /*max=*/base::TimeDelta::FromDays(24),
+      /*min=*/base::Minutes(1),
+      /*max=*/base::Days(24),
       /*buckets=*/50);
 }
 
@@ -187,7 +187,7 @@
   // NOTE: 24 days appears to be the max supported number of days.
   base::UmaHistogramCustomTimes(
       "HoldingSpace.TimeFromFirstAvailabilityToFirstEntry", time_delta,
-      /*min=*/base::TimeDelta(), /*max=*/base::TimeDelta::FromDays(24),
+      /*min=*/base::TimeDelta(), /*max=*/base::Days(24),
       /*buckets=*/50);
 }
 
@@ -196,7 +196,7 @@
   base::UmaHistogramCustomTimes("HoldingSpace.TimeFromFirstEntryToFirstPin",
                                 time_delta,
                                 /*min=*/base::TimeDelta(),
-                                /*max=*/base::TimeDelta::FromDays(24),
+                                /*max=*/base::Days(24),
                                 /*buckets=*/50);
 }
 
diff --git a/ash/public/cpp/pagination/pagination_model_unittest.cc b/ash/public/cpp/pagination/pagination_model_unittest.cc
index f267437..4c56436 100644
--- a/ash/public/cpp/pagination/pagination_model_unittest.cc
+++ b/ash/public/cpp/pagination/pagination_model_unittest.cc
@@ -139,8 +139,8 @@
     widget_.reset(CreateTopLevelPlatformWidget());
     pagination_ = std::make_unique<PaginationModel>(widget_->GetContentsView());
     pagination_->SetTotalPages(5);
-    pagination_->SetTransitionDurations(base::TimeDelta::FromMilliseconds(1),
-                                        base::TimeDelta::FromMilliseconds(1));
+    pagination_->SetTransitionDurations(base::Milliseconds(1),
+                                        base::Milliseconds(1));
     observer_.set_model(pagination_.get());
     pagination_->AddObserver(&observer_);
   }
@@ -177,8 +177,7 @@
     while (pagination()->IsRevertingCurrentTransition()) {
       base::RunLoop run_loop;
       base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-          FROM_HERE, run_loop.QuitClosure(),
-          base::TimeDelta::FromMilliseconds(100));
+          FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(100));
       run_loop.Run();
     }
   }
diff --git a/ash/public/cpp/power_utils.cc b/ash/public/cpp/power_utils.cc
index 931230c..eb71a86 100644
--- a/ash/public/cpp/power_utils.cc
+++ b/ash/public/cpp/power_utils.cc
@@ -17,8 +17,7 @@
   // that should be displayed in the UI. If the current is close to zero,
   // battery time estimates can get very large; avoid displaying these large
   // numbers.
-  return time >= base::TimeDelta::FromMinutes(1) &&
-         time <= base::TimeDelta::FromDays(1);
+  return time >= base::Minutes(1) && time <= base::Days(1);
 }
 
 int GetRoundedBatteryPercent(double battery_percent) {
@@ -32,7 +31,7 @@
                                   int* minutes) {
   DCHECK(hours);
   DCHECK(minutes);
-  *minutes = base::ClampRound(time / base::TimeDelta::FromMinutes(1));
+  *minutes = base::ClampRound(time / base::Minutes(1));
   *hours = *minutes / 60;
   *minutes %= 60;
 }
diff --git a/ash/public/cpp/power_utils_unittest.cc b/ash/public/cpp/power_utils_unittest.cc
index e9f4cf86..be65d89 100644
--- a/ash/public/cpp/power_utils_unittest.cc
+++ b/ash/public/cpp/power_utils_unittest.cc
@@ -15,68 +15,62 @@
 
 TEST_F(PowerUtilsTest, SplitTimeIntoHoursAndMinutes) {
   int hours = 0, minutes = 0;
-  SplitTimeIntoHoursAndMinutes(base::TimeDelta::FromSeconds(0), &hours,
-                               &minutes);
+  SplitTimeIntoHoursAndMinutes(base::Seconds(0), &hours, &minutes);
   EXPECT_EQ(0, hours);
   EXPECT_EQ(0, minutes);
 
-  SplitTimeIntoHoursAndMinutes(base::TimeDelta::FromSeconds(60), &hours,
-                               &minutes);
+  SplitTimeIntoHoursAndMinutes(base::Seconds(60), &hours, &minutes);
   EXPECT_EQ(0, hours);
   EXPECT_EQ(1, minutes);
 
-  SplitTimeIntoHoursAndMinutes(base::TimeDelta::FromSeconds(3600), &hours,
-                               &minutes);
+  SplitTimeIntoHoursAndMinutes(base::Seconds(3600), &hours, &minutes);
   EXPECT_EQ(1, hours);
   EXPECT_EQ(0, minutes);
 
-  SplitTimeIntoHoursAndMinutes(base::TimeDelta::FromSeconds(3600 + 60), &hours,
-                               &minutes);
+  SplitTimeIntoHoursAndMinutes(base::Seconds(3600 + 60), &hours, &minutes);
   EXPECT_EQ(1, hours);
   EXPECT_EQ(1, minutes);
 
-  SplitTimeIntoHoursAndMinutes(base::TimeDelta::FromSeconds(7 * 3600 + 23 * 60),
-                               &hours, &minutes);
+  SplitTimeIntoHoursAndMinutes(base::Seconds(7 * 3600 + 23 * 60), &hours,
+                               &minutes);
   EXPECT_EQ(7, hours);
   EXPECT_EQ(23, minutes);
 
   // Check that minutes are rounded.
-  SplitTimeIntoHoursAndMinutes(
-      base::TimeDelta::FromSeconds(2 * 3600 + 3 * 60 + 30), &hours, &minutes);
+  SplitTimeIntoHoursAndMinutes(base::Seconds(2 * 3600 + 3 * 60 + 30), &hours,
+                               &minutes);
   EXPECT_EQ(2, hours);
   EXPECT_EQ(4, minutes);
 
-  SplitTimeIntoHoursAndMinutes(
-      base::TimeDelta::FromSeconds(2 * 3600 + 3 * 60 + 29), &hours, &minutes);
+  SplitTimeIntoHoursAndMinutes(base::Seconds(2 * 3600 + 3 * 60 + 29), &hours,
+                               &minutes);
   EXPECT_EQ(2, hours);
   EXPECT_EQ(3, minutes);
 
   // Check that times close to hour boundaries aren't incorrectly rounded such
   // that they display 60 minutes: http://crbug.com/368261
-  SplitTimeIntoHoursAndMinutes(base::TimeDelta::FromSecondsD(3599.9), &hours,
-                               &minutes);
+  SplitTimeIntoHoursAndMinutes(base::Seconds(3599.9), &hours, &minutes);
   EXPECT_EQ(1, hours);
   EXPECT_EQ(0, minutes);
 
-  SplitTimeIntoHoursAndMinutes(base::TimeDelta::FromSecondsD(3600.1), &hours,
-                               &minutes);
+  SplitTimeIntoHoursAndMinutes(base::Seconds(3600.1), &hours, &minutes);
   EXPECT_EQ(1, hours);
   EXPECT_EQ(0, minutes);
 }
 
 TEST_F(PowerUtilsTest, ShouldDisplayBatteryTime) {
-  EXPECT_FALSE(ShouldDisplayBatteryTime(base::TimeDelta::FromSeconds(-1)));
-  EXPECT_FALSE(ShouldDisplayBatteryTime(base::TimeDelta::FromSeconds(0)));
-  EXPECT_FALSE(ShouldDisplayBatteryTime(base::TimeDelta::FromSeconds(59)));
-  EXPECT_TRUE(ShouldDisplayBatteryTime(base::TimeDelta::FromSeconds(60)));
-  EXPECT_TRUE(ShouldDisplayBatteryTime(base::TimeDelta::FromSeconds(600)));
-  EXPECT_TRUE(ShouldDisplayBatteryTime(base::TimeDelta::FromSeconds(3600)));
+  EXPECT_FALSE(ShouldDisplayBatteryTime(base::Seconds(-1)));
+  EXPECT_FALSE(ShouldDisplayBatteryTime(base::Seconds(0)));
+  EXPECT_FALSE(ShouldDisplayBatteryTime(base::Seconds(59)));
+  EXPECT_TRUE(ShouldDisplayBatteryTime(base::Seconds(60)));
+  EXPECT_TRUE(ShouldDisplayBatteryTime(base::Seconds(600)));
+  EXPECT_TRUE(ShouldDisplayBatteryTime(base::Seconds(3600)));
 
   // Matches the constant in power_utils.cc.
-  base::TimeDelta max_displayed_battery_time = base::TimeDelta::FromDays(1);
+  base::TimeDelta max_displayed_battery_time = base::Days(1);
   EXPECT_TRUE(ShouldDisplayBatteryTime(max_displayed_battery_time));
-  EXPECT_FALSE(ShouldDisplayBatteryTime(max_displayed_battery_time +
-                                        base::TimeDelta::FromSeconds(1)));
+  EXPECT_FALSE(
+      ShouldDisplayBatteryTime(max_displayed_battery_time + base::Seconds(1)));
 }
 
 }  // namespace power_utils
diff --git a/ash/public/cpp/presentation_time_recorder.cc b/ash/public/cpp/presentation_time_recorder.cc
index 1948162..95f45e7 100644
--- a/ash/public/cpp/presentation_time_recorder.cc
+++ b/ash/public/cpp/presentation_time_recorder.cc
@@ -226,8 +226,7 @@
 
 base::HistogramBase* CreateTimesHistogram(const char* name) {
   return base::Histogram::FactoryTimeGet(
-      name, base::TimeDelta::FromMilliseconds(1),
-      base::TimeDelta::FromMilliseconds(200), 50,
+      name, base::Milliseconds(1), base::Milliseconds(200), 50,
       base::HistogramBase::kUmaTargetedHistogramFlag);
 }
 
@@ -258,7 +257,7 @@
     if (success_count() > 0 && !max_latency_histogram_name_.empty()) {
       CreateTimesHistogram(max_latency_histogram_name_.c_str())
           ->AddTimeMillisecondsGranularity(
-              base::TimeDelta::FromMilliseconds(max_latency_ms()));
+              base::Milliseconds(max_latency_ms()));
     }
   }
 
diff --git a/ash/quick_pair/pairing/fast_pair/fast_pair_gatt_service_client_impl.cc b/ash/quick_pair/pairing/fast_pair/fast_pair_gatt_service_client_impl.cc
index c3b21014..1b289b8c 100644
--- a/ash/quick_pair/pairing/fast_pair/fast_pair_gatt_service_client_impl.cc
+++ b/ash/quick_pair/pairing/fast_pair/fast_pair_gatt_service_client_impl.cc
@@ -36,8 +36,7 @@
 constexpr uint8_t kSeekerPasskey = 0x02;
 constexpr uint8_t kAccountKeyStartByte = 0x04;
 
-constexpr base::TimeDelta kGattOperationTimeout =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kGattOperationTimeout = base::Seconds(5);
 
 constexpr const char* ToString(
     device::BluetoothGattService::GattErrorCode error_code) {
diff --git a/ash/quick_pair/pairing/fast_pair/fast_pair_gatt_service_client_unittest.cc b/ash/quick_pair/pairing/fast_pair/fast_pair_gatt_service_client_unittest.cc
index e03bcc4e..f856de991 100644
--- a/ash/quick_pair/pairing/fast_pair/fast_pair_gatt_service_client_unittest.cc
+++ b/ash/quick_pair/pairing/fast_pair/fast_pair_gatt_service_client_unittest.cc
@@ -36,8 +36,7 @@
 using ErrorCallback =
     base::OnceCallback<void(device::BluetoothGattService::GattErrorCode)>;
 
-constexpr base::TimeDelta kConnectingTestTimeout =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kConnectingTestTimeout = base::Seconds(5);
 
 // Below constants are used to construct MockBluetoothDevice for testing.
 constexpr char kTestBleDeviceAddress[] = "11:12:13:14:15:16";
diff --git a/ash/quick_pair/repository/fast_pair_repository_impl.cc b/ash/quick_pair/repository/fast_pair_repository_impl.cc
index ca09f770..34ac2d3 100644
--- a/ash/quick_pair/repository/fast_pair_repository_impl.cc
+++ b/ash/quick_pair/repository/fast_pair_repository_impl.cc
@@ -125,8 +125,8 @@
     }
   }
 
-  if (refresh_cache_on_miss && (base::Time::Now() - footprints_last_updated_) >
-                                   base::TimeDelta::FromMinutes(1)) {
+  if (refresh_cache_on_miss &&
+      (base::Time::Now() - footprints_last_updated_) > base::Minutes(1)) {
     footprints_fetcher_->GetUserDevices(
         base::BindOnce(&FastPairRepositoryImpl::RetryCheckAccountKeys,
                        weak_ptr_factory_.GetWeakPtr(), account_key_filter,
diff --git a/ash/quick_pair/scanning/fast_pair/fast_pair_scanner_impl.cc b/ash/quick_pair/scanning/fast_pair/fast_pair_scanner_impl.cc
index e258d05..795e733 100644
--- a/ash/quick_pair/scanning/fast_pair/fast_pair_scanner_impl.cc
+++ b/ash/quick_pair/scanning/fast_pair/fast_pair_scanner_impl.cc
@@ -13,10 +13,8 @@
 
 namespace {
 
-constexpr base::TimeDelta kFilterDeviceFoundTimeout =
-    base::TimeDelta::FromSeconds(1);
-constexpr base::TimeDelta kFilterDeviceLostTimeout =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kFilterDeviceFoundTimeout = base::Seconds(1);
+constexpr base::TimeDelta kFilterDeviceLostTimeout = base::Seconds(5);
 constexpr uint8_t kFilterPatternStartPosition = 0;
 const std::vector<uint8_t> kFastPairFilterPatternValue = {0x2c, 0xfe};
 
diff --git a/ash/rotator/screen_rotation_animation_unittest.cc b/ash/rotator/screen_rotation_animation_unittest.cc
index 0539567..aa0b89a 100644
--- a/ash/rotator/screen_rotation_animation_unittest.cc
+++ b/ash/rotator/screen_rotation_animation_unittest.cc
@@ -52,8 +52,8 @@
       std::make_unique<ScreenRotationAnimation>(
           layer, 45 /* start_degrees */, 0 /* end_degrees */,
           0.5f /* initial_opacity */, 1.0f /* target_opacity */,
-          gfx::Point(10, 10) /* pivot */,
-          base::TimeDelta::FromSeconds(10) /* duration */, gfx::Tween::LINEAR);
+          gfx::Point(10, 10) /* pivot */, base::Seconds(10) /* duration */,
+          gfx::Tween::LINEAR);
 
   ui::LayerAnimator* animator = layer->GetAnimator();
   animator->set_preemption_strategy(
@@ -85,9 +85,9 @@
   root_layer->Add(layer.get());
 
   std::unique_ptr<ScreenRotationAnimation> screen_rotation =
-      std::make_unique<ScreenRotationAnimation>(
-          layer.get(), 45, 0, 1.0f, 1.0f, gfx::Point(),
-          base::TimeDelta::FromSeconds(1), gfx::Tween::LINEAR);
+      std::make_unique<ScreenRotationAnimation>(layer.get(), 45, 0, 1.0f, 1.0f,
+                                                gfx::Point(), base::Seconds(1),
+                                                gfx::Tween::LINEAR);
   ui::LayerAnimator* animator = layer->GetAnimator();
   std::unique_ptr<ui::LayerAnimationSequence> animation_sequence =
       std::make_unique<ui::LayerAnimationSequence>(std::move(screen_rotation));
diff --git a/ash/rotator/screen_rotation_animator.cc b/ash/rotator/screen_rotation_animator.cc
index 94f4140..846c14b 100644
--- a/ash/rotator/screen_rotation_animator.cc
+++ b/ash/rotator/screen_rotation_animator.cc
@@ -381,8 +381,7 @@
                                                 rotation_request->new_rotation);
   const int old_layer_initial_rotation_degrees = GetInitialDegrees(
       rotation_request->old_rotation, rotation_request->new_rotation);
-  const base::TimeDelta duration =
-      base::TimeDelta::FromMilliseconds(kRotationDurationInMs);
+  const base::TimeDelta duration = base::Milliseconds(kRotationDurationInMs);
   const gfx::Tween::Type tween_type = gfx::Tween::FAST_OUT_LINEAR_IN;
   const gfx::Rect rotated_screen_bounds = root_window_->GetTargetBounds();
   const gfx::Point pivot = gfx::Point(rotated_screen_bounds.width() / 2,
diff --git a/ash/rotator/window_rotation.cc b/ash/rotator/window_rotation.cc
index db2c4a8e..b6df0b9 100644
--- a/ash/rotator/window_rotation.cc
+++ b/ash/rotator/window_rotation.cc
@@ -22,12 +22,12 @@
 
 base::TimeDelta GetTransitionDuration(int degrees) {
   if (degrees == 360)
-    return base::TimeDelta::FromMilliseconds(k360DegreeTransitionDurationMs);
+    return base::Milliseconds(k360DegreeTransitionDurationMs);
   if (degrees == 180)
-    return base::TimeDelta::FromMilliseconds(k180DegreeTransitionDurationMs);
+    return base::Milliseconds(k180DegreeTransitionDurationMs);
   if (degrees == 0)
-    return base::TimeDelta::FromMilliseconds(0);
-  return base::TimeDelta::FromMilliseconds(k90DegreeTransitionDurationMs);
+    return base::Milliseconds(0);
+  return base::Milliseconds(k90DegreeTransitionDurationMs);
 }
 
 }  // namespace
diff --git a/ash/services/quick_pair/quick_pair_process_shutdown_controller.cc b/ash/services/quick_pair/quick_pair_process_shutdown_controller.cc
index d4a9f47..9847eef 100644
--- a/ash/services/quick_pair/quick_pair_process_shutdown_controller.cc
+++ b/ash/services/quick_pair/quick_pair_process_shutdown_controller.cc
@@ -9,8 +9,7 @@
 namespace ash {
 namespace quick_pair {
 
-constexpr base::TimeDelta kProcessShutdownTimeout =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kProcessShutdownTimeout = base::Seconds(5);
 
 QuickPairProcessShutdownController::QuickPairProcessShutdownController() =
     default;
diff --git a/ash/services/recording/recording_service_constants.h b/ash/services/recording/recording_service_constants.h
index 43f2b1a..79638ce 100644
--- a/ash/services/recording/recording_service_constants.h
+++ b/ash/services/recording/recording_service_constants.h
@@ -14,15 +14,14 @@
 constexpr int kMaxFrameRate = 30;
 
 // Based on the above FPS, this is the minimum duration between any two frames.
-constexpr base::TimeDelta kMinCapturePeriod =
-    base::TimeDelta::FromHz(kMaxFrameRate);
+constexpr base::TimeDelta kMinCapturePeriod = base::Hertz(kMaxFrameRate);
 
 // The minimum amount of time that must pass between any two successive size
 // changes of video frames. This is needed to avoid producing a lot of video
 // frames with different sizes (e.g. when resizing a window) which can result in
 // a large output.
 constexpr base::TimeDelta kMinPeriodForResizeThrottling =
-    base::TimeDelta::FromMilliseconds(500);
+    base::Milliseconds(500);
 
 // The requested audio sample rate of the audio capturer.
 constexpr int kAudioSampleRate = 48000;
diff --git a/ash/session/fullscreen_alert_bubble.cc b/ash/session/fullscreen_alert_bubble.cc
index 1641c030..49b6d45 100644
--- a/ash/session/fullscreen_alert_bubble.cc
+++ b/ash/session/fullscreen_alert_bubble.cc
@@ -41,9 +41,8 @@
 constexpr int kBubbleBorderRadius = 8;
 constexpr int kButtonPaddingDp = 8;
 constexpr int kOffsetFromEdge = 32;
-constexpr base::TimeDelta kAlertDuration = base::TimeDelta::FromSeconds(4);
-constexpr base::TimeDelta kBubbleAnimationDuration =
-    base::TimeDelta::FromMilliseconds(300);
+constexpr base::TimeDelta kAlertDuration = base::Seconds(4);
+constexpr base::TimeDelta kBubbleAnimationDuration = base::Milliseconds(300);
 
 constexpr SkColor kAlertTextColor =
     SkColorSetA(gfx::kGoogleGrey200, SK_AlphaOPAQUE);
diff --git a/ash/shelf/assistant_overlay.cc b/ash/shelf/assistant_overlay.cc
index c2eca7d..20d52fc 100644
--- a/ash/shelf/assistant_overlay.cc
+++ b/ash/shelf/assistant_overlay.cc
@@ -121,14 +121,13 @@
     transform.Scale(scale_factor, scale_factor);
 
     ui::ScopedLayerAnimationSettings settings(ripple_layer_->GetAnimator());
-    settings.SetTransitionDuration(
-        base::TimeDelta::FromMilliseconds(kRippleExpandDurationMs));
+    settings.SetTransitionDuration(base::Milliseconds(kRippleExpandDurationMs));
     settings.SetTweenType(gfx::Tween::FAST_OUT_SLOW_IN_2);
 
     ripple_layer_->SetTransform(transform);
 
     settings.SetTransitionDuration(
-        base::TimeDelta::FromMilliseconds(kRippleOpacityDurationMs));
+        base::Milliseconds(kRippleOpacityDurationMs));
     ripple_layer_->SetOpacity(kRippleOpacity);
   }
 }
@@ -148,8 +147,7 @@
     transform.Scale(scale_factor, scale_factor);
 
     ui::ScopedLayerAnimationSettings settings(ripple_layer_->GetAnimator());
-    settings.SetTransitionDuration(
-        base::TimeDelta::FromMilliseconds(kFullBurstDurationMs));
+    settings.SetTransitionDuration(base::Milliseconds(kFullBurstDurationMs));
     settings.SetTweenType(gfx::Tween::LINEAR_OUT_SLOW_IN);
     settings.SetPreemptionStrategy(
         ui::LayerAnimator::PreemptionStrategy::ENQUEUE_NEW_ANIMATION);
@@ -182,15 +180,14 @@
     ui::ScopedLayerAnimationSettings settings(ripple_layer_->GetAnimator());
     settings.SetPreemptionStrategy(ui::LayerAnimator::PreemptionStrategy::
                                        IMMEDIATELY_ANIMATE_TO_NEW_TARGET);
-    settings.SetTransitionDuration(
-        base::TimeDelta::FromMilliseconds(kFullRetractDurationMs));
+    settings.SetTransitionDuration(base::Milliseconds(kFullRetractDurationMs));
     settings.SetTweenType(gfx::Tween::SLOW_OUT_LINEAR_IN);
     settings.AddObserver(this);
 
     ripple_layer_->SetTransform(transform);
 
     settings.SetTransitionDuration(
-        base::TimeDelta::FromMilliseconds(kRippleOpacityRetractDurationMs));
+        base::Milliseconds(kRippleOpacityRetractDurationMs));
     ripple_layer_->SetOpacity(0);
   }
 }
@@ -201,8 +198,7 @@
   // Setup ripple animations.
   {
     ui::ScopedLayerAnimationSettings settings(ripple_layer_->GetAnimator());
-    settings.SetTransitionDuration(
-        base::TimeDelta::FromMilliseconds(kHideDurationMs));
+    settings.SetTransitionDuration(base::Milliseconds(kHideDurationMs));
     settings.SetTweenType(gfx::Tween::LINEAR_OUT_SLOW_IN);
     settings.SetPreemptionStrategy(
         ui::LayerAnimator::PreemptionStrategy::ENQUEUE_NEW_ANIMATION);
diff --git a/ash/shelf/assistant_overlay_unittest.cc b/ash/shelf/assistant_overlay_unittest.cc
index b060582..4723022 100644
--- a/ash/shelf/assistant_overlay_unittest.cc
+++ b/ash/shelf/assistant_overlay_unittest.cc
@@ -44,8 +44,7 @@
 namespace ash {
 namespace {
 
-constexpr base::TimeDelta kAssistantAnimationDelay =
-    base::TimeDelta::FromMilliseconds(200);
+constexpr base::TimeDelta kAssistantAnimationDelay = base::Milliseconds(200);
 constexpr char kAssistantOverlayClassName[] = "AssistantOverlay";
 
 enum TestVariant { kClamshell, kTablet, kTabletWithBackButton };
diff --git a/ash/shelf/contextual_nudge_status_tracker.cc b/ash/shelf/contextual_nudge_status_tracker.cc
index 7c26ccf..58da5f3 100644
--- a/ash/shelf/contextual_nudge_status_tracker.cc
+++ b/ash/shelf/contextual_nudge_status_tracker.cc
@@ -67,9 +67,8 @@
 
   base::TimeDelta time_since_show = hide_time - nudge_shown_time_;
   base::UmaHistogramCustomTimes(
-      GetTimeDeltaHistogramName(type_), time_since_show,
-      base::TimeDelta::FromSeconds(1),
-      base::TimeDelta::FromSeconds(kMaxHistogramTime), kMaxHistogramTime);
+      GetTimeDeltaHistogramName(type_), time_since_show, base::Seconds(1),
+      base::Seconds(kMaxHistogramTime), kMaxHistogramTime);
   gesture_time_recorded_ = true;
 }
 
diff --git a/ash/shelf/contextual_tooltip.h b/ash/shelf/contextual_tooltip.h
index 284e45d4..1948372 100644
--- a/ash/shelf/contextual_tooltip.h
+++ b/ash/shelf/contextual_tooltip.h
@@ -46,15 +46,15 @@
 constexpr int kSuccessLimitBackGesture = 1;
 
 // Minimum time between showing contextual nudges to the user.
-constexpr base::TimeDelta kMinInterval = base::TimeDelta::FromDays(1);
+constexpr base::TimeDelta kMinInterval = base::Days(1);
 
 // The amount of time a nudge is shown.
-constexpr base::TimeDelta kNudgeShowDuration = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kNudgeShowDuration = base::Seconds(5);
 
 // The minimum amount of time that has to pass since showing drag handle nudge
 // before showing the back gesture nudge.
 constexpr base::TimeDelta kMinIntervalBetweenBackAndDragHandleNudge =
-    base::TimeDelta::FromMinutes(1);
+    base::Minutes(1);
 
 // Registers profile prefs.
 ASH_EXPORT void RegisterProfilePrefs(PrefRegistrySimple* registry);
diff --git a/ash/shelf/contextual_tooltip_unittest.cc b/ash/shelf/contextual_tooltip_unittest.cc
index b2cd97d..8e45876 100644
--- a/ash/shelf/contextual_tooltip_unittest.cc
+++ b/ash/shelf/contextual_tooltip_unittest.cc
@@ -46,7 +46,7 @@
   void SetUp() override {
     AshTestBase::SetUp();
     contextual_tooltip::OverrideClockForTesting(&test_clock_);
-    test_clock_.Advance(base::TimeDelta::FromSeconds(360));
+    test_clock_.Advance(base::Seconds(360));
   }
   void TearDown() override {
     contextual_tooltip::ClearStatusTrackerTableForTesting();
diff --git a/ash/shelf/drag_handle.cc b/ash/shelf/drag_handle.cc
index 41da068..7762eb5e 100644
--- a/ash/shelf/drag_handle.cc
+++ b/ash/shelf/drag_handle.cc
@@ -41,29 +41,28 @@
 constexpr int kInAppToHomeNudgeVerticalMarginDrop = 8;
 
 // Animation time for each translation of drag handle to show contextual nudge.
-constexpr base::TimeDelta kInAppToHomeAnimationTime =
-    base::TimeDelta::FromMilliseconds(300);
+constexpr base::TimeDelta kInAppToHomeAnimationTime = base::Milliseconds(300);
 
 // Animation time to return drag handle to original position after hiding
 // contextual nudge.
 constexpr base::TimeDelta kInAppToHomeHideAnimationDuration =
-    base::TimeDelta::FromMilliseconds(600);
+    base::Milliseconds(600);
 
 // Animation time to return drag handle to original position after the user taps
 // to hide the contextual nudge.
 constexpr base::TimeDelta kInAppToHomeHideOnTapAnimationDuration =
-    base::TimeDelta::FromMilliseconds(100);
+    base::Milliseconds(100);
 
 // Delay between animating drag handle and tooltip opacity.
 constexpr base::TimeDelta kInAppToHomeNudgeOpacityDelay =
-    base::TimeDelta::FromMilliseconds(500);
+    base::Milliseconds(500);
 
 // Fade in time for drag handle nudge tooltip.
 constexpr base::TimeDelta kInAppToHomeNudgeOpacityAnimationDuration =
-    base::TimeDelta::FromMilliseconds(200);
+    base::Milliseconds(200);
 
 // Delay before animating the drag handle and showing the drag handle nudge.
-constexpr base::TimeDelta kShowNudgeDelay = base::TimeDelta::FromSeconds(2);
+constexpr base::TimeDelta kShowNudgeDelay = base::Seconds(2);
 
 // This class is deleted after OnImplicitAnimationsCompleted() is called.
 class HideNudgeObserver : public ui::ImplicitAnimationObserver {
diff --git a/ash/shelf/drag_window_from_shelf_controller.cc b/ash/shelf/drag_window_from_shelf_controller.cc
index 215eed9..b60cfec 100644
--- a/ash/shelf/drag_window_from_shelf_controller.cc
+++ b/ash/shelf/drag_window_from_shelf_controller.cc
@@ -61,7 +61,7 @@
 // Amount of time to wait to show overview after the user slows down or stops
 // window dragging.
 constexpr base::TimeDelta kShowOverviewTimeWhenDragSuspend =
-    base::TimeDelta::FromMilliseconds(40);
+    base::Milliseconds(40);
 
 // The scroll update threshold to restart the show overview timer.
 constexpr float kScrollUpdateOverviewThreshold = 2.f;
diff --git a/ash/shelf/drag_window_from_shelf_controller_unittest.cc b/ash/shelf/drag_window_from_shelf_controller_unittest.cc
index 652b5ec..aa21b85 100644
--- a/ash/shelf/drag_window_from_shelf_controller_unittest.cc
+++ b/ash/shelf/drag_window_from_shelf_controller_unittest.cc
@@ -110,8 +110,7 @@
                ->is_animating()) {
       base::RunLoop run_loop;
       base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-          FROM_HERE, run_loop.QuitClosure(),
-          base::TimeDelta::FromMilliseconds(200));
+          FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(200));
       run_loop.Run();
     }
   }
@@ -1090,7 +1089,7 @@
       ui::ScopedAnimationDurationScaleMode::NON_ZERO_DURATION);
   OverviewController* overview_controller = Shell::Get()->overview_controller();
   overview_controller->set_delayed_animation_task_delay_for_test(
-      base::TimeDelta::FromMilliseconds(100));
+      base::Milliseconds(100));
 
   UpdateDisplay("500x400");
   const gfx::Rect shelf_bounds =
diff --git a/ash/shelf/home_button.cc b/ash/shelf/home_button.cc
index f3f4aa5..d65529a8 100644
--- a/ash/shelf/home_button.cc
+++ b/ash/shelf/home_button.cc
@@ -45,9 +45,8 @@
 constexpr int kAnimationBounceDownOffset = 3;
 
 constexpr base::TimeDelta kHomeButtonAnimationDuration =
-    base::TimeDelta::FromMilliseconds(250);
-constexpr base::TimeDelta kRippleAnimationDuration =
-    base::TimeDelta::FromMilliseconds(2000);
+    base::Milliseconds(250);
+constexpr base::TimeDelta kRippleAnimationDuration = base::Milliseconds(2000);
 
 }  // namespace
 
@@ -301,7 +300,7 @@
       .SetOpacity(nudge_ripple_layer_.get(), 0.0f,
                   gfx::Tween::ACCEL_0_80_DECEL_80)
       // Set up the animation of the widget_layer
-      .At(base::TimeDelta::FromSeconds(0))
+      .At(base::Seconds(0))
       .SetDuration(kHomeButtonAnimationDuration)
       .SetTransform(widget_layer, move_up, gfx::Tween::FAST_OUT_SLOW_IN_3)
       .Then()
diff --git a/ash/shelf/home_button_controller.cc b/ash/shelf/home_button_controller.cc
index 3facbda..d6c4602 100644
--- a/ash/shelf/home_button_controller.cc
+++ b/ash/shelf/home_button_controller.cc
@@ -27,8 +27,7 @@
 namespace ash {
 namespace {
 
-constexpr base::TimeDelta kAssistantAnimationDelay =
-    base::TimeDelta::FromMilliseconds(200);
+constexpr base::TimeDelta kAssistantAnimationDelay = base::Milliseconds(200);
 
 // Returns true if the button should appear activatable.
 bool CanActivate(int64_t display_id) {
diff --git a/ash/shelf/home_button_unittest.cc b/ash/shelf/home_button_unittest.cc
index 5b05aa8..2a44548 100644
--- a/ash/shelf/home_button_unittest.cc
+++ b/ash/shelf/home_button_unittest.cc
@@ -273,7 +273,7 @@
   end.set_y(shelf->GetIdealBounds().bottom() -
             AppListView::kDragSnapToPeekingThreshold + 10);
   GetEventGenerator()->GestureScrollSequence(
-      start, end, base::TimeDelta::FromMilliseconds(100), 4 /* steps */);
+      start, end, base::Milliseconds(100), 4 /* steps */);
   GetAppListTestHelper()->WaitUntilIdle();
   GetAppListTestHelper()->CheckVisibility(true);
   GetAppListTestHelper()->CheckState(AppListViewState::kPeeking);
@@ -287,7 +287,7 @@
   end.set_y(shelf->GetIdealBounds().bottom() -
             AppListView::kDragSnapToPeekingThreshold - 10);
   GetEventGenerator()->GestureScrollSequence(
-      start, end, base::TimeDelta::FromMilliseconds(100), 4 /* steps */);
+      start, end, base::Milliseconds(100), 4 /* steps */);
   base::RunLoop().RunUntilIdle();
   GetAppListTestHelper()->WaitUntilIdle();
   GetAppListTestHelper()->CheckVisibility(true);
diff --git a/ash/shelf/home_to_overview_nudge_controller.cc b/ash/shelf/home_to_overview_nudge_controller.cc
index b95fa4d2..6be2e64 100644
--- a/ash/shelf/home_to_overview_nudge_controller.cc
+++ b/ash/shelf/home_to_overview_nudge_controller.cc
@@ -33,22 +33,20 @@
 namespace {
 
 // The amount of time after home shelf is shown before showing the nudge.
-constexpr base::TimeDelta kShowDelay = base::TimeDelta::FromSeconds(2);
+constexpr base::TimeDelta kShowDelay = base::Seconds(2);
 
 // The duration of nudge opacity animations.
-constexpr base::TimeDelta kNudgeFadeDuration =
-    base::TimeDelta::FromMilliseconds(300);
+constexpr base::TimeDelta kNudgeFadeDuration = base::Milliseconds(300);
 
 // The duration of the nudge opacity and transform animations when the nudge
 // gets hidden on user tap.
-constexpr base::TimeDelta kNudgeHideOnTapDuration =
-    base::TimeDelta::FromMilliseconds(150);
+constexpr base::TimeDelta kNudgeHideOnTapDuration = base::Milliseconds(150);
 
 // The duration of a single component of the nudge position animation - the
 // nudge is transformed vertically up and down for a preset number of
 // iterations.
 constexpr base::TimeDelta kNudgeTransformComponentDuration =
-    base::TimeDelta::FromMilliseconds(600);
+    base::Milliseconds(600);
 
 // The baseline vertical offset from default kShown state bounds added to
 // hotseat position when the nudge is shown - this is the offset that the
diff --git a/ash/shelf/home_to_overview_nudge_controller_unittest.cc b/ash/shelf/home_to_overview_nudge_controller_unittest.cc
index 3764b5c6..bd20a70b 100644
--- a/ash/shelf/home_to_overview_nudge_controller_unittest.cc
+++ b/ash/shelf/home_to_overview_nudge_controller_unittest.cc
@@ -97,7 +97,7 @@
     AshTestBase::SetUp();
     GetSessionControllerClient()->SetSessionState(
         session_manager::SessionState::LOGIN_PRIMARY);
-    test_clock_.Advance(base::TimeDelta::FromHours(2));
+    test_clock_.Advance(base::Hours(2));
     contextual_tooltip::OverrideClockForTesting(&test_clock_);
   }
   void TearDown() override {
@@ -268,7 +268,7 @@
             GetHotseatWidget()->GetLayerForNudgeAnimation()->transform());
 
   // Advance time for more than a day (which should enable the nudge again).
-  test_clock_.Advance(base::TimeDelta::FromHours(25));
+  test_clock_.Advance(base::Hours(25));
 
   // The nudge should not show up unless the user actually transitions to home.
   EXPECT_FALSE(GetNudgeController()->nudge_for_testing());
@@ -319,7 +319,7 @@
     std::unique_ptr<aura::Window> window =
         CreateTestWindow(gfx::Rect(0, 0, 400, 400));
     wm::ActivateWindow(window.get());
-    test_clock_.Advance(base::TimeDelta::FromHours(25));
+    test_clock_.Advance(base::Hours(25));
     WindowState::Get(window.get())->Minimize();
   }
 
@@ -416,7 +416,7 @@
 
   // Nudge should not be shown if a window is shown and hidden behind a lock
   // screen.
-  test_clock_.Advance(base::TimeDelta::FromHours(25));
+  test_clock_.Advance(base::Hours(25));
   ScopedWindowList locked_session_window = CreateAndMinimizeWindows(1);
   EXPECT_FALSE(GetNudgeController()->HasShowTimerForTesting());
 }
@@ -493,7 +493,7 @@
       GetHotseatWidget()->GetLayerForNudgeAnimation()->GetTargetTransform());
 
   // When the nudge is shown again, it should be hidden after a timeout.
-  test_clock_.Advance(base::TimeDelta::FromHours(25));
+  test_clock_.Advance(base::Hours(25));
   WindowState::Get(window.get())->Minimize();
   ASSERT_TRUE(GetNudgeController()->HasShowTimerForTesting());
   GetNudgeController()->FireShowTimerForTesting();
@@ -631,8 +631,7 @@
                                  ->GetWindowBoundsInScreen()
                                  .CenterPoint();
     GetEventGenerator()->GestureScrollSequenceWithCallback(
-        start, start + gfx::Vector2d(0, -100),
-        base::TimeDelta::FromMilliseconds(50),
+        start, start + gfx::Vector2d(0, -100), base::Milliseconds(50),
         /*num_steps = */ 12,
         base::BindRepeating(
             [](ui::EventType type, const gfx::Vector2dF& offset) {
@@ -659,7 +658,7 @@
   }
 
   // The nudge should not be shown next time the user transitions to home.
-  test_clock_.Advance(base::TimeDelta::FromHours(25));
+  test_clock_.Advance(base::Hours(25));
   ScopedWindowList extra_window = CreateAndMinimizeWindows(1);
 
   EXPECT_FALSE(GetNudgeController()->nudge_for_testing());
@@ -685,8 +684,7 @@
   const gfx::Point start =
       GetNudgeWidget()->GetWindowBoundsInScreen().CenterPoint();
   GetEventGenerator()->GestureScrollSequenceWithCallback(
-      start, start + gfx::Vector2d(0, -100),
-      base::TimeDelta::FromMilliseconds(50),
+      start, start + gfx::Vector2d(0, -100), base::Milliseconds(50),
       /*num_steps = */ 12,
       base::BindRepeating([](ui::EventType type, const gfx::Vector2dF& offset) {
         if (type != ui::ET_GESTURE_SCROLL_UPDATE)
diff --git a/ash/shelf/hotseat_widget.cc b/ash/shelf/hotseat_widget.cc
index fdfcdcf..347cce6 100644
--- a/ash/shelf/hotseat_widget.cc
+++ b/ash/shelf/hotseat_widget.cc
@@ -937,7 +937,7 @@
         shelf_view_layer->GetAnimator());
     animation_setter.SetTransitionDuration(
         animate ? ShelfConfig::Get()->shelf_animation_duration()
-                : base::TimeDelta::FromMilliseconds(0));
+                : base::Milliseconds(0));
     animation_setter.SetTweenType(gfx::Tween::EASE_OUT);
     animation_setter.SetPreemptionStrategy(
         ui::LayerAnimator::IMMEDIATELY_ANIMATE_TO_NEW_TARGET);
diff --git a/ash/shelf/hotseat_widget_unittest.cc b/ash/shelf/hotseat_widget_unittest.cc
index 6ee9387..615fc7b 100644
--- a/ash/shelf/hotseat_widget_unittest.cc
+++ b/ash/shelf/hotseat_widget_unittest.cc
@@ -146,7 +146,7 @@
     GetAppListTestHelper()->WaitUntilIdle();
 
     // Advance clock to make sure long press gesture is triggered.
-    task_environment()->AdvanceClock(base::TimeDelta::FromSeconds(5));
+    task_environment()->AdvanceClock(base::Seconds(5));
     GetAppListTestHelper()->WaitUntilIdle();
 
     GetEventGenerator()->ReleaseTouch();
@@ -457,7 +457,7 @@
   base::RunLoop run_loop;
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE, run_loop.QuitClosure(),
-      base::TimeDelta::FromMilliseconds(long_press_delay_ms));
+      base::Milliseconds(long_press_delay_ms));
   run_loop.Run();
   GetEventGenerator()->ReleaseTouch();
 
@@ -548,7 +548,7 @@
       GetPrimaryShelf()->hotseat_widget()->GetWindowBoundsInScreen();
   gfx::Point start = hotseat_bounds.top_center();
   gfx::Point end = start + gfx::Vector2d(0, 80);
-  const base::TimeDelta kTimeDelta = base::TimeDelta::FromMilliseconds(100);
+  const base::TimeDelta kTimeDelta = base::Milliseconds(100);
   const int kNumScrollSteps = 4;
 
   GetEventGenerator()->GestureScrollSequence(start, end, kTimeDelta,
@@ -641,7 +641,7 @@
                        ->GetWindowBoundsInScreen()
                        .top_center());
   const gfx::Point end(start + gfx::Vector2d(0, -300));
-  const base::TimeDelta kTimeDelta = base::TimeDelta::FromMilliseconds(100);
+  const base::TimeDelta kTimeDelta = base::Milliseconds(100);
   const int kNumScrollSteps = 4;
   GetEventGenerator()->GestureScrollSequence(start, end, kTimeDelta,
                                              kNumScrollSteps);
@@ -745,8 +745,8 @@
   start.Offset(0, -200);
   gfx::Point end = start;
   end.Offset(0, -200);
-  GetEventGenerator()->GestureScrollSequence(
-      start, end, base::TimeDelta::FromMilliseconds(10), 4);
+  GetEventGenerator()->GestureScrollSequence(start, end, base::Milliseconds(10),
+                                             4);
 
   EXPECT_EQ(HotseatState::kHidden, GetShelfLayoutManager()->hotseat_state());
   if (shelf_auto_hide_behavior() == ShelfAutoHideBehavior::kAlways)
@@ -892,7 +892,7 @@
                                ->GetWindowBoundsInScreen()
                                .height();
   const gfx::Point end(start + gfx::Vector2d(0, -hotseat_size / 2 + 1));
-  const base::TimeDelta kTimeDelta = base::TimeDelta::FromMilliseconds(1000);
+  const base::TimeDelta kTimeDelta = base::Milliseconds(1000);
   const int kNumScrollSteps = 4;
   GetEventGenerator()->GestureScrollSequence(start, end, kTimeDelta,
                                              kNumScrollSteps);
@@ -928,7 +928,7 @@
                                ->GetWindowBoundsInScreen()
                                .height();
   const gfx::Point end(start + gfx::Vector2d(0, -hotseat_size * 3.0f / 2.0f));
-  const base::TimeDelta kTimeDelta = base::TimeDelta::FromMilliseconds(1000);
+  const base::TimeDelta kTimeDelta = base::Milliseconds(1000);
   const int kNumScrollSteps = 4;
   GetEventGenerator()->GestureScrollSequence(start, end, kTimeDelta,
                                              kNumScrollSteps);
@@ -1421,7 +1421,7 @@
   gfx::Point start = hotseat_bounds.top_center();
   gfx::Point end = start + gfx::Vector2d(0, 80);
   GetEventGenerator()->GestureScrollSequence(
-      start, end, base::TimeDelta::FromMilliseconds(100), 4 /*scroll_steps*/);
+      start, end, base::Milliseconds(100), 4 /*scroll_steps*/);
   EXPECT_EQ(HotseatState::kHidden, GetShelfLayoutManager()->hotseat_state());
 
   // Focus to the next element in the hotseat. The hotseat should show again.
@@ -1941,7 +1941,7 @@
   const gfx::Point end =
       gfx::Point(shelf_widget_bounds.x() + shelf_widget_bounds.width() / 2,
                  shelf_widget_bounds.bottom() + 1);
-  const base::TimeDelta kTimeDelta = base::TimeDelta::FromMilliseconds(100);
+  const base::TimeDelta kTimeDelta = base::Milliseconds(100);
   const int kNumScrollSteps = 4;
 
   GetEventGenerator()->GestureScrollSequence(start, end, kTimeDelta,
@@ -2308,7 +2308,7 @@
 
     // Set up an animation to identity transform.
     ui::ScopedLayerAnimationSettings animation(layer->GetAnimator());
-    animation.SetTransitionDuration(base::TimeDelta::FromMilliseconds(300));
+    animation.SetTransitionDuration(base::Milliseconds(300));
     layer->SetTransform(gfx::Transform());
   };
 
diff --git a/ash/shelf/login_shelf_gesture_controller.cc b/ash/shelf/login_shelf_gesture_controller.cc
index 5b66010..2cc74fb 100644
--- a/ash/shelf/login_shelf_gesture_controller.cc
+++ b/ash/shelf/login_shelf_gesture_controller.cc
@@ -30,21 +30,20 @@
 // The delay between the time the login shelf gesture nudge is shown, and the
 // time it starts animating.
 constexpr base::TimeDelta kNudgeAnimationEntranceDelay =
-    base::TimeDelta::FromMilliseconds(500);
+    base::Milliseconds(500);
 
 // The duration of different parts of the nudge animation.
 constexpr base::TimeDelta kNudgeAnimationStageDuration =
-    base::TimeDelta::FromMilliseconds(600);
+    base::Milliseconds(600);
 
 // The duration of the animation that moves the drag handle and the contextual
 // nudge to their initial position when the user cancels the nudge animation by
 // tapping the contextual nudge.
-constexpr base::TimeDelta kNudgeStopAnimationDuration =
-    base::TimeDelta::FromMilliseconds(150);
+constexpr base::TimeDelta kNudgeStopAnimationDuration = base::Milliseconds(150);
 
 // The interval between the end of one nudge animation sequence, and the start
 // of the next nudge animation sequence.
-constexpr base::TimeDelta kAnimationInterval = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kAnimationInterval = base::Seconds(5);
 
 // The offset drag handle and nudge widget have from the default position during
 // the nudge animation sequence.
diff --git a/ash/shelf/login_shelf_gesture_controller_unittest.cc b/ash/shelf/login_shelf_gesture_controller_unittest.cc
index 7da8bf2..a55f0336 100644
--- a/ash/shelf/login_shelf_gesture_controller_unittest.cc
+++ b/ash/shelf/login_shelf_gesture_controller_unittest.cc
@@ -87,7 +87,7 @@
 
   void SwipeOnShelf(const gfx::Point& start, const gfx::Vector2d& direction) {
     const gfx::Point end(start + direction);
-    const base::TimeDelta kTimeDelta = base::TimeDelta::FromMilliseconds(500);
+    const base::TimeDelta kTimeDelta = base::Milliseconds(500);
     const int kNumScrollSteps = 4;
     GetEventGenerator()->GestureScrollSequence(start, end, kTimeDelta,
                                                kNumScrollSteps);
@@ -95,7 +95,7 @@
 
   void FlingOnShelf(const gfx::Point& start, const gfx::Vector2d& direction) {
     const gfx::Point end(start + direction);
-    const base::TimeDelta kTimeDelta = base::TimeDelta::FromMilliseconds(10);
+    const base::TimeDelta kTimeDelta = base::Milliseconds(10);
     const int kNumScrollSteps = 4;
     GetEventGenerator()->GestureScrollSequence(start, end, kTimeDelta,
                                                kNumScrollSteps);
diff --git a/ash/shelf/scrollable_shelf_constants.h b/ash/shelf/scrollable_shelf_constants.h
index 12acd7a..446869b4 100644
--- a/ash/shelf/scrollable_shelf_constants.h
+++ b/ash/shelf/scrollable_shelf_constants.h
@@ -37,8 +37,7 @@
 constexpr int kGradientZoneLength = 26;
 
 // The time delay to show a new page of shelf icons.
-constexpr base::TimeDelta kShelfPageFlipDelay =
-    base::TimeDelta::FromMilliseconds(500);
+constexpr base::TimeDelta kShelfPageFlipDelay = base::Milliseconds(500);
 
 // The padding at the two ends of the shelf.
 constexpr int kEndPadding = 4;
diff --git a/ash/shelf/scrollable_shelf_view_unittest.cc b/ash/shelf/scrollable_shelf_view_unittest.cc
index 0d31b77..5eb60f02 100644
--- a/ash/shelf/scrollable_shelf_view_unittest.cc
+++ b/ash/shelf/scrollable_shelf_view_unittest.cc
@@ -119,7 +119,7 @@
     shelf_view_ = scrollable_shelf_view_->shelf_view();
     test_api_ = std::make_unique<ShelfViewTestAPI>(
         scrollable_shelf_view_->shelf_view());
-    test_api_->SetAnimationDuration(base::TimeDelta::FromMilliseconds(1));
+    test_api_->SetAnimationDuration(base::Milliseconds(1));
   }
 
   void TearDown() override {
@@ -525,8 +525,7 @@
 // addition, the dragged icon moves with mouse before mouse release (see
 // https://crbug.com/1031367).
 TEST_P(ScrollableShelfViewRTLTest, DragIconToNewPage) {
-  scrollable_shelf_view_->set_page_flip_time_threshold(
-      base::TimeDelta::FromMilliseconds(10));
+  scrollable_shelf_view_->set_page_flip_time_threshold(base::Milliseconds(10));
 
   AddAppShortcutsUntilOverflow();
   GetEventGenerator()->GestureTapAt(
diff --git a/ash/shelf/shelf.cc b/ash/shelf/shelf.cc
index e1b7fb29..e1317667 100644
--- a/ash/shelf/shelf.cc
+++ b/ash/shelf/shelf.cc
@@ -326,7 +326,7 @@
   base::ScopedObservation<Shelf, ShelfObserver> shelf_observation_{this};
 
   // Delay before dimming the shelf.
-  const base::TimeDelta kDimDelay = base::TimeDelta::FromSeconds(5);
+  const base::TimeDelta kDimDelay = base::Seconds(5);
 };
 
 // Shelf ---------------------------------------------------------------------
diff --git a/ash/shelf/shelf_app_button.cc b/ash/shelf/shelf_app_button.cc
index 614d890..d85bc0d 100644
--- a/ash/shelf/shelf_app_button.cc
+++ b/ash/shelf/shelf_app_button.cc
@@ -112,7 +112,7 @@
 
  private:
   ShelfAppButtonAnimation() : animation_(this) {
-    animation_.SetThrobDuration(base::TimeDelta::FromMilliseconds(800));
+    animation_.SetThrobDuration(base::Milliseconds(800));
     animation_.SetTweenType(gfx::Tween::SMOOTH_IN_OUT);
   }
 
@@ -216,8 +216,7 @@
 
     show_attention_ = show;
     if (show_attention_) {
-      animation_end_time_ =
-          base::TimeTicks::Now() + base::TimeDelta::FromSeconds(10);
+      animation_end_time_ = base::TimeTicks::Now() + base::Seconds(10);
       ShelfAppButtonAnimation::GetInstance()->AddObserver(this);
     } else {
       ShelfAppButtonAnimation::GetInstance()->RemoveObserver(this);
@@ -607,8 +606,7 @@
   shelf_view_->PointerPressedOnButton(this, ShelfView::MOUSE, event);
 
   if (shelf_view_->IsDraggedView(this)) {
-    drag_timer_.Start(FROM_HERE,
-                      base::TimeDelta::FromMilliseconds(kDragTimeThresholdMs),
+    drag_timer_.Start(FROM_HERE, base::Milliseconds(kDragTimeThresholdMs),
                       base::BindOnce(&ShelfAppButton::OnTouchDragTimer,
                                      base::Unretained(this)));
   }
@@ -742,13 +740,11 @@
     case ui::ET_GESTURE_TAP_DOWN:
       if (shelf_view_->shelf()->IsVisible()) {
         AddState(STATE_HOVERED);
-        drag_timer_.Start(
-            FROM_HERE, base::TimeDelta::FromMilliseconds(kDragTimeThresholdMs),
-            base::BindOnce(&ShelfAppButton::OnTouchDragTimer,
-                           base::Unretained(this)));
+        drag_timer_.Start(FROM_HERE, base::Milliseconds(kDragTimeThresholdMs),
+                          base::BindOnce(&ShelfAppButton::OnTouchDragTimer,
+                                         base::Unretained(this)));
         ripple_activation_timer_.Start(
-            FROM_HERE,
-            base::TimeDelta::FromMilliseconds(kInkDropRippleActivationTimeMs),
+            FROM_HERE, base::Milliseconds(kInkDropRippleActivationTimeMs),
             base::BindOnce(&ShelfAppButton::OnRippleTimer,
                            base::Unretained(this)));
         views::InkDrop::Get(this)->GetInkDrop()->AnimateToState(
@@ -908,7 +904,7 @@
   }
   ui::ScopedLayerAnimationSettings settings(icon_view_->layer()->GetAnimator());
   settings.SetTransitionDuration(
-      base::TimeDelta::FromMilliseconds(kDragDropAppIconScaleTransitionMs));
+      base::Milliseconds(kDragDropAppIconScaleTransitionMs));
   if (scale_up) {
     icon_view_->layer()->SetTransform(gfx::Transform());
   } else {
@@ -931,7 +927,7 @@
     ui::ScopedLayerAnimationSettings notification_settings(
         notification_indicator_->layer()->GetAnimator());
     notification_settings.SetTransitionDuration(
-        base::TimeDelta::FromMilliseconds(kDragDropAppIconScaleTransitionMs));
+        base::Milliseconds(kDragDropAppIconScaleTransitionMs));
     notification_indicator_->layer()->SetTransform(scale_up ? gfx::Transform()
                                                             : scale_transform);
   }
diff --git a/ash/shelf/shelf_background_animator.cc b/ash/shelf/shelf_background_animator.cc
index 6599eea5a..a5223604 100644
--- a/ash/shelf/shelf_background_animator.cc
+++ b/ash/shelf/shelf_background_animator.cc
@@ -178,7 +178,7 @@
     case ShelfBackgroundType::kAppList:
     case ShelfBackgroundType::kHomeLauncher:
     case ShelfBackgroundType::kMaximizedWithAppList:
-      duration = base::TimeDelta::FromMilliseconds(500);
+      duration = base::Milliseconds(500);
       break;
     case ShelfBackgroundType::kMaximized:
     case ShelfBackgroundType::kOobe:
@@ -186,7 +186,7 @@
     case ShelfBackgroundType::kLoginNonBlurredWallpaper:
     case ShelfBackgroundType::kOverview:
     case ShelfBackgroundType::kInApp:
-      duration = base::TimeDelta::FromMilliseconds(250);
+      duration = base::Milliseconds(250);
       break;
   }
 
diff --git a/ash/shelf/shelf_button_pressed_metric_tracker_unittest.cc b/ash/shelf/shelf_button_pressed_metric_tracker_unittest.cc
index e6ae884..d095aa3 100644
--- a/ash/shelf/shelf_button_pressed_metric_tracker_unittest.cc
+++ b/ash/shelf/shelf_button_pressed_metric_tracker_unittest.cc
@@ -121,7 +121,7 @@
 
   // Ensure the TickClock->NowTicks() doesn't return base::TimeTicks because
   // ShelfButtonPressedMetricTracker interprets that value as unset.
-  tick_clock_.Advance(base::TimeDelta::FromMilliseconds(100));
+  tick_clock_.Advance(base::Milliseconds(100));
 }
 
 void ShelfButtonPressedMetricTrackerTest::TearDown() {
@@ -280,8 +280,7 @@
   base::HistogramTester histogram_tester;
 
   ButtonPressed(&kDummyButton, SHELF_ACTION_WINDOW_MINIMIZED);
-  tick_clock_.Advance(
-      base::TimeDelta::FromMilliseconds(kTimeDeltaInMilliseconds));
+  tick_clock_.Advance(base::Milliseconds(kTimeDeltaInMilliseconds));
   ButtonPressed(&kDummyButton, SHELF_ACTION_WINDOW_ACTIVATED);
 
   histogram_tester.ExpectTotalCount(
diff --git a/ash/shelf/shelf_config.cc b/ash/shelf/shelf_config.cc
index 562334e..00c4b85c 100644
--- a/ash/shelf/shelf_config.cc
+++ b/ash/shelf/shelf_config.cc
@@ -331,7 +331,7 @@
 
 base::TimeDelta ShelfConfig::hotseat_background_animation_duration() const {
   // This matches the duration of the maximize/minimize animation.
-  return base::TimeDelta::FromMilliseconds(300);
+  return base::Milliseconds(300);
 }
 
 base::TimeDelta ShelfConfig::shelf_animation_duration() const {
@@ -471,7 +471,7 @@
 }
 
 base::TimeDelta ShelfConfig::DimAnimationDuration() const {
-  return base::TimeDelta::FromMilliseconds(1000);
+  return base::Milliseconds(1000);
 }
 
 gfx::Tween::Type ShelfConfig::DimAnimationTween() const {
diff --git a/ash/shelf/shelf_drag_handle_unittest.cc b/ash/shelf/shelf_drag_handle_unittest.cc
index 49c9621..20d1fa6 100644
--- a/ash/shelf/shelf_drag_handle_unittest.cc
+++ b/ash/shelf/shelf_drag_handle_unittest.cc
@@ -55,7 +55,7 @@
   // ShelfLayoutManagerTestBase:
   void SetUp() override {
     ShelfLayoutManagerTestBase::SetUp();
-    test_clock_.Advance(base::TimeDelta::FromHours(2));
+    test_clock_.Advance(base::Hours(2));
     contextual_tooltip::OverrideClockForTesting(&test_clock_);
   }
   void TearDown() override {
@@ -276,7 +276,7 @@
                    ->has_show_drag_handle_timer_for_testing());
 
   // Advance time for more than a day (which should enable the nudge again).
-  test_clock_.Advance(base::TimeDelta::FromHours(25));
+  test_clock_.Advance(base::Hours(25));
 
   // Reentering tablet mode with a maximized widget should immedietly show the
   // drag handle and set a timer to show the nudge.
@@ -574,7 +574,7 @@
 
   TabletModeControllerTestApi().LeaveTabletMode();
   // Advance time for more than a day (which should enable the nudge again).
-  test_clock_.Advance(base::TimeDelta::FromHours(25));
+  test_clock_.Advance(base::Hours(25));
   TabletModeControllerTestApi().EnterTabletMode();
   EXPECT_TRUE(drag_handle->has_show_drag_handle_timer_for_testing());
   drag_handle->fire_show_drag_handle_timer_for_testing();
@@ -585,8 +585,7 @@
   // hide the drag handle nudge is canceled when the window drag from shelf
   // starts.
   GetEventGenerator()->GestureScrollSequenceWithCallback(
-      start, start + gfx::Vector2d(0, -200),
-      base::TimeDelta::FromMilliseconds(50),
+      start, start + gfx::Vector2d(0, -200), base::Milliseconds(50),
       /*num_steps = */ 6,
       base::BindRepeating(
           [](DragHandle* drag_handle, ui::EventType type,
@@ -629,8 +628,7 @@
   // show the drag handle nudge is canceled when the window drag from shelf
   // starts.
   GetEventGenerator()->GestureScrollSequenceWithCallback(
-      start, start + gfx::Vector2d(0, -200),
-      base::TimeDelta::FromMilliseconds(50),
+      start, start + gfx::Vector2d(0, -200), base::Milliseconds(50),
       /*num_steps = */ 6,
       base::BindRepeating(
           [](DragHandle* drag_handle, ui::EventType type,
@@ -677,8 +675,7 @@
   // Simulates a swipe up from the drag handle to perform the in app to home
   // gesture.
   GetEventGenerator()->GestureScrollSequence(
-      start, start + gfx::Vector2d(0, -300),
-      base::TimeDelta::FromMilliseconds(10),
+      start, start + gfx::Vector2d(0, -300), base::Milliseconds(10),
       /*num_steps = */ 5);
 
   // The nudge should be hidden when the gesture completes.
@@ -689,8 +686,7 @@
       "Ash.ContextualNudgeDismissContext.InAppToHome",
       contextual_tooltip::DismissNudgeReason::kPerformedGesture, 1);
   histogram_tester.ExpectTimeBucketCount(
-      "Ash.ContextualNudgeDismissTime.InAppToHome",
-      base::TimeDelta::FromSeconds(0), 1);
+      "Ash.ContextualNudgeDismissTime.InAppToHome", base::Seconds(0), 1);
 }
 
 // Tests that drag handle nudge gets hidden when the user performs window drag
@@ -714,8 +710,7 @@
   // hide the drag handle nudge is canceled when the window drag from shelf
   // starts.
   GetEventGenerator()->GestureScrollSequenceWithCallback(
-      start, start + gfx::Vector2d(0, -300),
-      base::TimeDelta::FromMilliseconds(10),
+      start, start + gfx::Vector2d(0, -300), base::Milliseconds(10),
       /*num_steps = */ 6,
       base::BindRepeating(
           [](DragHandle* drag_handle, ui::EventType type,
@@ -752,8 +747,7 @@
   // hide the drag handle nudge is canceled when the window drag from shelf
   // starts.
   GetEventGenerator()->GestureScrollSequenceWithCallback(
-      start, start + gfx::Vector2d(0, -150),
-      base::TimeDelta::FromMilliseconds(500),
+      start, start + gfx::Vector2d(0, -150), base::Milliseconds(500),
       /*num_steps = */ 20,
       base::BindRepeating(
           [](DragHandle* drag_handle, ui::EventType type,
diff --git a/ash/shelf/shelf_layout_manager.cc b/ash/shelf/shelf_layout_manager.cc
index 2a0a5d7..55d4108 100644
--- a/ash/shelf/shelf_layout_manager.cc
+++ b/ash/shelf/shelf_layout_manager.cc
@@ -1851,9 +1851,8 @@
 }
 
 void ShelfLayoutManager::StartAutoHideTimer() {
-  auto_hide_timer_.Start(FROM_HERE,
-                         base::TimeDelta::FromMilliseconds(kAutoHideDelayMS),
-                         this, &ShelfLayoutManager::UpdateAutoHideStateNow);
+  auto_hide_timer_.Start(FROM_HERE, base::Milliseconds(kAutoHideDelayMS), this,
+                         &ShelfLayoutManager::UpdateAutoHideStateNow);
 }
 
 void ShelfLayoutManager::StopAutoHideTimer() {
diff --git a/ash/shelf/shelf_layout_manager_unittest.cc b/ash/shelf/shelf_layout_manager_unittest.cc
index b17c6c1..9566a02 100644
--- a/ash/shelf/shelf_layout_manager_unittest.cc
+++ b/ash/shelf/shelf_layout_manager_unittest.cc
@@ -121,8 +121,8 @@
 }
 
 void StepWidgetLayerAnimatorToEnd(views::Widget* widget) {
-  widget->GetNativeView()->layer()->GetAnimator()->Step(
-      base::TimeTicks::Now() + base::TimeDelta::FromSeconds(1));
+  widget->GetNativeView()->layer()->GetAnimator()->Step(base::TimeTicks::Now() +
+                                                        base::Seconds(1));
 }
 
 ShelfWidget* GetShelfWidget() {
@@ -1657,7 +1657,7 @@
       gfx::Point(start.x(), shelf_widget_bounds.bottom() -
                                 AppListView::kDragSnapToPeekingThreshold - 10);
   ui::test::EventGenerator* generator = GetEventGenerator();
-  constexpr base::TimeDelta kTimeDelta = base::TimeDelta::FromMilliseconds(100);
+  constexpr base::TimeDelta kTimeDelta = base::Milliseconds(100);
   constexpr int kNumScrollSteps = 4;
   generator->GestureScrollSequence(start, end, kTimeDelta, kNumScrollSteps);
   GetAppListTestHelper()->WaitUntilIdle();
@@ -1708,7 +1708,7 @@
   EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState());
 
   ui::test::EventGenerator* generator = GetEventGenerator();
-  constexpr base::TimeDelta kTimeDelta = base::TimeDelta::FromMilliseconds(100);
+  constexpr base::TimeDelta kTimeDelta = base::Milliseconds(100);
   constexpr int kNumScrollSteps = 4;
 
   // Starts the drag from the center of the shelf's bottom.
@@ -1793,7 +1793,7 @@
   CreateTestWidget();
 
   ui::test::EventGenerator* generator = GetEventGenerator();
-  constexpr base::TimeDelta kTimeDelta = base::TimeDelta::FromMilliseconds(100);
+  constexpr base::TimeDelta kTimeDelta = base::Milliseconds(100);
   constexpr int kNumScrollSteps = 4;
   gfx::Point start = GetShelfWidget()->GetWindowBoundsInScreen().CenterPoint();
 
@@ -1892,8 +1892,7 @@
     gfx::Point start(shelf_bounds_in_screen.CenterPoint());
     gfx::Point end(start.x(), shelf_bounds_in_screen.bottom());
     views::WidgetAnimationWaiter waiter(GetShelfWidget(), visible_bounds);
-    generator->GestureScrollSequence(start, end,
-                                     base::TimeDelta::FromMilliseconds(10), 5);
+    generator->GestureScrollSequence(start, end, base::Milliseconds(10), 5);
     EXPECT_EQ(SHELF_AUTO_HIDE, shelf->GetVisibilityState());
     EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->GetAutoHideState());
 
@@ -1931,8 +1930,7 @@
     ui::test::EventGenerator* generator = GetEventGenerator();
 
     views::WidgetAnimationWaiter waiter(GetShelfWidget(), visible_bounds);
-    generator->GestureScrollSequence(start, end,
-                                     base::TimeDelta::FromMilliseconds(10), 1);
+    generator->GestureScrollSequence(start, end, base::Milliseconds(10), 1);
     EXPECT_EQ(SHELF_AUTO_HIDE, shelf->GetVisibilityState());
     EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->GetAutoHideState());
     waiter.WaitForAnimation();
@@ -1976,7 +1974,7 @@
 
     // Now swipe down to the endpoint.
     generator->GestureScrollSequence(start, endpoint_below_target,
-                                     base::TimeDelta::FromMilliseconds(10), 1);
+                                     base::Milliseconds(10), 1);
     EXPECT_EQ(SHELF_AUTO_HIDE, shelf->GetVisibilityState());
     EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->GetAutoHideState());
 
@@ -2030,7 +2028,7 @@
     // Now swipe down to the endpoint.
     views::WidgetAnimationWaiter waiter2(GetShelfWidget(), auto_hidden_bounds);
     generator->GestureScrollSequence(start, endpoint_above_target,
-                                     base::TimeDelta::FromMilliseconds(10), 1);
+                                     base::Milliseconds(10), 1);
     EXPECT_EQ(SHELF_AUTO_HIDE, shelf->GetVisibilityState());
     EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->GetAutoHideState());
     waiter2.WaitForAnimation();
@@ -2477,7 +2475,7 @@
   // reproduction procedures.
   delta_y = -ShelfConfig::Get()->shelf_size() - 1;
 
-  timestamp += base::TimeDelta::FromMilliseconds(200);
+  timestamp += base::Milliseconds(200);
   ui::GestureEvent update_event = ui::GestureEvent(
       gesture_location.x(), gesture_location.y(), ui::EF_NONE, timestamp,
       ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_UPDATE, 0, delta_y));
@@ -2491,7 +2489,7 @@
   // Release the press.
   delta_y -= 1;
   gesture_location.Offset(0, delta_y);
-  timestamp += base::TimeDelta::FromMilliseconds(200);
+  timestamp += base::Milliseconds(200);
   ui::GestureEvent scroll_end_event = ui::GestureEvent(
       gesture_location.x(), gesture_location.y(), ui::EF_NONE, timestamp,
       ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_END));
@@ -2533,7 +2531,7 @@
       ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_BEGIN, 0, delta_y));
   GetPrimaryShelf()->shelf_widget()->OnGestureEvent(&start_event);
   delta_y = -5;
-  timestamp += base::TimeDelta::FromMilliseconds(200);
+  timestamp += base::Milliseconds(200);
   ui::GestureEvent update_event = ui::GestureEvent(
       gesture_location.x(), gesture_location.y(), ui::EF_NONE, timestamp,
       ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_UPDATE, 0, delta_y));
@@ -2549,7 +2547,7 @@
   // End the gesture event.
   delta_y -= 1;
   gesture_location.Offset(0, delta_y);
-  timestamp += base::TimeDelta::FromMilliseconds(200);
+  timestamp += base::Milliseconds(200);
   ui::GestureEvent scroll_end_event = ui::GestureEvent(
       gesture_location.x(), gesture_location.y(), ui::EF_NONE, timestamp,
       ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_END));
@@ -2639,8 +2637,7 @@
           const gfx::Point start(display_bounds.bottom_center());
           const gfx::Point end(start + gfx::Vector2d(x_offset, -y_offset));
           generator->GestureScrollSequence(
-              start, end, base::TimeDelta::FromMilliseconds(time_delta),
-              num_scroll_steps);
+              start, end, base::Milliseconds(time_delta), num_scroll_steps);
           EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->GetAutoHideState())
               << "Failure to show shelf after a swipe up in " << time_delta
               << "ms, " << num_scroll_steps << " steps, " << x_offset
diff --git a/ash/shelf/shelf_navigation_widget.cc b/ash/shelf/shelf_navigation_widget.cc
index afe4a179..9c47cab 100644
--- a/ash/shelf/shelf_navigation_widget.cc
+++ b/ash/shelf/shelf_navigation_widget.cc
@@ -41,7 +41,7 @@
 
 // The duration of the back button opacity animation.
 constexpr base::TimeDelta kButtonOpacityAnimationDuration =
-    base::TimeDelta::FromMilliseconds(50);
+    base::Milliseconds(50);
 
 // Returns the bounds for the first button shown in this view (the back
 // button in tablet mode, the home button otherwise).
@@ -568,7 +568,7 @@
   // Use the same duration for all parts of the upcoming animation.
   const base::TimeDelta animation_duration =
       animate ? ShelfConfig::Get()->shelf_animation_duration()
-              : base::TimeDelta::FromMilliseconds(0);
+              : base::Milliseconds(0);
 
   const HotseatState target_hotseat_state =
       layout_manager->CalculateHotseatState(layout_manager->visibility_state(),
diff --git a/ash/shelf/shelf_tooltip_manager.cc b/ash/shelf/shelf_tooltip_manager.cc
index 1a3a6f9..4366f54 100644
--- a/ash/shelf/shelf_tooltip_manager.cc
+++ b/ash/shelf/shelf_tooltip_manager.cc
@@ -96,7 +96,7 @@
 
 void ShelfTooltipManager::ShowTooltipWithDelay(views::View* view) {
   if (ShouldShowTooltipForView(view)) {
-    timer_.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(timer_delay_),
+    timer_.Start(FROM_HERE, base::Milliseconds(timer_delay_),
                  base::BindOnce(&ShelfTooltipManager::ShowTooltip,
                                 weak_factory_.GetWeakPtr(), view));
   }
diff --git a/ash/shelf/shelf_tooltip_preview_bubble.cc b/ash/shelf/shelf_tooltip_preview_bubble.cc
index 13f6326c..615e339 100644
--- a/ash/shelf/shelf_tooltip_preview_bubble.cc
+++ b/ash/shelf/shelf_tooltip_preview_bubble.cc
@@ -102,10 +102,10 @@
 }
 
 void ShelfTooltipPreviewBubble::DismissAfterDelay() {
-  dismiss_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(kPreviewBubbleDismissDelay),
-      base::BindOnce(&ShelfTooltipPreviewBubble::Dismiss,
-                     base::Unretained(this)));
+  dismiss_timer_.Start(FROM_HERE,
+                       base::Milliseconds(kPreviewBubbleDismissDelay),
+                       base::BindOnce(&ShelfTooltipPreviewBubble::Dismiss,
+                                      base::Unretained(this)));
 }
 
 void ShelfTooltipPreviewBubble::Dismiss() {
diff --git a/ash/shelf/shelf_view.cc b/ash/shelf/shelf_view.cc
index 95cd9b1..2412d18 100644
--- a/ash/shelf/shelf_view.cc
+++ b/ash/shelf/shelf_view.cc
@@ -124,8 +124,7 @@
   explicit BoundsAnimatorDisabler(views::BoundsAnimator* bounds_animator)
       : old_duration_(bounds_animator->GetAnimationDuration()),
         bounds_animator_(bounds_animator) {
-    bounds_animator_->SetAnimationDuration(
-        base::TimeDelta::FromMilliseconds(1));
+    bounds_animator_->SetAnimationDuration(base::Milliseconds(1));
   }
 
   BoundsAnimatorDisabler(const BoundsAnimatorDisabler&) = delete;
@@ -763,7 +762,7 @@
       FROM_HERE,
       base::BindOnce(&ShelfView::DestroyScopedDisplay,
                      weak_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(100));
+      base::Milliseconds(100));
 
   // Slow down activation animations if Control key is pressed.
   std::unique_ptr<ui::ScopedAnimationDurationScaleMode> slowing_animations;
diff --git a/ash/shelf/shelf_view_unittest.cc b/ash/shelf/shelf_view_unittest.cc
index 1bfcb867..6db6d044 100644
--- a/ash/shelf/shelf_view_unittest.cc
+++ b/ash/shelf/shelf_view_unittest.cc
@@ -205,8 +205,7 @@
     observer_ = std::make_unique<TestShelfObserver>(GetPrimaryShelf());
     shelf_view_test_ = std::make_unique<ShelfViewTestAPI>(
         GetPrimaryShelf()->GetShelfViewForTesting());
-    shelf_view_test_->SetAnimationDuration(
-        base::TimeDelta::FromMilliseconds(1));
+    shelf_view_test_->SetAnimationDuration(base::Milliseconds(1));
   }
 
   void TearDown() override {
@@ -372,7 +371,7 @@
               500);
 
     test_api_ = std::make_unique<ShelfViewTestAPI>(shelf_view_);
-    test_api_->SetAnimationDuration(base::TimeDelta::FromMilliseconds(1));
+    test_api_->SetAnimationDuration(base::Milliseconds(1));
 
     // Add a browser shortcut shelf item, as chrome does, for testing.
     AddItem(TYPE_BROWSER_SHORTCUT, true);
@@ -1542,7 +1541,7 @@
   ShelfID second_app_id = AddAppShortcut();
 
   // Set the animation duration for shelf items.
-  test_api_->SetAnimationDuration(base::TimeDelta::FromMilliseconds(100));
+  test_api_->SetAnimationDuration(base::Milliseconds(100));
 
   // The shelf items should animate if they are moved within the shelf, either
   // by swapping or if the items need to be rearranged due to an item getting
@@ -1868,8 +1867,7 @@
   EXPECT_FALSE(shelf_view_->drag_view());
   EXPECT_TRUE(button->state() & ShelfAppButton::STATE_DRAGGING);
 
-  generator->GestureScrollSequence(start, end,
-                                   base::TimeDelta::FromMilliseconds(100), 3);
+  generator->GestureScrollSequence(start, end, base::Milliseconds(100), 3);
   generator->ReleaseTouch();
 
   // |first_add_id| has been moved to the end of the items in the shelf.
@@ -1941,8 +1939,7 @@
   EXPECT_FALSE(shelf_view_->drag_view());
   EXPECT_TRUE(button->state() & ShelfAppButton::STATE_DRAGGING);
 
-  generator->GestureScrollSequence(start, end,
-                                   base::TimeDelta::FromMilliseconds(100), 3);
+  generator->GestureScrollSequence(start, end, base::Milliseconds(100), 3);
   generator->ReleaseTouch();
 
   // |first_add_id| has been moved to the end of the items in the shelf.
@@ -3181,11 +3178,11 @@
   GetEventGenerator()->PressTouch(app_icon1_center_point);
 
   // Fast forward to generate the ET_GESTURE_SHOW_PRESS event.
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(200));
+  task_environment()->FastForwardBy(base::Milliseconds(200));
 
   // Fast forward to generate the ET_GESTURE_LONG_PRESS event to show the
   // context menu.
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(1000));
+  task_environment()->FastForwardBy(base::Milliseconds(1000));
   ASSERT_TRUE(shelf_view_->IsShowingMenu());
 
   // Mouse click at `app_icon2_` while gesture pressing `app_icon1_`.
@@ -3217,7 +3214,7 @@
   GetEventGenerator()->PressTouch(app_icon1_center_point);
 
   // Fast forward to generate the ET_GESTURE_SHOW_PRESS event.
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(200));
+  task_environment()->FastForwardBy(base::Milliseconds(200));
 
   // Mouse click at `app_icon2_` while gesture pressing `app_icon1_`. Note that
   // we do not need to release the touch on `app_icon1_` because the gesture
@@ -3227,7 +3224,7 @@
   GetEventGenerator()->ClickLeftButton();
 
   // Fast forward until the callback is executed.
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(200));
+  task_environment()->FastForwardBy(base::Milliseconds(200));
 
   EXPECT_FALSE(shelf_view_->IsShowingMenu());
   EXPECT_EQ(views::InkDropState::HIDDEN, GetInkDropStateOfAppIcon1());
diff --git a/ash/shelf/swipe_home_to_overview_controller.cc b/ash/shelf/swipe_home_to_overview_controller.cc
index 971cbda..ff69ef8 100644
--- a/ash/shelf/swipe_home_to_overview_controller.cc
+++ b/ash/shelf/swipe_home_to_overview_controller.cc
@@ -43,18 +43,16 @@
 
 // The amount of time the drag has to remain bellow velocity threshold before
 // the transition to the overview starts.
-constexpr base::TimeDelta kOverviewTransitionDelay =
-    base::TimeDelta::FromMilliseconds(150);
+constexpr base::TimeDelta kOverviewTransitionDelay = base::Milliseconds(150);
 
 // The duration of transition from the home screen current scaled state to the
 // initial (unscaled) state when the gesture is canceled.
-constexpr base::TimeDelta kGestureCancelationDuration =
-    base::TimeDelta::FromMilliseconds(350);
+constexpr base::TimeDelta kGestureCancelationDuration = base::Milliseconds(350);
 
 // The duration of transition from the home screen current scaled state to the
 // initial (unscaled) state when the gesture is canceled due to a back gesture.
 constexpr base::TimeDelta kGestureCancelationForBackDuration =
-    base::TimeDelta::FromMilliseconds(250);
+    base::Milliseconds(250);
 
 void UpdateHomeAnimationForGestureCancel(
     bool going_back,
diff --git a/ash/shelf/swipe_home_to_overview_controller_unittest.cc b/ash/shelf/swipe_home_to_overview_controller_unittest.cc
index 9258b391..65fad31e 100644
--- a/ash/shelf/swipe_home_to_overview_controller_unittest.cc
+++ b/ash/shelf/swipe_home_to_overview_controller_unittest.cc
@@ -63,7 +63,7 @@
     base::RunLoop().RunUntilIdle();
 
     // Advance tick clock by arbitrary non-zero amount.
-    tick_clock_.Advance(base::TimeDelta::FromSeconds(1000));
+    tick_clock_.Advance(base::Seconds(1000));
   }
   void TearDown() override {
     home_to_overview_controller_.reset();
@@ -118,8 +118,8 @@
 
     // Ensure there is one more frame presented after animation finishes
     // to allow animation throughput data is passed from cc to ui.
-    ignore_result(ui::WaitForNextFrameToBePresented(
-        compositor, base::TimeDelta::FromMilliseconds(200)));
+    ignore_result(
+        ui::WaitForNextFrameToBePresented(compositor, base::Milliseconds(200)));
   }
 
   void TapOnHomeLauncherSearchBox() {
@@ -180,8 +180,8 @@
     constexpr int steps = 12;
     int update_count = 0;
     GetEventGenerator()->GestureScrollSequenceWithCallback(
-        gesture_start_point, gesture_end_point,
-        base::TimeDelta::FromMilliseconds(100), /*steps=*/steps,
+        gesture_start_point, gesture_end_point, base::Milliseconds(100),
+        /*steps=*/steps,
         base::BindRepeating(
             [](int* update_count, ui::EventType event_type,
                const gfx::Vector2dF& delta) {
@@ -518,7 +518,7 @@
       SwipeHomeToOverviewController::kMovementVelocityThreshold;
   // Advance clock, and simulate another drag whose speed is above the max
   // allowed.
-  tick_clock_.Advance(base::TimeDelta::FromMilliseconds(1));
+  tick_clock_.Advance(base::Milliseconds(1));
   Drag(shelf_bounds.top_center() - gfx::Vector2d(0, 2 * transition_threshold),
        0.f, max_allowed_velocity + 10);
 
@@ -526,7 +526,7 @@
   EXPECT_FALSE(OverviewTransitionTimerRunning());
   EXPECT_FALSE(OverviewStarted());
 
-  tick_clock_.Advance(base::TimeDelta::FromMilliseconds(1));
+  tick_clock_.Advance(base::Milliseconds(1));
 
   // Another slow drag should restart the timer.
   Drag(shelf_bounds.top_center() - gfx::Vector2d(0, 2 * transition_threshold),
@@ -572,7 +572,7 @@
 
   // Advance clock, and simulate another drag, for an amount below the movement
   // threshold.
-  tick_clock_.Advance(base::TimeDelta::FromMilliseconds(1));
+  tick_clock_.Advance(base::Milliseconds(1));
   Drag(shelf_bounds.top_center() -
            gfx::Vector2d(0, transition_threshold + movement_threshold - 1),
        0.f, movement_threshold / 2);
@@ -581,7 +581,7 @@
   EXPECT_TRUE(OverviewTransitionTimerRunning());
   EXPECT_FALSE(OverviewStarted());
 
-  EXPECT_EQ(delay - base::TimeDelta::FromMilliseconds(1),
+  EXPECT_EQ(delay - base::Milliseconds(1),
             GetTimerDesiredRunTime() - tick_clock_.NowTicks());
 
   // Movement with velocity above the allowed threshold restarts the timer.
diff --git a/ash/shelf/test/shelf_layout_manager_test_base.cc b/ash/shelf/test/shelf_layout_manager_test_base.cc
index 6664c69..983f71e6 100644
--- a/ash/shelf/test/shelf_layout_manager_test_base.cc
+++ b/ash/shelf/test/shelf_layout_manager_test_base.cc
@@ -256,7 +256,7 @@
 }
 
 void ShelfLayoutManagerTestBase::IncreaseTimestamp() {
-  timestamp_ += base::TimeDelta::FromMilliseconds(25);
+  timestamp_ += base::Milliseconds(25);
 }
 
 WorkspaceWindowState ShelfLayoutManagerTestBase::GetWorkspaceWindowState()
@@ -296,7 +296,7 @@
       display::Screen::GetScreen()->GetPrimaryDisplay().bounds();
   const gfx::Point start(display_bounds.bottom_center());
   const gfx::Point end(start + gfx::Vector2d(0, -80));
-  const base::TimeDelta kTimeDelta = base::TimeDelta::FromMilliseconds(100);
+  const base::TimeDelta kTimeDelta = base::Milliseconds(100);
   const int kNumScrollSteps = 4;
   GetEventGenerator()->GestureScrollSequence(start, end, kTimeDelta,
                                              kNumScrollSteps);
@@ -309,7 +309,7 @@
                        ->GetBoundsInScreen()
                        .top_center());
   const gfx::Point end(start + gfx::Vector2d(0, 40));
-  const base::TimeDelta kTimeDelta = base::TimeDelta::FromMilliseconds(100);
+  const base::TimeDelta kTimeDelta = base::Milliseconds(100);
   const int kNumScrollSteps = 4;
   GetEventGenerator()->GestureScrollSequence(start, end, kTimeDelta,
                                              kNumScrollSteps);
@@ -320,7 +320,7 @@
       display::Screen::GetScreen()->GetPrimaryDisplay().bounds();
   const gfx::Point start(display_bounds.bottom_center());
   const gfx::Point end(start.x(), 10);
-  const base::TimeDelta kTimeDelta = base::TimeDelta::FromMilliseconds(10);
+  const base::TimeDelta kTimeDelta = base::Milliseconds(10);
   const int kNumScrollSteps = 4;
   GetEventGenerator()->GestureScrollSequence(start, end, kTimeDelta,
                                              kNumScrollSteps);
@@ -334,7 +334,7 @@
   const gfx::Point end =
       gfx::Point(shelf_widget_bounds.x() + shelf_widget_bounds.width() / 2,
                  shelf_widget_bounds.bottom() + 1);
-  const base::TimeDelta kTimeDelta = base::TimeDelta::FromMilliseconds(100);
+  const base::TimeDelta kTimeDelta = base::Milliseconds(100);
   const int kNumScrollSteps = 4;
   GetEventGenerator()->GestureScrollSequence(start, end, kTimeDelta,
                                              kNumScrollSteps);
@@ -400,7 +400,7 @@
   widget->Maximize();
 
   // The time delta should be large enough to prevent accidental fling creation.
-  const base::TimeDelta kTimeDelta = base::TimeDelta::FromMilliseconds(100);
+  const base::TimeDelta kTimeDelta = base::Milliseconds(100);
 
   aura::Window* window = widget->GetNativeWindow();
   ShelfLayoutManager* layout_manager = GetShelfLayoutManager();
diff --git a/ash/shelf/window_scale_animation.cc b/ash/shelf/window_scale_animation.cc
index 2049556..b1a0c498 100644
--- a/ash/shelf/window_scale_animation.cc
+++ b/ash/shelf/window_scale_animation.cc
@@ -27,12 +27,10 @@
 
 // The time to do window transform to scale up to its original position or
 // scale down to homescreen animation.
-constexpr base::TimeDelta kWindowScaleUpOrDownTime =
-    base::TimeDelta::FromMilliseconds(350);
+constexpr base::TimeDelta kWindowScaleUpOrDownTime = base::Milliseconds(350);
 
 // The delay to do window opacity fade out when scaling down the dragged window.
-constexpr base::TimeDelta kWindowFadeOutDelay =
-    base::TimeDelta::FromMilliseconds(100);
+constexpr base::TimeDelta kWindowFadeOutDelay = base::Milliseconds(100);
 
 // The window scale down factor if we head to home screen after drag ends.
 constexpr float kWindowScaleDownFactor = 0.001f;
diff --git a/ash/shortcut_viewer/views/keyboard_shortcut_view.cc b/ash/shortcut_viewer/views/keyboard_shortcut_view.cc
index 07d69ce..24f9724b 100644
--- a/ash/shortcut_viewer/views/keyboard_shortcut_view.cc
+++ b/ash/shortcut_viewer/views/keyboard_shortcut_view.cc
@@ -332,7 +332,7 @@
 
   // TODO(wutao): This timeout value is chosen based on subjective search
   // latency tests on Minnie. Objective method or UMA is desired.
-  constexpr base::TimeDelta kTimeOut(base::TimeDelta::FromMilliseconds(250));
+  constexpr base::TimeDelta kTimeOut(base::Milliseconds(250));
   debounce_timer_.Start(
       FROM_HERE, kTimeOut,
       base::BindOnce(&KeyboardShortcutView::ShowSearchResults,
diff --git a/ash/shortcut_viewer/views/keyboard_shortcut_view_unittest.cc b/ash/shortcut_viewer/views/keyboard_shortcut_view_unittest.cc
index 9feb12b..0d09ae2 100644
--- a/ash/shortcut_viewer/views/keyboard_shortcut_view_unittest.cc
+++ b/ash/shortcut_viewer/views/keyboard_shortcut_view_unittest.cc
@@ -264,7 +264,7 @@
   EXPECT_TRUE(GetFoundShortcutItems().empty());
   // Type a letter and show the search results.
   KeyPress(ui::VKEY_A, /*should_insert=*/true);
-  auto time_out = base::TimeDelta::FromMilliseconds(300);
+  auto time_out = base::Milliseconds(300);
   task_environment()->FastForwardBy(time_out);
   base::RunLoop().RunUntilIdle();
   EXPECT_FALSE(GetFoundShortcutItems().empty());
diff --git a/ash/system/accessibility/autoclick_menu_bubble_controller.cc b/ash/system/accessibility/autoclick_menu_bubble_controller.cc
index b2b5aaf..2e99aa88 100644
--- a/ash/system/accessibility/autoclick_menu_bubble_controller.cc
+++ b/ash/system/accessibility/autoclick_menu_bubble_controller.cc
@@ -109,8 +109,7 @@
       bubble_widget_->GetLayer()->GetAnimator());
   settings.SetPreemptionStrategy(
       ui::LayerAnimator::IMMEDIATELY_ANIMATE_TO_NEW_TARGET);
-  settings.SetTransitionDuration(
-      base::TimeDelta::FromMilliseconds(kAnimationDurationMs));
+  settings.SetTransitionDuration(base::Milliseconds(kAnimationDurationMs));
   settings.SetTweenType(gfx::Tween::EASE_OUT);
   bubble_widget_->SetBounds(resting_bounds);
 
diff --git a/ash/system/accessibility/autoclick_scroll_view.cc b/ash/system/accessibility/autoclick_scroll_view.cc
index e505ea1b..1c67b56 100644
--- a/ash/system/accessibility/autoclick_scroll_view.cc
+++ b/ash/system/accessibility/autoclick_scroll_view.cc
@@ -135,7 +135,7 @@
     SetFlipCanvasOnPaintForRTLUI(false);
     scroll_hover_timer_ = std::make_unique<base::RetainingOneShotTimer>(
         FROM_HERE,
-        base::TimeDelta::FromMilliseconds(
+        base::Milliseconds(
             int64_t{AutoclickScrollView::kAutoclickScrollDelayMs}),
         base::BindRepeating(&AutoclickScrollButton::DoScrollAction,
                             base::Unretained(this)));
@@ -350,8 +350,8 @@
       GetWidget()->GetLayer()->GetAnimator());
   settings.SetPreemptionStrategy(
       ui::LayerAnimator::IMMEDIATELY_ANIMATE_TO_NEW_TARGET);
-  settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(
-      AutoclickMenuBubbleController::kAnimationDurationMs));
+  settings.SetTransitionDuration(
+      base::Milliseconds(AutoclickMenuBubbleController::kAnimationDurationMs));
   settings.SetTweenType(gfx::Tween::EASE_OUT);
   // SetAnchorRect will resize, so set the arrow without reizing to avoid a
   // double animation.
diff --git a/ash/system/accessibility/floating_accessibility_controller.cc b/ash/system/accessibility/floating_accessibility_controller.cc
index 8b5ee9f2..74daa88 100644
--- a/ash/system/accessibility/floating_accessibility_controller.cc
+++ b/ash/system/accessibility/floating_accessibility_controller.cc
@@ -26,8 +26,7 @@
 namespace {
 
 constexpr int kFloatingMenuHeight = 64;
-constexpr base::TimeDelta kAnimationDuration =
-    base::TimeDelta::FromMilliseconds(150);
+constexpr base::TimeDelta kAnimationDuration = base::Milliseconds(150);
 
 }  // namespace
 
diff --git a/ash/system/accessibility/floating_accessibility_detailed_controller.cc b/ash/system/accessibility/floating_accessibility_detailed_controller.cc
index c6032b9..2ab6461 100644
--- a/ash/system/accessibility/floating_accessibility_detailed_controller.cc
+++ b/ash/system/accessibility/floating_accessibility_detailed_controller.cc
@@ -24,8 +24,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kAnimationDuration =
-    base::TimeDelta::FromMilliseconds(150);
+constexpr base::TimeDelta kAnimationDuration = base::Milliseconds(150);
 constexpr int kDetailedViewHeightDip = 350;
 
 }  // namespace
diff --git a/ash/system/bluetooth/bluetooth_power_controller.cc b/ash/system/bluetooth/bluetooth_power_controller.cc
index 9d2beab..fb81f28 100644
--- a/ash/system/bluetooth/bluetooth_power_controller.cc
+++ b/ash/system/bluetooth/bluetooth_power_controller.cc
@@ -176,7 +176,7 @@
         base::BindOnce(
             &BluetoothPowerController::TriggerRunPendingBluetoothTasks,
             weak_ptr_factory_.GetWeakPtr()),
-        base::TimeDelta::FromMilliseconds(kBluetoothInitializationDelay));
+        base::Milliseconds(kBluetoothInitializationDelay));
   }
 }
 
diff --git a/ash/system/bluetooth/tray_bluetooth_helper.cc b/ash/system/bluetooth/tray_bluetooth_helper.cc
index 937d453..e59e3696 100644
--- a/ash/system/bluetooth/tray_bluetooth_helper.cc
+++ b/ash/system/bluetooth/tray_bluetooth_helper.cc
@@ -12,8 +12,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kUpdateFrequencyMs =
-    base::TimeDelta::FromMilliseconds(1000);
+constexpr base::TimeDelta kUpdateFrequencyMs = base::Milliseconds(1000);
 
 }  // namespace
 
diff --git a/ash/system/bluetooth/unified_bluetooth_detailed_view_controller_unittest.cc b/ash/system/bluetooth/unified_bluetooth_detailed_view_controller_unittest.cc
index 2db80db6..f3da1517 100644
--- a/ash/system/bluetooth/unified_bluetooth_detailed_view_controller_unittest.cc
+++ b/ash/system/bluetooth/unified_bluetooth_detailed_view_controller_unittest.cc
@@ -21,8 +21,7 @@
 
 namespace {
 
-const base::TimeDelta kUpdateFrequencyMs =
-    base::TimeDelta::FromMilliseconds(1000);
+const base::TimeDelta kUpdateFrequencyMs = base::Milliseconds(1000);
 
 }  // namespace
 
diff --git a/ash/system/holding_space/holding_space_item_chip_view.cc b/ash/system/holding_space/holding_space_item_chip_view.cc
index a7781a0..fe11f0c 100644
--- a/ash/system/holding_space/holding_space_item_chip_view.cc
+++ b/ash/system/holding_space/holding_space_item_chip_view.cc
@@ -55,7 +55,7 @@
 
 // Animation.
 constexpr base::TimeDelta kInProgressImageScaleDuration =
-    base::TimeDelta::FromMilliseconds(150);
+    base::Milliseconds(150);
 constexpr float kInProgressImageScaleFactor = 0.7f;
 
 // Helpers ---------------------------------------------------------------------
diff --git a/ash/system/holding_space/holding_space_item_views_section.cc b/ash/system/holding_space/holding_space_item_views_section.cc
index b9960f8..2c56f08 100644
--- a/ash/system/holding_space/holding_space_item_views_section.cc
+++ b/ash/system/holding_space/holding_space_item_views_section.cc
@@ -30,8 +30,7 @@
 using ScrollBarMode = views::ScrollView::ScrollBarMode;
 
 // Animation.
-constexpr base::TimeDelta kAnimationDuration =
-    base::TimeDelta::FromMilliseconds(167);
+constexpr base::TimeDelta kAnimationDuration = base::Milliseconds(167);
 
 // Helpers ---------------------------------------------------------------------
 
diff --git a/ash/system/holding_space/holding_space_progress_ring_indeterminate_animation.cc b/ash/system/holding_space/holding_space_progress_ring_indeterminate_animation.cc
index 31e5181..65240f5 100644
--- a/ash/system/holding_space/holding_space_progress_ring_indeterminate_animation.cc
+++ b/ash/system/holding_space/holding_space_progress_ring_indeterminate_animation.cc
@@ -13,7 +13,7 @@
 // fraction to update animatable properties. That being the case, this value
 // doesn't really matter but is chosen to be on the order of minutes to minimize
 // overhead that may occur during cyclic animation restart.
-constexpr base::TimeDelta kAnimationDuration = base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kAnimationDuration = base::Minutes(1);
 
 // Helpers ---------------------------------------------------------------------
 
diff --git a/ash/system/holding_space/holding_space_progress_ring_pulse_animation.cc b/ash/system/holding_space/holding_space_progress_ring_pulse_animation.cc
index f0d22a4..defbf62 100644
--- a/ash/system/holding_space/holding_space_progress_ring_pulse_animation.cc
+++ b/ash/system/holding_space/holding_space_progress_ring_pulse_animation.cc
@@ -42,7 +42,7 @@
 HoldingSpaceProgressRingPulseAnimation::HoldingSpaceProgressRingPulseAnimation()
     : HoldingSpaceProgressRingAnimation(
           Type::kPulse,
-          base::TimeDelta::FromMilliseconds(kAnimationDurationInMs),
+          base::Milliseconds(kAnimationDurationInMs),
           /*is_cyclic=*/false) {
 #if DCHECK_IS_ON()
   constexpr size_t kAnimationKeyFramesCount = base::size(kAnimationKeyFrames);
diff --git a/ash/system/holding_space/holding_space_tray.cc b/ash/system/holding_space/holding_space_tray.cc
index 63d1aac8..7f0f394 100644
--- a/ash/system/holding_space/holding_space_tray.cc
+++ b/ash/system/holding_space/holding_space_tray.cc
@@ -55,8 +55,7 @@
 using ::ui::mojom::DragOperation;
 
 // Animation.
-constexpr base::TimeDelta kAnimationDuration =
-    base::TimeDelta::FromMilliseconds(167);
+constexpr base::TimeDelta kAnimationDuration = base::Milliseconds(167);
 
 // Helpers ---------------------------------------------------------------------
 
@@ -681,7 +680,7 @@
   // previews so items added in quick succession are handled together.
   base::TimeDelta delay = use_zero_previews_update_delay_
                               ? base::TimeDelta()
-                              : base::TimeDelta::FromMilliseconds(50);
+                              : base::Milliseconds(50);
   previews_update_.Start(FROM_HERE, delay,
                          base::BindOnce(&HoldingSpaceTray::UpdatePreviewsIcon,
                                         base::Unretained(this)));
diff --git a/ash/system/holding_space/holding_space_tray_bubble.cc b/ash/system/holding_space/holding_space_tray_bubble.cc
index 523e3b814..61e2cd8 100644
--- a/ash/system/holding_space/holding_space_tray_bubble.cc
+++ b/ash/system/holding_space/holding_space_tray_bubble.cc
@@ -38,8 +38,7 @@
 namespace {
 
 // Animation.
-constexpr base::TimeDelta kAnimationDuration =
-    base::TimeDelta::FromMilliseconds(167);
+constexpr base::TimeDelta kAnimationDuration = base::Milliseconds(167);
 
 // Helpers ---------------------------------------------------------------------
 
diff --git a/ash/system/holding_space/holding_space_tray_child_bubble.cc b/ash/system/holding_space/holding_space_tray_child_bubble.cc
index c6abf84..7bb013e 100644
--- a/ash/system/holding_space/holding_space_tray_child_bubble.cc
+++ b/ash/system/holding_space/holding_space_tray_child_bubble.cc
@@ -25,8 +25,7 @@
 namespace {
 
 // Animation.
-constexpr base::TimeDelta kAnimationDuration =
-    base::TimeDelta::FromMilliseconds(167);
+constexpr base::TimeDelta kAnimationDuration = base::Milliseconds(167);
 
 // Helpers ---------------------------------------------------------------------
 
diff --git a/ash/system/holding_space/holding_space_tray_icon.cc b/ash/system/holding_space/holding_space_tray_icon.cc
index a7692cd..0e6a5a4d 100644
--- a/ash/system/holding_space/holding_space_tray_icon.cc
+++ b/ash/system/holding_space/holding_space_tray_icon.cc
@@ -42,7 +42,7 @@
 // The previews are animated in and shifted with a delay that increases
 // incrementally. This is the delay increment.
 constexpr base::TimeDelta kPreviewItemUpdateDelayIncrement =
-    base::TimeDelta::FromMilliseconds(50);
+    base::Milliseconds(50);
 
 // Helpers ---------------------------------------------------------------------
 
@@ -79,7 +79,7 @@
     animation_.SetTweenType(gfx::Tween::FAST_OUT_SLOW_IN);
     animation_.SetSlideDuration(
         ui::ScopedAnimationDurationScaleMode::duration_multiplier() *
-        base::TimeDelta::FromMilliseconds(250));
+        base::Milliseconds(250));
   }
   ResizeAnimation(const ResizeAnimation&) = delete;
   ResizeAnimation operator=(const ResizeAnimation&) = delete;
diff --git a/ash/system/holding_space/holding_space_tray_icon_preview.cc b/ash/system/holding_space/holding_space_tray_icon_preview.cc
index e18d109a..39b6832 100644
--- a/ash/system/holding_space/holding_space_tray_icon_preview.cc
+++ b/ash/system/holding_space/holding_space_tray_icon_preview.cc
@@ -38,16 +38,14 @@
 
 // The duration of each of the preview icon bounce animation.
 constexpr base::TimeDelta kBounceAnimationSegmentDuration =
-    base::TimeDelta::FromMilliseconds(250);
+    base::Milliseconds(250);
 
 // The delay with which preview icon is dropped into the holding space tray
 // icon.
-constexpr base::TimeDelta kBounceAnimationBaseDelay =
-    base::TimeDelta::FromMilliseconds(150);
+constexpr base::TimeDelta kBounceAnimationBaseDelay = base::Milliseconds(150);
 
 // The duration of shift animation.
-constexpr base::TimeDelta kShiftAnimationDuration =
-    base::TimeDelta::FromMilliseconds(250);
+constexpr base::TimeDelta kShiftAnimationDuration = base::Milliseconds(250);
 
 // Helpers ---------------------------------------------------------------------
 
diff --git a/ash/system/machine_learning/user_settings_event_logger.cc b/ash/system/machine_learning/user_settings_event_logger.cc
index 9198350..2da73a19 100644
--- a/ash/system/machine_learning/user_settings_event_logger.cc
+++ b/ash/system/machine_learning/user_settings_event_logger.cc
@@ -276,7 +276,7 @@
     --presenting_session_count_;
     DCHECK_GE(presenting_session_count_, 0);
     if (presenting_session_count_ == 0) {
-      presenting_timer_.Start(FROM_HERE, base::TimeDelta::FromMinutes(5), this,
+      presenting_timer_.Start(FROM_HERE, base::Minutes(5), this,
                               &UserSettingsEventLogger::OnPresentingTimerEnded);
     }
   }
@@ -295,7 +295,7 @@
     is_recently_fullscreen_ = true;
     fullscreen_timer_.Stop();
   } else {
-    fullscreen_timer_.Start(FROM_HERE, base::TimeDelta::FromMinutes(5), this,
+    fullscreen_timer_.Start(FROM_HERE, base::Minutes(5), this,
                             &UserSettingsEventLogger::OnFullscreenTimerEnded);
   }
 }
diff --git a/ash/system/machine_learning/user_settings_event_logger.h b/ash/system/machine_learning/user_settings_event_logger.h
index 6adc35b6..3c69f77 100644
--- a/ash/system/machine_learning/user_settings_event_logger.h
+++ b/ash/system/machine_learning/user_settings_event_logger.h
@@ -24,7 +24,7 @@
 namespace ash {
 namespace ml {
 
-static constexpr base::TimeDelta kSliderDelay = base::TimeDelta::FromSeconds(1);
+static constexpr base::TimeDelta kSliderDelay = base::Seconds(1);
 
 // This class handles logging for settings changes that are initiated by the
 // user from the quick settings tray. Exported for tests.
diff --git a/ash/system/machine_learning/user_settings_event_logger_unittest.cc b/ash/system/machine_learning/user_settings_event_logger_unittest.cc
index 3ab024b8..e65bbb11 100644
--- a/ash/system/machine_learning/user_settings_event_logger_unittest.cc
+++ b/ash/system/machine_learning/user_settings_event_logger_unittest.cc
@@ -112,7 +112,7 @@
 
  protected:
   void FastForwardBySeconds(const int seconds) {
-    task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(seconds));
+    task_environment()->FastForwardBy(base::Seconds(seconds));
   }
 
   std::vector<const ukm::mojom::UkmEntry*> GetUkmEntries() {
diff --git a/ash/system/media/unified_media_controls_controller.cc b/ash/system/media/unified_media_controls_controller.cc
index f622cfd..a6c11a3 100644
--- a/ash/system/media/unified_media_controls_controller.cc
+++ b/ash/system/media/unified_media_controls_controller.cc
@@ -22,12 +22,10 @@
 constexpr int kDisiredArtworkSize = 48;
 
 // Time to wait for new media session.
-constexpr base::TimeDelta kFreezeControlsTime =
-    base::TimeDelta::FromMilliseconds(2000);
+constexpr base::TimeDelta kFreezeControlsTime = base::Milliseconds(2000);
 
 // Time to wait for new artwork.
-constexpr base::TimeDelta kHideArtworkDelay =
-    base::TimeDelta::FromMilliseconds(2000);
+constexpr base::TimeDelta kHideArtworkDelay = base::Milliseconds(2000);
 
 }  // namespace
 
diff --git a/ash/system/media/unified_media_controls_controller_unittest.cc b/ash/system/media/unified_media_controls_controller_unittest.cc
index dcc48a48..0b226ca2 100644
--- a/ash/system/media/unified_media_controls_controller_unittest.cc
+++ b/ash/system/media/unified_media_controls_controller_unittest.cc
@@ -324,8 +324,7 @@
   artwork.reset();
   controller()->MediaControllerImageChanged(
       media_session::mojom::MediaSessionImageType::kArtwork, artwork);
-  task_environment()->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(kHideArtworkDelay));
+  task_environment()->FastForwardBy(base::Milliseconds(kHideArtworkDelay));
   EXPECT_FALSE(artwork_view()->GetVisible());
 }
 
@@ -350,8 +349,7 @@
 
   // Artwork should still be visible if we are within hide artwork delay
   // time frame.
-  task_environment()->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(kHideArtworkDelay - 1));
+  task_environment()->FastForwardBy(base::Milliseconds(kHideArtworkDelay - 1));
   EXPECT_TRUE(artwork_view()->GetVisible());
 
   // Artwork should be visible after getting an artwork update and the
@@ -362,8 +360,7 @@
   EXPECT_TRUE(artwork_view()->GetVisible());
 
   // Artwork should stay visible.
-  task_environment()->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(kHideArtworkDelay));
+  task_environment()->FastForwardBy(base::Milliseconds(kHideArtworkDelay));
   EXPECT_TRUE(artwork_view()->GetVisible());
 
   // Wait for |kHideartworkDelay| ms after getting an empty artwork,
@@ -371,8 +368,7 @@
   artwork.reset();
   controller()->MediaControllerImageChanged(
       media_session::mojom::MediaSessionImageType::kArtwork, artwork);
-  task_environment()->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(kHideArtworkDelay));
+  task_environment()->FastForwardBy(base::Milliseconds(kHideArtworkDelay));
   EXPECT_FALSE(artwork_view()->GetVisible());
 }
 
@@ -411,18 +407,17 @@
 
   // Still in normal state since we are within waiting delay time frame.
   task_environment()->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(kFreezeControlsTime - 1));
+      base::Milliseconds(kFreezeControlsTime - 1));
   EXPECT_FALSE(IsMediaControlsInEmptyState());
 
   // Session resumes, controls should still be in normal state.
   SimulateNewMediaSessionWithData(request_id);
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_environment()->FastForwardBy(base::Milliseconds(1));
   EXPECT_FALSE(IsMediaControlsInEmptyState());
 
   // Hide controls timer expired, controls should be in empty state.
   controller()->MediaSessionChanged(absl::nullopt);
-  task_environment()->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(kFreezeControlsTime));
+  task_environment()->FastForwardBy(base::Milliseconds(kFreezeControlsTime));
   EXPECT_TRUE(IsMediaControlsInEmptyState());
   EXPECT_TRUE(delegate()->IsControlsVisible());
 }
@@ -453,8 +448,7 @@
 
   // Media controls should be in empty state after getting empty session.
   controller()->MediaSessionChanged(absl::nullopt);
-  task_environment()->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(kFreezeControlsTime));
+  task_environment()->FastForwardBy(base::Milliseconds(kFreezeControlsTime));
 
   EXPECT_TRUE(IsMediaControlsInEmptyState());
 
@@ -505,8 +499,7 @@
   EXPECT_EQ(artwork_view()->background(), nullptr);
 
   controller()->MediaSessionChanged(absl::nullopt);
-  task_environment()->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(kFreezeControlsTime));
+  task_environment()->FastForwardBy(base::Milliseconds(kFreezeControlsTime));
 
   // Artwork view should still be visible and have an background in empty state.
   EXPECT_TRUE(IsMediaControlsInEmptyState());
@@ -637,7 +630,7 @@
 
   // Session resumes within freezing timeout.
   task_environment()->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(kFreezeControlsTime - 1));
+      base::Milliseconds(kFreezeControlsTime - 1));
   controller()->MediaSessionChanged(request_id);
 
   // Media controls should not be updated.
@@ -658,8 +651,7 @@
       media_session::mojom::MediaSessionImageType::kArtwork, artwork);
 
   // Controls should be updated after freeze timeout.
-  task_environment()->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(kFreezeControlsTime));
+  task_environment()->FastForwardBy(base::Milliseconds(kFreezeControlsTime));
   EXPECT_FALSE(
       GetActionButton(MediaSessionAction::kPreviousTrack)->GetVisible());
   EXPECT_EQ(GetActionButton(MediaSessionAction::kPause), nullptr);
diff --git a/ash/system/message_center/ash_notification_view_unittest.cc b/ash/system/message_center/ash_notification_view_unittest.cc
index e9c261c..0e4031f 100644
--- a/ash/system/message_center/ash_notification_view_unittest.cc
+++ b/ash/system/message_center/ash_notification_view_unittest.cc
@@ -183,25 +183,24 @@
 
   EXPECT_TRUE(timestamp_in_collapsed_view()->GetVisible());
 
-  UpdateTimestamp(base::Time::Now() + base::TimeDelta::FromHours(3) +
-                  base::TimeDelta::FromMinutes(30));
+  UpdateTimestamp(base::Time::Now() + base::Hours(3) + base::Minutes(30));
   EXPECT_EQ(l10n_util::GetPluralStringFUTF16(
                 IDS_MESSAGE_NOTIFICATION_DURATION_HOURS_SHORTEST_FUTURE, 3),
             timestamp_in_collapsed_view()->GetText());
 
-  AdvanceClock(base::TimeDelta::FromHours(3));
+  AdvanceClock(base::Hours(3));
 
   EXPECT_EQ(l10n_util::GetPluralStringFUTF16(
                 IDS_MESSAGE_NOTIFICATION_DURATION_MINUTES_SHORTEST_FUTURE, 30),
             timestamp_in_collapsed_view()->GetText());
 
-  AdvanceClock(base::TimeDelta::FromMinutes(30));
+  AdvanceClock(base::Minutes(30));
 
   EXPECT_EQ(
       l10n_util::GetStringUTF16(IDS_MESSAGE_NOTIFICATION_NOW_STRING_SHORTEST),
       timestamp_in_collapsed_view()->GetText());
 
-  AdvanceClock(base::TimeDelta::FromDays(2));
+  AdvanceClock(base::Days(2));
 
   EXPECT_EQ(l10n_util::GetPluralStringFUTF16(
                 IDS_MESSAGE_NOTIFICATION_DURATION_DAYS_SHORTEST, 2),
diff --git a/ash/system/message_center/message_center_ui_controller.cc b/ash/system/message_center/message_center_ui_controller.cc
index a03e955..b3ce98e 100644
--- a/ash/system/message_center/message_center_ui_controller.cc
+++ b/ash/system/message_center/message_center_ui_controller.cc
@@ -18,8 +18,7 @@
 namespace {
 // The duration used to log the number of notifications shown
 // right after a user logs in.
-constexpr base::TimeDelta kLoginNotificationLogDuration =
-    base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kLoginNotificationLogDuration = base::Minutes(1);
 }  // namespace
 
 MessageCenterUiController::MessageCenterUiController(
diff --git a/ash/system/message_center/notification_grouping_controller.cc b/ash/system/message_center/notification_grouping_controller.cc
index 4e5d343..cd53f7d8 100644
--- a/ash/system/message_center/notification_grouping_controller.cc
+++ b/ash/system/message_center/notification_grouping_controller.cc
@@ -235,7 +235,7 @@
       parent_notification.notifier_id(), message_center::RichNotificationData(),
       /*delegate=*/nullptr);
   child_copy->set_timestamp(parent_notification.timestamp() -
-                            base::TimeDelta::FromMilliseconds(1));
+                            base::Milliseconds(1));
   child_copy->SetGroupChild();
 
   return child_copy;
diff --git a/ash/system/message_center/session_state_notification_blocker.cc b/ash/system/message_center/session_state_notification_blocker.cc
index 9b4a827..495d7a8d 100644
--- a/ash/system/message_center/session_state_notification_blocker.cc
+++ b/ash/system/message_center/session_state_notification_blocker.cc
@@ -20,8 +20,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kLoginNotificationDelay =
-    base::TimeDelta::FromSeconds(6);
+constexpr base::TimeDelta kLoginNotificationDelay = base::Seconds(6);
 
 // Set to false for tests so notifications can be generated without a delay.
 bool g_use_login_delay_for_test = true;
diff --git a/ash/system/message_center/stacked_notification_bar.cc b/ash/system/message_center/stacked_notification_bar.cc
index 1a28d6c..9a0cb56 100644
--- a/ash/system/message_center/stacked_notification_bar.cc
+++ b/ash/system/message_center/stacked_notification_bar.cc
@@ -201,8 +201,7 @@
     std::unique_ptr<ui::LayerAnimationElement> scale_and_move_up =
         ui::LayerAnimationElement::CreateInterpolatedTransformElement(
             std::move(scale_about_pivot),
-            base::TimeDelta::FromMilliseconds(
-                kNotificationIconAnimationUpDurationMs));
+            base::Milliseconds(kNotificationIconAnimationUpDurationMs));
     scale_and_move_up->set_tween_type(gfx::Tween::EASE_IN);
 
     std::unique_ptr<ui::LayerAnimationElement> move_down =
@@ -210,8 +209,7 @@
             std::make_unique<ui::InterpolatedTranslation>(
                 gfx::PointF(0, kNotificationIconAnimationHighPosition),
                 gfx::PointF(0, 0)),
-            base::TimeDelta::FromMilliseconds(
-                kNotificationIconAnimationDownDurationMs));
+            base::Milliseconds(kNotificationIconAnimationDownDurationMs));
 
     std::unique_ptr<ui::LayerAnimationSequence> sequence =
         std::make_unique<ui::LayerAnimationSequence>();
@@ -247,8 +245,7 @@
     std::unique_ptr<ui::LayerAnimationElement> scale_and_move_down =
         ui::LayerAnimationElement::CreateInterpolatedTransformElement(
             std::move(scale_about_pivot),
-            base::TimeDelta::FromMilliseconds(
-                kNotificationIconAnimationOutDurationMs));
+            base::Milliseconds(kNotificationIconAnimationOutDurationMs));
     scale_and_move_down->set_tween_type(gfx::Tween::EASE_IN);
 
     std::unique_ptr<ui::LayerAnimationSequence> sequence =
diff --git a/ash/system/message_center/unified_message_center_view.cc b/ash/system/message_center/unified_message_center_view.cc
index dd55a72..312cf65 100644
--- a/ash/system/message_center/unified_message_center_view.cc
+++ b/ash/system/message_center/unified_message_center_view.cc
@@ -39,9 +39,8 @@
 namespace {
 
 constexpr base::TimeDelta kHideStackingBarAnimationDuration =
-    base::TimeDelta::FromMilliseconds(330);
-constexpr base::TimeDelta kCollapseAnimationDuration =
-    base::TimeDelta::FromMilliseconds(640);
+    base::Milliseconds(330);
+constexpr base::TimeDelta kCollapseAnimationDuration = base::Milliseconds(640);
 
 class ScrollerContentsView : public views::View {
  public:
diff --git a/ash/system/message_center/unified_message_list_view.cc b/ash/system/message_center/unified_message_list_view.cc
index 3654590..c935702f 100644
--- a/ash/system/message_center/unified_message_list_view.cc
+++ b/ash/system/message_center/unified_message_list_view.cc
@@ -40,12 +40,11 @@
 
 namespace {
 
-constexpr base::TimeDelta kClosingAnimationDuration =
-    base::TimeDelta::FromMilliseconds(320);
+constexpr base::TimeDelta kClosingAnimationDuration = base::Milliseconds(320);
 constexpr base::TimeDelta kClearAllStackedAnimationDuration =
-    base::TimeDelta::FromMilliseconds(40);
+    base::Milliseconds(40);
 constexpr base::TimeDelta kClearAllVisibleAnimationDuration =
-    base::TimeDelta::FromMilliseconds(160);
+    base::Milliseconds(160);
 
 constexpr char kMessageViewContainerClassName[] = "MessageViewContainer";
 constexpr char kMoveDownAnimationSmoothnessHistogramName[] =
diff --git a/ash/system/message_center/unified_message_list_view_unittest.cc b/ash/system/message_center/unified_message_list_view_unittest.cc
index 1871a8f..05891db9 100644
--- a/ash/system/message_center/unified_message_list_view_unittest.cc
+++ b/ash/system/message_center/unified_message_list_view_unittest.cc
@@ -146,7 +146,7 @@
   void OffsetNotificationTimestamp(const std::string& id,
                                    const int milliseconds) {
     MessageCenter::Get()->FindVisibleNotificationById(id)->set_timestamp(
-        base::Time::Now() - base::TimeDelta::FromMilliseconds(milliseconds));
+        base::Time::Now() - base::Milliseconds(milliseconds));
   }
 
   void CreateMessageListView() {
diff --git a/ash/system/model/session_length_limit_model.cc b/ash/system/model/session_length_limit_model.cc
index 2f74538e..9b3c91b 100644
--- a/ash/system/model/session_length_limit_model.cc
+++ b/ash/system/model/session_length_limit_model.cc
@@ -56,7 +56,7 @@
   base::Time session_start_time = session->session_start_time();
   if (!time_limit.is_zero() && !session_start_time.is_null()) {
     const base::TimeDelta expiring_soon_threshold(
-        base::TimeDelta::FromMinutes(kExpiringSoonThresholdInMinutes));
+        base::Minutes(kExpiringSoonThresholdInMinutes));
     remaining_session_time_ =
         std::max(time_limit - (base::Time::Now() - session_start_time),
                  base::TimeDelta());
@@ -66,10 +66,8 @@
     if (!timer_)
       timer_ = std::make_unique<base::RepeatingTimer>();
     if (!timer_->IsRunning()) {
-      timer_->Start(
-          FROM_HERE,
-          base::TimeDelta::FromMilliseconds(kTimerIntervalInMilliseconds), this,
-          &SessionLengthLimitModel::Update);
+      timer_->Start(FROM_HERE, base::Milliseconds(kTimerIntervalInMilliseconds),
+                    this, &SessionLengthLimitModel::Update);
     }
   } else {
     remaining_session_time_ = base::TimeDelta();
diff --git a/ash/system/nearby_share/nearby_share_feature_pod_controller.cc b/ash/system/nearby_share/nearby_share_feature_pod_controller.cc
index 34ffec5..b5d8351 100644
--- a/ash/system/nearby_share/nearby_share_feature_pod_controller.cc
+++ b/ash/system/nearby_share/nearby_share_feature_pod_controller.cc
@@ -22,8 +22,8 @@
 
 namespace {
 
-constexpr base::TimeDelta kOneMinute = base::TimeDelta::FromMinutes(1);
-constexpr base::TimeDelta kOneSecond = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kOneMinute = base::Minutes(1);
+constexpr base::TimeDelta kOneSecond = base::Seconds(1);
 
 std::u16string RemainingTimeString(base::TimeDelta remaining_time) {
   if (remaining_time > kOneMinute) {
@@ -125,8 +125,7 @@
 base::TimeDelta NearbyShareFeaturePodController::RemainingHighVisibilityTime()
     const {
   base::TimeTicks now = base::TimeTicks::Now();
-  return shutoff_time_ > now ? shutoff_time_ - now
-                             : base::TimeDelta::FromSeconds(0);
+  return shutoff_time_ > now ? shutoff_time_ - now : base::Seconds(0);
 }
 
 }  // namespace ash
diff --git a/ash/system/network/active_network_icon.cc b/ash/system/network/active_network_icon.cc
index e285b66..20b86ab 100644
--- a/ash/system/network/active_network_icon.cc
+++ b/ash/system/network/active_network_icon.cc
@@ -319,8 +319,7 @@
 void ActiveNetworkIcon::NetworkListChanged() {
   if (purge_timer_.IsRunning())
     return;
-  purge_timer_.Start(FROM_HERE,
-                     base::TimeDelta::FromMilliseconds(kPurgeDelayMs),
+  purge_timer_.Start(FROM_HERE, base::Milliseconds(kPurgeDelayMs),
                      base::BindOnce(&ActiveNetworkIcon::PurgeNetworkIconCache,
                                     weak_ptr_factory_.GetWeakPtr()));
 }
diff --git a/ash/system/network/auto_connect_notifier.cc b/ash/system/network/auto_connect_notifier.cc
index f6f33964..79e91b2 100644
--- a/ash/system/network/auto_connect_notifier.cc
+++ b/ash/system/network/auto_connect_notifier.cc
@@ -39,8 +39,7 @@
 // initiated, we expect the connection to occur within this amount of time. If
 // a timeout occurs, we assume that no auto-connection occurred and do not show
 // a notification.
-constexpr const base::TimeDelta kNetworkConnectionTimeout =
-    base::TimeDelta::FromSeconds(3);
+constexpr const base::TimeDelta kNetworkConnectionTimeout = base::Seconds(3);
 
 const char kNotifierAutoConnect[] = "ash.auto-connect";
 
diff --git a/ash/system/network/cellular_setup_notifier.cc b/ash/system/network/cellular_setup_notifier.cc
index 000397e..c2f72c5 100644
--- a/ash/system/network/cellular_setup_notifier.cc
+++ b/ash/system/network/cellular_setup_notifier.cc
@@ -28,7 +28,7 @@
 const char kNotifierCellularSetup[] = "ash.cellular-setup";
 
 // Delay after OOBE until notification should be shown.
-constexpr base::TimeDelta kNotificationDelay = base::TimeDelta::FromMinutes(15);
+constexpr base::TimeDelta kNotificationDelay = base::Minutes(15);
 
 bool DoesCellularDeviceExist(
     const std::vector<
diff --git a/ash/system/network/network_icon_animation.cc b/ash/system/network/network_icon_animation.cc
index a8f13a05..b1ca3564 100644
--- a/ash/system/network/network_icon_animation.cc
+++ b/ash/system/network/network_icon_animation.cc
@@ -11,7 +11,7 @@
 
 NetworkIconAnimation::NetworkIconAnimation() : animation_(this) {
   // Set up the animation throbber.
-  animation_.SetThrobDuration(base::TimeDelta::FromMilliseconds(750));
+  animation_.SetThrobDuration(base::Milliseconds(750));
   animation_.SetTweenType(gfx::Tween::LINEAR);
 }
 
diff --git a/ash/system/network/network_section_header_view.cc b/ash/system/network/network_section_header_view.cc
index 55b5e31..33e762b 100644
--- a/ash/system/network/network_section_header_view.cc
+++ b/ash/system/network/network_section_header_view.cc
@@ -385,7 +385,7 @@
       ->SetPrimaryUserBluetoothPowerSetting(true /* enabled */);
   waiting_for_tether_initialize_ = true;
   enable_bluetooth_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromSeconds(kBluetoothTimeoutDelaySeconds),
+      FROM_HERE, base::Seconds(kBluetoothTimeoutDelaySeconds),
       base::BindOnce(&MobileSectionHeaderView::OnEnableBluetoothTimeout,
                      weak_ptr_factory_.GetWeakPtr()));
 }
diff --git a/ash/system/network/network_state_list_detailed_view.cc b/ash/system/network/network_state_list_detailed_view.cc
index 9091731..f572066 100644
--- a/ash/system/network/network_state_list_detailed_view.cc
+++ b/ash/system/network/network_state_list_detailed_view.cc
@@ -499,7 +499,7 @@
 void NetworkStateListDetailedView::ScanAndStartTimer() {
   CallRequestScan();
   network_scan_repeating_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromSeconds(kRequestScanDelaySeconds), this,
+      FROM_HERE, base::Seconds(kRequestScanDelaySeconds), this,
       &NetworkStateListDetailedView::CallRequestScan);
 }
 
diff --git a/ash/system/network/tray_network_state_model.cc b/ash/system/network/tray_network_state_model.cc
index cf6c6f00..41e848c 100644
--- a/ash/system/network/tray_network_state_model.cc
+++ b/ash/system/network/tray_network_state_model.cc
@@ -264,7 +264,7 @@
 void TrayNetworkStateModel::NotifyNetworkListChanged() {
   if (timer_.IsRunning())
     return;
-  timer_.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(update_frequency_),
+  timer_.Start(FROM_HERE, base::Milliseconds(update_frequency_),
                base::BindOnce(&TrayNetworkStateModel::SendNetworkListChanged,
                               base::Unretained(this)));
 }
diff --git a/ash/system/night_light/night_light_controller_impl.cc b/ash/system/night_light/night_light_controller_impl.cc
index c2b432b..cbfe56c 100644
--- a/ash/system/night_light/night_light_controller_impl.cc
+++ b/ash/system/night_light/night_light_controller_impl.cc
@@ -86,13 +86,11 @@
 
 // The duration of the temperature change animation for
 // AnimationDurationType::kShort.
-constexpr base::TimeDelta kManualAnimationDuration =
-    base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kManualAnimationDuration = base::Seconds(1);
 
 // The duration of the temperature change animation for
 // AnimationDurationType::kLong.
-constexpr base::TimeDelta kAutomaticAnimationDuration =
-    base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kAutomaticAnimationDuration = base::Seconds(60);
 
 // The color temperature animation frames per second.
 constexpr int kNightLightAnimationFrameRate = 15;
@@ -695,7 +693,7 @@
   // or more in either sunset or sunrise times. A one-hour threshold is used
   // here as an indication of a possible timezone change, and this case, manual
   // toggles should be ignored.
-  constexpr base::TimeDelta kOneHourDuration = base::TimeDelta::FromHours(1);
+  constexpr base::TimeDelta kOneHourDuration = base::Hours(1);
   const bool keep_manual_toggles_during_schedules =
       (delegate_->GetSunsetTime() - previous_sunset).magnitude() <
           kOneHourDuration &&
@@ -1113,7 +1111,7 @@
       //        |             |        |
       //      start          now      end
       //
-      start_time -= base::TimeDelta::FromDays(1);
+      start_time -= base::Days(1);
     } else {
       // Two possibilities here:
       // - Either "now" is greater than the end time, but less than start time.
@@ -1122,7 +1120,7 @@
       // - Or "now" is greater than both the start and end times. This means
       //   NightLight is within the schedule, waiting to turn off at the next
       //   end time, which is also a day later.
-      end_time += base::TimeDelta::FromDays(1);
+      end_time += base::Days(1);
     }
   }
 
@@ -1154,7 +1152,7 @@
     // Start NightLight right away. Our future start time is a day later than
     // its current value.
     enable_now = true;
-    start_time += base::TimeDelta::FromDays(1);
+    start_time += base::Days(1);
   } else {  // now >= end_time.
     // Example:
     // Start: 6:00 PM today, End: 10:00 PM today, Now: 11:00 PM.
@@ -1167,8 +1165,8 @@
     // current values. NightLight needs to be ended immediately if it's already
     // enabled.
     enable_now = false;
-    start_time += base::TimeDelta::FromDays(1);
-    end_time += base::TimeDelta::FromDays(1);
+    start_time += base::Days(1);
+    end_time += base::Days(1);
   }
 
   // After the above processing, the start and end time are all in the future.
diff --git a/ash/system/night_light/night_light_controller_unittest.cc b/ash/system/night_light/night_light_controller_unittest.cc
index d02e41b8..a299a027 100644
--- a/ash/system/night_light/night_light_controller_unittest.cc
+++ b/ash/system/night_light/night_light_controller_unittest.cc
@@ -462,8 +462,7 @@
   EXPECT_EQ(NightLightControllerImpl::AnimationDuration::kShort,
             controller->last_animation_duration());
   EXPECT_TRUE(controller->timer()->IsRunning());
-  EXPECT_EQ(base::TimeDelta::FromHours(2),
-            controller->timer()->GetCurrentDelay());
+  EXPECT_EQ(base::Hours(2), controller->timer()->GetCurrentDelay());
 
   // If the user changes the schedule type to "none", the NightLight status
   // should not change, but the timer should not be running.
@@ -502,8 +501,7 @@
   // The timer should still be running, but now scheduling the start at 3:00 PM
   // tomorrow which is 19 hours from "now" (8:00 PM).
   EXPECT_TRUE(controller->timer()->IsRunning());
-  EXPECT_EQ(base::TimeDelta::FromHours(19),
-            controller->timer()->GetCurrentDelay());
+  EXPECT_EQ(base::Hours(19), controller->timer()->GetCurrentDelay());
 }
 
 // Tests that user toggles from the system menu or system settings override any
@@ -537,8 +535,7 @@
   // The timer should still be running, but NightLight should automatically
   // turn off at 8:00 PM tomorrow, which is 21 hours from now (11:00 PM).
   EXPECT_TRUE(controller->timer()->IsRunning());
-  EXPECT_EQ(base::TimeDelta::FromHours(21),
-            controller->timer()->GetCurrentDelay());
+  EXPECT_EQ(base::Hours(21), controller->timer()->GetCurrentDelay());
 
   // Manually turning it back off should also be respected, and this time the
   // start is scheduled at 3:00 PM tomorrow after 19 hours from "now" (8:00 PM).
@@ -548,8 +545,7 @@
   EXPECT_EQ(NightLightControllerImpl::AnimationDuration::kShort,
             controller->last_animation_duration());
   EXPECT_TRUE(controller->timer()->IsRunning());
-  EXPECT_EQ(base::TimeDelta::FromHours(16),
-            controller->timer()->GetCurrentDelay());
+  EXPECT_EQ(base::Hours(16), controller->timer()->GetCurrentDelay());
 }
 
 // Tests that changing the custom start and end times, in such a way that
@@ -575,8 +571,7 @@
   EXPECT_FALSE(controller->GetEnabled());
   TestCompositorsTemperature(0.0f);
   EXPECT_TRUE(controller->timer()->IsRunning());
-  EXPECT_EQ(base::TimeDelta::FromHours(2),
-            controller->timer()->GetCurrentDelay());
+  EXPECT_EQ(base::Hours(2), controller->timer()->GetCurrentDelay());
 
   // Change the start time in such a way that doesn't change the status, but
   // despite that, confirm that schedule has been updated.
@@ -584,8 +579,7 @@
   EXPECT_FALSE(controller->GetEnabled());
   TestCompositorsTemperature(0.0f);
   EXPECT_TRUE(controller->timer()->IsRunning());
-  EXPECT_EQ(base::TimeDelta::FromHours(3),
-            controller->timer()->GetCurrentDelay());
+  EXPECT_EQ(base::Hours(3), controller->timer()->GetCurrentDelay());
 
   // Changing the end time in a similar fashion to the above and expect no
   // change.
@@ -593,8 +587,7 @@
   EXPECT_FALSE(controller->GetEnabled());
   TestCompositorsTemperature(0.0f);
   EXPECT_TRUE(controller->timer()->IsRunning());
-  EXPECT_EQ(base::TimeDelta::FromHours(3),
-            controller->timer()->GetCurrentDelay());
+  EXPECT_EQ(base::Hours(3), controller->timer()->GetCurrentDelay());
 }
 
 // Tests the behavior of the sunset to sunrise automatic schedule type.
@@ -620,8 +613,7 @@
   EXPECT_FALSE(controller->GetEnabled());
   TestCompositorsTemperature(0.0f);
   EXPECT_TRUE(controller->timer()->IsRunning());
-  EXPECT_EQ(base::TimeDelta::FromHours(4),
-            controller->timer()->GetCurrentDelay());
+  EXPECT_EQ(base::Hours(4), controller->timer()->GetCurrentDelay());
 
   // Simulate reaching sunset.
   delegate()->SetFakeNow(TimeOfDay(20 * 60));  // Now is 8:00 PM.
@@ -632,8 +624,7 @@
             controller->last_animation_duration());
   // Timer is running scheduling the end at sunrise.
   EXPECT_TRUE(controller->timer()->IsRunning());
-  EXPECT_EQ(base::TimeDelta::FromHours(9),
-            controller->timer()->GetCurrentDelay());
+  EXPECT_EQ(base::Hours(9), controller->timer()->GetCurrentDelay());
 
   // Simulate reaching sunrise.
   delegate()->SetFakeNow(TimeOfDay(5 * 60));  // Now is 5:00 AM.
@@ -644,8 +635,7 @@
             controller->last_animation_duration());
   // Timer is running scheduling the start at the next sunset.
   EXPECT_TRUE(controller->timer()->IsRunning());
-  EXPECT_EQ(base::TimeDelta::FromHours(15),
-            controller->timer()->GetCurrentDelay());
+  EXPECT_EQ(base::Hours(15), controller->timer()->GetCurrentDelay());
 }
 
 // Tests the behavior of the sunset to sunrise automatic schedule type when the
@@ -669,8 +659,7 @@
   EXPECT_FALSE(controller->GetEnabled());
   TestCompositorsTemperature(0.0f);
   EXPECT_TRUE(controller->timer()->IsRunning());
-  EXPECT_EQ(base::TimeDelta::FromHours(4),
-            controller->timer()->GetCurrentDelay());
+  EXPECT_EQ(base::Hours(4), controller->timer()->GetCurrentDelay());
 
   // Simulate reaching sunset.
   delegate()->SetFakeNow(TimeOfDay(20 * 60));  // Now is 8:00 PM.
@@ -681,8 +670,7 @@
             controller->last_animation_duration());
   // Timer is running scheduling the end at sunrise.
   EXPECT_TRUE(controller->timer()->IsRunning());
-  EXPECT_EQ(base::TimeDelta::FromHours(8),
-            controller->timer()->GetCurrentDelay());
+  EXPECT_EQ(base::Hours(8), controller->timer()->GetCurrentDelay());
 
   // Now simulate user changing position.
   // Position 2 sunset and sunrise times.
@@ -700,8 +688,7 @@
   EXPECT_TRUE(controller->GetEnabled());
   TestCompositorsTemperature(controller->GetColorTemperature());
   EXPECT_TRUE(controller->timer()->IsRunning());
-  EXPECT_EQ(base::TimeDelta::FromHours(7),
-            controller->timer()->GetCurrentDelay());
+  EXPECT_EQ(base::Hours(7), controller->timer()->GetCurrentDelay());
 
   // Simulate reaching sunrise.
   delegate()->SetFakeNow(TimeOfDay(3 * 60));  // Now is 5:00 AM.
@@ -712,8 +699,7 @@
             controller->last_animation_duration());
   // Timer is running scheduling the start at the next sunset.
   EXPECT_TRUE(controller->timer()->IsRunning());
-  EXPECT_EQ(base::TimeDelta::FromHours(14),
-            controller->timer()->GetCurrentDelay());
+  EXPECT_EQ(base::Hours(14), controller->timer()->GetCurrentDelay());
 }
 
 // Tests the behavior when the client sets the geoposition while in custom
@@ -754,7 +740,7 @@
   EXPECT_FALSE(controller->GetEnabled());
   TestCompositorsTemperature(0.0f);
   EXPECT_TRUE(controller->timer()->IsRunning());
-  EXPECT_EQ(base::TimeDelta::FromMinutes(time_diff(fake_now, kCustom_Start)),
+  EXPECT_EQ(base::Minutes(time_diff(fake_now, kCustom_Start)),
             controller->timer()->GetCurrentDelay());
 
   // Simulate a timezone change by changing geoposition.
@@ -777,7 +763,7 @@
   EXPECT_EQ(NightLightControllerImpl::AnimationDuration::kShort,
             controller->last_animation_duration());
   EXPECT_TRUE(controller->timer()->IsRunning());
-  EXPECT_EQ(base::TimeDelta::FromMinutes(time_diff(fake_now, kCustom_End)),
+  EXPECT_EQ(base::Minutes(time_diff(fake_now, kCustom_End)),
             controller->timer()->GetCurrentDelay());
 
   // Simulate user changing position back to location 1 and current time goes
@@ -794,7 +780,7 @@
             controller->last_animation_duration());
   // Timer is running and is scheduled at next custom start time.
   EXPECT_TRUE(controller->timer()->IsRunning());
-  EXPECT_EQ(base::TimeDelta::FromMinutes(time_diff(fake_now, kCustom_Start)),
+  EXPECT_EQ(base::Minutes(time_diff(fake_now, kCustom_Start)),
             controller->timer()->GetCurrentDelay());
 }
 
@@ -916,8 +902,7 @@
   TestCompositorsTemperature(0.0f);
   EXPECT_TRUE(controller->timer()->IsRunning());
   // NightLight should start in 2 hours.
-  EXPECT_EQ(base::TimeDelta::FromHours(2),
-            controller->timer()->GetCurrentDelay());
+  EXPECT_EQ(base::Hours(2), controller->timer()->GetCurrentDelay());
 
   // Now simulate that the device was suspended for 3 hours, and the time now
   // is 7:00 PM when the devices was resumed. Expect that NightLight turns on.
@@ -928,8 +913,7 @@
   TestCompositorsTemperature(0.4f);
   EXPECT_TRUE(controller->timer()->IsRunning());
   // NightLight should end in 3 hours.
-  EXPECT_EQ(base::TimeDelta::FromHours(3),
-            controller->timer()->GetCurrentDelay());
+  EXPECT_EQ(base::Hours(3), controller->timer()->GetCurrentDelay());
 }
 
 // The following tests ensure that the NightLight schedule is correctly
@@ -959,8 +943,7 @@
   TestCompositorsTemperature(0.4f);
   EXPECT_TRUE(controller->timer()->IsRunning());
   // NightLight should end in two hours.
-  EXPECT_EQ(base::TimeDelta::FromHours(2),
-            controller->timer()->GetCurrentDelay());
+  EXPECT_EQ(base::Hours(2), controller->timer()->GetCurrentDelay());
 }
 
 // Case 2: "Now" is between "end" and "start".
@@ -985,8 +968,7 @@
   TestCompositorsTemperature(0.0f);
   EXPECT_TRUE(controller->timer()->IsRunning());
   // NightLight should start in 15 hours.
-  EXPECT_EQ(base::TimeDelta::FromHours(15),
-            controller->timer()->GetCurrentDelay());
+  EXPECT_EQ(base::Hours(15), controller->timer()->GetCurrentDelay());
 }
 
 // Case 3: "Now" is greater than both "start" and "end".
@@ -1011,8 +993,7 @@
   TestCompositorsTemperature(0.4f);
   EXPECT_TRUE(controller->timer()->IsRunning());
   // NightLight should end in 5 hours.
-  EXPECT_EQ(base::TimeDelta::FromHours(5),
-            controller->timer()->GetCurrentDelay());
+  EXPECT_EQ(base::Hours(5), controller->timer()->GetCurrentDelay());
 }
 
 TEST_F(NightLightTest, TestAmbientLightEnabledSetting_FeatureOn) {
@@ -1124,7 +1105,7 @@
       {MakeTimeOfDay(7, kPM).ToTimeToday(), true, true},
       {MakeTimeOfDay(10, kPM).ToTimeToday(), false, true},
       {MakeTimeOfDay(9, kAM).ToTimeToday() +
-           base::TimeDelta::FromDays(1),  // 9:00 AM tomorrow.
+           base::Days(1),  // 9:00 AM tomorrow.
        false, false},
   };
 
@@ -1206,8 +1187,7 @@
   controller->Toggle();
   EXPECT_TRUE(controller->GetEnabled());
   EXPECT_TRUE(controller->timer()->IsRunning());
-  EXPECT_EQ(base::TimeDelta::FromHours(9),
-            controller->timer()->GetCurrentDelay());
+  EXPECT_EQ(base::Hours(9), controller->timer()->GetCurrentDelay());
 
   // Simulate suspend and then resume at 2:00 PM (which is outside the user's
   // custom schedule). However, the manual toggle to on should be kept.
diff --git a/ash/system/night_light/time_of_day_unittest.cc b/ash/system/night_light/time_of_day_unittest.cc
index 5b5cbd0..8f24a16 100644
--- a/ash/system/night_light/time_of_day_unittest.cc
+++ b/ash/system/night_light/time_of_day_unittest.cc
@@ -63,7 +63,7 @@
 
   base::Time now_today = base::Time::Now();
   ASSERT_TRUE(base::Time::FromLocalExploded(now, &now_today));
-  base::Time now_tomorrow = now_today + base::TimeDelta::FromDays(1);
+  base::Time now_tomorrow = now_today + base::Days(1);
   EXPECT_EQ(TimeOfDay::FromTime(now_today), TimeOfDay::FromTime(now_tomorrow));
 }
 
diff --git a/ash/system/overview/overview_button_tray.h b/ash/system/overview/overview_button_tray.h
index e8947ed..4208a3b 100644
--- a/ash/system/overview/overview_button_tray.h
+++ b/ash/system/overview/overview_button_tray.h
@@ -41,7 +41,7 @@
   // overview enter animation time, once ux decides which one to match (both are
   // 300ms currently).
   static constexpr base::TimeDelta kDoubleTapThresholdMs =
-      base::TimeDelta::FromMilliseconds(300);
+      base::Milliseconds(300);
 
   explicit OverviewButtonTray(Shelf* shelf);
   OverviewButtonTray(const OverviewButtonTray&) = delete;
diff --git a/ash/system/palette/common_palette_tool.cc b/ash/system/palette/common_palette_tool.cc
index 2a12e545..3244885 100644
--- a/ash/system/palette/common_palette_tool.cc
+++ b/ash/system/palette/common_palette_tool.cc
@@ -25,16 +25,13 @@
 void AddHistogramTimes(PaletteToolId id, base::TimeDelta duration) {
   if (id == PaletteToolId::LASER_POINTER) {
     UMA_HISTOGRAM_CUSTOM_TIMES("Ash.Shelf.Palette.InLaserPointerMode", duration,
-                               base::TimeDelta::FromMilliseconds(100),
-                               base::TimeDelta::FromHours(1), 50);
+                               base::Milliseconds(100), base::Hours(1), 50);
   } else if (id == PaletteToolId::MAGNIFY) {
     UMA_HISTOGRAM_CUSTOM_TIMES("Ash.Shelf.Palette.InMagnifyMode", duration,
-                               base::TimeDelta::FromMilliseconds(100),
-                               base::TimeDelta::FromHours(1), 50);
+                               base::Milliseconds(100), base::Hours(1), 50);
   } else if (id == PaletteToolId::METALAYER) {
     UMA_HISTOGRAM_CUSTOM_TIMES("Ash.Shelf.Palette.InAssistantMode", duration,
-                               base::TimeDelta::FromMilliseconds(100),
-                               base::TimeDelta::FromHours(1), 50);
+                               base::Milliseconds(100), base::Hours(1), 50);
   }
 }
 
diff --git a/ash/system/palette/palette_tray_unittest.cc b/ash/system/palette/palette_tray_unittest.cc
index 3084995..4ed1a15 100644
--- a/ash/system/palette/palette_tray_unittest.cc
+++ b/ash/system/palette/palette_tray_unittest.cc
@@ -302,7 +302,7 @@
     GetEventGenerator();
 
     // Tests fail if event time is ever 0.
-    simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(10));
+    simulated_clock_.Advance(base::Milliseconds(10));
     ui::SetEventTickClockForTesting(&simulated_clock_);
 
     highlighter_test_api_ = std::make_unique<HighlighterControllerTestApi>(
@@ -371,7 +371,7 @@
                                   bool expected,
                                   bool expected_on_press) {
     const int kStrokeGap = 1000;
-    simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(kStrokeGap));
+    simulated_clock_.Advance(base::Milliseconds(kStrokeGap));
     DragAndAssertMetalayer(context, origin, event_flags, expected,
                            expected_on_press);
   }
diff --git a/ash/system/palette/stylus_battery_delegate.cc b/ash/system/palette/stylus_battery_delegate.cc
index 79b1fc585..5b67ce1 100644
--- a/ash/system/palette/stylus_battery_delegate.cc
+++ b/ash/system/palette/stylus_battery_delegate.cc
@@ -22,8 +22,7 @@
 namespace {
 // Battery percentage threshold used to label the battery level as Low.
 constexpr int kStylusLowBatteryThreshold = 24;
-constexpr base::TimeDelta kStylusBatteryStatusStaleThreshold =
-    base::TimeDelta::FromDays(14);
+constexpr base::TimeDelta kStylusBatteryStatusStaleThreshold = base::Days(14);
 }  // namespace
 
 StylusBatteryDelegate::StylusBatteryDelegate() {
diff --git a/ash/system/palette/tools/metalayer_mode.cc b/ash/system/palette/tools/metalayer_mode.cc
index cdef824..4fdb341 100644
--- a/ash/system/palette/tools/metalayer_mode.cc
+++ b/ash/system/palette/tools/metalayer_mode.cc
@@ -120,7 +120,7 @@
     return;
 
   if (event->time_stamp() - previous_stroke_end_ <
-      base::TimeDelta::FromMilliseconds(kMaxStrokeGapWhenWritingMs)) {
+      base::Milliseconds(kMaxStrokeGapWhenWritingMs)) {
     // The press is happening too soon after the release, the user is most
     // likely writing/sketching and does not want the metalayer to activate.
     return;
diff --git a/ash/system/phonehub/locate_phone_quick_action_controller.cc b/ash/system/phonehub/locate_phone_quick_action_controller.cc
index 41378e41..c2d1278 100644
--- a/ash/system/phonehub/locate_phone_quick_action_controller.cc
+++ b/ash/system/phonehub/locate_phone_quick_action_controller.cc
@@ -21,8 +21,7 @@
 
 // Time to wait until we check the state of the phone to prevent showing wrong
 // state
-constexpr base::TimeDelta kWaitForRequestTimeout =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kWaitForRequestTimeout = base::Seconds(5);
 
 }  // namespace
 
diff --git a/ash/system/phonehub/phone_hub_notification_controller.cc b/ash/system/phonehub/phone_hub_notification_controller.cc
index 8e5146c..84992ccf 100644
--- a/ash/system/phonehub/phone_hub_notification_controller.cc
+++ b/ash/system/phonehub/phone_hub_notification_controller.cc
@@ -52,8 +52,7 @@
 // reply. This is used to make sure that all the replies are received by the
 // phone in a correct order (a reply sent right after another could cause it to
 // be received before the former one).
-constexpr base::TimeDelta kInlineReplyDisableTime =
-    base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kInlineReplyDisableTime = base::Seconds(1);
 
 class PhoneHubNotificationView : public message_center::NotificationView {
  public:
diff --git a/ash/system/phonehub/phone_hub_notification_controller_unittest.cc b/ash/system/phonehub/phone_hub_notification_controller_unittest.cc
index dceeca95..4a8fde85 100644
--- a/ash/system/phonehub/phone_hub_notification_controller_unittest.cc
+++ b/ash/system/phonehub/phone_hub_notification_controller_unittest.cc
@@ -42,8 +42,7 @@
 const char kNotificationCustomViewType[] = "phonehub";
 
 // Time to wait until we enable the reply button
-constexpr base::TimeDelta kWaitForEnableButton =
-    base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kWaitForEnableButton = base::Seconds(1);
 
 chromeos::phonehub::Notification CreateNotification(int64_t id) {
   return chromeos::phonehub::Notification(
diff --git a/ash/system/phonehub/phone_hub_tray.cc b/ash/system/phonehub/phone_hub_tray.cc
index 34dbd7146..24939a77 100644
--- a/ash/system/phonehub/phone_hub_tray.cc
+++ b/ash/system/phonehub/phone_hub_tray.cc
@@ -269,8 +269,7 @@
 
 void PhoneHubTray::TemporarilyDisableAnimation() {
   base::SequencedTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, DisableShowAnimation().Release(),
-      base::TimeDelta::FromSeconds(5));
+      FROM_HERE, DisableShowAnimation().Release(), base::Seconds(5));
 }
 
 }  // namespace ash
diff --git a/ash/system/phonehub/phone_hub_tray_unittest.cc b/ash/system/phonehub/phone_hub_tray_unittest.cc
index d1fb6c5b..877c127 100644
--- a/ash/system/phonehub/phone_hub_tray_unittest.cc
+++ b/ash/system/phonehub/phone_hub_tray_unittest.cc
@@ -29,8 +29,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kConnectingViewGracePeriod =
-    base::TimeDelta::FromSeconds(40);
+constexpr base::TimeDelta kConnectingViewGracePeriod = base::Seconds(40);
 
 // A mock implementation of |NewWindowDelegate| for use in tests.
 class MockNewWindowDelegate : public testing::NiceMock<TestNewWindowDelegate> {
@@ -490,13 +489,13 @@
   // Disable the tray first.
   GetFeatureStatusProvider()->SetStatus(
       chromeos::phonehub::FeatureStatus::kNotEligibleForFeature);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(3));
+  task_environment()->FastForwardBy(base::Seconds(3));
   EXPECT_FALSE(phone_hub_tray_->GetVisible());
 
   // Enable it to let it visible.
   GetFeatureStatusProvider()->SetStatus(
       chromeos::phonehub::FeatureStatus::kEnabledAndConnected);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(3));
+  task_environment()->FastForwardBy(base::Seconds(3));
   EXPECT_TRUE(phone_hub_tray_->GetVisible());
   GetSessionControllerClient()->SetSessionState(
       session_manager::SessionState::LOGIN_PRIMARY);
@@ -509,14 +508,14 @@
   // Gives it a small duration to let the session get changed. This duration is
   // way smaller than the animation duration, so that the animation will not
   // finish when this duration ends. The same for the other places below.
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(20));
+  task_environment()->FastForwardBy(base::Milliseconds(20));
   for (int i = 0; i < 3; i++) {
     SCOPED_TRACE(::testing::Message() << "iteration=" << i);
     EXPECT_FALSE(phone_hub_tray_->layer()->GetAnimator()->is_animating());
     EXPECT_TRUE(phone_hub_tray_->GetVisible());
     GetFeatureStatusProvider()->SetStatus(
         chromeos::phonehub::FeatureStatus::kNotEligibleForFeature);
-    task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment()->FastForwardBy(base::Seconds(1));
     EXPECT_FALSE(phone_hub_tray_->GetVisible());
     GetFeatureStatusProvider()->SetStatus(
         chromeos::phonehub::FeatureStatus::kEnabledAndConnected);
@@ -526,7 +525,7 @@
 
   // Animation is enabled after 5 seconds. We already fast forwarded 3 second in
   // the above loop. So here we are forwarding 2 more seconds.
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_environment()->FastForwardBy(base::Seconds(2));
   GetFeatureStatusProvider()->SetStatus(
       chromeos::phonehub::FeatureStatus::kNotEligibleForFeature);
   GetFeatureStatusProvider()->SetStatus(
diff --git a/ash/system/phonehub/phone_hub_ui_controller.cc b/ash/system/phonehub/phone_hub_ui_controller.cc
index c1e735a..8fe28a8c 100644
--- a/ash/system/phonehub/phone_hub_ui_controller.cc
+++ b/ash/system/phonehub/phone_hub_ui_controller.cc
@@ -31,8 +31,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kConnectingViewGracePeriod =
-    base::TimeDelta::FromSeconds(40);
+constexpr base::TimeDelta kConnectingViewGracePeriod = base::Seconds(40);
 
 }  // namespace
 
diff --git a/ash/system/phonehub/phone_hub_ui_controller_unittest.cc b/ash/system/phonehub/phone_hub_ui_controller_unittest.cc
index 262d7e11..32ff3f9 100644
--- a/ash/system/phonehub/phone_hub_ui_controller_unittest.cc
+++ b/ash/system/phonehub/phone_hub_ui_controller_unittest.cc
@@ -22,8 +22,7 @@
 
 constexpr char kUser1Email[] = "user1@test.com";
 constexpr char kUser2Email[] = "user2@test.com";
-constexpr base::TimeDelta kConnectingViewGracePeriod =
-    base::TimeDelta::FromSeconds(40);
+constexpr base::TimeDelta kConnectingViewGracePeriod = base::Seconds(40);
 
 class PhoneHubUiControllerTest : public AshTestBase,
                                  public PhoneHubUiController::Observer {
diff --git a/ash/system/phonehub/quick_actions_view_unittest.cc b/ash/system/phonehub/quick_actions_view_unittest.cc
index f42d8a77..1f400ef7 100644
--- a/ash/system/phonehub/quick_actions_view_unittest.cc
+++ b/ash/system/phonehub/quick_actions_view_unittest.cc
@@ -23,8 +23,7 @@
   DummyEvent() : Event(ui::ET_UNKNOWN, base::TimeTicks(), 0) {}
 };
 
-constexpr base::TimeDelta kWaitForRequestTimeout =
-    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kWaitForRequestTimeout = base::Seconds(10);
 
 }  // namespace
 
diff --git a/ash/system/phonehub/silence_phone_quick_action_controller.cc b/ash/system/phonehub/silence_phone_quick_action_controller.cc
index 153dae3..75877ce 100644
--- a/ash/system/phonehub/silence_phone_quick_action_controller.cc
+++ b/ash/system/phonehub/silence_phone_quick_action_controller.cc
@@ -21,8 +21,7 @@
 
 // Time to wait until we check the state of the phone to prevent showing wrong
 // state
-constexpr base::TimeDelta kWaitForRequestTimeout =
-    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kWaitForRequestTimeout = base::Seconds(10);
 
 }  // namespace
 
diff --git a/ash/system/power/peripheral_battery_listener.cc b/ash/system/power/peripheral_battery_listener.cc
index 700c7e59..e4cd707 100644
--- a/ash/system/power/peripheral_battery_listener.cc
+++ b/ash/system/power/peripheral_battery_listener.cc
@@ -502,8 +502,7 @@
     if (info.charge_status == BatteryInfo::ChargeStatus::kCharging) {
       base::TimeTicks charge_start_time = base::TimeTicks::Now();
       garage_charge_timer_.Start(
-          FROM_HERE,
-          base::TimeDelta::FromMilliseconds(kGarageChargeUpdatePeriod),
+          FROM_HERE, base::Milliseconds(kGarageChargeUpdatePeriod),
           base::BindRepeating(&PeripheralBatteryListener::GarageTimerAction,
                               base::Unretained(this), charge_start_time,
                               info.level));
diff --git a/ash/system/power/peripheral_battery_listener_unittest.cc b/ash/system/power/peripheral_battery_listener_unittest.cc
index 9d8c37b2..914d63a 100644
--- a/ash/system/power/peripheral_battery_listener_unittest.cc
+++ b/ash/system/power/peripheral_battery_listener_unittest.cc
@@ -179,7 +179,7 @@
   scoped_listener_obs.Observe(battery_listener_.get());
 
   // Level 50 at time 100, listener should be notified.
-  ClockAdvance(base::TimeDelta::FromSeconds(100));
+  ClockAdvance(base::Seconds(100));
 
   testing::InSequence sequence;
 
@@ -198,7 +198,7 @@
       /*serial_number=*/"", kBatteryPolledUpdate);
 
   // Level 5 at time 110, listener should be notified.
-  ClockAdvance(base::TimeDelta::FromSeconds(10));
+  ClockAdvance(base::Seconds(10));
 
   EXPECT_CALL(listener_observer_mock,
               OnUpdatedBatteryLevel(AllOf(
@@ -212,7 +212,7 @@
       /*serial_number=*/"", kBatteryPolledUpdate);
 
   // Level -1 at time 115, listener should be notified.
-  ClockAdvance(base::TimeDelta::FromSeconds(5));
+  ClockAdvance(base::Seconds(5));
 
   EXPECT_CALL(listener_observer_mock,
               OnUpdatedBatteryLevel(AllOf(
@@ -226,7 +226,7 @@
       /*serial_number=*/"", kBatteryPolledUpdate);
 
   // Level 50 at time 120, listener should be notified.
-  ClockAdvance(base::TimeDelta::FromSeconds(5));
+  ClockAdvance(base::Seconds(5));
 
   EXPECT_CALL(listener_observer_mock,
               OnUpdatedBatteryLevel(AllOf(
@@ -248,7 +248,7 @@
   scoped_listener_obs.Observe(battery_listener_.get());
 
   // Level 50 at time 100, listener should be notified.
-  ClockAdvance(base::TimeDelta::FromSeconds(100));
+  ClockAdvance(base::Seconds(100));
 
   testing::InSequence sequence;
 
@@ -267,7 +267,7 @@
       /*serial_number=*/"", kBatteryPolledUpdate);
 
   // Level 5 at time 110, listener should be notified.
-  ClockAdvance(base::TimeDelta::FromSeconds(10));
+  ClockAdvance(base::Seconds(10));
 
   EXPECT_CALL(listener_observer_mock,
               OnUpdatedBatteryLevel(AllOf(
@@ -281,7 +281,7 @@
       /*serial_number=*/"", kBatteryEventUpdate);
 
   // Level -1 at time 115, listener should be notified.
-  ClockAdvance(base::TimeDelta::FromSeconds(5));
+  ClockAdvance(base::Seconds(5));
 
   EXPECT_CALL(listener_observer_mock,
               OnUpdatedBatteryLevel(AllOf(
@@ -297,7 +297,7 @@
   auto prior_active_update_time = GetTestingClock();
 
   // Level 50 at time 120, listener should be notified.
-  ClockAdvance(base::TimeDelta::FromSeconds(5));
+  ClockAdvance(base::Seconds(5));
 
   EXPECT_CALL(listener_observer_mock,
               OnUpdatedBatteryLevel(AllOf(
@@ -319,7 +319,7 @@
   scoped_listener_obs.Observe(battery_listener_.get());
 
   // Level 50 at time 100, listener should be notified.
-  ClockAdvance(base::TimeDelta::FromSeconds(100));
+  ClockAdvance(base::Seconds(100));
 
   testing::InSequence sequence;
 
@@ -713,7 +713,7 @@
       scoped_listener_obs{&listener_observer_mock};
   scoped_listener_obs.Observe(battery_listener_.get());
 
-  ClockAdvance(base::TimeDelta::FromSeconds(100));
+  ClockAdvance(base::Seconds(100));
 
   testing::InSequence sequence;
 
@@ -728,7 +728,7 @@
   battery_listener_->DeviceBatteryChanged(mock_adapter_.get(),
                                           mock_device_1_.get(),
                                           /*new_battery_percentage=*/1);
-  ClockAdvance(base::TimeDelta::FromSeconds(1));
+  ClockAdvance(base::Seconds(1));
 
   EXPECT_CALL(listener_observer_mock,
               OnUpdatedBatteryLevel(AllOf(
@@ -739,7 +739,7 @@
       mock_adapter_.get(), mock_device_1_.get(),
       /*new_battery_percentage=*/absl::nullopt);
 
-  ClockAdvance(base::TimeDelta::FromSeconds(1));
+  ClockAdvance(base::Seconds(1));
   EXPECT_CALL(listener_observer_mock,
               OnUpdatedBatteryLevel(AllOf(
                   AFIELD(&BI::key, Eq(kBluetoothDeviceId1)),
@@ -761,7 +761,7 @@
       scoped_listener_obs{&listener_observer_mock};
   scoped_listener_obs.Observe(battery_listener_.get());
 
-  ClockAdvance(base::TimeDelta::FromSeconds(100));
+  ClockAdvance(base::Seconds(100));
 
   testing::InSequence sequence;
 
@@ -776,7 +776,7 @@
                                           mock_device_1_.get(),
                                           /*new_battery_percentage=*/1);
 
-  ClockAdvance(base::TimeDelta::FromSeconds(1));
+  ClockAdvance(base::Seconds(1));
   EXPECT_CALL(listener_observer_mock,
               OnUpdatedBatteryLevel(AllOf(
                   AFIELD(&BI::key, Eq(kBluetoothDeviceId1)),
@@ -786,7 +786,7 @@
       mock_adapter_.get(), mock_device_1_.get(),
       /*new_battery_percentage=*/absl::nullopt);
 
-  ClockAdvance(base::TimeDelta::FromSeconds(100));
+  ClockAdvance(base::Seconds(100));
   EXPECT_CALL(listener_observer_mock,
               OnUpdatedBatteryLevel(AllOf(
                   AFIELD(&BI::key, Eq(kBluetoothDeviceId1)),
@@ -808,7 +808,7 @@
 
   testing::InSequence sequence;
 
-  ClockAdvance(base::TimeDelta::FromSeconds(100));
+  ClockAdvance(base::Seconds(100));
 
   EXPECT_CALL(listener_observer_mock,
               OnAddingBattery(AFIELD(&BI::key, Eq(kBluetoothDeviceId1))));
@@ -822,7 +822,7 @@
                                           /*new_battery_percentage=*/5);
 
   // The battery level remains low, should update the notification.
-  ClockAdvance(base::TimeDelta::FromSeconds(100));
+  ClockAdvance(base::Seconds(100));
   EXPECT_CALL(listener_observer_mock,
               OnUpdatedBatteryLevel(AllOf(
                   AFIELD(&BI::key, Eq(kBluetoothDeviceId1)),
@@ -1240,7 +1240,7 @@
   scoped_listener_obs.Observe(battery_listener_.get());
 
   // Level 50 at time 100, listener should be notified.
-  ClockAdvance(base::TimeDelta::FromSeconds(100));
+  ClockAdvance(base::Seconds(100));
 
   EXPECT_CALL(listener_observer_mock,
               OnAddingBattery(AFIELD(&BI::key, Eq(kTestStylusBatteryPath))));
@@ -1276,7 +1276,7 @@
   scoped_listener_obs.Observe(battery_listener_.get());
 
   // Level 50 at time 100, listener should be notified.
-  ClockAdvance(base::TimeDelta::FromSeconds(100));
+  ClockAdvance(base::Seconds(100));
 
   Expectation a = EXPECT_CALL(
       listener_observer_mock,
@@ -1327,7 +1327,7 @@
   scoped_listener_obs.Observe(battery_listener_.get());
 
   // Level 50 at time 100, listener should be notified.
-  ClockAdvance(base::TimeDelta::FromSeconds(100));
+  ClockAdvance(base::Seconds(100));
 
   Sequence a, b;
 
@@ -1387,7 +1387,7 @@
   scoped_listener_obs.Observe(battery_listener_.get());
 
   // Level 50 at time 100, listener should be notified.
-  ClockAdvance(base::TimeDelta::FromSeconds(100));
+  ClockAdvance(base::Seconds(100));
 
   Sequence a, b;
 
@@ -1449,8 +1449,7 @@
       .InSequence(a, b);
 
   // Move time forward more than enough to fully charge, ensuring timers fire.
-  task_environment()->FastForwardBy(
-      base::TimeDelta::FromSeconds(kFullGarageChargeTime));
+  task_environment()->FastForwardBy(base::Seconds(kFullGarageChargeTime));
 }
 
 TEST_F(PeripheralBatteryListenerIncompleteDevicesTest,
@@ -1466,7 +1465,7 @@
   scoped_listener_obs.Observe(battery_listener_.get());
 
   // Level 50 at time 100, listener should be notified.
-  ClockAdvance(base::TimeDelta::FromSeconds(100));
+  ClockAdvance(base::Seconds(100));
 
   Sequence a, b;
 
@@ -1530,8 +1529,7 @@
                   AFIELD(&BI::charge_status, Eq(BI::ChargeStatus::kFull)))));
 
   // Move time forward more than enough to fully charge, ensuring timers fire.
-  task_environment()->FastForwardBy(
-      base::TimeDelta::FromSeconds(kFullGarageChargeTime));
+  task_environment()->FastForwardBy(base::Seconds(kFullGarageChargeTime));
 }
 
 TEST_F(PeripheralBatteryListenerIncompleteDevicesTest,
@@ -1585,7 +1583,7 @@
       kTestStylusBatteryStatusDischargingIn, /*serial_number=*/"",
       kBatteryEventUpdate);
 
-  ClockAdvance(base::TimeDelta::FromSeconds(100));
+  ClockAdvance(base::Seconds(100));
 
   // The rest of these are strictly sequential
   testing::InSequence sequence;
@@ -1602,7 +1600,7 @@
   battery_listener_->OnStylusStateChanged(ui::StylusState::INSERTED);
 
   // Move time forward more than enough to start charging.
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(3));
+  task_environment()->FastForwardBy(base::Seconds(3));
 
   // Remove stylus from garage
 
@@ -1617,8 +1615,7 @@
   battery_listener_->OnStylusStateChanged(ui::StylusState::REMOVED);
 
   // Move time forward enough for anything to go wrong with the timers.
-  task_environment()->FastForwardBy(
-      base::TimeDelta::FromSeconds(kPartialGarageChargeTime));
+  task_environment()->FastForwardBy(base::Seconds(kPartialGarageChargeTime));
 }
 
 TEST_F(PeripheralBatteryListenerIncompleteDevicesTest, GarageChargingResumed) {
@@ -1672,7 +1669,7 @@
       kTestStylusBatteryStatusDischargingIn, /*serial_number=*/"",
       kBatteryEventUpdate);
 
-  ClockAdvance(base::TimeDelta::FromSeconds(100));
+  ClockAdvance(base::Seconds(100));
 
   // The rest of these are strictly sequential
   testing::InSequence sequence;
@@ -1689,8 +1686,7 @@
   battery_listener_->OnStylusStateChanged(ui::StylusState::INSERTED);
 
   // Move time forward more than enough to start charging.
-  task_environment()->FastForwardBy(
-      base::TimeDelta::FromSeconds(kPartialGarageChargeTime));
+  task_environment()->FastForwardBy(base::Seconds(kPartialGarageChargeTime));
 
   // Remove stylus from garage
 
@@ -1705,8 +1701,7 @@
   battery_listener_->OnStylusStateChanged(ui::StylusState::REMOVED);
 
   // Move time forward enough for anything to go wrong with the timers.
-  task_environment()->FastForwardBy(
-      base::TimeDelta::FromSeconds(kPartialGarageChargeTime));
+  task_environment()->FastForwardBy(base::Seconds(kPartialGarageChargeTime));
 
   // Replace stylus, let run to full charge.
 
@@ -1731,8 +1726,7 @@
   battery_listener_->OnStylusStateChanged(ui::StylusState::INSERTED);
 
   // Move time forward more than enough to fully charge.
-  task_environment()->FastForwardBy(
-      base::TimeDelta::FromSeconds(kFullGarageChargeTime));
+  task_environment()->FastForwardBy(base::Seconds(kFullGarageChargeTime));
 }
 
 // NOTE: Cannot yet mock OzonePlatform::GetInstance()->GetInputController(),
diff --git a/ash/system/power/peripheral_battery_notifier.cc b/ash/system/power/peripheral_battery_notifier.cc
index 8c330a2..0d5bbb6 100644
--- a/ash/system/power/peripheral_battery_notifier.cc
+++ b/ash/system/power/peripheral_battery_notifier.cc
@@ -40,8 +40,7 @@
 const uint8_t kLowBatteryLevel = 16;
 
 // Don't show 2 low battery notification within |kNotificationInterval|.
-constexpr base::TimeDelta kNotificationInterval =
-    base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kNotificationInterval = base::Seconds(60);
 
 constexpr char kNotifierStylusBattery[] = "ash.stylus-battery";
 
diff --git a/ash/system/power/peripheral_battery_notifier_listener_integration_test.cc b/ash/system/power/peripheral_battery_notifier_listener_integration_test.cc
index 7d8da40..8a1b93d 100644
--- a/ash/system/power/peripheral_battery_notifier_listener_integration_test.cc
+++ b/ash/system/power/peripheral_battery_notifier_listener_integration_test.cc
@@ -174,7 +174,7 @@
 
 TEST_F(PeripheralBatteryNotifierListenerTest, Basic) {
   // Level 50 at time 100, no low-battery notification.
-  ClockAdvance(base::TimeDelta::FromSeconds(100));
+  ClockAdvance(base::Seconds(100));
   SendBatteryUpdate(kTestBatteryPath, kTestDeviceName, 50);
   EXPECT_EQ(1u,
             battery_notifier_->battery_notifications_.count(kTestBatteryId));
@@ -188,7 +188,7 @@
       message_center_->FindVisibleNotificationById(kTestBatteryNotificationId));
 
   // Level 5 at time 110, low-battery notification.
-  ClockAdvance(base::TimeDelta::FromSeconds(10));
+  ClockAdvance(base::Seconds(10));
   SendBatteryUpdate(
       kTestBatteryPath, kTestDeviceName, 5,
       power_manager::
@@ -205,28 +205,28 @@
       PeripheralBatteryNotifier::kStylusNotificationId));
 
   // Level -1 at time 115, cancel previous notification
-  ClockAdvance(base::TimeDelta::FromSeconds(5));
+  ClockAdvance(base::Seconds(5));
   SendBatteryUpdate(kTestBatteryPath, kTestDeviceName, -1);
   EXPECT_EQ(absl::nullopt, info.level);
-  EXPECT_EQ(GetTestingClock() - base::TimeDelta::FromSeconds(5),
+  EXPECT_EQ(GetTestingClock() - base::Seconds(5),
             info.last_notification_timestamp);
   EXPECT_FALSE(
       message_center_->FindVisibleNotificationById(kTestBatteryNotificationId));
 
   // Level 50 at time 120, no low-battery notification.
-  ClockAdvance(base::TimeDelta::FromSeconds(5));
+  ClockAdvance(base::Seconds(5));
   SendBatteryUpdate(kTestBatteryPath, kTestDeviceName, 50);
   EXPECT_EQ(absl::nullopt, info.level);
-  EXPECT_EQ(GetTestingClock() - base::TimeDelta::FromSeconds(10),
+  EXPECT_EQ(GetTestingClock() - base::Seconds(10),
             info.last_notification_timestamp);
   EXPECT_FALSE(
       message_center_->FindVisibleNotificationById(kTestBatteryNotificationId));
 
   // Level 5 at time 130, no low-battery notification (throttling).
-  ClockAdvance(base::TimeDelta::FromSeconds(10));
+  ClockAdvance(base::Seconds(10));
   SendBatteryUpdate(kTestBatteryPath, kTestDeviceName, 5);
   EXPECT_EQ(5, info.level);
-  EXPECT_EQ(GetTestingClock() - base::TimeDelta::FromSeconds(20),
+  EXPECT_EQ(GetTestingClock() - base::Seconds(20),
             info.last_notification_timestamp);
   EXPECT_FALSE(
       message_center_->FindVisibleNotificationById(kTestBatteryNotificationId));
@@ -557,7 +557,7 @@
 // threshold before kNotificationInterval is completed.
 TEST_F(PeripheralBatteryNotifierListenerTest,
        DontShowSecondNotificationWithinASmallTimeInterval) {
-  ClockAdvance(base::TimeDelta::FromSeconds(100));
+  ClockAdvance(base::Seconds(100));
 
   // Post a notification.
   battery_listener_->DeviceBatteryChanged(mock_adapter_.get(),
@@ -567,7 +567,7 @@
       kBluetoothDeviceNotificationId1));
 
   // Cancel the notification.
-  ClockAdvance(base::TimeDelta::FromSeconds(1));
+  ClockAdvance(base::Seconds(1));
   battery_listener_->DeviceBatteryChanged(
       mock_adapter_.get(), mock_device_1_.get(),
       /*new_battery_percentage=*/absl::nullopt);
@@ -576,7 +576,7 @@
 
   // The battery level falls below the threshold after a short time period. No
   // notification should get posted.
-  ClockAdvance(base::TimeDelta::FromSeconds(1));
+  ClockAdvance(base::Seconds(1));
   battery_listener_->DeviceBatteryChanged(mock_adapter_.get(),
                                           mock_device_1_.get(),
                                           /*new_battery_percentage=*/1);
@@ -588,7 +588,7 @@
 // then is again under the threshold after kNotificationInterval is completed.
 TEST_F(PeripheralBatteryNotifierListenerTest,
        PostNotificationIfBatteryGoesFromUnknownLevelToBelowThreshold) {
-  ClockAdvance(base::TimeDelta::FromSeconds(100));
+  ClockAdvance(base::Seconds(100));
 
   // Post a notification.
   battery_listener_->DeviceBatteryChanged(mock_adapter_.get(),
@@ -598,7 +598,7 @@
       kBluetoothDeviceNotificationId1));
 
   // Cancel the notification.
-  ClockAdvance(base::TimeDelta::FromSeconds(1));
+  ClockAdvance(base::Seconds(1));
   battery_listener_->DeviceBatteryChanged(
       mock_adapter_.get(), mock_device_1_.get(),
       /*new_battery_percentage=*/absl::nullopt);
@@ -606,7 +606,7 @@
       kBluetoothDeviceNotificationId1));
 
   // Post notification if we are out of the kNotificationInterval.
-  ClockAdvance(base::TimeDelta::FromSeconds(100));
+  ClockAdvance(base::Seconds(100));
   battery_listener_->DeviceBatteryChanged(mock_adapter_.get(),
                                           mock_device_1_.get(),
                                           /*new_battery_percentage=*/1);
@@ -618,7 +618,7 @@
 // dismissed the previous notification.
 TEST_F(PeripheralBatteryNotifierListenerTest,
        DontRepostNotificationIfUserDismissedPreviousOne) {
-  ClockAdvance(base::TimeDelta::FromSeconds(100));
+  ClockAdvance(base::Seconds(100));
 
   battery_listener_->DeviceBatteryChanged(mock_adapter_.get(),
                                           mock_device_1_.get(),
@@ -630,7 +630,7 @@
       /*by_user=*/true, message_center::MessageCenter::RemoveType::ALL);
 
   // The battery level remains low, but shouldn't post a notification.
-  ClockAdvance(base::TimeDelta::FromSeconds(100));
+  ClockAdvance(base::Seconds(100));
   battery_listener_->DeviceBatteryChanged(mock_adapter_.get(),
                                           mock_device_1_.get(),
                                           /*new_battery_percentage=*/3);
@@ -640,7 +640,7 @@
 // If there is an existing notification and the battery level remains low,
 // update its content.
 TEST_F(PeripheralBatteryNotifierListenerTest, UpdateNotificationIfVisible) {
-  ClockAdvance(base::TimeDelta::FromSeconds(100));
+  ClockAdvance(base::Seconds(100));
 
   battery_listener_->DeviceBatteryChanged(mock_adapter_.get(),
                                           mock_device_1_.get(),
@@ -648,7 +648,7 @@
   EXPECT_EQ(1u, message_center_->NotificationCount());
 
   // The battery level remains low, should update the notification.
-  ClockAdvance(base::TimeDelta::FromSeconds(100));
+  ClockAdvance(base::Seconds(100));
   battery_listener_->DeviceBatteryChanged(mock_adapter_.get(),
                                           mock_device_1_.get(),
                                           /*new_battery_percentage=*/3);
diff --git a/ash/system/power/peripheral_battery_notifier_unittest.cc b/ash/system/power/peripheral_battery_notifier_unittest.cc
index efa8c79..4499b44 100644
--- a/ash/system/power/peripheral_battery_notifier_unittest.cc
+++ b/ash/system/power/peripheral_battery_notifier_unittest.cc
@@ -145,7 +145,7 @@
 TEST_F(PeripheralBatteryNotifierTest, Basic) {
 
   // Level 50 at time 100, no low-battery notification.
-  ClockAdvance(base::TimeDelta::FromSeconds(100));
+  ClockAdvance(base::Seconds(100));
   UpdateBatteryLevel(true, kTestBatteryId, kTestDeviceName16, 50,
                      /*battery_report_eligible=*/true,
                      BI::PeripheralType::kOther, kTestBatteryAddress);
@@ -161,7 +161,7 @@
       message_center_->FindVisibleNotificationById(kTestBatteryNotificationId));
 
   // Level 5 at time 110, low-battery notification.
-  ClockAdvance(base::TimeDelta::FromSeconds(10));
+  ClockAdvance(base::Seconds(10));
   UpdateBatteryLevel(false, kTestBatteryId, kTestDeviceName16, 5,
                      /*battery_report_eligible=*/true,
                      BI::PeripheralType::kOther, kTestBatteryAddress);
@@ -176,34 +176,34 @@
       PeripheralBatteryNotifier::kStylusNotificationId));
 
   // Level -1 at time 115, cancel previous notification.
-  ClockAdvance(base::TimeDelta::FromSeconds(5));
+  ClockAdvance(base::Seconds(5));
   UpdateBatteryLevel(false, kTestBatteryId, kTestDeviceName16, absl::nullopt,
                      /*battery_report_eligible=*/true,
                      BI::PeripheralType::kOther, kTestBatteryAddress);
   EXPECT_EQ(absl::nullopt, info.level);
-  EXPECT_EQ(GetTestingClock() - base::TimeDelta::FromSeconds(5),
+  EXPECT_EQ(GetTestingClock() - base::Seconds(5),
             info.last_notification_timestamp);
   EXPECT_FALSE(
       message_center_->FindVisibleNotificationById(kTestBatteryNotificationId));
 
   // Level 50 at time 120, no low-battery notification.
-  ClockAdvance(base::TimeDelta::FromSeconds(5));
+  ClockAdvance(base::Seconds(5));
   UpdateBatteryLevel(false, kTestBatteryId, kTestDeviceName16, 50,
                      /*battery_report_eligible=*/true,
                      BI::PeripheralType::kOther, kTestBatteryAddress);
   EXPECT_EQ(absl::nullopt, info.level);
-  EXPECT_EQ(GetTestingClock() - base::TimeDelta::FromSeconds(10),
+  EXPECT_EQ(GetTestingClock() - base::Seconds(10),
             info.last_notification_timestamp);
   EXPECT_FALSE(
       message_center_->FindVisibleNotificationById(kTestBatteryNotificationId));
 
   // Level 5 at time 130, no low-battery notification (throttling).
-  ClockAdvance(base::TimeDelta::FromSeconds(10));
+  ClockAdvance(base::Seconds(10));
   UpdateBatteryLevel(false, kTestBatteryId, kTestDeviceName16, 5,
                      /*battery_report_eligible=*/true,
                      BI::PeripheralType::kOther, kTestBatteryAddress);
   EXPECT_EQ(5, info.level);
-  EXPECT_EQ(GetTestingClock() - base::TimeDelta::FromSeconds(20),
+  EXPECT_EQ(GetTestingClock() - base::Seconds(20),
             info.last_notification_timestamp);
   EXPECT_FALSE(
       message_center_->FindVisibleNotificationById(kTestBatteryNotificationId));
@@ -211,7 +211,7 @@
 
 TEST_F(PeripheralBatteryNotifierTest, EarlyNotification) {
   // Level 15 at time 10, low-battery notification.
-  ClockAdvance(base::TimeDelta::FromSeconds(10));
+  ClockAdvance(base::Seconds(10));
   UpdateBatteryLevel(true, kTestBatteryId, kTestDeviceName16, 15,
                      /*battery_report_eligible=*/true,
                      BI::PeripheralType::kOther, kTestBatteryAddress);
@@ -394,7 +394,7 @@
 // threshold before kNotificationInterval is completed.
 TEST_F(PeripheralBatteryNotifierTest,
        DontShowSecondNotificationWithinASmallTimeInterval) {
-  ClockAdvance(base::TimeDelta::FromSeconds(100));
+  ClockAdvance(base::Seconds(100));
 
   // Post a notification.
 
@@ -405,7 +405,7 @@
       kBluetoothDeviceNotificationId1));
 
   // Cancel the notification.
-  ClockAdvance(base::TimeDelta::FromSeconds(1));
+  ClockAdvance(base::Seconds(1));
   UpdateBatteryLevel(false, kBluetoothDeviceId1, kBluetoothDeviceName116,
                      absl::nullopt, /*battery_report_eligible=*/true,
                      BI::PeripheralType::kOther, kBluetoothDeviceAddress1);
@@ -414,7 +414,7 @@
 
   // The battery level falls below the threshold after a short time period. No
   // notification should get posted.
-  ClockAdvance(base::TimeDelta::FromSeconds(1));
+  ClockAdvance(base::Seconds(1));
   UpdateBatteryLevel(true, kBluetoothDeviceId1, kBluetoothDeviceName116, 1,
                      /*battery_report_eligible=*/true,
                      BI::PeripheralType::kOther, kBluetoothDeviceAddress1);
@@ -426,7 +426,7 @@
 // then is again under the threshold after kNotificationInterval is completed.
 TEST_F(PeripheralBatteryNotifierTest,
        PostNotificationIfBatteryGoesFromUnknownLevelToBelowThreshold) {
-  ClockAdvance(base::TimeDelta::FromSeconds(100));
+  ClockAdvance(base::Seconds(100));
 
   // Post a notification.
   UpdateBatteryLevel(true, kBluetoothDeviceId1, kBluetoothDeviceName116, 1,
@@ -436,7 +436,7 @@
       kBluetoothDeviceNotificationId1));
 
   // Cancel the notification.
-  ClockAdvance(base::TimeDelta::FromSeconds(1));
+  ClockAdvance(base::Seconds(1));
   UpdateBatteryLevel(true, kBluetoothDeviceId1, kBluetoothDeviceName116,
                      absl::nullopt, /*battery_report_eligible=*/true,
                      BI::PeripheralType::kOther, kBluetoothDeviceAddress1);
@@ -444,7 +444,7 @@
       kBluetoothDeviceNotificationId1));
 
   // Post notification if we are out of the kNotificationInterval.
-  ClockAdvance(base::TimeDelta::FromSeconds(100));
+  ClockAdvance(base::Seconds(100));
   UpdateBatteryLevel(true, kBluetoothDeviceId1, kBluetoothDeviceName116, 1,
                      /*battery_report_eligible=*/true,
                      BI::PeripheralType::kOther, kBluetoothDeviceAddress1);
@@ -456,7 +456,7 @@
 // dismissed the previous notification.
 TEST_F(PeripheralBatteryNotifierTest,
        DontRepostNotificationIfUserDismissedPreviousOne) {
-  ClockAdvance(base::TimeDelta::FromSeconds(100));
+  ClockAdvance(base::Seconds(100));
 
   UpdateBatteryLevel(true, kBluetoothDeviceId1, kBluetoothDeviceName116, 5,
                      /*battery_report_eligible=*/true,
@@ -468,7 +468,7 @@
       /*by_user=*/true, message_center::MessageCenter::RemoveType::ALL);
 
   // The battery level remains low, but shouldn't post a notification.
-  ClockAdvance(base::TimeDelta::FromSeconds(100));
+  ClockAdvance(base::Seconds(100));
   UpdateBatteryLevel(true, kBluetoothDeviceId1, kBluetoothDeviceName116, 5,
                      /*battery_report_eligible=*/true,
                      BI::PeripheralType::kOther, kBluetoothDeviceAddress1);
@@ -478,7 +478,7 @@
 // If there is an existing notification and the battery level remains low,
 // update its content.
 TEST_F(PeripheralBatteryNotifierTest, UpdateNotificationIfVisible) {
-  ClockAdvance(base::TimeDelta::FromSeconds(100));
+  ClockAdvance(base::Seconds(100));
 
   UpdateBatteryLevel(true, kBluetoothDeviceId1, kBluetoothDeviceName116, 5,
                      /*battery_report_eligible=*/true,
@@ -486,7 +486,7 @@
   EXPECT_EQ(1u, message_center_->NotificationCount());
 
   // The battery level remains low, should update the notification.
-  ClockAdvance(base::TimeDelta::FromSeconds(100));
+  ClockAdvance(base::Seconds(100));
   UpdateBatteryLevel(true, kBluetoothDeviceId1, kBluetoothDeviceName116, 3,
                      /*battery_report_eligible=*/true,
                      BI::PeripheralType::kOther, kBluetoothDeviceAddress1);
@@ -499,7 +499,7 @@
 }
 
 TEST_F(PeripheralBatteryNotifierTest, OpenBluetoothSettingsUi) {
-  ClockAdvance(base::TimeDelta::FromSeconds(100));
+  ClockAdvance(base::Seconds(100));
 
   UpdateBatteryLevel(true, kBluetoothDeviceId1, kBluetoothDeviceName116, 5,
                      /*battery_report_eligible=*/true,
diff --git a/ash/system/power/power_button_controller.cc b/ash/system/power/power_button_controller.cc
index 55d4b675..112c11d 100644
--- a/ash/system/power/power_button_controller.cc
+++ b/ash/system/power/power_button_controller.cc
@@ -42,14 +42,14 @@
 // for convertible/slate/detachable devices. This differs depending on whether
 // the screen is on or off when the power button is initially pressed.
 constexpr base::TimeDelta kShowMenuWhenScreenOnTimeout =
-    base::TimeDelta::FromMilliseconds(500);
+    base::Milliseconds(500);
 constexpr base::TimeDelta kShowMenuWhenScreenOffTimeout =
-    base::TimeDelta::FromMilliseconds(2000);
+    base::Milliseconds(2000);
 
 // Time that power button should be pressed after power menu is shown before
 // starting the cancellable pre-shutdown animation.
 constexpr base::TimeDelta kStartShutdownAnimationTimeout =
-    base::TimeDelta::FromMilliseconds(650);
+    base::Milliseconds(650);
 
 enum PowerButtonUpState {
   UP_NONE = 0,
diff --git a/ash/system/power/power_button_controller.h b/ash/system/power/power_button_controller.h
index ee7a618..15970d44 100644
--- a/ash/system/power/power_button_controller.h
+++ b/ash/system/power/power_button_controller.h
@@ -62,18 +62,18 @@
   // Amount of time since last screen state change that power button event needs
   // to be ignored.
   static constexpr base::TimeDelta kScreenStateChangeDelay =
-      base::TimeDelta::FromMilliseconds(500);
+      base::Milliseconds(500);
 
   // Ignore button-up events occurring within this many milliseconds of the
   // previous button-up event. This prevents us from falling behind if the power
   // button is pressed repeatedly.
   static constexpr base::TimeDelta kIgnoreRepeatedButtonUpDelay =
-      base::TimeDelta::FromMilliseconds(500);
+      base::Milliseconds(500);
 
   // Amount of time since last SuspendDone() that power button event needs to be
   // ignored.
   static constexpr base::TimeDelta kIgnorePowerButtonAfterResumeDelay =
-      base::TimeDelta::FromSeconds(2);
+      base::Seconds(2);
 
   // Value of switches::kAshPowerButtonPosition stored in JSON format. These
   // are the field names of the flag.
diff --git a/ash/system/power/power_button_controller_unittest.cc b/ash/system/power/power_button_controller_unittest.cc
index 1c66ead..acce672a 100644
--- a/ash/system/power/power_button_controller_unittest.cc
+++ b/ash/system/power/power_button_controller_unittest.cc
@@ -82,7 +82,7 @@
     // avoid events being ignored.
     tick_clock_.Advance(
         PowerButtonController::kIgnorePowerButtonAfterResumeDelay +
-        base::TimeDelta::FromMilliseconds(2));
+        base::Milliseconds(2));
 
     // Run the event loop so that PowerButtonDisplayController can receive the
     // initial backlights-forced-off state.
@@ -445,7 +445,7 @@
 
   // Send the power button event after a short delay and check that backlights
   // are not forced off.
-  tick_clock_.Advance(base::TimeDelta::FromMilliseconds(500));
+  tick_clock_.Advance(base::Milliseconds(500));
   PressPowerButton();
   EXPECT_TRUE(power_button_test_api_->PowerButtonMenuTimerIsRunning());
   ReleasePowerButton();
@@ -454,7 +454,7 @@
 
   // Send the power button event after a longer delay and check that backlights
   // are forced off.
-  tick_clock_.Advance(base::TimeDelta::FromMilliseconds(1600));
+  tick_clock_.Advance(base::Milliseconds(1600));
   PressPowerButton();
   EXPECT_TRUE(power_button_test_api_->PowerButtonMenuTimerIsRunning());
   ReleasePowerButton();
@@ -481,7 +481,7 @@
 
   // Send the power button event after a short delay and check that backlights
   // are not forced off.
-  tick_clock_.Advance(base::TimeDelta::FromMilliseconds(500));
+  tick_clock_.Advance(base::Milliseconds(500));
   PressPowerButton();
   SendBrightnessChange(kNonZeroBrightness, kUserCause);
   EXPECT_TRUE(power_button_test_api_->PowerButtonMenuTimerIsRunning());
@@ -491,7 +491,7 @@
 
   // Send the power button event after a longer delay and check that backlights
   // are forced off.
-  tick_clock_.Advance(base::TimeDelta::FromMilliseconds(1600));
+  tick_clock_.Advance(base::Milliseconds(1600));
   PressPowerButton();
   EXPECT_TRUE(power_button_test_api_->PowerButtonMenuTimerIsRunning());
   ReleasePowerButton();
@@ -585,7 +585,7 @@
   EXPECT_TRUE(power_button_test_api_->PowerButtonMenuTimerIsRunning());
   EnableTabletMode(false);
   EXPECT_FALSE(power_button_test_api_->PowerButtonMenuTimerIsRunning());
-  tick_clock_.Advance(base::TimeDelta::FromMilliseconds(1500));
+  tick_clock_.Advance(base::Milliseconds(1500));
   ReleasePowerButton();
   EXPECT_FALSE(power_manager_client()->backlights_forced_off());
   EXPECT_FALSE(power_button_test_api_->IsMenuOpened());
@@ -602,7 +602,7 @@
 
   // Test that a pressing-releasing operation after a short duration, backlights
   // forced off is stopped since we don't drop request for power button pressed.
-  tick_clock_.Advance(base::TimeDelta::FromMilliseconds(200));
+  tick_clock_.Advance(base::Milliseconds(200));
   PressPowerButton();
   SendBrightnessChange(kNonZeroBrightness, kUserCause);
   ReleasePowerButton();
@@ -610,13 +610,13 @@
 
   // Test that after another short duration, backlights will not be forced off
   // since this immediately following forcing off request needs to be dropped.
-  tick_clock_.Advance(base::TimeDelta::FromMilliseconds(200));
+  tick_clock_.Advance(base::Milliseconds(200));
   PressPowerButton();
   ReleasePowerButton();
   EXPECT_FALSE(power_manager_client()->backlights_forced_off());
 
   // Test that after another long duration, backlights should be forced off.
-  tick_clock_.Advance(base::TimeDelta::FromMilliseconds(800));
+  tick_clock_.Advance(base::Milliseconds(800));
   PressPowerButton();
   ReleasePowerButton();
   SendBrightnessChange(0, kUserCause);
@@ -638,7 +638,7 @@
   ReleasePowerButton();
   EXPECT_FALSE(power_button_test_api_->IsMenuOpened());
 
-  tick_clock_.Advance(base::TimeDelta::FromMilliseconds(200));
+  tick_clock_.Advance(base::Milliseconds(200));
   PressPowerButton();
   ReleasePowerButton();
   // Showing menu animation should be cancelled and menu is not shown.
@@ -751,7 +751,7 @@
 
   // Since display could still be off, ignore additional button presses.
   tick_clock_.Advance(PowerButtonController::kScreenStateChangeDelay -
-                      base::TimeDelta::FromMilliseconds(1));
+                      base::Milliseconds(1));
   EnableTabletMode(true);
   PressPowerButton();
   ReleasePowerButton();
diff --git a/ash/system/power/power_button_menu_view.h b/ash/system/power/power_button_menu_view.h
index 52b78bcf..0f575ba57 100644
--- a/ash/system/power/power_button_menu_view.h
+++ b/ash/system/power/power_button_menu_view.h
@@ -22,7 +22,7 @@
  public:
   // The duration of showing or dismissing power button menu animation.
   static constexpr base::TimeDelta kMenuAnimationDuration =
-      base::TimeDelta::FromMilliseconds(250);
+      base::Milliseconds(250);
 
   // Distance of the menu animation transform.
   static constexpr int kMenuViewTransformDistanceDp = 16;
diff --git a/ash/system/power/power_button_screenshot_controller.h b/ash/system/power/power_button_screenshot_controller.h
index c05b7b4..81f52ea3 100644
--- a/ash/system/power/power_button_screenshot_controller.h
+++ b/ash/system/power/power_button_screenshot_controller.h
@@ -26,7 +26,7 @@
   // Time that volume down key and power button must be pressed within this
   // interval of each other to make a screenshot.
   static constexpr base::TimeDelta kScreenshotChordDelay =
-      base::TimeDelta::FromMilliseconds(150);
+      base::Milliseconds(150);
 
   explicit PowerButtonScreenshotController(const base::TickClock* tick_clock);
 
diff --git a/ash/system/power/power_button_screenshot_controller_unittest.cc b/ash/system/power/power_button_screenshot_controller_unittest.cc
index 87e1b9e..53f0cebc0 100644
--- a/ash/system/power/power_button_screenshot_controller_unittest.cc
+++ b/ash/system/power/power_button_screenshot_controller_unittest.cc
@@ -75,7 +75,7 @@
     // avoid events being ignored.
     tick_clock_.Advance(
         PowerButtonController::kIgnorePowerButtonAfterResumeDelay +
-        base::TimeDelta::FromMilliseconds(2));
+        base::Milliseconds(2));
 
     ResetScreenshotCount();
   }
@@ -163,14 +163,14 @@
        PowerButtonPressedFirst_Screenshot) {
   PressPowerButton();
   tick_clock_.Advance(PowerButtonScreenshotController::kScreenshotChordDelay -
-                      base::TimeDelta::FromMilliseconds(5));
+                      base::Milliseconds(5));
   PressKey(ui::VKEY_VOLUME_DOWN);
   // Verifies screenshot is taken, volume down is consumed.
   EXPECT_EQ(1, GetScreenshotCount());
   EXPECT_TRUE(LastKeyConsumed());
   // Presses volume up key under screenshot chord condition will not take
   // screenshot again, volume up is also consumed.
-  tick_clock_.Advance(base::TimeDelta::FromMilliseconds(2));
+  tick_clock_.Advance(base::Milliseconds(2));
   ResetScreenshotCount();
   PressKey(ui::VKEY_VOLUME_UP);
   EXPECT_EQ(0, GetScreenshotCount());
@@ -178,13 +178,13 @@
   // Presses volume down key again under screenshot chord condition will not
   // take screenshot and still consume volume down event.
   ResetScreenshotCount();
-  tick_clock_.Advance(base::TimeDelta::FromMilliseconds(2));
+  tick_clock_.Advance(base::Milliseconds(2));
   PressKey(ui::VKEY_VOLUME_DOWN);
   EXPECT_EQ(0, GetScreenshotCount());
   EXPECT_TRUE(LastKeyConsumed());
   // Keeps pressing volume down key outside of screenshot chord condition will
   // not take screenshot and still consume volume down event.
-  tick_clock_.Advance(base::TimeDelta::FromMilliseconds(2));
+  tick_clock_.Advance(base::Milliseconds(2));
   PressKey(ui::VKEY_VOLUME_DOWN);
   EXPECT_EQ(0, GetScreenshotCount());
   EXPECT_TRUE(LastKeyConsumed());
@@ -221,25 +221,25 @@
   // Presses power button under screenshot chord condition, and verifies that
   // screenshot is taken.
   tick_clock_.Advance(PowerButtonScreenshotController::kScreenshotChordDelay -
-                      base::TimeDelta::FromMilliseconds(5));
+                      base::Milliseconds(5));
   PressPowerButton();
   EXPECT_EQ(1, GetScreenshotCount());
   // Presses volume down key under screenshot chord condition will not take
   // screenshot, volume down is also consumed.
-  tick_clock_.Advance(base::TimeDelta::FromMilliseconds(2));
+  tick_clock_.Advance(base::Milliseconds(2));
   ResetScreenshotCount();
   PressKey(ui::VKEY_VOLUME_DOWN);
   EXPECT_EQ(0, GetScreenshotCount());
   EXPECT_TRUE(LastKeyConsumed());
   // Presses volume up key under screenshot chord condition again will not take
   // screenshot and still consume volume up event.
-  tick_clock_.Advance(base::TimeDelta::FromMilliseconds(2));
+  tick_clock_.Advance(base::Milliseconds(2));
   PressKey(ui::VKEY_VOLUME_UP);
   EXPECT_EQ(0, GetScreenshotCount());
   EXPECT_TRUE(LastKeyConsumed());
   // Keeps pressing volume up key outside of screenshot chord condition will not
   // take screenshot and still consume volume up event.
-  tick_clock_.Advance(base::TimeDelta::FromMilliseconds(2));
+  tick_clock_.Advance(base::Milliseconds(2));
   PressKey(ui::VKEY_VOLUME_UP);
   EXPECT_EQ(0, GetScreenshotCount());
   EXPECT_TRUE(LastKeyConsumed());
@@ -375,21 +375,21 @@
        PowerButtonPressedFirst_ScreenshotChord) {
   PressPowerButton();
   tick_clock_.Advance(PowerButtonScreenshotController::kScreenshotChordDelay -
-                      base::TimeDelta::FromMilliseconds(2));
+                      base::Milliseconds(2));
   PressKey(key_code());
   // Verifies screenshot is taken, volume down/up is consumed.
   EXPECT_EQ(1, GetScreenshotCount());
   EXPECT_TRUE(LastKeyConsumed());
   // Keeps pressing volume down/up key under screenshot chord condition will not
   // take screenshot again, volume down/up is also consumed.
-  tick_clock_.Advance(base::TimeDelta::FromMilliseconds(1));
+  tick_clock_.Advance(base::Milliseconds(1));
   ResetScreenshotCount();
   PressKey(key_code());
   EXPECT_EQ(0, GetScreenshotCount());
   EXPECT_TRUE(LastKeyConsumed());
   // Keeps pressing volume down/up key off screenshot chord condition will not
   // take screenshot and still consume volume down/up event.
-  tick_clock_.Advance(base::TimeDelta::FromMilliseconds(2));
+  tick_clock_.Advance(base::Milliseconds(2));
   PressKey(key_code());
   EXPECT_EQ(0, GetScreenshotCount());
   EXPECT_TRUE(LastKeyConsumed());
@@ -409,14 +409,14 @@
        PowerButtonPressedFirst_NoScreenshotChord) {
   PressPowerButton();
   tick_clock_.Advance(PowerButtonScreenshotController::kScreenshotChordDelay +
-                      base::TimeDelta::FromMilliseconds(1));
+                      base::Milliseconds(1));
   PressKey(key_code());
   // Verifies screenshot is not taken, volume down/up is not consumed.
   EXPECT_EQ(0, GetScreenshotCount());
   EXPECT_FALSE(LastKeyConsumed());
   // Keeps pressing volume down/up key should continue triggerring volume
   // down/up.
-  tick_clock_.Advance(base::TimeDelta::FromMilliseconds(2));
+  tick_clock_.Advance(base::Milliseconds(2));
   PressKey(key_code());
   EXPECT_EQ(0, GetScreenshotCount());
   EXPECT_FALSE(LastKeyConsumed());
@@ -468,19 +468,19 @@
   // Presses power button under screenshot chord condition, and verifies that
   // screenshot is taken.
   tick_clock_.Advance(PowerButtonScreenshotController::kScreenshotChordDelay -
-                      base::TimeDelta::FromMilliseconds(2));
+                      base::Milliseconds(2));
   PressPowerButton();
   EXPECT_EQ(1, GetScreenshotCount());
   // Keeps pressing volume down/up key under screenshot chord condition will not
   // take screenshot again, volume down/up is also consumed.
-  tick_clock_.Advance(base::TimeDelta::FromMilliseconds(1));
+  tick_clock_.Advance(base::Milliseconds(1));
   ResetScreenshotCount();
   PressKey(key_code());
   EXPECT_EQ(0, GetScreenshotCount());
   EXPECT_TRUE(LastKeyConsumed());
   // Keeps pressing volume down/up key off screenshot chord condition will not
   // take screenshot and still consume volume down/up event.
-  tick_clock_.Advance(base::TimeDelta::FromMilliseconds(2));
+  tick_clock_.Advance(base::Milliseconds(2));
   PressKey(key_code());
   EXPECT_EQ(0, GetScreenshotCount());
   EXPECT_TRUE(LastKeyConsumed());
@@ -506,7 +506,7 @@
   // trigger volume down/up timer timeout, which will perform a volume down/up
   // operation.
   tick_clock_.Advance(PowerButtonScreenshotController::kScreenshotChordDelay +
-                      base::TimeDelta::FromMilliseconds(1));
+                      base::Milliseconds(1));
   if (key_code() == ui::VKEY_VOLUME_DOWN)
     EXPECT_TRUE(screenshot_test_api_->TriggerVolumeDownTimer());
   else
@@ -516,7 +516,7 @@
   EXPECT_EQ(0, GetScreenshotCount());
   // Keeps pressing volume down/up key should continue triggerring volume
   // down/up.
-  tick_clock_.Advance(base::TimeDelta::FromMilliseconds(2));
+  tick_clock_.Advance(base::Milliseconds(2));
   PressKey(key_code());
   EXPECT_EQ(0, GetScreenshotCount());
   EXPECT_FALSE(LastKeyConsumed());
diff --git a/ash/system/power/power_button_test_base.cc b/ash/system/power/power_button_test_base.cc
index 7b57daf..e3c99d1 100644
--- a/ash/system/power/power_button_test_base.cc
+++ b/ash/system/power/power_button_test_base.cc
@@ -124,7 +124,7 @@
 
 void PowerButtonTestBase::AdvanceClockToAvoidIgnoring() {
   tick_clock_.Advance(PowerButtonController::kIgnoreRepeatedButtonUpDelay +
-                      base::TimeDelta::FromMilliseconds(1));
+                      base::Milliseconds(1));
 }
 
 }  // namespace ash
diff --git a/ash/system/power/power_notification_controller.cc b/ash/system/power/power_notification_controller.cc
index 40f46a4..7205696 100644
--- a/ash/system/power/power_notification_controller.cc
+++ b/ash/system/power/power_notification_controller.cc
@@ -215,7 +215,7 @@
   // The notification includes a rounded minutes value, so round the estimate
   // received from the power manager to match.
   const int remaining_minutes =
-      base::ClampRound(*remaining_time / base::TimeDelta::FromMinutes(1));
+      base::ClampRound(*remaining_time / base::Minutes(1));
 
   if (remaining_minutes >= kNoWarningMinutes ||
       PowerStatus::Get()->IsBatteryFull()) {
diff --git a/ash/system/power/power_prefs_unittest.cc b/ash/system/power/power_prefs_unittest.cc
index 520ffae..e364abd 100644
--- a/ash/system/power/power_prefs_unittest.cc
+++ b/ash/system/power/power_prefs_unittest.cc
@@ -196,7 +196,7 @@
     power_prefs_ = ShellTestApi().power_prefs();
 
     // Advance the clock an arbitrary amount of time so it won't report zero.
-    tick_clock_.Advance(base::TimeDelta::FromSeconds(1));
+    tick_clock_.Advance(base::Seconds(1));
     power_prefs_->set_tick_clock_for_test(&tick_clock_);
 
     // Get to Login screen.
@@ -344,19 +344,19 @@
   // If the screen was already off due to inactivity when it was locked, we
   // should continue using the unlocked delays.
   NotifyScreenIdleOffChanged(true);
-  tick_clock_.Advance(base::TimeDelta::FromSeconds(5));
+  tick_clock_.Advance(base::Seconds(5));
   SetLockedState(ScreenLockState::LOCKED);
   EXPECT_EQ(GetExpectedPowerPolicyForPrefs(prefs, ScreenLockState::UNLOCKED),
             GetCurrentPowerPolicy());
 
   // If the screen turns on while still locked, we should switch to the locked
   // delays.
-  tick_clock_.Advance(base::TimeDelta::FromSeconds(5));
+  tick_clock_.Advance(base::Seconds(5));
   NotifyScreenIdleOffChanged(false);
   EXPECT_EQ(GetExpectedPowerPolicyForPrefs(prefs, ScreenLockState::LOCKED),
             GetCurrentPowerPolicy());
 
-  tick_clock_.Advance(base::TimeDelta::FromSeconds(5));
+  tick_clock_.Advance(base::Seconds(5));
   SetLockedState(ScreenLockState::UNLOCKED);
   EXPECT_EQ(GetExpectedPowerPolicyForPrefs(prefs, ScreenLockState::UNLOCKED),
             GetCurrentPowerPolicy());
diff --git a/ash/system/power/power_status.cc b/ash/system/power/power_status.cc
index 57685a2b..c2e4b3a 100644
--- a/ash/system/power/power_status.cc
+++ b/ash/system/power/power_status.cc
@@ -35,21 +35,19 @@
   if (hour && !min) {
     return ui::TimeFormat::Simple(ui::TimeFormat::FORMAT_DURATION,
                                   ui::TimeFormat::LENGTH_LONG,
-                                  base::TimeDelta::FromHours(hour));
+                                  base::Hours(hour));
   }
   if (min && !hour) {
     return ui::TimeFormat::Simple(ui::TimeFormat::FORMAT_DURATION,
                                   ui::TimeFormat::LENGTH_LONG,
-                                  base::TimeDelta::FromMinutes(min));
+                                  base::Minutes(min));
   }
   return l10n_util::GetStringFUTF16(
       IDS_ASH_STATUS_TRAY_BATTERY_TIME_ACCESSIBLE,
       ui::TimeFormat::Simple(ui::TimeFormat::FORMAT_DURATION,
-                             ui::TimeFormat::LENGTH_LONG,
-                             base::TimeDelta::FromHours(hour)),
+                             ui::TimeFormat::LENGTH_LONG, base::Hours(hour)),
       ui::TimeFormat::Simple(ui::TimeFormat::FORMAT_DURATION,
-                             ui::TimeFormat::LENGTH_LONG,
-                             base::TimeDelta::FromMinutes(min)));
+                             ui::TimeFormat::LENGTH_LONG, base::Minutes(min)));
 }
 
 int PowerSourceToMessageID(
@@ -179,7 +177,7 @@
       proto_.battery_time_to_empty_sec() < 0) {
     return absl::nullopt;
   }
-  return base::TimeDelta::FromSeconds(proto_.battery_time_to_empty_sec());
+  return base::Seconds(proto_.battery_time_to_empty_sec());
 }
 
 absl::optional<base::TimeDelta> PowerStatus::GetBatteryTimeToFull() const {
@@ -189,7 +187,7 @@
       proto_.battery_time_to_full_sec() < 0) {
     return absl::nullopt;
   }
-  return base::TimeDelta::FromSeconds(proto_.battery_time_to_full_sec());
+  return base::Seconds(proto_.battery_time_to_full_sec());
 }
 
 bool PowerStatus::IsLinePowerConnected() const {
diff --git a/ash/system/power/power_status_unittest.cc b/ash/system/power/power_status_unittest.cc
index 05d235ed..5e1ac8c 100644
--- a/ash/system/power/power_status_unittest.cc
+++ b/ash/system/power/power_status_unittest.cc
@@ -233,7 +233,7 @@
 
 // Tests that positive time-to-full and time-to-empty estimates are honored.
 TEST_F(PowerStatusTest, PositiveBatteryTimeEstimates) {
-  constexpr auto kTime = base::TimeDelta::FromSeconds(120);
+  constexpr auto kTime = base::Seconds(120);
 
   PowerSupplyProperties prop;
   prop.set_external_power(PowerSupplyProperties::AC);
diff --git a/ash/system/power/video_activity_notifier.cc b/ash/system/power/video_activity_notifier.cc
index 7754134..810e68d 100644
--- a/ash/system/power/video_activity_notifier.cc
+++ b/ash/system/power/video_activity_notifier.cc
@@ -62,8 +62,7 @@
   if (!should_notify_power_manager()) {
     notify_timer_.Stop();
   } else {
-    notify_timer_.Start(FROM_HERE,
-                        base::TimeDelta::FromSeconds(kNotifyIntervalSec), this,
+    notify_timer_.Start(FROM_HERE, base::Seconds(kNotifyIntervalSec), this,
                         &VideoActivityNotifier::MaybeNotifyPowerManager);
   }
 }
diff --git a/ash/system/privacy_screen/privacy_screen_toast_controller.cc b/ash/system/privacy_screen/privacy_screen_toast_controller.cc
index 8857ea32..166e75d 100644
--- a/ash/system/privacy_screen/privacy_screen_toast_controller.cc
+++ b/ash/system/privacy_screen/privacy_screen_toast_controller.cc
@@ -135,8 +135,8 @@
   if (Shell::Get()->accessibility_controller()->spoken_feedback().enabled())
     autoclose_delay = kTrayPopupAutoCloseDelayInSecondsWithSpokenFeedback;
 
-  close_timer_.Start(FROM_HERE, base::TimeDelta::FromSeconds(autoclose_delay),
-                     this, &PrivacyScreenToastController::HideToast);
+  close_timer_.Start(FROM_HERE, base::Seconds(autoclose_delay), this,
+                     &PrivacyScreenToastController::HideToast);
 }
 
 void PrivacyScreenToastController::UpdateToastView() {
diff --git a/ash/system/session/logout_button_tray.cc b/ash/system/session/logout_button_tray.cc
index 4abf7f3..3e5a77d 100644
--- a/ash/system/session/logout_button_tray.cc
+++ b/ash/system/session/logout_button_tray.cc
@@ -105,7 +105,7 @@
 void LogoutButtonTray::UpdateLogoutDialogDuration() {
   const int duration_ms = pref_change_registrar_->prefs()->GetInteger(
       prefs::kLogoutDialogDurationMs);
-  dialog_duration_ = base::TimeDelta::FromMilliseconds(duration_ms);
+  dialog_duration_ = base::Milliseconds(duration_ms);
 }
 
 void LogoutButtonTray::UpdateAfterLoginStatusChange() {
diff --git a/ash/system/session/logout_confirmation_controller.cc b/ash/system/session/logout_confirmation_controller.cc
index 990801b3..7082c5d 100644
--- a/ash/system/session/logout_confirmation_controller.cc
+++ b/ash/system/session/logout_confirmation_controller.cc
@@ -118,7 +118,7 @@
     // No more windows except currently removing. Show logout time.
     Shell::Get()->logout_confirmation_controller()->ConfirmLogout(
         base::TimeTicks::Now() +
-            base::TimeDelta::FromSeconds(kLogoutConfirmationDelayInSeconds),
+            base::Seconds(kLogoutConfirmationDelayInSeconds),
         Source::kCloseAllWindows);
   }
 
diff --git a/ash/system/session/logout_confirmation_controller_unittest.cc b/ash/system/session/logout_confirmation_controller_unittest.cc
index d3504af..331653f 100644
--- a/ash/system/session/logout_confirmation_controller_unittest.cc
+++ b/ash/system/session/logout_confirmation_controller_unittest.cc
@@ -79,12 +79,12 @@
 // Verifies that the user is logged out when the countdown expires.
 TEST_F(LogoutConfirmationControllerTest, DurationExpired) {
   controller_.ConfirmLogout(
-      runner_->NowTicks() + base::TimeDelta::FromSeconds(10),
+      runner_->NowTicks() + base::Seconds(10),
       LogoutConfirmationController::Source::kShelfExitButton);
   EXPECT_FALSE(log_out_called_);
-  runner_->FastForwardBy(base::TimeDelta::FromSeconds(9));
+  runner_->FastForwardBy(base::Seconds(9));
   EXPECT_FALSE(log_out_called_);
-  runner_->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  runner_->FastForwardBy(base::Seconds(2));
   EXPECT_TRUE(log_out_called_);
 }
 
@@ -93,17 +93,17 @@
 // out when the new countdown expires.
 TEST_F(LogoutConfirmationControllerTest, DurationShortened) {
   controller_.ConfirmLogout(
-      runner_->NowTicks() + base::TimeDelta::FromSeconds(30),
+      runner_->NowTicks() + base::Seconds(30),
       LogoutConfirmationController::Source::kShelfExitButton);
   EXPECT_FALSE(log_out_called_);
-  runner_->FastForwardBy(base::TimeDelta::FromSeconds(9));
+  runner_->FastForwardBy(base::Seconds(9));
   EXPECT_FALSE(log_out_called_);
   controller_.ConfirmLogout(
-      runner_->NowTicks() + base::TimeDelta::FromSeconds(10),
+      runner_->NowTicks() + base::Seconds(10),
       LogoutConfirmationController::Source::kShelfExitButton);
-  runner_->FastForwardBy(base::TimeDelta::FromSeconds(9));
+  runner_->FastForwardBy(base::Seconds(9));
   EXPECT_FALSE(log_out_called_);
-  runner_->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  runner_->FastForwardBy(base::Seconds(2));
   EXPECT_TRUE(log_out_called_);
 }
 
@@ -112,15 +112,15 @@
 // out when the original countdown expires.
 TEST_F(LogoutConfirmationControllerTest, DurationExtended) {
   controller_.ConfirmLogout(
-      runner_->NowTicks() + base::TimeDelta::FromSeconds(10),
+      runner_->NowTicks() + base::Seconds(10),
       LogoutConfirmationController::Source::kShelfExitButton);
   EXPECT_FALSE(log_out_called_);
-  runner_->FastForwardBy(base::TimeDelta::FromSeconds(9));
+  runner_->FastForwardBy(base::Seconds(9));
   EXPECT_FALSE(log_out_called_);
   controller_.ConfirmLogout(
-      runner_->NowTicks() + base::TimeDelta::FromSeconds(10),
+      runner_->NowTicks() + base::Seconds(10),
       LogoutConfirmationController::Source::kShelfExitButton);
-  runner_->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  runner_->FastForwardBy(base::Seconds(2));
   EXPECT_TRUE(log_out_called_);
 }
 
@@ -128,7 +128,7 @@
 // user is not logged out, even when the original countdown expires.
 TEST_F(LogoutConfirmationControllerTest, Lock) {
   controller_.ConfirmLogout(
-      runner_->NowTicks() + base::TimeDelta::FromSeconds(10),
+      runner_->NowTicks() + base::Seconds(10),
       LogoutConfirmationController::Source::kShelfExitButton);
   EXPECT_FALSE(log_out_called_);
   controller_.OnLockStateChanged(true);
@@ -140,7 +140,7 @@
 // out immediately.
 TEST_F(LogoutConfirmationControllerTest, UserAccepted) {
   controller_.ConfirmLogout(
-      runner_->NowTicks() + base::TimeDelta::FromSeconds(10),
+      runner_->NowTicks() + base::Seconds(10),
       LogoutConfirmationController::Source::kShelfExitButton);
   EXPECT_FALSE(log_out_called_);
   controller_.OnLogoutConfirmed();
@@ -151,7 +151,7 @@
 // out, even when the original countdown expires.
 TEST_F(LogoutConfirmationControllerTest, UserDenied) {
   controller_.ConfirmLogout(
-      runner_->NowTicks() + base::TimeDelta::FromSeconds(10),
+      runner_->NowTicks() + base::Seconds(10),
       LogoutConfirmationController::Source::kShelfExitButton);
   EXPECT_FALSE(log_out_called_);
   controller_.OnDialogClosed();
@@ -164,7 +164,7 @@
 // expires.
 TEST_F(LogoutConfirmationControllerTest, DurationExpiredAfterDeniedRequest) {
   controller_.ConfirmLogout(
-      runner_->NowTicks() + base::TimeDelta::FromSeconds(10),
+      runner_->NowTicks() + base::Seconds(10),
       LogoutConfirmationController::Source::kShelfExitButton);
   EXPECT_FALSE(log_out_called_);
   controller_.OnDialogClosed();
@@ -172,12 +172,12 @@
   EXPECT_FALSE(log_out_called_);
 
   controller_.ConfirmLogout(
-      runner_->NowTicks() + base::TimeDelta::FromSeconds(10),
+      runner_->NowTicks() + base::Seconds(10),
       LogoutConfirmationController::Source::kShelfExitButton);
   EXPECT_FALSE(log_out_called_);
-  runner_->FastForwardBy(base::TimeDelta::FromSeconds(9));
+  runner_->FastForwardBy(base::Seconds(9));
   EXPECT_FALSE(log_out_called_);
-  runner_->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  runner_->FastForwardBy(base::Seconds(2));
   EXPECT_TRUE(log_out_called_);
 }
 
diff --git a/ash/system/session/logout_confirmation_dialog.cc b/ash/system/session/logout_confirmation_dialog.cc
index ee82431..9ec639b6 100644
--- a/ash/system/session/logout_confirmation_dialog.cc
+++ b/ash/system/session/logout_confirmation_dialog.cc
@@ -67,9 +67,8 @@
   widget->Init(std::move(params));
   widget->Show();
 
-  update_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(kCountdownUpdateIntervalMs),
-      this, &LogoutConfirmationDialog::UpdateLabel);
+  update_timer_.Start(FROM_HERE, base::Milliseconds(kCountdownUpdateIntervalMs),
+                      this, &LogoutConfirmationDialog::UpdateLabel);
 }
 
 LogoutConfirmationDialog::~LogoutConfirmationDialog() = default;
@@ -103,7 +102,7 @@
 void LogoutConfirmationDialog::UpdateLabel() {
   const base::TimeDelta time_remaining =
       logout_time_ - controller_->clock()->NowTicks();
-  if (time_remaining >= base::TimeDelta::FromMilliseconds(kHalfSecondInMs)) {
+  if (time_remaining >= base::Milliseconds(kHalfSecondInMs)) {
     label_->SetText(l10n_util::GetStringFUTF16(
         IDS_ASH_LOGOUT_CONFIRMATION_WARNING,
         l10n_util::GetStringFUTF16Int(
diff --git a/ash/system/session/session_limit_notification_controller.cc b/ash/system/session/session_limit_notification_controller.cc
index 5ac8329..839508b 100644
--- a/ash/system/session/session_limit_notification_controller.cc
+++ b/ash/system/session/session_limit_notification_controller.cc
@@ -25,8 +25,7 @@
 // A notification is shown to the user only if the remaining session time falls
 // under this threshold. e.g. If the user has several days left in their
 // session, there is no use displaying a notification right now.
-constexpr base::TimeDelta kNotificationThreshold =
-    base::TimeDelta::FromMinutes(60);
+constexpr base::TimeDelta kNotificationThreshold = base::Minutes(60);
 
 }  // namespace
 
diff --git a/ash/system/session/session_limit_notification_controller_unittest.cc b/ash/system/session/session_limit_notification_controller_unittest.cc
index 5bd16cec..7737233 100644
--- a/ash/system/session/session_limit_notification_controller_unittest.cc
+++ b/ash/system/session/session_limit_notification_controller_unittest.cc
@@ -29,7 +29,7 @@
 
   void UpdateSessionLengthLimitInMin(int mins) {
     Shell::Get()->session_controller()->SetSessionLengthLimit(
-        base::TimeDelta::FromMinutes(mins), base::Time::Now());
+        base::Minutes(mins), base::Time::Now());
   }
 
   message_center::Notification* GetNotification() {
diff --git a/ash/system/status_area_widget.cc b/ash/system/status_area_widget.cc
index 9897425b..86179e5 100644
--- a/ash/system/status_area_widget.cc
+++ b/ash/system/status_area_widget.cc
@@ -312,7 +312,7 @@
   ui::ScopedLayerAnimationSettings animation_setter(layer->GetAnimator());
   animation_setter.SetTransitionDuration(
       animate ? ShelfConfig::Get()->shelf_animation_duration()
-              : base::TimeDelta::FromMilliseconds(0));
+              : base::Milliseconds(0));
   animation_setter.SetTweenType(gfx::Tween::EASE_OUT);
   animation_setter.SetPreemptionStrategy(
       ui::LayerAnimator::IMMEDIATELY_ANIMATE_TO_NEW_TARGET);
diff --git a/ash/system/time/calendar_month_view.cc b/ash/system/time/calendar_month_view.cc
index 1d31b3ae..a0613d7 100644
--- a/ash/system/time/calendar_month_view.cc
+++ b/ash/system/time/calendar_month_view.cc
@@ -35,7 +35,7 @@
 void MoveToNextDay(int& column_set_id,
                    base::Time& current_date,
                    base::Time::Exploded& current_date_exploded) {
-  current_date += base::TimeDelta::FromDays(1);
+  current_date += base::Days(1);
   current_date.LocalExplode(&current_date_exploded);
   column_set_id = (column_set_id + 1) % calendar_utils::kDateInOneWeek;
 }
@@ -161,8 +161,7 @@
 
   // Calculates the start date.
   base::Time current_date =
-      first_day_of_month -
-      base::TimeDelta::FromDays(first_day_of_month_exploded.day_of_week);
+      first_day_of_month - base::Days(first_day_of_month_exploded.day_of_week);
   base::Time::Exploded current_date_exploded =
       calendar_utils::GetExploded(current_date);
 
@@ -208,8 +207,7 @@
   // Adds the first several days from the next month if the last day is not the
   // end day of this week.
   const base::Time end_of_the_last_row =
-      current_date +
-      base::TimeDelta::FromDays(6 - current_date_exploded.day_of_week);
+      current_date + base::Days(6 - current_date_exploded.day_of_week);
   base::Time::Exploded end_of_row_exploded =
       calendar_utils::GetExploded(end_of_the_last_row);
 
diff --git a/ash/system/time/calendar_view_controller.cc b/ash/system/time/calendar_view_controller.cc
index 549f4a8..edd0e333 100644
--- a/ash/system/time/calendar_view_controller.cc
+++ b/ash/system/time/calendar_view_controller.cc
@@ -36,27 +36,25 @@
 
 base::Time CalendarViewController::GetOnScreenMonthFirstDay() const {
   return current_date_ -
-         base::TimeDelta::FromDays(
-             calendar_utils::GetExploded(current_date_).day_of_month - 1);
+         base::Days(calendar_utils::GetExploded(current_date_).day_of_month -
+                    1);
 }
 
 base::Time CalendarViewController::GetPreviousMonthFirstDay() const {
   const base::Time last_day_of_previous_month =
-      GetOnScreenMonthFirstDay() - base::TimeDelta::FromDays(1);
+      GetOnScreenMonthFirstDay() - base::Days(1);
   return last_day_of_previous_month -
-         base::TimeDelta::FromDays(
-             calendar_utils::GetExploded(last_day_of_previous_month)
-                 .day_of_month -
-             1);
+         base::Days(calendar_utils::GetExploded(last_day_of_previous_month)
+                        .day_of_month -
+                    1);
 }
 
 base::Time CalendarViewController::GetNextMonthFirstDay() const {
   // Adds over 31 days to make sure it goes to the next month.
-  const base::Time next_month_day =
-      GetOnScreenMonthFirstDay() + base::TimeDelta::FromDays(33);
+  const base::Time next_month_day = GetOnScreenMonthFirstDay() + base::Days(33);
   return next_month_day -
-         base::TimeDelta::FromDays(
-             calendar_utils::GetExploded(next_month_day).day_of_month - 1);
+         base::Days(calendar_utils::GetExploded(next_month_day).day_of_month -
+                    1);
 }
 
 std::u16string CalendarViewController::GetPreviousMonthName() {
diff --git a/ash/system/time/time_view.cc b/ash/system/time/time_view.cc
index 3bb5e38..c89b06d 100644
--- a/ash/system/time/time_view.cc
+++ b/ash/system/time/time_view.cc
@@ -297,7 +297,7 @@
   seconds_left += kTimerSlopSeconds;
 
   timer_.Stop();
-  timer_.Start(FROM_HERE, base::TimeDelta::FromSeconds(seconds_left), this,
+  timer_.Start(FROM_HERE, base::Seconds(seconds_left), this,
                &TimeView::UpdateText);
 }
 
diff --git a/ash/system/time/time_view_unittest.cc b/ash/system/time/time_view_unittest.cc
index 65e49b56..8a24a3d8 100644
--- a/ash/system/time/time_view_unittest.cc
+++ b/ash/system/time/time_view_unittest.cc
@@ -137,8 +137,7 @@
 TEST_F(TimeViewTest, UpdateSize) {
   // Set current time to 8:00AM for testing.
   task_environment()->AdvanceClock(base::Time::Now().LocalMidnight() +
-                                   base::TimeDelta::FromHours(32) -
-                                   base::Time::Now());
+                                   base::Hours(32) - base::Time::Now());
 
   // A newly created horizontal clock only has the horizontal label.
   CreateTimeView(TimeView::ClockLayout::HORIZONTAL_CLOCK);
@@ -148,11 +147,11 @@
   EXPECT_FALSE(test_observer.preferred_size_changed_called());
 
   // Move to 9:59AM. There should be no layout change of the `time_view()`.
-  task_environment()->FastForwardBy(base::TimeDelta::FromMinutes(119));
+  task_environment()->FastForwardBy(base::Minutes(119));
   EXPECT_FALSE(test_observer.preferred_size_changed_called());
 
   // Move to 10:00AM. There should be a layout change of the `time_view()`.
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(61));
+  task_environment()->FastForwardBy(base::Seconds(61));
   EXPECT_TRUE(test_observer.preferred_size_changed_called());
 }
 
diff --git a/ash/system/toast/toast_manager_impl.cc b/ash/system/toast/toast_manager_impl.cc
index b918bad7..b11bf73 100644
--- a/ash/system/toast/toast_manager_impl.cc
+++ b/ash/system/toast/toast_manager_impl.cc
@@ -103,7 +103,7 @@
         FROM_HERE,
         base::BindOnce(&ToastManagerImpl::OnDurationPassed,
                        weak_ptr_factory_.GetWeakPtr(), serial_),
-        base::TimeDelta::FromMilliseconds(duration_ms));
+        base::Milliseconds(duration_ms));
   }
 }
 
diff --git a/ash/system/toast/toast_overlay.cc b/ash/system/toast/toast_overlay.cc
index c4a5add..4c0f3d27 100644
--- a/ash/system/toast/toast_overlay.cc
+++ b/ash/system/toast/toast_overlay.cc
@@ -297,8 +297,7 @@
   ::wm::SetWindowVisibilityAnimationType(
       overlay_window, ::wm::WINDOW_VISIBILITY_ANIMATION_TYPE_VERTICAL);
   ::wm::SetWindowVisibilityAnimationDuration(
-      overlay_window,
-      base::TimeDelta::FromMilliseconds(kSlideAnimationDurationMs));
+      overlay_window, base::Milliseconds(kSlideAnimationDurationMs));
 
   keyboard::KeyboardUIController::Get()->AddObserver(this);
 }
diff --git a/ash/system/tray/status_area_overflow_button_tray.cc b/ash/system/tray/status_area_overflow_button_tray.cc
index 1f6de01..d708954 100644
--- a/ash/system/tray/status_area_overflow_button_tray.cc
+++ b/ash/system/tray/status_area_overflow_button_tray.cc
@@ -30,8 +30,7 @@
     : slide_animation_(std::make_unique<gfx::SlideAnimation>(this)) {
   slide_animation_->Reset(1.0);
   slide_animation_->SetTweenType(gfx::Tween::EASE_OUT);
-  slide_animation_->SetSlideDuration(
-      base::TimeDelta::FromMilliseconds(kAnimationDurationMs));
+  slide_animation_->SetSlideDuration(base::Milliseconds(kAnimationDurationMs));
 
   SetPaintToLayer();
   layer()->SetFillsBoundsOpaquely(false);
diff --git a/ash/system/tray/system_nudge.cc b/ash/system/tray/system_nudge.cc
index 9bd9cbc..b93c9a7c 100644
--- a/ash/system/tray/system_nudge.cc
+++ b/ash/system/tray/system_nudge.cc
@@ -46,8 +46,7 @@
 // The padding which separates the nudge's border with its inner contents.
 constexpr int kNudgePadding = 16;
 
-constexpr base::TimeDelta kNudgeBoundsAnimationTime =
-    base::TimeDelta::FromMilliseconds(250);
+constexpr base::TimeDelta kNudgeBoundsAnimationTime = base::Milliseconds(250);
 
 }  // namespace
 
diff --git a/ash/system/tray/system_nudge_controller.cc b/ash/system/tray/system_nudge_controller.cc
index 7496003..6ee94c7d 100644
--- a/ash/system/tray/system_nudge_controller.cc
+++ b/ash/system/tray/system_nudge_controller.cc
@@ -20,10 +20,9 @@
 namespace ash {
 
 namespace {
-constexpr base::TimeDelta kNudgeShowTime = base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kNudgeShowTime = base::Seconds(10);
 constexpr float kNudgeFadeAnimationScale = 1.2f;
-constexpr base::TimeDelta kNudgeFadeAnimationTime =
-    base::TimeDelta::FromMilliseconds(250);
+constexpr base::TimeDelta kNudgeFadeAnimationTime = base::Milliseconds(250);
 constexpr gfx::Tween::Type kNudgeFadeOpacityAnimationTweenType =
     gfx::Tween::LINEAR;
 constexpr gfx::Tween::Type kNudgeFadeScalingAnimationTweenType =
diff --git a/ash/system/tray/tray_background_view.cc b/ash/system/tray/tray_background_view.cc
index 2fc46c5..1c8f1eee 100644
--- a/ash/system/tray/tray_background_view.cc
+++ b/ash/system/tray/tray_background_view.cc
@@ -66,15 +66,14 @@
 
 // Duration of opacity animation for visibility changes.
 constexpr base::TimeDelta kAnimationDurationForVisibilityMs =
-    base::TimeDelta::FromMilliseconds(250);
+    base::Milliseconds(250);
 
 // Duration of opacity animation for hide animation.
-constexpr base::TimeDelta kAnimationDurationForHideMs =
-    base::TimeDelta::FromMilliseconds(100);
+constexpr base::TimeDelta kAnimationDurationForHideMs = base::Milliseconds(100);
 
 // Bounce animation constants
 const base::TimeDelta kAnimationDurationForBounceElement =
-    base::TimeDelta::FromMilliseconds(250);
+    base::Milliseconds(250);
 const int kAnimationBounceUpDistance = 16;
 const int kAnimationBounceDownDistance = 8;
 const float kAnimationBounceScaleFactor = 0.5;
@@ -82,8 +81,7 @@
 // When becoming visible delay the animation so that StatusAreaWidgetDelegate
 // can animate sibling views out of the position to be occupied by the
 // TrayBackgroundView.
-const base::TimeDelta kShowAnimationDelayMs =
-    base::TimeDelta::FromMilliseconds(100);
+const base::TimeDelta kShowAnimationDelayMs = base::Milliseconds(100);
 
 // Switches left and right insets if RTL mode is active.
 void MirrorInsetsIfNecessary(gfx::Insets* insets) {
@@ -304,8 +302,7 @@
       window, ::wm::WINDOW_VISIBILITY_ANIMATION_TYPE_FADE);
   ::wm::SetWindowVisibilityAnimationTransition(window, ::wm::ANIMATE_HIDE);
   ::wm::SetWindowVisibilityAnimationDuration(
-      window,
-      base::TimeDelta::FromMilliseconds(kAnimationDurationForBubblePopupMs));
+      window, base::Milliseconds(kAnimationDurationForBubblePopupMs));
 }
 
 void TrayBackgroundView::SetVisiblePreferred(bool visible_preferred) {
diff --git a/ash/system/tray/tray_background_view_unittest.cc b/ash/system/tray/tray_background_view_unittest.cc
index 8f00011..5cf36b1 100644
--- a/ash/system/tray/tray_background_view_unittest.cc
+++ b/ash/system/tray/tray_background_view_unittest.cc
@@ -140,7 +140,7 @@
   // Here we wait until the animation is finished and we give it one more second
   // to finish the callbacks in `OnVisibilityAnimationFinished()`.
   StatusAreaWidgetTestHelper::WaitForLayerAnimationEnd(test_view()->layer());
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
 
   // After the hide animation is finished, test_view() is not visible.
   EXPECT_FALSE(test_view()->GetVisible());
@@ -157,42 +157,42 @@
   // Gives it a small duration to let the session get changed. This duration is
   // way smaller than the animation duration, so that the animation will not
   // finish when this duration ends. The same for the other places below.
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(20));
+  task_environment()->FastForwardBy(base::Milliseconds(20));
 
   test_view()->SetVisiblePreferred(false);
   test_view()->SetVisiblePreferred(true);
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(20));
+  task_environment()->FastForwardBy(base::Milliseconds(20));
   EXPECT_TRUE(test_view()->layer()->GetAnimator()->is_animating());
   EXPECT_TRUE(test_view()->GetVisible());
 
   GetSessionControllerClient()->SetSessionState(
       session_manager::SessionState::ACTIVE);
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(20));
+  task_environment()->FastForwardBy(base::Milliseconds(20));
   EXPECT_FALSE(test_view()->layer()->GetAnimator()->is_animating());
   EXPECT_TRUE(test_view()->GetVisible());
 
   // Enable the animation after session state get changed.
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(20));
+  task_environment()->FastForwardBy(base::Milliseconds(20));
   test_view()->SetVisiblePreferred(false);
   test_view()->SetVisiblePreferred(true);
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(20));
+  task_environment()->FastForwardBy(base::Milliseconds(20));
   EXPECT_TRUE(test_view()->layer()->GetAnimator()->is_animating());
   EXPECT_TRUE(test_view()->GetVisible());
 
   // Not showing animation after unlocking screen.
   GetSessionControllerClient()->SetSessionState(
       session_manager::SessionState::LOCKED);
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(20));
+  task_environment()->FastForwardBy(base::Milliseconds(20));
 
   test_view()->SetVisiblePreferred(false);
   test_view()->SetVisiblePreferred(true);
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(20));
+  task_environment()->FastForwardBy(base::Milliseconds(20));
   EXPECT_TRUE(test_view()->layer()->GetAnimator()->is_animating());
   EXPECT_TRUE(test_view()->GetVisible());
 
   GetSessionControllerClient()->SetSessionState(
       session_manager::SessionState::ACTIVE);
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(20));
+  task_environment()->FastForwardBy(base::Milliseconds(20));
   EXPECT_FALSE(test_view()->layer()->GetAnimator()->is_animating());
   EXPECT_TRUE(test_view()->GetVisible());
 
@@ -205,7 +205,7 @@
 
   // Simulates user switching by changing the order of session_ids.
   Shell::Get()->session_controller()->SetUserSessionOrder({2u, 1u});
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(20));
+  task_environment()->FastForwardBy(base::Milliseconds(20));
   EXPECT_FALSE(test_view()->layer()->GetAnimator()->is_animating());
   EXPECT_TRUE(test_view()->GetVisible());
 }
@@ -219,7 +219,7 @@
 
   // Switch the primary and secondary screen.
   SwapPrimaryDisplay();
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(20));
+  task_environment()->FastForwardBy(base::Milliseconds(20));
   EXPECT_FALSE(
       GetPrimaryDictationTray()->layer()->GetAnimator()->is_animating());
   EXPECT_TRUE(GetPrimaryDictationTray()->GetVisible());
@@ -228,24 +228,24 @@
   EXPECT_TRUE(GetSecondaryDictationTray()->GetVisible());
 
   // Enable the animation after showing up on the secondary screen.
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(20));
+  task_environment()->FastForwardBy(base::Milliseconds(20));
   GetPrimaryDictationTray()->SetVisiblePreferred(false);
   GetPrimaryDictationTray()->SetVisiblePreferred(true);
   GetSecondaryDictationTray()->SetVisiblePreferred(false);
   GetSecondaryDictationTray()->SetVisiblePreferred(true);
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(20));
+  task_environment()->FastForwardBy(base::Milliseconds(20));
   EXPECT_TRUE(
       GetPrimaryDictationTray()->layer()->GetAnimator()->is_animating());
   EXPECT_TRUE(GetPrimaryDictationTray()->GetVisible());
   EXPECT_TRUE(
       GetSecondaryDictationTray()->layer()->GetAnimator()->is_animating());
   EXPECT_TRUE(GetSecondaryDictationTray()->GetVisible());
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(3));
+  task_environment()->FastForwardBy(base::Seconds(3));
 
   // Remove the secondary screen.
   UpdateDisplay("800x600");
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(20));
+  task_environment()->FastForwardBy(base::Milliseconds(20));
   EXPECT_FALSE(
       GetPrimaryDictationTray()->layer()->GetAnimator()->is_animating());
   EXPECT_TRUE(GetPrimaryDictationTray()->GetVisible());
diff --git a/ash/system/tray/tray_item_view.cc b/ash/system/tray/tray_item_view.cc
index 1d77d25f..adeb9e2 100644
--- a/ash/system/tray/tray_item_view.cc
+++ b/ash/system/tray/tray_item_view.cc
@@ -85,13 +85,13 @@
   }
 
   if (target_visible_) {
-    animation_->SetSlideDuration(base::TimeDelta::FromMilliseconds(400));
+    animation_->SetSlideDuration(base::Milliseconds(400));
     animation_->Show();
     AnimationProgressed(animation_.get());
     views::View::SetVisible(true);
     layer()->SetOpacity(0.f);
   } else {
-    animation_->SetSlideDuration(base::TimeDelta::FromMilliseconds(100));
+    animation_->SetSlideDuration(base::Milliseconds(100));
     animation_->Hide();
     AnimationProgressed(animation_.get());
   }
diff --git a/ash/system/unified/unified_slider_bubble_controller.cc b/ash/system/unified/unified_slider_bubble_controller.cc
index ce2a5dab..16c599e 100644
--- a/ash/system/unified/unified_slider_bubble_controller.cc
+++ b/ash/system/unified/unified_slider_bubble_controller.cc
@@ -245,10 +245,8 @@
 
 void UnifiedSliderBubbleController::StartAutoCloseTimer() {
   autoclose_.Stop();
-  autoclose_.Start(
-      FROM_HERE,
-      base::TimeDelta::FromSeconds(kTrayPopupAutoCloseDelayInSeconds), this,
-      &UnifiedSliderBubbleController::CloseBubble);
+  autoclose_.Start(FROM_HERE, base::Seconds(kTrayPopupAutoCloseDelayInSeconds),
+                   this, &UnifiedSliderBubbleController::CloseBubble);
 }
 
 }  // namespace ash
diff --git a/ash/system/unified/unified_system_tray.cc b/ash/system/unified/unified_system_tray.cc
index 1a553f9d..332b804 100644
--- a/ash/system/unified/unified_system_tray.cc
+++ b/ash/system/unified/unified_system_tray.cc
@@ -97,7 +97,7 @@
 };
 
 const base::TimeDelta UnifiedSystemTray::kNotificationCountUpdateDelay =
-    base::TimeDelta::FromMilliseconds(100);
+    base::Milliseconds(100);
 
 UnifiedSystemTray::UiDelegate::UiDelegate(UnifiedSystemTray* owner)
     : ui_controller_(std::make_unique<MessageCenterUiController>(this)),
diff --git a/ash/system/unified/unified_system_tray_controller.cc b/ash/system/unified/unified_system_tray_controller.cc
index 08d07864..7537a13 100644
--- a/ash/system/unified/unified_system_tray_controller.cc
+++ b/ash/system/unified/unified_system_tray_controller.cc
@@ -101,13 +101,12 @@
       bubble_(bubble),
       animation_(std::make_unique<gfx::SlideAnimation>(this)) {
   animation_->Reset(model_->IsExpandedOnOpen() ? 1.0 : 0.0);
-  animation_->SetSlideDuration(base::TimeDelta::FromMilliseconds(
-      kSystemMenuCollapseExpandAnimationDurationMs));
+  animation_->SetSlideDuration(
+      base::Milliseconds(kSystemMenuCollapseExpandAnimationDurationMs));
   animation_->SetTweenType(gfx::Tween::EASE_IN_OUT);
 
-  model_->pagination_model()->SetTransitionDurations(
-      base::TimeDelta::FromMilliseconds(250),
-      base::TimeDelta::FromMilliseconds(50));
+  model_->pagination_model()->SetTransitionDurations(base::Milliseconds(250),
+                                                     base::Milliseconds(50));
 
   pagination_controller_ = std::make_unique<PaginationController>(
       model_->pagination_model(), PaginationController::SCROLL_AXIS_HORIZONTAL,
@@ -591,8 +590,7 @@
 
 base::TimeDelta UnifiedSystemTrayController::GetAnimationDurationForReporting()
     const {
-  return base::TimeDelta::FromMilliseconds(
-      kSystemMenuCollapseExpandAnimationDurationMs);
+  return base::Milliseconds(kSystemMenuCollapseExpandAnimationDurationMs);
 }
 
 }  // namespace ash
diff --git a/ash/touch/touch_hud_renderer.cc b/ash/touch/touch_hud_renderer.cc
index dbb52d3a..dcad398 100644
--- a/ash/touch/touch_hud_renderer.cc
+++ b/ash/touch/touch_hud_renderer.cc
@@ -27,8 +27,7 @@
 constexpr SkColor kProjectionFillColor = SkColorSetRGB(0xF5, 0xF5, 0xDC);
 constexpr SkColor kProjectionStrokeColor = SK_ColorGRAY;
 constexpr int kProjectionAlpha = 0xB0;
-constexpr base::TimeDelta kFadeoutDuration =
-    base::TimeDelta::FromMilliseconds(250);
+constexpr base::TimeDelta kFadeoutDuration = base::Milliseconds(250);
 constexpr int kFadeoutFrameRate = 60;
 
 // TouchPointView draws a single touch point.
diff --git a/ash/touch/touch_observer_hud_unittest.cc b/ash/touch/touch_observer_hud_unittest.cc
index 95d1d83..2b4731e2 100644
--- a/ash/touch/touch_observer_hud_unittest.cc
+++ b/ash/touch/touch_observer_hud_unittest.cc
@@ -297,7 +297,7 @@
     GetInternalTouchHudProjection()->OnTouchEvent(&event);
 
     // Advance time for next event.
-    event_time += base::TimeDelta::FromMilliseconds(100);
+    event_time += base::Milliseconds(100);
   }
 
  private:
diff --git a/ash/utility/layer_copy_animator_unittest.cc b/ash/utility/layer_copy_animator_unittest.cc
index f79471e..9c732191 100644
--- a/ash/utility/layer_copy_animator_unittest.cc
+++ b/ash/utility/layer_copy_animator_unittest.cc
@@ -149,7 +149,7 @@
         DCHECK(observer);
         layer->SetOpacity(0.f);
         ui::ScopedLayerAnimationSettings settings(layer->GetAnimator());
-        settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(1));
+        settings.SetTransitionDuration(base::Milliseconds(1));
         layer->SetOpacity(1.f);
 
         ui::LayerAnimationSequence* sequence = new ui::LayerAnimationSequence(
@@ -163,7 +163,7 @@
   EXPECT_TRUE(copied_layer->GetAnimator()->is_animating());
   EXPECT_EQ(0.f, anim_layer->GetTargetOpacity());
 
-  Advance(base::TimeDelta::FromMilliseconds(1000));
+  Advance(base::Milliseconds(1000));
   EXPECT_EQ(3, observer.last_ended_sequence_epoch());
   EXPECT_EQ(1u, root_layer->children().size());
   EXPECT_EQ(1.f, anim_layer->GetTargetOpacity());
@@ -189,7 +189,7 @@
         layer->SetOpacity(0.f);
         ui::ScopedLayerAnimationSettings settings(layer->GetAnimator());
         // Longer duration so that animation doesn't end after copy.
-        settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(100));
+        settings.SetTransitionDuration(base::Milliseconds(100));
         layer->SetOpacity(1.f);
 
         ui::LayerAnimationSequence* sequence = new ui::LayerAnimationSequence(
@@ -212,7 +212,7 @@
   EXPECT_TRUE(copied_layer->GetAnimator()->is_animating());
   EXPECT_EQ(0.f, anim_layer->GetTargetOpacity());
 
-  Advance(base::TimeDelta::FromMilliseconds(1000));
+  Advance(base::Milliseconds(1000));
 
   // When animation starts before copy, it registers the observer to fake
   // sequecne, hence become 6.
@@ -289,7 +289,7 @@
         DCHECK(observer);
         layer->SetOpacity(0.f);
         ui::ScopedLayerAnimationSettings settings(layer->GetAnimator());
-        settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(100));
+        settings.SetTransitionDuration(base::Milliseconds(100));
         layer->SetOpacity(1.f);
 
         ui::LayerAnimationSequence* sequence = new ui::LayerAnimationSequence(
@@ -304,7 +304,7 @@
   EXPECT_EQ(0.f, anim_layer->GetTargetOpacity());
   copied_layer->GetAnimator()->StopAnimating();
 
-  Advance(base::TimeDelta::FromMilliseconds(1000));
+  Advance(base::Milliseconds(1000));
 
   EXPECT_EQ(3, observer.last_ended_sequence_epoch());
   EXPECT_EQ(1u, root_layer->children().size());
diff --git a/ash/utility/layer_util_unittest.cc b/ash/utility/layer_util_unittest.cc
index a88204f..cda028c 100644
--- a/ash/utility/layer_util_unittest.cc
+++ b/ash/utility/layer_util_unittest.cc
@@ -86,7 +86,7 @@
     CopyLayerContentToLayer(&layer1, cancelable.callback());
 
     GenerateOneFrame();
-    Advance(base::TimeDelta::FromMilliseconds(1000));
+    Advance(base::Milliseconds(1000));
     EXPECT_TRUE(called);
   }
 
@@ -103,7 +103,7 @@
     cancelable.Cancel();
 
     GenerateOneFrame();
-    Advance(base::TimeDelta::FromMilliseconds(1000));
+    Advance(base::Milliseconds(1000));
     EXPECT_FALSE(called);
   }
 }
diff --git a/ash/utility/occlusion_tracker_pauser_unittest.cc b/ash/utility/occlusion_tracker_pauser_unittest.cc
index 904b86a..25bdb34 100644
--- a/ash/utility/occlusion_tracker_pauser_unittest.cc
+++ b/ash/utility/occlusion_tracker_pauser_unittest.cc
@@ -114,15 +114,15 @@
   TestObserver observer1, observer2;
 
   Shell::Get()->occlusion_tracker_pauser()->PauseUntilAnimationsEnd(
-      base::TimeDelta::FromSeconds(2));
+      base::Seconds(2));
   EXPECT_TRUE(tracker->IsPaused());
   compositor1->AddAnimationObserver(&observer1);
   compositor2->AddAnimationObserver(&observer2);
   EXPECT_TRUE(tracker->IsPaused());
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
   EXPECT_TRUE(tracker->IsPaused());
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_environment()->FastForwardBy(base::Seconds(2));
 
   EXPECT_FALSE(tracker->IsPaused());
   compositor1->RemoveAnimationObserver(&observer1);
diff --git a/ash/wallpaper/wallpaper_controller_impl.cc b/ash/wallpaper/wallpaper_controller_impl.cc
index 131120c..67e79c6 100644
--- a/ash/wallpaper/wallpaper_controller_impl.cc
+++ b/ash/wallpaper/wallpaper_controller_impl.cc
@@ -93,20 +93,18 @@
 constexpr char kSmallWallpaperSuffix[] = "_small";
 
 // How long to wait reloading the wallpaper after the display size has changed.
-constexpr base::TimeDelta kWallpaperReloadDelay =
-    base::TimeDelta::FromMilliseconds(100);
+constexpr base::TimeDelta kWallpaperReloadDelay = base::Milliseconds(100);
 
 // How long to wait for resizing of the the wallpaper.
-constexpr base::TimeDelta kCompositorLockTimeout =
-    base::TimeDelta::FromMilliseconds(750);
+constexpr base::TimeDelta kCompositorLockTimeout = base::Milliseconds(750);
 
 // Duration of the lock animation performed when pressing a lock button.
 constexpr base::TimeDelta kLockAnimationBlurAnimationDuration =
-    base::TimeDelta::FromMilliseconds(100);
+    base::Milliseconds(100);
 
 // Duration of the cross fade animation when loading wallpaper.
 constexpr base::TimeDelta kWallpaperLoadAnimationDuration =
-    base::TimeDelta::FromMilliseconds(250);
+    base::Milliseconds(250);
 
 // Default quality for encoding wallpaper.
 constexpr int kDefaultEncodingQuality = 90;
@@ -2612,7 +2610,7 @@
 }
 
 void WallpaperControllerImpl::OnFetchDailyWallpaperFailed() {
-  StartDailyRefreshTimer(base::TimeDelta::FromHours(1));
+  StartDailyRefreshTimer(base::Hours(1));
 }
 
 void WallpaperControllerImpl::StartDailyRefreshTimer(base::TimeDelta delay) {
@@ -2629,8 +2627,7 @@
   if (!GetUserWallpaperInfo(GetActiveAccountId(), &info))
     return base::TimeDelta();
   return info.date.ToDeltaSinceWindowsEpoch() -
-         base::Time::Now().ToDeltaSinceWindowsEpoch() +
-         base::TimeDelta::FromDays(1);
+         base::Time::Now().ToDeltaSinceWindowsEpoch() + base::Days(1);
 }
 
 void WallpaperControllerImpl::SaveWallpaperToDriveFs(
diff --git a/ash/wallpaper/wallpaper_controller_impl.h b/ash/wallpaper/wallpaper_controller_impl.h
index f73f410..ebe3691 100644
--- a/ash/wallpaper/wallpaper_controller_impl.h
+++ b/ash/wallpaper/wallpaper_controller_impl.h
@@ -347,7 +347,7 @@
   void CreateEmptyWallpaperForTesting();
 
   void set_wallpaper_reload_no_delay_for_test() {
-    wallpaper_reload_delay_ = base::TimeDelta::FromMilliseconds(0);
+    wallpaper_reload_delay_ = base::Milliseconds(0);
   }
 
   // Proxy to private ReloadWallpaper().
diff --git a/ash/wallpaper/wallpaper_controller_unittest.cc b/ash/wallpaper/wallpaper_controller_unittest.cc
index 6ece24a..2480d05 100644
--- a/ash/wallpaper/wallpaper_controller_unittest.cc
+++ b/ash/wallpaper/wallpaper_controller_unittest.cc
@@ -147,8 +147,7 @@
   while (controller.animator()->is_animating()) {
     controller.StartThreadedAnimationsIfNeeded();
     base::TimeTicks step_time = controller.animator()->last_step_time();
-    layer->GetAnimator()->Step(step_time +
-                               base::TimeDelta::FromMilliseconds(1000));
+    layer->GetAnimator()->Step(step_time + base::Milliseconds(1000));
   }
 }
 
@@ -317,7 +316,7 @@
 base::Time DayBeforeYesterdayish() {
   base::TimeDelta today_delta =
       base::Time::Now().LocalMidnight().ToDeltaSinceWindowsEpoch();
-  base::TimeDelta yesterday_delta = today_delta - base::TimeDelta::FromDays(2);
+  base::TimeDelta yesterday_delta = today_delta - base::Days(2);
   return base::Time::FromDeltaSinceWindowsEpoch(yesterday_delta);
 }
 
diff --git a/ash/webui/diagnostics_ui/backend/power_manager_client_conversions.cc b/ash/webui/diagnostics_ui/backend/power_manager_client_conversions.cc
index 1c72ea5..9e07779 100644
--- a/ash/webui/diagnostics_ui/backend/power_manager_client_conversions.cc
+++ b/ash/webui/diagnostics_ui/backend/power_manager_client_conversions.cc
@@ -71,8 +71,7 @@
     return std::u16string();
   }
 
-  const base::TimeDelta as_time_delta =
-      base::TimeDelta::FromSeconds(time_in_seconds);
+  const base::TimeDelta as_time_delta = base::Seconds(time_in_seconds);
 
   int hour = 0;
   int min = 0;
diff --git a/ash/webui/diagnostics_ui/backend/system_data_provider.cc b/ash/webui/diagnostics_ui/backend/system_data_provider.cc
index 3af0bc04..0a7328b 100644
--- a/ash/webui/diagnostics_ui/backend/system_data_provider.cc
+++ b/ash/webui/diagnostics_ui/backend/system_data_provider.cc
@@ -255,8 +255,7 @@
 
   if (!battery_charge_status_timer_->IsRunning()) {
     battery_charge_status_timer_->Start(
-        FROM_HERE,
-        base::TimeDelta::FromSeconds(kChargeStatusRefreshIntervalInSeconds),
+        FROM_HERE, base::Seconds(kChargeStatusRefreshIntervalInSeconds),
         base::BindRepeating(&SystemDataProvider::UpdateBatteryChargeStatus,
                             base::Unretained(this)));
   }
@@ -269,8 +268,7 @@
 
   if (!battery_health_timer_->IsRunning()) {
     battery_health_timer_->Start(
-        FROM_HERE,
-        base::TimeDelta::FromSeconds(kBatteryHealthRefreshIntervalInSeconds),
+        FROM_HERE, base::Seconds(kBatteryHealthRefreshIntervalInSeconds),
         base::BindRepeating(&SystemDataProvider::UpdateBatteryHealth,
                             base::Unretained(this)));
   }
@@ -283,8 +281,7 @@
 
   if (!memory_usage_timer_->IsRunning()) {
     memory_usage_timer_->Start(
-        FROM_HERE,
-        base::TimeDelta::FromSeconds(kMemoryUsageRefreshIntervalInSeconds),
+        FROM_HERE, base::Seconds(kMemoryUsageRefreshIntervalInSeconds),
         base::BindRepeating(&SystemDataProvider::UpdateMemoryUsage,
                             base::Unretained(this)));
   }
@@ -297,8 +294,7 @@
   if (!cpu_usage_timer_->IsRunning()) {
     previous_cpu_usage_data_ = CpuUsageData();
     cpu_usage_timer_->Start(
-        FROM_HERE,
-        base::TimeDelta::FromSeconds(kCpuUsageRefreshIntervalInSeconds),
+        FROM_HERE, base::Seconds(kCpuUsageRefreshIntervalInSeconds),
         base::BindRepeating(&SystemDataProvider::UpdateCpuUsage,
                             base::Unretained(this)));
   }
diff --git a/ash/webui/diagnostics_ui/backend/system_routine_controller.cc b/ash/webui/diagnostics_ui/backend/system_routine_controller.cc
index 922b27d..a2f995e 100644
--- a/ash/webui/diagnostics_ui/backend/system_routine_controller.cc
+++ b/ash/webui/diagnostics_ui/backend/system_routine_controller.cc
@@ -527,7 +527,7 @@
     uint32_t duration_in_seconds,
     mojom::RoutineType routine_type) {
   inflight_routine_timer_->Start(
-      FROM_HERE, base::TimeDelta::FromSeconds(duration_in_seconds),
+      FROM_HERE, base::Seconds(duration_in_seconds),
       base::BindOnce(&SystemRoutineController::CheckRoutineStatus,
                      weak_factory_.GetWeakPtr(), routine_type));
 }
diff --git a/ash/webui/diagnostics_ui/backend/system_routine_controller_unittest.cc b/ash/webui/diagnostics_ui/backend/system_routine_controller_unittest.cc
index 557c6ede..b28fb86 100644
--- a/ash/webui/diagnostics_ui/backend/system_routine_controller_unittest.cc
+++ b/ash/webui/diagnostics_ui/backend/system_routine_controller_unittest.cc
@@ -284,11 +284,11 @@
       mojo::ScopedHandle());
 
   // Before the update interval, the routine status is not processed.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(59));
+  task_environment_.FastForwardBy(base::Seconds(59));
   EXPECT_TRUE(routine_runner.result.is_null());
 
   // After the update interval, the update is fetched and processed.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(routine_runner.result.is_null());
   VerifyRoutineResult(*routine_runner.result, mojom::RoutineType::kCpuStress,
                       mojom::StandardRoutineResult::kTestPassed);
@@ -313,11 +313,11 @@
       mojo::ScopedHandle());
 
   // Before the update interval, the routine status is not processed.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(59));
+  task_environment_.FastForwardBy(base::Seconds(59));
   EXPECT_TRUE(routine_runner.result.is_null());
 
   // After the update interval, the update is fetched and processed.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(routine_runner.result.is_null());
   VerifyRoutineResult(*routine_runner.result, mojom::RoutineType::kCpuStress,
                       mojom::StandardRoutineResult::kTestFailed);
@@ -342,12 +342,12 @@
       mojo::ScopedHandle());
 
   // Before the update interval, the routine status is not processed.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(59));
+  task_environment_.FastForwardBy(base::Seconds(59));
   EXPECT_TRUE(routine_runner.result.is_null());
 
   // After the update interval, the results from the routine are still not
   // available.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   EXPECT_TRUE(routine_runner.result.is_null());
 
   // Update the status on cros_healthd to signify the routine is completed
@@ -356,7 +356,7 @@
       mojo::ScopedHandle());
 
   // Fast forward by the refresh interval.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(routine_runner.result.is_null());
   VerifyRoutineResult(*routine_runner.result, mojom::RoutineType::kCpuStress,
                       mojom::StandardRoutineResult::kTestPassed);
@@ -381,12 +381,12 @@
       mojo::ScopedHandle());
 
   // Before the update interval, the routine status is not processed.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(59));
+  task_environment_.FastForwardBy(base::Seconds(59));
   EXPECT_TRUE(routine_runner.result.is_null());
 
   // After the update interval, the results from the routine are still not
   // available.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   EXPECT_TRUE(routine_runner.result.is_null());
 
   SetNonInteractiveRoutineUpdateResponse(
@@ -394,7 +394,7 @@
       mojo::ScopedHandle());
 
   // After another refresh interval, the routine is still running.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   EXPECT_TRUE(routine_runner.result.is_null());
 
   // Update the status on cros_healthd to signify the routine is completed
@@ -403,7 +403,7 @@
       mojo::ScopedHandle());
 
   // After a second refresh interval, the routine is completed.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(routine_runner.result.is_null());
   VerifyRoutineResult(*routine_runner.result, mojom::RoutineType::kCpuStress,
                       mojom::StandardRoutineResult::kTestPassed);
@@ -426,7 +426,7 @@
   SetNonInteractiveRoutineUpdateResponse(
       /*percent_complete=*/100, healthd::DiagnosticRoutineStatusEnum::kPassed,
       mojo::ScopedHandle());
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(60));
+  task_environment_.FastForwardBy(base::Seconds(60));
   EXPECT_FALSE(routine_runner_1.result.is_null());
   VerifyRoutineResult(*routine_runner_1.result, mojom::RoutineType::kCpuStress,
                       mojom::StandardRoutineResult::kTestPassed);
@@ -448,7 +448,7 @@
   SetNonInteractiveRoutineUpdateResponse(
       /*percent_complete=*/100, healthd::DiagnosticRoutineStatusEnum::kFailed,
       mojo::ScopedHandle());
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(60));
+  task_environment_.FastForwardBy(base::Seconds(60));
   EXPECT_FALSE(routine_runner_2.result.is_null());
   VerifyRoutineResult(*routine_runner_2.result, mojom::RoutineType::kCpuStress,
                       mojom::StandardRoutineResult::kTestFailed);
@@ -477,7 +477,7 @@
       /*percent_complete=*/100, healthd::DiagnosticRoutineStatusEnum::kPassed,
       CreateMojoHandleForPowerRoutine(expected_percent_charge,
                                       /*charge=*/true));
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(31));
+  task_environment_.FastForwardBy(base::Seconds(31));
 
   EXPECT_FALSE(routine_runner.result.is_null());
   VerifyRoutineResult(
@@ -510,7 +510,7 @@
       /*percent_complete=*/100, healthd::DiagnosticRoutineStatusEnum::kPassed,
       CreateMojoHandleForPowerRoutine(expected_percent_discharge,
                                       /*charge=*/false));
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(31));
+  task_environment_.FastForwardBy(base::Seconds(31));
 
   EXPECT_FALSE(routine_runner.result.is_null());
   VerifyRoutineResult(
@@ -693,11 +693,11 @@
       mojo::ScopedHandle());
 
   // Before the update interval, the routine status is not processed.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(59));
+  task_environment_.FastForwardBy(base::Seconds(59));
   EXPECT_TRUE(routine_runner.result.is_null());
 
   // After the update interval, the update is fetched and processed.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(routine_runner.result.is_null());
   VerifyRoutineResult(*routine_runner.result, mojom::RoutineType::kCpuStress,
                       mojom::StandardRoutineResult::kTestPassed);
@@ -750,7 +750,7 @@
       mojo::ScopedHandle());
 
   // After the update interval, the update is fetched and processed.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(60));
+  task_environment_.FastForwardBy(base::Seconds(60));
   EXPECT_FALSE(routine_runner.result.is_null());
   VerifyRoutineResult(*routine_runner.result, mojom::RoutineType::kCpuStress,
                       mojom::StandardRoutineResult::kTestPassed);
@@ -810,7 +810,7 @@
       mojo::ScopedHandle());
 
   // After the update interval, the update is fetched and processed.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(60));
+  task_environment_.FastForwardBy(base::Seconds(60));
   EXPECT_FALSE(routine_runner.result.is_null());
   VerifyRoutineResult(*routine_runner.result, mojom::RoutineType::kCpuStress,
                       mojom::StandardRoutineResult::kTestPassed);
@@ -863,14 +863,13 @@
       mojo::ScopedHandle());
 
   // After the update interval, the update is fetched and processed.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1000));
+  task_environment_.FastForwardBy(base::Seconds(1000));
   EXPECT_FALSE(routine_runner.result.is_null());
   VerifyRoutineResult(*routine_runner.result, mojom::RoutineType::kMemory,
                       mojom::StandardRoutineResult::kTestPassed);
 
   histogram_tester.ExpectUniqueTimeSample(
-      "ChromeOS.DiagnosticsUi.MemoryRoutineDuration",
-      base::TimeDelta::FromSeconds(1000),
+      "ChromeOS.DiagnosticsUi.MemoryRoutineDuration", base::Seconds(1000),
       /*expected_count=*/1);
 }
 
@@ -915,7 +914,7 @@
       mojo::ScopedHandle());
 
   // After the update interval, the update is fetched and processed.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(60));
+  task_environment_.FastForwardBy(base::Seconds(60));
   EXPECT_FALSE(routine_runner_2.result.is_null());
   VerifyRoutineResult(*routine_runner_2.result, mojom::RoutineType::kCpuStress,
                       mojom::StandardRoutineResult::kTestPassed);
@@ -943,7 +942,7 @@
       mojo::ScopedHandle());
 
   // After the update interval, the update is fetched and processed.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1000));
+  task_environment_.FastForwardBy(base::Seconds(1000));
   EXPECT_FALSE(routine_runner.result.is_null());
   VerifyRoutineResult(*routine_runner.result, mojom::RoutineType::kMemory,
                       mojom::StandardRoutineResult::kTestPassed);
diff --git a/ash/webui/telemetry_extension_ui/test/telemetry_extension_ui_browsertest.cc b/ash/webui/telemetry_extension_ui/test/telemetry_extension_ui_browsertest.cc
index 51d0ce25..f3bb456 100644
--- a/ash/webui/telemetry_extension_ui/test/telemetry_extension_ui_browsertest.cc
+++ b/ash/webui/telemetry_extension_ui/test/telemetry_extension_ui_browsertest.cc
@@ -526,5 +526,5 @@
       FROM_HERE,
       base::BindOnce(&TelemetryExtensionUiBrowserTest::RunCallbackPeriodically,
                      system_events_weak_ptr_factory_.GetWeakPtr(), callback),
-      base::TimeDelta::FromSeconds(1));
+      base::Seconds(1));
 }
diff --git a/ash/wm/desks/desk.cc b/ash/wm/desks/desk.cc
index dd118a2..ae77960 100644
--- a/ash/wm/desks/desk.cc
+++ b/ash/wm/desks/desk.cc
@@ -50,8 +50,7 @@
 
 // The amount of time a user has to stay on a recently activated desk for it to
 // be considered interacted with. Used for tracking weekly active desks metric.
-constexpr base::TimeDelta kDeskInteractedWithTime =
-    base::TimeDelta::FromSeconds(3);
+constexpr base::TimeDelta kDeskInteractedWithTime = base::Seconds(3);
 
 // A counter for tracking the number of desks interacted with this week. A
 // desk is considered interacted with if a window is moved to it, it is
diff --git a/ash/wm/desks/desk_animation_impl.cc b/ash/wm/desks/desk_animation_impl.cc
index ba6595db..ab4e466 100644
--- a/ash/wm/desks/desk_animation_impl.cc
+++ b/ash/wm/desks/desk_animation_impl.cc
@@ -42,8 +42,7 @@
 // Swipes which are below this threshold are considered fast, and
 // RootWindowDeskSwitchAnimator will determine a different ending desk for these
 // swipes.
-constexpr base::TimeDelta kFastSwipeThresholdDuration =
-    base::TimeDelta::FromMilliseconds(500);
+constexpr base::TimeDelta kFastSwipeThresholdDuration = base::Milliseconds(500);
 
 bool IsForContinuousGestures(DesksSwitchSource source) {
   return source == DesksSwitchSource::kDeskSwitchTouchpad;
diff --git a/ash/wm/desks/desk_drag_proxy.cc b/ash/wm/desks/desk_drag_proxy.cc
index 3fb6652fc..f772003 100644
--- a/ash/wm/desks/desk_drag_proxy.cc
+++ b/ash/wm/desks/desk_drag_proxy.cc
@@ -23,11 +23,9 @@
 // Scale of dragged desk proxy.
 constexpr float kDragProxyScale = 1.2f;
 // Time duration of scaling up dragged desk proxy.
-constexpr base::TimeDelta kDragProxyScaleUpDuration =
-    base::TimeDelta::FromMilliseconds(200);
+constexpr base::TimeDelta kDragProxyScaleUpDuration = base::Milliseconds(200);
 // Time duration of snapping back drag proxy.
-constexpr base::TimeDelta kDragProxySnapBackDuration =
-    base::TimeDelta::FromMilliseconds(300);
+constexpr base::TimeDelta kDragProxySnapBackDuration = base::Milliseconds(300);
 
 }  // namespace
 
diff --git a/ash/wm/desks/desk_mini_view_animations.cc b/ash/wm/desks/desk_mini_view_animations.cc
index ffc80692..35b9d8c 100644
--- a/ash/wm/desks/desk_mini_view_animations.cc
+++ b/ash/wm/desks/desk_mini_view_animations.cc
@@ -26,17 +26,15 @@
 
 constexpr gfx::Transform kEndTransform;
 
-constexpr base::TimeDelta kBarBackgroundDuration =
-    base::TimeDelta::FromMilliseconds(200);
+constexpr base::TimeDelta kBarBackgroundDuration = base::Milliseconds(200);
 
 constexpr base::TimeDelta kExistingMiniViewsAnimationDuration =
-    base::TimeDelta::FromMilliseconds(250);
+    base::Milliseconds(250);
 
 constexpr base::TimeDelta kRemovedMiniViewsFadeOutDuration =
-    base::TimeDelta::FromMilliseconds(200);
+    base::Milliseconds(200);
 
-constexpr base::TimeDelta kZeroStateAnimationDuration =
-    base::TimeDelta::FromMilliseconds(200);
+constexpr base::TimeDelta kZeroStateAnimationDuration = base::Milliseconds(200);
 
 // Scale for entering/exiting zero state.
 constexpr float kEnterOrExitZeroStateScale = 0.6f;
diff --git a/ash/wm/desks/desks_animations.cc b/ash/wm/desks/desks_animations.cc
index d6501e5..0ec98a5 100644
--- a/ash/wm/desks/desks_animations.cc
+++ b/ash/wm/desks/desks_animations.cc
@@ -54,8 +54,7 @@
       : old_window_layer_tree_(::wm::RecreateLayers(window)) {
     ui::Layer* layer = old_window_layer_tree_->root();
     ui::ScopedLayerAnimationSettings settings{layer->GetAnimator()};
-    constexpr base::TimeDelta kDuration =
-        base::TimeDelta::FromMilliseconds(200);
+    constexpr base::TimeDelta kDuration = base::Milliseconds(200);
     settings.SetTransitionDuration(kDuration);
     settings.SetTweenType(gfx::Tween::EASE_IN);
     settings.SetPreemptionStrategy(
@@ -101,7 +100,7 @@
   //      |     |
   //      |---->|
   //      |     |
-  constexpr base::TimeDelta kDuration = base::TimeDelta::FromMilliseconds(150);
+  constexpr base::TimeDelta kDuration = base::Milliseconds(150);
   auto outgoing_transition = ui::LayerAnimationElement::CreateTransformElement(
       begin_transform, kDuration);
   outgoing_transition->set_tween_type(gfx::Tween::EASE_OUT);
diff --git a/ash/wm/desks/desks_bar_view.cc b/ash/wm/desks/desks_bar_view.cc
index 14363b6..6aa659f 100644
--- a/ash/wm/desks/desks_bar_view.cc
+++ b/ash/wm/desks/desks_bar_view.cc
@@ -80,8 +80,7 @@
 constexpr int kVerticalDotsButtonRightPadding = 8;
 
 // The duration of scrolling one page.
-constexpr base::TimeDelta kBarScrollDuration =
-    base::TimeDelta::FromMilliseconds(250);
+constexpr base::TimeDelta kBarScrollDuration = base::Milliseconds(250);
 
 gfx::Rect GetGestureEventScreenRect(const ui::Event& event) {
   DCHECK(event.IsGestureEvent());
diff --git a/ash/wm/desks/desks_controller.cc b/ash/wm/desks/desks_controller.cc
index 054fca7..cb886c5 100644
--- a/ash/wm/desks/desks_controller.cc
+++ b/ash/wm/desks/desks_controller.cc
@@ -94,8 +94,7 @@
 // After an desk activation animation starts,
 // |kNumberOfDeskTraversalsHistogramName| will be recorded after this time
 // interval.
-constexpr base::TimeDelta kDeskTraversalsTimeout =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kDeskTraversalsTimeout = base::Seconds(5);
 
 constexpr int kDeskDefaultNameIds[] = {
     IDS_ASH_DESKS_DESK_1_MINI_VIEW_TITLE, IDS_ASH_DESKS_DESK_2_MINI_VIEW_TITLE,
@@ -267,7 +266,7 @@
   active_desk_->Activate(/*update_window_activation=*/true);
 
   weekly_active_desks_scheduler_.Start(
-      FROM_HERE, base::TimeDelta::FromDays(7), this,
+      FROM_HERE, base::Days(7), this,
       &DesksController::RecordAndResetNumberOfWeeklyActiveDesks);
 }
 
@@ -1431,7 +1430,7 @@
   Desk::SetWeeklyActiveDesks(1);
 
   weekly_active_desks_scheduler_.Start(
-      FROM_HERE, base::TimeDelta::FromDays(7), this,
+      FROM_HERE, base::Days(7), this,
       &DesksController::RecordAndResetNumberOfWeeklyActiveDesks);
 }
 
diff --git a/ash/wm/desks/desks_restore_util.cc b/ash/wm/desks/desks_restore_util.cc
index 62e3a6f0..1bfb9d8 100644
--- a/ash/wm/desks/desks_restore_util.cc
+++ b/ash/wm/desks/desks_restore_util.cc
@@ -185,7 +185,7 @@
         desks_metrics_dict.FindIntPath(kCreationTimeKey);
     if (creation_time_entry.has_value()) {
       const auto creation_time = base::Time::FromDeltaSinceWindowsEpoch(
-          base::TimeDelta::FromMinutes(*creation_time_entry));
+          base::Minutes(*creation_time_entry));
       if (!creation_time.is_null() && creation_time < now)
         desks_controller->RestoreCreationTimeOfDeskAtIndex(creation_time,
                                                            index);
@@ -243,8 +243,7 @@
     if (report_time != -1 && num_weekly_active_desks != -1) {
       desks_controller->RestoreWeeklyActiveDesksMetrics(
           num_weekly_active_desks,
-          base::Time::FromDeltaSinceWindowsEpoch(
-              base::TimeDelta::FromMinutes(report_time)));
+          base::Time::FromDeltaSinceWindowsEpoch(base::Minutes(report_time)));
     }
   }
 }
diff --git a/ash/wm/desks/desks_unittests.cc b/ash/wm/desks/desks_unittests.cc
index 528f5f42..4690d99 100644
--- a/ash/wm/desks/desks_unittests.cc
+++ b/ash/wm/desks/desks_unittests.cc
@@ -184,8 +184,7 @@
 void WaitForMilliseconds(int milliseconds) {
   base::RunLoop run_loop;
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(),
-      base::TimeDelta::FromMilliseconds(milliseconds));
+      FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(milliseconds));
   run_loop.Run();
 }
 
@@ -1758,7 +1757,7 @@
   // Set the time to 00:00:00 local time the next day, override the current
   // desk's clock and reset its visited metrics.
   test_clock.SetNow(base::Time::Now().LocalMidnight());
-  test_clock.Advance(base::TimeDelta::FromHours(1));
+  test_clock.Advance(base::Hours(1));
   auto* active_desk = desks_controller->active_desk();
   desks_restore_util::OverrideClockForTesting(&test_clock);
   DesksTestApi::ResetDeskVisitedMetrics(const_cast<Desk*>(active_desk));
@@ -1775,7 +1774,7 @@
   // entry for two days since we stayed on the active desk the whole time.
   // Additionally, there shouldn't be a record for the desk we switch to since
   // we haven't visited it yet.
-  test_clock.Advance(base::TimeDelta::FromDays(2));
+  test_clock.Advance(base::Days(2));
   RemoveDesk(active_desk);
   histogram_tester.ExpectBucketCount(kConsecutiveDailyVisitsHistogram, 3, 1);
   EXPECT_EQ(
@@ -1797,7 +1796,7 @@
   // a one day entry should be recorded for the previous desk.
   NewDesk();
   ActivateDesk(desks_controller->GetNextDesk());
-  test_clock.Advance(base::TimeDelta::FromDays(2));
+  test_clock.Advance(base::Days(2));
   ActivateDesk(desks_controller->GetPreviousDesk());
   histogram_tester.ExpectBucketCount(kConsecutiveDailyVisitsHistogram, 1, 2);
   EXPECT_EQ(
@@ -1807,7 +1806,7 @@
   // Go back in time to simulate a user switching timezones and then switch to
   // the next desk. Since the current time is before the |last_day_visited_|
   // field of the next desk, its visited fields should be reset.
-  test_clock.Advance(base::TimeDelta::FromDays(-2));
+  test_clock.Advance(base::Days(-2));
   ActivateDesk(desks_controller->GetNextDesk());
   active_desk = desks_controller->active_desk();
   const int current_date = desks_restore_util::GetDaysFromLocalEpoch();
@@ -5707,7 +5706,7 @@
   EXPECT_TRUE(desks_restore_util::HasPrimaryUserUsedDesksRecently());
 
   // `kUserHasUsedDesksRecently` should be kept as true after setting.
-  test_clock.Advance(base::TimeDelta::FromDays(50));
+  test_clock.Advance(base::Days(50));
   EXPECT_TRUE(desks_restore_util::HasPrimaryUserUsedDesksRecently());
   desks_restore_util::OverrideClockForTesting(nullptr);
 }
@@ -5748,7 +5747,7 @@
 
   // Let a week elapse. There should be a new entry for four since there were
   // three created desks and the initial active desk.
-  task_environment()->AdvanceClock(base::TimeDelta::FromDays(7));
+  task_environment()->AdvanceClock(base::Days(7));
   task_environment()->RunUntilIdle();
   histogram_tester.ExpectBucketCount(kWeeklyActiveDesksHistogram, 4, 1);
   EXPECT_EQ(1u,
@@ -5760,7 +5759,7 @@
   EXPECT_EQ(1, Desk::GetWeeklyActiveDesks());
   ActivateDesk(desk_2);
   ActivateDesk(desk_1);
-  task_environment()->AdvanceClock(base::TimeDelta::FromDays(7));
+  task_environment()->AdvanceClock(base::Days(7));
   task_environment()->RunUntilIdle();
   histogram_tester.ExpectBucketCount(kWeeklyActiveDesksHistogram, 1, 1);
   EXPECT_EQ(2u,
@@ -5772,11 +5771,11 @@
   // twice.
   EXPECT_EQ(1, Desk::GetWeeklyActiveDesks());
   ActivateDesk(desk_2);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment()->FastForwardBy(base::Seconds(5));
   ActivateDesk(desk_1);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment()->FastForwardBy(base::Seconds(5));
   ActivateDesk(desk_2);
-  task_environment()->AdvanceClock(base::TimeDelta::FromDays(7));
+  task_environment()->AdvanceClock(base::Days(7));
   task_environment()->RunUntilIdle();
   histogram_tester.ExpectBucketCount(kWeeklyActiveDesksHistogram, 2, 1);
   EXPECT_EQ(3u,
@@ -5797,7 +5796,7 @@
       win2.get(), desk_4, win2->GetRootWindow(),
       DesksMoveWindowFromActiveDeskSource::kSendToDesk);
 
-  task_environment()->AdvanceClock(base::TimeDelta::FromDays(7));
+  task_environment()->AdvanceClock(base::Days(7));
   task_environment()->RunUntilIdle();
   histogram_tester.ExpectBucketCount(kWeeklyActiveDesksHistogram, 3, 1);
   EXPECT_EQ(4u,
@@ -5810,14 +5809,14 @@
   EXPECT_EQ(1, Desk::GetWeeklyActiveDesks());
   const int number_of_one_bucket_entries =
       histogram_tester.GetBucketCount(kWeeklyActiveDesksHistogram, 1);
-  task_environment()->AdvanceClock(base::TimeDelta::FromDays(6));
+  task_environment()->AdvanceClock(base::Days(6));
   task_environment()->RunUntilIdle();
   histogram_tester.ExpectBucketCount(kWeeklyActiveDesksHistogram, 1,
                                      number_of_one_bucket_entries);
 
   // Wait one more day and it should now report an entry for one, accounting for
   // the current active desk.
-  task_environment()->AdvanceClock(base::TimeDelta::FromDays(1));
+  task_environment()->AdvanceClock(base::Days(1));
   task_environment()->RunUntilIdle();
   histogram_tester.ExpectBucketCount(kWeeklyActiveDesksHistogram, 1,
                                      number_of_one_bucket_entries + 1);
diff --git a/ash/wm/desks/root_window_desk_switch_animator.cc b/ash/wm/desks/root_window_desk_switch_animator.cc
index 9cb4a9a..6af1bd89 100644
--- a/ash/wm/desks/root_window_desk_switch_animator.cc
+++ b/ash/wm/desks/root_window_desk_switch_animator.cc
@@ -42,14 +42,13 @@
 // request a new screenshot.
 constexpr int kMinDistanceBeforeScreenshotDp = 40;
 
-constexpr base::TimeDelta kAnimationDuration =
-    base::TimeDelta::FromMilliseconds(300);
+constexpr base::TimeDelta kAnimationDuration = base::Milliseconds(300);
 
 // The amount, by which the detached old layers of the removed desk's windows,
 // is translated vertically during the for-remove desk switch animation.
 constexpr int kRemovedDeskWindowYTranslation = 20;
 constexpr base::TimeDelta kRemovedDeskWindowTranslationDuration =
-    base::TimeDelta::FromMilliseconds(100);
+    base::Milliseconds(100);
 
 // When ending a swipe that is deemed fast, the target desk only needs to be
 // 10% shown for us to animate to that desk, compared to 50% shown for a non
diff --git a/ash/wm/desks/scroll_arrow_button.cc b/ash/wm/desks/scroll_arrow_button.cc
index 3eb9dab..ccb6a08 100644
--- a/ash/wm/desks/scroll_arrow_button.cc
+++ b/ash/wm/desks/scroll_arrow_button.cc
@@ -16,7 +16,7 @@
 #include "ui/views/widget/widget.h"
 
 namespace {
-base::TimeDelta kScrollTimeInterval = base::TimeDelta::FromSeconds(1);
+base::TimeDelta kScrollTimeInterval = base::Seconds(1);
 }
 
 namespace ash {
diff --git a/ash/wm/gestures/back_gesture/back_gesture_affordance.cc b/ash/wm/gestures/back_gesture/back_gesture_affordance.cc
index b41e8dc1..1619396 100644
--- a/ash/wm/gestures/back_gesture/back_gesture_affordance.cc
+++ b/ash/wm/gestures/back_gesture/back_gesture_affordance.cc
@@ -72,10 +72,8 @@
 // |kMaxRippleRadius|.
 constexpr float kDragDistanceForMaxRadius = 260.f;
 
-constexpr base::TimeDelta kAbortAnimationTimeout =
-    base::TimeDelta::FromMilliseconds(300);
-constexpr base::TimeDelta kCompleteAnimationTimeout =
-    base::TimeDelta::FromMilliseconds(200);
+constexpr base::TimeDelta kAbortAnimationTimeout = base::Milliseconds(300);
+constexpr base::TimeDelta kCompleteAnimationTimeout = base::Milliseconds(200);
 
 // Y-axis drag distance to achieve full y drag progress.
 constexpr float kDistanceForFullYProgress = 80.f;
diff --git a/ash/wm/gestures/back_gesture/back_gesture_contextual_nudge.cc b/ash/wm/gestures/back_gesture/back_gesture_contextual_nudge.cc
index 74968014..5b25a34 100644
--- a/ash/wm/gestures/back_gesture/back_gesture_contextual_nudge.cc
+++ b/ash/wm/gestures/back_gesture/back_gesture_contextual_nudge.cc
@@ -60,25 +60,21 @@
 constexpr SkColor kBackNudgeShadowColor2 = SkColorSetA(SK_ColorBLACK, 0x26);
 
 // Duration of the pause before sliding in to show the nudge.
-constexpr base::TimeDelta kPauseBeforeShowAnimationDuration =
-    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kPauseBeforeShowAnimationDuration = base::Seconds(10);
 
 // Duration for the animation to show the nudge.
-constexpr base::TimeDelta kNudgeShowAnimationDuration =
-    base::TimeDelta::FromMilliseconds(600);
+constexpr base::TimeDelta kNudgeShowAnimationDuration = base::Milliseconds(600);
 
 // Duration for the animation to hide the nudge.
-constexpr base::TimeDelta kNudgeHideAnimationDuration =
-    base::TimeDelta::FromMilliseconds(400);
+constexpr base::TimeDelta kNudgeHideAnimationDuration = base::Milliseconds(400);
 
 // Duration for the animation to fade out the suggestion label and circle when
 // the back nudge showing animation is interrupted and should be dismissed.
-constexpr base::TimeDelta kSuggestionDismissDuration =
-    base::TimeDelta::FromMilliseconds(100);
+constexpr base::TimeDelta kSuggestionDismissDuration = base::Milliseconds(100);
 
 // Duration for the animation of the suggestion part of the nudge.
 constexpr base::TimeDelta kSuggestionBounceAnimationDuration =
-    base::TimeDelta::FromMilliseconds(600);
+    base::Milliseconds(600);
 
 // Repeat bouncing times of the suggestion animation.
 constexpr int kSuggestionAnimationRepeatTimes = 4;
diff --git a/ash/wm/gestures/back_gesture/back_gesture_contextual_nudge_controller_impl_unittest.cc b/ash/wm/gestures/back_gesture/back_gesture_contextual_nudge_controller_impl_unittest.cc
index c893219..e4a486fe 100644
--- a/ash/wm/gestures/back_gesture/back_gesture_contextual_nudge_controller_impl_unittest.cc
+++ b/ash/wm/gestures/back_gesture/back_gesture_contextual_nudge_controller_impl_unittest.cc
@@ -73,7 +73,7 @@
     // Is only allowed after the drag handle nudge has been shown - simulate
     // drag handle so back gesture gets enabled.
     contextual_tooltip::OverrideClockForTesting(&test_clock_);
-    test_clock_.Advance(base::TimeDelta::FromSeconds(360));
+    test_clock_.Advance(base::Seconds(360));
     contextual_tooltip::HandleNudgeShown(
         user1_pref_service(), contextual_tooltip::TooltipType::kInAppToHome);
     contextual_tooltip::HandleNudgeShown(
@@ -99,8 +99,7 @@
     while (nudge()) {
       base::RunLoop run_loop;
       base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-          FROM_HERE, run_loop.QuitClosure(),
-          base::TimeDelta::FromMilliseconds(100));
+          FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(100));
       run_loop.Run();
     }
   }
@@ -137,7 +136,7 @@
   void GenerateBackSequence() {
     GetEventGenerator()->GestureScrollSequence(
         gfx::Point(0, 100), gfx::Point(kSwipingDistanceForGoingBack + 10, 100),
-        base::TimeDelta::FromMilliseconds(100), 3);
+        base::Milliseconds(100), 3);
   }
 
  private:
@@ -392,8 +391,7 @@
       "Ash.ContextualNudgeDismissContext.BackGesture",
       contextual_tooltip::DismissNudgeReason::kPerformedGesture, 1);
   histogram_tester.ExpectTimeBucketCount(
-      "Ash.ContextualNudgeDismissTime.BackGesture",
-      base::TimeDelta::FromSeconds(0), 1);
+      "Ash.ContextualNudgeDismissTime.BackGesture", base::Seconds(0), 1);
 }
 
 // crbug.com/1239200: flaky on linux.
diff --git a/ash/wm/gestures/back_gesture/back_gesture_event_handler_unittest.cc b/ash/wm/gestures/back_gesture/back_gesture_event_handler_unittest.cc
index 0da3efe..f424a02 100644
--- a/ash/wm/gestures/back_gesture/back_gesture_event_handler_unittest.cc
+++ b/ash/wm/gestures/back_gesture/back_gesture_event_handler_unittest.cc
@@ -107,7 +107,7 @@
   void GenerateBackSequence() {
     GetEventGenerator()->GestureScrollSequence(
         gfx::Point(0, 100), gfx::Point(kSwipingDistanceForGoingBack + 10, 100),
-        base::TimeDelta::FromMilliseconds(100), 3);
+        base::Milliseconds(100), 3);
   }
 
   TestShellDelegate* GetShellDelegate() {
@@ -138,7 +138,7 @@
   const gfx::Point start(0, 100);
   generator->GestureScrollSequence(
       start, gfx::Point(kSwipingDistanceForGoingBack - 10, 100),
-      base::TimeDelta::FromMilliseconds(100), 3);
+      base::Milliseconds(100), 3);
   EXPECT_EQ(0, target_back_press.accelerator_count());
   EXPECT_EQ(0, target_back_release.accelerator_count());
 
@@ -146,7 +146,7 @@
   // should go to previous page.
   generator->GestureScrollSequence(
       start, gfx::Point(kSwipingDistanceForGoingBack + 10, 100),
-      base::TimeDelta::FromMilliseconds(100), 3);
+      base::Milliseconds(100), 3);
   EXPECT_EQ(1, target_back_press.accelerator_count());
   EXPECT_EQ(1, target_back_release.accelerator_count());
 }
@@ -164,7 +164,7 @@
   // X-velocity here will be 800 dips/seconds.
   ui::test::EventGenerator* generator = GetEventGenerator();
   generator->GestureScrollSequence(gfx::Point(0, 0), gfx::Point(16, 0),
-                                   base::TimeDelta::FromMilliseconds(20),
+                                   base::Milliseconds(20),
                                    /*steps=*/1);
   EXPECT_EQ(0, target_back_press.accelerator_count());
   EXPECT_EQ(0, target_back_release.accelerator_count());
@@ -173,7 +173,7 @@
   // |kFlingVelocityForGoingBack| should go to previous page. X-velocity here
   // will be 1600 dips/seconds.
   generator->GestureScrollSequence(gfx::Point(0, 0), gfx::Point(16, 0),
-                                   base::TimeDelta::FromMilliseconds(1),
+                                   base::Milliseconds(1),
                                    /*steps=*/1);
   EXPECT_EQ(1, target_back_press.accelerator_count());
   EXPECT_EQ(1, target_back_release.accelerator_count());
@@ -184,7 +184,7 @@
   // will be 800 dips/seconds and drag distance is 160, which is larger than
   // |kSwipingDistanceForGoingBack|.
   generator->GestureScrollSequence(gfx::Point(0, 0), gfx::Point(160, 0),
-                                   base::TimeDelta::FromMilliseconds(200),
+                                   base::Milliseconds(200),
                                    /*steps=*/1);
   EXPECT_EQ(2, target_back_press.accelerator_count());
   EXPECT_EQ(2, target_back_release.accelerator_count());
@@ -346,8 +346,7 @@
             0.33f * display_bounds.width());
   EXPECT_LE(split_view_controller->divider_position(),
             0.5f * display_bounds.width());
-  generator->GestureScrollSequence(start, end,
-                                   base::TimeDelta::FromMilliseconds(100), 3);
+  generator->GestureScrollSequence(start, end, base::Milliseconds(100), 3);
   EXPECT_EQ(SplitViewController::State::kBothSnapped,
             split_view_controller->state());
   EXPECT_EQ(1, target_back_press.accelerator_count());
@@ -362,8 +361,7 @@
   // triggered.
   start = divider_bounds.CenterPoint();
   end = gfx::Point(0.67f * display_bounds.width(), start.y());
-  generator->GestureScrollSequence(start, end,
-                                   base::TimeDelta::FromMilliseconds(100), 3);
+  generator->GestureScrollSequence(start, end, base::Milliseconds(100), 3);
   EXPECT_EQ(1, target_back_press.accelerator_count());
   EXPECT_EQ(1, target_back_release.accelerator_count());
   EXPECT_GT(split_view_controller->divider_position(),
@@ -659,8 +657,8 @@
   gfx::Point start = gfx::Point(divider_bounds.CenterPoint().x(), 10);
   gfx::Point end =
       gfx::Point(start.x() + kSwipingDistanceForGoingBack + 10, start.y());
-  GetEventGenerator()->GestureScrollSequence(
-      start, end, base::TimeDelta::FromMilliseconds(100), 3);
+  GetEventGenerator()->GestureScrollSequence(start, end,
+                                             base::Milliseconds(100), 3);
   // Virtual keyboard should be closed.
   EXPECT_EQ(SplitViewController::State::kBothSnapped,
             split_view_controller->state());
@@ -674,8 +672,8 @@
   start = gfx::Point(divider_bounds.CenterPoint().x(),
                      keyboard_bounds.CenterPoint().y());
   end = gfx::Point(start.x() + kSwipingDistanceForGoingBack + 10, start.y());
-  GetEventGenerator()->GestureScrollSequence(
-      start, end, base::TimeDelta::FromMilliseconds(100), 3);
+  GetEventGenerator()->GestureScrollSequence(start, end,
+                                             base::Milliseconds(100), 3);
   // Nothing should happen.
   EXPECT_EQ(SplitViewController::State::kBothSnapped,
             split_view_controller->state());
@@ -748,8 +746,8 @@
   gfx::Point start = gfx::Point(divider_bounds.CenterPoint().x(), 10);
   gfx::Point end =
       gfx::Point(start.x() + kSwipingDistanceForGoingBack + 10, start.y());
-  GetEventGenerator()->GestureScrollSequence(
-      start, end, base::TimeDelta::FromMilliseconds(100), 3);
+  GetEventGenerator()->GestureScrollSequence(start, end,
+                                             base::Milliseconds(100), 3);
   // Virtual keyboard should be closed. But Unfortunately we cannot hook
   // this all the wall up to see if the Android IME is hidden, but we can check
   // that back key events are generated and we're still in both snapped split
@@ -767,8 +765,8 @@
   start = gfx::Point(divider_bounds.CenterPoint().x(),
                      keyboard_bounds.CenterPoint().y());
   end = gfx::Point(start.x() + kSwipingDistanceForGoingBack + 10, start.y());
-  GetEventGenerator()->GestureScrollSequence(
-      start, end, base::TimeDelta::FromMilliseconds(100), 3);
+  GetEventGenerator()->GestureScrollSequence(start, end,
+                                             base::Milliseconds(100), 3);
   // Nothing should happen.
   EXPECT_EQ(SplitViewController::State::kBothSnapped,
             split_view_controller->state());
diff --git a/ash/wm/gestures/wm_gesture_handler.cc b/ash/wm/gestures/wm_gesture_handler.cc
index a6fecff..58ac36d 100644
--- a/ash/wm/gestures/wm_gesture_handler.cc
+++ b/ash/wm/gestures/wm_gesture_handler.cc
@@ -37,8 +37,7 @@
 constexpr char kSwitchNextDeskToastId[] = "ash.wm.reverse_next_desk_toast";
 constexpr char kSwitchLastDeskToastId[] = "ash.wm.reverse_last_desk_toast";
 
-constexpr base::TimeDelta kToastDurationMs =
-    base::TimeDelta::FromMilliseconds(2500);
+constexpr base::TimeDelta kToastDurationMs = base::Milliseconds(2500);
 
 // Check if the user used the wrong gestures.
 bool g_did_wrong_enter_overview_gesture = false;
diff --git a/ash/wm/gestures/wm_gesture_handler_unittest.cc b/ash/wm/gestures/wm_gesture_handler_unittest.cc
index dbdc0ffb..273b618 100644
--- a/ash/wm/gestures/wm_gesture_handler_unittest.cc
+++ b/ash/wm/gestures/wm_gesture_handler_unittest.cc
@@ -95,8 +95,8 @@
 
   void Scroll(float x_offset, float y_offset, int fingers) {
     GetEventGenerator()->ScrollSequence(
-        gfx::Point(), base::TimeDelta::FromMilliseconds(5),
-        GetOffsetX(x_offset), GetOffsetY(y_offset), /*steps=*/100, fingers);
+        gfx::Point(), base::Milliseconds(5), GetOffsetX(x_offset),
+        GetOffsetY(y_offset), /*steps=*/100, fingers);
   }
 
   void ScrollToSwitchDesks(bool scroll_left) {
@@ -117,7 +117,7 @@
     // Continue with a large enough scroll to start the desk switch animation.
     // The animation does not start on fling cancel since there is no finger
     // data in production code.
-    const base::TimeDelta step_delay = base::TimeDelta::FromMilliseconds(5);
+    const base::TimeDelta step_delay = base::Milliseconds(5);
     timestamp += step_delay;
     const int direction = scroll_left ? -1 : 1;
     const int initial_move_x =
@@ -261,7 +261,7 @@
 TEST_F(WmGestureHandlerTest, EnterOverviewOnScrollEnd) {
   base::TimeTicks timestamp = base::TimeTicks::Now();
   const int num_fingers = 3;
-  base::TimeDelta step_delay(base::TimeDelta::FromMilliseconds(5));
+  base::TimeDelta step_delay(base::Milliseconds(5));
   ui::ScrollEvent fling_cancel(ui::ET_SCROLL_FLING_CANCEL, gfx::Point(),
                                timestamp, 0, 0, 0, 0, 0, num_fingers);
   GetEventGenerator()->Dispatch(&fling_cancel);
diff --git a/ash/wm/immersive_fullscreen_controller_unittest.cc b/ash/wm/immersive_fullscreen_controller_unittest.cc
index c5b7294..95750e3 100644
--- a/ash/wm/immersive_fullscreen_controller_unittest.cc
+++ b/ash/wm/immersive_fullscreen_controller_unittest.cc
@@ -292,8 +292,8 @@
         views::View::ConvertPointToScreen(top_container(), &start);
         views::View::ConvertPointToScreen(top_container(), &end);
         ui::test::EventGenerator* event_generator = GetEventGenerator();
-        event_generator->GestureScrollSequence(
-            start, end, base::TimeDelta::FromMilliseconds(30), 1);
+        event_generator->GestureScrollSequence(start, end,
+                                               base::Milliseconds(30), 1);
         break;
       }
     }
@@ -1129,7 +1129,7 @@
       shelf->shelf_widget()->GetWindowBoundsInScreen().top_center();
   GetEventGenerator()->GestureScrollSequence(
       start, start + gfx::Vector2d(0, -ShelfConfig::Get()->shelf_size()),
-      base::TimeDelta::FromMilliseconds(200), /*steps=*/5);
+      base::Milliseconds(200), /*steps=*/5);
 
   EXPECT_EQ(SHELF_AUTO_HIDE, shelf->GetVisibilityState());
   EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->GetAutoHideState());
diff --git a/ash/wm/lock_state_controller.cc b/ash/wm/lock_state_controller.cc
index 43f2f170..81311db 100644
--- a/ash/wm/lock_state_controller.cc
+++ b/ash/wm/lock_state_controller.cc
@@ -38,10 +38,9 @@
 #include "ui/wm/core/compound_event_filter.h"
 #include "ui/wm/core/cursor_manager.h"
 
-#define UMA_HISTOGRAM_LOCK_TIMES(name, sample)                     \
-  UMA_HISTOGRAM_CUSTOM_TIMES(name, sample,                         \
-                             base::TimeDelta::FromMilliseconds(1), \
-                             base::TimeDelta::FromSeconds(50), 100)
+#define UMA_HISTOGRAM_LOCK_TIMES(name, sample)                    \
+  UMA_HISTOGRAM_CUSTOM_TIMES(name, sample, base::Milliseconds(1), \
+                             base::Seconds(50), 100)
 
 namespace ash {
 
@@ -63,12 +62,11 @@
 
 // Amount of time to wait for our lock requests to be honored before giving up.
 constexpr base::TimeDelta kLockFailTimeout =
-    base::TimeDelta::FromSeconds(8 * kTimeoutMultiplier);
+    base::Seconds(8 * kTimeoutMultiplier);
 
 // Additional time to wait after starting the fast-close shutdown animation
 // before actually requesting shutdown, to give the animation time to finish.
-constexpr base::TimeDelta kShutdownRequestDelay =
-    base::TimeDelta::FromMilliseconds(50);
+constexpr base::TimeDelta kShutdownRequestDelay = base::Milliseconds(50);
 
 }  // namespace
 
@@ -237,7 +235,7 @@
 
 void LockStateController::OnLockStateChanged(bool locked) {
   // Unpause if lock animations didn't start and ends in 3 seconds.
-  constexpr base::TimeDelta kPauseTimeout = base::TimeDelta::FromSeconds(3);
+  constexpr base::TimeDelta kPauseTimeout = base::Seconds(3);
 
   DCHECK((lock_fail_timer_.IsRunning() && lock_duration_timer_ != nullptr) ||
          (!lock_fail_timer_.IsRunning() && lock_duration_timer_ == nullptr));
@@ -307,7 +305,7 @@
   // start real shutdown after a delay of |duration|.
   base::TimeDelta sound_duration =
       std::min(Shell::Get()->accessibility_controller()->PlayShutdownSound(),
-               base::TimeDelta::FromMilliseconds(kMaxShutdownSoundDurationMs));
+               base::Milliseconds(kMaxShutdownSoundDurationMs));
   duration = std::max(duration, sound_duration);
   real_shutdown_timer_.Start(FROM_HERE, duration, this,
                              &LockStateController::OnRealPowerTimeout);
diff --git a/ash/wm/overview/cleanup_animation_observer_unittest.cc b/ash/wm/overview/cleanup_animation_observer_unittest.cc
index 25d315da..5c05b3d 100644
--- a/ash/wm/overview/cleanup_animation_observer_unittest.cc
+++ b/ash/wm/overview/cleanup_animation_observer_unittest.cc
@@ -120,8 +120,7 @@
   {
     ui::ScopedLayerAnimationSettings animation_settings(
         widget_window->layer()->GetAnimator());
-    animation_settings.SetTransitionDuration(
-        base::TimeDelta::FromMilliseconds(1000));
+    animation_settings.SetTransitionDuration(base::Milliseconds(1000));
     animation_settings.SetPreemptionStrategy(
         ui::LayerAnimator::IMMEDIATELY_ANIMATE_TO_NEW_TARGET);
 
@@ -154,8 +153,7 @@
         ui::ScopedAnimationDurationScaleMode::NON_ZERO_DURATION);
     ui::ScopedLayerAnimationSettings animation_settings(
         widget_window->layer()->GetAnimator());
-    animation_settings.SetTransitionDuration(
-        base::TimeDelta::FromMilliseconds(1000));
+    animation_settings.SetTransitionDuration(base::Milliseconds(1000));
     animation_settings.SetPreemptionStrategy(
         ui::LayerAnimator::IMMEDIATELY_ANIMATE_TO_NEW_TARGET);
 
diff --git a/ash/wm/overview/delayed_animation_observer_impl_unittest.cc b/ash/wm/overview/delayed_animation_observer_impl_unittest.cc
index 6c834eb4..a3548ac 100644
--- a/ash/wm/overview/delayed_animation_observer_impl_unittest.cc
+++ b/ash/wm/overview/delayed_animation_observer_impl_unittest.cc
@@ -75,15 +75,14 @@
 TEST_F(ForceDelayObserverTest, Basic) {
   TestOverviewDelegate delegate;
 
-  auto observer = std::make_unique<ForceDelayObserver>(
-      base::TimeDelta::FromMilliseconds(100));
+  auto observer = std::make_unique<ForceDelayObserver>(base::Milliseconds(100));
   delegate.AddEnterAnimationObserver(std::move(observer));
   EXPECT_EQ(1u, delegate.num_enter_observers());
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(50));
+  task_environment()->FastForwardBy(base::Milliseconds(50));
   base::RunLoop().RunUntilIdle();
   EXPECT_EQ(1u, delegate.num_enter_observers());
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(55));
+  task_environment()->FastForwardBy(base::Milliseconds(55));
   base::RunLoop().RunUntilIdle();
   EXPECT_EQ(0u, delegate.num_enter_observers());
 }
@@ -98,8 +97,7 @@
   {
     ui::ScopedLayerAnimationSettings animation_settings(
         window->layer()->GetAnimator());
-    animation_settings.SetTransitionDuration(
-        base::TimeDelta::FromMilliseconds(1000));
+    animation_settings.SetTransitionDuration(base::Milliseconds(1000));
     animation_settings.SetPreemptionStrategy(
         ui::LayerAnimator::IMMEDIATELY_ANIMATE_TO_NEW_TARGET);
 
@@ -126,8 +124,7 @@
   {
     ui::ScopedLayerAnimationSettings animation_settings(
         window->layer()->GetAnimator());
-    animation_settings.SetTransitionDuration(
-        base::TimeDelta::FromMilliseconds(1000));
+    animation_settings.SetTransitionDuration(base::Milliseconds(1000));
     animation_settings.SetPreemptionStrategy(
         ui::LayerAnimator::IMMEDIATELY_ANIMATE_TO_NEW_TARGET);
 
diff --git a/ash/wm/overview/overview_constants.h b/ash/wm/overview/overview_constants.h
index a91b98dd..7bfae00 100644
--- a/ash/wm/overview/overview_constants.h
+++ b/ash/wm/overview/overview_constants.h
@@ -13,7 +13,7 @@
 namespace ash {
 
 // The time duration for transformation animations.
-constexpr base::TimeDelta kTransition = base::TimeDelta::FromMilliseconds(300);
+constexpr base::TimeDelta kTransition = base::Milliseconds(300);
 
 // In the conceptual overview table, the window margin is the space reserved
 // around the window within the cell. This margin does not overlap so the
diff --git a/ash/wm/overview/overview_controller.cc b/ash/wm/overview/overview_controller.cc
index 75bf195..18738bb 100644
--- a/ash/wm/overview/overview_controller.cc
+++ b/ash/wm/overview/overview_controller.cc
@@ -44,12 +44,12 @@
 // triggered animation observer is drawn. Wait 50ms in attempt to let its draw
 // and swap finish.
 constexpr base::TimeDelta kOcclusionPauseDurationForStart =
-    base::TimeDelta::FromMilliseconds(50);
+    base::Milliseconds(50);
 
 // Wait longer when exiting overview mode in case when a user may re-enter
 // overview mode immediately, contents are ready.
 constexpr base::TimeDelta kOcclusionPauseDurationForEnd =
-    base::TimeDelta::FromMilliseconds(500);
+    base::Milliseconds(500);
 
 bool IsSplitViewDividerDraggedOrAnimated() {
   SplitViewController* split_view_controller =
diff --git a/ash/wm/overview/overview_controller_unittest.cc b/ash/wm/overview/overview_controller_unittest.cc
index 5b4e6f8c..6fc3352 100644
--- a/ash/wm/overview/overview_controller_unittest.cc
+++ b/ash/wm/overview/overview_controller_unittest.cc
@@ -304,8 +304,7 @@
 
   Shell::Get()
       ->overview_controller()
-      ->set_occlusion_pause_duration_for_end_for_test(
-          base::TimeDelta::FromMilliseconds(100));
+      ->set_occlusion_pause_duration_for_end_for_test(base::Milliseconds(100));
   TestOverviewObserver observer(/*should_monitor_animation_state = */ true);
   ui::ScopedAnimationDurationScaleMode non_zero(
       ui::ScopedAnimationDurationScaleMode::NON_ZERO_DURATION);
diff --git a/ash/wm/overview/overview_grid.cc b/ash/wm/overview/overview_grid.cc
index 97cd2d5..78f9e45 100644
--- a/ash/wm/overview/overview_grid.cc
+++ b/ash/wm/overview/overview_grid.cc
@@ -89,10 +89,10 @@
 // Wait a while before unpausing the occlusion tracker after a scroll has
 // completed as the user may start another scroll.
 constexpr base::TimeDelta kOcclusionUnpauseDurationForScroll =
-    base::TimeDelta::FromMilliseconds(500);
+    base::Milliseconds(500);
 
 constexpr base::TimeDelta kOcclusionUnpauseDurationForRotation =
-    base::TimeDelta::FromMilliseconds(300);
+    base::Milliseconds(300);
 
 // Toast id for the toast that is displayed when a user tries to move a window
 // that is visible on all desks to another desk.
diff --git a/ash/wm/overview/overview_item_view.cc b/ash/wm/overview/overview_item_view.cc
index 30455b8..01b7b348 100644
--- a/ash/wm/overview/overview_item_view.cc
+++ b/ash/wm/overview/overview_item_view.cc
@@ -42,20 +42,17 @@
 namespace {
 
 // Duration of the show/hide animation of the header.
-constexpr base::TimeDelta kHeaderFadeDuration =
-    base::TimeDelta::FromMilliseconds(167);
+constexpr base::TimeDelta kHeaderFadeDuration = base::Milliseconds(167);
 
 // Delay before the show animation of the header.
-constexpr base::TimeDelta kHeaderFadeInDelay =
-    base::TimeDelta::FromMilliseconds(83);
+constexpr base::TimeDelta kHeaderFadeInDelay = base::Milliseconds(83);
 
 // Duration of the slow show animation of the close button.
 constexpr base::TimeDelta kCloseButtonSlowFadeInDuration =
-    base::TimeDelta::FromMilliseconds(300);
+    base::Milliseconds(300);
 
 // Delay before the slow show animation of the close button.
-constexpr base::TimeDelta kCloseButtonSlowFadeInDelay =
-    base::TimeDelta::FromMilliseconds(750);
+constexpr base::TimeDelta kCloseButtonSlowFadeInDelay = base::Milliseconds(750);
 
 constexpr int kCloseButtonInkDropRadiusDp = 18;
 
diff --git a/ash/wm/overview/overview_session_unittest.cc b/ash/wm/overview/overview_session_unittest.cc
index 7fed1565..974fd07d 100644
--- a/ash/wm/overview/overview_session_unittest.cc
+++ b/ash/wm/overview/overview_session_unittest.cc
@@ -209,7 +209,7 @@
     // is a next frame.
     ignore_result(ui::WaitForNextFrameToBePresented(
         Shell::GetPrimaryRootWindow()->layer()->GetCompositor(),
-        base::TimeDelta::FromMilliseconds(500)));
+        base::Milliseconds(500)));
 
     {
       SCOPED_TRACE(trace + std::string(".Enter"));
@@ -3183,8 +3183,8 @@
 
  protected:
   void GenerateScrollSequence(const gfx::Point& start, const gfx::Point& end) {
-    GetEventGenerator()->GestureScrollSequence(
-        start, end, base::TimeDelta::FromMilliseconds(100), 1000);
+    GetEventGenerator()->GestureScrollSequence(start, end,
+                                               base::Milliseconds(100), 1000);
   }
 
   void DispatchLongPress(OverviewItem* item) {
@@ -3343,7 +3343,7 @@
 
   // Scroll a bit to the left, so the overview items that are offscreen on the
   // right start to become visible.
-  const base::TimeDelta step_delay = base::TimeDelta::FromMilliseconds(5);
+  const base::TimeDelta step_delay = base::Milliseconds(5);
   for (int i = 0; i < 10; ++i) {
     timestamp += step_delay;
     ui::TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(x, y), timestamp,
@@ -3501,9 +3501,8 @@
 
   // Create a scroll sequence which results in a fling.
   const gfx::Vector2d shift(-200, 0);
-  GetEventGenerator()->GestureScrollSequence(
-      item_center, item_center + shift, base::TimeDelta::FromMilliseconds(10),
-      10);
+  GetEventGenerator()->GestureScrollSequence(item_center, item_center + shift,
+                                             base::Milliseconds(10), 10);
 
   ui::Compositor* const compositor =
       windows[0]->GetRootWindow()->layer()->GetCompositor();
@@ -3521,7 +3520,7 @@
   for (int i = 0;
        i < kMaxLoops && grid_event_handler->IsFlingInProgressForTesting();
        ++i) {
-    task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(50));
+    task_environment()->FastForwardBy(base::Milliseconds(50));
     ui::DrawWaiterForTest::WaitForCompositingStarted(compositor);
 
     float scroll_offset = grid->scroll_offset();
@@ -4218,7 +4217,7 @@
   // Simulate a long press, which is required to snap windows.
   base::RunLoop run_loop;
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(), base::TimeDelta::FromMilliseconds(2));
+      FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(2));
   run_loop.Run();
 
   OverviewWindowDragController* drag_controller =
@@ -5162,8 +5161,7 @@
   {
     base::RunLoop run_loop;
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-        FROM_HERE, run_loop.QuitClosure(),
-        base::TimeDelta::FromMilliseconds(2));
+        FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(2));
     run_loop.Run();
   }
   EXPECT_EQ(
@@ -5184,8 +5182,7 @@
   {
     base::RunLoop run_loop;
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-        FROM_HERE, run_loop.QuitClosure(),
-        base::TimeDelta::FromMilliseconds(2));
+        FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(2));
     run_loop.Run();
   }
   EXPECT_EQ(
diff --git a/ash/wm/overview/overview_test_base.cc b/ash/wm/overview/overview_test_base.cc
index 74784803..c7ea72d 100644
--- a/ash/wm/overview/overview_test_base.cc
+++ b/ash/wm/overview/overview_test_base.cc
@@ -186,8 +186,7 @@
   aura::Env::GetInstance()->set_throttle_input_on_resize_for_testing(false);
   shelf_view_test_api_ = std::make_unique<ShelfViewTestAPI>(
       GetPrimaryShelf()->GetShelfViewForTesting());
-  shelf_view_test_api_->SetAnimationDuration(
-      base::TimeDelta::FromMilliseconds(1));
+  shelf_view_test_api_->SetAnimationDuration(base::Milliseconds(1));
   ScopedOverviewTransformWindow::SetImmediateCloseForTests(
       /*immediate=*/true);
   OverviewWallpaperController::SetDisableChangeWallpaperForTest(true);
diff --git a/ash/wm/overview/overview_wallpaper_controller.cc b/ash/wm/overview/overview_wallpaper_controller.cc
index 4ad8a8a..ecd974ac 100644
--- a/ash/wm/overview/overview_wallpaper_controller.cc
+++ b/ash/wm/overview/overview_wallpaper_controller.cc
@@ -21,8 +21,7 @@
 // is true.
 bool g_disable_wallpaper_change_for_tests = false;
 
-constexpr base::TimeDelta kBlurSlideDuration =
-    base::TimeDelta::FromMilliseconds(250);
+constexpr base::TimeDelta kBlurSlideDuration = base::Milliseconds(250);
 
 bool IsWallpaperChangeAllowed() {
   return !g_disable_wallpaper_change_for_tests;
diff --git a/ash/wm/overview/overview_window_drag_controller.cc b/ash/wm/overview/overview_window_drag_controller.cc
index 3818e77..c333eccc 100644
--- a/ash/wm/overview/overview_window_drag_controller.cc
+++ b/ash/wm/overview/overview_window_drag_controller.cc
@@ -62,7 +62,7 @@
 // Amount of time we wait to unpause the occlusion tracker after a overview item
 // is finished dragging. Waits a bit longer than the overview item animation.
 constexpr base::TimeDelta kOcclusionPauseDurationForDrag =
-    base::TimeDelta::FromMilliseconds(300);
+    base::Milliseconds(300);
 
 // The UMA histogram that records presentation time for window dragging
 // operation in overview mode.
diff --git a/ash/wm/overview/overview_window_drag_histogram_unittests.cc b/ash/wm/overview/overview_window_drag_histogram_unittests.cc
index 0954408..294f810 100644
--- a/ash/wm/overview/overview_window_drag_histogram_unittests.cc
+++ b/ash/wm/overview/overview_window_drag_histogram_unittests.cc
@@ -96,8 +96,7 @@
     generator->PressTouch();
     base::RunLoop run_loop;
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-        FROM_HERE, run_loop.QuitClosure(),
-        base::TimeDelta::FromMilliseconds(2));
+        FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(2));
     run_loop.Run();
 
     gesture_config->set_long_press_time_in_ms(old_long_press_time_in_ms);
diff --git a/ash/wm/overview/scoped_overview_animation_settings.cc b/ash/wm/overview/scoped_overview_animation_settings.cc
index 5908773f..8def01b0 100644
--- a/ash/wm/overview/scoped_overview_animation_settings.cc
+++ b/ash/wm/overview/scoped_overview_animation_settings.cc
@@ -21,32 +21,27 @@
 namespace {
 
 // The time duration for fading out when closing an item.
-constexpr base::TimeDelta kCloseFadeOut =
-    base::TimeDelta::FromMilliseconds(100);
+constexpr base::TimeDelta kCloseFadeOut = base::Milliseconds(100);
 
 // The time duration for scaling down when an item is closed.
-constexpr base::TimeDelta kCloseScale = base::TimeDelta::FromMilliseconds(100);
+constexpr base::TimeDelta kCloseScale = base::Milliseconds(100);
 
 // The time duration for widgets to fade in.
-constexpr base::TimeDelta kFadeInDelay = base::TimeDelta::FromMilliseconds(83);
-constexpr base::TimeDelta kFadeIn = base::TimeDelta::FromMilliseconds(167);
+constexpr base::TimeDelta kFadeInDelay = base::Milliseconds(83);
+constexpr base::TimeDelta kFadeIn = base::Milliseconds(167);
 
 // The time duration for widgets to fade out.
-constexpr base::TimeDelta kFadeOut = base::TimeDelta::FromMilliseconds(100);
+constexpr base::TimeDelta kFadeOut = base::Milliseconds(100);
 
-constexpr base::TimeDelta kFromHomeLauncherDelay =
-    base::TimeDelta::FromMilliseconds(250);
-constexpr base::TimeDelta kHomeLauncherTransition =
-    base::TimeDelta::FromMilliseconds(350);
+constexpr base::TimeDelta kFromHomeLauncherDelay = base::Milliseconds(250);
+constexpr base::TimeDelta kHomeLauncherTransition = base::Milliseconds(350);
 
 // Time duration of the show animation of the drop target.
-constexpr base::TimeDelta kDropTargetFade =
-    base::TimeDelta::FromMilliseconds(250);
+constexpr base::TimeDelta kDropTargetFade = base::Milliseconds(250);
 
 // Time duration to fade in overview windows when a window drag slows down or
 // stops.
-constexpr base::TimeDelta kFadeInOnWindowDrag =
-    base::TimeDelta::FromMilliseconds(350);
+constexpr base::TimeDelta kFadeInOnWindowDrag = base::Milliseconds(350);
 
 base::TimeDelta GetAnimationDuration(OverviewAnimationType animation_type) {
   switch (animation_type) {
diff --git a/ash/wm/overview/scoped_overview_transform_window.cc b/ash/wm/overview/scoped_overview_transform_window.cc
index 372512d3..c61d474 100644
--- a/ash/wm/overview/scoped_overview_transform_window.cc
+++ b/ash/wm/overview/scoped_overview_transform_window.cc
@@ -473,7 +473,7 @@
       FROM_HERE,
       base::BindOnce(&ScopedOverviewTransformWindow::CloseWidget,
                      weak_ptr_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(kCloseWindowDelayInMilliseconds));
+      base::Milliseconds(kCloseWindowDelayInMilliseconds));
 }
 
 bool ScopedOverviewTransformWindow::IsMinimized() const {
diff --git a/ash/wm/pip/pip_window_resizer.cc b/ash/wm/pip/pip_window_resizer.cc
index 84558996..8c9dd39 100644
--- a/ash/wm/pip/pip_window_resizer.cc
+++ b/ash/wm/pip/pip_window_resizer.cc
@@ -297,7 +297,7 @@
         CollisionDetectionUtils::RelativePriority::kPictureInPicture);
 
     base::TimeDelta duration =
-        base::TimeDelta::FromMilliseconds(kPipSnapToEdgeAnimationDurationMs);
+        base::Milliseconds(kPipSnapToEdgeAnimationDurationMs);
     ::wm::ConvertRectFromScreen(GetTarget()->parent(), &bounds);
     SetBoundsWMEvent event(bounds, /*animate=*/true, duration);
     window_state()->OnWMEvent(&event);
diff --git a/ash/wm/resize_shadow.cc b/ash/wm/resize_shadow.cc
index 76237cb4..401cddb 100644
--- a/ash/wm/resize_shadow.cc
+++ b/ash/wm/resize_shadow.cc
@@ -154,7 +154,7 @@
   ui::ScopedLayerAnimationSettings settings(layer_->GetAnimator());
   if (!visible_)
     settings.SetTransitionDuration(
-        base::TimeDelta::FromMilliseconds(params_.hide_duration_ms));
+        base::Milliseconds(params_.hide_duration_ms));
   layer_->SetOpacity(visible_ ? params_.opacity : 0.f);
   layer_->SetVisible(visible_);
 }
diff --git a/ash/wm/resize_shadow_and_cursor_unittest.cc b/ash/wm/resize_shadow_and_cursor_unittest.cc
index d66876b..294fc76 100644
--- a/ash/wm/resize_shadow_and_cursor_unittest.cc
+++ b/ash/wm/resize_shadow_and_cursor_unittest.cc
@@ -349,7 +349,7 @@
   int start_y = 100 + kResizeOutsideBoundsSize - 1;
   generator.GestureScrollSequenceWithCallback(
       gfx::Point(start_x, start_y), gfx::Point(start_x + 50, start_y + 50),
-      base::TimeDelta::FromMilliseconds(200), 3,
+      base::Milliseconds(200), 3,
       base::BindRepeating(
           &ResizeShadowAndCursorTest::ProcessBottomRightResizeGesture,
           base::Unretained(this)));
diff --git a/ash/wm/session_state_animator.cc b/ash/wm/session_state_animator.cc
index 39baccaf..476747b 100644
--- a/ash/wm/session_state_animator.cc
+++ b/ash/wm/session_state_animator.cc
@@ -78,16 +78,16 @@
     case ANIMATION_SPEED_IMMEDIATE:
       return base::TimeDelta();
     case ANIMATION_SPEED_UNDOABLE:
-      return base::TimeDelta::FromMilliseconds(400);
+      return base::Milliseconds(400);
     case ANIMATION_SPEED_MOVE_WINDOWS:
-      return base::TimeDelta::FromMilliseconds(350);
+      return base::Milliseconds(350);
     case ANIMATION_SPEED_UNDO_MOVE_WINDOWS:
-      return base::TimeDelta::FromMilliseconds(350);
+      return base::Milliseconds(350);
     case ANIMATION_SPEED_SHUTDOWN:
-      return IsTabletModeEnabled() ? base::TimeDelta::FromMilliseconds(1500)
-                                   : base::TimeDelta::FromMilliseconds(1000);
+      return IsTabletModeEnabled() ? base::Milliseconds(1500)
+                                   : base::Milliseconds(1000);
     case ANIMATION_SPEED_REVERT_SHUTDOWN:
-      return base::TimeDelta::FromMilliseconds(500);
+      return base::Milliseconds(500);
   }
   // Satisfy compilers that do not understand that we will return from switch
   // above anyway.
diff --git a/ash/wm/splitview/split_view_constants.h b/ash/wm/splitview/split_view_constants.h
index c8ccd09f..aaf1221 100644
--- a/ash/wm/splitview/split_view_constants.h
+++ b/ash/wm/splitview/split_view_constants.h
@@ -35,20 +35,17 @@
 constexpr int kSplitviewDividerEnlargedShortSideLength = 16;
 
 // The time duration for the window transformation animations.
-constexpr auto kSplitviewWindowTransformDuration =
-    base::TimeDelta::FromMilliseconds(250);
+constexpr auto kSplitviewWindowTransformDuration = base::Milliseconds(250);
 
 // The time duration for the divider animations when dragging starts and ends.
 constexpr auto kSplitviewDividerSelectionStatusChangeDuration =
-    base::TimeDelta::FromMilliseconds(250);
+    base::Milliseconds(250);
 
 // The time duration for the divider spawning animation.
-constexpr auto kSplitviewDividerSpawnDuration =
-    base::TimeDelta::FromMilliseconds(100);
+constexpr auto kSplitviewDividerSpawnDuration = base::Milliseconds(100);
 
 // The delay before the divider spawning animation.
-constexpr auto kSplitviewDividerSpawnDelay =
-    base::TimeDelta::FromMilliseconds(183);
+constexpr auto kSplitviewDividerSpawnDelay = base::Milliseconds(183);
 
 // The thickness of the divider's handler.
 constexpr int kSplitviewWhiteBarShortSideLength = 2;
diff --git a/ash/wm/splitview/split_view_controller.cc b/ash/wm/splitview/split_view_controller.cc
index cd75679..73456d0c 100644
--- a/ash/wm/splitview/split_view_controller.cc
+++ b/ash/wm/splitview/split_view_controller.cc
@@ -114,7 +114,7 @@
 // If performant split view resizing is enabled, this is how often the divider
 // drag speed is checked.
 constexpr base::TimeDelta kPerformantSplitViewChunkTime =
-    base::TimeDelta::FromMilliseconds(500);
+    base::Milliseconds(500);
 
 // Records the animation smoothness when the divider is released during a resize
 // and animated to a fixed position ratio.
@@ -336,7 +336,7 @@
         ending_position_(ending_position) {
     // Before you change this value, read the comment on kIsWindowMovedTimeoutMs
     // in tablet_mode_window_drag_delegate.cc.
-    SetSlideDuration(base::TimeDelta::FromMilliseconds(300));
+    SetSlideDuration(base::Milliseconds(300));
     SetTweenType(gfx::Tween::EASE_IN);
 
     aura::Window* window = split_view_controller->left_window()
diff --git a/ash/wm/splitview/split_view_controller_unittest.cc b/ash/wm/splitview/split_view_controller_unittest.cc
index a49a42e40..90932af 100644
--- a/ash/wm/splitview/split_view_controller_unittest.cc
+++ b/ash/wm/splitview/split_view_controller_unittest.cc
@@ -256,7 +256,7 @@
     // is a next frame.
     ignore_result(ui::WaitForNextFrameToBePresented(
         Shell::GetPrimaryRootWindow()->layer()->GetCompositor(),
-        base::TimeDelta::FromMilliseconds(100)));
+        base::Milliseconds(100)));
 
     {
       SCOPED_TRACE(trace + std::string(".Enter"));
diff --git a/ash/wm/splitview/split_view_metrics_controller.cc b/ash/wm/splitview/split_view_metrics_controller.cc
index 8ba4938..b3acd06 100644
--- a/ash/wm/splitview/split_view_metrics_controller.cc
+++ b/ash/wm/splitview/split_view_metrics_controller.cc
@@ -659,9 +659,8 @@
   if (MaybePauseRecordBothSnappedClamshellSplitView())
     return;
 
-  base::UmaHistogramLongTimes(
-      kTimeInSplitScreenClamshellHistogram,
-      base::TimeDelta::FromMilliseconds(clamshell_split_view_time_));
+  base::UmaHistogramLongTimes(kTimeInSplitScreenClamshellHistogram,
+                              base::Milliseconds(clamshell_split_view_time_));
   base::UmaHistogramCounts100(kSplitViewResizeWindowCountClamshellHistogram,
                               clamshell_resize_count_);
   clamshell_split_view_time_ = 0;
@@ -706,8 +705,7 @@
 
   base::UmaHistogramLongTimes(
       kTimeInMultiDisplaySplitScreenClamshellHistogram,
-      base::TimeDelta::FromMilliseconds(
-          g_clamshell_multi_display_split_view_time_ms));
+      base::Milliseconds(g_clamshell_multi_display_split_view_time_ms));
   g_clamshell_multi_display_split_view_time_ms = 0;
 }
 
diff --git a/ash/wm/splitview/split_view_utils.cc b/ash/wm/splitview/split_view_utils.cc
index 8e3c78e..2933315 100644
--- a/ash/wm/splitview/split_view_utils.cc
+++ b/ash/wm/splitview/split_view_utils.cc
@@ -35,24 +35,18 @@
 using ::chromeos::WindowStateType;
 
 // The animation speed at which the highlights fade in or out.
-constexpr base::TimeDelta kHighlightsFadeInOut =
-    base::TimeDelta::FromMilliseconds(250);
+constexpr base::TimeDelta kHighlightsFadeInOut = base::Milliseconds(250);
 // The animation speed which the other highlight fades in or out.
-constexpr base::TimeDelta kOtherFadeInOut =
-    base::TimeDelta::FromMilliseconds(133);
+constexpr base::TimeDelta kOtherFadeInOut = base::Milliseconds(133);
 // The delay before the other highlight starts fading in.
-constexpr base::TimeDelta kOtherFadeInDelay =
-    base::TimeDelta::FromMilliseconds(117);
+constexpr base::TimeDelta kOtherFadeInDelay = base::Milliseconds(117);
 // The animation speed at which the preview area fades out (when you snap a
 // window).
-constexpr base::TimeDelta kPreviewAreaFadeOut =
-    base::TimeDelta::FromMilliseconds(67);
+constexpr base::TimeDelta kPreviewAreaFadeOut = base::Milliseconds(67);
 // The time duration for the indicator label opacity animations.
-constexpr base::TimeDelta kLabelAnimation =
-    base::TimeDelta::FromMilliseconds(83);
+constexpr base::TimeDelta kLabelAnimation = base::Milliseconds(83);
 // The delay before the indicator labels start fading in.
-constexpr base::TimeDelta kLabelAnimationDelay =
-    base::TimeDelta::FromMilliseconds(167);
+constexpr base::TimeDelta kLabelAnimationDelay = base::Milliseconds(167);
 
 // Toast data.
 constexpr char kAppCannotSnapToastId[] = "split_view_app_cannot_snap";
diff --git a/ash/wm/tablet_mode/tablet_mode_controller.cc b/ash/wm/tablet_mode/tablet_mode_controller.cc
index dea74d63..d1b2231a 100644
--- a/ash/wm/tablet_mode/tablet_mode_controller.cc
+++ b/ash/wm/tablet_mode/tablet_mode_controller.cc
@@ -81,8 +81,7 @@
 // to prevent entering tablet mode if an erroneous accelerometer reading makes
 // the lid appear to be fully open when the user is opening the lid from a
 // closed position or is closing the lid from an opened position.
-constexpr base::TimeDelta kUnstableLidAngleDuration =
-    base::TimeDelta::FromSeconds(2);
+constexpr base::TimeDelta kUnstableLidAngleDuration = base::Seconds(2);
 
 // When the device approaches vertical orientation (i.e. portrait orientation)
 // the accelerometers for the base and lid approach the same values (i.e.
@@ -103,13 +102,11 @@
 constexpr float kNoisyMagnitudeDeviation = 1.0f;
 
 // Interval between calls to RecordLidAngle().
-constexpr base::TimeDelta kRecordLidAngleInterval =
-    base::TimeDelta::FromHours(1);
+constexpr base::TimeDelta kRecordLidAngleInterval = base::Hours(1);
 
 // Time that should wait to reset |occlusion_tracker_pauser_| on
 // entering/exiting tablet mode.
-constexpr base::TimeDelta kOcclusionTrackerTimeout =
-    base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kOcclusionTrackerTimeout = base::Seconds(1);
 
 // Histogram names for recording animation smoothness when entering or exiting
 // tablet mode.
@@ -599,10 +596,10 @@
   if (CanEnterTabletMode()) {
     UMA_HISTOGRAM_CUSTOM_COUNTS("Ash.TouchView.TouchViewActiveTotal",
                                 total_tablet_mode_time_.InMinutes(), 1,
-                                base::TimeDelta::FromDays(7).InMinutes(), 50);
+                                base::Days(7).InMinutes(), 50);
     UMA_HISTOGRAM_CUSTOM_COUNTS("Ash.TouchView.TouchViewInactiveTotal",
                                 total_non_tablet_mode_time_.InMinutes(), 1,
-                                base::TimeDelta::FromDays(7).InMinutes(), 50);
+                                base::Days(7).InMinutes(), 50);
     base::TimeDelta total_runtime =
         total_tablet_mode_time_ + total_non_tablet_mode_time_;
     if (total_runtime.InSeconds() > 0) {
diff --git a/ash/wm/tablet_mode/tablet_mode_controller_unittest.cc b/ash/wm/tablet_mode/tablet_mode_controller_unittest.cc
index dfe474ad..dc62d24 100644
--- a/ash/wm/tablet_mode/tablet_mode_controller_unittest.cc
+++ b/ash/wm/tablet_mode/tablet_mode_controller_unittest.cc
@@ -166,7 +166,7 @@
   // Attaches a SimpleTestTickClock to the TabletModeController with a non
   // null value initial value.
   void AttachTickClockForTest() {
-    test_tick_clock_.Advance(base::TimeDelta::FromSeconds(1));
+    test_tick_clock_.Advance(base::Seconds(1));
     test_api_->set_tick_clock(&test_tick_clock_);
   }
 
@@ -233,7 +233,7 @@
   void WaitForSmoothnessMetrics() {
     ignore_result(ui::WaitForNextFrameToBePresented(
         Shell::GetPrimaryRootWindow()->layer()->GetCompositor(),
-        base::TimeDelta::FromMilliseconds(100)));
+        base::Milliseconds(100)));
   }
 
  private:
@@ -455,13 +455,13 @@
   EXPECT_FALSE(IsTabletModeStarted());
 
   // 1 second after entering unstable angle zone.
-  AdvanceTickClock(base::TimeDelta::FromSeconds(1));
+  AdvanceTickClock(base::Seconds(1));
   EXPECT_FALSE(CanUseUnstableLidAngle());
   OpenLidToAngle(355.0f);
   EXPECT_FALSE(IsTabletModeStarted());
 
   // 2 seconds after entering unstable angle zone.
-  AdvanceTickClock(base::TimeDelta::FromSeconds(1));
+  AdvanceTickClock(base::Seconds(1));
   EXPECT_TRUE(CanUseUnstableLidAngle());
   OpenLidToAngle(355.0f);
   EXPECT_TRUE(IsTabletModeStarted());
@@ -483,13 +483,13 @@
   EXPECT_TRUE(IsTabletModeStarted());
 
   // 1 second after entering unstable angle zone.
-  AdvanceTickClock(base::TimeDelta::FromSeconds(1));
+  AdvanceTickClock(base::Seconds(1));
   EXPECT_FALSE(CanUseUnstableLidAngle());
   OpenLidToAngle(5.0f);
   EXPECT_TRUE(IsTabletModeStarted());
 
   // 2 seconds after entering unstable angle zone.
-  AdvanceTickClock(base::TimeDelta::FromSeconds(1));
+  AdvanceTickClock(base::Seconds(1));
   EXPECT_TRUE(CanUseUnstableLidAngle());
   OpenLidToAngle(5.0f);
   EXPECT_TRUE(IsTabletModeStarted());
diff --git a/ash/wm/tablet_mode/tablet_mode_toggle_fullscreen_event_handler_unittest.cc b/ash/wm/tablet_mode/tablet_mode_toggle_fullscreen_event_handler_unittest.cc
index 6817eb4..97f840fb 100644
--- a/ash/wm/tablet_mode/tablet_mode_toggle_fullscreen_event_handler_unittest.cc
+++ b/ash/wm/tablet_mode/tablet_mode_toggle_fullscreen_event_handler_unittest.cc
@@ -52,9 +52,9 @@
   }
 
   void GenerateSwipe(int start_y, int end_y) {
-    GetEventGenerator()->GestureScrollSequence(
-        gfx::Point(400, start_y), gfx::Point(400, end_y),
-        base::TimeDelta::FromMilliseconds(100), 3);
+    GetEventGenerator()->GestureScrollSequence(gfx::Point(400, start_y),
+                                               gfx::Point(400, end_y),
+                                               base::Milliseconds(100), 3);
   }
 
   aura::Window* foreground_window() { return foreground_window_.get(); }
diff --git a/ash/wm/tablet_mode/tablet_mode_window_drag_delegate.cc b/ash/wm/tablet_mode/tablet_mode_window_drag_delegate.cc
index 27b36e4d..c72b49b 100644
--- a/ash/wm/tablet_mode/tablet_mode_window_drag_delegate.cc
+++ b/ash/wm/tablet_mode/tablet_mode_window_drag_delegate.cc
@@ -55,8 +55,7 @@
 // least the duration of the split view divider snap animation, or else issues
 // like crbug.com/946601, crbug.com/997764, and https://crbug.com/997765, which
 // all refer to dragging from overview, will apply to dragging from the top.
-constexpr base::TimeDelta kIsWindowMovedTimeoutMs =
-    base::TimeDelta::FromMilliseconds(300);
+constexpr base::TimeDelta kIsWindowMovedTimeoutMs = base::Milliseconds(300);
 
 constexpr char kSwipeDownDragWindowHistogram[] =
     "Ash.SwipeDownDrag.Window.PresentationTime.TabletMode";
diff --git a/ash/wm/tablet_mode/tablet_mode_window_state.cc b/ash/wm/tablet_mode/tablet_mode_window_state.cc
index efd8d44..ca965b8 100644
--- a/ash/wm/tablet_mode/tablet_mode_window_state.cc
+++ b/ash/wm/tablet_mode/tablet_mode_window_state.cc
@@ -502,9 +502,8 @@
         // Just use the normal bounds animation with ZERO tween with long enough
         // duration for STEP_END. The animation will be stopped when the to
         // window's animation ends.
-        window_state->SetBoundsDirectAnimated(bounds_in_parent,
-                                              base::TimeDelta::FromSeconds(1),
-                                              gfx::Tween::ZERO);
+        window_state->SetBoundsDirectAnimated(
+            bounds_in_parent, base::Seconds(1), gfx::Tween::ZERO);
         return;
       }
       // If we animate (to) tablet mode, we want to use the cross fade to
diff --git a/ash/wm/toplevel_window_event_handler_unittest.cc b/ash/wm/toplevel_window_event_handler_unittest.cc
index 9884de9..7f5e3fc 100644
--- a/ash/wm/toplevel_window_event_handler_unittest.cc
+++ b/ash/wm/toplevel_window_event_handler_unittest.cc
@@ -525,8 +525,7 @@
 
   // Snap right;
   gfx::Point end(790, 0);
-  generator.GestureScrollSequence(location, end,
-                                  base::TimeDelta::FromMilliseconds(5), 10);
+  generator.GestureScrollSequence(location, end, base::Milliseconds(5), 10);
   base::RunLoop().RunUntilIdle();
 
   // Verify that the window has moved after the gesture.
@@ -538,8 +537,7 @@
   // Snap left.
   end = location = target->GetBoundsInRootWindow().CenterPoint();
   end.Offset(-100, 0);
-  generator.GestureScrollSequence(location, end,
-                                  base::TimeDelta::FromMilliseconds(5), 10);
+  generator.GestureScrollSequence(location, end, base::Milliseconds(5), 10);
   base::RunLoop().RunUntilIdle();
 
   EXPECT_NE(old_bounds.ToString(), target->bounds().ToString());
@@ -554,8 +552,7 @@
   // Maximize.
   end = location = target->GetBoundsInRootWindow().CenterPoint();
   end.Offset(0, -100);
-  generator.GestureScrollSequence(location, end,
-                                  base::TimeDelta::FromMilliseconds(5), 10);
+  generator.GestureScrollSequence(location, end, base::Milliseconds(5), 10);
   base::RunLoop().RunUntilIdle();
 
   EXPECT_NE(old_bounds.ToString(), target->bounds().ToString());
@@ -569,8 +566,7 @@
   // Minimize.
   end = location = target->GetBoundsInRootWindow().CenterPoint();
   end.Offset(0, 100);
-  generator.GestureScrollSequence(location, end,
-                                  base::TimeDelta::FromMilliseconds(5), 10);
+  generator.GestureScrollSequence(location, end, base::Milliseconds(5), 10);
   base::RunLoop().RunUntilIdle();
   EXPECT_NE(old_bounds.ToString(), target->bounds().ToString());
   EXPECT_TRUE(window_state->IsMinimized());
@@ -597,8 +593,7 @@
   // create gesture events with location out of the display bounds. Let |end| be
   // out of the primary display's bounds to emulate this situation.
   end.Offset(800, 0);
-  generator.GestureScrollSequence(location, end,
-                                  base::TimeDelta::FromMilliseconds(5), 10);
+  generator.GestureScrollSequence(location, end, base::Milliseconds(5), 10);
 
   // Verify that the window has moved after the gesture.
   EXPECT_NE(old_bounds.ToString(), target->bounds().ToString());
@@ -617,8 +612,7 @@
 
   gfx::Point end = location;
   end.Offset(0, 100);
-  generator.GestureScrollSequence(location, end,
-                                  base::TimeDelta::FromMilliseconds(5), 10);
+  generator.GestureScrollSequence(location, end, base::Milliseconds(5), 10);
   base::RunLoop().RunUntilIdle();
   EXPECT_FALSE(WindowState::Get(target.get())->IsMinimized());
 }
@@ -781,8 +775,7 @@
   gfx::Point location, end;
   end = location = window->GetBoundsInRootWindow().CenterPoint();
   end.Offset(0, 100);
-  generator.GestureScrollSequence(location, end,
-                                  base::TimeDelta::FromMilliseconds(5), 10);
+  generator.GestureScrollSequence(location, end, base::Milliseconds(5), 10);
   base::RunLoop().RunUntilIdle();
   EXPECT_NE(old_bounds.ToString(), window->bounds().ToString());
   EXPECT_TRUE(window_state->IsMinimized());
@@ -875,8 +868,7 @@
 
   // Try to snap right. The window is not resizable. So it should not snap.
   end.Offset(100, 0);
-  generator.GestureScrollSequence(location, end,
-                                  base::TimeDelta::FromMilliseconds(5), 10);
+  generator.GestureScrollSequence(location, end, base::Milliseconds(5), 10);
   base::RunLoop().RunUntilIdle();
 
   // Verify that the window has moved after the gesture.
@@ -892,8 +884,7 @@
   // Try to snap left. It should not snap.
   end = location = target->GetBoundsInRootWindow().CenterPoint();
   end.Offset(-100, 0);
-  generator.GestureScrollSequence(location, end,
-                                  base::TimeDelta::FromMilliseconds(5), 10);
+  generator.GestureScrollSequence(location, end, base::Milliseconds(5), 10);
   base::RunLoop().RunUntilIdle();
 
   // Verify that the window has moved after the gesture.
@@ -928,8 +919,7 @@
     ui::test::EventGenerator gen(Shell::GetPrimaryRootWindow(), notmoved.get());
     gfx::Point start = notmoved->bounds().origin() + gfx::Vector2d(10, 10);
     gfx::Point end = start + gfx::Vector2d(100, 10);
-    gen.GestureScrollSequence(start, end, base::TimeDelta::FromMilliseconds(10),
-                              10);
+    gen.GestureScrollSequence(start, end, base::Milliseconds(10), 10);
     EXPECT_EQ(bounds.ToString(), notmoved->bounds().ToString());
   }
 }
diff --git a/ash/wm/video_detector.cc b/ash/wm/video_detector.cc
index 5654082..16f6ce68 100644
--- a/ash/wm/video_detector.cc
+++ b/ash/wm/video_detector.cc
@@ -21,8 +21,7 @@
 namespace {
 
 // How long to wait before attempting to re-establish a lost connection.
-constexpr base::TimeDelta kReEstablishConnectionDelay =
-    base::TimeDelta::FromMilliseconds(100);
+constexpr base::TimeDelta kReEstablishConnectionDelay = base::Milliseconds(100);
 
 }  // namespace
 
diff --git a/ash/wm/window_animations.cc b/ash/wm/window_animations.cc
index 721de88..96bbb75 100644
--- a/ash/wm/window_animations.cc
+++ b/ash/wm/window_animations.cc
@@ -49,11 +49,9 @@
 const int kLayerAnimationsForMinimizeDurationMS = 200;
 
 // Amount of time for the cross fade animation.
-constexpr base::TimeDelta kCrossFadeDuration =
-    base::TimeDelta::FromMilliseconds(200);
+constexpr base::TimeDelta kCrossFadeDuration = base::Milliseconds(200);
 
-constexpr base::TimeDelta kCrossFadeMaxDuration =
-    base::TimeDelta::FromMilliseconds(400);
+constexpr base::TimeDelta kCrossFadeMaxDuration = base::Milliseconds(400);
 
 // Durations for the brightness/grayscale fade animation, in milliseconds.
 const int kBrightnessGrayscaleFadeDurationMs = 1000;
@@ -69,8 +67,7 @@
 const float kWindowAnimation_ShowOpacity = 1.f;
 
 // Duration for gfx::Tween::ZERO animation of showing window.
-constexpr base::TimeDelta kZeroAnimationMs =
-    base::TimeDelta::FromMilliseconds(300);
+constexpr base::TimeDelta kZeroAnimationMs = base::Milliseconds(300);
 
 constexpr char kCrossFadeSmoothness[] =
     "Ash.Window.AnimationSmoothness.CrossFade";
@@ -449,7 +446,7 @@
   window->layer()->SetOpacity(kWindowAnimation_HideOpacity);
   ui::ScopedLayerAnimationSettings settings(window->layer()->GetAnimator());
   base::TimeDelta duration =
-      base::TimeDelta::FromMilliseconds(kLayerAnimationsForMinimizeDurationMS);
+      base::Milliseconds(kLayerAnimationsForMinimizeDurationMS);
   settings.SetTransitionDuration(duration);
   AddLayerAnimationsForMinimize(window, true);
 
@@ -463,7 +460,7 @@
   // Property sets within this scope will be implicitly animated.
   ::wm::ScopedHidingAnimationSettings hiding_settings(window);
   base::TimeDelta duration =
-      base::TimeDelta::FromMilliseconds(kLayerAnimationsForMinimizeDurationMS);
+      base::Milliseconds(kLayerAnimationsForMinimizeDurationMS);
   hiding_settings.layer_animation_settings()->SetTransitionDuration(duration);
   window->layer()->SetVisible(false);
 
@@ -489,7 +486,7 @@
   }
 
   base::TimeDelta duration =
-      base::TimeDelta::FromMilliseconds(kBrightnessGrayscaleFadeDurationMs);
+      base::Milliseconds(kBrightnessGrayscaleFadeDurationMs);
 
   if (show) {
     ui::ScopedLayerAnimationSettings settings(window->layer()->GetAnimator());
@@ -512,8 +509,7 @@
 void AnimateShowWindow_FadeIn(aura::Window* window) {
   window->layer()->SetOpacity(kWindowAnimation_HideOpacity);
   ui::ScopedLayerAnimationSettings settings(window->layer()->GetAnimator());
-  settings.SetTransitionDuration(
-      base::TimeDelta::FromMilliseconds(kFadeInAnimationMs));
+  settings.SetTransitionDuration(base::Milliseconds(kFadeInAnimationMs));
   window->layer()->SetVisible(true);
   window->layer()->SetOpacity(kWindowAnimation_ShowOpacity);
 }
@@ -524,7 +520,7 @@
 
 void AnimateHideWindow_SlideOut(aura::Window* window) {
   base::TimeDelta duration =
-      base::TimeDelta::FromMilliseconds(PipPositioner::kPipDismissTimeMs);
+      base::Milliseconds(PipPositioner::kPipDismissTimeMs);
 
   ::wm::ScopedHidingAnimationSettings settings(window);
   settings.layer_animation_settings()->SetTransitionDuration(duration);
diff --git a/ash/wm/window_animations_unittest.cc b/ash/wm/window_animations_unittest.cc
index b888a18..686337c7 100644
--- a/ash/wm/window_animations_unittest.cc
+++ b/ash/wm/window_animations_unittest.cc
@@ -103,7 +103,7 @@
 
   // Stays shown.
   window->layer()->GetAnimator()->Step(base::TimeTicks::Now() +
-                                       base::TimeDelta::FromSeconds(5));
+                                       base::Seconds(5));
   EXPECT_EQ(0.0f, window->layer()->GetTargetBrightness());
   EXPECT_EQ(0.0f, window->layer()->GetTargetGrayscale());
   EXPECT_TRUE(window->layer()->visible());
@@ -149,10 +149,9 @@
   EXPECT_EQ(gfx::Transform(), window->layer()->GetTargetTransform());
 
   // Run the animations to completion.
-  old_layer->GetAnimator()->Step(base::TimeTicks::Now() +
-                                 base::TimeDelta::FromSeconds(1));
+  old_layer->GetAnimator()->Step(base::TimeTicks::Now() + base::Seconds(1));
   window->layer()->GetAnimator()->Step(base::TimeTicks::Now() +
-                                       base::TimeDelta::FromSeconds(1));
+                                       base::Seconds(1));
 
   // Cross fade to a smaller size, as in a restore animation.
   old_layer = window->layer();
@@ -171,10 +170,9 @@
   EXPECT_EQ(1.0f, window->layer()->GetTargetOpacity());
   EXPECT_EQ(gfx::Transform(), window->layer()->GetTargetTransform());
 
-  old_layer->GetAnimator()->Step(base::TimeTicks::Now() +
-                                 base::TimeDelta::FromSeconds(1));
+  old_layer->GetAnimator()->Step(base::TimeTicks::Now() + base::Seconds(1));
   window->layer()->GetAnimator()->Step(base::TimeTicks::Now() +
-                                       base::TimeDelta::FromSeconds(1));
+                                       base::Seconds(1));
 }
 
 // Tests that when crossfading from a window which has a transform, the cross
@@ -242,11 +240,11 @@
   // locked.
   {
     ui::ScopedLayerAnimationSettings settings1(layer->GetAnimator());
-    settings1.SetTransitionDuration(base::TimeDelta::FromMilliseconds(1000));
+    settings1.SetTransitionDuration(base::Milliseconds(1000));
     {
       ui::ScopedLayerAnimationSettings settings2(layer->GetAnimator());
       // Duration is not locked so it gets overridden.
-      settings2.SetTransitionDuration(base::TimeDelta::FromMilliseconds(50));
+      settings2.SetTransitionDuration(base::Milliseconds(50));
       WindowState::Get(window.get())->Minimize();
       EXPECT_TRUE(layer->GetAnimator()->is_animating());
       // Expect duration from the inner scope
@@ -262,13 +260,13 @@
     // Update layer as minimizing will replace the window's layer.
     layer = window->layer();
     ui::ScopedLayerAnimationSettings settings1(layer->GetAnimator());
-    settings1.SetTransitionDuration(base::TimeDelta::FromMilliseconds(1000));
+    settings1.SetTransitionDuration(base::Milliseconds(1000));
     // Duration is locked in outer scope.
     settings1.LockTransitionDuration();
     {
       ui::ScopedLayerAnimationSettings settings2(layer->GetAnimator());
       // Transition duration setting is ignored.
-      settings2.SetTransitionDuration(base::TimeDelta::FromMilliseconds(50));
+      settings2.SetTransitionDuration(base::Milliseconds(50));
       WindowState::Get(window.get())->Minimize();
       EXPECT_TRUE(layer->GetAnimator()->is_animating());
       // Expect duration from the outer scope
@@ -294,7 +292,7 @@
     ui::ScopedLayerAnimationSettings settings(layer->GetAnimator());
     settings.LockTransitionDuration();
     // Setting transition duration is ignored since duration is locked
-    settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(1000));
+    settings.SetTransitionDuration(base::Milliseconds(1000));
     WindowState::Get(window.get())->Minimize();
     EXPECT_TRUE(layer->GetAnimator()->is_animating());
     // Expect default duration (200ms for stock ash minimizing animation).
@@ -457,7 +455,7 @@
 
   const gfx::Rect target_bounds(40, 40, 400, 400);
   CrossFadeAnimationAnimateNewLayerOnly(window.get(), target_bounds,
-                                        base::TimeDelta::FromMilliseconds(200),
+                                        base::Milliseconds(200),
                                         gfx::Tween::LINEAR, "dummy");
 
   // Window's layer has been replaced.
@@ -474,13 +472,13 @@
 
   // Start the animations, then set the bounds of the new window during the
   // animation.
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(10));
+  task_environment()->FastForwardBy(base::Milliseconds(10));
 
   // Set the bounds halfway through the animation. The bounds of the old layer
   // remain the same, but the transform has updated to match the bounds of the
   // new layer.
   window->SetBounds(gfx::Rect(80, 80, 200, 200));
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(50));
+  task_environment()->FastForwardBy(base::Milliseconds(50));
   EXPECT_EQ(gfx::Rect(10, 10, 200, 200), old_layer->bounds());
   EXPECT_NE(gfx::Transform(), old_layer->GetTargetTransform());
 
@@ -488,7 +486,7 @@
   EXPECT_EQ(1.0f, window->layer()->GetTargetOpacity());
   EXPECT_EQ(gfx::Transform(), window->layer()->GetTargetTransform());
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(window->layer()->GetAnimator()->is_animating());
 }
 
diff --git a/ash/wm/window_cycle/window_cycle_controller_unittest.cc b/ash/wm/window_cycle/window_cycle_controller_unittest.cc
index e95f2643..a565eb5 100644
--- a/ash/wm/window_cycle/window_cycle_controller_unittest.cc
+++ b/ash/wm/window_cycle/window_cycle_controller_unittest.cc
@@ -214,8 +214,7 @@
 
     shelf_view_test_ = std::make_unique<ShelfViewTestAPI>(
         GetPrimaryShelf()->GetShelfViewForTesting());
-    shelf_view_test_->SetAnimationDuration(
-        base::TimeDelta::FromMilliseconds(1));
+    shelf_view_test_->SetAnimationDuration(base::Milliseconds(1));
   }
 
   const aura::Window::Windows GetWindows(WindowCycleController* controller) {
@@ -266,8 +265,8 @@
 
   void Scroll(float x_offset, float y_offset, int fingers) {
     GetEventGenerator()->ScrollSequence(
-        gfx::Point(), base::TimeDelta::FromMilliseconds(5),
-        GetOffsetX(x_offset), GetOffsetY(y_offset), /*steps=*/100, fingers);
+        gfx::Point(), base::Milliseconds(5), GetOffsetX(x_offset),
+        GetOffsetY(y_offset), /*steps=*/100, fingers);
   }
 
   void MouseWheelScroll(int delta_x, int delta_y, int num_of_times) {
@@ -1565,7 +1564,7 @@
   auto drag_origin = preview_items[0]->GetBoundsInScreen().CenterPoint();
   auto drag_dest = preview_items[1]->GetBoundsInScreen().CenterPoint();
   event_generator->GestureScrollSequence(drag_origin, drag_dest,
-                                         base::TimeDelta::FromSeconds(1), 10);
+                                         base::Seconds(1), 10);
   EXPECT_EQ(drag_origin, preview_items[0]->GetBoundsInScreen().CenterPoint());
   EXPECT_EQ(window2.get(), GetTargetWindow());
 
@@ -1574,7 +1573,7 @@
   drag_origin = preview_items[1]->GetBoundsInScreen().CenterPoint();
   drag_dest = preview_items[0]->GetBoundsInScreen().CenterPoint();
   event_generator->GestureScrollSequence(drag_origin, drag_dest,
-                                         base::TimeDelta::FromSeconds(1), 10);
+                                         base::Seconds(1), 10);
   EXPECT_TRUE(base::IsApproximatelyEqual(
       drag_dest.x(), preview_items[1]->GetBoundsInScreen().CenterPoint().x(),
       10));
@@ -1595,7 +1594,7 @@
   drag_origin = preview_items[3]->GetBoundsInScreen().CenterPoint();
   drag_dest = preview_items[1]->GetBoundsInScreen().CenterPoint();
   event_generator->GestureScrollSequence(drag_origin, drag_dest,
-                                         base::TimeDelta::FromSeconds(1), 10);
+                                         base::Seconds(1), 10);
   EXPECT_EQ(cycle_view_bounds.right(),
             preview_items[4]->GetBoundsInScreen().right() +
                 WindowCycleView::kInsideBorderHorizontalPaddingDp);
@@ -1607,7 +1606,7 @@
   drag_dest = preview_items[4]->GetBoundsInScreen().CenterPoint();
   drag_dest.set_y(cycle_view_bounds.bottom() + 100);
   event_generator->GestureScrollSequence(drag_origin, drag_dest,
-                                         base::TimeDelta::FromSeconds(1), 10);
+                                         base::Seconds(1), 10);
   EXPECT_TRUE(base::IsApproximatelyEqual(
       drag_dest.x(), preview_items[3]->GetBoundsInScreen().CenterPoint().x(),
       10));
@@ -1635,8 +1634,8 @@
   auto preview_items = GetWindowCycleItemViews();
   auto drag_origin = preview_items[0]->GetBoundsInScreen().CenterPoint();
   auto drag_dest = drag_origin + gfx::Vector2d(0, 200);
-  event_generator->GestureScrollSequence(
-      drag_origin, drag_dest, base::TimeDelta::FromMilliseconds(10), 10);
+  event_generator->GestureScrollSequence(drag_origin, drag_dest,
+                                         base::Milliseconds(10), 10);
   EXPECT_EQ(drag_origin, preview_items[0]->GetBoundsInScreen().CenterPoint());
   EXPECT_EQ(window2.get(), GetTargetWindow());
 }
@@ -3014,8 +3013,7 @@
     WindowCycleList::DisableInitialDelayForTesting();
     shelf_view_test_ = std::make_unique<ShelfViewTestAPI>(
         GetPrimaryShelf()->GetShelfViewForTesting());
-    shelf_view_test_->SetAnimationDuration(
-        base::TimeDelta::FromMilliseconds(1));
+    shelf_view_test_->SetAnimationDuration(base::Milliseconds(1));
 
     generator_ = GetEventGenerator();
 
diff --git a/ash/wm/window_cycle/window_cycle_event_filter.cc b/ash/wm/window_cycle/window_cycle_event_filter.cc
index 5b9f180c..49d17c7 100644
--- a/ash/wm/window_cycle/window_cycle_event_filter.cc
+++ b/ash/wm/window_cycle/window_cycle_event_filter.cc
@@ -141,7 +141,7 @@
     repeat_timer_.Stop();
   } else if (ShouldRepeatKey(event)) {
     repeat_timer_.Start(
-        FROM_HERE, base::TimeDelta::FromMilliseconds(180),
+        FROM_HERE, base::Milliseconds(180),
         base::BindRepeating(
             &WindowCycleController::HandleCycleWindow,
             base::Unretained(Shell::Get()->window_cycle_controller()),
diff --git a/ash/wm/window_cycle/window_cycle_list.cc b/ash/wm/window_cycle/window_cycle_list.cc
index 81c6741c..0c946da 100644
--- a/ash/wm/window_cycle/window_cycle_list.cc
+++ b/ash/wm/window_cycle/window_cycle_list.cc
@@ -40,9 +40,7 @@
 
 // Delay before the UI fade in animation starts. This is so users can switch
 // quickly between windows without bringing up the UI.
-constexpr base::TimeDelta kShowDelayDuration =
-    base::TimeDelta::FromMilliseconds(150);
-
+constexpr base::TimeDelta kShowDelayDuration = base::Milliseconds(150);
 
 // The alt-tab cycler widget is not activatable (except when ChromeVox is on),
 // so we use WindowTargeter to send input events to the widget.
diff --git a/ash/wm/window_cycle/window_cycle_tab_slider.cc b/ash/wm/window_cycle/window_cycle_tab_slider.cc
index 39810e3..5c304862 100644
--- a/ash/wm/window_cycle/window_cycle_tab_slider.cc
+++ b/ash/wm/window_cycle/window_cycle_tab_slider.cc
@@ -31,7 +31,7 @@
 // Animation
 // The animation duration for the translation of |active_button_selector_| on
 // mode change.
-constexpr auto kToggleSlideDuration = base::TimeDelta::FromMilliseconds(150);
+constexpr auto kToggleSlideDuration = base::Milliseconds(150);
 
 // The insets of the focus ring of the tab slider button.
 constexpr int kTabSliderButtonFocusInsets = 4;
diff --git a/ash/wm/window_cycle/window_cycle_view.cc b/ash/wm/window_cycle/window_cycle_view.cc
index cd7d163..f659672 100644
--- a/ash/wm/window_cycle/window_cycle_view.cc
+++ b/ash/wm/window_cycle/window_cycle_view.cc
@@ -74,17 +74,14 @@
     "Ash.WindowCycleView.AnimationSmoothness.Container";
 
 // Duration of the window cycle UI fade in animation.
-constexpr base::TimeDelta kFadeInDuration =
-    base::TimeDelta::FromMilliseconds(100);
+constexpr base::TimeDelta kFadeInDuration = base::Milliseconds(100);
 
 // Duration of the window cycle elements slide animation.
-constexpr base::TimeDelta kContainerSlideDuration =
-    base::TimeDelta::FromMilliseconds(120);
+constexpr base::TimeDelta kContainerSlideDuration = base::Milliseconds(120);
 
 // Duration of the window cycle scale animation when a user toggles alt-tab
 // modes.
-constexpr base::TimeDelta kToggleModeScaleDuration =
-    base::TimeDelta::FromMilliseconds(150);
+constexpr base::TimeDelta kToggleModeScaleDuration = base::Milliseconds(150);
 
 }  // namespace
 
diff --git a/ash/wm/window_dimmer.cc b/ash/wm/window_dimmer.cc
index 261602e5..7f7fb57f 100644
--- a/ash/wm/window_dimmer.cc
+++ b/ash/wm/window_dimmer.cc
@@ -34,8 +34,7 @@
     ::wm::SetWindowVisibilityAnimationType(
         window_, ::wm::WINDOW_VISIBILITY_ANIMATION_TYPE_FADE);
     ::wm::SetWindowVisibilityAnimationDuration(
-        window_,
-        base::TimeDelta::FromMilliseconds(kDefaultDimAnimationDurationMs));
+        window_, base::Milliseconds(kDefaultDimAnimationDurationMs));
   }
   window_->AddObserver(this);
 
diff --git a/ash/wm/window_positioner.cc b/ash/wm/window_positioner.cc
index 1a1a7941..1b12c108 100644
--- a/ash/wm/window_positioner.cc
+++ b/ash/wm/window_positioner.cc
@@ -104,8 +104,7 @@
   }
 
   ui::ScopedLayerAnimationSettings settings(window->layer()->GetAnimator());
-  settings.SetTransitionDuration(
-      base::TimeDelta::FromMilliseconds(kWindowAutoMoveDurationMS));
+  settings.SetTransitionDuration(base::Milliseconds(kWindowAutoMoveDurationMS));
   window->SetBounds(bounds);
 }
 
diff --git a/ash/wm/window_restore/window_restore_controller.cc b/ash/wm/window_restore/window_restore_controller.cc
index 0306a4c..4a585f4 100644
--- a/ash/wm/window_restore/window_restore_controller.cc
+++ b/ash/wm/window_restore/window_restore_controller.cc
@@ -72,8 +72,7 @@
 // Delay for certain app types before activation is allowed. This is because
 // some apps' client request activation after creation, which can break user
 // flow.
-constexpr base::TimeDelta kAllowActivationDelay =
-    base::TimeDelta::FromSeconds(2);
+constexpr base::TimeDelta kAllowActivationDelay = base::Seconds(2);
 
 app_restore::WindowInfo* GetWindowInfo(aura::Window* window) {
   return window->GetProperty(app_restore::kWindowInfoKey);
diff --git a/ash/wm/window_state.cc b/ash/wm/window_state.cc
index 4276247..a756a1b 100644
--- a/ash/wm/window_state.cc
+++ b/ash/wm/window_state.cc
@@ -195,8 +195,7 @@
 
 void ReportAshPipAndroidPipUseTime(base::TimeDelta duration) {
   UMA_HISTOGRAM_CUSTOM_TIMES(kAshPipAndroidPipUseTimeHistogramName, duration,
-                             base::TimeDelta::FromSeconds(1),
-                             base::TimeDelta::FromHours(10), 50);
+                             base::Seconds(1), base::Hours(10), 50);
 }
 
 // Notifies the window restore controller to write to file.
diff --git a/ash/wm/window_state.h b/ash/wm/window_state.h
index b67df078..fc326c7 100644
--- a/ash/wm/window_state.h
+++ b/ash/wm/window_state.h
@@ -54,7 +54,7 @@
  public:
   // The default duration for an animation between two sets of bounds.
   static constexpr base::TimeDelta kBoundsChangeSlideDuration =
-      base::TimeDelta::FromMilliseconds(120);
+      base::Milliseconds(120);
 
   // A subclass of State class represents one of the window's states
   // that corresponds to chromeos::WindowStateType in Ash environment, e.g.
diff --git a/ash/wm/window_state_unittest.cc b/ash/wm/window_state_unittest.cc
index 8284c39..476a983 100644
--- a/ash/wm/window_state_unittest.cc
+++ b/ash/wm/window_state_unittest.cc
@@ -429,7 +429,7 @@
   // Wait for the snapped animation to complete and test that the window bound
   // is primary-snapped and the snap width ratio is updated.
   window->layer()->GetAnimator()->Step(base::TimeTicks::Now() +
-                                       base::TimeDelta::FromSeconds(1));
+                                       base::Seconds(1));
   EXPECT_EQ(expected, window->GetBoundsInScreen());
   EXPECT_EQ(0.5f, *window_state->snap_ratio());
 
diff --git a/ash/wm/workspace/multi_window_resize_controller.cc b/ash/wm/workspace/multi_window_resize_controller.cc
index 71f243bf..cc1a9e7c 100644
--- a/ash/wm/workspace/multi_window_resize_controller.cc
+++ b/ash/wm/workspace/multi_window_resize_controller.cc
@@ -260,8 +260,7 @@
   StartObserving(windows_.window2);
   show_location_in_parent_ =
       ConvertPointToTarget(window, window->parent(), point_in_window);
-  show_timer_.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(kShowDelayMS),
-                    this,
+  show_timer_.Start(FROM_HERE, base::Milliseconds(kShowDelayMS), this,
                     &MultiWindowResizeController::ShowIfValidMouseLocation);
 }
 
@@ -326,8 +325,7 @@
 void MultiWindowResizeController::CreateMouseWatcher() {
   mouse_watcher_ = std::make_unique<views::MouseWatcher>(
       std::make_unique<ResizeMouseWatcherHost>(this), this);
-  mouse_watcher_->set_notify_on_exit_time(
-      base::TimeDelta::FromMilliseconds(kHideDelayMS));
+  mouse_watcher_->set_notify_on_exit_time(base::Milliseconds(kHideDelayMS));
   DCHECK(resize_widget_);
   mouse_watcher_->Start(resize_widget_->GetNativeWindow());
 }
diff --git a/ash/wm/workspace/phantom_window_controller.cc b/ash/wm/workspace/phantom_window_controller.cc
index f290248..473f831 100644
--- a/ash/wm/workspace/phantom_window_controller.cc
+++ b/ash/wm/workspace/phantom_window_controller.cc
@@ -60,13 +60,13 @@
 
 // The duration of the maximize cue entrance animation.
 constexpr base::TimeDelta kMaximizeCueEntranceAnimationDurationMs =
-    base::TimeDelta::FromMilliseconds(200);
+    base::Milliseconds(200);
 // The duration of the maximize cue exit animation.
 constexpr base::TimeDelta kMaximizeCueExitAnimationDurationMs =
-    base::TimeDelta::FromMilliseconds(100);
+    base::Milliseconds(100);
 // The delay of the maximize cue entrance and exit animation.
 constexpr base::TimeDelta kMaximizeCueAnimationDelayMs =
-    base::TimeDelta::FromMilliseconds(100);
+    base::Milliseconds(100);
 
 }  // namespace
 
@@ -194,8 +194,7 @@
   // Fade the window in.
   widget_layer->SetOpacity(0);
   ui::ScopedLayerAnimationSettings scoped_setter(widget_layer->GetAnimator());
-  scoped_setter.SetTransitionDuration(
-      base::TimeDelta::FromMilliseconds(kAnimationDurationMs));
+  scoped_setter.SetTransitionDuration(base::Milliseconds(kAnimationDurationMs));
   scoped_setter.SetTweenType(gfx::Tween::EASE_IN);
   scoped_setter.SetPreemptionStrategy(
       ui::LayerAnimator::IMMEDIATELY_ANIMATE_TO_NEW_TARGET);
diff --git a/ash/wm/workspace/workspace_window_resizer.cc b/ash/wm/workspace/workspace_window_resizer.cc
index 556dfe1e..5bc24fe 100644
--- a/ash/wm/workspace/workspace_window_resizer.cc
+++ b/ash/wm/workspace/workspace_window_resizer.cc
@@ -114,8 +114,7 @@
 
 // Duration of the cross fade animation used when dragging to unmaximize or
 // dragging to snap maximize.
-constexpr base::TimeDelta kCrossFadeDuration =
-    base::TimeDelta::FromMilliseconds(120);
+constexpr base::TimeDelta kCrossFadeDuration = base::Milliseconds(120);
 
 // The amount of pixels that needs to be moved during a top screen drag to reset
 // dwell time.
@@ -123,12 +122,11 @@
 
 // Dwell time before snap to maximize. The countdown starts when window dragged
 // into snap region.
-constexpr base::TimeDelta kDwellTime = base::TimeDelta::FromMilliseconds(400);
+constexpr base::TimeDelta kDwellTime = base::Milliseconds(400);
 
 // Dwell time before turning snap top to snap to maximize. The countdown starts
 // when window dragged into snap region.
-constexpr base::TimeDelta kDwellLongTime =
-    base::TimeDelta::FromMilliseconds(1000);
+constexpr base::TimeDelta kDwellLongTime = base::Milliseconds(1000);
 
 // The min amount of vertical movement needed for to trigger a snap to
 // maximize.
diff --git a/ash/wm/workspace/workspace_window_resizer_unittest.cc b/ash/wm/workspace/workspace_window_resizer_unittest.cc
index 4e61b49..9cd02ae 100644
--- a/ash/wm/workspace/workspace_window_resizer_unittest.cc
+++ b/ash/wm/workspace/workspace_window_resizer_unittest.cc
@@ -1702,19 +1702,19 @@
   // the touch point.
   generator.GestureScrollSequence(gfx::Point(715, kRootHeight / 2),
                                   gfx::Point(725, kRootHeight / 2),
-                                  base::TimeDelta::FromMilliseconds(10), 5);
+                                  base::Milliseconds(10), 5);
   EXPECT_EQ(gfx::Rect(100, 100, 625, kRootHeight - 200),
             touch_resize_window_->bounds());
   // Drag more, but stop before being snapped to the edge.
   generator.GestureScrollSequence(gfx::Point(725, kRootHeight / 2),
                                   gfx::Point(760, kRootHeight / 2),
-                                  base::TimeDelta::FromMilliseconds(10), 5);
+                                  base::Milliseconds(10), 5);
   EXPECT_EQ(gfx::Rect(100, 100, 660, kRootHeight - 200),
             touch_resize_window_->bounds());
   // Drag even more to snap to the edge.
   generator.GestureScrollSequence(gfx::Point(760, kRootHeight / 2),
                                   gfx::Point(775, kRootHeight / 2),
-                                  base::TimeDelta::FromMilliseconds(10), 5);
+                                  base::Milliseconds(10), 5);
   EXPECT_EQ(gfx::Rect(100, 100, 700, kRootHeight - 200),
             touch_resize_window_->bounds());
 }
@@ -1733,19 +1733,19 @@
   // the touch point.
   generator.GestureScrollSequence(gfx::Point(85, kRootHeight / 2),
                                   gfx::Point(75, kRootHeight / 2),
-                                  base::TimeDelta::FromMilliseconds(10), 5);
+                                  base::Milliseconds(10), 5);
   EXPECT_EQ(gfx::Rect(75, 100, 625, kRootHeight - 200),
             touch_resize_window_->bounds());
   // Drag more, but stop before being snapped to the edge.
   generator.GestureScrollSequence(gfx::Point(75, kRootHeight / 2),
                                   gfx::Point(40, kRootHeight / 2),
-                                  base::TimeDelta::FromMilliseconds(10), 5);
+                                  base::Milliseconds(10), 5);
   EXPECT_EQ(gfx::Rect(40, 100, 660, kRootHeight - 200),
             touch_resize_window_->bounds());
   // Drag even more to snap to the edge.
   generator.GestureScrollSequence(gfx::Point(40, kRootHeight / 2),
                                   gfx::Point(25, kRootHeight / 2),
-                                  base::TimeDelta::FromMilliseconds(10), 5);
+                                  base::Milliseconds(10), 5);
   EXPECT_EQ(gfx::Rect(0, 100, 700, kRootHeight - 200),
             touch_resize_window_->bounds());
 }
@@ -1763,17 +1763,17 @@
   // Drag out of the top border a bit and check if the border is aligned with
   // the touch point.
   generator.GestureScrollSequence(gfx::Point(400, 85), gfx::Point(400, 75),
-                                  base::TimeDelta::FromMilliseconds(10), 5);
+                                  base::Milliseconds(10), 5);
   EXPECT_EQ(gfx::Rect(100, 75, 600, kRootHeight - 175),
             touch_resize_window_->bounds());
   // Drag more, but stop before being snapped to the edge.
   generator.GestureScrollSequence(gfx::Point(400, 75), gfx::Point(400, 40),
-                                  base::TimeDelta::FromMilliseconds(10), 5);
+                                  base::Milliseconds(10), 5);
   EXPECT_EQ(gfx::Rect(100, 40, 600, kRootHeight - 140),
             touch_resize_window_->bounds());
   // Drag even more to snap to the edge.
   generator.GestureScrollSequence(gfx::Point(400, 40), gfx::Point(400, 25),
-                                  base::TimeDelta::FromMilliseconds(10), 5);
+                                  base::Milliseconds(10), 5);
   EXPECT_EQ(gfx::Rect(100, 0, 600, kRootHeight - 100),
             touch_resize_window_->bounds());
 }
@@ -1792,19 +1792,19 @@
   // the touch point.
   generator.GestureScrollSequence(gfx::Point(400, kRootHeight - 85),
                                   gfx::Point(400, kRootHeight - 75),
-                                  base::TimeDelta::FromMilliseconds(10), 5);
+                                  base::Milliseconds(10), 5);
   EXPECT_EQ(gfx::Rect(100, 100, 600, kRootHeight - 175),
             touch_resize_window_->bounds());
   // Drag more, but stop before being snapped to the edge.
   generator.GestureScrollSequence(gfx::Point(400, kRootHeight - 75),
                                   gfx::Point(400, kRootHeight - 40),
-                                  base::TimeDelta::FromMilliseconds(10), 5);
+                                  base::Milliseconds(10), 5);
   EXPECT_EQ(gfx::Rect(100, 100, 600, kRootHeight - 140),
             touch_resize_window_->bounds());
   // Drag even more to snap to the edge.
   generator.GestureScrollSequence(gfx::Point(400, kRootHeight - 40),
                                   gfx::Point(400, kRootHeight - 25),
-                                  base::TimeDelta::FromMilliseconds(10), 5);
+                                  base::Milliseconds(10), 5);
   EXPECT_EQ(gfx::Rect(100, 100, 600, kRootHeight - 100),
             touch_resize_window_->bounds());
 }
@@ -1828,8 +1828,8 @@
 
   // Flush pending draws until there is no frame presented for 100ms (6 frames
   // worth time) and check that histogram is not updated.
-  while (ui::WaitForNextFrameToBePresented(
-      window_->GetHost()->compositor(), base::TimeDelta::FromMilliseconds(100)))
+  while (ui::WaitForNextFrameToBePresented(window_->GetHost()->compositor(),
+                                           base::Milliseconds(100)))
     ;
   histograms.ExpectTotalCount("Ash.InteractiveWindowResize.TimeToPresent", 1);
 }
@@ -2032,7 +2032,7 @@
   ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow(),
                                      touch_resize_window_.get());
   generator.GestureScrollSequence(gfx::Point(400, 10), gfx::Point(400, 210),
-                                  base::TimeDelta::FromMilliseconds(10), 10);
+                                  base::Milliseconds(10), 10);
   ASSERT_TRUE(window_state->IsMinimized());
 
   // After unminimzing, the window bounds are the size they were before
@@ -2047,7 +2047,7 @@
   ASSERT_TRUE(window_state->IsSnapped());
 
   generator.GestureScrollSequence(gfx::Point(10, 10), gfx::Point(10, 210),
-                                  base::TimeDelta::FromMilliseconds(10), 10);
+                                  base::Milliseconds(10), 10);
   ASSERT_TRUE(window_state->IsMinimized());
 
   // After unminimzing, the window bounds are the size they were before
@@ -2090,7 +2090,7 @@
   ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow(),
                                      touch_resize_window_.get());
   generator.GestureScrollSequence(gfx::Point(250, 110), gfx::Point(250, 10),
-                                  base::TimeDelta::FromMilliseconds(10), 10);
+                                  base::Milliseconds(10), 10);
   ASSERT_TRUE(window_state->IsMaximized());
 
   // No crash, no DCHECK, and the window stays in the primary display.
diff --git a/ash/wm/workspace_controller.cc b/ash/wm/workspace_controller.cc
index 9c74dc3..698ede2 100644
--- a/ash/wm/workspace_controller.cc
+++ b/ash/wm/workspace_controller.cc
@@ -112,14 +112,14 @@
 
     settings.SetPreemptionStrategy(ui::LayerAnimator::ENQUEUE_NEW_ANIMATION);
     layer->GetAnimator()->SchedulePauseForProperties(
-        base::TimeDelta::FromMilliseconds(kInitialPauseTimeMS),
+        base::Milliseconds(kInitialPauseTimeMS),
         ui::LayerAnimationElement::TRANSFORM |
             ui::LayerAnimationElement::OPACITY |
             ui::LayerAnimationElement::BRIGHTNESS |
             ui::LayerAnimationElement::VISIBILITY);
     settings.SetTweenType(gfx::Tween::EASE_OUT);
     settings.SetTransitionDuration(
-        base::TimeDelta::FromMilliseconds(kInitialAnimationDurationMS));
+        base::Milliseconds(kInitialAnimationDurationMS));
     layer->SetTransform(gfx::Transform());
     layer->SetOpacity(1.0f);
   }
diff --git a/base/allocator/allocator_interception_mac.mm b/base/allocator/allocator_interception_mac.mm
index bd6a61a..9870c844 100644
--- a/base/allocator/allocator_interception_mac.mm
+++ b/base/allocator/allocator_interception_mac.mm
@@ -547,8 +547,8 @@
 }  // namespace
 
 void PeriodicallyShimNewMallocZones() {
-  base::Time end_time = base::Time::Now() + base::TimeDelta::FromMinutes(1);
-  base::TimeDelta initial_delay = base::TimeDelta::FromSeconds(1);
+  base::Time end_time = base::Time::Now() + base::Minutes(1);
+  base::TimeDelta initial_delay = base::Seconds(1);
   ShimNewMallocZonesAndReschedule(end_time, initial_delay);
 }
 
diff --git a/base/allocator/partition_allocator/partition_alloc_perftest.cc b/base/allocator/partition_allocator/partition_alloc_perftest.cc
index 771f663..4a50ad2 100644
--- a/base/allocator/partition_allocator/partition_alloc_perftest.cc
+++ b/base/allocator/partition_allocator/partition_alloc_perftest.cc
@@ -33,7 +33,7 @@
 
 // Change kTimeLimit to something higher if you need more time to capture a
 // trace.
-constexpr base::TimeDelta kTimeLimit = base::TimeDelta::FromSeconds(2);
+constexpr base::TimeDelta kTimeLimit = base::Seconds(2);
 constexpr int kWarmupRuns = 10000;
 constexpr int kTimeCheckInterval = 100000;
 constexpr size_t kAllocSize = 40;
diff --git a/base/android/early_trace_event_binding.cc b/base/android/early_trace_event_binding.cc
index f278025..e9a88174 100644
--- a/base/android/early_trace_event_binding.cc
+++ b/base/android/early_trace_event_binding.cc
@@ -107,7 +107,7 @@
 
   TRACE_EVENT_NESTABLE_ASYNC_BEGIN_WITH_TIMESTAMP_AND_FLAGS0(
       internal::kJavaTraceCategory, name.c_str(), TRACE_ID_LOCAL(id),
-      base::TimeTicks() + base::TimeDelta::FromNanoseconds(timestamp_ns),
+      base::TimeTicks() + base::Nanoseconds(timestamp_ns),
       TRACE_EVENT_FLAG_JAVA_STRING_LITERALS | TRACE_EVENT_FLAG_COPY);
 }
 
@@ -120,7 +120,7 @@
 
   TRACE_EVENT_NESTABLE_ASYNC_END_WITH_TIMESTAMP_AND_FLAGS0(
       internal::kJavaTraceCategory, name.c_str(), TRACE_ID_LOCAL(id),
-      base::TimeTicks() + base::TimeDelta::FromNanoseconds(timestamp_ns),
+      base::TimeTicks() + base::Nanoseconds(timestamp_ns),
       TRACE_EVENT_FLAG_JAVA_STRING_LITERALS | TRACE_EVENT_FLAG_COPY);
 }
 
diff --git a/base/android/jank_metric_uma_recorder.cc b/base/android/jank_metric_uma_recorder.cc
index f550522..ff09dab 100644
--- a/base/android/jank_metric_uma_recorder.cc
+++ b/base/android/jank_metric_uma_recorder.cc
@@ -80,15 +80,13 @@
   }
 
   for (const int64_t frame_duration_ns : durations_ns) {
-    base::UmaHistogramTimes(
-        frame_duration_histogram_name,
-        base::TimeDelta::FromNanoseconds(frame_duration_ns));
+    base::UmaHistogramTimes(frame_duration_histogram_name,
+                            base::Nanoseconds(frame_duration_ns));
   }
 
   for (const int64_t jank_burst_duration_ns : jank_bursts_ns) {
-    base::UmaHistogramTimes(
-        jank_burst_histogram_name,
-        base::TimeDelta::FromNanoseconds(jank_burst_duration_ns));
+    base::UmaHistogramTimes(jank_burst_histogram_name,
+                            base::Nanoseconds(jank_burst_duration_ns));
   }
 
   base::UmaHistogramCounts1000(missed_frames_histogram_name,
diff --git a/base/android/reached_code_profiler.cc b/base/android/reached_code_profiler.cc
index e64bd9c..4c8a10a 100644
--- a/base/android/reached_code_profiler.cc
+++ b/base/android/reached_code_profiler.cc
@@ -64,9 +64,8 @@
 constexpr uint64_t kIterationsBetweenUpdates = 100;
 constexpr int kProfilerSignal = SIGWINCH;
 
-constexpr base::TimeDelta kSamplingInterval =
-    base::TimeDelta::FromMilliseconds(10);
-constexpr base::TimeDelta kDumpInterval = base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kSamplingInterval = base::Milliseconds(10);
+constexpr base::TimeDelta kDumpInterval = base::Seconds(30);
 
 void HandleSignal(int signal, siginfo_t* info, void* context) {
   if (signal != kProfilerSignal)
@@ -283,7 +282,7 @@
               switches::kReachedCodeSamplingIntervalUs),
           &interval_us) &&
       interval_us > 0) {
-    sampling_interval = base::TimeDelta::FromMicroseconds(interval_us);
+    sampling_interval = base::Microseconds(interval_us);
   }
   ReachedCodeProfiler::GetInstance()->Start(library_process_type,
                                             sampling_interval);
diff --git a/base/debug/stack_trace_perftest.cc b/base/debug/stack_trace_perftest.cc
index 8299a6fb..6414fa7 100644
--- a/base/debug/stack_trace_perftest.cc
+++ b/base/debug/stack_trace_perftest.cc
@@ -16,7 +16,7 @@
 
 // Change kTimeLimit to something higher if you need more time to capture a
 // trace.
-constexpr base::TimeDelta kTimeLimit = base::TimeDelta::FromSeconds(3);
+constexpr base::TimeDelta kTimeLimit = base::Seconds(3);
 constexpr int kWarmupRuns = 100;
 constexpr int kTimeCheckInterval = 1000;
 constexpr char kMetricStackTraceDuration[] = ".duration_per_run";
diff --git a/base/files/file_locking_unittest.cc b/base/files/file_locking_unittest.cc
index c2f21f9..3122c412 100644
--- a/base/files/file_locking_unittest.cc
+++ b/base/files/file_locking_unittest.cc
@@ -65,7 +65,7 @@
   while (!CheckEvent(signal_dir, signal_file)) {
     if (base::Time::Now() > finish_by)
       return false;
-    base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(10));
+    base::PlatformThread::Sleep(base::Milliseconds(10));
   }
   return true;
 }
diff --git a/base/files/file_unittest.cc b/base/files/file_unittest.cc
index 9721fca..1d7b01a 100644
--- a/base/files/file_unittest.cc
+++ b/base/files/file_unittest.cc
@@ -401,7 +401,7 @@
 
   // Add 2 seconds to account for possible rounding errors on
   // filesystems that use a 1s or 2s timestamp granularity.
-  base::Time now = base::Time::Now() + base::TimeDelta::FromSeconds(2);
+  base::Time now = base::Time::Now() + base::Seconds(2);
   EXPECT_EQ(0, info.size);
   EXPECT_FALSE(info.is_directory);
   EXPECT_FALSE(info.is_symbolic_link);
@@ -420,10 +420,8 @@
   // It's best to add values that are multiples of 2 (in seconds)
   // to the current last_accessed and last_modified times, because
   // FATxx uses a 2s timestamp granularity.
-  base::Time new_last_accessed =
-      info.last_accessed + base::TimeDelta::FromSeconds(234);
-  base::Time new_last_modified =
-      info.last_modified + base::TimeDelta::FromMinutes(567);
+  base::Time new_last_accessed = info.last_accessed + base::Seconds(234);
+  base::Time new_last_modified = info.last_modified + base::Minutes(567);
 
   EXPECT_TRUE(file.SetTimes(new_last_accessed, new_last_modified));
 
diff --git a/base/i18n/time_formatting.cc b/base/i18n/time_formatting.cc
index 7cc1332f..95cd5ef3 100644
--- a/base/i18n/time_formatting.cc
+++ b/base/i18n/time_formatting.cc
@@ -193,7 +193,7 @@
                         std::u16string* out) {
   DCHECK(out);
   UErrorCode status = U_ZERO_ERROR;
-  const int total_minutes = ClampRound(time / base::TimeDelta::FromMinutes(1));
+  const int total_minutes = ClampRound(time / base::Minutes(1));
   const int hours = total_minutes / 60;
   const int minutes = total_minutes % 60;
   UMeasureFormatWidth u_width = DurationWidthToMeasureWidth(width);
diff --git a/base/lazy_instance_unittest.cc b/base/lazy_instance_unittest.cc
index bc990b0..14bb2891 100644
--- a/base/lazy_instance_unittest.cc
+++ b/base/lazy_instance_unittest.cc
@@ -44,7 +44,7 @@
  public:
   SlowConstructor() : some_int_(0) {
     // Sleep for 1 second to try to cause a race.
-    base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(1));
+    base::PlatformThread::Sleep(base::Seconds(1));
     ++constructed;
     some_int_ = 12;
   }
@@ -289,7 +289,7 @@
   background_getter.Start();
 
   while (!BlockingConstructor::WasConstructorCalled())
-    base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(1));
+    base::PlatformThread::Sleep(base::Milliseconds(1));
 
   // Spin 4 foreground thread per core contending to get the already under
   // construction LazyInstance. When they are all running and poking at it :
@@ -316,6 +316,5 @@
 
   // Fail if this test takes more than 5 seconds (it takes 5-10 seconds on a
   // Z840 without r527445 but is expected to be fast (~30ms) with the fix).
-  EXPECT_LT(base::TimeTicks::Now() - test_begin,
-            base::TimeDelta::FromSeconds(5));
+  EXPECT_LT(base::TimeTicks::Now() - test_begin, base::Seconds(5));
 }
diff --git a/base/message_loop/fd_watch_controller_posix_unittest.cc b/base/message_loop/fd_watch_controller_posix_unittest.cc
index ee5c3d0..479091e 100644
--- a/base/message_loop/fd_watch_controller_posix_unittest.cc
+++ b/base/message_loop/fd_watch_controller_posix_unittest.cc
@@ -516,8 +516,7 @@
 
   RunLoop timer_run_loop;
   env.GetMainThreadTaskRunner()->PostDelayedTask(
-      FROM_HERE, timer_run_loop.QuitClosure(),
-      base::TimeDelta::FromMilliseconds(10));
+      FROM_HERE, timer_run_loop.QuitClosure(), base::Milliseconds(10));
 
   RunLoop watcher_run_loop;
   CallClosureHandler handler(watcher_run_loop.QuitClosure(), OnceClosure());
diff --git a/base/message_loop/message_pump_perftest.cc b/base/message_loop/message_pump_perftest.cc
index e15405c..5afc92b 100644
--- a/base/message_loop/message_pump_perftest.cc
+++ b/base/message_loop/message_pump_perftest.cc
@@ -90,7 +90,7 @@
       lastnow = now;
       minimum = std::min(minimum, laptime);
       maximum = std::max(maximum, laptime);
-    } while (now - start < base::TimeDelta::FromSeconds(kTargetTimeSec));
+    } while (now - start < base::Seconds(kTargetTimeSec));
 
     scheduling_times_[index] = now - start;
     if (ThreadTicks::IsSupported())
diff --git a/base/message_loop/timer_slack.cc b/base/message_loop/timer_slack.cc
index 5864ca1..d0cc61aa 100644
--- a/base/message_loop/timer_slack.cc
+++ b/base/message_loop/timer_slack.cc
@@ -21,7 +21,7 @@
 constexpr base::FeatureParam<base::TimeDelta> kSlackValueMs{
     &kLudicrousTimerSlack, "slack_ms",
     // 1.5 seconds default slack for this ludicrous experiment.
-    base::TimeDelta::FromMilliseconds(1500)};
+    base::Milliseconds(1500)};
 
 }  // namespace
 }  // namespace features
diff --git a/base/message_loop/timer_slack_unittest.cc b/base/message_loop/timer_slack_unittest.cc
index 34adac2..c6adc35 100644
--- a/base/message_loop/timer_slack_unittest.cc
+++ b/base/message_loop/timer_slack_unittest.cc
@@ -48,7 +48,7 @@
 
 TEST(TimerSlackTest, LudicrousTimerSlackDefaultsOff) {
   EXPECT_FALSE(IsLudicrousTimerSlackEnabled());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1500), GetLudicrousTimerSlack());
+  EXPECT_EQ(base::Milliseconds(1500), GetLudicrousTimerSlack());
 
 #if defined(OS_MAC)
   MessagePumpCFRunLoop message_pump_cf_run_loop;
@@ -78,7 +78,7 @@
       base::features::kLudicrousTimerSlack);
 
   EXPECT_TRUE(IsLudicrousTimerSlackEnabled());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1500), GetLudicrousTimerSlack());
+  EXPECT_EQ(base::Milliseconds(1500), GetLudicrousTimerSlack());
 
 #if defined(OS_MAC)
   MessagePumpCFRunLoop message_pump_cf_run_loop;
@@ -180,7 +180,7 @@
   scoped_feature_list.InitAndEnableFeatureWithParameters(
       base::features::kLudicrousTimerSlack, parameters);
 
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(12345), GetLudicrousTimerSlack());
+  EXPECT_EQ(base::Milliseconds(12345), GetLudicrousTimerSlack());
 }
 
 TEST(TimerSlackTest, LudicrousTimerSlackSlackSuspendResume) {
diff --git a/base/metrics/field_trial_params_unittest.cc b/base/metrics/field_trial_params_unittest.cc
index 6f52ad7..3c21299 100644
--- a/base/metrics/field_trial_params_unittest.cc
+++ b/base/metrics/field_trial_params_unittest.cc
@@ -412,8 +412,8 @@
   CreateFeatureWithTrial(kFeature, FeatureList::OVERRIDE_ENABLE_FEATURE,
                          trial.get());
 
-  EXPECT_EQ(a.Get(), base::TimeDelta::FromSecondsD(1.5));
-  EXPECT_EQ(b.Get(), base::TimeDelta::FromMinutes(62));
+  EXPECT_EQ(a.Get(), base::Seconds(1.5));
+  EXPECT_EQ(b.Get(), base::Minutes(62));
   EXPECT_EQ(c.Get(), base::TimeDelta());  // invalid
   EXPECT_EQ(d.Get(), base::TimeDelta());  // invalid
   EXPECT_EQ(e.Get(), base::TimeDelta());  // empty
diff --git a/base/metrics/histogram_macros.h b/base/metrics/histogram_macros.h
index 860bd746..b6a9a1e 100644
--- a/base/metrics/histogram_macros.h
+++ b/base/metrics/histogram_macros.h
@@ -224,25 +224,25 @@
 
 // Short timings - up to 10 seconds. For high-resolution (microseconds) timings,
 // see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES.
-#define UMA_HISTOGRAM_TIMES(name, sample) UMA_HISTOGRAM_CUSTOM_TIMES(          \
-    name, sample, base::TimeDelta::FromMilliseconds(1),                        \
-    base::TimeDelta::FromSeconds(10), 50)
+#define UMA_HISTOGRAM_TIMES(name, sample)                         \
+  UMA_HISTOGRAM_CUSTOM_TIMES(name, sample, base::Milliseconds(1), \
+                             base::Seconds(10), 50)
 
 // Medium timings - up to 3 minutes. Note this starts at 10ms (no good reason,
 // but not worth changing).
-#define UMA_HISTOGRAM_MEDIUM_TIMES(name, sample) UMA_HISTOGRAM_CUSTOM_TIMES(   \
-    name, sample, base::TimeDelta::FromMilliseconds(10),                       \
-    base::TimeDelta::FromMinutes(3), 50)
+#define UMA_HISTOGRAM_MEDIUM_TIMES(name, sample)                   \
+  UMA_HISTOGRAM_CUSTOM_TIMES(name, sample, base::Milliseconds(10), \
+                             base::Minutes(3), 50)
 
 // Long timings - up to an hour.
-#define UMA_HISTOGRAM_LONG_TIMES(name, sample) UMA_HISTOGRAM_CUSTOM_TIMES(     \
-    name, sample, base::TimeDelta::FromMilliseconds(1),                        \
-    base::TimeDelta::FromHours(1), 50)
+#define UMA_HISTOGRAM_LONG_TIMES(name, sample)                    \
+  UMA_HISTOGRAM_CUSTOM_TIMES(name, sample, base::Milliseconds(1), \
+                             base::Hours(1), 50)
 
 // Long timings with higher granularity - up to an hour with 100 buckets.
-#define UMA_HISTOGRAM_LONG_TIMES_100(name, sample) UMA_HISTOGRAM_CUSTOM_TIMES( \
-    name, sample, base::TimeDelta::FromMilliseconds(1),                        \
-    base::TimeDelta::FromHours(1), 100)
+#define UMA_HISTOGRAM_LONG_TIMES_100(name, sample)                \
+  UMA_HISTOGRAM_CUSTOM_TIMES(name, sample, base::Milliseconds(1), \
+                             base::Hours(1), 100)
 
 // This can be used when the default ranges are not sufficient. This macro lets
 // the metric developer customize the min and max of the sampled range, as well
@@ -250,7 +250,7 @@
 
 // Sample usage:
 //   UMA_HISTOGRAM_CUSTOM_TIMES("Very.Long.Timing.Histogram", time_delta,
-//       base::TimeDelta::FromSeconds(1), base::TimeDelta::FromDays(1), 100);
+//       base::Seconds(1), base::Days(1), 100);
 #define UMA_HISTOGRAM_CUSTOM_TIMES(name, sample, min, max, bucket_count) \
   STATIC_HISTOGRAM_POINTER_BLOCK(                                        \
       name, AddTimeMillisecondsGranularity(sample),                      \
@@ -268,8 +268,8 @@
 // Sample usage:
 //  UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
 //      "High.Resolution.TimingMicroseconds.Histogram", time_delta,
-//      base::TimeDelta::FromMicroseconds(1),
-//      base::TimeDelta::FromMilliseconds(10), 100);
+//      base::Microseconds(1),
+//      base::Milliseconds(10), 100);
 #define UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(name, sample, min, max, \
                                                 bucket_count)           \
   STATIC_HISTOGRAM_POINTER_BLOCK(                                       \
@@ -363,12 +363,11 @@
       INTERNAL_UMA_HISTOGRAM_ENUMERATION_DEDUCE_BOUNDARY)               \
   (name, __VA_ARGS__, base::HistogramBase::kUmaStabilityHistogramFlag)
 
-#define UMA_STABILITY_HISTOGRAM_LONG_TIMES(name, sample) \
-  STATIC_HISTOGRAM_POINTER_BLOCK(                        \
-      name, AddTimeMillisecondsGranularity(sample),      \
-      base::Histogram::FactoryTimeGet(                   \
-          name, base::TimeDelta::FromMilliseconds(1),    \
-          base::TimeDelta::FromHours(1), 50,             \
+#define UMA_STABILITY_HISTOGRAM_LONG_TIMES(name, sample)   \
+  STATIC_HISTOGRAM_POINTER_BLOCK(                          \
+      name, AddTimeMillisecondsGranularity(sample),        \
+      base::Histogram::FactoryTimeGet(                     \
+          name, base::Milliseconds(1), base::Hours(1), 50, \
           base::HistogramBase::kUmaStabilityHistogramFlag))
 
 #define UMA_STABILITY_HISTOGRAM_PERCENTAGE(name, percent_as_int) \
diff --git a/base/metrics/histogram_macros_internal.h b/base/metrics/histogram_macros_internal.h
index 46d44b56..977452e3 100644
--- a/base/metrics/histogram_macros_internal.h
+++ b/base/metrics/histogram_macros_internal.h
@@ -242,29 +242,28 @@
   INTERNAL_SCOPED_UMA_HISTOGRAM_TIMER_UNIQUE(name, timing, key)
 
 // This is a helper macro used by other macros and shouldn't be used directly.
-#define INTERNAL_SCOPED_UMA_HISTOGRAM_TIMER_UNIQUE(name, timing, key)     \
-  class ScopedHistogramTimer##key {                                       \
-   public:                                                                \
-    ScopedHistogramTimer##key() : constructed_(base::TimeTicks::Now()) {} \
-    ~ScopedHistogramTimer##key() {                                        \
-      base::TimeDelta elapsed = base::TimeTicks::Now() - constructed_;    \
-      switch (timing) {                                                   \
-        case ScopedHistogramTiming::kMicrosecondTimes:                    \
-          UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(                        \
-              name, elapsed, base::TimeDelta::FromMicroseconds(1),        \
-              base::TimeDelta::FromSeconds(1), 50);                       \
-          break;                                                          \
-        case ScopedHistogramTiming::kMediumTimes:                         \
-          UMA_HISTOGRAM_TIMES(name, elapsed);                             \
-          break;                                                          \
-        case ScopedHistogramTiming::kLongTimes:                           \
-          UMA_HISTOGRAM_LONG_TIMES_100(name, elapsed);                    \
-          break;                                                          \
-      }                                                                   \
-    }                                                                     \
-                                                                          \
-   private:                                                               \
-    base::TimeTicks constructed_;                                         \
+#define INTERNAL_SCOPED_UMA_HISTOGRAM_TIMER_UNIQUE(name, timing, key)      \
+  class ScopedHistogramTimer##key {                                        \
+   public:                                                                 \
+    ScopedHistogramTimer##key() : constructed_(base::TimeTicks::Now()) {}  \
+    ~ScopedHistogramTimer##key() {                                         \
+      base::TimeDelta elapsed = base::TimeTicks::Now() - constructed_;     \
+      switch (timing) {                                                    \
+        case ScopedHistogramTiming::kMicrosecondTimes:                     \
+          UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(                         \
+              name, elapsed, base::Microseconds(1), base::Seconds(1), 50); \
+          break;                                                           \
+        case ScopedHistogramTiming::kMediumTimes:                          \
+          UMA_HISTOGRAM_TIMES(name, elapsed);                              \
+          break;                                                           \
+        case ScopedHistogramTiming::kLongTimes:                            \
+          UMA_HISTOGRAM_LONG_TIMES_100(name, elapsed);                     \
+          break;                                                           \
+      }                                                                    \
+    }                                                                      \
+                                                                           \
+   private:                                                                \
+    base::TimeTicks constructed_;                                          \
   } scoped_histogram_timer_##key
 
 #endif  // BASE_METRICS_HISTOGRAM_MACROS_INTERNAL_H_
diff --git a/base/metrics/histogram_macros_local.h b/base/metrics/histogram_macros_local.h
index 771b01a0..e41b5ef 100644
--- a/base/metrics/histogram_macros_local.h
+++ b/base/metrics/histogram_macros_local.h
@@ -59,9 +59,9 @@
 //
 // For usage details, see the equivalents in histogram_macros.h.
 
-#define LOCAL_HISTOGRAM_TIMES(name, sample) LOCAL_HISTOGRAM_CUSTOM_TIMES(      \
-    name, sample, base::TimeDelta::FromMilliseconds(1),                        \
-    base::TimeDelta::FromSeconds(10), 50)
+#define LOCAL_HISTOGRAM_TIMES(name, sample)                         \
+  LOCAL_HISTOGRAM_CUSTOM_TIMES(name, sample, base::Milliseconds(1), \
+                               base::Seconds(10), 50)
 
 #define LOCAL_HISTOGRAM_CUSTOM_TIMES(name, sample, min, max, bucket_count) \
   STATIC_HISTOGRAM_POINTER_BLOCK(                                          \
diff --git a/base/process/process_metrics_unittest.cc b/base/process/process_metrics_unittest.cc
index b2c1ddb..2df96500 100644
--- a/base/process/process_metrics_unittest.cc
+++ b/base/process/process_metrics_unittest.cc
@@ -543,23 +543,19 @@
   EXPECT_EQ(time_in_state[0].thread_id, 123);
   EXPECT_EQ(time_in_state[0].cluster_core_index, 0u);
   EXPECT_EQ(time_in_state[0].core_frequency_khz, 100000u);
-  EXPECT_EQ(time_in_state[0].cumulative_cpu_time,
-            base::TimeDelta::FromMilliseconds(40));
+  EXPECT_EQ(time_in_state[0].cumulative_cpu_time, base::Milliseconds(40));
   EXPECT_EQ(time_in_state[1].thread_id, 123);
   EXPECT_EQ(time_in_state[1].cluster_core_index, 0u);
   EXPECT_EQ(time_in_state[1].core_frequency_khz, 200000u);
-  EXPECT_EQ(time_in_state[1].cumulative_cpu_time,
-            base::TimeDelta::FromMilliseconds(50));
+  EXPECT_EQ(time_in_state[1].cumulative_cpu_time, base::Milliseconds(50));
   EXPECT_EQ(time_in_state[2].thread_id, 123);
   EXPECT_EQ(time_in_state[2].cluster_core_index, 4u);
   EXPECT_EQ(time_in_state[2].core_frequency_khz, 400000u);
-  EXPECT_EQ(time_in_state[2].cumulative_cpu_time,
-            base::TimeDelta::FromMilliseconds(30));
+  EXPECT_EQ(time_in_state[2].cumulative_cpu_time, base::Milliseconds(30));
   EXPECT_EQ(time_in_state[3].thread_id, 123);
   EXPECT_EQ(time_in_state[3].cluster_core_index, 4u);
   EXPECT_EQ(time_in_state[3].core_frequency_khz, 500000u);
-  EXPECT_EQ(time_in_state[3].cumulative_cpu_time,
-            base::TimeDelta::FromMilliseconds(20));
+  EXPECT_EQ(time_in_state[3].cumulative_cpu_time, base::Milliseconds(20));
 
   // Calling ParseProcTimeInState again adds to the vector.
   const char kStatThread456[] =
@@ -573,8 +569,7 @@
   EXPECT_EQ(time_in_state[4].thread_id, 456);
   EXPECT_EQ(time_in_state[4].cluster_core_index, 0u);
   EXPECT_EQ(time_in_state[4].core_frequency_khz, 1000000u);
-  EXPECT_EQ(time_in_state[4].cumulative_cpu_time,
-            base::TimeDelta::FromMilliseconds(100));
+  EXPECT_EQ(time_in_state[4].cumulative_cpu_time, base::Milliseconds(100));
 
   // Calling ParseProcTimeInState with invalid data returns false.
   EXPECT_FALSE(
diff --git a/base/sync_socket_unittest.cc b/base/sync_socket_unittest.cc
index c6c9c0a..fe1ed4e 100644
--- a/base/sync_socket_unittest.cc
+++ b/base/sync_socket_unittest.cc
@@ -14,7 +14,7 @@
 
 namespace {
 
-constexpr TimeDelta kReceiveTimeout = base::TimeDelta::FromMilliseconds(750);
+constexpr TimeDelta kReceiveTimeout = base::Milliseconds(750);
 
 class HangingReceiveThread : public DelegateSimpleThread::Delegate {
  public:
diff --git a/base/sync_socket_win.cc b/base/sync_socket_win.cc
index 4561a76..4634640 100644
--- a/base/sync_socket_win.cc
+++ b/base/sync_socket_win.cc
@@ -136,8 +136,7 @@
   TimeTicks current_time, finish_time;
   if (timeout_in_ms != INFINITE) {
     current_time = TimeTicks::Now();
-    finish_time =
-        current_time + base::TimeDelta::FromMilliseconds(timeout_in_ms);
+    finish_time = current_time + base::Milliseconds(timeout_in_ms);
   }
 
   size_t count = 0;
diff --git a/base/system/sys_info.cc b/base/system/sys_info.cc
index 84a2e7a..4a02b3f 100644
--- a/base/system/sys_info.cc
+++ b/base/system/sys_info.cc
@@ -109,7 +109,7 @@
   // its return value happens to coincide with the system uptime value in
   // microseconds, on Win/Mac/iOS/Linux/ChromeOS and Android.
   int64_t uptime_in_microseconds = TimeTicks::Now().ToInternalValue();
-  return base::TimeDelta::FromMicroseconds(uptime_in_microseconds);
+  return base::Microseconds(uptime_in_microseconds);
 }
 
 // static
diff --git a/base/task/sequence_manager/sequence_manager_impl_unittest.cc b/base/task/sequence_manager/sequence_manager_impl_unittest.cc
index aeebdd1..42e1195 100644
--- a/base/task/sequence_manager/sequence_manager_impl_unittest.cc
+++ b/base/task/sequence_manager/sequence_manager_impl_unittest.cc
@@ -2669,7 +2669,7 @@
   queue->task_runner()->PostDelayedTask(
       FROM_HERE,
       BindOnce(&CancelableTask::FailTask<>, task.weak_factory_.GetWeakPtr()),
-      base::TimeDelta::FromSeconds(1));
+      base::Seconds(1));
 
   // Make sure sweeping away the last task in the queue doesn't end up accessing
   // invalid iterators.
@@ -2684,9 +2684,8 @@
   auto queue = CreateTaskQueue();
   bool did_post = false;
   auto on_destroy = BindLambdaForTesting([&] {
-    queue->task_runner()->PostDelayedTask(FROM_HERE,
-                                          BindLambdaForTesting([] {}),
-                                          base::TimeDelta::FromSeconds(1));
+    queue->task_runner()->PostDelayedTask(
+        FROM_HERE, BindLambdaForTesting([] {}), base::Seconds(1));
     did_post = true;
   });
 
@@ -2697,7 +2696,7 @@
       BindOnce(&CancelableTask::FailTask<DestructionCallback>,
                task.weak_factory_.GetWeakPtr(),
                std::move(destruction_observer)),
-      base::TimeDelta::FromSeconds(1));
+      base::Seconds(1));
 
   task.weak_factory_.InvalidateWeakPtrs();
   EXPECT_FALSE(did_post);
@@ -2745,7 +2744,7 @@
       BindOnce(&CancelableTask::FailTask<DestructionCallback>,
                task.weak_factory_.GetWeakPtr(),
                std::move(destruction_observer)),
-      base::TimeDelta::FromSeconds(1));
+      base::Seconds(1));
 
   task.weak_factory_.InvalidateWeakPtrs();
   EXPECT_FALSE(did_shutdown);
@@ -4716,9 +4715,9 @@
       FROM_HERE, BindOnce(
                      [](scoped_refptr<TaskRunner> task_runner,
                         WaitableEvent* task_posted) {
-                       task_runner->PostDelayedTask(
-                           FROM_HERE, BindOnce(&NopTask),
-                           base::TimeDelta::FromMilliseconds(10));
+                       task_runner->PostDelayedTask(FROM_HERE,
+                                                    BindOnce(&NopTask),
+                                                    base::Milliseconds(10));
                        task_posted->Signal();
                      },
                      std::move(task_runner), &task_posted));
@@ -4733,19 +4732,19 @@
 void PostTaskA(scoped_refptr<TaskRunner> task_runner) {
   task_runner->PostTask(FROM_HERE, BindOnce(&NopTask));
   task_runner->PostDelayedTask(FROM_HERE, BindOnce(&NopTask),
-                               base::TimeDelta::FromMilliseconds(10));
+                               base::Milliseconds(10));
 }
 
 void PostTaskB(scoped_refptr<TaskRunner> task_runner) {
   task_runner->PostTask(FROM_HERE, BindOnce(&NopTask));
   task_runner->PostDelayedTask(FROM_HERE, BindOnce(&NopTask),
-                               base::TimeDelta::FromMilliseconds(20));
+                               base::Milliseconds(20));
 }
 
 void PostTaskC(scoped_refptr<TaskRunner> task_runner) {
   task_runner->PostTask(FROM_HERE, BindOnce(&NopTask));
   task_runner->PostDelayedTask(FROM_HERE, BindOnce(&NopTask),
-                               base::TimeDelta::FromMilliseconds(30));
+                               base::Milliseconds(30));
 }
 
 }  // namespace
diff --git a/base/task/thread_pool/thread_pool_impl.cc b/base/task/thread_pool/thread_pool_impl.cc
index 9beebcf..08ed8a3 100644
--- a/base/task/thread_pool/thread_pool_impl.cc
+++ b/base/task/thread_pool/thread_pool_impl.cc
@@ -212,7 +212,7 @@
 
   const base::TimeDelta suggested_reclaim_time =
       FeatureList::IsEnabled(kUseFiveMinutesThreadReclaimTime)
-          ? base::TimeDelta::FromMinutes(5)
+          ? base::Minutes(5)
           : init_params.suggested_reclaim_time;
 
 #if HAS_NATIVE_THREAD_POOL()
diff --git a/base/task/thread_pool/thread_pool_perftest.cc b/base/task/thread_pool/thread_pool_perftest.cc
index d1b65a0d..d571604 100644
--- a/base/task/thread_pool/thread_pool_perftest.cc
+++ b/base/task/thread_pool/thread_pool_perftest.cc
@@ -261,8 +261,7 @@
   StartThreadPool(
       4, 4,
       BindRepeating(&ThreadPoolPerfTest::ContinuouslyPostBusyWaitTasks,
-                    Unretained(this), 10000,
-                    base::TimeDelta::FromMicroseconds(200)));
+                    Unretained(this), 10000, base::Microseconds(200)));
   Benchmark(kStoryPostRunBusyManyThreads, ExecutionMode::kPostAndRun);
 }
 
diff --git a/base/test/ios/wait_util.mm b/base/test/ios/wait_util.mm
index e11d95e..8ada064 100644
--- a/base/test/ios/wait_util.mm
+++ b/base/test/ios/wait_util.mm
@@ -31,8 +31,7 @@
   NSDate* deadline = [NSDate dateWithTimeIntervalSinceNow:timeout];
   bool success = condition();
   while (!success && [[NSDate date] compare:deadline] != NSOrderedDescending) {
-    base::test::ios::SpinRunLoopWithMaxDelay(
-        base::TimeDelta::FromSecondsD(kSpinDelaySeconds));
+    base::test::ios::SpinRunLoopWithMaxDelay(base::Seconds(kSpinDelaySeconds));
     success = condition();
   }
   return success;
diff --git a/base/test/launcher/test_launcher_unittest.cc b/base/test/launcher/test_launcher_unittest.cc
index 83f1e20..a670740db 100644
--- a/base/test/launcher/test_launcher_unittest.cc
+++ b/base/test/launcher/test_launcher_unittest.cc
@@ -912,7 +912,7 @@
 
 MULTIPROCESS_TEST_MAIN(LeakChildProcess) {
   while (true)
-    PlatformThread::Sleep(base::TimeDelta::FromSeconds(1));
+    PlatformThread::Sleep(base::Seconds(1));
 }
 
 TEST(LeakedChildProcessTest, DISABLED_LeakChildProcess) {
diff --git a/base/test/metrics/histogram_tester_unittest.cc b/base/test/metrics/histogram_tester_unittest.cc
index 46f7acac..bedc4a4 100644
--- a/base/test/metrics/histogram_tester_unittest.cc
+++ b/base/test/metrics/histogram_tester_unittest.cc
@@ -73,8 +73,7 @@
   UMA_HISTOGRAM_COUNTS_100(kHistogram2, 2);
 
   tester.ExpectUniqueSample(kHistogram2, 2, 3);
-  tester.ExpectUniqueTimeSample(kHistogram2,
-                                base::TimeDelta::FromMilliseconds(2), 3);
+  tester.ExpectUniqueTimeSample(kHistogram2, base::Milliseconds(2), 3);
 }
 
 // Verify that the expectation is violated if the bucket contains an incorrect
diff --git a/base/test/spin_wait.h b/base/test/spin_wait.h
index 42b3b35..3f6dce3 100644
--- a/base/test/spin_wait.h
+++ b/base/test/spin_wait.h
@@ -30,9 +30,8 @@
 // typically used to get the padding needed on a given test platform to assure
 // that the test passes, even if load varies, and external events vary.
 
-#define SPIN_FOR_1_SECOND_OR_UNTIL_TRUE(expression)                 \
-  SPIN_FOR_TIMEDELTA_OR_UNTIL_TRUE(base::TimeDelta::FromSeconds(1), \
-                                   (expression))
+#define SPIN_FOR_1_SECOND_OR_UNTIL_TRUE(expression) \
+  SPIN_FOR_TIMEDELTA_OR_UNTIL_TRUE(base::Seconds(1), (expression))
 
 #define SPIN_FOR_TIMEDELTA_OR_UNTIL_TRUE(delta, expression)                    \
   do {                                                                         \
@@ -45,7 +44,7 @@
             << "Timed out";                                                    \
         break;                                                                 \
       }                                                                        \
-      base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(50));      \
+      base::PlatformThread::Sleep(base::Milliseconds(50));                     \
     }                                                                          \
   } while (0)
 
diff --git a/base/test/task_runner_test_template.h b/base/test/task_runner_test_template.h
index fc23f4b..64c14608 100644
--- a/base/test/task_runner_test_template.h
+++ b/base/test/task_runner_test_template.h
@@ -149,8 +149,7 @@
     RepeatingClosure ith_task =
         this->task_tracker_->WrapTask(RepeatingClosure(), i);
     for (int j = 0; j < i + 1; ++j) {
-      task_runner->PostDelayedTask(
-          FROM_HERE, ith_task, base::TimeDelta::FromMilliseconds(j));
+      task_runner->PostDelayedTask(FROM_HERE, ith_task, base::Milliseconds(j));
       ++expected_task_run_counts[i];
       ++expected_total_tasks;
     }
diff --git a/base/test/test_future_unittest.cc b/base/test/test_future_unittest.cc
index bcb724e..094982d 100644
--- a/base/test/test_future_unittest.cc
+++ b/base/test/test_future_unittest.cc
@@ -75,7 +75,7 @@
   TestFuture<int> future;
 
   PostDelayedTask(base::BindOnce(future.GetCallback(), expected_value),
-                  base::TimeDelta::FromMilliseconds(1));
+                  base::Milliseconds(1));
 
   future.Wait();
 
@@ -86,15 +86,14 @@
   TestFuture<int> future;
 
   PostDelayedTask(base::BindOnce(future.GetCallback(), kAnyValue),
-                  base::TimeDelta::FromMilliseconds(1));
+                  base::Milliseconds(1));
 
   bool success = future.Wait();
   EXPECT_TRUE(success);
 }
 
 TEST_F(TestFutureTest, WaitShouldReturnFalseIfTimeoutHappens) {
-  base::test::ScopedRunLoopTimeout timeout(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(1));
+  base::test::ScopedRunLoopTimeout timeout(FROM_HERE, base::Milliseconds(1));
 
   // |ScopedRunLoopTimeout| will automatically fail the test when a timeout
   // happens, so we use EXPECT_FATAL_FAILURE to handle this failure.
@@ -112,7 +111,7 @@
   TestFuture<int> future;
 
   PostDelayedTask(base::BindOnce(future.GetCallback(), expected_value),
-                  base::TimeDelta::FromMilliseconds(1));
+                  base::Milliseconds(1));
 
   int actual_value = future.Get();
 
@@ -120,8 +119,7 @@
 }
 
 TEST_F(TestFutureTest, GetShouldDcheckIfTimeoutHappens) {
-  base::test::ScopedRunLoopTimeout timeout(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(1));
+  base::test::ScopedRunLoopTimeout timeout(FROM_HERE, base::Milliseconds(1));
 
   TestFuture<AnyType> future;
 
@@ -140,8 +138,7 @@
 }
 
 TEST_F(TestFutureTest, TakeShouldDcheckIfTimeoutHappens) {
-  base::test::ScopedRunLoopTimeout timeout(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(1));
+  base::test::ScopedRunLoopTimeout timeout(FROM_HERE, base::Milliseconds(1));
 
   TestFuture<AnyType> future;
 
diff --git a/base/test/test_pending_task_unittest.cc b/base/test/test_pending_task_unittest.cc
index 9771e23..b0c205b 100644
--- a/base/test/test_pending_task_unittest.cc
+++ b/base/test/test_pending_task_unittest.cc
@@ -47,9 +47,9 @@
 
 TEST(TestPendingTaskTest, ShouldRunBefore) {
   base::TestPendingTask task_first;
-  task_first.delay = base::TimeDelta::FromMilliseconds(1);
+  task_first.delay = base::Milliseconds(1);
   base::TestPendingTask task_after;
-  task_after.delay = base::TimeDelta::FromMilliseconds(2);
+  task_after.delay = base::Milliseconds(2);
 
   EXPECT_FALSE(task_after.ShouldRunBefore(task_first))
       << task_after << ".ShouldRunBefore(" << task_first << ")\n";
diff --git a/base/test/test_reg_util_win.cc b/base/test/test_reg_util_win.cc
index 2498ed57..36bf1d6 100644
--- a/base/test/test_reg_util_win.cc
+++ b/base/test/test_reg_util_win.cc
@@ -53,7 +53,7 @@
     base::Time key_time = base::Time::FromInternalValue(key_name_as_number);
     base::TimeDelta age = now - key_time;
 
-    if (age > base::TimeDelta::FromHours(24))
+    if (age > base::Hours(24))
       test_root_key.DeleteKey(key_name.c_str());
   }
 }
diff --git a/base/test/test_reg_util_win_unittest.cc b/base/test/test_reg_util_win_unittest.cc
index 12c1d6b9..3e05c39e 100644
--- a/base/test/test_reg_util_win_unittest.cc
+++ b/base/test/test_reg_util_win_unittest.cc
@@ -107,13 +107,12 @@
 
   std::wstring path_garbage = fake_test_key_root_ + L"\\Blah";
   std::wstring path_very_stale =
-      FakeOverrideManagerPath(kTestTime - base::TimeDelta::FromDays(100));
-  std::wstring path_stale =
-      FakeOverrideManagerPath(kTestTime - base::TimeDelta::FromDays(5));
+      FakeOverrideManagerPath(kTestTime - base::Days(100));
+  std::wstring path_stale = FakeOverrideManagerPath(kTestTime - base::Days(5));
   std::wstring path_current =
-      FakeOverrideManagerPath(kTestTime - base::TimeDelta::FromMinutes(1));
+      FakeOverrideManagerPath(kTestTime - base::Minutes(1));
   std::wstring path_future =
-      FakeOverrideManagerPath(kTestTime + base::TimeDelta::FromMinutes(1));
+      FakeOverrideManagerPath(kTestTime + base::Minutes(1));
 
   ASSERT_NO_FATAL_FAILURE(CreateKey(path_garbage));
   ASSERT_NO_FATAL_FAILURE(CreateKey(path_very_stale));
diff --git a/base/test/test_timeouts.cc b/base/test/test_timeouts.cc
index 507c00d..90a79644 100644
--- a/base/test/test_timeouts.cc
+++ b/base/test/test_timeouts.cc
@@ -37,8 +37,7 @@
       LOG(FATAL) << "Timeout value \"" << string_value << "\" was parsed as "
                  << command_line_timeout_ms;
     }
-    command_line_timeout =
-        base::TimeDelta::FromMilliseconds(command_line_timeout_ms);
+    command_line_timeout = base::Milliseconds(command_line_timeout_ms);
   }
 
 #if defined(MEMORY_SANITIZER)
@@ -89,14 +88,10 @@
 
 // The timeout values should increase in the order they appear in this block.
 // static
-base::TimeDelta TestTimeouts::tiny_timeout_ =
-    base::TimeDelta::FromMilliseconds(100);
-base::TimeDelta TestTimeouts::action_timeout_ =
-    base::TimeDelta::FromSeconds(10);
-base::TimeDelta TestTimeouts::action_max_timeout_ =
-    base::TimeDelta::FromSeconds(30);
-base::TimeDelta TestTimeouts::test_launcher_timeout_ =
-    base::TimeDelta::FromSeconds(45);
+base::TimeDelta TestTimeouts::tiny_timeout_ = base::Milliseconds(100);
+base::TimeDelta TestTimeouts::action_timeout_ = base::Seconds(10);
+base::TimeDelta TestTimeouts::action_max_timeout_ = base::Seconds(30);
+base::TimeDelta TestTimeouts::test_launcher_timeout_ = base::Seconds(45);
 
 // static
 void TestTimeouts::Initialize() {
@@ -126,7 +121,7 @@
   base::TimeDelta min_ui_test_action_timeout = tiny_timeout_;
   if (being_debugged || base::CommandLine::ForCurrentProcess()->HasSwitch(
                             switches::kTestLauncherInteractive)) {
-    min_ui_test_action_timeout = base::TimeDelta::FromDays(1);
+    min_ui_test_action_timeout = base::Days(1);
   }
 
   InitializeTimeout(switches::kUiTestActionTimeout, min_ui_test_action_timeout,
diff --git a/base/test/trace_event_analyzer_unittest.cc b/base/test/trace_event_analyzer_unittest.cc
index 735a07d..ad3ef32b 100644
--- a/base/test/trace_event_analyzer_unittest.cc
+++ b/base/test/trace_event_analyzer_unittest.cc
@@ -413,7 +413,7 @@
 TEST_F(TraceEventAnalyzerTest, BeginEndDuration) {
   ManualSetUp();
 
-  const base::TimeDelta kSleepTime = base::TimeDelta::FromMilliseconds(200);
+  const base::TimeDelta kSleepTime = base::Milliseconds(200);
   // We will search for events that have a duration of greater than 90% of the
   // sleep time, so that there is no flakiness.
   int64_t duration_cutoff_us = (kSleepTime.InMicroseconds() * 9) / 10;
@@ -460,7 +460,7 @@
 TEST_F(TraceEventAnalyzerTest, CompleteDuration) {
   ManualSetUp();
 
-  const base::TimeDelta kSleepTime = base::TimeDelta::FromMilliseconds(200);
+  const base::TimeDelta kSleepTime = base::Milliseconds(200);
   // We will search for events that have a duration of greater than 90% of the
   // sleep time, so that there is no flakiness.
   int64_t duration_cutoff_us = (kSleepTime.InMicroseconds() * 9) / 10;
diff --git a/base/threading/hang_watcher.cc b/base/threading/hang_watcher.cc
index 690ac4f..ff39c7e 100644
--- a/base/threading/hang_watcher.cc
+++ b/base/threading/hang_watcher.cc
@@ -114,7 +114,7 @@
 
 // static
 const base::TimeDelta WatchHangsInScope::kDefaultHangWatchTime =
-    base::TimeDelta::FromSeconds(10);
+    base::Seconds(10);
 
 constexpr const char* kThreadName = "HangWatcher";
 
@@ -126,7 +126,7 @@
 // hangs but present unacceptable overhead. NOTE: If this period is ever changed
 // then all metrics that depend on it like
 // HangWatcher.IsThreadHung need to be updated.
-constexpr auto kMonitoringPeriod = base::TimeDelta::FromSeconds(10);
+constexpr auto kMonitoringPeriod = base::Seconds(10);
 
 WatchHangsInScope::WatchHangsInScope(TimeDelta timeout) {
   internal::HangWatchState* current_hang_watch_state =
@@ -397,8 +397,7 @@
   while (true) {
     // Amount by which the actual time spent sleeping can deviate from
     // the target time and still be considered timely.
-    constexpr base::TimeDelta kWaitDriftTolerance =
-        base::TimeDelta::FromMilliseconds(100);
+    constexpr base::TimeDelta kWaitDriftTolerance = base::Milliseconds(100);
 
     const base::TimeTicks time_before_wait = tick_clock_->NowTicks();
 
diff --git a/base/threading/hang_watcher.h b/base/threading/hang_watcher.h
index 63676ef..cc92ab7a 100644
--- a/base/threading/hang_watcher.h
+++ b/base/threading/hang_watcher.h
@@ -45,7 +45,7 @@
 // Example usage:
 //
 //  void FooBar(){
-//    WatchHangsInScope scope(base::TimeDelta::FromSeconds(5));
+//    WatchHangsInScope scope(base::Seconds(5));
 //    DoWork();
 //  }
 //
diff --git a/base/threading/hang_watcher_unittest.cc b/base/threading/hang_watcher_unittest.cc
index 5adc66c..e5c8e631 100644
--- a/base/threading/hang_watcher_unittest.cc
+++ b/base/threading/hang_watcher_unittest.cc
@@ -45,7 +45,7 @@
 // Use this value to mark things very far off in the future. Adding this
 // to TimeTicks::Now() gives a point that will never be reached during the
 // normal execution of a test.
-constexpr TimeDelta kVeryLongDelta{base::TimeDelta::FromDays(365)};
+constexpr TimeDelta kVeryLongDelta{base::Days(365)};
 
 constexpr uint64_t kArbitraryDeadline = 0x0000C0FFEEC0FFEEu;
 constexpr uint64_t kAllOnes = 0xFFFFFFFFFFFFFFFFu;
@@ -108,8 +108,8 @@
 
 class HangWatcherTest : public testing::Test {
  public:
-  const base::TimeDelta kTimeout = base::TimeDelta::FromSeconds(10);
-  const base::TimeDelta kHangTime = kTimeout + base::TimeDelta::FromSeconds(1);
+  const base::TimeDelta kTimeout = base::Seconds(10);
+  const base::TimeDelta kHangTime = kTimeout + base::Seconds(1);
 
   HangWatcherTest() {
     feature_list_.InitWithFeaturesAndParameters(kFeatureAndParams, {});
@@ -380,12 +380,10 @@
   ASSERT_FALSE(current_hang_watch_state->IsOverDeadline());
   base::TimeTicks original_deadline = current_hang_watch_state->GetDeadline();
 
-  constexpr base::TimeDelta kFirstTimeout(
-      base::TimeDelta::FromMilliseconds(500));
+  constexpr base::TimeDelta kFirstTimeout(base::Milliseconds(500));
   base::TimeTicks first_deadline = base::TimeTicks::Now() + kFirstTimeout;
 
-  constexpr base::TimeDelta kSecondTimeout(
-      base::TimeDelta::FromMilliseconds(250));
+  constexpr base::TimeDelta kSecondTimeout(base::Milliseconds(250));
   base::TimeTicks second_deadline = base::TimeTicks::Now() + kSecondTimeout;
 
   // At this point we have not set any timeouts.
@@ -687,7 +685,7 @@
 // Monitor(). Choose a low value so that that successive invocations happens
 // fast. This makes tests that wait for monitoring run fast and makes tests that
 // expect no monitoring fail fast.
-const base::TimeDelta kMonitoringPeriod = base::TimeDelta::FromMilliseconds(1);
+const base::TimeDelta kMonitoringPeriod = base::Milliseconds(1);
 
 // Test if and how often the HangWatcher periodically monitors for hangs.
 class HangWatcherPeriodicMonitoringTest : public testing::Test {
@@ -820,7 +818,7 @@
 
   // Make the HangWatcher tick clock advance so much after waiting that it will
   // detect oversleeping every time. This will keep it from monitoring.
-  InstallAfterWaitCallback(base::TimeDelta::FromMinutes(1));
+  InstallAfterWaitCallback(base::Minutes(1));
 
   hang_watcher_.Start();
 
@@ -850,7 +848,7 @@
     hang_watcher_.SetOnHangClosureForTesting(base::BindLambdaForTesting([&] {
       capture_started_.Signal();
       // Simulate capturing that takes a long time.
-      PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(500));
+      PlatformThread::Sleep(base::Milliseconds(500));
 
       continue_capture_.Wait();
       completed_capture_ = true;
@@ -859,7 +857,7 @@
     hang_watcher_.SetAfterMonitorClosureForTesting(
         base::BindLambdaForTesting([&] {
           // Simulate monitoring that takes a long time.
-          PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(500));
+          PlatformThread::Sleep(base::Milliseconds(500));
           completed_monitoring_.Signal();
         }));
 
diff --git a/base/threading/platform_thread_mac.mm b/base/threading/platform_thread_mac.mm
index 2f4c310..2da181b 100644
--- a/base/threading/platform_thread_mac.mm
+++ b/base/threading/platform_thread_mac.mm
@@ -267,12 +267,12 @@
 
   UmaHistogramCustomMicrosecondsTimes(
       "PlatformThread.Mac.AttemptedRealtimePeriod", realtime_period,
-      base::TimeDelta(), base::TimeDelta::FromMilliseconds(100), 100);
+      base::TimeDelta(), base::Milliseconds(100), 100);
 
   if (result == KERN_SUCCESS) {
     UmaHistogramCustomMicrosecondsTimes(
         "PlatformThread.Mac.SucceededRealtimePeriod", realtime_period,
-        base::TimeDelta(), base::TimeDelta::FromMilliseconds(100), 100);
+        base::TimeDelta(), base::Milliseconds(100), 100);
   }
   return;
 }
diff --git a/base/threading/platform_thread_win_unittest.cc b/base/threading/platform_thread_win_unittest.cc
index fa5f162..9e43610 100644
--- a/base/threading/platform_thread_win_unittest.cc
+++ b/base/threading/platform_thread_win_unittest.cc
@@ -70,7 +70,7 @@
   }
   internal::AssertMemoryPriority(thread_handle, MEMORY_PRIORITY_VERY_LOW);
 
-  PlatformThread::Sleep(base::TimeDelta::FromSeconds(1));
+  PlatformThread::Sleep(base::Seconds(1));
 
   // After 1 second, GetThreadPriority() and memory priority don't change (this
   // refutes the hypothesis that it simply takes time before GetThreadPriority()
diff --git a/base/threading/thread_collision_warner_unittest.cc b/base/threading/thread_collision_warner_unittest.cc
index 8391666..e3c61637 100644
--- a/base/threading/thread_collision_warner_unittest.cc
+++ b/base/threading/thread_collision_warner_unittest.cc
@@ -190,7 +190,7 @@
 
     void push(int value) {
       DFAKE_SCOPED_LOCK(push_pop_);
-      base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(5));
+      base::PlatformThread::Sleep(base::Seconds(5));
     }
 
     int pop() {
@@ -248,7 +248,7 @@
 
     void push(int value) {
       DFAKE_SCOPED_LOCK(push_pop_);
-      base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(2));
+      base::PlatformThread::Sleep(base::Seconds(2));
     }
 
     int pop() {
@@ -318,7 +318,7 @@
     void push(int) {
       DFAKE_SCOPED_RECURSIVE_LOCK(push_pop_);
       bar();
-      base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(2));
+      base::PlatformThread::Sleep(base::Seconds(2));
     }
 
     int pop() {
diff --git a/base/threading/thread_unittest.cc b/base/threading/thread_unittest.cc
index 55b79eb..a9ac358 100644
--- a/base/threading/thread_unittest.cc
+++ b/base/threading/thread_unittest.cc
@@ -59,7 +59,7 @@
   ~SleepInsideInitThread() override { Stop(); }
 
   void Init() override {
-    base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(500));
+    base::PlatformThread::Sleep(base::Milliseconds(500));
     init_called_ = true;
   }
   bool InitCalled() { return init_called_; }
@@ -211,7 +211,7 @@
 
   // Unblock the task and give a bit of extra time to unwind QuitWhenIdle().
   block_event.Signal();
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(20));
+  base::PlatformThread::Sleep(base::Milliseconds(20));
 
   // The thread should now have stopped on its own.
   EXPECT_FALSE(a->IsRunning());
@@ -231,7 +231,7 @@
     a.task_runner()->PostTask(
         FROM_HERE, base::BindOnce(static_cast<void (*)(base::TimeDelta)>(
                                       &base::PlatformThread::Sleep),
-                                  base::TimeDelta::FromMilliseconds(20)));
+                                  base::Milliseconds(20)));
     a.task_runner()->PostTask(FROM_HERE,
                               base::BindOnce(&ToggleValue, &was_invoked));
   }
@@ -257,7 +257,7 @@
 
   // Attempt to catch use-after-frees from the non-joinable thread in the
   // scope of this test if any.
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(20));
+  base::PlatformThread::Sleep(base::Milliseconds(20));
 }
 
 TEST_F(ThreadTest, StopSoon) {
@@ -385,7 +385,7 @@
   a->StopSoon();
   base::PlatformThread::YieldCurrentThread();
   last_task_event.Wait();
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(20));
+  base::PlatformThread::Sleep(base::Milliseconds(20));
 
   // This test assumes that the above was sufficient to let the thread fully
   // stop.
@@ -511,8 +511,7 @@
   // Flushing a thread with no tasks shouldn't block.
   a.FlushForTesting();
 
-  constexpr base::TimeDelta kSleepPerTestTask =
-      base::TimeDelta::FromMilliseconds(50);
+  constexpr base::TimeDelta kSleepPerTestTask = base::Milliseconds(50);
   constexpr size_t kNumSleepTasks = 5;
 
   const base::TimeTicks ticks_before_post = base::TimeTicks::Now();
diff --git a/base/time/time.h b/base/time/time.h
index 26be838..c939bb1b 100644
--- a/base/time/time.h
+++ b/base/time/time.h
@@ -638,7 +638,7 @@
   //
   //   // Deserialization:
   //   base::Time last_updated = base::Time::FromDeltaSinceWindowsEpoch(
-  //       base::TimeDelta::FromMicroseconds(LoadFromDatabase()));
+  //       base::Microseconds(LoadFromDatabase()));
   //
   // Do not use `FromInternalValue()` or `ToInternalValue()` for this purpose.
   static Time FromDeltaSinceWindowsEpoch(TimeDelta delta);
diff --git a/base/time/time_mac.mm b/base/time/time_mac.mm
index 20c6d29..4b5e092 100644
--- a/base/time/time_mac.mm
+++ b/base/time/time_mac.mm
@@ -100,10 +100,9 @@
   size_t size = sizeof(boottime);
   int kr = sysctl(mib, base::size(mib), &boottime, &size, nullptr, 0);
   DCHECK_EQ(KERN_SUCCESS, kr);
-  base::TimeDelta time_difference =
-      base::subtle::TimeNowIgnoringOverride() -
-      (base::Time::FromTimeT(boottime.tv_sec) +
-       base::TimeDelta::FromMicroseconds(boottime.tv_usec));
+  base::TimeDelta time_difference = base::subtle::TimeNowIgnoringOverride() -
+                                    (base::Time::FromTimeT(boottime.tv_sec) +
+                                     base::Microseconds(boottime.tv_usec));
   return time_difference.InMicroseconds();
 #else
   // mach_absolute_time is it when it comes to ticks on the Mac.  Other calls
diff --git a/base/time/time_unittest.cc b/base/time/time_unittest.cc
index 8380ab2..20e3b76 100644
--- a/base/time/time_unittest.cc
+++ b/base/time/time_unittest.cc
@@ -1235,7 +1235,7 @@
 TEST(TimeTicks, Deltas) {
   for (int index = 0; index < 50; index++) {
     TimeTicks ticks_start = TimeTicks::Now();
-    base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(10));
+    base::PlatformThread::Sleep(base::Milliseconds(10));
     TimeTicks ticks_stop = TimeTicks::Now();
     TimeDelta delta = ticks_stop - ticks_start;
     // Note:  Although we asked for a 10ms sleep, if the
@@ -1411,7 +1411,7 @@
     // Make sure that ThreadNow value is non-zero.
     EXPECT_GT(begin_thread, ThreadTicks());
     // Sleep for 10 milliseconds to get the thread de-scheduled.
-    base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(10));
+    base::PlatformThread::Sleep(base::Milliseconds(10));
     ThreadTicks end_thread = ThreadTicks::Now();
     TimeTicks end = TimeTicks::Now();
     TimeDelta delta = end - begin;
@@ -1426,7 +1426,7 @@
 
 TEST(TimeTicks, SnappedToNextTickBasic) {
   base::TimeTicks phase = base::TimeTicks::FromInternalValue(4000);
-  base::TimeDelta interval = base::TimeDelta::FromMicroseconds(1000);
+  base::TimeDelta interval = base::Microseconds(1000);
   base::TimeTicks timestamp;
 
   // Timestamp in previous interval.
@@ -1469,7 +1469,7 @@
   // int(big_timestamp / interval) < 0, so this causes a crash if the number of
   // intervals elapsed is attempted to be stored in an int.
   base::TimeTicks phase = base::TimeTicks::FromInternalValue(0);
-  base::TimeDelta interval = base::TimeDelta::FromMicroseconds(4000);
+  base::TimeDelta interval = base::Microseconds(4000);
   base::TimeTicks big_timestamp =
       base::TimeTicks::FromInternalValue(8635916564000);
 
diff --git a/base/timer/lap_timer_unittest.cc b/base/timer/lap_timer_unittest.cc
index a2552d9..422eb66 100644
--- a/base/timer/lap_timer_unittest.cc
+++ b/base/timer/lap_timer_unittest.cc
@@ -19,8 +19,8 @@
 
 namespace {
 
-constexpr base::TimeDelta kTimeLimit = base::TimeDelta::FromMilliseconds(15);
-constexpr base::TimeDelta kTimeAdvance = base::TimeDelta::FromMilliseconds(1);
+constexpr base::TimeDelta kTimeLimit = base::Milliseconds(15);
+constexpr base::TimeDelta kTimeAdvance = base::Milliseconds(1);
 constexpr int kWarmupRuns = 5;
 constexpr int kTimeCheckInterval = 10;
 
diff --git a/base/timer/mock_timer_unittest.cc b/base/timer/mock_timer_unittest.cc
index aa74f333..c864987 100644
--- a/base/timer/mock_timer_unittest.cc
+++ b/base/timer/mock_timer_unittest.cc
@@ -17,7 +17,7 @@
 TEST(MockTimerTest, FiresOnce) {
   int calls = 0;
   base::MockOneShotTimer timer;
-  base::TimeDelta delay = base::TimeDelta::FromSeconds(2);
+  base::TimeDelta delay = base::Seconds(2);
   timer.Start(FROM_HERE, delay,
               base::BindOnce(&CallMeMaybe, base::Unretained(&calls)));
   EXPECT_EQ(delay, timer.GetCurrentDelay());
@@ -30,7 +30,7 @@
 TEST(MockTimerTest, FiresRepeatedly) {
   int calls = 0;
   base::MockRepeatingTimer timer;
-  base::TimeDelta delay = base::TimeDelta::FromSeconds(2);
+  base::TimeDelta delay = base::Seconds(2);
   timer.Start(FROM_HERE, delay,
               base::BindRepeating(&CallMeMaybe, base::Unretained(&calls)));
   timer.Fire();
@@ -44,7 +44,7 @@
 TEST(MockTimerTest, Stops) {
   int calls = 0;
   base::MockRepeatingTimer timer;
-  base::TimeDelta delay = base::TimeDelta::FromSeconds(2);
+  base::TimeDelta delay = base::Seconds(2);
   timer.Start(FROM_HERE, delay,
               base::BindRepeating(&CallMeMaybe, base::Unretained(&calls)));
   EXPECT_TRUE(timer.IsRunning());
@@ -66,7 +66,7 @@
   HasWeakPtr *has_weak_ptr = new HasWeakPtr();
   base::WeakPtr<HasWeakPtr> weak_ptr(has_weak_ptr->AsWeakPtr());
   base::MockOneShotTimer timer;
-  base::TimeDelta delay = base::TimeDelta::FromSeconds(2);
+  base::TimeDelta delay = base::Seconds(2);
   ASSERT_TRUE(weak_ptr.get());
   timer.Start(FROM_HERE, delay,
               base::BindOnce([](HasWeakPtr*) {}, base::Owned(has_weak_ptr)));
diff --git a/base/timer/wall_clock_timer_unittest.cc b/base/timer/wall_clock_timer_unittest.cc
index f399d010..c69d27e 100644
--- a/base/timer/wall_clock_timer_unittest.cc
+++ b/base/timer/wall_clock_timer_unittest.cc
@@ -48,7 +48,7 @@
   // Set up a WallClockTimer that will fire in one minute.
   WallClockTimer wall_clock_timer(&clock_,
                                   task_environment_.GetMockTickClock());
-  constexpr auto delay = base::TimeDelta::FromMinutes(1);
+  constexpr auto delay = base::Minutes(1);
   const auto start_time = base::Time::Now();
   const auto run_time = start_time + delay;
   clock_.SetNow(start_time);
@@ -56,7 +56,7 @@
   EXPECT_EQ(wall_clock_timer.desired_run_time(), start_time + delay);
 
   // Pretend that time jumps forward 30 seconds while the machine is suspended.
-  constexpr auto past_time = base::TimeDelta::FromSeconds(30);
+  constexpr auto past_time = base::Seconds(30);
   FastForwardBy(past_time, /*with_power=*/false);
   // Ensure that the timer has not yet fired.
   ::testing::Mock::VerifyAndClearExpectations(&callback);
@@ -81,7 +81,7 @@
   // Once it's done, it will invoke |second_callback| after the other minute.
   WallClockTimer wall_clock_timer(&clock_,
                                   task_environment_.GetMockTickClock());
-  constexpr auto delay = base::TimeDelta::FromMinutes(1);
+  constexpr auto delay = base::Minutes(1);
   wall_clock_timer.Start(FROM_HERE, clock_.Now() + delay, first_callback.Get());
   EXPECT_CALL(first_callback, Run())
       .WillOnce(::testing::InvokeWithoutArgs(
@@ -96,7 +96,7 @@
 
   // When the |wall_clock_time| is used for the second time, it can still handle
   // power suspension properly.
-  constexpr auto past_time = base::TimeDelta::FromSeconds(30);
+  constexpr auto past_time = base::Seconds(30);
   FastForwardBy(past_time, /*with_power=*/false);
   ::testing::Mock::VerifyAndClearExpectations(&second_callback);
 
@@ -112,11 +112,11 @@
   // Set up a WallClockTimer.
   WallClockTimer wall_clock_timer(&clock_,
                                   task_environment_.GetMockTickClock());
-  constexpr auto delay = base::TimeDelta::FromMinutes(1);
+  constexpr auto delay = base::Minutes(1);
   wall_clock_timer.Start(FROM_HERE, clock_.Now() + delay, callback.Get());
 
   // After 20 seconds, timer is stopped.
-  constexpr auto past_time = base::TimeDelta::FromSeconds(20);
+  constexpr auto past_time = base::Seconds(20);
   FastForwardBy(past_time);
   EXPECT_TRUE(wall_clock_timer.IsRunning());
   wall_clock_timer.Stop();
@@ -134,7 +134,7 @@
 TEST_F(WallClockTimerTest, RestartRunningTimer) {
   ::testing::StrictMock<base::MockOnceClosure> first_callback;
   ::testing::StrictMock<base::MockOnceClosure> second_callback;
-  constexpr auto delay = base::TimeDelta::FromMinutes(1);
+  constexpr auto delay = base::Minutes(1);
 
   // Set up a WallClockTimer that will invoke |first_callback| in one minute.
   clock_.SetNow(base::Time::Now());
@@ -168,7 +168,7 @@
   // Set up a WallClockTimer.
   WallClockTimer wall_clock_timer(&clock_,
                                   task_environment_.GetMockTickClock());
-  constexpr auto delay = base::TimeDelta::FromMinutes(1);
+  constexpr auto delay = base::Minutes(1);
   wall_clock_timer.Start(FROM_HERE, clock_.Now() + delay, callback.Get());
 
   // After 15 seconds, timer is stopped.
@@ -197,7 +197,7 @@
   // Set up a WallClockTimer that will fire in one minute.
   WallClockTimer wall_clock_timer(&clock_,
                                   task_environment_.GetMockTickClock());
-  constexpr auto delay = base::TimeDelta::FromMinutes(1);
+  constexpr auto delay = base::Minutes(1);
   const auto start_time = base::Time::Now();
   const auto run_time = start_time + delay;
   clock_.SetNow(start_time);
@@ -205,7 +205,7 @@
   EXPECT_EQ(wall_clock_timer.desired_run_time(), start_time + delay);
 
   // Pretend that time jumps forward 30 seconds while the machine is suspended.
-  constexpr auto past_time = base::TimeDelta::FromSeconds(30);
+  constexpr auto past_time = base::Seconds(30);
 
   // Fastword with both clocks even the power is suspended.
   fake_power_monitor_source_.Suspend();
@@ -231,7 +231,7 @@
   // Set up a WallClockTimer that will fire in one minute.
   WallClockTimer wall_clock_timer(&clock_,
                                   task_environment_.GetMockTickClock());
-  constexpr auto delay = base::TimeDelta::FromMinutes(1);
+  constexpr auto delay = base::Minutes(1);
   const auto start_time = base::Time::Now();
   const auto run_time = start_time + delay;
   clock_.SetNow(start_time);
@@ -239,7 +239,7 @@
   EXPECT_EQ(wall_clock_timer.desired_run_time(), start_time + delay);
 
   // Pretend that time jumps forward 60 seconds while the machine is suspended.
-  constexpr auto past_time = base::TimeDelta::FromSeconds(60);
+  constexpr auto past_time = base::Seconds(60);
 
   // Fastword with both clocks even the power is suspended. Timer fires at the
   // moment of power resume.
diff --git a/base/trace_event/cpufreq_monitor_android.cc b/base/trace_event/cpufreq_monitor_android.cc
index da7c704..8fff79f 100644
--- a/base/trace_event/cpufreq_monitor_android.cc
+++ b/base/trace_event/cpufreq_monitor_android.cc
@@ -211,7 +211,7 @@
       FROM_HERE,
       base::BindOnce(&CPUFreqMonitor::Sample, weak_ptr_factory_.GetWeakPtr(),
                      std::move(fds)),
-      base::TimeDelta::FromMilliseconds(kDefaultCPUFreqSampleIntervalMs));
+      base::Milliseconds(kDefaultCPUFreqSampleIntervalMs));
 }
 
 bool CPUFreqMonitor::IsEnabledForTesting() {
diff --git a/base/trace_event/traced_value_support_unittest.cc b/base/trace_event/traced_value_support_unittest.cc
index 3eb19de..794149c 100644
--- a/base/trace_event/traced_value_support_unittest.cc
+++ b/base/trace_event/traced_value_support_unittest.cc
@@ -72,15 +72,13 @@
 }
 
 TEST(TracedValueSupportTest, Time) {
+  EXPECT_EQ(perfetto::TracedValueToString(base::Microseconds(42)), "42");
   EXPECT_EQ(
-      perfetto::TracedValueToString(base::TimeDelta::FromMicroseconds(42)),
+      perfetto::TracedValueToString(base::Time() + base::Microseconds(42)),
       "42");
-  EXPECT_EQ(perfetto::TracedValueToString(
-                base::Time() + base::TimeDelta::FromMicroseconds(42)),
-            "42");
-  EXPECT_EQ(perfetto::TracedValueToString(
-                base::TimeTicks() + base::TimeDelta::FromMicroseconds(42)),
-            "42");
+  EXPECT_EQ(
+      perfetto::TracedValueToString(base::TimeTicks() + base::Microseconds(42)),
+      "42");
 }
 
 TEST(TracedValueSupportTest, UnguessableToken) {
diff --git a/base/tracing/perfetto_task_runner.cc b/base/tracing/perfetto_task_runner.cc
index 36e167b..f2f17b6a 100644
--- a/base/tracing/perfetto_task_runner.cc
+++ b/base/tracing/perfetto_task_runner.cc
@@ -59,7 +59,7 @@
             task();
           },
           task),
-      base::TimeDelta::FromMilliseconds(delay_ms));
+      base::Milliseconds(delay_ms));
 }
 
 bool PerfettoTaskRunner::RunsTasksOnCurrentThread() const {
diff --git a/cc/animation/animation_host_unittest.cc b/cc/animation/animation_host_unittest.cc
index ce6d106..c0a7bbe4 100644
--- a/cc/animation/animation_host_unittest.cc
+++ b/cc/animation/animation_host_unittest.cc
@@ -135,14 +135,14 @@
 
   base::TimeTicks time;
 
-  time += base::TimeDelta::FromSecondsD(0.1);
+  time += base::Seconds(0.1);
   EXPECT_TRUE(host_impl_->ImplOnlyScrollAnimationUpdateTarget(
       scroll_delta, max_scroll_offset, time, base::TimeDelta()));
 
   // Detach all animations from layers and timelines.
   host_impl_->ClearMutators();
 
-  time += base::TimeDelta::FromSecondsD(0.1);
+  time += base::Seconds(0.1);
   EXPECT_FALSE(host_impl_->ImplOnlyScrollAnimationUpdateTarget(
       scroll_delta, max_scroll_offset, time, base::TimeDelta()));
 }
@@ -161,7 +161,7 @@
   AddOpacityTransitionToAnimation(worklet_animation_.get(), duration,
                                   start_opacity, end_opacity, true);
 
-  base::TimeDelta local_time = base::TimeDelta::FromSecondsD(duration / 2);
+  base::TimeDelta local_time = base::Seconds(duration / 2);
 
   MockLayerTreeMutator* mock_mutator = new NiceMock<MockLayerTreeMutator>();
   host_impl_->SetLayerTreeMutator(
@@ -212,7 +212,7 @@
   EXPECT_CALL(*mock_mutator, MutateRef(_));
 
   base::TimeTicks time;
-  time += base::TimeDelta::FromSecondsD(0.1);
+  time += base::Seconds(0.1);
   TickAnimationsTransferEvents(time, 0u);
 }
 
@@ -237,7 +237,7 @@
   EXPECT_CALL(*mock_mutator, MutateRef(_)).Times(1);
 
   base::TimeTicks time;
-  time += base::TimeDelta::FromSecondsD(0.1);
+  time += base::Seconds(0.1);
   TickAnimationsTransferEvents(time, 0u);
 
   // The time has not changed which means worklet animation input is the same.
diff --git a/cc/animation/animation_unittest.cc b/cc/animation/animation_unittest.cc
index 2fc379f..4f7d5dc 100644
--- a/cc/animation/animation_unittest.cc
+++ b/cc/animation/animation_unittest.cc
@@ -184,11 +184,11 @@
   host_impl_->ActivateAnimations(nullptr);
 
   base::TimeTicks time;
-  time += base::TimeDelta::FromSecondsD(0.1);
+  time += base::Seconds(0.1);
   TickAnimationsTransferEvents(time, 4u);
   CheckKeyframeEffectTimelineNeedsPushProperties(false);
 
-  time += base::TimeDelta::FromSecondsD(duration);
+  time += base::Seconds(duration);
   TickAnimationsTransferEvents(time, 4u);
   CheckKeyframeEffectTimelineNeedsPushProperties(true);
 
@@ -271,7 +271,7 @@
   EXPECT_FALSE(delegate2.finished());
 
   base::TimeTicks time;
-  time += base::TimeDelta::FromSecondsD(0.1);
+  time += base::Seconds(0.1);
   TickAnimationsTransferEvents(time, 2u);
 
   EXPECT_TRUE(delegate1.started());
@@ -283,7 +283,7 @@
   EXPECT_FALSE(animation1->keyframe_effect()->needs_push_properties());
   EXPECT_FALSE(animation2->keyframe_effect()->needs_push_properties());
 
-  time += base::TimeDelta::FromSecondsD(duration);
+  time += base::Seconds(duration);
   TickAnimationsTransferEvents(time, 2u);
 
   EXPECT_TRUE(delegate1.finished());
@@ -358,10 +358,10 @@
   host_impl_->ActivateAnimations(nullptr);
 
   base::TimeTicks time;
-  time += base::TimeDelta::FromSecondsD(0.1);
+  time += base::Seconds(0.1);
   TickAnimationsTransferEvents(time, 1u);
 
-  time += base::TimeDelta::FromSecondsD(duration);
+  time += base::Seconds(duration);
   TickAnimationsTransferEvents(time, 1u);
 
   client_.ExpectOpacityPropertyMutated(element_id_, ElementListType::ACTIVE,
@@ -392,8 +392,7 @@
   EXPECT_TRUE(client_.mutators_need_commit());
   client_.set_mutators_need_commit(false);
 
-  animation_->PauseKeyframeModel(keyframe_model_id,
-                                 base::TimeDelta::FromSeconds(1));
+  animation_->PauseKeyframeModel(keyframe_model_id, base::Seconds(1));
   EXPECT_TRUE(client_.mutators_need_commit());
   client_.set_mutators_need_commit(false);
 
diff --git a/cc/animation/element_animations_unittest.cc b/cc/animation/element_animations_unittest.cc
index e151dc3..ad7437e2 100644
--- a/cc/animation/element_animations_unittest.cc
+++ b/cc/animation/element_animations_unittest.cc
@@ -30,7 +30,7 @@
 using base::TimeTicks;
 
 static base::TimeTicks TicksFromSecondsF(double seconds) {
-  return base::TimeTicks() + base::TimeDelta::FromSecondsD(seconds);
+  return base::TimeTicks() + base::Seconds(seconds);
 }
 
 // An ElementAnimations cannot be ticked at 0.0, since an animation
@@ -606,8 +606,7 @@
 
   // Pause the animation at the middle of the second range so the offset
   // delays animation until the middle of the third range.
-  animation_->PauseKeyframeModel(keyframe_model_id,
-                                 base::TimeDelta::FromMilliseconds(1500));
+  animation_->PauseKeyframeModel(keyframe_model_id, base::Milliseconds(1500));
   EXPECT_EQ(KeyframeModel::PAUSED, animation_->keyframe_effect()
                                        ->GetKeyframeModelById(keyframe_model_id)
                                        ->run_state());
@@ -809,8 +808,8 @@
       FilterKeyframe::Create(base::TimeDelta(), start_filters, nullptr));
   FilterOperations end_filters;
   end_filters.Append(FilterOperation::CreateBrightnessFilter(2.f));
-  curve->AddKeyframe(FilterKeyframe::Create(base::TimeDelta::FromSecondsD(1.0),
-                                            end_filters, nullptr));
+  curve->AddKeyframe(
+      FilterKeyframe::Create(base::Seconds(1.0), end_filters, nullptr));
 
   std::unique_ptr<KeyframeModel> keyframe_model(KeyframeModel::Create(
       std::move(curve), 1, 0,
@@ -852,8 +851,8 @@
       FilterKeyframe::Create(base::TimeDelta(), start_filters, nullptr));
   FilterOperations end_filters;
   end_filters.Append(FilterOperation::CreateInvertFilter(1.f));
-  curve->AddKeyframe(FilterKeyframe::Create(base::TimeDelta::FromSecondsD(1.0),
-                                            end_filters, nullptr));
+  curve->AddKeyframe(
+      FilterKeyframe::Create(base::Seconds(1.0), end_filters, nullptr));
 
   std::unique_ptr<KeyframeModel> keyframe_model(KeyframeModel::Create(
       std::move(curve), 1, 0,
@@ -2266,8 +2265,8 @@
   curve1->AddKeyframe(
       gfx::TransformKeyframe::Create(base::TimeDelta(), operations1, nullptr));
   operations1.AppendTranslate(10.0, 15.0, 0.0);
-  curve1->AddKeyframe(gfx::TransformKeyframe::Create(
-      base::TimeDelta::FromSecondsD(1.0), operations1, nullptr));
+  curve1->AddKeyframe(
+      gfx::TransformKeyframe::Create(base::Seconds(1.0), operations1, nullptr));
 
   std::unique_ptr<KeyframeModel> keyframe_model(KeyframeModel::Create(
       std::move(curve1), 2, 2,
@@ -2295,8 +2294,8 @@
   curve1->AddKeyframe(
       gfx::TransformKeyframe::Create(base::TimeDelta(), operations1, nullptr));
   operations1.AppendTranslate(10.0, 15.0, 0.0);
-  curve1->AddKeyframe(gfx::TransformKeyframe::Create(
-      base::TimeDelta::FromSecondsD(1.0), operations1, nullptr));
+  curve1->AddKeyframe(
+      gfx::TransformKeyframe::Create(base::Seconds(1.0), operations1, nullptr));
 
   std::unique_ptr<KeyframeModel> keyframe_model(KeyframeModel::Create(
       std::move(curve1), 2, 2,
@@ -2324,8 +2323,8 @@
   curve1->AddKeyframe(
       gfx::TransformKeyframe::Create(base::TimeDelta(), operations1, nullptr));
   operations1.AppendPerspective(100);
-  curve1->AddKeyframe(gfx::TransformKeyframe::Create(
-      base::TimeDelta::FromSecondsD(1.0), operations1, nullptr));
+  curve1->AddKeyframe(
+      gfx::TransformKeyframe::Create(base::Seconds(1.0), operations1, nullptr));
 
   std::unique_ptr<KeyframeModel> keyframe_model(KeyframeModel::Create(
       std::move(curve1), 2, 2,
@@ -2354,8 +2353,8 @@
       gfx::TransformKeyframe::Create(base::TimeDelta(), operations1a, nullptr));
   gfx::TransformOperations operations1b;
   operations1b.AppendScale(5.0, 4.0, 3.0);
-  curve1->AddKeyframe(gfx::TransformKeyframe::Create(
-      base::TimeDelta::FromSecondsD(1.0), operations1b, nullptr));
+  curve1->AddKeyframe(gfx::TransformKeyframe::Create(base::Seconds(1.0),
+                                                     operations1b, nullptr));
   std::unique_ptr<KeyframeModel> keyframe_model(KeyframeModel::Create(
       std::move(curve1), 1, 1,
       KeyframeModel::TargetPropertyId(TargetProperty::TRANSFORM)));
@@ -2382,8 +2381,8 @@
       gfx::TransformKeyframe::Create(base::TimeDelta(), operations2a, nullptr));
   gfx::TransformOperations operations2b;
   operations2b.AppendScale(6.0, 5.0, 4.0);
-  curve2->AddKeyframe(gfx::TransformKeyframe::Create(
-      base::TimeDelta::FromSecondsD(1.0), operations2b, nullptr));
+  curve2->AddKeyframe(gfx::TransformKeyframe::Create(base::Seconds(1.0),
+                                                     operations2b, nullptr));
 
   animation_impl_->RemoveKeyframeModel(1);
   keyframe_model = KeyframeModel::Create(
@@ -2404,8 +2403,8 @@
       gfx::TransformKeyframe::Create(base::TimeDelta(), operations3a, nullptr));
   gfx::TransformOperations operations3b;
   operations3b.AppendScale(1.5, 2.5, 3.5);
-  curve3->AddKeyframe(gfx::TransformKeyframe::Create(
-      base::TimeDelta::FromSecondsD(1.0), operations3b, nullptr));
+  curve3->AddKeyframe(gfx::TransformKeyframe::Create(base::Seconds(1.0),
+                                                     operations3b, nullptr));
 
   keyframe_model = KeyframeModel::Create(
       std::move(curve3), 3, 3,
@@ -2447,8 +2446,8 @@
       gfx::TransformKeyframe::Create(base::TimeDelta(), operations1, nullptr));
   gfx::TransformOperations operations2;
   operations2.AppendScale(4.0, 5.0, 6.0);
-  curve1->AddKeyframe(gfx::TransformKeyframe::Create(
-      base::TimeDelta::FromSecondsD(1.0), operations2, nullptr));
+  curve1->AddKeyframe(
+      gfx::TransformKeyframe::Create(base::Seconds(1.0), operations2, nullptr));
 
   std::unique_ptr<KeyframeModel> keyframe_model_owned(KeyframeModel::Create(
       std::move(curve1), 1, 1,
@@ -2748,7 +2747,7 @@
       AddAnimatedTransformToAnimation(animation_.get(), 10.0, 2, 1);
   animation_->keyframe_effect()
       ->GetKeyframeModelById(animation2_id)
-      ->set_time_offset(base::TimeDelta::FromMilliseconds(-10000));
+      ->set_time_offset(base::Milliseconds(-10000));
   animation_->keyframe_effect()
       ->GetKeyframeModelById(animation2_id)
       ->set_fill_mode(KeyframeModel::FillMode::NONE);
@@ -2860,7 +2859,7 @@
       AddAnimatedTransformToAnimation(animation_.get(), 1.0, 1, 6);
   animation_->keyframe_effect()
       ->GetKeyframeModelById(keyframe_model_id)
-      ->set_time_offset(base::TimeDelta::FromMilliseconds(-10000));
+      ->set_time_offset(base::Milliseconds(-10000));
   animation_->keyframe_effect()
       ->GetKeyframeModelById(keyframe_model_id)
       ->set_fill_mode(KeyframeModel::FillMode::NONE);
@@ -3075,7 +3074,7 @@
       animation_.get(), 1.0, 0.f, 0.5f, false /*use_timing_function*/);
   animation_->keyframe_effect()
       ->GetKeyframeModelById(keyframe_model_id)
-      ->set_time_offset(base::TimeDelta::FromMilliseconds(-10000));
+      ->set_time_offset(base::Milliseconds(-10000));
   animation_->keyframe_effect()
       ->GetKeyframeModelById(keyframe_model_id)
       ->set_fill_mode(KeyframeModel::FillMode::NONE);
@@ -3289,7 +3288,7 @@
       AddAnimatedFilterToAnimation(animation_.get(), 1.0, 0.f, 0.5f);
   animation_->keyframe_effect()
       ->GetKeyframeModelById(keyframe_model_id)
-      ->set_time_offset(base::TimeDelta::FromMilliseconds(-10000));
+      ->set_time_offset(base::Milliseconds(-10000));
   animation_->keyframe_effect()
       ->GetKeyframeModelById(keyframe_model_id)
       ->set_fill_mode(KeyframeModel::FillMode::NONE);
@@ -3504,7 +3503,7 @@
       AddAnimatedBackdropFilterToAnimation(animation_.get(), 1.0, 0.f, 0.5f);
   animation_->keyframe_effect()
       ->GetKeyframeModelById(keyframe_model_id)
-      ->set_time_offset(base::TimeDelta::FromMilliseconds(-10000));
+      ->set_time_offset(base::Milliseconds(-10000));
   animation_->keyframe_effect()
       ->GetKeyframeModelById(keyframe_model_id)
       ->set_fill_mode(KeyframeModel::FillMode::NONE);
diff --git a/cc/animation/filter_animation_curve_unittest.cc b/cc/animation/filter_animation_curve_unittest.cc
index 81ef211..2de900a6 100644
--- a/cc/animation/filter_animation_curve_unittest.cc
+++ b/cc/animation/filter_animation_curve_unittest.cc
@@ -32,11 +32,11 @@
   curve->AddKeyframe(
       FilterKeyframe::Create(base::TimeDelta(), operations, nullptr));
 
-  ExpectBrightness(2.f, curve->GetValue(base::TimeDelta::FromSecondsD(-1.f)));
-  ExpectBrightness(2.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.f)));
-  ExpectBrightness(2.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.5f)));
-  ExpectBrightness(2.f, curve->GetValue(base::TimeDelta::FromSecondsD(1.f)));
-  ExpectBrightness(2.f, curve->GetValue(base::TimeDelta::FromSecondsD(2.f)));
+  ExpectBrightness(2.f, curve->GetValue(base::Seconds(-1.f)));
+  ExpectBrightness(2.f, curve->GetValue(base::Seconds(0.f)));
+  ExpectBrightness(2.f, curve->GetValue(base::Seconds(0.5f)));
+  ExpectBrightness(2.f, curve->GetValue(base::Seconds(1.f)));
+  ExpectBrightness(2.f, curve->GetValue(base::Seconds(2.f)));
 }
 
 // Tests that a filter animation with two keyframes works as expected.
@@ -50,13 +50,13 @@
 
   curve->AddKeyframe(
       FilterKeyframe::Create(base::TimeDelta(), operations1, nullptr));
-  curve->AddKeyframe(FilterKeyframe::Create(base::TimeDelta::FromSecondsD(1.f),
-                                            operations2, nullptr));
-  ExpectBrightness(2.f, curve->GetValue(base::TimeDelta::FromSecondsD(-1.f)));
-  ExpectBrightness(2.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.f)));
-  ExpectBrightness(3.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.5f)));
-  ExpectBrightness(4.f, curve->GetValue(base::TimeDelta::FromSecondsD(1.f)));
-  ExpectBrightness(4.f, curve->GetValue(base::TimeDelta::FromSecondsD(2.f)));
+  curve->AddKeyframe(
+      FilterKeyframe::Create(base::Seconds(1.f), operations2, nullptr));
+  ExpectBrightness(2.f, curve->GetValue(base::Seconds(-1.f)));
+  ExpectBrightness(2.f, curve->GetValue(base::Seconds(0.f)));
+  ExpectBrightness(3.f, curve->GetValue(base::Seconds(0.5f)));
+  ExpectBrightness(4.f, curve->GetValue(base::Seconds(1.f)));
+  ExpectBrightness(4.f, curve->GetValue(base::Seconds(2.f)));
 }
 
 // Tests that a filter animation with three keyframes works as expected.
@@ -71,17 +71,17 @@
   operations3.Append(FilterOperation::CreateBrightnessFilter(8.f));
   curve->AddKeyframe(
       FilterKeyframe::Create(base::TimeDelta(), operations1, nullptr));
-  curve->AddKeyframe(FilterKeyframe::Create(base::TimeDelta::FromSecondsD(1.f),
-                                            operations2, nullptr));
-  curve->AddKeyframe(FilterKeyframe::Create(base::TimeDelta::FromSecondsD(2.f),
-                                            operations3, nullptr));
-  ExpectBrightness(2.f, curve->GetValue(base::TimeDelta::FromSecondsD(-1.f)));
-  ExpectBrightness(2.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.f)));
-  ExpectBrightness(3.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.5f)));
-  ExpectBrightness(4.f, curve->GetValue(base::TimeDelta::FromSecondsD(1.f)));
-  ExpectBrightness(6.f, curve->GetValue(base::TimeDelta::FromSecondsD(1.5f)));
-  ExpectBrightness(8.f, curve->GetValue(base::TimeDelta::FromSecondsD(2.f)));
-  ExpectBrightness(8.f, curve->GetValue(base::TimeDelta::FromSecondsD(3.f)));
+  curve->AddKeyframe(
+      FilterKeyframe::Create(base::Seconds(1.f), operations2, nullptr));
+  curve->AddKeyframe(
+      FilterKeyframe::Create(base::Seconds(2.f), operations3, nullptr));
+  ExpectBrightness(2.f, curve->GetValue(base::Seconds(-1.f)));
+  ExpectBrightness(2.f, curve->GetValue(base::Seconds(0.f)));
+  ExpectBrightness(3.f, curve->GetValue(base::Seconds(0.5f)));
+  ExpectBrightness(4.f, curve->GetValue(base::Seconds(1.f)));
+  ExpectBrightness(6.f, curve->GetValue(base::Seconds(1.5f)));
+  ExpectBrightness(8.f, curve->GetValue(base::Seconds(2.f)));
+  ExpectBrightness(8.f, curve->GetValue(base::Seconds(3.f)));
 }
 
 // Tests that a filter animation with multiple keys at a given time works
@@ -100,27 +100,27 @@
   operations4.Append(FilterOperation::CreateBrightnessFilter(6.f));
   curve->AddKeyframe(
       FilterKeyframe::Create(base::TimeDelta(), operations1, nullptr));
-  curve->AddKeyframe(FilterKeyframe::Create(base::TimeDelta::FromSecondsD(1.f),
-                                            operations2, nullptr));
-  curve->AddKeyframe(FilterKeyframe::Create(base::TimeDelta::FromSecondsD(1.f),
-                                            operations3, nullptr));
-  curve->AddKeyframe(FilterKeyframe::Create(base::TimeDelta::FromSecondsD(2.f),
-                                            operations4, nullptr));
+  curve->AddKeyframe(
+      FilterKeyframe::Create(base::Seconds(1.f), operations2, nullptr));
+  curve->AddKeyframe(
+      FilterKeyframe::Create(base::Seconds(1.f), operations3, nullptr));
+  curve->AddKeyframe(
+      FilterKeyframe::Create(base::Seconds(2.f), operations4, nullptr));
 
-  ExpectBrightness(4.f, curve->GetValue(base::TimeDelta::FromSecondsD(-1.f)));
-  ExpectBrightness(4.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.f)));
-  ExpectBrightness(4.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.5f)));
+  ExpectBrightness(4.f, curve->GetValue(base::Seconds(-1.f)));
+  ExpectBrightness(4.f, curve->GetValue(base::Seconds(0.f)));
+  ExpectBrightness(4.f, curve->GetValue(base::Seconds(0.5f)));
 
   // There is a discontinuity at 1. Any value between 4 and 6 is valid.
-  FilterOperations value = curve->GetValue(base::TimeDelta::FromSecondsD(1.f));
+  FilterOperations value = curve->GetValue(base::Seconds(1.f));
   EXPECT_EQ(1u, value.size());
   EXPECT_EQ(FilterOperation::BRIGHTNESS, value.at(0).type());
   EXPECT_GE(value.at(0).amount(), 4);
   EXPECT_LE(value.at(0).amount(), 6);
 
-  ExpectBrightness(6.f, curve->GetValue(base::TimeDelta::FromSecondsD(1.5f)));
-  ExpectBrightness(6.f, curve->GetValue(base::TimeDelta::FromSecondsD(2.f)));
-  ExpectBrightness(6.f, curve->GetValue(base::TimeDelta::FromSecondsD(3.f)));
+  ExpectBrightness(6.f, curve->GetValue(base::Seconds(1.5f)));
+  ExpectBrightness(6.f, curve->GetValue(base::Seconds(2.f)));
+  ExpectBrightness(6.f, curve->GetValue(base::Seconds(3.f)));
 }
 
 }  // namespace
diff --git a/cc/animation/keyframe_model_unittest.cc b/cc/animation/keyframe_model_unittest.cc
index c4003ed..7281f06 100644
--- a/cc/animation/keyframe_model_unittest.cc
+++ b/cc/animation/keyframe_model_unittest.cc
@@ -18,7 +18,7 @@
 using base::TimeDelta;
 
 static base::TimeTicks TicksFromSecondsF(double seconds) {
-  return base::TimeTicks() + base::TimeDelta::FromSecondsD(seconds);
+  return base::TimeTicks() + base::Seconds(seconds);
 }
 
 std::unique_ptr<KeyframeModel> CreateKeyframeModel(double iterations,
@@ -448,7 +448,7 @@
   std::unique_ptr<KeyframeModel> keyframe_model(CreateKeyframeModel(1));
   keyframe_model->set_fill_mode(KeyframeModel::FillMode::NONE);
 
-  keyframe_model->Pause(base::TimeDelta::FromSecondsD(0.5));
+  keyframe_model->Pause(base::Seconds(0.5));
   // When paused, the time returned is always the pause time
   EXPECT_EQ(0.5,
             keyframe_model->TrimTimeToCurrentIteration(TicksFromSecondsF(-1))
@@ -466,13 +466,13 @@
   keyframe_model->set_fill_mode(KeyframeModel::FillMode::NONE);
   // Pause time is in local time so delay should apply on top of it.
   keyframe_model->set_time_offset(TimeDelta::FromSecondsD(-0.2));
-  keyframe_model->Pause(base::TimeDelta::FromSecondsD(0.5));
+  keyframe_model->Pause(base::Seconds(0.5));
   EXPECT_EQ(0.3,
             keyframe_model->TrimTimeToCurrentIteration(TicksFromSecondsF(0.1))
                 .InSecondsF());
 
   keyframe_model->set_time_offset(TimeDelta::FromSecondsD(0.2));
-  keyframe_model->Pause(base::TimeDelta::FromSecondsD(0.5));
+  keyframe_model->Pause(base::Seconds(0.5));
   EXPECT_EQ(0.7,
             keyframe_model->TrimTimeToCurrentIteration(TicksFromSecondsF(0.1))
                 .InSecondsF());
@@ -483,13 +483,13 @@
   keyframe_model->set_fill_mode(KeyframeModel::FillMode::NONE);
   // Pause time is in local time so start time should not affect it.
   keyframe_model->set_start_time(TicksFromSecondsF(0.2));
-  keyframe_model->Pause(base::TimeDelta::FromSecondsD(0.5));
+  keyframe_model->Pause(base::Seconds(0.5));
   EXPECT_EQ(0.5,
             keyframe_model->TrimTimeToCurrentIteration(TicksFromSecondsF(0.1))
                 .InSecondsF());
 
   keyframe_model->set_start_time(TicksFromSecondsF(0.4));
-  keyframe_model->Pause(base::TimeDelta::FromSecondsD(0.5));
+  keyframe_model->Pause(base::Seconds(0.5));
   EXPECT_EQ(0.5,
             keyframe_model->TrimTimeToCurrentIteration(TicksFromSecondsF(0.1))
                 .InSecondsF());
@@ -504,7 +504,7 @@
   EXPECT_EQ(0.4,
             keyframe_model->TrimTimeToCurrentIteration(TicksFromSecondsF(0.4))
                 .InSecondsF());
-  keyframe_model->Pause(base::TimeDelta::FromSecondsD(0.5));
+  keyframe_model->Pause(base::Seconds(0.5));
   EXPECT_EQ(
       0.5, keyframe_model->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0))
                .InSecondsF());
@@ -516,7 +516,7 @@
   EXPECT_EQ(
       1, keyframe_model->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.5))
              .InSecondsF());
-  keyframe_model->Pause(base::TimeDelta::FromSecondsD(0.6));
+  keyframe_model->Pause(base::Seconds(0.6));
   EXPECT_EQ(
       0.6, keyframe_model->TrimTimeToCurrentIteration(TicksFromSecondsF(2000.0))
                .InSecondsF());
@@ -537,7 +537,7 @@
   EXPECT_EQ(0.5,
             keyframe_model->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
                 .InSecondsF());
-  keyframe_model->Pause(base::TimeDelta::FromSecondsD(0.25));
+  keyframe_model->Pause(base::Seconds(0.25));
   EXPECT_EQ(0.75, keyframe_model
                       ->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0))
                       .InSecondsF());
diff --git a/cc/animation/scroll_offset_animation_curve.cc b/cc/animation/scroll_offset_animation_curve.cc
index 0ba2a8d..8eb523e 100644
--- a/cc/animation/scroll_offset_animation_curve.cc
+++ b/cc/animation/scroll_offset_animation_curve.cc
@@ -123,8 +123,7 @@
   double bound = (new_delta_max_dimension / velocity) * 2.5f;
 
   // If bound < 0 we are moving in the opposite direction.
-  return bound < 0 ? base::TimeDelta::Max()
-                   : base::TimeDelta::FromSecondsD(bound);
+  return bound < 0 ? base::TimeDelta::Max() : base::Seconds(bound);
 }
 
 }  // namespace
@@ -203,7 +202,7 @@
   }
 
   base::TimeDelta delay_adjusted_duration =
-      base::TimeDelta::FromSecondsD(duration) - delayed_by;
+      base::Seconds(duration) - delayed_by;
   return (delay_adjusted_duration >= base::TimeDelta())
              ? delay_adjusted_duration
              : base::TimeDelta();
@@ -251,7 +250,7 @@
           ? animation_duration_for_testing_.value()
           : std::abs(MaximumDimension(delta) / velocity);
   base::TimeDelta delay_adjusted_duration =
-      base::TimeDelta::FromSecondsD(duration_in_seconds) - delayed_by;
+      base::Seconds(duration_in_seconds) - delayed_by;
   return (delay_adjusted_duration >= base::TimeDelta())
              ? delay_adjusted_duration
              : base::TimeDelta();
@@ -263,14 +262,13 @@
     base::TimeDelta delayed_by) {
   base::TimeDelta duration;
   if (animation_duration_for_testing_.has_value()) {
-    duration =
-        base::TimeDelta::FromSecondsD(animation_duration_for_testing_.value());
+    duration = base::Seconds(animation_duration_for_testing_.value());
   } else {
     double duration_in_milliseconds =
         kImpulseMillisecondsPerPixel * std::abs(MaximumDimension(delta));
     duration_in_milliseconds = base::clamp(
         duration_in_milliseconds, kImpulseMinDurationMs, kImpulseMaxDurationMs);
-    duration = base::TimeDelta::FromMillisecondsD(duration_in_milliseconds);
+    duration = base::Milliseconds(duration_in_milliseconds);
   }
 
   duration -= delayed_by;
diff --git a/cc/animation/scroll_offset_animation_curve_unittest.cc b/cc/animation/scroll_offset_animation_curve_unittest.cc
index bbfb9121..c9b052d 100644
--- a/cc/animation/scroll_offset_animation_curve_unittest.cc
+++ b/cc/animation/scroll_offset_animation_curve_unittest.cc
@@ -79,15 +79,13 @@
 
   EXPECT_EQ(duration, curve->Duration());
 
-  EXPECT_VECTOR2DF_EQ(initial_value,
-                      curve->GetValue(base::TimeDelta::FromSecondsD(-1.0)));
+  EXPECT_VECTOR2DF_EQ(initial_value, curve->GetValue(base::Seconds(-1.0)));
   EXPECT_VECTOR2DF_EQ(initial_value, curve->GetValue(base::TimeDelta()));
   EXPECT_VECTOR2DF_NEAR(gfx::ScrollOffset(6.f, 30.f),
                         curve->GetValue(duration * 0.5f), 0.00025);
   EXPECT_VECTOR2DF_EQ(target_value, curve->GetValue(duration));
-  EXPECT_VECTOR2DF_EQ(
-      target_value,
-      curve->GetValue(duration + base::TimeDelta::FromSecondsD(1.0)));
+  EXPECT_VECTOR2DF_EQ(target_value,
+                      curve->GetValue(duration + base::Seconds(1.0)));
 
   // Verify that GetValue takes the timing function into account.
   gfx::ScrollOffset value = curve->GetValue(duration * 0.25f);
@@ -112,15 +110,14 @@
   ScrollOffsetAnimationCurve* cloned_curve =
       ScrollOffsetAnimationCurve::ToScrollOffsetAnimationCurve(clone.get());
 
-  EXPECT_VECTOR2DF_EQ(initial_value, cloned_curve->GetValue(
-                                         base::TimeDelta::FromSecondsD(-1.0)));
+  EXPECT_VECTOR2DF_EQ(initial_value,
+                      cloned_curve->GetValue(base::Seconds(-1.0)));
   EXPECT_VECTOR2DF_EQ(initial_value, cloned_curve->GetValue(base::TimeDelta()));
   EXPECT_VECTOR2DF_NEAR(gfx::ScrollOffset(6.f, 30.f),
                         cloned_curve->GetValue(duration * 0.5f), 0.00025);
   EXPECT_VECTOR2DF_EQ(target_value, cloned_curve->GetValue(duration));
-  EXPECT_VECTOR2DF_EQ(
-      target_value,
-      cloned_curve->GetValue(duration + base::TimeDelta::FromSecondsD(1.f)));
+  EXPECT_VECTOR2DF_EQ(target_value,
+                      cloned_curve->GetValue(duration + base::Seconds(1.f)));
 
   // Verify that the timing function was cloned correctly.
   gfx::ScrollOffset value = cloned_curve->GetValue(duration * 0.25f);
@@ -137,42 +134,27 @@
           target_value, DurationBehavior::CONSTANT));
   curve->SetInitialValue(initial_value);
   EXPECT_NEAR(duration, curve->Duration().InSecondsF(), 0.0002f);
-  EXPECT_NEAR(
-      1800.0,
-      curve->GetValue(base::TimeDelta::FromSecondsD(duration / 2.0)).y(),
-      0.0002f);
-  EXPECT_NEAR(3600.0,
-              curve->GetValue(base::TimeDelta::FromSecondsD(duration)).y(),
+  EXPECT_NEAR(1800.0, curve->GetValue(base::Seconds(duration / 2.0)).y(),
               0.0002f);
+  EXPECT_NEAR(3600.0, curve->GetValue(base::Seconds(duration)).y(), 0.0002f);
 
-  curve->UpdateTarget(base::TimeDelta::FromSecondsD(duration / 2),
+  curve->UpdateTarget(base::Seconds(duration / 2),
                       gfx::ScrollOffset(0.0, 9900.0));
 
   EXPECT_NEAR(duration * 1.5, curve->Duration().InSecondsF(), 0.0002f);
-  EXPECT_NEAR(
-      1800.0,
-      curve->GetValue(base::TimeDelta::FromSecondsD(duration / 2.0)).y(),
-      0.0002f);
-  EXPECT_NEAR(6827.6,
-              curve->GetValue(base::TimeDelta::FromSecondsD(duration)).y(),
-              0.1f);
-  EXPECT_NEAR(
-      9900.0,
-      curve->GetValue(base::TimeDelta::FromSecondsD(duration * 1.5)).y(),
-      0.0002f);
+  EXPECT_NEAR(1800.0, curve->GetValue(base::Seconds(duration / 2.0)).y(),
+              0.0002f);
+  EXPECT_NEAR(6827.6, curve->GetValue(base::Seconds(duration)).y(), 0.1f);
+  EXPECT_NEAR(9900.0, curve->GetValue(base::Seconds(duration * 1.5)).y(),
+              0.0002f);
 
-  curve->UpdateTarget(base::TimeDelta::FromSecondsD(duration),
-                      gfx::ScrollOffset(0.0, 7200.0));
+  curve->UpdateTarget(base::Seconds(duration), gfx::ScrollOffset(0.0, 7200.0));
 
   // A closer target at high velocity reduces the duration.
   EXPECT_NEAR(duration * 1.0794, curve->Duration().InSecondsF(), 0.0002f);
-  EXPECT_NEAR(6827.6,
-              curve->GetValue(base::TimeDelta::FromSecondsD(duration)).y(),
-              0.1f);
-  EXPECT_NEAR(
-      7200.0,
-      curve->GetValue(base::TimeDelta::FromSecondsD(duration * 1.08)).y(),
-      0.0002f);
+  EXPECT_NEAR(6827.6, curve->GetValue(base::Seconds(duration)).y(), 0.1f);
+  EXPECT_NEAR(7200.0, curve->GetValue(base::Seconds(duration * 1.08)).y(),
+              0.0002f);
 }
 
 TEST(ScrollOffsetAnimationCurveTest, ImpulseUpdateTarget) {
@@ -239,25 +221,20 @@
           initial_target_value));
   curve->SetInitialValue(initial_value);
   EXPECT_NEAR(initial_duration, curve->Duration().InSecondsF(), 0.0002f);
-  EXPECT_NEAR(
-      initial_target_value.y() * halfway_through_default_impulse_curve,
-      curve->GetValue(base::TimeDelta::FromSecondsD(initial_duration / 2.0))
-          .y(),
-      0.01f);
+  EXPECT_NEAR(initial_target_value.y() * halfway_through_default_impulse_curve,
+              curve->GetValue(base::Seconds(initial_duration / 2.0)).y(),
+              0.01f);
 
   // Animate back to 0. This should force the new curve's initial velocity to be
   // 0, so the default curve will be generated.
   gfx::ScrollOffset updated_initial_value = gfx::ScrollOffset(
       0, initial_target_value.y() * halfway_through_default_impulse_curve);
   gfx::ScrollOffset updated_target = gfx::ScrollOffset(0.f, 0.f);
-  curve->UpdateTarget(base::TimeDelta::FromSecondsD(initial_duration / 2),
-                      updated_target);
+  curve->UpdateTarget(base::Seconds(initial_duration / 2), updated_target);
 
-  EXPECT_NEAR(
-      initial_target_value.y() * halfway_through_default_impulse_curve,
-      curve->GetValue(base::TimeDelta::FromSecondsD(initial_duration / 2.0))
-          .y(),
-      0.01f);
+  EXPECT_NEAR(initial_target_value.y() * halfway_through_default_impulse_curve,
+              curve->GetValue(base::Seconds(initial_duration / 2.0)).y(),
+              0.01f);
 
   // Once the impulse style curve is updated, it turns to an ease-in ease-out
   // type curve.
@@ -269,16 +246,15 @@
                                 .InSecondsF();
   EXPECT_NEAR(updated_initial_value.y() * 0.5,
               curve
-                  ->GetValue(base::TimeDelta::FromSecondsD(
-                      initial_duration / 2.0 + updated_duration / 2.0))
+                  ->GetValue(base::Seconds(initial_duration / 2.0 +
+                                           updated_duration / 2.0))
                   .y(),
               0.01f);
-  EXPECT_NEAR(0.0,
-              curve
-                  ->GetValue(base::TimeDelta::FromSecondsD(
-                      initial_duration / 2.0 + updated_duration))
-                  .y(),
-              0.0002f);
+  EXPECT_NEAR(
+      0.0,
+      curve->GetValue(base::Seconds(initial_duration / 2.0 + updated_duration))
+          .y(),
+      0.0002f);
 }
 
 TEST(ScrollOffsetAnimationCurveTest, InverseDeltaDuration) {
@@ -289,19 +265,16 @@
   curve->SetInitialValue(gfx::ScrollOffset());
   double smallDeltaDuration = curve->Duration().InSecondsF();
 
-  curve->UpdateTarget(base::TimeDelta::FromSecondsD(0.01f),
-                      gfx::ScrollOffset(0.f, 300.f));
+  curve->UpdateTarget(base::Seconds(0.01f), gfx::ScrollOffset(0.f, 300.f));
   double mediumDeltaDuration = curve->Duration().InSecondsF();
 
-  curve->UpdateTarget(base::TimeDelta::FromSecondsD(0.01f),
-                      gfx::ScrollOffset(0.f, 500.f));
+  curve->UpdateTarget(base::Seconds(0.01f), gfx::ScrollOffset(0.f, 500.f));
   double largeDeltaDuration = curve->Duration().InSecondsF();
 
   EXPECT_GT(smallDeltaDuration, mediumDeltaDuration);
   EXPECT_GT(mediumDeltaDuration, largeDeltaDuration);
 
-  curve->UpdateTarget(base::TimeDelta::FromSecondsD(0.01f),
-                      gfx::ScrollOffset(0.f, 5000.f));
+  curve->UpdateTarget(base::Seconds(0.01f), gfx::ScrollOffset(0.f, 5000.f));
   EXPECT_EQ(largeDeltaDuration, curve->Duration().InSecondsF());
 }
 
@@ -360,12 +333,10 @@
   double delay_in_seconds = 0.02;
   double curve_duration = duration_in_seconds - delay_in_seconds;
 
-  curve->SetInitialValue(gfx::ScrollOffset(),
-                         base::TimeDelta::FromSecondsD(delay_in_seconds));
+  curve->SetInitialValue(gfx::ScrollOffset(), base::Seconds(delay_in_seconds));
   EXPECT_NEAR(curve_duration, curve->Duration().InSecondsF(), 0.0002f);
 
-  curve->UpdateTarget(base::TimeDelta::FromSecondsD(0.01f),
-                      gfx::ScrollOffset(0.f, 500.f));
+  curve->UpdateTarget(base::Seconds(0.01f), gfx::ScrollOffset(0.f, 500.f));
   EXPECT_GT(curve_duration, curve->Duration().InSecondsF());
   EXPECT_EQ(gfx::ScrollOffset(0.f, 500.f), curve->target_value());
 }
@@ -375,31 +346,27 @@
   std::unique_ptr<ScrollOffsetAnimationCurve> curve(
       ScrollOffsetAnimationCurveFactory::CreateEaseInOutAnimationForTesting(
           gfx::ScrollOffset(0.f, 100.f), duration_hint));
-  curve->SetInitialValue(gfx::ScrollOffset(),
-                         base::TimeDelta::FromSecondsD(0.2));
+  curve->SetInitialValue(gfx::ScrollOffset(), base::Seconds(0.2));
   EXPECT_EQ(0.f, curve->Duration().InSecondsF());
 
   // Re-targeting when animation duration is 0.
-  curve->UpdateTarget(base::TimeDelta::FromSecondsD(-0.01),
-                      gfx::ScrollOffset(0.f, 300.f));
-  double duration = ScrollOffsetAnimationCurve::EaseInOutSegmentDuration(
-                        gfx::Vector2dF(0.f, 200.f), duration_hint,
-                        base::TimeDelta::FromSecondsD(0.01))
-                        .InSecondsF();
+  curve->UpdateTarget(base::Seconds(-0.01), gfx::ScrollOffset(0.f, 300.f));
+  double duration =
+      ScrollOffsetAnimationCurve::EaseInOutSegmentDuration(
+          gfx::Vector2dF(0.f, 200.f), duration_hint, base::Seconds(0.01))
+          .InSecondsF();
   EXPECT_EQ(duration, curve->Duration().InSecondsF());
 
   // Re-targeting before last_retarget_, the  difference should be accounted for
   // in duration.
-  curve->UpdateTarget(base::TimeDelta::FromSecondsD(-0.01),
-                      gfx::ScrollOffset(0.f, 500.f));
+  curve->UpdateTarget(base::Seconds(-0.01), gfx::ScrollOffset(0.f, 500.f));
   duration = ScrollOffsetAnimationCurve::EaseInOutSegmentDuration(
-                 gfx::Vector2dF(0.f, 500.f), duration_hint,
-                 base::TimeDelta::FromSecondsD(0.01))
+                 gfx::Vector2dF(0.f, 500.f), duration_hint, base::Seconds(0.01))
                  .InSecondsF();
   EXPECT_EQ(duration, curve->Duration().InSecondsF());
 
   EXPECT_VECTOR2DF_EQ(gfx::ScrollOffset(0.f, 500.f),
-                      curve->GetValue(base::TimeDelta::FromSecondsD(1.0)));
+                      curve->GetValue(base::Seconds(1.0)));
 }
 
 // This test verifies that if the last segment duration is zero, ::UpdateTarget
@@ -413,40 +380,35 @@
   double delay_in_seconds = 0.02;
   double curve_duration = duration_in_seconds - delay_in_seconds;
 
-  curve->SetInitialValue(gfx::ScrollOffset(),
-                         base::TimeDelta::FromSecondsD(delay_in_seconds));
+  curve->SetInitialValue(gfx::ScrollOffset(), base::Seconds(delay_in_seconds));
   EXPECT_NEAR(curve_duration, curve->Duration().InSecondsF(), 0.0002f);
 
   // Re-target 1, this should set last_retarget_ to 0.05.
   gfx::ScrollOffset new_delta =
-      gfx::ScrollOffset(0.f, 200.f) -
-      curve->GetValue(base::TimeDelta::FromSecondsD(0.05));
+      gfx::ScrollOffset(0.f, 200.f) - curve->GetValue(base::Seconds(0.05));
   double expected_duration =
       ScrollOffsetAnimationCurve::EaseInOutSegmentDuration(
           gfx::Vector2dF(new_delta.x(), new_delta.y()), duration_hint,
           base::TimeDelta())
           .InSecondsF() +
       0.05;
-  curve->UpdateTarget(base::TimeDelta::FromSecondsD(0.05),
-                      gfx::ScrollOffset(0.f, 200.f));
+  curve->UpdateTarget(base::Seconds(0.05), gfx::ScrollOffset(0.f, 200.f));
   EXPECT_NEAR(expected_duration, curve->Duration().InSecondsF(), 0.0002f);
 
   // Re-target 2, this should set total_animation_duration to t, which is
   // last_retarget_. This is what would cause the DCHECK failure in
   // crbug.com/645317.
-  curve->UpdateTarget(base::TimeDelta::FromSecondsD(-0.145),
-                      gfx::ScrollOffset(0.f, 300.f));
+  curve->UpdateTarget(base::Seconds(-0.145), gfx::ScrollOffset(0.f, 300.f));
   EXPECT_NEAR(0.05, curve->Duration().InSecondsF(), 0.0002f);
 
   // Re-target 3, this should set total_animation_duration based on new_delta.
-  new_delta = gfx::ScrollOffset(0.f, 500.f) -
-              curve->GetValue(base::TimeDelta::FromSecondsD(0.05));
+  new_delta =
+      gfx::ScrollOffset(0.f, 500.f) - curve->GetValue(base::Seconds(0.05));
   expected_duration = ScrollOffsetAnimationCurve::EaseInOutSegmentDuration(
                           gfx::Vector2dF(new_delta.x(), new_delta.y()),
-                          duration_hint, base::TimeDelta::FromSecondsD(0.15))
+                          duration_hint, base::Seconds(0.15))
                           .InSecondsF();
-  curve->UpdateTarget(base::TimeDelta::FromSecondsD(-0.1),
-                      gfx::ScrollOffset(0.f, 500.f));
+  curve->UpdateTarget(base::Seconds(-0.1), gfx::ScrollOffset(0.f, 500.f));
   EXPECT_NEAR(expected_duration, curve->Duration().InSecondsF(), 0.0002f);
 }
 
diff --git a/cc/animation/scroll_timeline.cc b/cc/animation/scroll_timeline.cc
index e0a7318c613..2b4982c 100644
--- a/cc/animation/scroll_timeline.cc
+++ b/cc/animation/scroll_timeline.cc
@@ -132,8 +132,7 @@
 
   // 4. If current scroll offset is greater than or equal to endScrollOffset:
   if (current_offset >= resolved_end_scroll_offset) {
-    return base::TimeTicks() +
-           base::TimeDelta::FromMillisecondsD(kScrollTimelineDurationMs);
+    return base::TimeTicks() + base::Milliseconds(kScrollTimelineDurationMs);
   }
 
   // Otherwise,
@@ -141,10 +140,10 @@
   // procedure for current scroll offset.
   // 5.2 The current time is the result of evaluating the following expression:
   //                progress Ă— timeline duration to get the percentage
-  return base::TimeTicks() + base::TimeDelta::FromMillisecondsD(
-                                 ComputeProgress<std::vector<double>>(
-                                     current_offset, scroll_offsets_) *
-                                 kScrollTimelineDurationMs);
+  return base::TimeTicks() +
+         base::Milliseconds(ComputeProgress<std::vector<double>>(
+                                current_offset, scroll_offsets_) *
+                            kScrollTimelineDurationMs);
 }
 
 void ScrollTimeline::PushPropertiesTo(AnimationTimeline* impl_timeline) {
diff --git a/cc/animation/worklet_animation_unittest.cc b/cc/animation/worklet_animation_unittest.cc
index d61acda..bf854ed 100644
--- a/cc/animation/worklet_animation_unittest.cc
+++ b/cc/animation/worklet_animation_unittest.cc
@@ -82,7 +82,7 @@
   EXPECT_CALL(*mock_effect, Tick(_)).Times(0);
 
   MutatorOutputState::AnimationState state(worklet_animation_id_);
-  state.local_times.push_back(base::TimeDelta::FromSecondsD(1));
+  state.local_times.push_back(base::Seconds(1));
   worklet_animation->SetOutputState(state);
   worklet_animation->Tick(base::TimeTicks());
 }
@@ -104,7 +104,7 @@
   // Impl side animation don't need synchronized start time.
   keyframe_model->set_needs_synchronized_start_time(false);
 
-  base::TimeDelta local_time = base::TimeDelta::FromSecondsD(duration / 2);
+  base::TimeDelta local_time = base::Seconds(duration / 2);
   MutatorOutputState::AnimationState state(worklet_animation_id_);
   state.local_times.push_back(local_time);
   worklet_animation_->SetOutputState(state);
@@ -122,7 +122,7 @@
 TEST_F(WorkletAnimationTest, AnimationEventLocalTimeUpdate) {
   AttachWorkletAnimation();
 
-  absl::optional<base::TimeDelta> local_time = base::TimeDelta::FromSecondsD(1);
+  absl::optional<base::TimeDelta> local_time = base::Seconds(1);
   MutatorOutputState::AnimationState state(worklet_animation_id_);
   state.local_times.push_back(local_time);
   worklet_animation_->SetOutputState(state);
@@ -172,8 +172,7 @@
   auto scroll_timeline = base::WrapRefCounted(new MockScrollTimeline());
   EXPECT_CALL(*scroll_timeline, IsActive(_, _)).WillRepeatedly(Return(true));
   EXPECT_CALL(*scroll_timeline, CurrentTime(_, _))
-      .WillRepeatedly(Return(
-          (base::TimeTicks() + base::TimeDelta::FromMilliseconds(1234))));
+      .WillRepeatedly(Return((base::TimeTicks() + base::Milliseconds(1234))));
   scoped_refptr<WorkletAnimation> worklet_animation = WorkletAnimation::Create(
       worklet_animation_id_, "test_name", 1, nullptr, nullptr);
   host_->AddAnimationTimeline(scroll_timeline);
@@ -198,12 +197,11 @@
   host_->AddAnimationTimeline(timeline_);
   timeline_->AttachAnimation(worklet_animation);
 
-  base::TimeTicks first_ticks =
-      base::TimeTicks() + base::TimeDelta::FromMillisecondsD(111);
+  base::TimeTicks first_ticks = base::TimeTicks() + base::Milliseconds(111);
   base::TimeTicks second_ticks =
-      base::TimeTicks() + base::TimeDelta::FromMillisecondsD(111 + 123.4);
+      base::TimeTicks() + base::Milliseconds(111 + 123.4);
   base::TimeTicks third_ticks =
-      base::TimeTicks() + base::TimeDelta::FromMillisecondsD(111 + 246.8);
+      base::TimeTicks() + base::Milliseconds(111 + 246.8);
 
   ScrollTree scroll_tree;
   std::unique_ptr<MutatorInputState> state =
@@ -240,13 +238,11 @@
   host_->AddAnimationTimeline(timeline_);
   timeline_->AttachAnimation(worklet_animation);
 
-  base::TimeTicks first_ticks =
-      base::TimeTicks() + base::TimeDelta::FromMillisecondsD(111);
+  base::TimeTicks first_ticks = base::TimeTicks() + base::Milliseconds(111);
   base::TimeTicks second_ticks =
-      base::TimeTicks() + base::TimeDelta::FromMillisecondsD(111 + 123.4);
+      base::TimeTicks() + base::Milliseconds(111 + 123.4);
   base::TimeTicks third_ticks =
-      base::TimeTicks() +
-      base::TimeDelta::FromMillisecondsD(111 + 123.4 + 200.0);
+      base::TimeTicks() + base::Milliseconds(111 + 123.4 + 200.0);
 
   ScrollTree scroll_tree;
   std::unique_ptr<MutatorInputState> state =
@@ -303,8 +299,7 @@
   // Start the animation.
   EXPECT_CALL(*mock_timeline, IsActive(_, _)).WillRepeatedly(Return(true));
   EXPECT_CALL(*mock_timeline, CurrentTime(_, _))
-      .WillRepeatedly(
-          Return(base::TimeTicks() + base::TimeDelta::FromMilliseconds(50)));
+      .WillRepeatedly(Return(base::TimeTicks() + base::Milliseconds(50)));
   worklet_animation->UpdateInputState(state.get(), base::TimeTicks(),
                                       scroll_tree, true);
   Mock::VerifyAndClearExpectations(&mock_timeline);
@@ -323,8 +318,7 @@
   // Continue playing the animation.
   EXPECT_CALL(*mock_timeline, IsActive(_, _)).WillRepeatedly(Return(true));
   EXPECT_CALL(*mock_timeline, CurrentTime(_, _))
-      .WillRepeatedly(
-          Return(base::TimeTicks() + base::TimeDelta::FromMilliseconds(100)));
+      .WillRepeatedly(Return(base::TimeTicks() + base::Milliseconds(100)));
   worklet_animation->UpdateInputState(state.get(), base::TimeTicks(),
                                       scroll_tree, true);
   Mock::VerifyAndClearExpectations(&mock_timeline);
@@ -366,8 +360,7 @@
   // Now the timeline is active.
   EXPECT_CALL(*mock_timeline, IsActive(_, _)).WillRepeatedly(Return(true));
   EXPECT_CALL(*mock_timeline, CurrentTime(_, _))
-      .WillRepeatedly(
-          Return(base::TimeTicks() + base::TimeDelta::FromMilliseconds(100)));
+      .WillRepeatedly(Return(base::TimeTicks() + base::Milliseconds(100)));
   worklet_animation->UpdateInputState(state.get(), base::TimeTicks(),
                                       scroll_tree, true);
   Mock::VerifyAndClearExpectations(&mock_timeline);
@@ -380,8 +373,7 @@
   // Now the timeline is inactive.
   EXPECT_CALL(*mock_timeline, IsActive(_, _)).WillRepeatedly(Return(false));
   EXPECT_CALL(*mock_timeline, CurrentTime(_, _))
-      .WillRepeatedly(
-          Return(base::TimeTicks() + base::TimeDelta::FromMilliseconds(200)));
+      .WillRepeatedly(Return(base::TimeTicks() + base::Milliseconds(200)));
   worklet_animation->UpdateInputState(state.get(), base::TimeTicks(),
                                       scroll_tree, true);
   Mock::VerifyAndClearExpectations(&mock_timeline);
@@ -421,7 +413,7 @@
   // The state of WorkletAnimation is updated to RUNNING after calling
   // UpdateInputState above.
   state = std::make_unique<MutatorInputState>();
-  time += base::TimeDelta::FromSecondsD(0.1);
+  time += base::Seconds(0.1);
   worklet_animation_->UpdateInputState(state.get(), time, scroll_tree, true);
   input = state->TakeWorkletState(worklet_animation_id_.worklet_id);
   EXPECT_EQ(input->added_and_updated_animations.size(), 0u);
@@ -432,7 +424,7 @@
   // WorkletAnimation.
   keyframe_model->SetRunState(KeyframeModel::FINISHED, time);
   state = std::make_unique<MutatorInputState>();
-  time += base::TimeDelta::FromSecondsD(0.1);
+  time += base::Seconds(0.1);
   worklet_animation_->UpdateInputState(state.get(), time, scroll_tree, true);
   input = state->TakeWorkletState(worklet_animation_id_.worklet_id);
   EXPECT_EQ(input->added_and_updated_animations.size(), 0u);
@@ -482,7 +474,7 @@
 
   state = std::make_unique<MutatorInputState>();
   // Different input time causes the input state to be updated.
-  time += base::TimeDelta::FromSecondsD(0.1);
+  time += base::Seconds(0.1);
   worklet_animation_->UpdateInputState(state.get(), time, scroll_tree, true);
   input = state->TakeWorkletState(worklet_animation_id_.worklet_id);
   EXPECT_EQ(input->updated_animations.size(), 1u);
@@ -500,7 +492,7 @@
 absl::optional<base::TimeTicks> FakeIncreasingScrollTimelineTime(Unused,
                                                                  Unused) {
   static base::TimeTicks current_time;
-  current_time += base::TimeDelta::FromSecondsD(0.1);
+  current_time += base::Seconds(0.1);
   return current_time;
 }
 
diff --git a/cc/base/delayed_unique_notifier_unittest.cc b/cc/base/delayed_unique_notifier_unittest.cc
index 0efadcc..eb47dba 100644
--- a/cc/base/delayed_unique_notifier_unittest.cc
+++ b/cc/base/delayed_unique_notifier_unittest.cc
@@ -56,7 +56,7 @@
 };
 
 TEST_F(DelayedUniqueNotifierTest, SmallDelay) {
-  base::TimeDelta delay = base::TimeDelta::FromMicroseconds(20);
+  base::TimeDelta delay = base::Microseconds(20);
   TestNotifier notifier(task_runner_.get(),
                         base::BindRepeating(&DelayedUniqueNotifierTest::Notify,
                                             base::Unretained(this)),
@@ -65,8 +65,7 @@
   EXPECT_EQ(0, NotificationCount());
 
   // Basic schedule for |delay| from now (now: 30, run time: 50).
-  base::TimeTicks schedule_time =
-      base::TimeTicks() + base::TimeDelta::FromMicroseconds(30);
+  base::TimeTicks schedule_time = base::TimeTicks() + base::Microseconds(30);
 
   notifier.SetNow(schedule_time);
   notifier.Schedule();
@@ -91,7 +90,7 @@
   EXPECT_EQ(scheduled_delay, tasks[0].GetTimeToRun());
 
   // Move closer to the run time (time: 49, run time: 50).
-  notifier.SetNow(notifier.Now() + base::TimeDelta::FromMicroseconds(19));
+  notifier.SetNow(notifier.Now() + base::Microseconds(19));
 
   // It's not yet time to run, so we expect no notifications.
   std::move(tasks[0].task).Run();
@@ -105,7 +104,7 @@
   EXPECT_EQ(scheduled_delay, tasks[0].GetTimeToRun());
 
   // Move to exactly the run time (time: 50, run time: 50).
-  notifier.SetNow(notifier.Now() + base::TimeDelta::FromMicroseconds(1));
+  notifier.SetNow(notifier.Now() + base::Microseconds(1));
 
   // It's time to run!
   std::move(tasks[0].task).Run();
@@ -116,7 +115,7 @@
 }
 
 TEST_F(DelayedUniqueNotifierTest, RescheduleDelay) {
-  base::TimeDelta delay = base::TimeDelta::FromMicroseconds(20);
+  base::TimeDelta delay = base::Microseconds(20);
   TestNotifier notifier(task_runner_.get(),
                         base::BindRepeating(&DelayedUniqueNotifierTest::Notify,
                                             base::Unretained(this)),
@@ -129,7 +128,7 @@
     EXPECT_EQ(0, NotificationCount());
 
     // Move time forward 19 units.
-    schedule_time = notifier.Now() + base::TimeDelta::FromMicroseconds(19);
+    schedule_time = notifier.Now() + base::Microseconds(19);
     notifier.SetNow(schedule_time);
     notifier.Schedule();
 
@@ -144,7 +143,7 @@
   }
 
   // Move time forward 20 units, expecting a notification.
-  schedule_time = notifier.Now() + base::TimeDelta::FromMicroseconds(20);
+  schedule_time = notifier.Now() + base::Microseconds(20);
   notifier.SetNow(schedule_time);
 
   base::circular_deque<base::TestPendingTask> tasks = TakePendingTasks();
@@ -158,7 +157,7 @@
 }
 
 TEST_F(DelayedUniqueNotifierTest, CancelAndHasPendingNotification) {
-  base::TimeDelta delay = base::TimeDelta::FromMicroseconds(20);
+  base::TimeDelta delay = base::Microseconds(20);
   TestNotifier notifier(task_runner_.get(),
                         base::BindRepeating(&DelayedUniqueNotifierTest::Notify,
                                             base::Unretained(this)),
@@ -167,8 +166,7 @@
   EXPECT_EQ(0, NotificationCount());
 
   // Schedule for |delay| seconds from now.
-  base::TimeTicks schedule_time =
-      notifier.Now() + base::TimeDelta::FromMicroseconds(10);
+  base::TimeTicks schedule_time = notifier.Now() + base::Microseconds(10);
   notifier.SetNow(schedule_time);
   notifier.Schedule();
   EXPECT_TRUE(notifier.HasPendingNotification());
@@ -228,7 +226,7 @@
 }
 
 TEST_F(DelayedUniqueNotifierTest, ShutdownWithScheduledTask) {
-  base::TimeDelta delay = base::TimeDelta::FromMicroseconds(20);
+  base::TimeDelta delay = base::Microseconds(20);
   TestNotifier notifier(task_runner_.get(),
                         base::BindRepeating(&DelayedUniqueNotifierTest::Notify,
                                             base::Unretained(this)),
@@ -237,8 +235,7 @@
   EXPECT_EQ(0, NotificationCount());
 
   // Schedule for |delay| seconds from now.
-  base::TimeTicks schedule_time =
-      notifier.Now() + base::TimeDelta::FromMicroseconds(10);
+  base::TimeTicks schedule_time = notifier.Now() + base::Microseconds(10);
   notifier.SetNow(schedule_time);
   notifier.Schedule();
   EXPECT_TRUE(notifier.HasPendingNotification());
@@ -269,7 +266,7 @@
 }
 
 TEST_F(DelayedUniqueNotifierTest, ShutdownPreventsSchedule) {
-  base::TimeDelta delay = base::TimeDelta::FromMicroseconds(20);
+  base::TimeDelta delay = base::Microseconds(20);
   TestNotifier notifier(task_runner_.get(),
                         base::BindRepeating(&DelayedUniqueNotifierTest::Notify,
                                             base::Unretained(this)),
@@ -278,8 +275,7 @@
   EXPECT_EQ(0, NotificationCount());
 
   // Schedule for |delay| seconds from now.
-  base::TimeTicks schedule_time =
-      notifier.Now() + base::TimeDelta::FromMicroseconds(10);
+  base::TimeTicks schedule_time = notifier.Now() + base::Microseconds(10);
   notifier.SetNow(schedule_time);
 
   // Shutdown the notifier.
diff --git a/cc/base/devtools_instrumentation.h b/cc/base/devtools_instrumentation.h
index 39a816a..6e95db6c 100644
--- a/cc/base/devtools_instrumentation.h
+++ b/cc/base/devtools_instrumentation.h
@@ -89,8 +89,8 @@
 
   // UMA histogram parameters
   const uint32_t bucket_count_ = 50;
-  base::TimeDelta hist_min_ = base::TimeDelta::FromMicroseconds(1);
-  base::TimeDelta hist_max_ = base::TimeDelta::FromMilliseconds(1000);
+  base::TimeDelta hist_min_ = base::Microseconds(1);
+  base::TimeDelta hist_max_ = base::Milliseconds(1000);
 };
 
 class CC_BASE_EXPORT ScopedImageUploadTask : public ScopedImageTask {
diff --git a/cc/base/histograms.cc b/cc/base/histograms.cc
index 591f704b..b9fc570 100644
--- a/cc/base/histograms.cc
+++ b/cc/base/histograms.cc
@@ -75,8 +75,7 @@
     int area,
     Sample* time_microseconds,
     Sample* pixels_per_ms) {
-  elapsed = std::max(
-      elapsed, base::TimeDelta::FromMicroseconds(kMinimumTimeMicroseconds));
+  elapsed = std::max(elapsed, base::Microseconds(kMinimumTimeMicroseconds));
   double area_per_time = area / elapsed.InMillisecondsF();
   // It is not clear how NaN can get here, but we've gotten crashes from
   // saturated_cast. http://crbug.com/486214
diff --git a/cc/base/rolling_time_delta_history_unittest.cc b/cc/base/rolling_time_delta_history_unittest.cc
index 5458240b..bb83774 100644
--- a/cc/base/rolling_time_delta_history_unittest.cc
+++ b/cc/base/rolling_time_delta_history_unittest.cc
@@ -15,9 +15,9 @@
   EXPECT_EQ(base::TimeDelta(), empty_history.Percentile(50.0));
   EXPECT_EQ(base::TimeDelta(), empty_history.Percentile(100.0));
 
-  empty_history.InsertSample(base::TimeDelta::FromMilliseconds(10));
-  empty_history.InsertSample(base::TimeDelta::FromMilliseconds(15));
-  empty_history.InsertSample(base::TimeDelta::FromMilliseconds(20));
+  empty_history.InsertSample(base::Milliseconds(10));
+  empty_history.InsertSample(base::Milliseconds(15));
+  empty_history.InsertSample(base::Milliseconds(20));
 
   EXPECT_EQ(base::TimeDelta(), empty_history.Percentile(0.0));
   EXPECT_EQ(base::TimeDelta(), empty_history.Percentile(50.0));
@@ -31,8 +31,8 @@
 
 TEST(RollingTimeDeltaHistoryTest, SizeOneHistory) {
   RollingTimeDeltaHistory size_one_history(1);
-  base::TimeDelta sample1 = base::TimeDelta::FromMilliseconds(10);
-  base::TimeDelta sample2 = base::TimeDelta::FromMilliseconds(20);
+  base::TimeDelta sample1 = base::Milliseconds(10);
+  base::TimeDelta sample2 = base::Milliseconds(20);
 
   EXPECT_EQ(base::TimeDelta(), size_one_history.Percentile(0.0));
   EXPECT_EQ(base::TimeDelta(), size_one_history.Percentile(50.0));
@@ -56,9 +56,9 @@
 
 TEST(RollingTimeDeltaHistoryTest, LargeHistory) {
   RollingTimeDeltaHistory large_history(100);
-  base::TimeDelta sample1 = base::TimeDelta::FromMilliseconds(150);
-  base::TimeDelta sample2 = base::TimeDelta::FromMilliseconds(250);
-  base::TimeDelta sample3 = base::TimeDelta::FromMilliseconds(200);
+  base::TimeDelta sample1 = base::Milliseconds(150);
+  base::TimeDelta sample2 = base::Milliseconds(250);
+  base::TimeDelta sample3 = base::Milliseconds(200);
 
   large_history.InsertSample(sample1);
   large_history.InsertSample(sample2);
@@ -76,22 +76,20 @@
 
   // Fill the history.
   for (int i = 1; i <= 97; i++)
-    large_history.InsertSample(base::TimeDelta::FromMilliseconds(i));
+    large_history.InsertSample(base::Milliseconds(i));
 
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1),
-            large_history.Percentile(0.0));
+  EXPECT_EQ(base::Milliseconds(1), large_history.Percentile(0.0));
   for (int i = 1; i <= 97; i++) {
-    EXPECT_EQ(base::TimeDelta::FromMilliseconds(i),
-              large_history.Percentile(i - 0.5));
+    EXPECT_EQ(base::Milliseconds(i), large_history.Percentile(i - 0.5));
   }
   EXPECT_EQ(sample1, large_history.Percentile(97.5));
   EXPECT_EQ(sample3, large_history.Percentile(98.5));
   EXPECT_EQ(sample2, large_history.Percentile(99.5));
 
   // Continue inserting samples, causing the oldest samples to be discarded.
-  base::TimeDelta sample4 = base::TimeDelta::FromMilliseconds(100);
-  base::TimeDelta sample5 = base::TimeDelta::FromMilliseconds(102);
-  base::TimeDelta sample6 = base::TimeDelta::FromMilliseconds(104);
+  base::TimeDelta sample4 = base::Milliseconds(100);
+  base::TimeDelta sample5 = base::Milliseconds(102);
+  base::TimeDelta sample6 = base::Milliseconds(104);
   large_history.InsertSample(sample4);
   large_history.InsertSample(sample5);
   large_history.InsertSample(sample6);
diff --git a/cc/base/rtree_perftest.cc b/cc/base/rtree_perftest.cc
index 00d8a95..37a5168 100644
--- a/cc/base/rtree_perftest.cc
+++ b/cc/base/rtree_perftest.cc
@@ -27,7 +27,7 @@
  public:
   RTreePerfTest()
       : timer_(kWarmupRuns,
-               base::TimeDelta::FromMilliseconds(kTimeLimitMillis),
+               base::Milliseconds(kTimeLimitMillis),
                kTimeCheckInterval) {}
 
   void RunConstructTest(const std::string& test_name, int rect_count) {
diff --git a/cc/benchmarks/rasterize_and_record_benchmark_impl.cc b/cc/benchmarks/rasterize_and_record_benchmark_impl.cc
index 3fd77c5f..9ac0178 100644
--- a/cc/benchmarks/rasterize_and_record_benchmark_impl.cc
+++ b/cc/benchmarks/rasterize_and_record_benchmark_impl.cc
@@ -45,8 +45,7 @@
   for (size_t i = 0; i < repeat_count; ++i) {
     // Run for a minimum amount of time to avoid problems with timer
     // quantization when the layer is very small.
-    base::LapTimer timer(kWarmupRuns,
-                         base::TimeDelta::FromMilliseconds(kTimeLimitMillis),
+    base::LapTimer timer(kWarmupRuns, base::Milliseconds(kTimeLimitMillis),
                          kTimeCheckInterval);
     SkColor color = SK_ColorTRANSPARENT;
     gfx::Rect layer_rect = gfx::ScaleToEnclosingRect(
diff --git a/cc/debug/rendering_stats_unittest.cc b/cc/debug/rendering_stats_unittest.cc
index 8b18bcb..23a9a15 100644
--- a/cc/debug/rendering_stats_unittest.cc
+++ b/cc/debug/rendering_stats_unittest.cc
@@ -25,21 +25,21 @@
 
 TEST(RenderingStatsTest, TimeDeltaListNonEmpty) {
   RenderingStats::TimeDeltaList time_delta_list;
-  time_delta_list.Append(base::TimeDelta::FromMilliseconds(234));
-  time_delta_list.Append(base::TimeDelta::FromMilliseconds(827));
+  time_delta_list.Append(base::Milliseconds(234));
+  time_delta_list.Append(base::Milliseconds(827));
 
   EXPECT_EQ("{\"list_value\":[234.0,827.0]}", ToString(time_delta_list));
 }
 
 TEST(RenderingStatsTest, TimeDeltaListAdd) {
   RenderingStats::TimeDeltaList time_delta_list_a;
-  time_delta_list_a.Append(base::TimeDelta::FromMilliseconds(810));
-  time_delta_list_a.Append(base::TimeDelta::FromMilliseconds(32));
+  time_delta_list_a.Append(base::Milliseconds(810));
+  time_delta_list_a.Append(base::Milliseconds(32));
 
   RenderingStats::TimeDeltaList time_delta_list_b;
-  time_delta_list_b.Append(base::TimeDelta::FromMilliseconds(43));
-  time_delta_list_b.Append(base::TimeDelta::FromMilliseconds(938));
-  time_delta_list_b.Append(base::TimeDelta::FromMilliseconds(2));
+  time_delta_list_b.Append(base::Milliseconds(43));
+  time_delta_list_b.Append(base::Milliseconds(938));
+  time_delta_list_b.Append(base::Milliseconds(2));
 
   time_delta_list_a.Add(time_delta_list_b);
   EXPECT_EQ("{\"list_value\":[810.0,32.0,43.0,938.0,2.0]}",
diff --git a/cc/input/browser_controls_offset_manager.cc b/cc/input/browser_controls_offset_manager.cc
index a7c2cd9..c031aad 100644
--- a/cc/input/browser_controls_offset_manager.cc
+++ b/cc/input/browser_controls_offset_manager.cc
@@ -708,7 +708,7 @@
   direction_ = direction;
   start_value_ = start_value;
   stop_value_ = stop_value;
-  duration_ = base::TimeDelta::FromMilliseconds(duration);
+  duration_ = base::Milliseconds(duration);
   initialized_ = true;
   jump_to_end_on_reset_ = jump_to_end_on_reset;
   SetBounds(std::min(start_value_, stop_value_),
diff --git a/cc/input/browser_controls_offset_manager_unittest.cc b/cc/input/browser_controls_offset_manager_unittest.cc
index 69a6e62..679d0a2c 100644
--- a/cc/input/browser_controls_offset_manager_unittest.cc
+++ b/cc/input/browser_controls_offset_manager_unittest.cc
@@ -266,7 +266,7 @@
 
   while (manager->HasAnimation()) {
     previous = manager->TopControlsShownRatio();
-    time = base::TimeDelta::FromMicroseconds(100) + time;
+    time = base::Microseconds(100) + time;
     manager->Animate(time);
     EXPECT_LT(manager->TopControlsShownRatio(), previous);
   }
@@ -303,7 +303,7 @@
 
   while (manager->HasAnimation()) {
     previous = manager->BottomControlsShownRatio();
-    time = base::TimeDelta::FromMicroseconds(100) + time;
+    time = base::Microseconds(100) + time;
     manager->Animate(time);
     EXPECT_LT(manager->BottomControlsShownRatio(), previous);
   }
@@ -338,7 +338,7 @@
 
   while (manager->HasAnimation()) {
     previous = manager->TopControlsShownRatio();
-    time = base::TimeDelta::FromMicroseconds(100) + time;
+    time = base::Microseconds(100) + time;
     manager->Animate(time);
     EXPECT_GT(manager->TopControlsShownRatio(), previous);
   }
@@ -370,7 +370,7 @@
 
   while (manager->HasAnimation()) {
     previous = manager->BottomControlsShownRatio();
-    time = base::TimeDelta::FromMicroseconds(100) + time;
+    time = base::Microseconds(100) + time;
     manager->Animate(time);
     EXPECT_GT(manager->BottomControlsShownRatio(), previous);
   }
@@ -402,7 +402,7 @@
 
   while (manager->HasAnimation()) {
     previous = manager->TopControlsShownRatio();
-    time = base::TimeDelta::FromMicroseconds(100) + time;
+    time = base::Microseconds(100) + time;
     manager->Animate(time);
     EXPECT_GT(manager->TopControlsShownRatio(), previous);
   }
@@ -434,7 +434,7 @@
 
   while (manager->HasAnimation()) {
     previous = manager->TopControlsShownRatio();
-    time = base::TimeDelta::FromMicroseconds(100) + time;
+    time = base::Microseconds(100) + time;
     manager->Animate(time);
     EXPECT_LT(manager->TopControlsShownRatio(), previous);
   }
@@ -470,7 +470,7 @@
 
   while (manager->HasAnimation()) {
     previous = manager->TopControlsShownRatio();
-    time = base::TimeDelta::FromMicroseconds(100) + time;
+    time = base::Microseconds(100) + time;
     manager->Animate(time);
     EXPECT_LT(manager->TopControlsShownRatio(), previous);
   }
@@ -506,7 +506,7 @@
 
   while (manager->HasAnimation()) {
     previous = manager->TopControlsShownRatio();
-    time = base::TimeDelta::FromMicroseconds(100) + time;
+    time = base::Microseconds(100) + time;
     manager->Animate(time);
     EXPECT_GT(manager->TopControlsShownRatio(), previous);
   }
@@ -574,7 +574,7 @@
 
   while (manager->HasAnimation()) {
     previous = manager->TopControlsShownRatio();
-    time = base::TimeDelta::FromMicroseconds(100) + time;
+    time = base::Microseconds(100) + time;
     manager->Animate(time);
     EXPECT_LT(manager->TopControlsShownRatio(), previous);
   }
@@ -600,7 +600,7 @@
 
   while (manager->HasAnimation()) {
     previous = manager->TopControlsShownRatio();
-    time = base::TimeDelta::FromMicroseconds(100) + time;
+    time = base::Microseconds(100) + time;
     manager->Animate(time);
     EXPECT_GT(manager->TopControlsShownRatio(), previous);
   }
@@ -630,7 +630,7 @@
 
   while (manager->HasAnimation()) {
     previous = manager->TopControlsShownRatio();
-    time = base::TimeDelta::FromMicroseconds(100) + time;
+    time = base::Microseconds(100) + time;
     manager->Animate(time);
     EXPECT_GT(manager->TopControlsShownRatio(), previous);
   }
@@ -664,7 +664,7 @@
 
   while (manager->HasAnimation()) {
     previous = manager->TopControlsShownRatio();
-    time = base::TimeDelta::FromMicroseconds(100) + time;
+    time = base::Microseconds(100) + time;
     manager->Animate(time);
     EXPECT_LT(manager->TopControlsShownRatio(), previous);
   }
@@ -705,7 +705,7 @@
   while (manager->HasAnimation()) {
     previous_ratio = manager->TopControlsShownRatio();
     previous_min_height_offset = manager->TopControlsMinHeightOffset();
-    time = base::TimeDelta::FromMicroseconds(100) + time;
+    time = base::Microseconds(100) + time;
     manager->Animate(time);
     EXPECT_GT(manager->TopControlsShownRatio(), previous_ratio);
     // Min-height offset is also animated.
@@ -754,7 +754,7 @@
   while (manager->HasAnimation()) {
     previous_ratio = manager->TopControlsShownRatio();
     previous_min_height_offset = manager->TopControlsMinHeightOffset();
-    time = base::TimeDelta::FromMicroseconds(100) + time;
+    time = base::Microseconds(100) + time;
     manager->Animate(time);
     EXPECT_LT(manager->TopControlsShownRatio(), previous_ratio);
     // Min-height offset is also animated.
@@ -815,7 +815,7 @@
   float previous = manager->TopControlsShownRatio();
   manager->Animate(time);
   // Forward a little bit.
-  time = base::TimeDelta::FromMicroseconds(100) + time;
+  time = base::Microseconds(100) + time;
   manager->Animate(time);
 
   // Animation should be in progress.
@@ -1130,7 +1130,7 @@
 
   while (manager->HasAnimation()) {
     previous_ratio = manager->BottomControlsShownRatio();
-    time = base::TimeDelta::FromMicroseconds(100) + time;
+    time = base::Microseconds(100) + time;
     manager->Animate(time);
     EXPECT_GT(manager->BottomControlsShownRatio(), previous_ratio);
   }
@@ -1227,7 +1227,7 @@
 
   // Make sure the animation finishes at the new min-height.
   while (manager->HasAnimation()) {
-    time = base::TimeDelta::FromMicroseconds(100) + time;
+    time = base::Microseconds(100) + time;
     manager->Animate(time);
   }
   EXPECT_FALSE(manager->HasAnimation());
@@ -1255,7 +1255,7 @@
 
   while (manager->HasAnimation()) {
     previous_min_height_offset = manager->TopControlsMinHeightOffset();
-    time = base::TimeDelta::FromMicroseconds(100) + time;
+    time = base::Microseconds(100) + time;
     manager->Animate(time);
     EXPECT_GE(manager->TopControlsMinHeightOffset(),
               previous_min_height_offset);
@@ -1288,7 +1288,7 @@
 
   while (manager->HasAnimation()) {
     previous_min_height_offset = manager->TopControlsMinHeightOffset();
-    time = base::TimeDelta::FromMicroseconds(100) + time;
+    time = base::Microseconds(100) + time;
     manager->Animate(time);
     EXPECT_LE(manager->TopControlsMinHeightOffset(),
               previous_min_height_offset);
diff --git a/cc/input/scrollbar.h b/cc/input/scrollbar.h
index cbfdd310..8af75aab 100644
--- a/cc/input/scrollbar.h
+++ b/cc/input/scrollbar.h
@@ -16,7 +16,7 @@
 // autoscroll velocity = delta / 0.05 sec = delta x 20
 static constexpr float kAutoscrollMultiplier = 20.f;
 static constexpr base::TimeDelta kInitialAutoscrollTimerDelay =
-    base::TimeDelta::FromMilliseconds(250);
+    base::Milliseconds(250);
 
 // Constants used to figure the how far out in the non-scrolling direction
 // should trigger the thumb to snap back to its origin.  These calculations are
diff --git a/cc/input/scrollbar_animation_controller_unittest.cc b/cc/input/scrollbar_animation_controller_unittest.cc
index 53c2252..cae00b12 100644
--- a/cc/input/scrollbar_animation_controller_unittest.cc
+++ b/cc/input/scrollbar_animation_controller_unittest.cc
@@ -68,9 +68,9 @@
   }
 
  protected:
-  const base::TimeDelta kFadeDelay = base::TimeDelta::FromSeconds(4);
-  const base::TimeDelta kFadeDuration = base::TimeDelta::FromSeconds(3);
-  const base::TimeDelta kThinningDuration = base::TimeDelta::FromSeconds(2);
+  const base::TimeDelta kFadeDelay = base::Seconds(4);
+  const base::TimeDelta kFadeDuration = base::Seconds(3);
+  const base::TimeDelta kThinningDuration = base::Seconds(2);
 
   void SetUp() override {
     const int kTrackStart = 0;
@@ -163,7 +163,7 @@
 // Check that scrollbar appears again when the layer becomes scrollable.
 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, AppearOnResize) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   scrollbar_controller_->DidScrollUpdate();
   ExpectScrollbarsOpacity(1);
@@ -188,7 +188,7 @@
 // Check that scrollbar disappears when the layer becomes non-scrollable.
 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, HideOnResize) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   EXPECT_EQ(gfx::Size(200, 200), scroll_layer_->bounds());
 
@@ -217,7 +217,7 @@
 // Scroll content. Confirm the scrollbar appears and fades out.
 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, BasicAppearAndFadeOut) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   // Scrollbar should be invisible.
   ExpectScrollbarsOpacity(0);
@@ -252,7 +252,7 @@
 TEST_F(ScrollbarAnimationControllerAuraOverlayTest,
        BasicAppearByWillUpdateScrollThenFadeOut) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   // Scrollbar should be invisible.
   ExpectScrollbarsOpacity(0);
@@ -283,7 +283,7 @@
 TEST_F(ScrollbarAnimationControllerAuraOverlayTest,
        MoveNearTrackThenNearThumb) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   scrollbar_controller_->DidScrollUpdate();
 
@@ -341,7 +341,7 @@
 // scrollbar.
 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, MoveNearAndDontFadeOut) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   scrollbar_controller_->DidScrollUpdate();
 
@@ -380,7 +380,7 @@
 // thick. Ensure it remains visible as long as the mouse is over the scrollbar.
 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, MoveOverAndDontFadeOut) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   scrollbar_controller_->DidScrollUpdate();
 
@@ -420,7 +420,7 @@
 TEST_F(ScrollbarAnimationControllerAuraOverlayTest,
        DontFadeWhileCapturedBeforeThick) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   scrollbar_controller_->DidScrollUpdate();
 
@@ -446,7 +446,7 @@
 TEST_F(ScrollbarAnimationControllerAuraOverlayTest,
        DontFadeWhileCapturedThenAway) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   scrollbar_controller_->DidScrollUpdate();
 
@@ -480,7 +480,7 @@
 // fade out.
 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, DontFadeWhileCaptured) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   scrollbar_controller_->DidScrollUpdate();
 
@@ -516,7 +516,7 @@
 // the scrollbar to fade out.
 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, FadeAfterReleasedFar) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   scrollbar_controller_->DidScrollUpdate();
 
@@ -565,7 +565,7 @@
 // doesn't cause the scrollbar to fade out.
 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, DontFadeAfterReleasedNear) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   scrollbar_controller_->DidScrollUpdate();
 
@@ -602,7 +602,7 @@
 TEST_F(ScrollbarAnimationControllerAuraOverlayTest,
        MoveNearScrollbarWhileFading) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   scrollbar_controller_->DidScrollUpdate();
 
@@ -640,7 +640,7 @@
 // Make sure we can't capture scrollbar that's completely faded out.
 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, TestCantCaptureWhenFaded) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   scrollbar_controller_->DidScrollUpdate();
 
@@ -705,7 +705,7 @@
 // appear thick and remain thick.
 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, ScrollWithMouseNear) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   scrollbar_controller_->DidMouseMove(NearVerticalScrollbarBegin(-1, 0));
   scrollbar_controller_->Animate(time);
@@ -758,7 +758,7 @@
 // Tests that the fade effect is animated.
 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, FadeAnimated) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   // Scroll to make the scrollbars visible.
   scrollbar_controller_->DidScrollUpdate();
@@ -787,7 +787,7 @@
 // Tests that the controller tells the client when the scrollbars hide/show.
 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, NotifyChangedVisibility) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   EXPECT_CALL(client_, DidChangeScrollbarVisibility()).Times(1);
   // Scroll to make the scrollbars visible.
@@ -833,7 +833,7 @@
 // moved away.
 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, MouseNearEach) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   // Scroll to make the scrollbars visible.
   scrollbar_controller_->DidScrollUpdate();
@@ -858,7 +858,7 @@
   // Subsequent moves within the nearness threshold should not change anything.
   scrollbar_controller_->DidMouseMove(NearVerticalScrollbarBegin(-2, 0));
   scrollbar_controller_->Animate(time);
-  time += base::TimeDelta::FromSeconds(10);
+  time += base::Seconds(10);
   scrollbar_controller_->Animate(time);
   ExpectScrollbarsOpacity(1);
   EXPECT_FLOAT_EQ(1, v_scrollbar_layer_->thumb_thickness_scale_factor());
@@ -897,7 +897,7 @@
   // Subsequent moves within the nearness threshold should not change anything.
   scrollbar_controller_->DidMouseMove(NearHorizontalScrollbarBegin(0, -2));
   scrollbar_controller_->Animate(time);
-  time += base::TimeDelta::FromSeconds(10);
+  time += base::Seconds(10);
   scrollbar_controller_->Animate(time);
   ExpectScrollbarsOpacity(1);
   EXPECT_FLOAT_EQ(kIdleThicknessScale,
@@ -924,7 +924,7 @@
 // Move mouse near both scrollbars at the same time.
 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, MouseNearBoth) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   // Scroll to make the scrollbars visible.
   scrollbar_controller_->DidScrollUpdate();
@@ -955,7 +955,7 @@
 TEST_F(ScrollbarAnimationControllerAuraOverlayTest,
        MouseNearOtherBeforeAnimationFinished) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   // Scroll to make the scrollbars visible.
   scrollbar_controller_->DidScrollUpdate();
@@ -1014,7 +1014,7 @@
 // move.
 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, MouseLeaveFadeOut) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   // Move mouse near scrollbar.
   scrollbar_controller_->DidMouseMove(NearVerticalScrollbarBegin(-1, 0));
@@ -1038,7 +1038,7 @@
 // scrollbar region of a hidden scrollbar.
 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, BasicMouseHoverFadeIn) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   // Move mouse over the fade in region of scrollbar.
   scrollbar_controller_->DidMouseMove(
@@ -1071,7 +1071,7 @@
 TEST_F(ScrollbarAnimationControllerAuraOverlayTest,
        MouseHoverScrollbarAndMoveInside) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   // Move mouse over the fade in region of scrollbar.
   scrollbar_controller_->DidMouseMove(
@@ -1096,7 +1096,7 @@
 TEST_F(ScrollbarAnimationControllerAuraOverlayTest,
        MouseHoverThenOutShouldCancelFadeIn) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   // Move mouse over the fade in region of scrollbar.
   scrollbar_controller_->DidMouseMove(
@@ -1120,7 +1120,7 @@
 TEST_F(ScrollbarAnimationControllerAuraOverlayTest,
        MouseHoverThenLeaveShouldCancelShowThenEnterShouldFadeIn) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   // Move mouse over the fade in region of scrollbar.
   scrollbar_controller_->DidMouseMove(
@@ -1161,7 +1161,7 @@
 TEST_F(ScrollbarAnimationControllerAuraOverlayTest,
        MouseHoverThenMouseDownShouldCancelFadeInThenReleaseNearShouldFadeIn) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   // Move mouse over the fade in region of scrollbar.
   scrollbar_controller_->DidMouseMove(
@@ -1209,7 +1209,7 @@
 TEST_F(ScrollbarAnimationControllerAuraOverlayTest,
        MouseReleaseFarShouldNotFadeIn) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   // Move mouse over the fade in region of scrollbar.
   scrollbar_controller_->DidMouseMove(
@@ -1246,7 +1246,7 @@
 // and fade out when tickmarks hide.
 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, TickmakrsShowHide) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   // Overlay Scrollbar hidden at beginnging.
   EXPECT_TRUE(scrollbar_controller_->ScrollbarsHidden());
@@ -1339,8 +1339,8 @@
 
     scrollbar_controller_ =
         ScrollbarAnimationController::CreateScrollbarAnimationControllerAndroid(
-            scroll_layer_->element_id(), this, base::TimeDelta::FromSeconds(2),
-            base::TimeDelta::FromSeconds(3), 0.0f);
+            scroll_layer_->element_id(), this, base::Seconds(2),
+            base::Seconds(3), 0.0f);
   }
 
   virtual ScrollbarOrientation orientation() const {
@@ -1376,13 +1376,13 @@
   scrollbar_layer_->SetOverlayScrollbarLayerOpacityAnimated(0.f);
 
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(100);
+  time += base::Seconds(100);
   scrollbar_controller_->Animate(time);
   EXPECT_FLOAT_EQ(0.0f, scrollbar_layer_->Opacity());
 
   EXPECT_TRUE(start_fade_.is_null());
 
-  time += base::TimeDelta::FromSeconds(100);
+  time += base::Seconds(100);
   scrollbar_controller_->Animate(time);
   EXPECT_FLOAT_EQ(0.0f, scrollbar_layer_->Opacity());
 }
@@ -1391,7 +1391,7 @@
 TEST_F(ScrollbarAnimationControllerAndroidTest,
        WillUpdateScrollNotAppearScrollbar) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   // Scrollbar should be invisible.
   EXPECT_FLOAT_EQ(0.0f, scrollbar_layer_->Opacity());
@@ -1495,7 +1495,7 @@
 
 TEST_F(ScrollbarAnimationControllerAndroidTest, AwakenByScrollingGesture) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   EXPECT_FALSE(did_request_animate_);
 
   scrollbar_controller_->DidScrollUpdate();
@@ -1504,7 +1504,7 @@
 
   EXPECT_FALSE(start_fade_.is_null());
 
-  time += base::TimeDelta::FromSeconds(100);
+  time += base::Seconds(100);
 
   scrollbar_controller_->Animate(time);
   EXPECT_FALSE(did_request_animate_);
@@ -1514,25 +1514,25 @@
   EXPECT_TRUE(did_request_animate_);
   did_request_animate_ = false;
 
-  time += base::TimeDelta::FromSeconds(2);
+  time += base::Seconds(2);
   scrollbar_controller_->Animate(time);
   EXPECT_TRUE(did_request_animate_);
   did_request_animate_ = false;
   EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->Opacity());
 
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   scrollbar_controller_->Animate(time);
   EXPECT_TRUE(did_request_animate_);
   did_request_animate_ = false;
   EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->Opacity());
 
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   scrollbar_controller_->Animate(time);
   EXPECT_TRUE(did_request_animate_);
   did_request_animate_ = false;
   EXPECT_FLOAT_EQ(1.0f / 3.0f, scrollbar_layer_->Opacity());
 
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   scrollbar_controller_->DidScrollUpdate();
 
@@ -1540,25 +1540,25 @@
   EXPECT_TRUE(did_request_animate_);
   did_request_animate_ = false;
 
-  time += base::TimeDelta::FromSeconds(2);
+  time += base::Seconds(2);
   scrollbar_controller_->Animate(time);
   EXPECT_TRUE(did_request_animate_);
   did_request_animate_ = false;
   EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->Opacity());
 
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   scrollbar_controller_->Animate(time);
   EXPECT_TRUE(did_request_animate_);
   did_request_animate_ = false;
   EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->Opacity());
 
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   scrollbar_controller_->Animate(time);
   EXPECT_TRUE(did_request_animate_);
   did_request_animate_ = false;
   EXPECT_FLOAT_EQ(1.0f / 3.0f, scrollbar_layer_->Opacity());
 
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   scrollbar_controller_->Animate(time);
   EXPECT_FALSE(did_request_animate_);
   EXPECT_FLOAT_EQ(0.0f, scrollbar_layer_->Opacity());
@@ -1566,7 +1566,7 @@
 
 TEST_F(ScrollbarAnimationControllerAndroidTest, AwakenByProgrammaticScroll) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   scrollbar_controller_->DidScrollUpdate();
   EXPECT_FALSE(did_request_animate_);
 
@@ -1578,7 +1578,7 @@
   did_request_animate_ = false;
   EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->Opacity());
 
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   scrollbar_controller_->Animate(time);
   EXPECT_TRUE(did_request_animate_);
   did_request_animate_ = false;
@@ -1589,46 +1589,46 @@
   std::move(start_fade_).Run();
   EXPECT_TRUE(did_request_animate_);
   did_request_animate_ = false;
-  time += base::TimeDelta::FromSeconds(2);
+  time += base::Seconds(2);
   scrollbar_controller_->Animate(time);
   EXPECT_TRUE(did_request_animate_);
   did_request_animate_ = false;
   EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->Opacity());
 
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   scrollbar_controller_->Animate(time);
   EXPECT_TRUE(did_request_animate_);
   did_request_animate_ = false;
   EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->Opacity());
 
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   scrollbar_controller_->Animate(time);
   EXPECT_TRUE(did_request_animate_);
   did_request_animate_ = false;
   EXPECT_FLOAT_EQ(1.0f / 3.0f, scrollbar_layer_->Opacity());
 
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   scrollbar_controller_->DidScrollUpdate();
   std::move(start_fade_).Run();
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   scrollbar_controller_->Animate(time);
   EXPECT_TRUE(did_request_animate_);
   did_request_animate_ = false;
   EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->Opacity());
 
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   scrollbar_controller_->Animate(time);
   EXPECT_TRUE(did_request_animate_);
   did_request_animate_ = false;
   EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->Opacity());
 
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   scrollbar_controller_->Animate(time);
   EXPECT_TRUE(did_request_animate_);
   did_request_animate_ = false;
   EXPECT_FLOAT_EQ(1.0f / 3.0f, scrollbar_layer_->Opacity());
 
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   scrollbar_controller_->Animate(time);
   EXPECT_FALSE(did_request_animate_);
   EXPECT_FLOAT_EQ(0.0f, scrollbar_layer_->Opacity());
@@ -1637,7 +1637,7 @@
 TEST_F(ScrollbarAnimationControllerAndroidTest,
        AnimationPreservedByNonScrollingGesture) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   scrollbar_controller_->DidScrollUpdate();
   std::move(start_fade_).Run();
   EXPECT_TRUE(did_request_animate_);
@@ -1647,7 +1647,7 @@
   did_request_animate_ = false;
   EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->Opacity());
 
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   scrollbar_controller_->Animate(time);
   EXPECT_TRUE(did_request_animate_);
   did_request_animate_ = false;
@@ -1656,7 +1656,7 @@
   EXPECT_FALSE(did_request_animate_);
   EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->Opacity());
 
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   scrollbar_controller_->Animate(time);
   EXPECT_TRUE(did_request_animate_);
   did_request_animate_ = false;
@@ -1665,7 +1665,7 @@
   EXPECT_FALSE(did_request_animate_);
   EXPECT_FLOAT_EQ(1.0f / 3.0f, scrollbar_layer_->Opacity());
 
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   scrollbar_controller_->Animate(time);
   EXPECT_FALSE(did_request_animate_);
   EXPECT_FLOAT_EQ(0.0f, scrollbar_layer_->Opacity());
@@ -1674,7 +1674,7 @@
 TEST_F(ScrollbarAnimationControllerAndroidTest,
        AnimationOverriddenByScrollingGesture) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   scrollbar_controller_->DidScrollUpdate();
   EXPECT_FALSE(did_request_animate_);
   std::move(start_fade_).Run();
@@ -1685,7 +1685,7 @@
   did_request_animate_ = false;
   EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->Opacity());
 
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   scrollbar_controller_->Animate(time);
   EXPECT_TRUE(did_request_animate_);
   did_request_animate_ = false;
@@ -1693,18 +1693,18 @@
 
   EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->Opacity());
 
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   scrollbar_controller_->Animate(time);
   EXPECT_TRUE(did_request_animate_);
   did_request_animate_ = false;
   EXPECT_FLOAT_EQ(1.0f / 3.0f, scrollbar_layer_->Opacity());
 
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   scrollbar_controller_->DidScrollUpdate();
   EXPECT_FALSE(did_request_animate_);
   EXPECT_FLOAT_EQ(1, scrollbar_layer_->Opacity());
 
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   EXPECT_FALSE(did_request_animate_);
   EXPECT_FLOAT_EQ(1, scrollbar_layer_->Opacity());
 }
diff --git a/cc/input/single_scrollbar_animation_controller_thinning_unittest.cc b/cc/input/single_scrollbar_animation_controller_thinning_unittest.cc
index 2bf4672..42e8d68 100644
--- a/cc/input/single_scrollbar_animation_controller_thinning_unittest.cc
+++ b/cc/input/single_scrollbar_animation_controller_thinning_unittest.cc
@@ -56,7 +56,7 @@
   SingleScrollbarAnimationControllerThinningTest() : client_(host_impl()) {}
 
  protected:
-  const base::TimeDelta kThinningDuration = base::TimeDelta::FromSeconds(2);
+  const base::TimeDelta kThinningDuration = base::Seconds(2);
 
   void SetUp() override {
     root_layer()->SetBounds(gfx::Size(100, 100));
@@ -114,7 +114,7 @@
 // moved away.
 TEST_F(SingleScrollbarAnimationControllerThinningTest, MouseNear) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   scrollbar_controller_->DidMouseMove(NearScrollbar(-1, 0));
   scrollbar_controller_->Animate(time);
@@ -129,7 +129,7 @@
   // Subsequent moves within the nearness threshold should not change anything.
   scrollbar_controller_->DidMouseMove(NearScrollbar(-2, 0));
   scrollbar_controller_->Animate(time);
-  time += base::TimeDelta::FromSeconds(10);
+  time += base::Seconds(10);
   scrollbar_controller_->Animate(time);
   EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->thumb_thickness_scale_factor());
 
@@ -156,7 +156,7 @@
 // thin when moved away.
 TEST_F(SingleScrollbarAnimationControllerThinningTest, MouseOver) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   scrollbar_controller_->DidMouseMove(NearScrollbar(0, 0));
   scrollbar_controller_->Animate(time);
@@ -171,7 +171,7 @@
   // Subsequent moves should not change anything.
   scrollbar_controller_->DidMouseMove(NearScrollbar(0, 0));
   scrollbar_controller_->Animate(time);
-  time += base::TimeDelta::FromSeconds(10);
+  time += base::Seconds(10);
   scrollbar_controller_->Animate(time);
   EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->thumb_thickness_scale_factor());
 
@@ -180,7 +180,7 @@
   scrollbar_controller_->DidMouseMove(
       NearScrollbar(-kMouseMoveDistanceToTriggerExpand + 1, 0));
   scrollbar_controller_->Animate(time);
-  time += base::TimeDelta::FromSeconds(10);
+  time += base::Seconds(10);
   scrollbar_controller_->Animate(time);
   EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->thumb_thickness_scale_factor());
 
@@ -200,7 +200,7 @@
 TEST_F(SingleScrollbarAnimationControllerThinningTest,
        MouseNearThenAwayWhileAnimating) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   scrollbar_controller_->DidMouseMove(NearScrollbar(0, 0));
   scrollbar_controller_->Animate(time);
@@ -216,7 +216,7 @@
   // subsequent DidMouseMove(), if the mouse moves in that direction.
   // This results in the thumb thinning. We want to make sure that when the
   // thumb starts expanding it doesn't first narrow to the idle thinness.
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   scrollbar_controller_->DidMouseLeave();
   scrollbar_controller_->Animate(time);
   EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->thumb_thickness_scale_factor());
@@ -265,7 +265,7 @@
 TEST_F(SingleScrollbarAnimationControllerThinningTest,
        MouseCaptureAndReleaseOutOfBar) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   // Move over the scrollbar.
   scrollbar_controller_->DidMouseMove(NearScrollbar(0, 0));
@@ -276,12 +276,12 @@
 
   // Capture
   scrollbar_controller_->DidMouseDown();
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   scrollbar_controller_->Animate(time);
   EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->thumb_thickness_scale_factor());
 
   // Should stay thick for a while.
-  time += base::TimeDelta::FromSeconds(10);
+  time += base::Seconds(10);
   scrollbar_controller_->Animate(time);
 
   // Move outside the "near" threshold. Because the scrollbar is captured it
@@ -296,7 +296,7 @@
   scrollbar_controller_->DidMouseUp();
 
   // Should become thin.
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   scrollbar_controller_->Animate(time);
   time += kThinningDuration;
   scrollbar_controller_->Animate(time);
@@ -310,7 +310,7 @@
 TEST_F(SingleScrollbarAnimationControllerThinningTest,
        MouseCaptureAndReleaseOnBar) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   // Move over scrollbar.
   scrollbar_controller_->DidMouseMove(NearScrollbar(0, 0));
@@ -321,18 +321,18 @@
 
   // Capture. Nothing should change.
   scrollbar_controller_->DidMouseDown();
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   scrollbar_controller_->Animate(time);
-  time += base::TimeDelta::FromSeconds(10);
+  time += base::Seconds(10);
   scrollbar_controller_->Animate(time);
   EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->thumb_thickness_scale_factor());
 
   // Move away from scrollbar. Nothing should change.
   scrollbar_controller_->DidMouseMove(
       NearScrollbar(kMouseMoveDistanceToTriggerExpand, 0));
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   scrollbar_controller_->Animate(time);
-  time += base::TimeDelta::FromSeconds(10);
+  time += base::Seconds(10);
   scrollbar_controller_->Animate(time);
   EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->thumb_thickness_scale_factor());
 
@@ -341,9 +341,9 @@
   scrollbar_controller_->DidMouseMove(
       NearScrollbar(-kMouseMoveDistanceToTriggerExpand + 1, 0));
   scrollbar_controller_->DidMouseUp();
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   scrollbar_controller_->Animate(time);
-  time += base::TimeDelta::FromSeconds(10);
+  time += base::Seconds(10);
   scrollbar_controller_->Animate(time);
   EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->thumb_thickness_scale_factor());
 }
@@ -351,7 +351,7 @@
 // Tests that the thickening/thinning effects are animated.
 TEST_F(SingleScrollbarAnimationControllerThinningTest, ThicknessAnimated) {
   base::TimeTicks time;
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
 
   // Move mouse near scrollbar. Test that at half the duration time, the
   // thickness is half way through its animation.
@@ -370,7 +370,7 @@
   EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->thumb_thickness_scale_factor());
 
   // Move mouse away from scrollbar. Same check.
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   scrollbar_controller_->DidMouseMove(
       NearScrollbar(-kMouseMoveDistanceToTriggerExpand, 0));
   scrollbar_controller_->Animate(time);
diff --git a/cc/input/snap_fling_controller_unittest.cc b/cc/input/snap_fling_controller_unittest.cc
index 9577ad1..e269be2f 100644
--- a/cc/input/snap_fling_controller_unittest.cc
+++ b/cc/input/snap_fling_controller_unittest.cc
@@ -112,7 +112,7 @@
       .WillOnce(testing::Return(gfx::Vector2dF(100, 100)));
   EXPECT_CALL(mock_client_, RequestAnimationForSnapFling()).Times(1);
   EXPECT_CALL(mock_client_, ScrollByForSnapFling(gfx::Vector2dF(100, 100)));
-  controller_->Animate(base::TimeTicks() + base::TimeDelta::FromSeconds(1));
+  controller_->Animate(base::TimeTicks() + base::Seconds(1));
   testing::Mock::VerifyAndClearExpectations(&mock_client_);
   testing::Mock::VerifyAndClearExpectations(curve);
 }
@@ -127,7 +127,7 @@
   EXPECT_CALL(mock_client_, RequestAnimationForSnapFling()).Times(0);
   EXPECT_CALL(mock_client_, ScrollByForSnapFling(testing::_)).Times(0);
   EXPECT_CALL(mock_client_, ScrollEndForSnapFling(true)).Times(1);
-  controller_->Animate(base::TimeTicks() + base::TimeDelta::FromSeconds(1));
+  controller_->Animate(base::TimeTicks() + base::Seconds(1));
   testing::Mock::VerifyAndClearExpectations(curve);
   testing::Mock::VerifyAndClearExpectations(&mock_client_);
 
@@ -135,7 +135,7 @@
   EXPECT_CALL(mock_client_, RequestAnimationForSnapFling()).Times(0);
   EXPECT_CALL(mock_client_, ScrollByForSnapFling(testing::_)).Times(0);
   EXPECT_CALL(mock_client_, ScrollEndForSnapFling(true)).Times(0);
-  controller_->Animate(base::TimeTicks() + base::TimeDelta::FromSeconds(2));
+  controller_->Animate(base::TimeTicks() + base::Seconds(2));
   testing::Mock::VerifyAndClearExpectations(curve);
   testing::Mock::VerifyAndClearExpectations(&mock_client_);
 }
diff --git a/cc/input/snap_fling_curve.cc b/cc/input/snap_fling_curve.cc
index e63dba1..789de15e 100644
--- a/cc/input/snap_fling_curve.cc
+++ b/cc/input/snap_fling_curve.cc
@@ -20,9 +20,8 @@
 // The delta to be scrolled in next frame is 0.92 of the delta in last frame.
 constexpr double kRatio = 0.92;
 #endif
-constexpr auto kFrameTime = base::TimeDelta::FromMilliseconds(16);
-constexpr base::TimeDelta kMaximumSnapDuration =
-    base::TimeDelta::FromSecondsD(5);
+constexpr auto kFrameTime = base::Milliseconds(16);
+constexpr base::TimeDelta kMaximumSnapDuration = base::Seconds(5);
 
 double GetDistanceFromDisplacement(gfx::Vector2dF displacement) {
   return std::hypot(displacement.x(), displacement.y());
diff --git a/cc/layers/layer_perftest.cc b/cc/layers/layer_perftest.cc
index 5218685..52c7195 100644
--- a/cc/layers/layer_perftest.cc
+++ b/cc/layers/layer_perftest.cc
@@ -28,7 +28,7 @@
   LayerPerfTest()
       : host_impl_(&task_runner_provider_, &task_graph_runner_),
         timer_(kWarmupRuns,
-               base::TimeDelta::FromMilliseconds(kTimeLimitMillis),
+               base::Milliseconds(kTimeLimitMillis),
                kTimeCheckInterval) {}
 
  protected:
diff --git a/cc/layers/picture_layer_impl_perftest.cc b/cc/layers/picture_layer_impl_perftest.cc
index e9a87d6e..8d504e9e 100644
--- a/cc/layers/picture_layer_impl_perftest.cc
+++ b/cc/layers/picture_layer_impl_perftest.cc
@@ -39,7 +39,7 @@
  public:
   PictureLayerImplPerfTest()
       : timer_(kWarmupRuns,
-               base::TimeDelta::FromMilliseconds(kTimeLimitMillis),
+               base::Milliseconds(kTimeLimitMillis),
                kTimeCheckInterval) {}
 
   PictureLayerImplPerfTest(const PictureLayerImplPerfTest&) = delete;
diff --git a/cc/layers/picture_layer_impl_unittest.cc b/cc/layers/picture_layer_impl_unittest.cc
index e34ad24..77ea603 100644
--- a/cc/layers/picture_layer_impl_unittest.cc
+++ b/cc/layers/picture_layer_impl_unittest.cc
@@ -347,13 +347,13 @@
 }
 
 TEST_F(LegacySWPictureLayerImplTest, ExternalViewportRectForPrioritizingTiles) {
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
   gfx::Size layer_bounds(400, 400);
   SetupDefaultTrees(layer_bounds);
 
   SetupDrawPropertiesAndUpdateTiles(active_layer(), 1.f, 1.f, 1.f);
 
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(200));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(200));
 
   // Update tiles with viewport for tile priority as (0, 0, 100, 100) and the
   // identify transform for tile priority.
@@ -378,7 +378,7 @@
   // Update tiles with viewport for tile priority as (200, 200, 100, 100) in
   // root layer space and the transform for tile priority is translated and
   // rotated.
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(200));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(200));
 
   viewport_rect_for_tile_priority = gfx::Rect(200, 200, 100, 100);
   transform_for_tile_priority.Translate(100, 100);
@@ -399,13 +399,13 @@
 }
 
 TEST_F(LegacySWPictureLayerImplTest, ViewportRectForTilePriorityIsCached) {
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
   gfx::Size layer_bounds(400, 400);
   SetupDefaultTrees(layer_bounds);
 
   SetupDrawPropertiesAndUpdateTiles(active_layer(), 1.f, 1.f, 1.f);
 
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(200));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(200));
 
   gfx::Rect viewport_rect_for_tile_priority(0, 0, 100, 100);
   gfx::Transform transform_for_tile_priority;
@@ -417,7 +417,7 @@
   EXPECT_EQ(viewport_rect_for_tile_priority,
             active_layer()->viewport_rect_for_tile_priority_in_content_space());
 
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(200));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(200));
 
   gfx::Rect another_viewport_rect_for_tile_priority(11, 11, 50, 50);
   host_impl()->SetExternalTilePriorityConstraints(
@@ -1200,7 +1200,7 @@
 }
 
 TEST_F(LegacySWPictureLayerImplTest, HugeBackdropFilterMasksGetScaledDown) {
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
 
   gfx::Size layer_bounds(1000, 1000);
 
@@ -1215,7 +1215,7 @@
   SetupMaskProperties(pending_layer(), pending_mask);
   ASSERT_TRUE(pending_mask->is_backdrop_filter_mask());
 
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
   UpdateDrawProperties(host_impl()->pending_tree());
 
   EXPECT_EQ(1.f, pending_mask->HighResTiling()->contents_scale_key());
@@ -1260,7 +1260,7 @@
   pending_mask->SetBounds(huge_bounds);
   pending_mask->SetRasterSource(huge_raster_source, Region());
 
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
   UpdateDrawProperties(host_impl()->pending_tree());
 
   // The mask tiling gets scaled down.
@@ -1316,14 +1316,14 @@
 
   EXPECT_FALSE(pending_mask->CanHaveTilings());
 
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
   UpdateDrawProperties(host_impl()->pending_tree());
 
   EXPECT_EQ(0u, pending_mask->num_tilings());
 }
 
 TEST_F(LegacySWPictureLayerImplTest, ScaledBackdropFilterMaskLayer) {
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
 
   gfx::Size layer_bounds(1000, 1000);
 
@@ -1340,7 +1340,7 @@
   SetupMaskProperties(pending_layer(), pending_mask);
   ASSERT_TRUE(pending_mask->is_backdrop_filter_mask());
 
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
   UpdateDrawProperties(host_impl()->pending_tree());
 
   // Masks are scaled, and do not have a low res tiling.
@@ -1371,7 +1371,7 @@
 }
 
 TEST_F(LegacySWPictureLayerImplTest, ScaledMaskLayer) {
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
 
   gfx::Size layer_bounds(1000, 1000);
 
@@ -1387,7 +1387,7 @@
   SetupMaskProperties(pending_layer(), pending_mask);
   ASSERT_FALSE(pending_mask->is_backdrop_filter_mask());
 
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
   UpdateDrawProperties(host_impl()->pending_tree());
 
   // Masks are scaled, and do not have a low res tiling.
@@ -1841,7 +1841,7 @@
       viewport,
       pending_layer()->viewport_rect_for_tile_priority_in_content_space());
 
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
   pending_layer()->UpdateTiles();
 
   int num_visible = 0;
@@ -1867,7 +1867,7 @@
 
 TEST_F(NoLowResPictureLayerImplTest,
        TileOutsideOfViewportForTilePriorityNotRequired) {
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
 
   gfx::Size tile_size(100, 100);
   gfx::Size layer_bounds(400, 400);
@@ -1883,13 +1883,13 @@
   gfx::Transform transform_for_tile_priority;
   host_impl()->SetExternalTilePriorityConstraints(
       external_viewport_for_tile_priority, transform_for_tile_priority);
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
   UpdateDrawProperties(host_impl()->pending_tree());
 
   // Set visible content rect that is different from
   // external_viewport_for_tile_priority.
   pending_layer()->draw_properties().visible_layer_rect = visible_layer_rect;
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(200));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(200));
   pending_layer()->UpdateTiles();
 
   // Intersect the two rects. Any tile outside should not be required for
@@ -1939,7 +1939,7 @@
 }
 
 TEST_F(LegacySWPictureLayerImplTest, HighResTileIsComplete) {
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
 
   gfx::Size tile_size(100, 100);
   gfx::Size layer_bounds(200, 200);
@@ -1969,7 +1969,7 @@
 }
 
 TEST_F(LegacySWPictureLayerImplTest, HighResTileIsIncomplete) {
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
 
   gfx::Size tile_size(100, 100);
   gfx::Size layer_bounds(200, 200);
@@ -1992,7 +1992,7 @@
 }
 
 TEST_F(LegacySWPictureLayerImplTest, HighResTileIsIncompleteLowResComplete) {
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
 
   gfx::Size tile_size(100, 100);
   gfx::Size layer_bounds(200, 200);
@@ -2020,7 +2020,7 @@
 }
 
 TEST_F(LegacySWPictureLayerImplTest, LowResTileIsIncomplete) {
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
 
   gfx::Size tile_size(100, 100);
   gfx::Size layer_bounds(200, 200);
@@ -2058,7 +2058,7 @@
 
 TEST_F(LegacySWPictureLayerImplTest,
        HighResAndIdealResTileIsCompleteWhenRasterScaleIsNotIdeal) {
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
 
   gfx::Size tile_size(100, 100);
   gfx::Size layer_bounds(200, 200);
@@ -2121,7 +2121,7 @@
 }
 
 TEST_F(LegacySWPictureLayerImplTest, AppendQuadsDataForCheckerboard) {
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
 
   gfx::Size tile_size(100, 100);
   gfx::Size layer_bounds(200, 200);
@@ -3208,7 +3208,7 @@
 }
 
 TEST_F(LegacySWPictureLayerImplTest, TilingSetRasterQueue) {
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
 
   host_impl()->active_tree()->SetDeviceViewportRect(gfx::Rect(500, 500));
 
@@ -3289,7 +3289,7 @@
   EXPECT_EQ(high_res_now_tiles, required_for_activation_count);
 
   // No NOW tiles.
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(200));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(200));
 
   pending_layer()->draw_properties().visible_layer_rect =
       gfx::Rect(1100, 1100, 500, 500);
@@ -3318,7 +3318,7 @@
   EXPECT_EQ(16, high_res_tile_count);
   EXPECT_EQ(high_res_tile_count, static_cast<int>(unique_tiles.size()));
 
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(200));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(200));
 
   pending_layer()->draw_properties().visible_layer_rect =
       gfx::Rect(0, 0, 500, 500);
@@ -3339,7 +3339,7 @@
 }
 
 TEST_F(LegacySWPictureLayerImplTest, TilingSetRasterQueueActiveTree) {
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
 
   host_impl()->active_tree()->SetDeviceViewportRect(gfx::Rect(500, 500));
 
@@ -4285,7 +4285,7 @@
 
 TEST_F(OcclusionTrackingPictureLayerImplTest,
        OccludedTilesSkippedDuringRasterization) {
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
 
   gfx::Size tile_size(102, 102);
   gfx::Size layer_bounds(1000, 1000);
@@ -4327,7 +4327,7 @@
   CopyProperties(pending_layer(), layer1);
   layer1->SetOffsetToTransformParent(occluding_layer_position);
 
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(200));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(200));
   UpdateDrawProperties(host_impl()->pending_tree());
 
   unoccluded_tile_count = 0;
@@ -4351,7 +4351,7 @@
   layer1->SetOffsetToTransformParent(gfx::Vector2dF());
   layer1->NoteLayerPropertyChanged();
 
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(200));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(200));
   UpdateDrawProperties(host_impl()->pending_tree());
 
   unoccluded_tile_count = 0;
@@ -4374,7 +4374,7 @@
 
 TEST_F(OcclusionTrackingPictureLayerImplTest,
        OccludedTilesNotMarkedAsRequired) {
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
 
   gfx::Size tile_size(102, 102);
   gfx::Size layer_bounds(1000, 1000);
@@ -4419,7 +4419,7 @@
   CopyProperties(pending_layer(), layer1);
   layer1->SetOffsetToTransformParent(occluding_layer_position);
 
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(200));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(200));
   UpdateDrawProperties(host_impl()->pending_tree());
 
   for (size_t i = 0; i < pending_layer()->num_tilings(); ++i) {
@@ -4456,7 +4456,7 @@
   layer1->SetOffsetToTransformParent(gfx::Vector2dF());
   layer1->NoteLayerPropertyChanged();
 
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(200));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(200));
   UpdateDrawProperties(host_impl()->pending_tree());
 
   for (size_t i = 0; i < pending_layer()->num_tilings(); ++i) {
@@ -4493,7 +4493,7 @@
 void OcclusionTrackingPictureLayerImplTest::TestOcclusionForScale(
     float scale,
     int expected_occluded_count) {
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
 
   gfx::Size tile_size(102, 102);
   gfx::Size layer_bounds(1000, 1000);
@@ -4529,7 +4529,7 @@
 
   ASSERT_EQ(2u, active_layer()->num_tilings());
 
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
   // UpdateDrawProperties with the occluding layer.
   UpdateDrawProperties(host_impl()->active_tree());
 
@@ -4667,7 +4667,7 @@
 
 TEST_F(OcclusionTrackingPictureLayerImplTest,
        OccludedTilesConsideredDuringEviction) {
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
 
   gfx::Size tile_size(102, 102);
   gfx::Size layer_bounds(1000, 1000);
@@ -4716,7 +4716,7 @@
   EXPECT_EQ(1u, pending_layer()->num_tilings());
   EXPECT_EQ(2u, active_layer()->num_tilings());
 
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
   // UpdateDrawProperties with the occluding layer.
   UpdateDrawProperties(host_impl()->pending_tree());
 
@@ -4867,7 +4867,7 @@
 
 void PictureLayerImplTest::TestQuadsForSolidColor(bool test_for_solid,
                                                   bool partial_opaque) {
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
 
   gfx::Size tile_size(100, 100);
   gfx::Size layer_bounds(200, 200);
@@ -4957,7 +4957,7 @@
 }
 
 TEST_F(LegacySWPictureLayerImplTest, NonSolidToSolidNoTilings) {
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
 
   gfx::Size layer_bounds(200, 200);
   gfx::Rect layer_rect(layer_bounds);
@@ -5011,7 +5011,7 @@
 }
 
 TEST_F(LegacySWPictureLayerImplTest, ChangeInViewportAllowsTilingUpdates) {
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
 
   gfx::Size layer_bounds(400, 4000);
   SetupDefaultTrees(layer_bounds);
@@ -5171,7 +5171,7 @@
 }
 
 TEST_F(LegacySWPictureLayerImplTest, ScrollPastLiveTilesRectAndBack) {
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
 
   gfx::Size tile_size(102, 102);
   gfx::Size layer_bounds(100, 100);
@@ -5216,7 +5216,7 @@
 }
 
 TEST_F(LegacySWPictureLayerImplTest, ScrollPropagatesToPending) {
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
 
   gfx::Size layer_bounds(1000, 1000);
   gfx::Size viewport_size(100, 100);
@@ -5594,7 +5594,7 @@
                   ->tiling_at(1)
                   ->may_contain_low_resolution_tiles());
 
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
 
   // Zoom in to exactly the low res factor so that the previous low res
   // would be equal to the current high res.
@@ -6026,8 +6026,8 @@
   auto recording_source = FakeRecordingSource::CreateRecordingSource(
       gfx::Rect(layer_bounds), layer_bounds);
   std::vector<FrameMetadata> frames = {
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(1)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(1))};
+      FrameMetadata(true, base::Milliseconds(1)),
+      FrameMetadata(true, base::Milliseconds(1))};
   PaintImage image1 = CreateAnimatedImage(gfx::Size(200, 200), frames);
   PaintImage image2 = CreateAnimatedImage(gfx::Size(200, 200), frames);
   recording_source->add_draw_image(image1, gfx::Point(100, 100));
diff --git a/cc/layers/scrollbar_layer_unittest.cc b/cc/layers/scrollbar_layer_unittest.cc
index 0be135c..025ea1d 100644
--- a/cc/layers/scrollbar_layer_unittest.cc
+++ b/cc/layers/scrollbar_layer_unittest.cc
@@ -106,10 +106,8 @@
     layer_tree_settings_.single_thread_proxy_scheduler = false;
     layer_tree_settings_.use_zero_copy = true;
     layer_tree_settings_.scrollbar_animator = animator;
-    layer_tree_settings_.scrollbar_fade_delay =
-        base::TimeDelta::FromMilliseconds(20);
-    layer_tree_settings_.scrollbar_fade_duration =
-        base::TimeDelta::FromMilliseconds(20);
+    layer_tree_settings_.scrollbar_fade_delay = base::Milliseconds(20);
+    layer_tree_settings_.scrollbar_fade_duration = base::Milliseconds(20);
 
     animation_host_ = AnimationHost::CreateForTesting(ThreadInstance::MAIN);
 
diff --git a/cc/layers/surface_layer_impl_unittest.cc b/cc/layers/surface_layer_impl_unittest.cc
index 516c7c0..dae8486 100644
--- a/cc/layers/surface_layer_impl_unittest.cc
+++ b/cc/layers/surface_layer_impl_unittest.cc
@@ -306,7 +306,7 @@
                     done->Signal();
                 },
                 base::Unretained(&updated), base::Unretained(done)),
-            base::TimeDelta::FromMilliseconds(100));
+            base::Milliseconds(100));
       });
 
   // Note that this has to be created after the callback so that the layer is
diff --git a/cc/layers/viewport.cc b/cc/layers/viewport.cc
index 0a9a9da3..39a73bc 100644
--- a/cc/layers/viewport.cc
+++ b/cc/layers/viewport.cc
@@ -256,7 +256,7 @@
     DCHECK(active_tree->InnerViewportScrollNode());
     const float kMaxZoomForSnapToMin = 1.05f;
     const base::TimeDelta kSnapToMinZoomAnimationDuration =
-        base::TimeDelta::FromMilliseconds(200);
+        base::Milliseconds(200);
     float page_scale = active_tree->current_page_scale_factor();
     float min_scale = active_tree->min_page_scale_factor();
 
diff --git a/cc/metrics/average_lag_tracker.cc b/cc/metrics/average_lag_tracker.cc
index 3efacd5..7f836c22 100644
--- a/cc/metrics/average_lag_tracker.cc
+++ b/cc/metrics/average_lag_tracker.cc
@@ -181,8 +181,7 @@
   // |ScrollBegin|. Otherwise record UMA when it's ScrollBegin, or when
   // reaching the 1 second gap.
   if (send_anyway || is_begin_ ||
-      (frame_lag.frame_time - last_reported_time_) >=
-          base::TimeDelta::FromSeconds(1)) {
+      (frame_lag.frame_time - last_reported_time_) >= base::Seconds(1)) {
     const EventType event_type =
         is_begin_ ? EventType::ScrollBegin : EventType::ScrollUpdate;
 
diff --git a/cc/metrics/average_lag_tracker_unittest.cc b/cc/metrics/average_lag_tracker_unittest.cc
index d5e0791..9889ba1 100644
--- a/cc/metrics/average_lag_tracker_unittest.cc
+++ b/cc/metrics/average_lag_tracker_unittest.cc
@@ -124,30 +124,28 @@
 };
 
 base::TimeTicks MillisecondsToTimeTicks(float t_ms) {
-  return base::TimeTicks() + base::TimeDelta::FromMilliseconds(t_ms);
+  return base::TimeTicks() + base::Milliseconds(t_ms);
 }
 
 // Simulate a simple situation that events at every 10ms and start at t=15ms,
 // frame swaps at every 10ms too and start at t=20ms and test we record one
 // UMA for ScrollUpdate in one second.
 TEST_F(AverageLagTrackerTest, OneSecondInterval) {
-  base::TimeTicks event_time =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(5);
-  base::TimeTicks frame_time =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(10);
+  base::TimeTicks event_time = base::TimeTicks() + base::Milliseconds(5);
+  base::TimeTicks frame_time = base::TimeTicks() + base::Milliseconds(10);
   float scroll_delta = 10;
 
   // ScrollBegin
-  event_time += base::TimeDelta::FromMilliseconds(10);  // 15ms
-  frame_time += base::TimeDelta::FromMilliseconds(10);  // 20ms
+  event_time += base::Milliseconds(10);  // 15ms
+  frame_time += base::Milliseconds(10);  // 20ms
   SyntheticTouchScrollBegin(event_time, frame_time, scroll_delta);
 
   // Send 101 ScrollUpdate events to verify that there is 1 AverageLag record
   // per 1 second.
   const int kUpdates = 101;
   for (int i = 0; i < kUpdates; i++) {
-    event_time += base::TimeDelta::FromMilliseconds(10);
-    frame_time += base::TimeDelta::FromMilliseconds(10);
+    event_time += base::Milliseconds(10);
+    frame_time += base::Milliseconds(10);
     // First 50 has positive delta, others negetive delta.
     const int sign = (i < kUpdates / 2) ? 1 : -1;
     SyntheticTouchScrollUpdate(event_time, frame_time, sign * scroll_delta);
@@ -156,10 +154,8 @@
   // ScrollBegin report_time is at 20ms, so the next ScrollUpdate report_time is
   // at 1020ms. The last event_time that finish this report should be later than
   // 1020ms.
-  EXPECT_EQ(event_time,
-            base::TimeTicks() + base::TimeDelta::FromMilliseconds(1025));
-  EXPECT_EQ(frame_time,
-            base::TimeTicks() + base::TimeDelta::FromMilliseconds(1030));
+  EXPECT_EQ(event_time, base::TimeTicks() + base::Milliseconds(1025));
+  EXPECT_EQ(frame_time, base::TimeTicks() + base::Milliseconds(1030));
 
   // ScrollBegin AverageLag are the area between the event original component
   // (time=15ms, delta=10px) to the frame swap time (time=20ms, expect finger
@@ -180,8 +176,8 @@
   ResetHistograms();
 
   // Send another ScrollBegin to end the unfinished ScrollUpdate report.
-  event_time += base::TimeDelta::FromMilliseconds(10);
-  frame_time += base::TimeDelta::FromMilliseconds(10);
+  event_time += base::Milliseconds(10);
+  frame_time += base::Milliseconds(10);
   SyntheticTouchScrollBegin(event_time, frame_time, scroll_delta);
 
   // The last ScrollUpdate's lag is 8.75px and truncated to 8.
@@ -196,8 +192,7 @@
 // event is at t=20ms).
 TEST_F(AverageLagTrackerTest, LargerLatency) {
   base::TimeTicks event_time = MillisecondsToTimeTicks(10);
-  base::TimeTicks frame_time =
-      event_time + base::TimeDelta::FromMilliseconds(20);
+  base::TimeTicks frame_time = event_time + base::Milliseconds(20);
   float scroll_delta = 10;
 
   SyntheticTouchScrollBegin(event_time, frame_time, scroll_delta);
@@ -205,8 +200,8 @@
   // Send 2 ScrollUpdate. The second one will record AverageLag.ScrollBegin as
   // it's event_time is larger or equal to ScrollBegin's frame_time.
   for (int i = 0; i < 2; i++) {
-    event_time += base::TimeDelta::FromMilliseconds(10);
-    frame_time = event_time + base::TimeDelta::FromMilliseconds(20);
+    event_time += base::Milliseconds(10);
+    frame_time = event_time + base::Milliseconds(20);
     SyntheticTouchScrollUpdate(event_time, frame_time, scroll_delta);
   }
 
diff --git a/cc/metrics/average_lag_tracking_manager_unittest.cc b/cc/metrics/average_lag_tracking_manager_unittest.cc
index 652ff08..c3091c7 100644
--- a/cc/metrics/average_lag_tracking_manager_unittest.cc
+++ b/cc/metrics/average_lag_tracking_manager_unittest.cc
@@ -22,7 +22,7 @@
 
 // Helper for TimeTicks usage
 base::TimeTicks MillisecondsToTimeTicks(int t_ms) {
-  return base::TimeTicks() + base::TimeDelta::FromMilliseconds(t_ms);
+  return base::TimeTicks() + base::Milliseconds(t_ms);
 }
 
 // Helper function returning a successful `FrameTimingDetails` for use in
@@ -61,7 +61,7 @@
     events[0] = PrepareScrollEvent(AverageLagTracker::EventType::ScrollBegin,
                                    event_time, 0, scroll_delta);
     for (size_t i = 1; i < events.size(); i++) {
-      event_time += base::TimeDelta::FromMilliseconds(scroll_rate);
+      event_time += base::Milliseconds(scroll_rate);
       events[i] = PrepareScrollEvent(AverageLagTracker::EventType::ScrollUpdate,
                                      event_time, i, scroll_delta);
     }
@@ -72,7 +72,7 @@
       int time_delta = gpu_swap_times[frame] - gpu_swap_times[frame - 1];
       events = std::vector<ui::LatencyInfo>(time_delta / scroll_rate);
       for (size_t i = 0; i < events.size(); i++) {
-        event_time += base::TimeDelta::FromMilliseconds(scroll_rate);
+        event_time += base::Milliseconds(scroll_rate);
         events[i] =
             PrepareScrollEvent(AverageLagTracker::EventType::ScrollUpdate,
                                event_time, i, scroll_delta);
@@ -126,9 +126,9 @@
   int frame_id = 1;
 
   // ScrollBegin
-  event_time += base::TimeDelta::FromMilliseconds(10);         // 15ms
-  gpu_swap_time += base::TimeDelta::FromMilliseconds(10);      // 20ms
-  presentation_time += base::TimeDelta::FromMilliseconds(10);  // 23ms
+  event_time += base::Milliseconds(10);         // 15ms
+  gpu_swap_time += base::Milliseconds(10);      // 20ms
+  presentation_time += base::Milliseconds(10);  // 23ms
   ui::LatencyInfo evt =
       PrepareScrollEvent(AverageLagTracker::EventType::ScrollBegin, event_time,
                          trace_id, scroll_delta);
@@ -140,9 +140,9 @@
   // per 1 second.
   const int kUpdates = 101;
   for (int i = 0; i < kUpdates; i++) {
-    event_time += base::TimeDelta::FromMilliseconds(10);
-    gpu_swap_time += base::TimeDelta::FromMilliseconds(10);
-    presentation_time += base::TimeDelta::FromMilliseconds(10);
+    event_time += base::Milliseconds(10);
+    gpu_swap_time += base::Milliseconds(10);
+    presentation_time += base::Milliseconds(10);
     // First 50 has positive delta, others negative delta.
     const int sign = (i < kUpdates / 2) ? 1 : -1;
 
diff --git a/cc/metrics/compositor_frame_reporter.cc b/cc/metrics/compositor_frame_reporter.cc
index 32d55f2..679f3ddf 100644
--- a/cc/metrics/compositor_frame_reporter.cc
+++ b/cc/metrics/compositor_frame_reporter.cc
@@ -293,9 +293,9 @@
     kFrameReportTypeCount * kFrameSequenceTrackerTypeCount *
     (kStageTypeCount + kAllBreakdownCount);
 constexpr base::TimeDelta kCompositorLatencyHistogramMin =
-    base::TimeDelta::FromMicroseconds(1);
+    base::Microseconds(1);
 constexpr base::TimeDelta kCompositorLatencyHistogramMax =
-    base::TimeDelta::FromMilliseconds(350);
+    base::Milliseconds(350);
 constexpr int kCompositorLatencyHistogramBucketCount = 50;
 
 constexpr int kEventLatencyEventTypeCount =
@@ -304,10 +304,8 @@
     static_cast<int>(EventMetrics::ScrollType::kMaxValue) + 1;
 constexpr int kMaxEventLatencyHistogramIndex =
     kEventLatencyEventTypeCount * kEventLatencyScrollTypeCount;
-constexpr base::TimeDelta kEventLatencyHistogramMin =
-    base::TimeDelta::FromMicroseconds(1);
-constexpr base::TimeDelta kEventLatencyHistogramMax =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kEventLatencyHistogramMin = base::Microseconds(1);
+constexpr base::TimeDelta kEventLatencyHistogramMax = base::Seconds(5);
 constexpr int kEventLatencyHistogramBucketCount = 100;
 
 std::string GetCompositorLatencyHistogramName(
diff --git a/cc/metrics/compositor_frame_reporter_unittest.cc b/cc/metrics/compositor_frame_reporter_unittest.cc
index 0f885408..642e965a 100644
--- a/cc/metrics/compositor_frame_reporter_unittest.cc
+++ b/cc/metrics/compositor_frame_reporter_unittest.cc
@@ -37,7 +37,7 @@
 
  protected:
   base::TimeTicks AdvanceNowByMs(int advance_ms) {
-    test_tick_clock_.Advance(base::TimeDelta::FromMicroseconds(advance_ms));
+    test_tick_clock_.Advance(base::Microseconds(advance_ms));
     return test_tick_clock_.NowTicks();
   }
 
@@ -45,16 +45,16 @@
 
   std::unique_ptr<BeginMainFrameMetrics> BuildBlinkBreakdown() {
     auto breakdown = std::make_unique<BeginMainFrameMetrics>();
-    breakdown->handle_input_events = base::TimeDelta::FromMicroseconds(10);
-    breakdown->animate = base::TimeDelta::FromMicroseconds(9);
-    breakdown->style_update = base::TimeDelta::FromMicroseconds(8);
-    breakdown->layout_update = base::TimeDelta::FromMicroseconds(7);
-    breakdown->compositing_inputs = base::TimeDelta::FromMicroseconds(6);
-    breakdown->prepaint = base::TimeDelta::FromMicroseconds(5);
-    breakdown->compositing_assignments = base::TimeDelta::FromMicroseconds(4);
-    breakdown->paint = base::TimeDelta::FromMicroseconds(3);
-    breakdown->composite_commit = base::TimeDelta::FromMicroseconds(2);
-    breakdown->update_layers = base::TimeDelta::FromMicroseconds(1);
+    breakdown->handle_input_events = base::Microseconds(10);
+    breakdown->animate = base::Microseconds(9);
+    breakdown->style_update = base::Microseconds(8);
+    breakdown->layout_update = base::Microseconds(7);
+    breakdown->compositing_inputs = base::Microseconds(6);
+    breakdown->prepaint = base::Microseconds(5);
+    breakdown->compositing_assignments = base::Microseconds(4);
+    breakdown->paint = base::Microseconds(3);
+    breakdown->composite_commit = base::Microseconds(2);
+    breakdown->update_layers = base::Microseconds(1);
 
     // Advance now by the sum of the breakdowns.
     AdvanceNowByMs(10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1);
diff --git a/cc/metrics/compositor_frame_reporting_controller.cc b/cc/metrics/compositor_frame_reporting_controller.cc
index 8ccda7ea94..b1b4a5e 100644
--- a/cc/metrics/compositor_frame_reporting_controller.cc
+++ b/cc/metrics/compositor_frame_reporting_controller.cc
@@ -513,8 +513,8 @@
 
   // keep the history for the last 3 seconds.
   if (!smooth_thread_history_.empty()) {
-    auto expired_smooth_thread = smooth_thread_history_.lower_bound(
-        Now() - base::TimeDelta::FromSeconds(3))--;
+    auto expired_smooth_thread =
+        smooth_thread_history_.lower_bound(Now() - base::Seconds(3))--;
     smooth_thread_history_.erase(smooth_thread_history_.begin(),
                                  expired_smooth_thread);
   }
diff --git a/cc/metrics/compositor_frame_reporting_controller_unittest.cc b/cc/metrics/compositor_frame_reporting_controller_unittest.cc
index 691992e..1837347 100644
--- a/cc/metrics/compositor_frame_reporting_controller_unittest.cc
+++ b/cc/metrics/compositor_frame_reporting_controller_unittest.cc
@@ -193,23 +193,23 @@
     args_ = viz::BeginFrameArgs();
     args_.frame_id = frame_id;
     args_.frame_time = AdvanceNowByMs(10);
-    args_.interval = base::TimeDelta::FromMilliseconds(16);
+    args_.interval = base::Milliseconds(16);
     current_id_ = frame_id;
     return args_;
   }
 
   std::unique_ptr<BeginMainFrameMetrics> BuildBlinkBreakdown() {
     auto breakdown = std::make_unique<BeginMainFrameMetrics>();
-    breakdown->handle_input_events = base::TimeDelta::FromMicroseconds(10);
-    breakdown->animate = base::TimeDelta::FromMicroseconds(9);
-    breakdown->style_update = base::TimeDelta::FromMicroseconds(8);
-    breakdown->layout_update = base::TimeDelta::FromMicroseconds(7);
-    breakdown->compositing_inputs = base::TimeDelta::FromMicroseconds(6);
-    breakdown->prepaint = base::TimeDelta::FromMicroseconds(5);
-    breakdown->compositing_assignments = base::TimeDelta::FromMicroseconds(4);
-    breakdown->paint = base::TimeDelta::FromMicroseconds(3);
-    breakdown->composite_commit = base::TimeDelta::FromMicroseconds(2);
-    breakdown->update_layers = base::TimeDelta::FromMicroseconds(1);
+    breakdown->handle_input_events = base::Microseconds(10);
+    breakdown->animate = base::Microseconds(9);
+    breakdown->style_update = base::Microseconds(8);
+    breakdown->layout_update = base::Microseconds(7);
+    breakdown->compositing_inputs = base::Microseconds(6);
+    breakdown->prepaint = base::Microseconds(5);
+    breakdown->compositing_assignments = base::Microseconds(4);
+    breakdown->paint = base::Microseconds(3);
+    breakdown->composite_commit = base::Microseconds(2);
+    breakdown->update_layers = base::Microseconds(1);
 
     // Advance now by the sum of the breakdowns.
     AdvanceNowByMs(10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1);
@@ -233,7 +233,7 @@
   }
 
   base::TimeTicks AdvanceNowByMs(int64_t advance_ms) {
-    test_tick_clock_.Advance(base::TimeDelta::FromMicroseconds(advance_ms));
+    test_tick_clock_.Advance(base::Microseconds(advance_ms));
     return test_tick_clock_.NowTicks();
   }
 
@@ -977,34 +977,34 @@
       "CompositorLatency.SendBeginMainFrameToCommit", 1);
   histogram_tester.ExpectUniqueSample(
       "CompositorLatency.SendBeginMainFrameToCommit.HandleInputEvents",
-      base::TimeDelta::FromMicroseconds(10).InMilliseconds(), 1);
+      base::Microseconds(10).InMilliseconds(), 1);
   histogram_tester.ExpectUniqueSample(
       "CompositorLatency.SendBeginMainFrameToCommit.Animate",
-      base::TimeDelta::FromMicroseconds(9).InMilliseconds(), 1);
+      base::Microseconds(9).InMilliseconds(), 1);
   histogram_tester.ExpectUniqueSample(
       "CompositorLatency.SendBeginMainFrameToCommit.StyleUpdate",
-      base::TimeDelta::FromMicroseconds(8).InMilliseconds(), 1);
+      base::Microseconds(8).InMilliseconds(), 1);
   histogram_tester.ExpectUniqueSample(
       "CompositorLatency.SendBeginMainFrameToCommit.LayoutUpdate",
-      base::TimeDelta::FromMicroseconds(7).InMilliseconds(), 1);
+      base::Microseconds(7).InMilliseconds(), 1);
   histogram_tester.ExpectUniqueSample(
       "CompositorLatency.SendBeginMainFrameToCommit.CompositingInputs",
-      base::TimeDelta::FromMicroseconds(6).InMilliseconds(), 1);
+      base::Microseconds(6).InMilliseconds(), 1);
   histogram_tester.ExpectUniqueSample(
       "CompositorLatency.SendBeginMainFrameToCommit.Prepaint",
-      base::TimeDelta::FromMicroseconds(5).InMilliseconds(), 1);
+      base::Microseconds(5).InMilliseconds(), 1);
   histogram_tester.ExpectUniqueSample(
       "CompositorLatency.SendBeginMainFrameToCommit.CompositingAssignments",
-      base::TimeDelta::FromMicroseconds(4).InMilliseconds(), 1);
+      base::Microseconds(4).InMilliseconds(), 1);
   histogram_tester.ExpectUniqueSample(
       "CompositorLatency.SendBeginMainFrameToCommit.Paint",
-      base::TimeDelta::FromMicroseconds(3).InMilliseconds(), 1);
+      base::Microseconds(3).InMilliseconds(), 1);
   histogram_tester.ExpectUniqueSample(
       "CompositorLatency.SendBeginMainFrameToCommit.CompositeCommit",
-      base::TimeDelta::FromMicroseconds(2).InMilliseconds(), 1);
+      base::Microseconds(2).InMilliseconds(), 1);
   histogram_tester.ExpectUniqueSample(
       "CompositorLatency.SendBeginMainFrameToCommit.UpdateLayers",
-      base::TimeDelta::FromMicroseconds(1).InMilliseconds(), 1);
+      base::Microseconds(1).InMilliseconds(), 1);
   histogram_tester.ExpectTotalCount(
       "CompositorLatency.SendBeginMainFrameToCommit.BeginMainSentToStarted", 1);
 }
@@ -1024,8 +1024,7 @@
       1, current_id_, current_id_, {}, /*has_missing_content=*/false);
   viz::FrameTimingDetails details = {};
   details.presentation_feedback.timestamp =
-      args_.frame_time + args_.interval * 1.5 -
-      base::TimeDelta::FromMicroseconds(100);
+      args_.frame_time + args_.interval * 1.5 - base::Microseconds(100);
   reporting_controller_.DidPresentCompositorFrame(1, details);
 
   histogram_tester.ExpectTotalCount(
@@ -1063,8 +1062,7 @@
       1, current_id_, current_id_, {}, /*has_missing_content=*/false);
   viz::FrameTimingDetails details = {};
   details.presentation_feedback.timestamp =
-      args_.frame_time + args_.interval * 1.5 +
-      base::TimeDelta::FromMicroseconds(100);
+      args_.frame_time + args_.interval * 1.5 + base::Microseconds(100);
   reporting_controller_.DidPresentCompositorFrame(1, details);
 
   histogram_tester.ExpectTotalCount(
diff --git a/cc/metrics/compositor_timing_history.cc b/cc/metrics/compositor_timing_history.cc
index c8c2bb6..6a2ca30 100644
--- a/cc/metrics/compositor_timing_history.cc
+++ b/cc/metrics/compositor_timing_history.cc
@@ -53,7 +53,7 @@
 // The threshold to emit a trace event is the 99th percentile
 // of the histogram on Windows Stable as of Feb 26th, 2020.
 constexpr base::TimeDelta kDrawIntervalTraceThreshold =
-    base::TimeDelta::FromMicroseconds(34478);
+    base::Microseconds(34478);
 
 // Using the 90th percentile will disable latency recovery
 // if we are missing the deadline approximately ~6 times per
diff --git a/cc/metrics/compositor_timing_history_unittest.cc b/cc/metrics/compositor_timing_history_unittest.cc
index 88cff9f..97a27478 100644
--- a/cc/metrics/compositor_timing_history_unittest.cc
+++ b/cc/metrics/compositor_timing_history_unittest.cc
@@ -36,7 +36,7 @@
   CompositorTimingHistoryTest()
       : rendering_stats_(RenderingStatsInstrumentation::Create()),
         timing_history_(this, rendering_stats_.get()) {
-    AdvanceNowBy(base::TimeDelta::FromMilliseconds(1));
+    AdvanceNowBy(base::Milliseconds(1));
     timing_history_.SetRecordingEnabled(true);
   }
 
@@ -66,22 +66,20 @@
 }
 
 TEST_F(CompositorTimingHistoryTest, AllSequential_Commit) {
-  base::TimeDelta one_second = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta one_second = base::Seconds(1);
 
   // Critical BeginMainFrames are faster than non critical ones,
   // as expected.
-  base::TimeDelta begin_main_frame_queue_duration =
-      base::TimeDelta::FromMilliseconds(1);
+  base::TimeDelta begin_main_frame_queue_duration = base::Milliseconds(1);
   base::TimeDelta begin_main_frame_start_to_ready_to_commit_duration =
-      base::TimeDelta::FromMilliseconds(1);
-  base::TimeDelta prepare_tiles_duration = base::TimeDelta::FromMilliseconds(2);
+      base::Milliseconds(1);
+  base::TimeDelta prepare_tiles_duration = base::Milliseconds(2);
   base::TimeDelta prepare_tiles_end_to_ready_to_activate_duration =
-      base::TimeDelta::FromMilliseconds(1);
-  base::TimeDelta commit_to_ready_to_activate_duration =
-      base::TimeDelta::FromMilliseconds(3);
-  base::TimeDelta commit_duration = base::TimeDelta::FromMilliseconds(1);
-  base::TimeDelta activate_duration = base::TimeDelta::FromMilliseconds(4);
-  base::TimeDelta draw_duration = base::TimeDelta::FromMilliseconds(5);
+      base::Milliseconds(1);
+  base::TimeDelta commit_to_ready_to_activate_duration = base::Milliseconds(3);
+  base::TimeDelta commit_duration = base::Milliseconds(1);
+  base::TimeDelta activate_duration = base::Milliseconds(4);
+  base::TimeDelta draw_duration = base::Milliseconds(5);
 
   timing_history_.WillBeginMainFrame(GetFakeBeginFrameArg());
   AdvanceNowBy(begin_main_frame_queue_duration);
@@ -125,17 +123,16 @@
 }
 
 TEST_F(CompositorTimingHistoryTest, AllSequential_BeginMainFrameAborted) {
-  base::TimeDelta one_second = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta one_second = base::Seconds(1);
 
-  base::TimeDelta begin_main_frame_queue_duration =
-      base::TimeDelta::FromMilliseconds(1);
+  base::TimeDelta begin_main_frame_queue_duration = base::Milliseconds(1);
   base::TimeDelta begin_main_frame_start_to_ready_to_commit_duration =
-      base::TimeDelta::FromMilliseconds(1);
-  base::TimeDelta prepare_tiles_duration = base::TimeDelta::FromMilliseconds(2);
+      base::Milliseconds(1);
+  base::TimeDelta prepare_tiles_duration = base::Milliseconds(2);
   base::TimeDelta prepare_tiles_end_to_ready_to_activate_duration =
-      base::TimeDelta::FromMilliseconds(1);
-  base::TimeDelta activate_duration = base::TimeDelta::FromMilliseconds(4);
-  base::TimeDelta draw_duration = base::TimeDelta::FromMilliseconds(5);
+      base::Milliseconds(1);
+  base::TimeDelta activate_duration = base::Milliseconds(4);
+  base::TimeDelta draw_duration = base::Milliseconds(5);
 
   viz::BeginFrameArgs args_ = GetFakeBeginFrameArg(false);
   timing_history_.WillBeginMainFrame(args_);
@@ -173,11 +170,11 @@
 TEST_F(CompositorTimingHistoryTest, BeginMainFrame_CriticalFaster) {
   // Critical BeginMainFrames are faster than non critical ones.
   base::TimeDelta begin_main_frame_queue_duration_critical =
-      base::TimeDelta::FromMilliseconds(1);
+      base::Milliseconds(1);
   base::TimeDelta begin_main_frame_queue_duration_not_critical =
-      base::TimeDelta::FromMilliseconds(2);
+      base::Milliseconds(2);
   base::TimeDelta begin_main_frame_start_to_ready_to_commit_duration =
-      base::TimeDelta::FromMilliseconds(1);
+      base::Milliseconds(1);
 
   viz::BeginFrameArgs args_ = GetFakeBeginFrameArg();
   timing_history_.WillBeginMainFrame(args_);
@@ -206,11 +203,11 @@
   // which is unexpected, but could occur if one type of frame
   // hasn't been sent for a significant amount of time.
   base::TimeDelta begin_main_frame_queue_duration_critical =
-      base::TimeDelta::FromMilliseconds(2);
+      base::Milliseconds(2);
   base::TimeDelta begin_main_frame_queue_duration_not_critical =
-      base::TimeDelta::FromMilliseconds(1);
+      base::Milliseconds(1);
   base::TimeDelta begin_main_frame_start_to_ready_to_commit_duration =
-      base::TimeDelta::FromMilliseconds(1);
+      base::Milliseconds(1);
 
   // A single critical frame that is slow.
   viz::BeginFrameArgs args_ = GetFakeBeginFrameArg();
@@ -245,11 +242,11 @@
   // which is unexpected, but could occur if one type of frame
   // hasn't been sent for a significant amount of time.
   base::TimeDelta begin_main_frame_queue_duration_critical =
-      base::TimeDelta::FromMilliseconds(2);
+      base::Milliseconds(2);
   base::TimeDelta begin_main_frame_queue_duration_not_critical =
-      base::TimeDelta::FromMilliseconds(1);
+      base::Milliseconds(1);
   base::TimeDelta begin_main_frame_start_to_ready_to_commit_duration =
-      base::TimeDelta::FromMilliseconds(1);
+      base::Milliseconds(1);
 
   // A single non critical frame that is fast.
   viz::BeginFrameArgs args_ = GetFakeBeginFrameArg(false);
diff --git a/cc/metrics/dropped_frame_counter.cc b/cc/metrics/dropped_frame_counter.cc
index 0bc08c2..cdf9009 100644
--- a/cc/metrics/dropped_frame_counter.cc
+++ b/cc/metrics/dropped_frame_counter.cc
@@ -224,9 +224,8 @@
     if (args.frame_id.source_id == scroll_start.frame_id.source_id) {
       UMA_HISTOGRAM_CUSTOM_TIMES(
           "Graphics.Smoothness.Diagnostic.DroppedFrameAfterScrollStart.Time",
-          (args.frame_time - scroll_start.timestamp),
-          base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromSeconds(4),
-          50);
+          (args.frame_time - scroll_start.timestamp), base::Milliseconds(1),
+          base::Seconds(4), 50);
       UMA_HISTOGRAM_CUSTOM_COUNTS(
           "Graphics.Smoothness.Diagnostic.DroppedFrameAfterScrollStart.Frames",
           (args.frame_id.sequence_number -
@@ -422,15 +421,15 @@
 
   const auto fcp_time_delta = base::TimeTicks::Now() - time_fcp_received_;
 
-  if (fcp_time_delta > base::TimeDelta::FromSeconds(1))
+  if (fcp_time_delta > base::Seconds(1))
     sliding_window_max_percent_dropped_After_1_sec_ =
         std::max(sliding_window_max_percent_dropped_After_1_sec_.value_or(0.0),
                  percent_dropped_frame);
-  if (fcp_time_delta > base::TimeDelta::FromSeconds(2))
+  if (fcp_time_delta > base::Seconds(2))
     sliding_window_max_percent_dropped_After_2_sec_ =
         std::max(sliding_window_max_percent_dropped_After_2_sec_.value_or(0.0),
                  percent_dropped_frame);
-  if (fcp_time_delta > base::TimeDelta::FromSeconds(5))
+  if (fcp_time_delta > base::Seconds(5))
     sliding_window_max_percent_dropped_After_5_sec_ =
         std::max(sliding_window_max_percent_dropped_After_5_sec_.value_or(0.0),
                  percent_dropped_frame);
diff --git a/cc/metrics/dropped_frame_counter.h b/cc/metrics/dropped_frame_counter.h
index 380fd45..87f4daf9 100644
--- a/cc/metrics/dropped_frame_counter.h
+++ b/cc/metrics/dropped_frame_counter.h
@@ -114,8 +114,7 @@
 
   void UpdateMaxPercentDroppedFrame(double percent_dropped_frame);
 
-  const base::TimeDelta kSlidingWindowInterval =
-      base::TimeDelta::FromSeconds(1);
+  const base::TimeDelta kSlidingWindowInterval = base::Seconds(1);
   std::queue<std::pair<const viz::BeginFrameArgs, bool>> sliding_window_;
   uint32_t dropped_frame_count_in_window_ = 0;
   double total_frames_in_window_ = 60.0;
diff --git a/cc/metrics/dropped_frame_counter_unittest.cc b/cc/metrics/dropped_frame_counter_unittest.cc
index a9291b1d..0ac7053f 100644
--- a/cc/metrics/dropped_frame_counter_unittest.cc
+++ b/cc/metrics/dropped_frame_counter_unittest.cc
@@ -318,9 +318,7 @@
     return dropped_frame_counter_.SlidingWindow95PercentilePercentDropped();
   }
 
-  double GetTotalFramesInWindow() {
-    return base::TimeDelta::FromSeconds(1) / interval_;
-  }
+  double GetTotalFramesInWindow() { return base::Seconds(1) / interval_; }
 
   void SetInterval(base::TimeDelta interval) { interval_ = interval; }
 
@@ -361,8 +359,7 @@
   uint64_t source_id_ = 1;
   const base::TickClock* tick_clock_ = base::DefaultTickClock::GetInstance();
   base::TimeTicks frame_time_ = tick_clock_->NowTicks();
-  base::TimeDelta interval_ =
-      base::TimeDelta::FromMicroseconds(16667);  // 16.667 ms
+  base::TimeDelta interval_ = base::Microseconds(16667);  // 16.667 ms
 
   viz::BeginFrameArgs SimulateBeginFrameArgs() {
     viz::BeginFrameId current_id_(source_id_, sequence_number_);
@@ -454,7 +451,7 @@
 }
 
 TEST_F(DroppedFrameCounterTest, NoCrashForIntervalLargerThanWindow) {
-  SetInterval(base::TimeDelta::FromMilliseconds(1000));
+  SetInterval(base::Milliseconds(1000));
   SimulateFrameSequence({false, false}, 1);
 }
 
@@ -465,8 +462,8 @@
   // The 96%ile dropped-frame metric should be 0.
 
   // Set an interval that rounds up nicely with 1 second.
-  constexpr auto kInterval = base::TimeDelta::FromMilliseconds(10);
-  constexpr size_t kFps = base::TimeDelta::FromSeconds(1) / kInterval;
+  constexpr auto kInterval = base::Milliseconds(10);
+  constexpr size_t kFps = base::Seconds(1) / kInterval;
   static_assert(
       kFps % 5 == 0,
       "kFps must be a multiple of 5 because this test depends on it.");
@@ -499,8 +496,8 @@
   // contribute to the sliding window.
 
   // Set an interval that rounds up nicely with 1 second.
-  constexpr auto kInterval = base::TimeDelta::FromMilliseconds(10);
-  constexpr size_t kFps = base::TimeDelta::FromSeconds(1) / kInterval;
+  constexpr auto kInterval = base::Milliseconds(10);
+  constexpr size_t kFps = base::Seconds(1) / kInterval;
   static_assert(
       kFps % 5 == 0,
       "kFps must be a multiple of 5 because this test depends on it.");
@@ -532,8 +529,8 @@
   // contribute to the sliding window.
 
   // Set an interval that rounds up nicely with 1 second.
-  constexpr auto kInterval = base::TimeDelta::FromMilliseconds(10);
-  constexpr size_t kFps = base::TimeDelta::FromSeconds(1) / kInterval;
+  constexpr auto kInterval = base::Milliseconds(10);
+  constexpr size_t kFps = base::Seconds(1) / kInterval;
   static_assert(
       kFps % 5 == 0,
       "kFps must be a multiple of 5 because this test depends on it.");
@@ -573,8 +570,8 @@
   // a new GPU Process. (https://crbug.com/1164647)
 
   // Set an interval that rounds up nicely with 1 second.
-  constexpr auto kInterval = base::TimeDelta::FromMilliseconds(10);
-  constexpr size_t kFps = base::TimeDelta::FromSeconds(1) / kInterval;
+  constexpr auto kInterval = base::Milliseconds(10);
+  constexpr size_t kFps = base::Seconds(1) / kInterval;
   SetInterval(kInterval);
 
   // One good frame
@@ -603,8 +600,8 @@
 
 TEST_F(DroppedFrameCounterTest, ResetPendingFramesAccountingForPendingFrames) {
   // Set an interval that rounds up nicely with 1 second.
-  constexpr auto kInterval = base::TimeDelta::FromMilliseconds(10);
-  constexpr size_t kFps = base::TimeDelta::FromSeconds(1) / kInterval;
+  constexpr auto kInterval = base::Milliseconds(10);
+  constexpr size_t kFps = base::Seconds(1) / kInterval;
   SetInterval(kInterval);
 
   // First 2 seconds with 20% dropped frames.
@@ -627,8 +624,8 @@
 
 TEST_F(DroppedFrameCounterTest, Reset) {
   // Set an interval that rounds up nicely with 1 second.
-  constexpr auto kInterval = base::TimeDelta::FromMilliseconds(10);
-  constexpr size_t kFps = base::TimeDelta::FromSeconds(1) / kInterval;
+  constexpr auto kInterval = base::Milliseconds(10);
+  constexpr size_t kFps = base::Seconds(1) / kInterval;
   SetInterval(kInterval);
 
   // First 2 seconds with 20% dropped frames.
@@ -651,8 +648,8 @@
 
 TEST_F(DroppedFrameCounterTest, ConsistentSmoothnessRatings) {
   // Set an interval that rounds up nicely with 1 second.
-  constexpr auto kInterval = base::TimeDelta::FromMilliseconds(10);
-  constexpr size_t kFps = base::TimeDelta::FromSeconds(1) / kInterval;
+  constexpr auto kInterval = base::Milliseconds(10);
+  constexpr size_t kFps = base::Seconds(1) / kInterval;
   static_assert(kFps == 100,
                 "kFps must be 100 because this test depends on it.");
   SetInterval(kInterval);
@@ -700,8 +697,8 @@
 
 TEST_F(DroppedFrameCounterTest, MovingSmoothnessRatings) {
   // Set an interval that rounds up nicely with 1 second.
-  constexpr auto kInterval = base::TimeDelta::FromMilliseconds(10);
-  constexpr size_t kFps = base::TimeDelta::FromSeconds(1) / kInterval;
+  constexpr auto kInterval = base::Milliseconds(10);
+  constexpr size_t kFps = base::Seconds(1) / kInterval;
   static_assert(kFps == 100,
                 "kFps must be 100 because this test depends on it.");
   SetInterval(kInterval);
diff --git a/cc/metrics/events_metrics_manager_unittest.cc b/cc/metrics/events_metrics_manager_unittest.cc
index 0d0b6b9..d97becc 100644
--- a/cc/metrics/events_metrics_manager_unittest.cc
+++ b/cc/metrics/events_metrics_manager_unittest.cc
@@ -53,9 +53,9 @@
 
  protected:
   std::unique_ptr<EventMetrics> CreateEventMetrics(ui::EventType type) {
-    test_tick_clock_.Advance(base::TimeDelta::FromMicroseconds(10));
+    test_tick_clock_.Advance(base::Microseconds(10));
     base::TimeTicks event_time = test_tick_clock_.NowTicks();
-    test_tick_clock_.Advance(base::TimeDelta::FromMicroseconds(10));
+    test_tick_clock_.Advance(base::Microseconds(10));
     return EventMetrics::CreateForTesting(type, absl::nullopt, event_time,
                                           &test_tick_clock_);
   }
diff --git a/cc/metrics/frame_sequence_tracker.cc b/cc/metrics/frame_sequence_tracker.cc
index 8fa97bf..65f52e8 100644
--- a/cc/metrics/frame_sequence_tracker.cc
+++ b/cc/metrics/frame_sequence_tracker.cc
@@ -525,7 +525,7 @@
                                  ? viz::BeginFrameArgs::DefaultInterval()
                                  : feedback.interval;
       DCHECK(!interval.is_zero()) << TRACKER_DCHECK_MSG;
-      constexpr base::TimeDelta kEpsilon = base::TimeDelta::FromMilliseconds(1);
+      constexpr base::TimeDelta kEpsilon = base::Milliseconds(1);
       int64_t frames = (difference + kEpsilon).IntDiv(interval);
       metrics_->add_checkerboarded_frames(frames);
     }
diff --git a/cc/metrics/frame_sequence_tracker.h b/cc/metrics/frame_sequence_tracker.h
index 1630c71..fd620120 100644
--- a/cc/metrics/frame_sequence_tracker.h
+++ b/cc/metrics/frame_sequence_tracker.h
@@ -228,7 +228,7 @@
   base::flat_set<uint32_t> ignored_frame_tokens_;
 
   // Report the throughput metrics every 5 seconds.
-  const base::TimeDelta time_delta_to_report_ = base::TimeDelta::FromSeconds(5);
+  const base::TimeDelta time_delta_to_report_ = base::Seconds(5);
 
   uint64_t last_started_impl_sequence_ = 0;
   uint64_t last_processed_impl_sequence_ = 0;
diff --git a/cc/metrics/frame_sequence_tracker_unittest.cc b/cc/metrics/frame_sequence_tracker_unittest.cc
index 1cfa9f30..4def808 100644
--- a/cc/metrics/frame_sequence_tracker_unittest.cc
+++ b/cc/metrics/frame_sequence_tracker_unittest.cc
@@ -65,7 +65,7 @@
       uint64_t source_id,
       uint64_t sequence_number,
       base::TimeTicks now = base::TimeTicks::Now()) {
-    auto interval = base::TimeDelta::FromMilliseconds(16);
+    auto interval = base::Milliseconds(16);
     auto deadline = now + interval;
     return viz::BeginFrameArgs::Create(BEGINFRAME_FROM_HERE, source_id,
                                        sequence_number, now, deadline, interval,
@@ -361,7 +361,7 @@
   uint64_t frame_token = sequence;
   const char* histogram_name =
       "Graphics.Smoothness.Jank.Compositor.TouchScroll";
-  const base::TimeDelta zero_interval = base::TimeDelta::FromMilliseconds(0);
+  const base::TimeDelta zero_interval = base::Milliseconds(0);
   base::HistogramTester histogram_tester;
 
   CreateNewTracker();
@@ -381,7 +381,7 @@
   // Frame 2
   ++sequence;
   ++frame_token;
-  args_timestamp += base::TimeDelta::FromMillisecondsD(16.67);
+  args_timestamp += base::Milliseconds(16.67);
   args = CreateBeginFrameArgs(source, sequence, args_timestamp);
   collection_.NotifyBeginImplFrame(args);
   collection_.NotifySubmitFrame(sequence, false, viz::BeginFrameAck(args, true),
@@ -395,7 +395,7 @@
   // to 30.0ms)
   ++sequence;
   ++frame_token;
-  args_timestamp += base::TimeDelta::FromMillisecondsD(30.0);
+  args_timestamp += base::Milliseconds(30.0);
   args = CreateBeginFrameArgs(source, sequence, args_timestamp);
   collection_.NotifyBeginImplFrame(args);
   collection_.NotifySubmitFrame(sequence, false, viz::BeginFrameAck(args, true),
@@ -410,7 +410,7 @@
   // situation when the frame interval reported in presentation feedback is 0.
   ++sequence;
   ++frame_token;
-  args_timestamp += base::TimeDelta::FromMillisecondsD(31.0);
+  args_timestamp += base::Milliseconds(31.0);
   args = CreateBeginFrameArgs(source, sequence, args_timestamp);
   collection_.NotifyBeginImplFrame(args);
   collection_.NotifySubmitFrame(sequence, false, viz::BeginFrameAck(args, true),
@@ -582,7 +582,7 @@
 TEST_F(FrameSequenceTrackerTest, ReportMetricsAtFixedInterval) {
   const uint64_t source = 1;
   uint64_t sequence = 0;
-  base::TimeDelta first_time_delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta first_time_delta = base::Seconds(1);
   auto args = CreateBeginFrameArgs(source, ++sequence,
                                    base::TimeTicks::Now() + first_time_delta);
 
diff --git a/cc/metrics/jank_injector_unittest.cc b/cc/metrics/jank_injector_unittest.cc
index a6587373..ad5472f 100644
--- a/cc/metrics/jank_injector_unittest.cc
+++ b/cc/metrics/jank_injector_unittest.cc
@@ -35,7 +35,7 @@
 
   const uint32_t kSourceId = 1;
   uint32_t sequence_number = 1;
-  constexpr base::TimeDelta kInterval = base::TimeDelta::FromMilliseconds(16);
+  constexpr base::TimeDelta kInterval = base::Milliseconds(16);
   base::TimeTicks frame_time = base::TimeTicks::Now();
   base::TimeTicks deadline = frame_time + kInterval;
 
diff --git a/cc/metrics/jank_metrics.cc b/cc/metrics/jank_metrics.cc
index e2932a8e..2ae7f7c 100644
--- a/cc/metrics/jank_metrics.cc
+++ b/cc/metrics/jank_metrics.cc
@@ -25,10 +25,8 @@
 constexpr int kMaximumJankHistogramIndex = 2 * kBuiltinSequenceNum;
 constexpr int kMaximumStaleHistogramIndex = kBuiltinSequenceNum;
 
-constexpr base::TimeDelta kStaleHistogramMin =
-    base::TimeDelta::FromMicroseconds(1);
-constexpr base::TimeDelta kStaleHistogramMax =
-    base::TimeDelta::FromMilliseconds(1000);
+constexpr base::TimeDelta kStaleHistogramMin = base::Microseconds(1);
+constexpr base::TimeDelta kStaleHistogramMax = base::Milliseconds(1000);
 constexpr int kStaleHistogramBucketCount = 200;
 
 constexpr bool IsValidJankThreadType(FrameSequenceMetrics::ThreadType type) {
@@ -177,7 +175,7 @@
 
   // Exclude the presentation delay introduced by no-update frames. If this
   // exclusion results in negative frame delta, treat the frame delta as 0.
-  const base::TimeDelta zero_delta = base::TimeDelta::FromMilliseconds(0);
+  const base::TimeDelta zero_delta = base::Milliseconds(0);
 
   // Setting the current_frame_delta to zero conveniently excludes the current
   // frame to be ignored from jank/stale calculation.
diff --git a/cc/metrics/jank_metrics_unittest.cc b/cc/metrics/jank_metrics_unittest.cc
index 7313544a..0e9cf3bb 100644
--- a/cc/metrics/jank_metrics_unittest.cc
+++ b/cc/metrics/jank_metrics_unittest.cc
@@ -21,8 +21,7 @@
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace {
-const base::TimeDelta kDefaultFrameInterval =
-    base::TimeDelta::FromMillisecondsD(16.67);
+const base::TimeDelta kDefaultFrameInterval = base::Milliseconds(16.67);
 
 // All sequence numbers for simulated frame events will start at this number.
 // This makes it easier to numerically distinguish sequence numbers versus
@@ -127,7 +126,7 @@
             /*presented_frame_token=*/submit_to_token[presnts[i]],
             /*current_presentation_timestamp=*/start_time +
                 i * kDefaultFrameInterval +
-                base::TimeDelta::FromMillisecondsD(presentation_offset),
+                base::Milliseconds(presentation_offset),
             /*frame_interval=*/kDefaultFrameInterval);
         submit_to_token.erase(presnts[i]);
       }
@@ -482,15 +481,13 @@
 
   jank_reporter.Merge(std::move(other_reporter));
   EXPECT_EQ(jank_reporter.jank_count(), 6);
-  EXPECT_TRUE(
-      jank_reporter.max_staleness() > base::TimeDelta::FromMilliseconds(33) &&
-      jank_reporter.max_staleness() < base::TimeDelta::FromMilliseconds(34));
+  EXPECT_TRUE(jank_reporter.max_staleness() > base::Milliseconds(33) &&
+              jank_reporter.max_staleness() < base::Milliseconds(34));
   jank_reporter.ReportJankMetrics(100u);
 
   // Jank / staleness values should be reset after reporting
   EXPECT_EQ(jank_reporter.jank_count(), 0);
-  EXPECT_EQ(jank_reporter.max_staleness(),
-            base::TimeDelta::FromMilliseconds(0));
+  EXPECT_EQ(jank_reporter.max_staleness(), base::Milliseconds(0));
 
   // Expect 6 janks for "Main" (3 from each reporter)
   const char* metric = "Graphics.Smoothness.Jank.Main.RAF";
diff --git a/cc/metrics/lcd_text_metrics_reporter.cc b/cc/metrics/lcd_text_metrics_reporter.cc
index 023651ce..3949639 100644
--- a/cc/metrics/lcd_text_metrics_reporter.cc
+++ b/cc/metrics/lcd_text_metrics_reporter.cc
@@ -16,7 +16,7 @@
 
 namespace {
 
-constexpr auto kMinimumTimeInterval = base::TimeDelta::FromMinutes(1);
+constexpr auto kMinimumTimeInterval = base::Minutes(1);
 constexpr unsigned kMinimumFrameInterval = 500;
 
 // This must be the same as that used in DeviceScaleEnsuresTextQuality() in
diff --git a/cc/metrics/total_frame_counter_unittest.cc b/cc/metrics/total_frame_counter_unittest.cc
index 2baee72..fd846fe 100644
--- a/cc/metrics/total_frame_counter_unittest.cc
+++ b/cc/metrics/total_frame_counter_unittest.cc
@@ -15,7 +15,7 @@
   TotalFrameCounter counter;
   uint64_t sequence_number = 1;
   auto frame_time = base::TimeTicks::Now();
-  const auto interval = base::TimeDelta::FromMillisecondsD(16.67);
+  const auto interval = base::Milliseconds(16.67);
 
   auto args = viz::BeginFrameArgs::Create(
       BEGINFRAME_FROM_HERE, kSourceId, sequence_number++, frame_time,
@@ -23,7 +23,7 @@
   counter.OnShow(frame_time);
   counter.OnBeginFrame(args);
 
-  auto advance = base::TimeDelta::FromSeconds(1);
+  auto advance = base::Seconds(1);
   frame_time += advance;
   counter.OnHide(frame_time);
   EXPECT_EQ(counter.total_frames(), 60u);
@@ -34,7 +34,7 @@
   uint64_t sequence_number = 1;
   auto frame_time = base::TimeTicks::Now();
   // Use intervals that divide evenly into one second to avoid rounding issues.
-  auto interval = base::TimeDelta::FromMilliseconds(20);
+  auto interval = base::Milliseconds(20);
 
   // Make the page visible at 50fps.
   auto args = viz::BeginFrameArgs::Create(
@@ -44,15 +44,15 @@
   counter.OnBeginFrame(args);
 
   // After 10 seconds, change the frame rate to be 100fps.
-  interval = base::TimeDelta::FromMilliseconds(10);
-  frame_time += base::TimeDelta::FromSeconds(10);
+  interval = base::Milliseconds(10);
+  frame_time += base::Seconds(10);
   args = viz::BeginFrameArgs::Create(
       BEGINFRAME_FROM_HERE, kSourceId, sequence_number++, frame_time,
       frame_time + interval, interval, viz::BeginFrameArgs::NORMAL);
   counter.OnBeginFrame(args);
 
   // Hide the page after 10 more seconds.
-  auto advance = base::TimeDelta::FromSeconds(10);
+  auto advance = base::Seconds(10);
   frame_time += advance;
   counter.OnHide(frame_time);
   EXPECT_EQ(counter.total_frames(), 1500u);
@@ -62,7 +62,7 @@
   TotalFrameCounter counter;
   uint64_t sequence_number = 1;
   auto frame_time = base::TimeTicks::Now();
-  auto interval = base::TimeDelta::FromMillisecondsD(16.67);
+  auto interval = base::Milliseconds(16.67);
 
   // Make the page visible at the default frame rate.
   auto args = viz::BeginFrameArgs::Create(
@@ -72,20 +72,20 @@
   counter.OnBeginFrame(args);
 
   // Hide the page after 10 seconds.
-  frame_time += base::TimeDelta::FromSeconds(10);
+  frame_time += base::Seconds(10);
   counter.OnHide(frame_time);
   EXPECT_EQ(counter.total_frames(), 600u);
 
   // After 20 more seconds, make the page visible again and keep it visible for
   // 5 more seconds.
-  frame_time += base::TimeDelta::FromSeconds(20);
+  frame_time += base::Seconds(20);
   counter.OnShow(frame_time);
   args = viz::BeginFrameArgs::Create(
       BEGINFRAME_FROM_HERE, kSourceId, sequence_number++, frame_time,
       frame_time + interval, interval, viz::BeginFrameArgs::NORMAL);
   counter.OnBeginFrame(args);
 
-  frame_time += base::TimeDelta::FromSeconds(5);
+  frame_time += base::Seconds(5);
   counter.OnHide(frame_time);
   EXPECT_EQ(counter.total_frames(), 900u);
 }
diff --git a/cc/metrics/ukm_smoothness_data.h b/cc/metrics/ukm_smoothness_data.h
index 0f4ba1d..592f792 100644
--- a/cc/metrics/ukm_smoothness_data.h
+++ b/cc/metrics/ukm_smoothness_data.h
@@ -25,7 +25,7 @@
   double above_threshold = 0.0;
   double percentile_95 = 0.0;
   double buckets[7] = {0};
-  base::TimeDelta time_max_delta = base::TimeDelta::FromMilliseconds(1);
+  base::TimeDelta time_max_delta = base::Milliseconds(1);
 };
 
 using UkmSmoothnessDataShared = SharedMetricsBuffer<UkmSmoothnessData>;
diff --git a/cc/metrics/video_playback_roughness_reporter.cc b/cc/metrics/video_playback_roughness_reporter.cc
index abc93c36..07d3232 100644
--- a/cc/metrics/video_playback_roughness_reporter.cc
+++ b/cc/metrics/video_playback_roughness_reporter.cc
@@ -202,7 +202,7 @@
           total_error.InMillisecondsF() * total_error.InMillisecondsF();
     }
     win.size = frames_window_size_;
-    win.root_mean_square_error = base::TimeDelta::FromMillisecondsD(
+    win.root_mean_square_error = base::Milliseconds(
         std::sqrt(mean_square_error_ms2 / frames_window_size_));
 
     if (observed_change_in_parameters) {
diff --git a/cc/metrics/video_playback_roughness_reporter_unittest.cc b/cc/metrics/video_playback_roughness_reporter_unittest.cc
index ffe3602..ae74ea08 100644
--- a/cc/metrics/video_playback_roughness_reporter_unittest.cc
+++ b/cc/metrics/video_playback_roughness_reporter_unittest.cc
@@ -64,8 +64,8 @@
                  std::vector<int> cadence,
                  int frames,
                  int frame_size = 100) {
-    base::TimeDelta vsync = base::TimeDelta::FromSecondsD(1 / hz);
-    base::TimeDelta ideal_duration = base::TimeDelta::FromSecondsD(1 / fps);
+    base::TimeDelta vsync = base::Seconds(1 / hz);
+    base::TimeDelta ideal_duration = base::Seconds(1 / fps);
     for (int idx = 0; idx < frames; idx++) {
       int frame_cadence = cadence[idx % cadence.size()];
       base::TimeDelta duration = vsync * frame_cadence;
@@ -81,8 +81,8 @@
                             double hz,
                             std::vector<int> cadence,
                             int frames) {
-    base::TimeDelta vsync = base::TimeDelta::FromSecondsD(1 / hz);
-    base::TimeDelta ideal_duration = base::TimeDelta::FromSecondsD(1 / fps);
+    base::TimeDelta vsync = base::Seconds(1 / hz);
+    base::TimeDelta ideal_duration = base::Seconds(1 / fps);
     constexpr int batch_size = 3;
     for (int idx = 0; idx < frames; idx++) {
       auto frame = MakeFrame(ideal_duration);
@@ -108,8 +108,8 @@
                    int frame_size = 100,
                    int freeze_on_frame = 50,
                    int frozen_vsyncs = 10) {
-    base::TimeDelta vsync = base::TimeDelta::FromSecondsD(1 / hz);
-    base::TimeDelta ideal_duration = base::TimeDelta::FromSecondsD(1 / fps);
+    base::TimeDelta vsync = base::Seconds(1 / hz);
+    base::TimeDelta ideal_duration = base::Seconds(1 / fps);
     for (int idx = 0; idx < frames; idx++) {
       int frame_cadence = cadence[idx % cadence.size()];
       base::TimeDelta duration = vsync * frame_cadence;
@@ -283,10 +283,10 @@
   int frames_in_window = fps;
   int call_count = 0;
   double intended_roughness = 4.2;
-  base::TimeDelta vsync = base::TimeDelta::FromSecondsD(1.0 / fps);
+  base::TimeDelta vsync = base::Seconds(1.0 / fps);
   // Calculating the error value that needs to be injected into one frame
   // in order to get desired roughness.
-  base::TimeDelta error = base::TimeDelta::FromMillisecondsD(
+  base::TimeDelta error = base::Milliseconds(
       std::sqrt(intended_roughness * intended_roughness * frames_in_window));
 
   auto callback =
@@ -323,7 +323,7 @@
   int frames_in_window = fps;
   int call_count = 0;
   int win_count = 100;
-  base::TimeDelta vsync = base::TimeDelta::FromSecondsD(1.0 / fps);
+  base::TimeDelta vsync = base::Seconds(1.0 / fps);
   std::vector<double> targets;
   targets.reserve(win_count);
   for (int i = 0; i < win_count; i++)
@@ -345,8 +345,8 @@
     double roughness = targets[win_idx];
     // Calculating the error value that needs to be injected into one frame
     // in order to get desired roughness.
-    base::TimeDelta error = base::TimeDelta::FromMillisecondsD(
-        std::sqrt(roughness * roughness * frames_in_window));
+    base::TimeDelta error =
+        base::Milliseconds(std::sqrt(roughness * roughness * frames_in_window));
 
     for (int frame_idx = 0; frame_idx < frames_in_window; frame_idx++) {
       base::TimeTicks time;
@@ -368,7 +368,7 @@
 // feedback, the reporter still doesn't run out of memory.
 TEST_F(VideoPlaybackRoughnessReporterTest, LongRunWithoutWindows) {
   int call_count = 0;
-  base::TimeDelta vsync = base::TimeDelta::FromMilliseconds(1);
+  base::TimeDelta vsync = base::Milliseconds(1);
   SetReportingCallabck(
       [&](const VideoPlaybackRoughnessReporter::Measurement& measurement) {
         call_count++;
@@ -388,7 +388,7 @@
 // tokens.
 TEST_F(VideoPlaybackRoughnessReporterTest, PresentingUnknownFrames) {
   int call_count = 0;
-  base::TimeDelta vsync = base::TimeDelta::FromMilliseconds(1);
+  base::TimeDelta vsync = base::Milliseconds(1);
   SetReportingCallabck(
       [&](const VideoPlaybackRoughnessReporter::Measurement& measurement) {
         call_count++;
@@ -407,7 +407,7 @@
 // presentation timestamp.
 TEST_F(VideoPlaybackRoughnessReporterTest, IgnoringUnreliableTimings) {
   int call_count = 0;
-  base::TimeDelta vsync = base::TimeDelta::FromMilliseconds(1);
+  base::TimeDelta vsync = base::Milliseconds(1);
   SetReportingCallabck(
       [&](const VideoPlaybackRoughnessReporter::Measurement& measurement) {
         call_count++;
diff --git a/cc/paint/discardable_image_map_unittest.cc b/cc/paint/discardable_image_map_unittest.cc
index 6a48018..ffb77c0 100644
--- a/cc/paint/discardable_image_map_unittest.cc
+++ b/cc/paint/discardable_image_map_unittest.cc
@@ -726,8 +726,8 @@
   content_layer_client.set_bounds(visible_rect.size());
 
   std::vector<FrameMetadata> frames = {
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(2)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(3))};
+      FrameMetadata(true, base::Milliseconds(2)),
+      FrameMetadata(true, base::Milliseconds(3))};
 
   gfx::Size image_size(100, 100);
   PaintImage static_image = CreateDiscardablePaintImage(image_size);
@@ -809,8 +809,8 @@
   shader_record->push<DrawImageOp>(static_image, 0.f, 0.f);
 
   std::vector<FrameMetadata> frames = {
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(1)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(1))};
+      FrameMetadata(true, base::Milliseconds(1)),
+      FrameMetadata(true, base::Milliseconds(1))};
   PaintImage animated_image = CreateAnimatedImage(gfx::Size(100, 100), frames);
   shader_record->push<DrawImageOp>(animated_image, 0.f, 0.f);
 
@@ -856,8 +856,8 @@
   filter_record->push<DrawImageOp>(static_image, 0.f, 0.f);
 
   std::vector<FrameMetadata> frames = {
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(1)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(1))};
+      FrameMetadata(true, base::Milliseconds(1)),
+      FrameMetadata(true, base::Milliseconds(1))};
   PaintImage animated_image = CreateAnimatedImage(gfx::Size(100, 100), frames);
   filter_record->push<DrawImageOp>(animated_image, 0.f, 0.f);
 
@@ -923,8 +923,8 @@
   SkRect tile = SkRect::MakeWH(100, 100);
   auto shader_record = sk_make_sp<PaintOpBuffer>();
   std::vector<FrameMetadata> frames = {
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(1)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(1))};
+      FrameMetadata(true, base::Milliseconds(1)),
+      FrameMetadata(true, base::Milliseconds(1))};
   PaintImage animated_image = CreateAnimatedImage(gfx::Size(100, 100), frames);
   shader_record->push<DrawImageOp>(animated_image, 0.f, 0.f);
   auto shader_with_image = PaintShader::MakePaintRecord(
@@ -1070,8 +1070,8 @@
   content_layer_client.set_bounds(visible_rect.size());
 
   std::vector<FrameMetadata> frames = {
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(1)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(1)),
+      FrameMetadata(true, base::Milliseconds(1)),
+      FrameMetadata(true, base::Milliseconds(1)),
   };
   auto image = CreateAnimatedImage(gfx::Size(100, 100), frames);
   content_layer_client.add_draw_image(image, gfx::Point(0, 0));
diff --git a/cc/paint/paint_image_unittest.cc b/cc/paint/paint_image_unittest.cc
index d328030..c5949539 100644
--- a/cc/paint/paint_image_unittest.cc
+++ b/cc/paint/paint_image_unittest.cc
@@ -17,8 +17,8 @@
 
 TEST(PaintImageTest, DecodesCorrectFrames) {
   std::vector<FrameMetadata> frames = {
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(2)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(3))};
+      FrameMetadata(true, base::Milliseconds(2)),
+      FrameMetadata(true, base::Milliseconds(3))};
   sk_sp<FakePaintImageGenerator> generator =
       sk_make_sp<FakePaintImageGenerator>(SkImageInfo::MakeN32Premul(10, 10),
                                           frames);
diff --git a/cc/paint/paint_op_perftest.cc b/cc/paint/paint_op_perftest.cc
index 9b06fc6..043d8180 100644
--- a/cc/paint/paint_op_perftest.cc
+++ b/cc/paint/paint_op_perftest.cc
@@ -30,7 +30,7 @@
  public:
   PaintOpPerfTest()
       : timer_(kNumWarmupRuns,
-               base::TimeDelta::FromMilliseconds(kTimeLimitMillis),
+               base::Milliseconds(kTimeLimitMillis),
                kTimeCheckInterval),
         serialized_data_(static_cast<char*>(
             base::AlignedAlloc(kMaxSerializedBufferBytes,
diff --git a/cc/raster/playback_image_provider_unittest.cc b/cc/raster/playback_image_provider_unittest.cc
index 2d8d319..52c43e4 100644
--- a/cc/raster/playback_image_provider_unittest.cc
+++ b/cc/raster/playback_image_provider_unittest.cc
@@ -131,8 +131,8 @@
 TEST(PlaybackImageProviderTest, SwapsGivenFrames) {
   MockDecodeCache cache;
   std::vector<FrameMetadata> frames = {
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(2)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(3))};
+      FrameMetadata(true, base::Milliseconds(2)),
+      FrameMetadata(true, base::Milliseconds(3))};
   PaintImage image = CreateAnimatedImage(gfx::Size(10, 10), frames);
 
   base::flat_map<PaintImage::Id, size_t> image_to_frame;
diff --git a/cc/raster/raster_buffer_provider_perftest.cc b/cc/raster/raster_buffer_provider_perftest.cc
index f4d55dbf..2db759a9 100644
--- a/cc/raster/raster_buffer_provider_perftest.cc
+++ b/cc/raster/raster_buffer_provider_perftest.cc
@@ -257,7 +257,7 @@
         task_runner_(new base::TestSimpleTaskRunner),
         task_graph_runner_(new SynchronousTaskGraphRunner),
         timer_(kWarmupRuns,
-               base::TimeDelta::FromMilliseconds(kTimeLimitMillis),
+               base::Milliseconds(kTimeLimitMillis),
                kTimeCheckInterval) {}
 
   void CreateImageDecodeTasks(unsigned num_image_decode_tasks,
diff --git a/cc/raster/raster_query_queue.cc b/cc/raster/raster_query_queue.cc
index c81cfb9..1d9ab29 100644
--- a/cc/raster/raster_query_queue.cc
+++ b/cc/raster/raster_query_queue.cc
@@ -36,8 +36,7 @@
 
 #define UMA_HISTOGRAM_RASTER_TIME_CUSTOM_MICROSECONDS(name, total_time) \
   UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(                              \
-      name, total_time, base::TimeDelta::FromMicroseconds(1),           \
-      base::TimeDelta::FromMilliseconds(100), 100);
+      name, total_time, base::Microseconds(1), base::Milliseconds(100), 100);
 
 bool RasterQueryQueue::CheckRasterFinishedQueries() {
   base::AutoLock hold(pending_raster_queries_lock_);
@@ -76,8 +75,7 @@
     ri->DeleteQueriesEXT(1, &it->raster_duration_query_id);
 
     base::TimeDelta raster_duration =
-        it->worker_raster_duration +
-        base::TimeDelta::FromMicroseconds(gpu_raster_duration);
+        it->worker_raster_duration + base::Microseconds(gpu_raster_duration);
 
     // It is safe to use the UMA macros here with runtime generated strings
     // because the client name should be initialized once in the process, before
@@ -95,7 +93,7 @@
       // should have been generated using base::TimeDelta::InMicroseconds()
       // there, so the result should fit in an int64_t.
       base::TimeDelta raster_scheduling_delay =
-          base::TimeDelta::FromMicroseconds(
+          base::Microseconds(
               base::checked_cast<int64_t>(gpu_raster_start_time)) -
           it->raster_buffer_creation_time.since_origin();
 
diff --git a/cc/raster/staging_buffer_pool.cc b/cc/raster/staging_buffer_pool.cc
index 1d436ae..244b902f 100644
--- a/cc/raster/staging_buffer_pool.cc
+++ b/cc/raster/staging_buffer_pool.cc
@@ -59,8 +59,8 @@
     // be available in a finite amount of time.
     ri->ShallowFlushCHROMIUM();
 
-    base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(
-        kCheckForQueryResultAvailableTickRateMs));
+    base::PlatformThread::Sleep(
+        base::Milliseconds(kCheckForQueryResultAvailableTickRateMs));
   }
 
   GLuint result = 0;
@@ -129,7 +129,7 @@
       staging_buffer_usage_in_bytes_(0),
       free_staging_buffer_usage_in_bytes_(0),
       staging_buffer_expiration_delay_(
-          base::TimeDelta::FromMilliseconds(kStagingBufferExpirationDelayMs)),
+          base::Milliseconds(kStagingBufferExpirationDelayMs)),
       reduce_memory_usage_pending_(false) {
   DCHECK(worker_context_provider_);
   base::trace_event::MemoryDumpManager::GetInstance()->RegisterDumpProvider(
diff --git a/cc/raster/task_graph_runner_perftest.cc b/cc/raster/task_graph_runner_perftest.cc
index c6119f0..6505cf1 100644
--- a/cc/raster/task_graph_runner_perftest.cc
+++ b/cc/raster/task_graph_runner_perftest.cc
@@ -44,7 +44,7 @@
  public:
   TaskGraphRunnerPerfTest()
       : timer_(kWarmupRuns,
-               base::TimeDelta::FromMilliseconds(kTimeLimitMillis),
+               base::Milliseconds(kTimeLimitMillis),
                kTimeCheckInterval) {}
 
   // Overridden from testing::Test:
diff --git a/cc/resources/resource_pool.h b/cc/resources/resource_pool.h
index 62e7225..33246505 100644
--- a/cc/resources/resource_pool.h
+++ b/cc/resources/resource_pool.h
@@ -51,11 +51,9 @@
 
  public:
   // Delay before a resource is considered expired.
-  static constexpr base::TimeDelta kDefaultExpirationDelay =
-      base::TimeDelta::FromSeconds(5);
+  static constexpr base::TimeDelta kDefaultExpirationDelay = base::Seconds(5);
   // Max delay before an evicted resource is flushed.
-  static constexpr base::TimeDelta kDefaultMaxFlushDelay =
-      base::TimeDelta::FromSeconds(1);
+  static constexpr base::TimeDelta kDefaultMaxFlushDelay = base::Seconds(1);
 
   // A base class to hold ownership of gpu backed PoolResources. Allows the
   // client to define destruction semantics.
diff --git a/cc/scheduler/begin_frame_tracker.cc b/cc/scheduler/begin_frame_tracker.cc
index ffeda4c..ccc5b97b 100644
--- a/cc/scheduler/begin_frame_tracker.cc
+++ b/cc/scheduler/begin_frame_tracker.cc
@@ -12,8 +12,7 @@
 BeginFrameTracker::BeginFrameTracker(const base::Location& location)
     : location_(location),
       location_string_(location.ToString()),
-      current_finished_at_(base::TimeTicks() +
-                           base::TimeDelta::FromMicroseconds(-1)) {}
+      current_finished_at_(base::TimeTicks() + base::Microseconds(-1)) {}
 
 BeginFrameTracker::~BeginFrameTracker() = default;
 
@@ -79,7 +78,7 @@
   base::TimeDelta interval = current_args_.interval;
   // Normal interval will be ~16ms, 200Hz (5ms) screens are the fastest
   // easily available so anything less than that is likely an error.
-  if (interval < base::TimeDelta::FromMilliseconds(1)) {
+  if (interval < base::Milliseconds(1)) {
     interval = viz::BeginFrameArgs::DefaultInterval();
   }
   return interval;
diff --git a/cc/scheduler/scheduler.cc b/cc/scheduler/scheduler.cc
index bce5b2d..737d2c6 100644
--- a/cc/scheduler/scheduler.cc
+++ b/cc/scheduler/scheduler.cc
@@ -30,8 +30,7 @@
 namespace {
 // This is a fudge factor we subtract from the deadline to account
 // for message latency and kernel scheduling variability.
-const base::TimeDelta kDeadlineFudgeFactor =
-    base::TimeDelta::FromMicroseconds(1000);
+const base::TimeDelta kDeadlineFudgeFactor = base::Microseconds(1000);
 }  // namespace
 
 Scheduler::Scheduler(
@@ -169,14 +168,12 @@
     UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
         "Scheduling.Renderer.FrameProduction.TimeUnused",
         cc_frame_time_available_ - cc_begin_impl_to_submit_,
-        base::TimeDelta::FromMicroseconds(1),
-        base::TimeDelta::FromMilliseconds(50), 50);
+        base::Microseconds(1), base::Milliseconds(50), 50);
   } else {
     UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
         "Scheduling.Renderer.FrameProduction.TimeOverused",
         cc_begin_impl_to_submit_ - cc_frame_time_available_,
-        base::TimeDelta::FromMicroseconds(1),
-        base::TimeDelta::FromMilliseconds(50), 50);
+        base::Microseconds(1), base::Milliseconds(50), 50);
   }
 
   compositor_frame_reporting_controller_->DidSubmitCompositorFrame(
diff --git a/cc/scheduler/scheduler_unittest.cc b/cc/scheduler/scheduler_unittest.cc
index 57bc2db1..0ba6916 100644
--- a/cc/scheduler/scheduler_unittest.cc
+++ b/cc/scheduler/scheduler_unittest.cc
@@ -52,8 +52,8 @@
 using power_scheduler::PowerModeArbiter;
 using power_scheduler::PowerModeVoter;
 
-base::TimeDelta kSlowDuration = base::TimeDelta::FromSeconds(1);
-base::TimeDelta kFastDuration = base::TimeDelta::FromMilliseconds(1);
+base::TimeDelta kSlowDuration = base::Seconds(1);
+base::TimeDelta kFastDuration = base::Milliseconds(1);
 
 class FakeSchedulerClient : public SchedulerClient,
                             public viz::FakeExternalBeginFrameSource::Client {
@@ -310,7 +310,7 @@
   SchedulerTestTaskRunner()
       : base::TestMockTimeTaskRunner(
             base::TestMockTimeTaskRunner::Type::kStandalone) {
-    AdvanceMockTickClock(base::TimeDelta::FromMicroseconds(110000));
+    AdvanceMockTickClock(base::Microseconds(110000));
   }
 
   void RunUntilTime(base::TimeTicks end_time) {
@@ -465,7 +465,7 @@
       SCOPED_TRACE("Do first frame to commit after initialize.");
       AdvanceFrame();
 
-      task_runner_->AdvanceMockTickClock(base::TimeDelta::FromMilliseconds(1));
+      task_runner_->AdvanceMockTickClock(base::Milliseconds(1));
       scheduler_->NotifyBeginMainFrameStarted(task_runner_->NowTicks());
       scheduler_->NotifyReadyToCommit(nullptr);
       scheduler_->NotifyReadyToActivate();
@@ -566,7 +566,7 @@
     // fast or slow.
     base::TimeDelta delta;
     if (!defer)
-      delta = base::TimeDelta::FromSeconds(1);
+      delta = base::Seconds(1);
     fake_compositor_timing_history_
         ->SetBeginMainFrameStartToReadyToCommitDurationEstimate(delta);
     fake_compositor_timing_history_
@@ -1521,8 +1521,8 @@
   constexpr uint64_t kSourceId = viz::BeginFrameArgs::kStartingSourceId;
   uint64_t sequence_number = viz::BeginFrameArgs::kStartingFrameNumber;
 
-  base::TimeDelta interval = base::TimeDelta::FromMicroseconds(
-      base::Time::kMicrosecondsPerSecond / 120.0);
+  base::TimeDelta interval =
+      base::Microseconds(base::Time::kMicrosecondsPerSecond / 120.0);
 
   // Send BeginFrameArgs with 120hz refresh rate and confirm client gets update.
   scheduler_->SetNeedsRedraw();
@@ -1538,7 +1538,7 @@
   // though the interval between begin frames arriving is bigger than |interval|
   // the client only hears the interval specified in BeginFrameArgs.
   scheduler_->SetNeedsRedraw();
-  const base::TimeDelta late_delta = base::TimeDelta::FromMilliseconds(4);
+  const base::TimeDelta late_delta = base::Milliseconds(4);
   task_runner_->AdvanceMockTickClock(interval + late_delta);
   viz::BeginFrameArgs args2 = viz::BeginFrameArgs::Create(
       BEGINFRAME_FROM_HERE, kSourceId, sequence_number++, args1.deadline,
@@ -1547,8 +1547,7 @@
   EXPECT_EQ(client_->frame_interval(), interval);
 
   // Change the interval for 90hz refresh rate.
-  interval = base::TimeDelta::FromMicroseconds(
-      base::Time::kMicrosecondsPerSecond / 90.0);
+  interval = base::Microseconds(base::Time::kMicrosecondsPerSecond / 90.0);
 
   // Send BeginFrameArgs with 90hz refresh rate and confirm client gets update.
   scheduler_->SetNeedsRedraw();
@@ -2082,8 +2081,7 @@
 
   // BeginImplFrame is not started.
   client_->Reset();
-  task_runner_->RunUntilTime(task_runner_->NowTicks() +
-                             base::TimeDelta::FromMilliseconds(10));
+  task_runner_->RunUntilTime(task_runner_->NowTicks() + base::Milliseconds(10));
   EXPECT_NO_ACTION();
   EXPECT_FALSE(client_->IsInsideBeginImplFrame());
 
@@ -3256,8 +3254,7 @@
 TEST_F(SchedulerTest, AuthoritativeVSyncInterval) {
   SetUpScheduler(THROTTLED_BFS);
   base::TimeDelta initial_interval = scheduler_->BeginImplFrameInterval();
-  base::TimeDelta authoritative_interval =
-      base::TimeDelta::FromMilliseconds(33);
+  base::TimeDelta authoritative_interval = base::Milliseconds(33);
 
   scheduler_->SetNeedsBeginMainFrame();
   EXPECT_SCOPED(AdvanceFrame());
@@ -3694,7 +3691,7 @@
   SetUpScheduler(EXTERNAL_BFS);
 
   scheduler_->SetNeedsRedraw();
-  base::TimeDelta estimate_duration = base::TimeDelta::FromMilliseconds(1);
+  base::TimeDelta estimate_duration = base::Milliseconds(1);
   fake_compositor_timing_history_->SetAllEstimatesTo(estimate_duration);
 
   // If we have a scroll handler but the critical main frame is slow, we should
@@ -3704,7 +3701,7 @@
       ScrollHandlerState::SCROLL_AFFECTS_SCROLL_HANDLER);
   scheduler_->SetNeedsRedraw();
   // An interval of 2ms makes sure that the main frame is considered slow.
-  base::TimeDelta interval = base::TimeDelta::FromMilliseconds(2);
+  base::TimeDelta interval = base::Milliseconds(2);
   task_runner_->AdvanceMockTickClock(interval);
   viz::BeginFrameArgs args = viz::BeginFrameArgs::Create(
       BEGINFRAME_FROM_HERE, 0u, 1u, task_runner_->NowTicks(),
@@ -3721,7 +3718,7 @@
   // With a draw time of 1ms and fudge factor of 1ms, the interval available for
   // the main frame to be activated is 8ms, so it should be considered fast.
   scheduler_->SetNeedsRedraw();
-  interval = base::TimeDelta::FromMilliseconds(10);
+  interval = base::Milliseconds(10);
   task_runner_->AdvanceMockTickClock(interval);
   args = viz::BeginFrameArgs::Create(BEGINFRAME_FROM_HERE, 0u, 2u,
                                      task_runner_->NowTicks(),
@@ -3737,7 +3734,7 @@
   // frame. This should prioritize the impl thread.
   scheduler_->SetNeedsRedraw();
   fake_compositor_timing_history_->SetDrawDurationEstimate(
-      base::TimeDelta::FromMilliseconds(7));
+      base::Milliseconds(7));
   task_runner_->AdvanceMockTickClock(interval);
   args = viz::BeginFrameArgs::Create(BEGINFRAME_FROM_HERE, 0u, 3u,
                                      task_runner_->NowTicks(),
@@ -3764,7 +3761,7 @@
   client_->Reset();
 
   // Uses MISSED BeginFrames even after the deadline has passed.
-  base::TimeDelta interval = base::TimeDelta::FromMilliseconds(16);
+  base::TimeDelta interval = base::Milliseconds(16);
   task_runner_->AdvanceMockTickClock(interval);
   base::TimeTicks timestamp = task_runner_->NowTicks();
   // Deadline should have passed after this.
@@ -3800,7 +3797,7 @@
   EXPECT_TRUE(scheduler_->BeginFrameNeeded());
 
   // Scheduler begins a frame even if otherwise idle.
-  base::TimeDelta interval = base::TimeDelta::FromMilliseconds(16);
+  base::TimeDelta interval = base::Milliseconds(16);
   task_runner_->AdvanceMockTickClock(interval);
   base::TimeTicks timestamp = task_runner_->NowTicks();
   viz::BeginFrameArgs args = viz::BeginFrameArgs::Create(
@@ -4017,7 +4014,7 @@
   scheduler_->SetNeedsBeginMainFrame();
   EXPECT_ACTIONS("ScheduledActionSendBeginMainFrame");
   fake_compositor_timing_history_->SetBeginMainFrameSentTime(
-      task_runner_->NowTicks() + base::TimeDelta::FromMilliseconds(8));
+      task_runner_->NowTicks() + base::Milliseconds(8));
   client_->Reset();
   scheduler_->NotifyReadyToActivate();
   task_runner_->RunTasksWhile(client_->InsideBeginImplFrame(true));
diff --git a/cc/test/animation_test_common.cc b/cc/test/animation_test_common.cc
index f16a2c6..2d925fe 100644
--- a/cc/test/animation_test_common.cc
+++ b/cc/test/animation_test_common.cc
@@ -40,8 +40,8 @@
   if (duration > 0.0)
     curve->AddKeyframe(gfx::FloatKeyframe::Create(
         base::TimeDelta(), start_opacity, std::move(func)));
-  curve->AddKeyframe(gfx::FloatKeyframe::Create(
-      base::TimeDelta::FromSecondsD(duration), end_opacity, nullptr));
+  curve->AddKeyframe(gfx::FloatKeyframe::Create(base::Seconds(duration),
+                                                end_opacity, nullptr));
 
   int id = AnimationIdProvider::NextKeyframeModelId();
 
@@ -66,8 +66,8 @@
         base::TimeDelta(), start_operations, nullptr));
   }
 
-  curve->AddKeyframe(gfx::TransformKeyframe::Create(
-      base::TimeDelta::FromSecondsD(duration), operations, nullptr));
+  curve->AddKeyframe(gfx::TransformKeyframe::Create(base::Seconds(duration),
+                                                    operations, nullptr));
 
   int id = AnimationIdProvider::NextKeyframeModelId();
 
@@ -111,8 +111,8 @@
 
   FilterOperations filters;
   filters.Append(FilterOperation::CreateBrightnessFilter(end_brightness));
-  curve->AddKeyframe(FilterKeyframe::Create(
-      base::TimeDelta::FromSecondsD(duration), filters, nullptr));
+  curve->AddKeyframe(
+      FilterKeyframe::Create(base::Seconds(duration), filters, nullptr));
 
   int id = AnimationIdProvider::NextKeyframeModelId();
 
@@ -141,8 +141,8 @@
 
   FilterOperations filters;
   filters.Append(FilterOperation::CreateInvertFilter(end_invert));
-  curve->AddKeyframe(FilterKeyframe::Create(
-      base::TimeDelta::FromSecondsD(duration), filters, nullptr));
+  curve->AddKeyframe(
+      FilterKeyframe::Create(base::Seconds(duration), filters, nullptr));
 
   int id = AnimationIdProvider::NextKeyframeModelId();
 
@@ -156,12 +156,10 @@
 }
 
 FakeFloatAnimationCurve::FakeFloatAnimationCurve()
-    : duration_(base::TimeDelta::FromSecondsD(1.0)) {
-}
+    : duration_(base::Seconds(1.0)) {}
 
 FakeFloatAnimationCurve::FakeFloatAnimationCurve(double duration)
-    : duration_(base::TimeDelta::FromSecondsD(duration)) {
-}
+    : duration_(base::Seconds(duration)) {}
 
 FakeFloatAnimationCurve::~FakeFloatAnimationCurve() = default;
 
@@ -178,8 +176,7 @@
 }
 
 FakeTransformTransition::FakeTransformTransition(double duration)
-    : duration_(base::TimeDelta::FromSecondsD(duration)) {
-}
+    : duration_(base::Seconds(duration)) {}
 
 FakeTransformTransition::~FakeTransformTransition() = default;
 
@@ -206,8 +203,7 @@
 }
 
 FakeFloatTransition::FakeFloatTransition(double duration, float from, float to)
-    : duration_(base::TimeDelta::FromSecondsD(duration)), from_(from), to_(to) {
-}
+    : duration_(base::Seconds(duration)), from_(from), to_(to) {}
 
 FakeFloatTransition::~FakeFloatTransition() = default;
 
@@ -297,8 +293,8 @@
   if (duration > 0.0)
     curve->AddKeyframe(gfx::FloatKeyframe::Create(
         base::TimeDelta(), start_opacity, std::move(func)));
-  curve->AddKeyframe(gfx::FloatKeyframe::Create(
-      base::TimeDelta::FromSecondsD(duration), end_opacity, nullptr));
+  curve->AddKeyframe(gfx::FloatKeyframe::Create(base::Seconds(duration),
+                                                end_opacity, nullptr));
 
   int id = AnimationIdProvider::NextKeyframeModelId();
 
diff --git a/cc/test/fake_compositor_frame_reporting_controller.cc b/cc/test/fake_compositor_frame_reporting_controller.cc
index a815779..d124413 100644
--- a/cc/test/fake_compositor_frame_reporting_controller.cc
+++ b/cc/test/fake_compositor_frame_reporting_controller.cc
@@ -10,7 +10,7 @@
 #include "components/viz/common/frame_timing_details.h"
 
 namespace cc {
-base::TimeDelta INTERVAL = base::TimeDelta::FromMilliseconds(16);
+base::TimeDelta INTERVAL = base::Milliseconds(16);
 
 FakeCompositorFrameReportingController::FakeCompositorFrameReportingController()
     : CompositorFrameReportingController(/*should_report_metrics=*/true,
diff --git a/cc/test/fake_layer_tree_host_impl.cc b/cc/test/fake_layer_tree_host_impl.cc
index 345d3955..4330787 100644
--- a/cc/test/fake_layer_tree_host_impl.cc
+++ b/cc/test/fake_layer_tree_host_impl.cc
@@ -51,8 +51,7 @@
   active_tree()->SetDeviceViewportRect(gfx::Rect(100, 100));
 
   // Start an impl frame so tests have a valid frame_time to work with.
-  base::TimeTicks time_ticks =
-      base::TimeTicks() + base::TimeDelta::FromMicroseconds(1);
+  base::TimeTicks time_ticks = base::TimeTicks() + base::Microseconds(1);
   WillBeginImplFrame(viz::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE,
                                                          0, 1, time_ticks));
 }
diff --git a/cc/test/layer_tree_test.cc b/cc/test/layer_tree_test.cc
index dc8a15c..5c3db2f 100644
--- a/cc/test/layer_tree_test.cc
+++ b/cc/test/layer_tree_test.cc
@@ -719,7 +719,7 @@
 void LayerTreeTest::EndTestAfterDelayMs(int delay_milliseconds) {
   main_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&LayerTreeTest::EndTest, main_thread_weak_ptr_),
-      base::TimeDelta::FromMilliseconds(delay_milliseconds));
+      base::Milliseconds(delay_milliseconds));
 }
 
 void LayerTreeTest::PostAddNoDamageAnimationToMainThread(
@@ -889,9 +889,8 @@
   if (timeout_seconds_) {
     timeout_.Reset(
         base::BindOnce(&LayerTreeTest::Timeout, base::Unretained(this)));
-    main_task_runner_->PostDelayedTask(
-        FROM_HERE, timeout_.callback(),
-        base::TimeDelta::FromSeconds(timeout_seconds_));
+    main_task_runner_->PostDelayedTask(FROM_HERE, timeout_.callback(),
+                                       base::Seconds(timeout_seconds_));
   }
 
   started_ = true;
diff --git a/cc/test/test_layer_tree_frame_sink.cc b/cc/test/test_layer_tree_frame_sink.cc
index 80b941e..ba6ee69 100644
--- a/cc/test/test_layer_tree_frame_sink.cc
+++ b/cc/test/test_layer_tree_frame_sink.cc
@@ -99,8 +99,7 @@
               compositor_task_runner_.get()),
           viz::BeginFrameSource::kNotRestartableId);
       begin_frame_source_->OnUpdateVSyncParameters(
-          base::TimeTicks::Now(),
-          base::TimeDelta::FromMilliseconds(1000.f / refresh_rate_));
+          base::TimeTicks::Now(), base::Milliseconds(1000.f / refresh_rate_));
       display_begin_frame_source_ = begin_frame_source_.get();
     }
     scheduler = std::make_unique<viz::DisplayScheduler>(
diff --git a/cc/tiles/decoded_image_tracker.cc b/cc/tiles/decoded_image_tracker.cc
index 41ec58b..25e1205 100644
--- a/cc/tiles/decoded_image_tracker.cc
+++ b/cc/tiles/decoded_image_tracker.cc
@@ -96,7 +96,7 @@
     return;
 
   auto now = tick_clock_->NowTicks();
-  auto timeout = base::TimeDelta::FromMilliseconds(kTimeoutDurationMs);
+  auto timeout = base::Milliseconds(kTimeoutDurationMs);
   for (auto it = locked_images_.begin(); it != locked_images_.end();) {
     auto& image = it->second;
     if (now - image->lock_time() < timeout) {
@@ -120,7 +120,7 @@
       FROM_HERE,
       base::BindOnce(&DecodedImageTracker::OnTimeoutImages,
                      weak_ptr_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(kTimeoutDurationMs));
+      base::Milliseconds(kTimeoutDurationMs));
 }
 
 }  // namespace cc
diff --git a/cc/tiles/decoded_image_tracker_unittest.cc b/cc/tiles/decoded_image_tracker_unittest.cc
index 991394ca..55bf0e0 100644
--- a/cc/tiles/decoded_image_tracker_unittest.cc
+++ b/cc/tiles/decoded_image_tracker_unittest.cc
@@ -131,7 +131,7 @@
   EXPECT_EQ(1u, image_controller()->num_locked_images());
 
   // Advance by 150ms, the image should still be locked.
-  task_runner()->FastForwardBy(base::TimeDelta::FromMilliseconds(150));
+  task_runner()->FastForwardBy(base::Milliseconds(150));
   EXPECT_EQ(1u, image_controller()->num_locked_images());
 
   // Add an image, this will not start a new timeout, as one is pending.
@@ -144,11 +144,11 @@
 
   // Advance by 100ms, we our first image should be released.
   // Trigger a single commit, the first image should be unlocked.
-  task_runner()->FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  task_runner()->FastForwardBy(base::Milliseconds(100));
   EXPECT_EQ(1u, image_controller()->num_locked_images());
 
   // Advance by another 250ms, our second image should release.
-  task_runner()->FastForwardBy(base::TimeDelta::FromMilliseconds(250));
+  task_runner()->FastForwardBy(base::Milliseconds(250));
   EXPECT_EQ(0u, image_controller()->num_locked_images());
 }
 
diff --git a/cc/tiles/gpu_image_decode_cache_perftest.cc b/cc/tiles/gpu_image_decode_cache_perftest.cc
index beb0ae3f..b018856 100644
--- a/cc/tiles/gpu_image_decode_cache_perftest.cc
+++ b/cc/tiles/gpu_image_decode_cache_perftest.cc
@@ -43,7 +43,7 @@
  public:
   GpuImageDecodeCachePerfTest()
       : timer_(kWarmupRuns,
-               base::TimeDelta::FromMilliseconds(kTimeLimitMillis),
+               base::Milliseconds(kTimeLimitMillis),
                kTimeCheckInterval),
         context_provider_(
             base::MakeRefCounted<viz::TestInProcessContextProvider>(
diff --git a/cc/tiles/gpu_image_decode_cache_unittest.cc b/cc/tiles/gpu_image_decode_cache_unittest.cc
index 6c585a06..80ed2b1 100644
--- a/cc/tiles/gpu_image_decode_cache_unittest.cc
+++ b/cc/tiles/gpu_image_decode_cache_unittest.cc
@@ -2128,10 +2128,10 @@
 TEST_P(GpuImageDecodeCacheTest, CacheDecodesExpectedFrames) {
   auto cache = CreateCache();
   std::vector<FrameMetadata> frames = {
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(2)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(3)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(4)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(5)),
+      FrameMetadata(true, base::Milliseconds(2)),
+      FrameMetadata(true, base::Milliseconds(3)),
+      FrameMetadata(true, base::Milliseconds(4)),
+      FrameMetadata(true, base::Milliseconds(5)),
   };
   const gfx::Size test_image_size = GetNormalImageSize();
   SkImageInfo info =
diff --git a/cc/tiles/image_controller_unittest.cc b/cc/tiles/image_controller_unittest.cc
index 3896f84..8d5064daa 100644
--- a/cc/tiles/image_controller_unittest.cc
+++ b/cc/tiles/image_controller_unittest.cc
@@ -287,12 +287,11 @@
 
   // Convenience method to run the run loop with a timeout.
   void RunOrTimeout(base::RunLoop* run_loop) {
-    task_runner_->PostDelayedTask(
-        FROM_HERE,
-        base::BindOnce(&ImageControllerTest::Timeout,
-                       weak_ptr_factory_.GetWeakPtr(),
-                       base::Unretained(run_loop)),
-        base::TimeDelta::FromSeconds(kDefaultTimeoutSeconds));
+    task_runner_->PostDelayedTask(FROM_HERE,
+                                  base::BindOnce(&ImageControllerTest::Timeout,
+                                                 weak_ptr_factory_.GetWeakPtr(),
+                                                 base::Unretained(run_loop)),
+                                  base::Seconds(kDefaultTimeoutSeconds));
     run_loop->Run();
   }
 
diff --git a/cc/tiles/software_image_decode_cache_perftest.cc b/cc/tiles/software_image_decode_cache_perftest.cc
index ce71e96..9d6d183 100644
--- a/cc/tiles/software_image_decode_cache_perftest.cc
+++ b/cc/tiles/software_image_decode_cache_perftest.cc
@@ -33,7 +33,7 @@
  public:
   SoftwareImageDecodeCachePerfTest()
       : timer_(kWarmupRuns,
-               base::TimeDelta::FromMilliseconds(kTimeLimitMillis),
+               base::Milliseconds(kTimeLimitMillis),
                kTimeCheckInterval) {}
 
   void RunFromImage() {
diff --git a/cc/tiles/software_image_decode_cache_unittest.cc b/cc/tiles/software_image_decode_cache_unittest.cc
index 72043ed..1ae9c03 100644
--- a/cc/tiles/software_image_decode_cache_unittest.cc
+++ b/cc/tiles/software_image_decode_cache_unittest.cc
@@ -1699,10 +1699,10 @@
 TEST(SoftwareImageDecodeCacheTest, CacheDecodesExpectedFrames) {
   TestSoftwareImageDecodeCache cache;
   std::vector<FrameMetadata> frames = {
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(2)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(3)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(4)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(5)),
+      FrameMetadata(true, base::Milliseconds(2)),
+      FrameMetadata(true, base::Milliseconds(3)),
+      FrameMetadata(true, base::Milliseconds(4)),
+      FrameMetadata(true, base::Milliseconds(5)),
   };
   sk_sp<FakePaintImageGenerator> generator =
       sk_make_sp<FakePaintImageGenerator>(
diff --git a/cc/tiles/tile_manager.cc b/cc/tiles/tile_manager.cc
index c7764f8..c108883 100644
--- a/cc/tiles/tile_manager.cc
+++ b/cc/tiles/tile_manager.cc
@@ -1481,7 +1481,7 @@
       &TileManager::CheckRasterFinishedQueries, base::Unretained(this)));
   task_runner_->PostDelayedTask(FROM_HERE,
                                 check_pending_tile_queries_callback_.callback(),
-                                base::TimeDelta::FromMilliseconds(100));
+                                base::Milliseconds(100));
 }
 
 void TileManager::CheckRasterFinishedQueries() {
diff --git a/cc/tiles/tile_manager_perftest.cc b/cc/tiles/tile_manager_perftest.cc
index 86b7c65..fcdc95a2 100644
--- a/cc/tiles/tile_manager_perftest.cc
+++ b/cc/tiles/tile_manager_perftest.cc
@@ -43,7 +43,7 @@
  public:
   TileManagerPerfTest()
       : timer_(kWarmupRuns,
-               base::TimeDelta::FromMilliseconds(kTimeLimitMillis),
+               base::Milliseconds(kTimeLimitMillis),
                kTimeCheckInterval) {}
 
   void InitializeFrameSink() override {
@@ -268,7 +268,7 @@
 
     timer_.Reset();
     do {
-      host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+      host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
       for (auto* layer : layers)
         layer->UpdateTiles();
 
diff --git a/cc/tiles/tile_manager_unittest.cc b/cc/tiles/tile_manager_unittest.cc
index 08f46575..c94adcd 100644
--- a/cc/tiles/tile_manager_unittest.cc
+++ b/cc/tiles/tile_manager_unittest.cc
@@ -624,7 +624,7 @@
 }
 
 TEST_F(TileManagerTilePriorityQueueTest, ActivationComesBeforeSoon) {
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
 
   gfx::Size layer_bounds(1000, 1000);
   SetupDefaultTrees(layer_bounds);
@@ -639,7 +639,7 @@
 
   // Set a small viewport, so we have soon and eventually tiles.
   host_impl()->active_tree()->SetDeviceViewportRect(gfx::Rect(200, 200));
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
   UpdateDrawProperties(host_impl()->pending_tree());
 
   host_impl()->SetRequiresHighResToDraw();
@@ -838,7 +838,7 @@
 
 // Verifies LayerDebugInfo::name ends up memory dumps.
 TEST_F(TileManagerTilePriorityQueueTest, DebugNameAppearsInMemoryDump) {
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
 
   gfx::Size layer_bounds(1000, 1000);
 
@@ -875,7 +875,7 @@
 
 TEST_F(TileManagerTilePriorityQueueTest,
        EvictionTilePriorityQueueWithOcclusion) {
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
 
   gfx::Size layer_bounds(1000, 1000);
 
@@ -891,7 +891,7 @@
   pending_child_layer->SetDrawsContent(true);
   CopyProperties(pending_layer(), pending_child_layer);
 
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
   UpdateDrawProperties(host_impl()->pending_tree());
 
   ActivateTree();
@@ -984,7 +984,7 @@
 
 TEST_F(TileManagerTilePriorityQueueTest,
        EvictionTilePriorityQueueWithTransparentLayer) {
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
 
   gfx::Size layer_bounds(1000, 1000);
 
@@ -1004,13 +1004,13 @@
   CreateEffectNode(pending_child_layer).render_surface_reason =
       RenderSurfaceReason::kTest;
 
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
   UpdateDrawProperties(host_impl()->pending_tree());
 
   host_impl()->pending_tree()->SetOpacityMutated(
       pending_child_layer->element_id(), 0.0f);
 
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
+  host_impl()->AdvanceToNextFrame(base::Milliseconds(1));
   host_impl()->pending_tree()->UpdateDrawProperties();
 
   // Renew all of the tile priorities.
@@ -1834,7 +1834,7 @@
 
   // Advance the frame to ensure PictureLayerTilingSet applies the occlusion to
   // the PictureLayerTiling. The amount of time advanced doesn't matter.
-  host_impl()->AdvanceToNextFrame(base::TimeDelta::FromSeconds(2));
+  host_impl()->AdvanceToNextFrame(base::Seconds(2));
 
   auto* picture_layer = AddLayer<FakePictureLayerImpl>(
       host_impl()->pending_tree(),
diff --git a/cc/trees/draw_properties_unittest.cc b/cc/trees/draw_properties_unittest.cc
index f982efe..5645823 100644
--- a/cc/trees/draw_properties_unittest.cc
+++ b/cc/trees/draw_properties_unittest.cc
@@ -1745,7 +1745,7 @@
       std::unique_ptr<gfx::AnimationCurve>(new FakeTransformTransition(1.0)), 0,
       1, KeyframeModel::TargetPropertyId(TargetProperty::TRANSFORM));
   keyframe_model->set_fill_mode(KeyframeModel::FillMode::NONE);
-  keyframe_model->set_time_offset(base::TimeDelta::FromMilliseconds(-1000));
+  keyframe_model->set_time_offset(base::Milliseconds(-1000));
   AddKeyframeModelToElementWithAnimation(
       grand_child->element_id(), timeline_impl(), std::move(keyframe_model));
 
@@ -6496,7 +6496,7 @@
       keyframe_model_id, 1,
       KeyframeModel::TargetPropertyId(TargetProperty::TRANSFORM));
   keyframe_model->set_fill_mode(KeyframeModel::FillMode::NONE);
-  keyframe_model->set_time_offset(base::TimeDelta::FromMilliseconds(-1000));
+  keyframe_model->set_time_offset(base::Milliseconds(-1000));
   AddKeyframeModelToElementWithAnimation(child->element_id(), timeline(),
                                          std::move(keyframe_model));
   UpdateMainDrawProperties();
@@ -6525,7 +6525,7 @@
       keyframe_model_id, 1,
       KeyframeModel::TargetPropertyId(TargetProperty::OPACITY));
   keyframe_model->set_fill_mode(KeyframeModel::FillMode::NONE);
-  keyframe_model->set_time_offset(base::TimeDelta::FromMilliseconds(-1000));
+  keyframe_model->set_time_offset(base::Milliseconds(-1000));
   AddKeyframeModelToElementWithExistingKeyframeEffect(
       child->element_id(), timeline(), std::move(keyframe_model));
   UpdateMainDrawProperties();
@@ -6639,8 +6639,8 @@
   operation.AppendMatrix(transform);
   curve->AddKeyframe(
       gfx::TransformKeyframe::Create(base::TimeDelta(), start, nullptr));
-  curve->AddKeyframe(gfx::TransformKeyframe::Create(
-      base::TimeDelta::FromSecondsD(1.0), operation, nullptr));
+  curve->AddKeyframe(
+      gfx::TransformKeyframe::Create(base::Seconds(1.0), operation, nullptr));
   std::unique_ptr<KeyframeModel> transform_animation(KeyframeModel::Create(
       std::move(curve), 3, 3,
       KeyframeModel::TargetPropertyId(TargetProperty::TRANSFORM)));
@@ -6672,8 +6672,8 @@
   operation.AppendMatrix(transform);
   curve->AddKeyframe(
       gfx::TransformKeyframe::Create(base::TimeDelta(), start, nullptr));
-  curve->AddKeyframe(gfx::TransformKeyframe::Create(
-      base::TimeDelta::FromSecondsD(1.0), operation, nullptr));
+  curve->AddKeyframe(
+      gfx::TransformKeyframe::Create(base::Seconds(1.0), operation, nullptr));
   std::unique_ptr<KeyframeModel> transform_animation(KeyframeModel::Create(
       std::move(curve), 3, 3,
       KeyframeModel::TargetPropertyId(TargetProperty::TRANSFORM)));
@@ -6785,8 +6785,8 @@
           gfx::CubicBezierTimingFunction::EaseType::EASE);
   curve->AddKeyframe(
       gfx::FloatKeyframe::Create(base::TimeDelta(), 0.9f, std::move(func)));
-  curve->AddKeyframe(gfx::FloatKeyframe::Create(
-      base::TimeDelta::FromSecondsD(1.0), 0.3f, nullptr));
+  curve->AddKeyframe(
+      gfx::FloatKeyframe::Create(base::Seconds(1.0), 0.3f, nullptr));
   std::unique_ptr<KeyframeModel> keyframe_model(KeyframeModel::Create(
       std::move(curve), 3, 3,
       KeyframeModel::TargetPropertyId(TargetProperty::OPACITY)));
@@ -7598,7 +7598,7 @@
       keyframe_model_id, 1,
       KeyframeModel::TargetPropertyId(TargetProperty::OPACITY));
   keyframe_model->set_fill_mode(KeyframeModel::FillMode::NONE);
-  keyframe_model->set_time_offset(base::TimeDelta::FromMilliseconds(-1000));
+  keyframe_model->set_time_offset(base::Milliseconds(-1000));
   KeyframeModel* keyframe_model_ptr = keyframe_model.get();
   AddKeyframeModelToElementWithExistingKeyframeEffect(
       animated->element_id(), timeline(), std::move(keyframe_model));
@@ -7609,7 +7609,7 @@
   EXPECT_FALSE(node->is_currently_animating_opacity);
   EXPECT_TRUE(node->has_potential_opacity_animation);
 
-  keyframe_model_ptr->set_time_offset(base::TimeDelta::FromMilliseconds(0));
+  keyframe_model_ptr->set_time_offset(base::Milliseconds(0));
   host()->AnimateLayers(base::TimeTicks::Max());
   node = GetEffectNode(animated.get());
   EXPECT_TRUE(node->is_currently_animating_opacity);
@@ -7650,13 +7650,13 @@
   operation.AppendMatrix(transform);
   curve->AddKeyframe(
       gfx::TransformKeyframe::Create(base::TimeDelta(), start, nullptr));
-  curve->AddKeyframe(gfx::TransformKeyframe::Create(
-      base::TimeDelta::FromSecondsD(1.0), operation, nullptr));
+  curve->AddKeyframe(
+      gfx::TransformKeyframe::Create(base::Seconds(1.0), operation, nullptr));
   std::unique_ptr<KeyframeModel> keyframe_model(KeyframeModel::Create(
       std::move(curve), 3, 3,
       KeyframeModel::TargetPropertyId(TargetProperty::TRANSFORM)));
   keyframe_model->set_fill_mode(KeyframeModel::FillMode::NONE);
-  keyframe_model->set_time_offset(base::TimeDelta::FromMilliseconds(-1000));
+  keyframe_model->set_time_offset(base::Milliseconds(-1000));
   KeyframeModel* keyframe_model_ptr = keyframe_model.get();
   AddKeyframeModelToElementWithExistingKeyframeEffect(
       animated->element_id(), timeline(), std::move(keyframe_model));
@@ -7667,7 +7667,7 @@
   EXPECT_FALSE(node->is_currently_animating);
   EXPECT_TRUE(node->has_potential_animation);
 
-  keyframe_model_ptr->set_time_offset(base::TimeDelta::FromMilliseconds(0));
+  keyframe_model_ptr->set_time_offset(base::Milliseconds(0));
   host()->AnimateLayers(base::TimeTicks::Max());
   node = GetTransformNode(animated.get());
   EXPECT_TRUE(node->is_currently_animating);
diff --git a/cc/trees/draw_property_utils_perftest.cc b/cc/trees/draw_property_utils_perftest.cc
index be01eae..0645afb 100644
--- a/cc/trees/draw_property_utils_perftest.cc
+++ b/cc/trees/draw_property_utils_perftest.cc
@@ -37,7 +37,7 @@
  public:
   DrawPropertyUtilsPerfTest()
       : timer_(kWarmupRuns,
-               base::TimeDelta::FromMilliseconds(kTimeLimitMillis),
+               base::Milliseconds(kTimeLimitMillis),
                kTimeCheckInterval) {}
 
   void ReadTestFile(const std::string& name) {
diff --git a/cc/trees/frame_rate_estimator.cc b/cc/trees/frame_rate_estimator.cc
index 0ba9354..f5cdd7e 100644
--- a/cc/trees/frame_rate_estimator.cc
+++ b/cc/trees/frame_rate_estimator.cc
@@ -9,7 +9,7 @@
 namespace cc {
 namespace {
 
-constexpr auto kInputPriorityDelay = base::TimeDelta::FromMilliseconds(250);
+constexpr auto kInputPriorityDelay = base::Milliseconds(250);
 
 }  // namespace
 
@@ -47,7 +47,7 @@
   // we assume that BeginFrames can not be throttled. But if the animation
   // frequency is lower than that, then using a lower frame rate is permitted.
   // The delta below is to account for minor offsets in frame times.
-  constexpr auto kFudgeDelta = base::TimeDelta::FromMilliseconds(1);
+  constexpr auto kFudgeDelta = base::Milliseconds(1);
   constexpr auto kMinDelta =
       (viz::BeginFrameArgs::DefaultInterval() * 2) - kFudgeDelta;
   if (draw_delta < kMinDelta)
diff --git a/cc/trees/frame_rate_estimator_unittest.cc b/cc/trees/frame_rate_estimator_unittest.cc
index 9aa75eb0..fe684fa 100644
--- a/cc/trees/frame_rate_estimator_unittest.cc
+++ b/cc/trees/frame_rate_estimator_unittest.cc
@@ -75,14 +75,10 @@
   estimator_->SetFrameEstimationEnabled(true);
   // Recorded rAF intervals at 30 fps.
   const base::TimeDelta kIntervals[] = {
-      base::TimeDelta::FromMicroseconds(33425),
-      base::TimeDelta::FromMicroseconds(33298),
-      base::TimeDelta::FromMicroseconds(33396),
-      base::TimeDelta::FromMicroseconds(33339),
-      base::TimeDelta::FromMicroseconds(33431),
-      base::TimeDelta::FromMicroseconds(33320),
-      base::TimeDelta::FromMicroseconds(33364),
-      base::TimeDelta::FromMicroseconds(33360)};
+      base::Microseconds(33425), base::Microseconds(33298),
+      base::Microseconds(33396), base::Microseconds(33339),
+      base::Microseconds(33431), base::Microseconds(33320),
+      base::Microseconds(33364), base::Microseconds(33360)};
   const base::TimeDelta kIntervalForHalfFps =
       viz::BeginFrameArgs::DefaultInterval() * 2;
   base::TimeTicks time;
diff --git a/cc/trees/image_animation_controller.cc b/cc/trees/image_animation_controller.cc
index debdfe9..193a7ca 100644
--- a/cc/trees/image_animation_controller.cc
+++ b/cc/trees/image_animation_controller.cc
@@ -19,7 +19,7 @@
 // The maximum number of time an animation can be delayed before it is reset to
 // start from the beginning, instead of fast-forwarding to catch up to the
 // desired frame.
-const base::TimeDelta kAnimationResyncCutoff = base::TimeDelta::FromMinutes(5);
+const base::TimeDelta kAnimationResyncCutoff = base::Minutes(5);
 
 // Given the |desired_frame_time|, returns the time of the tick it should be
 // snapped to.
diff --git a/cc/trees/image_animation_controller_unittest.cc b/cc/trees/image_animation_controller_unittest.cc
index 8b28e1d..c6863af 100644
--- a/cc/trees/image_animation_controller_unittest.cc
+++ b/cc/trees/image_animation_controller_unittest.cc
@@ -80,7 +80,7 @@
         task_runner_.get(), this, GetEnableImageAnimationResync());
     controller_->set_now_callback_for_testing(base::BindRepeating(
         &ImageAnimationControllerTest::Now, base::Unretained(this)));
-    now_ += base::TimeDelta::FromSeconds(10);
+    now_ += base::Seconds(10);
   }
 
   void TearDown() override { controller_.reset(); }
@@ -196,15 +196,15 @@
   std::unique_ptr<ImageAnimationController> controller_;
   scoped_refptr<DelayTrackingTaskRunner> task_runner_;
 
-  base::TimeDelta interval_ = base::TimeDelta::FromMilliseconds(1);
+  base::TimeDelta interval_ = base::Milliseconds(1);
 };
 
 TEST_F(ImageAnimationControllerTest, AnimationWithDelays) {
   std::vector<FrameMetadata> frames = {
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(5)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(3)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(4)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(3))};
+      FrameMetadata(true, base::Milliseconds(5)),
+      FrameMetadata(true, base::Milliseconds(3)),
+      FrameMetadata(true, base::Milliseconds(4)),
+      FrameMetadata(true, base::Milliseconds(3))};
 
   DiscardableImageMap::AnimatedImageMetadata data(
       PaintImage::GetNextId(), PaintImage::CompletionState::DONE, frames,
@@ -220,7 +220,7 @@
 
   // now_ is set to the time at which the first frame should be displayed for
   // the third iteration. Add a delay that causes us to skip the first frame.
-  base::TimeDelta additional_delay = base::TimeDelta::FromMilliseconds(1);
+  base::TimeDelta additional_delay = base::Milliseconds(1);
   AdvanceNow(data.frames[0].duration + additional_delay);
   auto animated_images = controller_->AnimateForSyncTree(BeginFrameArgs());
   EXPECT_EQ(animated_images.size(), 1u);
@@ -275,8 +275,8 @@
 
 TEST_F(ImageAnimationControllerTest, DriversControlAnimationTicking) {
   std::vector<FrameMetadata> first_image_frames = {
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(2)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(3))};
+      FrameMetadata(true, base::Milliseconds(2)),
+      FrameMetadata(true, base::Milliseconds(3))};
   DiscardableImageMap::AnimatedImageMetadata first_data(
       PaintImage::GetNextId(), PaintImage::CompletionState::DONE,
       first_image_frames, kAnimationLoopOnce, 0);
@@ -286,8 +286,8 @@
                                        &first_driver);
 
   std::vector<FrameMetadata> second_image_frames = {
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(5)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(3))};
+      FrameMetadata(true, base::Milliseconds(5)),
+      FrameMetadata(true, base::Milliseconds(3))};
   DiscardableImageMap::AnimatedImageMetadata second_data(
       PaintImage::GetNextId(), PaintImage::CompletionState::DONE,
       second_image_frames, kAnimationLoopOnce, 0);
@@ -341,9 +341,9 @@
 
 TEST_F(ImageAnimationControllerTest, RepetitionsRequested) {
   std::vector<FrameMetadata> frames = {
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(2)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(3)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(4))};
+      FrameMetadata(true, base::Milliseconds(2)),
+      FrameMetadata(true, base::Milliseconds(3)),
+      FrameMetadata(true, base::Milliseconds(4))};
 
   DiscardableImageMap::AnimatedImageMetadata data(
       PaintImage::GetNextId(), PaintImage::CompletionState::DONE, frames,
@@ -420,9 +420,9 @@
 
 TEST_F(ImageAnimationControllerTest, DisplayCompleteFrameOnly) {
   std::vector<FrameMetadata> frames = {
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(2)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(3)),
-      FrameMetadata(false, base::TimeDelta::FromMilliseconds(4))};
+      FrameMetadata(true, base::Milliseconds(2)),
+      FrameMetadata(true, base::Milliseconds(3)),
+      FrameMetadata(false, base::Milliseconds(4))};
 
   DiscardableImageMap::AnimatedImageMetadata data(
       PaintImage::GetNextId(), PaintImage::CompletionState::PARTIALLY_DONE,
@@ -456,8 +456,8 @@
 
 TEST_F(ImageAnimationControllerTest, DontLoopPartiallyLoadedImages) {
   std::vector<FrameMetadata> frames = {
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(2)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(3))};
+      FrameMetadata(true, base::Milliseconds(2)),
+      FrameMetadata(true, base::Milliseconds(3))};
 
   DiscardableImageMap::AnimatedImageMetadata data(
       PaintImage::GetNextId(), PaintImage::CompletionState::PARTIALLY_DONE,
@@ -480,7 +480,7 @@
   // advance and we should see another repetition. This verifies that we don't
   // mark loops complete on reaching the last frame until the image is
   // completely loaded and the frame count is known to be accurate.
-  frames.push_back(FrameMetadata(true, base::TimeDelta::FromMilliseconds(4)));
+  frames.push_back(FrameMetadata(true, base::Milliseconds(4)));
   data.completion_state = PaintImage::CompletionState::DONE;
   data.frames = frames;
   controller_->UpdateAnimatedImage(data);
@@ -515,8 +515,8 @@
 
 TEST_F(ImageAnimationControllerTest, DontAdvanceUntilDesiredTime) {
   std::vector<FrameMetadata> frames = {
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(2)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(3))};
+      FrameMetadata(true, base::Milliseconds(2)),
+      FrameMetadata(true, base::Milliseconds(3))};
 
   DiscardableImageMap::AnimatedImageMetadata data(
       PaintImage::GetNextId(), PaintImage::CompletionState::DONE, frames,
@@ -544,7 +544,7 @@
 
   // While there is still time for the second frame, we get a new sync tree. The
   // animation is not advanced.
-  base::TimeDelta time_remaining = base::TimeDelta::FromMilliseconds(1);
+  base::TimeDelta time_remaining = base::Milliseconds(1);
   AdvanceNow(frames[0].duration - time_remaining);
   animated_images = controller_->AnimateForSyncTree(BeginFrameArgs());
   EXPECT_EQ(controller_->GetFrameIndexForImage(data.paint_image_id,
@@ -584,8 +584,8 @@
 
 TEST_F(ImageAnimationControllerTest, RestartAfterSyncCutoff) {
   std::vector<FrameMetadata> frames = {
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(2)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(3))};
+      FrameMetadata(true, base::Milliseconds(2)),
+      FrameMetadata(true, base::Milliseconds(3))};
 
   DiscardableImageMap::AnimatedImageMetadata data(
       PaintImage::GetNextId(), PaintImage::CompletionState::DONE, frames,
@@ -612,7 +612,7 @@
   task_runner_->VerifyDelay(frames[0].duration);
 
   // Advance the time by 10 min.
-  AdvanceNow(base::TimeDelta::FromMinutes(10));
+  AdvanceNow(base::Minutes(10));
 
   // Animate again, it starts from the first frame. We don't see a
   // frame update, because that's the frame we are already displaying.
@@ -635,10 +635,10 @@
 
 TEST_F(ImageAnimationControllerTest, DontSkipLoopsToCatchUpAfterLoad) {
   std::vector<FrameMetadata> frames = {
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(2)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(3)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(4)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(5))};
+      FrameMetadata(true, base::Milliseconds(2)),
+      FrameMetadata(true, base::Milliseconds(3)),
+      FrameMetadata(true, base::Milliseconds(4)),
+      FrameMetadata(true, base::Milliseconds(5))};
 
   DiscardableImageMap::AnimatedImageMetadata data(
       PaintImage::GetNextId(), PaintImage::CompletionState::PARTIALLY_DONE,
@@ -683,9 +683,9 @@
 
 TEST_F(ImageAnimationControllerTest, FinishRepetitionsDuringCatchUp) {
   std::vector<FrameMetadata> frames = {
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(2)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(3)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(4))};
+      FrameMetadata(true, base::Milliseconds(2)),
+      FrameMetadata(true, base::Milliseconds(3)),
+      FrameMetadata(true, base::Milliseconds(4))};
 
   // The animation wants 3 loops.
   DiscardableImageMap::AnimatedImageMetadata data(
@@ -701,7 +701,7 @@
 
   // now_ is set to the desired time for the first frame. Advance it so we would
   // reach way beyond the third repeition.
-  AdvanceNow(base::TimeDelta::FromMinutes(1));
+  AdvanceNow(base::Minutes(1));
 
   // Advance the animation, we should see the last frame since the desired
   // repetition count will be reached during catch up.
@@ -721,9 +721,9 @@
 
 TEST_F(ImageAnimationControllerTest, ResetAnimations) {
   std::vector<FrameMetadata> frames = {
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(2)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(3)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(4))};
+      FrameMetadata(true, base::Milliseconds(2)),
+      FrameMetadata(true, base::Milliseconds(3)),
+      FrameMetadata(true, base::Milliseconds(4))};
   DiscardableImageMap::AnimatedImageMetadata data(
       PaintImage::GetNextId(), PaintImage::CompletionState::DONE, frames, 3,
       0u);
@@ -765,8 +765,8 @@
 
 TEST_F(ImageAnimationControllerTest, ResetAnimationStateMapOnNavigation) {
   std::vector<FrameMetadata> first_image_frames = {
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(2)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(3))};
+      FrameMetadata(true, base::Milliseconds(2)),
+      FrameMetadata(true, base::Milliseconds(3))};
   DiscardableImageMap::AnimatedImageMetadata first_data(
       PaintImage::GetNextId(), PaintImage::CompletionState::DONE,
       first_image_frames, kAnimationLoopOnce, 0);
@@ -776,8 +776,8 @@
                                        &first_driver);
 
   std::vector<FrameMetadata> second_image_frames = {
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(5)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(3))};
+      FrameMetadata(true, base::Milliseconds(5)),
+      FrameMetadata(true, base::Milliseconds(3))};
   DiscardableImageMap::AnimatedImageMetadata second_data(
       PaintImage::GetNextId(), PaintImage::CompletionState::DONE,
       second_image_frames, kAnimationLoopOnce, 0);
@@ -806,11 +806,11 @@
 }
 
 TEST_F(ImageAnimationControllerTest, ImageWithNonVsyncAlignedDurations) {
-  interval_ = base::TimeDelta::FromMilliseconds(1);
+  interval_ = base::Milliseconds(1);
   std::vector<FrameMetadata> frames = {
-      FrameMetadata(true, base::TimeDelta::FromMillisecondsD(2.5)),
-      FrameMetadata(true, base::TimeDelta::FromMillisecondsD(3.76)),
-      FrameMetadata(true, base::TimeDelta::FromMillisecondsD(4.27))};
+      FrameMetadata(true, base::Milliseconds(2.5)),
+      FrameMetadata(true, base::Milliseconds(3.76)),
+      FrameMetadata(true, base::Milliseconds(4.27))};
   DiscardableImageMap::AnimatedImageMetadata data(
       PaintImage::GetNextId(), PaintImage::CompletionState::DONE, frames, 3,
       0u);
@@ -820,9 +820,7 @@
   controller_->UpdateStateFromDrivers();
 
   std::vector<base::TimeDelta> expected_delays = {
-      base::TimeDelta::FromMilliseconds(2),
-      base::TimeDelta::FromMilliseconds(4),
-      base::TimeDelta::FromMilliseconds(4)};
+      base::Milliseconds(2), base::Milliseconds(4), base::Milliseconds(4)};
   LoopOnceNoDelay(data.paint_image_id, frames, frames.size(), 0,
                   expected_delays);
 
@@ -830,12 +828,12 @@
 }
 
 TEST_F(ImageAnimationControllerTest, ImageWithLessThanIntervalDurations) {
-  interval_ = base::TimeDelta::FromMilliseconds(1);
+  interval_ = base::Milliseconds(1);
   std::vector<FrameMetadata> frames = {
-      FrameMetadata(true, base::TimeDelta::FromMillisecondsD(0.5)),
-      FrameMetadata(true, base::TimeDelta::FromMillisecondsD(0.43)),
-      FrameMetadata(true, base::TimeDelta::FromMillisecondsD(0.76)),
-      FrameMetadata(true, base::TimeDelta::FromMillisecondsD(0.74)),
+      FrameMetadata(true, base::Milliseconds(0.5)),
+      FrameMetadata(true, base::Milliseconds(0.43)),
+      FrameMetadata(true, base::Milliseconds(0.76)),
+      FrameMetadata(true, base::Milliseconds(0.74)),
   };
   frames.push_back(FrameMetadata(true, interval_ - frames.back().duration));
   DiscardableImageMap::AnimatedImageMetadata data(
@@ -859,9 +857,9 @@
 
 TEST_F(ImageAnimationControllerTest, ImplFramesWhileInvalidationPending) {
   std::vector<FrameMetadata> frames = {
-      FrameMetadata(true, base::TimeDelta::FromMillisecondsD(2.5)),
-      FrameMetadata(true, base::TimeDelta::FromMillisecondsD(3.76)),
-      FrameMetadata(true, base::TimeDelta::FromMillisecondsD(4.27))};
+      FrameMetadata(true, base::Milliseconds(2.5)),
+      FrameMetadata(true, base::Milliseconds(3.76)),
+      FrameMetadata(true, base::Milliseconds(4.27))};
   DiscardableImageMap::AnimatedImageMetadata data(
       PaintImage::GetNextId(), PaintImage::CompletionState::DONE, frames, 3,
       0u);
@@ -884,9 +882,9 @@
 
 TEST_F(ImageAnimationControllerTest, MissedBeginFrameAfterRequest) {
   std::vector<FrameMetadata> frames = {
-      FrameMetadata(true, base::TimeDelta::FromMillisecondsD(2.5)),
-      FrameMetadata(true, base::TimeDelta::FromMillisecondsD(3.76)),
-      FrameMetadata(true, base::TimeDelta::FromMillisecondsD(4.27))};
+      FrameMetadata(true, base::Milliseconds(2.5)),
+      FrameMetadata(true, base::Milliseconds(3.76)),
+      FrameMetadata(true, base::Milliseconds(4.27))};
   DiscardableImageMap::AnimatedImageMetadata data(
       PaintImage::GetNextId(), PaintImage::CompletionState::DONE, frames, 3,
       0u);
@@ -920,8 +918,8 @@
 
 TEST_F(ImageAnimationControllerNoResyncTest, NoSyncCutoffAfterIdle) {
   std::vector<FrameMetadata> frames = {
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(2)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(3))};
+      FrameMetadata(true, base::Milliseconds(2)),
+      FrameMetadata(true, base::Milliseconds(3))};
 
   DiscardableImageMap::AnimatedImageMetadata data(
       PaintImage::GetNextId(), PaintImage::CompletionState::DONE, frames,
@@ -949,7 +947,7 @@
 
   // Advance the time by 10 min (divisible by animation duration) and first
   // frame duration.
-  AdvanceNow(base::TimeDelta::FromMinutes(10) + frames[0].duration);
+  AdvanceNow(base::Minutes(10) + frames[0].duration);
 
   // Animate again, it should not restart from the start. Should display second
   // animation frame.
@@ -972,10 +970,10 @@
 
 TEST_F(ImageAnimationControllerNoResyncTest, SkipsLoopsAfterFirstIteration) {
   std::vector<FrameMetadata> frames = {
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(2)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(3)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(4)),
-      FrameMetadata(true, base::TimeDelta::FromMilliseconds(5))};
+      FrameMetadata(true, base::Milliseconds(2)),
+      FrameMetadata(true, base::Milliseconds(3)),
+      FrameMetadata(true, base::Milliseconds(4)),
+      FrameMetadata(true, base::Milliseconds(5))};
 
   DiscardableImageMap::AnimatedImageMetadata data(
       PaintImage::GetNextId(), PaintImage::CompletionState::PARTIALLY_DONE,
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
index c97239a..1405b44 100644
--- a/cc/trees/layer_tree_host_impl.cc
+++ b/cc/trees/layer_tree_host_impl.cc
@@ -2530,7 +2530,7 @@
       frame->deadline_in_frames.value_or(0u), CurrentBeginFrameArgs().interval,
       frame->use_default_lower_bound_deadline);
 
-  constexpr auto kFudgeDelta = base::TimeDelta::FromMilliseconds(1);
+  constexpr auto kFudgeDelta = base::Milliseconds(1);
   constexpr auto kTwiceOfDefaultInterval =
       viz::BeginFrameArgs::DefaultInterval() * 2;
   constexpr auto kMinDelta = kTwiceOfDefaultInterval - kFudgeDelta;
diff --git a/cc/trees/layer_tree_host_impl_unittest.cc b/cc/trees/layer_tree_host_impl_unittest.cc
index f387f003..74f53a1 100644
--- a/cc/trees/layer_tree_host_impl_unittest.cc
+++ b/cc/trees/layer_tree_host_impl_unittest.cc
@@ -314,8 +314,7 @@
         viz::LocalSurfaceId(1, base::UnguessableToken::Deserialize(2u, 3u)));
     // Set the viz::BeginFrameArgs so that methods which use it are able to.
     auto args = viz::CreateBeginFrameArgsForTesting(
-        BEGINFRAME_FROM_HERE, 0, 1,
-        base::TimeTicks() + base::TimeDelta::FromMilliseconds(1));
+        BEGINFRAME_FROM_HERE, 0, 1, base::TimeTicks() + base::Milliseconds(1));
     host_impl_->WillBeginImplFrame(args);
     host_impl_->DidFinishImplFrame(args);
 
@@ -657,7 +656,7 @@
     TestFrameData frame;
     auto args = viz::CreateBeginFrameArgsForTesting(
         BEGINFRAME_FROM_HERE, viz::BeginFrameArgs::kManualSourceId, 1,
-        base::TimeTicks() + base::TimeDelta::FromMilliseconds(1));
+        base::TimeTicks() + base::Milliseconds(1));
     host_impl_->WillBeginImplFrame(args);
     EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
     host_impl_->DrawLayers(&frame);
@@ -1347,18 +1346,17 @@
     EXPECT_EQ(host_impl_->GetActivelyScrollingType(),
               ActivelyScrollingType::kAnimated);
 
-    base::TimeTicks cur_time =
-        base::TimeTicks() + base::TimeDelta::FromMilliseconds(100);
+    base::TimeTicks cur_time = base::TimeTicks() + base::Milliseconds(100);
     viz::BeginFrameArgs begin_frame_args =
         viz::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, 0, 1);
 
-#define ANIMATE(time_ms)                                  \
-  cur_time += base::TimeDelta::FromMilliseconds(time_ms); \
-  begin_frame_args.frame_time = (cur_time);               \
-  begin_frame_args.frame_id.sequence_number++;            \
-  host_impl_->WillBeginImplFrame(begin_frame_args);       \
-  host_impl_->Animate();                                  \
-  host_impl_->UpdateAnimationState(true);                 \
+#define ANIMATE(time_ms)                            \
+  cur_time += base::Milliseconds(time_ms);          \
+  begin_frame_args.frame_time = (cur_time);         \
+  begin_frame_args.frame_id.sequence_number++;      \
+  host_impl_->WillBeginImplFrame(begin_frame_args); \
+  host_impl_->Animate();                            \
+  host_impl_->UpdateAnimationState(true);           \
   host_impl_->DidFinishImplFrame(begin_frame_args);
 
     // The animation is setup in the first frame so tick at least twice to
@@ -1676,8 +1674,7 @@
 
 gfx::PresentationFeedback ExampleFeedback() {
   return gfx::PresentationFeedback(
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(42),
-      base::TimeDelta::FromMicroseconds(18),
+      base::TimeTicks() + base::Milliseconds(42), base::Microseconds(18),
       gfx::PresentationFeedback::Flags::kVSync |
           gfx::PresentationFeedback::Flags::kHWCompletion);
 }
@@ -2521,13 +2518,12 @@
   EXPECT_EQ(TargetSnapAreaElementIds(),
             GetSnapContainerData(overflow)->GetTargetSnapAreaElementIds());
 
-  base::TimeTicks start_time =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(100);
+  base::TimeTicks start_time = base::TimeTicks() + base::Milliseconds(100);
   BeginImplFrameAndAnimate(begin_frame_args, start_time);
   BeginImplFrameAndAnimate(begin_frame_args,
-                           start_time + base::TimeDelta::FromMilliseconds(50));
-  BeginImplFrameAndAnimate(
-      begin_frame_args, start_time + base::TimeDelta::FromMilliseconds(1000));
+                           start_time + base::Milliseconds(50));
+  BeginImplFrameAndAnimate(begin_frame_args,
+                           start_time + base::Milliseconds(1000));
 
   EXPECT_FALSE(GetInputHandler().animating_for_snap_for_testing());
   EXPECT_VECTOR_EQ(gfx::Vector2dF(50, 0), CurrentScrollOffset(overflow));
@@ -2566,13 +2562,12 @@
   EXPECT_EQ(TargetSnapAreaElementIds(),
             GetSnapContainerData(overflow)->GetTargetSnapAreaElementIds());
 
-  base::TimeTicks start_time =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(100);
+  base::TimeTicks start_time = base::TimeTicks() + base::Milliseconds(100);
   BeginImplFrameAndAnimate(begin_frame_args, start_time);
   BeginImplFrameAndAnimate(begin_frame_args,
-                           start_time + base::TimeDelta::FromMilliseconds(50));
-  BeginImplFrameAndAnimate(
-      begin_frame_args, start_time + base::TimeDelta::FromMilliseconds(1000));
+                           start_time + base::Milliseconds(50));
+  BeginImplFrameAndAnimate(begin_frame_args,
+                           start_time + base::Milliseconds(1000));
 
   EXPECT_FALSE(GetInputHandler().animating_for_snap_for_testing());
   EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 50), CurrentScrollOffset(overflow));
@@ -2610,13 +2605,12 @@
   EXPECT_EQ(TargetSnapAreaElementIds(),
             GetSnapContainerData(overflow)->GetTargetSnapAreaElementIds());
 
-  base::TimeTicks start_time =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(100);
+  base::TimeTicks start_time = base::TimeTicks() + base::Milliseconds(100);
   BeginImplFrameAndAnimate(begin_frame_args, start_time);
   BeginImplFrameAndAnimate(begin_frame_args,
-                           start_time + base::TimeDelta::FromMilliseconds(50));
-  BeginImplFrameAndAnimate(
-      begin_frame_args, start_time + base::TimeDelta::FromMilliseconds(1000));
+                           start_time + base::Milliseconds(50));
+  BeginImplFrameAndAnimate(begin_frame_args,
+                           start_time + base::Milliseconds(1000));
 
   EXPECT_FALSE(GetInputHandler().animating_for_snap_for_testing());
   EXPECT_VECTOR_EQ(gfx::Vector2dF(50, 50), CurrentScrollOffset(overflow));
@@ -2664,15 +2658,14 @@
   EXPECT_EQ(TargetSnapAreaElementIds(),
             GetSnapContainerData(overflow)->GetTargetSnapAreaElementIds());
 
-  base::TimeTicks start_time =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(100);
+  base::TimeTicks start_time = base::TimeTicks() + base::Milliseconds(100);
   viz::BeginFrameArgs begin_frame_args =
       viz::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, 0, 1);
   BeginImplFrameAndAnimate(begin_frame_args, start_time);
 
   // Animating for the wheel scroll.
   BeginImplFrameAndAnimate(begin_frame_args,
-                           start_time + base::TimeDelta::FromMilliseconds(50));
+                           start_time + base::Milliseconds(50));
   EXPECT_FALSE(GetInputHandler().animating_for_snap_for_testing());
   gfx::ScrollOffset current_offset = CurrentScrollOffset(overflow);
   EXPECT_LT(0, current_offset.x());
@@ -2683,8 +2676,8 @@
             GetSnapContainerData(overflow)->GetTargetSnapAreaElementIds());
 
   // The scroll animation is finished, so the snap animation should begin.
-  BeginImplFrameAndAnimate(
-      begin_frame_args, start_time + base::TimeDelta::FromMilliseconds(1000));
+  BeginImplFrameAndAnimate(begin_frame_args,
+                           start_time + base::Milliseconds(1000));
 
   // The snap target should not be set until the end of the animation.
   EXPECT_TRUE(GetInputHandler().animating_for_snap_for_testing());
@@ -2692,8 +2685,8 @@
             GetSnapContainerData(overflow)->GetTargetSnapAreaElementIds());
 
   // Finish the animation.
-  BeginImplFrameAndAnimate(
-      begin_frame_args, start_time + base::TimeDelta::FromMilliseconds(1500));
+  BeginImplFrameAndAnimate(begin_frame_args,
+                           start_time + base::Milliseconds(1500));
   EXPECT_VECTOR_EQ(gfx::Vector2dF(50, 50), CurrentScrollOffset(overflow));
   EXPECT_FALSE(GetInputHandler().animating_for_snap_for_testing());
   EXPECT_EQ(TargetSnapAreaElementIds(ElementId(10), ElementId(10)),
@@ -2722,13 +2715,12 @@
   viz::BeginFrameArgs begin_frame_args =
       viz::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, 0, 1);
   GetInputHandler().ScrollEnd(true);
-  base::TimeTicks start_time =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(100);
+  base::TimeTicks start_time = base::TimeTicks() + base::Milliseconds(100);
   BeginImplFrameAndAnimate(begin_frame_args, start_time);
 
   // Finish smooth wheel scroll animation which starts a snap animation.
   BeginImplFrameAndAnimate(begin_frame_args,
-                           start_time + base::TimeDelta::FromMilliseconds(100));
+                           start_time + base::Milliseconds(100));
   EXPECT_TRUE(GetInputHandler().animating_for_snap_for_testing());
   EXPECT_EQ(TargetSnapAreaElementIds(),
             GetSnapContainerData(overflow)->GetTargetSnapAreaElementIds());
@@ -2747,17 +2739,17 @@
   const int scroll_animation_duration_ms =
       base::FeatureList::IsEnabled(features::kImpulseScrollAnimations) ? 300
                                                                        : 150;
-  BeginImplFrameAndAnimate(begin_frame_args,
-                           start_time + base::TimeDelta::FromMilliseconds(
-                                            scroll_animation_duration_ms));
+  BeginImplFrameAndAnimate(
+      begin_frame_args,
+      start_time + base::Milliseconds(scroll_animation_duration_ms));
 
   // At the end of the previous scroll animation, a new animation for the
   // snapping should have started.
   EXPECT_TRUE(GetInputHandler().animating_for_snap_for_testing());
 
   // Finish the snap animation.
-  BeginImplFrameAndAnimate(
-      begin_frame_args, start_time + base::TimeDelta::FromMilliseconds(1000));
+  BeginImplFrameAndAnimate(begin_frame_args,
+                           start_time + base::Milliseconds(1000));
 
   EXPECT_FALSE(GetInputHandler().animating_for_snap_for_testing());
   // At the end of snap animation we should have updated the
@@ -2789,13 +2781,12 @@
   viz::BeginFrameArgs begin_frame_args =
       viz::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, 0, 1);
   GetInputHandler().ScrollEnd(true);
-  base::TimeTicks start_time =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(100);
+  base::TimeTicks start_time = base::TimeTicks() + base::Milliseconds(100);
   BeginImplFrameAndAnimate(begin_frame_args, start_time);
 
   // Animating for the snap.
   BeginImplFrameAndAnimate(begin_frame_args,
-                           start_time + base::TimeDelta::FromMilliseconds(100));
+                           start_time + base::Milliseconds(100));
   EXPECT_TRUE(GetInputHandler().animating_for_snap_for_testing());
   EXPECT_EQ(TargetSnapAreaElementIds(),
             GetSnapContainerData(overflow)->GetTargetSnapAreaElementIds());
@@ -2819,11 +2810,11 @@
             GetSnapContainerData(overflow)->GetTargetSnapAreaElementIds());
 
   BeginImplFrameAndAnimate(begin_frame_args,
-                           start_time + base::TimeDelta::FromMilliseconds(150));
+                           start_time + base::Milliseconds(150));
   EXPECT_VECTOR_EQ(gfx::ScrollOffsetToVector2dF(current_offset),
                    CurrentScrollOffset(overflow));
-  BeginImplFrameAndAnimate(
-      begin_frame_args, start_time + base::TimeDelta::FromMilliseconds(1000));
+  BeginImplFrameAndAnimate(begin_frame_args,
+                           start_time + base::Milliseconds(1000));
   // Ensure that the snap target was not updated at the end of the scroll
   // animation.
   EXPECT_EQ(TargetSnapAreaElementIds(),
@@ -2860,8 +2851,7 @@
   EXPECT_EQ(TargetSnapAreaElementIds(ElementId(10), ElementId()),
             GetSnapContainerData(overflow)->GetTargetSnapAreaElementIds());
 
-  base::TimeTicks start_time =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(100);
+  base::TimeTicks start_time = base::TimeTicks() + base::Milliseconds(100);
   BeginImplFrameAndAnimate(begin_frame_args, start_time);
 
   // We are already at a snap target so we should not animate for snap.
@@ -2870,7 +2860,7 @@
   // Verify that we are not actually animating by running one frame and ensuring
   // scroll offset has not changed.
   BeginImplFrameAndAnimate(begin_frame_args,
-                           start_time + base::TimeDelta::FromMilliseconds(100));
+                           start_time + base::Milliseconds(100));
   EXPECT_FALSE(GetInputHandler().animating_for_snap_for_testing());
   EXPECT_VECTOR_EQ(gfx::Vector2dF(50, 0), CurrentScrollOffset(overflow));
   EXPECT_EQ(TargetSnapAreaElementIds(ElementId(10), ElementId()),
@@ -4452,9 +4442,8 @@
   float min_page_scale = 1;
   float max_page_scale = 4;
   float page_scale_delta = 1.04f;
-  base::TimeTicks start_time =
-      base::TimeTicks() + base::TimeDelta::FromSeconds(1);
-  base::TimeDelta duration = base::TimeDelta::FromMilliseconds(200);
+  base::TimeTicks start_time = base::TimeTicks() + base::Seconds(1);
+  base::TimeDelta duration = base::Milliseconds(200);
   base::TimeTicks halfway_through_animation = start_time + duration / 2;
   base::TimeTicks end_time = start_time + duration;
 
@@ -4511,9 +4500,9 @@
     EXPECT_EQ(commit_data->page_scale_delta, 1);
   }
 
-  start_time += base::TimeDelta::FromSeconds(10);
-  halfway_through_animation += base::TimeDelta::FromSeconds(10);
-  end_time += base::TimeDelta::FromSeconds(10);
+  start_time += base::Seconds(10);
+  halfway_through_animation += base::Seconds(10);
+  end_time += base::Seconds(10);
   page_scale_delta = 1.06f;
 
   // No zoom animation if page_scale is >= 1.05 * min_page_scale.
@@ -4576,9 +4565,8 @@
 
   float min_page_scale = 0.5f;
   float max_page_scale = 4;
-  base::TimeTicks start_time =
-      base::TimeTicks() + base::TimeDelta::FromSeconds(1);
-  base::TimeDelta duration = base::TimeDelta::FromMilliseconds(100);
+  base::TimeTicks start_time = base::TimeTicks() + base::Seconds(1);
+  base::TimeDelta duration = base::Milliseconds(100);
   base::TimeTicks halfway_through_animation = start_time + duration / 2;
   base::TimeTicks end_time = start_time + duration;
 
@@ -4641,9 +4629,9 @@
                                    gfx::ScrollOffset(-50, -50)));
   }
 
-  start_time += base::TimeDelta::FromSeconds(10);
-  halfway_through_animation += base::TimeDelta::FromSeconds(10);
-  end_time += base::TimeDelta::FromSeconds(10);
+  start_time += base::Seconds(10);
+  halfway_through_animation += base::Seconds(10);
+  end_time += base::Seconds(10);
 
   // Anchor zoom-out
   {
@@ -4703,9 +4691,8 @@
 
   float min_page_scale = 0.5f;
   float max_page_scale = 4;
-  base::TimeTicks start_time =
-      base::TimeTicks() + base::TimeDelta::FromSeconds(1);
-  base::TimeDelta duration = base::TimeDelta::FromMilliseconds(100);
+  base::TimeTicks start_time = base::TimeTicks() + base::Seconds(1);
+  base::TimeDelta duration = base::Milliseconds(100);
   base::TimeTicks halfway_through_animation = start_time + duration / 2;
   base::TimeTicks end_time = start_time + duration;
 
@@ -4770,9 +4757,8 @@
                                                        max_page_scale);
   host_impl_->ActivateSyncTree();
 
-  base::TimeTicks start_time =
-      base::TimeTicks() + base::TimeDelta::FromSeconds(1);
-  base::TimeDelta duration = base::TimeDelta::FromMilliseconds(100);
+  base::TimeTicks start_time = base::TimeTicks() + base::Seconds(1);
+  base::TimeDelta duration = base::Milliseconds(100);
   base::TimeTicks third_through_animation = start_time + duration / 3;
   base::TimeTicks halfway_through_animation = start_time + duration / 2;
   base::TimeTicks end_time = start_time + duration;
@@ -4820,10 +4806,10 @@
   EXPECT_FALSE(did_request_redraw_);
   EXPECT_TRUE(did_request_next_frame_);
 
-  start_time += base::TimeDelta::FromSeconds(10);
-  third_through_animation += base::TimeDelta::FromSeconds(10);
-  halfway_through_animation += base::TimeDelta::FromSeconds(10);
-  end_time += base::TimeDelta::FromSeconds(10);
+  start_time += base::Seconds(10);
+  third_through_animation += base::Seconds(10);
+  halfway_through_animation += base::Seconds(10);
+  end_time += base::Seconds(10);
 
   // From here on, make sure the animation runs as normal.
   did_request_redraw_ = false;
@@ -4885,9 +4871,8 @@
   LayerImpl* scroll_layer = InnerViewportScrollLayer();
   DCHECK(scroll_layer);
 
-  base::TimeTicks start_time =
-      base::TimeTicks() + base::TimeDelta::FromSeconds(1);
-  base::TimeDelta duration = base::TimeDelta::FromMilliseconds(100);
+  base::TimeTicks start_time = base::TimeTicks() + base::Seconds(1);
+  base::TimeDelta duration = base::Milliseconds(100);
   base::TimeTicks halfway_through_animation = start_time + duration / 2;
   base::TimeTicks end_time = start_time + duration;
 
@@ -5141,8 +5126,8 @@
   void RunTest(LayerTreeSettings::ScrollbarAnimator animator) {
     LayerTreeSettings settings = DefaultSettings();
     settings.scrollbar_animator = animator;
-    settings.scrollbar_fade_delay = base::TimeDelta::FromMilliseconds(20);
-    settings.scrollbar_fade_duration = base::TimeDelta::FromMilliseconds(20);
+    settings.scrollbar_fade_delay = base::Milliseconds(20);
+    settings.scrollbar_fade_duration = base::Milliseconds(20);
 
     // If no animator is set, scrollbar won't show and no animation is expected.
     bool expecting_animations = animator != LayerTreeSettings::NO_ANIMATOR;
@@ -5191,8 +5176,7 @@
     EXPECT_FALSE(did_request_next_frame_);
     EXPECT_FALSE(did_request_redraw_);
     if (animator == LayerTreeSettings::AURA_OVERLAY) {
-      EXPECT_EQ(base::TimeDelta::FromMilliseconds(20),
-                requested_animation_delay_);
+      EXPECT_EQ(base::Milliseconds(20), requested_animation_delay_);
       EXPECT_FALSE(animation_task_.is_null());
       requested_animation_delay_ = base::TimeDelta();
       animation_task_.Reset();
@@ -5228,8 +5212,7 @@
     EXPECT_TRUE(did_request_redraw_);
     did_request_redraw_ = false;
     if (expecting_animations) {
-      EXPECT_EQ(base::TimeDelta::FromMilliseconds(20),
-                requested_animation_delay_);
+      EXPECT_EQ(base::Milliseconds(20), requested_animation_delay_);
       EXPECT_FALSE(animation_task_.is_null());
     } else {
       EXPECT_EQ(base::TimeDelta(), requested_animation_delay_);
@@ -5240,8 +5223,7 @@
     EXPECT_FALSE(did_request_next_frame_);
     EXPECT_FALSE(did_request_redraw_);
     if (expecting_animations) {
-      EXPECT_EQ(base::TimeDelta::FromMilliseconds(20),
-                requested_animation_delay_);
+      EXPECT_EQ(base::Milliseconds(20), requested_animation_delay_);
       EXPECT_FALSE(animation_task_.is_null());
     } else {
       EXPECT_EQ(base::TimeDelta(), requested_animation_delay_);
@@ -5302,8 +5284,7 @@
     EXPECT_FALSE(did_request_next_frame_);
     EXPECT_FALSE(did_request_redraw_);
     if (expecting_animations) {
-      EXPECT_EQ(base::TimeDelta::FromMilliseconds(20),
-                requested_animation_delay_);
+      EXPECT_EQ(base::Milliseconds(20), requested_animation_delay_);
       EXPECT_FALSE(animation_task_.is_null());
       requested_animation_delay_ = base::TimeDelta();
       animation_task_.Reset();
@@ -5332,8 +5313,8 @@
   void RunTest(LayerTreeSettings::ScrollbarAnimator animator) {
     LayerTreeSettings settings = DefaultSettings();
     settings.scrollbar_animator = animator;
-    settings.scrollbar_fade_delay = base::TimeDelta::FromMilliseconds(20);
-    settings.scrollbar_fade_duration = base::TimeDelta::FromMilliseconds(20);
+    settings.scrollbar_fade_delay = base::Milliseconds(20);
+    settings.scrollbar_fade_duration = base::Milliseconds(20);
     gfx::Size viewport_size(50, 50);
     gfx::Size content_size(100, 100);
 
@@ -5499,8 +5480,8 @@
 TEST_P(LayerTreeHostImplTestMultiScrollable,
        ScrollbarFlashAfterAnyScrollUpdate) {
   LayerTreeSettings settings = DefaultSettings();
-  settings.scrollbar_fade_delay = base::TimeDelta::FromMilliseconds(500);
-  settings.scrollbar_fade_duration = base::TimeDelta::FromMilliseconds(300);
+  settings.scrollbar_fade_delay = base::Milliseconds(500);
+  settings.scrollbar_fade_duration = base::Milliseconds(300);
   settings.scrollbar_animator = LayerTreeSettings::AURA_OVERLAY;
   settings.scrollbar_flash_after_any_scroll_update = true;
 
@@ -5545,8 +5526,8 @@
 
 TEST_P(ScrollUnifiedLayerTreeHostImplTest, ScrollHitTestOnScrollbar) {
   LayerTreeSettings settings = DefaultSettings();
-  settings.scrollbar_fade_delay = base::TimeDelta::FromMilliseconds(500);
-  settings.scrollbar_fade_duration = base::TimeDelta::FromMilliseconds(300);
+  settings.scrollbar_fade_delay = base::Milliseconds(500);
+  settings.scrollbar_fade_duration = base::Milliseconds(300);
   settings.scrollbar_animator = LayerTreeSettings::NO_ANIMATOR;
 
   gfx::Size viewport_size(300, 200);
@@ -5636,8 +5617,8 @@
        ScrollbarVisibilityChangeCausesRedrawAndCommit) {
   LayerTreeSettings settings = DefaultSettings();
   settings.scrollbar_animator = LayerTreeSettings::AURA_OVERLAY;
-  settings.scrollbar_fade_delay = base::TimeDelta::FromMilliseconds(20);
-  settings.scrollbar_fade_duration = base::TimeDelta::FromMilliseconds(20);
+  settings.scrollbar_fade_delay = base::Milliseconds(20);
+  settings.scrollbar_fade_duration = base::Milliseconds(20);
   gfx::Size viewport_size(50, 50);
   gfx::Size content_size(100, 100);
 
@@ -5727,8 +5708,8 @@
 TEST_P(ScrollUnifiedLayerTreeHostImplTest, ScrollbarRegistration) {
   LayerTreeSettings settings = DefaultSettings();
   settings.scrollbar_animator = LayerTreeSettings::ANDROID_OVERLAY;
-  settings.scrollbar_fade_delay = base::TimeDelta::FromMilliseconds(20);
-  settings.scrollbar_fade_duration = base::TimeDelta::FromMilliseconds(20);
+  settings.scrollbar_fade_delay = base::Milliseconds(20);
+  settings.scrollbar_fade_duration = base::Milliseconds(20);
   CreateHostImpl(settings, CreateLayerTreeFrameSink());
 
   gfx::Size viewport_size(300, 200);
@@ -5822,8 +5803,8 @@
 TEST_P(ScrollUnifiedLayerTreeHostImplTest, ScrollBeforeMouseMove) {
   LayerTreeSettings settings = DefaultSettings();
   settings.scrollbar_animator = LayerTreeSettings::AURA_OVERLAY;
-  settings.scrollbar_fade_delay = base::TimeDelta::FromMilliseconds(20);
-  settings.scrollbar_fade_duration = base::TimeDelta::FromMilliseconds(20);
+  settings.scrollbar_fade_delay = base::Milliseconds(20);
+  settings.scrollbar_fade_duration = base::Milliseconds(20);
   CreateHostImpl(settings, CreateLayerTreeFrameSink());
 
   gfx::Size viewport_size(300, 200);
@@ -5901,8 +5882,8 @@
 void LayerTreeHostImplTest::SetupMouseMoveAtWithDeviceScale(
     float device_scale_factor) {
   LayerTreeSettings settings = DefaultSettings();
-  settings.scrollbar_fade_delay = base::TimeDelta::FromMilliseconds(500);
-  settings.scrollbar_fade_duration = base::TimeDelta::FromMilliseconds(300);
+  settings.scrollbar_fade_delay = base::Milliseconds(500);
+  settings.scrollbar_fade_duration = base::Milliseconds(300);
   settings.scrollbar_animator = LayerTreeSettings::AURA_OVERLAY;
 
   gfx::Size viewport_size(300, 200);
@@ -6239,7 +6220,7 @@
     TestFrameData frame;
     auto args = viz::CreateBeginFrameArgsForTesting(
         BEGINFRAME_FROM_HERE, viz::BeginFrameArgs::kManualSourceId, 1,
-        base::TimeTicks() + base::TimeDelta::FromMilliseconds(1));
+        base::TimeTicks() + base::Milliseconds(1));
     host_impl_->WillBeginImplFrame(args);
     EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
 
@@ -6269,7 +6250,7 @@
     TestFrameData frame;
     auto args = viz::CreateBeginFrameArgsForTesting(
         BEGINFRAME_FROM_HERE, viz::BeginFrameArgs::kManualSourceId, 1,
-        base::TimeTicks() + base::TimeDelta::FromMilliseconds(1));
+        base::TimeTicks() + base::Milliseconds(1));
     host_impl_->WillBeginImplFrame(args);
     EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
 
@@ -6290,7 +6271,7 @@
     TestFrameData frame;
     auto args = viz::CreateBeginFrameArgsForTesting(
         BEGINFRAME_FROM_HERE, viz::BeginFrameArgs::kManualSourceId, 1,
-        base::TimeTicks() + base::TimeDelta::FromMilliseconds(1));
+        base::TimeTicks() + base::Milliseconds(1));
     host_impl_->WillBeginImplFrame(args);
     EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
 
@@ -6598,7 +6579,7 @@
     TestFrameData frame;
     auto args = viz::CreateBeginFrameArgsForTesting(
         BEGINFRAME_FROM_HERE, viz::BeginFrameArgs::kManualSourceId, 1,
-        base::TimeTicks() + base::TimeDelta::FromMilliseconds(1));
+        base::TimeTicks() + base::Milliseconds(1));
     host_impl_->WillBeginImplFrame(args);
     EXPECT_EQ(testcase.expected_result, host_impl_->PrepareToDraw(&frame));
     host_impl_->DrawLayers(&frame);
@@ -7823,8 +7804,7 @@
 
   // Pump an animation frame to put some delta in the browser controls.
   {
-    begin_frame_args.frame_time =
-        start_time + base::TimeDelta::FromMilliseconds(50);
+    begin_frame_args.frame_time = start_time + base::Milliseconds(50);
     begin_frame_args.frame_id.sequence_number++;
     host_impl_->WillBeginImplFrame(begin_frame_args);
     host_impl_->Animate();
@@ -7850,8 +7830,7 @@
   // 200 is the kShowHideMaxDurationMs value from browser_controls_manager.cc so
   // the browser controls should be fully animated in this frame.
   {
-    begin_frame_args.frame_time =
-        start_time + base::TimeDelta::FromMilliseconds(200);
+    begin_frame_args.frame_time = start_time + base::Milliseconds(200);
     begin_frame_args.frame_id.sequence_number++;
     host_impl_->WillBeginImplFrame(begin_frame_args);
     host_impl_->Animate();
@@ -8301,8 +8280,7 @@
 
   DrawFrame();
 
-  base::TimeTicks start_time =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(10);
+  base::TimeTicks start_time = base::TimeTicks() + base::Milliseconds(10);
 
   viz::BeginFrameArgs begin_frame_args =
       viz::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, 0, 1);
@@ -8327,8 +8305,7 @@
   EXPECT_NE(gfx::ScrollOffset(0, 30), CurrentScrollOffset(grand_child_layer));
   host_impl_->DidFinishImplFrame(begin_frame_args);
 
-  begin_frame_args.frame_time =
-      start_time + base::TimeDelta::FromMilliseconds(200);
+  begin_frame_args.frame_time = start_time + base::Milliseconds(200);
   begin_frame_args.frame_id.sequence_number++;
   host_impl_->WillBeginImplFrame(begin_frame_args);
   host_impl_->Animate();
@@ -8342,16 +8319,14 @@
   GetInputHandler().ScrollUpdate(
       AnimatedUpdateState(gfx::Point(), gfx::Vector2d(0, -100)).get());
 
-  begin_frame_args.frame_time =
-      start_time + base::TimeDelta::FromMilliseconds(250);
+  begin_frame_args.frame_time = start_time + base::Milliseconds(250);
   begin_frame_args.frame_id.sequence_number++;
   host_impl_->WillBeginImplFrame(begin_frame_args);
   host_impl_->Animate();
   host_impl_->UpdateAnimationState(true);
   host_impl_->DidFinishImplFrame(begin_frame_args);
 
-  begin_frame_args.frame_time =
-      start_time + base::TimeDelta::FromMilliseconds(450);
+  begin_frame_args.frame_time = start_time + base::Milliseconds(450);
   begin_frame_args.frame_id.sequence_number++;
   host_impl_->WillBeginImplFrame(begin_frame_args);
   host_impl_->Animate();
@@ -9070,7 +9045,7 @@
   TestFrameData frame;
   auto args = viz::CreateBeginFrameArgsForTesting(
       BEGINFRAME_FROM_HERE, viz::BeginFrameArgs::kManualSourceId, 1,
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(1));
+      base::TimeTicks() + base::Milliseconds(1));
   host_impl_->WillBeginImplFrame(args);
   EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
   host_impl_->DrawLayers(&frame);
@@ -9165,18 +9140,17 @@
     auto update_state = AnimatedUpdateState(gfx::Point(), scroll_delta);
     GetInputHandler().ScrollUpdate(update_state.get());
 
-    base::TimeTicks cur_time =
-        base::TimeTicks() + base::TimeDelta::FromMilliseconds(100);
+    base::TimeTicks cur_time = base::TimeTicks() + base::Milliseconds(100);
     viz::BeginFrameArgs begin_frame_args =
         viz::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, 0, 1);
 
-#define ANIMATE(time_ms)                                  \
-  cur_time += base::TimeDelta::FromMilliseconds(time_ms); \
-  begin_frame_args.frame_time = (cur_time);               \
-  begin_frame_args.frame_id.sequence_number++;            \
-  host_impl_->WillBeginImplFrame(begin_frame_args);       \
-  host_impl_->Animate();                                  \
-  host_impl_->UpdateAnimationState(true);                 \
+#define ANIMATE(time_ms)                            \
+  cur_time += base::Milliseconds(time_ms);          \
+  begin_frame_args.frame_time = (cur_time);         \
+  begin_frame_args.frame_id.sequence_number++;      \
+  host_impl_->WillBeginImplFrame(begin_frame_args); \
+  host_impl_->Animate();                            \
+  host_impl_->UpdateAnimationState(true);           \
   host_impl_->DidFinishImplFrame(begin_frame_args);
 
     // The animation is setup in the first frame so tick twice to actually
@@ -10622,7 +10596,7 @@
   TestFrameData frame;
   auto args = viz::CreateBeginFrameArgsForTesting(
       BEGINFRAME_FROM_HERE, viz::BeginFrameArgs::kManualSourceId, 1,
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(1));
+      base::TimeTicks() + base::Milliseconds(1));
   host_impl->WillBeginImplFrame(args);
   EXPECT_EQ(DRAW_SUCCESS, host_impl->PrepareToDraw(&frame));
   host_impl->DrawLayers(&frame);
@@ -11002,7 +10976,7 @@
   // First frame, the entire screen should get swapped.
   auto args = viz::CreateBeginFrameArgsForTesting(
       BEGINFRAME_FROM_HERE, viz::BeginFrameArgs::kManualSourceId, 1,
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(1));
+      base::TimeTicks() + base::Milliseconds(1));
   layer_tree_host_impl->WillBeginImplFrame(args);
   EXPECT_EQ(DRAW_SUCCESS, layer_tree_host_impl->PrepareToDraw(&frame));
   layer_tree_host_impl->DrawLayers(&frame);
@@ -11018,7 +10992,7 @@
   child->NoteLayerPropertyChanged();
   args = viz::CreateBeginFrameArgsForTesting(
       BEGINFRAME_FROM_HERE, viz::BeginFrameArgs::kManualSourceId, 1,
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(1));
+      base::TimeTicks() + base::Milliseconds(1));
   layer_tree_host_impl->WillBeginImplFrame(args);
   EXPECT_EQ(DRAW_SUCCESS, layer_tree_host_impl->PrepareToDraw(&frame));
   layer_tree_host_impl->DrawLayers(&frame);
@@ -11034,7 +11008,7 @@
   root->SetBackgroundColor(SK_ColorBLACK);
   args = viz::CreateBeginFrameArgsForTesting(
       BEGINFRAME_FROM_HERE, viz::BeginFrameArgs::kManualSourceId, 1,
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(1));
+      base::TimeTicks() + base::Milliseconds(1));
   layer_tree_host_impl->WillBeginImplFrame(args);
   EXPECT_EQ(DRAW_SUCCESS, layer_tree_host_impl->PrepareToDraw(&frame));
   layer_tree_host_impl->DrawLayers(&frame);
@@ -11136,7 +11110,7 @@
   TestFrameData frame;
   auto args = viz::CreateBeginFrameArgsForTesting(
       BEGINFRAME_FROM_HERE, viz::BeginFrameArgs::kManualSourceId, 1,
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(1));
+      base::TimeTicks() + base::Milliseconds(1));
   host_impl_->WillBeginImplFrame(args);
   EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
   {
@@ -11157,7 +11131,7 @@
   host_impl_->SetFullViewportDamage();
   args = viz::CreateBeginFrameArgsForTesting(
       BEGINFRAME_FROM_HERE, viz::BeginFrameArgs::kManualSourceId, 1,
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(1));
+      base::TimeTicks() + base::Milliseconds(1));
   host_impl_->WillBeginImplFrame(args);
   EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
   {
@@ -11176,7 +11150,7 @@
   host_impl_->SetFullViewportDamage();
   host_impl_->WillBeginImplFrame(viz::CreateBeginFrameArgsForTesting(
       BEGINFRAME_FROM_HERE, viz::BeginFrameArgs::kManualSourceId, 1,
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(1)));
+      base::TimeTicks() + base::Milliseconds(1)));
   EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
   {
     const auto& root_pass = frame.render_passes.back();
@@ -11200,7 +11174,7 @@
     TestFrameData frame;
     auto args = viz::CreateBeginFrameArgsForTesting(
         BEGINFRAME_FROM_HERE, viz::BeginFrameArgs::kManualSourceId, 1,
-        base::TimeTicks() + base::TimeDelta::FromMilliseconds(1));
+        base::TimeTicks() + base::Milliseconds(1));
     host_impl_->WillBeginImplFrame(args);
     EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
 
@@ -11314,7 +11288,7 @@
   TestFrameData frame;
   auto args = viz::CreateBeginFrameArgsForTesting(
       BEGINFRAME_FROM_HERE, viz::BeginFrameArgs::kManualSourceId, 1,
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(1));
+      base::TimeTicks() + base::Milliseconds(1));
   host_impl_->WillBeginImplFrame(args);
   EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
 
@@ -11499,7 +11473,7 @@
   TestFrameData frame;
   auto args = viz::CreateBeginFrameArgsForTesting(
       BEGINFRAME_FROM_HERE, viz::BeginFrameArgs::kManualSourceId, 1,
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(1));
+      base::TimeTicks() + base::Milliseconds(1));
   host_impl->WillBeginImplFrame(args);
   EXPECT_EQ(DRAW_SUCCESS, host_impl->PrepareToDraw(&frame));
   ASSERT_EQ(1u, frame.render_passes.size());
@@ -12152,7 +12126,7 @@
       host_impl_->Animate();
       host_impl_->DidFinishImplFrame(begin_frame_args);
 
-      begin_frame_args.frame_time += base::TimeDelta::FromMilliseconds(5);
+      begin_frame_args.frame_time += base::Milliseconds(5);
       begin_frame_args.frame_id.sequence_number++;
     } while (did_request_next_frame_);
   }
@@ -12413,7 +12387,7 @@
     float old_offset =
         host_impl_->browser_controls_manager()->ControlsTopOffset();
 
-    begin_frame_args.frame_time += base::TimeDelta::FromMilliseconds(5);
+    begin_frame_args.frame_time += base::Milliseconds(5);
     begin_frame_args.frame_id.sequence_number++;
     host_impl_->WillBeginImplFrame(begin_frame_args);
     host_impl_->Animate();
@@ -12502,7 +12476,7 @@
     float old_offset =
         host_impl_->browser_controls_manager()->ControlsTopOffset();
 
-    begin_frame_args.frame_time += base::TimeDelta::FromMilliseconds(5);
+    begin_frame_args.frame_time += base::Milliseconds(5);
     begin_frame_args.frame_id.sequence_number++;
     host_impl_->WillBeginImplFrame(begin_frame_args);
     host_impl_->Animate();
@@ -13393,8 +13367,7 @@
 
   DrawFrame();
 
-  base::TimeTicks start_time =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(100);
+  base::TimeTicks start_time = base::TimeTicks() + base::Milliseconds(100);
 
   viz::BeginFrameArgs begin_frame_args =
       viz::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, 0, 1);
@@ -13434,8 +13407,7 @@
   EXPECT_NE(gfx::ScrollOffset(), CurrentScrollOffset(scrolling_layer));
   host_impl_->DidFinishImplFrame(begin_frame_args);
 
-  begin_frame_args.frame_time =
-      start_time + base::TimeDelta::FromMilliseconds(50);
+  begin_frame_args.frame_time = start_time + base::Milliseconds(50);
   begin_frame_args.frame_id.sequence_number++;
   host_impl_->WillBeginImplFrame(begin_frame_args);
   host_impl_->Animate();
@@ -13463,8 +13435,7 @@
 
   host_impl_->DidFinishImplFrame(begin_frame_args);
 
-  begin_frame_args.frame_time =
-      start_time + base::TimeDelta::FromMilliseconds(200);
+  begin_frame_args.frame_time = start_time + base::Milliseconds(200);
   begin_frame_args.frame_id.sequence_number++;
   host_impl_->WillBeginImplFrame(begin_frame_args);
   host_impl_->Animate();
@@ -13476,8 +13447,7 @@
             host_impl_->CurrentlyScrollingNode()->id);
   host_impl_->DidFinishImplFrame(begin_frame_args);
 
-  begin_frame_args.frame_time =
-      start_time + base::TimeDelta::FromMilliseconds(250);
+  begin_frame_args.frame_time = start_time + base::Milliseconds(250);
   begin_frame_args.frame_id.sequence_number++;
   host_impl_->WillBeginImplFrame(begin_frame_args);
   host_impl_->Animate();
@@ -13519,8 +13489,7 @@
     EXPECT_EQ(outer_scroll->scroll_tree_index(),
               host_impl_->CurrentlyScrollingNode()->id);
 
-    base::TimeTicks start_time =
-        base::TimeTicks() + base::TimeDelta::FromMilliseconds(100);
+    base::TimeTicks start_time = base::TimeTicks() + base::Milliseconds(100);
     begin_frame_args.frame_time = start_time;
     begin_frame_args.frame_id.sequence_number++;
     host_impl_->WillBeginImplFrame(begin_frame_args);
@@ -13540,7 +13509,7 @@
     EXPECT_EQ(outer_scroll->scroll_tree_index(),
               host_impl_->CurrentlyScrollingNode()->id);
 
-    begin_frame_args.frame_time += base::TimeDelta::FromMilliseconds(5);
+    begin_frame_args.frame_time += base::Milliseconds(5);
     begin_frame_args.frame_id.sequence_number++;
     host_impl_->WillBeginImplFrame(begin_frame_args);
     host_impl_->Animate();
@@ -13570,7 +13539,7 @@
   // is, we shouldn't clear the latch when the animation ends because we're
   // currently in an active scroll gesture.
   {
-    begin_frame_args.frame_time += base::TimeDelta::FromMilliseconds(200);
+    begin_frame_args.frame_time += base::Milliseconds(200);
     begin_frame_args.frame_id.sequence_number++;
     host_impl_->WillBeginImplFrame(begin_frame_args);
     host_impl_->Animate();
@@ -13633,8 +13602,7 @@
               host_impl_->CurrentlyScrollingNode()->id);
   }
 
-  base::TimeTicks start_time =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(100);
+  base::TimeTicks start_time = base::TimeTicks() + base::Milliseconds(100);
 
   viz::BeginFrameArgs begin_frame_args =
       viz::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, 0, 1);
@@ -13654,8 +13622,7 @@
   // Tick ahead to the end of the animation. We scrolled 30 viewport pixels but
   // since we're zoomed in to 2x we should have scrolled 15 content pixels.
   {
-    begin_frame_args.frame_time =
-        start_time + base::TimeDelta::FromMilliseconds(1000);
+    begin_frame_args.frame_time = start_time + base::Milliseconds(1000);
     begin_frame_args.frame_id.sequence_number++;
     host_impl_->WillBeginImplFrame(begin_frame_args);
     host_impl_->Animate();
@@ -13710,8 +13677,7 @@
               GetImplAnimationHost()->ImplOnlyScrollAnimatingElement());
   }
 
-  base::TimeTicks start_time =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(100);
+  base::TimeTicks start_time = base::TimeTicks() + base::Milliseconds(100);
 
   viz::BeginFrameArgs begin_frame_args =
       viz::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, 0, 1);
@@ -13752,8 +13718,7 @@
   // scrolled to the maximum offset. The outer viewport should not have
   // scrolled.
   {
-    begin_frame_args.frame_time =
-        start_time + base::TimeDelta::FromMilliseconds(1000);
+    begin_frame_args.frame_time = start_time + base::Milliseconds(1000);
     begin_frame_args.frame_id.sequence_number++;
     host_impl_->WillBeginImplFrame(begin_frame_args);
     host_impl_->Animate();
@@ -14070,8 +14035,7 @@
   GetInputHandler().BindToClient(&input_handler_client);
 
   // ------------------------- Start frame 0 -------------------------
-  base::TimeTicks start_time =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(200);
+  base::TimeTicks start_time = base::TimeTicks() + base::Milliseconds(200);
   viz::BeginFrameArgs begin_frame_args =
       viz::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, 0, 1);
   begin_frame_args.frame_time = start_time;
@@ -14098,8 +14062,7 @@
   host_impl_->DidFinishImplFrame(begin_frame_args);
 
   // ------------------------- Start frame 1 -------------------------
-  begin_frame_args.frame_time =
-      start_time + base::TimeDelta::FromMilliseconds(250);
+  begin_frame_args.frame_time = start_time + base::Milliseconds(250);
   begin_frame_args.frame_id.sequence_number++;
   host_impl_->WillBeginImplFrame(begin_frame_args);
 
@@ -14181,7 +14144,7 @@
   dropped_frame_counter->AddGoodFrame();
   EXPECT_EQ(dropped_frame_counter->total_frames(), 1u);
 
-  auto interval = base::TimeDelta::FromMilliseconds(16);
+  auto interval = base::Milliseconds(16);
   base::TimeTicks now = base::TimeTicks::Now();
   auto deadline = now + interval;
   viz::BeginFrameArgs args = viz::BeginFrameArgs::Create(
@@ -14217,7 +14180,7 @@
   EXPECT_EQ(total_frame_counter->total_frames(), 0u);
   EXPECT_EQ(dropped_frame_counter->total_frames(), 0u);
 
-  auto interval = base::TimeDelta::FromMilliseconds(16);
+  auto interval = base::Milliseconds(16);
   base::TimeTicks now = base::TimeTicks::Now();
   auto deadline = now + interval;
   viz::BeginFrameArgs arg1 = viz::BeginFrameArgs::Create(
@@ -14723,8 +14686,7 @@
   // ----------------------------- Start frame 0 -----------------------------
   viz::BeginFrameArgs begin_frame_args =
       viz::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, 0, 1);
-  base::TimeTicks start_time =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(200);
+  base::TimeTicks start_time = base::TimeTicks() + base::Milliseconds(200);
   begin_frame_args.frame_time = start_time;
   begin_frame_args.frame_id.sequence_number++;
   host_impl_->WillBeginImplFrame(begin_frame_args);
@@ -14735,8 +14697,7 @@
   host_impl_->DidFinishImplFrame(begin_frame_args);
 
   // ----------------------------- Start frame 1 -----------------------------
-  begin_frame_args.frame_time =
-      start_time + base::TimeDelta::FromMilliseconds(250);
+  begin_frame_args.frame_time = start_time + base::Milliseconds(250);
   begin_frame_args.frame_id.sequence_number++;
   host_impl_->WillBeginImplFrame(begin_frame_args);
 
@@ -14753,8 +14714,7 @@
   // zero offset. This is done to ensure that the scroller doesn't jump ahead
   // when the length changes mid thumb drag. So, every time the scroller length
   // changes mid thumb drag, a GSU is lost (in the worst case).
-  begin_frame_args.frame_time =
-      start_time + base::TimeDelta::FromMilliseconds(300);
+  begin_frame_args.frame_time = start_time + base::Milliseconds(300);
   begin_frame_args.frame_id.sequence_number++;
   host_impl_->WillBeginImplFrame(begin_frame_args);
   result = GetInputHandler().MouseMoveAt(gfx::Point(350, 22));
@@ -14769,8 +14729,7 @@
   // Since delta -= drag_state_->scroller_displacement, the actual delta becomes
   // 97 - 48 which is 49. The math that calculates the deltas (i.e 97 and 48)
   // can be found in ScrollbarController::GetScrollDeltaForDragPosition.
-  begin_frame_args.frame_time =
-      start_time + base::TimeDelta::FromMilliseconds(350);
+  begin_frame_args.frame_time = start_time + base::Milliseconds(350);
   begin_frame_args.frame_id.sequence_number++;
   host_impl_->WillBeginImplFrame(begin_frame_args);
   result = GetInputHandler().MouseMoveAt(gfx::Point(350, 26));
@@ -14876,8 +14835,7 @@
 
   DrawFrame();
 
-  base::TimeTicks start_time =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(200);
+  base::TimeTicks start_time = base::TimeTicks() + base::Milliseconds(200);
 
   viz::BeginFrameArgs begin_frame_args =
       viz::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, 0, 1);
@@ -14902,16 +14860,14 @@
   GetInputHandler().ScrollUpdate(
       AnimatedUpdateState(gfx::Point(), gfx::Vector2d(0, 100)).get());
 
-  begin_frame_args.frame_time =
-      start_time + base::TimeDelta::FromMilliseconds(250);
+  begin_frame_args.frame_time = start_time + base::Milliseconds(250);
   begin_frame_args.frame_id.sequence_number++;
   // This is when the animation above gets promoted to STARTING.
   host_impl_->WillBeginImplFrame(begin_frame_args);
   host_impl_->UpdateAnimationState(true);
   host_impl_->DidFinishImplFrame(begin_frame_args);
 
-  begin_frame_args.frame_time =
-      start_time + base::TimeDelta::FromMilliseconds(300);
+  begin_frame_args.frame_time = start_time + base::Milliseconds(300);
   begin_frame_args.frame_id.sequence_number++;
   // This is when the animation above gets ticked.
   host_impl_->WillBeginImplFrame(begin_frame_args);
@@ -14934,8 +14890,7 @@
 
   DrawFrame();
 
-  base::TimeTicks start_time =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(100);
+  base::TimeTicks start_time = base::TimeTicks() + base::Milliseconds(100);
   viz::BeginFrameArgs begin_frame_args =
       viz::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, 0, 1);
 
@@ -14949,7 +14904,7 @@
                 .thread);
   GetInputHandler().ScrollUpdate(
       AnimatedUpdateState(gfx::Point(), gfx::Vector2d(0, 100)).get(),
-      base::TimeDelta::FromMilliseconds(100));
+      base::Milliseconds(100));
 
   LayerImpl* scrolling_layer = OuterViewportScrollLayer();
   EXPECT_EQ(scrolling_layer->scroll_tree_index(),
@@ -14966,8 +14921,8 @@
   // Second tick after 50ms, animation should be half way done since the
   // duration due to delay is 100ms. Subtract off the frame interval since we
   // progress a full frame on the first tick.
-  base::TimeTicks half_way_time = start_time - begin_frame_args.interval +
-                                  base::TimeDelta::FromMilliseconds(50);
+  base::TimeTicks half_way_time =
+      start_time - begin_frame_args.interval + base::Milliseconds(50);
   begin_frame_args.frame_time = half_way_time;
   begin_frame_args.frame_id.sequence_number++;
   host_impl_->WillBeginImplFrame(begin_frame_args);
@@ -14981,12 +14936,11 @@
   // Update target.
   GetInputHandler().ScrollUpdate(
       AnimatedUpdateState(gfx::Point(), gfx::Vector2d(0, 100)).get(),
-      base::TimeDelta::FromMilliseconds(150));
+      base::Milliseconds(150));
 
   // Third tick after 100ms, should be at the target position since update
   // target was called with a large value of jank.
-  begin_frame_args.frame_time =
-      start_time + base::TimeDelta::FromMilliseconds(100);
+  begin_frame_args.frame_time = start_time + base::Milliseconds(100);
   begin_frame_args.frame_id.sequence_number++;
   host_impl_->WillBeginImplFrame(begin_frame_args);
   host_impl_->UpdateAnimationState(true);
@@ -15002,8 +14956,7 @@
 
   DrawFrame();
 
-  base::TimeTicks start_time =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(100);
+  base::TimeTicks start_time = base::TimeTicks() + base::Milliseconds(100);
 
   viz::BeginFrameArgs begin_frame_args =
       viz::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, 0, 1);
@@ -15035,8 +14988,7 @@
   EXPECT_NE(gfx::ScrollOffset(), CurrentScrollOffset(scrolling_layer));
   host_impl_->DidFinishImplFrame(begin_frame_args);
 
-  begin_frame_args.frame_time =
-      start_time + base::TimeDelta::FromMilliseconds(50);
+  begin_frame_args.frame_time = start_time + base::Milliseconds(50);
   begin_frame_args.frame_id.sequence_number++;
   host_impl_->WillBeginImplFrame(begin_frame_args);
   host_impl_->Animate();
@@ -15084,8 +15036,7 @@
 
   DrawFrame();
 
-  base::TimeTicks start_time =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(100);
+  base::TimeTicks start_time = base::TimeTicks() + base::Milliseconds(100);
 
   viz::BeginFrameArgs begin_frame_args =
       viz::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, 0, 1);
@@ -15113,8 +15064,7 @@
   EXPECT_NE(gfx::ScrollOffset(), CurrentScrollOffset(scrolling_layer));
   host_impl_->DidFinishImplFrame(begin_frame_args);
 
-  begin_frame_args.frame_time =
-      start_time + base::TimeDelta::FromMilliseconds(50);
+  begin_frame_args.frame_time = start_time + base::Milliseconds(50);
   begin_frame_args.frame_id.sequence_number++;
   host_impl_->WillBeginImplFrame(begin_frame_args);
   host_impl_->Animate();
@@ -15129,8 +15079,7 @@
   GetInputHandler().ScrollEnd();
   host_impl_->DidFinishImplFrame(begin_frame_args);
 
-  begin_frame_args.frame_time =
-      start_time + base::TimeDelta::FromMilliseconds(200);
+  begin_frame_args.frame_time = start_time + base::Milliseconds(200);
   begin_frame_args.frame_id.sequence_number++;
   host_impl_->WillBeginImplFrame(begin_frame_args);
   host_impl_->Animate();
@@ -15142,8 +15091,7 @@
             host_impl_->CurrentlyScrollingNode()->id);
   host_impl_->DidFinishImplFrame(begin_frame_args);
 
-  begin_frame_args.frame_time =
-      start_time + base::TimeDelta::FromMilliseconds(250);
+  begin_frame_args.frame_time = start_time + base::Milliseconds(250);
   begin_frame_args.frame_id.sequence_number++;
   host_impl_->WillBeginImplFrame(begin_frame_args);
   host_impl_->Animate();
@@ -15176,8 +15124,7 @@
   // Scroll by a small amount, there should be no bubbling to the outer
   // viewport (but scrolling the viewport always sets the outer as the
   // currently scrolling node).
-  base::TimeTicks start_time =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(250);
+  base::TimeTicks start_time = base::TimeTicks() + base::Milliseconds(250);
   viz::BeginFrameArgs begin_frame_args =
       viz::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, 0, 1);
   EXPECT_EQ(ScrollThread::SCROLL_ON_IMPL_THREAD,
@@ -15213,7 +15160,7 @@
 
   begin_frame_args.frame_id.sequence_number++;
   BeginImplFrameAndAnimate(begin_frame_args,
-                           start_time + base::TimeDelta::FromMilliseconds(350));
+                           start_time + base::Milliseconds(350));
   EXPECT_VECTOR_EQ(gfx::Vector2dF(50, 50),
                    CurrentScrollOffset(inner_scroll_layer));
   EXPECT_VECTOR_EQ(gfx::Vector2dF(5, 10),
@@ -15230,7 +15177,7 @@
 
   begin_frame_args.frame_id.sequence_number++;
   BeginImplFrameAndAnimate(begin_frame_args,
-                           start_time + base::TimeDelta::FromMilliseconds(850));
+                           start_time + base::Milliseconds(850));
   EXPECT_VECTOR_EQ(gfx::Vector2dF(50, 50),
                    CurrentScrollOffset(inner_scroll_layer));
   EXPECT_VECTOR_EQ(gfx::Vector2dF(100, 100),
@@ -15246,8 +15193,8 @@
             host_impl_->CurrentlyScrollingNode()->id);
 
   begin_frame_args.frame_id.sequence_number++;
-  BeginImplFrameAndAnimate(
-      begin_frame_args, start_time + base::TimeDelta::FromMilliseconds(1200));
+  BeginImplFrameAndAnimate(begin_frame_args,
+                           start_time + base::Milliseconds(1200));
   EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0),
                    CurrentScrollOffset(inner_scroll_layer));
   EXPECT_VECTOR_EQ(gfx::Vector2dF(95, 90),
@@ -15272,8 +15219,7 @@
   host_impl_->active_tree()->SetPageScaleOnActiveTree(page_scale_factor);
 
   // Scroll the inner viewport.
-  base::TimeTicks start_time =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(50);
+  base::TimeTicks start_time = base::TimeTicks() + base::Milliseconds(50);
   viz::BeginFrameArgs begin_frame_args =
       viz::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, 0, 1);
   EXPECT_EQ(ScrollThread::SCROLL_ON_IMPL_THREAD,
@@ -15313,7 +15259,7 @@
   // carried forward.
   begin_frame_args.frame_id.sequence_number++;
   BeginImplFrameAndAnimate(begin_frame_args,
-                           start_time + base::TimeDelta::FromMilliseconds(350));
+                           start_time + base::Milliseconds(350));
   EXPECT_VECTOR_EQ(gfx::Vector2dF(50, 50),
                    CurrentScrollOffset(inner_scroll_layer));
   EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0),
@@ -15334,8 +15280,7 @@
 
   DrawFrame();
 
-  base::TimeTicks start_time =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(100);
+  base::TimeTicks start_time = base::TimeTicks() + base::Milliseconds(100);
 
   viz::BeginFrameArgs begin_frame_args =
       viz::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, 0, 1);
@@ -15362,8 +15307,7 @@
   EXPECT_NE(gfx::ScrollOffset(), CurrentScrollOffset(scrolling_layer));
   host_impl_->DidFinishImplFrame(begin_frame_args);
 
-  begin_frame_args.frame_time =
-      start_time + base::TimeDelta::FromMilliseconds(50);
+  begin_frame_args.frame_time = start_time + base::Milliseconds(50);
   begin_frame_args.frame_id.sequence_number++;
   host_impl_->WillBeginImplFrame(begin_frame_args);
   host_impl_->Animate();
@@ -15379,8 +15323,7 @@
       AnimatedUpdateState(gfx::Point(), gfx::Vector2d(50, 50)).get());
   host_impl_->DidFinishImplFrame(begin_frame_args);
 
-  begin_frame_args.frame_time =
-      start_time + base::TimeDelta::FromMilliseconds(200);
+  begin_frame_args.frame_time = start_time + base::Milliseconds(200);
   begin_frame_args.frame_id.sequence_number++;
   host_impl_->WillBeginImplFrame(begin_frame_args);
   host_impl_->Animate();
@@ -15392,8 +15335,7 @@
             host_impl_->CurrentlyScrollingNode()->id);
   host_impl_->DidFinishImplFrame(begin_frame_args);
 
-  begin_frame_args.frame_time =
-      start_time + base::TimeDelta::FromMilliseconds(250);
+  begin_frame_args.frame_time = start_time + base::Milliseconds(250);
   begin_frame_args.frame_id.sequence_number++;
   host_impl_->WillBeginImplFrame(begin_frame_args);
   host_impl_->Animate();
@@ -15422,8 +15364,7 @@
 
   DrawFrame();
 
-  base::TimeTicks start_time =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(100);
+  base::TimeTicks start_time = base::TimeTicks() + base::Milliseconds(100);
   viz::BeginFrameArgs begin_frame_args =
       viz::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, 0, 1);
 
@@ -15449,8 +15390,7 @@
   scrolling_layer->SetBounds(new_content_size);
   GetScrollNode(scrolling_layer)->bounds = new_content_size;
 
-  begin_frame_args.frame_time =
-      start_time + base::TimeDelta::FromMilliseconds(200);
+  begin_frame_args.frame_time = start_time + base::Milliseconds(200);
   begin_frame_args.frame_id.sequence_number++;
   host_impl_->WillBeginImplFrame(begin_frame_args);
   host_impl_->Animate();
@@ -16085,8 +16025,8 @@
 void LayerTreeHostImplTest::SetupMouseMoveAtTestScrollbarStates(
     bool main_thread_scrolling) {
   LayerTreeSettings settings = DefaultSettings();
-  settings.scrollbar_fade_delay = base::TimeDelta::FromMilliseconds(500);
-  settings.scrollbar_fade_duration = base::TimeDelta::FromMilliseconds(300);
+  settings.scrollbar_fade_delay = base::Milliseconds(500);
+  settings.scrollbar_fade_duration = base::Milliseconds(300);
   settings.scrollbar_animator = LayerTreeSettings::AURA_OVERLAY;
 
   gfx::Size viewport_size(300, 200);
@@ -17673,13 +17613,12 @@
   viz::BeginFrameArgs begin_frame_args =
       viz::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, 0, 1);
 
-  base::TimeTicks start_time =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(100);
+  base::TimeTicks start_time = base::TimeTicks() + base::Milliseconds(100);
   BeginImplFrameAndAnimate(begin_frame_args, start_time);
   BeginImplFrameAndAnimate(begin_frame_args,
-                           start_time + base::TimeDelta::FromMilliseconds(50));
-  BeginImplFrameAndAnimate(
-      begin_frame_args, start_time + base::TimeDelta::FromMilliseconds(2000));
+                           start_time + base::Milliseconds(50));
+  BeginImplFrameAndAnimate(begin_frame_args,
+                           start_time + base::Milliseconds(2000));
 
   const gfx::ScrollOffset kExpectedDelta(
       kPageDelta.x() * kViewportSize.width() * kMinFractionToStepWhenPaging,
@@ -17709,7 +17648,7 @@
     scoped_feature_list.InitAndEnableFeature(features::kScrollUnification);
     LayerTreeHostImplTest::SetUp();
 
-    cur_time_ = base::TimeTicks() + base::TimeDelta::FromMilliseconds(100);
+    cur_time_ = base::TimeTicks() + base::Milliseconds(100);
     begin_frame_args_ =
         viz::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, 0, 1);
 
@@ -17848,7 +17787,7 @@
     return ElementId(1234);
   }
 
-  base::TimeDelta kFrameInterval = base::TimeDelta::FromMilliseconds(16);
+  base::TimeDelta kFrameInterval = base::Milliseconds(16);
 
   // Parameterized test body. Defined inline with tests.
   void TestUncompositedScrollingState(bool mutates_transform_tree);
@@ -18092,7 +18031,7 @@
 
     StartAnimation();
     BeginFrame(kFrameInterval);
-    BeginFrame(base::TimeDelta::FromMilliseconds(500));
+    BeginFrame(base::Milliseconds(500));
     BeginFrame(kFrameInterval);
 
     ASSERT_EQ(ScrollOffset(0, 20), ScrollerOffset());
diff --git a/cc/trees/layer_tree_host_perftest.cc b/cc/trees/layer_tree_host_perftest.cc
index e2715896..f855dbea 100644
--- a/cc/trees/layer_tree_host_perftest.cc
+++ b/cc/trees/layer_tree_host_perftest.cc
@@ -39,13 +39,12 @@
  public:
   LayerTreeHostPerfTest()
       : draw_timer_(kWarmupRuns,
-                    base::TimeDelta::FromMilliseconds(kTimeLimitMillis),
+                    base::Milliseconds(kTimeLimitMillis),
                     kTimeCheckInterval),
         commit_timer_(0, base::TimeDelta(), 1),
         full_damage_each_frame_(false),
         begin_frame_driven_drawing_(false),
-        measure_commit_cost_(false) {
-  }
+        measure_commit_cost_(false) {}
 
   std::unique_ptr<TestLayerTreeFrameSink> CreateLayerTreeFrameSink(
       const viz::RendererSettings& renderer_settings,
diff --git a/cc/trees/layer_tree_host_unittest.cc b/cc/trees/layer_tree_host_unittest.cc
index b0abe42..793ac1a8 100644
--- a/cc/trees/layer_tree_host_unittest.cc
+++ b/cc/trees/layer_tree_host_unittest.cc
@@ -3887,7 +3887,7 @@
         FROM_HERE,
         // Unretained because the test doesn't end before this runs.
         base::BindOnce(&LayerTreeTest::EndTest, base::Unretained(this)),
-        base::TimeDelta::FromMilliseconds(100));
+        base::Milliseconds(100));
   }
 
   void DidCommit() override { ++commit_count_; }
@@ -3932,7 +3932,7 @@
             &LayerTreeHostTestDeferInsideBeginMainFrameWithCommitAfter::
                 AllowCommits,
             base::Unretained(this)),
-        base::TimeDelta::FromMilliseconds(100));
+        base::Milliseconds(100));
   }
 
   void AllowCommits() {
@@ -7225,7 +7225,7 @@
         // Use a delay to allow raster/upload to happen in between frames. This
         // should cause flakiness if we fail to block raster/upload when
         // desired.
-        base::TimeDelta::FromMilliseconds(16 * 4));
+        base::Milliseconds(16 * 4));
   }
 
   void Next(LayerTreeHostImpl* host_impl) {
@@ -8451,10 +8451,9 @@
     gfx::Size layer_size(1000, 500);
     content_layer_client_.set_bounds(layer_size);
     content_layer_client_.set_fill_with_nonsolid_color(true);
-    std::vector<FrameMetadata> frames = {
-        FrameMetadata(true, base::TimeDelta::FromSeconds(1)),
-        FrameMetadata(true, base::TimeDelta::FromSeconds(1)),
-        FrameMetadata(true, base::TimeDelta::FromSeconds(1))};
+    std::vector<FrameMetadata> frames = {FrameMetadata(true, base::Seconds(1)),
+                                         FrameMetadata(true, base::Seconds(1)),
+                                         FrameMetadata(true, base::Seconds(1))};
     generator_ = sk_make_sp<FakePaintImageGenerator>(
         SkImageInfo::MakeN32Premul(500, 500, SkColorSpace::MakeSRGB()), frames);
     PaintImage image =
@@ -9263,9 +9262,9 @@
  private:
   void SimulateEventOnMain() {
     base::SimpleTestTickClock tick_clock;
-    tick_clock.Advance(base::TimeDelta::FromMicroseconds(10));
+    tick_clock.Advance(base::Microseconds(10));
     base::TimeTicks event_time = tick_clock.NowTicks();
-    tick_clock.Advance(base::TimeDelta::FromMicroseconds(10));
+    tick_clock.Advance(base::Microseconds(10));
     std::unique_ptr<EventMetrics> metrics = EventMetrics::CreateForTesting(
         ui::ET_GESTURE_SCROLL_UPDATE,
         EventMetrics::ScrollParams(ui::ScrollInputType::kWheel, false,
@@ -9273,13 +9272,13 @@
         event_time, &tick_clock);
     DCHECK_NE(metrics, nullptr);
     {
-      tick_clock.Advance(base::TimeDelta::FromMicroseconds(10));
+      tick_clock.Advance(base::Microseconds(10));
       metrics->SetDispatchStageTimestamp(
           EventMetrics::DispatchStage::kRendererCompositorStarted);
       auto done_callback = base::BindOnce(
           [](std::unique_ptr<EventMetrics> metrics,
              base::SimpleTestTickClock* tick_clock, bool handled) {
-            tick_clock->Advance(base::TimeDelta::FromMicroseconds(10));
+            tick_clock->Advance(base::Microseconds(10));
             metrics->SetDispatchStageTimestamp(
                 EventMetrics::DispatchStage::kRendererCompositorFinished);
             std::unique_ptr<EventMetrics> result =
@@ -9501,8 +9500,7 @@
  private:
   void DeferCommitOnMain() {
     layer_tree_host()->StartDeferringCommits(
-        base::TimeDelta::FromDays(1),
-        PaintHoldingReason::kFirstContentfulPaint);
+        base::Days(1), PaintHoldingReason::kFirstContentfulPaint);
   }
 
   void PostDeferCommit() {
diff --git a/cc/trees/layer_tree_host_unittest_animation.cc b/cc/trees/layer_tree_host_unittest_animation.cc
index 938a2a3..64dcb23e 100644
--- a/cc/trees/layer_tree_host_unittest_animation.cc
+++ b/cc/trees/layer_tree_host_unittest_animation.cc
@@ -2318,7 +2318,7 @@
       KeyframeModel* keyframe_model =
           animation_child_->GetKeyframeModel(TargetProperty::TRANSFORM);
       keyframe_model->set_start_time(base::TimeTicks::Now() +
-                                     base::TimeDelta::FromSecondsD(1000));
+                                     base::Seconds(1000));
       keyframe_model->set_fill_mode(KeyframeModel::FillMode::NONE);
     }
   }
diff --git a/cc/trees/layer_tree_host_unittest_context.cc b/cc/trees/layer_tree_host_unittest_context.cc
index cb7610f6..6be30fc 100644
--- a/cc/trees/layer_tree_host_unittest_context.cc
+++ b/cc/trees/layer_tree_host_unittest_context.cc
@@ -50,7 +50,7 @@
 
 // Returns a fake TimeTicks based on the given microsecond offset.
 base::TimeTicks TicksFromMicroseconds(int64_t micros) {
-  return base::TimeTicks() + base::TimeDelta::FromMicroseconds(micros);
+  return base::TimeTicks() + base::Microseconds(micros);
 }
 
 // These tests deal with losing the 3d graphics context.
diff --git a/cc/trees/layer_tree_host_unittest_proxy.cc b/cc/trees/layer_tree_host_unittest_proxy.cc
index f9ff5d0..1a3bc28 100644
--- a/cc/trees/layer_tree_host_unittest_proxy.cc
+++ b/cc/trees/layer_tree_host_unittest_proxy.cc
@@ -298,7 +298,7 @@
             // Use a delay to allow the main frame to start if it would. This
             // should cause failures (or flakiness) if we fail to wait for the
             // activation before starting the main frame.
-            base::TimeDelta::FromMilliseconds(16 * 4));
+            base::Milliseconds(16 * 4));
         break;
       }
       case 1:
@@ -415,9 +415,8 @@
           base::BindOnce(&LayerTreeHostProxyTestCommitWaitsForActivationMFBA::
                              UnblockActivation,
                          base::Unretained(this), impl);
-      ImplThreadTaskRunner()->PostDelayedTask(
-          FROM_HERE, std::move(unblock),
-          base::TimeDelta::FromMilliseconds(16 * 4));
+      ImplThreadTaskRunner()->PostDelayedTask(FROM_HERE, std::move(unblock),
+                                              base::Milliseconds(16 * 4));
     }
   }
 
diff --git a/cc/trees/property_tree_builder_unittest.cc b/cc/trees/property_tree_builder_unittest.cc
index 0b11f14..b33193e 100644
--- a/cc/trees/property_tree_builder_unittest.cc
+++ b/cc/trees/property_tree_builder_unittest.cc
@@ -553,13 +553,13 @@
   end_filters.Append(FilterOperation::CreateBrightnessFilter(0.3f));
   curve->AddKeyframe(
       FilterKeyframe::Create(base::TimeDelta(), start_filters, nullptr));
-  curve->AddKeyframe(FilterKeyframe::Create(
-      base::TimeDelta::FromMilliseconds(100), end_filters, nullptr));
+  curve->AddKeyframe(
+      FilterKeyframe::Create(base::Milliseconds(100), end_filters, nullptr));
   std::unique_ptr<KeyframeModel> keyframe_model = KeyframeModel::Create(
       std::move(curve), 0, 1,
       KeyframeModel::TargetPropertyId(TargetProperty::FILTER));
   keyframe_model->set_fill_mode(KeyframeModel::FillMode::NONE);
-  keyframe_model->set_time_offset(base::TimeDelta::FromMilliseconds(-1000));
+  keyframe_model->set_time_offset(base::Milliseconds(-1000));
 
   AddKeyframeModelToElementWithAnimation(child->element_id(), timeline(),
                                          std::move(keyframe_model));
diff --git a/cc/trees/proxy_impl.cc b/cc/trees/proxy_impl.cc
index e58615da..cf7fef6 100644
--- a/cc/trees/proxy_impl.cc
+++ b/cc/trees/proxy_impl.cc
@@ -44,7 +44,7 @@
 
 // Measured in seconds.
 constexpr auto kSmoothnessTakesPriorityExpirationDelay =
-    base::TimeDelta::FromMilliseconds(250);
+    base::Milliseconds(250);
 
 }  // namespace
 
diff --git a/cc/trees/ukm_manager_unittest.cc b/cc/trees/ukm_manager_unittest.cc
index 738de67..11b931c 100644
--- a/cc/trees/ukm_manager_unittest.cc
+++ b/cc/trees/ukm_manager_unittest.cc
@@ -136,7 +136,7 @@
 
  protected:
   base::TimeTicks AdvanceNowByMs(int advance_ms) {
-    test_tick_clock_.Advance(base::TimeDelta::FromMicroseconds(advance_ms));
+    test_tick_clock_.Advance(base::Microseconds(advance_ms));
     return test_tick_clock_.NowTicks();
   }
 
@@ -199,16 +199,16 @@
 
   BeginMainFrameMetrics BuildBlinkBreakdown() {
     BeginMainFrameMetrics breakdown;
-    breakdown.handle_input_events = base::TimeDelta::FromMicroseconds(10);
-    breakdown.animate = base::TimeDelta::FromMicroseconds(9);
-    breakdown.style_update = base::TimeDelta::FromMicroseconds(8);
-    breakdown.layout_update = base::TimeDelta::FromMicroseconds(7);
-    breakdown.compositing_inputs = base::TimeDelta::FromMicroseconds(6);
-    breakdown.prepaint = base::TimeDelta::FromMicroseconds(5);
-    breakdown.compositing_assignments = base::TimeDelta::FromMicroseconds(4);
-    breakdown.paint = base::TimeDelta::FromMicroseconds(3);
-    breakdown.composite_commit = base::TimeDelta::FromMicroseconds(2);
-    breakdown.update_layers = base::TimeDelta::FromMicroseconds(1);
+    breakdown.handle_input_events = base::Microseconds(10);
+    breakdown.animate = base::Microseconds(9);
+    breakdown.style_update = base::Microseconds(8);
+    breakdown.layout_update = base::Microseconds(7);
+    breakdown.compositing_inputs = base::Microseconds(6);
+    breakdown.prepaint = base::Microseconds(5);
+    breakdown.compositing_assignments = base::Microseconds(4);
+    breakdown.paint = base::Microseconds(3);
+    breakdown.composite_commit = base::Microseconds(2);
+    breakdown.update_layers = base::Microseconds(1);
 
     // Advance now by the sum of the breakdowns.
     AdvanceNowByMs(10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1);
diff --git a/chrome/app_shim/app_shim_controller.mm b/chrome/app_shim/app_shim_controller.mm
index 0d9bef90..d1939ce 100644
--- a/chrome/app_shim/app_shim_controller.mm
+++ b/chrome/app_shim/app_shim_controller.mm
@@ -109,13 +109,11 @@
 namespace {
 // The maximum amount of time to wait for Chrome's AppShimListener to be
 // ready.
-constexpr base::TimeDelta kPollTimeoutSeconds =
-    base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kPollTimeoutSeconds = base::Seconds(60);
 
 // The period in between attempts to check of Chrome's AppShimListener is
 // ready.
-constexpr base::TimeDelta kPollPeriodMsec =
-    base::TimeDelta::FromMilliseconds(100);
+constexpr base::TimeDelta kPollPeriodMsec = base::Milliseconds(100);
 
 }  // namespace
 
diff --git a/chrome/browser/accessibility/soda_installer_impl_unittest.cc b/chrome/browser/accessibility/soda_installer_impl_unittest.cc
index 26c49699..d415c79 100644
--- a/chrome/browser/accessibility/soda_installer_impl_unittest.cc
+++ b/chrome/browser/accessibility/soda_installer_impl_unittest.cc
@@ -16,7 +16,7 @@
 
 namespace {
 const speech::LanguageCode kEnglishLocale = speech::LanguageCode::kEnUs;
-const base::TimeDelta kSodaUninstallTime = base::TimeDelta::FromDays(30);
+const base::TimeDelta kSodaUninstallTime = base::Days(30);
 }  // namespace
 
 namespace speech {
diff --git a/chrome/browser/after_startup_task_utils.cc b/chrome/browser/after_startup_task_utils.cc
index bbde2b7f..686f5c1 100644
--- a/chrome/browser/after_startup_task_utils.cc
+++ b/chrome/browser/after_startup_task_utils.cc
@@ -226,7 +226,7 @@
   // Add failsafe timeout
   content::GetUIThreadTaskRunner({})->PostDelayedTask(
       FROM_HERE, base::BindOnce(&SetBrowserStartupIsComplete),
-      base::TimeDelta::FromMinutes(3));
+      base::Minutes(3));
 }
 
 void AfterStartupTaskUtils::PostTask(
diff --git a/chrome/browser/android/autofill_assistant/ui_controller_android.cc b/chrome/browser/android/autofill_assistant/ui_controller_android.cc
index 4f22f4c2..491216b 100644
--- a/chrome/browser/android/autofill_assistant/ui_controller_android.cc
+++ b/chrome/browser/android/autofill_assistant/ui_controller_android.cc
@@ -1206,7 +1206,7 @@
       FROM_HERE,
       base::BindOnce(&UiControllerAndroid::HideKeyboardIfFocusNotOnText,
                      weak_ptr_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(50));
+      base::Milliseconds(50));
 }
 
 void UiControllerAndroid::HideKeyboardIfFocusNotOnText() {
diff --git a/chrome/browser/android/bottombar/overlay_panel_content.cc b/chrome/browser/android/bottombar/overlay_panel_content.cc
index bd409f1..511caa3 100644
--- a/chrome/browser/android/bottombar/overlay_panel_content.cc
+++ b/chrome/browser/android/bottombar/overlay_panel_content.cc
@@ -75,8 +75,8 @@
   // The deletion window is from the time a search URL was put in history, up
   // to a short amount of time later.
   base::Time begin_time = base::Time::FromJsTime(search_start_time_ms);
-  base::Time end_time = begin_time +
-      base::TimeDelta::FromSeconds(kHistoryDeletionWindowSeconds);
+  base::Time end_time =
+      begin_time + base::Seconds(kHistoryDeletionWindowSeconds);
 
   history::HistoryService* service = HistoryServiceFactory::GetForProfile(
       ProfileManager::GetActiveUserProfile(),
diff --git a/chrome/browser/android/chrome_power_mode_voter.cc b/chrome/browser/android/chrome_power_mode_voter.cc
index 3b98e1d6..32eb8b8 100644
--- a/chrome/browser/android/chrome_power_mode_voter.cc
+++ b/chrome/browser/android/chrome_power_mode_voter.cc
@@ -36,7 +36,7 @@
     return;
   }
   base::TimeTicks curr = base::TimeTicks::Now();
-  if (curr - g_android_view_ondraw_emitted > base::TimeDelta::FromSeconds(30)) {
+  if (curr - g_android_view_ondraw_emitted > base::Seconds(30)) {
     // a 144hz monitor refreshes 120 times a second so 3600 frames in 30
     // seconds. So 10000 should be more than enough for now (famous last words).
     UMA_HISTOGRAM_COUNTS_10000("Android.View.onDraw.30Seconds",
diff --git a/chrome/browser/android/cookies/cookies_fetcher_util.cc b/chrome/browser/android/cookies/cookies_fetcher_util.cc
index 2a0b94b..5dafe31a 100644
--- a/chrome/browser/android/cookies/cookies_fetcher_util.cc
+++ b/chrome/browser/android/cookies/cookies_fetcher_util.cc
@@ -116,12 +116,11 @@
           base::android::ConvertJavaStringToUTF8(env, name),
           base::android::ConvertJavaStringToUTF8(env, value), domain_str,
           path_str,
+          base::Time::FromDeltaSinceWindowsEpoch(base::Microseconds(creation)),
           base::Time::FromDeltaSinceWindowsEpoch(
-              base::TimeDelta::FromMicroseconds(creation)),
+              base::Microseconds(expiration)),
           base::Time::FromDeltaSinceWindowsEpoch(
-              base::TimeDelta::FromMicroseconds(expiration)),
-          base::Time::FromDeltaSinceWindowsEpoch(
-              base::TimeDelta::FromMicroseconds(last_access)),
+              base::Microseconds(last_access)),
           secure, httponly, static_cast<net::CookieSameSite>(same_site),
           static_cast<net::CookiePriority>(priority), same_party, pk,
           static_cast<net::CookieSourceScheme>(source_scheme), source_port);
diff --git a/chrome/browser/android/explore_sites/explore_sites_fetcher_unittest.cc b/chrome/browser/android/explore_sites/explore_sites_fetcher_unittest.cc
index b040774..92392033 100644
--- a/chrome/browser/android/explore_sites/explore_sites_fetcher_unittest.cc
+++ b/chrome/browser/android/explore_sites/explore_sites_fetcher_unittest.cc
@@ -377,7 +377,7 @@
   int initial_delay_ms =
       ExploreSitesFetcher::kImmediateFetchBackoffPolicy.initial_delay_ms;
   std::vector<base::TimeDelta> backoff_delays = {
-      base::TimeDelta::FromMilliseconds(initial_delay_ms)};
+      base::Milliseconds(initial_delay_ms)};
   std::vector<base::OnceCallback<void(void)>> respond_callbacks;
   respond_callbacks.push_back(
       base::BindOnce(&ExploreSitesFetcherTest::RespondWithNetError,
@@ -397,7 +397,7 @@
   int initial_delay_ms =
       ExploreSitesFetcher::kBackgroundFetchBackoffPolicy.initial_delay_ms;
   std::vector<base::TimeDelta> backoff_delays = {
-      base::TimeDelta::FromMilliseconds(initial_delay_ms)};
+      base::Milliseconds(initial_delay_ms)};
   std::vector<base::OnceCallback<void(void)>> respond_callbacks;
   respond_callbacks.push_back(
       base::BindOnce(&ExploreSitesFetcherTest::RespondWithNetError,
@@ -417,8 +417,8 @@
   int initial_delay_ms =
       ExploreSitesFetcher::kImmediateFetchBackoffPolicy.initial_delay_ms;
   std::vector<base::TimeDelta> backoff_delays = {
-      base::TimeDelta::FromMilliseconds(initial_delay_ms),
-      base::TimeDelta::FromMilliseconds(initial_delay_ms * 2)};
+      base::Milliseconds(initial_delay_ms),
+      base::Milliseconds(initial_delay_ms * 2)};
   std::vector<base::OnceCallback<void(void)>> respond_callbacks;
   respond_callbacks.push_back(
       base::BindOnce(&ExploreSitesFetcherTest::RespondWithNetError,
@@ -444,7 +444,7 @@
   std::vector<base::OnceCallback<void(void)>> respond_callbacks;
   for (int i = 0; i < ExploreSitesFetcher::kMaxFailureCountForImmediateFetch;
        ++i) {
-    backoff_delays.push_back(base::TimeDelta::FromMilliseconds(delay_ms));
+    backoff_delays.push_back(base::Milliseconds(delay_ms));
     delay_ms *= 2;
     respond_callbacks.push_back(
         base::BindOnce(&ExploreSitesFetcherTest::RespondWithNetError,
@@ -466,7 +466,7 @@
   std::vector<base::OnceCallback<void(void)>> respond_callbacks;
   for (int i = 0; i < ExploreSitesFetcher::kMaxFailureCountForBackgroundFetch;
        ++i) {
-    backoff_delays.push_back(base::TimeDelta::FromMilliseconds(delay_ms));
+    backoff_delays.push_back(base::Milliseconds(delay_ms));
     delay_ms *= 2;
     respond_callbacks.push_back(
         base::BindOnce(&ExploreSitesFetcherTest::RespondWithNetError,
@@ -497,7 +497,7 @@
 
   // Fast forward by the initial delay of the immediate fetch. The retry should
   // be triggered.
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(
+  task_environment()->FastForwardBy(base::Milliseconds(
       ExploreSitesFetcher::kImmediateFetchBackoffPolicy.initial_delay_ms));
 
   // Make the request succeeded.
diff --git a/chrome/browser/android/explore_sites/history_statistics_reporter.cc b/chrome/browser/android/explore_sites/history_statistics_reporter.cc
index 1a56a8e..301e03a5 100644
--- a/chrome/browser/android/explore_sites/history_statistics_reporter.cc
+++ b/chrome/browser/android/explore_sites/history_statistics_reporter.cc
@@ -49,7 +49,7 @@
 
   // If we've already reported metrics during last week, bail out.
   base::Time last_report_time = prefs_->GetTime(kWeeklyStatsReportingTimestamp);
-  if (last_report_time > base::Time::Now() - base::TimeDelta::FromDays(7))
+  if (last_report_time > base::Time::Now() - base::Days(7))
     return;
 
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
diff --git a/chrome/browser/android/explore_sites/history_statistics_reporter.h b/chrome/browser/android/explore_sites/history_statistics_reporter.h
index 83fe2bec..02b057e 100644
--- a/chrome/browser/android/explore_sites/history_statistics_reporter.h
+++ b/chrome/browser/android/explore_sites/history_statistics_reporter.h
@@ -18,8 +18,7 @@
 class HistoryStatisticsReporter : public history::HistoryServiceObserver {
  public:
   // Delay between the scheduling and actual computing/reporting of stats.
-  static constexpr base::TimeDelta kComputeStatisticsDelay =
-      base::TimeDelta::FromSeconds(5);
+  static constexpr base::TimeDelta kComputeStatisticsDelay = base::Seconds(5);
 
   static void RegisterPrefs(PrefRegistrySimple* registry);
 
diff --git a/chrome/browser/android/explore_sites/history_statistics_reporter_unittest.cc b/chrome/browser/android/explore_sites/history_statistics_reporter_unittest.cc
index d4d0ad7..cdb13f0 100644
--- a/chrome/browser/android/explore_sites/history_statistics_reporter_unittest.cc
+++ b/chrome/browser/android/explore_sites/history_statistics_reporter_unittest.cc
@@ -160,8 +160,8 @@
   ASSERT_TRUE(LoadHistory());
 
   base::Time time_now = offline_pages::OfflineTimeNow();
-  base::Time time_29_days_ago = time_now - base::TimeDelta::FromDays(29);
-  base::Time time_31_days_ago = time_now - base::TimeDelta::FromDays(31);
+  base::Time time_29_days_ago = time_now - base::Days(29);
+  base::Time time_31_days_ago = time_now - base::Days(31);
 
   history_service()->AddPage(GURL("http://www.google.com"), time_now,
                              history::VisitSource::SOURCE_BROWSED);
@@ -227,7 +227,7 @@
   ASSERT_TRUE(LoadHistory());
 
   prefs()->SetTime(kWeeklyStatsReportingTimestamp,
-                   base::Time::Now() - base::TimeDelta::FromDays(8));
+                   base::Time::Now() - base::Days(8));
   ScheduleReportAndRunUntilIdle();
 
   // More than a week since last query, should have gone through.
diff --git a/chrome/browser/android/feed/v2/feed_service_bridge.cc b/chrome/browser/android/feed/v2/feed_service_bridge.cc
index 5620db0..e1794783 100644
--- a/chrome/browser/android/feed/v2/feed_service_bridge.cc
+++ b/chrome/browser/android/feed/v2/feed_service_bridge.cc
@@ -70,7 +70,7 @@
   FeedApi* api = GetFeedApi();
   if (!api)
     return;
-  api->ReportOpenVisitComplete(base::TimeDelta::FromMilliseconds(visitTimeMs));
+  api->ReportOpenVisitComplete(base::Milliseconds(visitTimeMs));
 }
 
 static base::android::ScopedJavaLocalRef<jstring>
diff --git a/chrome/browser/android/feed/v2/web_feed_bridge.cc b/chrome/browser/android/feed/v2/web_feed_bridge.cc
index 8fd4049..a6521d1 100644
--- a/chrome/browser/android/feed/v2/web_feed_bridge.cc
+++ b/chrome/browser/android/feed/v2/web_feed_bridge.cc
@@ -380,11 +380,10 @@
 
   // Ignore any visits within the last hour so that we do not count the current
   // visit to the page.
-  auto end_time = base::Time::Now() - base::TimeDelta::FromHours(1);
+  auto end_time = base::Time::Now() - base::Hours(1);
   auto begin_time =
       base::Time::Now() -
-      base::TimeDelta::FromDays(
-          GetFeedConfig().webfeed_accelerator_recent_visit_history_days);
+      base::Days(GetFeedConfig().webfeed_accelerator_recent_visit_history_days);
   history_service->GetDailyVisitsToHost(
       *url::GURLAndroid::ToNativeGURL(env, j_url), begin_time, end_time,
       std::move(callback), &TaskTracker());
diff --git a/chrome/browser/android/feedback/connectivity_checker.cc b/chrome/browser/android/feedback/connectivity_checker.cc
index f026eb3..b9550121 100644
--- a/chrome/browser/android/feedback/connectivity_checker.cc
+++ b/chrome/browser/android/feedback/connectivity_checker.cc
@@ -177,8 +177,7 @@
 
   // This object will be deleted when the connectivity check has completed.
   ConnectivityChecker* connectivity_checker = new ConnectivityChecker(
-      profile, url, base::TimeDelta::FromMilliseconds(j_timeout_ms),
-      j_callback);
+      profile, url, base::Milliseconds(j_timeout_ms), j_callback);
   connectivity_checker->StartAsyncCheck();
 }
 
diff --git a/chrome/browser/android/metrics/android_session_durations_service.cc b/chrome/browser/android/metrics/android_session_durations_service.cc
index 08a7c2e..d766ce3 100644
--- a/chrome/browser/android/metrics/android_session_durations_service.cc
+++ b/chrome/browser/android/metrics/android_session_durations_service.cc
@@ -38,8 +38,7 @@
     // later.
     base::UmaHistogramCustomCounts(
         "Profile.Incognito.ResumedAfterReportedDuration",
-        last_reported_duration_.InMinutes(), 1,
-        base::TimeDelta::FromDays(28).InMinutes(), 50);
+        last_reported_duration_.InMinutes(), 1, base::Days(28).InMinutes(), 50);
   }
 
   void OnAppEnterBackground() {
@@ -52,8 +51,7 @@
     last_reported_duration_ = base::Time::Now() - session_start_;
     base::UmaHistogramCustomCounts(
         "Profile.Incognito.MovedToBackgroundAfterDuration",
-        last_reported_duration_.InMinutes(), 1,
-        base::TimeDelta::FromDays(28).InMinutes(), 50);
+        last_reported_duration_.InMinutes(), 1, base::Days(28).InMinutes(), 50);
   }
 
   void SetSessionStartTimeForTesting(base::Time session_start) {
@@ -196,7 +194,7 @@
   base::Time session_start_time = base::Time::FromJavaTime(
       Java_AndroidSessionDurationsServiceState_getSessionStartTime(
           env, j_duration_service));
-  base::TimeDelta last_reported_duration = base::TimeDelta::FromMinutes(
+  base::TimeDelta last_reported_duration = base::Minutes(
       Java_AndroidSessionDurationsServiceState_getLastReportedDuration(
           env, j_duration_service));
 
diff --git a/chrome/browser/android/metrics/android_session_durations_service_unittest.cc b/chrome/browser/android/metrics/android_session_durations_service_unittest.cc
index 78918e9d..e29c76a 100644
--- a/chrome/browser/android/metrics/android_session_durations_service_unittest.cc
+++ b/chrome/browser/android/metrics/android_session_durations_service_unittest.cc
@@ -99,7 +99,7 @@
 
   // Assume session start was 1 hour ago and go background.
   service->SetSessionStartTimeForTesting(base::Time::Now() -
-                                         base::TimeDelta::FromSeconds(60) * 60);
+                                         base::Seconds(60) * 60);
   service->OnAppEnterBackground(base::TimeDelta());
   histograms.ExpectBucketCount(background_metric_name, 60, 1);
 
diff --git a/chrome/browser/android/metrics/uma_session_stats.cc b/chrome/browser/android/metrics/uma_session_stats.cc
index 9bbc429d..26e164c 100644
--- a/chrome/browser/android/metrics/uma_session_stats.cc
+++ b/chrome/browser/android/metrics/uma_session_stats.cc
@@ -169,9 +169,9 @@
   // This histogram is used in analysis to determine if an uploaded log
   // represents background activity. For this reason, this histogram may be
   // recorded more than once per 'background session'.
-  UMA_HISTOGRAM_CUSTOM_TIMES(
-      "Session.Background.TotalDuration", background_session_accumulated_time_,
-      base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromHours(24), 50);
+  UMA_HISTOGRAM_CUSTOM_TIMES("Session.Background.TotalDuration",
+                             background_session_accumulated_time_,
+                             base::Milliseconds(1), base::Hours(24), 50);
   background_session_accumulated_time_ = base::TimeDelta();
 }
 
@@ -189,8 +189,7 @@
   // DesktopSessionDurationTracker::EndSession.
   UMA_HISTOGRAM_LONG_TIMES("Session.TotalDuration", duration);
   UMA_HISTOGRAM_CUSTOM_TIMES("Session.TotalDurationMax1Day", duration,
-                             base::TimeDelta::FromMilliseconds(1),
-                             base::TimeDelta::FromHours(24), 50);
+                             base::Milliseconds(1), base::Hours(24), 50);
   return duration;
 }
 
diff --git a/chrome/browser/android/omnibox/autocomplete_controller_android.cc b/chrome/browser/android/omnibox/autocomplete_controller_android.cc
index ad09c27..cfab597 100644
--- a/chrome/browser/android/omnibox/autocomplete_controller_android.cc
+++ b/chrome/browser/android/omnibox/autocomplete_controller_android.cc
@@ -141,7 +141,7 @@
   controller_->Start(input);
   // Delete ourselves after 10s. This is enough time to cache results or
   // give up if the results haven't been received.
-  expire_timer_.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(10000), this,
+  expire_timer_.Start(FROM_HERE, base::Milliseconds(10000), this,
                       &ZeroSuggestPrefetcher::SelfDestruct);
 }
 
@@ -281,7 +281,7 @@
         FROM_HERE, {content::BrowserThread::UI},
         base::BindOnce(&AutocompleteControllerAndroid::WarmUpRenderProcess,
                        weak_ptr_factory_.GetWeakPtr()),
-        base::TimeDelta::FromMilliseconds(renderer_delay_ms));
+        base::Milliseconds(renderer_delay_ms));
   }
 
   input_ = AutocompleteInput(omnibox_text, page_class,
@@ -354,8 +354,7 @@
       static_cast<WindowOpenDisposition>(j_window_open_disposition), false,
       sessions::SessionTabHelper::IdForTab(web_contents),
       OmniboxEventProto::PageClassification(j_page_classification),
-      base::TimeDelta::FromMilliseconds(elapsed_time_since_first_modified),
-      completed_length,
+      base::Milliseconds(elapsed_time_since_first_modified), completed_length,
       now - autocomplete_controller_->last_time_default_match_changed(),
       autocomplete_controller_->result());
   log.is_query_started_from_tile = is_query_started_from_tiles_;
@@ -417,8 +416,7 @@
   }
   autocomplete_controller_
       ->UpdateMatchDestinationURLWithAdditionalAssistedQueryStats(
-          base::TimeDelta::FromMilliseconds(elapsed_time_since_input_change),
-          &match);
+          base::Milliseconds(elapsed_time_since_input_change), &match);
   return url::GURLAndroid::FromNativeGURL(env, match.destination_url);
 }
 
diff --git a/chrome/browser/android/oom_intervention/near_oom_monitor.cc b/chrome/browser/android/oom_intervention/near_oom_monitor.cc
index b4b0922..22e52d18 100644
--- a/chrome/browser/android/oom_intervention/near_oom_monitor.cc
+++ b/chrome/browser/android/oom_intervention/near_oom_monitor.cc
@@ -13,12 +13,10 @@
 namespace {
 
 // Default interval to check memory stats.
-constexpr base::TimeDelta kDefaultMonitoringDelta =
-    base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kDefaultMonitoringDelta = base::Seconds(1);
 
 // Default cooldown interval to resume monitoring after a detection.
-constexpr base::TimeDelta kDefaultCooldownDelta =
-    base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kDefaultCooldownDelta = base::Seconds(30);
 
 }  // namespace
 
diff --git a/chrome/browser/android/oom_intervention/near_oom_monitor_unittest.cc b/chrome/browser/android/oom_intervention/near_oom_monitor_unittest.cc
index f11026a..48273dc 100644
--- a/chrome/browser/android/oom_intervention/near_oom_monitor_unittest.cc
+++ b/chrome/browser/android/oom_intervention/near_oom_monitor_unittest.cc
@@ -90,7 +90,7 @@
 
 TEST_F(NearOomMonitorTest, Observe) {
   base::TimeDelta interval =
-      monitor_->GetMonitoringInterval() + base::TimeDelta::FromSeconds(1);
+      monitor_->GetMonitoringInterval() + base::Seconds(1);
 
   TestNearOomObserver observer1(monitor_.get());
   TestNearOomObserver observer2(monitor_.get());
@@ -113,9 +113,9 @@
 
 TEST_F(NearOomMonitorTest, Cooldown) {
   base::TimeDelta interval =
-      monitor_->GetMonitoringInterval() + base::TimeDelta::FromSeconds(1);
+      monitor_->GetMonitoringInterval() + base::Seconds(1);
   base::TimeDelta cooldown_interval =
-      monitor_->GetCooldownInterval() + base::TimeDelta::FromSeconds(1);
+      monitor_->GetCooldownInterval() + base::Seconds(1);
 
   monitor_->SimulateNearOom();
 
diff --git a/chrome/browser/android/oom_intervention/oom_intervention_tab_helper.cc b/chrome/browser/android/oom_intervention/oom_intervention_tab_helper.cc
index 43f9ba73..3867b3b 100644
--- a/chrome/browser/android/oom_intervention/oom_intervention_tab_helper.cc
+++ b/chrome/browser/android/oom_intervention/oom_intervention_tab_helper.cc
@@ -26,7 +26,7 @@
 namespace {
 
 constexpr base::TimeDelta kRendererHighMemoryUsageDetectionWindow =
-    base::TimeDelta::FromSeconds(60);
+    base::Seconds(60);
 
 content::WebContents* g_last_visible_web_contents = nullptr;
 
diff --git a/chrome/browser/android/search_permissions/search_geolocation_disclosure_tab_helper.cc b/chrome/browser/android/search_permissions/search_geolocation_disclosure_tab_helper.cc
index 699b5fe..463a417a 100644
--- a/chrome/browser/android/search_permissions/search_geolocation_disclosure_tab_helper.cc
+++ b/chrome/browser/android/search_permissions/search_geolocation_disclosure_tab_helper.cc
@@ -46,7 +46,7 @@
 int gDayOffsetForTesting = 0;
 
 base::Time GetTimeNow() {
-  return base::Time::Now() + base::TimeDelta::FromDays(gDayOffsetForTesting);
+  return base::Time::Now() + base::Days(gDayOffsetForTesting);
 }
 
 }  // namespace
@@ -147,7 +147,7 @@
   // Or if it has been shown too recently.
   base::Time last_shown = base::Time::FromInternalValue(
       prefs->GetInt64(prefs::kSearchGeolocationDisclosureLastShowDate));
-  if (GetTimeNow() - last_shown < base::TimeDelta::FromDays(kDaysPerShow)) {
+  if (GetTimeNow() - last_shown < base::Days(kDaysPerShow)) {
     return;
   }
 
diff --git a/chrome/browser/android/send_tab_to_self/android_notification_handler.cc b/chrome/browser/android/send_tab_to_self/android_notification_handler.cc
index 008754c..3ac12d9 100644
--- a/chrome/browser/android/send_tab_to_self/android_notification_handler.cc
+++ b/chrome/browser/android/send_tab_to_self/android_notification_handler.cc
@@ -127,8 +127,7 @@
       JNIEnv* env = AttachCurrentThread();
 
       // Set the expiration to 10 days from when the notification is displayed.
-      base::Time expiraton_time =
-          entry->GetSharedTime() + base::TimeDelta::FromDays(10);
+      base::Time expiraton_time = entry->GetSharedTime() + base::Days(10);
 
       ScopedJavaLocalRef<jclass> send_tab_to_self_notification_receiver_class =
           Java_SendTabToSelfNotificationReceiver_getSendTabToSelfNotificationReciever(
diff --git a/chrome/browser/android/survey/survey_http_client.cc b/chrome/browser/android/survey/survey_http_client.cc
index a164d67..060d010a 100644
--- a/chrome/browser/android/survey/survey_http_client.cc
+++ b/chrome/browser/android/survey/survey_http_client.cc
@@ -61,8 +61,7 @@
 
   auto simple_loader = network::SimpleURLLoader::Create(
       std::move(resource_request), network_traffic_annotation);
-  simple_loader->SetTimeoutDuration(
-      base::TimeDelta::FromSeconds(kTimeoutDurationSeconds));
+  simple_loader->SetTimeoutDuration(base::Seconds(kTimeoutDurationSeconds));
 
   if (!request_body.empty()) {
     DCHECK(!content_type.empty());
diff --git a/chrome/browser/android/usage_stats/usage_stats_database.cc b/chrome/browser/android/usage_stats/usage_stats_database.cc
index 800247f..f498fc8 100644
--- a/chrome/browser/android/usage_stats/usage_stats_database.cc
+++ b/chrome/browser/android/usage_stats/usage_stats_database.cc
@@ -254,8 +254,7 @@
 }
 
 void UsageStatsDatabase::ExpireEvents(base::Time now) {
-  base::Time seven_days_ago =
-      now - base::TimeDelta::FromDays(EXPIRY_THRESHOLD_DAYS);
+  base::Time seven_days_ago = now - base::Days(EXPIRY_THRESHOLD_DAYS);
   DeleteEventsInRange(
       base::Time::FromDoubleT(1), seven_days_ago,
       base::BindOnce(&UsageStatsDatabase::OnWebsiteEventExpiryDone,
diff --git a/chrome/browser/android/usage_stats/usage_stats_database_unittest.cc b/chrome/browser/android/usage_stats/usage_stats_database_unittest.cc
index 264109d1..79d5794 100644
--- a/chrome/browser/android/usage_stats/usage_stats_database_unittest.cc
+++ b/chrome/browser/android/usage_stats/usage_stats_database_unittest.cc
@@ -333,9 +333,8 @@
 
   // Advance "now" by 7 days + 9 seconds so that the first two events are > 7
   // days old.
-  now = now +
-        base::TimeDelta::FromDays(UsageStatsDatabase::EXPIRY_THRESHOLD_DAYS) +
-        base::TimeDelta::FromSeconds(9);
+  now = now + base::Days(UsageStatsDatabase::EXPIRY_THRESHOLD_DAYS) +
+        base::Seconds(9);
   usage_stats_database()->ExpireEvents(now);
 
   fake_website_event_db()->LoadCallback(true);
diff --git a/chrome/browser/android/vr/android_vsync_helper.cc b/chrome/browser/android/vr/android_vsync_helper.cc
index 1742e5b..d6fa09a 100644
--- a/chrome/browser/android/vr/android_vsync_helper.cc
+++ b/chrome/browser/android/vr/android_vsync_helper.cc
@@ -21,7 +21,7 @@
   j_object_.Reset(
       Java_AndroidVSyncHelper_create(env, reinterpret_cast<jlong>(this)));
   float refresh_rate = Java_AndroidVSyncHelper_getRefreshRate(env, j_object_);
-  display_vsync_interval_ = base::TimeDelta::FromSecondsD(1.0 / refresh_rate);
+  display_vsync_interval_ = base::Seconds(1.0 / refresh_rate);
   DVLOG(1) << "display_vsync_interval_=" << display_vsync_interval_;
 }
 
@@ -38,7 +38,7 @@
   DCHECK_EQ(base::TimeTicks::GetClock(),
             base::TimeTicks::Clock::LINUX_CLOCK_MONOTONIC);
   base::TimeTicks frame_time =
-      base::TimeTicks() + base::TimeDelta::FromNanoseconds(time_nanos);
+      base::TimeTicks() + base::Nanoseconds(time_nanos);
   last_interval_ = frame_time - last_vsync_;
   last_vsync_ = frame_time;
   callback_.Run(frame_time);
diff --git a/chrome/browser/android/vr/autocomplete_controller.cc b/chrome/browser/android/vr/autocomplete_controller.cc
index 7d32841..057c489 100644
--- a/chrome/browser/android/vr/autocomplete_controller.cc
+++ b/chrome/browser/android/vr/autocomplete_controller.cc
@@ -102,7 +102,7 @@
         base::BindOnce(suggestion_callback_, std::move(suggestions)));
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
         FROM_HERE, suggestions_timeout_.callback(),
-        base::TimeDelta::FromMilliseconds(kSuggestionThrottlingDelayMs));
+        base::Milliseconds(kSuggestionThrottlingDelayMs));
   } else {
     suggestion_callback_.Run(std::move(suggestions));
   }
diff --git a/chrome/browser/android/vr/gvr_scheduler_delegate.cc b/chrome/browser/android/vr/gvr_scheduler_delegate.cc
index 93881c69f..59628ed5 100644
--- a/chrome/browser/android/vr/gvr_scheduler_delegate.cc
+++ b/chrome/browser/android/vr/gvr_scheduler_delegate.cc
@@ -48,8 +48,7 @@
 
 // Heuristic time limit to detect overstuffed GVR buffers for a
 // >60fps capable web app.
-constexpr base::TimeDelta kWebVrSlowAcquireThreshold =
-    base::TimeDelta::FromMilliseconds(2);
+constexpr base::TimeDelta kWebVrSlowAcquireThreshold = base::Milliseconds(2);
 
 // If running too fast, allow dropping frames occasionally to let GVR catch up.
 // Drop at most one frame in MaxDropRate.
@@ -57,14 +56,13 @@
 
 // Timeout for checking for the WebVR rendering GL fence. If the timeout is
 // reached, yield to let other tasks execute before rechecking.
-constexpr base::TimeDelta kWebVRFenceCheckTimeout =
-    base::TimeDelta::FromMicroseconds(2000);
+constexpr base::TimeDelta kWebVRFenceCheckTimeout = base::Microseconds(2000);
 
 // Polling interval for checking for the WebVR rendering GL fence. Used as
 // an alternative to kWebVRFenceCheckTimeout if the GPU workaround is active.
 // The actual interval may be longer due to PostDelayedTask's resolution.
 constexpr base::TimeDelta kWebVRFenceCheckPollInterval =
-    base::TimeDelta::FromMicroseconds(500);
+    base::Microseconds(500);
 
 bool ValidateRect(const gfx::RectF& bounds) {
   // Bounds should be between 0 and 1, with positive width/height.
@@ -1283,8 +1281,8 @@
   // to a reasonable range to avoid math errors.
   if (time_waited < base::TimeDelta())
     time_waited = base::TimeDelta();
-  if (time_waited > base::TimeDelta::FromSeconds(1))
-    time_waited = base::TimeDelta::FromSeconds(1);
+  if (time_waited > base::Seconds(1))
+    time_waited = base::Seconds(1);
   webvr_js_wait_time_.AddSample(time_waited);
   TRACE_COUNTER1("gpu", "WebVR JS wait (ms)",
                  webvr_js_wait_time_.GetAverage().InMilliseconds());
diff --git a/chrome/browser/android/vr/vr_shell.cc b/chrome/browser/android/vr/vr_shell.cc
index ae55919..3e41863 100644
--- a/chrome/browser/android/vr/vr_shell.cc
+++ b/chrome/browser/android/vr/vr_shell.cc
@@ -87,11 +87,9 @@
 namespace {
 vr::VrShell* g_vr_shell_instance;
 
-constexpr base::TimeDelta kPollCapturingStateInterval =
-    base::TimeDelta::FromSecondsD(0.2);
+constexpr base::TimeDelta kPollCapturingStateInterval = base::Seconds(0.2);
 
-constexpr base::TimeDelta kAssetsComponentWaitDelay =
-    base::TimeDelta::FromSeconds(2);
+constexpr base::TimeDelta kAssetsComponentWaitDelay = base::Seconds(2);
 
 static constexpr float kInchesToMeters = 0.0254f;
 // Screen pixel density of the Google Pixel phone in pixels per inch.
diff --git a/chrome/browser/android/webapk/webapk_installer.cc b/chrome/browser/android/webapk/webapk_installer.cc
index a80f245d..bfed21d7 100644
--- a/chrome/browser/android/webapk/webapk_installer.cc
+++ b/chrome/browser/android/webapk/webapk_installer.cc
@@ -466,7 +466,7 @@
   DCHECK(server_url_.is_valid());
 
   timer_.Start(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(webapk_server_timeout_ms_),
+      FROM_HERE, base::Milliseconds(webapk_server_timeout_ms_),
       base::BindOnce(&WebApkInstaller::OnResult, weak_ptr_factory_.GetWeakPtr(),
                      WebApkInstallResult::FAILURE));
 
diff --git a/chrome/browser/apps/app_discovery_service/remote_url_search/remote_url_index.cc b/chrome/browser/apps/app_discovery_service/remote_url_search/remote_url_index.cc
index 6072a2e..9fd9f0b5f 100644
--- a/chrome/browser/apps/app_discovery_service/remote_url_search/remote_url_index.cc
+++ b/chrome/browser/apps/app_discovery_service/remote_url_search/remote_url_index.cc
@@ -10,7 +10,7 @@
 namespace apps {
 namespace {
 
-constexpr base::TimeDelta kUpdateInterval = base::TimeDelta::FromHours(24);
+constexpr base::TimeDelta kUpdateInterval = base::Hours(24);
 
 }  // namespace
 
diff --git a/chrome/browser/apps/app_discovery_service/remote_url_search/remote_url_index_unittest.cc b/chrome/browser/apps/app_discovery_service/remote_url_search/remote_url_index_unittest.cc
index 2c7bee16..b28361a 100644
--- a/chrome/browser/apps/app_discovery_service/remote_url_search/remote_url_index_unittest.cc
+++ b/chrome/browser/apps/app_discovery_service/remote_url_search/remote_url_index_unittest.cc
@@ -46,7 +46,7 @@
 TEST_F(RemoteUrlIndexTest, WaitForUpdate) {
   auto client = std::make_unique<RemoteUrlClient>(GURL("test.url"));
   RemoteUrlIndex index(std::move(client), GetPath());
-  task_environment_.AdvanceClock(base::TimeDelta::FromDays(2));
+  task_environment_.AdvanceClock(base::Days(2));
   Wait();
   SUCCEED();
 }
diff --git a/chrome/browser/apps/app_service/app_platform_metrics.cc b/chrome/browser/apps/app_service/app_platform_metrics.cc
index 6e9067f..68f570f 100644
--- a/chrome/browser/apps/app_service/app_platform_metrics.cc
+++ b/chrome/browser/apps/app_service/app_platform_metrics.cc
@@ -72,9 +72,9 @@
 constexpr char kInstallReasonSyncHistogram[] = "Sync";
 constexpr char kInstallReasonUserHistogram[] = "User";
 
-constexpr base::TimeDelta kMinDuration = base::TimeDelta::FromSeconds(1);
-constexpr base::TimeDelta kMaxDuration = base::TimeDelta::FromDays(1);
-constexpr base::TimeDelta kMaxUsageDuration = base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kMinDuration = base::Seconds(1);
+constexpr base::TimeDelta kMaxDuration = base::Days(1);
+constexpr base::TimeDelta kMaxUsageDuration = base::Minutes(5);
 constexpr int kDurationBuckets = 100;
 constexpr int kUsageTimeBuckets = 50;
 
diff --git a/chrome/browser/apps/app_service/app_platform_metrics_service.cc b/chrome/browser/apps/app_service/app_platform_metrics_service.cc
index af9983f0..72a7304c 100644
--- a/chrome/browser/apps/app_service/app_platform_metrics_service.cc
+++ b/chrome/browser/apps/app_service/app_platform_metrics_service.cc
@@ -14,8 +14,8 @@
 
 namespace {
 
-constexpr base::TimeDelta kTimerInterval = base::TimeDelta::FromMinutes(10);
-constexpr base::TimeDelta kFiveMinutes = base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kTimerInterval = base::Minutes(10);
+constexpr base::TimeDelta kFiveMinutes = base::Minutes(5);
 
 // Returns the number of days since the origin.
 int GetDayId(base::Time time) {
diff --git a/chrome/browser/apps/app_service/app_platform_metrics_service_unittest.cc b/chrome/browser/apps/app_service/app_platform_metrics_service_unittest.cc
index c9935dc5c..810b5de 100644
--- a/chrome/browser/apps/app_service/app_platform_metrics_service_unittest.cc
+++ b/chrome/browser/apps/app_service/app_platform_metrics_service_unittest.cc
@@ -676,8 +676,7 @@
 
 // Tests OnNewDay() is called after more than one day passes.
 TEST_F(AppPlatformMetricsServiceTest, MoreThanOneDay) {
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1) +
-                                  base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Days(1) + base::Hours(1));
   VerifyMetrics();
   EXPECT_EQ(AppPlatformMetricsService::GetDayIdForTesting(base::Time::Now()),
             GetDayIdPref());
@@ -685,7 +684,7 @@
 
 // Tests OnNewDay() is called at midnight.
 TEST_F(AppPlatformMetricsServiceTest, UntilMidnight) {
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(3));
+  task_environment_.FastForwardBy(base::Hours(3));
   VerifyMetrics();
   EXPECT_EQ(AppPlatformMetricsService::GetDayIdForTesting(base::Time::Now()),
             GetDayIdPref());
@@ -693,7 +692,7 @@
 
 // Tests OnNewDay() is not called before midnight.
 TEST_F(AppPlatformMetricsServiceTest, LessThanOneDay) {
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
   histogram_tester().ExpectTotalCount(
       AppPlatformMetrics::GetAppsCountHistogramNameForTest(AppTypeName::kArc),
       /*expected_count=*/0);
@@ -706,7 +705,7 @@
 TEST_F(AppPlatformMetricsServiceTest, MoreThanOneDayDeviceIdle) {
   SetScreenOff(true);
   SetSuspendImminent();
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
   VerifyMetrics();
   EXPECT_EQ(AppPlatformMetricsService::GetDayIdForTesting(base::Time::Now()),
             GetDayIdPref());
@@ -714,12 +713,12 @@
 
 // Tests the UMA metrics that count the number of installed apps.
 TEST_F(AppPlatformMetricsServiceTest, InstallApps) {
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(3));
+  task_environment_.FastForwardBy(base::Hours(3));
   VerifyMetrics();
 
   InstallOneApp("aa", apps::mojom::AppType::kArc, "com.google.AA",
                 apps::mojom::Readiness::kReady);
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
   histogram_tester().ExpectTotalCount(
       AppPlatformMetrics::GetAppsCountHistogramNameForTest(AppTypeName::kArc),
       /*expected_count=*/2);
@@ -739,17 +738,16 @@
   // Set the browser window active.
   ModifyInstance(extension_misc::kChromeAppId,
                  browser1->window()->GetNativeWindow(), kActiveInstanceState);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(10));
+  task_environment_.FastForwardBy(base::Minutes(10));
   VerifyAppActivatedCount(/*expected_count=*/1, AppTypeName::kChromeBrowser);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(20));
+  task_environment_.FastForwardBy(base::Minutes(20));
   // Set the browser window running in the background.
   ModifyInstance(extension_misc::kChromeAppId,
                  browser1->window()->GetNativeWindow(), kInactiveInstanceState);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(10));
-  VerifyAppRunningDuration(base::TimeDelta::FromMinutes(30),
-                           AppTypeName::kChromeBrowser);
+  task_environment_.FastForwardBy(base::Minutes(10));
+  VerifyAppRunningDuration(base::Minutes(30), AppTypeName::kChromeBrowser);
 
   // Test multiple browsers.
   std::unique_ptr<Browser> browser2 = CreateBrowserWithAuraWindow2();
@@ -757,23 +755,22 @@
 
   ModifyInstance(extension_misc::kChromeAppId,
                  browser2->window()->GetNativeWindow(), kActiveInstanceState);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(10));
+  task_environment_.FastForwardBy(base::Minutes(10));
   VerifyAppActivatedCount(/*expected_count=*/2, AppTypeName::kChromeBrowser);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(20));
+  task_environment_.FastForwardBy(base::Minutes(20));
   ModifyInstance(extension_misc::kChromeAppId,
                  browser2->window()->GetNativeWindow(),
                  apps::InstanceState::kDestroyed);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(10));
-  VerifyAppRunningDuration(base::TimeDelta::FromHours(1),
-                           AppTypeName::kChromeBrowser);
+  task_environment_.FastForwardBy(base::Minutes(10));
+  VerifyAppRunningDuration(base::Hours(1), AppTypeName::kChromeBrowser);
 
   // Test date change.
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
   VerifyAppRunningDurationCountHistogram(/*expected_count=*/1,
                                          AppTypeName::kChromeBrowser);
-  VerifyAppRunningDurationHistogram(base::TimeDelta::FromHours(1),
+  VerifyAppRunningDurationHistogram(base::Hours(1),
                                     /*expected_count=*/1,
                                     AppTypeName::kChromeBrowser);
   VerifyAppRunningPercentageCountHistogram(/*expected_count=*/1,
@@ -798,22 +795,22 @@
   window->Init(ui::LAYER_NOT_DRAWN);
   ModifyInstance(app_id, window.get(), apps::InstanceState::kActive);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(10));
+  task_environment_.FastForwardBy(base::Minutes(10));
   VerifyAppActivatedCount(/*expected_count=*/1, AppTypeName::kArc);
 
   // Close the window after running one hour.
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(50));
+  task_environment_.FastForwardBy(base::Minutes(50));
   ModifyInstance(app_id, window.get(), apps::InstanceState::kDestroyed);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
-  VerifyAppRunningDuration(base::TimeDelta::FromHours(1), AppTypeName::kArc);
+  task_environment_.FastForwardBy(base::Hours(1));
+  VerifyAppRunningDuration(base::Hours(1), AppTypeName::kArc);
 
   // One day passes.
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
 
   VerifyAppRunningDurationCountHistogram(/*expected_count=*/1,
                                          AppTypeName::kArc);
-  VerifyAppRunningDurationHistogram(base::TimeDelta::FromHours(1),
+  VerifyAppRunningDurationHistogram(base::Hours(1),
                                     /*expected_count=*/1, AppTypeName::kArc);
   VerifyAppActivatedCountHistogram(/*expected_count=*/1, AppTypeName::kArc);
   VerifyAppActivatedHistogram(/*count*/ 1, /*expected_count=*/1,
@@ -822,10 +819,10 @@
   VerifyAppActivatedCount(/*expected_count=*/0, AppTypeName::kArc);
 
   // One more day passes.
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
   VerifyAppRunningDurationCountHistogram(/*expected_count=*/1,
                                          AppTypeName::kArc);
-  VerifyAppRunningDurationHistogram(base::TimeDelta::FromHours(1),
+  VerifyAppRunningDurationHistogram(base::Hours(1),
                                     /*expected_count=*/1, AppTypeName::kArc);
   VerifyAppRunningPercentageCountHistogram(/*expected_count=*/1,
                                            AppTypeName::kArc);
@@ -845,39 +842,39 @@
   window->Init(ui::LAYER_NOT_DRAWN);
   ModifyInstance(app_id, window.get(), apps::InstanceState::kActive);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
   VerifyAppActivatedCount(/*expected_count=*/1, AppTypeName::kArc);
 
   // One day passes.
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(2));
+  task_environment_.FastForwardBy(base::Hours(2));
   VerifyAppRunningDurationCountHistogram(/*expected_count=*/1,
                                          AppTypeName::kArc);
   VerifyAppActivatedCountHistogram(/*expected_count=*/1, AppTypeName::kArc);
   VerifyAppActivatedHistogram(/*count*/ 1, /*expected_count=*/1,
                               AppTypeName::kArc);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(2));
+  task_environment_.FastForwardBy(base::Hours(2));
 
   // Close the window after running five hours.
   ModifyInstance(app_id, window.get(), apps::InstanceState::kDestroyed);
   VerifyAppRunningDurationCountHistogram(/*expected_count=*/1,
                                          AppTypeName::kArc);
-  VerifyAppRunningDurationHistogram(base::TimeDelta::FromHours(3),
+  VerifyAppRunningDurationHistogram(base::Hours(3),
                                     /*expected_count=*/1, AppTypeName::kArc);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(10));
-  VerifyAppRunningDuration(base::TimeDelta::FromHours(2), AppTypeName::kArc);
+  task_environment_.FastForwardBy(base::Minutes(10));
+  VerifyAppRunningDuration(base::Hours(2), AppTypeName::kArc);
 
   // One more day passes.
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
   VerifyAppRunningDurationCountHistogram(/*expected_count=*/2,
                                          AppTypeName::kArc);
-  VerifyAppRunningDurationHistogram(base::TimeDelta::FromHours(3),
+  VerifyAppRunningDurationHistogram(base::Hours(3),
                                     /*expected_count=*/1, AppTypeName::kArc);
-  VerifyAppRunningDurationHistogram(base::TimeDelta::FromHours(2),
+  VerifyAppRunningDurationHistogram(base::Hours(2),
                                     /*expected_count=*/1, AppTypeName::kArc);
   VerifyAppActivatedCountHistogram(/*expected_count=*/1, AppTypeName::kArc);
-  VerifyAppRunningDuration(base::TimeDelta::FromHours(0), AppTypeName::kArc);
+  VerifyAppRunningDuration(base::Hours(0), AppTypeName::kArc);
   VerifyAppActivatedCount(/*expected_count=*/0, AppTypeName::kArc);
 }
 
@@ -891,91 +888,89 @@
   auto window = std::make_unique<aura::Window>(nullptr);
   window->Init(ui::LAYER_NOT_DRAWN);
   ModifyInstance(app_id, window.get(), apps::InstanceState::kActive);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(30));
+  task_environment_.FastForwardBy(base::Minutes(30));
   ModifyInstance(app_id, window.get(), kActiveInstanceState);
   VerifyAppActivatedCount(/*expected_count=*/1, AppTypeName::kArc);
 
   // Inactiva the window after running one hour.
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(30));
+  task_environment_.FastForwardBy(base::Minutes(30));
   ModifyInstance(app_id, window.get(), kInactiveInstanceState);
 
   // Activa the window after running one hour.
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
   ModifyInstance(app_id, window.get(), kActiveInstanceState);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(10));
+  task_environment_.FastForwardBy(base::Minutes(10));
   VerifyAppActivatedCount(/*expected_count=*/2, AppTypeName::kArc);
 
   // Close the window after running half hour.
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(20));
+  task_environment_.FastForwardBy(base::Minutes(20));
   ModifyInstance(app_id, window.get(), apps::InstanceState::kDestroyed);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(10));
-  VerifyAppRunningDuration(
-      base::TimeDelta::FromHours(1) + base::TimeDelta::FromMinutes(30),
-      AppTypeName::kArc);
+  task_environment_.FastForwardBy(base::Minutes(10));
+  VerifyAppRunningDuration(base::Hours(1) + base::Minutes(30),
+                           AppTypeName::kArc);
 
   // One day passes.
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(20));
+  task_environment_.FastForwardBy(base::Minutes(20));
   VerifyAppRunningDurationCountHistogram(/*expected_count=*/1,
                                          AppTypeName::kArc);
-  VerifyAppRunningDurationHistogram(
-      base::TimeDelta::FromHours(1) + base::TimeDelta::FromMinutes(30),
-      /*expected_count=*/1, AppTypeName::kArc);
+  VerifyAppRunningDurationHistogram(base::Hours(1) + base::Minutes(30),
+                                    /*expected_count=*/1, AppTypeName::kArc);
   VerifyAppActivatedCountHistogram(/*expected_count=*/1, AppTypeName::kArc);
   VerifyAppActivatedHistogram(/*count*/ 2, /*expected_count=*/1,
                               AppTypeName::kArc);
 
   // 20 hours passes.
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(20));
+  task_environment_.FastForwardBy(base::Hours(20));
 
   // Create a new window.
   window = std::make_unique<aura::Window>(nullptr);
   window->Init(ui::LAYER_NOT_DRAWN);
   ModifyInstance(app_id, window.get(), kActiveInstanceState);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(10));
+  task_environment_.FastForwardBy(base::Minutes(10));
   VerifyAppActivatedCount(/*expected_count=*/1, AppTypeName::kArc);
 
   // Inactiva the window after running one hour.
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(50));
+  task_environment_.FastForwardBy(base::Minutes(50));
   ModifyInstance(app_id, window.get(), kInactiveInstanceState);
 
   // Activa the window after running one hour.
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
   ModifyInstance(app_id, window.get(), kActiveInstanceState);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
   VerifyAppActivatedCount(/*expected_count=*/2, AppTypeName::kArc);
 
   // One more day passes.
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
   VerifyAppRunningDurationCountHistogram(/*expected_count=*/2,
                                          AppTypeName::kArc);
-  VerifyAppRunningDurationHistogram(base::TimeDelta::FromHours(3),
+  VerifyAppRunningDurationHistogram(base::Hours(3),
                                     /*expected_count=*/1, AppTypeName::kArc);
   VerifyAppActivatedCountHistogram(/*expected_count=*/2, AppTypeName::kArc);
   VerifyAppActivatedHistogram(/*count*/ 2, /*expected_count=*/2,
                               AppTypeName::kArc);
 
   // Inactiva the window after running one hour.
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(3));
+  task_environment_.FastForwardBy(base::Hours(3));
   ModifyInstance(app_id, window.get(), kInactiveInstanceState);
 
   // Close the window after running five hour.
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
   ModifyInstance(app_id, window.get(), apps::InstanceState::kDestroyed);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(10));
-  VerifyAppRunningDuration(base::TimeDelta::FromHours(3), AppTypeName::kArc);
+  task_environment_.FastForwardBy(base::Minutes(10));
+  VerifyAppRunningDuration(base::Hours(3), AppTypeName::kArc);
 
   // One more day passes.
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
   VerifyAppRunningDurationCountHistogram(/*expected_count=*/3,
                                          AppTypeName::kArc);
-  VerifyAppRunningDurationHistogram(base::TimeDelta::FromHours(3),
+  VerifyAppRunningDurationHistogram(base::Hours(3),
                                     /*expected_count=*/2, AppTypeName::kArc);
   VerifyAppActivatedCountHistogram(/*expected_count=*/2, AppTypeName::kArc);
-  VerifyAppRunningDuration(base::TimeDelta::FromHours(0), AppTypeName::kArc);
+  VerifyAppRunningDuration(base::Hours(0), AppTypeName::kArc);
   VerifyAppActivatedCount(/*expected_count=*/0, AppTypeName::kArc);
 }
 
@@ -991,7 +986,7 @@
   // Set the browser window active.
   ModifyInstance(extension_misc::kChromeAppId,
                  browser->window()->GetNativeWindow(), kActiveInstanceState);
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
 
   // Set the browser window running in the background.
   ModifyInstance(extension_misc::kChromeAppId,
@@ -1008,11 +1003,11 @@
   ModifyInstance(app_id, window.get(), apps::InstanceState::kActive);
 
   // Close the window after running one hour.
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
   ModifyInstance(app_id, window.get(), apps::InstanceState::kDestroyed);
 
   // One day passes.
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
   VerifyAppRunningPercentageCountHistogram(/*expected_count=*/1,
                                            AppTypeName::kChromeBrowser);
   VerifyAppRunningPercentageCountHistogram(/*expected_count=*/1,
@@ -1033,13 +1028,13 @@
   window->Init(ui::LAYER_NOT_DRAWN);
   ModifyInstance(app_id, window.get(), apps::InstanceState::kActive);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(5));
+  task_environment_.FastForwardBy(base::Minutes(5));
   VerifyAppUsageTimeCountHistogram(/*expected_count=*/1, AppTypeName::kArc);
   VerifyAppUsageTimeCountHistogram(/*expected_count=*/1, AppTypeNameV2::kArc);
-  VerifyAppUsageTimeHistogram(base::TimeDelta::FromMinutes(5),
+  VerifyAppUsageTimeHistogram(base::Minutes(5),
                               /*expected_count=*/1, AppTypeName::kArc);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(2));
+  task_environment_.FastForwardBy(base::Minutes(2));
   ModifyInstance(app_id, window.get(), kInactiveInstanceState);
 
   // Create a browser window
@@ -1052,29 +1047,29 @@
   ModifyInstance(extension_misc::kChromeAppId,
                  browser->window()->GetNativeWindow(), kActiveInstanceState);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(3));
+  task_environment_.FastForwardBy(base::Minutes(3));
   VerifyAppUsageTimeCountHistogram(/*expected_count=*/2, AppTypeName::kArc);
   VerifyAppUsageTimeCountHistogram(/*expected_count=*/2, AppTypeNameV2::kArc);
-  VerifyAppUsageTimeHistogram(base::TimeDelta::FromMinutes(2),
+  VerifyAppUsageTimeHistogram(base::Minutes(2),
                               /*expected_count=*/1, AppTypeName::kArc);
   VerifyAppUsageTimeCountHistogram(/*expected_count=*/1,
                                    AppTypeName::kChromeBrowser);
   VerifyAppUsageTimeCountHistogram(/*expected_count=*/1,
                                    AppTypeNameV2::kChromeBrowser);
-  VerifyAppUsageTimeHistogram(base::TimeDelta::FromMinutes(3),
+  VerifyAppUsageTimeHistogram(base::Minutes(3),
                               /*expected_count=*/1,
                               AppTypeName::kChromeBrowser);
   VerifyAppUsageTimeUkm(extension_misc::kChromeAppId, /*duration=*/180000,
                         AppTypeName::kChromeBrowser);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(15));
+  task_environment_.FastForwardBy(base::Minutes(15));
   VerifyAppUsageTimeCountHistogram(/*expected_count=*/2, AppTypeName::kArc);
   VerifyAppUsageTimeCountHistogram(/*expected_count=*/2, AppTypeNameV2::kArc);
   VerifyAppUsageTimeCountHistogram(/*expected_count=*/4,
                                    AppTypeName::kChromeBrowser);
   VerifyAppUsageTimeCountHistogram(/*expected_count=*/4,
                                    AppTypeNameV2::kChromeBrowser);
-  VerifyAppUsageTimeHistogram(base::TimeDelta::FromMinutes(5),
+  VerifyAppUsageTimeHistogram(base::Minutes(5),
                               /*expected_count=*/3,
                               AppTypeName::kChromeBrowser);
 }
@@ -1094,7 +1089,7 @@
   sync_service()->SetDisableReasons(
       syncer::SyncService::DISABLE_REASON_ENTERPRISE_POLICY);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(5));
+  task_environment_.FastForwardBy(base::Minutes(5));
 
   // Verify UKM is not reported.
   const auto entries =
@@ -1103,7 +1098,7 @@
 
   // Set sync is allowed by setting an empty disable reason set.
   sync_service()->SetDisableReasons(syncer::SyncService::DisableReasonSet());
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(5));
+  task_environment_.FastForwardBy(base::Minutes(5));
   VerifyAppUsageTimeUkm(extension_misc::kChromeAppId, /*duration=*/600000,
                         AppTypeName::kChromeBrowser);
 }
@@ -1118,14 +1113,14 @@
   // Set the browser window1 active.
   ModifyInstance(extension_misc::kChromeAppId,
                  browser1->window()->GetNativeWindow(), kActiveInstanceState);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(5));
+  task_environment_.FastForwardBy(base::Minutes(5));
   VerifyAppUsageTimeUkm(extension_misc::kChromeAppId, /*duration=*/300000,
                         AppTypeName::kChromeBrowser);
 
   // Set the browser window1 inactive.
   ModifyInstance(extension_misc::kChromeAppId,
                  browser1->window()->GetNativeWindow(), kInactiveInstanceState);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_environment_.FastForwardBy(base::Minutes(1));
 
   std::unique_ptr<Browser> browser2 = CreateBrowserWithAuraWindow2();
   EXPECT_EQ(2U, BrowserList::GetInstance()->size());
@@ -1133,12 +1128,12 @@
   // Set the browser window2 active.
   ModifyInstance(extension_misc::kChromeAppId,
                  browser2->window()->GetNativeWindow(), kActiveInstanceState);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(4));
+  task_environment_.FastForwardBy(base::Minutes(4));
 
   VerifyAppUsageTimeUkm(extension_misc::kChromeAppId, /*duration=*/540000,
                         AppTypeName::kChromeBrowser);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(3));
+  task_environment_.FastForwardBy(base::Minutes(3));
 
   // Close windows.
   ModifyInstance(extension_misc::kChromeAppId,
@@ -1148,7 +1143,7 @@
                  browser2->window()->GetNativeWindow(),
                  apps::InstanceState::kDestroyed);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(2));
+  task_environment_.FastForwardBy(base::Minutes(2));
   VerifyAppUsageTimeUkm(extension_misc::kChromeAppId, /*duration=*/720000,
                         AppTypeName::kChromeBrowser);
 }
@@ -1174,7 +1169,7 @@
   // Set the web app tab as activated.
   ModifyWebAppInstance(web_app_id, web_app_window.get(), kActiveInstanceState);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(5));
+  task_environment_.FastForwardBy(base::Minutes(5));
 
   // Verify only the web app UKM is reported.
   auto entries = test_ukm_recorder()->GetEntriesByName("ChromeOSApp.UsageTime");
@@ -1186,7 +1181,7 @@
                  browser->window()->GetNativeWindow(), kInactiveInstanceState);
   ModifyWebAppInstance(web_app_id, web_app_window.get(),
                        kInactiveInstanceState);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(2));
+  task_environment_.FastForwardBy(base::Minutes(2));
 
   // Set the web app tab as activated.
   ModifyWebAppInstance(web_app_id, web_app_window.get(), kActiveInstanceState);
@@ -1194,7 +1189,7 @@
                  browser->window()->GetNativeWindow(), kInactiveInstanceState);
   ModifyInstance(extension_misc::kChromeAppId,
                  browser->window()->GetNativeWindow(), kActiveInstanceState);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(3));
+  task_environment_.FastForwardBy(base::Minutes(3));
 
   // Verify only the web app UKM is reported.
   entries = test_ukm_recorder()->GetEntriesByName("ChromeOSApp.UsageTime");
@@ -1204,7 +1199,7 @@
   // Set the web app tab as inactivated.
   ModifyWebAppInstance(web_app_id, web_app_window.get(),
                        kInactiveInstanceState);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_environment_.FastForwardBy(base::Minutes(1));
 
   // Set the web app tab as destroyed.
   ModifyWebAppInstance(web_app_id, web_app_window.get(),
@@ -1215,7 +1210,7 @@
                  browser->window()->GetNativeWindow(),
                  apps::InstanceState::kDestroyed);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(4));
+  task_environment_.FastForwardBy(base::Minutes(4));
 
   // Verify only the browser UKM is reported.
   entries = test_ukm_recorder()->GetEntriesByName("ChromeOSApp.UsageTime");
@@ -1246,7 +1241,7 @@
   ModifyInstance(extension_misc::kChromeAppId,
                  browser->window()->GetNativeWindow(), kActiveInstanceState);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(5));
+  task_environment_.FastForwardBy(base::Minutes(5));
 
   // Verify only the web app UKM is reported.
   auto entries = test_ukm_recorder()->GetEntriesByName("ChromeOSApp.UsageTime");
@@ -1256,12 +1251,12 @@
   // Set the web app tab as inactivated.
   ModifyWebAppInstance(web_app_id, web_app_window.get(),
                        kInactiveInstanceState);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(3));
+  task_environment_.FastForwardBy(base::Minutes(3));
 
   // Set the browser window as inactivated.
   ModifyInstance(extension_misc::kChromeAppId,
                  browser->window()->GetNativeWindow(), kInactiveInstanceState);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(2));
+  task_environment_.FastForwardBy(base::Minutes(2));
 
   // Verify the browser UKM is reported.
   entries = test_ukm_recorder()->GetEntriesByName("ChromeOSApp.UsageTime");
@@ -1275,7 +1270,7 @@
 
   // Set the web app tab as activated.
   ModifyWebAppInstance(web_app_id, web_app_window.get(), kActiveInstanceState);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(2));
+  task_environment_.FastForwardBy(base::Minutes(2));
 
   // Set the browser window as inactivated.
   ModifyInstance(extension_misc::kChromeAppId,
@@ -1285,7 +1280,7 @@
   ModifyWebAppInstance(web_app_id, web_app_window.get(),
                        kInactiveInstanceState);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(3));
+  task_environment_.FastForwardBy(base::Minutes(3));
 
   // Verify only the web app UKM is reported.
   entries = test_ukm_recorder()->GetEntriesByName("ChromeOSApp.UsageTime");
@@ -1297,7 +1292,7 @@
   // Set the browser window as activated.
   ModifyInstance(extension_misc::kChromeAppId,
                  browser->window()->GetNativeWindow(), kActiveInstanceState);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_environment_.FastForwardBy(base::Minutes(1));
 
   // Set the browser window as destroyed.
   ModifyInstance(extension_misc::kChromeAppId,
@@ -1307,7 +1302,7 @@
   // Set the web app tab as destroyed.
   ModifyWebAppInstance(web_app_id, web_app_window.get(),
                        apps::InstanceState::kDestroyed);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(4));
+  task_environment_.FastForwardBy(base::Minutes(4));
 
   entries = test_ukm_recorder()->GetEntriesByName("ChromeOSApp.UsageTime");
   ASSERT_EQ(4U, entries.size());
@@ -1343,7 +1338,7 @@
   ModifyInstance(extension_misc::kChromeAppId,
                  browser->window()->GetNativeWindow(), kActiveInstanceState);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(5));
+  task_environment_.FastForwardBy(base::Minutes(5));
 
   // Verify only the web app1 UKM is reported.
   auto entries = test_ukm_recorder()->GetEntriesByName("ChromeOSApp.UsageTime");
@@ -1355,7 +1350,7 @@
                        kActiveInstanceState);
   ModifyWebAppInstance(web_app_id1, web_app_window1.get(),
                        kInactiveInstanceState);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(5));
+  task_environment_.FastForwardBy(base::Minutes(5));
 
   // Verify only the web app2 UKM is reported.
   entries = test_ukm_recorder()->GetEntriesByName("ChromeOSApp.UsageTime");
@@ -1367,7 +1362,7 @@
                        kInactiveInstanceState);
   ModifyWebAppInstance(web_app_id2, web_app_window2.get(),
                        kInactiveInstanceState);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(5));
+  task_environment_.FastForwardBy(base::Minutes(5));
 
   // Verify the browser UKM is reported.
   entries = test_ukm_recorder()->GetEntriesByName("ChromeOSApp.UsageTime");
@@ -1375,12 +1370,12 @@
   VerifyAppUsageTimeUkm(extension_misc::kChromeAppId, /*duration=*/300000,
                         AppTypeName::kChromeBrowser);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(2));
+  task_environment_.FastForwardBy(base::Minutes(2));
 
   // Set the browser window as activated.
   ModifyInstance(extension_misc::kChromeAppId,
                  browser->window()->GetNativeWindow(), kInactiveInstanceState);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(3));
+  task_environment_.FastForwardBy(base::Minutes(3));
 
   // Destroy the browser windows, and web app tabs.
   ModifyWebAppInstance(web_app_id1, web_app_window1.get(),
diff --git a/chrome/browser/apps/app_service/app_service_metrics.cc b/chrome/browser/apps/app_service/app_service_metrics.cc
index 318a43b5..a0fbe26 100644
--- a/chrome/browser/apps/app_service/app_service_metrics.cc
+++ b/chrome/browser/apps/app_service/app_service_metrics.cc
@@ -298,7 +298,7 @@
 
   base::TimeDelta amount_time_installed = uninstall_time - install_time;
 
-  const base::TimeDelta seven_days = base::TimeDelta::FromDays(7);
+  const base::TimeDelta seven_days = base::Days(7);
 
   if (amount_time_installed < seven_days) {
     base::UmaHistogramBoolean("Apps.Bounced", true);
diff --git a/chrome/browser/apps/app_service/notifications_browsertest.cc b/chrome/browser/apps/app_service/notifications_browsertest.cc
index d9d79ad..0f0c94f 100644
--- a/chrome/browser/apps/app_service/notifications_browsertest.cc
+++ b/chrome/browser/apps/app_service/notifications_browsertest.cc
@@ -684,11 +684,11 @@
   badge_manager_->ClearBadgeForTesting(app_id, &test_recorder);
 
   // One day under the kBadgingOverrideLifetime threshold.
-  clock.Advance(base::TimeDelta::FromDays(13));
+  clock.Advance(base::Days(13));
 
   ASSERT_EQ(OptionalBool::kFalse, HasBadge(profile(), app_id));
 
-  clock.Advance(base::TimeDelta::FromDays(2));
+  clock.Advance(base::Days(2));
 
   ASSERT_EQ(OptionalBool::kFalse, HasBadge(profile(), app_id));
 
@@ -720,7 +720,7 @@
   badge_manager_->ClearBadgeForTesting(app_id, &test_recorder);
 
   // One day under the kBadgingOverrideLifetime threshold.
-  clock.Advance(base::TimeDelta::FromDays(13));
+  clock.Advance(base::Days(13));
 
   ASSERT_EQ(OptionalBool::kFalse, HasBadge(profile(), app_id));
 
@@ -734,7 +734,7 @@
 
   ASSERT_EQ(OptionalBool::kFalse, HasBadge(profile(), app_id));
 
-  clock.Advance(base::TimeDelta::FromDays(2));
+  clock.Advance(base::Days(2));
 
   {
     auto metadata = std::make_unique<PersistentNotificationMetadata>();
@@ -764,11 +764,11 @@
   badge_manager_->SetBadgeForTesting(app_id, 1, &test_recorder);
 
   // One day under the kBadgingOverrideLifetime threshold.
-  clock.Advance(base::TimeDelta::FromDays(13));
+  clock.Advance(base::Days(13));
 
   ASSERT_EQ(OptionalBool::kTrue, HasBadge(profile(), app_id));
 
-  clock.Advance(base::TimeDelta::FromDays(2));
+  clock.Advance(base::Days(2));
 
   ASSERT_EQ(OptionalBool::kTrue, HasBadge(profile(), app_id));
 
diff --git a/chrome/browser/apps/app_service/webapk/webapk_install_task.cc b/chrome/browser/apps/app_service/webapk/webapk_install_task.cc
index 2811986..6e2f857 100644
--- a/chrome/browser/apps/app_service/webapk/webapk_install_task.cc
+++ b/chrome/browser/apps/app_service/webapk/webapk_install_task.cc
@@ -58,8 +58,7 @@
 const uint64_t kMurmur2HashSeed = 0;
 
 // Time to wait for a response from the Web APK minter.
-constexpr base::TimeDelta kMinterResponseTimeout =
-    base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kMinterResponseTimeout = base::Seconds(60);
 
 constexpr char kWebApkServerUrl[] =
     "https://webapk.googleapis.com/v1/webApks?key=";
diff --git a/chrome/browser/apps/app_service/webapk/webapk_install_task_unittest.cc b/chrome/browser/apps/app_service/webapk/webapk_install_task_unittest.cc
index 0a286cb..7e62c02 100644
--- a/chrome/browser/apps/app_service/webapk/webapk_install_task_unittest.cc
+++ b/chrome/browser/apps/app_service/webapk/webapk_install_task_unittest.cc
@@ -322,7 +322,7 @@
 
   bool install_success;
   apps::WebApkInstallTask install_task(profile(), app_id);
-  install_task.SetTimeoutForTesting(base::TimeDelta::FromMilliseconds(100));
+  install_task.SetTimeoutForTesting(base::Milliseconds(100));
   base::RunLoop run_loop;
   install_task.Start(base::BindLambdaForTesting([&](bool success) {
     install_success = success;
diff --git a/chrome/browser/apps/guest_view/web_view_browsertest.cc b/chrome/browser/apps/guest_view/web_view_browsertest.cc
index d50c4b6..11744717 100644
--- a/chrome/browser/apps/guest_view/web_view_browsertest.cc
+++ b/chrome/browser/apps/guest_view/web_view_browsertest.cc
@@ -339,7 +339,7 @@
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
         FROM_HERE,
         base::BindOnce(&LeftMouseClick::SendMouseUp, base::Unretained(this)),
-        base::TimeDelta::FromMilliseconds(duration_ms));
+        base::Milliseconds(duration_ms));
   }
 
   // Wait for click completed.
diff --git a/chrome/browser/apps/guest_view/web_view_interactive_browsertest.cc b/chrome/browser/apps/guest_view/web_view_interactive_browsertest.cc
index 3770841..f17fa48 100644
--- a/chrome/browser/apps/guest_view/web_view_interactive_browsertest.cc
+++ b/chrome/browser/apps/guest_view/web_view_interactive_browsertest.cc
@@ -409,7 +409,7 @@
           FROM_HERE,
           base::BindOnce(&PopupCreatedObserver::Wait, base::Unretained(this),
                          wait_retry_left),
-          base::TimeDelta::FromMilliseconds(200));
+          base::Milliseconds(200));
     }
 
     size_t CountWidgets() {
@@ -1221,8 +1221,7 @@
   scoped_refptr<content::MessageLoopRunner> message_loop_runner =
       new content::MessageLoopRunner;
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, message_loop_runner->QuitClosure(),
-      base::TimeDelta::FromMilliseconds(200));
+      FROM_HERE, message_loop_runner->QuitClosure(), base::Milliseconds(200));
   message_loop_runner->Run();
 
   gfx::Rect guest_rect = guest_web_contents()->GetContainerBounds();
@@ -1242,8 +1241,7 @@
   // Give enough time for the quick menu to fire.
   message_loop_runner = new content::MessageLoopRunner;
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, message_loop_runner->QuitClosure(),
-      base::TimeDelta::FromMilliseconds(200));
+      FROM_HERE, message_loop_runner->QuitClosure(), base::Milliseconds(200));
   message_loop_runner->Run();
 
 // TODO: Fix quick menu opening on Windows.
diff --git a/chrome/browser/apps/intent_helper/mac_intent_picker_helpers.mm b/chrome/browser/apps/intent_helper/mac_intent_picker_helpers.mm
index 38acbe2b..678cacb 100644
--- a/chrome/browser/apps/intent_helper/mac_intent_picker_helpers.mm
+++ b/chrome/browser/apps/intent_helper/mac_intent_picker_helpers.mm
@@ -65,8 +65,7 @@
     SFUniversalLink* link =
         [[[SFUniversalLink alloc] initWithWebpageURL:nsurl] autorelease];
     base::TimeDelta api_duration = timer.Elapsed();
-    static constexpr auto kHowFastIsFastEnough =
-        base::TimeDelta::FromMilliseconds(100);
+    static constexpr auto kHowFastIsFastEnough = base::Milliseconds(100);
     if (api_duration > kHowFastIsFastEnough) {
       api_is_fast_enough = false;
       // In doing metrics, allow for hangs up to an hour. This is exceptionally
diff --git a/chrome/browser/apps/platform_apps/shortcut_manager.cc b/chrome/browser/apps/platform_apps/shortcut_manager.cc
index 891cb72..3008355c 100644
--- a/chrome/browser/apps/platform_apps/shortcut_manager.cc
+++ b/chrome/browser/apps/platform_apps/shortcut_manager.cc
@@ -198,5 +198,5 @@
       FROM_HERE,
       base::BindOnce(&AppShortcutManager::UpdateShortcutsForAllAppsNow,
                      weak_ptr_factory_.GetWeakPtr()),
-      base::TimeDelta::FromSeconds(kUpdateShortcutsForAllAppsDelay));
+      base::Seconds(kUpdateShortcutsForAllAppsDelay));
 }
diff --git a/chrome/browser/ash/accessibility/dictation.cc b/chrome/browser/ash/accessibility/dictation.cc
index b75b61ec..66e1395aa 100644
--- a/chrome/browser/ash/accessibility/dictation.cc
+++ b/chrome/browser/ash/accessibility/dictation.cc
@@ -42,8 +42,7 @@
 namespace {
 
 // Length of timeout to cancel recognition if there's no speech heard.
-static const base::TimeDelta kNoSpeechTimeout =
-    base::TimeDelta::FromSeconds(10);
+static const base::TimeDelta kNoSpeechTimeout = base::Seconds(10);
 
 const char kDefaultProfileLocale[] = "en-US";
 
diff --git a/chrome/browser/ash/accessibility/dictation_browsertest.cc b/chrome/browser/ash/accessibility/dictation_browsertest.cc
index be09dd3c..6e472ca2 100644
--- a/chrome/browser/ash/accessibility/dictation_browsertest.cc
+++ b/chrome/browser/ash/accessibility/dictation_browsertest.cc
@@ -280,8 +280,7 @@
   EXPECT_FALSE(IsDictationOff());
   base::OneShotTimer* timer = GetTimer();
   ASSERT_TRUE(timer);
-  EXPECT_EQ(timer->GetCurrentDelay(),
-            base::TimeDelta::FromSeconds(kNoSpeechTimeoutInSeconds));
+  EXPECT_EQ(timer->GetCurrentDelay(), base::Seconds(kNoSpeechTimeoutInSeconds));
 }
 
 IN_PROC_BROWSER_TEST_P(DictationTest, RecognitionEndsWithChromeVoxEnabled) {
@@ -312,8 +311,7 @@
   EXPECT_FALSE(IsDictationOff());
   base::OneShotTimer* timer = GetTimer();
   ASSERT_TRUE(timer);
-  EXPECT_EQ(timer->GetCurrentDelay(),
-            base::TimeDelta::FromSeconds(kNoSpeechTimeoutInSeconds));
+  EXPECT_EQ(timer->GetCurrentDelay(), base::Seconds(kNoSpeechTimeoutInSeconds));
 }
 
 IN_PROC_BROWSER_TEST_P(DictationTest, RecognitionEndsWithNoSpeech) {
@@ -321,8 +319,7 @@
   EXPECT_FALSE(IsDictationOff());
   base::OneShotTimer* timer = GetTimer();
   ASSERT_TRUE(timer);
-  EXPECT_EQ(timer->GetCurrentDelay(),
-            base::TimeDelta::FromSeconds(kNoSpeechTimeoutInSeconds));
+  EXPECT_EQ(timer->GetCurrentDelay(), base::Seconds(kNoSpeechTimeoutInSeconds));
   // Firing the timer, which simluates waiting for some time with no events,
   // should end dictation.
   timer->FireNow();
@@ -335,8 +332,7 @@
   SendSpeechResult(kFirstSpeechResult, false /* is_final */);
   base::OneShotTimer* timer = GetTimer();
   ASSERT_TRUE(timer);
-  EXPECT_EQ(timer->GetCurrentDelay(),
-            base::TimeDelta::FromSeconds(kNoSpeechTimeoutInSeconds));
+  EXPECT_EQ(timer->GetCurrentDelay(), base::Seconds(kNoSpeechTimeoutInSeconds));
   // Firing the timer, which simluates waiting for some time without new speech,
   // should end dictation.
   timer->FireNow();
@@ -523,7 +519,7 @@
 
   void Wait() {
     base::RepeatingTimer check_timer;
-    check_timer.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(10), this,
+    check_timer.Start(FROM_HERE, base::Milliseconds(10), this,
                       &TextMatchesWaiter::OnTimer);
     run_loop_.Run();
   }
diff --git a/chrome/browser/ash/accessibility/magnification_controller_browsertest.cc b/chrome/browser/ash/accessibility/magnification_controller_browsertest.cc
index 47b74a3d..57bc7ac 100644
--- a/chrome/browser/ash/accessibility/magnification_controller_browsertest.cc
+++ b/chrome/browser/ash/accessibility/magnification_controller_browsertest.cc
@@ -72,7 +72,7 @@
 
   void Wait() {
     base::RepeatingTimer check_timer;
-    check_timer.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(10), this,
+    check_timer.Start(FROM_HERE, base::Milliseconds(10), this,
                       &MagnifierAnimationWaiter::OnTimer);
     runner_ = new content::MessageLoopRunner;
     runner_->Run();
diff --git a/chrome/browser/ash/accessibility/speech_monitor.cc b/chrome/browser/ash/accessibility/speech_monitor.cc
index ce42db0..47e8d33 100644
--- a/chrome/browser/ash/accessibility/speech_monitor.cc
+++ b/chrome/browser/ash/accessibility/speech_monitor.cc
@@ -242,7 +242,7 @@
         FROM_HERE,
         base::BindOnce(&SpeechMonitor::MaybePrintExpectations,
                        weak_factory_.GetWeakPtr()),
-        base::TimeDelta::FromMilliseconds(kPrintExpectationDelayMs));
+        base::Milliseconds(kPrintExpectationDelayMs));
 
     if (!replay_loop_runner_.get()) {
       replay_loop_runner_ = new content::MessageLoopRunner();
diff --git a/chrome/browser/ash/accessibility/spoken_feedback_browsertest.cc b/chrome/browser/ash/accessibility/spoken_feedback_browsertest.cc
index 5d1a2097..64b0353 100644
--- a/chrome/browser/ash/accessibility/spoken_feedback_browsertest.cc
+++ b/chrome/browser/ash/accessibility/spoken_feedback_browsertest.cc
@@ -909,7 +909,7 @@
         ui::PointerDetails(ui::EventPointerType::kTouch, 0));
     generator_ptr->Dispatch(&touch_press);
 
-    clock_ptr->Advance(base::TimeDelta::FromSeconds(1));
+    clock_ptr->Advance(base::Seconds(1));
 
     ui::TouchEvent touch_move(
         ui::ET_TOUCH_MOVED, tray_center, base::TimeTicks::Now(),
@@ -947,14 +947,14 @@
         ui::PointerDetails(ui::EventPointerType::kTouch, 0));
     generator_ptr->Dispatch(&touch_press);
 
-    clock_ptr->Advance(base::TimeDelta::FromSeconds(1));
+    clock_ptr->Advance(base::Seconds(1));
 
     ui::TouchEvent touch_move(
         ui::ET_TOUCH_MOVED, gfx::Point(1280, 300), base::TimeTicks::Now(),
         ui::PointerDetails(ui::EventPointerType::kTouch, 0));
     generator_ptr->Dispatch(&touch_move);
 
-    clock_ptr->Advance(base::TimeDelta::FromSeconds(1));
+    clock_ptr->Advance(base::Seconds(1));
 
     ui::TouchEvent touch_move2(
         ui::ET_TOUCH_MOVED, gfx::Point(1280, 400), base::TimeTicks::Now(),
@@ -1007,14 +1007,14 @@
         ui::PointerDetails(ui::EventPointerType::kTouch, 0));
     generator_ptr->Dispatch(&touch_press);
 
-    clock_ptr->Advance(base::TimeDelta::FromSeconds(1));
+    clock_ptr->Advance(base::Seconds(1));
 
     ui::TouchEvent touch_move(
         ui::ET_TOUCH_MOVED, gfx::Point(1080, 300), base::TimeTicks::Now(),
         ui::PointerDetails(ui::EventPointerType::kTouch, 0));
     generator_ptr->Dispatch(&touch_move);
 
-    clock_ptr->Advance(base::TimeDelta::FromSeconds(1));
+    clock_ptr->Advance(base::Seconds(1));
 
     ui::TouchEvent touch_move2(
         ui::ET_TOUCH_MOVED, gfx::Point(1080, 400), base::TimeTicks::Now(),
@@ -1085,14 +1085,14 @@
         ui::PointerDetails(ui::EventPointerType::kTouch, 0));
     generator_ptr->Dispatch(&touch_press);
 
-    clock_ptr->Advance(base::TimeDelta::FromSeconds(1));
+    clock_ptr->Advance(base::Seconds(1));
 
     ui::TouchEvent touch_move(
         ui::ET_TOUCH_MOVED, gfx::Point(1580, 300), base::TimeTicks::Now(),
         ui::PointerDetails(ui::EventPointerType::kTouch, 0));
     generator_ptr->Dispatch(&touch_move);
 
-    clock_ptr->Advance(base::TimeDelta::FromSeconds(1));
+    clock_ptr->Advance(base::Seconds(1));
 
     ui::TouchEvent touch_move2(
         ui::ET_TOUCH_MOVED, gfx::Point(1580, 400), base::TimeTicks::Now(),
diff --git a/chrome/browser/ash/accessibility/touch_exploration_controller_browsertest.cc b/chrome/browser/ash/accessibility/touch_exploration_controller_browsertest.cc
index 5fea29d..71598ab1 100644
--- a/chrome/browser/ash/accessibility/touch_exploration_controller_browsertest.cc
+++ b/chrome/browser/ash/accessibility/touch_exploration_controller_browsertest.cc
@@ -34,7 +34,7 @@
  public:
   TouchExplorationTest() : simulated_clock_(new base::SimpleTestTickClock()) {
     // Tests fail if time is ever 0.
-    simulated_clock_->Advance(base::TimeDelta::FromMilliseconds(10));
+    simulated_clock_->Advance(base::Milliseconds(10));
   }
 
   TouchExplorationTest(const TouchExplorationTest&) = delete;
@@ -103,7 +103,7 @@
   ui::TouchEvent touch_time_advance(
       ui::ET_TOUCH_MOVED, gfx::Point(100, 200),
       initial_time + gesture_detector_config_.double_tap_timeout +
-          base::TimeDelta::FromMilliseconds(1),
+          base::Milliseconds(1),
       ui::PointerDetails(ui::EventPointerType::kTouch, 1));
   generator.Dispatch(&touch_time_advance);
 
@@ -124,7 +124,7 @@
   ui::TouchEvent second_touch_time_advance(
       ui::ET_TOUCH_MOVED, gfx::Point(500, 600),
       initial_time + gesture_detector_config_.double_tap_timeout +
-          base::TimeDelta::FromMilliseconds(1),
+          base::Milliseconds(1),
       ui::PointerDetails(ui::EventPointerType::kTouch, 2));
   generator.Dispatch(&second_touch_time_advance);
   EXPECT_EQ(0, event_handler_->num_mouse_events());
@@ -152,7 +152,7 @@
   ui::TouchEvent touch_time_advance(
       ui::ET_TOUCH_MOVED, gfx::Point(100, 200),
       initial_time + gesture_detector_config_.double_tap_timeout +
-          base::TimeDelta::FromMilliseconds(1),
+          base::Milliseconds(1),
       ui::PointerDetails(ui::EventPointerType::kTouch, 1));
   generator.Dispatch(&touch_time_advance);
 
@@ -169,7 +169,7 @@
   ui::TouchEvent second_touch_time_advance(
       ui::ET_TOUCH_MOVED, gfx::Point(500, 600),
       initial_time + gesture_detector_config_.double_tap_timeout +
-          base::TimeDelta::FromMilliseconds(1),
+          base::Milliseconds(1),
       ui::PointerDetails(ui::EventPointerType::kTouch, 2));
   generator.Dispatch(&second_touch_time_advance);
   EXPECT_GT(event_handler_->num_mouse_events(), 0);
@@ -183,7 +183,7 @@
   ui::TouchEvent release_second_touch(
       ui::ET_TOUCH_RELEASED, gfx::Point(500, 600),
       initial_time + gesture_detector_config_.double_tap_timeout +
-          base::TimeDelta::FromMilliseconds(1),
+          base::Milliseconds(1),
       ui::PointerDetails(ui::EventPointerType::kTouch, 2));
   generator.Dispatch(&release_second_touch);
   EXPECT_GT(event_handler_->num_mouse_events(), 0);
@@ -220,7 +220,7 @@
   ui::TouchEvent touch_time_advance(
       ui::ET_TOUCH_MOVED, gfx::Point(100, 200),
       initial_time + gesture_detector_config_.double_tap_timeout +
-          base::TimeDelta::FromMilliseconds(1),
+          base::Milliseconds(1),
       ui::PointerDetails(ui::EventPointerType::kTouch, 1));
   generator.Dispatch(&touch_time_advance);
   EXPECT_TRUE(cursor_client->IsMouseEventsEnabled());
diff --git a/chrome/browser/ash/account_manager/account_manager_util.cc b/chrome/browser/ash/account_manager/account_manager_util.cc
index 9652b2a..13f1c031 100644
--- a/chrome/browser/ash/account_manager/account_manager_util.cc
+++ b/chrome/browser/ash/account_manager/account_manager_util.cc
@@ -60,9 +60,9 @@
       cryptohome_root_dir,
       g_browser_process->system_network_context_manager()
           ->GetSharedURLLoaderFactory(),
-      base::BindRepeating(&chromeos::DelayNetworkCall,
-                          base::TimeDelta::FromMilliseconds(
-                              chromeos::kDefaultNetworkRetryDelayMS)),
+      base::BindRepeating(
+          &chromeos::DelayNetworkCall,
+          base::Milliseconds(chromeos::kDefaultNetworkRetryDelayMS)),
       std::move(initialization_callback));
 
   crosapi::AccountManagerMojoService* account_manager_mojo_service =
diff --git a/chrome/browser/ash/android_sms/android_sms_app_setup_controller_impl.cc b/chrome/browser/ash/android_sms/android_sms_app_setup_controller_impl.cc
index 9d22340..f86788600 100644
--- a/chrome/browser/ash/android_sms/android_sms_app_setup_controller_impl.cc
+++ b/chrome/browser/ash/android_sms/android_sms_app_setup_controller_impl.cc
@@ -44,7 +44,7 @@
 
 // static
 const base::TimeDelta AndroidSmsAppSetupControllerImpl::kInstallRetryDelay =
-    base::TimeDelta::FromSeconds(5);
+    base::Seconds(5);
 const size_t AndroidSmsAppSetupControllerImpl::kMaxInstallRetryCount = 7u;
 
 AndroidSmsAppSetupControllerImpl::PwaDelegate::PwaDelegate() = default;
diff --git a/chrome/browser/ash/android_sms/fcm_connection_establisher.cc b/chrome/browser/ash/android_sms/fcm_connection_establisher.cc
index ff2acb13..1534f2e 100644
--- a/chrome/browser/ash/android_sms/fcm_connection_establisher.cc
+++ b/chrome/browser/ash/android_sms/fcm_connection_establisher.cc
@@ -22,7 +22,7 @@
 const int FcmConnectionEstablisher::kMaxRetryCount = 7;
 
 constexpr base::TimeDelta FcmConnectionEstablisher::kRetryDelay =
-    base::TimeDelta::FromSeconds(5);
+    base::Seconds(5);
 
 // Start message is sent when establishing a connection for the first time on
 // log-in. This allows the service worker to freshly subscribe to push
diff --git a/chrome/browser/ash/app_mode/arc/arc_kiosk_app_service.cc b/chrome/browser/ash/app_mode/arc/arc_kiosk_app_service.cc
index cd022b4..cf0f710b 100644
--- a/chrome/browser/ash/app_mode/arc/arc_kiosk_app_service.cc
+++ b/chrome/browser/ash/app_mode/arc/arc_kiosk_app_service.cc
@@ -30,7 +30,7 @@
 
 // Timeout maintenance session after 30 minutes.
 constexpr base::TimeDelta kArcKioskMaintenanceSessionTimeout =
-    base::TimeDelta::FromMinutes(30);
+    base::Minutes(30);
 
 // static
 ArcKioskAppService* ArcKioskAppService::Create(Profile* profile) {
diff --git a/chrome/browser/ash/app_mode/kiosk_app_manager.cc b/chrome/browser/ash/app_mode/kiosk_app_manager.cc
index 50d1a743..f971e14 100644
--- a/chrome/browser/ash/app_mode/kiosk_app_manager.cc
+++ b/chrome/browser/ash/app_mode/kiosk_app_manager.cc
@@ -859,7 +859,7 @@
           kAccountsPrefDeviceLocalAccountAutoLoginDelay, &delay)) {
     return base::TimeDelta();  // Default delay is 0ms.
   }
-  return base::TimeDelta::FromMilliseconds(delay);
+  return base::Milliseconds(delay);
 }
 
 }  // namespace ash
diff --git a/chrome/browser/ash/app_mode/kiosk_app_update_service.cc b/chrome/browser/ash/app_mode/kiosk_app_update_service.cc
index c84f0d12..919656b 100644
--- a/chrome/browser/ash/app_mode/kiosk_app_update_service.cc
+++ b/chrome/browser/ash/app_mode/kiosk_app_update_service.cc
@@ -63,9 +63,8 @@
     return;
 
   // Setup timer to force restart once the wait period expires.
-  restart_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(kForceRestartWaitTimeMs),
-      this, &KioskAppUpdateService::ForceAppUpdateRestart);
+  restart_timer_.Start(FROM_HERE, base::Milliseconds(kForceRestartWaitTimeMs),
+                       this, &KioskAppUpdateService::ForceAppUpdateRestart);
 }
 
 void KioskAppUpdateService::ForceAppUpdateRestart() {
diff --git a/chrome/browser/ash/app_mode/kiosk_app_update_service_browsertest.cc b/chrome/browser/ash/app_mode/kiosk_app_update_service_browsertest.cc
index 029b90f..f948dd8 100644
--- a/chrome/browser/ash/app_mode/kiosk_app_update_service_browsertest.cc
+++ b/chrome/browser/ash/app_mode/kiosk_app_update_service_browsertest.cc
@@ -48,7 +48,7 @@
 
 // Maximum time for AutomaticRebootManager initialization to complete.
 constexpr base::TimeDelta kAutomaticRebootManagerInitTimeout =
-    base::TimeDelta::FromSeconds(60);
+    base::Seconds(60);
 
 // Blocks until |manager| is initialized and then sets |success_out| to true and
 // runs |quit_closure|. If initialization does not occur within |timeout|, sets
@@ -84,7 +84,7 @@
     ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
     const base::FilePath& temp_dir = temp_dir_.GetPath();
 
-    const base::TimeDelta uptime = base::TimeDelta::FromHours(3);
+    const base::TimeDelta uptime = base::Hours(3);
     const std::string uptime_seconds =
         base::NumberToString(uptime.InSecondsF());
     const base::FilePath uptime_file = temp_dir.Append("uptime");
@@ -155,8 +155,8 @@
 
   void RequestPeriodicReboot() {
     run_loop_ = std::make_unique<base::RunLoop>();
-    g_browser_process->local_state()->SetInteger(
-        prefs::kUptimeLimit, base::TimeDelta::FromHours(2).InSeconds());
+    g_browser_process->local_state()->SetInteger(prefs::kUptimeLimit,
+                                                 base::Hours(2).InSeconds());
     run_loop_->Run();
   }
 
diff --git a/chrome/browser/ash/app_mode/kiosk_mode_idle_app_name_notification.cc b/chrome/browser/ash/app_mode/kiosk_mode_idle_app_name_notification.cc
index ec01d458..864fbbad 100644
--- a/chrome/browser/ash/app_mode/kiosk_mode_idle_app_name_notification.cc
+++ b/chrome/browser/ash/app_mode/kiosk_mode_idle_app_name_notification.cc
@@ -119,11 +119,10 @@
   } else {
     // OneShotTimer destroys the posted task after running it, so Reset()
     // isn't safe to call on a timer that's already fired.
-    timer_.Start(
-        FROM_HERE,
-        base::TimeDelta::FromMilliseconds(kIdleAppNameNotificationTimeoutMs),
-        base::BindOnce(&KioskModeIdleAppNameNotification::OnTimeout,
-                       base::Unretained(this)));
+    timer_.Start(FROM_HERE,
+                 base::Milliseconds(kIdleAppNameNotificationTimeoutMs),
+                 base::BindOnce(&KioskModeIdleAppNameNotification::OnTimeout,
+                                base::Unretained(this)));
   }
 }
 
diff --git a/chrome/browser/ash/app_mode/kiosk_profile_loader.cc b/chrome/browser/ash/app_mode/kiosk_profile_loader.cc
index 7f7eafa..42deb04 100644
--- a/chrome/browser/ash/app_mode/kiosk_profile_loader.cc
+++ b/chrome/browser/ash/app_mode/kiosk_profile_loader.cc
@@ -91,7 +91,7 @@
     const int retry_delay_in_milliseconds = 500 * (1 << retry_count_);
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
         FROM_HERE, base::BindOnce(&CryptohomedChecker::StartCheck, AsWeakPtr()),
-        base::TimeDelta::FromMilliseconds(retry_delay_in_milliseconds));
+        base::Milliseconds(retry_delay_in_milliseconds));
   }
 
   void OnServiceAvailibityChecked(bool service_is_ready) {
diff --git a/chrome/browser/ash/app_mode/startup_app_launcher.cc b/chrome/browser/ash/app_mode/startup_app_launcher.cc
index b08cf22d..e0b04f2a 100644
--- a/chrome/browser/ash/app_mode/startup_app_launcher.cc
+++ b/chrome/browser/ash/app_mode/startup_app_launcher.cc
@@ -509,7 +509,7 @@
 
   if (!AreSecondaryAppsInstalled() && !delegate_->IsNetworkReady()) {
     DelayNetworkCall(
-        base::TimeDelta::FromMilliseconds(kDefaultNetworkRetryDelayMS),
+        base::Milliseconds(kDefaultNetworkRetryDelayMS),
         base::BindOnce(&StartupAppLauncher::MaybeInstallSecondaryApps,
                        weak_ptr_factory_.GetWeakPtr()));
     return;
diff --git a/chrome/browser/ash/app_restore/arc_app_launch_handler.cc b/chrome/browser/ash/app_restore/arc_app_launch_handler.cc
index 0a688943..9095008 100644
--- a/chrome/browser/ash/app_restore/arc_app_launch_handler.cc
+++ b/chrome/browser/ash/app_restore/arc_app_launch_handler.cc
@@ -56,11 +56,10 @@
 
 // Time interval between each checking for the app launching condition, e.g. the
 // memory pressure level, or whether the app is ready.
-constexpr base::TimeDelta kAppLaunchCheckingDelay =
-    base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kAppLaunchCheckingDelay = base::Seconds(1);
 
 // Delay between each app launching.
-constexpr base::TimeDelta kAppLaunchDelay = base::TimeDelta::FromSeconds(3);
+constexpr base::TimeDelta kAppLaunchDelay = base::Seconds(3);
 
 constexpr int kCpuUsageRefreshIntervalInSeconds = 1;
 
@@ -761,8 +760,7 @@
 
 void ArcAppLaunchHandler::StartCpuUsageCount() {
   cpu_tick_count_timer_.Start(
-      FROM_HERE,
-      base::TimeDelta::FromSeconds(kCpuUsageRefreshIntervalInSeconds),
+      FROM_HERE, base::Seconds(kCpuUsageRefreshIntervalInSeconds),
       base::BindRepeating(&ArcAppLaunchHandler::UpdateCpuUsage,
                           weak_ptr_factory_.GetWeakPtr()));
 }
diff --git a/chrome/browser/ash/app_restore/arc_app_launch_handler.h b/chrome/browser/ash/app_restore/arc_app_launch_handler.h
index bb6657e..2863fec 100644
--- a/chrome/browser/ash/app_restore/arc_app_launch_handler.h
+++ b/chrome/browser/ash/app_restore/arc_app_launch_handler.h
@@ -98,7 +98,7 @@
 // pressure, CPU rate, etc. However we don't want to have the restoration
 // process taking too long to interact the normal usage. So if the restoration
 // has finished in `kAppLaunchDelay` timeframe, we stop the restoration process.
-constexpr base::TimeDelta kStopRestoreDelay = base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kStopRestoreDelay = base::Minutes(1);
 
 // The ArcAppLaunchHandler class restores ARC apps during the system startup
 // phase.
diff --git a/chrome/browser/ash/app_restore/arc_ghost_window_view.cc b/chrome/browser/ash/app_restore/arc_ghost_window_view.cc
index 56086099..29651e1 100644
--- a/chrome/browser/ash/app_restore/arc_ghost_window_view.cc
+++ b/chrome/browser/ash/app_restore/arc_ghost_window_view.cc
@@ -28,7 +28,7 @@
   explicit Throbber(uint32_t color) : color_(color) {
     start_time_ = base::TimeTicks::Now();
     timer_.Start(
-        FROM_HERE, base::TimeDelta::FromMilliseconds(30),
+        FROM_HERE, base::Milliseconds(30),
         base::BindRepeating(&Throbber::SchedulePaint, base::Unretained(this)));
     SchedulePaint();  // paint right away
   }
diff --git a/chrome/browser/ash/app_restore/full_restore_app_launch_handler_browsertest.cc b/chrome/browser/ash/app_restore/full_restore_app_launch_handler_browsertest.cc
index 233ca3f..79ab9341 100644
--- a/chrome/browser/ash/app_restore/full_restore_app_launch_handler_browsertest.cc
+++ b/chrome/browser/ash/app_restore/full_restore_app_launch_handler_browsertest.cc
@@ -1024,7 +1024,7 @@
   // Wait a couple seconds and verify the window is now activatable.
   base::RunLoop run_loop;
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(), base::TimeDelta::FromSeconds(3));
+      FROM_HERE, run_loop.QuitClosure(), base::Seconds(3));
   run_loop.Run();
 
   EXPECT_TRUE(wm::CanActivateWindow(window));
diff --git a/chrome/browser/ash/arc/arc_optin_uma.cc b/chrome/browser/ash/arc/arc_optin_uma.cc
index 970feff..5e72eb2 100644
--- a/chrome/browser/ash/arc/arc_optin_uma.cc
+++ b/chrome/browser/ash/arc/arc_optin_uma.cc
@@ -127,7 +127,7 @@
   // here.
   base::UmaHistogramCustomTimes(
       GetHistogramNameByUserType(histogram_name, profile), elapsed_time,
-      base::TimeDelta::FromSeconds(1), base::TimeDelta::FromMinutes(6), 50);
+      base::Seconds(1), base::Minutes(6), 50);
 }
 
 void UpdateReauthorizationResultUMA(ProvisioningStatus status,
@@ -149,8 +149,7 @@
   base::UmaHistogramCustomTimes(
       GetHistogramNameByUserType("Arc.PlayAutoInstallRequest.TimeDelta",
                                  profile),
-      elapsed_time, base::TimeDelta::FromSeconds(1),
-      base::TimeDelta::FromMinutes(10), 50);
+      elapsed_time, base::Seconds(1), base::Minutes(10), 50);
 }
 
 void UpdateArcUiAvailableTime(const base::TimeDelta& elapsed_time,
@@ -159,22 +158,19 @@
   base::UmaHistogramCustomTimes(
       GetHistogramNameByUserType("Arc.UiAvailable." + mode + ".TimeDelta",
                                  profile),
-      elapsed_time, base::TimeDelta::FromSeconds(1),
-      base::TimeDelta::FromMinutes(5), 50);
+      elapsed_time, base::Seconds(1), base::Minutes(5), 50);
 }
 
 void UpdatePlayStoreLaunchTime(const base::TimeDelta& elapsed_time) {
   base::UmaHistogramCustomTimes("Arc.PlayStoreLaunch.TimeDelta", elapsed_time,
-                                base::TimeDelta::FromMilliseconds(10),
-                                base::TimeDelta::FromSeconds(20), 50);
+                                base::Milliseconds(10), base::Seconds(20), 50);
 }
 
 void UpdatePlayStoreShownTimeDeprecated(const base::TimeDelta& elapsed_time,
                                         const Profile* profile) {
   base::UmaHistogramCustomTimes(
       GetHistogramNameByUserType("Arc.PlayStoreShown.TimeDelta", profile),
-      elapsed_time, base::TimeDelta::FromSeconds(1),
-      base::TimeDelta::FromMinutes(10), 50);
+      elapsed_time, base::Seconds(1), base::Minutes(10), 50);
 }
 
 void UpdateAuthTiming(const char* histogram_name,
@@ -182,8 +178,8 @@
                       const Profile* profile) {
   base::UmaHistogramCustomTimes(
       GetHistogramNameByUserType(histogram_name, profile), elapsed_time,
-      base::TimeDelta::FromSeconds(1) /* minimum */,
-      base::TimeDelta::FromMinutes(3) /* maximum */, 50 /* bucket_count */);
+      base::Seconds(1) /* minimum */, base::Minutes(3) /* maximum */,
+      50 /* bucket_count */);
 }
 
 void UpdateAuthCheckinAttempts(int32_t num_attempts, const Profile* profile) {
diff --git a/chrome/browser/ash/arc/auth/arc_auth_context.cc b/chrome/browser/ash/arc/auth/arc_auth_context.cc
index 12274d7..388212d 100644
--- a/chrome/browser/ash/arc/auth/arc_auth_context.cc
+++ b/chrome/browser/ash/arc/auth/arc_auth_context.cc
@@ -19,8 +19,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kRefreshTokenTimeout =
-    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kRefreshTokenTimeout = base::Seconds(10);
 
 }  // namespace
 
diff --git a/chrome/browser/ash/arc/auth/arc_auth_service.cc b/chrome/browser/ash/arc/auth/arc_auth_service.cc
index 6460fe5..d5eaedd 100644
--- a/chrome/browser/ash/arc/auth/arc_auth_service.cc
+++ b/chrome/browser/ash/arc/auth/arc_auth_service.cc
@@ -308,22 +308,22 @@
   switch (metrics_type) {
     case mojom::MetricsType::NETWORK_WAITING_TIME_MILLISECONDS:
       UpdateAuthTiming("Arc.Auth.NetworkWait.TimeDelta",
-                       base::TimeDelta::FromMilliseconds(value), profile_);
+                       base::Milliseconds(value), profile_);
       break;
     case mojom::MetricsType::CHECKIN_ATTEMPTS:
       UpdateAuthCheckinAttempts(value, profile_);
       break;
     case mojom::MetricsType::CHECKIN_TIME_MILLISECONDS:
-      UpdateAuthTiming("Arc.Auth.Checkin.TimeDelta",
-                       base::TimeDelta::FromMilliseconds(value), profile_);
+      UpdateAuthTiming("Arc.Auth.Checkin.TimeDelta", base::Milliseconds(value),
+                       profile_);
       break;
     case mojom::MetricsType::SIGNIN_TIME_MILLISECONDS:
-      UpdateAuthTiming("Arc.Auth.SignIn.TimeDelta",
-                       base::TimeDelta::FromMilliseconds(value), profile_);
+      UpdateAuthTiming("Arc.Auth.SignIn.TimeDelta", base::Milliseconds(value),
+                       profile_);
       break;
     case mojom::MetricsType::ACCOUNT_CHECK_MILLISECONDS:
       UpdateAuthTiming("Arc.Auth.AccountCheck.TimeDelta",
-                       base::TimeDelta::FromMilliseconds(value), profile_);
+                       base::Milliseconds(value), profile_);
       break;
   }
 }
diff --git a/chrome/browser/ash/arc/bluetooth/arc_bluetooth_bridge.cc b/chrome/browser/ash/arc/bluetooth/arc_bluetooth_bridge.cc
index b214749..cd192c4c 100644
--- a/chrome/browser/ash/arc/bluetooth/arc_bluetooth_bridge.cc
+++ b/chrome/browser/ash/arc/bluetooth/arc_bluetooth_bridge.cc
@@ -161,7 +161,7 @@
 // 120 seconds is used here as the upper bound of the time need to do device
 // discovery once, 20 seconds for inquiry scan and 100 seconds for page scan
 // for 100 new devices.
-constexpr base::TimeDelta kDiscoveryTimeout = base::TimeDelta::FromSeconds(120);
+constexpr base::TimeDelta kDiscoveryTimeout = base::Seconds(120);
 // From https://www.bluetooth.com/specifications/assigned-numbers/baseband
 // The Class of Device for generic computer.
 constexpr uint32_t kBluetoothComputerClass = 0x100;
@@ -180,7 +180,7 @@
 // Chrome, Chrome will take EnableAdapter/DisableAdapter calls as a request from
 // Android to toggle the power state. The power state will be synced on both
 // Chrome and Android, but as a result, Bluetooth will be off.
-constexpr base::TimeDelta kPowerIntentTimeout = base::TimeDelta::FromSeconds(8);
+constexpr base::TimeDelta kPowerIntentTimeout = base::Seconds(8);
 
 // Client name for logging in BLE scanning.
 constexpr char kScanClientName[] = "ARC";
@@ -1090,7 +1090,7 @@
 
   if (success && discoverable && timeout > 0) {
     discoverable_off_timer_.Start(
-        FROM_HERE, base::TimeDelta::FromSeconds(timeout),
+        FROM_HERE, base::Seconds(timeout),
         base::BindOnce(&ArcBluetoothBridge::SetDiscoverable,
                        weak_factory_.GetWeakPtr(), false, 0));
   }
@@ -1113,8 +1113,7 @@
     return;
 
   if (discoverable && currently_discoverable) {
-    if (base::TimeDelta::FromSeconds(timeout) >
-        discoverable_off_timer_.GetCurrentDelay()) {
+    if (base::Seconds(timeout) > discoverable_off_timer_.GetCurrentDelay()) {
       // Restart discoverable_off_timer_ if new timeout is greater
       OnSetDiscoverable(true, true, timeout);
     } else {
diff --git a/chrome/browser/ash/arc/boot_phase_monitor/arc_boot_phase_monitor_bridge.cc b/chrome/browser/ash/arc/boot_phase_monitor/arc_boot_phase_monitor_bridge.cc
index 9767cdd6..f2bc1842 100644
--- a/chrome/browser/ash/arc/boot_phase_monitor/arc_boot_phase_monitor_bridge.cc
+++ b/chrome/browser/ash/arc/boot_phase_monitor/arc_boot_phase_monitor_bridge.cc
@@ -41,8 +41,7 @@
     VLOG(2) << "Launching the first app took "
             << delta.InMillisecondsRoundedUp() << " ms.";
     UMA_HISTOGRAM_CUSTOM_TIMES("Arc.FirstAppLaunchDelay.TimeDelta", delta,
-                               base::TimeDelta::FromMilliseconds(1),
-                               base::TimeDelta::FromMinutes(2), 50);
+                               base::Milliseconds(1), base::Minutes(2), 50);
   }
 };
 
diff --git a/chrome/browser/ash/arc/boot_phase_monitor/arc_boot_phase_monitor_bridge_unittest.cc b/chrome/browser/ash/arc/boot_phase_monitor/arc_boot_phase_monitor_bridge_unittest.cc
index 34327fdb..c50771f 100644
--- a/chrome/browser/ash/arc/boot_phase_monitor/arc_boot_phase_monitor_bridge_unittest.cc
+++ b/chrome/browser/ash/arc/boot_phase_monitor/arc_boot_phase_monitor_bridge_unittest.cc
@@ -185,7 +185,7 @@
   boot_phase_monitor_bridge()->RecordFirstAppLaunchDelayUMAForTesting();
   EXPECT_EQ(0U, record_uma_counter());
   // Sleep for 1ms just to make sure 0 won't be passed to RecordUMA().
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(1));
+  base::PlatformThread::Sleep(base::Milliseconds(1));
   // UMA recording should be done on BootCompleted.
   boot_phase_monitor_bridge()->OnBootCompleted();
   EXPECT_EQ(1U, record_uma_counter());
diff --git a/chrome/browser/ash/arc/file_system_watcher/arc_file_system_watcher_service.cc b/chrome/browser/ash/arc/file_system_watcher/arc_file_system_watcher_service.cc
index 00a47510..cc86d13 100644
--- a/chrome/browser/ash/arc/file_system_watcher/arc_file_system_watcher_service.cc
+++ b/chrome/browser/ash/arc/file_system_watcher/arc_file_system_watcher_service.cc
@@ -66,8 +66,7 @@
 
 // How long to wait for new inotify events before building the updated timestamp
 // map.
-const base::TimeDelta kBuildTimestampMapDelay =
-    base::TimeDelta::FromMilliseconds(1000);
+const base::TimeDelta kBuildTimestampMapDelay = base::Milliseconds(1000);
 
 // Providing the similar guarantee as
 // /proc/sys/fs/inotify/max_queued_events
diff --git a/chrome/browser/ash/arc/file_system_watcher/file_system_scanner.cc b/chrome/browser/ash/arc/file_system_watcher/file_system_scanner.cc
index 0156e6af..bde81a05 100644
--- a/chrome/browser/ash/arc/file_system_watcher/file_system_scanner.cc
+++ b/chrome/browser/ash/arc/file_system_watcher/file_system_scanner.cc
@@ -38,15 +38,14 @@
 //
 // TODO(crbug/1037824): Measure the battery usage to find an optimal value for
 // this.
-constexpr base::TimeDelta kRegularScanInterval =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kRegularScanInterval = base::Seconds(5);
 
 // This value is used to handle the delay caused by timekeeper when reading the
 // ctime values. For more information, please read the comments inside
 // IsModified function.
 //
 // This value MUST NOT exceed |kRegularScanInterval|.
-constexpr base::TimeDelta kCtimeCorrection = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kCtimeCorrection = base::Seconds(1);
 
 // Returns ctime for the file |path| using stat(2).
 // If stat fails for some reason, e.g., the file does not exists, then it
diff --git a/chrome/browser/ash/arc/fileapi/arc_documents_provider_root.cc b/chrome/browser/ash/arc/fileapi/arc_documents_provider_root.cc
index e275eccf..fc7b6910 100644
--- a/chrome/browser/ash/arc/fileapi/arc_documents_provider_root.cc
+++ b/chrome/browser/ash/arc/fileapi/arc_documents_provider_root.cc
@@ -30,7 +30,7 @@
 namespace {
 
 // Directory cache will be cleared this duration after it is built.
-constexpr base::TimeDelta kCacheExpiration = base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kCacheExpiration = base::Seconds(60);
 
 void OnGetFileSizeFromOpenFile(
     ArcDocumentsProviderRoot::GetFileInfoCallback callback,
diff --git a/chrome/browser/ash/arc/input_method_manager/input_connection_impl.cc b/chrome/browser/ash/arc/input_method_manager/input_connection_impl.cc
index a2eff620..684f303 100644
--- a/chrome/browser/ash/arc/input_method_manager/input_connection_impl.cc
+++ b/chrome/browser/ash/arc/input_method_manager/input_connection_impl.cc
@@ -27,7 +27,7 @@
 // Android.
 // TODO(yhanada): Implement a way to observe an IME operation completion and
 // send the current text input state right after the IME operation completion.
-constexpr base::TimeDelta kStateUpdateTimeout = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kStateUpdateTimeout = base::Seconds(1);
 
 // Characters which should be sent as a KeyEvent and attributes of generated
 // KeyEvent.
diff --git a/chrome/browser/ash/arc/instance_throttle/arc_app_launch_throttle_observer.cc b/chrome/browser/ash/arc/instance_throttle/arc_app_launch_throttle_observer.cc
index 9edf0cf..d584f355 100644
--- a/chrome/browser/ash/arc/instance_throttle/arc_app_launch_throttle_observer.cc
+++ b/chrome/browser/ash/arc/instance_throttle/arc_app_launch_throttle_observer.cc
@@ -12,7 +12,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kAppLaunchTimeout = base::TimeDelta::FromSeconds(20);
+constexpr base::TimeDelta kAppLaunchTimeout = base::Seconds(20);
 
 }  // namespace
 
diff --git a/chrome/browser/ash/arc/nearby_share/nearby_share_session_impl.cc b/chrome/browser/ash/arc/nearby_share/nearby_share_session_impl.cc
index 1eea0ed..7fd6373a 100644
--- a/chrome/browser/ash/arc/nearby_share/nearby_share_session_impl.cc
+++ b/chrome/browser/ash/arc/nearby_share/nearby_share_session_impl.cc
@@ -49,11 +49,9 @@
 // will not be found. To get around this, NearbyShareSessionImpl will wait a
 // little while for the Wayland message to be processed and the window to be
 // initialized.
-constexpr base::TimeDelta kWindowInitializationTimeout =
-    base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kWindowInitializationTimeout = base::Seconds(1);
 
-constexpr base::TimeDelta kProgressBarUpdateInterval =
-    base::TimeDelta::FromMilliseconds(1500);
+constexpr base::TimeDelta kProgressBarUpdateInterval = base::Milliseconds(1500);
 
 constexpr uint64_t kShowProgressBarMinSizeInBytes = 12000000;  // 12MB.
 
diff --git a/chrome/browser/ash/arc/nearby_share/share_info_file_handler.cc b/chrome/browser/ash/arc/nearby_share/share_info_file_handler.cc
index 4c57095..13b0166 100644
--- a/chrome/browser/ash/arc/nearby_share/share_info_file_handler.cc
+++ b/chrome/browser/ash/arc/nearby_share/share_info_file_handler.cc
@@ -39,8 +39,7 @@
 // before Nearby Share can consume it.  Since we don't have limit on number
 // of files or size of files users can share via Nearby Share, set to some
 // reasonable number of minutes per GB of transfer.
-constexpr base::TimeDelta kFileStreamingTimeoutPerGB =
-    base::TimeDelta::FromMinutes(2);
+constexpr base::TimeDelta kFileStreamingTimeoutPerGB = base::Minutes(2);
 
 int64_t GetTimeoutInSecondsFromBytes(uint64_t transfer_bytes) {
   constexpr double kGBInBytes = 1 * 1024 * 1024 * 1024;
@@ -318,7 +317,7 @@
       timeout_seconds);
   if (!file_streaming_timer_.IsRunning()) {
     file_streaming_timer_.Start(
-        FROM_HERE, base::TimeDelta::FromSeconds(timeout_seconds),
+        FROM_HERE, base::Seconds(timeout_seconds),
         base::BindOnce(&ShareInfoFileHandler::OnFileStreamingTimeout,
                        weak_ptr_factory_.GetWeakPtr(), timeout_message));
   }
diff --git a/chrome/browser/ash/arc/policy/arc_android_management_checker.cc b/chrome/browser/ash/arc/policy/arc_android_management_checker.cc
index 6d7c8e76c..edd3158 100644
--- a/chrome/browser/ash/arc/policy/arc_android_management_checker.cc
+++ b/chrome/browser/ash/arc/policy/arc_android_management_checker.cc
@@ -25,8 +25,8 @@
 
 namespace {
 
-constexpr base::TimeDelta kRetryDelayMin = base::TimeDelta::FromSeconds(10);
-constexpr base::TimeDelta kRetryDelayMax = base::TimeDelta::FromHours(1);
+constexpr base::TimeDelta kRetryDelayMin = base::Seconds(10);
+constexpr base::TimeDelta kRetryDelayMax = base::Hours(1);
 
 policy::DeviceManagementService* GetDeviceManagementService() {
   policy::BrowserPolicyConnectorAsh* const connector =
diff --git a/chrome/browser/ash/arc/policy/arc_policy_bridge.cc b/chrome/browser/ash/arc/policy/arc_policy_bridge.cc
index 6b75814d..d72aad40 100644
--- a/chrome/browser/ash/arc/policy/arc_policy_bridge.cc
+++ b/chrome/browser/ash/arc/policy/arc_policy_bridge.cc
@@ -387,22 +387,21 @@
 void UpdateFirstComplianceSinceSignInTiming(
     const base::TimeDelta& elapsed_time) {
   UMA_HISTOGRAM_CUSTOM_TIMES("Arc.FirstComplianceReportTime.SinceSignIn",
-                             elapsed_time, base::TimeDelta::FromSeconds(1),
-                             base::TimeDelta::FromMinutes(10), 50);
+                             elapsed_time, base::Seconds(1), base::Minutes(10),
+                             50);
 }
 
 void UpdateFirstComplianceSinceStartupTiming(
     const base::TimeDelta& elapsed_time) {
   UMA_HISTOGRAM_CUSTOM_TIMES("Arc.FirstComplianceReportTime.SinceStartup",
-                             elapsed_time, base::TimeDelta::FromSeconds(1),
-                             base::TimeDelta::FromMinutes(10), 50);
+                             elapsed_time, base::Seconds(1), base::Minutes(10),
+                             50);
 }
 
 void UpdateComplianceSinceUpdateTiming(const base::TimeDelta& elapsed_time) {
   UMA_HISTOGRAM_CUSTOM_TIMES("Arc.ComplianceReportSinceUpdateNotificationTime",
-                             elapsed_time,
-                             base::TimeDelta::FromMilliseconds(100),
-                             base::TimeDelta::FromMinutes(10), 50);
+                             elapsed_time, base::Milliseconds(100),
+                             base::Minutes(10), 50);
 }
 
 // Returns the SHA-256 hash of the JSON dump of the ARC policies, in the textual
diff --git a/chrome/browser/ash/arc/print_spooler/print_session_impl.cc b/chrome/browser/ash/arc/print_spooler/print_session_impl.cc
index 2ec3e7d..ec3bb79b 100644
--- a/chrome/browser/ash/arc/print_spooler/print_session_impl.cc
+++ b/chrome/browser/ash/arc/print_spooler/print_session_impl.cc
@@ -365,7 +365,7 @@
         FROM_HERE,
         base::BindOnce(&PrintSessionImpl::StartPrintAfterPluginIsLoaded,
                        weak_ptr_factory_.GetWeakPtr()),
-        base::TimeDelta::FromMilliseconds(100));
+        base::Milliseconds(100));
     LOG(WARNING) << "PDF plugin not ready yet.  Can't start print preview.";
     return;
   }
@@ -377,7 +377,7 @@
       FROM_HERE,
       base::BindOnce(&PrintSessionImpl::StartPrintNow,
                      weak_ptr_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(500));
+      base::Milliseconds(500));
 }
 
 void PrintSessionImpl::StartPrintNow() {
diff --git a/chrome/browser/ash/arc/process/arc_process_service.h b/chrome/browser/ash/arc/process/arc_process_service.h
index dbfb4f61..4e78f73 100644
--- a/chrome/browser/ash/arc/process/arc_process_service.h
+++ b/chrome/browser/ash/arc/process/arc_process_service.h
@@ -92,7 +92,7 @@
   // Also consider making ArcProcessService a push service rather than a pull
   // service.
   static constexpr base::TimeDelta kProcessSnapshotRefreshTime =
-      base::TimeDelta::FromSeconds(5);
+      base::Seconds(5);
 
   // Returns nullptr before the global instance is ready.
   static ArcProcessService* Get();
diff --git a/chrome/browser/ash/arc/session/arc_session_manager.cc b/chrome/browser/ash/arc/session/arc_session_manager.cc
index a1e2200c..a8b0b384 100644
--- a/chrome/browser/ash/arc/session/arc_session_manager.cc
+++ b/chrome/browser/ash/arc/session/arc_session_manager.cc
@@ -98,8 +98,7 @@
 constexpr const char kArcPrepareHostGeneratedDirJobName[] =
     "arc_2dprepare_2dhost_2dgenerated_2ddir";
 
-constexpr base::TimeDelta kWaitForPoliciesTimeout =
-    base::TimeDelta::FromSeconds(20);
+constexpr base::TimeDelta kWaitForPoliciesTimeout = base::Seconds(20);
 
 // Generates a unique, 20-character hex string from |chromeos_user| and
 // |salt| which can be used as Android's ro.boot.serialno and ro.serialno
@@ -132,9 +131,8 @@
 // timeout expires, keep ARC running in case the user wants to file feedback,
 // but present the UI to try again.
 base::TimeDelta GetArcSignInTimeout() {
-  constexpr base::TimeDelta kArcSignInTimeout = base::TimeDelta::FromMinutes(5);
-  constexpr base::TimeDelta kArcVmSignInTimeoutForVM =
-      base::TimeDelta::FromMinutes(20);
+  constexpr base::TimeDelta kArcSignInTimeout = base::Minutes(5);
+  constexpr base::TimeDelta kArcVmSignInTimeoutForVM = base::Minutes(20);
 
   if (chromeos::system::StatisticsProvider::GetInstance()->IsRunningOnVm() &&
       arc::IsArcVmEnabled()) {
diff --git a/chrome/browser/ash/arc/tracing/arc_app_performance_tracing.cc b/chrome/browser/ash/arc/tracing/arc_app_performance_tracing.cc
index d282586..fd7ac34 100644
--- a/chrome/browser/ash/arc/tracing/arc_app_performance_tracing.cc
+++ b/chrome/browser/ash/arc/tracing/arc_app_performance_tracing.cc
@@ -38,8 +38,7 @@
 namespace {
 
 // Tracing delay for jankinees.
-constexpr base::TimeDelta kJankinessTracingTime =
-    base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kJankinessTracingTime = base::Minutes(5);
 
 // Minimum number of frames for a jankiness tracing result to be valid.
 constexpr int kMinTotalFramesJankiness = 1000;
@@ -349,8 +348,7 @@
   // We can only calculate real numbers for initial data. Only report if first
   // time.
   if (first_time) {
-    const base::TimeDelta frameTime =
-        base::TimeDelta::FromMilliseconds(frameTime95);
+    const base::TimeDelta frameTime = base::Milliseconds(frameTime95);
     base::UmaHistogramTimes("Arc.Runtime.Performance.Generic.FrameTime",
                             frameTime);
     VLOG(1) << "Total Frames: " << framesTotal << " | "
diff --git a/chrome/browser/ash/arc/tracing/arc_app_performance_tracing_session.cc b/chrome/browser/ash/arc/tracing/arc_app_performance_tracing_session.cc
index 44c2ef35..d44a35a 100644
--- a/chrome/browser/ash/arc/tracing/arc_app_performance_tracing_session.cc
+++ b/chrome/browser/ash/arc/tracing/arc_app_performance_tracing_session.cc
@@ -20,7 +20,7 @@
 // TODO(khmel), detect this per device.
 constexpr uint64_t kTargetFps = 60;
 
-constexpr auto kTargetFrameTime = base::TimeDelta::FromSeconds(1) / kTargetFps;
+constexpr auto kTargetFrameTime = base::Seconds(1) / kTargetFps;
 
 // Used for detection the idle. App considered in idle state when there is no
 // any commit for |kIdleThresholdFrames| frames.
diff --git a/chrome/browser/ash/arc/tracing/arc_app_performance_tracing_test_helper.cc b/chrome/browser/ash/arc/tracing/arc_app_performance_tracing_test_helper.cc
index f9ea722..033afa3 100644
--- a/chrome/browser/ash/arc/tracing/arc_app_performance_tracing_test_helper.cc
+++ b/chrome/browser/ash/arc/tracing/arc_app_performance_tracing_test_helper.cc
@@ -88,10 +88,10 @@
 }
 
 void ArcAppPerformanceTracingTestHelper::PlayDefaultSequence() {
-  const base::TimeDelta normal_interval = base::TimeDelta::FromSeconds(1) / 60;
-  const base::TimeDelta error1 = base::TimeDelta::FromMicroseconds(100);
-  const base::TimeDelta error2 = base::TimeDelta::FromMicroseconds(200);
-  const base::TimeDelta error3 = base::TimeDelta::FromMicroseconds(300);
+  const base::TimeDelta normal_interval = base::Seconds(1) / 60;
+  const base::TimeDelta error1 = base::Microseconds(100);
+  const base::TimeDelta error2 = base::Microseconds(200);
+  const base::TimeDelta error3 = base::Microseconds(300);
   const std::vector<base::TimeDelta> sequence = {
       normal_interval + error1,
       normal_interval + error2,
diff --git a/chrome/browser/ash/arc/tracing/arc_app_performance_tracing_uma_session.cc b/chrome/browser/ash/arc/tracing/arc_app_performance_tracing_uma_session.cc
index e302a20..71bf393 100644
--- a/chrome/browser/ash/arc/tracing/arc_app_performance_tracing_uma_session.cc
+++ b/chrome/browser/ash/arc/tracing/arc_app_performance_tracing_uma_session.cc
@@ -15,15 +15,15 @@
 // Defines the delay to start tracing after ARC++ window gets activated.
 // This is done to avoid likely redundant statistics collection during the app
 // initialization/loading time.
-constexpr base::TimeDelta kInitTracingDelay = base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kInitTracingDelay = base::Minutes(1);
 
 // Defines the delay to start next session of capturing statistics for the same
 // active app or in case the app was already reported.
-constexpr base::TimeDelta kNextTracingDelay = base::TimeDelta::FromMinutes(20);
+constexpr base::TimeDelta kNextTracingDelay = base::Minutes(20);
 
 // Defines the period to capture tracing results. Can be overwritten for
 // testing.
-base::TimeDelta tracing_period = base::TimeDelta::FromSeconds(15);
+base::TimeDelta tracing_period = base::Seconds(15);
 
 std::string GetHistogramName(const std::string& category,
                              const std::string& name) {
diff --git a/chrome/browser/ash/arc/tracing/arc_app_performance_tracing_unittest.cc b/chrome/browser/ash/arc/tracing/arc_app_performance_tracing_unittest.cc
index 7b17bdba..2194d79a 100644
--- a/chrome/browser/ash/arc/tracing/arc_app_performance_tracing_unittest.cc
+++ b/chrome/browser/ash/arc/tracing/arc_app_performance_tracing_unittest.cc
@@ -34,8 +34,7 @@
 constexpr char kNonFocusAppActivity[] = "nonfocus.app.package.Activity";
 
 // For 20 frames.
-constexpr base::TimeDelta kTestPeriod =
-    base::TimeDelta::FromSeconds(1) / (60 / 20);
+constexpr base::TimeDelta kTestPeriod = base::Seconds(1) / (60 / 20);
 
 constexpr int kMillisecondsToFirstFrame = 500;
 
@@ -188,7 +187,7 @@
 
 TEST_F(ArcAppPerformanceTracingTest, TracingStoppedOnIdle) {
   views::Widget* const arc_widget = StartArcFocusAppTracing();
-  const base::TimeDelta normal_interval = base::TimeDelta::FromSeconds(1) / 60;
+  const base::TimeDelta normal_interval = base::Seconds(1) / 60;
   base::Time timestamp = base::Time::Now();
   tracing_helper().GetTracingSession()->OnCommitForTesting(timestamp);
   // Expected updates;
@@ -264,7 +263,7 @@
   // Succesful report after launch
   ArcAppListPrefs::Get(profile())->SetLaunchRequestTimeForTesting(app_id,
                                                                   timestamp);
-  timestamp += base::TimeDelta::FromMilliseconds(kMillisecondsToFirstFrame);
+  timestamp += base::Milliseconds(kMillisecondsToFirstFrame);
   tracing_helper().GetTracing()->HandleActiveAppRendered(timestamp);
   histogram = base::StatisticsRecorder::FindHistogram(
       "Arc.Runtime.Performance.Generic.FirstFrameRendered");
@@ -276,7 +275,7 @@
   EXPECT_EQ(kMillisecondsToFirstFrame, samples->sum());
 
   // No double report
-  timestamp += base::TimeDelta::FromMilliseconds(kMillisecondsToFirstFrame);
+  timestamp += base::Milliseconds(kMillisecondsToFirstFrame);
   tracing_helper().GetTracing()->HandleActiveAppRendered(timestamp);
 
   samples = histogram->SnapshotDelta();
diff --git a/chrome/browser/ash/arc/tracing/arc_graphics_jank_detector.h b/chrome/browser/ash/arc/tracing/arc_graphics_jank_detector.h
index d651f53..102ad29 100644
--- a/chrome/browser/ash/arc/tracing/arc_graphics_jank_detector.h
+++ b/chrome/browser/ash/arc/tracing/arc_graphics_jank_detector.h
@@ -49,7 +49,7 @@
   // Constant to detect pause to reduce the chance of triggering jank detection
   // in case Android app just not producing the samples due to inactivity.
   static constexpr base::TimeDelta kPauseDetectionThreshold =
-      base::TimeDelta::FromSecondsD(0.25);
+      base::Seconds(0.25);
 
   // Threshold relative to the normal rate to consider the current frame as a
   // jank if its duration longer than this threshold.
diff --git a/chrome/browser/ash/arc/tracing/arc_system_stat_collector.cc b/chrome/browser/ash/arc/tracing/arc_system_stat_collector.cc
index cce4a23..890198f 100644
--- a/chrome/browser/ash/arc/tracing/arc_system_stat_collector.cc
+++ b/chrome/browser/ash/arc/tracing/arc_system_stat_collector.cc
@@ -35,8 +35,7 @@
 namespace {
 
 // Interval to update system stats.
-constexpr base::TimeDelta kSystemStatUpdateInterval =
-    base::TimeDelta::FromMilliseconds(10);
+constexpr base::TimeDelta kSystemStatUpdateInterval = base::Milliseconds(10);
 
 const base::FilePath::CharType kZramPath[] =
     FILE_PATH_LITERAL("/sys/block/zram0/stat");
@@ -530,7 +529,7 @@
     return false;
   }
 
-  max_interval_ = base::TimeDelta::FromMicroseconds(max_interval_mcs);
+  max_interval_ = base::Microseconds(max_interval_mcs);
 
   const base::Value* sample_list =
       root.FindKeyOfType(kKeySamples, base::Value::Type::LIST);
@@ -549,8 +548,7 @@
         !base::StringToInt64(timestamp->GetString(), &timestamp_mcs))
       return false;
 
-    sample.timestamp =
-        base::TimeTicks() + base::TimeDelta::FromMicroseconds(timestamp_mcs);
+    sample.timestamp = base::TimeTicks() + base::Microseconds(timestamp_mcs);
 
     if (!ReadNonNegativeInt(sample_entry, kKeySwapSectorsRead,
                             &sample.swap_sectors_read) ||
diff --git a/chrome/browser/ash/arc/tracing/arc_tracing_graphics_model.cc b/chrome/browser/ash/arc/tracing/arc_tracing_graphics_model.cc
index fd133f1..dee006f0 100644
--- a/chrome/browser/ash/arc/tracing/arc_tracing_graphics_model.cc
+++ b/chrome/browser/ash/arc/tracing/arc_tracing_graphics_model.cc
@@ -1281,7 +1281,7 @@
 
   for (const auto& it : pulse_events) {
     jank_detector.OnSample(base::Time::FromDeltaSinceWindowsEpoch(
-        base::TimeDelta::FromMicroseconds(it.timestamp)));
+        base::Microseconds(it.timestamp)));
     if (jank_detector.stage() == ArcGraphicsJankDetector::Stage::kActive)
       break;
   }
@@ -1293,7 +1293,7 @@
   jank_detector.SetPeriodFixed(jank_detector.period());
   for (const auto& it : pulse_events) {
     jank_detector.OnSample(base::Time::FromDeltaSinceWindowsEpoch(
-        base::TimeDelta::FromMicroseconds(it.timestamp)));
+        base::Microseconds(it.timestamp)));
   }
 }
 
diff --git a/chrome/browser/ash/attestation/enrollment_certificate_uploader_impl.cc b/chrome/browser/ash/attestation/enrollment_certificate_uploader_impl.cc
index a2183c5..aef33497 100644
--- a/chrome/browser/ash/attestation/enrollment_certificate_uploader_impl.cc
+++ b/chrome/browser/ash/attestation/enrollment_certificate_uploader_impl.cc
@@ -25,7 +25,7 @@
 namespace {
 
 // Constants for retrying certificate obtention and upload.
-constexpr base::TimeDelta kRetryDelay = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kRetryDelay = base::Seconds(5);
 const int kRetryLimit = 100;
 
 void DBusPrivacyCACallback(
diff --git a/chrome/browser/ash/attestation/enrollment_id_upload_manager.cc b/chrome/browser/ash/attestation/enrollment_id_upload_manager.cc
index 7d6c063..d91b0989 100644
--- a/chrome/browser/ash/attestation/enrollment_id_upload_manager.cc
+++ b/chrome/browser/ash/attestation/enrollment_id_upload_manager.cc
@@ -165,7 +165,7 @@
         FROM_HERE,
         base::BindOnce(&EnrollmentIdUploadManager::GetEnrollmentId,
                        weak_factory_.GetWeakPtr()),
-        base::TimeDelta::FromSeconds(retry_delay_));
+        base::Seconds(retry_delay_));
   } else {
     LOG(WARNING) << "EnrollmentIdUploadManager: Retry limit exceeded.";
     request_in_flight_ = false;
diff --git a/chrome/browser/ash/attestation/fake_certificate.cc b/chrome/browser/ash/attestation/fake_certificate.cc
index 3b39e46..fd92b61e 100644
--- a/chrome/browser/ash/attestation/fake_certificate.cc
+++ b/chrome/browser/ash/attestation/fake_certificate.cc
@@ -54,10 +54,10 @@
 
 bool GetFakeCertificateDER(const base::TimeDelta& expiry,
                            std::string* certificate) {
-  base::Time valid_start = base::Time::Now() - base::TimeDelta::FromDays(1);
+  base::Time valid_start = base::Time::Now() - base::Days(1);
   base::Time valid_expiry = base::Time::Now() + expiry;
   if (valid_expiry <= valid_start) {
-    valid_start = valid_expiry - base::TimeDelta::FromDays(1);
+    valid_start = valid_expiry - base::Days(1);
   }
   std::unique_ptr<crypto::RSAPrivateKey> test_key(
       crypto::RSAPrivateKey::CreateFromPrivateKeyInfo(std::vector<uint8_t>(
diff --git a/chrome/browser/ash/attestation/machine_certificate_uploader_impl.cc b/chrome/browser/ash/attestation/machine_certificate_uploader_impl.cc
index 2bbddf6..e663ccc 100644
--- a/chrome/browser/ash/attestation/machine_certificate_uploader_impl.cc
+++ b/chrome/browser/ash/attestation/machine_certificate_uploader_impl.cc
@@ -201,8 +201,7 @@
       LOG(WARNING) << "Failed to parse certificate, cannot check expiry.";
       continue;
     }
-    const base::TimeDelta threshold =
-        base::TimeDelta::FromDays(kExpiryThresholdInDays);
+    const base::TimeDelta threshold = base::Days(kExpiryThresholdInDays);
     if ((base::Time::Now() + threshold) > x509->valid_expiry()) {
       // The certificate has expired or will soon, replace it.
       GetNewCertificate();
@@ -308,7 +307,7 @@
         FROM_HERE,
         base::BindOnce(&MachineCertificateUploaderImpl::Start,
                        weak_factory_.GetWeakPtr()),
-        base::TimeDelta::FromSeconds(retry_delay_));
+        base::Seconds(retry_delay_));
   } else {
     LOG(WARNING) << "MachineCertificateUploaderImpl: Retry limit exceeded.";
     certificate_uploaded_ = false;
diff --git a/chrome/browser/ash/attestation/machine_certificate_uploader_impl_unittest.cc b/chrome/browser/ash/attestation/machine_certificate_uploader_impl_unittest.cc
index f100f321..355ec02 100644
--- a/chrome/browser/ash/attestation/machine_certificate_uploader_impl_unittest.cc
+++ b/chrome/browser/ash/attestation/machine_certificate_uploader_impl_unittest.cc
@@ -302,8 +302,7 @@
 
 TEST_P(MachineCertificateUploaderTest, KeyExistsNotUploaded) {
   std::string certificate;
-  ASSERT_TRUE(GetFakeCertificatePEM(base::TimeDelta::FromDays(kCertValid),
-                                    &certificate));
+  ASSERT_TRUE(GetFakeCertificatePEM(base::Days(kCertValid), &certificate));
   SetupMocks(MOCK_KEY_EXISTS, certificate);
   RunUploader();
   EXPECT_EQ(CreatePayload(),
@@ -315,24 +314,22 @@
 
 TEST_P(MachineCertificateUploaderTest, KeyExistsAlreadyUploaded) {
   std::string certificate;
-  ASSERT_TRUE(GetFakeCertificatePEM(base::TimeDelta::FromDays(kCertValid),
-                                    &certificate));
+  ASSERT_TRUE(GetFakeCertificatePEM(base::Days(kCertValid), &certificate));
   SetupMocks(MOCK_KEY_EXISTS | MOCK_KEY_UPLOADED, certificate);
   RunUploader();
 }
 
 TEST_P(MachineCertificateUploaderTest, KeyExistsCertExpiringSoon) {
   std::string certificate;
-  ASSERT_TRUE(GetFakeCertificatePEM(
-      base::TimeDelta::FromDays(kCertExpiringSoon), &certificate));
+  ASSERT_TRUE(
+      GetFakeCertificatePEM(base::Days(kCertExpiringSoon), &certificate));
   SetupMocks(MOCK_KEY_EXISTS | MOCK_KEY_UPLOADED | MOCK_NEW_KEY, certificate);
   RunUploader();
 }
 
 TEST_P(MachineCertificateUploaderTest, KeyExistsCertExpired) {
   std::string certificate;
-  ASSERT_TRUE(GetFakeCertificatePEM(base::TimeDelta::FromDays(kCertExpired),
-                                    &certificate));
+  ASSERT_TRUE(GetFakeCertificatePEM(base::Days(kCertExpired), &certificate));
   SetupMocks(MOCK_KEY_EXISTS | MOCK_KEY_UPLOADED | MOCK_NEW_KEY, certificate);
   RunUploader();
 }
diff --git a/chrome/browser/ash/attestation/platform_verification_flow.cc b/chrome/browser/ash/attestation/platform_verification_flow.cc
index 9b049f8..b636fdec 100644
--- a/chrome/browser/ash/attestation/platform_verification_flow.cc
+++ b/chrome/browser/ash/attestation/platform_verification_flow.cc
@@ -106,7 +106,7 @@
     : attestation_flow_(NULL),
       attestation_client_(AttestationClient::Get()),
       delegate_(NULL),
-      timeout_delay_(base::TimeDelta::FromSeconds(kTimeoutInSeconds)) {
+      timeout_delay_(base::Seconds(kTimeoutInSeconds)) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
   std::unique_ptr<ServerProxy> attestation_ca_client(new AttestationCAClient());
   default_attestation_flow_ = std::make_unique<AttestationFlowAdaptive>(
@@ -123,7 +123,7 @@
     : attestation_flow_(attestation_flow),
       attestation_client_(attestation_client),
       delegate_(delegate),
-      timeout_delay_(base::TimeDelta::FromSeconds(kTimeoutInSeconds)) {
+      timeout_delay_(base::Seconds(kTimeoutInSeconds)) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
   if (!delegate_) {
     default_delegate_ = std::make_unique<DefaultDelegate>();
@@ -359,7 +359,7 @@
       return EXPIRY_STATUS_EXPIRED;
     }
     base::TimeDelta threshold =
-        base::TimeDelta::FromDays(kOpportunisticRenewalThresholdInDays);
+        base::Days(kOpportunisticRenewalThresholdInDays);
     if (x509->valid_expiry() - base::Time::Now() < threshold) {
       is_expiring_soon = true;
     }
diff --git a/chrome/browser/ash/attestation/platform_verification_flow_unittest.cc b/chrome/browser/ash/attestation/platform_verification_flow_unittest.cc
index f10eeb3..5107f1c 100644
--- a/chrome/browser/ash/attestation/platform_verification_flow_unittest.cc
+++ b/chrome/browser/ash/attestation/platform_verification_flow_unittest.cc
@@ -234,7 +234,7 @@
 }
 
 TEST_F(PlatformVerificationFlowTest, Timeout) {
-  verifier_->set_timeout_delay(base::TimeDelta::FromSeconds(0));
+  verifier_->set_timeout_delay(base::Seconds(0));
   ExpectAttestationFlow();
   verifier_->ChallengePlatformKey(mock_user_manager_.GetActiveUser(), kTestID,
                                   kTestChallenge, CreateChallengeCallback());
@@ -245,14 +245,13 @@
 TEST_F(PlatformVerificationFlowTest, ExpiredCert) {
   ExpectAttestationFlow();
   fake_certificate_list_.resize(3);
-  ASSERT_TRUE(GetFakeCertificatePEM(base::TimeDelta::FromDays(-1),
-                                    &fake_certificate_list_[0]));
-  ASSERT_TRUE(GetFakeCertificatePEM(base::TimeDelta::FromDays(1),
-                                    &fake_certificate_list_[1]));
+  ASSERT_TRUE(
+      GetFakeCertificatePEM(base::Days(-1), &fake_certificate_list_[0]));
+  ASSERT_TRUE(GetFakeCertificatePEM(base::Days(1), &fake_certificate_list_[1]));
   // This is the opportunistic renewal certificate. Send it back expired to test
   // that it does not pass through the certificate expiry check again.
-  ASSERT_TRUE(GetFakeCertificatePEM(base::TimeDelta::FromDays(-1),
-                                    &fake_certificate_list_[2]));
+  ASSERT_TRUE(
+      GetFakeCertificatePEM(base::Days(-1), &fake_certificate_list_[2]));
   verifier_->ChallengePlatformKey(mock_user_manager_.GetActiveUser(), kTestID,
                                   kTestChallenge, CreateChallengeCallback());
   base::RunLoop().RunUntilIdle();
@@ -267,13 +266,12 @@
   ExpectAttestationFlow();
   fake_certificate_list_.resize(2);
   std::string leaf_cert;
-  ASSERT_TRUE(GetFakeCertificatePEM(base::TimeDelta::FromDays(60), &leaf_cert));
+  ASSERT_TRUE(GetFakeCertificatePEM(base::Days(60), &leaf_cert));
   std::string intermediate_cert;
-  ASSERT_TRUE(
-      GetFakeCertificatePEM(base::TimeDelta::FromDays(-1), &intermediate_cert));
+  ASSERT_TRUE(GetFakeCertificatePEM(base::Days(-1), &intermediate_cert));
   fake_certificate_list_[0] = leaf_cert + intermediate_cert;
-  ASSERT_TRUE(GetFakeCertificatePEM(base::TimeDelta::FromDays(90),
-                                    &fake_certificate_list_[1]));
+  ASSERT_TRUE(
+      GetFakeCertificatePEM(base::Days(90), &fake_certificate_list_[1]));
   verifier_->ChallengePlatformKey(mock_user_manager_.GetActiveUser(), kTestID,
                                   kTestChallenge, CreateChallengeCallback());
   base::RunLoop().RunUntilIdle();
@@ -286,8 +284,7 @@
 TEST_F(PlatformVerificationFlowTest, AsyncRenewalMultipleHits) {
   ExpectAttestationFlow();
   fake_certificate_list_.resize(4);
-  ASSERT_TRUE(GetFakeCertificatePEM(base::TimeDelta::FromDays(1),
-                                    &fake_certificate_list_[0]));
+  ASSERT_TRUE(GetFakeCertificatePEM(base::Days(1), &fake_certificate_list_[0]));
   std::fill(fake_certificate_list_.begin() + 1, fake_certificate_list_.end(),
             fake_certificate_list_[0]);
   verifier_->ChallengePlatformKey(mock_user_manager_.GetActiveUser(), kTestID,
diff --git a/chrome/browser/ash/attestation/tpm_challenge_key_subtle_unittest.cc b/chrome/browser/ash/attestation/tpm_challenge_key_subtle_unittest.cc
index 904262d..de3aebd 100644
--- a/chrome/browser/ash/attestation/tpm_challenge_key_subtle_unittest.cc
+++ b/chrome/browser/ash/attestation/tpm_challenge_key_subtle_unittest.cc
@@ -785,7 +785,7 @@
       callback_observer.GetCallback(), /*signals=*/absl::nullopt);
 
   // |challenge_key_subtle_| should wait until the certificate is uploaded.
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(10));
+  task_environment_.FastForwardBy(base::Minutes(10));
   EXPECT_FALSE(callback_observer.IsResultReceived());
 
   // Emulate callback from the certificate uploader, |challenge_key_subtle_|
diff --git a/chrome/browser/ash/authpolicy/authpolicy_credentials_manager.cc b/chrome/browser/ash/authpolicy/authpolicy_credentials_manager.cc
index a2f9864..a035d20 100644
--- a/chrome/browser/ash/authpolicy/authpolicy_credentials_manager.cc
+++ b/chrome/browser/ash/authpolicy/authpolicy_credentials_manager.cc
@@ -46,8 +46,7 @@
 
 using ::chromeos::AuthPolicyClient;
 
-constexpr base::TimeDelta kGetUserStatusCallsInterval =
-    base::TimeDelta::FromHours(1);
+constexpr base::TimeDelta kGetUserStatusCallsInterval = base::Hours(1);
 constexpr char kProfileSigninNotificationId[] = "chrome://settings/signin/";
 
 // Sets up Chrome OS Account Manager.
diff --git a/chrome/browser/ash/bluetooth/debug_logs_manager.cc b/chrome/browser/ash/bluetooth/debug_logs_manager.cc
index 827ebb63..aab695e 100644
--- a/chrome/browser/ash/bluetooth/debug_logs_manager.cc
+++ b/chrome/browser/ash/bluetooth/debug_logs_manager.cc
@@ -24,7 +24,7 @@
 const uint8_t kVerboseBasicLevel = 1;
 
 const int kDbusRetryCount = 10;
-constexpr base::TimeDelta kDbusRetryInterval = base::TimeDelta::FromSeconds(3);
+constexpr base::TimeDelta kDbusRetryInterval = base::Seconds(3);
 }  // namespace
 
 DebugLogsManager::DebugLogsManager(const std::string& primary_user_email,
diff --git a/chrome/browser/ash/borealis/borealis_context.cc b/chrome/browser/ash/borealis/borealis_context.cc
index 2e14702..b9077365 100644
--- a/chrome/browser/ash/borealis/borealis_context.cc
+++ b/chrome/browser/ash/borealis/borealis_context.cc
@@ -102,7 +102,7 @@
                       base::BindOnce(&BorealisLifetimeObserver::OnDelayComplete,
                                      weak_factory_.GetWeakPtr(), std::move(url),
                                      app_id),
-                      base::TimeDelta::FromSeconds(5)));
+                      base::Seconds(5)));
     }
   }
 
diff --git a/chrome/browser/ash/borealis/borealis_installer_impl.cc b/chrome/browser/ash/borealis/borealis_installer_impl.cc
index e31fd49..b45e41a 100644
--- a/chrome/browser/ash/borealis/borealis_installer_impl.cc
+++ b/chrome/browser/ash/borealis/borealis_installer_impl.cc
@@ -34,8 +34,7 @@
 
 // Time to wait for borealis' main app to appear. This is done almost
 // immediately by garcon on launch so a short timeout is sufficient.
-constexpr base::TimeDelta kWaitForMainAppTimeout =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kWaitForMainAppTimeout = base::Seconds(5);
 
 }  // namespace
 
@@ -468,7 +467,7 @@
     base::TimeDelta duration =
         in_progress_installation_
             ? base::TimeTicks::Now() - in_progress_installation_->start_time()
-            : base::TimeDelta::FromSeconds(0);
+            : base::Seconds(0);
     in_progress_installation_.reset();
     installing_state_ = InstallingState::kInactive;
     if (result == BorealisInstallResult::kSuccess) {
diff --git a/chrome/browser/ash/borealis/borealis_installer_unittest.cc b/chrome/browser/ash/borealis/borealis_installer_unittest.cc
index e0a3c8e2..4e74117 100644
--- a/chrome/browser/ash/borealis/borealis_installer_unittest.cc
+++ b/chrome/browser/ash/borealis/borealis_installer_unittest.cc
@@ -343,7 +343,7 @@
           }));
 
   // Set a zero timeout otherwise the in-progress timeout gets cleaned up.
-  installer_impl_->SetMainAppTimeoutForTesting(base::TimeDelta::FromSeconds(0));
+  installer_impl_->SetMainAppTimeoutForTesting(base::Seconds(0));
 
   EXPECT_CALL(*observer_,
               OnInstallationEnded(BorealisInstallResult::kMainAppNotPresent));
diff --git a/chrome/browser/ash/borealis/borealis_launch_watcher.h b/chrome/browser/ash/borealis/borealis_launch_watcher.h
index 3d147bc..974fc1b 100644
--- a/chrome/browser/ash/borealis/borealis_launch_watcher.h
+++ b/chrome/browser/ash/borealis/borealis_launch_watcher.h
@@ -45,7 +45,7 @@
 
   std::string owner_id_;
   std::string vm_name_;
-  base::TimeDelta timeout_ = base::TimeDelta::FromSeconds(30);
+  base::TimeDelta timeout_ = base::Seconds(30);
   absl::optional<vm_tools::cicerone::ContainerStartedSignal>
       container_started_signal_;
   base::queue<OnLaunchCallback> callback_queue_;
diff --git a/chrome/browser/ash/borealis/borealis_launch_watcher_unittest.cc b/chrome/browser/ash/borealis/borealis_launch_watcher_unittest.cc
index 3721dab8..5c85a345 100644
--- a/chrome/browser/ash/borealis/borealis_launch_watcher_unittest.cc
+++ b/chrome/browser/ash/borealis/borealis_launch_watcher_unittest.cc
@@ -50,7 +50,7 @@
 TEST_F(BorealisLaunchWatcherTest, VmTimesOutCallbackRan) {
   CallbackFactory callback_expectation;
   BorealisLaunchWatcher watcher(profile_, "FooVm");
-  watcher.SetTimeoutForTesting(base::TimeDelta::FromMilliseconds(0));
+  watcher.SetTimeoutForTesting(base::Milliseconds(0));
 
   EXPECT_CALL(callback_expectation,
               Call(absl::optional<std::string>(absl::nullopt)));
@@ -98,7 +98,7 @@
 TEST_F(BorealisLaunchWatcherTest, VmTimesOutMultipleCallbacksRan) {
   CallbackFactory callback_expectation;
   BorealisLaunchWatcher watcher(profile_, "FooVm");
-  watcher.SetTimeoutForTesting(base::TimeDelta::FromMilliseconds(0));
+  watcher.SetTimeoutForTesting(base::Milliseconds(0));
 
   EXPECT_CALL(callback_expectation,
               Call(absl::optional<std::string>(absl::nullopt)))
@@ -112,7 +112,7 @@
 TEST_F(BorealisLaunchWatcherTest, OtherVmsStartBorealisTimesOutCallbackRan) {
   CallbackFactory callback_expectation;
   BorealisLaunchWatcher watcher(profile_, "FooVm");
-  watcher.SetTimeoutForTesting(base::TimeDelta::FromMilliseconds(0));
+  watcher.SetTimeoutForTesting(base::Milliseconds(0));
   vm_tools::cicerone::ContainerStartedSignal signal1;
   signal1.set_owner_id("not-the-owner");
   signal1.set_vm_name("FooVm");
diff --git a/chrome/browser/ash/borealis/borealis_shutdown_monitor.cc b/chrome/browser/ash/borealis/borealis_shutdown_monitor.cc
index 6169561..cd76a8a 100644
--- a/chrome/browser/ash/borealis/borealis_shutdown_monitor.cc
+++ b/chrome/browser/ash/borealis/borealis_shutdown_monitor.cc
@@ -12,7 +12,7 @@
 namespace {
 
 // The default time period used when initiating delayed shutdowns.
-constexpr base::TimeDelta kDefaultDelay = base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kDefaultDelay = base::Seconds(60);
 
 }  // namespace
 
diff --git a/chrome/browser/ash/borealis/borealis_shutdown_monitor_unittest.cc b/chrome/browser/ash/borealis/borealis_shutdown_monitor_unittest.cc
index ea38c82..6066d11 100644
--- a/chrome/browser/ash/borealis/borealis_shutdown_monitor_unittest.cc
+++ b/chrome/browser/ash/borealis/borealis_shutdown_monitor_unittest.cc
@@ -45,7 +45,7 @@
 TEST_F(BorealisShutdownMonitorTest, CanShutdownWithDelay) {
   BorealisShutdownMonitor monitor(profile());
 
-  monitor.SetShutdownDelayForTesting(base::TimeDelta::FromSeconds(0));
+  monitor.SetShutdownDelayForTesting(base::Seconds(0));
   monitor.ShutdownWithDelay();
 
   EXPECT_CALL(context_manager_mock_, ShutDownBorealis(testing::_));
@@ -57,7 +57,7 @@
 
   EXPECT_CALL(context_manager_mock_, ShutDownBorealis(testing::_)).Times(0);
 
-  monitor.SetShutdownDelayForTesting(base::TimeDelta::FromSeconds(0));
+  monitor.SetShutdownDelayForTesting(base::Seconds(0));
   monitor.ShutdownWithDelay();
 
   monitor.CancelDelayedShutdown();
@@ -69,11 +69,11 @@
 
   EXPECT_CALL(context_manager_mock_, ShutDownBorealis(testing::_)).Times(0);
 
-  monitor.SetShutdownDelayForTesting(base::TimeDelta::FromSeconds(0));
+  monitor.SetShutdownDelayForTesting(base::Seconds(0));
   monitor.ShutdownWithDelay();
 
   // I'm assuming this thread won't be idle for 99 seconds.
-  monitor.SetShutdownDelayForTesting(base::TimeDelta::FromSeconds(99));
+  monitor.SetShutdownDelayForTesting(base::Seconds(99));
   monitor.ShutdownWithDelay();
 
   task_environment_.RunUntilIdle();
@@ -84,7 +84,7 @@
 
   EXPECT_CALL(context_manager_mock_, ShutDownBorealis(testing::_)).Times(0);
 
-  monitor->SetShutdownDelayForTesting(base::TimeDelta::FromSeconds(0));
+  monitor->SetShutdownDelayForTesting(base::Seconds(0));
   monitor->ShutdownWithDelay();
   monitor.reset();
 
diff --git a/chrome/browser/ash/borealis/borealis_task_unittest.cc b/chrome/browser/ash/borealis/borealis_task_unittest.cc
index b1e44024..368ad258 100644
--- a/chrome/browser/ash/borealis/borealis_task_unittest.cc
+++ b/chrome/browser/ash/borealis/borealis_task_unittest.cc
@@ -219,8 +219,7 @@
       Call(BorealisStartupResult::kAwaitBorealisStartupFailed, StrNe("")));
 
   AwaitBorealisStartup task(context_->profile(), context_->vm_name());
-  task.GetWatcherForTesting().SetTimeoutForTesting(
-      base::TimeDelta::FromMilliseconds(0));
+  task.GetWatcherForTesting().SetTimeoutForTesting(base::Milliseconds(0));
   task.Run(context_.get(), callback_factory.BindOnce());
   task_environment_.RunUntilIdle();
 }
diff --git a/chrome/browser/ash/camera_mic/vm_camera_mic_manager.h b/chrome/browser/ash/camera_mic/vm_camera_mic_manager.h
index c9958b7e..3d82aeae 100644
--- a/chrome/browser/ash/camera_mic/vm_camera_mic_manager.h
+++ b/chrome/browser/ash/camera_mic/vm_camera_mic_manager.h
@@ -50,8 +50,7 @@
       (1 << static_cast<size_t>(DeviceType::kMic)) |
       (1 << static_cast<size_t>(DeviceType::kCamera))};
 
-  static constexpr base::TimeDelta kDebounceTime =
-      base::TimeDelta::FromMilliseconds(300);
+  static constexpr base::TimeDelta kDebounceTime = base::Milliseconds(300);
 
   class Observer : public base::CheckedObserver {
    public:
diff --git a/chrome/browser/ash/cert_provisioning/cert_provisioning_common.cc b/chrome/browser/ash/cert_provisioning/cert_provisioning_common.cc
index c026474..3b737a58 100644
--- a/chrome/browser/ash/cert_provisioning/cert_provisioning_common.cc
+++ b/chrome/browser/ash/cert_provisioning/cert_provisioning_common.cc
@@ -159,8 +159,7 @@
   result.name = name ? *name : std::string();
   result.policy_version = *policy_version;
   result.is_va_enabled = is_va_enabled.value_or(true);
-  result.renewal_period =
-      base::TimeDelta::FromSeconds(renewal_period_sec.value_or(0));
+  result.renewal_period = base::Seconds(renewal_period_sec.value_or(0));
 
   return result;
 }
diff --git a/chrome/browser/ash/cert_provisioning/cert_provisioning_common.h b/chrome/browser/ash/cert_provisioning/cert_provisioning_common.h
index 1afde83..3c4a622 100644
--- a/chrome/browser/ash/cert_provisioning/cert_provisioning_common.h
+++ b/chrome/browser/ash/cert_provisioning/cert_provisioning_common.h
@@ -111,7 +111,7 @@
   bool is_va_enabled = true;
   // Default renewal period 0 means that a certificate will be renewed only
   // after the previous one has expired (0 seconds before it is expires).
-  base::TimeDelta renewal_period = base::TimeDelta::FromSeconds(0);
+  base::TimeDelta renewal_period = base::Seconds(0);
 
   // IMPORTANT:
   // Increment this when you add/change any member in CertProfile (and update
diff --git a/chrome/browser/ash/cert_provisioning/cert_provisioning_metrics.cc b/chrome/browser/ash/cert_provisioning/cert_provisioning_metrics.cc
index b0131cc..d728009 100644
--- a/chrome/browser/ash/cert_provisioning/cert_provisioning_metrics.cc
+++ b/chrome/browser/ash/cert_provisioning/cert_provisioning_metrics.cc
@@ -55,20 +55,17 @@
 
 void RecordKeypairGenerationTime(CertScope scope, base::TimeDelta sample) {
   base::UmaHistogramCustomTimes(kKeypairGenerationTime[ToIdx(scope)], sample,
-                                base::TimeDelta::FromMilliseconds(1),
-                                base::TimeDelta::FromMinutes(2), 25);
+                                base::Milliseconds(1), base::Minutes(2), 25);
 }
 
 void RecordVerifiedAccessTime(CertScope scope, base::TimeDelta sample) {
   base::UmaHistogramCustomTimes(kVaTime[ToIdx(scope)], sample,
-                                base::TimeDelta::FromMilliseconds(1),
-                                base::TimeDelta::FromMinutes(2), 25);
+                                base::Milliseconds(1), base::Minutes(2), 25);
 }
 
 void RecordCsrSignTime(CertScope scope, base::TimeDelta sample) {
   base::UmaHistogramCustomTimes(kSignCsrTime[ToIdx(scope)], sample,
-                                base::TimeDelta::FromMilliseconds(1),
-                                base::TimeDelta::FromMinutes(2), 25);
+                                base::Milliseconds(1), base::Minutes(2), 25);
 }
 
 }  // namespace cert_provisioning
diff --git a/chrome/browser/ash/cert_provisioning/cert_provisioning_platform_keys_helpers_unittest.cc b/chrome/browser/ash/cert_provisioning/cert_provisioning_platform_keys_helpers_unittest.cc
index ab9b5d6e0..4efe028 100644
--- a/chrome/browser/ash/cert_provisioning/cert_provisioning_platform_keys_helpers_unittest.cc
+++ b/chrome/browser/ash/cert_provisioning/cert_provisioning_platform_keys_helpers_unittest.cc
@@ -360,8 +360,8 @@
   const char kCertId2[] = "id2";
 
   base::Time t1 = base::Time::Now();
-  base::Time t2 = t1 + base::TimeDelta::FromDays(30);
-  base::Time t3 = t2 + base::TimeDelta::FromDays(30);
+  base::Time t2 = t1 + base::Days(30);
+  base::Time t3 = t2 + base::Days(30);
 
   auto cert = certificate_helper_.AddCert(kCertScope, kRenewedCertId,
                                           Status::kSuccess, t1, t2);
diff --git a/chrome/browser/ash/cert_provisioning/cert_provisioning_scheduler.cc b/chrome/browser/ash/cert_provisioning/cert_provisioning_scheduler.cc
index 3f68aca4..bd305b2 100644
--- a/chrome/browser/ash/cert_provisioning/cert_provisioning_scheduler.cc
+++ b/chrome/browser/ash/cert_provisioning/cert_provisioning_scheduler.cc
@@ -49,8 +49,7 @@
   container.erase(iter);
 }
 
-const base::TimeDelta kInconsistentDataErrorRetryDelay =
-    base::TimeDelta::FromSeconds(30);
+const base::TimeDelta kInconsistentDataErrorRetryDelay = base::Seconds(30);
 
 policy::CloudPolicyClient* GetCloudPolicyClientForUser(Profile* profile) {
   policy::UserCloudPolicyManagerAsh* user_cloud_policy_manager =
@@ -181,7 +180,7 @@
       FROM_HERE,
       base::BindOnce(&CertProvisioningSchedulerImpl::DailyUpdateCerts,
                      weak_factory_.GetWeakPtr()),
-      base::TimeDelta::FromDays(1));
+      base::Days(1));
 }
 
 void CertProvisioningSchedulerImpl::ScheduleRetry(
@@ -432,7 +431,7 @@
       continue;
     }
 
-    if ((now + base::TimeDelta::FromDays(1) + profile.renewal_period) >=
+    if ((now + base::Days(1) + profile.renewal_period) >=
         cert->valid_expiry()) {
       // The certificate should be renewed within 1 day.
       base::Time target_time = cert->valid_expiry() - profile.renewal_period;
diff --git a/chrome/browser/ash/cert_provisioning/cert_provisioning_serializer.cc b/chrome/browser/ash/cert_provisioning/cert_provisioning_serializer.cc
index 6df0c81..2710d27b 100644
--- a/chrome/browser/ash/cert_provisioning/cert_provisioning_serializer.cc
+++ b/chrome/browser/ash/cert_provisioning/cert_provisioning_serializer.cc
@@ -78,7 +78,7 @@
                               const char* value_name,
                               base::TimeDelta* dst) {
   absl::optional<int> serialized_time = parent_value.FindIntKey(value_name);
-  *dst = base::TimeDelta::FromSeconds(serialized_time.value_or(0));
+  *dst = base::Seconds(serialized_time.value_or(0));
   return true;
 }
 
diff --git a/chrome/browser/ash/cert_provisioning/cert_provisioning_test_helpers.cc b/chrome/browser/ash/cert_provisioning/cert_provisioning_test_helpers.cc
index 1a968a8b..9822459 100644
--- a/chrome/browser/ash/cert_provisioning/cert_provisioning_test_helpers.cc
+++ b/chrome/browser/ash/cert_provisioning/cert_provisioning_test_helpers.cc
@@ -91,10 +91,8 @@
 scoped_refptr<net::X509Certificate> CertificateHelperForTesting::AddCert(
     CertScope cert_scope,
     const absl::optional<CertProfileId>& cert_profile_id) {
-  base::Time not_valid_before =
-      base::Time::Now() - base::TimeDelta::FromDays(1);
-  base::Time not_valid_after =
-      base::Time::Now() + base::TimeDelta::FromDays(365);
+  base::Time not_valid_before = base::Time::Now() - base::Days(1);
+  base::Time not_valid_after = base::Time::Now() + base::Days(365);
   return AddCert(cert_scope, cert_profile_id,
                  chromeos::platform_keys::Status::kSuccess, not_valid_before,
                  not_valid_after);
@@ -104,10 +102,8 @@
     CertScope cert_scope,
     const absl::optional<CertProfileId>& cert_profile_id,
     chromeos::platform_keys::Status status) {
-  base::Time not_valid_before =
-      base::Time::Now() - base::TimeDelta::FromDays(1);
-  base::Time not_valid_after =
-      base::Time::Now() + base::TimeDelta::FromDays(365);
+  base::Time not_valid_before = base::Time::Now() - base::Days(1);
+  base::Time not_valid_after = base::Time::Now() + base::Days(365);
   return AddCert(cert_scope, cert_profile_id, status, not_valid_before,
                  not_valid_after);
 }
diff --git a/chrome/browser/ash/cert_provisioning/cert_provisioning_worker.cc b/chrome/browser/ash/cert_provisioning/cert_provisioning_worker.cc
index fc4e907..68d5ffa 100644
--- a/chrome/browser/ash/cert_provisioning/cert_provisioning_worker.cc
+++ b/chrome/browser/ash/cert_provisioning/cert_provisioning_worker.cc
@@ -36,25 +36,21 @@
 
 constexpr unsigned int kNonVaKeyModulusLengthBits = 2048;
 
-constexpr base::TimeDelta kMinumumTryAgainLaterDelay =
-    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kMinumumTryAgainLaterDelay = base::Seconds(10);
 
 // The delay after which a StartCsr request can be resent after a 412 Pending
 // Approval has been returned by the DM server.
-constexpr base::TimeDelta kRetryStartCsrRequestDelay =
-    base::TimeDelta::FromHours(1);
+constexpr base::TimeDelta kRetryStartCsrRequestDelay = base::Hours(1);
 // The delay after which a FinishCsr request can be resent after a 412 Pending
 // Approval has been returned by the DM server.
-constexpr base::TimeDelta kRetryFinishCsrRequestDelay =
-    base::TimeDelta::FromHours(1);
+constexpr base::TimeDelta kRetryFinishCsrRequestDelay = base::Hours(1);
 // The delay after which a DownloadCsr request can be resent after a 412 Pending
 // Approval has been returned by the DM server.
 // Note: This request retry delay is more than other delays as a DownloadCsr
 // request may not only fail because of a DM server or a CES server problem but
 // also because of a problem with the Google Certificate Connecter which may
 // take more time to solve.
-constexpr base::TimeDelta kRetryDownloadCsrRequestDelay =
-    base::TimeDelta::FromHours(8);
+constexpr base::TimeDelta kRetryDownloadCsrRequestDelay = base::Hours(8);
 
 constexpr net::BackoffEntry::Policy kBackoffPolicy{
     /*num_errors_to_ignore=*/0,
@@ -792,7 +788,7 @@
   }
 
   if (try_later.has_value()) {
-    ScheduleNextStep(base::TimeDelta::FromMilliseconds(try_later.value()));
+    ScheduleNextStep(base::Milliseconds(try_later.value()));
     return false;
   }
 
diff --git a/chrome/browser/ash/cert_provisioning/cert_provisioning_worker_unittest.cc b/chrome/browser/ash/cert_provisioning/cert_provisioning_worker_unittest.cc
index bf90efb..6e8d232 100644
--- a/chrome/browser/ash/cert_provisioning/cert_provisioning_worker_unittest.cc
+++ b/chrome/browser/ash/cert_provisioning/cert_provisioning_worker_unittest.cc
@@ -98,8 +98,7 @@
 constexpr char kCertProfileId[] = "cert_profile_1";
 constexpr char kCertProfileName[] = "Certificate Profile 1";
 constexpr char kCertProfileVersion[] = "cert_profile_version_1";
-constexpr base::TimeDelta kCertProfileRenewalPeriod =
-    base::TimeDelta::FromSeconds(0);
+constexpr base::TimeDelta kCertProfileRenewalPeriod = base::Seconds(0);
 // Prefix + certificate profile name.
 constexpr char kCertScopeStrUser[] = "google/chromeos/user";
 constexpr char kCertScopeStrDevice[] = "google/chromeos/device";
@@ -1527,7 +1526,7 @@
 };
 
 TEST_F(CertProvisioningWorkerTest, SerializationSuccess) {
-  const base::TimeDelta kRenewalPeriod = base::TimeDelta::FromSeconds(1200300);
+  const base::TimeDelta kRenewalPeriod = base::Seconds(1200300);
   CertProfile cert_profile(kCertProfileId, kCertProfileName,
                            kCertProfileVersion,
                            /*is_va_enabled=*/true, kRenewalPeriod);
diff --git a/chrome/browser/ash/certificate_provider/certificate_requests.cc b/chrome/browser/ash/certificate_provider/certificate_requests.cc
index 5922756..db93756 100644
--- a/chrome/browser/ash/certificate_provider/certificate_requests.cc
+++ b/chrome/browser/ash/certificate_provider/certificate_requests.cc
@@ -51,9 +51,9 @@
   state->pending_extensions.insert(extension_ids.begin(), extension_ids.end());
 
   const int request_id = next_free_request_id_++;
-  state->timeout.Start(
-      FROM_HERE, base::TimeDelta::FromMinutes(kGetCertificatesTimeoutInMinutes),
-      base::BindOnce(std::move(timeout_callback), request_id));
+  state->timeout.Start(FROM_HERE,
+                       base::Minutes(kGetCertificatesTimeoutInMinutes),
+                       base::BindOnce(std::move(timeout_callback), request_id));
 
   const auto insert_result =
       requests_.insert(std::make_pair(request_id, std::move(state)));
diff --git a/chrome/browser/ash/certificate_provider/pin_dialog_manager.cc b/chrome/browser/ash/certificate_provider/pin_dialog_manager.cc
index 7a9ebeb1..d58664a 100644
--- a/chrome/browser/ash/certificate_provider/pin_dialog_manager.cc
+++ b/chrome/browser/ash/certificate_provider/pin_dialog_manager.cc
@@ -12,8 +12,7 @@
 namespace ash {
 
 // Define timeout for issued sign_request_id.
-constexpr base::TimeDelta kSignRequestIdTimeout =
-    base::TimeDelta::FromMinutes(10);
+constexpr base::TimeDelta kSignRequestIdTimeout = base::Minutes(10);
 
 PinDialogManager::PinDialogManager() = default;
 
diff --git a/chrome/browser/ash/child_accounts/child_status_reporting_service.cc b/chrome/browser/ash/child_accounts/child_status_reporting_service.cc
index a93c2e5b..7cb84ec 100644
--- a/chrome/browser/ash/child_accounts/child_status_reporting_service.cc
+++ b/chrome/browser/ash/child_accounts/child_status_reporting_service.cc
@@ -26,8 +26,7 @@
 namespace {
 
 // Default frequency for uploading status reports.
-constexpr base::TimeDelta kStatusUploadFrequency =
-    base::TimeDelta::FromMinutes(10);
+constexpr base::TimeDelta kStatusUploadFrequency = base::Minutes(10);
 
 }  // namespace
 
diff --git a/chrome/browser/ash/child_accounts/child_user_service_unittest.cc b/chrome/browser/ash/child_accounts/child_user_service_unittest.cc
index c5f125f..452163c8 100644
--- a/chrome/browser/ash/child_accounts/child_user_service_unittest.cc
+++ b/chrome/browser/ash/child_accounts/child_user_service_unittest.cc
@@ -48,8 +48,8 @@
     registry->OnAppAvailable(app_time::GetChromeAppId());
     registry->SetAppLimit(
         app_time::GetChromeAppId(),
-        app_time::AppLimit(app_time::AppRestriction::kTimeLimit,
-                           base::TimeDelta::FromHours(1), base::Time::Now()));
+        app_time::AppLimit(app_time::AppRestriction::kTimeLimit, base::Hours(1),
+                           base::Time::Now()));
   }
 
   Profile* profile() { return &profile_; }
diff --git a/chrome/browser/ash/child_accounts/family_user_app_metrics.cc b/chrome/browser/ash/child_accounts/family_user_app_metrics.cc
index e7beb904..51cd00e3 100644
--- a/chrome/browser/ash/child_accounts/family_user_app_metrics.cc
+++ b/chrome/browser/ash/child_accounts/family_user_app_metrics.cc
@@ -25,7 +25,7 @@
 
 namespace {
 // Recently launched apps this many days ago in the past will be recorded.
-constexpr base::TimeDelta kOneDay = base::TimeDelta::FromDays(1);
+constexpr base::TimeDelta kOneDay = base::Days(1);
 
 // UMA metrics for a snapshot count of installed and enabled extensions for a
 // given family user.
diff --git a/chrome/browser/ash/child_accounts/family_user_app_metrics_unittest.cc b/chrome/browser/ash/child_accounts/family_user_app_metrics_unittest.cc
index 20ae03c..06e759f 100644
--- a/chrome/browser/ash/child_accounts/family_user_app_metrics_unittest.cc
+++ b/chrome/browser/ash/child_accounts/family_user_app_metrics_unittest.cc
@@ -33,7 +33,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kOneDay = base::TimeDelta::FromDays(1);
+constexpr base::TimeDelta kOneDay = base::Days(1);
 constexpr char kStartTime[] = "1 Jan 2020 21:15";
 constexpr int kStart = static_cast<int>(apps::mojom::AppType::kUnknown);  // 0
 constexpr int kEnd =
diff --git a/chrome/browser/ash/child_accounts/family_user_chrome_activity_metrics.cc b/chrome/browser/ash/child_accounts/family_user_chrome_activity_metrics.cc
index 650b2e5..47ea3e844 100644
--- a/chrome/browser/ash/child_accounts/family_user_chrome_activity_metrics.cc
+++ b/chrome/browser/ash/child_accounts/family_user_chrome_activity_metrics.cc
@@ -19,8 +19,8 @@
 
 namespace {
 
-constexpr base::TimeDelta kMinChromeDuration = base::TimeDelta::FromMinutes(1);
-constexpr base::TimeDelta kMaxChromeDuration = base::TimeDelta::FromDays(7);
+constexpr base::TimeDelta kMinChromeDuration = base::Minutes(1);
+constexpr base::TimeDelta kMaxChromeDuration = base::Days(7);
 constexpr int kChromeDurationBuckets = 100;
 
 }  // namespace
diff --git a/chrome/browser/ash/child_accounts/family_user_chrome_activity_metrics_unittest.cc b/chrome/browser/ash/child_accounts/family_user_chrome_activity_metrics_unittest.cc
index f02bdbd..a6d59997 100644
--- a/chrome/browser/ash/child_accounts/family_user_chrome_activity_metrics_unittest.cc
+++ b/chrome/browser/ash/child_accounts/family_user_chrome_activity_metrics_unittest.cc
@@ -35,8 +35,8 @@
 namespace {
 constexpr char kExtensionNameChrome[] = "Chrome";
 constexpr char kExtensionAppUrl[] = "https://example.com/";
-constexpr base::TimeDelta kHalfHour = base::TimeDelta::FromMinutes(30);
-constexpr base::TimeDelta kOneMinute = base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kHalfHour = base::Minutes(30);
+constexpr base::TimeDelta kOneMinute = base::Minutes(1);
 
 constexpr apps::InstanceState kActiveInstanceState =
     static_cast<apps::InstanceState>(
@@ -197,12 +197,12 @@
   task_environment()->FastForwardBy(kHalfHour);
   PushChromeAppInstance(another_browser->window()->GetNativeWindow(),
                         apps::InstanceState::kDestroyed);
-  EXPECT_EQ(base::TimeDelta::FromHours(1),
+  EXPECT_EQ(base::Hours(1),
             pref_service()->GetTimeDelta(
                 prefs::kFamilyUserMetricsChromeBrowserEngagementDuration));
 
   // Test date change.
-  task_environment()->FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment()->FastForwardBy(base::Days(1));
   OnNewDay();
 
   EXPECT_EQ(base::TimeDelta(),
@@ -211,7 +211,7 @@
   histogram_tester.ExpectTimeBucketCount(
       FamilyUserChromeActivityMetrics::
           kChromeBrowserEngagementDurationHistogramName,
-      base::TimeDelta::FromHours(1), 1);
+      base::Hours(1), 1);
 }
 
 TEST_F(FamilyUserChromeActivityMetricsTest, ClockBackward) {
@@ -271,7 +271,7 @@
       FamilyUserChromeActivityMetrics::
           kChromeBrowserEngagementDurationHistogramName,
       0);
-  EXPECT_EQ(base::TimeDelta::FromHours(1),
+  EXPECT_EQ(base::Hours(1),
             pref_service()->GetTimeDelta(
                 prefs::kFamilyUserMetricsChromeBrowserEngagementDuration));
 }
@@ -297,7 +297,7 @@
   // Test the screen off for 1 day.
   SetScreenOff(true);
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment()->FastForwardBy(base::Days(1));
   OnNewDay();
 
   EXPECT_EQ(base::TimeDelta(),
@@ -336,11 +336,11 @@
   PushChromeAppInstance(test_browser_->window()->GetNativeWindow(),
                         kInactiveInstanceState);
 
-  EXPECT_EQ(base::TimeDelta::FromMinutes(2),
+  EXPECT_EQ(base::Minutes(2),
             pref_service()->GetTimeDelta(
                 prefs::kFamilyUserMetricsChromeBrowserEngagementDuration));
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment()->FastForwardBy(base::Days(1));
   OnNewDay();
 
   EXPECT_EQ(base::TimeDelta(),
@@ -349,7 +349,7 @@
   histogram_tester.ExpectTimeBucketCount(
       FamilyUserChromeActivityMetrics::
           kChromeBrowserEngagementDurationHistogramName,
-      base::TimeDelta::FromMinutes(2), 1);
+      base::Minutes(2), 1);
 }
 
 }  // namespace ash
diff --git a/chrome/browser/ash/child_accounts/family_user_metrics_service.cc b/chrome/browser/ash/child_accounts/family_user_metrics_service.cc
index 927fff5..9a069d9 100644
--- a/chrome/browser/ash/child_accounts/family_user_metrics_service.cc
+++ b/chrome/browser/ash/child_accounts/family_user_metrics_service.cc
@@ -21,7 +21,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kTimerInterval = base::TimeDelta::FromMinutes(10);
+constexpr base::TimeDelta kTimerInterval = base::Minutes(10);
 
 // Returns the number of days since the origin.
 int GetDayId(base::Time time) {
diff --git a/chrome/browser/ash/child_accounts/family_user_metrics_service_unittest.cc b/chrome/browser/ash/child_accounts/family_user_metrics_service_unittest.cc
index d8a37dda..7331953f 100644
--- a/chrome/browser/ash/child_accounts/family_user_metrics_service_unittest.cc
+++ b/chrome/browser/ash/child_accounts/family_user_metrics_service_unittest.cc
@@ -93,8 +93,7 @@
 // Tests OnNewDay() is called after more than one day passes.
 TEST_F(DetectingNewDayTest, MoreThanOneDay) {
   EXPECT_CALL(mock_observer_, OnNewDay()).Times(1);
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1) +
-                                  base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Days(1) + base::Hours(1));
   EXPECT_EQ(FamilyUserMetricsService::GetDayIdForTesting(base::Time::Now()),
             GetDayIdPref());
 }
@@ -102,7 +101,7 @@
 // Tests OnNewDay() is called at midnight.
 TEST_F(DetectingNewDayTest, UntilMidnight) {
   EXPECT_CALL(mock_observer_, OnNewDay()).Times(1);
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(3));
+  task_environment_.FastForwardBy(base::Hours(3));
   EXPECT_EQ(FamilyUserMetricsService::GetDayIdForTesting(base::Time::Now()),
             GetDayIdPref());
 }
@@ -110,7 +109,7 @@
 // Tests OnNewDay() is not called before midnight.
 TEST_F(DetectingNewDayTest, LessThanOneDay) {
   EXPECT_CALL(mock_observer_, OnNewDay()).Times(0);
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
   EXPECT_EQ(FamilyUserMetricsService::GetDayIdForTesting(base::Time::Now()),
             GetDayIdPref());
 }
@@ -121,7 +120,7 @@
   EXPECT_CALL(mock_observer_, OnNewDay()).Times(1);
   SetScreenOff(true);
   SetSuspendImminent();
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
   EXPECT_EQ(FamilyUserMetricsService::GetDayIdForTesting(base::Time::Now()),
             GetDayIdPref());
 }
diff --git a/chrome/browser/ash/child_accounts/family_user_parental_control_metrics_unittest.cc b/chrome/browser/ash/child_accounts/family_user_parental_control_metrics_unittest.cc
index d175c9a..90e1e84 100644
--- a/chrome/browser/ash/child_accounts/family_user_parental_control_metrics_unittest.cc
+++ b/chrome/browser/ash/child_accounts/family_user_parental_control_metrics_unittest.cc
@@ -46,8 +46,8 @@
 
 namespace {
 
-constexpr base::TimeDelta kOneHour = base::TimeDelta::FromHours(1);
-constexpr base::TimeDelta kOneDay = base::TimeDelta::FromDays(1);
+constexpr base::TimeDelta kOneHour = base::Hours(1);
+constexpr base::TimeDelta kOneDay = base::Days(1);
 constexpr char kStartTime[] = "1 Jan 2020 21:15";
 
 constexpr char kExampleHost0[] = "http://www.example0.com";
@@ -203,7 +203,7 @@
       /*policy=*/&policy_content,
       /*action=*/usage_time_limit::TimeLimitOverride::Action::kLock,
       /*created_at=*/base::Time::Now() - kOneDay,
-      /*duration=*/base::TimeDelta::FromHours(2));
+      /*duration=*/base::Hours(2));
   GetPrefs()->Set(prefs::kUsageTimeLimit, policy_content);
 
   // The override time limit policy would not get reported since the difference
@@ -223,8 +223,8 @@
   utils::AddOverrideWithDuration(
       /*policy=*/&policy_content,
       /*action=*/usage_time_limit::TimeLimitOverride::Action::kLock,
-      /*created_at=*/base::Time::Now() - base::TimeDelta::FromHours(23),
-      /*duration=*/base::TimeDelta::FromHours(2));
+      /*created_at=*/base::Time::Now() - base::Hours(23),
+      /*duration=*/base::Hours(2));
   GetPrefs()->Set(prefs::kUsageTimeLimit, policy_content);
 
   // The override time limit policy would get reported since the created
@@ -271,14 +271,12 @@
   // Add limit policy to the Chrome and the Arc app.
   {
     app_time::AppTimeLimitsPolicyBuilder builder;
-    builder.AddAppLimit(
-        kArcApp,
-        app_time::AppLimit(app_time::AppRestriction::kTimeLimit,
-                           base::TimeDelta::FromHours(1), base::Time::Now()));
-    builder.AddAppLimit(
-        app_time::GetChromeAppId(),
-        app_time::AppLimit(app_time::AppRestriction::kTimeLimit,
-                           base::TimeDelta::FromHours(1), base::Time::Now()));
+    builder.AddAppLimit(kArcApp,
+                        app_time::AppLimit(app_time::AppRestriction::kTimeLimit,
+                                           base::Hours(1), base::Time::Now()));
+    builder.AddAppLimit(app_time::GetChromeAppId(),
+                        app_time::AppLimit(app_time::AppRestriction::kTimeLimit,
+                                           base::Hours(1), base::Time::Now()));
 
     builder.SetResetTime(6, 0);
     DictionaryPrefUpdate update(GetPrefs(), prefs::kPerAppTimeLimitsPolicy);
diff --git a/chrome/browser/ash/child_accounts/family_user_session_metrics.cc b/chrome/browser/ash/child_accounts/family_user_session_metrics.cc
index 85f42370..9b81678 100644
--- a/chrome/browser/ash/child_accounts/family_user_session_metrics.cc
+++ b/chrome/browser/ash/child_accounts/family_user_session_metrics.cc
@@ -19,9 +19,9 @@
 namespace {
 
 constexpr int kEngagementHourBuckets = base::Time::kHoursPerDay;
-constexpr base::TimeDelta kOneHour = base::TimeDelta::FromHours(1);
-constexpr base::TimeDelta kMinSessionDuration = base::TimeDelta::FromSeconds(1);
-constexpr base::TimeDelta kMaxSessionDuration = base::TimeDelta::FromDays(1);
+constexpr base::TimeDelta kOneHour = base::Hours(1);
+constexpr base::TimeDelta kMinSessionDuration = base::Seconds(1);
+constexpr base::TimeDelta kMaxSessionDuration = base::Days(1);
 constexpr int kSessionDurationBuckets = 100;
 
 // Returns the hour (0-23) within the day for given local time.
diff --git a/chrome/browser/ash/child_accounts/family_user_session_metrics_unittest.cc b/chrome/browser/ash/child_accounts/family_user_session_metrics_unittest.cc
index f7ae035..05513e8d 100644
--- a/chrome/browser/ash/child_accounts/family_user_session_metrics_unittest.cc
+++ b/chrome/browser/ash/child_accounts/family_user_session_metrics_unittest.cc
@@ -24,9 +24,9 @@
 
 namespace {
 
-constexpr base::TimeDelta kTenMinutes = base::TimeDelta::FromMinutes(10);
-constexpr base::TimeDelta kOneHour = base::TimeDelta::FromHours(1);
-constexpr base::TimeDelta kOneDay = base::TimeDelta::FromDays(1);
+constexpr base::TimeDelta kTenMinutes = base::Minutes(10);
+constexpr base::TimeDelta kOneHour = base::Hours(1);
+constexpr base::TimeDelta kOneDay = base::Days(1);
 
 void SetScreenOff(bool is_screen_off) {
   power_manager::ScreenIdleState screen_idle_state;
@@ -200,7 +200,7 @@
   // Test screen on on 4 Jan 2020 0:10:00.
   SetScreenOff(false);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(25));
+  task_environment_.FastForwardBy(base::Hours(25));
   // Test screen off on 5 Jan 2020 1:10:00.
   SetScreenOff(true);
 
@@ -297,7 +297,7 @@
   // Duration metric result:
   histogram_tester.ExpectTotalCount(
       FamilyUserSessionMetrics::kSessionEngagementDurationHistogramName, 0);
-  EXPECT_EQ(base::TimeDelta::FromMinutes(20),
+  EXPECT_EQ(base::Minutes(20),
             pref_service()->GetTimeDelta(
                 prefs::kFamilyUserMetricsSessionEngagementDuration));
 }
@@ -394,7 +394,7 @@
   // Duration metric result:
   histogram_tester.ExpectTotalCount(
       prefs::kFamilyUserMetricsSessionEngagementDuration, 0);
-  EXPECT_EQ(base::TimeDelta::FromMinutes(20),
+  EXPECT_EQ(base::Minutes(20),
             pref_service()->GetTimeDelta(
                 prefs::kFamilyUserMetricsSessionEngagementDuration));
 }
diff --git a/chrome/browser/ash/child_accounts/parent_access_code/authenticator.cc b/chrome/browser/ash/child_accounts/parent_access_code/authenticator.cc
index 03f85d3..b11540c 100644
--- a/chrome/browser/ash/child_accounts/parent_access_code/authenticator.cc
+++ b/chrome/browser/ash/child_accounts/parent_access_code/authenticator.cc
@@ -18,12 +18,10 @@
 namespace {
 
 // Value ranges for access code config data.
-constexpr base::TimeDelta kMinCodeValidity = base::TimeDelta::FromSeconds(60);
-constexpr base::TimeDelta kMaxCodeValidity = base::TimeDelta::FromMinutes(60);
-constexpr base::TimeDelta kMinClockDriftTolerance =
-    base::TimeDelta::FromMinutes(0);
-constexpr base::TimeDelta kMaxClockDriftTolerance =
-    base::TimeDelta::FromMinutes(30);
+constexpr base::TimeDelta kMinCodeValidity = base::Seconds(60);
+constexpr base::TimeDelta kMaxCodeValidity = base::Minutes(60);
+constexpr base::TimeDelta kMinClockDriftTolerance = base::Minutes(0);
+constexpr base::TimeDelta kMaxClockDriftTolerance = base::Minutes(30);
 
 // Dictionary keys used to serialize access code config data.
 constexpr char kSharedSecretDictKey[] = "shared_secret";
@@ -52,8 +50,8 @@
     return absl::nullopt;
   }
 
-  return AccessCodeConfig(*secret, base::TimeDelta::FromSeconds(*validity),
-                          base::TimeDelta::FromSeconds(*clock_drift));
+  return AccessCodeConfig(*secret, base::Seconds(*validity),
+                          base::Seconds(*clock_drift));
 }
 
 AccessCodeConfig::AccessCodeConfig(const std::string& shared_secret,
diff --git a/chrome/browser/ash/child_accounts/parent_access_code/authenticator.h b/chrome/browser/ash/child_accounts/parent_access_code/authenticator.h
index 86a0115..a72614ad 100644
--- a/chrome/browser/ash/child_accounts/parent_access_code/authenticator.h
+++ b/chrome/browser/ash/child_accounts/parent_access_code/authenticator.h
@@ -111,8 +111,7 @@
  public:
   // Granularity of which generation and verification of access code are carried
   // out. Should not exceed code validity period.
-  static constexpr base::TimeDelta kAccessCodeGranularity =
-      base::TimeDelta::FromMinutes(1);
+  static constexpr base::TimeDelta kAccessCodeGranularity = base::Minutes(1);
 
   explicit Authenticator(AccessCodeConfig config);
 
diff --git a/chrome/browser/ash/child_accounts/parent_access_code/authenticator_unittest.cc b/chrome/browser/ash/child_accounts/parent_access_code/authenticator_unittest.cc
index 90db5e2..c090381 100644
--- a/chrome/browser/ash/child_accounts/parent_access_code/authenticator_unittest.cc
+++ b/chrome/browser/ash/child_accounts/parent_access_code/authenticator_unittest.cc
@@ -19,7 +19,7 @@
 
 AccessCodeConfig GetZeroClockDriftConfig() {
   return AccessCodeConfig(kTestSharedSecret, kDefaultCodeValidity,
-                          base::TimeDelta::FromMinutes(0));
+                          base::Minutes(0));
 }
 
 class ParentAccessCodeAuthenticatorTest : public testing::Test {
@@ -143,13 +143,13 @@
   // Test that codes generated with the different validity are not the same.
   const base::Time timestamp = base::Time::Now();
 
-  Authenticator gen1(AccessCodeConfig(
-      kTestSharedSecret, base::TimeDelta::FromMinutes(1), kDefaultClockDrift));
+  Authenticator gen1(AccessCodeConfig(kTestSharedSecret, base::Minutes(1),
+                                      kDefaultClockDrift));
   absl::optional<AccessCode> code1 = gen1.Generate(timestamp);
   ASSERT_NO_FATAL_FAILURE(Verify(code1, timestamp));
 
-  Authenticator gen2(AccessCodeConfig(
-      kTestSharedSecret, base::TimeDelta::FromMinutes(3), kDefaultClockDrift));
+  Authenticator gen2(AccessCodeConfig(kTestSharedSecret, base::Minutes(3),
+                                      kDefaultClockDrift));
   absl::optional<AccessCode> code2 = gen2.Generate(timestamp);
   ASSERT_NO_FATAL_FAILURE(Verify(code2, timestamp));
 
@@ -162,12 +162,12 @@
   const base::Time timestamp = base::Time::Now();
 
   Authenticator gen1(AccessCodeConfig(kTestSharedSecret, kDefaultCodeValidity,
-                                      base::TimeDelta::FromMinutes(1)));
+                                      base::Minutes(1)));
   absl::optional<AccessCode> code1 = gen1.Generate(timestamp);
   ASSERT_NO_FATAL_FAILURE(Verify(code1, timestamp));
 
   Authenticator gen2(AccessCodeConfig(kTestSharedSecret, kDefaultCodeValidity,
-                                      base::TimeDelta::FromMinutes(10)));
+                                      base::Minutes(10)));
   absl::optional<AccessCode> code2 = gen2.Generate(timestamp);
   ASSERT_NO_FATAL_FAILURE(Verify(code2, timestamp));
 
@@ -181,7 +181,7 @@
   ASSERT_NO_FATAL_FAILURE(GetTestAccessCodeValues(&test_values));
 
   Authenticator gen(AccessCodeConfig(kTestSharedSecret, kDefaultCodeValidity,
-                                     base::TimeDelta::FromMinutes(0)));
+                                     base::Minutes(0)));
   for (const auto& it : test_values) {
     absl::optional<AccessCode> code = gen.Validate(it.second, it.first);
     ASSERT_NO_FATAL_FAILURE(Verify(code, it.first));
@@ -208,8 +208,7 @@
 
   // Before valid period.
   absl::optional<AccessCode> validated_code = validator.Validate(
-      generated_code->code(),
-      generation_timestamp - base::TimeDelta::FromSeconds(1));
+      generated_code->code(), generation_timestamp - base::Seconds(1));
   EXPECT_FALSE(validated_code);
 
   // In valid period.
@@ -246,8 +245,7 @@
 
   // Before valid period.
   absl::optional<AccessCode> validated_code = authenticator.Validate(
-      generated_code->code(),
-      generation_timestamp - base::TimeDelta::FromSeconds(1));
+      generated_code->code(), generation_timestamp - base::Seconds(1));
   EXPECT_FALSE(validated_code);
 
   // In valid period.
@@ -271,9 +269,8 @@
   // Test validation with clock drift tolerance.
   Authenticator generator(GetDefaultTestConfig());
   Authenticator validator_with_tolerance(GetDefaultTestConfig());
-  Authenticator validator_no_tolerance(
-      AccessCodeConfig(kTestSharedSecret, kDefaultCodeValidity,
-                       base::TimeDelta::FromMinutes(0)));
+  Authenticator validator_no_tolerance(AccessCodeConfig(
+      kTestSharedSecret, kDefaultCodeValidity, base::Minutes(0)));
 
   // By default code will be valid [15:30:00-15:40:00).
   // With clock drift tolerance code will be valid [15:25:00-15:45:00).
@@ -317,8 +314,7 @@
   EXPECT_TRUE(validated_code_with_tolerance);
 
   // Validator's device clock late outside of tolerated drift.
-  timestamp = generation_timestamp - kDefaultClockDrift -
-              base::TimeDelta::FromSeconds(1);
+  timestamp = generation_timestamp - kDefaultClockDrift - base::Seconds(1);
   validated_code_no_tolerance =
       validator_no_tolerance.Validate(generated_code->code(), timestamp);
   EXPECT_FALSE(validated_code_no_tolerance);
diff --git a/chrome/browser/ash/child_accounts/parent_access_code/parent_access_test_utils.h b/chrome/browser/ash/child_accounts/parent_access_code/parent_access_test_utils.h
index ebe07b8..80819e7 100644
--- a/chrome/browser/ash/child_accounts/parent_access_code/parent_access_test_utils.h
+++ b/chrome/browser/ash/child_accounts/parent_access_code/parent_access_test_utils.h
@@ -17,9 +17,8 @@
 
 // Values used in default parent access code configuration for tests.
 constexpr char kTestSharedSecret[] = "AIfVJHITSar8keeq3779V70dWiS1xbPv8g";
-constexpr base::TimeDelta kDefaultCodeValidity =
-    base::TimeDelta::FromMinutes(10);
-constexpr base::TimeDelta kDefaultClockDrift = base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kDefaultCodeValidity = base::Minutes(10);
+constexpr base::TimeDelta kDefaultClockDrift = base::Minutes(5);
 
 // Used for storing sample parent access code data. Map that contains pairs of
 // corresponding timestamp and code.
diff --git a/chrome/browser/ash/child_accounts/screen_time_controller.cc b/chrome/browser/ash/child_accounts/screen_time_controller.cc
index 6c84556..1260978 100644
--- a/chrome/browser/ash/child_accounts/screen_time_controller.cc
+++ b/chrome/browser/ash/child_accounts/screen_time_controller.cc
@@ -33,8 +33,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kUsageTimeLimitWarningTime =
-    base::TimeDelta::FromMinutes(15);
+constexpr base::TimeDelta kUsageTimeLimitWarningTime = base::Minutes(15);
 
 // Dictionary keys for prefs::kScreenTimeLastState.
 constexpr char kScreenStateLocked[] = "locked";
@@ -401,8 +400,7 @@
       last_state->FindKey(kScreenStateRemainingUsage);
   if (!remaining_usage || !remaining_usage->is_int())
     return absl::nullopt;
-  result.remaining_usage =
-      base::TimeDelta::FromMilliseconds(remaining_usage->GetInt());
+  result.remaining_usage = base::Milliseconds(remaining_usage->GetInt());
 
   // Verify time_usage_limit_started from the pref is a double value.
   const base::Value* time_usage_limit_started =
diff --git a/chrome/browser/ash/child_accounts/screen_time_controller_browsertest.cc b/chrome/browser/ash/child_accounts/screen_time_controller_browsertest.cc
index 063a7248..12245e7 100644
--- a/chrome/browser/ash/child_accounts/screen_time_controller_browsertest.cc
+++ b/chrome/browser/ash/child_accounts/screen_time_controller_browsertest.cc
@@ -35,8 +35,7 @@
 namespace {
 
 // Time delta representing the usage time limit warning time.
-constexpr base::TimeDelta kUsageTimeLimitWarningTime =
-    base::TimeDelta::FromMinutes(15);
+constexpr base::TimeDelta kUsageTimeLimitWarningTime = base::Minutes(15);
 
 class TestScreenTimeControllerObserver : public ScreenTimeController::Observer {
  public:
@@ -162,7 +161,7 @@
   EXPECT_TRUE(IsAuthEnabled());
 
   // Wait one hour.
-  task_runner_->FastForwardBy(base::TimeDelta::FromHours(1));
+  task_runner_->FastForwardBy(base::Hours(1));
   EXPECT_TRUE(IsAuthEnabled());
 
   // Set new policy.
@@ -208,11 +207,11 @@
   EXPECT_TRUE(IsAuthEnabled());
 
   // Forward to 6 AM and check that auth is still enabled.
-  task_runner_->FastForwardBy(base::TimeDelta::FromHours(8));
+  task_runner_->FastForwardBy(base::Hours(8));
   EXPECT_TRUE(IsAuthEnabled());
 
   // Forward to 9 PM and check that auth is disabled because bedtime started.
-  task_runner_->FastForwardBy(base::TimeDelta::FromHours(15));
+  task_runner_->FastForwardBy(base::Hours(15));
   EXPECT_FALSE(IsAuthEnabled());
 }
 
@@ -241,35 +240,35 @@
   // Create unlock override with a duration of 2 hours and update the policy.
   utils::AddOverrideWithDuration(
       &policy_content, usage_time_limit::TimeLimitOverride::Action::kUnlock,
-      task_runner_->Now(), base::TimeDelta::FromHours(2));
+      task_runner_->Now(), base::Hours(2));
   SetUsageTimeLimitPolicy(policy_content);
 
   // Check that the unlock worked and auth is enabled.
   EXPECT_TRUE(IsAuthEnabled());
 
   // Forward to 10:15 PM and check that auth is still enabled.
-  task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(90));
+  task_runner_->FastForwardBy(base::Minutes(90));
   EXPECT_TRUE(IsAuthEnabled());
 
   // Forward to 10:45 PM and check that auth is disabled because the duration is
   // over.
-  task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(30));
+  task_runner_->FastForwardBy(base::Minutes(30));
   EXPECT_FALSE(IsAuthEnabled());
 
   // Forward to 11 PM and check that auth is still disabled.
-  task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(15));
+  task_runner_->FastForwardBy(base::Minutes(15));
   EXPECT_FALSE(IsAuthEnabled());
 
   // Forward to 6 AM and check that auth is still disabled.
-  task_runner_->FastForwardBy(base::TimeDelta::FromHours(7));
+  task_runner_->FastForwardBy(base::Hours(7));
   EXPECT_FALSE(IsAuthEnabled());
 
   // Forward to 7 AM and check that auth is enable because bedtime is finished.
-  task_runner_->FastForwardBy(base::TimeDelta::FromHours(1));
+  task_runner_->FastForwardBy(base::Hours(1));
   EXPECT_TRUE(IsAuthEnabled());
 
   // Forward to 9 PM and check that auth is disabled because bedtime started.
-  task_runner_->FastForwardBy(base::TimeDelta::FromHours(14));
+  task_runner_->FastForwardBy(base::Hours(14));
   EXPECT_FALSE(IsAuthEnabled());
 }
 
@@ -285,22 +284,22 @@
   base::Time last_updated = utils::TimeFromString("1 Jan 2018 0:00 BRT");
   base::Value policy_content =
       utils::CreateTimeLimitPolicy(utils::CreateTime(6, 0));
-  utils::AddTimeUsageLimit(&policy_content, utils::kMonday,
-                           base::TimeDelta::FromHours(2), last_updated);
+  utils::AddTimeUsageLimit(&policy_content, utils::kMonday, base::Hours(2),
+                           last_updated);
   SetUsageTimeLimitPolicy(policy_content);
 
   // Check that auth is enabled at 10 AM with 0 usage time.
   EXPECT_TRUE(IsAuthEnabled());
 
   // Forward to 12 PM with 1:50 hours of usage time.
-  MockChildScreenTime(base::TimeDelta::FromMinutes(110));
-  task_runner_->FastForwardBy(base::TimeDelta::FromHours(2));
+  MockChildScreenTime(base::Minutes(110));
+  task_runner_->FastForwardBy(base::Hours(2));
   EXPECT_TRUE(IsAuthEnabled());
 
   // Create unlock override with a duration of 1 hour and update the policy.
   utils::AddOverrideWithDuration(
       &policy_content, usage_time_limit::TimeLimitOverride::Action::kUnlock,
-      task_runner_->Now(), base::TimeDelta::FromHours(1));
+      task_runner_->Now(), base::Hours(1));
   SetUsageTimeLimitPolicy(policy_content);
 
   // Check that the unlock worked and auth is enabled.
@@ -308,21 +307,21 @@
 
   // Forward to 12:30 PM with 2:20 hours of usage time and check that auth is
   // still enabled.
-  MockChildScreenTime(base::TimeDelta::FromMinutes(140));
-  task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(30));
+  MockChildScreenTime(base::Minutes(140));
+  task_runner_->FastForwardBy(base::Minutes(30));
   EXPECT_TRUE(IsAuthEnabled());
 
   // Forward to 1 PM and check that auth is disabled because the duration is
   // over.
-  task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(30));
+  task_runner_->FastForwardBy(base::Minutes(30));
   EXPECT_FALSE(IsAuthEnabled());
 
   // Forward to 5 AM and check that auth is still disabled.
-  task_runner_->FastForwardBy(base::TimeDelta::FromHours(16));
+  task_runner_->FastForwardBy(base::Hours(16));
   EXPECT_FALSE(IsAuthEnabled());
 
   // Forward to 6 AM and check that auth is enabled.
-  task_runner_->FastForwardBy(base::TimeDelta::FromHours(1));
+  task_runner_->FastForwardBy(base::Hours(1));
   EXPECT_TRUE(IsAuthEnabled());
 }
 
@@ -351,32 +350,32 @@
   // Create unlock override with a duration of 2 hours and update the policy.
   utils::AddOverrideWithDuration(
       &policy_content, usage_time_limit::TimeLimitOverride::Action::kUnlock,
-      task_runner_->Now(), base::TimeDelta::FromHours(2));
+      task_runner_->Now(), base::Hours(2));
   SetUsageTimeLimitPolicy(policy_content);
 
   // Check that the unlock worked and auth is enabled.
   EXPECT_TRUE(IsAuthEnabled());
 
   // Forward to 11:30 PM and check that auth is still enabled.
-  task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(90));
+  task_runner_->FastForwardBy(base::Minutes(90));
   EXPECT_TRUE(IsAuthEnabled());
 
   // Forward to 12 AM and check that auth is disabled because the duration is
   // over.
-  task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(30));
+  task_runner_->FastForwardBy(base::Minutes(30));
   EXPECT_FALSE(IsAuthEnabled());
 
   // Forward to 6 AM and check that auth is still disabled because bedtime ends
   // at 7 AM.
-  task_runner_->FastForwardBy(base::TimeDelta::FromHours(6));
+  task_runner_->FastForwardBy(base::Hours(6));
   EXPECT_FALSE(IsAuthEnabled());
 
   // Forward to 7 AM and check that auth is enable because bedtime is finished.
-  task_runner_->FastForwardBy(base::TimeDelta::FromHours(1));
+  task_runner_->FastForwardBy(base::Hours(1));
   EXPECT_TRUE(IsAuthEnabled());
 
   // Forward to 9 PM and check that auth is disabled because bedtime started.
-  task_runner_->FastForwardBy(base::TimeDelta::FromHours(14));
+  task_runner_->FastForwardBy(base::Hours(14));
   EXPECT_FALSE(IsAuthEnabled());
 }
 
@@ -391,22 +390,22 @@
   base::Time last_updated = utils::TimeFromString("1 Jan 2018 0:00 PST");
   base::Value policy_content =
       utils::CreateTimeLimitPolicy(utils::CreateTime(6, 0));
-  utils::AddTimeUsageLimit(&policy_content, utils::kMonday,
-                           base::TimeDelta::FromHours(2), last_updated);
+  utils::AddTimeUsageLimit(&policy_content, utils::kMonday, base::Hours(2),
+                           last_updated);
   SetUsageTimeLimitPolicy(policy_content);
 
   // Check that auth is enabled at 10 AM with 0 usage time.
   EXPECT_TRUE(IsAuthEnabled());
 
   // Forward to 12 PM with 2 hours of usage time and check if auth is disabled.
-  MockChildScreenTime(base::TimeDelta::FromHours(2));
-  task_runner_->FastForwardBy(base::TimeDelta::FromHours(2));
+  MockChildScreenTime(base::Hours(2));
+  task_runner_->FastForwardBy(base::Hours(2));
   EXPECT_FALSE(IsAuthEnabled());
 
   // Create unlock override with a duration of 1 hour and update the policy.
   utils::AddOverrideWithDuration(
       &policy_content, usage_time_limit::TimeLimitOverride::Action::kUnlock,
-      task_runner_->Now(), base::TimeDelta::FromHours(1));
+      task_runner_->Now(), base::Hours(1));
   SetUsageTimeLimitPolicy(policy_content);
 
   // Check that the unlock worked and auth is enabled.
@@ -414,21 +413,21 @@
 
   // Forward to 12:30 PM with 2:30 hours of usage time and check that auth is
   // still enabled.
-  MockChildScreenTime(base::TimeDelta::FromMinutes(150));
-  task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(30));
+  MockChildScreenTime(base::Minutes(150));
+  task_runner_->FastForwardBy(base::Minutes(30));
   EXPECT_TRUE(IsAuthEnabled());
 
   // Forward to 1 PM and check that auth is disabled because the duration is
   // over.
-  task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(30));
+  task_runner_->FastForwardBy(base::Minutes(30));
   EXPECT_FALSE(IsAuthEnabled());
 
   // Forward to 5 AM and check that auth is still disabled.
-  task_runner_->FastForwardBy(base::TimeDelta::FromHours(16));
+  task_runner_->FastForwardBy(base::Hours(16));
   EXPECT_FALSE(IsAuthEnabled());
 
   // Forward to 6 AM and check that auth is enabled.
-  task_runner_->FastForwardBy(base::TimeDelta::FromHours(1));
+  task_runner_->FastForwardBy(base::Hours(1));
   EXPECT_TRUE(IsAuthEnabled());
 }
 
@@ -472,19 +471,19 @@
     EXPECT_TRUE(IsAuthEnabled());
 
     // Verify that auth is enabled at 8 PM.
-    task_runner_->FastForwardBy(base::TimeDelta::FromHours(10));
+    task_runner_->FastForwardBy(base::Hours(10));
     EXPECT_TRUE(IsAuthEnabled());
 
     // Verify that the auth was disabled at 9 PM (start of bedtime).
-    task_runner_->FastForwardBy(base::TimeDelta::FromHours(1));
+    task_runner_->FastForwardBy(base::Hours(1));
     EXPECT_FALSE(IsAuthEnabled());
 
     // Forward to 7 AM and check that auth was re-enabled (end of bedtime).
-    task_runner_->FastForwardBy(base::TimeDelta::FromHours(10));
+    task_runner_->FastForwardBy(base::Hours(10));
     EXPECT_TRUE(IsAuthEnabled());
 
     // Forward to 10 AM.
-    task_runner_->FastForwardBy(base::TimeDelta::FromHours(3));
+    task_runner_->FastForwardBy(base::Hours(3));
   }
 }
 
@@ -500,20 +499,20 @@
   base::Time last_updated = utils::TimeFromString("1 Jan 2018 0:00 GMT");
   base::Value policy_content =
       utils::CreateTimeLimitPolicy(utils::CreateTime(6, 0));
-  utils::AddTimeUsageLimit(&policy_content, utils::kMonday,
-                           base::TimeDelta::FromHours(3), last_updated);
-  utils::AddTimeUsageLimit(&policy_content, utils::kTuesday,
-                           base::TimeDelta::FromHours(3), last_updated);
-  utils::AddTimeUsageLimit(&policy_content, utils::kWednesday,
-                           base::TimeDelta::FromHours(3), last_updated);
-  utils::AddTimeUsageLimit(&policy_content, utils::kThursday,
-                           base::TimeDelta::FromHours(3), last_updated);
-  utils::AddTimeUsageLimit(&policy_content, utils::kFriday,
-                           base::TimeDelta::FromHours(3), last_updated);
-  utils::AddTimeUsageLimit(&policy_content, utils::kSaturday,
-                           base::TimeDelta::FromHours(3), last_updated);
-  utils::AddTimeUsageLimit(&policy_content, utils::kSunday,
-                           base::TimeDelta::FromHours(3), last_updated);
+  utils::AddTimeUsageLimit(&policy_content, utils::kMonday, base::Hours(3),
+                           last_updated);
+  utils::AddTimeUsageLimit(&policy_content, utils::kTuesday, base::Hours(3),
+                           last_updated);
+  utils::AddTimeUsageLimit(&policy_content, utils::kWednesday, base::Hours(3),
+                           last_updated);
+  utils::AddTimeUsageLimit(&policy_content, utils::kThursday, base::Hours(3),
+                           last_updated);
+  utils::AddTimeUsageLimit(&policy_content, utils::kFriday, base::Hours(3),
+                           last_updated);
+  utils::AddTimeUsageLimit(&policy_content, utils::kSaturday, base::Hours(3),
+                           last_updated);
+  utils::AddTimeUsageLimit(&policy_content, utils::kSunday, base::Hours(3),
+                           last_updated);
   SetUsageTimeLimitPolicy(policy_content);
 
   // Iterate over a week checking that the device is locked properly
@@ -524,27 +523,27 @@
 
     // Check that auth is enabled after forwarding to 1 PM and using the device
     // for 2 hours.
-    MockChildScreenTime(base::TimeDelta::FromHours(2));
-    task_runner_->FastForwardBy(base::TimeDelta::FromHours(3));
+    MockChildScreenTime(base::Hours(2));
+    task_runner_->FastForwardBy(base::Hours(3));
     EXPECT_TRUE(IsAuthEnabled());
 
     // Check that auth is enabled after forwarding to 2 PM with no extra usage.
-    task_runner_->FastForwardBy(base::TimeDelta::FromHours(1));
+    task_runner_->FastForwardBy(base::Hours(1));
     EXPECT_TRUE(IsAuthEnabled());
 
     // Check that auth is disabled after forwarding to 3 PM and using the device
     // for 3 hours.
-    MockChildScreenTime(base::TimeDelta::FromHours(3));
-    task_runner_->FastForwardBy(base::TimeDelta::FromHours(1));
+    MockChildScreenTime(base::Hours(3));
+    task_runner_->FastForwardBy(base::Hours(1));
     EXPECT_FALSE(IsAuthEnabled());
 
     // Forward to 6 AM, reset the usage time and check that auth was re-enabled.
-    MockChildScreenTime(base::TimeDelta::FromHours(0));
-    task_runner_->FastForwardBy(base::TimeDelta::FromHours(15));
+    MockChildScreenTime(base::Hours(0));
+    task_runner_->FastForwardBy(base::Hours(15));
     EXPECT_TRUE(IsAuthEnabled());
 
     // Forward to 10 AM.
-    task_runner_->FastForwardBy(base::TimeDelta::FromHours(4));
+    task_runner_->FastForwardBy(base::Hours(4));
   }
 }
 
@@ -569,15 +568,15 @@
   EXPECT_FALSE(IsLocked());
 
   // Verify that device is still unlocked at 10 PM.
-  task_runner_->FastForwardBy(base::TimeDelta::FromHours(12));
+  task_runner_->FastForwardBy(base::Hours(12));
   EXPECT_FALSE(IsLocked());
 
   // Verify that device is locked at 11 PM (start of bedtime).
-  task_runner_->FastForwardBy(base::TimeDelta::FromHours(1));
+  task_runner_->FastForwardBy(base::Hours(1));
   EXPECT_TRUE(IsLocked());
 
   // Forward to 8 AM and check that auth was re-enabled (end of bedtime).
-  task_runner_->FastForwardBy(base::TimeDelta::FromHours(9));
+  task_runner_->FastForwardBy(base::Hours(9));
   EXPECT_TRUE(IsAuthEnabled());
 }
 
@@ -593,8 +592,8 @@
   base::Time last_updated = utils::TimeFromString("1 Jan 2018 0:00 PST");
   base::Value policy_content =
       utils::CreateTimeLimitPolicy(utils::CreateTime(6, 0));
-  utils::AddTimeUsageLimit(&policy_content, utils::kMonday,
-                           base::TimeDelta::FromHours(1), last_updated);
+  utils::AddTimeUsageLimit(&policy_content, utils::kMonday, base::Hours(1),
+                           last_updated);
   SetUsageTimeLimitPolicy(policy_content);
 
   // Verify that device is unlocked at 10 AM.
@@ -602,13 +601,13 @@
 
   // Forward 1 hour to 11 AM and add 1 hour of usage and verify that device is
   // locked (start of daily limit).
-  MockChildScreenTime(base::TimeDelta::FromHours(1));
-  task_runner_->FastForwardBy(base::TimeDelta::FromHours(1));
+  MockChildScreenTime(base::Hours(1));
+  task_runner_->FastForwardBy(base::Hours(1));
   EXPECT_TRUE(IsLocked());
 
   // Forward to 6 AM, reset the usage time and check that auth was re-enabled.
-  MockChildScreenTime(base::TimeDelta::FromHours(0));
-  task_runner_->FastForwardBy(base::TimeDelta::FromHours(19));
+  MockChildScreenTime(base::Hours(0));
+  task_runner_->FastForwardBy(base::Hours(19));
   EXPECT_TRUE(IsAuthEnabled());
 }
 
@@ -632,11 +631,11 @@
   EXPECT_TRUE(IsAuthEnabled());
 
   // Verify that auth is enabled at 6 PM.
-  task_runner_->FastForwardBy(base::TimeDelta::FromHours(8));
+  task_runner_->FastForwardBy(base::Hours(8));
   EXPECT_TRUE(IsAuthEnabled());
 
   // Verify that the auth is disabled at 7 PM (start of bedtime).
-  task_runner_->FastForwardBy(base::TimeDelta::FromHours(1));
+  task_runner_->FastForwardBy(base::Hours(1));
   EXPECT_FALSE(IsAuthEnabled());
 
   // Change timezone, so that local time goes back to 6 PM and check that auth
@@ -645,7 +644,7 @@
   EXPECT_TRUE(IsAuthEnabled());
 
   // Verify that auth is disabled at 7 PM (start of bedtime).
-  task_runner_->FastForwardBy(base::TimeDelta::FromHours(1));
+  task_runner_->FastForwardBy(base::Hours(1));
   EXPECT_FALSE(IsAuthEnabled());
 
   // Change timezone, so that local time goes forward to 7 AM and check that
@@ -712,7 +711,7 @@
   EXPECT_TRUE(IsAuthEnabled());
 
   // Verify that auth is disabled at 8 PM (start of bedtime).
-  task_runner_->FastForwardBy(base::TimeDelta::FromHours(1));
+  task_runner_->FastForwardBy(base::Hours(1));
   EXPECT_FALSE(IsAuthEnabled());
 }
 
@@ -727,8 +726,8 @@
   base::Time last_updated = utils::TimeFromString("1 Jan 2018 0:00 PST");
   base::Value policy_content =
       utils::CreateTimeLimitPolicy(utils::CreateTime(6, 0));
-  utils::AddTimeUsageLimit(&policy_content, utils::kMonday,
-                           base::TimeDelta::FromHours(3), last_updated);
+  utils::AddTimeUsageLimit(&policy_content, utils::kMonday, base::Hours(3),
+                           last_updated);
   SetUsageTimeLimitPolicy(policy_content);
 
   TestScreenTimeControllerObserver observer;
@@ -744,7 +743,7 @@
   // Check that observer was not called after child used device for 2 hours and
   // forward to 12 AM.
   last_screen_time = base::TimeDelta();
-  current_screen_time = base::TimeDelta::FromHours(2);
+  current_screen_time = base::Hours(2);
   MockChildScreenTime(current_screen_time);
   task_runner_->FastForwardBy(current_screen_time - last_screen_time);
   EXPECT_EQ(0, observer.usage_time_limit_warnings());
@@ -753,9 +752,8 @@
   // 3 hours - |kUsageTimeLimitWarningTime| - 1 second. Forward to
   // 1 PM - |kUsageTimeLimitWarningTime| - 1 second.
   last_screen_time = current_screen_time;
-  current_screen_time = base::TimeDelta::FromHours(3) -
-                        kUsageTimeLimitWarningTime -
-                        base::TimeDelta::FromSeconds(1);
+  current_screen_time =
+      base::Hours(3) - kUsageTimeLimitWarningTime - base::Seconds(1);
   MockChildScreenTime(current_screen_time);
   task_runner_->FastForwardBy(current_screen_time - last_screen_time);
   EXPECT_EQ(0, observer.usage_time_limit_warnings());
@@ -764,9 +762,8 @@
   // 3 hours - |kUsageTimeLimitWarningTime| + 1 second. Forward to
   // 1 PM - |kUsageTimeLimitWarningTime| + 1 second.
   last_screen_time = current_screen_time;
-  current_screen_time = base::TimeDelta::FromHours(3) -
-                        kUsageTimeLimitWarningTime +
-                        base::TimeDelta::FromSeconds(1);
+  current_screen_time =
+      base::Hours(3) - kUsageTimeLimitWarningTime + base::Seconds(1);
   MockChildScreenTime(current_screen_time);
   task_runner_->FastForwardBy(current_screen_time - last_screen_time);
   EXPECT_EQ(1, observer.usage_time_limit_warnings());
@@ -774,17 +771,17 @@
   // Check that observer was not called after using the device for 3 hours.
   // Forward to 1 PM.
   last_screen_time = current_screen_time;
-  current_screen_time = base::TimeDelta::FromHours(3);
+  current_screen_time = base::Hours(3);
   MockChildScreenTime(current_screen_time);
   task_runner_->FastForwardBy(current_screen_time - last_screen_time);
   EXPECT_EQ(1, observer.usage_time_limit_warnings());
 
   // Forward to 6 AM, reset the usage time.
-  MockChildScreenTime(base::TimeDelta::FromHours(0));
-  task_runner_->FastForwardBy(base::TimeDelta::FromHours(17));
+  MockChildScreenTime(base::Hours(0));
+  task_runner_->FastForwardBy(base::Hours(17));
 
   // Forward to 10 AM.
-  task_runner_->FastForwardBy(base::TimeDelta::FromHours(4));
+  task_runner_->FastForwardBy(base::Hours(4));
   EXPECT_EQ(1, observer.usage_time_limit_warnings());
 
   ScreenTimeControllerFactory::GetForBrowserContext(child_profile_)
diff --git a/chrome/browser/ash/child_accounts/secondary_account_consent_logger_unittest.cc b/chrome/browser/ash/child_accounts/secondary_account_consent_logger_unittest.cc
index 845bb4b..dc348ca 100644
--- a/chrome/browser/ash/child_accounts/secondary_account_consent_logger_unittest.cc
+++ b/chrome/browser/ash/child_accounts/secondary_account_consent_logger_unittest.cc
@@ -114,7 +114,7 @@
     identity_test_env_.WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
         identity_test_env_.identity_manager()->GetPrimaryAccountId(
             signin::ConsentLevel::kSignin),
-        "access_token", base::Time::Now() + base::TimeDelta::FromHours(1));
+        "access_token", base::Time::Now() + base::Hours(1));
   }
 
   base::DictionaryValue CreateRequestBody() {
diff --git a/chrome/browser/ash/child_accounts/time_limit_consistency_test/consistency_golden_converter.cc b/chrome/browser/ash/child_accounts/time_limit_consistency_test/consistency_golden_converter.cc
index fb381bfb..ed41fb8 100644
--- a/chrome/browser/ash/child_accounts/time_limit_consistency_test/consistency_golden_converter.cc
+++ b/chrome/browser/ash/child_accounts/time_limit_consistency_test/consistency_golden_converter.cc
@@ -16,7 +16,7 @@
 namespace {
 
 // The default resets_at value is 6AM.
-constexpr base::TimeDelta kDefaultResetsAt = base::TimeDelta::FromHours(6);
+constexpr base::TimeDelta kDefaultResetsAt = base::Hours(6);
 
 // Converts a PolicyType object from the time limit processor to a
 // ConsistencyGoldenPolicy used by the goldens.
@@ -99,7 +99,7 @@
        input.usage_limits()) {
     utils::AddTimeUsageLimit(
         &policy, ConvertGoldenDayToProcessorDay(usage_limit.effective_day()),
-        base::TimeDelta::FromMinutes(usage_limit.usage_quota_mins()),
+        base::Minutes(usage_limit.usage_quota_mins()),
         usage_limit.has_last_updated_millis()
             ? base::Time::FromJavaTime(usage_limit.last_updated_millis())
             : default_last_updated);
@@ -113,7 +113,7 @@
       utils::AddOverrideWithDuration(
           &policy, usage_time_limit::TimeLimitOverride::Action::kUnlock,
           base::Time::FromJavaTime(override_entry.created_at_millis()),
-          base::TimeDelta::FromMilliseconds(override_entry.duration_millis()));
+          base::Milliseconds(override_entry.duration_millis()));
     } else {
       utils::AddOverride(
           &policy,
@@ -173,12 +173,12 @@
   previous_state.is_locked = true;
   previous_state.active_policy = usage_time_limit::PolicyType::kUsageLimit;
   previous_state.is_time_usage_limit_enabled = true;
-  previous_state.remaining_usage = base::TimeDelta::FromMinutes(0);
+  previous_state.remaining_usage = base::Minutes(0);
 
   // Usage limit started one minute before the override was created.
   previous_state.time_usage_limit_started =
       base::Time::FromJavaTime(usage_limit_override->created_at_millis()) -
-      base::TimeDelta::FromMinutes(1);
+      base::Minutes(1);
 
   return previous_state;
 }
diff --git a/chrome/browser/ash/child_accounts/time_limit_consistency_test/consistency_golden_converter_unittest.cc b/chrome/browser/ash/child_accounts/time_limit_consistency_test/consistency_golden_converter_unittest.cc
index 8d7c820..ba1fd31 100644
--- a/chrome/browser/ash/child_accounts/time_limit_consistency_test/consistency_golden_converter_unittest.cc
+++ b/chrome/browser/ash/child_accounts/time_limit_consistency_test/consistency_golden_converter_unittest.cc
@@ -34,16 +34,14 @@
 
   base::Value actual_output = ConvertGoldenInputToProcessorInput(input);
 
-  base::Value expected_output =
-      utils::CreateTimeLimitPolicy(base::TimeDelta::FromHours(6));
+  base::Value expected_output = utils::CreateTimeLimitPolicy(base::Hours(6));
 
   EXPECT_TRUE(actual_output == expected_output);
 }
 
 TEST_F(ConsistencyGoldenConverterTest, ConvertInputWithBedtimes) {
   ConsistencyGoldenInput input;
-  base::Value expected_output =
-      utils::CreateTimeLimitPolicy(base::TimeDelta::FromHours(6));
+  base::Value expected_output = utils::CreateTimeLimitPolicy(base::Hours(6));
 
   // First window: Wednesday, 22:30 to 8:00
   consistency_utils::AddWindowLimitEntryToGoldenInput(
@@ -68,8 +66,7 @@
 
 TEST_F(ConsistencyGoldenConverterTest, ConvertInputWithBedtimesLastUpdated) {
   ConsistencyGoldenInput input;
-  base::Value expected_output =
-      utils::CreateTimeLimitPolicy(base::TimeDelta::FromHours(6));
+  base::Value expected_output = utils::CreateTimeLimitPolicy(base::Hours(6));
 
   // First window: Wednesday, 22:30 to 8:00
   consistency_utils::AddWindowLimitEntryToGoldenInput(
@@ -95,14 +92,14 @@
   // First quota: Tuesday, 60 minutes
   consistency_utils::AddUsageLimitEntryToGoldenInput(&input, TUESDAY, 60,
                                                      absl::nullopt);
-  utils::AddTimeUsageLimit(&expected_output, utils::kTuesday,
-                           base::TimeDelta::FromMinutes(60), kTestLastUpdated);
+  utils::AddTimeUsageLimit(&expected_output, utils::kTuesday, base::Minutes(60),
+                           kTestLastUpdated);
 
   // Second quota: Friday, 30 minutes
   consistency_utils::AddUsageLimitEntryToGoldenInput(&input, FRIDAY, 30,
                                                      absl::nullopt);
-  utils::AddTimeUsageLimit(&expected_output, utils::kFriday,
-                           base::TimeDelta::FromMinutes(30), kTestLastUpdated);
+  utils::AddTimeUsageLimit(&expected_output, utils::kFriday, base::Minutes(30),
+                           kTestLastUpdated);
 
   base::Value actual_output = ConvertGoldenInputToProcessorInput(input);
 
@@ -111,20 +108,19 @@
 
 TEST_F(ConsistencyGoldenConverterTest, ConvertInputWithUsageLimitDefaultReset) {
   ConsistencyGoldenInput input;
-  base::Value expected_output =
-      utils::CreateTimeLimitPolicy(base::TimeDelta::FromHours(6));
+  base::Value expected_output = utils::CreateTimeLimitPolicy(base::Hours(6));
 
   // First quota: Tuesday, 60 minutes
   consistency_utils::AddUsageLimitEntryToGoldenInput(&input, TUESDAY, 60,
                                                      absl::nullopt);
-  utils::AddTimeUsageLimit(&expected_output, utils::kTuesday,
-                           base::TimeDelta::FromMinutes(60), kTestLastUpdated);
+  utils::AddTimeUsageLimit(&expected_output, utils::kTuesday, base::Minutes(60),
+                           kTestLastUpdated);
 
   // Second quota: Friday, 30 minutes
   consistency_utils::AddUsageLimitEntryToGoldenInput(&input, FRIDAY, 30,
                                                      absl::nullopt);
-  utils::AddTimeUsageLimit(&expected_output, utils::kFriday,
-                           base::TimeDelta::FromMinutes(30), kTestLastUpdated);
+  utils::AddTimeUsageLimit(&expected_output, utils::kFriday, base::Minutes(30),
+                           kTestLastUpdated);
 
   base::Value actual_output = ConvertGoldenInputToProcessorInput(input);
 
@@ -133,14 +129,12 @@
 
 TEST_F(ConsistencyGoldenConverterTest, ConvertInputWithUsageLimitLastUpdated) {
   ConsistencyGoldenInput input;
-  base::Value expected_output =
-      utils::CreateTimeLimitPolicy(base::TimeDelta::FromHours(6));
+  base::Value expected_output = utils::CreateTimeLimitPolicy(base::Hours(6));
 
   // First quota: Tuesday, 60 minutes
   consistency_utils::AddUsageLimitEntryToGoldenInput(&input, TUESDAY, 60,
                                                      kTestTimestamp);
-  utils::AddTimeUsageLimit(&expected_output, utils::kTuesday,
-                           base::TimeDelta::FromMinutes(60),
+  utils::AddTimeUsageLimit(&expected_output, utils::kTuesday, base::Minutes(60),
                            base::Time::FromJavaTime(kTestTimestamp));
 
   base::Value actual_output = ConvertGoldenInputToProcessorInput(input);
@@ -150,8 +144,7 @@
 
 TEST_F(ConsistencyGoldenConverterTest, ConvertInputWithOverride) {
   ConsistencyGoldenInput input;
-  base::Value expected_output =
-      utils::CreateTimeLimitPolicy(base::TimeDelta::FromHours(6));
+  base::Value expected_output = utils::CreateTimeLimitPolicy(base::Hours(6));
 
   // Override: Unlock bedtime
   consistency_utils::AddOverrideToGoldenInput(&input, UNLOCK_WINDOW_LIMIT,
@@ -167,8 +160,7 @@
 
 TEST_F(ConsistencyGoldenConverterTest, ConvertInputWithTimedOverride) {
   ConsistencyGoldenInput input;
-  base::Value expected_output =
-      utils::CreateTimeLimitPolicy(base::TimeDelta::FromHours(6));
+  base::Value expected_output = utils::CreateTimeLimitPolicy(base::Hours(6));
   const int64_t override_duration_millis = 10000;
 
   // Override: Grant more time
@@ -177,7 +169,7 @@
   utils::AddOverrideWithDuration(
       &expected_output, usage_time_limit::TimeLimitOverride::Action::kUnlock,
       base::Time::FromJavaTime(kTestTimestamp),
-      base::TimeDelta::FromMilliseconds(override_duration_millis));
+      base::Milliseconds(override_duration_millis));
 
   base::Value actual_output = ConvertGoldenInputToProcessorInput(input);
 
@@ -229,7 +221,7 @@
   state.active_policy = usage_time_limit::PolicyType::kUsageLimit;
   state.next_state_active_policy = usage_time_limit::PolicyType::kNoPolicy;
   state.is_time_usage_limit_enabled = true;
-  state.remaining_usage = base::TimeDelta::FromMilliseconds(remaining_millis);
+  state.remaining_usage = base::Milliseconds(remaining_millis);
   state.next_unlock_time = base::Time::FromJavaTime(kTestTimestamp);
 
   ConsistencyGoldenOutput actual_output =
@@ -257,10 +249,9 @@
   EXPECT_TRUE(generated_state->is_time_usage_limit_enabled);
   EXPECT_EQ(generated_state->active_policy,
             usage_time_limit::PolicyType::kUsageLimit);
-  EXPECT_EQ(generated_state->remaining_usage, base::TimeDelta::FromMinutes(0));
+  EXPECT_EQ(generated_state->remaining_usage, base::Minutes(0));
   EXPECT_EQ(generated_state->time_usage_limit_started,
-            base::Time::FromJavaTime(kTestTimestamp) -
-                base::TimeDelta::FromMinutes(1));
+            base::Time::FromJavaTime(kTestTimestamp) - base::Minutes(1));
 }
 
 TEST_F(ConsistencyGoldenConverterTest, GeneratePreviousStateOtherOverrides) {
diff --git a/chrome/browser/ash/child_accounts/time_limit_consistency_test/consistency_test.cc b/chrome/browser/ash/child_accounts/time_limit_consistency_test/consistency_test.cc
index dfa9c00..b7c105f 100644
--- a/chrome/browser/ash/child_accounts/time_limit_consistency_test/consistency_test.cc
+++ b/chrome/browser/ash/child_accounts/time_limit_consistency_test/consistency_test.cc
@@ -42,8 +42,8 @@
   base::Value policy = ConvertGoldenInputToProcessorInput(golden_case.input());
   usage_time_limit::State state = usage_time_limit::GetState(
       policy, /* local_override */ nullptr,
-      base::TimeDelta::FromMilliseconds(current_state.usage_millis()),
-      usage_timestamp, current_time, timezone.get(), previous_state);
+      base::Milliseconds(current_state.usage_millis()), usage_timestamp,
+      current_time, timezone.get(), previous_state);
   ConsistencyGoldenOutput actual_output =
       ConvertProcessorOutputToGoldenOutput(state);
 
diff --git a/chrome/browser/ash/child_accounts/time_limit_notifier.cc b/chrome/browser/ash/child_accounts/time_limit_notifier.cc
index e901826..d17ab44 100644
--- a/chrome/browser/ash/child_accounts/time_limit_notifier.cc
+++ b/chrome/browser/ash/child_accounts/time_limit_notifier.cc
@@ -25,10 +25,8 @@
 
 namespace {
 
-constexpr base::TimeDelta kWarningNotificationTimeout =
-    base::TimeDelta::FromMinutes(5);
-constexpr base::TimeDelta kExitNotificationTimeout =
-    base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kWarningNotificationTimeout = base::Minutes(5);
+constexpr base::TimeDelta kExitNotificationTimeout = base::Minutes(1);
 
 // Lock notification id. All the time limit lock notifications share the same id
 // so that a subsequent notification can replace the previous one.
diff --git a/chrome/browser/ash/child_accounts/time_limit_notifier_unittest.cc b/chrome/browser/ash/child_accounts/time_limit_notifier_unittest.cc
index 8884c32f..45fecb28 100644
--- a/chrome/browser/ash/child_accounts/time_limit_notifier_unittest.cc
+++ b/chrome/browser/ash/child_accounts/time_limit_notifier_unittest.cc
@@ -65,51 +65,49 @@
 
 TEST_F(TimeLimitNotifierTest, ShowLockNotifications) {
   notifier_.MaybeScheduleLockNotifications(
-      TimeLimitNotifier::LimitType::kScreenTime,
-      base::TimeDelta::FromMinutes(20));
+      TimeLimitNotifier::LimitType::kScreenTime, base::Minutes(20));
 
   // Fast forward a bit, but not far enough to show a notification.
-  task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(10));
+  task_runner_->FastForwardBy(base::Minutes(10));
   EXPECT_FALSE(HasLockNotification());
 
   // Fast forward to the 5-minute warning time.
-  task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(5));
+  task_runner_->FastForwardBy(base::Minutes(5));
   EXPECT_TRUE(HasLockNotification());
 
   // Fast forward to the 1-minute warning time.
-  task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(4));
+  task_runner_->FastForwardBy(base::Minutes(4));
   EXPECT_TRUE(HasLockNotification());
 }
 
 TEST_F(TimeLimitNotifierTest, DismisLocksNotification) {
   notifier_.MaybeScheduleLockNotifications(
-      TimeLimitNotifier::LimitType::kBedTime, base::TimeDelta::FromMinutes(10));
+      TimeLimitNotifier::LimitType::kBedTime, base::Minutes(10));
 
   // Fast forward to the 5-minute warning time.
-  task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(5));
+  task_runner_->FastForwardBy(base::Minutes(5));
   EXPECT_TRUE(HasLockNotification());
   RemoveNotification();
 
   // Fast forward one minute; the same notification is not reshown.
-  task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_runner_->FastForwardBy(base::Minutes(1));
   EXPECT_FALSE(HasLockNotification());
 
   // Fast forward to the 1-minute warning time.
-  task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(3));
+  task_runner_->FastForwardBy(base::Minutes(3));
   EXPECT_TRUE(HasLockNotification());
 }
 
 TEST_F(TimeLimitNotifierTest, OnlyExiLocktNotification) {
   notifier_.MaybeScheduleLockNotifications(
-      TimeLimitNotifier::LimitType::kScreenTime,
-      base::TimeDelta::FromMinutes(3));
+      TimeLimitNotifier::LimitType::kScreenTime, base::Minutes(3));
 
   // Fast forward a bit, but not far enough to show a notification.
-  task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_runner_->FastForwardBy(base::Minutes(1));
   EXPECT_FALSE(HasLockNotification());
 
   // Fast forward to the 1-minute warning time.
-  task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_runner_->FastForwardBy(base::Minutes(1));
   EXPECT_TRUE(HasLockNotification());
   RemoveNotification();
 
@@ -120,7 +118,7 @@
 
 TEST_F(TimeLimitNotifierTest, NoLockNotifications) {
   notifier_.MaybeScheduleLockNotifications(
-      TimeLimitNotifier::LimitType::kBedTime, base::TimeDelta::FromSeconds(30));
+      TimeLimitNotifier::LimitType::kBedTime, base::Seconds(30));
 
   task_runner_->FastForwardUntilNoTasksRemain();
   EXPECT_FALSE(HasLockNotification());
@@ -128,11 +126,10 @@
 
 TEST_F(TimeLimitNotifierTest, UnscheduleLockNotifications) {
   notifier_.MaybeScheduleLockNotifications(
-      TimeLimitNotifier::LimitType::kScreenTime,
-      base::TimeDelta::FromMinutes(10));
+      TimeLimitNotifier::LimitType::kScreenTime, base::Minutes(10));
 
   // Fast forward to the 5-minute warning time.
-  task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(5));
+  task_runner_->FastForwardBy(base::Minutes(5));
   EXPECT_TRUE(HasLockNotification());
   RemoveNotification();
 
@@ -144,25 +141,23 @@
 
 TEST_F(TimeLimitNotifierTest, RescheduleLockNotifications) {
   notifier_.MaybeScheduleLockNotifications(
-      TimeLimitNotifier::LimitType::kScreenTime,
-      base::TimeDelta::FromMinutes(20));
+      TimeLimitNotifier::LimitType::kScreenTime, base::Minutes(20));
 
   // Update the notifier with a new limit.
   notifier_.MaybeScheduleLockNotifications(
-      TimeLimitNotifier::LimitType::kScreenTime,
-      base::TimeDelta::FromMinutes(30));
+      TimeLimitNotifier::LimitType::kScreenTime, base::Minutes(30));
 
   // Fast forward a bit, but not far enough to show a notification.
-  task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(20));
+  task_runner_->FastForwardBy(base::Minutes(20));
   EXPECT_FALSE(HasLockNotification());
 
   // Fast forward to the 5-minute warning time.
-  task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(5));
+  task_runner_->FastForwardBy(base::Minutes(5));
   EXPECT_TRUE(HasLockNotification());
   RemoveNotification();
 
   // Fast forward to the 1-minute warning time.
-  task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(4));
+  task_runner_->FastForwardBy(base::Minutes(4));
   EXPECT_TRUE(HasLockNotification());
 }
 
diff --git a/chrome/browser/ash/child_accounts/time_limit_override.cc b/chrome/browser/ash/child_accounts/time_limit_override.cc
index d9db4c39..dcbd967 100644
--- a/chrome/browser/ash/child_accounts/time_limit_override.cc
+++ b/chrome/browser/ash/child_accounts/time_limit_override.cc
@@ -71,13 +71,12 @@
       *action_string == kOverrideActionLock ? Action::kLock : Action::kUnlock;
 
   base::Time creation_time =
-      base::Time::UnixEpoch() +
-      base::TimeDelta::FromMilliseconds(creation_time_millis);
+      base::Time::UnixEpoch() + base::Milliseconds(creation_time_millis);
 
   const base::Value* duration_value = dict->FindPath(
       {kOverrideActionSpecificData, kOverrideActionDurationMins});
   absl::optional<base::TimeDelta> duration =
-      duration_value ? base::TimeDelta::FromMinutes(duration_value->GetInt())
+      duration_value ? base::Minutes(duration_value->GetInt())
                      : absl::optional<base::TimeDelta>();
 
   return TimeLimitOverride(action, creation_time, duration);
diff --git a/chrome/browser/ash/child_accounts/time_limit_test_utils.cc b/chrome/browser/ash/child_accounts/time_limit_test_utils.cc
index 18607bd..6b41d89 100644
--- a/chrome/browser/ash/child_accounts/time_limit_test_utils.cc
+++ b/chrome/browser/ash/child_accounts/time_limit_test_utils.cc
@@ -61,18 +61,15 @@
   DCHECK_GE(hour, 0);
   DCHECK_LT(minute, 60);
   DCHECK_GE(minute, 0);
-  return base::TimeDelta::FromMinutes(hour * 60 + minute);
+  return base::Minutes(hour * 60 + minute);
 }
 
 base::Value CreatePolicyTime(base::TimeDelta time) {
-  DCHECK_EQ(
-      time.InNanoseconds() % base::TimeDelta::FromMinutes(1).InNanoseconds(),
-      0);
-  DCHECK_LT(time, base::TimeDelta::FromHours(24));
+  DCHECK_EQ(time.InNanoseconds() % base::Minutes(1).InNanoseconds(), 0);
+  DCHECK_LT(time, base::Hours(24));
 
   int hour = time.InHours();
-  int minute = time.InMinutes() -
-               time.InHours() * base::TimeDelta::FromHours(1).InMinutes();
+  int minute = time.InMinutes() - time.InHours() * base::Hours(1).InMinutes();
   base::Value policyTime(base::Value::Type::DICTIONARY);
   policyTime.SetKey(kWindowLimitEntryTimeHour, base::Value(hour));
   policyTime.SetKey(kWindowLimitEntryTimeMinute, base::Value(minute));
@@ -118,10 +115,8 @@
                        base::Time last_updated) {
   // Asserts that the usage limit quota in minutes corresponds to an integer
   // number.
-  DCHECK_EQ(
-      quota.InNanoseconds() % base::TimeDelta::FromMinutes(1).InNanoseconds(),
-      0);
-  DCHECK_LT(quota, base::TimeDelta::FromHours(24));
+  DCHECK_EQ(quota.InNanoseconds() % base::Minutes(1).InNanoseconds(), 0);
+  DCHECK_LT(quota, base::Hours(24));
 
   std::transform(day.begin(), day.end(), day.begin(), ::tolower);
   policy->FindKey(kTimeUsageLimit)
diff --git a/chrome/browser/ash/child_accounts/time_limits/app_activity_registry.cc b/chrome/browser/ash/child_accounts/time_limits/app_activity_registry.cc
index 2f7a017..e31b6ff 100644
--- a/chrome/browser/ash/child_accounts/time_limits/app_activity_registry.cc
+++ b/chrome/browser/ash/child_accounts/time_limits/app_activity_registry.cc
@@ -30,9 +30,9 @@
 
 namespace {
 
-constexpr base::TimeDelta kFiveMinutes = base::TimeDelta::FromMinutes(5);
-constexpr base::TimeDelta kOneMinute = base::TimeDelta::FromMinutes(1);
-constexpr base::TimeDelta kZeroMinutes = base::TimeDelta::FromMinutes(0);
+constexpr base::TimeDelta kFiveMinutes = base::Minutes(5);
+constexpr base::TimeDelta kOneMinute = base::Minutes(1);
+constexpr base::TimeDelta kZeroMinutes = base::Minutes(0);
 
 enterprise_management::AppActivity::AppState AppStateForReporting(
     AppState state) {
@@ -150,12 +150,12 @@
   DCHECK(pref_service_);
 
   if (ShouldCleanUpStoredPref())
-    CleanRegistry(base::Time::Now() - base::TimeDelta::FromDays(30));
+    CleanRegistry(base::Time::Now() - base::Days(30));
 
   InitializeRegistryFromPref();
 
-  save_data_to_pref_service_.Start(FROM_HERE, base::TimeDelta::FromMinutes(5),
-                                   this, &AppActivityRegistry::SaveAppActivity);
+  save_data_to_pref_service_.Start(FROM_HERE, base::Minutes(5), this,
+                                   &AppActivityRegistry::SaveAppActivity);
 
   app_service_wrapper_->AddObserver(this);
 }
@@ -1029,7 +1029,7 @@
 }
 
 base::TimeDelta AppActivityRegistry::GetWebActiveRunningTime() const {
-  base::TimeDelta active_running_time = base::TimeDelta::FromSeconds(0);
+  base::TimeDelta active_running_time = base::Seconds(0);
   for (const auto& app_info : activity_registry_) {
     const AppId& app_id = app_info.first;
     const AppDetails& details = app_info.second;
@@ -1065,7 +1065,7 @@
       pref_service_->GetInt64(prefs::kPerAppTimeLimitsLatestLimitUpdateTime);
 
   latest_app_limit_update_ = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(last_limits_updates));
+      base::Microseconds(last_limits_updates));
 
   InitializeAppActivities();
 }
@@ -1126,10 +1126,10 @@
   if (last_time == 0)
     return false;
 
-  base::Time time = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(last_time));
+  base::Time time =
+      base::Time::FromDeltaSinceWindowsEpoch(base::Microseconds(last_time));
 
-  return time < base::Time::Now() - base::TimeDelta::FromDays(30);
+  return time < base::Time::Now() - base::Days(30);
 }
 
 void AppActivityRegistry::SendSystemNotificationsForApp(const AppId& app_id) {
diff --git a/chrome/browser/ash/child_accounts/time_limits/app_activity_registry_unittest.cc b/chrome/browser/ash/child_accounts/time_limits/app_activity_registry_unittest.cc
index adae5d3f..b442545b 100644
--- a/chrome/browser/ash/child_accounts/time_limits/app_activity_registry_unittest.cc
+++ b/chrome/browser/ash/child_accounts/time_limits/app_activity_registry_unittest.cc
@@ -179,7 +179,7 @@
   auto app1_instance_key = CreateInstanceKeyForApp(kApp1);
 
   base::Time app1_start_time = base::Time::Now();
-  base::TimeDelta active_time = base::TimeDelta::FromMinutes(5);
+  base::TimeDelta active_time = base::Minutes(5);
   registry().OnAppActive(kApp1, app1_instance_key, app1_start_time);
   task_environment()->FastForwardBy(active_time / 2);
   EXPECT_EQ(active_time / 2, registry().GetActiveTime(kApp1));
@@ -196,7 +196,7 @@
   auto app2_instance_key1 = CreateInstanceKeyForApp(kApp2);
   auto app2_instance_key2 = CreateInstanceKeyForApp(kApp2);
 
-  base::TimeDelta app2_active_time = base::TimeDelta::FromMinutes(5);
+  base::TimeDelta app2_active_time = base::Minutes(5);
 
   registry().OnAppActive(kApp2, app2_instance_key1, base::Time::Now());
   task_environment()->FastForwardBy(app2_active_time / 2);
@@ -218,7 +218,7 @@
   // be active for the whole 5 minutes.
   EXPECT_EQ(app2_active_time, registry().GetActiveTime(kApp2));
 
-  base::TimeDelta app2_inactive_time = base::TimeDelta::FromMinutes(1);
+  base::TimeDelta app2_inactive_time = base::Minutes(1);
 
   registry().OnAppActive(kApp2, app2_instance_key1, base::Time::Now());
   task_environment()->FastForwardBy(app2_active_time / 2);
@@ -243,8 +243,7 @@
   base::Time start = base::Time::Now();
 
   // Set the time limit for kApp1 to be 10 minutes.
-  const AppLimit limit(AppRestriction::kTimeLimit,
-                       base::TimeDelta::FromMinutes(10), start);
+  const AppLimit limit(AppRestriction::kTimeLimit, base::Minutes(10), start);
   SetAppLimit(kApp1, limit);
 
   EXPECT_EQ(registry().GetAppState(kApp1), AppState::kAvailable);
@@ -258,8 +257,8 @@
               ShowAppTimeLimitNotification(kApp1, testing::_,
                                            AppNotification::kFiveMinutes))
       .Times(1);
-  task_environment()->FastForwardBy(base::TimeDelta::FromMinutes(5));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(5), registry().GetActiveTime(kApp1));
+  task_environment()->FastForwardBy(base::Minutes(5));
+  EXPECT_EQ(base::Minutes(5), registry().GetActiveTime(kApp1));
   EXPECT_TRUE(registry().IsAppActive(kApp1));
 
   // Expect One minute left notification.
@@ -267,16 +266,16 @@
               ShowAppTimeLimitNotification(kApp1, testing::_,
                                            AppNotification::kOneMinute))
       .Times(1);
-  task_environment()->FastForwardBy(base::TimeDelta::FromMinutes(4));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(9), registry().GetActiveTime(kApp1));
+  task_environment()->FastForwardBy(base::Minutes(4));
+  EXPECT_EQ(base::Minutes(9), registry().GetActiveTime(kApp1));
 
   // Expect time limit reached notification.
   EXPECT_CALL(notification_delegate_mock(),
               ShowAppTimeLimitNotification(kApp1, testing::_,
                                            AppNotification::kTimeLimitReached))
       .Times(1);
-  task_environment()->FastForwardBy(base::TimeDelta::FromMinutes(1));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(10), registry().GetActiveTime(kApp1));
+  task_environment()->FastForwardBy(base::Minutes(1));
+  EXPECT_EQ(base::Minutes(10), registry().GetActiveTime(kApp1));
 
   EXPECT_EQ(registry().GetAppState(kApp1), AppState::kLimitReached);
 }
@@ -286,18 +285,16 @@
   base::Time start = base::Time::Now();
 
   // Set the time limit for kApp1 to be 25 minutes.
-  const AppLimit limit(AppRestriction::kTimeLimit,
-                       base::TimeDelta::FromMinutes(25), start);
+  const AppLimit limit(AppRestriction::kTimeLimit, base::Minutes(25), start);
   SetAppLimit(kApp1, limit);
 
   auto app1_instance_key = CreateInstanceKeyForApp(kApp1);
-  base::TimeDelta active_time = base::TimeDelta::FromMinutes(10);
+  base::TimeDelta active_time = base::Minutes(10);
   registry().OnAppActive(kApp1, app1_instance_key, start);
 
   task_environment()->FastForwardBy(active_time);
 
-  const AppLimit new_limit(AppRestriction::kTimeLimit,
-                           base::TimeDelta::FromMinutes(14),
+  const AppLimit new_limit(AppRestriction::kTimeLimit, base::Minutes(14),
                            start + active_time);
   SetAppLimit(kApp1, new_limit);
 
@@ -306,7 +303,7 @@
               ShowAppTimeLimitNotification(kApp1, testing::_,
                                            AppNotification::kOneMinute))
       .Times(1);
-  task_environment()->FastForwardBy(base::TimeDelta::FromMinutes(3));
+  task_environment()->FastForwardBy(base::Minutes(3));
 }
 
 TEST_F(AppActivityRegistryTest, SkippedAllNotifications) {
@@ -314,19 +311,17 @@
   base::Time start = base::Time::Now();
 
   // Set the time limit for kApp1 to be 25 minutes.
-  const AppLimit limit(AppRestriction::kTimeLimit,
-                       base::TimeDelta::FromMinutes(25), start);
+  const AppLimit limit(AppRestriction::kTimeLimit, base::Minutes(25), start);
   SetAppLimit(kApp1, limit);
 
   auto app1_instance_key = CreateInstanceKeyForApp(kApp1);
-  base::TimeDelta active_time = base::TimeDelta::FromMinutes(10);
+  base::TimeDelta active_time = base::Minutes(10);
   registry().OnAppActive(kApp1, app1_instance_key, start);
 
   task_environment()->FastForwardBy(active_time);
 
   // Notice that the 5 minute and 1 minute notifications are jumped.
-  const AppLimit new_limit(AppRestriction::kTimeLimit,
-                           base::TimeDelta::FromMinutes(5),
+  const AppLimit new_limit(AppRestriction::kTimeLimit, base::Minutes(5),
                            start + active_time);
   SetAppLimit(kApp1, new_limit);
 
@@ -336,7 +331,7 @@
 TEST_F(AppActivityRegistryTest, BlockedAppSetAvailable) {
   base::Time start = base::Time::Now();
 
-  const base::TimeDelta kTenMinutes = base::TimeDelta::FromMinutes(10);
+  const base::TimeDelta kTenMinutes = base::Minutes(10);
   const AppLimit limit(AppRestriction::kTimeLimit, kTenMinutes, start);
   SetAppLimit(kApp1, limit);
 
@@ -350,8 +345,7 @@
 
   EXPECT_EQ(registry().GetAppState(kApp1), AppState::kLimitReached);
 
-  const AppLimit new_limit(AppRestriction::kTimeLimit,
-                           base::TimeDelta::FromMinutes(20),
+  const AppLimit new_limit(AppRestriction::kTimeLimit, base::Minutes(20),
                            start + kTenMinutes);
   SetAppLimit(kApp1, new_limit);
   EXPECT_EQ(registry().GetAppState(kApp1), AppState::kAvailable);
@@ -359,11 +353,10 @@
 
 TEST_F(AppActivityRegistryTest, ResetTimeReached) {
   base::Time start = base::Time::Now();
-  const base::TimeDelta kTenMinutes = base::TimeDelta::FromMinutes(10);
+  const base::TimeDelta kTenMinutes = base::Minutes(10);
 
   const AppLimit limit1(AppRestriction::kTimeLimit, kTenMinutes, start);
-  const AppLimit limit2(AppRestriction::kTimeLimit,
-                        base::TimeDelta::FromMinutes(20), start);
+  const AppLimit limit2(AppRestriction::kTimeLimit, base::Minutes(20), start);
   const std::map<AppId, AppLimit> limits{{kApp1, limit1},
                                          {GetChromeAppId(), limit2}};
   registry().UpdateAppLimits(limits);
@@ -386,9 +379,9 @@
   // Reset time has been reached.
   registry().OnResetTimeReached(start + kTenMinutes);
   EXPECT_FALSE(registry().IsAppTimeLimitReached(kApp1));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(0), registry().GetActiveTime(kApp1));
+  EXPECT_EQ(base::Seconds(0), registry().GetActiveTime(kApp1));
   EXPECT_FALSE(registry().IsAppTimeLimitReached(kApp2));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(0), registry().GetActiveTime(kApp2));
+  EXPECT_EQ(base::Seconds(0), registry().GetActiveTime(kApp2));
 
   // Now make sure that the timers have been scheduled appropriately.
   registry().OnAppActive(kApp1, app1_instance_key, start);
@@ -410,8 +403,8 @@
 
 TEST_F(AppActivityRegistryTest, SharedTimeLimitForChromeAndWebApps) {
   base::Time start = base::Time::Now();
-  const base::TimeDelta kOneHour = base::TimeDelta::FromHours(1);
-  const base::TimeDelta kHalfHour = base::TimeDelta::FromMinutes(30);
+  const base::TimeDelta kOneHour = base::Hours(1);
+  const base::TimeDelta kHalfHour = base::Minutes(30);
 
   const AppId kChromeAppId = GetChromeAppId();
 
@@ -461,131 +454,116 @@
   registry().OnAppActive(kApp1, app1_instance_key, start);
 
   EXPECT_TRUE(registry().IsAppActive(kApp1));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(0), registry().GetActiveTime(kApp1));
+  EXPECT_EQ(base::Minutes(0), registry().GetActiveTime(kApp1));
   EXPECT_EQ(absl::nullopt, registry_test().GetAppLimit(kApp1));
   EXPECT_EQ(absl::nullopt, registry().GetTimeLimit(kApp1));
   EXPECT_EQ(absl::nullopt, registry_test().GetTimeLeft(kApp1));
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromMinutes(5));
+  task_environment()->FastForwardBy(base::Minutes(5));
 
   // Limit set for active app.
-  const AppLimit limit1(AppRestriction::kTimeLimit,
-                        base::TimeDelta::FromMinutes(11), base::Time::Now());
+  const AppLimit limit1(AppRestriction::kTimeLimit, base::Minutes(11),
+                        base::Time::Now());
   SetAppLimit(kApp1, limit1);
 
   EXPECT_TRUE(registry().IsAppActive(kApp1));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(5), registry().GetActiveTime(kApp1));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(11), *registry().GetTimeLimit(kApp1));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(6),
-            registry_test().GetTimeLeft(kApp1));
+  EXPECT_EQ(base::Minutes(5), registry().GetActiveTime(kApp1));
+  EXPECT_EQ(base::Minutes(11), *registry().GetTimeLimit(kApp1));
+  EXPECT_EQ(base::Minutes(6), registry_test().GetTimeLeft(kApp1));
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromMinutes(5));
+  task_environment()->FastForwardBy(base::Minutes(5));
 
   EXPECT_TRUE(registry().IsAppActive(kApp1));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(10), registry().GetActiveTime(kApp1));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(11), *registry().GetTimeLimit(kApp1));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(1),
-            registry_test().GetTimeLeft(kApp1));
+  EXPECT_EQ(base::Minutes(10), registry().GetActiveTime(kApp1));
+  EXPECT_EQ(base::Minutes(11), *registry().GetTimeLimit(kApp1));
+  EXPECT_EQ(base::Minutes(1), registry_test().GetTimeLeft(kApp1));
 
   // Increase the limit.
-  const AppLimit limit_increase(AppRestriction::kTimeLimit,
-                                base::TimeDelta::FromMinutes(20),
+  const AppLimit limit_increase(AppRestriction::kTimeLimit, base::Minutes(20),
                                 base::Time::Now());
   SetAppLimit(kApp1, limit_increase);
   EXPECT_TRUE(registry().IsAppActive(kApp1));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(10), registry().GetActiveTime(kApp1));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(20), *registry().GetTimeLimit(kApp1));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(10),
-            registry_test().GetTimeLeft(kApp1));
+  EXPECT_EQ(base::Minutes(10), registry().GetActiveTime(kApp1));
+  EXPECT_EQ(base::Minutes(20), *registry().GetTimeLimit(kApp1));
+  EXPECT_EQ(base::Minutes(10), registry_test().GetTimeLeft(kApp1));
 
   // Decrease the limit.
-  const AppLimit limit_decrease(AppRestriction::kTimeLimit,
-                                base::TimeDelta::FromMinutes(5),
+  const AppLimit limit_decrease(AppRestriction::kTimeLimit, base::Minutes(5),
                                 base::Time::Now());
   SetAppLimit(kApp1, limit_decrease);
   EXPECT_FALSE(registry().IsAppActive(kApp1));
   EXPECT_TRUE(registry().IsAppTimeLimitReached(kApp1));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(10), registry().GetActiveTime(kApp1));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(5), *registry().GetTimeLimit(kApp1));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(0),
-            registry_test().GetTimeLeft(kApp1));
+  EXPECT_EQ(base::Minutes(10), registry().GetActiveTime(kApp1));
+  EXPECT_EQ(base::Minutes(5), *registry().GetTimeLimit(kApp1));
+  EXPECT_EQ(base::Minutes(0), registry_test().GetTimeLeft(kApp1));
 }
 
 TEST_F(AppActivityRegistryTest, LimitChangesForInactiveApp) {
   // Set initial limit.
-  const AppLimit limit(AppRestriction::kTimeLimit,
-                       base::TimeDelta::FromMinutes(5), base::Time::Now());
+  const AppLimit limit(AppRestriction::kTimeLimit, base::Minutes(5),
+                       base::Time::Now());
   SetAppLimit(kApp1, limit);
 
   // Use available limit - app should become paused.
   auto app1_instance_key = CreateInstanceKeyForApp(kApp1);
   registry().OnAppActive(kApp1, app1_instance_key, base::Time::Now());
-  task_environment()->FastForwardBy(base::TimeDelta::FromMinutes(5));
+  task_environment()->FastForwardBy(base::Minutes(5));
 
   EXPECT_FALSE(registry().IsAppActive(kApp1));
   EXPECT_TRUE(registry().IsAppTimeLimitReached(kApp1));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(5), registry().GetActiveTime(kApp1));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(5), *registry().GetTimeLimit(kApp1));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(0),
-            registry_test().GetTimeLeft(kApp1));
+  EXPECT_EQ(base::Minutes(5), registry().GetActiveTime(kApp1));
+  EXPECT_EQ(base::Minutes(5), *registry().GetTimeLimit(kApp1));
+  EXPECT_EQ(base::Minutes(0), registry_test().GetTimeLeft(kApp1));
 
   // Decrease limit - app should remain paused.
-  const AppLimit decreased_limit(AppRestriction::kTimeLimit,
-                                 base::TimeDelta::FromMinutes(3),
+  const AppLimit decreased_limit(AppRestriction::kTimeLimit, base::Minutes(3),
                                  base::Time::Now());
   SetAppLimit(kApp1, decreased_limit);
 
   EXPECT_FALSE(registry().IsAppActive(kApp1));
   EXPECT_TRUE(registry().IsAppTimeLimitReached(kApp1));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(5), registry().GetActiveTime(kApp1));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(3), *registry().GetTimeLimit(kApp1));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(0),
-            registry_test().GetTimeLeft(kApp1));
+  EXPECT_EQ(base::Minutes(5), registry().GetActiveTime(kApp1));
+  EXPECT_EQ(base::Minutes(3), *registry().GetTimeLimit(kApp1));
+  EXPECT_EQ(base::Minutes(0), registry_test().GetTimeLeft(kApp1));
 
   // Increase limit - app should become available, but inactive.
-  const AppLimit increased_limit(AppRestriction::kTimeLimit,
-                                 base::TimeDelta::FromMinutes(10),
+  const AppLimit increased_limit(AppRestriction::kTimeLimit, base::Minutes(10),
                                  base::Time::Now());
   SetAppLimit(kApp1, increased_limit);
 
   EXPECT_FALSE(registry().IsAppActive(kApp1));
   EXPECT_TRUE(registry().IsAppAvailable(kApp1));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(5), registry().GetActiveTime(kApp1));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(10), *registry().GetTimeLimit(kApp1));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(5),
-            registry_test().GetTimeLeft(kApp1));
+  EXPECT_EQ(base::Minutes(5), registry().GetActiveTime(kApp1));
+  EXPECT_EQ(base::Minutes(10), *registry().GetTimeLimit(kApp1));
+  EXPECT_EQ(base::Minutes(5), registry_test().GetTimeLeft(kApp1));
 
   // Decrease limit above used time - app should stay available.
-  const AppLimit limit_above_used(AppRestriction::kTimeLimit,
-                                  base::TimeDelta::FromMinutes(8),
+  const AppLimit limit_above_used(AppRestriction::kTimeLimit, base::Minutes(8),
                                   base::Time::Now());
   SetAppLimit(kApp1, limit_above_used);
 
   EXPECT_FALSE(registry().IsAppActive(kApp1));
   EXPECT_TRUE(registry().IsAppAvailable(kApp1));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(5), registry().GetActiveTime(kApp1));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(8), *registry().GetTimeLimit(kApp1));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(3),
-            registry_test().GetTimeLeft(kApp1));
+  EXPECT_EQ(base::Minutes(5), registry().GetActiveTime(kApp1));
+  EXPECT_EQ(base::Minutes(8), *registry().GetTimeLimit(kApp1));
+  EXPECT_EQ(base::Minutes(3), registry_test().GetTimeLeft(kApp1));
 
   // Decrease limit below below time - app should become unavailabe.
-  const AppLimit limit_below_used(AppRestriction::kTimeLimit,
-                                  base::TimeDelta::FromMinutes(4),
+  const AppLimit limit_below_used(AppRestriction::kTimeLimit, base::Minutes(4),
                                   base::Time::Now());
   SetAppLimit(kApp1, limit_below_used);
 
   EXPECT_FALSE(registry().IsAppActive(kApp1));
   EXPECT_TRUE(registry().IsAppTimeLimitReached(kApp1));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(5), registry().GetActiveTime(kApp1));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(4), *registry().GetTimeLimit(kApp1));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(0),
-            *registry_test().GetTimeLeft(kApp1));
+  EXPECT_EQ(base::Minutes(5), registry().GetActiveTime(kApp1));
+  EXPECT_EQ(base::Minutes(4), *registry().GetTimeLimit(kApp1));
+  EXPECT_EQ(base::Minutes(0), *registry_test().GetTimeLeft(kApp1));
 }
 
 TEST_F(AppActivityRegistryTest, RemoveLimitsFromAllowlistedApps) {
   // Set initial limit.
-  const AppLimit limit(AppRestriction::kTimeLimit,
-                       base::TimeDelta::FromMinutes(5), base::Time::Now());
+  const AppLimit limit(AppRestriction::kTimeLimit, base::Minutes(5),
+                       base::Time::Now());
   SetAppLimit(kApp1, limit);
   SetAppLimit(kApp2, limit);
 
@@ -609,8 +587,8 @@
   registry().OnTimeLimitAllowlistChanged(wrapper);
 
   // Set initial limit.
-  const AppLimit limit(AppRestriction::kTimeLimit,
-                       base::TimeDelta::FromMinutes(5), base::Time::Now());
+  const AppLimit limit(AppRestriction::kTimeLimit, base::Minutes(5),
+                       base::Time::Now());
   SetAppLimit(kApp1, limit);
   SetAppLimit(kApp2, limit);
 
@@ -621,7 +599,7 @@
 
 TEST_F(AppActivityRegistryTest, RestoredApplicationInformation) {
   auto app1_instance_key = CreateInstanceKeyForApp(kApp1);
-  base::TimeDelta active_time = base::TimeDelta::FromMinutes(30);
+  base::TimeDelta active_time = base::Minutes(30);
 
   const AppLimit limit(AppRestriction::kTimeLimit, active_time,
                        base::Time::Now());
@@ -638,7 +616,7 @@
   registry().OnAppInactive(kApp1, app1_instance_key, app1_inactive_time_1);
 
   // App1 is inactive for 5 minutes.
-  task_environment()->FastForwardBy(base::TimeDelta::FromMinutes(5));
+  task_environment()->FastForwardBy(base::Minutes(5));
 
   base::Time app1_start_time_2 = base::Time::Now();
   registry().OnAppActive(kApp1, app1_instance_key, app1_start_time_2);
@@ -692,12 +670,12 @@
 }
 
 TEST_F(AppActivityRegistryTest, RemoveUninstalledApplications) {
-  CreateAppActivityForApp(kApp1, base::TimeDelta::FromHours(1));
-  CreateAppActivityForApp(kApp2, base::TimeDelta::FromHours(1));
+  CreateAppActivityForApp(kApp1, base::Hours(1));
+  CreateAppActivityForApp(kApp2, base::Hours(1));
 
   // App1 has been uninstalled.
   registry().OnAppUninstalled(kApp1);
-  task_environment()->FastForwardBy(base::TimeDelta::FromMinutes(10));
+  task_environment()->FastForwardBy(base::Minutes(10));
 
   // Removes kApp1 and cleans up ActiveTimes list in user pref.
   registry().OnSuccessfullyReported(base::Time::Now());
@@ -738,13 +716,13 @@
 TEST_F(AppActivityRegistryTest, RemoveOldEntries) {
   base::Time start_time = base::Time::Now();
 
-  CreateAppActivityForApp(kApp1, base::TimeDelta::FromHours(1));
-  CreateAppActivityForApp(kApp2, base::TimeDelta::FromHours(1));
+  CreateAppActivityForApp(kApp1, base::Hours(1));
+  CreateAppActivityForApp(kApp2, base::Hours(1));
 
   prefs()->SetInt64(prefs::kPerAppTimeLimitsLastSuccessfulReportTime,
                     start_time.ToDeltaSinceWindowsEpoch().InMicroseconds());
 
-  task_environment()->AdvanceClock(base::TimeDelta::FromDays(30));
+  task_environment()->AdvanceClock(base::Days(30));
   task_environment()->RunUntilIdle();
 
   // Now let's recreate AppActivityRegistry. Its state should be restored.
@@ -769,15 +747,15 @@
 
 TEST_F(AppActivityRegistryTest, ActiveWebAppBlocked) {
   // Create activity for web app.
-  CreateAppActivityForApp(kApp2, base::TimeDelta::FromHours(1));
+  CreateAppActivityForApp(kApp2, base::Hours(1));
 
   // Set Chrome as active.
   registry().OnChromeAppActivityChanged(ChromeAppActivityState::kActive,
                                         base::Time::Now());
 
   // Update the time limits for Chrome.
-  AppLimit chrome_limit(AppRestriction::kTimeLimit,
-                        base::TimeDelta::FromMinutes(30), base::Time::Now());
+  AppLimit chrome_limit(AppRestriction::kTimeLimit, base::Minutes(30),
+                        base::Time::Now());
 
   std::map<AppId, AppLimit> app_limits = {{GetChromeAppId(), chrome_limit}};
   registry().UpdateAppLimits(app_limits);
@@ -791,7 +769,7 @@
 TEST_F(AppActivityRegistryTest, OverrideLimitReachedState) {
   AppStateObserverMock state_observer_mock;
   registry().AddAppStateObserver(&state_observer_mock);
-  const base::TimeDelta limit = base::TimeDelta::FromMinutes(30);
+  const base::TimeDelta limit = base::Minutes(30);
 
   std::map<AppId, AppLimit> app_limits = {
       {kApp1, AppLimit(AppRestriction::kTimeLimit, limit, base::Time::Now())},
@@ -801,18 +779,15 @@
   registry().UpdateAppLimits(app_limits);
 
   // Save app activity and reinitialize.
-  EXPECT_CALL(state_observer_mock,
-              OnAppLimitReached(kApp1, base::TimeDelta::FromMinutes(30),
-                                /* was_active */ true))
+  EXPECT_CALL(state_observer_mock, OnAppLimitReached(kApp1, base::Minutes(30),
+                                                     /* was_active */ true))
+      .Times(1);
+  EXPECT_CALL(state_observer_mock, OnAppLimitReached(kApp2, base::Minutes(30),
+                                                     /* was_active */ true))
       .Times(1);
   EXPECT_CALL(state_observer_mock,
-              OnAppLimitReached(kApp2, base::TimeDelta::FromMinutes(30),
-                                /* was_active */ true))
-      .Times(1);
-  EXPECT_CALL(
-      state_observer_mock,
-      OnAppLimitReached(GetChromeAppId(), base::TimeDelta::FromMinutes(30),
-                        /* was_active */ false))
+              OnAppLimitReached(GetChromeAppId(), base::Minutes(30),
+                                /* was_active */ false))
       .Times(1);
 
   // App limits will be reached.
@@ -827,32 +802,27 @@
 
   // When OnAppInstalled is called for AppActivityRegistry, it will notify its
   // app state observers that the app time limit has been reached.
-  EXPECT_CALL(state_observer_mock,
-              OnAppLimitReached(kApp1, base::TimeDelta::FromMinutes(30),
-                                /* was_active */ false))
+  EXPECT_CALL(state_observer_mock, OnAppLimitReached(kApp1, base::Minutes(30),
+                                                     /* was_active */ false))
+      .Times(1);
+  EXPECT_CALL(state_observer_mock, OnAppLimitReached(kApp2, base::Minutes(30),
+                                                     /* was_active */ false))
       .Times(1);
   EXPECT_CALL(state_observer_mock,
-              OnAppLimitReached(kApp2, base::TimeDelta::FromMinutes(30),
+              OnAppLimitReached(GetChromeAppId(), base::Minutes(30),
                                 /* was_active */ false))
       .Times(1);
-  EXPECT_CALL(
-      state_observer_mock,
-      OnAppLimitReached(GetChromeAppId(), base::TimeDelta::FromMinutes(30),
-                        /* was_active */ false))
-      .Times(1);
   InstallApps();
 
   EXPECT_EQ(registry().GetAppState(kApp1), AppState::kLimitReached);
   EXPECT_EQ(registry().GetAppState(kApp2), AppState::kLimitReached);
   EXPECT_EQ(registry().GetAppState(GetChromeAppId()), AppState::kLimitReached);
 
-  EXPECT_CALL(state_observer_mock,
-              OnAppLimitReached(kApp1, base::TimeDelta::FromMinutes(30),
-                                /* was_active */ true))
+  EXPECT_CALL(state_observer_mock, OnAppLimitReached(kApp1, base::Minutes(30),
+                                                     /* was_active */ true))
       .Times(1);
-  EXPECT_CALL(state_observer_mock,
-              OnAppLimitReached(kApp2, base::TimeDelta::FromMinutes(30),
-                                /* was_active */ true))
+  EXPECT_CALL(state_observer_mock, OnAppLimitReached(kApp2, base::Minutes(30),
+                                                     /* was_active */ true))
       .Times(1);
 
   registry().OnAppActive(kApp1, GetInstanceKeyForApp(kApp1), base::Time::Now());
@@ -860,11 +830,10 @@
 }
 
 TEST_F(AppActivityRegistryTest, AvoidReduntantNotifications) {
-  const base::TimeDelta delta = base::TimeDelta::FromMinutes(5);
-  AppLimit chrome_limit(AppRestriction::kTimeLimit,
-                        base::TimeDelta::FromMinutes(30), base::Time::Now());
-  AppLimit app1_limit(AppRestriction::kTimeLimit,
-                      base::TimeDelta::FromMinutes(5),
+  const base::TimeDelta delta = base::Minutes(5);
+  AppLimit chrome_limit(AppRestriction::kTimeLimit, base::Minutes(30),
+                        base::Time::Now());
+  AppLimit app1_limit(AppRestriction::kTimeLimit, base::Minutes(5),
                       base::Time::Now() + delta);
   std::map<AppId, AppLimit> app_limits = {{GetChromeAppId(), chrome_limit},
                                           {kApp1, app1_limit}};
@@ -901,8 +870,7 @@
   registry().UpdateAppLimits(app_limits);
 
   // Update the limit for Chrome.
-  AppLimit new_chrome_limit(AppRestriction::kTimeLimit,
-                            base::TimeDelta::FromMinutes(15),
+  AppLimit new_chrome_limit(AppRestriction::kTimeLimit, base::Minutes(15),
                             base::Time::Now() + 2 * delta);
   app_limits.at(GetChromeAppId()) = new_chrome_limit;
 
@@ -920,8 +888,8 @@
 }
 
 TEST_F(AppActivityRegistryTest, NoNotification) {
-  AppLimit app1_limit(AppRestriction::kTimeLimit,
-                      base::TimeDelta::FromMinutes(30), base::Time::Now());
+  AppLimit app1_limit(AppRestriction::kTimeLimit, base::Minutes(30),
+                      base::Time::Now());
   std::map<AppId, AppLimit> app_limits = {{kApp1, app1_limit}};
 
   EXPECT_CALL(notification_delegate_mock(),
@@ -934,8 +902,8 @@
 }
 
 TEST_F(AppActivityRegistryTest, NotificationAfterAppInstall) {
-  AppLimit app1_limit(AppRestriction::kTimeLimit,
-                      base::TimeDelta::FromMinutes(30), base::Time::Now());
+  AppLimit app1_limit(AppRestriction::kTimeLimit, base::Minutes(30),
+                      base::Time::Now());
   std::map<AppId, AppLimit> app_limits = {{kApp1, app1_limit}};
 
   EXPECT_CALL(notification_delegate_mock(),
@@ -953,29 +921,26 @@
   AppStateObserverMock state_observer_mock;
   registry().AddAppStateObserver(&state_observer_mock);
 
-  const base::TimeDelta kOneHour = base::TimeDelta::FromHours(1);
+  const base::TimeDelta kOneHour = base::Hours(1);
   registry().SetAppLimit(
       kApp1, AppLimit(AppRestriction::kTimeLimit, kOneHour, base::Time::Now()));
 
-  EXPECT_CALL(state_observer_mock,
-              OnAppLimitReached(kApp1, base::TimeDelta::FromHours(1),
-                                /* was_active */ true))
+  EXPECT_CALL(state_observer_mock, OnAppLimitReached(kApp1, base::Hours(1),
+                                                     /* was_active */ true))
       .Times(1);
   CreateAppActivityForApp(kApp1, kOneHour);
   EXPECT_TRUE(registry().IsAppTimeLimitReached(kApp1));
 
   apps::Instance::InstanceKey app1_instance_key = GetInstanceKeyForApp(kApp1);
-  EXPECT_CALL(state_observer_mock,
-              OnAppLimitReached(kApp1, base::TimeDelta::FromHours(1),
-                                /* was_active */ true))
+  EXPECT_CALL(state_observer_mock, OnAppLimitReached(kApp1, base::Hours(1),
+                                                     /* was_active */ true))
       .Times(0);
   registry().OnAppActive(kApp1, app1_instance_key, base::Time::Now());
 
   apps::Instance::InstanceKey new_app1_instance_key =
       CreateInstanceKeyForApp(kApp1);
-  EXPECT_CALL(state_observer_mock,
-              OnAppLimitReached(kApp1, base::TimeDelta::FromHours(1),
-                                /* was_active */ true))
+  EXPECT_CALL(state_observer_mock, OnAppLimitReached(kApp1, base::Hours(1),
+                                                     /* was_active */ true))
       .Times(1);
   registry().OnAppActive(kApp1, new_app1_instance_key, base::Time::Now());
 
@@ -986,7 +951,7 @@
   AppStateObserverMock state_observer_mock;
   registry().AddAppStateObserver(&state_observer_mock);
 
-  AppLimit app1_limit(AppRestriction::kTimeLimit, base::TimeDelta::FromHours(1),
+  AppLimit app1_limit(AppRestriction::kTimeLimit, base::Hours(1),
                       base::Time::Now());
 
   SetAppLimit(kApp1, app1_limit);
@@ -997,7 +962,7 @@
       .Times(1);
 
   // Application will reach its time limits.
-  CreateAppActivityForApp(kApp1, base::TimeDelta::FromHours(2));
+  CreateAppActivityForApp(kApp1, base::Hours(2));
   registry().OnAppUninstalled(kApp1);
   registry().SaveAppActivity();
 
@@ -1037,13 +1002,13 @@
   registry().OnAppInstalled(kApp3);
   registry().OnAppAvailable(kApp3);
 
-  CreateAppActivityForApp(kApp3, base::TimeDelta::FromHours(1));
+  CreateAppActivityForApp(kApp3, base::Hours(1));
 
   registry().OnAppActive(kApp3, CreateInstanceKeyForApp(kApp3),
                          base::Time::Now());
 
-  const AppLimit web_limit(AppRestriction::kTimeLimit,
-                           base::TimeDelta::FromMinutes(20), base::Time::Now());
+  const AppLimit web_limit(AppRestriction::kTimeLimit, base::Minutes(20),
+                           base::Time::Now());
   EXPECT_CALL(
       state_observer_mock,
       OnAppLimitReached(GetChromeAppId(), web_limit.daily_limit().value(),
@@ -1064,14 +1029,14 @@
 TEST_F(AppActivityRegistryTest, WebAppInstalled) {
   AppStateObserverMock state_observer_mock;
   registry().AddAppStateObserver(&state_observer_mock);
-  const AppLimit web_limit(AppRestriction::kTimeLimit,
-                           base::TimeDelta::FromHours(2), base::Time::Now());
+  const AppLimit web_limit(AppRestriction::kTimeLimit, base::Hours(2),
+                           base::Time::Now());
   const std::map<AppId, AppLimit> limits{{GetChromeAppId(), web_limit}};
   registry().UpdateAppLimits(limits);
 
   registry().OnAppActive(kApp2, CreateInstanceKeyForApp(kApp2),
                          base::Time::Now());
-  task_environment()->FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment()->FastForwardBy(base::Hours(1));
 
   // Now a new application is installed.
   const AppId kApp3(apps::mojom::AppType::kWeb, "l");
@@ -1092,7 +1057,7 @@
               OnAppLimitReached(kApp3, web_limit.daily_limit().value(),
                                 /* was_active */ false))
       .Times(1);
-  task_environment()->FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment()->FastForwardBy(base::Hours(1));
 }
 
 TEST_F(AppActivityRegistryTest, AppBlocked) {
@@ -1119,8 +1084,8 @@
   registry().OnAppAvailable(kGoogleSlidesApp);
   AppStateObserverMock state_observer_mock;
   registry().AddAppStateObserver(&state_observer_mock);
-  const AppLimit web_limit(AppRestriction::kTimeLimit,
-                           base::TimeDelta::FromHours(2), base::Time::Now());
+  const AppLimit web_limit(AppRestriction::kTimeLimit, base::Hours(2),
+                           base::Time::Now());
   const std::map<AppId, AppLimit> limits{{GetChromeAppId(), web_limit}};
   registry().UpdateAppLimits(limits);
   EXPECT_EQ(registry().GetTimeLimit(kGoogleSlidesApp), web_limit.daily_limit());
@@ -1140,8 +1105,8 @@
                         /* was_active */ true))
       .Times(1);
 
-  CreateAppActivityForApp(kApp2, base::TimeDelta::FromHours(1));
-  CreateAppActivityForApp(kGoogleSlidesApp, base::TimeDelta::FromHours(1));
+  CreateAppActivityForApp(kApp2, base::Hours(1));
+  CreateAppActivityForApp(kGoogleSlidesApp, base::Hours(1));
 }
 
 }  // namespace app_time
diff --git a/chrome/browser/ash/child_accounts/time_limits/app_time_browsertest.cc b/chrome/browser/ash/child_accounts/time_limits/app_time_browsertest.cc
index 8e05bc5..47886f4 100644
--- a/chrome/browser/ash/child_accounts/time_limits/app_time_browsertest.cc
+++ b/chrome/browser/ash/child_accounts/time_limits/app_time_browsertest.cc
@@ -234,8 +234,7 @@
   // Set time limit for the app - app should not paused.
   AppTimeLimitsPolicyBuilder time_limit_policy;
   const AppLimit time_limit =
-      AppLimit(AppRestriction::kTimeLimit, base::TimeDelta::FromHours(1),
-               base::Time::Now());
+      AppLimit(AppRestriction::kTimeLimit, base::Hours(1), base::Time::Now());
   time_limit_policy.AddAppLimit(app1, time_limit);
   time_limit_policy.SetResetTime(6, 0);
 
@@ -247,8 +246,7 @@
   // Set time limit of zero - app should be paused.
   AppTimeLimitsPolicyBuilder zero_time_limit_policy;
   const AppLimit zero_limit =
-      AppLimit(AppRestriction::kTimeLimit, base::TimeDelta::FromHours(0),
-               base::Time::Now());
+      AppLimit(AppRestriction::kTimeLimit, base::Hours(0), base::Time::Now());
   zero_time_limit_policy.AddAppLimit(app1, zero_limit);
   zero_time_limit_policy.SetResetTime(6, 0);
 
@@ -298,12 +296,10 @@
   policy.SetResetTime(6, 0);
   policy.AddAppLimit(app2, AppLimit(AppRestriction::kBlocked, absl::nullopt,
                                     base::Time::Now()));
-  policy.AddAppLimit(
-      app3, AppLimit(AppRestriction::kTimeLimit,
-                     base::TimeDelta::FromMinutes(15), base::Time::Now()));
-  policy.AddAppLimit(
-      app4, AppLimit(AppRestriction::kTimeLimit, base::TimeDelta::FromHours(1),
-                     base::Time::Now()));
+  policy.AddAppLimit(app3, AppLimit(AppRestriction::kTimeLimit,
+                                    base::Minutes(15), base::Time::Now()));
+  policy.AddAppLimit(app4, AppLimit(AppRestriction::kTimeLimit, base::Hours(1),
+                                    base::Time::Now()));
 
   UpdatePerAppTimeLimitsPolicy(policy.value());
 
@@ -335,9 +331,9 @@
 IN_PROC_BROWSER_TEST_F(WebTimeLimitDisabledTest, WebTimeLimitDisabled) {
   AppTimeLimitsPolicyBuilder policy;
   policy.SetResetTime(6, 0);
-  policy.AddAppLimit(GetChromeAppId(), AppLimit(AppRestriction::kTimeLimit,
-                                                base::TimeDelta::FromMinutes(0),
-                                                base::Time::Now()));
+  policy.AddAppLimit(GetChromeAppId(),
+                     AppLimit(AppRestriction::kTimeLimit, base::Minutes(0),
+                              base::Time::Now()));
 
   UpdatePerAppTimeLimitsPolicy(policy.value());
 
diff --git a/chrome/browser/ash/child_accounts/time_limits/app_time_controller.cc b/chrome/browser/ash/child_accounts/time_limits/app_time_controller.cc
index 8ab1087..41c2325 100644
--- a/chrome/browser/ash/child_accounts/time_limits/app_time_controller.cc
+++ b/chrome/browser/ash/child_accounts/time_limits/app_time_controller.cc
@@ -63,7 +63,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kDay = base::TimeDelta::FromHours(24);
+constexpr base::TimeDelta kDay = base::Hours(24);
 
 // Family link notifier id.
 constexpr char kFamilyLinkSourceId[] = "family-link";
@@ -113,11 +113,11 @@
     case AppNotification::kFiveMinutes:
       return l10n_util::GetStringFUTF16(
           IDS_APP_TIME_LIMIT_APP_WILL_PAUSE_SYSTEM_NOTIFICATION_MESSAGE,
-          GetTimeLimitMessage(base::TimeDelta::FromMinutes(5), /* cutoff */ 1));
+          GetTimeLimitMessage(base::Minutes(5), /* cutoff */ 1));
     case AppNotification::kOneMinute:
       return l10n_util::GetStringFUTF16(
           IDS_APP_TIME_LIMIT_APP_WILL_PAUSE_SYSTEM_NOTIFICATION_MESSAGE,
-          GetTimeLimitMessage(base::TimeDelta::FromMinutes(1), /* cutoff */ 1));
+          GetTimeLimitMessage(base::Minutes(1), /* cutoff */ 1));
     case AppNotification::kTimeLimitChanged:
       return time_limit
                  ? l10n_util::GetStringFUTF16(
@@ -499,7 +499,7 @@
   if (now > nearest_midnight)
     prev_midnight = nearest_midnight;
   else
-    prev_midnight = nearest_midnight - base::TimeDelta::FromHours(24);
+    prev_midnight = nearest_midnight - base::Hours(24);
 
   base::Time next_reset_time = prev_midnight + limits_reset_time_;
 
@@ -507,7 +507,7 @@
     return next_reset_time;
 
   // We have already reset for this day. The reset time is the next day.
-  return next_reset_time + base::TimeDelta::FromHours(24);
+  return next_reset_time + base::Hours(24);
 }
 
 void AppTimeController::ScheduleForTimeLimitReset() {
@@ -538,8 +538,8 @@
   if (reset_time == 0) {
     SetLastResetTime(base::Time::Now());
   } else {
-    last_limits_reset_time_ = base::Time::FromDeltaSinceWindowsEpoch(
-        base::TimeDelta::FromMicroseconds(reset_time));
+    last_limits_reset_time_ =
+        base::Time::FromDeltaSinceWindowsEpoch(base::Microseconds(reset_time));
   }
 
   if (HasTimeCrossedResetBoundary()) {
@@ -557,13 +557,13 @@
   if (timestamp > nearest_midnight)
     prev_midnight = nearest_midnight;
   else
-    prev_midnight = nearest_midnight - base::TimeDelta::FromHours(24);
+    prev_midnight = nearest_midnight - base::Hours(24);
 
   base::Time reset_time = prev_midnight + limits_reset_time_;
   if (reset_time <= timestamp)
     last_limits_reset_time_ = reset_time;
   else
-    last_limits_reset_time_ = reset_time - base::TimeDelta::FromHours(24);
+    last_limits_reset_time_ = reset_time - base::Hours(24);
 
   PrefService* service = profile_->GetPrefs();
   DCHECK(service);
diff --git a/chrome/browser/ash/child_accounts/time_limits/app_time_controller.h b/chrome/browser/ash/child_accounts/time_limits/app_time_controller.h
index ed98fd4..df4473e 100644
--- a/chrome/browser/ash/child_accounts/time_limits/app_time_controller.h
+++ b/chrome/browser/ash/child_accounts/time_limits/app_time_controller.h
@@ -164,7 +164,7 @@
 
   // The time of the day when app time limits should be reset.
   // Defaults to 6am local time.
-  base::TimeDelta limits_reset_time_ = base::TimeDelta::FromHours(6);
+  base::TimeDelta limits_reset_time_ = base::Hours(6);
 
   // The last time when |reset_timer_| fired.
   base::Time last_limits_reset_time_;
diff --git a/chrome/browser/ash/child_accounts/time_limits/app_time_controller_unittest.cc b/chrome/browser/ash/child_accounts/time_limits/app_time_controller_unittest.cc
index 624232b0..11f7ab89 100644
--- a/chrome/browser/ash/child_accounts/time_limits/app_time_controller_unittest.cc
+++ b/chrome/browser/ash/child_accounts/time_limits/app_time_controller_unittest.cc
@@ -46,10 +46,10 @@
 namespace {
 
 constexpr char kStartTime[] = "1 Jan 2020 00:00:00 GMT";
-constexpr base::TimeDelta kDay = base::TimeDelta::FromHours(24);
-constexpr base::TimeDelta kSixHours = base::TimeDelta::FromHours(6);
-constexpr base::TimeDelta kOneHour = base::TimeDelta::FromHours(1);
-constexpr base::TimeDelta kZeroTime = base::TimeDelta::FromSeconds(0);
+constexpr base::TimeDelta kDay = base::Hours(24);
+constexpr base::TimeDelta kSixHours = base::Hours(6);
+constexpr base::TimeDelta kOneHour = base::Hours(1);
+constexpr base::TimeDelta kZeroTime = base::Seconds(0);
 constexpr char kApp1Name[] = "App1";
 constexpr char kApp2Name[] = "App2";
 const AppId kApp1(apps::mojom::AppType::kArc, "1");
@@ -62,14 +62,14 @@
   if (timestamp > nearest_midnight)
     prev_midnight = nearest_midnight;
   else
-    prev_midnight = nearest_midnight - base::TimeDelta::FromHours(24);
+    prev_midnight = nearest_midnight - base::Hours(24);
 
   // Reset time is at 6 am for the tests.
-  base::Time reset_time = prev_midnight + base::TimeDelta::FromHours(6);
+  base::Time reset_time = prev_midnight + base::Hours(6);
   if (reset_time <= timestamp)
     return reset_time;
   else
-    return reset_time - base::TimeDelta::FromHours(24);
+    return reset_time - base::Hours(24);
 }
 
 }  // namespace
@@ -317,7 +317,7 @@
 
   // The default reset time is 6 hours after local midnight. Fast forward by 4
   // hours to reach it. FastForwardBy triggers the reset timer.
-  task_environment().FastForwardBy(base::TimeDelta::FromHours(4));
+  task_environment().FastForwardBy(base::Hours(4));
 
   // Make sure that there is no activity
   EXPECT_EQ(controller()->app_registry()->GetActiveTime(kApp1), kZeroTime);
@@ -387,10 +387,10 @@
 TEST_F(AppTimeControllerTest, TimeLimitNotification) {
   AppActivityRegistry* registry = controller()->app_registry();
 
-  const AppLimit limit1(AppRestriction::kTimeLimit,
-                        base::TimeDelta::FromMinutes(35), base::Time::Now());
-  const AppLimit limit2(AppRestriction::kTimeLimit,
-                        base::TimeDelta::FromMinutes(30), base::Time::Now());
+  const AppLimit limit1(AppRestriction::kTimeLimit, base::Minutes(35),
+                        base::Time::Now());
+  const AppLimit limit2(AppRestriction::kTimeLimit, base::Minutes(30),
+                        base::Time::Now());
   const std::map<AppId, AppLimit> limits{{kApp1, limit1}, {kApp2, limit2}};
   registry->UpdateAppLimits(limits);
   task_environment().RunUntilIdle();
@@ -399,19 +399,19 @@
   registry->OnAppActive(kApp1, instance_key, base::Time::Now());
   registry->OnAppActive(kApp2, instance_key, base::Time::Now());
 
-  task_environment().FastForwardBy(base::TimeDelta::FromMinutes(25));
+  task_environment().FastForwardBy(base::Minutes(25));
 
   // Expect that there is a 5 minute notification for kApp2.
   EXPECT_TRUE(HasNotificationFor(kApp2Name, AppNotification::kFiveMinutes));
 
   // One minute left notification will be shown and then the app will reach its
   // time limit.
-  task_environment().FastForwardBy(base::TimeDelta::FromMinutes(5));
+  task_environment().FastForwardBy(base::Minutes(5));
 
   EXPECT_TRUE(HasNotificationFor(kApp2Name, AppNotification::kOneMinute));
   EXPECT_TRUE(HasNotificationFor(kApp1Name, AppNotification::kFiveMinutes));
 
-  task_environment().FastForwardBy(base::TimeDelta::FromMinutes(5));
+  task_environment().FastForwardBy(base::Minutes(5));
 
   EXPECT_TRUE(HasNotificationFor(kApp1Name, AppNotification::kOneMinute));
 }
@@ -420,10 +420,10 @@
   AppActivityRegistry* registry = controller()->app_registry();
 
   // Set new time limits.
-  const AppLimit limit1(AppRestriction::kTimeLimit,
-                        base::TimeDelta::FromMinutes(35), base::Time::Now());
-  const AppLimit limit2(AppRestriction::kTimeLimit,
-                        base::TimeDelta::FromMinutes(30), base::Time::Now());
+  const AppLimit limit1(AppRestriction::kTimeLimit, base::Minutes(35),
+                        base::Time::Now());
+  const AppLimit limit2(AppRestriction::kTimeLimit, base::Minutes(30),
+                        base::Time::Now());
   registry->UpdateAppLimits({{kApp1, limit1}, {kApp2, limit2}});
   task_environment().RunUntilIdle();
 
@@ -437,9 +437,8 @@
   DismissNotifications();
 
   // Only update one time limit.
-  const base::TimeDelta delta = base::TimeDelta::FromMinutes(1);
-  const AppLimit limit3(AppRestriction::kTimeLimit,
-                        base::TimeDelta::FromMinutes(10),
+  const base::TimeDelta delta = base::Minutes(1);
+  const AppLimit limit3(AppRestriction::kTimeLimit, base::Minutes(10),
                         base::Time::Now() + delta);
   registry->UpdateAppLimits({{kApp1, limit1}, {kApp2, limit3}});
   task_environment().RunUntilIdle();
diff --git a/chrome/browser/ash/child_accounts/time_limits/app_time_policy_helpers.cc b/chrome/browser/ash/child_accounts/time_limits/app_time_policy_helpers.cc
index 919f122b..29b6664 100644
--- a/chrome/browser/ash/child_accounts/time_limits/app_time_policy_helpers.cc
+++ b/chrome/browser/ash/child_accounts/time_limits/app_time_policy_helpers.cc
@@ -154,9 +154,9 @@
 
   absl::optional<base::TimeDelta> daily_limit;
   if (daily_limit_mins) {
-    daily_limit = base::TimeDelta::FromMinutes(*daily_limit_mins);
-    if (daily_limit && (*daily_limit < base::TimeDelta::FromHours(0) ||
-                        *daily_limit > base::TimeDelta::FromHours(24))) {
+    daily_limit = base::Minutes(*daily_limit_mins);
+    if (daily_limit &&
+        (*daily_limit < base::Hours(0) || *daily_limit > base::Hours(24))) {
       DLOG(ERROR) << "Invalid daily limit.";
       return absl::nullopt;
     }
@@ -172,8 +172,7 @@
   }
 
   const base::Time last_updated =
-      base::Time::UnixEpoch() +
-      base::TimeDelta::FromMilliseconds(last_updated_millis);
+      base::Time::UnixEpoch() + base::Milliseconds(last_updated_millis);
 
   return AppLimit(restriction, daily_limit, last_updated);
 }
@@ -213,9 +212,8 @@
     return absl::nullopt;
   }
 
-  const int hour_in_mins = base::TimeDelta::FromHours(1).InMinutes();
-  return base::TimeDelta::FromMinutes(hour.value() * hour_in_mins +
-                                      minutes.value());
+  const int hour_in_mins = base::Hours(1).InMinutes();
+  return base::Minutes(hour.value() * hour_in_mins + minutes.value());
 }
 
 base::Value ResetTimeToDict(int hour, int minutes) {
diff --git a/chrome/browser/ash/child_accounts/time_limits/app_types.cc b/chrome/browser/ash/child_accounts/time_limits/app_types.cc
index 637de87..16b1a22 100644
--- a/chrome/browser/ash/child_accounts/time_limits/app_types.cc
+++ b/chrome/browser/ash/child_accounts/time_limits/app_types.cc
@@ -111,10 +111,8 @@
       last_updated_(last_updated) {
   DCHECK_EQ(restriction_ == AppRestriction::kBlocked,
             daily_limit_ == absl::nullopt);
-  DCHECK(daily_limit_ == absl::nullopt ||
-         daily_limit >= base::TimeDelta::FromHours(0));
-  DCHECK(daily_limit_ == absl::nullopt ||
-         daily_limit <= base::TimeDelta::FromHours(24));
+  DCHECK(daily_limit_ == absl::nullopt || daily_limit >= base::Hours(0));
+  DCHECK(daily_limit_ == absl::nullopt || daily_limit <= base::Hours(24));
 }
 
 AppLimit::AppLimit(const AppLimit&) = default;
@@ -141,7 +139,7 @@
 
 // static
 const base::TimeDelta AppActivity::ActiveTime::kActiveTimeMergePrecision =
-    base::TimeDelta::FromSeconds(1);
+    base::Seconds(1);
 
 AppActivity::ActiveTime::ActiveTime(base::Time start, base::Time end)
     : active_from_(start), active_to_(end) {
@@ -186,7 +184,7 @@
 
 AppActivity::AppActivity(AppState app_state)
     : app_state_(app_state),
-      running_active_time_(base::TimeDelta::FromSeconds(0)),
+      running_active_time_(base::Seconds(0)),
       last_updated_time_ticks_(base::TimeTicks::Now()) {}
 AppActivity::AppActivity(AppState app_state,
                          base::TimeDelta running_active_time)
@@ -223,7 +221,7 @@
 
 void AppActivity::ResetRunningActiveTime(base::Time timestamp) {
   CaptureOngoingActivity(timestamp);
-  running_active_time_ = base::TimeDelta::FromMinutes(0);
+  running_active_time_ = base::Minutes(0);
 }
 
 base::TimeDelta AppActivity::RunningActiveTime() const {
diff --git a/chrome/browser/ash/child_accounts/time_limits/app_types_unittest.cc b/chrome/browser/ash/child_accounts/time_limits/app_types_unittest.cc
index 08fec97..c028c767 100644
--- a/chrome/browser/ash/child_accounts/time_limits/app_types_unittest.cc
+++ b/chrome/browser/ash/child_accounts/time_limits/app_types_unittest.cc
@@ -47,15 +47,14 @@
   const base::Time& start_equal_end = active_time.active_to();
   EXPECT_DCHECK_DEATH(active_time.set_active_from(start_equal_end));
 
-  const base::Time start_after_end =
-      active_time.active_to() + base::TimeDelta::FromSeconds(1);
+  const base::Time start_after_end = active_time.active_to() + base::Seconds(1);
   EXPECT_DCHECK_DEATH(active_time.set_active_from(start_after_end));
 
   const base::Time& end_equal_start = active_time.active_from();
   EXPECT_DCHECK_DEATH(active_time.set_active_to(end_equal_start));
 
   const base::Time end_before_start =
-      active_time.active_from() - base::TimeDelta::FromSeconds(1);
+      active_time.active_from() - base::Seconds(1);
   EXPECT_DCHECK_DEATH(active_time.set_active_to(end_before_start));
 }
 
diff --git a/chrome/browser/ash/child_accounts/time_limits/persisted_app_info.cc b/chrome/browser/ash/child_accounts/time_limits/persisted_app_info.cc
index 15bbc66..dfa9c76f 100644
--- a/chrome/browser/ash/child_accounts/time_limits/persisted_app_info.cc
+++ b/chrome/browser/ash/child_accounts/time_limits/persisted_app_info.cc
@@ -50,9 +50,9 @@
   }
 
   base::Time active_from_time = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(active_from_microseconds));
+      base::Microseconds(active_from_microseconds));
   base::Time active_to_time = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(active_to_microseconds));
+      base::Microseconds(active_to_microseconds));
 
   return AppActivity::ActiveTime(active_from_time, active_to_time);
 }
@@ -132,10 +132,9 @@
     active_times = AppActiveTimesFromList(list);
   }
 
-  return PersistedAppInfo(
-      app_id.value(), state.value(),
-      base::TimeDelta::FromMicroseconds(running_active_time_int),
-      std::move(active_times));
+  return PersistedAppInfo(app_id.value(), state.value(),
+                          base::Microseconds(running_active_time_int),
+                          std::move(active_times));
 }
 
 // static
@@ -285,8 +284,7 @@
 
 bool PersistedAppInfo::ShouldRestoreApp() const {
   bool is_installed = app_state() != AppState::kUninstalled;
-  bool has_active_running_time =
-      active_running_time() > base::TimeDelta::FromSeconds(0);
+  bool has_active_running_time = active_running_time() > base::Seconds(0);
   return is_installed || has_active_running_time;
 }
 
diff --git a/chrome/browser/ash/child_accounts/time_limits/persisted_app_info_unittest.cc b/chrome/browser/ash/child_accounts/time_limits/persisted_app_info_unittest.cc
index 996ccb9..f963fb5 100644
--- a/chrome/browser/ash/child_accounts/time_limits/persisted_app_info_unittest.cc
+++ b/chrome/browser/ash/child_accounts/time_limits/persisted_app_info_unittest.cc
@@ -18,10 +18,10 @@
 TEST_F(PersistedAppInfoTest, RemoveActiveTimes) {
   AppId app = AppId(apps::mojom::AppType::kArc, "1");
   AppState app_state = AppState::kAvailable;
-  base::TimeDelta running_active_time = base::TimeDelta::FromHours(5);
+  base::TimeDelta running_active_time = base::Hours(5);
 
   base::Time start_time = base::Time::Now();
-  base::TimeDelta activity = base::TimeDelta::FromHours(1);
+  base::TimeDelta activity = base::Hours(1);
 
   AppActivity::ActiveTime to_remove =
       AppActivity::ActiveTime(start_time, start_time + activity);
@@ -51,10 +51,10 @@
 TEST_F(PersistedAppInfoTest, UpdateAppActivityPreference) {
   AppId app = AppId(apps::mojom::AppType::kArc, "1");
   AppState app_state = AppState::kAvailable;
-  base::TimeDelta running_active_time = base::TimeDelta::FromHours(5);
+  base::TimeDelta running_active_time = base::Hours(5);
 
   base::Time start_time = base::Time::Now();
-  base::TimeDelta activity = base::TimeDelta::FromHours(1);
+  base::TimeDelta activity = base::Hours(1);
 
   AppActivity::ActiveTime entry1 =
       AppActivity::ActiveTime(start_time, start_time + activity);
diff --git a/chrome/browser/ash/child_accounts/time_limits/web_time_limit_enforcer_browsertest.cc b/chrome/browser/ash/child_accounts/time_limits/web_time_limit_enforcer_browsertest.cc
index 0cb4454..624ac2ae 100644
--- a/chrome/browser/ash/child_accounts/time_limits/web_time_limit_enforcer_browsertest.cc
+++ b/chrome/browser/ash/child_accounts/time_limits/web_time_limit_enforcer_browsertest.cc
@@ -162,8 +162,7 @@
 }
 
 void WebTimeLimitEnforcerThrottleTest::BlockWeb() {
-  GetWebTimeLimitEnforcer()->OnWebTimeLimitReached(
-      base::TimeDelta::FromHours(1));
+  GetWebTimeLimitEnforcer()->OnWebTimeLimitReached(base::Hours(1));
 }
 
 app_time::WebTimeLimitEnforcer*
diff --git a/chrome/browser/ash/child_accounts/usage_time_limit_processor.cc b/chrome/browser/ash/child_accounts/usage_time_limit_processor.cc
index caa50b37..d94e54e 100644
--- a/chrome/browser/ash/child_accounts/usage_time_limit_processor.cc
+++ b/chrome/browser/ash/child_accounts/usage_time_limit_processor.cc
@@ -296,7 +296,7 @@
   if (!enabled_time_usage_limit_)
     return absl::nullopt;
   return std::max(enabled_time_usage_limit_->usage_quota - used_time_,
-                  base::TimeDelta::FromMinutes(0));
+                  base::Minutes(0));
 }
 
 State UsageTimeLimitProcessor::GetState() {
@@ -312,7 +312,7 @@
     state.remaining_usage = remaining_usage.value();
   }
 
-  const base::TimeDelta delta_zero = base::TimeDelta::FromMinutes(0);
+  const base::TimeDelta delta_zero = base::Minutes(0);
   bool current_state_above_usage_limit =
       state.is_time_usage_limit_enabled && state.remaining_usage <= delta_zero;
   bool previous_state_below_usage_limit =
@@ -343,7 +343,7 @@
 
 base::TimeDelta UsageTimeLimitProcessor::GetConsecutiveTimeWindowLimitDuration(
     internal::Weekday weekday) {
-  base::TimeDelta duration = base::TimeDelta::FromMinutes(0);
+  base::TimeDelta duration = base::Minutes(0);
   absl::optional<internal::TimeWindowLimitEntry> current_day_entry =
       time_window_limit_->entries[weekday];
 
@@ -361,12 +361,11 @@
       break;
 
     if (window_limit_entry->IsOvernight()) {
-      duration +=
-          base::TimeDelta(base::TimeDelta::FromHours(24) - last_entry_end) +
-          base::TimeDelta(window_limit_entry->ends_at);
+      duration += base::TimeDelta(base::Hours(24) - last_entry_end) +
+                  base::TimeDelta(window_limit_entry->ends_at);
     } else {
       duration += std::max(window_limit_entry->ends_at - last_entry_end,
-                           base::TimeDelta::FromMinutes(0));
+                           base::Minutes(0));
       // This entry is not overnight, so the next one cannot be a consecutive
       // window.
       break;
@@ -434,7 +433,7 @@
   base::Time last_reset_time = ConvertPolicyTime(LockOverrideResetTime(), 0);
   bool usage_limit_enforced_previously =
       previous_state_->is_time_usage_limit_enabled &&
-      previous_state_->remaining_usage <= base::TimeDelta::FromMinutes(0);
+      previous_state_->remaining_usage <= base::Minutes(0);
   bool override_created_after_usage_limit_start =
       !previous_state_->time_usage_limit_started.is_null() &&
       time_limit_override_->created_at() >
@@ -638,7 +637,7 @@
 
   base::Time last_reset_time = ConvertPolicyTime(LockOverrideResetTime(), 0);
   if (current_time_ < last_reset_time)
-    last_reset_time -= base::TimeDelta::FromDays(1);
+    last_reset_time -= base::Days(1);
 
   bool override_cancelled_by_window_limit = false;
   if (time_window_limit_) {
@@ -672,7 +671,7 @@
   // Check if the usage time was increased before the override creation, which
   // invalidates it.
   if (previous_state_ && previous_state_->is_time_usage_limit_enabled &&
-      previous_state_->remaining_usage <= base::TimeDelta::FromMinutes(0)) {
+      previous_state_->remaining_usage <= base::Minutes(0)) {
     if (enabled_time_usage_limit_ &&
         time_limit_override_->created_at() <
             enabled_time_usage_limit_->last_updated) {
@@ -734,7 +733,7 @@
                           LockOverrideResetTime();
 
   if (IsBefore(reset_time, time_limit_override_->created_at()))
-    reset_time = reset_time + base::TimeDelta::FromDays(1);
+    reset_time = reset_time + base::Days(1);
 
   return reset_time;
 }
@@ -770,7 +769,7 @@
             time_window_limit_->entries[WeekdayShift(current_weekday_, i)];
         if (window_limit) {
           TimeWindowLimitBoundaries limits = window_limit->GetLimits(
-              LocalMidnight(current_time_) + base::TimeDelta::FromDays(i));
+              LocalMidnight(current_time_) + base::Days(i));
           // Ignores time window limit if it is overridden.
           if (overridden_window_limit_ &&
               ContainsTime(limits.starts, limits.ends, current_time_)) {
@@ -1013,8 +1012,7 @@
 base::Time UsageTimeLimitProcessor::ConvertPolicyTime(
     base::TimeDelta policy_time,
     int shift_in_days) {
-  return LocalMidnight(current_time_) +
-         base::TimeDelta::FromDays(shift_in_days) + policy_time;
+  return LocalMidnight(current_time_) + base::Days(shift_in_days) + policy_time;
 }
 
 base::Time UsageTimeLimitProcessor::LocalMidnight(base::Time time) {
@@ -1027,10 +1025,9 @@
   base::TimeDelta midnight_delta = current_time_ - current_time_.UTCMidnight();
   // Shift in days due to the timezone.
   int time_zone_shift = 0;
-  if (midnight_delta + time_zone_offset < base::TimeDelta::FromHours(0)) {
+  if (midnight_delta + time_zone_offset < base::Hours(0)) {
     time_zone_shift = -1;
-  } else if (midnight_delta + time_zone_offset >=
-             base::TimeDelta::FromHours(24)) {
+  } else if (midnight_delta + time_zone_offset >= base::Hours(24)) {
     time_zone_shift = 1;
   }
 
@@ -1046,13 +1043,12 @@
   time_zone_->getOffset(time.ToDoubleT() * base::Time::kMillisecondsPerSecond,
                         true /* local */, raw_offset, dst_offset, status);
   base::TimeDelta time_zone_offset =
-      base::TimeDelta::FromMilliseconds(raw_offset + dst_offset);
+      base::Milliseconds(raw_offset + dst_offset);
   if (U_FAILURE(status)) {
     LOG(ERROR) << "Failed to get time zone offset, error code: " << status;
     // The fallback case is to get the raw timezone offset ignoring the daylight
     // saving time.
-    time_zone_offset =
-        base::TimeDelta::FromMilliseconds(time_zone_->getRawOffset());
+    time_zone_offset = base::Milliseconds(time_zone_->getRawOffset());
   }
   return time_zone_offset;
 }
@@ -1064,7 +1060,7 @@
 base::TimeDelta ValueToTimeDelta(const base::Value* policy_time) {
   int hour = policy_time->FindKey(kWindowLimitEntryTimeHour)->GetInt();
   int minute = policy_time->FindKey(kWindowLimitEntryTimeMinute)->GetInt();
-  return base::TimeDelta::FromMinutes(hour * 60 + minute);
+  return base::Minutes(hour * 60 + minute);
 }
 
 // Transforms weekday strings into the Weekday enum.
@@ -1095,8 +1091,7 @@
     base::Time start_day_midnight) {
   TimeWindowLimitBoundaries limit;
   limit.starts = start_day_midnight + starts_at;
-  limit.ends = start_day_midnight +
-               base::TimeDelta::FromDays(IsOvernight() ? 1 : 0) + ends_at;
+  limit.ends = start_day_midnight + base::Days(IsOvernight() ? 1 : 0) + ends_at;
   return limit;
 }
 
@@ -1128,8 +1123,8 @@
     TimeWindowLimitEntry entry;
     entry.starts_at = ValueToTimeDelta(starts_at);
     entry.ends_at = ValueToTimeDelta(ends_at);
-    entry.last_updated = base::Time::UnixEpoch() +
-                         base::TimeDelta::FromMilliseconds(last_updated);
+    entry.last_updated =
+        base::Time::UnixEpoch() + base::Milliseconds(last_updated);
 
     Weekday weekday = GetWeekday(effective_day->GetString());
     // We only support one time_limit_window per day. If more than one is sent
@@ -1159,7 +1154,7 @@
 
 TimeUsageLimit::TimeUsageLimit(const base::Value& usage_limit_dict)
     // Default reset time is midnight.
-    : resets_at(base::TimeDelta::FromMinutes(0)) {
+    : resets_at(base::Minutes(0)) {
   const base::Value* resets_at_value =
       usage_limit_dict.FindKey(kUsageLimitResetAt);
   if (resets_at_value) {
@@ -1184,9 +1179,9 @@
 
     Weekday weekday = GetWeekday(weekday_key);
     TimeUsageLimitEntry entry;
-    entry.usage_quota = base::TimeDelta::FromMinutes(usage_quota->GetInt());
-    entry.last_updated = base::Time::UnixEpoch() +
-                         base::TimeDelta::FromMilliseconds(last_updated);
+    entry.usage_quota = base::Minutes(usage_quota->GetInt());
+    entry.last_updated =
+        base::Time::UnixEpoch() + base::Milliseconds(last_updated);
     entries[weekday] = std::move(entry);
   }
 }
@@ -1272,9 +1267,8 @@
   return internal::UsageTimeLimitProcessor(
              std::move(time_window_limit), std::move(time_usage_limit),
              std::move(time_limit_override),
-             std::move(local_time_limit_override),
-             base::TimeDelta::FromMinutes(0), base::Time(), current_time,
-             time_zone, absl::nullopt)
+             std::move(local_time_limit_override), base::Minutes(0),
+             base::Time(), current_time, time_zone, absl::nullopt)
       .GetExpectedResetTime();
 }
 
@@ -1355,7 +1349,7 @@
   base::Time now = base::Time::Now();
   // Ignores the override time limit that is not created within 1 day.
   if (time_limit_override && now > time_limit_override->created_at() &&
-      now - time_limit_override->created_at() < base::TimeDelta::FromDays(1)) {
+      now - time_limit_override->created_at() < base::Days(1)) {
     enabled_policies.insert(PolicyType::kOverride);
   }
 
diff --git a/chrome/browser/ash/child_accounts/usage_time_limit_processor_unittest.cc b/chrome/browser/ash/child_accounts/usage_time_limit_processor_unittest.cc
index fdf4ceb..7b2946fa 100644
--- a/chrome/browser/ash/child_accounts/usage_time_limit_processor_unittest.cc
+++ b/chrome/browser/ash/child_accounts/usage_time_limit_processor_unittest.cc
@@ -43,7 +43,7 @@
 
   if (actual.is_time_usage_limit_enabled) {
     ASSERT_EQ(expected.remaining_usage, actual.remaining_usage);
-    if (actual.remaining_usage <= base::TimeDelta::FromMinutes(0)) {
+    if (actual.remaining_usage <= base::Minutes(0)) {
       ASSERT_EQ(expected.time_usage_limit_started,
                 actual.time_usage_limit_started);
     }
@@ -62,12 +62,12 @@
 
 TEST_F(UsageTimeLimitProcessorInternalTest, TimeLimitWindowValid) {
   base::Time last_updated = utils::TimeFromString("1 Jan 1970 00:00:00");
-  base::Value monday_time_limit = utils::CreateTimeWindow(
-      utils::kMonday, base::TimeDelta::FromMinutes(22 * 60 + 30),
-      base::TimeDelta::FromMinutes(7 * 60 + 30), last_updated);
-  base::Value friday_time_limit = utils::CreateTimeWindow(
-      utils::kFriday, base::TimeDelta::FromHours(23),
-      base::TimeDelta::FromMinutes(8 * 60 + 20), last_updated);
+  base::Value monday_time_limit =
+      utils::CreateTimeWindow(utils::kMonday, base::Minutes(22 * 60 + 30),
+                              base::Minutes(7 * 60 + 30), last_updated);
+  base::Value friday_time_limit =
+      utils::CreateTimeWindow(utils::kFriday, base::Hours(23),
+                              base::Minutes(8 * 60 + 20), last_updated);
 
   base::Value window_limit_entries(base::Value::Type::LIST);
   window_limit_entries.Append(std::move(monday_time_limit));
@@ -116,10 +116,10 @@
   // Create dictionary containing the policy information.
   base::Time last_updated_one = utils::TimeFromString("1 Jan 2018 10:00:00");
   base::Time last_updated_two = utils::TimeFromString("1 Jan 2018 11:00:00");
-  base::Value tuesday_time_usage = utils::CreateTimeUsage(
-      base::TimeDelta::FromMinutes(120), last_updated_one);
-  base::Value thursday_time_usage = utils::CreateTimeUsage(
-      base::TimeDelta::FromMinutes(80), last_updated_two);
+  base::Value tuesday_time_usage =
+      utils::CreateTimeUsage(base::Minutes(120), last_updated_one);
+  base::Value thursday_time_usage =
+      utils::CreateTimeUsage(base::Minutes(80), last_updated_two);
 
   base::Value time_usage_limit = base::Value(base::Value::Type::DICTIONARY);
   time_usage_limit.SetKey("tuesday", std::move(tuesday_time_usage));
@@ -234,7 +234,7 @@
   EXPECT_EQ(override_struct->created_at(),
             utils::TimeFromString("1 Jan 2018 10:00:00"));
   EXPECT_TRUE(override_struct->duration());
-  EXPECT_EQ(override_struct->duration(), base::TimeDelta::FromMinutes(30));
+  EXPECT_EQ(override_struct->duration(), base::Minutes(30));
 }
 
 // Check that the most recent override is chosen when more than one is sent on
@@ -310,9 +310,9 @@
 
   // Check state before Monday time window limit.
   base::Time time_one = utils::TimeFromString("Mon, 1 Jan 2018 20:00 GMT+0300");
-  State state_one = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(0), time_one,
-                             time_one, timezone.get(), absl::nullopt);
+  State state_one =
+      GetState(policy, nullptr /* local_override */, base::Minutes(0), time_one,
+               time_one, timezone.get(), absl::nullopt);
 
   State expected_state_one;
   expected_state_one.is_locked = false;
@@ -325,9 +325,9 @@
 
   // Check state during the Monday time window limit.
   base::Time time_two = utils::TimeFromString("Mon, 1 Jan 2018 22:00 GMT+0300");
-  State state_two = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(0), time_two,
-                             time_two, timezone.get(), state_one);
+  State state_two =
+      GetState(policy, nullptr /* local_override */, base::Minutes(0), time_two,
+               time_two, timezone.get(), state_one);
 
   State expected_state_two;
   expected_state_two.is_locked = true;
@@ -342,9 +342,9 @@
   // Check state after the Monday time window limit.
   base::Time time_three =
       utils::TimeFromString("Tue, 2 Jan 2018 9:00 GMT+0300");
-  State state_three = GetState(policy, nullptr /* local_override */,
-                               base::TimeDelta::FromMinutes(0), time_three,
-                               time_three, timezone.get(), state_two);
+  State state_three =
+      GetState(policy, nullptr /* local_override */, base::Minutes(0),
+               time_three, time_three, timezone.get(), state_two);
 
   State expected_state_three;
   expected_state_three.is_locked = false;
@@ -366,16 +366,16 @@
   base::Time last_updated = utils::TimeFromString("1 Jan 2018 8:00");
   base::Value policy = utils::CreateTimeLimitPolicy(utils::CreateTime(8, 0));
 
-  utils::AddTimeUsageLimit(&policy, utils::kTuesday,
-                           base::TimeDelta::FromHours(2), last_updated);
-  utils::AddTimeUsageLimit(&policy, utils::kThursday,
-                           base::TimeDelta::FromMinutes(80), last_updated);
+  utils::AddTimeUsageLimit(&policy, utils::kTuesday, base::Hours(2),
+                           last_updated);
+  utils::AddTimeUsageLimit(&policy, utils::kThursday, base::Minutes(80),
+                           last_updated);
 
   // Check state before time usage limit is enforced.
   base::Time time_one = utils::TimeFromString("Mon, 1 Jan 2018 20:00");
-  State state_one = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(120), time_one,
-                             time_one, timezone.get(), absl::nullopt);
+  State state_one =
+      GetState(policy, nullptr /* local_override */, base::Minutes(120),
+               time_one, time_one, timezone.get(), absl::nullopt);
 
   State expected_state_one;
   expected_state_one.is_locked = false;
@@ -390,26 +390,25 @@
 
   // Check state before time usage limit is enforced.
   base::Time time_two = utils::TimeFromString("Tue, 2 Jan 2018 12:00");
-  State state_two = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(60), time_two,
-                             time_two, timezone.get(), state_one);
+  State state_two =
+      GetState(policy, nullptr /* local_override */, base::Minutes(60),
+               time_two, time_two, timezone.get(), state_one);
 
   State expected_state_two;
   expected_state_two.is_locked = false;
   expected_state_two.active_policy = PolicyType::kNoPolicy;
   expected_state_two.is_time_usage_limit_enabled = true;
-  expected_state_two.remaining_usage = base::TimeDelta::FromMinutes(60);
-  expected_state_two.next_state_change_time =
-      time_two + base::TimeDelta::FromMinutes(60);
+  expected_state_two.remaining_usage = base::Minutes(60);
+  expected_state_two.next_state_change_time = time_two + base::Minutes(60);
   expected_state_two.next_state_active_policy = PolicyType::kUsageLimit;
 
   AssertEqState(expected_state_two, state_two);
 
   // Check state when the time usage limit should be enforced.
   base::Time time_three = utils::TimeFromString("Tue, 2 Jan 2018 21:00");
-  State state_three = GetState(policy, nullptr /* local_override */,
-                               base::TimeDelta::FromMinutes(120), time_three,
-                               time_three, timezone.get(), state_two);
+  State state_three =
+      GetState(policy, nullptr /* local_override */, base::Minutes(120),
+               time_three, time_three, timezone.get(), state_two);
 
   base::Time wednesday_reset_time =
       utils::TimeFromString("Wed, 3 Jan 2018 8:00");
@@ -418,7 +417,7 @@
   expected_state_three.is_locked = true;
   expected_state_three.active_policy = PolicyType::kUsageLimit;
   expected_state_three.is_time_usage_limit_enabled = true;
-  expected_state_three.remaining_usage = base::TimeDelta::FromMinutes(0);
+  expected_state_three.remaining_usage = base::Minutes(0);
   expected_state_three.time_usage_limit_started = time_three;
   expected_state_three.next_state_change_time = wednesday_reset_time;
   expected_state_three.next_state_active_policy = PolicyType::kNoPolicy;
@@ -440,31 +439,30 @@
   utils::AddTimeWindowLimit(&policy, utils::kFriday, utils::CreateTime(21, 0),
                             utils::CreateTime(8, 30), last_updated);
 
-  utils::AddTimeUsageLimit(&policy, utils::kMonday,
-                           base::TimeDelta::FromHours(2), last_updated);
+  utils::AddTimeUsageLimit(&policy, utils::kMonday, base::Hours(2),
+                           last_updated);
 
   // Check state before any policy is enforced.
   base::Time time_one = utils::TimeFromString("Mon, 1 Jan 2018 14:00");
-  State state_one = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(80), time_one,
-                             time_one, timezone.get(), absl::nullopt);
+  State state_one =
+      GetState(policy, nullptr /* local_override */, base::Minutes(80),
+               time_one, time_one, timezone.get(), absl::nullopt);
 
   State expected_state_one;
   expected_state_one.is_locked = false;
   expected_state_one.active_policy = PolicyType::kNoPolicy;
   expected_state_one.is_time_usage_limit_enabled = true;
-  expected_state_one.remaining_usage = base::TimeDelta::FromMinutes(40);
-  expected_state_one.next_state_change_time =
-      time_one + base::TimeDelta::FromMinutes(40);
+  expected_state_one.remaining_usage = base::Minutes(40);
+  expected_state_one.next_state_change_time = time_one + base::Minutes(40);
   expected_state_one.next_state_active_policy = PolicyType::kUsageLimit;
 
   AssertEqState(expected_state_one, state_one);
 
   // Check state during time usage limit.
   base::Time time_two = utils::TimeFromString("Mon, 1 Jan 2018 16:00");
-  State state_two = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(121), time_two,
-                             time_two, timezone.get(), state_one);
+  State state_two =
+      GetState(policy, nullptr /* local_override */, base::Minutes(121),
+               time_two, time_two, timezone.get(), state_one);
 
   base::Time monday_time_window_limit_start =
       utils::TimeFromString("Mon, 1 Jan 2018 21:00");
@@ -473,7 +471,7 @@
   expected_state_two.is_locked = true;
   expected_state_two.active_policy = PolicyType::kUsageLimit;
   expected_state_two.is_time_usage_limit_enabled = true;
-  expected_state_two.remaining_usage = base::TimeDelta::FromMinutes(0);
+  expected_state_two.remaining_usage = base::Minutes(0);
   expected_state_two.time_usage_limit_started = time_two;
   expected_state_two.next_state_change_time = monday_time_window_limit_start;
   expected_state_two.next_state_active_policy = PolicyType::kFixedLimit;
@@ -484,15 +482,15 @@
 
   // Check state during time window limit and time usage limit enforced.
   base::Time time_three = utils::TimeFromString("Mon, 1 Jan 2018 21:00");
-  State state_three = GetState(policy, nullptr /* local_override */,
-                               base::TimeDelta::FromMinutes(120), time_three,
-                               time_three, timezone.get(), state_two);
+  State state_three =
+      GetState(policy, nullptr /* local_override */, base::Minutes(120),
+               time_three, time_three, timezone.get(), state_two);
 
   State expected_state_three;
   expected_state_three.is_locked = true;
   expected_state_three.active_policy = PolicyType::kFixedLimit;
   expected_state_three.is_time_usage_limit_enabled = true;
-  expected_state_three.remaining_usage = base::TimeDelta::FromMinutes(0);
+  expected_state_three.remaining_usage = base::Minutes(0);
   expected_state_three.time_usage_limit_started = time_two;
   expected_state_three.next_state_change_time =
       utils::TimeFromString("Tue, 2 Jan 2018 8:30");
@@ -504,9 +502,9 @@
 
   // Check state after time usage limit reset and window limit end.
   base::Time time_four = utils::TimeFromString("Fri, 5 Jan 2018 8:30");
-  State state_four = GetState(policy, nullptr /* local_override */,
-                              base::TimeDelta::FromMinutes(120), time_four,
-                              time_four, timezone.get(), state_three);
+  State state_four =
+      GetState(policy, nullptr /* local_override */, base::Minutes(120),
+               time_four, time_four, timezone.get(), state_three);
 
   State expected_state_four;
   expected_state_four.is_locked = false;
@@ -526,19 +524,19 @@
   // Setup policy.
   base::Time last_updated = utils::TimeFromString("5 Jan 2018 8:00 PST");
   base::Value policy = utils::CreateTimeLimitPolicy(utils::CreateTime(6, 0));
-  utils::AddTimeUsageLimit(&policy, utils::kFriday,
-                           base::TimeDelta::FromHours(1), last_updated);
+  utils::AddTimeUsageLimit(&policy, utils::kFriday, base::Hours(1),
+                           last_updated);
 
   base::Time time_one = utils::TimeFromString("Fri, 5 Jan 2018 15:00 PST");
-  State state_one = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromHours(1), time_one, time_one,
-                             timezone.get(), absl::nullopt);
+  State state_one =
+      GetState(policy, nullptr /* local_override */, base::Hours(1), time_one,
+               time_one, timezone.get(), absl::nullopt);
 
   State expected_state_one;
   expected_state_one.is_locked = true;
   expected_state_one.active_policy = PolicyType::kUsageLimit;
   expected_state_one.is_time_usage_limit_enabled = true;
-  expected_state_one.remaining_usage = base::TimeDelta::FromMinutes(0);
+  expected_state_one.remaining_usage = base::Minutes(0);
   expected_state_one.next_state_change_time =
       utils::TimeFromString("Sat, 6 Jan 2018 6:00 PST");
   expected_state_one.next_state_active_policy = PolicyType::kNoPolicy;
@@ -558,9 +556,9 @@
                      utils::TimeFromString("Mon, 1 Jan 2018 15:00"));
 
   base::Time time_one = utils::TimeFromString("Mon, 1 Jan 2018 15:05");
-  State state_one = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(0), time_one,
-                             time_one, timezone.get(), absl::nullopt);
+  State state_one =
+      GetState(policy, nullptr /* local_override */, base::Minutes(0), time_one,
+               time_one, timezone.get(), absl::nullopt);
 
   // Check that the device is locked until next morning.
   State expected_state_one;
@@ -589,9 +587,9 @@
                      utils::TimeFromString("Mon, 1 Jan 2018 15:00"));
 
   base::Time time_one = utils::TimeFromString("Mon, 1 Jan 2018 15:05");
-  State state_one = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(0), time_one,
-                             time_one, timezone.get(), absl::nullopt);
+  State state_one =
+      GetState(policy, nullptr /* local_override */, base::Minutes(0), time_one,
+               time_one, timezone.get(), absl::nullopt);
 
   // Check that the device is locked until end of window limit.
   State expected_state_one;
@@ -607,9 +605,9 @@
   AssertEqState(expected_state_one, state_one);
 
   base::Time time_two = utils::TimeFromString("Mon, 1 Jan 2018 22:05");
-  State state_two = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(0), time_two,
-                             time_two, timezone.get(), state_one);
+  State state_two =
+      GetState(policy, nullptr /* local_override */, base::Minutes(0), time_two,
+               time_two, timezone.get(), state_one);
 
   // Check that window limit takes over override.
   State expected_state_two;
@@ -642,9 +640,9 @@
 
   // Check that the override is invalidating the time window limit.
   base::Time time_one = utils::TimeFromString("Mon, 1 Jan 2018 18:35 GMT+0800");
-  State state_one = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(120), time_one,
-                             time_one, timezone.get(), absl::nullopt);
+  State state_one =
+      GetState(policy, nullptr /* local_override */, base::Minutes(120),
+               time_one, time_one, timezone.get(), absl::nullopt);
 
   State expected_state_one;
   expected_state_one.is_locked = false;
@@ -664,9 +662,9 @@
 
   // Check that the new time window limit is enforced.
   base::Time time_two = utils::TimeFromString("Mon, 1 Jan 2018 19:10 GMT+0800");
-  State state_two = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(120), time_two,
-                             time_two, timezone.get(), state_one);
+  State state_two =
+      GetState(policy, nullptr /* local_override */, base::Minutes(120),
+               time_two, time_two, timezone.get(), state_one);
 
   State expected_state_two;
   expected_state_two.is_locked = true;
@@ -691,21 +689,21 @@
   base::Value policy = utils::CreateTimeLimitPolicy(utils::CreateTime(8, 0));
   utils::AddTimeWindowLimit(&policy, utils::kMonday, utils::CreateTime(21, 0),
                             utils::CreateTime(10, 0), last_updated);
-  utils::AddTimeUsageLimit(&policy, utils::kMonday,
-                           base::TimeDelta::FromHours(1), last_updated);
+  utils::AddTimeUsageLimit(&policy, utils::kMonday, base::Hours(1),
+                           last_updated);
   utils::AddOverride(&policy, TimeLimitOverride::Action::kUnlock,
                      utils::TimeFromString("Mon, 1 Jan 2018 22:00 PST"));
 
   base::Time time_one = utils::TimeFromString("Mon, 1 Jan 2018 22:10 PST");
-  State state_one = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(40), time_one,
-                             time_one, timezone.get(), absl::nullopt);
+  State state_one =
+      GetState(policy, nullptr /* local_override */, base::Minutes(40),
+               time_one, time_one, timezone.get(), absl::nullopt);
 
   State expected_state_one;
   expected_state_one.is_locked = false;
   expected_state_one.active_policy = PolicyType::kOverride;
   expected_state_one.is_time_usage_limit_enabled = true;
-  expected_state_one.remaining_usage = base::TimeDelta::FromMinutes(20);
+  expected_state_one.remaining_usage = base::Minutes(20);
   expected_state_one.next_state_change_time =
       utils::TimeFromString("Mon, 1 Jan 2018 22:30 PST");
   expected_state_one.next_state_active_policy = PolicyType::kUsageLimit;
@@ -716,15 +714,15 @@
   // started, and that it will be locked until the time usage limit reset time,
   // and not when the time window limit ends.
   base::Time time_two = utils::TimeFromString("Mon, 1 Jan 2018 22:30 PST");
-  State state_two = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromHours(1), time_two, time_two,
-                             timezone.get(), state_one);
+  State state_two =
+      GetState(policy, nullptr /* local_override */, base::Hours(1), time_two,
+               time_two, timezone.get(), state_one);
 
   State expected_state_two;
   expected_state_two.is_locked = true;
   expected_state_two.active_policy = PolicyType::kUsageLimit;
   expected_state_two.is_time_usage_limit_enabled = true;
-  expected_state_two.remaining_usage = base::TimeDelta::FromMinutes(0);
+  expected_state_two.remaining_usage = base::Minutes(0);
   expected_state_two.time_usage_limit_started = time_two;
   expected_state_two.next_state_change_time =
       utils::TimeFromString("Tue, 2 Jan 2018 8:00 PST");
@@ -742,19 +740,19 @@
   // Setup policy.
   base::Time last_updated = utils::TimeFromString("1 Jan 2018 8:00 PST");
   base::Value policy = utils::CreateTimeLimitPolicy(utils::CreateTime(6, 0));
-  utils::AddTimeUsageLimit(&policy, utils::kSunday,
-                           base::TimeDelta::FromMinutes(60), last_updated);
+  utils::AddTimeUsageLimit(&policy, utils::kSunday, base::Minutes(60),
+                           last_updated);
 
   base::Time time_one = utils::TimeFromString("Sun, 7 Jan 2018 15:00 PST");
-  State state_one = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(40), time_one,
-                             time_one, timezone.get(), absl::nullopt);
+  State state_one =
+      GetState(policy, nullptr /* local_override */, base::Minutes(40),
+               time_one, time_one, timezone.get(), absl::nullopt);
 
   State expected_state_one;
   expected_state_one.is_locked = false;
   expected_state_one.active_policy = PolicyType::kNoPolicy;
   expected_state_one.is_time_usage_limit_enabled = true;
-  expected_state_one.remaining_usage = base::TimeDelta::FromMinutes(20);
+  expected_state_one.remaining_usage = base::Minutes(20);
   expected_state_one.next_state_change_time =
       utils::TimeFromString("Sun, 7 Jan 2018 15:20 PST");
   expected_state_one.next_state_active_policy = PolicyType::kUsageLimit;
@@ -762,15 +760,15 @@
   AssertEqState(expected_state_one, state_one);
 
   base::Time time_two = utils::TimeFromString("Sun, 7 Jan 2018 15:30 PST");
-  State state_two = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(60), time_two,
-                             time_two, timezone.get(), state_one);
+  State state_two =
+      GetState(policy, nullptr /* local_override */, base::Minutes(60),
+               time_two, time_two, timezone.get(), state_one);
 
   State expected_state_two;
   expected_state_two.is_locked = true;
   expected_state_two.active_policy = PolicyType::kUsageLimit;
   expected_state_two.is_time_usage_limit_enabled = true;
-  expected_state_two.remaining_usage = base::TimeDelta::FromMinutes(0);
+  expected_state_two.remaining_usage = base::Minutes(0);
   expected_state_two.time_usage_limit_started = time_two;
   expected_state_two.next_state_change_time =
       utils::TimeFromString("Mon, 8 Jan 2018 6:00 PST");
@@ -783,15 +781,15 @@
   utils::AddOverride(&policy, TimeLimitOverride::Action::kUnlock,
                      utils::TimeFromString("Sun, 7 Jan 2018 16:00 PST"));
   base::Time time_three = utils::TimeFromString("Sun, 7 Jan 2018 16:01 PST");
-  State state_three = GetState(policy, nullptr /* local_override */,
-                               base::TimeDelta::FromMinutes(60), time_three,
-                               time_three, timezone.get(), state_two);
+  State state_three =
+      GetState(policy, nullptr /* local_override */, base::Minutes(60),
+               time_three, time_three, timezone.get(), state_two);
 
   State expected_state_three;
   expected_state_three.is_locked = false;
   expected_state_three.active_policy = PolicyType::kOverride;
   expected_state_three.is_time_usage_limit_enabled = true;
-  expected_state_three.remaining_usage = base::TimeDelta::FromMinutes(0);
+  expected_state_three.remaining_usage = base::Minutes(0);
   expected_state_three.time_usage_limit_started = time_two;
   // This should be utils::TimeFromString("Sun, 14 Jan 2018 7:00 PST"),
   // crbug/902348:
@@ -816,9 +814,9 @@
 
   // Check that the device is locked because of the override.
   base::Time time_one = utils::TimeFromString("Mon, 1 Jan 2018 21:00 PST");
-  State state_one = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(40), time_one,
-                             time_one, timezone.get(), absl::nullopt);
+  State state_one =
+      GetState(policy, nullptr /* local_override */, base::Minutes(40),
+               time_one, time_one, timezone.get(), absl::nullopt);
 
   State expected_state_one;
   expected_state_one.is_locked = true;
@@ -834,9 +832,9 @@
 
   // Check that the device is still locked after midnight.
   base::Time time_two = utils::TimeFromString("Tue, 2 Jan 2018 1:00 PST");
-  State state_two = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(0), time_two,
-                             time_two, timezone.get(), state_one);
+  State state_two =
+      GetState(policy, nullptr /* local_override */, base::Minutes(0), time_two,
+               time_two, timezone.get(), state_one);
 
   State expected_state_two;
   expected_state_two.is_locked = true;
@@ -852,9 +850,9 @@
 
   // Check that the device is unlocked.
   base::Time time_three = utils::TimeFromString("Tue, 2 Jan 2018 6:00 PST");
-  State state_three = GetState(policy, nullptr /* local_override */,
-                               base::TimeDelta::FromMinutes(0), time_three,
-                               time_three, timezone.get(), state_two);
+  State state_three =
+      GetState(policy, nullptr /* local_override */, base::Minutes(0),
+               time_three, time_three, timezone.get(), state_two);
 
   State expected_state_three;
   expected_state_three.is_locked = false;
@@ -899,37 +897,36 @@
   // Test time window limit for every day of the week.
   for (int i = 0; i < 7; i++) {
     // 10 PM on the current day of the week.
-    base::Time night_time = monday_ten_pm + base::TimeDelta::FromDays(i);
+    base::Time night_time = monday_ten_pm + base::Days(i);
     // 5 AM on the current day of the week.
-    base::Time morning_time = tuesday_five_am + base::TimeDelta::FromDays(i);
+    base::Time morning_time = tuesday_five_am + base::Days(i);
     // 7 AM on the current day of the week.
-    base::Time window_limit_end_time =
-        tuesday_seven_am + base::TimeDelta::FromDays(i);
+    base::Time window_limit_end_time = tuesday_seven_am + base::Days(i);
 
-    State night_state = GetState(policy, nullptr /* local_override */,
-                                 base::TimeDelta::FromMinutes(40), night_time,
-                                 night_time, timezone.get(), absl::nullopt);
+    State night_state =
+        GetState(policy, nullptr /* local_override */, base::Minutes(40),
+                 night_time, night_time, timezone.get(), absl::nullopt);
 
     State expected_night_state;
     expected_night_state.is_locked = true;
     expected_night_state.active_policy = PolicyType::kFixedLimit;
     expected_night_state.is_time_usage_limit_enabled = false;
-    expected_night_state.remaining_usage = base::TimeDelta::FromMinutes(0);
+    expected_night_state.remaining_usage = base::Minutes(0);
     expected_night_state.next_state_change_time = window_limit_end_time;
     expected_night_state.next_state_active_policy = PolicyType::kNoPolicy;
     expected_night_state.next_unlock_time = window_limit_end_time;
 
     AssertEqState(expected_night_state, night_state);
 
-    State morning_state = GetState(
-        policy, nullptr /* local_override */, base::TimeDelta::FromMinutes(40),
-        morning_time, night_time, timezone.get(), absl::nullopt);
+    State morning_state =
+        GetState(policy, nullptr /* local_override */, base::Minutes(40),
+                 morning_time, night_time, timezone.get(), absl::nullopt);
 
     State expected_morning_state;
     expected_morning_state.is_locked = true;
     expected_morning_state.active_policy = PolicyType::kFixedLimit;
     expected_morning_state.is_time_usage_limit_enabled = false;
-    expected_morning_state.remaining_usage = base::TimeDelta::FromMinutes(0);
+    expected_morning_state.remaining_usage = base::Minutes(0);
     expected_morning_state.next_state_change_time = window_limit_end_time;
     expected_morning_state.next_state_active_policy = PolicyType::kNoPolicy;
     expected_morning_state.next_unlock_time = window_limit_end_time;
@@ -945,20 +942,20 @@
   // Setup policy.
   base::Time last_updated = utils::TimeFromString("1 Jan 2018 8:00 PST");
   base::Value policy = utils::CreateTimeLimitPolicy(utils::CreateTime(6, 0));
-  utils::AddTimeUsageLimit(&policy, utils::kMonday,
-                           base::TimeDelta::FromHours(3), last_updated);
-  utils::AddTimeUsageLimit(&policy, utils::kTuesday,
-                           base::TimeDelta::FromHours(3), last_updated);
-  utils::AddTimeUsageLimit(&policy, utils::kWednesday,
-                           base::TimeDelta::FromHours(3), last_updated);
-  utils::AddTimeUsageLimit(&policy, utils::kThursday,
-                           base::TimeDelta::FromHours(3), last_updated);
-  utils::AddTimeUsageLimit(&policy, utils::kFriday,
-                           base::TimeDelta::FromHours(3), last_updated);
-  utils::AddTimeUsageLimit(&policy, utils::kSaturday,
-                           base::TimeDelta::FromHours(3), last_updated);
-  utils::AddTimeUsageLimit(&policy, utils::kSunday,
-                           base::TimeDelta::FromHours(3), last_updated);
+  utils::AddTimeUsageLimit(&policy, utils::kMonday, base::Hours(3),
+                           last_updated);
+  utils::AddTimeUsageLimit(&policy, utils::kTuesday, base::Hours(3),
+                           last_updated);
+  utils::AddTimeUsageLimit(&policy, utils::kWednesday, base::Hours(3),
+                           last_updated);
+  utils::AddTimeUsageLimit(&policy, utils::kThursday, base::Hours(3),
+                           last_updated);
+  utils::AddTimeUsageLimit(&policy, utils::kFriday, base::Hours(3),
+                           last_updated);
+  utils::AddTimeUsageLimit(&policy, utils::kSaturday, base::Hours(3),
+                           last_updated);
+  utils::AddTimeUsageLimit(&policy, utils::kSunday, base::Hours(3),
+                           last_updated);
 
   base::Time monday_ten_pm = utils::TimeFromString("Mon, 1 Jan 2018 22:00 PST");
   base::Time tuesday_five_am =
@@ -968,22 +965,21 @@
   // Test time usage limit for every day of the week.
   for (int i = 0; i < 7; i++) {
     // 10 PM on the current day of the week.
-    base::Time night_time = monday_ten_pm + base::TimeDelta::FromDays(i);
+    base::Time night_time = monday_ten_pm + base::Days(i);
     // 5 AM on the current day of the week.
-    base::Time morning_time = tuesday_five_am + base::TimeDelta::FromDays(i);
+    base::Time morning_time = tuesday_five_am + base::Days(i);
     // 7 AM on the current day of the week.
-    base::Time usage_limit_reset_time =
-        tuesday_six_am + base::TimeDelta::FromDays(i);
+    base::Time usage_limit_reset_time = tuesday_six_am + base::Days(i);
 
-    State night_state = GetState(policy, nullptr /* local_override */,
-                                 base::TimeDelta::FromHours(3), night_time,
-                                 night_time, timezone.get(), absl::nullopt);
+    State night_state =
+        GetState(policy, nullptr /* local_override */, base::Hours(3),
+                 night_time, night_time, timezone.get(), absl::nullopt);
 
     State expected_night_state;
     expected_night_state.is_locked = true;
     expected_night_state.active_policy = PolicyType::kUsageLimit;
     expected_night_state.is_time_usage_limit_enabled = true;
-    expected_night_state.remaining_usage = base::TimeDelta::FromMinutes(0);
+    expected_night_state.remaining_usage = base::Minutes(0);
     expected_night_state.next_state_change_time = usage_limit_reset_time;
     expected_night_state.next_state_active_policy = PolicyType::kNoPolicy;
     expected_night_state.next_unlock_time = usage_limit_reset_time;
@@ -991,15 +987,15 @@
 
     AssertEqState(expected_night_state, night_state);
 
-    State morning_state = GetState(policy, nullptr /* local_override */,
-                                   base::TimeDelta::FromHours(3), morning_time,
-                                   night_time, timezone.get(), night_state);
+    State morning_state =
+        GetState(policy, nullptr /* local_override */, base::Hours(3),
+                 morning_time, night_time, timezone.get(), night_state);
 
     State expected_morning_state;
     expected_morning_state.is_locked = true;
     expected_morning_state.active_policy = PolicyType::kUsageLimit;
     expected_morning_state.is_time_usage_limit_enabled = true;
-    expected_morning_state.remaining_usage = base::TimeDelta::FromMinutes(0);
+    expected_morning_state.remaining_usage = base::Minutes(0);
     expected_morning_state.next_state_change_time = usage_limit_reset_time;
     expected_morning_state.next_state_active_policy = PolicyType::kNoPolicy;
     expected_morning_state.next_unlock_time = usage_limit_reset_time;
@@ -1021,9 +1017,9 @@
 
   // Check that device is locked.
   base::Time time_one = utils::TimeFromString("Sun, 7 Jan 2018 8:00 GMT");
-  State state_one = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(80), time_one,
-                             time_one, timezone.get(), absl::nullopt);
+  State state_one =
+      GetState(policy, nullptr /* local_override */, base::Minutes(80),
+               time_one, time_one, timezone.get(), absl::nullopt);
 
   State expected_state_one;
   expected_state_one.is_locked = true;
@@ -1045,20 +1041,20 @@
   // Setup policy.
   base::Time last_updated = utils::TimeFromString("1 Jan 2018 8:00 GMT");
   base::Value policy = utils::CreateTimeLimitPolicy(utils::CreateTime(6, 0));
-  utils::AddTimeUsageLimit(&policy, utils::kSaturday,
-                           base::TimeDelta::FromHours(2), last_updated);
+  utils::AddTimeUsageLimit(&policy, utils::kSaturday, base::Hours(2),
+                           last_updated);
 
   // Check that device is locked.
   base::Time time_one = utils::TimeFromString("Sun, 7 Jan 2018 4:00 GMT");
-  State state_one = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromHours(2), time_one, time_one,
-                             timezone.get(), absl::nullopt);
+  State state_one =
+      GetState(policy, nullptr /* local_override */, base::Hours(2), time_one,
+               time_one, timezone.get(), absl::nullopt);
 
   State expected_state_one;
   expected_state_one.is_locked = true;
   expected_state_one.active_policy = PolicyType::kUsageLimit;
   expected_state_one.is_time_usage_limit_enabled = true;
-  expected_state_one.remaining_usage = base::TimeDelta::FromMinutes(0);
+  expected_state_one.remaining_usage = base::Minutes(0);
   expected_state_one.time_usage_limit_started = time_one;
   expected_state_one.next_state_change_time =
       utils::TimeFromString("Sun, 7 Jan 2018 6:00 GMT");
@@ -1076,20 +1072,20 @@
   // Setup policy.
   base::Time last_updated = utils::TimeFromString("1 Jan 2018 8:00 PST");
   base::Value policy = utils::CreateTimeLimitPolicy(utils::CreateTime(6, 0));
-  utils::AddTimeUsageLimit(&policy, utils::kSaturday,
-                           base::TimeDelta::FromHours(2), last_updated);
+  utils::AddTimeUsageLimit(&policy, utils::kSaturday, base::Hours(2),
+                           last_updated);
 
   // Check that device is locked.
   base::Time time_one = utils::TimeFromString("Sat, 6 Jan 2018 20:00 PST");
-  State state_one = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromHours(2), time_one, time_one,
-                             timezone.get(), absl::nullopt);
+  State state_one =
+      GetState(policy, nullptr /* local_override */, base::Hours(2), time_one,
+               time_one, timezone.get(), absl::nullopt);
 
   State expected_state_one;
   expected_state_one.is_locked = true;
   expected_state_one.active_policy = PolicyType::kUsageLimit;
   expected_state_one.is_time_usage_limit_enabled = true;
-  expected_state_one.remaining_usage = base::TimeDelta::FromMinutes(0);
+  expected_state_one.remaining_usage = base::Minutes(0);
   expected_state_one.time_usage_limit_started = time_one;
   expected_state_one.next_state_change_time =
       utils::TimeFromString("Sun, 7 Jan 2018 6:00 PST");
@@ -1115,9 +1111,9 @@
 
   // Check that the device is locked because of the override.
   base::Time time_one = utils::TimeFromString("Mon, 1 Jan 2018 15:00 PST");
-  State state_one = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(60), time_one,
-                             time_one, timezone.get(), absl::nullopt);
+  State state_one =
+      GetState(policy, nullptr /* local_override */, base::Minutes(60),
+               time_one, time_one, timezone.get(), absl::nullopt);
 
   State expected_state_one;
   expected_state_one.is_locked = true;
@@ -1133,9 +1129,9 @@
 
   // Check that the device is locked because of the bedtime.
   base::Time time_two = utils::TimeFromString("Mon, 1 Jan 2018 18:00 PST");
-  State state_two = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(60), time_two,
-                             time_two, timezone.get(), state_one);
+  State state_two =
+      GetState(policy, nullptr /* local_override */, base::Minutes(60),
+               time_two, time_two, timezone.get(), state_one);
 
   State expected_state_two;
   expected_state_two.is_locked = true;
@@ -1151,9 +1147,9 @@
 
   // Check that the device is unlocked after the bedtime ends.
   base::Time time_three = utils::TimeFromString("Mon, 1 Jan 2018 20:00 PST");
-  State state_three = GetState(policy, nullptr /* local_override */,
-                               base::TimeDelta::FromMinutes(60), time_three,
-                               time_three, timezone.get(), state_two);
+  State state_three =
+      GetState(policy, nullptr /* local_override */, base::Minutes(60),
+               time_three, time_three, timezone.get(), state_two);
 
   State expected_state_three;
   expected_state_three.is_locked = false;
@@ -1180,9 +1176,9 @@
 
   // Check that the device is unlocked because of the override.
   base::Time time_one = utils::TimeFromString("Mon, 1 Jan 2018 12:00 PST");
-  State state_one = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(60), time_one,
-                             time_one, timezone.get(), absl::nullopt);
+  State state_one =
+      GetState(policy, nullptr /* local_override */, base::Minutes(60),
+               time_one, time_one, timezone.get(), absl::nullopt);
 
   State expected_state_one;
   expected_state_one.is_locked = false;
@@ -1200,9 +1196,9 @@
 
   // Check that the device is locked because of the bedtime.
   base::Time time_two = utils::TimeFromString("Mon, 1 Jan 2018 14:00 PST");
-  State state_two = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(60), time_two,
-                             time_two, timezone.get(), state_one);
+  State state_two =
+      GetState(policy, nullptr /* local_override */, base::Minutes(60),
+               time_two, time_two, timezone.get(), state_one);
 
   State expected_state_two;
   expected_state_two.is_locked = true;
@@ -1218,9 +1214,9 @@
 
   // Check that the device is unlocked after the bedtime ends.
   base::Time time_three = utils::TimeFromString("Mon, 1 Jan 2018 20:00 PST");
-  State state_three = GetState(policy, nullptr /* local_override */,
-                               base::TimeDelta::FromMinutes(60), time_three,
-                               time_three, timezone.get(), state_two);
+  State state_three =
+      GetState(policy, nullptr /* local_override */, base::Minutes(60),
+               time_three, time_three, timezone.get(), state_two);
 
   State expected_state_three;
   expected_state_three.is_locked = false;
@@ -1245,14 +1241,13 @@
                             utils::CreateTime(10, 0), last_updated);
   utils::AddOverrideWithDuration(
       &policy, TimeLimitOverride::Action::kUnlock,
-      utils::TimeFromString("Mon, 1 Jan 2018 21:45 PST"),
-      base::TimeDelta::FromMinutes(30));
+      utils::TimeFromString("Mon, 1 Jan 2018 21:45 PST"), base::Minutes(30));
 
   // Check that the device is unlocked because of the unlock override.
   base::Time time_one = utils::TimeFromString("Mon, 1 Jan 2018 22:00 PST");
-  State state_one = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(60), time_one,
-                             time_one, timezone.get(), absl::nullopt);
+  State state_one =
+      GetState(policy, nullptr /* local_override */, base::Minutes(60),
+               time_one, time_one, timezone.get(), absl::nullopt);
 
   State expected_state_one;
   expected_state_one.is_locked = false;
@@ -1266,9 +1261,9 @@
 
   // Check that the device is locked after the duration.
   base::Time time_two = utils::TimeFromString("Mon, 1 Jan 2018 22:15 PST");
-  State state_two = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(60), time_two,
-                             time_two, timezone.get(), absl::nullopt);
+  State state_two =
+      GetState(policy, nullptr /* local_override */, base::Minutes(60),
+               time_two, time_two, timezone.get(), absl::nullopt);
 
   State expected_state_two;
   expected_state_two.is_locked = true;
@@ -1295,13 +1290,12 @@
                             utils::CreateTime(5, 0), last_updated);
   utils::AddOverrideWithDuration(
       &policy, TimeLimitOverride::Action::kUnlock,
-      utils::TimeFromString("Mon, 1 Jan 2018 22:05 GMT"),
-      base::TimeDelta::FromMinutes(30));
+      utils::TimeFromString("Mon, 1 Jan 2018 22:05 GMT"), base::Minutes(30));
 
   base::Time time = utils::TimeFromString("Mon, 1 Jan 2018 22:35 GMT");
-  State state = GetState(policy, nullptr /* local_override */,
-                         base::TimeDelta::FromMinutes(60), time, time,
-                         timezone.get(), absl::nullopt);
+  State state =
+      GetState(policy, nullptr /* local_override */, base::Minutes(60), time,
+               time, timezone.get(), absl::nullopt);
 
   // Check that the device is locked until 6AM.
   State expected_state;
@@ -1333,14 +1327,13 @@
                             utils::CreateTime(7, 0), last_updated);
   utils::AddOverrideWithDuration(
       &policy, TimeLimitOverride::Action::kUnlock,
-      utils::TimeFromString("Mon, 1 Jan 2018 21:45 PST"),
-      base::TimeDelta::FromMinutes(30));
+      utils::TimeFromString("Mon, 1 Jan 2018 21:45 PST"), base::Minutes(30));
 
   // Check that the device is unlocked because of the unlock override.
   base::Time time_one = utils::TimeFromString("Mon, 1 Jan 2018 22:00 PST");
-  State state_one = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(60), time_one,
-                             time_one, timezone.get(), absl::nullopt);
+  State state_one =
+      GetState(policy, nullptr /* local_override */, base::Minutes(60),
+               time_one, time_one, timezone.get(), absl::nullopt);
 
   State expected_state_one;
   expected_state_one.is_locked = false;
@@ -1354,9 +1347,9 @@
 
   // Check that the device is locked after the duration.
   base::Time time_two = utils::TimeFromString("Mon, 1 Jan 2018 22:15 PST");
-  State state_two = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(60), time_two,
-                             time_two, timezone.get(), absl::nullopt);
+  State state_two =
+      GetState(policy, nullptr /* local_override */, base::Minutes(60),
+               time_two, time_two, timezone.get(), absl::nullopt);
 
   State expected_state_two;
   expected_state_two.is_locked = true;
@@ -1372,9 +1365,9 @@
 
   // Check that the device is locked due to a time window limit.
   base::Time time_three = utils::TimeFromString("Tue, 2 Jan 2018 6:00 PST");
-  State state_three = GetState(policy, nullptr /* local_override */,
-                               base::TimeDelta::FromMinutes(60), time_three,
-                               time_three, timezone.get(), absl::nullopt);
+  State state_three =
+      GetState(policy, nullptr /* local_override */, base::Minutes(60),
+               time_three, time_three, timezone.get(), absl::nullopt);
 
   State expected_state_three;
   expected_state_three.is_locked = true;
@@ -1397,20 +1390,20 @@
   // Setup policy.
   base::Time last_updated = utils::TimeFromString("1 Jan 2018 8:00 GMT");
   base::Value policy = utils::CreateTimeLimitPolicy(utils::CreateTime(6, 0));
-  utils::AddTimeUsageLimit(&policy, utils::kThursday,
-                           base::TimeDelta::FromHours(2), last_updated);
+  utils::AddTimeUsageLimit(&policy, utils::kThursday, base::Hours(2),
+                           last_updated);
 
   // Check that the device is unlocked because of the usage time.
   base::Time time_one = utils::TimeFromString("Thu, 4 Jan 2018 9:45 GMT");
-  State state_one = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(105), time_one,
-                             time_one, timezone.get(), absl::nullopt);
+  State state_one =
+      GetState(policy, nullptr /* local_override */, base::Minutes(105),
+               time_one, time_one, timezone.get(), absl::nullopt);
 
   State expected_state_one;
   expected_state_one.is_locked = false;
   expected_state_one.active_policy = PolicyType::kNoPolicy;
   expected_state_one.is_time_usage_limit_enabled = true;
-  expected_state_one.remaining_usage = base::TimeDelta::FromMinutes(15);
+  expected_state_one.remaining_usage = base::Minutes(15);
   expected_state_one.next_state_change_time =
       utils::TimeFromString("Thu, 4 Jan 2018 10:00 GMT");
   expected_state_one.next_state_active_policy = PolicyType::kUsageLimit;
@@ -1420,12 +1413,11 @@
   // Check that the device is unlocked because of the unlock override.
   utils::AddOverrideWithDuration(
       &policy, TimeLimitOverride::Action::kUnlock,
-      utils::TimeFromString("Thu, 4 Jan 2018 9:45 GMT"),
-      base::TimeDelta::FromMinutes(30));
+      utils::TimeFromString("Thu, 4 Jan 2018 9:45 GMT"), base::Minutes(30));
   base::Time time_two = utils::TimeFromString("Thu, 4 Jan 2018 10:00 GMT");
-  State state_two = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromHours(2), time_two, time_two,
-                             timezone.get(), state_one);
+  State state_two =
+      GetState(policy, nullptr /* local_override */, base::Hours(2), time_two,
+               time_two, timezone.get(), state_one);
 
   State expected_state_two;
   expected_state_two.is_locked = false;
@@ -1441,9 +1433,9 @@
 
   // Check that the device is locked after the duration.
   base::Time time_three = utils::TimeFromString("Thu, 4 Jan 2018 10:15 GMT");
-  State state_three = GetState(policy, nullptr /* local_override */,
-                               base::TimeDelta::FromMinutes(135), time_three,
-                               time_three, timezone.get(), state_two);
+  State state_three =
+      GetState(policy, nullptr /* local_override */, base::Minutes(135),
+               time_three, time_three, timezone.get(), state_two);
 
   State expected_state_three;
   expected_state_three.is_locked = true;
@@ -1469,20 +1461,20 @@
   // Setup policy.
   base::Time last_updated = utils::TimeFromString("1 Jan 2018 8:00 PST");
   base::Value policy = utils::CreateTimeLimitPolicy(utils::CreateTime(6, 0));
-  utils::AddTimeUsageLimit(&policy, utils::kMonday,
-                           base::TimeDelta::FromHours(2), last_updated);
+  utils::AddTimeUsageLimit(&policy, utils::kMonday, base::Hours(2),
+                           last_updated);
 
   // Check that the device is unlocked.
   base::Time time_one = utils::TimeFromString("Mon, 1 Jan 2018 9:45 PST");
-  State state_one = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(105), time_one,
-                             time_one, timezone.get(), absl::nullopt);
+  State state_one =
+      GetState(policy, nullptr /* local_override */, base::Minutes(105),
+               time_one, time_one, timezone.get(), absl::nullopt);
 
   State expected_state_one;
   expected_state_one.is_locked = false;
   expected_state_one.active_policy = PolicyType::kNoPolicy;
   expected_state_one.is_time_usage_limit_enabled = true;
-  expected_state_one.remaining_usage = base::TimeDelta::FromMinutes(15);
+  expected_state_one.remaining_usage = base::Minutes(15);
   expected_state_one.next_state_change_time =
       utils::TimeFromString("Mon, 1 Jan 2018 10:00 PST");
   expected_state_one.next_state_active_policy = PolicyType::kUsageLimit;
@@ -1492,18 +1484,17 @@
   // Check that the device is unlocked because of the unlock override.
   utils::AddOverrideWithDuration(
       &policy, TimeLimitOverride::Action::kUnlock,
-      utils::TimeFromString("Mon, 1 Jan 2018 9:45 PST"),
-      base::TimeDelta::FromMinutes(30));
+      utils::TimeFromString("Mon, 1 Jan 2018 9:45 PST"), base::Minutes(30));
   base::Time time_two = utils::TimeFromString("Mon, 1 Jan 2018 10:00 PST");
-  State state_two = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(105), time_two,
-                             time_two, timezone.get(), state_one);
+  State state_two =
+      GetState(policy, nullptr /* local_override */, base::Minutes(105),
+               time_two, time_two, timezone.get(), state_one);
 
   State expected_state_two;
   expected_state_two.is_locked = false;
   expected_state_two.active_policy = PolicyType::kOverride;
   expected_state_two.is_time_usage_limit_enabled = true;
-  expected_state_two.remaining_usage = base::TimeDelta::FromMinutes(15);
+  expected_state_two.remaining_usage = base::Minutes(15);
   expected_state_two.time_usage_limit_started = time_two;
   expected_state_two.next_state_change_time =
       utils::TimeFromString("Mon, 1 Jan 2018 10:15 PST");
@@ -1513,15 +1504,15 @@
 
   // Check that the device is locked after the duration.
   base::Time time_three = utils::TimeFromString("Mon, 1 Jan 2018 10:15 PST");
-  State state_three = GetState(policy, nullptr /* local_override */,
-                               base::TimeDelta::FromMinutes(105), time_three,
-                               time_three, timezone.get(), state_two);
+  State state_three =
+      GetState(policy, nullptr /* local_override */, base::Minutes(105),
+               time_three, time_three, timezone.get(), state_two);
 
   State expected_state_three;
   expected_state_three.is_locked = true;
   expected_state_three.active_policy = PolicyType::kOverride;
   expected_state_three.is_time_usage_limit_enabled = true;
-  expected_state_three.remaining_usage = base::TimeDelta::FromMinutes(15);
+  expected_state_three.remaining_usage = base::Minutes(15);
   expected_state_three.time_usage_limit_started = time_two;
   expected_state_three.next_state_change_time =
       utils::TimeFromString("Tue, 2 Jan 2018 6:00 PST");
@@ -1543,20 +1534,20 @@
   base::Value policy = utils::CreateTimeLimitPolicy(utils::CreateTime(6, 0));
   utils::AddTimeWindowLimit(&policy, utils::kSaturday, utils::CreateTime(10, 0),
                             utils::CreateTime(4, 0), last_updated);
-  utils::AddTimeUsageLimit(&policy, utils::kSaturday,
-                           base::TimeDelta::FromHours(2), last_updated);
+  utils::AddTimeUsageLimit(&policy, utils::kSaturday, base::Hours(2),
+                           last_updated);
 
   // Check that the device is unlocked.
   base::Time time_one = utils::TimeFromString("Sat, 6 Jan 2018 9:45 GMT");
-  State state_one = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(105), time_one,
-                             time_one, timezone.get(), absl::nullopt);
+  State state_one =
+      GetState(policy, nullptr /* local_override */, base::Minutes(105),
+               time_one, time_one, timezone.get(), absl::nullopt);
 
   State expected_state_one;
   expected_state_one.is_locked = false;
   expected_state_one.active_policy = PolicyType::kNoPolicy;
   expected_state_one.is_time_usage_limit_enabled = true;
-  expected_state_one.remaining_usage = base::TimeDelta::FromMinutes(15);
+  expected_state_one.remaining_usage = base::Minutes(15);
   expected_state_one.next_state_change_time =
       utils::TimeFromString("Sat, 6 Jan 2018 10:00 GMT");
   expected_state_one.next_state_active_policy = PolicyType::kFixedLimit;
@@ -1566,12 +1557,11 @@
   // Check that the device is unlocked because of the unlock override.
   utils::AddOverrideWithDuration(
       &policy, TimeLimitOverride::Action::kUnlock,
-      utils::TimeFromString("Sat, 6 Jan 2018 9:45 GMT"),
-      base::TimeDelta::FromMinutes(30));
+      utils::TimeFromString("Sat, 6 Jan 2018 9:45 GMT"), base::Minutes(30));
   base::Time time_two = utils::TimeFromString("Sat, 6 Jan 2018 10:00 GMT");
-  State state_two = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromHours(2), time_two, time_two,
-                             timezone.get(), state_one);
+  State state_two =
+      GetState(policy, nullptr /* local_override */, base::Hours(2), time_two,
+               time_two, timezone.get(), state_one);
 
   State expected_state_two;
   expected_state_two.is_locked = false;
@@ -1587,9 +1577,9 @@
 
   // Check that the device is locked after the duration.
   base::Time time_three = utils::TimeFromString("Sat, 6 Jan 2018 10:15 GMT");
-  State state_three = GetState(policy, nullptr /* local_override */,
-                               base::TimeDelta::FromMinutes(135), time_three,
-                               time_three, timezone.get(), state_two);
+  State state_three =
+      GetState(policy, nullptr /* local_override */, base::Minutes(135),
+               time_three, time_three, timezone.get(), state_two);
 
   State expected_state_three;
   expected_state_three.is_locked = true;
@@ -1618,20 +1608,20 @@
   utils::AddTimeWindowLimit(&policy, utils::kWednesday,
                             utils::CreateTime(22, 0), utils::CreateTime(10, 0),
                             last_updated);
-  utils::AddTimeUsageLimit(&policy, utils::kWednesday,
-                           base::TimeDelta::FromHours(2), last_updated);
+  utils::AddTimeUsageLimit(&policy, utils::kWednesday, base::Hours(2),
+                           last_updated);
 
   // Check that the device is unlocked.
   base::Time time_one = utils::TimeFromString("Wed, 3 Jan 2018 9:45 BRT");
-  State state_one = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(105), time_one,
-                             time_one, timezone.get(), absl::nullopt);
+  State state_one =
+      GetState(policy, nullptr /* local_override */, base::Minutes(105),
+               time_one, time_one, timezone.get(), absl::nullopt);
 
   State expected_state_one;
   expected_state_one.is_locked = false;
   expected_state_one.active_policy = PolicyType::kNoPolicy;
   expected_state_one.is_time_usage_limit_enabled = true;
-  expected_state_one.remaining_usage = base::TimeDelta::FromMinutes(15);
+  expected_state_one.remaining_usage = base::Minutes(15);
   expected_state_one.next_state_change_time =
       utils::TimeFromString("Wed, 3 Jan 2018 10:00 BRT");
   expected_state_one.next_state_active_policy = PolicyType::kUsageLimit;
@@ -1641,12 +1631,11 @@
   // Check that the device is unlocked because of the unlock override.
   utils::AddOverrideWithDuration(
       &policy, TimeLimitOverride::Action::kUnlock,
-      utils::TimeFromString("Wed, 3 Jan 2018 9:45 BRT"),
-      base::TimeDelta::FromMinutes(30));
+      utils::TimeFromString("Wed, 3 Jan 2018 9:45 BRT"), base::Minutes(30));
   base::Time time_two = utils::TimeFromString("Wed, 3 Jan 2018 10:00 BRT");
-  State state_two = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromHours(2), time_two, time_two,
-                             timezone.get(), state_one);
+  State state_two =
+      GetState(policy, nullptr /* local_override */, base::Hours(2), time_two,
+               time_two, timezone.get(), state_one);
 
   State expected_state_two;
   expected_state_two.is_locked = false;
@@ -1662,9 +1651,9 @@
 
   // Check that the device is locked after the duration.
   base::Time time_three = utils::TimeFromString("Wed, 3 Jan 2018 10:15 BRT");
-  State state_three = GetState(policy, nullptr /* local_override */,
-                               base::TimeDelta::FromMinutes(135), time_three,
-                               time_three, timezone.get(), state_two);
+  State state_three =
+      GetState(policy, nullptr /* local_override */, base::Minutes(135),
+               time_three, time_three, timezone.get(), state_two);
 
   State expected_state_three;
   expected_state_three.is_locked = true;
@@ -1694,14 +1683,13 @@
                             utils::CreateTime(10, 0), last_updated);
   utils::AddOverrideWithDuration(
       &policy, TimeLimitOverride::Action::kUnlock,
-      utils::TimeFromString("Tue, 2 Jan 2018 22:30 BRT"),
-      base::TimeDelta::FromMinutes(30));
+      utils::TimeFromString("Tue, 2 Jan 2018 22:30 BRT"), base::Minutes(30));
 
   // Check that the device is unlocked because of the unlock override.
   base::Time time_one = utils::TimeFromString("Tue, 2 Jan 2018 22:45 BRT");
-  State state_one = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromHours(2), time_one, time_one,
-                             timezone.get(), absl::nullopt);
+  State state_one =
+      GetState(policy, nullptr /* local_override */, base::Hours(2), time_one,
+               time_one, timezone.get(), absl::nullopt);
 
   State expected_state_one;
   expected_state_one.is_locked = false;
@@ -1715,9 +1703,9 @@
 
   // Check that the device is locked after the duration.
   base::Time time_two = utils::TimeFromString("Tue, 2 Jan 2018 23:00 BRT");
-  State state_two = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromHours(2), time_two, time_two,
-                             timezone.get(), absl::nullopt);
+  State state_two =
+      GetState(policy, nullptr /* local_override */, base::Hours(2), time_two,
+               time_two, timezone.get(), absl::nullopt);
 
   State expected_state_two;
   expected_state_two.is_locked = true;
@@ -1741,14 +1729,14 @@
   // Setup policy.
   base::Time last_updated = utils::TimeFromString("1 Jan 2018 8:00 PST");
   base::Value policy = utils::CreateTimeLimitPolicy(utils::CreateTime(6, 0));
-  utils::AddTimeUsageLimit(&policy, utils::kMonday,
-                           base::TimeDelta::FromHours(2), last_updated);
+  utils::AddTimeUsageLimit(&policy, utils::kMonday, base::Hours(2),
+                           last_updated);
 
   // Check that the device is unlocked because of the usage time.
   base::Time time_one = utils::TimeFromString("Mon, 1 Jan 2018 10:00 PST");
-  State state_one = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromHours(2), time_one, time_one,
-                             timezone.get(), absl::nullopt);
+  State state_one =
+      GetState(policy, nullptr /* local_override */, base::Hours(2), time_one,
+               time_one, timezone.get(), absl::nullopt);
 
   State expected_state_one;
   expected_state_one.is_locked = true;
@@ -1767,12 +1755,11 @@
   // Check that the device is unlocked because of the unlock override.
   utils::AddOverrideWithDuration(
       &policy, TimeLimitOverride::Action::kUnlock,
-      utils::TimeFromString("Mon, 1 Jan 2018 10:30 PST"),
-      base::TimeDelta::FromHours(2));
+      utils::TimeFromString("Mon, 1 Jan 2018 10:30 PST"), base::Hours(2));
   base::Time time_two = utils::TimeFromString("Mon, 1 Jan 2018 11:30 PST");
-  State state_two = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromHours(3), time_two, time_two,
-                             timezone.get(), state_one);
+  State state_two =
+      GetState(policy, nullptr /* local_override */, base::Hours(3), time_two,
+               time_two, timezone.get(), state_one);
 
   State expected_state_two;
   expected_state_two.is_locked = false;
@@ -1788,9 +1775,9 @@
 
   // Check that the device is locked after the duration.
   base::Time time_three = utils::TimeFromString("Mon, 1 Jan 2018 12:30 PST");
-  State state_three = GetState(policy, nullptr /* local_override */,
-                               base::TimeDelta::FromHours(4), time_three,
-                               time_three, timezone.get(), state_two);
+  State state_three =
+      GetState(policy, nullptr /* local_override */, base::Hours(4), time_three,
+               time_three, timezone.get(), state_two);
 
   State expected_state_three;
   expected_state_three.is_locked = true;
@@ -1814,20 +1801,20 @@
   // Setup policy.
   base::Time last_updated = utils::TimeFromString("1 Jan 2018 8:00 BRT");
   base::Value policy = utils::CreateTimeLimitPolicy(utils::CreateTime(6, 0));
-  utils::AddTimeUsageLimit(&policy, utils::kSaturday,
-                           base::TimeDelta::FromHours(2), last_updated);
+  utils::AddTimeUsageLimit(&policy, utils::kSaturday, base::Hours(2),
+                           last_updated);
 
   /// Check that the device is unlocked because of the usage time.
   base::Time time_one = utils::TimeFromString("Sat, 6 Jan 2018 9:45 BRT");
-  State state_one = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(105), time_one,
-                             time_one, timezone.get(), absl::nullopt);
+  State state_one =
+      GetState(policy, nullptr /* local_override */, base::Minutes(105),
+               time_one, time_one, timezone.get(), absl::nullopt);
 
   State expected_state_one;
   expected_state_one.is_locked = false;
   expected_state_one.active_policy = PolicyType::kNoPolicy;
   expected_state_one.is_time_usage_limit_enabled = true;
-  expected_state_one.remaining_usage = base::TimeDelta::FromMinutes(15);
+  expected_state_one.remaining_usage = base::Minutes(15);
   expected_state_one.next_state_change_time =
       utils::TimeFromString("Sat, 6 Jan 2018 10:00 BRT");
   expected_state_one.next_state_active_policy = PolicyType::kUsageLimit;
@@ -1837,12 +1824,11 @@
   // Check that the device is unlocked because of the unlock override.
   utils::AddOverrideWithDuration(
       &policy, TimeLimitOverride::Action::kUnlock,
-      utils::TimeFromString("Sat, 6 Jan 2018 9:45 BRT"),
-      base::TimeDelta::FromMinutes(30));
+      utils::TimeFromString("Sat, 6 Jan 2018 9:45 BRT"), base::Minutes(30));
   base::Time time_two = utils::TimeFromString("Sat, 6 Jan 2018 10:00 BRT");
-  State state_two = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromHours(2), time_two, time_two,
-                             timezone.get(), state_one);
+  State state_two =
+      GetState(policy, nullptr /* local_override */, base::Hours(2), time_two,
+               time_two, timezone.get(), state_one);
 
   State expected_state_two;
   expected_state_two.is_locked = false;
@@ -1859,12 +1845,11 @@
   // Check that the device is unlocked because of the new unlock override.
   utils::AddOverrideWithDuration(
       &policy, TimeLimitOverride::Action::kUnlock,
-      utils::TimeFromString("Sat, 6 Jan 2018 10:15 BRT"),
-      base::TimeDelta::FromMinutes(30));
+      utils::TimeFromString("Sat, 6 Jan 2018 10:15 BRT"), base::Minutes(30));
   base::Time time_three = utils::TimeFromString("Sat, 6 Jan 2018 10:30 BRT");
-  State state_three = GetState(policy, nullptr /* local_override */,
-                               base::TimeDelta::FromMinutes(150), time_three,
-                               time_three, timezone.get(), state_two);
+  State state_three =
+      GetState(policy, nullptr /* local_override */, base::Minutes(150),
+               time_three, time_three, timezone.get(), state_two);
 
   State expected_state_three;
   expected_state_three.is_locked = false;
@@ -1893,14 +1878,13 @@
                             last_updated);
   utils::AddOverrideWithDuration(
       &policy, TimeLimitOverride::Action::kUnlock,
-      utils::TimeFromString("Wed, 3 Jan 2018 21:45 GMT"),
-      base::TimeDelta::FromMinutes(30));
+      utils::TimeFromString("Wed, 3 Jan 2018 21:45 GMT"), base::Minutes(30));
 
   // Check that the device is unlocked because of the override.
   base::Time time_one = utils::TimeFromString("Wed, 3 Jan 2018 22:00 GMT");
-  State state_one = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(60), time_one,
-                             time_one, timezone.get(), absl::nullopt);
+  State state_one =
+      GetState(policy, nullptr /* local_override */, base::Minutes(60),
+               time_one, time_one, timezone.get(), absl::nullopt);
 
   State expected_state_one;
   expected_state_one.is_locked = false;
@@ -1917,9 +1901,9 @@
   utils::AddTimeWindowLimit(&policy, utils::kWednesday,
                             utils::CreateTime(23, 0), utils::CreateTime(10, 0),
                             time_two);
-  State state_two = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(60), time_two,
-                             time_two, timezone.get(), absl::nullopt);
+  State state_two =
+      GetState(policy, nullptr /* local_override */, base::Minutes(60),
+               time_two, time_two, timezone.get(), absl::nullopt);
 
   State expected_state_two;
   expected_state_two.is_locked = false;
@@ -1941,20 +1925,20 @@
   // Setup policy.
   base::Time last_updated = utils::TimeFromString("1 Jan 2018 8:00 PST");
   base::Value policy = utils::CreateTimeLimitPolicy(utils::CreateTime(6, 0));
-  utils::AddTimeUsageLimit(&policy, utils::kSunday,
-                           base::TimeDelta::FromHours(2), last_updated);
+  utils::AddTimeUsageLimit(&policy, utils::kSunday, base::Hours(2),
+                           last_updated);
 
   // Check that the device is unlocked because of the usage time.
   base::Time time_one = utils::TimeFromString("Sun, 7 Jan 2018 9:45 PST");
-  State state_one = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(105), time_one,
-                             time_one, timezone.get(), absl::nullopt);
+  State state_one =
+      GetState(policy, nullptr /* local_override */, base::Minutes(105),
+               time_one, time_one, timezone.get(), absl::nullopt);
 
   State expected_state_one;
   expected_state_one.is_locked = false;
   expected_state_one.active_policy = PolicyType::kNoPolicy;
   expected_state_one.is_time_usage_limit_enabled = true;
-  expected_state_one.remaining_usage = base::TimeDelta::FromMinutes(15);
+  expected_state_one.remaining_usage = base::Minutes(15);
   expected_state_one.next_state_change_time =
       utils::TimeFromString("Sun, 7 Jan 2018 10:00 PST");
   expected_state_one.next_state_active_policy = PolicyType::kUsageLimit;
@@ -1964,12 +1948,11 @@
   // Check that the device is unlocked because of the unlock override.
   utils::AddOverrideWithDuration(
       &policy, TimeLimitOverride::Action::kUnlock,
-      utils::TimeFromString("Sun, 7 Jan 2018 9:45 PST"),
-      base::TimeDelta::FromMinutes(30));
+      utils::TimeFromString("Sun, 7 Jan 2018 9:45 PST"), base::Minutes(30));
   base::Time time_two = utils::TimeFromString("Sun, 7 Jan 2018 10:00 PST");
-  State state_two = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromHours(2), time_two, time_two,
-                             timezone.get(), state_one);
+  State state_two =
+      GetState(policy, nullptr /* local_override */, base::Hours(2), time_two,
+               time_two, timezone.get(), state_one);
 
   State expected_state_two;
   expected_state_two.is_locked = false;
@@ -1985,17 +1968,16 @@
 
   // Check that the override is cancelled when we update the usage limit.
   base::Time time_three = utils::TimeFromString("Sun, 7 Jan 2018 10:15 PST");
-  utils::AddTimeUsageLimit(&policy, utils::kSunday,
-                           base::TimeDelta::FromHours(3), time_three);
-  State state_three = GetState(policy, nullptr /* local_override */,
-                               base::TimeDelta::FromHours(2), time_three,
-                               time_three, timezone.get(), state_two);
+  utils::AddTimeUsageLimit(&policy, utils::kSunday, base::Hours(3), time_three);
+  State state_three =
+      GetState(policy, nullptr /* local_override */, base::Hours(2), time_three,
+               time_three, timezone.get(), state_two);
 
   State expected_state_three;
   expected_state_three.is_locked = false;
   expected_state_three.active_policy = PolicyType::kNoPolicy;
   expected_state_three.is_time_usage_limit_enabled = true;
-  expected_state_three.remaining_usage = base::TimeDelta::FromHours(1);
+  expected_state_three.remaining_usage = base::Hours(1);
   expected_state_three.next_state_change_time =
       utils::TimeFromString("Sun, 7 Jan 2018 11:15 PST");
   expected_state_three.next_state_active_policy = PolicyType::kUsageLimit;
@@ -2016,14 +1998,13 @@
                             utils::CreateTime(10, 0), last_updated);
   utils::AddOverrideWithDuration(
       &policy, TimeLimitOverride::Action::kUnlock,
-      utils::TimeFromString("Tue, 2 Jan 2018 0:00 PST"),
-      base::TimeDelta::FromMinutes(30));
+      utils::TimeFromString("Tue, 2 Jan 2018 0:00 PST"), base::Minutes(30));
 
   // Check that the device is unlocked because of the override.
   base::Time time_one = utils::TimeFromString("Tue, 2 Jan 2018 0:15 PST");
-  State state_one = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(60), time_one,
-                             time_one, timezone.get(), absl::nullopt);
+  State state_one =
+      GetState(policy, nullptr /* local_override */, base::Minutes(60),
+               time_one, time_one, timezone.get(), absl::nullopt);
 
   State expected_state_one;
   expected_state_one.is_locked = false;
@@ -2039,9 +2020,9 @@
   base::Time time_two = utils::TimeFromString("Tue, 2 Jan 2018 0:15 PST");
   utils::AddTimeWindowLimit(&policy, utils::kMonday, utils::CreateTime(23, 0),
                             utils::CreateTime(10, 0), time_two);
-  State state_two = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(60), time_two,
-                             time_two, timezone.get(), absl::nullopt);
+  State state_two =
+      GetState(policy, nullptr /* local_override */, base::Minutes(60),
+               time_two, time_two, timezone.get(), absl::nullopt);
 
   State expected_state_two;
   expected_state_two.is_locked = true;
@@ -2065,20 +2046,20 @@
   // Setup policy.
   base::Time last_updated = utils::TimeFromString("1 Jan 2018 8:00 PST");
   base::Value policy = utils::CreateTimeLimitPolicy(utils::CreateTime(6, 0));
-  utils::AddTimeUsageLimit(&policy, utils::kFriday,
-                           base::TimeDelta::FromHours(2), last_updated);
+  utils::AddTimeUsageLimit(&policy, utils::kFriday, base::Hours(2),
+                           last_updated);
 
   // Check that the device is unlocked because of the usage time.
   base::Time time_one = utils::TimeFromString("Fri, 5 Jan 2018 9:45 PST");
-  State state_one = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(105), time_one,
-                             time_one, timezone.get(), absl::nullopt);
+  State state_one =
+      GetState(policy, nullptr /* local_override */, base::Minutes(105),
+               time_one, time_one, timezone.get(), absl::nullopt);
 
   State expected_state_one;
   expected_state_one.is_locked = false;
   expected_state_one.active_policy = PolicyType::kNoPolicy;
   expected_state_one.is_time_usage_limit_enabled = true;
-  expected_state_one.remaining_usage = base::TimeDelta::FromMinutes(15);
+  expected_state_one.remaining_usage = base::Minutes(15);
   expected_state_one.next_state_change_time =
       utils::TimeFromString("Fri, 5 Jan 2018 10:00 PST");
   expected_state_one.next_state_active_policy = PolicyType::kUsageLimit;
@@ -2088,12 +2069,11 @@
   // Check that the device is unlocked because of the unlock override.
   utils::AddOverrideWithDuration(
       &policy, TimeLimitOverride::Action::kUnlock,
-      utils::TimeFromString("Sat, 6 Jan 2018 0:00 PST"),
-      base::TimeDelta::FromMinutes(30));
+      utils::TimeFromString("Sat, 6 Jan 2018 0:00 PST"), base::Minutes(30));
   base::Time time_two = utils::TimeFromString("Sat, 6 Jan 2018 0:15 PST");
-  State state_two = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromHours(2), time_two, time_two,
-                             timezone.get(), state_one);
+  State state_two =
+      GetState(policy, nullptr /* local_override */, base::Hours(2), time_two,
+               time_two, timezone.get(), state_one);
 
   State expected_state_two;
   expected_state_two.is_locked = false;
@@ -2109,17 +2089,16 @@
 
   // Check that the override is cancelled when we update the usage limit.
   base::Time time_three = utils::TimeFromString("Sat, 6 Jan 2018 0:30 PST");
-  utils::AddTimeUsageLimit(&policy, utils::kFriday,
-                           base::TimeDelta::FromHours(3), time_three);
-  State state_three = GetState(policy, nullptr /* local_override */,
-                               base::TimeDelta::FromHours(2), time_three,
-                               time_three, timezone.get(), state_two);
+  utils::AddTimeUsageLimit(&policy, utils::kFriday, base::Hours(3), time_three);
+  State state_three =
+      GetState(policy, nullptr /* local_override */, base::Hours(2), time_three,
+               time_three, timezone.get(), state_two);
 
   State expected_state_three;
   expected_state_three.is_locked = false;
   expected_state_three.active_policy = PolicyType::kNoPolicy;
   expected_state_three.is_time_usage_limit_enabled = true;
-  expected_state_three.remaining_usage = base::TimeDelta::FromHours(1);
+  expected_state_three.remaining_usage = base::Hours(1);
   expected_state_three.next_state_change_time =
       utils::TimeFromString("Sat, 6 Jan 2018 1:30 PST");
   expected_state_three.next_state_active_policy = PolicyType::kUsageLimit;
@@ -2141,14 +2120,13 @@
                             last_updated);
   utils::AddOverrideWithDuration(
       &policy, TimeLimitOverride::Action::kUnlock,
-      utils::TimeFromString("Wed, 3 Jan 2018 22:00 GMT"),
-      base::TimeDelta::FromMinutes(30));
+      utils::TimeFromString("Wed, 3 Jan 2018 22:00 GMT"), base::Minutes(30));
 
   // Check that the device is unlocked because of the override.
   base::Time time_one = utils::TimeFromString("Wed, 3 Jan 2018 22:15 GMT");
-  State state_one = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(60), time_one,
-                             time_one, timezone.get(), absl::nullopt);
+  State state_one =
+      GetState(policy, nullptr /* local_override */, base::Minutes(60),
+               time_one, time_one, timezone.get(), absl::nullopt);
 
   State expected_state_one;
   expected_state_one.is_locked = false;
@@ -2162,9 +2140,9 @@
 
   // Check that the device is locked when duration is finished.
   base::Time time_two = utils::TimeFromString("Wed, 3 Jan 2018 22:30 GMT");
-  State state_two = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromMinutes(60), time_two,
-                             time_two, timezone.get(), absl::nullopt);
+  State state_two =
+      GetState(policy, nullptr /* local_override */, base::Minutes(60),
+               time_two, time_two, timezone.get(), absl::nullopt);
 
   State expected_state_two;
   expected_state_two.is_locked = true;
@@ -2183,9 +2161,9 @@
   utils::AddTimeWindowLimit(&policy, utils::kWednesday,
                             utils::CreateTime(23, 30), utils::CreateTime(7, 0),
                             time_three);
-  State state_three = GetState(policy, nullptr /* local_override */,
-                               base::TimeDelta::FromHours(2), time_three,
-                               time_three, timezone.get(), absl::nullopt);
+  State state_three =
+      GetState(policy, nullptr /* local_override */, base::Hours(2), time_three,
+               time_three, timezone.get(), absl::nullopt);
 
   State expected_state_three;
   expected_state_three.is_locked = false;
@@ -2207,14 +2185,14 @@
   // Setup policy.
   base::Time last_updated = utils::TimeFromString("1 Jan 2018 8:00 BRT");
   base::Value policy = utils::CreateTimeLimitPolicy(utils::CreateTime(6, 0));
-  utils::AddTimeUsageLimit(&policy, utils::kThursday,
-                           base::TimeDelta::FromHours(2), last_updated);
+  utils::AddTimeUsageLimit(&policy, utils::kThursday, base::Hours(2),
+                           last_updated);
 
   // Check that the device is locked because of the usage time.
   base::Time time_one = utils::TimeFromString("Thu, 4 Jan 2018 10:00 BRT");
-  State state_one = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromHours(2), time_one, time_one,
-                             timezone.get(), absl::nullopt);
+  State state_one =
+      GetState(policy, nullptr /* local_override */, base::Hours(2), time_one,
+               time_one, timezone.get(), absl::nullopt);
 
   State expected_state_one;
   expected_state_one.is_locked = true;
@@ -2233,12 +2211,11 @@
   // Check that the device is unlocked because of the unlock override.
   utils::AddOverrideWithDuration(
       &policy, TimeLimitOverride::Action::kUnlock,
-      utils::TimeFromString("Thu, 4 Jan 2018 11:00 BRT"),
-      base::TimeDelta::FromHours(1));
+      utils::TimeFromString("Thu, 4 Jan 2018 11:00 BRT"), base::Hours(1));
   base::Time time_two = utils::TimeFromString("Thu, 4 Jan 2018 11:30 BRT");
-  State state_two = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromHours(2), time_two, time_two,
-                             timezone.get(), state_one);
+  State state_two =
+      GetState(policy, nullptr /* local_override */, base::Hours(2), time_two,
+               time_two, timezone.get(), state_one);
 
   State expected_state_two;
   expected_state_two.is_locked = false;
@@ -2254,11 +2231,11 @@
 
   // Check that the override is cancelled when we update the usage limit.
   base::Time time_three = utils::TimeFromString("Thu, 4 Jan 2018 12:00 BRT");
-  utils::AddTimeUsageLimit(&policy, utils::kThursday,
-                           base::TimeDelta::FromHours(1), time_three);
-  State state_three = GetState(policy, nullptr /* local_override */,
-                               base::TimeDelta::FromHours(2), time_three,
-                               time_three, timezone.get(), state_two);
+  utils::AddTimeUsageLimit(&policy, utils::kThursday, base::Hours(1),
+                           time_three);
+  State state_three =
+      GetState(policy, nullptr /* local_override */, base::Hours(2), time_three,
+               time_three, timezone.get(), state_two);
 
   State expected_state_three;
   expected_state_three.is_locked = true;
@@ -2283,20 +2260,20 @@
   // Setup policy.
   base::Time last_updated = utils::TimeFromString("1 Jan 2018 8:00 BRT");
   base::Value policy = utils::CreateTimeLimitPolicy(utils::CreateTime(6, 0));
-  utils::AddTimeUsageLimit(&policy, utils::kWednesday,
-                           base::TimeDelta::FromHours(2), last_updated);
+  utils::AddTimeUsageLimit(&policy, utils::kWednesday, base::Hours(2),
+                           last_updated);
 
   // Check that the device is unlocked because of the override.
   base::Time time_one = utils::TimeFromString("Wed, 3 Jan 2018 14:00 BRT");
-  State state_one = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromHours(2), time_one, time_one,
-                             timezone.get(), absl::nullopt);
+  State state_one =
+      GetState(policy, nullptr /* local_override */, base::Hours(2), time_one,
+               time_one, timezone.get(), absl::nullopt);
 
   State expected_state_one;
   expected_state_one.is_locked = true;
   expected_state_one.active_policy = PolicyType::kUsageLimit;
   expected_state_one.is_time_usage_limit_enabled = true;
-  expected_state_one.remaining_usage = base::TimeDelta::FromMinutes(0);
+  expected_state_one.remaining_usage = base::Minutes(0);
   expected_state_one.time_usage_limit_started = time_one;
   expected_state_one.next_state_change_time =
       utils::TimeFromString("Thu, 4 Jan 2018 6:00 BRT");
@@ -2312,15 +2289,15 @@
 
   // Check that the device is unlocked.
   base::Time time_two = utils::TimeFromString("Wed, 3 Jan 2018 15:00 BRT");
-  State state_two = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromHours(2), time_two, time_two,
-                             timezone.get(), state_one);
+  State state_two =
+      GetState(policy, nullptr /* local_override */, base::Hours(2), time_two,
+               time_two, timezone.get(), state_one);
 
   State expected_state_two;
   expected_state_two.is_locked = false;
   expected_state_two.active_policy = PolicyType::kOverride;
   expected_state_two.is_time_usage_limit_enabled = true;
-  expected_state_two.remaining_usage = base::TimeDelta::FromMinutes(0);
+  expected_state_two.remaining_usage = base::Minutes(0);
   expected_state_two.time_usage_limit_started = time_one;
   expected_state_two.next_state_change_time = base::Time();
   expected_state_two.next_state_active_policy = PolicyType::kNoPolicy;
@@ -2333,15 +2310,15 @@
 
   // Check that the device is locked because of the usage limit.
   base::Time time_three = utils::TimeFromString("Wed, 3 Jan 2018 16:00 BRT");
-  State state_three = GetState(policy, nullptr /* local_override */,
-                               base::TimeDelta::FromHours(2), time_three,
-                               time_three, timezone.get(), state_two);
+  State state_three =
+      GetState(policy, nullptr /* local_override */, base::Hours(2), time_three,
+               time_three, timezone.get(), state_two);
 
   State expected_state_three;
   expected_state_three.is_locked = true;
   expected_state_three.active_policy = PolicyType::kUsageLimit;
   expected_state_three.is_time_usage_limit_enabled = true;
-  expected_state_three.remaining_usage = base::TimeDelta::FromMinutes(0);
+  expected_state_three.remaining_usage = base::Minutes(0);
   expected_state_three.time_usage_limit_started = time_one;
   expected_state_three.next_state_change_time =
       utils::TimeFromString("Thu, 4 Jan 2018 6:00 BRT");
@@ -2352,21 +2329,20 @@
   AssertEqState(expected_state_three, state_three);
 
   // Update usage time limit.
-  utils::AddTimeUsageLimit(&policy, utils::kWednesday,
-                           base::TimeDelta::FromHours(3),
+  utils::AddTimeUsageLimit(&policy, utils::kWednesday, base::Hours(3),
                            utils::TimeFromString("3 Jan 2018 17:00 BRT"));
 
   // Check that the device is locked because of the bedtime.
   base::Time time_four = utils::TimeFromString("Wed, 3 Jan 2018 17:00 BRT");
-  State state_four = GetState(policy, nullptr /* local_override */,
-                              base::TimeDelta::FromHours(2), time_four,
-                              time_four, timezone.get(), state_two);
+  State state_four =
+      GetState(policy, nullptr /* local_override */, base::Hours(2), time_four,
+               time_four, timezone.get(), state_two);
 
   State expected_state_four;
   expected_state_four.is_locked = false;
   expected_state_four.active_policy = PolicyType::kNoPolicy;
   expected_state_four.is_time_usage_limit_enabled = true;
-  expected_state_four.remaining_usage = base::TimeDelta::FromMinutes(60);
+  expected_state_four.remaining_usage = base::Minutes(60);
   expected_state_four.time_usage_limit_started = base::Time();
   expected_state_four.next_state_change_time =
       utils::TimeFromString("Wed, 3 Jan 2018 18:00 BRT");
@@ -2383,24 +2359,24 @@
   // Setup policy.
   base::Time last_updated = utils::TimeFromString("1 Jan 2018 8:00 BRT");
   base::Value policy = utils::CreateTimeLimitPolicy(utils::CreateTime(6, 0));
-  utils::AddTimeUsageLimit(&policy, utils::kWednesday,
-                           base::TimeDelta::FromHours(0), last_updated);
-  utils::AddTimeUsageLimit(&policy, utils::kThursday,
-                           base::TimeDelta::FromHours(0), last_updated);
-  utils::AddTimeUsageLimit(&policy, utils::kFriday,
-                           base::TimeDelta::FromHours(0), last_updated);
+  utils::AddTimeUsageLimit(&policy, utils::kWednesday, base::Hours(0),
+                           last_updated);
+  utils::AddTimeUsageLimit(&policy, utils::kThursday, base::Hours(0),
+                           last_updated);
+  utils::AddTimeUsageLimit(&policy, utils::kFriday, base::Hours(0),
+                           last_updated);
 
   // Check that the device is locked.
   base::Time time_one = utils::TimeFromString("Wed, 3 Jan 2018 7:00 BRT");
-  State state_one = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromHours(0), time_one, time_one,
-                             timezone.get(), absl::nullopt);
+  State state_one =
+      GetState(policy, nullptr /* local_override */, base::Hours(0), time_one,
+               time_one, timezone.get(), absl::nullopt);
 
   State expected_state_one;
   expected_state_one.is_locked = true;
   expected_state_one.active_policy = PolicyType::kUsageLimit;
   expected_state_one.is_time_usage_limit_enabled = true;
-  expected_state_one.remaining_usage = base::TimeDelta::FromMinutes(0);
+  expected_state_one.remaining_usage = base::Minutes(0);
   expected_state_one.time_usage_limit_started = time_one;
   expected_state_one.next_state_change_time =
       utils::TimeFromString("Thu, 4 Jan 2018 6:00 BRT");
@@ -2415,15 +2391,15 @@
 
   // Check that the device is unlocked because of the override.
   base::Time time_two = utils::TimeFromString("Wed, 3 Jan 2018 8:00 BRT");
-  State state_two = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromHours(0), time_two, time_two,
-                             timezone.get(), state_one);
+  State state_two =
+      GetState(policy, nullptr /* local_override */, base::Hours(0), time_two,
+               time_two, timezone.get(), state_one);
 
   State expected_state_two;
   expected_state_two.is_locked = false;
   expected_state_two.active_policy = PolicyType::kOverride;
   expected_state_two.is_time_usage_limit_enabled = true;
-  expected_state_two.remaining_usage = base::TimeDelta::FromMinutes(0);
+  expected_state_two.remaining_usage = base::Minutes(0);
   expected_state_two.time_usage_limit_started = time_one;
   expected_state_two.next_state_change_time =
       utils::TimeFromString("Thu, 4 Jan 2018 6:00 BRT");
@@ -2433,15 +2409,15 @@
 
   // Check that the device is locked.
   base::Time time_three = utils::TimeFromString("Thu, 4 Jan 2018 8:00 BRT");
-  State state_three = GetState(policy, nullptr /* local_override */,
-                               base::TimeDelta::FromHours(0), time_three,
-                               time_three, timezone.get(), state_two);
+  State state_three =
+      GetState(policy, nullptr /* local_override */, base::Hours(0), time_three,
+               time_three, timezone.get(), state_two);
 
   State expected_state_three;
   expected_state_three.is_locked = true;
   expected_state_three.active_policy = PolicyType::kUsageLimit;
   expected_state_three.is_time_usage_limit_enabled = true;
-  expected_state_three.remaining_usage = base::TimeDelta::FromMinutes(0);
+  expected_state_three.remaining_usage = base::Minutes(0);
   expected_state_three.time_usage_limit_started = time_one;
   expected_state_three.next_state_change_time =
       utils::TimeFromString("Fri, 5 Jan 2018 6:00 BRT");
@@ -2453,15 +2429,15 @@
 
   // Check that the device is locked.
   base::Time time_four = utils::TimeFromString("Fri, 5 Jan 2018 8:00 BRT");
-  State state_four = GetState(policy, nullptr /* local_override */,
-                              base::TimeDelta::FromHours(0), time_four,
-                              time_four, timezone.get(), state_three);
+  State state_four =
+      GetState(policy, nullptr /* local_override */, base::Hours(0), time_four,
+               time_four, timezone.get(), state_three);
 
   State expected_state_four;
   expected_state_four.is_locked = true;
   expected_state_four.active_policy = PolicyType::kUsageLimit;
   expected_state_four.is_time_usage_limit_enabled = true;
-  expected_state_four.remaining_usage = base::TimeDelta::FromMinutes(0);
+  expected_state_four.remaining_usage = base::Minutes(0);
   expected_state_four.time_usage_limit_started = time_one;
   expected_state_four.next_state_change_time =
       utils::TimeFromString("Sat, 6 Jan 2018 6:00 BRT");
@@ -2473,9 +2449,9 @@
 
   // Check that the device is unlocked.
   base::Time time_five = utils::TimeFromString("Sat, 6 Jan 2018 6:00 BRT");
-  State state_five = GetState(policy, nullptr /* local_override */,
-                              base::TimeDelta::FromHours(0), time_five,
-                              time_five, timezone.get(), state_four);
+  State state_five =
+      GetState(policy, nullptr /* local_override */, base::Hours(0), time_five,
+               time_five, timezone.get(), state_four);
 
   State expected_state_five;
   expected_state_five.is_locked = false;
@@ -2495,22 +2471,22 @@
   // Setup policy.
   base::Time last_updated = utils::TimeFromString("1 Jan 2018 8:00 BRT");
   base::Value policy = utils::CreateTimeLimitPolicy(utils::CreateTime(6, 0));
-  utils::AddTimeUsageLimit(&policy, utils::kWednesday,
-                           base::TimeDelta::FromHours(0), last_updated);
-  utils::AddTimeUsageLimit(&policy, utils::kThursday,
-                           base::TimeDelta::FromHours(0), last_updated);
+  utils::AddTimeUsageLimit(&policy, utils::kWednesday, base::Hours(0),
+                           last_updated);
+  utils::AddTimeUsageLimit(&policy, utils::kThursday, base::Hours(0),
+                           last_updated);
 
   // Check that the device is locked.
   base::Time time_one = utils::TimeFromString("Wed, 3 Jan 2018 7:00 BRT");
-  State state_one = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromHours(0), time_one, time_one,
-                             timezone.get(), absl::nullopt);
+  State state_one =
+      GetState(policy, nullptr /* local_override */, base::Hours(0), time_one,
+               time_one, timezone.get(), absl::nullopt);
 
   State expected_state_one;
   expected_state_one.is_locked = true;
   expected_state_one.active_policy = PolicyType::kUsageLimit;
   expected_state_one.is_time_usage_limit_enabled = true;
-  expected_state_one.remaining_usage = base::TimeDelta::FromMinutes(0);
+  expected_state_one.remaining_usage = base::Minutes(0);
   expected_state_one.time_usage_limit_started = time_one;
   expected_state_one.next_state_change_time =
       utils::TimeFromString("Thu, 4 Jan 2018 6:00 BRT");
@@ -2522,15 +2498,15 @@
 
   // Check that the device is locked.
   base::Time time_two = utils::TimeFromString("Thu, 4 Jan 2018 6:00 BRT");
-  State state_two = GetState(policy, nullptr /* local_override */,
-                             base::TimeDelta::FromHours(0), time_two, time_two,
-                             timezone.get(), state_one);
+  State state_two =
+      GetState(policy, nullptr /* local_override */, base::Hours(0), time_two,
+               time_two, timezone.get(), state_one);
 
   State expected_state_two;
   expected_state_two.is_locked = true;
   expected_state_two.active_policy = PolicyType::kUsageLimit;
   expected_state_two.is_time_usage_limit_enabled = true;
-  expected_state_two.remaining_usage = base::TimeDelta::FromMinutes(0);
+  expected_state_two.remaining_usage = base::Minutes(0);
   expected_state_two.time_usage_limit_started = time_one;
   expected_state_two.next_state_change_time =
       utils::TimeFromString("Fri, 5 Jan 2018 6:00 BRT");
@@ -2545,15 +2521,15 @@
 
   // Check that the device is unlocked.
   base::Time time_three = utils::TimeFromString("Thu, 4 Jan 2018 8:00 BRT");
-  State state_three = GetState(policy, nullptr /* local_override */,
-                               base::TimeDelta::FromHours(0), time_three,
-                               time_three, timezone.get(), state_two);
+  State state_three =
+      GetState(policy, nullptr /* local_override */, base::Hours(0), time_three,
+               time_three, timezone.get(), state_two);
 
   State expected_state_three;
   expected_state_three.is_locked = false;
   expected_state_three.active_policy = PolicyType::kOverride;
   expected_state_three.is_time_usage_limit_enabled = true;
-  expected_state_three.remaining_usage = base::TimeDelta::FromMinutes(0);
+  expected_state_three.remaining_usage = base::Minutes(0);
   expected_state_three.time_usage_limit_started = time_one;
   expected_state_three.next_state_change_time =
       utils::TimeFromString("Wed, 10 Jan 2018 6:00 BRT");
@@ -2575,7 +2551,7 @@
   ASSERT_TRUE(
       base::Time::FromString("Mon, 1 Jan 2018 19:00 GMT", &current_time));
 
-  const base::Time last_updated = current_time - base::TimeDelta::FromHours(4);
+  const base::Time last_updated = current_time - base::Hours(4);
   auto policy = base::Value(base::Value::Type::DICTIONARY);
   utils::AddTimeWindowLimit(&policy, utils::kMonday,
                             utils::CreateTime(kWindowStart, 0),
@@ -2588,14 +2564,12 @@
   base::Value inactive_local_override =
       usage_time_limit::TimeLimitOverride(
           usage_time_limit::TimeLimitOverride::Action::kUnlock,
-          last_updated - base::TimeDelta::FromMinutes(5),
-          absl::nullopt /* duration */)
+          last_updated - base::Minutes(5), absl::nullopt /* duration */)
           .ToDictionary();
 
-  State state =
-      GetState(policy, &inactive_local_override,
-               base::TimeDelta::FromMinutes(0), current_time, current_time,
-               timezone.get(), absl::nullopt /* previous_state */);
+  State state = GetState(policy, &inactive_local_override, base::Minutes(0),
+                         current_time, current_time, timezone.get(),
+                         absl::nullopt /* previous_state */);
 
   base::Time monday_bedtime_end;
   ASSERT_TRUE(
@@ -2611,13 +2585,12 @@
   base::Value active_local_override =
       usage_time_limit::TimeLimitOverride(
           usage_time_limit::TimeLimitOverride::Action::kUnlock,
-          current_time - base::TimeDelta::FromMinutes(5),
-          absl::nullopt /* duration */)
+          current_time - base::Minutes(5), absl::nullopt /* duration */)
           .ToDictionary();
 
-  state = GetState(policy, &active_local_override,
-                   base::TimeDelta::FromMinutes(0), current_time, current_time,
-                   timezone.get(), absl::nullopt /* previous_state */);
+  state = GetState(policy, &active_local_override, base::Minutes(0),
+                   current_time, current_time, timezone.get(),
+                   absl::nullopt /* previous_state */);
 
   base::Time tuesday_bedtime_start;
   ASSERT_TRUE(base::Time::FromString("Tue, 2 Jan 2018 18:00 GMT",
@@ -2636,12 +2609,12 @@
 // time usage limit.
 TEST_F(UsageTimeLimitProcessorTest, LocalOverrideAndTimeUsageLimit) {
   std::unique_ptr<icu::TimeZone> timezone(icu::TimeZone::createTimeZone("GMT"));
-  const base::TimeDelta kDailyLimit = base::TimeDelta::FromHours(2);
+  const base::TimeDelta kDailyLimit = base::Hours(2);
 
   base::Time timestamp;
   ASSERT_TRUE(base::Time::FromString("Mon, 1 Jan 2018 15:00 GMT", &timestamp));
 
-  const base::Time last_updated = timestamp - base::TimeDelta::FromHours(4);
+  const base::Time last_updated = timestamp - base::Hours(4);
   base::Value policy = utils::CreateTimeLimitPolicy(utils::CreateTime(6, 0));
   utils::AddTimeUsageLimit(&policy, utils::kMonday, kDailyLimit, last_updated);
   utils::AddTimeUsageLimit(&policy, utils::kTuesday, kDailyLimit, last_updated);
@@ -2656,7 +2629,7 @@
   usage_limit_lock_state.active_policy = PolicyType::kUsageLimit;
   usage_limit_lock_state.next_state_active_policy = PolicyType::kNoPolicy;
   usage_limit_lock_state.is_time_usage_limit_enabled = true;
-  usage_limit_lock_state.remaining_usage = base::TimeDelta::FromMinutes(0);
+  usage_limit_lock_state.remaining_usage = base::Minutes(0);
   usage_limit_lock_state.time_usage_limit_started = timestamp;
   usage_limit_lock_state.next_unlock_time = next_day_reset;
   usage_limit_lock_state.next_state_change_time = next_day_reset;
@@ -2665,11 +2638,10 @@
   base::Value inactive_local_override =
       usage_time_limit::TimeLimitOverride(
           usage_time_limit::TimeLimitOverride::Action::kUnlock,
-          timestamp - base::TimeDelta::FromMinutes(5),
-          absl::nullopt /* duration */)
+          timestamp - base::Minutes(5), absl::nullopt /* duration */)
           .ToDictionary();
 
-  const base::Time current_time = timestamp + base::TimeDelta::FromMinutes(10);
+  const base::Time current_time = timestamp + base::Minutes(10);
 
   State state =
       GetState(policy, &inactive_local_override, kDailyLimit, current_time,
@@ -2708,20 +2680,18 @@
 
   base::Value policy = base::Value(base::Value::Type::DICTIONARY);
   utils::AddOverride(&policy, TimeLimitOverride::Action::kLock,
-                     current_time - base::TimeDelta::FromHours(1));
+                     current_time - base::Hours(1));
 
   // Local override started before latest policy update - should be ignored.
   base::Value inactive_local_override =
       usage_time_limit::TimeLimitOverride(
           usage_time_limit::TimeLimitOverride::Action::kUnlock,
-          current_time - base::TimeDelta::FromHours(2),
-          absl::nullopt /* duration */)
+          current_time - base::Hours(2), absl::nullopt /* duration */)
           .ToDictionary();
 
-  State state =
-      GetState(policy, &inactive_local_override,
-               base::TimeDelta::FromMinutes(0), current_time, current_time,
-               timezone.get(), absl::nullopt /* previous_state */);
+  State state = GetState(policy, &inactive_local_override, base::Minutes(0),
+                         current_time, current_time, timezone.get(),
+                         absl::nullopt /* previous_state */);
 
   base::Time next_day;
   ASSERT_TRUE(base::Time::FromString("Mon, 2 Jan 2018 00:00 GMT", &next_day));
@@ -2736,13 +2706,12 @@
   base::Value active_local_override =
       usage_time_limit::TimeLimitOverride(
           usage_time_limit::TimeLimitOverride::Action::kUnlock,
-          current_time - base::TimeDelta::FromMinutes(5),
-          absl::nullopt /* duration */)
+          current_time - base::Minutes(5), absl::nullopt /* duration */)
           .ToDictionary();
 
-  state = GetState(policy, &active_local_override,
-                   base::TimeDelta::FromMinutes(0), current_time, current_time,
-                   timezone.get(), absl::nullopt /* previous_state */);
+  state = GetState(policy, &active_local_override, base::Minutes(0),
+                   current_time, current_time, timezone.get(),
+                   absl::nullopt /* previous_state */);
 
   // Unlocked by local override.
   EXPECT_FALSE(state.is_locked);
@@ -2794,7 +2763,7 @@
   // (midnight) should be returned.
   auto empty_time_limit_dictionary = base::Value(base::Value::Type::DICTIONARY);
 
-  EXPECT_EQ(base::TimeDelta::FromHours(0),
+  EXPECT_EQ(base::Hours(0),
             GetTimeUsageLimitResetTime(empty_time_limit_dictionary));
 
   // If reset time is specified in the time usage limit policy, its value should
@@ -2807,8 +2776,7 @@
   auto time_limit_dictionary = base::Value(base::Value::Type::DICTIONARY);
   time_limit_dictionary.SetKey("time_usage_limit", std::move(time_usage_limit));
 
-  EXPECT_EQ(base::TimeDelta::FromHours(kHour) +
-                base::TimeDelta::FromMinutes(kMinutes),
+  EXPECT_EQ(base::Hours(kHour) + base::Minutes(kMinutes),
             GetTimeUsageLimitResetTime(time_limit_dictionary));
 }
 
@@ -2833,28 +2801,28 @@
   // Setup policy with a time usage of 2 hours.
   base::Time last_updated = utils::TimeFromString("1 Jan 2018 8:00 BRT");
   base::Value policy = utils::CreateTimeLimitPolicy(utils::CreateTime(8, 0));
-  utils::AddTimeUsageLimit(&policy, utils::kTuesday,
-                           base::TimeDelta::FromHours(2), last_updated);
-  utils::AddTimeUsageLimit(&policy, utils::kWednesday,
-                           base::TimeDelta::FromHours(2), last_updated);
+  utils::AddTimeUsageLimit(&policy, utils::kTuesday, base::Hours(2),
+                           last_updated);
+  utils::AddTimeUsageLimit(&policy, utils::kWednesday, base::Hours(2),
+                           last_updated);
 
   // Check that the remaining time is 2 hours.
   base::Time time_one = utils::TimeFromString("Wed, 3 Jan 2018 10:00 BRT");
   absl::optional<base::TimeDelta> remaining_usage_one =
       GetRemainingTimeUsage(policy, nullptr /* local_override */, time_one,
-                            base::TimeDelta::FromHours(0), timezone.get());
+                            base::Hours(0), timezone.get());
 
   ASSERT_FALSE(remaining_usage_one == absl::nullopt);
-  ASSERT_EQ(remaining_usage_one, base::TimeDelta::FromHours(2));
+  ASSERT_EQ(remaining_usage_one, base::Hours(2));
 
   // Check that remaining time changes to 1 hour if device was used for 1 hour.
   base::Time time_two = utils::TimeFromString("Wed, 3 Jan 2018 11:00 BRT");
   absl::optional<base::TimeDelta> remaining_usage_two =
       GetRemainingTimeUsage(policy, nullptr /* local_override */, time_two,
-                            base::TimeDelta::FromHours(1), timezone.get());
+                            base::Hours(1), timezone.get());
 
   ASSERT_FALSE(remaining_usage_two == absl::nullopt);
-  ASSERT_EQ(remaining_usage_two, base::TimeDelta::FromHours(1));
+  ASSERT_EQ(remaining_usage_two, base::Hours(1));
 }
 
 // Tests UpdatedPolicyTypes with no polcies.
@@ -2887,15 +2855,14 @@
 
   base::Value old_policy =
       utils::CreateTimeLimitPolicy(utils::CreateTime(6, 0));
-  utils::AddTimeUsageLimit(&old_policy, utils::kWednesday,
-                           base::TimeDelta::FromHours(2), last_updated);
+  utils::AddTimeUsageLimit(&old_policy, utils::kWednesday, base::Hours(2),
+                           last_updated);
   utils::AddTimeWindowLimit(&old_policy, utils::kSunday,
                             utils::CreateTime(22, 0), utils::CreateTime(7, 30),
                             last_updated);
   utils::AddOverrideWithDuration(
       &old_policy, TimeLimitOverride::Action::kUnlock,
-      utils::TimeFromString("Mon, 1 Jan 2019 10:30 PST"),
-      base::TimeDelta::FromHours(2));
+      utils::TimeFromString("Mon, 1 Jan 2019 10:30 PST"), base::Hours(2));
 
   base::Value new_policy = old_policy.Clone();
 
@@ -2908,28 +2875,26 @@
 
   base::Value old_policy =
       utils::CreateTimeLimitPolicy(utils::CreateTime(7, 0));
-  utils::AddTimeUsageLimit(&old_policy, utils::kSaturday,
-                           base::TimeDelta::FromHours(2), last_updated);
+  utils::AddTimeUsageLimit(&old_policy, utils::kSaturday, base::Hours(2),
+                           last_updated);
   utils::AddTimeWindowLimit(&old_policy, utils::kThursday,
                             utils::CreateTime(21, 0), utils::CreateTime(7, 30),
                             last_updated);
   utils::AddOverrideWithDuration(
       &old_policy, TimeLimitOverride::Action::kUnlock,
-      utils::TimeFromString("Wed, 3 Jan 2019 10:30 PST"),
-      base::TimeDelta::FromHours(3));
+      utils::TimeFromString("Wed, 3 Jan 2019 10:30 PST"), base::Hours(3));
 
   base::Value new_policy =
       utils::CreateTimeLimitPolicy(utils::CreateTime(7, 0));
   // New usage limit has a 3-hour duration instead of 2.
-  utils::AddTimeUsageLimit(&new_policy, utils::kSaturday,
-                           base::TimeDelta::FromHours(3), last_updated);
+  utils::AddTimeUsageLimit(&new_policy, utils::kSaturday, base::Hours(3),
+                           last_updated);
   utils::AddTimeWindowLimit(&new_policy, utils::kThursday,
                             utils::CreateTime(21, 0), utils::CreateTime(7, 30),
                             last_updated);
   utils::AddOverrideWithDuration(
       &new_policy, TimeLimitOverride::Action::kUnlock,
-      utils::TimeFromString("Wed, 3 Jan 2019 10:30 PST"),
-      base::TimeDelta::FromHours(3));
+      utils::TimeFromString("Wed, 3 Jan 2019 10:30 PST"), base::Hours(3));
 
   std::set<PolicyType> updated_policies =
       UpdatedPolicyTypes(old_policy, new_policy);
@@ -2943,28 +2908,26 @@
 
   base::Value old_policy =
       utils::CreateTimeLimitPolicy(utils::CreateTime(8, 0));
-  utils::AddTimeUsageLimit(&old_policy, utils::kTuesday,
-                           base::TimeDelta::FromHours(3), last_updated);
+  utils::AddTimeUsageLimit(&old_policy, utils::kTuesday, base::Hours(3),
+                           last_updated);
   utils::AddTimeWindowLimit(&old_policy, utils::kSunday,
                             utils::CreateTime(22, 0), utils::CreateTime(7, 30),
                             last_updated);
   utils::AddOverrideWithDuration(
       &old_policy, TimeLimitOverride::Action::kUnlock,
-      utils::TimeFromString("Wed, 3 Jan 2019 12:30 GMT"),
-      base::TimeDelta::FromHours(3));
+      utils::TimeFromString("Wed, 3 Jan 2019 12:30 GMT"), base::Hours(3));
 
   base::Value new_policy =
       utils::CreateTimeLimitPolicy(utils::CreateTime(8, 0));
-  utils::AddTimeUsageLimit(&new_policy, utils::kTuesday,
-                           base::TimeDelta::FromHours(3), last_updated);
+  utils::AddTimeUsageLimit(&new_policy, utils::kTuesday, base::Hours(3),
+                           last_updated);
   // New window limit ends at 8 AM instead of 7:30 AM.
   utils::AddTimeWindowLimit(&new_policy, utils::kSunday,
                             utils::CreateTime(22, 0), utils::CreateTime(8, 0),
                             last_updated);
   utils::AddOverrideWithDuration(
       &new_policy, TimeLimitOverride::Action::kUnlock,
-      utils::TimeFromString("Wed, 3 Jan 2019 12:30 GMT"),
-      base::TimeDelta::FromHours(3));
+      utils::TimeFromString("Wed, 3 Jan 2019 12:30 GMT"), base::Hours(3));
 
   std::set<PolicyType> updated_policies =
       UpdatedPolicyTypes(old_policy, new_policy);
@@ -2979,28 +2942,26 @@
 
   base::Value old_policy =
       utils::CreateTimeLimitPolicy(utils::CreateTime(8, 0));
-  utils::AddTimeUsageLimit(&old_policy, utils::kTuesday,
-                           base::TimeDelta::FromHours(3), last_updated);
+  utils::AddTimeUsageLimit(&old_policy, utils::kTuesday, base::Hours(3),
+                           last_updated);
   utils::AddTimeWindowLimit(&old_policy, utils::kSunday,
                             utils::CreateTime(22, 0), utils::CreateTime(7, 30),
                             last_updated);
   utils::AddOverrideWithDuration(
       &old_policy, TimeLimitOverride::Action::kUnlock,
-      utils::TimeFromString("Wed, 3 Jan 2019 12:30 GMT"),
-      base::TimeDelta::FromHours(3));
+      utils::TimeFromString("Wed, 3 Jan 2019 12:30 GMT"), base::Hours(3));
 
   base::Value new_policy =
       utils::CreateTimeLimitPolicy(utils::CreateTime(8, 0));
-  utils::AddTimeUsageLimit(&new_policy, utils::kTuesday,
-                           base::TimeDelta::FromHours(3), last_updated);
+  utils::AddTimeUsageLimit(&new_policy, utils::kTuesday, base::Hours(3),
+                           last_updated);
   utils::AddTimeWindowLimit(&new_policy, utils::kSunday,
                             utils::CreateTime(22, 0), utils::CreateTime(7, 30),
                             last_updated);
   // New override was created on 4 Jan instead of 3 Jan.
   utils::AddOverrideWithDuration(
       &new_policy, TimeLimitOverride::Action::kUnlock,
-      utils::TimeFromString("Wed, 4 Jan 2019 12:30 GMT"),
-      base::TimeDelta::FromHours(3));
+      utils::TimeFromString("Wed, 4 Jan 2019 12:30 GMT"), base::Hours(3));
 
   std::set<PolicyType> updated_policies =
       UpdatedPolicyTypes(old_policy, new_policy);
@@ -3016,21 +2977,20 @@
 
   base::Value old_policy =
       utils::CreateTimeLimitPolicy(utils::CreateTime(8, 0));
-  utils::AddTimeUsageLimit(&old_policy, utils::kMonday,
-                           base::TimeDelta::FromHours(3), last_updated);
+  utils::AddTimeUsageLimit(&old_policy, utils::kMonday, base::Hours(3),
+                           last_updated);
   utils::AddTimeWindowLimit(&old_policy, utils::kSunday,
                             utils::CreateTime(22, 0), utils::CreateTime(7, 30),
                             last_updated);
   utils::AddOverrideWithDuration(
       &old_policy, TimeLimitOverride::Action::kUnlock,
-      utils::TimeFromString("Wed, 3 Jan 2019 12:30 GMT"),
-      base::TimeDelta::FromHours(3));
+      utils::TimeFromString("Wed, 3 Jan 2019 12:30 GMT"), base::Hours(3));
 
   base::Value new_policy =
       utils::CreateTimeLimitPolicy(utils::CreateTime(8, 0));
   // New usage limit is applied to Tuesdays not Mondays.
-  utils::AddTimeUsageLimit(&new_policy, utils::kTuesday,
-                           base::TimeDelta::FromHours(3), last_updated);
+  utils::AddTimeUsageLimit(&new_policy, utils::kTuesday, base::Hours(3),
+                           last_updated);
   // New window limit ends 8 AM not 7:30 AM.
   utils::AddTimeWindowLimit(&new_policy, utils::kSunday,
                             utils::CreateTime(22, 0), utils::CreateTime(8, 0),
@@ -3038,8 +2998,7 @@
   // New override has a 4-hour duration, not 3 hours.
   utils::AddOverrideWithDuration(
       &new_policy, TimeLimitOverride::Action::kUnlock,
-      utils::TimeFromString("Wed, 3 Jan 2019 12:30 GMT"),
-      base::TimeDelta::FromHours(4));
+      utils::TimeFromString("Wed, 3 Jan 2019 12:30 GMT"), base::Hours(4));
 
   std::set<PolicyType> updated_policies =
       UpdatedPolicyTypes(old_policy, new_policy);
diff --git a/chrome/browser/ash/crosapi/browser_manager.cc b/chrome/browser/ash/crosapi/browser_manager.cc
index df9bda7..77bf07a 100644
--- a/chrome/browser/ash/crosapi/browser_manager.cc
+++ b/chrome/browser/ash/crosapi/browser_manager.cc
@@ -188,8 +188,7 @@
   // Here, lacros-chrome process may crashed, or be in the shutdown procedure.
   // Give some amount of time for the collection. In most cases,
   // this wait captures the process termination.
-  constexpr base::TimeDelta kGracefulShutdownTimeout =
-      base::TimeDelta::FromSeconds(5);
+  constexpr base::TimeDelta kGracefulShutdownTimeout = base::Seconds(5);
   if (process.WaitForExitWithTimeout(kGracefulShutdownTimeout, nullptr))
     return;
 
diff --git a/chrome/browser/ash/crosapi/download_controller_ash_unittest.cc b/chrome/browser/ash/crosapi/download_controller_ash_unittest.cc
index 6d6acc2..743040ca 100644
--- a/chrome/browser/ash/crosapi/download_controller_ash_unittest.cc
+++ b/chrome/browser/ash/crosapi/download_controller_ash_unittest.cc
@@ -98,10 +98,10 @@
           [](mojom::DownloadControllerClient::GetAllDownloadsCallback
                  callback) {
             std::vector<mojom::DownloadItemPtr> downloads;
-            downloads.push_back(CreateDownloadItemWithStartTimeOffset(
-                base::TimeDelta::FromMinutes(10)));
-            downloads.push_back(CreateDownloadItemWithStartTimeOffset(
-                -base::TimeDelta::FromMinutes(10)));
+            downloads.push_back(
+                CreateDownloadItemWithStartTimeOffset(base::Minutes(10)));
+            downloads.push_back(
+                CreateDownloadItemWithStartTimeOffset(-base::Minutes(10)));
             std::move(callback).Run(std::move(downloads));
           }));
 
@@ -117,10 +117,10 @@
           [](mojom::DownloadControllerClient::GetAllDownloadsCallback
                  callback) {
             std::vector<mojom::DownloadItemPtr> downloads;
-            downloads.push_back(CreateDownloadItemWithStartTimeOffset(
-                base::TimeDelta::FromMinutes(20)));
-            downloads.push_back(CreateDownloadItemWithStartTimeOffset(
-                -base::TimeDelta::FromMinutes(20)));
+            downloads.push_back(
+                CreateDownloadItemWithStartTimeOffset(base::Minutes(20)));
+            downloads.push_back(
+                CreateDownloadItemWithStartTimeOffset(-base::Minutes(20)));
             std::move(callback).Run(std::move(downloads));
           }));
 
diff --git a/chrome/browser/ash/crosapi/geolocation_service_ash.cc b/chrome/browser/ash/crosapi/geolocation_service_ash.cc
index ca5371e..6cbd360a 100644
--- a/chrome/browser/ash/crosapi/geolocation_service_ash.cc
+++ b/chrome/browser/ash/crosapi/geolocation_service_ash.cc
@@ -46,7 +46,7 @@
     ap_data->ssid = base::UTF8ToUTF16(access_point.ssid);
     ap_data_vector.push_back(std::move(ap_data));
   }
-  std::move(callback).Run(true, true, base::TimeDelta::FromMilliseconds(age_ms),
+  std::move(callback).Run(true, true, base::Milliseconds(age_ms),
                           std::move(ap_data_vector));
 }
 
diff --git a/chrome/browser/ash/crostini/crostini_force_close_watcher.cc b/chrome/browser/ash/crostini/crostini_force_close_watcher.cc
index be2e824..32262238 100644
--- a/chrome/browser/ash/crostini/crostini_force_close_watcher.cc
+++ b/chrome/browser/ash/crostini/crostini_force_close_watcher.cc
@@ -18,9 +18,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kDefaultForceCloseDelay =
-    base::TimeDelta::FromSeconds(5);
-
+constexpr base::TimeDelta kDefaultForceCloseDelay = base::Seconds(5);
 }
 
 ForceCloseWatcher::Delegate::~Delegate() = default;
diff --git a/chrome/browser/ash/crostini/crostini_force_close_watcher_unittest.cc b/chrome/browser/ash/crostini/crostini_force_close_watcher_unittest.cc
index c20630e..6ce72d32 100644
--- a/chrome/browser/ash/crostini/crostini_force_close_watcher_unittest.cc
+++ b/chrome/browser/ash/crostini/crostini_force_close_watcher_unittest.cc
@@ -75,7 +75,7 @@
   EXPECT_CALL(delegate_ref, GetClosableWidget).WillOnce(Return(widget.get()));
   EXPECT_CALL(delegate_ref, Watched)
       .WillOnce(testing::Invoke([](ForceCloseWatcher* watcher) {
-        watcher->OverrideDelayForTesting(base::TimeDelta::FromSeconds(0));
+        watcher->OverrideDelayForTesting(base::Seconds(0));
         watcher->OnCloseRequested();
         watcher->OnCloseRequested();
       }));
diff --git a/chrome/browser/ash/crostini/crostini_installer.cc b/chrome/browser/ash/crostini/crostini_installer.cc
index dfb3073d..a401c9c3 100644
--- a/chrome/browser/ash/crostini/crostini_installer.cc
+++ b/chrome/browser/ash/crostini/crostini_installer.cc
@@ -100,10 +100,9 @@
 
         // The magic number 1471228928 is used for legacy reasons and changing
         // it would invalidate already logged data.
-        base::UmaHistogramCustomTimes(
-            kCrostiniTimeFromDeviceSetupToInstall, time_from_device_setup,
-            base::TimeDelta::FromMinutes(1),
-            base::TimeDelta::FromMilliseconds(1471228928), 50);
+        base::UmaHistogramCustomTimes(kCrostiniTimeFromDeviceSetupToInstall,
+                                      time_from_device_setup, base::Minutes(1),
+                                      base::Milliseconds(1471228928), 50);
       }));
 }
 
@@ -470,7 +469,7 @@
 
   double state_start_mark = 0;
   double state_end_mark = 0;
-  auto state_max_time = base::TimeDelta::FromSeconds(1);
+  auto state_max_time = base::Seconds(1);
 
   switch (installing_state_) {
     case InstallerState::kStart:
@@ -480,7 +479,7 @@
     case InstallerState::kInstallImageLoader:
       state_start_mark = 0.0;
       state_end_mark = 0.20;
-      state_max_time = base::TimeDelta::FromSeconds(30);
+      state_max_time = base::Seconds(30);
       break;
     case InstallerState::kCreateDiskImage:
       state_start_mark = 0.20;
@@ -489,33 +488,33 @@
     case InstallerState::kStartTerminaVm:
       state_start_mark = 0.22;
       state_end_mark = 0.28;
-      state_max_time = base::TimeDelta::FromSeconds(8);
+      state_max_time = base::Seconds(8);
       break;
     case InstallerState::kStartLxd:
       state_start_mark = 0.28;
       state_end_mark = 0.30;
-      state_max_time = base::TimeDelta::FromSeconds(2);
+      state_max_time = base::Seconds(2);
       break;
     case InstallerState::kCreateContainer:
       state_start_mark = 0.30;
       state_end_mark = 0.72;
-      state_max_time = base::TimeDelta::FromSeconds(180);
+      state_max_time = base::Seconds(180);
       break;
     case InstallerState::kSetupContainer:
       state_start_mark = 0.72;
       state_end_mark = 0.76;
-      state_max_time = base::TimeDelta::FromSeconds(8);
+      state_max_time = base::Seconds(8);
       break;
     case InstallerState::kStartContainer:
       state_start_mark = 0.76;
       state_end_mark = 0.79;
-      state_max_time = base::TimeDelta::FromSeconds(8);
+      state_max_time = base::Seconds(8);
       break;
     case InstallerState::kConfigureContainer:
       state_start_mark = 0.79;
       state_end_mark = 1;
       // Ansible installation and playbook application.
-      state_max_time = base::TimeDelta::FromSeconds(140 + 300);
+      state_max_time = base::Seconds(140 + 300);
       break;
     default:
       NOTREACHED();
@@ -550,7 +549,7 @@
                           /*run_callback=*/false);
 
     state_progress_timer_.Start(
-        FROM_HERE, base::TimeDelta::FromMilliseconds(500),
+        FROM_HERE, base::Milliseconds(500),
         base::BindRepeating(&CrostiniInstaller::RunProgressCallback,
                             weak_ptr_factory_.GetWeakPtr()));
   } else {
diff --git a/chrome/browser/ash/crostini/crostini_installer_unittest.cc b/chrome/browser/ash/crostini/crostini_installer_unittest.cc
index 79607ec..eb927d0b 100644
--- a/chrome/browser/ash/crostini/crostini_installer_unittest.cc
+++ b/chrome/browser/ash/crostini/crostini_installer_unittest.cc
@@ -284,12 +284,12 @@
   // Hang the installer flow waiting for Tremplin to start, so we get a chance
   // to cancel it.
   waiting_fake_concierge_client_->set_send_tremplin_started_signal_delay(
-      base::TimeDelta::FromDays(1));
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+      base::Days(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
 
   check.Call("calling Cancel()");
   Cancel();
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
 
   histogram_tester_.ExpectUniqueSample(
       "Crostini.SetupResult",
diff --git a/chrome/browser/ash/crostini/crostini_low_disk_notification.cc b/chrome/browser/ash/crostini/crostini_low_disk_notification.cc
index fcaeaf6..d3e3740c 100644
--- a/chrome/browser/ash/crostini/crostini_low_disk_notification.cc
+++ b/chrome/browser/ash/crostini/crostini_low_disk_notification.cc
@@ -34,8 +34,7 @@
 const char kNotifierLowDisk[] = "crostini.disk";
 const uint64_t kNotificationThreshold = 1 << 30;          // 1GB
 const uint64_t kNotificationSevereThreshold = 512 << 20;  // 512MB
-constexpr base::TimeDelta kNotificationInterval =
-    base::TimeDelta::FromMinutes(2);
+constexpr base::TimeDelta kNotificationInterval = base::Minutes(2);
 
 chromeos::CiceroneClient* GetCiceroneClient() {
   return chromeos::CiceroneClient::Get();
diff --git a/chrome/browser/ash/crostini/crostini_low_disk_notification_unittest.cc b/chrome/browser/ash/crostini/crostini_low_disk_notification_unittest.cc
index 263d0a3..f58c31d 100644
--- a/chrome/browser/ash/crostini/crostini_low_disk_notification_unittest.cc
+++ b/chrome/browser/ash/crostini/crostini_low_disk_notification_unittest.cc
@@ -82,7 +82,7 @@
 
   void SetNotificationThrottlingInterval(int ms) {
     low_disk_notification_->SetNotificationIntervalForTest(
-        base::TimeDelta::FromMilliseconds(ms));
+        base::Milliseconds(ms));
   }
 
   void OnNotificationAdded() { notification_count_++; }
diff --git a/chrome/browser/ash/crostini/crostini_manager.cc b/chrome/browser/ash/crostini/crostini_manager.cc
index ab28310..766d29d 100644
--- a/chrome/browser/ash/crostini/crostini_manager.cc
+++ b/chrome/browser/ash/crostini/crostini_manager.cc
@@ -178,9 +178,8 @@
       NOTREACHED();
       return;
   }
-  base::UmaHistogramCustomTimes(name, duration,
-                                base::TimeDelta::FromMilliseconds(10),
-                                base::TimeDelta::FromHours(6), 50);
+  base::UmaHistogramCustomTimes(name, duration, base::Milliseconds(10),
+                                base::Hours(6), 50);
 }
 
 }  // namespace
@@ -442,25 +441,22 @@
 
   // TODO(crbug/1153210): Better numbers for timeouts once we have data.
   std::map<mojom::InstallerState, base::TimeDelta> stage_timeouts_ = {
-      {mojom::InstallerState::kStart, base::TimeDelta::FromMinutes(5)},
+      {mojom::InstallerState::kStart, base::Minutes(5)},
       {mojom::InstallerState::kInstallImageLoader,
-       base::TimeDelta::FromHours(6)},  // May need to download DLC or component
-      {mojom::InstallerState::kCreateDiskImage,
-       base::TimeDelta::FromMinutes(5)},
-      {mojom::InstallerState::kStartTerminaVm, base::TimeDelta::FromMinutes(5)},
-      {mojom::InstallerState::kStartLxd, base::TimeDelta::FromMinutes(5)},
+       base::Hours(6)},  // May need to download DLC or component
+      {mojom::InstallerState::kCreateDiskImage, base::Minutes(5)},
+      {mojom::InstallerState::kStartTerminaVm, base::Minutes(5)},
+      {mojom::InstallerState::kStartLxd, base::Minutes(5)},
       // While CreateContainer may need to download a file, we get progress
       // messages that reset the countdown.
-      {mojom::InstallerState::kCreateContainer,
-       base::TimeDelta::FromMinutes(5)},
-      {mojom::InstallerState::kSetupContainer, base::TimeDelta::FromMinutes(5)},
+      {mojom::InstallerState::kCreateContainer, base::Minutes(5)},
+      {mojom::InstallerState::kSetupContainer, base::Minutes(5)},
       // StartContainer might need to do a UID remapping, which in the worst
       // case can take a very long time.
-      {mojom::InstallerState::kStartContainer, base::TimeDelta::FromDays(5)},
+      {mojom::InstallerState::kStartContainer, base::Days(5)},
       // ConfigureContainer is special, it's not part of the restarter flow, so
       // it doesn't have a timeout.
-      {mojom::InstallerState::kConfigureContainer,
-       base::TimeDelta::FromHours(0)},
+      {mojom::InstallerState::kConfigureContainer, base::Hours(0)},
   };
 
   void StartStage(mojom::InstallerState stage) {
@@ -3568,8 +3564,7 @@
 }
 
 void CrostiniManager::EmitVmDiskTypeMetric(const std::string vm_name) {
-  if ((time_of_last_disk_type_metric_ + base::TimeDelta::FromHours(12)) >
-      base::Time::Now()) {
+  if ((time_of_last_disk_type_metric_ + base::Hours(12)) > base::Time::Now()) {
     // Only bother doing this once every 12 hours. We care about the number of
     // users in each histogram bucket, not the number of times restarted. We
     // do this 12-hourly instead of only at first launch since Crostini can
diff --git a/chrome/browser/ash/crostini/crostini_manager_unittest.cc b/chrome/browser/ash/crostini/crostini_manager_unittest.cc
index 036173e..06d4452 100644
--- a/chrome/browser/ash/crostini/crostini_manager_unittest.cc
+++ b/chrome/browser/ash/crostini/crostini_manager_unittest.cc
@@ -69,7 +69,7 @@
 const char kTerminaKernelVersion[] =
     "4.19.56-05556-gca219a5b1086 #3 SMP PREEMPT Mon Jul 1 14:36:38 CEST 2019";
 const char kCrostiniCorruptionHistogram[] = "Crostini.FilesystemCorruption";
-constexpr auto kLongTime = base::TimeDelta::FromDays(10);
+constexpr auto kLongTime = base::Days(10);
 
 void ExpectFailure(base::OnceClosure closure, bool success) {
   EXPECT_FALSE(success);
@@ -1137,12 +1137,12 @@
                      base::Unretained(this), run_loop()->QuitClosure()),
       this);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(4));
+  task_environment_.FastForwardBy(base::Minutes(4));
   crostini_manager_->OnLxdContainerDownloading(signal);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(4));
+  task_environment_.FastForwardBy(base::Minutes(4));
   ASSERT_EQ(0, restart_crostini_callback_count_);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(6));
+  task_environment_.FastForwardBy(base::Minutes(6));
   ASSERT_EQ(1, restart_crostini_callback_count_);
 
   EXPECT_GE(fake_concierge_client_->create_disk_image_call_count(), 1);
@@ -1561,7 +1561,7 @@
           &CrostiniManager::set_component_manager_load_error_for_testing,
           base::Unretained(crostini_manager()),
           component_updater::CrOSComponentManager::Error::NONE),
-      base::TimeDelta::FromSeconds(3));
+      base::Seconds(3));
 
   run_loop()->Run();
 
diff --git a/chrome/browser/ash/crostini/crostini_reporting_util.cc b/chrome/browser/ash/crostini/crostini_reporting_util.cc
index 85321d9..e86fca0 100644
--- a/chrome/browser/ash/crostini/crostini_reporting_util.cc
+++ b/chrome/browser/ash/crostini/crostini_reporting_util.cc
@@ -56,8 +56,8 @@
 
 base::Time GetThreeDayWindowStart(const base::Time& actual_time) {
   const base::Time actual_time_midnight = actual_time.UTCMidnight();
-  const base::TimeDelta delta = base::TimeDelta::FromDays(
-      (actual_time_midnight - base::Time::UnixEpoch()).InDays() % 3);
+  const base::TimeDelta delta =
+      base::Days((actual_time_midnight - base::Time::UnixEpoch()).InDays() % 3);
   return actual_time_midnight - delta;
 }
 
diff --git a/chrome/browser/ash/crostini/crostini_reporting_util_unittest.cc b/chrome/browser/ash/crostini/crostini_reporting_util_unittest.cc
index f1f2ba3..aa646cbd 100644
--- a/chrome/browser/ash/crostini/crostini_reporting_util_unittest.cc
+++ b/chrome/browser/ash/crostini/crostini_reporting_util_unittest.cc
@@ -128,13 +128,13 @@
   base::Time next_window_start;
   EXPECT_TRUE(base::Time::FromString("Sat, 1 Sep 2018 00:00:00 GMT",
                                      &next_window_start));
-  test_clock_.Advance(base::TimeDelta::FromDays(1));
+  test_clock_.Advance(base::Days(1));
   EXPECT_EQ(next_window_start, GetThreeDayWindowStart(test_clock_.Now()));
 
-  test_clock_.Advance(base::TimeDelta::FromDays(1));
+  test_clock_.Advance(base::Days(1));
   EXPECT_EQ(next_window_start, GetThreeDayWindowStart(test_clock_.Now()));
 
-  test_clock_.Advance(base::TimeDelta::FromDays(1));
+  test_clock_.Advance(base::Days(1));
   EXPECT_EQ(next_window_start, GetThreeDayWindowStart(test_clock_.Now()));
 
   // After three consecutive days logged with the same value, we now expect
@@ -142,7 +142,7 @@
   base::Time three_days_later;
   EXPECT_TRUE(base::Time::FromString("Tue, 4 Sep 2018 00:00:00 GMT",
                                      &three_days_later));
-  test_clock_.Advance(base::TimeDelta::FromDays(1));
+  test_clock_.Advance(base::Days(1));
   EXPECT_EQ(three_days_later, GetThreeDayWindowStart(test_clock_.Now()));
 }
 
diff --git a/chrome/browser/ash/crostini/crostini_util.cc b/chrome/browser/ash/crostini/crostini_util.cc
index 4addcba9..12f38ff8 100644
--- a/chrome/browser/ash/crostini/crostini_util.cc
+++ b/chrome/browser/ash/crostini/crostini_util.cc
@@ -366,7 +366,7 @@
 
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE, base::BindOnce(&AddSpinner, restart_id, app_id, profile),
-      base::TimeDelta::FromMilliseconds(kDelayBeforeSpinnerMs));
+      base::Milliseconds(kDelayBeforeSpinnerMs));
 }
 
 void LaunchCrostiniApp(Profile* profile,
@@ -557,9 +557,8 @@
 std::u16string GetTimeRemainingMessage(base::TimeTicks start, int percent) {
   // Only estimate once we've spent at least 3 seconds OR gotten 10% of the way
   // through.
-  constexpr base::TimeDelta kMinTimeForEstimate =
-      base::TimeDelta::FromSeconds(3);
-  constexpr base::TimeDelta kTimeDeltaZero = base::TimeDelta::FromSeconds(0);
+  constexpr base::TimeDelta kMinTimeForEstimate = base::Seconds(3);
+  constexpr base::TimeDelta kTimeDeltaZero = base::Seconds(0);
   constexpr int kMinPercentForEstimate = 10;
   base::TimeDelta elapsed = base::TimeTicks::Now() - start;
   if ((elapsed >= kMinTimeForEstimate && percent > 0) ||
diff --git a/chrome/browser/ash/crostini/crosvm_metrics.cc b/chrome/browser/ash/crostini/crosvm_metrics.cc
index 3f63662..184d1ec 100644
--- a/chrome/browser/ash/crostini/crosvm_metrics.cc
+++ b/chrome/browser/ash/crostini/crosvm_metrics.cc
@@ -28,8 +28,7 @@
 constexpr char kCrosvmRssPercentageHistogram[] =
     "Crostini.Crosvm.RssPercentage";
 
-constexpr base::TimeDelta kCrosvmMetricsInterval =
-    base::TimeDelta::FromMinutes(10);
+constexpr base::TimeDelta kCrosvmMetricsInterval = base::Minutes(10);
 
 }  // namespace
 
diff --git a/chrome/browser/ash/crostini/termina_installer.cc b/chrome/browser/ash/crostini/termina_installer.cc
index 522816c..065c455 100644
--- a/chrome/browser/ash/crostini/termina_installer.cc
+++ b/chrome/browser/ash/crostini/termina_installer.cc
@@ -126,7 +126,7 @@
         base::BindOnce(&TerminaInstaller::InstallDlc,
                        weak_ptr_factory_.GetWeakPtr(), std::move(callback),
                        is_initial_install),
-        base::TimeDelta::FromSeconds(5));
+        base::Seconds(5));
     return;
   } else if (result.error == dlcservice::kErrorNeedReboot ||
              result.error == dlcservice::kErrorNoImageFound) {
@@ -250,7 +250,7 @@
           FROM_HERE,
           base::BindOnce(&TerminaInstaller::InstallComponent,
                          weak_ptr_factory_.GetWeakPtr(), std::move(callback)),
-          base::TimeDelta::FromSeconds(5));
+          base::Seconds(5));
       return;
     } else {
       result = InstallResult::Failure;
diff --git a/chrome/browser/ash/crostini/termina_installer_unittest.cc b/chrome/browser/ash/crostini/termina_installer_unittest.cc
index b2a1239..6ba2bc9 100644
--- a/chrome/browser/ash/crostini/termina_installer_unittest.cc
+++ b/chrome/browser/ash/crostini/termina_installer_unittest.cc
@@ -308,7 +308,7 @@
   termina_installer_.Install(base::BindOnce(&TerminaInstallTest::ExpectSuccess,
                                             base::Unretained(this)),
                              /*is_initial_install=*/true);
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(0));
+  task_env_.FastForwardBy(base::Seconds(0));
 
   fake_dlc_client_->set_install_error(dlcservice::kErrorNone);
   run_loop_.Run();
@@ -324,13 +324,13 @@
       base::BindOnce(&TerminaInstallTest::ExpectNotCalled,
                      base::Unretained(this)),
       /*is_initial_install=*/true);
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(0));
+  task_env_.FastForwardBy(base::Seconds(0));
 
   CheckDlcInstallCalledTimes(1);
 
   termina_installer_.Cancel();
 
-  task_env_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_env_.FastForwardBy(base::Days(1));
 
   CheckDlcInstallCalledTimes(1);
 }
@@ -424,7 +424,7 @@
       /*is_initial_install=*/false);
   termina_installer_.Cancel();
 
-  task_env_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_env_.FastForwardBy(base::Days(1));
 
   CheckDlcInstallCalledTimes(1);
   EXPECT_FALSE(component_manager_->IsRegisteredMayBlock(
@@ -709,7 +709,7 @@
       ComponentInfo(ComponentError::UPDATE_IN_PROGRESS, base::FilePath(),
                     base::FilePath()));
 
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(6));
+  task_env_.FastForwardBy(base::Seconds(6));
 
   EXPECT_TRUE(component_manager_->HasPendingInstall(
       imageloader::kTerminaComponentName));
diff --git a/chrome/browser/ash/customization/customization_document.cc b/chrome/browser/ash/customization/customization_document.cc
index 54d0e5e..d9386f8 100644
--- a/chrome/browser/ash/customization/customization_document.cc
+++ b/chrome/browser/ash/customization/customization_document.cc
@@ -432,8 +432,7 @@
     : CustomizationDocument(kAcceptedManifestVersion),
       num_retries_(0),
       load_started_(false),
-      network_delay_(
-          base::TimeDelta::FromMilliseconds(kDefaultNetworkRetryDelayMS)),
+      network_delay_(base::Milliseconds(kDefaultNetworkRetryDelayMS)),
       apply_tasks_started_(0),
       apply_tasks_finished_(0),
       apply_tasks_success_(0) {}
@@ -441,8 +440,7 @@
 ServicesCustomizationDocument::ServicesCustomizationDocument(
     const std::string& manifest)
     : CustomizationDocument(kAcceptedManifestVersion),
-      network_delay_(
-          base::TimeDelta::FromMilliseconds(kDefaultNetworkRetryDelayMS)),
+      network_delay_(base::Milliseconds(kDefaultNetworkRetryDelayMS)),
       apply_tasks_started_(0),
       apply_tasks_finished_(0),
       apply_tasks_success_(0) {
@@ -650,7 +648,7 @@
           FROM_HERE,
           base::BindOnce(&ServicesCustomizationDocument::StartFileFetch,
                          weak_ptr_factory_.GetWeakPtr()),
-          base::TimeDelta::FromSeconds(kRetriesDelayInSec));
+          base::Seconds(kRetriesDelayInSec));
       return;
     }
     // This doesn't stop fetching manifest on next restart.
diff --git a/chrome/browser/ash/customization/customization_wallpaper_downloader.cc b/chrome/browser/ash/customization/customization_wallpaper_downloader.cc
index 3e17d18..c4155b8 100644
--- a/chrome/browser/ash/customization/customization_wallpaper_downloader.cc
+++ b/chrome/browser/ash/customization/customization_wallpaper_downloader.cc
@@ -73,7 +73,7 @@
       wallpaper_temporary_file_(wallpaper_downloaded_file.value() +
                                 kTemporarySuffix),
       retries_(0),
-      retry_delay_(base::TimeDelta::FromSeconds(kRetrySleepSeconds)),
+      retry_delay_(base::Seconds(kRetrySleepSeconds)),
       on_wallpaper_fetch_completed_(std::move(on_wallpaper_fetch_completed)) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
 }
@@ -118,7 +118,7 @@
   const double delay_seconds = std::min(
       kMaxRetrySleepSeconds,
       static_cast<double>(retries_) * retries_ * retry_delay_.InSecondsF());
-  const base::TimeDelta delay = base::TimeDelta::FromSecondsD(delay_seconds);
+  const base::TimeDelta delay = base::Seconds(delay_seconds);
 
   VLOG(1) << "Schedule Customized Wallpaper download in " << delay.InSecondsF()
           << " seconds (retry = " << retries_ << ").";
diff --git a/chrome/browser/ash/customization/customization_wallpaper_downloader_browsertest.cc b/chrome/browser/ash/customization/customization_wallpaper_downloader_browsertest.cc
index 7d3239e..68ed84c7 100644
--- a/chrome/browser/ash/customization/customization_wallpaper_downloader_browsertest.cc
+++ b/chrome/browser/ash/customization/customization_wallpaper_downloader_browsertest.cc
@@ -198,7 +198,7 @@
         ServicesCustomizationDocument::GetInstance();
     customization->wallpaper_downloader_for_testing()
         ->set_retry_delay_for_testing(
-            base::TimeDelta::FromMilliseconds(kDownloadRetryIntervalMS));
+            base::Milliseconds(kDownloadRetryIntervalMS));
 
     attempts_.push_back(base::TimeTicks::Now());
     if (attempts_.size() > 1) {
@@ -206,10 +206,9 @@
       const base::TimeDelta current_delay =
           customization->wallpaper_downloader_for_testing()
               ->retry_current_delay_for_testing();
-      const double base_interval = base::TimeDelta::FromMilliseconds(
-                                       kDownloadRetryIntervalMS).InSecondsF();
-      EXPECT_GE(current_delay,
-                base::TimeDelta::FromSecondsD(base_interval * retry * retry))
+      const double base_interval =
+          base::Milliseconds(kDownloadRetryIntervalMS).InSecondsF();
+      EXPECT_GE(current_delay, base::Seconds(base_interval * retry * retry))
           << "Retry too fast. Actual interval " << current_delay.InSecondsF()
           << " seconds, but expected at least " << base_interval
           << " * (retry=" << retry
diff --git a/chrome/browser/ash/device_name/device_name_applier_impl_unittest.cc b/chrome/browser/ash/device_name/device_name_applier_impl_unittest.cc
index a9df6228..401b7080 100644
--- a/chrome/browser/ash/device_name/device_name_applier_impl_unittest.cc
+++ b/chrome/browser/ash/device_name/device_name_applier_impl_unittest.cc
@@ -109,7 +109,7 @@
 
   // No more retry calls are made once success callback is called.
   EXPECT_CALL(*mock_adapter_, SetName("TestName", _, _)).Times(0);
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
 }
 
 TEST_F(DeviceNameApplierImplTest, SetNameDelayNotReached) {
@@ -123,7 +123,7 @@
   // SetName should not be called before next backoff retry time.
   EXPECT_CALL(*mock_adapter_, SetName("TestName", _, _)).Times(0);
   task_environment_.FastForwardBy(GetCurrentBackoffDelay() -
-                                  base::TimeDelta::FromMilliseconds(1));
+                                  base::Milliseconds(1));
 }
 
 TEST_F(DeviceNameApplierImplTest, MultipleCallsToSetDeviceName) {
diff --git a/chrome/browser/ash/drive/drive_integration_service.cc b/chrome/browser/ash/drive/drive_integration_service.cc
index 6d555077..d77937ed 100644
--- a/chrome/browser/ash/drive/drive_integration_service.cc
+++ b/chrome/browser/ash/drive/drive_integration_service.cc
@@ -423,7 +423,7 @@
           base::BindOnce(&DriveIntegrationService::PreferenceWatcher::
                              AddNetworkPortalDetectorObserver,
                          weak_ptr_factory_.GetWeakPtr()),
-          base::TimeDelta::FromSeconds(5));
+          base::Seconds(5));
     }
   }
 
@@ -749,7 +749,7 @@
     RemoveDriveMountPoint();
     // TODO(crbug/1069328): We wait 2 seconds here so that DriveFS can unmount
     // completely. Ideally we'd wait for an unmount complete callback.
-    delay = base::TimeDelta::FromSeconds(2);
+    delay = base::Seconds(2);
   }
   base::SequencedTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE,
@@ -922,8 +922,8 @@
         observer.OnFileSystemMountFailed();
       return;
     }
-    remount_delay = base::TimeDelta::FromSeconds(
-        5 * (1 << (drivefs_consecutive_failures_count_ - 1)));
+    remount_delay =
+        base::Seconds(5 * (1 << (drivefs_consecutive_failures_count_ - 1)));
     logger_->Log(logging::LOG_WARNING, "DriveFs died, retry in %d seconds",
                  static_cast<int>(remount_delay.value().InSeconds()));
   }
diff --git a/chrome/browser/ash/drive/drive_integration_service_browsertest.cc b/chrome/browser/ash/drive/drive_integration_service_browsertest.cc
index 2e66c94..b84af8a 100644
--- a/chrome/browser/ash/drive/drive_integration_service_browsertest.cc
+++ b/chrome/browser/ash/drive/drive_integration_service_browsertest.cc
@@ -131,8 +131,8 @@
   base::FilePath mount_path = drive_service->GetMountPointPath();
   ASSERT_TRUE(base::WriteFile(mount_path.Append("bar"), ""));
   ASSERT_TRUE(base::WriteFile(mount_path.Append("baz"), ""));
-  auto base_time = base::Time::Now() - base::TimeDelta::FromSeconds(10);
-  auto earlier_time = base_time - base::TimeDelta::FromSeconds(10);
+  auto base_time = base::Time::Now() - base::Seconds(10);
+  auto earlier_time = base_time - base::Seconds(10);
   ASSERT_TRUE(base::TouchFile(mount_path.Append("bar"), base_time, base_time));
   ASSERT_TRUE(
       base::TouchFile(mount_path.Append("baz"), earlier_time, earlier_time));
diff --git a/chrome/browser/ash/file_system_provider/request_manager.cc b/chrome/browser/ash/file_system_provider/request_manager.cc
index 7e90225..b55da9f 100644
--- a/chrome/browser/ash/file_system_provider/request_manager.cc
+++ b/chrome/browser/ash/file_system_provider/request_manager.cc
@@ -34,7 +34,7 @@
       provider_id_(provider_id),
       notification_manager_(notification_manager),
       next_id_(1),
-      timeout_(base::TimeDelta::FromSeconds(kDefaultTimeout)) {}
+      timeout_(base::Seconds(kDefaultTimeout)) {}
 
 RequestManager::~RequestManager() {
   // Abort all of the active requests.
diff --git a/chrome/browser/ash/file_system_provider/request_manager_unittest.cc b/chrome/browser/ash/file_system_provider/request_manager_unittest.cc
index 73c4eaf..92e7b975 100644
--- a/chrome/browser/ash/file_system_provider/request_manager_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/request_manager_unittest.cc
@@ -746,7 +746,7 @@
   RequestObserver observer;
   request_manager_->AddObserver(&observer);
 
-  request_manager_->SetTimeoutForTesting(base::TimeDelta::FromSeconds(0));
+  request_manager_->SetTimeoutForTesting(base::Seconds(0));
   const int request_id = request_manager_->CreateRequest(
       TESTING,
       base::WrapUnique<RequestManager::HandlerInterface>(
@@ -791,7 +791,7 @@
   RequestObserver observer;
   request_manager_->AddObserver(&observer);
 
-  request_manager_->SetTimeoutForTesting(base::TimeDelta::FromSeconds(0));
+  request_manager_->SetTimeoutForTesting(base::Seconds(0));
   const int request_id = request_manager_->CreateRequest(
       TESTING,
       base::WrapUnique<RequestManager::HandlerInterface>(
diff --git a/chrome/browser/ash/first_run/drive_first_run_controller.cc b/chrome/browser/ash/first_run/drive_first_run_controller.cc
index e66e53b..1a80c65 100644
--- a/chrome/browser/ash/first_run/drive_first_run_controller.cc
+++ b/chrome/browser/ash/first_run/drive_first_run_controller.cc
@@ -308,11 +308,9 @@
 void DriveFirstRunController::EnableOfflineMode() {
   if (!started_) {
     started_ = true;
-    initial_delay_timer_.Start(
-      FROM_HERE,
-      base::TimeDelta::FromSeconds(initial_delay_secs_),
-      this,
-      &DriveFirstRunController::EnableOfflineMode);
+    initial_delay_timer_.Start(FROM_HERE, base::Seconds(initial_delay_secs_),
+                               this,
+                               &DriveFirstRunController::EnableOfflineMode);
     return;
   }
 
@@ -346,11 +344,9 @@
       base::BindOnce(&DriveFirstRunController::OnOfflineInit,
                      base::Unretained(this)));
   web_contents_manager_->StartLoad();
-  web_contents_timer_.Start(
-      FROM_HERE,
-      base::TimeDelta::FromSeconds(web_contents_timeout_secs_),
-      this,
-      &DriveFirstRunController::OnWebContentsTimedOut);
+  web_contents_timer_.Start(FROM_HERE,
+                            base::Seconds(web_contents_timeout_secs_), this,
+                            &DriveFirstRunController::OnWebContentsTimedOut);
 }
 
 void DriveFirstRunController::AddObserver(Observer* observer) {
diff --git a/chrome/browser/ash/guest_os/guest_os_registry_service.cc b/chrome/browser/ash/guest_os/guest_os_registry_service.cc
index b8951dc..dc3429ef 100644
--- a/chrome/browser/ash/guest_os/guest_os_registry_service.cc
+++ b/chrome/browser/ash/guest_os/guest_os_registry_service.cc
@@ -158,8 +158,7 @@
   int64_t time;
   if (!value || !base::StringToInt64(value->GetString(), &time))
     return base::Time();
-  return base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(time));
+  return base::Time::FromDeltaSinceWindowsEpoch(base::Microseconds(time));
 }
 
 bool EqualsExcludingTimestamps(const base::Value& left,
diff --git a/chrome/browser/ash/guest_os/guest_os_registry_service_unittest.cc b/chrome/browser/ash/guest_os/guest_os_registry_service_unittest.cc
index 2623e10..e185efb0 100644
--- a/chrome/browser/ash/guest_os/guest_os_registry_service_unittest.cc
+++ b/chrome/browser/ash/guest_os/guest_os_registry_service_unittest.cc
@@ -311,7 +311,7 @@
       crostini::CrostiniTestHelper::BasicAppList("app", "vm", "container");
   std::string app_id =
       crostini::CrostiniTestHelper::GenerateAppId("app", "vm", "container");
-  test_clock_.Advance(base::TimeDelta::FromHours(1));
+  test_clock_.Advance(base::Hours(1));
 
   Observer observer;
   service()->AddObserver(&observer);
@@ -332,7 +332,7 @@
 
   // UpdateApplicationList with nothing changed. Times shouldn't be updated and
   // the observer shouldn't fire.
-  test_clock_.Advance(base::TimeDelta::FromHours(1));
+  test_clock_.Advance(base::Hours(1));
   EXPECT_CALL(observer, OnRegistryUpdated(_, _, _, _, _)).Times(0);
   service()->UpdateApplicationList(app_list);
   result = service()->GetRegistration(app_id);
@@ -340,15 +340,14 @@
   EXPECT_EQ(result->LastLaunchTime(), base::Time());
 
   // Launch the app
-  test_clock_.Advance(base::TimeDelta::FromHours(1));
+  test_clock_.Advance(base::Hours(1));
   service()->AppLaunched(app_id);
   result = service()->GetRegistration(app_id);
   EXPECT_EQ(result->InstallTime(), install_time);
-  EXPECT_EQ(result->LastLaunchTime(),
-            base::Time() + base::TimeDelta::FromHours(3));
+  EXPECT_EQ(result->LastLaunchTime(), base::Time() + base::Hours(3));
 
   // The install time shouldn't change if fields change.
-  test_clock_.Advance(base::TimeDelta::FromHours(1));
+  test_clock_.Advance(base::Hours(1));
   app_list.mutable_apps(0)->set_no_display(true);
   EXPECT_CALL(
       observer,
@@ -360,8 +359,7 @@
   service()->UpdateApplicationList(app_list);
   result = service()->GetRegistration(app_id);
   EXPECT_EQ(result->InstallTime(), install_time);
-  EXPECT_EQ(result->LastLaunchTime(),
-            base::Time() + base::TimeDelta::FromHours(3));
+  EXPECT_EQ(result->LastLaunchTime(), base::Time() + base::Hours(3));
 }
 
 // Test that UpdateApplicationList doesn't clobber apps from different VMs or
diff --git a/chrome/browser/ash/hats/hats_config.cc b/chrome/browser/ash/hats/hats_config.cc
index fa40c08..3cde624 100644
--- a/chrome/browser/ash/hats/hats_config.cc
+++ b/chrome/browser/ash/hats/hats_config.cc
@@ -30,7 +30,7 @@
 const HatsConfig kHatsGeneralSurvey = {
     ::features::kHappinessTrackingSystem,         // feature
     "Browser.ChromeOS.HatsSatisfaction.General",  // histogram_name
-    base::TimeDelta::FromDays(7),                 // new_device_threshold
+    base::Days(7),                                // new_device_threshold
     prefs::kHatsDeviceIsSelected,                 // is_selected_pref_name
     prefs::kHatsSurveyCycleEndTimestamp,  // cycle_end_timestamp_pref_name
 };
@@ -39,7 +39,7 @@
 const HatsConfig kHatsOnboardingSurvey = {
     ::features::kHappinessTrackingSystemOnboarding,            // feature
     "Browser.ChromeOS.HatsSatisfaction.OnboardingExperience",  // histogram_name
-    base::TimeDelta::FromMinutes(30),        // new_device_threshold
+    base::Minutes(30),                       // new_device_threshold
     prefs::kHatsOnboardingDeviceIsSelected,  // is_selected_pref_name
     prefs::kHatsOnboardingSurveyCycleEndTs,  // cycle_end_timestamp_pref_name
 };
@@ -49,7 +49,7 @@
 const HatsConfig kHatsSmartLockSurvey = {
     ::features::kHappinessTrackingSystemSmartLock,  // feature
     "Browser.ChromeOS.HatsSatisfaction.SmartLock",  // histogram_name
-    base::TimeDelta::FromDays(7),                   // hatsNewDeviceThreshold
+    base::Days(7),                                  // hatsNewDeviceThreshold
     prefs::kHatsSmartLockDeviceIsSelected,          // hatsIsSelectedPrefName
     prefs::kHatsSmartLockSurveyCycleEndTs,  // hatsCycleEndTimestampPrefName
 };
@@ -59,7 +59,7 @@
 const HatsConfig kHatsUnlockSurvey = {
     ::features::kHappinessTrackingSystemUnlock,  // feature
     "Browser.ChromeOS.HatsSatisfaction.Unlock",  // histogram_name
-    base::TimeDelta::FromDays(7),                // hatsNewDeviceThreshold
+    base::Days(7),                               // hatsNewDeviceThreshold
     prefs::kHatsUnlockDeviceIsSelected,          // hatsIsSelectedPrefName
     prefs::kHatsUnlockSurveyCycleEndTs,  // hatsCycleEndTimestampPrefName
 };
diff --git a/chrome/browser/ash/hats/hats_finch_helper.cc b/chrome/browser/ash/hats/hats_finch_helper.cc
index b43c39b..2820b6fa 100644
--- a/chrome/browser/ash/hats/hats_finch_helper.cc
+++ b/chrome/browser/ash/hats/hats_finch_helper.cc
@@ -116,7 +116,7 @@
 
 base::Time HatsFinchHelper::ComputeNextEndDate() {
   base::Time start_date = first_survey_start_date_;
-  base::TimeDelta delta = base::TimeDelta::FromDays(survey_cycle_length_);
+  base::TimeDelta delta = base::Days(survey_cycle_length_);
   do {
     start_date += delta;
   } while (start_date < base::Time::Now());
diff --git a/chrome/browser/ash/hats/hats_finch_helper_unittest.cc b/chrome/browser/ash/hats/hats_finch_helper_unittest.cc
index 926d668..6b2fafbc 100644
--- a/chrome/browser/ash/hats/hats_finch_helper_unittest.cc
+++ b/chrome/browser/ash/hats/hats_finch_helper_unittest.cc
@@ -105,19 +105,18 @@
   HatsFinchHelper hats_finch_helper(&profile_, kHatsGeneralSurvey);
 
   // Case 1
-  base::Time start_date = current_time - base::TimeDelta::FromDays(10);
+  base::Time start_date = current_time - base::Days(10);
   hats_finch_helper.first_survey_start_date_ = start_date;
   base::Time expected_date =
-      start_date +
-      base::TimeDelta::FromDays(2 * hats_finch_helper.survey_cycle_length_);
+      start_date + base::Days(2 * hats_finch_helper.survey_cycle_length_);
   EXPECT_EQ(expected_date.ToJsTime(),
             hats_finch_helper.ComputeNextEndDate().ToJsTime());
 
   // Case 2
-  base::Time future_time = current_time + base::TimeDelta::FromDays(10);
+  base::Time future_time = current_time + base::Days(10);
   hats_finch_helper.first_survey_start_date_ = future_time;
-  expected_date = future_time + base::TimeDelta::FromDays(
-                                    hats_finch_helper.survey_cycle_length_);
+  expected_date =
+      future_time + base::Days(hats_finch_helper.survey_cycle_length_);
   EXPECT_EQ(expected_date.ToJsTime(),
             hats_finch_helper.ComputeNextEndDate().ToJsTime());
 }
diff --git a/chrome/browser/ash/hats/hats_notification_controller.cc b/chrome/browser/ash/hats/hats_notification_controller.cc
index 54a8a74..e591ddc7 100644
--- a/chrome/browser/ash/hats/hats_notification_controller.cc
+++ b/chrome/browser/ash/hats/hats_notification_controller.cc
@@ -47,10 +47,10 @@
 
 // Minimum amount of time before the notification is displayed again after a
 // user has interacted with it.
-constexpr base::TimeDelta kHatsThreshold = base::TimeDelta::FromDays(90);
+constexpr base::TimeDelta kHatsThreshold = base::Days(90);
 
 // The threshold for a Googler is less.
-constexpr base::TimeDelta kHatsGooglerThreshold = base::TimeDelta::FromDays(30);
+constexpr base::TimeDelta kHatsGooglerThreshold = base::Days(30);
 
 // Returns true if the given |profile| interacted with HaTS by either
 // dismissing the notification or taking the survey within a given
diff --git a/chrome/browser/ash/input_method/grammar_manager.cc b/chrome/browser/ash/input_method/grammar_manager.cc
index f8e2d642..e090683 100644
--- a/chrome/browser/ash/input_method/grammar_manager.cc
+++ b/chrome/browser/ash/input_method/grammar_manager.cc
@@ -21,7 +21,7 @@
 namespace input_method {
 namespace {
 
-constexpr base::TimeDelta kCheckDelay = base::TimeDelta::FromSeconds(2);
+constexpr base::TimeDelta kCheckDelay = base::Seconds(2);
 const uint64_t HashMultiplier = 1LL << 32;
 
 const char16_t kShowGrammarSuggestionMessage[] =
diff --git a/chrome/browser/ash/input_method/grammar_manager_unittest.cc b/chrome/browser/ash/input_method/grammar_manager_unittest.cc
index 58c1a337..6407eff 100644
--- a/chrome/browser/ash/input_method/grammar_manager_unittest.cc
+++ b/chrome/browser/ash/input_method/grammar_manager_unittest.cc
@@ -137,7 +137,7 @@
   manager.OnFocus(1, /*text_input_flags=*/0);
   manager.OnSurroundingTextChanged(u"", 0, 0);
   manager.OnSurroundingTextChanged(u"There is error.", 0, 0);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(2500));
+  task_environment_.FastForwardBy(base::Milliseconds(2500));
 
   auto grammar_fragments =
       mock_ime_input_context_handler_.get_grammar_fragments();
@@ -158,12 +158,12 @@
   manager.OnFocus(1, /*text_input_flags=*/0);
   manager.OnSurroundingTextChanged(u"", 0, 0);
   manager.OnSurroundingTextChanged(u"There is error error", 0, 0);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(2500));
+  task_environment_.FastForwardBy(base::Milliseconds(2500));
   histogram_tester.ExpectUniqueSample("InputMethod.Assistive.Grammar.Actions",
                                       0 /*GrammarAction::kUnderlined*/, 2);
 
   manager.OnSurroundingTextChanged(u"There is error error error", 0, 0);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(2500));
+  task_environment_.FastForwardBy(base::Milliseconds(2500));
   histogram_tester.ExpectUniqueSample("InputMethod.Assistive.Grammar.Actions",
                                       0 /*GrammarAction::kUnderlined*/, 3);
 }
@@ -178,7 +178,7 @@
   manager.OnFocus(1, ui::TEXT_INPUT_FLAG_SPELLCHECK_OFF);
   manager.OnSurroundingTextChanged(u"", 0, 0);
   manager.OnSurroundingTextChanged(u"There is error.", 0, 0);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(2500));
+  task_environment_.FastForwardBy(base::Milliseconds(2500));
 
   auto grammar_fragments =
       mock_ime_input_context_handler_.get_grammar_fragments();
@@ -197,7 +197,7 @@
   manager.OnSurroundingTextChanged(u"", 0, 0);
   manager.OnSurroundingTextChanged(u"There is error. And another error.", 20,
                                    20);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(250));
+  task_environment_.FastForwardBy(base::Milliseconds(250));
 
   auto grammar_fragments =
       mock_ime_input_context_handler_.get_grammar_fragments();
@@ -216,7 +216,7 @@
   manager.OnSurroundingTextChanged(u"", 0, 0);
   manager.OnSurroundingTextChanged(u"There is error. And another error.", 20,
                                    20);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(2500));
+  task_environment_.FastForwardBy(base::Milliseconds(2500));
 
   auto grammar_fragments =
       mock_ime_input_context_handler_.get_grammar_fragments();
@@ -236,7 +236,7 @@
   manager.OnFocus(1);
   manager.OnSurroundingTextChanged(u"", 0, 0);
   manager.OnSurroundingTextChanged(u"There is error error.", 0, 0);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(2500));
+  task_environment_.FastForwardBy(base::Milliseconds(2500));
 
   auto grammar_fragments =
       mock_ime_input_context_handler_.get_grammar_fragments();
@@ -256,7 +256,7 @@
   manager.OnFocus(1);
   manager.OnSurroundingTextChanged(u"", 0, 0);
   manager.OnSurroundingTextChanged(u"There is error.", 0, 0);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(2500));
+  task_environment_.FastForwardBy(base::Milliseconds(2500));
 
   auto grammar_fragments =
       mock_ime_input_context_handler_.get_grammar_fragments();
@@ -265,7 +265,7 @@
   EXPECT_EQ(grammar_fragments[0].suggestion, "correct");
 
   manager.OnSurroundingTextChanged(u"There is a new error.", 0, 0);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(2500));
+  task_environment_.FastForwardBy(base::Milliseconds(2500));
 
   auto updated_grammar_fragments =
       mock_ime_input_context_handler_.get_grammar_fragments();
@@ -284,7 +284,7 @@
   manager.OnFocus(1);
   manager.OnSurroundingTextChanged(u"", 0, 0);
   manager.OnSurroundingTextChanged(u"There is error.", 0, 0);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(2500));
+  task_environment_.FastForwardBy(base::Milliseconds(2500));
 
   AssistiveWindowProperties expected_properties;
   expected_properties.type = ui::ime::AssistiveWindowType::kGrammarSuggestion;
@@ -316,7 +316,7 @@
   manager.OnFocus(1);
   manager.OnSurroundingTextChanged(u"", 0, 0);
   manager.OnSurroundingTextChanged(u"There is error.", 0, 0);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(2500));
+  task_environment_.FastForwardBy(base::Milliseconds(2500));
 
   AssistiveWindowProperties expected_properties;
   expected_properties.type = ui::ime::AssistiveWindowType::kGrammarSuggestion;
@@ -347,7 +347,7 @@
   manager.OnFocus(1);
   manager.OnSurroundingTextChanged(u"", 0, 0);
   manager.OnSurroundingTextChanged(u"There is error.", 0, 0);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(2500));
+  task_environment_.FastForwardBy(base::Milliseconds(2500));
 
   EXPECT_CALL(mock_suggestion_handler, SetAssistiveWindowProperties(1, _, _));
   EXPECT_CALL(mock_suggestion_handler,
@@ -366,7 +366,7 @@
   EXPECT_CALL(mock_suggestion_handler,
               Announce(std::u16string(kAcceptGrammarSuggestionMessage)));
   manager.OnKeyEvent(CreateKeyEvent(ui::DomCode::ENTER));
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(200));
+  task_environment_.FastForwardBy(base::Milliseconds(200));
 
   EXPECT_EQ(
       mock_ime_input_context_handler_.delete_surrounding_text_call_count(), 1);
@@ -393,7 +393,7 @@
   manager.OnFocus(1);
   manager.OnSurroundingTextChanged(u"", 0, 0);
   manager.OnSurroundingTextChanged(u"There is error.", 0, 0);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(2500));
+  task_environment_.FastForwardBy(base::Milliseconds(2500));
 
   EXPECT_CALL(mock_suggestion_handler, SetAssistiveWindowProperties(1, _, _));
   EXPECT_CALL(mock_suggestion_handler,
@@ -412,7 +412,7 @@
   EXPECT_CALL(mock_suggestion_handler,
               Announce(std::u16string(kAcceptGrammarSuggestionMessage)));
   manager.OnKeyEvent(CreateKeyEvent(ui::DomCode::ENTER));
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(200));
+  task_environment_.FastForwardBy(base::Milliseconds(200));
 
   EXPECT_EQ(
       mock_ime_input_context_handler_.delete_surrounding_text_call_count(), 1);
@@ -439,7 +439,7 @@
   manager.OnFocus(1);
   manager.OnSurroundingTextChanged(u"", 0, 0);
   manager.OnSurroundingTextChanged(u"There is error.", 0, 0);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(2500));
+  task_environment_.FastForwardBy(base::Milliseconds(2500));
 
   EXPECT_EQ(mock_ime_input_context_handler_.get_grammar_fragments().size(), 1);
   EXPECT_CALL(mock_suggestion_handler, SetAssistiveWindowProperties(1, _, _));
@@ -477,7 +477,7 @@
                                      3 /*GrammarAction::kIgnored*/, 1);
 
   manager.OnSurroundingTextChanged(u"There is error. There is error.", 20, 20);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(2500));
+  task_environment_.FastForwardBy(base::Milliseconds(2500));
   EXPECT_EQ(mock_ime_input_context_handler_.get_grammar_fragments().size(), 0);
 }
 
diff --git a/chrome/browser/ash/input_method/ime_service_connector.cc b/chrome/browser/ash/input_method/ime_service_connector.cc
index 3e1a9226..708672a 100644
--- a/chrome/browser/ash/input_method/ime_service_connector.cc
+++ b/chrome/browser/ash/input_method/ime_service_connector.cc
@@ -94,7 +94,7 @@
   url_loader_ = network::SimpleURLLoader::Create(std::move(resource_request),
                                                  traffic_annotation);
   // TODO(https://crbug.com/971954): Allow the client to specify the timeout.
-  url_loader_->SetTimeoutDuration(base::TimeDelta::FromMinutes(10));
+  url_loader_->SetTimeoutDuration(base::Minutes(10));
 
   // Download the language module into a preconfigured ime folder of current
   // user's home which is allowed in IME service's sandbox.
diff --git a/chrome/browser/ash/input_method/native_input_method_engine.cc b/chrome/browser/ash/input_method/native_input_method_engine.cc
index 9b05cda8..1b84333 100644
--- a/chrome/browser/ash/input_method/native_input_method_engine.cc
+++ b/chrome/browser/ash/input_method/native_input_method_engine.cc
@@ -509,7 +509,7 @@
   // If the Mojo pipe disconnection happens in 1000 ms after the service
   // is initialized, we consider it as a failure. Normally it's caused
   // by the Mojo service itself or misconfigured on Chrome OS.
-  if (base::Time::Now() - start < base::TimeDelta::FromMilliseconds(1000)) {
+  if (base::Time::Now() - start < base::Milliseconds(1000)) {
     LogEvent(ImeServiceEvent::kInitFailed);
   } else {
     LogEvent(ImeServiceEvent::kServiceDisconnected);
diff --git a/chrome/browser/ash/input_method/personal_info_suggester_unittest.cc b/chrome/browser/ash/input_method/personal_info_suggester_unittest.cc
index e9261f5..7f289a2 100644
--- a/chrome/browser/ash/input_method/personal_info_suggester_unittest.cc
+++ b/chrome/browser/ash/input_method/personal_info_suggester_unittest.cc
@@ -643,23 +643,23 @@
       ash::prefs::kAccessibilitySpokenFeedbackEnabled, true);
 
   suggester_->Suggest(u"my email is ", 12, 12);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(200));
+  task_environment_.FastForwardBy(base::Milliseconds(200));
   suggestion_handler_->VerifyAnnouncement(
       u"Personal info suggested. Press down arrow to access; escape to "
       u"ignore.");
 
   SendKeyboardEvent(ui::DomCode::ARROW_DOWN);
   SendKeyboardEvent(ui::DomCode::ENTER);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(200));
+  task_environment_.FastForwardBy(base::Milliseconds(200));
   suggestion_handler_->VerifyAnnouncement(u"Suggestion inserted.");
 
   suggester_->Suggest(u"my email is ", 12, 12);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1500));
+  task_environment_.FastForwardBy(base::Milliseconds(1500));
   suggestion_handler_->VerifyAnnouncement(
       u"Personal info suggested. Press down arrow to access; escape to "
       u"ignore.");
   SendKeyboardEvent(ui::DomCode::ESCAPE);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(200));
+  task_environment_.FastForwardBy(base::Milliseconds(200));
   suggestion_handler_->VerifyAnnouncement(u"Suggestion dismissed.");
 }
 
diff --git a/chrome/browser/ash/input_method/textinput_test_helper.cc b/chrome/browser/ash/input_method/textinput_test_helper.cc
index 6e810e4..3cd8935 100644
--- a/chrome/browser/ash/input_method/textinput_test_helper.cc
+++ b/chrome/browser/ash/input_method/textinput_test_helper.cc
@@ -180,7 +180,7 @@
 void TextInputTestHelper::WaitForPassageOfTimeMillis(const int milliseconds) {
   CHECK_EQ(NO_WAIT, waiting_type_);
   waiting_type_ = WAIT_ON_PASSAGE_OF_TIME;
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(milliseconds));
+  base::PlatformThread::Sleep(base::Milliseconds(milliseconds));
   waiting_type_ = NO_WAIT;
 }
 
diff --git a/chrome/browser/ash/input_method/ui/assistive_accessibility_view_unittest.cc b/chrome/browser/ash/input_method/ui/assistive_accessibility_view_unittest.cc
index 5a1c7df0..8a968c1 100644
--- a/chrome/browser/ash/input_method/ui/assistive_accessibility_view_unittest.cc
+++ b/chrome/browser/ash/input_method/ui/assistive_accessibility_view_unittest.cc
@@ -39,7 +39,7 @@
   views::test::AXEventCounter counter(views::AXEventManager::Get());
   EXPECT_EQ(0, counter.GetCount(ax::mojom::Event::kLiveRegionChanged));
   assistive_accessibility_view_->Announce(u"test");
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(200));
+  task_environment()->FastForwardBy(base::Milliseconds(200));
   EXPECT_EQ(1, counter.GetCount(ax::mojom::Event::kLiveRegionChanged));
 }
 
diff --git a/chrome/browser/ash/input_method/ui/infolist_window.cc b/chrome/browser/ash/input_method/ui/infolist_window.cc
index b13f118..7de296b0 100644
--- a/chrome/browser/ash/input_method/ui/infolist_window.cc
+++ b/chrome/browser/ash/input_method/ui/infolist_window.cc
@@ -251,17 +251,15 @@
 }
 
 void InfolistWindow::ShowWithDelay() {
-  show_hide_timer_.Start(
-      FROM_HERE,
-      base::TimeDelta::FromMilliseconds(kInfolistShowDelayMilliSeconds),
-      GetWidget(), &views::Widget::Show);
+  show_hide_timer_.Start(FROM_HERE,
+                         base::Milliseconds(kInfolistShowDelayMilliSeconds),
+                         GetWidget(), &views::Widget::Show);
 }
 
 void InfolistWindow::HideWithDelay() {
-  show_hide_timer_.Start(
-      FROM_HERE,
-      base::TimeDelta::FromMilliseconds(kInfolistHideDelayMilliSeconds),
-      GetWidget(), &views::Widget::Close);
+  show_hide_timer_.Start(FROM_HERE,
+                         base::Milliseconds(kInfolistHideDelayMilliSeconds),
+                         GetWidget(), &views::Widget::Close);
 }
 
 void InfolistWindow::ShowImmediately() {
diff --git a/chrome/browser/ash/input_method/ui/suggestion_accessibility_label.cc b/chrome/browser/ash/input_method/ui/suggestion_accessibility_label.cc
index 6e3b2d4..239682e 100644
--- a/chrome/browser/ash/input_method/ui/suggestion_accessibility_label.cc
+++ b/chrome/browser/ash/input_method/ui/suggestion_accessibility_label.cc
@@ -7,8 +7,7 @@
 namespace ui {
 namespace ime {
 
-constexpr base::TimeDelta kAnnouncementDelayMs =
-    base::TimeDelta::FromMilliseconds(100);
+constexpr base::TimeDelta kAnnouncementDelayMs = base::Milliseconds(100);
 
 SuggestionAccessibilityLabel::SuggestionAccessibilityLabel() = default;
 
diff --git a/chrome/browser/ash/kerberos/kerberos_credentials_manager_test.cc b/chrome/browser/ash/kerberos/kerberos_credentials_manager_test.cc
index 4ce6785..d497496 100644
--- a/chrome/browser/ash/kerberos/kerberos_credentials_manager_test.cc
+++ b/chrome/browser/ash/kerberos/kerberos_credentials_manager_test.cc
@@ -97,7 +97,7 @@
 // A long time delta, used to fast forward the task environment until all
 // pending operations are completed. This value should be equal to the maximum
 // time to delay requests on |kBackoffPolicyForManagedAccounts|.
-const base::TimeDelta kLongTimeDelay = base::TimeDelta::FromMinutes(10);
+const base::TimeDelta kLongTimeDelay = base::Minutes(10);
 
 // Fake observer used to test notifications sent by KerberosCredentialsManager
 // on accounts changes.
diff --git a/chrome/browser/ash/lock_screen_apps/lock_screen_profile_creator_impl_unittest.cc b/chrome/browser/ash/lock_screen_apps/lock_screen_profile_creator_impl_unittest.cc
index cc042a7..61e6f135 100644
--- a/chrome/browser/ash/lock_screen_apps/lock_screen_profile_creator_impl_unittest.cc
+++ b/chrome/browser/ash/lock_screen_apps/lock_screen_profile_creator_impl_unittest.cc
@@ -624,7 +624,7 @@
   ASSERT_EQ(ProfileHelper::GetLockScreenAppProfilePath(),
             profile_manager()->pending_profile_creation()->path());
 
-  tick_clock()->Advance(base::TimeDelta::FromMilliseconds(20));
+  tick_clock()->Advance(base::Milliseconds(20));
 
   ASSERT_TRUE(profile_manager()
                   ->pending_profile_creation()
@@ -633,8 +633,8 @@
   EXPECT_TRUE(callback_run);
 
   histogram_tester->ExpectTimeBucketCount(
-      "Apps.LockScreen.AppsProfile.Creation.Duration",
-      base::TimeDelta::FromMilliseconds(20), 1);
+      "Apps.LockScreen.AppsProfile.Creation.Duration", base::Milliseconds(20),
+      1);
   histogram_tester->ExpectUniqueSample(
       "Apps.LockScreen.AppsProfile.Creation.Success", 1, 1);
 }
@@ -659,7 +659,7 @@
   ASSERT_EQ(ProfileHelper::GetLockScreenAppProfilePath(),
             profile_manager()->pending_profile_creation()->path());
 
-  tick_clock()->Advance(base::TimeDelta::FromMilliseconds(20));
+  tick_clock()->Advance(base::Milliseconds(20));
 
   ASSERT_TRUE(profile_manager()
                   ->pending_profile_creation()
diff --git a/chrome/browser/ash/lock_screen_apps/state_controller_unittest.cc b/chrome/browser/ash/lock_screen_apps/state_controller_unittest.cc
index 3dd1d992..5236df5 100644
--- a/chrome/browser/ash/lock_screen_apps/state_controller_unittest.cc
+++ b/chrome/browser/ash/lock_screen_apps/state_controller_unittest.cc
@@ -431,7 +431,7 @@
     focus_cycler_delegate_ = std::make_unique<TestFocusCyclerDelegate>();
 
     // Advance the clock to have non-null value.
-    tick_clock_.Advance(base::TimeDelta::FromMilliseconds(1));
+    tick_clock_.Advance(base::Milliseconds(1));
 
     state_controller_ = std::make_unique<lock_screen_apps::StateController>();
     state_controller_->SetTrayActionForTesting(
diff --git a/chrome/browser/ash/login/app_mode/kiosk_browsertest.cc b/chrome/browser/ash/login/app_mode/kiosk_browsertest.cc
index 21ab2e7..4d7e9288 100644
--- a/chrome/browser/ash/login/app_mode/kiosk_browsertest.cc
+++ b/chrome/browser/ash/login/app_mode/kiosk_browsertest.cc
@@ -509,7 +509,7 @@
     skip_splash_wait_override_ =
         KioskLaunchController::SkipSplashScreenWaitForTesting();
     network_wait_override_ = KioskLaunchController::SetNetworkWaitForTesting(
-        base::TimeDelta::FromSeconds(kTestNetworkTimeoutSeconds));
+        base::Seconds(kTestNetworkTimeoutSeconds));
 
     OobeBaseTest::SetUp();
   }
@@ -951,8 +951,8 @@
       display_bounds.bottom() - ShelfConfig::Get()->shelf_size() / 2);
   gfx::Point end_point(start_point.x(), start_point.y() - 80);
   ui::test::EventGenerator event_generator(window);
-  event_generator.GestureScrollSequence(
-      start_point, end_point, base::TimeDelta::FromMilliseconds(500), 4);
+  event_generator.GestureScrollSequence(start_point, end_point,
+                                        base::Milliseconds(500), 4);
 
   // The shelf should be still hidden after the gesture.
   EXPECT_FALSE(ShelfTestApi().IsVisible());
diff --git a/chrome/browser/ash/login/app_mode/kiosk_launch_controller.cc b/chrome/browser/ash/login/app_mode/kiosk_launch_controller.cc
index 36d462fd..c57d6a6 100644
--- a/chrome/browser/ash/login/app_mode/kiosk_launch_controller.cc
+++ b/chrome/browser/ash/login/app_mode/kiosk_launch_controller.cc
@@ -39,19 +39,16 @@
 namespace {
 
 // Web Kiosk splash screen minimum show time.
-constexpr base::TimeDelta kKioskSplashScreenMinTime =
-    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kKioskSplashScreenMinTime = base::Seconds(10);
 
 // Time of waiting for the network to be ready to start installation. Can be
 // changed in tests.
-constexpr base::TimeDelta kKioskNetworkWaitTime =
-    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kKioskNetworkWaitTime = base::Seconds(10);
 base::TimeDelta g_network_wait_time = kKioskNetworkWaitTime;
 
 // Time of waiting for the force-installed extension to be ready to start
 // application window. Can be changed in tests.
-constexpr base::TimeDelta kKioskExtensionWaitTime =
-    base::TimeDelta::FromMinutes(2);
+constexpr base::TimeDelta kKioskExtensionWaitTime = base::Minutes(2);
 base::TimeDelta g_extension_wait_time = kKioskExtensionWaitTime;
 
 // Whether we should skip the wait for minimum screen show time.
diff --git a/chrome/browser/ash/login/app_mode/web_kiosk_browsertest.cc b/chrome/browser/ash/login/app_mode/web_kiosk_browsertest.cc
index 44dedc3..ac386513 100644
--- a/chrome/browser/ash/login/app_mode/web_kiosk_browsertest.cc
+++ b/chrome/browser/ash/login/app_mode/web_kiosk_browsertest.cc
@@ -53,8 +53,8 @@
     needs_background_networking_ = true;
     skip_splash_wait_override_ =
         KioskLaunchController::SkipSplashScreenWaitForTesting();
-    network_wait_override_ = KioskLaunchController::SetNetworkWaitForTesting(
-        base::TimeDelta::FromSeconds(0));
+    network_wait_override_ =
+        KioskLaunchController::SetNetworkWaitForTesting(base::Seconds(0));
   }
 
   WebKioskTest(const WebKioskTest&) = delete;
@@ -273,8 +273,8 @@
       display_bounds.bottom() - ShelfConfig::Get()->shelf_size() / 2);
   gfx::Point end_point(start_point.x(), start_point.y() - 80);
   ui::test::EventGenerator event_generator(window);
-  event_generator.GestureScrollSequence(
-      start_point, end_point, base::TimeDelta::FromMilliseconds(500), 4);
+  event_generator.GestureScrollSequence(start_point, end_point,
+                                        base::Milliseconds(500), 4);
 
   // The shelf should be still hidden after the gesture.
   EXPECT_FALSE(ShelfTestApi().IsVisible());
diff --git a/chrome/browser/ash/login/challenge_response_auth_keys_loader.cc b/chrome/browser/ash/login/challenge_response_auth_keys_loader.cc
index ec84b6f..df1463e8 100644
--- a/chrome/browser/ash/login/challenge_response_auth_keys_loader.cc
+++ b/chrome/browser/ash/login/challenge_response_auth_keys_loader.cc
@@ -43,7 +43,7 @@
 namespace {
 
 constexpr base::TimeDelta kDefaultMaximumExtensionLoadWaitingTime =
-    base::TimeDelta::FromSeconds(5);
+    base::Seconds(5);
 
 base::flat_set<std::string> GetLoginScreenPolicyExtensionIds() {
   DCHECK(ProfileHelper::IsSigninProfileInitialized());
diff --git a/chrome/browser/ash/login/chrome_restart_request.cc b/chrome/browser/ash/login/chrome_restart_request.cc
index 7056aae..23f92ef 100644
--- a/chrome/browser/ash/login/chrome_restart_request.cc
+++ b/chrome/browser/ash/login/chrome_restart_request.cc
@@ -325,7 +325,7 @@
   // just kills us so settings may be lost. See http://crosbug.com/13102
   g_browser_process->FlushLocalStateAndReply(
       base::BindOnce(&ChromeRestartRequest::RestartJob, AsWeakPtr()));
-  timer_.Start(FROM_HERE, base::TimeDelta::FromSeconds(3), this,
+  timer_.Start(FROM_HERE, base::Seconds(3), this,
                &ChromeRestartRequest::RestartJob);
 }
 
diff --git a/chrome/browser/ash/login/demo_mode/demo_mode_detector.cc b/chrome/browser/ash/login/demo_mode/demo_mode_detector.cc
index 1e1bc40c..01cd64e3 100644
--- a/chrome/browser/ash/login/demo_mode/demo_mode_detector.cc
+++ b/chrome/browser/ash/login/demo_mode/demo_mode_detector.cc
@@ -21,11 +21,10 @@
 namespace ash {
 
 const base::TimeDelta DemoModeDetector::kDerelictDetectionTimeout =
-    base::TimeDelta::FromHours(8);
-const base::TimeDelta DemoModeDetector::kDerelictIdleTimeout =
-    base::TimeDelta::FromMinutes(5);
+    base::Hours(8);
+const base::TimeDelta DemoModeDetector::kDerelictIdleTimeout = base::Minutes(5);
 const base::TimeDelta DemoModeDetector::kOobeTimerUpdateInterval =
-    base::TimeDelta::FromMinutes(5);
+    base::Minutes(5);
 
 // static
 void DemoModeDetector::RegisterPrefs(PrefRegistrySimple* registry) {
@@ -115,16 +114,14 @@
   DCHECK(cmdline);
 
   PrefService* prefs = g_browser_process->local_state();
-  time_on_oobe_ =
-      base::TimeDelta::FromSeconds(prefs->GetInt64(prefs::kTimeOnOobe));
+  time_on_oobe_ = base::Seconds(prefs->GetInt64(prefs::kTimeOnOobe));
 
   int derelict_detection_timeout;
   if (cmdline->HasSwitch(switches::kDerelictDetectionTimeout) &&
       base::StringToInt(
           cmdline->GetSwitchValueASCII(switches::kDerelictDetectionTimeout),
           &derelict_detection_timeout)) {
-    derelict_detection_timeout_ =
-        base::TimeDelta::FromSeconds(derelict_detection_timeout);
+    derelict_detection_timeout_ = base::Seconds(derelict_detection_timeout);
   } else {
     derelict_detection_timeout_ = kDerelictDetectionTimeout;
   }
@@ -134,8 +131,7 @@
       base::StringToInt(
           cmdline->GetSwitchValueASCII(switches::kDerelictIdleTimeout),
           &derelict_idle_timeout)) {
-    derelict_idle_timeout_ =
-        base::TimeDelta::FromSeconds(derelict_idle_timeout);
+    derelict_idle_timeout_ = base::Seconds(derelict_idle_timeout);
   } else {
     derelict_idle_timeout_ = kDerelictIdleTimeout;
   }
@@ -145,8 +141,7 @@
       base::StringToInt(
           cmdline->GetSwitchValueASCII(switches::kOobeTimerInterval),
           &oobe_timer_update_interval)) {
-    oobe_timer_update_interval_ =
-        base::TimeDelta::FromSeconds(oobe_timer_update_interval);
+    oobe_timer_update_interval_ = base::Seconds(oobe_timer_update_interval);
   } else {
     oobe_timer_update_interval_ = kOobeTimerUpdateInterval;
   }
@@ -154,7 +149,7 @@
   // In case we'd be derelict before our timer is set to trigger, reduce
   // the interval so we check again when we're scheduled to go derelict.
   oobe_timer_update_interval_ =
-      base::clamp(oobe_timer_update_interval_, base::TimeDelta::FromSeconds(0),
+      base::clamp(oobe_timer_update_interval_, base::Seconds(0),
                   derelict_detection_timeout_ - time_on_oobe_);
 }
 
diff --git a/chrome/browser/ash/login/demo_mode/demo_mode_detector_unittest.cc b/chrome/browser/ash/login/demo_mode/demo_mode_detector_unittest.cc
index ad5eccc..a44d5e8 100644
--- a/chrome/browser/ash/login/demo_mode/demo_mode_detector_unittest.cc
+++ b/chrome/browser/ash/login/demo_mode/demo_mode_detector_unittest.cc
@@ -74,8 +74,7 @@
 }
 
 base::TimeDelta DemoModeDetectorTest::GetTimeOnOobePref() {
-  return base::TimeDelta::FromSeconds(
-      local_state_.GetInt64(prefs::kTimeOnOobe));
+  return base::Seconds(local_state_.GetInt64(prefs::kTimeOnOobe));
 }
 
 void DemoModeDetectorTest::SimulateUserActivity() {
@@ -102,7 +101,7 @@
   runner_->FastForwardBy(DemoModeDetector::kDerelictDetectionTimeout);
   // Run for 1 minute less than the idle threshold.
   runner_->FastForwardBy(DemoModeDetector::kDerelictIdleTimeout -
-                         base::TimeDelta::FromMinutes(1));
+                         base::Minutes(1));
 }
 
 // Test to ensure that Demo mode isn't launched after the detector
@@ -116,13 +115,13 @@
   runner_->FastForwardBy(DemoModeDetector::kDerelictIdleTimeout);
 
   // Run for 2 more minutes (less than the idle threshold).
-  runner_->FastForwardBy(base::TimeDelta::FromMinutes(2));
+  runner_->FastForwardBy(base::Minutes(2));
 
   // Simulate a user activity event.
   SimulateUserActivity();
 
   // Run for 3 more minutes (more than the idle threshold).
-  runner_->FastForwardBy(base::TimeDelta::FromMinutes(3));
+  runner_->FastForwardBy(base::Minutes(3));
 
   // Simulate a user activity event.
   SimulateUserActivity();
@@ -185,15 +184,15 @@
 TEST_F(DemoModeDetectorTest,
        DemoModeWillLaunchAfterResumedAndDerelictAndIdleTimeout) {
   // Simulate 1 hour less than the threshold elapsed by setting pref.
-  const auto elapsed_time = DemoModeDetector::kDerelictDetectionTimeout -
-                            base::TimeDelta::FromHours(1);
+  const auto elapsed_time =
+      DemoModeDetector::kDerelictDetectionTimeout - base::Hours(1);
   SetTimeOnOobePref(elapsed_time);
   EXPECT_EQ(GetTimeOnOobePref(), elapsed_time);
 
   StartDemoModeDetection();
 
   // Run another hour to hit the threshold.
-  runner_->FastForwardBy(base::TimeDelta::FromHours(1));
+  runner_->FastForwardBy(base::Hours(1));
 
   // Run through the idle timeout.
   runner_->FastForwardBy(DemoModeDetector::kDerelictIdleTimeout);
diff --git a/chrome/browser/ash/login/demo_mode/demo_mode_resources_remover.cc b/chrome/browser/ash/login/demo_mode/demo_mode_resources_remover.cc
index 043af694..2441dde1 100644
--- a/chrome/browser/ash/login/demo_mode/demo_mode_resources_remover.cc
+++ b/chrome/browser/ash/login/demo_mode/demo_mode_resources_remover.cc
@@ -87,9 +87,9 @@
 }  // namespace
 
 DemoModeResourcesRemover::UsageAccumulationConfig::UsageAccumulationConfig()
-    : resources_removal_threshold(base::TimeDelta::FromHours(48)),
-      update_interval(base::TimeDelta::FromMinutes(5)),
-      idle_threshold(base::TimeDelta::FromSeconds(30)) {}
+    : resources_removal_threshold(base::Hours(48)),
+      update_interval(base::Minutes(5)),
+      idle_threshold(base::Seconds(30)) {}
 
 DemoModeResourcesRemover::UsageAccumulationConfig::UsageAccumulationConfig(
     const base::TimeDelta& resources_removal_threshold,
diff --git a/chrome/browser/ash/login/demo_mode/demo_mode_resources_remover_unittest.cc b/chrome/browser/ash/login/demo_mode/demo_mode_resources_remover_unittest.cc
index dc7820e..f411fb4 100644
--- a/chrome/browser/ash/login/demo_mode/demo_mode_resources_remover_unittest.cc
+++ b/chrome/browser/ash/login/demo_mode/demo_mode_resources_remover_unittest.cc
@@ -411,14 +411,13 @@
       DemoModeResourcesRemover::CreateIfNeeded(&local_state_);
   ASSERT_TRUE(remover.get());
 
-  AdvanceTestTime(base::TimeDelta::FromMinutes(1));
+  AdvanceTestTime(base::Minutes(1));
 
   remover->OverrideTimeForTesting(
-      &test_clock_,
-      DemoModeResourcesRemover::UsageAccumulationConfig(
-          base::TimeDelta::FromSeconds(3) /*resources_removal_threshold*/,
-          base::TimeDelta::FromSeconds(1) /*update_interval*/,
-          base::TimeDelta::FromSeconds(9) /*idle_threshold*/));
+      &test_clock_, DemoModeResourcesRemover::UsageAccumulationConfig(
+                        base::Seconds(3) /*resources_removal_threshold*/,
+                        base::Seconds(1) /*update_interval*/,
+                        base::Seconds(9) /*idle_threshold*/));
 
   AddAndLogInUser(TestUserType::kRegular, remover.get());
   activity_detector_.HandleExternalUserActivity();
@@ -428,7 +427,7 @@
 
   // Advance time so it's longer than removal threshold, but under the idle
   // threshold (so it's not disregarded as idle time).
-  AdvanceTestTime(base::TimeDelta::FromSeconds(4));
+  AdvanceTestTime(base::Seconds(4));
   activity_detector_.HandleExternalUserActivity();
 
   task_environment_.RunUntilIdle();
@@ -441,20 +440,19 @@
       DemoModeResourcesRemover::CreateIfNeeded(&local_state_);
   ASSERT_TRUE(remover.get());
 
-  AdvanceTestTime(base::TimeDelta::FromMinutes(1));
+  AdvanceTestTime(base::Minutes(1));
 
   remover->OverrideTimeForTesting(
-      &test_clock_,
-      DemoModeResourcesRemover::UsageAccumulationConfig(
-          base::TimeDelta::FromSeconds(3) /*resources_removal_threshold*/,
-          base::TimeDelta::FromSeconds(1) /*update_interval*/,
-          base::TimeDelta::FromSeconds(9) /*idle_threshold*/));
+      &test_clock_, DemoModeResourcesRemover::UsageAccumulationConfig(
+                        base::Seconds(3) /*resources_removal_threshold*/,
+                        base::Seconds(1) /*update_interval*/,
+                        base::Seconds(9) /*idle_threshold*/));
 
   activity_detector_.HandleExternalUserActivity();
 
   // Advance time so it's longer than removal threshold, but under the idle
   // threshold (so it's not disregarded as idle time).
-  AdvanceTestTime(base::TimeDelta::FromSeconds(4));
+  AdvanceTestTime(base::Seconds(4));
   activity_detector_.HandleExternalUserActivity();
 
   AddAndLogInUser(TestUserType::kRegular, remover.get());
@@ -471,14 +469,13 @@
       DemoModeResourcesRemover::CreateIfNeeded(&local_state_);
   ASSERT_TRUE(remover.get());
 
-  AdvanceTestTime(base::TimeDelta::FromMinutes(1));
+  AdvanceTestTime(base::Minutes(1));
 
   remover->OverrideTimeForTesting(
-      &test_clock_,
-      DemoModeResourcesRemover::UsageAccumulationConfig(
-          base::TimeDelta::FromSeconds(3) /*resources_removal_threshold*/,
-          base::TimeDelta::FromSeconds(1) /*update_interval*/,
-          base::TimeDelta::FromSeconds(9) /*idle_threshold*/));
+      &test_clock_, DemoModeResourcesRemover::UsageAccumulationConfig(
+                        base::Seconds(3) /*resources_removal_threshold*/,
+                        base::Seconds(1) /*update_interval*/,
+                        base::Seconds(9) /*idle_threshold*/));
 
   AddAndLogInUser(TestUserType::kRegular, remover.get());
   activity_detector_.HandleExternalUserActivity();
@@ -487,14 +484,14 @@
   EXPECT_TRUE(DemoModeResourcesExist());
 
   // Over update interval, but under removal threshold.
-  AdvanceTestTime(base::TimeDelta::FromSeconds(2));
+  AdvanceTestTime(base::Seconds(2));
   activity_detector_.HandleExternalUserActivity();
 
   task_environment_.RunUntilIdle();
   EXPECT_TRUE(DemoModeResourcesExist());
 
   // This should get accumulated time over removal threshold.
-  AdvanceTestTime(base::TimeDelta::FromSeconds(2));
+  AdvanceTestTime(base::Seconds(2));
   activity_detector_.HandleExternalUserActivity();
 
   task_environment_.RunUntilIdle();
@@ -507,14 +504,13 @@
       DemoModeResourcesRemover::CreateIfNeeded(&local_state_);
   ASSERT_TRUE(remover.get());
 
-  AdvanceTestTime(base::TimeDelta::FromMinutes(1));
+  AdvanceTestTime(base::Minutes(1));
 
   remover->OverrideTimeForTesting(
-      &test_clock_,
-      DemoModeResourcesRemover::UsageAccumulationConfig(
-          base::TimeDelta::FromSeconds(8) /*resources_removal_threshold*/,
-          base::TimeDelta::FromSeconds(3) /*update_interval*/,
-          base::TimeDelta::FromSeconds(4) /*idle_threshold*/));
+      &test_clock_, DemoModeResourcesRemover::UsageAccumulationConfig(
+                        base::Seconds(8) /*resources_removal_threshold*/,
+                        base::Seconds(3) /*update_interval*/,
+                        base::Seconds(4) /*idle_threshold*/));
 
   AddAndLogInUser(TestUserType::kRegular, remover.get());
   activity_detector_.HandleExternalUserActivity();
@@ -524,16 +520,16 @@
 
   // Advance to the time just under removal threshold in small increments
   // (within the idle threshold)
-  AdvanceTestTime(base::TimeDelta::FromSeconds(3));
+  AdvanceTestTime(base::Seconds(3));
   activity_detector_.HandleExternalUserActivity();
-  AdvanceTestTime(base::TimeDelta::FromSeconds(3));
+  AdvanceTestTime(base::Seconds(3));
   activity_detector_.HandleExternalUserActivity();
 
   task_environment_.RunUntilIdle();
   EXPECT_TRUE(DemoModeResourcesExist());
 
   // Simulate longer idle period.
-  AdvanceTestTime(base::TimeDelta::FromSeconds(10));
+  AdvanceTestTime(base::Seconds(10));
   activity_detector_.HandleExternalUserActivity();
 
   // The resources should be still be here, as usage amount should not have been
@@ -543,7 +539,7 @@
 
   // Advance time little bit more, so it's over the removal threshold (and over
   // the update interval).
-  AdvanceTestTime(base::TimeDelta::FromSeconds(3));
+  AdvanceTestTime(base::Seconds(3));
   activity_detector_.HandleExternalUserActivity();
 
   task_environment_.RunUntilIdle();
@@ -556,14 +552,13 @@
       DemoModeResourcesRemover::CreateIfNeeded(&local_state_);
   ASSERT_TRUE(remover.get());
 
-  AdvanceTestTime(base::TimeDelta::FromMinutes(1));
+  AdvanceTestTime(base::Minutes(1));
 
   remover->OverrideTimeForTesting(
-      &test_clock_,
-      DemoModeResourcesRemover::UsageAccumulationConfig(
-          base::TimeDelta::FromSeconds(12) /*resources_removal_threshold*/,
-          base::TimeDelta::FromSeconds(7) /*update_interval*/,
-          base::TimeDelta::FromSeconds(5) /*idle_threshold*/));
+      &test_clock_, DemoModeResourcesRemover::UsageAccumulationConfig(
+                        base::Seconds(12) /*resources_removal_threshold*/,
+                        base::Seconds(7) /*update_interval*/,
+                        base::Seconds(5) /*idle_threshold*/));
 
   AddAndLogInUser(TestUserType::kRegular, remover.get());
   activity_detector_.HandleExternalUserActivity();
@@ -574,16 +569,16 @@
   // Advance to the time just under removal threshold in small increments
   // (within the idle threshold), that are under the update interval combined.
   // This will leave unrecorded usage before the idle period.
-  AdvanceTestTime(base::TimeDelta::FromSeconds(3));
+  AdvanceTestTime(base::Seconds(3));
   activity_detector_.HandleExternalUserActivity();
-  AdvanceTestTime(base::TimeDelta::FromSeconds(3));
+  AdvanceTestTime(base::Seconds(3));
   activity_detector_.HandleExternalUserActivity();
 
   task_environment_.RunUntilIdle();
   EXPECT_TRUE(DemoModeResourcesExist());
 
   // Simulate longer idle period.
-  AdvanceTestTime(base::TimeDelta::FromSeconds(10));
+  AdvanceTestTime(base::Seconds(10));
   activity_detector_.HandleExternalUserActivity();
 
   // The resources should be still be here, as usage amount should not have been
@@ -592,9 +587,9 @@
   EXPECT_TRUE(DemoModeResourcesExist());
 
   // Advance time cummulatively over the update period.
-  AdvanceTestTime(base::TimeDelta::FromSeconds(4));
+  AdvanceTestTime(base::Seconds(4));
   activity_detector_.HandleExternalUserActivity();
-  AdvanceTestTime(base::TimeDelta::FromSeconds(3));
+  AdvanceTestTime(base::Seconds(3));
   activity_detector_.HandleExternalUserActivity();
 
   // When combined the accumulated active usage was above the removal threshold.
@@ -608,14 +603,13 @@
       DemoModeResourcesRemover::CreateIfNeeded(&local_state_);
   ASSERT_TRUE(remover.get());
 
-  AdvanceTestTime(base::TimeDelta::FromMinutes(1));
+  AdvanceTestTime(base::Minutes(1));
 
   remover->OverrideTimeForTesting(
-      &test_clock_,
-      DemoModeResourcesRemover::UsageAccumulationConfig(
-          base::TimeDelta::FromSeconds(9) /*resources_removal_threshold*/,
-          base::TimeDelta::FromSeconds(5) /*update_interval*/,
-          base::TimeDelta::FromSeconds(7) /*idle_threshold*/));
+      &test_clock_, DemoModeResourcesRemover::UsageAccumulationConfig(
+                        base::Seconds(9) /*resources_removal_threshold*/,
+                        base::Seconds(5) /*update_interval*/,
+                        base::Seconds(7) /*idle_threshold*/));
 
   AddAndLogInUser(TestUserType::kRegular, remover.get());
   activity_detector_.HandleExternalUserActivity();
@@ -625,9 +619,9 @@
 
   // Advance to the time just under removal threshold in small increments, but
   // with total over the update interval.
-  AdvanceTestTime(base::TimeDelta::FromSeconds(3));
+  AdvanceTestTime(base::Seconds(3));
   activity_detector_.HandleExternalUserActivity();
-  AdvanceTestTime(base::TimeDelta::FromSeconds(3));
+  AdvanceTestTime(base::Seconds(3));
   activity_detector_.HandleExternalUserActivity();
 
   task_environment_.RunUntilIdle();
@@ -635,14 +629,14 @@
 
   // Advance time so total is over the remova threshold, but in increment under
   // the update interval.
-  AdvanceTestTime(base::TimeDelta::FromSeconds(3));
+  AdvanceTestTime(base::Seconds(3));
   activity_detector_.HandleExternalUserActivity();
 
   task_environment_.RunUntilIdle();
   EXPECT_TRUE(DemoModeResourcesExist());
 
   // Simulate longer idle period.
-  AdvanceTestTime(base::TimeDelta::FromSeconds(10));
+  AdvanceTestTime(base::Seconds(10));
   activity_detector_.HandleExternalUserActivity();
 
   // Activity after the idle period ended should have flushed previous pending
@@ -657,31 +651,30 @@
       DemoModeResourcesRemover::CreateIfNeeded(&local_state_);
   ASSERT_TRUE(remover.get());
 
-  AdvanceTestTime(base::TimeDelta::FromMinutes(1));
+  AdvanceTestTime(base::Minutes(1));
 
   remover->OverrideTimeForTesting(
-      &test_clock_,
-      DemoModeResourcesRemover::UsageAccumulationConfig(
-          base::TimeDelta::FromSeconds(3) /*resources_removal_threshold*/,
-          base::TimeDelta::FromSeconds(1) /*update_interval*/,
-          base::TimeDelta::FromSeconds(9) /*idle_threshold*/));
+      &test_clock_, DemoModeResourcesRemover::UsageAccumulationConfig(
+                        base::Seconds(3) /*resources_removal_threshold*/,
+                        base::Seconds(1) /*update_interval*/,
+                        base::Seconds(9) /*idle_threshold*/));
 
   AddAndLogInUser(TestUserType::kRegular, remover.get());
 
   // Test that local state is not updated on each detected user activity.
-  AdvanceTestTime(base::TimeDelta::FromMilliseconds(300));
+  AdvanceTestTime(base::Milliseconds(300));
   activity_detector_.HandleExternalUserActivity();
   EXPECT_EQ(0, local_state_.GetInteger(kAccumulatedUsagePref));
 
-  AdvanceTestTime(base::TimeDelta::FromMilliseconds(300));
+  AdvanceTestTime(base::Milliseconds(300));
   activity_detector_.HandleExternalUserActivity();
   EXPECT_EQ(0, local_state_.GetInteger(kAccumulatedUsagePref));
 
-  AdvanceTestTime(base::TimeDelta::FromMilliseconds(300));
+  AdvanceTestTime(base::Milliseconds(300));
   activity_detector_.HandleExternalUserActivity();
   EXPECT_EQ(0, local_state_.GetInteger(kAccumulatedUsagePref));
 
-  AdvanceTestTime(base::TimeDelta::FromMilliseconds(300));
+  AdvanceTestTime(base::Milliseconds(300));
   activity_detector_.HandleExternalUserActivity();
   EXPECT_EQ(1, local_state_.GetInteger(kAccumulatedUsagePref));
 }
@@ -692,14 +685,13 @@
       DemoModeResourcesRemover::CreateIfNeeded(&local_state_);
   ASSERT_TRUE(remover.get());
 
-  AdvanceTestTime(base::TimeDelta::FromMinutes(1));
+  AdvanceTestTime(base::Minutes(1));
 
   remover->OverrideTimeForTesting(
-      &test_clock_,
-      DemoModeResourcesRemover::UsageAccumulationConfig(
-          base::TimeDelta::FromSeconds(3) /*resources_removal_threshold*/,
-          base::TimeDelta::FromSeconds(1) /*update_interval*/,
-          base::TimeDelta::FromSeconds(9) /*idle_threshold*/));
+      &test_clock_, DemoModeResourcesRemover::UsageAccumulationConfig(
+                        base::Seconds(3) /*resources_removal_threshold*/,
+                        base::Seconds(1) /*update_interval*/,
+                        base::Seconds(9) /*idle_threshold*/));
 
   AddAndLogInUser(TestUserType::kRegular, remover.get());
   activity_detector_.HandleExternalUserActivity();
@@ -708,7 +700,7 @@
   EXPECT_TRUE(DemoModeResourcesExist());
 
   // Over update interval, but under removal threshold.
-  AdvanceTestTime(base::TimeDelta::FromSeconds(2));
+  AdvanceTestTime(base::Seconds(2));
   activity_detector_.HandleExternalUserActivity();
 
   task_environment_.RunUntilIdle();
@@ -718,15 +710,14 @@
   remover = DemoModeResourcesRemover::CreateIfNeeded(&local_state_);
   ASSERT_TRUE(remover.get());
   remover->OverrideTimeForTesting(
-      &test_clock_,
-      DemoModeResourcesRemover::UsageAccumulationConfig(
-          base::TimeDelta::FromSeconds(3) /*resources_removal_threshold*/,
-          base::TimeDelta::FromSeconds(1) /*update_interval*/,
-          base::TimeDelta::FromSeconds(9) /*idle_threshold*/));
+      &test_clock_, DemoModeResourcesRemover::UsageAccumulationConfig(
+                        base::Seconds(3) /*resources_removal_threshold*/,
+                        base::Seconds(1) /*update_interval*/,
+                        base::Seconds(9) /*idle_threshold*/));
   AddAndLogInUser(TestUserType::kRegularSecond, remover.get());
 
   // This should get accumulated time over removal threshold.
-  AdvanceTestTime(base::TimeDelta::FromSeconds(2));
+  AdvanceTestTime(base::Seconds(2));
   activity_detector_.HandleExternalUserActivity();
 
   task_environment_.RunUntilIdle();
@@ -740,14 +731,13 @@
       DemoModeResourcesRemover::CreateIfNeeded(&local_state_);
   ASSERT_TRUE(remover.get());
 
-  AdvanceTestTime(base::TimeDelta::FromMinutes(1));
+  AdvanceTestTime(base::Minutes(1));
 
   remover->OverrideTimeForTesting(
-      &test_clock_,
-      DemoModeResourcesRemover::UsageAccumulationConfig(
-          base::TimeDelta::FromSeconds(4) /*resources_removal_threshold*/,
-          base::TimeDelta::FromSeconds(2) /*update_interval*/,
-          base::TimeDelta::FromSeconds(9) /*idle_threshold*/));
+      &test_clock_, DemoModeResourcesRemover::UsageAccumulationConfig(
+                        base::Seconds(4) /*resources_removal_threshold*/,
+                        base::Seconds(2) /*update_interval*/,
+                        base::Seconds(9) /*idle_threshold*/));
 
   AddAndLogInUser(TestUserType::kRegular, remover.get());
   activity_detector_.HandleExternalUserActivity();
@@ -756,7 +746,7 @@
   EXPECT_TRUE(DemoModeResourcesExist());
 
   // Over update interval, but under removal threshold.
-  AdvanceTestTime(base::TimeDelta::FromSeconds(3));
+  AdvanceTestTime(base::Seconds(3));
   activity_detector_.HandleExternalUserActivity();
 
   task_environment_.RunUntilIdle();
@@ -764,7 +754,7 @@
 
   // This is under update interval, but should get accumulated time over
   // removal threshold.
-  AdvanceTestTime(base::TimeDelta::FromSeconds(1));
+  AdvanceTestTime(base::Seconds(1));
   activity_detector_.HandleExternalUserActivity();
 
   remover.reset();
@@ -773,11 +763,10 @@
   // removal.
   remover = DemoModeResourcesRemover::CreateIfNeeded(&local_state_);
   remover->OverrideTimeForTesting(
-      &test_clock_,
-      DemoModeResourcesRemover::UsageAccumulationConfig(
-          base::TimeDelta::FromSeconds(4) /*resources_removal_threshold*/,
-          base::TimeDelta::FromSeconds(2) /*update_interval*/,
-          base::TimeDelta::FromSeconds(9) /*idle_threshold*/));
+      &test_clock_, DemoModeResourcesRemover::UsageAccumulationConfig(
+                        base::Seconds(4) /*resources_removal_threshold*/,
+                        base::Seconds(2) /*update_interval*/,
+                        base::Seconds(9) /*idle_threshold*/));
   AddAndLogInUser(TestUserType::kRegular, remover.get());
 
   task_environment_.RunUntilIdle();
@@ -893,18 +882,17 @@
       DemoModeResourcesRemover::CreateIfNeeded(&local_state_);
   ASSERT_TRUE(remover.get());
 
-  AdvanceTestTime(base::TimeDelta::FromMinutes(1));
+  AdvanceTestTime(base::Minutes(1));
 
   remover->OverrideTimeForTesting(
-      &test_clock_,
-      DemoModeResourcesRemover::UsageAccumulationConfig(
-          base::TimeDelta::FromSeconds(4) /*resources_removal_threshold*/,
-          base::TimeDelta::FromSeconds(2) /*update_interval*/,
-          base::TimeDelta::FromSeconds(9) /*idle_threshold*/));
+      &test_clock_, DemoModeResourcesRemover::UsageAccumulationConfig(
+                        base::Seconds(4) /*resources_removal_threshold*/,
+                        base::Seconds(2) /*update_interval*/,
+                        base::Seconds(9) /*idle_threshold*/));
 
   AddAndLogInUser(TestUserType::kPublicAccount, remover.get());
 
-  AdvanceTestTime(base::TimeDelta::FromSeconds(5));
+  AdvanceTestTime(base::Seconds(5));
 
   task_environment_.RunUntilIdle();
   EXPECT_TRUE(DemoModeResourcesExist());
diff --git a/chrome/browser/ash/login/demo_mode/demo_session.cc b/chrome/browser/ash/login/demo_mode/demo_session.cc
index 921237d07..2a162bb 100644
--- a/chrome/browser/ash/login/demo_mode/demo_session.cc
+++ b/chrome/browser/ash/login/demo_mode/demo_session.cc
@@ -58,8 +58,7 @@
 
 // The splash screen should be removed either when this timeout passes or the
 // screensaver app is shown, whichever comes first.
-constexpr base::TimeDelta kRemoveSplashScreenTimeout =
-    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kRemoveSplashScreenTimeout = base::Seconds(10);
 
 // Global DemoSession instance.
 DemoSession* g_demo_session = nullptr;
diff --git a/chrome/browser/ash/login/demo_mode/demo_setup_browsertest.cc b/chrome/browser/ash/login/demo_mode/demo_setup_browsertest.cc
index f47bf1d..91064dc 100644
--- a/chrome/browser/ash/login/demo_mode/demo_setup_browsertest.cc
+++ b/chrome/browser/ash/login/demo_mode/demo_setup_browsertest.cc
@@ -438,8 +438,7 @@
 
   // Advance time to make interval in between taps longer than expected by
   // multi-tap gesture detector.
-  SetFakeTimeForMultiTapDetector(kFakeTime +
-                                 base::TimeDelta::FromMilliseconds(500));
+  SetFakeTimeForMultiTapDetector(kFakeTime + base::Milliseconds(500));
 
   MultiTapOobeContainer(5);
   IsConfirmationDialogHidden();
diff --git a/chrome/browser/ash/login/easy_unlock/easy_unlock_service.cc b/chrome/browser/ash/login/easy_unlock/easy_unlock_service.cc
index 0495f22..b9c3b7a 100644
--- a/chrome/browser/ash/login/easy_unlock/easy_unlock_service.cc
+++ b/chrome/browser/ash/login/easy_unlock/easy_unlock_service.cc
@@ -105,7 +105,7 @@
         FROM_HERE,
         base::BindOnce(&PowerMonitor::ResetWakingUp,
                        weak_ptr_factory_.GetWeakPtr()),
-        base::TimeDelta::FromSeconds(5));
+        base::Seconds(5));
     service_->OnSuspendDone();
     service_->UpdateAppState();
     // Note that `this` may get deleted after `UpdateAppState` is called.
diff --git a/chrome/browser/ash/login/easy_unlock/easy_unlock_service_signin.cc b/chrome/browser/ash/login/easy_unlock/easy_unlock_service_signin.cc
index 0504f5c7..2a116ce 100644
--- a/chrome/browser/ash/login/easy_unlock/easy_unlock_service_signin.cc
+++ b/chrome/browser/ash/login/easy_unlock/easy_unlock_service_signin.cc
@@ -90,7 +90,7 @@
       FROM_HERE,
       base::BindOnce(&LoadDataForUser, account_id, next_backoff_ms,
                      std::move(callback)),
-      base::TimeDelta::FromMilliseconds(next_backoff_ms));
+      base::Milliseconds(next_backoff_ms));
 }
 
 // Loads device data list associated with the user's Easy unlock keys.
diff --git a/chrome/browser/ash/login/easy_unlock/easy_unlock_tpm_key_manager.cc b/chrome/browser/ash/login/easy_unlock/easy_unlock_tpm_key_manager.cc
index 333f2a5e..01b41c17 100644
--- a/chrome/browser/ash/login/easy_unlock/easy_unlock_tpm_key_manager.cc
+++ b/chrome/browser/ash/login/easy_unlock/easy_unlock_tpm_key_manager.cc
@@ -254,7 +254,7 @@
       base::BindOnce(&EasyUnlockTpmKeyManager::OnTpmKeyCreated,
                      get_tpm_slot_weak_ptr_factory_.GetWeakPtr(),
                      std::string()),
-      base::TimeDelta::FromMilliseconds(timeout_ms));
+      base::Milliseconds(timeout_ms));
   return true;
 }
 
diff --git a/chrome/browser/ash/login/enrollment/auto_enrollment_controller.cc b/chrome/browser/ash/login/enrollment/auto_enrollment_controller.cc
index 74f31ad8..5534073 100644
--- a/chrome/browser/ash/login/enrollment/auto_enrollment_controller.cc
+++ b/chrome/browser/ash/login/enrollment/auto_enrollment_controller.cc
@@ -77,14 +77,13 @@
 // be too short, because one of the steps `AutoEnrollmentController` performs -
 // downloading identifier hash buckets - can be non-negligible, especially on 2G
 // connections.
-constexpr base::TimeDelta kSafeguardTimeout = base::TimeDelta::FromSeconds(90);
+constexpr base::TimeDelta kSafeguardTimeout = base::Seconds(90);
 
 // Maximum time to wait for time sync before forcing a decision on whether
 // Initial Enrollment should be performed. This corresponds to at least seven
 // TCP retransmissions attempts to the remote server used to update the system
 // clock.
-constexpr base::TimeDelta kSystemClockSyncWaitTimeout =
-    base::TimeDelta::FromSeconds(45);
+constexpr base::TimeDelta kSystemClockSyncWaitTimeout = base::Seconds(45);
 
 // A callback that will be invoked when the system clock has been synchronized,
 // or if system clock synchronization has failed.
diff --git a/chrome/browser/ash/login/enrollment/enrollment_screen.cc b/chrome/browser/ash/login/enrollment/enrollment_screen.cc
index 77103ce6..f0f675e 100644
--- a/chrome/browser/ash/login/enrollment/enrollment_screen.cc
+++ b/chrome/browser/ash/login/enrollment/enrollment_screen.cc
@@ -47,10 +47,10 @@
 // Do not change the UMA histogram parameters without renaming the histograms!
 #define UMA_ENROLLMENT_TIME(histogram_name, elapsed_timer)                   \
   do {                                                                       \
-    UMA_HISTOGRAM_CUSTOM_TIMES(                                              \
-        (histogram_name), (elapsed_timer)->Elapsed(),                        \
-        base::TimeDelta::FromMilliseconds(100) /* min */,                    \
-        base::TimeDelta::FromMinutes(15) /* max */, 100 /* bucket_count */); \
+    UMA_HISTOGRAM_CUSTOM_TIMES((histogram_name), (elapsed_timer)->Elapsed(), \
+                               base::Milliseconds(100) /* min */,            \
+                               base::Minutes(15) /* max */,                  \
+                               100 /* bucket_count */);                      \
   } while (0)
 
 const char* const kMetricEnrollmentTimeCancel =
diff --git a/chrome/browser/ash/login/enrollment/enrollment_screen_unittest.cc b/chrome/browser/ash/login/enrollment/enrollment_screen_unittest.cc
index 4255e05..f6684799 100644
--- a/chrome/browser/ash/login/enrollment/enrollment_screen_unittest.cc
+++ b/chrome/browser/ash/login/enrollment/enrollment_screen_unittest.cc
@@ -199,7 +199,7 @@
     enrollment_screen_->Show(wizard_context_.get());
 
     // Fast forward time by 1 minute.
-    FastForwardTime(base::TimeDelta::FromMinutes(1));
+    FastForwardTime(base::Minutes(1));
 
     // Check that we have retried 4 times.
     EXPECT_EQ(enrollment_screen_->num_retries_, 4);
@@ -264,10 +264,10 @@
       FROM_HERE,
       base::BindOnce(&EnrollmentScreen::OnRetry,
                      enrollment_screen_->weak_ptr_factory_.GetWeakPtr()),
-      base::TimeDelta::FromSeconds(30));
+      base::Seconds(30));
 
   // Fast forward time by 1 minute.
-  FastForwardTime(base::TimeDelta::FromMinutes(1));
+  FastForwardTime(base::Minutes(1));
 
   // Check that the number of retries is still 4.
   EXPECT_EQ(enrollment_screen_->num_retries_, 4);
@@ -283,7 +283,7 @@
   enrollment_screen_->Show(wizard_context_.get());
 
   // Fast forward time by 1 minute.
-  FastForwardTime(base::TimeDelta::FromMinutes(1));
+  FastForwardTime(base::Minutes(1));
 
   // Check that we do not retry.
   EXPECT_EQ(enrollment_screen_->num_retries_, 0);
diff --git a/chrome/browser/ash/login/enterprise_user_session_metrics.cc b/chrome/browser/ash/login/enterprise_user_session_metrics.cc
index c784e19..f6935c41 100644
--- a/chrome/browser/ash/login/enterprise_user_session_metrics.cc
+++ b/chrome/browser/ash/login/enterprise_user_session_metrics.cc
@@ -123,15 +123,14 @@
   // (i.e. every 10 minute). Note that sparse histogram is used here. It is
   // important to limit the number of buckets to something reasonable.
   base::UmaHistogramSparse(
-      metric_name,
-      GetMinutesToReport(session_length, 10, base::TimeDelta::FromHours(24)));
+      metric_name, GetMinutesToReport(session_length, 10, base::Hours(24)));
 
   if (DemoSession::IsDeviceInDemoMode()) {
     // Demo mode sessions will have shorter durations. Report session length
     // rounded down to the nearest minute, up to two hours.
     base::UmaHistogramSparse(
         "DemoMode.SessionLength",
-        GetMinutesToReport(session_length, 1, base::TimeDelta::FromHours(2)));
+        GetMinutesToReport(session_length, 1, base::Hours(2)));
   }
 }
 
diff --git a/chrome/browser/ash/login/enterprise_user_session_metrics_unittest.cc b/chrome/browser/ash/login/enterprise_user_session_metrics_unittest.cc
index b4f29f9..73b0991 100644
--- a/chrome/browser/ash/login/enterprise_user_session_metrics_unittest.cc
+++ b/chrome/browser/ash/login/enterprise_user_session_metrics_unittest.cc
@@ -134,8 +134,7 @@
     SCOPED_TRACE("");
     base::HistogramTester histogram_tester;
     enterprise_user_session_metrics::StoreSessionLength(
-        user_manager::UserType::USER_TYPE_PUBLIC_ACCOUNT,
-        base::TimeDelta::FromMinutes(25));
+        user_manager::UserType::USER_TYPE_PUBLIC_ACCOUNT, base::Minutes(25));
     enterprise_user_session_metrics::RecordStoredSessionLength();
 
     // Time is rounded down to the nearest 10.
@@ -152,8 +151,7 @@
     // Test with a regular user session.
     base::HistogramTester histogram_tester;
     enterprise_user_session_metrics::StoreSessionLength(
-        user_manager::UserType::USER_TYPE_REGULAR,
-        base::TimeDelta::FromMinutes(149));
+        user_manager::UserType::USER_TYPE_REGULAR, base::Minutes(149));
     enterprise_user_session_metrics::RecordStoredSessionLength();
     histogram_tester.ExpectUniqueSample(
         "Enterprise.RegularUserSession.SessionLength", 140, 1);
@@ -167,14 +165,13 @@
     SCOPED_TRACE("");
     base::HistogramTester histogram_tester;
     enterprise_user_session_metrics::StoreSessionLength(
-        user_manager::UserType::USER_TYPE_REGULAR,
-        base::TimeDelta::FromDays(10));
+        user_manager::UserType::USER_TYPE_REGULAR, base::Days(10));
     enterprise_user_session_metrics::RecordStoredSessionLength();
 
     // Reported length is capped at 24 hours.
     histogram_tester.ExpectUniqueSample(
         "Enterprise.RegularUserSession.SessionLength",
-        base::TimeDelta::FromHours(24).InMinutes(), 1);
+        base::Hours(24).InMinutes(), 1);
 
     // No other session length metrics are recorded.
     histogram_tester.ExpectTotalCount("Enterprise.PublicSession.SessionLength",
@@ -204,7 +201,7 @@
     base::HistogramTester histogram_tester;
     enterprise_user_session_metrics::StoreSessionLength(
         user_manager::UserType::USER_TYPE_PUBLIC_ACCOUNT,
-        base::TimeDelta::FromSeconds(25 * 60 + 59));
+        base::Seconds(25 * 60 + 59));
     enterprise_user_session_metrics::RecordStoredSessionLength();
 
     // Time is rounded down to the nearest 10 minutes.
@@ -219,18 +216,17 @@
     SCOPED_TRACE("");
     base::HistogramTester histogram_tester;
     enterprise_user_session_metrics::StoreSessionLength(
-        user_manager::UserType::USER_TYPE_PUBLIC_ACCOUNT,
-        base::TimeDelta::FromDays(10));
+        user_manager::UserType::USER_TYPE_PUBLIC_ACCOUNT, base::Days(10));
     enterprise_user_session_metrics::RecordStoredSessionLength();
 
     // Reported length is capped at 24 hours.
     histogram_tester.ExpectUniqueSample(
-        "Enterprise.PublicSession.SessionLength",
-        base::TimeDelta::FromHours(24).InMinutes(), 1);
+        "Enterprise.PublicSession.SessionLength", base::Hours(24).InMinutes(),
+        1);
 
     // Demo session length is capped at 2 hours because demo sessions are short.
-    histogram_tester.ExpectUniqueSample(
-        "DemoMode.SessionLength", base::TimeDelta::FromHours(2).InMinutes(), 1);
+    histogram_tester.ExpectUniqueSample("DemoMode.SessionLength",
+                                        base::Hours(2).InMinutes(), 1);
   }
   {
     SCOPED_TRACE("");
diff --git a/chrome/browser/ash/login/error_screen_browsertest.cc b/chrome/browser/ash/login/error_screen_browsertest.cc
index 2d62d37..f34b153 100644
--- a/chrome/browser/ash/login/error_screen_browsertest.cc
+++ b/chrome/browser/ash/login/error_screen_browsertest.cc
@@ -266,8 +266,8 @@
 
     skip_splash_wait_override_ =
         KioskLaunchController::SkipSplashScreenWaitForTesting();
-    network_wait_override_ = KioskLaunchController::SetNetworkWaitForTesting(
-        base::TimeDelta::FromSeconds(0));
+    network_wait_override_ =
+        KioskLaunchController::SetNetworkWaitForTesting(base::Seconds(0));
 
     AddKioskAppToDevicePolicy();
 
diff --git a/chrome/browser/ash/login/error_screens_histogram_helper.cc b/chrome/browser/ash/login/error_screens_histogram_helper.cc
index 08b814f..402c174 100644
--- a/chrome/browser/ash/login/error_screens_histogram_helper.cc
+++ b/chrome/browser/ash/login/error_screens_histogram_helper.cc
@@ -60,8 +60,8 @@
   // This comes from UMA_HISTOGRAM_MEDIUM_TIMES macros. Can't use it because of
   // non const histogram name.
   base::HistogramBase* histogram = base::Histogram::FactoryTimeGet(
-      histogram_name, base::TimeDelta::FromMilliseconds(kTimeMinInMS),
-      base::TimeDelta::FromMinutes(kTimeMaxInMinutes), kTimeBucketCount,
+      histogram_name, base::Milliseconds(kTimeMinInMS),
+      base::Minutes(kTimeMaxInMinutes), kTimeBucketCount,
       base::HistogramBase::kUmaTargetedHistogramFlag);
 
   histogram->AddTime(time_delta);
diff --git a/chrome/browser/ash/login/error_screens_histogram_helper_unittest.cc b/chrome/browser/ash/login/error_screens_histogram_helper_unittest.cc
index 89263f8..d435aab5 100644
--- a/chrome/browser/ash/login/error_screens_histogram_helper_unittest.cc
+++ b/chrome/browser/ash/login/error_screens_histogram_helper_unittest.cc
@@ -75,7 +75,7 @@
   second_helper_->OnScreenShow();
   base::Time now = base::Time::Now();
   helper_->OnErrorShowTime(NetworkError::ERROR_STATE_PORTAL, now);
-  now += base::TimeDelta::FromMilliseconds(1000);
+  now += base::Milliseconds(1000);
   helper_->OnErrorHideTime(now);
   helper_.reset();
   histograms_.ExpectUniqueSample("OOBE.ErrorScreensTime.TestScreen.Portal",
@@ -89,11 +89,11 @@
   second_helper_->OnScreenShow();
   base::Time now = base::Time::Now();
   helper_->OnErrorShowTime(NetworkError::ERROR_STATE_PROXY, now);
-  now += base::TimeDelta::FromMilliseconds(1000);
+  now += base::Milliseconds(1000);
   helper_->OnErrorHideTime(now);
-  now += base::TimeDelta::FromMilliseconds(1000);
+  now += base::Milliseconds(1000);
   helper_->OnErrorShowTime(NetworkError::ERROR_STATE_PORTAL, now);
-  now += base::TimeDelta::FromMilliseconds(1000);
+  now += base::Milliseconds(1000);
   helper_->OnErrorHideTime(now);
   helper_.reset();
   histograms_.ExpectUniqueSample("OOBE.ErrorScreensTime.TestScreen.Portal",
@@ -107,9 +107,9 @@
   second_helper_->OnScreenShow();
   base::Time now = base::Time::Now();
   helper_->OnErrorShowTime(NetworkError::ERROR_STATE_PROXY, now);
-  now += base::TimeDelta::FromMilliseconds(1000);
+  now += base::Milliseconds(1000);
   helper_->OnErrorShowTime(NetworkError::ERROR_STATE_PORTAL, now);
-  now += base::TimeDelta::FromMilliseconds(1000);
+  now += base::Milliseconds(1000);
   helper_->OnErrorHideTime(now);
   helper_.reset();
   histograms_.ExpectUniqueSample("OOBE.ErrorScreensTime.TestScreen.Portal",
diff --git a/chrome/browser/ash/login/existing_user_controller.cc b/chrome/browser/ash/login/existing_user_controller.cc
index 88f4c52a..000a7e8 100644
--- a/chrome/browser/ash/login/existing_user_controller.cc
+++ b/chrome/browser/ash/login/existing_user_controller.cc
@@ -516,7 +516,7 @@
   VLOG(1) << "Authentication was entered manually, possibly for proxyauth.";
   base::SequencedTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TransferHttpAuthCaches),
-      base::TimeDelta::FromMilliseconds(kAuthCacheTransferDelayMs));
+      base::Milliseconds(kAuthCacheTransferDelayMs));
 }
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -831,7 +831,7 @@
         base::BindOnce(&SessionTerminationManager::StopSession,
                        base::Unretained(SessionTerminationManager::Get()),
                        login_manager::SessionStopReason::OWNER_REQUIRED),
-        base::TimeDelta::FromMilliseconds(kSafeModeRestartUiDelayMs));
+        base::Milliseconds(kSafeModeRestartUiDelayMs));
   } else if (failure.reason() == AuthFailure::TPM_ERROR) {
     ShowTPMError();
   } else if (failure.reason() == AuthFailure::TPM_UPDATE_REQUIRED) {
@@ -1461,7 +1461,7 @@
   VLOG(2) << "Public session autologin will be fired in " << auto_login_delay_
           << "ms";
   auto_login_timer_->Start(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(auto_login_delay_),
+      FROM_HERE, base::Milliseconds(auto_login_delay_),
       base::BindOnce(&ExistingUserController::OnPublicSessionAutoLoginTimerFire,
                      weak_factory_.GetWeakPtr()));
 }
diff --git a/chrome/browser/ash/login/existing_user_controller_browsertest.cc b/chrome/browser/ash/login/existing_user_controller_browsertest.cc
index 5933d04..1c32764 100644
--- a/chrome/browser/ash/login/existing_user_controller_browsertest.cc
+++ b/chrome/browser/ash/login/existing_user_controller_browsertest.cc
@@ -621,8 +621,7 @@
   // Wait for the timer to fire.
   base::RunLoop runner;
   base::OneShotTimer timer;
-  timer.Start(FROM_HERE,
-              base::TimeDelta::FromMilliseconds(kAutoLoginShortDelay + 1),
+  timer.Start(FROM_HERE, base::Milliseconds(kAutoLoginShortDelay + 1),
               runner.QuitClosure());
   runner.Run();
 
diff --git a/chrome/browser/ash/login/existing_user_controller_forced_online_auth_unittest.cc b/chrome/browser/ash/login/existing_user_controller_forced_online_auth_unittest.cc
index ec0b61f..e59e779b9 100644
--- a/chrome/browser/ash/login/existing_user_controller_forced_online_auth_unittest.cc
+++ b/chrome/browser/ash/login/existing_user_controller_forced_online_auth_unittest.cc
@@ -36,8 +36,7 @@
 const char kSamlToken1[] = "saml-token-1";
 const char kSamlToken2[] = "saml-token-2";
 
-constexpr base::TimeDelta kLoginOnlineShortDelay =
-    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kLoginOnlineShortDelay = base::Seconds(10);
 
 }  // namespace
 
diff --git a/chrome/browser/ash/login/lock/fingerprint_unlock_browsertest.cc b/chrome/browser/ash/login/lock/fingerprint_unlock_browsertest.cc
index 208bb93..fa1c0dd 100644
--- a/chrome/browser/ash/login/lock/fingerprint_unlock_browsertest.cc
+++ b/chrome/browser/ash/login/lock/fingerprint_unlock_browsertest.cc
@@ -218,14 +218,12 @@
 
 IN_PROC_BROWSER_TEST_F(FingerprintUnlockTest, FingerprintNotTimedOutTest) {
   base::TimeDelta expiration_time = GetExpirationTime();
-  ShowLockScreenAndAdvanceTime(expiration_time / 2,
-                               base::TimeDelta::FromSeconds(0));
+  ShowLockScreenAndAdvanceTime(expiration_time / 2, base::Seconds(0));
 }
 
 IN_PROC_BROWSER_TEST_F(FingerprintUnlockTest, FingerprintTimedOutTest) {
   base::TimeDelta expiration_time = GetExpirationTime();
-  ShowLockScreenAndAdvanceTime(expiration_time,
-                               base::TimeDelta::FromSeconds(0));
+  ShowLockScreenAndAdvanceTime(expiration_time, base::Seconds(0));
 }
 
 IN_PROC_BROWSER_TEST_F(FingerprintUnlockTest, TimeoutIncludesSuspendedTime) {
diff --git a/chrome/browser/ash/login/lock/screen_locker_browsertest.cc b/chrome/browser/ash/login/lock/screen_locker_browsertest.cc
index 5e27392..17e198c 100644
--- a/chrome/browser/ash/login/lock/screen_locker_browsertest.cc
+++ b/chrome/browser/ash/login/lock/screen_locker_browsertest.cc
@@ -208,8 +208,7 @@
   ScreenLocker::default_screen_locker()->TemporarilyDisableAuthForUser(
       user_manager::StubAccountId(),
       AuthDisabledData(AuthDisabledReason::kTimeWindowLimit,
-                       base::Time::Now() + base::TimeDelta::FromHours(1),
-                       base::TimeDelta::FromHours(1),
+                       base::Time::Now() + base::Hours(1), base::Hours(1),
                        true /*disable_lock_screen_media*/));
 
   // Try to authenticate with password.
@@ -246,8 +245,7 @@
   ScreenLocker::default_screen_locker()->TemporarilyDisableAuthForUser(
       user_manager::StubAccountId(),
       AuthDisabledData(AuthDisabledReason::kTimeUsageLimit,
-                       base::Time::Now() + base::TimeDelta::FromHours(1),
-                       base::TimeDelta::FromHours(3),
+                       base::Time::Now() + base::Hours(1), base::Hours(3),
                        true /*disable_lock_screen_media*/));
 
   // Try to authenticate with fingerprint.
diff --git a/chrome/browser/ash/login/login_constants.h b/chrome/browser/ash/login/login_constants.h
index 2cf151b..b552dbc 100644
--- a/chrome/browser/ash/login/login_constants.h
+++ b/chrome/browser/ash/login/login_constants.h
@@ -26,8 +26,7 @@
 
 constexpr int kDefaultGaiaOfflineSigninTimeLimitDays =
     kOfflineSigninTimeLimitNotSet;
-constexpr int kDefaultSAMLOfflineSigninTimeLimit =
-    base::TimeDelta::FromDays(14).InSeconds();
+constexpr int kDefaultSAMLOfflineSigninTimeLimit = base::Days(14).InSeconds();
 
 constexpr int kDefaultGaiaLockScreenOfflineSigninTimeLimitDays =
     kLockScreenOfflineSigninTimeLimitDaysMatchLogin;
diff --git a/chrome/browser/ash/login/onboarding_user_activity_counter.cc b/chrome/browser/ash/login/onboarding_user_activity_counter.cc
index d9a4058b..d58a946 100644
--- a/chrome/browser/ash/login/onboarding_user_activity_counter.cc
+++ b/chrome/browser/ash/login/onboarding_user_activity_counter.cc
@@ -20,7 +20,7 @@
 namespace ash {
 namespace {
 
-constexpr base::TimeDelta kExpireAfterOnboarding = base::TimeDelta::FromDays(1);
+constexpr base::TimeDelta kExpireAfterOnboarding = base::Days(1);
 
 bool IsExpiredAfterOnboarding(PrefService* prefs) {
   return prefs->HasPrefPath(prefs::kOobeOnboardingTime) &&
diff --git a/chrome/browser/ash/login/onboarding_user_activity_counter_unittest.cc b/chrome/browser/ash/login/onboarding_user_activity_counter_unittest.cc
index 1d900e0..fd182746 100644
--- a/chrome/browser/ash/login/onboarding_user_activity_counter_unittest.cc
+++ b/chrome/browser/ash/login/onboarding_user_activity_counter_unittest.cc
@@ -29,7 +29,7 @@
 
  protected:
   void SetUpCounter() {
-    base::TimeDelta pref_activity_time = base::TimeDelta::FromMinutes(30);
+    base::TimeDelta pref_activity_time = base::Minutes(30);
     base::TimeDelta required_activity_time = pref_activity_time * 2;
 
     // Mark for start.
@@ -63,19 +63,16 @@
 }
 
 TEST_F(OnboardingUserActivityCounterTest, ShouldStart) {
-  prefs_.SetTimeDelta(prefs::kActivityTimeAfterOnboarding,
-                      base::TimeDelta::FromMinutes(10));
+  prefs_.SetTimeDelta(prefs::kActivityTimeAfterOnboarding, base::Minutes(10));
   EXPECT_TRUE(OnboardingUserActivityCounter::ShouldStart(&prefs_));
 }
 
 // Do not start the counter if the onboarding happened too early in the past.
 TEST_F(OnboardingUserActivityCounterTest, ExpiredAfterOnboarding) {
-  prefs_.SetTimeDelta(prefs::kActivityTimeAfterOnboarding,
-                      base::TimeDelta::FromMinutes(10));
+  prefs_.SetTimeDelta(prefs::kActivityTimeAfterOnboarding, base::Minutes(10));
 
   base::Time now = base::Time::Now();
-  prefs_.SetTime(prefs::kOobeOnboardingTime,
-                 now - base::TimeDelta::FromDays(2));
+  prefs_.SetTime(prefs::kOobeOnboardingTime, now - base::Days(2));
   EXPECT_FALSE(OnboardingUserActivityCounter::ShouldStart(&prefs_));
 }
 
@@ -138,8 +135,7 @@
   session_manager_.SetSessionState(session_manager::SessionState::LOCKED);
 
   base::Time now = base::Time::Now();
-  prefs_.SetTime(prefs::kOobeOnboardingTime,
-                 now - base::TimeDelta::FromDays(2));
+  prefs_.SetTime(prefs::kOobeOnboardingTime, now - base::Days(2));
 
   session_manager_.SetSessionState(session_manager::SessionState::ACTIVE);
 
diff --git a/chrome/browser/ash/login/quick_unlock/auth_token.cc b/chrome/browser/ash/login/quick_unlock/auth_token.cc
index de85052..5ab8b7d 100644
--- a/chrome/browser/ash/login/quick_unlock/auth_token.cc
+++ b/chrome/browser/ash/login/quick_unlock/auth_token.cc
@@ -20,7 +20,7 @@
       user_context_(std::make_unique<chromeos::UserContext>(user_context)) {
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE, base::BindOnce(&AuthToken::Reset, weak_factory_.GetWeakPtr()),
-      base::TimeDelta::FromSeconds(kTokenExpirationSeconds));
+      base::Seconds(kTokenExpirationSeconds));
 }
 
 AuthToken::~AuthToken() = default;
diff --git a/chrome/browser/ash/login/quick_unlock/pin_storage_cryptohome.cc b/chrome/browser/ash/login/quick_unlock/pin_storage_cryptohome.cc
index ace83cc4..bab2448 100644
--- a/chrome/browser/ash/login/quick_unlock/pin_storage_cryptohome.cc
+++ b/chrome/browser/ash/login/quick_unlock/pin_storage_cryptohome.cc
@@ -106,7 +106,7 @@
         FROM_HERE,
         base::BindOnce(&CheckForCryptohomedService, attempt + 1,
                        std::move(result)),
-        base::TimeDelta::FromMilliseconds(retry_delay_in_milliseconds));
+        base::Milliseconds(retry_delay_in_milliseconds));
     return;
   }
 
diff --git a/chrome/browser/ash/login/quick_unlock/quick_unlock_utils.cc b/chrome/browser/ash/login/quick_unlock/quick_unlock_utils.cc
index b3847b3..a945d41f 100644
--- a/chrome/browser/ash/login/quick_unlock/quick_unlock_utils.cc
+++ b/chrome/browser/ash/login/quick_unlock/quick_unlock_utils.cc
@@ -63,13 +63,13 @@
     PasswordConfirmationFrequency frequency) {
   switch (frequency) {
     case PasswordConfirmationFrequency::SIX_HOURS:
-      return base::TimeDelta::FromHours(6);
+      return base::Hours(6);
     case PasswordConfirmationFrequency::TWELVE_HOURS:
-      return base::TimeDelta::FromHours(12);
+      return base::Hours(12);
     case PasswordConfirmationFrequency::TWO_DAYS:
-      return base::TimeDelta::FromDays(2);
+      return base::Days(2);
     case PasswordConfirmationFrequency::WEEK:
-      return base::TimeDelta::FromDays(7);
+      return base::Days(7);
   }
   NOTREACHED();
   return base::TimeDelta();
diff --git a/chrome/browser/ash/login/reset_browsertest.cc b/chrome/browser/ash/login/reset_browsertest.cc
index 1e900a1..305af48 100644
--- a/chrome/browser/ash/login/reset_browsertest.cc
+++ b/chrome/browser/ash/login/reset_browsertest.cc
@@ -234,7 +234,7 @@
   void HandleTpmFirmwareUpdateCheck(
       ResetScreen::TpmFirmwareUpdateAvailabilityCallback callback,
       base::TimeDelta delay) {
-    EXPECT_EQ(delay, base::TimeDelta::FromSeconds(10));
+    EXPECT_EQ(delay, base::Seconds(10));
     // Multiple checks are technically allowed, but not needed by these tests.
     ASSERT_FALSE(pending_tpm_firmware_update_check_);
     pending_tpm_firmware_update_check_ = std::move(callback);
diff --git a/chrome/browser/ash/login/saml/in_session_password_change_manager.cc b/chrome/browser/ash/login/saml/in_session_password_change_manager.cc
index a182583..3ab97b4 100644
--- a/chrome/browser/ash/login/saml/in_session_password_change_manager.cc
+++ b/chrome/browser/ash/login/saml/in_session_password_change_manager.cc
@@ -110,13 +110,13 @@
     base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN};
 
 // A time delta of length one hour.
-const base::TimeDelta kOneHour = base::TimeDelta::FromHours(1);
+const base::TimeDelta kOneHour = base::Hours(1);
 
 // A time delta of length one day.
-const base::TimeDelta kOneDay = base::TimeDelta::FromDays(1);
+const base::TimeDelta kOneDay = base::Days(1);
 
 // A time delta with length of a half day.
-const base::TimeDelta kHalfDay = base::TimeDelta::FromHours(12);
+const base::TimeDelta kHalfDay = base::Hours(12);
 
 // A time delta with length zero.
 const base::TimeDelta kZeroTime = base::TimeDelta();
@@ -275,7 +275,7 @@
     // We have not yet reached the advance warning threshold. Check again
     // once we have arrived at expiry_time minus advance_warning_days...
     base::TimeDelta recheck_delay =
-        time_until_expiry - base::TimeDelta::FromDays(advance_warning_days);
+        time_until_expiry - base::Days(advance_warning_days);
     // But, wait an extra hour so that when this code is next run, it is clear
     // we are now inside advance_warning_days (and not right on the boundary).
     recheck_delay += kOneHour;
diff --git a/chrome/browser/ash/login/saml/in_session_password_change_manager_unittest.cc b/chrome/browser/ash/login/saml/in_session_password_change_manager_unittest.cc
index 00158aed..3cc66df8 100644
--- a/chrome/browser/ash/login/saml/in_session_password_change_manager_unittest.cc
+++ b/chrome/browser/ash/login/saml/in_session_password_change_manager_unittest.cc
@@ -29,11 +29,11 @@
 
 using ::message_center::Notification;
 
-constexpr base::TimeDelta kOneHour = base::TimeDelta::FromHours(1);
-constexpr base::TimeDelta kOneDay = base::TimeDelta::FromDays(1);
-constexpr base::TimeDelta kAdvanceWarningTime = base::TimeDelta::FromDays(14);
-constexpr base::TimeDelta kOneYear = base::TimeDelta::FromDays(365);
-constexpr base::TimeDelta kTenYears = base::TimeDelta::FromDays(10 * 365);
+constexpr base::TimeDelta kOneHour = base::Hours(1);
+constexpr base::TimeDelta kOneDay = base::Days(1);
+constexpr base::TimeDelta kAdvanceWarningTime = base::Days(14);
+constexpr base::TimeDelta kOneYear = base::Days(365);
+constexpr base::TimeDelta kTenYears = base::Days(10 * 365);
 
 inline std::u16string utf16(const char* ascii) {
   return base::ASCIIToUTF16(ascii);
diff --git a/chrome/browser/ash/login/saml/in_session_password_sync_manager_unittest.cc b/chrome/browser/ash/login/saml/in_session_password_sync_manager_unittest.cc
index cb58d7d..4672625 100644
--- a/chrome/browser/ash/login/saml/in_session_password_sync_manager_unittest.cc
+++ b/chrome/browser/ash/login/saml/in_session_password_sync_manager_unittest.cc
@@ -30,8 +30,7 @@
 const char kSAMLUserId2[] = "67891";
 const char kSAMLUserEmail2[] = "bob@corp.example.com";
 
-constexpr base::TimeDelta kSamlOnlineShortDelay =
-    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kSamlOnlineShortDelay = base::Seconds(10);
 
 const char kFakeToken[] = "fake-token";
 
diff --git a/chrome/browser/ash/login/saml/password_expiry_notification.cc b/chrome/browser/ash/login/saml/password_expiry_notification.cc
index fb13723..59518fe 100644
--- a/chrome/browser/ash/login/saml/password_expiry_notification.cc
+++ b/chrome/browser/ash/login/saml/password_expiry_notification.cc
@@ -67,7 +67,7 @@
     SystemNotificationWarningLevel::WARNING;
 
 // A time-delta of length one minute.
-constexpr base::TimeDelta kOneMinute = base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kOneMinute = base::Minutes(1);
 
 std::u16string GetBodyText() {
   return l10n_util::GetStringUTF16(IDS_PASSWORD_EXPIRY_CALL_TO_ACTION);
diff --git a/chrome/browser/ash/login/saml/password_expiry_notification_unittest.cc b/chrome/browser/ash/login/saml/password_expiry_notification_unittest.cc
index 876259f5..e64bced 100644
--- a/chrome/browser/ash/login/saml/password_expiry_notification_unittest.cc
+++ b/chrome/browser/ash/login/saml/password_expiry_notification_unittest.cc
@@ -52,7 +52,7 @@
 }  // namespace
 
 TEST_F(PasswordExpiryNotificationTest, ShowWillSoonExpire) {
-  PasswordExpiryNotification::Show(&profile_, base::TimeDelta::FromDays(14));
+  PasswordExpiryNotification::Show(&profile_, base::Days(14));
   ASSERT_TRUE(Notification().has_value());
 
   EXPECT_EQ(utf16("Password expires in 14 days"), Notification()->title());
@@ -63,7 +63,7 @@
 }
 
 TEST_F(PasswordExpiryNotificationTest, ShowAlreadyExpired) {
-  PasswordExpiryNotification::Show(&profile_, base::TimeDelta::FromDays(0));
+  PasswordExpiryNotification::Show(&profile_, base::Days(0));
   ASSERT_TRUE(Notification().has_value());
 
   EXPECT_EQ(utf16("Password change overdue"), Notification()->title());
@@ -74,25 +74,19 @@
 }
 
 TEST_F(PasswordExpiryNotificationTest, GetTitleText) {
-  EXPECT_EQ(utf16("Password expires in 2 days"),
-            GetTitleText(base::TimeDelta::FromDays(2)));
-  EXPECT_EQ(utf16("Password expires in 1 day"),
-            GetTitleText(base::TimeDelta::FromDays(1)));
+  EXPECT_EQ(utf16("Password expires in 2 days"), GetTitleText(base::Days(2)));
+  EXPECT_EQ(utf16("Password expires in 1 day"), GetTitleText(base::Days(1)));
   EXPECT_EQ(utf16("Password expires in 12 hours"),
-            GetTitleText(base::TimeDelta::FromHours(12)));
-  EXPECT_EQ(utf16("Password expires in 1 hour"),
-            GetTitleText(base::TimeDelta::FromHours(1)));
+            GetTitleText(base::Hours(12)));
+  EXPECT_EQ(utf16("Password expires in 1 hour"), GetTitleText(base::Hours(1)));
   EXPECT_EQ(utf16("Password expires in 30 minutes"),
-            GetTitleText(base::TimeDelta::FromMinutes(30)));
+            GetTitleText(base::Minutes(30)));
   EXPECT_EQ(utf16("Password expires in 1 minute"),
-            GetTitleText(base::TimeDelta::FromMinutes(1)));
+            GetTitleText(base::Minutes(1)));
 
-  EXPECT_EQ(utf16("Password change overdue"),
-            GetTitleText(base::TimeDelta::FromSeconds(30)));
-  EXPECT_EQ(utf16("Password change overdue"),
-            GetTitleText(base::TimeDelta::FromSeconds(0)));
-  EXPECT_EQ(utf16("Password change overdue"),
-            GetTitleText(base::TimeDelta::FromSeconds(-10)));
+  EXPECT_EQ(utf16("Password change overdue"), GetTitleText(base::Seconds(30)));
+  EXPECT_EQ(utf16("Password change overdue"), GetTitleText(base::Seconds(0)));
+  EXPECT_EQ(utf16("Password change overdue"), GetTitleText(base::Seconds(-10)));
 
   PasswordExpiryNotification::Dismiss(&profile_);
   EXPECT_FALSE(Notification().has_value());
diff --git a/chrome/browser/ash/login/saml/password_sync_token_login_checker.cc b/chrome/browser/ash/login/saml/password_sync_token_login_checker.cc
index 66d129c..85dda622 100644
--- a/chrome/browser/ash/login/saml/password_sync_token_login_checker.cc
+++ b/chrome/browser/ash/login/saml/password_sync_token_login_checker.cc
@@ -15,8 +15,7 @@
 namespace ash {
 namespace {
 
-const base::TimeDelta kPollingInterval = base::TimeDelta::FromMinutes(5);
-
+const base::TimeDelta kPollingInterval = base::Minutes(5);
 }
 
 PasswordSyncTokenLoginChecker::PasswordSyncTokenLoginChecker(
diff --git a/chrome/browser/ash/login/saml/password_sync_token_login_checker_unittest.cc b/chrome/browser/ash/login/saml/password_sync_token_login_checker_unittest.cc
index 8064fa58..942ae9461 100644
--- a/chrome/browser/ash/login/saml/password_sync_token_login_checker_unittest.cc
+++ b/chrome/browser/ash/login/saml/password_sync_token_login_checker_unittest.cc
@@ -22,7 +22,7 @@
 
 const char kSyncToken[] = "sync-token-1";
 
-constexpr base::TimeDelta kSamlTokenDelay = base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kSamlTokenDelay = base::Seconds(60);
 
 class FakeUserManagerWithLocalState : public FakeChromeUserManager {
  public:
diff --git a/chrome/browser/ash/login/saml/password_sync_token_verifier_unittest.cc b/chrome/browser/ash/login/saml/password_sync_token_verifier_unittest.cc
index fa34ea8..4292183 100644
--- a/chrome/browser/ash/login/saml/password_sync_token_verifier_unittest.cc
+++ b/chrome/browser/ash/login/saml/password_sync_token_verifier_unittest.cc
@@ -27,11 +27,9 @@
 
 const char kSyncToken[] = "sync-token-1";
 
-constexpr base::TimeDelta kSyncTokenCheckInterval =
-    base::TimeDelta::FromMinutes(6);
+constexpr base::TimeDelta kSyncTokenCheckInterval = base::Minutes(6);
 
-constexpr base::TimeDelta kSyncTokenCheckBelowInterval =
-    base::TimeDelta::FromMinutes(4);
+constexpr base::TimeDelta kSyncTokenCheckBelowInterval = base::Minutes(4);
 
 class FakeUserManagerWithLocalState : public FakeChromeUserManager {
  public:
diff --git a/chrome/browser/ash/login/saml/saml_browsertest.cc b/chrome/browser/ash/login/saml/saml_browsertest.cc
index ebfc374..cb40e0ed 100644
--- a/chrome/browser/ash/login/saml/saml_browsertest.cc
+++ b/chrome/browser/ash/login/saml/saml_browsertest.cc
@@ -1522,10 +1522,8 @@
   std::move(callback).Run(attestation::ATTESTATION_SUCCESS, "certificate");
 }
 
-constexpr base::TimeDelta kTimeoutTaskDelay =
-    base::TimeDelta::FromMilliseconds(500);
-constexpr base::TimeDelta kBuildResponseTaskDelay =
-    base::TimeDelta::FromSeconds(3);
+constexpr base::TimeDelta kTimeoutTaskDelay = base::Milliseconds(500);
+constexpr base::TimeDelta kBuildResponseTaskDelay = base::Seconds(3);
 static_assert(
     kTimeoutTaskDelay < kBuildResponseTaskDelay,
     "kTimeoutTaskDelay should be less than kBuildResponseTaskDelay to trigger "
diff --git a/chrome/browser/ash/login/screens/chromevox_hint/chromevox_hint_detector.cc b/chrome/browser/ash/login/screens/chromevox_hint/chromevox_hint_detector.cc
index aa0c212..ea9613c 100644
--- a/chrome/browser/ash/login/screens/chromevox_hint/chromevox_hint_detector.cc
+++ b/chrome/browser/ash/login/screens/chromevox_hint/chromevox_hint_detector.cc
@@ -16,8 +16,7 @@
 namespace {
 
 // Amount of time the user has to be idle for before giving the ChromeVox hint.
-const base::TimeDelta kChromeVoxHintIdleDuration =
-    base::TimeDelta::FromSeconds(20);
+const base::TimeDelta kChromeVoxHintIdleDuration = base::Seconds(20);
 
 }  // namespace
 
diff --git a/chrome/browser/ash/login/screens/chromevox_hint/chromevox_hint_detector_unittest.cc b/chrome/browser/ash/login/screens/chromevox_hint/chromevox_hint_detector_unittest.cc
index c53408e..f4176eb 100644
--- a/chrome/browser/ash/login/screens/chromevox_hint/chromevox_hint_detector_unittest.cc
+++ b/chrome/browser/ash/login/screens/chromevox_hint/chromevox_hint_detector_unittest.cc
@@ -17,7 +17,7 @@
 
 // The ChromeVox hint idle duration is 20s. We set this to 25s, since it's safer
 // for this to be slightly longer than the true idle duration.
-const base::TimeDelta kFullIdleDuration = base::TimeDelta::FromSeconds(25);
+const base::TimeDelta kFullIdleDuration = base::Seconds(25);
 const base::TimeDelta kThreeFourthIdleDuration =
     kFullIdleDuration - kFullIdleDuration / 4;
 
diff --git a/chrome/browser/ash/login/screens/encryption_migration_screen.cc b/chrome/browser/ash/login/screens/encryption_migration_screen.cc
index 45afae3..98b1d6f 100644
--- a/chrome/browser/ash/login/screens/encryption_migration_screen.cc
+++ b/chrome/browser/ash/login/screens/encryption_migration_screen.cc
@@ -437,7 +437,7 @@
       FROM_HERE,
       base::BindOnce(&EncryptionMigrationScreen::OnDelayedRecordVisibleScreen,
                      weak_ptr_factory_.GetWeakPtr(), state),
-      base::TimeDelta::FromSeconds(1));
+      base::Seconds(1));
 }
 
 void EncryptionMigrationScreen::CheckAvailableStorage() {
diff --git a/chrome/browser/ash/login/screens/locale_switch_screen.cc b/chrome/browser/ash/login/screens/locale_switch_screen.cc
index 42671f0..e8dd302b 100644
--- a/chrome/browser/ash/login/screens/locale_switch_screen.cc
+++ b/chrome/browser/ash/login/screens/locale_switch_screen.cc
@@ -24,7 +24,7 @@
 namespace ash {
 namespace {
 
-constexpr base::TimeDelta kWaitTimeout = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kWaitTimeout = base::Seconds(5);
 
 // Returns whether all information needed (locale and account capabilities)
 // has been fetched.
diff --git a/chrome/browser/ash/login/screens/network_screen.cc b/chrome/browser/ash/login/screens/network_screen.cc
index 4136457..3865e59 100644
--- a/chrome/browser/ash/login/screens/network_screen.cc
+++ b/chrome/browser/ash/login/screens/network_screen.cc
@@ -22,7 +22,7 @@
 namespace ash {
 namespace {
 
-constexpr base::TimeDelta kConnectionTimeout = base::TimeDelta::FromSeconds(40);
+constexpr base::TimeDelta kConnectionTimeout = base::Seconds(40);
 
 constexpr char kUserActionBackButtonClicked[] = "back";
 constexpr char kUserActionContinueButtonClicked[] = "continue";
diff --git a/chrome/browser/ash/login/screens/offline_login_screen.cc b/chrome/browser/ash/login/screens/offline_login_screen.cc
index ddc3709..cd9cf72 100644
--- a/chrome/browser/ash/login/screens/offline_login_screen.cc
+++ b/chrome/browser/ash/login/screens/offline_login_screen.cc
@@ -33,8 +33,7 @@
 
 // Amount of time the user has to be idle for before showing the online login
 // page.
-constexpr const base::TimeDelta kIdleTimeDelta =
-    base::TimeDelta::FromMinutes(3);
+constexpr const base::TimeDelta kIdleTimeDelta = base::Minutes(3);
 
 // These values should not be renumbered and numeric values should never
 // be reused. This must be kept in sync with ChromeOSHiddenUserPodsOfflineLogin
diff --git a/chrome/browser/ash/login/screens/os_install_screen.cc b/chrome/browser/ash/login/screens/os_install_screen.cc
index 99fdd1e0..d2ba524 100644
--- a/chrome/browser/ash/login/screens/os_install_screen.cc
+++ b/chrome/browser/ash/login/screens/os_install_screen.cc
@@ -22,10 +22,8 @@
 constexpr const char kUserActionSuccessRestartClicked[] =
     "os-install-success-restart";
 
-constexpr const base::TimeDelta kTimeTillShutdownOnSuccess =
-    base::TimeDelta::FromSeconds(60);
-constexpr const base::TimeDelta kCountdownDelta =
-    base::TimeDelta::FromMilliseconds(10);
+constexpr const base::TimeDelta kTimeTillShutdownOnSuccess = base::Seconds(60);
+constexpr const base::TimeDelta kCountdownDelta = base::Milliseconds(10);
 }  // namespace
 
 OsInstallScreen::OsInstallScreen(OsInstallScreenView* view,
diff --git a/chrome/browser/ash/login/screens/os_install_screen_browsertest.cc b/chrome/browser/ash/login/screens/os_install_screen_browsertest.cc
index d2d71fc..7e84b59 100644
--- a/chrome/browser/ash/login/screens/os_install_screen_browsertest.cc
+++ b/chrome/browser/ash/login/screens/os_install_screen_browsertest.cc
@@ -249,11 +249,11 @@
 
   auto* power_manager_client = chromeos::FakePowerManagerClient::Get();
   EXPECT_EQ(power_manager_client->num_request_shutdown_calls(), 0);
-  mocked_task_runner->FastForwardBy(base::TimeDelta::FromSeconds(20));
+  mocked_task_runner->FastForwardBy(base::Seconds(20));
   EXPECT_EQ(power_manager_client->num_request_shutdown_calls(), 0);
   test::OobeJS().ExpectElementText(GetExpectedCountdownMessage(40),
                                    kOsInstallDialogSuccessSubtitile);
-  mocked_task_runner->FastForwardBy(base::TimeDelta::FromSeconds(41));
+  mocked_task_runner->FastForwardBy(base::Seconds(41));
   EXPECT_EQ(power_manager_client->num_request_shutdown_calls(), 1);
 }
 
diff --git a/chrome/browser/ash/login/screens/pin_setup_screen.cc b/chrome/browser/ash/login/screens/pin_setup_screen.cc
index 322f76c..cb5bf83 100644
--- a/chrome/browser/ash/login/screens/pin_setup_screen.cc
+++ b/chrome/browser/ash/login/screens/pin_setup_screen.cc
@@ -174,8 +174,7 @@
 void PinSetupScreen::ShowImpl() {
   token_lifetime_timeout_.Start(
       FROM_HERE,
-      base::TimeDelta::FromSeconds(
-          quick_unlock::AuthToken::kTokenExpirationSeconds),
+      base::Seconds(quick_unlock::AuthToken::kTokenExpirationSeconds),
       base::BindOnce(&PinSetupScreen::OnTokenTimedOut,
                      weak_ptr_factory_.GetWeakPtr()));
   quick_unlock::QuickUnlockStorage* quick_unlock_storage =
diff --git a/chrome/browser/ash/login/screens/recommend_apps/fake_recommend_apps_fetcher.cc b/chrome/browser/ash/login/screens/recommend_apps/fake_recommend_apps_fetcher.cc
index c7f2fb8b..769d06e 100644
--- a/chrome/browser/ash/login/screens/recommend_apps/fake_recommend_apps_fetcher.cc
+++ b/chrome/browser/ash/login/screens/recommend_apps/fake_recommend_apps_fetcher.cc
@@ -13,7 +13,7 @@
 namespace ash {
 namespace {
 
-constexpr base::TimeDelta kFakeLoadingTime = base::TimeDelta::FromSeconds(3);
+constexpr base::TimeDelta kFakeLoadingTime = base::Seconds(3);
 constexpr const int kMaxAppCount = 21;
 
 }  // namespace
diff --git a/chrome/browser/ash/login/screens/recommend_apps/recommend_apps_fetcher_impl.cc b/chrome/browser/ash/login/screens/recommend_apps/recommend_apps_fetcher_impl.cc
index 8bc12bd..7bef2d9 100644
--- a/chrome/browser/ash/login/screens/recommend_apps/recommend_apps_fetcher_impl.cc
+++ b/chrome/browser/ash/login/screens/recommend_apps/recommend_apps_fetcher_impl.cc
@@ -44,7 +44,7 @@
 
 constexpr int kResponseErrorNotFirstTimeChromebookUser = 6;
 
-constexpr base::TimeDelta kDownloadTimeOut = base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kDownloadTimeOut = base::Minutes(1);
 
 constexpr const int64_t kMaxDownloadBytes = 1024 * 1024;  // 1Mb
 
diff --git a/chrome/browser/ash/login/screens/reset_screen.cc b/chrome/browser/ash/login/screens/reset_screen.cc
index 22c42f5..02c96c96 100644
--- a/chrome/browser/ash/login/screens/reset_screen.cc
+++ b/chrome/browser/ash/login/screens/reset_screen.cc
@@ -256,7 +256,7 @@
     tpm_firmware_update_checker_.Run(
         base::BindOnce(&ResetScreen::OnTPMFirmwareUpdateAvailableCheck,
                        weak_ptr_factory_.GetWeakPtr()),
-        base::TimeDelta::FromSeconds(10));
+        base::Seconds(10));
   }
 
   if (view_) {
@@ -347,7 +347,7 @@
     tpm_firmware_update_checker_.Run(
         base::BindOnce(&StartTPMFirmwareUpdate,
                        view_->GetTpmFirmwareUpdateMode()),
-        base::TimeDelta::FromSeconds(10));
+        base::Seconds(10));
   } else {
     VLOG(1) << "Starting Powerwash";
     SessionManagerClient::Get()->StartDeviceWipe();
diff --git a/chrome/browser/ash/login/screens/sync_consent_screen.cc b/chrome/browser/ash/login/screens/sync_consent_screen.cc
index 0f6b87d..f3759fa 100644
--- a/chrome/browser/ash/login/screens/sync_consent_screen.cc
+++ b/chrome/browser/ash/login/screens/sync_consent_screen.cc
@@ -41,12 +41,10 @@
 
 // Delay showing chrome sync settings by this amount of time to make them
 // show on top of the restored tabs and windows.
-constexpr base::TimeDelta kSyncConsentSettingsShowDelay =
-    base::TimeDelta::FromSeconds(3);
+constexpr base::TimeDelta kSyncConsentSettingsShowDelay = base::Seconds(3);
 
-constexpr base::TimeDelta kWaitTimeout = base::TimeDelta::FromSeconds(10);
-constexpr base::TimeDelta kWaitTimeoutForTest =
-    base::TimeDelta::FromMilliseconds(1);
+constexpr base::TimeDelta kWaitTimeout = base::Seconds(10);
+constexpr base::TimeDelta kWaitTimeoutForTest = base::Milliseconds(1);
 
 absl::optional<bool> sync_disabled_by_policy_for_test;
 absl::optional<bool> sync_engine_initialized_for_test;
@@ -402,8 +400,7 @@
     timeout_waiter_.AbandonAndStop();
     base::UmaHistogramCustomTimes("OOBE.SyncConsentScreen.LoadingTime",
                                   base::TimeTicks::Now() - start_time_,
-                                  base::TimeDelta::FromMilliseconds(1),
-                                  base::TimeDelta::FromSeconds(10), 50);
+                                  base::Milliseconds(1), base::Seconds(10), 50);
   } else {
     MaybeEnableSyncForSkip();
     Finish(Result::NEXT);
diff --git a/chrome/browser/ash/login/screens/terms_of_service_screen.cc b/chrome/browser/ash/login/screens/terms_of_service_screen.cc
index 09940e4..f694cfe1 100644
--- a/chrome/browser/ash/login/screens/terms_of_service_screen.cc
+++ b/chrome/browser/ash/login/screens/terms_of_service_screen.cc
@@ -235,7 +235,7 @@
                                      base::Unretained(this)));
 
   // Abort the download attempt if it takes longer than one minute.
-  download_timer_.Start(FROM_HERE, base::TimeDelta::FromMinutes(1), this,
+  download_timer_.Start(FROM_HERE, base::Minutes(1), this,
                         &TermsOfServiceScreen::OnDownloadTimeout);
 }
 
diff --git a/chrome/browser/ash/login/screens/update_required_screen.cc b/chrome/browser/ash/login/screens/update_required_screen.cc
index 5b0850962..27c81e29 100644
--- a/chrome/browser/ash/login/screens/update_required_screen.cc
+++ b/chrome/browser/ash/login/screens/update_required_screen.cc
@@ -41,8 +41,7 @@
 // Delay before showing error message if captive portal is detected.
 // We wait for this delay to let captive portal to perform redirect and show
 // its login page before error message appears.
-constexpr const base::TimeDelta kDelayErrorMessage =
-    base::TimeDelta::FromSeconds(10);
+constexpr const base::TimeDelta kDelayErrorMessage = base::Seconds(10);
 
 }  // namespace
 
diff --git a/chrome/browser/ash/login/screens/update_required_screen_browsertest.cc b/chrome/browser/ash/login/screens/update_required_screen_browsertest.cc
index 46e4f71..1a0e94f 100644
--- a/chrome/browser/ash/login/screens/update_required_screen_browsertest.cc
+++ b/chrome/browser/ash/login/screens/update_required_screen_browsertest.cc
@@ -214,7 +214,7 @@
 
   static_cast<UpdateRequiredScreen*>(
       WizardController::default_controller()->current_screen())
-      ->SetErrorMessageDelayForTesting(base::TimeDelta::FromMilliseconds(10));
+      ->SetErrorMessageDelayForTesting(base::Milliseconds(10));
 
   test::OobeJS().ExpectVisiblePath(kUpdateRequiredStep);
 
@@ -251,7 +251,7 @@
 
 IN_PROC_BROWSER_TEST_F(UpdateRequiredScreenTest, TestEolReached) {
   update_engine_client()->set_eol_date(
-      base::DefaultClock::GetInstance()->Now() - base::TimeDelta::FromDays(1));
+      base::DefaultClock::GetInstance()->Now() - base::Days(1));
   ShowUpdateRequiredScreen();
 
   test::OobeJS().ExpectVisiblePath(kUpdateRequiredEolDialog);
@@ -265,7 +265,7 @@
 IN_PROC_BROWSER_TEST_F(UpdateRequiredScreenTest, TestEolDeleteUsersConfirm) {
   EXPECT_EQ(user_manager::UserManager::Get()->GetUsers().size(), 2u);
   update_engine_client()->set_eol_date(
-      base::DefaultClock::GetInstance()->Now() - base::TimeDelta::FromDays(1));
+      base::DefaultClock::GetInstance()->Now() - base::Days(1));
   ShowUpdateRequiredScreen();
 
   test::OobeJS().ExpectVisiblePath(kUpdateRequiredEolDialog);
@@ -287,7 +287,7 @@
 IN_PROC_BROWSER_TEST_F(UpdateRequiredScreenTest, TestEolDeleteUsersCancel) {
   EXPECT_EQ(user_manager::UserManager::Get()->GetUsers().size(), 2u);
   update_engine_client()->set_eol_date(
-      base::DefaultClock::GetInstance()->Now() - base::TimeDelta::FromDays(1));
+      base::DefaultClock::GetInstance()->Now() - base::Days(1));
   ShowUpdateRequiredScreen();
 
   test::OobeJS().ExpectVisiblePath(kUpdateRequiredEolDialog);
@@ -306,7 +306,7 @@
 
 IN_PROC_BROWSER_TEST_F(UpdateRequiredScreenTest, TestEolReachedAdminMessage) {
   update_engine_client()->set_eol_date(
-      base::DefaultClock::GetInstance()->Now() - base::TimeDelta::FromDays(1));
+      base::DefaultClock::GetInstance()->Now() - base::Days(1));
   SetEolMessageAndWaitForSettingsChange(kDemoEolMessage);
   ShowUpdateRequiredScreen();
 
@@ -318,7 +318,7 @@
 
 IN_PROC_BROWSER_TEST_F(UpdateRequiredScreenTest, TestEolNotReached) {
   update_engine_client()->set_eol_date(
-      base::DefaultClock::GetInstance()->Now() + base::TimeDelta::FromDays(1));
+      base::DefaultClock::GetInstance()->Now() + base::Days(1));
   ShowUpdateRequiredScreen();
 
   test::OobeJS().ExpectHiddenPath(kUpdateRequiredEolDialog);
@@ -503,8 +503,7 @@
             false /* unmanaged_user_restricted */));
     // Simulate end-of-life reached.
     update_engine_client()->set_eol_date(
-        base::DefaultClock::GetInstance()->Now() -
-        base::TimeDelta::FromDays(1));
+        base::DefaultClock::GetInstance()->Now() - base::Days(1));
   }
 
   void SetMinimumChromeVersionPolicy(const base::Value& value) {
diff --git a/chrome/browser/ash/login/screens/update_required_screen_unittest.cc b/chrome/browser/ash/login/screens/update_required_screen_unittest.cc
index a11bd3c..8706f34 100644
--- a/chrome/browser/ash/login/screens/update_required_screen_unittest.cc
+++ b/chrome/browser/ash/login/screens/update_required_screen_unittest.cc
@@ -87,7 +87,7 @@
         fake_view_.get(), mock_error_screen_.get(), base::DoNothing());
 
     update_required_screen_->GetVersionUpdaterForTesting()
-        ->set_wait_for_reboot_time_for_testing(base::TimeDelta::FromSeconds(0));
+        ->set_wait_for_reboot_time_for_testing(base::Seconds(0));
   }
 
   void TearDown() override {
diff --git a/chrome/browser/ash/login/screens/update_screen.cc b/chrome/browser/ash/login/screens/update_screen.cc
index 9042a5b..dc9f4ce 100644
--- a/chrome/browser/ash/login/screens/update_screen.cc
+++ b/chrome/browser/ash/login/screens/update_screen.cc
@@ -36,17 +36,14 @@
 constexpr const char kUserActionCancelUpdateShortcut[] = "cancel-update";
 
 // Time in seconds after which we initiate reboot.
-constexpr const base::TimeDelta kWaitBeforeRebootTime =
-    base::TimeDelta::FromSeconds(2);
+constexpr const base::TimeDelta kWaitBeforeRebootTime = base::Seconds(2);
 
 // Delay before showing error message if captive portal is detected.
 // We wait for this delay to let captive portal to perform redirect and show
 // its login page before error message appears.
-constexpr const base::TimeDelta kDelayErrorMessage =
-    base::TimeDelta::FromSeconds(10);
+constexpr const base::TimeDelta kDelayErrorMessage = base::Seconds(10);
 
-constexpr const base::TimeDelta kShowDelay =
-    base::TimeDelta::FromMicroseconds(400);
+constexpr const base::TimeDelta kShowDelay = base::Microseconds(400);
 
 // When battery percent is lower and DISCHARGING warn user about it.
 const double kInsufficientBatteryPercent = 50;
diff --git a/chrome/browser/ash/login/screens/update_screen_browsertest.cc b/chrome/browser/ash/login/screens/update_screen_browsertest.cc
index 33c7e4b..cf79784a 100644
--- a/chrome/browser/ash/login/screens/update_screen_browsertest.cc
+++ b/chrome/browser/ash/login/screens/update_screen_browsertest.cc
@@ -78,12 +78,9 @@
 // Defines what part of update progress does download part takes.
 const int kDownloadProgressIncrement = 60;
 
-constexpr base::TimeDelta kTimeAdvanceSeconds10 =
-    base::TimeDelta::FromSeconds(10);
-constexpr base::TimeDelta kTimeAdvanceSeconds60 =
-    base::TimeDelta::FromSeconds(60);
-constexpr base::TimeDelta kTimeDefaultWaiting =
-    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kTimeAdvanceSeconds10 = base::Seconds(10);
+constexpr base::TimeDelta kTimeAdvanceSeconds60 = base::Seconds(60);
+constexpr base::TimeDelta kTimeDefaultWaiting = base::Seconds(10);
 
 std::string GetDownloadingString(int status_resource_id) {
   // TODO(https://crbug.com/1161276) Adapt for BetterUpdate version.
diff --git a/chrome/browser/ash/login/screens/user_selection_screen.cc b/chrome/browser/ash/login/screens/user_selection_screen.cc
index f3e3b26b..726071c 100644
--- a/chrome/browser/ash/login/screens/user_selection_screen.cc
+++ b/chrome/browser/ash/login/screens/user_selection_screen.cc
@@ -374,9 +374,9 @@
     if (reply.dictionary_attack_lockout_in_effect()) {
       // Add `kWaitingOvertimeInSeconds` for safetiness, i.e hiding UI and
       // releasing `wake_lock_` happens after TPM becomes unlocked.
-      dictionary_attack_lockout_time_remaining_ = base::TimeDelta::FromSeconds(
-          reply.dictionary_attack_lockout_seconds_remaining() +
-          kWaitingOvertimeInSeconds);
+      dictionary_attack_lockout_time_remaining_ =
+          base::Seconds(reply.dictionary_attack_lockout_seconds_remaining() +
+                        kWaitingOvertimeInSeconds);
       OnTpmIsLocked();
     } else {
       TpmIsUnlocked();
@@ -385,9 +385,9 @@
 
   void OnTpmIsLocked() {
     AcquireWakeLock();
-    clock_ticking_animator_.Start(FROM_HERE, base::TimeDelta::FromSeconds(1),
-                                  this, &TpmLockedChecker::UpdateUI);
-    tpm_recheck_.Start(FROM_HERE, base::TimeDelta::FromMinutes(1), this,
+    clock_ticking_animator_.Start(FROM_HERE, base::Seconds(1), this,
+                                  &TpmLockedChecker::UpdateUI);
+    tpm_recheck_.Start(FROM_HERE, base::Minutes(1), this,
                        &TpmLockedChecker::Check);
   }
 
diff --git a/chrome/browser/ash/login/screens/user_selection_screen_browsertest.cc b/chrome/browser/ash/login/screens/user_selection_screen_browsertest.cc
index b027aaf..da7626a4 100644
--- a/chrome/browser/ash/login/screens/user_selection_screen_browsertest.cc
+++ b/chrome/browser/ash/login/screens/user_selection_screen_browsertest.cc
@@ -37,10 +37,8 @@
 constexpr char kUser3Email[] = "test-user3@gmail.com";
 constexpr char kGaia3ID[] = "333333";
 
-constexpr base::TimeDelta kLoginOnlineShortDelay =
-    base::TimeDelta::FromSeconds(10);
-constexpr base::TimeDelta kLoginOnlineLongDelay =
-    base::TimeDelta::FromSeconds(20);
+constexpr base::TimeDelta kLoginOnlineShortDelay = base::Seconds(10);
+constexpr base::TimeDelta kLoginOnlineLongDelay = base::Seconds(20);
 
 const test::UIPath kErrorMessageGuestSigninLink = {"error-message",
                                                    "error-guest-signin-link"};
diff --git a/chrome/browser/ash/login/security_token_session_controller.cc b/chrome/browser/ash/login/security_token_session_controller.cc
index d886dfc5..2989b7f2 100644
--- a/chrome/browser/ash/login/security_token_session_controller.cc
+++ b/chrome/browser/ash/login/security_token_session_controller.cc
@@ -302,9 +302,8 @@
 }
 
 void SecurityTokenSessionController::UpdateNotificationPref() {
-  notification_seconds_ =
-      base::TimeDelta::FromSeconds(profile_prefs_->GetInteger(
-          prefs::kSecurityTokenSessionNotificationSeconds));
+  notification_seconds_ = base::Seconds(profile_prefs_->GetInteger(
+      prefs::kSecurityTokenSessionNotificationSeconds));
 }
 
 SecurityTokenSessionController::Behavior
diff --git a/chrome/browser/ash/login/session/user_session_initializer.cc b/chrome/browser/ash/login/session/user_session_initializer.cc
index 99a9cab..4bec756 100644
--- a/chrome/browser/ash/login/session/user_session_initializer.cc
+++ b/chrome/browser/ash/login/session/user_session_initializer.cc
@@ -325,8 +325,8 @@
   // Negative ping delay means to send ping immediately after a first search is
   // recorded.
   bool send_ping_immediately = ping_delay < 0;
-  base::TimeDelta delay = base::TimeDelta::FromSeconds(abs(ping_delay)) -
-                          params.time_since_oobe_completion;
+  base::TimeDelta delay =
+      base::Seconds(abs(ping_delay)) - params.time_since_oobe_completion;
   rlz::RLZTracker::SetRlzDelegate(
       base::WrapUnique(new ChromeRLZTrackerDelegate));
   rlz::RLZTracker::InitRlzDelayed(
diff --git a/chrome/browser/ash/login/session/user_session_manager.cc b/chrome/browser/ash/login/session/user_session_manager.cc
index 34fafeb..7be0371 100644
--- a/chrome/browser/ash/login/session/user_session_manager.cc
+++ b/chrome/browser/ash/login/session/user_session_manager.cc
@@ -179,12 +179,10 @@
 
 // Time to wait for child policy refresh. If that time is exceeded session
 // should start with cached policy.
-constexpr base::TimeDelta kWaitForChildPolicyTimeout =
-    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kWaitForChildPolicyTimeout = base::Seconds(10);
 
 // Timeout to fetch flags from the child account service.
-constexpr base::TimeDelta kFlagsFetchingLoginTimeout =
-    base::TimeDelta::FromMilliseconds(1000);
+constexpr base::TimeDelta kFlagsFetchingLoginTimeout = base::Milliseconds(1000);
 
 // Trace event category of the trace events.
 constexpr char kEventCategoryChromeOS[] = "chromeos";
@@ -216,8 +214,7 @@
 // is not included.
 constexpr char kEventInitUserDesktop[] = "InitUserDesktop";
 
-constexpr base::TimeDelta kActivityTimeBeforeOnboardingSurvey =
-    base::TimeDelta::FromHours(1);
+constexpr base::TimeDelta kActivityTimeBeforeOnboardingSurvey = base::Hours(1);
 
 // A special version used to backfill the OnboardingCompletedVersion for
 // existing users to indicate that they are already completed the onboarding
@@ -241,7 +238,7 @@
   if (seconds <= 0)
     return kActivityTimeBeforeOnboardingSurvey;
 
-  return base::TimeDelta::FromSeconds(seconds);
+  return base::Seconds(seconds);
 }
 
 void InitLocaleAndInputMethodsForNewUser(
diff --git a/chrome/browser/ash/login/signin/merge_session_navigation_throttle.cc b/chrome/browser/ash/login/signin/merge_session_navigation_throttle.cc
index 6c90d97..33a311c 100644
--- a/chrome/browser/ash/login/signin/merge_session_navigation_throttle.cc
+++ b/chrome/browser/ash/login/signin/merge_session_navigation_throttle.cc
@@ -15,7 +15,7 @@
 namespace {
 
 // Maximum wait time for merge session process.
-constexpr base::TimeDelta kTotalWaitTime = base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kTotalWaitTime = base::Seconds(10);
 
 OAuth2LoginManager* GetOAuth2LoginManager(content::WebContents* web_contents) {
   content::BrowserContext* browser_context = web_contents->GetBrowserContext();
diff --git a/chrome/browser/ash/login/signin/oauth2_browsertest.cc b/chrome/browser/ash/login/signin/oauth2_browsertest.cc
index 342fc570..ef4a1cb 100644
--- a/chrome/browser/ash/login/signin/oauth2_browsertest.cc
+++ b/chrome/browser/ash/login/signin/oauth2_browsertest.cc
@@ -1222,7 +1222,7 @@
     // that there was no delay. However a slowly running test can still take
     // longer than the timeout.
     base::TimeDelta test_duration = base::Time::Now() - start_time;
-    EXPECT_GE(test_duration, base::TimeDelta::FromSeconds(1));
+    EXPECT_GE(test_duration, base::Seconds(1));
   } else {
     content::RunAllTasksUntilIdle();
   }
diff --git a/chrome/browser/ash/login/signin/oauth2_token_fetcher.cc b/chrome/browser/ash/login/signin/oauth2_token_fetcher.cc
index c74edad..80eff2cc 100644
--- a/chrome/browser/ash/login/signin/oauth2_token_fetcher.cc
+++ b/chrome/browser/ash/login/signin/oauth2_token_fetcher.cc
@@ -76,8 +76,7 @@
   if (error.IsTransientError() && retry_count_ < kMaxRequestAttemptCount) {
     retry_count_++;
     content::GetUIThreadTaskRunner({})->PostDelayedTask(
-        FROM_HERE, std::move(task),
-        base::TimeDelta::FromMilliseconds(kRequestRestartDelay));
+        FROM_HERE, std::move(task), base::Milliseconds(kRequestRestartDelay));
     return;
   }
   LOG(ERROR) << "Unrecoverable error or retry count max reached. State: "
diff --git a/chrome/browser/ash/login/signin/offline_signin_limiter.cc b/chrome/browser/ash/login/signin/offline_signin_limiter.cc
index c5cf54e..b24efdee 100644
--- a/chrome/browser/ash/login/signin/offline_signin_limiter.cc
+++ b/chrome/browser/ash/login/signin/offline_signin_limiter.cc
@@ -273,7 +273,7 @@
     return absl::nullopt;
 
   return absl::make_optional<base::TimeDelta>(
-      base::TimeDelta::FromDays(no_saml_offline_limit));
+      base::Days(no_saml_offline_limit));
 }
 
 absl::optional<base::TimeDelta> OfflineSigninLimiter::GetGaiaSamlTimeLimit() {
@@ -288,7 +288,7 @@
     return absl::nullopt;
 
   return absl::make_optional<base::TimeDelta>(
-      base::TimeDelta::FromSeconds(saml_offline_limit));
+      base::Seconds(saml_offline_limit));
 }
 
 absl::optional<base::TimeDelta>
@@ -313,7 +313,7 @@
   }
 
   return absl::make_optional<base::TimeDelta>(
-      base::TimeDelta::FromDays(no_saml_lock_screen_offline_limit));
+      base::Days(no_saml_lock_screen_offline_limit));
 }
 
 absl::optional<base::TimeDelta>
@@ -338,7 +338,7 @@
   }
 
   return absl::make_optional<base::TimeDelta>(
-      base::TimeDelta::FromDays(saml_lock_screen_offline_limit));
+      base::Days(saml_lock_screen_offline_limit));
 }
 
 absl::optional<base::TimeDelta>
@@ -350,8 +350,7 @@
             switches::kOfflineSignInTimeLimitInSecondsOverrideForTesting);
     int numeric_val = 0;
     if (base::StringToInt(ascii_value, &numeric_val) && numeric_val >= 0) {
-      return absl::make_optional<base::TimeDelta>(
-          base::TimeDelta::FromSeconds(numeric_val));
+      return absl::make_optional<base::TimeDelta>(base::Seconds(numeric_val));
     }
     LOG(WARNING)
         << "Manual offline signin time limit override requested but failed.";
diff --git a/chrome/browser/ash/login/signin/offline_signin_limiter_unittest.cc b/chrome/browser/ash/login/signin/offline_signin_limiter_unittest.cc
index 86c28b8..fe8d547 100644
--- a/chrome/browser/ash/login/signin/offline_signin_limiter_unittest.cc
+++ b/chrome/browser/ash/login/signin/offline_signin_limiter_unittest.cc
@@ -233,7 +233,7 @@
   DestroyLimiter();
 
   // Advance clock by 1 hour.
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
 
   // Authenticate offline. Verify that the flag enforcing online login is not
   // changed.
@@ -316,7 +316,7 @@
   DestroyLimiter();
 
   // Advance time by an hour.
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
 
   // Authenticate against Gaia without SAML. Verify that the flag enforcing
   // online login is cleared and the time of last login without SAML is updated.
@@ -342,7 +342,7 @@
 
   // Advance time by an hour.
   const base::Time gaia_signin_time = task_environment_.GetMockClock()->Now();
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
 
   // Authenticate offline. Verify that the flag enforcing online login and the
   // time of last login without SAML are not changed.
@@ -389,7 +389,7 @@
   DestroyLimiter();
 
   // Advance time by an hour.
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
 
   // Authenticate against Gaia without SAML. Verify that the flag enforcing
   // online login is cleared and the time of last login without SAML is updated.
@@ -415,7 +415,7 @@
 
   // Advance time by an hour.
   const base::Time gaia_signin_time = task_environment_.GetMockClock()->Now();
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
 
   // Authenticate offline. Verify that the flag enforcing online login and the
   // time of last login without SAML are not changed.
@@ -544,7 +544,7 @@
   prefs->SetInteger(prefs::kGaiaOfflineSigninTimeLimitDays, 7);  // 1 week.
 
   // Advance time by four weeks.
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(28));  // 4 weeks.
+  task_environment_.FastForwardBy(base::Days(28));  // 4 weeks.
 
   // Authenticate against Gaia without SAML. Verify that the flag enforcing
   // online login is cleared and the time of last login without SAML is updated.
@@ -576,7 +576,7 @@
 
   // Advance time by four weeks.
   const base::Time gaia_signin_time = task_environment_.GetMockClock()->Now();
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(28));  // 4 weeks.
+  task_environment_.FastForwardBy(base::Days(28));  // 4 weeks.
 
   // Authenticate offline. Verify that the flag enforcing online login is
   // set and the time of last login without SAML is not changed.
@@ -622,7 +622,7 @@
 
   // Suspend for 4 weeks.
   test_power_monitor_source_.Suspend();
-  task_environment_.AdvanceClock(base::TimeDelta::FromDays(28));  // 4 weeks.
+  task_environment_.AdvanceClock(base::Days(28));  // 4 weeks.
 
   // Resume power. Verify that the flag enforcing online login is set.
   Mock::VerifyAndClearExpectations(user_manager_);
@@ -649,7 +649,7 @@
   prefs->SetBoolean(prefs::kLockScreenReauthenticationEnabled, true);
 
   // Advance time by four weeks.
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(28));  // 4 weeks.
+  task_environment_.FastForwardBy(base::Days(28));  // 4 weeks.
 
   // Authenticate offline and check if InSessionPasswordSyncManager is created.
   CreateLimiter();
@@ -714,7 +714,7 @@
 
   // Advance time by an hour.
   const base::Time gaia_signin_time = task_environment_.GetMockClock()->Now();
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
 
   // Authenticate offline. Verify that the flag enforcing online login and the
   // time of last login without SAML are not changed.
@@ -958,7 +958,7 @@
                  task_environment_.GetMockClock()->Now());
 
   // Advance time by four weeks.
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(28));  // 4 weeks.
+  task_environment_.FastForwardBy(base::Days(28));  // 4 weeks.
 
   // Authenticate against GAIA without SAML. Verify that the flag enforcing
   // online login and the time of last login with SAML are cleared.
@@ -1006,7 +1006,7 @@
   DestroyLimiter();
 
   // Advance time by an hour.
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
 
   // Authenticate against GAIA with SAML. Verify that the flag enforcing online
   // login is cleared and the time of last login with SAML is updated.
@@ -1032,7 +1032,7 @@
 
   // Advance time by an hour.
   const base::Time gaia_signin_time = task_environment_.GetMockClock()->Now();
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
 
   // Authenticate offline. Verify that the flag enforcing online login and the
   // time of last login with SAML are not changed.
@@ -1060,7 +1060,7 @@
               SaveForceOnlineSignin(test_saml_account_id_, true))
       .Times(1);
   // Advance time by four weeks.
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(28));  // 4 weeks.
+  task_environment_.FastForwardBy(base::Days(28));  // 4 weeks.
 }
 
 TEST_F(OfflineSigninLimiterTest, SAMLNoLimit) {
@@ -1092,7 +1092,7 @@
   DestroyLimiter();
 
   // Advance time by an hour.
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
 
   // Authenticate against GAIA with SAML. Verify that the flag enforcing online
   // login is cleared and the time of last login with SAML is updated.
@@ -1118,7 +1118,7 @@
 
   // Advance time by an hour.
   const base::Time gaia_signin_time = task_environment_.GetMockClock()->Now();
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
 
   // Authenticate offline. Verify that the flag enforcing online login and the
   // time of last login with SAML are not changed.
@@ -1242,7 +1242,7 @@
                  task_environment_.GetMockClock()->Now());
 
   // Advance time by four weeks.
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(28));  // 4 weeks.
+  task_environment_.FastForwardBy(base::Days(28));  // 4 weeks.
 
   // Authenticate against GAIA with SAML. Verify that the flag enforcing online
   // login is cleared and the time of last login with SAML is updated.
@@ -1273,7 +1273,7 @@
 
   // Advance time by four weeks.
   const base::Time gaia_signin_time = task_environment_.GetMockClock()->Now();
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(28));  // 4 weeks.
+  task_environment_.FastForwardBy(base::Days(28));  // 4 weeks.
 
   // Authenticate offline. Verify that the flag enforcing online login is
   // set and the time of last login with SAML is not changed.
@@ -1315,7 +1315,7 @@
 
   // Suspend for 4 weeks.
   test_power_monitor_source_.Suspend();
-  task_environment_.AdvanceClock(base::TimeDelta::FromDays(28));  // 4 weeks.
+  task_environment_.AdvanceClock(base::Days(28));  // 4 weeks.
 
   // Resume power. Verify that the flag enforcing online login is set.
   Mock::VerifyAndClearExpectations(user_manager_);
@@ -1338,13 +1338,13 @@
   prefs->SetTime(prefs::kSAMLLastGAIASignInTime,
                  task_environment_.GetMockClock()->Now());
   prefs->SetInteger(prefs::kSAMLOfflineSigninTimeLimit,
-                    base::TimeDelta::FromDays(1).InSeconds());  // 1 day.
+                    base::Days(1).InSeconds());  // 1 day.
 
   // Enable re-authentication on the lock screen.
   prefs->SetBoolean(prefs::kLockScreenReauthenticationEnabled, true);
 
   // Advance time by four weeks.
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(28));  // 4 weeks.
+  task_environment_.FastForwardBy(base::Days(28));  // 4 weeks.
 
   // Authenticate offline and check if InSessionPasswordSyncManager is created.
   CreateLimiter();
diff --git a/chrome/browser/ash/login/signin/token_handle_util.cc b/chrome/browser/ash/login/signin/token_handle_util.cc
index d510877..9c64cea 100644
--- a/chrome/browser/ash/login/signin/token_handle_util.cc
+++ b/chrome/browser/ash/login/signin/token_handle_util.cc
@@ -27,7 +27,7 @@
 
 constexpr int kMaxRetries = 3;
 
-constexpr base::TimeDelta kCacheStatusTime = base::TimeDelta::FromHours(1);
+constexpr base::TimeDelta kCacheStatusTime = base::Hours(1);
 
 const char* g_invalid_token_for_testing = nullptr;
 
diff --git a/chrome/browser/ash/login/test/test_predicate_waiter.cc b/chrome/browser/ash/login/test/test_predicate_waiter.cc
index af07558..998f9a2 100644
--- a/chrome/browser/ash/login/test/test_predicate_waiter.cc
+++ b/chrome/browser/ash/login/test/test_predicate_waiter.cc
@@ -12,8 +12,7 @@
 namespace test {
 namespace {
 
-const base::TimeDelta kPredicateCheckFrequency =
-    base::TimeDelta::FromMilliseconds(200);
+const base::TimeDelta kPredicateCheckFrequency = base::Milliseconds(200);
 
 }  // anonymous namespace
 
diff --git a/chrome/browser/ash/login/ui/login_display_host_mojo.cc b/chrome/browser/ash/login/ui/login_display_host_mojo.cc
index 22134d3..d084d1c 100644
--- a/chrome/browser/ash/login/ui/login_display_host_mojo.cc
+++ b/chrome/browser/ash/login/ui/login_display_host_mojo.cc
@@ -344,8 +344,7 @@
     return;
   base::TimeDelta delta = base::TimeTicks::Now() - startup_time;
   UMA_HISTOGRAM_CUSTOM_TIMES("OOBE.BootToSignInCompleted", delta,
-                             base::TimeDelta::FromMilliseconds(10),
-                             base::TimeDelta::FromMinutes(30), 100);
+                             base::Milliseconds(10), base::Minutes(30), 100);
 }
 
 void LoginDisplayHostMojo::ShowGaiaDialog(const AccountId& prefilled_account) {
diff --git a/chrome/browser/ash/login/ui/login_display_host_webui.cc b/chrome/browser/ash/login/ui/login_display_host_webui.cc
index 2ad1bb5..63c77b7 100644
--- a/chrome/browser/ash/login/ui/login_display_host_webui.cc
+++ b/chrome/browser/ash/login/ui/login_display_host_webui.cc
@@ -865,8 +865,7 @@
   animation.AddObserver(new AnimationObserver(
       base::BindOnce(&LoginDisplayHostWebUI::ShutdownDisplayHost,
                      weak_factory_.GetWeakPtr())));
-  animation.SetTransitionDuration(
-      base::TimeDelta::FromMilliseconds(animation_speed_ms));
+  animation.SetTransitionDuration(base::Milliseconds(animation_speed_ms));
   layer->SetOpacity(0);
 }
 
@@ -928,7 +927,7 @@
   }
 
   login_window_->SetVisibilityAnimationDuration(
-      base::TimeDelta::FromMilliseconds(kLoginFadeoutTransitionDurationMs));
+      base::Milliseconds(kLoginFadeoutTransitionDurationMs));
   login_window_->SetVisibilityAnimationTransition(views::Widget::ANIMATE_HIDE);
 
   login_window_->AddObserver(this);
@@ -1137,7 +1136,7 @@
   // Don't try to play startup sound if login prompt has been already visible
   // for a long time.
   if (time_since_login_prompt_visible >
-      base::TimeDelta::FromMilliseconds(kStartupSoundMaxDelayMs)) {
+      base::Milliseconds(kStartupSoundMaxDelayMs)) {
     return;
   }
   AccessibilityManager::Get()->PlayEarcon(Sound::kStartup,
@@ -1223,10 +1222,9 @@
   }
 
   if (StartupUtils::IsEulaAccepted()) {
-    DelayNetworkCall(
-        base::TimeDelta::FromMilliseconds(kDefaultNetworkRetryDelayMS),
-        ServicesCustomizationDocument::GetInstance()
-            ->EnsureCustomizationAppliedClosure());
+    DelayNetworkCall(base::Milliseconds(kDefaultNetworkRetryDelayMS),
+                     ServicesCustomizationDocument::GetInstance()
+                         ->EnsureCustomizationAppliedClosure());
 
     g_browser_process->platform_part()
         ->GetTimezoneResolverManager()
diff --git a/chrome/browser/ash/login/ui/login_feedback.cc b/chrome/browser/ash/login/ui/login_feedback.cc
index d15ef52..cc5b93e 100644
--- a/chrome/browser/ash/login/ui/login_feedback.cc
+++ b/chrome/browser/ash/login/ui/login_feedback.cc
@@ -223,7 +223,7 @@
         FROM_HERE,
         base::BindOnce(&LoginFeedback::EnsureFeedbackUI,
                        weak_factory_.GetWeakPtr()),
-        base::TimeDelta::FromSeconds(1));
+        base::Seconds(1));
   }
 }
 
diff --git a/chrome/browser/ash/login/user_online_signin_notifier_unittest.cc b/chrome/browser/ash/login/user_online_signin_notifier_unittest.cc
index a94a04be5..7a579ff 100644
--- a/chrome/browser/ash/login/user_online_signin_notifier_unittest.cc
+++ b/chrome/browser/ash/login/user_online_signin_notifier_unittest.cc
@@ -31,13 +31,10 @@
   MOCK_METHOD(void, OnOnlineSigninEnforced, (const AccountId& account_id));
 };
 
-constexpr base::TimeDelta kLoginOnlineShortDelay =
-    base::TimeDelta::FromSeconds(10);
-constexpr base::TimeDelta kLoginOnlineLongDelay =
-    base::TimeDelta::FromSeconds(100);
-constexpr base::TimeDelta kLoginOnlineVeryLongDelay =
-    base::TimeDelta::FromSeconds(1000);
-constexpr base::TimeDelta kLoginOnlineOffset = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kLoginOnlineShortDelay = base::Seconds(10);
+constexpr base::TimeDelta kLoginOnlineLongDelay = base::Seconds(100);
+constexpr base::TimeDelta kLoginOnlineVeryLongDelay = base::Seconds(1000);
+constexpr base::TimeDelta kLoginOnlineOffset = base::Seconds(1);
 
 }  // namespace
 
diff --git a/chrome/browser/ash/login/users/avatar/user_image_manager_impl.cc b/chrome/browser/ash/login/users/avatar/user_image_manager_impl.cc
index 4872c6c..3a9b70f 100644
--- a/chrome/browser/ash/login/users/avatar/user_image_manager_impl.cc
+++ b/chrome/browser/ash/login/users/avatar/user_image_manager_impl.cc
@@ -592,12 +592,12 @@
         FROM_HERE,
         g_ignore_profile_data_download_delay_
             ? base::TimeDelta()
-            : base::TimeDelta::FromSeconds(kProfileDataDownloadDelaySec),
+            : base::Seconds(kProfileDataDownloadDelaySec),
         base::BindOnce(&UserImageManagerImpl::DownloadProfileData,
                        base::Unretained(this)));
     // Schedule periodic refreshes of the profile data.
     profile_download_periodic_timer_.Start(
-        FROM_HERE, base::TimeDelta::FromSeconds(kProfileRefreshIntervalSec),
+        FROM_HERE, base::Seconds(kProfileRefreshIntervalSec),
         base::BindRepeating(&UserImageManagerImpl::DownloadProfileData,
                             base::Unretained(this)));
   } else {
@@ -799,8 +799,7 @@
   if (reason == ProfileDownloaderDelegate::NETWORK_ERROR) {
     // Retry download after a delay if a network error occurred.
     profile_download_one_shot_timer_.Start(
-        FROM_HERE,
-        base::TimeDelta::FromSeconds(kProfileDataDownloadRetryIntervalSec),
+        FROM_HERE, base::Seconds(kProfileDataDownloadRetryIntervalSec),
         base::BindOnce(&UserImageManagerImpl::DownloadProfileData,
                        base::Unretained(this)));
   }
diff --git a/chrome/browser/ash/login/version_updater/update_time_estimator.cc b/chrome/browser/ash/login/version_updater/update_time_estimator.cc
index 8bfb744..7e1a29c8 100644
--- a/chrome/browser/ash/login/version_updater/update_time_estimator.cc
+++ b/chrome/browser/ash/login/version_updater/update_time_estimator.cc
@@ -14,9 +14,9 @@
 namespace {
 
 // Estimation time needed for each stage to complete in seconds.
-constexpr base::TimeDelta kDownloadTime = base::TimeDelta::FromMinutes(50);
-constexpr base::TimeDelta kVerifyingTime = base::TimeDelta::FromMinutes(5);
-constexpr base::TimeDelta kFinalizingTime = base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kDownloadTime = base::Minutes(50);
+constexpr base::TimeDelta kVerifyingTime = base::Minutes(5);
+constexpr base::TimeDelta kFinalizingTime = base::Minutes(5);
 
 // Progress in percent falls on a stage. Should be 100 in total.
 const int kDownloadProgress = 90;
@@ -40,7 +40,7 @@
 };
 
 // Minimum timestep between two consecutive measurements for the download rates.
-constexpr const base::TimeDelta kMinTimeStep = base::TimeDelta::FromSeconds(1);
+constexpr const base::TimeDelta kMinTimeStep = base::Seconds(1);
 
 // Smooth factor that is used for the average downloading speed
 // estimation.
@@ -52,7 +52,7 @@
 const double kDownloadAverageSpeedDropBound = 1e-8;
 
 // An upper bound for possible downloading time left estimations.
-constexpr const base::TimeDelta kMaxTimeLeft = base::TimeDelta::FromDays(1);
+constexpr const base::TimeDelta kMaxTimeLeft = base::Days(1);
 
 }  // anonymous namespace
 
@@ -184,8 +184,7 @@
   time_left = std::min(time_left, kMaxTimeLeft.InSecondsF());
 
   has_download_time_estimation_ = true;
-  download_time_left_ =
-      base::TimeDelta::FromSeconds(static_cast<int>(round(time_left)));
+  download_time_left_ = base::Seconds(static_cast<int>(round(time_left)));
 }
 
 }  // namespace ash
diff --git a/chrome/browser/ash/login/version_updater/update_time_estimator_unittest.cc b/chrome/browser/ash/login/version_updater/update_time_estimator_unittest.cc
index 80b91d7..ec0bb41ea 100644
--- a/chrome/browser/ash/login/version_updater/update_time_estimator_unittest.cc
+++ b/chrome/browser/ash/login/version_updater/update_time_estimator_unittest.cc
@@ -11,10 +11,8 @@
 
 constexpr int kFinalizingTimeInSeconds = 5 * 60;
 
-constexpr base::TimeDelta kTimeAdvanceSeconds10 =
-    base::TimeDelta::FromSeconds(10);
-constexpr base::TimeDelta kTimeAdvanceSeconds60 =
-    base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kTimeAdvanceSeconds10 = base::Seconds(10);
+constexpr base::TimeDelta kTimeAdvanceSeconds60 = base::Seconds(60);
 constexpr base::TimeDelta kZeroTime = base::TimeDelta();
 
 }  // anonymous namespace
@@ -71,10 +69,9 @@
 
   tick_clock_.Advance(kTimeAdvanceSeconds10);
   EXPECT_EQ(time_estimator_.GetUpdateStatus().time_left,
-            base::TimeDelta::FromSeconds(kFinalizingTimeInSeconds) -
-                kTimeAdvanceSeconds10);
+            base::Seconds(kFinalizingTimeInSeconds) - kTimeAdvanceSeconds10);
 
-  tick_clock_.Advance(base::TimeDelta::FromSeconds(kFinalizingTimeInSeconds));
+  tick_clock_.Advance(base::Seconds(kFinalizingTimeInSeconds));
   EXPECT_EQ(time_estimator_.GetUpdateStatus().time_left, kZeroTime);
 }
 
diff --git a/chrome/browser/ash/login/version_updater/version_updater.cc b/chrome/browser/ash/login/version_updater/version_updater.cc
index 7d105172..39215f3b 100644
--- a/chrome/browser/ash/login/version_updater/version_updater.cc
+++ b/chrome/browser/ash/login/version_updater/version_updater.cc
@@ -28,8 +28,7 @@
 // Time in seconds after which we decide that the device has not rebooted
 // automatically. If reboot didn't happen during this interval, ask user to
 // reboot device manually.
-constexpr const base::TimeDelta kWaitForRebootTime =
-    base::TimeDelta::FromSeconds(3);
+constexpr const base::TimeDelta kWaitForRebootTime = base::Seconds(3);
 
 // Progress bar stages. Each represents progress bar value
 // at the beginning of each stage.
@@ -45,7 +44,7 @@
 const int kDownloadProgressIncrement = 60;
 
 // Period of time between planned updates.
-constexpr const base::TimeDelta kUpdateTime = base::TimeDelta::FromSeconds(1);
+constexpr const base::TimeDelta kUpdateTime = base::Seconds(1);
 
 }  // anonymous namespace
 
diff --git a/chrome/browser/ash/login/version_updater/version_updater_unittest.cc b/chrome/browser/ash/login/version_updater/version_updater_unittest.cc
index d1decb7..eb371de 100644
--- a/chrome/browser/ash/login/version_updater/version_updater_unittest.cc
+++ b/chrome/browser/ash/login/version_updater/version_updater_unittest.cc
@@ -42,7 +42,7 @@
 constexpr const char kNetworkGuid[] = "test_network";
 
 MATCHER_P(TimeLeftEq, time_in_seconds, "") {
-  return arg.total_time_left == base::TimeDelta::FromSeconds(time_in_seconds);
+  return arg.total_time_left == base::Seconds(time_in_seconds);
 }
 
 MATCHER_P2(DowloadingTimeLeftEq, can_be_used, time, "") {
@@ -227,8 +227,7 @@
     EXPECT_CALL(*mock_delegate_,
                 UpdateInfoChanged(TimeLeftEq(time_left - seconds - 1)));
   }
-  task_environment_.FastForwardBy(
-      base::TimeDelta::FromSeconds(time_spent_on_downloading));
+  task_environment_.FastForwardBy(base::Seconds(time_spent_on_downloading));
   Mock::VerifyAndClearExpectations(&mock_delegate_);
 
   // VERIFYING starts.
@@ -248,8 +247,7 @@
       *mock_delegate_,
       UpdateInfoChanged(TimeLeftEq(time_left - kVerifyingTimeInSeconds)))
       .Times(over_time + 1);
-  task_environment_.FastForwardBy(
-      base::TimeDelta::FromSeconds(time_spent_on_verifying));
+  task_environment_.FastForwardBy(base::Seconds(time_spent_on_verifying));
   Mock::VerifyAndClearExpectations(&mock_delegate_);
 
   // FINALIZING starts.
@@ -293,7 +291,7 @@
   fake_update_engine_client_->NotifyObserversThatStatusChanged(status);
   EXPECT_CALL(*mock_delegate_,
               UpdateInfoChanged(DowloadingTimeLeftEq(false, 0)));
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
 
   status.set_progress(0.01);
   EXPECT_CALL(*mock_delegate_,
diff --git a/chrome/browser/ash/login/wizard_controller.cc b/chrome/browser/ash/login/wizard_controller.cc
index db1e170..c4d533a1 100644
--- a/chrome/browser/ash/login/wizard_controller.cc
+++ b/chrome/browser/ash/login/wizard_controller.cc
@@ -336,8 +336,7 @@
   // can not be used here, because `histogram_name` is calculated dynamically
   // and changes from call to call.
   base::HistogramBase* histogram = base::Histogram::FactoryTimeGet(
-      histogram_name, base::TimeDelta::FromMilliseconds(10),
-      base::TimeDelta::FromMinutes(3), 50,
+      histogram_name, base::Milliseconds(10), base::Minutes(3), 50,
       base::HistogramBase::kUmaTargetedHistogramFlag);
   histogram->AddTime(step_time);
 
@@ -347,9 +346,8 @@
   std::string histogram_name_with_reason =
       "OOBE.StepCompletionTimeByExitReason." + screen_name + "." + exit_reason;
   base::HistogramBase* histogram_with_reason = base::Histogram::FactoryTimeGet(
-      histogram_name_with_reason, base::TimeDelta::FromMilliseconds(10),
-      base::TimeDelta::FromMinutes(10), 100,
-      base::HistogramBase::kUmaTargetedHistogramFlag);
+      histogram_name_with_reason, base::Milliseconds(10), base::Minutes(10),
+      100, base::HistogramBase::kUmaTargetedHistogramFlag);
   histogram_with_reason->AddTime(step_time);
 }
 
@@ -1836,10 +1834,9 @@
     return;
   }
 
-  DelayNetworkCall(
-      base::TimeDelta::FromMilliseconds(kDefaultNetworkRetryDelayMS),
-      base::BindOnce(&WizardController::StartTimezoneResolve,
-                     weak_factory_.GetWeakPtr()));
+  DelayNetworkCall(base::Milliseconds(kDefaultNetworkRetryDelayMS),
+                   base::BindOnce(&WizardController::StartTimezoneResolve,
+                                  weak_factory_.GetWeakPtr()));
 }
 
 // Resolving the timezone consists of first determining the location,
@@ -1857,7 +1854,7 @@
                       : g_browser_process->shared_url_loader_factory(),
       SimpleGeolocationProvider::DefaultGeolocationProviderURL());
   geolocation_provider_->RequestGeolocation(
-      base::TimeDelta::FromSeconds(kResolveTimeZoneTimeoutSeconds),
+      base::Seconds(kResolveTimeZoneTimeoutSeconds),
       false /* send_wifi_geolocation_data */,
       false /* send_cellular_geolocation_data */,
       base::BindOnce(&WizardController::OnLocationResolved,
@@ -1866,10 +1863,9 @@
 
 void WizardController::PerformPostEulaActions() {
   StartNetworkTimezoneResolve();
-  DelayNetworkCall(
-      base::TimeDelta::FromMilliseconds(kDefaultNetworkRetryDelayMS),
-      ServicesCustomizationDocument::GetInstance()
-          ->EnsureCustomizationAppliedClosure());
+  DelayNetworkCall(base::Milliseconds(kDefaultNetworkRetryDelayMS),
+                   ServicesCustomizationDocument::GetInstance()
+                       ->EnsureCustomizationAppliedClosure());
 
   // Now that EULA has been accepted (for official builds), enable portal check.
   // ChromiumOS builds would go though this code path too.
@@ -2344,8 +2340,7 @@
                                           const base::TimeDelta elapsed) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
 
-  const base::TimeDelta timeout =
-      base::TimeDelta::FromSeconds(kResolveTimeZoneTimeoutSeconds);
+  const base::TimeDelta timeout = base::Seconds(kResolveTimeZoneTimeoutSeconds);
   // Ignore invalid position.
   if (!position.Valid())
     return;
diff --git a/chrome/browser/ash/login/wizard_controller_browsertest.cc b/chrome/browser/ash/login/wizard_controller_browsertest.cc
index dcb4060..22b3806 100644
--- a/chrome/browser/ash/login/wizard_controller_browsertest.cc
+++ b/chrome/browser/ash/login/wizard_controller_browsertest.cc
@@ -297,8 +297,7 @@
 // negative, the return value represents `days_offset` days in the past.
 std::string GenerateEmbargoEndDate(int days_offset) {
   base::Time::Exploded exploded;
-  base::Time target_time =
-      base::Time::Now() + base::TimeDelta::FromDays(days_offset);
+  base::Time target_time = base::Time::Now() + base::Days(days_offset);
   target_time.UTCExplode(&exploded);
 
   std::string embargo_end_date_string = base::StringPrintf(
@@ -1788,7 +1787,7 @@
 
   // The timeout is 45 seconds, see `auto_enrollment_controller.cc`.
   // Fast-forward by a bit more than that.
-  task_runner->FastForwardBy(base::TimeDelta::FromSeconds(45 + 1));
+  task_runner->FastForwardBy(base::Seconds(45 + 1));
 
   EXPECT_EQ(AutoEnrollmentController::AutoEnrollmentCheckType::kNone,
             auto_enrollment_controller()->auto_enrollment_check_type());
diff --git a/chrome/browser/ash/mobile/mobile_activator.cc b/chrome/browser/ash/mobile/mobile_activator.cc
index 2aba5fd..10d574a 100644
--- a/chrome/browser/ash/mobile/mobile_activator.cc
+++ b/chrome/browser/ash/mobile/mobile_activator.cc
@@ -249,9 +249,8 @@
 }
 
 void MobileActivator::StartOTASPTimer() {
-  state_duration_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(kOTASPRetryDelay), this,
-      &MobileActivator::HandleOTASPTimeout);
+  state_duration_timer_.Start(FROM_HERE, base::Milliseconds(kOTASPRetryDelay),
+                              this, &MobileActivator::HandleOTASPTimeout);
 }
 
 void MobileActivator::StartActivation() {
@@ -420,14 +419,14 @@
       network->path(), base::DoNothing(), network_handler::ErrorCallback());
   // Keep trying to connect until told otherwise.
   continue_reconnect_timer_.Stop();
-  continue_reconnect_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(kReconnectDelayMS), this,
-      &MobileActivator::ContinueConnecting);
+  continue_reconnect_timer_.Start(FROM_HERE,
+                                  base::Milliseconds(kReconnectDelayMS), this,
+                                  &MobileActivator::ContinueConnecting);
   // If we don't ever connect again, we're going to call this a failure.
   reconnect_timeout_timer_.Stop();
-  reconnect_timeout_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(kMaxReconnectTime), this,
-      &MobileActivator::ReconnectTimedOut);
+  reconnect_timeout_timer_.Start(FROM_HERE,
+                                 base::Milliseconds(kMaxReconnectTime), this,
+                                 &MobileActivator::ReconnectTimedOut);
 }
 
 void MobileActivator::ReconnectTimedOut() {
@@ -803,7 +802,7 @@
           FROM_HERE,
           base::BindOnce(&MobileActivator::RetryOTASP,
                          weak_ptr_factory_.GetWeakPtr()),
-          base::TimeDelta::FromMilliseconds(kOTASPRetryDelay));
+          base::Milliseconds(kOTASPRetryDelay));
       break;
     }
     case PlanActivationState::kStartOTASP:
diff --git a/chrome/browser/ash/nearby/nearby_process_manager_impl.cc b/chrome/browser/ash/nearby/nearby_process_manager_impl.cc
index 54e4f8e..6bdb0107 100644
--- a/chrome/browser/ash/nearby/nearby_process_manager_impl.cc
+++ b/chrome/browser/ash/nearby/nearby_process_manager_impl.cc
@@ -21,8 +21,7 @@
 
 NearbyProcessManagerImpl::Factory* g_test_factory = nullptr;
 
-constexpr base::TimeDelta kProcessCleanupTimeout =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kProcessCleanupTimeout = base::Seconds(5);
 
 void OnSharingShutDownComplete(
     mojo::Remote<sharing::mojom::Sharing> sharing,
diff --git a/chrome/browser/ash/net/network_diagnostics/arc_ping_routine.cc b/chrome/browser/ash/net/network_diagnostics/arc_ping_routine.cc
index b3f690c..f0c88bf5 100644
--- a/chrome/browser/ash/net/network_diagnostics/arc_ping_routine.cc
+++ b/chrome/browser/ash/net/network_diagnostics/arc_ping_routine.cc
@@ -109,7 +109,7 @@
       FROM_HERE,
       base::BindOnce(&ArcPingRoutine::HandleTimeout,
                      weak_ptr_factory_.GetWeakPtr()),
-      base::TimeDelta::FromSeconds(kTimeoutGetManagedPropertiesSeconds));
+      base::Seconds(kTimeoutGetManagedPropertiesSeconds));
 
   for (const std::string& guid : guids) {
     remote_cros_network_config_->GetManagedProperties(
diff --git a/chrome/browser/ash/net/network_diagnostics/dns_latency_routine.cc b/chrome/browser/ash/net/network_diagnostics/dns_latency_routine.cc
index accc5a1d..1659db7 100644
--- a/chrome/browser/ash/net/network_diagnostics/dns_latency_routine.cc
+++ b/chrome/browser/ash/net/network_diagnostics/dns_latency_routine.cc
@@ -37,9 +37,9 @@
 // |kPossibleChars|.
 constexpr int kHostPrefixLength = 8;
 constexpr base::TimeDelta kBadLatencyMs =
-    base::TimeDelta::FromMilliseconds(util::kDnsPotentialProblemLatencyMs);
+    base::Milliseconds(util::kDnsPotentialProblemLatencyMs);
 constexpr base::TimeDelta kVeryBadLatencyMs =
-    base::TimeDelta::FromMilliseconds(util::kDnsProblemLatencyMs);
+    base::Milliseconds(util::kDnsProblemLatencyMs);
 constexpr char kHostSuffix[] = "-ccd-testing-v4.metric.gstatic.com";
 
 const std::string GetRandomString(int length) {
diff --git a/chrome/browser/ash/net/network_diagnostics/dns_latency_routine_unittest.cc b/chrome/browser/ash/net/network_diagnostics/dns_latency_routine_unittest.cc
index 935bfb5..f49eaa90 100644
--- a/chrome/browser/ash/net/network_diagnostics/dns_latency_routine_unittest.cc
+++ b/chrome/browser/ash/net/network_diagnostics/dns_latency_routine_unittest.cc
@@ -22,12 +22,10 @@
 
 const int kFakePortNumber = 1234;
 const char kFakeTestProfile[] = "test";
-const base::TimeDelta kSuccessfulDnsResolutionDelayMs =
-    base::TimeDelta::FromMilliseconds(100);
-const base::TimeDelta kSlightlyAboveThresholdDelayMs =
-    base::TimeDelta::FromMilliseconds(450);
+const base::TimeDelta kSuccessfulDnsResolutionDelayMs = base::Milliseconds(100);
+const base::TimeDelta kSlightlyAboveThresholdDelayMs = base::Milliseconds(450);
 const base::TimeDelta kSignificantlyAboveThresholdDelayMs =
-    base::TimeDelta::FromMilliseconds(550);
+    base::Milliseconds(550);
 
 class FakeTickClock : public base::TickClock {
  public:
diff --git a/chrome/browser/ash/net/network_diagnostics/gateway_can_be_pinged_routine.cc b/chrome/browser/ash/net/network_diagnostics/gateway_can_be_pinged_routine.cc
index 0325820..1b93351 100644
--- a/chrome/browser/ash/net/network_diagnostics/gateway_can_be_pinged_routine.cc
+++ b/chrome/browser/ash/net/network_diagnostics/gateway_can_be_pinged_routine.cc
@@ -34,8 +34,7 @@
 }
 
 // The maximum latency threshold (in milliseconds) for pinging the gateway.
-constexpr base::TimeDelta kMaxAllowedLatencyMs =
-    base::TimeDelta::FromMilliseconds(1500);
+constexpr base::TimeDelta kMaxAllowedLatencyMs = base::Milliseconds(1500);
 
 }  // namespace
 
@@ -154,7 +153,7 @@
   if (!avg_value || !avg_value->is_double()) {
     return false;
   }
-  *latency = base::TimeDelta::FromMilliseconds(avg_value->GetDouble());
+  *latency = base::Milliseconds(avg_value->GetDouble());
   *ip = ip_addr;
 
   return true;
diff --git a/chrome/browser/ash/net/network_diagnostics/http_request_manager_unittest.cc b/chrome/browser/ash/net/network_diagnostics/http_request_manager_unittest.cc
index dafed1a..08c69f5a 100644
--- a/chrome/browser/ash/net/network_diagnostics/http_request_manager_unittest.cc
+++ b/chrome/browser/ash/net/network_diagnostics/http_request_manager_unittest.cc
@@ -87,7 +87,7 @@
 TEST_F(HttpRequestManagerTest, TestSuccessfulConnection) {
   SetExpectedConnectionResult(true);
   http_request_manager()->MakeRequest(
-      GURL(kFakeUrl), base::TimeDelta::FromMilliseconds(timeout_ms),
+      GURL(kFakeUrl), base::Milliseconds(timeout_ms),
       base::BindOnce(&HttpRequestManagerTest::VerifyConnected, weak_ptr()));
   EXPECT_EQ(1, test_url_loader_factory().NumPending());
   EXPECT_TRUE(test_url_loader_factory().SimulateResponseForPendingRequest(
@@ -98,7 +98,7 @@
 TEST_F(HttpRequestManagerTest, TestUnsuccessfulConnection) {
   SetExpectedConnectionResult(false);
   http_request_manager()->MakeRequest(
-      GURL(kFakeUrl), base::TimeDelta::FromMilliseconds(timeout_ms),
+      GURL(kFakeUrl), base::Milliseconds(timeout_ms),
       base::BindOnce(&HttpRequestManagerTest::VerifyConnected, weak_ptr()));
   EXPECT_EQ(1, test_url_loader_factory().NumPending());
   EXPECT_TRUE(test_url_loader_factory().SimulateResponseForPendingRequest(
@@ -109,12 +109,11 @@
 TEST_F(HttpRequestManagerTest, TestTimeoutExceeded) {
   SetExpectedConnectionResult(false);
   http_request_manager()->MakeRequest(
-      GURL(kFakeUrl), base::TimeDelta::FromMilliseconds(timeout_ms),
+      GURL(kFakeUrl), base::Milliseconds(timeout_ms),
       base::BindOnce(&HttpRequestManagerTest::VerifyConnected, weak_ptr()));
   EXPECT_EQ(1, test_url_loader_factory().NumPending());
   // Advance the clock by |timeout_ms| + 1 milliseconds.
-  task_environment().FastForwardBy(
-      base::TimeDelta::FromMilliseconds(timeout_ms + 1));
+  task_environment().FastForwardBy(base::Milliseconds(timeout_ms + 1));
   // HTTP requests time out after |timeout_ms| milliseconds.
   EXPECT_EQ(0, test_url_loader_factory().NumPending());
   VerifyCallbackInvoked(true);
@@ -123,7 +122,7 @@
 TEST_F(HttpRequestManagerTest, TestRetryHttpRequest) {
   SetExpectedConnectionResult(true);
   http_request_manager()->MakeRequest(
-      GURL(kFakeUrl), base::TimeDelta::FromMilliseconds(timeout_ms),
+      GURL(kFakeUrl), base::Milliseconds(timeout_ms),
       base::BindOnce(&HttpRequestManagerTest::VerifyConnected, weak_ptr()));
   EXPECT_EQ(1, test_url_loader_factory().NumPending());
   EXPECT_TRUE(test_url_loader_factory().SimulateResponseForPendingRequest(
@@ -140,16 +139,15 @@
 TEST_F(HttpRequestManagerTest, TestOverlappingRequests) {
   SetExpectedConnectionResult(true);
   http_request_manager()->MakeRequest(
-      GURL(kFakeUrl), base::TimeDelta::FromMilliseconds(timeout_ms),
+      GURL(kFakeUrl), base::Milliseconds(timeout_ms),
       base::BindOnce(&HttpRequestManagerTest::VerifyConnected, weak_ptr()));
   EXPECT_EQ(1, test_url_loader_factory().NumPending());
   // Advance the the clock by |timeout_ms| - 1 milliseconds, ensuring the
   // request has not timed out.
-  task_environment().FastForwardBy(
-      base::TimeDelta::FromMilliseconds(timeout_ms - 1));
+  task_environment().FastForwardBy(base::Milliseconds(timeout_ms - 1));
   // Launch another HTTP request.
   http_request_manager()->MakeRequest(
-      GURL(kFakeUrl), base::TimeDelta::FromMilliseconds(timeout_ms),
+      GURL(kFakeUrl), base::Milliseconds(timeout_ms),
       base::BindOnce(&HttpRequestManagerTest::VerifyConnected, weak_ptr()));
   // Only one request is expected because the first request was cancelled when
   // the second one was created.
@@ -163,7 +161,7 @@
 TEST_F(HttpRequestManagerTest, TestNonOverlappingRequests) {
   SetExpectedConnectionResult(false);
   http_request_manager()->MakeRequest(
-      GURL(kFakeUrl), base::TimeDelta::FromMilliseconds(timeout_ms),
+      GURL(kFakeUrl), base::Milliseconds(timeout_ms),
       base::BindOnce(&HttpRequestManagerTest::VerifyConnected, weak_ptr()));
   EXPECT_EQ(1, test_url_loader_factory().NumPending());
   EXPECT_TRUE(test_url_loader_factory().SimulateResponseForPendingRequest(
@@ -174,11 +172,10 @@
   ResetCallbackInvoked();
   // Advance the clock by |timeout_ms| + 1 milliseconds to simulate that the
   // second request does not overlap with the first.
-  task_environment().FastForwardBy(
-      base::TimeDelta::FromMilliseconds(timeout_ms + 1));
+  task_environment().FastForwardBy(base::Milliseconds(timeout_ms + 1));
   SetExpectedConnectionResult(true);
   http_request_manager()->MakeRequest(
-      GURL(kFakeUrl), base::TimeDelta::FromMilliseconds(timeout_ms),
+      GURL(kFakeUrl), base::Milliseconds(timeout_ms),
       base::BindOnce(&HttpRequestManagerTest::VerifyConnected, weak_ptr()));
   EXPECT_EQ(1, test_url_loader_factory().NumPending());
   EXPECT_TRUE(test_url_loader_factory().SimulateResponseForPendingRequest(
@@ -190,7 +187,7 @@
   // A connection result will not be returned in this scenario and
   // VerifyConnected() should be invoked.
   http_request_manager()->MakeRequest(
-      GURL(kFakeUrl), base::TimeDelta::FromMilliseconds(timeout_ms),
+      GURL(kFakeUrl), base::Milliseconds(timeout_ms),
       base::BindOnce(&HttpRequestManagerTest::VerifyConnected, weak_ptr()));
   EXPECT_EQ(1, test_url_loader_factory().NumPending());
   ResetHttpRequestManager();
diff --git a/chrome/browser/ash/net/network_diagnostics/https_latency_routine.cc b/chrome/browser/ash/net/network_diagnostics/https_latency_routine.cc
index ecfa835..a110374 100644
--- a/chrome/browser/ash/net/network_diagnostics/https_latency_routine.cc
+++ b/chrome/browser/ash/net/network_diagnostics/https_latency_routine.cc
@@ -28,14 +28,11 @@
 constexpr int kHostPrefixLength = 8;
 constexpr int kHttpsPort = 443;
 constexpr char kHttpsScheme[] = "https://";
-constexpr base::TimeDelta kRequestTimeoutMs =
-    base::TimeDelta::FromMilliseconds(5 * 1000);
+constexpr base::TimeDelta kRequestTimeoutMs = base::Milliseconds(5 * 1000);
 // Requests taking longer than 1000 ms are problematic.
-constexpr base::TimeDelta kProblemLatencyMs =
-    base::TimeDelta::FromMilliseconds(1000);
+constexpr base::TimeDelta kProblemLatencyMs = base::Milliseconds(1000);
 // Requests lasting between 500 ms and 1000 ms are potentially problematic.
-constexpr base::TimeDelta kPotentialProblemLatencyMs =
-    base::TimeDelta::FromMilliseconds(500);
+constexpr base::TimeDelta kPotentialProblemLatencyMs = base::Milliseconds(500);
 
 base::TimeDelta MedianLatency(std::vector<base::TimeDelta>& latencies) {
   if (latencies.size() == 0) {
diff --git a/chrome/browser/ash/net/network_diagnostics/https_latency_routine_unittest.cc b/chrome/browser/ash/net/network_diagnostics/https_latency_routine_unittest.cc
index 53309544..9334944 100644
--- a/chrome/browser/ash/net/network_diagnostics/https_latency_routine_unittest.cc
+++ b/chrome/browser/ash/net/network_diagnostics/https_latency_routine_unittest.cc
@@ -23,12 +23,9 @@
 namespace network_diagnostics {
 namespace {
 
-const base::TimeDelta kNoProblemDelayMs =
-    base::TimeDelta::FromMilliseconds(100);
-const base::TimeDelta kHighLatencyDelayMs =
-    base::TimeDelta::FromMilliseconds(550);
-const base::TimeDelta kVeryHighLatencyDelayMs =
-    base::TimeDelta::FromMilliseconds(1050);
+const base::TimeDelta kNoProblemDelayMs = base::Milliseconds(100);
+const base::TimeDelta kHighLatencyDelayMs = base::Milliseconds(550);
+const base::TimeDelta kVeryHighLatencyDelayMs = base::Milliseconds(1050);
 
 // The number of hosts the the routine tests for. Based on GetHostnamesToQuery()
 // in https_latency_routine.cc.
diff --git a/chrome/browser/ash/net/network_diagnostics/udp_prober_unittest.cc b/chrome/browser/ash/net/network_diagnostics/udp_prober_unittest.cc
index ffb851f0..b02bc0d 100644
--- a/chrome/browser/ash/net/network_diagnostics/udp_prober_unittest.cc
+++ b/chrome/browser/ash/net/network_diagnostics/udp_prober_unittest.cc
@@ -128,8 +128,7 @@
   const base::span<const uint8_t> kValidStunData = util::GetStunHeader();
   const net::NetworkTrafficAnnotationTag kStunTag =
       util::GetStunNetworkAnnotationTag();
-  const base::TimeDelta kTimeoutAfterHostResolution =
-      base::TimeDelta::FromSeconds(10);
+  const base::TimeDelta kTimeoutAfterHostResolution = base::Seconds(10);
 
  private:
   content::BrowserTaskEnvironment task_environment_;
@@ -147,9 +146,9 @@
                                  /*udp_send_complete_code=*/net::OK,
                                  /*udp_on_received_code=*/net::OK,
                                  udp_on_received_data);
-  SetUdpDelays(/*connection_delay=*/base::TimeDelta::FromSeconds(1),
-               /*send_delay=*/base::TimeDelta::FromSeconds(1),
-               /*receive_delay=*/base::TimeDelta::FromSeconds(1));
+  SetUdpDelays(/*connection_delay=*/base::Seconds(1),
+               /*send_delay=*/base::Seconds(1),
+               /*receive_delay=*/base::Seconds(1));
   RunProberExpectingResult(net::OK, ProbeExitEnum::kSuccess);
 }
 
@@ -189,7 +188,7 @@
       /*udp_send_code=*/absl::nullopt,
       /*udp_on_received_code=*/absl::nullopt,
       /*udp_on_received_data=*/absl::nullopt);
-  SetUdpDelays(/*connection_delay=*/base::TimeDelta::FromSeconds(1),
+  SetUdpDelays(/*connection_delay=*/base::Seconds(1),
                /*send_delay=*/absl::nullopt,
                /*receive_delay=*/absl::nullopt);
   RunProberExpectingResult(net::ERR_CONNECTION_FAILED,
@@ -205,7 +204,7 @@
                                  /*udp_send_code=*/absl::nullopt,
                                  /*udp_on_received_code=*/absl::nullopt,
                                  /*udp_on_received_data=*/absl::nullopt);
-  SetUdpDelays(/*connection_delay=*/base::TimeDelta::FromSeconds(1),
+  SetUdpDelays(/*connection_delay=*/base::Seconds(1),
                /*send_delay=*/absl::nullopt,
                /*receive_delay=*/absl::nullopt);
   fake_network_context()->set_disconnect_during_udp_connection_attempt(true);
@@ -222,8 +221,8 @@
                                  /*udp_send_code=*/net::ERR_CONNECTION_FAILED,
                                  /*udp_on_received_code=*/absl::nullopt,
                                  /*udp_on_received_data=*/absl::nullopt);
-  SetUdpDelays(/*connection_delay=*/base::TimeDelta::FromSeconds(1),
-               /*send_delay=*/base::TimeDelta::FromSeconds(1),
+  SetUdpDelays(/*connection_delay=*/base::Seconds(1),
+               /*send_delay=*/base::Seconds(1),
                /*receive_delay=*/absl::nullopt);
   RunProberExpectingResult(net::ERR_CONNECTION_FAILED,
                            ProbeExitEnum::kSendFailure);
@@ -238,8 +237,8 @@
                                  /*udp_send_code=*/absl::nullopt,
                                  /*udp_on_received_code=*/absl::nullopt,
                                  /*udp_on_received_data=*/absl::nullopt);
-  SetUdpDelays(/*connection_delay=*/base::TimeDelta::FromSeconds(1),
-               /*send_delay=*/base::TimeDelta::FromSeconds(1),
+  SetUdpDelays(/*connection_delay=*/base::Seconds(1),
+               /*send_delay=*/base::Seconds(1),
                /*receive_delay=*/absl::nullopt);
   fake_network_context()->SetDisconnectDuringUdpSendAttempt(true);
   RunProberExpectingResult(net::ERR_FAILED,
@@ -256,9 +255,9 @@
       /*udp_send_code=*/net::OK,
       /*udp_on_received_code=*/net::ERR_CONNECTION_FAILED,
       /*udp_on_received_data=*/absl::nullopt);
-  SetUdpDelays(/*connection_delay=*/base::TimeDelta::FromSeconds(1),
-               /*send_delay=*/base::TimeDelta::FromSeconds(1),
-               /*receive_delay=*/base::TimeDelta::FromSeconds(1));
+  SetUdpDelays(/*connection_delay=*/base::Seconds(1),
+               /*send_delay=*/base::Seconds(1),
+               /*receive_delay=*/base::Seconds(1));
   RunProberExpectingResult(net::ERR_CONNECTION_FAILED,
                            ProbeExitEnum::kNetworkErrorOnReceiveFailure);
 }
@@ -272,9 +271,9 @@
                                  /*udp_send_code=*/net::OK,
                                  /*udp_on_received_code*/ net::OK,
                                  /*udp_on_received_data=*/{});
-  SetUdpDelays(/*connection_delay=*/base::TimeDelta::FromSeconds(1),
-               /*send_delay=*/base::TimeDelta::FromSeconds(1),
-               /*receive_delay=*/base::TimeDelta::FromSeconds(1));
+  SetUdpDelays(/*connection_delay=*/base::Seconds(1),
+               /*send_delay=*/base::Seconds(1),
+               /*receive_delay=*/base::Seconds(1));
   RunProberExpectingResult(net::ERR_FAILED,
                            ProbeExitEnum::kNoDataReceivedFailure);
 }
@@ -288,9 +287,9 @@
                                  /*udp_send_code=*/net::OK,
                                  /*udp_on_received_code=*/net::OK,
                                  /*udp_on_received_data=*/{});
-  SetUdpDelays(/*connection_delay=*/base::TimeDelta::FromSeconds(1),
-               /*send_delay=*/base::TimeDelta::FromSeconds(1),
-               /*receive_delay=*/base::TimeDelta::FromSeconds(1));
+  SetUdpDelays(/*connection_delay=*/base::Seconds(1),
+               /*send_delay=*/base::Seconds(1),
+               /*receive_delay=*/base::Seconds(1));
   fake_network_context()->SetDisconnectDuringUdpReceiveAttempt(true);
   RunProberExpectingResult(net::ERR_FAILED,
                            ProbeExitEnum::kMojoDisconnectFailure);
@@ -305,7 +304,7 @@
                                  /*udp_send_complete_code=*/absl::nullopt,
                                  /*udp_on_received_code=*/absl::nullopt,
                                  /*udp_on_received_data=*/{});
-  SetUdpDelays(/*connection_delay=*/base::TimeDelta::FromSeconds(15),
+  SetUdpDelays(/*connection_delay=*/base::Seconds(15),
                /*send_delay=*/absl::nullopt,
                /*receive_delay=*/absl::nullopt);
   RunProberExpectingResult(net::ERR_TIMED_OUT, ProbeExitEnum::kTimeout);
@@ -320,8 +319,8 @@
                                  /*udp_send_complete_code=*/net::OK,
                                  /*udp_on_received_code=*/absl::nullopt,
                                  /*udp_on_received_data=*/{});
-  SetUdpDelays(/*connection_delay=*/base::TimeDelta::FromSeconds(1),
-               /*send_delay=*/base::TimeDelta::FromSeconds(15),
+  SetUdpDelays(/*connection_delay=*/base::Seconds(1),
+               /*send_delay=*/base::Seconds(15),
                /*receive_delay=*/absl::nullopt);
   RunProberExpectingResult(net::ERR_TIMED_OUT, ProbeExitEnum::kTimeout);
 }
@@ -335,9 +334,9 @@
                                  /*udp_send_complete_code=*/net::OK,
                                  /*udp_on_received_code=*/net::OK,
                                  /*udp_on_received_data=*/{});
-  SetUdpDelays(/*connection_delay=*/base::TimeDelta::FromSeconds(1),
-               /*send_delay=*/base::TimeDelta::FromSeconds(1),
-               /*receive_delay=*/base::TimeDelta::FromSeconds(15));
+  SetUdpDelays(/*connection_delay=*/base::Seconds(1),
+               /*send_delay=*/base::Seconds(1),
+               /*receive_delay=*/base::Seconds(15));
   RunProberExpectingResult(net::ERR_TIMED_OUT, ProbeExitEnum::kTimeout);
 }
 
diff --git a/chrome/browser/ash/net/network_diagnostics/video_conferencing_routine.cc b/chrome/browser/ash/net/network_diagnostics/video_conferencing_routine.cc
index 7d31bc6b..23b4e2b 100644
--- a/chrome/browser/ash/net/network_diagnostics/video_conferencing_routine.cc
+++ b/chrome/browser/ash/net/network_diagnostics/video_conferencing_routine.cc
@@ -28,8 +28,7 @@
 
 // TODO(crbug/1227877): Move support details to the UI.
 const char kSupportDetails[] = "https://support.google.com/a/answer/1279090";
-const base::TimeDelta kTimeoutAfterHostResolution =
-    base::TimeDelta::FromSeconds(10);
+const base::TimeDelta kTimeoutAfterHostResolution = base::Seconds(10);
 
 VideoConferencingRoutine::VideoConferencingRoutine()
     : stun_server_hostname_(kDefaultStunServer),
diff --git a/chrome/browser/ash/net/network_health/network_health_constants.h b/chrome/browser/ash/net/network_health/network_health_constants.h
index b72f47f44..49f13f3 100644
--- a/chrome/browser/ash/net/network_health/network_health_constants.h
+++ b/chrome/browser/ash/net/network_health/network_health_constants.h
@@ -11,13 +11,11 @@
 namespace network_health {
 
 // The rate in seconds at which to sample all network's signal strengths.
-constexpr base::TimeDelta kSignalStrengthSampleRate =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kSignalStrengthSampleRate = base::Seconds(5);
 
 // This value represents the size of the sampling window for all network's
 // signal strength. Samples older than this duration are discarded.
-constexpr base::TimeDelta kSignalStrengthSampleWindow =
-    base::TimeDelta::FromMinutes(15);
+constexpr base::TimeDelta kSignalStrengthSampleWindow = base::Minutes(15);
 
 }  // namespace network_health
 }  // namespace chromeos
diff --git a/chrome/browser/ash/net/network_portal_detector_impl.cc b/chrome/browser/ash/net/network_portal_detector_impl.cc
index 6d0ea6f..136c3d5 100644
--- a/chrome/browser/ash/net/network_portal_detector_impl.cc
+++ b/chrome/browser/ash/net/network_portal_detector_impl.cc
@@ -236,7 +236,7 @@
     return;
 
   if (proxy_config_changed) {
-    ScheduleAttempt(base::TimeDelta::FromSeconds(kProxyChangeDelaySec));
+    ScheduleAttempt(base::Seconds(kProxyChangeDelaySec));
     return;
   }
 
@@ -442,7 +442,7 @@
     NET_LOG(EVENT) << "Restarting portal detection due to auth change"
                    << " id=" << NetworkGuidId(default_network_id_);
     StopDetection();
-    ScheduleAttempt(base::TimeDelta::FromSeconds(kProxyChangeDelaySec));
+    ScheduleAttempt(base::Seconds(kProxyChangeDelaySec));
   }
 }
 
diff --git a/chrome/browser/ash/net/network_portal_detector_impl_unittest.cc b/chrome/browser/ash/net/network_portal_detector_impl_unittest.cc
index 2387f8e..53dba4d8 100644
--- a/chrome/browser/ash/net/network_portal_detector_impl_unittest.cc
+++ b/chrome/browser/ash/net/network_portal_detector_impl_unittest.cc
@@ -157,7 +157,7 @@
     ASSERT_EQ(expected_same_detection_result_count,
               same_detection_result_count());
     ASSERT_EQ(expected_no_response_result_count, no_response_result_count());
-    ASSERT_EQ(base::TimeDelta::FromSeconds(expected_request_timeout_sec),
+    ASSERT_EQ(base::Seconds(expected_request_timeout_sec),
               get_next_attempt_timeout());
     CompleteURLFetch(net_error, status_code, nullptr);
   }
@@ -485,7 +485,7 @@
   ASSERT_EQ(State::STATE_IDLE, state());
 
   // For instantaneous timeout.
-  set_next_attempt_timeout(base::TimeDelta::FromSeconds(0));
+  set_next_attempt_timeout(base::Seconds(0));
 
   ASSERT_EQ(State::STATE_IDLE, state());
   ASSERT_EQ(0, same_detection_result_count());
@@ -516,7 +516,7 @@
   // scheduled after 101 seconds.
   ASSERT_EQ(State::STATE_PORTAL_CHECK_PENDING, state());
   ASSERT_EQ(1, no_response_result_count());
-  ASSERT_EQ(base::TimeDelta::FromSeconds(101), next_attempt_delay());
+  ASSERT_EQ(base::Seconds(101), next_attempt_delay());
 }
 
 TEST_F(NetworkPortalDetectorImplTest, PortalDetectorRetryAfterIsSmall) {
@@ -551,7 +551,7 @@
   CompleteURLFetch(net::OK, 503, retry_after);
   ASSERT_EQ(State::STATE_PORTAL_CHECK_PENDING, state());
   ASSERT_EQ(1, no_response_result_count());
-  ASSERT_EQ(base::TimeDelta::FromSeconds(0), next_attempt_delay());
+  ASSERT_EQ(base::Seconds(0), next_attempt_delay());
 
   // To run CaptivePortalDetector::DetectCaptivePortal().
   base::RunLoop().RunUntilIdle();
@@ -578,7 +578,7 @@
   CompleteURLFetch(net::OK, 503, retry_after);
   ASSERT_EQ(State::STATE_PORTAL_CHECK_PENDING, state());
   ASSERT_EQ(1, no_response_result_count());
-  ASSERT_EQ(base::TimeDelta::FromSeconds(0), next_attempt_delay());
+  ASSERT_EQ(base::Seconds(0), next_attempt_delay());
 
   // To run CaptivePortalDetector::DetectCaptivePortal().
   base::RunLoop().RunUntilIdle();
@@ -586,7 +586,7 @@
   CompleteURLFetch(net::OK, 503, retry_after);
   ASSERT_EQ(State::STATE_PORTAL_CHECK_PENDING, state());
   ASSERT_EQ(2, no_response_result_count());
-  ASSERT_EQ(base::TimeDelta::FromSeconds(0), next_attempt_delay());
+  ASSERT_EQ(base::Seconds(0), next_attempt_delay());
 
   // To run CaptivePortalDetector::DetectCaptivePortal().
   base::RunLoop().RunUntilIdle();
diff --git a/chrome/browser/ash/night_light/night_light_client.cc b/chrome/browser/ash/night_light/night_light_client.cc
index 61386be5..ae33f22 100644
--- a/chrome/browser/ash/night_light/night_light_client.cc
+++ b/chrome/browser/ash/night_light/night_light_client.cc
@@ -15,16 +15,13 @@
 
 // Delay to wait for a response to our geolocation request, if we get a response
 // after which, we will consider the request a failure.
-constexpr base::TimeDelta kGeolocationRequestTimeout =
-    base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kGeolocationRequestTimeout = base::Seconds(60);
 
 // Minimum delay to wait to fire a new request after a previous one failing.
-constexpr base::TimeDelta kMinimumDelayAfterFailure =
-    base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kMinimumDelayAfterFailure = base::Seconds(60);
 
 // Delay to wait to fire a new request after a previous one succeeding.
-constexpr base::TimeDelta kNextRequestDelayAfterSuccess =
-    base::TimeDelta::FromDays(1);
+constexpr base::TimeDelta kNextRequestDelayAfterSuccess = base::Days(1);
 
 }  // namespace
 
@@ -73,7 +70,7 @@
   // Next request is either immediate or kNextRequestDelayAfterSuccess later
   // than the last success time, whichever is greater.
   ScheduleNextRequest(std::max(
-      base::TimeDelta::FromSeconds(0),
+      base::Seconds(0),
       last_successful_geo_request_time_ + kNextRequestDelayAfterSuccess - now));
 }
 
@@ -89,7 +86,7 @@
     return;
 
   // On timezone changes, request an immediate geoposition.
-  ScheduleNextRequest(base::TimeDelta::FromSeconds(0));
+  ScheduleNextRequest(base::Seconds(0));
 }
 
 // static
diff --git a/chrome/browser/ash/notifications/gnubby_notification.cc b/chrome/browser/ash/notifications/gnubby_notification.cc
index 0f8b6191..07acdeda 100644
--- a/chrome/browser/ash/notifications/gnubby_notification.cc
+++ b/chrome/browser/ash/notifications/gnubby_notification.cc
@@ -18,8 +18,7 @@
 #include "ui/message_center/public/cpp/notification_delegate.h"
 
 namespace {
-constexpr base::TimeDelta kNotificationTimeout =
-    base::TimeDelta::FromSeconds(2);
+constexpr base::TimeDelta kNotificationTimeout = base::Seconds(2);
 }  // namespace
 
 namespace ash {
diff --git a/chrome/browser/ash/notifications/idle_app_name_notification_view.cc b/chrome/browser/ash/notifications/idle_app_name_notification_view.cc
index dae9aa1..7d1ddb56 100644
--- a/chrome/browser/ash/notifications/idle_app_name_notification_view.cc
+++ b/chrome/browser/ash/notifications/idle_app_name_notification_view.cc
@@ -81,8 +81,8 @@
 
   // Note: We cannot use the Window show/hide animations since they are disabled
   // for kiosk by command line.
-  ui::LayerAnimator* animator = new ui::LayerAnimator(
-          base::TimeDelta::FromMilliseconds(animation_time_ms));
+  ui::LayerAnimator* animator =
+      new ui::LayerAnimator(base::Milliseconds(animation_time_ms));
   native_view->layer()->SetAnimator(animator);
   widget->Show();
 
@@ -124,11 +124,9 @@
 
     // Set a timer which will trigger to remove the message after the given
     // time.
-    hide_timer_.Start(
-        FROM_HERE,
-        base::TimeDelta::FromMilliseconds(message_visibility_time_in_ms),
-        this,
-        &IdleAppNameNotificationDelegateView::RemoveMessage);
+    hide_timer_.Start(FROM_HERE,
+                      base::Milliseconds(message_visibility_time_in_ms), this,
+                      &IdleAppNameNotificationDelegateView::RemoveMessage);
   }
 
   IdleAppNameNotificationDelegateView(
diff --git a/chrome/browser/ash/notifications/low_disk_notification.cc b/chrome/browser/ash/notifications/low_disk_notification.cc
index e9594de1..ea9e574 100644
--- a/chrome/browser/ash/notifications/low_disk_notification.cc
+++ b/chrome/browser/ash/notifications/low_disk_notification.cc
@@ -36,8 +36,7 @@
 const char kNotifierLowDisk[] = "ash.disk";
 const uint64_t kNotificationThreshold = 1 << 30;          // 1GB
 const uint64_t kNotificationSevereThreshold = 512 << 20;  // 512MB
-constexpr base::TimeDelta kNotificationInterval =
-    base::TimeDelta::FromMinutes(2);
+constexpr base::TimeDelta kNotificationInterval = base::Minutes(2);
 
 }  // namespace
 
diff --git a/chrome/browser/ash/notifications/low_disk_notification_unittest.cc b/chrome/browser/ash/notifications/low_disk_notification_unittest.cc
index beb2e799..5f68c3d 100644
--- a/chrome/browser/ash/notifications/low_disk_notification_unittest.cc
+++ b/chrome/browser/ash/notifications/low_disk_notification_unittest.cc
@@ -79,7 +79,7 @@
 
   void SetNotificationThrottlingInterval(int ms) {
     low_disk_notification_->SetNotificationIntervalForTest(
-        base::TimeDelta::FromMilliseconds(ms));
+        base::Milliseconds(ms));
   }
 
   void OnNotificationAdded() { notification_count_++; }
diff --git a/chrome/browser/ash/notifications/update_required_notification_unittest.cc b/chrome/browser/ash/notifications/update_required_notification_unittest.cc
index 80b9949b..71c4a6a 100644
--- a/chrome/browser/ash/notifications/update_required_notification_unittest.cc
+++ b/chrome/browser/ash/notifications/update_required_notification_unittest.cc
@@ -231,8 +231,7 @@
   VerifyUpdateRequiredNotification(expected_title, expected_message);
 
   // Expire the notification timer to show new notification on the last day.
-  const base::TimeDelta warning =
-      base::TimeDelta::FromDays(kLongWarningInDays - 1);
+  const base::TimeDelta warning = base::Days(kLongWarningInDays - 1);
   task_environment_.FastForwardBy(warning);
   std::u16string expected_title_last_day = u"Last day to update Chrome device";
   std::u16string expected_message_last_day =
@@ -275,8 +274,7 @@
   VerifyUpdateRequiredNotification(expected_title, expected_message);
 
   // Expire the notification timer to show new notification on the last day.
-  const base::TimeDelta warning =
-      base::TimeDelta::FromDays(kLongWarningInDays - 1);
+  const base::TimeDelta warning = base::Days(kLongWarningInDays - 1);
   task_environment_.FastForwardBy(warning);
   std::u16string expected_title_last_day = u"Last day to update Chrome device";
   std::u16string expected_message_last_day =
@@ -289,7 +287,7 @@
 TEST_F(UpdateRequiredNotificationTest, EolNotifications) {
   // Set device state to end of life.
   update_engine()->set_eol_date(base::DefaultClock::GetInstance()->Now() -
-                                base::TimeDelta::FromDays(1));
+                                base::Days(1));
 
   // This is needed to wait till EOL status is fetched from the update_engine.
   base::RunLoop run_loop;
@@ -312,15 +310,14 @@
   VerifyUpdateRequiredNotification(expected_title, expected_message);
 
   // Expire notification timer to show new notification a week before deadline.
-  const base::TimeDelta warning =
-      base::TimeDelta::FromDays(kLongWarningInDays - 7);
+  const base::TimeDelta warning = base::Days(kLongWarningInDays - 7);
   task_environment_.FastForwardBy(warning);
   std::u16string expected_title_one_week =
       u"Return Chrome device within 1 week";
   VerifyUpdateRequiredNotification(expected_title_one_week, expected_message);
 
   // Expire the notification timer to show new notification on the last day.
-  const base::TimeDelta warning_last_day = base::TimeDelta::FromDays(6);
+  const base::TimeDelta warning_last_day = base::Days(6);
   task_environment_.FastForwardBy(warning_last_day);
   std::u16string expected_title_last_day = u"Immediate return required";
   std::u16string expected_message_last_day =
@@ -333,17 +330,17 @@
 TEST_F(UpdateRequiredNotificationTest, LastHourEolNotifications) {
   // Set device state to end of life.
   update_engine()->set_eol_date(base::DefaultClock::GetInstance()->Now() -
-                                base::TimeDelta::FromDays(kLongWarningInDays));
+                                base::Days(kLongWarningInDays));
 
   // Set local state to simulate update required timer running and one hour to
   // deadline.
   PrefService* prefs = g_browser_process->local_state();
-  const base::TimeDelta delta = base::TimeDelta::FromDays(kShortWarningInDays) -
-                                base::TimeDelta::FromHours(1);
+  const base::TimeDelta delta =
+      base::Days(kShortWarningInDays) - base::Hours(1);
   prefs->SetTime(prefs::kUpdateRequiredTimerStartTime,
                  base::Time::Now() - delta);
   prefs->SetTimeDelta(prefs::kUpdateRequiredWarningPeriod,
-                      base::TimeDelta::FromDays(kShortWarningInDays));
+                      base::Days(kShortWarningInDays));
 
   // This is needed to wait till EOL status is fetched from the update_engine.
   base::RunLoop run_loop;
@@ -371,7 +368,7 @@
                                                 base::Time::Now());
   // Set device state to end of life reached.
   update_engine()->set_eol_date(base::DefaultClock::GetInstance()->Now() -
-                                base::TimeDelta::FromDays(kLongWarningInDays));
+                                base::Days(kLongWarningInDays));
 
   // This is needed to wait till EOL status is fetched from the update_engine.
   base::RunLoop run_loop;
@@ -395,8 +392,7 @@
   VerifyUpdateRequiredNotification(expected_title, expected_message);
 
   // Expire notification timer to show new notification a week before deadline.
-  const base::TimeDelta warning =
-      base::TimeDelta::FromDays(kLongWarningInDays - 7);
+  const base::TimeDelta warning = base::Days(kLongWarningInDays - 7);
   task_environment_.FastForwardBy(warning);
   std::u16string expected_title_one_week = u"Return Chromebox within 1 week";
   VerifyUpdateRequiredNotification(expected_title_one_week, expected_message);
diff --git a/chrome/browser/ash/policy/active_directory/active_directory_policy_manager.cc b/chrome/browser/ash/policy/active_directory/active_directory_policy_manager.cc
index 9bb0055e..5ef25df 100644
--- a/chrome/browser/ash/policy/active_directory/active_directory_policy_manager.cc
+++ b/chrome/browser/ash/policy/active_directory/active_directory_policy_manager.cc
@@ -34,7 +34,7 @@
 
 // Fetch policy every 90 minutes which matches the Windows default:
 // https://technet.microsoft.com/en-us/library/cc940895.aspx
-constexpr base::TimeDelta kFetchInterval = base::TimeDelta::FromMinutes(90);
+constexpr base::TimeDelta kFetchInterval = base::Minutes(90);
 
 void RunRefreshCallback(base::OnceCallback<void(bool success)> callback,
                         authpolicy::ErrorType error) {
diff --git a/chrome/browser/ash/policy/active_directory/active_directory_policy_manager_unittest.cc b/chrome/browser/ash/policy/active_directory/active_directory_policy_manager_unittest.cc
index cde0932..d4fc700b 100644
--- a/chrome/browser/ash/policy/active_directory/active_directory_policy_manager_unittest.cc
+++ b/chrome/browser/ash/policy/active_directory/active_directory_policy_manager_unittest.cc
@@ -193,7 +193,7 @@
 // has been loaded.
 TEST_F(UserActiveDirectoryPolicyManagerTest,
        WaitFinite_LoadSuccess_FetchSuccess_LoadSuccess) {
-  CreatePolicyManager(base::TimeDelta::FromDays(365));
+  CreatePolicyManager(base::Days(365));
 
   // Configure policy fetch to succeed.
   fake_client()->set_refresh_user_policy_error(authpolicy::ERROR_NONE);
@@ -221,7 +221,7 @@
 // we have cached policy.
 TEST_F(UserActiveDirectoryPolicyManagerTest,
        WaitFinite_LoadSuccess_FetchSuccess_LoadFail) {
-  CreatePolicyManager(base::TimeDelta::FromDays(365));
+  CreatePolicyManager(base::Days(365));
 
   // Configure policy fetch to succeed.
   fake_client()->set_refresh_user_policy_error(authpolicy::ERROR_NONE);
@@ -248,7 +248,7 @@
 // still require the policy load to succeed so that there's *some* policy
 // present (though possibly outdated).
 TEST_F(UserActiveDirectoryPolicyManagerTest, WaitFinite_LoadSuccess_FetchFail) {
-  CreatePolicyManager(base::TimeDelta::FromDays(365));
+  CreatePolicyManager(base::Days(365));
 
   // Configure policy fetch to fail.
   fake_client()->set_refresh_user_policy_error(authpolicy::ERROR_UNKNOWN);
@@ -278,7 +278,7 @@
 // present (though possibly outdated). Here the sequence is inverted: Fetch
 // returns before load.
 TEST_F(UserActiveDirectoryPolicyManagerTest, WaitFinite_FetchFail_LoadSuccess) {
-  CreatePolicyManager(base::TimeDelta::FromDays(365));
+  CreatePolicyManager(base::Days(365));
 
   // Configure policy fetch to fail.
   fake_client()->set_refresh_user_policy_error(authpolicy::ERROR_UNKNOWN);
@@ -300,7 +300,7 @@
 // If the initial fetch timeout is not infinite, we're in best-effort mode but
 // if we can't load existing policy from disk we have to give up.
 TEST_F(UserActiveDirectoryPolicyManagerTest, WaitFinite_LoadFail_FetchFail) {
-  CreatePolicyManager(base::TimeDelta::FromDays(365));
+  CreatePolicyManager(base::Days(365));
 
   // Configure policy fetch to fail.
   fake_client()->set_refresh_user_policy_error(authpolicy::ERROR_UNKNOWN);
@@ -332,7 +332,7 @@
 // disk.
 TEST_F(UserActiveDirectoryPolicyManagerTest,
        WaitFinite_LoadSuccess_FetchTimeout) {
-  CreatePolicyManager(base::TimeDelta::FromDays(365));
+  CreatePolicyManager(base::Days(365));
 
   // Configure policy fetch to fail.
   fake_client()->set_refresh_user_policy_error(authpolicy::ERROR_UNKNOWN);
@@ -353,7 +353,7 @@
 // If load fails and fetch times out, we wait until fetch response is called.
 TEST_F(UserActiveDirectoryPolicyManagerTest,
        WaitFinite_LoadFail_FetchTimeout_FetchSuccess) {
-  CreatePolicyManager(base::TimeDelta::FromDays(365));
+  CreatePolicyManager(base::Days(365));
 
   // Configure policy fetch to fail.
   fake_client()->set_refresh_user_policy_error(authpolicy::ERROR_NONE);
@@ -382,7 +382,7 @@
 // Failure should end the session.
 TEST_F(UserActiveDirectoryPolicyManagerTest,
        WaitFinite_LoadFail_FetchTimeout_FetchFail) {
-  CreatePolicyManager(base::TimeDelta::FromDays(365));
+  CreatePolicyManager(base::Days(365));
 
   // Configure policy fetch to fail.
   fake_client()->set_refresh_user_policy_error(authpolicy::ERROR_UNKNOWN);
@@ -406,7 +406,7 @@
 
 // Simulate long load by policy store.
 TEST_F(UserActiveDirectoryPolicyManagerTest, WaitFinite_FetchSucces_LongLoad) {
-  CreatePolicyManager(base::TimeDelta::FromDays(365));
+  CreatePolicyManager(base::Days(365));
   // Trigger mock policy fetch from authpolicyd.
   InitPolicyManagerAndVerifyExpectations();
   // Process reply for mock policy fetch.
diff --git a/chrome/browser/ash/policy/core/device_cloud_policy_manager_ash.cc b/chrome/browser/ash/policy/core/device_cloud_policy_manager_ash.cc
index e699226..cc673c6 100644
--- a/chrome/browser/ash/policy/core/device_cloud_policy_manager_ash.cc
+++ b/chrome/browser/ash/policy/core/device_cloud_policy_manager_ash.cc
@@ -76,8 +76,7 @@
 // by Device Policy.
 // Keep the default value in sync with device_status_frequency in
 // DeviceReportingProto in components/policy/proto/chrome_device_policy.proto.
-constexpr base::TimeDelta kDeviceStatusUploadFrequency =
-    base::TimeDelta::FromHours(3);
+constexpr base::TimeDelta kDeviceStatusUploadFrequency = base::Hours(3);
 
 // Checks whether forced re-enrollment is enabled.
 bool IsForcedReEnrollmentEnabled() {
diff --git a/chrome/browser/ash/policy/core/policy_oauth2_token_fetcher.cc b/chrome/browser/ash/policy/core/policy_oauth2_token_fetcher.cc
index dba23db..3ba665c4 100644
--- a/chrome/browser/ash/policy/core/policy_oauth2_token_fetcher.cc
+++ b/chrome/browser/ash/policy/core/policy_oauth2_token_fetcher.cc
@@ -228,8 +228,7 @@
   if (error.IsTransientError() && retry_count_ < kMaxRequestAttemptCount) {
     retry_count_++;
     content::GetUIThreadTaskRunner({})->PostDelayedTask(
-        FROM_HERE, std::move(task),
-        base::TimeDelta::FromMilliseconds(kRequestRestartDelay));
+        FROM_HERE, std::move(task), base::Milliseconds(kRequestRestartDelay));
     return;
   }
   LOG(ERROR) << "Unrecoverable error or retry count max reached: "
diff --git a/chrome/browser/ash/policy/core/user_cloud_policy_manager_ash_unittest.cc b/chrome/browser/ash/policy/core/user_cloud_policy_manager_ash_unittest.cc
index 41196b9..473371f 100644
--- a/chrome/browser/ash/policy/core/user_cloud_policy_manager_ash_unittest.cc
+++ b/chrome/browser/ash/policy/core/user_cloud_policy_manager_ash_unittest.cc
@@ -304,8 +304,7 @@
       identity_test_env()
           ->WaitForAccessTokenRequestIfNecessaryAndRespondWithTokenForScopes(
               kOAuthToken,
-              base::Time::Now() +
-                  base::TimeDelta::FromSeconds(3600) /*expiration*/,
+              base::Time::Now() + base::Seconds(3600) /*expiration*/,
               std::string() /*id_token*/, scopes);
     }
 
@@ -512,7 +511,7 @@
   // Tests the initialization of a manager whose Profile is waiting for the
   // refresh fetch, when a previously cached policy and DMToken already exist.
   ASSERT_NO_FATAL_FAILURE(MakeManagerWithEmptyStore(
-      base::TimeDelta::FromSeconds(1000), PolicyEnforcement::kPolicyRequired));
+      base::Seconds(1000), PolicyEnforcement::kPolicyRequired));
 
   // Set the initially cached data and initialize the CloudPolicyService.
   // The initial policy fetch is issued using the cached DMToken.
@@ -798,7 +797,7 @@
   // fails (times out) - ensures that we don't mark the profile as initialized
   // until after the timeout.
   ASSERT_NO_FATAL_FAILURE(MakeManagerWithEmptyStore(
-      base::TimeDelta::FromSeconds(1000), PolicyEnforcement::kPolicyRequired));
+      base::Seconds(1000), PolicyEnforcement::kPolicyRequired));
 
   // Set the initially cached data and initialize the CloudPolicyService.
   // The initial policy fetch is issued using the cached DMToken.
@@ -829,7 +828,7 @@
 
 TEST_P(UserCloudPolicyManagerAshTest, TestLifetimeReportingRegular) {
   ASSERT_NO_FATAL_FAILURE(MakeManagerWithEmptyStore(
-      base::TimeDelta::FromSeconds(1000), PolicyEnforcement::kPolicyRequired));
+      base::Seconds(1000), PolicyEnforcement::kPolicyRequired));
 
   store_->NotifyStoreLoaded();
 
@@ -848,7 +847,7 @@
   user_manager_->set_current_user_ephemeral(true);
 
   ASSERT_NO_FATAL_FAILURE(MakeManagerWithEmptyStore(
-      base::TimeDelta::FromSeconds(1000), PolicyEnforcement::kPolicyRequired));
+      base::Seconds(1000), PolicyEnforcement::kPolicyRequired));
 
   store_->NotifyStoreLoaded();
 
@@ -1199,7 +1198,7 @@
 TEST_P(UserCloudPolicyManagerAshChildTest, RefreshFetchDoesNotBlock) {
   // Tests the profile initialization is not blocked on policy refresh.
   ASSERT_NO_FATAL_FAILURE(MakeManagerWithEmptyStore(
-      base::TimeDelta::FromSeconds(0), PolicyEnforcement::kPolicyRequired));
+      base::Seconds(0), PolicyEnforcement::kPolicyRequired));
   EXPECT_FALSE(manager_->IsInitializationComplete(POLICY_DOMAIN_CHROME));
 
   LoadStoreWithCachedData();
@@ -1209,11 +1208,11 @@
 TEST_P(UserCloudPolicyManagerAshChildTest, RefreshSchedulerStart) {
   // Tests that refresh scheduler is started after OAuth token is available.
   ASSERT_NO_FATAL_FAILURE(MakeManagerWithEmptyStore(
-      base::TimeDelta::FromSeconds(0), PolicyEnforcement::kPolicyRequired));
+      base::Seconds(0), PolicyEnforcement::kPolicyRequired));
   LoadStoreWithCachedData();
   EXPECT_FALSE(manager_->core()->refresh_scheduler());
 
-  IssueOAuth2AccessToken(base::TimeDelta::FromSeconds(3600));
+  IssueOAuth2AccessToken(base::Seconds(3600));
 
   EXPECT_TRUE(manager_->core()->refresh_scheduler());
 }
@@ -1221,11 +1220,11 @@
 TEST_P(UserCloudPolicyManagerAshChildTest, RefreshScheduler) {
   // Tests that refresh schedule isn't affected by periodic OAuth token updates.
   ASSERT_NO_FATAL_FAILURE(MakeManagerWithEmptyStore(
-      base::TimeDelta::FromSeconds(0), PolicyEnforcement::kPolicyRequired));
+      base::Seconds(0), PolicyEnforcement::kPolicyRequired));
   LoadStoreWithCachedData();
 
   // This starts refresh scheduler.
-  const base::TimeDelta token_lifetime = base::TimeDelta::FromMinutes(50);
+  const base::TimeDelta token_lifetime = base::Minutes(50);
   IssueOAuth2AccessToken(token_lifetime);
 
   // First refresh is scheduled with delay of 0s - let it execute.
@@ -1237,7 +1236,7 @@
   // longer than token lifetime. If default delay changes and is lesser the rest
   // of the test will work incorrectly and should be updated.
   const int iterations = 3;
-  base::TimeDelta refresh_delay = base::TimeDelta::FromMilliseconds(
+  base::TimeDelta refresh_delay = base::Milliseconds(
       manager_->core()->refresh_scheduler()->GetActualRefreshDelay() +
       manager_->core()->refresh_scheduler()->GetSaltDelayForTesting());
   ASSERT_GT(refresh_delay, iterations * token_lifetime);
diff --git a/chrome/browser/ash/policy/core/user_cloud_policy_token_forwarder_unittest.cc b/chrome/browser/ash/policy/core/user_cloud_policy_token_forwarder_unittest.cc
index 92c54ad..1d6d9200 100644
--- a/chrome/browser/ash/policy/core/user_cloud_policy_token_forwarder_unittest.cc
+++ b/chrome/browser/ash/policy/core/user_cloud_policy_token_forwarder_unittest.cc
@@ -55,7 +55,7 @@
 constexpr char kGaiaId[] = "gaia_id";
 constexpr char kOAuthToken[] = "oauth_token";
 
-constexpr base::TimeDelta kTokenLifetime = base::TimeDelta::FromMinutes(30);
+constexpr base::TimeDelta kTokenLifetime = base::Minutes(30);
 
 }  // namespace
 
@@ -73,7 +73,7 @@
             std::make_unique<MockCloudExternalDataManager>(),
             base::FilePath() /* component_policy_cache_path */,
             UserCloudPolicyManagerAsh::PolicyEnforcement::kPolicyRequired,
-            base::TimeDelta::FromMinutes(1) /* policy_refresh_timeout */,
+            base::Minutes(1) /* policy_refresh_timeout */,
             base::BindOnce(&MockUserCloudPolicyManagerAsh::OnFatalError,
                            base::Unretained(this)),
             account_id,
diff --git a/chrome/browser/ash/policy/core/user_policy_manager_builder_ash.cc b/chrome/browser/ash/policy/core/user_policy_manager_builder_ash.cc
index f5bae65..8c4f901 100644
--- a/chrome/browser/ash/policy/core/user_policy_manager_builder_ash.cc
+++ b/chrome/browser/ash/policy/core/user_policy_manager_builder_ash.cc
@@ -67,8 +67,7 @@
     FILE_PATH_LITERAL("External Data");
 
 // How long we'll block session initialization to try to refresh policy.
-constexpr base::TimeDelta kPolicyRefreshTimeout =
-    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kPolicyRefreshTimeout = base::Seconds(10);
 
 // Called when the user policy loading fails with a fatal error, and the user
 // session has to be terminated.
diff --git a/chrome/browser/ash/policy/dlp/data_transfer_dlp_controller.cc b/chrome/browser/ash/policy/dlp/data_transfer_dlp_controller.cc
index cf695d7..12a12d1 100644
--- a/chrome/browser/ash/policy/dlp/data_transfer_dlp_controller.cc
+++ b/chrome/browser/ash/policy/dlp/data_transfer_dlp_controller.cc
@@ -31,8 +31,7 @@
 // - at 5 ms DataTransferDlpBlinkBrowserTest.Reporting test starts to be flaky
 // - 100 ms is approximately the time a human needs to press a key.
 // See DataTransferDlpController::LastReportedEndpoints struct for details.
-const base::TimeDelta kSkipReportingTimeout =
-    base::TimeDelta::FromMilliseconds(50);
+const base::TimeDelta kSkipReportingTimeout = base::Milliseconds(50);
 
 bool IsFilesApp(const ui::DataTransferEndpoint* const data_dst) {
   if (!data_dst || !data_dst->IsUrlType())
diff --git a/chrome/browser/ash/policy/dlp/dlp_content_manager.cc b/chrome/browser/ash/policy/dlp/dlp_content_manager.cc
index c396bd2..af3acee 100644
--- a/chrome/browser/ash/policy/dlp/dlp_content_manager.cc
+++ b/chrome/browser/ash/policy/dlp/dlp_content_manager.cc
@@ -34,8 +34,7 @@
 // Delay to wait to turn off privacy screen enforcement after confidential data
 // becomes not visible. This is done to not blink the privacy screen in case of
 // a quick switch from one confidential data to another.
-const base::TimeDelta kPrivacyScreenOffDelay =
-    base::TimeDelta::FromMilliseconds(500);
+const base::TimeDelta kPrivacyScreenOffDelay = base::Milliseconds(500);
 
 // Reports events to `reporting_manager`.
 void ReportEvent(GURL url,
diff --git a/chrome/browser/ash/policy/dlp/dlp_data_transfer_notifier.cc b/chrome/browser/ash/policy/dlp/dlp_data_transfer_notifier.cc
index af732623..62f7ef0 100644
--- a/chrome/browser/ash/policy/dlp/dlp_data_transfer_notifier.cc
+++ b/chrome/browser/ash/policy/dlp/dlp_data_transfer_notifier.cc
@@ -24,8 +24,7 @@
 // The name of the bubble.
 constexpr char kBubbleName[] = "ClipboardDlpBubble";
 
-constexpr base::TimeDelta kBubbleBoundsAnimationTime =
-    base::TimeDelta::FromMilliseconds(250);
+constexpr base::TimeDelta kBubbleBoundsAnimationTime = base::Milliseconds(250);
 
 bool IsRectContainedByAnyDisplay(const gfx::Rect& rect) {
   const std::vector<display::Display>& displays =
@@ -169,7 +168,7 @@
   widget_->Show();
 
   widget_closing_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(timeout_duration_ms),
+      FROM_HERE, base::Milliseconds(timeout_duration_ms),
       base::BindOnce(&DlpDataTransferNotifier::CloseWidget,
                      base::Unretained(this),
                      widget_.get(),  // Safe as DlpClipboardNotificationHelper
diff --git a/chrome/browser/ash/policy/enrollment/auto_enrollment_client_impl.cc b/chrome/browser/ash/policy/enrollment/auto_enrollment_client_impl.cc
index 571dcce1..79ba149 100644
--- a/chrome/browser/ash/policy/enrollment/auto_enrollment_client_impl.cc
+++ b/chrome/browser/ash/policy/enrollment/auto_enrollment_client_impl.cc
@@ -48,7 +48,7 @@
     em::DeviceAutoEnrollmentRequest::EnrollmentCheckType;
 
 // Timeout for running PSM protocol.
-constexpr base::TimeDelta kPsmTimeout = base::TimeDelta::FromSeconds(15);
+constexpr base::TimeDelta kPsmTimeout = base::Seconds(15);
 
 // Returns the power of the next power-of-2 starting at |value|.
 int NextPowerOf2(int64_t value) {
@@ -603,8 +603,8 @@
   void RecordPsmSuccessTimeHistogram() {
     // These values determine bucketing of the histogram, they should not be
     // changed.
-    static const base::TimeDelta kMin = base::TimeDelta::FromMilliseconds(1);
-    static const base::TimeDelta kMax = base::TimeDelta::FromSeconds(25);
+    static const base::TimeDelta kMin = base::Milliseconds(1);
+    static const base::TimeDelta kMax = base::Seconds(25);
     static const int kBuckets = 50;
 
     base::TimeTicks now = base::TimeTicks::Now();
@@ -1371,10 +1371,10 @@
   // These values determine bucketing of the histogram, they should not be
   // changed.
   // The minimum time can't be 0, must be at least 1.
-  static const base::TimeDelta kMin = base::TimeDelta::FromMilliseconds(1);
-  static const base::TimeDelta kMax = base::TimeDelta::FromMinutes(5);
+  static const base::TimeDelta kMin = base::Milliseconds(1);
+  static const base::TimeDelta kMax = base::Minutes(5);
   // However, 0 can still be sampled.
-  static const base::TimeDelta kZero = base::TimeDelta::FromMilliseconds(0);
+  static const base::TimeDelta kZero = base::Milliseconds(0);
   static const int kBuckets = 50;
 
   base::TimeTicks now = base::TimeTicks::Now();
@@ -1405,8 +1405,8 @@
 
   // These values determine bucketing of the histogram, they should not be
   // changed.
-  static const base::TimeDelta kMin = base::TimeDelta::FromMilliseconds(1);
-  static const base::TimeDelta kMax = base::TimeDelta::FromSeconds(25);
+  static const base::TimeDelta kMin = base::Milliseconds(1);
+  static const base::TimeDelta kMax = base::Seconds(25);
   static const int kBuckets = 50;
 
   base::TimeTicks now = base::TimeTicks::Now();
diff --git a/chrome/browser/ash/policy/enrollment/auto_enrollment_client_impl_unittest.cc b/chrome/browser/ash/policy/enrollment/auto_enrollment_client_impl_unittest.cc
index 4a50995..13f0964 100644
--- a/chrome/browser/ash/policy/enrollment/auto_enrollment_client_impl_unittest.cc
+++ b/chrome/browser/ash/policy/enrollment/auto_enrollment_client_impl_unittest.cc
@@ -948,7 +948,7 @@
 TEST_P(AutoEnrollmentClientImplTest, ForcedReEnrollmentStateRetrivalfailure) {
   InSequence sequence;
 
-  const base::TimeDelta kOneSecondTimeDelta = base::TimeDelta::FromSeconds(1);
+  const base::TimeDelta kOneSecondTimeDelta = base::Seconds(1);
 
   DeviceManagementService::JobForTesting hash_dance_job;
   DeviceManagementService::JobForTesting device_state_job;
@@ -990,7 +990,7 @@
   // Verify Hash dance protocol overall execution time and its success time
   // histograms were recorded correctly with the same value.
   ExpectHashDanceExecutionTimeHistogram(
-      /*expected_time_recorded=*/base::TimeDelta::FromSeconds(1),
+      /*expected_time_recorded=*/base::Seconds(1),
       /*success_time_recorded=*/true);
 
   // Verify device state job has been captured.
@@ -1915,7 +1915,7 @@
   InSequence sequence;
 
   const bool kExpectedMembershipResult = GetExpectedMembershipResult();
-  const base::TimeDelta kOneSecondTimeDelta = base::TimeDelta::FromSeconds(1);
+  const base::TimeDelta kOneSecondTimeDelta = base::Seconds(1);
   const base::Time kExpectedPsmDeterminationTimestamp =
       base::Time::NowFromSystemTime() + kOneSecondTimeDelta;
 
@@ -2100,7 +2100,7 @@
   InSequence sequence;
 
   const bool kExpectedMembershipResult = GetExpectedMembershipResult();
-  const base::TimeDelta kOneSecondTimeDelta = base::TimeDelta::FromSeconds(1);
+  const base::TimeDelta kOneSecondTimeDelta = base::Seconds(1);
   const base::Time kExpectedPsmDeterminationTimestamp =
       base::Time::NowFromSystemTime() + kOneSecondTimeDelta;
 
@@ -2244,7 +2244,7 @@
   InSequence sequence;
 
   const bool kExpectedMembershipResult = GetExpectedMembershipResult();
-  const base::TimeDelta kOneSecondTimeDelta = base::TimeDelta::FromSeconds(1);
+  const base::TimeDelta kOneSecondTimeDelta = base::Seconds(1);
   const base::Time kExpectedPsmDeterminationTimestamp =
       base::Time::NowFromSystemTime() + kOneSecondTimeDelta;
 
@@ -2302,7 +2302,7 @@
   InSequence sequence;
 
   const bool kExpectedMembershipResult = GetExpectedMembershipResult();
-  const base::TimeDelta kOneSecondTimeDelta = base::TimeDelta::FromSeconds(1);
+  const base::TimeDelta kOneSecondTimeDelta = base::Seconds(1);
   const base::Time kExpectedPsmDeterminationTimestamp =
       base::Time::NowFromSystemTime() + kOneSecondTimeDelta;
 
diff --git a/chrome/browser/ash/policy/enrollment/enrollment_handler.cc b/chrome/browser/ash/policy/enrollment/enrollment_handler.cc
index 4cca67c..951c127 100644
--- a/chrome/browser/ash/policy/enrollment/enrollment_handler.cc
+++ b/chrome/browser/ash/policy/enrollment/enrollment_handler.cc
@@ -740,7 +740,7 @@
             FROM_HERE,
             base::BindOnce(&EnrollmentHandler::StartLockDevice,
                            weak_ptr_factory_.GetWeakPtr()),
-            base::TimeDelta::FromMilliseconds(kLockRetryIntervalMs));
+            base::Milliseconds(kLockRetryIntervalMs));
         lockbox_init_duration_ += kLockRetryIntervalMs;
       } else {
         HandleLockDeviceResult(chromeos::InstallAttributes::LOCK_TIMEOUT);
diff --git a/chrome/browser/ash/policy/handlers/adb_sideloading_allowance_mode_policy_handler.cc b/chrome/browser/ash/policy/handlers/adb_sideloading_allowance_mode_policy_handler.cc
index 99ad336..a0e8056c 100644
--- a/chrome/browser/ash/policy/handlers/adb_sideloading_allowance_mode_policy_handler.cc
+++ b/chrome/browser/ash/policy/handlers/adb_sideloading_allowance_mode_policy_handler.cc
@@ -28,7 +28,7 @@
 namespace {
 
 constexpr base::TimeDelta kAdbSideloadingPlannedNotificationWaitTime =
-    base::TimeDelta::FromDays(1);
+    base::Days(1);
 
 absl::optional<policy::AdbSideloadingAllowanceMode>
 GetAdbSideloadingDevicePolicyMode(const ash::CrosSettings* cros_settings,
diff --git a/chrome/browser/ash/policy/handlers/adb_sideloading_allowance_mode_policy_handler_unittest.cc b/chrome/browser/ash/policy/handlers/adb_sideloading_allowance_mode_policy_handler_unittest.cc
index e0c06da..fda178c9 100644
--- a/chrome/browser/ash/policy/handlers/adb_sideloading_allowance_mode_policy_handler_unittest.cc
+++ b/chrome/browser/ash/policy/handlers/adb_sideloading_allowance_mode_policy_handler_unittest.cc
@@ -101,7 +101,7 @@
   void FakePlannedNotificationTime() {
     // Fake that the first notification had been displayed more than 24 hours
     // ago.
-    base::Time yesterday = base::Time::Now() - base::TimeDelta::FromHours(25);
+    base::Time yesterday = base::Time::Now() - base::Hours(25);
     local_state_.Get()->SetInt64(
         prefs::kAdbSideloadingPowerwashPlannedNotificationShownTime,
         yesterday.ToDeltaSinceWindowsEpoch().InSeconds());
diff --git a/chrome/browser/ash/policy/handlers/extension_cache_unittest.cc b/chrome/browser/ash/policy/handlers/extension_cache_unittest.cc
index c55ace33..79cb1c5 100644
--- a/chrome/browser/ash/policy/handlers/extension_cache_unittest.cc
+++ b/chrome/browser/ash/policy/handlers/extension_cache_unittest.cc
@@ -77,13 +77,13 @@
   // The extension cache only has enough space for two of the three extensions.
   const base::FilePath file1 =
       CreateExtensionFile(cache_path, kTestExtensionId1, "1.0", kExtensionSize1,
-                          now - base::TimeDelta::FromSeconds(1));
+                          now - base::Seconds(1));
   const base::FilePath file2 =
       CreateExtensionFile(cache_path, kTestExtensionId2, "2.0", kExtensionSize2,
-                          now - base::TimeDelta::FromSeconds(2));
+                          now - base::Seconds(2));
   const base::FilePath file3 =
       CreateExtensionFile(cache_path, kTestExtensionId3, "3.0", kExtensionSize3,
-                          now - base::TimeDelta::FromSeconds(3));
+                          now - base::Seconds(3));
 
   ExtensionCacheImpl cache_impl(
       std::make_unique<ChromeOSExtensionCacheDelegate>(cache_path));
diff --git a/chrome/browser/ash/policy/handlers/minimum_version_policy_handler.cc b/chrome/browser/ash/policy/handlers/minimum_version_policy_handler.cc
index 099ff04..b5f58c9 100644
--- a/chrome/browser/ash/policy/handlers/minimum_version_policy_handler.cc
+++ b/chrome/browser/ash/policy/handlers/minimum_version_policy_handler.cc
@@ -81,7 +81,7 @@
 }
 
 int GetDaysRounded(base::TimeDelta time) {
-  return base::ClampRound(time / base::TimeDelta::FromDays(1));
+  return base::ClampRound(time / base::Days(1));
 }
 
 chromeos::UpdateEngineClient* GetUpdateEngineClient() {
@@ -132,10 +132,10 @@
     return nullptr;
   auto warning = dict->FindIntKey(kWarningPeriod);
   base::TimeDelta warning_time =
-      base::TimeDelta::FromDays(warning.has_value() ? warning.value() : 0);
+      base::Days(warning.has_value() ? warning.value() : 0);
   auto eol_warning = dict->FindIntKey(kEolWarningPeriod);
-  base::TimeDelta eol_warning_time = base::TimeDelta::FromDays(
-      eol_warning.has_value() ? eol_warning.value() : 0);
+  base::TimeDelta eol_warning_time =
+      base::Days(eol_warning.has_value() ? eol_warning.value() : 0);
   return std::make_unique<MinimumVersionRequirement>(
       minimum_version, warning_time, eol_warning_time);
 }
@@ -475,7 +475,7 @@
   // at startup.
   absl::optional<int> days = GetTimeRemainingInDays();
   if (days && days.value() <= 1)
-    MaybeShowNotification(base::TimeDelta::FromDays(days.value()));
+    MaybeShowNotification(base::Days(days.value()));
 }
 
 void MinimumVersionPolicyHandler::MaybeShowNotification(
@@ -541,14 +541,13 @@
   // one week before EOL and on the last day. No need to schedule a notification
   // if it is already the last day.
   if (eol_reached_ && days_remaining > kOneWeekEolNotificationInDays) {
-    expiry =
-        deadline - base::TimeDelta::FromDays(kOneWeekEolNotificationInDays);
+    expiry = deadline - base::Days(kOneWeekEolNotificationInDays);
   } else if (days_remaining > 1) {
-    expiry = deadline - base::TimeDelta::FromDays(1);
+    expiry = deadline - base::Days(1);
   }
 
   VLOG(2) << "Next notification scheduled for " << expiry;
-  MaybeShowNotification(base::TimeDelta::FromDays(days_remaining));
+  MaybeShowNotification(base::Days(days_remaining));
   if (!expiry.is_null()) {
     notification_timer_.Start(
         FROM_HERE, expiry,
diff --git a/chrome/browser/ash/policy/handlers/minimum_version_policy_handler_browsertest.cc b/chrome/browser/ash/policy/handlers/minimum_version_policy_handler_browsertest.cc
index ad62a66..a6bb559 100644
--- a/chrome/browser/ash/policy/handlers/minimum_version_policy_handler_browsertest.cc
+++ b/chrome/browser/ash/policy/handlers/minimum_version_policy_handler_browsertest.cc
@@ -81,12 +81,9 @@
 const int kShortWarningInDays = 2;
 const int kLongWarningInDays = 10;
 const int kVeryLongWarningInDays = 100;
-constexpr base::TimeDelta kShortWarning =
-    base::TimeDelta::FromDays(kShortWarningInDays);
-constexpr base::TimeDelta kLongWarning =
-    base::TimeDelta::FromDays(kLongWarningInDays);
-constexpr base::TimeDelta kVeryLongWarning =
-    base::TimeDelta::FromDays(kVeryLongWarningInDays);
+constexpr base::TimeDelta kShortWarning = base::Days(kShortWarningInDays);
+constexpr base::TimeDelta kLongWarning = base::Days(kLongWarningInDays);
+constexpr base::TimeDelta kVeryLongWarning = base::Days(kVeryLongWarningInDays);
 const char kPublicSessionId[] = "demo@example.com";
 const char kManagedUserId[] = "user@example.com";
 const char kManagedUserGaiaId[] = "11111";
@@ -545,7 +542,7 @@
 IN_PROC_BROWSER_TEST_F(MinimumVersionPolicyTest,
                        NotificationOnUnmanagedUserEnabled) {
   fake_update_engine_client_->set_eol_date(
-      base::DefaultClock::GetInstance()->Now() - base::TimeDelta::FromDays(1));
+      base::DefaultClock::GetInstance()->Now() - base::Days(1));
   LoginUnmanagedUser();
   EXPECT_FALSE(
       display_service_tester_->GetNotification(kUpdateRequiredNotificationId));
@@ -627,7 +624,7 @@
 IN_PROC_BROWSER_TEST_F(MinimumVersionPolicyTest, EolNotificationClick) {
   // Mark device end of life and login as managed user.
   fake_update_engine_client_->set_eol_date(
-      base::DefaultClock::GetInstance()->Now() - base::TimeDelta::FromDays(1));
+      base::DefaultClock::GetInstance()->Now() - base::Days(1));
   LoginManagedUser();
   EXPECT_FALSE(
       display_service_tester_->GetNotification(kUpdateRequiredNotificationId));
@@ -870,7 +867,7 @@
   void SetUpLocalState() override {
     // Set up local state to reflect that update required deadline has passed
     // when device is rebooted.
-    const base::TimeDelta delta = base::TimeDelta::FromDays(5);
+    const base::TimeDelta delta = base::Days(5);
     PrefService* prefs = g_browser_process->local_state();
     prefs->SetTime(prefs::kUpdateRequiredTimerStartTime,
                    base::Time::Now() - delta);
diff --git a/chrome/browser/ash/policy/handlers/minimum_version_policy_handler_unittest.cc b/chrome/browser/ash/policy/handlers/minimum_version_policy_handler_unittest.cc
index 2ea4bb6..1733153 100644
--- a/chrome/browser/ash/policy/handlers/minimum_version_policy_handler_unittest.cc
+++ b/chrome/browser/ash/policy/handlers/minimum_version_policy_handler_unittest.cc
@@ -348,7 +348,7 @@
   // Expire the timer and check that user is logged out of the session.
   EXPECT_CALL(*this, IsLoginSessionState()).Times(1);
   EXPECT_CALL(*this, RestartToLoginScreen()).Times(1);
-  const base::TimeDelta warning = base::TimeDelta::FromDays(kLongWarning);
+  const base::TimeDelta warning = base::Days(kLongWarning);
   task_environment.FastForwardBy(warning);
   EXPECT_FALSE(
       GetMinimumVersionPolicyHandler()->IsDeadlineTimerRunningForTesting());
diff --git a/chrome/browser/ash/policy/handlers/tpm_auto_update_mode_policy_handler.cc b/chrome/browser/ash/policy/handlers/tpm_auto_update_mode_policy_handler.cc
index 888206b..388739d 100644
--- a/chrome/browser/ash/policy/handlers/tpm_auto_update_mode_policy_handler.cc
+++ b/chrome/browser/ash/policy/handlers/tpm_auto_update_mode_policy_handler.cc
@@ -25,11 +25,9 @@
 namespace {
 
 // Timeout for the TPM firmware update availability check.
-const base::TimeDelta kFirmwareAvailabilityCheckerTimeout =
-    base::TimeDelta::FromSeconds(20);
+const base::TimeDelta kFirmwareAvailabilityCheckerTimeout = base::Seconds(20);
 
-const base::TimeDelta kTPMUpdatePlannedNotificationWaitTime =
-    base::TimeDelta::FromDays(1);
+const base::TimeDelta kTPMUpdatePlannedNotificationWaitTime = base::Days(1);
 
 // Reads the value of the the device setting key
 // TPMFirmwareUpdateSettings.AutoUpdateMode from a trusted store. If the value
diff --git a/chrome/browser/ash/policy/handlers/tpm_auto_update_mode_policy_handler_unittest.cc b/chrome/browser/ash/policy/handlers/tpm_auto_update_mode_policy_handler_unittest.cc
index 690aa41..e4aac4d 100644
--- a/chrome/browser/ash/policy/handlers/tpm_auto_update_mode_policy_handler_unittest.cc
+++ b/chrome/browser/ash/policy/handlers/tpm_auto_update_mode_policy_handler_unittest.cc
@@ -195,7 +195,7 @@
   update_available_ = true;
 
   // First notification was shwed more than 24 hours ago.
-  base::Time yesterday = base::Time::Now() - base::TimeDelta::FromHours(25);
+  base::Time yesterday = base::Time::Now() - base::Hours(25);
   local_state_.Get()->SetInt64(
       prefs::kTPMUpdatePlannedNotificationShownTime,
       yesterday.ToDeltaSinceWindowsEpoch().InSeconds());
diff --git a/chrome/browser/ash/policy/invalidation/affiliated_invalidation_service_provider_impl.cc b/chrome/browser/ash/policy/invalidation/affiliated_invalidation_service_provider_impl.cc
index ace27d4..abb536b 100644
--- a/chrome/browser/ash/policy/invalidation/affiliated_invalidation_service_provider_impl.cc
+++ b/chrome/browser/ash/policy/invalidation/affiliated_invalidation_service_provider_impl.cc
@@ -51,8 +51,7 @@
 // |kCheckInvalidatorStateDelay|, InvalidationService is still in
 // TRANSIENT_INVALIDATION_ERROR state, disconnect from it and try to reregister
 // all the topics.
-constexpr base::TimeDelta kCheckInvalidatorStateDelay =
-    base::TimeDelta::FromMinutes(3);
+constexpr base::TimeDelta kCheckInvalidatorStateDelay = base::Minutes(3);
 
 // After reregistering all the topics |kTransientErrorDisconnectLimit| number of
 // times, when InvalidationService is failing due to
diff --git a/chrome/browser/ash/policy/off_hours/off_hours_proto_parser_unittest.cc b/chrome/browser/ash/policy/off_hours/off_hours_proto_parser_unittest.cc
index 42f26b6..02191f6 100644
--- a/chrome/browser/ash/policy/off_hours/off_hours_proto_parser_unittest.cc
+++ b/chrome/browser/ash/policy/off_hours/off_hours_proto_parser_unittest.cc
@@ -29,7 +29,7 @@
     em::WeeklyTimeProto::SATURDAY,
     em::WeeklyTimeProto::SUNDAY};
 
-constexpr base::TimeDelta kHour = base::TimeDelta::FromHours(1);
+constexpr base::TimeDelta kHour = base::Hours(1);
 
 const char kUtcTimezone[] = "UTC";
 
diff --git a/chrome/browser/ash/policy/remote_commands/crd_host_delegate_unittest.cc b/chrome/browser/ash/policy/remote_commands/crd_host_delegate_unittest.cc
index 2487e85c..d31c139 100644
--- a/chrome/browser/ash/policy/remote_commands/crd_host_delegate_unittest.cc
+++ b/chrome/browser/ash/policy/remote_commands/crd_host_delegate_unittest.cc
@@ -338,8 +338,7 @@
 TEST_F(CrdHostDelegateTest, ShouldReturnAccessCode) {
   SupportHostObserver& observer = StartCrdHostAndBindObserver();
 
-  observer.OnHostStateReceivedAccessCode("the-access-code",
-                                         base::TimeDelta::FromDays(1));
+  observer.OnHostStateReceivedAccessCode("the-access-code", base::Days(1));
 
   Response response = WaitForResponse();
   ASSERT_TRUE(response.HasAccessCode());
@@ -422,8 +421,7 @@
 TEST_F(CrdHostDelegateTest, ShouldNotCrashIfCrdHostSendsMultipleResponses) {
   SupportHostObserver& observer = StartCrdHostAndBindObserver();
 
-  observer.OnHostStateReceivedAccessCode("access-code",
-                                         base::TimeDelta::FromDays(1));
+  observer.OnHostStateReceivedAccessCode("access-code", base::Days(1));
   observer.OnHostStateStarting();
   observer.OnHostStateDisconnected(absl::nullopt);
   observer.OnHostStateError(1);
diff --git a/chrome/browser/ash/policy/remote_commands/device_command_get_available_routines_job_unittest.cc b/chrome/browser/ash/policy/remote_commands/device_command_get_available_routines_job_unittest.cc
index 66ceec2..53260909 100644
--- a/chrome/browser/ash/policy/remote_commands/device_command_get_available_routines_job_unittest.cc
+++ b/chrome/browser/ash/policy/remote_commands/device_command_get_available_routines_job_unittest.cc
@@ -123,8 +123,7 @@
       ->SetAvailableRoutinesForTesting(kAvailableRoutines);
   std::unique_ptr<RemoteCommandJob> job =
       std::make_unique<DeviceCommandGetAvailableRoutinesJob>();
-  InitializeJob(job.get(), kUniqueID, test_start_time_,
-                base::TimeDelta::FromSeconds(30),
+  InitializeJob(job.get(), kUniqueID, test_start_time_, base::Seconds(30),
                 /*terminate_upon_input=*/false);
   base::RunLoop run_loop;
   bool success =
@@ -145,8 +144,7 @@
       ->SetAvailableRoutinesForTesting({});
   std::unique_ptr<RemoteCommandJob> job =
       std::make_unique<DeviceCommandGetAvailableRoutinesJob>();
-  InitializeJob(job.get(), kUniqueID, test_start_time_,
-                base::TimeDelta::FromSeconds(30),
+  InitializeJob(job.get(), kUniqueID, test_start_time_, base::Seconds(30),
                 /*terminate_upon_input=*/false);
   base::RunLoop run_loop;
   bool success = job->Run(base::Time::Now(), base::TimeTicks::Now(),
diff --git a/chrome/browser/ash/policy/remote_commands/device_command_get_routine_update_job_unittest.cc b/chrome/browser/ash/policy/remote_commands/device_command_get_routine_update_job_unittest.cc
index cad5194..6e3572af 100644
--- a/chrome/browser/ash/policy/remote_commands/device_command_get_routine_update_job_unittest.cc
+++ b/chrome/browser/ash/policy/remote_commands/device_command_get_routine_update_job_unittest.cc
@@ -200,7 +200,7 @@
       base::TimeTicks::Now(),
       GenerateCommandProto(
           kUniqueID, base::TimeTicks::Now() - test_start_time_,
-          base::TimeDelta::FromSeconds(30),
+          base::Seconds(30),
           /*terminate_upon_input=*/false, /*id=*/7979,
           static_cast<
               chromeos::cros_healthd::mojom::DiagnosticRoutineCommandEnum>(
@@ -221,7 +221,7 @@
   EXPECT_FALSE(job->Init(
       base::TimeTicks::Now(),
       GenerateCommandProto(kUniqueID, base::TimeTicks::Now() - test_start_time_,
-                           base::TimeDelta::FromSeconds(30),
+                           base::Seconds(30),
                            /*terminate_upon_input=*/false,
                            /*id=*/absl::nullopt,
                            chromeos::cros_healthd::mojom::
@@ -241,7 +241,7 @@
   EXPECT_FALSE(job->Init(
       base::TimeTicks::Now(),
       GenerateCommandProto(kUniqueID, base::TimeTicks::Now() - test_start_time_,
-                           base::TimeDelta::FromSeconds(30),
+                           base::Seconds(30),
                            /*terminate_upon_input=*/false,
                            /*id=*/1293, /*command=*/absl::nullopt,
                            /*include_output=*/true),
@@ -261,7 +261,7 @@
       base::TimeTicks::Now(),
       GenerateCommandProto(
           kUniqueID, base::TimeTicks::Now() - test_start_time_,
-          base::TimeDelta::FromSeconds(30),
+          base::Seconds(30),
           /*terminate_upon_input=*/false,
           /*id=*/457658,
           chromeos::cros_healthd::mojom::DiagnosticRoutineCommandEnum::kCancel,
@@ -288,7 +288,7 @@
   std::unique_ptr<RemoteCommandJob> job =
       std::make_unique<DeviceCommandGetRoutineUpdateJob>();
   InitializeJob(
-      job.get(), kUniqueID, test_start_time_, base::TimeDelta::FromSeconds(30),
+      job.get(), kUniqueID, test_start_time_, base::Seconds(30),
       /*terminate_upon_input=*/false, /*id=*/56923,
       chromeos::cros_healthd::mojom::DiagnosticRoutineCommandEnum::kRemove,
       /*include_output=*/true);
@@ -326,7 +326,7 @@
   std::unique_ptr<RemoteCommandJob> job =
       std::make_unique<DeviceCommandGetRoutineUpdateJob>();
   InitializeJob(
-      job.get(), kUniqueID, test_start_time_, base::TimeDelta::FromSeconds(30),
+      job.get(), kUniqueID, test_start_time_, base::Seconds(30),
       /*terminate_upon_input=*/false, /*id=*/9812,
       chromeos::cros_healthd::mojom::DiagnosticRoutineCommandEnum::kRemove,
       /*include_output=*/true);
diff --git a/chrome/browser/ash/policy/remote_commands/device_command_remote_powerwash_job.cc b/chrome/browser/ash/policy/remote_commands/device_command_remote_powerwash_job.cc
index 1a9d335..53bdfe4c6 100644
--- a/chrome/browser/ash/policy/remote_commands/device_command_remote_powerwash_job.cc
+++ b/chrome/browser/ash/policy/remote_commands/device_command_remote_powerwash_job.cc
@@ -22,12 +22,11 @@
 // to be a security feature where the device gets wiped even if it's turned on
 // again only after several years of being powered off.
 constexpr base::TimeDelta kRemotePowerwashCommandExpirationTime =
-    base::TimeDelta::FromDays(5 * 365);  // 5 years.
+    base::Days(5 * 365);  // 5 years.
 
 // The time that we wait for the server to get the ACK, if that passes we
 // immediately start the powerwash process.
-constexpr base::TimeDelta kFailsafeTimerTimeout =
-    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kFailsafeTimerTimeout = base::Seconds(10);
 
 void StartPowerwash(enterprise_management::SignedData signed_command) {
   chromeos::SessionManagerClient::Get()->StartRemoteDeviceWipe(signed_command);
diff --git a/chrome/browser/ash/policy/remote_commands/device_command_remote_powerwash_job_unittest.cc b/chrome/browser/ash/policy/remote_commands/device_command_remote_powerwash_job_unittest.cc
index fd6c7eb..8c80d28b 100644
--- a/chrome/browser/ash/policy/remote_commands/device_command_remote_powerwash_job_unittest.cc
+++ b/chrome/browser/ash/policy/remote_commands/device_command_remote_powerwash_job_unittest.cc
@@ -26,9 +26,8 @@
 
 namespace policy {
 
-constexpr base::TimeDelta kCommandAge = base::TimeDelta::FromMinutes(10);
-constexpr base::TimeDelta kVeryoldCommandAge =
-    base::TimeDelta::FromDays(5 * 365 - 1);
+constexpr base::TimeDelta kCommandAge = base::Minutes(10);
+constexpr base::TimeDelta kVeryoldCommandAge = base::Days(5 * 365 - 1);
 
 class TestingRemoteCommandsService : public RemoteCommandsService {
  public:
@@ -166,12 +165,12 @@
   run_loop_.Run();
 
   // After 5s the timer is not run yet.
-  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_runner_->FastForwardBy(base::Seconds(5));
   EXPECT_EQ(0, chromeos::FakeSessionManagerClient::Get()
                    ->start_device_wipe_call_count());
 
   // After 10s the timer is run.
-  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_runner_->FastForwardBy(base::Seconds(5));
   EXPECT_EQ(1, chromeos::FakeSessionManagerClient::Get()
                    ->start_device_wipe_call_count());
 }
diff --git a/chrome/browser/ash/policy/remote_commands/device_command_run_routine_job.cc b/chrome/browser/ash/policy/remote_commands/device_command_run_routine_job.cc
index d3686ed..08b61f46 100644
--- a/chrome/browser/ash/policy/remote_commands/device_command_run_routine_job.cc
+++ b/chrome/browser/ash/policy/remote_commands/device_command_run_routine_job.cc
@@ -171,7 +171,7 @@
                                             MakeInvalidParametersResponse())));
           break;
         }
-        routine_parameter = base::TimeDelta::FromSeconds(value);
+        routine_parameter = base::Seconds(value);
       }
       chromeos::cros_healthd::ServiceConnection::GetInstance()
           ->RunUrandomRoutine(
@@ -239,7 +239,7 @@
                                             MakeInvalidParametersResponse())));
           break;
         }
-        routine_duration = base::TimeDelta::FromSeconds(value);
+        routine_duration = base::Seconds(value);
       }
       chromeos::cros_healthd::ServiceConnection::GetInstance()
           ->RunCpuCacheRoutine(
@@ -266,7 +266,7 @@
                                             MakeInvalidParametersResponse())));
           break;
         }
-        routine_duration = base::TimeDelta::FromSeconds(value);
+        routine_duration = base::Seconds(value);
       }
       chromeos::cros_healthd::ServiceConnection::GetInstance()
           ->RunCpuStressRoutine(
@@ -295,7 +295,7 @@
                                             MakeInvalidParametersResponse())));
           break;
         }
-        routine_duration = base::TimeDelta::FromSeconds(value);
+        routine_duration = base::Seconds(value);
       }
       chromeos::cros_healthd::ServiceConnection::GetInstance()
           ->RunFloatingPointAccuracyRoutine(
@@ -376,7 +376,7 @@
                                           MakeInvalidParametersResponse())));
         break;
       }
-      auto exec_duration = base::TimeDelta::FromSeconds(length_seconds.value());
+      auto exec_duration = base::Seconds(length_seconds.value());
       chromeos::cros_healthd::ServiceConnection::GetInstance()
           ->RunDiskReadRoutine(
               type_enum, exec_duration, file_size_mb.value(),
@@ -402,7 +402,7 @@
                                             MakeInvalidParametersResponse())));
           break;
         }
-        routine_duration = base::TimeDelta::FromSeconds(value);
+        routine_duration = base::Seconds(value);
       }
       chromeos::cros_healthd::ServiceConnection::GetInstance()
           ->RunPrimeSearchRoutine(
@@ -436,7 +436,7 @@
       }
       chromeos::cros_healthd::ServiceConnection::GetInstance()
           ->RunBatteryDischargeRoutine(
-              base::TimeDelta::FromSeconds(length_seconds.value()),
+              base::Seconds(length_seconds.value()),
               maximum_discharge_percent_allowed.value(),
               base::BindOnce(
                   &DeviceCommandRunRoutineJob::OnCrosHealthdResponseReceived,
@@ -466,7 +466,7 @@
       }
       chromeos::cros_healthd::ServiceConnection::GetInstance()
           ->RunBatteryChargeRoutine(
-              base::TimeDelta::FromSeconds(length_seconds.value()),
+              base::Seconds(length_seconds.value()),
               minimum_charge_percent_required.value(),
               base::BindOnce(
                   &DeviceCommandRunRoutineJob::OnCrosHealthdResponseReceived,
diff --git a/chrome/browser/ash/policy/remote_commands/device_command_run_routine_job_unittest.cc b/chrome/browser/ash/policy/remote_commands/device_command_run_routine_job_unittest.cc
index 07a1f07..bdd289a 100644
--- a/chrome/browser/ash/policy/remote_commands/device_command_run_routine_job_unittest.cc
+++ b/chrome/browser/ash/policy/remote_commands/device_command_run_routine_job_unittest.cc
@@ -198,9 +198,9 @@
     base::Value params_dict,
     base::RepeatingCallback<void(RemoteCommandJob*)> callback) {
   auto job = std::make_unique<DeviceCommandRunRoutineJob>();
-  InitializeJob(
-      job.get(), kUniqueID, test_start_time_, base::TimeDelta::FromSeconds(30),
-      /*terminate_upon_input=*/false, routine, std::move(params_dict));
+  InitializeJob(job.get(), kUniqueID, test_start_time_, base::Seconds(30),
+                /*terminate_upon_input=*/false, routine,
+                std::move(params_dict));
   base::RunLoop run_loop;
   bool success = job->Run(base::Time::Now(), base::TimeTicks::Now(),
                           base::BindLambdaForTesting([&]() {
@@ -221,7 +221,7 @@
   EXPECT_FALSE(job->Init(
       base::TimeTicks::Now(),
       GenerateCommandProto(kUniqueID, base::TimeTicks::Now() - test_start_time_,
-                           base::TimeDelta::FromSeconds(30),
+                           base::Seconds(30),
                            /*terminate_upon_input=*/false, kInvalidRoutineEnum,
                            std::move(params_dict)),
       nullptr));
@@ -237,7 +237,7 @@
   EXPECT_FALSE(job->Init(
       base::TimeTicks::Now(),
       GenerateCommandProto(kUniqueID, base::TimeTicks::Now() - test_start_time_,
-                           base::TimeDelta::FromSeconds(30),
+                           base::Seconds(30),
                            /*terminate_upon_input=*/false,
                            /*routine=*/absl::nullopt, std::move(params_dict)),
       nullptr));
@@ -255,7 +255,7 @@
   EXPECT_FALSE(job->Init(
       base::TimeTicks::Now(),
       GenerateCommandProto(kUniqueID, base::TimeTicks::Now() - test_start_time_,
-                           base::TimeDelta::FromSeconds(30),
+                           base::Seconds(30),
                            /*terminate_upon_input=*/false, kValidRoutineEnum,
                            /*params=*/absl::nullopt),
       nullptr));
diff --git a/chrome/browser/ash/policy/remote_commands/device_command_set_volume_job_unittest.cc b/chrome/browser/ash/policy/remote_commands/device_command_set_volume_job_unittest.cc
index 2f96eee..f38739de 100644
--- a/chrome/browser/ash/policy/remote_commands/device_command_set_volume_job_unittest.cc
+++ b/chrome/browser/ash/policy/remote_commands/device_command_set_volume_job_unittest.cc
@@ -124,7 +124,7 @@
 }
 
 TEST_F(DeviceCommandSetVolumeTest, CommandTimeout) {
-  auto delta = base::TimeDelta::FromMinutes(10);
+  auto delta = base::Minutes(10);
   auto job = CreateSetVolumeJob(test_start_time_ - delta, 50);
   EXPECT_FALSE(job->Run(base::Time::Now(), base::TimeTicks::Now(),
                         RemoteCommandJob::FinishedCallback()));
diff --git a/chrome/browser/ash/policy/remote_commands/device_command_start_crd_session_job.cc b/chrome/browser/ash/policy/remote_commands/device_command_start_crd_session_job.cc
index 76bd544..b446a5a 100644
--- a/chrome/browser/ash/policy/remote_commands/device_command_start_crd_session_job.cc
+++ b/chrome/browser/ash/policy/remote_commands/device_command_start_crd_session_job.cc
@@ -246,8 +246,8 @@
   if (!root->is_dict())
     return false;
 
-  idleness_cutoff_ = base::TimeDelta::FromSeconds(
-      root->FindIntKey(kIdlenessCutoffFieldName).value_or(0));
+  idleness_cutoff_ =
+      base::Seconds(root->FindIntKey(kIdlenessCutoffFieldName).value_or(0));
 
   if (root->FindBoolKey(kAckedUserPresenceFieldName).has_value()) {
     acked_user_presence_ =
diff --git a/chrome/browser/ash/policy/remote_commands/device_command_start_crd_session_unittest.cc b/chrome/browser/ash/policy/remote_commands/device_command_start_crd_session_unittest.cc
index 5e4ac45..e8daebc 100644
--- a/chrome/browser/ash/policy/remote_commands/device_command_start_crd_session_unittest.cc
+++ b/chrome/browser/ash/policy/remote_commands/device_command_start_crd_session_unittest.cc
@@ -336,7 +336,7 @@
   std::unique_ptr<ash::WebKioskAppManager> web_kiosk_app_manager_;
 
   absl::optional<std::string> oauth_token_;
-  base::TimeDelta idleness_cutoff_ = base::TimeDelta::FromSeconds(30);
+  base::TimeDelta idleness_cutoff_ = base::Seconds(30);
   bool terminate_upon_input_ = false;
   absl::optional<bool> acked_user_presence_;
 
@@ -575,8 +575,8 @@
   LogInAsAutoLaunchedKioskAppUser();
   SetOAuthToken(kTestOAuthToken);
 
-  const auto idleness_cutoff = base::TimeDelta::FromSeconds(10);
-  const auto device_idle_time = base::TimeDelta::FromSeconds(9);
+  const auto idleness_cutoff = base::Seconds(10);
+  const auto device_idle_time = base::Seconds(9);
 
   SetDeviceIdleTime(device_idle_time);
   SetIdlenessCutoff(idleness_cutoff);
@@ -592,8 +592,8 @@
   LogInAsAutoLaunchedKioskAppUser();
   SetOAuthToken(kTestOAuthToken);
 
-  const auto idleness_cutoff = base::TimeDelta::FromSeconds(10);
-  const auto device_idle_time = base::TimeDelta::FromSeconds(11);
+  const auto idleness_cutoff = base::Seconds(10);
+  const auto device_idle_time = base::Seconds(11);
 
   SetDeviceIdleTime(device_idle_time);
   SetIdlenessCutoff(idleness_cutoff);
diff --git a/chrome/browser/ash/policy/remote_commands/device_command_wipe_users_job.cc b/chrome/browser/ash/policy/remote_commands/device_command_wipe_users_job.cc
index 835f338..8430e8b 100644
--- a/chrome/browser/ash/policy/remote_commands/device_command_wipe_users_job.cc
+++ b/chrome/browser/ash/policy/remote_commands/device_command_wipe_users_job.cc
@@ -21,8 +21,7 @@
 // and ready to be used again. Most schools use the cart model of deployment
 // where a given device might not be used in quite some time (eg. device at the
 // bottom of the pool would take quite some time to be turned on).
-constexpr base::TimeDelta kWipeUsersCommandExpirationTime =
-    base::TimeDelta::FromDays(180);
+constexpr base::TimeDelta kWipeUsersCommandExpirationTime = base::Days(180);
 
 }  // namespace
 
diff --git a/chrome/browser/ash/policy/remote_commands/device_command_wipe_users_job_unittest.cc b/chrome/browser/ash/policy/remote_commands/device_command_wipe_users_job_unittest.cc
index 322a0fef..1c47f23 100644
--- a/chrome/browser/ash/policy/remote_commands/device_command_wipe_users_job_unittest.cc
+++ b/chrome/browser/ash/policy/remote_commands/device_command_wipe_users_job_unittest.cc
@@ -33,8 +33,8 @@
 
 namespace policy {
 
-constexpr base::TimeDelta kCommandAge = base::TimeDelta::FromMinutes(10);
-constexpr base::TimeDelta kVeryoldCommandAge = base::TimeDelta::FromDays(175);
+constexpr base::TimeDelta kCommandAge = base::Minutes(10);
+constexpr base::TimeDelta kVeryoldCommandAge = base::Days(175);
 
 class TestingRemoteCommandsService : public RemoteCommandsService {
  public:
diff --git a/chrome/browser/ash/policy/remote_commands/user_command_arc_job.cc b/chrome/browser/ash/policy/remote_commands/user_command_arc_job.cc
index eab49a1..7ae0b707 100644
--- a/chrome/browser/ash/policy/remote_commands/user_command_arc_job.cc
+++ b/chrome/browser/ash/policy/remote_commands/user_command_arc_job.cc
@@ -22,8 +22,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kDefaultCommandTimeout =
-    base::TimeDelta::FromMinutes(2);
+constexpr base::TimeDelta kDefaultCommandTimeout = base::Minutes(2);
 
 }  // namespace
 
diff --git a/chrome/browser/ash/policy/reporting/arc_app_install_event_log_collector_unittest.cc b/chrome/browser/ash/policy/reporting/arc_app_install_event_log_collector_unittest.cc
index 7f30014..edde4291 100644
--- a/chrome/browser/ash/policy/reporting/arc_app_install_event_log_collector_unittest.cc
+++ b/chrome/browser/ash/policy/reporting/arc_app_install_event_log_collector_unittest.cc
@@ -363,7 +363,7 @@
   EXPECT_EQ(0, delegate()->requests()[1].event.clouddps_response());
 
   // One package succeeded.
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   collector->OnCloudDpsSucceeded(time, {kPackageName});
   ASSERT_EQ(3, delegate()->add_count());
   ASSERT_EQ(0, delegate()->add_for_all_count());
@@ -375,7 +375,7 @@
   EXPECT_FALSE(delegate()->requests()[0].event.has_clouddps_response());
 
   // One package failed.
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   collector->OnCloudDpsFailed(time, kPackageName2,
                               arc::mojom::InstallErrorReason::TIMEOUT);
   ASSERT_EQ(4, delegate()->add_count());
@@ -447,7 +447,7 @@
   EXPECT_EQ(kPackageName2, delegate()->last_request().package_name);
   EXPECT_TRUE(delegate()->last_request().add_disk_space_info);
 
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   collector->OnReportForceInstallMainLoopFailed(time, {kPackageName2});
   EXPECT_EQ(6, delegate()->add_count());
   EXPECT_EQ(em::AppInstallReportLogEvent::CLOUDDPC_MAIN_LOOP_FAILED,
diff --git a/chrome/browser/ash/policy/reporting/arc_app_install_event_log_manager_unittest.cc b/chrome/browser/ash/policy/reporting/arc_app_install_event_log_manager_unittest.cc
index 1f52c0fe..37c3beeb 100644
--- a/chrome/browser/ash/policy/reporting/arc_app_install_event_log_manager_unittest.cc
+++ b/chrome/browser/ash/policy/reporting/arc_app_install_event_log_manager_unittest.cc
@@ -50,11 +50,10 @@
 
 constexpr base::FilePath::CharType kLogFileName[] =
     FILE_PATH_LITERAL("app_push_install_log");
-constexpr base::TimeDelta kStoreDelay = base::TimeDelta::FromSeconds(5);
-constexpr base::TimeDelta kUploadInterval = base::TimeDelta::FromHours(3);
-constexpr base::TimeDelta kExpeditedUploadDelay =
-    base::TimeDelta::FromMinutes(15);
-constexpr base::TimeDelta kOneMs = base::TimeDelta::FromMilliseconds(1);
+constexpr base::TimeDelta kStoreDelay = base::Seconds(5);
+constexpr base::TimeDelta kUploadInterval = base::Hours(3);
+constexpr base::TimeDelta kExpeditedUploadDelay = base::Minutes(15);
+constexpr base::TimeDelta kOneMs = base::Milliseconds(1);
 
 constexpr int kTotalSizeExpeditedUploadThreshold = 2048;
 constexpr int kMaxSizeExpeditedUploadThreshold = 512;
@@ -368,7 +367,7 @@
 TEST_F(ArcAppInstallEventLogManagerTest, AddBeforeInitialUpload) {
   CreateManager();
 
-  const base::TimeDelta offset = base::TimeDelta::FromMinutes(2);
+  const base::TimeDelta offset = base::Minutes(2);
   FastForwardTo(offset);
   AddLogEntry(0 /* app_index */);
 
@@ -398,14 +397,14 @@
 TEST_F(ArcAppInstallEventLogManagerTest, Add) {
   CreateManager();
 
-  const base::TimeDelta offset = base::TimeDelta::FromMinutes(20);
+  const base::TimeDelta offset = base::Minutes(20);
   FastForwardTo(offset);
   AddLogEntry(0 /* app_index */);
 
-  FastForwardTo(offset + base::TimeDelta::FromSeconds(2));
+  FastForwardTo(offset + base::Seconds(2));
   AddLogEntry(0 /* app_index */);
 
-  FastForwardTo(offset + base::TimeDelta::FromSeconds(4));
+  FastForwardTo(offset + base::Seconds(4));
   AddLogEntry(0 /* app_index */);
 
   FastForwardTo(offset + kStoreDelay - kOneMs);
@@ -414,14 +413,13 @@
   FastForwardTo(offset + kStoreDelay);
   VerifyAndDeleteLogFile();
 
-  FastForwardTo(offset + base::TimeDelta::FromSeconds(6));
+  FastForwardTo(offset + base::Seconds(6));
   AddLogEntry(0 /* app_index */);
 
-  FastForwardTo(offset + base::TimeDelta::FromSeconds(6) + kStoreDelay -
-                kOneMs);
+  FastForwardTo(offset + base::Seconds(6) + kStoreDelay - kOneMs);
   EXPECT_FALSE(base::PathExists(log_file_path_));
 
-  FastForwardTo(offset + base::TimeDelta::FromSeconds(6) + kStoreDelay);
+  FastForwardTo(offset + base::Seconds(6) + kStoreDelay);
   VerifyAndDeleteLogFile();
 
   FastForwardTo(offset + kUploadInterval - kOneMs);
@@ -444,7 +442,7 @@
 TEST_F(ArcAppInstallEventLogManagerTest, AddForMultipleApps) {
   CreateManager();
 
-  const base::TimeDelta offset = base::TimeDelta::FromMinutes(20);
+  const base::TimeDelta offset = base::Minutes(20);
   FastForwardTo(offset);
   AddLogEntryForAllApps();
 
@@ -473,7 +471,7 @@
 TEST_F(ArcAppInstallEventLogManagerTest, AddForZeroApps) {
   CreateManager();
 
-  const base::TimeDelta offset = base::TimeDelta::FromMinutes(20);
+  const base::TimeDelta offset = base::Minutes(20);
   FastForwardTo(offset);
   AddLogEntryForsetOfApps({});
 
@@ -487,7 +485,7 @@
 TEST_F(ArcAppInstallEventLogManagerTest, AddToTriggerMaxSizeExpedited) {
   CreateManager();
 
-  const base::TimeDelta offset = base::TimeDelta::FromMinutes(20);
+  const base::TimeDelta offset = base::Minutes(20);
   FastForwardTo(offset);
   for (int i = 0; i <= kMaxSizeExpeditedUploadThreshold; ++i) {
     AddLogEntry(0 /* app_index */);
@@ -519,7 +517,7 @@
 TEST_F(ArcAppInstallEventLogManagerTest, AddToTriggerTotalSizeExpedited) {
   CreateManager();
 
-  const base::TimeDelta offset = base::TimeDelta::FromMinutes(20);
+  const base::TimeDelta offset = base::Minutes(20);
   FastForwardTo(offset);
   int i = 0;
   while (i <= kTotalSizeExpeditedUploadThreshold) {
@@ -556,7 +554,7 @@
        AddForMultipleAppsToTriggerTotalSizeExpedited) {
   CreateManager();
 
-  const base::TimeDelta offset = base::TimeDelta::FromMinutes(20);
+  const base::TimeDelta offset = base::Minutes(20);
   FastForwardTo(offset);
   for (int i = 0; i <= kTotalSizeExpeditedUploadThreshold;
        i += base::size(kPackageNames)) {
@@ -678,7 +676,7 @@
 TEST_F(ArcAppInstallEventLogManagerTest, RequestExpeditedUploadAddUpload) {
   CreateManager();
 
-  const base::TimeDelta offset = base::TimeDelta::FromMinutes(20);
+  const base::TimeDelta offset = base::Minutes(20);
   FastForwardTo(offset);
   for (int i = 0; i <= kMaxSizeExpeditedUploadThreshold; ++i) {
     AddLogEntry(0 /* app_index */);
diff --git a/chrome/browser/ash/policy/reporting/arc_app_install_event_log_uploader.cc b/chrome/browser/ash/policy/reporting/arc_app_install_event_log_uploader.cc
index 301edeb..17f67ee 100644
--- a/chrome/browser/ash/policy/reporting/arc_app_install_event_log_uploader.cc
+++ b/chrome/browser/ash/policy/reporting/arc_app_install_event_log_uploader.cc
@@ -61,7 +61,7 @@
       FROM_HERE,
       base::BindOnce(&InstallEventLogUploaderBase::StartSerialization,
                      weak_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(retry_backoff_ms_));
+      base::Milliseconds(retry_backoff_ms_));
 }
 
 void ArcAppInstallEventLogUploader::OnSerialized(
diff --git a/chrome/browser/ash/policy/reporting/arc_app_install_event_log_uploader_unittest.cc b/chrome/browser/ash/policy/reporting/arc_app_install_event_log_uploader_unittest.cc
index 8c0a0d2..fbbcb46 100644
--- a/chrome/browser/ash/policy/reporting/arc_app_install_event_log_uploader_unittest.cc
+++ b/chrome/browser/ash/policy/reporting/arc_app_install_event_log_uploader_unittest.cc
@@ -37,8 +37,8 @@
 
 namespace {
 
-constexpr base::TimeDelta kMinRetryBackoff = base::TimeDelta::FromSeconds(10);
-constexpr base::TimeDelta kMaxRetryBackoff = base::TimeDelta::FromDays(1);
+constexpr base::TimeDelta kMinRetryBackoff = base::Seconds(10);
+constexpr base::TimeDelta kMaxRetryBackoff = base::Days(1);
 
 static const char kDmToken[] = "token";
 static const char kPackageName[] = "package";
diff --git a/chrome/browser/ash/policy/reporting/extension_install_event_log_manager_unittest.cc b/chrome/browser/ash/policy/reporting/extension_install_event_log_manager_unittest.cc
index 5ff0059..033c841 100644
--- a/chrome/browser/ash/policy/reporting/extension_install_event_log_manager_unittest.cc
+++ b/chrome/browser/ash/policy/reporting/extension_install_event_log_manager_unittest.cc
@@ -53,11 +53,10 @@
 
 constexpr base::FilePath::CharType kLogFileName[] =
     FILE_PATH_LITERAL("extension_install_log");
-constexpr base::TimeDelta kStoreDelay = base::TimeDelta::FromSeconds(5);
-constexpr base::TimeDelta kUploadInterval = base::TimeDelta::FromHours(3);
-constexpr base::TimeDelta kExpeditedUploadDelay =
-    base::TimeDelta::FromMinutes(15);
-constexpr base::TimeDelta kOneMs = base::TimeDelta::FromMilliseconds(1);
+constexpr base::TimeDelta kStoreDelay = base::Seconds(5);
+constexpr base::TimeDelta kUploadInterval = base::Hours(3);
+constexpr base::TimeDelta kExpeditedUploadDelay = base::Minutes(15);
+constexpr base::TimeDelta kOneMs = base::Milliseconds(1);
 
 constexpr int kTotalSizeExpeditedUploadThreshold = 2048;
 constexpr int kMaxSizeExpeditedUploadThreshold = 512;
@@ -370,7 +369,7 @@
 TEST_F(ExtensionInstallEventLogManagerTest, AddBeforeInitialUpload) {
   CreateManager();
 
-  const base::TimeDelta offset = base::TimeDelta::FromMinutes(2);
+  const base::TimeDelta offset = base::Minutes(2);
   FastForwardTo(offset);
   AddLogEntry(0 /* extension_index */);
 
@@ -400,14 +399,14 @@
 TEST_F(ExtensionInstallEventLogManagerTest, Add) {
   CreateManager();
 
-  const base::TimeDelta offset = base::TimeDelta::FromMinutes(20);
+  const base::TimeDelta offset = base::Minutes(20);
   FastForwardTo(offset);
   AddLogEntry(0 /* extension_index */);
 
-  FastForwardTo(offset + base::TimeDelta::FromSeconds(2));
+  FastForwardTo(offset + base::Seconds(2));
   AddLogEntry(0 /* extension_index */);
 
-  FastForwardTo(offset + base::TimeDelta::FromSeconds(4));
+  FastForwardTo(offset + base::Seconds(4));
   AddLogEntry(0 /* extension_index */);
 
   FastForwardTo(offset + kStoreDelay - kOneMs);
@@ -416,14 +415,13 @@
   FastForwardTo(offset + kStoreDelay);
   VerifyAndDeleteLogFile();
 
-  FastForwardTo(offset + base::TimeDelta::FromSeconds(6));
+  FastForwardTo(offset + base::Seconds(6));
   AddLogEntry(0 /* extension_index */);
 
-  FastForwardTo(offset + base::TimeDelta::FromSeconds(6) + kStoreDelay -
-                kOneMs);
+  FastForwardTo(offset + base::Seconds(6) + kStoreDelay - kOneMs);
   EXPECT_FALSE(base::PathExists(log_file_path_));
 
-  FastForwardTo(offset + base::TimeDelta::FromSeconds(6) + kStoreDelay);
+  FastForwardTo(offset + base::Seconds(6) + kStoreDelay);
   VerifyAndDeleteLogFile();
 
   FastForwardTo(offset + kUploadInterval - kOneMs);
@@ -446,7 +444,7 @@
 TEST_F(ExtensionInstallEventLogManagerTest, AddForMultipleExtensions) {
   CreateManager();
 
-  const base::TimeDelta offset = base::TimeDelta::FromMinutes(20);
+  const base::TimeDelta offset = base::Minutes(20);
   FastForwardTo(offset);
   AddLogEntryForAllExtensions();
 
@@ -475,7 +473,7 @@
 TEST_F(ExtensionInstallEventLogManagerTest, AddForZeroExtensions) {
   CreateManager();
 
-  const base::TimeDelta offset = base::TimeDelta::FromMinutes(20);
+  const base::TimeDelta offset = base::Minutes(20);
   FastForwardTo(offset);
   AddLogEntryForsetOfExtensions({});
 
@@ -489,7 +487,7 @@
 TEST_F(ExtensionInstallEventLogManagerTest, AddToTriggerMaxSizeExpedited) {
   CreateManager();
 
-  const base::TimeDelta offset = base::TimeDelta::FromMinutes(20);
+  const base::TimeDelta offset = base::Minutes(20);
   FastForwardTo(offset);
   for (int i = 0; i <= kMaxSizeExpeditedUploadThreshold; ++i) {
     AddLogEntry(0 /* extension_index */);
@@ -521,7 +519,7 @@
 TEST_F(ExtensionInstallEventLogManagerTest, AddToTriggerTotalSizeExpedited) {
   CreateManager();
 
-  const base::TimeDelta offset = base::TimeDelta::FromMinutes(20);
+  const base::TimeDelta offset = base::Minutes(20);
   FastForwardTo(offset);
   int i = 0;
   while (i <= kTotalSizeExpeditedUploadThreshold) {
@@ -558,7 +556,7 @@
        AddForMultipleExtensionsToTriggerTotalSizeExpedited) {
   CreateManager();
 
-  const base::TimeDelta offset = base::TimeDelta::FromMinutes(20);
+  const base::TimeDelta offset = base::Minutes(20);
   FastForwardTo(offset);
   for (int i = 0; i <= kTotalSizeExpeditedUploadThreshold;
        i += base::size(kExtensionIds)) {
@@ -680,7 +678,7 @@
 TEST_F(ExtensionInstallEventLogManagerTest, RequestExpeditedUploadAddUpload) {
   CreateManager();
 
-  const base::TimeDelta offset = base::TimeDelta::FromMinutes(20);
+  const base::TimeDelta offset = base::Minutes(20);
   FastForwardTo(offset);
   for (int i = 0; i <= kMaxSizeExpeditedUploadThreshold; ++i) {
     AddLogEntry(0 /* extension_index */);
diff --git a/chrome/browser/ash/policy/reporting/extension_install_event_log_uploader.cc b/chrome/browser/ash/policy/reporting/extension_install_event_log_uploader.cc
index 2d4ef3d6..7ee5a69 100644
--- a/chrome/browser/ash/policy/reporting/extension_install_event_log_uploader.cc
+++ b/chrome/browser/ash/policy/reporting/extension_install_event_log_uploader.cc
@@ -250,7 +250,7 @@
       FROM_HERE,
       base::BindOnce(&ExtensionInstallEventLogUploader::StartSerialization,
                      weak_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(retry_backoff_ms_));
+      base::Milliseconds(retry_backoff_ms_));
 }
 
 void ExtensionInstallEventLogUploader::OnSerialized(
diff --git a/chrome/browser/ash/policy/reporting/extension_install_event_log_uploader_unittest.cc b/chrome/browser/ash/policy/reporting/extension_install_event_log_uploader_unittest.cc
index 8163ea66..b0739a20 100644
--- a/chrome/browser/ash/policy/reporting/extension_install_event_log_uploader_unittest.cc
+++ b/chrome/browser/ash/policy/reporting/extension_install_event_log_uploader_unittest.cc
@@ -42,8 +42,8 @@
 
 namespace {
 
-constexpr base::TimeDelta kMinRetryBackoff = base::TimeDelta::FromSeconds(10);
-constexpr base::TimeDelta kMaxRetryBackoff = base::TimeDelta::FromDays(1);
+constexpr base::TimeDelta kMinRetryBackoff = base::Seconds(10);
+constexpr base::TimeDelta kMaxRetryBackoff = base::Days(1);
 
 static const char kExtensionId[] = "abcdefghabcdefghabcdefghabcdefgh";
 
@@ -207,7 +207,7 @@
     Mock::VerifyAndClearExpectations(mock_report_queue_);
 
     // A task is enqueued with zero delay and needs to be processed.
-    base::TimeDelta zero_delay = base::TimeDelta::FromSeconds(0);
+    base::TimeDelta zero_delay = base::Seconds(0);
 
     // Expect and throwaway task.
     EXPECT_EQ(task_environment_.NextMainThreadPendingTaskDelay(), zero_delay);
diff --git a/chrome/browser/ash/policy/reporting/install_event_log_manager.cc b/chrome/browser/ash/policy/reporting/install_event_log_manager.cc
index 697b5c4f..4f5cb153 100644
--- a/chrome/browser/ash/policy/reporting/install_event_log_manager.cc
+++ b/chrome/browser/ash/policy/reporting/install_event_log_manager.cc
@@ -25,20 +25,19 @@
 
 // Delay after which a change to the log contents is stored to disk. Further
 // changes during this time window are picked up by the same store operation.
-constexpr base::TimeDelta kStoreDelay = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kStoreDelay = base::Seconds(5);
 // Reduce store delay for integration tests.
-constexpr base::TimeDelta kFastStoreDelay = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kFastStoreDelay = base::Seconds(1);
 
 // Interval between subsequent uploads to the server, if the log is not empty.
-constexpr base::TimeDelta kUploadInterval = base::TimeDelta::FromHours(3);
+constexpr base::TimeDelta kUploadInterval = base::Hours(3);
 
 // Delay of an expedited upload to the server, used for the first upload after
 // the |InstallEventLogManagerBase| is constructed and whenever the log is
 // getting full.
-constexpr base::TimeDelta kExpeditedUploadDelay =
-    base::TimeDelta::FromMinutes(15);
+constexpr base::TimeDelta kExpeditedUploadDelay = base::Minutes(15);
 // Reduce upload delay for integration tests.
-constexpr base::TimeDelta kFastUploadDelay = base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kFastUploadDelay = base::Seconds(30);
 
 // An expedited upload is scheduled whenever the total number of log entries
 // exceeds |kTotalSizeExpeditedUploadThreshold| or the number of log entries for
diff --git a/chrome/browser/ash/policy/reporting/install_event_log_util.cc b/chrome/browser/ash/policy/reporting/install_event_log_util.cc
index ddbf8f7..791f14b 100644
--- a/chrome/browser/ash/policy/reporting/install_event_log_util.cc
+++ b/chrome/browser/ash/policy/reporting/install_event_log_util.cc
@@ -253,9 +253,9 @@
 
   if (extension_install_report_log_event.has_timestamp()) {
     // Format the current time (UTC) in RFC3339 format
-    base::Time timestamp = base::Time::UnixEpoch() +
-                           base::TimeDelta::FromMicroseconds(
-                               extension_install_report_log_event.timestamp());
+    base::Time timestamp =
+        base::Time::UnixEpoch() +
+        base::Microseconds(extension_install_report_log_event.timestamp());
     wrapper.SetStringKey(kTime, GetTimeString(timestamp));
   }
 
@@ -354,8 +354,8 @@
   if (app_install_report_log_event.has_timestamp()) {
     // Format the current time (UTC) in RFC3339 format
     base::Time timestamp =
-        base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(
-                                      app_install_report_log_event.timestamp());
+        base::Time::UnixEpoch() +
+        base::Microseconds(app_install_report_log_event.timestamp());
     wrapper.SetStringKey(kTime, GetTimeString(timestamp));
   }
 
diff --git a/chrome/browser/ash/policy/rsu/lookup_key_uploader.cc b/chrome/browser/ash/policy/rsu/lookup_key_uploader.cc
index 53e972d..3bc980b 100644
--- a/chrome/browser/ash/policy/rsu/lookup_key_uploader.cc
+++ b/chrome/browser/ash/policy/rsu/lookup_key_uploader.cc
@@ -18,8 +18,7 @@
 
 namespace policy {
 
-const base::TimeDelta LookupKeyUploader::kRetryFrequency =
-    base::TimeDelta::FromHours(10);
+const base::TimeDelta LookupKeyUploader::kRetryFrequency = base::Hours(10);
 
 LookupKeyUploader::LookupKeyUploader(
     DeviceCloudPolicyStoreAsh* policy_store,
diff --git a/chrome/browser/ash/policy/rsu/lookup_key_uploader_unittest.cc b/chrome/browser/ash/policy/rsu/lookup_key_uploader_unittest.cc
index 7dcc279..258feb4 100644
--- a/chrome/browser/ash/policy/rsu/lookup_key_uploader_unittest.cc
+++ b/chrome/browser/ash/policy/rsu/lookup_key_uploader_unittest.cc
@@ -52,7 +52,7 @@
         nullptr, &pref_service_, &certificate_uploader_);
     lookup_key_uploader_->SetClock(&clock_);
     // We initialize clock to imitate real time.
-    clock_.Advance(base::TimeDelta::FromDays(50));
+    clock_.Advance(base::Days(50));
   }
 
   void TearDown() override { ash::DeviceSettingsTestBase::TearDown(); }
diff --git a/chrome/browser/ash/policy/scheduled_task_handler/device_scheduled_update_checker.h b/chrome/browser/ash/policy/scheduled_task_handler/device_scheduled_update_checker.h
index 197fde0..39735c2 100644
--- a/chrome/browser/ash/policy/scheduled_task_handler/device_scheduled_update_checker.h
+++ b/chrome/browser/ash/policy/scheduled_task_handler/device_scheduled_update_checker.h
@@ -108,15 +108,14 @@
 
 // The timeout after which an OS and policies update is aborted.
 constexpr base::TimeDelta kOsAndPoliciesUpdateCheckHardTimeout =
-    base::TimeDelta::FromMinutes(40);
+    base::Minutes(40);
 
 // The maximum iterations allowed to start an update check timer if the
 // operation fails.
 constexpr int kMaxStartUpdateCheckTimerRetryIterations = 5;
 
 // Time to call |StartUpdateCheckTimer| again in case it failed.
-constexpr base::TimeDelta kStartUpdateCheckTimerRetryTime =
-    base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kStartUpdateCheckTimerRetryTime = base::Minutes(1);
 
 }  // namespace update_checker_internal
 
diff --git a/chrome/browser/ash/policy/scheduled_task_handler/os_and_policies_update_checker.h b/chrome/browser/ash/policy/scheduled_task_handler/os_and_policies_update_checker.h
index 9c18723..da8e2fd 100644
--- a/chrome/browser/ash/policy/scheduled_task_handler/os_and_policies_update_checker.h
+++ b/chrome/browser/ash/policy/scheduled_task_handler/os_and_policies_update_checker.h
@@ -25,14 +25,13 @@
 // Interval at which |os_and_policies_update_checker_| retries checking for and
 // downloading updates.
 constexpr base::TimeDelta kOsAndPoliciesUpdateCheckerRetryTime =
-    base::TimeDelta::FromMinutes(10);
+    base::Minutes(10);
 
 // Time for which |OsAndPoliciesUpdateChecker| will wait for a valid network
 // before querying the update server for updates. After this time it will return
 // a failure. During testing it was noted that on average 1 minute seemed to be
 // the delay after which a network would be detected by Chrome.
-constexpr base::TimeDelta kWaitForNetworkTimeout =
-    base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kWaitForNetworkTimeout = base::Minutes(5);
 
 }  // namespace update_checker_internal
 
diff --git a/chrome/browser/ash/policy/scheduled_task_handler/scheduled_task_executor_impl.cc b/chrome/browser/ash/policy/scheduled_task_handler/scheduled_task_executor_impl.cc
index 0888fe0..1c17f7e 100644
--- a/chrome/browser/ash/policy/scheduled_task_handler/scheduled_task_executor_impl.cc
+++ b/chrome/browser/ash/policy/scheduled_task_handler/scheduled_task_executor_impl.cc
@@ -109,7 +109,7 @@
   UDate b_ms = b.getTime(status);
   DCHECK(U_SUCCESS(status));
   DCHECK(a_ms >= b_ms);
-  return base::TimeDelta::FromMilliseconds(a_ms - b_ms);
+  return base::Milliseconds(a_ms - b_ms);
 }
 
 std::unique_ptr<icu::Calendar> ConvertUtcToTzIcuTime(base::Time cur_time,
diff --git a/chrome/browser/ash/policy/scheduled_task_handler/test/device_scheduled_reboot_handler_unittest.cc b/chrome/browser/ash/policy/scheduled_task_handler/test/device_scheduled_reboot_handler_unittest.cc
index 27f7429..da20183 100644
--- a/chrome/browser/ash/policy/scheduled_task_handler/test/device_scheduled_reboot_handler_unittest.cc
+++ b/chrome/browser/ash/policy/scheduled_task_handler/test/device_scheduled_reboot_handler_unittest.cc
@@ -130,7 +130,7 @@
 
   // Calculate time from one hour from now and set the reboot policy to
   // happen daily at that time.
-  base::TimeDelta delay_from_now = base::TimeDelta::FromHours(1);
+  base::TimeDelta delay_from_now = base::Hours(1);
   auto policy_and_next_reboot_time = scheduled_task_test_util::CreatePolicy(
       scheduled_task_executor_->GetTimeZone(),
       scheduled_task_executor_->GetCurrentTime(), delay_from_now,
@@ -138,7 +138,7 @@
 
   // Set a new scheduled reboot, fast forward to right before the
   // expected reboot and then check if an reboot is not scheduled.
-  const base::TimeDelta small_delay = base::TimeDelta::FromMilliseconds(1);
+  const base::TimeDelta small_delay = base::Milliseconds(1);
   cros_settings_.device_settings()->Set(
       chromeos::kDeviceScheduledReboot,
       std::move(policy_and_next_reboot_time.first));
@@ -157,7 +157,7 @@
   // After the reboot, the current handler is destroyed and the new one is
   // created which will schedule reboot for the next day. Check that current
   // handler is not scheduling any more reboots.
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
   EXPECT_TRUE(CheckStats(expected_scheduled_reboots, expected_reboot_requests));
 }
 
@@ -168,7 +168,7 @@
 
   // Calculate time from one hour from now and set the reboot policy to
   // happen daily at that time.
-  base::TimeDelta delay_from_now = base::TimeDelta::FromHours(1);
+  base::TimeDelta delay_from_now = base::Hours(1);
   auto policy_and_next_reboot_time = scheduled_task_test_util::CreatePolicy(
       scheduled_task_executor_->GetTimeZone(),
       scheduled_task_executor_->GetCurrentTime(), delay_from_now,
@@ -176,7 +176,7 @@
 
   // Set a new scheduled reboot, fast forward to right before the
   // expected reboot and then check if an reboot is not scheduled.
-  const base::TimeDelta small_delay = base::TimeDelta::FromMilliseconds(1);
+  const base::TimeDelta small_delay = base::Milliseconds(1);
   cros_settings_.device_settings()->Set(
       chromeos::kDeviceScheduledReboot,
       std::move(policy_and_next_reboot_time.first));
@@ -194,7 +194,7 @@
   // Fast forward to the next day and then check if the reboot is scheduled
   // again.
   expected_scheduled_reboots += 1;
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
   EXPECT_TRUE(CheckStats(expected_scheduled_reboots, expected_reboot_requests));
 
   // Switch to the kiosk mode, fast forward to the next day and check that the
@@ -203,7 +203,7 @@
       .WillOnce(testing::Return(true));
   expected_scheduled_reboots += 1;
   expected_reboot_requests += 1;
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
   EXPECT_TRUE(CheckStats(expected_scheduled_reboots, expected_reboot_requests));
 }
 
@@ -212,7 +212,7 @@
       .WillOnce(testing::Return(false));
   // Set the first reboot to happen 49 hours from now (i.e. 1 hour from 2
   // days from now) and then weekly after.
-  base::TimeDelta delay_from_now = base::TimeDelta::FromHours(49);
+  base::TimeDelta delay_from_now = base::Hours(49);
   auto policy_and_next_reboot_time = scheduled_task_test_util::CreatePolicy(
       scheduled_task_executor_->GetTimeZone(),
       scheduled_task_executor_->GetCurrentTime(), delay_from_now,
@@ -222,7 +222,7 @@
   // expected reboot and then check if a reboot is not scheduled.
   int expected_scheduled_reboots = 0;
   int expected_reboot_requests = 0;
-  const base::TimeDelta small_delay = base::TimeDelta::FromMilliseconds(1);
+  const base::TimeDelta small_delay = base::Milliseconds(1);
   cros_settings_.device_settings()->Set(
       chromeos::kDeviceScheduledReboot,
       std::move(policy_and_next_reboot_time.first));
@@ -241,7 +241,7 @@
       .WillOnce(testing::Return(true));
   expected_scheduled_reboots += 1;
   expected_reboot_requests += 1;
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(7));
+  task_environment_.FastForwardBy(base::Days(7));
   EXPECT_TRUE(CheckStats(expected_scheduled_reboots, expected_reboot_requests));
 }
 
@@ -249,7 +249,7 @@
   EXPECT_CALL(*mock_user_manager_, IsLoggedInAsKioskApp())
       .WillOnce(testing::Return(false));
   // Set the first reboot to happen 1 hour from now.
-  base::TimeDelta delay_from_now = base::TimeDelta::FromHours(1);
+  base::TimeDelta delay_from_now = base::Hours(1);
   auto policy_and_next_reboot_time = scheduled_task_test_util::CreatePolicy(
       scheduled_task_executor_->GetTimeZone(),
       scheduled_task_executor_->GetCurrentTime(), delay_from_now,
@@ -264,7 +264,7 @@
   // expected reboot and then check if a reboot is not scheduled.
   int expected_scheduled_reboots = 0;
   int expected_reboot_requests = 0;
-  const base::TimeDelta small_delay = base::TimeDelta::FromMilliseconds(1);
+  const base::TimeDelta small_delay = base::Milliseconds(1);
   cros_settings_.device_settings()->Set(
       chromeos::kDeviceScheduledReboot,
       std::move(policy_and_next_reboot_time.first));
diff --git a/chrome/browser/ash/policy/scheduled_task_handler/test/device_scheduled_update_checker_unittest.cc b/chrome/browser/ash/policy/scheduled_task_handler/test/device_scheduled_update_checker_unittest.cc
index 751eaf5..b3025839 100644
--- a/chrome/browser/ash/policy/scheduled_task_handler/test/device_scheduled_update_checker_unittest.cc
+++ b/chrome/browser/ash/policy/scheduled_task_handler/test/device_scheduled_update_checker_unittest.cc
@@ -216,7 +216,7 @@
     DCHECK_GT(hours_fom_now, 0);
     // Calculate time from one hour from now and set the update check policy to
     // happen daily at that time.
-    base::TimeDelta delay_from_now = base::TimeDelta::FromHours(hours_fom_now);
+    base::TimeDelta delay_from_now = base::Hours(hours_fom_now);
     auto policy_and_next_update_check_time =
         scheduled_task_test_util::CreatePolicy(
             scheduled_task_executor_->GetTimeZone(),
@@ -225,7 +225,7 @@
 
     // Set a new scheduled update setting, fast forward to right before the
     // expected update and then check if an update check is not scheduled.
-    const base::TimeDelta small_delay = base::TimeDelta::FromMilliseconds(1);
+    const base::TimeDelta small_delay = base::Milliseconds(1);
     cros_settings_.device_settings()->Set(
         chromeos::kDeviceScheduledUpdateCheck,
         std::move(policy_and_next_update_check_time.first));
@@ -261,7 +261,7 @@
       expected_update_checks += 1;
       expected_update_check_requests += 1;
       expected_update_check_completions += 1;
-      task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+      task_environment_.FastForwardBy(base::Days(1));
 
       // Simulate update check succeeding.
       NotifyUpdateCheckStatus(update_engine::Operation::UPDATED_NEED_REBOOT);
@@ -287,7 +287,7 @@
       return false;
     }
 
-    base::TimeDelta delay_from_now = base::TimeDelta::FromHours(1);
+    base::TimeDelta delay_from_now = base::Hours(1);
     // If the timer is set to expire at 5PM in |cur_tz| then changing time zones
     // means that the new timer would expire at 5PM in |new_tz| as well. This
     // delay is the delay between the new time zone's timer expiration time and
@@ -324,7 +324,7 @@
 
     // Fast forward right before the new time zone's expected timer expiration
     // time and check if no new events happened.
-    const base::TimeDelta small_delay = base::TimeDelta::FromMilliseconds(1);
+    const base::TimeDelta small_delay = base::Milliseconds(1);
     task_environment_.FastForwardBy(new_tz_timer_expiration_delay -
                                     small_delay);
     if (!CheckStats(expected_update_checks, expected_update_check_requests,
@@ -377,7 +377,7 @@
 TEST_F(DeviceScheduledUpdateCheckerTest, CheckIfWeeklyUpdateCheckIsScheduled) {
   // Set the first update check to happen 49 hours from now (i.e. 1 hour from 2
   // days from now) and then weekly after.
-  base::TimeDelta delay_from_now = base::TimeDelta::FromHours(49);
+  base::TimeDelta delay_from_now = base::Hours(49);
   auto policy_and_next_update_check_time =
       scheduled_task_test_util::CreatePolicy(
           scheduled_task_executor_->GetTimeZone(),
@@ -389,7 +389,7 @@
   int expected_update_checks = 0;
   int expected_update_check_requests = 0;
   int expected_update_check_completions = 0;
-  const base::TimeDelta small_delay = base::TimeDelta::FromMilliseconds(1);
+  const base::TimeDelta small_delay = base::Milliseconds(1);
   cros_settings_.device_settings()->Set(
       chromeos::kDeviceScheduledUpdateCheck,
       std::move(policy_and_next_update_check_time.first));
@@ -412,7 +412,7 @@
   expected_update_checks += 1;
   expected_update_check_requests += 1;
   expected_update_check_completions += 1;
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(7));
+  task_environment_.FastForwardBy(base::Days(7));
   // Simulate update check succeeding.
   NotifyUpdateCheckStatus(update_engine::Operation::UPDATED_NEED_REBOOT);
   EXPECT_TRUE(CheckStats(expected_update_checks, expected_update_check_requests,
@@ -422,7 +422,7 @@
 TEST_F(DeviceScheduledUpdateCheckerTest, CheckIfMonthlyUpdateCheckIsScheduled) {
   // Set the first update check to happen 49 hours from now (i.e. 1 hour from 2
   // days from now) and then monthly after.
-  base::TimeDelta delay_from_now = base::TimeDelta::FromHours(1);
+  base::TimeDelta delay_from_now = base::Hours(1);
   auto policy_and_next_update_check_time =
       scheduled_task_test_util::CreatePolicy(
           scheduled_task_executor_->GetTimeZone(),
@@ -440,7 +440,7 @@
   int expected_update_checks = 0;
   int expected_update_check_requests = 0;
   int expected_update_check_completions = 0;
-  const base::TimeDelta small_delay = base::TimeDelta::FromMilliseconds(1);
+  const base::TimeDelta small_delay = base::Milliseconds(1);
   cros_settings_.device_settings()->Set(
       chromeos::kDeviceScheduledUpdateCheck,
       std::move(policy_and_next_update_check_time.first));
@@ -481,13 +481,13 @@
 TEST_F(DeviceScheduledUpdateCheckerTest, CheckMonthlyRolloverLogic) {
   // The default time at the beginning is 31st December, 1969, 19:00:00.000
   // America/New_York. Move it to 31st January, 1970 to test the rollover logic.
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(
-      scheduled_task_test_util::GetDaysInMonthInEpochYear(
+  task_environment_.FastForwardBy(
+      base::Days(scheduled_task_test_util::GetDaysInMonthInEpochYear(
           static_cast<UCalendarMonths>(UCAL_JANUARY))));
 
   // Set the first update check time to be at 31st January, 1970, 20:00:00.000
   // America/New_York.
-  base::TimeDelta delay_from_now = base::TimeDelta::FromHours(1);
+  base::TimeDelta delay_from_now = base::Hours(1);
   auto policy_and_next_update_check_time =
       scheduled_task_test_util::CreatePolicy(
           scheduled_task_executor_->GetTimeZone(),
@@ -527,7 +527,7 @@
     // This should be always set in a virtual time environment.
     EXPECT_GT(expected_next_update_check_delay,
               scheduled_task_internal::kInvalidDelay);
-    const base::TimeDelta small_delay = base::TimeDelta::FromMilliseconds(1);
+    const base::TimeDelta small_delay = base::Milliseconds(1);
     task_environment_.FastForwardBy(expected_next_update_check_delay -
                                     small_delay);
     EXPECT_TRUE(CheckStats(expected_update_checks,
@@ -555,7 +555,7 @@
 
   // Calculate time from one hour from now and set the update check policy to
   // happen daily at that time.
-  base::TimeDelta delay_from_now = base::TimeDelta::FromHours(1);
+  base::TimeDelta delay_from_now = base::Hours(1);
   auto policy_and_next_update_check_time =
       scheduled_task_test_util::CreatePolicy(
           scheduled_task_executor_->GetTimeZone(),
@@ -594,7 +594,7 @@
   for (int i = 0; i < days; i++) {
     // Fast forward to right before the next update check and ensure that no
     // update checks happened.
-    base::TimeDelta small_delay = base::TimeDelta::FromMilliseconds(1);
+    base::TimeDelta small_delay = base::Milliseconds(1);
     task_environment_.FastForwardBy(delay_till_next_update_check - small_delay);
     EXPECT_TRUE(CheckStats(expected_update_checks,
                            expected_update_check_requests,
@@ -609,7 +609,7 @@
     EXPECT_TRUE(CheckStats(expected_update_checks,
                            expected_update_check_requests,
                            expected_update_check_completions));
-    delay_till_next_update_check = base::TimeDelta::FromDays(1);
+    delay_till_next_update_check = base::Days(1);
   }
 }
 
@@ -666,7 +666,7 @@
 TEST_F(DeviceScheduledUpdateCheckerTest, CheckRetryLogicUpdateCheckFailure) {
   // Set the first update check to happen 49 hours from now (i.e. 1 hour from 2
   // days from now) and then weekly after.
-  base::TimeDelta delay_from_now = base::TimeDelta::FromHours(1);
+  base::TimeDelta delay_from_now = base::Hours(1);
   auto policy_and_next_update_check_time =
       scheduled_task_test_util::CreatePolicy(
           scheduled_task_executor_->GetTimeZone(),
@@ -706,10 +706,10 @@
   // No retries should be scheduled till the next update check timer fires. Fast
   // forward to just before the timer firing and check.
   const base::TimeDelta delay_till_next_update_check_timer =
-      base::TimeDelta::FromDays(kDaysInAWeek) -
+      base::Days(kDaysInAWeek) -
       (update_checker_internal::kMaxOsAndPoliciesUpdateCheckerRetryIterations *
        update_checker_internal::kOsAndPoliciesUpdateCheckerRetryTime);
-  const base::TimeDelta small_delay = base::TimeDelta::FromMilliseconds(1);
+  const base::TimeDelta small_delay = base::Milliseconds(1);
   task_environment_.FastForwardBy(delay_till_next_update_check_timer -
                                   small_delay);
   EXPECT_TRUE(CheckStats(expected_update_checks, expected_update_check_requests,
@@ -729,7 +729,7 @@
        CheckUpdateCheckFailureEventualSuccess) {
   // Set the first update check to happen 49 hours from now (i.e. 1 hour from 2
   // days from now) and then weekly after.
-  base::TimeDelta delay_from_now = base::TimeDelta::FromHours(49);
+  base::TimeDelta delay_from_now = base::Hours(49);
   auto policy_and_next_update_check_time =
       scheduled_task_test_util::CreatePolicy(
           scheduled_task_executor_->GetTimeZone(),
@@ -783,7 +783,7 @@
 TEST_F(DeviceScheduledUpdateCheckerTest, CheckNewPolicyWithPendingUpdateCheck) {
   // Calculate time from one hour from now and set the update check policy to
   // happen daily at that time.
-  base::TimeDelta delay_from_now = base::TimeDelta::FromHours(1);
+  base::TimeDelta delay_from_now = base::Hours(1);
   auto policy_and_next_update_check_time =
       scheduled_task_test_util::CreatePolicy(
           scheduled_task_executor_->GetTimeZone(),
@@ -805,7 +805,7 @@
   // Set a new scheduled update setting, this won't start a update check timer
   // but will wait for the existing update check to complete and start the timer
   // based on the new policy.
-  delay_from_now = base::TimeDelta::FromMinutes(30);
+  delay_from_now = base::Minutes(30);
   policy_and_next_update_check_time = scheduled_task_test_util::CreatePolicy(
       scheduled_task_executor_->GetTimeZone(),
       scheduled_task_executor_->GetCurrentTime(), delay_from_now,
@@ -853,7 +853,7 @@
   network_state_test_helper_->ClearServices();
 
   // Create and set daily policy starting from one hour from now.
-  base::TimeDelta delay_from_now = base::TimeDelta::FromHours(1);
+  base::TimeDelta delay_from_now = base::Hours(1);
   auto policy_and_next_update_check_time =
       scheduled_task_test_util::CreatePolicy(
           scheduled_task_executor_->GetTimeZone(),
@@ -865,7 +865,7 @@
 
   // Fast forward to right before the expected update and then check if an
   // update check is not scheduled.
-  const base::TimeDelta small_delay = base::TimeDelta::FromMilliseconds(1);
+  const base::TimeDelta small_delay = base::Milliseconds(1);
   int expected_update_checks = 0;
   int expected_update_check_requests = 0;
   int expected_update_check_completions = 0;
@@ -888,8 +888,7 @@
   expected_update_check_requests += 1;
   expected_update_check_completions += 1;
   task_environment_.FastForwardBy(
-      base::TimeDelta::FromDays(1) -
-      update_checker_internal::kWaitForNetworkTimeout);
+      base::Days(1) - update_checker_internal::kWaitForNetworkTimeout);
   // Simulate update check succeeding.
   NotifyUpdateCheckStatus(update_engine::Operation::UPDATED_NEED_REBOOT);
   EXPECT_TRUE(CheckStats(expected_update_checks, expected_update_check_requests,
@@ -903,7 +902,7 @@
   network_state_test_helper_->ClearServices();
 
   // Create and set daily policy starting from one hour from now.
-  base::TimeDelta delay_from_now = base::TimeDelta::FromHours(1);
+  base::TimeDelta delay_from_now = base::Hours(1);
   auto policy_and_next_update_check_time =
       scheduled_task_test_util::CreatePolicy(
           scheduled_task_executor_->GetTimeZone(),
@@ -915,7 +914,7 @@
 
   // Fast forward to right before the expected update and then check if an
   // update check is not scheduled.
-  const base::TimeDelta small_delay = base::TimeDelta::FromMilliseconds(1);
+  const base::TimeDelta small_delay = base::Milliseconds(1);
   int expected_update_checks = 0;
   int expected_update_check_requests = 0;
   int expected_update_check_completions = 0;
@@ -946,7 +945,7 @@
 // Checks if only one wake lock is acquired when the update check timer fires
 // and released when an update check and policy refresh is completed.
 TEST_F(DeviceScheduledUpdateCheckerTest, CheckWakeLockAcquireAndRelease) {
-  base::TimeDelta delay_from_now = base::TimeDelta::FromHours(1);
+  base::TimeDelta delay_from_now = base::Hours(1);
   auto policy_and_next_update_check_time =
       scheduled_task_test_util::CreatePolicy(
           scheduled_task_executor_->GetTimeZone(),
@@ -987,7 +986,7 @@
 
 // Checks if an update check is aborted after the stipulated hard timeout.
 TEST_F(DeviceScheduledUpdateCheckerTest, CheckUpdateCheckHardTimeout) {
-  base::TimeDelta delay_from_now = base::TimeDelta::FromHours(1);
+  base::TimeDelta delay_from_now = base::Hours(1);
   auto policy_and_next_update_check_time =
       scheduled_task_test_util::CreatePolicy(
           scheduled_task_executor_->GetTimeZone(),
@@ -1014,7 +1013,7 @@
   expected_update_checks = 2;
   expected_update_check_requests = 2;
   task_environment_.FastForwardBy(
-      base::TimeDelta::FromDays(1) -
+      base::Days(1) -
       update_checker_internal::kOsAndPoliciesUpdateCheckHardTimeout);
   EXPECT_TRUE(CheckStats(expected_update_checks, expected_update_check_requests,
                          expected_update_check_completions));
diff --git a/chrome/browser/ash/policy/scheduled_task_handler/test/scheduled_task_test_util.cc b/chrome/browser/ash/policy/scheduled_task_handler/test/scheduled_task_test_util.cc
index a59623d..498a3e0 100644
--- a/chrome/browser/ash/policy/scheduled_task_handler/test/scheduled_task_test_util.cc
+++ b/chrome/browser/ash/policy/scheduled_task_handler/test/scheduled_task_test_util.cc
@@ -134,7 +134,7 @@
   // If the scheduled task time in the new time zone has already passed then it
   // will happen on the next day.
   if (result <= scheduled_task_internal::kInvalidDelay)
-    result += base::TimeDelta::FromDays(1);
+    result += base::Days(1);
   return result;
 }
 
diff --git a/chrome/browser/ash/policy/server_backed_state/server_backed_state_keys_broker.cc b/chrome/browser/ash/policy/server_backed_state/server_backed_state_keys_broker.cc
index dddb59b..3621df2 100644
--- a/chrome/browser/ash/policy/server_backed_state/server_backed_state_keys_broker.cc
+++ b/chrome/browser/ash/policy/server_backed_state/server_backed_state_keys_broker.cc
@@ -20,11 +20,11 @@
 // state key generation, so they rotate over time. The quantum size is pretty
 // coarse though (currently 2^23 seconds), so simply polling for a new state
 // keys once a day is good enough.
-constexpr base::TimeDelta kPollInterval = base::TimeDelta::FromDays(1);
+constexpr base::TimeDelta kPollInterval = base::Days(1);
 
 // In case state key fetching failed, we need to try again, sooner than
 // |kPollInterval|.
-constexpr base::TimeDelta kRetryInterval = base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kRetryInterval = base::Minutes(1);
 
 }  // namespace
 
diff --git a/chrome/browser/ash/policy/status_collector/activity_storage.cc b/chrome/browser/ash/policy/status_collector/activity_storage.cc
index 637b677..260a8a9 100644
--- a/chrome/browser/ash/policy/status_collector/activity_storage.cc
+++ b/chrome/browser/ash/policy/status_collector/activity_storage.cc
@@ -94,12 +94,11 @@
          const int64_t start, const int64_t end,
          const std::string& activity_id) {
         if (day_capacities->count(start) == 0)
-          day_capacities->emplace(start, base::TimeDelta::FromDays(1));
+          day_capacities->emplace(start, base::Days(1));
         if (day_capacities->at(start).is_zero())
           return;
-        base::TimeDelta duration =
-            std::min(base::TimeDelta::FromMilliseconds(end - start),
-                     day_capacities->at(start));
+        base::TimeDelta duration = std::min(base::Milliseconds(end - start),
+                                            day_capacities->at(start));
         day_capacities->at(start) -= duration;
 
         enterprise_management::TimePeriod period;
@@ -168,7 +167,7 @@
   // Assign the period to day buckets in local time.
   base::Time midnight = GetBeginningOfDay(start);
   while (midnight < end) {
-    midnight += base::TimeDelta::FromDays(1);
+    midnight += base::Days(1);
     int64_t activity = (std::min(end, midnight) - start).InMilliseconds();
 
     const int64_t day_key = LocalTimeToUtcDayStart(start);
@@ -215,7 +214,7 @@
   // TODO(crbug.com/827386): directly test this time change. Currently it is
   // tested through ScreenTimeControllerBrowsertest.
   if (timestamp < day_start)
-    day_start -= base::TimeDelta::FromDays(1);
+    day_start -= base::Days(1);
   day_start.LocalExplode(&exploded);
   base::Time out_time;
   bool conversion_success = base::Time::FromUTCExploded(exploded, &out_time);
diff --git a/chrome/browser/ash/policy/status_collector/activity_storage.h b/chrome/browser/ash/policy/status_collector/activity_storage.h
index 698034aa..99edec17 100644
--- a/chrome/browser/ash/policy/status_collector/activity_storage.h
+++ b/chrome/browser/ash/policy/status_collector/activity_storage.h
@@ -47,7 +47,7 @@
   // removed.
   void PruneActivityPeriods(
       base::Time base_time,
-      base::TimeDelta max_past_activity_interval = base::TimeDelta::FromDays(0),
+      base::TimeDelta max_past_activity_interval = base::Days(0),
       base::TimeDelta max_future_activity_interval = base::TimeDelta::Max());
 
   // Trims the stored activity periods to only retain data within the
diff --git a/chrome/browser/ash/policy/status_collector/activity_storage_unittest.cc b/chrome/browser/ash/policy/status_collector/activity_storage_unittest.cc
index 70083bb..17f2a45 100644
--- a/chrome/browser/ash/policy/status_collector/activity_storage_unittest.cc
+++ b/chrome/browser/ash/policy/status_collector/activity_storage_unittest.cc
@@ -30,7 +30,7 @@
   void SetUp() override {
     local_state_.registry()->RegisterDictionaryPref(kPrefName);
     storage_ = std::make_unique<ActivityStorage>(&local_state_, kPrefName,
-                                                 base::TimeDelta::FromDays(0));
+                                                 base::Days(0));
   }
 
   static testing::Matcher<em::TimePeriod> EqActivity(
@@ -82,8 +82,7 @@
                                MakeLocalTime("29-MAR-2020 8:30pm"), "id1");
 
   storage()->PruneActivityPeriods(MakeLocalTime("27-MAR-2020 3:30pm"),
-                                  base::TimeDelta::FromDays(1),
-                                  base::TimeDelta::FromDays(2));
+                                  base::Days(1), base::Days(2));
 
   auto activity_periods = storage()->GetActivityPeriods();
   EXPECT_THAT(
diff --git a/chrome/browser/ash/policy/status_collector/app_info_generator.cc b/chrome/browser/ash/policy/status_collector/app_info_generator.cc
index 48c9bf6b..a5bee24 100644
--- a/chrome/browser/ash/policy/status_collector/app_info_generator.cc
+++ b/chrome/browser/ash/policy/status_collector/app_info_generator.cc
@@ -82,7 +82,7 @@
 AppInfoGenerator::AppInfoProvider::AppInfoProvider(Profile* profile)
     : activity_storage(profile->GetPrefs(),
                        prefs::kAppActivityTimes,
-                       /*day_start_offset=*/base::TimeDelta::FromSeconds(0)),
+                       /*day_start_offset=*/base::Seconds(0)),
       app_service_proxy(*apps::AppServiceProxyFactory::GetForProfile(profile)) {
 }
 
diff --git a/chrome/browser/ash/policy/status_collector/app_info_generator_unittest.cc b/chrome/browser/ash/policy/status_collector/app_info_generator_unittest.cc
index da688fa..99dd806 100644
--- a/chrome/browser/ash/policy/status_collector/app_info_generator_unittest.cc
+++ b/chrome/browser/ash/policy/status_collector/app_info_generator_unittest.cc
@@ -232,8 +232,7 @@
   }
 
   std::unique_ptr<AppInfoGenerator> GetGenerator(
-      base::TimeDelta max_stored_past_activity_interval =
-          base::TimeDelta::FromDays(0)) {
+      base::TimeDelta max_stored_past_activity_interval = base::Days(0)) {
     return std::make_unique<AppInfoGenerator>(
         nullptr, max_stored_past_activity_interval, &test_clock());
   }
@@ -654,7 +653,7 @@
           apps::mojom::AppType::kArc);
   PushApp("b", "SecondApp", apps::mojom::Readiness::kReady, "1.2",
           apps::mojom::AppType::kExtension);
-  auto max_days_past = base::TimeDelta::FromDays(
+  auto max_days_past = base::Days(
       1);  // Exclude all past usage except for UTC today and yesterday.
   auto generator = GetGenerator(max_days_past);
   generator->OnReportingChanged(true);
diff --git a/chrome/browser/ash/policy/status_collector/child_activity_storage.cc b/chrome/browser/ash/policy/status_collector/child_activity_storage.cc
index 62a7833..3954a20 100644
--- a/chrome/browser/ash/policy/status_collector/child_activity_storage.cc
+++ b/chrome/browser/ash/policy/status_collector/child_activity_storage.cc
@@ -35,9 +35,9 @@
   // Assign the period to day buckets in local time.
   base::Time day_start = GetBeginningOfDay(start);
   if (start < day_start)
-    day_start -= base::TimeDelta::FromDays(1);
+    day_start -= base::Days(1);
   while (day_start < end) {
-    day_start += base::TimeDelta::FromDays(1);
+    day_start += base::Days(1);
     int64_t activity = (std::min(end, day_start) - start).InMilliseconds();
     const std::string key = MakeActivityPeriodPrefKey(
         LocalTimeToUtcDayStart(start), /*activity_id=*/"");
@@ -45,8 +45,8 @@
     activity_times->GetInteger(key, &previous_activity);
     activity_times->SetInteger(key, previous_activity + activity);
 
-    StoreChildScreenTime(day_start - base::TimeDelta::FromDays(1),
-                         base::TimeDelta::FromMilliseconds(activity), now);
+    StoreChildScreenTime(day_start - base::Days(1),
+                         base::Milliseconds(activity), now);
 
     start = day_start;
   }
@@ -64,14 +64,14 @@
   // Today's start time.
   base::Time today_start = GetBeginningOfDay(now);
   if (today_start > now)
-    today_start -= base::TimeDelta::FromDays(1);
+    today_start -= base::Days(1);
 
   // The activity windows always start and end on the reset time of two
   // consecutive days, so it is not possible to have a window starting after
   // the current day's reset time.
   DCHECK(activity_day_start <= today_start);
 
-  base::TimeDelta previous_activity = base::TimeDelta::FromMilliseconds(
+  base::TimeDelta previous_activity = base::Milliseconds(
       pref_service_->GetInteger(prefs::kChildScreenTimeMilliseconds));
 
   // If this activity window belongs to the current day, the screen time pref
diff --git a/chrome/browser/ash/policy/status_collector/child_status_collector.cc b/chrome/browser/ash/policy/status_collector/child_status_collector.cc
index 7bcbd1e5..bce2548 100644
--- a/chrome/browser/ash/policy/status_collector/child_status_collector.cc
+++ b/chrome/browser/ash/policy/status_collector/child_status_collector.cc
@@ -66,8 +66,7 @@
 constexpr TimeDelta kMaxStoredFutureActivityInterval = TimeDelta::FromDays(2);
 
 // How often the child's usage time is stored.
-constexpr base::TimeDelta kUpdateChildActiveTimeInterval =
-    base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kUpdateChildActiveTimeInterval = base::Seconds(30);
 
 const char kReportSizeHistogramName[] =
     "ChromeOS.FamilyLink.ChildStatusReportRequest.Size";
@@ -252,7 +251,7 @@
     // negative (which can happen when the clock changes), assume a single
     // interval of activity. This is the same strategy used to enterprise users.
     base::TimeDelta active_seconds = now - last_active_check_;
-    if (active_seconds < base::TimeDelta::FromSeconds(0) ||
+    if (active_seconds < base::Seconds(0) ||
         active_seconds >= (2 * kUpdateChildActiveTimeInterval)) {
       activity_storage_->AddActivityPeriod(now - kUpdateChildActiveTimeInterval,
                                            now, now);
@@ -314,8 +313,7 @@
     if (last_successful_report_time_int > 0) {
       base::Time last_successful_report_time =
           base::Time::FromDeltaSinceWindowsEpoch(
-              base::TimeDelta::FromMicroseconds(
-                  last_successful_report_time_int));
+              base::Microseconds(last_successful_report_time_int));
       DCHECK_LT(last_successful_report_time,
                 last_report_params_->generation_time);
       base::TimeDelta elapsed_time =
diff --git a/chrome/browser/ash/policy/status_collector/device_status_collector.cc b/chrome/browser/ash/policy/status_collector/device_status_collector.cc
index 33d72f0d..d23cda3 100644
--- a/chrome/browser/ash/policy/status_collector/device_status_collector.cc
+++ b/chrome/browser/ash/policy/status_collector/device_status_collector.cc
@@ -1807,7 +1807,7 @@
     // interval of activity.
     TimeDelta active_seconds = now - last_idle_check_;
     Time start;
-    if (active_seconds < base::TimeDelta::FromSeconds(0) ||
+    if (active_seconds < base::Seconds(0) ||
         active_seconds >= 2 * kIdlePollInterval || last_idle_check_.is_null()) {
       start = now - kIdlePollInterval;
     } else {
diff --git a/chrome/browser/ash/policy/status_collector/device_status_collector.h b/chrome/browser/ash/policy/status_collector/device_status_collector.h
index 84b60f6..45b0ad7 100644
--- a/chrome/browser/ash/policy/status_collector/device_status_collector.h
+++ b/chrome/browser/ash/policy/status_collector/device_status_collector.h
@@ -189,8 +189,7 @@
   }
 
   // How often to poll to see if the user is idle.
-  static constexpr base::TimeDelta kIdlePollInterval =
-      base::TimeDelta::FromSeconds(30);
+  static constexpr base::TimeDelta kIdlePollInterval = base::Seconds(30);
 
   // The total number of hardware resource usage samples cached internally.
   static const unsigned int kMaxResourceUsageSamples = 10;
diff --git a/chrome/browser/ash/policy/status_collector/device_status_collector_browsertest.cc b/chrome/browser/ash/policy/status_collector/device_status_collector_browsertest.cc
index f8565070..ee97cb2 100644
--- a/chrome/browser/ash/policy/status_collector/device_status_collector_browsertest.cc
+++ b/chrome/browser/ash/policy/status_collector/device_status_collector_browsertest.cc
@@ -1000,8 +1000,8 @@
         base::BindRepeating(&GetEmptyGraphicsStatus);
     options->crash_report_info_fetcher =
         base::BindRepeating(&GetEmptyCrashReportInfo);
-    options->app_info_generator = std::make_unique<policy::AppInfoGenerator>(
-        nullptr, base::TimeDelta::FromDays(0));
+    options->app_info_generator =
+        std::make_unique<policy::AppInfoGenerator>(nullptr, base::Days(0));
     return options;
   }
 
@@ -3050,7 +3050,7 @@
   const int report_cnt = 5;
 
   for (int i = 0; i < report_cnt; ++i) {
-    base::Time timestamp = now - base::TimeDelta::FromHours(30) * i;
+    base::Time timestamp = now - base::Hours(30) * i;
 
     em::CrashReportInfo info;
     info.set_capture_timestamp(timestamp.ToJavaTime());
@@ -3105,7 +3105,7 @@
   const int report_cnt = 5;
 
   for (int i = 0; i < report_cnt; ++i) {
-    base::Time timestamp = now - base::TimeDelta::FromHours(30) * i;
+    base::Time timestamp = now - base::Hours(30) * i;
 
     em::CrashReportInfo info;
     info.set_capture_timestamp(timestamp.ToJavaTime());
@@ -3139,7 +3139,7 @@
   const int report_cnt = 5;
 
   for (int i = 0; i < report_cnt; ++i) {
-    base::Time timestamp = now - base::TimeDelta::FromHours(30) * i;
+    base::Time timestamp = now - base::Hours(30) * i;
 
     em::CrashReportInfo info;
     info.set_capture_timestamp(timestamp.ToJavaTime());
@@ -3170,7 +3170,7 @@
   // lead to device restart, the third doesn't.
   std::vector<std::string> causes = {kTestCauseKernel, kTestCauseEC,
                                      kTestCauseOther};
-  base::Time timestamp = base::Time::Now() - base::TimeDelta::FromHours(1);
+  base::Time timestamp = base::Time::Now() - base::Hours(1);
   std::stringstream stream;
   for (int i = 0; i <= 2; ++i) {
     stream << "{";
@@ -3217,8 +3217,7 @@
   // Create a test uploads.log file. One |upload_time| is within last 24 hours,
   // the other is not.
   base::Time now = base::Time::Now();
-  base::Time timestamps[] = {now - base::TimeDelta::FromHours(22),
-                             now - base::TimeDelta::FromHours(24)};
+  base::Time timestamps[] = {now - base::Hours(22), now - base::Hours(24)};
 
   std::stringstream stream;
   for (int i = 0; i <= 1; ++i) {
@@ -3259,7 +3258,7 @@
 TEST_F(DeviceStatusCollectorTest, TestCrashReportInfo_CrashReportEntryMaxSize) {
   // Create a test uploads.log file with 200 entries. Only the last 100 is
   // included.
-  base::Time timestamp = base::Time::Now() - base::TimeDelta::FromHours(1);
+  base::Time timestamp = base::Time::Now() - base::Hours(1);
   const int report_cnt = 200;
   std::stringstream stream;
   for (int i = 1; i <= report_cnt; ++i) {
@@ -3303,7 +3302,7 @@
 TEST_F(DeviceStatusCollectorTest, TestCrashReportInfo_LegacyCSV) {
   // Create a test uploads.log file in the legacy CSV format. All such kind of
   // record will be ignored because the required source filed is not existing.
-  base::Time timestamp = base::Time::Now() - base::TimeDelta::FromHours(1);
+  base::Time timestamp = base::Time::Now() - base::Hours(1);
   std::string test_entry =
       base::StringPrintf("%" PRId64, static_cast<int64_t>(timestamp.ToTimeT()));
   test_entry += ",";
diff --git a/chrome/browser/ash/policy/status_collector/enterprise_activity_storage.cc b/chrome/browser/ash/policy/status_collector/enterprise_activity_storage.cc
index 629e429..6dd47aba 100644
--- a/chrome/browser/ash/policy/status_collector/enterprise_activity_storage.cc
+++ b/chrome/browser/ash/policy/status_collector/enterprise_activity_storage.cc
@@ -22,7 +22,7 @@
     const std::string& pref_name)
     : ActivityStorage(pref_service,
                       pref_name,
-                      /*day_start_offset=*/base::TimeDelta::FromSeconds(0)) {}
+                      /*day_start_offset=*/base::Seconds(0)) {}
 
 EnterpriseActivityStorage::~EnterpriseActivityStorage() = default;
 
diff --git a/chrome/browser/ash/policy/status_collector/legacy_device_status_collector.cc b/chrome/browser/ash/policy/status_collector/legacy_device_status_collector.cc
index 046c9bb..a203bb9 100644
--- a/chrome/browser/ash/policy/status_collector/legacy_device_status_collector.cc
+++ b/chrome/browser/ash/policy/status_collector/legacy_device_status_collector.cc
@@ -1789,7 +1789,7 @@
     // interval of activity.
     TimeDelta active_seconds = now - last_idle_check_;
     Time start;
-    if (active_seconds < base::TimeDelta::FromSeconds(0) ||
+    if (active_seconds < base::Seconds(0) ||
         active_seconds >= 2 * kIdlePollInterval || last_idle_check_.is_null()) {
       start = now - kIdlePollInterval;
     } else {
diff --git a/chrome/browser/ash/policy/status_collector/legacy_device_status_collector.h b/chrome/browser/ash/policy/status_collector/legacy_device_status_collector.h
index 2776c9b..da156ff9 100644
--- a/chrome/browser/ash/policy/status_collector/legacy_device_status_collector.h
+++ b/chrome/browser/ash/policy/status_collector/legacy_device_status_collector.h
@@ -174,8 +174,7 @@
   }
 
   // How often to poll to see if the user is idle.
-  static constexpr base::TimeDelta kIdlePollInterval =
-      base::TimeDelta::FromSeconds(30);
+  static constexpr base::TimeDelta kIdlePollInterval = base::Seconds(30);
 
   // The total number of hardware resource usage samples cached internally.
   static const unsigned int kMaxResourceUsageSamples = 10;
diff --git a/chrome/browser/ash/policy/status_collector/legacy_device_status_collector_browsertest.cc b/chrome/browser/ash/policy/status_collector/legacy_device_status_collector_browsertest.cc
index 1810de2..770ada2 100644
--- a/chrome/browser/ash/policy/status_collector/legacy_device_status_collector_browsertest.cc
+++ b/chrome/browser/ash/policy/status_collector/legacy_device_status_collector_browsertest.cc
@@ -1001,8 +1001,8 @@
         base::BindRepeating(&GetEmptyGraphicsStatus);
     options->crash_report_info_fetcher =
         base::BindRepeating(&GetEmptyCrashReportInfo);
-    options->app_info_generator = std::make_unique<policy::AppInfoGenerator>(
-        nullptr, base::TimeDelta::FromDays(0));
+    options->app_info_generator =
+        std::make_unique<policy::AppInfoGenerator>(nullptr, base::Days(0));
     return options;
   }
 
@@ -3063,7 +3063,7 @@
   const int report_cnt = 5;
 
   for (int i = 0; i < report_cnt; ++i) {
-    base::Time timestamp = now - base::TimeDelta::FromHours(30) * i;
+    base::Time timestamp = now - base::Hours(30) * i;
 
     em::CrashReportInfo info;
     info.set_capture_timestamp(timestamp.ToJavaTime());
@@ -3118,7 +3118,7 @@
   const int report_cnt = 5;
 
   for (int i = 0; i < report_cnt; ++i) {
-    base::Time timestamp = now - base::TimeDelta::FromHours(30) * i;
+    base::Time timestamp = now - base::Hours(30) * i;
 
     em::CrashReportInfo info;
     info.set_capture_timestamp(timestamp.ToJavaTime());
@@ -3152,7 +3152,7 @@
   const int report_cnt = 5;
 
   for (int i = 0; i < report_cnt; ++i) {
-    base::Time timestamp = now - base::TimeDelta::FromHours(30) * i;
+    base::Time timestamp = now - base::Hours(30) * i;
 
     em::CrashReportInfo info;
     info.set_capture_timestamp(timestamp.ToJavaTime());
@@ -3183,7 +3183,7 @@
   // lead to device restart, the third doesn't.
   std::vector<std::string> causes = {kTestCauseKernel, kTestCauseEC,
                                      kTestCauseOther};
-  base::Time timestamp = base::Time::Now() - base::TimeDelta::FromHours(1);
+  base::Time timestamp = base::Time::Now() - base::Hours(1);
   std::stringstream stream;
   for (int i = 0; i <= 2; ++i) {
     stream << "{";
@@ -3231,8 +3231,7 @@
   // Create a test uploads.log file. One |upload_time| is within last 24 hours,
   // the other is not.
   base::Time now = base::Time::Now();
-  base::Time timestamps[] = {now - base::TimeDelta::FromHours(22),
-                             now - base::TimeDelta::FromHours(24)};
+  base::Time timestamps[] = {now - base::Hours(22), now - base::Hours(24)};
 
   std::stringstream stream;
   for (int i = 0; i <= 1; ++i) {
@@ -3274,7 +3273,7 @@
        TestCrashReportInfo_CrashReportEntryMaxSize) {
   // Create a test uploads.log file with 200 entries. Only the last 100 is
   // included.
-  base::Time timestamp = base::Time::Now() - base::TimeDelta::FromHours(1);
+  base::Time timestamp = base::Time::Now() - base::Hours(1);
   const int report_cnt = 200;
   std::stringstream stream;
   for (int i = 1; i <= report_cnt; ++i) {
@@ -3318,7 +3317,7 @@
 TEST_F(LegacyDeviceStatusCollectorTest, TestCrashReportInfo_LegacyCSV) {
   // Create a test uploads.log file in the legacy CSV format. All such kind of
   // record will be ignored because the required source filed is not existing.
-  base::Time timestamp = base::Time::Now() - base::TimeDelta::FromHours(1);
+  base::Time timestamp = base::Time::Now() - base::Hours(1);
   std::string test_entry =
       base::StringPrintf("%" PRId64, static_cast<int64_t>(timestamp.ToTimeT()));
   test_entry += ",";
diff --git a/chrome/browser/ash/policy/status_collector/managed_session_service.cc b/chrome/browser/ash/policy/status_collector/managed_session_service.cc
index c609236..a8f2439 100644
--- a/chrome/browser/ash/policy/status_collector/managed_session_service.cc
+++ b/chrome/browser/ash/policy/status_collector/managed_session_service.cc
@@ -13,8 +13,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kMinimumSuspendDuration =
-    base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kMinimumSuspendDuration = base::Minutes(1);
 
 }  // namespace
 
diff --git a/chrome/browser/ash/policy/status_collector/managed_session_service_unittest.cc b/chrome/browser/ash/policy/status_collector/managed_session_service_unittest.cc
index 8a81fa7d..b699b23 100644
--- a/chrome/browser/ash/policy/status_collector/managed_session_service_unittest.cc
+++ b/chrome/browser/ash/policy/status_collector/managed_session_service_unittest.cc
@@ -213,7 +213,7 @@
 TEST_F(ManagedSessionServiceTest, SuspendDone) {
   managed_session_service()->AddObserver(this);
   test_clock()->SetNow(base::Time::Now());
-  base::TimeDelta sleep_duration = base::TimeDelta::FromHours(2);
+  base::TimeDelta sleep_duration = base::Hours(2);
 
   power_manager_client()->SendSuspendDone(sleep_duration);
 
diff --git a/chrome/browser/ash/policy/uploading/heartbeat_scheduler.cc b/chrome/browser/ash/policy/uploading/heartbeat_scheduler.cc
index 4c3a248..0cb11d7 100644
--- a/chrome/browser/ash/policy/uploading/heartbeat_scheduler.cc
+++ b/chrome/browser/ash/policy/uploading/heartbeat_scheduler.cc
@@ -21,9 +21,8 @@
 
 namespace {
 
-constexpr base::TimeDelta kMinHeartbeatInterval =
-    base::TimeDelta::FromSeconds(30);
-constexpr base::TimeDelta kMaxHeartbeatInterval = base::TimeDelta::FromDays(1);
+constexpr base::TimeDelta kMinHeartbeatInterval = base::Seconds(30);
+constexpr base::TimeDelta kMaxHeartbeatInterval = base::Days(1);
 
 // Our sender ID we send up with all of our GCM messages.
 const char kHeartbeatGCMAppID[] = "com.google.chromeos.monitoring";
@@ -49,8 +48,7 @@
 const char kUpstreamNotificationRegIdKey[] = "registration_id";
 
 // If we get an error registering with GCM, try again in two minutes.
-constexpr base::TimeDelta kRegistrationRetryDelay =
-    base::TimeDelta::FromMinutes(2);
+constexpr base::TimeDelta kRegistrationRetryDelay = base::Minutes(2);
 
 const char kHeartbeatSchedulerScope[] =
     "policy.heartbeat_scheduler.upstream_notification";
@@ -72,7 +70,7 @@
 
 // static
 const base::TimeDelta HeartbeatScheduler::kDefaultHeartbeatInterval =
-    base::TimeDelta::FromMinutes(2);
+    base::Minutes(2);
 
 // Helper class used to manage GCM registration (handles retrying after
 // errors, etc).
@@ -229,8 +227,8 @@
   // want to use the last trusted value).
   int frequency;
   if (settings->GetInteger(chromeos::kHeartbeatFrequency, &frequency)) {
-    heartbeat_interval_ = EnsureValidHeartbeatInterval(
-        base::TimeDelta::FromMilliseconds(frequency));
+    heartbeat_interval_ =
+        EnsureValidHeartbeatInterval(base::Milliseconds(frequency));
   }
 
   gcm_driver_->AddHeartbeatInterval(kHeartbeatSchedulerScope,
diff --git a/chrome/browser/ash/policy/uploading/heartbeat_scheduler_unittest.cc b/chrome/browser/ash/policy/uploading/heartbeat_scheduler_unittest.cc
index 96051df..21b97f1 100644
--- a/chrome/browser/ash/policy/uploading/heartbeat_scheduler_unittest.cc
+++ b/chrome/browser/ash/policy/uploading/heartbeat_scheduler_unittest.cc
@@ -317,7 +317,7 @@
                            gcm::GCMClient::SERVER_ERROR);
   EXPECT_EQ(1U, task_runner_->NumPendingTasks());
   CheckPendingTaskDelay(scheduler_.last_heartbeat(),
-                        base::TimeDelta::FromMilliseconds(new_delay));
+                        base::Milliseconds(new_delay));
 }
 
 TEST_F(HeartbeatSchedulerTest, DisableHeartbeats) {
@@ -370,7 +370,7 @@
   // Heartbeats should have a time-to-live equivalent to the heartbeat frequency
   // so we don't have more than one heartbeat queued at a time.
   EXPECT_EQ(HeartbeatScheduler::kDefaultHeartbeatInterval,
-            base::TimeDelta::FromSeconds(message.time_to_live));
+            base::Seconds(message.time_to_live));
 
   // Check the values in the message payload.
   EXPECT_EQ("hb", message.data["type"]);
diff --git a/chrome/browser/ash/policy/uploading/status_uploader.cc b/chrome/browser/ash/policy/uploading/status_uploader.cc
index b2ff49e0..e8ceba06 100644
--- a/chrome/browser/ash/policy/uploading/status_uploader.cc
+++ b/chrome/browser/ash/policy/uploading/status_uploader.cc
@@ -37,8 +37,7 @@
 // Minimum delay after scheduling an upload
 const int kMinUploadScheduleDelayMs = 60 * 1000;  // 60 seconds
 // Minimum interval between the last upload and the next immediate upload
-constexpr base::TimeDelta kMinImmediateUploadInterval =
-    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kMinImmediateUploadInterval = base::Seconds(10);
 }  // namespace
 
 namespace policy {
@@ -97,7 +96,7 @@
   // happened, this yields a TimeDelta of kMinUploadScheduleDelayMs).
   base::TimeDelta delay =
       std::max((last_upload_ + upload_frequency_) - now,
-               base::TimeDelta::FromMilliseconds(kMinUploadScheduleDelayMs));
+               base::Milliseconds(kMinUploadScheduleDelayMs));
 
   // The next upload should be scheduled for at least
   // kMinImmediateUploadInterval after the last upload if it is immediately.
@@ -161,9 +160,9 @@
   if (settings->GetInteger(chromeos::kReportUploadFrequency, &frequency)) {
     SYSLOG(INFO) << "Changing status upload frequency from "
                  << upload_frequency_ << " to "
-                 << base::TimeDelta::FromMilliseconds(frequency);
-    upload_frequency_ = base::TimeDelta::FromMilliseconds(
-        std::max(kMinUploadDelayMs, frequency));
+                 << base::Milliseconds(frequency);
+    upload_frequency_ =
+        base::Milliseconds(std::max(kMinUploadDelayMs, frequency));
   }
   // Schedule a new upload with the new frequency - only do this if we've
   // already performed the initial upload, because we want the initial upload
diff --git a/chrome/browser/ash/policy/uploading/status_uploader_unittest.cc b/chrome/browser/ash/policy/uploading/status_uploader_unittest.cc
index 98d0e84..920c7ad 100644
--- a/chrome/browser/ash/policy/uploading/status_uploader_unittest.cc
+++ b/chrome/browser/ash/policy/uploading/status_uploader_unittest.cc
@@ -45,10 +45,8 @@
 
 namespace {
 
-constexpr base::TimeDelta kDefaultStatusUploadDelay =
-    base::TimeDelta::FromHours(1);
-constexpr base::TimeDelta kMinImmediateUploadInterval =
-    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kDefaultStatusUploadDelay = base::Hours(1);
+constexpr base::TimeDelta kMinImmediateUploadInterval = base::Seconds(10);
 
 // Using a DeviceStatusCollector to have a concrete StatusCollector, but the
 // exact type doesn't really matter, as it is being mocked.
@@ -187,8 +185,7 @@
   auto uploader = CreateStatusUploader();
   EXPECT_EQ(1U, task_runner_->NumPendingTasks());
   // On startup, first update should happen in 1 minute.
-  EXPECT_EQ(base::TimeDelta::FromMinutes(1),
-            task_runner_->NextPendingTaskDelay());
+  EXPECT_EQ(base::Minutes(1), task_runner_->NextPendingTaskDelay());
 }
 
 TEST_F(StatusUploaderTest, DifferentFrequencyAtStart) {
@@ -200,8 +197,7 @@
   auto uploader = CreateStatusUploader();
   ASSERT_EQ(1U, task_runner_->NumPendingTasks());
   // On startup, first update should happen in 1 minute.
-  EXPECT_EQ(base::TimeDelta::FromMinutes(1),
-            task_runner_->NextPendingTaskDelay());
+  EXPECT_EQ(base::Minutes(1), task_runner_->NextPendingTaskDelay());
 
   // Second update should use the delay specified in settings.
   RunPendingUploadTaskAndCheckNext(*uploader, new_delay,
@@ -329,8 +325,7 @@
   EXPECT_EQ(1U, task_runner_->NumPendingTasks());
 
   // On startup, first update should happen in 1 minute.
-  EXPECT_EQ(base::TimeDelta::FromMinutes(1),
-            task_runner_->NextPendingTaskDelay());
+  EXPECT_EQ(base::Minutes(1), task_runner_->NextPendingTaskDelay());
 
   // Schedule an immediate status upload.
   uploader->ScheduleNextStatusUploadImmediately();
@@ -345,8 +340,7 @@
   EXPECT_EQ(1U, task_runner_->NumPendingTasks());
 
   // On startup, first update should happen in 1 minute.
-  EXPECT_EQ(base::TimeDelta::FromMinutes(1),
-            task_runner_->NextPendingTaskDelay());
+  EXPECT_EQ(base::Minutes(1), task_runner_->NextPendingTaskDelay());
 
   // Schedule an immediate status upload and run it.
   uploader->ScheduleNextStatusUploadImmediately();
diff --git a/chrome/browser/ash/policy/uploading/system_log_uploader.cc b/chrome/browser/ash/policy/uploading/system_log_uploader.cc
index e9d0ad6..31f4596 100644
--- a/chrome/browser/ash/policy/uploading/system_log_uploader.cc
+++ b/chrome/browser/ash/policy/uploading/system_log_uploader.cc
@@ -254,8 +254,8 @@
 
 // Returns the system log upload frequency.
 base::TimeDelta GetUploadFrequency() {
-  base::TimeDelta upload_frequency(base::TimeDelta::FromMilliseconds(
-      SystemLogUploader::kDefaultUploadDelayMs));
+  base::TimeDelta upload_frequency(
+      base::Milliseconds(SystemLogUploader::kDefaultUploadDelayMs));
   if (base::CommandLine::ForCurrentProcess()->HasSwitch(
           switches::kSystemLogUploadFrequency)) {
     std::string string_value =
@@ -263,7 +263,7 @@
             switches::kSystemLogUploadFrequency);
     int frequency;
     if (base::StringToInt(string_value, &frequency)) {
-      upload_frequency = base::TimeDelta::FromMilliseconds(frequency);
+      upload_frequency = base::Milliseconds(frequency);
     }
   }
   return upload_frequency;
@@ -291,7 +291,7 @@
 
 // Determines the time window for which the upload times should be stored.
 const base::TimeDelta SystemLogUploader::kLogThrottleWindowDuration =
-    base::TimeDelta::FromHours(24);
+    base::Hours(24);
 
 // String constant identifying the header field which stores the file type.
 const char* const SystemLogUploader::kFileTypeHeaderName = "File-Type";
@@ -385,8 +385,7 @@
   if (retry_count_++ < kMaxNumRetries) {
     SYSLOG(ERROR) << "Upload failed with error code " << error_code
                   << ", retrying later.";
-    ScheduleNextSystemLogUpload(
-        base::TimeDelta::FromMilliseconds(kErrorUploadDelayMs));
+    ScheduleNextSystemLogUpload(base::Milliseconds(kErrorUploadDelayMs));
   } else {
     // No more retries.
     SYSLOG(ERROR) << "Upload failed with error code " << error_code
diff --git a/chrome/browser/ash/policy/uploading/system_log_uploader_unittest.cc b/chrome/browser/ash/policy/uploading/system_log_uploader_unittest.cc
index da58349..345b65c 100644
--- a/chrome/browser/ash/policy/uploading/system_log_uploader_unittest.cc
+++ b/chrome/browser/ash/policy/uploading/system_log_uploader_unittest.cc
@@ -309,11 +309,9 @@
     EXPECT_EQ(1U, task_runner_->NumPendingTasks());
 
     if (upload_num < SystemLogUploader::kLogThrottleCount) {
-      EXPECT_EQ(task_runner_->NextPendingTaskDelay(),
-                base::TimeDelta::FromMilliseconds(0));
+      EXPECT_EQ(task_runner_->NextPendingTaskDelay(), base::Milliseconds(0));
     } else {
-      EXPECT_GT(task_runner_->NextPendingTaskDelay(),
-                base::TimeDelta::FromMilliseconds(0));
+      EXPECT_GT(task_runner_->NextPendingTaskDelay(), base::Milliseconds(0));
     }
 
     task_runner_->RunPendingTasks();
@@ -334,8 +332,7 @@
   for (int upload_num = 0;
        upload_num < SystemLogUploader::kLogThrottleCount + 3; upload_num++) {
     uploader.ScheduleNextSystemLogUploadImmediately();
-    EXPECT_EQ(task_runner_->NextPendingTaskDelay(),
-              base::TimeDelta::FromMilliseconds(0));
+    EXPECT_EQ(task_runner_->NextPendingTaskDelay(), base::Milliseconds(0));
     task_runner_->RunPendingTasks();
     task_runner_->ClearPendingTasks();
   }
@@ -372,8 +369,7 @@
   EXPECT_EQ(1U, task_runner_->NumPendingTasks());
 
   RunPendingUploadTaskAndCheckNext(
-      uploader, base::TimeDelta::FromMilliseconds(
-                    SystemLogUploader::kDefaultUploadDelayMs));
+      uploader, base::Milliseconds(SystemLogUploader::kDefaultUploadDelayMs));
   ExpectSuccessHistogram(/*amount=*/1);
 }
 
@@ -392,17 +388,14 @@
   EXPECT_EQ(1U, task_runner_->NumPendingTasks());
 
   // Do not retry two times consequentially.
-  RunPendingUploadTaskAndCheckNext(uploader,
-                                   base::TimeDelta::FromMilliseconds(
-                                       SystemLogUploader::kErrorUploadDelayMs));
+  RunPendingUploadTaskAndCheckNext(
+      uploader, base::Milliseconds(SystemLogUploader::kErrorUploadDelayMs));
   // We are using the kDefaultUploadDelayMs and not the kErrorUploadDelayMs here
   // because there's just one retry.
   RunPendingUploadTaskAndCheckNext(
-      uploader, base::TimeDelta::FromMilliseconds(
-                    SystemLogUploader::kDefaultUploadDelayMs));
-  RunPendingUploadTaskAndCheckNext(uploader,
-                                   base::TimeDelta::FromMilliseconds(
-                                       SystemLogUploader::kErrorUploadDelayMs));
+      uploader, base::Milliseconds(SystemLogUploader::kDefaultUploadDelayMs));
+  RunPendingUploadTaskAndCheckNext(
+      uploader, base::Milliseconds(SystemLogUploader::kErrorUploadDelayMs));
   ExpectFailureHistogram(/*amount=*/3);
 }
 
@@ -421,8 +414,7 @@
   EXPECT_EQ(1U, task_runner_->NumPendingTasks());
 
   RunPendingUploadTaskAndCheckNext(
-      uploader, base::TimeDelta::FromMilliseconds(
-                    SystemLogUploader::kDefaultUploadDelayMs));
+      uploader, base::Milliseconds(SystemLogUploader::kDefaultUploadDelayMs));
   ExpectSuccessHistogram(/*amount=*/1);
 }
 
@@ -440,9 +432,8 @@
   SystemLogUploader uploader(std::move(syslog_delegate), task_runner_);
 
   EXPECT_EQ(1U, task_runner_->NumPendingTasks());
-  RunPendingUploadTaskAndCheckNext(uploader,
-                                   base::TimeDelta::FromMilliseconds(
-                                       SystemLogUploader::kErrorUploadDelayMs));
+  RunPendingUploadTaskAndCheckNext(
+      uploader, base::Milliseconds(SystemLogUploader::kErrorUploadDelayMs));
   ExpectFailureHistogram(/*amount=*/1);
 
   // Disable log upload and check that frequency is usual, because there is no
@@ -452,11 +443,9 @@
   task_runner_->RunPendingTasks();
 
   RunPendingUploadTaskAndCheckNext(
-      uploader, base::TimeDelta::FromMilliseconds(
-                    SystemLogUploader::kDefaultUploadDelayMs));
+      uploader, base::Milliseconds(SystemLogUploader::kDefaultUploadDelayMs));
   RunPendingUploadTaskAndCheckNext(
-      uploader, base::TimeDelta::FromMilliseconds(
-                    SystemLogUploader::kDefaultUploadDelayMs));
+      uploader, base::Milliseconds(SystemLogUploader::kDefaultUploadDelayMs));
   ExpectFailureHistogram(/*amount=*/1);
 }
 
diff --git a/chrome/browser/ash/policy/uploading/upload_job_impl.cc b/chrome/browser/ash/policy/uploading/upload_job_impl.cc
index 6d043a2..3ba2eeb7 100644
--- a/chrome/browser/ash/policy/uploading/upload_job_impl.cc
+++ b/chrome/browser/ash/policy/uploading/upload_job_impl.cc
@@ -391,16 +391,15 @@
           FROM_HERE,
           base::BindOnce(&UploadJobImpl::RequestAccessToken,
                          weak_factory_.GetWeakPtr()),
-          base::TimeDelta::FromMilliseconds(g_retry_delay_ms));
+          base::Milliseconds(g_retry_delay_ms));
     } else {
       // Retry without a new token.
       state_ = ACQUIRING_TOKEN;
       SYSLOG(WARNING) << "Retrying upload with the same token.";
-      task_runner_->PostDelayedTask(
-          FROM_HERE,
-          base::BindOnce(&UploadJobImpl::StartUpload,
-                         weak_factory_.GetWeakPtr()),
-          base::TimeDelta::FromMilliseconds(g_retry_delay_ms));
+      task_runner_->PostDelayedTask(FROM_HERE,
+                                    base::BindOnce(&UploadJobImpl::StartUpload,
+                                                   weak_factory_.GetWeakPtr()),
+                                    base::Milliseconds(g_retry_delay_ms));
     }
   }
 }
diff --git a/chrome/browser/ash/power/auto_screen_brightness/adapter.cc b/chrome/browser/ash/power/auto_screen_brightness/adapter.cc
index ef9d1ed..9394566 100644
--- a/chrome/browser/ash/power/auto_screen_brightness/adapter.cc
+++ b/chrome/browser/ash/power/auto_screen_brightness/adapter.cc
@@ -389,8 +389,7 @@
       lid_open_delay_time_.InSeconds());
 
   if (lid_open_delay_time_seconds > 0) {
-    lid_open_delay_time_ =
-        base::TimeDelta::FromSeconds(lid_open_delay_time_seconds);
+    lid_open_delay_time_ = base::Seconds(lid_open_delay_time_seconds);
   }
 }
 
@@ -414,8 +413,8 @@
       features::kAutoScreenBrightness, "stabilization_threshold",
       params_.stabilization_threshold);
 
-  params_.auto_brightness_als_horizon = base::TimeDelta::FromSeconds(
-      model_config.auto_brightness_als_horizon_seconds);
+  params_.auto_brightness_als_horizon =
+      base::Seconds(model_config.auto_brightness_als_horizon_seconds);
 
   log_als_values_ = std::make_unique<AmbientLightSampleBuffer>(
       params_.auto_brightness_als_horizon);
diff --git a/chrome/browser/ash/power/auto_screen_brightness/adapter.h b/chrome/browser/ash/power/auto_screen_brightness/adapter.h
index 59808eb..b21607fb3 100644
--- a/chrome/browser/ash/power/auto_screen_brightness/adapter.h
+++ b/chrome/browser/ash/power/auto_screen_brightness/adapter.h
@@ -75,8 +75,7 @@
     // Average ambient value is calculated over the past
     // |auto_brightness_als_horizon|. This is only used for brightness update,
     // which can be different from the horizon used in model training.
-    base::TimeDelta auto_brightness_als_horizon =
-        base::TimeDelta::FromSeconds(4);
+    base::TimeDelta auto_brightness_als_horizon = base::Seconds(4);
 
     UserAdjustmentEffect user_adjustment_effect =
         UserAdjustmentEffect::kPauseAuto;
@@ -410,7 +409,7 @@
   // ALS data that arrives soon after lid is reopened tends to be inaccurate.
   // Hence we do not store any ALS data that arrives less than
   // |lid_open_delay_time_| from |lid_reopen_time_|.
-  base::TimeDelta lid_open_delay_time_ = base::TimeDelta::FromSeconds(2);
+  base::TimeDelta lid_open_delay_time_ = base::Seconds(2);
 };
 
 }  // namespace auto_screen_brightness
diff --git a/chrome/browser/ash/power/auto_screen_brightness/adapter_unittest.cc b/chrome/browser/ash/power/auto_screen_brightness/adapter_unittest.cc
index 7819acea..d5e4baa 100644
--- a/chrome/browser/ash/power/auto_screen_brightness/adapter_unittest.cc
+++ b/chrome/browser/ash/power/auto_screen_brightness/adapter_unittest.cc
@@ -171,7 +171,7 @@
     // Simulate the real clock that will not produce TimeTicks equal to 0.
     // This is because the Adapter will treat 0 TimeTicks are uninitialized
     // values.
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
     sync_preferences::PrefServiceMockFactory factory;
     factory.set_user_prefs(base::WrapRefCounted(new TestingPrefStore()));
     scoped_refptr<user_prefs::PrefRegistrySyncable> registry(
@@ -279,7 +279,7 @@
     for (const int als_value : als_values) {
       // Forward 1 second to simulate the real AlsReader that samples data at
       // 1hz.
-      task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+      task_environment_.FastForwardBy(base::Seconds(1));
       ReportAls(als_value);
     }
   }
@@ -579,7 +579,7 @@
   // |params.auto_brightness_als_horizon_seconds| has elapsed since we've made
   // the change, but there's no new ALS value, hence no brightness change is
   // triggered.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
   EXPECT_EQ(test_observer_.num_changes(), 2);
   CheckAvgLog({20, 30, 40, 50, 60},
               adapter_->GetCurrentAvgLogAlsForTesting().value());
@@ -621,7 +621,7 @@
   CheckAvgLog({1, 2, 3, 4}, adapter_->GetCurrentAvgLogAlsForTesting().value());
 
   // Another user manual adjustment comes in.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   ReportUserBrightnessChangeRequest(30.0, 40.0);
 
   EXPECT_EQ(adapter_->GetStatusForTesting(), Adapter::Status::kSuccess);
@@ -679,7 +679,7 @@
               adapter_->GetCurrentAvgLogAlsForTesting().value());
 
   // Another user manual adjustment comes in.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   ReportUserBrightnessChangeRequest(30.0, 40.0);
 
   EXPECT_EQ(adapter_->GetStatusForTesting(), Adapter::Status::kSuccess);
@@ -714,7 +714,7 @@
   EXPECT_FALSE(adapter_->GetCurrentAvgLogAlsForTesting());
 
   // Another user manual adjustment comes in.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   ReportUserBrightnessChangeRequest(30.0, 40.0);
   histogram_tester_.ExpectBucketCount(
       "AutoScreenBrightness.MissingAlsWhenBrightnessChanged", true, 1);
@@ -754,7 +754,7 @@
   EXPECT_EQ(test_observer_.num_changes(), 0);
 
   // Another user manual adjustment comes in.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   ReportUserBrightnessChangeRequest(30.0, 40.0);
   histogram_tester_.ExpectBucketCount(
       "AutoScreenBrightness.MissingAlsWhenBrightnessChanged", true, 1);
@@ -924,7 +924,7 @@
                        adapter_->GetCurrentAvgLogAlsForTesting().value()));
 
   // A new personal curve is received but adapter still uses the global curve.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(20));
+  task_environment_.FastForwardBy(base::Seconds(20));
   fake_modeller_.ReportModelTrained(*personal_curve_);
   ReportAls(20);
   EXPECT_EQ(test_observer_.num_changes(), 2);
diff --git a/chrome/browser/ash/power/auto_screen_brightness/als_file_reader.h b/chrome/browser/ash/power/auto_screen_brightness/als_file_reader.h
index b84d76f4..441d7b5 100644
--- a/chrome/browser/ash/power/auto_screen_brightness/als_file_reader.h
+++ b/chrome/browser/ash/power/auto_screen_brightness/als_file_reader.h
@@ -28,12 +28,11 @@
   // ALS file location may not be ready immediately, so we retry every
   // |kAlsFileCheckingInterval| until |kMaxInitialAttempts| is reached, then
   // we give up.
-  static constexpr base::TimeDelta kAlsFileCheckingInterval =
-      base::TimeDelta::FromSeconds(1);
+  static constexpr base::TimeDelta kAlsFileCheckingInterval = base::Seconds(1);
   static constexpr int kMaxInitialAttempts = 20;
 
   static constexpr base::TimeDelta kAlsPollInterval =
-      base::TimeDelta::FromSecondsD(1.0 / AlsReader::kAlsPollFrequency);
+      base::Seconds(1.0 / AlsReader::kAlsPollFrequency);
 
   explicit AlsFileReader(AlsReader* als_reader);
 
diff --git a/chrome/browser/ash/power/auto_screen_brightness/als_samples_unittest.cc b/chrome/browser/ash/power/auto_screen_brightness/als_samples_unittest.cc
index fa788f9..21193f4 100644
--- a/chrome/browser/ash/power/auto_screen_brightness/als_samples_unittest.cc
+++ b/chrome/browser/ash/power/auto_screen_brightness/als_samples_unittest.cc
@@ -43,10 +43,10 @@
 
 TEST(AmbientLightSampleBufferTest, Basic) {
   base::SimpleTestTickClock tick_clock;
-  AmbientLightSampleBuffer buffer(base::TimeDelta::FromSeconds(5));
+  AmbientLightSampleBuffer buffer(base::Seconds(5));
   std::vector<double> expected_data;
   for (int i = 1; i < 6; ++i) {
-    tick_clock.Advance(base::TimeDelta::FromSeconds(1));
+    tick_clock.Advance(base::Seconds(1));
     const AmbientLightSampleBuffer::Sample sample = {static_cast<double>(i),
                                                      tick_clock.NowTicks()};
     expected_data.push_back(i);
@@ -61,7 +61,7 @@
   }
 
   // Add another two items that will push out the oldest.
-  tick_clock.Advance(base::TimeDelta::FromSeconds(1));
+  tick_clock.Advance(base::Seconds(1));
   buffer.SaveToBuffer({10, tick_clock.NowTicks()});
 
   EXPECT_EQ(buffer.NumberOfSamplesForTesting(), 5u);
@@ -70,7 +70,7 @@
       {2, 3, 4, 5, 10});
   EXPECT_EQ(buffer.NumberOfSamplesForTesting(), 5u);
 
-  tick_clock.Advance(base::TimeDelta::FromSeconds(1));
+  tick_clock.Advance(base::Seconds(1));
   buffer.SaveToBuffer({20, tick_clock.NowTicks()});
   EXPECT_EQ(buffer.NumberOfSamplesForTesting(), 5u);
   CheckAverageAndStdDev(
@@ -79,7 +79,7 @@
   EXPECT_EQ(buffer.NumberOfSamplesForTesting(), 5u);
 
   // Add another item but it doesn't push out the oldest.
-  tick_clock.Advance(base::TimeDelta::FromMilliseconds(1));
+  tick_clock.Advance(base::Milliseconds(1));
   buffer.SaveToBuffer({100, tick_clock.NowTicks()});
   EXPECT_EQ(buffer.NumberOfSamplesForTesting(), 6u);
   CheckAverageAndStdDev(
@@ -90,8 +90,8 @@
 
 TEST(AmbientLightSampleBufferTest, LargeSampleTimeGap) {
   base::SimpleTestTickClock tick_clock;
-  AmbientLightSampleBuffer buffer(base::TimeDelta::FromSeconds(5));
-  tick_clock.Advance(base::TimeDelta::FromSeconds(1));
+  AmbientLightSampleBuffer buffer(base::Seconds(5));
+  tick_clock.Advance(base::Seconds(1));
   const AmbientLightSampleBuffer::Sample sample = {10, tick_clock.NowTicks()};
   buffer.SaveToBuffer(sample);
   EXPECT_EQ(buffer.NumberOfSamplesForTesting(), 1u);
@@ -100,7 +100,7 @@
   EXPECT_EQ(buffer.NumberOfSamplesForTesting(), 1u);
 
   // Another samples arrives sufficiently late so the 1st sample is pushed out.
-  tick_clock.Advance(base::TimeDelta::FromSeconds(5));
+  tick_clock.Advance(base::Seconds(5));
   buffer.SaveToBuffer({20, tick_clock.NowTicks()});
   EXPECT_EQ(buffer.NumberOfSamplesForTesting(), 1u);
   CheckAverageAndStdDev(
@@ -110,8 +110,8 @@
 
 TEST(AmbientLightSampleBufferTest, AverageTimeTooLate) {
   base::SimpleTestTickClock tick_clock;
-  AmbientLightSampleBuffer buffer(base::TimeDelta::FromSeconds(5));
-  tick_clock.Advance(base::TimeDelta::FromSeconds(1));
+  AmbientLightSampleBuffer buffer(base::Seconds(5));
+  tick_clock.Advance(base::Seconds(1));
   const AmbientLightSampleBuffer::Sample sample = {10, tick_clock.NowTicks()};
   buffer.SaveToBuffer(sample);
   EXPECT_EQ(buffer.NumberOfSamplesForTesting(), 1u);
@@ -121,7 +121,7 @@
 
   // When average is calculated, all samples are too old, hence average is
   // nullopt.
-  tick_clock.Advance(base::TimeDelta::FromSeconds(5));
+  tick_clock.Advance(base::Seconds(5));
   EXPECT_EQ(buffer.NumberOfSamplesForTesting(), 1u);
   EXPECT_FALSE(
       buffer.AverageAmbientWithStdDev(tick_clock.NowTicks()).has_value());
@@ -130,13 +130,13 @@
 
 TEST(AmbientLightSampleBufferTest, BufferCleared) {
   base::SimpleTestTickClock tick_clock;
-  AmbientLightSampleBuffer buffer(base::TimeDelta::FromSeconds(5));
+  AmbientLightSampleBuffer buffer(base::Seconds(5));
 
   // Save two data points and verify.
-  tick_clock.Advance(base::TimeDelta::FromSeconds(1));
+  tick_clock.Advance(base::Seconds(1));
   buffer.SaveToBuffer({10, tick_clock.NowTicks()});
 
-  tick_clock.Advance(base::TimeDelta::FromSeconds(1));
+  tick_clock.Advance(base::Seconds(1));
   buffer.SaveToBuffer({20, tick_clock.NowTicks()});
 
   EXPECT_EQ(buffer.NumberOfSamplesForTesting(), 2u);
@@ -152,10 +152,10 @@
       buffer.AverageAmbientWithStdDev(tick_clock.NowTicks()).has_value());
 
   // Save another two data points and verify.
-  tick_clock.Advance(base::TimeDelta::FromSeconds(1));
+  tick_clock.Advance(base::Seconds(1));
   buffer.SaveToBuffer({30, tick_clock.NowTicks()});
 
-  tick_clock.Advance(base::TimeDelta::FromSeconds(1));
+  tick_clock.Advance(base::Seconds(1));
   buffer.SaveToBuffer({40, tick_clock.NowTicks()});
   avg_std = buffer.AverageAmbientWithStdDev(tick_clock.NowTicks()).value();
   CheckAverageAndStdDev(avg_std, {30, 40});
diff --git a/chrome/browser/ash/power/auto_screen_brightness/brightness_monitor_impl.cc b/chrome/browser/ash/power/auto_screen_brightness/brightness_monitor_impl.cc
index 8bd4f7c9..8666e75 100644
--- a/chrome/browser/ash/power/auto_screen_brightness/brightness_monitor_impl.cc
+++ b/chrome/browser/ash/power/auto_screen_brightness/brightness_monitor_impl.cc
@@ -36,7 +36,7 @@
   brightness_sample_delay_ =
       brightness_sample_delay_seconds < 0
           ? kBrightnessSampleDelay
-          : base::TimeDelta::FromSeconds(brightness_sample_delay_seconds);
+          : base::Seconds(brightness_sample_delay_seconds);
 
   power_manager_client_observation_.Observe(PowerManagerClient::Get());
 }
diff --git a/chrome/browser/ash/power/auto_screen_brightness/brightness_monitor_impl.h b/chrome/browser/ash/power/auto_screen_brightness/brightness_monitor_impl.h
index faa474c0..afac095 100644
--- a/chrome/browser/ash/power/auto_screen_brightness/brightness_monitor_impl.h
+++ b/chrome/browser/ash/power/auto_screen_brightness/brightness_monitor_impl.h
@@ -29,8 +29,7 @@
   // Once a user brightness adjustment is received, we wait for
   // |brightness_sample_delay_| to record the final brightness. It can be
   // configured from finch with default value set to |kBrightnessSampleDelay|.
-  static constexpr base::TimeDelta kBrightnessSampleDelay =
-      base::TimeDelta::FromSeconds(3);
+  static constexpr base::TimeDelta kBrightnessSampleDelay = base::Seconds(3);
 
   BrightnessMonitorImpl();
 
diff --git a/chrome/browser/ash/power/auto_screen_brightness/light_provider_mojo.cc b/chrome/browser/ash/power/auto_screen_brightness/light_provider_mojo.cc
index 617127f..e338add64 100644
--- a/chrome/browser/ash/power/auto_screen_brightness/light_provider_mojo.cc
+++ b/chrome/browser/ash/power/auto_screen_brightness/light_provider_mojo.cc
@@ -17,11 +17,9 @@
 namespace {
 
 // Delay of the reconnection to Sensor Hal Dispatcher.
-constexpr base::TimeDelta kDelayReconnect =
-    base::TimeDelta::FromMilliseconds(1000);
+constexpr base::TimeDelta kDelayReconnect = base::Milliseconds(1000);
 
-constexpr base::TimeDelta kNewDevicesTimeout =
-    base::TimeDelta::FromMilliseconds(10000);
+constexpr base::TimeDelta kNewDevicesTimeout = base::Milliseconds(10000);
 
 constexpr char kCrosECLightName[] = "cros-ec-light";
 constexpr char kAcpiAlsName[] = "acpi-als";
diff --git a/chrome/browser/ash/power/auto_screen_brightness/metrics_reporter.cc b/chrome/browser/ash/power/auto_screen_brightness/metrics_reporter.cc
index 3dec83c..ae42b427 100644
--- a/chrome/browser/ash/power/auto_screen_brightness/metrics_reporter.cc
+++ b/chrome/browser/ash/power/auto_screen_brightness/metrics_reporter.cc
@@ -18,8 +18,7 @@
 namespace {
 
 // Interval for asking metrics::DailyEvent to check whether a day has passed.
-constexpr base::TimeDelta kCheckDailyEventInternal =
-    base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kCheckDailyEventInternal = base::Seconds(60);
 
 // Prefs corresponding to DeviceClass values.
 constexpr std::array<const char*, MetricsReporter::kNumberDeviceClasses>
diff --git a/chrome/browser/ash/power/auto_screen_brightness/modeller_impl.cc b/chrome/browser/ash/power/auto_screen_brightness/modeller_impl.cc
index 7c098cf..224b78555 100644
--- a/chrome/browser/ash/power/auto_screen_brightness/modeller_impl.cc
+++ b/chrome/browser/ash/power/auto_screen_brightness/modeller_impl.cc
@@ -486,7 +486,7 @@
     return false;
 
   log_als_values_ = std::make_unique<AmbientLightSampleBuffer>(
-      base::TimeDelta::FromSeconds(model_config_.model_als_horizon_seconds));
+      base::Seconds(model_config_.model_als_horizon_seconds));
 
   // TODO(jiameng): the following params are probably not useful and can be
   // removed.
@@ -500,7 +500,7 @@
       features::kAutoScreenBrightness, "training_delay_in_seconds",
       training_delay_.InSeconds());
   if (training_delay_in_seconds >= 0) {
-    training_delay_ = base::TimeDelta::FromSeconds(training_delay_in_seconds);
+    training_delay_ = base::Seconds(training_delay_in_seconds);
   }
 
   curve_error_tolerance_ = GetFieldTrialParamByFeatureAsDouble(
diff --git a/chrome/browser/ash/power/auto_screen_brightness/modeller_impl.h b/chrome/browser/ash/power/auto_screen_brightness/modeller_impl.h
index 1ba38b8..455a486 100644
--- a/chrome/browser/ash/power/auto_screen_brightness/modeller_impl.h
+++ b/chrome/browser/ash/power/auto_screen_brightness/modeller_impl.h
@@ -215,7 +215,7 @@
   // Once user remains idle for |training_delay_|, we start training the model.
   // If this value is 0, we will not need to wait for user to remain inactive.
   // This can be overridden by experiment flag "training_delay_in_seconds".
-  base::TimeDelta training_delay_ = base::TimeDelta::FromSeconds(0);
+  base::TimeDelta training_delay_ = base::Seconds(0);
 
   // If personal curve error is above this threshold, the curve will not be
   // exported. The error is expressed in terms of percentages.
diff --git a/chrome/browser/ash/power/auto_screen_brightness/modeller_impl_unittest.cc b/chrome/browser/ash/power/auto_screen_brightness/modeller_impl_unittest.cc
index 19d0f82..aec22e6e5 100644
--- a/chrome/browser/ash/power/auto_screen_brightness/modeller_impl_unittest.cc
+++ b/chrome/browser/ash/power/auto_screen_brightness/modeller_impl_unittest.cc
@@ -498,7 +498,7 @@
   const int first_lux = 1000;
   double running_sum = 0.0;
   for (int i = 0; i < horizon_in_seconds; ++i) {
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
     const int lux = i == 0 ? first_lux : i;
     fake_light_provider_->ReportAmbientLightUpdate(lux);
     running_sum += ConvertToLog(lux);
@@ -510,7 +510,7 @@
   EXPECT_EQ(test_observer_->iteration_count(), 0);
 
   // Add another one should push the oldest |first_lux| out of the horizon.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   fake_light_provider_->ReportAmbientLightUpdate(100);
   running_sum = running_sum + ConvertToLog(100) - ConvertToLog(first_lux);
   EXPECT_DOUBLE_EQ(
@@ -537,7 +537,7 @@
   for (size_t i = 0; i < modeller_->GetMaxTrainingDataPointsForTesting() - 1;
        ++i) {
     EXPECT_EQ(i, modeller_->NumberTrainingDataPointsForTesting());
-    task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+    task_environment_.FastForwardBy(base::Milliseconds(1));
     const base::TimeTicks now = task_environment_.NowTicks();
     const int lux = i * 20;
     fake_light_provider_->ReportAmbientLightUpdate(lux);
@@ -555,7 +555,7 @@
             modeller_->NumberTrainingDataPointsForTesting());
 
   // Add one more data point to trigger the training early.
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_environment_.FastForwardBy(base::Milliseconds(1));
   const base::TimeTicks now = task_environment_.NowTicks();
   const double brightness_old = 85;
   const double brightness_new = 95;
@@ -588,12 +588,12 @@
   const Model expected_model(test_initial_global_curve_, absl::nullopt, 0);
   test_observer_->CheckStatus(true /* is_model_initialized */, expected_model);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   fake_light_provider_->ReportAmbientLightUpdate(30);
   std::vector<TrainingDataPoint> expected_data;
   for (size_t i = 0; i < 10; ++i) {
     EXPECT_EQ(i, modeller_->NumberTrainingDataPointsForTesting());
-    task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+    task_environment_.FastForwardBy(base::Milliseconds(1));
     const base::TimeTicks now = task_environment_.NowTicks();
     const int lux = i * 20;
     fake_light_provider_->ReportAmbientLightUpdate(lux);
diff --git a/chrome/browser/ash/power/cpu_data_collector.cc b/chrome/browser/ash/power/cpu_data_collector.cc
index 48928b3e..d6435c97 100644
--- a/chrome/browser/ash/power/cpu_data_collector.cc
+++ b/chrome/browser/ash/power/cpu_data_collector.cc
@@ -177,7 +177,7 @@
           if (index >= idle_sample.time_in_state.size())
             idle_sample.time_in_state.resize(index + 1);
           idle_sample.time_in_state[index] =
-              base::TimeDelta::FromMicroseconds(occupancy_time_usec);
+              base::Microseconds(occupancy_time_usec);
         } else {
           LOG(ERROR) << "Bad format in " << time_file_path << ". "
                      << "Dropping sample.";
@@ -366,7 +366,7 @@
     if (index >= freq_sample->time_in_state.size())
       freq_sample->time_in_state.resize(index + 1);
     freq_sample->time_in_state[index] =
-        base::TimeDelta::FromMilliseconds(occupancy_time_centisecond * 10);
+        base::Milliseconds(occupancy_time_centisecond * 10);
   }
   return true;
 }
@@ -426,7 +426,7 @@
         return false;
       }
       (*freq_samples)[cpu].time_in_state[index] =
-          base::TimeDelta::FromMilliseconds(occupancy_time_centisecond * 10);
+          base::Milliseconds(occupancy_time_centisecond * 10);
     }
   }
   return true;
@@ -440,9 +440,7 @@
 }
 
 void CpuDataCollector::Start() {
-  timer_.Start(FROM_HERE,
-               base::TimeDelta::FromSeconds(kCpuDataSamplePeriodSec),
-               this,
+  timer_.Start(FROM_HERE, base::Seconds(kCpuDataSamplePeriodSec), this,
                &CpuDataCollector::PostSampleCpuState);
 }
 
diff --git a/chrome/browser/ash/power/extension_event_observer.cc b/chrome/browser/ash/power/extension_event_observer.cc
index 8e4737b3..35c98f9 100644
--- a/chrome/browser/ash/power/extension_event_observer.cc
+++ b/chrome/browser/ash/power/extension_event_observer.cc
@@ -227,7 +227,7 @@
   // prevent this callback from reporting ready.
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE, suspend_readiness_callback_.callback(),
-      dark_suspend ? base::TimeDelta::FromMilliseconds(kDarkSuspendDelayMs)
+      dark_suspend ? base::Milliseconds(kDarkSuspendDelayMs)
                    : base::TimeDelta());
 }
 
diff --git a/chrome/browser/ash/power/idle_action_warning_dialog_view.cc b/chrome/browser/ash/power/idle_action_warning_dialog_view.cc
index 47d3c74..a6957e14 100644
--- a/chrome/browser/ash/power/idle_action_warning_dialog_view.cc
+++ b/chrome/browser/ash/power/idle_action_warning_dialog_view.cc
@@ -55,9 +55,8 @@
                                             nullptr /* parent */)
       ->Show();
 
-  update_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(kCountdownUpdateIntervalMs),
-      this, &IdleActionWarningDialogView::UpdateTitle);
+  update_timer_.Start(FROM_HERE, base::Milliseconds(kCountdownUpdateIntervalMs),
+                      this, &IdleActionWarningDialogView::UpdateTitle);
   chrome::RecordDialogCreation(chrome::DialogIdentifier::IDLE_ACTION_WARNING);
 }
 
diff --git a/chrome/browser/ash/power/ml/adaptive_screen_brightness_manager.cc b/chrome/browser/ash/power/ml/adaptive_screen_brightness_manager.cc
index 97a577d0..b4ed7b3 100644
--- a/chrome/browser/ash/power/ml/adaptive_screen_brightness_manager.cc
+++ b/chrome/browser/ash/power/ml/adaptive_screen_brightness_manager.cc
@@ -43,7 +43,7 @@
 
 namespace {
 // Count number of key, mouse and touch events in the past hour.
-constexpr auto kUserInputEventsDuration = base::TimeDelta::FromHours(1);
+constexpr auto kUserInputEventsDuration = base::Hours(1);
 
 // Granularity of input events is per minute.
 constexpr int kNumUserInputEventsBuckets = kUserInputEventsDuration.InMinutes();
diff --git a/chrome/browser/ash/power/ml/adaptive_screen_brightness_manager.h b/chrome/browser/ash/power/ml/adaptive_screen_brightness_manager.h
index 88fe27b..651ba3b 100644
--- a/chrome/browser/ash/power/ml/adaptive_screen_brightness_manager.h
+++ b/chrome/browser/ash/power/ml/adaptive_screen_brightness_manager.h
@@ -45,12 +45,10 @@
       public viz::mojom::VideoDetectorObserver {
  public:
   // Duration of inactivity that marks the end of an activity.
-  static constexpr base::TimeDelta kInactivityDuration =
-      base::TimeDelta::FromSeconds(20);
+  static constexpr base::TimeDelta kInactivityDuration = base::Seconds(20);
 
   // Interval at which data should be logged.
-  static constexpr base::TimeDelta kLoggingInterval =
-      base::TimeDelta::FromMinutes(10);
+  static constexpr base::TimeDelta kLoggingInterval = base::Minutes(10);
 
   AdaptiveScreenBrightnessManager(
       std::unique_ptr<AdaptiveScreenBrightnessUkmLogger> ukm_logger,
diff --git a/chrome/browser/ash/power/ml/adaptive_screen_brightness_manager_unittest.cc b/chrome/browser/ash/power/ml/adaptive_screen_brightness_manager_unittest.cc
index 8ec37330..52f1896 100644
--- a/chrome/browser/ash/power/ml/adaptive_screen_brightness_manager_unittest.cc
+++ b/chrome/browser/ash/power/ml/adaptive_screen_brightness_manager_unittest.cc
@@ -169,7 +169,7 @@
   }
 
   void FastForwardTimeBySecs(const int seconds) {
-    task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(seconds));
+    task_environment()->FastForwardBy(base::Seconds(seconds));
   }
 
   // Creates a test browser window and sets its visibility, activity and
diff --git a/chrome/browser/ash/power/ml/boot_clock.cc b/chrome/browser/ash/power/ml/boot_clock.cc
index 4f1315ad..5def17b 100644
--- a/chrome/browser/ash/power/ml/boot_clock.cc
+++ b/chrome/browser/ash/power/ml/boot_clock.cc
@@ -15,8 +15,7 @@
 
 BootClock::BootClock()
     : mock_boot_time_(base::subtle::ScopedTimeClockOverrides::overrides_active()
-                          ? base::TimeTicks::Now() -
-                                base::TimeDelta::FromMinutes(5)
+                          ? base::TimeTicks::Now() - base::Minutes(5)
                           : base::TimeTicks()) {}
 
 BootClock::~BootClock() = default;
diff --git a/chrome/browser/ash/power/ml/boot_clock_unittest.cc b/chrome/browser/ash/power/ml/boot_clock_unittest.cc
index a4367d1..901aa66 100644
--- a/chrome/browser/ash/power/ml/boot_clock_unittest.cc
+++ b/chrome/browser/ash/power/ml/boot_clock_unittest.cc
@@ -16,8 +16,7 @@
 TEST(BootClockTest, Basic) {
   BootClock boot_clock;
 
-  constexpr base::TimeDelta sleep_duration =
-      base::TimeDelta::FromMilliseconds(10);
+  constexpr base::TimeDelta sleep_duration = base::Milliseconds(10);
   const base::TimeDelta init_time_since_boot = boot_clock.GetTimeSinceBoot();
   EXPECT_GE(init_time_since_boot, base::TimeDelta());
   const base::TimeDelta expected_end_time_since_boot =
@@ -32,8 +31,7 @@
       base::test::TaskEnvironment::TimeSource::MOCK_TIME);
   BootClock boot_clock;
 
-  constexpr base::TimeDelta mock_sleep_duration =
-      base::TimeDelta::FromSeconds(200);
+  constexpr base::TimeDelta mock_sleep_duration = base::Seconds(200);
   const base::TimeDelta init_time_since_boot = boot_clock.GetTimeSinceBoot();
   EXPECT_GE(init_time_since_boot, base::TimeDelta());
   const base::TimeDelta expected_end_time_since_boot =
diff --git a/chrome/browser/ash/power/ml/idle_event_notifier.h b/chrome/browser/ash/power/ml/idle_event_notifier.h
index cd1096e..96752367 100644
--- a/chrome/browser/ash/power/ml/idle_event_notifier.h
+++ b/chrome/browser/ash/power/ml/idle_event_notifier.h
@@ -43,12 +43,10 @@
   // If suspend duration is greater than this, we reset timestamps used to calc
   // |ActivityData::recent_time_active|. We also merge video-playing sessions
   // that have a pause shorter than this.
-  static constexpr base::TimeDelta kIdleDelay =
-      base::TimeDelta::FromSeconds(30);
+  static constexpr base::TimeDelta kIdleDelay = base::Seconds(30);
 
   // Count number of key, mouse and touch events in the past hour.
-  static constexpr auto kUserInputEventsDuration =
-      base::TimeDelta::FromHours(1);
+  static constexpr auto kUserInputEventsDuration = base::Hours(1);
 
   // Granularity of input events is per minute.
   static constexpr int kNumUserInputEventsBuckets =
diff --git a/chrome/browser/ash/power/ml/idle_event_notifier_unittest.cc b/chrome/browser/ash/power/ml/idle_event_notifier_unittest.cc
index 3478e97..58cf7b4 100644
--- a/chrome/browser/ash/power/ml/idle_event_notifier_unittest.cc
+++ b/chrome/browser/ash/power/ml/idle_event_notifier_unittest.cc
@@ -125,7 +125,7 @@
   data.recent_time_active = base::TimeDelta();
   EXPECT_EQ(data, idle_event_notifier_->GetActivityDataAndReset());
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  scoped_task_env_.FastForwardBy(base::Seconds(10));
   idle_event_notifier_->PowerChanged(ac_power_);
   EXPECT_EQ(data, idle_event_notifier_->GetActivityDataAndReset());
 }
@@ -143,7 +143,7 @@
   data_1.recent_time_active = base::TimeDelta();
   EXPECT_EQ(data_1, idle_event_notifier_->GetActivityDataAndReset());
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(100));
+  scoped_task_env_.FastForwardBy(base::Seconds(100));
   const base::Time now_2 = base::Time::Now();
   idle_event_notifier_->PowerChanged(disconnected_power_);
   IdleEventNotifier::ActivityData data_2;
@@ -163,7 +163,7 @@
   scoped_task_env_.FastForwardBy(IdleEventNotifier::kIdleDelay / 2);
   idle_event_notifier_->SuspendDone(IdleEventNotifier::kIdleDelay / 2);
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(5));
+  scoped_task_env_.FastForwardBy(base::Seconds(5));
   idle_event_notifier_->PowerChanged(disconnected_power_);
   const base::Time now_2 = base::Time::Now();
 
@@ -181,12 +181,12 @@
   idle_event_notifier_->PowerChanged(ac_power_);
 
   scoped_task_env_.FastForwardBy(IdleEventNotifier::kIdleDelay +
-                                 base::TimeDelta::FromSeconds(10));
+                                 base::Seconds(10));
   const base::Time now_1 = base::Time::Now();
   idle_event_notifier_->SuspendDone(IdleEventNotifier::kIdleDelay +
-                                    base::TimeDelta::FromSeconds(10));
+                                    base::Seconds(10));
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  scoped_task_env_.FastForwardBy(base::Seconds(10));
   const base::Time now_2 = base::Time::Now();
   idle_event_notifier_->PowerChanged(disconnected_power_);
 
@@ -209,9 +209,9 @@
   data.last_activity_time_of_day = time_of_day;
   data.last_user_activity_time_of_day = time_of_day;
   data.recent_time_active = base::TimeDelta();
-  data.time_since_last_key = base::TimeDelta::FromSeconds(10);
+  data.time_since_last_key = base::Seconds(10);
   data.key_events_in_last_hour = 1;
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  scoped_task_env_.FastForwardBy(base::Seconds(10));
   EXPECT_EQ(data, idle_event_notifier_->GetActivityDataAndReset());
 }
 
@@ -227,9 +227,9 @@
   data.last_activity_time_of_day = time_of_day;
   data.last_user_activity_time_of_day = time_of_day;
   data.recent_time_active = base::TimeDelta();
-  data.time_since_last_mouse = base::TimeDelta::FromSeconds(10);
+  data.time_since_last_mouse = base::Seconds(10);
   data.mouse_events_in_last_hour = 1;
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  scoped_task_env_.FastForwardBy(base::Seconds(10));
   EXPECT_EQ(data, idle_event_notifier_->GetActivityDataAndReset());
 }
 
@@ -245,7 +245,7 @@
   data.last_activity_time_of_day = time_of_day;
   data.last_user_activity_time_of_day = time_of_day;
   data.recent_time_active = base::TimeDelta();
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  scoped_task_env_.FastForwardBy(base::Seconds(10));
   EXPECT_EQ(data, idle_event_notifier_->GetActivityDataAndReset());
 }
 
@@ -257,7 +257,7 @@
                              gfx::Point(0, 0), base::TimeTicks(), 0, 0);
   idle_event_notifier_->OnUserActivity(&mouse_event);
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(2));
+  scoped_task_env_.FastForwardBy(base::Seconds(2));
   const base::Time now_2 = base::Time::Now();
   ui::KeyEvent key_event(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::EF_NONE);
   idle_event_notifier_->OnUserActivity(&key_event);
@@ -268,12 +268,11 @@
   data.last_activity_time_of_day = time_of_day;
   data.last_user_activity_time_of_day = time_of_day;
   data.recent_time_active = now_2 - now_1;
-  data.time_since_last_key = base::TimeDelta::FromSeconds(10);
-  data.time_since_last_mouse =
-      base::TimeDelta::FromSeconds(10) + (now_2 - now_1);
+  data.time_since_last_key = base::Seconds(10);
+  data.time_since_last_mouse = base::Seconds(10) + (now_2 - now_1);
   data.key_events_in_last_hour = 1;
   data.mouse_events_in_last_hour = 1;
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  scoped_task_env_.FastForwardBy(base::Seconds(10));
   EXPECT_EQ(data, idle_event_notifier_->GetActivityDataAndReset());
 }
 
@@ -283,11 +282,11 @@
   const base::Time now_1 = base::Time::Now();
   idle_event_notifier_->OnVideoActivityStarted();
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  scoped_task_env_.FastForwardBy(base::Seconds(1));
   const base::Time now_2 = base::Time::Now();
   idle_event_notifier_->OnUserActivity(&mouse_event);
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(2));
+  scoped_task_env_.FastForwardBy(base::Seconds(2));
   const base::Time now_3 = base::Time::Now();
   idle_event_notifier_->OnVideoActivityEnded();
 
@@ -296,11 +295,11 @@
   data.last_activity_time_of_day = GetTimeSinceMidnight(now_3);
   data.last_user_activity_time_of_day = GetTimeSinceMidnight(now_2);
   data.recent_time_active = now_3 - now_1;
-  data.time_since_last_mouse = base::TimeDelta::FromSeconds(10) + now_3 - now_2;
+  data.time_since_last_mouse = base::Seconds(10) + now_3 - now_2;
   data.video_playing_time = now_3 - now_1;
-  data.time_since_video_ended = base::TimeDelta::FromSeconds(10);
+  data.time_since_video_ended = base::Seconds(10);
   data.mouse_events_in_last_hour = 1;
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  scoped_task_env_.FastForwardBy(base::Seconds(10));
   EXPECT_EQ(data, idle_event_notifier_->GetActivityDataAndReset());
 }
 
@@ -309,7 +308,7 @@
   ui::KeyEvent key_event(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::EF_NONE);
   idle_event_notifier_->OnUserActivity(&key_event);
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  scoped_task_env_.FastForwardBy(base::Seconds(10));
   const base::Time now_2 = base::Time::Now();
   ui::MouseEvent mouse_event(ui::ET_MOUSE_EXITED, gfx::Point(0, 0),
                              gfx::Point(0, 0), base::TimeTicks(), 0, 0);
@@ -321,11 +320,11 @@
   data_1.last_activity_time_of_day = time_of_day_2;
   data_1.last_user_activity_time_of_day = time_of_day_2;
   data_1.recent_time_active = now_2 - now_1;
-  data_1.time_since_last_key = base::TimeDelta::FromSeconds(10) + now_2 - now_1;
-  data_1.time_since_last_mouse = base::TimeDelta::FromSeconds(10);
+  data_1.time_since_last_key = base::Seconds(10) + now_2 - now_1;
+  data_1.time_since_last_mouse = base::Seconds(10);
   data_1.key_events_in_last_hour = 1;
   data_1.mouse_events_in_last_hour = 1;
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  scoped_task_env_.FastForwardBy(base::Seconds(10));
   EXPECT_EQ(data_1, idle_event_notifier_->GetActivityDataAndReset());
 
   idle_event_notifier_->PowerChanged(ac_power_);
@@ -337,12 +336,11 @@
   data_2.last_activity_time_of_day = time_of_day_3;
   data_2.last_user_activity_time_of_day = time_of_day_3;
   data_2.recent_time_active = base::TimeDelta();
-  data_2.time_since_last_key = base::TimeDelta::FromSeconds(20) + now_3 - now_1;
-  data_2.time_since_last_mouse =
-      base::TimeDelta::FromSeconds(20) + now_3 - now_2;
+  data_2.time_since_last_key = base::Seconds(20) + now_3 - now_1;
+  data_2.time_since_last_mouse = base::Seconds(20) + now_3 - now_2;
   data_2.key_events_in_last_hour = 1;
   data_2.mouse_events_in_last_hour = 1;
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(20));
+  scoped_task_env_.FastForwardBy(base::Seconds(20));
   EXPECT_EQ(data_2, idle_event_notifier_->GetActivityDataAndReset());
 }
 
@@ -352,17 +350,17 @@
   const base::Time now_1 = base::Time::Now();
   idle_event_notifier_->OnVideoActivityStarted();
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(2));
+  scoped_task_env_.FastForwardBy(base::Seconds(2));
   idle_event_notifier_->OnVideoActivityEnded();
 
   scoped_task_env_.FastForwardBy(IdleEventNotifier::kIdleDelay / 2);
   idle_event_notifier_->OnVideoActivityStarted();
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(20));
+  scoped_task_env_.FastForwardBy(base::Seconds(20));
   const base::Time now_2 = base::Time::Now();
   idle_event_notifier_->OnVideoActivityEnded();
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  scoped_task_env_.FastForwardBy(base::Seconds(10));
   const base::Time now_3 = base::Time::Now();
   ui::MouseEvent mouse_event(ui::ET_MOUSE_EXITED, gfx::Point(0, 0),
                              gfx::Point(0, 0), base::TimeTicks(), 0, 0);
@@ -373,12 +371,11 @@
   data.last_activity_time_of_day = GetTimeSinceMidnight(now_3);
   data.last_user_activity_time_of_day = GetTimeSinceMidnight(now_3);
   data.recent_time_active = now_3 - now_1;
-  data.time_since_last_mouse = base::TimeDelta::FromSeconds(25);
+  data.time_since_last_mouse = base::Seconds(25);
   data.mouse_events_in_last_hour = 1;
   data.video_playing_time = now_2 - now_1;
-  data.time_since_video_ended =
-      base::TimeDelta::FromSeconds(25) + now_3 - now_2;
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(25));
+  data.time_since_video_ended = base::Seconds(25) + now_3 - now_2;
+  scoped_task_env_.FastForwardBy(base::Seconds(25));
   EXPECT_EQ(data, idle_event_notifier_->GetActivityDataAndReset());
 }
 
@@ -387,20 +384,20 @@
   const base::Time now_1 = base::Time::Now();
   idle_event_notifier_->OnVideoActivityStarted();
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(2));
+  scoped_task_env_.FastForwardBy(base::Seconds(2));
   idle_event_notifier_->OnVideoActivityEnded();
 
   ui::MouseEvent mouse_event(ui::ET_MOUSE_EXITED, gfx::Point(0, 0),
                              gfx::Point(0, 0), base::TimeTicks(), 0, 0);
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(20));
+  scoped_task_env_.FastForwardBy(base::Seconds(20));
   idle_event_notifier_->OnUserActivity(&mouse_event);
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(20));
+  scoped_task_env_.FastForwardBy(base::Seconds(20));
   idle_event_notifier_->OnUserActivity(&mouse_event);
 
   const base::Time now_2 = base::Time::Now();
   idle_event_notifier_->OnVideoActivityStarted();
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(20));
+  scoped_task_env_.FastForwardBy(base::Seconds(20));
   const base::Time now_3 = base::Time::Now();
   idle_event_notifier_->OnVideoActivityEnded();
 
@@ -409,11 +406,11 @@
   data.last_activity_time_of_day = GetTimeSinceMidnight(now_3);
   data.last_user_activity_time_of_day = GetTimeSinceMidnight(now_2);
   data.recent_time_active = now_3 - now_1;
-  data.time_since_last_mouse = base::TimeDelta::FromSeconds(25) + now_3 - now_2;
+  data.time_since_last_mouse = base::Seconds(25) + now_3 - now_2;
   data.mouse_events_in_last_hour = 2;
   data.video_playing_time = now_3 - now_2;
-  data.time_since_video_ended = base::TimeDelta::FromSeconds(25);
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(25));
+  data.time_since_video_ended = base::Seconds(25);
+  scoped_task_env_.FastForwardBy(base::Seconds(25));
   EXPECT_EQ(data, idle_event_notifier_->GetActivityDataAndReset());
 }
 
@@ -423,7 +420,7 @@
   const base::Time now_1 = base::Time::Now();
   idle_event_notifier_->OnVideoActivityStarted();
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(2));
+  scoped_task_env_.FastForwardBy(base::Seconds(2));
   const base::Time now_2 = base::Time::Now();
   idle_event_notifier_->OnVideoActivityEnded();
 
@@ -433,14 +430,14 @@
   data_1.recent_time_active = now_2 - now_1;
   data_1.video_playing_time = now_2 - now_1;
   data_1.time_since_video_ended =
-      IdleEventNotifier::kIdleDelay + base::TimeDelta::FromSeconds(10);
+      IdleEventNotifier::kIdleDelay + base::Seconds(10);
   scoped_task_env_.FastForwardBy(IdleEventNotifier::kIdleDelay +
-                                 base::TimeDelta::FromSeconds(10));
+                                 base::Seconds(10));
   EXPECT_EQ(data_1, idle_event_notifier_->GetActivityDataAndReset());
 
   const base::Time now_3 = base::Time::Now();
   idle_event_notifier_->OnVideoActivityStarted();
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(20));
+  scoped_task_env_.FastForwardBy(base::Seconds(20));
   const base::Time now_4 = base::Time::Now();
   idle_event_notifier_->OnVideoActivityEnded();
 
@@ -459,7 +456,7 @@
   const base::Time kNow1 = base::Time::Now();
   idle_event_notifier_->OnVideoActivityStarted();
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(2));
+  scoped_task_env_.FastForwardBy(base::Seconds(2));
   const base::Time kNow2 = base::Time::Now();
   idle_event_notifier_->OnVideoActivityEnded();
 
@@ -468,13 +465,13 @@
   data_1.last_activity_time_of_day = GetTimeSinceMidnight(kNow2);
   data_1.recent_time_active = kNow2 - kNow1;
   data_1.video_playing_time = kNow2 - kNow1;
-  data_1.time_since_video_ended = base::TimeDelta::FromSeconds(1);
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  data_1.time_since_video_ended = base::Seconds(1);
+  scoped_task_env_.FastForwardBy(base::Seconds(1));
   EXPECT_EQ(data_1, idle_event_notifier_->GetActivityDataAndReset());
 
   const base::Time kNow3 = base::Time::Now();
   idle_event_notifier_->OnVideoActivityStarted();
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(20));
+  scoped_task_env_.FastForwardBy(base::Seconds(20));
   const base::Time kNow4 = base::Time::Now();
   idle_event_notifier_->OnVideoActivityEnded();
 
@@ -491,11 +488,11 @@
   const base::Time now_1 = base::Time::Now();
   idle_event_notifier_->OnVideoActivityStarted();
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(100));
+  scoped_task_env_.FastForwardBy(base::Seconds(100));
   const base::Time now_2 = base::Time::Now();
   idle_event_notifier_->SuspendDone(IdleEventNotifier::kIdleDelay / 2);
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(20));
+  scoped_task_env_.FastForwardBy(base::Seconds(20));
   const base::Time now_3 = base::Time::Now();
   idle_event_notifier_->OnVideoActivityEnded();
 
@@ -516,7 +513,7 @@
   const base::Time now_1 = base::Time::Now();
   idle_event_notifier_->SuspendDone(2 * IdleEventNotifier::kIdleDelay);
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(20));
+  scoped_task_env_.FastForwardBy(base::Seconds(20));
   const base::Time now_2 = base::Time::Now();
   idle_event_notifier_->OnVideoActivityEnded();
 
@@ -542,32 +539,32 @@
   // This key event will be too old to be counted.
   idle_event_notifier_->OnUserActivity(&key_event);
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  scoped_task_env_.FastForwardBy(base::Seconds(10));
   const base::Time video_start_time = base::Time::Now();
   idle_event_notifier_->OnVideoActivityStarted();
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromMinutes(11));
+  scoped_task_env_.FastForwardBy(base::Minutes(11));
   const base::Time last_key_time = base::Time::Now();
   idle_event_notifier_->OnUserActivity(&key_event);
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromMinutes(11));
+  scoped_task_env_.FastForwardBy(base::Minutes(11));
   idle_event_notifier_->OnUserActivity(&mouse_event);
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromMinutes(11));
+  scoped_task_env_.FastForwardBy(base::Minutes(11));
   idle_event_notifier_->OnUserActivity(&touch_event);
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromMinutes(11));
+  scoped_task_env_.FastForwardBy(base::Minutes(11));
   idle_event_notifier_->OnUserActivity(&touch_event);
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromMinutes(11));
+  scoped_task_env_.FastForwardBy(base::Minutes(11));
   const base::Time last_touch_time = base::Time::Now();
   idle_event_notifier_->OnUserActivity(&touch_event);
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromMinutes(11));
+  scoped_task_env_.FastForwardBy(base::Minutes(11));
   const base::Time last_mouse_time = base::Time::Now();
   idle_event_notifier_->OnUserActivity(&mouse_event);
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  scoped_task_env_.FastForwardBy(base::Seconds(10));
   const base::Time video_end_time = base::Time::Now();
   idle_event_notifier_->OnVideoActivityEnded();
 
@@ -577,19 +574,18 @@
   data.last_user_activity_time_of_day = GetTimeSinceMidnight(last_mouse_time);
   data.recent_time_active = video_end_time - first_activity_time;
   data.video_playing_time = video_end_time - video_start_time;
-  data.time_since_video_ended = base::TimeDelta::FromSeconds(30);
-  data.time_since_last_key =
-      base::TimeDelta::FromSeconds(30) + video_end_time - last_key_time;
+  data.time_since_video_ended = base::Seconds(30);
+  data.time_since_last_key = base::Seconds(30) + video_end_time - last_key_time;
   data.time_since_last_mouse =
-      base::TimeDelta::FromSeconds(30) + video_end_time - last_mouse_time;
+      base::Seconds(30) + video_end_time - last_mouse_time;
   data.time_since_last_touch =
-      base::TimeDelta::FromSeconds(30) + video_end_time - last_touch_time;
+      base::Seconds(30) + video_end_time - last_touch_time;
 
   data.key_events_in_last_hour = 1;
   data.mouse_events_in_last_hour = 2;
   data.touch_events_in_last_hour = 3;
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(30));
+  scoped_task_env_.FastForwardBy(base::Seconds(30));
   EXPECT_EQ(data, idle_event_notifier_->GetActivityDataAndReset());
 }
 
@@ -609,38 +605,38 @@
   data_1.last_activity_time_of_day = GetTimeSinceMidnight(now_1);
   data_1.last_user_activity_time_of_day = GetTimeSinceMidnight(now_1);
   data_1.recent_time_active = base::TimeDelta();
-  data_1.time_since_last_key = base::TimeDelta::FromSeconds(30);
+  data_1.time_since_last_key = base::Seconds(30);
   data_1.key_events_in_last_hour = 1;
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(30));
+  scoped_task_env_.FastForwardBy(base::Seconds(30));
   EXPECT_EQ(data_1, idle_event_notifier_->GetActivityDataAndReset());
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromMinutes(11));
+  scoped_task_env_.FastForwardBy(base::Minutes(11));
   const base::Time last_key_time = base::Time::Now();
   idle_event_notifier_->OnUserActivity(&key_event);
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  scoped_task_env_.FastForwardBy(base::Seconds(10));
   const base::Time video_start_time = base::Time::Now();
   // Keep playing video so we won't run into an idle event.
   idle_event_notifier_->OnVideoActivityStarted();
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromMinutes(11));
+  scoped_task_env_.FastForwardBy(base::Minutes(11));
   idle_event_notifier_->OnUserActivity(&mouse_event);
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromMinutes(11));
+  scoped_task_env_.FastForwardBy(base::Minutes(11));
   idle_event_notifier_->OnUserActivity(&touch_event);
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromMinutes(11));
+  scoped_task_env_.FastForwardBy(base::Minutes(11));
   idle_event_notifier_->OnUserActivity(&touch_event);
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromMinutes(11));
+  scoped_task_env_.FastForwardBy(base::Minutes(11));
   const base::Time last_touch_time = base::Time::Now();
   idle_event_notifier_->OnUserActivity(&touch_event);
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromMinutes(11));
+  scoped_task_env_.FastForwardBy(base::Minutes(11));
   const base::Time last_mouse_time = base::Time::Now();
   idle_event_notifier_->OnUserActivity(&mouse_event);
 
-  scoped_task_env_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  scoped_task_env_.FastForwardBy(base::Seconds(10));
   const base::Time video_end_time = base::Time::Now();
   idle_event_notifier_->OnVideoActivityEnded();
 
diff --git a/chrome/browser/ash/power/ml/recent_events_counter_unittest.cc b/chrome/browser/ash/power/ml/recent_events_counter_unittest.cc
index 36f9921..04e49886 100644
--- a/chrome/browser/ash/power/ml/recent_events_counter_unittest.cc
+++ b/chrome/browser/ash/power/ml/recent_events_counter_unittest.cc
@@ -12,8 +12,8 @@
 namespace ml {
 
 TEST(RecentEventsCounterTest, TimeTest) {
-  base::TimeDelta minute = base::TimeDelta::FromMinutes(1);
-  RecentEventsCounter counter(base::TimeDelta::FromHours(1), 60);
+  base::TimeDelta minute = base::Minutes(1);
+  RecentEventsCounter counter(base::Hours(1), 60);
   ASSERT_EQ(counter.GetTotal(minute), 0);
 
   counter.Log(5 * minute);
@@ -48,8 +48,8 @@
 }
 
 TEST(RecentEventsCounterTest, TimeTestConsecutiveMinutes) {
-  base::TimeDelta minute = base::TimeDelta::FromMinutes(1);
-  RecentEventsCounter counter(base::TimeDelta::FromHours(1), 60);
+  base::TimeDelta minute = base::Minutes(1);
+  RecentEventsCounter counter(base::Hours(1), 60);
 
   for (int i = 0; i < 59; i++) {
     counter.Log(i * minute);
@@ -67,8 +67,8 @@
 
 // Tests that, when logging a slightly-newer event, stale buckets are cleared.
 TEST(RecentEventsCounterTest, SomeBucketsStale) {
-  base::TimeDelta minute = base::TimeDelta::FromMinutes(1);
-  RecentEventsCounter counter(base::TimeDelta::FromHours(1), 60);
+  base::TimeDelta minute = base::Minutes(1);
+  RecentEventsCounter counter(base::Hours(1), 60);
 
   // Start with 60 buckets covering [0, 60), with 1 event per bucket.
   for (int i = 0; i < 60; i++) {
@@ -88,8 +88,8 @@
 // Tests that, when logging an event more than `duration` newer than any
 // previous event, all buckets are cleared (since all will be stale).
 TEST(RecentEventsCounterTest, AllBucketsStale) {
-  base::TimeDelta minute = base::TimeDelta::FromMinutes(1);
-  RecentEventsCounter counter(base::TimeDelta::FromHours(1), 60);
+  base::TimeDelta minute = base::Minutes(1);
+  RecentEventsCounter counter(base::Hours(1), 60);
 
   // Start with 60 buckets covering [0, 60), with 1 event per bucket.
   for (int i = 0; i < 60; i++) {
diff --git a/chrome/browser/ash/power/ml/user_activity_manager.cc b/chrome/browser/ash/power/ml/user_activity_manager.cc
index 709ef51..2bd7abc3 100644
--- a/chrome/browser/ash/power/ml/user_activity_manager.cc
+++ b/chrome/browser/ash/power/ml/user_activity_manager.cc
@@ -418,10 +418,8 @@
 void UserActivityManager::OnReceiveInactivityDelays(
     absl::optional<power_manager::PowerManagementPolicy::Delays> delays) {
   if (delays.has_value()) {
-    screen_dim_delay_ =
-        base::TimeDelta::FromMilliseconds(delays->screen_dim_ms());
-    screen_off_delay_ =
-        base::TimeDelta::FromMilliseconds(delays->screen_off_ms());
+    screen_dim_delay_ = base::Milliseconds(delays->screen_dim_ms());
+    screen_off_delay_ = base::Milliseconds(delays->screen_off_ms());
   }
 }
 
diff --git a/chrome/browser/ash/power/ml/user_activity_manager_unittest.cc b/chrome/browser/ash/power/ml/user_activity_manager_unittest.cc
index 2fe8a42..d25415bc 100644
--- a/chrome/browser/ash/power/ml/user_activity_manager_unittest.cc
+++ b/chrome/browser/ash/power/ml/user_activity_manager_unittest.cc
@@ -295,7 +295,7 @@
   // Trigger an idle event.
   const IdleEventNotifier::ActivityData data;
   ReportIdleEvent(data);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_environment()->FastForwardBy(base::Seconds(2));
   ReportUserActivity(nullptr);
 
   const std::vector<UserActivityEvent>& events = delegate_.events();
@@ -370,20 +370,18 @@
   // Trigger the 2nd idle event.
   ReportIdleEvent(data);
   // Second user event.
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_environment()->FastForwardBy(base::Seconds(2));
   ReportUserActivity(nullptr);
 
   // Trigger the 3rd idle event.
   ReportIdleEvent(data);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(3));
-  ReportSuspend(power_manager::SuspendImminent_Reason_IDLE,
-                base::TimeDelta::FromSeconds(10));
+  task_environment()->FastForwardBy(base::Seconds(3));
+  ReportSuspend(power_manager::SuspendImminent_Reason_IDLE, base::Seconds(10));
 
   // Trigger the 4th idle event.
   ReportIdleEvent(data);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(4));
-  ReportSuspend(power_manager::SuspendImminent_Reason_IDLE,
-                base::TimeDelta::FromSeconds(10));
+  task_environment()->FastForwardBy(base::Seconds(4));
+  ReportSuspend(power_manager::SuspendImminent_Reason_IDLE, base::Seconds(10));
 
   const std::vector<UserActivityEvent>& events = delegate_.events();
   ASSERT_EQ(4U, events.size());
@@ -451,7 +449,7 @@
   const IdleEventNotifier::ActivityData data;
   ReportIdleEvent(data);
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_environment()->FastForwardBy(base::Seconds(2));
   ReportLidEvent(chromeos::PowerManagerClient::LidState::CLOSED);
   const std::vector<UserActivityEvent>& events = delegate_.events();
   EXPECT_TRUE(events.empty());
@@ -514,12 +512,11 @@
   // Trigger an idle event.
   const IdleEventNotifier::ActivityData data;
   ReportIdleEvent(data);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(20));
+  task_environment()->FastForwardBy(base::Seconds(20));
   ReportScreenIdleState(true /* screen_dim */, false /* screen_off */);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(30));
+  task_environment()->FastForwardBy(base::Seconds(30));
   ReportScreenIdleState(true /* screen_dim */, true /* screen_off */);
-  ReportSuspend(power_manager::SuspendImminent_Reason_IDLE,
-                base::TimeDelta::FromSeconds(10));
+  ReportSuspend(power_manager::SuspendImminent_Reason_IDLE, base::Seconds(10));
 
   const std::vector<UserActivityEvent>& events = delegate_.events();
   ASSERT_EQ(1U, events.size());
@@ -543,9 +540,9 @@
   // Trigger an idle event.
   const IdleEventNotifier::ActivityData data;
   ReportIdleEvent(data);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(20));
+  task_environment()->FastForwardBy(base::Seconds(20));
   ReportScreenIdleState(true /* screen_dim */, false /* screen_off */);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(30));
+  task_environment()->FastForwardBy(base::Seconds(30));
   ReportScreenIdleState(true /* screen_dim */, true /* screen_off */);
   task_environment()->RunUntilIdle();
 
@@ -563,11 +560,11 @@
   const IdleEventNotifier::ActivityData data;
   ReportIdleEvent(data);
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(20));
+  task_environment()->FastForwardBy(base::Seconds(20));
   ReportScreenIdleState(true /* screen_dim */, false /* screen_off */);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(30));
+  task_environment()->FastForwardBy(base::Seconds(30));
   ReportScreenIdleState(true /* screen_dim */, true /* screen_off */);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
 
   ReportUserActivity(nullptr);
   task_environment()->RunUntilIdle();
@@ -607,8 +604,7 @@
   ReportIdleEvent(data);
 
   ReportScreenLocked();
-  ReportSuspend(power_manager::SuspendImminent_Reason_IDLE,
-                base::TimeDelta::FromSeconds(1));
+  ReportSuspend(power_manager::SuspendImminent_Reason_IDLE, base::Seconds(1));
 
   const std::vector<UserActivityEvent>& events = delegate_.events();
   ASSERT_EQ(1U, events.size());
@@ -633,9 +629,8 @@
   const IdleEventNotifier::ActivityData data;
   ReportIdleEvent(data);
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(20));
-  ReportSuspend(power_manager::SuspendImminent_Reason_IDLE,
-                base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(20));
+  ReportSuspend(power_manager::SuspendImminent_Reason_IDLE, base::Seconds(1));
   const std::vector<UserActivityEvent>& events = delegate_.events();
   ASSERT_EQ(1U, events.size());
 
@@ -658,7 +653,7 @@
   ReportIdleEvent(data);
 
   ReportSuspend(power_manager::SuspendImminent_Reason_LID_CLOSED,
-                base::TimeDelta::FromSeconds(10));
+                base::Seconds(10));
   const std::vector<UserActivityEvent>& events = delegate_.events();
   ASSERT_EQ(1U, events.size());
 
@@ -680,8 +675,7 @@
   const IdleEventNotifier::ActivityData data;
   ReportIdleEvent(data);
 
-  ReportSuspend(power_manager::SuspendImminent_Reason_OTHER,
-                base::TimeDelta::FromSeconds(10));
+  ReportSuspend(power_manager::SuspendImminent_Reason_OTHER, base::Seconds(10));
   const std::vector<UserActivityEvent>& events = delegate_.events();
   ASSERT_EQ(1U, events.size());
 
@@ -706,12 +700,12 @@
 
   IdleEventNotifier::ActivityData data;
   data.last_activity_day = UserActivityEvent_Features_DayOfWeek_MON;
-  data.last_activity_time_of_day = base::TimeDelta::FromSeconds(100);
-  data.recent_time_active = base::TimeDelta::FromSeconds(10);
-  data.time_since_last_mouse = base::TimeDelta::FromSeconds(20);
-  data.time_since_last_touch = base::TimeDelta::FromSeconds(30);
-  data.video_playing_time = base::TimeDelta::FromSeconds(90);
-  data.time_since_video_ended = base::TimeDelta::FromSeconds(2);
+  data.last_activity_time_of_day = base::Seconds(100);
+  data.recent_time_active = base::Seconds(10);
+  data.time_since_last_mouse = base::Seconds(20);
+  data.time_since_last_touch = base::Seconds(30);
+  data.video_playing_time = base::Seconds(90);
+  data.time_since_video_ended = base::Seconds(2);
   data.key_events_in_last_hour = 0;
   data.mouse_events_in_last_hour = 10;
   data.touch_events_in_last_hour = 20;
@@ -767,9 +761,8 @@
   base::test::ScopedFeatureList scoped_feature_list;
   scoped_feature_list.InitAndDisableFeature(features::kUserActivityPrediction);
 
-  ReportInactivityDelays(
-      base::TimeDelta::FromMilliseconds(2000) /* screen_dim_delay */,
-      base::TimeDelta::FromMilliseconds(3000) /* screen_off_delay */);
+  ReportInactivityDelays(base::Milliseconds(2000) /* screen_dim_delay */,
+                         base::Milliseconds(3000) /* screen_off_delay */);
   const IdleEventNotifier::ActivityData data;
   ReportIdleEvent(data);
   ReportUserActivity(nullptr);
@@ -786,9 +779,8 @@
   base::test::ScopedFeatureList scoped_feature_list;
   scoped_feature_list.InitAndDisableFeature(features::kUserActivityPrediction);
 
-  ReportInactivityDelays(
-      base::TimeDelta::FromMilliseconds(2000) /* screen_dim_delay */,
-      base::TimeDelta() /* screen_off_delay */);
+  ReportInactivityDelays(base::Milliseconds(2000) /* screen_dim_delay */,
+                         base::TimeDelta() /* screen_off_delay */);
   const IdleEventNotifier::ActivityData data;
   ReportIdleEvent(data);
   ReportUserActivity(nullptr);
@@ -805,9 +797,8 @@
   base::test::ScopedFeatureList scoped_feature_list;
   scoped_feature_list.InitAndDisableFeature(features::kUserActivityPrediction);
 
-  ReportInactivityDelays(
-      base::TimeDelta() /* screen_dim_delay */,
-      base::TimeDelta::FromMilliseconds(4000) /* screen_off_delay */);
+  ReportInactivityDelays(base::TimeDelta() /* screen_dim_delay */,
+                         base::Milliseconds(4000) /* screen_off_delay */);
   const IdleEventNotifier::ActivityData data;
   ReportIdleEvent(data);
   ReportUserActivity(nullptr);
@@ -833,7 +824,7 @@
 
   ReportScreenIdleState(false /* screen_dim */, true /* screen_off */);
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(7));
+  task_environment()->FastForwardBy(base::Seconds(7));
   ReportUserActivity(nullptr);
 
   const std::vector<UserActivityEvent>& events = delegate_.events();
@@ -864,7 +855,7 @@
   ReportIdleEvent(data);
 
   ReportScreenIdleState(false /* screen_dim */, false /* screen_off */);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(7));
+  task_environment()->FastForwardBy(base::Seconds(7));
   ReportScreenIdleState(true /* screen_dim */, true /* screen_off */);
 
   ReportUserActivity(nullptr);
@@ -896,7 +887,7 @@
 
   ReportScreenIdleState(true /* screen_dim */, false /* screen_off */);
   ReportScreenIdleState(true /* screen_dim */, true /* screen_off */);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(7));
+  task_environment()->FastForwardBy(base::Seconds(7));
   ReportScreenIdleState(false /* screen_dim */, false /* screen_off */);
   ReportUserActivity(nullptr);
 
@@ -1134,15 +1125,14 @@
   task_environment()->RunUntilIdle();
   EXPECT_TRUE(should_defer);
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(6));
-  ReportSuspend(power_manager::SuspendImminent_Reason_IDLE,
-                base::TimeDelta::FromSeconds(3));
+  task_environment()->FastForwardBy(base::Seconds(6));
+  ReportSuspend(power_manager::SuspendImminent_Reason_IDLE, base::Seconds(3));
 
   // 2nd ScreenDimImminent is not deferred despite model score says so.
   // sigmoid(-1.35) * 100 = 20
   fake_service_connection_.SetOutputValue(std::vector<int64_t>{1L},
                                           std::vector<double>{-1.35});
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment()->FastForwardBy(base::Seconds(10));
   ReportIdleEvent(data, &should_defer);
   task_environment()->RunUntilIdle();
   EXPECT_FALSE(should_defer);
@@ -1153,9 +1143,8 @@
                                      2);
 
   // Log when a SuspendImminent is received
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(20));
-  ReportSuspend(power_manager::SuspendImminent_Reason_IDLE,
-                base::TimeDelta::FromSeconds(3));
+  task_environment()->FastForwardBy(base::Seconds(20));
+  ReportSuspend(power_manager::SuspendImminent_Reason_IDLE, base::Seconds(3));
 
   const std::vector<UserActivityEvent>& events = delegate_.events();
   ASSERT_EQ(2U, events.size());
@@ -1219,7 +1208,7 @@
   // sigmoid(-1.35) * 100 = 20
   fake_service_connection_.SetOutputValue(std::vector<int64_t>{1L},
                                           std::vector<double>{-1.35});
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment()->FastForwardBy(base::Seconds(10));
   ReportIdleEvent(data, &should_defer);
   task_environment()->RunUntilIdle();
   EXPECT_FALSE(should_defer);
@@ -1230,9 +1219,8 @@
                                      2);
 
   // Log when a SuspendImminent is received
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(20));
-  ReportSuspend(power_manager::SuspendImminent_Reason_IDLE,
-                base::TimeDelta::FromSeconds(3));
+  task_environment()->FastForwardBy(base::Seconds(20));
+  ReportSuspend(power_manager::SuspendImminent_Reason_IDLE, base::Seconds(3));
 
   const std::vector<UserActivityEvent>& events = delegate_.events();
   ASSERT_EQ(2U, events.size());
diff --git a/chrome/browser/ash/power/power_data_collector.h b/chrome/browser/ash/power/power_data_collector.h
index 2824780e..4328bd88 100644
--- a/chrome/browser/ash/power/power_data_collector.h
+++ b/chrome/browser/ash/power/power_data_collector.h
@@ -109,7 +109,7 @@
   while (!sample_queue->empty()) {
     const SampleType& first = sample_queue->front();
     if (sample.time - first.time >
-        base::TimeDelta::FromSeconds(PowerDataCollector::kSampleTimeLimitSec)) {
+        base::Seconds(PowerDataCollector::kSampleTimeLimitSec)) {
       sample_queue->pop_front();
     } else {
       break;
diff --git a/chrome/browser/ash/power/power_data_collector_unittest.cc b/chrome/browser/ash/power/power_data_collector_unittest.cc
index e1fbfc5..9e225d0 100644
--- a/chrome/browser/ash/power/power_data_collector_unittest.cc
+++ b/chrome/browser/ash/power/power_data_collector_unittest.cc
@@ -55,13 +55,13 @@
 }
 
 TEST_F(PowerDataCollectorTest, SuspendDone) {
-  power_data_collector_->SuspendDone(base::TimeDelta::FromSeconds(10));
+  power_data_collector_->SuspendDone(base::Seconds(10));
   const base::circular_deque<PowerDataCollector::SystemResumedSample>& data1 =
       power_data_collector_->system_resumed_data();
   ASSERT_EQ(static_cast<size_t>(1), data1.size());
   ASSERT_EQ(static_cast<int64_t>(10), data1[0].sleep_duration.InSeconds());
 
-  power_data_collector_->SuspendDone(base::TimeDelta::FromSeconds(20));
+  power_data_collector_->SuspendDone(base::Seconds(20));
   const base::circular_deque<PowerDataCollector::SystemResumedSample>& data2 =
       power_data_collector_->system_resumed_data();
   ASSERT_EQ(static_cast<size_t>(2), data2.size());
@@ -72,8 +72,8 @@
   base::circular_deque<PowerDataCollector::PowerSupplySample> sample_deque;
   PowerDataCollector::PowerSupplySample sample1, sample2;
   sample1.time = base::Time::FromInternalValue(1000);
-  sample2.time = sample1.time +
-      base::TimeDelta::FromSeconds(PowerDataCollector::kSampleTimeLimitSec + 1);
+  sample2.time =
+      sample1.time + base::Seconds(PowerDataCollector::kSampleTimeLimitSec + 1);
 
   AddSample(&sample_deque, sample1);
   ASSERT_EQ(static_cast<size_t>(1), sample_deque.size());
diff --git a/chrome/browser/ash/power/power_metrics_reporter.cc b/chrome/browser/ash/power/power_metrics_reporter.cc
index 1b2d061..7149d44 100644
--- a/chrome/browser/ash/power/power_metrics_reporter.cc
+++ b/chrome/browser/ash/power/power_metrics_reporter.cc
@@ -16,8 +16,7 @@
 namespace {
 
 // Interval for asking metrics::DailyEvent to check whether a day has passed.
-constexpr base::TimeDelta kCheckDailyEventInternal =
-    base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kCheckDailyEventInternal = base::Seconds(60);
 
 // Information about a daily count that should be tracked and reported.
 struct DailyCountInfo {
diff --git a/chrome/browser/ash/power/process_data_collector.cc b/chrome/browser/ash/power/process_data_collector.cc
index a6c74dc..71affb0 100644
--- a/chrome/browser/ash/power/process_data_collector.cc
+++ b/chrome/browser/ash/power/process_data_collector.cc
@@ -54,10 +54,10 @@
 constexpr char kChromeCmdPath[] = "/opt/google/chrome/chrome";
 
 // Sampling frequency.
-constexpr base::TimeDelta kSampleDelay = base::TimeDelta::FromSeconds(15);
+constexpr base::TimeDelta kSampleDelay = base::Seconds(15);
 
 // Time after which a sample is invalid. Must be greater than |kSampleDelay|.
-constexpr base::TimeDelta kExcessiveDelay = base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kExcessiveDelay = base::Seconds(30);
 
 // Represents a map of all processes; maps a PPID to a PID.
 using PpidToPidMap = std::unordered_multimap<pid_t, pid_t>;
diff --git a/chrome/browser/ash/power/smart_charging/smart_charging_manager.cc b/chrome/browser/ash/power/smart_charging/smart_charging_manager.cc
index 2301fd05..5def2b7 100644
--- a/chrome/browser/ash/power/smart_charging/smart_charging_manager.cc
+++ b/chrome/browser/ash/power/smart_charging/smart_charging_manager.cc
@@ -36,11 +36,11 @@
 constexpr int kBucketSize = 15;
 
 // Interval at which data should be logged.
-constexpr auto kLoggingInterval = base::TimeDelta::FromMinutes(30);
+constexpr auto kLoggingInterval = base::Minutes(30);
 
 // Count number of key, mouse, touch events or duration of audio/video playing
 // in the past 30 minutes.
-constexpr auto kUserActivityDuration = base::TimeDelta::FromMinutes(30);
+constexpr auto kUserActivityDuration = base::Minutes(30);
 
 // Granularity of input events is per minute.
 constexpr int kNumUserInputEventsBuckets = kUserActivityDuration.InMinutes();
@@ -502,7 +502,7 @@
   }
 
   // Calculates total time.
-  base::TimeDelta total_time = base::TimeDelta::FromSeconds(0);
+  base::TimeDelta total_time = base::Seconds(0);
   for (const auto& event : recent_video_usage_) {
     total_time += std::min(event.end_time - event.start_time,
                            event.end_time - start_of_duration);
diff --git a/chrome/browser/ash/power/smart_charging/smart_charging_manager_unittest.cc b/chrome/browser/ash/power/smart_charging/smart_charging_manager_unittest.cc
index 58bf7810..c72f77a 100644
--- a/chrome/browser/ash/power/smart_charging/smart_charging_manager_unittest.cc
+++ b/chrome/browser/ash/power/smart_charging/smart_charging_manager_unittest.cc
@@ -122,7 +122,7 @@
   }
 
   void FastForwardTimeBySecs(const int seconds) {
-    task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(seconds));
+    task_environment()->FastForwardBy(base::Seconds(seconds));
   }
 
   base::TimeDelta GetDurationRecentVideoPlaying() {
diff --git a/chrome/browser/ash/printing/fake_cups_print_job_manager.cc b/chrome/browser/ash/printing/fake_cups_print_job_manager.cc
index f50de0403..d413c000 100644
--- a/chrome/browser/ash/printing/fake_cups_print_job_manager.cc
+++ b/chrome/browser/ash/printing/fake_cups_print_job_manager.cc
@@ -76,7 +76,7 @@
       FROM_HERE,
       base::BindOnce(&FakeCupsPrintJobManager::ChangePrintJobState,
                      weak_ptr_factory_.GetWeakPtr(), job),
-      base::TimeDelta::FromMilliseconds(3000));
+      base::Milliseconds(3000));
 
   return true;
 }
@@ -138,7 +138,7 @@
       FROM_HERE,
       base::BindOnce(&FakeCupsPrintJobManager::ChangePrintJobState,
                      weak_ptr_factory_.GetWeakPtr(), job),
-      base::TimeDelta::FromMilliseconds(3000));
+      base::Milliseconds(3000));
 }
 
 }  // namespace ash
diff --git a/chrome/browser/ash/printing/history/print_job_history_cleaner.cc b/chrome/browser/ash/printing/history/print_job_history_cleaner.cc
index e4f77fd8f..3df03b0 100644
--- a/chrome/browser/ash/printing/history/print_job_history_cleaner.cc
+++ b/chrome/browser/ash/printing/history/print_job_history_cleaner.cc
@@ -72,7 +72,7 @@
   if (!success || !print_job_database_->IsInitialized() ||
       expiration_period == kPrintJobHistoryIndefinite ||
       !IsCompletionTimeExpired(oldest_print_job_completion_time_, clock_->Now(),
-                               base::TimeDelta::FromDays(expiration_period))) {
+                               base::Days(expiration_period))) {
     base::SequencedTaskRunnerHandle::Get()->PostTask(FROM_HERE,
                                                      std::move(callback));
     return;
@@ -92,9 +92,8 @@
     return;
   }
   std::vector<std::string> print_job_ids_to_remove;
-  base::TimeDelta print_job_history_expiration_period =
-      base::TimeDelta::FromDays(
-          pref_service_->GetInteger(prefs::kPrintJobHistoryExpirationPeriod));
+  base::TimeDelta print_job_history_expiration_period = base::Days(
+      pref_service_->GetInteger(prefs::kPrintJobHistoryExpirationPeriod));
 
   base::Time now = clock_->Now();
   oldest_print_job_completion_time_ = now;
diff --git a/chrome/browser/ash/printing/history/print_job_history_cleaner_unittest.cc b/chrome/browser/ash/printing/history/print_job_history_cleaner_unittest.cc
index 4c2c089..438b7c7 100644
--- a/chrome/browser/ash/printing/history/print_job_history_cleaner_unittest.cc
+++ b/chrome/browser/ash/printing/history/print_job_history_cleaner_unittest.cc
@@ -104,17 +104,17 @@
   test_prefs_.SetInteger(prefs::kPrintJobHistoryExpirationPeriod, 1);
   print_job_database_->Initialize(base::DoNothing());
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(300));
+  task_environment_.FastForwardBy(base::Days(300));
   PrintJobInfo print_job_info1 =
       ConstructPrintJobInfo(kId1, task_environment_.GetMockClock()->Now());
   SavePrintJob(print_job_info1);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
   PrintJobInfo print_job_info2 =
       ConstructPrintJobInfo(kId2, task_environment_.GetMockClock()->Now());
   SavePrintJob(print_job_info2);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(12));
+  task_environment_.FastForwardBy(base::Hours(12));
   base::RunLoop run_loop1;
   print_job_history_cleaner_->CleanUp(run_loop1.QuitClosure());
   run_loop1.Run();
@@ -124,7 +124,7 @@
   ASSERT_EQ(1u, entries.size());
   EXPECT_EQ(kId2, entries[0].id());
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
   base::RunLoop run_loop2;
   print_job_history_cleaner_->CleanUp(run_loop2.QuitClosure());
   run_loop2.Run();
@@ -138,12 +138,12 @@
   test_prefs_.SetInteger(prefs::kPrintJobHistoryExpirationPeriod, 3);
   print_job_database_->Initialize(base::DoNothing());
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(300));
+  task_environment_.FastForwardBy(base::Days(300));
   PrintJobInfo print_job_info =
       ConstructPrintJobInfo(kId1, task_environment_.GetMockClock()->Now());
   SavePrintJob(print_job_info);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(36));
+  task_environment_.FastForwardBy(base::Hours(36));
   base::RunLoop run_loop1;
   print_job_history_cleaner_->CleanUp(run_loop1.QuitClosure());
   run_loop1.Run();
@@ -167,12 +167,12 @@
   test_prefs_.SetInteger(prefs::kPrintJobHistoryExpirationPeriod, -1);
   print_job_database_->Initialize(base::DoNothing());
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(300));
+  task_environment_.FastForwardBy(base::Days(300));
   PrintJobInfo print_job_info1 =
       ConstructPrintJobInfo(kId1, task_environment_.GetMockClock()->Now());
   SavePrintJob(print_job_info1);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(300));
+  task_environment_.FastForwardBy(base::Days(300));
 
   base::RunLoop run_loop;
   print_job_history_cleaner_->CleanUp(run_loop.QuitClosure());
diff --git a/chrome/browser/ash/secure_channel/nearby_connection_broker_impl.cc b/chrome/browser/ash/secure_channel/nearby_connection_broker_impl.cc
index dd98db1..f31bbe4 100644
--- a/chrome/browser/ash/secure_channel/nearby_connection_broker_impl.cc
+++ b/chrome/browser/ash/secure_channel/nearby_connection_broker_impl.cc
@@ -42,14 +42,12 @@
 
 NearbyConnectionBrokerImpl::Factory* g_test_factory = nullptr;
 
-constexpr base::TimeDelta kConnectionStatusChangeTimeout =
-    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kConnectionStatusChangeTimeout = base::Seconds(10);
 
 // The amount of time by which we can expect a WebRTC upgrade to have been
 // completed. According to metrics, 30 seconds is the 95th+ percentile of how
 // long it takes to upgrade to WebRTC.
-constexpr base::TimeDelta kWebRtcUpgradeDelay =
-    base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kWebRtcUpgradeDelay = base::Seconds(30);
 
 // These values are set to help with Phone Hub battery drain (see: b/183505430)
 // by making the Nearby Connections layer 'keep alive' ping and activity timeout
@@ -65,12 +63,12 @@
 // the impact.
 //
 // Nearby Connections keep alive interval default is 5 seconds.
-constexpr base::TimeDelta kKeepAliveInterval = base::TimeDelta::FromSeconds(25);
+constexpr base::TimeDelta kKeepAliveInterval = base::Seconds(25);
 // Nearby Connections keep alive timeout default is 30 seconds. When the phone
 // goes into deep sleep mode Chrome OS cannot expect to receive keepalives every
 // 25 seconds. The timeout needs to be set high enough to ensure a stable
 // connection when the phone is in deep sleep mode.
-constexpr base::TimeDelta kKeepAliveTimeout = base::TimeDelta::FromMinutes(10);
+constexpr base::TimeDelta kKeepAliveTimeout = base::Minutes(10);
 
 // Numerical values should not be reused or changed since this is used by
 // metrics.
@@ -91,8 +89,8 @@
   // adjusted, a new histogram should be created.
   base::UmaHistogramCustomTimes(
       "MultiDevice.SecureChannel.Nearby.WebRtcUpgradeDuration", duration,
-      /*min=*/base::TimeDelta::FromSeconds(1),
-      /*max=*/base::TimeDelta::FromMinutes(5),
+      /*min=*/base::Seconds(1),
+      /*max=*/base::Minutes(5),
       /*buckets=*/50);
 }
 
diff --git a/chrome/browser/ash/settings/device_settings_service_unittest.cc b/chrome/browser/ash/settings/device_settings_service_unittest.cc
index f14e9d0..693147ce 100644
--- a/chrome/browser/ash/settings/device_settings_service_unittest.cc
+++ b/chrome/browser/ash/settings/device_settings_service_unittest.cc
@@ -123,8 +123,7 @@
 }
 
 TEST_F(DeviceSettingsServiceTest, LoadValidationErrorFutureTimestamp) {
-  base::Time timestamp(base::Time::NowFromSystemTime() +
-                       base::TimeDelta::FromDays(5000));
+  base::Time timestamp(base::Time::NowFromSystemTime() + base::Days(5000));
   device_policy_->policy_data().set_timestamp(
       (timestamp - base::Time::UnixEpoch()).InMilliseconds());
   device_policy_->Build();
diff --git a/chrome/browser/ash/smb_client/discovery/netbios_host_locator.cc b/chrome/browser/ash/smb_client/discovery/netbios_host_locator.cc
index c36ebae..75482d121 100644
--- a/chrome/browser/ash/smb_client/discovery/netbios_host_locator.cc
+++ b/chrome/browser/ash/smb_client/discovery/netbios_host_locator.cc
@@ -93,9 +93,8 @@
     return;
   }
 
-  timer_->Start(FROM_HERE,
-                base::TimeDelta::FromSeconds(kNetBiosDiscoveryTimeoutSeconds),
-                this, &NetBiosHostLocator::StopDiscovery);
+  timer_->Start(FROM_HERE, base::Seconds(kNetBiosDiscoveryTimeoutSeconds), this,
+                &NetBiosHostLocator::StopDiscovery);
 }
 
 net::NetworkInterfaceList NetBiosHostLocator::GetNetworkInterfaceList() {
diff --git a/chrome/browser/ash/smb_client/discovery/netbios_host_locator_unittest.cc b/chrome/browser/ash/smb_client/discovery/netbios_host_locator_unittest.cc
index c880f8c..f40b07f 100644
--- a/chrome/browser/ash/smb_client/discovery/netbios_host_locator_unittest.cc
+++ b/chrome/browser/ash/smb_client/discovery/netbios_host_locator_unittest.cc
@@ -213,8 +213,7 @@
       std::move(timer_));
 
   host_locator_->FindHosts(base::BindOnce(&ExpectNoResults));
-  task_runner_->FastForwardBy(
-      base::TimeDelta::FromSeconds(kNetBiosDiscoveryTimeoutSeconds));
+  task_runner_->FastForwardBy(base::Seconds(kNetBiosDiscoveryTimeoutSeconds));
 }
 
 // Two interfaces that receive no responses properly return no results.
@@ -230,8 +229,7 @@
   host_locator_->FindHosts(base::BindOnce(&ExpectNoResults));
 
   // Fast forward timer so that callback fires.
-  task_runner_->FastForwardBy(
-      base::TimeDelta::FromSeconds(kNetBiosDiscoveryTimeoutSeconds));
+  task_runner_->FastForwardBy(base::Seconds(kNetBiosDiscoveryTimeoutSeconds));
 }
 
 // One interface that recieves responses from two different ip addresses
@@ -263,8 +261,7 @@
 
   host_locator_->FindHosts(
       base::BindOnce(&ExpectResultsEqual, expected_results));
-  task_runner_->FastForwardBy(
-      base::TimeDelta::FromSeconds(kNetBiosDiscoveryTimeoutSeconds));
+  task_runner_->FastForwardBy(base::Seconds(kNetBiosDiscoveryTimeoutSeconds));
 }
 
 // Two interfaces that each receive responses from multiple ip addresses
@@ -310,8 +307,7 @@
 
   host_locator_->FindHosts(
       base::BindOnce(&ExpectResultsEqual, expected_results));
-  task_runner_->FastForwardBy(
-      base::TimeDelta::FromSeconds(kNetBiosDiscoveryTimeoutSeconds));
+  task_runner_->FastForwardBy(base::Seconds(kNetBiosDiscoveryTimeoutSeconds));
 }
 
 // Results are not duplicated when multiple interfaces receive the same response
@@ -354,8 +350,7 @@
 
   host_locator_->FindHosts(
       base::BindOnce(&ExpectResultsEqual, expected_results));
-  task_runner_->FastForwardBy(
-      base::TimeDelta::FromSeconds(kNetBiosDiscoveryTimeoutSeconds));
+  task_runner_->FastForwardBy(base::Seconds(kNetBiosDiscoveryTimeoutSeconds));
 }
 
 TEST_F(NetBiosHostLocatorTest, ResultsNotReturnedUntilTimer) {
@@ -384,11 +379,10 @@
       std::move(timer_));
 
   host_locator_->FindHosts(std::move(set_true_on_returned_callback_));
-  task_runner_->FastForwardBy(
-      base::TimeDelta::FromSeconds(kNetBiosDiscoveryTimeoutSeconds) -
-      base::TimeDelta::FromMilliseconds(1));
+  task_runner_->FastForwardBy(base::Seconds(kNetBiosDiscoveryTimeoutSeconds) -
+                              base::Milliseconds(1));
   EXPECT_FALSE(has_returned_);
-  task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_runner_->FastForwardBy(base::Milliseconds(1));
   EXPECT_TRUE(has_returned_);
 }
 
@@ -435,8 +429,7 @@
 
   host_locator_->FindHosts(
       base::BindOnce(&ExpectResultsEqual, expected_results));
-  task_runner_->FastForwardBy(
-      base::TimeDelta::FromSeconds(kNetBiosDiscoveryTimeoutSeconds));
+  task_runner_->FastForwardBy(base::Seconds(kNetBiosDiscoveryTimeoutSeconds));
 }
 
 }  // namespace smb_client
diff --git a/chrome/browser/ash/smb_client/smbfs_share.cc b/chrome/browser/ash/smb_client/smbfs_share.cc
index 4b13d672..57ee7c9 100644
--- a/chrome/browser/ash/smb_client/smbfs_share.cc
+++ b/chrome/browser/ash/smb_client/smbfs_share.cc
@@ -26,8 +26,7 @@
 
 constexpr char kMountDirPrefix[] = "smbfs-";
 constexpr char kMountIdHashSeparator[] = "#";
-constexpr base::TimeDelta kAllowCredentialsTimeout =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kAllowCredentialsTimeout = base::Seconds(5);
 
 SmbMountResult MountErrorToMountResult(smbfs::mojom::MountError mount_error) {
   switch (mount_error) {
diff --git a/chrome/browser/ash/smb_client/smbfs_share_unittest.cc b/chrome/browser/ash/smb_client/smbfs_share_unittest.cc
index c27bb0e..79169a5 100644
--- a/chrome/browser/ash/smb_client/smbfs_share_unittest.cc
+++ b/chrome/browser/ash/smb_client/smbfs_share_unittest.cc
@@ -339,7 +339,7 @@
   share.AllowCredentialsRequest();
   // Fast-forward time for the allow state to timeout. The timeout is 5 seconds,
   // so moving forward by 6 will ensure the timeout runs.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(6));
+  task_environment_.FastForwardBy(base::Seconds(6));
 
   base::RunLoop run_loop;
   delegate->RequestCredentials(base::BindLambdaForTesting(
diff --git a/chrome/browser/ash/system/automatic_reboot_manager.cc b/chrome/browser/ash/system/automatic_reboot_manager.cc
index 0be69b4e..b64721b 100644
--- a/chrome/browser/ash/system/automatic_reboot_manager.cc
+++ b/chrome/browser/ash/system/automatic_reboot_manager.cc
@@ -73,7 +73,7 @@
       seconds < 0.0) {
     return base::TimeDelta();
   }
-  return base::TimeDelta::FromMilliseconds(seconds * 1000.0);
+  return base::Milliseconds(seconds * 1000.0);
 }
 
 void SaveUpdateRebootNeededUptime() {
@@ -240,7 +240,7 @@
   // the timer fires predictably in tests.
   login_screen_idle_timer_ = std::make_unique<base::OneShotTimer>();
   login_screen_idle_timer_->Start(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(kLoginManagerIdleTimeoutMs),
+      FROM_HERE, base::Milliseconds(kLoginManagerIdleTimeoutMs),
       base::BindOnce(&AutomaticRebootManager::MaybeReboot,
                      base::Unretained(this), false));
 }
@@ -308,7 +308,7 @@
 
   // If an uptime limit is set, calculate the time at which it should cause a
   // reboot to be requested.
-  const base::TimeDelta uptime_limit = base::TimeDelta::FromSeconds(
+  const base::TimeDelta uptime_limit = base::Seconds(
       local_state_registrar_.prefs()->GetInteger(prefs::kUptimeLimit));
   base::TimeTicks reboot_request_time = *boot_time_ + uptime_limit;
   bool have_reboot_request_time = !uptime_limit.is_zero();
@@ -340,9 +340,9 @@
   // is actually requested and the grace period begins is never less than
   // |kMinRebootUptimeMs|.
   const base::TimeTicks now = clock_->NowTicks();
-  const base::TimeTicks grace_start_time = std::max(
-      reboot_request_time,
-      *boot_time_ + base::TimeDelta::FromMilliseconds(kMinRebootUptimeMs));
+  const base::TimeTicks grace_start_time =
+      std::max(reboot_request_time,
+               *boot_time_ + base::Milliseconds(kMinRebootUptimeMs));
 
   // Set up a timer for the start of the grace period. If the grace period
   // started in the past, the timer is still used with its delay set to zero.
@@ -354,8 +354,8 @@
       base::BindOnce(&AutomaticRebootManager::RequestReboot,
                      base::Unretained(this)));
 
-  const base::TimeTicks grace_end_time = grace_start_time +
-      base::TimeDelta::FromMilliseconds(kGracePeriodMs);
+  const base::TimeTicks grace_end_time =
+      grace_start_time + base::Milliseconds(kGracePeriodMs);
   // Set up a timer for the end of the grace period. If the grace period ended
   // in the past, the timer is still used with its delay set to zero.
   if (!grace_end_timer_)
diff --git a/chrome/browser/ash/system/automatic_reboot_manager_unittest.cc b/chrome/browser/ash/system/automatic_reboot_manager_unittest.cc
index bdd5b25..77545d3 100644
--- a/chrome/browser/ash/system/automatic_reboot_manager_unittest.cc
+++ b/chrome/browser/ash/system/automatic_reboot_manager_unittest.cc
@@ -418,7 +418,7 @@
 }
 
 void AutomaticRebootManagerBasicTest::NotifyResumed(bool expect_reboot) {
-  automatic_reboot_manager_->SuspendDone(base::TimeDelta::FromHours(1));
+  automatic_reboot_manager_->SuspendDone(base::Hours(1));
   task_runner_->RunUntilIdle();
   EXPECT_EQ(expect_reboot ? 1 : 0,
             FakePowerManagerClient::Get()->num_request_restart_calls());
@@ -482,7 +482,7 @@
       automatic_reboot_manager_->boot_time_.value_or(base::TimeTicks()) -
       uptime_provider()->uptime();
   EXPECT_GE(uptime_processing_delay_, base::TimeDelta());
-  EXPECT_LE(uptime_processing_delay_, base::TimeDelta::FromSeconds(1));
+  EXPECT_LE(uptime_processing_delay_, base::Seconds(1));
 
   if (is_user_logged_in_ || expect_reboot)
     VerifyLoginScreenIdleTimerIsStopped();
@@ -501,7 +501,7 @@
       seconds < 0.0) {
     return false;
   }
-  *uptime = base::TimeDelta::FromMilliseconds(seconds * 1000.0);
+  *uptime = base::Milliseconds(seconds * 1000.0);
   return true;
 }
 
@@ -531,7 +531,7 @@
     const base::TimeDelta& start_uptime) const {
   const base::TimeDelta start =
       start_uptime - uptime_provider()->uptime() - uptime_processing_delay_;
-  const base::TimeDelta end = start + base::TimeDelta::FromHours(24);
+  const base::TimeDelta end = start + base::Hours(24);
   if (start <= base::TimeDelta()) {
     EXPECT_TRUE(automatic_reboot_manager_->reboot_requested_);
     VerifyTimerIsStopped(automatic_reboot_manager_->grace_start_timer_.get());
@@ -584,7 +584,7 @@
     VerifyLoginScreenIdleTimerIsRunning() const {
   VerifyTimerIsRunning(
       automatic_reboot_manager_->login_screen_idle_timer_.get(),
-      base::TimeDelta::FromSeconds(60));
+      base::Seconds(60));
 }
 
 AutomaticRebootManagerTest::AutomaticRebootManagerTest() {
@@ -621,7 +621,7 @@
 // Verifies that the idle timer is running. Further verifies that when a kiosk
 // app session begins, the idle timer is stopped.
 TEST_F(AutomaticRebootManagerBasicTest, LoginStopsIdleTimer) {
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(12));
+  uptime_provider()->SetUptime(base::Hours(12));
 
   // Verify that no reboot is requested, the device does not reboot immediately
   // and the login screen idle timer is started.
@@ -644,7 +644,7 @@
 // Verifies that the idle timer is running. Further verifies that when a
 // non-kiosk-app session begins, the idle timer is stopped.
 TEST_F(AutomaticRebootManagerBasicTest, NonKioskLoginStopsIdleTimer) {
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(12));
+  uptime_provider()->SetUptime(base::Hours(12));
 
   // Verify that no reboot is requested, the device does not reboot immediately
   // and the login screen idle timer is started.
@@ -667,7 +667,7 @@
 // Verifies that user activity prevents the device from rebooting. Further
 // verifies that when user activity ceases, the devices reboots.
 TEST_F(AutomaticRebootManagerBasicTest, UserActivityResetsIdleTimer) {
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(12));
+  uptime_provider()->SetUptime(base::Hours(12));
 
   // Verify that no reboot is requested, the device does not reboot immediately
   // and the login screen idle timer is started.
@@ -678,7 +678,7 @@
   // Set the uptime limit. Verify that a reboot is requested but the device does
   // not reboot immediately.
   ExpectRebootRequest(AutomaticRebootManagerObserver::REBOOT_REASON_PERIODIC);
-  SetUptimeLimit(base::TimeDelta::FromHours(6), false);
+  SetUptimeLimit(base::Hours(6), false);
 
   // Verify that a grace period has started.
   VerifyGracePeriod(uptime_limit_);
@@ -688,7 +688,7 @@
   for (int i = 0; i < 30; ++i) {
     // Fast forward uptime by 50 seconds. Verify that the device does not reboot
     // immediately.
-    FastForwardBy(base::TimeDelta::FromSeconds(50), false);
+    FastForwardBy(base::Seconds(50), false);
 
     // Simulate user activity.
     automatic_reboot_manager_->OnUserActivity(NULL);
@@ -696,7 +696,7 @@
 
   // Fast forward the uptime by 60 seconds without simulating user activity.
   // Verify that the device reboots immediately.
-  FastForwardBy(base::TimeDelta::FromSeconds(60), true);
+  FastForwardBy(base::Seconds(60), true);
 }
 
 // Chrome is running a kiosk app session. The current uptime is 10 days.
@@ -705,7 +705,7 @@
 TEST_F(AutomaticRebootManagerBasicTest, ResumeNoPolicy) {
   is_logged_in_as_kiosk_app_ = true;
   LogIn();
-  uptime_provider()->SetUptime(base::TimeDelta::FromDays(10));
+  uptime_provider()->SetUptime(base::Days(10));
 
   // Verify that no reboot is requested and the device does not reboot
   // immediately.
@@ -729,7 +729,7 @@
 // immediately reboot.
 TEST_F(AutomaticRebootManagerBasicTest, NonKioskResumeAppNoPolicy) {
   LogIn();
-  uptime_provider()->SetUptime(base::TimeDelta::FromDays(10));
+  uptime_provider()->SetUptime(base::Days(10));
 
   // Verify that no reboot is requested and the device does not reboot
   // immediately.
@@ -755,7 +755,7 @@
 TEST_F(AutomaticRebootManagerBasicTest, ResumeBeforeGracePeriod) {
   is_logged_in_as_kiosk_app_ = true;
   LogIn();
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(12));
+  uptime_provider()->SetUptime(base::Hours(12));
 
   // Verify that no reboot is requested and the device does not reboot
   // immediately.
@@ -765,7 +765,7 @@
 
   // Set the uptime limit. Verify that no reboot is requested and the device
   // does not reboot immediately.
-  SetUptimeLimit(base::TimeDelta::FromHours(24), false);
+  SetUptimeLimit(base::Hours(24), false);
 
   // Verify that a grace period has been scheduled to start in the future.
   VerifyGracePeriod(uptime_limit_);
@@ -785,7 +785,7 @@
 // immediately reboot.
 TEST_F(AutomaticRebootManagerBasicTest, NonKioskResumeBeforeGracePeriod) {
   LogIn();
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(12));
+  uptime_provider()->SetUptime(base::Hours(12));
 
   // Verify that no reboot is requested and the device does not reboot
   // immediately.
@@ -795,7 +795,7 @@
 
   // Set the uptime limit. Verify that no reboot is requested and the device
   // does not reboot immediately.
-  SetUptimeLimit(base::TimeDelta::FromHours(24), false);
+  SetUptimeLimit(base::Hours(24), false);
 
   // Verify that a grace period has been scheduled to start in the future.
   VerifyGracePeriod(uptime_limit_);
@@ -816,7 +816,7 @@
 TEST_F(AutomaticRebootManagerBasicTest, ResumeInGracePeriod) {
   is_logged_in_as_kiosk_app_ = true;
   LogIn();
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(12));
+  uptime_provider()->SetUptime(base::Hours(12));
 
   // Verify that no reboot is requested and the device does not reboot
   // immediately.
@@ -827,7 +827,7 @@
   // Set the uptime limit. Verify that a reboot is requested but the device does
   // not reboot immediately.
   ExpectRebootRequest(AutomaticRebootManagerObserver::REBOOT_REASON_PERIODIC);
-  SetUptimeLimit(base::TimeDelta::FromHours(6), false);
+  SetUptimeLimit(base::Hours(6), false);
 
   // Verify that a grace period has started.
   VerifyGracePeriod(uptime_limit_);
@@ -843,7 +843,7 @@
 // immediately reboot.
 TEST_F(AutomaticRebootManagerBasicTest, NonKioskResumeInGracePeriod) {
   LogIn();
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(12));
+  uptime_provider()->SetUptime(base::Hours(12));
 
   // Verify that no reboot is requested and the device does not reboot
   // immediately.
@@ -854,7 +854,7 @@
   // Set the uptime limit. Verify that a reboot is requested but the device does
   // not reboot immediately.
   ExpectRebootRequest(AutomaticRebootManagerObserver::REBOOT_REASON_PERIODIC);
-  SetUptimeLimit(base::TimeDelta::FromHours(6), false);
+  SetUptimeLimit(base::Hours(6), false);
 
   // Verify that a grace period has started.
   VerifyGracePeriod(uptime_limit_);
@@ -874,8 +874,7 @@
 TEST_F(AutomaticRebootManagerBasicTest, ResumeAfterGracePeriod) {
   is_logged_in_as_kiosk_app_ = true;
   LogIn();
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(29) +
-                          base::TimeDelta::FromMinutes(30));
+  uptime_provider()->SetUptime(base::Hours(29) + base::Minutes(30));
 
   // Verify that no reboot is requested and the device does not reboot
   // immediately.
@@ -886,7 +885,7 @@
   // Set the uptime limit. Verify that a reboot is requested but the device does
   // not reboot immediately.
   ExpectRebootRequest(AutomaticRebootManagerObserver::REBOOT_REASON_PERIODIC);
-  SetUptimeLimit(base::TimeDelta::FromHours(6), false);
+  SetUptimeLimit(base::Hours(6), false);
 
   // Verify that a grace period has started.
   VerifyGracePeriod(uptime_limit_);
@@ -902,8 +901,7 @@
 // immediately reboot.
 TEST_F(AutomaticRebootManagerBasicTest, NonKioskResumeAfterGracePeriod) {
   LogIn();
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(29) +
-                          base::TimeDelta::FromMinutes(30));
+  uptime_provider()->SetUptime(base::Hours(29) + base::Minutes(30));
 
   // Verify that no reboot is requested and the device does not reboot
   // immediately.
@@ -914,7 +912,7 @@
   // Set the uptime limit. Verify that a reboot is requested but the device does
   // not reboot immediately.
   ExpectRebootRequest(AutomaticRebootManagerObserver::REBOOT_REASON_PERIODIC);
-  SetUptimeLimit(base::TimeDelta::FromHours(6), false);
+  SetUptimeLimit(base::Hours(6), false);
 
   // Verify that a grace period has started.
   VerifyGracePeriod(uptime_limit_);
@@ -931,7 +929,7 @@
 // Verifies that when the browser terminates, the device does not immediately
 // reboot.
 TEST_P(AutomaticRebootManagerTest, TerminateNoPolicy) {
-  uptime_provider()->SetUptime(base::TimeDelta::FromDays(10));
+  uptime_provider()->SetUptime(base::Days(10));
 
   // Verify that no reboot is requested and the device does not reboot
   // immediately.
@@ -954,7 +952,7 @@
 // 12 hours.
 // Verifies that when the browser terminates, it does not immediately reboot.
 TEST_P(AutomaticRebootManagerTest, TerminateBeforeGracePeriod) {
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(12));
+  uptime_provider()->SetUptime(base::Hours(12));
 
   // Verify that no reboot is requested and the device does not reboot
   // immediately.
@@ -964,7 +962,7 @@
 
   // Set the uptime limit. Verify that no reboot is requested and the device
   // does not reboot immediately.
-  SetUptimeLimit(base::TimeDelta::FromHours(24), false);
+  SetUptimeLimit(base::Hours(24), false);
 
   // Verify that a grace period has been scheduled to start in the future.
   VerifyGracePeriod(uptime_limit_);
@@ -984,7 +982,7 @@
 // Verifies that when the browser terminates, the device immediately reboots if
 // a kiosk app session is in progress.
 TEST_P(AutomaticRebootManagerTest, TerminateInGracePeriod) {
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(12));
+  uptime_provider()->SetUptime(base::Hours(12));
 
   // Verify that no reboot is requested and the device does not reboot
   // immediately.
@@ -995,7 +993,7 @@
   // Set the uptime limit. Verify that a reboot is requested but the device does
   // not reboot immediately.
   ExpectRebootRequest(AutomaticRebootManagerObserver::REBOOT_REASON_PERIODIC);
-  SetUptimeLimit(base::TimeDelta::FromHours(6), false);
+  SetUptimeLimit(base::Hours(6), false);
 
   // Verify that a grace period has started.
   VerifyGracePeriod(uptime_limit_);
@@ -1013,7 +1011,7 @@
 // Verifies that when the uptime limit is set to 24 hours, no reboot occurs and
 // a grace period is scheduled to begin after 24 hours of uptime.
 TEST_P(AutomaticRebootManagerTest, BeforeUptimeLimitGracePeriod) {
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(12));
+  uptime_provider()->SetUptime(base::Hours(12));
 
   // Verify that no reboot is requested and the device does not reboot
   // immediately.
@@ -1026,7 +1024,7 @@
 
   // Set the uptime limit. Verify that no reboot is requested and the device
   // does not reboot immediately.
-  SetUptimeLimit(base::TimeDelta::FromHours(24), false);
+  SetUptimeLimit(base::Hours(24), false);
 
   // Verify that a grace period has been scheduled to start in the future.
   VerifyGracePeriod(uptime_limit_);
@@ -1041,7 +1039,7 @@
 // Verifies that when the uptime limit is set to 6 hours, a reboot is requested
 // and a grace period is started that will end after 6 + 24 hours of uptime.
 TEST_P(AutomaticRebootManagerTest, InUptimeLimitGracePeriod) {
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(12));
+  uptime_provider()->SetUptime(base::Hours(12));
 
   // Verify that no reboot is requested and the device does not reboot
   // immediately.
@@ -1055,7 +1053,7 @@
   // Set the uptime limit. Verify that a reboot is requested but the device does
   // not reboot immediately.
   ExpectRebootRequest(AutomaticRebootManagerObserver::REBOOT_REASON_PERIODIC);
-  SetUptimeLimit(base::TimeDelta::FromHours(6), false);
+  SetUptimeLimit(base::Hours(6), false);
 
   // Verify that a grace period has started.
   VerifyGracePeriod(uptime_limit_);
@@ -1070,7 +1068,7 @@
 // immediately if no non-kiosk-app-session is in progress because the grace
 // period ended after 6 + 24 hours of uptime.
 TEST_P(AutomaticRebootManagerTest, AfterUptimeLimitGracePeriod) {
-  uptime_provider()->SetUptime(base::TimeDelta::FromDays(10));
+  uptime_provider()->SetUptime(base::Days(10));
 
   // Verify that no reboot is requested and the device does not reboot
   // immediately.
@@ -1084,8 +1082,7 @@
   // Set the uptime limit. Verify that a reboot is requested and unless a
   // non-kiosk-app session is in progress, the the device immediately reboots.
   ExpectRebootRequest(AutomaticRebootManagerObserver::REBOOT_REASON_PERIODIC);
-  SetUptimeLimit(base::TimeDelta::FromHours(6),
-                 !is_user_logged_in_ || is_kiosk_session());
+  SetUptimeLimit(base::Hours(6), !is_user_logged_in_ || is_kiosk_session());
 
   // Verify that if a non-kiosk-app session is in progress, the device never
   // reboots.
@@ -1096,7 +1093,7 @@
 // 6 hours.
 // Verifies that when the uptime limit is removed, the grace period is removed.
 TEST_P(AutomaticRebootManagerTest, UptimeLimitOffBeforeGracePeriod) {
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(6));
+  uptime_provider()->SetUptime(base::Hours(6));
 
   // Verify that no reboot is requested and the device does not reboot
   // immediately.
@@ -1106,14 +1103,14 @@
 
   // Set the uptime limit. Verify that no reboot is requested and the device
   // does not reboot immediately.
-  SetUptimeLimit(base::TimeDelta::FromHours(12), false);
+  SetUptimeLimit(base::Hours(12), false);
 
   // Verify that a grace period has been scheduled to start in the future.
   VerifyGracePeriod(uptime_limit_);
 
   // Fast forward the uptime by 1 hour. Verify that no reboot is requested and
   // the device does not reboot immediately.
-  FastForwardBy(base::TimeDelta::FromHours(1), false);
+  FastForwardBy(base::Hours(1), false);
 
   // Remove the uptime limit. Verify that no reboot is requested and the device
   // does not reboot immediately.
@@ -1130,7 +1127,7 @@
 // 24 hours.
 // Verifies that when the uptime limit is removed, the grace period is removed.
 TEST_P(AutomaticRebootManagerTest, UptimeLimitOffInGracePeriod) {
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(24));
+  uptime_provider()->SetUptime(base::Hours(24));
 
   // Verify that no reboot is requested and the device does not reboot
   // immediately.
@@ -1141,14 +1138,14 @@
   // Set the uptime limit. Verify that a reboot is requested but the device does
   // not reboot immediately.
   ExpectRebootRequest(AutomaticRebootManagerObserver::REBOOT_REASON_PERIODIC);
-  SetUptimeLimit(base::TimeDelta::FromHours(12), false);
+  SetUptimeLimit(base::Hours(12), false);
 
   // Verify that a grace period has started.
   VerifyGracePeriod(uptime_limit_);
 
   // Fast forward the uptime by 20 seconds. Verify that the device does not
   // reboot immediately.
-  FastForwardBy(base::TimeDelta::FromSeconds(20), false);
+  FastForwardBy(base::Seconds(20), false);
 
   // Remove the uptime limit. Verify that the device does not reboot
   // immediately.
@@ -1166,7 +1163,7 @@
 // Verifies that when the uptime limit is extended to 24 hours, the grace period
 // is rescheduled to start further in the future.
 TEST_P(AutomaticRebootManagerTest, ExtendUptimeLimitBeforeGracePeriod) {
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(6));
+  uptime_provider()->SetUptime(base::Hours(6));
 
   // Verify that no reboot is requested and the device does not reboot
   // immediately.
@@ -1176,18 +1173,18 @@
 
   // Set the uptime limit. Verify that no reboot is requested and the device
   // does not reboot immediately.
-  SetUptimeLimit(base::TimeDelta::FromHours(12), false);
+  SetUptimeLimit(base::Hours(12), false);
 
   // Verify that a grace period has been scheduled to start in the future.
   VerifyGracePeriod(uptime_limit_);
 
   // Fast forward the uptime by 20 seconds. Verify that no reboot is requested
   // and the device does not reboot immediately.
-  FastForwardBy(base::TimeDelta::FromSeconds(20), false);
+  FastForwardBy(base::Seconds(20), false);
 
   // Extend the uptime limit. Verify that no reboot is requested and the device
   // does not reboot immediately.
-  SetUptimeLimit(base::TimeDelta::FromHours(24), false);
+  SetUptimeLimit(base::Hours(24), false);
 
   // Verify that the grace period has been rescheduled to start further in the
   // future.
@@ -1204,7 +1201,7 @@
 // Verifies that when the uptime limit is extended to 24 hours, the grace period
 // is rescheduled to start in the future.
 TEST_P(AutomaticRebootManagerTest, ExtendUptimeLimitInGracePeriod) {
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(18));
+  uptime_provider()->SetUptime(base::Hours(18));
 
   // Verify that no reboot is requested and the device does not reboot
   // immediately.
@@ -1215,18 +1212,18 @@
   // Set the uptime limit. Verify that a reboot is requested but the device does
   // not reboot immediately.
   ExpectRebootRequest(AutomaticRebootManagerObserver::REBOOT_REASON_PERIODIC);
-  SetUptimeLimit(base::TimeDelta::FromHours(12), false);
+  SetUptimeLimit(base::Hours(12), false);
 
   // Verify that a grace period has started.
   VerifyGracePeriod(uptime_limit_);
 
   // Fast forward the uptime by 20 seconds. Verify that the device does not
   // reboot immediately.
-  FastForwardBy(base::TimeDelta::FromSeconds(20), false);
+  FastForwardBy(base::Seconds(20), false);
 
   // Extend the uptime limit. Verify that the device does not reboot
   // immediately.
-  SetUptimeLimit(base::TimeDelta::FromHours(24), false);
+  SetUptimeLimit(base::Hours(24), false);
 
   // Verify that the grace period has been rescheduled to start in the future.
   VerifyGracePeriod(uptime_limit_);
@@ -1242,7 +1239,7 @@
 // Verifies that when the uptime limit is shortened to 6 hours, the grace period
 // is rescheduled to have already started.
 TEST_P(AutomaticRebootManagerTest, ShortenUptimeLimitBeforeToInGracePeriod) {
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(12));
+  uptime_provider()->SetUptime(base::Hours(12));
 
   // Verify that no reboot is requested and the device does not reboot
   // immediately.
@@ -1252,19 +1249,19 @@
 
   // Set the uptime limit. Verify that no reboot is requested and the device
   // does not reboot immediately.
-  SetUptimeLimit(base::TimeDelta::FromHours(18), false);
+  SetUptimeLimit(base::Hours(18), false);
 
   // Verify that a grace period has been scheduled to start in the future.
   VerifyGracePeriod(uptime_limit_);
 
   // Fast forward the uptime by 20 seconds. Verify that no reboot is requested
   // and the device does not reboot immediately.
-  FastForwardBy(base::TimeDelta::FromSeconds(20), false);
+  FastForwardBy(base::Seconds(20), false);
 
   // Shorten the uptime limit. Verify that a reboot is requested but the device
   // does not reboot immediately.
   ExpectRebootRequest(AutomaticRebootManagerObserver::REBOOT_REASON_PERIODIC);
-  SetUptimeLimit(base::TimeDelta::FromHours(6), false);
+  SetUptimeLimit(base::Hours(6), false);
 
   // Verify that the grace period has been rescheduled and has started already.
   VerifyGracePeriod(uptime_limit_);
@@ -1279,7 +1276,7 @@
 // Verifies that when the uptime limit is shortened to 18 hours, the grace
 // period is rescheduled to have started earlier.
 TEST_P(AutomaticRebootManagerTest, ShortenUptimeLimitInToInGracePeriod) {
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(36));
+  uptime_provider()->SetUptime(base::Hours(36));
 
   // Verify that no reboot is requested and the device does not reboot
   // immediately.
@@ -1290,19 +1287,19 @@
   // Set the uptime limit. Verify that a reboot is requested but the device does
   // not reboot immediately.
   ExpectRebootRequest(AutomaticRebootManagerObserver::REBOOT_REASON_PERIODIC);
-  SetUptimeLimit(base::TimeDelta::FromHours(24), false);
+  SetUptimeLimit(base::Hours(24), false);
 
   // Verify that a grace period has started.
   VerifyGracePeriod(uptime_limit_);
 
   // Fast forward the uptime by 20 seconds. Verify that the device does not
   // reboot immediately.
-  FastForwardBy(base::TimeDelta::FromSeconds(20), false);
+  FastForwardBy(base::Seconds(20), false);
 
   // Shorten the uptime limit. Verify that a reboot is requested again but the
   // device does not reboot immediately.
   ExpectRebootRequest(AutomaticRebootManagerObserver::REBOOT_REASON_PERIODIC);
-  SetUptimeLimit(base::TimeDelta::FromHours(18), false);
+  SetUptimeLimit(base::Hours(18), false);
 
   // Verify that the grace period has been rescheduled to have started earlier.
   VerifyGracePeriod(uptime_limit_);
@@ -1318,7 +1315,7 @@
 // reboots immediately if no non-kiosk-app session is in progress because the
 // grace period ended after 6 + 24 hours of uptime.
 TEST_P(AutomaticRebootManagerTest, ShortenUptimeLimitInToAfterGracePeriod) {
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(36));
+  uptime_provider()->SetUptime(base::Hours(36));
 
   // Verify that no reboot is requested and the device does not reboot
   // immediately.
@@ -1329,21 +1326,20 @@
   // Set the uptime limit. Verify that a reboot is requested but the device does
   // not reboot immediately.
   ExpectRebootRequest(AutomaticRebootManagerObserver::REBOOT_REASON_PERIODIC);
-  SetUptimeLimit(base::TimeDelta::FromHours(24), false);
+  SetUptimeLimit(base::Hours(24), false);
 
   // Verify that a grace period has started.
   VerifyGracePeriod(uptime_limit_);
 
   // Fast forward the uptime by 20 seconds. Verify that the device does not
   // reboot immediately.
-  FastForwardBy(base::TimeDelta::FromSeconds(20), false);
+  FastForwardBy(base::Seconds(20), false);
 
   // Shorten the uptime limit. Verify that a reboot is requested again and
   // unless a non-kiosk-app session is in progress, the the device immediately
   // reboots.
   ExpectRebootRequest(AutomaticRebootManagerObserver::REBOOT_REASON_PERIODIC);
-  SetUptimeLimit(base::TimeDelta::FromHours(6),
-                 !is_user_logged_in_ || is_kiosk_session());
+  SetUptimeLimit(base::Hours(6), !is_user_logged_in_ || is_kiosk_session());
 
   // Verify that if a non-kiosk-app session is in progress, the device never
   // reboots.
@@ -1356,7 +1352,7 @@
 // policy to automatically reboot after an update is not enabled, no reboot
 // occurs and no grace period is scheduled.
 TEST_P(AutomaticRebootManagerTest, UpdateNoPolicy) {
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(12));
+  uptime_provider()->SetUptime(base::Hours(12));
 
   // Verify that no reboot is requested and the device does not reboot
   // immediately.
@@ -1390,7 +1386,7 @@
 // policy to automatically reboot after an update is enabled, a reboot is
 // requested and a grace period is started that will end 24 hours from now.
 TEST_P(AutomaticRebootManagerTest, Update) {
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(12));
+  uptime_provider()->SetUptime(base::Hours(12));
   SetRebootAfterUpdate(true, false);
 
   // Verify that no reboot is requested and the device does not reboot
@@ -1426,7 +1422,7 @@
 // the second notification is ignored and the uptime at which it occurred does
 // not get persisted as the time at which an update became necessary.
 TEST_P(AutomaticRebootManagerTest, UpdateAfterUpdate) {
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(12));
+  uptime_provider()->SetUptime(base::Hours(12));
   SetRebootAfterUpdate(true, false);
 
   // Verify that no reboot is requested and the device does not reboot
@@ -1454,7 +1450,7 @@
 
   // Fast forward the uptime by 20 seconds. Verify that the device does not
   // reboot immediately.
-  FastForwardBy(base::TimeDelta::FromSeconds(20), false);
+  FastForwardBy(base::Seconds(20), false);
 
   // Notify that an update has been applied and a reboot is necessary. Verify
   // that the device does not reboot immediately.
@@ -1479,7 +1475,7 @@
 // the current uptime is persisted as the time at which a reboot became
 // necessary.
 TEST_P(AutomaticRebootManagerTest, UpdateBeforeMinimumUptime) {
-  uptime_provider()->SetUptime(base::TimeDelta::FromMinutes(10));
+  uptime_provider()->SetUptime(base::Minutes(10));
   SetRebootAfterUpdate(true, false);
 
   // Verify that no reboot is requested and the device does not reboot
@@ -1502,7 +1498,7 @@
   EXPECT_EQ(uptime_provider()->uptime(), update_reboot_needed_uptime_);
 
   // Verify that a grace period has been scheduled to begin in the future.
-  VerifyGracePeriod(base::TimeDelta::FromHours(1));
+  VerifyGracePeriod(base::Hours(1));
 
   // Verify that a reboot is requested eventually and unless a non-kiosk-app
   // session is in progress, the device eventually reboots.
@@ -1517,7 +1513,7 @@
 // enabled, a reboot is requested and a grace period is started that will end
 // after 6 + 24 hours of uptime.
 TEST_P(AutomaticRebootManagerTest, PolicyAfterUpdateInGracePeriod) {
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(6));
+  uptime_provider()->SetUptime(base::Hours(6));
 
   // Verify that no reboot is requested and the device does not reboot
   // immediately.
@@ -1531,7 +1527,7 @@
 
   // Fast forward the uptime to 12 hours. Verify that no reboot is requested and
   // the device does not reboot immediately.
-  FastForwardBy(base::TimeDelta::FromHours(6), false);
+  FastForwardBy(base::Hours(6), false);
 
   // Simulate user activity.
   automatic_reboot_manager_->OnUserActivity(NULL);
@@ -1542,7 +1538,7 @@
   SetRebootAfterUpdate(true, false);
 
   // Verify that a grace period has started.
-  VerifyGracePeriod(base::TimeDelta::FromHours(6) + uptime_processing_delay_);
+  VerifyGracePeriod(base::Hours(6) + uptime_processing_delay_);
 
   // Verify that unless a non-kiosk-app session is in progress, the device
   // eventually reboots.
@@ -1556,7 +1552,7 @@
 // enabled, the device reboots immediately if no non-kiosk-app session is in
 // progress because the grace period ended after 6 + 24 hours of uptime.
 TEST_P(AutomaticRebootManagerTest, PolicyAfterUpdateAfterGracePeriod) {
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(6));
+  uptime_provider()->SetUptime(base::Hours(6));
 
   // Verify that no reboot is requested and the device does not reboot
   // immediately.
@@ -1570,8 +1566,7 @@
 
   // Fast forward the uptime to 12 hours. Verify that no reboot is requested and
   // the device does not reboot immediately.
-  FastForwardBy(base::TimeDelta::FromDays(10) - base::TimeDelta::FromHours(6),
-                false);
+  FastForwardBy(base::Days(10) - base::Hours(6), false);
 
   // Simulate user activity.
   automatic_reboot_manager_->OnUserActivity(NULL);
@@ -1594,7 +1589,7 @@
 // Verifies that when the policy to automatically reboot after an update is
 // disabled, the reboot request and grace period are removed.
 TEST_P(AutomaticRebootManagerTest, PolicyOffAfterUpdate) {
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(6));
+  uptime_provider()->SetUptime(base::Hours(6));
   SetRebootAfterUpdate(true, false);
 
   // Verify that no reboot is requested and the device does not reboot
@@ -1613,7 +1608,7 @@
 
   // Fast forward the uptime by 20 seconds. Verify that the device does not
   // reboot immediately.
-  FastForwardBy(base::TimeDelta::FromSeconds(20), false);
+  FastForwardBy(base::Seconds(20), false);
 
   // Disable automatic rebooting after an update has been applied. Verify that
   // no reboot is requested and the device does not reboot immediately.
@@ -1640,7 +1635,7 @@
 
   // Set the uptime limit. Verify that no reboot is requested and the device
   // does not reboot immediately.
-  SetUptimeLimit(base::TimeDelta::FromHours(6), false);
+  SetUptimeLimit(base::Hours(6), false);
 
   // Verify that no grace period has started.
   VerifyNoGracePeriod();
@@ -1675,7 +1670,7 @@
 // that the current uptime is persisted as the time at which a reboot became
 // necessary.
 TEST_P(AutomaticRebootManagerTest, UptimeLimitBeforeUpdate) {
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(12));
+  uptime_provider()->SetUptime(base::Hours(12));
   SetRebootAfterUpdate(true, false);
 
   // Verify that no reboot is requested and the device does not reboot
@@ -1687,14 +1682,14 @@
   // Set the uptime limit. Verify that a reboot is requested but the device does
   // not reboot immediately.
   ExpectRebootRequest(AutomaticRebootManagerObserver::REBOOT_REASON_PERIODIC);
-  SetUptimeLimit(base::TimeDelta::FromHours(6), false);
+  SetUptimeLimit(base::Hours(6), false);
 
   // Verify that a grace period has been scheduled to start in the future.
   VerifyGracePeriod(uptime_limit_);
 
   // Fast forward the uptime by 20 seconds. Verify that the device does not
   // reboot immediately.
-  FastForwardBy(base::TimeDelta::FromSeconds(20), false);
+  FastForwardBy(base::Seconds(20), false);
 
   // Notify that an update has been applied and a reboot is necessary. Verify
   // that a reboot is requested again but the device does not reboot
@@ -1723,7 +1718,7 @@
 // from now. Further verifies that the current uptime is persisted as the time
 // at which a reboot became necessary.
 TEST_P(AutomaticRebootManagerTest, UpdateBeforeUptimeLimit) {
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(12));
+  uptime_provider()->SetUptime(base::Hours(12));
   SetRebootAfterUpdate(true, false);
 
   // Verify that no reboot is requested and the device does not reboot
@@ -1734,14 +1729,14 @@
 
   // Set the uptime limit. Verify that no reboot is requested and the device
   // does not reboot immediately.
-  SetUptimeLimit(base::TimeDelta::FromHours(24), false);
+  SetUptimeLimit(base::Hours(24), false);
 
   // Verify that a grace period has been scheduled to start in the future.
   VerifyGracePeriod(uptime_limit_);
 
   // Fast forward the uptime by 20 seconds. Verify that no reboot is requested
   // and the device does not reboot immediately.
-  FastForwardBy(base::TimeDelta::FromSeconds(20), false);
+  FastForwardBy(base::Seconds(20), false);
 
   // Notify that an update has been applied and a reboot is necessary. Verify
   // that a reboot is requested but the device does not reboot immediately.
@@ -1771,7 +1766,7 @@
 // grace period is rescheduled to start after 12 hours of uptime. Further
 // verifies that when the uptime limit is removed, the grace period is removed.
 TEST_P(AutomaticRebootManagerTest, PolicyOffThenUptimeLimitOff) {
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(12));
+  uptime_provider()->SetUptime(base::Hours(12));
   SetRebootAfterUpdate(true, false);
 
   // Verify that no reboot is requested and the device does not reboot
@@ -1782,7 +1777,7 @@
 
   // Set the uptime limit. Verify that no reboot is requested and the device
   // does not reboot immediately.
-  SetUptimeLimit(base::TimeDelta::FromHours(24), false);
+  SetUptimeLimit(base::Hours(24), false);
 
   // Verify that a grace period has been scheduled to start in the future.
   VerifyGracePeriod(uptime_limit_);
@@ -1803,7 +1798,7 @@
 
   // Fast forward the uptime by 20 seconds. Verify that the device does not
   // reboot immediately.
-  FastForwardBy(base::TimeDelta::FromSeconds(20), false);
+  FastForwardBy(base::Seconds(20), false);
 
   // Disable automatic reboot after an update has been applied. Verify that the
   // device does not reboot immediately.
@@ -1833,7 +1828,7 @@
 // when the policy to reboot after an update is disabled, the reboot request and
 // grace period are removed.
 TEST_P(AutomaticRebootManagerTest, UptimeLimitOffThenPolicyOff) {
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(12));
+  uptime_provider()->SetUptime(base::Hours(12));
   SetRebootAfterUpdate(true, false);
 
   // Verify that no reboot is requested and the device does not reboot
@@ -1859,7 +1854,7 @@
   // Set the uptime limit. Verify that a reboot is requested again but the
   // device does not reboot immediately.
   ExpectRebootRequest(AutomaticRebootManagerObserver::REBOOT_REASON_PERIODIC);
-  SetUptimeLimit(base::TimeDelta::FromHours(6), false);
+  SetUptimeLimit(base::Hours(6), false);
 
   // Verify that the grace period has been rescheduled to have started after
   // 6 hours of uptime.
@@ -1867,7 +1862,7 @@
 
   // Fast forward the uptime by 20 seconds. Verify that the device does not
   // reboot immediately.
-  FastForwardBy(base::TimeDelta::FromSeconds(20), false);
+  FastForwardBy(base::Seconds(20), false);
 
   // Remove the uptime limit. Verify that a reboot is requested again but the
   // device does not reboot immediately.
@@ -1894,9 +1889,8 @@
 // Verifies that if no non-kiosk-app session is in progress, the device reboots
 // immediately when the grace period ends after 6 + 24 hours of uptime.
 TEST_P(AutomaticRebootManagerTest, GracePeriodEnd) {
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(29) +
-                          base::TimeDelta::FromMinutes(59) +
-                          base::TimeDelta::FromSeconds(59));
+  uptime_provider()->SetUptime(base::Hours(29) + base::Minutes(59) +
+                               base::Seconds(59));
 
   // Verify that no reboot is requested and the device does not reboot
   // immediately.
@@ -1907,15 +1901,14 @@
   // Set the uptime limit. Verify that a reboot is requested but the device does
   // not reboot immediately.
   ExpectRebootRequest(AutomaticRebootManagerObserver::REBOOT_REASON_PERIODIC);
-  SetUptimeLimit(base::TimeDelta::FromHours(6), false);
+  SetUptimeLimit(base::Hours(6), false);
 
   // Verify that a grace period has started.
   VerifyGracePeriod(uptime_limit_);
 
   // Fast forward the uptime by 1 second. Verify that unless a non-kiosk-app
   // session is in progress, the the device immediately reboots.
-  FastForwardBy(base::TimeDelta::FromSeconds(1),
-                !is_user_logged_in_ || is_kiosk_session());
+  FastForwardBy(base::Seconds(1), !is_user_logged_in_ || is_kiosk_session());
 
   // Verify that if a non-kiosk-app session is in progress, the device never
   // reboots.
@@ -1926,7 +1919,7 @@
 // Verifies that when no automatic reboot policy is enabled, no reboot occurs
 // and no grace period is scheduled.
 TEST_P(AutomaticRebootManagerTest, StartNoPolicy) {
-  uptime_provider()->SetUptime(base::TimeDelta::FromDays(10));
+  uptime_provider()->SetUptime(base::Days(10));
 
   // Verify that no reboot is requested and the device does not reboot
   // immediately.
@@ -1946,8 +1939,8 @@
 // Verifies that no reboot occurs and a grace period is scheduled to begin after
 // 24 hours of uptime.
 TEST_P(AutomaticRebootManagerTest, StartBeforeUptimeLimitGracePeriod) {
-  SetUptimeLimit(base::TimeDelta::FromHours(24), false);
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(12));
+  SetUptimeLimit(base::Hours(24), false);
+  uptime_provider()->SetUptime(base::Hours(12));
 
   // Verify that no reboot is requested and the device does not reboot
   // immediately.
@@ -1969,8 +1962,8 @@
 // Verifies that if no non-kiosk-app session is in progress, the device reboots
 // immediately because the grace period ended after 6 + 24 hours of uptime.
 TEST_P(AutomaticRebootManagerTest, StartAfterUptimeLimitGracePeriod) {
-  SetUptimeLimit(base::TimeDelta::FromHours(6), false);
-  uptime_provider()->SetUptime(base::TimeDelta::FromDays(10));
+  SetUptimeLimit(base::Hours(6), false);
+  uptime_provider()->SetUptime(base::Days(10));
 
   // Verify that a reboot is requested and unless a non-kiosk-app session is in
   // progress, the the device immediately reboots.
@@ -1988,8 +1981,8 @@
 // Verifies that a reboot is requested and a grace period is started that will
 // end after 6 + 24 hours of uptime.
 TEST_P(AutomaticRebootManagerTest, StartInUptimeLimitGracePeriod) {
-  SetUptimeLimit(base::TimeDelta::FromHours(6), false);
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(12));
+  SetUptimeLimit(base::Hours(6), false);
+  uptime_provider()->SetUptime(base::Hours(12));
 
   // Verify that a reboot is requested but the device does not reboot
   // immediately.
@@ -2013,8 +2006,8 @@
 // progress because the grace period ended after 6 + 24 hours of uptime.
 TEST_P(AutomaticRebootManagerTest, StartAfterUpdateGracePeriod) {
   SetUpdateStatusNeedReboot();
-  SetUpdateRebootNeededUptime(base::TimeDelta::FromHours(6));
-  uptime_provider()->SetUptime(base::TimeDelta::FromDays(10));
+  SetUpdateRebootNeededUptime(base::Hours(6));
+  uptime_provider()->SetUptime(base::Days(10));
   SetRebootAfterUpdate(true, false);
 
   // Verify that a reboot is requested and unless a non-kiosk-app session is in
@@ -2037,8 +2030,8 @@
 // after 6 + 24 hours of uptime.
 TEST_P(AutomaticRebootManagerTest, StartInUpdateGracePeriod) {
   SetUpdateStatusNeedReboot();
-  SetUpdateRebootNeededUptime(base::TimeDelta::FromHours(6));
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(12));
+  SetUpdateRebootNeededUptime(base::Hours(6));
+  uptime_provider()->SetUptime(base::Hours(12));
   SetRebootAfterUpdate(true, false);
 
   // Verify that a reboot is requested but the device does not reboot
@@ -2064,8 +2057,8 @@
 // minimum of 1 hour of uptime.
 TEST_P(AutomaticRebootManagerTest, StartBeforeUpdateGracePeriod) {
   SetUpdateStatusNeedReboot();
-  SetUpdateRebootNeededUptime(base::TimeDelta::FromMinutes(10));
-  uptime_provider()->SetUptime(base::TimeDelta::FromMinutes(20));
+  SetUpdateRebootNeededUptime(base::Minutes(10));
+  uptime_provider()->SetUptime(base::Minutes(20));
   SetRebootAfterUpdate(true, false);
 
   // Verify that no reboot is requested and the device does not reboot
@@ -2075,7 +2068,7 @@
   VerifyNoRebootRequested();
 
   // Verify that a grace period has been scheduled to start in the future.
-  VerifyGracePeriod(base::TimeDelta::FromHours(1));
+  VerifyGracePeriod(base::Hours(1));
 
   // Verify that a reboot is requested eventually and unless a non-kiosk-app
   // session is in progress, the device eventually reboots.
@@ -2090,8 +2083,8 @@
 // enabled, no reboot occurs and no grace period is scheduled.
 TEST_P(AutomaticRebootManagerTest, StartUpdateNoPolicy) {
   SetUpdateStatusNeedReboot();
-  SetUpdateRebootNeededUptime(base::TimeDelta::FromHours(6));
-  uptime_provider()->SetUptime(base::TimeDelta::FromDays(10));
+  SetUpdateRebootNeededUptime(base::Hours(6));
+  uptime_provider()->SetUptime(base::Days(10));
 
   // Verify that no reboot is requested and the device does not reboot
   // immediately.
@@ -2115,7 +2108,7 @@
 // is started that will end 24 hours from now.
 TEST_P(AutomaticRebootManagerTest, StartUpdateTimeLost) {
   SetUpdateStatusNeedReboot();
-  uptime_provider()->SetUptime(base::TimeDelta::FromDays(10));
+  uptime_provider()->SetUptime(base::Days(10));
   SetRebootAfterUpdate(true, false);
 
   // Verify that a reboot is requested but the device does not reboot
@@ -2148,7 +2141,7 @@
 // is scheduled.
 TEST_P(AutomaticRebootManagerTest, StartUpdateNoPolicyTimeLost) {
   SetUpdateStatusNeedReboot();
-  uptime_provider()->SetUptime(base::TimeDelta::FromDays(10));
+  uptime_provider()->SetUptime(base::Days(10));
 
   // Verify that no reboot is requested and the device does not reboot
   // immediately.
@@ -2175,7 +2168,7 @@
 // necessary. Further verifies that no reboot occurs and no grace period is
 // scheduled.
 TEST_P(AutomaticRebootManagerTest, StartNoUpdate) {
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(12));
+  uptime_provider()->SetUptime(base::Hours(12));
   SetRebootAfterUpdate(true, false);
 
   // Verify that no reboot is requested and the device does not reboot
@@ -2203,10 +2196,10 @@
 // enabled, a reboot is requested and a grace period is started that will end
 // after 6 + 24 hours of uptime.
 TEST_P(AutomaticRebootManagerTest, StartUptimeLimitBeforeUpdate) {
-  SetUptimeLimit(base::TimeDelta::FromHours(6), false);
+  SetUptimeLimit(base::Hours(6), false);
   SetUpdateStatusNeedReboot();
-  SetUpdateRebootNeededUptime(base::TimeDelta::FromHours(8));
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(12));
+  SetUpdateRebootNeededUptime(base::Hours(8));
+  uptime_provider()->SetUptime(base::Hours(12));
   SetRebootAfterUpdate(true, false);
 
   // Verify that a reboot is requested but the device does not reboot
@@ -2230,10 +2223,10 @@
 // enabled, a reboot is requested and a grace period is started that will end
 // after 6 + 24 hours of uptime.
 TEST_P(AutomaticRebootManagerTest, StartUpdateBeforeUptimeLimit) {
-  SetUptimeLimit(base::TimeDelta::FromHours(8), false);
+  SetUptimeLimit(base::Hours(8), false);
   SetUpdateStatusNeedReboot();
-  SetUpdateRebootNeededUptime(base::TimeDelta::FromHours(6));
-  uptime_provider()->SetUptime(base::TimeDelta::FromHours(12));
+  SetUpdateRebootNeededUptime(base::Hours(6));
+  uptime_provider()->SetUptime(base::Hours(12));
   SetRebootAfterUpdate(true, false);
 
   // Verify that a reboot is requested but the device does not reboot
@@ -2257,9 +2250,9 @@
 // Verifies that even if the policy to automatically reboot after an update is
 // enabled, no reboot occurs and no grace period is scheduled.
 TEST_P(AutomaticRebootManagerTest, StartNoUptime) {
-  SetUptimeLimit(base::TimeDelta::FromHours(6), false);
+  SetUptimeLimit(base::Hours(6), false);
   SetUpdateStatusNeedReboot();
-  SetUpdateRebootNeededUptime(base::TimeDelta::FromHours(6));
+  SetUpdateRebootNeededUptime(base::Hours(6));
   SetRebootAfterUpdate(true, false);
 
   // Verify that no reboot is requested and the device does not reboot
diff --git a/chrome/browser/ash/system/device_disabling_browsertest.cc b/chrome/browser/ash/system/device_disabling_browsertest.cc
index b2f4529..80d8e91 100644
--- a/chrome/browser/ash/system/device_disabling_browsertest.cc
+++ b/chrome/browser/ash/system/device_disabling_browsertest.cc
@@ -197,8 +197,7 @@
   SigninScreenHandler* const signin_screen_handler =
       oobe_ui->signin_screen_handler();
   ASSERT_TRUE(signin_screen_handler);
-  signin_screen_handler->SetOfflineTimeoutForTesting(
-      base::TimeDelta::FromSeconds(0));
+  signin_screen_handler->SetOfflineTimeoutForTesting(base::Seconds(0));
   network_portal_detector_.SimulateDefaultNetworkState(
       NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_OFFLINE);
   network_state_change_wait_run_loop_->Run();
diff --git a/chrome/browser/ash/system/user_removal_manager.cc b/chrome/browser/ash/system/user_removal_manager.cc
index 7e6e22b..804b5f1f 100644
--- a/chrome/browser/ash/system/user_removal_manager.cc
+++ b/chrome/browser/ash/system/user_removal_manager.cc
@@ -28,8 +28,7 @@
 
 // The time that InitiateUserRemoval waits on the passed callback to do a log
 // out, otherwise it does the log out itself.
-constexpr base::TimeDelta kFailsafeTimerTimeout =
-    base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kFailsafeTimerTimeout = base::Seconds(60);
 
 // Override for the LogOut function inside of tests.
 base::OnceClosure& GetLogOutOverrideCallbackForTest() {
diff --git a/chrome/browser/ash/system/user_removal_manager_unittest.cc b/chrome/browser/ash/system/user_removal_manager_unittest.cc
index 3178a7e3..550fe27 100644
--- a/chrome/browser/ash/system/user_removal_manager_unittest.cc
+++ b/chrome/browser/ash/system/user_removal_manager_unittest.cc
@@ -88,11 +88,11 @@
   user_removal_manager::InitiateUserRemoval(base::OnceClosure());
 
   // After 55s the timer is not run yet.
-  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(55));
+  task_runner_->FastForwardBy(base::Seconds(55));
   EXPECT_FALSE(log_out_called);
 
   // After 60s the timer is run.
-  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_runner_->FastForwardBy(base::Seconds(5));
   EXPECT_TRUE(log_out_called);
 }
 
diff --git a/chrome/browser/ash/tether/tether_service.cc b/chrome/browser/ash/tether/tether_service.cc
index 56d9b017..51787f6e 100644
--- a/chrome/browser/ash/tether/tether_service.cc
+++ b/chrome/browser/ash/tether/tether_service.cc
@@ -638,8 +638,7 @@
   // recorded. |kMetricFalsePositiveSeconds| is chosen such that it is long
   // enough that we can assume a false positive did not occur and that the
   // metric value is actually correct.
-  timer_->Start(FROM_HERE,
-                base::TimeDelta::FromSeconds(kMetricFalsePositiveSeconds),
+  timer_->Start(FROM_HERE, base::Seconds(kMetricFalsePositiveSeconds),
                 base::BindOnce(&TetherService::RecordTetherFeatureState,
                                weak_ptr_factory_.GetWeakPtr()));
 
diff --git a/chrome/browser/ash/web_applications/media_app/media_app_integration_browsertest.cc b/chrome/browser/ash/web_applications/media_app/media_app_integration_browsertest.cc
index c73001c..218fc466 100644
--- a/chrome/browser/ash/web_applications/media_app/media_app_integration_browsertest.cc
+++ b/chrome/browser/ash/web_applications/media_app/media_app_integration_browsertest.cc
@@ -355,8 +355,7 @@
   const auto kTestFile = folder.files()[0];
   // Stamp the file with a time far in the past, so it can be "updated".
   // Note: Add a bit to the epoch to workaround https://crbug.com/1080434.
-  TouchFileSync(kTestFile,
-                base::Time::UnixEpoch() + base::TimeDelta::FromDays(1));
+  TouchFileSync(kTestFile, base::Time::UnixEpoch() + base::Days(1));
 
   folder.Open(kTestFile);
   content::WebContents* app = PrepareActiveBrowserForTest();
@@ -692,8 +691,7 @@
 
   // Stamp the file with a time far in the past, so it can be "updated".
   // Note: Add a bit to the epoch to workaround https://crbug.com/1080434.
-  TouchFileSync(copied_jpeg_640x480,
-                base::Time::UnixEpoch() + base::TimeDelta::FromDays(1));
+  TouchFileSync(copied_jpeg_640x480, base::Time::UnixEpoch() + base::Days(1));
 
   // Sent an open request using only the 640x480 JPEG file.
   folder.Open(copied_jpeg_640x480);
diff --git a/chrome/browser/ash/web_applications/sample_system_web_app_info.cc b/chrome/browser/ash/web_applications/sample_system_web_app_info.cc
index 5c5f15a0..129accc 100644
--- a/chrome/browser/ash/web_applications/sample_system_web_app_info.cc
+++ b/chrome/browser/ash/web_applications/sample_system_web_app_info.cc
@@ -73,6 +73,5 @@
 absl::optional<web_app::SystemAppBackgroundTaskInfo>
 SampleSystemAppDelegate::GetTimerInfo() const {
   return web_app::SystemAppBackgroundTaskInfo(
-      base::TimeDelta::FromSeconds(30),
-      GURL("chrome://sample-system-web-app/timer.html"));
+      base::Seconds(30), GURL("chrome://sample-system-web-app/timer.html"));
 }
diff --git a/chrome/browser/ash/wilco_dtc_supportd/wilco_dtc_supportd_bridge.cc b/chrome/browser/ash/wilco_dtc_supportd/wilco_dtc_supportd_bridge.cc
index 6fa18819..6c8450d1 100644
--- a/chrome/browser/ash/wilco_dtc_supportd/wilco_dtc_supportd_bridge.cc
+++ b/chrome/browser/ash/wilco_dtc_supportd/wilco_dtc_supportd_bridge.cc
@@ -39,8 +39,7 @@
 // Interval used between successive connection attempts to the
 // wilco_dtc_supportd. This is a safety measure for avoiding busy loops when the
 // wilco_dtc_supportd is dysfunctional.
-constexpr base::TimeDelta kConnectionAttemptInterval =
-    base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kConnectionAttemptInterval = base::Seconds(1);
 // The maximum number of consecutive connection attempts to the
 // wilco_dtc_supportd before giving up. This is to prevent wasting system
 // resources on hopeless attempts to connect in cases when the
diff --git a/chrome/browser/autocomplete/search_provider_unittest.cc b/chrome/browser/autocomplete/search_provider_unittest.cc
index 93f4067..da8f9ddee 100644
--- a/chrome/browser/autocomplete/search_provider_unittest.cc
+++ b/chrome/browser/autocomplete/search_provider_unittest.cc
@@ -538,8 +538,8 @@
       TemplateURLServiceFactory::GetForProfile(profile_.get())
           ->search_terms_data()));
   static base::Time last_added_time;
-  last_added_time = std::max(base::Time::Now(),
-      last_added_time + base::TimeDelta::FromMicroseconds(1));
+  last_added_time =
+      std::max(base::Time::Now(), last_added_time + base::Microseconds(1));
   history->AddPageWithDetails(search, std::u16string(), visit_count,
                               visit_count, last_added_time, false,
                               history::SOURCE_BROWSED);
diff --git a/chrome/browser/autofill/autofill_autocomplete_browsertest.cc b/chrome/browser/autofill/autofill_autocomplete_browsertest.cc
index 291a53f..8681dba 100644
--- a/chrome/browser/autofill/autofill_autocomplete_browsertest.cc
+++ b/chrome/browser/autofill/autofill_autocomplete_browsertest.cc
@@ -284,7 +284,7 @@
   // Go back in time, far enough so that we'll expire the entry.
   TestAutofillClock test_clock;
   base::TimeDelta days_delta =
-      base::TimeDelta::FromDays(2 * kAutocompleteRetentionPolicyPeriodInDays);
+      base::Days(2 * kAutocompleteRetentionPolicyPeriodInDays);
   test_clock.SetNow(AutofillClock::Now() - days_delta);
 
   // Add an entry.
@@ -318,7 +318,7 @@
   // Go back in time, but not far enough so that we'd expire the entry.
   TestAutofillClock test_clock;
   base::TimeDelta days_delta =
-      base::TimeDelta::FromDays(kAutocompleteRetentionPolicyPeriodInDays - 2);
+      base::Days(kAutocompleteRetentionPolicyPeriodInDays - 2);
   test_clock.SetNow(AutofillClock::Now() - days_delta);
 
   // Add an entry.
diff --git a/chrome/browser/autofill/autofill_captured_sites_interactive_uitest.cc b/chrome/browser/autofill/autofill_captured_sites_interactive_uitest.cc
index 64ff0dd3..6e3d6ff 100644
--- a/chrome/browser/autofill/autofill_captured_sites_interactive_uitest.cc
+++ b/chrome/browser/autofill/autofill_captured_sites_interactive_uitest.cc
@@ -54,8 +54,7 @@
 
 namespace {
 
-const base::TimeDelta autofill_wait_for_action_interval =
-    base::TimeDelta::FromSeconds(5);
+const base::TimeDelta autofill_wait_for_action_interval = base::Seconds(5);
 
 base::FilePath GetReplayFilesRootDirectory() {
   base::FilePath src_dir;
diff --git a/chrome/browser/autofill/autofill_interactive_uitest.cc b/chrome/browser/autofill/autofill_interactive_uitest.cc
index bebeb43..0497a349 100644
--- a/chrome/browser/autofill/autofill_interactive_uitest.cc
+++ b/chrome/browser/autofill/autofill_interactive_uitest.cc
@@ -2156,7 +2156,7 @@
 
   // Now click it.
   test_delegate()->SetExpectations({ObservedUiEvents::kSuggestionShown},
-                                   base::TimeDelta::FromSeconds(3));
+                                   base::Seconds(3));
   ASSERT_NO_FATAL_FAILURE(ClickElementWithId("company"));
 
   test_delegate()->Wait();
diff --git a/chrome/browser/autofill/autofill_uitest.cc b/chrome/browser/autofill/autofill_uitest.cc
index 9731ad78..3ccc327e 100644
--- a/chrome/browser/autofill/autofill_uitest.cc
+++ b/chrome/browser/autofill/autofill_uitest.cc
@@ -207,7 +207,7 @@
 
 void AutofillUiTest::DoNothingAndWait(unsigned seconds) {
   test_delegate()->SetExpectations({ObservedUiEvents::kNoEvent},
-                                   base::TimeDelta::FromSeconds(seconds));
+                                   base::Seconds(seconds));
   ASSERT_FALSE(test_delegate()->Wait());
 }
 
diff --git a/chrome/browser/autofill/autofill_uitest.h b/chrome/browser/autofill/autofill_uitest.h
index 6471053..f5af9158 100644
--- a/chrome/browser/autofill/autofill_uitest.h
+++ b/chrome/browser/autofill/autofill_uitest.h
@@ -54,9 +54,8 @@
   void DidShowSuggestions() override;
   void OnTextFieldChanged() override;
 
-  void SetExpectations(
-      std::list<ObservedUiEvents> expected_events,
-      base::TimeDelta timeout = base::TimeDelta::FromSeconds(0));
+  void SetExpectations(std::list<ObservedUiEvents> expected_events,
+                       base::TimeDelta timeout = base::Seconds(0));
   bool Wait();
 
   void SetIsExpectingDynamicRefill(bool expect_refill) {
diff --git a/chrome/browser/autofill/captured_sites_test_utils.cc b/chrome/browser/autofill/captured_sites_test_utils.cc
index 197db91..9393fc2 100644
--- a/chrome/browser/autofill/captured_sites_test_utils.cc
+++ b/chrome/browser/autofill/captured_sites_test_utils.cc
@@ -63,7 +63,7 @@
 
 // The maximum amount of time to wait for Chrome to finish autofilling a form.
 const base::TimeDelta kAutofillActionWaitForVisualUpdateTimeout =
-    base::TimeDelta::FromSeconds(3);
+    base::Seconds(3);
 
 // The number of tries the TestRecipeReplayer should perform when executing an
 // Chrome Autofill action.
@@ -732,8 +732,7 @@
   // process output to determine when the server is ready
   base::RunLoop wpr_launch_waiter;
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, wpr_launch_waiter.QuitClosure(),
-      base::TimeDelta::FromSeconds(5));
+      FROM_HERE, wpr_launch_waiter.QuitClosure(), base::Seconds(5));
   wpr_launch_waiter.Run();
 
   if (!web_page_replay_server_.IsValid()) {
@@ -927,8 +926,7 @@
         while (!thread_finished) {
           base::RunLoop run_loop;
           base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-              FROM_HERE, run_loop.QuitClosure(),
-              base::TimeDelta::FromMilliseconds(1000));
+              FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(1000));
           run_loop.Run();
         }
       }
@@ -1178,7 +1176,7 @@
       return false;
     }
     int seconds = pause_time_container_iter->second.GetInt();
-    cool_off_time = base::TimeDelta::FromSeconds(seconds);
+    cool_off_time = base::Seconds(seconds);
   }
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE, heart_beat.QuitClosure(), cool_off_time);
diff --git a/chrome/browser/autofill/captured_sites_test_utils.h b/chrome/browser/autofill/captured_sites_test_utils.h
index f59b5063..d65bf26 100644
--- a/chrome/browser/autofill/captured_sites_test_utils.h
+++ b/chrome/browser/autofill/captured_sites_test_utils.h
@@ -37,24 +37,23 @@
 //    timer) that causes the RenderFrameHost count to never diminish completely.
 //    Test should stop waiting if a sufficiently large time has expired for the
 //    page to load or for the page to respond to the last user action.
-const base::TimeDelta default_action_timeout = base::TimeDelta::FromSeconds(30);
+const base::TimeDelta default_action_timeout = base::Seconds(30);
 // The amount of time to wait for a page to trigger a paint in response to a
 // an action. The Captured Site Automation Framework uses this timeout to
 // break out of a wait loop after a hover action.
-const base::TimeDelta visual_update_timeout = base::TimeDelta::FromSeconds(20);
+const base::TimeDelta visual_update_timeout = base::Seconds(20);
 // The amount of time to do a precheck on the page before going to a click
 // fallback action.
-const base::TimeDelta click_fallback_timeout = base::TimeDelta::FromSeconds(5);
+const base::TimeDelta click_fallback_timeout = base::Seconds(5);
 // When we cause a scroll event, make sure we give the page a moment to react
 // before continuing.
-const base::TimeDelta scroll_wait_timeout = base::TimeDelta::FromSeconds(2);
+const base::TimeDelta scroll_wait_timeout = base::Seconds(2);
 // Some times, tests tend to need a break that can't be read from the elements
 // play status.
-const base::TimeDelta cool_off_action_timeout = base::TimeDelta::FromSeconds(1);
+const base::TimeDelta cool_off_action_timeout = base::Seconds(1);
 // The time to wait between checks for a page to become idle or active based on
 // the loading status and then the render frame count.
-const base::TimeDelta wait_for_idle_loop_length =
-    base::TimeDelta::FromMilliseconds(500);
+const base::TimeDelta wait_for_idle_loop_length = base::Milliseconds(500);
 
 std::string FilePathToUTF8(const base::FilePath::StringType& str);
 
@@ -265,7 +264,7 @@
   bool RunWebPageReplayCmdAndWaitForExit(
       const std::string& cmd,
       const std::vector<std::string>& args,
-      const base::TimeDelta& timeout = base::TimeDelta::FromSeconds(5));
+      const base::TimeDelta& timeout = base::Seconds(5));
   bool RunWebPageReplayCmd(const std::string& cmd,
                            const std::vector<std::string>& args,
                            base::Process* process);
diff --git a/chrome/browser/availability/availability_prober.cc b/chrome/browser/availability/availability_prober.cc
index ca9405223..390fb038 100644
--- a/chrome/browser/availability/availability_prober.cc
+++ b/chrome/browser/availability/availability_prober.cc
@@ -167,7 +167,7 @@
 base::Time LastModifiedTimeFromCacheEntry(
     const AvailabilityProberCacheEntry& entry) {
   return base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(entry.last_modified()));
+      base::Microseconds(entry.last_modified()));
 }
 
 void RemoveOldestDictionaryEntry(base::DictionaryValue* dict) {
@@ -552,9 +552,9 @@
     base::TimeDelta active_time = clock_->Now() - time_when_set_active_.value();
     base::Histogram::FactoryTimeGet(
         AppendNameToHistogram(kTimeUntilFailure),
-        base::TimeDelta::FromMilliseconds(0) /* minimum */,
-        base::TimeDelta::FromMilliseconds(60000) /* maximum */,
-        50 /* bucket_count */, base::HistogramBase::kUmaTargetedHistogramFlag)
+        base::Milliseconds(0) /* minimum */,
+        base::Milliseconds(60000) /* maximum */, 50 /* bucket_count */,
+        base::HistogramBase::kUmaTargetedHistogramFlag)
         ->Add(active_time.InMilliseconds());
   }
 
@@ -597,9 +597,9 @@
     base::TimeDelta active_time = clock_->Now() - time_when_set_active_.value();
     base::Histogram::FactoryTimeGet(
         AppendNameToHistogram(kTimeUntilSuccess),
-        base::TimeDelta::FromMilliseconds(0) /* minimum */,
-        base::TimeDelta::FromMilliseconds(30000) /* maximum */,
-        50 /* bucket_count */, base::HistogramBase::kUmaTargetedHistogramFlag)
+        base::Milliseconds(0) /* minimum */,
+        base::Milliseconds(30000) /* maximum */, 50 /* bucket_count */,
+        base::HistogramBase::kUmaTargetedHistogramFlag)
         ->Add(active_time.InMilliseconds());
   }
 
@@ -625,9 +625,8 @@
 
   base::LinearHistogram::FactoryTimeGet(
       AppendNameToHistogram(kCacheEntryAgeHistogram),
-      base::TimeDelta::FromHours(0) /* minimum */,
-      base::TimeDelta::FromHours(72) /* maximum */, 50 /* bucket_count */,
-      base::HistogramBase::kUmaTargetedHistogramFlag)
+      base::Hours(0) /* minimum */, base::Hours(72) /* maximum */,
+      50 /* bucket_count */, base::HistogramBase::kUmaTargetedHistogramFlag)
       ->Add(cache_entry_age.InHours());
 
   // Check if the cache entry should be revalidated because it has expired or
diff --git a/chrome/browser/availability/availability_prober.h b/chrome/browser/availability/availability_prober.h
index 8e771d0..0ad82ae 100644
--- a/chrome/browser/availability/availability_prober.h
+++ b/chrome/browser/availability/availability_prober.h
@@ -136,7 +136,7 @@
     //   LINEAR: Each probe times out in |base_timeout|.
     //   EXPONENTIAL: Each probe times out in
     //                (|base_timeout| * 2 ^ |successive_timeout_count_|).
-    base::TimeDelta base_timeout = base::TimeDelta::FromSeconds(60);
+    base::TimeDelta base_timeout = base::Seconds(60);
   };
 
   enum class HttpMethod {
diff --git a/chrome/browser/availability/availability_prober_browsertest.cc b/chrome/browser/availability/availability_prober_browsertest.cc
index b524068..75fd9be9 100644
--- a/chrome/browser/availability/availability_prober_browsertest.cc
+++ b/chrome/browser/availability/availability_prober_browsertest.cc
@@ -129,8 +129,7 @@
       browser()->profile()->GetPrefs(),
       AvailabilityProber::ClientName::kIsolatedPrerenderOriginCheck, url,
       AvailabilityProber::HttpMethod::kGet, headers, retry_policy,
-      timeout_policy, TRAFFIC_ANNOTATION_FOR_TESTS, 1,
-      base::TimeDelta::FromDays(1));
+      timeout_policy, TRAFFIC_ANNOTATION_FOR_TESTS, 1, base::Days(1));
   prober.SendNowIfInactive(false);
   WaitForCompletedProbe(&prober);
 
@@ -146,15 +145,14 @@
   retry_policy.max_retries = 0;
 
   AvailabilityProber::TimeoutPolicy timeout_policy;
-  timeout_policy.base_timeout = base::TimeDelta::FromMilliseconds(1);
+  timeout_policy.base_timeout = base::Milliseconds(1);
 
   AvailabilityProber prober(
       &delegate, browser()->profile()->GetURLLoaderFactory(),
       browser()->profile()->GetPrefs(),
       AvailabilityProber::ClientName::kIsolatedPrerenderOriginCheck, url,
       AvailabilityProber::HttpMethod::kGet, headers, retry_policy,
-      timeout_policy, TRAFFIC_ANNOTATION_FOR_TESTS, 1,
-      base::TimeDelta::FromDays(1));
+      timeout_policy, TRAFFIC_ANNOTATION_FOR_TESTS, 1, base::Days(1));
   prober.SendNowIfInactive(false);
   WaitForCompletedProbe(&prober);
 
@@ -176,8 +174,7 @@
       browser()->profile()->GetPrefs(),
       AvailabilityProber::ClientName::kIsolatedPrerenderOriginCheck, url,
       AvailabilityProber::HttpMethod::kGet, headers, retry_policy,
-      timeout_policy, TRAFFIC_ANNOTATION_FOR_TESTS, 1,
-      base::TimeDelta::FromDays(1));
+      timeout_policy, TRAFFIC_ANNOTATION_FOR_TESTS, 1, base::Days(1));
 
   content::NetworkConnectionChangeSimulator().SetConnectionType(
       network::mojom::ConnectionType::CONNECTION_4G);
@@ -198,8 +195,7 @@
       browser()->profile()->GetPrefs(),
       AvailabilityProber::ClientName::kIsolatedPrerenderOriginCheck, url,
       AvailabilityProber::HttpMethod::kGet, headers, retry_policy,
-      timeout_policy, TRAFFIC_ANNOTATION_FOR_TESTS, 1,
-      base::TimeDelta::FromDays(1));
+      timeout_policy, TRAFFIC_ANNOTATION_FOR_TESTS, 1, base::Days(1));
   prober.SendNowIfInactive(false);
   WaitForCompletedProbe(&prober);
 
diff --git a/chrome/browser/availability/availability_prober_unittest.cc b/chrome/browser/availability/availability_prober_unittest.cc
index 217b5800..9f0dbd9 100644
--- a/chrome/browser/availability/availability_prober_unittest.cc
+++ b/chrome/browser/availability/availability_prober_unittest.cc
@@ -27,7 +27,7 @@
 
 namespace {
 
-const base::TimeDelta kCacheRevalidateAfter = base::TimeDelta::FromDays(1);
+const base::TimeDelta kCacheRevalidateAfter = base::Days(1);
 
 }  // namespace
 
@@ -333,7 +333,7 @@
   EXPECT_TRUE(prober->LastProbeWasSuccessful().value());
   EXPECT_FALSE(prober->is_active());
 
-  FastForward(base::TimeDelta::FromSeconds(1));
+  FastForward(base::Seconds(1));
 
   // Change the connection type and report a new probe result.
   network::TestNetworkConnectionTracker::GetInstance()->SetConnectionType(
@@ -347,7 +347,7 @@
   MakeResponseAndWait(net::HTTP_OK, net::OK);
   EXPECT_TRUE(prober->LastProbeWasSuccessful().value());
 
-  FastForward(base::TimeDelta::FromSeconds(1));
+  FastForward(base::Seconds(1));
 
   // Then, flip back to the original connection type. The old probe status
   // should not be persisted since the max cache size for testing is 1.
@@ -370,12 +370,12 @@
   EXPECT_FALSE(prober->is_active());
 
   // Fast forward until just before revalidation time.
-  FastForward(kCacheRevalidateAfter - base::TimeDelta::FromSeconds(1));
+  FastForward(kCacheRevalidateAfter - base::Seconds(1));
   EXPECT_TRUE(prober->LastProbeWasSuccessful().value());
   EXPECT_FALSE(prober->is_active());
 
   // Fast forward the rest of the way and check the prober is active again.
-  FastForward(base::TimeDelta::FromSeconds(1));
+  FastForward(base::Seconds(1));
   EXPECT_TRUE(prober->LastProbeWasSuccessful().value());
   EXPECT_TRUE(prober->is_active());
 }
@@ -517,7 +517,7 @@
   prober->SendNowIfInactive(false);
   VerifyRequest();
 
-  FastForward(base::TimeDelta::FromMilliseconds(11000));
+  FastForward(base::Milliseconds(11000));
 
   MakeResponseAndWait(net::HTTP_OK, net::OK);
   EXPECT_TRUE(prober->LastProbeWasSuccessful().value());
@@ -543,7 +543,7 @@
   prober->SendNowIfInactive(false);
   VerifyRequest();
 
-  FastForward(base::TimeDelta::FromMilliseconds(11000));
+  FastForward(base::Milliseconds(11000));
 
   MakeResponseAndWait(net::HTTP_OK, net::ERR_FAILED);
   EXPECT_FALSE(prober->LastProbeWasSuccessful().value());
@@ -578,7 +578,7 @@
   AvailabilityProber::RetryPolicy retry_policy;
   retry_policy.max_retries = 2;
   retry_policy.backoff = AvailabilityProber::Backoff::kLinear;
-  retry_policy.base_interval = base::TimeDelta::FromMilliseconds(1000);
+  retry_policy.base_interval = base::Milliseconds(1000);
 
   std::unique_ptr<AvailabilityProber> prober =
       NewProberWithRetryPolicy(retry_policy);
@@ -596,9 +596,9 @@
       "Availability.Prober.FinalState.IsolatedPrerenderOriginCheck", 0);
 
   // First retry.
-  FastForward(base::TimeDelta::FromMilliseconds(999));
+  FastForward(base::Milliseconds(999));
   VerifyNoRequests();
-  FastForward(base::TimeDelta::FromMilliseconds(1));
+  FastForward(base::Milliseconds(1));
   VerifyRequest();
   MakeResponseAndWait(net::HTTP_OK, net::ERR_FAILED);
   EXPECT_FALSE(prober->LastProbeWasSuccessful().value());
@@ -610,9 +610,9 @@
       "Availability.Prober.FinalState.IsolatedPrerenderOriginCheck", 0);
 
   // Second retry should be another 1000ms later and be the final one.
-  FastForward(base::TimeDelta::FromMilliseconds(999));
+  FastForward(base::Milliseconds(999));
   VerifyNoRequests();
-  FastForward(base::TimeDelta::FromMilliseconds(1));
+  FastForward(base::Milliseconds(1));
   VerifyRequest();
   MakeResponseAndWait(net::HTTP_OK, net::ERR_FAILED);
   EXPECT_FALSE(prober->LastProbeWasSuccessful().value());
@@ -638,7 +638,7 @@
   AvailabilityProber::RetryPolicy retry_policy;
   retry_policy.max_retries = 2;
   retry_policy.backoff = AvailabilityProber::Backoff::kLinear;
-  retry_policy.base_interval = base::TimeDelta::FromMilliseconds(1000);
+  retry_policy.base_interval = base::Milliseconds(1000);
 
   std::unique_ptr<AvailabilityProber> prober =
       NewProberWithRetryPolicy(retry_policy);
@@ -656,9 +656,9 @@
       "Availability.Prober.FinalState.IsolatedPrerenderOriginCheck", 0);
 
   // First retry.
-  FastForward(base::TimeDelta::FromMilliseconds(999));
+  FastForward(base::Milliseconds(999));
   VerifyNoRequests();
-  FastForward(base::TimeDelta::FromMilliseconds(1));
+  FastForward(base::Milliseconds(1));
   VerifyRequest();
   MakeResponseAndWait(net::HTTP_OK, net::ERR_FAILED);
   EXPECT_FALSE(prober->LastProbeWasSuccessful().value());
@@ -670,9 +670,9 @@
       "Availability.Prober.FinalState.IsolatedPrerenderOriginCheck", 0);
 
   // Second retry should be another 1000ms later and be the final one.
-  FastForward(base::TimeDelta::FromMilliseconds(999));
+  FastForward(base::Milliseconds(999));
   VerifyNoRequests();
-  FastForward(base::TimeDelta::FromMilliseconds(1));
+  FastForward(base::Milliseconds(1));
   VerifyRequest();
   MakeResponseAndWait(net::HTTP_OK, net::OK);
   EXPECT_TRUE(prober->LastProbeWasSuccessful().value());
@@ -706,7 +706,7 @@
   AvailabilityProber::RetryPolicy retry_policy;
   retry_policy.max_retries = 2;
   retry_policy.backoff = AvailabilityProber::Backoff::kExponential;
-  retry_policy.base_interval = base::TimeDelta::FromMilliseconds(1000);
+  retry_policy.base_interval = base::Milliseconds(1000);
 
   std::unique_ptr<AvailabilityProber> prober =
       NewProberWithRetryPolicy(retry_policy);
@@ -719,18 +719,18 @@
   EXPECT_TRUE(prober->is_active());
 
   // First retry.
-  FastForward(base::TimeDelta::FromMilliseconds(999));
+  FastForward(base::Milliseconds(999));
   VerifyNoRequests();
-  FastForward(base::TimeDelta::FromMilliseconds(1));
+  FastForward(base::Milliseconds(1));
   VerifyRequest();
   MakeResponseAndWait(net::HTTP_OK, net::ERR_FAILED);
   EXPECT_FALSE(prober->LastProbeWasSuccessful().value());
   EXPECT_TRUE(prober->is_active());
 
   // Second retry should be another 2000ms later and be the final one.
-  FastForward(base::TimeDelta::FromMilliseconds(1999));
+  FastForward(base::Milliseconds(1999));
   VerifyNoRequests();
-  FastForward(base::TimeDelta::FromMilliseconds(1));
+  FastForward(base::Milliseconds(1));
   VerifyRequest();
   MakeResponseAndWait(net::HTTP_OK, net::ERR_FAILED);
   EXPECT_FALSE(prober->LastProbeWasSuccessful().value());
@@ -749,11 +749,11 @@
   base::HistogramTester histogram_tester;
   AvailabilityProber::RetryPolicy retry_policy;
   retry_policy.max_retries = 1;
-  retry_policy.base_interval = base::TimeDelta::FromMilliseconds(10);
+  retry_policy.base_interval = base::Milliseconds(10);
 
   AvailabilityProber::TimeoutPolicy timeout_policy;
   timeout_policy.backoff = AvailabilityProber::Backoff::kLinear;
-  timeout_policy.base_timeout = base::TimeDelta::FromMilliseconds(1000);
+  timeout_policy.base_timeout = base::Milliseconds(1000);
 
   std::unique_ptr<AvailabilityProber> prober =
       NewProberWithPolicies(retry_policy, timeout_policy);
@@ -762,21 +762,21 @@
   // First attempt.
   prober->SendNowIfInactive(false);
   VerifyRequest();
-  FastForward(base::TimeDelta::FromMilliseconds(999));
+  FastForward(base::Milliseconds(999));
   VerifyRequest();
-  FastForward(base::TimeDelta::FromMilliseconds(1));
+  FastForward(base::Milliseconds(1));
   VerifyNoRequests();
   EXPECT_FALSE(prober->LastProbeWasSuccessful().value());
   EXPECT_TRUE(prober->is_active());
 
   // Fast forward to the start of the next attempt.
-  FastForward(base::TimeDelta::FromMilliseconds(10));
+  FastForward(base::Milliseconds(10));
 
   // Second attempt should have the same timeout.
   VerifyRequest();
-  FastForward(base::TimeDelta::FromMilliseconds(999));
+  FastForward(base::Milliseconds(999));
   VerifyRequest();
-  FastForward(base::TimeDelta::FromMilliseconds(1));
+  FastForward(base::Milliseconds(1));
   VerifyNoRequests();
   EXPECT_FALSE(prober->LastProbeWasSuccessful().value());
   EXPECT_FALSE(prober->is_active());
@@ -794,11 +794,11 @@
   base::HistogramTester histogram_tester;
   AvailabilityProber::RetryPolicy retry_policy;
   retry_policy.max_retries = 1;
-  retry_policy.base_interval = base::TimeDelta::FromMilliseconds(10);
+  retry_policy.base_interval = base::Milliseconds(10);
 
   AvailabilityProber::TimeoutPolicy timeout_policy;
   timeout_policy.backoff = AvailabilityProber::Backoff::kExponential;
-  timeout_policy.base_timeout = base::TimeDelta::FromMilliseconds(1000);
+  timeout_policy.base_timeout = base::Milliseconds(1000);
 
   std::unique_ptr<AvailabilityProber> prober =
       NewProberWithPolicies(retry_policy, timeout_policy);
@@ -807,21 +807,21 @@
   // First attempt.
   prober->SendNowIfInactive(false);
   VerifyRequest();
-  FastForward(base::TimeDelta::FromMilliseconds(999));
+  FastForward(base::Milliseconds(999));
   VerifyRequest();
-  FastForward(base::TimeDelta::FromMilliseconds(1));
+  FastForward(base::Milliseconds(1));
   VerifyNoRequests();
   EXPECT_FALSE(prober->LastProbeWasSuccessful().value());
   EXPECT_TRUE(prober->is_active());
 
   // Fast forward to the start of the next attempt.
-  FastForward(base::TimeDelta::FromMilliseconds(10));
+  FastForward(base::Milliseconds(10));
 
   // Second attempt should have a 2s timeout.
   VerifyRequest();
-  FastForward(base::TimeDelta::FromMilliseconds(1999));
+  FastForward(base::Milliseconds(1999));
   VerifyRequest();
-  FastForward(base::TimeDelta::FromMilliseconds(1));
+  FastForward(base::Milliseconds(1));
   VerifyNoRequests();
   EXPECT_FALSE(prober->LastProbeWasSuccessful().value());
   EXPECT_FALSE(prober->is_active());
@@ -843,7 +843,7 @@
   AvailabilityProber::RetryPolicy retry_policy;
   retry_policy.max_retries = 2;
   retry_policy.backoff = AvailabilityProber::Backoff::kLinear;
-  retry_policy.base_interval = base::TimeDelta::FromMilliseconds(1000);
+  retry_policy.base_interval = base::Milliseconds(1000);
 
   std::unique_ptr<AvailabilityProber> prober = NewProberWithPoliciesAndDelegate(
       &delegate, retry_policy, AvailabilityProber::TimeoutPolicy());
@@ -866,7 +866,7 @@
   AvailabilityProber::RetryPolicy retry_policy;
   retry_policy.max_retries = 2;
   retry_policy.backoff = AvailabilityProber::Backoff::kLinear;
-  retry_policy.base_interval = base::TimeDelta::FromMilliseconds(1000);
+  retry_policy.base_interval = base::Milliseconds(1000);
 
   std::unique_ptr<AvailabilityProber> prober = NewProberWithPoliciesAndDelegate(
       &delegate, retry_policy, AvailabilityProber::TimeoutPolicy());
@@ -879,10 +879,10 @@
   EXPECT_TRUE(prober->is_active());
 
   // First retry.
-  FastForward(base::TimeDelta::FromMilliseconds(999));
+  FastForward(base::Milliseconds(999));
   VerifyNoRequests();
   delegate.set_should_send_next_probe(false);
-  FastForward(base::TimeDelta::FromMilliseconds(1));
+  FastForward(base::Milliseconds(1));
 
   EXPECT_FALSE(prober->LastProbeWasSuccessful().value());
   EXPECT_FALSE(prober->is_active());
@@ -904,7 +904,7 @@
   histogram_tester.ExpectUniqueSample(
       "Availability.Prober.CacheEntryAge.IsolatedPrerenderOriginCheck", 0, 1);
 
-  FastForward(base::TimeDelta::FromHours(24));
+  FastForward(base::Hours(24));
   EXPECT_TRUE(prober->LastProbeWasSuccessful().value());
 
   histogram_tester.ExpectBucketCount(
@@ -921,13 +921,13 @@
   std::unique_ptr<AvailabilityProber> prober = NewProber();
   EXPECT_EQ(prober->LastProbeWasSuccessful(), absl::nullopt);
 
-  prober->RepeatedlyProbe(base::TimeDelta::FromSeconds(1), false);
+  prober->RepeatedlyProbe(base::Seconds(1), false);
   VerifyRequest();
   MakeResponseAndWait(net::HTTP_OK, net::OK);
   EXPECT_TRUE(prober->LastProbeWasSuccessful().value());
   EXPECT_FALSE(prober->is_active());
 
-  FastForward(base::TimeDelta::FromSeconds(1));
+  FastForward(base::Seconds(1));
   EXPECT_TRUE(prober->is_active());
 
   VerifyRequest();
diff --git a/chrome/browser/background/background_contents_service.cc b/chrome/browser/background/background_contents_service.cc
index 33c6ebad..b4f3bc3 100644
--- a/chrome/browser/background/background_contents_service.cc
+++ b/chrome/browser/background/background_contents_service.cc
@@ -370,7 +370,7 @@
           base::BindOnce(&BackgroundContentsService::MaybeClearBackoffEntry,
                          weak_ptr_factory_.GetWeakPtr(), extension->id(),
                          entry->failure_count()),
-          base::TimeDelta::FromSeconds(60));
+          base::Seconds(60));
     }
   }
 
@@ -453,7 +453,7 @@
 
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE, base::BindOnce(&ReloadExtension, extension->id(), profile_),
-      base::TimeDelta::FromMilliseconds(restart_delay));
+      base::Milliseconds(restart_delay));
 }
 
 // Loads all background contents whose urls have been stored in prefs.
diff --git a/chrome/browser/background_sync/background_sync_controller_impl_unittest.cc b/chrome/browser/background_sync/background_sync_controller_impl_unittest.cc
index 2b49253..0da8d45 100644
--- a/chrome/browser/background_sync/background_sync_controller_impl_unittest.cc
+++ b/chrome/browser/background_sync/background_sync_controller_impl_unittest.cc
@@ -38,10 +38,9 @@
 const char kExampleUrl[] = "https://www.example.com/foo/";
 const char kTag[] = "test_tag";
 
-constexpr base::TimeDelta kSmallerThanMinGap = base::TimeDelta::FromHours(11);
-constexpr base::TimeDelta kLargerThanMinGap = base::TimeDelta::FromHours(13);
-constexpr base::TimeDelta kLargerThanMinGapExpectedDelay =
-    base::TimeDelta::FromHours(24);
+constexpr base::TimeDelta kSmallerThanMinGap = base::Hours(11);
+constexpr base::TimeDelta kLargerThanMinGap = base::Hours(13);
+constexpr base::TimeDelta kLargerThanMinGapExpectedDelay = base::Hours(24);
 
 std::unique_ptr<KeyedService> BuildTestHistoryService(
     const base::FilePath& file_path,
@@ -129,8 +128,7 @@
   content::BackgroundSyncParameters sync_parameters;
   controller_->GetParameterOverrides(&sync_parameters);
   EXPECT_TRUE(sync_parameters.disable);
-  EXPECT_EQ(base::TimeDelta::FromSeconds(100),
-            sync_parameters.initial_retry_delay);
+  EXPECT_EQ(base::Seconds(100), sync_parameters.initial_retry_delay);
 
   EXPECT_EQ(original.max_sync_attempts, sync_parameters.max_sync_attempts);
   EXPECT_EQ(original.retry_delay_factor, sync_parameters.retry_delay_factor);
@@ -169,17 +167,14 @@
   controller_->GetParameterOverrides(&sync_parameters);
 
   EXPECT_FALSE(sync_parameters.disable);
-  EXPECT_EQ(base::TimeDelta::FromSeconds(100),
-            sync_parameters.initial_retry_delay);
+  EXPECT_EQ(base::Seconds(100), sync_parameters.initial_retry_delay);
   EXPECT_EQ(200, sync_parameters.max_sync_attempts);
   EXPECT_EQ(250,
             sync_parameters.max_sync_attempts_with_notification_permission);
   EXPECT_EQ(300, sync_parameters.retry_delay_factor);
-  EXPECT_EQ(base::TimeDelta::FromSeconds(400),
-            sync_parameters.min_sync_recovery_time);
-  EXPECT_EQ(base::TimeDelta::FromSeconds(500),
-            sync_parameters.max_sync_event_duration);
-  EXPECT_EQ(base::TimeDelta::FromSeconds(43200),
+  EXPECT_EQ(base::Seconds(400), sync_parameters.min_sync_recovery_time);
+  EXPECT_EQ(base::Seconds(500), sync_parameters.max_sync_event_duration);
+  EXPECT_EQ(base::Seconds(43200),
             sync_parameters.min_periodic_sync_events_interval);
 }
 
@@ -263,7 +258,7 @@
       registration, &sync_parameters, base::TimeDelta::Max());
   EXPECT_EQ(
       delay,
-      base::TimeDelta::FromMilliseconds(
+      base::Milliseconds(
           min_gap_between_periodic_sync_events_ms *
           BackgroundSyncDelegateImpl::kEngagementLevelLowOrMediumPenalty));
 
@@ -275,7 +270,7 @@
                                          base::TimeDelta::Max());
   EXPECT_EQ(
       delay,
-      base::TimeDelta::FromMilliseconds(
+      base::Milliseconds(
           min_gap_between_periodic_sync_events_ms *
           BackgroundSyncDelegateImpl::kEngagementLevelLowOrMediumPenalty));
 
@@ -285,7 +280,7 @@
   delay = controller_->GetNextEventDelay(registration, &sync_parameters,
                                          base::TimeDelta::Max());
   EXPECT_EQ(delay,
-            base::TimeDelta::FromMilliseconds(
+            base::Milliseconds(
                 min_gap_between_periodic_sync_events_ms *
                 BackgroundSyncDelegateImpl::kEngagementLevelMinimalPenalty));
 
@@ -388,7 +383,7 @@
       MakeBackgroundSyncRegistration(
           /* min_interval= */ kSmallerThanMinGap.InMilliseconds(),
           /* num_attempts= */ 0, blink::mojom::BackgroundSyncType::PERIODIC),
-      &sync_parameters, base::TimeDelta::FromHours(24));
+      &sync_parameters, base::Hours(24));
   EXPECT_EQ(delay, sync_parameters.min_periodic_sync_events_interval);
 
   // Periodic Sync: zero attempts.
@@ -399,9 +394,9 @@
       MakeBackgroundSyncRegistration(
           /* min_interval= */ kSmallerThanMinGap.InMilliseconds(),
           /* num_attempts= */ 0, blink::mojom::BackgroundSyncType::PERIODIC),
-      &sync_parameters, base::TimeDelta::FromHours(1));
-  EXPECT_EQ(delay, sync_parameters.min_periodic_sync_events_interval +
-                       base::TimeDelta::FromHours(1));
+      &sync_parameters, base::Hours(1));
+  EXPECT_EQ(delay,
+            sync_parameters.min_periodic_sync_events_interval + base::Hours(1));
 
   // Periodic Sync: zero attempts.
   // |min_interval| < kMinGapBetweenPeriodicSyncEvents.
@@ -410,7 +405,7 @@
       MakeBackgroundSyncRegistration(
           /* min_interval= */ kLargerThanMinGap.InMilliseconds(),
           /* num_attempts= */ 0, blink::mojom::BackgroundSyncType::PERIODIC),
-      &sync_parameters, base::TimeDelta::FromHours(1));
+      &sync_parameters, base::Hours(1));
   EXPECT_EQ(delay, kLargerThanMinGapExpectedDelay);
 }
 
diff --git a/chrome/browser/badging/badge_manager.h b/chrome/browser/badging/badge_manager.h
index 5ce8dd33..6443146 100644
--- a/chrome/browser/badging/badge_manager.h
+++ b/chrome/browser/badging/badge_manager.h
@@ -59,13 +59,11 @@
 
 // We don't show a badge in response to notifications if the
 // Badging API has been used recently.
-constexpr base::TimeDelta kBadgingOverrideLifetime =
-    base::TimeDelta::FromDays(14);
+constexpr base::TimeDelta kBadgingOverrideLifetime = base::Days(14);
 
 // We record when the Badging API was last used, but rate limit
 // our updates to minimize load on the Web App database,
-constexpr base::TimeDelta kBadgingMinimumUpdateInterval =
-    base::TimeDelta::FromHours(2);
+constexpr base::TimeDelta kBadgingMinimumUpdateInterval = base::Hours(2);
 
 // Maintains a record of badge contents and dispatches badge changes to a
 // delegate.
diff --git a/chrome/browser/bitmap_fetcher/bitmap_fetcher_service.cc b/chrome/browser/bitmap_fetcher/bitmap_fetcher_service.cc
index e71945f37..6060cd7 100644
--- a/chrome/browser/bitmap_fetcher/bitmap_fetcher_service.cc
+++ b/chrome/browser/bitmap_fetcher/bitmap_fetcher_service.cc
@@ -124,8 +124,8 @@
 }
 
 BitmapFetcherService::BitmapFetcherService(content::BrowserContext* context)
-    : shared_data_decoder_(std::make_unique<data_decoder::DataDecoder>(
-          base::TimeDelta::FromSeconds(405))),
+    : shared_data_decoder_(
+          std::make_unique<data_decoder::DataDecoder>(base::Seconds(405))),
       cache_(kMaxCacheEntries),
       current_request_id_(1),
       context_(context) {}
diff --git a/chrome/browser/bookmarks/bookmark_html_writer_unittest.cc b/chrome/browser/bookmarks/bookmark_html_writer_unittest.cc
index 20cdac28..9cabb66 100644
--- a/chrome/browser/bookmarks/bookmark_html_writer_unittest.cc
+++ b/chrome/browser/bookmarks/bookmark_html_writer_unittest.cc
@@ -209,9 +209,9 @@
   GURL url4("javascript:alert(\"Hello!\");");
   GURL unnamed_bookmark_url("about:blank");
   base::Time t1(base::Time::Now());
-  base::Time t2(t1 + base::TimeDelta::FromHours(1));
-  base::Time t3(t1 + base::TimeDelta::FromHours(1));
-  base::Time t4(t1 + base::TimeDelta::FromHours(1));
+  base::Time t2(t1 + base::Hours(1));
+  base::Time t3(t1 + base::Hours(1));
+  base::Time t4(t1 + base::Hours(1));
   const BookmarkNode* f1 = model->AddFolder(
       model->bookmark_bar_node(), 0, f1_title);
   model->AddURL(f1, 0, url1_title, url1, nullptr, t1);
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
index f0ad783..d94cd60 100644
--- a/chrome/browser/browser_process_impl.cc
+++ b/chrome/browser/browser_process_impl.cc
@@ -227,8 +227,7 @@
 // and Windows. We have a timeout here because we're unable to run the UI
 // messageloop and there's some deadlock risk. Our only option is to exit
 // anyway.
-static constexpr base::TimeDelta kEndSessionTimeout =
-    base::TimeDelta::FromSeconds(10);
+static constexpr base::TimeDelta kEndSessionTimeout = base::Seconds(10);
 #endif
 
 using content::BrowserThread;
@@ -1056,10 +1055,8 @@
 // complete.
 #if defined(OS_WIN) || (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
 void BrowserProcessImpl::StartAutoupdateTimer() {
-  autoupdate_timer_.Start(FROM_HERE,
-      base::TimeDelta::FromHours(kUpdateCheckIntervalHours),
-      this,
-      &BrowserProcessImpl::OnAutoupdateTimer);
+  autoupdate_timer_.Start(FROM_HERE, base::Hours(kUpdateCheckIntervalHours),
+                          this, &BrowserProcessImpl::OnAutoupdateTimer);
 }
 #endif
 
diff --git a/chrome/browser/browser_process_platform_part_chromeos.cc b/chrome/browser/browser_process_platform_part_chromeos.cc
index f2e95cee..f892a1c 100644
--- a/chrome/browser/browser_process_platform_part_chromeos.cc
+++ b/chrome/browser/browser_process_platform_part_chromeos.cc
@@ -360,9 +360,9 @@
         g_browser_process->shared_url_loader_factory(),
         chromeos::SimpleGeolocationProvider::DefaultGeolocationProviderURL(),
         base::BindRepeating(&ash::system::ApplyTimeZone),
-        base::BindRepeating(&chromeos::DelayNetworkCall,
-                            base::TimeDelta::FromMilliseconds(
-                                chromeos::kDefaultNetworkRetryDelayMS)),
+        base::BindRepeating(
+            &chromeos::DelayNetworkCall,
+            base::Milliseconds(chromeos::kDefaultNetworkRetryDelayMS)),
         g_browser_process->local_state());
   }
   return timezone_resolver_.get();
diff --git a/chrome/browser/browser_switcher/browser_switcher_service.cc b/chrome/browser/browser_switcher/browser_switcher_service.cc
index 08161c5..1b8cc8e 100644
--- a/chrome/browser/browser_switcher/browser_switcher_service.cc
+++ b/chrome/browser/browser_switcher/browser_switcher_service.cc
@@ -37,7 +37,7 @@
 const base::TimeDelta kFetchSitelistDelay = base::TimeDelta();
 
 // How long to wait after a fetch to re-fetch the sitelist to keep it fresh.
-const base::TimeDelta kRefreshSitelistDelay = base::TimeDelta::FromMinutes(30);
+const base::TimeDelta kRefreshSitelistDelay = base::Minutes(30);
 
 // How many times to re-try fetching the XML file for the sitelist.
 const int kFetchNumRetries = 1;
diff --git a/chrome/browser/browser_switcher/browser_switcher_service_browsertest.cc b/chrome/browser/browser_switcher/browser_switcher_service_browsertest.cc
index 7a4da2d2..9329261 100644
--- a/chrome/browser/browser_switcher/browser_switcher_service_browsertest.cc
+++ b/chrome/browser/browser_switcher/browser_switcher_service_browsertest.cc
@@ -654,8 +654,7 @@
   SetUseIeSitelist(true);
   // Never refresh the sitelist. We want to check the state of cache.dat after
   // startup, not after the sitelist is downloaded.
-  BrowserSwitcherServiceWin::SetFetchDelayForTesting(
-      base::TimeDelta::FromHours(24));
+  BrowserSwitcherServiceWin::SetFetchDelayForTesting(base::Hours(24));
   BrowserSwitcherServiceWin::SetIeemSitelistUrlForTesting(kAValidUrl);
 
   content::URLLoaderInterceptor interceptor(
diff --git a/chrome/browser/browsing_data/access_context_audit_browsertest.cc b/chrome/browser/browsing_data/access_context_audit_browsertest.cc
index 383d4db8..cf3528bba 100644
--- a/chrome/browser/browsing_data/access_context_audit_browsertest.cc
+++ b/chrome/browser/browsing_data/access_context_audit_browsertest.cc
@@ -505,7 +505,7 @@
 
   // Renavigate to the same pages, this should update the access times on all
   // records.
-  clock.Advance(base::TimeDelta::FromHours(1));
+  clock.Advance(base::Hours(1));
   NavigateToTopLevelPage();
   NavigateToEmbeddedPage();
 
diff --git a/chrome/browser/browsing_data/access_context_audit_database_unittest.cc b/chrome/browser/browsing_data/access_context_audit_database_unittest.cc
index 76add427..c0f42ef 100644
--- a/chrome/browser/browsing_data/access_context_audit_database_unittest.cc
+++ b/chrome/browser/browsing_data/access_context_audit_database_unittest.cc
@@ -116,64 +116,54 @@
             url::Origin::Create(GURL(kManyVisitsTopFrameOrigin1)),
             AccessContextAuditDatabase::StorageAPIType::kLocalStorage,
             url::Origin::Create(GURL("https://test.com")),
-            base::Time::FromDeltaSinceWindowsEpoch(
-                base::TimeDelta::FromHours(1))),
+            base::Time::FromDeltaSinceWindowsEpoch(base::Hours(1))),
         AccessContextAuditDatabase::AccessRecord(
             url::Origin::Create(GURL(kManyVisitsTopFrameOrigin2)),
             AccessContextAuditDatabase::StorageAPIType::kLocalStorage,
             url::Origin::Create(GURL("https://test.com")),
-            base::Time::FromDeltaSinceWindowsEpoch(
-                base::TimeDelta::FromHours(2))),
+            base::Time::FromDeltaSinceWindowsEpoch(base::Hours(2))),
         AccessContextAuditDatabase::AccessRecord(
             url::Origin::Create(GURL("https://test2.com:8000")), "cookie1",
             "test.com", "/",
-            base::Time::FromDeltaSinceWindowsEpoch(
-                base::TimeDelta::FromHours(3)),
+            base::Time::FromDeltaSinceWindowsEpoch(base::Hours(3)),
             /* is_persistent */ true),
         AccessContextAuditDatabase::AccessRecord(
             url::Origin::Create(GURL(kManyVisitsTopFrameOrigin1)),
             kManyContextsCookieName, kManyContextsCookieDomain,
             kManyContextsCookiePath,
-            base::Time::FromDeltaSinceWindowsEpoch(
-                base::TimeDelta::FromHours(4)),
+            base::Time::FromDeltaSinceWindowsEpoch(base::Hours(4)),
             /* is_persistent */ true),
         AccessContextAuditDatabase::AccessRecord(
             url::Origin::Create(GURL(kManyVisitsTopFrameOrigin2)),
             kManyContextsCookieName, kManyContextsCookieDomain,
             kManyContextsCookiePath,
-            base::Time::FromDeltaSinceWindowsEpoch(
-                base::TimeDelta::FromHours(4)),
+            base::Time::FromDeltaSinceWindowsEpoch(base::Hours(4)),
             /* is_persistent */ true),
         AccessContextAuditDatabase::AccessRecord(
             url::Origin::Create(GURL("https://test4.com:8000")),
             kManyContextsStorageAPIType,
             url::Origin::Create(GURL(kManyContextsStorageAPIOrigin)),
-            base::Time::FromDeltaSinceWindowsEpoch(
-                base::TimeDelta::FromHours(5))),
+            base::Time::FromDeltaSinceWindowsEpoch(base::Hours(5))),
         AccessContextAuditDatabase::AccessRecord(
             url::Origin::Create(GURL(kManyVisitsTopFrameOrigin1)),
             kManyContextsStorageAPIType,
             url::Origin::Create(GURL(kManyContextsStorageAPIOrigin)),
-            base::Time::FromDeltaSinceWindowsEpoch(
-                base::TimeDelta::FromHours(6))),
+            base::Time::FromDeltaSinceWindowsEpoch(base::Hours(6))),
         AccessContextAuditDatabase::AccessRecord(
             url::Origin::Create(GURL(kManyVisitsTopFrameOrigin2)),
             kSingleContextStorageAPIType,
             url::Origin::Create(GURL(kManyContextsStorageAPIOrigin)),
-            base::Time::FromDeltaSinceWindowsEpoch(
-                base::TimeDelta::FromHours(7))),
+            base::Time::FromDeltaSinceWindowsEpoch(base::Hours(7))),
         AccessContextAuditDatabase::AccessRecord(
             url::Origin::Create(GURL("https://test6.com")),
             "non-persistent-cookie", "non-persistent-domain", "/",
-            base::Time::FromDeltaSinceWindowsEpoch(
-                base::TimeDelta::FromHours(8)),
+            base::Time::FromDeltaSinceWindowsEpoch(base::Hours(8)),
             /* is_persistent */ false),
         AccessContextAuditDatabase::AccessRecord(
             url::Origin::Create(GURL("https://test7.com")),
             kManyContextsStorageAPIType,
             url::Origin::Create(GURL("https://test8.com")),
-            base::Time::FromDeltaSinceWindowsEpoch(
-                base::TimeDelta::FromHours(9))),
+            base::Time::FromDeltaSinceWindowsEpoch(base::Hours(9))),
     };
   }
 
@@ -419,10 +409,8 @@
   database()->AddRecords(test_records);
   ValidateDatabaseRecords(database(), test_records);
 
-  auto begin_time =
-      base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromHours(4));
-  auto end_time =
-      base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromHours(6));
+  auto begin_time = base::Time::FromDeltaSinceWindowsEpoch(base::Hours(4));
+  auto end_time = base::Time::FromDeltaSinceWindowsEpoch(base::Hours(6));
 
   database()->RemoveAllRecordsForTimeRange(begin_time, end_time);
 
@@ -446,10 +434,8 @@
   database()->AddRecords(test_records);
   ValidateDatabaseRecords(database(), test_records);
 
-  auto begin_time =
-      base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromHours(4));
-  auto end_time =
-      base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromHours(6));
+  auto begin_time = base::Time::FromDeltaSinceWindowsEpoch(base::Hours(4));
+  auto end_time = base::Time::FromDeltaSinceWindowsEpoch(base::Hours(6));
 
   database()->RemoveAllRecordsForTimeRangeHistory(begin_time, end_time);
 
@@ -556,7 +542,7 @@
   database()->AddRecords(test_records);
 
   for (auto& record : test_records) {
-    record.last_access_time += base::TimeDelta::FromHours(1);
+    record.last_access_time += base::Hours(1);
   }
 
   database()->AddRecords(test_records);
@@ -664,10 +650,8 @@
   auto origin_matcher = base::BindLambdaForTesting(
       [&](const url::Origin& origin) { return origin == kStorageOrigin; });
 
-  auto begin_time =
-      base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromHours(5));
-  auto end_time =
-      base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromHours(9));
+  auto begin_time = base::Time::FromDeltaSinceWindowsEpoch(base::Hours(5));
+  auto end_time = base::Time::FromDeltaSinceWindowsEpoch(base::Hours(9));
 
   database()->RemoveStorageApiRecords(storage_types, origin_matcher, begin_time,
                                       end_time);
@@ -759,9 +743,9 @@
   const url::Origin kCrossSiteOrigin =
       url::Origin::Create(GURL("https://cross.site.com/"));
   const base::Time kAccessTime =
-      base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromHours(1));
+      base::Time::FromDeltaSinceWindowsEpoch(base::Hours(1));
   const base::Time kLaterAccessTime =
-      base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromHours(2));
+      base::Time::FromDeltaSinceWindowsEpoch(base::Hours(2));
 
   std::vector<AccessContextAuditDatabase::AccessRecord> test_records = {
       // Same-site and cross-site cookie records must be removed.
@@ -814,9 +798,9 @@
   const url::Origin kCrossSiteOrigin =
       url::Origin::Create(GURL("https://cross.site.com/"));
   const base::Time kAccessTime =
-      base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromHours(1));
+      base::Time::FromDeltaSinceWindowsEpoch(base::Hours(1));
   const base::Time kLaterAccessTime =
-      base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromHours(2));
+      base::Time::FromDeltaSinceWindowsEpoch(base::Hours(2));
 
   std::vector<AccessContextAuditDatabase::AccessRecord> test_records = {
       // Same-site and cross-site cookie records must be removed.
@@ -866,13 +850,13 @@
       url::Origin::Create(GURL("https://cross.site.com/"));
 
   const base::Time kBeginTime =
-      base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromHours(4));
+      base::Time::FromDeltaSinceWindowsEpoch(base::Hours(4));
   const base::Time kEndTime =
-      base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromHours(6));
+      base::Time::FromDeltaSinceWindowsEpoch(base::Hours(6));
   const base::Time kInsideRange =
-      base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromHours(5));
+      base::Time::FromDeltaSinceWindowsEpoch(base::Hours(5));
   const base::Time kOutsideRange =
-      base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromHours(7));
+      base::Time::FromDeltaSinceWindowsEpoch(base::Hours(7));
 
   std::vector<AccessContextAuditDatabase::AccessRecord> test_records = {
       // Same-site and cross-site cookie records in the time range must be
diff --git a/chrome/browser/browsing_data/access_context_audit_service_unittest.cc b/chrome/browser/browsing_data/access_context_audit_service_unittest.cc
index 5aedec0..5ae819db 100644
--- a/chrome/browser/browsing_data/access_context_audit_service_unittest.cc
+++ b/chrome/browser/browsing_data/access_context_audit_service_unittest.cc
@@ -237,7 +237,7 @@
                             kAccessTime1, records);
 
   // Check that a repeated access correctly updates associated timestamp.
-  clock()->Advance(base::TimeDelta::FromHours(1));
+  clock()->Advance(base::Hours(1));
   const base::Time kAccessTime2 = clock()->Now();
   service()->RecordCookieAccess({*test_cookie, *test_non_persistent_cookie},
                                 kTopFrameOrigin);
@@ -555,10 +555,8 @@
 
   clock()->SetNow(base::Time::Now());
   service()->SetClockForTesting(clock());
-  const base::Time kInsideTimeRange =
-      clock()->Now() + base::TimeDelta::FromHours(1);
-  const base::Time kOutsideTimeRange =
-      clock()->Now() + base::TimeDelta::FromHours(3);
+  const base::Time kInsideTimeRange = clock()->Now() + base::Hours(1);
+  const base::Time kOutsideTimeRange = clock()->Now() + base::Hours(3);
 
   history_service()->AddPageWithDetails(kURL1, u"Test1", 1, 1, kInsideTimeRange,
                                         false, history::SOURCE_BROWSED);
@@ -597,8 +595,8 @@
   base::RunLoop run_loop;
   base::CancelableTaskTracker task_tracker;
   history_service()->ExpireHistoryBetween(
-      std::set<GURL>(), kInsideTimeRange - base::TimeDelta::FromMinutes(10),
-      kInsideTimeRange + base::TimeDelta::FromMinutes(10),
+      std::set<GURL>(), kInsideTimeRange - base::Minutes(10),
+      kInsideTimeRange + base::Minutes(10),
       /*user_initiated*/ true, run_loop.QuitClosure(), &task_tracker);
   run_loop.Run();
 
@@ -710,16 +708,16 @@
   clock()->SetNow(base::Time());
   service()->SetClockForTesting(clock());
 
-  clock()->Advance(base::TimeDelta::FromHours(1));
+  clock()->Advance(base::Hours(1));
   service()->RecordStorageAPIAccess(kTestOrigin1, kTestStorageType1,
                                     kTopFrameOrigin);
 
-  clock()->Advance(base::TimeDelta::FromHours(1));
+  clock()->Advance(base::Hours(1));
   const base::Time kAccessTime1 = clock()->Now();
   service()->RecordStorageAPIAccess(kTestOrigin2, kTestStorageType2,
                                     kTopFrameOrigin);
 
-  clock()->Advance(base::TimeDelta::FromHours(1));
+  clock()->Advance(base::Hours(1));
   const base::Time kAccessTime2 = clock()->Now();
   service()->RecordStorageAPIAccess(kTestOrigin3, kTestStorageType3,
                                     kTopFrameOrigin);
@@ -730,8 +728,7 @@
       [&](const url::Origin& origin) { return origin == kTestOrigin1; });
   service()->OnOriginDataCleared(
       content::StoragePartition::REMOVE_DATA_MASK_WEBSQL, origin_matcher,
-      base::Time() + base::TimeDelta::FromMinutes(50),
-      base::Time() + base::TimeDelta::FromMinutes(80));
+      base::Time() + base::Minutes(50), base::Time() + base::Minutes(80));
 
   auto records = GetAllAccessRecords();
   ASSERT_EQ(2U, records.size());
@@ -743,8 +740,7 @@
   // Provide more generalised parameters that target TestOrigin2's record.
   service()->OnOriginDataCleared(
       content::StoragePartition::REMOVE_DATA_MASK_ALL, base::NullCallback(),
-      base::Time() + base::TimeDelta::FromMinutes(80),
-      base::Time() + base::TimeDelta::FromMinutes(130));
+      base::Time() + base::Minutes(80), base::Time() + base::Minutes(130));
 
   records = GetAllAccessRecords();
   ASSERT_EQ(1U, records.size());
@@ -797,8 +793,7 @@
   helper->RecordCookieAccess({*test_cookie}, kTopFrameOrigin);
 
   // Reaccess the cookie at a later time.
-  const base::Time kAccessTime2 =
-      clock()->Now() + base::TimeDelta::FromMinutes(1);
+  const base::Time kAccessTime2 = clock()->Now() + base::Minutes(1);
   clock()->SetNow(kAccessTime2);
   helper->RecordCookieAccess({*test_cookie}, kTopFrameOrigin);
 
@@ -822,8 +817,7 @@
 
   // Record a cookie access and delete the helper, the access should be flushed
   // to the service.
-  const base::Time kAccessTime3 =
-      clock()->Now() + base::TimeDelta::FromMinutes(1);
+  const base::Time kAccessTime3 = clock()->Now() + base::Minutes(1);
   clock()->SetNow(kAccessTime3);
   helper->RecordCookieAccess({*test_cookie}, kTopFrameOrigin);
 
@@ -947,10 +941,8 @@
 
   clock()->SetNow(base::Time::Now());
   service()->SetClockForTesting(clock());
-  const base::Time kInsideTimeRange =
-      clock()->Now() + base::TimeDelta::FromHours(1);
-  const base::Time kOutsideTimeRange =
-      clock()->Now() + base::TimeDelta::FromHours(3);
+  const base::Time kInsideTimeRange = clock()->Now() + base::Hours(1);
+  const base::Time kOutsideTimeRange = clock()->Now() + base::Hours(3);
 
   clock()->SetNow(kOutsideTimeRange);
   // A cookie record outside the time range should not be modified.
@@ -997,8 +989,8 @@
   base::RunLoop run_loop;
   base::CancelableTaskTracker task_tracker;
   history_service()->ExpireHistoryBetween(
-      std::set<GURL>(), kInsideTimeRange - base::TimeDelta::FromMinutes(10),
-      kInsideTimeRange + base::TimeDelta::FromMinutes(10),
+      std::set<GURL>(), kInsideTimeRange - base::Minutes(10),
+      kInsideTimeRange + base::Minutes(10),
       /*user_initiated*/ true, run_loop.QuitClosure(), &task_tracker);
   run_loop.Run();
 
diff --git a/chrome/browser/browsing_data/browsing_data_history_observer_service_unittest.cc b/chrome/browser/browsing_data/browsing_data_history_observer_service_unittest.cc
index ad745abc..f82ffeb 100644
--- a/chrome/browser/browsing_data/browsing_data_history_observer_service_unittest.cc
+++ b/chrome/browser/browsing_data/browsing_data_history_observer_service_unittest.cc
@@ -134,7 +134,7 @@
   service.OverrideStoragePartitionForTesting(&partition);
 
   base::Time begin = base::Time::Now();
-  base::Time end = begin + base::TimeDelta::FromDays(1);
+  base::Time end = begin + base::Days(1);
   history::DeletionInfo deletion_info(
       history::DeletionTimeRange(begin, end), false /* is_from_expiration */,
       {} /* deleted_rows */, {} /* favicon_urls */,
@@ -163,7 +163,7 @@
   std::set<GURL> restrict_urls = {origin_a};
 
   base::Time begin = base::Time::Now();
-  base::Time end = begin + base::TimeDelta::FromDays(1);
+  base::Time end = begin + base::Days(1);
   history::DeletionInfo deletion_info(
       history::DeletionTimeRange(begin, end), false /* is_from_expiration */,
       {} /* deleted_rows */, {} /* favicon_urls */,
@@ -200,7 +200,7 @@
   std::set<GURL> restrict_urls = {origin_a};
 
   base::Time begin = base::Time::Now();
-  base::Time end = begin + base::TimeDelta::FromDays(1);
+  base::Time end = begin + base::Days(1);
   history::DeletionInfo deletion_info(
       history::DeletionTimeRange(begin, end), false /* is_from_expiration */,
       {} /* deleted_rows */, {} /* favicon_urls */,
diff --git a/chrome/browser/browsing_data/browsing_data_media_license_helper_unittest.cc b/chrome/browser/browsing_data/browsing_data_media_license_helper_unittest.cc
index 1b8dd93..d495586 100644
--- a/chrome/browser/browsing_data/browsing_data_media_license_helper_unittest.cc
+++ b/chrome/browser/browsing_data/browsing_data_media_license_helper_unittest.cc
@@ -136,10 +136,10 @@
   virtual void PopulateTestMediaLicenseData(const GURL& origin1,
                                             const GURL& origin2,
                                             const GURL& origin3) {
-    const base::Time ten_days_ago = now_ - base::TimeDelta::FromDays(10);
-    const base::Time twenty_days_ago = now_ - base::TimeDelta::FromDays(20);
-    const base::Time thirty_days_ago = now_ - base::TimeDelta::FromDays(30);
-    const base::Time sixty_days_ago = now_ - base::TimeDelta::FromDays(60);
+    const base::Time ten_days_ago = now_ - base::Days(10);
+    const base::Time twenty_days_ago = now_ - base::Days(20);
+    const base::Time thirty_days_ago = now_ - base::Days(30);
+    const base::Time sixty_days_ago = now_ - base::Days(60);
 
     std::string clearkey_fsid = CreateFileSystem(kClearKeyCdmPluginId, origin1);
     storage::FileSystemURL clearkey_file =
diff --git a/chrome/browser/browsing_data/browsing_data_remover_browsertest.cc b/chrome/browser/browsing_data/browsing_data_remover_browsertest.cc
index ca1b4af..25f09b7 100644
--- a/chrome/browser/browsing_data/browsing_data_remover_browsertest.cc
+++ b/chrome/browser/browsing_data/browsing_data_remover_browsertest.cc
@@ -76,8 +76,7 @@
 namespace {
 static const char* kExampleHost = "example.com";
 static const char* kLocalHost = "localhost";
-static const base::Time kLastHour =
-    base::Time::Now() - base::TimeDelta::FromHours(1);
+static const base::Time kLastHour = base::Time::Now() - base::Hours(1);
 }  // namespace
 
 class BrowsingDataRemoverBrowserTest
@@ -1027,7 +1026,7 @@
   // On some Macs the file system uses second granularity. So before
   // creating the second license, delay for 1 second so that the new
   // license's time is not the same second as |start|.
-  base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(1));
+  base::PlatformThread::Sleep(base::Seconds(1));
 #endif
 
   // This test should use a different domain than the PRE_ test, so there
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc
index c0807de11..726300c 100644
--- a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc
+++ b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc
@@ -273,12 +273,11 @@
           base::TaskPriority::BEST_EFFORT,
           base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN,
       })
-      ->PostDelayedTask(
-          FROM_HERE,
-          base::BindOnce(&ChromeBrowsingDataLifetimeManager::
-                             UpdateScheduledRemovalSettings,
-                         weak_ptr_factory_.GetWeakPtr()),
-          base::TimeDelta::FromSeconds(kInitialCleanupDelayInSeconds));
+      ->PostDelayedTask(FROM_HERE,
+                        base::BindOnce(&ChromeBrowsingDataLifetimeManager::
+                                           UpdateScheduledRemovalSettings,
+                                       weak_ptr_factory_.GetWeakPtr()),
+                        base::Seconds(kInitialCleanupDelayInSeconds));
 }
 
 ChromeBrowsingDataLifetimeManager::~ChromeBrowsingDataLifetimeManager() =
@@ -338,7 +337,7 @@
 
     auto deletion_end_time = end_time_for_testing_.value_or(
         base::Time::Now() -
-        base::TimeDelta::FromHours(removal_settings.time_to_live_in_hours));
+        base::Hours(removal_settings.time_to_live_in_hours));
     auto filterable_remove_mask =
         removal_settings.remove_mask &
         chrome_browsing_data_remover::FILTERABLE_DATA_TYPES;
@@ -375,10 +374,9 @@
           base::TaskPriority::BEST_EFFORT,
           base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN,
       })
-      ->PostDelayedTask(
-          FROM_HERE,
-          base::BindOnce(&ChromeBrowsingDataLifetimeManager::
-                             StartScheduledBrowsingDataRemoval,
-                         weak_ptr_factory_.GetWeakPtr()),
-          base::TimeDelta::FromHours(kDefaultCleanupPeriodInHours));
+      ->PostDelayedTask(FROM_HERE,
+                        base::BindOnce(&ChromeBrowsingDataLifetimeManager::
+                                           StartScheduledBrowsingDataRemoval,
+                                       weak_ptr_factory_.GetWeakPtr()),
+                        base::Hours(kDefaultCleanupPeriodInHours));
 }
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager_unittest.cc b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager_unittest.cc
index d3c9170..a265d11f 100644
--- a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager_unittest.cc
+++ b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager_unittest.cc
@@ -61,19 +61,19 @@
       chrome_browsing_data_remover::DATA_TYPE_FORM_DATA;
   // Each scheduled removal is called once the prefs are set.
   delegate.ExpectCallDontCareAboutFilterBuilder(
-      base::Time::Min(), base::Time::Now() - base::TimeDelta::FromHours(1),
+      base::Time::Min(), base::Time::Now() - base::Hours(1),
       remove_mask_1_filterable, 0);
   delegate.ExpectCallDontCareAboutFilterBuilder(
-      base::Time::Min(), base::Time::Now() - base::TimeDelta::FromHours(1),
+      base::Time::Min(), base::Time::Now() - base::Hours(1),
       remove_mask_1_unfilterable, 0);
   delegate.ExpectCallDontCareAboutFilterBuilder(
-      base::Time::Min(), base::Time::Now() - base::TimeDelta::FromHours(2),
-      remove_mask_2, origin_mask_2);
+      base::Time::Min(), base::Time::Now() - base::Hours(2), remove_mask_2,
+      origin_mask_2);
   delegate.ExpectCallDontCareAboutFilterBuilder(
-      base::Time::Min(), base::Time::Now() - base::TimeDelta::FromHours(3),
+      base::Time::Min(), base::Time::Now() - base::Hours(3),
       remove_mask_3_filterable, 0);
   delegate.ExpectCallDontCareAboutFilterBuilder(
-      base::Time::Min(), base::Time::Now() - base::TimeDelta::FromHours(3),
+      base::Time::Min(), base::Time::Now() - base::Hours(3),
       remove_mask_3_unfilterable, 0);
 
   testing_profile->GetPrefs()->Set(browsing_data::prefs::kBrowsingDataLifetime,
@@ -86,15 +86,15 @@
   delegate.ExpectCallDontCareAboutFilterBuilder(
       base::Time::Min(), base::Time::Now(), remove_mask_1_unfilterable, 0);
   delegate.ExpectCallDontCareAboutFilterBuilder(
-      base::Time::Min(), base::Time::Now() - base::TimeDelta::FromHours(1),
-      remove_mask_2, origin_mask_2);
+      base::Time::Min(), base::Time::Now() - base::Hours(1), remove_mask_2,
+      origin_mask_2);
   delegate.ExpectCallDontCareAboutFilterBuilder(
-      base::Time::Min(), base::Time::Now() - base::TimeDelta::FromHours(2),
+      base::Time::Min(), base::Time::Now() - base::Hours(2),
       remove_mask_3_filterable, 0);
   delegate.ExpectCallDontCareAboutFilterBuilder(
-      base::Time::Min(), base::Time::Now() - base::TimeDelta::FromHours(2),
+      base::Time::Min(), base::Time::Now() - base::Hours(2),
       remove_mask_3_unfilterable, 0);
-  browser_task_environment.FastForwardBy(base::TimeDelta::FromHours(1));
+  browser_task_environment.FastForwardBy(base::Hours(1));
   delegate.VerifyAndClearExpectations();
 }
 
@@ -141,8 +141,8 @@
   delegate.ExpectCallDontCareAboutFilterBuilder(
       base::Time::Min(), base::Time::Now(), remove_mask_1_unfilterable, 0);
   delegate.ExpectCallDontCareAboutFilterBuilder(
-      base::Time::Min(), base::Time::Now() - base::TimeDelta::FromHours(1),
-      remove_mask_2, origin_mask_2);
-  browser_task_environment.FastForwardBy(base::TimeDelta::FromHours(1));
+      base::Time::Min(), base::Time::Now() - base::Hours(1), remove_mask_2,
+      origin_mask_2);
+  browser_task_environment.FastForwardBy(base::Hours(1));
   delegate.VerifyAndClearExpectations();
 }
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
index 84dc949b..f4bc551 100644
--- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
+++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
@@ -193,7 +193,7 @@
 namespace {
 
 // Timeout after which the histogram for slow tasks is recorded.
-const base::TimeDelta kSlowTaskTimeout = base::TimeDelta::FromSeconds(180);
+const base::TimeDelta kSlowTaskTimeout = base::Seconds(180);
 
 // Generic functions but currently only used when ENABLE_NACL.
 #if BUILDFLAG(ENABLE_NACL)
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc
index eb4690d7..0190067 100644
--- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc
+++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc
@@ -741,7 +741,7 @@
 }
 
 base::Time AnHourAgo() {
-  return base::Time::Now() - base::TimeDelta::FromHours(1);
+  return base::Time::Now() - base::Hours(1);
 }
 
 class RemoveDownloadsTester {
@@ -1414,7 +1414,7 @@
   RemoveHistoryTester tester;
   ASSERT_TRUE(tester.Init(GetProfile()));
 
-  base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2);
+  base::Time two_hours_ago = base::Time::Now() - base::Hours(2);
 
   const GURL kOrigin1("http://host1.com:1");
   const GURL kOrigin2("http://host2.com:1");
@@ -1437,12 +1437,9 @@
   RemoveHistoryTester tester;
   ASSERT_TRUE(tester.Init(GetProfile()));
 
-  base::Time older_than_29days =
-      base::Time::Now() - base::TimeDelta::FromDays(29);
-  base::Time older_than_30days =
-      base::Time::Now() - base::TimeDelta::FromDays(30);
-  base::Time older_than_31days =
-      base::Time::Now() - base::TimeDelta::FromDays(31);
+  base::Time older_than_29days = base::Time::Now() - base::Days(29);
+  base::Time older_than_30days = base::Time::Now() - base::Days(30);
+  base::Time older_than_31days = base::Time::Now() - base::Days(31);
 
   const GURL kOrigin1("http://host1.com:1");
   const GURL kOrigin2("http://host2.com:1");
@@ -1478,7 +1475,7 @@
   PrefService* prefs = GetProfile()->GetPrefs();
   prefs->SetBoolean(prefs::kAllowDeletingBrowserHistory, false);
 
-  base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2);
+  base::Time two_hours_ago = base::Time::Now() - base::Hours(2);
 
   const GURL kOrigin1("http://host1.com:1");
   const GURL kOrigin2("http://host2.com:1");
@@ -1738,7 +1735,7 @@
   RemoveHistoryTester tester;
   ASSERT_TRUE(tester.Init(GetProfile()));
 
-  base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2);
+  base::Time two_hours_ago = base::Time::Now() - base::Hours(2);
 
   const GURL kOrigin1("http://host1.com:1");
   const GURL kOrigin2("http://host2.com:1");
@@ -1791,11 +1788,11 @@
   SyncServiceFactory::GetForProfile(GetProfile());
 
   const base::Time k32DaysOld = base::Time::Now();
-  task_environment()->AdvanceClock(base::TimeDelta::FromDays(1));
+  task_environment()->AdvanceClock(base::Days(1));
   const base::Time k31DaysOld = base::Time::Now();
-  task_environment()->AdvanceClock(base::TimeDelta::FromDays(1));
+  task_environment()->AdvanceClock(base::Days(1));
   const base::Time k30DaysOld = base::Time::Now();
-  task_environment()->AdvanceClock(base::TimeDelta::FromDays(30));
+  task_environment()->AdvanceClock(base::Days(30));
 
   // Add profiles and cards with modification date as 31 days old from now.
   autofill::TestAutofillClock test_clock;
@@ -2323,8 +2320,8 @@
   auto* registry =
       ProtocolHandlerRegistryFactory::GetForBrowserContext(GetProfile());
   const GURL kOrigin("https://host3.com:1");
-  base::Time one_hour_ago = base::Time::Now() - base::TimeDelta::FromHours(1);
-  base::Time yesterday = base::Time::Now() - base::TimeDelta::FromDays(1);
+  base::Time one_hour_ago = base::Time::Now() - base::Hours(1);
+  base::Time yesterday = base::Time::Now() - base::Days(1);
   registry->OnAcceptRegisterProtocolHandler(
       ProtocolHandler::CreateProtocolHandler("news", kOrigin));
   registry->OnAcceptRegisterProtocolHandler(
@@ -2366,8 +2363,7 @@
   expiration_times_list.Append(0);
   expiration_times_list.Append(2);
 
-  double expiration_time =
-      (base::Time::Now() + base::TimeDelta::FromHours(24)).ToDoubleT();
+  double expiration_time = (base::Time::Now() + base::Hours(24)).ToDoubleT();
 
   base::Value expiration_times_dictionary(base::Value::Type::DICTIONARY);
   expiration_times_dictionary.SetKey("client_hints",
@@ -2428,8 +2424,7 @@
   expiration_times_list.Append(0);
   expiration_times_list.Append(2);
 
-  double expiration_time =
-      (base::Time::Now() + base::TimeDelta::FromHours(24)).ToDoubleT();
+  double expiration_time = (base::Time::Now() + base::Hours(24)).ToDoubleT();
 
   base::Value expiration_times_dictionary(base::Value::Type::DICTIONARY);
   expiration_times_dictionary.SetKey("client_hints",
@@ -2470,14 +2465,13 @@
 
   base::Time now = base::Time::Now();
   zoom_map->InitializeZoomLevelForHost(kTestRegisterableDomain1, 1.5,
-                                       now - base::TimeDelta::FromHours(5));
-  test_clock.SetNow(now - base::TimeDelta::FromHours(2));
+                                       now - base::Hours(5));
+  test_clock.SetNow(now - base::Hours(2));
   zoom_map->SetZoomLevelForHost(kTestRegisterableDomain3, 2.0);
   EXPECT_EQ(2u, zoom_map->GetAllZoomLevels().size());
 
   // Remove everything created during the last hour.
-  BlockUntilBrowsingDataRemoved(now - base::TimeDelta::FromHours(1),
-                                base::Time::Max(),
+  BlockUntilBrowsingDataRemoved(now - base::Hours(1), base::Time::Max(),
                                 constants::DATA_TYPE_CONTENT_SETTINGS, false);
 
   // Nothing should be deleted as the zoomlevels were created earlier.
@@ -2487,8 +2481,7 @@
   zoom_map->SetZoomLevelForHost(kTestRegisterableDomain3, 2.0);
 
   // Remove everything changed during the last hour (domain3).
-  BlockUntilBrowsingDataRemoved(now - base::TimeDelta::FromHours(1),
-                                base::Time::Max(),
+  BlockUntilBrowsingDataRemoved(now - base::Hours(1), base::Time::Max(),
                                 constants::DATA_TYPE_CONTENT_SETTINGS, false);
 
   // Verify we still have the zoom_level for domain1.
@@ -2513,7 +2506,7 @@
   auto translate_prefs =
       ChromeTranslateClient::CreateTranslatePrefs(GetProfile()->GetPrefs());
   translate_prefs->AddSiteToNeverPromptList("google.com");
-  task_environment()->AdvanceClock(base::TimeDelta::FromDays(1));
+  task_environment()->AdvanceClock(base::Days(1));
   base::Time t = base::Time::Now();
   translate_prefs->AddSiteToNeverPromptList("maps.google.com");
 
@@ -3149,10 +3142,10 @@
   auto* action_history = PermissionActionsHistory::GetForProfile(GetProfile());
   action_history->RecordAction(permissions::PermissionAction::DENIED,
                                permissions::RequestType::kNotifications);
-  task_environment()->AdvanceClock(base::TimeDelta::FromDays(1));
+  task_environment()->AdvanceClock(base::Days(1));
   action_history->RecordAction(permissions::PermissionAction::DENIED,
                                permissions::RequestType::kNotifications);
-  task_environment()->AdvanceClock(base::TimeDelta::FromDays(1));
+  task_environment()->AdvanceClock(base::Days(1));
   base::Time third_recorded_time = base::Time::Now();
   action_history->RecordAction(permissions::PermissionAction::DENIED,
                                permissions::RequestType::kNotifications);
diff --git a/chrome/browser/browsing_data/counters/autofill_counter_browsertest.cc b/chrome/browser/browsing_data/counters/autofill_counter_browsertest.cc
index 704dad4b..7e939ad2 100644
--- a/chrome/browser/browsing_data/counters/autofill_counter_browsertest.cc
+++ b/chrome/browser/browsing_data/counters/autofill_counter_browsertest.cc
@@ -350,14 +350,14 @@
   AddAddress("John", "Doe", "Main Street 12345");
   base::ThreadPoolInstance::Get()->FlushForTesting();
 
-  const base::Time kTime2 = kTime1 + base::TimeDelta::FromSeconds(10);
+  const base::Time kTime2 = kTime1 + base::Seconds(10);
   test_clock.SetNow(kTime2);
   AddCreditCard("0123-4567-8910-1112", "10", "2015", "1");
   AddAddress("Jane", "Smith", "Main Street 12346");
   AddAddress("John", "Smith", "Side Street 47");
   base::ThreadPoolInstance::Get()->FlushForTesting();
 
-  const base::Time kTime3 = kTime2 + base::TimeDelta::FromSeconds(10);
+  const base::Time kTime3 = kTime2 + base::Seconds(10);
   test_clock.SetNow(kTime3);
   AddAutocompleteSuggestion("tel", "+987654321");
   AddCreditCard("1211-1098-7654-3210", "10", "2030", "1");
diff --git a/chrome/browser/browsing_data/counters/bookmark_counter_unittest.cc b/chrome/browser/browsing_data/counters/bookmark_counter_unittest.cc
index b2a78faa..ce0debf 100644
--- a/chrome/browser/browsing_data/counters/bookmark_counter_unittest.cc
+++ b/chrome/browser/browsing_data/counters/bookmark_counter_unittest.cc
@@ -107,13 +107,13 @@
   GURL url("https://google.com");
   const bookmarks::BookmarkNode* node1 =
       model()->AddURL(model()->bookmark_bar_node(), 0, u"4", url);
-  model()->SetDateAdded(node1, now - base::TimeDelta::FromMinutes(30));
+  model()->SetDateAdded(node1, now - base::Minutes(30));
   const bookmarks::BookmarkNode* node2 =
       model()->AddURL(model()->bookmark_bar_node(), 0, u"5", url);
-  model()->SetDateAdded(node2, now - base::TimeDelta::FromMinutes(90));
+  model()->SetDateAdded(node2, now - base::Minutes(90));
 
   browsing_data::BookmarkCounter counter(model());
-  counter.InitWithoutPref(now - base::TimeDelta::FromMinutes(60),
+  counter.InitWithoutPref(now - base::Minutes(60),
                           base::BindRepeating(&BookmarkCounterTest::Callback,
                                               base::Unretained(this)));
   counter.Restart();
diff --git a/chrome/browser/browsing_data/counters/cache_counter_browsertest.cc b/chrome/browser/browsing_data/counters/cache_counter_browsertest.cc
index 5fba93d..9a567fe 100644
--- a/chrome/browser/browsing_data/counters/cache_counter_browsertest.cc
+++ b/chrome/browser/browsing_data/counters/cache_counter_browsertest.cc
@@ -172,7 +172,7 @@
 #else
     if (GetResult() == 0u)
       break;
-    base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(100));
+    base::PlatformThread::Sleep(base::Milliseconds(100));
 #endif
   }
   EXPECT_EQ(0u, GetResult());
diff --git a/chrome/browser/browsing_data/counters/conditional_cache_counting_helper_browsertest.cc b/chrome/browser/browsing_data/counters/conditional_cache_counting_helper_browsertest.cc
index 1d6126d..8d87564 100644
--- a/chrome/browser/browsing_data/counters/conditional_cache_counting_helper_browsertest.cc
+++ b/chrome/browser/browsing_data/counters/conditional_cache_counting_helper_browsertest.cc
@@ -126,14 +126,14 @@
   base::Time t1 = base::Time::Now();
   CreateCacheEntries(keys1);
 
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(kTimeoutMs));
+  base::PlatformThread::Sleep(base::Milliseconds(kTimeoutMs));
   base::Time t2 = base::Time::Now();
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(kTimeoutMs));
+  base::PlatformThread::Sleep(base::Milliseconds(kTimeoutMs));
 
   std::set<std::string> keys2 = {"6", "7"};
   CreateCacheEntries(keys2);
 
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(kTimeoutMs));
+  base::PlatformThread::Sleep(base::Milliseconds(kTimeoutMs));
   base::Time t3 = base::Time::Now();
 
   // Count all entries.
diff --git a/chrome/browser/browsing_data/counters/downloads_counter_browsertest.cc b/chrome/browser/browsing_data/counters/downloads_counter_browsertest.cc
index ab275278..4f7522f1 100644
--- a/chrome/browser/browsing_data/counters/downloads_counter_browsertest.cc
+++ b/chrome/browser/browsing_data/counters/downloads_counter_browsertest.cc
@@ -152,9 +152,7 @@
         browsing_data::prefs::kDeleteTimePeriod, static_cast<int>(period));
   }
 
-  void RevertTimeInHours(int days) {
-    time_ -= base::TimeDelta::FromHours(days);
-  }
+  void RevertTimeInHours(int days) { time_ -= base::Hours(days); }
 
   // Waiting for downloads to be stored. ---------------------------------------
 
diff --git a/chrome/browser/browsing_data/counters/history_counter_browsertest.cc b/chrome/browser/browsing_data/counters/history_counter_browsertest.cc
index 47f1510..c96294bd 100644
--- a/chrome/browser/browsing_data/counters/history_counter_browsertest.cc
+++ b/chrome/browser/browsing_data/counters/history_counter_browsertest.cc
@@ -55,9 +55,7 @@
 
   void SetTime(base::Time time) { time_ = time; }
 
-  void RevertTimeInDays(int days) {
-    time_ -= base::TimeDelta::FromDays(days);
-  }
+  void RevertTimeInDays(int days) { time_ -= base::Days(days); }
 
   void SetHistoryDeletionPref(bool value) {
     browser()->profile()->GetPrefs()->SetBoolean(
@@ -321,10 +319,8 @@
   // No entries locally. There are some entries in Sync, but they are out of the
   // time range.
   SetDeletionPeriodPref(browsing_data::TimePeriod::LAST_HOUR);
-  service->AddSyncedVisit(
-      "www.google.com", GetCurrentTime() - base::TimeDelta::FromHours(2));
-  service->AddSyncedVisit(
-      "www.chrome.com", GetCurrentTime() - base::TimeDelta::FromHours(2));
+  service->AddSyncedVisit("www.google.com", GetCurrentTime() - base::Hours(2));
+  service->AddSyncedVisit("www.chrome.com", GetCurrentTime() - base::Hours(2));
   service->SetupFakeResponse(true /* success */, net::HTTP_OK);
   counter.Restart();
   WaitForCounting();
diff --git a/chrome/browser/browsing_data/counters/passwords_counter_browsertest.cc b/chrome/browser/browsing_data/counters/passwords_counter_browsertest.cc
index 88d59c1..63bbdc9 100644
--- a/chrome/browser/browsing_data/counters/passwords_counter_browsertest.cc
+++ b/chrome/browser/browsing_data/counters/passwords_counter_browsertest.cc
@@ -70,9 +70,7 @@
         browsing_data::prefs::kDeleteTimePeriod, static_cast<int>(period));
   }
 
-  void RevertTimeInDays(int days) {
-    time_ -= base::TimeDelta::FromDays(days);
-  }
+  void RevertTimeInDays(int days) { time_ -= base::Days(days); }
 
   void SetTimesUsed(int occurrences) { times_used_ = occurrences; }
 
diff --git a/chrome/browser/browsing_data/counters/site_data_counting_helper_unittest.cc b/chrome/browser/browsing_data/counters/site_data_counting_helper_unittest.cc
index b91a1b4..2143a104 100644
--- a/chrome/browser/browsing_data/counters/site_data_counting_helper_unittest.cc
+++ b/chrome/browser/browsing_data/counters/site_data_counting_helper_unittest.cc
@@ -136,8 +136,8 @@
 
 TEST_F(SiteDataCountingHelperTest, CountCookies) {
   base::Time now = base::Time::Now();
-  base::Time last_hour = now - base::TimeDelta::FromHours(1);
-  base::Time yesterday = now - base::TimeDelta::FromDays(1);
+  base::Time last_hour = now - base::Hours(1);
+  base::Time yesterday = now - base::Days(1);
 
   CreateCookies(last_hour, {"https://example.com"});
   CreateCookies(yesterday, {"https://google.com", "https://bing.com"});
@@ -157,12 +157,12 @@
   CreateLocalStorage({"https://example.com"});
 
   // Advance time and set more data "now".
-  task_environment_.AdvanceClock(base::TimeDelta::FromDays(1));
+  task_environment_.AdvanceClock(base::Days(1));
   CreateLocalStorage({"https://bing.com"});
 
   base::Time now = base::Time::Now();
-  base::Time last_hour = now - base::TimeDelta::FromHours(1);
-  base::Time two_days_ago = now - base::TimeDelta::FromDays(2);
+  base::Time last_hour = now - base::Hours(1);
+  base::Time two_days_ago = now - base::Days(2);
 
   EXPECT_EQ(1, CountEntries(base::Time(), last_hour));
   EXPECT_EQ(1, CountEntries(last_hour, base::Time::Max()));
diff --git a/chrome/browser/browsing_data/counters/site_settings_counter_unittest.cc b/chrome/browser/browsing_data/counters/site_settings_counter_unittest.cc
index 7a093df..01fc767 100644
--- a/chrome/browser/browsing_data/counters/site_settings_counter_unittest.cc
+++ b/chrome/browser/browsing_data/counters/site_settings_counter_unittest.cc
@@ -140,19 +140,19 @@
   map()->SetClockForTesting(&test_clock);
 
   // Create a setting at Now()-90min.
-  test_clock.SetNow(base::Time::Now() - base::TimeDelta::FromMinutes(90));
+  test_clock.SetNow(base::Time::Now() - base::Minutes(90));
   map()->SetContentSettingDefaultScope(
       GURL("http://www.google.com"), GURL("http://www.google.com"),
       ContentSettingsType::POPUPS, CONTENT_SETTING_ALLOW);
 
   // Create a setting at Now()-30min.
-  test_clock.SetNow(base::Time::Now() - base::TimeDelta::FromMinutes(30));
+  test_clock.SetNow(base::Time::Now() - base::Minutes(30));
   map()->SetContentSettingDefaultScope(
       GURL("http://maps.google.com"), GURL("http://maps.google.com"),
       ContentSettingsType::GEOLOCATION, CONTENT_SETTING_ALLOW);
 
   // Create a setting at Now()-31days.
-  test_clock.SetNow(base::Time::Now() - base::TimeDelta::FromDays(31));
+  test_clock.SetNow(base::Time::Now() - base::Days(31));
   map()->SetContentSettingDefaultScope(
       GURL("http://www.google.com"), GURL("http://www.google.com"),
       ContentSettingsType::MEDIASTREAM_CAMERA, CONTENT_SETTING_ALLOW);
@@ -277,10 +277,9 @@
   handler_registry()->OnAcceptRegisterProtocolHandler(
       ProtocolHandler("news", GURL("https://www.google.com"), now,
                       blink::ProtocolHandlerSecurityLevel::kStrict));
-  handler_registry()->OnAcceptRegisterProtocolHandler(
-      ProtocolHandler("mailto", GURL("https://maps.google.com"),
-                      now - base::TimeDelta::FromMinutes(90),
-                      blink::ProtocolHandlerSecurityLevel::kStrict));
+  handler_registry()->OnAcceptRegisterProtocolHandler(ProtocolHandler(
+      "mailto", GURL("https://maps.google.com"), now - base::Minutes(90),
+      blink::ProtocolHandlerSecurityLevel::kStrict));
   EXPECT_TRUE(handler_registry()->IsHandledProtocol("news"));
   EXPECT_TRUE(handler_registry()->IsHandledProtocol("mailto"));
 
diff --git a/chrome/browser/browsing_data/mock_browsing_data_media_license_helper.cc b/chrome/browser/browsing_data/mock_browsing_data_media_license_helper.cc
index 242023a..cc0e7a3c 100644
--- a/chrome/browser/browsing_data/mock_browsing_data_media_license_helper.cc
+++ b/chrome/browser/browsing_data/mock_browsing_data_media_license_helper.cc
@@ -32,10 +32,8 @@
 void MockBrowsingDataMediaLicenseHelper::AddMediaLicenseSamples() {
   const GURL kOrigin1("https://media1/");
   const GURL kOrigin2("https://media2/");
-  const base::Time ten_days_ago =
-      base::Time::Now() - base::TimeDelta::FromDays(10);
-  const base::Time twenty_days_ago =
-      base::Time::Now() - base::TimeDelta::FromDays(20);
+  const base::Time ten_days_ago = base::Time::Now() - base::Days(10);
+  const base::Time twenty_days_ago = base::Time::Now() - base::Days(20);
 
   media_licenses_.push_back(MediaLicenseInfo(kOrigin1, 1000, ten_days_ago));
   media_licenses_.push_back(MediaLicenseInfo(kOrigin2, 50, twenty_days_ago));
diff --git a/chrome/browser/captive_portal/captive_portal_browsertest.cc b/chrome/browser/captive_portal/captive_portal_browsertest.cc
index c2a03a8..f7301ba 100644
--- a/chrome/browser/captive_portal/captive_portal_browsertest.cc
+++ b/chrome/browser/captive_portal/captive_portal_browsertest.cc
@@ -987,8 +987,7 @@
   // Set SSL interstitial delay long enough so that a captive portal result
   // is guaranteed to arrive during this window, and a captive portal
   // error page is displayed instead of an SSL interstitial.
-  SSLErrorHandler::SetInterstitialDelayForTesting(
-      base::TimeDelta::FromHours(1));
+  SSLErrorHandler::SetInterstitialDelayForTesting(base::Hours(1));
 }
 
 bool CaptivePortalBrowserTest::OnIntercept(
@@ -1261,7 +1260,7 @@
   EXPECT_EQ(0, NumLoadingTabs());
 
   // Set a slow SSL load time to prevent the timer from triggering.
-  SetSlowSSLLoadTime(tab_reloader, base::TimeDelta::FromDays(1));
+  SetSlowSSLLoadTime(tab_reloader, base::Days(1));
 }
 
 void CaptivePortalBrowserTest::FastTimeoutNoCaptivePortal(
@@ -1274,7 +1273,7 @@
   captive_portal::CaptivePortalTabReloader* tab_reloader =
       GetTabReloader(browser->tab_strip_model()->GetActiveWebContents());
   ASSERT_TRUE(tab_reloader);
-  SetSlowSSLLoadTime(tab_reloader, base::TimeDelta::FromHours(1));
+  SetSlowSSLLoadTime(tab_reloader, base::Hours(1));
 
   MultiNavigationObserver navigation_observer;
   CaptivePortalObserver portal_observer(browser->profile());
@@ -1420,7 +1419,7 @@
             GetStateOfTabReloaderAt(browser, initial_active_index));
 
   // Reset the load time to be large, so the timer won't trigger on a reload.
-  SetSlowSSLLoadTime(tab_reloader, base::TimeDelta::FromHours(1));
+  SetSlowSSLLoadTime(tab_reloader, base::Hours(1));
 
   if (out_login_browser)
     *out_login_browser = login_browser;
@@ -1454,7 +1453,7 @@
   captive_portal::CaptivePortalTabReloader* tab_reloader =
       GetTabReloader(tab_strip_model->GetActiveWebContents());
   ASSERT_TRUE(tab_reloader);
-  SetSlowSSLLoadTime(tab_reloader, base::TimeDelta::FromHours(1));
+  SetSlowSSLLoadTime(tab_reloader, base::Hours(1));
 
   // Number of tabs expected to be open after the captive portal checks
   // have completed.
@@ -1802,7 +1801,7 @@
   // A non-zero delay makes it more likely that
   // captive_portal::CaptivePortalTabHelper will be confused by events relating
   // to canceling the old navigation.
-  SetSlowSSLLoadTime(tab_reloader, base::TimeDelta::FromSeconds(2));
+  SetSlowSSLLoadTime(tab_reloader, base::Seconds(2));
   CaptivePortalObserver portal_observer(browser->profile());
 
   // Navigate the error tab to another slow loading page.  Can't have
@@ -1831,7 +1830,7 @@
 
   // Simulate logging in.
   tab_strip_model->ActivateTabAt(1, {TabStripModel::GestureType::kOther});
-  SetSlowSSLLoadTime(tab_reloader, base::TimeDelta::FromDays(1));
+  SetSlowSSLLoadTime(tab_reloader, base::Days(1));
   Login(browser, 1 /* num_loading_tabs */, 0 /* num_timed_out_tabs */,
         1 /* expected_portal_checks */);
 
@@ -2634,7 +2633,7 @@
                    tab_strip_model->GetWebContentsAt(1)));
   EXPECT_EQ(1, NumLoadingTabs());
 
-  SetSlowSSLLoadTime(tab_reloader, base::TimeDelta::FromDays(1));
+  SetSlowSSLLoadTime(tab_reloader, base::Days(1));
   Login(browser(), 1 /* num_loading_tabs */, 0 /* num_timed_out_tabs */,
         1 /* expected_portal_checks */);
   FailLoadsAfterLogin(browser(), 1);
@@ -2689,7 +2688,7 @@
                    tab_strip_model->GetWebContentsAt(1)));
   EXPECT_EQ(1, NumLoadingTabs());
 
-  SetSlowSSLLoadTime(tab_reloader, base::TimeDelta::FromDays(1));
+  SetSlowSSLLoadTime(tab_reloader, base::Days(1));
   Login(browser(), 1 /* num_loading_tabs */, 0 /* num_timed_out_tabs */,
         1 /* expected_portal_checks */);
   FailLoadsAfterLogin(browser(), 1);
diff --git a/chrome/browser/cart/cart_features.h b/chrome/browser/cart/cart_features.h
index f6376d1..c53d695 100644
--- a/chrome/browser/cart/cart_features.h
+++ b/chrome/browser/cart/cart_features.h
@@ -14,7 +14,7 @@
 constexpr base::FeatureParam<base::TimeDelta> kDiscountFetchDelayParam(
     &ntp_features::kNtpChromeCartModule,
     "discount-fetch-delay",
-    base::TimeDelta::FromHours(6));
+    base::Hours(6));
 
 // Check if a URL belongs to a partner merchant of rule discount.
 bool IsRuleDiscountPartnerMerchant(const GURL& url);
diff --git a/chrome/browser/cart/cart_service_browsertest.cc b/chrome/browser/cart/cart_service_browsertest.cc
index e67effac..dd64b098 100644
--- a/chrome/browser/cart/cart_service_browsertest.cc
+++ b/chrome/browser/cart/cart_service_browsertest.cc
@@ -122,7 +122,7 @@
         ui_test_utils::BROWSER_TEST_WAIT_FOR_LOAD_STOP);
     // TODO(crbug.com/1206094): Investigate TabStripModelObserver-based waiting
     // mechanism.
-    base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(2));
+    base::PlatformThread::Sleep(base::Seconds(2));
     base::RunLoop().RunUntilIdle();
   }
 
diff --git a/chrome/browser/cart/cart_service_unittest.cc b/chrome/browser/cart/cart_service_unittest.cc
index 7c72e9a..219c2377 100644
--- a/chrome/browser/cart/cart_service_unittest.cc
+++ b/chrome/browser/cart/cart_service_unittest.cc
@@ -1166,7 +1166,7 @@
   const ShoppingCarts result = {{kMockMerchantA, merchant_proto}};
 
   merchant_proto.set_timestamp(
-      (base::Time::Now() - base::TimeDelta::FromDays(16)).ToDoubleT());
+      (base::Time::Now() - base::Days(16)).ToDoubleT());
   service_->AddCart(kMockMerchantA, absl::nullopt, merchant_proto);
   task_environment_.RunUntilIdle();
 
@@ -1201,7 +1201,7 @@
   run_loop[3].Run();
 
   merchant_proto.set_timestamp(
-      (base::Time::Now() - base::TimeDelta::FromDays(13)).ToDoubleT());
+      (base::Time::Now() - base::Days(13)).ToDoubleT());
   merchant_proto.set_is_removed(false);
   service_->GetDB()->AddCart(
       kMockMerchantA, merchant_proto,
@@ -1744,8 +1744,7 @@
 TEST_F(CartServiceDiscountFetchTest, TestFetchWhenBeyondEnforcedDelay) {
   // Set last fetch timestamp so that the current time is beyond the enforced
   // delay.
-  base::Time last_fetch_time =
-      base::Time::Now() - base::TimeDelta::FromSeconds(20);
+  base::Time last_fetch_time = base::Time::Now() - base::Seconds(20);
   profile_.GetPrefs()->SetTime(prefs::kCartDiscountLastFetchedTime,
                                last_fetch_time);
   StartGettingDiscount();
@@ -1767,7 +1766,7 @@
   EXPECT_EQ(profile_.GetPrefs()->GetTime(prefs::kCartDiscountLastFetchedTime),
             last_fetch_time);
   // Wait so that the current time is beyond the enforced delay.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_environment_.FastForwardBy(base::Seconds(2));
   StartGettingDiscount();
   task_environment_.RunUntilIdle();
   EXPECT_NE(profile_.GetPrefs()->GetTime(prefs::kCartDiscountLastFetchedTime),
diff --git a/chrome/browser/cart/fetch_discount_worker_unittest.cc b/chrome/browser/cart/fetch_discount_worker_unittest.cc
index 770072d3..66582f5 100644
--- a/chrome/browser/cart/fetch_discount_worker_unittest.cc
+++ b/chrome/browser/cart/fetch_discount_worker_unittest.cc
@@ -370,7 +370,7 @@
   CreateCartDiscountFetcherFactory(std::move(fake_result), false);
   CreateWorker();
 
-  fetch_discount_worker_->Start(base::TimeDelta::FromMilliseconds(0));
+  fetch_discount_worker_->Start(base::Milliseconds(0));
   task_environment_.RunUntilIdle();
   EXPECT_NE(profile_.GetPrefs()->GetTime(prefs::kCartDiscountLastFetchedTime),
             base::Time());
@@ -400,7 +400,7 @@
 
   CreateWorker();
 
-  fetch_discount_worker_->Start(base::TimeDelta::FromMilliseconds(0));
+  fetch_discount_worker_->Start(base::Milliseconds(0));
   task_environment_.RunUntilIdle();
   EXPECT_EQ(1, FakeCartDiscountFetcher::GetFetchCount());
 }
@@ -431,7 +431,7 @@
 
   CreateWorker();
 
-  fetch_discount_worker_->Start(base::TimeDelta::FromMilliseconds(0));
+  fetch_discount_worker_->Start(base::Milliseconds(0));
   task_environment_.RunUntilIdle();
   EXPECT_EQ(1, FakeCartDiscountFetcher::GetFetchCount());
 }
@@ -460,7 +460,7 @@
 
   CreateWorker();
 
-  fetch_discount_worker_->Start(base::TimeDelta::FromMilliseconds(0));
+  fetch_discount_worker_->Start(base::Milliseconds(0));
   task_environment_.RunUntilIdle();
   EXPECT_EQ(1, FakeCartDiscountFetcher::GetFetchCount());
 }
@@ -489,11 +489,11 @@
 
   CreateWorker();
 
-  fetch_discount_worker_->Start(base::TimeDelta::FromMilliseconds(0));
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  fetch_discount_worker_->Start(base::Milliseconds(0));
+  task_environment_.FastForwardBy(base::Milliseconds(1));
   EXPECT_EQ(1, FakeCartDiscountFetcher::GetFetchCount());
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(7));
+  task_environment_.FastForwardBy(base::Hours(7));
   task_environment_.RunUntilIdle();
   EXPECT_EQ(2, FakeCartDiscountFetcher::GetFetchCount());
 }
@@ -525,7 +525,7 @@
 
   CreateWorker();
 
-  fetch_discount_worker_->Start(base::TimeDelta::FromMilliseconds(0));
+  fetch_discount_worker_->Start(base::Milliseconds(0));
   task_environment_.RunUntilIdle();
   EXPECT_EQ(1, FakeCartDiscountFetcher::GetFetchCount());
 }
@@ -549,7 +549,7 @@
 
   CreateWorker();
 
-  fetch_discount_worker_->Start(base::TimeDelta::FromMilliseconds(0));
+  fetch_discount_worker_->Start(base::Milliseconds(0));
   task_environment_.RunUntilIdle();
   EXPECT_EQ(0, FakeCartDiscountFetcher::GetFetchCount());
 }
@@ -575,7 +575,7 @@
 
   CreateWorker();
 
-  fetch_discount_worker_->Start(base::TimeDelta::FromMilliseconds(0));
+  fetch_discount_worker_->Start(base::Milliseconds(0));
   task_environment_.RunUntilIdle();
   EXPECT_EQ(1, FakeCartDiscountFetcher::GetFetchCount());
 }
diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc
index 6ead8b8..dee2069 100644
--- a/chrome/browser/chrome_browser_main.cc
+++ b/chrome/browser/chrome_browser_main.cc
@@ -1174,7 +1174,7 @@
   content::GetUIThreadTaskRunner({})->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&WebRtcLogUtil::DeleteOldWebRtcLogFilesForAllProfiles),
-      base::TimeDelta::FromMinutes(1));
+      base::Minutes(1));
 
 #if !defined(OS_ANDROID)
   if (base::FeatureList::IsEnabled(features::kWebUsb)) {
@@ -1544,7 +1544,7 @@
       base::WrapUnique(new ChromeRLZTrackerDelegate));
   rlz::RLZTracker::InitRlzDelayed(
       first_run::IsChromeFirstRun(), ping_delay < 0,
-      base::TimeDelta::FromSeconds(abs(ping_delay)),
+      base::Seconds(abs(ping_delay)),
       ChromeRLZTrackerDelegate::IsGoogleDefaultSearch(profile_),
       ChromeRLZTrackerDelegate::IsGoogleHomepage(profile_),
       ChromeRLZTrackerDelegate::IsGoogleInStartpages(profile_));
@@ -1816,8 +1816,7 @@
 
   // Two different types of hang detection cannot attempt to upload crashes at
   // the same time or they would interfere with each other.
-  constexpr base::TimeDelta kShutdownHangDelay{
-      base::TimeDelta::FromSeconds(300)};
+  constexpr base::TimeDelta kShutdownHangDelay{base::Seconds(300)};
   if (base::HangWatcher::IsCrashReportingEnabled()) {
     // Use ShutdownWatcherHelper logic to choose delay to get identical
     // behavior.
diff --git a/chrome/browser/chrome_browser_main_android.cc b/chrome/browser/chrome_browser_main_android.cc
index cafb256..f21f4ef5 100644
--- a/chrome/browser/chrome_browser_main_android.cc
+++ b/chrome/browser/chrome_browser_main_android.cc
@@ -94,7 +94,7 @@
 
   base::ThreadPool::PostDelayedTask(
       FROM_HERE, {base::MayBlock(), base::TaskPriority::BEST_EFFORT},
-      base::BindOnce(&ReportSeccompSupport), base::TimeDelta::FromMinutes(1));
+      base::BindOnce(&ReportSeccompSupport), base::Minutes(1));
 
   RegisterChromeJavaMojoInterfaces();
 }
diff --git a/chrome/browser/chrome_browser_main_win.cc b/chrome/browser/chrome_browser_main_win.cc
index c798332..52f93f4f 100644
--- a/chrome/browser/chrome_browser_main_win.cc
+++ b/chrome/browser/chrome_browser_main_win.cc
@@ -687,8 +687,7 @@
   // Record UMA data about whether the fault-tolerant heap is enabled.
   // Use a delayed task to minimize the impact on startup time.
   content::GetUIThreadTaskRunner({})->PostDelayedTask(
-      FROM_HERE, base::BindOnce(&DetectFaultTolerantHeap),
-      base::TimeDelta::FromMinutes(1));
+      FROM_HERE, base::BindOnce(&DetectFaultTolerantHeap), base::Minutes(1));
 
   // Record Processor Metrics. This is very low priority, hence posting as
   // BEST_EFFORT to start after Chrome startup has completed. This metric is
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
index d162851..cc4e150e 100644
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -4321,7 +4321,7 @@
 
     // value.
     DCHECK(it.second.is_int());
-    base::TimeDelta delta = base::TimeDelta::FromMinutes(it.second.GetInt());
+    base::TimeDelta delta = base::Minutes(it.second.GetInt());
     base::Time expiration_time = base::Time::FromDeltaSinceWindowsEpoch(delta);
 
     expiration_times[service] = expiration_time;
@@ -6179,7 +6179,7 @@
   // we have minimum/maximum values on it.
   DCHECK_LE(0, seconds);
   DCHECK_LE(seconds, 5);
-  return base::TimeDelta::FromSeconds(seconds);
+  return base::Seconds(seconds);
 }
 
 void ChromeContentBrowserClient::OnKeepaliveTimerFired(
diff --git a/chrome/browser/chrome_content_browser_client_browsertest.cc b/chrome/browser/chrome_content_browser_client_browsertest.cc
index 7ae001c..7db19c7 100644
--- a/chrome/browser/chrome_content_browser_client_browsertest.cc
+++ b/chrome/browser/chrome_content_browser_client_browsertest.cc
@@ -544,8 +544,7 @@
       g_browser_process->profile_manager()->GetPrimaryUserProfile();
   profile->GetPrefs()->SetInteger(prefs::kFetchKeepaliveDurationOnShutdown, 2);
 
-  EXPECT_EQ(client_->GetKeepaliveTimerTimeout(profile),
-            base::TimeDelta::FromSeconds(2));
+  EXPECT_EQ(client_->GetKeepaliveTimerTimeout(profile), base::Seconds(2));
 }
 
 IN_PROC_BROWSER_TEST_F(KeepaliveDurationOnShutdownTest, DynamicUpdate) {
@@ -553,13 +552,11 @@
       g_browser_process->profile_manager()->GetPrimaryUserProfile();
   profile->GetPrefs()->SetInteger(prefs::kFetchKeepaliveDurationOnShutdown, 2);
 
-  EXPECT_EQ(client_->GetKeepaliveTimerTimeout(profile),
-            base::TimeDelta::FromSeconds(2));
+  EXPECT_EQ(client_->GetKeepaliveTimerTimeout(profile), base::Seconds(2));
 
   profile->GetPrefs()->SetInteger(prefs::kFetchKeepaliveDurationOnShutdown, 3);
 
-  EXPECT_EQ(client_->GetKeepaliveTimerTimeout(profile),
-            base::TimeDelta::FromSeconds(3));
+  EXPECT_EQ(client_->GetKeepaliveTimerTimeout(profile), base::Seconds(3));
 }
 
 #endif  // !defined(OS_ANDROID)
diff --git a/chrome/browser/chrome_web_platform_security_metrics_browsertest.cc b/chrome/browser/chrome_web_platform_security_metrics_browsertest.cc
index 5bf03dc..b027e51 100644
--- a/chrome/browser/chrome_web_platform_security_metrics_browsertest.cc
+++ b/chrome/browser/chrome_web_platform_security_metrics_browsertest.cc
@@ -103,7 +103,7 @@
       if (count == expected_count)
         return;
 
-      base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(5));
+      base::PlatformThread::Sleep(base::Milliseconds(5));
     }
   }
 
diff --git a/chrome/browser/chromeos/app_mode/app_session.cc b/chrome/browser/chromeos/app_mode/app_session.cc
index 5ca0cf6e..9af14900 100644
--- a/chrome/browser/chromeos/app_mode/app_session.cc
+++ b/chrome/browser/chromeos/app_mode/app_session.cc
@@ -116,7 +116,7 @@
   const int kDumpWaitSeconds = 10;
   content::GetUIThreadTaskRunner({})->PostDelayedTask(
       FROM_HERE, base::BindOnce(&RebootDevice),
-      base::TimeDelta::FromSeconds(dump_requested ? kDumpWaitSeconds : 0));
+      base::Seconds(dump_requested ? kDumpWaitSeconds : 0));
 }
 
 }  // namespace
diff --git a/chrome/browser/chromeos/app_mode/kiosk_session_plugin_handler.cc b/chrome/browser/chromeos/app_mode/kiosk_session_plugin_handler.cc
index 764d879..506ed25 100644
--- a/chrome/browser/chromeos/app_mode/kiosk_session_plugin_handler.cc
+++ b/chrome/browser/chromeos/app_mode/kiosk_session_plugin_handler.cc
@@ -61,7 +61,7 @@
   if (!hung_plugins_.empty()) {
     if (!hung_wait_timer_.IsRunning()) {
       hung_wait_timer_.Start(
-          FROM_HERE, base::TimeDelta::FromSeconds(kHungWaitSeconds), this,
+          FROM_HERE, base::Seconds(kHungWaitSeconds), this,
           &KioskSessionPluginHandler::Observer::OnHungWaitTimer);
     }
   } else {
diff --git a/chrome/browser/chromeos/camera_presence_notifier.cc b/chrome/browser/chromeos/camera_presence_notifier.cc
index 961ada7c..31bf1f2 100644
--- a/chrome/browser/chromeos/camera_presence_notifier.cc
+++ b/chrome/browser/chromeos/camera_presence_notifier.cc
@@ -35,11 +35,9 @@
   observer->OnCameraPresenceCheckDone(camera_present_on_last_check_);
   if (had_no_observers) {
     CheckCameraPresence();
-    camera_check_timer_.Start(
-        FROM_HERE,
-        base::TimeDelta::FromSeconds(kCameraCheckIntervalSeconds),
-        this,
-        &CameraPresenceNotifier::CheckCameraPresence);
+    camera_check_timer_.Start(FROM_HERE,
+                              base::Seconds(kCameraCheckIntervalSeconds), this,
+                              &CameraPresenceNotifier::CheckCameraPresence);
   }
 }
 
diff --git a/chrome/browser/chromeos/eol_notification.cc b/chrome/browser/chromeos/eol_notification.cc
index 609c832b8..ba14f1e 100644
--- a/chrome/browser/chromeos/eol_notification.cc
+++ b/chrome/browser/chromeos/eol_notification.cc
@@ -39,11 +39,11 @@
 constexpr int kSecondWarningDaysInAdvance = 90;
 
 base::Time FirstWarningDate(base::Time eol_date) {
-  return eol_date - base::TimeDelta::FromDays(kFirstWarningDaysInAdvance);
+  return eol_date - base::Days(kFirstWarningDaysInAdvance);
 }
 
 base::Time SecondWarningDate(const base::Time& eol_date) {
-  return eol_date - base::TimeDelta::FromDays(kSecondWarningDaysInAdvance);
+  return eol_date - base::Days(kSecondWarningDaysInAdvance);
 }
 
 }  // namespace
diff --git a/chrome/browser/chromeos/extensions/autotest_private/autotest_private_api.cc b/chrome/browser/chromeos/extensions/autotest_private/autotest_private_api.cc
index 21f47a4..4b832ce 100644
--- a/chrome/browser/chromeos/extensions/autotest_private/autotest_private_api.cc
+++ b/chrome/browser/chromeos/extensions/autotest_private/autotest_private_api.cc
@@ -979,7 +979,7 @@
       : input_injector_(
             ui::OzonePlatform::GetInstance()->CreateSystemInputInjector()),
         host_(host),
-        interval_(base::TimeDelta::FromSeconds(1) /
+        interval_(base::Seconds(1) /
                   std::max(host->compositor()->refresh_rate(), 60.0f)),
         closure_(std::move(closure)),
         weak_ptr_factory_(this) {
@@ -1836,11 +1836,11 @@
     package_value->SetKey("lastBackupAndroidId",
                           base::Value(base::NumberToString(
                               package_info->last_backup_android_id)));
-    package_value->SetKey("lastBackupTime",
-                          base::Value(base::Time::FromDeltaSinceWindowsEpoch(
-                                          base::TimeDelta::FromMicroseconds(
-                                              package_info->last_backup_time))
-                                          .ToJsTime()));
+    package_value->SetKey(
+        "lastBackupTime",
+        base::Value(base::Time::FromDeltaSinceWindowsEpoch(
+                        base::Microseconds(package_info->last_backup_time))
+                        .ToJsTime()));
     package_value->SetKey("shouldSync", base::Value(package_info->should_sync));
     package_value->SetKey("system", base::Value(package_info->system));
     package_value->SetKey("vpnProvider",
@@ -2516,7 +2516,7 @@
 
   // Set up a timer to finish waiting after 10 seconds
   timeout_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromSeconds(10),
+      FROM_HERE, base::Seconds(10),
       base::BindOnce(
           &AutotestPrivateGetPrinterListFunction::RespondWithTimeoutError,
           this));
@@ -2741,7 +2741,7 @@
   // when timeout.
   enabled_ = params->enabled;
   timeout_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(params->timeout_ms),
+      FROM_HERE, base::Milliseconds(params->timeout_ms),
       base::BindOnce(&AutotestPrivateSetAssistantEnabledFunction::Timeout,
                      this));
   return RespondLater();
@@ -3005,7 +3005,7 @@
   // to |this| to avoid being destructed. Also make sure we stop and respond
   // when timeout.
   timeout_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(params->timeout_ms),
+      FROM_HERE, base::Milliseconds(params->timeout_ms),
       base::BindOnce(&AutotestPrivateSendAssistantTextQueryFunction::Timeout,
                      this));
 
@@ -3069,7 +3069,7 @@
 
   // Start waiting for the response before time out.
   timeout_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromSeconds(params->timeout_s),
+      FROM_HERE, base::Seconds(params->timeout_s),
       base::BindOnce(
           &AutotestPrivateWaitForAssistantQueryStatusFunction::Timeout, this));
   return RespondLater();
@@ -3558,7 +3558,7 @@
         FROM_HERE,
         base::BindOnce(&AutotestPrivateSetOverviewModeStateFunction::Respond,
                        this, std::move(arg)),
-        base::TimeDelta::FromSeconds(1));
+        base::Seconds(1));
   } else {
     Respond(std::move(arg));
   }
@@ -4212,7 +4212,7 @@
   // - There is no way to know whether ExecuteCommand fails.
   // - Current URL might not have a valid PWA.
   timeout_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(params->timeout_ms),
+      FROM_HERE, base::Milliseconds(params->timeout_ms),
       base::BindOnce(
           &AutotestPrivateInstallPWAForCurrentURLFunction::PWATimeout, this));
   return RespondLater();
@@ -5042,7 +5042,7 @@
   // gpu-process crashes and has no valid data to report. Start a timer to
   // handle this case.
   timeout_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromSeconds(5),
+      FROM_HERE, base::Seconds(5),
       base::BindOnce(&AutotestPrivateStopSmoothnessTrackingFunction::OnTimeOut,
                      this, display_id));
 
@@ -5106,7 +5106,7 @@
 
   // Wait for photo transition animation completed in ambient mode.
   ash::AutotestAmbientApi().WaitForPhotoTransitionAnimationCompleted(
-      params->num_completions, base::TimeDelta::FromSeconds(params->timeout),
+      params->num_completions, base::Seconds(params->timeout),
       /*on_complete=*/
       base::BindOnce(&AutotestPrivateWaitForAmbientPhotoAnimationFunction::
                          OnPhotoTransitionAnimationCompleted,
diff --git a/chrome/browser/chromeos/extensions/file_manager/device_event_router.cc b/chrome/browser/chromeos/extensions/file_manager/device_event_router.cc
index 3f9aad24..be9435d 100644
--- a/chrome/browser/chromeos/extensions/file_manager/device_event_router.cc
+++ b/chrome/browser/chromeos/extensions/file_manager/device_event_router.cc
@@ -19,8 +19,8 @@
 DeviceEventRouter::DeviceEventRouter(
     SystemNotificationManager* notification_manager)
     : notification_manager_(notification_manager),
-      resume_time_delta_(base::TimeDelta::FromSeconds(10)),
-      startup_time_delta_(base::TimeDelta::FromSeconds(10)),
+      resume_time_delta_(base::Seconds(10)),
+      startup_time_delta_(base::Seconds(10)),
       is_starting_up_(false),
       is_resuming_(false) {}
 
diff --git a/chrome/browser/chromeos/extensions/file_manager/device_event_router_unittest.cc b/chrome/browser/chromeos/extensions/file_manager/device_event_router_unittest.cc
index dd62c5b..96a5e3dc 100644
--- a/chrome/browser/chromeos/extensions/file_manager/device_event_router_unittest.cc
+++ b/chrome/browser/chromeos/extensions/file_manager/device_event_router_unittest.cc
@@ -34,8 +34,7 @@
  public:
   explicit DeviceEventRouterImpl(
       SystemNotificationManager* notification_manager)
-      : DeviceEventRouter(notification_manager,
-                          base::TimeDelta::FromSeconds(0)),
+      : DeviceEventRouter(notification_manager, base::Seconds(0)),
         external_storage_disabled(false) {}
 
   DeviceEventRouterImpl(const DeviceEventRouterImpl&) = delete;
diff --git a/chrome/browser/chromeos/extensions/file_manager/logged_extension_function.cc b/chrome/browser/chromeos/extensions/file_manager/logged_extension_function.cc
index 7e2a064c8..d989e60 100644
--- a/chrome/browser/chromeos/extensions/file_manager/logged_extension_function.cc
+++ b/chrome/browser/chromeos/extensions/file_manager/logged_extension_function.cc
@@ -16,9 +16,8 @@
 namespace {
 
 constexpr base::TimeDelta kDefaultSlowOperationThreshold =
-    base::TimeDelta::FromMilliseconds(500);
-constexpr base::TimeDelta kDefaultVerySlowOperationThreshold =
-    base::TimeDelta::FromSeconds(5);
+    base::Milliseconds(500);
+constexpr base::TimeDelta kDefaultVerySlowOperationThreshold = base::Seconds(5);
 
 }  // namespace
 
diff --git a/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc b/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc
index 83f48e0..c49d82e 100644
--- a/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc
+++ b/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc
@@ -88,10 +88,8 @@
 constexpr char kAvailableOfflinePropertyName[] = "availableOffline";
 
 // Thresholds for logging slow operations.
-constexpr base::TimeDelta kDriveSlowOperationThreshold =
-    base::TimeDelta::FromSeconds(5);
-constexpr base::TimeDelta kDriveVerySlowOperationThreshold =
-    base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kDriveSlowOperationThreshold = base::Seconds(5);
+constexpr base::TimeDelta kDriveVerySlowOperationThreshold = base::Minutes(1);
 
 class SingleEntryPropertiesGetterForFileSystemProvider {
  public:
diff --git a/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc b/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc
index f48acde3..3a7bdf74 100644
--- a/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc
+++ b/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc
@@ -91,9 +91,9 @@
 
 // Thresholds for mountCrostini() API.
 constexpr base::TimeDelta kMountCrostiniSlowOperationThreshold =
-    base::TimeDelta::FromSeconds(10);
+    base::Seconds(10);
 constexpr base::TimeDelta kMountCrostiniVerySlowOperationThreshold =
-    base::TimeDelta::FromSeconds(30);
+    base::Seconds(30);
 
 // Obtains the current app window.
 AppWindow* GetCurrentAppWindow(ExtensionFunction* function) {
diff --git a/chrome/browser/chromeos/extensions/file_manager/private_api_thumbnail.cc b/chrome/browser/chromeos/extensions/file_manager/private_api_thumbnail.cc
index 0d8893b..529d706e 100644
--- a/chrome/browser/chromeos/extensions/file_manager/private_api_thumbnail.cc
+++ b/chrome/browser/chromeos/extensions/file_manager/private_api_thumbnail.cc
@@ -122,8 +122,7 @@
 
 FileManagerPrivateInternalGetDriveThumbnailFunction::
     FileManagerPrivateInternalGetDriveThumbnailFunction() {
-  SetWarningThresholds(base::TimeDelta::FromSeconds(5),
-                       base::TimeDelta::FromMinutes(1));
+  SetWarningThresholds(base::Seconds(5), base::Minutes(1));
 }
 
 FileManagerPrivateInternalGetDriveThumbnailFunction::
diff --git a/chrome/browser/chromeos/extensions/install_limiter.cc b/chrome/browser/chromeos/extensions/install_limiter.cc
index d74bd18..f617b9c1 100644
--- a/chrome/browser/chromeos/extensions/install_limiter.cc
+++ b/chrome/browser/chromeos/extensions/install_limiter.cc
@@ -122,10 +122,8 @@
   // big app is the first one in the list.
   if (running_installers_.empty() && !wait_timer_.IsRunning()) {
     const int kMaxWaitTimeInMs = 5000;  // 5 seconds.
-    wait_timer_.Start(
-        FROM_HERE,
-        base::TimeDelta::FromMilliseconds(kMaxWaitTimeInMs),
-        this, &InstallLimiter::CheckAndRunDeferrredInstalls);
+    wait_timer_.Start(FROM_HERE, base::Milliseconds(kMaxWaitTimeInMs), this,
+                      &InstallLimiter::CheckAndRunDeferrredInstalls);
   }
 }
 
diff --git a/chrome/browser/chromeos/extensions/wallpaper_private_api.cc b/chrome/browser/chromeos/extensions/wallpaper_private_api.cc
index 4ac93cd4..2fe532a 100644
--- a/chrome/browser/chromeos/extensions/wallpaper_private_api.cc
+++ b/chrome/browser/chromeos/extensions/wallpaper_private_api.cc
@@ -77,7 +77,7 @@
 // The time and retry limit to re-check the profile sync service status. The
 // sync extension function can get the correct value of the "syncThemes" user
 // preference only after the profile sync service has been configured.
-constexpr base::TimeDelta kRetryDelay = base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kRetryDelay = base::Seconds(10);
 constexpr int kRetryLimit = 3;
 
 // TODO(https://crbug.com/1037624): Update "themes" terminology after sync-split
diff --git a/chrome/browser/chromeos/external_metrics.cc b/chrome/browser/chromeos/external_metrics.cc
index 2e815c0..ae1a34fe 100644
--- a/chrome/browser/chromeos/external_metrics.cc
+++ b/chrome/browser/chromeos/external_metrics.cc
@@ -49,8 +49,7 @@
 }
 
 // Default interval between externally-reported metrics being collected.
-constexpr base::TimeDelta kDefaultCollectionInterval =
-    base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kDefaultCollectionInterval = base::Seconds(30);
 
 }  // namespace
 
@@ -65,7 +64,7 @@
   if (!flag_value.empty()) {
     int seconds = -1;
     if (base::StringToInt(flag_value, &seconds) && seconds > 0) {
-      collection_interval_ = base::TimeDelta::FromSeconds(seconds);
+      collection_interval_ = base::Seconds(seconds);
     } else {
       LOG(WARNING) << "Ignoring bad value \"" << flag_value << "\" in --"
                    << switches::kExternalMetricsCollectionInterval;
diff --git a/chrome/browser/chromeos/external_metrics_unittest.cc b/chrome/browser/chromeos/external_metrics_unittest.cc
index f5f2b7c..ffb5f6e 100644
--- a/chrome/browser/chromeos/external_metrics_unittest.cc
+++ b/chrome/browser/chromeos/external_metrics_unittest.cc
@@ -40,8 +40,7 @@
       switches::kExternalMetricsCollectionInterval, "5");
   Init();
 
-  EXPECT_EQ(base::TimeDelta::FromSeconds(5),
-            external_metrics_->collection_interval_);
+  EXPECT_EQ(base::Seconds(5), external_metrics_->collection_interval_);
 }
 
 TEST_F(ExternalMetricsTest, HandleMissingFile) {
diff --git a/chrome/browser/chromeos/fileapi/recent_model.cc b/chrome/browser/chromeos/fileapi/recent_model.cc
index 480edc0b..a32fc6f 100644
--- a/chrome/browser/chromeos/fileapi/recent_model.cc
+++ b/chrome/browser/chromeos/fileapi/recent_model.cc
@@ -30,12 +30,12 @@
 namespace {
 
 // Cut-off time. Files older than this are filtered out.
-constexpr base::TimeDelta kCutoffTimeDelta = base::TimeDelta::FromDays(30);
+constexpr base::TimeDelta kCutoffTimeDelta = base::Days(30);
 
 // Recent file cache will be cleared this duration after it is built.
 // Note: Do not make this value large. When cache is used, cut-off criteria is
 // not strictly honored.
-constexpr base::TimeDelta kCacheExpiration = base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kCacheExpiration = base::Seconds(10);
 
 std::vector<std::unique_ptr<RecentSource>> CreateDefaultSources(
     Profile* profile) {
diff --git a/chrome/browser/chromeos/platform_keys/key_permissions/key_permissions_manager_impl.cc b/chrome/browser/chromeos/platform_keys/key_permissions/key_permissions_manager_impl.cc
index 33cd4ee..1c9bca0 100644
--- a/chrome/browser/chromeos/platform_keys/key_permissions/key_permissions_manager_impl.cc
+++ b/chrome/browser/chromeos/platform_keys/key_permissions/key_permissions_manager_impl.cc
@@ -162,8 +162,8 @@
       base::UmaHistogramCustomTimes(
           kMigrationTimeHistogramName,
           /*sample=*/base::TimeTicks::Now() - update_start_time_,
-          /*min=*/base::TimeDelta::FromMilliseconds(1),
-          /*max=*/base::TimeDelta::FromMinutes(5),
+          /*min=*/base::Milliseconds(1),
+          /*max=*/base::Minutes(5),
           /*buckets=*/50);
       break;
     }
@@ -171,8 +171,8 @@
       base::UmaHistogramCustomTimes(
           kArcUsageUpdateTimeHistogramName,
           /*sample=*/base::TimeTicks::Now() - update_start_time_,
-          /*min=*/base::TimeDelta::FromMilliseconds(1),
-          /*max=*/base::TimeDelta::FromMinutes(5),
+          /*min=*/base::Milliseconds(1),
+          /*max=*/base::Minutes(5),
           /*buckets=*/50);
       break;
     }
diff --git a/chrome/browser/chromeos/printing/cups_print_job_manager_impl.cc b/chrome/browser/chromeos/printing/cups_print_job_manager_impl.cc
index 2327833..215a7f9 100644
--- a/chrome/browser/chromeos/printing/cups_print_job_manager_impl.cc
+++ b/chrome/browser/chromeos/printing/cups_print_job_manager_impl.cc
@@ -47,7 +47,7 @@
 namespace {
 
 // The rate at which we will poll CUPS for print job updates.
-constexpr base::TimeDelta kPollRate = base::TimeDelta::FromMilliseconds(1000);
+constexpr base::TimeDelta kPollRate = base::Milliseconds(1000);
 
 // Threshold for giving up on communicating with CUPS.
 const int kRetryMax = 6;
diff --git a/chrome/browser/chromeos/printing/cups_print_job_manager_utils.cc b/chrome/browser/chromeos/printing/cups_print_job_manager_utils.cc
index 7e15df38..cf2433b1 100644
--- a/chrome/browser/chromeos/printing/cups_print_job_manager_utils.cc
+++ b/chrome/browser/chromeos/printing/cups_print_job_manager_utils.cc
@@ -21,8 +21,7 @@
 
 // The amount of time elapsed from print job creation before a timeout is
 // acknowledged.
-constexpr base::TimeDelta kMinElaspedPrintJobTimeout =
-    base::TimeDelta::FromMilliseconds(5000);
+constexpr base::TimeDelta kMinElaspedPrintJobTimeout = base::Milliseconds(5000);
 
 // job state reason values
 const char kJobCompletedWithErrors[] = "job-completed-with-errors";
diff --git a/chrome/browser/chromeos/printing/cups_print_job_notification.cc b/chrome/browser/chromeos/printing/cups_print_job_notification.cc
index 1a663f2..45dc870 100644
--- a/chrome/browser/chromeos/printing/cups_print_job_notification.cc
+++ b/chrome/browser/chromeos/printing/cups_print_job_notification.cc
@@ -159,7 +159,7 @@
                              *notification_, /*metadata=*/nullptr);
     if (print_job_->state() == CupsPrintJob::State::STATE_DOCUMENT_DONE) {
       success_timer_->Start(
-          FROM_HERE, base::TimeDelta::FromSeconds(kSuccessTimeoutSeconds),
+          FROM_HERE, base::Seconds(kSuccessTimeoutSeconds),
           base::BindOnce(&CupsPrintJobNotification::CleanUpNotification,
                          base::Unretained(this)));
     }
diff --git a/chrome/browser/chromeos/printing/cups_printers_manager.cc b/chrome/browser/chromeos/printing/cups_printers_manager.cc
index 1fc17a7..2ccb7a4 100644
--- a/chrome/browser/chromeos/printing/cups_printers_manager.cc
+++ b/chrome/browser/chromeos/printing/cups_printers_manager.cc
@@ -145,7 +145,7 @@
         FROM_HERE,
         base::BindOnce(&SendScannerCountToUMA,
                        ash::ZeroconfScannerDetector::Create()),
-        base::TimeDelta::FromMinutes(5));
+        base::Minutes(5));
 
     print_servers_manager_->AddObserver(this);
 
diff --git a/chrome/browser/chromeos/printing/history/print_job_info_proto_conversions_unittest.cc b/chrome/browser/chromeos/printing/history/print_job_info_proto_conversions_unittest.cc
index a606adab..fc0a08999 100644
--- a/chrome/browser/chromeos/printing/history/print_job_info_proto_conversions_unittest.cc
+++ b/chrome/browser/chromeos/printing/history/print_job_info_proto_conversions_unittest.cc
@@ -58,10 +58,8 @@
   // Override time so that base::Time::Now() always returns 1 second after the
   // epoch in Unix-like system (Jan 1, 1970).
   base::subtle::ScopedTimeClockOverrides time_override(
-      []() {
-        return base::Time::UnixEpoch() + base::TimeDelta::FromSeconds(1);
-      },
-      nullptr, nullptr);
+      []() { return base::Time::UnixEpoch() + base::Seconds(1); }, nullptr,
+      nullptr);
 
   chromeos::Printer printer;
   printer.set_id(kPrinterId);
@@ -79,8 +77,7 @@
                               kSourceId, settings);
   cups_print_job.set_state(CupsPrintJob::State::STATE_FAILED);
   cups_print_job.set_error_code(PrinterErrorCode::OUT_OF_PAPER);
-  base::Time completion_time =
-      base::Time::Now() + base::TimeDelta::FromSeconds(10);
+  base::Time completion_time = base::Time::Now() + base::Seconds(10);
 
   proto::PrintJobInfo print_job_info_proto =
       CupsPrintJobToProto(cups_print_job, kId, completion_time);
diff --git a/chrome/browser/chromeos/process_snapshot_server_unittest.cc b/chrome/browser/chromeos/process_snapshot_server_unittest.cc
index 9111c1c02..b3623d0b 100644
--- a/chrome/browser/chromeos/process_snapshot_server_unittest.cc
+++ b/chrome/browser/chromeos/process_snapshot_server_unittest.cc
@@ -67,7 +67,7 @@
 };
 
 TEST_F(ProcessSnapshotServerTest, FirstObserverTriggersImmediateRefresh) {
-  constexpr base::TimeDelta kDesiredDelay = base::TimeDelta::FromSeconds(20);
+  constexpr base::TimeDelta kDesiredDelay = base::Seconds(20);
   TestObserver observer(kDesiredDelay);
 
   server()->AddObserver(&observer);
@@ -78,9 +78,9 @@
 }
 
 TEST_F(ProcessSnapshotServerTest, AddRemoveObservers) {
-  constexpr base::TimeDelta kDelay1 = base::TimeDelta::FromSeconds(10);
-  constexpr base::TimeDelta kDelay2 = base::TimeDelta::FromSeconds(5);
-  constexpr base::TimeDelta kDelay3 = base::TimeDelta::FromSeconds(20);
+  constexpr base::TimeDelta kDelay1 = base::Seconds(10);
+  constexpr base::TimeDelta kDelay2 = base::Seconds(5);
+  constexpr base::TimeDelta kDelay3 = base::Seconds(20);
   TestObserver observer1(kDelay1);
   TestObserver observer2(kDelay2);
   TestObserver observer3(kDelay3);
diff --git a/chrome/browser/chromeos/session_length_limiter.cc b/chrome/browser/chromeos/session_length_limiter.cc
index 49ffe6f..e2c8352 100644
--- a/chrome/browser/chromeos/session_length_limiter.cc
+++ b/chrome/browser/chromeos/session_length_limiter.cc
@@ -202,10 +202,9 @@
   }
 
   // Clamp the session length limit to the valid range.
-  const base::TimeDelta session_length_limit =
-      base::TimeDelta::FromMilliseconds(
-          base::clamp(session_length_limit_pref->GetValue()->GetInt(),
-                      kSessionLengthLimitMinMs, kSessionLengthLimitMaxMs));
+  const base::TimeDelta session_length_limit = base::Milliseconds(
+      base::clamp(session_length_limit_pref->GetValue()->GetInt(),
+                  kSessionLengthLimitMinMs, kSessionLengthLimitMaxMs));
 
   // Calculate the session stop time.
   const base::Time session_stop_time =
diff --git a/chrome/browser/chromeos/session_length_limiter_unittest.cc b/chrome/browser/chromeos/session_length_limiter_unittest.cc
index 2f372dd..9bcc436 100644
--- a/chrome/browser/chromeos/session_length_limiter_unittest.cc
+++ b/chrome/browser/chromeos/session_length_limiter_unittest.cc
@@ -265,7 +265,7 @@
 
   // Pref indicating user activity not set. Session start time in the future.
   ClearSessionUserActivitySeenPref();
-  SetSessionStartTimePref(session_start_time_ + base::TimeDelta::FromHours(2));
+  SetSessionStartTimePref(session_start_time_ + base::Hours(2));
   CreateSessionLengthLimiter(false);
   EXPECT_FALSE(IsSessionUserActivitySeenPrefSet());
   EXPECT_EQ(session_start_time_, GetSessionStartTimePref());
@@ -273,7 +273,7 @@
 
   // Pref indicating user activity set. Session start time in the future.
   SetSessionUserActivitySeenPref(true);
-  SetSessionStartTimePref(session_start_time_ + base::TimeDelta::FromHours(2));
+  SetSessionStartTimePref(session_start_time_ + base::Hours(2));
   CreateSessionLengthLimiter(false);
   EXPECT_FALSE(IsSessionUserActivitySeenPrefSet());
   EXPECT_EQ(session_start_time_, GetSessionStartTimePref());
@@ -281,7 +281,7 @@
 
   // Pref indicating user activity not set. Session start time valid.
   ClearSessionUserActivitySeenPref();
-  SetSessionStartTimePref(session_start_time_ - base::TimeDelta::FromHours(2));
+  SetSessionStartTimePref(session_start_time_ - base::Hours(2));
   CreateSessionLengthLimiter(false);
   EXPECT_FALSE(IsSessionUserActivitySeenPrefSet());
   EXPECT_EQ(session_start_time_, GetSessionStartTimePref());
@@ -289,7 +289,7 @@
 
   // Pref indicating user activity set. Session start time valid.
   SetSessionUserActivitySeenPref(true);
-  SetSessionStartTimePref(session_start_time_ - base::TimeDelta::FromHours(2));
+  SetSessionStartTimePref(session_start_time_ - base::Hours(2));
   CreateSessionLengthLimiter(false);
   EXPECT_FALSE(IsSessionUserActivitySeenPrefSet());
   EXPECT_EQ(session_start_time_, GetSessionStartTimePref());
@@ -320,7 +320,7 @@
 
   // Pref indicating user activity not set. Session start time in the future.
   ClearSessionUserActivitySeenPref();
-  SetSessionStartTimePref(runner_->Now() + base::TimeDelta::FromHours(2));
+  SetSessionStartTimePref(runner_->Now() + base::Hours(2));
   CreateSessionLengthLimiter(false);
   EXPECT_FALSE(IsSessionUserActivitySeenPrefSet());
   EXPECT_FALSE(IsSessionStartTimePrefSet());
@@ -328,7 +328,7 @@
 
   // Pref indicating user activity set. Session start time in the future.
   SetSessionUserActivitySeenPref(true);
-  SetSessionStartTimePref(runner_->Now() + base::TimeDelta::FromHours(2));
+  SetSessionStartTimePref(runner_->Now() + base::Hours(2));
   CreateSessionLengthLimiter(false);
   EXPECT_FALSE(IsSessionUserActivitySeenPrefSet());
   EXPECT_FALSE(IsSessionStartTimePrefSet());
@@ -336,7 +336,7 @@
 
   // Pref indicating user activity not set. Session start time valid.
   ClearSessionUserActivitySeenPref();
-  SetSessionStartTimePref(runner_->Now() - base::TimeDelta::FromHours(2));
+  SetSessionStartTimePref(runner_->Now() - base::Hours(2));
   CreateSessionLengthLimiter(false);
   EXPECT_FALSE(IsSessionUserActivitySeenPrefSet());
   EXPECT_FALSE(IsSessionStartTimePrefSet());
@@ -344,7 +344,7 @@
 
   // Pref indicating user activity set. Session start time valid.
   SetSessionUserActivitySeenPref(true);
-  SetSessionStartTimePref(runner_->Now() - base::TimeDelta::FromHours(2));
+  SetSessionStartTimePref(runner_->Now() - base::Hours(2));
   CreateSessionLengthLimiter(false);
   EXPECT_FALSE(IsSessionUserActivitySeenPrefSet());
   EXPECT_FALSE(IsSessionStartTimePrefSet());
@@ -376,7 +376,7 @@
 
   // Pref indicating user activity not set. Session start time in the future.
   ClearSessionUserActivitySeenPref();
-  SetSessionStartTimePref(runner_->Now() + base::TimeDelta::FromHours(2));
+  SetSessionStartTimePref(runner_->Now() + base::Hours(2));
   CreateSessionLengthLimiter(true);
   EXPECT_FALSE(IsSessionUserActivitySeenPrefSet());
   EXPECT_EQ(session_start_time_, GetSessionStartTimePref());
@@ -384,14 +384,13 @@
 
   // Pref indicating user activity set. Session start time in the future.
   SetSessionUserActivitySeenPref(true);
-  SetSessionStartTimePref(runner_->Now() + base::TimeDelta::FromHours(2));
+  SetSessionStartTimePref(runner_->Now() + base::Hours(2));
   CreateSessionLengthLimiter(true);
   EXPECT_FALSE(IsSessionUserActivitySeenPrefSet());
   EXPECT_EQ(session_start_time_, GetSessionStartTimePref());
   DestroySessionLengthLimiter();
 
-  const base::Time stored_session_start_time =
-      runner_->Now() - base::TimeDelta::FromHours(2);
+  const base::Time stored_session_start_time = runner_->Now() - base::Hours(2);
 
   // Pref indicating user activity not set. Session start time valid.
   ClearSessionUserActivitySeenPref();
@@ -438,7 +437,7 @@
 
   // Pref indicating user activity not set. Session start time in the future.
   ClearSessionUserActivitySeenPref();
-  SetSessionStartTimePref(runner_->Now() + base::TimeDelta::FromHours(2));
+  SetSessionStartTimePref(runner_->Now() + base::Hours(2));
   CreateSessionLengthLimiter(true);
   EXPECT_FALSE(IsSessionUserActivitySeenPrefSet());
   EXPECT_FALSE(IsSessionStartTimePrefSet());
@@ -446,14 +445,13 @@
 
   // Pref indicating user activity set. Session start time in the future.
   SetSessionUserActivitySeenPref(true);
-  SetSessionStartTimePref(runner_->Now() + base::TimeDelta::FromHours(2));
+  SetSessionStartTimePref(runner_->Now() + base::Hours(2));
   CreateSessionLengthLimiter(true);
   EXPECT_FALSE(IsSessionUserActivitySeenPrefSet());
   EXPECT_FALSE(IsSessionStartTimePrefSet());
   DestroySessionLengthLimiter();
 
-  const base::Time stored_session_start_time =
-      runner_->Now() - base::TimeDelta::FromHours(2);
+  const base::Time stored_session_start_time = runner_->Now() - base::Hours(2);
 
   // Pref indicating user activity not set. Session start time valid.
   ClearSessionUserActivitySeenPref();
@@ -484,7 +482,7 @@
   EXPECT_EQ(session_start_time_, GetSessionStartTimePref());
 
   // Enable waiting for initial user activity.
-  runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  runner_->FastForwardBy(base::Seconds(1));
   SetWaitForInitialUserActivityPref(true);
 
   // Verify that the session start time was cleared and the pref indicating user
@@ -493,7 +491,7 @@
   EXPECT_FALSE(IsSessionStartTimePrefSet());
 
   // Disable waiting for initial user activity.
-  runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  runner_->FastForwardBy(base::Seconds(1));
   SetWaitForInitialUserActivityPref(false);
 
   // Verify that the pref indicating user activity was not set and the session
@@ -515,7 +513,7 @@
   EXPECT_EQ(session_start_time_, GetSessionStartTimePref());
 
   // Simulate user activity.
-  runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  runner_->FastForwardBy(base::Seconds(1));
   SimulateUserActivity();
 
   // Verify that the pref indicating user activity and the session start time
@@ -525,7 +523,7 @@
   EXPECT_EQ(session_start_time_, GetSessionStartTimePref());
 
   // Simulate user activity.
-  runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  runner_->FastForwardBy(base::Seconds(1));
   SimulateUserActivity();
 
   // Verify that the pref indicating user activity and the session start time
@@ -535,7 +533,7 @@
   EXPECT_EQ(session_start_time_, GetSessionStartTimePref());
 
   // Enable waiting for initial user activity.
-  runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  runner_->FastForwardBy(base::Seconds(1));
   SetWaitForInitialUserActivityPref(true);
 
   // Verify that the pref indicating user activity and the session start time
@@ -560,7 +558,7 @@
   EXPECT_FALSE(IsSessionStartTimePrefSet());
 
   // Simulate user activity.
-  runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  runner_->FastForwardBy(base::Seconds(1));
   SimulateUserActivity();
 
   // Verify that the pref indicating user activity and the session start time
@@ -570,7 +568,7 @@
   EXPECT_EQ(session_start_time_, GetSessionStartTimePref());
 
   // Simulate user activity.
-  runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  runner_->FastForwardBy(base::Seconds(1));
   SimulateUserActivity();
 
   // Verify that the pref indicating user activity and the session start time
@@ -580,7 +578,7 @@
   EXPECT_EQ(session_start_time_, GetSessionStartTimePref());
 
   // Disable waiting for initial user activity.
-  runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  runner_->FastForwardBy(base::Seconds(1));
   SetWaitForInitialUserActivityPref(false);
 
   // Verify that the pref indicating user activity and the session start time
@@ -609,7 +607,7 @@
   base::ThreadTaskRunnerHandle runner_handler(runner_);
 
   // Set a 60 second session time limit.
-  SetSessionLengthLimitPref(base::TimeDelta::FromSeconds(60));
+  SetSessionLengthLimitPref(base::Seconds(60));
 
   CreateSessionLengthLimiter(false);
   EXPECT_EQ(session_start_time_, GetSessionStartTimePref());
@@ -618,8 +616,7 @@
   // length limit is reached.
   ExpectStopSession();
   runner_->FastForwardUntilNoTasksRemain();
-  EXPECT_EQ(session_start_time_ + base::TimeDelta::FromSeconds(60),
-            session_stop_time_);
+  EXPECT_EQ(session_start_time_ + base::Seconds(60), session_stop_time_);
 }
 
 // Creates a SessionLengthLimiter after setting a limit and instructs it to wait
@@ -630,7 +627,7 @@
   SetWaitForInitialUserActivityPref(true);
 
   // Set a 60 second session time limit.
-  SetSessionLengthLimitPref(base::TimeDelta::FromSeconds(60));
+  SetSessionLengthLimitPref(base::Seconds(60));
 
   CreateSessionLengthLimiter(false);
   EXPECT_FALSE(IsSessionStartTimePrefSet());
@@ -647,13 +644,13 @@
   base::ThreadTaskRunnerHandle runner_handler(runner_);
 
   // Set a 60 second session time limit.
-  SetSessionLengthLimitPref(base::TimeDelta::FromSeconds(60));
+  SetSessionLengthLimitPref(base::Seconds(60));
 
   CreateSessionLengthLimiter(false);
   EXPECT_EQ(session_start_time_, GetSessionStartTimePref());
 
   // Simulate user activity after 20 seconds.
-  runner_->FastForwardBy(base::TimeDelta::FromSeconds(20));
+  runner_->FastForwardBy(base::Seconds(20));
   SimulateUserActivity();
   EXPECT_EQ(session_start_time_, GetSessionStartTimePref());
 
@@ -661,8 +658,7 @@
   // length limit is reached.
   ExpectStopSession();
   runner_->FastForwardUntilNoTasksRemain();
-  EXPECT_EQ(session_start_time_ + base::TimeDelta::FromSeconds(60),
-            session_stop_time_);
+  EXPECT_EQ(session_start_time_ + base::Seconds(60), session_stop_time_);
 }
 
 // Creates a SessionLengthLimiter after setting a limit and instructs it to wait
@@ -675,18 +671,18 @@
   SetWaitForInitialUserActivityPref(true);
 
   // Set a 60 second session time limit.
-  SetSessionLengthLimitPref(base::TimeDelta::FromSeconds(60));
+  SetSessionLengthLimitPref(base::Seconds(60));
 
   CreateSessionLengthLimiter(false);
   EXPECT_FALSE(IsSessionStartTimePrefSet());
 
   // Simulate user activity after 20 seconds.
-  runner_->FastForwardBy(base::TimeDelta::FromSeconds(20));
+  runner_->FastForwardBy(base::Seconds(20));
   SimulateUserActivity();
   EXPECT_EQ(session_start_time_, GetSessionStartTimePref());
 
   // Simulate user activity after 20 seconds.
-  runner_->FastForwardBy(base::TimeDelta::FromSeconds(20));
+  runner_->FastForwardBy(base::Seconds(20));
   SimulateUserActivity();
   EXPECT_EQ(session_start_time_, GetSessionStartTimePref());
 
@@ -694,8 +690,7 @@
   // length limit is reached.
   ExpectStopSession();
   runner_->FastForwardUntilNoTasksRemain();
-  EXPECT_EQ(session_start_time_ + base::TimeDelta::FromSeconds(60),
-            session_stop_time_);
+  EXPECT_EQ(session_start_time_ + base::Seconds(60), session_stop_time_);
 }
 
 // Creates a SessionLengthLimiter after setting a 60 second limit, allows 50
@@ -706,23 +701,22 @@
   base::ThreadTaskRunnerHandle runner_handler(runner_);
 
   // Set a 60 second session time limit.
-  SetSessionLengthLimitPref(base::TimeDelta::FromSeconds(60));
+  SetSessionLengthLimitPref(base::Seconds(60));
 
   CreateSessionLengthLimiter(false);
 
   // Fast forward the time by 50 seconds, verifying that no timer fires to
   // terminate the session.
-  runner_->FastForwardBy(base::TimeDelta::FromSeconds(50));
+  runner_->FastForwardBy(base::Seconds(50));
 
   // Increase the session length limit to 90 seconds.
-  SetSessionLengthLimitPref(base::TimeDelta::FromSeconds(90));
+  SetSessionLengthLimitPref(base::Seconds(90));
 
   // Verify that the the timer fires and the session is terminated when the
   // session length limit is reached.
   ExpectStopSession();
   runner_->FastForwardUntilNoTasksRemain();
-  EXPECT_EQ(session_start_time_ + base::TimeDelta::FromSeconds(90),
-            session_stop_time_);
+  EXPECT_EQ(session_start_time_ + base::Seconds(90), session_stop_time_);
 }
 
 // Creates a SessionLengthLimiter after setting a 60 second limit, allows 50
@@ -734,20 +728,19 @@
   base::ThreadTaskRunnerHandle runner_handler(runner_);
 
   // Set a 60 second session time limit.
-  SetSessionLengthLimitPref(base::TimeDelta::FromSeconds(60));
+  SetSessionLengthLimitPref(base::Seconds(60));
 
   CreateSessionLengthLimiter(false);
 
   // Fast forward the time by 50 seconds, verifying that no timer fires to
   // terminate the session.
-  runner_->FastForwardBy(base::TimeDelta::FromSeconds(50));
+  runner_->FastForwardBy(base::Seconds(50));
 
   // Verify that reducing the session length limit below the 50 seconds that
   // have already elapsed causes the session to be terminated immediately.
   ExpectStopSession();
-  SetSessionLengthLimitPref(base::TimeDelta::FromSeconds(40));
-  EXPECT_EQ(session_start_time_ + base::TimeDelta::FromSeconds(50),
-            session_stop_time_);
+  SetSessionLengthLimitPref(base::Seconds(40));
+  EXPECT_EQ(session_start_time_ + base::Seconds(50), session_stop_time_);
 }
 
 // Creates a SessionLengthLimiter after setting a 60 second limit, allows 50
@@ -758,13 +751,13 @@
   base::ThreadTaskRunnerHandle runner_handler(runner_);
 
   // Set a 60 second session time limit.
-  SetSessionLengthLimitPref(base::TimeDelta::FromSeconds(60));
+  SetSessionLengthLimitPref(base::Seconds(60));
 
   CreateSessionLengthLimiter(false);
 
   // Fast forward the time by 50 seconds, verifying that no timer fires to
   // terminate the session.
-  runner_->FastForwardBy(base::TimeDelta::FromSeconds(50));
+  runner_->FastForwardBy(base::Seconds(50));
 
   // Remove the session length limit.
   ClearSessionLengthLimitPref();
@@ -779,7 +772,7 @@
   base::ThreadTaskRunnerHandle runner_handler(runner_);
 
   // Set a 60 second session time limit.
-  SetSessionLengthLimitPref(base::TimeDelta::FromSeconds(60));
+  SetSessionLengthLimitPref(base::Seconds(60));
 
   CreateSessionLengthLimiter(false);
 
@@ -791,11 +784,9 @@
   // (suspended device). Given that session length limit is 60 seconds, it will
   // hit exactly if the middle of sleen (and processed when device is resumed,
   // so real session length will be 90 seconds).
-  runner_->FastForwardBy(base::TimeDelta::FromSeconds(30));
-  wall_clock_forwarder_->ForwardWhileSuspended(
-      base::TimeDelta::FromSeconds(60));
-  EXPECT_EQ(session_start_time_ + base::TimeDelta::FromSeconds(90),
-            session_stop_time_);
+  runner_->FastForwardBy(base::Seconds(30));
+  wall_clock_forwarder_->ForwardWhileSuspended(base::Seconds(60));
+  EXPECT_EQ(session_start_time_ + base::Seconds(90), session_stop_time_);
 }
 
 // Tests that session is stopped withing timeout, even when part of session time
@@ -804,7 +795,7 @@
   base::ThreadTaskRunnerHandle runner_handler(runner_);
 
   // Set a 60 second session time limit.
-  SetSessionLengthLimitPref(base::TimeDelta::FromSeconds(60));
+  SetSessionLengthLimitPref(base::Seconds(60));
 
   CreateSessionLengthLimiter(false);
 
@@ -812,17 +803,15 @@
   // (suspended device). Given that session length limit is 60 seconds, and
   // total 50 seconds passed, there will be 10 seconds of the session left (and
   // the second FastForwardBy will hit the limit).
-  runner_->FastForwardBy(base::TimeDelta::FromSeconds(20));
-  wall_clock_forwarder_->ForwardWhileSuspended(
-      base::TimeDelta::FromSeconds(30));
+  runner_->FastForwardBy(base::Seconds(20));
+  wall_clock_forwarder_->ForwardWhileSuspended(base::Seconds(30));
 
   // Verify that the timer fires and the session is terminated when the session
   // length limit is reached.
   ExpectStopSession();
 
-  runner_->FastForwardBy(base::TimeDelta::FromSeconds(20));
-  EXPECT_EQ(session_start_time_ + base::TimeDelta::FromSeconds(60),
-            session_stop_time_);
+  runner_->FastForwardBy(base::Seconds(20));
+  EXPECT_EQ(session_start_time_ + base::Seconds(60), session_stop_time_);
 }
 
 }  // namespace chromeos
diff --git a/chrome/browser/chromeos/system_token_cert_db_initializer.cc b/chrome/browser/chromeos/system_token_cert_db_initializer.cc
index 14af8887..57dd982 100644
--- a/chrome/browser/chromeos/system_token_cert_db_initializer.cc
+++ b/chrome/browser/chromeos/system_token_cert_db_initializer.cc
@@ -38,9 +38,8 @@
 
 namespace {
 
-constexpr base::TimeDelta kInitialRequestDelay =
-    base::TimeDelta::FromMilliseconds(100);
-constexpr base::TimeDelta kMaxRequestDelay = base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kInitialRequestDelay = base::Milliseconds(100);
+constexpr base::TimeDelta kMaxRequestDelay = base::Minutes(5);
 
 #if BUILDFLAG(SYSTEM_SLOT_SOFTWARE_FALLBACK)
 constexpr bool kIsSystemSlotSoftwareFallbackAllowed = true;
diff --git a/chrome/browser/chromeos/system_token_cert_db_initializer.h b/chrome/browser/chromeos/system_token_cert_db_initializer.h
index 306d507..71dc9a1 100644
--- a/chrome/browser/chromeos/system_token_cert_db_initializer.h
+++ b/chrome/browser/chromeos/system_token_cert_db_initializer.h
@@ -31,8 +31,7 @@
   // It is stated in cryptohome implementation that 5 minutes is enough time to
   // wait for any TPM operations. For more information, please refer to:
   // https://chromium.googlesource.com/chromiumos/platform2/+/main/cryptohome/cryptohome.cc
-  static constexpr base::TimeDelta kMaxCertDbRetrievalDelay =
-      base::TimeDelta::FromMinutes(5);
+  static constexpr base::TimeDelta kMaxCertDbRetrievalDelay = base::Minutes(5);
 
   // Note: This should only be used by `ChromeBrowserMainPartsAsh` to
   // initialize the system token certificate database. Use
diff --git a/chrome/browser/chromeos/system_token_cert_db_initializer_unittest.cc b/chrome/browser/chromeos/system_token_cert_db_initializer_unittest.cc
index fc1a6078..9c0c32a 100644
--- a/chrome/browser/chromeos/system_token_cert_db_initializer_unittest.cc
+++ b/chrome/browser/chromeos/system_token_cert_db_initializer_unittest.cc
@@ -98,7 +98,7 @@
   // Check that after 1 minute, SystemTokenCertDBInitializer is still waiting
   // for the system token slot to be initialized and the DB retrieval hasn't
   // timed out yet.
-  const auto kOneMinuteDelay = base::TimeDelta::FromMinutes(1);
+  const auto kOneMinuteDelay = base::Minutes(1);
   EXPECT_LT(kOneMinuteDelay,
             SystemTokenCertDBInitializer::kMaxCertDbRetrievalDelay);
 
@@ -136,7 +136,7 @@
   // Check that after 1 minute, SystemTokenCertDBInitializer is still waiting
   // for the system token slot to be initialized and the DB retrieval hasn't
   // timed out yet.
-  const auto kOneMinuteDelay = base::TimeDelta::FromMinutes(1);
+  const auto kOneMinuteDelay = base::Minutes(1);
   EXPECT_LT(kOneMinuteDelay,
             SystemTokenCertDBInitializer::kMaxCertDbRetrievalDelay);
 
diff --git a/chrome/browser/chromeos/tpm_firmware_update_unittest.cc b/chrome/browser/chromeos/tpm_firmware_update_unittest.cc
index 6bd3317..2481dbb 100644
--- a/chrome/browser/chromeos/tpm_firmware_update_unittest.cc
+++ b/chrome/browser/chromeos/tpm_firmware_update_unittest.cc
@@ -176,8 +176,7 @@
 
 TEST_F(TPMFirmwareUpdateModesTest, AvailableAfterWaiting) {
   SetUpdateAvailability(Availability::kPending);
-  GetAvailableUpdateModes(std::move(callback_),
-                          base::TimeDelta::FromSeconds(5));
+  GetAvailableUpdateModes(std::move(callback_), base::Seconds(5));
   task_environment_.RunUntilIdle();
   EXPECT_FALSE(callback_received_);
 
@@ -197,7 +196,7 @@
 
   // Trigger timeout and validate there are no further callbacks or crashes.
   callback_received_ = false;
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment_.FastForwardBy(base::Seconds(5));
   task_environment_.RunUntilIdle();
   EXPECT_FALSE(callback_received_);
 }
@@ -220,12 +219,11 @@
 
 TEST_F(TPMFirmwareUpdateModesTest, Timeout) {
   SetUpdateAvailability(Availability::kPending);
-  GetAvailableUpdateModes(std::move(callback_),
-                          base::TimeDelta::FromSeconds(5));
+  GetAvailableUpdateModes(std::move(callback_), base::Seconds(5));
   task_environment_.RunUntilIdle();
   EXPECT_FALSE(callback_received_);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment_.FastForwardBy(base::Seconds(5));
   task_environment_.RunUntilIdle();
   EXPECT_TRUE(callback_received_);
   EXPECT_TRUE(callback_modes_.empty());
diff --git a/chrome/browser/client_hints/client_hints_browsertest.cc b/chrome/browser/client_hints/client_hints_browsertest.cc
index 2ff48545c..2eb2e0c 100644
--- a/chrome/browser/client_hints/client_hints_browsertest.cc
+++ b/chrome/browser/client_hints/client_hints_browsertest.cc
@@ -1922,8 +1922,7 @@
   expiration_times_dictionary->SetList("client_hints",
                                        std::move(expiration_times_list));
   expiration_times_dictionary->SetDoubleKey(
-      "expiration_time",
-      (base::Time::Now() + base::TimeDelta::FromDays(1)).ToDoubleT());
+      "expiration_time", (base::Time::Now() + base::Days(1)).ToDoubleT());
   host_content_settings_map->SetWebsiteSettingDefaultScope(
       without_accept_ch_without_lifetime_url(), GURL(),
       ContentSettingsType::CLIENT_HINTS,
diff --git a/chrome/browser/commerce/merchant_viewer/merchant_viewer_data_manager_unittest.cc b/chrome/browser/commerce/merchant_viewer/merchant_viewer_data_manager_unittest.cc
index a97f650d..91cbc25 100644
--- a/chrome/browser/commerce/merchant_viewer/merchant_viewer_data_manager_unittest.cc
+++ b/chrome/browser/commerce/merchant_viewer/merchant_viewer_data_manager_unittest.cc
@@ -185,13 +185,13 @@
       service_->GetDB();
 
   base::Time start_time = base::Time::Now();
-  base::Time end_time = start_time + base::TimeDelta::FromDays(3);
+  base::Time end_time = start_time + base::Days(3);
 
   merchant_signal_db::MerchantSignalContentProto protoA =
-      BuildProto(kMockMerchantA, start_time + base::TimeDelta::FromDays(1));
+      BuildProto(kMockMerchantA, start_time + base::Days(1));
 
   merchant_signal_db::MerchantSignalContentProto protoB =
-      BuildProto(kMockMerchantB, start_time + base::TimeDelta::FromDays(2));
+      BuildProto(kMockMerchantB, start_time + base::Days(2));
 
   base::RunLoop run_loop[4];
 
@@ -237,13 +237,13 @@
       service_->GetDB();
 
   base::Time start_time = base::Time::Now();
-  base::Time end_time = start_time + base::TimeDelta::FromDays(3);
+  base::Time end_time = start_time + base::Days(3);
 
   merchant_signal_db::MerchantSignalContentProto protoA =
-      BuildProto(kMockMerchantA, start_time - base::TimeDelta::FromDays(1));
+      BuildProto(kMockMerchantA, start_time - base::Days(1));
 
   merchant_signal_db::MerchantSignalContentProto protoB =
-      BuildProto(kMockMerchantB, start_time - base::TimeDelta::FromDays(1));
+      BuildProto(kMockMerchantB, start_time - base::Days(1));
 
   base::RunLoop run_loop[4];
 
@@ -285,13 +285,13 @@
       service_->GetDB();
 
   base::Time start_time = base::Time::Now();
-  base::Time end_time = start_time + base::TimeDelta::FromDays(3);
+  base::Time end_time = start_time + base::Days(3);
 
   merchant_signal_db::MerchantSignalContentProto protoA =
-      BuildProto(kMockMerchantA, start_time - base::TimeDelta::FromDays(1));
+      BuildProto(kMockMerchantA, start_time - base::Days(1));
 
   merchant_signal_db::MerchantSignalContentProto protoB =
-      BuildProto(kMockMerchantB, start_time + base::TimeDelta::FromDays(1));
+      BuildProto(kMockMerchantB, start_time + base::Days(1));
 
   base::RunLoop run_loop[4];
 
@@ -460,13 +460,13 @@
       service_->GetDB();
 
   base::Time start_time = base::Time::Now();
-  base::Time end_time = start_time + base::TimeDelta::FromDays(3);
+  base::Time end_time = start_time + base::Days(3);
 
   merchant_signal_db::MerchantSignalContentProto protoA =
-      BuildProto(kMockMerchantA, start_time - base::TimeDelta::FromDays(4));
+      BuildProto(kMockMerchantA, start_time - base::Days(4));
 
   merchant_signal_db::MerchantSignalContentProto protoB =
-      BuildProto(kMockMerchantB, start_time + base::TimeDelta::FromDays(1));
+      BuildProto(kMockMerchantB, start_time + base::Days(1));
 
   base::RunLoop run_loop[4];
 
diff --git a/chrome/browser/component_updater/pki_metadata_component_installer.cc b/chrome/browser/component_updater/pki_metadata_component_installer.cc
index 59328fab..c81ff3ac 100644
--- a/chrome/browser/component_updater/pki_metadata_component_installer.cc
+++ b/chrome/browser/component_updater/pki_metadata_component_installer.cc
@@ -182,10 +182,8 @@
         // need to be checked, because once RETIRED, the state will never
         // change.
         base::TimeDelta retired_since =
-            base::TimeDelta::FromSeconds(
-                log.state()[0].state_start().seconds()) +
-            base::TimeDelta::FromNanoseconds(
-                log.state()[0].state_start().nanos());
+            base::Seconds(log.state()[0].state_start().seconds()) +
+            base::Nanoseconds(log.state()[0].state_start().nanos());
         log_ptr->disqualified_at = retired_since;
       }
     }
@@ -194,8 +192,8 @@
 
   base::Time update_time =
       base::Time::UnixEpoch() +
-      base::TimeDelta::FromSeconds(proto->log_list().timestamp().seconds()) +
-      base::TimeDelta::FromNanoseconds(proto->log_list().timestamp().nanos());
+      base::Seconds(proto->log_list().timestamp().seconds()) +
+      base::Nanoseconds(proto->log_list().timestamp().nanos());
   network_service->UpdateCtLogList(std::move(log_list_mojo), update_time);
 #endif  // BUILDFLAG(IS_CT_SUPPORTED)
 }
diff --git a/chrome/browser/component_updater/recovery_component_installer.cc b/chrome/browser/component_updater/recovery_component_installer.cc
index e60d59c7..3e59dfa 100644
--- a/chrome/browser/component_updater/recovery_component_installer.cc
+++ b/chrome/browser/component_updater/recovery_component_installer.cc
@@ -158,7 +158,7 @@
 
 void WaitForElevatedInstallToComplete(base::Process process) {
   int installer_exit_code = 0;
-  const base::TimeDelta kMaxWaitTime = base::TimeDelta::FromSeconds(600);
+  const base::TimeDelta kMaxWaitTime = base::Seconds(600);
   if (process.WaitForExitWithTimeout(kMaxWaitTime, &installer_exit_code)) {
     if (installer_exit_code == EXIT_CODE_RECOVERY_SUCCEEDED) {
       RecordRecoveryComponentUMAEvent(RCE_ELEVATED_SUCCEEDED);
@@ -347,7 +347,7 @@
                               const base::FilePath& installer_folder,
                               PrefService* prefs) {
   int installer_exit_code = 0;
-  const base::TimeDelta kMaxWaitTime = base::TimeDelta::FromSeconds(600);
+  const base::TimeDelta kMaxWaitTime = base::Seconds(600);
   if (process.WaitForExitWithTimeout(kMaxWaitTime, &installer_exit_code)) {
     if (installer_exit_code == EXIT_CODE_ELEVATION_NEEDED) {
       RecordRecoveryComponentUMAEvent(RCE_ELEVATION_NEEDED);
@@ -512,7 +512,7 @@
   // the critical path during browser startup.
   content::GetUIThreadTaskRunner({})->PostDelayedTask(
       FROM_HERE, base::BindOnce(&RecoveryRegisterHelper, cus, prefs),
-      base::TimeDelta::FromSeconds(6));
+      base::Seconds(6));
 #endif
 #endif
 }
diff --git a/chrome/browser/component_updater/recovery_improved_component_installer.cc b/chrome/browser/component_updater/recovery_improved_component_installer.cc
index a7018eb..42b026e 100644
--- a/chrome/browser/component_updater/recovery_improved_component_installer.cc
+++ b/chrome/browser/component_updater/recovery_improved_component_installer.cc
@@ -109,7 +109,7 @@
 
 void RecoveryComponentActionHandler::WaitForCommand(base::Process process) {
   int exit_code = 0;
-  const base::TimeDelta kMaxWaitTime = base::TimeDelta::FromSeconds(600);
+  const base::TimeDelta kMaxWaitTime = base::Seconds(600);
   const bool succeeded =
       process.WaitForExitWithTimeout(kMaxWaitTime, &exit_code);
   base::DeletePathRecursively(unpack_path_);
diff --git a/chrome/browser/component_updater/recovery_improved_component_installer_win.cc b/chrome/browser/component_updater/recovery_improved_component_installer_win.cc
index f67d353..a026a63 100644
--- a/chrome/browser/component_updater/recovery_improved_component_installer_win.cc
+++ b/chrome/browser/component_updater/recovery_improved_component_installer_win.cc
@@ -75,7 +75,7 @@
     return {false, static_cast<int>(hr), 0};
 
   int exit_code = 0;
-  const base::TimeDelta kMaxWaitTime = base::TimeDelta::FromSeconds(600);
+  const base::TimeDelta kMaxWaitTime = base::Seconds(600);
   base::Process process(reinterpret_cast<base::ProcessHandle>(proc_handle));
   const bool succeeded =
       process.WaitForExitWithTimeout(kMaxWaitTime, &exit_code);
diff --git a/chrome/browser/component_updater/recovery_improved_component_unittest.cc b/chrome/browser/component_updater/recovery_improved_component_unittest.cc
index 85098dd3..4826208 100644
--- a/chrome/browser/component_updater/recovery_improved_component_unittest.cc
+++ b/chrome/browser/component_updater/recovery_improved_component_unittest.cc
@@ -138,7 +138,7 @@
       // execution is handled with some delay. This causes the run loop to
       // fail with a timeout.
       const base::test::ScopedRunLoopTimeout specific_timeout(
-          FROM_HERE, base::TimeDelta::FromSeconds(60));
+          FROM_HERE, base::Seconds(60));
       runloop.Run();
     }
   }
diff --git a/chrome/browser/component_updater/sw_reporter_installer_win.cc b/chrome/browser/component_updater/sw_reporter_installer_win.cc
index 8420baa9..f61ef6d 100644
--- a/chrome/browser/component_updater/sw_reporter_installer_win.cc
+++ b/chrome/browser/component_updater/sw_reporter_installer_win.cc
@@ -428,7 +428,7 @@
       cleaner_key.ReadInt64(chrome_cleaner::kStartTimeValueName,
                             &start_time_value);
       const base::Time start_time = base::Time::FromDeltaSinceWindowsEpoch(
-          base::TimeDelta::FromMicroseconds(start_time_value));
+          base::Microseconds(start_time_value));
 
       const bool completed =
           cleaner_key.HasValue(chrome_cleaner::kEndTimeValueName);
@@ -437,7 +437,7 @@
         cleaner_key.ReadInt64(chrome_cleaner::kEndTimeValueName,
                               &end_time_value);
         const base::Time end_time = base::Time::FromDeltaSinceWindowsEpoch(
-            base::TimeDelta::FromMicroseconds(end_time_value));
+            base::Microseconds(end_time_value));
 
         cleaner_key.DeleteValue(chrome_cleaner::kEndTimeValueName);
         UMA_HISTOGRAM_LONG_TIMES("SoftwareReporter.Cleaner.RunningTime",
diff --git a/chrome/browser/content_settings/content_settings_origin_identifier_value_map_unittest.cc b/chrome/browser/content_settings/content_settings_origin_identifier_value_map_unittest.cc
index b6b83379..7680ed9 100644
--- a/chrome/browser/content_settings/content_settings_origin_identifier_value_map_unittest.cc
+++ b/chrome/browser/content_settings/content_settings_origin_identifier_value_map_unittest.cc
@@ -159,7 +159,7 @@
   ContentSettingsPattern sub_pattern =
       ContentSettingsPattern::FromString("sub.google.com");
   base::Time t1 = base::Time::Now();
-  base::Time t2 = t1 + base::TimeDelta::FromSeconds(1);
+  base::Time t2 = t1 + base::Seconds(1);
   map.SetValue(pattern, ContentSettingsPattern::Wildcard(),
                ContentSettingsType::COOKIES, t1, base::Value(1), {});
   map.SetValue(sub_pattern, ContentSettingsPattern::Wildcard(),
@@ -198,8 +198,7 @@
                {base::Time(), content_settings::SessionModel::Durable});
   map.SetValue(sub_pattern, ContentSettingsPattern::Wildcard(),
                ContentSettingsType::COOKIES, t1, base::Value(2),
-               {content_settings::GetConstraintExpiration(
-                    base::TimeDelta::FromSeconds(100)),
+               {content_settings::GetConstraintExpiration(base::Seconds(100)),
                 content_settings::SessionModel::UserSession});
 
   {
@@ -226,7 +225,7 @@
     EXPECT_EQ(rule.session_model, content_settings::SessionModel::Durable);
     ASSERT_FALSE(rule_iterator->HasNext());
   }
-  base::Time t2 = t1 + base::TimeDelta::FromSeconds(1);
+  base::Time t2 = t1 + base::Seconds(1);
   map.SetValue(pattern, ContentSettingsPattern::Wildcard(),
                ContentSettingsType::COOKIES, t2, base::Value(3), {});
 
diff --git a/chrome/browser/content_settings/content_settings_pref_provider_unittest.cc b/chrome/browser/content_settings/content_settings_pref_provider_unittest.cc
index bca0cc3..eedbf0d 100644
--- a/chrome/browser/content_settings/content_settings_pref_provider_unittest.cc
+++ b/chrome/browser/content_settings/content_settings_pref_provider_unittest.cc
@@ -429,14 +429,12 @@
   normal_provider.SetWebsiteSetting(
       pattern_4, pattern_4, ContentSettingsType::COOKIES,
       std::make_unique<base::Value>(CONTENT_SETTING_BLOCK),
-      {base::Time(base::Time::Now() + base::TimeDelta::FromDays(1)),
-       SessionModel::Durable});
+      {base::Time(base::Time::Now() + base::Days(1)), SessionModel::Durable});
   // Durable but expired
   normal_provider.SetWebsiteSetting(
       pattern_5, pattern_5, ContentSettingsType::COOKIES,
       std::make_unique<base::Value>(CONTENT_SETTING_BLOCK),
-      {base::Time(base::Time::Now() - base::TimeDelta::FromDays(1)),
-       SessionModel::Durable});
+      {base::Time(base::Time::Now() - base::Days(1)), SessionModel::Durable});
   // Non-OTR provider, Non-OTR iterator has one setting (pattern 1) using
   // default params and one scoped to a UserSession lifetime model.
   {
@@ -594,7 +592,7 @@
                              ContentSettingsType::COOKIES,
                              std::make_unique<base::Value>(value->Clone()), {});
   // Make sure that the timestamps for pattern_1 and patter_2 are before |t2|.
-  test_clock.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock.Advance(base::Seconds(1));
   base::Time t2 = test_clock.Now();
 
   base::Time last_modified = provider.GetWebsiteSettingLastModified(
@@ -751,8 +749,7 @@
   provider.SetWebsiteSetting(
       primary_pattern, primary_pattern, ContentSettingsType::STORAGE_ACCESS,
       std::make_unique<base::Value>(CONTENT_SETTING_BLOCK),
-      {content_settings::GetConstraintExpiration(
-           base::TimeDelta::FromSeconds(123)),
+      {content_settings::GetConstraintExpiration(base::Seconds(123)),
        SessionModel::Durable});
   EXPECT_EQ(
       CONTENT_SETTING_BLOCK,
@@ -766,7 +763,7 @@
 
   // Now if we skip ahead our time our setting should be expired and no longer
   // valid.
-  FastForwardTime(base::TimeDelta::FromSeconds(200));
+  FastForwardTime(base::Seconds(200));
 
   EXPECT_EQ(nullptr, TestUtils::GetContentSettingValue(
                          &provider, primary_url, primary_url,
@@ -792,8 +789,7 @@
   provider.SetWebsiteSetting(
       primary_pattern, primary_pattern, ContentSettingsType::STORAGE_ACCESS,
       std::make_unique<base::Value>(CONTENT_SETTING_BLOCK),
-      {content_settings::GetConstraintExpiration(
-           base::TimeDelta::FromSeconds(123)),
+      {content_settings::GetConstraintExpiration(base::Seconds(123)),
        SessionModel::Durable});
   EXPECT_EQ(
       CONTENT_SETTING_BLOCK,
@@ -818,7 +814,7 @@
 
   // Now if we skip ahead our time our setting should be expired and no longer
   // valid.
-  FastForwardTime(base::TimeDelta::FromSeconds(200));
+  FastForwardTime(base::Seconds(200));
 
   EXPECT_EQ(nullptr, TestUtils::GetContentSettingValue(
                          &provider2, primary_url, primary_url,
@@ -844,8 +840,7 @@
   provider.SetWebsiteSetting(
       primary_pattern, primary_pattern, ContentSettingsType::STORAGE_ACCESS,
       std::make_unique<base::Value>(CONTENT_SETTING_BLOCK),
-      {content_settings::GetConstraintExpiration(
-           base::TimeDelta::FromSeconds(123)),
+      {content_settings::GetConstraintExpiration(base::Seconds(123)),
        SessionModel::Durable});
   EXPECT_EQ(
       CONTENT_SETTING_BLOCK,
@@ -864,7 +859,7 @@
 
   // Now if we skip ahead our time our setting should be expired and no longer
   // valid.
-  FastForwardTime(base::TimeDelta::FromSeconds(200));
+  FastForwardTime(base::Seconds(200));
 
   EXPECT_EQ(nullptr, TestUtils::GetContentSettingValue(
                          &provider2, primary_url, primary_url,
diff --git a/chrome/browser/content_settings/host_content_settings_map_unittest.cc b/chrome/browser/content_settings/host_content_settings_map_unittest.cc
index 9eb6e23..c00a2b5 100644
--- a/chrome/browser/content_settings/host_content_settings_map_unittest.cc
+++ b/chrome/browser/content_settings/host_content_settings_map_unittest.cc
@@ -264,8 +264,7 @@
   EXPECT_EQ(0U, client_hints_settings.size());
 
   // Add setting for hosts[0].
-  base::Value expiration_time(
-      (base::Time::Now() + base::TimeDelta::FromDays(1)).ToDoubleT());
+  base::Value expiration_time((base::Time::Now() + base::Days(1)).ToDoubleT());
   base::Value client_hint_value(42);
 
   base::Value expiration_times_dictionary(base::Value::Type::DICTIONARY);
@@ -1516,9 +1515,9 @@
   TestingProfile profile;
   auto* map = HostContentSettingsMapFactory::GetForProfile(&profile);
   base::Time now = base::Time::Now();
-  base::Time back_1_hour = now - base::TimeDelta::FromHours(1);
-  base::Time back_30_days = now - base::TimeDelta::FromDays(30);
-  base::Time back_31_days = now - base::TimeDelta::FromDays(31);
+  base::Time back_1_hour = now - base::Hours(1);
+  base::Time back_30_days = now - base::Days(30);
+  base::Time back_31_days = now - base::Days(31);
 
   base::SimpleTestClock test_clock;
   test_clock.SetNow(now);
@@ -1611,7 +1610,7 @@
       pattern, ContentSettingsPattern::Wildcard(), ContentSettingsType::POPUPS);
   EXPECT_EQ(t, test_clock.Now());
 
-  test_clock.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock.Advance(base::Seconds(1));
   // Modify setting.
   map->SetContentSettingDefaultScope(url, GURL(), ContentSettingsType::POPUPS,
                                      CONTENT_SETTING_ALLOW);
@@ -1633,7 +1632,7 @@
   test_clock->SetNow(t1);
 
   base::SimpleTestClock* clock = test_clock.get();
-  clock->Advance(base::TimeDelta::FromSeconds(1));
+  clock->Advance(base::Seconds(1));
   base::Time t2 = clock->Now();
 
   // Register a provider which reports a modification time of t1.
@@ -1663,7 +1662,7 @@
                     ContentSettingsType::NOTIFICATIONS));
 
   // Now have original provider report a more recent modification time.
-  clock->Advance(base::TimeDelta::FromSeconds(1));
+  clock->Advance(base::Seconds(1));
   base::Time t3 = clock->Now();
   EXPECT_CALL(*weak_provider, GetWebsiteSettingLastModified(
                                   _, _, ContentSettingsType::NOTIFICATIONS))
@@ -2112,13 +2111,11 @@
   // third with no expiration.
   map->SetContentSettingDefaultScope(
       example_url1, example_url1, persistent_type, CONTENT_SETTING_BLOCK,
-      {content_settings::GetConstraintExpiration(
-           base::TimeDelta::FromSeconds(100)),
+      {content_settings::GetConstraintExpiration(base::Seconds(100)),
        content_settings::SessionModel::UserSession});
   map->SetContentSettingDefaultScope(
       example_url2, example_url2, persistent_type, CONTENT_SETTING_ALLOW,
-      {content_settings::GetConstraintExpiration(
-           base::TimeDelta::FromSeconds(200)),
+      {content_settings::GetConstraintExpiration(base::Seconds(200)),
        content_settings::SessionModel::UserSession});
   map->SetContentSettingDefaultScope(
       example_url3, example_url3, persistent_type, CONTENT_SETTING_ALLOW,
@@ -2150,7 +2147,7 @@
 
   // If we Fastforward by 101 seconds we should see only our first setting is
   // expired, we now retrieve 1 less setting and the rest are okay.
-  FastForwardTime(base::TimeDelta::FromSeconds(101));
+  FastForwardTime(base::Seconds(101));
   ASSERT_TRUE(url1_setting.IsExpired());
   ASSERT_FALSE(url2_setting.IsExpired());
   ASSERT_FALSE(url3_setting.IsExpired());
@@ -2160,7 +2157,7 @@
 
   // If we fast forward again we should expire our second setting and drop if
   // from our retrieval list now.
-  FastForwardTime(base::TimeDelta::FromSeconds(101));
+  FastForwardTime(base::Seconds(101));
   ASSERT_TRUE(url1_setting.IsExpired());
   ASSERT_TRUE(url2_setting.IsExpired());
   ASSERT_FALSE(url3_setting.IsExpired());
@@ -2170,7 +2167,7 @@
 
   // If we fast forwarding much further it shouldn't make a difference as our
   // last setting and the default setting should never expire.
-  FastForwardTime(base::TimeDelta::FromMinutes(100));
+  FastForwardTime(base::Minutes(100));
   ASSERT_TRUE(url1_setting.IsExpired());
   ASSERT_TRUE(url2_setting.IsExpired());
   ASSERT_FALSE(url3_setting.IsExpired());
diff --git a/chrome/browser/content_settings/one_time_geolocation_permission_provider.cc b/chrome/browser/content_settings/one_time_geolocation_permission_provider.cc
index eec59cd..9811649 100644
--- a/chrome/browser/content_settings/one_time_geolocation_permission_provider.cc
+++ b/chrome/browser/content_settings/one_time_geolocation_permission_provider.cc
@@ -31,7 +31,7 @@
         begin_iterator_->first, ContentSettingsPattern::Wildcard(),
         base::Value::FromUniquePtrValue(
             content_settings::ContentSettingToValue(CONTENT_SETTING_ALLOW)),
-        begin_iterator_->second + base::TimeDelta::FromDays(1),
+        begin_iterator_->second + base::Days(1),
         content_settings::SessionModel::OneTime);
     begin_iterator_++;
     return rule;
@@ -102,8 +102,7 @@
       matching_iterator = grants_with_open_tabs_.find(primary_pattern);
   if (matching_iterator == grants_with_open_tabs_.end())
     return base::Time();
-  if (matching_iterator->second + base::TimeDelta::FromDays(1) <
-      base::Time::Now()) {
+  if (matching_iterator->second + base::Days(1) < base::Time::Now()) {
     return base::Time();
   }
   return matching_iterator->second;
diff --git a/chrome/browser/content_settings/page_specific_content_settings_unittest.cc b/chrome/browser/content_settings/page_specific_content_settings_unittest.cc
index 196b741f..2f8d0c4e 100644
--- a/chrome/browser/content_settings/page_specific_content_settings_unittest.cc
+++ b/chrome/browser/content_settings/page_specific_content_settings_unittest.cc
@@ -48,7 +48,7 @@
                                      ContentSettingsType::MEDIASTREAM_CAMERA,
                                      ContentSetting::CONTENT_SETTING_ALLOW);
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
   PageSpecificContentSettings* content_settings =
       PageSpecificContentSettings::GetForFrame(web_contents()->GetMainFrame());
 
diff --git a/chrome/browser/custom_handlers/protocol_handler_registry_unittest.cc b/chrome/browser/custom_handlers/protocol_handler_registry_unittest.cc
index 847d2a8..a263b79 100644
--- a/chrome/browser/custom_handlers/protocol_handler_registry_unittest.cc
+++ b/chrome/browser/custom_handlers/protocol_handler_registry_unittest.cc
@@ -354,8 +354,8 @@
 
 TEST_F(ProtocolHandlerRegistryTest, GetHandlersBetween) {
   base::Time now = base::Time::Now();
-  base::Time one_hour_ago = now - base::TimeDelta::FromHours(1);
-  base::Time two_hours_ago = now - base::TimeDelta::FromHours(2);
+  base::Time one_hour_ago = now - base::Hours(1);
+  base::Time two_hours_ago = now - base::Hours(2);
   ProtocolHandler handler1("bitcoin", GURL("https://example.com"),
                            two_hours_ago,
                            blink::ProtocolHandlerSecurityLevel::kStrict);
@@ -379,8 +379,8 @@
 
 TEST_F(ProtocolHandlerRegistryTest, ClearHandlersBetween) {
   base::Time now = base::Time::Now();
-  base::Time one_hour_ago = now - base::TimeDelta::FromHours(1);
-  base::Time two_hours_ago = now - base::TimeDelta::FromHours(2);
+  base::Time one_hour_ago = now - base::Hours(1);
+  base::Time two_hours_ago = now - base::Hours(2);
   GURL url("https://example.com");
   ProtocolHandler handler1("bitcoin", url, two_hours_ago,
                            blink::ProtocolHandlerSecurityLevel::kStrict);
diff --git a/chrome/browser/data_reduction_proxy/data_reduction_proxy_chrome_settings.cc b/chrome/browser/data_reduction_proxy/data_reduction_proxy_chrome_settings.cc
index 66b20807..0055f66 100644
--- a/chrome/browser/data_reduction_proxy/data_reduction_proxy_chrome_settings.cc
+++ b/chrome/browser/data_reduction_proxy/data_reduction_proxy_chrome_settings.cc
@@ -235,7 +235,7 @@
   // (http://crbug.com/408264)
   base::TimeDelta commit_delay = base::TimeDelta();
 #else
-  base::TimeDelta commit_delay = base::TimeDelta::FromMinutes(60);
+  base::TimeDelta commit_delay = base::Minutes(60);
 #endif
 
   PrefService* profile_prefs = profile->GetPrefs();
diff --git a/chrome/browser/data_saver/subresource_redirect_browsertest.cc b/chrome/browser/data_saver/subresource_redirect_browsertest.cc
index a8af8631..7d586e9 100644
--- a/chrome/browser/data_saver/subresource_redirect_browsertest.cc
+++ b/chrome/browser/data_saver/subresource_redirect_browsertest.cc
@@ -367,7 +367,7 @@
     } else if (compression_server_failure_mode_ ==
                CompressionServerFailureMode::TIMEOUT) {
       return std::make_unique<net::test_server::DelayedHttpResponse>(
-          base::TimeDelta::FromSeconds(10));
+          base::Seconds(10));
     }
 
     // For the purpose of this browsertest, a redirect to the compression server
@@ -544,7 +544,7 @@
 
   // The third navigation should attempt subresource redirect, once the bypass
   // is cleared.
-  VerifyAndClearBypassTimeout(base::TimeDelta::FromSeconds(4));
+  VerifyAndClearBypassTimeout(base::Seconds(4));
   url = HttpsURLWithPath("/load_image/image_delayed_load.html?third");
   SetUpPublicImageURLPaths(url, {"/load_image/image.png"});
   base::RunLoop().RunUntilIdle();
@@ -1301,7 +1301,7 @@
 
   // The third navigation should attempt subresource redirect, once the bypass
   // is cleared.
-  VerifyAndClearBypassTimeout(base::TimeDelta::FromSeconds(4));
+  VerifyAndClearBypassTimeout(base::Seconds(4));
   url = HttpsURLWithPath("/load_image/image_delayed_load.html?third");
   SetUpPublicImageURLPaths(url, {"/load_image/image.png"});
   base::RunLoop().RunUntilIdle();
@@ -1556,7 +1556,7 @@
     switch (hint_fetch_mode_) {
       case HintFetchMode::HINT_FETCH_AFTER_IMAGES_LOADED: {
         auto response = std::make_unique<net::test_server::DelayedHttpResponse>(
-            base::TimeDelta::FromSeconds(3));
+            base::Seconds(3));
         response->set_content(get_hints_response_);
         response->set_code(net::HTTP_OK);
         return std::move(response);
diff --git a/chrome/browser/data_saver/subresource_redirect_login_robots_browsertest.cc b/chrome/browser/data_saver/subresource_redirect_login_robots_browsertest.cc
index c9d3dcc..3b4f14f 100644
--- a/chrome/browser/data_saver/subresource_redirect_login_robots_browsertest.cc
+++ b/chrome/browser/data_saver/subresource_redirect_login_robots_browsertest.cc
@@ -990,8 +990,8 @@
     EXPECT_TRUE(RunScriptExtractBool(load_image_url));
     EXPECT_TRUE(RunScriptExtractBool("checkImage()"));
     // The image should load closer to 2 seconds.
-    EXPECT_LT(base::TimeDelta::FromSecondsD(0.9), elapsed_timer.Elapsed());
-    EXPECT_GT(base::TimeDelta::FromSecondsD(2.6), elapsed_timer.Elapsed());
+    EXPECT_LT(base::Seconds(0.9), elapsed_timer.Elapsed());
+    EXPECT_GT(base::Seconds(2.6), elapsed_timer.Elapsed());
   }
 
   FetchHistogramsFromChildProcesses();
@@ -1013,7 +1013,7 @@
   EXPECT_TRUE(RunScriptExtractBool(load_image_url));
   EXPECT_TRUE(RunScriptExtractBool("checkImage()"));
   // The image should load closer to 3 seconds.
-  EXPECT_LT(base::TimeDelta::FromSecondsD(2.9), elapsed_timer.Elapsed());
+  EXPECT_LT(base::Seconds(2.9), elapsed_timer.Elapsed());
 
   FetchHistogramsFromChildProcesses();
   histogram_tester_.ExpectUniqueSample(
diff --git a/chrome/browser/dbus_memory_pressure_evaluator_linux.cc b/chrome/browser/dbus_memory_pressure_evaluator_linux.cc
index 6e8fd111..ab60bcaf 100644
--- a/chrome/browser/dbus_memory_pressure_evaluator_linux.cc
+++ b/chrome/browser/dbus_memory_pressure_evaluator_linux.cc
@@ -55,7 +55,7 @@
 // LMM emits signals every 15 seconds on pressure, so if we've been quiet for 20
 // seconds, the pressure is likely cleared up.
 const base::TimeDelta DbusMemoryPressureEvaluatorLinux::kResetVotePeriod =
-    base::TimeDelta::FromSeconds(20);
+    base::Seconds(20);
 
 DbusMemoryPressureEvaluatorLinux::DbusMemoryPressureEvaluatorLinux(
     std::unique_ptr<memory_pressure::MemoryPressureVoter> voter)
diff --git a/chrome/browser/device_api/managed_configuration_api_browsertest.cc b/chrome/browser/device_api/managed_configuration_api_browsertest.cc
index 9be4dcd8..3b0de91 100644
--- a/chrome/browser/device_api/managed_configuration_api_browsertest.cc
+++ b/chrome/browser/device_api/managed_configuration_api_browsertest.cc
@@ -64,7 +64,7 @@
   std::unique_ptr<net::test_server::BasicHttpResponse> http_response;
   if (response_template.should_post_task) {
     http_response = std::make_unique<net::test_server::DelayedHttpResponse>(
-        base::TimeDelta::FromSeconds(0));
+        base::Seconds(0));
   } else {
     http_response = std::make_unique<net::test_server::BasicHttpResponse>();
   }
diff --git a/chrome/browser/device_reauth/android/biometric_authenticator_android.cc b/chrome/browser/device_reauth/android/biometric_authenticator_android.cc
index 89a5f22..82ee715 100644
--- a/chrome/browser/device_reauth/android/biometric_authenticator_android.cc
+++ b/chrome/browser/device_reauth/android/biometric_authenticator_android.cc
@@ -93,7 +93,7 @@
       "PasswordManager.BiometricAuthPwdFill.AuthRequester", requester);
   if (last_good_auth_timestamp_.has_value() &&
       base::TimeTicks::Now() - last_good_auth_timestamp_.value() <
-          base::TimeDelta::FromSeconds(kAuthValidSeconds)) {
+          base::Seconds(kAuthValidSeconds)) {
     LogAuthResult(BiometricAuthFinalResult::kAuthStillValid);
     std::move(callback_).Run(/*success=*/true);
     requester_ = absl::nullopt;
diff --git a/chrome/browser/device_reauth/android/biometric_authenticator_android_unittest.cc b/chrome/browser/device_reauth/android/biometric_authenticator_android_unittest.cc
index 7f894ea..51f7854 100644
--- a/chrome/browser/device_reauth/android/biometric_authenticator_android_unittest.cc
+++ b/chrome/browser/device_reauth/android/biometric_authenticator_android_unittest.cc
@@ -131,7 +131,7 @@
   authenticator()->Authenticate(BiometricAuthRequester::kAllPasswordsList,
                                 base::DoNothing());
 
-  task_environment().FastForwardBy(base::TimeDelta::FromSeconds(60));
+  task_environment().FastForwardBy(base::Seconds(60));
 
   // The next call to `Authenticate()` should re-trigger an authentication.
   EXPECT_CALL(bridge(), Authenticate(_))
diff --git a/chrome/browser/devtools/device/devtools_device_discovery.cc b/chrome/browser/devtools/device/devtools_device_discovery.cc
index 987a4ce6..1259c3e 100644
--- a/chrome/browser/devtools/device/devtools_device_discovery.cc
+++ b/chrome/browser/devtools/device/devtools_device_discovery.cc
@@ -46,8 +46,7 @@
 
 static void ScheduleTaskDefault(base::OnceClosure task) {
   content::GetUIThreadTaskRunner({})->PostDelayedTask(
-      FROM_HERE, std::move(task),
-      base::TimeDelta::FromMilliseconds(kPollingIntervalMs));
+      FROM_HERE, std::move(task), base::Milliseconds(kPollingIntervalMs));
 }
 
 // ProtocolCommand ------------------------------------------------------------
diff --git a/chrome/browser/devtools/devtools_browsertest.cc b/chrome/browser/devtools/devtools_browsertest.cc
index 9ac5183..c5815c6 100644
--- a/chrome/browser/devtools/devtools_browsertest.cc
+++ b/chrome/browser/devtools/devtools_browsertest.cc
@@ -1695,12 +1695,10 @@
 
   response->headers = new net::HttpResponseHeaders("200 OK\r\n\r\n");
 
-  auto start_time =
-      base::TimeTicks::Now() - base::TimeDelta::FromMilliseconds(10);
+  auto start_time = base::TimeTicks::Now() - base::Milliseconds(10);
   response->request_start = start_time;
   response->response_start = base::TimeTicks::Now();
-  response->request_time =
-      base::Time::Now() - base::TimeDelta::FromMilliseconds(10);
+  response->request_time = base::Time::Now() - base::Milliseconds(10);
   response->response_time = base::Time::Now();
 
   auto& load_timing = response->load_timing;
@@ -1709,7 +1707,7 @@
   load_timing.send_start = start_time;
   load_timing.send_end = base::TimeTicks::Now();
   load_timing.receive_headers_end = base::TimeTicks::Now();
-  load_timing.push_start = start_time - base::TimeDelta::FromMilliseconds(100);
+  load_timing.push_start = start_time - base::Milliseconds(100);
   if (url.query() != kPushUseNullEndTime)
     load_timing.push_end = base::TimeTicks::Now();
 
@@ -2390,7 +2388,7 @@
   https_test_server.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
   ASSERT_TRUE(https_test_server.Start());
   GURL https_url = https_test_server.GetURL("localhost", "/devtools/image.png");
-  base::Time expiry = base::Time::Now() + base::TimeDelta::FromDays(1000);
+  base::Time expiry = base::Time::Now() + base::Days(1000);
   bool include_subdomains = false;
   mojo::ScopedAllowSyncCallForTesting allow_sync_call;
   content::StoragePartition* partition =
diff --git a/chrome/browser/devtools/devtools_eye_dropper.cc b/chrome/browser/devtools/devtools_eye_dropper.cc
index 2dd3ebf..64fdb19 100644
--- a/chrome/browser/devtools/devtools_eye_dropper.cc
+++ b/chrome/browser/devtools/devtools_eye_dropper.cc
@@ -73,8 +73,7 @@
   video_capturer_->SetMinSizeChangePeriod(base::TimeDelta());
   video_capturer_->SetFormat(media::PIXEL_FORMAT_ARGB,
                              gfx::ColorSpace::CreateREC709());
-  video_capturer_->SetMinCapturePeriod(base::TimeDelta::FromSeconds(1) /
-                                       kMaxFrameRate);
+  video_capturer_->SetMinCapturePeriod(base::Seconds(1) / kMaxFrameRate);
   video_capturer_->Start(this);
 }
 
diff --git a/chrome/browser/devtools/devtools_file_watcher.cc b/chrome/browser/devtools/devtools_file_watcher.cc
index c2602a40..506fad4 100644
--- a/chrome/browser/devtools/devtools_file_watcher.cc
+++ b/chrome/browser/devtools/devtools_file_watcher.cc
@@ -66,8 +66,7 @@
 };
 
 DevToolsFileWatcher::SharedFileWatcher::SharedFileWatcher()
-    : last_dispatch_cost_(
-          base::TimeDelta::FromMilliseconds(kDefaultThrottleTimeout)) {
+    : last_dispatch_cost_(base::Milliseconds(kDefaultThrottleTimeout)) {
   DevToolsFileWatcher::s_shared_watcher_ = this;
   base::trace_event::MemoryDumpManager::GetInstance()
       ->RegisterDumpProviderWithSequencedTaskRunner(
@@ -171,10 +170,9 @@
 
   base::Time now = base::Time::Now();
   // Quickly dispatch first chunk.
-  base::TimeDelta shedule_for =
-      now - last_event_time_ > last_dispatch_cost_ ?
-          base::TimeDelta::FromMilliseconds(kFirstThrottleTimeout) :
-          last_dispatch_cost_ * 2;
+  base::TimeDelta shedule_for = now - last_event_time_ > last_dispatch_cost_
+                                    ? base::Milliseconds(kFirstThrottleTimeout)
+                                    : last_dispatch_cost_ * 2;
 
   base::SequencedTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE,
diff --git a/chrome/browser/devtools/devtools_interactive_browsertest.cc b/chrome/browser/devtools/devtools_interactive_browsertest.cc
index b904a33..d4e2bc5 100644
--- a/chrome/browser/devtools/devtools_interactive_browsertest.cc
+++ b/chrome/browser/devtools/devtools_interactive_browsertest.cc
@@ -29,8 +29,7 @@
   CheckWaiter(base::RepeatingCallback<bool()> callback, bool expected)
       : callback_(callback),
         expected_(expected),
-        timeout_(base::Time::NowFromSystemTime() +
-                 base::TimeDelta::FromSeconds(1)) {}
+        timeout_(base::Time::NowFromSystemTime() + base::Seconds(1)) {}
 
   CheckWaiter(const CheckWaiter&) = delete;
   CheckWaiter& operator=(const CheckWaiter&) = delete;
diff --git a/chrome/browser/devtools/devtools_targets_ui.cc b/chrome/browser/devtools/devtools_targets_ui.cc
index 7731667..5d25af1a 100644
--- a/chrome/browser/devtools/devtools_targets_ui.cc
+++ b/chrome/browser/devtools/devtools_targets_ui.cc
@@ -124,7 +124,7 @@
 void LocalTargetsUIHandler::ScheduleUpdate() {
   const int kUpdateDelay = 100;
   timer_ = std::make_unique<base::OneShotTimer>();
-  timer_->Start(FROM_HERE, base::TimeDelta::FromMilliseconds(kUpdateDelay),
+  timer_->Start(FROM_HERE, base::Milliseconds(kUpdateDelay),
                 base::BindOnce(&LocalTargetsUIHandler::UpdateTargets,
                                base::Unretained(this)));
 }
diff --git a/chrome/browser/devtools/devtools_ui_bindings.cc b/chrome/browser/devtools/devtools_ui_bindings.cc
index 5bae367..c40cc1fd 100644
--- a/chrome/browser/devtools/devtools_ui_bindings.cc
+++ b/chrome/browser/devtools/devtools_ui_bindings.cc
@@ -437,9 +437,8 @@
   return result;
 }
 
-constexpr base::TimeDelta kInitialBackoffDelay =
-    base::TimeDelta::FromMilliseconds(250);
-constexpr base::TimeDelta kMaxBackoffDelay = base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kInitialBackoffDelay = base::Milliseconds(250);
+constexpr base::TimeDelta kMaxBackoffDelay = base::Seconds(10);
 
 }  // namespace
 
@@ -1357,7 +1356,7 @@
   }
   // Use histogram_functions.h instead of macros as the name comes from the
   // DevTools frontend javascript and so will always have the same call site.
-  base::TimeDelta delta = base::TimeDelta::FromMilliseconds(duration);
+  base::TimeDelta delta = base::Milliseconds(duration);
   base::UmaHistogramTimes(name, delta);
 }
 
diff --git a/chrome/browser/dom_distiller/distillable_page_utils_browsertest.cc b/chrome/browser/dom_distiller/distillable_page_utils_browsertest.cc
index 266b587..319c258 100644
--- a/chrome/browser/dom_distiller/distillable_page_utils_browsertest.cc
+++ b/chrome/browser/dom_distiller/distillable_page_utils_browsertest.cc
@@ -63,14 +63,14 @@
 // so 100ms should be pretty safe to catch extra calls.
 //
 // If there are no extra calls, changing this doesn't change the test result.
-const auto kWaitAfterLastCall = base::TimeDelta::FromMilliseconds(100);
+const auto kWaitAfterLastCall = base::Milliseconds(100);
 
 // Wait a bit if no calls are expected to make sure any unexpected calls are
 // caught. Expected calls happen within 100ms after content::WaitForLoadStop()
 // on linux release build, so 1s provides a safe margin.
 //
 // If there are no extra calls, changing this doesn't change the test result.
-const auto kWaitNoExpectedCall = base::TimeDelta::FromSeconds(1);
+const auto kWaitNoExpectedCall = base::Seconds(1);
 
 }  // namespace
 
diff --git a/chrome/browser/dom_distiller/tab_utils_browsertest.cc b/chrome/browser/dom_distiller/tab_utils_browsertest.cc
index a1801ed2..8c6255b 100644
--- a/chrome/browser/dom_distiller/tab_utils_browsertest.cc
+++ b/chrome/browser/dom_distiller/tab_utils_browsertest.cc
@@ -424,7 +424,7 @@
 
   void Wait() {
     base::RepeatingTimer check_timer;
-    check_timer.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(10), this,
+    check_timer.Start(FROM_HERE, base::Milliseconds(10), this,
                       &DistilledPageImageLoadWaiter::OnTimer);
     runner_.Run();
   }
diff --git a/chrome/browser/download/android/available_offline_content_provider_unittest.cc b/chrome/browser/download/android/available_offline_content_provider_unittest.cc
index bce18ff2..113a60f 100644
--- a/chrome/browser/download/android/available_offline_content_provider_unittest.cc
+++ b/chrome/browser/download/android/available_offline_content_provider_unittest.cc
@@ -69,8 +69,7 @@
   item.description = "snippet";
   // Using Time::Now() isn't ideal, but this should result in "4 hours ago"
   // even if the test takes 1 hour to run.
-  item.creation_time =
-      base::Time::Now() - base::TimeDelta::FromMinutes(60 * 3.5);
+  item.creation_time = base::Time::Now() - base::Minutes(60 * 3.5);
   item.last_accessed_time = base::Time::Now();
   item.attribution = "attribution";
   return item;
diff --git a/chrome/browser/download/download_history_unittest.cc b/chrome/browser/download/download_history_unittest.cc
index 3ee855d7..30e160c 100644
--- a/chrome/browser/download/download_history_unittest.cc
+++ b/chrome/browser/download/download_history_unittest.cc
@@ -370,8 +370,8 @@
     row->tab_referrer_url = GURL("http://example.com/tab-referrer-url");
     row->mime_type = "application/octet-stream";
     row->original_mime_type = "application/octet-stream";
-    row->start_time = now - base::TimeDelta::FromMinutes(10);
-    row->end_time = now - base::TimeDelta::FromMinutes(1);
+    row->start_time = now - base::Minutes(10);
+    row->end_time = now - base::Minutes(1);
     row->etag = "Etag";
     row->last_modified = "abc";
     row->received_bytes = 100;
diff --git a/chrome/browser/download/download_item_model_unittest.cc b/chrome/browser/download/download_item_model_unittest.cc
index 7fa4c06a..7f29fd9d 100644
--- a/chrome/browser/download/download_item_model_unittest.cc
+++ b/chrome/browser/download/download_item_model_unittest.cc
@@ -383,9 +383,9 @@
     EXPECT_CALL(item(), GetTotalBytes())
         .WillRepeatedly(Return(test_case.total_bytes));
     EXPECT_CALL(item(), TimeRemaining(_))
-        .WillRepeatedly(testing::DoAll(
-            testing::SetArgPointee<0>(base::TimeDelta::FromSeconds(10)),
-            Return(test_case.time_remaining_known)));
+        .WillRepeatedly(
+            testing::DoAll(testing::SetArgPointee<0>(base::Seconds(10)),
+                           Return(test_case.time_remaining_known)));
     EXPECT_CALL(item(), GetOpenWhenComplete())
         .WillRepeatedly(Return(test_case.open_when_complete));
     EXPECT_CALL(item(), IsPaused())
diff --git a/chrome/browser/download/download_offline_content_provider.cc b/chrome/browser/download/download_offline_content_provider.cc
index d658fac8..70bcac0b 100644
--- a/chrome/browser/download/download_offline_content_provider.cc
+++ b/chrome/browser/download/download_offline_content_provider.cc
@@ -49,7 +49,7 @@
 // The delay to wait after loading history and before starting the check for
 // externally removed downloads.
 const base::TimeDelta kCheckExternallyRemovedDownloadsDelay =
-    base::TimeDelta::FromMilliseconds(100);
+    base::Milliseconds(100);
 
 #if defined(OS_ANDROID)
 // Invalid system download Id.
diff --git a/chrome/browser/download/download_shelf.cc b/chrome/browser/download/download_shelf.cc
index 4c8ec54..7a24c4d2 100644
--- a/chrome/browser/download/download_shelf.cc
+++ b/chrome/browser/download/download_shelf.cc
@@ -89,7 +89,7 @@
 }
 
 base::TimeDelta DownloadShelf::GetTransientDownloadShowDelay() const {
-  return base::TimeDelta::FromSeconds(2);
+  return base::Seconds(2);
 }
 
 void DownloadShelf::ShowDownload(DownloadUIModel::DownloadUIModelPtr download) {
diff --git a/chrome/browser/download/download_target_determiner_unittest.cc b/chrome/browser/download/download_target_determiner_unittest.cc
index 55b6de7..93901a7f 100644
--- a/chrome/browser/download/download_target_determiner_unittest.cc
+++ b/chrome/browser/download/download_target_determiner_unittest.cc
@@ -1200,8 +1200,8 @@
   GURL url("http://visited.example.com/visited-link.html");
   // The time of visit is picked to be several seconds prior to the most recent
   // midnight.
-  base::Time time_of_visit(
-      base::Time::Now().LocalMidnight() - base::TimeDelta::FromSeconds(10));
+  base::Time time_of_visit(base::Time::Now().LocalMidnight() -
+                           base::Seconds(10));
   history::HistoryService* history_service =
       HistoryServiceFactory::GetForProfile(profile(),
                                            ServiceAccessType::EXPLICIT_ACCESS);
diff --git a/chrome/browser/download/offline_item_model.cc b/chrome/browser/download/offline_item_model.cc
index b7b6866..f02a12b 100644
--- a/chrome/browser/download/offline_item_model.cc
+++ b/chrome/browser/download/offline_item_model.cc
@@ -163,8 +163,7 @@
 bool OfflineItemModel::TimeRemaining(base::TimeDelta* remaining) const {
   if (!offline_item_ || offline_item_->time_remaining_ms == -1)
     return false;
-  *remaining =
-      base::TimeDelta::FromMilliseconds(offline_item_->time_remaining_ms);
+  *remaining = base::Milliseconds(offline_item_->time_remaining_ms);
   return true;
 }
 
diff --git a/chrome/browser/download/offline_item_utils_unittest.cc b/chrome/browser/download/offline_item_utils_unittest.cc
index 27d7915..6c6387a 100644
--- a/chrome/browser/download/offline_item_utils_unittest.cc
+++ b/chrome/browser/download/offline_item_utils_unittest.cc
@@ -162,8 +162,7 @@
 
   ON_CALL(*download, TimeRemaining(_))
       .WillByDefault(testing::DoAll(
-          testing::SetArgPointee<0>(
-              base::TimeDelta::FromMilliseconds(time_remaining_ms)),
+          testing::SetArgPointee<0>(base::Milliseconds(time_remaining_ms)),
           Return(true)));
   ON_CALL(*download, IsDangerous()).WillByDefault(Return(is_dangerous));
 
diff --git a/chrome/browser/endpoint_fetcher/endpoint_fetcher.cc b/chrome/browser/endpoint_fetcher/endpoint_fetcher.cc
index e8e64835..baa4e7fb 100644
--- a/chrome/browser/endpoint_fetcher/endpoint_fetcher.cc
+++ b/chrome/browser/endpoint_fetcher/endpoint_fetcher.cc
@@ -237,8 +237,7 @@
   }
   simple_url_loader_->SetRetryOptions(kNumRetries,
                                       network::SimpleURLLoader::RETRY_ON_5XX);
-  simple_url_loader_->SetTimeoutDuration(
-      base::TimeDelta::FromMilliseconds(timeout_ms_));
+  simple_url_loader_->SetTimeoutDuration(base::Milliseconds(timeout_ms_));
   simple_url_loader_->SetAllowHttpErrorResults(true);
   network::SimpleURLLoader::BodyAsStringCallback body_as_string_callback =
       base::BindOnce(&EndpointFetcher::OnResponseFetched,
diff --git a/chrome/browser/engagement/history_aware_site_engagement_service.cc b/chrome/browser/engagement/history_aware_site_engagement_service.cc
index cecd1be..8d08730a 100644
--- a/chrome/browser/engagement/history_aware_site_engagement_service.cc
+++ b/chrome/browser/engagement/history_aware_site_engagement_service.cc
@@ -48,7 +48,7 @@
   // time" is 4 weeks ago. Set the last updated date to 4 weeks ago for origins
   // where we can't find a valid last visit date.
   base::Time now = clock().Now();
-  base::Time four_weeks_ago = now - base::TimeDelta::FromDays(28);
+  base::Time four_weeks_ago = now - base::Days(28);
 
   HostContentSettingsMap* settings_map =
       HostContentSettingsMapFactory::GetForProfile(browser_context());
diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/engagement/important_sites_util.cc
index 247d6bf..3b27f28 100644
--- a/chrome/browser/engagement/important_sites_util.cc
+++ b/chrome/browser/engagement/important_sites_util.cc
@@ -117,7 +117,7 @@
   if (last_ignored_time) {
     base::TimeDelta diff =
         base::Time::Now() - base::Time::FromDoubleT(*last_ignored_time);
-    if (diff >= base::TimeDelta::FromDays(kSuppressionExpirationTimeDays)) {
+    if (diff >= base::Days(kSuppressionExpirationTimeDays)) {
       dict->SetIntKey(kNumTimesIgnoredName, 0);
       dict->RemoveKey(kTimeLastIgnored);
       return false;
diff --git a/chrome/browser/engagement/site_engagement_helper_browsertest.cc b/chrome/browser/engagement/site_engagement_helper_browsertest.cc
index c5ec00b..277034a 100644
--- a/chrome/browser/engagement/site_engagement_helper_browsertest.cc
+++ b/chrome/browser/engagement/site_engagement_helper_browsertest.cc
@@ -38,7 +38,7 @@
   void Start(const base::Location& posted_from,
              base::TimeDelta delay,
              base::OnceClosure user_task) override {
-    base::OneShotTimer::Start(posted_from, base::TimeDelta::FromSeconds(0),
+    base::OneShotTimer::Start(posted_from, base::Seconds(0),
                               std::move(user_task));
 
     // Updates |restarted_| if the timer is restarted.
diff --git a/chrome/browser/engagement/site_engagement_service_unittest.cc b/chrome/browser/engagement/site_engagement_service_unittest.cc
index b40299b9..429a473f 100644
--- a/chrome/browser/engagement/site_engagement_service_unittest.cc
+++ b/chrome/browser/engagement/site_engagement_service_unittest.cc
@@ -476,7 +476,7 @@
   base::HistogramTester histograms;
 
   base::Time current_day = GetReferenceTime();
-  clock_.SetNow(current_day - base::TimeDelta::FromDays(5));
+  clock_.SetNow(current_day - base::Days(5));
 
   // The https and http versions of www.google.com should be separate. But
   // different paths on the same origin should be treated the same.
@@ -511,20 +511,20 @@
   EXPECT_DOUBLE_EQ(2.0, service_->GetScore(url1));
   EXPECT_DOUBLE_EQ(7.0, service_->GetScore(url2));
 
-  clock_.SetNow(GetReferenceTime() + base::TimeDelta::FromDays(1));
+  clock_.SetNow(GetReferenceTime() + base::Days(1));
   EXPECT_DOUBLE_EQ(2.0, service_->GetScore(url1));
   EXPECT_DOUBLE_EQ(7.0, service_->GetScore(url2));
 
-  clock_.SetNow(GetReferenceTime() + base::TimeDelta::FromDays(7));
+  clock_.SetNow(GetReferenceTime() + base::Days(7));
   EXPECT_DOUBLE_EQ(0.0, service_->GetScore(url1));
   EXPECT_DOUBLE_EQ(5.0, service_->GetScore(url2));
 
   service_->AddPointsForTesting(url1, 1.0);
-  clock_.SetNow(GetReferenceTime() + base::TimeDelta::FromDays(10));
+  clock_.SetNow(GetReferenceTime() + base::Days(10));
   EXPECT_DOUBLE_EQ(1.0, service_->GetScore(url1));
   EXPECT_DOUBLE_EQ(5.0, service_->GetScore(url2));
 
-  clock_.SetNow(GetReferenceTime() + base::TimeDelta::FromDays(11));
+  clock_.SetNow(GetReferenceTime() + base::Days(11));
   EXPECT_DOUBLE_EQ(1.0, service_->GetScore(url1));
   EXPECT_DOUBLE_EQ(0.0, service_->GetScore(url2));
 }
@@ -584,7 +584,7 @@
   for (const std::string& histogram_name : engagement_bucket_histogram_names)
     histograms.ExpectTotalCount(histogram_name, 0);
 
-  clock_.SetNow(clock_.Now() + base::TimeDelta::FromMinutes(60));
+  clock_.SetNow(clock_.Now() + base::Minutes(60));
 
   // The https and http versions of www.google.com should be separate.
   GURL url1("https://www.google.com/");
@@ -633,7 +633,7 @@
                                EngagementType::kFirstDailyEngagement, 2);
 
   // Navigations are still logged within the 1 hour refresh period
-  clock_.SetNow(clock_.Now() + base::TimeDelta::FromMinutes(59));
+  clock_.SetNow(clock_.Now() + base::Minutes(59));
 
   NavigateAndCommit(url2);
   service_->HandleNavigation(web_contents(), ui::PAGE_TRANSITION_GENERATED);
@@ -653,7 +653,7 @@
                                EngagementType::kFirstDailyEngagement, 2);
 
   // Update the hourly histograms again.
-  clock_.SetNow(clock_.Now() + base::TimeDelta::FromMinutes(1));
+  clock_.SetNow(clock_.Now() + base::Minutes(1));
 
   NavigateAndCommit(url3);
   service_->HandleNavigation(web_contents(), ui::PAGE_TRANSITION_TYPED);
@@ -731,7 +731,7 @@
   for (int i = 0; i < 6; ++i)
     service_->HandleNavigation(web_contents(), ui::PAGE_TRANSITION_TYPED);
 
-  clock_.SetNow(clock_.Now() + base::TimeDelta::FromMinutes(60));
+  clock_.SetNow(clock_.Now() + base::Minutes(60));
   service_->HandleNavigation(web_contents(), ui::PAGE_TRANSITION_TYPED);
 
   // Wait until the background metrics recording happens.
@@ -780,10 +780,10 @@
 TEST_F(SiteEngagementServiceTest, CleanupEngagementScores) {
   // Set the base time to be 3 weeks past the stale period in the past.
   // Use a 1 second offset to make sure scores don't yet decay.
-  base::TimeDelta one_second = base::TimeDelta::FromSeconds(1);
-  base::TimeDelta one_day = base::TimeDelta::FromDays(1);
+  base::TimeDelta one_second = base::Seconds(1);
+  base::TimeDelta one_day = base::Days(1);
   base::TimeDelta decay_period =
-      base::TimeDelta::FromHours(SiteEngagementScore::GetDecayPeriodInHours());
+      base::Hours(SiteEngagementScore::GetDecayPeriodInHours());
   base::TimeDelta shorter_than_decay_period = decay_period - one_second;
 
   base::Time max_decay_time =
@@ -1004,7 +1004,7 @@
   service_->AddPointsForTesting(url1, 1.0);
   service_->AddPointsForTesting(url2, 1.2);
 
-  current_day += base::TimeDelta::FromDays(7);
+  current_day += base::Days(7);
   clock_.SetNow(current_day);
   std::map<GURL, double> score_map = GetScoreMap(service_);
   EXPECT_EQ(2u, score_map.size());
@@ -1060,7 +1060,7 @@
   service_->AddPointsForTesting(url2, 5.0);
   EXPECT_TRUE(service_->IsBootstrapped());
 
-  clock_.SetNow(current_day + base::TimeDelta::FromDays(8));
+  clock_.SetNow(current_day + base::Days(8));
   EXPECT_FALSE(service_->IsBootstrapped());
 }
 
@@ -1091,11 +1091,10 @@
   GURL origin4a("http://decayed.com/index.html");
 
   base::Time today = GetReferenceTime();
-  base::Time yesterday = GetReferenceTime() - base::TimeDelta::FromDays(1);
-  base::Time yesterday_afternoon = GetReferenceTime() -
-                                   base::TimeDelta::FromDays(1) +
-                                   base::TimeDelta::FromHours(4);
-  base::Time yesterday_week = GetReferenceTime() - base::TimeDelta::FromDays(8);
+  base::Time yesterday = GetReferenceTime() - base::Days(1);
+  base::Time yesterday_afternoon =
+      GetReferenceTime() - base::Days(1) + base::Hours(4);
+  base::Time yesterday_week = GetReferenceTime() - base::Days(8);
   clock_.SetNow(today);
 
   history::HistoryService* history = HistoryServiceFactory::GetForProfile(
@@ -1290,7 +1289,7 @@
 
   // Bring url2 to HIGH engagement.
   for (int i = 0; i < 9; ++i) {
-    current_day += base::TimeDelta::FromDays(1);
+    current_day += base::Days(1);
     clock_.SetNow(current_day);
     service_->AddPointsForTesting(url2, 5.0);
   }
@@ -1312,7 +1311,7 @@
 
   // Bring url2 to MAX engagement.
   for (int i = 0; i < 10; ++i) {
-    current_day += base::TimeDelta::FromDays(1);
+    current_day += base::Days(1);
     clock_.SetNow(current_day);
     service_->AddPointsForTesting(url2, 5.0);
   }
@@ -1463,7 +1462,7 @@
   EXPECT_EQ(rebased_time, service_->GetLastEngagementTime());
 
   // Adding 0 points shouldn't update the last engagement time.
-  base::Time later_in_day = current_day + base::TimeDelta::FromSeconds(30);
+  base::Time later_in_day = current_day + base::Seconds(30);
   clock_.SetNow(later_in_day);
   service_->AddPointsForTesting(origin, 0);
 
@@ -1509,8 +1508,8 @@
 
   // Advance within a decay period and add points.
   base::TimeDelta less_than_decay_period =
-      base::TimeDelta::FromHours(SiteEngagementScore::GetDecayPeriodInHours()) -
-      base::TimeDelta::FromSeconds(30);
+      base::Hours(SiteEngagementScore::GetDecayPeriodInHours()) -
+      base::Seconds(30);
   base::Time origin1_last_updated = clock_.Now() + less_than_decay_period;
   clock_.SetNow(origin1_last_updated);
   service_->AddPointsForTesting(origin, 1);
@@ -1537,7 +1536,7 @@
   // triggers a cleanup. Ensure that |last_engagement_time| is moved back
   // appropriately, while origin1 is decayed correctly (once).
   clock_.SetNow(origin1_last_updated + less_than_decay_period +
-                base::TimeDelta::FromSeconds(30));
+                base::Seconds(30));
   service_->AddPointsForTesting(origin1, 1);
 
   EXPECT_EQ(clock_.Now(),
@@ -1571,8 +1570,7 @@
   // Set the clock such that |origin|'s last engagement time is between
   // last_engagement_time and rebase_time.
   clock_.SetNow(current_day + service_->GetStalePeriod() +
-                service_->GetMaxDecayPeriod() -
-                base::TimeDelta::FromSeconds((30)));
+                service_->GetMaxDecayPeriod() - base::Seconds((30)));
   base::Time rebased_time = clock_.Now() - service_->GetMaxDecayPeriod();
   service_->CleanupEngagementScores(true);
 
diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog.cc b/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog.cc
index 0f6af55f..ea2800a 100644
--- a/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog.cc
+++ b/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog.cc
@@ -47,8 +47,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kResizeAnimationDuration =
-    base::TimeDelta::FromMilliseconds(100);
+constexpr base::TimeDelta kResizeAnimationDuration = base::Milliseconds(100);
 
 constexpr int kSideImageSize = 24;
 constexpr int kLineHeight = 20;
@@ -60,8 +59,8 @@
 
 // These time values are non-const in order to be overridden in test so they
 // complete faster.
-base::TimeDelta minimum_pending_dialog_time_ = base::TimeDelta::FromSeconds(2);
-base::TimeDelta success_dialog_timeout_ = base::TimeDelta::FromSeconds(1);
+base::TimeDelta minimum_pending_dialog_time_ = base::Seconds(2);
+base::TimeDelta success_dialog_timeout_ = base::Seconds(1);
 
 // A simple background class to show a colored circle behind the side icon once
 // the scanning is done.
diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog_browsertest.cc b/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog_browsertest.cc
index 4a685f29..3a3d726f 100644
--- a/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog_browsertest.cc
+++ b/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog_browsertest.cc
@@ -29,9 +29,9 @@
 
 namespace {
 
-constexpr base::TimeDelta kNoDelay = base::TimeDelta::FromSeconds(0);
-constexpr base::TimeDelta kSmallDelay = base::TimeDelta::FromMilliseconds(300);
-constexpr base::TimeDelta kNormalDelay = base::TimeDelta::FromMilliseconds(500);
+constexpr base::TimeDelta kNoDelay = base::Seconds(0);
+constexpr base::TimeDelta kSmallDelay = base::Milliseconds(300);
+constexpr base::TimeDelta kNormalDelay = base::Milliseconds(500);
 
 constexpr char kBlockingScansForDlpAndMalware[] = R"(
 {
@@ -794,8 +794,7 @@
 
 IN_PROC_BROWSER_TEST_F(ContentAnalysisDialogPlainTests, TestCustomMessage) {
   enterprise_connectors::ContentAnalysisDialog::
-      SetMinimumPendingDialogTimeForTesting(
-          base::TimeDelta::FromMilliseconds(0));
+      SetMinimumPendingDialogTimeForTesting(base::Milliseconds(0));
 
   std::unique_ptr<MockCustomMessageDelegate> delegate =
       std::make_unique<MockCustomMessageDelegate>(
diff --git a/chrome/browser/enterprise/connectors/analysis/fake_content_analysis_delegate.cc b/chrome/browser/enterprise/connectors/analysis/fake_content_analysis_delegate.cc
index fd075782..ce6a302 100644
--- a/chrome/browser/enterprise/connectors/analysis/fake_content_analysis_delegate.cc
+++ b/chrome/browser/enterprise/connectors/analysis/fake_content_analysis_delegate.cc
@@ -16,7 +16,7 @@
 
 namespace {
 
-base::TimeDelta response_delay = base::TimeDelta::FromSeconds(0);
+base::TimeDelta response_delay = base::Seconds(0);
 
 }  // namespace
 
diff --git a/chrome/browser/enterprise/connectors/device_trust/attestation/ash/ash_attestation_service.cc b/chrome/browser/enterprise/connectors/device_trust/attestation/ash/ash_attestation_service.cc
index 19baf87..063ce44 100644
--- a/chrome/browser/enterprise/connectors/device_trust/attestation/ash/ash_attestation_service.cc
+++ b/chrome/browser/enterprise/connectors/device_trust/attestation/ash/ash_attestation_service.cc
@@ -31,7 +31,7 @@
   tpm_key_challenger_ =
       std::make_unique<ash::attestation::TpmChallengeKeyWithTimeout>();
   tpm_key_challenger_->BuildResponse(
-      base::TimeDelta::FromSeconds(15), ash::attestation::KEY_DEVICE, profile_,
+      base::Seconds(15), ash::attestation::KEY_DEVICE, profile_,
       base::BindOnce(&AshAttestationService::ReturnResult,
                      weak_factory_.GetWeakPtr(), std::move(callback)),
       JsonChallengeToProtobufChallenge(challenge), /*register_key=*/false,
diff --git a/chrome/browser/enterprise/connectors/file_system/access_token_fetcher_unittest.cc b/chrome/browser/enterprise/connectors/file_system/access_token_fetcher_unittest.cc
index c449732..4c92324 100644
--- a/chrome/browser/enterprise/connectors/file_system/access_token_fetcher_unittest.cc
+++ b/chrome/browser/enterprise/connectors/file_system/access_token_fetcher_unittest.cc
@@ -82,8 +82,7 @@
     OAuth2AccessTokenConsumer::TokenResponse::Builder builder;
     builder.WithAccessToken(access_token);
     builder.WithRefreshToken(refresh_token);
-    builder.WithExpirationTime(base::Time::Now() +
-                               base::TimeDelta::FromDays(1));
+    builder.WithExpirationTime(base::Time::Now() + base::Days(1));
     builder.WithIdToken("id token");
     return builder.build();
   }
diff --git a/chrome/browser/enterprise/connectors/file_system/box_api_call_flow_unittest.cc b/chrome/browser/enterprise/connectors/file_system/box_api_call_flow_unittest.cc
index a3c1a04..5c6bd6d 100644
--- a/chrome/browser/enterprise/connectors/file_system/box_api_call_flow_unittest.cc
+++ b/chrome/browser/enterprise/connectors/file_system/box_api_call_flow_unittest.cc
@@ -1172,7 +1172,7 @@
   base::RunLoop().RunUntilIdle();
   ASSERT_TRUE(processed_success_);
   ASSERT_EQ(response_code_, net::HTTP_ACCEPTED);
-  ASSERT_EQ(retry_after_, base::TimeDelta::FromSeconds(120));
+  ASSERT_EQ(retry_after_, base::Seconds(120));
 }
 
 TEST_F(BoxCommitUploadSessionApiCallFlowTest, ProcessApiCallSuccess_Created) {
@@ -1187,7 +1187,7 @@
 
   ASSERT_TRUE(processed_success_);
   ASSERT_EQ(response_code_, net::HTTP_CREATED);
-  ASSERT_EQ(retry_after_, base::TimeDelta::FromSeconds(0));
+  ASSERT_EQ(retry_after_, base::Seconds(0));
   ASSERT_FALSE(file_id_.empty());
   ASSERT_EQ(BoxApiCallFlow::MakeUrlToShowFile(file_id_),
             GURL(kFileSystemBoxUploadResponseFileUrl));
diff --git a/chrome/browser/enterprise/connectors/file_system/box_captured_sites_interactive_uitest.cc b/chrome/browser/enterprise/connectors/file_system/box_captured_sites_interactive_uitest.cc
index 9dd627f9..66fd549 100644
--- a/chrome/browser/enterprise/connectors/file_system/box_captured_sites_interactive_uitest.cc
+++ b/chrome/browser/enterprise/connectors/file_system/box_captured_sites_interactive_uitest.cc
@@ -171,8 +171,7 @@
 
     base::RunLoop wpr_launch_waiter;
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-        FROM_HERE, wpr_launch_waiter.QuitClosure(),
-        base::TimeDelta::FromSeconds(5));
+        FROM_HERE, wpr_launch_waiter.QuitClosure(), base::Seconds(5));
     wpr_launch_waiter.Run();
 
     if (!web_page_replay_server_.IsValid()) {
@@ -251,8 +250,7 @@
 
     base::RunLoop wpr_launch_waiter;
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-        FROM_HERE, wpr_launch_waiter.QuitClosure(),
-        base::TimeDelta::FromSeconds(5));
+        FROM_HERE, wpr_launch_waiter.QuitClosure(), base::Seconds(5));
     wpr_launch_waiter.Run();
 
     if (!web_page_record_server_.IsValid()) {
diff --git a/chrome/browser/enterprise/reporting/extension_request/extension_request_report_throttler_test.cc b/chrome/browser/enterprise/reporting/extension_request/extension_request_report_throttler_test.cc
index 7513967d..9af08d4 100644
--- a/chrome/browser/enterprise/reporting/extension_request/extension_request_report_throttler_test.cc
+++ b/chrome/browser/enterprise/reporting/extension_request/extension_request_report_throttler_test.cc
@@ -10,7 +10,7 @@
 namespace enterprise_reporting {
 
 ScopedExtensionRequestReportThrottler::ScopedExtensionRequestReportThrottler()
-    : ScopedExtensionRequestReportThrottler(base::TimeDelta::FromSeconds(10),
+    : ScopedExtensionRequestReportThrottler(base::Seconds(10),
                                             base::DoNothing()) {}
 
 ScopedExtensionRequestReportThrottler::ScopedExtensionRequestReportThrottler(
diff --git a/chrome/browser/enterprise/reporting/extension_request/extension_request_report_throttler_unittest.cc b/chrome/browser/enterprise/reporting/extension_request/extension_request_report_throttler_unittest.cc
index d03c15e..8d0cc92 100644
--- a/chrome/browser/enterprise/reporting/extension_request/extension_request_report_throttler_unittest.cc
+++ b/chrome/browser/enterprise/reporting/extension_request/extension_request_report_throttler_unittest.cc
@@ -16,7 +16,7 @@
 
 constexpr char kProfileName1[] = "profile-name-1";
 constexpr char kProfileName2[] = "profile-name-2";
-constexpr base::TimeDelta kThrottleTime = base::TimeDelta::FromSeconds(2);
+constexpr base::TimeDelta kThrottleTime = base::Seconds(2);
 
 }  // namespace
 
@@ -106,7 +106,7 @@
   throttler_.OnExtensionRequestUploaded();
   throttler_.AddProfile(profile2->GetPath());
 
-  base::TimeDelta wait_time = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta wait_time = base::Seconds(1);
   task_environment_.FastForwardBy(wait_time);
 
   ::testing::Mock::VerifyAndClearExpectations(&report_trigger_);
diff --git a/chrome/browser/enterprise/reporting/report_scheduler_unittest.cc b/chrome/browser/enterprise/reporting/report_scheduler_unittest.cc
index ddd5c903..1811c62a 100644
--- a/chrome/browser/enterprise/reporting/report_scheduler_unittest.cc
+++ b/chrome/browser/enterprise/reporting/report_scheduler_unittest.cc
@@ -59,8 +59,7 @@
 
 constexpr char kDMToken[] = "dm_token";
 constexpr char kClientId[] = "client_id";
-constexpr base::TimeDelta kDefaultUploadInterval =
-    base::TimeDelta::FromHours(24);
+constexpr base::TimeDelta kDefaultUploadInterval = base::Hours(24);
 
 #if !defined(OS_ANDROID)
 constexpr char kUploadTriggerMetricName[] =
@@ -428,7 +427,7 @@
 }
 
 TEST_P(ReportSchedulerFeatureTest, TimerDelayWithLastUploadTimestamp) {
-  const base::TimeDelta gap = base::TimeDelta::FromHours(10);
+  const base::TimeDelta gap = base::Hours(10);
   SetLastUploadInHour(gap);
 
   EXPECT_CALL_SetupRegistration();
@@ -441,10 +440,9 @@
   EXPECT_TRUE(scheduler_->IsNextReportScheduledForTesting());
 
   base::TimeDelta next_report_delay = kDefaultUploadInterval - gap;
-  task_environment_.FastForwardBy(next_report_delay -
-                                  base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(next_report_delay - base::Seconds(1));
   ExpectLastUploadTimestampUpdated(false);
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   ExpectLastUploadTimestampUpdated(true);
 
   ::testing::Mock::VerifyAndClearExpectations(client_);
@@ -524,7 +522,7 @@
 TEST_P(ReportSchedulerFeatureTest, OnUpdate) {
   // Pretend that a periodic report was generated recently so that one isn't
   // kicked off during startup.
-  SetLastUploadInHour(base::TimeDelta::FromHours(1));
+  SetLastUploadInHour(base::Hours(1));
   EXPECT_CALL_SetupRegistration();
   EXPECT_CALL(*generator_, OnGenerate(ReportType::kBrowserVersion, _))
       .WillOnce(WithArgs<1>(ScheduleGeneratorCallback(1)));
@@ -547,7 +545,7 @@
 TEST_P(ReportSchedulerFeatureTest, OnUpdateAndPersistentError) {
   // Pretend that a periodic report was generated recently so that one isn't
   // kicked off during startup.
-  SetLastUploadInHour(base::TimeDelta::FromHours(1));
+  SetLastUploadInHour(base::Hours(1));
   EXPECT_CALL_SetupRegistration();
   EXPECT_CALL(*generator_, OnGenerate(ReportType::kBrowserVersion, _))
       .WillOnce(WithArgs<1>(ScheduleGeneratorCallback(1)));
@@ -633,7 +631,7 @@
   SetLastUploadVersion(chrome::kChromeVersion + std::string("1"));
 
   // Pretend that a periodic report was generated recently.
-  SetLastUploadInHour(base::TimeDelta::FromHours(1));
+  SetLastUploadInHour(base::Hours(1));
 
   EXPECT_CALL_SetupRegistration();
   EXPECT_CALL(*generator_, OnGenerate(ReportType::kBrowserVersion, _))
@@ -663,7 +661,7 @@
   SetLastUploadVersion(chrome::kChromeVersion + std::string("1"));
 
   // Pretend that a periodic report was last generated over a day ago.
-  SetLastUploadInHour(base::TimeDelta::FromHours(25));
+  SetLastUploadInHour(base::Hours(25));
 
   EXPECT_CALL_SetupRegistration();
   EXPECT_CALL(*generator_, OnGenerate(ReportType::kFull, _))
@@ -694,7 +692,7 @@
                              {{"with_erp", "false"}}}},
       /*disabled_features=*/{});
 
-  SetLastUploadInHour(base::TimeDelta::FromHours(1));
+  SetLastUploadInHour(base::Hours(1));
 
   EXPECT_CALL_SetupRegistration();
   EXPECT_CALL(*generator_, OnGenerate(ReportType::kExtensionRequest, _))
@@ -721,7 +719,7 @@
       /*enabled_features*/ {{features::kEnterpriseRealtimeExtensionRequest,
                              {{"with_erp", "false"}}}},
       /*disabled_features=*/{});
-  base::TimeDelta last_report = base::TimeDelta::FromHours(23);
+  base::TimeDelta last_report = base::Hours(23);
   SetLastUploadInHour(last_report);
 
   EXPECT_CALL_SetupRegistration();
@@ -761,7 +759,7 @@
       /*enabled_features*/ {{features::kEnterpriseRealtimeExtensionRequest,
                              {{"with_erp", "false"}}}},
       /*disabled_features=*/{});
-  SetLastUploadInHour(base::TimeDelta::FromHours(1));
+  SetLastUploadInHour(base::Hours(1));
 
   ReportUploader::ReportCallback saved_callback;
   auto new_uploader = std::make_unique<MockReportUploader>();
diff --git a/chrome/browser/enterprise/util/critical_policy_section_metrics_win.cc b/chrome/browser/enterprise/util/critical_policy_section_metrics_win.cc
index b1a419d..fe025f6cc 100644
--- a/chrome/browser/enterprise/util/critical_policy_section_metrics_win.cc
+++ b/chrome/browser/enterprise/util/critical_policy_section_metrics_win.cc
@@ -63,14 +63,12 @@
     const auto delta = stop_ticks - start_ticks;
     base::UmaHistogramCustomTimes(
         section ? scope.success_delay : scope.failure_delay, delta,
-        base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromMinutes(10),
-        50);
+        base::Milliseconds(1), base::Minutes(10), 50);
     total_ticks += delta;
   }
   base::UmaHistogramCustomTimes(
       "Enterprise.EnterCriticalPolicySectionDelay.Total", total_ticks,
-      base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromMinutes(20),
-      50);
+      base::Milliseconds(1), base::Minutes(20), 50);
 }
 
 }  // namespace
diff --git a/chrome/browser/error_reporting/chrome_js_error_report_processor.cc b/chrome/browser/error_reporting/chrome_js_error_report_processor.cc
index a2de4b0..1eb77c8 100644
--- a/chrome/browser/error_reporting/chrome_js_error_report_processor.cc
+++ b/chrome/browser/error_reporting/chrome_js_error_report_processor.cc
@@ -46,8 +46,7 @@
 
 #if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS)
 // Give up if crash_reporter hasn't finished in this long.
-constexpr base::TimeDelta kMaximumWaitForCrashReporter =
-    base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kMaximumWaitForCrashReporter = base::Minutes(1);
 #endif
 
 // Sometimes, the stack trace will contain an error message as the first line,
@@ -247,10 +246,8 @@
     const JavaScriptErrorReport& error_report,
     bool* should_send) {
   base::Time now = clock_->Now();
-  constexpr base::TimeDelta kTimeBetweenCleanings =
-      base::TimeDelta::FromHours(1);
-  constexpr base::TimeDelta kTimeBetweenDuplicateReports =
-      base::TimeDelta::FromHours(1);
+  constexpr base::TimeDelta kTimeBetweenCleanings = base::Hours(1);
+  constexpr base::TimeDelta kTimeBetweenDuplicateReports = base::Hours(1);
   // Check for cleaning.
   if (last_recent_error_reports_cleaning_.is_null()) {
     // First time in this function, no need to clean.
diff --git a/chrome/browser/error_reporting/chrome_js_error_report_processor_chromeos.cc b/chrome/browser/error_reporting/chrome_js_error_report_processor_chromeos.cc
index 17f4cef..1f9e7b5 100644
--- a/chrome/browser/error_reporting/chrome_js_error_report_processor_chromeos.cc
+++ b/chrome/browser/error_reporting/chrome_js_error_report_processor_chromeos.cc
@@ -96,8 +96,8 @@
     base::ScopedClosureRunner file_cleanup,
     base::ScopedClosureRunner external_callback_runner) {
   int return_code = 0;
-  bool process_done = process.WaitForExitWithTimeout(
-      base::TimeDelta::FromSeconds(0), &return_code);
+  bool process_done =
+      process.WaitForExitWithTimeout(base::Seconds(0), &return_code);
 
   if (process_done) {
     if (return_code != 0) {
diff --git a/chrome/browser/error_reporting/chrome_js_error_report_processor_unittest.cc b/chrome/browser/error_reporting/chrome_js_error_report_processor_unittest.cc
index e39d7b1..fe7bd7b 100644
--- a/chrome/browser/error_reporting/chrome_js_error_report_processor_unittest.cc
+++ b/chrome/browser/error_reporting/chrome_js_error_report_processor_unittest.cc
@@ -283,7 +283,7 @@
   EXPECT_EQ(endpoint_->report_count(), 1);
 
   finish_callback_was_called_ = false;
-  test_clock_.SetNow(test_clock_.Now() + base::TimeDelta::FromMinutes(1));
+  test_clock_.SetNow(test_clock_.Now() + base::Minutes(1));
   SendErrorReport(MakeErrorReport(kFirstMessage));
   EXPECT_TRUE(finish_callback_was_called_);
   EXPECT_EQ(endpoint_->report_count(), 1);
@@ -302,11 +302,11 @@
   SendErrorReport(MakeErrorReport(kFirstMessage));
   EXPECT_EQ(endpoint_->report_count(), 1);
 
-  test_clock_.SetNow(test_clock_.Now() + base::TimeDelta::FromMinutes(45));
+  test_clock_.SetNow(test_clock_.Now() + base::Minutes(45));
   SendErrorReport(MakeErrorReport(kFirstMessage));
   EXPECT_EQ(endpoint_->report_count(), 1);
 
-  test_clock_.SetNow(test_clock_.Now() + base::TimeDelta::FromMinutes(20));
+  test_clock_.SetNow(test_clock_.Now() + base::Minutes(20));
   SendErrorReport(MakeErrorReport(kFirstMessage));
   EXPECT_EQ(endpoint_->report_count(), 2);
 }
@@ -315,15 +315,15 @@
   SendErrorReport(MakeErrorReport(kFirstMessage));
   EXPECT_EQ(endpoint_->report_count(), 1);
 
-  test_clock_.SetNow(test_clock_.Now() + base::TimeDelta::FromMinutes(15));
+  test_clock_.SetNow(test_clock_.Now() + base::Minutes(15));
   SendErrorReport(MakeErrorReport(kSecondMessage));
   EXPECT_EQ(endpoint_->report_count(), 2);
 
-  test_clock_.SetNow(test_clock_.Now() + base::TimeDelta::FromMinutes(15));
+  test_clock_.SetNow(test_clock_.Now() + base::Minutes(15));
   SendErrorReport(MakeErrorReport(kThirdMessage));
   EXPECT_EQ(endpoint_->report_count(), 3);
 
-  test_clock_.SetNow(test_clock_.Now() + base::TimeDelta::FromMinutes(15));
+  test_clock_.SetNow(test_clock_.Now() + base::Minutes(15));
   // 45 minutes from first error, all of these should be ignored.
   SendErrorReport(MakeErrorReport(kFirstMessage));
   SendErrorReport(MakeErrorReport(kSecondMessage));
@@ -332,7 +332,7 @@
 
   // An hour+ from first error. First error should be OK to send again, others
   // should not.
-  test_clock_.SetNow(test_clock_.Now() + base::TimeDelta::FromMinutes(20));
+  test_clock_.SetNow(test_clock_.Now() + base::Minutes(20));
   SendErrorReport(MakeErrorReport(kFirstMessage));
   SendErrorReport(MakeErrorReport(kSecondMessage));
   SendErrorReport(MakeErrorReport(kThirdMessage));
@@ -341,7 +341,7 @@
 
   // An hour+ from second error. First error should be back in cooldown, and
   // third error should still be blocked from its original send.
-  test_clock_.SetNow(test_clock_.Now() + base::TimeDelta::FromMinutes(15));
+  test_clock_.SetNow(test_clock_.Now() + base::Minutes(15));
   SendErrorReport(MakeErrorReport(kFirstMessage));
   SendErrorReport(MakeErrorReport(kSecondMessage));
   SendErrorReport(MakeErrorReport(kThirdMessage));
@@ -349,7 +349,7 @@
   EXPECT_THAT(endpoint_->last_report()->query, HasSubstr(kSecondMessageQuery));
 
   // An hour+ from third error. First and second are still in cooldown.
-  test_clock_.SetNow(test_clock_.Now() + base::TimeDelta::FromMinutes(15));
+  test_clock_.SetNow(test_clock_.Now() + base::Minutes(15));
   SendErrorReport(MakeErrorReport(kFirstMessage));
   SendErrorReport(MakeErrorReport(kSecondMessage));
   SendErrorReport(MakeErrorReport(kThirdMessage));
@@ -362,28 +362,28 @@
   SendErrorReport(MakeErrorReport(kFirstMessage));
   EXPECT_EQ(endpoint_->report_count(), 1);
 
-  test_clock_.SetNow(test_clock_.Now() + base::TimeDelta::FromMinutes(15));
+  test_clock_.SetNow(test_clock_.Now() + base::Minutes(15));
   SendErrorReport(MakeErrorReport(kSecondMessage));
   EXPECT_EQ(endpoint_->report_count(), 2);
 
-  test_clock_.SetNow(test_clock_.Now() + base::TimeDelta::FromMinutes(15));
+  test_clock_.SetNow(test_clock_.Now() + base::Minutes(15));
   SendErrorReport(MakeErrorReport(kThirdMessage));
   EXPECT_EQ(endpoint_->report_count(), 3);
 
   // Move clock back 10 hours.
-  test_clock_.SetNow(test_clock_.Now() + base::TimeDelta::FromMinutes(-600));
+  test_clock_.SetNow(test_clock_.Now() + base::Minutes(-600));
   SendErrorReport(MakeErrorReport(kFirstMessage));
   EXPECT_EQ(endpoint_->report_count(), 4);
   EXPECT_THAT(endpoint_->last_report()->query, HasSubstr(kFirstMessageQuery));
 
-  test_clock_.SetNow(test_clock_.Now() + base::TimeDelta::FromMinutes(15));
+  test_clock_.SetNow(test_clock_.Now() + base::Minutes(15));
   SendErrorReport(MakeErrorReport(kFirstMessage));
   SendErrorReport(MakeErrorReport(kSecondMessage));
   EXPECT_EQ(endpoint_->report_count(), 5);
   EXPECT_THAT(endpoint_->last_report()->query, HasSubstr(kSecondMessageQuery));
 
   // First and second are still in cooldown.
-  test_clock_.SetNow(test_clock_.Now() + base::TimeDelta::FromMinutes(15));
+  test_clock_.SetNow(test_clock_.Now() + base::Minutes(15));
   SendErrorReport(MakeErrorReport(kFirstMessage));
   SendErrorReport(MakeErrorReport(kSecondMessage));
   SendErrorReport(MakeErrorReport(kThirdMessage));
@@ -396,16 +396,16 @@
   SendErrorReport(MakeErrorReport(kFirstMessage));
   EXPECT_EQ(endpoint_->report_count(), 1);
 
-  test_clock_.SetNow(test_clock_.Now() + base::TimeDelta::FromMinutes(15));
+  test_clock_.SetNow(test_clock_.Now() + base::Minutes(15));
   SendErrorReport(MakeErrorReport(kSecondMessage));
   EXPECT_EQ(endpoint_->report_count(), 2);
 
-  test_clock_.SetNow(test_clock_.Now() + base::TimeDelta::FromMinutes(15));
+  test_clock_.SetNow(test_clock_.Now() + base::Minutes(15));
   SendErrorReport(MakeErrorReport(kThirdMessage));
   EXPECT_EQ(endpoint_->report_count(), 3);
 
   // Move clock back before 3rd message was sent.
-  test_clock_.SetNow(test_clock_.Now() + base::TimeDelta::FromMinutes(-10));
+  test_clock_.SetNow(test_clock_.Now() + base::Minutes(-10));
   SendErrorReport(MakeErrorReport(kFirstMessage));
   SendErrorReport(MakeErrorReport(kSecondMessage));
   SendErrorReport(MakeErrorReport(kThirdMessage));
@@ -416,7 +416,7 @@
   SendErrorReport(MakeErrorReport(kFirstMessage));
   SendErrorReport(MakeErrorReport(kSecondMessage));
 
-  test_clock_.SetNow(test_clock_.Now() + base::TimeDelta::FromMinutes(70));
+  test_clock_.SetNow(test_clock_.Now() + base::Minutes(70));
   SendErrorReport(MakeErrorReport(kThirdMessage));
   // Only record for third message should be present now.
   EXPECT_THAT(processor_->get_recent_error_reports_for_testing(), SizeIs(1));
diff --git a/chrome/browser/error_reporting/mock_chrome_js_error_report_processor.cc b/chrome/browser/error_reporting/mock_chrome_js_error_report_processor.cc
index 6fabf08..a639255 100644
--- a/chrome/browser/error_reporting/mock_chrome_js_error_report_processor.cc
+++ b/chrome/browser/error_reporting/mock_chrome_js_error_report_processor.cc
@@ -31,8 +31,7 @@
 MockChromeJsErrorReportProcessor::MockChromeJsErrorReportProcessor() {
 #if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS)
   // Shorten timeout or tests will time out.
-  set_maximium_wait_for_crash_reporter_for_test(
-      base::TimeDelta::FromSeconds(5));
+  set_maximium_wait_for_crash_reporter_for_test(base::Seconds(5));
 #endif
 }
 
diff --git a/chrome/browser/extensions/activity_log/activity_database.cc b/chrome/browser/extensions/activity_log/activity_database.cc
index d50ced4..ba4eb65 100644
--- a/chrome/browser/extensions/activity_log/activity_database.cc
+++ b/chrome/browser/extensions/activity_log/activity_database.cc
@@ -54,9 +54,9 @@
   DETACH_FROM_SEQUENCE(sequence_checker_);
   if (base::CommandLine::ForCurrentProcess()->HasSwitch(
           switches::kEnableExtensionActivityLogTesting)) {
-    batching_period_ = base::TimeDelta::FromSeconds(10);
+    batching_period_ = base::Seconds(10);
   } else {
-    batching_period_ = base::TimeDelta::FromMinutes(2);
+    batching_period_ = base::Minutes(2);
   }
 }
 
@@ -210,9 +210,7 @@
 void ActivityDatabase::SetTimerForTesting(int ms) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   timer_.Stop();
-  timer_.Start(FROM_HERE,
-               base::TimeDelta::FromMilliseconds(ms),
-               this,
+  timer_.Start(FROM_HERE, base::Milliseconds(ms), this,
                &ActivityDatabase::RecordBatchedActionsWhileTesting);
 }
 
diff --git a/chrome/browser/extensions/activity_log/activity_log_policy.cc b/chrome/browser/extensions/activity_log/activity_log_policy.cc
index 3d79128..9a29cac 100644
--- a/chrome/browser/extensions/activity_log/activity_log_policy.cc
+++ b/chrome/browser/extensions/activity_log/activity_log_policy.cc
@@ -131,8 +131,7 @@
                                             int days) {
   // To allow for time zone changes, add an additional partial day then round
   // down to midnight.
-  return (base_date + base::TimeDelta::FromDays(days) +
-          base::TimeDelta::FromHours(4)).LocalMidnight();
+  return (base_date + base::Days(days) + base::Hours(4)).LocalMidnight();
 }
 
 // static
diff --git a/chrome/browser/extensions/activity_log/activity_log_unittest.cc b/chrome/browser/extensions/activity_log/activity_log_unittest.cc
index 146fc853..76bf23e2 100644
--- a/chrome/browser/extensions/activity_log/activity_log_unittest.cc
+++ b/chrome/browser/extensions/activity_log/activity_log_unittest.cc
@@ -374,10 +374,8 @@
 
   // Submit a DOM API call with a relative URL in the argument, which should be
   // resolved relative to the page URL.
-  action = new Action(kExtensionId,
-                      now - base::TimeDelta::FromSeconds(1),
-                      Action::ACTION_DOM_ACCESS,
-                      "XMLHttpRequest.open");
+  action = new Action(kExtensionId, now - base::Seconds(1),
+                      Action::ACTION_DOM_ACCESS, "XMLHttpRequest.open");
   action->set_page_url(GURL("http://www.google.com/"));
   action->mutable_args()->Append("POST");
   action->mutable_args()->Append("/api/");
@@ -387,10 +385,8 @@
 
   // Submit a DOM API call with a relative URL but no base page URL against
   // which to resolve.
-  action = new Action(kExtensionId,
-                      now - base::TimeDelta::FromSeconds(2),
-                      Action::ACTION_DOM_ACCESS,
-                      "XMLHttpRequest.open");
+  action = new Action(kExtensionId, now - base::Seconds(2),
+                      Action::ACTION_DOM_ACCESS, "XMLHttpRequest.open");
   action->mutable_args()->Append("POST");
   action->mutable_args()->Append("/api/");
   action->mutable_other()->SetInteger(activity_log_constants::kActionDomVerb,
@@ -398,10 +394,8 @@
   activity_log->LogAction(action);
 
   // Submit an API call with an embedded URL.
-  action = new Action(kExtensionId,
-                      now - base::TimeDelta::FromSeconds(3),
-                      Action::ACTION_API_CALL,
-                      "windows.create");
+  action = new Action(kExtensionId, now - base::Seconds(3),
+                      Action::ACTION_API_CALL, "windows.create");
   action->set_args(
       ListBuilder()
           .Append(
@@ -453,10 +447,8 @@
   scoped_refptr<Action> action;
 
   for (int i = 0; i < api_calls_size; i++) {
-    action = new Action(kExtensionId,
-                        now - base::TimeDelta::FromSeconds(i),
-                        Action::ACTION_DOM_ACCESS,
-                        kUrlApiCalls[i]);
+    action = new Action(kExtensionId, now - base::Seconds(i),
+                        Action::ACTION_DOM_ACCESS, kUrlApiCalls[i]);
     action->mutable_args()->Append("http://www.google.co.uk");
     action->mutable_other()->SetInteger(activity_log_constants::kActionDomVerb,
                                         DomActionType::SETTER);
diff --git a/chrome/browser/extensions/activity_log/counting_policy.cc b/chrome/browser/extensions/activity_log/counting_policy.cc
index 30e852c..8dc4516 100644
--- a/chrome/browser/extensions/activity_log/counting_policy.cc
+++ b/chrome/browser/extensions/activity_log/counting_policy.cc
@@ -58,7 +58,7 @@
 
 // Delay between cleaning passes (to delete old action records) through the
 // database.
-constexpr base::TimeDelta kCleaningDelay = base::TimeDelta::FromHours(12);
+constexpr base::TimeDelta kCleaningDelay = base::Hours(12);
 
 // We should log the arguments to these API calls.  Be careful when
 // constructing this allowlist to not keep arguments that might compromise
@@ -171,7 +171,7 @@
           base::FilePath(chrome::kExtensionActivityLogFilename)),
       string_table_("string_ids"),
       url_table_("url_ids"),
-      retention_time_(base::TimeDelta::FromHours(60)) {
+      retention_time_(base::Hours(60)) {
   for (size_t i = 0; i < base::size(kAlwaysLog); i++) {
     api_arg_allowlist_.insert(
         std::make_pair(kAlwaysLog[i].type, kAlwaysLog[i].name));
diff --git a/chrome/browser/extensions/activity_log/counting_policy_unittest.cc b/chrome/browser/extensions/activity_log/counting_policy_unittest.cc
index b1dc96a..414f4ae 100644
--- a/chrome/browser/extensions/activity_log/counting_policy_unittest.cc
+++ b/chrome/browser/extensions/activity_log/counting_policy_unittest.cc
@@ -306,14 +306,13 @@
       base::OnceCallback<void(std::unique_ptr<Action::ActionVector>)> checker) {
     // Use a mock clock to ensure that events are not recorded on the wrong day
     // when the test is run close to local midnight.
-    mock_clock_.SetNow(base::Time::Now().LocalMidnight() +
-                       base::TimeDelta::FromHours(12));
+    mock_clock_.SetNow(base::Time::Now().LocalMidnight() + base::Hours(12));
     policy->SetClockForTesting(&mock_clock_);
 
     // Record some actions
-    scoped_refptr<Action> action = new Action(
-        "punky1", mock_clock_.Now() - base::TimeDelta::FromMinutes(40),
-        Action::ACTION_DOM_ACCESS, "lets1");
+    scoped_refptr<Action> action =
+        new Action("punky1", mock_clock_.Now() - base::Minutes(40),
+                   Action::ACTION_DOM_ACCESS, "lets1");
     action->mutable_args()->Append("vamoose1");
     action->set_page_url(GURL("http://www.google1.com"));
     action->set_page_title("Google1");
@@ -323,8 +322,7 @@
     // database.
     policy->ProcessAction(action);
 
-    action = new Action("punky2",
-                        mock_clock_.Now() - base::TimeDelta::FromMinutes(30),
+    action = new Action("punky2", mock_clock_.Now() - base::Minutes(30),
                         Action::ACTION_API_CALL, "lets2");
     action->mutable_args()->Append("vamoose2");
     action->set_page_url(GURL("http://www.google2.com"));
@@ -448,33 +446,30 @@
   policy->Init();
   // Disable row expiration for this test by setting a time before any actions
   // we generate.
-  policy->set_retention_time(base::TimeDelta::FromDays(14));
+  policy->set_retention_time(base::Days(14));
 
   // Use a mock clock to ensure that events are not recorded on the wrong day
   // when the test is run close to local midnight.  Note: Ownership is passed
   // to the policy, but we still keep a pointer locally.  The policy will take
   // care of destruction; this is safe since the policy outlives all our
   // accesses to the mock clock.
-  mock_clock_.SetNow(base::Time::Now().LocalMidnight() +
-                     base::TimeDelta::FromHours(12));
+  mock_clock_.SetNow(base::Time::Now().LocalMidnight() + base::Hours(12));
   policy->SetClockForTesting(&mock_clock_);
 
   // Record some actions
   scoped_refptr<Action> action =
-      new Action("punky", mock_clock_.Now() - base::TimeDelta::FromMinutes(40),
+      new Action("punky", mock_clock_.Now() - base::Minutes(40),
                  Action::ACTION_API_CALL, "brewster");
   action->mutable_args()->Append("woof");
   policy->ProcessAction(action);
 
-  action =
-      new Action("punky", mock_clock_.Now() - base::TimeDelta::FromMinutes(30),
-                 Action::ACTION_API_CALL, "brewster");
+  action = new Action("punky", mock_clock_.Now() - base::Minutes(30),
+                      Action::ACTION_API_CALL, "brewster");
   action->mutable_args()->Append("meow");
   policy->ProcessAction(action);
 
-  action =
-      new Action("punky", mock_clock_.Now() - base::TimeDelta::FromMinutes(20),
-                 Action::ACTION_API_CALL, "extension.sendMessage");
+  action = new Action("punky", mock_clock_.Now() - base::Minutes(20),
+                      Action::ACTION_API_CALL, "extension.sendMessage");
   action->mutable_args()->Append("not");
   action->mutable_args()->Append("stripped");
   policy->ProcessAction(action);
@@ -501,24 +496,21 @@
 TEST_F(CountingPolicyTest, GetOlderActions) {
   CountingPolicy* policy = new CountingPolicy(profile_.get());
   policy->Init();
-  policy->set_retention_time(base::TimeDelta::FromDays(14));
+  policy->set_retention_time(base::Days(14));
 
   // Use a mock clock to ensure that events are not recorded on the wrong day
   // when the test is run close to local midnight.
-  mock_clock_.SetNow(base::Time::Now().LocalMidnight() +
-                     base::TimeDelta::FromHours(12));
+  mock_clock_.SetNow(base::Time::Now().LocalMidnight() + base::Hours(12));
   policy->SetClockForTesting(&mock_clock_);
 
   // Record some actions
   scoped_refptr<Action> action =
-      new Action("punky",
-                 mock_clock_.Now() - base::TimeDelta::FromDays(3) -
-                     base::TimeDelta::FromMinutes(40),
+      new Action("punky", mock_clock_.Now() - base::Days(3) - base::Minutes(40),
                  Action::ACTION_API_CALL, "brewster");
   action->mutable_args()->Append("woof");
   policy->ProcessAction(action);
 
-  action = new Action("punky", mock_clock_.Now() - base::TimeDelta::FromDays(3),
+  action = new Action("punky", mock_clock_.Now() - base::Days(3),
                       Action::ACTION_DOM_ACCESS, "lets");
   action->mutable_args()->Append("vamoose");
   action->set_page_url(GURL("http://www.google.com"));
@@ -530,7 +522,7 @@
   action->set_page_url(GURL("http://www.google.com"));
   policy->ProcessAction(action);
 
-  action = new Action("punky", mock_clock_.Now() - base::TimeDelta::FromDays(7),
+  action = new Action("punky", mock_clock_.Now() - base::Days(7),
                       Action::ACTION_DOM_ACCESS, "lets");
   action->mutable_args()->Append("too old");
   action->set_page_url(GURL("http://www.google.com"));
@@ -629,33 +621,28 @@
   policy->Init();
   // Initially disable expiration by setting a retention time before any
   // actions we generate.
-  policy->set_retention_time(base::TimeDelta::FromDays(14));
+  policy->set_retention_time(base::Days(14));
 
   // Use a mock clock to ensure that events are not recorded on the wrong day
   // when the test is run close to local midnight.
-  mock_clock_.SetNow(base::Time::Now().LocalMidnight() +
-                     base::TimeDelta::FromHours(12));
+  mock_clock_.SetNow(base::Time::Now().LocalMidnight() + base::Hours(12));
   policy->SetClockForTesting(&mock_clock_);
 
   // The first two actions should be merged; the last one is on a separate day
   // and should not be.
   scoped_refptr<Action> action =
-      new Action("punky",
-                 mock_clock_.Now() - base::TimeDelta::FromDays(3) -
-                     base::TimeDelta::FromMinutes(40),
+      new Action("punky", mock_clock_.Now() - base::Days(3) - base::Minutes(40),
                  Action::ACTION_API_CALL, "brewster");
   policy->ProcessAction(action);
 
-  action = new Action("punky",
-                      mock_clock_.Now() - base::TimeDelta::FromDays(3) -
-                          base::TimeDelta::FromMinutes(20),
-                      Action::ACTION_API_CALL, "brewster");
+  action =
+      new Action("punky", mock_clock_.Now() - base::Days(3) - base::Minutes(20),
+                 Action::ACTION_API_CALL, "brewster");
   policy->ProcessAction(action);
 
-  action = new Action("punky",
-                      mock_clock_.Now() - base::TimeDelta::FromDays(2) -
-                          base::TimeDelta::FromMinutes(20),
-                      Action::ACTION_API_CALL, "brewster");
+  action =
+      new Action("punky", mock_clock_.Now() - base::Days(2) - base::Minutes(20),
+                 Action::ACTION_API_CALL, "brewster");
   policy->ProcessAction(action);
 
   CheckReadData(
@@ -667,7 +654,7 @@
 
   // Clean actions before midnight two days ago.  Force expiration to run by
   // clearing last_database_cleaning_time_ and submitting a new action.
-  policy->set_retention_time(base::TimeDelta::FromDays(2));
+  policy->set_retention_time(base::Days(2));
   policy->last_database_cleaning_time_ = base::Time();
   action = new Action("punky", mock_clock_.Now(), Action::ACTION_API_CALL,
                       "brewster");
@@ -689,7 +676,7 @@
   policy->Init();
   // Initially disable expiration by setting a retention time before any
   // actions we generate.
-  policy->set_retention_time(base::TimeDelta::FromDays(14));
+  policy->set_retention_time(base::Days(14));
 
   mock_clock_.SetNow(base::Time::Now());
   policy->SetClockForTesting(&mock_clock_);
@@ -697,7 +684,7 @@
   // Insert an action; this should create entries in both the string table (for
   // the extension and API name) and the URL table (for page_url).
   scoped_refptr<Action> action =
-      new Action("punky", mock_clock_.Now() - base::TimeDelta::FromDays(7),
+      new Action("punky", mock_clock_.Now() - base::Days(7),
                  Action::ACTION_API_CALL, "brewster");
   action->set_page_url(GURL("http://www.google.com/"));
   policy->ProcessAction(action);
@@ -720,7 +707,7 @@
   // Trigger a cleaning.  The oldest action is expired when we submit a
   // duplicate of the newer action.  After this, there should be two strings
   // and no URLs.
-  policy->set_retention_time(base::TimeDelta::FromDays(2));
+  policy->set_retention_time(base::Days(2));
   policy->last_database_cleaning_time_ = base::Time();
   policy->ProcessAction(action);
   policy->Flush();
@@ -739,24 +726,20 @@
 TEST_F(CountingPolicyTest, MoreMerging) {
   CountingPolicy* policy = new CountingPolicy(profile_.get());
   policy->Init();
-  policy->set_retention_time(base::TimeDelta::FromDays(14));
+  policy->set_retention_time(base::Days(14));
 
   // Use a mock clock to ensure that events are not recorded on the wrong day
   // when the test is run close to local midnight.
-  mock_clock_.SetNow(base::Time::Now().LocalMidnight() +
-                     base::TimeDelta::FromHours(12));
+  mock_clock_.SetNow(base::Time::Now().LocalMidnight() + base::Hours(12));
   policy->SetClockForTesting(&mock_clock_);
 
   // Create an action 2 days ago, then 1 day ago, then 2 days ago.  Make sure
   // that we end up with two merged records (one for each day), and each has
   // the appropriate timestamp.  These merges should happen in the database
   // since the date keeps changing.
-  base::Time time1 = mock_clock_.Now() - base::TimeDelta::FromDays(2) -
-                     base::TimeDelta::FromMinutes(40);
-  base::Time time2 = mock_clock_.Now() - base::TimeDelta::FromDays(1) -
-                     base::TimeDelta::FromMinutes(40);
-  base::Time time3 = mock_clock_.Now() - base::TimeDelta::FromDays(2) -
-                     base::TimeDelta::FromMinutes(20);
+  base::Time time1 = mock_clock_.Now() - base::Days(2) - base::Minutes(40);
+  base::Time time2 = mock_clock_.Now() - base::Days(1) - base::Minutes(40);
+  base::Time time3 = mock_clock_.Now() - base::Days(2) - base::Minutes(20);
 
   scoped_refptr<Action> action =
       new Action("punky", time1, Action::ACTION_API_CALL, "brewster");
@@ -780,9 +763,9 @@
   // Create three actions today, where the merges should happen in memory.
   // Again these are not chronological; timestamp time5 should win out since it
   // is the latest.
-  base::Time time4 = mock_clock_.Now() - base::TimeDelta::FromMinutes(60);
-  base::Time time5 = mock_clock_.Now() - base::TimeDelta::FromMinutes(20);
-  base::Time time6 = mock_clock_.Now() - base::TimeDelta::FromMinutes(40);
+  base::Time time4 = mock_clock_.Now() - base::Minutes(60);
+  base::Time time5 = mock_clock_.Now() - base::Minutes(20);
+  base::Time time6 = mock_clock_.Now() - base::Minutes(40);
 
   action = new Action("punky", time4, Action::ACTION_API_CALL, "brewster");
   policy->ProcessAction(action);
@@ -850,8 +833,7 @@
 
   // Use a mock clock to ensure that events are not recorded on the wrong day
   // when the test is run close to local midnight.
-  mock_clock_.SetNow(base::Time::Now().LocalMidnight() +
-                     base::TimeDelta::FromHours(12));
+  mock_clock_.SetNow(base::Time::Now().LocalMidnight() + base::Hours(12));
   policy->SetClockForTesting(&mock_clock_);
 
   // Record some actions
@@ -863,7 +845,7 @@
   action->set_arg_url(GURL("http://www.args-url.com"));
   policy->ProcessAction(action);
 
-  mock_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  mock_clock_.Advance(base::Seconds(1));
   action =
       new Action("punky", mock_clock_.Now(), Action::ACTION_DOM_ACCESS, "lets");
   action->mutable_args()->Append("vamoose");
@@ -888,8 +870,7 @@
 
   // Use a mock clock to ensure that events are not recorded on the wrong day
   // when the test is run close to local midnight.
-  mock_clock_.SetNow(base::Time::Now().LocalMidnight() +
-                     base::TimeDelta::FromHours(12));
+  mock_clock_.SetNow(base::Time::Now().LocalMidnight() + base::Hours(12));
   policy->SetClockForTesting(&mock_clock_);
 
   // Record some actions
@@ -903,7 +884,7 @@
   policy->ProcessAction(action);
 
   // This should have the page url cleared but not args url.
-  mock_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  mock_clock_.Advance(base::Seconds(1));
   action =
       new Action("punky", mock_clock_.Now(), Action::ACTION_DOM_ACCESS, "lets");
   action->mutable_args()->Append("vamoose");
@@ -914,7 +895,7 @@
 
   // This should have the page url cleared. The args url is deliberately not
   // set to make sure this doesn't cause any issues.
-  mock_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  mock_clock_.Advance(base::Seconds(1));
   action =
       new Action("punky", mock_clock_.Now(), Action::ACTION_DOM_ACCESS, "lets");
   action->mutable_args()->Append("vamoose");
@@ -923,7 +904,7 @@
   policy->ProcessAction(action);
 
   // This should have the args url cleared but not the page url or page title.
-  mock_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  mock_clock_.Advance(base::Seconds(1));
   action =
       new Action("punky", mock_clock_.Now(), Action::ACTION_DOM_ACCESS, "lets");
   action->mutable_args()->Append("vamoose");
@@ -933,7 +914,7 @@
   policy->ProcessAction(action);
 
   // This should have neither cleared.
-  mock_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  mock_clock_.Advance(base::Seconds(1));
   action =
       new Action("punky", mock_clock_.Now(), Action::ACTION_DOM_ACCESS, "lets");
   action->mutable_args()->Append("vamoose");
@@ -961,8 +942,7 @@
 
   // Use a mock clock to ensure that events are not recorded on the wrong day
   // when the test is run close to local midnight.
-  mock_clock_.SetNow(base::Time::Now().LocalMidnight() +
-                     base::TimeDelta::FromHours(12));
+  mock_clock_.SetNow(base::Time::Now().LocalMidnight() + base::Hours(12));
   policy->SetClockForTesting(&mock_clock_);
 
   // Record some actions
@@ -1003,33 +983,30 @@
   policy->Init();
   // Disable row expiration for this test by setting a time before any actions
   // we generate.
-  policy->set_retention_time(base::TimeDelta::FromDays(14));
+  policy->set_retention_time(base::Days(14));
 
   // Use a mock clock to ensure that events are not recorded on the wrong day
   // when the test is run close to local midnight.  Note: Ownership is passed
   // to the policy, but we still keep a pointer locally.  The policy will take
   // care of destruction; this is safe since the policy outlives all our
   // accesses to the mock clock.
-  mock_clock_.SetNow(base::Time::Now().LocalMidnight() +
-                     base::TimeDelta::FromHours(12));
+  mock_clock_.SetNow(base::Time::Now().LocalMidnight() + base::Hours(12));
   policy->SetClockForTesting(&mock_clock_);
 
   // Record some actions
   scoped_refptr<Action> action =
-      new Action("punky", mock_clock_.Now() - base::TimeDelta::FromMinutes(40),
+      new Action("punky", mock_clock_.Now() - base::Minutes(40),
                  Action::ACTION_API_CALL, "brewster");
   action->mutable_args()->Append("woof");
   policy->ProcessAction(action);
 
-  action =
-      new Action("punky", mock_clock_.Now() - base::TimeDelta::FromMinutes(30),
-                 Action::ACTION_API_CALL, "brewster");
+  action = new Action("punky", mock_clock_.Now() - base::Minutes(30),
+                      Action::ACTION_API_CALL, "brewster");
   action->mutable_args()->Append("meow");
   policy->ProcessAction(action);
 
-  action =
-      new Action("punky", mock_clock_.Now() - base::TimeDelta::FromMinutes(20),
-                 Action::ACTION_API_CALL, "extension.sendMessage");
+  action = new Action("punky", mock_clock_.Now() - base::Minutes(20),
+                      Action::ACTION_API_CALL, "extension.sendMessage");
   action->mutable_args()->Append("not");
   action->mutable_args()->Append("stripped");
   policy->ProcessAction(action);
@@ -1085,8 +1062,7 @@
 TEST_F(CountingPolicyTest, DuplicateRows) {
   CountingPolicy* policy = new CountingPolicy(profile_.get());
   policy->Init();
-  mock_clock_.SetNow(base::Time::Now().LocalMidnight() +
-                     base::TimeDelta::FromHours(12));
+  mock_clock_.SetNow(base::Time::Now().LocalMidnight() + base::Hours(12));
   policy->SetClockForTesting(&mock_clock_);
 
   // Record two actions with distinct URLs.
diff --git a/chrome/browser/extensions/activity_log/fullstream_ui_policy_unittest.cc b/chrome/browser/extensions/activity_log/fullstream_ui_policy_unittest.cc
index 5a6cd7f..daf9186 100644
--- a/chrome/browser/extensions/activity_log/fullstream_ui_policy_unittest.cc
+++ b/chrome/browser/extensions/activity_log/fullstream_ui_policy_unittest.cc
@@ -235,14 +235,13 @@
     // Use a mock clock to ensure that events are not recorded on the wrong day
     // when the test is run close to local midnight.
     base::SimpleTestClock mock_clock;
-    mock_clock.SetNow(base::Time::Now().LocalMidnight() +
-                      base::TimeDelta::FromHours(12));
+    mock_clock.SetNow(base::Time::Now().LocalMidnight() + base::Hours(12));
     policy->SetClockForTesting(&mock_clock);
 
     // Record some actions
-    scoped_refptr<Action> action = new Action(
-        "punky1", mock_clock.Now() - base::TimeDelta::FromMinutes(40),
-        Action::ACTION_DOM_ACCESS, "lets1");
+    scoped_refptr<Action> action =
+        new Action("punky1", mock_clock.Now() - base::Minutes(40),
+                   Action::ACTION_DOM_ACCESS, "lets1");
     action->mutable_args()->Append("vamoose1");
     action->set_page_url(GURL("http://www.google1.com"));
     action->set_page_title("Google1");
@@ -252,8 +251,7 @@
     // database.
     policy->ProcessAction(action);
 
-    action = new Action("punky2",
-                        mock_clock.Now() - base::TimeDelta::FromMinutes(30),
+    action = new Action("punky2", mock_clock.Now() - base::Minutes(30),
                         Action::ACTION_API_CALL, "lets2");
     action->mutable_args()->Append("vamoose2");
     action->set_page_url(GURL("http://www.google2.com"));
@@ -516,13 +514,12 @@
   // care of destruction; this is safe since the policy outlives all our
   // accesses to the mock clock.
   base::SimpleTestClock mock_clock;
-  mock_clock.SetNow(base::Time::Now().LocalMidnight() +
-                    base::TimeDelta::FromHours(12));
+  mock_clock.SetNow(base::Time::Now().LocalMidnight() + base::Hours(12));
   policy->SetClockForTesting(&mock_clock);
 
   // Record some actions
   scoped_refptr<Action> action =
-      new Action("punky", mock_clock.Now() - base::TimeDelta::FromMinutes(40),
+      new Action("punky", mock_clock.Now() - base::Minutes(40),
                  Action::ACTION_API_CALL, "brewster");
   action->mutable_args()->Append("woof");
   action->set_arg_url(GURL("http://www.arg-url.com"));
@@ -558,20 +555,17 @@
   // Use a mock clock to ensure that events are not recorded on the wrong day
   // when the test is run close to local midnight.
   base::SimpleTestClock mock_clock;
-  mock_clock.SetNow(base::Time::Now().LocalMidnight() +
-                    base::TimeDelta::FromHours(12));
+  mock_clock.SetNow(base::Time::Now().LocalMidnight() + base::Hours(12));
   policy->SetClockForTesting(&mock_clock);
 
   // Record some actions
   scoped_refptr<Action> action =
-      new Action("punky",
-                 mock_clock.Now() - base::TimeDelta::FromDays(3) -
-                     base::TimeDelta::FromMinutes(40),
+      new Action("punky", mock_clock.Now() - base::Days(3) - base::Minutes(40),
                  Action::ACTION_API_CALL, "brewster");
   action->mutable_args()->Append("woof");
   policy->ProcessAction(action);
 
-  action = new Action("punky", mock_clock.Now() - base::TimeDelta::FromDays(3),
+  action = new Action("punky", mock_clock.Now() - base::Days(3),
                       Action::ACTION_DOM_ACCESS, "lets");
   action->mutable_args()->Append("vamoose");
   action->set_page_url(GURL("http://www.google.com"));
@@ -583,7 +577,7 @@
   action->set_page_url(GURL("http://www.google.com"));
   policy->ProcessAction(action);
 
-  action = new Action("punky", mock_clock.Now() - base::TimeDelta::FromDays(7),
+  action = new Action("punky", mock_clock.Now() - base::Days(7),
                       Action::ACTION_DOM_ACCESS, "lets");
   action->mutable_args()->Append("too old");
   action->set_page_url(GURL("http://www.google.com"));
@@ -602,8 +596,7 @@
   // Use a mock clock to ensure that events are not recorded on the wrong day
   // when the test is run close to local midnight.
   base::SimpleTestClock mock_clock;
-  mock_clock.SetNow(base::Time::Now().LocalMidnight() +
-                    base::TimeDelta::FromHours(12));
+  mock_clock.SetNow(base::Time::Now().LocalMidnight() + base::Hours(12));
   policy->SetClockForTesting(&mock_clock);
 
   // Record some actions
@@ -615,7 +608,7 @@
   action->set_arg_url(GURL("http://www.google.com"));
   policy->ProcessAction(action);
 
-  mock_clock.Advance(base::TimeDelta::FromSeconds(1));
+  mock_clock.Advance(base::Seconds(1));
   action =
       new Action("punky", mock_clock.Now(), Action::ACTION_API_CALL, "lets");
   action->mutable_args()->Append("vamoose");
@@ -641,8 +634,7 @@
   // Use a mock clock to ensure that events are not recorded on the wrong day
   // when the test is run close to local midnight.
   base::SimpleTestClock mock_clock;
-  mock_clock.SetNow(base::Time::Now().LocalMidnight() +
-                    base::TimeDelta::FromHours(12));
+  mock_clock.SetNow(base::Time::Now().LocalMidnight() + base::Hours(12));
   policy->SetClockForTesting(&mock_clock);
 
   // Record some actions
@@ -656,7 +648,7 @@
   policy->ProcessAction(action);
 
   // This should have the page url cleared but not args url.
-  mock_clock.Advance(base::TimeDelta::FromSeconds(1));
+  mock_clock.Advance(base::Seconds(1));
   action =
       new Action("punky", mock_clock.Now(), Action::ACTION_DOM_ACCESS, "lets");
   action->mutable_args()->Append("vamoose");
@@ -667,7 +659,7 @@
 
   // This should have the page url cleared. The args url is deliberately not set
   // to make sure this doesn't cause any issues.
-  mock_clock.Advance(base::TimeDelta::FromSeconds(1));
+  mock_clock.Advance(base::Seconds(1));
   action =
       new Action("punky", mock_clock.Now(), Action::ACTION_DOM_ACCESS, "lets");
   action->mutable_args()->Append("vamoose");
@@ -676,7 +668,7 @@
   policy->ProcessAction(action);
 
   // This should have the args url cleared but not the page url or page title.
-  mock_clock.Advance(base::TimeDelta::FromSeconds(1));
+  mock_clock.Advance(base::Seconds(1));
   action =
       new Action("punky", mock_clock.Now(), Action::ACTION_DOM_ACCESS, "lets");
   action->mutable_args()->Append("vamoose");
@@ -686,7 +678,7 @@
   policy->ProcessAction(action);
 
   // This should have neither cleared.
-  mock_clock.Advance(base::TimeDelta::FromSeconds(1));
+  mock_clock.Advance(base::Seconds(1));
   action =
       new Action("punky", mock_clock.Now(), Action::ACTION_DOM_ACCESS, "lets");
   action->mutable_args()->Append("vamoose");
@@ -714,8 +706,7 @@
   // Use a mock clock to ensure that events are not recorded on the wrong day
   // when the test is run close to local midnight.
   base::SimpleTestClock mock_clock;
-  mock_clock.SetNow(base::Time::Now().LocalMidnight() +
-                    base::TimeDelta::FromHours(12));
+  mock_clock.SetNow(base::Time::Now().LocalMidnight() + base::Hours(12));
   policy->SetClockForTesting(&mock_clock);
 
   // Record some actions
diff --git a/chrome/browser/extensions/api/braille_display_private/braille_controller_brlapi.cc b/chrome/browser/extensions/api/braille_display_private/braille_controller_brlapi.cc
index 382c2e584..58ef964 100644
--- a/chrome/browser/extensions/api/braille_display_private/braille_controller_brlapi.cc
+++ b/chrome/browser/extensions/api/braille_display_private/braille_controller_brlapi.cc
@@ -33,13 +33,11 @@
 
 // Delay between detecting a directory update and trying to connect
 // to the brlapi.
-constexpr base::TimeDelta kConnectionDelay =
-    base::TimeDelta::FromMilliseconds(500);
+constexpr base::TimeDelta kConnectionDelay = base::Milliseconds(500);
 
 // How long to periodically retry connecting after a brltty restart.
 // Some displays are slow to connect.
-constexpr base::TimeDelta kConnectRetryTimeout =
-    base::TimeDelta::FromSeconds(20);
+constexpr base::TimeDelta kConnectRetryTimeout = base::Seconds(20);
 
 }  // namespace
 
diff --git a/chrome/browser/extensions/api/certificate_provider/certificate_provider_api.cc b/chrome/browser/extensions/api/certificate_provider/certificate_provider_api.cc
index 4e0f8948..ddec95a 100644
--- a/chrome/browser/extensions/api/certificate_provider/certificate_provider_api.cc
+++ b/chrome/browser/extensions/api/certificate_provider/certificate_provider_api.cc
@@ -419,7 +419,7 @@
 
   QuotaLimitHeuristic::Config short_limit_config = {
       api::certificate_provider::kMaxClosedDialogsPerMinute - 1,
-      base::TimeDelta::FromMinutes(1)};
+      base::Minutes(1)};
   heuristics->push_back(std::make_unique<QuotaService::TimedLimit>(
       short_limit_config,
       std::make_unique<RequestPinExceptFirstQuotaBucketMapper>(),
@@ -427,7 +427,7 @@
 
   QuotaLimitHeuristic::Config long_limit_config = {
       api::certificate_provider::kMaxClosedDialogsPer10Minutes - 1,
-      base::TimeDelta::FromMinutes(10)};
+      base::Minutes(10)};
   heuristics->push_back(std::make_unique<QuotaService::TimedLimit>(
       long_limit_config,
       std::make_unique<RequestPinExceptFirstQuotaBucketMapper>(),
diff --git a/chrome/browser/extensions/api/debugger/extension_dev_tools_infobar_delegate.h b/chrome/browser/extensions/api/debugger/extension_dev_tools_infobar_delegate.h
index 4fa19b3..02c0cbd 100644
--- a/chrome/browser/extensions/api/debugger/extension_dev_tools_infobar_delegate.h
+++ b/chrome/browser/extensions/api/debugger/extension_dev_tools_infobar_delegate.h
@@ -21,8 +21,7 @@
 // browser (which has security consequences).
 class ExtensionDevToolsInfoBarDelegate : public ConfirmInfoBarDelegate {
  public:
-  static constexpr base::TimeDelta kAutoCloseDelay =
-      base::TimeDelta::FromSeconds(5);
+  static constexpr base::TimeDelta kAutoCloseDelay = base::Seconds(5);
   using CallbackList = base::OnceClosureList;
 
   // Ensures a global infobar corresponding to the supplied extension is
diff --git a/chrome/browser/extensions/api/declarative_net_request/action_tracker_unittest.cc b/chrome/browser/extensions/api/declarative_net_request/action_tracker_unittest.cc
index 8b7e21cd..7e3dd1d 100644
--- a/chrome/browser/extensions/api/declarative_net_request/action_tracker_unittest.cc
+++ b/chrome/browser/extensions/api/declarative_net_request/action_tracker_unittest.cc
@@ -197,8 +197,8 @@
 
   // Half life of a matched rule associated with a non-active tab, with 50ms
   // added.
-  base::TimeDelta half_life = (ActionTracker::kNonActiveTabRuleLifespan / 2) +
-                              base::TimeDelta::FromMilliseconds(50);
+  base::TimeDelta half_life =
+      (ActionTracker::kNonActiveTabRuleLifespan / 2) + base::Milliseconds(50);
 
   // Advance the clock by half of the lifespan of a matched rule for the unknown
   // tab ID.
@@ -287,8 +287,7 @@
   // Advance the clock by more than the lifespan of a rule through
   // |mock_time_task_runner|.
   mock_time_task_runner->FastForwardBy(
-      ActionTracker::kNonActiveTabRuleLifespan +
-      base::TimeDelta::FromSeconds(1));
+      ActionTracker::kNonActiveTabRuleLifespan + base::Seconds(1));
 
   // Verify that the rule has been cleared by the recurring task.
   EXPECT_EQ(0, action_tracker()->GetMatchedRuleCountForTest(
diff --git a/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc b/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc
index 09b3d40..6bfe1b0b 100644
--- a/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc
+++ b/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc
@@ -4420,16 +4420,16 @@
 
   // Advance the clock to capture a timestamp after when the first request was
   // made.
-  clock_.Advance(base::TimeDelta::FromMilliseconds(100));
+  clock_.Advance(base::Milliseconds(100));
   base::Time timestamp_1 = clock_.Now();
-  clock_.Advance(base::TimeDelta::FromMilliseconds(100));
+  clock_.Advance(base::Milliseconds(100));
 
   // Navigate to example.com again. This should cause |rule| to be matched.
   NavigateFrame(kFrameName1, sub_frame_url);
 
   // Advance the clock to capture a timestamp after when the second request was
   // made.
-  clock_.Advance(base::TimeDelta::FromMilliseconds(100));
+  clock_.Advance(base::Milliseconds(100));
   base::Time timestamp_2 = clock_.Now();
 
   int first_tab_id = ExtensionTabUtil::GetTabId(web_contents());
diff --git a/chrome/browser/extensions/api/downloads/downloads_api.cc b/chrome/browser/extensions/api/downloads/downloads_api.cc
index 1dac86c4..f1b68a47 100644
--- a/chrome/browser/extensions/api/downloads/downloads_api.cc
+++ b/chrome/browser/extensions/api/downloads/downloads_api.cc
@@ -706,7 +706,7 @@
         base::BindOnce(
             &ExtensionDownloadsEventRouterData::DetermineFilenameTimeout,
             weak_ptr_factory_->GetWeakPtr()),
-        base::TimeDelta::FromSeconds(determine_filename_timeout_s_));
+        base::Seconds(determine_filename_timeout_s_));
   }
 
   void DetermineFilenameTimeout() { CallFilenameCallback(); }
@@ -866,7 +866,7 @@
         base::BindOnce(
             &ExtensionDownloadsEventRouterData::ClearPendingDeterminers,
             weak_ptr_factory_->GetWeakPtr()),
-        base::TimeDelta::FromSeconds(15));
+        base::Seconds(15));
   }
 
   int updated_;
@@ -1307,7 +1307,7 @@
           FROM_HERE,
           base::BindOnce(&DownloadsAcceptDangerFunction::PromptOrWait, this,
                          download_id, retries - 1),
-          base::TimeDelta::FromMilliseconds(100));
+          base::Milliseconds(100));
       return;
     }
     Respond(Error(download_extension_errors::kInvisibleContext));
diff --git a/chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc b/chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc
index 48d6e04..fcaf58e6 100644
--- a/chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc
+++ b/chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc
@@ -4703,15 +4703,9 @@
   warnings.clear();
   ExtensionDownloadsEventRouter::DetermineFilenameInternal(
       base::FilePath(FILE_PATH_LITERAL("b")),
-      downloads::FILENAME_CONFLICT_ACTION_PROMPT,
-      "suggester",
-      base::Time::Now() - base::TimeDelta::FromDays(1),
-      "incumbent",
-      base::Time::Now(),
-      &winner_id,
-      &filename,
-      &conflict_action,
-      &warnings);
+      downloads::FILENAME_CONFLICT_ACTION_PROMPT, "suggester",
+      base::Time::Now() - base::Days(1), "incumbent", base::Time::Now(),
+      &winner_id, &filename, &conflict_action, &warnings);
   EXPECT_EQ("incumbent", winner_id);
   EXPECT_EQ(FILE_PATH_LITERAL("a"), filename.value());
   EXPECT_EQ(downloads::FILENAME_CONFLICT_ACTION_OVERWRITE, conflict_action);
@@ -4724,15 +4718,9 @@
   warnings.clear();
   ExtensionDownloadsEventRouter::DetermineFilenameInternal(
       base::FilePath(FILE_PATH_LITERAL("b")),
-      downloads::FILENAME_CONFLICT_ACTION_PROMPT,
-      "suggester",
-      base::Time::Now(),
-      "incumbent",
-      base::Time::Now() - base::TimeDelta::FromDays(1),
-      &winner_id,
-      &filename,
-      &conflict_action,
-      &warnings);
+      downloads::FILENAME_CONFLICT_ACTION_PROMPT, "suggester",
+      base::Time::Now(), "incumbent", base::Time::Now() - base::Days(1),
+      &winner_id, &filename, &conflict_action, &warnings);
   EXPECT_EQ("suggester", winner_id);
   EXPECT_EQ(FILE_PATH_LITERAL("b"), filename.value());
   EXPECT_EQ(downloads::FILENAME_CONFLICT_ACTION_PROMPT, conflict_action);
diff --git a/chrome/browser/extensions/api/extension_action/extension_action_api.cc b/chrome/browser/extensions/api/extension_action/extension_action_api.cc
index 040123e..7b30965 100644
--- a/chrome/browser/extensions/api/extension_action/extension_action_api.cc
+++ b/chrome/browser/extensions/api/extension_action/extension_action_api.cc
@@ -617,7 +617,7 @@
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&BrowserActionOpenPopupFunction::OpenPopupTimedOut, this),
-      base::TimeDelta::FromSeconds(10));
+      base::Seconds(10));
   return RespondLater();
 }
 
diff --git a/chrome/browser/extensions/api/identity/identity_apitest.cc b/chrome/browser/extensions/api/identity/identity_apitest.cc
index 08f7634c..39ab02f 100644
--- a/chrome/browser/extensions/api/identity/identity_apitest.cc
+++ b/chrome/browser/extensions/api/identity/identity_apitest.cc
@@ -409,9 +409,8 @@
         error = GoogleServiceAuthError(
             GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS);
       }
-      OnGetAccessTokenComplete(
-          access_token, base::Time::Now() + base::TimeDelta::FromHours(1LL),
-          error);
+      OnGetAccessTokenComplete(access_token,
+                               base::Time::Now() + base::Hours(1LL), error);
     } else {
       // Make a request to the IdentityManager. The test now must tell the
       // service to issue an access token (or an error).
@@ -864,8 +863,7 @@
     std::string access_token = "access_token-" + account_id.ToString();
     identity_test_env()
         ->WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
-            account_id, access_token,
-            base::Time::Now() + base::TimeDelta::FromSeconds(3600));
+            account_id, access_token, base::Time::Now() + base::Seconds(3600));
     return access_token;
   }
 
@@ -1795,7 +1793,7 @@
 
   // Pre-populate the cache with a token.
   IdentityTokenCacheValue token =
-      CreateToken(kAccessToken, base::TimeDelta::FromSeconds(3600));
+      CreateToken(kAccessToken, base::Seconds(3600));
   SetCachedToken(token);
 
   // Get a token. Should not require a GAIA request.
@@ -1835,7 +1833,7 @@
 
   // Pre-populate the cache with a token.
   IdentityTokenCacheValue token =
-      CreateToken(kAccessToken, base::TimeDelta::FromSeconds(3600));
+      CreateToken(kAccessToken, base::Seconds(3600));
   SetCachedTokenForAccount(account_info, token);
 
   if (id_api()->AreExtensionsRestrictedToPrimaryAccount()) {
@@ -1936,7 +1934,7 @@
 
   // Populate the cache with a token while the request is blocked.
   IdentityTokenCacheValue token =
-      CreateToken(kAccessToken, base::TimeDelta::FromSeconds(3600));
+      CreateToken(kAccessToken, base::Seconds(3600));
   SetCachedToken(token);
 
   // When we wake up the request, it returns the cached token without
@@ -1966,7 +1964,7 @@
 
   // Pre-populate the cache with a token.
   IdentityTokenCacheValue token =
-      CreateToken(kAccessToken, base::TimeDelta::FromSeconds(3600));
+      CreateToken(kAccessToken, base::Seconds(3600));
   SetCachedToken(token);
 
   // Because the user is not signed in, the token will be removed,
@@ -2733,7 +2731,7 @@
 
   std::set<std::string> scopes = {"email", "foo", "bar"};
   IdentityTokenCacheValue token = IdentityTokenCacheValue::CreateToken(
-      kAccessToken, scopes, base::TimeDelta::FromSeconds(3600));
+      kAccessToken, scopes, base::Seconds(3600));
   SetCachedToken(token);
 
   std::string access_token;
@@ -3228,7 +3226,7 @@
 
 IN_PROC_BROWSER_TEST_F(RemoveCachedAuthTokenFunctionTest, NonMatchingToken) {
   IdentityTokenCacheValue token =
-      CreateToken("non_matching_token", base::TimeDelta::FromSeconds(3600));
+      CreateToken("non_matching_token", base::Seconds(3600));
   SetCachedToken(token);
   EXPECT_TRUE(InvalidateDefaultToken());
   EXPECT_EQ(IdentityTokenCacheValue::CACHE_STATUS_TOKEN,
@@ -3238,7 +3236,7 @@
 
 IN_PROC_BROWSER_TEST_F(RemoveCachedAuthTokenFunctionTest, MatchingToken) {
   IdentityTokenCacheValue token =
-      CreateToken(kAccessToken, base::TimeDelta::FromSeconds(3600));
+      CreateToken(kAccessToken, base::Seconds(3600));
   SetCachedToken(token);
   EXPECT_EQ(IdentityTokenCacheValue::CACHE_STATUS_TOKEN,
             GetCachedToken().status());
@@ -3427,9 +3425,8 @@
                        EraseCachedTokens) {
   ExtensionTokenKey token_key(extension()->id(), CoreAccountInfo(), {"foo"});
   id_api()->token_cache()->SetToken(
-      token_key,
-      IdentityTokenCacheValue::CreateToken("access_token", {"foo"},
-                                           base::TimeDelta::FromSeconds(3600)));
+      token_key, IdentityTokenCacheValue::CreateToken("access_token", {"foo"},
+                                                      base::Seconds(3600)));
   EXPECT_NE(IdentityTokenCacheValue::CACHE_STATUS_NOTFOUND,
             id_api()->token_cache()->GetToken(token_key).status());
   ASSERT_TRUE(RunClearAllCachedAuthTokensFunction());
diff --git a/chrome/browser/extensions/api/identity/identity_get_auth_token_function.cc b/chrome/browser/extensions/api/identity/identity_get_auth_token_function.cc
index 5d6377e7..18d62d4a 100644
--- a/chrome/browser/extensions/api/identity/identity_get_auth_token_function.cc
+++ b/chrome/browser/extensions/api/identity/identity_get_auth_token_function.cc
@@ -559,7 +559,7 @@
   TRACE_EVENT_NESTABLE_ASYNC_INSTANT0("identity", "OnMintTokenSuccess", this);
 
   IdentityTokenCacheValue token = IdentityTokenCacheValue::CreateToken(
-      access_token, granted_scopes, base::TimeDelta::FromSeconds(time_to_live));
+      access_token, granted_scopes, base::Seconds(time_to_live));
   IdentityAPI::GetFactoryInstance()
       ->Get(GetProfile())
       ->token_cache()
diff --git a/chrome/browser/extensions/api/identity/identity_token_cache.cc b/chrome/browser/extensions/api/identity/identity_token_cache.cc
index e65d905b..1870aa4 100644
--- a/chrome/browser/extensions/api/identity/identity_token_cache.cc
+++ b/chrome/browser/extensions/api/identity/identity_token_cache.cc
@@ -27,8 +27,7 @@
   cache_value.value_ = resolution_data;
   cache_value.expiration_time_ =
       base::Time::Now() +
-      base::TimeDelta::FromSeconds(
-          identity_constants::kCachedRemoteConsentTTLSeconds);
+      base::Seconds(identity_constants::kCachedRemoteConsentTTLSeconds);
   return cache_value;
 }
 
@@ -39,8 +38,7 @@
   cache_value.value_ = consent_result;
   cache_value.expiration_time_ =
       base::Time::Now() +
-      base::TimeDelta::FromSeconds(
-          identity_constants::kCachedRemoteConsentTTLSeconds);
+      base::Seconds(identity_constants::kCachedRemoteConsentTTLSeconds);
   return cache_value;
 }
 
@@ -56,7 +54,7 @@
 
   // Remove 20 minutes from the ttl so cached tokens will have some time
   // to live any time they are returned.
-  time_to_live -= base::TimeDelta::FromMinutes(20);
+  time_to_live -= base::Minutes(20);
 
   base::TimeDelta zero_delta;
   if (time_to_live < zero_delta)
diff --git a/chrome/browser/extensions/api/identity/identity_token_cache_unittest.cc b/chrome/browser/extensions/api/identity/identity_token_cache_unittest.cc
index a35343a..be4dcd8 100644
--- a/chrome/browser/extensions/api/identity/identity_token_cache_unittest.cc
+++ b/chrome/browser/extensions/api/identity/identity_token_cache_unittest.cc
@@ -23,17 +23,15 @@
   void SetAccessToken(const std::string& ext_id,
                       const std::string& token_string,
                       const std::set<std::string>& scopes) {
-    SetAccessTokenInternal(ext_id, token_string, scopes,
-                           base::TimeDelta::FromSeconds(3600));
+    SetAccessTokenInternal(ext_id, token_string, scopes, base::Seconds(3600));
   }
 
   void SetExpiredAccessToken(const std::string& ext_id,
                              const std::string& token_string,
                              const std::set<std::string>& scopes) {
     // Token must not be expired at the insertion moment.
-    SetAccessTokenInternal(ext_id, token_string, scopes,
-                           base::TimeDelta::FromMilliseconds(1));
-    task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(2));
+    SetAccessTokenInternal(ext_id, token_string, scopes, base::Milliseconds(1));
+    task_environment_.FastForwardBy(base::Milliseconds(2));
   }
 
   void SetRemoteConsentApprovedToken(const std::string& ext_id,
diff --git a/chrome/browser/extensions/api/messaging/native_messaging_apitest.cc b/chrome/browser/extensions/api/messaging/native_messaging_apitest.cc
index c953374..1bc6c31 100644
--- a/chrome/browser/extensions/api/messaging/native_messaging_apitest.cc
+++ b/chrome/browser/extensions/api/messaging/native_messaging_apitest.cc
@@ -220,7 +220,7 @@
     // has been released; poll for changes instead.
 #if defined(OS_MAC)
     polling_timer_.Start(
-        FROM_HERE, base::TimeDelta::FromMilliseconds(100),
+        FROM_HERE, base::Milliseconds(100),
         base::BindRepeating(&TestKeepAliveStateObserver::PollKeepAlive,
                             base::Unretained(this)));
 #endif
@@ -255,7 +255,7 @@
 IN_PROC_BROWSER_TEST_F(NativeMessagingLaunchApiTest, Error) {
   ASSERT_NO_FATAL_FAILURE(test_host_.RegisterTestHost(false));
   ScopedNativeMessagingErrorTimeoutOverrideForTest error_timeout_override(
-      base::TimeDelta::FromSeconds(2));
+      base::Seconds(2));
   StartupBrowserCreator::ProcessCommandLineAlreadyRunning(
       CreateNativeMessagingConnectCommandLine("test-connect-id"), {},
       profile()->GetPath());
diff --git a/chrome/browser/extensions/api/messaging/native_messaging_launch_from_native.cc b/chrome/browser/extensions/api/messaging/native_messaging_launch_from_native.cc
index 8eee6fad..1c0249b 100644
--- a/chrome/browser/extensions/api/messaging/native_messaging_launch_from_native.cc
+++ b/chrome/browser/extensions/api/messaging/native_messaging_launch_from_native.cc
@@ -38,8 +38,7 @@
 ScopedAllowNativeAppConnectionForTest* g_allow_native_app_connection_for_test =
     nullptr;
 
-constexpr base::TimeDelta kNativeMessagingHostErrorTimeout =
-    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kNativeMessagingHostErrorTimeout = base::Seconds(10);
 
 ScopedNativeMessagingErrorTimeoutOverrideForTest*
     g_native_messaging_host_timeout_override = nullptr;
diff --git a/chrome/browser/extensions/api/passwords_private/password_check_delegate.cc b/chrome/browser/extensions/api/passwords_private/password_check_delegate.cc
index 21d7afa6..cc005d4 100644
--- a/chrome/browser/extensions/api/passwords_private/password_check_delegate.cc
+++ b/chrome/browser/extensions/api/passwords_private/password_check_delegate.cc
@@ -171,7 +171,7 @@
 
 std::string FormatElapsedTime(base::Time time) {
   const base::TimeDelta elapsed_time = base::Time::Now() - time;
-  if (elapsed_time < base::TimeDelta::FromMinutes(1))
+  if (elapsed_time < base::Minutes(1))
     return l10n_util::GetStringUTF8(IDS_SETTINGS_PASSWORDS_JUST_NOW);
 
   return base::UTF16ToUTF8(TimeFormat::SimpleWithMonthAndYear(
@@ -521,7 +521,7 @@
       FROM_HERE,
       base::BindOnce(&PasswordCheckDelegate::NotifyPasswordCheckStatusChanged,
                      weak_ptr_factory_.GetWeakPtr()),
-      base::TimeDelta::FromSeconds(1));
+      base::Seconds(1));
 }
 
 void PasswordCheckDelegate::RecordAndNotifyAboutCompletedWeakPasswordCheck() {
diff --git a/chrome/browser/extensions/api/passwords_private/password_check_delegate_unittest.cc b/chrome/browser/extensions/api/passwords_private/password_check_delegate_unittest.cc
index 8e2da83..bbd4952 100644
--- a/chrome/browser/extensions/api/passwords_private/password_check_delegate_unittest.cc
+++ b/chrome/browser/extensions/api/passwords_private/password_check_delegate_unittest.cc
@@ -352,50 +352,45 @@
 // credentials are ordered by recency.
 TEST_F(PasswordCheckDelegateTest, GetCompromisedCredentialsOrders) {
   PasswordForm form_com_username1 = MakeSavedPassword(kExampleCom, kUsername1);
-  AddIssueToForm(&form_com_username1, InsecureType::kLeaked,
-                 base::TimeDelta::FromMinutes(1));
+  AddIssueToForm(&form_com_username1, InsecureType::kLeaked, base::Minutes(1));
   store().AddLogin(form_com_username1);
 
   PasswordForm form_com_username2 = MakeSavedPassword(kExampleCom, kUsername2);
-  AddIssueToForm(&form_com_username2, InsecureType::kPhished,
-                 base::TimeDelta::FromMinutes(2));
+  AddIssueToForm(&form_com_username2, InsecureType::kPhished, base::Minutes(2));
   store().AddLogin(form_com_username2);
 
   PasswordForm form_org_username1 = MakeSavedPassword(kExampleOrg, kUsername1);
-  AddIssueToForm(&form_org_username1, InsecureType::kPhished,
-                 base::TimeDelta::FromMinutes(4));
+  AddIssueToForm(&form_org_username1, InsecureType::kPhished, base::Minutes(4));
   store().AddLogin(form_org_username1);
 
   PasswordForm form_org_username2 = MakeSavedPassword(kExampleOrg, kUsername2);
-  AddIssueToForm(&form_org_username2, InsecureType::kLeaked,
-                 base::TimeDelta::FromMinutes(3));
+  AddIssueToForm(&form_org_username2, InsecureType::kLeaked, base::Minutes(3));
   store().AddLogin(form_org_username2);
 
   RunUntilIdle();
 
   EXPECT_THAT(
       delegate().GetCompromisedCredentials(),
-      ElementsAre(
-          ExpectCompromisedCredential(
-              "example.com", "https://example.com",
-              "https://example.com/.well-known/change-password", kUsername2,
-              base::TimeDelta::FromMinutes(2), "2 minutes ago",
-              api::passwords_private::COMPROMISE_TYPE_PHISHED),
-          ExpectCompromisedCredential(
-              "example.org", "http://www.example.org",
-              "http://www.example.org/.well-known/change-password", kUsername1,
-              base::TimeDelta::FromMinutes(4), "4 minutes ago",
-              api::passwords_private::COMPROMISE_TYPE_PHISHED),
-          ExpectCompromisedCredential(
-              "example.com", "https://example.com",
-              "https://example.com/.well-known/change-password", kUsername1,
-              base::TimeDelta::FromMinutes(1), "1 minute ago",
-              api::passwords_private::COMPROMISE_TYPE_LEAKED),
-          ExpectCompromisedCredential(
-              "example.org", "http://www.example.org",
-              "http://www.example.org/.well-known/change-password", kUsername2,
-              base::TimeDelta::FromMinutes(3), "3 minutes ago",
-              api::passwords_private::COMPROMISE_TYPE_LEAKED)));
+      ElementsAre(ExpectCompromisedCredential(
+                      "example.com", "https://example.com",
+                      "https://example.com/.well-known/change-password",
+                      kUsername2, base::Minutes(2), "2 minutes ago",
+                      api::passwords_private::COMPROMISE_TYPE_PHISHED),
+                  ExpectCompromisedCredential(
+                      "example.org", "http://www.example.org",
+                      "http://www.example.org/.well-known/change-password",
+                      kUsername1, base::Minutes(4), "4 minutes ago",
+                      api::passwords_private::COMPROMISE_TYPE_PHISHED),
+                  ExpectCompromisedCredential(
+                      "example.com", "https://example.com",
+                      "https://example.com/.well-known/change-password",
+                      kUsername1, base::Minutes(1), "1 minute ago",
+                      api::passwords_private::COMPROMISE_TYPE_LEAKED),
+                  ExpectCompromisedCredential(
+                      "example.org", "http://www.example.org",
+                      "http://www.example.org/.well-known/change-password",
+                      kUsername2, base::Minutes(3), "3 minutes ago",
+                      api::passwords_private::COMPROMISE_TYPE_LEAKED)));
 }
 
 // Verifies that the formatted timestamp associated with a compromised
@@ -403,50 +398,45 @@
 // months and years.
 TEST_F(PasswordCheckDelegateTest, GetCompromisedCredentialsHandlesTimes) {
   PasswordForm form_com_username1 = MakeSavedPassword(kExampleCom, kUsername1);
-  AddIssueToForm(&form_com_username1, InsecureType::kLeaked,
-                 base::TimeDelta::FromSeconds(59));
+  AddIssueToForm(&form_com_username1, InsecureType::kLeaked, base::Seconds(59));
   store().AddLogin(form_com_username1);
 
   PasswordForm form_com_username2 = MakeSavedPassword(kExampleCom, kUsername2);
-  AddIssueToForm(&form_com_username2, InsecureType::kLeaked,
-                 base::TimeDelta::FromSeconds(60));
+  AddIssueToForm(&form_com_username2, InsecureType::kLeaked, base::Seconds(60));
   store().AddLogin(form_com_username2);
 
   PasswordForm form_org_username1 = MakeSavedPassword(kExampleOrg, kUsername1);
-  AddIssueToForm(&form_org_username1, InsecureType::kLeaked,
-                 base::TimeDelta::FromDays(100));
+  AddIssueToForm(&form_org_username1, InsecureType::kLeaked, base::Days(100));
   store().AddLogin(form_org_username1);
 
   PasswordForm form_org_username2 = MakeSavedPassword(kExampleOrg, kUsername2);
-  AddIssueToForm(&form_org_username2, InsecureType::kLeaked,
-                 base::TimeDelta::FromDays(800));
+  AddIssueToForm(&form_org_username2, InsecureType::kLeaked, base::Days(800));
   store().AddLogin(form_org_username2);
 
   RunUntilIdle();
 
   EXPECT_THAT(
       delegate().GetCompromisedCredentials(),
-      ElementsAre(
-          ExpectCompromisedCredential(
-              "example.com", "https://example.com",
-              "https://example.com/.well-known/change-password", kUsername1,
-              base::TimeDelta::FromSeconds(59), "Just now",
-              api::passwords_private::COMPROMISE_TYPE_LEAKED),
-          ExpectCompromisedCredential(
-              "example.com", "https://example.com",
-              "https://example.com/.well-known/change-password", kUsername2,
-              base::TimeDelta::FromSeconds(60), "1 minute ago",
-              api::passwords_private::COMPROMISE_TYPE_LEAKED),
-          ExpectCompromisedCredential(
-              "example.org", "http://www.example.org",
-              "http://www.example.org/.well-known/change-password", kUsername1,
-              base::TimeDelta::FromDays(100), "3 months ago",
-              api::passwords_private::COMPROMISE_TYPE_LEAKED),
-          ExpectCompromisedCredential(
-              "example.org", "http://www.example.org",
-              "http://www.example.org/.well-known/change-password", kUsername2,
-              base::TimeDelta::FromDays(800), "2 years ago",
-              api::passwords_private::COMPROMISE_TYPE_LEAKED)));
+      ElementsAre(ExpectCompromisedCredential(
+                      "example.com", "https://example.com",
+                      "https://example.com/.well-known/change-password",
+                      kUsername1, base::Seconds(59), "Just now",
+                      api::passwords_private::COMPROMISE_TYPE_LEAKED),
+                  ExpectCompromisedCredential(
+                      "example.com", "https://example.com",
+                      "https://example.com/.well-known/change-password",
+                      kUsername2, base::Seconds(60), "1 minute ago",
+                      api::passwords_private::COMPROMISE_TYPE_LEAKED),
+                  ExpectCompromisedCredential(
+                      "example.org", "http://www.example.org",
+                      "http://www.example.org/.well-known/change-password",
+                      kUsername1, base::Days(100), "3 months ago",
+                      api::passwords_private::COMPROMISE_TYPE_LEAKED),
+                  ExpectCompromisedCredential(
+                      "example.org", "http://www.example.org",
+                      "http://www.example.org/.well-known/change-password",
+                      kUsername2, base::Days(800), "2 years ago",
+                      api::passwords_private::COMPROMISE_TYPE_LEAKED)));
 }
 
 // Verifies that both leaked and phished credentials are ordered correctly
@@ -456,27 +446,21 @@
 TEST_F(PasswordCheckDelegateTest,
        GetCompromisedCredentialsDedupesLeakedAndCompromised) {
   PasswordForm form_com_username1 = MakeSavedPassword(kExampleCom, kUsername1);
-  AddIssueToForm(&form_com_username1, InsecureType::kLeaked,
-                 base::TimeDelta::FromMinutes(1));
-  AddIssueToForm(&form_com_username1, InsecureType::kPhished,
-                 base::TimeDelta::FromMinutes(5));
+  AddIssueToForm(&form_com_username1, InsecureType::kLeaked, base::Minutes(1));
+  AddIssueToForm(&form_com_username1, InsecureType::kPhished, base::Minutes(5));
   store().AddLogin(form_com_username1);
 
   PasswordForm form_com_username2 = MakeSavedPassword(kExampleCom, kUsername2);
-  AddIssueToForm(&form_com_username2, InsecureType::kLeaked,
-                 base::TimeDelta::FromMinutes(2));
+  AddIssueToForm(&form_com_username2, InsecureType::kLeaked, base::Minutes(2));
   store().AddLogin(form_com_username2);
 
   PasswordForm form_org_username1 = MakeSavedPassword(kExampleOrg, kUsername1);
-  AddIssueToForm(&form_org_username1, InsecureType::kPhished,
-                 base::TimeDelta::FromMinutes(3));
+  AddIssueToForm(&form_org_username1, InsecureType::kPhished, base::Minutes(3));
   store().AddLogin(form_org_username1);
 
   PasswordForm form_org_username2 = MakeSavedPassword(kExampleOrg, kUsername2);
-  AddIssueToForm(&form_org_username2, InsecureType::kPhished,
-                 base::TimeDelta::FromMinutes(4));
-  AddIssueToForm(&form_org_username2, InsecureType::kLeaked,
-                 base::TimeDelta::FromMinutes(6));
+  AddIssueToForm(&form_org_username2, InsecureType::kPhished, base::Minutes(4));
+  AddIssueToForm(&form_org_username2, InsecureType::kLeaked, base::Minutes(6));
   store().AddLogin(form_org_username2);
 
   RunUntilIdle();
@@ -487,40 +471,38 @@
           ExpectCompromisedCredential(
               "example.com", "https://example.com",
               "https://example.com/.well-known/change-password", kUsername1,
-              base::TimeDelta::FromMinutes(1), "1 minute ago",
+              base::Minutes(1), "1 minute ago",
               api::passwords_private::COMPROMISE_TYPE_PHISHED_AND_LEAKED),
           ExpectCompromisedCredential(
               "example.org", "http://www.example.org",
               "http://www.example.org/.well-known/change-password", kUsername1,
-              base::TimeDelta::FromMinutes(3), "3 minutes ago",
+              base::Minutes(3), "3 minutes ago",
               api::passwords_private::COMPROMISE_TYPE_PHISHED),
           ExpectCompromisedCredential(
               "example.org", "http://www.example.org",
               "http://www.example.org/.well-known/change-password", kUsername2,
-              base::TimeDelta::FromMinutes(4), "4 minutes ago",
+              base::Minutes(4), "4 minutes ago",
               api::passwords_private::COMPROMISE_TYPE_PHISHED_AND_LEAKED),
           ExpectCompromisedCredential(
               "example.com", "https://example.com",
               "https://example.com/.well-known/change-password", kUsername2,
-              base::TimeDelta::FromMinutes(2), "2 minutes ago",
+              base::Minutes(2), "2 minutes ago",
               api::passwords_private::COMPROMISE_TYPE_LEAKED)));
 }
 
 TEST_F(PasswordCheckDelegateTest, GetCompromisedCredentialsInjectsAndroid) {
   PasswordForm form = MakeSavedPassword(kExampleCom, kUsername1);
-  AddIssueToForm(&form, InsecureType::kLeaked, base::TimeDelta::FromMinutes(5));
+  AddIssueToForm(&form, InsecureType::kLeaked, base::Minutes(5));
   store().AddLogin(form);
 
   PasswordForm android_form1 =
       MakeSavedAndroidPassword(kExampleApp, kUsername1);
-  AddIssueToForm(&android_form1, InsecureType::kPhished,
-                 base::TimeDelta::FromDays(4));
+  AddIssueToForm(&android_form1, InsecureType::kPhished, base::Days(4));
   store().AddLogin(android_form1);
 
   PasswordForm android_form2 = MakeSavedAndroidPassword(
       kExampleApp, kUsername2, "Example App", kExampleCom);
-  AddIssueToForm(&android_form2, InsecureType::kPhished,
-                 base::TimeDelta::FromDays(3));
+  AddIssueToForm(&android_form2, InsecureType::kPhished, base::Days(3));
   store().AddLogin(android_form2);
 
   RunUntilIdle();
@@ -529,21 +511,20 @@
   // password store.
   EXPECT_THAT(
       delegate().GetCompromisedCredentials(),
-      ElementsAre(
-          ExpectCompromisedCredential(
-              "Example App", "Example App",
-              "https://example.com/.well-known/change-password", kUsername2,
-              base::TimeDelta::FromDays(3), "3 days ago",
-              api::passwords_private::COMPROMISE_TYPE_PHISHED),
-          ExpectCompromisedCredential(
-              "App (com.example.app)", "com.example.app", absl::nullopt,
-              kUsername1, base::TimeDelta::FromDays(4), "4 days ago",
-              api::passwords_private::COMPROMISE_TYPE_PHISHED),
-          ExpectCompromisedCredential(
-              "example.com", "https://example.com",
-              "https://example.com/.well-known/change-password", kUsername1,
-              base::TimeDelta::FromMinutes(5), "5 minutes ago",
-              api::passwords_private::COMPROMISE_TYPE_LEAKED)));
+      ElementsAre(ExpectCompromisedCredential(
+                      "Example App", "Example App",
+                      "https://example.com/.well-known/change-password",
+                      kUsername2, base::Days(3), "3 days ago",
+                      api::passwords_private::COMPROMISE_TYPE_PHISHED),
+                  ExpectCompromisedCredential(
+                      "App (com.example.app)", "com.example.app", absl::nullopt,
+                      kUsername1, base::Days(4), "4 days ago",
+                      api::passwords_private::COMPROMISE_TYPE_PHISHED),
+                  ExpectCompromisedCredential(
+                      "example.com", "https://example.com",
+                      "https://example.com/.well-known/change-password",
+                      kUsername1, base::Minutes(5), "5 minutes ago",
+                      api::passwords_private::COMPROMISE_TYPE_LEAKED)));
 }
 
 // Test that a change to compromised credential notifies observers.
@@ -1038,7 +1019,7 @@
 TEST_F(PasswordCheckDelegateTest, LastTimePasswordCheckCompletedIsSet) {
   profile().GetPrefs()->SetDouble(
       kLastTimePasswordCheckCompleted,
-      (base::Time::Now() - base::TimeDelta::FromMinutes(5)).ToDoubleT());
+      (base::Time::Now() - base::Minutes(5)).ToDoubleT());
 
   PasswordCheckStatus status = delegate().GetPasswordCheckStatus();
   EXPECT_THAT(status.elapsed_time_since_last_check,
diff --git a/chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl.cc b/chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl.cc
index b03e48a..86fa6e432 100644
--- a/chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl.cc
+++ b/chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl.cc
@@ -65,8 +65,7 @@
 #if BUILDFLAG(IS_CHROMEOS_ASH)
 constexpr base::TimeDelta kShowPasswordAuthTokenLifetime =
     password_manager::PasswordAccessAuthenticator::kAuthValidityPeriod;
-constexpr base::TimeDelta kExportPasswordsAuthTokenLifetime =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kExportPasswordsAuthTokenLifetime = base::Seconds(5);
 #endif
 
 // Map password_manager::ExportProgressStatus to
diff --git a/chrome/browser/extensions/api/passwords_private/test_passwords_private_delegate.cc b/chrome/browser/extensions/api/passwords_private/test_passwords_private_delegate.cc
index 243fbd01..e75c3527 100644
--- a/chrome/browser/extensions/api/passwords_private/test_passwords_private_delegate.cc
+++ b/chrome/browser/extensions/api/passwords_private/test_passwords_private_delegate.cc
@@ -195,9 +195,8 @@
   // Mar 03 2020 12:00:00 UTC
   credential.compromised_info->compromise_time = 1583236800000;
   credential.compromised_info->elapsed_time_since_compromise =
-      base::UTF16ToUTF8(TimeFormat::Simple(TimeFormat::FORMAT_ELAPSED,
-                                           TimeFormat::LENGTH_LONG,
-                                           base::TimeDelta::FromDays(3)));
+      base::UTF16ToUTF8(TimeFormat::Simple(
+          TimeFormat::FORMAT_ELAPSED, TimeFormat::LENGTH_LONG, base::Days(3)));
   credential.compromised_info->compromise_type =
       api::passwords_private::COMPROMISE_TYPE_LEAKED;
   std::vector<api::passwords_private::InsecureCredential> credentials;
@@ -273,9 +272,9 @@
   status.already_processed = std::make_unique<int>(5);
   status.remaining_in_queue = std::make_unique<int>(10);
   status.elapsed_time_since_last_check =
-      std::make_unique<std::string>(base::UTF16ToUTF8(TimeFormat::Simple(
-          TimeFormat::FORMAT_ELAPSED, TimeFormat::LENGTH_SHORT,
-          base::TimeDelta::FromMinutes(5))));
+      std::make_unique<std::string>(base::UTF16ToUTF8(
+          TimeFormat::Simple(TimeFormat::FORMAT_ELAPSED,
+                             TimeFormat::LENGTH_SHORT, base::Minutes(5))));
   return status;
 }
 
diff --git a/chrome/browser/extensions/api/printing/printing_api.cc b/chrome/browser/extensions/api/printing/printing_api.cc
index 449180d..19d8faf 100644
--- a/chrome/browser/extensions/api/printing/printing_api.cc
+++ b/chrome/browser/extensions/api/printing/printing_api.cc
@@ -20,8 +20,7 @@
 void PrintingSubmitJobFunction::GetQuotaLimitHeuristics(
     QuotaLimitHeuristics* heuristics) const {
   QuotaLimitHeuristic::Config config = {
-      api::printing::MAX_SUBMIT_JOB_CALLS_PER_MINUTE,
-      base::TimeDelta::FromMinutes(1)};
+      api::printing::MAX_SUBMIT_JOB_CALLS_PER_MINUTE, base::Minutes(1)};
   heuristics->push_back(std::make_unique<QuotaService::TimedLimit>(
       config, std::make_unique<QuotaLimitHeuristic::SingletonBucketMapper>(),
       "MAX_SUBMIT_JOB_CALLS_PER_MINUTE"));
@@ -90,8 +89,7 @@
 void PrintingGetPrinterInfoFunction::GetQuotaLimitHeuristics(
     QuotaLimitHeuristics* heuristics) const {
   QuotaLimitHeuristic::Config config = {
-      api::printing::MAX_GET_PRINTER_INFO_CALLS_PER_MINUTE,
-      base::TimeDelta::FromMinutes(1)};
+      api::printing::MAX_GET_PRINTER_INFO_CALLS_PER_MINUTE, base::Minutes(1)};
   heuristics->push_back(std::make_unique<QuotaService::TimedLimit>(
       config, std::make_unique<QuotaLimitHeuristic::SingletonBucketMapper>(),
       "MAX_GET_PRINTER_INFO_CALLS_PER_MINUTE"));
diff --git a/chrome/browser/extensions/api/processes/processes_api.cc b/chrome/browser/extensions/api/processes/processes_api.cc
index 1f64fdc..608227bf 100644
--- a/chrome/browser/extensions/api/processes/processes_api.cc
+++ b/chrome/browser/extensions/api/processes/processes_api.cc
@@ -188,11 +188,10 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 ProcessesEventRouter::ProcessesEventRouter(content::BrowserContext* context)
-    : task_manager::TaskManagerObserver(base::TimeDelta::FromSeconds(1),
+    : task_manager::TaskManagerObserver(base::Seconds(1),
                                         task_manager::REFRESH_TYPE_NONE),
       browser_context_(context),
-      listeners_(0) {
-}
+      listeners_(0) {}
 
 ProcessesEventRouter::~ProcessesEventRouter() {
 }
@@ -577,9 +576,8 @@
 
 ProcessesGetProcessInfoFunction::ProcessesGetProcessInfoFunction()
     : task_manager::TaskManagerObserver(
-          base::TimeDelta::FromSeconds(1),
-          GetRefreshTypesFlagOnlyEssentialData()) {
-}
+          base::Seconds(1),
+          GetRefreshTypesFlagOnlyEssentialData()) {}
 
 ExtensionFunction::ResponseAction ProcessesGetProcessInfoFunction::Run() {
   std::unique_ptr<api::processes::GetProcessInfo::Params> params(
diff --git a/chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate_unittest.cc b/chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate_unittest.cc
index 22cf08e..2939de55 100644
--- a/chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate_unittest.cc
+++ b/chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate_unittest.cc
@@ -292,14 +292,14 @@
 
   // Check again after a short delay - we should be throttled because
   // not enough time has passed.
-  clock_.Advance(base::TimeDelta::FromMinutes(15));
+  clock_.Advance(base::Minutes(15));
   downloader_test_delegate_.AddNoUpdateResponse(id);
   DoUpdateCheck(id, "throttled", "");
 
   // Now simulate checking a few times at a 6 hour interval - none of these
   // should be throttled.
   for (int i = 0; i < 5; i++) {
-    clock_.Advance(base::TimeDelta::FromHours(6));
+    clock_.Advance(base::Hours(6));
     downloader_test_delegate_.AddNoUpdateResponse(id);
     DoUpdateCheck(id, "no_update", "");
   }
@@ -307,13 +307,13 @@
   // Run an update check that should get an "update_available" response. This
   // actually causes the new version to be downloaded/unpacked, but the install
   // will not complete until we reload the extension.
-  clock_.Advance(base::TimeDelta::FromDays(1));
+  clock_.Advance(base::Days(1));
   downloader_test_delegate_.AddUpdateResponse(id, v2_path, "2.0");
   DoUpdateCheck(id, "update_available", "2.0");
 
   // Call again after short delay - it should be throttled instead of getting
   // another "update_available" response.
-  clock_.Advance(base::TimeDelta::FromMinutes(30));
+  clock_.Advance(base::Minutes(30));
   downloader_test_delegate_.AddUpdateResponse(id, v2_path, "2.0");
   DoUpdateCheck(id, "throttled", "");
 
@@ -324,16 +324,16 @@
       ExtensionRegistry::Get(browser_context())->GetInstalledExtension(id);
   ASSERT_NE(nullptr, current);
   EXPECT_EQ("2.0", current->VersionString());
-  clock_.Advance(base::TimeDelta::FromSeconds(10));
+  clock_.Advance(base::Seconds(10));
   downloader_test_delegate_.AddNoUpdateResponse(id);
   DoUpdateCheck(id, "no_update", "");
 
   // Check again after short delay; we should be throttled.
-  clock_.Advance(base::TimeDelta::FromMinutes(5));
+  clock_.Advance(base::Minutes(5));
   DoUpdateCheck(id, "throttled", "");
 
   // Call again after a longer delay, we should should be unthrottled.
-  clock_.Advance(base::TimeDelta::FromHours(8));
+  clock_.Advance(base::Hours(8));
   downloader_test_delegate_.AddNoUpdateResponse(id);
   DoUpdateCheck(id, "no_update", "");
 }
@@ -446,7 +446,7 @@
 
   // Reload one more time after the time threshold for a suspiciously fast
   // reload has passed.
-  clock_.Advance(base::TimeDelta::FromSeconds(1000));
+  clock_.Advance(base::Seconds(1000));
 
   ReloadExtensionAndWait();
   EXPECT_TRUE(registry()->enabled_extensions().Contains(extension_id()));
diff --git a/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_event_router.cc b/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_event_router.cc
index 4906a64..1863144 100644
--- a/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_event_router.cc
+++ b/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_event_router.cc
@@ -1148,7 +1148,7 @@
       rejected_dm_token_timers_[client->dm_token()] =
           std::make_unique<base::OneShotTimer>();
       rejected_dm_token_timers_[client->dm_token()]->Start(
-          FROM_HERE, base::TimeDelta::FromHours(24),
+          FROM_HERE, base::Hours(24),
           base::BindOnce(
               &SafeBrowsingPrivateEventRouter::RemoveDmTokenFromRejectedSet,
               weak_ptr_factory_.GetWeakPtr(), client->dm_token()));
diff --git a/chrome/browser/extensions/api/sessions/sessions_apitest.cc b/chrome/browser/extensions/api/sessions/sessions_apitest.cc
index e9aa108..224dfe3 100644
--- a/chrome/browser/extensions/api/sessions/sessions_apitest.cc
+++ b/chrome/browser/extensions/api/sessions/sessions_apitest.cc
@@ -247,8 +247,7 @@
     header_entity_data.id =
         "FakeId:" + header_entity_data.client_tag_hash.value();
     header_entity_data.specifics = header_entity;
-    header_entity_data.creation_time =
-        time_now - base::TimeDelta::FromSeconds(index);
+    header_entity_data.creation_time = time_now - base::Seconds(index);
     header_entity_data.modification_time = header_entity_data.creation_time;
 
     syncer::UpdateResponseData header_update;
diff --git a/chrome/browser/extensions/api/socket/udp_socket_unittest.cc b/chrome/browser/extensions/api/socket/udp_socket_unittest.cc
index 9db910b..92f003e 100644
--- a/chrome/browser/extensions/api/socket/udp_socket_unittest.cc
+++ b/chrome/browser/extensions/api/socket/udp_socket_unittest.cc
@@ -151,7 +151,7 @@
         FROM_HERE,
         base::BindOnce(&SendMulticastPacket, std::move(quit_run_loop), src,
                        result),
-        base::TimeDelta::FromSeconds(1));
+        base::Seconds(1));
   } else {
     std::move(quit_run_loop).Run();
     FAIL() << "Failed to connect to multicast address. Error code: " << result;
diff --git a/chrome/browser/extensions/api/tab_capture/tab_capture_performance_test_base.h b/chrome/browser/extensions/api/tab_capture/tab_capture_performance_test_base.h
index 0a97db88..e7fc090 100644
--- a/chrome/browser/extensions/api/tab_capture/tab_capture_performance_test_base.h
+++ b/chrome/browser/extensions/api/tab_capture/tab_capture_performance_test_base.h
@@ -111,14 +111,14 @@
   // These are how long the browser is run with trace event recording taking
   // place.
   static constexpr base::TimeDelta kFullRunObservationPeriod =
-      base::TimeDelta::FromSeconds(15);
+      base::Seconds(15);
   static constexpr base::TimeDelta kQuickRunObservationPeriod =
-      base::TimeDelta::FromSeconds(4);
+      base::Seconds(4);
 
   // If sending a message to the extension fails, because the extension has not
   // started its message listener yet, how long before the next retry?
   static constexpr base::TimeDelta kSendMessageRetryPeriod =
-      base::TimeDelta::FromMilliseconds(250);
+      base::Milliseconds(250);
 
   // Note: The hostname must match the pattern found in the Extension's manifest
   // file, or it will not be able to send/receive messaging from the test web
diff --git a/chrome/browser/extensions/api/tabs/tabs_api.cc b/chrome/browser/extensions/api/tabs/tabs_api.cc
index ec454a2..4174567 100644
--- a/chrome/browser/extensions/api/tabs/tabs_api.cc
+++ b/chrome/browser/extensions/api/tabs/tabs_api.cc
@@ -2059,7 +2059,7 @@
 
 void TabsCaptureVisibleTabFunction::GetQuotaLimitHeuristics(
     QuotaLimitHeuristics* heuristics) const {
-  constexpr base::TimeDelta kSecond = base::TimeDelta::FromSeconds(1);
+  constexpr base::TimeDelta kSecond = base::Seconds(1);
   QuotaLimitHeuristic::Config limit = {
       tabs::MAX_CAPTURE_VISIBLE_TAB_CALLS_PER_SECOND, kSecond};
 
diff --git a/chrome/browser/extensions/api/terminal/crostini_startup_status.cc b/chrome/browser/extensions/api/terminal/crostini_startup_status.cc
index 6a07b0a8..dccf12ef 100644
--- a/chrome/browser/extensions/api/terminal/crostini_startup_status.cc
+++ b/chrome/browser/extensions/api/terminal/crostini_startup_status.cc
@@ -100,7 +100,7 @@
 void CrostiniStartupStatus::ShowProgressAtInterval() {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
   show_progress_timer_ = std::make_unique<base::RepeatingTimer>();
-  show_progress_timer_->Start(FROM_HERE, base::TimeDelta::FromMilliseconds(300),
+  show_progress_timer_->Start(FROM_HERE, base::Milliseconds(300),
                               base::BindRepeating(
                                   [](CrostiniStartupStatus* self) {
                                     self->spinner_index_++;
diff --git a/chrome/browser/extensions/api/web_request/web_request_apitest.cc b/chrome/browser/extensions/api/web_request/web_request_apitest.cc
index 04e8ddc..3241ff7 100644
--- a/chrome/browser/extensions/api/web_request/web_request_apitest.cc
+++ b/chrome/browser/extensions/api/web_request/web_request_apitest.cc
@@ -2374,7 +2374,7 @@
  private:
   static base::Time Now() {
     static base::Time now_time = base::Time::UnixEpoch();
-    now_time += base::TimeDelta::FromMilliseconds(1);
+    now_time += base::Milliseconds(1);
     return now_time;
   }
 
@@ -3280,8 +3280,7 @@
   base::RunLoop run_loop;
   partition->GetNetworkContext()->AddHSTS(
       https_test_server.host_port_pair().host(),
-      base::Time::Now() + base::TimeDelta::FromDays(100), true,
-      run_loop.QuitClosure());
+      base::Time::Now() + base::Days(100), true, run_loop.QuitClosure());
   run_loop.Run();
 
   PerformXhrInFrame(
@@ -3347,9 +3346,9 @@
   content::StoragePartition* partition =
       profile()->GetDefaultStoragePartition();
   base::RunLoop run_loop;
-  partition->GetNetworkContext()->AddHSTS(
-      "hsts.com", base::Time::Now() + base::TimeDelta::FromDays(100), true,
-      run_loop.QuitClosure());
+  partition->GetNetworkContext()->AddHSTS("hsts.com",
+                                          base::Time::Now() + base::Days(100),
+                                          true, run_loop.QuitClosure());
   run_loop.Run();
 
   GURL final_url = https_test_server.GetURL("hsts.com", "/echo");
diff --git a/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_browsertest.cc b/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_browsertest.cc
index 4d60263..6a0f530 100644
--- a/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_browsertest.cc
+++ b/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_browsertest.cc
@@ -98,7 +98,7 @@
       base::RunLoop().RunUntilIdle();
       if (audio_playing)
         break;
-      base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(100));
+      base::PlatformThread::Sleep(base::Milliseconds(100));
     }
     if (!audio_playing)
       FAIL() << "Audio did not start playing within ~5 seconds.";
diff --git a/chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc b/chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc
index 1e433d61..9fe68cb 100644
--- a/chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc
+++ b/chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc
@@ -488,7 +488,7 @@
           host, AudioDebugRecordingsHandler::kAudioDebugRecordingsHandlerKey));
 
   audio_debug_recordings_handler->StartAudioDebugRecordings(
-      host, base::TimeDelta::FromSeconds(params->seconds),
+      host, base::Seconds(params->seconds),
       base::BindOnce(
           &WebrtcLoggingPrivateStartAudioDebugRecordingsFunction::FireCallback,
           this),
diff --git a/chrome/browser/extensions/api_binding_perf_browsertest.cc b/chrome/browser/extensions/api_binding_perf_browsertest.cc
index b8b7275..ec4805b7 100644
--- a/chrome/browser/extensions/api_binding_perf_browsertest.cc
+++ b/chrome/browser/extensions/api_binding_perf_browsertest.cc
@@ -45,7 +45,7 @@
         browser()->tab_strip_model()->GetActiveWebContents(),
         "runTest(time => window.domAutomationController.send(time))",
         &time_elapsed_ms));
-    return base::TimeDelta::FromMillisecondsD(time_elapsed_ms);
+    return base::Milliseconds(time_elapsed_ms);
   }
 };
 
diff --git a/chrome/browser/extensions/extension_browsertest_browsertest.cc b/chrome/browser/extensions/extension_browsertest_browsertest.cc
index 99fcd2289..e0a8fd53 100644
--- a/chrome/browser/extensions/extension_browsertest_browsertest.cc
+++ b/chrome/browser/extensions/extension_browsertest_browsertest.cc
@@ -39,8 +39,7 @@
   // We add a custom delay here to force the background page of the extension to
   // load a little later; this helps ensure we are properly waiting on it in the
   // LoadExtension() method.
-  ExtensionHostQueue::GetInstance().SetCustomDelayForTesting(
-      base::TimeDelta::FromSeconds(1));
+  ExtensionHostQueue::GetInstance().SetCustomDelayForTesting(base::Seconds(1));
 
   constexpr char kPersistentBackgroundPage[] =
       R"("scripts": ["background.js"])";
@@ -85,8 +84,7 @@
   EventRouter* event_router = EventRouter::Get(profile());
   EXPECT_TRUE(event_router->ExtensionHasEventListener(extension->id(),
                                                       "tabs.onCreated"));
-  ExtensionHostQueue::GetInstance().SetCustomDelayForTesting(
-      base::TimeDelta::FromSeconds(0));
+  ExtensionHostQueue::GetInstance().SetCustomDelayForTesting(base::Seconds(0));
 }
 
 // TODO(devlin): Add support for ServiceWorker-based extensions here as well.
diff --git a/chrome/browser/extensions/extension_garbage_collector.cc b/chrome/browser/extensions/extension_garbage_collector.cc
index 63176db..c608873 100644
--- a/chrome/browser/extensions/extension_garbage_collector.cc
+++ b/chrome/browser/extensions/extension_garbage_collector.cc
@@ -45,13 +45,11 @@
 namespace {
 
 // Wait this long before trying to garbage collect extensions again.
-constexpr base::TimeDelta kGarbageCollectRetryDelay =
-    base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kGarbageCollectRetryDelay = base::Seconds(30);
 
 // Wait this long after startup to see if there are any extensions which can be
 // garbage collected.
-constexpr base::TimeDelta kGarbageCollectStartupDelay =
-    base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kGarbageCollectStartupDelay = base::Seconds(30);
 
 typedef std::multimap<std::string, base::FilePath> ExtensionPathsMultimap;
 
diff --git a/chrome/browser/extensions/extension_message_bubble_controller_unittest.cc b/chrome/browser/extensions/extension_message_bubble_controller_unittest.cc
index db3fbe0..009275c 100644
--- a/chrome/browser/extensions/extension_message_bubble_controller_unittest.cc
+++ b/chrome/browser/extensions/extension_message_bubble_controller_unittest.cc
@@ -1034,7 +1034,7 @@
   // The bubble will not show if the extension was installed in the last 7 days
   // so we artificially set the install time to simulate an old install during
   // testing.
-  base::Time old_enough = base::Time::Now() - base::TimeDelta::FromDays(8);
+  base::Time old_enough = base::Time::Now() - base::Days(8);
   SetInstallTime(kId1, old_enough, prefs);
   SetInstallTime(kId2, base::Time::Now(), prefs);
   SetInstallTime(kId3, old_enough, prefs);
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
index f13d0ad..b175e77 100644
--- a/chrome/browser/extensions/extension_service.cc
+++ b/chrome/browser/extensions/extension_service.cc
@@ -132,7 +132,7 @@
 bool g_external_updates_disabled_for_test_ = false;
 
 // Wait this long after an extensions becomes idle before updating it.
-constexpr base::TimeDelta kUpdateIdleDelay = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kUpdateIdleDelay = base::Seconds(5);
 
 // IDs of component extensions that have been obsoleted and need to be
 // uninstalled.
diff --git a/chrome/browser/extensions/forced_extensions/force_installed_metrics.cc b/chrome/browser/extensions/forced_extensions/force_installed_metrics.cc
index d819af4..e0affb5 100644
--- a/chrome/browser/extensions/forced_extensions/force_installed_metrics.cc
+++ b/chrome/browser/extensions/forced_extensions/force_installed_metrics.cc
@@ -32,8 +32,7 @@
 
 namespace {
 // Timeout to report UMA if not all force-installed extension were loaded.
-constexpr base::TimeDelta kInstallationTimeout =
-    base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kInstallationTimeout = base::Minutes(5);
 
 #if BUILDFLAG(IS_CHROMEOS_ASH)
 // Converts user_manager::UserType to InstallStageTracker::UserType for
diff --git a/chrome/browser/extensions/forced_extensions/force_installed_metrics_unittest.cc b/chrome/browser/extensions/forced_extensions/force_installed_metrics_unittest.cc
index 83129b3..980ebba9 100644
--- a/chrome/browser/extensions/forced_extensions/force_installed_metrics_unittest.cc
+++ b/chrome/browser/extensions/forced_extensions/force_installed_metrics_unittest.cc
@@ -313,8 +313,7 @@
 TEST_F(ForceInstalledMetricsTest, ExtensionsManifestDownloadTime) {
   SetupForceList(ExtensionOrigin::kWebStore);
   ReportDownloadingManifestStage();
-  const base::TimeDelta manifest_download_time =
-      base::TimeDelta::FromMilliseconds(200);
+  const base::TimeDelta manifest_download_time = base::Milliseconds(200);
   task_environment_.FastForwardBy(manifest_download_time);
   install_stage_tracker()->ReportDownloadingStage(
       kExtensionId1, ExtensionDownloaderDelegate::Stage::MANIFEST_LOADED);
@@ -335,7 +334,7 @@
 TEST_F(ForceInstalledMetricsTest, ExtensionsCrxDownloadTime) {
   SetupForceList(ExtensionOrigin::kWebStore);
   ReportDownloadingManifestStage();
-  const base::TimeDelta install_time = base::TimeDelta::FromMilliseconds(200);
+  const base::TimeDelta install_time = base::Milliseconds(200);
   ReportInstallationStarted(install_time);
   scoped_refptr<const Extension> ext1 = CreateNewExtension(
       kExtensionName1, kExtensionId1, ExtensionStatus::kLoaded);
@@ -380,8 +379,7 @@
   install_stage_tracker()->ReportCRXInstallationStage(
       kExtensionId1, InstallationStage::kVerification);
 
-  const base::TimeDelta installation_stage_time =
-      base::TimeDelta::FromMilliseconds(200);
+  const base::TimeDelta installation_stage_time = base::Milliseconds(200);
   task_environment_.FastForwardBy(installation_stage_time);
   install_stage_tracker()->ReportCRXInstallationStage(
       kExtensionId1, InstallationStage::kCopying);
diff --git a/chrome/browser/extensions/test_extension_prefs.cc b/chrome/browser/extensions/test_extension_prefs.cc
index b1abe56..bdbe185 100644
--- a/chrome/browser/extensions/test_extension_prefs.cc
+++ b/chrome/browser/extensions/test_extension_prefs.cc
@@ -56,7 +56,7 @@
   ~IncrementalClock() override {}
 
   base::Time Now() const override {
-    current_time_ += base::TimeDelta::FromSeconds(10);
+    current_time_ += base::Seconds(10);
     return current_time_;
   }
 
diff --git a/chrome/browser/extensions/updater/chromeos_extension_cache_delegate.cc b/chrome/browser/extensions/updater/chromeos_extension_cache_delegate.cc
index 3ed876e..63058994 100644
--- a/chrome/browser/extensions/updater/chromeos_extension_cache_delegate.cc
+++ b/chrome/browser/extensions/updater/chromeos_extension_cache_delegate.cc
@@ -47,7 +47,7 @@
 
 base::TimeDelta ChromeOSExtensionCacheDelegate::GetMaximumCacheAge() const {
   // Maximum age of unused extensions in the cache.
-  static constexpr base::TimeDelta kMaxCacheAge = base::TimeDelta::FromDays(30);
+  static constexpr base::TimeDelta kMaxCacheAge = base::Days(30);
   return kMaxCacheAge;
 }
 
diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/browser/extensions/updater/extension_updater.cc
index 2430448..55514b8 100644
--- a/chrome/browser/extensions/updater/extension_updater.cc
+++ b/chrome/browser/extensions/updater/extension_updater.cc
@@ -154,7 +154,7 @@
     const ExtensionDownloader::Factory& downloader_factory)
     : service_(service),
       downloader_factory_(downloader_factory),
-      frequency_(base::TimeDelta::FromSeconds(frequency_seconds)),
+      frequency_(base::Seconds(frequency_seconds)),
       extension_prefs_(extension_prefs),
       prefs_(prefs),
       profile_(profile),
@@ -166,7 +166,7 @@
   frequency_seconds = std::max(frequency_seconds, kMinUpdateFrequencySeconds);
 #endif
   frequency_seconds = std::min(frequency_seconds, kMaxUpdateFrequencySeconds);
-  frequency_ = base::TimeDelta::FromSeconds(frequency_seconds);
+  frequency_ = base::Seconds(frequency_seconds);
 }
 
 ExtensionUpdater::~ExtensionUpdater() {
@@ -220,7 +220,7 @@
   DCHECK(alive_);
   // Jitter the frequency by +/- 20%.
   const double jitter_factor = RandDouble() * 0.4 + 0.8;
-  base::TimeDelta delay = base::TimeDelta::FromMilliseconds(
+  base::TimeDelta delay = base::Milliseconds(
       static_cast<int64_t>(frequency_.InMilliseconds() * jitter_factor));
   content::GetUIThreadTaskRunner({base::TaskPriority::BEST_EFFORT})
       ->PostDelayedTask(FROM_HERE,
diff --git a/chrome/browser/extensions/updater/extension_updater_unittest.cc b/chrome/browser/extensions/updater/extension_updater_unittest.cc
index 792b10e..5297051 100644
--- a/chrome/browser/extensions/updater/extension_updater_unittest.cc
+++ b/chrome/browser/extensions/updater/extension_updater_unittest.cc
@@ -1734,7 +1734,7 @@
         tmp_path.Append(LocalExtensionCache::ExtensionFileName(
             kTestExtensionId, version, "" /* hash */));
     // Create a small file of zeroes, e.g. 100 bytes size.
-    CreateFile(filename, 100, now - base::TimeDelta::FromSeconds(3));
+    CreateFile(filename, 100, now - base::Seconds(3));
 
     // Add crx file entry in the cache.
     base::RunLoop put_extension_run_loop;
diff --git a/chrome/browser/extensions/updater/local_extension_cache.cc b/chrome/browser/extensions/updater/local_extension_cache.cc
index e9ddc42..43479da 100644
--- a/chrome/browser/extensions/updater/local_extension_cache.cc
+++ b/chrome/browser/extensions/updater/local_extension_cache.cc
@@ -25,8 +25,7 @@
 
 // Delay between checks for flag file presence when waiting for the cache to
 // become ready.
-constexpr base::TimeDelta kCacheStatusPollingDelay =
-    base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kCacheStatusPollingDelay = base::Seconds(1);
 
 }  // namespace
 
diff --git a/chrome/browser/extensions/updater/local_extension_cache_unittest.cc b/chrome/browser/extensions/updater/local_extension_cache_unittest.cc
index 035b628..8a8fa9f4 100644
--- a/chrome/browser/extensions/updater/local_extension_cache_unittest.cc
+++ b/chrome/browser/extensions/updater/local_extension_cache_unittest.cc
@@ -126,7 +126,7 @@
   base::FilePath cache_dir(CreateCacheDir());
 
   LocalExtensionCache cache(
-      cache_dir, 1000, base::TimeDelta::FromDays(30),
+      cache_dir, 1000, base::Days(30),
       base::ThreadPool::CreateSequencedTaskRunner({base::MayBlock()}));
   cache.SetCacheStatusPollingDelayForTests(base::TimeDelta());
 
@@ -135,17 +135,13 @@
 
   base::FilePath file10, file01, file20, file30;
   CreateExtensionFile(cache_dir, kTestExtensionId1, "1.0", 100,
-                      base::Time::Now() - base::TimeDelta::FromDays(1),
-                      &file10);
+                      base::Time::Now() - base::Days(1), &file10);
   CreateExtensionFile(cache_dir, kTestExtensionId1, "0.1", 100,
-                      base::Time::Now() - base::TimeDelta::FromDays(10),
-                      &file01);
+                      base::Time::Now() - base::Days(10), &file01);
   CreateExtensionFile(cache_dir, kTestExtensionId2, "2.0", 100,
-                      base::Time::Now() - base::TimeDelta::FromDays(40),
-                      &file20);
+                      base::Time::Now() - base::Days(40), &file20);
   CreateExtensionFile(cache_dir, kTestExtensionId3, "3.0", 900,
-                      base::Time::Now() - base::TimeDelta::FromDays(41),
-                      &file30);
+                      base::Time::Now() - base::Days(41), &file30);
 
   content::RunAllTasksUntilIdle();
   ASSERT_TRUE(initialized);
@@ -174,7 +170,7 @@
   base::FilePath cache_dir(CreateCacheDir());
 
   LocalExtensionCache cache(
-      cache_dir, 1000, base::TimeDelta::FromDays(30),
+      cache_dir, 1000, base::Days(30),
       base::ThreadPool::CreateSequencedTaskRunner({base::MayBlock()}));
   cache.SetCacheStatusPollingDelayForTests(base::TimeDelta());
 
@@ -182,7 +178,7 @@
   cache.Init(true, base::BindOnce(&SimpleCallback, &initialized));
 
   // Add three identical extensions with different hash sums.
-  const base::Time time = base::Time::Now() - base::TimeDelta::FromDays(1);
+  const base::Time time = base::Time::Now() - base::Days(1);
   base::FilePath file, file1, file2;
   CreateExtensionFile(cache_dir, kTestExtensionId1, "1.0", 100, time, &file);
   const std::string hash1 = CreateSignedExtensionFile(
@@ -211,7 +207,7 @@
   base::FilePath cache_dir(CreateCacheDir());
 
   LocalExtensionCache cache(
-      cache_dir, 1000, base::TimeDelta::FromDays(30),
+      cache_dir, 1000, base::Days(30),
       base::ThreadPool::CreateSequencedTaskRunner({base::MayBlock()}));
   cache.SetCacheStatusPollingDelayForTests(base::TimeDelta());
 
@@ -219,7 +215,7 @@
   cache.Init(true, base::BindOnce(&SimpleCallback, &initialized));
 
   // All extension files are hashed, but have different versions.
-  const base::Time time = base::Time::Now() - base::TimeDelta::FromDays(1);
+  const base::Time time = base::Time::Now() - base::Days(1);
   base::FilePath file1, file21, file22;
   const std::string hash1 = CreateSignedExtensionFile(
       cache_dir, kTestExtensionId1, "1.0", 100, time, &file1);
@@ -247,7 +243,7 @@
   base::FilePath cache_dir(CreateCacheDir());
 
   LocalExtensionCache cache(
-      cache_dir, 1000, base::TimeDelta::FromDays(30),
+      cache_dir, 1000, base::Days(30),
       base::ThreadPool::CreateSequencedTaskRunner({base::MayBlock()}));
   cache.SetCacheStatusPollingDelayForTests(base::TimeDelta());
 
@@ -255,7 +251,7 @@
   cache.Init(true, base::BindOnce(&SimpleCallback, &initialized));
 
   // Like in KeepHashed test, but with two different versions.
-  const base::Time time = base::Time::Now() - base::TimeDelta::FromDays(1);
+  const base::Time time = base::Time::Now() - base::Days(1);
   base::FilePath file1, file11, file12, file2, file21, file22;
   CreateExtensionFile(cache_dir, kTestExtensionId1, "1.0", 100, time, &file1);
   const std::string hash11 = CreateSignedExtensionFile(
@@ -309,7 +305,7 @@
   base::FilePath cache_dir(CreateCacheDir());
 
   LocalExtensionCache cache(
-      cache_dir, 1000, base::TimeDelta::FromDays(30),
+      cache_dir, 1000, base::Days(30),
       base::ThreadPool::CreateSequencedTaskRunner({base::MayBlock()}));
   cache.SetCacheStatusPollingDelayForTests(base::TimeDelta());
 
@@ -317,7 +313,7 @@
   cache.Init(true, base::BindOnce(&SimpleCallback, &initialized));
 
   // Initialize cache with several different files
-  const base::Time time = base::Time::Now() - base::TimeDelta::FromDays(1);
+  const base::Time time = base::Time::Now() - base::Days(1);
   base::FilePath file11, file12, file2, file3;
   const std::string hash11 = CreateSignedExtensionFile(
       cache_dir, kTestExtensionId1, "1.0", 101, time, &file11);
diff --git a/chrome/browser/extensions/webstore_installer.cc b/chrome/browser/extensions/webstore_installer.cc
index da48be4..d44b43a 100644
--- a/chrome/browser/extensions/webstore_installer.cc
+++ b/chrome/browser/extensions/webstore_installer.cc
@@ -97,8 +97,7 @@
 // See http://crbug.com/371398.
 const char kAuthUserQueryKey[] = "authuser";
 
-constexpr base::TimeDelta kTimeRemainingThreshold =
-    base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kTimeRemainingThreshold = base::Seconds(1);
 
 // Folder for downloading crx files from the webstore. This is used so that the
 // crx files don't go via the usual downloads folder.
diff --git a/chrome/browser/extensions/window_open_apitest.cc b/chrome/browser/extensions/window_open_apitest.cc
index c549215c..2e3cd5a 100644
--- a/chrome/browser/extensions/window_open_apitest.cc
+++ b/chrome/browser/extensions/window_open_apitest.cc
@@ -77,7 +77,7 @@
   ++num_tabs;
   size_t num_browsers = static_cast<size_t>(num_popups + num_app_popups) + 1;
 
-  const base::TimeDelta kWaitTime = base::TimeDelta::FromSeconds(10);
+  const base::TimeDelta kWaitTime = base::Seconds(10);
   base::TimeTicks end_time = base::TimeTicks::Now() + kWaitTime;
   while (base::TimeTicks::Now() < end_time) {
     if (chrome::GetBrowserCount(browser->profile()) == num_browsers &&
diff --git a/chrome/browser/extensions/zipfile_installer_unittest.cc b/chrome/browser/extensions/zipfile_installer_unittest.cc
index bde4397..25c1441 100644
--- a/chrome/browser/extensions/zipfile_installer_unittest.cc
+++ b/chrome/browser/extensions/zipfile_installer_unittest.cc
@@ -58,8 +58,7 @@
       // TODO(jcivelli): make LoadErrorReporter::Observer report installation
       // failures for packaged extensions so we don't have to poll.
       base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-          FROM_HERE, run_loop.QuitClosure(),
-          base::TimeDelta::FromMilliseconds(100));
+          FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(100));
       quit_closure = run_loop.QuitClosure();
       run_loop.Run();
       const std::vector<std::u16string>* errors = error_reporter->GetErrors();
diff --git a/chrome/browser/favicon/content_favicon_driver_browsertest.cc b/chrome/browser/favicon/content_favicon_driver_browsertest.cc
index 1b139b58..080e431 100644
--- a/chrome/browser/favicon/content_favicon_driver_browsertest.cc
+++ b/chrome/browser/favicon/content_favicon_driver_browsertest.cc
@@ -176,7 +176,7 @@
         FROM_HERE,
         base::BindOnce(&PendingTaskWaiter::CheckStopWaitingPeriodically,
                        weak_factory_.GetWeakPtr()),
-        base::TimeDelta::FromSeconds(1));
+        base::Seconds(1));
   }
 
   void EndLoopIfCanStopWaiting() {
diff --git a/chrome/browser/federated_learning/floc_event_logger.cc b/chrome/browser/federated_learning/floc_event_logger.cc
index 25e6d03..702066b 100644
--- a/chrome/browser/federated_learning/floc_event_logger.cc
+++ b/chrome/browser/federated_learning/floc_event_logger.cc
@@ -15,7 +15,7 @@
 
 namespace {
 
-const base::TimeDelta kSecondAttemptDelay = base::TimeDelta::FromSeconds(10);
+const base::TimeDelta kSecondAttemptDelay = base::Seconds(10);
 
 }  // namespace
 
diff --git a/chrome/browser/federated_learning/floc_event_logger_unittest.cc b/chrome/browser/federated_learning/floc_event_logger_unittest.cc
index 43cbec9..902c385 100644
--- a/chrome/browser/federated_learning/floc_event_logger_unittest.cc
+++ b/chrome/browser/federated_learning/floc_event_logger_unittest.cc
@@ -104,10 +104,9 @@
     const sync_pb::UserEventSpecifics_FlocIdComputed& e =
         specifics.floc_id_computed_event();
 
-    return {
-        e.has_floc_id(), e.has_floc_id() ? e.floc_id() : 0,
-        base::Time::FromDeltaSinceWindowsEpoch(
-            base::TimeDelta::FromMicroseconds(specifics.event_time_usec()))};
+    return {e.has_floc_id(), e.has_floc_id() ? e.floc_id() : 0,
+            base::Time::FromDeltaSinceWindowsEpoch(
+                base::Microseconds(specifics.event_time_usec()))};
   }
 
  protected:
@@ -127,7 +126,7 @@
   EXPECT_EQ(0u, GetLoggedEventSize());
 
   // After 10 seconds, still no loggings.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
   EXPECT_EQ(0u, GetLoggedEventSize());
 }
 
@@ -137,13 +136,13 @@
       {true, 33, base::Time::FromTimeT(44)});
   EXPECT_EQ(0u, GetLoggedEventSize());
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(9));
+  task_environment_.FastForwardBy(base::Seconds(9));
   EnableSyncHistory();
   EXPECT_EQ(0u, GetLoggedEventSize());
 
   // After 10 seconds, expect a logging as the previous logging is attempted for
   // the second time.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   EXPECT_EQ(1u, GetLoggedEventSize());
   EXPECT_EQ(1u, GetNumberOfRemotePermissionQueries());
   EXPECT_EQ(true, GetEventAtIndex(0).sim_hash_computed);
@@ -157,12 +156,12 @@
       {true, 33, base::Time::FromTimeT(44)});
   EXPECT_EQ(0u, GetLoggedEventSize());
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(11));
+  task_environment_.FastForwardBy(base::Seconds(11));
 
   // If sync is enabled after 10 seconds after the logging time, the event won't
   // be handled.
   EnableSyncHistory();
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10000));
+  task_environment_.FastForwardBy(base::Seconds(10000));
   EXPECT_EQ(0u, GetLoggedEventSize());
 }
 
@@ -170,7 +169,7 @@
   floc_event_logger_->LogFlocComputedEvent(
       {true, 33, base::Time::FromTimeT(44)});
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment_.FastForwardBy(base::Seconds(5));
 
   floc_event_logger_->LogFlocComputedEvent(
       {false, 999, base::Time::FromTimeT(55)});
@@ -179,7 +178,7 @@
 
   EnableSyncHistory();
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment_.FastForwardBy(base::Seconds(5));
 
   // At time 10, the first event will be given its second attempt.
   EXPECT_EQ(1u, GetLoggedEventSize());
@@ -191,7 +190,7 @@
   // At time 15, the second event will be given its second attempt.
   // The sim_hash field of the 2nd event (i.e. 999) was ignored because the
   // sim_hash_computed field is false.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(15));
+  task_environment_.FastForwardBy(base::Seconds(15));
   EXPECT_EQ(2u, GetLoggedEventSize());
   EXPECT_EQ(2u, GetNumberOfRemotePermissionQueries());
   EXPECT_EQ(false, GetEventAtIndex(1).sim_hash_computed);
@@ -229,7 +228,7 @@
   EXPECT_EQ(0u, GetLoggedEventSize());
 
   SetRemoteSwaaNacAccountEnabled(true);
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
   EXPECT_EQ(0u, GetLoggedEventSize());
 }
 
diff --git a/chrome/browser/federated_learning/floc_id_provider_impl.cc b/chrome/browser/federated_learning/floc_id_provider_impl.cc
index 7ac37fe2..9961053 100644
--- a/chrome/browser/federated_learning/floc_id_provider_impl.cc
+++ b/chrome/browser/federated_learning/floc_id_provider_impl.cc
@@ -379,7 +379,7 @@
   history::QueryOptions options;
   options.begin_time =
       std::max(privacy_sandbox_settings_->FlocDataAccessibleSince(),
-               now - base::TimeDelta::FromDays(kQueryHistoryWindowInDays));
+               now - base::Days(kQueryHistoryWindowInDays));
   options.end_time = now;
   options.duplicate_policy = history::QueryOptions::KEEP_ALL_DUPLICATES;
 
diff --git a/chrome/browser/federated_learning/floc_id_provider_unittest.cc b/chrome/browser/federated_learning/floc_id_provider_unittest.cc
index 894b72f..85affac 100644
--- a/chrome/browser/federated_learning/floc_id_provider_unittest.cc
+++ b/chrome/browser/federated_learning/floc_id_provider_unittest.cc
@@ -332,13 +332,13 @@
 
   EXPECT_FALSE(floc_computation_in_progress());
   EXPECT_TRUE(floc_computation_scheduled());
-  EXPECT_EQ(base::Time::Now() + base::TimeDelta::FromDays(7),
+  EXPECT_EQ(base::Time::Now() + base::Days(7),
             floc_id_provider_->GetApproximateNextComputeTime());
   EXPECT_EQ(1u, floc_id_provider_->compute_floc_completed_count());
   EXPECT_EQ(1u, floc_id_provider_->log_event_count());
 
   // Advance the clock by 7 days. Expect another computation.
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(7));
+  task_environment_.FastForwardBy(base::Days(7));
 
   EXPECT_FALSE(floc_computation_in_progress());
   EXPECT_TRUE(floc_computation_scheduled());
@@ -347,8 +347,7 @@
 }
 
 TEST_F(FlocIdProviderUnitTest, DefaultSetup_BelowMinimumHistoryDomainSize) {
-  const base::Time kSevenDaysBeforeStart =
-      base::Time::Now() - base::TimeDelta::FromDays(7);
+  const base::Time kSevenDaysBeforeStart = base::Time::Now() - base::Days(7);
 
   AddHistoryEntriesForDomains({"foo.com", "bar.com"}, kSevenDaysBeforeStart);
 
@@ -367,8 +366,7 @@
 }
 
 TEST_F(FlocIdProviderUnitTest, DefaultSetup_MinimumHistoryDomainSize) {
-  const base::Time kSevenDaysBeforeStart =
-      base::Time::Now() - base::TimeDelta::FromDays(7);
+  const base::Time kSevenDaysBeforeStart = base::Time::Now() - base::Days(7);
 
   AddHistoryEntriesForDomains({"foo.com", "bar.com", "baz.com"},
                               kSevenDaysBeforeStart);
@@ -388,8 +386,7 @@
 }
 
 TEST_F(FlocIdProviderUnitTest, DefaultSetup_ScheduledUpdateInterval) {
-  const base::Time kSevenDaysBeforeStart =
-      base::Time::Now() - base::TimeDelta::FromDays(7);
+  const base::Time kSevenDaysBeforeStart = base::Time::Now() - base::Days(7);
 
   AddHistoryEntriesForDomains({"foo.com", "bar.com", "baz.com"},
                               kSevenDaysBeforeStart);
@@ -410,7 +407,7 @@
   EXPECT_TRUE(floc_computation_scheduled());
 
   // Advance the clock by 6 days.
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(6));
+  task_environment_.FastForwardBy(base::Days(6));
 
   // Add 3 history entries with a new set of domains.
   const base::Time kSixDaysAfterStart = base::Time::Now();
@@ -421,13 +418,13 @@
 
   // Advance the clock by 23 hours. Expect no more computation, as the floc id
   // refresh interval is 7 days.
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(23));
+  task_environment_.FastForwardBy(base::Hours(23));
 
   EXPECT_EQ(1u, floc_id_provider_->compute_floc_completed_count());
   EXPECT_EQ(1u, floc_id_provider_->log_event_count());
 
   // Advance the clock by 1 hour. Expect one more computation.
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
 
   EXPECT_EQ(2u, floc_id_provider_->compute_floc_completed_count());
   EXPECT_EQ(2u, floc_id_provider_->log_event_count());
@@ -451,7 +448,7 @@
 };
 
 TEST_F(FlocIdProviderSimpleFeatureParamUnitTest, QualifiedInitialHistory) {
-  const base::Time kTime = base::Time::Now() - base::TimeDelta::FromDays(7);
+  const base::Time kTime = base::Time::Now() - base::Days(7);
 
   AddHistoryEntriesForDomains({"foo.com"}, kTime);
 
@@ -476,7 +473,7 @@
 
   // Advance the clock by 1 day. Expect a computation, as there's no history in
   // the last 7 days so the id has been reset to empty.
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
 
   EXPECT_EQ(2u, floc_id_provider_->compute_floc_completed_count());
   EXPECT_EQ(2u, floc_id_provider_->log_event_count());
@@ -486,8 +483,7 @@
 }
 
 TEST_F(FlocIdProviderSimpleFeatureParamUnitTest, UnqualifiedInitialHistory) {
-  AddHistoryEntriesForDomains({"foo.com"},
-                              base::Time::Now() - base::TimeDelta::FromDays(8));
+  AddHistoryEntriesForDomains({"foo.com"}, base::Time::Now() - base::Days(8));
 
   // Initializing the floc provider and sorting-lsh service should trigger the
   // 1st floc computation.
@@ -500,19 +496,19 @@
   EXPECT_FALSE(floc_computation_in_progress());
   EXPECT_TRUE(floc_computation_scheduled());
 
-  const base::Time kTime = base::Time::Now() - base::TimeDelta::FromDays(6);
+  const base::Time kTime = base::Time::Now() - base::Days(6);
   AddHistoryEntriesForDomains({"foo.com"}, kTime);
 
   // Advance the clock by 23 hours. Expect no more computation, as the id
   // refresh interval is 24 hours.
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(23));
+  task_environment_.FastForwardBy(base::Hours(23));
 
   EXPECT_EQ(1u, floc_id_provider_->compute_floc_completed_count());
   EXPECT_EQ(1u, floc_id_provider_->log_event_count());
 
   // Advance the clock by 1 hour. Expect one more computation, as the refresh
   // time is reached and there's a valid history entry in the last 7 days.
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
 
   EXPECT_EQ(2u, floc_id_provider_->compute_floc_completed_count());
   EXPECT_EQ(2u, floc_id_provider_->log_event_count());
@@ -525,10 +521,8 @@
 TEST_F(FlocIdProviderSimpleFeatureParamUnitTest,
        HistoryQueryBoundedByFlocAccessibleSince) {
   const base::Time kStartTime = base::Time::Now();
-  const base::Time kSevenDaysBeforeStart =
-      kStartTime - base::TimeDelta::FromDays(7);
-  const base::Time kSixDaysBeforeStart =
-      kStartTime - base::TimeDelta::FromDays(6);
+  const base::Time kSevenDaysBeforeStart = kStartTime - base::Days(7);
+  const base::Time kSixDaysBeforeStart = kStartTime - base::Days(6);
 
   prefs_.SetTime(prefs::kPrivacySandboxFlocDataAccessibleSince,
                  kSixDaysBeforeStart);
@@ -556,12 +550,9 @@
 TEST_F(FlocIdProviderSimpleFeatureParamUnitTest,
        FlocAccessibleSinceViolationOnStartup) {
   const base::Time kStartTime = base::Time::Now();
-  const base::Time kSevenDaysBeforeStart =
-      kStartTime - base::TimeDelta::FromDays(7);
-  const base::Time kSixDaysBeforeStart =
-      kStartTime - base::TimeDelta::FromDays(6);
-  const base::Time kTwelveHoursBeforeStart =
-      kStartTime - base::TimeDelta::FromHours(12);
+  const base::Time kSevenDaysBeforeStart = kStartTime - base::Days(7);
+  const base::Time kSixDaysBeforeStart = kStartTime - base::Days(6);
+  const base::Time kTwelveHoursBeforeStart = kStartTime - base::Hours(12);
 
   FlocId floc_id_in_prefs_before_start =
       FlocIdTester::Create(123, FlocId::Status::kValid, kSevenDaysBeforeStart,
@@ -589,7 +580,7 @@
             FlocId::ReadFromPrefs(&prefs_).status());
 
   // Fast forward by 12 hours. This should trigger a scheduled update.
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(12));
+  task_environment_.FastForwardBy(base::Hours(12));
 
   // Expect a completed computation and an update to the local prefs.
   EXPECT_EQ(1u, floc_id_provider_->compute_floc_completed_count());
@@ -606,10 +597,8 @@
 TEST_F(FlocIdProviderSimpleFeatureParamUnitTest,
        HistoryDeleteAndScheduledUpdate) {
   const base::Time kStartTime = base::Time::Now();
-  const base::Time kSevenDaysBeforeStart =
-      kStartTime - base::TimeDelta::FromDays(7);
-  const base::Time kSixDaysBeforeStart =
-      kStartTime - base::TimeDelta::FromDays(6);
+  const base::Time kSevenDaysBeforeStart = kStartTime - base::Days(7);
+  const base::Time kSixDaysBeforeStart = kStartTime - base::Days(6);
 
   AddHistoryEntriesForDomains({"foo.com"}, kSevenDaysBeforeStart);
   AddHistoryEntriesForDomains({"bar.com"}, kSixDaysBeforeStart);
@@ -627,7 +616,7 @@
             floc_id());
 
   // Advance the clock by 12 hours. Expect no more computation.
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(12));
+  task_environment_.FastForwardBy(base::Hours(12));
   EXPECT_EQ(1u, floc_id_provider_->compute_floc_completed_count());
   EXPECT_EQ(1u, floc_id_provider_->log_event_count());
 
@@ -645,7 +634,7 @@
   // Advance the clock by 12 hours. Expect one more computation, which implies
   // the timer didn't get reset due to the history invalidation. Expect that
   // the floc is derived from "bar.com".
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(12));
+  task_environment_.FastForwardBy(base::Hours(12));
   EXPECT_EQ(2u, floc_id_provider_->compute_floc_completed_count());
   EXPECT_EQ(3u, floc_id_provider_->log_event_count());
   EXPECT_EQ(FlocId::CreateValid(FlocId::SimHashHistory({"bar.com"}),
@@ -654,7 +643,7 @@
 }
 
 TEST_F(FlocIdProviderSimpleFeatureParamUnitTest, ScheduledUpdateSameFloc) {
-  const base::Time kTime = base::Time::Now() - base::TimeDelta::FromDays(2);
+  const base::Time kTime = base::Time::Now() - base::Days(2);
 
   AddHistoryEntriesForDomains({"foo.com"}, kTime);
 
@@ -672,7 +661,7 @@
 
   // Advance the clock by 1 day. Expect one more computation, but the floc
   // didn't change.
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
 
   EXPECT_EQ(2u, floc_id_provider_->compute_floc_completed_count());
   EXPECT_EQ(2u, floc_id_provider_->log_event_count());
@@ -764,40 +753,40 @@
   task_environment_.RunUntilIdle();
   EXPECT_EQ(1u, floc_id_provider_->compute_floc_completed_count());
   EXPECT_EQ(base::Time::Now(), FlocId::ReadFromPrefs(&prefs_).compute_time());
-  EXPECT_EQ(base::Time::Now() + base::TimeDelta::FromDays(1),
+  EXPECT_EQ(base::Time::Now() + base::Days(1),
             floc_id_provider_->GetApproximateNextComputeTime());
 
   // Move the clock forward 20 hours and update the floc available time,
   // selecting to reset the compute timer.
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(20));
+  task_environment_.FastForwardBy(base::Hours(20));
   OnFlocDataAccessibleSinceUpdated(/*reset_compute_timer=*/true);
   const base::Time kResetComputeTime = base::Time::Now();
   EXPECT_EQ(kResetComputeTime, FlocId::ReadFromPrefs(&prefs_).compute_time());
-  EXPECT_EQ(base::Time::Now() + base::TimeDelta::FromDays(1),
+  EXPECT_EQ(base::Time::Now() + base::Days(1),
             floc_id_provider_->GetApproximateNextComputeTime());
 
   // Move the clock forward another 20 hours, moving past the default refresh
   // interval of 24 hours. A new floc id should not have been computed as the
   // timer was reset.
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(20));
+  task_environment_.FastForwardBy(base::Hours(20));
   task_environment_.RunUntilIdle();
   EXPECT_EQ(1u, floc_id_provider_->compute_floc_completed_count());
-  EXPECT_EQ(base::Time::Now() + base::TimeDelta::FromHours(4),
+  EXPECT_EQ(base::Time::Now() + base::Hours(4),
             floc_id_provider_->GetApproximateNextComputeTime());
 
   // Update the floc available time without resetting compute time.
   OnFlocDataAccessibleSinceUpdated(
       /*reset_compute_timer=*/false);
   EXPECT_EQ(kResetComputeTime, FlocId::ReadFromPrefs(&prefs_).compute_time());
-  EXPECT_EQ(base::Time::Now() + base::TimeDelta::FromHours(4),
+  EXPECT_EQ(base::Time::Now() + base::Hours(4),
             floc_id_provider_->GetApproximateNextComputeTime());
 
   // Move the clock forward 5 hours, making 25 hours since the compute timer was
   // reset, a new floc id should have been computed.
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(5));
+  task_environment_.FastForwardBy(base::Hours(5));
   task_environment_.RunUntilIdle();
   EXPECT_EQ(2u, floc_id_provider_->compute_floc_completed_count());
-  EXPECT_EQ(base::Time::Now() + base::TimeDelta::FromHours(23),
+  EXPECT_EQ(base::Time::Now() + base::Hours(23),
             floc_id_provider_->GetApproximateNextComputeTime());
 }
 
@@ -928,9 +917,8 @@
   task_environment_.RunUntilIdle();
 
   history::QueryResults query_results;
-  query_results.SetURLResults(
-      {history::URLResult(GURL("https://a.test"),
-                          base::Time::Now() - base::TimeDelta::FromDays(1))});
+  query_results.SetURLResults({history::URLResult(
+      GURL("https://a.test"), base::Time::Now() - base::Days(1))});
 
   set_floc_computation_in_progress(true);
 
@@ -1077,7 +1065,7 @@
   InitializeFlocIdProviderAndSortingLsh(base::Version("999.0.0"));
   task_environment_.RunUntilIdle();
 
-  const base::Time kTime = base::Time::Now() - base::TimeDelta::FromDays(1);
+  const base::Time kTime = base::Time::Now() - base::Days(1);
   set_floc_id(FlocId::CreateValid(123, kTime, kTime, 999));
 
   mojom::WebUIFlocStatusPtr status = floc_id_provider_->GetFlocStatusForWebUi();
@@ -1090,8 +1078,7 @@
       false);
   EXPECT_EQ(status->feature_interest_cohort_api_origin_trial, false);
   EXPECT_EQ(status->feature_interest_cohort_feature_policy, false);
-  EXPECT_EQ(status->feature_param_scheduled_update_interval,
-            base::TimeDelta::FromDays(1));
+  EXPECT_EQ(status->feature_param_scheduled_update_interval, base::Days(1));
   EXPECT_EQ(status->feature_param_minimum_history_domain_size_required, 1);
   EXPECT_EQ(status->feature_param_finch_config_version, 1);
 }
@@ -1101,7 +1088,7 @@
   InitializeFlocIdProviderAndSortingLsh(base::Version("999.0.0"));
   task_environment_.RunUntilIdle();
 
-  const base::Time kTime = base::Time::Now() - base::TimeDelta::FromDays(1);
+  const base::Time kTime = base::Time::Now() - base::Days(1);
   const FlocId expected_floc = FlocId::CreateValid(123, kTime, kTime, 999);
 
   set_floc_id(expected_floc);
@@ -1118,7 +1105,7 @@
 
   privacy_sandbox_settings_->SetPrivacySandboxEnabled(false);
 
-  const base::Time kTime = base::Time::Now() - base::TimeDelta::FromDays(1);
+  const base::Time kTime = base::Time::Now() - base::Days(1);
 
   set_floc_id(FlocId::CreateValid(123, kTime, kTime, 999));
 
@@ -1140,12 +1127,9 @@
 TEST_F(FlocIdProviderSimpleFeatureParamUnitTest,
        HistoryDeleteDuringInProgressComputation) {
   const base::Time kStartTime = base::Time::Now();
-  const base::Time kSevenDaysBeforeStart =
-      kStartTime - base::TimeDelta::FromDays(7);
-  const base::Time kSixDaysBeforeStart =
-      kStartTime - base::TimeDelta::FromDays(6);
-  const base::Time kFiveDaysBeforeStart =
-      kStartTime - base::TimeDelta::FromDays(5);
+  const base::Time kSevenDaysBeforeStart = kStartTime - base::Days(7);
+  const base::Time kSixDaysBeforeStart = kStartTime - base::Days(6);
+  const base::Time kFiveDaysBeforeStart = kStartTime - base::Days(5);
 
   AddHistoryEntriesForDomains({"foo.com"}, kSevenDaysBeforeStart);
   AddHistoryEntriesForDomains({"bar.com"}, kSixDaysBeforeStart);
@@ -1170,7 +1154,7 @@
   // Advance the clock by 1 day. The "foo.com" should expire. However, we pause
   // before the computation completes.
   floc_id_provider_->set_should_pause_before_compute_floc_completed(true);
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
 
   EXPECT_TRUE(floc_computation_in_progress());
   EXPECT_EQ(base::Time::Now(),
@@ -1203,7 +1187,7 @@
   EXPECT_EQ(3u, floc_id_provider_->compute_floc_completed_count());
   EXPECT_EQ(2u, floc_id_provider_->log_event_count());
   EXPECT_FALSE(need_recompute());
-  EXPECT_EQ(base::Time::Now() + base::TimeDelta::FromDays(1),
+  EXPECT_EQ(base::Time::Now() + base::Days(1),
             floc_id_provider_->GetApproximateNextComputeTime());
 
   // The final floc should be derived from "baz.com".
@@ -1215,7 +1199,7 @@
 }
 
 TEST_F(FlocIdProviderSimpleFeatureParamUnitTest, NonDefaultSortingLshMapping) {
-  const base::Time kTime = base::Time::Now() - base::TimeDelta::FromDays(7);
+  const base::Time kTime = base::Time::Now() - base::Days(7);
 
   AddHistoryEntriesForDomains({"foo.com"}, kTime);
 
@@ -1234,7 +1218,7 @@
 
 TEST_F(FlocIdProviderSimpleFeatureParamUnitTest,
        NonDefaultSortingLshMapping_Blocked) {
-  const base::Time kTime = base::Time::Now() - base::TimeDelta::FromDays(7);
+  const base::Time kTime = base::Time::Now() - base::Days(7);
 
   AddHistoryEntriesForDomains({"foo.com"}, kTime);
 
@@ -1251,7 +1235,7 @@
 }
 
 TEST_F(FlocIdProviderSimpleFeatureParamUnitTest, MultipleSortingLshUpdate) {
-  const base::Time kTime = base::Time::Now() - base::TimeDelta::FromDays(1);
+  const base::Time kTime = base::Time::Now() - base::Days(1);
 
   AddHistoryEntriesForDomains({"foo.com"}, kTime);
 
@@ -1273,7 +1257,7 @@
         return absl::optional<uint64_t>();
       }));
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
 
   // Expect one more computation, where the result contains a valid sim_hash and
   // an invalid floc_id, as it was blocked. The internal floc is set to the
@@ -1295,7 +1279,7 @@
         return absl::optional<uint64_t>();
       }));
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
 
   // Expect one more computation. The floc should be equal to 6789.
   EXPECT_EQ(3u, floc_id_provider_->compute_floc_completed_count());
@@ -1307,12 +1291,9 @@
        LastFlocUnexpired_NextScheduledUpdate) {
   // Setups before session start.
   const base::Time kStartTime = base::Time::Now();
-  const base::Time kFourDaysBeforeStart =
-      kStartTime - base::TimeDelta::FromDays(4);
-  const base::Time kThreeDaysBeforeStart =
-      kStartTime - base::TimeDelta::FromDays(3);
-  const base::Time kLastComputeTime =
-      kStartTime - base::TimeDelta::FromHours(12);
+  const base::Time kFourDaysBeforeStart = kStartTime - base::Days(4);
+  const base::Time kThreeDaysBeforeStart = kStartTime - base::Days(3);
+  const base::Time kLastComputeTime = kStartTime - base::Hours(12);
 
   FlocId floc_id_in_prefs_before_start =
       FlocIdTester::Create(123, FlocId::Status::kValid, kFourDaysBeforeStart,
@@ -1343,7 +1324,7 @@
   sorting_lsh_service_->ConfigureSortingLsh(base::Version("99.0"));
 
   // Fast forward by 12 hours. This should trigger a scheduled update.
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(12));
+  task_environment_.FastForwardBy(base::Hours(12));
 
   // Expect a completed computation and an update to the local prefs.
   EXPECT_EQ(1u, floc_id_provider_->compute_floc_completed_count());
@@ -1359,12 +1340,9 @@
        LastFlocUnexpired_HistoryDelete) {
   // Setups before session start.
   const base::Time kStartTime = base::Time::Now();
-  const base::Time kFourDaysBeforeStart =
-      kStartTime - base::TimeDelta::FromDays(4);
-  const base::Time kThreeDaysBeforeStart =
-      kStartTime - base::TimeDelta::FromDays(3);
-  const base::Time kLastComputeTime =
-      kStartTime - base::TimeDelta::FromHours(12);
+  const base::Time kFourDaysBeforeStart = kStartTime - base::Days(4);
+  const base::Time kThreeDaysBeforeStart = kStartTime - base::Days(3);
+  const base::Time kLastComputeTime = kStartTime - base::Hours(12);
 
   FlocId floc_id_in_prefs_before_start =
       FlocIdTester::Create(123, FlocId::Status::kValid, kFourDaysBeforeStart,
@@ -1404,14 +1382,10 @@
        LastFlocExpired_ImmediateCompute) {
   // Setups before session start.
   const base::Time kStartTime = base::Time::Now();
-  const base::Time kTwentyDaysBeforeStart =
-      kStartTime - base::TimeDelta::FromDays(20);
-  const base::Time kNineteenDaysBeforeStart =
-      kStartTime - base::TimeDelta::FromDays(19);
-  const base::Time kTwoDaysBeforeStart =
-      kStartTime - base::TimeDelta::FromDays(2);
-  const base::Time kLastComputeTime =
-      kStartTime - base::TimeDelta::FromHours(25);
+  const base::Time kTwentyDaysBeforeStart = kStartTime - base::Days(20);
+  const base::Time kNineteenDaysBeforeStart = kStartTime - base::Days(19);
+  const base::Time kTwoDaysBeforeStart = kStartTime - base::Days(2);
+  const base::Time kLastComputeTime = kStartTime - base::Hours(25);
 
   FlocId floc_id_in_prefs_before_start =
       FlocIdTester::Create(123, FlocId::Status::kValid, kTwentyDaysBeforeStart,
@@ -1456,13 +1430,10 @@
        NextComputeDelayTooBig_ImmediateCompute) {
   // Setups before session start.
   const base::Time kStartTime = base::Time::Now();
-  const base::Time kFourDaysBeforeStart =
-      kStartTime - base::TimeDelta::FromDays(4);
-  const base::Time kThreeDaysBeforeStart =
-      kStartTime - base::TimeDelta::FromDays(3);
-  const base::Time kTwoDaysBeforeStart =
-      kStartTime - base::TimeDelta::FromDays(2);
-  const base::Time kLastComputeTime = kStartTime + base::TimeDelta::FromDays(1);
+  const base::Time kFourDaysBeforeStart = kStartTime - base::Days(4);
+  const base::Time kThreeDaysBeforeStart = kStartTime - base::Days(3);
+  const base::Time kTwoDaysBeforeStart = kStartTime - base::Days(2);
+  const base::Time kLastComputeTime = kStartTime + base::Days(1);
 
   // Configure the last compute time to be 1 day after the start time, that
   // emulates the situation when the machine time has changed.
@@ -1498,7 +1469,7 @@
   task_environment_.RunUntilIdle();
   EXPECT_FALSE(floc_computation_in_progress());
   EXPECT_TRUE(floc_computation_scheduled());
-  EXPECT_EQ(base::Time::Now() + base::TimeDelta::FromDays(1),
+  EXPECT_EQ(base::Time::Now() + base::Days(1),
             floc_id_provider_->GetApproximateNextComputeTime());
 
   // Expect a completed computation and an update to the local prefs.
@@ -1513,14 +1484,10 @@
        LastFlocVersionMismatch_ImmediateCompute) {
   // Setups before session start.
   const base::Time kStartTime = base::Time::Now();
-  const base::Time kFourDaysBeforeStart =
-      kStartTime - base::TimeDelta::FromDays(4);
-  const base::Time kThreeDaysBeforeStart =
-      kStartTime - base::TimeDelta::FromDays(3);
-  const base::Time kTwoDaysBeforeStart =
-      kStartTime - base::TimeDelta::FromDays(2);
-  const base::Time kLastComputeTime =
-      kStartTime - base::TimeDelta::FromHours(12);
+  const base::Time kFourDaysBeforeStart = kStartTime - base::Days(4);
+  const base::Time kThreeDaysBeforeStart = kStartTime - base::Days(3);
+  const base::Time kTwoDaysBeforeStart = kStartTime - base::Days(2);
+  const base::Time kLastComputeTime = kStartTime - base::Hours(12);
 
   // Configure a floc with version finch_config_version 0, that is different
   // from the current version 1.
@@ -1554,7 +1521,7 @@
   task_environment_.RunUntilIdle();
   EXPECT_FALSE(floc_computation_in_progress());
   EXPECT_TRUE(floc_computation_scheduled());
-  EXPECT_EQ(base::Time::Now() + base::TimeDelta::FromDays(1),
+  EXPECT_EQ(base::Time::Now() + base::Days(1),
             floc_id_provider_->GetApproximateNextComputeTime());
 
   // Expect a completed computation and an update to the local prefs.
@@ -1570,12 +1537,9 @@
 TEST_F(FlocIdProviderSimpleFeatureParamUnitTest,
        UnexpiredComputeTimeAndNoStatusPrefs) {
   const base::Time kStartTime = base::Time::Now();
-  const base::Time kFourDaysBeforeStart =
-      kStartTime - base::TimeDelta::FromDays(4);
-  const base::Time kThreeDaysBeforeStart =
-      kStartTime - base::TimeDelta::FromDays(3);
-  const base::Time kLastComputeTime =
-      kStartTime - base::TimeDelta::FromHours(12);
+  const base::Time kFourDaysBeforeStart = kStartTime - base::Days(4);
+  const base::Time kThreeDaysBeforeStart = kStartTime - base::Days(3);
+  const base::Time kLastComputeTime = kStartTime - base::Hours(12);
 
   FlocId floc_id_in_prefs_before_start = FlocIdTester::Create(
       0, FlocId::Status::kInvalidNoStatusPrefs, kFourDaysBeforeStart,
@@ -1596,7 +1560,7 @@
   EXPECT_FALSE(prefs_.HasPrefPath(kFlocIdStatusPrefKey));
   EXPECT_FALSE(floc_computation_in_progress());
   EXPECT_TRUE(floc_computation_scheduled());
-  EXPECT_EQ(kLastComputeTime + base::TimeDelta::FromDays(1),
+  EXPECT_EQ(kLastComputeTime + base::Days(1),
             floc_id_provider_->GetApproximateNextComputeTime());
   EXPECT_EQ(0u, floc_id_provider_->compute_floc_completed_count());
 }
diff --git a/chrome/browser/federated_learning/floc_internals_browsertest.cc b/chrome/browser/federated_learning/floc_internals_browsertest.cc
index ff6f7d65..16cb7da 100644
--- a/chrome/browser/federated_learning/floc_internals_browsertest.cc
+++ b/chrome/browser/federated_learning/floc_internals_browsertest.cc
@@ -147,7 +147,7 @@
   status->feature_interest_cohort_api_origin_trial = false;
   status->feature_interest_cohort_feature_policy = true;
   status->feature_param_scheduled_update_interval =
-      base::TimeDelta::FromDays(7) + base::TimeDelta::FromSeconds(1);
+      base::Days(7) + base::Seconds(1);
   status->feature_param_minimum_history_domain_size_required = 99;
   status->feature_param_finch_config_version = 2;
 
diff --git a/chrome/browser/feedback/system_logs/log_sources/crash_ids_source.cc b/chrome/browser/feedback/system_logs/log_sources/crash_ids_source.cc
index ac5b3f1..dd9dfb2 100644
--- a/chrome/browser/feedback/system_logs/log_sources/crash_ids_source.cc
+++ b/chrome/browser/feedback/system_logs/log_sources/crash_ids_source.cc
@@ -33,10 +33,10 @@
 constexpr size_t kCrashIdStringSize = 16;
 
 // For recent crashes, which is for all reports, look back one hour.
-constexpr base::TimeDelta kOneHourTimeDelta = base::TimeDelta::FromHours(1);
+constexpr base::TimeDelta kOneHourTimeDelta = base::Hours(1);
 
 // For all crashes, which is for only @google.com reports, look back 120 days.
-constexpr base::TimeDelta k120DaysTimeDelta = base::TimeDelta::FromDays(120);
+constexpr base::TimeDelta k120DaysTimeDelta = base::Days(120);
 
 }  // namespace
 
diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
index da95ebc..132f3754 100644
--- a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
+++ b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
@@ -73,13 +73,11 @@
 // This long after the last top-level tab or window for an origin is closed (or
 // is navigated to another origin), all the permissions for that origin will be
 // revoked.
-constexpr base::TimeDelta kPermissionRevocationTimeout =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kPermissionRevocationTimeout = base::Seconds(5);
 
 // Interval at which to periodically sweep persisted permissions to revoke
 // expired grants and renew those with corresponding active grants.
-constexpr base::TimeDelta kPersistentPermissionSweepInterval =
-    base::TimeDelta::FromHours(3);
+constexpr base::TimeDelta kPersistentPermissionSweepInterval = base::Hours(3);
 
 // Dictionary keys for the FILE_SYSTEM_ACCESS_CHOOSER_DATA setting.
 const char kPermissionPathKey[] = "path";
@@ -1588,8 +1586,8 @@
     base::UmaHistogramCustomTimes(
         base::StrCat({"Storage.FileSystemAccess.PersistedPermissions.Age.",
                       is_installed_pwa ? "PWA" : "NonPWA"}),
-        clock_->Now() - last_activity_time, base::TimeDelta::FromSeconds(1),
-        base::TimeDelta::FromDays(24), 60);
+        clock_->Now() - last_activity_time, base::Seconds(1), base::Days(24),
+        60);
   }
 
   return !PersistentPermissionIsExpired(last_activity_time, is_installed_pwa);
diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.h b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.h
index 20ded19..8403a8d 100644
--- a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.h
+++ b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.h
@@ -159,14 +159,13 @@
   // This long after the handle has last been used, revoke the persisted
   // permission.
   static constexpr base::TimeDelta
-      kPersistentPermissionExpirationTimeoutNonPWA =
-          base::TimeDelta::FromHours(5);
+      kPersistentPermissionExpirationTimeoutNonPWA = base::Hours(5);
   static constexpr base::TimeDelta kPersistentPermissionExpirationTimeoutPWA =
-      base::TimeDelta::FromDays(30);
+      base::Days(30);
   // Amount of time a persisted permission will remain persisted after its
   // expiry. Used for metrics.
   static constexpr base::TimeDelta kPersistentPermissionGracePeriod =
-      base::TimeDelta::FromDays(1);
+      base::Days(1);
 
  protected:
   SEQUENCE_CHECKER(sequence_checker_);
diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permission_context_unittest.cc b/chrome/browser/file_system_access/chrome_file_system_access_permission_context_unittest.cc
index fbfa2a8..b4066e9 100644
--- a/chrome/browser/file_system_access/chrome_file_system_access_permission_context_unittest.cc
+++ b/chrome/browser/file_system_access/chrome_file_system_access_permission_context_unittest.cc
@@ -564,13 +564,13 @@
   // Set the maximum number of IDs. Only set IDs should return non-empty paths.
   permission_context()->SetLastPickedDirectory(kTestOrigin, id1, path1,
                                                PathType::kLocal);
-  Advance(base::TimeDelta::FromMinutes(1));
+  Advance(base::Minutes(1));
   permission_context()->SetLastPickedDirectory(kTestOrigin, id2, path2,
                                                PathType::kLocal);
-  Advance(base::TimeDelta::FromMinutes(1));
+  Advance(base::Minutes(1));
   permission_context()->SetLastPickedDirectory(kTestOrigin, id3, path3,
                                                PathType::kLocal);
-  Advance(base::TimeDelta::FromMinutes(1));
+  Advance(base::Minutes(1));
   EXPECT_EQ(permission_context()->GetLastPickedDirectory(kTestOrigin, id1).path,
             path1);
   EXPECT_EQ(permission_context()->GetLastPickedDirectory(kTestOrigin, id2).path,
@@ -583,7 +583,7 @@
   // Once the 4th id has been set, only `id1` should have been evicted.
   permission_context()->SetLastPickedDirectory(kTestOrigin, id4, path4,
                                                PathType::kLocal);
-  Advance(base::TimeDelta::FromMinutes(1));
+  Advance(base::Minutes(1));
   EXPECT_EQ(permission_context()->GetLastPickedDirectory(kTestOrigin, id1).path,
             base::FilePath());  // Unset.
   EXPECT_EQ(permission_context()->GetLastPickedDirectory(kTestOrigin, id2).path,
@@ -596,7 +596,7 @@
   // Re-set `id1`, evicting `id2`.
   permission_context()->SetLastPickedDirectory(kTestOrigin, id1, path1,
                                                PathType::kLocal);
-  Advance(base::TimeDelta::FromMinutes(1));
+  Advance(base::Minutes(1));
   EXPECT_EQ(permission_context()->GetLastPickedDirectory(kTestOrigin, id1).path,
             path1);
   EXPECT_EQ(permission_context()->GetLastPickedDirectory(kTestOrigin, id2).path,
@@ -810,7 +810,7 @@
         loop.Quit();
       }));
   loop.Run();
-  ExpectUmaEntryPersistedPermissionAge(base::TimeDelta::FromSeconds(0), 1);
+  ExpectUmaEntryPersistedPermissionAge(base::Seconds(0), 1);
   EXPECT_EQ(PermissionStatus::GRANTED, grant->GetStatus());
 }
 
@@ -1086,7 +1086,7 @@
       }));
   loop2.Run();
   // Age should not be recorded if granted via an ancestor's permission.
-  ExpectUmaEntryPersistedPermissionAge(base::TimeDelta::FromSeconds(0), 0);
+  ExpectUmaEntryPersistedPermissionAge(base::Seconds(0), 0);
   EXPECT_EQ(PermissionStatus::GRANTED, file_grant->GetStatus());
   EXPECT_TRUE(permission_context()->HasPersistedPermissionForTesting(
       kTestOrigin, file_path, HandleType::kFile, GrantType::kRead));
@@ -1132,7 +1132,7 @@
       }));
   loop2.Run();
   // Age should not be recorded if granted via an ancestor's permission.
-  ExpectUmaEntryPersistedPermissionAge(base::TimeDelta::FromSeconds(0), 0);
+  ExpectUmaEntryPersistedPermissionAge(base::Seconds(0), 0);
   EXPECT_EQ(PermissionStatus::GRANTED, file_grant->GetStatus());
   EXPECT_TRUE(permission_context()->HasPersistedPermissionForTesting(
       kTestOrigin, file_path, HandleType::kFile, GrantType::kWrite));
@@ -1193,7 +1193,7 @@
   // Advance the clock far enough that all permissions should be expired.
   Advance(ChromeFileSystemAccessPermissionContext::
               kPersistentPermissionExpirationTimeoutNonPWA +
-          base::TimeDelta::FromMinutes(1));
+          base::Minutes(1));
 
   // Permission should not be granted for |kOpen|.
   grant = permission_context()->GetWritePermissionGrant(
@@ -1262,7 +1262,7 @@
 
   Advance(ChromeFileSystemAccessPermissionContext::
               kPersistentPermissionExpirationTimeoutNonPWA +
-          base::TimeDelta::FromSeconds(1));
+          base::Seconds(1));
   auto advance_once = Now();
   // The active grant exists, so its timestamp should have been updated.
   permission_context()->UpdatePersistedPermissionsForTesting();
@@ -1277,7 +1277,7 @@
   // should NOT have been updated, since the active permission no longer exists.
   Advance(ChromeFileSystemAccessPermissionContext::
               kPersistentPermissionExpirationTimeoutNonPWA -
-          base::TimeDelta::FromSeconds(1));
+          base::Seconds(1));
   permission_context()->UpdatePersistedPermissionsForTesting();
   objects = permission_context()->GetAllGrantedOrExpiredObjects();
   ASSERT_EQ(objects.size(), 1u);
@@ -1287,7 +1287,7 @@
   // |grant| should now be expired, but not revokable until after grace period.
   Advance(ChromeFileSystemAccessPermissionContext::
               kPersistentPermissionExpirationTimeoutNonPWA +
-          base::TimeDelta::FromSeconds(1));
+          base::Seconds(1));
   permission_context()->UpdatePersistedPermissionsForTesting();
   objects = permission_context()->GetAllGrantedOrExpiredObjects();
   EXPECT_EQ(objects.size(), 1u);
@@ -1301,7 +1301,7 @@
 
   Advance(ChromeFileSystemAccessPermissionContext::
               kPersistentPermissionGracePeriod +
-          base::TimeDelta::FromSeconds(1));
+          base::Seconds(1));
   permission_context()->UpdatePersistedPermissionsForTesting();
   objects = permission_context()->GetAllGrantedOrExpiredObjects();
   EXPECT_EQ(objects.size(), 0u);
@@ -1317,7 +1317,7 @@
 
   Advance(ChromeFileSystemAccessPermissionContext::
               kPersistentPermissionExpirationTimeoutNonPWA +
-          base::TimeDelta::FromSeconds(1));
+          base::Seconds(1));
   auto advance_once = Now();
   // The active grant exists, so its timestamp should have been updated.
   permission_context()->UpdatePersistedPermissionsForTesting();
@@ -1332,7 +1332,7 @@
   // should NOT have been updated, since the active permission no longer exists.
   Advance(ChromeFileSystemAccessPermissionContext::
               kPersistentPermissionExpirationTimeoutNonPWA -
-          base::TimeDelta::FromSeconds(1));
+          base::Seconds(1));
   permission_context()->UpdatePersistedPermissionsForTesting();
   objects = permission_context()->GetAllGrantedOrExpiredObjects();
   ASSERT_EQ(objects.size(), 1u);
@@ -1342,7 +1342,7 @@
   // |grant| should now be expired, but not revokable until after grace period.
   Advance(ChromeFileSystemAccessPermissionContext::
               kPersistentPermissionExpirationTimeoutNonPWA +
-          base::TimeDelta::FromSeconds(1));
+          base::Seconds(1));
   permission_context()->UpdatePersistedPermissionsForTesting();
   objects = permission_context()->GetAllGrantedOrExpiredObjects();
   EXPECT_EQ(objects.size(), 1u);
@@ -1356,7 +1356,7 @@
 
   Advance(ChromeFileSystemAccessPermissionContext::
               kPersistentPermissionGracePeriod +
-          base::TimeDelta::FromSeconds(1));
+          base::Seconds(1));
   permission_context()->UpdatePersistedPermissionsForTesting();
   objects = permission_context()->GetAllGrantedOrExpiredObjects();
   EXPECT_EQ(objects.size(), 0u);
@@ -1383,7 +1383,7 @@
 
   Advance(ChromeFileSystemAccessPermissionContext::
               kPersistentPermissionExpirationTimeoutNonPWA -
-          base::TimeDelta::FromSeconds(1));
+          base::Seconds(1));
 
   // Both grants are still valid.
   permission_context()->UpdatePersistedPermissionsForTesting();
@@ -1407,7 +1407,7 @@
   EXPECT_EQ(PermissionStatus::GRANTED, grant2->GetStatus());
 
   // |grant1| should now be expired, but not revoked.
-  Advance(base::TimeDelta::FromSeconds(2));
+  Advance(base::Seconds(2));
   EXPECT_FALSE(permission_context()->HasPersistedPermissionForTesting(
       kTestOrigin, kTestPath, HandleType::kFile, GrantType::kWrite));
   objects = permission_context()->GetAllGrantedOrExpiredObjects();
@@ -1462,7 +1462,7 @@
 
   Advance(ChromeFileSystemAccessPermissionContext::
               kPersistentPermissionExpirationTimeoutNonPWA -
-          base::TimeDelta::FromSeconds(1));
+          base::Seconds(1));
 
   // Auto-grant because active permissions exist. This should update the
   // timestamp of the persisted permission for |grant2|.
@@ -1499,7 +1499,7 @@
   // Permissions should still be valid.
   Advance(ChromeFileSystemAccessPermissionContext::
               kPersistentPermissionExpirationTimeoutNonPWA -
-          base::TimeDelta::FromMinutes(1));
+          base::Minutes(1));
 
   // Resetting the permission context should kick off a sweep.
   permission_context_ = std::make_unique<TestFileSystemAccessPermissionContext>(
@@ -1517,7 +1517,7 @@
               kPersistentPermissionExpirationTimeoutNonPWA +
           ChromeFileSystemAccessPermissionContext::
               kPersistentPermissionGracePeriod +
-          base::TimeDelta::FromMinutes(1));
+          base::Minutes(1));
 
   // Resetting the permission context should kick off a sweep.
   permission_context_ = std::make_unique<TestFileSystemAccessPermissionContext>(
@@ -1555,7 +1555,7 @@
 
   Advance(ChromeFileSystemAccessPermissionContext::
               kPersistentPermissionExpirationTimeoutNonPWA -
-          base::TimeDelta::FromSeconds(1));
+          base::Seconds(1));
 
   // Auto-grant because active permissions exist. This should update the
   // timestamp of the persisted permission for |write_grant|.
@@ -1571,7 +1571,7 @@
   // Though only |write_grant| was accessed, we should not lose read access.
   Advance(ChromeFileSystemAccessPermissionContext::
               kPersistentPermissionExpirationTimeoutNonPWA -
-          base::TimeDelta::FromSeconds(1));
+          base::Seconds(1));
   EXPECT_TRUE(permission_context()->HasPersistedPermissionForTesting(
       kTestOrigin, kTestPath, HandleType::kFile, GrantType::kRead));
   EXPECT_TRUE(permission_context()->HasPersistedPermissionForTesting(
diff --git a/chrome/browser/google/google_search_domain_mixing_metrics_emitter.cc b/chrome/browser/google/google_search_domain_mixing_metrics_emitter.cc
index 88ec7ec..6b1c3cd 100644
--- a/chrome/browser/google/google_search_domain_mixing_metrics_emitter.cc
+++ b/chrome/browser/google/google_search_domain_mixing_metrics_emitter.cc
@@ -25,10 +25,9 @@
 
   bool RunOnDBThread(history::HistoryBackend* backend,
                      history::HistoryDatabase* db) override {
-    EmitDomainMixingMetrics(
-        db->GetGoogleDomainVisitsFromSearchesInRange(
-            begin_time_ - base::TimeDelta::FromDays(29), end_time_),
-        begin_time_);
+    EmitDomainMixingMetrics(db->GetGoogleDomainVisitsFromSearchesInRange(
+                                begin_time_ - base::Days(29), end_time_),
+                            begin_time_);
     return true;
   }
 
@@ -79,7 +78,7 @@
     // from today 4am. This is designed so that the time windows used to compute
     // domain mixing are cut at times when the user is likely to be inactive.
     last_domain_mixing_metrics_time =
-        clock_->Now().LocalMidnight() + base::TimeDelta::FromHours(4);
+        clock_->Now().LocalMidnight() + base::Hours(4);
     prefs_->SetTime(kLastMetricsTime, last_domain_mixing_metrics_time);
   }
   ui_thread_task_runner_->PostDelayedTask(
@@ -87,9 +86,8 @@
       base::BindOnce(&GoogleSearchDomainMixingMetricsEmitter::EmitMetrics,
                      base::Unretained(this)),
       // Delay at least ten seconds to avoid delaying browser startup.
-      std::max(base::TimeDelta::FromSeconds(10),
-               last_domain_mixing_metrics_time + base::TimeDelta::FromDays(1) -
-                   clock_->Now()));
+      std::max(base::Seconds(10), last_domain_mixing_metrics_time +
+                                      base::Days(1) - clock_->Now()));
 }
 
 void GoogleSearchDomainMixingMetricsEmitter::SetClockForTesting(
@@ -116,12 +114,11 @@
   history_service_->ScheduleDBTask(
       FROM_HERE,
       std::make_unique<EmitMetricsDBTask>(
-          begin_time, begin_time + base::TimeDelta::FromDays(days_to_compute),
-          prefs_),
+          begin_time, begin_time + base::Days(days_to_compute), prefs_),
       &task_tracker_);
   if (!timer_->IsRunning()) {
     // Run the task daily from now on.
-    timer_->Start(FROM_HERE, base::TimeDelta::FromDays(1),
+    timer_->Start(FROM_HERE, base::Days(1),
                   base::BindRepeating(
                       &GoogleSearchDomainMixingMetricsEmitter::EmitMetrics,
                       base::Unretained(this)));
diff --git a/chrome/browser/google/google_search_domain_mixing_metrics_emitter_unittest.cc b/chrome/browser/google/google_search_domain_mixing_metrics_emitter_unittest.cc
index 29b59ac..24939aed 100644
--- a/chrome/browser/google/google_search_domain_mixing_metrics_emitter_unittest.cc
+++ b/chrome/browser/google/google_search_domain_mixing_metrics_emitter_unittest.cc
@@ -50,23 +50,21 @@
   void SetUpTestHistory(base::Time last_metrics_time) {
     // Out of range for the 30 day domain mixing metric.
     history_service_->AddPage(GURL("https://www.google.de/search?q=foo"),
-                              last_metrics_time - base::TimeDelta::FromDays(30),
+                              last_metrics_time - base::Days(30),
                               history::SOURCE_BROWSED);
     // First event in range for the 30 day domain mixing metric.
     history_service_->AddPage(GURL("https://www.google.fr/search?q=foo"),
-                              last_metrics_time - base::TimeDelta::FromDays(29),
+                              last_metrics_time - base::Days(29),
                               history::SOURCE_BROWSED);
     history_service_->AddPage(GURL("https://www.google.com/search?q=foo"),
                               last_metrics_time, history::SOURCE_BROWSED);
-    history_service_->AddPage(
-        GURL("https://www.google.com/search?q=foo"),
-        last_metrics_time + base::TimeDelta::FromHours(23),
-        history::SOURCE_BROWSED);
+    history_service_->AddPage(GURL("https://www.google.com/search?q=foo"),
+                              last_metrics_time + base::Hours(23),
+                              history::SOURCE_BROWSED);
     // Out of range for the day of metrics to compute.
-    history_service_->AddPage(
-        GURL("https://www.google.ch/search?q=foo"),
-        last_metrics_time + base::TimeDelta::FromHours(24),
-        history::SOURCE_BROWSED);
+    history_service_->AddPage(GURL("https://www.google.ch/search?q=foo"),
+                              last_metrics_time + base::Hours(24),
+                              history::SOURCE_BROWSED);
   }
 
   void VerifyHistograms(const base::HistogramTester& tester) {
@@ -103,7 +101,7 @@
       prefs_.GetTime(GoogleSearchDomainMixingMetricsEmitter::kLastMetricsTime));
   // The next metric calculation should be scheduled at 4am on the next day,
   // i.e. 16 hours from |now|.
-  EXPECT_EQ(base::TimeDelta::FromHours(16),
+  EXPECT_EQ(base::Hours(16),
             task_environment_.NextMainThreadPendingTaskDelay());
 }
 
@@ -113,11 +111,11 @@
   clock_->SetNow(now);
   // Metrics were last computed a day ago and need to be recomputed immediately.
   prefs_.SetTime(GoogleSearchDomainMixingMetricsEmitter::kLastMetricsTime,
-                 now - base::TimeDelta::FromDays(1));
+                 now - base::Days(1));
 
   emitter_->Start();
 
-  EXPECT_EQ(base::TimeDelta::FromSeconds(10),
+  EXPECT_EQ(base::Seconds(10),
             task_environment_.NextMainThreadPendingTaskDelay());
 }
 
@@ -128,11 +126,11 @@
   // Metrics were last computed an hour ago and the emitter should wait 23 hours
   // before emitting new metrics.
   prefs_.SetTime(GoogleSearchDomainMixingMetricsEmitter::kLastMetricsTime,
-                 now - base::TimeDelta::FromHours(1));
+                 now - base::Hours(1));
 
   emitter_->Start();
 
-  EXPECT_EQ(base::TimeDelta::FromHours(23),
+  EXPECT_EQ(base::Hours(23),
             task_environment_.NextMainThreadPendingTaskDelay());
 }
 
@@ -160,8 +158,7 @@
 
   // Fast forward far enough that histograms have been written to for all
   // intervals.
-  task_environment_.FastForwardBy(
-      base::TimeDelta::FromDays(history::kOneMonth));
+  task_environment_.FastForwardBy(base::Days(history::kOneMonth));
   BlockUntilHistoryProcessesPendingRequests(history_service_.get());
   VerifyHistograms(tester);
 }
@@ -185,18 +182,17 @@
 
   // Fast forward far enough that histograms have been written to for all
   // intervals.
-  task_environment_.FastForwardBy(
-      base::TimeDelta::FromDays(history::kOneMonth));
+  task_environment_.FastForwardBy(base::Days(history::kOneMonth));
   BlockUntilHistoryProcessesPendingRequests(history_service_.get());
 
   // last_metrics_time is expected to have been incremented.
-  last_metrics_time += base::TimeDelta::FromDays(1);
+  last_metrics_time += base::Days(1);
   EXPECT_EQ(
       last_metrics_time,
       prefs_.GetTime(GoogleSearchDomainMixingMetricsEmitter::kLastMetricsTime));
 
   // The timer is expected to trigger a day later.
-  EXPECT_EQ(base::TimeDelta::FromDays(1), timer_->GetCurrentDelay());
+  EXPECT_EQ(base::Days(1), timer_->GetCurrentDelay());
 
   // A day later, metrics should be recomputed without a call to Start() when
   // the timer triggers.
@@ -209,13 +205,12 @@
   base::HistogramTester tester;
   // Fast forward far enough that histograms have been written to for all
   // intervals.
-  task_environment_.FastForwardBy(
-      base::TimeDelta::FromDays(history::kOneMonth));
+  task_environment_.FastForwardBy(base::Days(history::kOneMonth));
   BlockUntilHistoryProcessesPendingRequests(history_service_.get());
   VerifyHistograms(tester);
 
   // last_metrics_time is expected to have been incremented.
-  last_metrics_time += base::TimeDelta::FromDays(1);
+  last_metrics_time += base::Days(1);
   EXPECT_EQ(
       last_metrics_time,
       prefs_.GetTime(GoogleSearchDomainMixingMetricsEmitter::kLastMetricsTime));
diff --git a/chrome/browser/google/google_update_win.cc b/chrome/browser/google/google_update_win.cc
index 68b950c4..779a0d1 100644
--- a/chrome/browser/google/google_update_win.cc
+++ b/chrome/browser/google/google_update_win.cc
@@ -512,7 +512,7 @@
           FROM_HERE,
           base::BindOnce(&UpdateCheckDriver::BeginUpdateCheck,
                          base::Unretained(this)),
-          base::TimeDelta::FromSeconds(kGoogleRetryIntervalSeconds));
+          base::Seconds(kGoogleRetryIntervalSeconds));
       return;
     }
   }
@@ -851,7 +851,7 @@
         FROM_HERE,
         base::BindOnce(&UpdateCheckDriver::PollGoogleUpdate,
                        base::Unretained(this)),
-        base::TimeDelta::FromMilliseconds(kGoogleUpdatePollIntervalMs));
+        base::Milliseconds(kGoogleUpdatePollIntervalMs));
     // Early return for this non-terminal state.
     return;
   }
diff --git a/chrome/browser/history_clusters/history_clusters_tab_helper.cc b/chrome/browser/history_clusters/history_clusters_tab_helper.cc
index 0701704..ad10521 100644
--- a/chrome/browser/history_clusters/history_clusters_tab_helper.cc
+++ b/chrome/browser/history_clusters/history_clusters_tab_helper.cc
@@ -106,7 +106,7 @@
                                          const history::VisitRow& visit2) {
   base::TimeDelta delta = visit2.visit_time - visit1.visit_time;
   // Clamp to 30 days maximum to match the UKM retention period.
-  const base::TimeDelta kMaxDurationClamp = base::TimeDelta::FromDays(30);
+  const base::TimeDelta kMaxDurationClamp = base::Days(30);
   return delta < kMaxDurationClamp ? delta : kMaxDurationClamp;
 }
 
diff --git a/chrome/browser/history_clusters/history_clusters_tab_helper_unittest.cc b/chrome/browser/history_clusters/history_clusters_tab_helper_unittest.cc
index 40bb8a83..13686ed5 100644
--- a/chrome/browser/history_clusters/history_clusters_tab_helper_unittest.cc
+++ b/chrome/browser/history_clusters/history_clusters_tab_helper_unittest.cc
@@ -95,8 +95,8 @@
     history::HistoryAddPageArgs add_page_args;
     add_page_args.url = url;
     add_page_args.title = u"Fake Title";
-    add_page_args.time = base::Time::FromDeltaSinceWindowsEpoch(
-        base::TimeDelta::FromSeconds(time_seconds));
+    add_page_args.time =
+        base::Time::FromDeltaSinceWindowsEpoch(base::Seconds(time_seconds));
     history_service_->AddPage(add_page_args);
   }
 
@@ -418,14 +418,14 @@
   EXPECT_EQ(GetVisits()[0].context_annotations.page_end_reason, 0);
   helper_->OnUkmNavigationComplete(
       0,
-      /*total_foreground_duration=*/base::TimeDelta::FromSeconds(20),
+      /*total_foreground_duration=*/base::Seconds(20),
       page_load_metrics::PageEndReason::END_OTHER);
   ASSERT_EQ(GetVisits().size(), 1u);
   EXPECT_EQ(GetVisits()[0].url_row.url(), GURL{"https://github.com"});
   EXPECT_EQ(GetVisits()[0].context_annotations.page_end_reason,
             page_load_metrics::PageEndReason::END_OTHER);
   EXPECT_EQ(GetVisits()[0].context_annotations.total_foreground_duration,
-            base::TimeDelta::FromSeconds(20));
+            base::Seconds(20));
   DeleteContents();
 }
 
@@ -452,8 +452,7 @@
       web_contents(), base::BindLambdaForTesting([&]() {
         EXPECT_EQ(GetVisits()[0].context_annotations.page_end_reason, 0);
         helper_->OnUkmNavigationComplete(
-            0, base::TimeDelta::FromSeconds(20),
-            page_load_metrics::PageEndReason::END_OTHER);
+            0, base::Seconds(20), page_load_metrics::PageEndReason::END_OTHER);
         run_loop_quit_.Run();
       }));
 
@@ -464,7 +463,7 @@
   EXPECT_EQ(GetVisits()[0].context_annotations.page_end_reason,
             page_load_metrics::PageEndReason::END_OTHER);
   EXPECT_EQ(GetVisits()[0].context_annotations.total_foreground_duration,
-            base::TimeDelta::FromSeconds(20));
+            base::Seconds(20));
 }
 
 // Expect UKM -> history -> UKM -> destroy
@@ -484,14 +483,14 @@
   ASSERT_EQ(GetVisits().size(), 1u);
   EXPECT_EQ(GetVisits()[0].url_row.url(), GURL{"https://github.com"});
   EXPECT_EQ(GetVisits()[0].context_annotations.page_end_reason, 0);
-  helper_->OnUkmNavigationComplete(0, base::TimeDelta::FromSeconds(20),
+  helper_->OnUkmNavigationComplete(0, base::Seconds(20),
                                    page_load_metrics::PageEndReason::END_OTHER);
   ASSERT_EQ(GetVisits().size(), 1u);
   EXPECT_EQ(GetVisits()[0].url_row.url(), GURL{"https://github.com"});
   EXPECT_EQ(GetVisits()[0].context_annotations.page_end_reason,
             page_load_metrics::PageEndReason::END_OTHER);
   EXPECT_EQ(GetVisits()[0].context_annotations.total_foreground_duration,
-            base::TimeDelta::FromSeconds(20));
+            base::Seconds(20));
   DeleteContents();
 }
 
@@ -510,7 +509,7 @@
   helper_->OnUpdatedHistoryForNavigation(0, GURL{"https://github.com"});
   helper_->TagNavigationAsExpectingUkmNavigationComplete(0);
   AddBookmark(GURL{"https://github.com"});
-  helper_->OnUkmNavigationComplete(0, base::TimeDelta::FromSeconds(20),
+  helper_->OnUkmNavigationComplete(0, base::Seconds(20),
                                    page_load_metrics::PageEndReason::END_OTHER);
   auto visits = GetVisits();
   ASSERT_EQ(visits.size(), 1u);
@@ -518,7 +517,7 @@
   EXPECT_FALSE(visits[0].context_annotations.is_new_bookmark);
   EXPECT_EQ(visits[0].context_annotations.page_end_reason, 0);
   EXPECT_EQ(visits[0].context_annotations.total_foreground_duration,
-            base::TimeDelta::FromSeconds(-1));
+            base::Seconds(-1));
 
   // Resolve the history request after `WebContentsDestroyed()` is invoked, but
   // before the `WebContents` has been destroyed.
@@ -537,7 +536,7 @@
   EXPECT_EQ(visits[0].context_annotations.page_end_reason,
             page_load_metrics::PageEndReason::END_OTHER);
   EXPECT_EQ(visits[0].context_annotations.total_foreground_duration,
-            base::TimeDelta::FromSeconds(20));
+            base::Seconds(20));
 }
 
 // Expect History -> expect UKM 1 -> UKM 1 -> history -> destroy
@@ -564,7 +563,7 @@
   EXPECT_EQ(visits[0].context_annotations.page_end_reason, 0);
   EXPECT_EQ(visits[1].url_row.url(), GURL{"https://google.com"});
   EXPECT_EQ(visits[1].context_annotations.page_end_reason, 0);
-  helper_->OnUkmNavigationComplete(0, base::TimeDelta::FromSeconds(20),
+  helper_->OnUkmNavigationComplete(0, base::Seconds(20),
                                    page_load_metrics::PageEndReason::END_OTHER);
 
   helper_->OnUpdatedHistoryForNavigation(1, GURL{"https://google.com"});
@@ -577,7 +576,7 @@
   EXPECT_EQ(visits[0].context_annotations.page_end_reason,
             page_load_metrics::PageEndReason::END_OTHER);
   EXPECT_EQ(visits[0].context_annotations.total_foreground_duration,
-            base::TimeDelta::FromSeconds(20));
+            base::Seconds(20));
   EXPECT_EQ(visits[1].url_row.url(), GURL{"https://google.com"});
   EXPECT_EQ(visits[1].context_annotations.page_end_reason, 0);
 }
@@ -608,7 +607,7 @@
   EXPECT_EQ(visits[1].url_row.url(), GURL{"https://google.com"});
   EXPECT_EQ(visits[1].context_annotations.page_end_reason, 0);
 
-  helper_->OnUkmNavigationComplete(0, base::TimeDelta::FromSeconds(20),
+  helper_->OnUkmNavigationComplete(0, base::Seconds(20),
                                    page_load_metrics::PageEndReason::END_OTHER);
   visits = GetVisits();
   ASSERT_EQ(visits.size(), 2u);
@@ -616,11 +615,11 @@
   EXPECT_EQ(visits[0].context_annotations.page_end_reason,
             page_load_metrics::PageEndReason::END_OTHER);
   EXPECT_EQ(visits[0].context_annotations.total_foreground_duration,
-            base::TimeDelta::FromSeconds(20));
+            base::Seconds(20));
   EXPECT_EQ(visits[1].url_row.url(), GURL{"https://google.com"});
   EXPECT_EQ(visits[1].context_annotations.page_end_reason, 0);
   EXPECT_EQ(visits[1].context_annotations.total_foreground_duration,
-            base::TimeDelta::FromSeconds(-1));
+            base::Seconds(-1));
 
   DeleteContents();
   visits = GetVisits();
@@ -629,11 +628,11 @@
   EXPECT_EQ(visits[0].context_annotations.page_end_reason,
             page_load_metrics::PageEndReason::END_OTHER);
   EXPECT_EQ(visits[0].context_annotations.total_foreground_duration,
-            base::TimeDelta::FromSeconds(20));
+            base::Seconds(20));
   EXPECT_EQ(visits[1].url_row.url(), GURL{"https://google.com"});
   EXPECT_EQ(visits[1].context_annotations.page_end_reason, 0);
   EXPECT_EQ(visits[1].context_annotations.total_foreground_duration,
-            base::TimeDelta::FromSeconds(-1));
+            base::Seconds(-1));
 }
 
 // Expect History -> Expect UKM 2 -> history -> destroy -> UKM 2
@@ -656,11 +655,11 @@
   EXPECT_EQ(visits[0].url_row.url(), GURL{"https://github.com"});
   EXPECT_EQ(visits[0].context_annotations.page_end_reason, 0);
   EXPECT_EQ(visits[0].context_annotations.total_foreground_duration,
-            base::TimeDelta::FromSeconds(-1));
+            base::Seconds(-1));
   EXPECT_EQ(visits[1].url_row.url(), GURL{"https://google.com"});
   EXPECT_EQ(visits[1].context_annotations.page_end_reason, 0);
   EXPECT_EQ(visits[1].context_annotations.total_foreground_duration,
-            base::TimeDelta::FromSeconds(-1));
+            base::Seconds(-1));
 
   helper_->TagNavigationAsExpectingUkmNavigationComplete(1);
   EXPECT_EQ(GetVisits().size(), 2u);
@@ -675,8 +674,7 @@
       web_contents(), base::BindLambdaForTesting([&]() {
         EXPECT_EQ(GetVisits().size(), 2u);
         helper_->OnUkmNavigationComplete(
-            1, base::TimeDelta::FromSeconds(20),
-            page_load_metrics::PageEndReason::END_OTHER);
+            1, base::Seconds(20), page_load_metrics::PageEndReason::END_OTHER);
         run_loop_quit_.Run();
       }));
 
@@ -686,12 +684,12 @@
   EXPECT_EQ(visits[0].url_row.url(), GURL{"https://github.com"});
   EXPECT_EQ(visits[0].context_annotations.page_end_reason, 0);
   EXPECT_EQ(visits[0].context_annotations.total_foreground_duration,
-            base::TimeDelta::FromSeconds(-1));
+            base::Seconds(-1));
   EXPECT_EQ(visits[1].url_row.url(), GURL{"https://google.com"});
   EXPECT_EQ(visits[1].context_annotations.page_end_reason,
             page_load_metrics::PageEndReason::END_OTHER);
   EXPECT_EQ(visits[1].context_annotations.total_foreground_duration,
-            base::TimeDelta::FromSeconds(20));
+            base::Seconds(20));
 }
 
 }  // namespace
diff --git a/chrome/browser/idle/idle_browsertest.cc b/chrome/browser/idle/idle_browsertest.cc
index cddc5bd..d823db67 100644
--- a/chrome/browser/idle/idle_browsertest.cc
+++ b/chrome/browser/idle/idle_browsertest.cc
@@ -87,11 +87,11 @@
 
   EXPECT_CALL(*mock_time_provider, CalculateIdleTime())
       // Simulates a user going idle.
-      .WillOnce(testing::Return(base::TimeDelta::FromSeconds(60)))
+      .WillOnce(testing::Return(base::Seconds(60)))
       // Simulates a screen getting locked after the user goes idle.
-      .WillOnce(testing::Return(base::TimeDelta::FromSeconds(60)))
+      .WillOnce(testing::Return(base::Seconds(60)))
       // Simulates a user going back to active.
-      .WillRepeatedly(testing::Return(base::TimeDelta::FromSeconds(0)));
+      .WillRepeatedly(testing::Return(base::Seconds(0)));
 
   EXPECT_CALL(*mock_time_provider, CheckIdleStateIsLocked())
       // Simulates unlocked screen while user goes idle.
diff --git a/chrome/browser/idle/idle_detection_permission_context.cc b/chrome/browser/idle/idle_detection_permission_context.cc
index daf64dce..10f25bfe 100644
--- a/chrome/browser/idle/idle_detection_permission_context.cc
+++ b/chrome/browser/idle/idle_detection_permission_context.cc
@@ -69,7 +69,7 @@
                            embedding_origin, std::move(callback),
                            /*persist=*/true, CONTENT_SETTING_BLOCK,
                            /*is_one_time=*/false),
-            base::TimeDelta::FromSecondsD(delay_seconds));
+            base::Seconds(delay_seconds));
     return;
   }
 
diff --git a/chrome/browser/idle/idle_detection_permission_context_unittest.cc b/chrome/browser/idle/idle_detection_permission_context_unittest.cc
index 17d4bfe..1fc8f8a2 100644
--- a/chrome/browser/idle/idle_detection_permission_context_unittest.cc
+++ b/chrome/browser/idle/idle_detection_permission_context_unittest.cc
@@ -94,7 +94,7 @@
   // tab is not visible, so these 500ms never add up to >= 1 second.
   for (int n = 0; n < 10; n++) {
     web_contents()->WasShown();
-    task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(500));
+    task_environment()->FastForwardBy(base::Milliseconds(500));
     web_contents()->WasHidden();
   }
 
@@ -109,7 +109,7 @@
   // scheduled task, and when it fires Timer::RunScheduledTask will call
   // TimeTicks::Now() (which unlike task_environment()->NowTicks(), we can't
   // fake), and miscalculate the remaining delay at which to fire the timer.
-  task_environment()->FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment()->FastForwardBy(base::Days(1));
 
   EXPECT_EQ(0, permission_context.permission_set_count());
   EXPECT_EQ(CONTENT_SETTING_ASK,
@@ -117,7 +117,7 @@
 
   // Should be blocked after 1-2 seconds. So 500ms is not enough.
   web_contents()->WasShown();
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(500));
+  task_environment()->FastForwardBy(base::Milliseconds(500));
 
   EXPECT_EQ(0, permission_context.permission_set_count());
   EXPECT_EQ(CONTENT_SETTING_ASK,
@@ -125,7 +125,7 @@
 
   // But 5*500ms > 2 seconds, so it should now be blocked.
   for (int n = 0; n < 4; n++)
-    task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(500));
+    task_environment()->FastForwardBy(base::Milliseconds(500));
 
   EXPECT_EQ(1, permission_context.permission_set_count());
   EXPECT_TRUE(permission_context.last_permission_set_persisted());
@@ -169,7 +169,7 @@
   // Fast forward up to 2.5 seconds. Stop as soon as the first permission
   // request is auto-denied.
   for (int n = 0; n < 5; n++) {
-    task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(500));
+    task_environment()->FastForwardBy(base::Milliseconds(500));
     if (permission_context.permission_set_count())
       break;
   }
@@ -184,7 +184,7 @@
 
   // After another 2.5 seconds, the second permission request should also have
   // received a response.
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(2500));
+  task_environment()->FastForwardBy(base::Milliseconds(2500));
   EXPECT_EQ(2, permission_context.permission_set_count());
   EXPECT_TRUE(permission_context.last_permission_set_persisted());
   EXPECT_EQ(CONTENT_SETTING_BLOCK,
diff --git a/chrome/browser/importer/profile_writer_unittest.cc b/chrome/browser/importer/profile_writer_unittest.cc
index 2608d66..da14dc7 100644
--- a/chrome/browser/importer/profile_writer_unittest.cc
+++ b/chrome/browser/importer/profile_writer_unittest.cc
@@ -116,7 +116,7 @@
     row.set_visit_count(visit_count);
     row.set_typed_count(typed_count);
     row.set_last_visit(base::Time::NowFromSystemTime() -
-                       base::TimeDelta::FromDays(days_since_last_visit));
+                       base::Days(days_since_last_visit));
     return row;
   }
 
diff --git a/chrome/browser/interest_group/interest_group_permissions_browsertest.cc b/chrome/browser/interest_group/interest_group_permissions_browsertest.cc
index c79bb38f..ecd70c08 100644
--- a/chrome/browser/interest_group/interest_group_permissions_browsertest.cc
+++ b/chrome/browser/interest_group/interest_group_permissions_browsertest.cc
@@ -170,7 +170,7 @@
     base::RunLoop run_loop;
     base::RetainingOneShotTimer check_done;
     check_done.Start(
-        FROM_HERE, base::TimeDelta::FromMicroseconds(10),
+        FROM_HERE, base::Microseconds(10),
         base::BindLambdaForTesting([&adapter, &check_done, &run_loop, this]() {
           if (!CanRunAuction(adapter)) {
             check_done.Reset();
diff --git a/chrome/browser/internal_auth_unittest.cc b/chrome/browser/internal_auth_unittest.cc
index 7200713..6de0742 100644
--- a/chrome/browser/internal_auth_unittest.cc
+++ b/chrome/browser/internal_auth_unittest.cc
@@ -155,8 +155,8 @@
       ASSERT_FALSE(InternalAuthVerification::VerifyPassport(
           dummy2, "zapata", map));
     }
-    if (base::Time::Now() - timestamp > base::TimeDelta::FromSeconds(
-        kCustomVerificationWindow + 1)) {
+    if (base::Time::Now() - timestamp >
+        base::Seconds(kCustomVerificationWindow + 1)) {
       break;
     }
   }
diff --git a/chrome/browser/intranet_redirect_detector.cc b/chrome/browser/intranet_redirect_detector.cc
index 17d80657..e99f3cc 100644
--- a/chrome/browser/intranet_redirect_detector.cc
+++ b/chrome/browser/intranet_redirect_detector.cc
@@ -50,8 +50,7 @@
   // Ideally, instead of this timer, we'd do something like "check if the
   // browser is starting up, and if so, come back later", but there is currently
   // no function to do this.
-  static constexpr base::TimeDelta kStartFetchDelay =
-      base::TimeDelta::FromSeconds(7);
+  static constexpr base::TimeDelta kStartFetchDelay = base::Seconds(7);
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&IntranetRedirectDetector::FinishSleep,
@@ -97,8 +96,7 @@
   // Since presumably many programs open connections after network changes,
   // delay this a little bit.
   in_sleep_ = true;
-  static constexpr base::TimeDelta kRestartDelay =
-      base::TimeDelta::FromSeconds(1);
+  static constexpr base::TimeDelta kRestartDelay = base::Seconds(1);
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&IntranetRedirectDetector::FinishSleep,
diff --git a/chrome/browser/lacros/browser_test_util.cc b/chrome/browser/lacros/browser_test_util.cc
index e50d7f20..5af8d55 100644
--- a/chrome/browser/lacros/browser_test_util.cc
+++ b/chrome/browser/lacros/browser_test_util.cc
@@ -70,8 +70,7 @@
 
   // Wait for the window to be available.
   base::RepeatingTimer timer;
-  timer.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(1),
-              std::move(wait_for_window));
+  timer.Start(FROM_HERE, base::Milliseconds(1), std::move(wait_for_window));
   outer_loop.Run();
 }
 
@@ -131,8 +130,7 @@
 
   // Wait for the window to be available.
   base::RepeatingTimer timer;
-  timer.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(1),
-              std::move(wait_for_shelf_item));
+  timer.Start(FROM_HERE, base::Milliseconds(1), std::move(wait_for_shelf_item));
   outer_loop.Run();
 }
 
diff --git a/chrome/browser/lacros/clipboard_lacros_browsertest.cc b/chrome/browser/lacros/clipboard_lacros_browsertest.cc
index 771a1b4d..4267cdb 100644
--- a/chrome/browser/lacros/clipboard_lacros_browsertest.cc
+++ b/chrome/browser/lacros/clipboard_lacros_browsertest.cc
@@ -43,7 +43,7 @@
         },
         &run_loop, text);
     base::RepeatingTimer timer;
-    timer.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(1),
+    timer.Start(FROM_HERE, base::Milliseconds(1),
                 std::move(look_for_clipboard_text));
     run_loop.Run();
   }
diff --git a/chrome/browser/lacros/download_controller_client_lacros_browsertest.cc b/chrome/browser/lacros/download_controller_client_lacros_browsertest.cc
index 0dbd5d72..ab9ea36 100644
--- a/chrome/browser/lacros/download_controller_client_lacros_browsertest.cc
+++ b/chrome/browser/lacros/download_controller_client_lacros_browsertest.cc
@@ -87,10 +87,10 @@
                        GetAllDownloads) {
   // Create a few `downloads`.
   std::vector<std::unique_ptr<download::DownloadItem>> downloads;
-  downloads.push_back(CreateDownloadItemWithStartTimeOffset(
-      profile(), base::TimeDelta::FromMinutes(10)));
-  downloads.push_back(CreateDownloadItemWithStartTimeOffset(
-      profile(), -base::TimeDelta::FromMinutes(10)));
+  downloads.push_back(
+      CreateDownloadItemWithStartTimeOffset(profile(), base::Minutes(10)));
+  downloads.push_back(
+      CreateDownloadItemWithStartTimeOffset(profile(), -base::Minutes(10)));
 
   // Mock `download_manager()` response for `GetAllDownloads()`.
   EXPECT_CALL(*download_manager(), GetAllDownloads)
diff --git a/chrome/browser/lacros/lacros_extension_apps_controller_lacros_browsertest.cc b/chrome/browser/lacros/lacros_extension_apps_controller_lacros_browsertest.cc
index 17f68a33..c89404e0 100644
--- a/chrome/browser/lacros/lacros_extension_apps_controller_lacros_browsertest.cc
+++ b/chrome/browser/lacros/lacros_extension_apps_controller_lacros_browsertest.cc
@@ -153,8 +153,7 @@
         }
       },
       &run_loop, profile());
-  timer.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(1),
-              std::move(wait_for_window));
+  timer.Start(FROM_HERE, base::Milliseconds(1), std::move(wait_for_window));
   run_loop.Run();
 
   // Now we must unpin the item to ensure ash-chrome is in consistent state.
diff --git a/chrome/browser/lacros/lacros_memory_pressure_evaluator.cc b/chrome/browser/lacros/lacros_memory_pressure_evaluator.cc
index a548cf5..aa7d9e6 100644
--- a/chrome/browser/lacros/lacros_memory_pressure_evaluator.cc
+++ b/chrome/browser/lacros/lacros_memory_pressure_evaluator.cc
@@ -16,7 +16,7 @@
 // We try not to re-notify on moderate too frequently, this time
 // controls how frequently we will notify after our first notification.
 constexpr base::TimeDelta kModerateMemoryPressureCooldownTime =
-    base::TimeDelta::FromSeconds(10);
+    base::Seconds(10);
 
 }  // namespace
 
diff --git a/chrome/browser/lacros/popup_lacros_browsertest.cc b/chrome/browser/lacros/popup_lacros_browsertest.cc
index 18d9b282..e98f2e9 100644
--- a/chrome/browser/lacros/popup_lacros_browsertest.cc
+++ b/chrome/browser/lacros/popup_lacros_browsertest.cc
@@ -45,8 +45,7 @@
       outer_loop.Quit();
   });
   base::RepeatingTimer timer;
-  timer.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(1),
-              std::move(wait_for_position));
+  timer.Start(FROM_HERE, base::Milliseconds(1), std::move(wait_for_position));
   outer_loop.Run();
 }
 
@@ -108,7 +107,7 @@
   // Wayland only transports press/move/release events, not gestures.
   base::RunLoop loop2;
   base::OneShotTimer timer2;
-  timer2.Start(FROM_HERE, base::TimeDelta::FromSeconds(1), loop2.QuitClosure());
+  timer2.Start(FROM_HERE, base::Seconds(1), loop2.QuitClosure());
   loop2.Run();
 
   // Release the touch in ash.
@@ -132,7 +131,7 @@
     loop3.Quit();
   });
   base::RepeatingTimer timer3;
-  timer3.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(1),
+  timer3.Start(FROM_HERE, base::Milliseconds(1),
                std::move(wait_for_popup_on_screen));
   loop3.Run();
 
diff --git a/chrome/browser/lacros/screen_manager_lacros_browsertest.cc b/chrome/browser/lacros/screen_manager_lacros_browsertest.cc
index 183f92c..96e3fef 100644
--- a/chrome/browser/lacros/screen_manager_lacros_browsertest.cc
+++ b/chrome/browser/lacros/screen_manager_lacros_browsertest.cc
@@ -82,8 +82,7 @@
   // When the browser test start, there is no guarantee that the window is
   // open from ash's perspective.
   base::RepeatingTimer timer;
-  timer.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(1),
-              std::move(look_for_window));
+  timer.Start(FROM_HERE, base::Milliseconds(1), std::move(look_for_window));
   run_loop.Run();
 
   return window_id;
diff --git a/chrome/browser/lacros/web_contents_can_go_back_observer_browsertest.cc b/chrome/browser/lacros/web_contents_can_go_back_observer_browsertest.cc
index 9a97ae3d..cc7e127 100644
--- a/chrome/browser/lacros/web_contents_can_go_back_observer_browsertest.cc
+++ b/chrome/browser/lacros/web_contents_can_go_back_observer_browsertest.cc
@@ -60,7 +60,7 @@
         },
         &outer_loop, window_id, expected_value);
     base::RepeatingTimer timer;
-    timer.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(1),
+    timer.Start(FROM_HERE, base::Milliseconds(1),
                 std::move(look_for_property_value));
     outer_loop.Run();
   }
diff --git a/chrome/browser/lifetime/application_lifetime.cc b/chrome/browser/lifetime/application_lifetime.cc
index 4fd1bec..fe8fbcee 100644
--- a/chrome/browser/lifetime/application_lifetime.cc
+++ b/chrome/browser/lifetime/application_lifetime.cc
@@ -417,8 +417,7 @@
   // the same time or they would interfere with each other.
   absl::optional<ShutdownWatcherHelper> shutdown_watcher;
   absl::optional<base::WatchHangsInScope> watch_hangs_scope;
-  constexpr base::TimeDelta kShutdownHangDelay{
-      base::TimeDelta::FromSeconds(90)};
+  constexpr base::TimeDelta kShutdownHangDelay{base::Seconds(90)};
   if (base::HangWatcher::IsCrashReportingEnabled()) {
     // Use ShutdownWatcherHelper logic to choose delay to get identical
     // behavior.
diff --git a/chrome/browser/lite_video/lite_video_decider_unittest.cc b/chrome/browser/lite_video/lite_video_decider_unittest.cc
index 0b7205d..950ff87 100644
--- a/chrome/browser/lite_video/lite_video_decider_unittest.cc
+++ b/chrome/browser/lite_video/lite_video_decider_unittest.cc
@@ -205,7 +205,7 @@
       return;
     duration->set_seconds(delta.InSeconds());
     duration->set_nanos(delta.InNanoseconds() %
-                        base::TimeDelta::FromSeconds(1).InNanoseconds());
+                        base::Seconds(1).InNanoseconds());
   }
 
   void SeedLiteVideoHintCache(const GURL& gurl,
@@ -377,9 +377,9 @@
   navigation_handle.set_page_transition(ui::PAGE_TRANSITION_TYPED);
   lite_video::LiteVideoHint seeded_hint(
       /*target_downlink_bandwidth_kbps=*/123,
-      /*target_downlink_rtt_latency=*/base::TimeDelta::FromMilliseconds(2500),
+      /*target_downlink_rtt_latency=*/base::Milliseconds(2500),
       /*kilobytes_to_buffer_before_throttle=*/500,
-      /*max_throttling_delay=*/base::TimeDelta::FromMilliseconds(5000));
+      /*max_throttling_delay=*/base::Milliseconds(5000));
   SeedLiteVideoHintCache(url, seeded_hint, /*use_opt_guide=*/false);
 
   lite_video_decider()->CanApplyLiteVideo(
@@ -418,9 +418,9 @@
   navigation_handle.set_page_transition(ui::PAGE_TRANSITION_TYPED);
   lite_video::LiteVideoHint seeded_hint(
       /*target_downlink_bandwidth_kbps=*/123,
-      /*target_downlink_rtt_latency=*/base::TimeDelta::FromMilliseconds(2500),
+      /*target_downlink_rtt_latency=*/base::Milliseconds(2500),
       /*kilobytes_to_buffer_before_throttle=*/500,
-      /*max_throttling_delay=*/base::TimeDelta::FromMilliseconds(5000));
+      /*max_throttling_delay=*/base::Milliseconds(5000));
   SeedLiteVideoHintCache(url, seeded_hint, /*use_opt_guide=*/false);
 
   lite_video_decider()->CanApplyLiteVideo(
@@ -446,9 +446,9 @@
   navigation_handle.set_page_transition(ui::PAGE_TRANSITION_TYPED);
   lite_video::LiteVideoHint seeded_hint(
       /*target_downlink_bandwidth_kbps=*/123,
-      /*target_downlink_rtt_latency=*/base::TimeDelta::FromMilliseconds(2500),
+      /*target_downlink_rtt_latency=*/base::Milliseconds(2500),
       /*kilobytes_to_buffer_before_throttle=*/500,
-      /*max_throttling_delay=*/base::TimeDelta::FromMilliseconds(5000));
+      /*max_throttling_delay=*/base::Milliseconds(5000));
   SeedLiteVideoHintCache(url, seeded_hint, /*use_opt_guide=*/false);
 
   CanApplyOnSubframeNavigation(GURL("https://mainframe.com"), url);
@@ -481,9 +481,9 @@
 
   lite_video::LiteVideoHint seeded_hint(
       /*target_downlink_bandwidth_kbps=*/123,
-      /*target_downlink_rtt_latency=*/base::TimeDelta::FromMilliseconds(2500),
+      /*target_downlink_rtt_latency=*/base::Milliseconds(2500),
       /*kilobytes_to_buffer_before_throttle=*/500,
-      /*max_throttling_delay=*/base::TimeDelta::FromMilliseconds(5000));
+      /*max_throttling_delay=*/base::Milliseconds(5000));
   SeedLiteVideoHintCache(url, seeded_hint, /*use_opt_guide=*/false);
 
   lite_video_decider()->CanApplyLiteVideo(
@@ -512,9 +512,9 @@
 
   lite_video::LiteVideoHint seeded_hint(
       /*target_downlink_bandwidth_kbps=*/123,
-      /*target_downlink_rtt_latency=*/base::TimeDelta::FromMilliseconds(2500),
+      /*target_downlink_rtt_latency=*/base::Milliseconds(2500),
       /*kilobytes_to_buffer_before_throttle=*/500,
-      /*max_throttling_delay=*/base::TimeDelta::FromMilliseconds(5000));
+      /*max_throttling_delay=*/base::Milliseconds(5000));
   SeedLiteVideoHintCache(url, seeded_hint, /*use_opt_guide=*/false);
 
   lite_video_decider()->CanApplyLiteVideo(
@@ -563,9 +563,9 @@
   navigation_handle.set_page_transition(ui::PAGE_TRANSITION_TYPED);
   lite_video::LiteVideoHint seeded_hint(
       /*target_downlink_bandwidth_kbps=*/123,
-      /*target_downlink_rtt_latency=*/base::TimeDelta::FromMilliseconds(2500),
+      /*target_downlink_rtt_latency=*/base::Milliseconds(2500),
       /*kilobytes_to_buffer_before_throttle=*/500,
-      /*max_throttling_delay=*/base::TimeDelta::FromMilliseconds(5000));
+      /*max_throttling_delay=*/base::Milliseconds(5000));
   SeedLiteVideoHintCache(url, seeded_hint, /*use_opt_guide=*/true);
 
   lite_video_decider()->CanApplyLiteVideo(
@@ -642,9 +642,9 @@
   navigation_handle.set_page_transition(ui::PAGE_TRANSITION_TYPED);
   lite_video::LiteVideoHint seeded_hint(
       /*target_downlink_bandwidth_kbps=*/123,
-      /*target_downlink_rtt_latency=*/base::TimeDelta::FromMilliseconds(2500),
+      /*target_downlink_rtt_latency=*/base::Milliseconds(2500),
       /*kilobytes_to_buffer_before_throttle=*/500,
-      /*max_throttling_delay=*/base::TimeDelta::FromMilliseconds(5000));
+      /*max_throttling_delay=*/base::Milliseconds(5000));
   SeedLiteVideoHintCache(mainframe_url, seeded_hint, /*use_opt_guide=*/true);
 
   // Force a check on the mainframe, otherwise no hint will be set for the
@@ -864,9 +864,9 @@
 
   lite_video::LiteVideoHint seeded_hint(
       /*target_downlink_bandwidth_kbps=*/123,
-      /*target_downlink_rtt_latency=*/base::TimeDelta::FromMilliseconds(2500),
+      /*target_downlink_rtt_latency=*/base::Milliseconds(2500),
       /*kilobytes_to_buffer_before_throttle=*/500,
-      /*max_throttling_delay=*/base::TimeDelta::FromMilliseconds(5000));
+      /*max_throttling_delay=*/base::Milliseconds(5000));
   SeedLiteVideoHintCache(url, seeded_hint, /*use_opt_guide=*/false);
 
   lite_video_decider()->CanApplyLiteVideo(
diff --git a/chrome/browser/lite_video/lite_video_features.cc b/chrome/browser/lite_video/lite_video_features.cc
index 53eeaae..5ffd131 100644
--- a/chrome/browser/lite_video/lite_video_features.cc
+++ b/chrome/browser/lite_video/lite_video_features.cc
@@ -52,7 +52,7 @@
 }
 
 base::TimeDelta LiteVideoTargetDownlinkRTTLatency() {
-  return base::TimeDelta::FromMilliseconds(GetFieldTrialParamByFeatureAsInt(
+  return base::Milliseconds(GetFieldTrialParamByFeatureAsInt(
       ::features::kLiteVideo, "target_downlink_rtt_latency_ms", 500));
 }
 
@@ -62,7 +62,7 @@
 }
 
 base::TimeDelta LiteVideoMaxThrottlingDelay() {
-  return base::TimeDelta::FromMilliseconds(GetFieldTrialParamByFeatureAsInt(
+  return base::Milliseconds(GetFieldTrialParamByFeatureAsInt(
       ::features::kLiteVideo, "max_throttling_delay_ms", 5000));
 }
 
@@ -72,7 +72,7 @@
 }
 
 base::TimeDelta UserBlocklistHostDuration() {
-  return base::TimeDelta::FromDays(GetFieldTrialParamByFeatureAsInt(
+  return base::Days(GetFieldTrialParamByFeatureAsInt(
       ::features::kLiteVideo, "user_blocklist_host_duration_in_days", 1));
 }
 
diff --git a/chrome/browser/lite_video/lite_video_hint.cc b/chrome/browser/lite_video/lite_video_hint.cc
index e3cc2b3..65eec226 100644
--- a/chrome/browser/lite_video/lite_video_hint.cc
+++ b/chrome/browser/lite_video/lite_video_hint.cc
@@ -13,9 +13,9 @@
     const optimization_guide::proto::Duration& duration) {
   base::TimeDelta delta;
   if (duration.has_seconds())
-    delta += base::TimeDelta::FromSeconds(duration.seconds());
+    delta += base::Seconds(duration.seconds());
   if (duration.has_nanos())
-    delta += base::TimeDelta::FromNanoseconds(duration.nanos());
+    delta += base::Nanoseconds(duration.nanos());
   return delta;
 }
 
diff --git a/chrome/browser/lite_video/lite_video_hint_unittest.cc b/chrome/browser/lite_video/lite_video_hint_unittest.cc
index e992629..8613a09 100644
--- a/chrome/browser/lite_video/lite_video_hint_unittest.cc
+++ b/chrome/browser/lite_video/lite_video_hint_unittest.cc
@@ -15,25 +15,22 @@
   if (!duration)
     return;
   duration->set_seconds(delta.InSeconds());
-  duration->set_nanos(delta.InNanoseconds() %
-                      base::TimeDelta::FromSeconds(1).InNanoseconds());
+  duration->set_nanos(delta.InNanoseconds() % base::Seconds(1).InNanoseconds());
 }
 
 TEST(LiteVideoHintTest, OptGuideMetadataHint) {
   optimization_guide::proto::LiteVideoHint hint_proto;
-  base::TimeDelta throttle_delay =
-      base::TimeDelta::FromSeconds(5) + base::TimeDelta::FromNanoseconds(5);
+  base::TimeDelta throttle_delay = base::Seconds(5) + base::Nanoseconds(5);
   hint_proto.set_target_downlink_bandwidth_kbps(100);
   hint_proto.set_kilobytes_to_buffer_before_throttle(10);
   SetDurationFromTimeDelta(hint_proto.mutable_target_downlink_rtt_latency(),
-                           base::TimeDelta::FromSeconds(5));
+                           base::Seconds(5));
   SetDurationFromTimeDelta(hint_proto.mutable_max_throttling_delay(),
                            throttle_delay);
   lite_video::LiteVideoHint hint(hint_proto);
   EXPECT_EQ(hint.target_downlink_bandwidth_kbps(), 100);
   EXPECT_EQ(hint.kilobytes_to_buffer_before_throttle(), 10);
-  EXPECT_EQ(hint.target_downlink_rtt_latency(),
-            base::TimeDelta::FromSeconds(5));
+  EXPECT_EQ(hint.target_downlink_rtt_latency(), base::Seconds(5));
   EXPECT_EQ(hint.max_throttling_delay(), throttle_delay);
 }
 
diff --git a/chrome/browser/lite_video/lite_video_user_blocklist_unittest.cc b/chrome/browser/lite_video/lite_video_user_blocklist_unittest.cc
index faa8db5..267a239 100644
--- a/chrome/browser/lite_video/lite_video_user_blocklist_unittest.cc
+++ b/chrome/browser/lite_video/lite_video_user_blocklist_unittest.cc
@@ -169,11 +169,11 @@
   content::MockNavigationHandle nav_handle;
   nav_handle.set_url(url);
   blocklist()->AddNavigationToBlocklist(&nav_handle, true);
-  test_clock()->Advance(base::TimeDelta::FromSeconds(1));
+  test_clock()->Advance(base::Seconds(1));
   EXPECT_EQ(CheckBlocklistForMainframeNavigation(url),
             LiteVideoBlocklistReason::kNavigationBlocklisted);
   blocklist()->AddNavigationToBlocklist(&nav_handle, false);
-  test_clock()->Advance(base::TimeDelta::FromSeconds(1));
+  test_clock()->Advance(base::Seconds(1));
   EXPECT_EQ(CheckBlocklistForMainframeNavigation(url),
             LiteVideoBlocklistReason::kAllowed);
 }
@@ -220,7 +220,7 @@
 
   EXPECT_TRUE(blocklist()->ShouldUseHostPolicy(&duration, &history, &threshold,
                                                &max_hosts));
-  EXPECT_EQ(base::TimeDelta::FromDays(1), duration);
+  EXPECT_EQ(base::Days(1), duration);
   EXPECT_EQ(5u, history);
   EXPECT_EQ(5, threshold);
   EXPECT_EQ(50u, max_hosts);
diff --git a/chrome/browser/local_discovery/local_domain_resolver_unittest.cc b/chrome/browser/local_discovery/local_domain_resolver_unittest.cc
index 27442c8..1eef11fa 100644
--- a/chrome/browser/local_discovery/local_domain_resolver_unittest.cc
+++ b/chrome/browser/local_discovery/local_domain_resolver_unittest.cc
@@ -153,7 +153,7 @@
 
   EXPECT_CALL(*this, AddressCallbackInternal(true, "", "a::1:2:3:4"));
 
-  RunFor(base::TimeDelta::FromMilliseconds(150));
+  RunFor(base::Milliseconds(150));
 }
 
 
@@ -188,7 +188,7 @@
 
   EXPECT_CALL(*this, AddressCallbackInternal(false, "", ""));
 
-  RunFor(base::TimeDelta::FromSeconds(4));
+  RunFor(base::Seconds(4));
 }
 
 }  // namespace
diff --git a/chrome/browser/local_discovery/service_discovery_client_impl.cc b/chrome/browser/local_discovery/service_discovery_client_impl.cc
index f742c38..25d3bc9 100644
--- a/chrome/browser/local_discovery/service_discovery_client_impl.cc
+++ b/chrome/browser/local_discovery/service_discovery_client_impl.cc
@@ -318,7 +318,7 @@
         FROM_HERE,
         base::BindOnce(&ServiceWatcherImpl::SendQuery, AsWeakPtr(),
                        timeout_seconds * 2 /*next_timeout_seconds*/),
-        base::TimeDelta::FromSeconds(timeout_seconds));
+        base::Seconds(timeout_seconds));
   }
 }
 
@@ -541,7 +541,7 @@
 
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
         FROM_HERE, timeout_callback_.callback(),
-        base::TimeDelta::FromMilliseconds(kLocalDomainSecondAddressTimeoutMs));
+        base::Milliseconds(kLocalDomainSecondAddressTimeoutMs));
   } else if (transactions_finished_ == 2
       || address_family_ != net::ADDRESS_FAMILY_UNSPECIFIED) {
     SendResolvedAddresses();
diff --git a/chrome/browser/local_discovery/service_discovery_client_mdns.cc b/chrome/browser/local_discovery/service_discovery_client_mdns.cc
index 6d18c856..7f1a7b5 100644
--- a/chrome/browser/local_discovery/service_discovery_client_mdns.cc
+++ b/chrome/browser/local_discovery/service_discovery_client_mdns.cc
@@ -394,8 +394,8 @@
       FROM_HERE,
       base::BindOnce(&ServiceDiscoveryClientMdns::StartNewClient,
                      weak_ptr_factory_.GetWeakPtr()),
-      base::TimeDelta::FromSeconds(kRestartDelayOnNetworkChangeSeconds *
-                                   (1 << restart_attempts_)));
+      base::Seconds(kRestartDelayOnNetworkChangeSeconds *
+                    (1 << restart_attempts_)));
 }
 
 void ServiceDiscoveryClientMdns::StartNewClient() {
diff --git a/chrome/browser/local_discovery/service_discovery_client_unittest.cc b/chrome/browser/local_discovery/service_discovery_client_unittest.cc
index 4a17b22..c6548a1 100644
--- a/chrome/browser/local_discovery/service_discovery_client_unittest.cc
+++ b/chrome/browser/local_discovery/service_discovery_client_unittest.cc
@@ -254,7 +254,7 @@
                                          "hello._privet._tcp.local"))
       .Times(Exactly(1));
 
-  RunFor(base::TimeDelta::FromSeconds(2));
+  RunFor(base::Seconds(2));
 }
 
 TEST_F(ServiceDiscoveryTest, DiscoverNewServices) {
@@ -272,7 +272,7 @@
 
   EXPECT_CALL(socket_factory_, OnSendTo(_)).Times(2);
 
-  RunFor(base::TimeDelta::FromSeconds(2));
+  RunFor(base::Seconds(2));
 }
 
 // Test that we can query the network with a service name that includes
@@ -292,7 +292,7 @@
 
   EXPECT_CALL(socket_factory_, OnSendTo(_)).Times(2);
 
-  RunFor(base::TimeDelta::FromSeconds(2));
+  RunFor(base::Seconds(2));
 }
 
 TEST_F(ServiceDiscoveryTest, ReadCachedServices) {
@@ -422,7 +422,7 @@
                                          "hello._privet._tcp.local"))
       .Times(Exactly(1));
 
-  RunFor(base::TimeDelta::FromSeconds(2));
+  RunFor(base::Seconds(2));
 
   base::RunLoop().RunUntilIdle();
 }
@@ -515,7 +515,7 @@
 
   // TODO(noamsml): When NSEC record support is added, change this to use an
   // NSEC record.
-  RunFor(base::TimeDelta::FromSeconds(4));
+  RunFor(base::Seconds(4));
 }
 
 TEST_F(ServiceResolverTest, WithNothing) {
@@ -528,7 +528,7 @@
 
   // TODO(noamsml): When NSEC record support is added, change this to use an
   // NSEC record.
-  RunFor(base::TimeDelta::FromSeconds(4));
+  RunFor(base::Seconds(4));
 }
 
 }  // namespace
diff --git a/chrome/browser/lookalikes/lookalike_url_navigation_throttle_browsertest.cc b/chrome/browser/lookalikes/lookalike_url_navigation_throttle_browsertest.cc
index fd0637b..1658918 100644
--- a/chrome/browser/lookalikes/lookalike_url_navigation_throttle_browsertest.cc
+++ b/chrome/browser/lookalikes/lookalike_url_navigation_throttle_browsertest.cc
@@ -751,7 +751,7 @@
   // considered for lookalike suggestions.
   SetEngagementScore(browser(), kNavigatedUrl, kLowEngagement);
   // Advance clock to force a fetch of new engaged sites list.
-  test_clock()->Advance(base::TimeDelta::FromHours(1));
+  test_clock()->Advance(base::Hours(1));
 
   TestInterstitialNotShown(browser(), kNavigatedUrl);
   histograms.ExpectTotalCount(lookalikes::kHistogramName, 1);
@@ -779,7 +779,7 @@
   // considered for lookalike suggestions.
   SetEngagementScore(browser(), kNavigatedUrl, kLowEngagement);
   // Advance clock to force a fetch of new engaged sites list.
-  test_clock()->Advance(base::TimeDelta::FromHours(1));
+  test_clock()->Advance(base::Hours(1));
 
   TestInterstitialNotShown(browser(), kNavigatedUrl);
   histograms.ExpectTotalCount(lookalikes::kHistogramName, 1);
@@ -804,7 +804,7 @@
   // considered for lookalike suggestions.
   SetEngagementScore(browser(), kNavigatedUrl, kLowEngagement);
   // Advance clock to force a fetch of new engaged sites list.
-  test_clock()->Advance(base::TimeDelta::FromHours(1));
+  test_clock()->Advance(base::Hours(1));
 
   TestInterstitialNotShown(browser(), kNavigatedUrl);
   histograms.ExpectTotalCount(lookalikes::kHistogramName, 1);
@@ -913,7 +913,7 @@
   // considered for lookalike suggestions.
   SetEngagementScore(browser(), kNavigatedUrl, kLowEngagement);
   // Advance clock to force a fetch of new engaged sites list.
-  test_clock()->Advance(base::TimeDelta::FromHours(1));
+  test_clock()->Advance(base::Hours(1));
 
   TestInterstitialNotShown(browser(), kNavigatedUrl);
   histograms.ExpectTotalCount(lookalikes::kHistogramName, 0);
@@ -944,7 +944,7 @@
   SetEngagementScore(browser(), GURL("https://1234.com"), kHighEngagement);
   SetEngagementScore(browser(), GURL("https://gooogle.com"), kHighEngagement);
   // Advance clock to force a fetch of new engaged sites list.
-  test_clock()->Advance(base::TimeDelta::FromHours(1));
+  test_clock()->Advance(base::Hours(1));
 
   // Matches test-site.com.tr but only differs in registry.
   TestInterstitialNotShown(browser(), GetURL("test-site.com.tw"));
@@ -970,7 +970,7 @@
 
   SetEngagementScore(browser(), GURL("http://site1.com"), kHighEngagement);
   // Advance clock to force a fetch of new engaged sites list.
-  test_clock()->Advance(base::TimeDelta::FromHours(1));
+  test_clock()->Advance(base::Hours(1));
 
   TestInterstitialNotShown(
       browser(), custom_test_server.GetURL("sité1.com", "/title1.html"));
@@ -1044,7 +1044,7 @@
     SetEngagementScore(browser(), kNavigatedUrl, kLowEngagement);
     // Advance the clock to force LookalikeUrlService to fetch a new engaged
     // site list.
-    test_clock()->Advance(base::TimeDelta::FromHours(1));
+    test_clock()->Advance(base::Hours(1));
 
     base::HistogramTester histograms;
     TestMetricsRecordedAndInterstitialShown(
@@ -1126,7 +1126,7 @@
   // no engaged nonunique site).
   SetEngagementScore(browser(), GURL("http://localhost6.localhost"),
                      kHighEngagement);
-  test_clock()->Advance(base::TimeDelta::FromHours(1));
+  test_clock()->Advance(base::Hours(1));
   // The skeleton of this URL is localhost6.localpost which is at one edit
   // distance from localhost6.localhost. We use localpost here to prevent an
   // early return in LookalikeUrlNavigationThrottle::HandleThrottleRequest().
@@ -1147,7 +1147,7 @@
 
   // Advance the clock to force LookalikeUrlService to fetch a new engaged
   // site list.
-  test_clock()->Advance(base::TimeDelta::FromHours(1));
+  test_clock()->Advance(base::Hours(1));
 
   base::HistogramTester histograms;
   TestMetricsRecordedAndInterstitialShown(
@@ -1179,7 +1179,7 @@
   {
     // Advance the clock to force LookalikeUrlService to fetch a new engaged
     // site list.
-    test_clock()->Advance(base::TimeDelta::FromHours(1));
+    test_clock()->Advance(base::Hours(1));
     base::HistogramTester histograms;
     TestMetricsRecordedAndInterstitialShown(
         browser(), histograms, kNavigatedUrl, kEngagedUrl,
@@ -1192,7 +1192,7 @@
   // Incognito shouldn't record metrics because there are no engaged sites.
   {
     base::HistogramTester histograms;
-    test_clock()->Advance(base::TimeDelta::FromHours(1));
+    test_clock()->Advance(base::Hours(1));
     TestInterstitialNotShown(incognito, kNavigatedUrl);
     histograms.ExpectTotalCount(lookalikes::kHistogramName, 0);
   }
@@ -1204,7 +1204,7 @@
 
   // Incognito should start recording metrics and main profile should stop.
   {
-    test_clock()->Advance(base::TimeDelta::FromHours(1));
+    test_clock()->Advance(base::Hours(1));
 
     base::HistogramTester histograms;
     TestMetricsRecordedAndInterstitialShown(
@@ -1217,7 +1217,7 @@
   // Main profile shouldn't record metrics because there are no engaged sites.
   {
     base::HistogramTester histograms;
-    test_clock()->Advance(base::TimeDelta::FromHours(1));
+    test_clock()->Advance(base::Hours(1));
     TestInterstitialNotShown(browser(), kNavigatedUrl);
     histograms.ExpectTotalCount(lookalikes::kHistogramName, 0);
   }
@@ -1813,7 +1813,7 @@
     for (const TestSite& site : sites) {
       if (params->url_request.url == MakeManifestURL(site.hostname)) {
         if (site.slow_load) {
-          test_clock()->Advance(base::TimeDelta::FromMinutes(15));
+          test_clock()->Advance(base::Minutes(15));
         }
         if (!site.manifest.empty()) {
           // Serve manifest contents:
diff --git a/chrome/browser/lookalikes/lookalike_url_service.cc b/chrome/browser/lookalikes/lookalike_url_service.cc
index bb8d1b2..962f02b 100644
--- a/chrome/browser/lookalikes/lookalike_url_service.cc
+++ b/chrome/browser/lookalikes/lookalike_url_service.cc
@@ -33,8 +33,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kEngagedSiteUpdateInterval =
-    base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kEngagedSiteUpdateInterval = base::Seconds(60);
 
 class LookalikeUrlServiceFactory : public BrowserContextKeyedServiceFactory {
  public:
@@ -115,7 +114,7 @@
     LookalikeUrlService::kManifestFetchDelay{
         &lookalikes::features::kLookalikeDigitalAssetLinks,
         lookalikes::features::kLookalikeDigitalAssetLinksTimeoutParameter,
-        base::TimeDelta::FromSeconds(5)};
+        base::Seconds(5)};
 
 LookalikeUrlService::LookalikeUrlService(Profile* profile)
     : profile_(profile), clock_(base::DefaultClock::GetInstance()) {}
diff --git a/chrome/browser/mac/install_updater.mm b/chrome/browser/mac/install_updater.mm
index 16ddf70..ef842b5 100644
--- a/chrome/browser/mac/install_updater.mm
+++ b/chrome/browser/mac/install_updater.mm
@@ -36,7 +36,7 @@
   if (!process.IsValid())
     return exit_code;
 
-  process.WaitForExitWithTimeout(base::TimeDelta::FromSeconds(120), &exit_code);
+  process.WaitForExitWithTimeout(base::Seconds(120), &exit_code);
 
   return exit_code;
 }
diff --git a/chrome/browser/mac/mac_startup_profiler.cc b/chrome/browser/mac/mac_startup_profiler.cc
index 2ae7fe6..7f9c6e99 100644
--- a/chrome/browser/mac/mac_startup_profiler.cc
+++ b/chrome/browser/mac/mac_startup_profiler.cc
@@ -59,8 +59,8 @@
 void MacStartupProfiler::RecordHistogram(Location location,
                                          const base::TimeDelta& delta) {
   const std::string name(HistogramName(location));
-  base::TimeDelta min = base::TimeDelta::FromMilliseconds(10);
-  base::TimeDelta max = base::TimeDelta::FromMinutes(1);
+  base::TimeDelta min = base::Milliseconds(10);
+  base::TimeDelta max = base::Minutes(1);
   int bucket_count = 100;
 
   // No need to cache the histogram pointers, since each invocation of this
diff --git a/chrome/browser/media/android/cdm/media_drm_origin_id_manager.cc b/chrome/browser/media/android/cdm/media_drm_origin_id_manager.cc
index a9f9908..a63602b 100644
--- a/chrome/browser/media/android/cdm/media_drm_origin_id_manager.cc
+++ b/chrome/browser/media/android/cdm/media_drm_origin_id_manager.cc
@@ -59,13 +59,13 @@
 constexpr int kUMAMaxPreProvisionedOriginIds = 10;
 
 // "expirable_token" is only good for 24 hours.
-constexpr base::TimeDelta kExpirationDelta = base::TimeDelta::FromHours(24);
+constexpr base::TimeDelta kExpirationDelta = base::Hours(24);
 
 // Time to wait before attempting pre-provisioning at startup (if enabled).
-constexpr base::TimeDelta kStartupDelay = base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kStartupDelay = base::Minutes(1);
 
 // Time to wait before logging number of pre-provisioned origin IDs at startup
-constexpr base::TimeDelta kCheckDelay = base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kCheckDelay = base::Minutes(5);
 static_assert(kCheckDelay > kStartupDelay,
               "Must allow time for pre-provisioning to run first");
 
diff --git a/chrome/browser/media/android/cdm/media_drm_origin_id_manager_unittest.cc b/chrome/browser/media/android/cdm/media_drm_origin_id_manager_unittest.cc
index 4670190..36dec59 100644
--- a/chrome/browser/media/android/cdm/media_drm_origin_id_manager_unittest.cc
+++ b/chrome/browser/media/android/cdm/media_drm_origin_id_manager_unittest.cc
@@ -40,9 +40,9 @@
 const char kExpirableToken[] = "expirable_token";
 const char kAvailableOriginIds[] = "origin_ids";
 constexpr size_t kExpectedPreferenceListSize = 2;
-constexpr base::TimeDelta kExpirationDelta = base::TimeDelta::FromHours(24);
+constexpr base::TimeDelta kExpirationDelta = base::Hours(24);
 constexpr size_t kConnectionAttempts = 5;
-constexpr base::TimeDelta kStartupDelay = base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kStartupDelay = base::Minutes(1);
 
 }  // namespace
 
@@ -373,7 +373,7 @@
   // pre-provision more origin Ids.
   DVLOG(1) << "Advancing Time";
   task_environment_.FastForwardBy(kExpirationDelta);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_environment_.FastForwardBy(base::Minutes(1));
   DVLOG(1) << "Adjusted time: " << base::Time::Now();
   PreProvision();
   task_environment_.RunUntilIdle();
diff --git a/chrome/browser/media/android/cdm/per_device_provisioning_permission.cc b/chrome/browser/media/android/cdm/per_device_provisioning_permission.cc
index e8d82d9a..17fc181 100644
--- a/chrome/browser/media/android/cdm/per_device_provisioning_permission.cc
+++ b/chrome/browser/media/android/cdm/per_device_provisioning_permission.cc
@@ -27,7 +27,7 @@
 namespace {
 
 // Only keep track of the last response for a short period of time.
-constexpr base::TimeDelta kLastRequestDelta = base::TimeDelta::FromMinutes(15);
+constexpr base::TimeDelta kLastRequestDelta = base::Minutes(15);
 
 // Keep track of the last response. This is only kept in memory, so once Chrome
 // quits it is forgotten.
diff --git a/chrome/browser/media/cast_mirroring_performance_browsertest.cc b/chrome/browser/media/cast_mirroring_performance_browsertest.cc
index c865853..ec8822c 100644
--- a/chrome/browser/media/cast_mirroring_performance_browsertest.cc
+++ b/chrome/browser/media/cast_mirroring_performance_browsertest.cc
@@ -95,10 +95,8 @@
 
 // These are how long the browser is run with trace event recording taking
 // place.
-constexpr base::TimeDelta kFullRunObservationPeriod =
-    base::TimeDelta::FromSeconds(15);
-constexpr base::TimeDelta kQuickRunObservationPeriod =
-    base::TimeDelta::FromSeconds(4);
+constexpr base::TimeDelta kFullRunObservationPeriod = base::Seconds(15);
+constexpr base::TimeDelta kQuickRunObservationPeriod = base::Seconds(4);
 
 constexpr char kMetricPrefixCastV2[] = "CastV2.";
 constexpr char kMetricTimeBetweenCapturesMs[] = "time_between_captures";
@@ -819,12 +817,12 @@
                      const SharedSenderReceiverConfigs& shared_configs) {
     // Start the in-process receiver that examines audio/video for the expected
     // test patterns.
-    base::TimeDelta delta = base::TimeDelta::FromSeconds(0);
+    base::TimeDelta delta = base::Seconds(0);
     if (HasFlag(kFastClock)) {
-      delta = base::TimeDelta::FromSeconds(10);
+      delta = base::Seconds(10);
     }
     if (HasFlag(kSlowClock)) {
-      delta = base::TimeDelta::FromSeconds(-10);
+      delta = base::Seconds(-10);
     }
 
     cast_environment_ = base::MakeRefCounted<SkewedCastEnvironment>(delta);
@@ -881,8 +879,7 @@
     const std::string receiver_model_name{};
     auto session_params = mirroring::mojom::SessionParameters::New(
         mirroring::mojom::SessionType::AUDIO_AND_VIDEO, endpoint.address(),
-        receiver_model_name,
-        base::TimeDelta::FromMilliseconds(kTargetPlayoutDelayMs));
+        receiver_model_name, base::Milliseconds(kTargetPlayoutDelayMs));
 
     host_->Start(std::move(session_params), std::move(observer_remote),
                  std::move(channel_remote),
diff --git a/chrome/browser/media/cdm_document_service_impl_test.cc b/chrome/browser/media/cdm_document_service_impl_test.cc
index dac34c1c..87bc2895 100644
--- a/chrome/browser/media/cdm_document_service_impl_test.cc
+++ b/chrome/browser/media/cdm_document_service_impl_test.cc
@@ -231,7 +231,7 @@
   base::FilePath cdm_data_file_path = CreateDummyCdmDataFile(
       cdm_data->cdm_store_path_root, cdm_data->origin_id);
 
-  base::Time start = base::Time::Now() - base::TimeDelta::FromHours(1);
+  base::Time start = base::Time::Now() - base::Hours(1);
   base::Time end;  // null time
 
   base::RunLoop loop1;
@@ -273,8 +273,8 @@
   base::FilePath cdm_data_file_path =
       CreateDummyCdmDataFile(cdm_data->cdm_store_path_root, origin_id);
 
-  base::Time start = base::Time::Now() - base::TimeDelta::FromHours(4);
-  base::Time end = start - base::TimeDelta::FromHours(2);
+  base::Time start = base::Time::Now() - base::Hours(4);
+  base::Time end = start - base::Hours(2);
 
   auto null_filter = base::RepeatingCallback<bool(const GURL&)>();
 
@@ -299,7 +299,7 @@
   NavigateToUrlAndCreateCdmDocumentService(GURL(kTestOrigin2));
   base::UnguessableToken origin_id_2 = GetMediaFoundationCdmData()->origin_id;
 
-  base::Time start = base::Time::Now() - base::TimeDelta::FromHours(1);
+  base::Time start = base::Time::Now() - base::Hours(1);
   base::Time end;  // null time
 
   auto null_filter = base::RepeatingCallback<bool(const GURL&)>();
diff --git a/chrome/browser/media/history/media_history_browsertest.cc b/chrome/browser/media/history/media_history_browsertest.cc
index 14497bc..deb7450 100644
--- a/chrome/browser/media/history/media_history_browsertest.cc
+++ b/chrome/browser/media/history/media_history_browsertest.cc
@@ -45,8 +45,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kTestClipDuration =
-    base::TimeDelta::FromMilliseconds(26771);
+constexpr base::TimeDelta kTestClipDuration = base::Milliseconds(26771);
 
 enum class TestState {
   kNormal,
@@ -851,7 +850,7 @@
       EXPECT_TRUE(playbacks[0]->has_audio);
       EXPECT_TRUE(playbacks[0]->has_video);
       EXPECT_EQ(GetTestURL(), playbacks[0]->url);
-      EXPECT_GE(base::TimeDelta::FromSeconds(7), playbacks[0]->watchtime);
+      EXPECT_GE(base::Seconds(7), playbacks[0]->watchtime);
 
       EXPECT_EQ(1u, origins.size());
       EXPECT_EQ(url::Origin::Create(GetTestURL()), origins[0]->origin);
@@ -929,7 +928,7 @@
       EXPECT_TRUE(playbacks[0]->has_audio);
       EXPECT_FALSE(playbacks[0]->has_video);
       EXPECT_EQ(GetTestURL(), playbacks[0]->url);
-      EXPECT_GE(base::TimeDelta::FromSeconds(7), playbacks[0]->watchtime);
+      EXPECT_GE(base::Seconds(7), playbacks[0]->watchtime);
 
       EXPECT_EQ(1u, origins.size());
       EXPECT_EQ(url::Origin::Create(GetTestURL()), origins[0]->origin);
@@ -999,7 +998,7 @@
       EXPECT_FALSE(playbacks[0]->has_audio);
       EXPECT_TRUE(playbacks[0]->has_video);
       EXPECT_EQ(GetTestURL(), playbacks[0]->url);
-      EXPECT_GE(base::TimeDelta::FromSeconds(7), playbacks[0]->watchtime);
+      EXPECT_GE(base::Seconds(7), playbacks[0]->watchtime);
 
       EXPECT_EQ(1u, origins.size());
       EXPECT_EQ(url::Origin::Create(GetTestURL()), origins[0]->origin);
@@ -1136,7 +1135,7 @@
   auto playbacks = GetPlaybacksSync(service);
   if (!playbacks.empty()) {
     ASSERT_EQ(1u, playbacks.size());
-    EXPECT_GE(base::TimeDelta::FromSeconds(2), playbacks[0]->watchtime);
+    EXPECT_GE(base::Seconds(2), playbacks[0]->watchtime);
   }
 }
 
diff --git a/chrome/browser/media/history/media_history_keyed_service_unittest.cc b/chrome/browser/media/history/media_history_keyed_service_unittest.cc
index 2fa1e7b..c8e89be6 100644
--- a/chrome/browser/media/history/media_history_keyed_service_unittest.cc
+++ b/chrome/browser/media/history/media_history_keyed_service_unittest.cc
@@ -219,8 +219,8 @@
   // Record a playback in the database.
   {
     content::MediaPlayerWatchTime watch_time(
-        url, url.GetOrigin(), base::TimeDelta::FromMilliseconds(123),
-        base::TimeDelta::FromMilliseconds(321), true, false);
+        url, url.GetOrigin(), base::Milliseconds(123), base::Milliseconds(321),
+        true, false);
 
     history->AddPage(url, base::Time::Now(), history::SOURCE_BROWSED);
     service()->SavePlayback(watch_time);
@@ -310,8 +310,8 @@
   // Record a playback in the database for |url1a|.
   {
     content::MediaPlayerWatchTime watch_time(
-        url1a, url1a.GetOrigin(), base::TimeDelta::FromMilliseconds(123),
-        base::TimeDelta::FromMilliseconds(321), true, false);
+        url1a, url1a.GetOrigin(), base::Milliseconds(123),
+        base::Milliseconds(321), true, false);
 
     history->AddPage(url1a, base::Time::Now(), history::SOURCE_BROWSED);
     service()->SavePlayback(watch_time);
@@ -324,8 +324,8 @@
   // Record a playback in the database for |url1b|.
   {
     content::MediaPlayerWatchTime watch_time(
-        url1b, url1b.GetOrigin(), base::TimeDelta::FromMilliseconds(123),
-        base::TimeDelta::FromMilliseconds(321), true, false);
+        url1b, url1b.GetOrigin(), base::Milliseconds(123),
+        base::Milliseconds(321), true, false);
 
     history->AddPage(url1b, base::Time::Now(), history::SOURCE_BROWSED);
     service()->SavePlayback(watch_time);
@@ -340,8 +340,8 @@
   // origin-level.
   {
     content::MediaPlayerWatchTime watch_time(
-        url1c, url1c.GetOrigin(), base::TimeDelta::FromMilliseconds(123),
-        base::TimeDelta::FromMilliseconds(321), true, false);
+        url1c, url1c.GetOrigin(), base::Milliseconds(123),
+        base::Milliseconds(321), true, false);
     service()->SavePlayback(watch_time);
 
     service()->SavePlaybackSession(url1c, media_session::MediaMetadata(),
@@ -352,8 +352,8 @@
   // Record a playback in the database for |url2a|.
   {
     content::MediaPlayerWatchTime watch_time(
-        url2a, url2a.GetOrigin(), base::TimeDelta::FromMilliseconds(123),
-        base::TimeDelta::FromMilliseconds(321), true, false);
+        url2a, url2a.GetOrigin(), base::Milliseconds(123),
+        base::Milliseconds(321), true, false);
 
     history->AddPage(url2a, base::Time::Now(), history::SOURCE_BROWSED);
     service()->SavePlayback(watch_time);
@@ -366,8 +366,8 @@
   // Record a playback in the database for |url2b|.
   {
     content::MediaPlayerWatchTime watch_time(
-        url2b, url2b.GetOrigin(), base::TimeDelta::FromMilliseconds(123),
-        base::TimeDelta::FromMilliseconds(321), true, false);
+        url2b, url2b.GetOrigin(), base::Milliseconds(123),
+        base::Milliseconds(321), true, false);
 
     history->AddPage(url2b, base::Time::Now(), history::SOURCE_BROWSED);
     service()->SavePlayback(watch_time);
@@ -504,8 +504,8 @@
   // Record a playback in the database for |url1a|.
   {
     content::MediaPlayerWatchTime watch_time(
-        url1a, url1a.GetOrigin(), base::TimeDelta::FromMilliseconds(123),
-        base::TimeDelta::FromMilliseconds(321), true, false);
+        url1a, url1a.GetOrigin(), base::Milliseconds(123),
+        base::Milliseconds(321), true, false);
 
     history->AddPage(url1a, base::Time::Now(), history::SOURCE_BROWSED);
     service()->SavePlayback(watch_time);
@@ -518,8 +518,8 @@
   // Record a playback in the database for |url1b|.
   {
     content::MediaPlayerWatchTime watch_time(
-        url1b, url1b.GetOrigin(), base::TimeDelta::FromMilliseconds(123),
-        base::TimeDelta::FromMilliseconds(321), true, false);
+        url1b, url1b.GetOrigin(), base::Milliseconds(123),
+        base::Milliseconds(321), true, false);
 
     history->AddPage(url1b, base::Time::Now(), history::SOURCE_BROWSED);
     service()->SavePlayback(watch_time);
@@ -534,8 +534,8 @@
   // origin-level.
   {
     content::MediaPlayerWatchTime watch_time(
-        url1c, url1c.GetOrigin(), base::TimeDelta::FromMilliseconds(123),
-        base::TimeDelta::FromMilliseconds(321), true, false);
+        url1c, url1c.GetOrigin(), base::Milliseconds(123),
+        base::Milliseconds(321), true, false);
     service()->SavePlayback(watch_time);
 
     service()->SavePlaybackSession(url1c, media_session::MediaMetadata(),
@@ -546,8 +546,8 @@
   // Record a playback in the database for |url2a|.
   {
     content::MediaPlayerWatchTime watch_time(
-        url2a, url2a.GetOrigin(), base::TimeDelta::FromMilliseconds(123),
-        base::TimeDelta::FromMilliseconds(321), true, false);
+        url2a, url2a.GetOrigin(), base::Milliseconds(123),
+        base::Milliseconds(321), true, false);
 
     history->AddPage(url2a, base::Time::Now(), history::SOURCE_BROWSED);
     service()->SavePlayback(watch_time);
@@ -560,8 +560,8 @@
   // Record a playback in the database for |url2b|.
   {
     content::MediaPlayerWatchTime watch_time(
-        url2b, url2b.GetOrigin(), base::TimeDelta::FromMilliseconds(123),
-        base::TimeDelta::FromMilliseconds(321), true, false);
+        url2b, url2b.GetOrigin(), base::Milliseconds(123),
+        base::Milliseconds(321), true, false);
 
     history->AddPage(url2b, base::Time::Now(), history::SOURCE_BROWSED);
     service()->SavePlayback(watch_time);
@@ -698,8 +698,8 @@
   // Record a playback in the database for |url1a|.
   {
     content::MediaPlayerWatchTime watch_time(
-        url1a, url1a.GetOrigin(), base::TimeDelta::FromMinutes(10),
-        base::TimeDelta::FromMilliseconds(321), true, true);
+        url1a, url1a.GetOrigin(), base::Minutes(10), base::Milliseconds(321),
+        true, true);
 
     history->AddPage(url1a, base::Time::Now(), history::SOURCE_BROWSED);
     service()->SavePlayback(watch_time);
@@ -712,8 +712,8 @@
   // Record a playback in the database for |url1b|.
   {
     content::MediaPlayerWatchTime watch_time(
-        url1b, url1b.GetOrigin(), base::TimeDelta::FromMinutes(25),
-        base::TimeDelta::FromMilliseconds(321), true, true);
+        url1b, url1b.GetOrigin(), base::Minutes(25), base::Milliseconds(321),
+        true, true);
 
     history->AddPage(url1b, base::Time::Now(), history::SOURCE_BROWSED);
     service()->SavePlayback(watch_time);
@@ -726,8 +726,8 @@
   // Record a playback in the database for |url1c|.
   {
     content::MediaPlayerWatchTime watch_time(
-        url1c, url1c.GetOrigin(), base::TimeDelta::FromMilliseconds(123),
-        base::TimeDelta::FromMilliseconds(321), true, false);
+        url1c, url1c.GetOrigin(), base::Milliseconds(123),
+        base::Milliseconds(321), true, false);
 
     history->AddPage(url1c, base::Time::Now(), history::SOURCE_BROWSED);
     service()->SavePlayback(watch_time);
@@ -740,8 +740,8 @@
   // Record a playback in the database for |url2a|.
   {
     content::MediaPlayerWatchTime watch_time(
-        url2a, url2a.GetOrigin(), base::TimeDelta::FromMinutes(10),
-        base::TimeDelta::FromMilliseconds(321), true, true);
+        url2a, url2a.GetOrigin(), base::Minutes(10), base::Milliseconds(321),
+        true, true);
 
     history->AddPage(url2a, base::Time::Now(), history::SOURCE_BROWSED);
     service()->SavePlayback(watch_time);
@@ -754,8 +754,8 @@
   // Record a playback in the database for |url2b|.
   {
     content::MediaPlayerWatchTime watch_time(
-        url2b, url2b.GetOrigin(), base::TimeDelta::FromMinutes(20),
-        base::TimeDelta::FromMilliseconds(321), true, true);
+        url2b, url2b.GetOrigin(), base::Minutes(20), base::Milliseconds(321),
+        true, true);
 
     history->AddPage(url2b, base::Time::Now(), history::SOURCE_BROWSED);
     service()->SavePlayback(watch_time);
@@ -794,13 +794,11 @@
     auto origins = GetOriginRowsSync();
     ASSERT_EQ(2u, origins.size());
 
-    EXPECT_EQ(base::TimeDelta::FromMinutes(35),
-              origins[0]->cached_audio_video_watchtime);
+    EXPECT_EQ(base::Minutes(35), origins[0]->cached_audio_video_watchtime);
     EXPECT_EQ(origins[0]->actual_audio_video_watchtime,
               origins[0]->cached_audio_video_watchtime);
 
-    EXPECT_EQ(base::TimeDelta::FromMinutes(30),
-              origins[1]->cached_audio_video_watchtime);
+    EXPECT_EQ(base::Minutes(30), origins[1]->cached_audio_video_watchtime);
     EXPECT_EQ(origins[1]->actual_audio_video_watchtime,
               origins[1]->cached_audio_video_watchtime);
   }
@@ -855,8 +853,7 @@
     EXPECT_EQ(origins[0]->actual_audio_video_watchtime,
               origins[0]->cached_audio_video_watchtime);
 
-    EXPECT_EQ(base::TimeDelta::FromMinutes(30),
-              origins[1]->cached_audio_video_watchtime);
+    EXPECT_EQ(base::Minutes(30), origins[1]->cached_audio_video_watchtime);
     EXPECT_EQ(origins[1]->actual_audio_video_watchtime,
               origins[1]->cached_audio_video_watchtime);
   }
diff --git a/chrome/browser/media/history/media_history_origin_table.cc b/chrome/browser/media/history/media_history_origin_table.cc
index 7033ab2..0222dd446 100644
--- a/chrome/browser/media/history/media_history_origin_table.cc
+++ b/chrome/browser/media/history/media_history_origin_table.cc
@@ -176,7 +176,7 @@
   while (statement.Step()) {
     url::Origin origin = url::Origin::Create(GURL(statement.ColumnString(0)));
     base::TimeDelta cached_audio_video_watchtime =
-        base::TimeDelta::FromSeconds(statement.ColumnInt64(1));
+        base::Seconds(statement.ColumnInt64(1));
 
     if (audio_video_watchtime_min <= cached_audio_video_watchtime)
       origins.push_back(std::move(origin));
diff --git a/chrome/browser/media/history/media_history_playback_table.cc b/chrome/browser/media/history/media_history_playback_table.cc
index 92885983..8e8c006 100644
--- a/chrome/browser/media/history/media_history_playback_table.cc
+++ b/chrome/browser/media/history/media_history_playback_table.cc
@@ -107,14 +107,12 @@
         mojom::MediaHistoryPlaybackRow::New());
 
     playback->url = GURL(statement.ColumnString(0));
-    playback->watchtime =
-        base::TimeDelta::FromSeconds(statement.ColumnInt64(1));
+    playback->watchtime = base::Seconds(statement.ColumnInt64(1));
     playback->has_audio = statement.ColumnBool(2);
     playback->has_video = statement.ColumnBool(3);
-    playback->last_updated_time =
-        base::Time::FromDeltaSinceWindowsEpoch(
-            base::TimeDelta::FromSeconds(statement.ColumnInt64(4)))
-            .ToJsTime();
+    playback->last_updated_time = base::Time::FromDeltaSinceWindowsEpoch(
+                                      base::Seconds(statement.ColumnInt64(4)))
+                                      .ToJsTime();
 
     playbacks.push_back(std::move(playback));
   }
diff --git a/chrome/browser/media/history/media_history_session_table.cc b/chrome/browser/media/history/media_history_session_table.cc
index a9fcdcd..75ed5c7 100644
--- a/chrome/browser/media/history/media_history_session_table.cc
+++ b/chrome/browser/media/history/media_history_session_table.cc
@@ -131,8 +131,8 @@
           .c_str()));
 
   while (statement.Step()) {
-    auto duration = base::TimeDelta::FromMilliseconds(statement.ColumnInt64(2));
-    auto position = base::TimeDelta::FromMilliseconds(statement.ColumnInt64(3));
+    auto duration = base::Milliseconds(statement.ColumnInt64(2));
+    auto position = base::Milliseconds(statement.ColumnInt64(3));
 
     // Skip any that should not be shown.
     if (filter.has_value() && !filter->Run(duration, position))
@@ -147,10 +147,9 @@
     session->metadata.artist = statement.ColumnString16(5);
     session->metadata.album = statement.ColumnString16(6);
     session->metadata.source_title = statement.ColumnString16(7);
-    session->last_updated_time =
-        base::Time::FromDeltaSinceWindowsEpoch(
-            base::TimeDelta::FromSeconds(statement.ColumnInt64(8)))
-            .ToJsTime();
+    session->last_updated_time = base::Time::FromDeltaSinceWindowsEpoch(
+                                     base::Seconds(statement.ColumnInt64(8)))
+                                     .ToJsTime();
 
     sessions.push_back(std::move(session));
 
diff --git a/chrome/browser/media/history/media_history_store.cc b/chrome/browser/media/history/media_history_store.cc
index beee669d..34c20d7 100644
--- a/chrome/browser/media/history/media_history_store.cc
+++ b/chrome/browser/media/history/media_history_store.cc
@@ -478,14 +478,13 @@
     mojom::MediaHistoryOriginRowPtr origin(mojom::MediaHistoryOriginRow::New());
 
     origin->origin = url::Origin::Create(GURL(statement.ColumnString(0)));
-    origin->last_updated_time =
-        base::Time::FromDeltaSinceWindowsEpoch(
-            base::TimeDelta::FromSeconds(statement.ColumnInt64(1)))
-            .ToJsTime();
+    origin->last_updated_time = base::Time::FromDeltaSinceWindowsEpoch(
+                                    base::Seconds(statement.ColumnInt64(1)))
+                                    .ToJsTime();
     origin->cached_audio_video_watchtime =
-        base::TimeDelta::FromSeconds(statement.ColumnInt64(2));
+        base::Seconds(statement.ColumnInt64(2));
     origin->actual_audio_video_watchtime =
-        base::TimeDelta::FromSeconds(statement.ColumnInt64(3));
+        base::Seconds(statement.ColumnInt64(3));
 
     origins.push_back(std::move(origin));
   }
diff --git a/chrome/browser/media/history/media_history_store_unittest.cc b/chrome/browser/media/history/media_history_store_unittest.cc
index 12c44407..f209c86 100644
--- a/chrome/browser/media/history/media_history_store_unittest.cc
+++ b/chrome/browser/media/history/media_history_store_unittest.cc
@@ -227,14 +227,12 @@
 TEST_P(MediaHistoryStoreUnitTest, SavePlayback) {
   base::HistogramTester histogram_tester;
 
-  const auto now_before =
-      (base::Time::Now() - base::TimeDelta::FromMinutes(1)).ToJsTime();
+  const auto now_before = (base::Time::Now() - base::Minutes(1)).ToJsTime();
 
   // Create a media player watch time and save it to the playbacks table.
   GURL url("http://google.com/test");
-  content::MediaPlayerWatchTime watch_time(url, url.GetOrigin(),
-                                           base::TimeDelta::FromSeconds(60),
-                                           base::TimeDelta(), true, false);
+  content::MediaPlayerWatchTime watch_time(
+      url, url.GetOrigin(), base::Seconds(60), base::TimeDelta(), true, false);
   service()->SavePlayback(watch_time);
   const auto now_after_a = base::Time::Now().ToJsTime();
 
@@ -258,14 +256,14 @@
     EXPECT_EQ("http://google.com/test", playbacks[0]->url.spec());
     EXPECT_FALSE(playbacks[0]->has_audio);
     EXPECT_TRUE(playbacks[0]->has_video);
-    EXPECT_EQ(base::TimeDelta::FromSeconds(60), playbacks[0]->watchtime);
+    EXPECT_EQ(base::Seconds(60), playbacks[0]->watchtime);
     EXPECT_LE(now_before, playbacks[0]->last_updated_time);
     EXPECT_GE(now_after_a, playbacks[0]->last_updated_time);
 
     EXPECT_EQ("http://google.com/test", playbacks[1]->url.spec());
     EXPECT_FALSE(playbacks[1]->has_audio);
     EXPECT_TRUE(playbacks[1]->has_video);
-    EXPECT_EQ(base::TimeDelta::FromSeconds(60), playbacks[1]->watchtime);
+    EXPECT_EQ(base::Seconds(60), playbacks[1]->watchtime);
     EXPECT_LE(now_before, playbacks[1]->last_updated_time);
     EXPECT_GE(now_after_b, playbacks[1]->last_updated_time);
   }
@@ -295,9 +293,8 @@
 TEST_P(MediaHistoryStoreUnitTest, SavePlayback_BadOrigin) {
   GURL url("http://google.com/test");
   GURL url2("http://google.co.uk/test");
-  content::MediaPlayerWatchTime watch_time(url, url2.GetOrigin(),
-                                           base::TimeDelta::FromSeconds(60),
-                                           base::TimeDelta(), true, false);
+  content::MediaPlayerWatchTime watch_time(
+      url, url2.GetOrigin(), base::Seconds(60), base::TimeDelta(), true, false);
   service()->SavePlayback(watch_time);
 
   // Verify that the origin and playbacks table are empty.
@@ -328,8 +325,8 @@
     // Create a media player watch time and save it to the playbacks table.
     GURL url("http://google.com/test");
     content::MediaPlayerWatchTime watch_time(
-        url, url.GetOrigin(), base::TimeDelta::FromMilliseconds(123),
-        base::TimeDelta::FromMilliseconds(321), true, false);
+        url, url.GetOrigin(), base::Milliseconds(123), base::Milliseconds(321),
+        true, false);
     service()->SavePlayback(watch_time);
   }
 
@@ -451,8 +448,8 @@
   {
     // Record a watchtime for audio/video for 30 seconds.
     content::MediaPlayerWatchTime watch_time(
-        url, url.GetOrigin(), base::TimeDelta::FromSeconds(30),
-        base::TimeDelta(), true /* has_video */, true /* has_audio */);
+        url, url.GetOrigin(), base::Seconds(30), base::TimeDelta(),
+        true /* has_video */, true /* has_audio */);
     service()->SavePlayback(watch_time);
     WaitForDB();
   }
@@ -460,8 +457,8 @@
   {
     // Record a watchtime for audio/video for 60 seconds.
     content::MediaPlayerWatchTime watch_time(
-        url, url.GetOrigin(), base::TimeDelta::FromSeconds(60),
-        base::TimeDelta(), true /* has_video */, true /* has_audio */);
+        url, url.GetOrigin(), base::Seconds(60), base::TimeDelta(),
+        true /* has_video */, true /* has_audio */);
     service()->SavePlayback(watch_time);
     WaitForDB();
   }
@@ -469,8 +466,8 @@
   {
     // Record an audio-only watchtime for 30 seconds.
     content::MediaPlayerWatchTime watch_time(
-        url, url.GetOrigin(), base::TimeDelta::FromSeconds(30),
-        base::TimeDelta(), false /* has_video */, true /* has_audio */);
+        url, url.GetOrigin(), base::Seconds(30), base::TimeDelta(),
+        false /* has_video */, true /* has_audio */);
     service()->SavePlayback(watch_time);
     WaitForDB();
   }
@@ -478,8 +475,8 @@
   {
     // Record a video-only watchtime for 30 seconds.
     content::MediaPlayerWatchTime watch_time(
-        url, url.GetOrigin(), base::TimeDelta::FromSeconds(30),
-        base::TimeDelta(), true /* has_video */, false /* has_audio */);
+        url, url.GetOrigin(), base::Seconds(30), base::TimeDelta(),
+        true /* has_video */, false /* has_audio */);
     service()->SavePlayback(watch_time);
     WaitForDB();
   }
@@ -489,8 +486,8 @@
   {
     // Record a watchtime for audio/video for 60 seconds on a different origin.
     content::MediaPlayerWatchTime watch_time(
-        url_alt, url_alt.GetOrigin(), base::TimeDelta::FromSeconds(30),
-        base::TimeDelta(), true /* has_video */, true /* has_audio */);
+        url_alt, url_alt.GetOrigin(), base::Seconds(30), base::TimeDelta(),
+        true /* has_video */, true /* has_audio */);
     service()->SavePlayback(watch_time);
     WaitForDB();
   }
@@ -526,8 +523,7 @@
     EXPECT_EQ(2u, origins.size());
 
     EXPECT_EQ("http://google.com", origins[0]->origin.Serialize());
-    EXPECT_EQ(base::TimeDelta::FromSeconds(90),
-              origins[0]->cached_audio_video_watchtime);
+    EXPECT_EQ(base::Seconds(90), origins[0]->cached_audio_video_watchtime);
     EXPECT_NEAR(url_now_before, origins[0]->last_updated_time,
                 kTimeErrorMargin);
     EXPECT_GE(url_now_after, origins[0]->last_updated_time);
@@ -535,8 +531,7 @@
               origins[0]->actual_audio_video_watchtime);
 
     EXPECT_EQ("http://example.org", origins[1]->origin.Serialize());
-    EXPECT_EQ(base::TimeDelta::FromSeconds(30),
-              origins[1]->cached_audio_video_watchtime);
+    EXPECT_EQ(base::Seconds(30), origins[1]->cached_audio_video_watchtime);
     EXPECT_NEAR(url_now_before, origins[1]->last_updated_time,
                 kTimeErrorMargin);
     EXPECT_GE(url_alt_after, origins[1]->last_updated_time);
@@ -551,12 +546,12 @@
 TEST_P(MediaHistoryStoreUnitTest, GetOriginsWithHighWatchTime) {
   const GURL url("http://google.com/test");
   const GURL url_alt("http://example.org/test");
-  const base::TimeDelta min_watch_time = base::TimeDelta::FromMinutes(30);
+  const base::TimeDelta min_watch_time = base::Minutes(30);
 
   {
     // Record a watch time that isn't high enough to get with our request.
     content::MediaPlayerWatchTime watch_time(
-        url, url.GetOrigin(), min_watch_time - base::TimeDelta::FromSeconds(1),
+        url, url.GetOrigin(), min_watch_time - base::Seconds(1),
         base::TimeDelta(), true /* has_video */, true /* has_audio */);
     service()->SavePlayback(watch_time);
     WaitForDB();
diff --git a/chrome/browser/media/media_engagement_browsertest.cc b/chrome/browser/media/media_engagement_browsertest.cc
index 07b7731..a1527128 100644
--- a/chrome/browser/media/media_engagement_browsertest.cc
+++ b/chrome/browser/media/media_engagement_browsertest.cc
@@ -78,7 +78,7 @@
   // Waits until WasRecentlyAudible is true.
   void WaitForWasRecentlyAudible() {
     if (!audible_helper_->WasRecentlyAudible()) {
-      timer_.Start(FROM_HERE, base::TimeDelta::FromMicroseconds(100),
+      timer_.Start(FROM_HERE, base::Microseconds(100),
                    base::BindRepeating(
                        &WasRecentlyAudibleWatcher::TestWasRecentlyAudible,
                        base::Unretained(this)));
@@ -311,7 +311,7 @@
 
   const base::TimeDelta kMaxWaitingTime =
       MediaEngagementContentsObserver::kSignificantMediaPlaybackTime +
-      base::TimeDelta::FromSeconds(2);
+      base::Seconds(2);
 };
 
 // Class used to test the MEI preload component.
@@ -356,7 +356,7 @@
 IN_PROC_BROWSER_TEST_F(MediaEngagementBrowserTest,
                        DoNotRecordEngagement_NotTime) {
   LoadTestPageAndWaitForPlayAndAudible("engagement_test.html", false);
-  Advance(base::TimeDelta::FromSeconds(1));
+  Advance(base::Seconds(1));
   CloseTab();
   ExpectScores(1, 0);
 }
@@ -372,7 +372,7 @@
 IN_PROC_BROWSER_TEST_F(MediaEngagementBrowserTest,
                        MAYBE_DoNotRecordEngagement_NotTime_AudioOnly) {
   LoadTestPageAndWaitForPlayAndAudible("engagement_test_audio.html", false);
-  Advance(base::TimeDelta::FromSeconds(1));
+  Advance(base::Seconds(1));
   CloseTab();
   ExpectScores(1, 0);
 }
@@ -423,7 +423,7 @@
 IN_PROC_BROWSER_TEST_F(MediaEngagementBrowserTest,
                        DISABLED_DoNotRecordEngagement_PlaybackStopped) {
   LoadTestPageAndWaitForPlayAndAudible("engagement_test.html", false);
-  Advance(base::TimeDelta::FromSeconds(1));
+  Advance(base::Seconds(1));
   ExecuteScript("document.getElementById(\"media\").pause();");
   AdvanceMeaningfulPlaybackTime();
   CloseTab();
@@ -441,7 +441,7 @@
 IN_PROC_BROWSER_TEST_F(MediaEngagementBrowserTest,
                        MAYBE_DoNotRecordEngagement_PlaybackStopped_AudioOnly) {
   LoadTestPageAndWaitForPlayAndAudible("engagement_test_audio.html", false);
-  Advance(base::TimeDelta::FromSeconds(1));
+  Advance(base::Seconds(1));
   ExecuteScript("document.getElementById(\"media\").pause();");
   AdvanceMeaningfulPlaybackTime();
   CloseTab();
@@ -620,7 +620,7 @@
 IN_PROC_BROWSER_TEST_F(MediaEngagementBrowserTest,
                        RecordAudibleBasedOnShortTime) {
   LoadTestPageAndWaitForPlayAndAudible("engagement_test.html", false);
-  Advance(base::TimeDelta::FromSeconds(4));
+  Advance(base::Seconds(4));
   CloseTab();
   ExpectScores(1, 0);
 }
diff --git a/chrome/browser/media/media_engagement_contents_observer.cc b/chrome/browser/media/media_engagement_contents_observer.cc
index 3a5b3a5..8b076894 100644
--- a/chrome/browser/media/media_engagement_contents_observer.cc
+++ b/chrome/browser/media/media_engagement_contents_observer.cc
@@ -47,7 +47,7 @@
     gfx::Size(200, 140);
 
 const base::TimeDelta MediaEngagementContentsObserver::kMaxShortPlaybackTime =
-    base::TimeDelta::FromSeconds(3);
+    base::Seconds(3);
 
 const char* const
     MediaEngagementContentsObserver::kHistogramScoreAtPlaybackName =
@@ -71,7 +71,7 @@
 
 const base::TimeDelta
     MediaEngagementContentsObserver::kSignificantMediaPlaybackTime =
-        base::TimeDelta::FromSeconds(7);
+        base::Seconds(7);
 
 MediaEngagementContentsObserver::MediaEngagementContentsObserver(
     content::WebContents* web_contents,
diff --git a/chrome/browser/media/media_engagement_contents_observer_unittest.cc b/chrome/browser/media/media_engagement_contents_observer_unittest.cc
index 3351f83..df4e301 100644
--- a/chrome/browser/media/media_engagement_contents_observer_unittest.cc
+++ b/chrome/browser/media/media_engagement_contents_observer_unittest.cc
@@ -154,7 +154,7 @@
   }
 
   void SimulatePlaybackStopped(int id) {
-    SimulatePlaybackStoppedWithTime(id, true, base::TimeDelta::FromSeconds(0));
+    SimulatePlaybackStoppedWithTime(id, true, base::Seconds(0));
   }
 
   void SimulateMutedStateChange(int id, bool muted) {
@@ -396,9 +396,7 @@
 
   base::Time Now() { return test_clock_.Now(); }
 
-  void Advance15Minutes() {
-    test_clock_.Advance(base::TimeDelta::FromMinutes(15));
-  }
+  void Advance15Minutes() { test_clock_.Advance(base::Minutes(15)); }
 
   ukm::TestAutoSetUkmRecorder& test_ukm_recorder() {
     return test_ukm_recorder_;
@@ -420,7 +418,7 @@
 
   const base::TimeDelta kMaxWaitingTime =
       MediaEngagementContentsObserver::kSignificantMediaPlaybackTime +
-      base::TimeDelta::FromSeconds(2);
+      base::Seconds(2);
 };
 
 // TODO(mlamouri): test that visits are not recorded multiple times when a
@@ -1217,20 +1215,20 @@
 
 TEST_F(MediaEngagementContentsObserverTest, RecordPlaybackTime) {
   SimulateSignificantAudioPlayer(0);
-  SimulatePlaybackStoppedWithTime(0, false, base::TimeDelta::FromSeconds(3));
-  ExpectPlaybackTime(0, base::TimeDelta::FromSeconds(3));
+  SimulatePlaybackStoppedWithTime(0, false, base::Seconds(3));
+  ExpectPlaybackTime(0, base::Seconds(3));
 
   SimulateSignificantAudioPlayer(0);
-  SimulatePlaybackStoppedWithTime(0, false, base::TimeDelta::FromSeconds(6));
-  ExpectPlaybackTime(0, base::TimeDelta::FromSeconds(9));
+  SimulatePlaybackStoppedWithTime(0, false, base::Seconds(6));
+  ExpectPlaybackTime(0, base::Seconds(9));
 
   SimulateSignificantAudioPlayer(0);
-  SimulatePlaybackStoppedWithTime(0, true, base::TimeDelta::FromSeconds(2));
-  ExpectPlaybackTime(0, base::TimeDelta::FromSeconds(11));
+  SimulatePlaybackStoppedWithTime(0, true, base::Seconds(2));
+  ExpectPlaybackTime(0, base::Seconds(11));
 
   SimulateSignificantAudioPlayer(0);
-  SimulatePlaybackStoppedWithTime(0, false, base::TimeDelta::FromSeconds(2));
-  ExpectPlaybackTime(0, base::TimeDelta::FromSeconds(2));
+  SimulatePlaybackStoppedWithTime(0, false, base::Seconds(2));
+  ExpectPlaybackTime(0, base::Seconds(2));
 }
 
 TEST_F(MediaEngagementContentsObserverTest, ShortMediaIgnored) {
@@ -1241,14 +1239,14 @@
   SimulateSignificantAudioPlayer(0);
   SimulateSignificantPlaybackTimeForPlayer(0);
   SimulateSignificantVideoPlayer(1);
-  SimulatePlaybackStoppedWithTime(1, true, base::TimeDelta::FromSeconds(1));
+  SimulatePlaybackStoppedWithTime(1, true, base::Seconds(1));
   SimulateSignificantVideoPlayer(2);
   SimulateSignificantPlaybackTimeForPlayer(2);
 
   // Navigate to a sub page and continue watching.
   Navigate(GURL("https://www.google.com/test"));
   SimulateSignificantAudioPlayer(1);
-  SimulatePlaybackStoppedWithTime(1, true, base::TimeDelta::FromSeconds(2));
+  SimulatePlaybackStoppedWithTime(1, true, base::Seconds(2));
 
   // Test that when we navigate to a new origin the audible players the scores
   // are recorded and we log extra UKM events with the times.
@@ -1262,12 +1260,12 @@
   Navigate(origin.GetURL());
 
   SimulateSignificantAudioPlayer(0);
-  SimulatePlaybackStoppedWithTime(0, false, base::TimeDelta::FromSeconds(8));
+  SimulatePlaybackStoppedWithTime(0, false, base::Seconds(8));
   SimulateSignificantPlaybackTimeForPlayer(0);
 
   SimulateSignificantAudioPlayer(0);
-  SimulatePlaybackStoppedWithTime(0, true, base::TimeDelta::FromSeconds(2));
-  ExpectPlaybackTime(0, base::TimeDelta::FromSeconds(10));
+  SimulatePlaybackStoppedWithTime(0, true, base::Seconds(2));
+  ExpectPlaybackTime(0, base::Seconds(10));
 
   SimulateDestroy();
   ExpectScores(origin, 0, 1, 0);
@@ -1279,7 +1277,7 @@
   Navigate(origin.GetURL());
 
   SimulateSignificantAudioPlayer(0);
-  SimulatePlaybackStoppedWithTime(0, false, base::TimeDelta::FromSeconds(2));
+  SimulatePlaybackStoppedWithTime(0, false, base::Seconds(2));
 
   SimulateDestroy();
   ExpectScores(origin, 0, 1, 0);
diff --git a/chrome/browser/media/media_engagement_score_unittest.cc b/chrome/browser/media/media_engagement_score_unittest.cc
index 35973ac..fd24ed8 100644
--- a/chrome/browser/media/media_engagement_score_unittest.cc
+++ b/chrome/browser/media/media_engagement_score_unittest.cc
@@ -74,7 +74,7 @@
   }
 
   void UpdateScore(MediaEngagementScore* score) {
-    test_clock.SetNow(test_clock.Now() + base::TimeDelta::FromHours(1));
+    test_clock.SetNow(test_clock.Now() + base::Hours(1));
 
     score->IncrementVisits();
     score->IncrementMediaPlaybacks();
diff --git a/chrome/browser/media/media_engagement_service_unittest.cc b/chrome/browser/media/media_engagement_service_unittest.cc
index 0e1158d..2f8975b 100644
--- a/chrome/browser/media/media_engagement_service_unittest.cc
+++ b/chrome/browser/media/media_engagement_service_unittest.cc
@@ -47,7 +47,7 @@
 base::FilePath g_temp_history_dir;
 
 // History is automatically expired after 90 days.
-base::TimeDelta kHistoryExpirationThreshold = base::TimeDelta::FromDays(90);
+base::TimeDelta kHistoryExpirationThreshold = base::Days(90);
 
 // Waits until a change is observed in media engagement content settings.
 class MediaEngagementChangeWaiter : public content_settings::Observer {
@@ -207,9 +207,7 @@
     ChromeRenderViewHostTestHarness::TearDown();
   }
 
-  void AdvanceClock() {
-    test_clock_.SetNow(Now() + base::TimeDelta::FromHours(1));
-  }
+  void AdvanceClock() { test_clock_.SetNow(Now() + base::Hours(1)); }
 
   void RecordVisit(const url::Origin& origin) { service_->RecordVisit(origin); }
 
@@ -498,11 +496,10 @@
   SetScores(origin4, MediaEngagementScore::GetScoreMinVisits(), 10);
 
   base::Time today = GetReferenceTime();
-  base::Time yesterday = GetReferenceTime() - base::TimeDelta::FromDays(1);
-  base::Time yesterday_afternoon = GetReferenceTime() -
-                                   base::TimeDelta::FromDays(1) +
-                                   base::TimeDelta::FromHours(4);
-  base::Time yesterday_week = GetReferenceTime() - base::TimeDelta::FromDays(8);
+  base::Time yesterday = GetReferenceTime() - base::Days(1);
+  base::Time yesterday_afternoon =
+      GetReferenceTime() - base::Days(1) + base::Hours(4);
+  base::Time yesterday_week = GetReferenceTime() - base::Days(8);
   SetNow(today);
 
   history::HistoryService* history = HistoryServiceFactory::GetForProfile(
@@ -648,7 +645,7 @@
   // Now, fast forward time to ensure that the expiration job is completed. This
   // will start by triggering the backend initialization. 30 seconds is the
   // value of kExpirationDelaySec.
-  mock_time_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(30));
+  mock_time_task_runner_->FastForwardBy(base::Seconds(30));
   waiter.Wait();
 
   // Check the scores for the test origins.
@@ -677,10 +674,9 @@
   SetScores(origin4, MediaEngagementScore::GetScoreMinVisits(), 10);
 
   base::Time today = GetReferenceTime();
-  base::Time yesterday_afternoon = GetReferenceTime() -
-                                   base::TimeDelta::FromDays(1) +
-                                   base::TimeDelta::FromHours(4);
-  base::Time yesterday_week = GetReferenceTime() - base::TimeDelta::FromDays(8);
+  base::Time yesterday_afternoon =
+      GetReferenceTime() - base::Days(1) + base::Hours(4);
+  base::Time yesterday_week = GetReferenceTime() - base::Days(8);
   SetNow(today);
 
   history::HistoryService* history = HistoryServiceFactory::GetForProfile(
@@ -790,8 +786,7 @@
   SetScores(origin, 1, 1);
   SetLastMediaPlaybackTime(origin, today);
 
-  ClearDataBetweenTime(today - base::TimeDelta::FromDays(2),
-                       today - base::TimeDelta::FromDays(1));
+  ClearDataBetweenTime(today - base::Days(2), today - base::Days(1));
   ExpectScores(origin, 0.05, 1, 1, today);
 }
 
@@ -801,8 +796,8 @@
   url::Origin origin2 = url::Origin::Create(GURL("https://www.google.co.uk"));
 
   base::Time today = GetReferenceTime();
-  base::Time yesterday = today - base::TimeDelta::FromDays(1);
-  base::Time two_days_ago = today - base::TimeDelta::FromDays(2);
+  base::Time yesterday = today - base::Days(1);
+  base::Time two_days_ago = today - base::Days(2);
   SetNow(today);
 
   SetScores(origin1, 1, 1);
@@ -823,8 +818,7 @@
   SetNow(GetReferenceTime());
   SetScores(origin, 1, 0);
 
-  ClearDataBetweenTime(today - base::TimeDelta::FromDays(2),
-                       today - base::TimeDelta::FromDays(1));
+  ClearDataBetweenTime(today - base::Days(2), today - base::Days(1));
   ExpectScores(origin, 0.0, 1, 0, TimeNotSet());
 }
 
@@ -833,8 +827,8 @@
   url::Origin origin2 = url::Origin::Create(GURL("https://www.google.co.uk"));
 
   base::Time today = GetReferenceTime();
-  base::Time yesterday = today - base::TimeDelta::FromDays(1);
-  base::Time two_days_ago = today - base::TimeDelta::FromDays(2);
+  base::Time yesterday = today - base::Days(1);
+  base::Time two_days_ago = today - base::Days(2);
   SetNow(today);
 
   SetScores(origin1, 1, 1);
diff --git a/chrome/browser/media/media_engagement_session_unittest.cc b/chrome/browser/media/media_engagement_session_unittest.cc
index 8f232bb..a9848d2 100644
--- a/chrome/browser/media/media_engagement_session_unittest.cc
+++ b/chrome/browser/media/media_engagement_session_unittest.cc
@@ -109,7 +109,7 @@
     test_ukm_recorder_.UpdateSourceURL(ukm_source_id(), origin_.GetURL());
 
     // Advance the test clock to a non null value.
-    test_clock_.Advance(base::TimeDelta::FromMinutes(15));
+    test_clock_.Advance(base::Minutes(15));
   }
 
   MediaEngagementService* service() const { return service_.get(); }
diff --git a/chrome/browser/media/offscreen_tab.cc b/chrome/browser/media/offscreen_tab.cc
index c082310..363a0d6 100644
--- a/chrome/browser/media/offscreen_tab.cc
+++ b/chrome/browser/media/offscreen_tab.cc
@@ -34,8 +34,8 @@
 
 // Time intervals used by the logic that detects when the capture of an
 // offscreen tab has stopped, to automatically tear it down and free resources.
-constexpr base::TimeDelta kMaxWaitForCapture = base::TimeDelta::FromMinutes(1);
-constexpr base::TimeDelta kPollInterval = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kMaxWaitForCapture = base::Minutes(1);
+constexpr base::TimeDelta kPollInterval = base::Seconds(1);
 
 }  // namespace
 
diff --git a/chrome/browser/media/router/discovery/dial/device_description_service.cc b/chrome/browser/media/router/discovery/dial/device_description_service.cc
index 0af9023d..a0bbadf 100644
--- a/chrome/browser/media/router/discovery/dial/device_description_service.cc
+++ b/chrome/browser/media/router/discovery/dial/device_description_service.cc
@@ -117,9 +117,9 @@
   // Start a clean up timer.
   if (!clean_up_timer_) {
     clean_up_timer_ = std::make_unique<base::RepeatingTimer>();
-    clean_up_timer_->Start(
-        FROM_HERE, base::TimeDelta::FromMinutes(kCacheCleanUpTimeoutMins), this,
-        &DeviceDescriptionService::CleanUpCacheEntries);
+    clean_up_timer_->Start(FROM_HERE, base::Minutes(kCacheCleanUpTimeoutMins),
+                           this,
+                           &DeviceDescriptionService::CleanUpCacheEntries);
   }
 }
 
@@ -213,7 +213,7 @@
 
   CacheEntry cached_description_data;
   cached_description_data.expire_time =
-      GetNow() + base::TimeDelta::FromHours(kDeviceDescriptionCacheTimeHours);
+      GetNow() + base::Hours(kDeviceDescriptionCacheTimeHours);
   cached_description_data.config_id = device_data.config_id();
   cached_description_data.description_data = device_description;
   description_cache_.insert(
diff --git a/chrome/browser/media/router/discovery/dial/device_description_service_unittest.cc b/chrome/browser/media/router/discovery/dial/device_description_service_unittest.cc
index 605c00c5..d550d23 100644
--- a/chrome/browser/media/router/discovery/dial/device_description_service_unittest.cc
+++ b/chrome/browser/media/router/discovery/dial/device_description_service_unittest.cc
@@ -80,7 +80,7 @@
                   bool expired) {
     DeviceDescriptionService::CacheEntry cache_entry;
     cache_entry.expire_time =
-        base::Time::Now() + (expired ? -1 : 1) * base::TimeDelta::FromHours(12);
+        base::Time::Now() + (expired ? -1 : 1) * base::Hours(12);
     cache_entry.description_data = description_data;
     description_cache_[device_label] = cache_entry;
   }
diff --git a/chrome/browser/media/router/discovery/mdns/cast_media_sink_service_impl.cc b/chrome/browser/media/router/discovery/mdns/cast_media_sink_service_impl.cc
index 8dcced19..25eda7e 100644
--- a/chrome/browser/media/router/discovery/mdns/cast_media_sink_service_impl.cc
+++ b/chrome/browser/media/router/discovery/mdns/cast_media_sink_service_impl.cc
@@ -302,8 +302,7 @@
   // Add a random backoff between 0s to 5s before opening channels to prevent
   // different browser instances connecting to the same receiver at the same
   // time.
-  base::TimeDelta delay =
-      base::TimeDelta::FromMilliseconds(base::RandInt(0, 50) * 100);
+  base::TimeDelta delay = base::Milliseconds(base::RandInt(0, 50) * 100);
   task_runner()->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&CastMediaSinkServiceImpl::OpenChannels, GetWeakPtr(),
@@ -444,10 +443,9 @@
   // TODO(crbug.com/814419): Switching cast socket implementation to use network
   // service will allow us to get back NetLog.
   return cast_channel::CastSocketOpenParams(
-      sink.cast_data().ip_endpoint,
-      base::TimeDelta::FromSeconds(connect_timeout_in_seconds),
-      base::TimeDelta::FromSeconds(liveness_timeout_in_seconds),
-      base::TimeDelta::FromSeconds(open_params_.ping_interval_in_seconds),
+      sink.cast_data().ip_endpoint, base::Seconds(connect_timeout_in_seconds),
+      base::Seconds(liveness_timeout_in_seconds),
+      base::Seconds(open_params_.ping_interval_in_seconds),
       cast_channel::CastDeviceCapability::NONE);
 }
 
diff --git a/chrome/browser/media/router/discovery/mdns/cast_media_sink_service_impl_unittest.cc b/chrome/browser/media/router/discovery/mdns/cast_media_sink_service_impl_unittest.cc
index c7ccf4a..16dc391 100644
--- a/chrome/browser/media/router/discovery/mdns/cast_media_sink_service_impl_unittest.cc
+++ b/chrome/browser/media/router/discovery/mdns/cast_media_sink_service_impl_unittest.cc
@@ -310,7 +310,7 @@
   socket.SetErrorState(cast_channel::ChannelError::NONE);
   ExpectOpenSocket(&socket);
   // Wait for 16 seconds.
-  mock_time_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(16));
+  mock_time_task_runner_->FastForwardBy(base::Seconds(16));
 }
 
 TEST_F(CastMediaSinkServiceImplTest, TestOpenChannelFails) {
@@ -357,7 +357,7 @@
   socket2.set_id(2);
   socket2.SetErrorState(cast_channel::ChannelError::NONE);
 
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(2);
+  base::TimeDelta delta = base::Seconds(2);
   clock.Advance(delta);
   base::HistogramTester tester;
 
diff --git a/chrome/browser/media/router/discovery/media_sink_discovery_metrics.cc b/chrome/browser/media/router/discovery/media_sink_discovery_metrics.cc
index 6818a91..e0d1cd0 100644
--- a/chrome/browser/media/router/discovery/media_sink_discovery_metrics.cc
+++ b/chrome/browser/media/router/discovery/media_sink_discovery_metrics.cc
@@ -24,7 +24,7 @@
     size_t known_device_count) {
   base::Time now = clock_->Now();
   if (now - device_count_metrics_record_time_ <
-      base::TimeDelta::FromMinutes(kDeviceCountMetricThresholdMins)) {
+      base::Minutes(kDeviceCountMetricThresholdMins)) {
     return;
   }
   RecordDeviceCounts(available_device_count, known_device_count);
diff --git a/chrome/browser/media/router/discovery/media_sink_discovery_metrics_unittest.cc b/chrome/browser/media/router/discovery/media_sink_discovery_metrics_unittest.cc
index 281b39c..26fd2b7 100644
--- a/chrome/browser/media/router/discovery/media_sink_discovery_metrics_unittest.cc
+++ b/chrome/browser/media/router/discovery/media_sink_discovery_metrics_unittest.cc
@@ -41,7 +41,7 @@
       DialDeviceCountMetrics::kHistogramDialKnownDeviceCount, 10, 1);
 
   // Record another count.
-  clock.Advance(base::TimeDelta::FromHours(2));
+  clock.Advance(base::Hours(2));
   metrics.RecordDeviceCountsIfNeeded(7, 10);
   tester.ExpectTotalCount(
       DialDeviceCountMetrics::kHistogramDialAvailableDeviceCount, 2);
@@ -79,7 +79,7 @@
       CastDeviceCountMetrics::kHistogramCastKnownDeviceCount, 10, 1);
 
   // Record another count.
-  clock.Advance(base::TimeDelta::FromHours(2));
+  clock.Advance(base::Hours(2));
   metrics.RecordDeviceCountsIfNeeded(7, 10);
   tester.ExpectTotalCount(
       CastDeviceCountMetrics::kHistogramCastConnectedDeviceCount, 2);
@@ -133,7 +133,7 @@
 
 TEST(CastAnalyticsTest, RecordDeviceChannelOpenDuration) {
   base::HistogramTester tester;
-  const base::TimeDelta delta = base::TimeDelta::FromMilliseconds(10);
+  const base::TimeDelta delta = base::Milliseconds(10);
 
   tester.ExpectTotalCount(CastAnalytics::kHistogramCastMdnsChannelOpenSuccess,
                           0);
diff --git a/chrome/browser/media/router/mojo/media_router_mojo_impl_unittest.cc b/chrome/browser/media/router/mojo/media_router_mojo_impl_unittest.cc
index 2736f94..f9801637 100644
--- a/chrome/browser/media/router/mojo/media_router_mojo_impl_unittest.cc
+++ b/chrome/browser/media/router/mojo/media_router_mojo_impl_unittest.cc
@@ -281,11 +281,11 @@
   EXPECT_CALL(handler, DoInvoke(Pointee(expected_route), Not(""), "",
                                 RouteRequestResult::OK, _))
       .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); }));
-  router()->CreateRoute(
-      kSource, kSinkId, url::Origin::Create(GURL(kOrigin)), nullptr,
-      base::BindOnce(&RouteResponseCallbackHandler::Invoke,
-                     base::Unretained(&handler)),
-      base::TimeDelta::FromMilliseconds(kTimeoutMillis), true);
+  router()->CreateRoute(kSource, kSinkId, url::Origin::Create(GURL(kOrigin)),
+                        nullptr,
+                        base::BindOnce(&RouteResponseCallbackHandler::Invoke,
+                                       base::Unretained(&handler)),
+                        base::Milliseconds(kTimeoutMillis), true);
   run_loop.Run();
   ExpectCastResultBucketCount("CreateRoute", RouteRequestResult::OK, 1);
 }
@@ -295,8 +295,7 @@
   EXPECT_CALL(mock_cast_provider_,
               CreateRouteInternal(
                   kSource, kSinkId, _, url::Origin::Create(GURL(kOrigin)),
-                  kInvalidTabId,
-                  base::TimeDelta::FromMilliseconds(kTimeoutMillis), _, _))
+                  kInvalidTabId, base::Milliseconds(kTimeoutMillis), _, _))
       .WillOnce(Invoke([](const std::string& source, const std::string& sink,
                           const std::string& presentation_id,
                           const url::Origin& origin, int tab_id,
@@ -311,11 +310,11 @@
   EXPECT_CALL(handler,
               DoInvoke(nullptr, "", kError, RouteRequestResult::TIMED_OUT, _))
       .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); }));
-  router()->CreateRoute(
-      kSource, kSinkId, url::Origin::Create(GURL(kOrigin)), nullptr,
-      base::BindOnce(&RouteResponseCallbackHandler::Invoke,
-                     base::Unretained(&handler)),
-      base::TimeDelta::FromMilliseconds(kTimeoutMillis), false);
+  router()->CreateRoute(kSource, kSinkId, url::Origin::Create(GURL(kOrigin)),
+                        nullptr,
+                        base::BindOnce(&RouteResponseCallbackHandler::Invoke,
+                                       base::Unretained(&handler)),
+                        base::Milliseconds(kTimeoutMillis), false);
   run_loop.Run();
   ExpectCastResultBucketCount("CreateRoute", RouteRequestResult::TIMED_OUT, 1);
 }
@@ -325,8 +324,7 @@
   EXPECT_CALL(mock_cast_provider_,
               CreateRouteInternal(
                   kSource, kSinkId, _, url::Origin::Create(GURL(kOrigin)),
-                  kInvalidTabId,
-                  base::TimeDelta::FromMilliseconds(kTimeoutMillis), true, _))
+                  kInvalidTabId, base::Milliseconds(kTimeoutMillis), true, _))
       .WillOnce(Invoke([](const std::string& source, const std::string& sink,
                           const std::string& presentation_id,
                           const url::Origin& origin, int tab_id,
@@ -343,11 +341,11 @@
   EXPECT_CALL(handler, DoInvoke(nullptr, "", error,
                                 RouteRequestResult::OFF_THE_RECORD_MISMATCH, _))
       .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); }));
-  router()->CreateRoute(
-      kSource, kSinkId, url::Origin::Create(GURL(kOrigin)), nullptr,
-      base::BindOnce(&RouteResponseCallbackHandler::Invoke,
-                     base::Unretained(&handler)),
-      base::TimeDelta::FromMilliseconds(kTimeoutMillis), true);
+  router()->CreateRoute(kSource, kSinkId, url::Origin::Create(GURL(kOrigin)),
+                        nullptr,
+                        base::BindOnce(&RouteResponseCallbackHandler::Invoke,
+                                       base::Unretained(&handler)),
+                        base::Milliseconds(kTimeoutMillis), true);
   run_loop.Run();
   ExpectCastResultBucketCount("CreateRoute",
                               RouteRequestResult::OFF_THE_RECORD_MISMATCH, 1);
@@ -361,8 +359,7 @@
   EXPECT_CALL(mock_cast_provider_,
               CreateRouteInternal(
                   kSource, kSinkId, _, url::Origin::Create(GURL(kOrigin)),
-                  kInvalidTabId,
-                  base::TimeDelta::FromMilliseconds(kTimeoutMillis), true, _))
+                  kInvalidTabId, base::Milliseconds(kTimeoutMillis), true, _))
       .WillOnce(
           Invoke([&route](const std::string& source, const std::string& sink,
                           const std::string& presentation_id,
@@ -375,8 +372,7 @@
   base::RunLoop run_loop;
   router()->CreateRoute(kSource, kSinkId, url::Origin::Create(GURL(kOrigin)),
                         nullptr, base::DoNothing(),
-                        base::TimeDelta::FromMilliseconds(kTimeoutMillis),
-                        true);
+                        base::Milliseconds(kTimeoutMillis), true);
   const std::vector<MediaRoute> routes{route};
   UpdateRoutes(mojom::MediaRouteProviderId::CAST, routes, std::string(),
                std::vector<std::string>());
@@ -412,7 +408,7 @@
                       url::Origin::Create(GURL(kOrigin)), nullptr,
                       base::BindOnce(&RouteResponseCallbackHandler::Invoke,
                                      base::Unretained(&handler)),
-                      base::TimeDelta::FromMilliseconds(kTimeoutMillis), false);
+                      base::Milliseconds(kTimeoutMillis), false);
   run_loop.Run();
   ExpectResultBucketCount("JoinRoute", RouteRequestResult::ROUTE_NOT_FOUND, 1);
 }
@@ -428,8 +424,7 @@
   EXPECT_CALL(mock_cast_provider_,
               JoinRouteInternal(
                   kSource, kPresentationId, url::Origin::Create(GURL(kOrigin)),
-                  kInvalidTabId,
-                  base::TimeDelta::FromMilliseconds(kTimeoutMillis), _, _))
+                  kInvalidTabId, base::Milliseconds(kTimeoutMillis), _, _))
       .WillOnce(Invoke([](const std::string& source,
                           const std::string& presentation_id,
                           const url::Origin& origin, int tab_id,
@@ -448,7 +443,7 @@
                       url::Origin::Create(GURL(kOrigin)), nullptr,
                       base::BindOnce(&RouteResponseCallbackHandler::Invoke,
                                      base::Unretained(&handler)),
-                      base::TimeDelta::FromMilliseconds(kTimeoutMillis), false);
+                      base::Milliseconds(kTimeoutMillis), false);
   run_loop.Run();
   ExpectCastResultBucketCount("JoinRoute", RouteRequestResult::TIMED_OUT, 1);
 }
@@ -469,8 +464,7 @@
   EXPECT_CALL(mock_cast_provider_,
               JoinRouteInternal(
                   kSource, kPresentationId, url::Origin::Create(GURL(kOrigin)),
-                  kInvalidTabId,
-                  base::TimeDelta::FromMilliseconds(kTimeoutMillis), true, _))
+                  kInvalidTabId, base::Milliseconds(kTimeoutMillis), true, _))
       .WillOnce(
           Invoke([&route](const std::string& source,
                           const std::string& presentation_id,
@@ -492,7 +486,7 @@
                       url::Origin::Create(GURL(kOrigin)), nullptr,
                       base::BindOnce(&RouteResponseCallbackHandler::Invoke,
                                      base::Unretained(&handler)),
-                      base::TimeDelta::FromMilliseconds(kTimeoutMillis), true);
+                      base::Milliseconds(kTimeoutMillis), true);
   run_loop.Run();
   ExpectCastResultBucketCount("JoinRoute",
                               RouteRequestResult::OFF_THE_RECORD_MISMATCH, 1);
@@ -508,8 +502,7 @@
   EXPECT_CALL(mock_cast_provider_,
               ConnectRouteByRouteIdInternal(
                   kSource, kRouteId, _, url::Origin::Create(GURL(kOrigin)),
-                  kInvalidTabId,
-                  base::TimeDelta::FromMilliseconds(kTimeoutMillis), true, _))
+                  kInvalidTabId, base::Milliseconds(kTimeoutMillis), true, _))
       .WillOnce(Invoke(
           [](const std::string& source, const std::string& route_id,
              const std::string& presentation_id, const url::Origin& origin,
@@ -528,7 +521,7 @@
       kSource, kRouteId, url::Origin::Create(GURL(kOrigin)), nullptr,
       base::BindOnce(&RouteResponseCallbackHandler::Invoke,
                      base::Unretained(&handler)),
-      base::TimeDelta::FromMilliseconds(kTimeoutMillis), true);
+      base::Milliseconds(kTimeoutMillis), true);
   run_loop.Run();
   ExpectCastResultBucketCount("JoinRoute", RouteRequestResult::TIMED_OUT, 1);
 }
@@ -543,8 +536,7 @@
   EXPECT_CALL(mock_cast_provider_,
               ConnectRouteByRouteIdInternal(
                   kSource, kRouteId, _, url::Origin::Create(GURL(kOrigin)),
-                  kInvalidTabId,
-                  base::TimeDelta::FromMilliseconds(kTimeoutMillis), true, _))
+                  kInvalidTabId, base::Milliseconds(kTimeoutMillis), true, _))
       .WillOnce(Invoke(
           [&route](const std::string& source, const std::string& route_id,
                    const std::string& presentation_id,
@@ -566,7 +558,7 @@
       kSource, kRouteId, url::Origin::Create(GURL(kOrigin)), nullptr,
       base::BindOnce(&RouteResponseCallbackHandler::Invoke,
                      base::Unretained(&handler)),
-      base::TimeDelta::FromMilliseconds(kTimeoutMillis), true);
+      base::Milliseconds(kTimeoutMillis), true);
   run_loop.Run();
   ExpectCastResultBucketCount("JoinRoute",
                               RouteRequestResult::OFF_THE_RECORD_MISMATCH, 1);
@@ -1147,8 +1139,7 @@
       .Times(0);
   router()->CreateRoute(kSource, kSinkId, url::Origin::Create(GURL(kOrigin)),
                         nullptr, base::DoNothing(),
-                        base::TimeDelta::FromMilliseconds(kTimeoutMillis),
-                        true);
+                        base::Milliseconds(kTimeoutMillis), true);
 
   // A request to |kSinkId2| should only be sent to
   // |mock_wired_display_provider_|.
@@ -1162,8 +1153,7 @@
                             &MockMediaRouteProvider::RouteRequestSuccess)));
   router()->CreateRoute(kSource, kSinkId2, url::Origin::Create(GURL(kOrigin)),
                         nullptr, base::DoNothing(),
-                        base::TimeDelta::FromMilliseconds(kTimeoutMillis),
-                        true);
+                        base::Milliseconds(kTimeoutMillis), true);
   base::RunLoop().RunUntilIdle();
 }
 
diff --git a/chrome/browser/media/router/providers/cast/cast_app_discovery_service.cc b/chrome/browser/media/router/providers/cast/cast_app_discovery_service.cc
index b019268e80..dd070ed 100644
--- a/chrome/browser/media/router/providers/cast/cast_app_discovery_service.cc
+++ b/chrome/browser/media/router/providers/cast/cast_app_discovery_service.cc
@@ -21,8 +21,7 @@
 
 // The minimum time that must elapse before an app availability result can be
 // force refreshed.
-static constexpr base::TimeDelta kRefreshThreshold =
-    base::TimeDelta::FromMinutes(1);
+static constexpr base::TimeDelta kRefreshThreshold = base::Minutes(1);
 
 }  // namespace
 
diff --git a/chrome/browser/media/router/providers/cast/cast_app_discovery_service_unittest.cc b/chrome/browser/media/router/providers/cast/cast_app_discovery_service_unittest.cc
index 719fe13..22935eb 100644
--- a/chrome/browser/media/router/providers/cast/cast_app_discovery_service_unittest.cc
+++ b/chrome/browser/media/router/providers/cast/cast_app_discovery_service_unittest.cc
@@ -203,7 +203,7 @@
   EXPECT_CALL(message_handler_, RequestAppAvailability(_, "BBBBBBBB", _));
   AddOrUpdateSink(sink2);
 
-  clock_.Advance(base::TimeDelta::FromSeconds(30));
+  clock_.Advance(base::Seconds(30));
 
   // Request app availability for app B for both sinks.
   // App A on |sink2| is not requested due to timing threshold.
@@ -218,7 +218,7 @@
       });
   app_discovery_service_->Refresh();
 
-  clock_.Advance(base::TimeDelta::FromSeconds(31));
+  clock_.Advance(base::Seconds(31));
 
   EXPECT_CALL(message_handler_, RequestAppAvailability(_, "AAAAAAAA", _));
   app_discovery_service_->Refresh();
diff --git a/chrome/browser/media/router/providers/cast/cast_media_controller.cc b/chrome/browser/media/router/providers/cast/cast_media_controller.cc
index 23257cf2..7d3c12c 100644
--- a/chrome/browser/media/router/providers/cast/cast_media_controller.cc
+++ b/chrome/browser/media/router/providers/cast/cast_media_controller.cc
@@ -48,9 +48,9 @@
   if (!value)
     return;
   if (value->is_double()) {
-    *out = base::TimeDelta::FromSecondsD(value->GetDouble());
+    *out = base::Seconds(value->GetDouble());
   } else if (value->is_int()) {
-    *out = base::TimeDelta::FromSeconds(value->GetInt());
+    *out = base::Seconds(value->GetInt());
   }
 }
 
diff --git a/chrome/browser/media/router/providers/cast/cast_media_controller_unittest.cc b/chrome/browser/media/router/providers/cast/cast_media_controller_unittest.cc
index b7c2ec0..a3a8aca 100644
--- a/chrome/browser/media/router/providers/cast/cast_media_controller_unittest.cc
+++ b/chrome/browser/media/router/providers/cast/cast_media_controller_unittest.cc
@@ -123,8 +123,8 @@
   status->is_muted = false;
   status->volume = 0.7;
   status->play_state = mojom::MediaStatus::PlayState::BUFFERING;
-  status->duration = base::TimeDelta::FromSeconds(30);
-  status->current_time = base::TimeDelta::FromSeconds(12);
+  status->duration = base::Seconds(30);
+  status->current_time = base::Seconds(12);
   return status;
 }
 
@@ -274,7 +274,7 @@
         VerifySessionId(cast_message.v2_message_body());
         return 0;
       });
-  mojo_controller_->Seek(base::TimeDelta::FromSecondsD(12.34));
+  mojo_controller_->Seek(base::Seconds(12.34));
 }
 
 TEST_F(CastMediaControllerTest, SendNextTrackRequest) {
@@ -323,8 +323,8 @@
 
 TEST_F(CastMediaControllerTest, UpdateMediaStatusWithDoubleDurations) {
   mojom::MediaStatusPtr expected_status = CreateSampleMediaStatus();
-  expected_status->duration = base::TimeDelta::FromSecondsD(30.5);
-  expected_status->current_time = base::TimeDelta::FromSecondsD(12.9);
+  expected_status->duration = base::Seconds(30.5);
+  expected_status->current_time = base::Seconds(12.9);
 
   EXPECT_CALL(*status_observer_, OnMediaStatusUpdated(_))
       .WillOnce([&](mojom::MediaStatusPtr status) {
diff --git a/chrome/browser/media/router/providers/cast/cast_media_route_provider_metrics_unittest.cc b/chrome/browser/media/router/providers/cast/cast_media_route_provider_metrics_unittest.cc
index b90d3ed9..d9d1699 100644
--- a/chrome/browser/media/router/providers/cast/cast_media_route_provider_metrics_unittest.cc
+++ b/chrome/browser/media/router/providers/cast/cast_media_route_provider_metrics_unittest.cc
@@ -19,19 +19,19 @@
 
   RecordAppAvailabilityResult(
       cast_channel::GetAppAvailabilityResult::kAvailable,
-      base::TimeDelta::FromMilliseconds(111));
+      base::Milliseconds(111));
   RecordAppAvailabilityResult(
       cast_channel::GetAppAvailabilityResult::kUnavailable,
-      base::TimeDelta::FromMilliseconds(222));
+      base::Milliseconds(222));
   tester.ExpectTimeBucketCount(kHistogramAppAvailabilitySuccess,
-                               base::TimeDelta::FromMilliseconds(111), 1);
+                               base::Milliseconds(111), 1);
   tester.ExpectTimeBucketCount(kHistogramAppAvailabilitySuccess,
-                               base::TimeDelta::FromMilliseconds(222), 1);
+                               base::Milliseconds(222), 1);
 
   RecordAppAvailabilityResult(cast_channel::GetAppAvailabilityResult::kUnknown,
-                              base::TimeDelta::FromMilliseconds(333));
+                              base::Milliseconds(333));
   tester.ExpectTimeBucketCount(kHistogramAppAvailabilityFailure,
-                               base::TimeDelta::FromMilliseconds(333), 1);
+                               base::Milliseconds(333), 1);
 }
 
 TEST(CastMediaRouteProviderMetricsTest, RecordSupportedAppTypesValue) {
diff --git a/chrome/browser/media/router/providers/cast/cast_media_route_provider_unittest.cc b/chrome/browser/media/router/providers/cast/cast_media_route_provider_unittest.cc
index 263b6f0a..8226883 100644
--- a/chrome/browser/media/router/providers/cast/cast_media_route_provider_unittest.cc
+++ b/chrome/browser/media/router/providers/cast/cast_media_route_provider_unittest.cc
@@ -40,8 +40,7 @@
 static constexpr char kPresentationId[] = "presentationId";
 static constexpr char kOrigin[] = "https://www.youtube.com";
 static constexpr int kTabId = 1;
-static constexpr base::TimeDelta kRouteTimeout =
-    base::TimeDelta::FromSeconds(30);
+static constexpr base::TimeDelta kRouteTimeout = base::Seconds(30);
 
 base::Value MakeReceiverStatus() {
   return base::test::ParseJson(R"({
diff --git a/chrome/browser/media/router/providers/test/test_media_route_provider.h b/chrome/browser/media/router/providers/test/test_media_route_provider.h
index 2e15ae26..2d8460d 100644
--- a/chrome/browser/media/router/providers/test/test_media_route_provider.h
+++ b/chrome/browser/media/router/providers/test/test_media_route_provider.h
@@ -122,7 +122,7 @@
   void CreateRouteTimeOut(CreateRouteCallback callback);
 
   bool close_route_with_error_on_send_ = false;
-  base::TimeDelta delay_ = base::TimeDelta::FromSeconds(0);
+  base::TimeDelta delay_ = base::Seconds(0);
   std::string route_error_message_;
   std::map<std::string, MediaRoute> presentation_ids_to_routes_;
   std::map<MediaRoute::Id, MediaRoute> routes_;
diff --git a/chrome/browser/media/router/providers/wired_display/wired_display_media_route_provider_unittest.cc b/chrome/browser/media/router/providers/wired_display/wired_display_media_route_provider_unittest.cc
index 159eeb0..a7cb693a 100644
--- a/chrome/browser/media/router/providers/wired_display/wired_display_media_route_provider_unittest.cc
+++ b/chrome/browser/media/router/providers/wired_display/wired_display_media_route_provider_unittest.cc
@@ -340,8 +340,8 @@
               Start(presentation_id, GURL(kPresentationSource)));
   provider_remote_->CreateRoute(
       kPresentationSource, GetSinkId(secondary_display1_), presentation_id,
-      url::Origin::Create(GURL(kPresentationSource)), 0,
-      base::TimeDelta::FromSeconds(100), false,
+      url::Origin::Create(GURL(kPresentationSource)), 0, base::Seconds(100),
+      false,
       base::BindOnce(&MockCallback::CreateRoute, base::Unretained(&callback)));
   base::RunLoop().RunUntilIdle();
 
@@ -377,8 +377,8 @@
   // Create a route for |presentation_id|.
   provider_remote_->CreateRoute(
       kPresentationSource, GetSinkId(secondary_display1_), presentation_id,
-      url::Origin::Create(GURL(kPresentationSource)), 0,
-      base::TimeDelta::FromSeconds(100), false,
+      url::Origin::Create(GURL(kPresentationSource)), 0, base::Seconds(100),
+      false,
       base::BindOnce(&MockCallback::CreateRoute, base::Unretained(&callback)));
   base::RunLoop().RunUntilIdle();
 
@@ -406,8 +406,8 @@
 
   provider_remote_->CreateRoute(
       kPresentationSource, GetSinkId(secondary_display1_), "presentationId",
-      url::Origin::Create(GURL(kPresentationSource)), 0,
-      base::TimeDelta::FromSeconds(100), false,
+      url::Origin::Create(GURL(kPresentationSource)), 0, base::Seconds(100),
+      false,
       base::BindOnce(&MockCallback::CreateRoute, base::Unretained(&callback)));
   base::RunLoop().RunUntilIdle();
 
diff --git a/chrome/browser/media/router/test/media_router_mojo_test.cc b/chrome/browser/media/router/test/media_router_mojo_test.cc
index 1e49db03..42f9698 100644
--- a/chrome/browser/media/router/test/media_router_mojo_test.cc
+++ b/chrome/browser/media/router/test/media_router_mojo_test.cc
@@ -191,11 +191,11 @@
   RouteResponseCallbackHandler handler;
   EXPECT_CALL(handler, DoInvoke(Pointee(expected_route), Not(""), "",
                                 RouteRequestResult::OK, _));
-  router()->CreateRoute(
-      kSource, kSinkId, url::Origin::Create(GURL(kOrigin)), nullptr,
-      base::BindOnce(&RouteResponseCallbackHandler::Invoke,
-                     base::Unretained(&handler)),
-      base::TimeDelta::FromMilliseconds(kTimeoutMillis), false);
+  router()->CreateRoute(kSource, kSinkId, url::Origin::Create(GURL(kOrigin)),
+                        nullptr,
+                        base::BindOnce(&RouteResponseCallbackHandler::Invoke,
+                                       base::Unretained(&handler)),
+                        base::Milliseconds(kTimeoutMillis), false);
   base::RunLoop().RunUntilIdle();
 }
 
@@ -221,8 +221,7 @@
   EXPECT_CALL(mock_cast_provider_,
               JoinRouteInternal(
                   kSource, presentation_id, url::Origin::Create(GURL(kOrigin)),
-                  kInvalidTabId,
-                  base::TimeDelta::FromMilliseconds(kTimeoutMillis), _, _))
+                  kInvalidTabId, base::Milliseconds(kTimeoutMillis), _, _))
       .WillOnce(
           Invoke([&route](const std::string& source,
                           const std::string& presentation_id,
@@ -240,7 +239,7 @@
                       url::Origin::Create(GURL(kOrigin)), nullptr,
                       base::BindOnce(&RouteResponseCallbackHandler::Invoke,
                                      base::Unretained(&handler)),
-                      base::TimeDelta::FromMilliseconds(kTimeoutMillis), false);
+                      base::Milliseconds(kTimeoutMillis), false);
   base::RunLoop().RunUntilIdle();
 }
 
@@ -259,8 +258,7 @@
   EXPECT_CALL(mock_cast_provider_,
               ConnectRouteByRouteIdInternal(
                   kSource, kRouteId, _, url::Origin::Create(GURL(kOrigin)),
-                  kInvalidTabId,
-                  base::TimeDelta::FromMilliseconds(kTimeoutMillis), false, _))
+                  kInvalidTabId, base::Milliseconds(kTimeoutMillis), false, _))
       .WillOnce(Invoke(
           [&route](const std::string& source, const std::string& route_id,
                    const std::string& presentation_id,
@@ -278,7 +276,7 @@
       kSource, kRouteId, url::Origin::Create(GURL(kOrigin)), nullptr,
       base::BindOnce(&RouteResponseCallbackHandler::Invoke,
                      base::Unretained(&handler)),
-      base::TimeDelta::FromMilliseconds(kTimeoutMillis), false);
+      base::Milliseconds(kTimeoutMillis), false);
   base::RunLoop().RunUntilIdle();
 }
 
diff --git a/chrome/browser/media/webrtc/conditional_focus_browsertest.cc b/chrome/browser/media/webrtc/conditional_focus_browsertest.cc
index dfa3ef1bb..1041b82 100644
--- a/chrome/browser/media/webrtc/conditional_focus_browsertest.cc
+++ b/chrome/browser/media/webrtc/conditional_focus_browsertest.cc
@@ -146,7 +146,7 @@
       if (ActiveTab() == Tab::kCapturedTab) {
         return true;
       }
-      Wait(base::TimeDelta::FromMilliseconds(500));
+      Wait(base::Milliseconds(500));
     }
     return (ActiveTab() == Tab::kCapturedTab);
   }
@@ -186,7 +186,7 @@
   // Whereas calls to Wait() in previous tests served to minimize flakiness,
   // this one is to prove no false-positives. Namely, we allow enough time
   // for the focus-change, yet it does not occur.
-  Wait(base::TimeDelta::FromMilliseconds(10000));
+  Wait(base::Milliseconds(10000));
   EXPECT_EQ(ActiveTab(), Tab::kCapturingTab);
 }
 
@@ -205,7 +205,7 @@
   Capture(0, FocusEnumValue::kNoValue);
   // Note that the Wait(), which is necessary in order to minimize flakiness,
   // has a duration less than |kConditionalFocusWindowMs|.
-  Wait(base::TimeDelta::FromMilliseconds(4500));
+  Wait(base::Milliseconds(4500));
   // Focus-change already occurred before kConditionalFocusWindowMs.
   EXPECT_EQ(ActiveTab(), Tab::kCapturedTab);
 }
@@ -226,7 +226,7 @@
   browser()->tab_strip_model()->ActivateTabAt(0);
 
   // No additional focus-change - user activity has suppressed that.
-  Wait(base::TimeDelta::FromMilliseconds(7500));
+  Wait(base::Milliseconds(7500));
   EXPECT_EQ(browser()->tab_strip_model()->GetActiveWebContents(),
             browser()->tab_strip_model()->GetWebContentsAt(0));
 }
diff --git a/chrome/browser/media/webrtc/current_tab_desktop_media_list.cc b/chrome/browser/media/webrtc/current_tab_desktop_media_list.cc
index 242da9f74..3a3b5ae 100644
--- a/chrome/browser/media/webrtc/current_tab_desktop_media_list.cc
+++ b/chrome/browser/media/webrtc/current_tab_desktop_media_list.cc
@@ -24,8 +24,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kUpdatePeriodMs =
-    base::TimeDelta::FromMilliseconds(1000);
+constexpr base::TimeDelta kUpdatePeriodMs = base::Milliseconds(1000);
 
 gfx::ImageSkia ScaleBitmap(const SkBitmap& bitmap, gfx::Size size) {
   const gfx::Rect scaled_rect = media::ComputeLetterboxRegion(
diff --git a/chrome/browser/media/webrtc/current_tab_desktop_media_list_unittest.cc b/chrome/browser/media/webrtc/current_tab_desktop_media_list_unittest.cc
index 9e21b360..7d771ad 100644
--- a/chrome/browser/media/webrtc/current_tab_desktop_media_list_unittest.cc
+++ b/chrome/browser/media/webrtc/current_tab_desktop_media_list_unittest.cc
@@ -41,7 +41,7 @@
 
 namespace {
 
-const base::TimeDelta kUpdatePeriod = base::TimeDelta::FromMilliseconds(1000);
+const base::TimeDelta kUpdatePeriod = base::Milliseconds(1000);
 
 class MockObserver : public DesktopMediaListObserver {
  public:
diff --git a/chrome/browser/media/webrtc/desktop_media_list_ash.cc b/chrome/browser/media/webrtc/desktop_media_list_ash.cc
index 64b9e1c..3151c2c 100644
--- a/chrome/browser/media/webrtc/desktop_media_list_ash.cc
+++ b/chrome/browser/media/webrtc/desktop_media_list_ash.cc
@@ -26,8 +26,8 @@
 }  // namespace
 
 DesktopMediaListAsh::DesktopMediaListAsh(DesktopMediaList::Type type)
-    : DesktopMediaListBase(base::TimeDelta::FromMilliseconds(
-          kDefaultDesktopMediaListUpdatePeriod)) {
+    : DesktopMediaListBase(
+          base::Milliseconds(kDefaultDesktopMediaListUpdatePeriod)) {
   DCHECK(type == DesktopMediaList::Type::kScreen ||
          type == DesktopMediaList::Type::kWindow);
   type_ = type;
diff --git a/chrome/browser/media/webrtc/desktop_media_list_ash_unittest.cc b/chrome/browser/media/webrtc/desktop_media_list_ash_unittest.cc
index fc99994..6670127 100644
--- a/chrome/browser/media/webrtc/desktop_media_list_ash_unittest.cc
+++ b/chrome/browser/media/webrtc/desktop_media_list_ash_unittest.cc
@@ -53,7 +53,7 @@
     list_->SetThumbnailSize(gfx::Size(kThumbnailSize, kThumbnailSize));
 
     // Set update period to reduce the time it takes to run tests.
-    list_->SetUpdatePeriod(base::TimeDelta::FromMilliseconds(1));
+    list_->SetUpdatePeriod(base::Milliseconds(1));
   }
 
  protected:
diff --git a/chrome/browser/media/webrtc/media_stream_focus_delegate.cc b/chrome/browser/media/webrtc/media_stream_focus_delegate.cc
index bb06101f..bf554ff 100644
--- a/chrome/browser/media/webrtc/media_stream_focus_delegate.cc
+++ b/chrome/browser/media/webrtc/media_stream_focus_delegate.cc
@@ -208,15 +208,15 @@
       // Note that 1s corresponds to the value GetConditionalFocusWindow()
       // returns by default.
       UMA_HISTOGRAM_CUSTOM_TIMES("Media.ConditionalFocus.ExplicitOnTimeCall",
-                                 delay, base::TimeDelta::FromMilliseconds(1),
-                                 base::TimeDelta::FromSeconds(1), 100);
+                                 delay, base::Milliseconds(1), base::Seconds(1),
+                                 100);
     } else if (timer_expired_) {  // Late (compared to browser-side timer).
       // Record the delay of this late explicit API invocation.
       // Note that 1s corresponds to the value GetConditionalFocusWindow()
       // returns by default.
       UMA_HISTOGRAM_CUSTOM_TIMES("Media.ConditionalFocus.ExplicitLateCall",
-                                 delay, base::TimeDelta::FromSeconds(1),
-                                 base::TimeDelta::FromSeconds(5), 100);
+                                 delay, base::Seconds(1), base::Seconds(5),
+                                 100);
     } else {  // microtask_fired_
       // The case of |microtask_fired_| is not currently measured.
       // It's an error on the Web-application's part and addressable by the app.
@@ -229,8 +229,7 @@
     }
 
     UMA_HISTOGRAM_CUSTOM_TIMES("Media.ConditionalFocus.MicrotaskDelay", delay,
-                               base::TimeDelta::FromMilliseconds(1),
-                               base::TimeDelta::FromSeconds(5), 100);
+                               base::Milliseconds(1), base::Seconds(5), 100);
 
     microtask_fired_ = true;
   }
diff --git a/chrome/browser/media/webrtc/native_desktop_media_list.cc b/chrome/browser/media/webrtc/native_desktop_media_list.cc
index 9123f98..c899b52 100644
--- a/chrome/browser/media/webrtc/native_desktop_media_list.cc
+++ b/chrome/browser/media/webrtc/native_desktop_media_list.cc
@@ -310,8 +310,8 @@
 NativeDesktopMediaList::NativeDesktopMediaList(
     DesktopMediaList::Type type,
     std::unique_ptr<webrtc::DesktopCapturer> capturer)
-    : DesktopMediaListBase(base::TimeDelta::FromMilliseconds(
-          kDefaultNativeDesktopMediaListUpdatePeriod)),
+    : DesktopMediaListBase(
+          base::Milliseconds(kDefaultNativeDesktopMediaListUpdatePeriod)),
       thread_("DesktopMediaListCaptureThread") {
   type_ = type;
 
diff --git a/chrome/browser/media/webrtc/native_desktop_media_list_unittest.cc b/chrome/browser/media/webrtc/native_desktop_media_list_unittest.cc
index b30e779a..c9c5270f 100644
--- a/chrome/browser/media/webrtc/native_desktop_media_list_unittest.cc
+++ b/chrome/browser/media/webrtc/native_desktop_media_list_unittest.cc
@@ -263,7 +263,7 @@
         DesktopMediaList::Type::kWindow, base::WrapUnique(window_capturer_));
 
     // Set update period to reduce the time it takes to run tests.
-    model_->SetUpdatePeriod(base::TimeDelta::FromMilliseconds(20));
+    model_->SetUpdatePeriod(base::Milliseconds(20));
 
     // Set up widows.
     size_t aura_window_first_index = kDefaultWindowCount - kDefaultAuraCount;
@@ -346,7 +346,7 @@
       DesktopMediaList::Type::kScreen, std::make_unique<FakeScreenCapturer>());
 
   // Set update period to reduce the time it takes to run tests.
-  model_->SetUpdatePeriod(base::TimeDelta::FromMilliseconds(20));
+  model_->SetUpdatePeriod(base::Milliseconds(20));
 
   base::RunLoop run_loop;
 
@@ -534,7 +534,7 @@
   model_->SetThumbnailSize(gfx::Size());
 
   // Set update period to reduce the time it takes to run tests.
-  model_->SetUpdatePeriod(base::TimeDelta::FromMilliseconds(20));
+  model_->SetUpdatePeriod(base::Milliseconds(20));
 
   base::RunLoop run_loop;
 
diff --git a/chrome/browser/media/webrtc/system_media_capture_permissions_stats_mac.mm b/chrome/browser/media/webrtc/system_media_capture_permissions_stats_mac.mm
index 8c85e68..1fab4f0 100644
--- a/chrome/browser/media/webrtc/system_media_capture_permissions_stats_mac.mm
+++ b/chrome/browser/media/webrtc/system_media_capture_permissions_stats_mac.mm
@@ -60,8 +60,7 @@
       base::UmaHistogramCustomTimes(
           "Media.Audio.Capture.Mac.MicSystemPermission."
           "FixedTime.SinceFirstFailure",
-          time_delta, base::TimeDelta::FromSeconds(1),
-          base::TimeDelta::FromHours(1), 50);
+          time_delta, base::Seconds(1), base::Hours(1), 50);
     }
 
     stored_time = prefs->GetTime(kSystemPermissionMicLastBlockedTimePref);
@@ -70,8 +69,7 @@
       base::UmaHistogramCustomTimes(
           "Media.Audio.Capture.Mac.MicSystemPermission."
           "FixedTime.SinceLastFailure",
-          time_delta, base::TimeDelta::FromSeconds(1),
-          base::TimeDelta::FromHours(1), 50);
+          time_delta, base::Seconds(1), base::Hours(1), 50);
     }
   }
 
@@ -108,8 +106,7 @@
       base::UmaHistogramCustomTimes(
           "Media.Video.Capture.Mac.CameraSystemPermission.FixedTime."
           "SinceFirstFailure",
-          time_delta, base::TimeDelta::FromSeconds(1),
-          base::TimeDelta::FromHours(1), 50);
+          time_delta, base::Seconds(1), base::Hours(1), 50);
     }
 
     stored_time = prefs->GetTime(kSystemPermissionCameraLastBlockedTimePref);
@@ -118,8 +115,7 @@
       base::UmaHistogramCustomTimes(
           "Media.Video.Capture.Mac.CameraSystemPermission.FixedTime."
           "SinceLastFailure",
-          time_delta, base::TimeDelta::FromSeconds(1),
-          base::TimeDelta::FromHours(1), 50);
+          time_delta, base::Seconds(1), base::Hours(1), 50);
     }
   }
 
diff --git a/chrome/browser/media/webrtc/tab_desktop_media_list.cc b/chrome/browser/media/webrtc/tab_desktop_media_list.cc
index ab7c152..b0da041a 100644
--- a/chrome/browser/media/webrtc/tab_desktop_media_list.cc
+++ b/chrome/browser/media/webrtc/tab_desktop_media_list.cc
@@ -117,8 +117,8 @@
 TabDesktopMediaList::TabDesktopMediaList(
     DesktopMediaList::WebContentsFilter includable_web_contents_filter,
     bool include_chrome_app_windows)
-    : DesktopMediaListBase(base::TimeDelta::FromMilliseconds(
-          kDefaultTabDesktopMediaListUpdatePeriod)),
+    : DesktopMediaListBase(
+          base::Milliseconds(kDefaultTabDesktopMediaListUpdatePeriod)),
       includable_web_contents_filter_(
           std::move(includable_web_contents_filter)),
       include_chrome_app_windows_(include_chrome_app_windows) {
@@ -303,8 +303,7 @@
 
   // TODO(crbug.com/1224342): Listen for a newly drawn frame to be ready when a
   // hidden tab is woken up,rather than just retrying after an arbitrary delay.
-  constexpr base::TimeDelta kScreenshotRetryDelayMs =
-      base::TimeDelta::FromMilliseconds(20);
+  constexpr base::TimeDelta kScreenshotRetryDelayMs = base::Milliseconds(20);
 
   // It can take a little time after we tell a WebContents it's being captured
   // by calling IncrementCapturerCount before it starts painting actual frames,
diff --git a/chrome/browser/media/webrtc/tab_desktop_media_list_unittest.cc b/chrome/browser/media/webrtc/tab_desktop_media_list_unittest.cc
index d689286..77af7f5 100644
--- a/chrome/browser/media/webrtc/tab_desktop_media_list_unittest.cc
+++ b/chrome/browser/media/webrtc/tab_desktop_media_list_unittest.cc
@@ -275,7 +275,7 @@
 
     // Set update period to reduce the time it takes to run tests.
     // >0 to avoid unit test failure.
-    list_->SetUpdatePeriod(base::TimeDelta::FromMilliseconds(1));
+    list_->SetUpdatePeriod(base::Milliseconds(1));
   }
 
   void InitializeAndVerify() {
diff --git a/chrome/browser/media/webrtc/webrtc_event_log_history.cc b/chrome/browser/media/webrtc/webrtc_event_log_history.cc
index 1f734d5..6b1f299c 100644
--- a/chrome/browser/media/webrtc/webrtc_event_log_history.cc
+++ b/chrome/browser/media/webrtc/webrtc_event_log_history.cc
@@ -60,8 +60,7 @@
     return base::Time();
   }
 
-  return base::Time::UnixEpoch() +
-         base::TimeDelta::FromSeconds(seconds_from_epoch);
+  return base::Time::UnixEpoch() + base::Seconds(seconds_from_epoch);
 }
 
 // Convert a history file's timestamp, which is the number of seconds since
diff --git a/chrome/browser/media/webrtc/webrtc_event_log_manager_remote.cc b/chrome/browser/media/webrtc/webrtc_event_log_manager_remote.cc
index e9e4c6bb..4305d9f9 100644
--- a/chrome/browser/media/webrtc/webrtc_event_log_manager_remote.cc
+++ b/chrome/browser/media/webrtc/webrtc_event_log_manager_remote.cc
@@ -31,18 +31,16 @@
 const int kMaxOutputPeriodMs = 60000;
 
 namespace {
-const base::TimeDelta kDefaultProactivePruningDelta =
-    base::TimeDelta::FromMinutes(5);
+const base::TimeDelta kDefaultProactivePruningDelta = base::Minutes(5);
 
 const base::TimeDelta kDefaultWebRtcRemoteEventLogUploadDelay =
-    base::TimeDelta::FromSeconds(30);
+    base::Seconds(30);
 
 // Because history files are rarely used, their existence is not kept in memory.
 // That means that pruning them involves inspecting data on disk. This is not
 // terribly cheap (up to kMaxWebRtcEventLogHistoryFiles files per profile), and
 // should therefore be done somewhat infrequently.
-const base::TimeDelta kProactiveHistoryFilesPruneDelta =
-    base::TimeDelta::FromMinutes(30);
+const base::TimeDelta kProactiveHistoryFilesPruneDelta = base::Minutes(30);
 
 base::TimeDelta GetProactivePendingLogsPruneDelta() {
   if (base::CommandLine::ForCurrentProcess()->HasSwitch(
@@ -52,7 +50,7 @@
             ::switches::kWebRtcRemoteEventLogProactivePruningDelta);
     int64_t seconds;
     if (base::StringToInt64(delta_seconds_str, &seconds) && seconds >= 0) {
-      return base::TimeDelta::FromSeconds(seconds);
+      return base::Seconds(seconds);
     } else {
       LOG(WARNING) << "Proactive pruning delta could not be parsed.";
     }
@@ -69,7 +67,7 @@
             ::switches::kWebRtcRemoteEventLogUploadDelayMs);
     int64_t ms;
     if (base::StringToInt64(delta_seconds_str, &ms) && ms >= 0) {
-      return base::TimeDelta::FromMilliseconds(ms);
+      return base::Milliseconds(ms);
     } else {
       LOG(WARNING) << "Upload delay could not be parsed; using default delay.";
     }
@@ -182,12 +180,11 @@
 const size_t kMaxWebRtcEventLogHistoryFiles = 50;
 
 // Maximum time to keep remote-bound logs on disk.
-const base::TimeDelta kRemoteBoundWebRtcEventLogsMaxRetention =
-    base::TimeDelta::FromDays(7);
+const base::TimeDelta kRemoteBoundWebRtcEventLogsMaxRetention = base::Days(7);
 
 // Maximum time to keep history files on disk. These serve to display an upload
 // on chrome://webrtc-logs/. It is persisted for longer than the log itself.
-const base::TimeDelta kHistoryFileRetention = base::TimeDelta::FromDays(30);
+const base::TimeDelta kHistoryFileRetention = base::Days(30);
 
 WebRtcRemoteEventLogManager::WebRtcRemoteEventLogManager(
     WebRtcRemoteEventLogsObserver* observer,
diff --git a/chrome/browser/media/webrtc/webrtc_event_log_manager_unittest.cc b/chrome/browser/media/webrtc/webrtc_event_log_manager_unittest.cc
index cc2c64f5..007d2f8 100644
--- a/chrome/browser/media/webrtc/webrtc_event_log_manager_unittest.cc
+++ b/chrome/browser/media/webrtc/webrtc_event_log_manager_unittest.cc
@@ -998,7 +998,7 @@
 };
 
 const base::TimeDelta WebRtcEventLogManagerTestCacheClearing::kEpsion =
-    base::TimeDelta::FromHours(1);
+    base::Hours(1);
 
 class WebRtcEventLogManagerTestWithRemoteLoggingDisabled
     : public WebRtcEventLogManagerTestBase,
@@ -1266,7 +1266,7 @@
     // Way more than is "small", to make sure tests don't become flaky.
     // If the timestamp is ever off, it's likely to be off by more than this,
     // though, or the problem would not truly be severe enough to worry about.
-    const base::TimeDelta small_delta = base::TimeDelta::FromMinutes(15);
+    const base::TimeDelta small_delta = base::Minutes(15);
 
     return (std::max(a, b) - std::min(a, b) <= small_delta);
   }
@@ -2830,11 +2830,10 @@
   // This is OK in production, but can confuse the test, which expects a
   // specific order.
   base::Time time =
-      base::Time::Now() -
-      base::TimeDelta::FromSeconds(kMaxPendingRemoteBoundWebRtcEventLogs);
+      base::Time::Now() - base::Seconds(kMaxPendingRemoteBoundWebRtcEventLogs);
 
   for (size_t i = 0; i < kMaxPendingRemoteBoundWebRtcEventLogs; ++i) {
-    time += base::TimeDelta::FromSeconds(1);
+    time += base::Seconds(1);
 
     base::FilePath file_path;
     base::File file;
@@ -2883,11 +2882,10 @@
   // This is OK in production, but can confuse the test, which expects a
   // specific order.
   base::Time time =
-      base::Time::Now() -
-      base::TimeDelta::FromSeconds(kMaxPendingRemoteBoundWebRtcEventLogs);
+      base::Time::Now() - base::Seconds(kMaxPendingRemoteBoundWebRtcEventLogs);
 
   for (size_t i = 0, ext = 0; i < kMaxPendingRemoteBoundWebRtcEventLogs; ++i) {
-    time += base::TimeDelta::FromSeconds(1);
+    time += base::Seconds(1);
 
     const auto& extension = extensions[ext];
     ext = (ext + 1) % base::size(extensions);
@@ -3040,7 +3038,7 @@
   // Set the expired file's last modification time to past max retention.
   const base::Time expired_mod_time = base::Time::Now() -
                                       kRemoteBoundWebRtcEventLogsMaxRetention -
-                                      base::TimeDelta::FromSeconds(1);
+                                      base::Seconds(1);
   ASSERT_TRUE(base::TouchFile(file_paths[kExpired], file_info.last_accessed,
                               expired_mod_time));
 
@@ -3644,9 +3642,9 @@
 
   // Test
   EXPECT_CALL(remote_observer_, OnRemoteLogStopped(key)).Times(1);
-  ClearCacheForBrowserContext(
-      browser_context_.get(), base::Time::Now() - base::TimeDelta::FromHours(1),
-      base::Time::Now() + base::TimeDelta::FromHours(1));
+  ClearCacheForBrowserContext(browser_context_.get(),
+                              base::Time::Now() - base::Hours(1),
+                              base::Time::Now() + base::Hours(1));
   EXPECT_FALSE(base::PathExists(*file_path));
 }
 
@@ -3682,10 +3680,8 @@
   auto& elements = *(pending_logs_[browser_context.get()]);
 
   // Get a range whose intersection with the files' range is empty.
-  const base::Time earliest_mod =
-      pending_earliest_mod_ - base::TimeDelta::FromHours(2);
-  const base::Time latest_mod =
-      pending_earliest_mod_ - base::TimeDelta::FromHours(1);
+  const base::Time earliest_mod = pending_earliest_mod_ - base::Hours(2);
+  const base::Time latest_mod = pending_earliest_mod_ - base::Hours(1);
   ASSERT_LT(latest_mod, pending_latest_mod_);
 
   // Test - ClearCacheForBrowserContext() does not remove files not in range.
@@ -3716,9 +3712,9 @@
 
   // Test
   EXPECT_CALL(remote_observer_, OnRemoteLogStopped(_)).Times(0);
-  ClearCacheForBrowserContext(
-      browser_context_.get(), base::Time::Now() - base::TimeDelta::FromHours(2),
-      base::Time::Now() - base::TimeDelta::FromHours(1));
+  ClearCacheForBrowserContext(browser_context_.get(),
+                              base::Time::Now() - base::Hours(2),
+                              base::Time::Now() - base::Hours(1));
   EXPECT_TRUE(base::PathExists(*file_path));
 }
 
@@ -4656,7 +4652,7 @@
   // constraints, we cannot wait forever.)
   base::WaitableEvent event(base::WaitableEvent::ResetPolicy::MANUAL,
                             base::WaitableEvent::InitialState::NOT_SIGNALED);
-  event.TimedWait(base::TimeDelta::FromMilliseconds(500));
+  event.TimedWait(base::Milliseconds(500));
 
   WaitForPendingTasks(&run_loop);
 }
@@ -4930,7 +4926,7 @@
 
   // Pretend more time than kRemoteBoundWebRtcEventLogsMaxRetention has passed.
   const base::TimeDelta elapsed_time =
-      kRemoteBoundWebRtcEventLogsMaxRetention + base::TimeDelta::FromHours(1);
+      kRemoteBoundWebRtcEventLogsMaxRetention + base::Hours(1);
   base::File::Info file_info;
   ASSERT_TRUE(base::GetFileInfo(*log_path, &file_info));
 
@@ -4984,7 +4980,7 @@
 
   // Pretend more time than kRemoteBoundWebRtcEventLogsMaxRetention has passed.
   const base::TimeDelta elapsed_time =
-      kRemoteBoundWebRtcEventLogsMaxRetention + base::TimeDelta::FromHours(1);
+      kRemoteBoundWebRtcEventLogsMaxRetention + base::Hours(1);
   base::File::Info file_info;
   ASSERT_TRUE(base::GetFileInfo(*log_path, &file_info));
 
diff --git a/chrome/browser/media_galleries/gallery_watch_manager.cc b/chrome/browser/media_galleries/gallery_watch_manager.cc
index ef6669b..cf5a01b 100644
--- a/chrome/browser/media_galleries/gallery_watch_manager.cc
+++ b/chrome/browser/media_galleries/gallery_watch_manager.cc
@@ -427,14 +427,12 @@
 
   base::TimeDelta time_since_last_notify =
       base::Time::Now() - notification_info->second.last_notify_time;
-  if (time_since_last_notify <
-      base::TimeDelta::FromSeconds(kMinNotificationDelayInSeconds)) {
+  if (time_since_last_notify < base::Seconds(kMinNotificationDelayInSeconds)) {
     if (!notification_info->second.delayed_notification_pending) {
       notification_info->second.delayed_notification_pending = true;
       base::TimeDelta delay_to_next_valid_time =
           notification_info->second.last_notify_time +
-          base::TimeDelta::FromSeconds(kMinNotificationDelayInSeconds) -
-          base::Time::Now();
+          base::Seconds(kMinNotificationDelayInSeconds) - base::Time::Now();
       content::GetUIThreadTaskRunner({})->PostDelayedTask(
           FROM_HERE,
           base::BindOnce(&GalleryWatchManager::OnFilePathChanged,
diff --git a/chrome/browser/media_galleries/mac/mtp_device_delegate_impl_mac.mm b/chrome/browser/media_galleries/mac/mtp_device_delegate_impl_mac.mm
index c00505f7..aea81f2 100644
--- a/chrome/browser/media_galleries/mac/mtp_device_delegate_impl_mac.mm
+++ b/chrome/browser/media_galleries/mac/mtp_device_delegate_impl_mac.mm
@@ -327,7 +327,7 @@
       FROM_HERE,
       base::BindOnce(&MTPDeviceDelegateImplMac::ReadDirectoryTimeout,
                      weak_factory_.GetWeakPtr(), root),
-      base::TimeDelta::FromSeconds(kReadDirectoryTimeLimitSeconds));
+      base::Seconds(kReadDirectoryTimeLimitSeconds));
 }
 
 void MTPDeviceDelegateImplMac::ReadDirectoryTimeout(
diff --git a/chrome/browser/memory/memory_ablation_study.cc b/chrome/browser/memory/memory_ablation_study.cc
index ae01ef2..b216a52c 100644
--- a/chrome/browser/memory/memory_ablation_study.cc
+++ b/chrome/browser/memory/memory_ablation_study.cc
@@ -64,12 +64,11 @@
   if (remaining_allocation_mb_ <= 0)
     return;
 
-  allocate_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromSeconds(kAllocateTimerIntervalSeconds),
-      base::BindRepeating(&MemoryAblationStudy::Allocate,
-                          base::Unretained(this)));
+  allocate_timer_.Start(FROM_HERE, base::Seconds(kAllocateTimerIntervalSeconds),
+                        base::BindRepeating(&MemoryAblationStudy::Allocate,
+                                            base::Unretained(this)));
   read_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromSeconds(kReadTimerIntervalSeconds),
+      FROM_HERE, base::Seconds(kReadTimerIntervalSeconds),
       base::BindRepeating(&MemoryAblationStudy::Read, base::Unretained(this)));
 }
 
diff --git a/chrome/browser/memory/memory_ablation_study_unittest.cc b/chrome/browser/memory/memory_ablation_study_unittest.cc
index 00cb64e6..b8fc81b 100644
--- a/chrome/browser/memory/memory_ablation_study_unittest.cc
+++ b/chrome/browser/memory/memory_ablation_study_unittest.cc
@@ -38,7 +38,7 @@
 
   // 450s should be enough to both allocate the memory and trigger a read.
   MemoryAblationStudy study;
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(450));
+  task_environment_.FastForwardBy(base::Seconds(450));
   size_t total_size = 0;
   for (MemoryAblationStudy::Region& region : study.regions_) {
     total_size += region.size();
diff --git a/chrome/browser/memory/memory_kills_histogram.h b/chrome/browser/memory/memory_kills_histogram.h
index 280af58..00c6563 100644
--- a/chrome/browser/memory/memory_kills_histogram.h
+++ b/chrome/browser/memory/memory_kills_histogram.h
@@ -10,16 +10,14 @@
 
 namespace memory {
 
-constexpr base::TimeDelta kMaxMemoryKillTimeDelta =
-        base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kMaxMemoryKillTimeDelta = base::Seconds(30);
 
 }  // namespace memory
 
 // Use this macro to report elapsed time since last Memory kill event.
 // Must be a macro as the underlying HISTOGRAM macro creates static variables.
-#define UMA_HISTOGRAM_MEMORY_KILL_TIME_INTERVAL(name, sample)  \
-  UMA_HISTOGRAM_CUSTOM_TIMES(                               \
-      name, sample, base::TimeDelta::FromMilliseconds(1),   \
-      ::memory::kMaxMemoryKillTimeDelta, 50)
+#define UMA_HISTOGRAM_MEMORY_KILL_TIME_INTERVAL(name, sample)     \
+  UMA_HISTOGRAM_CUSTOM_TIMES(name, sample, base::Milliseconds(1), \
+                             ::memory::kMaxMemoryKillTimeDelta, 50)
 
 #endif  // CHROME_BROWSER_MEMORY_MEMORY_KILLS_HISTOGRAM_H_
diff --git a/chrome/browser/memory/memory_kills_monitor.cc b/chrome/browser/memory/memory_kills_monitor.cc
index 0d26077..8a1203a 100644
--- a/chrome/browser/memory/memory_kills_monitor.cc
+++ b/chrome/browser/memory/memory_kills_monitor.cc
@@ -100,7 +100,7 @@
     last_oom_kills_count_ = 0;
   }
 
-  checking_timer_.Start(FROM_HERE, base::TimeDelta::FromSeconds(1),
+  checking_timer_.Start(FROM_HERE, base::Seconds(1),
                         base::BindRepeating(&MemoryKillsMonitor::CheckOOMKill,
                                             base::Unretained(this)));
 }
diff --git a/chrome/browser/metrics/antivirus_metrics_provider_win.cc b/chrome/browser/metrics/antivirus_metrics_provider_win.cc
index cdd314b..9f58a0c 100644
--- a/chrome/browser/metrics/antivirus_metrics_provider_win.cc
+++ b/chrome/browser/metrics/antivirus_metrics_provider_win.cc
@@ -46,7 +46,7 @@
 void AntiVirusMetricsProvider::AsyncInit(base::OnceClosure done_callback) {
   if (!remote_util_win_) {
     remote_util_win_ = LaunchUtilWinServiceInstance();
-    remote_util_win_.reset_on_idle_timeout(base::TimeDelta::FromSeconds(5));
+    remote_util_win_.reset_on_idle_timeout(base::Seconds(5));
   }
 
   // Intentionally don't handle connection errors as not reporting this metric
diff --git a/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc b/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc
index 34ef0a4..96d09e7 100644
--- a/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc
+++ b/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc
@@ -776,7 +776,7 @@
   if (base::RandGenerator(100) == 0) {
     background_task_runner->PostDelayedTask(
         FROM_HERE, base::BindOnce(&RecordIsPinnedToTaskbarHistogram),
-        base::TimeDelta::FromSeconds(45));
+        base::Seconds(45));
   }
 #endif  // defined(OS_WIN)
 
diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc
index d56aa4f..3de48ed 100644
--- a/chrome/browser/metrics/chrome_metrics_service_client.cc
+++ b/chrome/browser/metrics/chrome_metrics_service_client.cc
@@ -905,7 +905,7 @@
       weak_ptr_factory_.GetWeakPtr());
 
   base::TimeDelta timeout =
-      base::TimeDelta::FromMilliseconds(kMaxHistogramGatheringWaitDuration);
+      base::Milliseconds(kMaxHistogramGatheringWaitDuration);
 
   DCHECK_EQ(num_async_histogram_fetches_in_progress_, 0);
   // `callback` is used 2 times below.
diff --git a/chrome/browser/metrics/cros_healthd_metrics_provider.cc b/chrome/browser/metrics/cros_healthd_metrics_provider.cc
index cc871a3b..3058ca8 100644
--- a/chrome/browser/metrics/cros_healthd_metrics_provider.cc
+++ b/chrome/browser/metrics/cros_healthd_metrics_provider.cc
@@ -23,8 +23,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kServiceDiscoveryTimeout =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kServiceDiscoveryTimeout = base::Seconds(5);
 
 }  // namespace
 
diff --git a/chrome/browser/metrics/cros_healthd_metrics_provider_unittest.cc b/chrome/browser/metrics/cros_healthd_metrics_provider_unittest.cc
index 5c371c1..87da8c4 100644
--- a/chrome/browser/metrics/cros_healthd_metrics_provider_unittest.cc
+++ b/chrome/browser/metrics/cros_healthd_metrics_provider_unittest.cc
@@ -109,8 +109,7 @@
 
 TEST_F(CrosHealthdMetricsProviderTest, EndToEndTimeout) {
   chromeos::cros_healthd::FakeCrosHealthdClient::Get()->SetCallbackDelay(
-      CrosHealthdMetricsProvider::GetTimeout() +
-      base::TimeDelta::FromSeconds(5));
+      CrosHealthdMetricsProvider::GetTimeout() + base::Seconds(5));
 
   base::RunLoop run_loop;
   CrosHealthdMetricsProvider provider;
diff --git a/chrome/browser/metrics/desktop_session_duration/chrome_visibility_observer.cc b/chrome/browser/metrics/desktop_session_duration/chrome_visibility_observer.cc
index 9e7f95ac..5d02ec3 100644
--- a/chrome/browser/metrics/desktop_session_duration/chrome_visibility_observer.cc
+++ b/chrome/browser/metrics/desktop_session_duration/chrome_visibility_observer.cc
@@ -72,7 +72,7 @@
   if (!param_value.empty())
     base::StringToInt(param_value, &timeout_seconds);
 
-  visibility_gap_timeout_ = base::TimeDelta::FromSeconds(timeout_seconds);
+  visibility_gap_timeout_ = base::Seconds(timeout_seconds);
 }
 
 void ChromeVisibilityObserver::SetVisibilityGapTimeoutForTesting(
diff --git a/chrome/browser/metrics/desktop_session_duration/desktop_session_duration_tracker.cc b/chrome/browser/metrics/desktop_session_duration/desktop_session_duration_tracker.cc
index 4f131e0..a01f254 100644
--- a/chrome/browser/metrics/desktop_session_duration/desktop_session_duration_tracker.cc
+++ b/chrome/browser/metrics/desktop_session_duration/desktop_session_duration_tracker.cc
@@ -166,8 +166,7 @@
   UMA_HISTOGRAM_LONG_TIMES("Session.TotalDuration", delta);
 
   UMA_HISTOGRAM_CUSTOM_TIMES("Session.TotalDurationMax1Day", delta,
-                             base::TimeDelta::FromMilliseconds(1),
-                             base::TimeDelta::FromHours(24), 50);
+                             base::Milliseconds(1), base::Hours(24), 50);
 }
 
 void DesktopSessionDurationTracker::InitInactivityTimeout() {
@@ -179,7 +178,7 @@
   if (!param_value.empty())
     base::StringToInt(param_value, &timeout_minutes);
 
-  inactivity_timeout_ = base::TimeDelta::FromMinutes(timeout_minutes);
+  inactivity_timeout_ = base::Minutes(timeout_minutes);
 }
 
 }  // namespace metrics
diff --git a/chrome/browser/metrics/desktop_session_duration/desktop_session_duration_tracker_unittest.cc b/chrome/browser/metrics/desktop_session_duration/desktop_session_duration_tracker_unittest.cc
index 8586778..d99d5fde 100644
--- a/chrome/browser/metrics/desktop_session_duration/desktop_session_duration_tracker_unittest.cc
+++ b/chrome/browser/metrics/desktop_session_duration/desktop_session_duration_tracker_unittest.cc
@@ -12,9 +12,8 @@
 namespace metrics {
 namespace {
 
-const base::TimeDelta kZeroTime = base::TimeDelta::FromSeconds(0);
-const base::TimeDelta kInactivityTimeoutForTesting =
-    base::TimeDelta::FromSeconds(1);
+const base::TimeDelta kZeroTime = base::Seconds(0);
+const base::TimeDelta kInactivityTimeoutForTesting = base::Seconds(1);
 
 // Mock class for |DesktopSessionDurationTracker| for testing.
 class MockDesktopSessionDurationTracker : public DesktopSessionDurationTracker {
@@ -227,7 +226,7 @@
   histogram_tester_.ExpectTotalCount("Session.TotalDuration", 0);
 
   // Sleep a little while.
-  base::TimeDelta kDelay = base::TimeDelta::FromSeconds(2);
+  base::TimeDelta kDelay = base::Seconds(2);
   while (true) {
     base::TimeDelta elapsed = base::TimeTicks::Now() - before_session_start;
     if (elapsed >= kDelay)
diff --git a/chrome/browser/metrics/desktop_session_duration/touch_mode_stats_tracker_unittest.cc b/chrome/browser/metrics/desktop_session_duration/touch_mode_stats_tracker_unittest.cc
index d9ec4198..8792ca57 100644
--- a/chrome/browser/metrics/desktop_session_duration/touch_mode_stats_tracker_unittest.cc
+++ b/chrome/browser/metrics/desktop_session_duration/touch_mode_stats_tracker_unittest.cc
@@ -22,7 +22,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kInactivityTimeout = base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kInactivityTimeout = base::Minutes(5);
 
 class SessionEndWaiter
     : public metrics::DesktopSessionDurationTracker::Observer {
@@ -117,12 +117,12 @@
 
   StartSession();
   ASSERT_TRUE(metrics::DesktopSessionDurationTracker::Get()->in_session());
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_environment_.FastForwardBy(base::Minutes(1));
   EndSession();
 
   histograms.ExpectUniqueTimeSample(
       TouchModeStatsTracker::kSessionTouchDurationHistogramName,
-      base::TimeDelta::FromMinutes(1), 1);
+      base::Minutes(1), 1);
 }
 
 // The touch duration logged should be 0 for a non-touch session.
@@ -131,7 +131,7 @@
   base::HistogramTester histograms;
 
   StartSession();
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_environment_.FastForwardBy(base::Minutes(1));
   EndSession();
 
   histograms.ExpectUniqueTimeSample(
@@ -149,39 +149,39 @@
     base::HistogramTester histograms;
     StartSession();
 
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(15));
+    task_environment_.FastForwardBy(base::Seconds(15));
     touch_mode_override.UpdateState(true);
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(15));
+    task_environment_.FastForwardBy(base::Seconds(15));
     touch_mode_override.UpdateState(false);
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(15));
+    task_environment_.FastForwardBy(base::Seconds(15));
     touch_mode_override.UpdateState(true);
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(15));
+    task_environment_.FastForwardBy(base::Seconds(15));
     touch_mode_override.UpdateState(false);
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(15));
+    task_environment_.FastForwardBy(base::Seconds(15));
 
     EndSession();
     histograms.ExpectUniqueTimeSample(
         TouchModeStatsTracker::kSessionTouchDurationHistogramName,
-        base::TimeDelta::FromSeconds(30), 1);
+        base::Seconds(30), 1);
   }
 
   touch_mode_override.UpdateState(true);
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(15));
+  task_environment_.FastForwardBy(base::Seconds(15));
 
   // Check starting in non-touch mode.
   {
     base::HistogramTester histograms;
     StartSession();
 
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(15));
+    task_environment_.FastForwardBy(base::Seconds(15));
     touch_mode_override.UpdateState(false);
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(15));
+    task_environment_.FastForwardBy(base::Seconds(15));
     touch_mode_override.UpdateState(true);
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(15));
+    task_environment_.FastForwardBy(base::Seconds(15));
 
     EndSession();
     histograms.ExpectUniqueTimeSample(
         TouchModeStatsTracker::kSessionTouchDurationHistogramName,
-        base::TimeDelta::FromSeconds(30), 1);
+        base::Seconds(30), 1);
   }
 }
diff --git a/chrome/browser/metrics/extensions_metrics_provider_unittest.cc b/chrome/browser/metrics/extensions_metrics_provider_unittest.cc
index 9ab6920..3da5a04 100644
--- a/chrome/browser/metrics/extensions_metrics_provider_unittest.cc
+++ b/chrome/browser/metrics/extensions_metrics_provider_unittest.cc
@@ -154,7 +154,7 @@
     InitializeEmptyExtensionService();
     prefs_ = extensions::ExtensionPrefs::Get(profile());
 
-    last_sample_time_ = base::Time::Now() - base::TimeDelta::FromMinutes(30);
+    last_sample_time_ = base::Time::Now() - base::Minutes(30);
   }
 
   ExtensionInstallProto ConstructProto(const Extension& extension) {
@@ -404,7 +404,7 @@
             .SetLocation(ManifestLocation::kInternal)
             .Build();
     add_extension(extension.get());
-    set_last_sample_time(base::Time::Now() + base::TimeDelta::FromMinutes(60));
+    set_last_sample_time(base::Time::Now() + base::Minutes(60));
     ExtensionInstallProto install = ConstructProto(*extension);
     EXPECT_FALSE(install.installed_in_this_sample_period());
   }
diff --git a/chrome/browser/metrics/oom/out_of_memory_reporter_unittest.cc b/chrome/browser/metrics/oom/out_of_memory_reporter_unittest.cc
index 13d4189..53bb040 100644
--- a/chrome/browser/metrics/oom/out_of_memory_reporter_unittest.cc
+++ b/chrome/browser/metrics/oom/out_of_memory_reporter_unittest.cc
@@ -117,7 +117,7 @@
     test_tick_clock_ = tick_clock.get();
     reporter->SetTickClockForTest(std::move(tick_clock));
     // Ensure clock is set to something that's not 0 to begin.
-    test_tick_clock_->Advance(base::TimeDelta::FromSeconds(1));
+    test_tick_clock_->Advance(base::Seconds(1));
 
     test_ukm_recorder_ = std::make_unique<ukm::TestAutoSetUkmRecorder>();
     ukm::InitializeSourceUrlRecorderForWebContents(web_contents());
@@ -137,7 +137,7 @@
   }
 
   void SimulateOOM() {
-    test_tick_clock_->Advance(base::TimeDelta::FromSeconds(3));
+    test_tick_clock_->Advance(base::Seconds(3));
     SimulateRendererCreated();
 #if defined(OS_ANDROID)
     process()->SimulateRenderProcessExit(base::TERMINATION_STATUS_OOM_PROTECTED,
diff --git a/chrome/browser/metrics/perf/collection_params.cc b/chrome/browser/metrics/perf/collection_params.cc
index 834eb35..5fd430e 100644
--- a/chrome/browser/metrics/perf/collection_params.cc
+++ b/chrome/browser/metrics/perf/collection_params.cc
@@ -17,11 +17,11 @@
     case version_info::Channel::CANARY:
     case version_info::Channel::DEV:
     case version_info::Channel::BETA:
-      return base::TimeDelta::FromSeconds(4);
+      return base::Seconds(4);
     case version_info::Channel::STABLE:
     case version_info::Channel::UNKNOWN:
     default:
-      return base::TimeDelta::FromSeconds(2);
+      return base::Seconds(2);
   }
 }
 
@@ -32,11 +32,11 @@
     case version_info::Channel::CANARY:
     case version_info::Channel::DEV:
     case version_info::Channel::BETA:
-      return base::TimeDelta::FromMinutes(90);
+      return base::Minutes(90);
     case version_info::Channel::STABLE:
     case version_info::Channel::UNKNOWN:
     default:
-      return base::TimeDelta::FromMinutes(180);
+      return base::Minutes(180);
   }
 }
 
@@ -48,10 +48,10 @@
   periodic_interval = PeriodicCollectionInterval();
 
   resume_from_suspend.sampling_factor = 10;
-  resume_from_suspend.max_collection_delay = base::TimeDelta::FromSeconds(5);
+  resume_from_suspend.max_collection_delay = base::Seconds(5);
 
   restore_session.sampling_factor = 10;
-  restore_session.max_collection_delay = base::TimeDelta::FromSeconds(10);
+  restore_session.max_collection_delay = base::Seconds(10);
 }
 
 }  // namespace metrics
diff --git a/chrome/browser/metrics/perf/metric_collector.cc b/chrome/browser/metrics/perf/metric_collector.cc
index acd2d20..e98d8e3a 100644
--- a/chrome/browser/metrics/perf/metric_collector.cc
+++ b/chrome/browser/metrics/perf/metric_collector.cc
@@ -31,8 +31,7 @@
 base::TimeDelta RandomTimeDelta(base::TimeDelta max) {
   if (max.is_zero())
     return max;
-  return base::TimeDelta::FromMicroseconds(
-      base::RandGenerator(max.InMicroseconds()));
+  return base::Microseconds(base::RandGenerator(max.InMicroseconds()));
 }
 
 // PerfDataProto is defined elsewhere with more fields than the definition in
@@ -151,8 +150,8 @@
     return;
   }
 
-  const auto min_interval = base::TimeDelta::FromSeconds(
-      kMinIntervalBetweenSessionRestoreCollectionsInSec);
+  const auto min_interval =
+      base::Seconds(kMinIntervalBetweenSessionRestoreCollectionsInSec);
   const base::TimeDelta time_since_last_collection =
       (base::TimeTicks::Now() - last_session_restore_collection_time_);
   // Do not collect if there hasn't been enough elapsed time since the last
diff --git a/chrome/browser/metrics/perf/metric_collector_unittest.cc b/chrome/browser/metrics/perf/metric_collector_unittest.cc
index bab07f6..9b161ddb 100644
--- a/chrome/browser/metrics/perf/metric_collector_unittest.cc
+++ b/chrome/browser/metrics/perf/metric_collector_unittest.cc
@@ -114,9 +114,8 @@
   base::WeakPtrFactory<TestMetricCollector> weak_factory_{this};
 };
 
-const base::TimeDelta kPeriodicCollectionInterval =
-    base::TimeDelta::FromHours(1);
-const base::TimeDelta kMaxCollectionDelay = base::TimeDelta::FromSeconds(1);
+const base::TimeDelta kPeriodicCollectionInterval = base::Hours(1);
+const base::TimeDelta kMaxCollectionDelay = base::Seconds(1);
 
 }  // namespace
 
@@ -420,7 +419,7 @@
 }
 
 TEST_F(MetricCollectorTest, ScheduleSuspendDoneCollection) {
-  const auto kSuspendDuration = base::TimeDelta::FromMinutes(3);
+  const auto kSuspendDuration = base::Minutes(3);
 
   metric_collector_->ScheduleSuspendDoneCollection(kSuspendDuration);
 
@@ -561,8 +560,7 @@
 
   // Calling ScheduleSuspendDoneCollection or ScheduleSessionRestoreCollection
   // should not start the timer that triggers collection.
-  metric_collector_->ScheduleSuspendDoneCollection(
-      base::TimeDelta::FromMinutes(10));
+  metric_collector_->ScheduleSuspendDoneCollection(base::Minutes(10));
   EXPECT_FALSE(metric_collector_->IsRunning());
 
   metric_collector_->ScheduleSessionRestoreCollection(100);
@@ -572,7 +570,7 @@
 TEST_F(MetricCollectorTest, ZeroPeriodicIntervalDisablesCollection) {
   // Define params with zero periodic interval.
   CollectionParams test_params;
-  test_params.periodic_interval = base::TimeDelta::FromMilliseconds(0);
+  test_params.periodic_interval = base::Milliseconds(0);
 
   metric_collector_ = std::make_unique<TestMetricCollector>(test_params);
   metric_collector_->Init();
@@ -583,7 +581,7 @@
 
   // Advance the clock by 10 hours. We should have no profile and timer is not
   // running.
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(10));
+  task_environment_.FastForwardBy(base::Hours(10));
 
   EXPECT_FALSE(metric_collector_->IsRunning())
       << "Sanity: timer should not be running.";
diff --git a/chrome/browser/metrics/perf/metric_provider_unittest.cc b/chrome/browser/metrics/perf/metric_provider_unittest.cc
index 9133aeb..d3507f9 100644
--- a/chrome/browser/metrics/perf/metric_provider_unittest.cc
+++ b/chrome/browser/metrics/perf/metric_provider_unittest.cc
@@ -124,9 +124,8 @@
   base::WeakPtrFactory<TestMetricCollector> weak_factory_;
 };
 
-const base::TimeDelta kPeriodicCollectionInterval =
-    base::TimeDelta::FromHours(1);
-const base::TimeDelta kMaxCollectionDelay = base::TimeDelta::FromSeconds(1);
+const base::TimeDelta kPeriodicCollectionInterval = base::Hours(1);
+const base::TimeDelta kMaxCollectionDelay = base::Seconds(1);
 const uint64_t kRedactedCommMd5Prefix = 0xee1f021828a1fcbc;
 }  // namespace
 
@@ -217,7 +216,7 @@
   metric_provider_->OnUserLoggedIn();
   task_environment_.RunUntilIdle();
 
-  const auto kSuspendDuration = base::TimeDelta::FromMinutes(3);
+  const auto kSuspendDuration = base::Minutes(3);
 
   metric_provider_->SuspendDone(kSuspendDuration);
 
diff --git a/chrome/browser/metrics/perf/perf_events_collector.cc b/chrome/browser/metrics/perf/perf_events_collector.cc
index d937387..af3eb01 100644
--- a/chrome/browser/metrics/perf/perf_events_collector.cc
+++ b/chrome/browser/metrics/perf/perf_events_collector.cc
@@ -429,25 +429,24 @@
   int64_t value;
   CollectionParams& collector_params = collection_params();
   if (GetInt64Param(params, "ProfileCollectionDurationSec", &value)) {
-    collector_params.collection_duration = base::TimeDelta::FromSeconds(value);
+    collector_params.collection_duration = base::Seconds(value);
   }
   if (GetInt64Param(params, "PeriodicProfilingIntervalMs", &value)) {
-    collector_params.periodic_interval =
-        base::TimeDelta::FromMilliseconds(value);
+    collector_params.periodic_interval = base::Milliseconds(value);
   }
   if (GetInt64Param(params, "ResumeFromSuspend::SamplingFactor", &value)) {
     collector_params.resume_from_suspend.sampling_factor = value;
   }
   if (GetInt64Param(params, "ResumeFromSuspend::MaxDelaySec", &value)) {
     collector_params.resume_from_suspend.max_collection_delay =
-        base::TimeDelta::FromSeconds(value);
+        base::Seconds(value);
   }
   if (GetInt64Param(params, "RestoreSession::SamplingFactor", &value)) {
     collector_params.restore_session.sampling_factor = value;
   }
   if (GetInt64Param(params, "RestoreSession::MaxDelaySec", &value)) {
     collector_params.restore_session.max_collection_delay =
-        base::TimeDelta::FromSeconds(value);
+        base::Seconds(value);
   }
 
   const std::string best_cpu_specifier =
diff --git a/chrome/browser/metrics/perf/perf_events_collector_unittest.cc b/chrome/browser/metrics/perf/perf_events_collector_unittest.cc
index b58c6dae..1e2dd6b 100644
--- a/chrome/browser/metrics/perf/perf_events_collector_unittest.cc
+++ b/chrome/browser/metrics/perf/perf_events_collector_unittest.cc
@@ -220,9 +220,8 @@
   bool collection_stopped_ = false;
 };
 
-const base::TimeDelta kPeriodicCollectionInterval =
-    base::TimeDelta::FromHours(1);
-const base::TimeDelta kCollectionDuration = base::TimeDelta::FromSeconds(2);
+const base::TimeDelta kPeriodicCollectionInterval = base::Hours(1);
+const base::TimeDelta kCollectionDuration = base::Seconds(2);
 
 // A wrapper around internal::CommandSamplesCPUCycles, to test if a perf command
 // samples the cycles event. The wrapper takes a command as a string, while the
@@ -1008,18 +1007,18 @@
 TEST_F(PerfCollectorTest, StopCollection_AnotherTrigger) {
   const int kRestoredTabs = 1;
 
-  perf_collector_->CollectPerfDataAfterSessionRestore(
-      base::TimeDelta::FromSeconds(1), kRestoredTabs);
+  perf_collector_->CollectPerfDataAfterSessionRestore(base::Seconds(1),
+                                                      kRestoredTabs);
   // Timer is active after the OnSessionRestoreDone call.
   EXPECT_TRUE(perf_collector_->IsRunning());
   // A collection in action: should reject another collection request.
   EXPECT_FALSE(perf_collector_->ShouldCollect());
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  task_environment_.FastForwardBy(base::Milliseconds(100));
   // A collection is ongoing. Triggering a jankiness collection should have no
   // effect on the existing collection.
   perf_collector_->OnJankStarted();
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  task_environment_.FastForwardBy(base::Milliseconds(100));
   // This doesn't stop the existing collection.
   perf_collector_->OnJankStopped();
   task_environment_.RunUntilIdle();
@@ -1053,7 +1052,7 @@
   // A collection in action: should reject another collection request.
   EXPECT_FALSE(perf_collector_->ShouldCollect());
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  task_environment_.FastForwardBy(base::Milliseconds(100));
 
   perf_collector_->OnJankStopped();
   task_environment_.RunUntilIdle();
@@ -1221,26 +1220,24 @@
   const auto& parsed_params = perf_collector->collection_params();
 
   // Not initialized yet:
-  EXPECT_NE(base::TimeDelta::FromSeconds(15),
-            parsed_params.collection_duration);
-  EXPECT_NE(base::TimeDelta::FromHours(1), parsed_params.periodic_interval);
+  EXPECT_NE(base::Seconds(15), parsed_params.collection_duration);
+  EXPECT_NE(base::Hours(1), parsed_params.periodic_interval);
   EXPECT_NE(1, parsed_params.resume_from_suspend.sampling_factor);
-  EXPECT_NE(base::TimeDelta::FromSeconds(10),
+  EXPECT_NE(base::Seconds(10),
             parsed_params.resume_from_suspend.max_collection_delay);
   EXPECT_NE(2, parsed_params.restore_session.sampling_factor);
-  EXPECT_NE(base::TimeDelta::FromSeconds(20),
+  EXPECT_NE(base::Seconds(20),
             parsed_params.restore_session.max_collection_delay);
 
   perf_collector->Init();
 
-  EXPECT_EQ(base::TimeDelta::FromSeconds(15),
-            parsed_params.collection_duration);
-  EXPECT_EQ(base::TimeDelta::FromHours(1), parsed_params.periodic_interval);
+  EXPECT_EQ(base::Seconds(15), parsed_params.collection_duration);
+  EXPECT_EQ(base::Hours(1), parsed_params.periodic_interval);
   EXPECT_EQ(1, parsed_params.resume_from_suspend.sampling_factor);
-  EXPECT_EQ(base::TimeDelta::FromSeconds(10),
+  EXPECT_EQ(base::Seconds(10),
             parsed_params.resume_from_suspend.max_collection_delay);
   EXPECT_EQ(2, parsed_params.restore_session.sampling_factor);
-  EXPECT_EQ(base::TimeDelta::FromSeconds(20),
+  EXPECT_EQ(base::Seconds(20),
             parsed_params.restore_session.max_collection_delay);
 }
 
diff --git a/chrome/browser/metrics/perf/perf_output_unittest.cc b/chrome/browser/metrics/perf/perf_output_unittest.cc
index a004b65..17b8289 100644
--- a/chrome/browser/metrics/perf/perf_output_unittest.cc
+++ b/chrome/browser/metrics/perf/perf_output_unittest.cc
@@ -54,7 +54,7 @@
 // Perf session ID returned by the GetPerfOutputFd DBus method call.
 const uint64_t kFakePerfSssionId = 101;
 // Profile collection duration is 4 seconds.
-const base::TimeDelta kProfileDuration = base::TimeDelta::FromSeconds(4);
+const base::TimeDelta kProfileDuration = base::Seconds(4);
 // Perf command line arguments.
 const std::vector<std::string> kPerfArgs{"perf",   "record", "-a", "-e",
                                          "cycles", "-g",     "-c", "4000037"};
diff --git a/chrome/browser/metrics/perf/profile_provider_chromeos.cc b/chrome/browser/metrics/perf/profile_provider_chromeos.cc
index e9088390..51754a5 100644
--- a/chrome/browser/metrics/perf/profile_provider_chromeos.cc
+++ b/chrome/browser/metrics/perf/profile_provider_chromeos.cc
@@ -54,8 +54,8 @@
 }  // namespace
 
 ProfileProvider::ProfileProvider()
-    : jankiness_collection_min_interval_(base::TimeDelta::FromSeconds(
-          kJankinessCollectionMinIntervalSec.Get())) {
+    : jankiness_collection_min_interval_(
+          base::Seconds(kJankinessCollectionMinIntervalSec.Get())) {
   // Initialize the WindowedIncognitoMonitor on the UI thread.
   WindowedIncognitoMonitor::Init();
   // Register a perf events collector.
diff --git a/chrome/browser/metrics/perf/profile_provider_chromeos_unittest.cc b/chrome/browser/metrics/perf/profile_provider_chromeos_unittest.cc
index 2b9161a8..9c30ba1 100644
--- a/chrome/browser/metrics/perf/profile_provider_chromeos_unittest.cc
+++ b/chrome/browser/metrics/perf/profile_provider_chromeos_unittest.cc
@@ -90,9 +90,8 @@
   base::WeakPtrFactory<TestMetricCollector> weak_factory_{this};
 };
 
-const base::TimeDelta kPeriodicCollectionInterval =
-    base::TimeDelta::FromHours(1);
-const base::TimeDelta kMaxCollectionDelay = base::TimeDelta::FromSeconds(1);
+const base::TimeDelta kPeriodicCollectionInterval = base::Hours(1);
+const base::TimeDelta kMaxCollectionDelay = base::Seconds(1);
 
 // Allows access to some private methods for testing.
 class TestProfileProvider : public ProfileProvider {
@@ -225,7 +224,7 @@
 
 TEST_F(ProfileProviderTest, SuspendDone_NoUserLoggedIn_NoCollection) {
   // No user is logged in, so no collection is done on resume from suspend.
-  profile_provider_->SuspendDone(base::TimeDelta::FromMinutes(10));
+  profile_provider_->SuspendDone(base::Minutes(10));
   // Run all pending tasks.
   task_environment_.FastForwardBy(kMaxCollectionDelay);
 
@@ -245,7 +244,7 @@
   }
 
   // Trigger a canceled suspend (zero sleep duration).
-  profile_provider_->SuspendDone(base::TimeDelta::FromSeconds(0));
+  profile_provider_->SuspendDone(base::Seconds(0));
   // Run all pending tasks.
   task_environment_.FastForwardBy(kMaxCollectionDelay);
 
@@ -263,7 +262,7 @@
       chromeos::LoginState::LOGGED_IN_USER_REGULAR);
 
   // Trigger a resume from suspend.
-  profile_provider_->SuspendDone(base::TimeDelta::FromMinutes(10));
+  profile_provider_->SuspendDone(base::Minutes(10));
   // Run all pending tasks.
   task_environment_.FastForwardBy(kMaxCollectionDelay);
 
@@ -354,7 +353,7 @@
   // Fast forward time to 1 second before the throttling duration is over.
   task_environment_.FastForwardBy(
       profile_provider_->jankiness_collection_min_interval() -
-      base::TimeDelta::FromSeconds(1));
+      base::Seconds(1));
 
   // This collection within the minimum interval should be throttled.
   profile_provider_->OnJankStarted();
@@ -365,7 +364,7 @@
 
   // Move the clock forward past the throttling duration. The next JANKY_TASK
   // collection should succeed.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
 
   profile_provider_->OnJankStarted();
   task_environment_.RunUntilIdle();
@@ -408,7 +407,7 @@
   content::GetUIThreadTaskRunner({})->PostTask(
       FROM_HERE, base::BindLambdaForTesting([&]() {
         // This is a janky task that runs for 2 seconds.
-        task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(2));
+        task_environment_.FastForwardBy(base::Seconds(2));
       }));
   task_environment_.RunUntilIdle();
 
@@ -426,7 +425,7 @@
   content::GetIOThreadTaskRunner({})->PostTask(
       FROM_HERE, base::BindLambdaForTesting([&]() {
         // This is a janky task that runs for 2 seconds.
-        task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(2));
+        task_environment_.FastForwardBy(base::Seconds(2));
       }));
   task_environment_.RunUntilIdle();
 
@@ -455,7 +454,7 @@
 
   // Get default minimum interval is expected to be 30 minutes.
   EXPECT_EQ(profile_provider->jankiness_collection_min_interval(),
-            base::TimeDelta::FromMinutes(30));
+            base::Minutes(30));
 
   profile_provider.reset();
 
@@ -472,7 +471,7 @@
   profile_provider = std::make_unique<TestProfileProvider>();
   profile_provider->Init();
   EXPECT_EQ(profile_provider->jankiness_collection_min_interval(),
-            base::TimeDelta::FromSeconds(180));
+            base::Seconds(180));
 
   profile_provider.reset();
 
diff --git a/chrome/browser/metrics/perf/profile_provider_unittest_main.cc b/chrome/browser/metrics/perf/profile_provider_unittest_main.cc
index 9111872..f726a66 100644
--- a/chrome/browser/metrics/perf/profile_provider_unittest_main.cc
+++ b/chrome/browser/metrics/perf/profile_provider_unittest_main.cc
@@ -27,14 +27,13 @@
 
 namespace metrics {
 
-const base::TimeDelta kPeriodicCollectionInterval =
-    base::TimeDelta::FromHours(1);
-const base::TimeDelta kMaxCollectionDelay = base::TimeDelta::FromSeconds(1);
+const base::TimeDelta kPeriodicCollectionInterval = base::Hours(1);
+const base::TimeDelta kMaxCollectionDelay = base::Seconds(1);
 // Use a 2-sec collection duration.
-const base::TimeDelta kCollectionDuration = base::TimeDelta::FromSeconds(2);
+const base::TimeDelta kCollectionDuration = base::Seconds(2);
 // The timeout in waiting until collection done. 20 seconds is a safe value far
 // beyond the collection duration used.
-const base::TimeDelta kCollectionDoneTimeout = base::TimeDelta::FromSeconds(20);
+const base::TimeDelta kCollectionDoneTimeout = base::Seconds(20);
 
 CollectionParams GetTestCollectionParams() {
   CollectionParams test_params;
@@ -223,8 +222,8 @@
   void StartSpinningCPU() {
     spin_cpu_ = true;
     spin_cpu_task_runner_ = base::ThreadPool::CreateSequencedTaskRunner({});
-    static constexpr auto spin_duration = base::TimeDelta::FromMilliseconds(1);
-    static constexpr auto sleep_duration = base::TimeDelta::FromMilliseconds(9);
+    static constexpr auto spin_duration = base::Milliseconds(1);
+    static constexpr auto sleep_duration = base::Milliseconds(9);
     spin_cpu_task_runner_->PostTask(
         FROM_HERE, base::BindOnce(
                        [](ProfileProviderRealCollectionTest* self) {
@@ -271,7 +270,7 @@
 // Flaky on chromeos: crbug.com/1184119
 TEST_F(ProfileProviderRealCollectionTest, SuspendDone) {
   // Trigger a resume from suspend.
-  profile_provider_->SuspendDone(base::TimeDelta::FromMinutes(10));
+  profile_provider_->SuspendDone(base::Minutes(10));
 
   profile_provider_->WaitUntilCollectionDone();
   EXPECT_TRUE(profile_provider_->collection_done());
diff --git a/chrome/browser/metrics/plugin_metrics_provider.cc b/chrome/browser/metrics/plugin_metrics_provider.cc
index 7141411..469658d 100644
--- a/chrome/browser/metrics/plugin_metrics_provider.cc
+++ b/chrome/browser/metrics/plugin_metrics_provider.cc
@@ -31,7 +31,7 @@
 namespace {
 
 // Delay for RecordCurrentState execution.
-constexpr base::TimeDelta kRecordStateDelay = base::TimeDelta::FromSeconds(15);
+constexpr base::TimeDelta kRecordStateDelay = base::Seconds(15);
 
 // Returns the plugin preferences corresponding for this user, if available.
 // If multiple user profiles are loaded, returns the preferences corresponding
diff --git a/chrome/browser/metrics/power/power_metrics_provider_mac.mm b/chrome/browser/metrics/power/power_metrics_provider_mac.mm
index 30f70d1e..cb11e87 100644
--- a/chrome/browser/metrics/power/power_metrics_provider_mac.mm
+++ b/chrome/browser/metrics/power/power_metrics_provider_mac.mm
@@ -27,11 +27,11 @@
 
 namespace {
 constexpr base::TimeDelta kStartupPowerMetricsCollectionDuration =
-    base::TimeDelta::FromSeconds(30);
+    base::Seconds(30);
 constexpr base::TimeDelta kStartupPowerMetricsCollectionInterval =
-    base::TimeDelta::FromSeconds(1);
+    base::Seconds(1);
 constexpr base::TimeDelta kPostStartupPowerMetricsCollectionInterval =
-    base::TimeDelta::FromSeconds(60);
+    base::Seconds(60);
 
 // This API is undocumented. It can read hardware sensors including
 // temperature, voltage, and power. A useful tool for discovering new keys is
diff --git a/chrome/browser/metrics/power/power_metrics_reporter.cc b/chrome/browser/metrics/power/power_metrics_reporter.cc
index ee687df9..3bc158e 100644
--- a/chrome/browser/metrics/power/power_metrics_reporter.cc
+++ b/chrome/browser/metrics/power/power_metrics_reporter.cc
@@ -387,7 +387,7 @@
   // The battery discharge rate is reported per minute with 1/10000 of full
   // charge resolution.
   static const int64_t kDischargeRateFactor =
-      10000 * base::TimeDelta::FromMinutes(1).InSecondsF();
+      10000 * base::Minutes(1).InSecondsF();
 
   auto discharge_rate = (previous_battery_state.charge_level.value() -
                          battery_state_.charge_level.value()) *
diff --git a/chrome/browser/metrics/power/power_metrics_reporter_unittest.cc b/chrome/browser/metrics/power/power_metrics_reporter_unittest.cc
index 0f1a4a9..721f9142 100644
--- a/chrome/browser/metrics/power/power_metrics_reporter_unittest.cc
+++ b/chrome/browser/metrics/power/power_metrics_reporter_unittest.cc
@@ -32,7 +32,7 @@
     "Power.MainScreenBrightnessAvailable";
 
 constexpr base::TimeDelta kExpectedMetricsCollectionInterval =
-    base::TimeDelta::FromSeconds(120);
+    base::Seconds(120);
 constexpr double kTolerableTimeElapsedRatio = 0.10;
 constexpr double kTolerablePositiveDrift = 1 + kTolerableTimeElapsedRatio;
 constexpr double kTolerableNegativeDrift = 1 - kTolerableTimeElapsedRatio;
@@ -181,31 +181,28 @@
   UsageScenarioDataStore::IntervalData fake_interval_data;
 
   int fake_value = 42;
-  fake_interval_data.uptime_at_interval_end =
-      base::TimeDelta::FromHours(++fake_value);
+  fake_interval_data.uptime_at_interval_end = base::Hours(++fake_value);
   fake_interval_data.max_tab_count = ++fake_value;
   fake_interval_data.max_visible_window_count = ++fake_value;
   fake_interval_data.top_level_navigation_count = ++fake_value;
   fake_interval_data.tabs_closed_during_interval = ++fake_value;
   fake_interval_data.user_interaction_count = ++fake_value;
   fake_interval_data.time_playing_video_full_screen_single_monitor =
-      base::TimeDelta::FromSeconds(++fake_value);
+      base::Seconds(++fake_value);
   fake_interval_data.time_with_open_webrtc_connection =
-      base::TimeDelta::FromSeconds(++fake_value);
+      base::Seconds(++fake_value);
   fake_interval_data.source_id_for_longest_visible_origin =
       ukm::ConvertToSourceId(42, ukm::SourceIdType::NAVIGATION_ID);
   fake_interval_data.source_id_for_longest_visible_origin_duration =
-      base::TimeDelta::FromSeconds(++fake_value);
+      base::Seconds(++fake_value);
   fake_interval_data.time_playing_video_in_visible_tab =
-      base::TimeDelta::FromSeconds(++fake_value);
+      base::Seconds(++fake_value);
   fake_interval_data.time_since_last_user_interaction_with_browser =
-      base::TimeDelta::FromSeconds(++fake_value);
-  fake_interval_data.time_capturing_video =
-      base::TimeDelta::FromSeconds(++fake_value);
-  fake_interval_data.time_playing_audio =
-      base::TimeDelta::FromSeconds(++fake_value);
+      base::Seconds(++fake_value);
+  fake_interval_data.time_capturing_video = base::Seconds(++fake_value);
+  fake_interval_data.time_playing_audio = base::Seconds(++fake_value);
   fake_interval_data.longest_visible_origin_duration =
-      base::TimeDelta::FromSeconds(++fake_value);
+      base::Seconds(++fake_value);
   fake_interval_data.sleep_events = 0;
 
   task_environment_.FastForwardBy(kExpectedMetricsCollectionInterval);
@@ -546,12 +543,11 @@
   interval_data.max_tab_count = 1;
   interval_data.max_visible_window_count = 0;
   // Values below should be ignored.
-  interval_data.time_capturing_video = base::TimeDelta::FromSeconds(1);
+  interval_data.time_capturing_video = base::Seconds(1);
   interval_data.time_playing_video_full_screen_single_monitor =
-      base::TimeDelta::FromSeconds(1);
-  interval_data.time_playing_video_in_visible_tab =
-      base::TimeDelta::FromSeconds(1);
-  interval_data.time_playing_audio = base::TimeDelta::FromSeconds(1);
+      base::Seconds(1);
+  interval_data.time_playing_video_in_visible_tab = base::Seconds(1);
+  interval_data.time_playing_audio = base::Seconds(1);
   interval_data.top_level_navigation_count = 1;
   interval_data.user_interaction_count = 1;
 
@@ -585,13 +581,12 @@
   UsageScenarioDataStore::IntervalData interval_data;
   interval_data.max_tab_count = 1;
   interval_data.max_visible_window_count = 1;
-  interval_data.time_capturing_video = base::TimeDelta::FromSeconds(1);
+  interval_data.time_capturing_video = base::Seconds(1);
   // Values below should be ignored.
   interval_data.time_playing_video_full_screen_single_monitor =
-      base::TimeDelta::FromSeconds(1);
-  interval_data.time_playing_video_in_visible_tab =
-      base::TimeDelta::FromSeconds(1);
-  interval_data.time_playing_audio = base::TimeDelta::FromSeconds(1);
+      base::Seconds(1);
+  interval_data.time_playing_video_in_visible_tab = base::Seconds(1);
+  interval_data.time_playing_audio = base::Seconds(1);
   interval_data.top_level_navigation_count = 1;
   interval_data.user_interaction_count = 1;
 
@@ -627,11 +622,10 @@
   interval_data.max_visible_window_count = 1;
   interval_data.time_capturing_video = base::TimeDelta();
   interval_data.time_playing_video_full_screen_single_monitor =
-      base::TimeDelta::FromSeconds(1);
+      base::Seconds(1);
   // Values below should be ignored.
-  interval_data.time_playing_video_in_visible_tab =
-      base::TimeDelta::FromSeconds(1);
-  interval_data.time_playing_audio = base::TimeDelta::FromSeconds(1);
+  interval_data.time_playing_video_in_visible_tab = base::Seconds(1);
+  interval_data.time_playing_audio = base::Seconds(1);
   interval_data.top_level_navigation_count = 1;
   interval_data.user_interaction_count = 1;
 
@@ -670,10 +664,9 @@
   interval_data.time_playing_video_full_screen_single_monitor =
       base::TimeDelta();
   interval_data.top_level_navigation_count = 0;
-  interval_data.time_playing_video_in_visible_tab =
-      base::TimeDelta::FromSeconds(1);
+  interval_data.time_playing_video_in_visible_tab = base::Seconds(1);
   // Values below should be ignored.
-  interval_data.time_playing_audio = base::TimeDelta::FromSeconds(1);
+  interval_data.time_playing_audio = base::Seconds(1);
   interval_data.user_interaction_count = 1;
 
   PowerMetricsReporterAccess::ReportHistograms(
@@ -712,10 +705,9 @@
   interval_data.time_playing_video_full_screen_single_monitor =
       base::TimeDelta();
   interval_data.top_level_navigation_count = 1;
-  interval_data.time_playing_video_in_visible_tab =
-      base::TimeDelta::FromSeconds(1);
+  interval_data.time_playing_video_in_visible_tab = base::Seconds(1);
   // Values below should be ignored.
-  interval_data.time_playing_audio = base::TimeDelta::FromSeconds(1);
+  interval_data.time_playing_audio = base::Seconds(1);
   interval_data.user_interaction_count = 1;
 
   PowerMetricsReporterAccess::ReportHistograms(
@@ -753,7 +745,7 @@
   interval_data.time_playing_video_full_screen_single_monitor =
       base::TimeDelta();
   interval_data.time_playing_video_in_visible_tab = base::TimeDelta();
-  interval_data.time_playing_audio = base::TimeDelta::FromSeconds(1);
+  interval_data.time_playing_audio = base::Seconds(1);
   // Values below should be ignored.
   interval_data.user_interaction_count = 1;
   interval_data.top_level_navigation_count = 1;
@@ -904,7 +896,7 @@
 
   PowerMetricsReporterAccess::ReportBatteryHistograms(
       (kExpectedMetricsCollectionInterval * kTolerableNegativeDrift) -
-          base::TimeDelta::FromSeconds(1),
+          base::Seconds(1),
       PowerMetricsReporterAccess::BatteryDischargeMode::kDischarging, 2500,
       PowerMetricsReporter::GetSuffixesForTesting(interval_data));
 
@@ -919,7 +911,7 @@
 
   PowerMetricsReporterAccess::ReportBatteryHistograms(
       (kExpectedMetricsCollectionInterval * kTolerableNegativeDrift) +
-          base::TimeDelta::FromSeconds(1),
+          base::Seconds(1),
       PowerMetricsReporterAccess::BatteryDischargeMode::kDischarging, 2500,
       PowerMetricsReporter::GetSuffixesForTesting(interval_data));
 
@@ -935,7 +927,7 @@
 
   PowerMetricsReporterAccess::ReportBatteryHistograms(
       (kExpectedMetricsCollectionInterval * kTolerablePositiveDrift) +
-          base::TimeDelta::FromSeconds(1),
+          base::Seconds(1),
       PowerMetricsReporterAccess::BatteryDischargeMode::kDischarging, 2500,
       PowerMetricsReporter::GetSuffixesForTesting(interval_data));
 
@@ -950,7 +942,7 @@
 
   PowerMetricsReporterAccess::ReportBatteryHistograms(
       (kExpectedMetricsCollectionInterval * kTolerablePositiveDrift) -
-          base::TimeDelta::FromSeconds(1),
+          base::Seconds(1),
       PowerMetricsReporterAccess::BatteryDischargeMode::kDischarging, 2500,
       PowerMetricsReporter::GetSuffixesForTesting(interval_data));
 
diff --git a/chrome/browser/metrics/process_memory_metrics_emitter_unittest.cc b/chrome/browser/metrics/process_memory_metrics_emitter_unittest.cc
index 412dfdf..fc83ab5 100644
--- a/chrome/browser/metrics/process_memory_metrics_emitter_unittest.cc
+++ b/chrome/browser/metrics/process_memory_metrics_emitter_unittest.cc
@@ -89,9 +89,9 @@
       base::ProcessId pid) override {
     switch (pid) {
       case 401:
-        return base::TimeDelta::FromSeconds(21);
+        return base::Seconds(21);
       default:
-        return base::TimeDelta::FromSeconds(42);
+        return base::Seconds(42);
     }
   }
 
@@ -596,9 +596,8 @@
     page_info.tab_id = 201;
     page_info.hosts_main_frame = true;
     page_info.is_visible = true;
-    page_info.time_since_last_visibility_change =
-        base::TimeDelta::FromSeconds(15);
-    page_info.time_since_last_navigation = base::TimeDelta::FromSeconds(20);
+    page_info.time_since_last_visibility_change = base::Seconds(15);
+    page_info.time_since_last_navigation = base::Seconds(20);
     process_info.page_infos.push_back(page_info);
     process_infos.push_back(std::move(process_info));
   }
@@ -617,16 +616,14 @@
     page_info1.ukm_source_id = first_source_id;
     page_info1.tab_id = 2021;
     page_info1.hosts_main_frame = true;
-    page_info1.time_since_last_visibility_change =
-        base::TimeDelta::FromSeconds(11);
-    page_info1.time_since_last_navigation = base::TimeDelta::FromSeconds(21);
+    page_info1.time_since_last_visibility_change = base::Seconds(11);
+    page_info1.time_since_last_navigation = base::Seconds(21);
     PageInfo page_info2;
     page_info2.ukm_source_id = second_source_id;
     page_info2.tab_id = 2022;
     page_info2.hosts_main_frame = true;
-    page_info2.time_since_last_visibility_change =
-        base::TimeDelta::FromSeconds(12);
-    page_info2.time_since_last_navigation = base::TimeDelta::FromSeconds(22);
+    page_info2.time_since_last_visibility_change = base::Seconds(12);
+    page_info2.time_since_last_navigation = base::Seconds(22);
     process_info.page_infos.push_back(std::move(page_info1));
     process_info.page_infos.push_back(std::move(page_info2));
 
diff --git a/chrome/browser/metrics/structured/ash_structured_metrics_recorder_browsertest.cc b/chrome/browser/metrics/structured/ash_structured_metrics_recorder_browsertest.cc
index 2ec6f2ef..85c57db7 100644
--- a/chrome/browser/metrics/structured/ash_structured_metrics_recorder_browsertest.cc
+++ b/chrome/browser/metrics/structured/ash_structured_metrics_recorder_browsertest.cc
@@ -76,8 +76,8 @@
   }
 
  private:
-  base::test::ScopedRunLoopTimeout shortened_timeout_{
-      FROM_HERE, base::TimeDelta::FromSeconds(3)};
+  base::test::ScopedRunLoopTimeout shortened_timeout_{FROM_HERE,
+                                                      base::Seconds(3)};
 
   EventDelegate event_delegate_;
 
diff --git a/chrome/browser/metrics/tab_stats/tab_stats_tracker.cc b/chrome/browser/metrics/tab_stats/tab_stats_tracker.cc
index d231bdf..93e669d 100644
--- a/chrome/browser/metrics/tab_stats/tab_stats_tracker.cc
+++ b/chrome/browser/metrics/tab_stats/tab_stats_tracker.cc
@@ -50,8 +50,7 @@
 
 // The interval at which the DailyEvent::CheckInterval function should be
 // called.
-constexpr base::TimeDelta kDailyEventIntervalTimeDelta =
-    base::TimeDelta::FromMinutes(30);
+constexpr base::TimeDelta kDailyEventIntervalTimeDelta = base::Minutes(30);
 
 // The intervals at which we report the number of unused tabs. This is used for
 // all the tab usage histograms listed below.
@@ -59,18 +58,16 @@
 // The 'Tabs.TabUsageIntervalLength' histogram suffixes entry in histograms.xml
 // should be kept in sync with these values.
 constexpr base::TimeDelta kTabUsageReportingIntervals[] = {
-    base::TimeDelta::FromSeconds(30), base::TimeDelta::FromMinutes(1),
-    base::TimeDelta::FromMinutes(10), base::TimeDelta::FromHours(1),
-    base::TimeDelta::FromHours(5),    base::TimeDelta::FromHours(12)};
+    base::Seconds(30), base::Minutes(1), base::Minutes(10),
+    base::Hours(1),    base::Hours(5),   base::Hours(12)};
 
 #if defined(OS_WIN)
 const base::TimeDelta kNativeWindowOcclusionCalculationInterval =
-    base::TimeDelta::FromMinutes(10);
+    base::Minutes(10);
 #endif
 
 // The interval at which the heartbeat tab metrics should be reported.
-const base::TimeDelta kTabsHeartbeatReportingInterval =
-    base::TimeDelta::FromMinutes(5);
+const base::TimeDelta kTabsHeartbeatReportingInterval = base::Minutes(5);
 
 // The global TabStatsTracker instance.
 TabStatsTracker* g_tab_stats_tracker_instance = nullptr;
diff --git a/chrome/browser/metrics/tab_stats/tab_stats_tracker_browsertest.cc b/chrome/browser/metrics/tab_stats/tab_stats_tracker_browsertest.cc
index c728156..42148fe 100644
--- a/chrome/browser/metrics/tab_stats/tab_stats_tracker_browsertest.cc
+++ b/chrome/browser/metrics/tab_stats/tab_stats_tracker_browsertest.cc
@@ -232,7 +232,7 @@
   // creation of the main browser.
   ASSERT_TRUE(tab_stats_tracker_ != nullptr);
 
-  constexpr base::TimeDelta kValidLongInterval = base::TimeDelta::FromHours(12);
+  constexpr base::TimeDelta kValidLongInterval = base::Hours(12);
 
   TabStatsDataStore* data_store = tab_stats_tracker_->tab_stats_data_store();
   TabStatsDataStore::TabsStateDuringIntervalMap* interval_map =
diff --git a/chrome/browser/metrics/tab_stats/tab_stats_tracker_unittest.cc b/chrome/browser/metrics/tab_stats/tab_stats_tracker_unittest.cc
index 9f203f5..6bfbeb3 100644
--- a/chrome/browser/metrics/tab_stats/tab_stats_tracker_unittest.cc
+++ b/chrome/browser/metrics/tab_stats/tab_stats_tracker_unittest.cc
@@ -123,7 +123,7 @@
             reporting_delegate_for_testing(), tab_stats_data_store()));
 
     // Update the daily event registry to the previous day and trigger it.
-    base::Time last_time = base::Time::Now() - base::TimeDelta::FromHours(25);
+    base::Time last_time = base::Time::Now() - base::Hours(25);
     pref_service_->SetInt64(prefs::kTabStatsDailySample,
                             last_time.since_origin().InMicroseconds());
     CheckDailyEventInterval();
@@ -408,7 +408,7 @@
 }
 
 TEST_F(TabStatsTrackerTest, TabUsageGetsReported) {
-  constexpr base::TimeDelta kValidLongInterval = base::TimeDelta::FromHours(12);
+  constexpr base::TimeDelta kValidLongInterval = base::Hours(12);
   TabStatsDataStore::TabsStateDuringIntervalMap* interval_map =
       tab_stats_tracker_->data_store()->AddInterval();
 
diff --git a/chrome/browser/metrics/thread_watcher.cc b/chrome/browser/metrics/thread_watcher.cc
index 9b3f854..b03fbf0 100644
--- a/chrome/browser/metrics/thread_watcher.cc
+++ b/chrome/browser/metrics/thread_watcher.cc
@@ -295,8 +295,7 @@
   // On ChromeOS, we log when the response time is long on the UI thread as part
   // of an effort to debug extreme jank reported by some users. This log message
   // can be used to correlate the period of jank with other system logs.
-  if (response_time > base::TimeDelta::FromSeconds(1) &&
-      thread_id_ == BrowserThread::UI) {
+  if (response_time > base::Seconds(1) && thread_id_ == BrowserThread::UI) {
     LOG(WARNING) << "Long response time on the UI thread: " << response_time;
   }
 #endif
@@ -361,18 +360,14 @@
   const std::string response_time_histogram_name =
       "ThreadWatcher.ResponseTime." + thread_name_;
   response_time_histogram_ = base::Histogram::FactoryTimeGet(
-      response_time_histogram_name,
-      base::TimeDelta::FromMilliseconds(1),
-      base::TimeDelta::FromSeconds(100), 50,
-      base::Histogram::kUmaTargetedHistogramFlag);
+      response_time_histogram_name, base::Milliseconds(1), base::Seconds(100),
+      50, base::Histogram::kUmaTargetedHistogramFlag);
 
   const std::string unresponsive_time_histogram_name =
       "ThreadWatcher.Unresponsive." + thread_name_;
   unresponsive_time_histogram_ = base::Histogram::FactoryTimeGet(
-      unresponsive_time_histogram_name,
-      base::TimeDelta::FromMilliseconds(1),
-      base::TimeDelta::FromSeconds(100), 50,
-      base::Histogram::kUmaTargetedHistogramFlag);
+      unresponsive_time_histogram_name, base::Milliseconds(1),
+      base::Seconds(100), 50, base::Histogram::kUmaTargetedHistogramFlag);
 
   const std::string responsive_count_histogram_name =
       "ThreadWatcher.ResponsiveThreads." + thread_name_;
@@ -502,7 +497,7 @@
                    &crash_on_hang_threads);
 
   ThreadWatcherObserver::Start(
-      base::TimeDelta::FromSeconds(kSleepSeconds * unresponsive_threshold));
+      base::Seconds(kSleepSeconds * unresponsive_threshold));
 
   WatchDogThread::PostTask(
       FROM_HERE, base::BindOnce(&ThreadWatcherList::SetStopped, false));
@@ -511,7 +506,7 @@
       FROM_HERE,
       base::BindOnce(&ThreadWatcherList::InitializeAndStartWatching,
                      unresponsive_threshold, crash_on_hang_threads),
-      base::TimeDelta::FromSeconds(g_initialize_delay_seconds));
+      base::Seconds(g_initialize_delay_seconds));
 }
 
 // static
@@ -672,10 +667,8 @@
     return;
   }
 
-  const base::TimeDelta kSleepTime =
-      base::TimeDelta::FromSeconds(kSleepSeconds);
-  const base::TimeDelta kUnresponsiveTime =
-      base::TimeDelta::FromSeconds(kUnresponsiveSeconds);
+  const base::TimeDelta kSleepTime = base::Seconds(kSleepSeconds);
+  const base::TimeDelta kUnresponsiveTime = base::Seconds(kUnresponsiveSeconds);
 
   StartWatching(BrowserThread::UI, "UI", kSleepTime, kUnresponsiveTime,
                 unresponsive_threshold, crash_on_hang_threads);
diff --git a/chrome/browser/metrics/thread_watcher.h b/chrome/browser/metrics/thread_watcher.h
index 91e3403..b54db18a 100644
--- a/chrome/browser/metrics/thread_watcher.h
+++ b/chrome/browser/metrics/thread_watcher.h
@@ -28,8 +28,8 @@
 //   (IO) thread has become sufficiently unresponsive, while other threads are
 //   sufficiently responsive.
 //
-//   base::TimeDelta sleep_time = base::TimeDelta::FromSeconds(5);
-//   base::TimeDelta unresponsive_time = base::TimeDelta::FromSeconds(10);
+//   base::TimeDelta sleep_time = base::Seconds(5);
+//   base::TimeDelta unresponsive_time = base::Seconds(10);
 //   uint32_t unresponsive_threshold = ThreadWatcherList::kUnresponsiveCount;
 //   bool crash_on_hang = false;
 //   ThreadWatcher::StartWatching(
diff --git a/chrome/browser/metrics/thread_watcher_android_unittest.cc b/chrome/browser/metrics/thread_watcher_android_unittest.cc
index 1e1ea08b..dc7d941 100644
--- a/chrome/browser/metrics/thread_watcher_android_unittest.cc
+++ b/chrome/browser/metrics/thread_watcher_android_unittest.cc
@@ -18,11 +18,10 @@
 }
 
 void PostAndWaitForWatchdogThread(base::WaitableEvent* event) {
-  WatchDogThread::PostDelayedTask(FROM_HERE,
-                                  base::BindOnce(&OnThreadWatcherTask, event),
-                                  base::TimeDelta::FromSeconds(0));
+  WatchDogThread::PostDelayedTask(
+      FROM_HERE, base::BindOnce(&OnThreadWatcherTask, event), base::Seconds(0));
 
-  EXPECT_TRUE(event->TimedWait(base::TimeDelta::FromSeconds(1)));
+  EXPECT_TRUE(event->TimedWait(base::Seconds(1)));
 }
 
 void NotifyApplicationStateChange(base::android::ApplicationState state) {
diff --git a/chrome/browser/metrics/thread_watcher_unittest.cc b/chrome/browser/metrics/thread_watcher_unittest.cc
index 598218e5..5307e222 100644
--- a/chrome/browser/metrics/thread_watcher_unittest.cc
+++ b/chrome/browser/metrics/thread_watcher_unittest.cc
@@ -437,7 +437,7 @@
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL);
   watchdog_thread_->FlushForTesting();
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(4));
+  task_environment_.FastForwardBy(base::Seconds(4));
   watchdog_thread_->PostTask(
       FROM_HERE, base::BindLambdaForTesting([&]() {
         ui_watcher_->SetTimeSinceLastCriticalMemoryPressureCrashKey();
@@ -800,8 +800,7 @@
     base::RunLoop run_loop;
     content::GetUIThreadTaskRunner({})->PostDelayedTask(
         FROM_HERE, run_loop.QuitWhenIdleClosure(),
-        base::TimeDelta::FromSeconds(
-            ThreadWatcherList::g_initialize_delay_seconds));
+        base::Seconds(ThreadWatcherList::g_initialize_delay_seconds));
     run_loop.Run();
   }
 
@@ -814,8 +813,7 @@
     base::RunLoop run_loop;
     content::GetUIThreadTaskRunner({})->PostDelayedTask(
         FROM_HERE, run_loop.QuitWhenIdleClosure(),
-        base::TimeDelta::FromSeconds(
-            ThreadWatcherList::g_initialize_delay_seconds + 1));
+        base::Seconds(ThreadWatcherList::g_initialize_delay_seconds + 1));
     run_loop.Run();
   }
 
@@ -828,8 +826,7 @@
     base::RunLoop run_loop;
     content::GetUIThreadTaskRunner({})->PostDelayedTask(
         FROM_HERE, run_loop.QuitWhenIdleClosure(),
-        base::TimeDelta::FromSeconds(
-            ThreadWatcherList::g_initialize_delay_seconds));
+        base::Seconds(ThreadWatcherList::g_initialize_delay_seconds));
     run_loop.Run();
   }
 
diff --git a/chrome/browser/metrics/usage_scenario/tab_usage_scenario_tracker_browsertest.cc b/chrome/browser/metrics/usage_scenario/tab_usage_scenario_tracker_browsertest.cc
index 1bb060f2..6848b88c 100644
--- a/chrome/browser/metrics/usage_scenario/tab_usage_scenario_tracker_browsertest.cc
+++ b/chrome/browser/metrics/usage_scenario/tab_usage_scenario_tracker_browsertest.cc
@@ -39,7 +39,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kInterval = base::TimeDelta::FromMinutes(2);
+constexpr base::TimeDelta kInterval = base::Minutes(2);
 
 void DiscardTab(content::WebContents* contents) {
   resource_coordinator::TabLifecycleUnitSource::GetTabLifecycleUnitExternal(
diff --git a/chrome/browser/metrics/usage_scenario/tab_usage_scenario_tracker_unittest.cc b/chrome/browser/metrics/usage_scenario/tab_usage_scenario_tracker_unittest.cc
index 4e2a0bc..0740bc2 100644
--- a/chrome/browser/metrics/usage_scenario/tab_usage_scenario_tracker_unittest.cc
+++ b/chrome/browser/metrics/usage_scenario/tab_usage_scenario_tracker_unittest.cc
@@ -24,7 +24,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kInterval = base::TimeDelta::FromMinutes(2);
+constexpr base::TimeDelta kInterval = base::Minutes(2);
 
 // Inherit from ChromeRenderViewHostTestHarness for access to test profile.
 class TabUsageScenarioTrackerTest : public ChromeRenderViewHostTestHarness {
diff --git a/chrome/browser/metrics/usage_scenario/usage_scenario_data_store_unittest.cc b/chrome/browser/metrics/usage_scenario/usage_scenario_data_store_unittest.cc
index bd96e38..1505b11 100644
--- a/chrome/browser/metrics/usage_scenario/usage_scenario_data_store_unittest.cc
+++ b/chrome/browser/metrics/usage_scenario/usage_scenario_data_store_unittest.cc
@@ -15,7 +15,7 @@
 #include "url/origin.h"
 
 namespace {
-constexpr base::TimeDelta kShortDelay = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kShortDelay = base::Seconds(1);
 }  // namespace
 
 class UsageScenarioDataStoreTest : public testing::Test {
diff --git a/chrome/browser/navigation_predictor/navigation_predictor_keyed_service.cc b/chrome/browser/navigation_predictor/navigation_predictor_keyed_service.cc
index 764e0f1..3bb5a406 100644
--- a/chrome/browser/navigation_predictor/navigation_predictor_keyed_service.cc
+++ b/chrome/browser/navigation_predictor/navigation_predictor_keyed_service.cc
@@ -195,12 +195,12 @@
   // in foreground for a very short period.
   if (visible_web_contents_.empty() &&
       tick_clock_->NowTicks() - last_web_contents_state_change_time_ >
-          base::TimeDelta::FromSeconds(1)) {
+          base::Seconds(1)) {
     return false;
   }
 
   return tick_clock_->NowTicks() - last_web_contents_state_change_time_ <=
-         base::TimeDelta::FromSeconds(120);
+         base::Seconds(120);
 }
 
 void NavigationPredictorKeyedService::SetTickClockForTesting(
diff --git a/chrome/browser/navigation_predictor/navigation_predictor_preconnect_client.cc b/chrome/browser/navigation_predictor/navigation_predictor_preconnect_client.cc
index 29fff6a..7c9989d 100644
--- a/chrome/browser/navigation_predictor/navigation_predictor_preconnect_client.cc
+++ b/chrome/browser/navigation_predictor/navigation_predictor_preconnect_client.cc
@@ -109,7 +109,7 @@
     }
 
     timer_.Start(
-        FROM_HERE, base::TimeDelta::FromMilliseconds(delay_ms),
+        FROM_HERE, base::Milliseconds(delay_ms),
         base::BindOnce(&NavigationPredictorPreconnectClient::MaybePreconnectNow,
                        base::Unretained(this), /*preconnects_attempted=*/0u));
   }
@@ -211,13 +211,13 @@
 
   // The delay beyond the idle socket timeout that net uses when
   // re-preconnecting. If negative, no retries occur.
-  const base::TimeDelta retry_delay = base::TimeDelta::FromMilliseconds(50);
+  const base::TimeDelta retry_delay = base::Milliseconds(50);
 
   // Set/Reset the timer to fire after the preconnect times out. Add an extra
   // delay to make sure the preconnect has expired if it wasn't used.
   timer_.Start(
       FROM_HERE,
-      base::TimeDelta::FromSeconds(base::GetFieldTrialParamByFeatureAsInt(
+      base::Seconds(base::GetFieldTrialParamByFeatureAsInt(
           net::features::kNetUnusedIdleSocketTimeout,
           "unused_idle_socket_timeout_seconds", 60)) +
           retry_delay,
diff --git a/chrome/browser/navigation_predictor/search_engine_preconnector.cc b/chrome/browser/navigation_predictor/search_engine_preconnector.cc
index eed1a7f..fcf8de24 100644
--- a/chrome/browser/navigation_predictor/search_engine_preconnector.cc
+++ b/chrome/browser/navigation_predictor/search_engine_preconnector.cc
@@ -52,9 +52,8 @@
   timer_.Stop();
   if (with_startup_delay) {
     timer_.Start(FROM_HERE,
-                 base::TimeDelta::FromMilliseconds(
-                     base::GetFieldTrialParamByFeatureAsInt(
-                         features::kPreconnectToSearch, "startup_delay_ms", 0)),
+                 base::Milliseconds(base::GetFieldTrialParamByFeatureAsInt(
+                     features::kPreconnectToSearch, "startup_delay_ms", 0)),
                  base::BindOnce(&SearchEnginePreconnector::PreconnectDSE,
                                 base::Unretained(this)));
     return;
@@ -111,18 +110,17 @@
 
   // The delay beyond the idle socket timeout that net uses when
   // re-preconnecting. If negative, no retries occur.
-  const base::TimeDelta retry_delay = base::TimeDelta::FromMilliseconds(50);
+  const base::TimeDelta retry_delay = base::Milliseconds(50);
 
   // Set/Reset the timer to fire after the preconnect times out. Add an extra
   // delay to make sure the preconnect has expired if it wasn't used.
-  timer_.Start(
-      FROM_HERE,
-      base::TimeDelta::FromSeconds(base::GetFieldTrialParamByFeatureAsInt(
-          net::features::kNetUnusedIdleSocketTimeout,
-          "unused_idle_socket_timeout_seconds", 60)) +
-          retry_delay,
-      base::BindOnce(&SearchEnginePreconnector::PreconnectDSE,
-                     base::Unretained(this)));
+  timer_.Start(FROM_HERE,
+               base::Seconds(base::GetFieldTrialParamByFeatureAsInt(
+                   net::features::kNetUnusedIdleSocketTimeout,
+                   "unused_idle_socket_timeout_seconds", 60)) +
+                   retry_delay,
+               base::BindOnce(&SearchEnginePreconnector::PreconnectDSE,
+                              base::Unretained(this)));
 }
 
 GURL SearchEnginePreconnector::GetDefaultSearchEngineOriginURL() const {
diff --git a/chrome/browser/navigation_predictor/search_engine_preconnector_browsertest.cc b/chrome/browser/navigation_predictor/search_engine_preconnector_browsertest.cc
index c22852b..7ea2826 100644
--- a/chrome/browser/navigation_predictor/search_engine_preconnector_browsertest.cc
+++ b/chrome/browser/navigation_predictor/search_engine_preconnector_browsertest.cc
@@ -204,7 +204,7 @@
   model->SetUserSelectedDefaultSearchProvider(template_url);
 
   // Ensure that we wait long enough to trigger preconnects.
-  WaitForDelay(base::TimeDelta::FromMilliseconds(200));
+  WaitForDelay(base::Milliseconds(200));
 
   TemplateURLData data_fake_search;
   data_fake_search.SetShortName(kShortName);
@@ -300,7 +300,7 @@
   model->SetUserSelectedDefaultSearchProvider(template_url);
 
   // Ensure that we wait long enough to trigger preconnects.
-  WaitForDelay(base::TimeDelta::FromMilliseconds(200));
+  WaitForDelay(base::Milliseconds(200));
 
   TemplateURLData data_fake_search;
   data_fake_search.SetShortName(kShortName);
@@ -314,7 +314,7 @@
   model->SetUserSelectedDefaultSearchProvider(template_url);
 
   tick_clock_.SetNowTicks(base::TimeTicks::Now());
-  tick_clock_.Advance(base::TimeDelta::FromSeconds(10000));
+  tick_clock_.Advance(base::Seconds(10000));
 
   NavigationPredictorKeyedServiceFactory::GetForProfile(
       Profile::FromBrowserContext(browser()->profile()))
diff --git a/chrome/browser/nearby_sharing/bluetooth_advertising_interval_client.cc b/chrome/browser/nearby_sharing/bluetooth_advertising_interval_client.cc
index d564fa33..f77ac0f 100644
--- a/chrome/browser/nearby_sharing/bluetooth_advertising_interval_client.cc
+++ b/chrome/browser/nearby_sharing/bluetooth_advertising_interval_client.cc
@@ -13,14 +13,12 @@
 
 namespace {
 
-constexpr base::TimeDelta kIntervalMin = base::TimeDelta::FromMilliseconds(100);
-constexpr base::TimeDelta kIntervalMax = base::TimeDelta::FromMilliseconds(100);
+constexpr base::TimeDelta kIntervalMin = base::Milliseconds(100);
+constexpr base::TimeDelta kIntervalMax = base::Milliseconds(100);
 
 // A value of 0 will restore the interval to the system default.
-constexpr base::TimeDelta kDefaultIntervalMin =
-    base::TimeDelta::FromMilliseconds(0);
-constexpr base::TimeDelta kDefaultIntervalMax =
-    base::TimeDelta::FromMilliseconds(0);
+constexpr base::TimeDelta kDefaultIntervalMin = base::Milliseconds(0);
+constexpr base::TimeDelta kDefaultIntervalMax = base::Milliseconds(0);
 
 }  // namespace
 
diff --git a/chrome/browser/nearby_sharing/certificates/common.cc b/chrome/browser/nearby_sharing/certificates/common.cc
index d6785583a..4339aa2 100644
--- a/chrome/browser/nearby_sharing/certificates/common.cc
+++ b/chrome/browser/nearby_sharing/certificates/common.cc
@@ -19,7 +19,7 @@
   base::TimeDelta tolerance =
       use_public_certificate_tolerance
           ? kNearbySharePublicCertificateValidityBoundOffsetTolerance
-          : base::TimeDelta::FromSeconds(0);
+          : base::Seconds(0);
 
   return current_time >= not_after + tolerance;
 }
@@ -32,7 +32,7 @@
   base::TimeDelta tolerance =
       use_public_certificate_tolerance
           ? kNearbySharePublicCertificateValidityBoundOffsetTolerance
-          : base::TimeDelta::FromSeconds(0);
+          : base::Seconds(0);
 
   return current_time >= not_before - tolerance &&
          !IsNearbyShareCertificateExpired(current_time, not_after,
diff --git a/chrome/browser/nearby_sharing/certificates/common_unittest.cc b/chrome/browser/nearby_sharing/certificates/common_unittest.cc
index 7093eb2..e447650 100644
--- a/chrome/browser/nearby_sharing/certificates/common_unittest.cc
+++ b/chrome/browser/nearby_sharing/certificates/common_unittest.cc
@@ -26,7 +26,7 @@
   const bool use_public_certificate_tolerance = false;
 
   // Set time before validity period.
-  base::Time now = cert.not_before() - base::TimeDelta::FromMilliseconds(1);
+  base::Time now = cert.not_before() - base::Milliseconds(1);
   EXPECT_FALSE(IsNearbyShareCertificateExpired(
       now, cert.not_after(), use_public_certificate_tolerance));
   EXPECT_FALSE(IsNearbyShareCertificateWithinValidityPeriod(
@@ -58,7 +58,7 @@
       use_public_certificate_tolerance));
 
   // Set time after validity period.
-  now = cert.not_after() + base::TimeDelta::FromMilliseconds(1);
+  now = cert.not_after() + base::Milliseconds(1);
   EXPECT_TRUE(IsNearbyShareCertificateExpired(
       now, cert.not_after(), use_public_certificate_tolerance));
   EXPECT_FALSE(IsNearbyShareCertificateWithinValidityPeriod(
@@ -77,7 +77,7 @@
   // Set time before validity period, outside of tolerance.
   base::Time now = cert.not_before() -
                    kNearbySharePublicCertificateValidityBoundOffsetTolerance -
-                   base::TimeDelta::FromMilliseconds(1);
+                   base::Milliseconds(1);
   EXPECT_FALSE(IsNearbyShareCertificateExpired(
       now, cert.not_after(), use_public_certificate_tolerance));
   EXPECT_FALSE(IsNearbyShareCertificateWithinValidityPeriod(
@@ -147,7 +147,7 @@
   // Set time after validity period, outside of tolerance.
   now = cert.not_after() +
         kNearbySharePublicCertificateValidityBoundOffsetTolerance +
-        base::TimeDelta::FromMilliseconds(1);
+        base::Milliseconds(1);
   EXPECT_TRUE(IsNearbyShareCertificateExpired(
       now, cert.not_after(), use_public_certificate_tolerance));
   EXPECT_FALSE(IsNearbyShareCertificateWithinValidityPeriod(
diff --git a/chrome/browser/nearby_sharing/certificates/constants.cc b/chrome/browser/nearby_sharing/certificates/constants.cc
index 3a61f8ca..f8c8813b5 100644
--- a/chrome/browser/nearby_sharing/certificates/constants.cc
+++ b/chrome/browser/nearby_sharing/certificates/constants.cc
@@ -4,13 +4,12 @@
 
 #include "chrome/browser/nearby_sharing/certificates/constants.h"
 
-const base::TimeDelta kNearbyShareCertificateValidityPeriod =
-    base::TimeDelta::FromDays(3);
+const base::TimeDelta kNearbyShareCertificateValidityPeriod = base::Days(3);
 const base::TimeDelta kNearbyShareMaxPrivateCertificateValidityBoundOffset =
-    base::TimeDelta::FromHours(2);
+    base::Hours(2);
 const base::TimeDelta
     kNearbySharePublicCertificateValidityBoundOffsetTolerance =
-        base::TimeDelta::FromMinutes(30);
+        base::Minutes(30);
 const size_t kNearbyShareNumPrivateCertificates = 3;
 const size_t kNearbyShareNumBytesAuthenticationTokenHash = 6;
 const size_t kNearbyShareNumBytesAesGcmKey = 32;
@@ -27,4 +26,4 @@
 const char kNearbyShareReceiverVerificationPrefix = 0x02;
 const size_t kNearbyShareCertificateStorageMaxNumInitializeAttempts = 3;
 const base::TimeDelta kNearbySharePublicCertificateDownloadPeriod =
-    base::TimeDelta::FromHours(12);
+    base::Hours(12);
diff --git a/chrome/browser/nearby_sharing/certificates/nearby_share_certificate_manager_impl.cc b/chrome/browser/nearby_sharing/certificates/nearby_share_certificate_manager_impl.cc
index d28c8da..f227893 100644
--- a/chrome/browser/nearby_sharing/certificates/nearby_share_certificate_manager_impl.cc
+++ b/chrome/browser/nearby_sharing/certificates/nearby_share_certificate_manager_impl.cc
@@ -36,8 +36,7 @@
 
 const char kDeviceIdPrefix[] = "users/me/devices/";
 
-constexpr base::TimeDelta kListPublicCertificatesTimeout =
-    base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kListPublicCertificatesTimeout = base::Seconds(30);
 
 constexpr std::array<nearby_share::mojom::Visibility, 2> kVisibilities = {
     nearby_share::mojom::Visibility::kAllContacts,
diff --git a/chrome/browser/nearby_sharing/certificates/nearby_share_certificate_manager_impl_unittest.cc b/chrome/browser/nearby_sharing/certificates/nearby_share_certificate_manager_impl_unittest.cc
index 8161470..cf2b9493 100644
--- a/chrome/browser/nearby_sharing/certificates/nearby_share_certificate_manager_impl_unittest.cc
+++ b/chrome/browser/nearby_sharing/certificates/nearby_share_certificate_manager_impl_unittest.cc
@@ -24,12 +24,10 @@
 
 namespace {
 
-const base::Time t0 =
-    base::Time::UnixEpoch() + base::TimeDelta::FromDays(365 * 50);
+const base::Time t0 = base::Time::UnixEpoch() + base::Days(365 * 50);
 
 // Copied from nearby_share_certificate_manager_impl.cc.
-constexpr base::TimeDelta kListPublicCertificatesTimeout =
-    base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kListPublicCertificatesTimeout = base::Seconds(30);
 
 const char kPageTokenPrefix[] = "page_token_";
 const char kSecretIdPrefix[] = "secret_id_";
diff --git a/chrome/browser/nearby_sharing/certificates/nearby_share_certificate_storage_impl.cc b/chrome/browser/nearby_sharing/certificates/nearby_share_certificate_storage_impl.cc
index ddf3ec1..e621ddd 100644
--- a/chrome/browser/nearby_sharing/certificates/nearby_share_certificate_storage_impl.cc
+++ b/chrome/browser/nearby_sharing/certificates/nearby_share_certificate_storage_impl.cc
@@ -152,9 +152,8 @@
 }
 
 base::Time TimestampToTime(nearbyshare::proto::Timestamp timestamp) {
-  return base::Time::UnixEpoch() +
-         base::TimeDelta::FromSeconds(timestamp.seconds()) +
-         base::TimeDelta::FromNanoseconds(timestamp.nanos());
+  return base::Time::UnixEpoch() + base::Seconds(timestamp.seconds()) +
+         base::Nanoseconds(timestamp.nanos());
 }
 
 }  // namespace
diff --git a/chrome/browser/nearby_sharing/certificates/nearby_share_certificate_storage_impl_unittest.cc b/chrome/browser/nearby_sharing/certificates/nearby_share_certificate_storage_impl_unittest.cc
index d3a0f4f1..6b6045f 100644
--- a/chrome/browser/nearby_sharing/certificates/nearby_share_certificate_storage_impl_unittest.cc
+++ b/chrome/browser/nearby_sharing/certificates/nearby_share_certificate_storage_impl_unittest.cc
@@ -119,9 +119,8 @@
 }
 
 base::Time TimestampToTime(nearbyshare::proto::Timestamp timestamp) {
-  return base::Time::UnixEpoch() +
-         base::TimeDelta::FromSeconds(timestamp.seconds()) +
-         base::TimeDelta::FromNanoseconds(timestamp.nanos());
+  return base::Time::UnixEpoch() + base::Seconds(timestamp.seconds()) +
+         base::Nanoseconds(timestamp.nanos());
 }
 
 }  // namespace
diff --git a/chrome/browser/nearby_sharing/certificates/nearby_share_private_certificate.cc b/chrome/browser/nearby_sharing/certificates/nearby_share_private_certificate.cc
index d87bf57d..9e3cf2d8d 100644
--- a/chrome/browser/nearby_sharing/certificates/nearby_share_private_certificate.cc
+++ b/chrome/browser/nearby_sharing/certificates/nearby_share_private_certificate.cc
@@ -40,7 +40,7 @@
 // Generates a random validity bound offset in the interval
 // [0, kNearbyShareMaxPrivateCertificateValidityBoundOffset).
 base::TimeDelta GenerateRandomOffset() {
-  return base::TimeDelta::FromMicroseconds(base::RandGenerator(
+  return base::Microseconds(base::RandGenerator(
       kNearbyShareMaxPrivateCertificateValidityBoundOffset.InMicroseconds()));
 }
 
diff --git a/chrome/browser/nearby_sharing/certificates/test_util.cc b/chrome/browser/nearby_sharing/certificates/test_util.cc
index c99e370..3dd8087 100644
--- a/chrome/browser/nearby_sharing/certificates/test_util.cc
+++ b/chrome/browser/nearby_sharing/certificates/test_util.cc
@@ -188,7 +188,7 @@
 
 base::TimeDelta GetNearbyShareTestValidityOffset() {
   static const base::TimeDelta offset =
-      base::TimeDelta::FromMilliseconds(kTestValidityOffsetMillis);
+      base::Milliseconds(kTestValidityOffsetMillis);
   return offset;
 }
 
diff --git a/chrome/browser/nearby_sharing/constants.h b/chrome/browser/nearby_sharing/constants.h
index 94a8ea39..2a7a9e6 100644
--- a/chrome/browser/nearby_sharing/constants.h
+++ b/chrome/browser/nearby_sharing/constants.h
@@ -8,42 +8,35 @@
 #include "base/time/time.h"
 
 // Timeout for reading a response frame from remote device.
-constexpr base::TimeDelta kReadResponseFrameTimeout =
-    base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kReadResponseFrameTimeout = base::Seconds(60);
 
 // Timeout for initiating a connection to a remote device.
-constexpr base::TimeDelta kInitiateNearbyConnectionTimeout =
-    base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kInitiateNearbyConnectionTimeout = base::Seconds(60);
 
 // The delay before the sender will disconnect from the receiver after sending a
 // file. Note that the receiver is expected to immediately disconnect, so this
 // delay is a worst-effort disconnection. Disconnecting too early may interrupt
 // in flight packets, especially over WiFi LAN.
-constexpr base::TimeDelta kOutgoingDisconnectionDelay =
-    base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kOutgoingDisconnectionDelay = base::Seconds(60);
 
 // The delay before the receiver will disconnect from the sender after rejecting
 // an incoming file. The sender is expected to disconnect immediately after
 // reading the rejection frame.
-constexpr base::TimeDelta kIncomingRejectionDelay =
-    base::TimeDelta::FromSeconds(2);
+constexpr base::TimeDelta kIncomingRejectionDelay = base::Seconds(2);
 
 // The delay before the initiator of the cancellation will disconnect from the
 // other device. The device that did not initiate the cancellation is expected
 // to disconnect immediately after reading the cancellation frame.
-constexpr base::TimeDelta kInitiatorCancelDelay =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kInitiatorCancelDelay = base::Seconds(5);
 
 // Timeout for reading a frame from remote device.
-constexpr base::TimeDelta kReadFramesTimeout = base::TimeDelta::FromSeconds(15);
+constexpr base::TimeDelta kReadFramesTimeout = base::Seconds(15);
 
 // Time to delay running the task to invalidate send and receive surfaces.
-constexpr base::TimeDelta kInvalidateDelay =
-    base::TimeDelta::FromMilliseconds(500);
+constexpr base::TimeDelta kInvalidateDelay = base::Milliseconds(500);
 
 // Time between successive progress updates.
-constexpr base::TimeDelta kMinProgressUpdateFrequency =
-    base::TimeDelta::FromMilliseconds(100);
+constexpr base::TimeDelta kMinProgressUpdateFrequency = base::Milliseconds(100);
 
 // TODO(crbug.com/1129069): Set this to true when WiFi LAN is supported to
 // enable logic that checks for an internet connection for managing surfaces and
diff --git a/chrome/browser/nearby_sharing/contacts/nearby_share_contact_downloader_impl_unittest.cc b/chrome/browser/nearby_sharing/contacts/nearby_share_contact_downloader_impl_unittest.cc
index 455f918..2ea37dd 100644
--- a/chrome/browser/nearby_sharing/contacts/nearby_share_contact_downloader_impl_unittest.cc
+++ b/chrome/browser/nearby_sharing/contacts/nearby_share_contact_downloader_impl_unittest.cc
@@ -31,7 +31,7 @@
 const char kTestContactRecordId5[] = "contact_id_5";
 const char kTestPageToken[] = "token";
 
-constexpr base::TimeDelta kTestTimeout = base::TimeDelta::FromMinutes(123);
+constexpr base::TimeDelta kTestTimeout = base::Minutes(123);
 
 const std::vector<nearbyshare::proto::ContactRecord>& TestContactRecordList() {
   static const base::NoDestructor<
diff --git a/chrome/browser/nearby_sharing/contacts/nearby_share_contact_manager_impl.cc b/chrome/browser/nearby_sharing/contacts/nearby_share_contact_manager_impl.cc
index 84ddc3c..177c3f8 100644
--- a/chrome/browser/nearby_sharing/contacts/nearby_share_contact_manager_impl.cc
+++ b/chrome/browser/nearby_sharing/contacts/nearby_share_contact_manager_impl.cc
@@ -29,11 +29,9 @@
 
 namespace {
 
-constexpr base::TimeDelta kContactUploadPeriod = base::TimeDelta::FromHours(24);
-constexpr base::TimeDelta kContactDownloadPeriod =
-    base::TimeDelta::FromHours(12);
-constexpr base::TimeDelta kContactDownloadRpcTimeout =
-    base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kContactUploadPeriod = base::Hours(24);
+constexpr base::TimeDelta kContactDownloadPeriod = base::Hours(12);
+constexpr base::TimeDelta kContactDownloadRpcTimeout = base::Seconds(60);
 
 // Removes contact IDs from the allowlist if they are not in |contacts|.
 std::set<std::string> RemoveNonexistentContactsFromAllowlist(
diff --git a/chrome/browser/nearby_sharing/contacts/nearby_share_contact_manager_impl_unittest.cc b/chrome/browser/nearby_sharing/contacts/nearby_share_contact_manager_impl_unittest.cc
index 730d3b3..b6e2c40 100644
--- a/chrome/browser/nearby_sharing/contacts/nearby_share_contact_manager_impl_unittest.cc
+++ b/chrome/browser/nearby_sharing/contacts/nearby_share_contact_manager_impl_unittest.cc
@@ -44,11 +44,9 @@
 const char* kTestPersonNames[] = {"BBB BBB", "CCC CCC", "AAA AAA"};
 
 // From nearby_share_contact_manager_impl.cc.
-constexpr base::TimeDelta kContactUploadPeriod = base::TimeDelta::FromHours(24);
-constexpr base::TimeDelta kContactDownloadPeriod =
-    base::TimeDelta::FromHours(12);
-constexpr base::TimeDelta kContactDownloadRpcTimeout =
-    base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kContactUploadPeriod = base::Hours(24);
+constexpr base::TimeDelta kContactDownloadPeriod = base::Hours(12);
+constexpr base::TimeDelta kContactDownloadRpcTimeout = base::Seconds(60);
 
 std::string GetTestContactId(size_t index) {
   return kTestContactIdPrefix + base::NumberToString(index);
diff --git a/chrome/browser/nearby_sharing/fast_initiation/fast_initiation_scanner.cc b/chrome/browser/nearby_sharing/fast_initiation/fast_initiation_scanner.cc
index a38c0a9..3721625 100644
--- a/chrome/browser/nearby_sharing/fast_initiation/fast_initiation_scanner.cc
+++ b/chrome/browser/nearby_sharing/fast_initiation/fast_initiation_scanner.cc
@@ -18,12 +18,12 @@
 // The length of time that a device must be in range before it is reported via a
 // "device found" event.
 constexpr base::TimeDelta kBackgroundScanningDeviceFoundTimeout =
-    base::TimeDelta::FromSeconds(1);
+    base::Seconds(1);
 
 // The length of time that a device must be out of range before this is reported
 // via a "device lost" event.
 constexpr base::TimeDelta kBackgroundScanningDeviceLostTimeout =
-    base::TimeDelta::FromSeconds(7);
+    base::Seconds(7);
 
 }  // namespace
 
diff --git a/chrome/browser/nearby_sharing/fast_initiation/fast_initiation_scanner_feature_usage_metrics_unittest.cc b/chrome/browser/nearby_sharing/fast_initiation/fast_initiation_scanner_feature_usage_metrics_unittest.cc
index 7e70e58c..549610e 100644
--- a/chrome/browser/nearby_sharing/fast_initiation/fast_initiation_scanner_feature_usage_metrics_unittest.cc
+++ b/chrome/browser/nearby_sharing/fast_initiation/fast_initiation_scanner_feature_usage_metrics_unittest.cc
@@ -70,7 +70,7 @@
   void ExpectBucketCounts(bool is_eligible, bool is_enabled) {
     // Allow time for the histogram to be logged.
     base::HistogramTester histograms;
-    task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+    task_environment_.FastForwardBy(base::Minutes(1));
 
     histograms.ExpectBucketCount(
         kHistogramName, feature_usage::FeatureUsageMetrics::Event::kEligible,
diff --git a/chrome/browser/nearby_sharing/incoming_frames_reader_unittest.cc b/chrome/browser/nearby_sharing/incoming_frames_reader_unittest.cc
index a7c0ea8..d871e9f1 100644
--- a/chrome/browser/nearby_sharing/incoming_frames_reader_unittest.cc
+++ b/chrome/browser/nearby_sharing/incoming_frames_reader_unittest.cc
@@ -19,7 +19,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kTimeout = base::TimeDelta::FromMilliseconds(1000);
+constexpr base::TimeDelta kTimeout = base::Milliseconds(1000);
 
 std::vector<uint8_t> GetIntroductionFrame() {
   sharing::nearby::Frame frame = sharing::nearby::Frame();
diff --git a/chrome/browser/nearby_sharing/instantmessaging/receive_messages_express.cc b/chrome/browser/nearby_sharing/instantmessaging/receive_messages_express.cc
index e233dd3..88d593d 100644
--- a/chrome/browser/nearby_sharing/instantmessaging/receive_messages_express.cc
+++ b/chrome/browser/nearby_sharing/instantmessaging/receive_messages_express.cc
@@ -25,8 +25,7 @@
 
 namespace {
 
-const base::TimeDelta kFastPathReadyTimeout =
-    base::TimeDelta::FromMilliseconds(2500);
+const base::TimeDelta kFastPathReadyTimeout = base::Milliseconds(2500);
 
 // Timeout for the receive messages stream, from when the stream first opens.
 // This timeout applies to the Tachyon signaling process, so once we establish
@@ -34,7 +33,7 @@
 // are other timeouts in the WebRTC medium that will cancel the signaling
 // process sooner than 60s, so this is just a failsafe to make sure we clean up
 // the ReceiveMessagesExpress if something goes wrong.
-const base::TimeDelta kStreamTimeout = base::TimeDelta::FromSeconds(60);
+const base::TimeDelta kStreamTimeout = base::Seconds(60);
 
 // TODO(crbug.com/1123164) - Add nearby sharing policy when available.
 const net::NetworkTrafficAnnotationTag kTrafficAnnotation =
diff --git a/chrome/browser/nearby_sharing/instantmessaging/send_message_express.cc b/chrome/browser/nearby_sharing/instantmessaging/send_message_express.cc
index ce595d90..1a098ab9 100644
--- a/chrome/browser/nearby_sharing/instantmessaging/send_message_express.cc
+++ b/chrome/browser/nearby_sharing/instantmessaging/send_message_express.cc
@@ -26,7 +26,7 @@
 constexpr int kMaxSendResponseSize = 256;
 
 // Timeout for network calls to instantmessaging servers.
-const base::TimeDelta kNetworkTimeout = base::TimeDelta::FromMilliseconds(2500);
+const base::TimeDelta kNetworkTimeout = base::Milliseconds(2500);
 
 // TODO(crbug.com/1123164) - Add nearby sharing policy when available.
 const net::NetworkTrafficAnnotationTag kTrafficAnnotation =
diff --git a/chrome/browser/nearby_sharing/local_device_data/nearby_share_device_data_updater_impl_unittest.cc b/chrome/browser/nearby_sharing/local_device_data/nearby_share_device_data_updater_impl_unittest.cc
index 349e0fc5..64146fc 100644
--- a/chrome/browser/nearby_sharing/local_device_data/nearby_share_device_data_updater_impl_unittest.cc
+++ b/chrome/browser/nearby_sharing/local_device_data/nearby_share_device_data_updater_impl_unittest.cc
@@ -28,7 +28,7 @@
 const char kTestCertificateId1[] = "cert_id_1";
 const char kTestCertificateId2[] = "cert_id_2";
 const char kTestPersonName[] = "person_name";
-constexpr base::TimeDelta kTestTimeout = base::TimeDelta::FromMinutes(123);
+constexpr base::TimeDelta kTestTimeout = base::Minutes(123);
 
 const std::vector<nearbyshare::proto::Contact>& TestContactList() {
   static const base::NoDestructor<std::vector<nearbyshare::proto::Contact>>
diff --git a/chrome/browser/nearby_sharing/local_device_data/nearby_share_local_device_data_manager_impl.cc b/chrome/browser/nearby_sharing/local_device_data/nearby_share_local_device_data_manager_impl.cc
index b3a9107d..8c59baf 100644
--- a/chrome/browser/nearby_sharing/local_device_data/nearby_share_local_device_data_manager_impl.cc
+++ b/chrome/browser/nearby_sharing/local_device_data/nearby_share_local_device_data_manager_impl.cc
@@ -39,10 +39,8 @@
     'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',
     'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
 
-constexpr base::TimeDelta kUpdateDeviceDataTimeout =
-    base::TimeDelta::FromSeconds(30);
-constexpr base::TimeDelta kDeviceDataDownloadPeriod =
-    base::TimeDelta::FromHours(12);
+constexpr base::TimeDelta kUpdateDeviceDataTimeout = base::Seconds(30);
+constexpr base::TimeDelta kDeviceDataDownloadPeriod = base::Hours(12);
 
 // Returns a truncated version of |name| that is |overflow_length| characters
 // too long. For example, name="Reallylongname" with overflow_length=5 will
diff --git a/chrome/browser/nearby_sharing/local_device_data/nearby_share_local_device_data_manager_impl_unittest.cc b/chrome/browser/nearby_sharing/local_device_data/nearby_share_local_device_data_manager_impl_unittest.cc
index 8fe7483c..f4df849 100644
--- a/chrome/browser/nearby_sharing/local_device_data/nearby_share_local_device_data_manager_impl_unittest.cc
+++ b/chrome/browser/nearby_sharing/local_device_data/nearby_share_local_device_data_manager_impl_unittest.cc
@@ -233,8 +233,7 @@
  private:
   void VerifyInitialization() {
     // Verify updater inputs.
-    EXPECT_LT(base::TimeDelta::FromSeconds(1),
-              updater_factory_.latest_timeout());
+    EXPECT_LT(base::Seconds(1), updater_factory_.latest_timeout());
     EXPECT_EQ(&http_client_factory_, updater_factory_.latest_client_factory());
     ASSERT_EQ(num_manager_creations_, updater_factory_.instances().size());
     EXPECT_EQ(manager_->GetId(),
@@ -246,8 +245,7 @@
             scheduler_factory_.pref_name_to_periodic_instance().at(
                 prefs::kNearbySharingSchedulerDownloadDeviceDataPrefName);
     EXPECT_TRUE(device_data_scheduler_instance.fake_scheduler);
-    EXPECT_EQ(base::TimeDelta::FromHours(12),
-              device_data_scheduler_instance.request_period);
+    EXPECT_EQ(base::Hours(12), device_data_scheduler_instance.request_period);
     EXPECT_TRUE(device_data_scheduler_instance.retry_failures);
     EXPECT_TRUE(device_data_scheduler_instance.require_connectivity);
     EXPECT_EQ(&pref_service_, device_data_scheduler_instance.pref_service);
diff --git a/chrome/browser/nearby_sharing/nearby_notification_manager.h b/chrome/browser/nearby_sharing/nearby_notification_manager.h
index 8f699c0..0eb6b34 100644
--- a/chrome/browser/nearby_sharing/nearby_notification_manager.h
+++ b/chrome/browser/nearby_sharing/nearby_notification_manager.h
@@ -30,7 +30,7 @@
                                   public NearbySharingService::Observer {
  public:
   static constexpr base::TimeDelta kNearbyDeviceTryingToShareDismissedTimeout =
-      base::TimeDelta::FromMinutes(15);
+      base::Minutes(15);
 
   enum class SuccessNotificationAction {
     kNone,
diff --git a/chrome/browser/nearby_sharing/nearby_share_delegate_impl.cc b/chrome/browser/nearby_sharing/nearby_share_delegate_impl.cc
index 9e595f6..aef0c675 100644
--- a/chrome/browser/nearby_sharing/nearby_share_delegate_impl.cc
+++ b/chrome/browser/nearby_sharing/nearby_share_delegate_impl.cc
@@ -20,7 +20,7 @@
 const char kStartOnboardingQueryParam[] = "onboarding";
 const char kStartReceivingQueryParam[] = "receive";
 
-constexpr base::TimeDelta kShutoffTimeout = base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kShutoffTimeout = base::Minutes(5);
 
 std::string GetTimestampString() {
   return base::NumberToString(
diff --git a/chrome/browser/nearby_sharing/nearby_share_delegate_impl_unittest.cc b/chrome/browser/nearby_sharing/nearby_share_delegate_impl_unittest.cc
index 31893c3..31c1b004 100644
--- a/chrome/browser/nearby_sharing/nearby_share_delegate_impl_unittest.cc
+++ b/chrome/browser/nearby_sharing/nearby_share_delegate_impl_unittest.cc
@@ -119,7 +119,7 @@
   EXPECT_CALL(controller_, HighVisibilityEnabledChanged(false));
 
   // DisableHighVisibility will be called automatically after the timer fires.
-  FastForward(base::TimeDelta::FromMinutes(10));
+  FastForward(base::Minutes(10));
   SetHighVisibilityOn(false);
 }
 
diff --git a/chrome/browser/nearby_sharing/nearby_sharing_service_impl.cc b/chrome/browser/nearby_sharing/nearby_sharing_service_impl.cc
index b856aded..a85be57 100644
--- a/chrome/browser/nearby_sharing/nearby_sharing_service_impl.cc
+++ b/chrome/browser/nearby_sharing/nearby_sharing_service_impl.cc
@@ -72,16 +72,14 @@
     chromeos::nearby::NearbyProcessManager::NearbyProcessShutdownReason;
 
 constexpr base::TimeDelta kBackgroundAdvertisementRotationDelayMin =
-    base::TimeDelta::FromMinutes(12);
+    base::Minutes(12);
 // 870 seconds represents 14:30 minutes
 constexpr base::TimeDelta kBackgroundAdvertisementRotationDelayMax =
-    base::TimeDelta::FromSeconds(870);
+    base::Seconds(870);
 constexpr base::TimeDelta kInvalidateSurfaceStateDelayAfterTransferDone =
-    base::TimeDelta::FromMilliseconds(3000);
-constexpr base::TimeDelta kProcessShutdownPendingTimerDelay =
-    base::TimeDelta::FromSeconds(15);
-constexpr base::TimeDelta kProcessNetworkChangeTimerDelay =
-    base::TimeDelta::FromSeconds(1);
+    base::Milliseconds(3000);
+constexpr base::TimeDelta kProcessShutdownPendingTimerDelay = base::Seconds(15);
+constexpr base::TimeDelta kProcessNetworkChangeTimerDelay = base::Seconds(1);
 
 // The maximum number of certificate downloads that can be performed during a
 // discovery session.
@@ -90,7 +88,7 @@
 // download is only attempted if there are discovered, contact-based
 // advertisements that cannot decrypt any currently stored public certificates.
 constexpr base::TimeDelta kCertificateDownloadDuringDiscoveryPeriod =
-    base::TimeDelta::FromSeconds(10);
+    base::Seconds(10);
 
 // Used to hash a token into a 4 digit string.
 constexpr int kHashModulo = 9973;
@@ -99,7 +97,7 @@
 // Length of the window during which we count the amount of times the nearby
 // process stops unexpectedly.
 constexpr base::TimeDelta kClearNearbyProcessUnexpectedShutdownCountDelay =
-    base::TimeDelta::FromMinutes(1);
+    base::Minutes(1);
 
 bool IsBackgroundScanningFeatureEnabled() {
   return base::FeatureList::IsEnabled(
@@ -2265,8 +2263,7 @@
           kBackgroundAdvertisementRotationDelayMin.InMilliseconds());
   rotate_background_advertisement_timer_.Start(
       FROM_HERE,
-      base::TimeDelta::FromMilliseconds(
-          base::checked_cast<uint64_t>(delayMilliseconds)),
+      base::Milliseconds(base::checked_cast<uint64_t>(delayMilliseconds)),
       base::BindOnce(
           &NearbySharingServiceImpl::OnRotateBackgroundAdvertisementTimerFired,
           weak_ptr_factory_.GetWeakPtr()));
diff --git a/chrome/browser/nearby_sharing/nearby_sharing_service_impl_unittest.cc b/chrome/browser/nearby_sharing/nearby_sharing_service_impl_unittest.cc
index a6bab96..b71b1e7 100644
--- a/chrome/browser/nearby_sharing/nearby_sharing_service_impl_unittest.cc
+++ b/chrome/browser/nearby_sharing/nearby_sharing_service_impl_unittest.cc
@@ -290,7 +290,7 @@
 
 namespace NearbySharingServiceUnitTests {
 
-constexpr base::TimeDelta kDelta = base::TimeDelta::FromMilliseconds(100);
+constexpr base::TimeDelta kDelta = base::Milliseconds(100);
 
 const char kProfileName[] = "profile_name";
 const char kServiceId[] = "NearbySharing";
@@ -334,7 +334,7 @@
 
 constexpr size_t kMaxCertificateDownloadsDuringDiscovery = 3u;
 constexpr base::TimeDelta kCertificateDownloadDuringDiscoveryPeriod =
-    base::TimeDelta::FromSeconds(10);
+    base::Seconds(10);
 
 bool FileExists(const base::FilePath& file_path) {
   base::ScopedAllowBlockingForTesting allow_blocking;
@@ -4208,7 +4208,7 @@
       fake_nearby_connections_manager_->advertising_endpoint_info();
 
   certificate_manager()->set_next_salt({0x00, 0x02});
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(870));
+  task_environment_.FastForwardBy(base::Seconds(870));
   EXPECT_TRUE(fake_nearby_connections_manager_->IsAdvertising());
   auto endpoint_info_rotated =
       fake_nearby_connections_manager_->advertising_endpoint_info();
@@ -4616,13 +4616,13 @@
   EXPECT_TRUE(IsProcessShutdownTimerRunning());
 
   // Run the timer down a bit.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
 
   // Unregister a receive surface again and make sure the timer did not restart.
   service_->UnregisterReceiveSurface(&callback);
   EXPECT_TRUE(IsBoundToProcess());
   EXPECT_TRUE(IsProcessShutdownTimerRunning());
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
   EXPECT_FALSE(IsBoundToProcess());
   EXPECT_FALSE(IsProcessShutdownTimerRunning());
 }
diff --git a/chrome/browser/nearby_sharing/paired_key_verification_runner_unittest.cc b/chrome/browser/nearby_sharing/paired_key_verification_runner_unittest.cc
index e1b88ccd..f241d62 100644
--- a/chrome/browser/nearby_sharing/paired_key_verification_runner_unittest.cc
+++ b/chrome/browser/nearby_sharing/paired_key_verification_runner_unittest.cc
@@ -40,7 +40,7 @@
     0xab, 0x48, 0xe2, 0x2f, 0xcb, 0xc0, 0x53, 0x41, 0x06, 0x50, 0x65, 0x95,
     0x19, 0xa9, 0x22, 0x92, 0x00, 0x42, 0x01, 0x26, 0x25, 0xcb, 0x8c};
 
-const base::TimeDelta kTimeout = base::TimeDelta::FromSeconds(1);
+const base::TimeDelta kTimeout = base::Seconds(1);
 
 class MockIncomingFramesReader : public IncomingFramesReader {
  public:
diff --git a/chrome/browser/nearby_sharing/scheduling/nearby_share_expiration_scheduler.cc b/chrome/browser/nearby_sharing/scheduling/nearby_share_expiration_scheduler.cc
index 0905620..2657bde 100644
--- a/chrome/browser/nearby_sharing/scheduling/nearby_share_expiration_scheduler.cc
+++ b/chrome/browser/nearby_sharing/scheduling/nearby_share_expiration_scheduler.cc
@@ -32,7 +32,7 @@
     return absl::nullopt;
 
   if (*expiration_time <= now)
-    return base::TimeDelta::FromSeconds(0);
+    return base::Seconds(0);
 
   return *expiration_time - now;
 }
diff --git a/chrome/browser/nearby_sharing/scheduling/nearby_share_expiration_scheduler_unittest.cc b/chrome/browser/nearby_sharing/scheduling/nearby_share_expiration_scheduler_unittest.cc
index d209dea..2ff13ee0 100644
--- a/chrome/browser/nearby_sharing/scheduling/nearby_share_expiration_scheduler_unittest.cc
+++ b/chrome/browser/nearby_sharing/scheduling/nearby_share_expiration_scheduler_unittest.cc
@@ -20,9 +20,8 @@
 
 const char kTestPrefName[] = "test_pref_name";
 
-constexpr base::TimeDelta kTestInitialNow = base::TimeDelta::FromDays(100);
-constexpr base::TimeDelta kTestExpirationTimeFromInitalNow =
-    base::TimeDelta::FromMinutes(123);
+constexpr base::TimeDelta kTestInitialNow = base::Days(100);
+constexpr base::TimeDelta kTestExpirationTimeFromInitalNow = base::Minutes(123);
 
 }  // namespace
 
@@ -73,14 +72,14 @@
 
   // Let 5 minutes elapse since the start time just to make sure the time to the
   // next request only depends on the expiration time and the current time.
-  FastForward(base::TimeDelta::FromMinutes(5));
+  FastForward(base::Minutes(5));
 
   EXPECT_EQ(*expiration_time_ - Now(), scheduler()->GetTimeUntilNextRequest());
 }
 
 TEST_F(NearbyShareExpirationSchedulerTest, Reschedule) {
   scheduler()->Start();
-  FastForward(base::TimeDelta::FromMinutes(5));
+  FastForward(base::Minutes(5));
 
   base::TimeDelta initial_expected_time_until_next_request =
       *expiration_time_ - Now();
@@ -88,11 +87,10 @@
             scheduler()->GetTimeUntilNextRequest());
 
   // The expiration time suddenly changes.
-  expiration_time_ = *expiration_time_ + base::TimeDelta::FromDays(2);
+  expiration_time_ = *expiration_time_ + base::Days(2);
   scheduler()->Reschedule();
-  EXPECT_EQ(
-      initial_expected_time_until_next_request + base::TimeDelta::FromDays(2),
-      scheduler()->GetTimeUntilNextRequest());
+  EXPECT_EQ(initial_expected_time_until_next_request + base::Days(2),
+            scheduler()->GetTimeUntilNextRequest());
 }
 
 TEST_F(NearbyShareExpirationSchedulerTest, NullExpirationTime) {
diff --git a/chrome/browser/nearby_sharing/scheduling/nearby_share_periodic_scheduler.cc b/chrome/browser/nearby_sharing/scheduling/nearby_share_periodic_scheduler.cc
index cc89df0..a21775c 100644
--- a/chrome/browser/nearby_sharing/scheduling/nearby_share_periodic_scheduler.cc
+++ b/chrome/browser/nearby_sharing/scheduling/nearby_share_periodic_scheduler.cc
@@ -31,10 +31,10 @@
 
   // Immediately run a first-time request.
   if (!last_success_time)
-    return base::TimeDelta::FromSeconds(0);
+    return base::Seconds(0);
 
   base::TimeDelta time_elapsed_since_last_success = now - *last_success_time;
 
-  return std::max(base::TimeDelta::FromSeconds(0),
+  return std::max(base::Seconds(0),
                   request_period_ - time_elapsed_since_last_success);
 }
diff --git a/chrome/browser/nearby_sharing/scheduling/nearby_share_periodic_scheduler_unittest.cc b/chrome/browser/nearby_sharing/scheduling/nearby_share_periodic_scheduler_unittest.cc
index ddc36ea2..55e9362 100644
--- a/chrome/browser/nearby_sharing/scheduling/nearby_share_periodic_scheduler_unittest.cc
+++ b/chrome/browser/nearby_sharing/scheduling/nearby_share_periodic_scheduler_unittest.cc
@@ -16,8 +16,7 @@
 namespace {
 
 const char kTestPrefName[] = "test_pref_name";
-constexpr base::TimeDelta kTestRequestPeriod =
-    base::TimeDelta::FromMinutes(123);
+constexpr base::TimeDelta kTestRequestPeriod = base::Minutes(123);
 
 }  // namespace
 
@@ -55,20 +54,19 @@
 
 TEST_F(NearbySharePeriodicSchedulerTest, PeriodicRequest) {
   // Set Now() to something nontrivial.
-  FastForward(base::TimeDelta::FromDays(100));
+  FastForward(base::Days(100));
 
   // Immediately runs a first-time periodic request.
   scheduler()->Start();
   absl::optional<base::TimeDelta> time_until_next_request =
       scheduler()->GetTimeUntilNextRequest();
-  EXPECT_EQ(base::TimeDelta::FromSeconds(0),
-            scheduler()->GetTimeUntilNextRequest());
+  EXPECT_EQ(base::Seconds(0), scheduler()->GetTimeUntilNextRequest());
   FastForward(*time_until_next_request);
   scheduler()->HandleResult(/*success=*/true);
   EXPECT_EQ(Now(), scheduler()->GetLastSuccessTime());
 
   // Let 1 minute elapse since last success.
-  base::TimeDelta elapsed_time = base::TimeDelta::FromMinutes(1);
+  base::TimeDelta elapsed_time = base::Minutes(1);
   FastForward(elapsed_time);
 
   EXPECT_EQ(kTestRequestPeriod - elapsed_time,
diff --git a/chrome/browser/nearby_sharing/scheduling/nearby_share_scheduler_base.cc b/chrome/browser/nearby_sharing/scheduling/nearby_share_scheduler_base.cc
index bb7e869..ff4ca18 100644
--- a/chrome/browser/nearby_sharing/scheduling/nearby_share_scheduler_base.cc
+++ b/chrome/browser/nearby_sharing/scheduling/nearby_share_scheduler_base.cc
@@ -20,9 +20,9 @@
 
 namespace {
 
-constexpr base::TimeDelta kZeroTimeDelta = base::TimeDelta::FromSeconds(0);
-constexpr base::TimeDelta kBaseRetryDelay = base::TimeDelta::FromSeconds(5);
-constexpr base::TimeDelta kMaxRetryDelay = base::TimeDelta::FromHours(1);
+constexpr base::TimeDelta kZeroTimeDelta = base::Seconds(0);
+constexpr base::TimeDelta kBaseRetryDelay = base::Seconds(5);
+constexpr base::TimeDelta kMaxRetryDelay = base::Hours(1);
 
 const char kLastAttemptTimeKeyName[] = "a";
 const char kLastSuccessTimeKeyName[] = "s";
diff --git a/chrome/browser/nearby_sharing/scheduling/nearby_share_scheduler_base_unittest.cc b/chrome/browser/nearby_sharing/scheduling/nearby_share_scheduler_base_unittest.cc
index 83c58e3d..21cfb6f4 100644
--- a/chrome/browser/nearby_sharing/scheduling/nearby_share_scheduler_base_unittest.cc
+++ b/chrome/browser/nearby_sharing/scheduling/nearby_share_scheduler_base_unittest.cc
@@ -22,12 +22,11 @@
 const char kTestPrefName[] = "test_pref_name";
 
 // Copied from nearby_share_scheduler_impl.cc.
-constexpr base::TimeDelta kZeroTimeDelta = base::TimeDelta::FromSeconds(0);
-constexpr base::TimeDelta kBaseRetryDelay = base::TimeDelta::FromSeconds(5);
-constexpr base::TimeDelta kMaxRetryDelay = base::TimeDelta::FromHours(1);
+constexpr base::TimeDelta kZeroTimeDelta = base::Seconds(0);
+constexpr base::TimeDelta kBaseRetryDelay = base::Seconds(5);
+constexpr base::TimeDelta kMaxRetryDelay = base::Hours(1);
 
-constexpr base::TimeDelta kTestTimeUntilRecurringRequest =
-    base::TimeDelta::FromMinutes(123);
+constexpr base::TimeDelta kTestTimeUntilRecurringRequest = base::Minutes(123);
 
 class NearbyShareSchedulerBaseForTest : public NearbyShareSchedulerBase {
  public:
@@ -403,7 +402,7 @@
 
   // 1s elapses while there is no scheduler. When the scheduler is recreated,
   // the retry request is rescheduled, accounting for the elapsed time.
-  base::TimeDelta elapsed_time = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta elapsed_time = base::Seconds(1);
   FastForward(elapsed_time);
   CreateScheduler(/*retry_failures=*/true, /*require_connectivity=*/true);
   StartScheduling();
@@ -418,8 +417,7 @@
 
 TEST_F(NearbyShareSchedulerBaseTest, RestoreSchedulingData) {
   // Succeed immediately, then fail once before destroying scheduler.
-  base::Time expected_last_success_time =
-      Now() + base::TimeDelta::FromSeconds(100);
+  base::Time expected_last_success_time = Now() + base::Seconds(100);
   FastForward(expected_last_success_time - Now());
   CreateScheduler(/*retry_failures=*/true, /*require_connectivity=*/true);
   scheduler()->MakeImmediateRequest();
diff --git a/chrome/browser/nearby_sharing/tachyon_ice_config_fetcher.cc b/chrome/browser/nearby_sharing/tachyon_ice_config_fetcher.cc
index a0512fd..f25b016 100644
--- a/chrome/browser/nearby_sharing/tachyon_ice_config_fetcher.cc
+++ b/chrome/browser/nearby_sharing/tachyon_ice_config_fetcher.cc
@@ -38,7 +38,7 @@
 const char kAuthorizationHeaderFormat[] = "Authorization: Bearer %s";
 
 // Timeout for network calls to Tachyon servers.
-constexpr base::TimeDelta kNetworkTimeout = base::TimeDelta::FromSeconds(4);
+constexpr base::TimeDelta kNetworkTimeout = base::Seconds(4);
 
 // Response with 2 ice server configs takes ~1KB. A loose upper bound of 16KB is
 // chosen to avoid breaking the flow in case the response has longer URLs in ice
@@ -339,7 +339,7 @@
     ice_server_cache_ = CloneIceServerList(servers_mojo);
     ice_server_cache_expiration_ =
         base::Time::Now() +
-        base::TimeDelta::FromSeconds(ice_config.lifetime_duration().seconds());
+        base::Seconds(ice_config.lifetime_duration().seconds());
   }
   return servers_mojo;
 }
diff --git a/chrome/browser/nearby_sharing/tachyon_ice_config_fetcher_unittest.cc b/chrome/browser/nearby_sharing/tachyon_ice_config_fetcher_unittest.cc
index c7953f0..19d5923 100644
--- a/chrome/browser/nearby_sharing/tachyon_ice_config_fetcher_unittest.cc
+++ b/chrome/browser/nearby_sharing/tachyon_ice_config_fetcher_unittest.cc
@@ -222,8 +222,7 @@
   run_loop->Run();
 
   // Wait until the cache has expired.
-  task_environment_.FastForwardBy(
-      base::TimeDelta::FromSeconds(kLifetimeDurationSeconds + 1));
+  task_environment_.FastForwardBy(base::Seconds(kLifetimeDurationSeconds + 1));
 
   // Expired cache results in fetching the servers again.
   run_loop.reset(new base::RunLoop());
diff --git a/chrome/browser/net/cert_verify_proc_browsertest.cc b/chrome/browser/net/cert_verify_proc_browsertest.cc
index 45799427..7db59200 100644
--- a/chrome/browser/net/cert_verify_proc_browsertest.cc
+++ b/chrome/browser/net/cert_verify_proc_browsertest.cc
@@ -41,8 +41,8 @@
     // started before this method is called, but completes asynchronously.
     //
     // Try for up to 5 seconds to read the netlog file.
-    constexpr auto kMaxWaitTime = base::TimeDelta::FromSeconds(5);
-    constexpr auto kWaitInterval = base::TimeDelta::FromMilliseconds(50);
+    constexpr auto kMaxWaitTime = base::Seconds(5);
+    constexpr auto kWaitInterval = base::Milliseconds(50);
     int tries_left = kMaxWaitTime / kWaitInterval;
 
     absl::optional<base::Value> parsed_net_log;
diff --git a/chrome/browser/net/chrome_mojo_proxy_resolver_factory_browsertest.cc b/chrome/browser/net/chrome_mojo_proxy_resolver_factory_browsertest.cc
index c37fe62..d94c8487 100644
--- a/chrome/browser/net/chrome_mojo_proxy_resolver_factory_browsertest.cc
+++ b/chrome/browser/net/chrome_mojo_proxy_resolver_factory_browsertest.cc
@@ -26,8 +26,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kServiceShutdownTimeout =
-    base::TimeDelta::FromSeconds(3);
+constexpr base::TimeDelta kServiceShutdownTimeout = base::Seconds(3);
 
 constexpr char kPacScript[] =
     "function FindProxyForURL(url, host) { return 'PROXY proxy.example.com:1; "
diff --git a/chrome/browser/net/chrome_network_service_browsertest.cc b/chrome/browser/net/chrome_network_service_browsertest.cc
index b809aca..9ef3b98 100644
--- a/chrome/browser/net/chrome_network_service_browsertest.cc
+++ b/chrome/browser/net/chrome_network_service_browsertest.cc
@@ -58,10 +58,10 @@
 void SetCookie(network::mojom::CookieManager* cookie_manager) {
   base::Time t = base::Time::Now();
   auto cookie = net::CanonicalCookie::CreateUnsafeCookieForTesting(
-      kCookieName, kCookieValue, "www.test.com", "/", t,
-      t + base::TimeDelta::FromDays(1), base::Time(), true /* secure */,
-      false /* http-only*/, net::CookieSameSite::NO_RESTRICTION,
-      net::COOKIE_PRIORITY_DEFAULT, false /* same_party */);
+      kCookieName, kCookieValue, "www.test.com", "/", t, t + base::Days(1),
+      base::Time(), true /* secure */, false /* http-only*/,
+      net::CookieSameSite::NO_RESTRICTION, net::COOKIE_PRIORITY_DEFAULT,
+      false /* same_party */);
   base::RunLoop run_loop;
   cookie_manager->SetCanonicalCookie(
       *cookie, net::cookie_util::SimulatedCookieSource(*cookie, "https"),
diff --git a/chrome/browser/net/dns_probe_service_factory.cc b/chrome/browser/net/dns_probe_service_factory.cc
index 6081c72..d84310c 100644
--- a/chrome/browser/net/dns_probe_service_factory.cc
+++ b/chrome/browser/net/dns_probe_service_factory.cc
@@ -369,8 +369,7 @@
   if (state_ != STATE_RESULT_CACHED)
     return false;
 
-  const base::TimeDelta kMaxResultAge =
-      base::TimeDelta::FromMilliseconds(kMaxResultAgeMs);
+  const base::TimeDelta kMaxResultAge = base::Milliseconds(kMaxResultAgeMs);
   return tick_clock_->NowTicks() - probe_start_time_ > kMaxResultAge;
 }
 
diff --git a/chrome/browser/net/dns_probe_service_factory_unittest.cc b/chrome/browser/net/dns_probe_service_factory_unittest.cc
index 74f8a4d..497e6df 100644
--- a/chrome/browser/net/dns_probe_service_factory_unittest.cc
+++ b/chrome/browser/net/dns_probe_service_factory_unittest.cc
@@ -235,7 +235,7 @@
                   FakeHostResolver::kNoResponse}});
   RunTest(error_page::DNS_PROBE_FINISHED_NXDOMAIN);
   // Advance clock, but not enough to expire the cache.
-  AdvanceTime(base::TimeDelta::FromSeconds(4));
+  AdvanceTime(base::Seconds(4));
   // Cached NXDOMAIN result should persist, not the result from the new rules.
   RunTest(error_page::DNS_PROBE_FINISHED_NXDOMAIN);
 }
@@ -253,7 +253,7 @@
                   FakeHostResolver::kNoResponse}});
   RunTest(error_page::DNS_PROBE_FINISHED_NXDOMAIN);
   // Advance clock enough to trigger cache expiration.
-  AdvanceTime(base::TimeDelta::FromSeconds(6));
+  AdvanceTime(base::Seconds(6));
   // New rules should apply, since a new probe should be run.
   RunTest(error_page::DNS_PROBE_FINISHED_NO_INTERNET);
 }
diff --git a/chrome/browser/net/netinfo_network_quality_estimator_holdback_browsertest.cc b/chrome/browser/net/netinfo_network_quality_estimator_holdback_browsertest.cc
index 943879d..3558fb0 100644
--- a/chrome/browser/net/netinfo_network_quality_estimator_holdback_browsertest.cc
+++ b/chrome/browser/net/netinfo_network_quality_estimator_holdback_browsertest.cc
@@ -62,20 +62,16 @@
               RunScriptExtractString("getEffectiveType()"));
 
     if (expected_effective_connection_type == "slow-2g") {
-      VerifyRtt(base::TimeDelta::FromMilliseconds(3600),
-                RunScriptExtractDouble("getRtt()"));
+      VerifyRtt(base::Milliseconds(3600), RunScriptExtractDouble("getRtt()"));
       VerifyDownlinkKbps(40, RunScriptExtractDouble("getDownlink()") * 1000);
     } else if (expected_effective_connection_type == "2g") {
-      VerifyRtt(base::TimeDelta::FromMilliseconds(1800),
-                RunScriptExtractDouble("getRtt()"));
+      VerifyRtt(base::Milliseconds(1800), RunScriptExtractDouble("getRtt()"));
       VerifyDownlinkKbps(75, RunScriptExtractDouble("getDownlink()") * 1000);
     } else if (expected_effective_connection_type == "3g") {
-      VerifyRtt(base::TimeDelta::FromMilliseconds(450),
-                RunScriptExtractDouble("getRtt()"));
+      VerifyRtt(base::Milliseconds(450), RunScriptExtractDouble("getRtt()"));
       VerifyDownlinkKbps(400, RunScriptExtractDouble("getDownlink()") * 1000);
     } else if (expected_effective_connection_type == "4g") {
-      VerifyRtt(base::TimeDelta::FromMilliseconds(175),
-                RunScriptExtractDouble("getRtt()"));
+      VerifyRtt(base::Milliseconds(175), RunScriptExtractDouble("getRtt()"));
       VerifyDownlinkKbps(1600, RunScriptExtractDouble("getDownlink()") * 1000);
     } else {
       DCHECK(false);
@@ -101,12 +97,10 @@
     // them directly.
     if (type == net::EFFECTIVE_CONNECTION_TYPE_3G) {
       g_browser_process->network_quality_tracker()
-          ->ReportRTTsAndThroughputForTesting(
-              base::TimeDelta::FromMilliseconds(450), 400);
+          ->ReportRTTsAndThroughputForTesting(base::Milliseconds(450), 400);
     } else if (type == net::EFFECTIVE_CONNECTION_TYPE_SLOW_2G) {
       g_browser_process->network_quality_tracker()
-          ->ReportRTTsAndThroughputForTesting(
-              base::TimeDelta::FromMilliseconds(3600), 40);
+          ->ReportRTTsAndThroughputForTesting(base::Milliseconds(3600), 40);
     } else {
       NOTREACHED();
     }
@@ -121,8 +115,8 @@
     EXPECT_EQ(0, got_rtt_milliseconds % 50)
         << " got_rtt_milliseconds=" << got_rtt_milliseconds;
 
-    if (expected_rtt > base::TimeDelta::FromMilliseconds(3000))
-      expected_rtt = base::TimeDelta::FromMilliseconds(3000);
+    if (expected_rtt > base::Milliseconds(3000))
+      expected_rtt = base::Milliseconds(3000);
 
     // The difference between the actual and the estimate value should be within
     // 10%. Add 50 (bucket size used in Blink) to account for the cases when the
diff --git a/chrome/browser/net/network_context_configuration_browsertest.cc b/chrome/browser/net/network_context_configuration_browsertest.cc
index 64516912..7bbadbc 100644
--- a/chrome/browser/net/network_context_configuration_browsertest.cc
+++ b/chrome/browser/net/network_context_configuration_browsertest.cc
@@ -1887,8 +1887,7 @@
     // Then wait for any remaining connections that we should NOT get.
     base::RunLoop ugly_100ms_wait;
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-        FROM_HERE, ugly_100ms_wait.QuitClosure(),
-        base::TimeDelta::FromMilliseconds(100));
+        FROM_HERE, ugly_100ms_wait.QuitClosure(), base::Milliseconds(100));
     ugly_100ms_wait.Run();
 
     // Stop the server.
@@ -1975,7 +1974,7 @@
 
     // Make report delivery happen instantly.
     net::ReportingPolicy policy;
-    policy.delivery_interval = base::TimeDelta::FromSeconds(0);
+    policy.delivery_interval = base::Seconds(0);
     net::ReportingPolicy::UsePolicyForTesting(policy);
   }
 
diff --git a/chrome/browser/net/network_quality_netinfo_browsertest.cc b/chrome/browser/net/network_quality_netinfo_browsertest.cc
index 3135b26..7ded4f21 100644
--- a/chrome/browser/net/network_quality_netinfo_browsertest.cc
+++ b/chrome/browser/net/network_quality_netinfo_browsertest.cc
@@ -75,8 +75,8 @@
   // Repeatedly runs NetInfo JavaScript API to get RTT until it returns
   // |expected_rtt|.
   void RunGetRttUntilExpectedValueReached(base::TimeDelta expected_rtt) {
-    if (expected_rtt > base::TimeDelta::FromMilliseconds(3000))
-      expected_rtt = base::TimeDelta::FromMilliseconds(3000);
+    if (expected_rtt > base::Milliseconds(3000))
+      expected_rtt = base::Milliseconds(3000);
 
     while (true) {
       int32_t got_rtt_milliseconds = RunScriptExtractInt("getRtt()");
@@ -140,21 +140,21 @@
 // thread, and the changed network quality is accessible via Javascript API.
 IN_PROC_BROWSER_TEST_F(NetInfoBrowserTest, NetworkQualityChangeNotified) {
   GetNetworkQualityTracker()->ReportRTTsAndThroughputForTesting(
-      base::TimeDelta::FromSeconds(1), 300);
+      base::Seconds(1), 300);
 
   embedded_test_server()->ServeFilesFromSourceDirectory("content/test/data");
   EXPECT_TRUE(embedded_test_server()->Start());
   ASSERT_TRUE(ui_test_utils::NavigateToURL(
       browser(), embedded_test_server()->GetURL("/net_info.html")));
 
-  RunGetRttUntilExpectedValueReached(base::TimeDelta::FromSeconds(1));
+  RunGetRttUntilExpectedValueReached(base::Seconds(1));
   // If the updated RTT is available via JavaScript, then downlink must have
   // been updated too.
   VerifyDownlinkKbps(300, RunScriptExtractDouble("getDownlink()") * 1000);
 
   // Verify that the network quality change is accessible via Javascript API.
   GetNetworkQualityTracker()->ReportRTTsAndThroughputForTesting(
-      base::TimeDelta::FromSeconds(10), 3000);
-  RunGetRttUntilExpectedValueReached(base::TimeDelta::FromSeconds(10));
+      base::Seconds(10), 3000);
+  RunGetRttUntilExpectedValueReached(base::Seconds(10));
   VerifyDownlinkKbps(3000, RunScriptExtractDouble("getDownlink()") * 1000);
 }
diff --git a/chrome/browser/net/network_quality_tracker_browsertest.cc b/chrome/browser/net/network_quality_tracker_browsertest.cc
index 1adff16..9622ec6 100644
--- a/chrome/browser/net/network_quality_tracker_browsertest.cc
+++ b/chrome/browser/net/network_quality_tracker_browsertest.cc
@@ -189,10 +189,8 @@
 
   // Typical RTT and downlink values when effective connection type is 3G. Taken
   // from net::NetworkQualityEstimatorParams.
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(450),
-            network_quality_observer.http_rtt());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(400),
-            network_quality_observer.transport_rtt());
+  EXPECT_EQ(base::Milliseconds(450), network_quality_observer.http_rtt());
+  EXPECT_EQ(base::Milliseconds(400), network_quality_observer.transport_rtt());
   EXPECT_EQ(400, network_quality_observer.downlink_bandwidth_kbps());
 }
 
@@ -215,10 +213,8 @@
             network_quality_observer.effective_connection_type());
   // Typical RTT and downlink values when effective connection type is 2G. Taken
   // from net::NetworkQualityEstimatorParams.
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1800),
-            network_quality_observer.http_rtt());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1500),
-            network_quality_observer.transport_rtt());
+  EXPECT_EQ(base::Milliseconds(1800), network_quality_observer.http_rtt());
+  EXPECT_EQ(base::Milliseconds(1500), network_quality_observer.transport_rtt());
   EXPECT_EQ(75, network_quality_observer.downlink_bandwidth_kbps());
 }
 
@@ -252,10 +248,8 @@
   EXPECT_EQ(1u, network_quality_observer.num_notifications());
   // Typical RTT and downlink values when effective connection type is 3G. Taken
   // from net::NetworkQualityEstimatorParams.
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(450),
-            network_quality_observer.http_rtt());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(400),
-            network_quality_observer.transport_rtt());
+  EXPECT_EQ(base::Milliseconds(450), network_quality_observer.http_rtt());
+  EXPECT_EQ(base::Milliseconds(400), network_quality_observer.transport_rtt());
   EXPECT_EQ(400, network_quality_observer.downlink_bandwidth_kbps());
 
   SimulateNetworkServiceCrash();
@@ -271,10 +265,8 @@
   network_quality_observer.WaitForNotification(
       net::EFFECTIVE_CONNECTION_TYPE_2G);
   EXPECT_LE(2u, network_quality_observer.num_notifications());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1800),
-            network_quality_observer.http_rtt());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1500),
-            network_quality_observer.transport_rtt());
+  EXPECT_EQ(base::Milliseconds(1800), network_quality_observer.http_rtt());
+  EXPECT_EQ(base::Milliseconds(1500), network_quality_observer.transport_rtt());
   EXPECT_EQ(75, network_quality_observer.downlink_bandwidth_kbps());
 }
 
diff --git a/chrome/browser/net/network_request_metrics_browsertest.cc b/chrome/browser/net/network_request_metrics_browsertest.cc
index 1f9919c..65168cc 100644
--- a/chrome/browser/net/network_request_metrics_browsertest.cc
+++ b/chrome/browser/net/network_request_metrics_browsertest.cc
@@ -404,7 +404,7 @@
   // recieved by the time Stop() is called, the test should still pass, however.
   base::RunLoop run_loop;
   base::SequencedTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(), base::TimeDelta::FromSeconds(1));
+      FROM_HERE, run_loop.QuitClosure(), base::Seconds(1));
   run_loop.Run();
 
   active_web_contents()->Stop();
@@ -437,7 +437,7 @@
   // recieved by the time Stop() is called, the test should still pass, however.
   base::RunLoop run_loop;
   base::SequencedTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(), base::TimeDelta::FromSeconds(1));
+      FROM_HERE, run_loop.QuitClosure(), base::Seconds(1));
   run_loop.Run();
 
   // Stop navigation to record histograms.
diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc
index 2466c82..0248639 100644
--- a/chrome/browser/net/profile_network_context_service.cc
+++ b/chrome/browser/net/profile_network_context_service.cc
@@ -433,8 +433,7 @@
 }
 
 void ProfileNetworkContextService::ScheduleUpdateCTPolicy() {
-  ct_policy_update_timer_.Start(FROM_HERE, base::TimeDelta::FromSeconds(0),
-                                this,
+  ct_policy_update_timer_.Start(FROM_HERE, base::Seconds(0), this,
                                 &ProfileNetworkContextService::UpdateCTPolicy);
 }
 
@@ -653,7 +652,7 @@
   base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
   if (command_line->HasSwitch(embedder_support::kShortReportingDelay)) {
     network_context_params->reporting_delivery_interval =
-        base::TimeDelta::FromMilliseconds(100);
+        base::Milliseconds(100);
   }
 
   // Always enable the HTTP cache.
diff --git a/chrome/browser/net/profile_network_context_service_browsertest.cc b/chrome/browser/net/profile_network_context_service_browsertest.cc
index 03ee7dfb..6d57fe00 100644
--- a/chrome/browser/net/profile_network_context_service_browsertest.cc
+++ b/chrome/browser/net/profile_network_context_service_browsertest.cc
@@ -98,7 +98,7 @@
     do {
       content::FetchHistogramsFromChildProcesses();
       metrics::SubprocessMetricsProvider::MergeHistogramDeltasForTesting();
-      base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(5));
+      base::PlatformThread::Sleep(base::Milliseconds(5));
       all_metrics = histograms_.GetAllHistogramsRecorded();
     } while (std::string::npos ==
              all_metrics.find("HttpCache.MaxFileSizeOnInit"));
@@ -233,7 +233,7 @@
   while (!histograms->GetBucketCount("HttpCache.HardReset", reset)) {
     content::FetchHistogramsFromChildProcesses();
     metrics::SubprocessMetricsProvider::MergeHistogramDeltasForTesting();
-    base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(5));
+    base::PlatformThread::Sleep(base::Milliseconds(5));
   }
 
   if (reset) {
diff --git a/chrome/browser/net/reporting_browsertest.cc b/chrome/browser/net/reporting_browsertest.cc
index c3769096..844015c 100644
--- a/chrome/browser/net/reporting_browsertest.cc
+++ b/chrome/browser/net/reporting_browsertest.cc
@@ -126,7 +126,7 @@
 
   // Make report delivery happen instantly.
   net::ReportingPolicy policy;
-  policy.delivery_interval = base::TimeDelta::FromSeconds(0);
+  policy.delivery_interval = base::Seconds(0);
   net::ReportingPolicy::UsePolicyForTesting(policy);
 }
 
diff --git a/chrome/browser/net/stub_resolver_config_reader.h b/chrome/browser/net/stub_resolver_config_reader.h
index 9efec29b..82eef56 100644
--- a/chrome/browser/net/stub_resolver_config_reader.h
+++ b/chrome/browser/net/stub_resolver_config_reader.h
@@ -25,7 +25,7 @@
 class StubResolverConfigReader {
  public:
   static constexpr base::TimeDelta kParentalControlsCheckDelay =
-      base::TimeDelta::FromSeconds(2);
+      base::Seconds(2);
 
   // |local_state| must outlive the created reader.
   explicit StubResolverConfigReader(PrefService* local_state,
diff --git a/chrome/browser/net/system_network_context_manager_browsertest.cc b/chrome/browser/net/system_network_context_manager_browsertest.cc
index d5bc7e374..283c40f0 100644
--- a/chrome/browser/net/system_network_context_manager_browsertest.cc
+++ b/chrome/browser/net/system_network_context_manager_browsertest.cc
@@ -85,7 +85,7 @@
   while (base::TimeTicks::Now() <= deadline) {
     if (predicate.Run())
       return true;
-    Sleep(base::TimeDelta::FromMilliseconds(5));
+    Sleep(base::Milliseconds(5));
   }
   return false;
 }
@@ -254,12 +254,12 @@
   if (!content::IsOutOfProcessNetworkService())
     return;
 
-  PollForFirstPartySetEntryCount(base::TimeDelta::FromSeconds(5),
+  PollForFirstPartySetEntryCount(base::Seconds(5),
                                  /*expected_count=*/3);
 
   SimulateNetworkServiceCrash();
 
-  PollForFirstPartySetEntryCount(base::TimeDelta::FromSeconds(5),
+  PollForFirstPartySetEntryCount(base::Seconds(5),
                                  /*expected_count=*/3);
 }
 
diff --git a/chrome/browser/new_tab_page/modules/drive/drive_service.cc b/chrome/browser/new_tab_page/modules/drive/drive_service.cc
index 0979e95..e50a7aa 100644
--- a/chrome/browser/new_tab_page/modules/drive/drive_service.cc
+++ b/chrome/browser/new_tab_page/modules/drive/drive_service.cc
@@ -138,8 +138,7 @@
     "NewTabPage.Drive.LastDimissedTime";
 
 // static
-const base::TimeDelta DriveService::kDismissDuration =
-    base::TimeDelta::FromDays(14);
+const base::TimeDelta DriveService::kDismissDuration = base::Days(14);
 
 DriveService::~DriveService() = default;
 
diff --git a/chrome/browser/new_tab_page/modules/drive/drive_service_unittest.cc b/chrome/browser/new_tab_page/modules/drive/drive_service_unittest.cc
index 9aae826..bfc50969 100644
--- a/chrome/browser/new_tab_page/modules/drive/drive_service_unittest.cc
+++ b/chrome/browser/new_tab_page/modules/drive/drive_service_unittest.cc
@@ -321,7 +321,7 @@
 
   // Should re-request if cache expires.
   response.clear();
-  task_environment_.AdvanceClock(base::TimeDelta::FromSeconds(11));
+  task_environment_.AdvanceClock(base::Seconds(11));
   service_->GetDriveFiles(callback.Get());
   identity_test_env.WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
       "foo_token", base::Time());
diff --git a/chrome/browser/new_tab_page/modules/photos/photos_service.cc b/chrome/browser/new_tab_page/modules/photos/photos_service.cc
index 93928b99..8c7c183e 100644
--- a/chrome/browser/new_tab_page/modules/photos/photos_service.cc
+++ b/chrome/browser/new_tab_page/modules/photos/photos_service.cc
@@ -71,8 +71,7 @@
     "NewTabPage.Photos.OptInAcknowledged";
 
 // static
-const base::TimeDelta PhotosService::kDismissDuration =
-    base::TimeDelta::FromDays(1);
+const base::TimeDelta PhotosService::kDismissDuration = base::Days(1);
 
 PhotosService::~PhotosService() = default;
 
diff --git a/chrome/browser/new_tab_page/modules/task_module/task_module_service.cc b/chrome/browser/new_tab_page/modules/task_module/task_module_service.cc
index a3b4f35..05ce1d4f 100644
--- a/chrome/browser/new_tab_page/modules/task_module/task_module_service.cc
+++ b/chrome/browser/new_tab_page/modules/task_module/task_module_service.cc
@@ -143,8 +143,7 @@
 
 std::string GetViewedItemText(int viewed_timestamp) {
   // GWS timestamps are relative to the Unix Epoch.
-  auto viewed_time =
-      base::Time::UnixEpoch() + base::TimeDelta::FromSeconds(viewed_timestamp);
+  auto viewed_time = base::Time::UnixEpoch() + base::Seconds(viewed_timestamp);
   auto viewed_delta = base::Time::Now() - viewed_time;
   // Viewing items in the future is not supported. Assume the item was viewed
   // today to account for small shifts between the local and server clock.
diff --git a/chrome/browser/new_tab_page/modules/task_module/task_module_service_unittest.cc b/chrome/browser/new_tab_page/modules/task_module/task_module_service_unittest.cc
index 32cd095..3e23b6ab9 100644
--- a/chrome/browser/new_tab_page/modules/task_module/task_module_service_unittest.cc
+++ b/chrome/browser/new_tab_page/modules/task_module/task_module_service_unittest.cc
@@ -64,16 +64,13 @@
 // Verifies correct parsing of well-formed JSON.
 TEST_F(TaskModuleServiceTest, GoodShoppingResponse) {
   auto fiveMonthsAgoTimestamp =
-      (base::Time::Now() - base::TimeDelta::FromDays(165) -
-       base::Time::UnixEpoch())
+      (base::Time::Now() - base::Days(165) - base::Time::UnixEpoch())
           .InSeconds();
-  auto twoDaysAgoTimestamp = (base::Time::Now() - base::TimeDelta::FromDays(2) -
-                              base::Time::UnixEpoch())
-                                 .InSeconds();
+  auto twoDaysAgoTimestamp =
+      (base::Time::Now() - base::Days(2) - base::Time::UnixEpoch()).InSeconds();
   auto nowTimestamp = (base::Time::Now() - base::Time::UnixEpoch()).InSeconds();
-  auto inTwoDaysTimestamp = (base::Time::Now() + base::TimeDelta::FromDays(2) -
-                             base::Time::UnixEpoch())
-                                .InSeconds();
+  auto inTwoDaysTimestamp =
+      (base::Time::Now() + base::Days(2) - base::Time::UnixEpoch()).InSeconds();
   test_url_loader_factory_.AddResponse(
       "https://www.google.com/async/newtab_shopping_tasks?hl=en-US",
       base::StringPrintf(R"()]}'
diff --git a/chrome/browser/new_tab_page/promos/promo_service.cc b/chrome/browser/new_tab_page/promos/promo_service.cc
index fb64eb9..8b1673a 100644
--- a/chrome/browser/new_tab_page/promos/promo_service.cc
+++ b/chrome/browser/new_tab_page/promos/promo_service.cc
@@ -282,7 +282,7 @@
   if (promo_id.empty() || !CanBlockPromos())
     return false;
 
-  auto expired_delta = base::TimeDelta::FromDays(kDaysThatBlocklistExpiresIn);
+  auto expired_delta = base::Days(kDaysThatBlocklistExpiresIn);
   auto expired_time = base::Time::Now() - expired_delta;
   double expired = expired_time.ToDeltaSinceWindowsEpoch().InSecondsF();
 
diff --git a/chrome/browser/new_tab_page/promos/promo_service_unittest.cc b/chrome/browser/new_tab_page/promos/promo_service_unittest.cc
index 8beb565..1ddc789b 100644
--- a/chrome/browser/new_tab_page/promos/promo_service_unittest.cc
+++ b/chrome/browser/new_tab_page/promos/promo_service_unittest.cc
@@ -207,7 +207,7 @@
 
   {
     DictionaryPrefUpdate update(prefs(), prefs::kNtpPromoBlocklist);
-    base::Time recent = base::Time::Now() - base::TimeDelta::FromHours(2);
+    base::Time recent = base::Time::Now() - base::Hours(2);
     update->SetDoubleKey("42", recent.ToDeltaSinceWindowsEpoch().InSecondsF());
   }
 
@@ -266,7 +266,7 @@
   {
     DictionaryPrefUpdate update(prefs(), prefs::kNtpPromoBlocklist);
     ASSERT_EQ(0u, update->DictSize());
-    base::Time past = base::Time::Now() - base::TimeDelta::FromDays(365);
+    base::Time past = base::Time::Now() - base::Days(365);
     update->SetDoubleKey("42", past.ToDeltaSinceWindowsEpoch().InSecondsF());
   }
 
diff --git a/chrome/browser/no_best_effort_tasks_browsertest.cc b/chrome/browser/no_best_effort_tasks_browsertest.cc
index 3946fd2..62277ee 100644
--- a/chrome/browser/no_best_effort_tasks_browsertest.cc
+++ b/chrome/browser/no_best_effort_tasks_browsertest.cc
@@ -102,8 +102,7 @@
 
 #if BUILDFLAG(ENABLE_EXTENSIONS)
 constexpr base::StringPiece kExtensionId = "ddchlicdkolnonkihahngkmmmjnjlkkf";
-constexpr base::TimeDelta kSendMessageRetryPeriod =
-    base::TimeDelta::FromMilliseconds(250);
+constexpr base::TimeDelta kSendMessageRetryPeriod = base::Milliseconds(250);
 #endif
 
 }  // namespace
diff --git a/chrome/browser/notifications/fullscreen_notification_blocker.cc b/chrome/browser/notifications/fullscreen_notification_blocker.cc
index 5429c12..21809bca 100644
--- a/chrome/browser/notifications/fullscreen_notification_blocker.cc
+++ b/chrome/browser/notifications/fullscreen_notification_blocker.cc
@@ -28,10 +28,9 @@
     NotifyBlockingStateChanged();
 
   if (is_fullscreen_mode_) {
-    timer_.Start(
-        FROM_HERE,
-        base::TimeDelta::FromSeconds(kFullscreenStatePollingIntervalSeconds),
-        this, &FullscreenNotificationBlocker::CheckState);
+    timer_.Start(FROM_HERE,
+                 base::Seconds(kFullscreenStatePollingIntervalSeconds), this,
+                 &FullscreenNotificationBlocker::CheckState);
   }
 }
 
diff --git a/chrome/browser/notifications/notification_channels_provider_android_unittest.cc b/chrome/browser/notifications/notification_channels_provider_android_unittest.cc
index 2b4a1daa..a3e6c32 100644
--- a/chrome/browser/notifications/notification_channels_provider_android_unittest.cc
+++ b/chrome/browser/notifications/notification_channels_provider_android_unittest.cc
@@ -481,7 +481,7 @@
       ContentSettingsPattern::FromString(first_origin),
       ContentSettingsPattern(), ContentSettingsType::NOTIFICATIONS,
       std::make_unique<base::Value>(CONTENT_SETTING_ALLOW));
-  clock.Advance(base::TimeDelta::FromSeconds(1));
+  clock.Advance(base::Seconds(1));
 
   base::Time last_modified = channels_provider_->GetWebsiteSettingLastModified(
       ContentSettingsPattern::FromString(first_origin),
@@ -490,7 +490,7 @@
 
   // Delete and recreate the same channel after some time has passed.
   // This simulates the user clearing data and regranting permisison.
-  clock.Advance(base::TimeDelta::FromSeconds(3));
+  clock.Advance(base::Seconds(3));
   base::Time t2 = clock.Now();
   channels_provider_->SetWebsiteSetting(
       ContentSettingsPattern::FromString(first_origin),
@@ -507,7 +507,7 @@
   EXPECT_EQ(last_modified, t2);
 
   // Create an unrelated channel after some more time has passed.
-  clock.Advance(base::TimeDelta::FromSeconds(5));
+  clock.Advance(base::Seconds(5));
   std::string second_origin = "https://other.com";
   channels_provider_->SetWebsiteSetting(
       ContentSettingsPattern::FromString(second_origin),
diff --git a/chrome/browser/notifications/notification_dispatcher_mojo.cc b/chrome/browser/notifications/notification_dispatcher_mojo.cc
index de2b2e7..82d2cad 100644
--- a/chrome/browser/notifications/notification_dispatcher_mojo.cc
+++ b/chrome/browser/notifications/notification_dispatcher_mojo.cc
@@ -26,15 +26,13 @@
 // The initial delay for restarting the notification service. An exponential
 // backoff will double this value whenever the OneShotTimer reschedules.
 constexpr base::TimeDelta kInitialServiceRestartTimerDelay =
-    base::TimeDelta::FromMilliseconds(500);
+    base::Milliseconds(500);
 // Maximum delay between restart attempts. We don't want this to be too low to
 // avoid heavy resource usage but also not too high keep notifications working.
-constexpr base::TimeDelta kMaximumServiceRestartTimerDelay =
-    base::TimeDelta::FromSeconds(256);
+constexpr base::TimeDelta kMaximumServiceRestartTimerDelay = base::Seconds(256);
 // If the service ran for more than this time we will reset the restart delay to
 // |kInitialServiceRestartTimerDelay|.
-constexpr base::TimeDelta kServiceRestartTimerResetDelay =
-    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kServiceRestartTimerResetDelay = base::Seconds(10);
 
 }  // namespace
 
@@ -159,15 +157,15 @@
 
   // Log utility process runtime metrics to UMA.
   if (service_ && !provider_factory_->in_process()) {
-    base::UmaHistogramCustomTimes(
-        "Notifications.macOS.ServiceProcessRuntime", elapsed,
-        base::TimeDelta::FromMilliseconds(100), base::TimeDelta::FromHours(8),
-        /*buckets=*/50);
+    base::UmaHistogramCustomTimes("Notifications.macOS.ServiceProcessRuntime",
+                                  elapsed, base::Milliseconds(100),
+                                  base::Hours(8),
+                                  /*buckets=*/50);
     if (!gracefully) {
-      base::UmaHistogramCustomTimes(
-          "Notifications.macOS.ServiceProcessKilled", elapsed,
-          base::TimeDelta::FromMilliseconds(100), base::TimeDelta::FromHours(8),
-          /*buckets=*/50);
+      base::UmaHistogramCustomTimes("Notifications.macOS.ServiceProcessKilled",
+                                    elapsed, base::Milliseconds(100),
+                                    base::Hours(8),
+                                    /*buckets=*/50);
     }
   }
 
diff --git a/chrome/browser/notifications/notification_dispatcher_mojo_unittest.cc b/chrome/browser/notifications/notification_dispatcher_mojo_unittest.cc
index 4ef8068..d0dd18b 100644
--- a/chrome/browser/notifications/notification_dispatcher_mojo_unittest.cc
+++ b/chrome/browser/notifications/notification_dispatcher_mojo_unittest.cc
@@ -348,7 +348,7 @@
       CreateNotification());
 
   // Wait for 30 seconds and close the notification.
-  auto delay = base::TimeDelta::FromSeconds(30);
+  auto delay = base::Seconds(30);
   task_environment_.FastForwardBy(delay);
 
   // Expect that we disconnect after closing the last notification.
@@ -376,7 +376,7 @@
       CreateNotification());
 
   // Wait for 30 seconds and terminate the service.
-  auto delay = base::TimeDelta::FromSeconds(30);
+  auto delay = base::Seconds(30);
   task_environment_.FastForwardBy(delay);
   // Simulate a dying service process.
   provider_factory_->Disconnect();
@@ -417,13 +417,13 @@
   EXPECT_TRUE(provider_factory_->is_service_connected());
 
   // Disconnect after 30 seconds while there is still a notification on screen.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(30));
+  task_environment_.FastForwardBy(base::Seconds(30));
   provider_factory_->Disconnect();
   EXPECT_FALSE(provider_factory_->is_service_connected());
 
   // Expect the service to be restarted after a short timeout.
   EmulateOneNotification(base::DoNothing());
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(500));
+  task_environment_.FastForwardBy(base::Milliseconds(500));
   EXPECT_TRUE(provider_factory_->is_service_connected());
 }
 
@@ -431,25 +431,25 @@
   // Display a notification and verify that the service is running.
   DisplayNotificationSync();
   // Disconnect after 30 seconds while there is still a notification on screen.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(30));
+  task_environment_.FastForwardBy(base::Seconds(30));
   provider_factory_->Disconnect();
 
   // Verify the service hasn't restarted if not enough time has passed.
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(499));
+  task_environment_.FastForwardBy(base::Milliseconds(499));
   EXPECT_FALSE(provider_factory_->is_service_connected());
   // Expect the service to be restarted after a short timeout.
   EmulateOneNotification(base::DoNothing());
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_environment_.FastForwardBy(base::Milliseconds(1));
   EXPECT_TRUE(provider_factory_->is_service_connected());
 
   // Disconnect again immediately which should double the restart timeout.
   provider_factory_->Disconnect();
 
   // Verify the service hasn't restarted if not enough time has passed.
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(999));
+  task_environment_.FastForwardBy(base::Milliseconds(999));
   EXPECT_FALSE(provider_factory_->is_service_connected());
   // Expect the service to be restarted after a short timeout.
   EmulateOneNotification(base::DoNothing());
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_environment_.FastForwardBy(base::Milliseconds(1));
   EXPECT_TRUE(provider_factory_->is_service_connected());
 }
diff --git a/chrome/browser/notifications/notification_permission_context.cc b/chrome/browser/notifications/notification_permission_context.cc
index 6d1b347..ea5129f 100644
--- a/chrome/browser/notifications/notification_permission_context.cc
+++ b/chrome/browser/notifications/notification_permission_context.cc
@@ -155,7 +155,7 @@
                            requesting_origin, embedding_origin,
                            std::move(callback), /*persist=*/true,
                            CONTENT_SETTING_BLOCK, /*is_one_time=*/false),
-            base::TimeDelta::FromSecondsD(delay_seconds));
+            base::Seconds(delay_seconds));
     return;
   }
 
diff --git a/chrome/browser/notifications/notification_permission_context_unittest.cc b/chrome/browser/notifications/notification_permission_context_unittest.cc
index 82b78f6..d8dbc48 100644
--- a/chrome/browser/notifications/notification_permission_context_unittest.cc
+++ b/chrome/browser/notifications/notification_permission_context_unittest.cc
@@ -361,7 +361,7 @@
   // tab is not visible, so these 500ms never add up to >= 1 second.
   for (int n = 0; n < 10; n++) {
     web_contents()->WasShown();
-    task_runner->FastForwardBy(base::TimeDelta::FromMilliseconds(500));
+    task_runner->FastForwardBy(base::Milliseconds(500));
     web_contents()->WasHidden();
   }
 
@@ -376,7 +376,7 @@
   // scheduled task, and when it fires Timer::RunScheduledTask will call
   // TimeTicks::Now() (which unlike task_runner->NowTicks(), we can't fake),
   // and miscalculate the remaining delay at which to fire the timer.
-  task_runner->FastForwardBy(base::TimeDelta::FromDays(1));
+  task_runner->FastForwardBy(base::Days(1));
 
   EXPECT_EQ(0, permission_context.permission_set_count());
   EXPECT_EQ(CONTENT_SETTING_ASK,
@@ -384,7 +384,7 @@
 
   // Should be blocked after 1-2 seconds. So 500ms is not enough.
   web_contents()->WasShown();
-  task_runner->FastForwardBy(base::TimeDelta::FromMilliseconds(500));
+  task_runner->FastForwardBy(base::Milliseconds(500));
 
   EXPECT_EQ(0, permission_context.permission_set_count());
   EXPECT_EQ(CONTENT_SETTING_ASK,
@@ -392,7 +392,7 @@
 
   // But 5*500ms > 2 seconds, so it should now be blocked.
   for (int n = 0; n < 4; n++)
-    task_runner->FastForwardBy(base::TimeDelta::FromMilliseconds(500));
+    task_runner->FastForwardBy(base::Milliseconds(500));
 
   EXPECT_EQ(1, permission_context.permission_set_count());
   EXPECT_TRUE(permission_context.last_permission_set_persisted());
@@ -438,7 +438,7 @@
   // Fast forward up to 2.5 seconds. Stop as soon as the first permission
   // request is auto-denied.
   for (int n = 0; n < 5; n++) {
-    task_runner->FastForwardBy(base::TimeDelta::FromMilliseconds(500));
+    task_runner->FastForwardBy(base::Milliseconds(500));
     if (permission_context.permission_set_count())
       break;
   }
@@ -453,7 +453,7 @@
 
   // After another 2.5 seconds, the second permission request should also have
   // received a response.
-  task_runner->FastForwardBy(base::TimeDelta::FromMilliseconds(2500));
+  task_runner->FastForwardBy(base::Milliseconds(2500));
   EXPECT_EQ(2, permission_context.permission_set_count());
   EXPECT_TRUE(permission_context.last_permission_set_persisted());
   EXPECT_EQ(CONTENT_SETTING_BLOCK,
diff --git a/chrome/browser/notifications/notification_platform_bridge_win.cc b/chrome/browser/notifications/notification_platform_bridge_win.cc
index 606e7e1..36606adc 100644
--- a/chrome/browser/notifications/notification_platform_bridge_win.cc
+++ b/chrome/browser/notifications/notification_platform_bridge_win.cc
@@ -860,8 +860,7 @@
 
   static winui::Notifications::IToastNotifier* notifier_for_testing_;
 
-  const base::TimeDelta kSynchronizationInterval =
-      base::TimeDelta::FromMinutes(10);
+  const base::TimeDelta kSynchronizationInterval = base::Minutes(10);
 
   // Windows does not fire a close event when the notification closes. To work
   // around this, NotificationPlatformBridgeWinImpl simulates the close event by
diff --git a/chrome/browser/notifications/notification_trigger_scheduler_unittest.cc b/chrome/browser/notifications/notification_trigger_scheduler_unittest.cc
index 2e1c79a..d804193 100644
--- a/chrome/browser/notifications/notification_trigger_scheduler_unittest.cc
+++ b/chrome/browser/notifications/notification_trigger_scheduler_unittest.cc
@@ -80,7 +80,7 @@
       data2.profile_->GetStoragePartitionForUrl(GURL("http://example.com"));
 
   auto now = base::Time::Now();
-  auto delta = base::TimeDelta::FromSeconds(3);
+  auto delta = base::Seconds(3);
   data1.service_->ScheduleTrigger(now + delta);
   data2.service_->ScheduleTrigger(now + delta);
   base::RunLoop().RunUntilIdle();
diff --git a/chrome/browser/notifications/platform_notification_service_unittest.cc b/chrome/browser/notifications/platform_notification_service_unittest.cc
index d35bac7..ae199f1a 100644
--- a/chrome/browser/notifications/platform_notification_service_unittest.cc
+++ b/chrome/browser/notifications/platform_notification_service_unittest.cc
@@ -286,9 +286,9 @@
   data.notification_data.require_interaction = false;
   data.num_clicks = 3;
   data.num_action_button_clicks = 1;
-  data.time_until_close_millis = base::TimeDelta::FromMilliseconds(10000);
-  data.time_until_first_click_millis = base::TimeDelta::FromMilliseconds(2222);
-  data.time_until_last_click_millis = base::TimeDelta::FromMilliseconds(3333);
+  data.time_until_close_millis = base::Milliseconds(10000);
+  data.time_until_first_click_millis = base::Milliseconds(2222);
+  data.time_until_last_click_millis = base::Milliseconds(3333);
 
   // Set up UKM recording conditions.
   ASSERT_TRUE(profile_.CreateHistoryService());
diff --git a/chrome/browser/notifications/scheduler/internal/background_task_coordinator.cc b/chrome/browser/notifications/scheduler/internal/background_task_coordinator.cc
index 81f0641..271309fe 100644
--- a/chrome/browser/notifications/scheduler/internal/background_task_coordinator.cc
+++ b/chrome/browser/notifications/scheduler/internal/background_task_coordinator.cc
@@ -157,8 +157,7 @@
     // TODO(xingliu): Remove SchedulerTaskTime.
     if (base::CommandLine::ForCurrentProcess()->HasSwitch(
             switches::kNotificationSchedulerImmediateBackgroundTask)) {
-      background_task_->Schedule(base::TimeDelta::FromSeconds(30),
-                                 base::TimeDelta::FromMinutes(1));
+      background_task_->Schedule(base::Seconds(30), base::Minutes(1));
       return;
     }
 
diff --git a/chrome/browser/notifications/scheduler/internal/background_task_coordinator_unittest.cc b/chrome/browser/notifications/scheduler/internal/background_task_coordinator_unittest.cc
index b25af6f2..2865d52 100644
--- a/chrome/browser/notifications/scheduler/internal/background_task_coordinator_unittest.cc
+++ b/chrome/browser/notifications/scheduler/internal/background_task_coordinator_unittest.cc
@@ -86,7 +86,7 @@
     // Setup configuration used by this test.
     config_.max_daily_shown_all_type = 3;
     config_.max_daily_shown_per_type = 2;
-    config_.suppression_duration = base::TimeDelta::FromDays(3);
+    config_.suppression_duration = base::Days(3);
 
     auto background_task =
         std::make_unique<test::MockNotificationBackgroundTaskScheduler>();
@@ -202,7 +202,7 @@
   test_data.impression_test_data = kSingleClientImpressionTestData;
   test_data.impression_test_data.front().current_max_daily_show = 1;
   Impression impression_today(SchedulerClientType::kTest1, "guid",
-                              clock()->Now() - base::TimeDelta::FromMinutes(5));
+                              clock()->Now() - base::Minutes(5));
   test_data.impression_test_data.front().impressions = {impression_today};
   test_data.notification_entries = {
       CreateNotification(SchedulerClientType::kTest1, kGuid,
@@ -235,8 +235,7 @@
       CreateNotification(SchedulerClientType::kTest1, kGuid,
                          kDeliverTimeWindowStart, kDeliverTimeWindowEnd)};
   test_data.impression_test_data.front().suppression_info =
-      SuppressionInfo(clock()->Now() - base::TimeDelta::FromHours(1),
-                      base::TimeDelta::FromDays(7));
+      SuppressionInfo(clock()->Now() - base::Hours(1), base::Days(7));
   EXPECT_CALL(*background_task(), Schedule(_, _)).Times(0);
   EXPECT_CALL(*background_task(), Cancel()).Times(0);
   ScheduleTask(test_data);
@@ -252,8 +251,7 @@
                          "04/26/1984 05:00:00 AM", "04/26/1984 23:59:00 PM")};
   // Suppression will expire at 04/26/1984 06:00:00 AM.
   test_data.impression_test_data.front().suppression_info =
-      SuppressionInfo(clock()->Now() - base::TimeDelta::FromDays(1),
-                      base::TimeDelta::FromDays(2));
+      SuppressionInfo(clock()->Now() - base::Days(1), base::Days(2));
   EXPECT_CALL(*background_task(),
               Schedule(GetTime("04/26/1984 06:00:00 AM") - GetTime(kNow), _));
   EXPECT_CALL(*background_task(), Cancel()).Times(0);
diff --git a/chrome/browser/notifications/scheduler/internal/display_decider_unittest.cc b/chrome/browser/notifications/scheduler/internal/display_decider_unittest.cc
index 3be2aba..f3195aef 100644
--- a/chrome/browser/notifications/scheduler/internal/display_decider_unittest.cc
+++ b/chrome/browser/notifications/scheduler/internal/display_decider_unittest.cc
@@ -125,8 +125,7 @@
   // window.
   NotificationEntry CreateNotification(SchedulerClientType type,
                                        const std::string& guid) {
-    return CreateNotification(type, guid, base::TimeDelta(),
-                              base::TimeDelta::FromHours(1));
+    return CreateNotification(type, guid, base::TimeDelta(), base::Hours(1));
   }
 
   // Creates a notification entry with specific deliver time window.
@@ -181,12 +180,10 @@
 // Notification falls out of the target deliver time window will not be picked.
 TEST_F(DisplayDeciderTest, OutOfDeliverTimeWindow) {
   auto entry0 = CreateNotification(SchedulerClientType::kTest2, "guid0",
-                                   base::TimeDelta::FromDays(1),
-                                   base::TimeDelta::FromDays(2));
-  auto entry1 =
-      CreateNotification(SchedulerClientType::kTest2, "guid1",
-                         base::TimeDelta() - base::TimeDelta::FromDays(2),
-                         base::TimeDelta() - base::TimeDelta::FromDays(1));
+                                   base::Days(1), base::Days(2));
+  auto entry1 = CreateNotification(SchedulerClientType::kTest2, "guid1",
+                                   base::TimeDelta() - base::Days(2),
+                                   base::TimeDelta() - base::Days(1));
   auto entry2 = CreateNotification(SchedulerClientType::kTest2, "guid2",
                                    absl::nullopt, absl::nullopt);
 
@@ -207,7 +204,7 @@
 
   // Create an impression shown today.
   Impression impression(SchedulerClientType::kTest1, "shown_guid1",
-                        Now() - base::TimeDelta::FromHours(1));
+                        Now() - base::Hours(1));
   impression_test_data.front().impressions.emplace_back(impression);
 
   auto entry2 = CreateNotification(SchedulerClientType::kTest2, "guid2");
@@ -226,7 +223,7 @@
   // Create an impression shown today, but only allow to show one per day for
   // all clients.
   Impression impression(SchedulerClientType::kTest1, "shown_guid1",
-                        Now() - base::TimeDelta::FromHours(1));
+                        Now() - base::Hours(1));
   impression_test_data.front().impressions.emplace_back(impression);
   config()->max_daily_shown_all_type = 1;
 
@@ -247,7 +244,7 @@
 
   // Create an impression shown today.
   Impression impression(SchedulerClientType::kTest1, "shown_guid1",
-                        Now() - base::TimeDelta::FromHours(1));
+                        Now() - base::Hours(1));
   impression_test_data.front().impressions.emplace_back(impression);
 
   TestData data{impression_test_data, {entry1, entry2}, {"guid2"}};
@@ -258,7 +255,7 @@
 TEST_F(DisplayDeciderTest, ThrottleSuppressedClient) {
   auto impression_test_data = kClientsImpressionTestData;
   impression_test_data.front().suppression_info =
-      SuppressionInfo(Now(), base::TimeDelta::FromDays(10));
+      SuppressionInfo(Now(), base::Days(10));
   auto entry1 = CreateNotification(SchedulerClientType::kTest1, "guid1");
 
   TestData data{impression_test_data, {entry1}, DisplayDecider::Results()};
diff --git a/chrome/browser/notifications/scheduler/internal/impression_history_tracker_unittest.cc b/chrome/browser/notifications/scheduler/internal/impression_history_tracker_unittest.cc
index e45515c..5216ad7 100644
--- a/chrome/browser/notifications/scheduler/internal/impression_history_tracker_unittest.cc
+++ b/chrome/browser/notifications/scheduler/internal/impression_history_tracker_unittest.cc
@@ -120,8 +120,8 @@
   ~ImpressionHistoryTrackerTest() override = default;
 
   void SetUp() override {
-    config_.impression_expiration = base::TimeDelta::FromDays(28);
-    config_.suppression_duration = base::TimeDelta::FromDays(56);
+    config_.impression_expiration = base::Days(28);
+    config_.suppression_duration = base::Days(56);
     config_.initial_daily_shown_per_type = 2;
   }
 
@@ -222,10 +222,10 @@
 // Verifies expired impression will be deleted.
 TEST_F(ImpressionHistoryTrackerTest, DeleteExpiredImpression) {
   TestCase test_case = CreateDefaultTestCase();
-  auto expired_create_time = clock()->Now() - base::TimeDelta::FromDays(1) -
-                             config().impression_expiration;
-  auto not_expired_time = clock()->Now() + base::TimeDelta::FromDays(1) -
-                          config().impression_expiration;
+  auto expired_create_time =
+      clock()->Now() - base::Days(1) - config().impression_expiration;
+  auto not_expired_time =
+      clock()->Now() + base::Days(1) - config().impression_expiration;
 
   Impression expired = CreateImpression(expired_create_time, "guid1");
   Impression not_expired = CreateImpression(not_expired_time, "guid2");
@@ -300,15 +300,12 @@
 
   // Construct 3 dismisses in a row, which will generate neutral impression
   // result.
-  auto dismiss_0 =
-      CreateImpression(clock()->Now() - base::TimeDelta::FromDays(1), "guid0",
-                       UserFeedback::kDismiss);
-  auto dismiss_1 =
-      CreateImpression(clock()->Now() - base::TimeDelta::FromMinutes(30),
-                       "guid1", UserFeedback::kDismiss);
-  auto dismiss_2 =
-      CreateImpression(clock()->Now() - base::TimeDelta::FromMinutes(15),
-                       "guid2", UserFeedback::kDismiss);
+  auto dismiss_0 = CreateImpression(clock()->Now() - base::Days(1), "guid0",
+                                    UserFeedback::kDismiss);
+  auto dismiss_1 = CreateImpression(clock()->Now() - base::Minutes(30), "guid1",
+                                    UserFeedback::kDismiss);
+  auto dismiss_2 = CreateImpression(clock()->Now() - base::Minutes(15), "guid2",
+                                    UserFeedback::kDismiss);
   test_case.input.front().impressions = {dismiss_0, dismiss_1, dismiss_2};
   test_case.expected.front().impressions = test_case.input.front().impressions;
   for (auto& impression : test_case.expected.front().impressions) {
@@ -345,19 +342,19 @@
                              ImpressionResult::kNegative);
   impression_mapping.emplace(UserFeedback::kIgnore,
                              ImpressionResult::kNegative);
-  base::TimeDelta ignore_timeout_duration = base::TimeDelta::FromHours(12);
+  base::TimeDelta ignore_timeout_duration = base::Hours(12);
 
   // Construct 3 dismisses or timeout-ignored impressions in a row, which will
   // generate negative impression result.
   auto dismiss_0 = CreateImpression(
-      clock()->Now() - base::TimeDelta::FromDays(1), "guid0",
-      UserFeedback::kNoFeedback, ignore_timeout_duration, impression_mapping);
+      clock()->Now() - base::Days(1), "guid0", UserFeedback::kNoFeedback,
+      ignore_timeout_duration, impression_mapping);
   auto dismiss_1 = CreateImpression(
-      clock()->Now() - base::TimeDelta::FromHours(16), "guid1",
-      UserFeedback::kNoFeedback, ignore_timeout_duration, impression_mapping);
+      clock()->Now() - base::Hours(16), "guid1", UserFeedback::kNoFeedback,
+      ignore_timeout_duration, impression_mapping);
   auto dismiss_2 = CreateImpression(
-      clock()->Now() - base::TimeDelta::FromMinutes(15), "guid2",
-      UserFeedback::kDismiss, ignore_timeout_duration, impression_mapping);
+      clock()->Now() - base::Minutes(15), "guid2", UserFeedback::kDismiss,
+      ignore_timeout_duration, impression_mapping);
   test_case.input.front().impressions = {dismiss_0, dismiss_1, dismiss_2};
   test_case.expected.front().impressions = test_case.input.front().impressions;
   for (auto& impression : test_case.expected.front().impressions) {
diff --git a/chrome/browser/notifications/scheduler/internal/proto_conversion.cc b/chrome/browser/notifications/scheduler/internal/proto_conversion.cc
index bc9c782..54b62dc 100644
--- a/chrome/browser/notifications/scheduler/internal/proto_conversion.cc
+++ b/chrome/browser/notifications/scheduler/internal/proto_conversion.cc
@@ -24,7 +24,7 @@
 // Helper method to convert serialized time delta as integer to base::TimeDelta
 // for deserialization. Loses precision beyond miliseconds.
 base::TimeDelta MillisecondsToTimeDelta(int64_t serialized_delat_ms) {
-  return base::TimeDelta::FromMilliseconds(serialized_delat_ms);
+  return base::Milliseconds(serialized_delat_ms);
 }
 
 // Helper method to convert base::Time to integer for serialization. Loses
@@ -37,7 +37,7 @@
 // deserialization. Loses precision beyond miliseconds.
 base::Time MillisecondsToTime(int64_t serialized_time_ms) {
   return base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMilliseconds(serialized_time_ms));
+      base::Milliseconds(serialized_time_ms));
 }
 
 // Converts SchedulerClientType to its associated enum in proto buffer.
diff --git a/chrome/browser/notifications/scheduler/internal/proto_conversion_unittest.cc b/chrome/browser/notifications/scheduler/internal/proto_conversion_unittest.cc
index 53b4d24..959b2555 100644
--- a/chrome/browser/notifications/scheduler/internal/proto_conversion_unittest.cc
+++ b/chrome/browser/notifications/scheduler/internal/proto_conversion_unittest.cc
@@ -100,14 +100,13 @@
   bool success =
       base::Time::FromString("04/25/20 01:00:00 AM", &last_trigger_time);
   DCHECK(success);
-  auto duration = base::TimeDelta::FromDays(7);
+  auto duration = base::Days(7);
   auto suppression = SuppressionInfo(last_trigger_time, duration);
   suppression.recover_goal = 5;
   client_state.suppression_info = std::move(suppression);
   client_state.last_shown_ts = last_trigger_time;
   client_state.negative_events_count = 1;
-  client_state.last_negative_event_ts =
-      last_trigger_time + base::TimeDelta::FromMinutes(1);
+  client_state.last_negative_event_ts = last_trigger_time + base::Minutes(1);
   TestClientStateConversion(&client_state);
 }
 
@@ -205,8 +204,8 @@
 
   entry.schedule_params.deliver_time_start = entry.create_time;
   entry.schedule_params.deliver_time_end =
-      entry.create_time + base::TimeDelta::FromMinutes(10);
-  entry.schedule_params.ignore_timeout_duration = base::TimeDelta::FromDays(3);
+      entry.create_time + base::Minutes(10);
+  entry.schedule_params.ignore_timeout_duration = base::Days(3);
   TestNotificationEntryConversion(&entry);
 }
 
diff --git a/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager_unittest.cc b/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager_unittest.cc
index acfa30e..57a19286 100644
--- a/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager_unittest.cc
+++ b/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager_unittest.cc
@@ -37,10 +37,8 @@
 
 NotificationEntry CreateNotificationEntry(SchedulerClientType type) {
   NotificationEntry entry(type, base::GenerateGUID());
-  entry.schedule_params.deliver_time_start =
-      base::Time::Now() + base::TimeDelta::FromDays(1);
-  entry.schedule_params.deliver_time_end =
-      base::Time::Now() + base::TimeDelta::FromDays(2);
+  entry.schedule_params.deliver_time_start = base::Time::Now() + base::Days(1);
+  entry.schedule_params.deliver_time_end = base::Time::Now() + base::Days(2);
   return entry;
 }
 
@@ -129,7 +127,7 @@
     auto icon_store = std::make_unique<MockIconStore>();
     notification_store_ = notification_store.get();
     icon_store_ = icon_store.get();
-    config_.notification_expiration = base::TimeDelta::FromDays(1);
+    config_.notification_expiration = base::Days(1);
     manager_ = ScheduledNotificationManager::Create(
         std::move(notification_store), std::move(icon_store),
         {SchedulerClientType::kTest1, SchedulerClientType::kTest2}, config_);
@@ -305,8 +303,7 @@
   auto params = std::make_unique<NotificationParams>(
       SchedulerClientType::kTest1, notification_data, schedule_params);
   params->schedule_params.deliver_time_start = base::Time::Now();
-  params->schedule_params.deliver_time_end =
-      base::Time::Now() + base::TimeDelta::FromDays(1);
+  params->schedule_params.deliver_time_end = base::Time::Now() + base::Days(1);
 
   params->enable_ihnr_buttons = true;
   std::string guid = params->guid;
@@ -373,8 +370,7 @@
   auto params = std::make_unique<NotificationParams>(
       SchedulerClientType::kTest1, notification_data, schedule_params);
   params->schedule_params.deliver_time_start = base::Time::Now();
-  params->schedule_params.deliver_time_end =
-      base::Time::Now() + base::TimeDelta::FromDays(1);
+  params->schedule_params.deliver_time_end = base::Time::Now() + base::Days(1);
   // Duplicate guid.
   params->guid = kGuid;
 
@@ -389,8 +385,7 @@
   auto params = std::make_unique<NotificationParams>(
       SchedulerClientType::kTest1, NotificationData(), ScheduleParams());
   params->schedule_params.deliver_time_start = base::Time::Now();
-  params->schedule_params.deliver_time_end =
-      base::Time::Now() + base::TimeDelta::FromDays(1);
+  params->schedule_params.deliver_time_end = base::Time::Now() + base::Days(1);
 
   // Verify call contract.
   EXPECT_CALL(*icon_store(), AddIcons(_, _))
@@ -461,9 +456,9 @@
   auto entry0 = CreateNotificationEntry(SchedulerClientType::kTest1);
   entry0.create_time = now;
   auto entry1 = CreateNotificationEntry(SchedulerClientType::kTest1);
-  entry1.create_time = now - base::TimeDelta::FromMinutes(1);
+  entry1.create_time = now - base::Minutes(1);
   auto entry2 = CreateNotificationEntry(SchedulerClientType::kTest1);
-  entry2.create_time = now + base::TimeDelta::FromMinutes(1);
+  entry2.create_time = now + base::Minutes(1);
 
   InitWithData(std::vector<NotificationEntry>({entry0, entry1, entry2}));
   ScheduledNotificationManager::Notifications notifications;
@@ -545,17 +540,15 @@
   // Type3: entry4(unregistered client)
   auto now = base::Time::Now();
   auto entry0 = CreateNotificationEntry(SchedulerClientType::kTest1);
-  entry0.create_time = now - base::TimeDelta::FromHours(12);
+  entry0.create_time = now - base::Hours(12);
   auto entry1 = CreateNotificationEntry(SchedulerClientType::kTest2);
-  entry1.create_time = now - base::TimeDelta::FromHours(14);
-  entry1.schedule_params.deliver_time_start =
-      base::Time::Now() - base::TimeDelta::FromDays(2);
-  entry1.schedule_params.deliver_time_end =
-      base::Time::Now() - base::TimeDelta::FromDays(1);
+  entry1.create_time = now - base::Hours(14);
+  entry1.schedule_params.deliver_time_start = base::Time::Now() - base::Days(2);
+  entry1.schedule_params.deliver_time_end = base::Time::Now() - base::Days(1);
   auto entry2 = CreateNotificationEntry(SchedulerClientType::kTest2);
-  entry2.create_time = now - base::TimeDelta::FromHours(24);
+  entry2.create_time = now - base::Hours(24);
   auto entry3 = CreateNotificationEntry(SchedulerClientType::kTest2);
-  entry3.create_time = now - base::TimeDelta::FromHours(23);
+  entry3.create_time = now - base::Hours(23);
   auto entry4 = CreateNotificationEntry(SchedulerClientType::kTest3);
 
   EXPECT_CALL(*notification_store(), Delete(_, _)).Times(3);
@@ -578,8 +571,7 @@
   auto params = std::make_unique<NotificationParams>(
       SchedulerClientType::kTest1, notification_data, schedule_params);
   params->schedule_params.deliver_time_start = base::Time::Now();
-  params->schedule_params.deliver_time_end =
-      base::Time::Now() + base::TimeDelta::FromDays(1);
+  params->schedule_params.deliver_time_end = base::Time::Now() + base::Days(1);
 
   std::string guid = params->guid;
   EXPECT_FALSE(guid.empty());
@@ -626,8 +618,7 @@
   auto params = std::make_unique<NotificationParams>(
       SchedulerClientType::kTest1, notification_data, schedule_params);
   params->schedule_params.deliver_time_start = base::Time::Now();
-  params->schedule_params.deliver_time_end =
-      base::Time::Now() + base::TimeDelta::FromDays(1);
+  params->schedule_params.deliver_time_end = base::Time::Now() + base::Days(1);
 
   // Verify call contract.
   EXPECT_CALL(*icon_store(), AddIcons(_, _))
@@ -660,8 +651,7 @@
   auto params = std::make_unique<NotificationParams>(
       SchedulerClientType::kTest1, notification_data, schedule_params);
   params->schedule_params.deliver_time_start = base::Time::Now();
-  params->schedule_params.deliver_time_end =
-      base::Time::Now() + base::TimeDelta::FromDays(1);
+  params->schedule_params.deliver_time_end = base::Time::Now() + base::Days(1);
 
   // Succeeded to add icons.
   EXPECT_CALL(*icon_store(), AddIcons(_, _))
diff --git a/chrome/browser/notifications/scheduler/internal/scheduler_config.cc b/chrome/browser/notifications/scheduler/internal/scheduler_config.cc
index e3bd1e3..1e3a6a0 100644
--- a/chrome/browser/notifications/scheduler/internal/scheduler_config.cc
+++ b/chrome/browser/notifications/scheduler/internal/scheduler_config.cc
@@ -37,25 +37,20 @@
 constexpr int kDefaultDismissCount = 3;
 
 // The notification data is hold for one week.
-constexpr base::TimeDelta kDefaultNotificationExpiration =
-    base::TimeDelta::FromDays(7);
+constexpr base::TimeDelta kDefaultNotificationExpiration = base::Days(7);
 
 // The impression history is hold for 4 weeks.
-constexpr base::TimeDelta kDefaultImpressionExpiration =
-    base::TimeDelta::FromDays(28);
+constexpr base::TimeDelta kDefaultImpressionExpiration = base::Days(28);
 
 // The suppression lasts 8 weeks.
-constexpr base::TimeDelta kDefaultSuppressionDuration =
-    base::TimeDelta::FromDays(56);
+constexpr base::TimeDelta kDefaultSuppressionDuration = base::Days(56);
 
 // Check consecutive notification dismisses in this duration to generate a
 // dismiss event.
-constexpr base::TimeDelta kDefaultDismissDuration =
-    base::TimeDelta::FromDays(7);
+constexpr base::TimeDelta kDefaultDismissDuration = base::Days(7);
 
 // Default background task time window duration.
-constexpr base::TimeDelta kDefaultBackgroundTaskWindowDuration =
-    base::TimeDelta::FromHours(1);
+constexpr base::TimeDelta kDefaultBackgroundTaskWindowDuration = base::Hours(1);
 
 // static
 std::unique_ptr<SchedulerConfig> SchedulerConfig::Create() {
@@ -73,23 +68,22 @@
   config->initial_daily_shown_per_type =
       base::saturated_cast<int>(GetFinchConfigUInt(
           kInitialDailyShownPerTypeConfig, kDefaultInitialDailyShownPerType));
-  config->notification_expiration =
-      base::TimeDelta::FromDays(base::saturated_cast<int>(
-          GetFinchConfigUInt(kNotificationExpirationConfig,
-                             kDefaultNotificationExpiration.InDays())));
+  config->notification_expiration = base::Days(base::saturated_cast<int>(
+      GetFinchConfigUInt(kNotificationExpirationConfig,
+                         kDefaultNotificationExpiration.InDays())));
   config->impression_expiration =
-      base::TimeDelta::FromDays(base::saturated_cast<int>(GetFinchConfigUInt(
+      base::Days(base::saturated_cast<int>(GetFinchConfigUInt(
           kImpressionExpirationConfig, kDefaultImpressionExpiration.InDays())));
   config->suppression_duration =
-      base::TimeDelta::FromDays(base::saturated_cast<int>(GetFinchConfigUInt(
+      base::Days(base::saturated_cast<int>(GetFinchConfigUInt(
           kSuppressionDurationConfig, kDefaultSuppressionDuration.InDays())));
   config->dismiss_count = base::saturated_cast<int>(
       GetFinchConfigUInt(kDismissCountConfig, kDefaultDismissCount));
   config->dismiss_duration =
-      base::TimeDelta::FromDays(base::saturated_cast<int>(GetFinchConfigUInt(
+      base::Days(base::saturated_cast<int>(GetFinchConfigUInt(
           kDismissDurationConfig, kDefaultDismissDuration.InDays())));
   config->background_task_window_duration =
-      base::TimeDelta::FromHours(base::saturated_cast<int>(
+      base::Hours(base::saturated_cast<int>(
           GetFinchConfigUInt(kBackgroundTaskWindowDurationConfig,
                              kDefaultBackgroundTaskWindowDuration.InHours())));
   return config;
diff --git a/chrome/browser/notifications/scheduler/internal/scheduler_utils_unittest.cc b/chrome/browser/notifications/scheduler/internal/scheduler_utils_unittest.cc
index 815b105..2ddfe07 100644
--- a/chrome/browser/notifications/scheduler/internal/scheduler_utils_unittest.cc
+++ b/chrome/browser/notifications/scheduler/internal/scheduler_utils_unittest.cc
@@ -106,25 +106,23 @@
   // client3  * |                      |                    | *
 
   std::vector<base::Time> create_times = {
-      now - base::TimeDelta::FromSeconds(2) /*today*/,
-      now - base::TimeDelta::FromSeconds(1) /*today*/,
-      beginning_of_today() - base::TimeDelta::FromSeconds(1) /*yesterday*/,
-      beginning_of_today() + base::TimeDelta::FromDays(1) /*tomorrow*/};
+      now - base::Seconds(2) /*today*/, now - base::Seconds(1) /*today*/,
+      beginning_of_today() - base::Seconds(1) /*yesterday*/,
+      beginning_of_today() + base::Days(1) /*tomorrow*/};
   auto new_client1 = CreateFakeClientStateWithImpression(
       SchedulerClientType::kTest1, config(), create_times);
 
-  create_times = {
-      now /*today*/,
-      beginning_of_today() + base::TimeDelta::FromDays(1) /*tomorrow*/,
-      beginning_of_today() - base::TimeDelta::FromSeconds(1) /*yesterday*/,
-      beginning_of_today() + base::TimeDelta::FromSeconds(1) /*today*/,
-      beginning_of_today() /*today*/};
+  create_times = {now /*today*/,
+                  beginning_of_today() + base::Days(1) /*tomorrow*/,
+                  beginning_of_today() - base::Seconds(1) /*yesterday*/,
+                  beginning_of_today() + base::Seconds(1) /*today*/,
+                  beginning_of_today() /*today*/};
   auto new_client2 = CreateFakeClientStateWithImpression(
       SchedulerClientType::kTest2, config(), create_times);
 
   create_times = {
-      beginning_of_today() - base::TimeDelta::FromSeconds(2), /*yesterday*/
-      beginning_of_today() + base::TimeDelta::FromDays(1)     /*tomorrow*/
+      beginning_of_today() - base::Seconds(2), /*yesterday*/
+      beginning_of_today() + base::Days(1)     /*tomorrow*/
   };
   auto new_client3 = CreateFakeClientStateWithImpression(
       SchedulerClientType::kTest3, config(), create_times);
@@ -156,10 +154,9 @@
 
   // Test case 2:
   std::vector<base::Time> create_times = {
-      now /*today*/,
-      beginning_of_today() + base::TimeDelta::FromDays(1) /*tomorrow*/,
-      beginning_of_today() - base::TimeDelta::FromSeconds(1) /*yesterday*/,
-      beginning_of_today() + base::TimeDelta::FromSeconds(1) /*today*/,
+      now /*today*/, beginning_of_today() + base::Days(1) /*tomorrow*/,
+      beginning_of_today() - base::Seconds(1) /*yesterday*/,
+      beginning_of_today() + base::Seconds(1) /*today*/,
       beginning_of_today() /*today*/};
 
   CreateFakeImpressions(new_client.get(), create_times);
@@ -168,18 +165,17 @@
 
   // Test case 3:
   create_times = {
-      beginning_of_today() - base::TimeDelta::FromSeconds(2), /*yesterday*/
-      beginning_of_today() + base::TimeDelta::FromDays(1),    /*tomorrow*/
+      beginning_of_today() - base::Seconds(2), /*yesterday*/
+      beginning_of_today() + base::Days(1),    /*tomorrow*/
   };
   CreateFakeImpressions(new_client.get(), create_times);
   count = NotificationsShownToday(new_client.get(), clock());
   EXPECT_EQ(count, 0);
 
   // Test case 4:
-  create_times = {
-      now /*today*/, now - base::TimeDelta::FromSeconds(1) /*today*/,
-      beginning_of_today() - base::TimeDelta::FromSeconds(1) /*yesterday*/,
-      beginning_of_today() + base::TimeDelta::FromDays(1) /*tomorrow*/};
+  create_times = {now /*today*/, now - base::Seconds(1) /*today*/,
+                  beginning_of_today() - base::Seconds(1) /*yesterday*/,
+                  beginning_of_today() + base::Days(1) /*tomorrow*/};
   CreateFakeImpressions(new_client.get(), create_times);
   count = NotificationsShownToday(new_client.get(), clock());
   EXPECT_EQ(count, 2);
diff --git a/chrome/browser/notifications/scheduler/notification_schedule_service_browsertest.cc b/chrome/browser/notifications/scheduler/notification_schedule_service_browsertest.cc
index 8c9630a..ccfd5b3 100644
--- a/chrome/browser/notifications/scheduler/notification_schedule_service_browsertest.cc
+++ b/chrome/browser/notifications/scheduler/notification_schedule_service_browsertest.cc
@@ -167,8 +167,7 @@
   void ScheduleNotification() {
     ScheduleParams schedule_params;
     schedule_params.deliver_time_start = base::Time::Now();
-    schedule_params.deliver_time_end =
-        base::Time::Now() + base::TimeDelta::FromMinutes(5);
+    schedule_params.deliver_time_end = base::Time::Now() + base::Minutes(5);
     NotificationData data;
     data.title = u"title";
     data.message = u"message";
diff --git a/chrome/browser/notifications/scheduler/public/schedule_service_utils.cc b/chrome/browser/notifications/scheduler/public/schedule_service_utils.cc
index da3259e0..33a56f3 100644
--- a/chrome/browser/notifications/scheduler/public/schedule_service_utils.cc
+++ b/chrome/browser/notifications/scheduler/public/schedule_service_utils.cc
@@ -8,7 +8,7 @@
 namespace {
 
 bool ValidateTimeWindow(const TimeDeltaPair& window) {
-  return (window.second - window.first < base::TimeDelta::FromHours(12) &&
+  return (window.second - window.first < base::Hours(12) &&
           window.second >= window.first);
 }
 
@@ -23,7 +23,7 @@
   DCHECK(out);
 
   // Gets the local time at |hour| in yesterday.
-  base::Time another_day = today + base::TimeDelta::FromDays(day_delta);
+  base::Time another_day = today + base::Days(day_delta);
   base::Time::Exploded another_day_exploded;
   another_day.LocalExplode(&another_day_exploded);
   another_day_exploded.hour = hour;
@@ -64,8 +64,8 @@
 
   // tomorrow morning window.
   *out = std::pair<base::Time, base::Time>(
-      beginning_of_today + base::TimeDelta::FromDays(1) + morning.first,
-      beginning_of_today + base::TimeDelta::FromDays(1) + morning.second);
+      beginning_of_today + base::Days(1) + morning.first,
+      beginning_of_today + base::Days(1) + morning.second);
   return true;
 }
 
diff --git a/chrome/browser/notifications/scheduler/public/schedule_service_utils_unittest.cc b/chrome/browser/notifications/scheduler/public/schedule_service_utils_unittest.cc
index 6f83edb5..5b400a6 100644
--- a/chrome/browser/notifications/scheduler/public/schedule_service_utils_unittest.cc
+++ b/chrome/browser/notifications/scheduler/public/schedule_service_utils_unittest.cc
@@ -35,10 +35,8 @@
 // verify next actual deliver time window calculation.
 TEST(NotificationScheduleServiceUtilsTest, NextTimeWindow) {
   // Build test cases.
-  TimeDeltaPair morning_window_input = {base::TimeDelta::FromHours(5),
-                                        base::TimeDelta::FromHours(7)};
-  TimeDeltaPair evening_window_input = {base::TimeDelta::FromHours(18),
-                                        base::TimeDelta::FromHours(20)};
+  TimeDeltaPair morning_window_input = {base::Hours(5), base::Hours(7)};
+  TimeDeltaPair evening_window_input = {base::Hours(18), base::Hours(20)};
 
   std::vector<TestCaseInput> test_cases = {
       {"03/24/19 04:05:55 AM", "03/24/19 05:00:00 AM", "03/24/19 07:00:00 AM"},
diff --git a/chrome/browser/notifications/screen_capture_notification_blocker_unittest.cc b/chrome/browser/notifications/screen_capture_notification_blocker_unittest.cc
index 8063f35..51c63b1 100644
--- a/chrome/browser/notifications/screen_capture_notification_blocker_unittest.cc
+++ b/chrome/browser/notifications/screen_capture_notification_blocker_unittest.cc
@@ -399,7 +399,7 @@
 
   blocker().OnBlockedNotification(notification, /*replaced*/ false);
 
-  auto action_delay = base::TimeDelta::FromSeconds(5);
+  auto action_delay = base::Seconds(5);
   task_environment_.FastForwardBy(action_delay);
   SimulateClose(/*by_user=*/true);
 
@@ -430,7 +430,7 @@
 
   blocker().OnBlockedNotification(notification, /*replaced*/ false);
 
-  auto action_delay = base::TimeDelta::FromSeconds(5);
+  auto action_delay = base::Seconds(5);
   task_environment_.FastForwardBy(action_delay);
   SimulateClick(/*action_index=*/absl::nullopt);
 
@@ -460,7 +460,7 @@
 
   blocker().OnBlockedNotification(notification, /*replaced*/ false);
 
-  auto action_delay = base::TimeDelta::FromSeconds(5);
+  auto action_delay = base::Seconds(5);
   task_environment_.FastForwardBy(action_delay);
   SimulateClick(0);
 
@@ -490,7 +490,7 @@
 
   blocker().OnBlockedNotification(notification, /*replaced*/ false);
 
-  auto action_delay = base::TimeDelta::FromSeconds(5);
+  auto action_delay = base::Seconds(5);
   task_environment_.FastForwardBy(action_delay);
   SimulateClick(GetParam() ? 1 : 0);
 
@@ -556,12 +556,12 @@
       CreateNotification(GURL("https://example2.com"));
   blocker().OnBlockedNotification(notification, /*replaced*/ false);
 
-  auto click_delay = base::TimeDelta::FromSeconds(3);
+  auto click_delay = base::Seconds(3);
   task_environment_.FastForwardBy(click_delay);
 
   SimulateClick(GetParam() ? 1 : 0);
 
-  auto session_delay = base::TimeDelta::FromSeconds(5);
+  auto session_delay = base::Seconds(5);
   task_environment_.FastForwardBy(session_delay);
 
   blocker().OnIsCapturingDisplayChanged(contents, false);
diff --git a/chrome/browser/notifications/screen_lock_notification_blocker.cc b/chrome/browser/notifications/screen_lock_notification_blocker.cc
index 7e9482c..24b7556 100644
--- a/chrome/browser/notifications/screen_lock_notification_blocker.cc
+++ b/chrome/browser/notifications/screen_lock_notification_blocker.cc
@@ -27,10 +27,8 @@
     NotifyBlockingStateChanged();
 
   if (is_locked_) {
-    timer_.Start(FROM_HERE,
-                 base::TimeDelta::FromSeconds(kUserStatePollingIntervalSeconds),
-                 this,
-                 &ScreenLockNotificationBlocker::CheckState);
+    timer_.Start(FROM_HERE, base::Seconds(kUserStatePollingIntervalSeconds),
+                 this, &ScreenLockNotificationBlocker::CheckState);
   }
 }
 
diff --git a/chrome/browser/offline_pages/android/evaluation/evaluation_test_scheduler.cc b/chrome/browser/offline_pages/android/evaluation/evaluation_test_scheduler.cc
index be2db03a..6fb0d4ef0 100644
--- a/chrome/browser/offline_pages/android/evaluation/evaluation_test_scheduler.cc
+++ b/chrome/browser/offline_pages/android/evaluation/evaluation_test_scheduler.cc
@@ -51,8 +51,7 @@
   if (net::NetworkChangeNotifier::GetConnectionType() ==
       net::NetworkChangeNotifier::ConnectionType::CONNECTION_NONE) {
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-        FROM_HERE, base::BindOnce(&StartProcessing),
-        base::TimeDelta::FromSeconds(2));
+        FROM_HERE, base::BindOnce(&StartProcessing), base::Seconds(2));
     return;
   }
   Profile* profile = ProfileManager::GetLastUsedProfile();
diff --git a/chrome/browser/offline_pages/offline_page_mhtml_archiver_unittest.cc b/chrome/browser/offline_pages/offline_page_mhtml_archiver_unittest.cc
index 1fe58f3d..75292cf 100644
--- a/chrome/browser/offline_pages/offline_page_mhtml_archiver_unittest.cc
+++ b/chrome/browser/offline_pages/offline_page_mhtml_archiver_unittest.cc
@@ -41,10 +41,8 @@
     "\x77\x1a\xfb\x32\x00\x51\x7e\x63\x7d\x3b\x2e\x46\x63\xf6",
     32);
 
-constexpr base::TimeDelta kTimeToSaveMhtml =
-    base::TimeDelta::FromMilliseconds(1000);
-constexpr base::TimeDelta kTimeToComputeDigest =
-    base::TimeDelta::FromMilliseconds(10);
+constexpr base::TimeDelta kTimeToSaveMhtml = base::Milliseconds(1000);
+constexpr base::TimeDelta kTimeToComputeDigest = base::Milliseconds(10);
 
 class TestMHTMLArchiver : public OfflinePageMHTMLArchiver {
  public:
diff --git a/chrome/browser/offline_pages/offline_page_utils.cc b/chrome/browser/offline_pages/offline_page_utils.cc
index 9eef3409..7d24da9 100644
--- a/chrome/browser/offline_pages/offline_page_utils.cc
+++ b/chrome/browser/offline_pages/offline_page_utils.cc
@@ -94,8 +94,7 @@
           UMA_HISTOGRAM_CUSTOM_COUNTS(
               "OfflinePages.DownloadRequestTimeSinceDuplicateRequested",
               (OfflineTimeNow() - latest_request_time).InSeconds(),
-              base::TimeDelta::FromSeconds(1).InSeconds(),
-              base::TimeDelta::FromDays(7).InSeconds(), 50);
+              base::Seconds(1).InSeconds(), base::Days(7).InSeconds(), 50);
 
           std::move(callback).Run(
               OfflinePageUtils::DuplicateCheckResult::DUPLICATE_REQUEST_FOUND);
@@ -285,8 +284,7 @@
       UMA_HISTOGRAM_CUSTOM_COUNTS(
           "OfflinePages.DownloadRequestTimeSinceDuplicateSaved",
           (OfflineTimeNow() - latest_saved_time).InSeconds(),
-          base::TimeDelta::FromSeconds(1).InSeconds(),
-          base::TimeDelta::FromDays(7).InSeconds(), 50);
+          base::Seconds(1).InSeconds(), base::Days(7).InSeconds(), 50);
 
       std::move(callback).Run(DuplicateCheckResult::DUPLICATE_PAGE_FOUND);
     }
diff --git a/chrome/browser/offline_pages/offline_page_utils_unittest.cc b/chrome/browser/offline_pages/offline_page_utils_unittest.cc
index ba0e45c0..19fb70f9 100644
--- a/chrome/browser/offline_pages/offline_page_utils_unittest.cc
+++ b/chrome/browser/offline_pages/offline_page_utils_unittest.cc
@@ -100,7 +100,7 @@
       if (min_request_count <= GetRequestCount()) {
         break;
       }
-      RunTasksForDuration(base::TimeDelta::FromMilliseconds(100));
+      RunTasksForDuration(base::Milliseconds(100));
     }
   }
 
@@ -285,31 +285,31 @@
 
   clock()->SetNow(base::Time::Now());
   // Time 01:00:00.
-  clock()->Advance(base::TimeDelta::FromHours(1));
+  clock()->Advance(base::Hours(1));
   std::unique_ptr<OfflinePageTestArchiver> archiver(BuildArchiver(
       kTestPage1Url, base::FilePath(FILE_PATH_LITERAL("page1.mhtml"))));
   client_id.id = kTestPage1ClientId;
   SavePage(kTestPage1Url, client_id, std::move(archiver));
   // time 02:00:00.
-  clock()->Advance(base::TimeDelta::FromHours(1));
+  clock()->Advance(base::Hours(1));
   archiver = BuildArchiver(kTestPage2Url,
                            base::FilePath(FILE_PATH_LITERAL("page2.mhtml")));
   client_id.id = kTestPage2ClientId;
   SavePage(kTestPage2Url, client_id, std::move(archiver));
   // time 03:00:00.
-  clock()->Advance(base::TimeDelta::FromHours(1));
+  clock()->Advance(base::Hours(1));
   archiver = BuildArchiver(kTestPage3Url,
                            base::FilePath(FILE_PATH_LITERAL("page3.mhtml")));
   client_id.id = kTestPage3ClientId;
   SavePage(kTestPage3Url, client_id, std::move(archiver));
   // Add a temporary page to test boundary at 10:00:00.
-  clock()->Advance(base::TimeDelta::FromHours(7));
+  clock()->Advance(base::Hours(7));
   archiver = BuildArchiver(kTestPage4Url,
                            base::FilePath(FILE_PATH_LITERAL("page4.mhtml")));
   client_id.id = kTestPage4ClientId;
   SavePage(kTestPage4Url, client_id, std::move(archiver));
   // Reset clock->to 03:00:00.
-  clock()->Advance(base::TimeDelta::FromHours(-7));
+  clock()->Advance(base::Hours(-7));
 }
 
 std::unique_ptr<OfflinePageTestArchiver> OfflinePageUtilsTest::BuildArchiver(
@@ -392,7 +392,7 @@
   // Here, we're waiting to make sure a request is not created. We can't use
   // QuitClosure, since there's no callback threaded through ScheduleDownload.
   // Instead, just wait a bit and assume ScheduleDownload is complete.
-  RunTasksForDuration(base::TimeDelta::FromSeconds(1));
+  RunTasksForDuration(base::Seconds(1));
 
   EXPECT_EQ(0, FindRequestByNamespaceAndURL(kDownloadNamespace, kTestPage4Url));
 }
@@ -403,13 +403,12 @@
   CreateCachedOfflinePages();
 
   // Advance the clock so that we don't hit the time check boundary.
-  clock()->Advance(base::TimeDelta::FromMinutes(5));
+  clock()->Advance(base::Minutes(5));
 
   // Get the size of cached offline pages between 01:05:00 and 03:05:00.
-  EXPECT_EQ(
-      kTestFileSize * 2,
-      GetCachedOfflinePageSizeBetween(
-          clock()->Now() - base::TimeDelta::FromHours(2), clock()->Now()));
+  EXPECT_EQ(kTestFileSize * 2,
+            GetCachedOfflinePageSizeBetween(clock()->Now() - base::Hours(2),
+                                            clock()->Now()));
 }
 
 TEST_F(OfflinePageUtilsTest, TestGetCachedOfflinePageSizeNoPageInModel) {
@@ -420,14 +419,13 @@
       FROM_HERE, TestTimeouts::action_max_timeout());
 #endif  // defined(OS_ANDROID)
 
-  clock()->Advance(base::TimeDelta::FromHours(3));
+  clock()->Advance(base::Hours(3));
 
   // Get the size of cached offline pages between 01:00:00 and 03:00:00.
   // Since no temporary pages were added to the model, the cache size should be
   // 0.
-  EXPECT_EQ(
-      0, GetCachedOfflinePageSizeBetween(
-             clock()->Now() - base::TimeDelta::FromHours(2), clock()->Now()));
+  EXPECT_EQ(0, GetCachedOfflinePageSizeBetween(clock()->Now() - base::Hours(2),
+                                               clock()->Now()));
 }
 
 TEST_F(OfflinePageUtilsTest, TestGetCachedOfflinePageSizeNoPageInRange) {
@@ -435,12 +433,11 @@
   CreateCachedOfflinePages();
 
   // Advance the clock so that we don't hit the time check boundary.
-  clock()->Advance(base::TimeDelta::FromMinutes(5));
+  clock()->Advance(base::Minutes(5));
 
   // Get the size of cached offline pages between 03:04:00 and 03:05:00.
-  EXPECT_EQ(
-      0, GetCachedOfflinePageSizeBetween(
-             clock()->Now() - base::TimeDelta::FromMinutes(1), clock()->Now()));
+  EXPECT_EQ(0, GetCachedOfflinePageSizeBetween(
+                   clock()->Now() - base::Minutes(1), clock()->Now()));
 }
 
 TEST_F(OfflinePageUtilsTest, TestGetCachedOfflinePageSizeAllPagesInRange) {
@@ -448,13 +445,12 @@
   CreateCachedOfflinePages();
 
   // Advance the clock to 23:00:00.
-  clock()->Advance(base::TimeDelta::FromHours(20));
+  clock()->Advance(base::Hours(20));
 
   // Get the size of cached offline pages between -01:00:00 and 23:00:00.
-  EXPECT_EQ(
-      kTestFileSize * 4,
-      GetCachedOfflinePageSizeBetween(
-          clock()->Now() - base::TimeDelta::FromHours(24), clock()->Now()));
+  EXPECT_EQ(kTestFileSize * 4,
+            GetCachedOfflinePageSizeBetween(clock()->Now() - base::Hours(24),
+                                            clock()->Now()));
 }
 
 TEST_F(OfflinePageUtilsTest, TestGetCachedOfflinePageSizeAllPagesInvalidRange) {
@@ -462,13 +458,13 @@
   CreateCachedOfflinePages();
 
   // Advance the clock to 23:00:00.
-  clock()->Advance(base::TimeDelta::FromHours(20));
+  clock()->Advance(base::Hours(20));
 
   // Get the size of cached offline pages between 23:00:00 and -01:00:00, which
   // is an invalid range, the return value will be false and there will be no
   // callback.
   EXPECT_FALSE(GetCachedOfflinePageSizeBetween(
-      clock()->Now(), clock()->Now() - base::TimeDelta::FromHours(24)));
+      clock()->Now(), clock()->Now() - base::Hours(24)));
 }
 
 TEST_F(OfflinePageUtilsTest, TestGetCachedOfflinePageSizeEdgeCase) {
@@ -478,10 +474,9 @@
   // Get the size of cached offline pages between 02:00:00 and 03:00:00, since
   // we are using a [begin_time, end_time) range so there will be only 1 page
   // when query for this time range.
-  EXPECT_EQ(
-      kTestFileSize * 1,
-      GetCachedOfflinePageSizeBetween(
-          clock()->Now() - base::TimeDelta::FromHours(1), clock()->Now()));
+  EXPECT_EQ(kTestFileSize * 1,
+            GetCachedOfflinePageSizeBetween(clock()->Now() - base::Hours(1),
+                                            clock()->Now()));
 }
 
 // Timeout on Android.  http://crbug.com/981972
diff --git a/chrome/browser/offline_pages/prefetch/offline_metrics_collector_impl_unittest.cc b/chrome/browser/offline_pages/prefetch/offline_metrics_collector_impl_unittest.cc
index e347cb28..f022a0b 100644
--- a/chrome/browser/offline_pages/prefetch/offline_metrics_collector_impl_unittest.cc
+++ b/chrome/browser/offline_pages/prefetch/offline_metrics_collector_impl_unittest.cc
@@ -276,7 +276,7 @@
   EXPECT_EQ(true, prefs().GetBoolean(prefs::kOfflineUsageOnlineObserved));
 
   // Move time ahead but still same day.
-  test_clock()->Advance(base::TimeDelta::FromHours(1));
+  test_clock()->Advance(base::Hours(1));
   collector()->OnSuccessfulNavigationOffline();
   // Timestamp shouldn't change.
   EXPECT_EQ(GetTimestampFromPrefs(), start);
@@ -300,7 +300,7 @@
   ExpectNotResilientOfflineUsageTotalCount(0);
 
   // Advance the clock to the next day
-  test_clock()->Advance(base::TimeDelta::FromHours(25));
+  test_clock()->Advance(base::Hours(25));
 
   collector()->OnAppStartupOrResume();
   // 1 day 'started' counter, another is being tracked as current day...
@@ -315,7 +315,7 @@
   ExpectNotResilientOfflineUsageTotalCount(1);
 
   // Skip the next 4 days within the virtual clock
-  test_clock()->Advance(base::TimeDelta::FromDays(4));
+  test_clock()->Advance(base::Days(4));
   collector()->OnSuccessfulNavigationOnline();
   // 2 days started, 3 days skipped ('unused').
   EXPECT_EQ(2, prefs().GetInteger(prefs::kOfflineUsageStartedCount));
@@ -350,21 +350,21 @@
   // Clock starts at epoch.LocalMidnight()
   collector()->OnPrefetchEnabled();
 
-  test_clock()->Advance(base::TimeDelta::FromDays(1));
+  test_clock()->Advance(base::Days(1));
   collector()->OnPrefetchEnabled();
 
-  test_clock()->Advance(base::TimeDelta::FromDays(1));
+  test_clock()->Advance(base::Days(1));
   collector()->OnSuccessfulPagePrefetch();
 
-  test_clock()->Advance(base::TimeDelta::FromDays(1));
+  test_clock()->Advance(base::Days(1));
   collector()->OnPrefetchedPageOpened();
 
-  test_clock()->Advance(base::TimeDelta::FromDays(1));
+  test_clock()->Advance(base::Days(1));
   collector()->OnPrefetchEnabled();
   collector()->OnSuccessfulPagePrefetch();
   collector()->OnPrefetchedPageOpened();
 
-  test_clock()->Advance(base::TimeDelta::FromDays(1));
+  test_clock()->Advance(base::Days(1));
   collector()->OnPrefetchEnabled();
 
   // Force collector to report stats and observe them reported correctly.
diff --git a/chrome/browser/offline_pages/prefetch/prefetch_background_task_handler_impl.cc b/chrome/browser/offline_pages/prefetch/prefetch_background_task_handler_impl.cc
index a662c27..50bde64 100644
--- a/chrome/browser/offline_pages/prefetch/prefetch_background_task_handler_impl.cc
+++ b/chrome/browser/offline_pages/prefetch/prefetch_background_task_handler_impl.cc
@@ -95,9 +95,8 @@
   current->Reset();
   // Set a custom delay to be a 1 day interval. After the day passes, the next
   // backoff value will be back to the initial 30s delay.
-  current->SetCustomReleaseTime(
-      tick_clock_->NowTicks() +
-      base::TimeDelta::FromDays(kDefaultSuspensionDays));
+  current->SetCustomReleaseTime(tick_clock_->NowTicks() +
+                                base::Days(kDefaultSuspensionDays));
   UpdateBackoff(current.get());
 }
 
diff --git a/chrome/browser/offline_pages/recent_tab_helper_unittest.cc b/chrome/browser/offline_pages/recent_tab_helper_unittest.cc
index cabc43c8..57a1cf71 100644
--- a/chrome/browser/offline_pages/recent_tab_helper_unittest.cc
+++ b/chrome/browser/offline_pages/recent_tab_helper_unittest.cc
@@ -273,7 +273,7 @@
 }
 
 void RecentTabHelperTest::FastForwardSnapshotController() {
-  constexpr base::TimeDelta kLongDelay = base::TimeDelta::FromSeconds(100);
+  constexpr base::TimeDelta kLongDelay = base::Seconds(100);
   (*mocked_main_runner_)->FastForwardBy(kLongDelay);
 }
 
diff --git a/chrome/browser/optimization_guide/android/optimization_guide_tab_url_provider_android_unittest.cc b/chrome/browser/optimization_guide/android/optimization_guide_tab_url_provider_android_unittest.cc
index 182a02f..823fe00 100644
--- a/chrome/browser/optimization_guide/android/optimization_guide_tab_url_provider_android_unittest.cc
+++ b/chrome/browser/optimization_guide/android/optimization_guide_tab_url_provider_android_unittest.cc
@@ -118,7 +118,7 @@
 TEST_F(OptimizationGuideTabUrlProviderAndroidTest,
        GetUrlsOfActiveTabsNoOpenTabs) {
   std::vector<GURL> urls =
-      tab_url_provider()->GetUrlsOfActiveTabs(base::TimeDelta::FromDays(90));
+      tab_url_provider()->GetUrlsOfActiveTabs(base::Days(90));
   EXPECT_TRUE(urls.empty());
 }
 
@@ -131,7 +131,7 @@
       content::WebContentsTester::For(web_contents.get());
   web_contents_tester->SetLastCommittedURL(GURL("https://example.com/a"));
   web_contents_tester->SetLastActiveTime(base::TimeTicks::Now() -
-                                         base::TimeDelta::FromDays(3));
+                                         base::Days(3));
   std::unique_ptr<content::WebContents> web_contents2 =
       content::WebContentsTester::CreateTestWebContents(
           browser_context(), content::SiteInstance::Create(browser_context()));
@@ -139,14 +139,14 @@
       content::WebContentsTester::For(web_contents2.get());
   web_contents_tester2->SetLastCommittedURL(GURL("https://example.com/b"));
   web_contents_tester2->SetLastActiveTime(base::TimeTicks::Now() -
-                                          base::TimeDelta::FromDays(2));
+                                          base::Days(2));
   std::unique_ptr<content::WebContents> stale_web_contents =
       content::WebContentsTester::CreateTestWebContents(
           browser_context(), content::SiteInstance::Create(browser_context()));
   content::WebContentsTester* stale_web_contents_tester =
       content::WebContentsTester::For(stale_web_contents.get());
   stale_web_contents_tester->SetLastActiveTime(base::TimeTicks::Now() -
-                                               base::TimeDelta::FromDays(100));
+                                               base::Days(100));
   stale_web_contents_tester->SetLastCommittedURL(GURL("https://stale.com"));
   FakeTabModel tab_model(profile(), {web_contents.get(), web_contents2.get(),
                                      stale_web_contents.get(), nullptr});
@@ -164,7 +164,7 @@
   TabModelList::AddTabModel(&otr_tab_model);
 
   std::vector<GURL> urls =
-      tab_url_provider()->GetUrlsOfActiveTabs(base::TimeDelta::FromDays(90));
+      tab_url_provider()->GetUrlsOfActiveTabs(base::Days(90));
   EXPECT_THAT(urls, ElementsAre(GURL("https://example.com/b"),
                                 GURL("https://example.com/a")));
 }
@@ -173,14 +173,14 @@
   std::vector<std::vector<FakeTab>> fake_tabs;
   fake_tabs.push_back({
       std::make_pair(GURL("https://example.com/third"),
-                     base::TimeTicks::Now() - base::TimeDelta::FromDays(3)),
+                     base::TimeTicks::Now() - base::Days(3)),
       std::make_pair(GURL("https://example.com/second"),
-                     base::TimeTicks::Now() - base::TimeDelta::FromDays(2)),
+                     base::TimeTicks::Now() - base::Days(2)),
       std::make_pair(GURL("https://example.com/0-2"), absl::nullopt),
   });
   fake_tabs.push_back({
       std::make_pair(GURL("https://example.com/first"),
-                     base::TimeTicks::Now() - base::TimeDelta::FromDays(1)),
+                     base::TimeTicks::Now() - base::Days(1)),
       std::make_pair(GURL("https://example.com/1-1"), absl::nullopt),
   });
 
diff --git a/chrome/browser/optimization_guide/optimization_guide_tab_url_provider_unittest.cc b/chrome/browser/optimization_guide/optimization_guide_tab_url_provider_unittest.cc
index ccddf44f..99a932ec 100644
--- a/chrome/browser/optimization_guide/optimization_guide_tab_url_provider_unittest.cc
+++ b/chrome/browser/optimization_guide/optimization_guide_tab_url_provider_unittest.cc
@@ -47,7 +47,7 @@
 
 TEST_F(OptimizationGuideTabUrlProviderTest, GetUrlsNoOpenTabs) {
   std::vector<GURL> urls =
-      tab_url_provider()->GetUrlsOfActiveTabs(base::TimeDelta::FromDays(90));
+      tab_url_provider()->GetUrlsOfActiveTabs(base::Days(90));
   EXPECT_TRUE(urls.empty());
 }
 
@@ -57,7 +57,7 @@
   AddTab(browser(), GURL("https://example2.com"));
 
   std::vector<GURL> urls =
-      tab_url_provider()->GetUrlsOfActiveTabs(base::TimeDelta::FromDays(90));
+      tab_url_provider()->GetUrlsOfActiveTabs(base::Days(90));
   EXPECT_THAT(urls, ElementsAre(GURL("https://example2.com"),
                                 GURL("https://example.com")));
 }
diff --git a/chrome/browser/optimization_guide/page_text_observer_browsertest.cc b/chrome/browser/optimization_guide/page_text_observer_browsertest.cc
index 533303e..0f5f8e8 100644
--- a/chrome/browser/optimization_guide/page_text_observer_browsertest.cc
+++ b/chrome/browser/optimization_guide/page_text_observer_browsertest.cc
@@ -147,7 +147,7 @@
     if (request.GetURL().path() == "/slow-first-layout.js") {
       std::unique_ptr<net::test_server::DelayedHttpResponse> resp =
           std::make_unique<net::test_server::DelayedHttpResponse>(
-              base::TimeDelta::FromMilliseconds(500));
+              base::Milliseconds(500));
       resp->set_code(net::HTTP_OK);
       resp->set_content_type("application/javascript");
       resp->set_content(std::string());
@@ -160,7 +160,7 @@
     if (request.GetURL().path() == "/slow-add-world-text.js") {
       std::unique_ptr<net::test_server::DelayedHttpResponse> resp =
           std::make_unique<net::test_server::DelayedHttpResponse>(
-              base::TimeDelta::FromMilliseconds(500));
+              base::Milliseconds(500));
       resp->set_code(net::HTTP_OK);
       resp->set_content_type("application/javascript");
       resp->set_content(
diff --git a/chrome/browser/optimization_guide/prediction/prediction_manager.cc b/chrome/browser/optimization_guide/prediction/prediction_manager.cc
index 123bf4a0..7a2eb13 100644
--- a/chrome/browser/optimization_guide/prediction/prediction_manager.cc
+++ b/chrome/browser/optimization_guide/prediction/prediction_manager.cc
@@ -54,7 +54,7 @@
 // Provide a random time delta in seconds before fetching models and host model
 // features.
 base::TimeDelta RandomFetchDelay() {
-  return base::TimeDelta::FromSeconds(base::RandInt(
+  return base::Seconds(base::RandInt(
       optimization_guide::features::PredictionModelFetchRandomMinDelaySecs(),
       optimization_guide::features::PredictionModelFetchRandomMaxDelaySecs()));
 }
@@ -1080,7 +1080,7 @@
     return;
 
   if (switches::ShouldOverrideFetchModelsAndFeaturesTimer()) {
-    fetch_timer_.Start(FROM_HERE, base::TimeDelta::FromSeconds(1), this,
+    fetch_timer_.Start(FROM_HERE, base::Seconds(1), this,
                        &PredictionManager::FetchModels);
   } else {
     ScheduleModelsFetch();
@@ -1089,16 +1089,14 @@
 
 base::Time PredictionManager::GetLastFetchAttemptTime() const {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  return base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(
-          pref_service_->GetInt64(prefs::kModelAndFeaturesLastFetchAttempt)));
+  return base::Time::FromDeltaSinceWindowsEpoch(base::Microseconds(
+      pref_service_->GetInt64(prefs::kModelAndFeaturesLastFetchAttempt)));
 }
 
 base::Time PredictionManager::GetLastFetchSuccessTime() const {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  return base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(
-          pref_service_->GetInt64(prefs::kModelLastFetchSuccess)));
+  return base::Time::FromDeltaSinceWindowsEpoch(base::Microseconds(
+      pref_service_->GetInt64(prefs::kModelLastFetchSuccess)));
 }
 
 void PredictionManager::ScheduleModelsFetch() {
diff --git a/chrome/browser/optimization_guide/prediction/prediction_manager_browsertest.cc b/chrome/browser/optimization_guide/prediction/prediction_manager_browsertest.cc
index 18eda83..46fbc84 100644
--- a/chrome/browser/optimization_guide/prediction/prediction_manager_browsertest.cc
+++ b/chrome/browser/optimization_guide/prediction/prediction_manager_browsertest.cc
@@ -561,8 +561,8 @@
     // Wait until the observer receives the file. We increase the timeout to 60
     // seconds here since the file is on the larger side.
     {
-      base::test::ScopedRunLoopTimeout file_download_timeout(
-          FROM_HERE, base::TimeDelta::FromSeconds(60));
+      base::test::ScopedRunLoopTimeout file_download_timeout(FROM_HERE,
+                                                             base::Seconds(60));
       run_loop->Run();
     }
 
@@ -678,8 +678,8 @@
   // Wait until the observer receives the file. We increase the timeout to 60
   // seconds here since the file is on the larger side.
   {
-    base::test::ScopedRunLoopTimeout file_download_timeout(
-        FROM_HERE, base::TimeDelta::FromSeconds(60));
+    base::test::ScopedRunLoopTimeout file_download_timeout(FROM_HERE,
+                                                           base::Seconds(60));
     run_loop->Run();
   }
 
@@ -724,8 +724,8 @@
   // Wait until the observer receives the file. We increase the timeout to 60
   // seconds here since the file is on the larger side.
   {
-    base::test::ScopedRunLoopTimeout file_download_timeout(
-        FROM_HERE, base::TimeDelta::FromSeconds(60));
+    base::test::ScopedRunLoopTimeout file_download_timeout(FROM_HERE,
+                                                           base::Seconds(60));
     run_loop->Run();
   }
 
diff --git a/chrome/browser/optimization_guide/prediction/prediction_manager_unittest.cc b/chrome/browser/optimization_guide/prediction/prediction_manager_unittest.cc
index 357c09d..51d0bc4 100644
--- a/chrome/browser/optimization_guide/prediction/prediction_manager_unittest.cc
+++ b/chrome/browser/optimization_guide/prediction/prediction_manager_unittest.cc
@@ -566,7 +566,7 @@
         load_models, load_host_model_features, have_models_in_store);
     RunUntilIdle();
     // Move clock forward for any short delays added for the fetcher.
-    MoveClockForwardBy(base::TimeDelta::FromSeconds(2));
+    MoveClockForwardBy(base::Seconds(2));
   }
 
   void MoveClockForwardBy(base::TimeDelta time_delta) {
@@ -778,8 +778,7 @@
     prediction_model_fetcher()->SetCheckExpectedVersion();
     prediction_model_fetcher()->SetExpectedVersionForOptimizationTarget(
         proto::OPTIMIZATION_TARGET_PAINFUL_PAGE_LOAD, 1);
-    MoveClockForwardBy(
-        base::TimeDelta::FromSeconds(kUpdateFetchModelAndFeaturesTimeSecs));
+    MoveClockForwardBy(base::Seconds(kUpdateFetchModelAndFeaturesTimeSecs));
     EXPECT_TRUE(prediction_model_fetcher()->models_fetched());
     histogram_tester2.ExpectTotalCount(
         "OptimizationGuide.PredictionModelUpdateVersion.PainfulPageLoad", 0);
@@ -1485,14 +1484,14 @@
   SetStoreInitialized();
   EXPECT_FALSE(prediction_model_fetcher()->models_fetched());
 
-  MoveClockForwardBy(base::TimeDelta::FromSeconds(kTestFetchRetryDelaySecs));
+  MoveClockForwardBy(base::Seconds(kTestFetchRetryDelaySecs));
   EXPECT_FALSE(prediction_model_fetcher()->models_fetched());
 
   prediction_manager()->SetPredictionModelFetcherForTesting(
       BuildTestPredictionModelFetcher(
           PredictionModelFetcherEndState::kFetchSuccessWithModels));
 
-  MoveClockForwardBy(base::TimeDelta::FromSeconds(kTestFetchRetryDelaySecs));
+  MoveClockForwardBy(base::Seconds(kTestFetchRetryDelaySecs));
   EXPECT_TRUE(prediction_model_fetcher()->models_fetched());
 }
 
@@ -1512,7 +1511,7 @@
 
   SetStoreInitialized();
   EXPECT_FALSE(prediction_model_fetcher()->models_fetched());
-  MoveClockForwardBy(base::TimeDelta::FromSeconds(kTestFetchRetryDelaySecs));
+  MoveClockForwardBy(base::Seconds(kTestFetchRetryDelaySecs));
   EXPECT_TRUE(prediction_model_fetcher()->models_fetched());
   EXPECT_EQ("en-US", prediction_model_fetcher()->locale_requested());
 
@@ -1520,10 +1519,9 @@
   prediction_manager()->SetPredictionModelFetcherForTesting(
       BuildTestPredictionModelFetcher(
           PredictionModelFetcherEndState::kFetchSuccessWithModels));
-  MoveClockForwardBy(base::TimeDelta::FromSeconds(kTestFetchRetryDelaySecs));
+  MoveClockForwardBy(base::Seconds(kTestFetchRetryDelaySecs));
   EXPECT_FALSE(prediction_model_fetcher()->models_fetched());
-  MoveClockForwardBy(
-      base::TimeDelta::FromSeconds(kUpdateFetchModelAndFeaturesTimeSecs));
+  MoveClockForwardBy(base::Seconds(kUpdateFetchModelAndFeaturesTimeSecs));
   EXPECT_TRUE(prediction_model_fetcher()->models_fetched());
 }
 
diff --git a/chrome/browser/page_load_metrics/integration_tests/event_counts_browsertest.cc b/chrome/browser/page_load_metrics/integration_tests/event_counts_browsertest.cc
index dc1d2d4e..9fa7b71 100644
--- a/chrome/browser/page_load_metrics/integration_tests/event_counts_browsertest.cc
+++ b/chrome/browser/page_load_metrics/integration_tests/event_counts_browsertest.cc
@@ -27,7 +27,7 @@
   content::SimulateMouseClick(web_contents(), 0,
                               blink::WebMouseEvent::Button::kLeft);
 
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(3000));
+  base::PlatformThread::Sleep(base::Milliseconds(3000));
 
   // Check event counts.
   int expected_pointerdown =
diff --git a/chrome/browser/page_load_metrics/observers/aborts_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/aborts_page_load_metrics_observer_unittest.cc
index ded436f..0ef2f3c7 100644
--- a/chrome/browser/page_load_metrics/observers/aborts_page_load_metrics_observer_unittest.cc
+++ b/chrome/browser/page_load_metrics/observers/aborts_page_load_metrics_observer_unittest.cc
@@ -273,7 +273,7 @@
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
-  timing.paint_timing->first_paint = base::TimeDelta::FromMicroseconds(1);
+  timing.paint_timing->first_paint = base::Microseconds(1);
   PopulateRequiredTimingFields(&timing);
   NavigateAndCommit(GURL("https://www.google.com"));
   tester()->SimulateTimingUpdate(timing);
diff --git a/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer_browsertest.cc b/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer_browsertest.cc
index f3f6d1e..9892d93 100644
--- a/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer_browsertest.cc
+++ b/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer_browsertest.cc
@@ -2088,8 +2088,7 @@
   base::TimeTicks start_time = base::TimeTicks::Now();
   ASSERT_TRUE(ui_test_utils::NavigateToURL(
       browser(), embedded_test_server()->GetURL("/iframe_blank.html")));
-  waiter->AddMinimumAggregateCpuTimeExpectation(
-      base::TimeDelta::FromMilliseconds(300));
+  waiter->AddMinimumAggregateCpuTimeExpectation(base::Milliseconds(300));
 
   // Navigate the iframe to a page with a delayed rAF, waiting for it to
   // complete. Long enough to guarantee the frame client sees a cpu time
@@ -2169,8 +2168,7 @@
   // Navigate to the page and set up the waiter.
   ASSERT_TRUE(ui_test_utils::NavigateToURL(
       browser(), embedded_test_server()->GetURL("/iframe_blank.html")));
-  waiter->AddMinimumAggregateCpuTimeExpectation(
-      base::TimeDelta::FromMilliseconds(100));
+  waiter->AddMinimumAggregateCpuTimeExpectation(base::Milliseconds(100));
 
   // Navigate twice to a page delaying 50ms.  The first and second navigations
   // by themselves aren't enough to trigger a cpu update, but when combined an
@@ -2205,8 +2203,7 @@
   ASSERT_TRUE(ui_test_utils::NavigateToURL(
       browser(), embedded_test_server()->GetURL("/iframe_blank.html")));
 
-  waiter->AddMinimumAggregateCpuTimeExpectation(
-      base::TimeDelta::FromMilliseconds(300));
+  waiter->AddMinimumAggregateCpuTimeExpectation(base::Milliseconds(300));
 
   // Navigate twice to a page with enough cumulative time to measure
   // at least 1% peak windowed percent (300ms), either individually leads to 0
@@ -2368,7 +2365,7 @@
   std::unique_ptr<performance_manager::v8_memory::V8DetailedMemoryRequestAnySeq>
       memory_request = std::make_unique<
           performance_manager::v8_memory::V8DetailedMemoryRequestAnySeq>(
-          base::TimeDelta::FromSeconds(1),
+          base::Seconds(1),
           performance_manager::v8_memory::V8DetailedMemoryRequest::
               MeasurementMode::kEagerForTesting);
   auto memory_observer = std::make_unique<DummyMemoryObserver>();
diff --git a/chrome/browser/page_load_metrics/observers/android_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/android_page_load_metrics_observer_unittest.cc
index ad524286..a1105d6 100644
--- a/chrome/browser/page_load_metrics/observers/android_page_load_metrics_observer_unittest.cc
+++ b/chrome/browser/page_load_metrics/observers/android_page_load_metrics_observer_unittest.cc
@@ -133,10 +133,10 @@
         .WillRepeatedly(Return(net::EFFECTIVE_CONNECTION_TYPE_3G));
     EXPECT_CALL(mock_network_quality_tracker(), GetHttpRTT())
         .Times(AnyNumber())
-        .WillRepeatedly(Return(base::TimeDelta::FromMilliseconds(3)));
+        .WillRepeatedly(Return(base::Milliseconds(3)));
     EXPECT_CALL(mock_network_quality_tracker(), GetTransportRTT())
         .Times(AnyNumber())
-        .WillRepeatedly(Return(base::TimeDelta::FromMilliseconds(4)));
+        .WillRepeatedly(Return(base::Milliseconds(4)));
   }
 
   MockNetworkQualityTracker& mock_network_quality_tracker() {
@@ -213,11 +213,9 @@
   // Note this navigation start does not effect the start that is reported to
   // us.
   timing.navigation_start = base::Time::FromDoubleT(1);
-  timing.document_timing->load_event_start =
-      base::TimeDelta::FromMilliseconds(30);
-  timing.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(20);
-  timing.paint_timing->first_contentful_paint =
-      base::TimeDelta::FromMilliseconds(20);
+  timing.document_timing->load_event_start = base::Milliseconds(30);
+  timing.parse_timing->parse_start = base::Milliseconds(20);
+  timing.paint_timing->first_contentful_paint = base::Milliseconds(20);
   PopulateRequiredTimingFields(&timing);
   NavigateAndCommit(GURL("https://www.example.com"));
   tester()->SimulateTimingUpdate(timing);
diff --git a/chrome/browser/page_load_metrics/observers/core/amp_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/core/amp_page_load_metrics_observer.cc
index 5eb7fa7a..d52605d 100644
--- a/chrome/browser/page_load_metrics/observers/core/amp_page_load_metrics_observer.cc
+++ b/chrome/browser/page_load_metrics/observers/core/amp_page_load_metrics_observer.cc
@@ -448,15 +448,13 @@
             std::string(kHistogramPrefix)
                 .append(kHistogramAMPSubframeFirstInputDelay),
             subframe_info.timing->interactive_timing->first_input_delay.value(),
-            base::TimeDelta::FromMilliseconds(1),
-            base::TimeDelta::FromSeconds(60), 50);
+            base::Milliseconds(1), base::Seconds(60), 50);
       } else {
         UMA_HISTOGRAM_CUSTOM_TIMES(
             std::string(kHistogramPrefix)
                 .append(kHistogramAMPSubframeFirstInputDelayFullNavigation),
             subframe_info.timing->interactive_timing->first_input_delay.value(),
-            base::TimeDelta::FromMilliseconds(1),
-            base::TimeDelta::FromSeconds(60), 50);
+            base::Milliseconds(1), base::Seconds(60), 50);
       }
     }
   }
diff --git a/chrome/browser/page_load_metrics/observers/core/amp_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/core/amp_page_load_metrics_observer_unittest.cc
index af3b5cb..576a242 100644
--- a/chrome/browser/page_load_metrics/observers/core/amp_page_load_metrics_observer_unittest.cc
+++ b/chrome/browser/page_load_metrics/observers/core/amp_page_load_metrics_observer_unittest.cc
@@ -44,12 +44,11 @@
     page_load_metrics::InitPageLoadTimingForTest(&timing_);
     // Reset to the default testing state. Does not reset histogram state.
     timing_.navigation_start = base::Time::FromDoubleT(1);
-    timing_.response_start = base::TimeDelta::FromSeconds(2);
-    timing_.parse_timing->parse_start = base::TimeDelta::FromSeconds(3);
-    timing_.paint_timing->first_contentful_paint =
-        base::TimeDelta::FromSeconds(4);
-    timing_.paint_timing->first_image_paint = base::TimeDelta::FromSeconds(5);
-    timing_.document_timing->load_event_start = base::TimeDelta::FromSeconds(7);
+    timing_.response_start = base::Seconds(2);
+    timing_.parse_timing->parse_start = base::Seconds(3);
+    timing_.paint_timing->first_contentful_paint = base::Seconds(4);
+    timing_.paint_timing->first_image_paint = base::Seconds(5);
+    timing_.document_timing->load_event_start = base::Seconds(7);
     PopulateRequiredTimingFields(&timing_);
   }
 
@@ -331,22 +330,19 @@
   page_load_metrics::mojom::PageLoadTiming subframe_timing;
   page_load_metrics::InitPageLoadTimingForTest(&subframe_timing);
   subframe_timing.navigation_start = base::Time::FromDoubleT(2);
-  subframe_timing.paint_timing->first_paint =
-      base::TimeDelta::FromMilliseconds(4);
-  subframe_timing.paint_timing->first_contentful_paint =
-      base::TimeDelta::FromMilliseconds(5);
+  subframe_timing.paint_timing->first_paint = base::Milliseconds(4);
+  subframe_timing.paint_timing->first_contentful_paint = base::Milliseconds(5);
   subframe_timing.paint_timing->largest_contentful_paint
       ->largest_image_paint_size = 1;
   subframe_timing.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(10);
+      base::Milliseconds(10);
   subframe_timing.paint_timing->experimental_largest_contentful_paint
       ->largest_text_paint_size = 3;
   subframe_timing.paint_timing->experimental_largest_contentful_paint
-      ->largest_text_paint = base::TimeDelta::FromMilliseconds(8);
+      ->largest_text_paint = base::Milliseconds(8);
   subframe_timing.interactive_timing->first_input_timestamp =
-      base::TimeDelta::FromMilliseconds(20);
-  subframe_timing.interactive_timing->first_input_delay =
-      base::TimeDelta::FromMilliseconds(3);
+      base::Milliseconds(20);
+  subframe_timing.interactive_timing->first_input_delay = base::Milliseconds(3);
   PopulateRequiredTimingFields(&subframe_timing);
 
   tester()->SimulateTimingUpdate(subframe_timing, subframe);
@@ -462,19 +458,19 @@
 
   render_data.new_layout_shifts.emplace_back(
       page_load_metrics::mojom::LayoutShift::New(
-          current_time - base::TimeDelta::FromMilliseconds(4000), 0.1));
+          current_time - base::Milliseconds(4000), 0.1));
   render_data.new_layout_shifts.emplace_back(
       page_load_metrics::mojom::LayoutShift::New(
-          current_time - base::TimeDelta::FromMilliseconds(3000), 0.1));
+          current_time - base::Milliseconds(3000), 0.1));
   render_data.new_layout_shifts.emplace_back(
       page_load_metrics::mojom::LayoutShift::New(
-          current_time - base::TimeDelta::FromMilliseconds(2000), 0.2));
+          current_time - base::Milliseconds(2000), 0.2));
   render_data.new_layout_shifts.emplace_back(
       page_load_metrics::mojom::LayoutShift::New(
-          current_time - base::TimeDelta::FromMilliseconds(200), 0.1));
+          current_time - base::Milliseconds(200), 0.1));
   render_data.new_layout_shifts.emplace_back(
       page_load_metrics::mojom::LayoutShift::New(
-          current_time - base::TimeDelta::FromMilliseconds(100), 0.15));
+          current_time - base::Milliseconds(100), 0.15));
 
   tester()->SimulateRenderDataUpdate(render_data, subframe);
 
@@ -524,20 +520,18 @@
   page_load_metrics::mojom::PageLoadTiming subframe_timing;
   page_load_metrics::InitPageLoadTimingForTest(&subframe_timing);
   subframe_timing.navigation_start = base::Time::FromDoubleT(2);
-  subframe_timing.paint_timing->first_contentful_paint =
-      base::TimeDelta::FromMilliseconds(5);
+  subframe_timing.paint_timing->first_contentful_paint = base::Milliseconds(5);
   subframe_timing.paint_timing->largest_contentful_paint
       ->largest_image_paint_size = 1;
   subframe_timing.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(10);
+      base::Milliseconds(10);
   subframe_timing.paint_timing->experimental_largest_contentful_paint
       ->largest_image_paint_size = 1;
   subframe_timing.paint_timing->experimental_largest_contentful_paint
-      ->largest_image_paint = base::TimeDelta::FromMilliseconds(5);
+      ->largest_image_paint = base::Milliseconds(5);
   subframe_timing.interactive_timing->first_input_timestamp =
-      base::TimeDelta::FromMilliseconds(20);
-  subframe_timing.interactive_timing->first_input_delay =
-      base::TimeDelta::FromMilliseconds(3);
+      base::Milliseconds(20);
+  subframe_timing.interactive_timing->first_input_delay = base::Milliseconds(3);
   PopulateRequiredTimingFields(&subframe_timing);
 
   tester()->SimulateTimingUpdate(subframe_timing, subframe);
diff --git a/chrome/browser/page_load_metrics/observers/core/ukm_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/core/ukm_page_load_metrics_observer.cc
index 58f72763..c5ec851 100644
--- a/chrome/browser/page_load_metrics/observers/core/ukm_page_load_metrics_observer.cc
+++ b/chrome/browser/page_load_metrics/observers/core/ukm_page_load_metrics_observer.cc
@@ -1094,8 +1094,7 @@
 
   UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
       "Graphics.Smoothness.Diagnostic.ReadSharedMemoryDuration",
-      timer.Elapsed(), base::TimeDelta::FromMicroseconds(1),
-      base::TimeDelta::FromMilliseconds(5), 100);
+      timer.Elapsed(), base::Microseconds(1), base::Milliseconds(5), 100);
   UMA_HISTOGRAM_BOOLEAN(
       "Graphics.Smoothness.Diagnostic.ReadSharedMemoryUKMSuccess", success);
 
@@ -1136,8 +1135,8 @@
       smoothness_data.worst_smoothness);
   base::UmaHistogramCustomTimes(
       "Graphics.Smoothness.PerSession.TimeMaxPercentDroppedFrames_1sWindow",
-      smoothness_data.time_max_delta, base::TimeDelta::FromMilliseconds(1),
-      base::TimeDelta::FromSeconds(25), 50);
+      smoothness_data.time_max_delta, base::Milliseconds(1), base::Seconds(25),
+      50);
 }
 
 void UkmPageLoadMetricsObserver::RecordMobileFriendlinessMetrics() {
diff --git a/chrome/browser/page_load_metrics/observers/core/ukm_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/core/ukm_page_load_metrics_observer_unittest.cc
index 28db1ff..9beaa32 100644
--- a/chrome/browser/page_load_metrics/observers/core/ukm_page_load_metrics_observer_unittest.cc
+++ b/chrome/browser/page_load_metrics/observers/core/ukm_page_load_metrics_observer_unittest.cc
@@ -272,15 +272,13 @@
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
-  timing.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(100);
+  timing.parse_timing->parse_start = base::Milliseconds(100);
   timing.document_timing->dom_content_loaded_event_start =
-      base::TimeDelta::FromMilliseconds(200);
-  timing.paint_timing->first_paint = base::TimeDelta::FromMilliseconds(250);
-  timing.paint_timing->first_contentful_paint =
-      base::TimeDelta::FromMilliseconds(300);
-  timing.document_timing->load_event_start =
-      base::TimeDelta::FromMilliseconds(500);
-  timing.input_to_navigation_start = base::TimeDelta::FromMilliseconds(50);
+      base::Milliseconds(200);
+  timing.paint_timing->first_paint = base::Milliseconds(250);
+  timing.paint_timing->first_contentful_paint = base::Milliseconds(300);
+  timing.document_timing->load_event_start = base::Milliseconds(500);
+  timing.input_to_navigation_start = base::Milliseconds(50);
   PopulateRequiredTimingFields(&timing);
 
   NavigateAndCommit(GURL(kTestUrl1));
@@ -390,9 +388,8 @@
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
-  timing.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(10);
-  timing.paint_timing->first_meaningful_paint =
-      base::TimeDelta::FromMilliseconds(600);
+  timing.parse_timing->parse_start = base::Milliseconds(10);
+  timing.paint_timing->first_meaningful_paint = base::Milliseconds(600);
   PopulateRequiredTimingFields(&timing);
 
   NavigateAndCommit(GURL(kTestUrl1));
@@ -424,7 +421,7 @@
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
   timing.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(600);
+      base::Milliseconds(600);
   timing.paint_timing->largest_contentful_paint->largest_image_paint_size = 50u;
   PopulateExperimentalLCP(timing.paint_timing);
   PopulateRequiredTimingFields(&timing);
@@ -449,7 +446,7 @@
   // There is a text paint, but it must be ignored because it is smaller than
   // the image paint.
   timing.paint_timing->largest_contentful_paint->largest_text_paint =
-      base::TimeDelta::FromMilliseconds(600);
+      base::Milliseconds(600);
   timing.paint_timing->largest_contentful_paint->largest_text_paint_size = 25u;
   PopulateExperimentalLCP(timing.paint_timing);
   PopulateRequiredTimingFields(&timing);
@@ -473,7 +470,7 @@
   timing.paint_timing->largest_contentful_paint->largest_image_paint_size = 50u;
   // Largest text is larger than image.
   timing.paint_timing->largest_contentful_paint->largest_text_paint =
-      base::TimeDelta::FromMilliseconds(600);
+      base::Milliseconds(600);
   timing.paint_timing->largest_contentful_paint->largest_text_paint_size = 80u;
   PopulateExperimentalLCP(timing.paint_timing);
   PopulateRequiredTimingFields(&timing);
@@ -496,10 +493,10 @@
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(600);
+      base::Milliseconds(600);
   PopulateRequiredTimingFields(&timing);
   // The duration between nav start and first background set to 1ms.
-  mock_clock->Advance(base::TimeDelta::FromMilliseconds(1));
+  mock_clock->Advance(base::Milliseconds(1));
   web_contents()->WasHidden();
   NavigateAndCommit(GURL(kTestUrl1));
   tester()->SimulateTimingUpdate(timing);
@@ -534,7 +531,7 @@
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   PopulateRequiredTimingFields(&timing);
   // The duration between nav start and first background set to 1ms.
-  mock_clock->Advance(base::TimeDelta::FromMilliseconds(1));
+  mock_clock->Advance(base::Milliseconds(1));
   web_contents()->WasHidden();
   NavigateAndCommit(GURL(kTestUrl1));
   tester()->SimulateTimingUpdate(timing);
@@ -573,9 +570,9 @@
   // Set a large enough value to make sure it will be larger than backgrounding
   // time, so that the result will be discarded.
   timing.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromSeconds(10);
+      base::Seconds(10);
   timing.paint_timing->largest_contentful_paint->largest_text_paint =
-      base::TimeDelta::FromSeconds(10);
+      base::Seconds(10);
   NavigateAndCommit(GURL(kTestUrl1));
   tester()->SimulateTimingUpdate(timing);
 
@@ -609,19 +606,19 @@
 
   NavigateAndCommit(GURL(kTestUrl1));
   timing.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(60);
+      base::Milliseconds(60);
   timing.paint_timing->largest_contentful_paint->largest_image_paint_size = 10u;
   timing.paint_timing->largest_contentful_paint->largest_text_paint =
-      base::TimeDelta::FromMilliseconds(60);
+      base::Milliseconds(60);
   timing.paint_timing->largest_contentful_paint->largest_text_paint_size = 10u;
   PopulateExperimentalLCP(timing.paint_timing);
   tester()->SimulateTimingUpdate(timing);
 
   timing.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(600);
+      base::Milliseconds(600);
   timing.paint_timing->largest_contentful_paint->largest_image_paint_size = 10u;
   timing.paint_timing->largest_contentful_paint->largest_text_paint =
-      base::TimeDelta::FromMilliseconds(600);
+      base::Milliseconds(600);
   timing.paint_timing->largest_contentful_paint->largest_text_paint_size = 10u;
   PopulateExperimentalLCP(timing.paint_timing);
   tester()->SimulateTimingUpdate(timing);
@@ -639,7 +636,7 @@
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
   timing.paint_timing->largest_contentful_paint->largest_text_paint =
-      base::TimeDelta::FromMilliseconds(600);
+      base::Milliseconds(600);
   timing.paint_timing->largest_contentful_paint->largest_text_paint_size = 50u;
   PopulateExperimentalLCP(timing.paint_timing);
   PopulateRequiredTimingFields(&timing);
@@ -661,7 +658,7 @@
     page_load_metrics::InitPageLoadTimingForTest(&timing);
     timing.navigation_start = base::Time::FromDoubleT(1);
     timing.paint_timing->largest_contentful_paint->largest_text_paint =
-        base::TimeDelta::FromMilliseconds(600);
+        base::Milliseconds(600);
     timing.paint_timing->largest_contentful_paint->largest_text_paint_size =
         1000;
     PopulateRequiredTimingFields(&timing);
@@ -704,7 +701,7 @@
     page_load_metrics::InitPageLoadTimingForTest(&timing);
     timing.navigation_start = base::Time::FromDoubleT(1);
     timing.paint_timing->largest_contentful_paint->largest_text_paint =
-        base::TimeDelta::FromMilliseconds(600);
+        base::Milliseconds(600);
     timing.paint_timing->largest_contentful_paint->largest_text_paint_size =
         1000;
     PopulateRequiredTimingFields(&timing);
@@ -744,7 +741,7 @@
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
   timing.paint_timing->largest_contentful_paint->largest_text_paint =
-      base::TimeDelta::FromMilliseconds(600);
+      base::Milliseconds(600);
   timing.paint_timing->largest_contentful_paint->largest_text_paint_size = 1000;
   PopulateExperimentalLCP(timing.paint_timing);
   PopulateRequiredTimingFields(&timing);
@@ -763,7 +760,7 @@
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
   timing.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(600);
+      base::Milliseconds(600);
   timing.paint_timing->largest_contentful_paint->largest_image_paint_size =
       1000;
   PopulateExperimentalLCP(timing.paint_timing);
@@ -784,11 +781,11 @@
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
   timing.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(600);
+      base::Milliseconds(600);
   timing.paint_timing->largest_contentful_paint->largest_image_paint_size =
       1000;
   timing.paint_timing->largest_contentful_paint->largest_text_paint =
-      base::TimeDelta::FromMilliseconds(1000);
+      base::Milliseconds(1000);
   timing.paint_timing->largest_contentful_paint->largest_text_paint_size = 500;
   PopulateExperimentalLCP(timing.paint_timing);
   PopulateRequiredTimingFields(&timing);
@@ -813,7 +810,7 @@
   page_load_metrics::InitPageLoadTimingForTest(&subframe_timing);
   subframe_timing.navigation_start = base::Time::FromDoubleT(2);
   subframe_timing.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(4780);
+      base::Milliseconds(4780);
   subframe_timing.paint_timing->largest_contentful_paint
       ->largest_image_paint_size = 100u;
   PopulateExperimentalLCP(subframe_timing.paint_timing);
@@ -868,7 +865,7 @@
       ->largest_image_paint_size = 100u;
   // Subframe has text but it should be ignored as it's smaller than image.
   subframe_timing.paint_timing->largest_contentful_paint->largest_text_paint =
-      base::TimeDelta::FromMilliseconds(3000);
+      base::Milliseconds(3000);
   subframe_timing.paint_timing->largest_contentful_paint
       ->largest_text_paint_size = 80u;
   PopulateExperimentalLCP(subframe_timing.paint_timing);
@@ -898,7 +895,7 @@
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
   timing.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(4780);
+      base::Milliseconds(4780);
   timing.paint_timing->largest_contentful_paint->largest_image_paint_size =
       100u;
   PopulateExperimentalLCP(timing.paint_timing);
@@ -933,7 +930,7 @@
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
   timing.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(4780);
+      base::Milliseconds(4780);
   timing.paint_timing->largest_contentful_paint->largest_image_paint_size =
       100u;
   PopulateExperimentalLCP(timing.paint_timing);
@@ -944,7 +941,7 @@
   page_load_metrics::InitPageLoadTimingForTest(&subframe_timing);
   subframe_timing.navigation_start = base::Time::FromDoubleT(2);
   subframe_timing.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(4790);
+      base::Milliseconds(4790);
   subframe_timing.paint_timing->largest_contentful_paint
       ->largest_image_paint_size = 110u;
   PopulateExperimentalLCP(subframe_timing.paint_timing);
@@ -955,7 +952,7 @@
   page_load_metrics::InitPageLoadTimingForTest(&subframe_timing2);
   subframe_timing2.navigation_start = base::Time::FromDoubleT(2);
   subframe_timing2.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(4800);
+      base::Milliseconds(4800);
   subframe_timing2.paint_timing->largest_contentful_paint
       ->largest_image_paint_size = 50u;
   PopulateExperimentalLCP(subframe_timing2.paint_timing);
@@ -1008,7 +1005,7 @@
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
   timing.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(4780);
+      base::Milliseconds(4780);
   timing.paint_timing->largest_contentful_paint->largest_image_paint_size = 50u;
   PopulateExperimentalLCP(timing.paint_timing);
   PopulateRequiredTimingFields(&timing);
@@ -1017,7 +1014,7 @@
   page_load_metrics::InitPageLoadTimingForTest(&subframe_timing);
   subframe_timing.navigation_start = base::Time::FromDoubleT(2);
   subframe_timing.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(990);
+      base::Milliseconds(990);
   subframe_timing.paint_timing->largest_contentful_paint
       ->largest_image_paint_size = 100u;
   PopulateExperimentalLCP(subframe_timing.paint_timing);
@@ -1046,12 +1043,10 @@
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
-  timing.interactive_timing->first_input_delay =
-      base::TimeDelta::FromMilliseconds(50);
-  timing.interactive_timing->first_input_timestamp =
-      base::TimeDelta::FromMilliseconds(712);
+  timing.interactive_timing->first_input_delay = base::Milliseconds(50);
+  timing.interactive_timing->first_input_timestamp = base::Milliseconds(712);
   timing.interactive_timing->first_input_processing_time =
-      base::TimeDelta::FromMilliseconds(25);
+      base::Milliseconds(25);
   PopulateRequiredTimingFields(&timing);
 
   NavigateAndCommit(GURL(kTestUrl1));
@@ -1083,10 +1078,8 @@
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
-  timing.interactive_timing->longest_input_delay =
-      base::TimeDelta::FromMilliseconds(50);
-  timing.interactive_timing->longest_input_timestamp =
-      base::TimeDelta::FromMilliseconds(712);
+  timing.interactive_timing->longest_input_delay = base::Milliseconds(50);
+  timing.interactive_timing->longest_input_timestamp = base::Milliseconds(712);
   PopulateRequiredTimingFields(&timing);
 
   NavigateAndCommit(GURL(kTestUrl1));
@@ -1117,9 +1110,8 @@
 
   page_load_metrics::mojom::InputTiming input_timing;
   input_timing.num_input_events = 2;
-  input_timing.total_input_delay = base::TimeDelta::FromMilliseconds(100);
-  input_timing.total_adjusted_input_delay =
-      base::TimeDelta::FromMilliseconds(10);
+  input_timing.total_input_delay = base::Milliseconds(100);
+  input_timing.total_adjusted_input_delay = base::Milliseconds(10);
   tester()->SimulateInputTimingUpdate(input_timing);
 
   DeleteContents();
@@ -1184,10 +1176,8 @@
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
-  timing.interactive_timing->first_scroll_delay =
-      base::TimeDelta::FromMilliseconds(50);
-  timing.interactive_timing->first_scroll_timestamp =
-      base::TimeDelta::FromMilliseconds(70);
+  timing.interactive_timing->first_scroll_delay = base::Milliseconds(50);
+  timing.interactive_timing->first_scroll_timestamp = base::Milliseconds(70);
   PopulateRequiredTimingFields(&timing);
 
   NavigateAndCommit(GURL(kTestUrl1));
@@ -1215,10 +1205,9 @@
 TEST_F(UkmPageLoadMetricsObserverTest, MultiplePageLoads) {
   page_load_metrics::mojom::PageLoadTiming timing1;
   page_load_metrics::InitPageLoadTimingForTest(&timing1);
-  timing1.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(10);
+  timing1.parse_timing->parse_start = base::Milliseconds(10);
   timing1.navigation_start = base::Time::FromDoubleT(1);
-  timing1.paint_timing->first_contentful_paint =
-      base::TimeDelta::FromMilliseconds(200);
+  timing1.paint_timing->first_contentful_paint = base::Milliseconds(200);
   PopulateRequiredTimingFields(&timing1);
 
   // Second navigation reports no timing metrics.
@@ -1289,9 +1278,9 @@
   EXPECT_CALL(mock_network_quality_provider(), GetEffectiveConnectionType())
       .WillRepeatedly(Return(net::EFFECTIVE_CONNECTION_TYPE_3G));
   EXPECT_CALL(mock_network_quality_provider(), GetHttpRTT())
-      .WillRepeatedly(Return(base::TimeDelta::FromMilliseconds(100)));
+      .WillRepeatedly(Return(base::Milliseconds(100)));
   EXPECT_CALL(mock_network_quality_provider(), GetTransportRTT())
-      .WillRepeatedly(Return(base::TimeDelta::FromMilliseconds(200)));
+      .WillRepeatedly(Return(base::Milliseconds(200)));
   EXPECT_CALL(mock_network_quality_provider(), GetDownstreamThroughputKbps())
       .WillRepeatedly(Return(300));
 
@@ -1548,8 +1537,7 @@
   NavigateAndCommit(GURL(kTestUrl1));
 
   // Simulate some CPU usage.
-  page_load_metrics::mojom::CpuTiming cpu_timing(
-      base::TimeDelta::FromMilliseconds(500));
+  page_load_metrics::mojom::CpuTiming cpu_timing(base::Milliseconds(500));
   tester()->SimulateCpuTimingUpdate(cpu_timing);
 
   // Simulate closing the tab.
@@ -1575,10 +1563,10 @@
                                                               0, 0, 0, {});
   render_data.new_layout_shifts.emplace_back(
       page_load_metrics::mojom::LayoutShift::New(
-          time_origin - base::TimeDelta::FromMilliseconds(4000), 0.5));
+          time_origin - base::Milliseconds(4000), 0.5));
   render_data.new_layout_shifts.emplace_back(
       page_load_metrics::mojom::LayoutShift::New(
-          time_origin - base::TimeDelta::FromMilliseconds(3500), 0.5));
+          time_origin - base::Milliseconds(3500), 0.5));
 
   tester()->SimulateRenderDataUpdate(render_data);
 
@@ -1589,7 +1577,7 @@
                                                                 0, 0, 0, 0, {});
   render_data_2.new_layout_shifts.emplace_back(
       page_load_metrics::mojom::LayoutShift::New(
-          time_origin - base::TimeDelta::FromMilliseconds(2500), 1.5));
+          time_origin - base::Milliseconds(2500), 1.5));
   tester()->SimulateRenderDataUpdate(render_data_2);
 
   // Simulate closing the tab.
@@ -2078,8 +2066,7 @@
                                            ServiceAccessType::IMPLICIT_ACCESS);
   ASSERT_TRUE(history_service);
   // Fake that we visited this site 45 days ago.
-  history_service->AddPage(url,
-                           base::Time::Now() - base::TimeDelta::FromDays(45),
+  history_service->AddPage(url, base::Time::Now() - base::Days(45),
                            history::VisitSource::SOURCE_BROWSED);
   NavigateAndCommit(url);
   history::BlockUntilHistoryProcessesPendingRequests(history_service);
@@ -2096,7 +2083,7 @@
   const ukm::mojom::UkmEntry* entry = merged_entries.begin()->second.get();
   tester()->test_ukm_recorder().ExpectEntryMetric(
       entry, PageLoad::kDurationSinceLastVisitSecondsName,
-      base::TimeDelta::FromDays(30).InSeconds());
+      base::Days(30).InSeconds());
 }
 
 TEST_F(UkmPageLoadMetricsObserverTest,
@@ -2295,7 +2282,7 @@
 
   // Simulate input.
   page_load_metrics::mojom::PageLoadTiming timing;
-  InitPageLoadTimingWithInputOrScroll(timing, base::TimeDelta::FromSeconds(1));
+  InitPageLoadTimingWithInputOrScroll(timing, base::Seconds(1));
   tester()->SimulateTimingUpdate(timing,
                                  input_in_subframe ? subframe : main_frame);
 
diff --git a/chrome/browser/page_load_metrics/observers/document_write_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/document_write_page_load_metrics_observer_unittest.cc
index 7f39b5e7..f6110a6 100644
--- a/chrome/browser/page_load_metrics/observers/document_write_page_load_metrics_observer_unittest.cc
+++ b/chrome/browser/page_load_metrics/observers/document_write_page_load_metrics_observer_unittest.cc
@@ -33,23 +33,23 @@
 }
 
 TEST_F(DocumentWritePageLoadMetricsObserverTest, PossibleBlock) {
-  base::TimeDelta contentful_paint = base::TimeDelta::FromMilliseconds(1);
+  base::TimeDelta contentful_paint = base::Milliseconds(1);
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
   timing.paint_timing->first_contentful_paint = contentful_paint;
-  timing.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(1);
-  timing.parse_timing->parse_stop = base::TimeDelta::FromMilliseconds(100);
+  timing.parse_timing->parse_start = base::Milliseconds(1);
+  timing.parse_timing->parse_stop = base::Milliseconds(100);
   timing.parse_timing->parse_blocked_on_script_load_duration =
-      base::TimeDelta::FromMilliseconds(5);
+      base::Milliseconds(5);
   timing.parse_timing
       ->parse_blocked_on_script_load_from_document_write_duration =
-      base::TimeDelta::FromMilliseconds(5);
+      base::Milliseconds(5);
   timing.parse_timing->parse_blocked_on_script_execution_duration =
-      base::TimeDelta::FromMilliseconds(3);
+      base::Milliseconds(3);
   timing.parse_timing
       ->parse_blocked_on_script_execution_from_document_write_duration =
-      base::TimeDelta::FromMilliseconds(3);
+      base::Milliseconds(3);
   PopulateRequiredTimingFields(&timing);
 
   page_load_metrics::mojom::FrameMetadata metadata;
@@ -93,12 +93,12 @@
 }
 
 TEST_F(DocumentWritePageLoadMetricsObserverTest, PossibleBlockReload) {
-  base::TimeDelta contentful_paint = base::TimeDelta::FromMilliseconds(1);
+  base::TimeDelta contentful_paint = base::Milliseconds(1);
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
   timing.paint_timing->first_contentful_paint = contentful_paint;
-  timing.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(1);
+  timing.parse_timing->parse_start = base::Milliseconds(1);
   PopulateRequiredTimingFields(&timing);
 
   page_load_metrics::mojom::FrameMetadata metadata;
@@ -153,7 +153,7 @@
 }
 
 TEST_F(DocumentWritePageLoadMetricsObserverTest, NoPossibleBlock) {
-  base::TimeDelta contentful_paint = base::TimeDelta::FromMilliseconds(1);
+  base::TimeDelta contentful_paint = base::Milliseconds(1);
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
diff --git a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.cc
index 3c331926b..e44a0c0c 100644
--- a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.cc
+++ b/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.cc
@@ -319,8 +319,7 @@
   // revealed by the interaction.
   if (abort_info.reason == PageAbortReason::ABORT_RELOAD ||
       abort_info.reason == PageAbortReason::ABORT_FORWARD_BACK) {
-    return time_to_interaction.value() +
-               base::TimeDelta::FromMilliseconds(1000) >
+    return time_to_interaction.value() + base::Milliseconds(1000) >
            abort_info.time_to_abort;
   } else {
     return time_to_interaction > abort_info.time_to_abort;
@@ -623,8 +622,7 @@
     UMA_HISTOGRAM_CUSTOM_TIMES(
         internal::kHistogramFromGWSFirstInputDelay,
         timing.interactive_timing->first_input_delay.value(),
-        base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromSeconds(60),
-        50);
+        base::Milliseconds(1), base::Seconds(60), 50);
   }
 }
 
diff --git a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer_unittest.cc
index 4f83f26..fa0dd16 100644
--- a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer_unittest.cc
+++ b/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer_unittest.cc
@@ -42,9 +42,9 @@
   void SimulateTimingWithFirstPaint() {
     page_load_metrics::mojom::PageLoadTiming timing;
     page_load_metrics::InitPageLoadTimingForTest(&timing);
-    timing.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(0);
+    timing.parse_timing->parse_start = base::Milliseconds(0);
     timing.navigation_start = base::Time::FromDoubleT(1);
-    timing.paint_timing->first_paint = base::TimeDelta::FromMilliseconds(0);
+    timing.paint_timing->first_paint = base::Milliseconds(0);
     PopulateRequiredTimingFields(&timing);
     tester()->SimulateTimingUpdate(timing);
   }
@@ -73,7 +73,7 @@
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
-  timing.paint_timing->first_image_paint = base::TimeDelta::FromMilliseconds(1);
+  timing.paint_timing->first_image_paint = base::Milliseconds(1);
   PopulateRequiredTimingFields(&timing);
   NavigateAndCommit(GURL(kExampleUrl));
 
@@ -95,7 +95,7 @@
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
-  timing.paint_timing->first_image_paint = base::TimeDelta::FromMilliseconds(1);
+  timing.paint_timing->first_image_paint = base::Milliseconds(1);
   PopulateRequiredTimingFields(&timing);
   NavigateAndCommit(GURL("http://www.other.com"));
   NavigateAndCommit(GURL(kExampleUrl));
@@ -119,7 +119,7 @@
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
-  timing.paint_timing->first_image_paint = base::TimeDelta::FromMilliseconds(1);
+  timing.paint_timing->first_image_paint = base::Milliseconds(1);
   PopulateRequiredTimingFields(&timing);
   NavigateAndCommit(GURL("https://www.google.com/"));
   NavigateAndCommit(GURL(kExampleUrl));
@@ -143,7 +143,7 @@
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
-  timing.paint_timing->first_image_paint = base::TimeDelta::FromMilliseconds(1);
+  timing.paint_timing->first_image_paint = base::Milliseconds(1);
   PopulateRequiredTimingFields(&timing);
   // Navigation from /search, but missing a query string, so can't have been a
   // search results page.
@@ -168,24 +168,19 @@
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
-  timing.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(10);
-  timing.paint_timing->first_paint = base::TimeDelta::FromMilliseconds(20);
-  timing.paint_timing->first_contentful_paint =
-      base::TimeDelta::FromMilliseconds(40);
+  timing.parse_timing->parse_start = base::Milliseconds(10);
+  timing.paint_timing->first_paint = base::Milliseconds(20);
+  timing.paint_timing->first_contentful_paint = base::Milliseconds(40);
   timing.paint_timing->largest_contentful_paint->largest_text_paint =
-      base::TimeDelta::FromMilliseconds(50);
+      base::Milliseconds(50);
   timing.paint_timing->largest_contentful_paint->largest_text_paint_size = 20u;
-  timing.paint_timing->first_image_paint =
-      base::TimeDelta::FromMilliseconds(160);
-  timing.parse_timing->parse_stop = base::TimeDelta::FromMilliseconds(320);
+  timing.paint_timing->first_image_paint = base::Milliseconds(160);
+  timing.parse_timing->parse_stop = base::Milliseconds(320);
   timing.document_timing->dom_content_loaded_event_start =
-      base::TimeDelta::FromMilliseconds(640);
-  timing.document_timing->load_event_start =
-      base::TimeDelta::FromMilliseconds(1280);
-  timing.interactive_timing->first_input_delay =
-      base::TimeDelta::FromMilliseconds(50);
-  timing.interactive_timing->first_input_timestamp =
-      base::TimeDelta::FromMilliseconds(1400);
+      base::Milliseconds(640);
+  timing.document_timing->load_event_start = base::Milliseconds(1280);
+  timing.interactive_timing->first_input_delay = base::Milliseconds(50);
+  timing.interactive_timing->first_input_timestamp = base::Milliseconds(1400);
   PopulateRequiredTimingFields(&timing);
   NavigateAndCommit(GURL("https://www.google.com/webhp?q=test"));
   NavigateAndCommit(GURL(kExampleUrl));
@@ -288,9 +283,9 @@
 TEST_F(FromGWSPageLoadMetricsObserverTest, SearchPreviousCommittedUrl2) {
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
-  timing.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(1);
+  timing.parse_timing->parse_start = base::Milliseconds(1);
   timing.navigation_start = base::Time::FromDoubleT(1);
-  timing.paint_timing->first_image_paint = base::TimeDelta::FromMilliseconds(1);
+  timing.paint_timing->first_image_paint = base::Milliseconds(1);
   PopulateRequiredTimingFields(&timing);
   NavigateAndCommit(GURL("https://www.google.com/#q=test"));
   NavigateAndCommit(GURL(kExampleUrl));
@@ -317,9 +312,9 @@
 TEST_F(FromGWSPageLoadMetricsObserverTest, SearchPreviousCommittedUrl3) {
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
-  timing.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(1);
+  timing.parse_timing->parse_start = base::Milliseconds(1);
   timing.navigation_start = base::Time::FromDoubleT(1);
-  timing.paint_timing->first_image_paint = base::TimeDelta::FromMilliseconds(1);
+  timing.paint_timing->first_image_paint = base::Milliseconds(1);
   PopulateRequiredTimingFields(&timing);
   NavigateAndCommit(GURL("https://www.google.com/webhp#q=test"));
   NavigateAndCommit(GURL(kExampleUrl));
@@ -346,9 +341,9 @@
 TEST_F(FromGWSPageLoadMetricsObserverTest, SearchPreviousCommittedUrl4) {
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
-  timing.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(1);
+  timing.parse_timing->parse_start = base::Milliseconds(1);
   timing.navigation_start = base::Time::FromDoubleT(1);
-  timing.paint_timing->first_image_paint = base::TimeDelta::FromMilliseconds(1);
+  timing.paint_timing->first_image_paint = base::Milliseconds(1);
   PopulateRequiredTimingFields(&timing);
   NavigateAndCommit(GURL("https://www.google.co.uk/search#q=test"));
   NavigateAndCommit(GURL(kExampleUrl));
@@ -376,13 +371,12 @@
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
-  timing.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(1);
-  timing.paint_timing->first_image_paint = base::TimeDelta::FromMilliseconds(1);
+  timing.parse_timing->parse_start = base::Milliseconds(1);
+  timing.paint_timing->first_image_paint = base::Milliseconds(1);
   page_load_metrics::mojom::PageLoadTiming timing2;
   page_load_metrics::InitPageLoadTimingForTest(&timing2);
   timing2.navigation_start = base::Time::FromDoubleT(2);
-  timing2.paint_timing->first_image_paint =
-      base::TimeDelta::FromMilliseconds(100);
+  timing2.paint_timing->first_image_paint = base::Milliseconds(100);
   PopulateRequiredTimingFields(&timing);
   PopulateRequiredTimingFields(&timing2);
   NavigateAndCommit(GURL("https://www.google.co.uk/search#q=test"));
@@ -413,13 +407,12 @@
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
-  timing.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(1);
-  timing.paint_timing->first_image_paint = base::TimeDelta::FromMilliseconds(1);
+  timing.parse_timing->parse_start = base::Milliseconds(1);
+  timing.paint_timing->first_image_paint = base::Milliseconds(1);
   page_load_metrics::mojom::PageLoadTiming timing2;
   page_load_metrics::InitPageLoadTimingForTest(&timing2);
   timing2.navigation_start = base::Time::FromDoubleT(2);
-  timing2.paint_timing->first_image_paint =
-      base::TimeDelta::FromMilliseconds(100);
+  timing2.paint_timing->first_image_paint = base::Milliseconds(100);
   PopulateRequiredTimingFields(&timing);
   PopulateRequiredTimingFields(&timing2);
   NavigateAndCommit(GURL("https://www.google.co.uk/search#q=test"));
@@ -451,20 +444,18 @@
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
-  timing.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(1);
-  timing.paint_timing->first_image_paint = base::TimeDelta::FromMilliseconds(1);
+  timing.parse_timing->parse_start = base::Milliseconds(1);
+  timing.paint_timing->first_image_paint = base::Milliseconds(1);
   page_load_metrics::mojom::PageLoadTiming timing2;
   page_load_metrics::InitPageLoadTimingForTest(&timing2);
   timing2.navigation_start = base::Time::FromDoubleT(2);
-  timing2.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(100);
-  timing2.paint_timing->first_image_paint =
-      base::TimeDelta::FromMilliseconds(100);
+  timing2.parse_timing->parse_start = base::Milliseconds(100);
+  timing2.paint_timing->first_image_paint = base::Milliseconds(100);
   page_load_metrics::mojom::PageLoadTiming timing3;
   page_load_metrics::InitPageLoadTimingForTest(&timing3);
   timing3.navigation_start = base::Time::FromDoubleT(3);
-  timing3.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(1000);
-  timing3.paint_timing->first_image_paint =
-      base::TimeDelta::FromMilliseconds(1000);
+  timing3.parse_timing->parse_start = base::Milliseconds(1000);
+  timing3.paint_timing->first_image_paint = base::Milliseconds(1000);
   PopulateRequiredTimingFields(&timing);
   PopulateRequiredTimingFields(&timing2);
   PopulateRequiredTimingFields(&timing3);
@@ -502,18 +493,16 @@
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
-  timing.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(1);
-  timing.paint_timing->first_image_paint = base::TimeDelta::FromMilliseconds(1);
+  timing.parse_timing->parse_start = base::Milliseconds(1);
+  timing.paint_timing->first_image_paint = base::Milliseconds(1);
   page_load_metrics::mojom::PageLoadTiming timing2;
   page_load_metrics::InitPageLoadTimingForTest(&timing2);
   timing2.navigation_start = base::Time::FromDoubleT(2);
-  timing2.paint_timing->first_image_paint =
-      base::TimeDelta::FromMilliseconds(100);
+  timing2.paint_timing->first_image_paint = base::Milliseconds(100);
   page_load_metrics::mojom::PageLoadTiming timing3;
   page_load_metrics::InitPageLoadTimingForTest(&timing3);
   timing3.navigation_start = base::Time::FromDoubleT(3);
-  timing3.paint_timing->first_image_paint =
-      base::TimeDelta::FromMilliseconds(1000);
+  timing3.paint_timing->first_image_paint = base::Milliseconds(1000);
   PopulateRequiredTimingFields(&timing);
   PopulateRequiredTimingFields(&timing2);
   PopulateRequiredTimingFields(&timing3);
@@ -549,8 +538,8 @@
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
-  timing.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(1);
-  timing.paint_timing->first_image_paint = base::TimeDelta::FromMilliseconds(1);
+  timing.parse_timing->parse_start = base::Milliseconds(1);
+  timing.paint_timing->first_image_paint = base::Milliseconds(1);
   PopulateRequiredTimingFields(&timing);
   NavigateAndCommit(GURL("https://www.google.com/search#q=test"));
   NavigateAndCommit(GURL("https://www.google.com/url?source=web"));
@@ -580,7 +569,7 @@
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
-  timing.paint_timing->first_image_paint = base::TimeDelta::FromMilliseconds(1);
+  timing.paint_timing->first_image_paint = base::Milliseconds(1);
   PopulateRequiredTimingFields(&timing);
   NavigateAndCommit(GURL("https://www.google.com/webhp?q=test"));
   NavigateAndCommit(GURL("https://www.google.com/url?a=b&c=d"));
@@ -605,9 +594,9 @@
        SearchPreviousCommittedUrlBackgroundLater) {
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
-  timing.parse_timing->parse_start = base::TimeDelta::FromMicroseconds(1);
+  timing.parse_timing->parse_start = base::Microseconds(1);
   timing.navigation_start = base::Time::FromDoubleT(1);
-  timing.paint_timing->first_image_paint = base::TimeDelta::FromMicroseconds(1);
+  timing.paint_timing->first_image_paint = base::Microseconds(1);
   PopulateRequiredTimingFields(&timing);
 
   NavigateAndCommit(GURL("https://www.google.com/search#q=test"));
@@ -810,7 +799,7 @@
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
-  timing.paint_timing->first_paint = base::TimeDelta::FromMicroseconds(1);
+  timing.paint_timing->first_paint = base::Microseconds(1);
   PopulateRequiredTimingFields(&timing);
   NavigateAndCommit(GURL("https://example.test"));
   tester()->SimulateTimingUpdate(timing);
diff --git a/chrome/browser/page_load_metrics/observers/live_tab_count_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/live_tab_count_page_load_metrics_observer.cc
index 5a534f4..909473e 100644
--- a/chrome/browser/page_load_metrics/observers/live_tab_count_page_load_metrics_observer.cc
+++ b/chrome/browser/page_load_metrics/observers/live_tab_count_page_load_metrics_observer.cc
@@ -29,10 +29,9 @@
 
 // These are the same histogram parameters used for the core page load paint
 // timing metrics (see PAGE_LOAD_HISTOGRAM).
-#define LIVE_TAB_COUNT_PAINT_PAGE_LOAD_HISTOGRAM(prefix, bucket, sample) \
-  LIVE_TAB_COUNT_HISTOGRAM(prefix, bucket, sample,                       \
-                           base::TimeDelta::FromMilliseconds(10),        \
-                           base::TimeDelta::FromMinutes(10), 100)
+#define LIVE_TAB_COUNT_PAINT_PAGE_LOAD_HISTOGRAM(prefix, bucket, sample)   \
+  LIVE_TAB_COUNT_HISTOGRAM(prefix, bucket, sample, base::Milliseconds(10), \
+                           base::Minutes(10), 100)
 
 namespace internal {
 
@@ -76,8 +75,7 @@
       std::string(internal::kHistogramPrefixLiveTabCount)
           .append(internal::kHistogramFirstInputDelaySuffix),
       bucket, timing.interactive_timing->first_input_delay.value(),
-      base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromSeconds(60),
-      50);
+      base::Milliseconds(1), base::Seconds(60), 50);
 }
 
 size_t LiveTabCountPageLoadMetricsObserver::GetLiveTabCount() const {
diff --git a/chrome/browser/page_load_metrics/observers/live_tab_count_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/live_tab_count_page_load_metrics_observer_unittest.cc
index 8650d16..410f5353 100644
--- a/chrome/browser/page_load_metrics/observers/live_tab_count_page_load_metrics_observer_unittest.cc
+++ b/chrome/browser/page_load_metrics/observers/live_tab_count_page_load_metrics_observer_unittest.cc
@@ -47,14 +47,11 @@
 
     page_load_metrics::mojom::PageLoadTiming timing;
     page_load_metrics::InitPageLoadTimingForTest(&timing);
-    timing.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(10);
+    timing.parse_timing->parse_start = base::Milliseconds(10);
     timing.navigation_start = base::Time::FromDoubleT(1);
-    timing.paint_timing->first_contentful_paint =
-        base::TimeDelta::FromMilliseconds(300);
-    timing.interactive_timing->first_input_delay =
-        base::TimeDelta::FromMilliseconds(5);
-    timing.interactive_timing->first_input_timestamp =
-        base::TimeDelta::FromMilliseconds(4780);
+    timing.paint_timing->first_contentful_paint = base::Milliseconds(300);
+    timing.interactive_timing->first_input_delay = base::Milliseconds(5);
+    timing.interactive_timing->first_input_timestamp = base::Milliseconds(4780);
     PopulateRequiredTimingFields(&timing);
 
     if (tab_state == kBackground) {
diff --git a/chrome/browser/page_load_metrics/observers/loading_predictor_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/loading_predictor_page_load_metrics_observer_unittest.cc
index 9cf0b1c1..59fe13d 100644
--- a/chrome/browser/page_load_metrics/observers/loading_predictor_page_load_metrics_observer_unittest.cc
+++ b/chrome/browser/page_load_metrics/observers/loading_predictor_page_load_metrics_observer_unittest.cc
@@ -51,12 +51,10 @@
                                                         nullptr, config);
     predictors::LoadingPredictorTabHelper::CreateForWebContents(web_contents());
     timing_.navigation_start = base::Time::FromDoubleT(1);
-    timing_.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(10);
-    timing_.paint_timing->first_paint = base::TimeDelta::FromSeconds(2);
-    timing_.paint_timing->first_contentful_paint =
-        base::TimeDelta::FromSeconds(3);
-    timing_.paint_timing->first_meaningful_paint =
-        base::TimeDelta::FromSeconds(4);
+    timing_.parse_timing->parse_start = base::Milliseconds(10);
+    timing_.paint_timing->first_paint = base::Seconds(2);
+    timing_.paint_timing->first_contentful_paint = base::Seconds(3);
+    timing_.paint_timing->first_meaningful_paint = base::Seconds(4);
     PopulateRequiredTimingFields(&timing_);
   }
 
diff --git a/chrome/browser/page_load_metrics/observers/media_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/media_page_load_metrics_observer_unittest.cc
index 3e560ac..6e6a5a7b 100644
--- a/chrome/browser/page_load_metrics/observers/media_page_load_metrics_observer_unittest.cc
+++ b/chrome/browser/page_load_metrics/observers/media_page_load_metrics_observer_unittest.cc
@@ -40,12 +40,11 @@
     page_load_metrics::InitPageLoadTimingForTest(&timing_);
     // Reset to the default testing state. Does not reset histogram state.
     timing_.navigation_start = base::Time::FromDoubleT(1);
-    timing_.response_start = base::TimeDelta::FromSeconds(2);
-    timing_.parse_timing->parse_start = base::TimeDelta::FromSeconds(3);
-    timing_.paint_timing->first_contentful_paint =
-        base::TimeDelta::FromSeconds(4);
-    timing_.paint_timing->first_image_paint = base::TimeDelta::FromSeconds(5);
-    timing_.document_timing->load_event_start = base::TimeDelta::FromSeconds(7);
+    timing_.response_start = base::Seconds(2);
+    timing_.parse_timing->parse_start = base::Seconds(3);
+    timing_.paint_timing->first_contentful_paint = base::Seconds(4);
+    timing_.paint_timing->first_image_paint = base::Seconds(5);
+    timing_.document_timing->load_event_start = base::Seconds(7);
     PopulateRequiredTimingFields(&timing_);
 
     network_bytes_ = 0;
diff --git a/chrome/browser/page_load_metrics/observers/multi_tab_loading_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/multi_tab_loading_page_load_metrics_observer_unittest.cc
index 0c8998a..c591cc7 100644
--- a/chrome/browser/page_load_metrics/observers/multi_tab_loading_page_load_metrics_observer_unittest.cc
+++ b/chrome/browser/page_load_metrics/observers/multi_tab_loading_page_load_metrics_observer_unittest.cc
@@ -48,15 +48,12 @@
     page_load_metrics::mojom::PageLoadTiming timing;
     page_load_metrics::InitPageLoadTimingForTest(&timing);
     timing.navigation_start = base::Time::FromDoubleT(1);
-    timing.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(300);
-    timing.paint_timing->first_contentful_paint =
-        base::TimeDelta::FromMilliseconds(300);
-    timing.paint_timing->first_meaningful_paint =
-        base::TimeDelta::FromMilliseconds(700);
+    timing.parse_timing->parse_start = base::Milliseconds(300);
+    timing.paint_timing->first_contentful_paint = base::Milliseconds(300);
+    timing.paint_timing->first_meaningful_paint = base::Milliseconds(700);
     timing.document_timing->dom_content_loaded_event_start =
-        base::TimeDelta::FromMilliseconds(600);
-    timing.document_timing->load_event_start =
-        base::TimeDelta::FromMilliseconds(1000);
+        base::Milliseconds(600);
+    timing.document_timing->load_event_start = base::Milliseconds(1000);
     PopulateRequiredTimingFields(&timing);
 
     if (tab_state == Background) {
diff --git a/chrome/browser/page_load_metrics/observers/prefetch_proxy_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/prefetch_proxy_page_load_metrics_observer_unittest.cc
index 6f1d5c1..13a05fb3 100644
--- a/chrome/browser/page_load_metrics/observers/prefetch_proxy_page_load_metrics_observer_unittest.cc
+++ b/chrome/browser/page_load_metrics/observers/prefetch_proxy_page_load_metrics_observer_unittest.cc
@@ -138,12 +138,11 @@
 
     page_load_metrics::InitPageLoadTimingForTest(&timing_);
     timing_.navigation_start = base::Time::FromDoubleT(2);
-    timing_.response_start = base::TimeDelta::FromSeconds(3);
-    timing_.parse_timing->parse_start = base::TimeDelta::FromSeconds(4);
-    timing_.paint_timing->first_contentful_paint =
-        base::TimeDelta::FromSeconds(5);
-    timing_.paint_timing->first_image_paint = base::TimeDelta::FromSeconds(6);
-    timing_.document_timing->load_event_start = base::TimeDelta::FromSeconds(7);
+    timing_.response_start = base::Seconds(3);
+    timing_.parse_timing->parse_start = base::Seconds(4);
+    timing_.paint_timing->first_contentful_paint = base::Seconds(5);
+    timing_.paint_timing->first_image_paint = base::Seconds(6);
+    timing_.document_timing->load_event_start = base::Seconds(7);
     PopulateRequiredTimingFields(&timing_);
   }
 
@@ -514,7 +513,7 @@
 TEST_F(PrefetchProxyPageLoadMetricsObserverTest, LastVisitToHost_Yesterday) {
   StartTest();
   plm_observer()->CallOnOriginLastVisitResult(
-      {true /* success */, base::Time::Now() - base::TimeDelta::FromDays(1)});
+      {true /* success */, base::Time::Now() - base::Days(1)});
 
   tester()->NavigateToUntrackedUrl();
 
@@ -530,7 +529,7 @@
 TEST_F(PrefetchProxyPageLoadMetricsObserverTest, LastVisitToHost_MaxUKM) {
   StartTest();
   plm_observer()->CallOnOriginLastVisitResult(
-      {true /* success */, base::Time::Now() - base::TimeDelta::FromDays(181)});
+      {true /* success */, base::Time::Now() - base::Days(181)});
 
   tester()->NavigateToUntrackedUrl();
 
diff --git a/chrome/browser/page_load_metrics/observers/protocol_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/protocol_page_load_metrics_observer_unittest.cc
index f430fc48..aa8a5248 100644
--- a/chrome/browser/page_load_metrics/observers/protocol_page_load_metrics_observer_unittest.cc
+++ b/chrome/browser/page_load_metrics/observers/protocol_page_load_metrics_observer_unittest.cc
@@ -25,16 +25,13 @@
       page_load_metrics::mojom::PageLoadTiming* timing) {
     page_load_metrics::InitPageLoadTimingForTest(timing);
     timing->navigation_start = base::Time::FromDoubleT(1);
-    timing->parse_timing->parse_start = base::TimeDelta::FromMilliseconds(100);
-    timing->paint_timing->first_paint = base::TimeDelta::FromMilliseconds(200);
-    timing->paint_timing->first_contentful_paint =
-        base::TimeDelta::FromMilliseconds(300);
-    timing->paint_timing->first_meaningful_paint =
-        base::TimeDelta::FromMilliseconds(400);
+    timing->parse_timing->parse_start = base::Milliseconds(100);
+    timing->paint_timing->first_paint = base::Milliseconds(200);
+    timing->paint_timing->first_contentful_paint = base::Milliseconds(300);
+    timing->paint_timing->first_meaningful_paint = base::Milliseconds(400);
     timing->document_timing->dom_content_loaded_event_start =
-        base::TimeDelta::FromMilliseconds(600);
-    timing->document_timing->load_event_start =
-        base::TimeDelta::FromMilliseconds(1000);
+        base::Milliseconds(600);
+    timing->document_timing->load_event_start = base::Milliseconds(1000);
     PopulateRequiredTimingFields(timing);
   }
 
diff --git a/chrome/browser/page_load_metrics/observers/scheme_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/scheme_page_load_metrics_observer.cc
index 9ed0b99..efb0f98 100644
--- a/chrome/browser/page_load_metrics/observers/scheme_page_load_metrics_observer.cc
+++ b/chrome/browser/page_load_metrics/observers/scheme_page_load_metrics_observer.cc
@@ -141,8 +141,8 @@
 
   for (size_t index = 0;
        index < base::size(kUnderStatRecordingIntervalsSeconds); ++index) {
-    base::TimeDelta threshold(base::TimeDelta::FromSeconds(
-        kUnderStatRecordingIntervalsSeconds[index]));
+    base::TimeDelta threshold(
+        base::Seconds(kUnderStatRecordingIntervalsSeconds[index]));
     if (fcp <= threshold) {
       base::UmaHistogramEnumeration(
           GetDelegate().GetUrl().scheme() == url::kHttpScheme
diff --git a/chrome/browser/page_load_metrics/observers/scheme_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/scheme_page_load_metrics_observer_unittest.cc
index ebf23cf9..72cf1da3 100644
--- a/chrome/browser/page_load_metrics/observers/scheme_page_load_metrics_observer_unittest.cc
+++ b/chrome/browser/page_load_metrics/observers/scheme_page_load_metrics_observer_unittest.cc
@@ -27,16 +27,13 @@
       page_load_metrics::mojom::PageLoadTiming* timing) {
     page_load_metrics::InitPageLoadTimingForTest(timing);
     timing->navigation_start = base::Time::FromDoubleT(1);
-    timing->parse_timing->parse_start = base::TimeDelta::FromMilliseconds(100);
-    timing->paint_timing->first_paint = base::TimeDelta::FromMilliseconds(200);
-    timing->paint_timing->first_contentful_paint =
-        base::TimeDelta::FromMilliseconds(300);
-    timing->paint_timing->first_meaningful_paint =
-        base::TimeDelta::FromMilliseconds(400);
+    timing->parse_timing->parse_start = base::Milliseconds(100);
+    timing->paint_timing->first_paint = base::Milliseconds(200);
+    timing->paint_timing->first_contentful_paint = base::Milliseconds(300);
+    timing->paint_timing->first_meaningful_paint = base::Milliseconds(400);
     timing->document_timing->dom_content_loaded_event_start =
-        base::TimeDelta::FromMilliseconds(600);
-    timing->document_timing->load_event_start =
-        base::TimeDelta::FromMilliseconds(1000);
+        base::Milliseconds(600);
+    timing->document_timing->load_event_start = base::Milliseconds(1000);
     PopulateRequiredTimingFields(timing);
   }
 
@@ -133,13 +130,13 @@
     static constexpr const int kUnderStatRecordingIntervalsSeconds[] = {1, 2, 5,
                                                                         8, 10};
 
-    base::TimeDelta recorded_fcp_value = base::TimeDelta::FromMilliseconds(
-        GetRecordedMetricValue(fcp_histogram_name));
+    base::TimeDelta recorded_fcp_value =
+        base::Milliseconds(GetRecordedMetricValue(fcp_histogram_name));
 
     for (size_t index = 0;
          index < base::size(kUnderStatRecordingIntervalsSeconds); ++index) {
-      base::TimeDelta threshold(base::TimeDelta::FromSeconds(
-          kUnderStatRecordingIntervalsSeconds[index]));
+      base::TimeDelta threshold(
+          base::Seconds(kUnderStatRecordingIntervalsSeconds[index]));
       if (recorded_fcp_value <= threshold) {
         tester()->histogram_tester().ExpectBucketCount(
             fcp_understat_histogram_name, index + 1, 1);
diff --git a/chrome/browser/page_load_metrics/observers/security_state_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/security_state_page_load_metrics_observer.cc
index f419a5e..1383e8b 100644
--- a/chrome/browser/page_load_metrics/observers/security_state_page_load_metrics_observer.cc
+++ b/chrome/browser/page_load_metrics/observers/security_state_page_load_metrics_observer.cc
@@ -186,7 +186,7 @@
       security_state::GetSecurityLevelHistogramName(kTimeOnPagePrefix,
                                                     current_security_level_),
       GetDelegate().GetVisibilityTracker().GetForegroundDuration(),
-      base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromHours(1), 100);
+      base::Milliseconds(1), base::Hours(1), 100);
   base::UmaHistogramEnumeration(kSecurityLevelOnComplete,
                                 current_security_level_,
                                 security_state::SECURITY_LEVEL_COUNT);
@@ -200,7 +200,7 @@
       security_state::GetSafetyTipHistogramName(kTimeOnPagePrefix,
                                                 safety_tip_status),
       GetDelegate().GetVisibilityTracker().GetForegroundDuration(),
-      base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromHours(1), 100);
+      base::Milliseconds(1), base::Hours(1), 100);
 }
 
 void SecurityStatePageLoadMetricsObserver::DidChangeVisibleSecurityState() {
diff --git a/chrome/browser/page_load_metrics/observers/security_state_page_load_metrics_observer_browsertest.cc b/chrome/browser/page_load_metrics/observers/security_state_page_load_metrics_observer_browsertest.cc
index 8916a2b7..66ccabe 100644
--- a/chrome/browser/page_load_metrics/observers/security_state_page_load_metrics_observer_browsertest.cc
+++ b/chrome/browser/page_load_metrics/observers/security_state_page_load_metrics_observer_browsertest.cc
@@ -567,8 +567,7 @@
   GURL https_url = https_test_server()->GetURL("/title1.html");
   ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), https_url));
 
-  const base::TimeDelta kMinForegroundTime =
-      base::TimeDelta::FromMilliseconds(10);
+  const base::TimeDelta kMinForegroundTime = base::Milliseconds(10);
 
   // Ensure that the tab is open for more than 0 ms, even in the face of bots
   // with bad clocks.
diff --git a/chrome/browser/page_load_metrics/observers/service_worker_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/service_worker_page_load_metrics_observer.cc
index d2eb353e..09a53e4 100644
--- a/chrome/browser/page_load_metrics/observers/service_worker_page_load_metrics_observer.cc
+++ b/chrome/browser/page_load_metrics/observers/service_worker_page_load_metrics_observer.cc
@@ -253,8 +253,7 @@
   UMA_HISTOGRAM_CUSTOM_TIMES(
       internal::kHistogramServiceWorkerFirstInputDelay,
       timing.interactive_timing->first_input_delay.value(),
-      base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromSeconds(60),
-      50);
+      base::Milliseconds(1), base::Seconds(60), 50);
 }
 
 void ServiceWorkerPageLoadMetricsObserver::OnParseStart(
diff --git a/chrome/browser/page_load_metrics/observers/service_worker_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/service_worker_page_load_metrics_observer_unittest.cc
index b63260f..18ce3e7 100644
--- a/chrome/browser/page_load_metrics/observers/service_worker_page_load_metrics_observer_unittest.cc
+++ b/chrome/browser/page_load_metrics/observers/service_worker_page_load_metrics_observer_unittest.cc
@@ -97,21 +97,17 @@
       page_load_metrics::mojom::PageLoadTiming* timing) {
     page_load_metrics::InitPageLoadTimingForTest(timing);
     timing->navigation_start = base::Time::FromDoubleT(1);
-    timing->interactive_timing->first_input_delay =
-        base::TimeDelta::FromMilliseconds(50);
-    timing->interactive_timing->first_input_timestamp =
-        base::TimeDelta::FromMilliseconds(712);
-    timing->parse_timing->parse_start = base::TimeDelta::FromMilliseconds(100);
-    timing->paint_timing->first_paint = base::TimeDelta::FromMilliseconds(200);
-    timing->paint_timing->first_contentful_paint =
-        base::TimeDelta::FromMilliseconds(300);
+    timing->interactive_timing->first_input_delay = base::Milliseconds(50);
+    timing->interactive_timing->first_input_timestamp = base::Milliseconds(712);
+    timing->parse_timing->parse_start = base::Milliseconds(100);
+    timing->paint_timing->first_paint = base::Milliseconds(200);
+    timing->paint_timing->first_contentful_paint = base::Milliseconds(300);
     timing->document_timing->dom_content_loaded_event_start =
-        base::TimeDelta::FromMilliseconds(600);
-    timing->document_timing->load_event_start =
-        base::TimeDelta::FromMilliseconds(1000);
+        base::Milliseconds(600);
+    timing->document_timing->load_event_start = base::Milliseconds(1000);
 
     timing->paint_timing->largest_contentful_paint->largest_image_paint =
-        base::TimeDelta::FromMilliseconds(4780);
+        base::Milliseconds(4780);
     timing->paint_timing->largest_contentful_paint->largest_image_paint_size =
         100u;
 
diff --git a/chrome/browser/page_load_metrics/observers/session_restore_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/session_restore_page_load_metrics_observer_unittest.cc
index 92203d9..c2b6539 100644
--- a/chrome/browser/page_load_metrics/observers/session_restore_page_load_metrics_observer_unittest.cc
+++ b/chrome/browser/page_load_metrics/observers/session_restore_page_load_metrics_observer_unittest.cc
@@ -83,12 +83,11 @@
   void PopulateFirstPaintTimings() {
     page_load_metrics::InitPageLoadTimingForTest(&timing_);
     timing_.navigation_start = base::Time::FromDoubleT(1);
-    timing_.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(10);
+    timing_.parse_timing->parse_start = base::Milliseconds(10);
 
     // Should be large enough (e.g., >20 ms) for some tests to be able to hide
     // foreground tabs before the first pains.
-    timing_.paint_timing->first_meaningful_paint =
-        base::TimeDelta::FromSeconds(1);
+    timing_.paint_timing->first_meaningful_paint = base::Seconds(1);
     PopulateRequiredTimingFields(&timing_);
   }
 
diff --git a/chrome/browser/page_load_metrics/observers/signed_exchange_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/signed_exchange_page_load_metrics_observer.cc
index 30e4e957..e4858037 100644
--- a/chrome/browser/page_load_metrics/observers/signed_exchange_page_load_metrics_observer.cc
+++ b/chrome/browser/page_load_metrics/observers/signed_exchange_page_load_metrics_observer.cc
@@ -195,27 +195,23 @@
   UMA_HISTOGRAM_CUSTOM_TIMES(
       internal::kHistogramSignedExchangeFirstInputDelay,
       timing.interactive_timing->first_input_delay.value(),
-      base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromSeconds(60),
-      50);
+      base::Milliseconds(1), base::Seconds(60), 50);
   if (was_cached_) {
     UMA_HISTOGRAM_CUSTOM_TIMES(
         internal::kHistogramCachedSignedExchangeFirstInputDelay,
         timing.interactive_timing->first_input_delay.value(),
-        base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromSeconds(60),
-        50);
+        base::Milliseconds(1), base::Seconds(60), 50);
   } else {
     UMA_HISTOGRAM_CUSTOM_TIMES(
         internal::kHistogramNotCachedSignedExchangeFirstInputDelay,
         timing.interactive_timing->first_input_delay.value(),
-        base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromSeconds(60),
-        50);
+        base::Milliseconds(1), base::Seconds(60), 50);
   }
   if (had_prefetched_alt_sxg_) {
     UMA_HISTOGRAM_CUSTOM_TIMES(
         internal::kHistogramAltSubSxgSignedExchangeFirstInputDelay,
         timing.interactive_timing->first_input_delay.value(),
-        base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromSeconds(60),
-        50);
+        base::Milliseconds(1), base::Seconds(60), 50);
   }
 }
 
diff --git a/chrome/browser/page_load_metrics/observers/signed_exchange_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/signed_exchange_page_load_metrics_observer_unittest.cc
index c335d35..37e2c3f 100644
--- a/chrome/browser/page_load_metrics/observers/signed_exchange_page_load_metrics_observer_unittest.cc
+++ b/chrome/browser/page_load_metrics/observers/signed_exchange_page_load_metrics_observer_unittest.cc
@@ -58,22 +58,18 @@
       page_load_metrics::mojom::PageLoadTiming* timing) {
     page_load_metrics::InitPageLoadTimingForTest(timing);
     timing->navigation_start = base::Time::FromDoubleT(1);
-    timing->interactive_timing->first_input_delay =
-        base::TimeDelta::FromMilliseconds(50);
+    timing->interactive_timing->first_input_delay = base::Milliseconds(50);
     // Use timestamps larger than 1000ms, so that they will not race with
     // background time in the WithSignedExchangeBackground test case.
     timing->interactive_timing->first_input_timestamp =
-        base::TimeDelta::FromMilliseconds(1712);
-    timing->parse_timing->parse_start = base::TimeDelta::FromMilliseconds(1100);
-    timing->paint_timing->first_paint = base::TimeDelta::FromMilliseconds(1200);
-    timing->paint_timing->first_contentful_paint =
-        base::TimeDelta::FromMilliseconds(1300);
-    timing->paint_timing->first_meaningful_paint =
-        base::TimeDelta::FromMilliseconds(1700);
+        base::Milliseconds(1712);
+    timing->parse_timing->parse_start = base::Milliseconds(1100);
+    timing->paint_timing->first_paint = base::Milliseconds(1200);
+    timing->paint_timing->first_contentful_paint = base::Milliseconds(1300);
+    timing->paint_timing->first_meaningful_paint = base::Milliseconds(1700);
     timing->document_timing->dom_content_loaded_event_start =
-        base::TimeDelta::FromMilliseconds(1600);
-    timing->document_timing->load_event_start =
-        base::TimeDelta::FromMilliseconds(2000);
+        base::Milliseconds(1600);
+    timing->document_timing->load_event_start = base::Milliseconds(2000);
     PopulateRequiredTimingFields(timing);
   }
 };
diff --git a/chrome/browser/page_load_metrics/observers/tab_restore_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/tab_restore_page_load_metrics_observer_unittest.cc
index e467beb24..c6ec704d 100644
--- a/chrome/browser/page_load_metrics/observers/tab_restore_page_load_metrics_observer_unittest.cc
+++ b/chrome/browser/page_load_metrics/observers/tab_restore_page_load_metrics_observer_unittest.cc
@@ -63,12 +63,11 @@
     page_load_metrics::InitPageLoadTimingForTest(&timing_);
     // Reset to the default testing state. Does not reset histogram state.
     timing_.navigation_start = base::Time::FromDoubleT(1);
-    timing_.response_start = base::TimeDelta::FromSeconds(2);
-    timing_.parse_timing->parse_start = base::TimeDelta::FromSeconds(3);
-    timing_.paint_timing->first_contentful_paint =
-        base::TimeDelta::FromSeconds(4);
-    timing_.paint_timing->first_image_paint = base::TimeDelta::FromSeconds(5);
-    timing_.document_timing->load_event_start = base::TimeDelta::FromSeconds(7);
+    timing_.response_start = base::Seconds(2);
+    timing_.parse_timing->parse_start = base::Seconds(3);
+    timing_.paint_timing->first_contentful_paint = base::Seconds(4);
+    timing_.paint_timing->first_image_paint = base::Seconds(5);
+    timing_.document_timing->load_event_start = base::Seconds(7);
     PopulateRequiredTimingFields(&timing_);
 
     network_bytes_ = 0;
diff --git a/chrome/browser/page_load_metrics/observers/third_party_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/third_party_metrics_observer_unittest.cc
index 59e66ce..6b47a2f 100644
--- a/chrome/browser/page_load_metrics/observers/third_party_metrics_observer_unittest.cc
+++ b/chrome/browser/page_load_metrics/observers/third_party_metrics_observer_unittest.cc
@@ -78,7 +78,7 @@
 
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
-  timing.paint_timing->first_contentful_paint = base::TimeDelta::FromSeconds(1);
+  timing.paint_timing->first_contentful_paint = base::Seconds(1);
   tester()->SimulateTimingUpdate(timing, sub_frame);
   tester()->histogram_tester().ExpectTotalCount(kSubframeFCPHistogram, 0);
 }
@@ -90,7 +90,7 @@
 
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
-  timing.paint_timing->first_contentful_paint = base::TimeDelta::FromSeconds(1);
+  timing.paint_timing->first_contentful_paint = base::Seconds(1);
   tester()->SimulateTimingUpdate(timing, sub_frame);
   tester()->histogram_tester().ExpectUniqueSample(kSubframeFCPHistogram, 1000,
                                                   1);
@@ -104,7 +104,7 @@
 
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
-  timing.paint_timing->first_contentful_paint = base::TimeDelta::FromSeconds(1);
+  timing.paint_timing->first_contentful_paint = base::Seconds(1);
   tester()->SimulateTimingUpdate(timing, sub_frame);
   tester()->SimulateTimingUpdate(timing, sub_frame);
   tester()->histogram_tester().ExpectUniqueSample(kSubframeFCPHistogram, 1000,
@@ -121,8 +121,7 @@
 
     page_load_metrics::mojom::PageLoadTiming timing;
     page_load_metrics::InitPageLoadTimingForTest(&timing);
-    timing.paint_timing->first_contentful_paint =
-        base::TimeDelta::FromSeconds(1);
+    timing.paint_timing->first_contentful_paint = base::Seconds(1);
     tester()->SimulateTimingUpdate(timing, sub_frame);
   }
 
@@ -147,25 +146,25 @@
 
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
-  timing.paint_timing->first_contentful_paint = base::TimeDelta::FromSeconds(1);
+  timing.paint_timing->first_contentful_paint = base::Seconds(1);
   tester()->SimulateTimingUpdate(timing, sub_frame_a);
 
-  timing.paint_timing->first_contentful_paint = base::TimeDelta::FromSeconds(2);
+  timing.paint_timing->first_contentful_paint = base::Seconds(2);
   tester()->SimulateTimingUpdate(timing, sub_frame_b);
 
-  timing.paint_timing->first_contentful_paint = base::TimeDelta::FromSeconds(3);
+  timing.paint_timing->first_contentful_paint = base::Seconds(3);
   tester()->SimulateTimingUpdate(timing, sub_frame_c);
 
-  timing.paint_timing->first_contentful_paint = base::TimeDelta::FromSeconds(4);
+  timing.paint_timing->first_contentful_paint = base::Seconds(4);
   tester()->SimulateTimingUpdate(timing, sub_frame_d);
 
   tester()->histogram_tester().ExpectTotalCount(kSubframeFCPHistogram, 3);
-  tester()->histogram_tester().ExpectTimeBucketCount(
-      kSubframeFCPHistogram, base::TimeDelta::FromSeconds(1), 1);
-  tester()->histogram_tester().ExpectTimeBucketCount(
-      kSubframeFCPHistogram, base::TimeDelta::FromSeconds(2), 1);
-  tester()->histogram_tester().ExpectTimeBucketCount(
-      kSubframeFCPHistogram, base::TimeDelta::FromSeconds(3), 1);
+  tester()->histogram_tester().ExpectTimeBucketCount(kSubframeFCPHistogram,
+                                                     base::Seconds(1), 1);
+  tester()->histogram_tester().ExpectTimeBucketCount(kSubframeFCPHistogram,
+                                                     base::Seconds(2), 1);
+  tester()->histogram_tester().ExpectTimeBucketCount(kSubframeFCPHistogram,
+                                                     base::Seconds(3), 1);
 }
 
 TEST_F(ThirdPartyMetricsObserverTest, NoCookiesRead_NoneRecorded) {
@@ -508,7 +507,7 @@
       100u;
 
   timing.paint_timing->largest_contentful_paint->largest_text_paint =
-      base::TimeDelta::FromMilliseconds(4780);
+      base::Milliseconds(4780);
   timing.paint_timing->largest_contentful_paint->largest_text_paint_size = 120u;
 
   PopulateRequiredTimingFields(&timing);
@@ -545,7 +544,7 @@
       100u;
 
   timing.paint_timing->largest_contentful_paint->largest_text_paint =
-      base::TimeDelta::FromMilliseconds(4780);
+      base::Milliseconds(4780);
   timing.paint_timing->largest_contentful_paint->largest_text_paint_size = 120u;
 
   PopulateRequiredTimingFields(&timing);
@@ -578,7 +577,7 @@
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
   timing.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(4780);
+      base::Milliseconds(4780);
   timing.paint_timing->largest_contentful_paint->largest_image_paint_size =
       120u;
 
diff --git a/chrome/browser/paint_preview/services/paint_preview_tab_service.cc b/chrome/browser/paint_preview/services/paint_preview_tab_service.cc
index 404cb95..8b6d893 100644
--- a/chrome/browser/paint_preview/services/paint_preview_tab_service.cc
+++ b/chrome/browser/paint_preview/services/paint_preview_tab_service.cc
@@ -166,7 +166,7 @@
         FROM_HERE,
         base::BindOnce(&PaintPreviewTabService::TabClosed,
                        weak_ptr_factory_.GetWeakPtr(), tab_id),
-        base::TimeDelta::FromSeconds(5));
+        base::Seconds(5));
     return;
   }
 
@@ -192,7 +192,7 @@
         FROM_HERE,
         base::BindOnce(&PaintPreviewTabService::AuditArtifacts,
                        weak_ptr_factory_.GetWeakPtr(), active_tab_ids),
-        base::TimeDelta::FromSeconds(5));
+        base::Seconds(5));
     return;
   }
 
diff --git a/chrome/browser/paint_preview/services/paint_preview_tab_service_file_mixin.cc b/chrome/browser/paint_preview/services/paint_preview_tab_service_file_mixin.cc
index adb5759..17f34a24 100644
--- a/chrome/browser/paint_preview/services/paint_preview_tab_service_file_mixin.cc
+++ b/chrome/browser/paint_preview/services/paint_preview_tab_service_file_mixin.cc
@@ -20,9 +20,8 @@
     OnReadProtoCallback on_read_proto_callback) {
   PaintPreviewFileMixin::GetCapturedPaintPreviewProto(
       key,
-      expiry_horizon.has_value()
-          ? expiry_horizon.value()
-          : base::TimeDelta::FromHours(kExpiryHorizonHrs),
+      expiry_horizon.has_value() ? expiry_horizon.value()
+                                 : base::Hours(kExpiryHorizonHrs),
       std::move(on_read_proto_callback));
 }
 
diff --git a/chrome/browser/paint_preview/services/paint_preview_tab_service_unittest.cc b/chrome/browser/paint_preview/services/paint_preview_tab_service_unittest.cc
index f655e6b1..ae2e7d5 100644
--- a/chrome/browser/paint_preview/services/paint_preview_tab_service_unittest.cc
+++ b/chrome/browser/paint_preview/services/paint_preview_tab_service_unittest.cc
@@ -367,7 +367,7 @@
   EXPECT_FALSE(service->CacheInitialized());
   EXPECT_FALSE(service->HasCaptureForTab(1));
   task_environment()->RunUntilIdle();
-  task_environment()->AdvanceClock(base::TimeDelta::FromSeconds(10));
+  task_environment()->AdvanceClock(base::Seconds(10));
   task_environment()->RunUntilIdle();
 
   EXPECT_TRUE(service->CacheInitialized());
@@ -384,7 +384,7 @@
   EXPECT_FALSE(service->HasCaptureForTab(1));
   EXPECT_FALSE(service->HasCaptureForTab(3));
   task_environment()->RunUntilIdle();
-  task_environment()->AdvanceClock(base::TimeDelta::FromSeconds(10));
+  task_environment()->AdvanceClock(base::Seconds(10));
   task_environment()->RunUntilIdle();
 
   EXPECT_TRUE(service->CacheInitialized());
diff --git a/chrome/browser/password_manager/account_password_store_factory.cc b/chrome/browser/password_manager/account_password_store_factory.cc
index f9eff56..076462a 100644
--- a/chrome/browser/password_manager/account_password_store_factory.cc
+++ b/chrome/browser/password_manager/account_password_store_factory.cc
@@ -214,8 +214,7 @@
       profile);
   password_manager_util::RemoveUselessCredentials(
       CredentialsCleanerRunnerFactory::GetForProfile(profile), ps,
-      profile->GetPrefs(), base::TimeDelta::FromSeconds(60),
-      network_context_getter);
+      profile->GetPrefs(), base::Seconds(60), network_context_getter);
 
   return ps;
 }
diff --git a/chrome/browser/password_manager/password_manager_captured_sites_interactive_uitest.cc b/chrome/browser/password_manager/password_manager_captured_sites_interactive_uitest.cc
index 50dcbda0..df15091 100644
--- a/chrome/browser/password_manager/password_manager_captured_sites_interactive_uitest.cc
+++ b/chrome/browser/password_manager/password_manager_captured_sites_interactive_uitest.cc
@@ -33,8 +33,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kWaitForSaveFallbackInterval =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kWaitForSaveFallbackInterval = base::Seconds(5);
 
 // Return path to the Password Manager captured sites test root directory. The
 // directory contains subdirectories for different password manager test
diff --git a/chrome/browser/password_manager/password_manager_test_base.cc b/chrome/browser/password_manager/password_manager_test_base.cc
index c4cf9664..380cde1 100644
--- a/chrome/browser/password_manager/password_manager_test_base.cc
+++ b/chrome/browser/password_manager/password_manager_test_base.cc
@@ -742,7 +742,7 @@
 void PasswordManagerBrowserTestBase::AddHSTSHost(const std::string& host) {
   network::mojom::NetworkContext* network_context =
       browser()->profile()->GetDefaultStoragePartition()->GetNetworkContext();
-  base::Time expiry = base::Time::Now() + base::TimeDelta::FromDays(1000);
+  base::Time expiry = base::Time::Now() + base::Days(1000);
   bool include_subdomains = false;
   base::RunLoop run_loop;
   network_context->AddHSTS(host, expiry, include_subdomains,
diff --git a/chrome/browser/password_manager/password_manager_util_win.cc b/chrome/browser/password_manager/password_manager_util_win.cc
index 55dc0c3..b5b8ac1 100644
--- a/chrome/browser/password_manager/password_manager_util_win.cc
+++ b/chrome/browser/password_manager/password_manager_util_win.cc
@@ -192,7 +192,7 @@
     return -1;
   }
 
-  base::Time changed = base::Time::Now() - base::TimeDelta::FromSeconds(age);
+  base::Time changed = base::Time::Now() - base::Seconds(age);
 
   return changed.ToInternalValue();
 }
diff --git a/chrome/browser/password_manager/password_store_factory.cc b/chrome/browser/password_manager/password_store_factory.cc
index da5d716..b6311398 100644
--- a/chrome/browser/password_manager/password_store_factory.cc
+++ b/chrome/browser/password_manager/password_store_factory.cc
@@ -124,8 +124,7 @@
       profile);
   password_manager_util::RemoveUselessCredentials(
       CredentialsCleanerRunnerFactory::GetForProfile(profile), ps,
-      profile->GetPrefs(), base::TimeDelta::FromSeconds(60),
-      network_context_getter);
+      profile->GetPrefs(), base::Seconds(60), network_context_getter);
 
   if (base::FeatureList::IsEnabled(
           password_manager::features::kFillingAcrossAffiliatedWebsites)) {
diff --git a/chrome/browser/password_manager/password_store_utils.cc b/chrome/browser/password_manager/password_store_utils.cc
index 50629cc..152b6e6 100644
--- a/chrome/browser/password_manager/password_store_utils.cc
+++ b/chrome/browser/password_manager/password_store_utils.cc
@@ -50,7 +50,7 @@
         FROM_HERE,
         base::BindOnce(&StoreMetricReporterHelper::StartMetricsReporting,
                        weak_ptr_factory_.GetWeakPtr()),
-        base::TimeDelta::FromSeconds(30));
+        base::Seconds(30));
   }
   ~StoreMetricReporterHelper() override = default;
 
diff --git a/chrome/browser/performance_manager/mechanisms/userspace_swap_chromeos.cc b/chrome/browser/performance_manager/mechanisms/userspace_swap_chromeos.cc
index 8b75c0d..e1e9a69 100644
--- a/chrome/browser/performance_manager/mechanisms/userspace_swap_chromeos.cc
+++ b/chrome/browser/performance_manager/mechanisms/userspace_swap_chromeos.cc
@@ -50,7 +50,7 @@
 // preventing space from getting too low in times of heavy swap. Feel free to
 // change it if you find a better value.
 constexpr base::TimeDelta kSwapDeviceAvailableSpaceCheckInterval =
-    base::TimeDelta::FromSeconds(30);
+    base::Seconds(30);
 base::TimeTicks g_last_swap_device_free_space_check;
 uint64_t g_swap_device_free_swap_bytes;
 
diff --git a/chrome/browser/performance_manager/observers/background_metrics_reporter.h b/chrome/browser/performance_manager/observers/background_metrics_reporter.h
index 5d68319..97b2c6499 100644
--- a/chrome/browser/performance_manager/observers/background_metrics_reporter.h
+++ b/chrome/browser/performance_manager/observers/background_metrics_reporter.h
@@ -15,9 +15,9 @@
 // percentile of time spent in background is 2.5 hours, and the 95th is 24 hour.
 // In order to guide the selection of an appropriate observation window we are
 // proposing using a CUSTOM_TIMES histogram from 1s to 48h, with 100 buckets.
-#define HEURISTICS_HISTOGRAM(name, sample)                                  \
-  UMA_HISTOGRAM_CUSTOM_TIMES(name, sample, base::TimeDelta::FromSeconds(1), \
-                             base::TimeDelta::FromHours(48), 100)
+#define HEURISTICS_HISTOGRAM(name, sample)                                    \
+  UMA_HISTOGRAM_CUSTOM_TIMES(name, sample, base::Seconds(1), base::Hours(48), \
+                             100)
 
 namespace performance_manager {
 
diff --git a/chrome/browser/performance_manager/observers/isolation_context_metrics.h b/chrome/browser/performance_manager/observers/isolation_context_metrics.h
index 18c016c..26a0436 100644
--- a/chrome/browser/performance_manager/observers/isolation_context_metrics.h
+++ b/chrome/browser/performance_manager/observers/isolation_context_metrics.h
@@ -49,8 +49,7 @@
   // collection and not on its own timer, but UMA collection lives on the UI
   // thread. This wants to be something on the same order of magnitude as UMA
   // collection but not so fast as to cause pointless wakeups.
-  static constexpr base::TimeDelta kReportingInterval =
-      base::TimeDelta::FromMinutes(5);
+  static constexpr base::TimeDelta kReportingInterval = base::Minutes(5);
 
   // This histogram records the cumulative amount of time a process spends
   // hosting only frames from distinct site instances, versus hosting more than
diff --git a/chrome/browser/performance_manager/observers/isolation_context_metrics_unittest.cc b/chrome/browser/performance_manager/observers/isolation_context_metrics_unittest.cc
index 2d9d325a..76f3c5a5 100644
--- a/chrome/browser/performance_manager/observers/isolation_context_metrics_unittest.cc
+++ b/chrome/browser/performance_manager/observers/isolation_context_metrics_unittest.cc
@@ -70,7 +70,7 @@
     metrics_ = new TestIsolationContextMetrics();
 
     // Sets a valid starting time.
-    AdvanceClock(base::TimeDelta::FromSeconds(1));
+    AdvanceClock(base::Seconds(1));
     graph()->PassToGraph(base::WrapUnique(metrics_));
   }
 
@@ -221,7 +221,7 @@
   {
     // Advance time and add another frame to a new site instance, as a child
     // of |frame1|.
-    AdvanceClock(base::TimeDelta::FromSeconds(1));
+    AdvanceClock(base::Seconds(1));
     auto frame2 =
         CreateFrameNode(process.get(), page.get(), kBID1, kSID2, frame1.get());
     EXPECT_EQ(2u, data1->site_instance_frame_count.size());
@@ -252,7 +252,7 @@
         metrics_->kSiteInstancesPerRendererByTimeHistogram, 2, 1);
 
     // Advance time.
-    AdvanceClock(base::TimeDelta::FromSeconds(1));
+    AdvanceClock(base::Seconds(1));
   }
 
   // The second frame will be destroyed as it goes out of scope. Expect another
@@ -284,7 +284,7 @@
   {
     // Advance time and add another frame to the same site instance, as a child
     // of |frame1|.
-    AdvanceClock(base::TimeDelta::FromSeconds(1));
+    AdvanceClock(base::Seconds(1));
     auto frame2 =
         CreateFrameNode(process.get(), page.get(), kBID1, kSID1, frame1.get());
     EXPECT_EQ(1u, data1->site_instance_frame_count.size());
@@ -321,7 +321,7 @@
         metrics_->kSiteInstancesPerRendererByTimeHistogram, 2, 1);
 
     // Advance time.
-    AdvanceClock(base::TimeDelta::FromSeconds(1));
+    AdvanceClock(base::Seconds(1));
   }
 
   // The second frame will be destroyed as it goes out of scope. Expect another
diff --git a/chrome/browser/performance_manager/observers/metrics_collector.cc b/chrome/browser/performance_manager/observers/metrics_collector.cc
index e481821..5c08585 100644
--- a/chrome/browser/performance_manager/observers/metrics_collector.cc
+++ b/chrome/browser/performance_manager/observers/metrics_collector.cc
@@ -33,8 +33,7 @@
 
 // Delay the metrics report from for 5 minutes from when the main frame
 // navigation is committed.
-const base::TimeDelta kMetricsReportDelayTimeout =
-    base::TimeDelta::FromMinutes(5);
+const base::TimeDelta kMetricsReportDelayTimeout = base::Minutes(5);
 
 const char kTabFromBackgroundedToFirstFaviconUpdatedUMA[] =
     "TabManager.Heuristics.FromBackgroundedToFirstFaviconUpdated";
@@ -112,11 +111,9 @@
     return;
 
   UMA_HISTOGRAM_CUSTOM_TIMES("Renderer.ProcessLifetime2.HighResolution",
-                             lifetime, base::TimeDelta::FromSeconds(1),
-                             base::TimeDelta::FromMinutes(5), 100);
+                             lifetime, base::Seconds(1), base::Minutes(5), 100);
   UMA_HISTOGRAM_CUSTOM_TIMES("Renderer.ProcessLifetime2.LowResolution",
-                             lifetime, base::TimeDelta::FromSeconds(1),
-                             base::TimeDelta::FromDays(1), 100);
+                             lifetime, base::Seconds(1), base::Days(1), 100);
 }
 
 void MetricsCollector::OnTitleUpdated(const PageNode* page_node) {
diff --git a/chrome/browser/performance_manager/observers/metrics_collector_unittest.cc b/chrome/browser/performance_manager/observers/metrics_collector_unittest.cc
index 95fccbb..e65e55a2 100644
--- a/chrome/browser/performance_manager/observers/metrics_collector_unittest.cc
+++ b/chrome/browser/performance_manager/observers/metrics_collector_unittest.cc
@@ -17,7 +17,7 @@
 namespace performance_manager {
 
 const base::TimeDelta kTestMetricsReportDelayTimeout =
-    kMetricsReportDelayTimeout + base::TimeDelta::FromSeconds(1);
+    kMetricsReportDelayTimeout + base::Seconds(1);
 const char kHtmlMimeType[] = "text/html";
 
 // TODO(crbug.com/759905) Enable on Windows once this bug is fixed.
diff --git a/chrome/browser/performance_manager/policies/background_tab_loading_policy.h b/chrome/browser/performance_manager/policies/background_tab_loading_policy.h
index 68f2a99f..339378bf 100644
--- a/chrome/browser/performance_manager/policies/background_tab_loading_policy.h
+++ b/chrome/browser/performance_manager/policies/background_tab_loading_policy.h
@@ -189,8 +189,7 @@
   static constexpr uint32_t kDesiredAmountOfFreeMemoryMb = 150;
 
   // The maximum time since last use of a tab in order for it to be loaded.
-  static constexpr base::TimeDelta kMaxTimeSinceLastUseToLoad =
-      base::TimeDelta::FromDays(30);
+  static constexpr base::TimeDelta kMaxTimeSinceLastUseToLoad = base::Days(30);
 
   // Lower bound for the maximum number of tabs to load simultaneously.
   static constexpr uint32_t kMinSimultaneousTabLoads = 1;
diff --git a/chrome/browser/performance_manager/policies/background_tab_loading_policy_helpers_unittest.cc b/chrome/browser/performance_manager/policies/background_tab_loading_policy_helpers_unittest.cc
index e1980b3..db0d8ac1 100644
--- a/chrome/browser/performance_manager/policies/background_tab_loading_policy_helpers_unittest.cc
+++ b/chrome/browser/performance_manager/policies/background_tab_loading_policy_helpers_unittest.cc
@@ -59,61 +59,37 @@
   tab_age_score.reserve(1000);
 
   // Generate some known edge cases.
-  tab_age_score.push_back(
-      std::make_pair(base::TimeDelta::FromMilliseconds(-1001), 0.0));
-  tab_age_score.push_back(
-      std::make_pair(base::TimeDelta::FromMilliseconds(-1000), 0.0));
-  tab_age_score.push_back(
-      std::make_pair(base::TimeDelta::FromMilliseconds(-999), 0.0));
-  tab_age_score.push_back(
-      std::make_pair(base::TimeDelta::FromMilliseconds(-500), 0.0));
-  tab_age_score.push_back(
-      std::make_pair(base::TimeDelta::FromMilliseconds(0), 0.0));
-  tab_age_score.push_back(
-      std::make_pair(base::TimeDelta::FromMilliseconds(500), 0.0));
-  tab_age_score.push_back(
-      std::make_pair(base::TimeDelta::FromMilliseconds(999), 0.0));
-  tab_age_score.push_back(
-      std::make_pair(base::TimeDelta::FromMilliseconds(1000), 0.0));
-  tab_age_score.push_back(
-      std::make_pair(base::TimeDelta::FromMilliseconds(1001), 0.0));
+  tab_age_score.push_back(std::make_pair(base::Milliseconds(-1001), 0.0));
+  tab_age_score.push_back(std::make_pair(base::Milliseconds(-1000), 0.0));
+  tab_age_score.push_back(std::make_pair(base::Milliseconds(-999), 0.0));
+  tab_age_score.push_back(std::make_pair(base::Milliseconds(-500), 0.0));
+  tab_age_score.push_back(std::make_pair(base::Milliseconds(0), 0.0));
+  tab_age_score.push_back(std::make_pair(base::Milliseconds(500), 0.0));
+  tab_age_score.push_back(std::make_pair(base::Milliseconds(999), 0.0));
+  tab_age_score.push_back(std::make_pair(base::Milliseconds(1000), 0.0));
+  tab_age_score.push_back(std::make_pair(base::Milliseconds(1001), 0.0));
 
   // Generate a logarithmic selection of ages to test the whole range.
-  tab_age_score.push_back(
-      std::make_pair(base::TimeDelta::FromSeconds(-1000000), 0.0));
-  tab_age_score.push_back(
-      std::make_pair(base::TimeDelta::FromSeconds(-100000), 0.0));
-  tab_age_score.push_back(
-      std::make_pair(base::TimeDelta::FromSeconds(-10000), 0.0));
-  tab_age_score.push_back(
-      std::make_pair(base::TimeDelta::FromSeconds(-1000), 0.0));
-  tab_age_score.push_back(
-      std::make_pair(base::TimeDelta::FromSeconds(-100), 0.0));
-  tab_age_score.push_back(
-      std::make_pair(base::TimeDelta::FromSeconds(-10), 0.0));
-  tab_age_score.push_back(
-      std::make_pair(base::TimeDelta::FromSeconds(10), 0.0));
-  tab_age_score.push_back(
-      std::make_pair(base::TimeDelta::FromSeconds(100), 0.0));
-  tab_age_score.push_back(
-      std::make_pair(base::TimeDelta::FromSeconds(1000), 0.0));
-  tab_age_score.push_back(
-      std::make_pair(base::TimeDelta::FromSeconds(10000), 0.0));
-  tab_age_score.push_back(
-      std::make_pair(base::TimeDelta::FromSeconds(100000), 0.0));
-  tab_age_score.push_back(
-      std::make_pair(base::TimeDelta::FromSeconds(1000000), 0.0));
-  tab_age_score.push_back(
-      std::make_pair(base::TimeDelta::FromSeconds(10000000), 0.0));
+  tab_age_score.push_back(std::make_pair(base::Seconds(-1000000), 0.0));
+  tab_age_score.push_back(std::make_pair(base::Seconds(-100000), 0.0));
+  tab_age_score.push_back(std::make_pair(base::Seconds(-10000), 0.0));
+  tab_age_score.push_back(std::make_pair(base::Seconds(-1000), 0.0));
+  tab_age_score.push_back(std::make_pair(base::Seconds(-100), 0.0));
+  tab_age_score.push_back(std::make_pair(base::Seconds(-10), 0.0));
+  tab_age_score.push_back(std::make_pair(base::Seconds(10), 0.0));
+  tab_age_score.push_back(std::make_pair(base::Seconds(100), 0.0));
+  tab_age_score.push_back(std::make_pair(base::Seconds(1000), 0.0));
+  tab_age_score.push_back(std::make_pair(base::Seconds(10000), 0.0));
+  tab_age_score.push_back(std::make_pair(base::Seconds(100000), 0.0));
+  tab_age_score.push_back(std::make_pair(base::Seconds(1000000), 0.0));
+  tab_age_score.push_back(std::make_pair(base::Seconds(10000000), 0.0));
 
   constexpr int kMonthInSeconds = 60 * 60 * 24 * 31;
 
   // Generate a bunch more random ages.
   for (size_t i = tab_age_score.size(); i < 1000; ++i) {
-    tab_age_score.push_back(
-        std::make_pair(base::TimeDelta::FromSeconds(
-                           base::RandInt(-kMonthInSeconds, kMonthInSeconds)),
-                       0.0));
+    tab_age_score.push_back(std::make_pair(
+        base::Seconds(base::RandInt(-kMonthInSeconds, kMonthInSeconds)), 0.0));
   }
 
   // Calculate the tab scores.
diff --git a/chrome/browser/performance_manager/policies/background_tab_loading_policy_unittest.cc b/chrome/browser/performance_manager/policies/background_tab_loading_policy_unittest.cc
index 47ad400f..ae0e522 100644
--- a/chrome/browser/performance_manager/policies/background_tab_loading_policy_unittest.cc
+++ b/chrome/browser/performance_manager/policies/background_tab_loading_policy_unittest.cc
@@ -219,8 +219,8 @@
 
   page_node = CreateNode<performance_manager::PageNodeImpl>(
       WebContentsProxy(), std::string(), GURL(), false, false,
-      base::TimeTicks::Now() - (base::TimeDelta::FromSeconds(1) +
-                                policy()->kMaxTimeSinceLastUseToLoad));
+      base::TimeTicks::Now() -
+          (base::Seconds(1) + policy()->kMaxTimeSinceLastUseToLoad));
   raw_page_node = page_node.get();
 
   // Simulate that kMinTabsToLoad have loaded.
@@ -243,19 +243,19 @@
   // Add a old tab to restore.
   page_nodes.push_back(CreateNode<performance_manager::PageNodeImpl>(
       WebContentsProxy(), std::string(), GURL(), false, false,
-      base::TimeTicks::Now() - base::TimeDelta::FromDays(30)));
+      base::TimeTicks::Now() - base::Days(30)));
   raw_page_nodes.push_back(page_nodes.back().get());
 
   // Add a recent tab to restore.
   page_nodes.push_back(CreateNode<performance_manager::PageNodeImpl>(
       WebContentsProxy(), std::string(), GURL(), false, false,
-      base::TimeTicks::Now() - base::TimeDelta::FromSeconds(1)));
+      base::TimeTicks::Now() - base::Seconds(1)));
   raw_page_nodes.push_back(page_nodes.back().get());
 
   // Add an internal page to restore.
   page_nodes.push_back(CreateNode<performance_manager::PageNodeImpl>(
       WebContentsProxy(), std::string(), GURL("chrome://newtab"), false, false,
-      base::TimeTicks::Now() - base::TimeDelta::FromSeconds(1)));
+      base::TimeTicks::Now() - base::Seconds(1)));
   raw_page_nodes.push_back(page_nodes.back().get());
 
   // Set |is_tab| property as this is a requirement to pass the PageNode to
diff --git a/chrome/browser/performance_manager/policies/bfcache_policy_browsertest.cc b/chrome/browser/performance_manager/policies/bfcache_policy_browsertest.cc
index ee03561..ebdeecf 100644
--- a/chrome/browser/performance_manager/policies/bfcache_policy_browsertest.cc
+++ b/chrome/browser/performance_manager/policies/bfcache_policy_browsertest.cc
@@ -117,7 +117,7 @@
                 content::RenderFrameHost::LifecycleState::kInBackForwardCache);
             run_loop.Quit();
           }),
-          base::TimeDelta::FromSeconds(std::max(
+          base::Seconds(std::max(
               0, GetParam().delay_to_flush_background_tab_in_seconds)));
       run_loop.Run();
     }
diff --git a/chrome/browser/performance_manager/policies/dynamic_tcmalloc_policy_chromeos.cc b/chrome/browser/performance_manager/policies/dynamic_tcmalloc_policy_chromeos.cc
index d18ede7..3d16768 100644
--- a/chrome/browser/performance_manager/policies/dynamic_tcmalloc_policy_chromeos.cc
+++ b/chrome/browser/performance_manager/policies/dynamic_tcmalloc_policy_chromeos.cc
@@ -68,8 +68,7 @@
 void DynamicTcmallocPolicy::OnPassedToGraph(Graph* graph) {
   graph_ = graph;
   timer_.Start(
-      FROM_HERE,
-      base::TimeDelta::FromSeconds(features::kDynamicTuningTimeSec.Get()),
+      FROM_HERE, base::Seconds(features::kDynamicTuningTimeSec.Get()),
       base::BindRepeating(&DynamicTcmallocPolicy::CheckAndUpdateTunables,
                           base::Unretained(this)));
 }
@@ -171,7 +170,7 @@
           // invisible time cutoff we will reduce the overall thread cache
           // size for that ProcessNode to 75%.
           if (last_visibility_change <
-              base::TimeDelta::FromSeconds(
+              base::Seconds(
                   features::kDynamicTuningScaleInvisibleTimeSec.Get())) {
             // This frame is invisible but not for long enough so we cannot
             // scale any further.
diff --git a/chrome/browser/performance_manager/policies/dynamic_tcmalloc_policy_chromeos_unittest.cc b/chrome/browser/performance_manager/policies/dynamic_tcmalloc_policy_chromeos_unittest.cc
index ba9272a8..9498a48 100644
--- a/chrome/browser/performance_manager/policies/dynamic_tcmalloc_policy_chromeos_unittest.cc
+++ b/chrome/browser/performance_manager/policies/dynamic_tcmalloc_policy_chromeos_unittest.cc
@@ -157,8 +157,7 @@
 TEST_F(DynamicTcmallocPolicyTest, PeriodicPressureCheck) {
   // Advance through two intervals to confirm that we see our periodic checks.
   EXPECT_CALL(*policy(), CheckAndUpdateTunables()).Times(2);
-  FastForwardBy(base::TimeDelta::FromSeconds(
-      2 * features::kDynamicTuningTimeSec.Get() + 1));
+  FastForwardBy(base::Seconds(2 * features::kDynamicTuningTimeSec.Get() + 1));
 }
 
 // This test will validate that for a mocked value of memory available we see a
@@ -188,8 +187,7 @@
       .Times(1);
 
   // Advancing beyond our interval will cause a periodic pressure check.
-  FastForwardBy(
-      base::TimeDelta::FromSeconds(features::kDynamicTuningTimeSec.Get() + 1));
+  FastForwardBy(base::Seconds(features::kDynamicTuningTimeSec.Get() + 1));
 }
 
 // This test validates that process nodes with no frame nodes are skipped.
@@ -212,8 +210,7 @@
   EXPECT_CALL(*policy(), EnsureTcmallocTunablesForProcess(testing::_)).Times(0);
 
   // Advancing beyond our interval will cause a periodic pressure check.
-  FastForwardBy(
-      base::TimeDelta::FromSeconds(features::kDynamicTuningTimeSec.Get() + 1));
+  FastForwardBy(base::Seconds(features::kDynamicTuningTimeSec.Get() + 1));
 }
 
 // This test will validate that the minimum size is enforced and we won't
@@ -245,8 +242,7 @@
       .Times(1);
 
   // Advancing beyond our interval will cause a periodic pressure check.
-  FastForwardBy(
-      base::TimeDelta::FromSeconds(features::kDynamicTuningTimeSec.Get() + 1));
+  FastForwardBy(base::Seconds(features::kDynamicTuningTimeSec.Get() + 1));
 }
 
 // This test will validate that we apply the invisible scale factor only when
@@ -297,7 +293,7 @@
 
   // Advancing beyond our interval will cause two periodic checks and the second
   // will result in the additional scaling because the page node is invisible.
-  FastForwardBy(base::TimeDelta::FromSeconds(dynamic_tuning_time_sec + 1));
+  FastForwardBy(base::Seconds(dynamic_tuning_time_sec + 1));
 
   // And we're expecting that we do apply it on our second call as it will have
   // moved us beyond the invisible time cutoff time.
@@ -310,7 +306,7 @@
 
   // This second advance will also cause us to pass the invisible scale cutoff
   // time, so we will expect the second call with a scaled value this time.
-  FastForwardBy(base::TimeDelta::FromSeconds(dynamic_tuning_time_sec + 1));
+  FastForwardBy(base::Seconds(dynamic_tuning_time_sec + 1));
 }
 
 #endif  // BUILDFLAG(USE_TCMALLOC)
diff --git a/chrome/browser/performance_manager/policies/page_discarding_helper.cc b/chrome/browser/performance_manager/policies/page_discarding_helper.cc
index 100af80f..82828b2 100644
--- a/chrome/browser/performance_manager/policies/page_discarding_helper.cc
+++ b/chrome/browser/performance_manager/policies/page_discarding_helper.cc
@@ -33,12 +33,11 @@
 // Time during which non visible pages are protected from urgent discarding
 // (not on ChromeOS).
 constexpr base::TimeDelta kNonVisiblePagesUrgentProtectionTime =
-    base::TimeDelta::FromMinutes(10);
+    base::Minutes(10);
 #endif
 
 // Time during which a tab cannot be discarded after having played audio.
-constexpr base::TimeDelta kTabAudioProtectionTime =
-    base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kTabAudioProtectionTime = base::Minutes(1);
 
 // NodeAttachedData used to indicate that there's already been an attempt to
 // discard a PageNode.
diff --git a/chrome/browser/performance_manager/policies/page_discarding_helper_unittest.cc b/chrome/browser/performance_manager/policies/page_discarding_helper_unittest.cc
index 061f7dd..26c7885 100644
--- a/chrome/browser/performance_manager/policies/page_discarding_helper_unittest.cc
+++ b/chrome/browser/performance_manager/policies/page_discarding_helper_unittest.cc
@@ -302,15 +302,15 @@
   testing::MakePageNodeDiscardable(page_node3.get(), task_env());
 
   page_node2->SetIsVisible(true);
-  AdvanceClock(base::TimeDelta::FromMinutes(30));
+  AdvanceClock(base::Minutes(30));
   page_node2->SetIsVisible(false);
-  AdvanceClock(base::TimeDelta::FromMinutes(30));
+  AdvanceClock(base::Minutes(30));
 
   // |page_node3| is the most recently visible page.
   page_node3->SetIsVisible(true);
-  AdvanceClock(base::TimeDelta::FromMinutes(30));
+  AdvanceClock(base::Minutes(30));
   page_node3->SetIsVisible(false);
-  AdvanceClock(base::TimeDelta::FromMinutes(30));
+  AdvanceClock(base::Minutes(30));
 
   process_node()->set_resident_set_kb(1024);
   process_node2->set_resident_set_kb(1024);
@@ -351,15 +351,15 @@
   testing::MakePageNodeDiscardable(page_node3.get(), task_env());
 
   page_node2->SetIsVisible(true);
-  AdvanceClock(base::TimeDelta::FromMinutes(30));
+  AdvanceClock(base::Minutes(30));
   page_node2->SetIsVisible(false);
-  AdvanceClock(base::TimeDelta::FromMinutes(30));
+  AdvanceClock(base::Minutes(30));
 
   // |page_node3| is the most recently visible page.
   page_node3->SetIsVisible(true);
-  AdvanceClock(base::TimeDelta::FromMinutes(30));
+  AdvanceClock(base::Minutes(30));
   page_node3->SetIsVisible(false);
-  AdvanceClock(base::TimeDelta::FromMinutes(30));
+  AdvanceClock(base::Minutes(30));
 
   process_node()->set_resident_set_kb(1024);
   process_node2->set_resident_set_kb(1024);
@@ -463,9 +463,9 @@
 
   // Pretend that |page_node2| is the most recently visible page.
   page_node2->SetIsVisible(true);
-  AdvanceClock(base::TimeDelta::FromMinutes(30));
+  AdvanceClock(base::Minutes(30));
   page_node2->SetIsVisible(false);
-  AdvanceClock(base::TimeDelta::FromMinutes(30));
+  AdvanceClock(base::Minutes(30));
   EXPECT_TRUE(
       PageDiscardingHelper::GetFromGraph(graph())->CanUrgentlyDiscardForTesting(
           page_node2.get()));
@@ -572,9 +572,9 @@
 
   // Pretend that |page_node()| is the most recently visible page.
   page_node()->SetIsVisible(true);
-  AdvanceClock(base::TimeDelta::FromMinutes(30));
+  AdvanceClock(base::Minutes(30));
   page_node()->SetIsVisible(false);
-  AdvanceClock(base::TimeDelta::FromMinutes(30));
+  AdvanceClock(base::Minutes(30));
   EXPECT_TRUE(
       PageDiscardingHelper::GetFromGraph(graph())->CanUrgentlyDiscardForTesting(
           page_node()));
@@ -604,9 +604,9 @@
 
   // Pretend that |page_node()| is the most recently visible page.
   page_node()->SetIsVisible(true);
-  AdvanceClock(base::TimeDelta::FromMinutes(30));
+  AdvanceClock(base::Minutes(30));
   page_node()->SetIsVisible(false);
-  AdvanceClock(base::TimeDelta::FromMinutes(30));
+  AdvanceClock(base::Minutes(30));
   EXPECT_TRUE(
       PageDiscardingHelper::GetFromGraph(graph())->CanUrgentlyDiscardForTesting(
           page_node()));
diff --git a/chrome/browser/performance_manager/policies/page_freezing_policy.cc b/chrome/browser/performance_manager/policies/page_freezing_policy.cc
index 2b7d2e8..eefadb6 100644
--- a/chrome/browser/performance_manager/policies/page_freezing_policy.cc
+++ b/chrome/browser/performance_manager/policies/page_freezing_policy.cc
@@ -20,8 +20,8 @@
 
 namespace {
 
-constexpr base::TimeDelta kUnfreezeInterval = base::TimeDelta::FromMinutes(5);
-constexpr base::TimeDelta kUnfreezeDuration = base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kUnfreezeInterval = base::Minutes(5);
+constexpr base::TimeDelta kUnfreezeDuration = base::Seconds(10);
 
 bool IsPageNodeFrozen(const PageNode* page_node) {
   return page_node->GetLifecycleState() ==
diff --git a/chrome/browser/performance_manager/policies/policy_features.cc b/chrome/browser/performance_manager/policies/policy_features.cc
index b7bfa25..98f02012 100644
--- a/chrome/browser/performance_manager/policies/policy_features.cc
+++ b/chrome/browser/performance_manager/policies/policy_features.cc
@@ -62,12 +62,10 @@
     &kTrimArcOnMemoryPressure, "ArcProcessInactivityTimeSec", 600};
 
 const base::FeatureParam<base::TimeDelta> kArcVmInactivityTimeMs = {
-    &kTrimArcVmOnMemoryPressure, "ArcVmInactivityTimeMs",
-    base::TimeDelta::FromSeconds(1200)};
+    &kTrimArcVmOnMemoryPressure, "ArcVmInactivityTimeMs", base::Seconds(1200)};
 
 const base::FeatureParam<base::TimeDelta> kArcVmTrimBackoffTimeMs = {
-    &kTrimArcVmOnMemoryPressure, "ArcVmTrimBackoffTimeMs",
-    base::TimeDelta::FromSeconds(1800)};
+    &kTrimArcVmOnMemoryPressure, "ArcVmTrimBackoffTimeMs", base::Seconds(1800)};
 
 const base::FeatureParam<bool> kTrimArcVmOnCriticalPressure = {
     &kTrimArcVmOnMemoryPressure, "TrimArcVmOnCriticalPressure", false};
@@ -95,16 +93,14 @@
 TrimOnMemoryPressureParams TrimOnMemoryPressureParams::GetParams() {
   TrimOnMemoryPressureParams params;
   params.graph_walk_backoff_time =
-      base::TimeDelta::FromSeconds(kGraphWalkBackoffTimeSec.Get());
-  params.node_invisible_time =
-      base::TimeDelta::FromSeconds(kNodeInvisibileTimeSec.Get());
-  params.node_trim_backoff_time =
-      base::TimeDelta::FromSeconds(kNodeTrimBackoffTimeSec.Get());
+      base::Seconds(kGraphWalkBackoffTimeSec.Get());
+  params.node_invisible_time = base::Seconds(kNodeInvisibileTimeSec.Get());
+  params.node_trim_backoff_time = base::Seconds(kNodeTrimBackoffTimeSec.Get());
 
   params.arc_process_trim_backoff_time =
-      base::TimeDelta::FromSeconds(kArcProcessTrimBackoffTimeSec.Get());
+      base::Seconds(kArcProcessTrimBackoffTimeSec.Get());
   params.arc_process_list_fetch_backoff_time =
-      base::TimeDelta::FromSeconds(kArcProcessListFetchBackoffTimeSec.Get());
+      base::Seconds(kArcProcessListFetchBackoffTimeSec.Get());
   params.trim_arc_system_processes = kTrimArcSystemProcesses.Get();
   params.trim_arc_app_processes = kTrimArcAppProcesses.Get();
   params.trim_arc_aggressive = kTrimArcAggressive.Get();
@@ -112,8 +108,7 @@
 
   const int arc_inactivity_time = kArcProcessInactivityTimeSec.Get();
   if (arc_inactivity_time > 0) {
-    params.arc_process_inactivity_time =
-        base::TimeDelta::FromSeconds(arc_inactivity_time);
+    params.arc_process_inactivity_time = base::Seconds(arc_inactivity_time);
   } else {
     // This causes us to ignore the last activity time if it was not configured.
     params.arc_process_inactivity_time = base::TimeDelta::Min();
diff --git a/chrome/browser/performance_manager/policies/userspace_swap_policy_chromeos.cc b/chrome/browser/performance_manager/policies/userspace_swap_policy_chromeos.cc
index 8655f77..c14a738 100644
--- a/chrome/browser/performance_manager/policies/userspace_swap_policy_chromeos.cc
+++ b/chrome/browser/performance_manager/policies/userspace_swap_policy_chromeos.cc
@@ -40,7 +40,7 @@
   base::TimeTicks last_swap_;
 };
 
-constexpr base::TimeDelta kMetricsInterval = base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kMetricsInterval = base::Seconds(30);
 
 }  // namespace
 
diff --git a/chrome/browser/performance_manager/policies/userspace_swap_policy_chromeos_unittest.cc b/chrome/browser/performance_manager/policies/userspace_swap_policy_chromeos_unittest.cc
index c6ecd0e..c12f0c75 100644
--- a/chrome/browser/performance_manager/policies/userspace_swap_policy_chromeos_unittest.cc
+++ b/chrome/browser/performance_manager/policies/userspace_swap_policy_chromeos_unittest.cc
@@ -84,9 +84,9 @@
     memset(&test_config_, 0, sizeof(test_config_));
 
     test_config_.enabled = true;
-    test_config_.graph_walk_frequency = base::TimeDelta::FromSeconds(10);
-    test_config_.invisible_time_before_swap = base::TimeDelta::FromSeconds(30);
-    test_config_.process_swap_frequency = base::TimeDelta::FromSeconds(60);
+    test_config_.graph_walk_frequency = base::Seconds(10);
+    test_config_.invisible_time_before_swap = base::Seconds(30);
+    test_config_.process_swap_frequency = base::Seconds(60);
     test_config_.swap_on_freeze = true;
     test_config_.swap_on_moderate_pressure = true;
     return test_config_;
@@ -194,7 +194,7 @@
 // This test validates that we only walk the graph under moderate pressure.
 TEST_F(UserspaceSwapPolicyTest, ValidateGraphWalkFrequencyNoPressure) {
   auto last_walk_time = base::TimeTicks::Now();
-  policy()->config().graph_walk_frequency = base::TimeDelta::FromSeconds(1);
+  policy()->config().graph_walk_frequency = base::Seconds(1);
   policy()->config().swap_on_moderate_pressure = true;
   policy()->set_last_graph_walk(last_walk_time);
 
@@ -212,7 +212,7 @@
 // This test validates that we only call WalkGraph every graph walk frequency
 // seconds when under moderate pressure.
 TEST_F(UserspaceSwapPolicyTest, ValidateGraphWalkFrequencyModeratePressure) {
-  policy()->config().graph_walk_frequency = base::TimeDelta::FromSeconds(60);
+  policy()->config().graph_walk_frequency = base::Seconds(60);
 
   // We expect that we will call SwapNodesOnGraph only 2 times.
   EXPECT_CALL(*policy(), SwapNodesOnGraph()).Times(2);
@@ -222,13 +222,13 @@
   system_node()->OnMemoryPressureForTesting(
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE);
   auto initial_walk_time = base::TimeTicks::Now();
-  FastForwardBy(base::TimeDelta::FromSeconds(1));
+  FastForwardBy(base::Seconds(1));
   ASSERT_EQ(initial_walk_time, policy()->get_last_graph_walk());
 
   // We will fast forward less than the graph walk frequency and confirm we
   // don't walk again even when we receive another moderate pressure
   // notification.
-  FastForwardBy(base::TimeDelta::FromSeconds(1));
+  FastForwardBy(base::Seconds(1));
   system_node()->OnMemoryPressureForTesting(
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE);
   // Since it's been less than the graph walk frequency we don't expect to walk.
@@ -240,13 +240,13 @@
   system_node()->OnMemoryPressureForTesting(
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE);
 
-  FastForwardBy(base::TimeDelta::FromSeconds(1));
+  FastForwardBy(base::Seconds(1));
   ASSERT_NE(initial_walk_time, policy()->get_last_graph_walk());
 }
 
 // Validate we don't swap when not eligible.
 TEST_F(UserspaceSwapPolicyTest, OnlySwapWhenEligibleToSwap) {
-  policy()->config().graph_walk_frequency = base::TimeDelta::FromSeconds(60);
+  policy()->config().graph_walk_frequency = base::Seconds(60);
 
   // Dispatch to the default swap nodes on graph implementation.
   EXPECT_CALL(*policy(), SwapNodesOnGraph())
@@ -264,7 +264,7 @@
   // Trigger moderate memory pressure to start the graph walk.
   system_node()->OnMemoryPressureForTesting(
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE);
-  FastForwardBy(base::TimeDelta::FromSeconds(1));
+  FastForwardBy(base::Seconds(1));
 }
 
 TEST_F(UserspaceSwapPolicyTest, OnlySwapWhenEligibleToSwapTrue) {
@@ -284,14 +284,14 @@
   // Trigger moderate memory pressure to start the graph walk.
   system_node()->OnMemoryPressureForTesting(
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE);
-  FastForwardBy(base::TimeDelta::FromSeconds(1));
+  FastForwardBy(base::Seconds(1));
 }
 
 // This test validates that we won't swap a node when it's visible.
 TEST_F(UserspaceSwapPolicyTest, DontSwapWhenVisible) {
   // We will only swap a renderer once every 3 graph walks.
-  policy()->config().graph_walk_frequency = base::TimeDelta::FromSeconds(1);
-  policy()->config().process_swap_frequency = base::TimeDelta::FromSeconds(1);
+  policy()->config().graph_walk_frequency = base::Seconds(1);
+  policy()->config().process_swap_frequency = base::Seconds(1);
 
   EXPECT_CALL(*policy(), InitializeProcessNode(process_node().get()))
       .WillOnce(Return(true));
@@ -311,8 +311,8 @@
 // This test validates that we won't swap a node when it's audible.
 TEST_F(UserspaceSwapPolicyTest, DontSwapWhenAudible) {
   // We will only swap a renderer once every 3 graph walks.
-  policy()->config().graph_walk_frequency = base::TimeDelta::FromSeconds(1);
-  policy()->config().process_swap_frequency = base::TimeDelta::FromSeconds(1);
+  policy()->config().graph_walk_frequency = base::Seconds(1);
+  policy()->config().process_swap_frequency = base::Seconds(1);
 
   EXPECT_CALL(*policy(), InitializeProcessNode(process_node().get()))
       .WillOnce(Return(true));
@@ -334,8 +334,8 @@
 // This test validates that we won't swap a node when it's loading.
 TEST_F(UserspaceSwapPolicyTest, DontSwapWhenLoading) {
   // We will only swap a renderer once every 3 graph walks.
-  policy()->config().graph_walk_frequency = base::TimeDelta::FromSeconds(1);
-  policy()->config().process_swap_frequency = base::TimeDelta::FromSeconds(1);
+  policy()->config().graph_walk_frequency = base::Seconds(1);
+  policy()->config().process_swap_frequency = base::Seconds(1);
 
   EXPECT_CALL(*policy(), InitializeProcessNode(process_node().get()))
       .WillOnce(Return(true));
@@ -353,7 +353,7 @@
 // the configuration allows.
 TEST_F(UserspaceSwapPolicyTest, ValidateProcessSwapFrequency) {
   // We will only swap a renderer once every 3 graph walks.
-  policy()->config().graph_walk_frequency = base::TimeDelta::FromSeconds(1);
+  policy()->config().graph_walk_frequency = base::Seconds(1);
   policy()->config().process_swap_frequency =
       3 * policy()->config().graph_walk_frequency;
 
@@ -399,8 +399,8 @@
 // is below the limit.
 TEST_F(UserspaceSwapPolicyTest, DontSwapWhenDiskSpaceTooLow) {
   // We will only swap a renderer once every 3 graph walks.
-  policy()->config().graph_walk_frequency = base::TimeDelta::FromSeconds(1);
-  policy()->config().process_swap_frequency = base::TimeDelta::FromSeconds(1);
+  policy()->config().graph_walk_frequency = base::Seconds(1);
+  policy()->config().process_swap_frequency = base::Seconds(1);
 
   policy()->config().minimum_swap_disk_space_available = 1 << 30;  // 1 GB
 
@@ -424,8 +424,8 @@
 // exceeding the individual renderer limit.
 TEST_F(UserspaceSwapPolicyTest, DontSwapWhenPerRendererSwapExceeded) {
   // We will only swap a renderer once every 3 graph walks.
-  policy()->config().graph_walk_frequency = base::TimeDelta::FromSeconds(1);
-  policy()->config().process_swap_frequency = base::TimeDelta::FromSeconds(1);
+  policy()->config().graph_walk_frequency = base::Seconds(1);
+  policy()->config().process_swap_frequency = base::Seconds(1);
 
   policy()->config().renderer_maximum_disk_swap_file_size_bytes =
       128 << 20;  // 128MB
@@ -450,8 +450,8 @@
 // global limit.
 TEST_F(UserspaceSwapPolicyTest, DontSwapWhenTotalRendererSwapExceeded) {
   // We will only swap a renderer once every 3 graph walks.
-  policy()->config().graph_walk_frequency = base::TimeDelta::FromSeconds(1);
-  policy()->config().process_swap_frequency = base::TimeDelta::FromSeconds(1);
+  policy()->config().graph_walk_frequency = base::Seconds(1);
+  policy()->config().process_swap_frequency = base::Seconds(1);
 
   policy()->config().maximum_swap_disk_space_bytes = 1 << 30;  // 1 GB
 
diff --git a/chrome/browser/performance_manager/policies/working_set_trimmer_policy_arcvm_unittest.cc b/chrome/browser/performance_manager/policies/working_set_trimmer_policy_arcvm_unittest.cc
index 978280b..23f43ec 100644
--- a/chrome/browser/performance_manager/policies/working_set_trimmer_policy_arcvm_unittest.cc
+++ b/chrome/browser/performance_manager/policies/working_set_trimmer_policy_arcvm_unittest.cc
@@ -79,7 +79,7 @@
     task_environment_.FastForwardBy(delta);
   }
 
-  base::TimeDelta GetInterval() { return base::TimeDelta::FromMinutes(1); }
+  base::TimeDelta GetInterval() { return base::Minutes(1); }
   WorkingSetTrimmerPolicyArcVm* trimmer() { return policy_.get(); }
 
  private:
@@ -103,7 +103,7 @@
   trimmer()->OnConnectionReady();
   EXPECT_FALSE(trimmer()->IsEligibleForReclaim(GetInterval(), false));
   FastForwardBy(GetInterval());
-  FastForwardBy(base::TimeDelta::FromSeconds(1));
+  FastForwardBy(base::Seconds(1));
   EXPECT_TRUE(trimmer()->IsEligibleForReclaim(GetInterval(), false));
 }
 
@@ -112,13 +112,13 @@
 TEST_F(WorkingSetTrimmerPolicyArcVmTest, UserInteraction) {
   trimmer()->OnConnectionReady();
   FastForwardBy(GetInterval());
-  FastForwardBy(base::TimeDelta::FromSeconds(1));
+  FastForwardBy(base::Seconds(1));
   EXPECT_TRUE(trimmer()->IsEligibleForReclaim(GetInterval(), false));
   trimmer()->OnUserInteraction(
       arc::UserInteractionType::APP_STARTED_FROM_LAUNCHER);
   EXPECT_FALSE(trimmer()->IsEligibleForReclaim(GetInterval(), false));
   FastForwardBy(GetInterval());
-  FastForwardBy(base::TimeDelta::FromSeconds(1));
+  FastForwardBy(base::Seconds(1));
   EXPECT_TRUE(trimmer()->IsEligibleForReclaim(GetInterval(), false));
 }
 
@@ -127,14 +127,14 @@
 TEST_F(WorkingSetTrimmerPolicyArcVmTest, ArcVmNotRunning) {
   trimmer()->OnConnectionReady();
   FastForwardBy(GetInterval());
-  FastForwardBy(base::TimeDelta::FromSeconds(1));
+  FastForwardBy(base::Seconds(1));
   EXPECT_TRUE(trimmer()->IsEligibleForReclaim(GetInterval(), false));
   trimmer()->OnArcSessionRestarting();
   EXPECT_FALSE(trimmer()->IsEligibleForReclaim(GetInterval(), false));
 
   trimmer()->OnConnectionReady();
   FastForwardBy(GetInterval());
-  FastForwardBy(base::TimeDelta::FromSeconds(1));
+  FastForwardBy(base::Seconds(1));
   EXPECT_TRUE(trimmer()->IsEligibleForReclaim(GetInterval(), false));
   trimmer()->OnArcSessionStopped(arc::ArcStopReason::CRASH);
   EXPECT_FALSE(trimmer()->IsEligibleForReclaim(GetInterval(), false));
@@ -160,7 +160,7 @@
   // After boot, ARCVM becomes eligible to reclaim.
   trimmer()->OnConnectionReady();
   FastForwardBy(GetInterval());
-  FastForwardBy(base::TimeDelta::FromSeconds(1));
+  FastForwardBy(base::Seconds(1));
   EXPECT_TRUE(trimmer()->IsEligibleForReclaim(GetInterval(), false));
 
   // ARCVM window is focused. ARCVM is ineligible to reclaim now.
@@ -169,7 +169,7 @@
       chrome_window);
   EXPECT_FALSE(trimmer()->IsEligibleForReclaim(GetInterval(), false));
   FastForwardBy(GetInterval());
-  FastForwardBy(base::TimeDelta::FromSeconds(1));
+  FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(trimmer()->IsEligibleForReclaim(GetInterval(), false));
 
   // ARCVM window is unfocused. ARCVM becomes eligible to reclaim after the
@@ -179,7 +179,7 @@
       chrome_window, arc_window);
   EXPECT_FALSE(trimmer()->IsEligibleForReclaim(GetInterval(), false));
   FastForwardBy(GetInterval());
-  FastForwardBy(base::TimeDelta::FromSeconds(1));
+  FastForwardBy(base::Seconds(1));
   EXPECT_TRUE(trimmer()->IsEligibleForReclaim(GetInterval(), false));
 }
 
@@ -193,7 +193,7 @@
   EXPECT_FALSE(trimmer()->IsEligibleForReclaim(GetInterval(), true));
 
   FastForwardBy(GetInterval());
-  FastForwardBy(base::TimeDelta::FromSeconds(1));
+  FastForwardBy(base::Seconds(1));
   // After the interval, the function returns true again.
   EXPECT_TRUE(trimmer()->IsEligibleForReclaim(GetInterval(), true));
 }
diff --git a/chrome/browser/performance_manager/policies/working_set_trimmer_policy_chromeos.cc b/chrome/browser/performance_manager/policies/working_set_trimmer_policy_chromeos.cc
index 6823733..ab04e50 100644
--- a/chrome/browser/performance_manager/policies/working_set_trimmer_policy_chromeos.cc
+++ b/chrome/browser/performance_manager/policies/working_set_trimmer_policy_chromeos.cc
@@ -36,8 +36,7 @@
     nullptr;
 
 // Reports ARCVM trim metrics every |kArcVmTrimMetricReportDelay| minutes.
-constexpr base::TimeDelta kArcVmTrimMetricReportDelay =
-    base::TimeDelta::FromMinutes(30);
+constexpr base::TimeDelta kArcVmTrimMetricReportDelay = base::Minutes(30);
 
 // It is very unlikely to do the trim more than |kArcVmTrimMetricMaxCount|
 // times in |kArcVmTrimMetricReportDelay|.
diff --git a/chrome/browser/performance_manager/policies/working_set_trimmer_policy_chromeos_unittest.cc b/chrome/browser/performance_manager/policies/working_set_trimmer_policy_chromeos_unittest.cc
index fbd6868..919991b 100644
--- a/chrome/browser/performance_manager/policies/working_set_trimmer_policy_chromeos_unittest.cc
+++ b/chrome/browser/performance_manager/policies/working_set_trimmer_policy_chromeos_unittest.cc
@@ -76,9 +76,9 @@
     set_trim_arc_on_memory_pressure(false);
     set_trim_arcvm_on_memory_pressure(false);
 
-    params().graph_walk_backoff_time = base::TimeDelta::FromSeconds(30);
-    params().node_invisible_time = base::TimeDelta::FromSeconds(30);
-    params().node_trim_backoff_time = base::TimeDelta::FromSeconds(30);
+    params().graph_walk_backoff_time = base::Seconds(30);
+    params().node_invisible_time = base::Seconds(30);
+    params().node_trim_backoff_time = base::Seconds(30);
     params().arc_process_trim_backoff_time = base::TimeDelta::Min();
     params().arc_process_inactivity_time = base::TimeDelta::Min();
     params().trim_arc_aggressive = false;
@@ -283,7 +283,7 @@
   policy()->listener().SimulatePressureNotification(
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE);
 
-  FastForwardBy(base::TimeDelta::FromSeconds(1));
+  FastForwardBy(base::Seconds(1));
 
   // Since we have never walked we expect that we walked it now, we confirm by
   // checking the last walk time against the known clock.
@@ -293,7 +293,7 @@
   policy()->listener().SimulatePressureNotification(
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE);
 
-  FastForwardBy(base::TimeDelta::FromSeconds(1));
+  FastForwardBy(base::Seconds(1));
 
   // We will not have caused a walk as the clock has not advanced beyond the
   // backoff period.
@@ -312,21 +312,21 @@
   policy()->listener().SimulatePressureNotification(
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE);
 
-  FastForwardBy(base::TimeDelta::FromSeconds(1));
+  FastForwardBy(base::Seconds(1));
 
   // Since we have never walked we expect that we walked it now, we confirm by
   // checking the last walk time against the known clock.
   const base::TimeTicks last_walk_time = policy()->get_last_graph_walk();
   EXPECT_LT(initial_walk_time, last_walk_time);
 
-  FastForwardBy(base::TimeDelta::FromDays(1));
+  FastForwardBy(base::Days(1));
 
   policy()->listener().SimulatePressureNotification(
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE);
 
   // Finally advance the clock beyond the backoff period and it should allow it
   // to walk again.
-  FastForwardBy(base::TimeDelta::FromSeconds(1));
+  FastForwardBy(base::Seconds(1));
 
   const base::TimeTicks final_walk_time = policy()->get_last_graph_walk();
   EXPECT_GT(final_walk_time, last_walk_time);
@@ -358,7 +358,7 @@
   policy()->listener().SimulatePressureNotification(
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE);
 
-  FastForwardBy(base::TimeDelta::FromSeconds(1));
+  FastForwardBy(base::Seconds(1));
 
   const base::TimeTicks current_walk_time = policy()->get_last_graph_walk();
   EXPECT_EQ(clock_time, current_walk_time);
@@ -374,7 +374,7 @@
   // Make sure the node is not visible for 1 day.
   page_node->SetIsVisible(true);   // Reset visibility and set invisible Now.
   page_node->SetIsVisible(false);  // Uses the testing clock.
-  FastForwardBy(base::TimeDelta::FromDays(1));
+  FastForwardBy(base::Days(1));
 
   // We should not be called because we don't have a frame node or process node.
   EXPECT_CALL(*policy(), TrimWorkingSet(testing::_)).Times(0);
@@ -383,7 +383,7 @@
   policy()->listener().SimulatePressureNotification(
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE);
 
-  FastForwardBy(base::TimeDelta::FromDays(1));
+  FastForwardBy(base::Days(1));
 }
 
 // This test will validate that we WILL trim the working set if it has been
@@ -408,8 +408,7 @@
   // enough.
   page_node->SetIsVisible(true);   // Reset visibility and then set invisible.
   page_node->SetIsVisible(false);  // Uses the testing clock.
-  const base::TimeTicks cur_time =
-      FastForwardBy(base::TimeDelta::FromDays(365));
+  const base::TimeTicks cur_time = FastForwardBy(base::Days(365));
 
   // We will attempt to trim to corresponding ProcessNode since we've been
   // invisible long enough.
@@ -420,7 +419,7 @@
   policy()->listener().SimulatePressureNotification(
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE);
 
-  FastForwardBy(base::TimeDelta::FromSeconds(1));
+  FastForwardBy(base::Seconds(1));
 
   // We should have triggered the walk and it should have trimmed.
   EXPECT_EQ(cur_time, policy()->get_last_graph_walk());
@@ -433,7 +432,7 @@
   // actually trimming.
   policy()->trim_arc_on_memory_pressure(false);
   EXPECT_CALL(*policy(), TrimArcProcesses).Times(0);
-  FastForwardBy(base::TimeDelta::FromSeconds(1));
+  FastForwardBy(base::Seconds(1));
   policy()->listener().SimulatePressureNotification(
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE);
 }
@@ -441,7 +440,7 @@
 // TODO(crbug.com/1177146) Re-enable test
 TEST_F(WorkingSetTrimmerPolicyChromeOSTest, DISABLED_ArcTrimOnlyIfEnabled) {
   policy()->trim_arc_on_memory_pressure(true);
-  FastForwardBy(base::TimeDelta::FromSeconds(1));
+  FastForwardBy(base::Seconds(1));
   EXPECT_CALL(*policy(), TrimArcProcesses).Times(1);
   policy()->listener().SimulatePressureNotification(
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE);
@@ -455,19 +454,18 @@
   // Our test setup will validate that we don't attempt to try to fetch and look
   // for ARC processes more than the configured frequency (in this case 60s).
   policy()->trim_arc_on_memory_pressure(true);
-  policy()->params().arc_process_list_fetch_backoff_time =
-      base::TimeDelta::FromSeconds(60);
+  policy()->params().arc_process_list_fetch_backoff_time = base::Seconds(60);
 
   // We're going to cause a moderate pressure notification twice, but we only
   // expect to attempt to fetch the ARC processes once because of our configured
   // backoff time.
   EXPECT_CALL(*policy(), TrimArcProcesses).Times(Exactly(1));
 
-  FastForwardBy(base::TimeDelta::FromSeconds(12));
+  FastForwardBy(base::Seconds(12));
   policy()->listener().SimulatePressureNotification(
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE);
 
-  FastForwardBy(base::TimeDelta::FromSeconds(12));
+  FastForwardBy(base::Seconds(12));
   policy()->listener().SimulatePressureNotification(
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE);
 
@@ -488,7 +486,7 @@
       /*nspid=*/0, /*pid=*/1234, "mock process",
       /*state=*/arc::mojom::ProcessState::SERVICE, /*is_focused=*/true,
       /*last activity=*/
-      GetSystemTimeInPastAsMsSinceUptime(base::TimeDelta::FromMinutes(2)));
+      GetSystemTimeInPastAsMsSinceUptime(base::Minutes(2)));
 
   EXPECT_FALSE(policy()->DefaultIsArcProcessEligibleForReclaim(mock_arc_proc));
 }
@@ -504,7 +502,7 @@
       /*state=*/arc::mojom::ProcessState::IMPORTANT_BACKGROUND,
       /*is_focused=*/false,
       /*last activity=*/
-      GetSystemTimeInPastAsMsSinceUptime(base::TimeDelta::FromMinutes(2)));
+      GetSystemTimeInPastAsMsSinceUptime(base::Minutes(2)));
 
   EXPECT_FALSE(policy()->DefaultIsArcProcessEligibleForReclaim(mock_arc_proc));
 }
@@ -524,7 +522,7 @@
       /*state=*/arc::mojom::ProcessState::IMPORTANT_BACKGROUND,
       /*is_focused=*/false,
       /*last activity=*/
-      GetSystemTimeInPastAsMsSinceUptime(base::TimeDelta::FromMinutes(60)));
+      GetSystemTimeInPastAsMsSinceUptime(base::Minutes(60)));
 
   EXPECT_TRUE(policy()->DefaultIsArcProcessEligibleForReclaim(mock_arc_proc));
 }
@@ -542,7 +540,7 @@
       /*state=*/arc::mojom::ProcessState::IMPORTANT_FOREGROUND,
       /*is_focused=*/false,
       /*last activity=*/
-      GetSystemTimeInPastAsMsSinceUptime(base::TimeDelta::FromMinutes(60)));
+      GetSystemTimeInPastAsMsSinceUptime(base::Minutes(60)));
 
   EXPECT_TRUE(policy()->DefaultIsArcProcessEligibleForReclaim(mock_arc_proc));
 }
@@ -556,8 +554,7 @@
   policy()->params().arc_process_inactivity_time = base::TimeDelta::Min();
 
   // We will only allow trimming of an individual process once every 10 seconds.
-  policy()->params().arc_process_trim_backoff_time =
-      base::TimeDelta::FromSeconds(10);
+  policy()->params().arc_process_trim_backoff_time = base::Seconds(10);
 
   // Use a mock ARC process, this process is eligible to be reclaimed so the
   // only thing which would prevent it would be that it was reclaimed too
@@ -566,7 +563,7 @@
       /*nspid=*/0, /*pid=*/1234, "mock process",
       /*state=*/arc::mojom::ProcessState::SERVICE, /*is_focused=*/false,
       /*last activity=*/
-      GetSystemTimeInPastAsMsSinceUptime(base::TimeDelta::FromMinutes(2)));
+      GetSystemTimeInPastAsMsSinceUptime(base::Minutes(2)));
 
   EXPECT_TRUE(policy()->DefaultIsArcProcessEligibleForReclaim(mock_arc_proc));
 
@@ -574,7 +571,7 @@
   // longer is eligible for reclaim.
   policy()->SetArcProcessLastTrimTime(mock_arc_proc.pid(),
                                       base::TimeTicks::Now());
-  FastForwardBy(base::TimeDelta::FromSeconds(5));
+  FastForwardBy(base::Seconds(5));
   EXPECT_FALSE(policy()->DefaultIsArcProcessEligibleForReclaim(mock_arc_proc));
 
   // And finally, as we move through the backoff period we should be able to
@@ -590,8 +587,7 @@
   policy()->trim_arc_on_memory_pressure(true);
 
   // We won't trim when the last activity is less than 30s ago.
-  policy()->params().arc_process_inactivity_time =
-      base::TimeDelta::FromSeconds(30);
+  policy()->params().arc_process_inactivity_time = base::Seconds(30);
 
   // We don't care about the ARC process trim backoff time for this test.
   policy()->params().arc_process_trim_backoff_time = base::TimeDelta::Min();
@@ -602,7 +598,7 @@
       /*nspid=*/0, /*pid=*/1234, "mock process",
       /*state=*/arc::mojom::ProcessState::SERVICE, /*is_focused=*/false,
       /*last activity=*/
-      GetSystemTimeInPastAsMsSinceUptime(base::TimeDelta::FromSeconds(10)));
+      GetSystemTimeInPastAsMsSinceUptime(base::Seconds(10)));
 
   // It was active too recently.
   EXPECT_FALSE(policy()->DefaultIsArcProcessEligibleForReclaim(mock_arc_proc));
@@ -636,7 +632,7 @@
         /*nspid=*/0, /*pid=*/1234 + i, "mock process",
         /*state=*/arc::mojom::ProcessState::SERVICE, /*is_focused=*/false,
         /*last activity=*/
-        GetSystemTimeInPastAsMsSinceUptime(base::TimeDelta::FromMinutes(10)));
+        GetSystemTimeInPastAsMsSinceUptime(base::Minutes(10)));
   }
 
   // We expect that only the first two processes will be trimmed because
@@ -659,7 +655,7 @@
 TEST_F(WorkingSetTrimmerPolicyChromeOSTest, ArcVmDontTrimOnlyIfDisabled) {
   policy()->trim_arcvm_on_memory_pressure(false);
   EXPECT_CALL(*policy(), TrimArcVmProcesses).Times(0);
-  FastForwardBy(base::TimeDelta::FromSeconds(1));
+  FastForwardBy(base::Seconds(1));
   policy()->listener().SimulatePressureNotification(
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE);
 }
@@ -670,7 +666,7 @@
   ScopedTestArcVmDelegate delegate(policy(), /*eligible=*/false);
 
   policy()->trim_arcvm_on_memory_pressure(true);
-  FastForwardBy(base::TimeDelta::FromSeconds(1));
+  FastForwardBy(base::Seconds(1));
   EXPECT_CALL(*policy(), TrimArcVmProcesses).Times(1);
   EXPECT_CALL(*policy(), OnTrimArcVmProcesses(false))
       .Times(Exactly(1))
@@ -691,18 +687,18 @@
   // Our test setup will validate that we don't attempt to try to trim the ARCVM
   // processes more than the configured frequency (in this case 60s).
   policy()->trim_arcvm_on_memory_pressure(true);
-  policy()->params().arcvm_trim_backoff_time = base::TimeDelta::FromSeconds(60);
+  policy()->params().arcvm_trim_backoff_time = base::Seconds(60);
 
   // We're going to cause a moderate pressure notification twice, but we only
   // expect to attempt to trim ARCVM once because of our configured backoff
   // time.
   EXPECT_CALL(*policy(), TrimArcVmProcesses).Times(Exactly(1));
 
-  FastForwardBy(base::TimeDelta::FromSeconds(12));
+  FastForwardBy(base::Seconds(12));
   policy()->listener().SimulatePressureNotification(
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE);
 
-  FastForwardBy(base::TimeDelta::FromSeconds(12));
+  FastForwardBy(base::Seconds(12));
   policy()->listener().SimulatePressureNotification(
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE);
 
@@ -727,15 +723,15 @@
   ScopedTestArcVmDelegate delegate(policy(), /*eligible=*/true);
 
   policy()->trim_arcvm_on_memory_pressure(true);
-  policy()->params().arcvm_trim_backoff_time = base::TimeDelta::FromSeconds(60);
+  policy()->params().arcvm_trim_backoff_time = base::Seconds(60);
 
   EXPECT_CALL(*policy(), TrimArcVmProcesses).Times(Exactly(1));
 
-  FastForwardBy(base::TimeDelta::FromSeconds(12));
+  FastForwardBy(base::Seconds(12));
   policy()->listener().SimulatePressureNotification(
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL);
 
-  FastForwardBy(base::TimeDelta::FromSeconds(12));
+  FastForwardBy(base::Seconds(12));
   policy()->listener().SimulatePressureNotification(
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL);
 
@@ -757,7 +753,7 @@
   ScopedTestArcVmDelegate delegate(policy(), /*eligible=*/false);
 
   policy()->trim_arcvm_on_memory_pressure(true);
-  policy()->params().arcvm_trim_backoff_time = base::TimeDelta::FromSeconds(60);
+  policy()->params().arcvm_trim_backoff_time = base::Seconds(60);
 
   EXPECT_CALL(*policy(), TrimArcVmProcesses).Times(Exactly(1));
   EXPECT_CALL(*policy(), OnTrimArcVmProcesses(false))
@@ -765,7 +761,7 @@
       .WillOnce(Invoke(this, &WorkingSetTrimmerPolicyChromeOSTest::
                                  DefaultOnTrimArcVmProcessesAndQuit));
 
-  FastForwardBy(base::TimeDelta::FromSeconds(12));
+  FastForwardBy(base::Seconds(12));
   policy()->listener().SimulatePressureNotification(
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE);
 
@@ -779,7 +775,7 @@
       .WillOnce(Invoke(this, &WorkingSetTrimmerPolicyChromeOSTest::
                                  DefaultOnTrimArcVmProcessesAndQuit));
 
-  FastForwardBy(base::TimeDelta::FromSeconds(1));
+  FastForwardBy(base::Seconds(1));
   FastForwardBy(policy()->params().arcvm_trim_backoff_time);
   policy()->listener().SimulatePressureNotification(
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL);
@@ -793,7 +789,7 @@
 
   policy()->trim_arcvm_on_memory_pressure(true);
   policy()->params().trim_arcvm_on_critical_pressure = true;
-  policy()->params().arcvm_trim_backoff_time = base::TimeDelta::FromSeconds(60);
+  policy()->params().arcvm_trim_backoff_time = base::Seconds(60);
 
   EXPECT_CALL(*policy(), TrimArcVmProcesses).Times(Exactly(1));
   EXPECT_CALL(*policy(), OnTrimArcVmProcesses(false))
@@ -801,7 +797,7 @@
       .WillOnce(Invoke(this, &WorkingSetTrimmerPolicyChromeOSTest::
                                  DefaultOnTrimArcVmProcessesAndQuit));
 
-  FastForwardBy(base::TimeDelta::FromSeconds(12));
+  FastForwardBy(base::Seconds(12));
   policy()->listener().SimulatePressureNotification(
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE);
 
@@ -815,7 +811,7 @@
       .WillOnce(Invoke(this, &WorkingSetTrimmerPolicyChromeOSTest::
                                  DefaultOnTrimArcVmProcessesAndQuit));
 
-  FastForwardBy(base::TimeDelta::FromSeconds(1));
+  FastForwardBy(base::Seconds(1));
   FastForwardBy(policy()->params().arcvm_trim_backoff_time);
   policy()->listener().SimulatePressureNotification(
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL);
@@ -833,15 +829,15 @@
         policy->trim_arcvm_on_memory_pressure(true);
       }));
 
-  FastForwardBy(base::TimeDelta::FromMinutes(15));
+  FastForwardBy(base::Minutes(15));
   run_loop()->RunUntilIdle();
   tester.ExpectTotalCount("Memory.WorkingSetTrim.ArcVmTrimCountPer30Mins", 0);
 
-  FastForwardBy(base::TimeDelta::FromMinutes(15));
+  FastForwardBy(base::Minutes(15));
   run_loop()->RunUntilIdle();
   tester.ExpectTotalCount("Memory.WorkingSetTrim.ArcVmTrimCountPer30Mins", 1);
 
-  FastForwardBy(base::TimeDelta::FromMinutes(30));
+  FastForwardBy(base::Minutes(30));
   run_loop()->RunUntilIdle();
   tester.ExpectTotalCount("Memory.WorkingSetTrim.ArcVmTrimCountPer30Mins", 2);
 
@@ -860,11 +856,11 @@
         policy->trim_arcvm_on_memory_pressure(true);
       }));
 
-  FastForwardBy(base::TimeDelta::FromMinutes(30));
+  FastForwardBy(base::Minutes(30));
   run_loop()->RunUntilIdle();
   tester.ExpectTotalCount("Memory.WorkingSetTrim.ArcVmTrimCountPer30Mins", 1);
 
-  FastForwardBy(base::TimeDelta::FromMinutes(15));
+  FastForwardBy(base::Minutes(15));
   run_loop()->RunUntilIdle();
   tester.ExpectTotalCount("Memory.WorkingSetTrim.ArcVmTrimCountPer30Mins", 1);
 
@@ -875,36 +871,30 @@
 // Tests that the |arcvm_trim_count_| calculation for the final report is
 // properly done.
 TEST_F(WorkingSetTrimmerPolicyChromeOSTest, GetArcVmTrimCountForFinalReport) {
-  constexpr base::TimeDelta kBackoffTime = base::TimeDelta::FromMinutes(15);
-  constexpr base::TimeDelta kMetricReportDelay =
-      base::TimeDelta::FromMinutes(30);
+  constexpr base::TimeDelta kBackoffTime = base::Minutes(15);
+  constexpr base::TimeDelta kMetricReportDelay = base::Minutes(30);
 
   // If 0 trim has been done in the last 15 minutes, 0 should be reported.
-  EXPECT_EQ(0u,
-            GetArcVmTrimCountForFinalReport(0, base::TimeDelta::FromMinutes(15),
-                                            kBackoffTime, kMetricReportDelay));
+  EXPECT_EQ(0u, GetArcVmTrimCountForFinalReport(
+                    0, base::Minutes(15), kBackoffTime, kMetricReportDelay));
 
   // If 1 trim has been done in the last 28 minutes, 1 should be reported.
-  EXPECT_EQ(1u,
-            GetArcVmTrimCountForFinalReport(1, base::TimeDelta::FromMinutes(28),
-                                            kBackoffTime, kMetricReportDelay));
+  EXPECT_EQ(1u, GetArcVmTrimCountForFinalReport(
+                    1, base::Minutes(28), kBackoffTime, kMetricReportDelay));
 
   // If 1 trim has been done in the last 15 minutes, 2 should be reported.
-  EXPECT_EQ(2u,
-            GetArcVmTrimCountForFinalReport(1, base::TimeDelta::FromMinutes(15),
-                                            kBackoffTime, kMetricReportDelay));
+  EXPECT_EQ(2u, GetArcVmTrimCountForFinalReport(
+                    1, base::Minutes(15), kBackoffTime, kMetricReportDelay));
 
   // If 2 trims have been done in the last 28 minutes, 2 should be reported.
-  EXPECT_EQ(2u,
-            GetArcVmTrimCountForFinalReport(2, base::TimeDelta::FromMinutes(28),
-                                            kBackoffTime, kMetricReportDelay));
+  EXPECT_EQ(2u, GetArcVmTrimCountForFinalReport(
+                    2, base::Minutes(28), kBackoffTime, kMetricReportDelay));
 
   // If 2 trims has been done in the last 15 minutes, 3 should be reported.
   // This is not 4 because of |kBackoffTime|. Only 3 trims are possible within
   // |kMetricReportDelay|.
-  EXPECT_EQ(3u,
-            GetArcVmTrimCountForFinalReport(2, base::TimeDelta::FromMinutes(15),
-                                            kBackoffTime, kMetricReportDelay));
+  EXPECT_EQ(3u, GetArcVmTrimCountForFinalReport(
+                    2, base::Minutes(15), kBackoffTime, kMetricReportDelay));
 }
 
 }  // namespace policies
diff --git a/chrome/browser/performance_manager/test_support/page_discarding_utils.cc b/chrome/browser/performance_manager/test_support/page_discarding_utils.cc
index 040d4c25..e46aa1f 100644
--- a/chrome/browser/performance_manager/test_support/page_discarding_utils.cc
+++ b/chrome/browser/performance_manager/test_support/page_discarding_utils.cc
@@ -82,7 +82,7 @@
   page_node->OnMainFrameNavigationCommitted(false, base::TimeTicks::Now(), 42,
                                             kUrl, "text/html");
   (*page_node->main_frame_nodes().begin())->OnNavigationCommitted(kUrl, false);
-  task_env.FastForwardBy(base::TimeDelta::FromMinutes(10));
+  task_env.FastForwardBy(base::Minutes(10));
   DCHECK(policies::PageDiscardingHelper::GetFromGraph(page_node->graph())
              ->CanUrgentlyDiscardForTesting(page_node));
 }
diff --git a/chrome/browser/performance_monitor/process_monitor.h b/chrome/browser/performance_monitor/process_monitor.h
index 392bd6a..ffa3b3be 100644
--- a/chrome/browser/performance_monitor/process_monitor.h
+++ b/chrome/browser/performance_monitor/process_monitor.h
@@ -43,8 +43,7 @@
 class ProcessMonitor {
  public:
   // The interval at which ProcessMonitor performs its timed collections.
-  static constexpr base::TimeDelta kGatherInterval =
-      base::TimeDelta::FromMinutes(2);
+  static constexpr base::TimeDelta kGatherInterval = base::Minutes(2);
 
   struct Metrics {
     Metrics();
diff --git a/chrome/browser/performance_monitor/resource_coalition_mac_unittest.mm b/chrome/browser/performance_monitor/resource_coalition_mac_unittest.mm
index 11aa7673..f01f721 100644
--- a/chrome/browser/performance_monitor/resource_coalition_mac_unittest.mm
+++ b/chrome/browser/performance_monitor/resource_coalition_mac_unittest.mm
@@ -53,7 +53,7 @@
 
 EnergyImpactCoefficients GetEnergyImpactTestCoefficients() {
   constexpr EnergyImpactCoefficients coefficients{
-      .kcpu_wakeups = base::TimeDelta::FromMicroseconds(200).InSecondsF(),
+      .kcpu_wakeups = base::Microseconds(200).InSecondsF(),
       .kqos_default = 1.0,
       .kqos_background = 0.8,
       .kqos_utility = 1.0,
@@ -66,7 +66,7 @@
   return coefficients;
 }
 
-constexpr base::TimeDelta kIntervalLength = base::TimeDelta::FromSecondsD(2.5);
+constexpr base::TimeDelta kIntervalLength = base::Seconds(2.5);
 
 TEST(ResourceCoalitionTests, Basics) {
   base::HistogramTester histogram_tester;
@@ -83,7 +83,7 @@
   EXPECT_TRUE(coalition.IsAvailable());
 
   base::TimeTicks begin = base::TimeTicks::Now();
-  constexpr base::TimeDelta busy_time = base::TimeDelta::FromSeconds(1);
+  constexpr base::TimeDelta busy_time = base::Seconds(1);
   double number = 1;
   while (base::TimeTicks::Now() < (begin + busy_time)) {
     for (int i = 0; i < 10000; ++i) {
@@ -475,57 +475,49 @@
   EXPECT_DOUBLE_EQ(
       2.66, coalition.ComputeEnergyImpactForCoalitionUsage(
                 EnergyImpactCoefficients{
-                    .kcpu_wakeups =
-                        base::TimeDelta::FromMicroseconds(200).InSecondsF()},
+                    .kcpu_wakeups = base::Microseconds(200).InSecondsF()},
                 coalition_resource_usage{.platform_idle_wakeups = 133}));
 
   // Test 100 ms of CPU, which should come out to 8% of a CPU second with a
   // background QOS discount of rate of 0.8.
   EXPECT_DOUBLE_EQ(8.0, coalition.ComputeEnergyImpactForCoalitionUsage(
                             EnergyImpactCoefficients{.kqos_background = 0.8},
-                            MakeResourceUsageWithQOS(
-                                THREAD_QOS_BACKGROUND,
-                                base::TimeDelta::FromMilliseconds(100))));
-  EXPECT_DOUBLE_EQ(
-      5.0, coalition.ComputeEnergyImpactForCoalitionUsage(
-               EnergyImpactCoefficients{.kqos_default = 1.0},
-               MakeResourceUsageWithQOS(
-                   THREAD_QOS_DEFAULT, base::TimeDelta::FromMilliseconds(50))));
+                            MakeResourceUsageWithQOS(THREAD_QOS_BACKGROUND,
+                                                     base::Milliseconds(100))));
+  EXPECT_DOUBLE_EQ(5.0, coalition.ComputeEnergyImpactForCoalitionUsage(
+                            EnergyImpactCoefficients{.kqos_default = 1.0},
+                            MakeResourceUsageWithQOS(THREAD_QOS_DEFAULT,
+                                                     base::Milliseconds(50))));
   EXPECT_DOUBLE_EQ(10.0, coalition.ComputeEnergyImpactForCoalitionUsage(
                              EnergyImpactCoefficients{.kqos_utility = 1.0},
                              MakeResourceUsageWithQOS(
-                                 THREAD_QOS_UTILITY,
-                                 base::TimeDelta::FromMilliseconds(100))));
-  EXPECT_DOUBLE_EQ(
-      1.0, coalition.ComputeEnergyImpactForCoalitionUsage(
-               EnergyImpactCoefficients{.kqos_legacy = 1.0},
-               MakeResourceUsageWithQOS(
-                   THREAD_QOS_LEGACY, base::TimeDelta::FromMilliseconds(10))));
-  EXPECT_DOUBLE_EQ(
-      1.0,
-      coalition.ComputeEnergyImpactForCoalitionUsage(
-          EnergyImpactCoefficients{.kqos_user_initiated = 1.0},
-          MakeResourceUsageWithQOS(THREAD_QOS_USER_INITIATED,
-                                   base::TimeDelta::FromMilliseconds(10))));
-  EXPECT_DOUBLE_EQ(
-      1.0,
-      coalition.ComputeEnergyImpactForCoalitionUsage(
-          EnergyImpactCoefficients{.kqos_user_interactive = 1.0},
-          MakeResourceUsageWithQOS(THREAD_QOS_USER_INTERACTIVE,
-                                   base::TimeDelta::FromMilliseconds(10))));
+                                 THREAD_QOS_UTILITY, base::Milliseconds(100))));
+  EXPECT_DOUBLE_EQ(1.0, coalition.ComputeEnergyImpactForCoalitionUsage(
+                            EnergyImpactCoefficients{.kqos_legacy = 1.0},
+                            MakeResourceUsageWithQOS(THREAD_QOS_LEGACY,
+                                                     base::Milliseconds(10))));
+  EXPECT_DOUBLE_EQ(1.0,
+                   coalition.ComputeEnergyImpactForCoalitionUsage(
+                       EnergyImpactCoefficients{.kqos_user_initiated = 1.0},
+                       MakeResourceUsageWithQOS(THREAD_QOS_USER_INITIATED,
+                                                base::Milliseconds(10))));
+  EXPECT_DOUBLE_EQ(1.0,
+                   coalition.ComputeEnergyImpactForCoalitionUsage(
+                       EnergyImpactCoefficients{.kqos_user_interactive = 1.0},
+                       MakeResourceUsageWithQOS(THREAD_QOS_USER_INTERACTIVE,
+                                                base::Milliseconds(10))));
 
-  EXPECT_DOUBLE_EQ(
-      1.0, coalition.ComputeEnergyImpactForCoalitionUsage(
-               EnergyImpactCoefficients{.kgpu_time = 2.5},
-               coalition_resource_usage{
-                   .gpu_time =
-                       base::TimeDelta::FromMilliseconds(4).InNanoseconds()}));
+  EXPECT_DOUBLE_EQ(1.0,
+                   coalition.ComputeEnergyImpactForCoalitionUsage(
+                       EnergyImpactCoefficients{.kgpu_time = 2.5},
+                       coalition_resource_usage{
+                           .gpu_time = base::Milliseconds(4).InNanoseconds()}));
 }
 
 TEST(ResourceCoalitionTests, ComputeEnergyImpactForCoalitionUsage_Combined) {
   // test that the coefficients and samples add up as expected.
   EnergyImpactCoefficients coefficients{
-      .kcpu_wakeups = base::TimeDelta::FromMicroseconds(200).InSecondsF(),
+      .kcpu_wakeups = base::Microseconds(200).InSecondsF(),
       .kqos_default = 1.0,
       .kqos_background = 0.8,
       .kqos_utility = 1.0,
@@ -536,22 +528,22 @@
   };
   coalition_resource_usage sample{
       .platform_idle_wakeups = 133,
-      .gpu_time = NsScaleToTimebase(
-          kM1Timebase, base::TimeDelta::FromMilliseconds(4).InNanoseconds()),
+      .gpu_time =
+          NsScaleToTimebase(kM1Timebase, base::Milliseconds(4).InNanoseconds()),
       .cpu_time_eqos_len = COALITION_NUM_THREAD_QOS_TYPES,
   };
-  sample.cpu_time_eqos[THREAD_QOS_BACKGROUND] = NsScaleToTimebase(
-      kM1Timebase, base::TimeDelta::FromMilliseconds(100).InNanoseconds());
-  sample.cpu_time_eqos[THREAD_QOS_DEFAULT] = NsScaleToTimebase(
-      kM1Timebase, base::TimeDelta::FromMilliseconds(50).InNanoseconds());
-  sample.cpu_time_eqos[THREAD_QOS_UTILITY] = NsScaleToTimebase(
-      kM1Timebase, base::TimeDelta::FromMilliseconds(100).InNanoseconds());
-  sample.cpu_time_eqos[THREAD_QOS_LEGACY] = NsScaleToTimebase(
-      kM1Timebase, base::TimeDelta::FromMilliseconds(10).InNanoseconds());
-  sample.cpu_time_eqos[THREAD_QOS_USER_INITIATED] = NsScaleToTimebase(
-      kM1Timebase, base::TimeDelta::FromMilliseconds(10).InNanoseconds());
-  sample.cpu_time_eqos[THREAD_QOS_USER_INTERACTIVE] = NsScaleToTimebase(
-      kM1Timebase, base::TimeDelta::FromMilliseconds(10).InNanoseconds());
+  sample.cpu_time_eqos[THREAD_QOS_BACKGROUND] =
+      NsScaleToTimebase(kM1Timebase, base::Milliseconds(100).InNanoseconds());
+  sample.cpu_time_eqos[THREAD_QOS_DEFAULT] =
+      NsScaleToTimebase(kM1Timebase, base::Milliseconds(50).InNanoseconds());
+  sample.cpu_time_eqos[THREAD_QOS_UTILITY] =
+      NsScaleToTimebase(kM1Timebase, base::Milliseconds(100).InNanoseconds());
+  sample.cpu_time_eqos[THREAD_QOS_LEGACY] =
+      NsScaleToTimebase(kM1Timebase, base::Milliseconds(10).InNanoseconds());
+  sample.cpu_time_eqos[THREAD_QOS_USER_INITIATED] =
+      NsScaleToTimebase(kM1Timebase, base::Milliseconds(10).InNanoseconds());
+  sample.cpu_time_eqos[THREAD_QOS_USER_INTERACTIVE] =
+      NsScaleToTimebase(kM1Timebase, base::Milliseconds(10).InNanoseconds());
 
   TestResourceCoalition coalition;
   coalition.SetMachTimebaseForTesting(kM1Timebase);
diff --git a/chrome/browser/performance_monitor/system_monitor.cc b/chrome/browser/performance_monitor/system_monitor.cc
index 55b8343..840c71c 100644
--- a/chrome/browser/performance_monitor/system_monitor.cc
+++ b/chrome/browser/performance_monitor/system_monitor.cc
@@ -32,8 +32,7 @@
 SystemMonitor* g_system_metrics_monitor = nullptr;
 
 // The default interval at which the metrics are refreshed.
-constexpr base::TimeDelta kDefaultRefreshInterval =
-    base::TimeDelta::FromSeconds(2);
+constexpr base::TimeDelta kDefaultRefreshInterval = base::Seconds(2);
 
 }  // namespace
 
diff --git a/chrome/browser/permissions/chrome_permission_request_manager_unittest.cc b/chrome/browser/permissions/chrome_permission_request_manager_unittest.cc
index 0ad3735..95b2042f 100644
--- a/chrome/browser/permissions/chrome_permission_request_manager_unittest.cc
+++ b/chrome/browser/permissions/chrome_permission_request_manager_unittest.cc
@@ -392,7 +392,7 @@
 TEST_F(ChromePermissionRequestManagerTest,
        NotificationsAdaptiveActivationQuietUIWindowSize) {
   EXPECT_EQ(
-      base::TimeDelta::FromDays(90),  // Default value.
+      base::Days(90),  // Default value.
       QuietNotificationPermissionUiConfig::GetAdaptiveActivationWindowSize());
 
   base::test::ScopedFeatureList feature_list;
@@ -406,7 +406,7 @@
       {features::kPermissionPredictions});
 
   ASSERT_EQ(
-      base::TimeDelta::FromDays(7),
+      base::Days(7),
       QuietNotificationPermissionUiConfig::GetAdaptiveActivationWindowSize());
 
   const char* origin_spec[]{"https://a.com", "https://b.com", "https://c.com",
@@ -424,7 +424,7 @@
     if (i == 0) {
       // The history window size is 7 days. That will ignore previous denied
       // permission request as obsolete.
-      task_environment()->AdvanceClock(base::TimeDelta::FromDays(10));
+      task_environment()->AdvanceClock(base::Days(10));
     }
   }
 
@@ -557,7 +557,7 @@
   Deny();
 
   base::Time recorded_time = base::Time::Now();
-  task_environment()->AdvanceClock(base::TimeDelta::FromDays(1));
+  task_environment()->AdvanceClock(base::Days(1));
   base::Time from_time = base::Time::Now();
   GURL notification9("http://www.notification9.com/");
   NavigateAndCommit(notification9);
@@ -568,7 +568,7 @@
   EXPECT_FALSE(manager_->ShouldCurrentRequestUseQuietUI());
   Deny();
 
-  task_environment()->AdvanceClock(base::TimeDelta::FromDays(1));
+  task_environment()->AdvanceClock(base::Days(1));
   base::Time to_time = base::Time::Now();
   GURL notification10("http://www.notification10.com/");
   NavigateAndCommit(notification10);
@@ -579,7 +579,7 @@
   EXPECT_FALSE(manager_->ShouldCurrentRequestUseQuietUI());
   Deny();
 
-  task_environment()->AdvanceClock(base::TimeDelta::FromDays(1));
+  task_environment()->AdvanceClock(base::Days(1));
   GURL notification11("http://www.notification11.com/");
   NavigateAndCommit(notification11);
   permissions::MockPermissionRequest notification11_request(
diff --git a/chrome/browser/permissions/crowd_deny_safe_browsing_request.cc b/chrome/browser/permissions/crowd_deny_safe_browsing_request.cc
index c9a5494c..453ba697 100644
--- a/chrome/browser/permissions/crowd_deny_safe_browsing_request.cc
+++ b/chrome/browser/permissions/crowd_deny_safe_browsing_request.cc
@@ -24,8 +24,7 @@
 constexpr char kSafeBrowsingNotificationPermissionName[] = "NOTIFICATIONS";
 
 // The maximum amount of time to wait for the Safe Browsing response.
-constexpr base::TimeDelta kSafeBrowsingCheckTimeout =
-    base::TimeDelta::FromSeconds(2);
+constexpr base::TimeDelta kSafeBrowsingCheckTimeout = base::Seconds(2);
 
 }  // namespace
 
diff --git a/chrome/browser/permissions/crowd_deny_safe_browsing_request_unittest.cc b/chrome/browser/permissions/crowd_deny_safe_browsing_request_unittest.cc
index b3e60b72..d0d9d9f 100644
--- a/chrome/browser/permissions/crowd_deny_safe_browsing_request_unittest.cc
+++ b/chrome/browser/permissions/crowd_deny_safe_browsing_request_unittest.cc
@@ -124,7 +124,7 @@
 
   // Verify the request doesn't time out unreasonably fast.
   EXPECT_CALL(mock_callback_receiver, Run(testing::_)).Times(0);
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  task_environment()->FastForwardBy(base::Milliseconds(100));
   testing::Mock::VerifyAndClearExpectations(&mock_callback_receiver);
 
   // But that it eventually does.
@@ -168,7 +168,7 @@
       fake_database_manager(), test_clock(),
       url::Origin::Create(GURL(kTestOriginFoo)), mock_callback_receiver.Get());
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  task_environment()->FastForwardBy(base::Milliseconds(100));
   EXPECT_THAT(histogram_tester.GetTotalCountsForPrefix("Permissions."),
               testing::IsEmpty());
 }
diff --git a/chrome/browser/permissions/permission_actions_history.cc b/chrome/browser/permissions/permission_actions_history.cc
index 992ff6d..2bdf2bf 100644
--- a/chrome/browser/permissions/permission_actions_history.cc
+++ b/chrome/browser/permissions/permission_actions_history.cc
@@ -39,8 +39,7 @@
 constexpr char kPermissionActionEntryTimestampKey[] = "time";
 
 // Entries in permission actions expire after they become this old.
-constexpr base::TimeDelta kPermissionActionMaxAge =
-    base::TimeDelta::FromDays(90);
+constexpr base::TimeDelta kPermissionActionMaxAge = base::Days(90);
 
 }  // namespace
 
diff --git a/chrome/browser/permissions/permission_actions_history_unittest.cc b/chrome/browser/permissions/permission_actions_history_unittest.cc
index 6489f32..4cafe9e 100644
--- a/chrome/browser/permissions/permission_actions_history_unittest.cc
+++ b/chrome/browser/permissions/permission_actions_history_unittest.cc
@@ -84,7 +84,7 @@
       GetPermissionActionsHistory()->RecordAction(entry.action,
                                                        entry.type);
       if (entry.advance_clock)
-        task_environment_.AdvanceClock(base::TimeDelta::FromDays(1));
+        task_environment_.AdvanceClock(base::Days(1));
     }
   }
 
@@ -122,7 +122,7 @@
   }
 
   auto entries_1_day = GetPermissionActionsHistory()->GetHistory(
-      base::Time::Now() - base::TimeDelta::FromDays(1));
+      base::Time::Now() - base::Days(1));
 
   EXPECT_TRUE(std::equal(entries_1_day.begin(), entries_1_day.end(),
                          std::vector<PermissionActionsHistory::Entry>(
@@ -162,53 +162,45 @@
       // Misc and baseline tests cases.
       {base::Time(), base::Time::Max(), 0, 0},
       {base::Time(), base::Time::Now(), 1, 1},
-      {base::Time(), base::Time::Now() + base::TimeDelta::FromMicroseconds(1),
-       0, 0},
+      {base::Time(), base::Time::Now() + base::Microseconds(1), 0, 0},
 
       // Test cases specifying only the upper bound.
-      {base::Time(), base::Time::Now() - base::TimeDelta::FromDays(1), 4, 2},
-      {base::Time(), base::Time::Now() - base::TimeDelta::FromDays(2), 6, 3},
-      {base::Time(), base::Time::Now() - base::TimeDelta::FromDays(3), 7, 4},
+      {base::Time(), base::Time::Now() - base::Days(1), 4, 2},
+      {base::Time(), base::Time::Now() - base::Days(2), 6, 3},
+      {base::Time(), base::Time::Now() - base::Days(3), 7, 4},
 
       // Test cases specifying only the lower bound.
-      {base::Time::Now() - base::TimeDelta::FromDays(3), base::Time::Max(), 0,
-       0},
-      {base::Time::Now() - base::TimeDelta::FromDays(2), base::Time::Max(), 1,
-       1},
-      {base::Time::Now() - base::TimeDelta::FromDays(1), base::Time::Max(), 3,
-       2},
+      {base::Time::Now() - base::Days(3), base::Time::Max(), 0, 0},
+      {base::Time::Now() - base::Days(2), base::Time::Max(), 1, 1},
+      {base::Time::Now() - base::Days(1), base::Time::Max(), 3, 2},
       {base::Time::Now(), base::Time::Max(), 6, 3},
 
       // Test cases with both bounds.
-      {base::Time::Now() - base::TimeDelta::FromDays(3),
-       base::Time::Now() + base::TimeDelta::FromMicroseconds(1), 0, 0},
-      {base::Time::Now() - base::TimeDelta::FromDays(3), base::Time::Now(), 1,
-       1},
-      {base::Time::Now() - base::TimeDelta::FromDays(3),
-       base::Time::Now() - base::TimeDelta::FromDays(1), 4, 2},
-      {base::Time::Now() - base::TimeDelta::FromDays(3),
-       base::Time::Now() - base::TimeDelta::FromDays(2), 6, 3},
-      {base::Time::Now() - base::TimeDelta::FromDays(3),
-       base::Time::Now() - base::TimeDelta::FromDays(3), 7, 4},
-
-      {base::Time::Now() - base::TimeDelta::FromDays(2),
-       base::Time::Now() + base::TimeDelta::FromMicroseconds(1), 1, 1},
-      {base::Time::Now() - base::TimeDelta::FromDays(2), base::Time::Now(), 2,
+      {base::Time::Now() - base::Days(3),
+       base::Time::Now() + base::Microseconds(1), 0, 0},
+      {base::Time::Now() - base::Days(3), base::Time::Now(), 1, 1},
+      {base::Time::Now() - base::Days(3), base::Time::Now() - base::Days(1), 4,
        2},
-      {base::Time::Now() - base::TimeDelta::FromDays(2),
-       base::Time::Now() - base::TimeDelta::FromDays(1), 5, 3},
-      {base::Time::Now() - base::TimeDelta::FromDays(2),
-       base::Time::Now() - base::TimeDelta::FromDays(2), 7, 4},
-
-      {base::Time::Now() - base::TimeDelta::FromDays(1),
-       base::Time::Now() + base::TimeDelta::FromMicroseconds(1), 3, 2},
-      {base::Time::Now() - base::TimeDelta::FromDays(1), base::Time::Now(), 4,
+      {base::Time::Now() - base::Days(3), base::Time::Now() - base::Days(2), 6,
        3},
-      {base::Time::Now() - base::TimeDelta::FromDays(1),
-       base::Time::Now() - base::TimeDelta::FromDays(1), 7, 4},
+      {base::Time::Now() - base::Days(3), base::Time::Now() - base::Days(3), 7,
+       4},
 
-      {base::Time::Now(),
-       base::Time::Now() + base::TimeDelta::FromMicroseconds(1), 6, 3},
+      {base::Time::Now() - base::Days(2),
+       base::Time::Now() + base::Microseconds(1), 1, 1},
+      {base::Time::Now() - base::Days(2), base::Time::Now(), 2, 2},
+      {base::Time::Now() - base::Days(2), base::Time::Now() - base::Days(1), 5,
+       3},
+      {base::Time::Now() - base::Days(2), base::Time::Now() - base::Days(2), 7,
+       4},
+
+      {base::Time::Now() - base::Days(1),
+       base::Time::Now() + base::Microseconds(1), 3, 2},
+      {base::Time::Now() - base::Days(1), base::Time::Now(), 4, 3},
+      {base::Time::Now() - base::Days(1), base::Time::Now() - base::Days(1), 7,
+       4},
+
+      {base::Time::Now(), base::Time::Now() + base::Microseconds(1), 6, 3},
       {base::Time::Now(), base::Time::Now(), 7, 4},
   };
 
diff --git a/chrome/browser/permissions/prediction_based_permission_ui_selector.cc b/chrome/browser/permissions/prediction_based_permission_ui_selector.cc
index 0d8d0b8..417393ee 100644
--- a/chrome/browser/permissions/prediction_based_permission_ui_selector.cc
+++ b/chrome/browser/permissions/prediction_based_permission_ui_selector.cc
@@ -34,8 +34,7 @@
 
 // The data we consider can only be at most 28 days old to match the data that
 // the ML model is built on.
-constexpr base::TimeDelta kPermissionActionCutoffAge =
-    base::TimeDelta::FromDays(28);
+constexpr base::TimeDelta kPermissionActionCutoffAge = base::Days(28);
 
 // Only send requests if there are at least 4 action in the user's history for
 // the particular permission type.
diff --git a/chrome/browser/permissions/quiet_notification_permission_ui_config.cc b/chrome/browser/permissions/quiet_notification_permission_ui_config.cc
index cfb0c705..b4e6c1f 100644
--- a/chrome/browser/permissions/quiet_notification_permission_ui_config.cc
+++ b/chrome/browser/permissions/quiet_notification_permission_ui_config.cc
@@ -76,9 +76,9 @@
 base::TimeDelta
 QuietNotificationPermissionUiConfig::GetAdaptiveActivationWindowSize() {
   if (!base::FeatureList::IsEnabled(features::kQuietNotificationPrompts))
-    return base::TimeDelta::FromDays(90);
+    return base::Days(90);
 
-  return base::TimeDelta::FromDays(base::GetFieldTrialParamByFeatureAsInt(
+  return base::Days(base::GetFieldTrialParamByFeatureAsInt(
       features::kQuietNotificationPrompts,
       kAdaptiveActivationActionWindowSizeInDays, 90 /* default */));
 }
diff --git a/chrome/browser/policy/cloud/cloud_policy_invalidator.cc b/chrome/browser/policy/cloud/cloud_policy_invalidator.cc
index e6795ea..4dd27e5 100644
--- a/chrome/browser/policy/cloud/cloud_policy_invalidator.cc
+++ b/chrome/browser/policy/cloud/cloud_policy_invalidator.cc
@@ -405,7 +405,7 @@
   // invalidations are received in quick succession, only one fetch will be
   // performed.
   base::TimeDelta delay =
-      base::TimeDelta::FromMilliseconds(base::RandInt(20, max_fetch_delay_));
+      base::Milliseconds(base::RandInt(20, max_fetch_delay_));
 
   // If there is a payload, the policy can be refreshed at any time, so set
   // the version and payload on the client immediately. Otherwise, the refresh
@@ -413,7 +413,7 @@
   if (!payload.empty())
     core_->client()->SetInvalidationInfo(version, payload);
   else
-    delay += base::TimeDelta::FromMinutes(kMissingPayloadDelay);
+    delay += base::Minutes(kMissingPayloadDelay);
 
   // Schedule the policy to be refreshed.
   task_runner_->PostDelayedTask(
diff --git a/chrome/browser/policy/cloud/cloud_policy_invalidator_unittest.cc b/chrome/browser/policy/cloud/cloud_policy_invalidator_unittest.cc
index b9ab8c8..f257596 100644
--- a/chrome/browser/policy/cloud/cloud_policy_invalidator_unittest.cc
+++ b/chrome/browser/policy/cloud/cloud_policy_invalidator_unittest.cc
@@ -111,10 +111,8 @@
   void StorePolicy(PolicyObject object,
                    int64_t invalidation_version,
                    bool policy_changed) {
-    StorePolicy(object,
-                invalidation_version,
-                policy_changed,
-                Now() - base::TimeDelta::FromMinutes(5));
+    StorePolicy(object, invalidation_version, policy_changed,
+                Now() - base::Minutes(5));
   }
   void StorePolicy(PolicyObject object, int64_t invalidation_version) {
     StorePolicy(object, invalidation_version, false);
@@ -239,8 +237,7 @@
       policy_value_b_("zxcv"),
       policy_value_cur_(policy_value_a_),
       account_id_("test_account") {
-  clock_.SetNow(base::Time::UnixEpoch() +
-                base::TimeDelta::FromSeconds(987654321));
+  clock_.SetNow(base::Time::UnixEpoch() + base::Seconds(987654321));
 }
 
 void CloudPolicyInvalidatorTestBase::TearDown() {
@@ -372,8 +369,8 @@
 }
 
 bool CloudPolicyInvalidatorTestBase::CheckPolicyRefreshedWithUnknownVersion() {
-  return CheckPolicyRefreshed(base::TimeDelta::FromMinutes(
-        CloudPolicyInvalidator::kMissingPayloadDelay));
+  return CheckPolicyRefreshed(
+      base::Minutes(CloudPolicyInvalidator::kMissingPayloadDelay));
 }
 
 bool CloudPolicyInvalidatorTestBase::InvalidationsEnabled() {
@@ -425,8 +422,8 @@
 
 bool CloudPolicyInvalidatorTestBase::CheckPolicyRefreshed(
     base::TimeDelta delay) {
-  base::TimeDelta max_delay = delay + base::TimeDelta::FromMilliseconds(
-      CloudPolicyInvalidator::kMaxFetchDelayMin);
+  base::TimeDelta max_delay =
+      delay + base::Milliseconds(CloudPolicyInvalidator::kMaxFetchDelayMin);
 
   if (!task_runner_->HasPendingTask())
     return false;
@@ -1023,7 +1020,7 @@
             GetCountFcm(METRIC_POLICY_REFRESH_CHANGED_NO_INVALIDATIONS));
 
   // If the clock advances less than the grace period, invalidations are OFF.
-  AdvanceClock(base::TimeDelta::FromSeconds(1));
+  AdvanceClock(base::Seconds(1));
   StorePolicy(POLICY_OBJECT_A, 0, false /* policy_changed */);
   StorePolicy(POLICY_OBJECT_A, 0, true /* policy_changed */);
   EXPECT_EQ(2, GetCount(METRIC_POLICY_REFRESH_CHANGED_NO_INVALIDATIONS));
@@ -1031,8 +1028,7 @@
             GetCountFcm(METRIC_POLICY_REFRESH_CHANGED_NO_INVALIDATIONS));
 
   // After the grace period elapses, invalidations are ON.
-  AdvanceClock(base::TimeDelta::FromSeconds(
-      CloudPolicyInvalidator::kInvalidationGracePeriod));
+  AdvanceClock(base::Seconds(CloudPolicyInvalidator::kInvalidationGracePeriod));
   StorePolicy(POLICY_OBJECT_A, 0, false /* policy_changed */);
   StorePolicy(POLICY_OBJECT_A, 0, true /* policy_changed */);
   EXPECT_EQ(1, GetCount(METRIC_POLICY_REFRESH_CHANGED));
@@ -1057,8 +1053,7 @@
             GetCountFcm(METRIC_POLICY_REFRESH_CHANGED_NO_INVALIDATIONS));
 
   // After the grace period elapses, invalidations are ON.
-  AdvanceClock(base::TimeDelta::FromSeconds(
-      CloudPolicyInvalidator::kInvalidationGracePeriod));
+  AdvanceClock(base::Seconds(CloudPolicyInvalidator::kInvalidationGracePeriod));
   StorePolicy(POLICY_OBJECT_A, 0, false /* policy_changed */);
   StorePolicy(POLICY_OBJECT_A, 0, true /* policy_changed */);
 
@@ -1086,8 +1081,7 @@
   // Store loads after an invalidation are not counted as invalidated.
   StartInvalidator();
   StorePolicy(POLICY_OBJECT_A);
-  AdvanceClock(base::TimeDelta::FromSeconds(
-      CloudPolicyInvalidator::kInvalidationGracePeriod));
+  AdvanceClock(base::Seconds(CloudPolicyInvalidator::kInvalidationGracePeriod));
   FireInvalidation(POLICY_OBJECT_A, V(5), "test");
   StorePolicy(POLICY_OBJECT_A, 0, false /* policy_changed */);
   StorePolicy(POLICY_OBJECT_A, 0, true /* policy_changed */);
@@ -1132,29 +1126,29 @@
   // Invalidations fired before the last fetch time (adjusted by max time delta)
   // should be ignored.
   base::Time time = Now() - (invalidation_timeouts::kMaxInvalidationTimeDelta +
-                             base::TimeDelta::FromSeconds(300));
+                             base::Seconds(300));
   invalidation::Invalidation inv =
       FireInvalidation(POLICY_OBJECT_A, GetVersion(time), "test");
   ASSERT_TRUE(IsInvalidationAcknowledged(inv));
   ASSERT_TRUE(CheckPolicyNotRefreshed());
 
-  time += base::TimeDelta::FromMinutes(5) - base::TimeDelta::FromSeconds(1);
+  time += base::Minutes(5) - base::Seconds(1);
   inv = FireInvalidation(POLICY_OBJECT_A, GetVersion(time), "test");
   ASSERT_TRUE(IsInvalidationAcknowledged(inv));
   ASSERT_TRUE(CheckPolicyNotRefreshed());
 
   // Invalidations fired after the last fetch should not be ignored.
-  time += base::TimeDelta::FromSeconds(1);
+  time += base::Seconds(1);
   inv = FireInvalidation(POLICY_OBJECT_A, GetVersion(time), "test");
   ASSERT_FALSE(IsInvalidationAcknowledged(inv));
   ASSERT_TRUE(CheckPolicyRefreshed());
 
-  time += base::TimeDelta::FromMinutes(10);
+  time += base::Minutes(10);
   inv = FireInvalidation(POLICY_OBJECT_A, GetVersion(time), "test");
   ASSERT_FALSE(IsInvalidationAcknowledged(inv));
   ASSERT_TRUE(CheckPolicyRefreshed());
 
-  time += base::TimeDelta::FromMinutes(10);
+  time += base::Minutes(10);
   inv = FireInvalidation(POLICY_OBJECT_A, GetVersion(time), "test");
   ASSERT_FALSE(IsInvalidationAcknowledged(inv));
   ASSERT_TRUE(CheckPolicyRefreshed());
@@ -1166,14 +1160,14 @@
   ASSERT_TRUE(CheckPolicyNotRefreshed());
 
   AdvanceClock(invalidation_timeouts::kUnknownVersionIgnorePeriod -
-               base::TimeDelta::FromSeconds(1));
+               base::Seconds(1));
   inv = FireUnknownVersionInvalidation(POLICY_OBJECT_A);
   ASSERT_TRUE(IsInvalidationAcknowledged(inv));
   ASSERT_TRUE(CheckPolicyNotRefreshed());
 
   // Unknown version invalidations fired past the ignore period should not be
   // ignored.
-  AdvanceClock(base::TimeDelta::FromSeconds(1));
+  AdvanceClock(base::Seconds(1));
   inv = FireUnknownVersionInvalidation(POLICY_OBJECT_A);
   ASSERT_FALSE(IsInvalidationAcknowledged(inv));
   ASSERT_TRUE(CheckPolicyRefreshedWithUnknownVersion());
diff --git a/chrome/browser/policy/cloud/policy_invalidation_util.cc b/chrome/browser/policy/cloud/policy_invalidation_util.cc
index 0eed5dd9..36d71cf 100644
--- a/chrome/browser/policy/cloud/policy_invalidation_util.cc
+++ b/chrome/browser/policy/cloud/policy_invalidation_util.cc
@@ -57,8 +57,7 @@
   // invalidation occurred before the last fetch, then the invalidation
   // is expired.
   base::Time invalidation_time =
-      base::Time::UnixEpoch() +
-      base::TimeDelta::FromMicroseconds(invalidation.version()) +
+      base::Time::UnixEpoch() + base::Microseconds(invalidation.version()) +
       invalidation_timeouts::kMaxInvalidationTimeDelta;
   return invalidation_time < last_fetch_time;
 }
diff --git a/chrome/browser/policy/cloud/policy_invalidation_util.h b/chrome/browser/policy/cloud/policy_invalidation_util.h
index b8e855a4..3bd6be2 100644
--- a/chrome/browser/policy/cloud/policy_invalidation_util.h
+++ b/chrome/browser/policy/cloud/policy_invalidation_util.h
@@ -27,14 +27,12 @@
 
 // Time for which unknown version invalidations are ignored after
 // fetching a policy or command.
-constexpr base::TimeDelta kUnknownVersionIgnorePeriod =
-    base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kUnknownVersionIgnorePeriod = base::Seconds(30);
 
 // The max tolerated discrepancy between policy or remote commands
 // timestamps and invalidation timestamps when determining if an invalidation
 // is expired.
-constexpr base::TimeDelta kMaxInvalidationTimeDelta =
-    base::TimeDelta::FromSeconds(300);
+constexpr base::TimeDelta kMaxInvalidationTimeDelta = base::Seconds(300);
 
 }  // namespace invalidation_timeouts
 
diff --git a/chrome/browser/policy/cloud/user_policy_signin_service_mobile.cc b/chrome/browser/policy/cloud/user_policy_signin_service_mobile.cc
index 5689dad5..6e3dd97 100644
--- a/chrome/browser/policy/cloud/user_policy_signin_service_mobile.cc
+++ b/chrome/browser/policy/cloud/user_policy_signin_service_mobile.cc
@@ -116,10 +116,10 @@
 
   net::NetworkChangeNotifier::ConnectionType connection_type =
       net::NetworkChangeNotifier::GetConnectionType();
-  base::TimeDelta retry_delay = base::TimeDelta::FromDays(3);
+  base::TimeDelta retry_delay = base::Days(3);
   if (connection_type == net::NetworkChangeNotifier::CONNECTION_ETHERNET ||
       connection_type == net::NetworkChangeNotifier::CONNECTION_WIFI) {
-    retry_delay = base::TimeDelta::FromDays(1);
+    retry_delay = base::Days(1);
   }
 
   base::Time last_check_time = base::Time::FromInternalValue(
@@ -130,7 +130,7 @@
   // Check immediately if no check was ever done before (last_check_time == 0),
   // or if the last check was in the future (?), or if we're already past the
   // next check time. Otherwise, delay checking until the next check time.
-  base::TimeDelta try_registration_delay = base::TimeDelta::FromSeconds(5);
+  base::TimeDelta try_registration_delay = base::Seconds(5);
   if (now > last_check_time && now < next_check_time)
     try_registration_delay = next_check_time - now;
 
diff --git a/chrome/browser/policy/messaging_layer/public/report_client_unittest.cc b/chrome/browser/policy/messaging_layer/public/report_client_unittest.cc
index 71184aa7..18ee8b3 100644
--- a/chrome/browser/policy/messaging_layer/public/report_client_unittest.cc
+++ b/chrome/browser/policy/messaging_layer/public/report_client_unittest.cc
@@ -324,7 +324,7 @@
   }
 
   // Trigger upload.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
 }
 
 // Creates speculative queue, enqueues message and verifies it is uploaded
@@ -364,7 +364,7 @@
   }
 
   // Trigger upload.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
 }
 
 INSTANTIATE_TEST_SUITE_P(ReportClientTestSuite,
diff --git a/chrome/browser/policy/messaging_layer/upload/dm_server_upload_service_unittest.cc b/chrome/browser/policy/messaging_layer/upload/dm_server_upload_service_unittest.cc
index b00a2ce..e10cfb7 100644
--- a/chrome/browser/policy/messaging_layer/upload/dm_server_upload_service_unittest.cc
+++ b/chrome/browser/policy/messaging_layer/upload/dm_server_upload_service_unittest.cc
@@ -91,7 +91,7 @@
   std::unique_ptr<TestRecordHandler> handler_;
   std::unique_ptr<std::vector<EncryptedRecord>> records_;
 
-  const base::TimeDelta kMaxDelay_ = base::TimeDelta::FromSeconds(1);
+  const base::TimeDelta kMaxDelay_ = base::Seconds(1);
 };
 
 using TestEncryptionKeyAttached = MockFunction<void(SignedEncryptionInfo)>;
diff --git a/chrome/browser/policy/messaging_layer/util/heartbeat_event.cc b/chrome/browser/policy/messaging_layer/util/heartbeat_event.cc
index 4527c2e..1d22046 100644
--- a/chrome/browser/policy/messaging_layer/util/heartbeat_event.cc
+++ b/chrome/browser/policy/messaging_layer/util/heartbeat_event.cc
@@ -42,7 +42,7 @@
   }
 
   Start<ReportQueueManualTestContext>(
-      /*frequency=*/base::TimeDelta::FromSeconds(1),
+      /*frequency=*/base::Seconds(1),
       /*number_of_messages_to_enqueue=*/10,
       /*destination=*/HEARTBEAT_EVENTS,
       /*priority=*/FAST_BATCH, base::BindOnce([](Status status) {
diff --git a/chrome/browser/policy/messaging_layer/util/report_queue_manual_test_context.h b/chrome/browser/policy/messaging_layer/util/report_queue_manual_test_context.h
index f9fa66df..1cb35a72 100644
--- a/chrome/browser/policy/messaging_layer/util/report_queue_manual_test_context.h
+++ b/chrome/browser/policy/messaging_layer/util/report_queue_manual_test_context.h
@@ -23,7 +23,7 @@
 // messages will be sent as FAST_BATCH.
 //
 // This context can be used in the following way:
-//   Start<ReportQueueManualTestContext>(base::TimeDelta::FromSeconds(1),
+//   Start<ReportQueueManualTestContext>(base::Seconds(1),
 //                             /*number_of_messages_to_enqueue=*/10,
 //                             UPLOAD_EVENTS,
 //                             FAST_BATCH,
diff --git a/chrome/browser/policy/messaging_layer/util/report_queue_manual_test_context_unittest.cc b/chrome/browser/policy/messaging_layer/util/report_queue_manual_test_context_unittest.cc
index 98daefb..009392c 100644
--- a/chrome/browser/policy/messaging_layer/util/report_queue_manual_test_context_unittest.cc
+++ b/chrome/browser/policy/messaging_layer/util/report_queue_manual_test_context_unittest.cc
@@ -34,7 +34,7 @@
   const Priority kPriority = Priority::FAST_BATCH;
   const Destination kDestination = Destination::UPLOAD_EVENTS;
   const uint64_t kNumberOfMessagesToEnqueue = 5;
-  const base::TimeDelta kMessageFrequency = base::TimeDelta::FromSeconds(1);
+  const base::TimeDelta kMessageFrequency = base::Seconds(1);
 
   void SetUp() override {
     task_runner_ =
diff --git a/chrome/browser/policy/profile_policy_connector.cc b/chrome/browser/policy/profile_policy_connector.cc
index a6ba855..7965072 100644
--- a/chrome/browser/policy/profile_policy_connector.cc
+++ b/chrome/browser/policy/profile_policy_connector.cc
@@ -75,9 +75,7 @@
     device_wide_policy_service->AddProviderUpdateObserver(this);
 
     timeout_timer_.Start(
-        FROM_HERE,
-        base::TimeDelta::FromSeconds(
-            kProxiedPoliciesPropagationTimeoutInSeconds),
+        FROM_HERE, base::Seconds(kProxiedPoliciesPropagationTimeoutInSeconds),
         this,
         &ProxiedPoliciesPropagatedWatcher::OnProviderUpdatePropagationTimedOut);
   }
diff --git a/chrome/browser/policy/test/policy_browsertest.cc b/chrome/browser/policy/test/policy_browsertest.cc
index 01d1b8b..985bff83 100644
--- a/chrome/browser/policy/test/policy_browsertest.cc
+++ b/chrome/browser/policy/test/policy_browsertest.cc
@@ -319,7 +319,7 @@
   // occurred yet.
   g_browser_process->local_state()->SetInt64(
       prefs::kSessionStartTime,
-      (base::Time::Now() - base::TimeDelta::FromHours(2)).ToInternalValue());
+      (base::Time::Now() - base::Hours(2)).ToInternalValue());
 }
 
 // Disabled, see http://crbug.com/554728.
@@ -354,7 +354,7 @@
   // Indicate that initial user activity in this session occurred 2 hours ago.
   g_browser_process->local_state()->SetInt64(
       prefs::kSessionStartTime,
-      (base::Time::Now() - base::TimeDelta::FromHours(2)).ToInternalValue());
+      (base::Time::Now() - base::Hours(2)).ToInternalValue());
   g_browser_process->local_state()->SetBoolean(prefs::kSessionUserActivitySeen,
                                                true);
 }
diff --git a/chrome/browser/policy/test/session_length_limit_policy_browsertest.cc b/chrome/browser/policy/test/session_length_limit_policy_browsertest.cc
index cc8705eb3..1e1408e9 100644
--- a/chrome/browser/policy/test/session_length_limit_policy_browsertest.cc
+++ b/chrome/browser/policy/test/session_length_limit_policy_browsertest.cc
@@ -38,7 +38,7 @@
   // occurred yet.
   g_browser_process->local_state()->SetInt64(
       prefs::kSessionStartTime,
-      (base::Time::Now() - base::TimeDelta::FromHours(2)).ToInternalValue());
+      (base::Time::Now() - base::Hours(2)).ToInternalValue());
 }
 
 IN_PROC_BROWSER_TEST_F(PolicyTest, SessionLengthLimit) {
diff --git a/chrome/browser/portal/portal_recently_audible_browsertest.cc b/chrome/browser/portal/portal_recently_audible_browsertest.cc
index 8552ff9..ed1ad9c 100644
--- a/chrome/browser/portal/portal_recently_audible_browsertest.cc
+++ b/chrome/browser/portal/portal_recently_audible_browsertest.cc
@@ -30,7 +30,7 @@
   PortalRecentlyAudibleBrowserTest() = default;
 
   void SetUp() override {
-    EXPECT_GT(TestTimeouts::action_timeout(), base::TimeDelta::FromSeconds(2))
+    EXPECT_GT(TestTimeouts::action_timeout(), base::Seconds(2))
         << "action timeout must be long enough for recently audible indicator "
            "to update";
 
diff --git a/chrome/browser/predictors/autocomplete_action_predictor_unittest.cc b/chrome/browser/predictors/autocomplete_action_predictor_unittest.cc
index 0ae1560..19f2b24 100644
--- a/chrome/browser/predictors/autocomplete_action_predictor_unittest.cc
+++ b/chrome/browser/predictors/autocomplete_action_predictor_unittest.cc
@@ -136,8 +136,7 @@
     CHECK(url_db);
 
     const base::Time visit_time =
-        base::Time::Now() - base::TimeDelta::FromDays(
-            test_row.days_from_now);
+        base::Time::Now() - base::Days(test_row.days_from_now);
 
     history::URLRow row(test_row.url);
     row.set_title(test_row.title);
diff --git a/chrome/browser/predictors/loading_data_collector.cc b/chrome/browser/predictors/loading_data_collector.cc
index 6897abc4..d89f7d1 100644
--- a/chrome/browser/predictors/loading_data_collector.cc
+++ b/chrome/browser/predictors/loading_data_collector.cc
@@ -322,7 +322,7 @@
     stats_collector_->CleanupAbandonedStats();
 
   static const base::TimeDelta max_navigation_age =
-      base::TimeDelta::FromSeconds(config_.max_navigation_lifetime_seconds);
+      base::Seconds(config_.max_navigation_lifetime_seconds);
 
   base::TimeTicks time_now = base::TimeTicks::Now();
   for (auto it = inflight_navigations_.begin();
diff --git a/chrome/browser/predictors/loading_data_collector_unittest.cc b/chrome/browser/predictors/loading_data_collector_unittest.cc
index 0d88843..87ec7129 100644
--- a/chrome/browser/predictors/loading_data_collector_unittest.cc
+++ b/chrome/browser/predictors/loading_data_collector_unittest.cc
@@ -373,9 +373,8 @@
 
   GURL url5("http://www.google.com");
   // Change this creation time so that it will go away on the next insert.
-  collector_->RecordStartNavigation(
-      navigation_id2, ukm::SourceId(), url5,
-      base::TimeTicks::Now() - base::TimeDelta::FromDays(1));
+  collector_->RecordStartNavigation(navigation_id2, ukm::SourceId(), url5,
+                                    base::TimeTicks::Now() - base::Days(1));
   EXPECT_EQ(3U, collector_->inflight_navigations_.size());
 
   auto navigation_id6 = GetNextId();
diff --git a/chrome/browser/predictors/loading_predictor.cc b/chrome/browser/predictors/loading_predictor.cc
index 9b0afcd..3f29b8d 100644
--- a/chrome/browser/predictors/loading_predictor.cc
+++ b/chrome/browser/predictors/loading_predictor.cc
@@ -36,10 +36,8 @@
 
 namespace {
 
-const base::TimeDelta kMinDelayBetweenPreresolveRequests =
-    base::TimeDelta::FromSeconds(60);
-const base::TimeDelta kMinDelayBetweenPreconnectRequests =
-    base::TimeDelta::FromSeconds(10);
+const base::TimeDelta kMinDelayBetweenPreresolveRequests = base::Seconds(60);
+const base::TimeDelta kMinDelayBetweenPreconnectRequests = base::Seconds(10);
 
 // Returns true iff |prediction| is not empty.
 bool AddInitialUrlToPreconnectPrediction(const GURL& initial_url,
@@ -259,7 +257,7 @@
     NavigationId navigation_id) {
   base::TimeTicks time_now = base::TimeTicks::Now();
   const base::TimeDelta max_navigation_age =
-      base::TimeDelta::FromSeconds(config_.max_navigation_lifetime_seconds);
+      base::Seconds(config_.max_navigation_lifetime_seconds);
 
   // Hints.
   for (auto it = active_hints_.begin(); it != active_hints_.end();) {
diff --git a/chrome/browser/predictors/loading_predictor_unittest.cc b/chrome/browser/predictors/loading_predictor_unittest.cc
index 29e06292..b33475c 100644
--- a/chrome/browser/predictors/loading_predictor_unittest.cc
+++ b/chrome/browser/predictors/loading_predictor_unittest.cc
@@ -232,7 +232,7 @@
 
   // To check that the hint is not replaced, set the start time in the past,
   // and check later that it didn't change.
-  base::TimeTicks start_time = it->second - base::TimeDelta::FromSeconds(10);
+  base::TimeTicks start_time = it->second - base::Seconds(10);
   it->second = start_time;
 
   auto navigation_id = GetNextId();
@@ -257,7 +257,7 @@
 
   // To check that the hint is replaced, set the start time in the past,
   // and check later that it changed.
-  base::TimeTicks start_time = it->second - base::TimeDelta::FromSeconds(10);
+  base::TimeTicks start_time = it->second - base::Seconds(10);
   it->second = start_time;
 
   std::unique_ptr<PreconnectStats> preconnect_stats =
@@ -291,7 +291,7 @@
 
   // To check that the hint is not replaced, set the start time in the recent
   // past, and check later that it didn't change.
-  base::TimeTicks start_time = it->second - base::TimeDelta::FromSeconds(10);
+  base::TimeTicks start_time = it->second - base::Seconds(10);
   it->second = start_time;
 
   predictor_->PrepareForPageLoad(url, HintOrigin::NAVIGATION_PREDICTOR);
diff --git a/chrome/browser/predictors/loading_stats_collector.cc b/chrome/browser/predictors/loading_stats_collector.cc
index 947fa080..02abb0b 100644
--- a/chrome/browser/predictors/loading_stats_collector.cc
+++ b/chrome/browser/predictors/loading_stats_collector.cc
@@ -149,8 +149,7 @@
     ResourcePrefetchPredictor* predictor,
     const LoadingPredictorConfig& config)
     : predictor_(predictor),
-      max_stats_age_(base::TimeDelta::FromSeconds(
-          config.max_navigation_lifetime_seconds)) {}
+      max_stats_age_(base::Seconds(config.max_navigation_lifetime_seconds)) {}
 
 LoadingStatsCollector::~LoadingStatsCollector() = default;
 
diff --git a/chrome/browser/predictors/loading_stats_collector_unittest.cc b/chrome/browser/predictors/loading_stats_collector_unittest.cc
index b2877e4..6904978 100644
--- a/chrome/browser/predictors/loading_stats_collector_unittest.cc
+++ b/chrome/browser/predictors/loading_stats_collector_unittest.cc
@@ -134,7 +134,7 @@
   base::TimeTicks now = base::TimeTicks::Now();
   PageRequestSummary summary =
       CreatePageRequestSummary(main_frame_url, main_frame_url, resources, now);
-  summary.navigation_committed = now + base::TimeDelta::FromMilliseconds(3);
+  summary.navigation_committed = now + base::Milliseconds(3);
   summary.preconnect_origins = {
       url::Origin::Create(GURL(gen(1))),
       url::Origin::Create(GURL(gen(2))),
@@ -230,7 +230,7 @@
       optimization_guide::OptimizationGuideDecision::kTrue;
   base::TimeTicks now = base::TimeTicks::Now();
   optimization_guide_prediction->optimization_guide_prediction_arrived =
-      now + base::TimeDelta::FromMilliseconds(3);
+      now + base::Milliseconds(3);
   optimization_guide_prediction->preconnect_prediction =
       CreatePreconnectPrediction(
           GURL(main_frame_url).host(), false,
@@ -257,7 +257,7 @@
       GURL(gen(2)),
       GURL(gen(3)),
   };
-  summary.first_prefetch_initiated = now + base::TimeDelta::FromMilliseconds(1);
+  summary.first_prefetch_initiated = now + base::Milliseconds(1);
 
   stats_collector_->RecordPageRequestSummary(summary,
                                              optimization_guide_prediction);
@@ -434,7 +434,7 @@
   base::TimeTicks now = base::TimeTicks::Now();
   PageRequestSummary summary =
       CreatePageRequestSummary(main_frame_url, main_frame_url, resources, now);
-  summary.navigation_committed = now + base::TimeDelta::FromMilliseconds(3);
+  summary.navigation_committed = now + base::Milliseconds(3);
   stats_collector_->RecordPageRequestSummary(summary, absl::nullopt);
 
   // No histograms should be recorded.
diff --git a/chrome/browser/predictors/resource_prefetch_predictor.cc b/chrome/browser/predictors/resource_prefetch_predictor.cc
index 4f063803..b067beec 100644
--- a/chrome/browser/predictors/resource_prefetch_predictor.cc
+++ b/chrome/browser/predictors/resource_prefetch_predictor.cc
@@ -263,10 +263,10 @@
   // Create local caches using the database as loaded.
   auto host_redirect_data = std::make_unique<RedirectDataMap>(
       tables_, tables_->host_redirect_table(), config_.max_hosts_to_track,
-      base::TimeDelta::FromSeconds(config_.flush_data_to_disk_delay_seconds));
+      base::Seconds(config_.flush_data_to_disk_delay_seconds));
   auto origin_data = std::make_unique<OriginDataMap>(
       tables_, tables_->origin_table(), config_.max_hosts_to_track,
-      base::TimeDelta::FromSeconds(config_.flush_data_to_disk_delay_seconds));
+      base::Seconds(config_.flush_data_to_disk_delay_seconds));
 
   // Get raw pointers to pass to the first task. Ownership of the unique_ptrs
   // will be passed to the reply task.
diff --git a/chrome/browser/prefetch/no_state_prefetch/prerender_nostate_prefetch_browsertest.cc b/chrome/browser/prefetch/no_state_prefetch/prerender_nostate_prefetch_browsertest.cc
index f8aaba91..a8e55c3 100644
--- a/chrome/browser/prefetch/no_state_prefetch/prerender_nostate_prefetch_browsertest.cc
+++ b/chrome/browser/prefetch/no_state_prefetch/prerender_nostate_prefetch_browsertest.cc
@@ -289,7 +289,7 @@
 
   void OverrideNoStatePrefetchManagerTimeTicks() {
     // The default zero time causes the prerender manager to do strange things.
-    clock_.Advance(base::TimeDelta::FromSeconds(1));
+    clock_.Advance(base::Seconds(1));
     GetNoStatePrefetchManager()->SetTickClockForTesting(&clock_);
   }
 
@@ -1749,7 +1749,7 @@
       content::BackForwardCache::TEST_ASSUMES_NO_CACHING);
   UseHttpsSrcServer();
   GetNoStatePrefetchManager()->mutable_config().abandon_time_to_live =
-      base::TimeDelta::FromMilliseconds(500);
+      base::Milliseconds(500);
   ASSERT_TRUE(ui_test_utils::NavigateToURL(
       current_browser(), src_server()->GetURL("/defaultresponse?landing")));
   InsertSpeculation(src_server()->GetURL("/hung"), FINAL_STATUS_TIMED_OUT,
diff --git a/chrome/browser/prefetch/no_state_prefetch/prerender_unittest.cc b/chrome/browser/prefetch/no_state_prefetch/prerender_unittest.cc
index 80f69d8..493efa6 100644
--- a/chrome/browser/prefetch/no_state_prefetch/prerender_unittest.cc
+++ b/chrome/browser/prefetch/no_state_prefetch/prerender_unittest.cc
@@ -873,15 +873,14 @@
       kUrl, absl::nullopt, ORIGIN_OMNIBOX, FINAL_STATUS_PROFILE_DESTROYED);
 
   // Prefetching again before time_to_live aborts, because it is a duplicate.
-  tick_clock()->Advance(base::TimeDelta::FromSeconds(1));
+  tick_clock()->Advance(base::Seconds(1));
   EXPECT_FALSE(no_state_prefetch_manager()->AddPrerenderFromOmnibox(
       kUrl, nullptr, gfx::Size()));
   histogram_tester().ExpectBucketCount("Prerender.FinalStatus",
                                        FINAL_STATUS_DUPLICATE, 1);
 
   // Prefetching after time_to_live succeeds.
-  tick_clock()->Advance(
-      base::TimeDelta::FromMinutes(net::HttpCache::kPrefetchReuseMins));
+  tick_clock()->Advance(base::Minutes(net::HttpCache::kPrefetchReuseMins));
   EXPECT_TRUE(no_state_prefetch_manager()->AddPrerenderFromOmnibox(
       kUrl, nullptr, gfx::Size()));
 }
diff --git a/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_browsertest.cc b/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_browsertest.cc
index 370e327..4368a54 100644
--- a/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_browsertest.cc
+++ b/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_browsertest.cc
@@ -1584,7 +1584,7 @@
   {
     base::RunLoop run_loop;
     content::GetUIThreadTaskRunner({})->PostDelayedTask(
-        FROM_HERE, run_loop.QuitClosure(), base::TimeDelta::FromSeconds(10));
+        FROM_HERE, run_loop.QuitClosure(), base::Seconds(10));
     run_loop.Run();
   }
   {
diff --git a/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_origin_decider.cc b/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_origin_decider.cc
index 93042d3..2168668 100644
--- a/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_origin_decider.cc
+++ b/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_origin_decider.cc
@@ -64,8 +64,7 @@
   }
 
   UMA_HISTOGRAM_CUSTOM_TIMES("PrefetchProxy.Prefetch.Mainframe.RetryAfter",
-                             retry_after, base::TimeDelta::FromSeconds(1),
-                             base::TimeDelta::FromDays(7), 100);
+                             retry_after, base::Seconds(1), base::Days(7), 100);
 
   // Cap values at a maximum per experiment.
   if (retry_after > PrefetchProxyMaxRetryAfterDelta()) {
diff --git a/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_origin_decider_unittest.cc b/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_origin_decider_unittest.cc
index 1969a5b9..b9feeac 100644
--- a/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_origin_decider_unittest.cc
+++ b/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_origin_decider_unittest.cc
@@ -41,7 +41,7 @@
   GURL url("http://foo.com");
 
   auto decider = NewDecider();
-  decider->ReportOriginRetryAfter(url, base::TimeDelta::FromSeconds(-1));
+  decider->ReportOriginRetryAfter(url, base::Seconds(-1));
   EXPECT_TRUE(decider->IsOriginOutsideRetryAfterWindow(url));
 }
 
@@ -54,13 +54,12 @@
 
   auto decider = NewDecider();
 
-  decider->ReportOriginRetryAfter(url, base::TimeDelta::FromSeconds(15));
+  decider->ReportOriginRetryAfter(url, base::Seconds(15));
   EXPECT_FALSE(decider->IsOriginOutsideRetryAfterWindow(url));
   histogram_tester()->ExpectUniqueTimeSample(
-      "PrefetchProxy.Prefetch.Mainframe.RetryAfter",
-      base::TimeDelta::FromSeconds(15), 1);
+      "PrefetchProxy.Prefetch.Mainframe.RetryAfter", base::Seconds(15), 1);
 
-  clock()->Advance(base::TimeDelta::FromSeconds(11));
+  clock()->Advance(base::Seconds(11));
   EXPECT_TRUE(decider->IsOriginOutsideRetryAfterWindow(url));
 }
 
@@ -69,14 +68,13 @@
 
   auto decider = NewDecider();
 
-  decider->ReportOriginRetryAfter(url, base::TimeDelta::FromSeconds(15));
+  decider->ReportOriginRetryAfter(url, base::Seconds(15));
   histogram_tester()->ExpectUniqueTimeSample(
-      "PrefetchProxy.Prefetch.Mainframe.RetryAfter",
-      base::TimeDelta::FromSeconds(15), 1);
+      "PrefetchProxy.Prefetch.Mainframe.RetryAfter", base::Seconds(15), 1);
 
   for (size_t i = 0; i <= 15; i++) {
     EXPECT_FALSE(decider->IsOriginOutsideRetryAfterWindow(url));
-    clock()->Advance(base::TimeDelta::FromSeconds(1));
+    clock()->Advance(base::Seconds(1));
   }
 
   EXPECT_TRUE(decider->IsOriginOutsideRetryAfterWindow(url));
@@ -85,11 +83,9 @@
 TEST_F(PrefetchProxyOriginDeciderTest, ByOrigin) {
   auto decider = NewDecider();
 
-  decider->ReportOriginRetryAfter(GURL("http://foo.com"),
-                                  base::TimeDelta::FromSeconds(1));
+  decider->ReportOriginRetryAfter(GURL("http://foo.com"), base::Seconds(1));
   histogram_tester()->ExpectUniqueTimeSample(
-      "PrefetchProxy.Prefetch.Mainframe.RetryAfter",
-      base::TimeDelta::FromSeconds(1), 1);
+      "PrefetchProxy.Prefetch.Mainframe.RetryAfter", base::Seconds(1), 1);
 
   // Any url for the origin should be ineligible.
   for (const GURL& url : {
@@ -117,10 +113,9 @@
 
   auto decider = NewDecider();
 
-  decider->ReportOriginRetryAfter(url, base::TimeDelta::FromSeconds(1));
+  decider->ReportOriginRetryAfter(url, base::Seconds(1));
   histogram_tester()->ExpectUniqueTimeSample(
-      "PrefetchProxy.Prefetch.Mainframe.RetryAfter",
-      base::TimeDelta::FromSeconds(1), 1);
+      "PrefetchProxy.Prefetch.Mainframe.RetryAfter", base::Seconds(1), 1);
   EXPECT_FALSE(decider->IsOriginOutsideRetryAfterWindow(url));
 
   decider->OnBrowsingDataCleared();
@@ -132,20 +127,17 @@
     auto decider = NewDecider();
 
     decider->ReportOriginRetryAfter(GURL("http://expired.com"),
-                                    base::TimeDelta::FromSeconds(1));
-    decider->ReportOriginRetryAfter(GURL("http://foo.com"),
-                                    base::TimeDelta::FromSeconds(3));
+                                    base::Seconds(1));
+    decider->ReportOriginRetryAfter(GURL("http://foo.com"), base::Seconds(3));
     histogram_tester()->ExpectTimeBucketCount(
-        "PrefetchProxy.Prefetch.Mainframe.RetryAfter",
-        base::TimeDelta::FromSeconds(1), 1);
+        "PrefetchProxy.Prefetch.Mainframe.RetryAfter", base::Seconds(1), 1);
     histogram_tester()->ExpectTimeBucketCount(
-        "PrefetchProxy.Prefetch.Mainframe.RetryAfter",
-        base::TimeDelta::FromSeconds(3), 1);
+        "PrefetchProxy.Prefetch.Mainframe.RetryAfter", base::Seconds(3), 1);
     histogram_tester()->ExpectTotalCount(
         "PrefetchProxy.Prefetch.Mainframe.RetryAfter", 2);
   }
 
-  clock()->Advance(base::TimeDelta::FromSeconds(2));
+  clock()->Advance(base::Seconds(2));
 
   {
     auto decider = NewDecider();
diff --git a/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_origin_prober.cc b/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_origin_prober.cc
index 8f00116..9a349f3 100644
--- a/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_origin_prober.cc
+++ b/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_origin_prober.cc
@@ -314,7 +314,7 @@
       ->PostDelayedTask(
           FROM_HERE,
           base::BindOnce(&StartCanaryCheck, tls_canary_check_->AsWeakPtr()),
-          base::TimeDelta::FromSeconds(1));
+          base::Seconds(1));
 }
 
 PrefetchProxyOriginProber::~PrefetchProxyOriginProber() = default;
@@ -438,7 +438,7 @@
           AvailabilityProber::HttpMethod::kHead, net::HttpRequestHeaders(),
           retry_policy, timeout_policy, GetProbingTrafficAnnotation(),
           0 /* max_cache_entries */,
-          base::TimeDelta::FromSeconds(0) /* revalidate_cache_after */);
+          base::Seconds(0) /* revalidate_cache_after */);
   AvailabilityProber* prober_ptr = prober.get();
 
   // Transfer ownership of the prober to the callback so that the class instance
diff --git a/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_params.cc b/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_params.cc
index 17199aa..a2d8db3 100644
--- a/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_params.cc
+++ b/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_params.cc
@@ -119,10 +119,9 @@
 }
 
 base::TimeDelta PrefetchProxyProbeTimeout() {
-  return base::TimeDelta::FromMilliseconds(
-      base::GetFieldTrialParamByFeatureAsInt(
-          features::kIsolatePrerendersMustProbeOrigin, "probe_timeout_ms",
-          10 * 1000 /* 10 seconds */));
+  return base::Milliseconds(base::GetFieldTrialParamByFeatureAsInt(
+      features::kIsolatePrerendersMustProbeOrigin, "probe_timeout_ms",
+      10 * 1000 /* 10 seconds */));
 }
 
 bool PrefetchProxyCloseIdleSockets() {
@@ -131,10 +130,9 @@
 }
 
 base::TimeDelta PrefetchProxyTimeoutDuration() {
-  return base::TimeDelta::FromMilliseconds(
-      base::GetFieldTrialParamByFeatureAsInt(features::kIsolatePrerenders,
-                                             "prefetch_timeout_ms",
-                                             10 * 1000 /* 10 seconds */));
+  return base::Milliseconds(base::GetFieldTrialParamByFeatureAsInt(
+      features::kIsolatePrerenders, "prefetch_timeout_ms",
+      10 * 1000 /* 10 seconds */));
 }
 
 bool PrefetchProxyProbingEnabled() {
@@ -171,7 +169,7 @@
 }
 
 base::TimeDelta PrefetchProxyCanaryCheckCacheLifetime() {
-  return base::TimeDelta::FromHours(base::GetFieldTrialParamByFeatureAsInt(
+  return base::Hours(base::GetFieldTrialParamByFeatureAsInt(
       features::kIsolatePrerendersMustProbeOrigin, "canary_cache_hours", 24));
 }
 
@@ -228,7 +226,7 @@
   int max_seconds = base::GetFieldTrialParamByFeatureAsInt(
       features::kIsolatePrerenders, "max_retry_after_duration_secs",
       1 * 60 * 60 * 24 * 7 /* 1 week */);
-  return base::TimeDelta::FromSeconds(max_seconds);
+  return base::Seconds(max_seconds);
 }
 
 bool PrefetchProxySendDecoyRequestForIneligiblePrefetch() {
@@ -260,6 +258,6 @@
 }
 
 base::TimeDelta PrefetchProxyCacheableDuration() {
-  return base::TimeDelta::FromSeconds(base::GetFieldTrialParamByFeatureAsInt(
+  return base::Seconds(base::GetFieldTrialParamByFeatureAsInt(
       features::kIsolatePrerenders, "cacheable_duration", 300));
 }
diff --git a/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_prefetch_metrics_collector_unittest.cc b/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_prefetch_metrics_collector_unittest.cc
index 68fdbdc3..e41b762 100644
--- a/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_prefetch_metrics_collector_unittest.cc
+++ b/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_prefetch_metrics_collector_unittest.cc
@@ -142,15 +142,13 @@
     collector->OnMainframeResourcePrefetched(
         mainframe_url,
         /*prediction_position=*/0,
-        MakeHead("HTTP/1.1 200 OK\n", base::TimeDelta::FromMilliseconds(5)),
-        MakeCompletionStatus(net::OK, 123,
-                             base::TimeDelta::FromMilliseconds(10)));
+        MakeHead("HTTP/1.1 200 OK\n", base::Milliseconds(5)),
+        MakeCompletionStatus(net::OK, 123, base::Milliseconds(10)));
 
     collector->OnSubresourcePrefetched(
         mainframe_url, GURL("http://subresource.com/"),
-        MakeHead("HTTP/1.1 200 OK\n", base::TimeDelta::FromMilliseconds(10)),
-        MakeCompletionStatus(net::OK, 234,
-                             base::TimeDelta::FromMilliseconds(16)));
+        MakeHead("HTTP/1.1 200 OK\n", base::Milliseconds(10)),
+        MakeCompletionStatus(net::OK, 234, base::Milliseconds(16)));
 
     collector->OnMainframeNavigatedTo(mainframe_url);
   }
@@ -205,10 +203,8 @@
     collector->OnMainframeResourcePrefetched(
         mainframe_url,
         /*prediction_position=*/0,
-        MakeHead("HTTP/1.1 404 Not Found\n",
-                 base::TimeDelta::FromMilliseconds(5)),
-        MakeCompletionStatus(net::OK, 123,
-                             base::TimeDelta::FromMilliseconds(10)));
+        MakeHead("HTTP/1.1 404 Not Found\n", base::Milliseconds(5)),
+        MakeCompletionStatus(net::OK, 123, base::Milliseconds(10)));
   }
 
   std::vector<UkmEntry> expected_entries{
@@ -248,9 +244,8 @@
     collector->OnDecoyPrefetchComplete(
         mainframe_url,
         /*prediction_position=*/0,
-        MakeHead("HTTP/1.1 200 OK\n", base::TimeDelta::FromMilliseconds(5)),
-        MakeCompletionStatus(net::OK, 123,
-                             base::TimeDelta::FromMilliseconds(10)));
+        MakeHead("HTTP/1.1 200 OK\n", base::Milliseconds(5)),
+        MakeCompletionStatus(net::OK, 123, base::Milliseconds(10)));
 
     collector->OnMainframeNavigatedTo(mainframe_url);
   }
@@ -285,8 +280,7 @@
     collector->OnMainframeResourcePrefetched(
         mainframe_url,
         /*prediction_position=*/0, nullptr,
-        MakeCompletionStatus(net::OK, 123,
-                             base::TimeDelta::FromMilliseconds(10)));
+        MakeCompletionStatus(net::OK, 123, base::Milliseconds(10)));
   }
 
   std::vector<UkmEntry> expected_entries{
@@ -317,9 +311,8 @@
     collector->OnMainframeResourcePrefetched(
         mainframe_url,
         /*prediction_position=*/0,
-        MakeHead("HTTP/1.1 200 OK\n", base::TimeDelta::FromMilliseconds(5)),
-        MakeCompletionStatus(net::ERR_FAILED, 123,
-                             base::TimeDelta::FromMilliseconds(10)));
+        MakeHead("HTTP/1.1 200 OK\n", base::Milliseconds(5)),
+        MakeCompletionStatus(net::ERR_FAILED, 123, base::Milliseconds(10)));
   }
 
   std::vector<UkmEntry> expected_entries{
@@ -352,9 +345,8 @@
     collector->OnDecoyPrefetchComplete(
         mainframe_url,
         /*prediction_position=*/0,
-        MakeHead("HTTP/1.1 200 OK\n", base::TimeDelta::FromMilliseconds(5)),
-        MakeCompletionStatus(net::ERR_FAILED, 123,
-                             base::TimeDelta::FromMilliseconds(10)));
+        MakeHead("HTTP/1.1 200 OK\n", base::Milliseconds(5)),
+        MakeCompletionStatus(net::ERR_FAILED, 123, base::Milliseconds(10)));
   }
 
   std::vector<UkmEntry> expected_entries{
@@ -400,9 +392,8 @@
       collector->OnMainframeResourcePrefetched(
           mainframe_url,
           /*prediction_position=*/0,
-          MakeHead("HTTP/1.1 200 OK\n", base::TimeDelta::FromMilliseconds(5)),
-          MakeCompletionStatus(net::OK, 123,
-                               base::TimeDelta::FromMilliseconds(10)));
+          MakeHead("HTTP/1.1 200 OK\n", base::Milliseconds(5)),
+          MakeCompletionStatus(net::OK, 123, base::Milliseconds(10)));
 
       collector->OnMainframeNavigatedTo(mainframe_url);
 
@@ -445,21 +436,18 @@
     collector->OnMainframeResourcePrefetched(
         mainframe_url,
         /*prediction_position=*/0,
-        MakeHead("HTTP/1.1 200 OK\n", base::TimeDelta::FromMilliseconds(5)),
-        MakeCompletionStatus(net::OK, 123,
-                             base::TimeDelta::FromMilliseconds(10)));
+        MakeHead("HTTP/1.1 200 OK\n", base::Milliseconds(5)),
+        MakeCompletionStatus(net::OK, 123, base::Milliseconds(10)));
 
     collector->OnSubresourcePrefetched(
         mainframe_url, subresource_url,
-        MakeHead("HTTP/1.1 200 OK\n", base::TimeDelta::FromMilliseconds(6)),
-        MakeCompletionStatus(net::OK, 234,
-                             base::TimeDelta::FromMilliseconds(12)));
+        MakeHead("HTTP/1.1 200 OK\n", base::Milliseconds(6)),
+        MakeCompletionStatus(net::OK, 234, base::Milliseconds(12)));
 
     collector->OnSubresourcePrefetched(
         mainframe_url, subresource_url2,
-        MakeHead("HTTP/1.1 200 OK\n", base::TimeDelta::FromMilliseconds(7)),
-        MakeCompletionStatus(net::OK, 345,
-                             base::TimeDelta::FromMilliseconds(14)));
+        MakeHead("HTTP/1.1 200 OK\n", base::Milliseconds(7)),
+        MakeCompletionStatus(net::OK, 345, base::Milliseconds(14)));
 
     collector->OnMainframeNavigatedTo(mainframe_url);
 
@@ -527,9 +515,8 @@
     collector->OnMainframeResourcePrefetched(
         mainframe_url,
         /*prediction_position=*/0,
-        MakeHead("HTTP/1.1 200 OK\n", base::TimeDelta::FromMilliseconds(5)),
-        MakeCompletionStatus(net::OK, 123,
-                             base::TimeDelta::FromMilliseconds(10)));
+        MakeHead("HTTP/1.1 200 OK\n", base::Milliseconds(5)),
+        MakeCompletionStatus(net::OK, 123, base::Milliseconds(10)));
 
     collector->OnMainframeResourceNotEligible(
         GURL("http://ineligible.com"),
@@ -538,15 +525,13 @@
 
     collector->OnSubresourcePrefetched(
         mainframe_url, subresource_url,
-        MakeHead("HTTP/1.1 200 OK\n", base::TimeDelta::FromMilliseconds(6)),
-        MakeCompletionStatus(net::OK, 234,
-                             base::TimeDelta::FromMilliseconds(12)));
+        MakeHead("HTTP/1.1 200 OK\n", base::Milliseconds(6)),
+        MakeCompletionStatus(net::OK, 234, base::Milliseconds(12)));
 
     collector->OnSubresourcePrefetched(
         mainframe_url, subresource_url2,
-        MakeHead("HTTP/1.1 200 OK\n", base::TimeDelta::FromMilliseconds(7)),
-        MakeCompletionStatus(net::OK, 345,
-                             base::TimeDelta::FromMilliseconds(14)));
+        MakeHead("HTTP/1.1 200 OK\n", base::Milliseconds(7)),
+        MakeCompletionStatus(net::OK, 345, base::Milliseconds(14)));
 
     collector->OnSubresourceNotEligible(
         mainframe_url, GURL("http://ineligible.com/subresource"),
diff --git a/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_proxy_configurator.cc b/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_proxy_configurator.cc
index 54b1be9..e06bb32 100644
--- a/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_proxy_configurator.cc
+++ b/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_proxy_configurator.cc
@@ -145,7 +145,7 @@
     // Pick a random value between 1-5 mins if the proxy didn't give us a
     // Retry-After value. The randomness will help ensure there is no sudden
     // wave of requests following a proxy error.
-    retry_proxy_at = clock_->Now() + base::TimeDelta::FromSeconds(base::RandInt(
+    retry_proxy_at = clock_->Now() + base::Seconds(base::RandInt(
                                          base::Time::kSecondsPerMinute,
                                          5 * base::Time::kSecondsPerMinute));
   }
diff --git a/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_proxy_configurator_unittest.cc b/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_proxy_configurator_unittest.cc
index 04ca8fd..c77f62a5 100644
--- a/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_proxy_configurator_unittest.cc
+++ b/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_proxy_configurator_unittest.cc
@@ -149,7 +149,7 @@
   histogram_tester.ExpectUniqueSample("PrefetchProxy.Proxy.Fallback.NetError",
                                       std::abs(net::ERR_FAILED), 1);
 
-  FastForwardBy(base::TimeDelta::FromSeconds(5 * 60 + 1));
+  FastForwardBy(base::Seconds(5 * 60 + 1));
 
   EXPECT_TRUE(configurator()->IsPrefetchProxyAvailable());
 }
@@ -172,7 +172,7 @@
   histogram_tester.ExpectUniqueSample("PrefetchProxy.Proxy.Fallback.NetError",
                                       net::OK, 1);
 
-  FastForwardBy(base::TimeDelta::FromSeconds(5 * 60 + 1));
+  FastForwardBy(base::Seconds(5 * 60 + 1));
 
   EXPECT_TRUE(configurator()->IsPrefetchProxyAvailable());
 }
@@ -252,7 +252,7 @@
   EXPECT_FALSE(configurator()->IsPrefetchProxyAvailable());
   histogram_tester.ExpectUniqueSample("PrefetchProxy.Proxy.RespCode", 500, 1);
 
-  FastForwardBy(base::TimeDelta::FromSeconds(5 * 60 + 1));
+  FastForwardBy(base::Seconds(5 * 60 + 1));
   EXPECT_TRUE(configurator()->IsPrefetchProxyAvailable());
 }
 
@@ -277,9 +277,9 @@
   EXPECT_FALSE(configurator()->IsPrefetchProxyAvailable());
   histogram_tester.ExpectUniqueSample("PrefetchProxy.Proxy.RespCode", 500, 1);
 
-  FastForwardBy(base::TimeDelta::FromSeconds(119));
+  FastForwardBy(base::Seconds(119));
   EXPECT_FALSE(configurator()->IsPrefetchProxyAvailable());
 
-  FastForwardBy(base::TimeDelta::FromSeconds(1));
+  FastForwardBy(base::Seconds(1));
   EXPECT_TRUE(configurator()->IsPrefetchProxyAvailable());
 }
diff --git a/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_tab_helper.cc b/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_tab_helper.cc
index e38d49bb..e7d7832 100644
--- a/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_tab_helper.cc
+++ b/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_tab_helper.cc
@@ -970,9 +970,8 @@
   absl::optional<base::TimeDelta> total_time = GetTotalPrefetchTime(head.get());
   if (total_time) {
     UMA_HISTOGRAM_CUSTOM_TIMES("PrefetchProxy.Prefetch.Mainframe.TotalTime",
-                               *total_time,
-                               base::TimeDelta::FromMilliseconds(10),
-                               base::TimeDelta::FromSeconds(30), 100);
+                               *total_time, base::Milliseconds(10),
+                               base::Seconds(30), 100);
   }
 
   absl::optional<base::TimeDelta> connect_time =
diff --git a/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_tab_helper_unittest.cc b/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_tab_helper_unittest.cc
index 8f37d68..ecc51625 100644
--- a/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_tab_helper_unittest.cc
+++ b/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_tab_helper_unittest.cc
@@ -303,14 +303,14 @@
     auto head = network::CreateURLResponseHead(http_status);
 
     head->response_time = base::Time::Now();
-    head->request_time = head->response_time -
-                         base::TimeDelta::FromMilliseconds(kTotalTimeDuration);
+    head->request_time =
+        head->response_time - base::Milliseconds(kTotalTimeDuration);
 
     head->load_timing.connect_timing.connect_end =
-        base::TimeTicks::Now() - base::TimeDelta::FromMinutes(2);
+        base::TimeTicks::Now() - base::Minutes(2);
     head->load_timing.connect_timing.connect_start =
         head->load_timing.connect_timing.connect_end -
-        base::TimeDelta::FromMilliseconds(kConnectTimeDuration);
+        base::Milliseconds(kConnectTimeDuration);
 
     head->mime_type = mime_type;
     for (const auto& header : headers) {
@@ -1732,14 +1732,13 @@
 
     final_head->response_time = base::Time::Now();
     final_head->request_time =
-        final_head->response_time -
-        base::TimeDelta::FromMilliseconds(kTotalTimeDuration);
+        final_head->response_time - base::Milliseconds(kTotalTimeDuration);
 
     final_head->load_timing.connect_timing.connect_end =
-        base::TimeTicks::Now() - base::TimeDelta::FromMinutes(2);
+        base::TimeTicks::Now() - base::Minutes(2);
     final_head->load_timing.connect_timing.connect_start =
         final_head->load_timing.connect_timing.connect_end -
-        base::TimeDelta::FromMilliseconds(kConnectTimeDuration);
+        base::Milliseconds(kConnectTimeDuration);
 
     final_head->mime_type = kHTMLMimeType;
 
diff --git a/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_url_loader_interceptor.cc b/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_url_loader_interceptor.cc
index adc95004..3ec76c2 100644
--- a/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_url_loader_interceptor.cc
+++ b/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_url_loader_interceptor.cc
@@ -68,7 +68,7 @@
 void RecordCookieWaitTime(base::TimeDelta wait_time) {
   UMA_HISTOGRAM_CUSTOM_TIMES(
       "PrefetchProxy.AfterClick.Mainframe.CookieWaitTime", wait_time,
-      base::TimeDelta(), base::TimeDelta::FromSeconds(5), 50);
+      base::TimeDelta(), base::Seconds(5), 50);
 }
 
 void NotifySubresourceManagerOfBadProbe(int frame_tree_node_id,
diff --git a/chrome/browser/prefetch/search_prefetch/field_trial_settings.cc b/chrome/browser/prefetch/search_prefetch/field_trial_settings.cc
index 2566a1b..5822444e 100644
--- a/chrome/browser/prefetch/search_prefetch/field_trial_settings.cc
+++ b/chrome/browser/prefetch/search_prefetch/field_trial_settings.cc
@@ -44,10 +44,8 @@
 }
 
 base::TimeDelta SearchPrefetchCachingLimit() {
-  return base::TimeDelta::FromMilliseconds(
-      base::GetFieldTrialParamByFeatureAsInt(kSearchPrefetchServicePrefetching,
-                                             "prefetch_caching_limit_ms",
-                                             60000));
+  return base::Milliseconds(base::GetFieldTrialParamByFeatureAsInt(
+      kSearchPrefetchServicePrefetching, "prefetch_caching_limit_ms", 60000));
 }
 
 size_t SearchPrefetchMaxAttemptsPerCachingDuration() {
@@ -63,12 +61,10 @@
 base::TimeDelta SearchPrefetchErrorBackoffDuration() {
   if (base::CommandLine::ForCurrentProcess()->HasSwitch(
           kSearchPrefetchServiceCommandLineFlag)) {
-    return base::TimeDelta::FromSeconds(1);
+    return base::Seconds(1);
   }
-  return base::TimeDelta::FromMilliseconds(
-      base::GetFieldTrialParamByFeatureAsInt(kSearchPrefetchServicePrefetching,
-                                             "error_backoff_duration_ms",
-                                             60000));
+  return base::Milliseconds(base::GetFieldTrialParamByFeatureAsInt(
+      kSearchPrefetchServicePrefetching, "error_backoff_duration_ms", 60000));
 }
 
 bool SearchPrefetchOnlyFetchDefaultMatch() {
diff --git a/chrome/browser/prefetch/search_prefetch/search_prefetch_service_browsertest.cc b/chrome/browser/prefetch/search_prefetch/search_prefetch_service_browsertest.cc
index 2844156..fb557b4 100644
--- a/chrome/browser/prefetch/search_prefetch/search_prefetch_service_browsertest.cc
+++ b/chrome/browser/prefetch/search_prefetch/search_prefetch_service_browsertest.cc
@@ -1525,7 +1525,7 @@
 
   // Prevent the stop timer from killing the hints fetch early.
   autocomplete_controller->SetStartStopTimerDurationForTesting(
-      base::TimeDelta::FromSeconds(10));
+      base::Seconds(10));
   autocomplete_controller->Start(input);
 
   ui_test_utils::WaitForAutocompleteDone(browser());
@@ -1563,7 +1563,7 @@
 
   // Prevent the stop timer from killing the hints fetch early.
   autocomplete_controller->SetStartStopTimerDurationForTesting(
-      base::TimeDelta::FromSeconds(10));
+      base::Seconds(10));
   autocomplete_controller->Start(input);
 
   ui_test_utils::WaitForAutocompleteDone(browser());
@@ -1593,13 +1593,13 @@
 
   // Prevent the stop timer from killing the hints fetch early.
   autocomplete_controller->SetStartStopTimerDurationForTesting(
-      base::TimeDelta::FromSeconds(10));
+      base::Seconds(10));
   autocomplete_controller->Start(input);
 
   ui_test_utils::WaitForAutocompleteDone(browser());
   EXPECT_TRUE(autocomplete_controller->done());
 
-  WaitForDuration(base::TimeDelta::FromMilliseconds(100));
+  WaitForDuration(base::Milliseconds(100));
 
   auto prefetch_status =
       search_prefetch_service->GetSearchPrefetchStatusForTesting(
@@ -1634,7 +1634,7 @@
 
   // Prevent the stop timer from killing the hints fetch early.
   autocomplete_controller->SetStartStopTimerDurationForTesting(
-      base::TimeDelta::FromSeconds(10));
+      base::Seconds(10));
   autocomplete_controller->Start(input);
 
   ui_test_utils::WaitForAutocompleteDone(browser());
@@ -1676,7 +1676,7 @@
 
   // Prevent the stop timer from killing the hints fetch early.
   autocomplete_controller->SetStartStopTimerDurationForTesting(
-      base::TimeDelta::FromSeconds(10));
+      base::Seconds(10));
   autocomplete_controller->Start(input);
 
   ui_test_utils::WaitForAutocompleteDone(browser());
@@ -1726,7 +1726,7 @@
 
   // Prevent the stop timer from killing the hints fetch early.
   autocomplete_controller->SetStartStopTimerDurationForTesting(
-      base::TimeDelta::FromSeconds(10));
+      base::Seconds(10));
   autocomplete_controller->Start(input);
 
   ui_test_utils::WaitForAutocompleteDone(browser());
@@ -1769,7 +1769,7 @@
 
   // Prevent the stop timer from killing the hints fetch early.
   autocomplete_controller->SetStartStopTimerDurationForTesting(
-      base::TimeDelta::FromSeconds(10));
+      base::Seconds(10));
   autocomplete_controller->Start(input);
 
   ui_test_utils::WaitForAutocompleteDone(browser());
@@ -2195,7 +2195,7 @@
     WaitUntilStatusChangesTo(base::ASCIIToUTF16(search_terms),
                              SearchPrefetchStatus::kCanBeServed);
   } else {
-    WaitForDuration(base::TimeDelta::FromMilliseconds(100));
+    WaitForDuration(base::Milliseconds(100));
   }
 
   prefetch_status = search_prefetch_service->GetSearchPrefetchStatusForTesting(
@@ -2600,7 +2600,7 @@
   ASSERT_TRUE(prefetch_status.has_value());
   EXPECT_EQ(SearchPrefetchStatus::kRequestFailed, prefetch_status.value());
 
-  WaitForDuration(base::TimeDelta::FromMilliseconds(30));
+  WaitForDuration(base::Milliseconds(30));
 
   EXPECT_TRUE(search_prefetch_service->MaybePrefetchURL(
       GetSearchServerQueryURL("other_query")));
@@ -2642,13 +2642,13 @@
 
   // Prevent the stop timer from killing the hints fetch early.
   autocomplete_controller->SetStartStopTimerDurationForTesting(
-      base::TimeDelta::FromSeconds(10));
+      base::Seconds(10));
   autocomplete_controller->Start(input);
 
   ui_test_utils::WaitForAutocompleteDone(browser());
   EXPECT_TRUE(autocomplete_controller->done());
 
-  WaitForDuration(base::TimeDelta::FromMilliseconds(100));
+  WaitForDuration(base::Milliseconds(100));
 
   auto prefetch_status =
       search_prefetch_service->GetSearchPrefetchStatusForTesting(
diff --git a/chrome/browser/printing/print_backend_service_manager.cc b/chrome/browser/printing/print_backend_service_manager.cc
index 137a3d98..9b5c4b9 100644
--- a/chrome/browser/printing/print_backend_service_manager.cc
+++ b/chrome/browser/printing/print_backend_service_manager.cc
@@ -39,9 +39,9 @@
 
 // Amount of idle time to wait before resetting the connection to the service.
 constexpr base::TimeDelta kNoClientsRegisteredResetOnIdleTimeout =
-    base::TimeDelta::FromSeconds(10);
+    base::Seconds(10);
 constexpr base::TimeDelta kClientsRegisteredResetOnIdleTimeout =
-    base::TimeDelta::FromSeconds(120);
+    base::Seconds(120);
 
 PrintBackendServiceManager* g_print_backend_service_manager_singleton = nullptr;
 
diff --git a/chrome/browser/printing/print_job.cc b/chrome/browser/printing/print_job.cc
index 5e44b58..64df082 100644
--- a/chrome/browser/printing/print_job.cc
+++ b/chrome/browser/printing/print_job.cc
@@ -594,7 +594,7 @@
   if (worker_->IsRunning()) {
     content::GetUIThreadTaskRunner({})->PostDelayedTask(
         FROM_HERE, base::BindOnce(&PrintJob::ControlledWorkerShutdown, this),
-        base::TimeDelta::FromMilliseconds(100));
+        base::Milliseconds(100));
     return;
   }
 #endif
diff --git a/chrome/browser/printing/print_job_manager.cc b/chrome/browser/printing/print_job_manager.cc
index 0a46966..aa1b0845 100644
--- a/chrome/browser/printing/print_job_manager.cc
+++ b/chrome/browser/printing/print_job_manager.cc
@@ -115,7 +115,7 @@
   for (auto job = to_stop.begin(); job != to_stop.end(); ++job) {
     // Wait for two minutes for the print job to be spooled.
     if (wait_for_finish)
-      (*job)->FlushJob(base::TimeDelta::FromMinutes(2));
+      (*job)->FlushJob(base::Minutes(2));
     (*job)->Stop();
   }
 }
diff --git a/chrome/browser/printing/print_job_worker.cc b/chrome/browser/printing/print_job_worker.cc
index 80983e1..288b9f8 100644
--- a/chrome/browser/printing/print_job_worker.cc
+++ b/chrome/browser/printing/print_job_worker.cc
@@ -439,7 +439,7 @@
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&PrintJobWorker::OnNewPage, weak_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(500));
+      base::Milliseconds(500));
 }
 
 void PrintJobWorker::OnNewPage() {
diff --git a/chrome/browser/printing/print_preview_dialog_controller_browsertest.cc b/chrome/browser/printing/print_preview_dialog_controller_browsertest.cc
index 3f53ddc..547cdc2 100644
--- a/chrome/browser/printing/print_preview_dialog_controller_browsertest.cc
+++ b/chrome/browser/printing/print_preview_dialog_controller_browsertest.cc
@@ -283,7 +283,7 @@
   do {
     base::RunLoop run_loop;
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-        FROM_HERE, run_loop.QuitClosure(), base::TimeDelta::FromSeconds(1));
+        FROM_HERE, run_loop.QuitClosure(), base::Seconds(1));
     run_loop.Run();
 
     frame_count = 0;
diff --git a/chrome/browser/printing/print_view_manager_base.cc b/chrome/browser/printing/print_view_manager_base.cc
index 0a31c54..d3505546 100644
--- a/chrome/browser/printing/print_view_manager_base.cc
+++ b/chrome/browser/printing/print_view_manager_base.cc
@@ -977,8 +977,7 @@
   // - If we're looping because of renderer page generation, the renderer could
   // be CPU bound, the page overly complex/large or the system just
   // memory-bound.
-  static constexpr base::TimeDelta kPrinterSettingsTimeout =
-      base::TimeDelta::FromSeconds(60);
+  static constexpr base::TimeDelta kPrinterSettingsTimeout = base::Seconds(60);
   base::OneShotTimer quit_timer;
   base::RunLoop run_loop{base::RunLoop::Type::kNestableTasksAllowed};
   quit_timer.Start(FROM_HERE, kPrinterSettingsTimeout,
diff --git a/chrome/browser/printing/printing_service.cc b/chrome/browser/printing/printing_service.cc
index 986568e..ec70ac1 100644
--- a/chrome/browser/printing/printing_service.cc
+++ b/chrome/browser/printing/printing_service.cc
@@ -25,7 +25,7 @@
     // one -- then we will reset |remote|, causing the service process to be
     // terminated if it isn't already.
     remote->reset_on_disconnect();
-    remote->reset_on_idle_timeout(base::TimeDelta::FromSeconds(5));
+    remote->reset_on_idle_timeout(base::Seconds(5));
   }
 
   return *remote;
diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_settings.cc b/chrome/browser/privacy_sandbox/privacy_sandbox_settings.cc
index b88dd2f..1eccb10e 100644
--- a/chrome/browser/privacy_sandbox/privacy_sandbox_settings.cc
+++ b/chrome/browser/privacy_sandbox/privacy_sandbox_settings.cc
@@ -143,8 +143,7 @@
   if (number_of_days == 0)
     return 0;
 
-  int number_of_hours_past_day =
-      (time - base::TimeDelta::FromDays(number_of_days)).InHours();
+  int number_of_hours_past_day = (time - base::Days(number_of_days)).InHours();
 
   if (number_of_hours_past_day >= 12)
     number_of_days++;
diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_settings_unittest.cc b/chrome/browser/privacy_sandbox/privacy_sandbox_settings_unittest.cc
index 841e080..0897535 100644
--- a/chrome/browser/privacy_sandbox/privacy_sandbox_settings_unittest.cc
+++ b/chrome/browser/privacy_sandbox/privacy_sandbox_settings_unittest.cc
@@ -715,19 +715,15 @@
       prefs::kPrivacySandboxFlocEnabled, true);
 
   std::map<base::TimeDelta, std::u16string> offsets_to_expected_string = {
-      {base::TimeDelta::FromHours(23),
-       l10n_util::GetPluralStringFUTF16(
-           IDS_PRIVACY_SANDBOX_FLOC_TIME_TO_NEXT_COMPUTE, 0)},
-      {base::TimeDelta::FromHours(25),
-       l10n_util::GetPluralStringFUTF16(
-           IDS_PRIVACY_SANDBOX_FLOC_TIME_TO_NEXT_COMPUTE, 1)},
-      {base::TimeDelta::FromDays(2),
-       l10n_util::GetPluralStringFUTF16(
-           IDS_PRIVACY_SANDBOX_FLOC_TIME_TO_NEXT_COMPUTE, 2)},
-      {base::TimeDelta::FromHours(60),
-       l10n_util::GetPluralStringFUTF16(
-           IDS_PRIVACY_SANDBOX_FLOC_TIME_TO_NEXT_COMPUTE, 3)},
-      {base::TimeDelta::FromHours(167),  // 1 hour less than 7 days.
+      {base::Hours(23), l10n_util::GetPluralStringFUTF16(
+                            IDS_PRIVACY_SANDBOX_FLOC_TIME_TO_NEXT_COMPUTE, 0)},
+      {base::Hours(25), l10n_util::GetPluralStringFUTF16(
+                            IDS_PRIVACY_SANDBOX_FLOC_TIME_TO_NEXT_COMPUTE, 1)},
+      {base::Days(2), l10n_util::GetPluralStringFUTF16(
+                          IDS_PRIVACY_SANDBOX_FLOC_TIME_TO_NEXT_COMPUTE, 2)},
+      {base::Hours(60), l10n_util::GetPluralStringFUTF16(
+                            IDS_PRIVACY_SANDBOX_FLOC_TIME_TO_NEXT_COMPUTE, 3)},
+      {base::Hours(167),  // 1 hour less than 7 days.
        l10n_util::GetPluralStringFUTF16(
            IDS_PRIVACY_SANDBOX_FLOC_TIME_TO_NEXT_COMPUTE, 7)}};
 
diff --git a/chrome/browser/process_singleton_posix.cc b/chrome/browser/process_singleton_posix.cc
index 249a0cbf..4547eb85 100644
--- a/chrome/browser/process_singleton_posix.cc
+++ b/chrome/browser/process_singleton_posix.cc
@@ -483,8 +483,8 @@
           fd, base::BindRepeating(&SocketReader::OnSocketCanReadWithoutBlocking,
                                   base::Unretained(this)));
       // If we haven't completed in a reasonable amount of time, give up.
-      timer_.Start(FROM_HERE, base::TimeDelta::FromSeconds(kTimeoutInSeconds),
-                   this, &SocketReader::CleanupAndDeleteSelf);
+      timer_.Start(FROM_HERE, base::Seconds(kTimeoutInSeconds), this,
+                   &SocketReader::CleanupAndDeleteSelf);
     }
 
     SocketReader(const SocketReader&) = delete;
@@ -732,9 +732,9 @@
 }
 
 ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcess() {
-  return NotifyOtherProcessWithTimeout(
-      *base::CommandLine::ForCurrentProcess(), kRetryAttempts,
-      base::TimeDelta::FromSeconds(kTimeoutInSeconds), true);
+  return NotifyOtherProcessWithTimeout(*base::CommandLine::ForCurrentProcess(),
+                                       kRetryAttempts,
+                                       base::Seconds(kTimeoutInSeconds), true);
 }
 
 ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcessWithTimeout(
@@ -894,7 +894,7 @@
 ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcessOrCreate() {
   return NotifyOtherProcessWithTimeoutOrCreate(
       *base::CommandLine::ForCurrentProcess(), kRetryAttempts,
-      base::TimeDelta::FromSeconds(kTimeoutInSeconds));
+      base::Seconds(kTimeoutInSeconds));
 }
 
 ProcessSingleton::NotifyResult
diff --git a/chrome/browser/process_singleton_win_unittest.cc b/chrome/browser/process_singleton_win_unittest.cc
index 8677589..40b466ee 100644
--- a/chrome/browser/process_singleton_win_unittest.cc
+++ b/chrome/browser/process_singleton_win_unittest.cc
@@ -162,8 +162,8 @@
     ASSERT_NO_FATAL_FAILURE(base::MultiProcessTest::SetUp());
 
     // Drop the process finder notification timeout to one second for testing.
-    old_notification_timeout_ = chrome::SetNotificationTimeoutForTesting(
-        base::TimeDelta::FromSeconds(1));
+    old_notification_timeout_ =
+        chrome::SetNotificationTimeoutForTesting(base::Seconds(1));
   }
 
   void TearDown() override {
diff --git a/chrome/browser/profile_resetter/brandcode_config_fetcher.cc b/chrome/browser/profile_resetter/brandcode_config_fetcher.cc
index 8799b2e..b997a80 100644
--- a/chrome/browser/profile_resetter/brandcode_config_fetcher.cc
+++ b/chrome/browser/profile_resetter/brandcode_config_fetcher.cc
@@ -95,9 +95,7 @@
       base::BindOnce(&BrandcodeConfigFetcher::OnSimpleLoaderComplete,
                      weak_ptr_factory_.GetWeakPtr()));
   // Abort the download attempt if it takes too long.
-  download_timer_.Start(FROM_HERE,
-                        base::TimeDelta::FromSeconds(kDownloadTimeoutSec),
-                        this,
+  download_timer_.Start(FROM_HERE, base::Seconds(kDownloadTimeoutSec), this,
                         &BrandcodeConfigFetcher::OnDownloadTimeout);
 }
 
diff --git a/chrome/browser/profiles/off_the_record_profile_impl.cc b/chrome/browser/profiles/off_the_record_profile_impl.cc
index 134bb80..8599028b 100644
--- a/chrome/browser/profiles/off_the_record_profile_impl.cc
+++ b/chrome/browser/profiles/off_the_record_profile_impl.cc
@@ -252,9 +252,9 @@
   // Store incognito lifetime and navigations count histogram.
   if (IsIncognitoProfile()) {
     auto duration = base::Time::Now() - start_time_;
-    base::UmaHistogramCustomCounts(
-        "Profile.Incognito.Lifetime", duration.InMinutes(), 1,
-        base::TimeDelta::FromDays(28).InMinutes(), 100);
+    base::UmaHistogramCustomCounts("Profile.Incognito.Lifetime",
+                                   duration.InMinutes(), 1,
+                                   base::Days(28).InMinutes(), 100);
 
     base::UmaHistogramCounts1000(
         "Profile.Incognito.MainFrameNavigationsPerSession",
diff --git a/chrome/browser/profiles/profile_activity_metrics_recorder.cc b/chrome/browser/profiles/profile_activity_metrics_recorder.cc
index dc93aff..bdbe743 100644
--- a/chrome/browser/profiles/profile_activity_metrics_recorder.cc
+++ b/chrome/browser/profiles/profile_activity_metrics_recorder.cc
@@ -27,8 +27,7 @@
 constexpr int kMaxProfileBucket = 100;
 
 // Long time of inactivity that is treated as if user starts the browser anew.
-constexpr base::TimeDelta kLongTimeOfInactivity =
-    base::TimeDelta::FromMinutes(30);
+constexpr base::TimeDelta kLongTimeOfInactivity = base::Minutes(30);
 
 int GetMetricsBucketIndex(const Profile* profile) {
   if (profile->IsGuestSession())
diff --git a/chrome/browser/profiles/profile_activity_metrics_recorder_unittest.cc b/chrome/browser/profiles/profile_activity_metrics_recorder_unittest.cc
index 1548e237..8b5882b 100644
--- a/chrome/browser/profiles/profile_activity_metrics_recorder_unittest.cc
+++ b/chrome/browser/profiles/profile_activity_metrics_recorder_unittest.cc
@@ -23,9 +23,8 @@
 
 namespace {
 
-constexpr base::TimeDelta kInactivityTimeout = base::TimeDelta::FromMinutes(5);
-constexpr base::TimeDelta kLongTimeOfInactivity =
-    base::TimeDelta::FromMinutes(30);
+constexpr base::TimeDelta kInactivityTimeout = base::Minutes(5);
+constexpr base::TimeDelta kLongTimeOfInactivity = base::Minutes(30);
 
 }  // namespace
 
@@ -176,7 +175,7 @@
                                  /*count=*/0);
 
   // Profile 1: Session lasts 2 minutes.
-  task_environment()->FastForwardBy(base::TimeDelta::FromMinutes(2));
+  task_environment()->FastForwardBy(base::Minutes(2));
 
   // Profile 3: Browser is activated for the first time. The profile is assigned
   // bucket 2.
@@ -192,7 +191,7 @@
                                   /*bucket=*/1, /*count=*/2);
 
   // Profile 3: Session lasts 2 minutes.
-  task_environment()->FastForwardBy(base::TimeDelta::FromMinutes(2));
+  task_environment()->FastForwardBy(base::Minutes(2));
 
   // Profile 2: Browser is activated for the first time. The profile is assigned
   // bucket 3.
@@ -218,7 +217,7 @@
                                   /*bucket=*/1, /*count=*/1);
 
   // Wait 2 minutes before doing another user interaction.
-  task_environment()->FastForwardBy(base::TimeDelta::FromMinutes(2));
+  task_environment()->FastForwardBy(base::Minutes(2));
   SimulateUserEvent();
 
   // Stay inactive so the session ends.
diff --git a/chrome/browser/profiles/profile_attributes_entry.cc b/chrome/browser/profiles/profile_attributes_entry.cc
index 7871c40..b0e3f57e 100644
--- a/chrome/browser/profiles/profile_attributes_entry.cc
+++ b/chrome/browser/profiles/profile_attributes_entry.cc
@@ -597,7 +597,7 @@
 
 void ProfileAttributesEntry::SetActiveTimeToNow() {
   if (IsDouble(kActiveTimeKey) &&
-      base::Time::Now() - GetActiveTime() < base::TimeDelta::FromHours(1)) {
+      base::Time::Now() - GetActiveTime() < base::Hours(1)) {
     return;
   }
   SetDouble(kActiveTimeKey, base::Time::Now().ToDoubleT());
diff --git a/chrome/browser/profiles/profile_attributes_storage.cc b/chrome/browser/profiles/profile_attributes_storage.cc
index ef7b45f0..5d68762 100644
--- a/chrome/browser/profiles/profile_attributes_storage.cc
+++ b/chrome/browser/profiles/profile_attributes_storage.cc
@@ -324,7 +324,7 @@
   }
 
   repeating_timer_ = std::make_unique<signin::PersistentRepeatingTimer>(
-      prefs_, kProfileCountLastUpdatePref, base::TimeDelta::FromHours(24),
+      prefs_, kProfileCountLastUpdatePref, base::Hours(24),
       base::BindRepeating(&ProfileMetrics::LogNumberOfProfiles, this));
   repeating_timer_->Start();
 #endif  // !defined(OS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/chrome/browser/profiles/profile_attributes_storage_unittest.cc b/chrome/browser/profiles/profile_attributes_storage_unittest.cc
index 57638aa..b70c3fc 100644
--- a/chrome/browser/profiles/profile_attributes_storage_unittest.cc
+++ b/chrome/browser/profiles/profile_attributes_storage_unittest.cc
@@ -865,18 +865,18 @@
   // Store the time and check for the result. Allow for a difference one second
   // because the 64-bit integral representation in base::Time is rounded off to
   // a double, which is what base::Value stores. http://crbug.com/346827
-  base::Time lower_bound = base::Time::Now() - base::TimeDelta::FromSeconds(1);
+  base::Time lower_bound = base::Time::Now() - base::Seconds(1);
   entry->SetActiveTimeToNow();
-  base::Time upper_bound = base::Time::Now() + base::TimeDelta::FromSeconds(1);
+  base::Time upper_bound = base::Time::Now() + base::Seconds(1);
   EXPECT_TRUE(entry->IsDouble(kActiveTimeKey));
   EXPECT_LE(lower_bound, entry->GetActiveTime());
   EXPECT_GE(upper_bound, entry->GetActiveTime());
 
   // If the active time was less than one hour ago, SetActiveTimeToNow should do
   // nothing.
-  base::Time past = base::Time::Now() - base::TimeDelta::FromMinutes(10);
-  lower_bound = past - base::TimeDelta::FromSeconds(1);
-  upper_bound = past + base::TimeDelta::FromSeconds(1);
+  base::Time past = base::Time::Now() - base::Minutes(10);
+  lower_bound = past - base::Seconds(1);
+  upper_bound = past + base::Seconds(1);
   ASSERT_TRUE(entry->SetDouble(kActiveTimeKey, past.ToDoubleT()));
   base::Time stored_time = entry->GetActiveTime();
   ASSERT_LE(lower_bound, stored_time);
diff --git a/chrome/browser/profiles/profile_browsertest.cc b/chrome/browser/profiles/profile_browsertest.cc
index 6b6a3d55..31ce7560 100644
--- a/chrome/browser/profiles/profile_browsertest.cc
+++ b/chrome/browser/profiles/profile_browsertest.cc
@@ -625,7 +625,7 @@
     // This helps against flakes, and also ensures that if the IO thread starts
     // blocking systemically for that length of time (e.g. deadlocking or such),
     // we'll get a consistent test failure.
-    if (end - start > base::TimeDelta::FromSeconds(5))
+    if (end - start > base::Seconds(5))
       continue;
 
     // Make sure that the prefs file was written with the expected key/value.
@@ -1022,8 +1022,8 @@
   Browser* browser = CreateGuestBrowser();
   BrowserCloseObserver close_observer(browser);
 
-  browser->profile()->SetCreationTimeForTesting(
-      base::Time::Now() - base::TimeDelta::FromSeconds(60) * 60);
+  browser->profile()->SetCreationTimeForTesting(base::Time::Now() -
+                                                base::Seconds(60) * 60);
   BrowserList::CloseAllBrowsersWithProfile(browser->profile());
   close_observer.Wait();
   tester.ExpectUniqueSample("Profile.Guest.OTR.Lifetime", 60, 1);
diff --git a/chrome/browser/profiles/profile_destroyer.cc b/chrome/browser/profiles/profile_destroyer.cc
index 010b462..e55c3e9a 100644
--- a/chrome/browser/profiles/profile_destroyer.cc
+++ b/chrome/browser/profiles/profile_destroyer.cc
@@ -190,7 +190,7 @@
   // If we are going to wait for render process hosts, we don't want to do it
   // for longer than kTimerDelaySeconds.
   if (observations_.IsObservingAnySource()) {
-    timer_.Start(FROM_HERE, base::TimeDelta::FromSeconds(kTimerDelaySeconds),
+    timer_.Start(FROM_HERE, base::Seconds(kTimerDelaySeconds),
                  base::BindOnce(&ProfileDestroyer::DestroyProfile,
                                 weak_ptr_factory_.GetWeakPtr()));
   }
diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc
index 229903b..37db151 100644
--- a/chrome/browser/profiles/profile_manager.cc
+++ b/chrome/browser/profiles/profile_manager.cc
@@ -324,7 +324,7 @@
   // LockTable, and/or fire events when locks are released. That way we could
   // wait for all the locks in |profile_path| to be released, rather than having
   // this retry logic.
-  const base::TimeDelta kRetryDelay = base::TimeDelta::FromSeconds(1);
+  const base::TimeDelta kRetryDelay = base::Seconds(1);
 
   // Delete both the profile directory and its corresponding cache.
   base::FilePath cache_path;
@@ -1608,7 +1608,7 @@
       {base::MayBlock(), base::TaskPriority::BEST_EFFORT,
        base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN},
       base::BindOnce(&ProfileSizeTask, profile->GetPath(), enabled_app_count),
-      base::TimeDelta::FromSeconds(112));
+      base::Seconds(112));
 }
 
 ProfileManager::ProfileInfo::ProfileInfo() {
@@ -2261,9 +2261,9 @@
 
   if (profile->IsGuestSession()) {
     auto duration = base::Time::Now() - profile->GetCreationTime();
-    base::UmaHistogramCustomCounts(
-        "Profile.Guest.OTR.Lifetime", duration.InMinutes(), 1,
-        base::TimeDelta::FromDays(28).InMinutes(), 100);
+    base::UmaHistogramCustomCounts("Profile.Guest.OTR.Lifetime",
+                                   duration.InMinutes(), 1,
+                                   base::Days(28).InMinutes(), 100);
 
     CleanUpGuestProfile();
   }
diff --git a/chrome/browser/profiles/profile_metrics.cc b/chrome/browser/profiles/profile_metrics.cc
index cf00e6e..8c3fabf 100644
--- a/chrome/browser/profiles/profile_metrics.cc
+++ b/chrome/browser/profiles/profile_metrics.cc
@@ -36,7 +36,7 @@
 
 #if !defined(OS_ANDROID)
 constexpr base::TimeDelta kProfileActivityThreshold =
-    base::TimeDelta::FromDays(28);  // Should be integral number of weeks.
+    base::Days(28);  // Should be integral number of weeks.
 #endif
 
 enum class ProfileType {
diff --git a/chrome/browser/profiling_host/profiling_process_host.cc b/chrome/browser/profiling_host/profiling_process_host.cc
index 7827d26a..241a091 100644
--- a/chrome/browser/profiling_host/profiling_process_host.cc
+++ b/chrome/browser/profiling_host/profiling_process_host.cc
@@ -42,7 +42,7 @@
 ProfilingProcessHost::~ProfilingProcessHost() = default;
 
 void ProfilingProcessHost::Start() {
-  metrics_timer_.Start(FROM_HERE, base::TimeDelta::FromHours(24),
+  metrics_timer_.Start(FROM_HERE, base::Hours(24),
                        base::BindRepeating(&ProfilingProcessHost::ReportMetrics,
                                            base::Unretained(this)));
 }
diff --git a/chrome/browser/push_messaging/budget_database.cc b/chrome/browser/push_messaging/budget_database.cc
index ba1bab1..96b2d36 100644
--- a/chrome/browser/push_messaging/budget_database.cc
+++ b/chrome/browser/push_messaging/budget_database.cc
@@ -331,7 +331,7 @@
   // time elapsed since the last award and the SES score.
   // By default, give the origin kBudgetDurationInDays worth of budget, but
   // reduce that if budget has already been given during that period.
-  base::TimeDelta elapsed = base::TimeDelta::FromDays(kBudgetDurationInDays);
+  base::TimeDelta elapsed = base::Days(kBudgetDurationInDays);
   if (IsCached(origin)) {
     elapsed = clock_->Now() - budget_map_[origin].last_engagement_award;
     // Don't give engagement awards for periods less than an hour.
@@ -339,7 +339,7 @@
       return;
     // Cap elapsed time to the budget duration.
     if (elapsed.InDays() > kBudgetDurationInDays)
-      elapsed = base::TimeDelta::FromDays(kBudgetDurationInDays);
+      elapsed = base::Days(kBudgetDurationInDays);
   }
 
   // Get the current SES score, and calculate the hourly budget for that score.
@@ -352,8 +352,7 @@
   budget_map_[origin].last_engagement_award = clock_->Now();
 
   // Add a new chunk of budget for the origin at the default expiration time.
-  base::Time expiration =
-      clock_->Now() + base::TimeDelta::FromDays(kBudgetDurationInDays);
+  base::Time expiration = clock_->Now() + base::Days(kBudgetDurationInDays);
   budget_map_[origin].chunks.emplace_back(elapsed.InHours() * hourly_budget,
                                           expiration);
 
@@ -379,9 +378,8 @@
 
   // If the entire budget is empty now AND there have been no engagements
   // in the last kBudgetDurationInDays days, remove this from the cache.
-  if (chunks.empty() &&
-      budget_map_[origin].last_engagement_award <
-          clock_->Now() - base::TimeDelta::FromDays(kBudgetDurationInDays)) {
+  if (chunks.empty() && budget_map_[origin].last_engagement_award <
+                            clock_->Now() - base::Days(kBudgetDurationInDays)) {
     budget_map_.erase(origin);
     return true;
   }
diff --git a/chrome/browser/push_messaging/budget_database_unittest.cc b/chrome/browser/push_messaging/budget_database_unittest.cc
index 3fb6826..dbf29452 100644
--- a/chrome/browser/push_messaging/budget_database_unittest.cc
+++ b/chrome/browser/push_messaging/budget_database_unittest.cc
@@ -117,7 +117,7 @@
 TEST_F(BudgetDatabaseTest, AddEngagementBudgetTest) {
   base::SimpleTestClock* clock = SetClockForTesting();
   base::Time expiration_time =
-      clock->Now() + base::TimeDelta::FromDays(kDefaultExpirationInDays);
+      clock->Now() + base::Days(kDefaultExpirationInDays);
 
   // Set the default site engagement.
   SetSiteEngagementScore(kEngagement);
@@ -136,7 +136,7 @@
   ASSERT_EQ(expiration_time.ToJsTime(), prediction_[1].time);
 
   // Advance time 1 day and add more engagement budget.
-  clock->Advance(base::TimeDelta::FromDays(1));
+  clock->Advance(base::Days(1));
   GetBudgetDetails();
 
   // The budget should now have 1 full share plus 1 daily budget.
@@ -147,12 +147,11 @@
   ASSERT_DOUBLE_EQ(daily_budget, prediction_[1].budget_at);
   ASSERT_EQ(expiration_time.ToJsTime(), prediction_[1].time);
   ASSERT_DOUBLE_EQ(0, prediction_[2].budget_at);
-  ASSERT_EQ((expiration_time + base::TimeDelta::FromDays(1)).ToJsTime(),
-            prediction_[2].time);
+  ASSERT_EQ((expiration_time + base::Days(1)).ToJsTime(), prediction_[2].time);
 
   // Advance time by 59 minutes and check that no engagement budget is added
   // since budget should only be added for > 1 hour increments.
-  clock->Advance(base::TimeDelta::FromMinutes(59));
+  clock->Advance(base::Minutes(59));
   GetBudgetDetails();
 
   // The budget should be the same as before the attempted add.
@@ -170,9 +169,9 @@
 
   // Intialize the budget with several chunks.
   GetBudgetDetails();
-  clock->Advance(base::TimeDelta::FromDays(1));
+  clock->Advance(base::Days(1));
   GetBudgetDetails();
-  clock->Advance(base::TimeDelta::FromDays(1));
+  clock->Advance(base::Days(1));
   GetBudgetDetails();
 
   // Spend an amount of budget less than the daily budget.
@@ -207,7 +206,7 @@
 
   // Advance time until the last remaining chunk should be expired, then query
   // for the full engagement worth of budget.
-  clock->Advance(base::TimeDelta::FromDays(kDefaultExpirationInDays + 1));
+  clock->Advance(base::Days(kDefaultExpirationInDays + 1));
   EXPECT_TRUE(SpendBudget(daily_budget * kDefaultExpirationInDays));
 }
 
@@ -223,7 +222,7 @@
 
   // Initialize the budget with two chunks.
   GetBudgetDetails();
-  clock->Advance(base::TimeDelta::FromDays(1));
+  clock->Advance(base::Days(1));
   GetBudgetDetails();
 
   // Save off the budget total.
@@ -231,7 +230,7 @@
   double budget = prediction_[0].budget_at;
 
   // Move the clock backwards in time to before the budget awards.
-  clock->SetNow(clock->Now() - base::TimeDelta::FromDays(5));
+  clock->SetNow(clock->Now() - base::Days(5));
 
   // Make sure the budget is the same.
   GetBudgetDetails();
@@ -240,7 +239,7 @@
 
   // Now move the clock back to the original time and check that no extra budget
   // is awarded.
-  clock->SetNow(clock->Now() + base::TimeDelta::FromDays(5));
+  clock->SetNow(clock->Now() + base::Days(5));
   GetBudgetDetails();
   ASSERT_EQ(3U, prediction_.size());
   ASSERT_EQ(budget, prediction_[0].budget_at);
@@ -256,11 +255,11 @@
   // engagement), 15 budget (half of the engagement), 0 budget (less than an
   // hour), and then after the first two expire, another 30 budget.
   GetBudgetDetails();
-  clock->Advance(base::TimeDelta::FromDays(kDefaultExpirationInDays / 2));
+  clock->Advance(base::Days(kDefaultExpirationInDays / 2));
   GetBudgetDetails();
-  clock->Advance(base::TimeDelta::FromMinutes(59));
+  clock->Advance(base::Minutes(59));
   GetBudgetDetails();
-  clock->Advance(base::TimeDelta::FromDays(kDefaultExpirationInDays + 1));
+  clock->Advance(base::Days(kDefaultExpirationInDays + 1));
   GetBudgetDetails();
 
   // The BackgroundBudget UMA is recorded when budget is added to the origin.
@@ -303,7 +302,7 @@
   // Advance the clock by 12 days (to guarantee a full new engagement grant)
   // then change the SES score to get a different UMA entry, then spend the
   // budget again.
-  clock->Advance(base::TimeDelta::FromDays(12));
+  clock->Advance(base::Days(12));
   GetBudgetDetails();
   SetSiteEngagementScore(engagement * 2);
   ASSERT_TRUE(SpendBudget(cost));
diff --git a/chrome/browser/push_messaging/push_messaging_app_identifier.cc b/chrome/browser/push_messaging/push_messaging_app_identifier.cc
index ff7a33ac..c0dee772 100644
--- a/chrome/browser/push_messaging/push_messaging_app_identifier.cc
+++ b/chrome/browser/push_messaging/push_messaging_app_identifier.cc
@@ -43,7 +43,7 @@
   int64_t milliseconds;
   if (base::StringToInt64(time_string, &milliseconds) && milliseconds > 0) {
     *time = absl::make_optional(base::Time::FromDeltaSinceWindowsEpoch(
-        base::TimeDelta::FromMilliseconds(milliseconds)));
+        base::Milliseconds(milliseconds)));
     return true;
   }
   return false;
diff --git a/chrome/browser/push_messaging/push_messaging_app_identifier_unittest.cc b/chrome/browser/push_messaging/push_messaging_app_identifier_unittest.cc
index 8d6d0cb..5b7c649 100644
--- a/chrome/browser/push_messaging/push_messaging_app_identifier_unittest.cc
+++ b/chrome/browser/push_messaging/push_messaging_app_identifier_unittest.cc
@@ -23,7 +23,7 @@
 }
 
 base::Time kExpirationTime =
-    base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromSeconds(1));
+    base::Time::FromDeltaSinceWindowsEpoch(base::Seconds(1));
 
 }  // namespace
 
@@ -54,7 +54,7 @@
         GURL("https://www.example.com/"), 1, kExpirationTime);
     different_et_ = PushMessagingAppIdentifier::Generate(
         GURL("https://www.example.com/"), 1,
-        kExpirationTime + base::TimeDelta::FromSeconds(100));
+        kExpirationTime + base::Seconds(100));
   }
 
   Profile* profile() { return &profile_; }
diff --git a/chrome/browser/push_messaging/push_messaging_constants.h b/chrome/browser/push_messaging/push_messaging_constants.h
index 586873e1..cf0480a5 100644
--- a/chrome/browser/push_messaging/push_messaging_constants.h
+++ b/chrome/browser/push_messaging/push_messaging_constants.h
@@ -17,10 +17,9 @@
 // https://w3c.github.io/push-api/#dfn-subscription-expiration-time it is
 // optional and set by the browser.
 constexpr base::TimeDelta kPushSubscriptionExpirationPeriodTimeDelta =
-    base::TimeDelta::FromDays(90);
+    base::Days(90);
 
 // TimeDelta for subscription refreshes to keep old subscriptions alive
-constexpr base::TimeDelta kPushSubscriptionRefreshTimeDelta =
-    base::TimeDelta::FromMinutes(2);
+constexpr base::TimeDelta kPushSubscriptionRefreshTimeDelta = base::Minutes(2);
 
 #endif  // CHROME_BROWSER_PUSH_MESSAGING_PUSH_MESSAGING_CONSTANTS_H_
diff --git a/chrome/browser/push_messaging/push_messaging_service_unittest.cc b/chrome/browser/push_messaging/push_messaging_service_unittest.cc
index f7e9fc4..612589a5 100644
--- a/chrome/browser/push_messaging/push_messaging_service_unittest.cc
+++ b/chrome/browser/push_messaging/push_messaging_service_unittest.cc
@@ -95,8 +95,7 @@
   return gcm::FakeGCMProfileService::Build(static_cast<Profile*>(context));
 }
 
-constexpr base::TimeDelta kPushEventHandleTime =
-    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kPushEventHandleTime = base::Seconds(10);
 
 }  // namespace
 
@@ -432,10 +431,10 @@
   handle_push_event = PushMessagingServiceImpl::PushEventCallback();
 
   histograms.ExpectUniqueTimeSample("PushMessaging.CheckOriginForAbuseTime",
-                                    base::TimeDelta::FromSeconds(0),
+                                    base::Seconds(0),
                                     /*expected_bucket_count=*/1);
   histograms.ExpectUniqueTimeSample("PushMessaging.DeliverQueuedMessageTime",
-                                    base::TimeDelta::FromSeconds(0),
+                                    base::Seconds(0),
                                     /*expected_bucket_count=*/1);
 
   // Run all tasks until idle so we can verify that we don't dispatch the second
@@ -467,7 +466,7 @@
   // Checking origins for abuse happens immediately on receiving a push message
   // one at a time. Both messages do that instantly in this test.
   histograms.ExpectTimeBucketCount("PushMessaging.CheckOriginForAbuseTime",
-                                   base::TimeDelta::FromSeconds(0),
+                                   base::Seconds(0),
                                    /*count=*/2);
   // Delivering messages should be done in series so the second message should
   // have waited for the first one to be handled.
diff --git a/chrome/browser/reading_list/android/reading_list_manager_impl.cc b/chrome/browser/reading_list/android/reading_list_manager_impl.cc
index d14b145..0487de5 100644
--- a/chrome/browser/reading_list/android/reading_list_manager_impl.cc
+++ b/chrome/browser/reading_list/android/reading_list_manager_impl.cc
@@ -37,9 +37,8 @@
   }
 
   bookmark->set_url(entry.URL());
-  bookmark->set_date_added(
-      base::Time::UnixEpoch() +
-      base::TimeDelta::FromMicroseconds(entry.CreationTime()));
+  bookmark->set_date_added(base::Time::UnixEpoch() +
+                           base::Microseconds(entry.CreationTime()));
   bookmark->SetTitle(title);
   bookmark->SetMetaInfo(kReadStatusKey,
                         entry.IsRead() ? kReadStatusRead : kReadStatusUnread);
diff --git a/chrome/browser/reading_list/android/reading_list_notification_service.cc b/chrome/browser/reading_list/android/reading_list_notification_service.cc
index f512012..2c518ee 100644
--- a/chrome/browser/reading_list/android/reading_list_notification_service.cc
+++ b/chrome/browser/reading_list/android/reading_list_notification_service.cc
@@ -17,8 +17,8 @@
 
 constexpr notifications::SchedulerClientType kNotificationType =
     notifications::SchedulerClientType::kReadingList;
-const base::TimeDelta kDeliverStartTimeDelta = base::TimeDelta::FromDays(7);
-const base::TimeDelta kDeliverEndTimeDelta = base::TimeDelta::FromMinutes(5);
+const base::TimeDelta kDeliverStartTimeDelta = base::Days(7);
+const base::TimeDelta kDeliverEndTimeDelta = base::Minutes(5);
 
 ReadingListNotificationService::Config::Config() = default;
 ReadingListNotificationService::Config::~Config() = default;
diff --git a/chrome/browser/renderer_context_menu/link_to_text_menu_observer.cc b/chrome/browser/renderer_context_menu/link_to_text_menu_observer.cc
index 515b4c7..e3e6ca10a 100644
--- a/chrome/browser/renderer_context_menu/link_to_text_menu_observer.cc
+++ b/chrome/browser/renderer_context_menu/link_to_text_menu_observer.cc
@@ -28,7 +28,7 @@
 constexpr char kTextFragmentUrlClassifier[] = "#:~:text=";
 
 // Indicates how long context menu should wait for link generation result.
-constexpr base::TimeDelta kTimeoutMs = base::TimeDelta::FromMilliseconds(500);
+constexpr base::TimeDelta kTimeoutMs = base::Milliseconds(500);
 }  // namespace
 
 // static
@@ -179,7 +179,7 @@
 
   base::TimeDelta timeout_length_ms =
       ShouldPreemptivelyGenerateLink()
-          ? base::TimeDelta::FromMilliseconds(
+          ? base::Milliseconds(
                 shared_highlighting::GetPreemptiveLinkGenTimeoutLengthMs())
           : kTimeoutMs;
 
diff --git a/chrome/browser/renderer_context_menu/spelling_menu_observer.cc b/chrome/browser/renderer_context_menu/spelling_menu_observer.cc
index 5e17490..6a0a07b 100644
--- a/chrome/browser/renderer_context_menu/spelling_menu_observer.cc
+++ b/chrome/browser/renderer_context_menu/spelling_menu_observer.cc
@@ -133,7 +133,7 @@
           l10n_util::GetStringUTF16(IDS_CONTENT_CONTEXT_SPELLING_CHECKING);
       loading_frame_ = 0;
       animation_timer_.Start(
-          FROM_HERE, base::TimeDelta::FromSeconds(1),
+          FROM_HERE, base::Seconds(1),
           base::BindRepeating(&SpellingMenuObserver::OnAnimationTimerExpired,
                               weak_ptr_factory_.GetWeakPtr(),
                               IDC_SPELLCHECK_SUGGESTION_0));
@@ -486,7 +486,7 @@
   if (result) {
     loading_frame_ = 0;
     animation_timer_.Start(
-        FROM_HERE, base::TimeDelta::FromSeconds(1),
+        FROM_HERE, base::Seconds(1),
         base::BindRepeating(&SpellingMenuObserver::OnAnimationTimerExpired,
                             weak_ptr_factory_.GetWeakPtr(),
                             IDC_CONTENT_CONTEXT_SPELLING_SUGGESTION));
diff --git a/chrome/browser/renderer_host/chrome_render_widget_host_view_mac_history_swiper_browsertest.mm b/chrome/browser/renderer_host/chrome_render_widget_host_view_mac_history_swiper_browsertest.mm
index 6ce197e..726b8a86 100644
--- a/chrome/browser/renderer_host/chrome_render_widget_host_view_mac_history_swiper_browsertest.mm
+++ b/chrome/browser/renderer_host/chrome_render_widget_host_view_mac_history_swiper_browsertest.mm
@@ -103,7 +103,7 @@
     ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), url2_));
     ASSERT_EQ(url2_, GetWebContents()->GetURL());
 
-    mock_clock_.Advance(base::TimeDelta::FromMilliseconds(100));
+    mock_clock_.Advance(base::Milliseconds(100));
     ui::SetEventTickClockForTesting(&mock_clock_);
   }
 
diff --git a/chrome/browser/reputation/reputation_web_contents_observer.cc b/chrome/browser/reputation/reputation_web_contents_observer.cc
index 37d013f..7cb36fe4 100644
--- a/chrome/browser/reputation/reputation_web_contents_observer.cc
+++ b/chrome/browser/reputation/reputation_web_contents_observer.cc
@@ -132,8 +132,8 @@
         security_state::GetSafetyTipHistogramName(
             std::string("Security.SafetyTips.OpenTime.Dismiss"),
             result.safety_tip_status),
-        base::Time::Now() - start_time, base::TimeDelta::FromMilliseconds(1),
-        base::TimeDelta::FromHours(1), 100);
+        base::Time::Now() - start_time, base::Milliseconds(1), base::Hours(1),
+        100);
   }
   base::UmaHistogramEnumeration(security_state::GetSafetyTipHistogramName(
                                     "Security.SafetyTips.Interaction", status),
@@ -142,8 +142,8 @@
       security_state::GetSafetyTipHistogramName(
           std::string("Security.SafetyTips.OpenTime.") + action_suffix,
           result.safety_tip_status),
-      base::Time::Now() - start_time, base::TimeDelta::FromMilliseconds(1),
-      base::TimeDelta::FromHours(1), 100);
+      base::Time::Now() - start_time, base::Milliseconds(1), base::Hours(1),
+      100);
 
   RecordHeuristicsUKMData(result, navigation_source_id, action);
 
diff --git a/chrome/browser/resource_coordinator/discard_metrics_lifecycle_unit_observer.cc b/chrome/browser/resource_coordinator/discard_metrics_lifecycle_unit_observer.cc
index 767870e0..41ae3112 100644
--- a/chrome/browser/resource_coordinator/discard_metrics_lifecycle_unit_observer.cc
+++ b/chrome/browser/resource_coordinator/discard_metrics_lifecycle_unit_observer.cc
@@ -38,9 +38,9 @@
       lifecycle_unit->GetState() != LifecycleUnitState::DISCARDED &&
       !reload_time_.is_null()) {
     auto reload_to_close_time = NowTicks() - reload_time_;
-    UMA_HISTOGRAM_CUSTOM_TIMES(
-        "TabManager.Discarding.ReloadToCloseTime", reload_to_close_time,
-        base::TimeDelta::FromSeconds(1), base::TimeDelta::FromDays(1), 100);
+    UMA_HISTOGRAM_CUSTOM_TIMES("TabManager.Discarding.ReloadToCloseTime",
+                               reload_to_close_time, base::Seconds(1),
+                               base::Days(1), 100);
   }
 
   // This is a self-owned object that destroys itself with the LifecycleUnit
@@ -69,14 +69,14 @@
   UMA_HISTOGRAM_CUSTOM_COUNTS("TabManager.Discarding.ReloadCount",
                               ++reload_count, 1, 1000, 50);
   auto discard_to_reload_time = reload_time_ - discard_time_;
-  UMA_HISTOGRAM_CUSTOM_TIMES(
-      "TabManager.Discarding.DiscardToReloadTime", discard_to_reload_time,
-      base::TimeDelta::FromSeconds(1), base::TimeDelta::FromDays(1), 100);
+  UMA_HISTOGRAM_CUSTOM_TIMES("TabManager.Discarding.DiscardToReloadTime",
+                             discard_to_reload_time, base::Seconds(1),
+                             base::Days(1), 100);
   auto inactive_to_reload_time =
       reload_time_ - last_focused_time_before_discard_;
-  UMA_HISTOGRAM_CUSTOM_TIMES(
-      "TabManager.Discarding.InactiveToReloadTime", inactive_to_reload_time,
-      base::TimeDelta::FromSeconds(1), base::TimeDelta::FromDays(1), 100);
+  UMA_HISTOGRAM_CUSTOM_TIMES("TabManager.Discarding.InactiveToReloadTime",
+                             inactive_to_reload_time, base::Seconds(1),
+                             base::Days(1), 100);
 }
 
 }  // namespace resource_coordinator
diff --git a/chrome/browser/resource_coordinator/discard_metrics_lifecycle_unit_observer_unittest.cc b/chrome/browser/resource_coordinator/discard_metrics_lifecycle_unit_observer_unittest.cc
index dcda3e0..3a802e4 100644
--- a/chrome/browser/resource_coordinator/discard_metrics_lifecycle_unit_observer_unittest.cc
+++ b/chrome/browser/resource_coordinator/discard_metrics_lifecycle_unit_observer_unittest.cc
@@ -18,7 +18,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kShortDelay = base::TimeDelta::FromSeconds(42);
+constexpr base::TimeDelta kShortDelay = base::Seconds(42);
 
 constexpr char kDiscardCountHistogram[] = "TabManager.Discarding.DiscardCount";
 constexpr char kReloadCountHistogram[] = "TabManager.Discarding.ReloadCount";
diff --git a/chrome/browser/resource_coordinator/lifecycle_unit_base_unittest.cc b/chrome/browser/resource_coordinator/lifecycle_unit_base_unittest.cc
index 6a227d3..10a1e11 100644
--- a/chrome/browser/resource_coordinator/lifecycle_unit_base_unittest.cc
+++ b/chrome/browser/resource_coordinator/lifecycle_unit_base_unittest.cc
@@ -82,12 +82,12 @@
   TestLifecycleUnit lifecycle_unit;
   EXPECT_EQ(NowTicks(), lifecycle_unit.GetStateChangeTime());
 
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
   base::TimeTicks first_state_change_time = NowTicks();
   lifecycle_unit.SetState(LifecycleUnitState::DISCARDED,
                           LifecycleUnitStateChangeReason::BROWSER_INITIATED);
   EXPECT_EQ(first_state_change_time, lifecycle_unit.GetStateChangeTime());
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
   EXPECT_EQ(first_state_change_time, lifecycle_unit.GetStateChangeTime());
 }
 
@@ -152,7 +152,7 @@
   lifecycle_unit.AddObserver(&observer_);
 
   // Observer is notified when the visibility changes.
-  test_clock_.Advance(base::TimeDelta::FromMinutes(1));
+  test_clock_.Advance(base::Minutes(1));
   base::TimeTicks wall_time_when_hidden = NowTicks();
   base::TimeDelta usage_time_when_hidden = usage_clock_->GetTotalUsageTime();
   EXPECT_CALL(observer_, OnLifecycleUnitVisibilityChanged(
@@ -167,7 +167,7 @@
   lifecycle_unit.OnLifecycleUnitVisibilityChanged(content::Visibility::HIDDEN);
   testing::Mock::VerifyAndClear(&observer_);
 
-  test_clock_.Advance(base::TimeDelta::FromMinutes(1));
+  test_clock_.Advance(base::Minutes(1));
   EXPECT_CALL(observer_, OnLifecycleUnitVisibilityChanged(
                              &lifecycle_unit, content::Visibility::OCCLUDED))
       .WillOnce(testing::Invoke(
@@ -181,7 +181,7 @@
       content::Visibility::OCCLUDED);
   testing::Mock::VerifyAndClear(&observer_);
 
-  test_clock_.Advance(base::TimeDelta::FromMinutes(1));
+  test_clock_.Advance(base::Minutes(1));
   EXPECT_CALL(observer_, OnLifecycleUnitVisibilityChanged(
                              &lifecycle_unit, content::Visibility::VISIBLE))
       .WillOnce(testing::Invoke([&](LifecycleUnit* lifecycle_unit,
diff --git a/chrome/browser/resource_coordinator/lifecycle_unit_unittest.cc b/chrome/browser/resource_coordinator/lifecycle_unit_unittest.cc
index 69aaad4..50df2bf 100644
--- a/chrome/browser/resource_coordinator/lifecycle_unit_unittest.cc
+++ b/chrome/browser/resource_coordinator/lifecycle_unit_unittest.cc
@@ -12,8 +12,8 @@
 TEST(LifecycleUnitTest, SortKeyComparison) {
   constexpr base::TimeTicks kBaseTime;
   LifecycleUnit::SortKey a(kBaseTime);
-  LifecycleUnit::SortKey b(kBaseTime + base::TimeDelta::FromHours(1));
-  LifecycleUnit::SortKey c(kBaseTime + base::TimeDelta::FromHours(2));
+  LifecycleUnit::SortKey b(kBaseTime + base::Hours(1));
+  LifecycleUnit::SortKey c(kBaseTime + base::Hours(2));
 
   EXPECT_FALSE(a < a);
   EXPECT_TRUE(a < b);
diff --git a/chrome/browser/resource_coordinator/session_restore_policy.h b/chrome/browser/resource_coordinator/session_restore_policy.h
index 4acf95e..a289a44 100644
--- a/chrome/browser/resource_coordinator/session_restore_policy.h
+++ b/chrome/browser/resource_coordinator/session_restore_policy.h
@@ -258,8 +258,7 @@
 
   // The maximum time since last use of a tab in order for it to be restored.
   // Setting to zero means this logic does not apply.
-  base::TimeDelta max_time_since_last_use_to_restore_ =
-      base::TimeDelta::FromDays(30);
+  base::TimeDelta max_time_since_last_use_to_restore_ = base::Days(30);
 
   // The minimum site engagement score in order for a tab to be restored.
   // Setting this to zero means all tabs will be restored regardless of the
diff --git a/chrome/browser/resource_coordinator/session_restore_policy_unittest.cc b/chrome/browser/resource_coordinator/session_restore_policy_unittest.cc
index 0089272..43bda9a 100644
--- a/chrome/browser/resource_coordinator/session_restore_policy_unittest.cc
+++ b/chrome/browser/resource_coordinator/session_restore_policy_unittest.cc
@@ -163,7 +163,7 @@
     delegate_.SetSiteEngagementScore(30);
 
     // Put the clock in the future so that we can LastActiveTimes in the past.
-    clock_.Advance(base::TimeDelta::FromDays(1));
+    clock_.Advance(base::Days(1));
 
     CreateTestContents();
   }
@@ -196,14 +196,11 @@
 
   void CreateTestContents() {
     contents1_ = CreateAndInitTestWebContents(
-        GURL("https://a.com"),
-        clock_.NowTicks() - base::TimeDelta::FromHours(1));
+        GURL("https://a.com"), clock_.NowTicks() - base::Hours(1));
     contents2_ = CreateAndInitTestWebContents(
-        GURL("https://b.com"),
-        clock_.NowTicks() - base::TimeDelta::FromHours(2));
+        GURL("https://b.com"), clock_.NowTicks() - base::Hours(2));
     contents3_ = CreateAndInitTestWebContents(
-        GURL("https://c.com"),
-        clock_.NowTicks() - base::TimeDelta::FromHours(3));
+        GURL("https://c.com"), clock_.NowTicks() - base::Hours(3));
 
     tab_for_scoring_ = {contents1_.get(), contents2_.get(), contents3_.get()};
   }
@@ -236,8 +233,7 @@
     policy_->min_tabs_to_restore_ = 2;
     policy_->max_tabs_to_restore_ = 30;
     policy_->mb_free_memory_per_tab_to_restore_ = 150;
-    policy_->max_time_since_last_use_to_restore_ =
-        base::TimeDelta::FromHours(6);
+    policy_->max_time_since_last_use_to_restore_ = base::Hours(6);
     policy_->min_site_engagement_to_restore_ = 15;
 
     // Ensure the simultaneous tab loads is properly calculated wrt the above
@@ -361,8 +357,7 @@
   // Reset and impose a max time since use policy. The contents have ages of 1,
   // 2 and 3 hours respectively.
   policy_->SetTabLoadsStartedForTesting(0);
-  policy_->max_time_since_last_use_to_restore_ =
-      base::TimeDelta::FromMinutes(90);
+  policy_->max_time_since_last_use_to_restore_ = base::Minutes(90);
   EXPECT_TRUE(policy_->ShouldLoad(contents1_.get()));
   policy_->NotifyTabLoadStarted();
   EXPECT_FALSE(policy_->ShouldLoad(contents2_.get()));
@@ -399,8 +394,7 @@
   policy_->min_tabs_to_restore_ = 0;
   policy_->max_tabs_to_restore_ = 1;
   policy_->mb_free_memory_per_tab_to_restore_ = 1024;
-  policy_->max_time_since_last_use_to_restore_ =
-      base::TimeDelta::FromMinutes(1);
+  policy_->max_time_since_last_use_to_restore_ = base::Minutes(1);
   policy_->min_site_engagement_to_restore_ = 100;
 
   // Make the system look like its effectively out of memory as well.
@@ -516,35 +510,35 @@
 
   // Generate some known edge cases.
   size_t i = 0;
-  tab_data[i++]->last_active = base::TimeDelta::FromMilliseconds(-1001);
-  tab_data[i++]->last_active = base::TimeDelta::FromMilliseconds(-1000);
-  tab_data[i++]->last_active = base::TimeDelta::FromMilliseconds(-999);
-  tab_data[i++]->last_active = base::TimeDelta::FromMilliseconds(-500);
-  tab_data[i++]->last_active = base::TimeDelta::FromMilliseconds(0);
-  tab_data[i++]->last_active = base::TimeDelta::FromMilliseconds(500);
-  tab_data[i++]->last_active = base::TimeDelta::FromMilliseconds(999);
-  tab_data[i++]->last_active = base::TimeDelta::FromMilliseconds(1000);
-  tab_data[i++]->last_active = base::TimeDelta::FromMilliseconds(1001);
+  tab_data[i++]->last_active = base::Milliseconds(-1001);
+  tab_data[i++]->last_active = base::Milliseconds(-1000);
+  tab_data[i++]->last_active = base::Milliseconds(-999);
+  tab_data[i++]->last_active = base::Milliseconds(-500);
+  tab_data[i++]->last_active = base::Milliseconds(0);
+  tab_data[i++]->last_active = base::Milliseconds(500);
+  tab_data[i++]->last_active = base::Milliseconds(999);
+  tab_data[i++]->last_active = base::Milliseconds(1000);
+  tab_data[i++]->last_active = base::Milliseconds(1001);
 
   // Generate a logarithmic selection of ages to test the whole range.
-  tab_data[i++]->last_active = base::TimeDelta::FromSeconds(-1000000);
-  tab_data[i++]->last_active = base::TimeDelta::FromSeconds(-100000);
-  tab_data[i++]->last_active = base::TimeDelta::FromSeconds(-10000);
-  tab_data[i++]->last_active = base::TimeDelta::FromSeconds(-1000);
-  tab_data[i++]->last_active = base::TimeDelta::FromSeconds(-100);
-  tab_data[i++]->last_active = base::TimeDelta::FromSeconds(-10);
-  tab_data[i++]->last_active = base::TimeDelta::FromSeconds(10);
-  tab_data[i++]->last_active = base::TimeDelta::FromSeconds(100);
-  tab_data[i++]->last_active = base::TimeDelta::FromSeconds(1000);
-  tab_data[i++]->last_active = base::TimeDelta::FromSeconds(10000);
-  tab_data[i++]->last_active = base::TimeDelta::FromSeconds(100000);
-  tab_data[i++]->last_active = base::TimeDelta::FromSeconds(1000000);
-  tab_data[i++]->last_active = base::TimeDelta::FromSeconds(10000000);
+  tab_data[i++]->last_active = base::Seconds(-1000000);
+  tab_data[i++]->last_active = base::Seconds(-100000);
+  tab_data[i++]->last_active = base::Seconds(-10000);
+  tab_data[i++]->last_active = base::Seconds(-1000);
+  tab_data[i++]->last_active = base::Seconds(-100);
+  tab_data[i++]->last_active = base::Seconds(-10);
+  tab_data[i++]->last_active = base::Seconds(10);
+  tab_data[i++]->last_active = base::Seconds(100);
+  tab_data[i++]->last_active = base::Seconds(1000);
+  tab_data[i++]->last_active = base::Seconds(10000);
+  tab_data[i++]->last_active = base::Seconds(100000);
+  tab_data[i++]->last_active = base::Seconds(1000000);
+  tab_data[i++]->last_active = base::Seconds(10000000);
 
   // Generate a bunch more random ages.
   for (; i < tab_data.size(); ++i) {
-    tab_data[i]->last_active = base::TimeDelta::FromSeconds(
-        base::RandInt(-kMonthInSeconds, kMonthInSeconds));
+    tab_data[i]->last_active =
+        base::Seconds(base::RandInt(-kMonthInSeconds, kMonthInSeconds));
   }
 
   // Calculate the tab scores.
@@ -571,13 +565,13 @@
 
   TabData td_bg;
   td_bg.used_in_bg = true;
-  td_bg.last_active = base::TimeDelta::FromDays(30);
+  td_bg.last_active = base::Days(30);
   EXPECT_TRUE(TestSessionRestorePolicy::ScoreTab(&td_bg));
 
   TabData td_normal_young;
   TabData td_normal_old;
-  td_normal_young.last_active = base::TimeDelta::FromSeconds(1);
-  td_normal_old.last_active = base::TimeDelta::FromDays(7);
+  td_normal_young.last_active = base::Seconds(1);
+  td_normal_old.last_active = base::Days(7);
   EXPECT_TRUE(TestSessionRestorePolicy::ScoreTab(&td_normal_young));
   EXPECT_TRUE(TestSessionRestorePolicy::ScoreTab(&td_normal_old));
 
diff --git a/chrome/browser/resource_coordinator/tab_activity_watcher_browsertest.cc b/chrome/browser/resource_coordinator/tab_activity_watcher_browsertest.cc
index e1e1e9b..05ee7188 100644
--- a/chrome/browser/resource_coordinator/tab_activity_watcher_browsertest.cc
+++ b/chrome/browser/resource_coordinator/tab_activity_watcher_browsertest.cc
@@ -205,14 +205,14 @@
   // Use test clock so tabs have non-zero backgrounded times.
   base::SimpleTestTickClock test_clock;
   ScopedSetTickClockForTesting scoped_set_tick_clock_for_testing(&test_clock);
-  test_clock.Advance(base::TimeDelta::FromMinutes(1));
+  test_clock.Advance(base::Minutes(1));
 
   AddTabAtIndex(1, test_urls_[0], ui::PAGE_TRANSITION_LINK);
-  test_clock.Advance(base::TimeDelta::FromMinutes(1));
+  test_clock.Advance(base::Minutes(1));
 
   browser()->tab_strip_model()->ActivateTabAt(
       0, {TabStripModel::GestureType::kOther});
-  test_clock.Advance(base::TimeDelta::FromMinutes(1));
+  test_clock.Advance(base::Minutes(1));
 
   // A background tab is scored successfully.
   absl::optional<float> background_score =
@@ -555,19 +555,19 @@
   // Use test clock so tabs have non-zero backgrounded times.
   base::SimpleTestTickClock test_clock;
   ScopedSetTickClockForTesting scoped_set_tick_clock_for_testing(&test_clock);
-  test_clock.Advance(base::TimeDelta::FromMinutes(1));
+  test_clock.Advance(base::Minutes(1));
 
   ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), test_urls_[0]));
   // Insert the tab@1.
   AddTabAtIndex(1, test_urls_[1], ui::PAGE_TRANSITION_LINK);
-  test_clock.Advance(base::TimeDelta::FromMinutes(1));
+  test_clock.Advance(base::Minutes(1));
   // Insert the tab@2.
   AddTabAtIndex(2, test_urls_[2], ui::PAGE_TRANSITION_LINK);
-  test_clock.Advance(base::TimeDelta::FromMinutes(1));
+  test_clock.Advance(base::Minutes(1));
   // Activate tab@0.
   browser()->tab_strip_model()->ActivateTabAt(
       0, {TabStripModel::GestureType::kOther});
-  test_clock.Advance(base::TimeDelta::FromMinutes(1));
+  test_clock.Advance(base::Minutes(1));
 
   // TabManager_TabMetrics should not have been logged yet.
   EXPECT_EQ(0, ukm_entry_checker_->NumNewEntriesRecorded(kTabMetricsEntryName));
@@ -604,7 +604,7 @@
   // label_id_1.
   browser()->tab_strip_model()->ActivateTabAt(
       1, {TabStripModel::GestureType::kOther});
-  test_clock.Advance(base::TimeDelta::FromMinutes(1));
+  test_clock.Advance(base::Minutes(1));
   {
     SCOPED_TRACE("");
     ukm_entry_checker_->ExpectNewEntry(
diff --git a/chrome/browser/resource_coordinator/tab_activity_watcher_unittest.cc b/chrome/browser/resource_coordinator/tab_activity_watcher_unittest.cc
index d627e24..7ef2d85d 100644
--- a/chrome/browser/resource_coordinator/tab_activity_watcher_unittest.cc
+++ b/chrome/browser/resource_coordinator/tab_activity_watcher_unittest.cc
@@ -825,7 +825,7 @@
  protected:
   const char* kEntryName = ForegroundedOrClosed::kEntryName;
 
-  void AdvanceClock() { test_clock_.Advance(base::TimeDelta::FromSeconds(1)); }
+  void AdvanceClock() { test_clock_.Advance(base::Seconds(1)); }
 
  private:
   base::SimpleTestTickClock test_clock_;
diff --git a/chrome/browser/resource_coordinator/tab_lifecycle_unit.h b/chrome/browser/resource_coordinator/tab_lifecycle_unit.h
index 6d35986..6d20ec26 100644
--- a/chrome/browser/resource_coordinator/tab_lifecycle_unit.h
+++ b/chrome/browser/resource_coordinator/tab_lifecycle_unit.h
@@ -31,11 +31,10 @@
 // Time during which backgrounded tabs are protected from urgent discarding
 // (not on ChromeOS).
 static constexpr base::TimeDelta kBackgroundUrgentProtectionTime =
-    base::TimeDelta::FromMinutes(10);
+    base::Minutes(10);
 
 // Time during which a tab cannot be discarded after having played audio.
-static constexpr base::TimeDelta kTabAudioProtectionTime =
-    base::TimeDelta::FromMinutes(1);
+static constexpr base::TimeDelta kTabAudioProtectionTime = base::Minutes(1);
 
 class TabLifecycleUnitExternalImpl;
 
diff --git a/chrome/browser/resource_coordinator/tab_lifecycle_unit_source_unittest.cc b/chrome/browser/resource_coordinator/tab_lifecycle_unit_source_unittest.cc
index 0c54a7a..ecf0c1a9 100644
--- a/chrome/browser/resource_coordinator/tab_lifecycle_unit_source_unittest.cc
+++ b/chrome/browser/resource_coordinator/tab_lifecycle_unit_source_unittest.cc
@@ -44,7 +44,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kShortDelay = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kShortDelay = base::Seconds(1);
 
 class MockLifecycleUnitSourceObserver : public LifecycleUnitSourceObserver {
  public:
diff --git a/chrome/browser/resource_coordinator/tab_lifecycle_unit_unittest.cc b/chrome/browser/resource_coordinator/tab_lifecycle_unit_unittest.cc
index 29ac7afc..0bb1223 100644
--- a/chrome/browser/resource_coordinator/tab_lifecycle_unit_unittest.cc
+++ b/chrome/browser/resource_coordinator/tab_lifecycle_unit_unittest.cc
@@ -58,7 +58,7 @@
 
 using LoadingState = TabLoadTracker::LoadingState;
 
-constexpr base::TimeDelta kShortDelay = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kShortDelay = base::Seconds(1);
 
 class MockTabLifecycleObserver : public TabLifecycleObserver {
  public:
@@ -104,7 +104,7 @@
 
   TabLifecycleUnitTest() : scoped_set_tick_clock_for_testing_(&test_clock_) {
     // Advance the clock so that it doesn't yield null time ticks.
-    test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+    test_clock_.Advance(base::Seconds(1));
     observers_.AddObserver(&observer_);
   }
 
diff --git a/chrome/browser/resource_coordinator/tab_manager_browsertest.cc b/chrome/browser/resource_coordinator/tab_manager_browsertest.cc
index b0b7d0e..3781f29 100644
--- a/chrome/browser/resource_coordinator/tab_manager_browsertest.cc
+++ b/chrome/browser/resource_coordinator/tab_manager_browsertest.cc
@@ -62,7 +62,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kShortDelay = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kShortDelay = base::Seconds(1);
 
 bool IsTabDiscarded(content::WebContents* web_contents) {
   return TabLifecycleUnitExternal::FromWebContents(web_contents)->IsDiscarded();
@@ -434,8 +434,7 @@
   ASSERT_FALSE(tab_manager->DiscardTabImpl(LifecycleUnitDiscardReason::URGENT));
 
   // Advance the clock for more than the protection time.
-  test_clock_.Advance(kBackgroundUrgentProtectionTime / 2 +
-                      base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(kBackgroundUrgentProtectionTime / 2 + base::Seconds(1));
 
   // Should be able to discard the background tab now.
   EXPECT_TRUE(tab_manager->DiscardTabImpl(LifecycleUnitDiscardReason::URGENT));
@@ -1024,8 +1023,7 @@
   const int kIntervalTimeInMS = 5;
   int timeout = kTimeoutTimeInMS / kIntervalTimeInMS;
   while (--timeout) {
-    base::PlatformThread::Sleep(
-        base::TimeDelta::FromMilliseconds(kIntervalTimeInMS));
+    base::PlatformThread::Sleep(base::Milliseconds(kIntervalTimeInMS));
     base::RunLoop().RunUntilIdle();
     if (IsTabDiscarded(GetWebContentsAt(0)))
       break;
diff --git a/chrome/browser/resource_coordinator/tab_manager_delegate_chromeos.cc b/chrome/browser/resource_coordinator/tab_manager_delegate_chromeos.cc
index 0371da1a2..f5eb51c 100644
--- a/chrome/browser/resource_coordinator/tab_manager_delegate_chromeos.cc
+++ b/chrome/browser/resource_coordinator/tab_manager_delegate_chromeos.cc
@@ -61,8 +61,7 @@
 namespace {
 
 // The default interval after which to adjust OOM scores.
-constexpr base::TimeDelta kAdjustmentInterval =
-    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kAdjustmentInterval = base::Seconds(10);
 
 // When switching to a new tab the tab's renderer's OOM score needs to be
 // updated to reflect its front-most status and protect it from discard.
diff --git a/chrome/browser/resource_coordinator/tab_manager_delegate_chromeos.h b/chrome/browser/resource_coordinator/tab_manager_delegate_chromeos.h
index a0b136f..63007805 100644
--- a/chrome/browser/resource_coordinator/tab_manager_delegate_chromeos.h
+++ b/chrome/browser/resource_coordinator/tab_manager_delegate_chromeos.h
@@ -189,7 +189,7 @@
   // being killed. In that case, killing them every time is just a waste of
   // resources.
   static constexpr base::TimeDelta GetArcRespawnKillDelay() {
-    return base::TimeDelta::FromSeconds(60);
+    return base::Seconds(60);
   }
 
   // The OOM adjustment score for persistent ARC processes.
diff --git a/chrome/browser/resource_coordinator/tab_manager_delegate_chromeos_unittest.cc b/chrome/browser/resource_coordinator/tab_manager_delegate_chromeos_unittest.cc
index c8844492..8cd29bc 100644
--- a/chrome/browser/resource_coordinator/tab_manager_delegate_chromeos_unittest.cc
+++ b/chrome/browser/resource_coordinator/tab_manager_delegate_chromeos_unittest.cc
@@ -50,11 +50,11 @@
 
   TestLifecycleUnit focused_lifecycle_unit(base::TimeTicks::Max());
   TestLifecycleUnit protected_lifecycle_unit(
-      base::TimeTicks() + base::TimeDelta::FromSeconds(5), 0, false);
+      base::TimeTicks() + base::Seconds(5), 0, false);
   TestLifecycleUnit non_focused_lifecycle_unit(base::TimeTicks() +
-                                               base::TimeDelta::FromSeconds(1));
-  TestLifecycleUnit other_non_focused_lifecycle_unit(
-      base::TimeTicks() + base::TimeDelta::FromSeconds(2));
+                                               base::Seconds(1));
+  TestLifecycleUnit other_non_focused_lifecycle_unit(base::TimeTicks() +
+                                                     base::Seconds(2));
   LifecycleUnitVector lifecycle_units{
       &focused_lifecycle_unit, &protected_lifecycle_unit,
       &non_focused_lifecycle_unit, &other_non_focused_lifecycle_unit};
@@ -216,20 +216,15 @@
                              arc::mojom::ProcessState::PERSISTENT_UI,
                              kNotFocused, 700);
 
-  TestLifecycleUnit tab1(base::TimeTicks() + base::TimeDelta::FromSeconds(3),
-                         11);
+  TestLifecycleUnit tab1(base::TimeTicks() + base::Seconds(3), 11);
   tab_manager_delegate.AddLifecycleUnit(&tab1);
-  TestLifecycleUnit tab2(base::TimeTicks() + base::TimeDelta::FromSeconds(1),
-                         11);
+  TestLifecycleUnit tab2(base::TimeTicks() + base::Seconds(1), 11);
   tab_manager_delegate.AddLifecycleUnit(&tab2);
-  TestLifecycleUnit tab3(base::TimeTicks() + base::TimeDelta::FromSeconds(5),
-                         12);
+  TestLifecycleUnit tab3(base::TimeTicks() + base::Seconds(5), 12);
   tab_manager_delegate.AddLifecycleUnit(&tab3);
-  TestLifecycleUnit tab4(base::TimeTicks() + base::TimeDelta::FromSeconds(4),
-                         12);
+  TestLifecycleUnit tab4(base::TimeTicks() + base::Seconds(4), 12);
   tab_manager_delegate.AddLifecycleUnit(&tab4);
-  TestLifecycleUnit tab5(base::TimeTicks() + base::TimeDelta::FromSeconds(2),
-                         12);
+  TestLifecycleUnit tab5(base::TimeTicks() + base::Seconds(2), 12);
   tab_manager_delegate.AddLifecycleUnit(&tab5);
 
   // Sorted order (by GetSortedCandidates):
@@ -292,7 +287,7 @@
   EXPECT_FALSE(
       tab_manager_delegate.IsRecentlyKilledArcProcess(kProcessName2, now));
   tab_manager_delegate.recently_killed_arc_processes_[kProcessName1] =
-      now - base::TimeDelta::FromMicroseconds(1);
+      now - base::Microseconds(1);
   EXPECT_TRUE(
       tab_manager_delegate.IsRecentlyKilledArcProcess(kProcessName1, now));
   EXPECT_FALSE(
@@ -308,8 +303,7 @@
   // (GetArcRespawnKillDelay() + 1) seconds ago. In this case,
   // IsRecentlyKilledArcProcess(kProcessName1) should return false.
   tab_manager_delegate.recently_killed_arc_processes_[kProcessName1] =
-      now - TabManagerDelegate::GetArcRespawnKillDelay() -
-      base::TimeDelta::FromSeconds(1);
+      now - TabManagerDelegate::GetArcRespawnKillDelay() - base::Seconds(1);
   EXPECT_FALSE(
       tab_manager_delegate.IsRecentlyKilledArcProcess(kProcessName1, now));
   EXPECT_FALSE(
@@ -363,20 +357,15 @@
                              arc::mojom::ProcessState::PERSISTENT, kNotFocused,
                              400);
 
-  TestLifecycleUnit tab1(base::TimeTicks() + base::TimeDelta::FromSeconds(3),
-                         11);
+  TestLifecycleUnit tab1(base::TimeTicks() + base::Seconds(3), 11);
   tab_manager_delegate.AddLifecycleUnit(&tab1);
-  TestLifecycleUnit tab2(base::TimeTicks() + base::TimeDelta::FromSeconds(1),
-                         11);
+  TestLifecycleUnit tab2(base::TimeTicks() + base::Seconds(1), 11);
   tab_manager_delegate.AddLifecycleUnit(&tab2);
-  TestLifecycleUnit tab3(base::TimeTicks() + base::TimeDelta::FromSeconds(5),
-                         12);
+  TestLifecycleUnit tab3(base::TimeTicks() + base::Seconds(5), 12);
   tab_manager_delegate.AddLifecycleUnit(&tab3);
-  TestLifecycleUnit tab4(base::TimeTicks() + base::TimeDelta::FromSeconds(4),
-                         12);
+  TestLifecycleUnit tab4(base::TimeTicks() + base::Seconds(4), 12);
   tab_manager_delegate.AddLifecycleUnit(&tab4);
-  TestLifecycleUnit tab5(base::TimeTicks() + base::TimeDelta::FromSeconds(2),
-                         12);
+  TestLifecycleUnit tab5(base::TimeTicks() + base::Seconds(2), 12);
   tab_manager_delegate.AddLifecycleUnit(&tab5);
 
   // Sorted order (by GetSortedCandidates):
diff --git a/chrome/browser/resource_coordinator/tab_manager_features.cc b/chrome/browser/resource_coordinator/tab_manager_features.cc
index c115898..f7cdced 100644
--- a/chrome/browser/resource_coordinator/tab_manager_features.cc
+++ b/chrome/browser/resource_coordinator/tab_manager_features.cc
@@ -37,7 +37,7 @@
   if (timeout_in_ms <= 0)
     return default_timeout;
 
-  return base::TimeDelta::FromMilliseconds(timeout_in_ms);
+  return base::Milliseconds(timeout_in_ms);
 }
 
 int GetNumOldestTabsToScoreWithTabRanker() {
diff --git a/chrome/browser/resource_coordinator/tab_manager_stats_collector.cc b/chrome/browser/resource_coordinator/tab_manager_stats_collector.cc
index c7e7bdd..e89ddc6 100644
--- a/chrome/browser/resource_coordinator/tab_manager_stats_collector.cc
+++ b/chrome/browser/resource_coordinator/tab_manager_stats_collector.cc
@@ -147,7 +147,7 @@
   swap_metrics_driver_ = content::SwapMetricsDriver::Create(
       base::WrapUnique<content::SwapMetricsDriver::Delegate>(
           new SwapMetricsDelegate(this)),
-      base::TimeDelta::FromSeconds(0));
+      base::Seconds(0));
   // The driver could still be null on a platform with no swap driver support.
   if (swap_metrics_driver_)
     swap_metrics_driver_->InitializeMetrics();
diff --git a/chrome/browser/resource_coordinator/tab_manager_stats_collector.h b/chrome/browser/resource_coordinator/tab_manager_stats_collector.h
index bcd0e34..a28a227 100644
--- a/chrome/browser/resource_coordinator/tab_manager_stats_collector.h
+++ b/chrome/browser/resource_coordinator/tab_manager_stats_collector.h
@@ -112,7 +112,7 @@
   // The rough sampling interval for low-frequency sampled stats. This should
   // be O(minutes).
   static constexpr base::TimeDelta kLowFrequencySamplingInterval =
-      base::TimeDelta::FromMinutes(5);
+      base::Minutes(5);
 
   // TabManagerStatsCollector should be used from a single sequence.
   SEQUENCE_CHECKER(sequence_checker_);
diff --git a/chrome/browser/resource_coordinator/tab_manager_stats_collector_unittest.cc b/chrome/browser/resource_coordinator/tab_manager_stats_collector_unittest.cc
index b4720cf..49949ab 100644
--- a/chrome/browser/resource_coordinator/tab_manager_stats_collector_unittest.cc
+++ b/chrome/browser/resource_coordinator/tab_manager_stats_collector_unittest.cc
@@ -59,7 +59,7 @@
     base::CurrentThread::Get()->SetTaskRunner(task_runner_);
 
     // Start with a non-zero time.
-    task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(42));
+    task_runner_->FastForwardBy(base::Seconds(42));
   }
 
   TabManagerStatsCollectorTest(const TabManagerStatsCollectorTest&) = delete;
diff --git a/chrome/browser/resource_coordinator/tab_manager_unittest.cc b/chrome/browser/resource_coordinator/tab_manager_unittest.cc
index 9ca5449b..165fe6f 100644
--- a/chrome/browser/resource_coordinator/tab_manager_unittest.cc
+++ b/chrome/browser/resource_coordinator/tab_manager_unittest.cc
@@ -67,7 +67,7 @@
       : ChromeRenderViewHostTestHarness(
             base::test::TaskEnvironment::TimeSource::MOCK_TIME) {
     // Start with a non-zero time.
-    task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(42));
+    task_environment()->FastForwardBy(base::Seconds(42));
   }
 
   std::unique_ptr<WebContents> CreateWebContents() {
@@ -205,7 +205,7 @@
 
   const int num_of_tabs_to_test = 20;
   for (int i = 0; i < num_of_tabs_to_test; ++i) {
-    task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(10));
+    task_environment()->FastForwardBy(base::Seconds(10));
     tab_strip->AppendWebContents(CreateWebContents(), /*foreground=*/true);
   }
 
diff --git a/chrome/browser/resource_coordinator/tab_manager_web_contents_data_unittest.cc b/chrome/browser/resource_coordinator/tab_manager_web_contents_data_unittest.cc
index 527b600e..f6d24df 100644
--- a/chrome/browser/resource_coordinator/tab_manager_web_contents_data_unittest.cc
+++ b/chrome/browser/resource_coordinator/tab_manager_web_contents_data_unittest.cc
@@ -33,7 +33,7 @@
       : scoped_set_tick_clock_for_testing_(&test_clock_) {
     // Fast-forward time to prevent the first call to NowTicks() in a test from
     // returning a null TimeTicks.
-    test_clock_.Advance(base::TimeDelta::FromMilliseconds(1));
+    test_clock_.Advance(base::Milliseconds(1));
   }
 
   void SetUp() override {
diff --git a/chrome/browser/resource_coordinator/tab_memory_metrics_reporter.cc b/chrome/browser/resource_coordinator/tab_memory_metrics_reporter.cc
index cd89b00..8a5c2e2c 100644
--- a/chrome/browser/resource_coordinator/tab_memory_metrics_reporter.cc
+++ b/chrome/browser/resource_coordinator/tab_memory_metrics_reporter.cc
@@ -68,7 +68,7 @@
   base::TimeTicks current_time = NowTicks();
   WebContentsData data;
   data.page_loaded_time = current_time;
-  data.next_emit_time = data.page_loaded_time + base::TimeDelta::FromMinutes(1);
+  data.next_emit_time = data.page_loaded_time + base::Minutes(1);
   data.state = NO_METRICS_EMITTED;
   data.web_contents = web_contents;
 
@@ -162,8 +162,7 @@
 base::TimeDelta TabMemoryMetricsReporter::NextEmitTimeAfterPageLoaded(
     TabMemoryMetricsReporter::ReportState state) {
   static constexpr base::TimeDelta next_emit_time_after_page_loaded[] = {
-      base::TimeDelta::FromMinutes(1), base::TimeDelta::FromMinutes(5),
-      base::TimeDelta::FromMinutes(10), base::TimeDelta::FromMinutes(15)};
+      base::Minutes(1), base::Minutes(5), base::Minutes(10), base::Minutes(15)};
   DCHECK(NO_METRICS_EMITTED <= state && state < EMITTED_ALL_METRICS);
   return next_emit_time_after_page_loaded[state];
 }
@@ -171,13 +170,13 @@
 TabMemoryMetricsReporter::ReportState
 TabMemoryMetricsReporter::NextStateOfEmitMemoryDumpAfterPageLoaded(
     base::TimeDelta time_passed) {
-  if (time_passed >= base::TimeDelta::FromMinutes(15))
+  if (time_passed >= base::Minutes(15))
     return EMITTED_ALL_METRICS;
-  if (time_passed >= base::TimeDelta::FromMinutes(10))
+  if (time_passed >= base::Minutes(10))
     return EMITTED_10MIN_METRIC;
-  if (time_passed >= base::TimeDelta::FromMinutes(5))
+  if (time_passed >= base::Minutes(5))
     return EMITTED_5MIN_METRIC;
-  if (time_passed >= base::TimeDelta::FromMinutes(1))
+  if (time_passed >= base::Minutes(1))
     return EMITTED_1MIN_METRIC;
   return NO_METRICS_EMITTED;
 }
diff --git a/chrome/browser/resource_coordinator/tab_memory_metrics_reporter_unittest.cc b/chrome/browser/resource_coordinator/tab_memory_metrics_reporter_unittest.cc
index 84730515..c8d4fcd 100644
--- a/chrome/browser/resource_coordinator/tab_memory_metrics_reporter_unittest.cc
+++ b/chrome/browser/resource_coordinator/tab_memory_metrics_reporter_unittest.cc
@@ -176,10 +176,10 @@
   ScopedSetTickClockForTesting scoped_set_tick_clock_for_testing_(tick_clock());
   observer().OnLoadingStateChange(contents1(), LoadingState::LOADING,
                                   LoadingState::LOADED);
-  task_runner()->AdvanceMockTickClock(base::TimeDelta::FromMinutes(1));
+  task_runner()->AdvanceMockTickClock(base::Minutes(1));
   observer().OnLoadingStateChange(contents2(), LoadingState::LOADING,
                                   LoadingState::LOADED);
-  task_runner()->AdvanceMockTickClock(base::TimeDelta::FromMinutes(1));
+  task_runner()->AdvanceMockTickClock(base::Minutes(1));
   observer().OnLoadingStateChange(contents3(), LoadingState::LOADING,
                                   LoadingState::LOADED);
 
@@ -203,7 +203,7 @@
   ScopedSetTickClockForTesting scoped_set_tick_clock_for_testing_(tick_clock());
   observer().OnLoadingStateChange(contents1(), LoadingState::LOADING,
                                   LoadingState::LOADED);
-  task_runner()->FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_runner()->FastForwardBy(base::Minutes(1));
   EXPECT_EQ(1U, observer().emit_count());
   EXPECT_TRUE(observer().update_timer_for_testing().IsRunning());
   EXPECT_EQ(contents1(), observer().TopMonitoredContent());
@@ -214,7 +214,7 @@
   ScopedSetTickClockForTesting scoped_set_tick_clock_for_testing_(tick_clock());
   observer().OnLoadingStateChange(contents1(), LoadingState::LOADING,
                                   LoadingState::LOADED);
-  task_runner()->FastForwardBy(base::TimeDelta::FromMinutes(5));
+  task_runner()->FastForwardBy(base::Minutes(5));
   EXPECT_EQ(2U, observer().emit_count());
   EXPECT_TRUE(observer().update_timer_for_testing().IsRunning());
   EXPECT_EQ(contents1(), observer().TopMonitoredContent());
@@ -225,7 +225,7 @@
   ScopedSetTickClockForTesting scoped_set_tick_clock_for_testing_(tick_clock());
   observer().OnLoadingStateChange(contents1(), LoadingState::LOADING,
                                   LoadingState::LOADED);
-  task_runner()->FastForwardBy(base::TimeDelta::FromMinutes(10));
+  task_runner()->FastForwardBy(base::Minutes(10));
   EXPECT_EQ(3U, observer().emit_count());
   EXPECT_TRUE(observer().update_timer_for_testing().IsRunning());
   EXPECT_EQ(contents1(), observer().TopMonitoredContent());
@@ -236,7 +236,7 @@
   ScopedSetTickClockForTesting scoped_set_tick_clock_for_testing_(tick_clock());
   observer().OnLoadingStateChange(contents1(), LoadingState::LOADING,
                                   LoadingState::LOADED);
-  task_runner()->FastForwardBy(base::TimeDelta::FromMinutes(15));
+  task_runner()->FastForwardBy(base::Minutes(15));
   EXPECT_EQ(4U, observer().emit_count());
   EXPECT_FALSE(observer().update_timer_for_testing().IsRunning());
   EXPECT_FALSE(observer().TopMonitoredContent());
@@ -246,8 +246,8 @@
   ScopedSetTickClockForTesting scoped_set_tick_clock_for_testing_(tick_clock());
   observer().OnLoadingStateChange(contents1(), LoadingState::LOADING,
                                   LoadingState::LOADED);
-  task_runner()->AdvanceMockTickClock(base::TimeDelta::FromMinutes(5));
-  task_runner()->FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_runner()->AdvanceMockTickClock(base::Minutes(5));
+  task_runner()->FastForwardBy(base::Minutes(1));
   EXPECT_EQ(1U, observer().emit_count());
   EXPECT_TRUE(observer().update_timer_for_testing().IsRunning());
   EXPECT_EQ(contents1(), observer().TopMonitoredContent());
@@ -258,8 +258,8 @@
   ScopedSetTickClockForTesting scoped_set_tick_clock_for_testing_(tick_clock());
   observer().OnLoadingStateChange(contents1(), LoadingState::LOADING,
                                   LoadingState::LOADED);
-  task_runner()->AdvanceMockTickClock(base::TimeDelta::FromMinutes(10));
-  task_runner()->FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_runner()->AdvanceMockTickClock(base::Minutes(10));
+  task_runner()->FastForwardBy(base::Minutes(1));
   EXPECT_EQ(1U, observer().emit_count());
   EXPECT_TRUE(observer().update_timer_for_testing().IsRunning());
   EXPECT_EQ(contents1(), observer().TopMonitoredContent());
@@ -270,8 +270,8 @@
   ScopedSetTickClockForTesting scoped_set_tick_clock_for_testing_(tick_clock());
   observer().OnLoadingStateChange(contents1(), LoadingState::LOADING,
                                   LoadingState::LOADED);
-  task_runner()->AdvanceMockTickClock(base::TimeDelta::FromMinutes(15));
-  task_runner()->FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_runner()->AdvanceMockTickClock(base::Minutes(15));
+  task_runner()->FastForwardBy(base::Minutes(1));
   EXPECT_EQ(1U, observer().emit_count());
   EXPECT_FALSE(observer().update_timer_for_testing().IsRunning());
   EXPECT_FALSE(observer().TopMonitoredContent());
@@ -281,8 +281,7 @@
   ScopedSetTickClockForTesting scoped_set_tick_clock_for_testing_(tick_clock());
   observer().OnLoadingStateChange(contents1(), LoadingState::LOADING,
                                   LoadingState::LOADED);
-  task_runner()->FastForwardBy(base::TimeDelta::FromMinutes(9) +
-                               base::TimeDelta::FromSeconds(30));
+  task_runner()->FastForwardBy(base::Minutes(9) + base::Seconds(30));
   EXPECT_EQ(2U, observer().emit_count());
   EXPECT_EQ(30, observer().NextEmitTimeFromNow().InSeconds());
   EXPECT_EQ(contents1(), observer().TopMonitoredContent());
@@ -297,10 +296,10 @@
   ScopedSetTickClockForTesting scoped_set_tick_clock_for_testing_(tick_clock());
   observer().OnLoadingStateChange(contents1(), LoadingState::LOADING,
                                   LoadingState::LOADED);
-  task_runner()->FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_runner()->FastForwardBy(base::Minutes(1));
   EXPECT_EQ(1U, observer().emit_count());
   observer().DiscardContent(contents1());
-  task_runner()->FastForwardBy(base::TimeDelta::FromMinutes(4));
+  task_runner()->FastForwardBy(base::Minutes(4));
   EXPECT_EQ(1U, observer().emit_count());
   EXPECT_FALSE(observer().update_timer_for_testing().IsRunning());
   EXPECT_FALSE(observer().TopMonitoredContent());
diff --git a/chrome/browser/resource_coordinator/usage_clock_unittest.cc b/chrome/browser/resource_coordinator/usage_clock_unittest.cc
index 85c34be..99f41acd 100644
--- a/chrome/browser/resource_coordinator/usage_clock_unittest.cc
+++ b/chrome/browser/resource_coordinator/usage_clock_unittest.cc
@@ -18,7 +18,7 @@
 
   {
     base::SimpleTestTickClock clock;
-    clock.Advance(base::TimeDelta::FromMinutes(42));
+    clock.Advance(base::Minutes(42));
     ScopedSetTickClockForTesting scoped_set_tick_clock_for_testing(&clock);
 
     metrics::DesktopSessionDurationTracker::Initialize();
@@ -33,28 +33,28 @@
     EXPECT_TRUE(usage_clock.IsInUse());
 
     // Verify that time advances when Chrome is in use.
-    clock.Advance(base::TimeDelta::FromMinutes(1));
-    EXPECT_EQ(usage_clock.GetTotalUsageTime(), base::TimeDelta::FromMinutes(1));
-    clock.Advance(base::TimeDelta::FromMinutes(1));
-    EXPECT_EQ(usage_clock.GetTotalUsageTime(), base::TimeDelta::FromMinutes(2));
+    clock.Advance(base::Minutes(1));
+    EXPECT_EQ(usage_clock.GetTotalUsageTime(), base::Minutes(1));
+    clock.Advance(base::Minutes(1));
+    EXPECT_EQ(usage_clock.GetTotalUsageTime(), base::Minutes(2));
 
     // Verify that time is updated when Chrome stops being used.
-    clock.Advance(base::TimeDelta::FromMinutes(1));
+    clock.Advance(base::Minutes(1));
     tracker->OnVisibilityChanged(false, base::TimeDelta());
     EXPECT_FALSE(tracker->in_session());
     EXPECT_FALSE(usage_clock.IsInUse());
-    EXPECT_EQ(usage_clock.GetTotalUsageTime(), base::TimeDelta::FromMinutes(3));
+    EXPECT_EQ(usage_clock.GetTotalUsageTime(), base::Minutes(3));
 
     // Verify that time stays still when Chrome is not in use.
-    clock.Advance(base::TimeDelta::FromMinutes(1));
-    EXPECT_EQ(usage_clock.GetTotalUsageTime(), base::TimeDelta::FromMinutes(3));
+    clock.Advance(base::Minutes(1));
+    EXPECT_EQ(usage_clock.GetTotalUsageTime(), base::Minutes(3));
 
     // Verify that time advances again when Chrome is in use.
     tracker->OnVisibilityChanged(true, base::TimeDelta());
     EXPECT_TRUE(tracker->in_session());
     EXPECT_TRUE(usage_clock.IsInUse());
-    clock.Advance(base::TimeDelta::FromMinutes(1));
-    EXPECT_EQ(usage_clock.GetTotalUsageTime(), base::TimeDelta::FromMinutes(4));
+    clock.Advance(base::Minutes(1));
+    EXPECT_EQ(usage_clock.GetTotalUsageTime(), base::Minutes(4));
   }
 
   // Must be after UsageClock destruction.
diff --git a/chrome/browser/safe_browsing/advanced_protection_status_manager.cc b/chrome/browser/safe_browsing/advanced_protection_status_manager.cc
index c87d4d79..1fbf49f 100644
--- a/chrome/browser/safe_browsing/advanced_protection_status_manager.cc
+++ b/chrome/browser/safe_browsing/advanced_protection_status_manager.cc
@@ -31,10 +31,9 @@
 
 namespace {
 
-const base::TimeDelta kRefreshAdvancedProtectionDelay =
-    base::TimeDelta::FromDays(1);
-const base::TimeDelta kRetryDelay = base::TimeDelta::FromMinutes(5);
-const base::TimeDelta kMinimumRefreshDelay = base::TimeDelta::FromMinutes(1);
+const base::TimeDelta kRefreshAdvancedProtectionDelay = base::Days(1);
+const base::TimeDelta kRetryDelay = base::Minutes(5);
+const base::TimeDelta kMinimumRefreshDelay = base::Minutes(1);
 
 const char kForceTreatUserAsAdvancedProtection[] =
     "safe-browsing-treat-user-as-advanced-protection";
@@ -65,9 +64,8 @@
   is_under_advanced_protection_ = core_info.is_under_advanced_protection;
 
   if (pref_service_->HasPrefPath(prefs::kAdvancedProtectionLastRefreshInUs)) {
-    last_refreshed_ = base::Time::FromDeltaSinceWindowsEpoch(
-        base::TimeDelta::FromMicroseconds(pref_service_->GetInt64(
-            prefs::kAdvancedProtectionLastRefreshInUs)));
+    last_refreshed_ = base::Time::FromDeltaSinceWindowsEpoch(base::Microseconds(
+        pref_service_->GetInt64(prefs::kAdvancedProtectionLastRefreshInUs)));
     if (is_under_advanced_protection_)
       ScheduleNextRefresh();
   } else {
diff --git a/chrome/browser/safe_browsing/advanced_protection_status_manager_unittest.cc b/chrome/browser/safe_browsing/advanced_protection_status_manager_unittest.cc
index 9303eaa..a480e8c 100644
--- a/chrome/browser/safe_browsing/advanced_protection_status_manager_unittest.cc
+++ b/chrome/browser/safe_browsing/advanced_protection_status_manager_unittest.cc
@@ -69,8 +69,7 @@
   void MakeOAuthTokenFetchSucceed(const CoreAccountId& account_id,
                                   bool is_under_advanced_protection) {
     identity_test_env_.WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
-        account_id, "access_token",
-        base::Time::Now() + base::TimeDelta::FromHours(1),
+        account_id, "access_token", base::Time::Now() + base::Hours(1),
         is_under_advanced_protection ? kIdTokenAdvancedProtectionEnabled
                                      : kIdTokenAdvancedProtectionDisabled);
   }
@@ -279,7 +278,7 @@
   // Simulate gets refresh token.
   aps_manager.OnGetIDToken(account_id, kIdTokenAdvancedProtectionEnabled);
   EXPECT_GT(
-      base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromMicroseconds(
+      base::Time::FromDeltaSinceWindowsEpoch(base::Microseconds(
           pref_service_.GetInt64(prefs::kAdvancedProtectionLastRefreshInUs))),
       last_update);
   EXPECT_TRUE(aps_manager.IsRefreshScheduled());
@@ -375,8 +374,7 @@
                                     /* is_under_advanced_protection = */ true);
   base::RunLoop().RunUntilIdle();
 
-  base::Time last_refresh_time =
-      base::Time::Now() - base::TimeDelta::FromDays(1);
+  base::Time last_refresh_time = base::Time::Now() - base::Days(1);
   pref_service_.SetInt64(
       prefs::kAdvancedProtectionLastRefreshInUs,
       last_refresh_time.ToDeltaSinceWindowsEpoch().InMicroseconds());
diff --git a/chrome/browser/safe_browsing/certificate_reporting_service_browsertest.cc b/chrome/browser/safe_browsing/certificate_reporting_service_browsertest.cc
index bc97967a..0f3f8fe 100644
--- a/chrome/browser/safe_browsing/certificate_reporting_service_browsertest.cc
+++ b/chrome/browser/safe_browsing/certificate_reporting_service_browsertest.cc
@@ -459,7 +459,7 @@
   factory()->SetClockForTesting(&clock);
 
   // The service should ignore reports older than 24 hours.
-  factory()->SetQueuedReportTTLForTesting(base::TimeDelta::FromHours(24));
+  factory()->SetQueuedReportTTLForTesting(base::Hours(24));
 
   certificate_reporting_test_utils::SetCertReportingOptIn(
       browser(), certificate_reporting_test_utils::EXTENDED_REPORTING_OPT_IN);
@@ -474,14 +474,14 @@
       ReportExpectation::Failed({{"report0", RetryStatus::NOT_RETRIED}}));
 
   // Advance the clock a bit and trigger another failed report.
-  clock.Advance(base::TimeDelta::FromHours(5));
+  clock.Advance(base::Hours(5));
   SendReport("report1");
   test_helper()->WaitForRequestsDestroyed(
       ReportExpectation::Failed({{"report1", RetryStatus::NOT_RETRIED}}));
 
   // Advance the clock to 20 hours, putting it 25 hours ahead of the reference
   // time. This makes report0 older than 24 hours. report1 is now 20 hours.
-  clock.Advance(base::TimeDelta::FromHours(20));
+  clock.Advance(base::Hours(20));
 
   // Send pending reports. report0 should be discarded since it's too old.
   // report1 should be queued again.
@@ -495,7 +495,7 @@
       ReportExpectation::Failed({{"report2", RetryStatus::NOT_RETRIED}}));
 
   // Advance the clock 5 hours. report1 will now be 25 hours old.
-  clock.Advance(base::TimeDelta::FromHours(5));
+  clock.Advance(base::Hours(5));
 
   // Send pending reports. report1 should be discarded since it's too old.
   // report2 should be queued again.
@@ -505,7 +505,7 @@
 
   // Advance the clock 20 hours again so that report2 is 25 hours old and is
   // older than max age (24 hours).
-  clock.Advance(base::TimeDelta::FromHours(20));
+  clock.Advance(base::Hours(20));
 
   // Send pending reports. report2 should be discarded since it's too old. No
   // other reports remain. If any report is sent, test teardown will catch it.
@@ -543,7 +543,7 @@
 
   // The service should queue a maximum of 3 reports and ignore reports older
   // than 24 hours.
-  factory()->SetQueuedReportTTLForTesting(base::TimeDelta::FromHours(24));
+  factory()->SetQueuedReportTTLForTesting(base::Hours(24));
   factory()->SetMaxQueuedReportCountForTesting(3);
 
   certificate_reporting_test_utils::SetCertReportingOptIn(
@@ -563,13 +563,13 @@
   // report1 is 5 hours after reference time (10 hours old).
   // report2 is 10 hours after reference time (5 hours old).
   // report3 is 15 hours after reference time (0 hours old).
-  clock.Advance(base::TimeDelta::FromHours(5));
+  clock.Advance(base::Hours(5));
   SendReport("report1");
 
-  clock.Advance(base::TimeDelta::FromHours(5));
+  clock.Advance(base::Hours(5));
   SendReport("report2");
 
-  clock.Advance(base::TimeDelta::FromHours(5));
+  clock.Advance(base::Hours(5));
   SendReport("report3");
 
   test_helper()->WaitForRequestsDestroyed(
@@ -595,7 +595,7 @@
   // report1 is 25 hours old.
   // report2 is 20 hours old.
   // report3 is 15 hours old.
-  clock.Advance(base::TimeDelta::FromHours(15));
+  clock.Advance(base::Hours(15));
 
   // Send pending reports. Only reports 2 and 3 should be sent, report 1
   // should be ignored because it's too old.
diff --git a/chrome/browser/safe_browsing/certificate_reporting_service_factory.cc b/chrome/browser/safe_browsing/certificate_reporting_service_factory.cc
index f1fa369..5b4ce28 100644
--- a/chrome/browser/safe_browsing/certificate_reporting_service_factory.cc
+++ b/chrome/browser/safe_browsing/certificate_reporting_service_factory.cc
@@ -82,7 +82,7 @@
       server_public_key_(nullptr),
       server_public_key_version_(0),
       clock_(base::DefaultClock::GetInstance()),
-      queued_report_ttl_(base::TimeDelta::FromSeconds(kMaxReportAgeInSeconds)),
+      queued_report_ttl_(base::Seconds(kMaxReportAgeInSeconds)),
       max_queued_report_count_(kMaxReportCountInQueue),
       service_reset_callback_(base::DoNothing()) {}
 
diff --git a/chrome/browser/safe_browsing/certificate_reporting_service_unittest.cc b/chrome/browser/safe_browsing/certificate_reporting_service_unittest.cc
index 8633321e..cb14714 100644
--- a/chrome/browser/safe_browsing/certificate_reporting_service_unittest.cc
+++ b/chrome/browser/safe_browsing/certificate_reporting_service_unittest.cc
@@ -61,9 +61,8 @@
   std::string cert_der;
   if (!net::x509_util::CreateKeyAndSelfSignedCert(
           "CN=Error", static_cast<uint32_t>(g_serial_number.GetNext()),
-          base::Time::Now() - base::TimeDelta::FromMinutes(5),
-          base::Time::Now() + base::TimeDelta::FromMinutes(5), &unused_key,
-          &cert_der)) {
+          base::Time::Now() - base::Minutes(5),
+          base::Time::Now() + base::Minutes(5), &unused_key, &cert_der)) {
     return nullptr;
   }
   return net::X509Certificate::CreateFromBytes(
@@ -126,7 +125,7 @@
 
   // Add a ten minute old report.
   list.Add(CertificateReportingService::Report(
-      1, base::Time::Now() - base::TimeDelta::FromMinutes(10),
+      1, base::Time::Now() - base::Minutes(10),
       std::string("report1_ten_minutes_old")));
   EXPECT_EQ(1u, list.items().size());
   EXPECT_EQ("report1_ten_minutes_old", list.items()[0].serialized_report);
@@ -134,7 +133,7 @@
   // Add another report. Items are ordered from newest to oldest report by
   // creation time. Oldest is at the end.
   list.Add(CertificateReportingService::Report(
-      2, base::Time::Now() - base::TimeDelta::FromMinutes(5),
+      2, base::Time::Now() - base::Minutes(5),
       std::string("report2_five_minutes_old")));
   EXPECT_EQ(2u, list.items().size());
   EXPECT_EQ("report2_five_minutes_old", list.items()[0].serialized_report);
@@ -150,7 +149,7 @@
   // Adding a report older than the oldest report in the list (report2) is
   // a no-op.
   list.Add(CertificateReportingService::Report(
-      0, base::Time::Now() - base::TimeDelta::FromMinutes(10),
+      0, base::Time::Now() - base::Minutes(10),
       std::string("report0_ten_minutes_old")));
   EXPECT_EQ(2u, list.items().size());
   EXPECT_EQ("report3_zero_minutes_old", list.items()[0].serialized_report);
@@ -232,8 +231,7 @@
   CertificateReportingService::Reporter reporter(
       std::unique_ptr<CertificateErrorReporter>(certificate_error_reporter),
       std::unique_ptr<CertificateReportingService::BoundedReportList>(list),
-      clock.get(), base::TimeDelta::FromSeconds(100),
-      true /* retries_enabled */);
+      clock.get(), base::Seconds(100), true /* retries_enabled */);
   EXPECT_EQ(0u, list->items().size());
   EXPECT_EQ(0u, reporter.inflight_report_count_for_testing());
 
@@ -247,45 +245,45 @@
   CheckReport(list->items()[0], "report1", false, reference_time);
 
   // Sending a second failed report will also put it in the retry list.
-  clock->Advance(base::TimeDelta::FromSeconds(10));
+  clock->Advance(base::Seconds(10));
   reporter.Send(MakeReport("report2"));
   base::RunLoop().RunUntilIdle();
   ASSERT_EQ(2u, list->items().size());
   CheckReport(list->items()[0], "report2", false,
-              reference_time + base::TimeDelta::FromSeconds(10));
+              reference_time + base::Seconds(10));
   CheckReport(list->items()[1], "report1", false, reference_time);
 
   // Sending a third report should remove the first report from the retry list.
-  clock->Advance(base::TimeDelta::FromSeconds(10));
+  clock->Advance(base::Seconds(10));
   reporter.Send(MakeReport("report3"));
   base::RunLoop().RunUntilIdle();
   ASSERT_EQ(2u, list->items().size());
   CheckReport(list->items()[0], "report3", false,
-              reference_time + base::TimeDelta::FromSeconds(20));
+              reference_time + base::Seconds(20));
   CheckReport(list->items()[1], "report2", false,
-              reference_time + base::TimeDelta::FromSeconds(10));
+              reference_time + base::Seconds(10));
 
   // Retry sending all pending reports. All should fail and get added to the
   // retry list again. Report creation time doesn't change for retried reports.
-  clock->Advance(base::TimeDelta::FromSeconds(10));
+  clock->Advance(base::Seconds(10));
   reporter.SendPending();
   base::RunLoop().RunUntilIdle();
   ASSERT_EQ(2u, list->items().size());
   CheckReport(list->items()[0], "report3", true,
-              reference_time + base::TimeDelta::FromSeconds(20));
+              reference_time + base::Seconds(20));
   CheckReport(list->items()[1], "report2", true,
-              reference_time + base::TimeDelta::FromSeconds(10));
+              reference_time + base::Seconds(10));
 
   // Advance the clock to 115 seconds. This makes report3 95 seconds old, and
   // report2 105 seconds old. report2 should be dropped because it's older than
   // max age (100 seconds).
-  clock->SetNow(reference_time + base::TimeDelta::FromSeconds(115));
+  clock->SetNow(reference_time + base::Seconds(115));
   reporter.SendPending();
   EXPECT_EQ(1u, reporter.inflight_report_count_for_testing());
   base::RunLoop().RunUntilIdle();
   ASSERT_EQ(1u, list->items().size());
   CheckReport(list->items()[0], "report3", true,
-              reference_time + base::TimeDelta::FromSeconds(20));
+              reference_time + base::Seconds(20));
 
   // Send pending reports again, this time successfully. There should be no
   // pending reports left.
@@ -294,7 +292,7 @@
   test_url_loader_factory()->AddResponse(kSuccessURL.spec(), "dummy data");
 
   certificate_error_reporter->set_upload_url_for_testing(kSuccessURL);
-  clock->Advance(base::TimeDelta::FromSeconds(1));
+  clock->Advance(base::Seconds(1));
   reporter.SendPending();
   EXPECT_EQ(1u, reporter.inflight_report_count_for_testing());
   base::RunLoop().RunUntilIdle();
@@ -332,8 +330,7 @@
   CertificateReportingService::Reporter reporter(
       std::unique_ptr<CertificateErrorReporter>(certificate_error_reporter),
       std::unique_ptr<CertificateReportingService::BoundedReportList>(list),
-      clock.get(), base::TimeDelta::FromSeconds(100),
-      false /* retries_enabled */);
+      clock.get(), base::Seconds(100), false /* retries_enabled */);
   EXPECT_EQ(0u, list->items().size());
   EXPECT_EQ(0u, reporter.inflight_report_count_for_testing());
 
@@ -346,13 +343,13 @@
   ASSERT_EQ(0u, list->items().size());
 
   // Sending a second failed report will also not put it in the retry list.
-  clock->Advance(base::TimeDelta::FromSeconds(10));
+  clock->Advance(base::Seconds(10));
   reporter.Send("report2");
   base::RunLoop().RunUntilIdle();
   ASSERT_EQ(0u, list->items().size());
 
   // Send pending reports. Nothing should be sent.
-  clock->Advance(base::TimeDelta::FromSeconds(10));
+  clock->Advance(base::Seconds(10));
   reporter.SendPending();
   base::RunLoop().RunUntilIdle();
   ASSERT_EQ(0u, list->items().size());
@@ -384,7 +381,7 @@
         sb_service_.get(), test_helper_, &profile_,
         test_helper_->server_public_key(),
         test_helper_->server_public_key_version(), kMaxReportCountInQueue,
-        base::TimeDelta::FromHours(24), clock_.get(),
+        base::Hours(24), clock_.get(),
         base::BindRepeating(
             &CertificateReportingServiceObserver::OnServiceReset,
             base::Unretained(&service_observer_)));
@@ -595,7 +592,7 @@
 
   // Send a report, then advance the clock and send another report.
   service()->Send(MakeReport("report0"));
-  AdvanceClock(base::TimeDelta::FromHours(5));
+  AdvanceClock(base::Hours(5));
   service()->Send(MakeReport("report1"));
   test_helper()->WaitForRequestsDestroyed(
       ReportExpectation::Failed({{"report0", RetryStatus::NOT_RETRIED},
@@ -604,7 +601,7 @@
   // Advance the clock to 20 hours, putting it 25 hours ahead of the reference
   // time. This makes the report0 older than max age (24 hours). The report1 is
   // now 20 hours old.
-  AdvanceClock(base::TimeDelta::FromHours(20));
+  AdvanceClock(base::Hours(20));
 
   // Need this to ensure the pending reports are queued.
   WaitForNoReports();
@@ -621,7 +618,7 @@
       ReportExpectation::Failed({{"report2", RetryStatus::NOT_RETRIED}}));
 
   // Advance the clock 5 hours. The report1 will now be 25 hours old.
-  AdvanceClock(base::TimeDelta::FromHours(5));
+  AdvanceClock(base::Hours(5));
 
   // Need this to ensure the pending reports are queued.
   WaitForNoReports();
@@ -634,7 +631,7 @@
 
   // Advance the clock 20 hours again so that report2 is 25 hours old and is
   // older than max age (24 hours)
-  AdvanceClock(base::TimeDelta::FromHours(20));
+  AdvanceClock(base::Hours(20));
 
   // Need this to ensure the pending reports are queued.
   WaitForNoReports();
@@ -667,13 +664,13 @@
   // report3 is 15 hours after reference time (0 hours old).
   service()->Send(MakeReport("report0"));
 
-  AdvanceClock(base::TimeDelta::FromHours(5));
+  AdvanceClock(base::Hours(5));
   service()->Send(MakeReport("report1"));
 
-  AdvanceClock(base::TimeDelta::FromHours(5));
+  AdvanceClock(base::Hours(5));
   service()->Send(MakeReport("report2"));
 
-  AdvanceClock(base::TimeDelta::FromHours(5));
+  AdvanceClock(base::Hours(5));
   service()->Send(MakeReport("report3"));
   test_helper()->WaitForRequestsDestroyed(
       ReportExpectation::Failed({{"report0", RetryStatus::NOT_RETRIED},
@@ -702,7 +699,7 @@
   // report1 is 25 hours old.
   // report2 is 20 hours old.
   // report3 is 15 hours old.
-  AdvanceClock(base::TimeDelta::FromHours(15));
+  AdvanceClock(base::Hours(15));
 
   // Need this to ensure the pending reports are queued.
   WaitForNoReports();
diff --git a/chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_controller_impl_win.cc b/chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_controller_impl_win.cc
index 346c9e7..679b22df 100644
--- a/chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_controller_impl_win.cc
+++ b/chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_controller_impl_win.cc
@@ -697,8 +697,7 @@
       DCHECK(!time_cleanup_started_.is_null());
       UMA_HISTOGRAM_CUSTOM_TIMES("SoftwareReporter.Cleaner.CleaningTime",
                                  base::Time::Now() - time_cleanup_started_,
-                                 base::TimeDelta::FromMilliseconds(1),
-                                 base::TimeDelta::FromHours(5), 100);
+                                 base::Milliseconds(1), base::Hours(5), 100);
     }
 
     if (process_status.exit_code == kRebootRequiredExitCode) {
diff --git a/chrome/browser/safe_browsing/chrome_cleaner/reporter_runner_browsertest_win.cc b/chrome/browser/safe_browsing/chrome_cleaner/reporter_runner_browsertest_win.cc
index 9a312f71..f723e631 100644
--- a/chrome/browser/safe_browsing/chrome_cleaner/reporter_runner_browsertest_win.cc
+++ b/chrome/browser/safe_browsing/chrome_cleaner/reporter_runner_browsertest_win.cc
@@ -235,8 +235,7 @@
   void SetUpOnMainThread() override {
     // SetDateInLocalState calculates a time as Now() minus an offset. Move the
     // simulated clock ahead far enough that this calculation won't underflow.
-    FastForwardBy(
-        base::TimeDelta::FromDays(kDaysBetweenSuccessfulSwReporterRuns * 2));
+    FastForwardBy(base::Days(kDaysBetweenSuccessfulSwReporterRuns * 2));
 
     ClearLastTimeSentReport();
 
@@ -345,8 +344,7 @@
   // Sets |path| in the local state to a date corresponding to |days| days ago.
   void SetDateInLocalState(const std::string& path, int days) {
     PrefService* local_state = g_browser_process->local_state();
-    local_state->SetInt64(
-        path, (Now() - base::TimeDelta::FromDays(days)).ToInternalValue());
+    local_state->SetInt64(path, (Now() - base::Days(days)).ToInternalValue());
   }
 
   // Sets local state for last time the software reporter ran to |days| days
@@ -421,7 +419,7 @@
 
     // Checks if the last time sent logs is set as no more than one hour ago,
     // which should be enough time if the execution does not fail.
-    EXPECT_LT(now - base::TimeDelta::FromHours(1), last_time_sent_logs);
+    EXPECT_LT(now - base::Hours(1), last_time_sent_logs);
     EXPECT_GE(now, last_time_sent_logs);
   }
 
@@ -697,8 +695,7 @@
   // Schedule a launch with 2 invocations, then another with the same 2.
   {
     SCOPED_TRACE("Launch 2 times with retry");
-    FastForwardBy(
-        base::TimeDelta::FromDays(kDaysBetweenSuccessfulSwReporterRuns));
+    FastForwardBy(base::Days(kDaysBetweenSuccessfulSwReporterRuns));
     RunReporterQueueAndWait(chrome_cleaner::kSwReporterNothingFound,
                             SwReporterInvocationResult::kNothingFound,
                             invocations);
@@ -722,7 +719,7 @@
 
   {
     SCOPED_TRACE("Attempt to launch after a few days");
-    FastForwardBy(base::TimeDelta::FromDays(kAFewDays));
+    FastForwardBy(base::Days(kAFewDays));
     if (IsUserInitiated(invocation_type_)) {
       RunReporterQueueAndWait(chrome_cleaner::kSwReporterNothingFound,
                               SwReporterInvocationResult::kNothingFound,
@@ -735,8 +732,7 @@
       ExpectReporterLaunches({}, /*expect_prompt=*/false);
     }
 
-    FastForwardBy(base::TimeDelta::FromDays(
-        kDaysBetweenSuccessfulSwReporterRuns - kAFewDays));
+    FastForwardBy(base::Days(kDaysBetweenSuccessfulSwReporterRuns - kAFewDays));
     RunReporterQueueAndWait(chrome_cleaner::kSwReporterNothingFound,
                             SwReporterInvocationResult::kNothingFound,
                             invocations);
@@ -746,8 +742,7 @@
   // Second launch should not occur after a failure.
   {
     SCOPED_TRACE("Launch multiple times with failure");
-    FastForwardBy(
-        base::TimeDelta::FromDays(kDaysBetweenSuccessfulSwReporterRuns));
+    FastForwardBy(base::Days(kDaysBetweenSuccessfulSwReporterRuns));
     RunReporterQueueAndWait(kReporterNotLaunchedExitCode,
                             SwReporterInvocationResult::kProcessFailedToLaunch,
                             invocations);
diff --git a/chrome/browser/safe_browsing/chrome_cleaner/reporter_runner_win.cc b/chrome/browser/safe_browsing/chrome_cleaner/reporter_runner_win.cc
index 07f1e8ef..13a7294 100644
--- a/chrome/browser/safe_browsing/chrome_cleaner/reporter_runner_win.cc
+++ b/chrome/browser/safe_browsing/chrome_cleaner/reporter_runner_win.cc
@@ -319,9 +319,9 @@
   void RecordLongTimesHistogram(const std::string& name,
                                 const base::TimeDelta& sample) const {
     // See UMA_HISTOGRAM_LONG_TIMES for the parameters to |FactoryTimeGet|.
-    auto* histogram = base::Histogram::FactoryTimeGet(
-        FullName(name), base::TimeDelta::FromMilliseconds(1),
-        base::TimeDelta::FromHours(1), 100, kUmaHistogramFlag);
+    auto* histogram =
+        base::Histogram::FactoryTimeGet(FullName(name), base::Milliseconds(1),
+                                        base::Hours(1), 100, kUmaHistogramFlag);
     if (histogram)
       histogram->AddTime(sample);
   }
@@ -499,12 +499,11 @@
       base::Time now = Now();
       if (local_state->HasPrefPath(prefs::kSwReporterLastTimeTriggered)) {
         base::Time last_time_triggered =
-            base::Time() +
-            base::TimeDelta::FromMicroseconds(
-                local_state->GetInt64(prefs::kSwReporterLastTimeTriggered));
+            base::Time() + base::Microseconds(local_state->GetInt64(
+                               prefs::kSwReporterLastTimeTriggered));
         base::Time next_trigger =
             last_time_triggered +
-            base::TimeDelta::FromDays(kDaysBetweenSuccessfulSwReporterRuns);
+            base::Days(kDaysBetweenSuccessfulSwReporterRuns);
         should_run_ = next_trigger <= now || last_time_triggered > now;
       } else {
         should_run_ = true;
@@ -512,12 +511,10 @@
 
       if (local_state->HasPrefPath(prefs::kSwReporterLastTimeSentReport)) {
         base::Time last_time_sent_logs =
-            base::Time() +
-            base::TimeDelta::FromMicroseconds(
-                local_state->GetInt64(prefs::kSwReporterLastTimeSentReport));
+            base::Time() + base::Microseconds(local_state->GetInt64(
+                               prefs::kSwReporterLastTimeSentReport));
         base::Time next_time_send_logs =
-            last_time_sent_logs +
-            base::TimeDelta::FromDays(kDaysBetweenReporterLogsSent);
+            last_time_sent_logs + base::Days(kDaysBetweenReporterLogsSent);
         in_logs_upload_period_ =
             next_time_send_logs <= now || last_time_sent_logs > now;
       } else {
@@ -617,8 +614,7 @@
     // QueryUnbiasedInterruptTime returns units of 100 nanoseconds. See
     // https://docs.microsoft.com/en-us/windows/win32/api/realtimeapiset/nf-realtimeapiset-queryunbiasedinterrupttime
     base::TimeDelta running_time_without_sleep =
-        base::TimeDelta::FromNanoseconds(
-            100 * (now_without_sleep - start_time_without_sleep));
+        base::Nanoseconds(100 * (now_without_sleep - start_time_without_sleep));
 
     // Tries to run the next invocation in the queue.
     if (!invocations_.container().empty()) {
diff --git a/chrome/browser/safe_browsing/chrome_password_protection_service.cc b/chrome/browser/safe_browsing/chrome_password_protection_service.cc
index c824124..a6e5617 100644
--- a/chrome/browser/safe_browsing/chrome_password_protection_service.cc
+++ b/chrome/browser/safe_browsing/chrome_password_protection_service.cc
@@ -316,10 +316,10 @@
     // Bound it between 1 min and 28 days. Handles clock-resets.  We wait
     // 1 min to not slowdown browser-startup, and to improve the
     // probability that the sync system is initialized.
-    base::TimeDelta min_delay = base::TimeDelta::FromMinutes(1);
+    base::TimeDelta min_delay = base::Minutes(1);
     base::TimeDelta max_delay =
-        base::TimeDelta::FromDays(kPasswordCaptureEventLogFreqDaysMin +
-                                  kPasswordCaptureEventLogFreqDaysExtra);
+        base::Days(kPasswordCaptureEventLogFreqDaysMin +
+                   kPasswordCaptureEventLogFreqDaysExtra);
     if (delay < min_delay)
       delay = min_delay;
     else if (delay > max_delay)
@@ -628,7 +628,7 @@
   // take care of whether report should be sent.
   trigger_manager_->FinishCollectingThreatDetails(
       safe_browsing::TriggerType::GAIA_PASSWORD_REUSE, web_contents,
-      base::TimeDelta::FromMilliseconds(0), did_proceed, /*num_visit=*/0,
+      base::Milliseconds(0), did_proceed, /*num_visit=*/0,
       TriggerManager::GetSBErrorDisplayOptions(*profile_->GetPrefs(),
                                                web_contents));
 }
@@ -1283,9 +1283,9 @@
 
   // Set a timer to log it again in 24-28 days. Spread it to avoid hammering the
   // backend with fixed cycle after this code lands in Stable.
-  base::TimeDelta delay = base::TimeDelta::FromDays(
-      (kPasswordCaptureEventLogFreqDaysMin +
-       base::RandInt(0, kPasswordCaptureEventLogFreqDaysExtra)));
+  base::TimeDelta delay =
+      base::Days((kPasswordCaptureEventLogFreqDaysMin +
+                  base::RandInt(0, kPasswordCaptureEventLogFreqDaysExtra)));
   SetLogPasswordCaptureTimer(delay);
 
   // Write the deadline to a pref to carry over restarts.
diff --git a/chrome/browser/safe_browsing/chrome_password_protection_service_unittest.cc b/chrome/browser/safe_browsing/chrome_password_protection_service_unittest.cc
index 0c451c3ce..a6330ec 100644
--- a/chrome/browser/safe_browsing/chrome_password_protection_service_unittest.cc
+++ b/chrome/browser/safe_browsing/chrome_password_protection_service_unittest.cc
@@ -852,7 +852,7 @@
 TEST_F(ChromePasswordProtectionServiceTest,
        VerifyPasswordCaptureEventScheduledFromPref) {
   // Pick a delay and store the deadline in the pref
-  base::TimeDelta delay = base::TimeDelta::FromDays(13);
+  base::TimeDelta delay = base::Days(13);
   SetDelayInPref(profile()->GetPrefs(),
                  prefs::kSafeBrowsingNextPasswordCaptureEventLogTime, delay);
 
diff --git a/chrome/browser/safe_browsing/client_side_detection_host_unittest.cc b/chrome/browser/safe_browsing/client_side_detection_host_unittest.cc
index 16764eea..5ce3c19 100644
--- a/chrome/browser/safe_browsing/client_side_detection_host_unittest.cc
+++ b/chrome/browser/safe_browsing/client_side_detection_host_unittest.cc
@@ -1221,7 +1221,7 @@
                                 &kFalse, &kFalse);
   NavigateAndCommit(url);
   WaitAndCheckPreClassificationChecks();
-  const base::TimeDelta duration = base::TimeDelta::FromMilliseconds(10);
+  const base::TimeDelta duration = base::Milliseconds(10);
   AdvanceTimeTickClock(duration);
 
   PhishingDetectionDone(verdict.SerializeAsString());
diff --git a/chrome/browser/safe_browsing/client_side_detection_service_unittest.cc b/chrome/browser/safe_browsing/client_side_detection_service_unittest.cc
index f228221..e694e72 100644
--- a/chrome/browser/safe_browsing/client_side_detection_service_unittest.cc
+++ b/chrome/browser/safe_browsing/client_side_detection_service_unittest.cc
@@ -126,30 +126,29 @@
 
     base::Time now = base::Time::Now();
     base::Time time =
-        now - base::TimeDelta::FromDays(
-            ClientSideDetectionService::kNegativeCacheIntervalDays) +
-        base::TimeDelta::FromMinutes(5);
+        now -
+        base::Days(ClientSideDetectionService::kNegativeCacheIntervalDays) +
+        base::Minutes(5);
     cache[GURL("http://first.url.com/")] =
         std::make_unique<ClientSideDetectionService::CacheState>(false, time);
 
-    time =
-        now - base::TimeDelta::FromDays(
-            ClientSideDetectionService::kNegativeCacheIntervalDays) -
-        base::TimeDelta::FromHours(1);
+    time = now -
+           base::Days(ClientSideDetectionService::kNegativeCacheIntervalDays) -
+           base::Hours(1);
     cache[GURL("http://second.url.com/")] =
         std::make_unique<ClientSideDetectionService::CacheState>(false, time);
 
-    time =
-        now - base::TimeDelta::FromMinutes(
-            ClientSideDetectionService::kPositiveCacheIntervalMinutes) -
-        base::TimeDelta::FromMinutes(5);
+    time = now -
+           base::Minutes(
+               ClientSideDetectionService::kPositiveCacheIntervalMinutes) -
+           base::Minutes(5);
     cache[GURL("http://third.url.com/")] =
         std::make_unique<ClientSideDetectionService::CacheState>(true, time);
 
-    time =
-        now - base::TimeDelta::FromMinutes(
-            ClientSideDetectionService::kPositiveCacheIntervalMinutes) +
-        base::TimeDelta::FromMinutes(5);
+    time = now -
+           base::Minutes(
+               ClientSideDetectionService::kPositiveCacheIntervalMinutes) +
+           base::Minutes(5);
     cache[GURL("http://fourth.url.com/")] =
         std::make_unique<ClientSideDetectionService::CacheState>(true, time);
 
@@ -328,7 +327,7 @@
       std::make_unique<ChromeClientSideDetectionServiceDelegate>(profile_));
 
   base::Time now = base::Time::Now();
-  base::TimeDelta twenty_five_hours = base::TimeDelta::FromHours(25);
+  base::TimeDelta twenty_five_hours = base::Hours(25);
   csd_service_->AddPhishingReport(now - twenty_five_hours);
   csd_service_->AddPhishingReport(now - twenty_five_hours);
   csd_service_->AddPhishingReport(now);
diff --git a/chrome/browser/safe_browsing/cloud_content_scanning/binary_fcm_service.h b/chrome/browser/safe_browsing/cloud_content_scanning/binary_fcm_service.h
index c3daed4..e31799e 100644
--- a/chrome/browser/safe_browsing/cloud_content_scanning/binary_fcm_service.h
+++ b/chrome/browser/safe_browsing/cloud_content_scanning/binary_fcm_service.h
@@ -119,8 +119,7 @@
 
   // Delay between attempts to dequeue pending operations. Not constant so we
   // can override it in tests.
-  base::TimeDelta delay_between_pending_attempts_ =
-      base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delay_between_pending_attempts_ = base::Seconds(1);
 
   base::flat_map<std::string, OnMessageCallback> message_token_map_;
 
diff --git a/chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service.cc b/chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service.cc
index 1f88753..ffbb2b1 100644
--- a/chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service.cc
+++ b/chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service.cc
@@ -328,7 +328,7 @@
                      weakptr_factory_.GetWeakPtr(), raw_request));
   active_timers_[raw_request] = std::make_unique<base::OneShotTimer>();
   active_timers_[raw_request]->Start(
-      FROM_HERE, base::TimeDelta::FromSeconds(kScanningTimeoutSeconds),
+      FROM_HERE, base::Seconds(kScanningTimeoutSeconds),
       base::BindOnce(&BinaryUploadService::OnTimeout,
                      weakptr_factory_.GetWeakPtr(), raw_request));
 }
@@ -346,9 +346,8 @@
 
   base::UmaHistogramCustomTimes(
       "SafeBrowsingBinaryUploadRequest.TimeToGetFCMToken",
-      base::TimeTicks::Now() - start_times_[request],
-      base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromMinutes(6),
-      50);
+      base::TimeTicks::Now() - start_times_[request], base::Milliseconds(1),
+      base::Minutes(6), 50);
 
   request->set_fcm_token(instance_id);
   request->GetRequestData(base::BindOnce(&BinaryUploadService::OnGetRequestData,
@@ -551,8 +550,7 @@
                                 result);
   base::UmaHistogramCustomTimes("SafeBrowsingBinaryUploadRequest.Duration",
                                 base::TimeTicks::Now() - start_times_[request],
-                                base::TimeDelta::FromMilliseconds(1),
-                                base::TimeDelta::FromMinutes(6), 50);
+                                base::Milliseconds(1), base::Minutes(6), 50);
 }
 
 void BinaryUploadService::RecordRequestMetrics(
@@ -767,7 +765,7 @@
   // order to invalidate the authorization every 24 hours.
   if (!timer_.IsRunning()) {
     timer_.Start(
-        FROM_HERE, base::TimeDelta::FromHours(24),
+        FROM_HERE, base::Hours(24),
         base::BindRepeating(&BinaryUploadService::ResetAuthorizationData,
                             weakptr_factory_.GetWeakPtr(), url));
   }
diff --git a/chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service_unittest.cc b/chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service_unittest.cc
index 430ea18..8ae237e 100644
--- a/chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service_unittest.cc
+++ b/chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service_unittest.cc
@@ -220,14 +220,12 @@
 
   void ValidateAuthorizationTimerIdle() {
     EXPECT_FALSE(service_->timer_.IsRunning());
-    EXPECT_EQ(base::TimeDelta::FromHours(0),
-              service_->timer_.GetCurrentDelay());
+    EXPECT_EQ(base::Hours(0), service_->timer_.GetCurrentDelay());
   }
 
   void ValidateAuthorizationTimerStarted() {
     EXPECT_TRUE(service_->timer_.IsRunning());
-    EXPECT_EQ(base::TimeDelta::FromHours(24),
-              service_->timer_.GetCurrentDelay());
+    EXPECT_EQ(base::Hours(24), service_->timer_.GetCurrentDelay());
   }
 
  protected:
@@ -378,7 +376,7 @@
   ExpectNetworkResponse(true, enterprise_connectors::ContentAnalysisResponse());
   UploadForDeepScanning(std::move(request));
   content::RunAllTasksUntilIdle();
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(300));
+  task_environment_.FastForwardBy(base::Seconds(300));
 
   EXPECT_EQ(scanning_result, BinaryUploadService::Result::TIMEOUT);
 }
@@ -403,7 +401,7 @@
   ExpectNetworkResponse(true, enterprise_connectors::ContentAnalysisResponse());
   UploadForDeepScanning(std::move(request));
   content::RunAllTasksUntilIdle();
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(300));
+  task_environment_.FastForwardBy(base::Seconds(300));
 
   EXPECT_EQ(scanning_result, BinaryUploadService::Result::TIMEOUT);
 
@@ -432,7 +430,7 @@
   ExpectNetworkResponse(true, enterprise_connectors::ContentAnalysisResponse());
   service_->MaybeUploadForDeepScanning(std::move(request));
   content::RunAllTasksUntilIdle();
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(300));
+  task_environment_.FastForwardBy(base::Seconds(300));
 
   // The auth request timing out means that the result for the real request is
   // UNAUTHORIZED.
@@ -458,7 +456,7 @@
   MockRequest* raw_request = request.get();
   UploadForDeepScanning(std::move(request));
   content::RunAllTasksUntilIdle();
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(300));
+  task_environment_.FastForwardBy(base::Seconds(300));
   EXPECT_EQ(scanning_result, BinaryUploadService::Result::TIMEOUT);
 
   // Expect nothing to change if the upload finishes after the timeout.
@@ -481,7 +479,7 @@
   MockRequest* raw_request = request.get();
   UploadForDeepScanning(std::move(request));
   content::RunAllTasksUntilIdle();
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(300));
+  task_environment_.FastForwardBy(base::Seconds(300));
   EXPECT_EQ(scanning_result, BinaryUploadService::Result::TIMEOUT);
 
   // Expect nothing to change if we get a message after the timeout.
diff --git a/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_browsertest_base.cc b/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_browsertest_base.cc
index d098544..2882de9 100644
--- a/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_browsertest_base.cc
+++ b/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_browsertest_base.cc
@@ -23,10 +23,8 @@
 
 constexpr char kDmToken[] = "dm_token";
 
-constexpr base::TimeDelta kMinimumPendingDelay =
-    base::TimeDelta::FromMilliseconds(400);
-constexpr base::TimeDelta kSuccessTimeout =
-    base::TimeDelta::FromMilliseconds(100);
+constexpr base::TimeDelta kMinimumPendingDelay = base::Milliseconds(400);
+constexpr base::TimeDelta kSuccessTimeout = base::Milliseconds(100);
 
 class UnresponsiveContentAnalysisDelegate
     : public enterprise_connectors::FakeContentAnalysisDelegate {
diff --git a/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_utils.cc b/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_utils.cc
index 1a1356b..62b6653 100644
--- a/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_utils.cc
+++ b/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_utils.cc
@@ -294,12 +294,11 @@
   // in order to be lenient and avoid having lots of data in the overlow bucket.
   base::UmaHistogramCustomTimes("SafeBrowsing.DeepScan." + access_point_string +
                                     "." + result + ".Duration",
-                                duration, base::TimeDelta::FromMilliseconds(1),
-                                base::TimeDelta::FromMinutes(30), 50);
+                                duration, base::Milliseconds(1),
+                                base::Minutes(30), 50);
   base::UmaHistogramCustomTimes(
       "SafeBrowsing.DeepScan." + access_point_string + ".Duration", duration,
-      base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromMinutes(30),
-      50);
+      base::Milliseconds(1), base::Minutes(30), 50);
 }
 
 const std::array<const base::FilePath::CharType*, 26>& SupportedDlpFileTypes() {
diff --git a/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_utils_unittest.cc b/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_utils_unittest.cc
index 364e087..19c5ec3 100644
--- a/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_utils_unittest.cc
+++ b/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_utils_unittest.cc
@@ -32,9 +32,9 @@
 
 constexpr int64_t kTotalBytes = 1000;
 
-constexpr base::TimeDelta kDuration = base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kDuration = base::Seconds(10);
 
-constexpr base::TimeDelta kInvalidDuration = base::TimeDelta::FromSeconds(0);
+constexpr base::TimeDelta kInvalidDuration = base::Seconds(0);
 
 }  // namespace
 
diff --git a/chrome/browser/safe_browsing/cloud_content_scanning/multipart_data_pipe_getter.cc b/chrome/browser/safe_browsing/cloud_content_scanning/multipart_data_pipe_getter.cc
index 51f02079..6902dab 100644
--- a/chrome/browser/safe_browsing/cloud_content_scanning/multipart_data_pipe_getter.cc
+++ b/chrome/browser/safe_browsing/cloud_content_scanning/multipart_data_pipe_getter.cc
@@ -118,9 +118,8 @@
   if (write_position_ == FullSize()) {
     base::TimeDelta write_duration = base::TimeTicks::Now() - write_start_time_;
     base::UmaHistogramCustomTimes("Enterprise.MultipartDataPipe.WriteDuration",
-                                  write_duration,
-                                  base::TimeDelta::FromMilliseconds(1),
-                                  base::TimeDelta::FromMinutes(5), 50);
+                                  write_duration, base::Milliseconds(1),
+                                  base::Minutes(5), 50);
     int64_t bps =
         (1000 * FullSize()) /
         std::max(1, static_cast<int>(write_duration.InMilliseconds()));
diff --git a/chrome/browser/safe_browsing/cloud_content_scanning/multipart_uploader.cc b/chrome/browser/safe_browsing/cloud_content_scanning/multipart_uploader.cc
index a4133f8..749162dd 100644
--- a/chrome/browser/safe_browsing/cloud_content_scanning/multipart_uploader.cc
+++ b/chrome/browser/safe_browsing/cloud_content_scanning/multipart_uploader.cc
@@ -67,7 +67,7 @@
       data_(data),
       boundary_(net::GenerateMimeMultipartBoundary()),
       callback_(std::move(callback)),
-      current_backoff_(base::TimeDelta::FromSeconds(kInitialBackoffSeconds)),
+      current_backoff_(base::Seconds(kInitialBackoffSeconds)),
       retry_count_(0),
       url_loader_factory_(url_loader_factory),
       traffic_annotation_(traffic_annotation) {
@@ -86,7 +86,7 @@
       path_(path),
       boundary_(net::GenerateMimeMultipartBoundary()),
       callback_(std::move(callback)),
-      current_backoff_(base::TimeDelta::FromSeconds(kInitialBackoffSeconds)),
+      current_backoff_(base::Seconds(kInitialBackoffSeconds)),
       retry_count_(0),
       url_loader_factory_(url_loader_factory),
       traffic_annotation_(traffic_annotation) {
diff --git a/chrome/browser/safe_browsing/download_protection/check_client_download_request_base.cc b/chrome/browser/safe_browsing/download_protection/check_client_download_request_base.cc
index d3b3bc4..d327ee8 100644
--- a/chrome/browser/safe_browsing/download_protection/check_client_download_request_base.cc
+++ b/chrome/browser/safe_browsing/download_protection/check_client_download_request_base.cc
@@ -364,8 +364,7 @@
       DownloadCheckResult::UNKNOWN, REASON_REQUEST_CANCELED));
   content::GetUIThreadTaskRunner({})->PostDelayedTask(
       FROM_HERE, timeout_closure_.callback(),
-      base::TimeDelta::FromMilliseconds(
-          service_->download_request_timeout_ms()));
+      base::Milliseconds(service_->download_request_timeout_ms()));
 }
 
 void CheckClientDownloadRequestBase::OnCertificateAllowlistCheckDone(
diff --git a/chrome/browser/safe_browsing/download_protection/ppapi_download_request.cc b/chrome/browser/safe_browsing/download_protection/ppapi_download_request.cc
index 8716038..8b37f98 100644
--- a/chrome/browser/safe_browsing/download_protection/ppapi_download_request.cc
+++ b/chrome/browser/safe_browsing/download_protection/ppapi_download_request.cc
@@ -120,8 +120,7 @@
       FROM_HERE,
       base::BindOnce(&PPAPIDownloadRequest::OnRequestTimedOut,
                      weakptr_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(
-          service_->download_request_timeout_ms()));
+      base::Milliseconds(service_->download_request_timeout_ms()));
 
   content::GetIOThreadTaskRunner({})->PostTask(
       FROM_HERE,
diff --git a/chrome/browser/safe_browsing/incident_reporting/binary_integrity_analyzer.cc b/chrome/browser/safe_browsing/incident_reporting/binary_integrity_analyzer.cc
index 1ee647c..911f612 100644
--- a/chrome/browser/safe_browsing/incident_reporting/binary_integrity_analyzer.cc
+++ b/chrome/browser/safe_browsing/incident_reporting/binary_integrity_analyzer.cc
@@ -30,8 +30,7 @@
   base::HistogramBase* signature_verification_time_histogram =
       base::Histogram::FactoryTimeGet(
           std::string(kHistogramName) + base::NumberToString(file_index),
-          base::TimeDelta::FromMilliseconds(1),
-          base::TimeDelta::FromSeconds(20), 50,
+          base::Milliseconds(1), base::Seconds(20), 50,
           base::Histogram::kUmaTargetedHistogramFlag);
 
   signature_verification_time_histogram->AddTime(verification_time);
diff --git a/chrome/browser/safe_browsing/incident_reporting/extension_data_collection_unittest.cc b/chrome/browser/safe_browsing/incident_reporting/extension_data_collection_unittest.cc
index 2ac548c..497d538 100644
--- a/chrome/browser/safe_browsing/incident_reporting/extension_data_collection_unittest.cc
+++ b/chrome/browser/safe_browsing/incident_reporting/extension_data_collection_unittest.cc
@@ -276,15 +276,15 @@
 TEST_F(ExtensionDataCollectionTest, CollectsLastInstalledExtension) {
   std::string extension_id = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
   std::string extension_name = "extension_2";
-  base::Time install_time = base::Time::Now() - base::TimeDelta::FromMinutes(3);
+  base::Time install_time = base::Time::Now() - base::Minutes(3);
 
   std::unique_ptr<ExtensionTestingProfile> profile =
       CreateProfile(SAFE_BROWSING_AND_EXTENDED_REPORTING);
   profile->AddExtension("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", "extension_1",
-                        base::Time::Now() - base::TimeDelta::FromDays(2));
+                        base::Time::Now() - base::Days(2));
   profile->AddExtension(extension_id, extension_name, install_time);
   profile->AddExtension("cccccccccccccccccccccccccccccccc", "extension_3",
-                        base::Time::Now() - base::TimeDelta::FromHours(4));
+                        base::Time::Now() - base::Hours(4));
 
   ClientIncidentReport_ExtensionData data;
   CollectExtensionData(&data);
@@ -306,13 +306,13 @@
       CreateProfile(SAFE_BROWSING_AND_EXTENDED_REPORTING);
 
   profile->AddExtension(extension_id, extension_name,
-                        base::Time::Now() - base::TimeDelta::FromDays(3));
+                        base::Time::Now() - base::Days(3));
 
   std::unique_ptr<ExtensionTestingProfile> profile_without_safe_browsing =
       CreateProfile(SAFE_BROWSING_ONLY);
   profile_without_safe_browsing->AddExtension(
       "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", "extension_1",
-      base::Time::Now() - base::TimeDelta::FromDays(2));
+      base::Time::Now() - base::Days(2));
 
   ClientIncidentReport_ExtensionData data;
   CollectExtensionData(&data);
diff --git a/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc b/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc
index d2f84d90d..b7d82bc4 100644
--- a/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc
+++ b/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc
@@ -317,10 +317,9 @@
 
 IncidentReportingService::IncidentReportingService(
     SafeBrowsingService* safe_browsing_service)
-    : IncidentReportingService(
-          safe_browsing_service,
-          base::TimeDelta::FromMilliseconds(kDefaultCallbackIntervalMs),
-          GetBackgroundTaskRunner()) {
+    : IncidentReportingService(safe_browsing_service,
+                               base::Milliseconds(kDefaultCallbackIntervalMs),
+                               GetBackgroundTaskRunner()) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
   DownloadProtectionService* download_protection_service =
       (safe_browsing_service
@@ -400,7 +399,7 @@
       collect_environment_data_fn_(&CollectEnvironmentData),
       environment_collection_task_runner_(GetBackgroundTaskRunner()),
       collation_timer_(FROM_HERE,
-                       base::TimeDelta::FromMilliseconds(kDefaultUploadDelayMs),
+                       base::Milliseconds(kDefaultUploadDelayMs),
                        this,
                        &IncidentReportingService::OnCollationTimeout),
       delayed_analysis_callbacks_(delayed_task_interval, delayed_task_runner) {
diff --git a/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service_unittest.cc b/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service_unittest.cc
index 9c704868..b5dffd9 100644
--- a/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service_unittest.cc
+++ b/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service_unittest.cc
@@ -76,9 +76,7 @@
         const CollectEnvironmentCallback& collect_environment_callback,
         const CreateDownloadFinderCallback& create_download_finder_callback,
         const StartUploadCallback& start_upload_callback)
-        : IncidentReportingService(nullptr,
-                                   base::TimeDelta::FromMilliseconds(5),
-                                   task_runner),
+        : IncidentReportingService(nullptr, base::Milliseconds(5), task_runner),
           pre_profile_add_callback_(pre_profile_add_callback),
           collect_environment_callback_(collect_environment_callback),
           create_download_finder_callback_(create_download_finder_callback),
diff --git a/chrome/browser/safe_browsing/incident_reporting/last_download_finder_unittest.cc b/chrome/browser/safe_browsing/incident_reporting/last_download_finder_unittest.cc
index e30398b..d9e68d2 100644
--- a/chrome/browser/safe_browsing/incident_reporting/last_download_finder_unittest.cc
+++ b/chrome/browser/safe_browsing/incident_reporting/last_download_finder_unittest.cc
@@ -249,8 +249,8 @@
     row.tab_referrer_url = GURL("http://tab-referrer.example.com/");
     row.mime_type = "application/octet-stream";
     row.original_mime_type = "application/octet-stream";
-    row.start_time = now - base::TimeDelta::FromMinutes(10);
-    row.end_time = now - base::TimeDelta::FromMinutes(9);
+    row.start_time = now - base::Minutes(10);
+    row.end_time = now - base::Minutes(9);
     row.received_bytes = 47;
     row.total_bytes = 47;
     row.state = history::DownloadState::COMPLETE;
@@ -260,7 +260,7 @@
     row.id = download_id_++;
     row.guid = base::GenerateGUID();
     row.opened = false;
-    row.last_access_time = now - base::TimeDelta::FromMinutes(5);
+    row.last_access_time = now - base::Minutes(5);
     row.transient = false;
 
     return row;
diff --git a/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc b/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc
index 56db7e1..8e5ff240 100644
--- a/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc
+++ b/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc
@@ -2095,7 +2095,7 @@
   ASSERT_TRUE(observer);
   clock.SetNow(observer->GetCreationTimeForTesting());
   observer->SetClockForTesting(&clock);
-  clock.Advance(base::TimeDelta::FromSeconds(kTimeOnPage));
+  clock.Advance(base::Seconds(kTimeOnPage));
 
   // Type something. An interstitial should be shown.
   EXPECT_TRUE(TypeAndWaitForInterstitial(browser()));
@@ -2111,8 +2111,7 @@
   histograms.ExpectBucketCount(kDelayedWarningsHistogram,
                                DelayedWarningEvent::kWarningShownOnKeypress, 1);
   histograms.ExpectUniqueTimeSample(kDelayedWarningsTimeOnPageHistogram,
-                                    base::TimeDelta::FromSeconds(kTimeOnPage),
-                                    1);
+                                    base::Seconds(kTimeOnPage), 1);
 }
 
 // Same as KeyPress_WarningShown, but user disabled URL elision by enabling
@@ -2136,7 +2135,7 @@
   ASSERT_TRUE(observer);
   clock.SetNow(observer->GetCreationTimeForTesting());
   observer->SetClockForTesting(&clock);
-  clock.Advance(base::TimeDelta::FromSeconds(kTimeOnPage));
+  clock.Advance(base::Seconds(kTimeOnPage));
 
   // Type something. An interstitial should be shown.
   EXPECT_TRUE(TypeAndWaitForInterstitial(browser()));
@@ -2153,7 +2152,7 @@
                                DelayedWarningEvent::kWarningShownOnKeypress, 1);
   histograms.ExpectUniqueTimeSample(
       kDelayedWarningsTimeOnPageWithElisionDisabledHistogram,
-      base::TimeDelta::FromSeconds(kTimeOnPage), 1);
+      base::Seconds(kTimeOnPage), 1);
 }
 
 // Same as KeyPress_WarningShown_UrlElisionDisabled, but user disabled URL
diff --git a/chrome/browser/safe_browsing/safe_browsing_navigation_observer_browsertest.cc b/chrome/browser/safe_browsing/safe_browsing_navigation_observer_browsertest.cc
index c2d4cff..10f1746 100644
--- a/chrome/browser/safe_browsing/safe_browsing_navigation_observer_browsertest.cc
+++ b/chrome/browser/safe_browsing/safe_browsing_navigation_observer_browsertest.cc
@@ -2215,7 +2215,7 @@
   std::string test_server_host(embedded_test_server()->base_url().host());
   ip_map->insert(
       std::make_pair(test_server_host, std::vector<ResolvedIPAddress>()));
-  base::Time yesterday(base::Time::Now() - base::TimeDelta::FromDays(1));
+  base::Time yesterday(base::Time::Now() - base::Days(1));
   (*ip_map)[test_server_host].push_back(ResolvedIPAddress(
       yesterday, embedded_test_server()->host_port_pair().host()));
   ASSERT_EQ(1U, (*ip_map)[test_server_host].size());
diff --git a/chrome/browser/safe_browsing/settings_reset_prompt/settings_reset_prompt_config.cc b/chrome/browser/safe_browsing/settings_reset_prompt/settings_reset_prompt_config.cc
index 4b17e43..d72096f 100644
--- a/chrome/browser/safe_browsing/settings_reset_prompt/settings_reset_prompt_config.cc
+++ b/chrome/browser/safe_browsing/settings_reset_prompt/settings_reset_prompt_config.cc
@@ -159,8 +159,7 @@
         CONFIG_ERROR_BAD_DELAY_BEFORE_PROMPT_SECONDS_PARAM, CONFIG_ERROR_MAX);
     return false;
   }
-  delay_before_prompt_ =
-      base::TimeDelta::FromSeconds(delay_before_prompt_seconds);
+  delay_before_prompt_ = base::Seconds(delay_before_prompt_seconds);
 
   // Get the prompt_wave feature paramter.
   prompt_wave_ = base::GetFieldTrialParamByFeatureAsInt(kSettingsResetPrompt,
@@ -181,8 +180,7 @@
         CONFIG_ERROR_BAD_TIME_BETWEEN_PROMPTS_SECONDS_PARAM, CONFIG_ERROR_MAX);
     return false;
   }
-  time_between_prompts_ =
-      base::TimeDelta::FromSeconds(time_between_prompts_seconds);
+  time_between_prompts_ = base::Seconds(time_between_prompts_seconds);
 
   UMA_HISTOGRAM_ENUMERATION("SettingsResetPrompt.ConfigError", CONFIG_ERROR_OK,
                             CONFIG_ERROR_MAX);
diff --git a/chrome/browser/safe_browsing/settings_reset_prompt/settings_reset_prompt_config_unittest.cc b/chrome/browser/safe_browsing/settings_reset_prompt/settings_reset_prompt_config_unittest.cc
index c5bf5083..fc67612 100644
--- a/chrome/browser/safe_browsing/settings_reset_prompt/settings_reset_prompt_config_unittest.cc
+++ b/chrome/browser/safe_browsing/settings_reset_prompt/settings_reset_prompt_config_unittest.cc
@@ -232,7 +232,7 @@
   {
     auto config = SettingsResetPromptConfig::Create();
     ASSERT_TRUE(config);
-    EXPECT_EQ(config->delay_before_prompt(), base::TimeDelta::FromSeconds(12));
+    EXPECT_EQ(config->delay_before_prompt(), base::Seconds(12));
   }
 
   // Correct edge case parameter value.
@@ -241,7 +241,7 @@
   {
     auto config = SettingsResetPromptConfig::Create();
     ASSERT_TRUE(config);
-    EXPECT_EQ(config->delay_before_prompt(), base::TimeDelta::FromSeconds(0));
+    EXPECT_EQ(config->delay_before_prompt(), base::Seconds(0));
   }
 }
 
@@ -311,8 +311,7 @@
   {
     auto config = SettingsResetPromptConfig::Create();
     ASSERT_TRUE(config);
-    EXPECT_EQ(config->time_between_prompts(),
-              base::TimeDelta::FromSeconds(3600));
+    EXPECT_EQ(config->time_between_prompts(), base::Seconds(3600));
   }
 }
 
diff --git a/chrome/browser/search/background/ntp_custom_background_service.cc b/chrome/browser/search/background/ntp_custom_background_service.cc
index bbb323fb..adaec14 100644
--- a/chrome/browser/search/background/ntp_custom_background_service.cc
+++ b/chrome/browser/search/background/ntp_custom_background_service.cc
@@ -158,7 +158,7 @@
     attribution2 = image.attribution[1];
 
   std::string resume_token = background_service_->next_image_resume_token();
-  int64_t timestamp = (clock_->Now() + base::TimeDelta::FromDays(1)).ToTimeT();
+  int64_t timestamp = (clock_->Now() + base::Days(1)).ToTimeT();
 
   base::DictionaryValue background_info = GetBackgroundInfoAsDict(
       image.image_url, attribution1, attribution2, image.attribution_action_url,
diff --git a/chrome/browser/search/background/ntp_custom_background_service_unittest.cc b/chrome/browser/search/background/ntp_custom_background_service_unittest.cc
index f489dc1d..6380035 100644
--- a/chrome/browser/search/background/ntp_custom_background_service_unittest.cc
+++ b/chrome/browser/search/background/ntp_custom_background_service_unittest.cc
@@ -453,7 +453,7 @@
   EXPECT_EQ(kImageUrl1, custom_background->custom_background_url);
   EXPECT_TRUE(custom_background_service_->IsCustomBackgroundSet());
 
-  clock_.Advance(base::TimeDelta::FromHours(25));
+  clock_.Advance(base::Hours(25));
 
   // Should refresh background after >24 hours.
   custom_background_service_->RefreshBackgroundIfNeeded();
diff --git a/chrome/browser/segmentation_platform/segmentation_platform_config.cc b/chrome/browser/segmentation_platform/segmentation_platform_config.cc
index 9ad57d6..b2ff62fd 100644
--- a/chrome/browser/segmentation_platform/segmentation_platform_config.cc
+++ b/chrome/browser/segmentation_platform/segmentation_platform_config.cc
@@ -39,8 +39,7 @@
   int segment_selection_ttl_days = base::GetFieldTrialParamByFeatureAsInt(
       chrome::android::kAdaptiveButtonInTopToolbarCustomizationV2,
       "segment_selection_ttl_days", kDefaultSegmentSelectionTTLDays);
-  config->segment_selection_ttl =
-      base::TimeDelta::FromDays(segment_selection_ttl_days);
+  config->segment_selection_ttl = base::Days(segment_selection_ttl_days);
 #endif
 
   // A hardcoded list of segment IDs known to the segmentation platform.
diff --git a/chrome/browser/service_process/service_process_control.cc b/chrome/browser/service_process/service_process_control.cc
index fe87829..1d840545 100644
--- a/chrome/browser/service_process/service_process_control.cc
+++ b/chrome/browser/service_process/service_process_control.cc
@@ -40,8 +40,7 @@
 // to avoid inherent raciness in how the service process listens for incoming
 // connections, particularly on Windows.
 const size_t kMaxConnectionAttempts = 10;
-constexpr base::TimeDelta kInitialConnectionRetryDelay =
-    base::TimeDelta::FromMilliseconds(20);
+constexpr base::TimeDelta kInitialConnectionRetryDelay = base::Milliseconds(20);
 
 void ConnectAsyncWithBackoff(
     mojo::PendingReceiver<service_manager::mojom::InterfaceProvider>
@@ -298,7 +297,7 @@
   retry_count_++;
 
   // If the service process is not launched yet then check again in 2 seconds.
-  const base::TimeDelta kDetectLaunchRetry = base::TimeDelta::FromSeconds(2);
+  const base::TimeDelta kDetectLaunchRetry = base::Seconds(2);
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE, base::BindOnce(&Launcher::DoDetectLaunched, this),
       kDetectLaunchRetry);
diff --git a/chrome/browser/service_process/service_process_control_browsertest.cc b/chrome/browser/service_process/service_process_control_browsertest.cc
index fd6e3c77..161a4b8db 100644
--- a/chrome/browser/service_process/service_process_control_browsertest.cc
+++ b/chrome/browser/service_process/service_process_control_browsertest.cc
@@ -466,7 +466,7 @@
     }
 
     // |process| did not stop running. Wait.
-    base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(1));
+    base::PlatformThread::Sleep(base::Seconds(1));
   }
 
   // |process| still did not stop running after |kRetries|.
diff --git a/chrome/browser/sessions/closed_tab_cache.cc b/chrome/browser/sessions/closed_tab_cache.cc
index 08b3b95..8fe8701d 100644
--- a/chrome/browser/sessions/closed_tab_cache.cc
+++ b/chrome/browser/sessions/closed_tab_cache.cc
@@ -20,7 +20,7 @@
 
 // The default time to live in seconds for entries in the ClosedTabCache.
 static constexpr base::TimeDelta kDefaultTimeToLiveInClosedTabCacheInSeconds =
-    base::TimeDelta::FromSeconds(15);
+    base::Seconds(15);
 
 // The memory pressure level from which we should evict all entries from the
 // cache to preserve memory.
@@ -134,7 +134,7 @@
     return base::TimeDelta::Max();
   }
 
-  return base::TimeDelta::FromSeconds(base::GetFieldTrialParamByFeatureAsInt(
+  return base::Seconds(base::GetFieldTrialParamByFeatureAsInt(
       features::kClosedTabCache, "time_to_live_in_closed_tab_cache_in_seconds",
       kDefaultTimeToLiveInClosedTabCacheInSeconds.InSeconds()));
 }
diff --git a/chrome/browser/sessions/closed_tab_cache_browsertest.cc b/chrome/browser/sessions/closed_tab_cache_browsertest.cc
index 1704178..2abafc5 100644
--- a/chrome/browser/sessions/closed_tab_cache_browsertest.cc
+++ b/chrome/browser/sessions/closed_tab_cache_browsertest.cc
@@ -195,7 +195,7 @@
   EXPECT_EQ(closed_tab_cache().EntriesCount(), 1U);
 
   // Fast forward to just before eviction is due.
-  base::TimeDelta delta = base::TimeDelta::FromMilliseconds(1);
+  base::TimeDelta delta = base::Milliseconds(1);
   base::TimeDelta ttl = ClosedTabCache::GetTimeToLiveInClosedTabCache();
   task_runner->FastForwardBy(ttl - delta);
 
diff --git a/chrome/browser/sessions/session_restore_browsertest.cc b/chrome/browser/sessions/session_restore_browsertest.cc
index 065c583..937a03c 100644
--- a/chrome/browser/sessions/session_restore_browsertest.cc
+++ b/chrome/browser/sessions/session_restore_browsertest.cc
@@ -2875,7 +2875,7 @@
           base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
               FROM_HERE,
               base::BindOnce([](base::RunLoop* loop) { loop->Quit(); }, &loop),
-              base::TimeDelta::FromSeconds(1));
+              base::Seconds(1));
           // loop.Quit();
         });
     new_browser->tab_strip_model()->ActivateTabAt(0);
diff --git a/chrome/browser/sessions/session_restore_stats_collector.cc b/chrome/browser/sessions/session_restore_stats_collector.cc
index ef7c7bf..81654a34 100644
--- a/chrome/browser/sessions/session_restore_stats_collector.cc
+++ b/chrome/browser/sessions/session_restore_stats_collector.cc
@@ -173,15 +173,13 @@
   if (!tab_loader_stats.foreground_tab_first_paint.is_zero()) {
     UMA_HISTOGRAM_CUSTOM_TIMES("SessionRestore.ForegroundTabFirstPaint4",
                                tab_loader_stats.foreground_tab_first_paint,
-                               base::TimeDelta::FromMilliseconds(100),
-                               base::TimeDelta::FromMinutes(16), 50);
+                               base::Milliseconds(100), base::Minutes(16), 50);
 
     std::string time_for_count = base::StringPrintf(
         "SessionRestore.ForegroundTabFirstPaint4_%u",
         static_cast<unsigned int>(tab_loader_stats.tab_count));
     base::HistogramBase* counter_for_count = base::Histogram::FactoryTimeGet(
-        time_for_count, base::TimeDelta::FromMilliseconds(100),
-        base::TimeDelta::FromMinutes(16), 50,
+        time_for_count, base::Milliseconds(100), base::Minutes(16), 50,
         base::Histogram::kUmaTargetedHistogramFlag);
     counter_for_count->AddTime(tab_loader_stats.foreground_tab_first_paint);
   }
@@ -193,6 +191,5 @@
 void SessionRestoreStatsCollector::UmaStatsReportingDelegate::
     ReportTabTimeSinceActive(base::TimeDelta elapsed) {
   UMA_HISTOGRAM_CUSTOM_TIMES("SessionRestore.RestoredTab.TimeSinceActive",
-                             elapsed, base::TimeDelta::FromSeconds(10),
-                             base::TimeDelta::FromDays(7), 100);
+                             elapsed, base::Seconds(10), base::Days(7), 100);
 }
diff --git a/chrome/browser/sessions/session_restore_stats_collector_unittest.cc b/chrome/browser/sessions/session_restore_stats_collector_unittest.cc
index 4eafb591..37ebb38 100644
--- a/chrome/browser/sessions/session_restore_stats_collector_unittest.cc
+++ b/chrome/browser/sessions/session_restore_stats_collector_unittest.cc
@@ -66,7 +66,7 @@
       SessionRestoreStatsCollector::SessionRestorePaintFinishReasonUma
           finish_reason) {
     EXPECT_EQ(tab_count, tab_loader_stats_.tab_count);
-    EXPECT_EQ(base::TimeDelta::FromMilliseconds(foreground_tab_first_paint_ms),
+    EXPECT_EQ(base::Milliseconds(foreground_tab_first_paint_ms),
               tab_loader_stats_.foreground_tab_first_paint);
     EXPECT_EQ(tab_loader_stats_.tab_first_paint_reason, finish_reason);
   }
@@ -170,9 +170,7 @@
   }
 
   // Advances the test clock by 1ms.
-  void Tick() {
-    task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
-  }
+  void Tick() { task_environment_.FastForwardBy(base::Milliseconds(1)); }
 
   void Show(size_t tab_index) {
     restored_tabs_[tab_index].contents()->WasShown();
@@ -195,7 +193,7 @@
                                       &entries);
     // Create a last active time in the past.
     content::WebContentsTester::For(contents)->SetLastActiveTime(
-        base::TimeTicks::Now() - base::TimeDelta::FromMinutes(1));
+        base::TimeTicks::Now() - base::Minutes(1));
     restored_tabs_.push_back(
         RestoredTab(contents, is_active, false, false, absl::nullopt));
     if (is_active)
diff --git a/chrome/browser/sessions/session_service_log.cc b/chrome/browser/sessions/session_service_log.cc
index d5d0b7ac..0fb58e1f 100644
--- a/chrome/browser/sessions/session_service_log.cc
+++ b/chrome/browser/sessions/session_service_log.cc
@@ -91,7 +91,7 @@
   int64_t time_int;
   if (!base::StringToInt64(*time_value, &time_int))
     return false;
-  event.time = base::Time() + base::TimeDelta::FromMicroseconds(time_int);
+  event.time = base::Time() + base::Microseconds(time_int);
 
   switch (event.type) {
     case SessionServiceEventLogType::kStart: {
diff --git a/chrome/browser/sessions/tab_loader_delegate.cc b/chrome/browser/sessions/tab_loader_delegate.cc
index d99972a..5f734f4 100644
--- a/chrome/browser/sessions/tab_loader_delegate.cc
+++ b/chrome/browser/sessions/tab_loader_delegate.cc
@@ -121,8 +121,8 @@
     callback->SetTabLoadingEnabled(false);
   }
 
-  first_timeout_ = base::TimeDelta::FromMilliseconds(kFirstTabLoadTimeoutMS);
-  timeout_ = base::TimeDelta::FromMilliseconds(kInitialDelayTimerMS);
+  first_timeout_ = base::Milliseconds(kFirstTabLoadTimeoutMS);
+  timeout_ = base::Milliseconds(kInitialDelayTimerMS);
 
   // Override |policy_| if a testing policy has been set.
   if (g_testing_policy) {
diff --git a/chrome/browser/sessions/tab_restore_service_unittest.cc b/chrome/browser/sessions/tab_restore_service_unittest.cc
index f84fc6f..33c54e47 100644
--- a/chrome/browser/sessions/tab_restore_service_unittest.cc
+++ b/chrome/browser/sessions/tab_restore_service_unittest.cc
@@ -778,8 +778,8 @@
 
 // Makes sure we restore timestamps correctly.
 TEST_F(TabRestoreServiceImplTest, TimestampSurvivesRestore) {
-  base::Time tab_timestamp(base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(123456789)));
+  base::Time tab_timestamp(
+      base::Time::FromDeltaSinceWindowsEpoch(base::Microseconds(123456789)));
 
   AddThreeNavigations();
 
diff --git a/chrome/browser/share/share_history.cc b/chrome/browser/share/share_history.cc
index 78b0d38f..62b1a7e7 100644
--- a/chrome/browser/share/share_history.cc
+++ b/chrome/browser/share/share_history.cc
@@ -153,8 +153,7 @@
 void ShareHistory::Clear(const base::Time& start, const base::Time& end) {
   google::protobuf::RepeatedPtrField<mojom::DayShareHistory> histories_to_keep;
   for (const auto& day : history_.day_histories()) {
-    base::Time day_start =
-        base::Time::UnixEpoch() + base::TimeDelta::FromDays(day.day());
+    base::Time day_start = base::Time::UnixEpoch() + base::Days(day.day());
     if (!DayOverlapsTimeRange(day_start, start, end)) {
       mojom::DayShareHistory this_day;
       this_day.CopyFrom(day);
diff --git a/chrome/browser/share/share_history_unittest.cc b/chrome/browser/share/share_history_unittest.cc
index f66ba86..f3715565 100644
--- a/chrome/browser/share/share_history_unittest.cc
+++ b/chrome/browser/share/share_history_unittest.cc
@@ -66,7 +66,7 @@
     // These tests often want to place events/history "in the past", but the
     // mock time source starts at the epoch, which breaks a bunch of those
     // computations; give ourselves some margin to work with here.
-    environment_.FastForwardBy(base::TimeDelta::FromDays(7));
+    environment_.FastForwardBy(base::Days(7));
     Init();
   }
 
@@ -227,8 +227,8 @@
     EXPECT_EQ(result[1].count, 2);
   }
 
-  auto start_offset = base::TimeDelta::FromDays(DaysSinceUnixEpoch() - 1);
-  auto end_offset = start_offset + base::TimeDelta::FromSeconds(3600);
+  auto start_offset = base::Days(DaysSinceUnixEpoch() - 1);
+  auto end_offset = start_offset + base::Seconds(3600);
   db()->Clear(base::Time::UnixEpoch() + start_offset,
               base::Time::UnixEpoch() + end_offset);
 
diff --git a/chrome/browser/sharing/click_to_call/phone_number_regex.cc b/chrome/browser/sharing/click_to_call/phone_number_regex.cc
index b6cdcb1..4dadfc7 100644
--- a/chrome/browser/sharing/click_to_call/phone_number_regex.cc
+++ b/chrome/browser/sharing/click_to_call/phone_number_regex.cc
@@ -39,7 +39,7 @@
 }
 
 void PrecompilePhoneNumberRegexesAsync() {
-  constexpr auto kParseDelay = base::TimeDelta::FromSeconds(15);
+  constexpr auto kParseDelay = base::Seconds(15);
   base::ThreadPool::PostDelayedTask(
       FROM_HERE,
       {base::TaskPriority::BEST_EFFORT,
diff --git a/chrome/browser/sharing/shared_clipboard/remote_copy_message_handler.cc b/chrome/browser/sharing/shared_clipboard/remote_copy_message_handler.cc
index 68648af..00b2e0f 100644
--- a/chrome/browser/sharing/shared_clipboard/remote_copy_message_handler.cc
+++ b/chrome/browser/sharing/shared_clipboard/remote_copy_message_handler.cc
@@ -52,8 +52,7 @@
 
 // The initial delay for the timer that detects clipboard writes. An exponential
 // backoff will double this value whenever the OneShotTimer reschedules.
-constexpr base::TimeDelta kInitialDetectionTimerDelay =
-    base::TimeDelta::FromMilliseconds(1);
+constexpr base::TimeDelta kInitialDetectionTimerDelay = base::Milliseconds(1);
 
 const net::NetworkTrafficAnnotationTag kTrafficAnnotation =
     net::DefineNetworkTrafficAnnotation("remote_copy_message_handler",
@@ -315,7 +314,7 @@
     return;
   }
 
-  if (elapsed > base::TimeDelta::FromSeconds(10))
+  if (elapsed > base::Seconds(10))
     return;
 
   // Unretained(this) is safe here because |this| owns |write_detection_timer_|.
diff --git a/chrome/browser/sharing/sharing_constants.cc b/chrome/browser/sharing/sharing_constants.cc
index f747840..e18eaa8 100644
--- a/chrome/browser/sharing/sharing_constants.cc
+++ b/chrome/browser/sharing/sharing_constants.cc
@@ -8,14 +8,11 @@
 
 const char kSharingSenderID[] = "379932496580";
 
-const constexpr base::TimeDelta kSharingDeviceExpiration =
-    base::TimeDelta::FromDays(2);
+const constexpr base::TimeDelta kSharingDeviceExpiration = base::Days(2);
 
-const constexpr base::TimeDelta kSharingMessageTTL =
-    base::TimeDelta::FromSeconds(16);
+const constexpr base::TimeDelta kSharingMessageTTL = base::Seconds(16);
 
-const constexpr base::TimeDelta kSharingAckMessageTTL =
-    base::TimeDelta::FromSeconds(8);
+const constexpr base::TimeDelta kSharingAckMessageTTL = base::Seconds(8);
 
 const constexpr net::BackoffEntry::Policy kRetryBackoffPolicy = {
     // Number of initial errors (in sequence) to ignore before applying
diff --git a/chrome/browser/sharing/sharing_device_source_sync.cc b/chrome/browser/sharing/sharing_device_source_sync.cc
index ffd9609..93f71e3 100644
--- a/chrome/browser/sharing/sharing_device_source_sync.cc
+++ b/chrome/browser/sharing/sharing_device_source_sync.cc
@@ -44,7 +44,7 @@
 
 bool IsStale(const syncer::DeviceInfo& device) {
   if (base::FeatureList::IsEnabled(kSharingMatchPulseInterval)) {
-    base::TimeDelta pulse_delta = base::TimeDelta::FromHours(
+    base::TimeDelta pulse_delta = base::Hours(
         IsDesktop(device.device_type()) ? kSharingPulseDeltaDesktopHours.Get()
                                         : kSharingPulseDeltaAndroidHours.Get());
     base::Time min_updated_time =
diff --git a/chrome/browser/sharing/sharing_device_source_sync_unittest.cc b/chrome/browser/sharing/sharing_device_source_sync_unittest.cc
index b9de64af..80a05559 100644
--- a/chrome/browser/sharing/sharing_device_source_sync_unittest.cc
+++ b/chrome/browser/sharing/sharing_device_source_sync_unittest.cc
@@ -173,29 +173,29 @@
   auto device_source = CreateDeviceSource(/*wait_until_ready=*/true);
 
   // Add two devices with the same |client_name| without hardware info.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
   auto device_info_1 = CreateDeviceInfo(
       "client_name_1", sync_pb::SharingSpecificFields::CLICK_TO_CALL_V2);
   fake_device_info_tracker_.Add(device_info_1.get());
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
   auto device_info_2 = CreateDeviceInfo(
       "client_name_1", sync_pb::SharingSpecificFields::CLICK_TO_CALL_V2);
   fake_device_info_tracker_.Add(device_info_2.get());
 
   // Add two devices with the same hardware info.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
   auto device_info_3 = CreateDeviceInfo(
       "model 1", sync_pb::SharingSpecificFields::CLICK_TO_CALL_V2,
       "manufacturer 1", "model 1");
   fake_device_info_tracker_.Add(device_info_3.get());
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
   auto device_info_4 = CreateDeviceInfo(
       "model 1", sync_pb::SharingSpecificFields::CLICK_TO_CALL_V2,
       "manufacturer 1", "model 1");
   fake_device_info_tracker_.Add(device_info_4.get());
 
   // Add a device with the same info as the local device.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
   auto device_info_5 =
       CreateDeviceInfo(local_device_info_->client_name(),
                        sync_pb::SharingSpecificFields::CLICK_TO_CALL_V2,
@@ -205,7 +205,7 @@
 
   // Add a device with the local personalizable device name as client_name to
   // simulate old versions without hardware info.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
   auto device_info_6 =
       CreateDeviceInfo(syncer::GetPersonalizableDeviceNameBlocking(),
                        sync_pb::SharingSpecificFields::CLICK_TO_CALL_V2);
@@ -221,24 +221,24 @@
 TEST_F(SharingDeviceSourceSyncTest, GetDeviceCandidates_DeviceNaming) {
   auto device_source = CreateDeviceSource(/*wait_until_ready=*/true);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
   auto device_info_1 = CreateDeviceInfo(
       "client_name", sync_pb::SharingSpecificFields::CLICK_TO_CALL_V2);
   fake_device_info_tracker_.Add(device_info_1.get());
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
   auto device_info_2 = CreateDeviceInfo(
       "model 1", sync_pb::SharingSpecificFields::CLICK_TO_CALL_V2,
       "manufacturer 1", "model 1");
   fake_device_info_tracker_.Add(device_info_2.get());
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
   auto device_info_3 = CreateDeviceInfo(
       "model 2", sync_pb::SharingSpecificFields::CLICK_TO_CALL_V2,
       "manufacturer 1", "model 2");
   fake_device_info_tracker_.Add(device_info_3.get());
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
   auto device_info_4 = CreateDeviceInfo(
       "model 1", sync_pb::SharingSpecificFields::CLICK_TO_CALL_V2,
       "manufacturer 2", "model 1");
@@ -272,7 +272,7 @@
 
   // Forward time until device expires.
   task_environment_.FastForwardBy(kSharingDeviceExpiration +
-                                  base::TimeDelta::FromMilliseconds(1));
+                                  base::Milliseconds(1));
 
   std::vector<std::unique_ptr<syncer::DeviceInfo>> candidates =
       device_source->GetDeviceCandidates(
@@ -314,7 +314,7 @@
   auto device_source = CreateDeviceSource(/*wait_until_ready=*/true);
 
   // This device will be filtered out because its older than |min_updated_time|.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
   auto device_info_1 = CreateDeviceInfo(
       "model 3", sync_pb::SharingSpecificFields::CLICK_TO_CALL_V2,
       "manufacturer 2", "model 3");
@@ -328,14 +328,14 @@
   fake_device_info_tracker_.Add(device_info_2.get());
 
   // This device will be filtered out since click to call is not enabled.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
   auto device_info_3 = CreateDeviceInfo(
       "model 1", sync_pb::SharingSpecificFields::SHARED_CLIPBOARD_V2,
       "manufacturer 1", "model 1");
   fake_device_info_tracker_.Add(device_info_3.get());
 
   // This device will be displayed with its short name.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
   auto device_info_4 = CreateDeviceInfo(
       "model 2", sync_pb::SharingSpecificFields::CLICK_TO_CALL_V2,
       "manufacturer 2", "model 2");
diff --git a/chrome/browser/sharing/sharing_fcm_sender_unittest.cc b/chrome/browser/sharing/sharing_fcm_sender_unittest.cc
index e9f0c7c1..bee1c56 100644
--- a/chrome/browser/sharing/sharing_fcm_sender_unittest.cc
+++ b/chrome/browser/sharing/sharing_fcm_sender_unittest.cc
@@ -229,8 +229,7 @@
   chrome_browser_sharing::SharingMessage sharing_message;
   sharing_message.mutable_ack_message();
   sharing_fcm_sender_.SendMessageToFcmTarget(
-      fcm_channel, base::TimeDelta::FromSeconds(kTtlSeconds),
-      std::move(sharing_message),
+      fcm_channel, base::Seconds(kTtlSeconds), std::move(sharing_message),
       base::BindOnce(&SharingFCMSenderTest::OnMessageSent,
                      base::Unretained(this), &result, &message_id,
                      &channel_type));
@@ -263,8 +262,7 @@
   chrome_browser_sharing::SharingMessage sharing_message;
   sharing_message.mutable_ack_message();
   sharing_fcm_sender_.SendMessageToFcmTarget(
-      fcm_channel, base::TimeDelta::FromSeconds(kTtlSeconds),
-      std::move(sharing_message),
+      fcm_channel, base::Seconds(kTtlSeconds), std::move(sharing_message),
       base::BindOnce(&SharingFCMSenderTest::OnMessageSent,
                      base::Unretained(this), &result, &message_id,
                      &channel_type));
@@ -293,8 +291,7 @@
   chrome_browser_sharing::SharingMessage sharing_message;
   sharing_message.mutable_ack_message();
   sharing_fcm_sender_.SendMessageToFcmTarget(
-      fcm_channel, base::TimeDelta::FromSeconds(kTtlSeconds),
-      std::move(sharing_message),
+      fcm_channel, base::Seconds(kTtlSeconds), std::move(sharing_message),
       base::BindOnce(&SharingFCMSenderTest::OnMessageSent,
                      base::Unretained(this), &result, &message_id,
                      &channel_type));
@@ -327,8 +324,7 @@
   chrome_browser_sharing::SharingMessage sharing_message;
   sharing_message.mutable_ack_message();
   sharing_fcm_sender_.SendMessageToFcmTarget(
-      fcm_channel, base::TimeDelta::FromSeconds(kTtlSeconds),
-      std::move(sharing_message),
+      fcm_channel, base::Seconds(kTtlSeconds), std::move(sharing_message),
       base::BindOnce(&SharingFCMSenderTest::OnMessageSent,
                      base::Unretained(this), &result, &message_id,
                      &channel_type));
@@ -368,8 +364,7 @@
   chrome_browser_sharing::SharingMessage sharing_message;
   sharing_message.mutable_ping_message();
   sharing_fcm_sender_.SendMessageToFcmTarget(
-      fcm_channel, base::TimeDelta::FromSeconds(kTtlSeconds),
-      std::move(sharing_message),
+      fcm_channel, base::Seconds(kTtlSeconds), std::move(sharing_message),
       base::BindOnce(&SharingFCMSenderTest::OnMessageSent,
                      base::Unretained(this), &result, &message_id,
                      &channel_type));
@@ -414,8 +409,7 @@
   chrome_browser_sharing::SharingMessage sharing_message;
   sharing_message.mutable_ping_message();
   sharing_fcm_sender_.SendMessageToFcmTarget(
-      fcm_channel, base::TimeDelta::FromSeconds(kTtlSeconds),
-      std::move(sharing_message),
+      fcm_channel, base::Seconds(kTtlSeconds), std::move(sharing_message),
       base::BindOnce(&SharingFCMSenderTest::OnMessageSent,
                      base::Unretained(this), &result, &message_id,
                      &channel_type));
@@ -481,8 +475,7 @@
   chrome_browser_sharing::SharingMessage sharing_message;
   sharing_message.mutable_ping_message();
   sharing_fcm_sender_.SendMessageToFcmTarget(
-      fcm_channel, base::TimeDelta::FromSeconds(kTtlSeconds),
-      std::move(sharing_message),
+      fcm_channel, base::Seconds(kTtlSeconds), std::move(sharing_message),
       base::BindOnce(&SharingFCMSenderTest::OnMessageSent,
                      base::Unretained(this), &result, &message_id,
                      &channel_type));
@@ -560,8 +553,7 @@
   chrome_browser_sharing::SharingMessage sharing_message;
   sharing_message.mutable_ping_message();
   sharing_fcm_sender_.SendMessageToFcmTarget(
-      fcm_channel, base::TimeDelta::FromSeconds(kTtlSeconds),
-      std::move(sharing_message),
+      fcm_channel, base::Seconds(kTtlSeconds), std::move(sharing_message),
       base::BindOnce(&SharingFCMSenderTest::OnMessageSent,
                      base::Unretained(this), &result, &message_id,
                      &channel_type));
diff --git a/chrome/browser/sharing/sharing_message_bridge_impl.cc b/chrome/browser/sharing/sharing_message_bridge_impl.cc
index c39f2c8..726826f0 100644
--- a/chrome/browser/sharing/sharing_message_bridge_impl.cc
+++ b/chrome/browser/sharing/sharing_message_bridge_impl.cc
@@ -265,7 +265,7 @@
     base::OnceClosure timeout_callback)
     : commit_callback_(std::move(commit_callback)) {
   const base::TimeDelta time_delta =
-      base::TimeDelta::FromSeconds(kSharingMessageBridgeTimeoutSeconds.Get());
+      base::Seconds(kSharingMessageBridgeTimeoutSeconds.Get());
   timer_.Start(FROM_HERE, time_delta, std::move(timeout_callback));
 }
 
diff --git a/chrome/browser/sharing/sharing_message_bridge_impl_unittest.cc b/chrome/browser/sharing/sharing_message_bridge_impl_unittest.cc
index 0bf443f..72a2831 100644
--- a/chrome/browser/sharing/sharing_message_bridge_impl_unittest.cc
+++ b/chrome/browser/sharing/sharing_message_bridge_impl_unittest.cc
@@ -91,7 +91,7 @@
 
   void FastForwardThroughTimeout() {
     const base::TimeDelta time_delta =
-        base::TimeDelta::FromSeconds(kSharingMessageBridgeTimeoutSeconds.Get());
+        base::Seconds(kSharingMessageBridgeTimeoutSeconds.Get());
     task_environment_.FastForwardBy(time_delta);
   }
 
diff --git a/chrome/browser/sharing/sharing_message_sender_unittest.cc b/chrome/browser/sharing/sharing_message_sender_unittest.cc
index 37fd3ed..35beb6d 100644
--- a/chrome/browser/sharing/sharing_message_sender_unittest.cc
+++ b/chrome/browser/sharing/sharing_message_sender_unittest.cc
@@ -37,7 +37,7 @@
 const char kSenderSenderIdP256dh[] = "sender_sender_id_p256dh";
 const char kSenderSenderIdAuthSecret[] = "sender_sender_id_auth_secret";
 const char kSenderMessageID[] = "sender_message_id";
-constexpr base::TimeDelta kTimeToLive = base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kTimeToLive = base::Seconds(10);
 
 namespace {
 
diff --git a/chrome/browser/sharing/sharing_metrics.cc b/chrome/browser/sharing/sharing_metrics.cc
index 7e9d41a..af25bd37 100644
--- a/chrome/browser/sharing/sharing_metrics.cc
+++ b/chrome/browser/sharing/sharing_metrics.cc
@@ -71,9 +71,9 @@
 // Maps pulse intervals to strings used as histogram suffixes. Keep in sync with
 // "SharingPulseInterval" in histograms.xml.
 std::string PulseIntervalToString(base::TimeDelta pulse_interval) {
-  if (pulse_interval < base::TimeDelta::FromHours(4))
+  if (pulse_interval < base::Hours(4))
     return "PulseIntervalShort";
-  if (pulse_interval > base::TimeDelta::FromHours(12))
+  if (pulse_interval > base::Hours(12))
     return "PulseIntervalLong";
   return "PulseIntervalMedium";
 }
@@ -263,18 +263,15 @@
     case chrome_browser_sharing::MessageType::SMS_FETCH_REQUEST:
     case chrome_browser_sharing::MessageType::DISCOVERY_REQUEST:
     case chrome_browser_sharing::MessageType::WEB_RTC_SIGNALING_FRAME:
-      base::UmaHistogramCustomTimes(
-          type_suffixed_name, time,
-          /*min=*/base::TimeDelta::FromMilliseconds(1),
-          /*max=*/base::TimeDelta::FromMinutes(10), /*buckets=*/50);
-      base::UmaHistogramCustomTimes(
-          platform_suffixed_name, time,
-          /*min=*/base::TimeDelta::FromMilliseconds(1),
-          /*max=*/base::TimeDelta::FromMinutes(10), /*buckets=*/50);
-      base::UmaHistogramCustomTimes(
-          channel_suffixed_name, time,
-          /*min=*/base::TimeDelta::FromMilliseconds(1),
-          /*max=*/base::TimeDelta::FromMinutes(10), /*buckets=*/50);
+      base::UmaHistogramCustomTimes(type_suffixed_name, time,
+                                    /*min=*/base::Milliseconds(1),
+                                    /*max=*/base::Minutes(10), /*buckets=*/50);
+      base::UmaHistogramCustomTimes(platform_suffixed_name, time,
+                                    /*min=*/base::Milliseconds(1),
+                                    /*max=*/base::Minutes(10), /*buckets=*/50);
+      base::UmaHistogramCustomTimes(channel_suffixed_name, time,
+                                    /*min=*/base::Milliseconds(1),
+                                    /*max=*/base::Minutes(10), /*buckets=*/50);
       break;
     case chrome_browser_sharing::MessageType::ACK_MESSAGE:
     default:
diff --git a/chrome/browser/sharing/sharing_service_unittest.cc b/chrome/browser/sharing/sharing_service_unittest.cc
index b9eb1983..cbe1a26 100644
--- a/chrome/browser/sharing/sharing_service_unittest.cc
+++ b/chrome/browser/sharing/sharing_service_unittest.cc
@@ -47,7 +47,7 @@
 const char kSharingFcmToken[] = "sharing_fcm_token";
 const char kDeviceName[] = "other_name";
 const char kAuthorizedEntity[] = "authorized_entity";
-constexpr base::TimeDelta kTimeout = base::TimeDelta::FromSeconds(15);
+constexpr base::TimeDelta kTimeout = base::Seconds(15);
 
 class MockInstanceIDDriver : public instance_id::InstanceIDDriver {
  public:
@@ -403,7 +403,7 @@
       SharingDeviceRegistrationResult::kSuccess);
   EXPECT_CALL(*fcm_handler_, StartListening()).Times(1);
   task_environment_.FastForwardBy(
-      base::TimeDelta::FromMilliseconds(kRetryBackoffPolicy.initial_delay_ms));
+      base::Milliseconds(kRetryBackoffPolicy.initial_delay_ms));
   EXPECT_EQ(2, sharing_device_registration_->registration_attempts());
   EXPECT_EQ(SharingService::State::ACTIVE,
             GetSharingService()->GetStateForTesting());
diff --git a/chrome/browser/sharing/sms/sms_fetch_request_handler.cc b/chrome/browser/sharing/sms/sms_fetch_request_handler.cc
index 7dc1f87..5391461 100644
--- a/chrome/browser/sharing/sms/sms_fetch_request_handler.cc
+++ b/chrome/browser/sharing/sms/sms_fetch_request_handler.cc
@@ -28,8 +28,7 @@
 // To mitigate the overlapping of the notification for SMS and the one for
 // user permission, we postpone showing the latter to make sure it's always
 // visible to users.
-static constexpr base::TimeDelta kNotificationDelay =
-    base::TimeDelta::FromSeconds(1);
+static constexpr base::TimeDelta kNotificationDelay = base::Seconds(1);
 
 bool DoesMatchOriginList(const std::vector<std::u16string>& origins,
                          const content::OriginList& origin_list) {
diff --git a/chrome/browser/sharing/sms/sms_fetch_request_handler_unittest.cc b/chrome/browser/sharing/sms/sms_fetch_request_handler_unittest.cc
index f07ecec..02735c9 100644
--- a/chrome/browser/sharing/sms/sms_fetch_request_handler_unittest.cc
+++ b/chrome/browser/sharing/sms/sms_fetch_request_handler_unittest.cc
@@ -238,7 +238,7 @@
 
   testing::Mock::VerifyAndClear(&handler);
   EXPECT_CALL(handler, AskUserPermission);
-  handler.task_environment().FastForwardBy(base::TimeDelta::FromSeconds(1));
+  handler.task_environment().FastForwardBy(base::Seconds(1));
 }
 
 TEST(SmsFetchRequestHandlerTest, SendSuccessMessageOnConfirm) {
diff --git a/chrome/browser/sharing/web_push/web_push_sender.cc b/chrome/browser/sharing/web_push/web_push_sender.cc
index b655c5f..cc9e70b 100644
--- a/chrome/browser/sharing/web_push/web_push_sender.cc
+++ b/chrome/browser/sharing/web_push/web_push_sender.cc
@@ -30,7 +30,7 @@
 const char kClaimsKeyExpirationTime[] = "exp";
 // It's 12 hours rather than 24 hours to avoid any issues with clock differences
 // between the sending application and the push service.
-constexpr base::TimeDelta kClaimsValidPeriod = base::TimeDelta::FromHours(12);
+constexpr base::TimeDelta kClaimsValidPeriod = base::Hours(12);
 
 const char kAuthorizationRequestHeaderFormat[] = "vapid t=%s, k=%s";
 
diff --git a/chrome/browser/shell_integration_win.cc b/chrome/browser/shell_integration_win.cc
index 5467dbe..6a29ae6f 100644
--- a/chrome/browser/shell_integration_win.cc
+++ b/chrome/browser/shell_integration_win.cc
@@ -355,7 +355,7 @@
     // Only the watchers that were succesfully initialized are counted.
     registry_watcher_count_ = registry_key_watchers_.size();
 
-    timer_.Start(FROM_HERE, base::TimeDelta::FromMinutes(2),
+    timer_.Start(FROM_HERE, base::Minutes(2),
                  base::BindOnce(&OpenSystemSettingsHelper::ConcludeInteraction,
                                 weak_ptr_factory_.GetWeakPtr(),
                                 ConcludeReason::TIMEOUT));
diff --git a/chrome/browser/signin/account_reconcilor_factory.cc b/chrome/browser/signin/account_reconcilor_factory.cc
index fe6990c..9b47faa 100644
--- a/chrome/browser/signin/account_reconcilor_factory.cc
+++ b/chrome/browser/signin/account_reconcilor_factory.cc
@@ -66,10 +66,10 @@
   base::TimeDelta GetReconcileTimeout() const override {
     switch (reconcilor_behavior_) {
       case ReconcilorBehavior::kChild:
-        return base::TimeDelta::FromSeconds(10);
+        return base::Seconds(10);
       case ReconcilorBehavior::kEnterprise:
         // 60 seconds is enough to cover about 99% of all reconcile cases.
-        return base::TimeDelta::FromSeconds(60);
+        return base::Seconds(60);
       default:
         NOTREACHED();
         return MirrorAccountReconcilorDelegate::GetReconcileTimeout();
diff --git a/chrome/browser/signin/chrome_signin_client.cc b/chrome/browser/signin/chrome_signin_client.cc
index 612f091..7b5c85d 100644
--- a/chrome/browser/signin/chrome_signin_client.cc
+++ b/chrome/browser/signin/chrome_signin_client.cc
@@ -250,7 +250,7 @@
     return;
   }
   chromeos::DelayNetworkCall(
-      base::TimeDelta::FromMilliseconds(chromeos::kDefaultNetworkRetryDelayMS),
+      base::Milliseconds(chromeos::kDefaultNetworkRetryDelayMS),
       std::move(callback));
   return;
 #else
diff --git a/chrome/browser/signin/chrome_signin_helper.cc b/chrome/browser/signin/chrome_signin_helper.cc
index 98174337..477e4a5c 100644
--- a/chrome/browser/signin/chrome_signin_helper.cc
+++ b/chrome/browser/signin/chrome_signin_helper.cc
@@ -127,8 +127,7 @@
         FROM_HERE,
         base::BindOnce([](scoped_refptr<AccountReconcilorLockWrapper>) {},
                        base::RetainedRef(this)),
-        base::TimeDelta::FromMilliseconds(
-            g_dice_account_reconcilor_blocked_delay_ms));
+        base::Milliseconds(g_dice_account_reconcilor_blocked_delay_ms));
   }
 
  private:
diff --git a/chrome/browser/signin/dice_browsertest.cc b/chrome/browser/signin/dice_browsertest.cc
index 4ad16bc8..150647b 100644
--- a/chrome/browser/signin/dice_browsertest.cc
+++ b/chrome/browser/signin/dice_browsertest.cc
@@ -720,10 +720,10 @@
   EXPECT_EQ(1, reconcilor_blocked_count_);
   EXPECT_EQ(0, reconcilor_unblocked_count_);
   task_runner->FastForwardBy(
-      base::TimeDelta::FromHours(kLockAccountReconcilorTimeoutHours / 2));
+      base::Hours(kLockAccountReconcilorTimeoutHours / 2));
   EXPECT_EQ(0, reconcilor_unblocked_count_);
   task_runner->FastForwardBy(
-      base::TimeDelta::FromHours((kLockAccountReconcilorTimeoutHours + 1) / 2));
+      base::Hours((kLockAccountReconcilorTimeoutHours + 1) / 2));
   // Wait until reconcilor is unblocked.
   WaitForReconcilorUnblockedCount(1);
 }
diff --git a/chrome/browser/signin/dice_intercepted_session_startup_helper.cc b/chrome/browser/signin/dice_intercepted_session_startup_helper.cc
index 9b2393f..ecd8893 100644
--- a/chrome/browser/signin/dice_intercepted_session_startup_helper.cc
+++ b/chrome/browser/signin/dice_intercepted_session_startup_helper.cc
@@ -78,8 +78,7 @@
     // particular the ExternalCCResult fetch may time out after multiple seconds
     // (see kExternalCCResultTimeoutSeconds and https://crbug.com/750316#c37).
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-        FROM_HERE, on_cookie_update_timeout_.callback(),
-        base::TimeDelta::FromSeconds(12));
+        FROM_HERE, on_cookie_update_timeout_.callback(), base::Seconds(12));
 
     accounts_in_cookie_observer_.Observe(identity_manager);
     if (use_multilogin_)
diff --git a/chrome/browser/signin/dice_response_handler.cc b/chrome/browser/signin/dice_response_handler.cc
index a2f0bb3..88d7563 100644
--- a/chrome/browser/signin/dice_response_handler.cc
+++ b/chrome/browser/signin/dice_response_handler.cc
@@ -163,7 +163,7 @@
   gaia_auth_fetcher_->StartAuthCodeForOAuth2TokenExchange(authorization_code_);
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE, timeout_closure_.callback(),
-      base::TimeDelta::FromSeconds(kDiceTokenFetchTimeoutSeconds));
+      base::Seconds(kDiceTokenFetchTimeoutSeconds));
 }
 
 DiceResponseHandler::DiceTokenFetcher::~DiceTokenFetcher() {}
@@ -286,8 +286,7 @@
       // If there is already another lock, the timer will be reset and
       // we'll wait another full timeout.
       timer_->Start(
-          FROM_HERE,
-          base::TimeDelta::FromHours(kLockAccountReconcilorTimeoutHours),
+          FROM_HERE, base::Hours(kLockAccountReconcilorTimeoutHours),
           base::BindOnce(&DiceResponseHandler::OnTimeoutUnlockReconcilor,
                          base::Unretained(this)));
     }
diff --git a/chrome/browser/signin/dice_response_handler_unittest.cc b/chrome/browser/signin/dice_response_handler_unittest.cc
index 7edd443..8d525e3 100644
--- a/chrome/browser/signin/dice_response_handler_unittest.cc
+++ b/chrome/browser/signin/dice_response_handler_unittest.cc
@@ -274,7 +274,7 @@
   EXPECT_EQ(1, reconcilor_blocked_count_);
   EXPECT_EQ(0, reconcilor_unblocked_count_);
   task_environment_.FastForwardBy(
-      base::TimeDelta::FromHours(kLockAccountReconcilorTimeoutHours + 1));
+      base::Hours(kLockAccountReconcilorTimeoutHours + 1));
   // Check that the reconcilor was unblocked.
   EXPECT_EQ(1, reconcilor_unblocked_count_);
   EXPECT_EQ(1, reconcilor_blocked_count_);
@@ -297,21 +297,21 @@
   EXPECT_EQ(0, reconcilor_unblocked_count_);
   // Wait half of the timeout.
   task_environment_.FastForwardBy(
-      base::TimeDelta::FromHours(kLockAccountReconcilorTimeoutHours / 2));
+      base::Hours(kLockAccountReconcilorTimeoutHours / 2));
   // Create params for the second header with no authorization code.
   DiceResponseParams dice_params_2 = MakeDiceParams(DiceAction::SIGNIN);
   dice_params_2.signin_info->authorization_code.clear();
   dice_params_2.signin_info->no_authorization_code = true;
   dice_response_handler_->ProcessDiceHeader(
       dice_params_2, std::make_unique<TestProcessDiceHeaderDelegate>(this));
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(
-      (kLockAccountReconcilorTimeoutHours + 1) / 2 + 1));
+  task_environment_.FastForwardBy(
+      base::Hours((kLockAccountReconcilorTimeoutHours + 1) / 2 + 1));
   // Check that the reconcilor was not unblocked after the first timeout
   // passed, timer should be restarted after getting the second header.
   EXPECT_EQ(1, reconcilor_blocked_count_);
   EXPECT_EQ(0, reconcilor_unblocked_count_);
   task_environment_.FastForwardBy(
-      base::TimeDelta::FromHours((kLockAccountReconcilorTimeoutHours + 1) / 2));
+      base::Hours((kLockAccountReconcilorTimeoutHours + 1) / 2));
   // Check that the reconcilor was unblocked.
   EXPECT_EQ(1, reconcilor_blocked_count_);
   EXPECT_EQ(1, reconcilor_unblocked_count_);
@@ -360,7 +360,7 @@
                   ->FindExtendedAccountInfoByAccountId(account_id_2)
                   .is_under_advanced_protection);
   task_environment_.FastForwardBy(
-      base::TimeDelta::FromHours(kLockAccountReconcilorTimeoutHours + 1));
+      base::Hours(kLockAccountReconcilorTimeoutHours + 1));
   // Check that the reconcilor was unblocked.
   EXPECT_EQ(1, reconcilor_unblocked_count_);
   EXPECT_EQ(1, reconcilor_blocked_count_);
@@ -591,7 +591,7 @@
       1u, dice_response_handler_->GetPendingDiceTokenFetchersCountForTesting());
   // Force a timeout.
   task_environment_.FastForwardBy(
-      base::TimeDelta::FromSeconds(kDiceTokenFetchTimeoutSeconds + 1));
+      base::Seconds(kDiceTokenFetchTimeoutSeconds + 1));
   EXPECT_EQ(
       0u, dice_response_handler_->GetPendingDiceTokenFetchersCountForTesting());
   // Check that the token has not been inserted in the token service.
diff --git a/chrome/browser/signin/dice_web_signin_interceptor.cc b/chrome/browser/signin/dice_web_signin_interceptor.cc
index b0b9de5e..8c8909e 100644
--- a/chrome/browser/signin/dice_web_signin_interceptor.cc
+++ b/chrome/browser/signin/dice_web_signin_interceptor.cc
@@ -291,7 +291,7 @@
         base::Unretained(this)));
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
         FROM_HERE, on_account_info_update_timeout_.callback(),
-        base::TimeDelta::FromSeconds(5));
+        base::Seconds(5));
     account_info_update_observation_.Observe(identity_manager_);
   }
 }
diff --git a/chrome/browser/signin/e2e_tests/live_sign_in_test.cc b/chrome/browser/signin/e2e_tests/live_sign_in_test.cc
index ac8d3f22..9bde474 100644
--- a/chrome/browser/signin/e2e_tests/live_sign_in_test.cc
+++ b/chrome/browser/signin/e2e_tests/live_sign_in_test.cc
@@ -43,7 +43,7 @@
 namespace signin {
 namespace test {
 
-const base::TimeDelta kDialogTimeout = base::TimeDelta::FromSeconds(10);
+const base::TimeDelta kDialogTimeout = base::Seconds(10);
 
 // A wrapper importing the settings module when the chrome://settings serve the
 // Polymer 3 version.
diff --git a/chrome/browser/signin/signin_ui_util.cc b/chrome/browser/signin/signin_ui_util.cc
index d243487..18386e0 100644
--- a/chrome/browser/signin/signin_ui_util.cc
+++ b/chrome/browser/signin/signin_ui_util.cc
@@ -59,7 +59,7 @@
 const char kAnimatedIdentityKeyName[] = "animated_identity_user_data";
 
 constexpr base::TimeDelta kDelayForCrossWindowAnimationReplay =
-    base::TimeDelta::FromSeconds(5);
+    base::Seconds(5);
 
 // UserData attached to the user profile, keeping track of the last time the
 // animation was shown to the user.
diff --git a/chrome/browser/signin/signin_ui_util_unittest.cc b/chrome/browser/signin/signin_ui_util_unittest.cc
index c5d6e58..9801438 100644
--- a/chrome/browser/signin/signin_ui_util_unittest.cc
+++ b/chrome/browser/signin/signin_ui_util_unittest.cc
@@ -561,7 +561,7 @@
   RecordAnimatedIdentityTriggered(profile);
 
   // Wait a few seconds.
-  task_environment.FastForwardBy(base::TimeDelta::FromSeconds(6));
+  task_environment.FastForwardBy(base::Seconds(6));
 
   // Animation is not shown again in a new window.
   EXPECT_FALSE(ShouldShowAnimatedIdentityOnOpeningWindow(
diff --git a/chrome/browser/site_isolation/spellcheck_per_process_browsertest.cc b/chrome/browser/site_isolation/spellcheck_per_process_browsertest.cc
index eddf72c..5764f1f 100644
--- a/chrome/browser/site_isolation/spellcheck_per_process_browsertest.cc
+++ b/chrome/browser/site_isolation/spellcheck_per_process_browsertest.cc
@@ -76,7 +76,7 @@
     ui_task_runner->PostDelayedTask(
         FROM_HERE,
         base::BindOnce(&MockSpellCheckHost::Timeout, base::Unretained(this)),
-        base::TimeDelta::FromSeconds(1));
+        base::Seconds(1));
 
     base::RunLoop run_loop;
     quit_ = run_loop.QuitClosure();
@@ -234,7 +234,7 @@
         FROM_HERE,
         base::BindOnce(&SpellCheckBrowserTestHelper::Timeout,
                        base::Unretained(this)),
-        base::TimeDelta::FromSeconds(1));
+        base::Seconds(1));
 
     base::RunLoop run_loop;
     quit_on_bind_closure_ = run_loop.QuitClosure();
diff --git a/chrome/browser/speech/chrome_speech_recognition_service.cc b/chrome/browser/speech/chrome_speech_recognition_service.cc
index db569adc..444e7686 100644
--- a/chrome/browser/speech/chrome_speech_recognition_service.cc
+++ b/chrome/browser/speech/chrome_speech_recognition_service.cc
@@ -22,7 +22,7 @@
 
 namespace speech {
 
-constexpr base::TimeDelta kIdleProcessTimeout = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kIdleProcessTimeout = base::Seconds(5);
 
 ChromeSpeechRecognitionService::ChromeSpeechRecognitionService(
     content::BrowserContext* context)
diff --git a/chrome/browser/speech/extension_api/tts_extension_apitest.cc b/chrome/browser/speech/extension_api/tts_extension_apitest.cc
index 8a06d72c..3f03821 100644
--- a/chrome/browser/speech/extension_api/tts_extension_apitest.cc
+++ b/chrome/browser/speech/extension_api/tts_extension_apitest.cc
@@ -201,7 +201,7 @@
           base::BindOnce(&MockTtsPlatformImpl::SendEvent,
                          ptr_factory_.GetWeakPtr(), true, utterance_id,
                          event_type, char_index, length, message),
-          base::TimeDelta::FromMilliseconds(100));
+          base::Milliseconds(100));
       return;
     }
 
diff --git a/chrome/browser/speech/speech_recognition_service_browsertest.cc b/chrome/browser/speech/speech_recognition_service_browsertest.cc
index 1262e0af..612f66c 100644
--- a/chrome/browser/speech/speech_recognition_service_browsertest.cc
+++ b/chrome/browser/speech/speech_recognition_service_browsertest.cc
@@ -102,7 +102,7 @@
     if (stream_receiver_.is_bound())
       return;
     base::RepeatingTimer check_timer;
-    check_timer.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(10), this,
+    check_timer.Start(FROM_HERE, base::Milliseconds(10), this,
                       &TestStreamFactory::OnTimer);
     runner_.Run();
   }
@@ -383,7 +383,7 @@
   metrics::SubprocessMetricsProvider::MergeHistogramDeltasForTesting();
   histograms.ExpectUniqueTimeSample(
       SpeechRecognitionRecognizerImpl::kCaptionBubbleVisibleHistogramName,
-      base::TimeDelta::FromMilliseconds(2520), 1);
+      base::Milliseconds(2520), 1);
   histograms.ExpectTotalCount(
       SpeechRecognitionRecognizerImpl::kCaptionBubbleHiddenHistogramName, 0);
 }
@@ -457,10 +457,10 @@
   metrics::SubprocessMetricsProvider::MergeHistogramDeltasForTesting();
   histograms.ExpectUniqueTimeSample(
       SpeechRecognitionRecognizerImpl::kCaptionBubbleVisibleHistogramName,
-      base::TimeDelta::FromMilliseconds(2520), 1);
+      base::Milliseconds(2520), 1);
   histograms.ExpectUniqueTimeSample(
       SpeechRecognitionRecognizerImpl::kCaptionBubbleHiddenHistogramName,
-      base::TimeDelta::FromMilliseconds(1260), 1);
+      base::Milliseconds(1260), 1);
 }
 
 IN_PROC_BROWSER_TEST_F(SpeechRecognitionServiceTest, CreateAudioSourceFetcher) {
diff --git a/chrome/browser/ssl/https_only_mode_navigation_throttle.cc b/chrome/browser/ssl/https_only_mode_navigation_throttle.cc
index 4d963e6..215e043 100644
--- a/chrome/browser/ssl/https_only_mode_navigation_throttle.cc
+++ b/chrome/browser/ssl/https_only_mode_navigation_throttle.cc
@@ -22,7 +22,7 @@
 
 // Time that the throttle will wait before canceling the upgraded navigation and
 // showing the HTTPS-Only Mode interstitial.
-base::TimeDelta g_fallback_delay = base::TimeDelta::FromSeconds(3);
+base::TimeDelta g_fallback_delay = base::Seconds(3);
 
 // Helper to record an HTTPS-First Mode navigation event.
 void RecordHttpsFirstModeNavigation(
@@ -185,7 +185,7 @@
 // static
 void HttpsOnlyModeNavigationThrottle::set_timeout_for_testing(
     int timeout_in_seconds) {
-  g_fallback_delay = base::TimeDelta::FromSeconds(timeout_in_seconds);
+  g_fallback_delay = base::Seconds(timeout_in_seconds);
 }
 
 void HttpsOnlyModeNavigationThrottle::OnHttpsLoadTimeout() {
diff --git a/chrome/browser/ssl/known_interception_disclosure_infobar_browsertest.cc b/chrome/browser/ssl/known_interception_disclosure_infobar_browsertest.cc
index 9d8ba423..0e157389 100644
--- a/chrome/browser/ssl/known_interception_disclosure_infobar_browsertest.cc
+++ b/chrome/browser/ssl/known_interception_disclosure_infobar_browsertest.cc
@@ -130,7 +130,7 @@
   EXPECT_EQ(0u, GetInfobarCount(tab1));
 
   // Move clock ahead 8 days.
-  clock->Advance(base::TimeDelta::FromDays(8));
+  clock->Advance(base::Days(8));
 
   // Trigger the infobar again -- infobar should show again.
   ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), kInterceptedUrl));
diff --git a/chrome/browser/ssl/known_interception_disclosure_infobar_delegate.cc b/chrome/browser/ssl/known_interception_disclosure_infobar_delegate.cc
index 3422f393..d70c924 100644
--- a/chrome/browser/ssl/known_interception_disclosure_infobar_delegate.cc
+++ b/chrome/browser/ssl/known_interception_disclosure_infobar_delegate.cc
@@ -42,7 +42,7 @@
 #endif
 
   // Suppress the disclosure UI for 7 days after showing it to the user.
-  return (clock_->Now() - last_dismissal) <= base::TimeDelta::FromDays(7);
+  return (clock_->Now() - last_dismissal) <= base::Days(7);
 }
 
 void KnownInterceptionDisclosureCooldown::Activate(Profile* profile) {
diff --git a/chrome/browser/ssl/sct_reporting_service_browsertest.cc b/chrome/browser/ssl/sct_reporting_service_browsertest.cc
index 7dc8bdee..45f43079 100644
--- a/chrome/browser/ssl/sct_reporting_service_browsertest.cc
+++ b/chrome/browser/ssl/sct_reporting_service_browsertest.cc
@@ -748,8 +748,7 @@
     // immediately and the test can reset the default verifier result in
     // between retry attempts.
     mojo::ScopedAllowSyncCallForTesting allow_sync_call;
-    network_service_test()->SetSCTAuditingRetryDelay(
-        base::TimeDelta::FromSeconds(1));
+    network_service_test()->SetSCTAuditingRetryDelay(base::Seconds(1));
 
     // Default test fixture teardown will reset the delay back to the default.
   }
diff --git a/chrome/browser/ssl/ssl_browsertest.cc b/chrome/browser/ssl/ssl_browsertest.cc
index 9b61a83..2247a93 100644
--- a/chrome/browser/ssl/ssl_browsertest.cc
+++ b/chrome/browser/ssl/ssl_browsertest.cc
@@ -708,9 +708,9 @@
     // Set network time back ten minutes, which is sufficient to
     // trigger the reporting.
     g_browser_process->network_time_tracker()->UpdateNetworkTime(
-        base::Time::Now() - base::TimeDelta::FromMinutes(10),
-        base::TimeDelta::FromMilliseconds(1),   /* resolution */
-        base::TimeDelta::FromMilliseconds(500), /* latency */
+        base::Time::Now() - base::Minutes(10),
+        base::Milliseconds(1),   /* resolution */
+        base::Milliseconds(500), /* latency */
         base::TimeTicks::Now() /* posting time of this update */);
 
     // Opt in to sending reports for invalid certificate chains.
@@ -1556,7 +1556,7 @@
   std::unique_ptr<base::SimpleTestClock> mock_clock(
       new base::SimpleTestClock());
   mock_clock->SetNow(base::Time::NowFromSystemTime());
-  mock_clock->Advance(base::TimeDelta::FromDays(367));
+  mock_clock->Advance(base::Days(367));
   SSLErrorHandler::SetClockForTesting(mock_clock.get());
   ssl_errors::SetBuildTimeForTesting(base::Time::NowFromSystemTime());
 
@@ -1577,9 +1577,9 @@
   // Set network forward ten minutes, which is sufficient to trigger
   // the interstitial.
   g_browser_process->network_time_tracker()->UpdateNetworkTime(
-      base::Time::Now() + base::TimeDelta::FromMinutes(10),
-      base::TimeDelta::FromMilliseconds(1),   /* resolution */
-      base::TimeDelta::FromMilliseconds(500), /* latency */
+      base::Time::Now() + base::Minutes(10),
+      base::Milliseconds(1),   /* resolution */
+      base::Milliseconds(500), /* latency */
       base::TimeTicks::Now() /* posting time of this update */);
 
   ASSERT_TRUE(ui_test_utils::NavigateToURL(
@@ -4588,7 +4588,7 @@
   // Set up the build and current clock times to be more than a year apart.
   base::SimpleTestClock mock_clock;
   mock_clock.SetNow(base::Time::NowFromSystemTime());
-  mock_clock.Advance(base::TimeDelta::FromDays(367));
+  mock_clock.Advance(base::Days(367));
   SSLErrorHandler::SetClockForTesting(&mock_clock);
   ssl_errors::SetBuildTimeForTesting(base::Time::NowFromSystemTime());
 
@@ -4695,8 +4695,7 @@
   ssl_errors::SetBuildTimeForTesting(testing_clock.Now());
 
   // Set a long timeout to ensure that the on-demand time fetch completes.
-  SSLErrorHandler::SetInterstitialDelayForTesting(
-      base::TimeDelta::FromHours(1));
+  SSLErrorHandler::SetInterstitialDelayForTesting(base::Hours(1));
 
   WebContents* contents = browser()->tab_strip_model()->GetActiveWebContents();
   ASSERT_TRUE(contents);
@@ -4738,14 +4737,13 @@
   SSLErrorHandler::SetClockForTesting(&testing_clock);
   testing_clock.SetNow(
       base::Time::FromJsTime(network_time::kGoodTimeResponseHandlerJsTime[0]));
-  testing_clock.Advance(base::TimeDelta::FromDays(30));
+  testing_clock.Advance(base::Days(30));
   // Set the build time to match the testing clock, to ensure that the
   // build time heuristic doesn't fire.
   ssl_errors::SetBuildTimeForTesting(testing_clock.Now());
 
   // Set a long timeout to ensure that the on-demand time fetch completes.
-  SSLErrorHandler::SetInterstitialDelayForTesting(
-      base::TimeDelta::FromHours(1));
+  SSLErrorHandler::SetInterstitialDelayForTesting(base::Hours(1));
 
   WebContents* contents = browser()->tab_strip_model()->GetActiveWebContents();
   ASSERT_TRUE(contents);
@@ -4807,8 +4805,7 @@
 IN_PROC_BROWSER_TEST_F(SSLNetworkTimeBrowserTest, StopBeforeTimeoutExpires) {
   ASSERT_TRUE(https_server_expired_.Start());
   // Set the timer to a long delay.
-  SSLErrorHandler::SetInterstitialDelayForTesting(
-      base::TimeDelta::FromHours(1));
+  SSLErrorHandler::SetInterstitialDelayForTesting(base::Hours(1));
 
   WebContents* contents = browser()->tab_strip_model()->GetActiveWebContents();
   ASSERT_TRUE(contents);
@@ -4845,8 +4842,7 @@
 IN_PROC_BROWSER_TEST_F(SSLNetworkTimeBrowserTest, ReloadBeforeTimeoutExpires) {
   ASSERT_TRUE(https_server_expired_.Start());
   // Set the timer to a long delay.
-  SSLErrorHandler::SetInterstitialDelayForTesting(
-      base::TimeDelta::FromHours(1));
+  SSLErrorHandler::SetInterstitialDelayForTesting(base::Hours(1));
 
   WebContents* contents = browser()->tab_strip_model()->GetActiveWebContents();
   SSLInterstitialTimerObserver interstitial_timer_observer(contents);
@@ -4883,8 +4879,7 @@
   ASSERT_TRUE(https_server_expired_.Start());
   ASSERT_TRUE(https_server_.Start());
   // Set the timer to a long delay.
-  SSLErrorHandler::SetInterstitialDelayForTesting(
-      base::TimeDelta::FromHours(1));
+  SSLErrorHandler::SetInterstitialDelayForTesting(base::Hours(1));
 
   WebContents* contents = browser()->tab_strip_model()->GetActiveWebContents();
   SSLInterstitialTimerObserver interstitial_timer_observer(contents);
@@ -5242,8 +5237,7 @@
   CommonNameMismatchHandler::set_state_for_testing(
       CommonNameMismatchHandler::IGNORE_REQUESTS_FOR_TESTING);
   // Set delay long enough so that the page appears loading.
-  SSLErrorHandler::SetInterstitialDelayForTesting(
-      base::TimeDelta::FromHours(1));
+  SSLErrorHandler::SetInterstitialDelayForTesting(base::Hours(1));
   SSLInterstitialTimerObserver interstitial_timer_observer(contents);
 
   ui_test_utils::NavigateToURLWithDisposition(
@@ -5305,8 +5299,7 @@
   CommonNameMismatchHandler::set_state_for_testing(
       CommonNameMismatchHandler::IGNORE_REQUESTS_FOR_TESTING);
   // Set delay long enough so that the page appears loading.
-  SSLErrorHandler::SetInterstitialDelayForTesting(
-      base::TimeDelta::FromHours(1));
+  SSLErrorHandler::SetInterstitialDelayForTesting(base::Hours(1));
   SSLInterstitialTimerObserver interstitial_timer_observer(contents);
 
   ui_test_utils::NavigateToURLWithDisposition(
@@ -5366,8 +5359,7 @@
   CommonNameMismatchHandler::set_state_for_testing(
       CommonNameMismatchHandler::IGNORE_REQUESTS_FOR_TESTING);
   // Set delay long enough so that the page appears loading.
-  SSLErrorHandler::SetInterstitialDelayForTesting(
-      base::TimeDelta::FromHours(1));
+  SSLErrorHandler::SetInterstitialDelayForTesting(base::Hours(1));
   SSLInterstitialTimerObserver interstitial_timer_observer(contents);
 
   ui_test_utils::NavigateToURLWithDisposition(
diff --git a/chrome/browser/ssl/ssl_browsertest_util.cc b/chrome/browser/ssl/ssl_browsertest_util.cc
index 807811d4..711e807d 100644
--- a/chrome/browser/ssl/ssl_browsertest_util.cc
+++ b/chrome/browser/ssl/ssl_browsertest_util.cc
@@ -195,7 +195,7 @@
 
 void SetHSTSForHostName(content::BrowserContext* context,
                         const std::string& hostname) {
-  const base::Time expiry = base::Time::Now() + base::TimeDelta::FromDays(1000);
+  const base::Time expiry = base::Time::Now() + base::Days(1000);
   bool include_subdomains = false;
   mojo::ScopedAllowSyncCallForTesting allow_sync_call;
   content::StoragePartition* partition = context->GetDefaultStoragePartition();
diff --git a/chrome/browser/ssl/stateful_ssl_host_state_delegate_test.cc b/chrome/browser/ssl/stateful_ssl_host_state_delegate_test.cc
index b557112..49bc67e 100644
--- a/chrome/browser/ssl/stateful_ssl_host_state_delegate_test.cc
+++ b/chrome/browser/ssl/stateful_ssl_host_state_delegate_test.cc
@@ -451,14 +451,14 @@
       net::ERR_CERTIFICATE_TRANSPARENCY_REQUIRED));
 
   // Move the clock backwards and test that the recurrent error state is reset.
-  clock->Advance(-base::TimeDelta::FromSeconds(10));
+  clock->Advance(-base::Seconds(10));
   chrome_state->DidDisplayErrorPage(net::ERR_CERTIFICATE_TRANSPARENCY_REQUIRED);
   EXPECT_FALSE(chrome_state->HasSeenRecurrentErrors(
       net::ERR_CERTIFICATE_TRANSPARENCY_REQUIRED));
 
   // If the clock continues to move forwards, a subsequent error page should
   // trigger the recurrent error message.
-  clock->Advance(base::TimeDelta::FromSeconds(10));
+  clock->Advance(base::Seconds(10));
   chrome_state->DidDisplayErrorPage(net::ERR_CERTIFICATE_TRANSPARENCY_REQUIRED);
   EXPECT_TRUE(chrome_state->HasSeenRecurrentErrors(
       net::ERR_CERTIFICATE_TRANSPARENCY_REQUIRED));
@@ -490,17 +490,17 @@
 
   // Subsequent errors more than 10 seconds later shouldn't trigger the
   // recurrent error message.
-  clock->Advance(base::TimeDelta::FromSeconds(12));
+  clock->Advance(base::Seconds(12));
   chrome_state->DidDisplayErrorPage(net::ERR_CERTIFICATE_TRANSPARENCY_REQUIRED);
   EXPECT_FALSE(chrome_state->HasSeenRecurrentErrors(
       net::ERR_CERTIFICATE_TRANSPARENCY_REQUIRED));
-  clock->Advance(base::TimeDelta::FromSeconds(3));
+  clock->Advance(base::Seconds(3));
   chrome_state->DidDisplayErrorPage(net::ERR_CERTIFICATE_TRANSPARENCY_REQUIRED);
   EXPECT_FALSE(chrome_state->HasSeenRecurrentErrors(
       net::ERR_CERTIFICATE_TRANSPARENCY_REQUIRED));
 
   // But a third subsequent error within 10 seconds should.
-  clock->Advance(base::TimeDelta::FromSeconds(3));
+  clock->Advance(base::Seconds(3));
   chrome_state->DidDisplayErrorPage(net::ERR_CERTIFICATE_TRANSPARENCY_REQUIRED);
   EXPECT_TRUE(chrome_state->HasSeenRecurrentErrors(
       net::ERR_CERTIFICATE_TRANSPARENCY_REQUIRED));
@@ -675,7 +675,7 @@
 
   // Simulate the clock advancing by one day, which is less than the expiration
   // length.
-  clock->Advance(base::TimeDelta::FromSeconds(kDeltaOneDayInSeconds + 1));
+  clock->Advance(base::Seconds(kDeltaOneDayInSeconds + 1));
 
   // The cert should still be |ALLOWED| because the default expiration length
   // has not passed yet.
@@ -685,8 +685,8 @@
 
   // Now simulate the clock advancing by one week, which is past the expiration
   // point.
-  clock->Advance(base::TimeDelta::FromSeconds(kDeltaOneWeekInSeconds -
-                                              kDeltaOneDayInSeconds + 1));
+  clock->Advance(
+      base::Seconds(kDeltaOneWeekInSeconds - kDeltaOneDayInSeconds + 1));
 
   // The cert should now be |DENIED| because the specified delta has passed.
   EXPECT_EQ(content::SSLHostStateDelegate::DENIED,
@@ -725,7 +725,7 @@
 
   // Simulate the clock advancing by one day, which is less than the expiration
   // length.
-  clock_ptr->Advance(base::TimeDelta::FromSeconds(kDeltaOneDayInSeconds + 1));
+  clock_ptr->Advance(base::Seconds(kDeltaOneDayInSeconds + 1));
 
   // HTTP should still be allowed because the default expiration length
   // has not passed yet.
@@ -733,8 +733,8 @@
 
   // Now simulate the clock advancing by one week, which is past the expiration
   // point.
-  clock_ptr->Advance(base::TimeDelta::FromSeconds(kDeltaOneWeekInSeconds -
-                                                  kDeltaOneDayInSeconds + 1));
+  clock_ptr->Advance(
+      base::Seconds(kDeltaOneWeekInSeconds - kDeltaOneDayInSeconds + 1));
 
   // HTTP should no longer be allowed because the specified delta has passed.
   EXPECT_FALSE(state->IsHttpAllowedForHost(kWWWGoogleHost, tab));
@@ -774,7 +774,7 @@
                                net::ERR_CERT_DATE_INVALID, tab));
 
   // Simulate the clock advancing by one week, the default expiration time.
-  clock->Advance(base::TimeDelta::FromSeconds(kDeltaOneWeekInSeconds + 1));
+  clock->Advance(base::Seconds(kDeltaOneWeekInSeconds + 1));
 
   // The decision expiration time has come, so it should indicate that the
   // certificate and error are DENIED.
@@ -810,7 +810,7 @@
   EXPECT_TRUE(state->IsHttpAllowedForHost(kWWWGoogleHost, tab));
 
   // Simulate the clock advancing by one week, the default expiration time.
-  clock_ptr->Advance(base::TimeDelta::FromSeconds(kDeltaOneWeekInSeconds + 1));
+  clock_ptr->Advance(base::Seconds(kDeltaOneWeekInSeconds + 1));
 
   // The decision expiration time has come, so this should now return false.
   EXPECT_FALSE(state->IsHttpAllowedForHost(kWWWGoogleHost, tab));
diff --git a/chrome/browser/ssl/typed_navigation_upgrade_throttle.cc b/chrome/browser/ssl/typed_navigation_upgrade_throttle.cc
index 743b8d8..d365430 100644
--- a/chrome/browser/ssl/typed_navigation_upgrade_throttle.cc
+++ b/chrome/browser/ssl/typed_navigation_upgrade_throttle.cc
@@ -32,8 +32,7 @@
 // - Otherwise, a new navigation to the the fallback HTTP URL is started.
 constexpr base::FeatureParam<base::TimeDelta> kFallbackDelay{
     &omnibox::kDefaultTypedNavigationsToHttps,
-    omnibox::kDefaultTypedNavigationsToHttpsTimeoutParam,
-    base::TimeDelta::FromSeconds(3)};
+    omnibox::kDefaultTypedNavigationsToHttpsTimeoutParam, base::Seconds(3)};
 
 int g_https_port_for_testing = 0;
 
diff --git a/chrome/browser/ssl/typed_navigation_upgrade_throttle_browsertest.cc b/chrome/browser/ssl/typed_navigation_upgrade_throttle_browsertest.cc
index 8e5aa3f..f2b87f6 100644
--- a/chrome/browser/ssl/typed_navigation_upgrade_throttle_browsertest.cc
+++ b/chrome/browser/ssl/typed_navigation_upgrade_throttle_browsertest.cc
@@ -147,7 +147,7 @@
   void SetUp() override {
     // Set the delay long enough so that the HTTPS navigation is guaranteed
     // to succeed or fail during this window.
-    SetUpFeature(base::TimeDelta::FromHours(12));
+    SetUpFeature(base::Hours(12));
     InProcessBrowserTest::SetUp();
   }
 
@@ -805,7 +805,7 @@
  protected:
   void SetUp() override {
     // Set timeout to zero so that HTTPS upgrades immediately timeout.
-    SetUpFeature(base::TimeDelta::FromSeconds(0));
+    SetUpFeature(base::Seconds(0));
     InProcessBrowserTest::SetUp();
   }
 };
diff --git a/chrome/browser/storage/storage_notification_service_impl.cc b/chrome/browser/storage/storage_notification_service_impl.cc
index f8b38745..62c1950 100644
--- a/chrome/browser/storage/storage_notification_service_impl.cc
+++ b/chrome/browser/storage/storage_notification_service_impl.cc
@@ -18,8 +18,7 @@
 namespace {
 
 // Minimum interval between consecutive storage pressure notifications.
-const base::TimeDelta kDiskPressureNotificationInterval =
-    base::TimeDelta::FromDays(1);
+const base::TimeDelta kDiskPressureNotificationInterval = base::Days(1);
 
 const base::TimeDelta GetThrottlingInterval() {
   base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
@@ -28,7 +27,7 @@
     const std::string string_value = command_line->GetSwitchValueASCII(
         switches::kStoragePressureNotificationInterval);
     if (base::StringToInt(string_value, &int_value) && int_value >= 0) {
-      return base::TimeDelta::FromMinutes(int_value);
+      return base::Minutes(int_value);
     }
   }
   return kDiskPressureNotificationInterval;
diff --git a/chrome/browser/storage_access_api/api_browsertest.cc b/chrome/browser/storage_access_api/api_browsertest.cc
index 0284262..0c5c0e7 100644
--- a/chrome/browser/storage_access_api/api_browsertest.cc
+++ b/chrome/browser/storage_access_api/api_browsertest.cc
@@ -539,8 +539,7 @@
   storage::test::CheckStorageAccessForFrame(GetNestedFrame(), false);
 
   // Manually create a pre-expired grant and ensure it doesn't grant access.
-  base::Time expiration_time =
-      base::Time::Now() - base::TimeDelta::FromMinutes(5);
+  base::Time expiration_time = base::Time::Now() - base::Minutes(5);
   HostContentSettingsMap* settings_map =
       HostContentSettingsMapFactory::GetForProfile(browser()->profile());
   settings_map->SetContentSettingDefaultScope(
diff --git a/chrome/browser/storage_access_api/storage_access_grant_permission_context.cc b/chrome/browser/storage_access_api/storage_access_grant_permission_context.cc
index 6cbf239..d7ab6253 100644
--- a/chrome/browser/storage_access_api/storage_access_grant_permission_context.cc
+++ b/chrome/browser/storage_access_api/storage_access_grant_permission_context.cc
@@ -28,10 +28,8 @@
 
 namespace {
 
-constexpr base::TimeDelta kImplicitGrantDuration =
-    base::TimeDelta::FromHours(24);
-constexpr base::TimeDelta kExplicitGrantDuration =
-    base::TimeDelta::FromDays(30);
+constexpr base::TimeDelta kImplicitGrantDuration = base::Hours(24);
+constexpr base::TimeDelta kExplicitGrantDuration = base::Days(30);
 
 const base::FeatureParam<int> kImplicitGrantLimit{
     &blink::features::kStorageAccessAPI,
diff --git a/chrome/browser/subresource_filter/ads_intervention_manager_browsertest.cc b/chrome/browser/subresource_filter/ads_intervention_manager_browsertest.cc
index 868da35..9c54866 100644
--- a/chrome/browser/subresource_filter/ads_intervention_manager_browsertest.cc
+++ b/chrome/browser/subresource_filter/ads_intervention_manager_browsertest.cc
@@ -191,14 +191,14 @@
   // Advance the clock by less than kAdsInterventionDuration and trigger another
   // intervention. This intervention is a no-op.
   test_clock->Advance(subresource_filter::kAdsInterventionDuration.Get() -
-                      base::TimeDelta::FromMinutes(30));
+                      base::Minutes(30));
   current_throttle_manager()->OnAdsViolationTriggered(
       web_contents()->GetMainFrame(),
       mojom::AdsViolation::kMobileAdDensityByHeightAbove30);
 
   // Advance the clock to to kAdsInterventionDuration from the first
   // intervention, this clear the intervention.
-  test_clock->Advance(base::TimeDelta::FromMinutes(30));
+  test_clock->Advance(base::Minutes(30));
   ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), url));
 
   EXPECT_TRUE(WasParsedScriptElementLoaded(web_contents()->GetMainFrame()));
@@ -273,7 +273,7 @@
       web_contents()->GetMainFrame(),
       mojom::AdsViolation::kMobileAdDensityByHeightAbove30);
 
-  const base::TimeDelta kRenavigationDelay = base::TimeDelta::FromHours(2);
+  const base::TimeDelta kRenavigationDelay = base::Hours(2);
   test_clock->Advance(kRenavigationDelay);
   ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), url));
 
diff --git a/chrome/browser/subresource_filter/subresource_filter_intercepting_browsertest.cc b/chrome/browser/subresource_filter/subresource_filter_intercepting_browsertest.cc
index 10e1c05..a3ffe561f 100644
--- a/chrome/browser/subresource_filter/subresource_filter_intercepting_browsertest.cc
+++ b/chrome/browser/subresource_filter/subresource_filter_intercepting_browsertest.cc
@@ -175,7 +175,7 @@
   //   it's not ideal.  Look into using a ControllableHttpResponse for each
   //   request, and completing the first after we know the second got to
   //   the activation throttle and check that it didn't call NotifyResults.
-  base::TimeDelta delay = base::TimeDelta::FromSeconds(2);
+  base::TimeDelta delay = base::Seconds(2);
   ASSERT_NO_FATAL_FAILURE(
       SetRulesetToDisallowURLsWithPathSuffix("included_script.js"));
   GURL redirect_url(embedded_test_server()->GetURL(
@@ -196,8 +196,8 @@
       SetRulesetToDisallowURLsWithPathSuffix("included_script.js"));
   GURL redirect_url(embedded_test_server()->GetURL(
       "b.com", "/subresource_filter/frame_with_included_script.html"));
-  GURL url = InitializeSafeBrowsingForOutOfOrderResponses(
-      "a.com", redirect_url, base::TimeDelta::FromSeconds(0));
+  GURL url = InitializeSafeBrowsingForOutOfOrderResponses("a.com", redirect_url,
+                                                          base::Seconds(0));
   ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), url));
   EXPECT_TRUE(WasParsedScriptElementLoaded(web_contents()->GetMainFrame()));
 }
diff --git a/chrome/browser/subresource_redirect/litepages_service_bypass_decider_unittest.cc b/chrome/browser/subresource_redirect/litepages_service_bypass_decider_unittest.cc
index 0a6ef03..f48680e9 100644
--- a/chrome/browser/subresource_redirect/litepages_service_bypass_decider_unittest.cc
+++ b/chrome/browser/subresource_redirect/litepages_service_bypass_decider_unittest.cc
@@ -41,13 +41,13 @@
       "SubresourceRedirect.LitePagesService.BypassResult", true, 1);
 
   // Subsequent fetches are bypassed until a minimum of one minute.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(59));
+  task_environment_.FastForwardBy(base::Seconds(59));
   EXPECT_FALSE(litepages_service_bypass_decider_.ShouldAllowNow());
   histogram_tester_.ExpectBucketCount(
       "SubresourceRedirect.LitePagesService.BypassResult", true, 2);
 
   // After another 5 minutes, bypass should get disabled.
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(5));
+  task_environment_.FastForwardBy(base::Minutes(5));
   EXPECT_TRUE(litepages_service_bypass_decider_.ShouldAllowNow());
   histogram_tester_.ExpectBucketCount(
       "SubresourceRedirect.LitePagesService.BypassResult", false, 1);
@@ -55,15 +55,14 @@
 
 TEST_F(LitePagesServiceBypassDeciderTest, TestExactBypass) {
   // Bypass for 30 seconds
-  litepages_service_bypass_decider_.NotifyFetchFailure(
-      base::TimeDelta::FromSeconds(30));
+  litepages_service_bypass_decider_.NotifyFetchFailure(base::Seconds(30));
   histogram_tester_.ExpectUniqueSample("SubresourceRedirect.BypassDuration",
                                        30000, 1);
   EXPECT_FALSE(litepages_service_bypass_decider_.ShouldAllowNow());
   histogram_tester_.ExpectUniqueSample(
       "SubresourceRedirect.LitePagesService.BypassResult", true, 1);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(31));
+  task_environment_.FastForwardBy(base::Seconds(31));
   EXPECT_TRUE(litepages_service_bypass_decider_.ShouldAllowNow());
   histogram_tester_.ExpectBucketCount(
       "SubresourceRedirect.LitePagesService.BypassResult", false, 1);
@@ -71,15 +70,14 @@
 
 TEST_F(LitePagesServiceBypassDeciderTest, TestInvalidBypassDuration) {
   // Bypass for too long duration will limit the bypass to only 5 minutes.
-  litepages_service_bypass_decider_.NotifyFetchFailure(
-      base::TimeDelta::FromMinutes(6));
+  litepages_service_bypass_decider_.NotifyFetchFailure(base::Minutes(6));
   histogram_tester_.ExpectUniqueSample("SubresourceRedirect.BypassDuration",
                                        5 * 60 * 1000, 1);
   EXPECT_FALSE(litepages_service_bypass_decider_.ShouldAllowNow());
   histogram_tester_.ExpectUniqueSample(
       "SubresourceRedirect.LitePagesService.BypassResult", true, 1);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(6));
+  task_environment_.FastForwardBy(base::Minutes(6));
   EXPECT_TRUE(litepages_service_bypass_decider_.ShouldAllowNow());
   histogram_tester_.ExpectBucketCount(
       "SubresourceRedirect.LitePagesService.BypassResult", false, 1);
diff --git a/chrome/browser/subresource_redirect/origin_robots_rules_unittest.cc b/chrome/browser/subresource_redirect/origin_robots_rules_unittest.cc
index d812e45..5eddde3 100644
--- a/chrome/browser/subresource_redirect/origin_robots_rules_unittest.cc
+++ b/chrome/browser/subresource_redirect/origin_robots_rules_unittest.cc
@@ -231,9 +231,9 @@
   histogram_tester_.ExpectUniqueSample(
       "SubresourceRedirect.RobotsRulesFetcher.ResponseCode",
       net::HTTP_INTERNAL_SERVER_ERROR, 1);
-  EXPECT_THAT(*GetResponseErrorReceived(),
-              testing::Pair(net::HTTP_INTERNAL_SERVER_ERROR,
-                            base::TimeDelta::FromSeconds(120)));
+  EXPECT_THAT(
+      *GetResponseErrorReceived(),
+      testing::Pair(net::HTTP_INTERNAL_SERVER_ERROR, base::Seconds(120)));
   EXPECT_THAT(GetRobotsRulesReceived(), testing::ElementsAre(absl::nullopt));
 
   // Subsequent calls will return the response immediately.
diff --git a/chrome/browser/subresource_redirect/subresource_redirect_util.cc b/chrome/browser/subresource_redirect/subresource_redirect_util.cc
index bf9ae5e..9dff0f6 100644
--- a/chrome/browser/subresource_redirect/subresource_redirect_util.cc
+++ b/chrome/browser/subresource_redirect/subresource_redirect_util.cc
@@ -146,7 +146,7 @@
 
 base::TimeDelta GetLitePagesBypassRandomDuration() {
   // Default is a random duration between 1 to 5 minutes.
-  return base::TimeDelta::FromSeconds(
+  return base::Seconds(
       base::RandInt(base::GetFieldTrialParamByFeatureAsInt(
                         blink::features::kSubresourceRedirect,
                         "litepages_bypass_random_duration_min_secs", 60),
@@ -156,7 +156,7 @@
 }
 
 base::TimeDelta GetLitePagesBypassMaxDuration() {
-  return base::TimeDelta::FromSeconds(base::GetFieldTrialParamByFeatureAsInt(
+  return base::Seconds(base::GetFieldTrialParamByFeatureAsInt(
       blink::features::kSubresourceRedirect,
       "litepages_bypass_max_duration_secs", 300));
 }
diff --git a/chrome/browser/supervised_user/child_accounts/child_account_service.cc b/chrome/browser/supervised_user/child_accounts/child_account_service.cc
index 18bd3396..2e9d01d 100644
--- a/chrome/browser/supervised_user/child_accounts/child_account_service.cc
+++ b/chrome/browser/supervised_user/child_accounts/child_account_service.cc
@@ -316,8 +316,7 @@
 
   family_fetch_backoff_.InformOfRequest(true);
 
-  ScheduleNextFamilyInfoUpdate(
-      base::TimeDelta::FromSeconds(kUpdateIntervalSeconds));
+  ScheduleNextFamilyInfoUpdate(base::Seconds(kUpdateIntervalSeconds));
 }
 
 void ChildAccountService::OnFailure(FamilyInfoFetcher::ErrorCode error) {
diff --git a/chrome/browser/supervised_user/child_accounts/family_info_fetcher_unittest.cc b/chrome/browser/supervised_user/child_accounts/family_info_fetcher_unittest.cc
index eb91b50..4bc1c364 100644
--- a/chrome/browser/supervised_user/child_accounts/family_info_fetcher_unittest.cc
+++ b/chrome/browser/supervised_user/child_accounts/family_info_fetcher_unittest.cc
@@ -183,7 +183,7 @@
     identity_test_env_.WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
         identity_test_env_.identity_manager()->GetPrimaryAccountId(
             signin::ConsentLevel::kSignin),
-        "access_token", base::Time::Now() + base::TimeDelta::FromHours(1));
+        "access_token", base::Time::Now() + base::Hours(1));
   }
 
   void SendResponse(net::Error error, const std::string& response) {
diff --git a/chrome/browser/supervised_user/child_accounts/permission_request_creator_apiary_unittest.cc b/chrome/browser/supervised_user/child_accounts/permission_request_creator_apiary_unittest.cc
index 00b94c1..7a79d51 100644
--- a/chrome/browser/supervised_user/child_accounts/permission_request_creator_apiary_unittest.cc
+++ b/chrome/browser/supervised_user/child_accounts/permission_request_creator_apiary_unittest.cc
@@ -56,8 +56,7 @@
  protected:
   void IssueAccessTokens() {
     identity_test_env_.WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
-        account_id_, "access_token",
-        base::Time::Now() + base::TimeDelta::FromHours(1));
+        account_id_, "access_token", base::Time::Now() + base::Hours(1));
   }
 
   void IssueAccessTokenErrors() {
diff --git a/chrome/browser/sync/test/integration/retry_verifier.cc b/chrome/browser/sync/test/integration/retry_verifier.cc
index 56c90b4..67091f0 100644
--- a/chrome/browser/sync/test/integration/retry_verifier.cc
+++ b/chrome/browser/sync/test/integration/retry_verifier.cc
@@ -18,20 +18,19 @@
 // the next retry. This is analogous to the production logic in
 // BackoffDelayProvider::GetDelay().
 DelayInfo CalculateDelay(base::TimeDelta current_delay) {
-  base::TimeDelta backoff =
-      std::max(base::TimeDelta::FromSeconds(1),
-               current_delay * syncer::kBackoffMultiplyFactor);
+  base::TimeDelta backoff = std::max(
+      base::Seconds(1), current_delay * syncer::kBackoffMultiplyFactor);
 
   DelayInfo delay_info;
   delay_info.min_delay = backoff - current_delay * syncer::kBackoffJitterFactor;
   delay_info.max_delay = backoff + current_delay * syncer::kBackoffJitterFactor;
 
   delay_info.min_delay =
-      std::max(base::TimeDelta::FromSeconds(1),
+      std::max(base::Seconds(1),
                std::min(delay_info.min_delay, syncer::kMaxBackoffTime));
 
   delay_info.max_delay =
-      std::max(base::TimeDelta::FromSeconds(1),
+      std::max(base::Seconds(1),
                std::min(delay_info.max_delay, syncer::kMaxBackoffTime));
 
   return delay_info;
diff --git a/chrome/browser/sync/test/integration/single_client_history_delete_directives_sync_test.cc b/chrome/browser/sync/test/integration/single_client_history_delete_directives_sync_test.cc
index cb2899b2..ba61a09 100644
--- a/chrome/browser/sync/test/integration/single_client_history_delete_directives_sync_test.cc
+++ b/chrome/browser/sync/test/integration/single_client_history_delete_directives_sync_test.cc
@@ -98,7 +98,7 @@
     base::CancelableTaskTracker task_tracker;
     history_service->GetHistoryCount(
         /*begin_time=*/time,
-        /*end_time=*/time + base::TimeDelta::FromMicroseconds(1),
+        /*end_time=*/time + base::Microseconds(1),
         base::BindLambdaForTesting([&](history::HistoryCountResult result) {
           ASSERT_TRUE(result.success);
           exists = (result.count != 0);
diff --git a/chrome/browser/sync/test/integration/single_client_polling_sync_test.cc b/chrome/browser/sync/test/integration/single_client_polling_sync_test.cc
index 286dd59..e330f69d 100644
--- a/chrome/browser/sync/test/integration/single_client_polling_sync_test.cc
+++ b/chrome/browser/sync/test/integration/single_client_polling_sync_test.cc
@@ -106,7 +106,7 @@
   // Set small polling interval to make random delays introduced in
   // SyncSchedulerImpl::ComputeLastPollOnStart() negligible, but big enough to
   // avoid periodic polls during a test run.
-  remote_prefs.SetPollInterval(base::TimeDelta::FromSeconds(300));
+  remote_prefs.SetPollInterval(base::Seconds(300));
 
   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
 
diff --git a/chrome/browser/sync/test/integration/single_client_sessions_sync_test.cc b/chrome/browser/sync/test/integration/single_client_sessions_sync_test.cc
index 75b5a86..b63e069a 100644
--- a/chrome/browser/sync/test/integration/single_client_sessions_sync_test.cc
+++ b/chrome/browser/sync/test/integration/single_client_sessions_sync_test.cc
@@ -651,8 +651,7 @@
   const SessionID kWindowId = SessionID::FromSerializedValue(5);
   const SessionID kTabId1 = SessionID::FromSerializedValue(1);
   const SessionID kTabId2 = SessionID::FromSerializedValue(2);
-  const base::Time kLastModifiedTime =
-      base::Time::Now() - base::TimeDelta::FromDays(100);
+  const base::Time kLastModifiedTime = base::Time::Now() - base::Days(100);
 
   SessionSyncTestHelper helper;
 
@@ -705,8 +704,7 @@
   const SessionID kWindowId = SessionID::FromSerializedValue(5);
   const SessionID kTabId1 = SessionID::FromSerializedValue(1);
   const SessionID kTabId2 = SessionID::FromSerializedValue(2);
-  const base::Time kLastModifiedTime =
-      base::Time::Now() - base::TimeDelta::FromDays(100);
+  const base::Time kLastModifiedTime = base::Time::Now() - base::Days(100);
 
   SessionSyncTestHelper helper;
 
diff --git a/chrome/browser/sync/test/integration/single_client_user_events_sync_test.cc b/chrome/browser/sync/test/integration/single_client_user_events_sync_test.cc
index 37ffb9ec..5d31d49 100644
--- a/chrome/browser/sync/test/integration/single_client_user_events_sync_test.cc
+++ b/chrome/browser/sync/test/integration/single_client_user_events_sync_test.cc
@@ -62,9 +62,9 @@
 IN_PROC_BROWSER_TEST_F(SingleClientUserEventsSyncTest, RetrySequential) {
   ASSERT_TRUE(SetupSync());
   const UserEventSpecifics specifics1 =
-      CreateTestEvent(base::Time() + base::TimeDelta::FromMicroseconds(1));
+      CreateTestEvent(base::Time() + base::Microseconds(1));
   const UserEventSpecifics specifics2 =
-      CreateTestEvent(base::Time() + base::TimeDelta::FromMicroseconds(2));
+      CreateTestEvent(base::Time() + base::Microseconds(2));
   syncer::UserEventService* event_service =
       browser_sync::UserEventServiceFactory::GetForProfile(GetProfile(0));
 
@@ -91,9 +91,9 @@
   ASSERT_TRUE(SetupSync());
 
   const UserEventSpecifics specifics1 =
-      CreateTestEvent(base::Time() + base::TimeDelta::FromMicroseconds(1));
+      CreateTestEvent(base::Time() + base::Microseconds(1));
   const UserEventSpecifics specifics2 =
-      CreateTestEvent(base::Time() + base::TimeDelta::FromMicroseconds(2));
+      CreateTestEvent(base::Time() + base::Microseconds(2));
 
   syncer::UserEventService* event_service =
       browser_sync::UserEventServiceFactory::GetForProfile(GetProfile(0));
@@ -131,11 +131,11 @@
 
 IN_PROC_BROWSER_TEST_F(SingleClientUserEventsSyncTest, NoHistory) {
   const UserEventSpecifics test_event1 =
-      CreateTestEvent(base::Time() + base::TimeDelta::FromMicroseconds(1));
+      CreateTestEvent(base::Time() + base::Microseconds(1));
   const UserEventSpecifics test_event2 =
-      CreateTestEvent(base::Time() + base::TimeDelta::FromMicroseconds(2));
+      CreateTestEvent(base::Time() + base::Microseconds(2));
   const UserEventSpecifics test_event3 =
-      CreateTestEvent(base::Time() + base::TimeDelta::FromMicroseconds(3));
+      CreateTestEvent(base::Time() + base::Microseconds(3));
 
   ASSERT_TRUE(SetupSync());
   syncer::UserEventService* event_service =
@@ -161,7 +161,7 @@
 
 IN_PROC_BROWSER_TEST_F(SingleClientUserEventsSyncTest, NoSessions) {
   const UserEventSpecifics specifics =
-      CreateTestEvent(base::Time() + base::TimeDelta::FromMicroseconds(1));
+      CreateTestEvent(base::Time() + base::Microseconds(1));
   ASSERT_TRUE(SetupSync());
   ASSERT_TRUE(
       GetClient(0)->DisableSyncForType(syncer::UserSelectableType::kTabs));
@@ -176,9 +176,9 @@
 
 IN_PROC_BROWSER_TEST_F(SingleClientUserEventsSyncTest, Encryption) {
   const UserEventSpecifics test_event1 =
-      CreateTestEvent(base::Time() + base::TimeDelta::FromMicroseconds(1));
+      CreateTestEvent(base::Time() + base::Microseconds(1));
   const UserEventSpecifics test_event2 =
-      CreateTestEvent(base::Time() + base::TimeDelta::FromMicroseconds(2));
+      CreateTestEvent(base::Time() + base::Microseconds(2));
 
   ASSERT_TRUE(SetupSync());
   syncer::UserEventService* event_service =
@@ -202,7 +202,7 @@
 IN_PROC_BROWSER_TEST_F(SingleClientUserEventsSyncTest,
                        ShouldNotUploadInSyncPausedState) {
   const UserEventSpecifics test_event =
-      CreateTestEvent(base::Time() + base::TimeDelta::FromMicroseconds(1));
+      CreateTestEvent(base::Time() + base::Microseconds(1));
 
   ASSERT_TRUE(SetupSync());
   ASSERT_TRUE(GetSyncService(0)->IsSyncFeatureActive());
diff --git a/chrome/browser/sync/test/integration/single_client_wallet_sync_test.cc b/chrome/browser/sync/test/integration/single_client_wallet_sync_test.cc
index b82df56..696de56c 100644
--- a/chrome/browser/sync/test/integration/single_client_wallet_sync_test.cc
+++ b/chrome/browser/sync/test/integration/single_client_wallet_sync_test.cc
@@ -253,9 +253,7 @@
         .Wait();
   }
 
-  void AdvanceAutofillClockByOneDay() {
-    test_clock_.Advance(base::TimeDelta::FromDays(1));
-  }
+  void AdvanceAutofillClockByOneDay() { test_clock_.Advance(base::Days(1)); }
 
   testing::NiceMock<PersonalDataLoadedObserverMock> personal_data_observer_;
   base::HistogramTester histogram_tester_;
diff --git a/chrome/browser/sync/test/integration/single_client_workspace_desk_sync_test.cc b/chrome/browser/sync/test/integration/single_client_workspace_desk_sync_test.cc
index 1f52a93..ba677f7 100644
--- a/chrome/browser/sync/test/integration/single_client_workspace_desk_sync_test.cc
+++ b/chrome/browser/sync/test/integration/single_client_workspace_desk_sync_test.cc
@@ -57,8 +57,7 @@
       const SingleClientWorkspaceDeskSyncTest&) = delete;
   ~SingleClientWorkspaceDeskSyncTest() override = default;
 
-  base::Time AdvanceAndGetTime(
-      base::TimeDelta delta = base::TimeDelta::FromMilliseconds(10)) {
+  base::Time AdvanceAndGetTime(base::TimeDelta delta = base::Milliseconds(10)) {
     clock_.Advance(delta);
     return clock_.Now();
   }
diff --git a/chrome/browser/sync/test/integration/status_change_checker.cc b/chrome/browser/sync/test/integration/status_change_checker.cc
index 8952933..3ac2327c 100644
--- a/chrome/browser/sync/test/integration/status_change_checker.cc
+++ b/chrome/browser/sync/test/integration/status_change_checker.cc
@@ -16,7 +16,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kDefaultTimeout = base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kDefaultTimeout = base::Seconds(30);
 
 base::TimeDelta GetTimeoutFromCommandLineOrDefault() {
   if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
@@ -31,7 +31,7 @@
     LOG(FATAL) << "Timeout value \"" << timeout_string << "\" was parsed as "
                << timeout_in_seconds;
   }
-  return base::TimeDelta::FromSeconds(timeout_in_seconds);
+  return base::Seconds(timeout_in_seconds);
 }
 
 }  // namespace
diff --git a/chrome/browser/sync/test/integration/sync_auth_test.cc b/chrome/browser/sync/test/integration/sync_auth_test.cc
index a83133ff..f7cc51b 100644
--- a/chrome/browser/sync/test/integration/sync_auth_test.cc
+++ b/chrome/browser/sync/test/integration/sync_auth_test.cc
@@ -292,7 +292,7 @@
   std::string old_token = GetSyncService(0)->GetAccessTokenForTest();
 
   // Wait until the token has expired.
-  base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(5));
+  base::PlatformThread::Sleep(base::Seconds(5));
 
   // Trigger an auth error on the server so PSS requests OA2TS for a new token
   // during the next sync cycle.
diff --git a/chrome/browser/sync/test/integration/sync_errors_test.cc b/chrome/browser/sync/test/integration/sync_errors_test.cc
index d2cd916e..b86ae52 100644
--- a/chrome/browser/sync/test/integration/sync_errors_test.cc
+++ b/chrome/browser/sync/test/integration/sync_errors_test.cc
@@ -340,7 +340,7 @@
       browser_sync::UserEventServiceFactory::GetForProfile(GetProfile(0));
   const sync_pb::UserEventSpecifics specifics =
       CreateTestEvent(base::Time::FromDeltaSinceWindowsEpoch(
-          base::TimeDelta::FromMicroseconds(kUserEventTimeUsec)));
+          base::Microseconds(kUserEventTimeUsec)));
   event_service->RecordUserEvent(specifics);
 
   // Wait for a commit message containing the user event. However the commit
@@ -373,7 +373,7 @@
 
   const sync_pb::UserEventSpecifics expected_specifics =
       CreateTestEvent(base::Time::FromDeltaSinceWindowsEpoch(
-          base::TimeDelta::FromMicroseconds(kUserEventTimeUsec)));
+          base::Microseconds(kUserEventTimeUsec)));
   EXPECT_TRUE(UserEventEqualityChecker(GetSyncService(0), GetFakeServer(),
                                        {{expected_specifics}})
                   .Wait());
diff --git a/chrome/browser/sync/test/integration/sync_exponential_backoff_test.cc b/chrome/browser/sync/test/integration/sync_exponential_backoff_test.cc
index 7834806a..43938a41 100644
--- a/chrome/browser/sync/test/integration/sync_exponential_backoff_test.cc
+++ b/chrome/browser/sync/test/integration/sync_exponential_backoff_test.cc
@@ -128,7 +128,7 @@
   base::TimeDelta recovery_time =
       GetSyncService(0)->GetLastCycleSnapshotForDebugging().sync_start_time() -
       network_notification_time;
-  EXPECT_LE(recovery_time, base::TimeDelta::FromSeconds(2));
+  EXPECT_LE(recovery_time, base::Seconds(2));
 }
 
 IN_PROC_BROWSER_TEST_F(SyncExponentialBackoffTest, ServerRedirect) {
diff --git a/chrome/browser/sync/test/integration/sync_service_impl_harness.cc b/chrome/browser/sync/test/integration/sync_service_impl_harness.cc
index 25e88e7..922d1c0 100644
--- a/chrome/browser/sync/test/integration/sync_service_impl_harness.cc
+++ b/chrome/browser/sync/test/integration/sync_service_impl_harness.cc
@@ -158,7 +158,7 @@
       std::move(resource_request), TRAFFIC_ANNOTATION_FOR_TESTS);
   simple_loader->AttachStringForUpload(request_to_send,
                                        "application/octet-stream");
-  simple_loader->SetTimeoutDuration(base::TimeDelta::FromSeconds(10));
+  simple_loader->SetTimeoutDuration(base::Seconds(10));
   content::SimpleURLLoaderTestHelper url_loader_helper;
   simple_loader->DownloadToStringOfUnboundedSizeUntilCrashAndDie(
       url_loader_factory, url_loader_helper.GetCallback());
diff --git a/chrome/browser/sync/test/integration/two_client_passwords_sync_test.cc b/chrome/browser/sync/test/integration/two_client_passwords_sync_test.cc
index 7ed0e9d1..930faef 100644
--- a/chrome/browser/sync/test/integration/two_client_passwords_sync_test.cc
+++ b/chrome/browser/sync/test/integration/two_client_passwords_sync_test.cc
@@ -97,7 +97,7 @@
   // be merged such that recent passwords are chosen.
 
   base::Time now = base::Time::Now();
-  base::Time yesterday = now - base::TimeDelta::FromDays(1);
+  base::Time yesterday = now - base::Days(1);
 
   PasswordForm form0_recent = CreateTestPasswordForm(0);
   form0_recent.date_created = now;
diff --git a/chrome/browser/sync/test/integration/two_client_polling_sync_test.cc b/chrome/browser/sync/test/integration/two_client_polling_sync_test.cc
index b91091266..1784d5b 100644
--- a/chrome/browser/sync/test/integration/two_client_polling_sync_test.cc
+++ b/chrome/browser/sync/test/integration/two_client_polling_sync_test.cc
@@ -122,11 +122,11 @@
   // Note: SyncSchedulerImpl delays a poll on startup by up to 1% of the poll
   // interval. 1% of 4 hours (the default poll interval) is still a while, so
   // set a shorter poll interval here.
-  base::TimeDelta poll_interval = base::TimeDelta::FromMinutes(2);
+  base::TimeDelta poll_interval = base::Minutes(2);
   remote_transport_data_prefs.SetPollInterval(poll_interval);
   base::Time remote_start = base::Time::Now();
   base::Time new_last_poll_time =
-      remote_start - poll_interval - base::TimeDelta::FromMilliseconds(100);
+      remote_start - poll_interval - base::Milliseconds(100);
   remote_transport_data_prefs.SetLastPollTime(new_last_poll_time);
   ASSERT_TRUE(GetClient(1)->StartSyncService()) << "SetupSync() failed.";
   GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1));
diff --git a/chrome/browser/sync/test/integration/two_client_printers_sync_test.cc b/chrome/browser/sync/test/integration/two_client_printers_sync_test.cc
index aefbe3f40..131b07f 100644
--- a/chrome/browser/sync/test/integration/two_client_printers_sync_test.cc
+++ b/chrome/browser/sync/test/integration/two_client_printers_sync_test.cc
@@ -136,7 +136,7 @@
       EditPrinterDescription(GetPrinterStore(1), 0, kOverwrittenDescription));
 
   // Wait for a non-zero period (200ms) for modification timestamps to differ.
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(200));
+  base::PlatformThread::Sleep(base::Milliseconds(200));
 
   // Client 0 goes offline, to make this test deterministic (client 1 commits
   // first).
@@ -185,7 +185,7 @@
       EditPrinterDescription(GetPrinterStore(1), 0, kOverwrittenDescription));
 
   // Wait for a non-zero period (200ms) for modification timestamps to differ.
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(200));
+  base::PlatformThread::Sleep(base::Milliseconds(200));
 
   // Client 0 makes a change to the same printer.
   ASSERT_TRUE(
diff --git a/chrome/browser/sync/test/integration/two_client_typed_urls_sync_test.cc b/chrome/browser/sync/test/integration/two_client_typed_urls_sync_test.cc
index f52476a..40428bb7 100644
--- a/chrome/browser/sync/test/integration/two_client_typed_urls_sync_test.cc
+++ b/chrome/browser/sync/test/integration/two_client_typed_urls_sync_test.cc
@@ -121,7 +121,7 @@
   // Populate one client with a URL, should sync to the other.
   GURL new_url(kHistoryUrl);
   // Create a URL with a timestamp 1 year before today.
-  base::Time timestamp = base::Time::Now() - base::TimeDelta::FromDays(365);
+  base::Time timestamp = base::Time::Now() - base::Days(365);
   AddUrlToHistoryWithTimestamp(0, new_url, ui::PAGE_TRANSITION_TYPED,
                                history::SOURCE_BROWSED, timestamp);
   history::URLRows urls = GetTypedUrlsFromClient(0);
@@ -153,7 +153,7 @@
   // Populate one client with a URL, should sync to the other.
   GURL new_url(kHistoryUrl);
   // Create a URL with a timestamp 1 year before today.
-  base::Time timestamp = base::Time::Now() - base::TimeDelta::FromDays(365);
+  base::Time timestamp = base::Time::Now() - base::Days(365);
   AddUrlToHistoryWithTimestamp(0, new_url, ui::PAGE_TRANSITION_TYPED,
                                history::SOURCE_BROWSED, timestamp);
   std::vector<history::URLRow> urls = GetTypedUrlsFromClient(0);
@@ -198,7 +198,7 @@
 
   // Populate one client with a URL, should sync to the other.
   GURL url("http://www.add-one-history.google.com/");
-  base::Time insertion_time = now - base::TimeDelta::FromDays(1);
+  base::Time insertion_time = now - base::Days(1);
   AddUrlToHistoryWithTimestamp(0, url, ui::PAGE_TRANSITION_TYPED,
                                history::SOURCE_BROWSED, insertion_time);
   std::vector<history::URLRow> urls = GetTypedUrlsFromClient(0);
@@ -214,7 +214,7 @@
   EXPECT_TRUE(CheckSyncHasURLMetadata(1, url));
 
   // Expire the url on the second client.
-  ExpireHistoryBefore(1, insertion_time + base::TimeDelta::FromSeconds(1));
+  ExpireHistoryBefore(1, insertion_time + base::Seconds(1));
 
   // The data and the metadata should be gone on the second client.
   ASSERT_EQ(0U, GetTypedUrlsFromClient(1).size());
@@ -238,7 +238,7 @@
 
   // Populate one client with a URL, should sync to the other.
   GURL url("http://www.add-one-history.google.com/");
-  base::Time insertion_time = now - base::TimeDelta::FromDays(1);
+  base::Time insertion_time = now - base::Days(1);
   AddUrlToHistoryWithTimestamp(0, url, ui::PAGE_TRANSITION_TYPED,
                                history::SOURCE_BROWSED, insertion_time);
   std::vector<history::URLRow> urls = GetTypedUrlsFromClient(0);
@@ -255,7 +255,7 @@
   EXPECT_TRUE(CheckSyncHasURLMetadata(0, url));
 
   // Expire the url on the first client.
-  ExpireHistoryBefore(0, insertion_time + base::TimeDelta::FromSeconds(1));
+  ExpireHistoryBefore(0, insertion_time + base::Seconds(1));
 
   // The data and the metadata should be gone on the first client.
   ASSERT_EQ(0U, GetTypedUrlsFromClient(0).size());
@@ -291,12 +291,12 @@
   // Populate one client with a URL (with three visits), should sync to the
   // other. First non-typed, then typed, then non-typed again.
   GURL url("http://www.add-one-history.google.com/");
-  base::Time insertion_time = now - base::TimeDelta::FromDays(6);
-  base::Time second_typed_visit_time = now - base::TimeDelta::FromDays(5);
-  base::Time third_link_visit_time = now - base::TimeDelta::FromDays(4);
-  base::Time dummy_visit_1 = now - base::TimeDelta::FromDays(3);
-  base::Time dummy_visit_2 = now - base::TimeDelta::FromDays(2);
-  base::Time dummy_visit_3 = now - base::TimeDelta::FromDays(1);
+  base::Time insertion_time = now - base::Days(6);
+  base::Time second_typed_visit_time = now - base::Days(5);
+  base::Time third_link_visit_time = now - base::Days(4);
+  base::Time dummy_visit_1 = now - base::Days(3);
+  base::Time dummy_visit_2 = now - base::Days(2);
+  base::Time dummy_visit_3 = now - base::Days(1);
   AddUrlToHistoryWithTimestamp(0, url, ui::PAGE_TRANSITION_LINK,
                                history::SOURCE_BROWSED, insertion_time);
   AddUrlToHistoryWithTimestamp(0, url, ui::PAGE_TRANSITION_TYPED,
@@ -318,7 +318,7 @@
 
   // Expire the first (non-typed) visit on the first client and assert both data
   // and metadata are intact.
-  ExpireHistoryBefore(0, insertion_time + base::TimeDelta::FromSeconds(1));
+  ExpireHistoryBefore(0, insertion_time + base::Seconds(1));
   ASSERT_EQ(1U, GetTypedUrlsFromClient(0).size());
   EXPECT_TRUE(CheckSyncHasMetadataForURLID(0, url_id_on_first_client));
 
@@ -333,8 +333,7 @@
 
   // Expire the second (typed) visit on the first client and assert both data
   // and metadata for the URL are gone.
-  ExpireHistoryBefore(
-      0, second_typed_visit_time + base::TimeDelta::FromSeconds(1));
+  ExpireHistoryBefore(0, second_typed_visit_time + base::Seconds(1));
   std::vector<history::URLRow> pruned_urls = GetTypedUrlsFromClient(0);
   ASSERT_EQ(1U, pruned_urls.size());
   ASSERT_EQ(GURL(kDummyUrl), pruned_urls[0].url());
@@ -351,8 +350,7 @@
   EXPECT_TRUE(CheckSyncHasURLMetadata(1, url));
 
   // Now expire also the last non-typed visit (make sure it has no impact).
-  ExpireHistoryBefore(0,
-                      third_link_visit_time + base::TimeDelta::FromSeconds(1));
+  ExpireHistoryBefore(0, third_link_visit_time + base::Seconds(1));
   ASSERT_EQ(1U, GetTypedUrlsFromClient(0).size());
   EXPECT_FALSE(CheckSyncHasMetadataForURLID(0, url_id_on_first_client));
 
@@ -398,8 +396,8 @@
   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
 
   base::Time now = base::Time::Now();
-  base::Time insertion_time = now - base::TimeDelta::FromDays(2);
-  base::Time visit_time = now - base::TimeDelta::FromDays(1);
+  base::Time insertion_time = now - base::Days(2);
+  base::Time visit_time = now - base::Days(1);
 
   // Populate one client with a URL with multiple visits, wait for it to sync to
   // the other.
@@ -417,8 +415,8 @@
 
   // Delete the only typed visit from the first client, and wait for them to
   // sync.
-  ExpireHistoryBetween(0, insertion_time - base::TimeDelta::FromSeconds(1),
-                       insertion_time + base::TimeDelta::FromSeconds(1));
+  ExpireHistoryBetween(0, insertion_time - base::Seconds(1),
+                       insertion_time + base::Seconds(1));
   ASSERT_TRUE(ProfilesHaveSameTypedURLsChecker().Wait());
 
   // Assert that it's deleted from the second client.
@@ -526,7 +524,7 @@
                                history::SOURCE_BROWSED, timestamp);
   AddUrlToHistoryWithTimestamp(1, new_url, ui::PAGE_TRANSITION_TYPED,
                                history::SOURCE_BROWSED,
-                               timestamp + base::TimeDelta::FromSeconds(1));
+                               timestamp + base::Seconds(1));
 
   // Now start up sync - URLs should get merged. Fully sync client 1 first,
   // before syncing client 0, so we have both of client 1's URLs in the sync DB
@@ -570,7 +568,7 @@
   // Now, add a typed visit to the first client.
   AddUrlToHistoryWithTimestamp(0, new_url, ui::PAGE_TRANSITION_TYPED,
                                history::SOURCE_BROWSED,
-                               timestamp + base::TimeDelta::FromSeconds(1));
+                               timestamp + base::Seconds(1));
 
   ASSERT_TRUE(TypedURLChecker(1, new_url.spec()).Wait());
   ASSERT_TRUE(CheckClientsEqual());
diff --git a/chrome/browser/sync/test/integration/two_client_user_events_sync_test.cc b/chrome/browser/sync/test/integration/two_client_user_events_sync_test.cc
index 35719fcb..0f44152d 100644
--- a/chrome/browser/sync/test/integration/two_client_user_events_sync_test.cc
+++ b/chrome/browser/sync/test/integration/two_client_user_events_sync_test.cc
@@ -73,7 +73,7 @@
   syncer::UserEventService* event_service =
       browser_sync::UserEventServiceFactory::GetForProfile(GetProfile(0));
   event_service->RecordUserEvent(user_events_helper::CreateTestEvent(
-      base::Time() + base::TimeDelta::FromMicroseconds(1)));
+      base::Time() + base::Microseconds(1)));
 
   // Set up sync on the second client.
   ASSERT_TRUE(GetClient(kDecryptingClientId)
diff --git a/chrome/browser/sync/test/integration/typed_urls_helper.cc b/chrome/browser/sync/test/integration/typed_urls_helper.cc
index 46e1150..726c2fc 100644
--- a/chrome/browser/sync/test/integration/typed_urls_helper.cc
+++ b/chrome/browser/sync/test/integration/typed_urls_helper.cc
@@ -367,7 +367,7 @@
   if (!::timestamp)
     ::timestamp = new base::Time(base::Time::Now());
   base::Time original = *::timestamp;
-  *::timestamp += base::TimeDelta::FromMilliseconds(1);
+  *::timestamp += base::Milliseconds(1);
   return original;
 }
 
diff --git a/chrome/browser/sync_file_system/drive_backend/drive_backend_sync_unittest.cc b/chrome/browser/sync_file_system/drive_backend/drive_backend_sync_unittest.cc
index 034e1de..3176d4f 100644
--- a/chrome/browser/sync_file_system/drive_backend/drive_backend_sync_unittest.cc
+++ b/chrome/browser/sync_file_system/drive_backend/drive_backend_sync_unittest.cc
@@ -1092,7 +1092,7 @@
           app_root_folder_id, "conflict_to_pending_remote", "foo", &file_id));
   EXPECT_EQ(google_apis::HTTP_SUCCESS,
             fake_drive_service_helper()->UpdateModificationTime(
-                file_id, base::Time::Now() + base::TimeDelta::FromDays(1)));
+                file_id, base::Time::Now() + base::Days(1)));
 
   FetchRemoteChanges();
 
@@ -1102,7 +1102,7 @@
           app_root_folder_id, "conflict_to_existing_remote", "foo", &file_id));
   EXPECT_EQ(google_apis::HTTP_SUCCESS,
             fake_drive_service_helper()->UpdateModificationTime(
-                file_id, base::Time::Now() + base::TimeDelta::FromDays(1)));
+                file_id, base::Time::Now() + base::Days(1)));
 
   EXPECT_EQ(SYNC_STATUS_OK, ProcessChangesUntilDone());
   VerifyConsistency();
@@ -1312,7 +1312,7 @@
                 app_root_folder_id, "conflict_to_pending_remote", &file_id));
   EXPECT_EQ(google_apis::HTTP_SUCCESS,
             fake_drive_service_helper()->UpdateModificationTime(
-                file_id, base::Time::Now() - base::TimeDelta::FromDays(1)));
+                file_id, base::Time::Now() - base::Days(1)));
 
   FetchRemoteChanges();
 
@@ -1321,7 +1321,7 @@
                 app_root_folder_id, "conflict_to_existing_remote", &file_id));
   EXPECT_EQ(google_apis::HTTP_SUCCESS,
             fake_drive_service_helper()->UpdateModificationTime(
-                file_id, base::Time::Now() - base::TimeDelta::FromDays(1)));
+                file_id, base::Time::Now() - base::Days(1)));
 
   EXPECT_EQ(SYNC_STATUS_OK, ProcessChangesUntilDone());
   VerifyConsistency();
@@ -1391,7 +1391,7 @@
           app_root_folder_id, "conflict_to_pending_remote", "foo", &file_id));
   EXPECT_EQ(google_apis::HTTP_SUCCESS,
             fake_drive_service_helper()->UpdateModificationTime(
-                file_id, base::Time::Now() + base::TimeDelta::FromDays(1)));
+                file_id, base::Time::Now() + base::Days(1)));
 
   FetchRemoteChanges();
 
@@ -1401,7 +1401,7 @@
           app_root_folder_id, "conflict_to_existing_remote", "bar", &file_id));
   EXPECT_EQ(google_apis::HTTP_SUCCESS,
             fake_drive_service_helper()->UpdateModificationTime(
-                file_id, base::Time::Now() + base::TimeDelta::FromDays(1)));
+                file_id, base::Time::Now() + base::Days(1)));
 
   EXPECT_EQ(SYNC_STATUS_OK, ProcessChangesUntilDone());
   VerifyConsistency();
diff --git a/chrome/browser/sync_file_system/drive_backend/sync_worker.cc b/chrome/browser/sync_file_system/drive_backend/sync_worker.cc
index 9ad1ac3..b199c00d 100644
--- a/chrome/browser/sync_file_system/drive_backend/sync_worker.cc
+++ b/chrome/browser/sync_file_system/drive_backend/sync_worker.cc
@@ -543,8 +543,7 @@
     should_check_remote_change_ = false;
     listing_remote_changes_ = true;
     time_to_check_changes_ =
-        base::TimeTicks::Now() +
-        base::TimeDelta::FromSeconds(kListChangesRetryDelaySeconds);
+        base::TimeTicks::Now() + base::Seconds(kListChangesRetryDelaySeconds);
   }
 
   if (status == SYNC_STATUS_OK)
@@ -586,8 +585,7 @@
                          weak_ptr_factory_.GetWeakPtr()))) {
     should_check_remote_change_ = false;
     listing_remote_changes_ = true;
-    time_to_check_changes_ =
-        now + base::TimeDelta::FromSeconds(kListChangesRetryDelaySeconds);
+    time_to_check_changes_ = now + base::Seconds(kListChangesRetryDelaySeconds);
     return true;
   }
   return false;
diff --git a/chrome/browser/sync_file_system/local/local_file_sync_context.cc b/chrome/browser/sync_file_system/local/local_file_sync_context.cc
index e2b9426..f3a6de4 100644
--- a/chrome/browser/sync_file_system/local/local_file_sync_context.cc
+++ b/chrome/browser/sync_file_system/local/local_file_sync_context.cc
@@ -1042,8 +1042,8 @@
 
 base::TimeDelta LocalFileSyncContext::NotifyChangesDuration() {
   if (mock_notify_changes_duration_in_sec_ >= 0)
-    return base::TimeDelta::FromSeconds(mock_notify_changes_duration_in_sec_);
-  return base::TimeDelta::FromSeconds(kNotifyChangesDurationInSec);
+    return base::Seconds(mock_notify_changes_duration_in_sec_);
+  return base::Seconds(kNotifyChangesDurationInSec);
 }
 
 void LocalFileSyncContext::DidCreateDirectoryForCopyIn(
diff --git a/chrome/browser/sync_file_system/sync_process_runner.cc b/chrome/browser/sync_file_system/sync_process_runner.cc
index 3be335f..81487cbe 100644
--- a/chrome/browser/sync_file_system/sync_process_runner.cc
+++ b/chrome/browser/sync_file_system/sync_process_runner.cc
@@ -126,10 +126,9 @@
   // doesn't grow exponentially.  If the backoff happens on the end of
   // throttling period, it causes another throttling period that is twice as
   // long as previous.
-  base::TimeDelta base_delay_delta =
-      base::TimeDelta::FromMilliseconds(base_delay);
+  base::TimeDelta base_delay_delta = base::Milliseconds(base_delay);
   const base::TimeDelta max_delay =
-      base::TimeDelta::FromMilliseconds(kSyncDelayMaxInMilliseconds);
+      base::Milliseconds(kSyncDelayMaxInMilliseconds);
   throttle_until_ =
       std::min(now + max_delay,
                std::max(now + base_delay_delta, throttle_until_ + 2 * elapsed));
@@ -211,13 +210,12 @@
   base::TimeTicks next_scheduled;
 
   if (timer_helper_->IsRunning()) {
-    next_scheduled = last_run_ + base::TimeDelta::FromMilliseconds(delay);
+    next_scheduled = last_run_ + base::Milliseconds(delay);
     if (next_scheduled < now) {
-      next_scheduled =
-          now + base::TimeDelta::FromMilliseconds(kSyncDelayFastInMilliseconds);
+      next_scheduled = now + base::Milliseconds(kSyncDelayFastInMilliseconds);
     }
   } else {
-    next_scheduled = now + base::TimeDelta::FromMilliseconds(delay);
+    next_scheduled = now + base::Milliseconds(delay);
   }
 
   if (next_scheduled < throttle_until_)
diff --git a/chrome/browser/task_manager/providers/browser_process_task_unittest.cc b/chrome/browser/task_manager/providers/browser_process_task_unittest.cc
index 04c25b9..c1819d7 100644
--- a/chrome/browser/task_manager/providers/browser_process_task_unittest.cc
+++ b/chrome/browser/task_manager/providers/browser_process_task_unittest.cc
@@ -78,8 +78,7 @@
   EXPECT_EQ(0, provided_task_->GetNetworkUsageRate());
   provided_task_->OnNetworkBytesRead(received_bytes);
   // Do a refresh with a 1-second update time.
-  provided_task_->Refresh(base::TimeDelta::FromSeconds(1),
-                          REFRESH_TYPE_NETWORK_USAGE);
+  provided_task_->Refresh(base::Seconds(1), REFRESH_TYPE_NETWORK_USAGE);
   EXPECT_EQ(received_bytes, provided_task_->GetNetworkUsageRate());
 }
 
diff --git a/chrome/browser/task_manager/providers/child_process_task_unittest.cc b/chrome/browser/task_manager/providers/child_process_task_unittest.cc
index 517d583..eb68737 100644
--- a/chrome/browser/task_manager/providers/child_process_task_unittest.cc
+++ b/chrome/browser/task_manager/providers/child_process_task_unittest.cc
@@ -137,7 +137,7 @@
 
   const int64_t bytes_read = 1024;
   task->OnNetworkBytesRead(bytes_read);
-  task->Refresh(base::TimeDelta::FromSeconds(1), REFRESH_TYPE_NETWORK_USAGE);
+  task->Refresh(base::Seconds(1), REFRESH_TYPE_NETWORK_USAGE);
 
   EXPECT_EQ(bytes_read, task->GetNetworkUsageRate());
 
diff --git a/chrome/browser/task_manager/providers/crosapi/crosapi_task_provider_ash.cc b/chrome/browser/task_manager/providers/crosapi/crosapi_task_provider_ash.cc
index 868197b4..49a16b8 100644
--- a/chrome/browser/task_manager/providers/crosapi/crosapi_task_provider_ash.cc
+++ b/chrome/browser/task_manager/providers/crosapi/crosapi_task_provider_ash.cc
@@ -69,7 +69,7 @@
 
 void CrosapiTaskProviderAsh::StartUpdating() {
   refresh_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromSeconds(1),
+      FROM_HERE, base::Seconds(1),
       base::BindRepeating(&CrosapiTaskProviderAsh::GetCrosapiTaskManagerTasks,
                           base::Unretained(this)));
 }
diff --git a/chrome/browser/task_manager/providers/crosapi/task_manager_controller_lacros.cc b/chrome/browser/task_manager/providers/crosapi/task_manager_controller_lacros.cc
index 0f6965e..1a9abb0 100644
--- a/chrome/browser/task_manager/providers/crosapi/task_manager_controller_lacros.cc
+++ b/chrome/browser/task_manager/providers/crosapi/task_manager_controller_lacros.cc
@@ -64,7 +64,7 @@
 }  // namespace
 
 TaskManagerControllerLacros::TaskManagerControllerLacros()
-    : TaskManagerObserver(base::TimeDelta::FromSeconds(1), REFRESH_TYPE_NONE) {}
+    : TaskManagerObserver(base::Seconds(1), REFRESH_TYPE_NONE) {}
 
 TaskManagerControllerLacros::~TaskManagerControllerLacros() {
   if (observed_task_manager())
diff --git a/chrome/browser/task_manager/providers/fallback_task_provider.cc b/chrome/browser/task_manager/providers/fallback_task_provider.cc
index 183e10b..1e2d9cb 100644
--- a/chrome/browser/task_manager/providers/fallback_task_provider.cc
+++ b/chrome/browser/task_manager/providers/fallback_task_provider.cc
@@ -19,8 +19,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kTimeDelayForPendingTask =
-    base::TimeDelta::FromMilliseconds(750);
+constexpr base::TimeDelta kTimeDelayForPendingTask = base::Milliseconds(750);
 
 // Returns a task that is in the vector if the task in the vector shares a Pid
 // with the other task.
diff --git a/chrome/browser/task_manager/providers/fallback_task_provider_unittest.cc b/chrome/browser/task_manager/providers/fallback_task_provider_unittest.cc
index 74b9cb1..32fd52a8 100644
--- a/chrome/browser/task_manager/providers/fallback_task_provider_unittest.cc
+++ b/chrome/browser/task_manager/providers/fallback_task_provider_unittest.cc
@@ -182,7 +182,7 @@
 TEST_F(FallbackTaskProviderTest, BasicTest) {
   // The delay for showing a secondary source is 750ms; delay 1000ms to ensure
   // we see them.
-  base::TimeDelta delay = base::TimeDelta::FromMilliseconds(1000);
+  base::TimeDelta delay = base::Milliseconds(1000);
   base::ScopedMockTimeMessageLoopTaskRunner mock_main_runner;
   StartUpdating();
 
diff --git a/chrome/browser/task_manager/providers/vm/vm_process_task_provider.cc b/chrome/browser/task_manager/providers/vm/vm_process_task_provider.cc
index 4b8110a..9bac3e7 100644
--- a/chrome/browser/task_manager/providers/vm/vm_process_task_provider.cc
+++ b/chrome/browser/task_manager/providers/vm/vm_process_task_provider.cc
@@ -31,8 +31,7 @@
 constexpr char kVmProcessName[] = "/usr/bin/crosvm";
 
 // Delay between refreshing the list of VM processes.
-constexpr base::TimeDelta kRefreshProcessListDelay =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kRefreshProcessListDelay = base::Seconds(5);
 
 // Matches the process name "vm_concierge" in the process tree and get the
 // corresponding process ID.
diff --git a/chrome/browser/task_manager/sampling/shared_sampler_win.cc b/chrome/browser/task_manager/sampling/shared_sampler_win.cc
index ec882e2..6b88814d 100644
--- a/chrome/browser/task_manager/sampling/shared_sampler_win.cc
+++ b/chrome/browser/task_manager/sampling/shared_sampler_win.cc
@@ -217,7 +217,7 @@
 
 // A wrapper function converting ticks (in units of 100 ns) to TimeDelta.
 base::TimeDelta ConvertTicksToTimeDelta(uint64_t ticks) {
-  return base::TimeDelta::FromMicroseconds(ticks / 10);
+  return base::Microseconds(ticks / 10);
 }
 
 }  // namespace
diff --git a/chrome/browser/task_manager/sampling/task_group_unittest.cc b/chrome/browser/task_manager/sampling/task_group_unittest.cc
index a5dc431f..f0542ae4 100644
--- a/chrome/browser/task_manager/sampling/task_group_unittest.cc
+++ b/chrome/browser/task_manager/sampling/task_group_unittest.cc
@@ -186,12 +186,10 @@
   FakeTask fake_task(base::Process::Current().Pid(), Task::RENDERER,
                      false /* is_running_in_vm */);
   fake_task.OnNetworkBytesRead(zero_bytes);
-  fake_task.Refresh(base::TimeDelta::FromSeconds(1),
-                    REFRESH_TYPE_NETWORK_USAGE);
+  fake_task.Refresh(base::Seconds(1), REFRESH_TYPE_NETWORK_USAGE);
   EXPECT_EQ(zero_bytes, fake_task.GetNetworkUsageRate());
   fake_task.OnNetworkBytesSent(zero_bytes);
-  fake_task.Refresh(base::TimeDelta::FromSeconds(1),
-                    REFRESH_TYPE_NETWORK_USAGE);
+  fake_task.Refresh(base::Seconds(1), REFRESH_TYPE_NETWORK_USAGE);
   EXPECT_EQ(zero_bytes, fake_task.GetNetworkUsageRate());
 }
 
@@ -204,8 +202,7 @@
   fake_task.OnNetworkBytesRead(read_bytes);
   EXPECT_EQ(0, fake_task.GetNetworkUsageRate());
   EXPECT_EQ(read_bytes, fake_task.GetCumulativeNetworkUsage());
-  fake_task.Refresh(base::TimeDelta::FromSeconds(1),
-                    REFRESH_TYPE_NETWORK_USAGE);
+  fake_task.Refresh(base::Seconds(1), REFRESH_TYPE_NETWORK_USAGE);
   EXPECT_EQ(read_bytes, fake_task.GetNetworkUsageRate());
   EXPECT_EQ(read_bytes, fake_task.GetCumulativeNetworkUsage());
 }
@@ -219,8 +216,7 @@
   fake_task.OnNetworkBytesSent(sent_bytes);
   EXPECT_EQ(0, fake_task.GetNetworkUsageRate());
   EXPECT_EQ(sent_bytes, fake_task.GetCumulativeNetworkUsage());
-  fake_task.Refresh(base::TimeDelta::FromSeconds(1),
-                    REFRESH_TYPE_NETWORK_USAGE);
+  fake_task.Refresh(base::Seconds(1), REFRESH_TYPE_NETWORK_USAGE);
   EXPECT_EQ(sent_bytes, fake_task.GetNetworkUsageRate());
   EXPECT_EQ(sent_bytes, fake_task.GetCumulativeNetworkUsage());
 }
@@ -236,8 +232,7 @@
   fake_task.OnNetworkBytesRead(read_bytes);
   EXPECT_EQ(0, fake_task.GetNetworkUsageRate());
   EXPECT_EQ(read_bytes, fake_task.GetCumulativeNetworkUsage());
-  fake_task.Refresh(base::TimeDelta::FromSeconds(refresh_secs),
-                    REFRESH_TYPE_NETWORK_USAGE);
+  fake_task.Refresh(base::Seconds(refresh_secs), REFRESH_TYPE_NETWORK_USAGE);
   EXPECT_EQ(read_bytes / refresh_secs, fake_task.GetNetworkUsageRate());
   EXPECT_EQ(read_bytes, fake_task.GetCumulativeNetworkUsage());
 }
@@ -253,8 +248,7 @@
   fake_task.OnNetworkBytesSent(sent_bytes);
   EXPECT_EQ(0, fake_task.GetNetworkUsageRate());
   EXPECT_EQ(sent_bytes, fake_task.GetCumulativeNetworkUsage());
-  fake_task.Refresh(base::TimeDelta::FromSeconds(refresh_secs),
-                    REFRESH_TYPE_NETWORK_USAGE);
+  fake_task.Refresh(base::Seconds(refresh_secs), REFRESH_TYPE_NETWORK_USAGE);
   EXPECT_EQ(sent_bytes / refresh_secs, fake_task.GetNetworkUsageRate());
   EXPECT_EQ(sent_bytes, fake_task.GetCumulativeNetworkUsage());
 }
@@ -269,8 +263,7 @@
   fake_task.OnNetworkBytesRead(read_bytes);
   EXPECT_EQ(read_bytes, fake_task.GetCumulativeNetworkUsage());
   fake_task.OnNetworkBytesSent(sent_bytes);
-  fake_task.Refresh(base::TimeDelta::FromSeconds(1),
-                    REFRESH_TYPE_NETWORK_USAGE);
+  fake_task.Refresh(base::Seconds(1), REFRESH_TYPE_NETWORK_USAGE);
   EXPECT_EQ(read_bytes + sent_bytes, fake_task.GetNetworkUsageRate());
   EXPECT_EQ(read_bytes + sent_bytes, fake_task.GetCumulativeNetworkUsage());
 }
@@ -284,8 +277,7 @@
                      false /* is_running_in_vm */);
   fake_task.OnNetworkBytesSent(sent_bytes);
   fake_task.OnNetworkBytesRead(read_bytes);
-  fake_task.Refresh(base::TimeDelta::FromSeconds(1),
-                    REFRESH_TYPE_NETWORK_USAGE);
+  fake_task.Refresh(base::Seconds(1), REFRESH_TYPE_NETWORK_USAGE);
   EXPECT_EQ(read_bytes + sent_bytes, fake_task.GetNetworkUsageRate());
 }
 
@@ -297,11 +289,9 @@
   FakeTask fake_task(base::Process::Current().Pid(), Task::RENDERER,
                      false /* is_running_in_vm */);
   fake_task.OnNetworkBytesRead(read_bytes);
-  fake_task.Refresh(base::TimeDelta::FromSeconds(1),
-                    REFRESH_TYPE_NETWORK_USAGE);
+  fake_task.Refresh(base::Seconds(1), REFRESH_TYPE_NETWORK_USAGE);
   // Refresh to zero out the usage rate.
-  fake_task.Refresh(base::TimeDelta::FromSeconds(1),
-                    REFRESH_TYPE_NETWORK_USAGE);
+  fake_task.Refresh(base::Seconds(1), REFRESH_TYPE_NETWORK_USAGE);
   EXPECT_EQ(0, fake_task.GetNetworkUsageRate());
   EXPECT_EQ(read_bytes, fake_task.GetCumulativeNetworkUsage());
 }
@@ -314,11 +304,9 @@
   FakeTask fake_task(base::Process::Current().Pid(), Task::RENDERER,
                      false /* is_running_in_vm */);
   fake_task.OnNetworkBytesSent(sent_bytes);
-  fake_task.Refresh(base::TimeDelta::FromSeconds(1),
-                    REFRESH_TYPE_NETWORK_USAGE);
+  fake_task.Refresh(base::Seconds(1), REFRESH_TYPE_NETWORK_USAGE);
   // Refresh to zero out the usage rate.
-  fake_task.Refresh(base::TimeDelta::FromSeconds(1),
-                    REFRESH_TYPE_NETWORK_USAGE);
+  fake_task.Refresh(base::Seconds(1), REFRESH_TYPE_NETWORK_USAGE);
   EXPECT_EQ(0, fake_task.GetNetworkUsageRate());
   EXPECT_EQ(sent_bytes, fake_task.GetCumulativeNetworkUsage());
 }
@@ -334,15 +322,12 @@
                      false /* is_running_in_vm */);
   for (int i = 0; i < number_of_cycles; i++) {
     fake_task.OnNetworkBytesRead(read_bytes);
-    fake_task.Refresh(base::TimeDelta::FromSeconds(1),
-                      REFRESH_TYPE_NETWORK_USAGE);
+    fake_task.Refresh(base::Seconds(1), REFRESH_TYPE_NETWORK_USAGE);
     fake_task.OnNetworkBytesSent(sent_bytes);
-    fake_task.Refresh(base::TimeDelta::FromSeconds(1),
-                      REFRESH_TYPE_NETWORK_USAGE);
+    fake_task.Refresh(base::Seconds(1), REFRESH_TYPE_NETWORK_USAGE);
   }
   // Refresh to zero out the usage rate.
-  fake_task.Refresh(base::TimeDelta::FromSeconds(1),
-                    REFRESH_TYPE_NETWORK_USAGE);
+  fake_task.Refresh(base::Seconds(1), REFRESH_TYPE_NETWORK_USAGE);
   EXPECT_EQ(0, fake_task.GetNetworkUsageRate());
   EXPECT_EQ((read_bytes + sent_bytes) * number_of_cycles,
             fake_task.GetCumulativeNetworkUsage());
@@ -366,8 +351,7 @@
   for (int i = 0; i < number_of_cycles; i++) {
     fake_task1.OnNetworkBytesRead(read_bytes1);
     fake_task2.OnNetworkBytesRead(read_bytes2);
-    task_group_->Refresh(gpu::VideoMemoryUsageStats(),
-                         base::TimeDelta::FromSeconds(1),
+    task_group_->Refresh(gpu::VideoMemoryUsageStats(), base::Seconds(1),
                          REFRESH_TYPE_NETWORK_USAGE);
     EXPECT_EQ(read_bytes1 + read_bytes2,
               task_group_->per_process_network_usage_rate());
@@ -400,13 +384,11 @@
       EXPECT_EQ((read_bytes + sent_bytes) * (i - 1),
                 fake_task.GetNetworkUsageRate());
     }
-    fake_task.Refresh(base::TimeDelta::FromSeconds(1),
-                      REFRESH_TYPE_NETWORK_USAGE);
+    fake_task.Refresh(base::Seconds(1), REFRESH_TYPE_NETWORK_USAGE);
     EXPECT_EQ((read_bytes + sent_bytes) * i, fake_task.GetNetworkUsageRate());
   }
   // Refresh to zero out the usage rate.
-  fake_task.Refresh(base::TimeDelta::FromSeconds(1),
-                    REFRESH_TYPE_NETWORK_USAGE);
+  fake_task.Refresh(base::Seconds(1), REFRESH_TYPE_NETWORK_USAGE);
   EXPECT_EQ(0, fake_task.GetNetworkUsageRate());
   EXPECT_EQ(number_of_bytes_transferred, fake_task.GetCumulativeNetworkUsage());
 }
@@ -427,16 +409,14 @@
 
   fake_task1.OnNetworkBytesSent(sent_bytes1);
   fake_task2.OnNetworkBytesSent(sent_bytes2);
-  task_group_->Refresh(gpu::VideoMemoryUsageStats(),
-                       base::TimeDelta::FromSeconds(1),
+  task_group_->Refresh(gpu::VideoMemoryUsageStats(), base::Seconds(1),
                        REFRESH_TYPE_NETWORK_USAGE);
   EXPECT_EQ(sent_bytes1 + sent_bytes2,
             task_group_->per_process_network_usage_rate());
 
   fake_task1.OnNetworkBytesSent(sent_bytes1);
   fake_task2.OnNetworkBytesSent(sent_bytes2);
-  task_group_->Refresh(gpu::VideoMemoryUsageStats(),
-                       base::TimeDelta::FromSeconds(1),
+  task_group_->Refresh(gpu::VideoMemoryUsageStats(), base::Seconds(1),
                        REFRESH_TYPE_NETWORK_USAGE);
 
   EXPECT_EQ((sent_bytes1 + sent_bytes2) * 2,
@@ -460,8 +440,7 @@
   for (int i = 0; i < number_of_cycles; i++) {
     fake_task1.OnNetworkBytesSent(sent_bytes);
     fake_task2.OnNetworkBytesRead(read_bytes);
-    task_group_->Refresh(gpu::VideoMemoryUsageStats(),
-                         base::TimeDelta::FromSeconds(1),
+    task_group_->Refresh(gpu::VideoMemoryUsageStats(), base::Seconds(1),
                          REFRESH_TYPE_NETWORK_USAGE);
     EXPECT_EQ(sent_bytes + read_bytes,
               task_group_->per_process_network_usage_rate());
@@ -490,14 +469,12 @@
   for (int i = 0; i < number_of_cycles; i++) {
     fake_task1.OnNetworkBytesRead(read_bytes1);
     fake_task2.OnNetworkBytesRead(read_bytes2);
-    task_group_->Refresh(gpu::VideoMemoryUsageStats(),
-                         base::TimeDelta::FromSeconds(1),
+    task_group_->Refresh(gpu::VideoMemoryUsageStats(), base::Seconds(1),
                          REFRESH_TYPE_NETWORK_USAGE);
     EXPECT_EQ(read_bytes1 + read_bytes2,
               task_group_->per_process_network_usage_rate());
   }
-  task_group_->Refresh(gpu::VideoMemoryUsageStats(),
-                       base::TimeDelta::FromSeconds(1),
+  task_group_->Refresh(gpu::VideoMemoryUsageStats(), base::Seconds(1),
                        REFRESH_TYPE_NETWORK_USAGE);
   EXPECT_EQ(0, task_group_->per_process_network_usage_rate());
   EXPECT_EQ((read_bytes1 + read_bytes2) * number_of_cycles,
@@ -523,14 +500,12 @@
   for (int i = 0; i < number_of_cycles; i++) {
     fake_task1.OnNetworkBytesSent(sent_bytes1);
     fake_task2.OnNetworkBytesSent(sent_bytes2);
-    task_group_->Refresh(gpu::VideoMemoryUsageStats(),
-                         base::TimeDelta::FromSeconds(1),
+    task_group_->Refresh(gpu::VideoMemoryUsageStats(), base::Seconds(1),
                          REFRESH_TYPE_NETWORK_USAGE);
     EXPECT_EQ(sent_bytes1 + sent_bytes2,
               task_group_->per_process_network_usage_rate());
   }
-  task_group_->Refresh(gpu::VideoMemoryUsageStats(),
-                       base::TimeDelta::FromSeconds(1),
+  task_group_->Refresh(gpu::VideoMemoryUsageStats(), base::Seconds(1),
                        REFRESH_TYPE_NETWORK_USAGE);
   EXPECT_EQ(0, task_group_->per_process_network_usage_rate());
   EXPECT_EQ((sent_bytes1 + sent_bytes2) * number_of_cycles,
@@ -556,14 +531,12 @@
   for (int i = 0; i < number_of_cycles; i++) {
     fake_task1.OnNetworkBytesRead(read_bytes);
     fake_task2.OnNetworkBytesSent(sent_bytes);
-    task_group_->Refresh(gpu::VideoMemoryUsageStats(),
-                         base::TimeDelta::FromSeconds(1),
+    task_group_->Refresh(gpu::VideoMemoryUsageStats(), base::Seconds(1),
                          REFRESH_TYPE_NETWORK_USAGE);
     EXPECT_EQ(read_bytes + sent_bytes,
               task_group_->per_process_network_usage_rate());
   }
-  task_group_->Refresh(gpu::VideoMemoryUsageStats(),
-                       base::TimeDelta::FromSeconds(1),
+  task_group_->Refresh(gpu::VideoMemoryUsageStats(), base::Seconds(1),
                        REFRESH_TYPE_NETWORK_USAGE);
   EXPECT_EQ(0, task_group_->per_process_network_usage_rate());
   EXPECT_EQ((read_bytes + sent_bytes) * number_of_cycles,
diff --git a/chrome/browser/task_manager/sampling/task_manager_impl_unittest.cc b/chrome/browser/task_manager/sampling/task_manager_impl_unittest.cc
index 59a00ee..8b80885 100644
--- a/chrome/browser/task_manager/sampling/task_manager_impl_unittest.cc
+++ b/chrome/browser/task_manager/sampling/task_manager_impl_unittest.cc
@@ -61,8 +61,7 @@
 class TaskManagerImplTest : public testing::Test, public TaskManagerObserver {
  public:
   TaskManagerImplTest()
-      : TaskManagerObserver(base::TimeDelta::FromSeconds(1),
-                            REFRESH_TYPE_NONE) {
+      : TaskManagerObserver(base::Seconds(1), REFRESH_TYPE_NONE) {
     TaskManagerImpl::GetInstance()->AddObserver(this);
   }
   TaskManagerImplTest(const TaskManagerImplTest&) = delete;
diff --git a/chrome/browser/task_manager/task_manager_observer.cc b/chrome/browser/task_manager/task_manager_observer.cc
index 4a3900f3..cbd60d75 100644
--- a/chrome/browser/task_manager/task_manager_observer.cc
+++ b/chrome/browser/task_manager/task_manager_observer.cc
@@ -17,9 +17,8 @@
 TaskManagerObserver::TaskManagerObserver(base::TimeDelta refresh_time,
                                          int64_t resources_flags)
     : observed_task_manager_(nullptr),
-      desired_refresh_time_(refresh_time < base::TimeDelta::FromSeconds(1)
-                                ? base::TimeDelta::FromSeconds(1)
-                                : refresh_time),
+      desired_refresh_time_(refresh_time < base::Seconds(1) ? base::Seconds(1)
+                                                            : refresh_time),
       desired_resources_flags_(resources_flags) {}
 
 TaskManagerObserver::~TaskManagerObserver() {
diff --git a/chrome/browser/task_manager/task_manager_observer_unittest.cc b/chrome/browser/task_manager/task_manager_observer_unittest.cc
index f558c45..65abe8f 100644
--- a/chrome/browser/task_manager/task_manager_observer_unittest.cc
+++ b/chrome/browser/task_manager/task_manager_observer_unittest.cc
@@ -47,8 +47,8 @@
 // Validates that the minimum refresh time to be requested is one second. Also
 // validates the desired resource flags.
 TEST_F(TaskManagerObserverTest, Basic) {
-  base::TimeDelta refresh_time1 = base::TimeDelta::FromSeconds(2);
-  base::TimeDelta refresh_time2 = base::TimeDelta::FromMilliseconds(999);
+  base::TimeDelta refresh_time1 = base::Seconds(2);
+  base::TimeDelta refresh_time2 = base::Milliseconds(999);
   int64_t flags1 = RefreshType::REFRESH_TYPE_CPU |
                    RefreshType::REFRESH_TYPE_WEBCACHE_STATS |
                    RefreshType::REFRESH_TYPE_HANDLES;
@@ -59,7 +59,7 @@
   TestObserver observer2(refresh_time2, flags2);
 
   EXPECT_EQ(refresh_time1, observer1.desired_refresh_time());
-  EXPECT_EQ(base::TimeDelta::FromSeconds(1), observer2.desired_refresh_time());
+  EXPECT_EQ(base::Seconds(1), observer2.desired_refresh_time());
   EXPECT_EQ(flags1, observer1.desired_resources_flags());
   EXPECT_EQ(flags2, observer2.desired_resources_flags());
 }
@@ -71,10 +71,10 @@
   EXPECT_EQ(0, task_manager().GetEnabledFlags());
 
   // Add a bunch of observers and make sure the task manager responds correctly.
-  base::TimeDelta refresh_time1 = base::TimeDelta::FromSeconds(3);
-  base::TimeDelta refresh_time2 = base::TimeDelta::FromSeconds(10);
-  base::TimeDelta refresh_time3 = base::TimeDelta::FromSeconds(3);
-  base::TimeDelta refresh_time4 = base::TimeDelta::FromSeconds(2);
+  base::TimeDelta refresh_time1 = base::Seconds(3);
+  base::TimeDelta refresh_time2 = base::Seconds(10);
+  base::TimeDelta refresh_time3 = base::Seconds(3);
+  base::TimeDelta refresh_time4 = base::Seconds(2);
   int64_t flags1 = RefreshType::REFRESH_TYPE_CPU |
                    RefreshType::REFRESH_TYPE_WEBCACHE_STATS |
                    RefreshType::REFRESH_TYPE_HANDLES;
diff --git a/chrome/browser/themes/theme_service.cc b/chrome/browser/themes/theme_service.cc
index 9e9552f..77c5b66 100644
--- a/chrome/browser/themes/theme_service.cc
+++ b/chrome/browser/themes/theme_service.cc
@@ -668,7 +668,7 @@
       FROM_HERE,
       base::BindOnce(&ThemeService::RemoveUnusedThemes,
                      weak_ptr_factory_.GetWeakPtr()),
-      base::TimeDelta::FromSeconds(kRemoveUnusedThemesStartupDelay));
+      base::Seconds(kRemoveUnusedThemesStartupDelay));
 }
 
 void ThemeService::MigrateTheme() {
diff --git a/chrome/browser/thumbnail/cc/thumbnail_cache.cc b/chrome/browser/thumbnail/cc/thumbnail_cache.cc
index e814415..be5efc8 100644
--- a/chrome/browser/thumbnail/cc/thumbnail_cache.cc
+++ b/chrome/browser/thumbnail/cc/thumbnail_cache.cc
@@ -41,8 +41,7 @@
 namespace {
 
 const float kApproximationScaleFactor = 4.f;
-const base::TimeDelta kDefaultCaptureMinRequestTimeMs(
-    base::TimeDelta::FromMilliseconds(1000));
+const base::TimeDelta kDefaultCaptureMinRequestTimeMs(base::Milliseconds(1000));
 
 const int kCompressedKey = 0xABABABAB;
 const int kCurrentExtraVersion = 1;
@@ -554,7 +553,7 @@
 }
 
 void ThumbnailCache::SetCaptureMinRequestTimeForTesting(int timeMs) {
-  capture_min_request_time_ms_ = base::TimeDelta::FromMilliseconds(timeMs);
+  capture_min_request_time_ms_ = base::Milliseconds(timeMs);
 }
 
 void ThumbnailCache::InvalidateCachedThumbnail(Thumbnail* thumbnail) {
diff --git a/chrome/browser/thumbnail/generator/android/thumbnail_media_parser_impl.cc b/chrome/browser/thumbnail/generator/android/thumbnail_media_parser_impl.cc
index 0b0140b..1e3abe9 100644
--- a/chrome/browser/thumbnail/generator/android/thumbnail_media_parser_impl.cc
+++ b/chrome/browser/thumbnail/generator/android/thumbnail_media_parser_impl.cc
@@ -29,7 +29,7 @@
 namespace {
 
 // The maximum duration to parse media file.
-const base::TimeDelta kTimeOut = base::TimeDelta::FromSeconds(8);
+const base::TimeDelta kTimeOut = base::Seconds(8);
 
 // Returns if the mime type is video or audio.
 bool IsSupportedMediaMimeType(const std::string& mime_type) {
diff --git a/chrome/browser/touch_to_fill/touch_to_fill_controller_unittest.cc b/chrome/browser/touch_to_fill/touch_to_fill_controller_unittest.cc
index 23a80789..9c962a0 100644
--- a/chrome/browser/touch_to_fill/touch_to_fill_controller_unittest.cc
+++ b/chrome/browser/touch_to_fill/touch_to_fill_controller_unittest.cc
@@ -267,14 +267,14 @@
       MakeUiCredential({
           .username = "alice",
           .password = "p4ssw0rd",
-          .time_since_last_use = base::TimeDelta::FromMinutes(2),
+          .time_since_last_use = base::Minutes(2),
       }),
       MakeUiCredential({
           .username = "bob",
           .password = "s3cr3t",
           .origin = "",
           .is_affiliation_based_match = true,
-          .time_since_last_use = base::TimeDelta::FromMinutes(3),
+          .time_since_last_use = base::Minutes(3),
       }),
   };
 
@@ -308,24 +308,24 @@
   auto alice = MakeUiCredential({
       .username = "alice",
       .password = "p4ssw0rd",
-      .time_since_last_use = base::TimeDelta::FromMinutes(3),
+      .time_since_last_use = base::Minutes(3),
   });
   auto bob = MakeUiCredential({
       .username = "bob",
       .password = "s3cr3t",
       .is_public_suffix_match = true,
-      .time_since_last_use = base::TimeDelta::FromMinutes(1),
+      .time_since_last_use = base::Minutes(1),
   });
   auto charlie = MakeUiCredential({
       .username = "charlie",
       .password = "very_s3cr3t",
-      .time_since_last_use = base::TimeDelta::FromMinutes(2),
+      .time_since_last_use = base::Minutes(2),
   });
   auto david = MakeUiCredential({
       .username = "david",
       .password = "even_more_s3cr3t",
       .is_public_suffix_match = true,
-      .time_since_last_use = base::TimeDelta::FromMinutes(4),
+      .time_since_last_use = base::Minutes(4),
   });
 
   UiCredential credentials[] = {alice, bob, charlie, david};
diff --git a/chrome/browser/tracing/chrome_tracing_delegate.cc b/chrome/browser/tracing/chrome_tracing_delegate.cc
index 475ef83..faada840 100644
--- a/chrome/browser/tracing/chrome_tracing_delegate.cc
+++ b/chrome/browser/tracing/chrome_tracing_delegate.cc
@@ -183,7 +183,7 @@
         continue;
       }
       if ((base::Time::Now() - *upload_time) >
-          base::TimeDelta::FromDays(kMinDaysUntilNextUpload)) {
+          base::Days(kMinDaysUntilNextUpload)) {
         continue;
       }
       scenario_last_upload_timestamp_[*scenario] = *upload_time;
@@ -258,7 +258,7 @@
   auto it = scenario_last_upload_timestamp_.find(stripped_scenario_name);
   if (it != scenario_last_upload_timestamp_.end()) {
     return (base::Time::Now() - it->second) <=
-           base::TimeDelta::FromDays(kMinDaysUntilNextUpload);
+           base::Days(kMinDaysUntilNextUpload);
   }
   return false;
 }
@@ -413,7 +413,7 @@
         BackgroundTracingStateManager::GetInstance().SetState(
             BackgroundTracingState::RAN_30_SECONDS);
       }),
-      base::TimeDelta::FromSeconds(30));
+      base::Seconds(30));
   return true;
 }
 
diff --git a/chrome/browser/tracing/chrome_tracing_delegate_browsertest.cc b/chrome/browser/tracing/chrome_tracing_delegate_browsertest.cc
index afb1838..f342c27 100644
--- a/chrome/browser/tracing/chrome_tracing_delegate_browsertest.cc
+++ b/chrome/browser/tracing/chrome_tracing_delegate_browsertest.cc
@@ -204,7 +204,7 @@
   std::string state = GetSessionStateJson();
   EXPECT_EQ(state, "{}");
 
-  base::Time upload_time = base::Time::Now() - base::TimeDelta::FromDays(1);
+  base::Time upload_time = base::Time::Now() - base::Days(1);
   ChromeTracingDelegate::ScenarioUploadTimestampMap upload_times;
   upload_times["TestScenario"] = upload_time;
   ChromeTracingDelegate::BackgroundTracingStateManager::SaveState(
@@ -226,7 +226,7 @@
   std::string state = GetSessionStateJson();
   EXPECT_EQ(state, "{}");
 
-  base::Time upload_time = base::Time::Now() - base::TimeDelta::FromDays(1);
+  base::Time upload_time = base::Time::Now() - base::Days(1);
   ChromeTracingDelegate::ScenarioUploadTimestampMap upload_times;
   upload_times["TestScenario10"] = upload_time;
   upload_times["TestingScenario1"] = upload_time;
@@ -250,7 +250,7 @@
   std::string state = GetSessionStateJson();
   EXPECT_EQ(state, "{}");
 
-  base::Time upload_time = base::Time::Now() - base::TimeDelta::FromDays(1);
+  base::Time upload_time = base::Time::Now() - base::Days(1);
   ChromeTracingDelegate::ScenarioUploadTimestampMap upload_times;
   upload_times["TestScenario10"] = upload_time;
   upload_times["TestingScenario1"] = upload_time;
@@ -287,7 +287,7 @@
   std::string state = GetSessionStateJson();
   EXPECT_EQ(state, "{}");
 
-  base::Time upload_time = base::Time::Now() - base::TimeDelta::FromDays(8);
+  base::Time upload_time = base::Time::Now() - base::Days(8);
   ChromeTracingDelegate::ScenarioUploadTimestampMap upload_times;
   upload_times["TestScenario"] = upload_time;
   ChromeTracingDelegate::BackgroundTracingStateManager::SaveState(
diff --git a/chrome/browser/translate/translate_model_service_browsertest.cc b/chrome/browser/translate/translate_model_service_browsertest.cc
index 5b398cf3..6af8880 100644
--- a/chrome/browser/translate/translate_model_service_browsertest.cc
+++ b/chrome/browser/translate/translate_model_service_browsertest.cc
@@ -184,7 +184,7 @@
     if (request.GetURL().path() == "/slow-first-layout.js") {
       std::unique_ptr<net::test_server::DelayedHttpResponse> resp =
           std::make_unique<net::test_server::DelayedHttpResponse>(
-              base::TimeDelta::FromMilliseconds(500));
+              base::Milliseconds(500));
       resp->set_code(net::HTTP_OK);
       resp->set_content_type("application/javascript");
       resp->set_content(std::string());
diff --git a/chrome/browser/ui/android/start_surface/start_surface_android.cc b/chrome/browser/ui/android/start_surface/start_surface_android.cc
index 7d2ad29..502b70b 100644
--- a/chrome/browser/ui/android/start_surface/start_surface_android.cc
+++ b/chrome/browser/ui/android/start_surface/start_surface_android.cc
@@ -39,5 +39,5 @@
 
   base::PostDelayedTask(FROM_HERE, {content::BrowserThread::UI},
                         base::BindOnce(&WarmUpRenderProcess, profile),
-                        base::TimeDelta::FromMilliseconds(renderer_delay_ms));
+                        base::Milliseconds(renderer_delay_ms));
 }
diff --git a/chrome/browser/ui/app_list/app_list_client_impl.cc b/chrome/browser/ui/app_list/app_list_client_impl.cc
index e34e7c8a..3eeb3bb 100644
--- a/chrome/browser/ui/app_list/app_list_client_impl.cc
+++ b/chrome/browser/ui/app_list/app_list_client_impl.cc
@@ -55,8 +55,8 @@
 AppListClientImpl* g_app_list_client_instance = nullptr;
 
 // Parameters used by the time duration metrics.
-constexpr base::TimeDelta kTimeMetricsMin = base::TimeDelta::FromSeconds(1);
-constexpr base::TimeDelta kTimeMetricsMax = base::TimeDelta::FromDays(7);
+constexpr base::TimeDelta kTimeMetricsMin = base::Seconds(1);
+constexpr base::TimeDelta kTimeMetricsMax = base::Days(7);
 constexpr int kTimeMetricsBucketCount = 100;
 
 bool IsTabletMode() {
diff --git a/chrome/browser/ui/app_list/app_list_notifier_impl.cc b/chrome/browser/ui/app_list/app_list_notifier_impl.cc
index db1b3b35..1dfb218 100644
--- a/chrome/browser/ui/app_list/app_list_notifier_impl.cc
+++ b/chrome/browser/ui/app_list/app_list_notifier_impl.cc
@@ -14,7 +14,7 @@
 
 // TODO(crbug.com/1076270): Finalize a value for this, and possibly use
 // different values for different UI surfaces.
-constexpr base::TimeDelta kImpressionTimer = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kImpressionTimer = base::Seconds(1);
 
 }  // namespace
 
diff --git a/chrome/browser/ui/app_list/app_sync_ui_state.cc b/chrome/browser/ui/app_list/app_sync_ui_state.cc
index 3a37151..da8cfb75 100644
--- a/chrome/browser/ui/app_list/app_sync_ui_state.cc
+++ b/chrome/browser/ui/app_list/app_sync_ui_state.cc
@@ -103,9 +103,9 @@
   status_ = status;
   switch (status_) {
     case STATUS_SYNCING:
-      max_syncing_status_timer_.Start(
-          FROM_HERE, base::TimeDelta::FromMilliseconds(kMaxSyncingTimeMs), this,
-          &AppSyncUIState::OnMaxSyncingTimer);
+      max_syncing_status_timer_.Start(FROM_HERE,
+                                      base::Milliseconds(kMaxSyncingTimeMs),
+                                      this, &AppSyncUIState::OnMaxSyncingTimer);
       break;
     case STATUS_NORMAL:
     case STATUS_TIMED_OUT:
diff --git a/chrome/browser/ui/app_list/arc/arc_app_list_prefs.cc b/chrome/browser/ui/app_list/arc/arc_app_list_prefs.cc
index 3664d55..7dd81cf 100644
--- a/chrome/browser/ui/app_list/arc/arc_app_list_prefs.cc
+++ b/chrome/browser/ui/app_list/arc/arc_app_list_prefs.cc
@@ -100,7 +100,7 @@
 constexpr int default_app_icon_dip_sizes[] = {16, 32, 48, 64};
 
 constexpr base::TimeDelta kDetectDefaultAppAvailabilityTimeout =
-    base::TimeDelta::FromMinutes(1);
+    base::Minutes(1);
 
 // Accessor for deferred set notifications enabled requests in prefs.
 class NotificationsEnabledDeferred {
@@ -900,7 +900,7 @@
       UMA_HISTOGRAM_CUSTOM_TIMES(
           "Arc.FirstAppLaunchRequest.TimeDelta",
           time - ash::UserSessionManager::GetInstance()->ui_shown_time(),
-          base::TimeDelta::FromSeconds(1), base::TimeDelta::FromMinutes(2), 20);
+          base::Seconds(1), base::Minutes(2), 20);
     }
   }
 }
diff --git a/chrome/browser/ui/app_list/arc/arc_app_utils.cc b/chrome/browser/ui/app_list/arc/arc_app_utils.cc
index 14051b8..ee804f4 100644
--- a/chrome/browser/ui/app_list/arc/arc_app_utils.cc
+++ b/chrome/browser/ui/app_list/arc/arc_app_utils.cc
@@ -837,8 +837,7 @@
   auto time_oobe_finished = prefs->GetTime(ash::prefs::kOobeOnboardingTime);
   if (!time_oobe_finished.is_null())
     return;
-  bool within_a_week =
-      base::Time::Now() - time_oobe_finished < base::TimeDelta::FromDays(7);
+  bool within_a_week = base::Time::Now() - time_oobe_finished < base::Days(7);
   if (within_a_week && !launched)
     return;
   base::UmaHistogramBoolean("Arc.PlayStoreLaunchWithinAWeek", within_a_week);
diff --git a/chrome/browser/ui/app_list/arc/arc_pai_starter.cc b/chrome/browser/ui/app_list/arc/arc_pai_starter.cc
index 87ef2e8..8540966f 100644
--- a/chrome/browser/ui/app_list/arc/arc_pai_starter.cc
+++ b/chrome/browser/ui/app_list/arc/arc_pai_starter.cc
@@ -24,8 +24,8 @@
 
 namespace {
 
-constexpr base::TimeDelta kMinRetryTime = base::TimeDelta::FromMinutes(2);
-constexpr base::TimeDelta kMaxRetryTime = base::TimeDelta::FromMinutes(30);
+constexpr base::TimeDelta kMinRetryTime = base::Minutes(2);
+constexpr base::TimeDelta kMaxRetryTime = base::Minutes(30);
 
 }  // namespace
 
diff --git a/chrome/browser/ui/app_list/internal_app/internal_app_metadata.cc b/chrome/browser/ui/app_list/internal_app/internal_app_metadata.cc
index 8bebff1b..5daae41b3 100644
--- a/chrome/browser/ui/app_list/internal_app/internal_app_metadata.cc
+++ b/chrome/browser/ui/app_list/internal_app/internal_app_metadata.cc
@@ -133,7 +133,7 @@
 
         // Only show pages recently opened.
         const base::TimeDelta tab_age = base::Time::Now() - tab->timestamp;
-        if (tab_age > base::TimeDelta::FromMinutes(kMaxForeignTabAgeInMinutes))
+        if (tab_age > base::Minutes(kMaxForeignTabAgeInMinutes))
           continue;
 
         if (latest_timestamp < tab->timestamp) {
diff --git a/chrome/browser/ui/app_list/search/app_result.cc b/chrome/browser/ui/app_list/search/app_result.cc
index e66eb6c..d88e73c 100644
--- a/chrome/browser/ui/app_list/search/app_result.cc
+++ b/chrome/browser/ui/app_list/search/app_result.cc
@@ -35,7 +35,7 @@
     return;
   }
 
-  const double weeks = (current_time - old_time) / base::TimeDelta::FromDays(7);
+  const double weeks = (current_time - old_time) / base::Days(7);
 
   // Set the relevance to a value between 0 and 1. This function decays as the
   // time delta increases and reaches a value of 0.5 at 1 week.
diff --git a/chrome/browser/ui/app_list/search/app_search_provider_unittest.cc b/chrome/browser/ui/app_list/search/app_search_provider_unittest.cc
index d3ba0785..22274e3 100644
--- a/chrome/browser/ui/app_list/search/app_search_provider_unittest.cc
+++ b/chrome/browser/ui/app_list/search/app_search_provider_unittest.cc
@@ -98,13 +98,13 @@
 void WaitTimeUpdated() {
   base::RunLoop run_loop;
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(), base::TimeDelta::FromMilliseconds(1));
+      FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(1));
   run_loop.Run();
 }
 
 base::Time MicrosecondsSinceEpoch(int microseconds) {
   return base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(microseconds));
+      base::Microseconds(microseconds));
 }
 
 }  // namespace
@@ -444,8 +444,7 @@
   EXPECT_EQ("Packaged App 2,Packaged App 1,Hosted App", RunQuery(""));
 
   // Times in the future should just be handled as highest priority.
-  prefs->SetLastLaunchTime(kHostedAppId,
-                           kTestCurrentTime + base::TimeDelta::FromSeconds(5));
+  prefs->SetLastLaunchTime(kHostedAppId, kTestCurrentTime + base::Seconds(5));
   prefs->SetLastLaunchTime(kPackagedApp1Id, MicrosecondsSinceEpoch(10));
   prefs->SetLastLaunchTime(kPackagedApp2Id, MicrosecondsSinceEpoch(5));
   // Allow async callbacks to run.
@@ -474,9 +473,9 @@
     CreateSearchWithContinueReading();
     session_tracker()->InitLocalSession(kLocalSessionTag, kLocalSessionName,
                                         sync_pb::SyncEnums::TYPE_CROS);
-    const base::Time kTimestamp1 = now - base::TimeDelta::FromMinutes(2);
-    const base::Time kTimestamp2 = now - base::TimeDelta::FromMinutes(1);
-    const base::Time kTimestamp3 = now - base::TimeDelta::FromMinutes(3);
+    const base::Time kTimestamp1 = now - base::Minutes(2);
+    const base::Time kTimestamp2 = now - base::Minutes(1);
+    const base::Time kTimestamp3 = now - base::Minutes(3);
 
     session_tracker()->PutWindowInSession(kForeignSessionTag1, kWindowId1);
     session_tracker()->PutTabInWindow(kForeignSessionTag1, kWindowId1, kTabId1);
@@ -526,7 +525,7 @@
     CreateSearchWithContinueReading();
     session_tracker()->InitLocalSession(kLocalSessionTag, kLocalSessionName,
                                         sync_pb::SyncEnums::TYPE_CROS);
-    const base::Time kTimestamp1 = now - base::TimeDelta::FromMinutes(1);
+    const base::Time kTimestamp1 = now - base::Minutes(1);
 
     session_tracker()->PutWindowInSession(kLocalSessionTag, kWindowId1);
     session_tracker()->PutTabInWindow(kLocalSessionTag, kWindowId1, kTabId1);
@@ -551,7 +550,7 @@
     CreateSearchWithContinueReading();
     session_tracker()->InitLocalSession(kLocalSessionTag, kLocalSessionName,
                                         sync_pb::SyncEnums::TYPE_CROS);
-    const base::Time kTimestamp1 = now - base::TimeDelta::FromMinutes(121);
+    const base::Time kTimestamp1 = now - base::Minutes(121);
 
     session_tracker()->PutWindowInSession(kForeignSessionTag1, kWindowId1);
     session_tracker()->PutTabInWindow(kForeignSessionTag1, kWindowId1, kTabId1);
@@ -576,7 +575,7 @@
     CreateSearchWithContinueReading();
     session_tracker()->InitLocalSession(kLocalSessionTag, kLocalSessionName,
                                         sync_pb::SyncEnums::TYPE_CROS);
-    const base::Time kTimestamp1 = now - base::TimeDelta::FromMinutes(1);
+    const base::Time kTimestamp1 = now - base::Minutes(1);
 
     session_tracker()->PutWindowInSession(kForeignSessionTag1, kWindowId1);
     session_tracker()->PutTabInWindow(kForeignSessionTag1, kWindowId1, kTabId1);
@@ -601,7 +600,7 @@
     CreateSearchWithContinueReading();
     session_tracker()->InitLocalSession(kLocalSessionTag, kLocalSessionName,
                                         sync_pb::SyncEnums::TYPE_CROS);
-    const base::Time kTimestamp1 = now - base::TimeDelta::FromMinutes(1);
+    const base::Time kTimestamp1 = now - base::Minutes(1);
 
     session_tracker()->PutWindowInSession(kForeignSessionTag1, kWindowId1);
     session_tracker()->PutTabInWindow(kForeignSessionTag1, kWindowId1, kTabId1);
@@ -626,7 +625,7 @@
     CreateSearchWithContinueReading();
     session_tracker()->InitLocalSession(kLocalSessionTag, kLocalSessionName,
                                         sync_pb::SyncEnums::TYPE_CROS);
-    const base::Time kTimestamp1 = now - base::TimeDelta::FromMinutes(1);
+    const base::Time kTimestamp1 = now - base::Minutes(1);
 
     session_tracker()->PutWindowInSession(kForeignSessionTag1, kWindowId1);
     session_tracker()->PutTabInWindow(kForeignSessionTag1, kWindowId1, kTabId1);
@@ -650,7 +649,7 @@
     CreateSearchWithContinueReading();
     session_tracker()->InitLocalSession(kLocalSessionTag, kLocalSessionName,
                                         sync_pb::SyncEnums::TYPE_CROS);
-    const base::Time kTimestamp1 = now - base::TimeDelta::FromMinutes(1);
+    const base::Time kTimestamp1 = now - base::Minutes(1);
 
     session_tracker()->PutWindowInSession(kForeignSessionTag1, kWindowId1);
     session_tracker()->PutTabInWindow(kForeignSessionTag1, kWindowId1, kTabId1);
@@ -706,7 +705,7 @@
 
   extension_prefs->SetLastLaunchTime(
       extension_misc::kGmailAppId,
-      arc_gmail_app_info->last_launch_time - base::TimeDelta::FromSeconds(1));
+      arc_gmail_app_info->last_launch_time - base::Seconds(1));
 
   // Allow async callbacks to run.
   base::RunLoop().RunUntilIdle();
@@ -716,7 +715,7 @@
 
   extension_prefs->SetLastLaunchTime(
       extension_misc::kGmailAppId,
-      arc_gmail_app_info->last_launch_time + base::TimeDelta::FromSeconds(1));
+      arc_gmail_app_info->last_launch_time + base::Seconds(1));
 
   // Allow async callbacks to run.
   base::RunLoop().RunUntilIdle();
diff --git a/chrome/browser/ui/app_list/search/arc/arc_app_reinstall_search_provider.cc b/chrome/browser/ui/app_list/search/arc/arc_app_reinstall_search_provider.cc
index bf12a92..4ea1d97 100644
--- a/chrome/browser/ui/app_list/search/arc/arc_app_reinstall_search_provider.cc
+++ b/chrome/browser/ui/app_list/search/arc/arc_app_reinstall_search_provider.cc
@@ -33,7 +33,7 @@
 
 namespace {
 // Seconds in between refreshes;
-constexpr base::TimeDelta kRefresh = base::TimeDelta::FromMinutes(30);
+constexpr base::TimeDelta kRefresh = base::Minutes(30);
 
 constexpr char kAppListLatency[] = "Apps.AppListRecommendedResponse.Latency";
 constexpr char kAppListCounts[] = "Apps.AppListRecommendedResponse.Count";
@@ -154,7 +154,7 @@
   if (!GetStateInt64(profile, package_name, key, &value))
     return false;
 
-  *time_delta = base::TimeDelta::FromMilliseconds(value);
+  *time_delta = base::Milliseconds(value);
   return true;
 }
 
@@ -431,8 +431,7 @@
                       &latest_impression)) {
       continue;
     }
-    if (now - latest_impression >
-        base::TimeDelta::FromHours(kResetImpressionGrace.Get())) {
+    if (now - latest_impression > base::Hours(kResetImpressionGrace.Get())) {
       SetStateInt64(profile_, package_name, kImpressionCount, 0);
       UpdateStateRemoveKey(profile_, package_name, kImpressionTime);
     }
@@ -536,8 +535,7 @@
   if (!GetStateTime(profile_, package_name, kImpressionTime,
                     &latest_impression) ||
       impression_count == 0 ||
-      (now - latest_impression >
-       base::TimeDelta::FromSeconds(kNewImpressionTime.Get()))) {
+      (now - latest_impression > base::Seconds(kNewImpressionTime.Get()))) {
     UpdateStateTime(profile_, package_name, kImpressionTime);
     SetStateInt64(profile_, package_name, kImpressionCount,
                   impression_count + 1);
@@ -577,14 +575,14 @@
   const base::TimeDelta now = base::Time::Now().ToDeltaSinceWindowsEpoch();
   if (GetStateTime(profile_, package_id, kUninstallTime, &timestamp)) {
     const auto delta = now - timestamp;
-    if (delta < base::TimeDelta::FromHours(kUninstallGrace.Get())) {
+    if (delta < base::Hours(kUninstallGrace.Get())) {
       // We uninstalled this recently, don't show.
       return false;
     }
   }
   if (GetStateTime(profile_, package_id, kInstallStartTime, &timestamp)) {
     const auto delta = now - timestamp;
-    if (delta < base::TimeDelta::FromHours(kInstallStartGrace.Get())) {
+    if (delta < base::Hours(kInstallStartGrace.Get())) {
       // We started install on this recently, don't show.
       return false;
     }
@@ -603,8 +601,7 @@
   if (!kInteractionGrace.Get()) {
     return true;
   }
-  const base::TimeDelta grace_period =
-      base::TimeDelta::FromHours(kInteractionGrace.Get());
+  const base::TimeDelta grace_period = base::Hours(kInteractionGrace.Get());
   const base::TimeDelta now = base::Time::Now().ToDeltaSinceWindowsEpoch();
   std::unordered_set<std::string> package_names;
   GetKnownPackageNames(profile_, &package_names);
diff --git a/chrome/browser/ui/app_list/search/arc/arc_app_reinstall_search_provider_unittest.cc b/chrome/browser/ui/app_list/search/arc/arc_app_reinstall_search_provider_unittest.cc
index 51a16b3f..b6aa0ac 100644
--- a/chrome/browser/ui/app_list/search/arc/arc_app_reinstall_search_provider_unittest.cc
+++ b/chrome/browser/ui/app_list/search/arc/arc_app_reinstall_search_provider_unittest.cc
@@ -377,24 +377,24 @@
   EXPECT_TRUE(app_provider_->ShouldShowAnything());
   SetStateTime(profile_.get(), fake_package2,
                app_list::ArcAppReinstallSearchProvider::kInstallTime,
-               base::Time::Now() - base::TimeDelta::FromSeconds(30));
+               base::Time::Now() - base::Seconds(30));
   // Expect this to now say we shouldn't show, since a package was installed
   // well within an install grace.
   EXPECT_FALSE(app_provider_->ShouldShowAnything());
   SetStateTime(profile_.get(), fake_package2,
                app_list::ArcAppReinstallSearchProvider::kInstallTime,
-               base::Time::Now() - base::TimeDelta::FromDays(30));
+               base::Time::Now() - base::Days(30));
   EXPECT_TRUE(app_provider_->ShouldShowAnything());
 
   // Testing for opens: if an a recommendation is opened within the grace
   // period, we won't show anything. That's 72 hours (per configuration here).
   SetStateTime(profile_.get(), fake_package3,
                app_list::ArcAppReinstallSearchProvider::kOpenTime,
-               base::Time::Now() - base::TimeDelta::FromSeconds(30));
+               base::Time::Now() - base::Seconds(30));
   EXPECT_FALSE(app_provider_->ShouldShowAnything());
   SetStateTime(profile_.get(), fake_package3,
                app_list::ArcAppReinstallSearchProvider::kOpenTime,
-               base::Time::Now() - base::TimeDelta::FromDays(30));
+               base::Time::Now() - base::Days(30));
   EXPECT_TRUE(app_provider_->ShouldShowAnything());
 
   // Testing for impression counts: If we've shown a result more than the
@@ -407,12 +407,12 @@
   // shown recently.
   SetStateTime(profile_.get(), fake_package4,
                app_list::ArcAppReinstallSearchProvider::kImpressionTime,
-               base::Time::Now() - base::TimeDelta::FromSeconds(30));
+               base::Time::Now() - base::Seconds(30));
   EXPECT_FALSE(app_provider_->ShouldShowAnything());
   // shown long ago.
   SetStateTime(profile_.get(), fake_package4,
                app_list::ArcAppReinstallSearchProvider::kImpressionTime,
-               base::Time::Now() - base::TimeDelta::FromDays(30));
+               base::Time::Now() - base::Days(30));
   EXPECT_TRUE(app_provider_->ShouldShowAnything());
 
   // Shown recently, but not frequently.
@@ -420,7 +420,7 @@
                 app_list::ArcAppReinstallSearchProvider::kImpressionCount, 3);
   SetStateTime(profile_.get(), fake_package4,
                app_list::ArcAppReinstallSearchProvider::kImpressionTime,
-               base::Time::Now() - base::TimeDelta::FromSeconds(30));
+               base::Time::Now() - base::Seconds(30));
   EXPECT_TRUE(app_provider_->ShouldShowAnything());
 }
 
diff --git a/chrome/browser/ui/app_list/search/arc/recommend_apps_fetcher_impl.cc b/chrome/browser/ui/app_list/search/arc/recommend_apps_fetcher_impl.cc
index aad3ead..9d96433 100644
--- a/chrome/browser/ui/app_list/search/arc/recommend_apps_fetcher_impl.cc
+++ b/chrome/browser/ui/app_list/search/arc/recommend_apps_fetcher_impl.cc
@@ -39,7 +39,7 @@
 // further parsing.
 constexpr base::StringPiece kJsonXssPreventionPrefix = ")]}'";
 
-constexpr base::TimeDelta kDownloadTimeOut = base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kDownloadTimeOut = base::Minutes(1);
 
 constexpr const int64_t kMaxDownloadBytes = 1024 * 1024;  // 1Mb
 
diff --git a/chrome/browser/ui/app_list/search/cros_action_history/cros_action_recorder.h b/chrome/browser/ui/app_list/search/cros_action_history/cros_action_recorder.h
index 74050e2..b9c5786 100644
--- a/chrome/browser/ui/app_list/search/cros_action_history/cros_action_recorder.h
+++ b/chrome/browser/ui/app_list/search/cros_action_history/cros_action_recorder.h
@@ -69,8 +69,7 @@
   friend class CrOSActionRecorderTabTrackerTest;
 
   // kSaveInternal controls how often we save the action history to disk.
-  static constexpr base::TimeDelta kSaveInternal =
-      base::TimeDelta::FromHours(1);
+  static constexpr base::TimeDelta kSaveInternal = base::Hours(1);
 
   // Private constructor used for testing purpose. Which basically calls the
   // Init function.
diff --git a/chrome/browser/ui/app_list/search/cros_action_history/cros_action_recorder_unittest.cc b/chrome/browser/ui/app_list/search/cros_action_history/cros_action_recorder_unittest.cc
index 9839962..f0b363f 100644
--- a/chrome/browser/ui/app_list/search/cros_action_history/cros_action_recorder_unittest.cc
+++ b/chrome/browser/ui/app_list/search/cros_action_history/cros_action_recorder_unittest.cc
@@ -45,7 +45,7 @@
 
     save_internal_secs_ = CrOSActionRecorder::kSaveInternal.InSeconds();
     // Set time_ to be base::Time::UnixEpoch().
-    time_.Advance(base::TimeDelta::FromSeconds(11612937600));
+    time_.Advance(base::Seconds(11612937600));
   }
 
   void TearDown() override {
@@ -171,7 +171,7 @@
 // Check a new file is written every day for expected values.
 TEST_F(CrOSActionRecorderTest, WriteToNewFileEveryDay) {
   SetLogWithHash();
-  time_.Advance(base::TimeDelta::FromSeconds(save_internal_secs_));
+  time_.Advance(base::Seconds(save_internal_secs_));
   recorder_->RecordAction({actions_[0]}, {{conditions_[0], kConditionValue}});
   Wait();
 
@@ -183,7 +183,7 @@
   ExpectCrOSAction(action_history_0.actions(0), 0, save_internal_secs_);
 
   // Advance for 1 day.
-  time_.Advance(base::TimeDelta::FromSeconds(kSecondsPerDay));
+  time_.Advance(base::Seconds(kSecondsPerDay));
   recorder_->RecordAction({actions_[1]},
                           {{conditions_[1], kConditionValue + 1}});
   Wait();
@@ -200,7 +200,7 @@
 // Check that the result is appended to previous log within a day.
 TEST_F(CrOSActionRecorderTest, AppendToFileEverySaveInAday) {
   SetLogWithHash();
-  time_.Advance(base::TimeDelta::FromSeconds(save_internal_secs_));
+  time_.Advance(base::Seconds(save_internal_secs_));
   recorder_->RecordAction({actions_[0]}, {{conditions_[0], kConditionValue}});
   Wait();
 
@@ -212,7 +212,7 @@
   ExpectCrOSAction(action_history_0.actions(0), 0, save_internal_secs_);
 
   // Advance for 1 kSaveInternal.
-  time_.Advance(base::TimeDelta::FromSeconds(save_internal_secs_));
+  time_.Advance(base::Seconds(save_internal_secs_));
   recorder_->RecordAction({actions_[1]},
                           {{conditions_[1], kConditionValue + 1}});
   Wait();
@@ -226,7 +226,7 @@
   ExpectCrOSAction(action_history_1.actions(1), 1, save_internal_secs_ * 2);
 
   // Advance for 3 kSaveInternal.
-  time_.Advance(base::TimeDelta::FromSeconds(save_internal_secs_ * 3));
+  time_.Advance(base::Seconds(save_internal_secs_ * 3));
   recorder_->RecordAction({actions_[2]},
                           {{conditions_[2], kConditionValue + 2}});
   Wait();
diff --git a/chrome/browser/ui/app_list/search/files/file_search_provider.cc b/chrome/browser/ui/app_list/search/files/file_search_provider.cc
index f985dac..4c6a54f8e 100644
--- a/chrome/browser/ui/app_list/search/files/file_search_provider.cc
+++ b/chrome/browser/ui/app_list/search/files/file_search_provider.cc
@@ -67,7 +67,7 @@
       base::FileEnumerator::DIRECTORIES | base::FileEnumerator::FILES,
       CreateFnmatchQuery(query), base::FileEnumerator::FolderSearchPolicy::ALL);
 
-  const auto time_limit = base::TimeDelta::FromMilliseconds(kSearchTimeoutMs);
+  const auto time_limit = base::Milliseconds(kSearchTimeoutMs);
   bool timed_out = false;
   std::vector<FileSearchProvider::PathInfo> matched_paths;
   for (base::FilePath path = enumerator.Next(); !path.empty();
diff --git a/chrome/browser/ui/app_list/search/files/file_search_provider_unittest.cc b/chrome/browser/ui/app_list/search/files/file_search_provider_unittest.cc
index 3977887..a254fa8f 100644
--- a/chrome/browser/ui/app_list/search/files/file_search_provider_unittest.cc
+++ b/chrome/browser/ui/app_list/search/files/file_search_provider_unittest.cc
@@ -132,8 +132,8 @@
 
   // Set the access times of all files to be different.
   const base::Time time = base::Time::Now();
-  const base::Time earlier_time = time - base::TimeDelta::FromMinutes(5);
-  const base::Time earliest_time = time - base::TimeDelta::FromMinutes(10);
+  const base::Time earlier_time = time - base::Minutes(5);
+  const base::Time earliest_time = time - base::Minutes(10);
   TouchFile(Path("file.txt"), time, time);
   TouchFile(Path("file.png"), earliest_time, time);
   TouchFile(Path("file.pdf"), earlier_time, time);
diff --git a/chrome/browser/ui/app_list/search/files/item_suggest_cache.cc b/chrome/browser/ui/app_list/search/files/item_suggest_cache.cc
index 1bf06c8f..6106dde 100644
--- a/chrome/browser/ui/app_list/search/files/item_suggest_cache.cc
+++ b/chrome/browser/ui/app_list/search/files/item_suggest_cache.cc
@@ -179,8 +179,7 @@
     scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory)
     : enabled_(kEnabled.Get()),
       server_url_(kServerUrl.Get()),
-      min_time_between_updates_(
-          base::TimeDelta::FromMinutes(kMinMinutesBetweenUpdates.Get())),
+      min_time_between_updates_(base::Minutes(kMinMinutesBetweenUpdates.Get())),
       profile_(profile),
       url_loader_factory_(std::move(url_loader_factory)) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
diff --git a/chrome/browser/ui/app_list/search/files/item_suggest_cache_unittest.cc b/chrome/browser/ui/app_list/search/files/item_suggest_cache_unittest.cc
index e29b3de..dd2d178 100644
--- a/chrome/browser/ui/app_list/search/files/item_suggest_cache_unittest.cc
+++ b/chrome/browser/ui/app_list/search/files/item_suggest_cache_unittest.cc
@@ -483,7 +483,7 @@
   ResultsMatch(itemSuggestCache->GetResults(), "suggestion id 1",
                {{"item id 1", "display text 1"}});
 
-  task_environment_.AdvanceClock(base::TimeDelta::FromMinutes(2));
+  task_environment_.AdvanceClock(base::Minutes(2));
 
   url_loader_factory_.AddResponse(kRequestUrl,
                                   R"(
diff --git a/chrome/browser/ui/app_list/search/ranking/mrfu_cache.h b/chrome/browser/ui/app_list/search/ranking/mrfu_cache.h
index a1f9071..f5d145b 100644
--- a/chrome/browser/ui/app_list/search/ranking/mrfu_cache.h
+++ b/chrome/browser/ui/app_list/search/ranking/mrfu_cache.h
@@ -80,7 +80,7 @@
     // Items below min_score may be deleted.
     float min_score = 0.01f;
     // How long to wait until writing any updates to disk.
-    base::TimeDelta write_delay = base::TimeDelta::FromSeconds(30);
+    base::TimeDelta write_delay = base::Seconds(30);
   };
 
   MrfuCache(const base::FilePath& path, const Params& params);
diff --git a/chrome/browser/ui/app_list/search/ranking/mrfu_cache_unittest.cc b/chrome/browser/ui/app_list/search/ranking/mrfu_cache_unittest.cc
index 97a9e38..17ff342 100644
--- a/chrome/browser/ui/app_list/search/ranking/mrfu_cache_unittest.cc
+++ b/chrome/browser/ui/app_list/search/ranking/mrfu_cache_unittest.cc
@@ -35,7 +35,7 @@
     params.boost_factor = 5.0f;
     params.max_items = 3u;
     params.min_score = 0.01f;
-    params.write_delay = base::TimeDelta::FromSeconds(0);
+    params.write_delay = base::Seconds(0);
     return params;
   }
 
diff --git a/chrome/browser/ui/app_list/search/ranking/persistent_proto_unittest.cc b/chrome/browser/ui/app_list/search/ranking/persistent_proto_unittest.cc
index 45d81bbf..a29959d 100644
--- a/chrome/browser/ui/app_list/search/ranking/persistent_proto_unittest.cc
+++ b/chrome/browser/ui/app_list/search/ranking/persistent_proto_unittest.cc
@@ -39,7 +39,7 @@
 }
 
 base::TimeDelta WriteDelay() {
-  return base::TimeDelta::FromSeconds(0);
+  return base::Seconds(0);
 }
 
 }  // namespace
diff --git a/chrome/browser/ui/app_list/search/ranking/score_normalizer.h b/chrome/browser/ui/app_list/search/ranking/score_normalizer.h
index 4f41dd8..42c3856 100644
--- a/chrome/browser/ui/app_list/search/ranking/score_normalizer.h
+++ b/chrome/browser/ui/app_list/search/ranking/score_normalizer.h
@@ -29,7 +29,7 @@
     int32_t version = 1;
 
     // How long to wait until writing any updates to disk.
-    base::TimeDelta write_delay = base::TimeDelta::FromSeconds(30);
+    base::TimeDelta write_delay = base::Seconds(30);
 
     // TODO(crbug.com/1199206): Add model parameters.
   };
diff --git a/chrome/browser/ui/app_list/search/ranking/score_normalizer_unittest.cc b/chrome/browser/ui/app_list/search/ranking/score_normalizer_unittest.cc
index 873afc16..70df32cc 100644
--- a/chrome/browser/ui/app_list/search/ranking/score_normalizer_unittest.cc
+++ b/chrome/browser/ui/app_list/search/ranking/score_normalizer_unittest.cc
@@ -21,7 +21,7 @@
   ScoreNormalizer::Params TestingParams() {
     ScoreNormalizer::Params params;
     params.version = 4;
-    params.write_delay = base::TimeDelta::FromSeconds(0);
+    params.write_delay = base::Seconds(0);
     return params;
   }
 
diff --git a/chrome/browser/ui/app_list/search/search_result_ranker/app_launch_event_logger.cc b/chrome/browser/ui/app_list/search/search_result_ranker/app_launch_event_logger.cc
index aa26538..f36a010 100644
--- a/chrome/browser/ui/app_list/search/search_result_ranker/app_launch_event_logger.cc
+++ b/chrome/browser/ui/app_list/search/search_result_ranker/app_launch_event_logger.cc
@@ -48,8 +48,8 @@
 
 constexpr unsigned int kNumRandomAppsToLog = 25;
 
-constexpr base::TimeDelta kHourDuration = base::TimeDelta::FromHours(1);
-constexpr base::TimeDelta kDayDuration = base::TimeDelta::FromDays(1);
+constexpr base::TimeDelta kHourDuration = base::Hours(1);
+constexpr base::TimeDelta kDayDuration = base::Days(1);
 constexpr int kMinutesInAnHour = 60;
 constexpr int kQuarterHoursInADay = 24 * 4;
 
diff --git a/chrome/browser/ui/app_list/search/search_result_ranker/app_launch_predictor.cc b/chrome/browser/ui/app_list/search/search_result_ranker/app_launch_predictor.cc
index 08b754da..4a3e8586 100644
--- a/chrome/browser/ui/app_list/search/search_result_ranker/app_launch_predictor.cc
+++ b/chrome/browser/ui/app_list/search/search_result_ranker/app_launch_predictor.cc
@@ -15,7 +15,7 @@
 namespace {
 
 constexpr int kHoursADay = 24;
-constexpr base::TimeDelta kSaveInternal = base::TimeDelta::FromHours(1);
+constexpr base::TimeDelta kSaveInternal = base::Hours(1);
 
 // A bin with index i has 5 adjacent bins as: i + 0, i + 1, i + 2, i + 22, and
 // i + 23 which stand for the bin i itself, 1 hour later, 2 hours later,
diff --git a/chrome/browser/ui/app_list/search/search_result_ranker/app_launch_predictor_unittest.cc b/chrome/browser/ui/app_list/search/search_result_ranker/app_launch_predictor_unittest.cc
index 2b1b185..1b79457b 100644
--- a/chrome/browser/ui/app_list/search/search_result_ranker/app_launch_predictor_unittest.cc
+++ b/chrome/browser/ui/app_list/search/search_result_ranker/app_launch_predictor_unittest.cc
@@ -97,8 +97,7 @@
   // Sets local time according to |day_of_week| and |hour_of_day|.
   void SetLocalTime(const int day_of_week, const int hour_of_day) {
     AdvanceToNextLocalSunday();
-    const auto advance = base::TimeDelta::FromDays(day_of_week) +
-                         base::TimeDelta::FromHours(hour_of_day);
+    const auto advance = base::Days(day_of_week) + base::Hours(hour_of_day);
     if (advance > base::TimeDelta()) {
       time_.Advance(advance);
     }
@@ -111,8 +110,8 @@
   void AdvanceToNextLocalSunday() {
     base::Time::Exploded now;
     base::Time::Now().LocalExplode(&now);
-    const auto advance = base::TimeDelta::FromDays(6 - now.day_of_week) +
-                         base::TimeDelta::FromHours(24 - now.hour);
+    const auto advance =
+        base::Days(6 - now.day_of_week) + base::Hours(24 - now.hour);
     if (advance > base::TimeDelta()) {
       time_.Advance(advance);
     }
@@ -296,12 +295,12 @@
   EXPECT_TRUE(EquivToProtoLite(predictor.ToProto(), proto));
 
   // FromProto will not decay since last_decay_timestamp is within 7 days.
-  time_.Advance(base::TimeDelta::FromDays(6));
+  time_.Advance(base::Days(6));
   predictor.FromProto(proto);
   EXPECT_TRUE(EquivToProtoLite(predictor.ToProto(), proto));
 
   // FromProto will decay since last_decay_timestamp is over 7 days.
-  time_.Advance(base::TimeDelta::FromDays(2));
+  time_.Advance(base::Days(2));
   predictor.FromProto(proto);
   const int new_frequency1 =
       static_cast<int>(frequency1 * HourAppLaunchPredictor::kWeeklyDecayCoeff);
diff --git a/chrome/browser/ui/app_list/search/search_result_ranker/recurrence_predictor.cc b/chrome/browser/ui/app_list/search/search_result_ranker/recurrence_predictor.cc
index 6869b90..5d17528 100644
--- a/chrome/browser/ui/app_list/search/search_result_ranker/recurrence_predictor.cc
+++ b/chrome/browser/ui/app_list/search/search_result_ranker/recurrence_predictor.cc
@@ -321,8 +321,7 @@
 }
 
 int HourBinPredictor::GetBinFromHourDifference(int hour_difference) const {
-  base::Time shifted_time =
-      base::Time::Now() + base::TimeDelta::FromHours(hour_difference);
+  base::Time shifted_time = base::Time::Now() + base::Hours(hour_difference);
   base::Time::Exploded exploded_time;
   shifted_time.LocalExplode(&exploded_time);
 
diff --git a/chrome/browser/ui/app_list/search/search_result_ranker/recurrence_predictor_unittest.cc b/chrome/browser/ui/app_list/search/search_result_ranker/recurrence_predictor_unittest.cc
index 3fcf926..0a5104b7 100644
--- a/chrome/browser/ui/app_list/search/search_result_ranker/recurrence_predictor_unittest.cc
+++ b/chrome/browser/ui/app_list/search/search_result_ranker/recurrence_predictor_unittest.cc
@@ -194,8 +194,7 @@
   // Sets local time according to |day_of_week| and |hour_of_day|.
   void SetLocalTime(const int day_of_week, const int hour_of_day) {
     AdvanceToNextLocalSunday();
-    const auto advance = base::TimeDelta::FromDays(day_of_week) +
-                         base::TimeDelta::FromHours(hour_of_day);
+    const auto advance = base::Days(day_of_week) + base::Hours(hour_of_day);
     if (advance > base::TimeDelta()) {
       time_.Advance(advance);
     }
@@ -230,8 +229,8 @@
   void AdvanceToNextLocalSunday() {
     base::Time::Exploded now;
     base::Time::Now().LocalExplode(&now);
-    const auto advance = base::TimeDelta::FromDays(6 - now.day_of_week) +
-                         base::TimeDelta::FromHours(24 - now.hour);
+    const auto advance =
+        base::Days(6 - now.day_of_week) + base::Hours(24 - now.hour);
     if (advance > base::TimeDelta()) {
       time_.Advance(advance);
     }
diff --git a/chrome/browser/ui/apps/chrome_app_delegate.cc b/chrome/browser/ui/apps/chrome_app_delegate.cc
index ae85020..7b02121 100644
--- a/chrome/browser/ui/apps/chrome_app_delegate.cc
+++ b/chrome/browser/ui/apps/chrome_app_delegate.cc
@@ -371,7 +371,7 @@
       FROM_HERE,
       base::BindOnce(&ChromeAppDelegate::RelinquishKeepAliveAfterTimeout,
                      weak_factory_.GetWeakPtr()),
-      base::TimeDelta::FromSeconds(kAppWindowFirstShowTimeoutSeconds));
+      base::Seconds(kAppWindowFirstShowTimeoutSeconds));
 }
 
 void ChromeAppDelegate::OnShow() {
diff --git a/chrome/browser/ui/ash/accessibility/accessibility_controller_client_unittest.cc b/chrome/browser/ui/ash/accessibility/accessibility_controller_client_unittest.cc
index 9b5e164..757f750 100644
--- a/chrome/browser/ui/ash/accessibility/accessibility_controller_client_unittest.cc
+++ b/chrome/browser/ui/ash/accessibility/accessibility_controller_client_unittest.cc
@@ -19,8 +19,7 @@
 
 using ::ash::Sound;
 
-constexpr base::TimeDelta kShutdownSoundDuration =
-    base::TimeDelta::FromMilliseconds(1000);
+constexpr base::TimeDelta kShutdownSoundDuration = base::Milliseconds(1000);
 
 class FakeAccessibilityControllerClient : public AccessibilityControllerClient {
  public:
diff --git a/chrome/browser/ui/ash/assistant/assistant_browsertest.cc b/chrome/browser/ui/ash/assistant/assistant_browsertest.cc
index 2aa2247..3f56d81 100644
--- a/chrome/browser/ui/ash/assistant/assistant_browsertest.cc
+++ b/chrome/browser/ui/ash/assistant/assistant_browsertest.cc
@@ -269,7 +269,7 @@
       "Something went wrong. Try again in a few seconds");
 
   // Make sure no further changes happen to the view hierarchy.
-  tester()->ExpectNoChange(base::TimeDelta::FromSeconds(1));
+  tester()->ExpectNoChange(base::Seconds(1));
 
   // This is necessary to prevent a UserInitiatedVoicelessActivity from
   // blocking test harness teardown while we wait on assistant to finish
diff --git a/chrome/browser/ui/ash/assistant/assistant_test_mixin.cc b/chrome/browser/ui/ash/assistant/assistant_test_mixin.cc
index b86383b..de06155 100644
--- a/chrome/browser/ui/ash/assistant/assistant_test_mixin.cc
+++ b/chrome/browser/ui/ash/assistant/assistant_test_mixin.cc
@@ -538,7 +538,7 @@
                  [](const std::string& timer_as_string) {
                    int seconds_remaining = 0;
                    base::StringToInt(timer_as_string, &seconds_remaining);
-                   return base::TimeDelta::FromSeconds(seconds_remaining);
+                   return base::Seconds(seconds_remaining);
                  });
 
   return timers;
diff --git a/chrome/browser/ui/ash/assistant/assistant_test_mixin.h b/chrome/browser/ui/ash/assistant/assistant_test_mixin.h
index 3f9cc67..cd234ff 100644
--- a/chrome/browser/ui/ash/assistant/assistant_test_mixin.h
+++ b/chrome/browser/ui/ash/assistant/assistant_test_mixin.h
@@ -29,8 +29,7 @@
 class LoggedInUserMixin;
 
 // Default wait time before we conclude the wait actions have timed out.
-constexpr base::TimeDelta kDefaultWaitTimeout =
-    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kDefaultWaitTimeout = base::Seconds(10);
 
 // Creates everything required to test the Assistant in browser tests.
 // This includes:
diff --git a/chrome/browser/ui/ash/capture_mode/recording_service_browsertest.cc b/chrome/browser/ui/ash/capture_mode/recording_service_browsertest.cc
index a702e21..e0fee09 100644
--- a/chrome/browser/ui/ash/capture_mode/recording_service_browsertest.cc
+++ b/chrome/browser/ui/ash/capture_mode/recording_service_browsertest.cc
@@ -40,8 +40,7 @@
 void WaitForMilliseconds(int milliseconds) {
   base::RunLoop loop;
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, loop.QuitClosure(),
-      base::TimeDelta::FromMilliseconds(milliseconds));
+      FROM_HERE, loop.QuitClosure(), base::Milliseconds(milliseconds));
   loop.Run();
 }
 
diff --git a/chrome/browser/ui/ash/clipboard_image_model_factory_impl.cc b/chrome/browser/ui/ash/clipboard_image_model_factory_impl.cc
index 33627e7..833d2d8 100644
--- a/chrome/browser/ui/ash/clipboard_image_model_factory_impl.cc
+++ b/chrome/browser/ui/ash/clipboard_image_model_factory_impl.cc
@@ -10,7 +10,7 @@
     Profile* primary_profile)
     : primary_profile_(primary_profile),
       idle_timer_(FROM_HERE,
-                  base::TimeDelta::FromMinutes(2),
+                  base::Minutes(2),
                   this,
                   &ClipboardImageModelFactoryImpl::OnRequestIdle) {
   DCHECK(primary_profile_);
diff --git a/chrome/browser/ui/ash/clipboard_image_model_request.cc b/chrome/browser/ui/ash/clipboard_image_model_request.cc
index 60803ba..204bdd81 100644
--- a/chrome/browser/ui/ash/clipboard_image_model_request.cc
+++ b/chrome/browser/ui/ash/clipboard_image_model_request.cc
@@ -135,7 +135,7 @@
   html_markup_ = params.html_markup;
   deliver_image_model_callback_ = std::move(params.callback);
 
-  timeout_timer_.Start(FROM_HERE, base::TimeDelta::FromSeconds(10), this,
+  timeout_timer_.Start(FROM_HERE, base::Seconds(10), this,
                        &ClipboardImageModelRequest::OnTimeout);
   request_start_time_ = base::TimeTicks::Now();
 
@@ -292,7 +292,7 @@
       FROM_HERE,
       base::BindOnce(&ClipboardImageModelRequest::CopySurface,
                      copy_surface_weak_ptr_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(250));
+      base::Milliseconds(250));
 }
 
 void ClipboardImageModelRequest::CopySurface() {
diff --git a/chrome/browser/ui/ash/desk_template_app_launch_handler.cc b/chrome/browser/ui/ash/desk_template_app_launch_handler.cc
index 940b45b..e9f05042 100644
--- a/chrome/browser/ui/ash/desk_template_app_launch_handler.cc
+++ b/chrome/browser/ui/ash/desk_template_app_launch_handler.cc
@@ -29,8 +29,7 @@
 
 // The restore data owned by this class will clear after being set. This is a
 // temporary estimate of how long it takes to launch apps.
-constexpr base::TimeDelta kClearRestoreDataDuration =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kClearRestoreDataDuration = base::Seconds(5);
 
 }  // namespace
 
diff --git a/chrome/browser/ui/ash/holding_space/holding_space_file_system_delegate.cc b/chrome/browser/ui/ash/holding_space/holding_space_file_system_delegate.cc
index 84c43c2f..e19b2d9 100644
--- a/chrome/browser/ui/ash/holding_space/holding_space_file_system_delegate.cc
+++ b/chrome/browser/ui/ash/holding_space/holding_space_file_system_delegate.cc
@@ -268,7 +268,7 @@
   // delayed volume mount is to support volumes that are mounted asynchronously
   // during the startup.
   clear_non_initialized_items_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromMinutes(1),
+      FROM_HERE, base::Minutes(1),
       base::BindOnce(&HoldingSpaceFileSystemDelegate::ClearNonInitializedItems,
                      base::Unretained(this)));
 }
diff --git a/chrome/browser/ui/ash/holding_space/holding_space_ui_browsertest.cc b/chrome/browser/ui/ash/holding_space/holding_space_ui_browsertest.cc
index 89e5a828..46a3d52 100644
--- a/chrome/browser/ui/ash/holding_space/holding_space_ui_browsertest.cc
+++ b/chrome/browser/ui/ash/holding_space/holding_space_ui_browsertest.cc
@@ -2671,8 +2671,7 @@
   // Record a 100 ms long video.
   base::RunLoop video_recording_time;
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, video_recording_time.QuitClosure(),
-      base::TimeDelta::FromMilliseconds(100));
+      FROM_HERE, video_recording_time.QuitClosure(), base::Milliseconds(100));
   video_recording_time.Run();
   capture_mode_test_api.StopVideoRecording();
 
diff --git a/chrome/browser/ui/ash/keyboard/chrome_keyboard_controller_client_test_helper.cc b/chrome/browser/ui/ash/keyboard/chrome_keyboard_controller_client_test_helper.cc
index f02c0448..65e9529 100644
--- a/chrome/browser/ui/ash/keyboard/chrome_keyboard_controller_client_test_helper.cc
+++ b/chrome/browser/ui/ash/keyboard/chrome_keyboard_controller_client_test_helper.cc
@@ -76,8 +76,8 @@
     observers_.RemoveObserver(observer);
   }
   ash::KeyRepeatSettings GetKeyRepeatSettings() override {
-    return ash::KeyRepeatSettings{true, base::TimeDelta::FromMilliseconds(1000),
-                                  base::TimeDelta::FromMilliseconds(1000)};
+    return ash::KeyRepeatSettings{true, base::Milliseconds(1000),
+                                  base::Milliseconds(1000)};
   }
 
  private:
diff --git a/chrome/browser/ui/ash/keyboard/keyboard_end_to_end_browsertest.cc b/chrome/browser/ui/ash/keyboard/keyboard_end_to_end_browsertest.cc
index 207f1574..d20c1c6 100644
--- a/chrome/browser/ui/ash/keyboard/keyboard_end_to_end_browsertest.cc
+++ b/chrome/browser/ui/ash/keyboard/keyboard_end_to_end_browsertest.cc
@@ -321,7 +321,7 @@
   // Wait until the transient blur threshold (3500ms) passes.
   // TODO(https://crbug.com/849995): Find a way to accelerate the clock without
   // actually waiting in real time.
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(3501));
+  base::PlatformThread::Sleep(base::Milliseconds(3501));
 
   ClickElementWithId(web_contents_, "async");
   base::RunLoop().RunUntilIdle();  // Allow async operations to complete.
diff --git a/chrome/browser/ui/ash/launcher_drag_interactive_uitest.cc b/chrome/browser/ui/ash/launcher_drag_interactive_uitest.cc
index a6c36554..75638ed 100644
--- a/chrome/browser/ui/ash/launcher_drag_interactive_uitest.cc
+++ b/chrome/browser/ui/ash/launcher_drag_interactive_uitest.cc
@@ -42,8 +42,7 @@
     int warmup_seconds = base::SysInfo::IsRunningOnChromeOS() ? 5 : 1;
     base::RunLoop run_loop;
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-        FROM_HERE, run_loop.QuitClosure(),
-        base::TimeDelta::FromSeconds(warmup_seconds));
+        FROM_HERE, run_loop.QuitClosure(), base::Seconds(warmup_seconds));
     run_loop.Run();
   }
 
@@ -75,7 +74,7 @@
   end_point.set_y(10);
   auto generator = ui_test_utils::DragEventGenerator::CreateForTouch(
       std::make_unique<ui_test_utils::InterpolatedProducer>(
-          start_point, end_point, base::TimeDelta::FromMilliseconds(1000)));
+          start_point, end_point, base::Milliseconds(1000)));
   generator->Wait();
 
   shell_test_api.WaitForLauncherAnimationState(
@@ -142,7 +141,7 @@
                   ash::ShelfConfig::Get()->shelf_size() / 2);
   auto generator = ui_test_utils::DragEventGenerator::CreateForTouch(
       std::make_unique<ui_test_utils::InterpolatedProducer>(
-          start_point, end_point, base::TimeDelta::FromMilliseconds(1000)));
+          start_point, end_point, base::Milliseconds(1000)));
   generator->Wait();
 
   shell_test_api.WaitForLauncherAnimationState(ash::AppListViewState::kClosed);
diff --git a/chrome/browser/ui/ash/launcher_page_switches_interactive_uitest.cc b/chrome/browser/ui/ash/launcher_page_switches_interactive_uitest.cc
index 8428da52..e764ef8 100644
--- a/chrome/browser/ui/ash/launcher_page_switches_interactive_uitest.cc
+++ b/chrome/browser/ui/ash/launcher_page_switches_interactive_uitest.cc
@@ -68,7 +68,7 @@
     if (base::SysInfo::IsRunningOnChromeOS()) {
       base::RunLoop run_loop;
       base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-          FROM_HERE, run_loop.QuitClosure(), base::TimeDelta::FromSeconds(5));
+          FROM_HERE, run_loop.QuitClosure(), base::Seconds(5));
       run_loop.Run();
     }
 
@@ -172,7 +172,7 @@
     if (base::SysInfo::IsRunningOnChromeOS()) {
       base::RunLoop run_loop;
       base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-          FROM_HERE, run_loop.QuitClosure(), base::TimeDelta::FromSeconds(5));
+          FROM_HERE, run_loop.QuitClosure(), base::Seconds(5));
       run_loop.Run();
     }
   }
@@ -199,7 +199,7 @@
   end_point.set_y(10);
   auto generator = ui_test_utils::DragEventGenerator::CreateForTouch(
       std::make_unique<ui_test_utils::InterpolatedProducer>(
-          start_point, end_point, base::TimeDelta::FromMilliseconds(1000)));
+          start_point, end_point, base::Milliseconds(1000)));
 
   ash::PaginationModel* model = ash::ShellTestApi().GetAppListPaginationModel();
   ASSERT_TRUE(model);
diff --git a/chrome/browser/ui/ash/network/mobile_data_notifications.cc b/chrome/browser/ui/ash/network/mobile_data_notifications.cc
index d7605372..a46e348 100644
--- a/chrome/browser/ui/ash/network/mobile_data_notifications.cc
+++ b/chrome/browser/ui/ash/network/mobile_data_notifications.cc
@@ -156,7 +156,7 @@
     return;
   }
   one_shot_notification_check_delay_.Start(
-      FROM_HERE, base::TimeDelta::FromSeconds(kNotificationCheckDelayInSeconds),
+      FROM_HERE, base::Seconds(kNotificationCheckDelayInSeconds),
       base::BindOnce(
           &MobileDataNotifications::ShowOptionalMobileDataNotification,
           // Callbacks won't run after this object is destroyed by using weak
diff --git a/chrome/browser/ui/ash/overview_animations_interactive_uitest.cc b/chrome/browser/ui/ash/overview_animations_interactive_uitest.cc
index 7e9287c2..40d7c904e 100644
--- a/chrome/browser/ui/ash/overview_animations_interactive_uitest.cc
+++ b/chrome/browser/ui/ash/overview_animations_interactive_uitest.cc
@@ -57,8 +57,7 @@
                        additional_browsers * cost_per_browser;
     base::RunLoop run_loop;
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-        FROM_HERE, run_loop.QuitClosure(),
-        base::TimeDelta::FromSeconds(wait_seconds));
+        FROM_HERE, run_loop.QuitClosure(), base::Seconds(wait_seconds));
     run_loop.Run();
   }
 
diff --git a/chrome/browser/ui/ash/quick_answers/quick_answers_browser_client_impl.cc b/chrome/browser/ui/ash/quick_answers/quick_answers_browser_client_impl.cc
index dbd3f89..32935e8 100644
--- a/chrome/browser/ui/ash/quick_answers/quick_answers_browser_client_impl.cc
+++ b/chrome/browser/ui/ash/quick_answers/quick_answers_browser_client_impl.cc
@@ -22,10 +22,8 @@
 constexpr char kCloudTranslationScope[] =
     "https://www.googleapis.com/auth/cloud-translation";
 
-constexpr base::TimeDelta kMinTokenRefreshDelay =
-    base::TimeDelta::FromMilliseconds(1000);
-constexpr base::TimeDelta kMaxTokenRefreshDelay =
-    base::TimeDelta::FromMilliseconds(60 * 1000);
+constexpr base::TimeDelta kMinTokenRefreshDelay = base::Milliseconds(1000);
+constexpr base::TimeDelta kMaxTokenRefreshDelay = base::Milliseconds(60 * 1000);
 
 }  // namespace
 
diff --git a/chrome/browser/ui/ash/quick_answers/quick_answers_browser_client_impl.h b/chrome/browser/ui/ash/quick_answers/quick_answers_browser_client_impl.h
index 04823a9..fa1dbff 100644
--- a/chrome/browser/ui/ash/quick_answers/quick_answers_browser_client_impl.h
+++ b/chrome/browser/ui/ash/quick_answers/quick_answers_browser_client_impl.h
@@ -52,7 +52,7 @@
   base::Time expiration_time_;
 
   // The buffer time to use the access token.
-  base::TimeDelta token_usage_time_buffer_ = base::TimeDelta::FromMinutes(1);
+  base::TimeDelta token_usage_time_buffer_ = base::Minutes(1);
 
   base::OneShotTimer token_refresh_timer_;
   int token_refresh_error_backoff_factor_ = 1;
diff --git a/chrome/browser/ui/ash/security_token_session_restriction_view.cc b/chrome/browser/ui/ash/security_token_session_restriction_view.cc
index c68c461c..3c6d324 100644
--- a/chrome/browser/ui/ash/security_token_session_restriction_view.cc
+++ b/chrome/browser/ui/ash/security_token_session_restriction_view.cc
@@ -29,10 +29,8 @@
 
 namespace {
 
-constexpr base::TimeDelta kCountdownUpdateInterval =
-    base::TimeDelta::FromMilliseconds(1000);
-constexpr base::TimeDelta kLastUpdateTime =
-    base::TimeDelta::FromMilliseconds(1000);
+constexpr base::TimeDelta kCountdownUpdateInterval = base::Milliseconds(1000);
+constexpr base::TimeDelta kLastUpdateTime = base::Milliseconds(1000);
 
 gfx::ImageSkia GetImage() {
   return gfx::CreateVectorIcon(chromeos::kEnterpriseIcon, 20, SK_ColorDKGRAY);
diff --git a/chrome/browser/ui/ash/session_controller_client_impl.cc b/chrome/browser/ui/ash/session_controller_client_impl.cc
index 409cd5f..d15fae2 100644
--- a/chrome/browser/ui/ash/session_controller_client_impl.cc
+++ b/chrome/browser/ui/ash/session_controller_client_impl.cc
@@ -614,7 +614,7 @@
   const PrefService* local_state = local_state_registrar_->prefs();
   base::TimeDelta session_length_limit;
   if (local_state->HasPrefPath(prefs::kSessionLengthLimit)) {
-    session_length_limit = base::TimeDelta::FromMilliseconds(
+    session_length_limit = base::Milliseconds(
         base::clamp(local_state->GetInteger(prefs::kSessionLengthLimit),
                     kSessionLengthLimitMinMs, kSessionLengthLimitMaxMs));
   }
diff --git a/chrome/browser/ui/ash/session_controller_client_impl_unittest.cc b/chrome/browser/ui/ash/session_controller_client_impl_unittest.cc
index ca986654..437c01d 100644
--- a/chrome/browser/ui/ash/session_controller_client_impl_unittest.cc
+++ b/chrome/browser/ui/ash/session_controller_client_impl_unittest.cc
@@ -549,7 +549,7 @@
   EXPECT_TRUE(session_controller.last_session_start_time().is_null());
 
   // Setting a session length limit in local state sends it to ash.
-  const base::TimeDelta length_limit = base::TimeDelta::FromHours(1);
+  const base::TimeDelta length_limit = base::Hours(1);
   const base::Time start_time = base::Time::Now();
   PrefService* local_state = TestingBrowserProcess::GetGlobal()->local_state();
   local_state->SetInteger(prefs::kSessionLengthLimit,
diff --git a/chrome/browser/ui/ash/sharesheet/sharesheet_bubble_view.cc b/chrome/browser/ui/ash/sharesheet/sharesheet_bubble_view.cc
index 73859f7..6dc52ab 100644
--- a/chrome/browser/ui/ash/sharesheet/sharesheet_bubble_view.cc
+++ b/chrome/browser/ui/ash/sharesheet/sharesheet_bubble_view.cc
@@ -90,9 +90,9 @@
 
 constexpr int kShortSpacing = 20;
 
-constexpr auto kAnimateDelay = base::TimeDelta::FromMilliseconds(100);
-constexpr auto kQuickAnimateTime = base::TimeDelta::FromMilliseconds(100);
-constexpr auto kSlowAnimateTime = base::TimeDelta::FromMilliseconds(200);
+constexpr auto kAnimateDelay = base::Milliseconds(100);
+constexpr auto kQuickAnimateTime = base::Milliseconds(100);
+constexpr auto kSlowAnimateTime = base::Milliseconds(200);
 
 // Resize Percentage.
 constexpr int kStretchy = 1.0;
@@ -678,8 +678,7 @@
 
 void SharesheetBubbleView::ShowWidgetWithAnimateFadeIn() {
   constexpr float kSharesheetScaleUpFactor = 0.8f;
-  constexpr auto kSharesheetScaleUpTime =
-      base::TimeDelta::FromMilliseconds(150);
+  constexpr auto kSharesheetScaleUpTime = base::Milliseconds(150);
 
   views::Widget* widget = View::GetWidget();
   ui::Layer* layer = widget->GetLayer();
@@ -704,8 +703,7 @@
 
 void SharesheetBubbleView::CloseWidgetWithAnimateFadeOut(
     views::Widget::ClosedReason closed_reason) {
-  constexpr auto kSharesheetOpacityFadeOutTime =
-      base::TimeDelta::FromMilliseconds(80);
+  constexpr auto kSharesheetOpacityFadeOutTime = base::Milliseconds(80);
 
   is_bubble_closing_ = true;
   ui::Layer* layer = View::GetWidget()->GetLayer();
diff --git a/chrome/browser/ui/ash/shelf/app_service/app_service_app_window_arc_tracker.cc b/chrome/browser/ui/ash/shelf/app_service/app_service_app_window_arc_tracker.cc
index d45f76ea..f4a18a0e 100644
--- a/chrome/browser/ui/ash/shelf/app_service/app_service_app_window_arc_tracker.cc
+++ b/chrome/browser/ui/ash/shelf/app_service/app_service_app_window_arc_tracker.cc
@@ -563,9 +563,9 @@
     if (sscanf(param.c_str(), arc::kRequestStartTimeParamTemplate,
                &start_request_ms) != 1)
       continue;
-    const base::TimeDelta launch_time =
-        base::TimeTicks::Now() - base::TimeTicks() -
-        base::TimeDelta::FromMilliseconds(start_request_ms);
+    const base::TimeDelta launch_time = base::TimeTicks::Now() -
+                                        base::TimeTicks() -
+                                        base::Milliseconds(start_request_ms);
     DCHECK_GE(launch_time, base::TimeDelta());
     arc::UpdatePlayStoreLaunchTime(launch_time);
   }
diff --git a/chrome/browser/ui/ash/shelf/app_service/app_service_app_window_crostini_tracker.cc b/chrome/browser/ui/ash/shelf/app_service/app_service_app_window_crostini_tracker.cc
index 1d7250b..1c11d06 100644
--- a/chrome/browser/ui/ash/shelf/app_service/app_service_app_window_crostini_tracker.cc
+++ b/chrome/browser/ui/ash/shelf/app_service/app_service_app_window_crostini_tracker.cc
@@ -43,8 +43,7 @@
 
 // Time allowed for apps to self-activate after launch, see
 // go/crostini-self-activate for details.
-constexpr base::TimeDelta kSelfActivationTimeout =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kSelfActivationTimeout = base::Seconds(5);
 
 void MoveWindowFromOldDisplayToNewDisplay(aura::Window* window,
                                           display::Display& old_display,
diff --git a/chrome/browser/ui/ash/shelf/app_shortcut_shelf_item_controller.cc b/chrome/browser/ui/ash/shelf/app_shortcut_shelf_item_controller.cc
index d04086c..78a65a9f 100644
--- a/chrome/browser/ui/ash/shelf/app_shortcut_shelf_item_controller.cc
+++ b/chrome/browser/ui/ash/shelf/app_shortcut_shelf_item_controller.cc
@@ -542,8 +542,7 @@
 
 bool AppShortcutShelfItemController::AllowNextLaunchAttempt() {
   if (last_launch_attempt_.is_null() ||
-      last_launch_attempt_ +
-              base::TimeDelta::FromMilliseconds(kClickSuppressionInMS) <
+      last_launch_attempt_ + base::Milliseconds(kClickSuppressionInMS) <
           base::Time::Now()) {
     last_launch_attempt_ = base::Time::Now();
     return true;
diff --git a/chrome/browser/ui/ash/shelf/arc_app_shelf_browsertest.cc b/chrome/browser/ui/ash/shelf/arc_app_shelf_browsertest.cc
index 0652571..1c47af2 100644
--- a/chrome/browser/ui/ash/shelf/arc_app_shelf_browsertest.cc
+++ b/chrome/browser/ui/ash/shelf/arc_app_shelf_browsertest.cc
@@ -143,7 +143,7 @@
 
   void Wait() {
     const base::TimeDelta threshold =
-        base::TimeDelta::FromMilliseconds(kAppAnimatedThresholdMs);
+        base::Milliseconds(kAppAnimatedThresholdMs);
     ShelfSpinnerController* controller =
         ChromeShelfController::instance()->GetShelfSpinnerController();
     while (controller->GetActiveTime(app_id_) < threshold) {
diff --git a/chrome/browser/ui/ash/shelf/arc_app_window.cc b/chrome/browser/ui/ash/shelf/arc_app_window.cc
index 0360eb56..005aac79 100644
--- a/chrome/browser/ui/ash/shelf/arc_app_window.cc
+++ b/chrome/browser/ui/ash/shelf/arc_app_window.cc
@@ -23,8 +23,7 @@
 #include "ui/views/widget/widget.h"
 
 namespace {
-constexpr base::TimeDelta kSetDefaultIconDelayMs =
-    base::TimeDelta::FromMilliseconds(1000);
+constexpr base::TimeDelta kSetDefaultIconDelayMs = base::Milliseconds(1000);
 
 constexpr int kArcAppWindowIconSize = extension_misc::EXTENSION_ICON_MEDIUM;
 }  // namespace
diff --git a/chrome/browser/ui/ash/shelf/chrome_shelf_controller_browsertest.cc b/chrome/browser/ui/ash/shelf/chrome_shelf_controller_browsertest.cc
index 72c28d6..4587a1b 100644
--- a/chrome/browser/ui/ash/shelf/chrome_shelf_controller_browsertest.cc
+++ b/chrome/browser/ui/ash/shelf/chrome_shelf_controller_browsertest.cc
@@ -205,8 +205,8 @@
   views::WidgetAnimationWaiter waiter(shelf_view->GetWidget());
 
   ui::test::EventGenerator event_generator(controller->GetRootWindow());
-  event_generator.GestureScrollSequence(
-      start_point, end_point, base::TimeDelta::FromMilliseconds(500), 4);
+  event_generator.GestureScrollSequence(start_point, end_point,
+                                        base::Milliseconds(500), 4);
 
   // Wait until hotseat bounds animation completes.
   waiter.WaitForAnimation();
@@ -2663,7 +2663,7 @@
         ui::PointerDetails(ui::EventPointerType::kTouch, 0));
     generator_ptr->Dispatch(&touch_press);
 
-    clock_ptr->Advance(base::TimeDelta::FromSeconds(1));
+    clock_ptr->Advance(base::Seconds(1));
 
     ui::TouchEvent touch_move(
         ui::ET_TOUCH_MOVED, home_button_center, base::TimeTicks::Now(),
diff --git a/chrome/browser/ui/ash/shelf/shelf_spinner_controller.cc b/chrome/browser/ui/ash/shelf/shelf_spinner_controller.cc
index 8839bd1..ef35459 100644
--- a/chrome/browser/ui/ash/shelf/shelf_spinner_controller.cc
+++ b/chrome/browser/ui/ash/shelf/shelf_spinner_controller.cc
@@ -27,12 +27,9 @@
 constexpr int kUpdateIconIntervalMs = 40;  // 40ms for 25 frames per second.
 
 // Controls the spinner animation. See crbug.com/922977 for details.
-constexpr base::TimeDelta kFadeInDuration =
-    base::TimeDelta::FromMilliseconds(200);
-constexpr base::TimeDelta kFadeOutDuration =
-    base::TimeDelta::FromMilliseconds(200);
-constexpr base::TimeDelta kMinimumShowDuration =
-    base::TimeDelta::FromMilliseconds(200);
+constexpr base::TimeDelta kFadeInDuration = base::Milliseconds(200);
+constexpr base::TimeDelta kFadeOutDuration = base::Milliseconds(200);
+constexpr base::TimeDelta kMinimumShowDuration = base::Milliseconds(200);
 
 constexpr int kSpinningGapPercent = 25;
 constexpr color_utils::HSL kInactiveHslShift = {-1, 0, 0.25};
@@ -334,7 +331,7 @@
       FROM_HERE,
       base::BindOnce(&ShelfSpinnerController::UpdateApps,
                      weak_ptr_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(kUpdateIconIntervalMs));
+      base::Milliseconds(kUpdateIconIntervalMs));
 }
 
 void ShelfSpinnerController::AddSpinnerToShelf(
diff --git a/chrome/browser/ui/ash/tab_scrubber.cc b/chrome/browser/ui/ash/tab_scrubber.cc
index 580bfab5..c27335f 100644
--- a/chrome/browser/ui/ash/tab_scrubber.cc
+++ b/chrome/browser/ui/ash/tab_scrubber.cc
@@ -263,8 +263,8 @@
 void TabScrubber::ScheduleFinishScrubIfNeeded() {
   // Tests use a really long delay to ensure RunLoops don't unnecessarily
   // trigger the timer running.
-  const base::TimeDelta delay = base::TimeDelta::FromMilliseconds(
-      use_default_activation_delay_ ? 200 : 20000);
+  const base::TimeDelta delay =
+      base::Milliseconds(use_default_activation_delay_ ? 200 : 20000);
   activate_timer_.Start(FROM_HERE, delay,
                         base::BindRepeating(&TabScrubber::FinishScrub,
                                             base::Unretained(this), true));
diff --git a/chrome/browser/ui/ash/tab_scrubber_browsertest.cc b/chrome/browser/ui/ash/tab_scrubber_browsertest.cc
index 7c2bdfc..e69dfa0 100644
--- a/chrome/browser/ui/ash/tab_scrubber_browsertest.cc
+++ b/chrome/browser/ui/ash/tab_scrubber_browsertest.cc
@@ -296,7 +296,7 @@
     }
 
     void GenerateScroll(int x_offset) {
-      time_for_next_event_ += base::TimeDelta::FromMilliseconds(100);
+      time_for_next_event_ += base::Milliseconds(100);
       ui::ScrollEvent scroll(ui::ET_SCROLL, gfx::Point(), time_for_next_event_,
                              0, x_offset, 0, x_offset, 0,
                              kScrubbingGestureFingerCount);
diff --git a/chrome/browser/ui/autofill/payments/card_unmask_prompt_view_browsertest.cc b/chrome/browser/ui/autofill/payments/card_unmask_prompt_view_browsertest.cc
index b23b7536..ed56c4e2 100644
--- a/chrome/browser/ui/autofill/payments/card_unmask_prompt_view_browsertest.cc
+++ b/chrome/browser/ui/autofill/payments/card_unmask_prompt_view_browsertest.cc
@@ -106,7 +106,7 @@
   base::TimeDelta GetSuccessMessageDuration() const override {
     // Change this to ~4000 if you're in --test-launcher-interactive mode and
     // would like to see the progress/success overlay.
-    return base::TimeDelta::FromMilliseconds(10);
+    return base::Milliseconds(10);
   }
 
   AutofillClient::PaymentsRpcResult GetVerificationResult() const override {
diff --git a/chrome/browser/ui/autofill/payments/local_card_migration_bubble_controller_impl_unittest.cc b/chrome/browser/ui/autofill/payments/local_card_migration_bubble_controller_impl_unittest.cc
index 0083f70..edb9a39 100644
--- a/chrome/browser/ui/autofill/payments/local_card_migration_bubble_controller_impl_unittest.cc
+++ b/chrome/browser/ui/autofill/payments/local_card_migration_bubble_controller_impl_unittest.cc
@@ -147,7 +147,7 @@
        StickyBubble_ShouldNotDismissUponNavigation) {
   ShowBubble();
   base::HistogramTester histogram_tester;
-  test_clock_.Advance(base::TimeDelta::FromSeconds(10));
+  test_clock_.Advance(base::Seconds(10));
   controller()->SimulateNavigation();
 
   histogram_tester.ExpectTotalCount(
diff --git a/chrome/browser/ui/autofill/payments/payments_ui_constants.h b/chrome/browser/ui/autofill/payments/payments_ui_constants.h
index 318396d2..eb26dbe 100644
--- a/chrome/browser/ui/autofill/payments/payments_ui_constants.h
+++ b/chrome/browser/ui/autofill/payments/payments_ui_constants.h
@@ -16,8 +16,7 @@
 // The time span a card bubble should be visible even if the document
 // navigates away meanwhile. This is to ensure that the user can see
 // the bubble.
-constexpr base::TimeDelta kCardBubbleSurviveNavigationTime =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kCardBubbleSurviveNavigationTime = base::Seconds(5);
 
 }  // namespace autofill
 
diff --git a/chrome/browser/ui/autofill/payments/virtual_card_manual_fallback_bubble_controller_impl.cc b/chrome/browser/ui/autofill/payments/virtual_card_manual_fallback_bubble_controller_impl.cc
index d9717dd2e..924dab2 100644
--- a/chrome/browser/ui/autofill/payments/virtual_card_manual_fallback_bubble_controller_impl.cc
+++ b/chrome/browser/ui/autofill/payments/virtual_card_manual_fallback_bubble_controller_impl.cc
@@ -18,8 +18,7 @@
 namespace autofill {
 
 // The delay between card being fetched and manual fallback bubble being shown.
-constexpr base::TimeDelta kManualFallbackBubbleDelay =
-    base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kManualFallbackBubbleDelay = base::Seconds(1);
 
 // static
 VirtualCardManualFallbackBubbleController*
diff --git a/chrome/browser/ui/blocked_content/popup_opener_tab_helper_unittest.cc b/chrome/browser/ui/blocked_content/popup_opener_tab_helper_unittest.cc
index e6eb2ad..7d9e5d4 100644
--- a/chrome/browser/ui/blocked_content/popup_opener_tab_helper_unittest.cc
+++ b/chrome/browser/ui/blocked_content/popup_opener_tab_helper_unittest.cc
@@ -82,7 +82,7 @@
 
     // The tick clock needs to be advanced manually so it isn't set to null,
     // which the code uses to determine if it is set yet.
-    raw_clock_.Advance(base::TimeDelta::FromMilliseconds(1));
+    raw_clock_.Advance(base::Milliseconds(1));
 
     EXPECT_EQ(web_contents()->GetVisibility(), content::Visibility::VISIBLE);
   }
@@ -132,38 +132,37 @@
 
 TEST_F(PopupOpenerTabHelperTest, LogVisibleTime) {
   NavigateAndCommitWithoutGesture(GURL("https://first.test/"));
-  raw_clock()->Advance(base::TimeDelta::FromMinutes(1));
+  raw_clock()->Advance(base::Minutes(1));
 
   web_contents()->WasHidden();
 
   NavigateAndCommitWithoutGesture(GURL("https://example.test/"));
 
-  raw_clock()->Advance(base::TimeDelta::FromMinutes(1));
+  raw_clock()->Advance(base::Minutes(1));
   web_contents()->WasShown();
-  raw_clock()->Advance(base::TimeDelta::FromSeconds(1));
+  raw_clock()->Advance(base::Seconds(1));
 
   DeleteContents();
 
   histogram_tester()->ExpectUniqueSample(
-      "Tab.VisibleTime", base::TimeDelta::FromSeconds(60 + 1).InMilliseconds(),
-      1);
+      "Tab.VisibleTime", base::Seconds(60 + 1).InMilliseconds(), 1);
 }
 
 TEST_F(PopupOpenerTabHelperTest, SimpleTabUnder_LogsMetrics) {
   NavigateAndCommitWithoutGesture(GURL("https://first.test/"));
 
   // Spend 1s on the page before doing anything.
-  raw_clock()->Advance(base::TimeDelta::FromSeconds(1));
+  raw_clock()->Advance(base::Seconds(1));
 
   // Popup and then navigate 50ms after.
   SimulatePopup();
-  raw_clock()->Advance(base::TimeDelta::FromMilliseconds(50));
+  raw_clock()->Advance(base::Milliseconds(50));
   NavigateAndCommitWithoutGesture(GURL("https://example.test/"));
 
   // Spent 100 ms on the opener before closing it.
-  raw_clock()->Advance(base::TimeDelta::FromMinutes(1));
+  raw_clock()->Advance(base::Minutes(1));
   web_contents()->WasShown();
-  raw_clock()->Advance(base::TimeDelta::FromMilliseconds(100));
+  raw_clock()->Advance(base::Milliseconds(100));
   DeleteContents();
 
   histogram_tester()->ExpectUniqueSample(kTabUnderVisibleTimeBefore, 1050, 1);
@@ -176,7 +175,7 @@
 
   // Popup and then navigate 50ms after.
   SimulatePopup();
-  raw_clock()->Advance(base::TimeDelta::FromMilliseconds(50));
+  raw_clock()->Advance(base::Milliseconds(50));
 
   std::unique_ptr<content::NavigationSimulator> simulator =
       content::NavigationSimulator::CreateRendererInitiated(
@@ -188,15 +187,15 @@
   // currently, this time does not get accounted for in the visibility metrics,
   // though we may want to include it in the future.
   web_contents()->WasShown();
-  raw_clock()->Advance(base::TimeDelta::FromMilliseconds(10));
+  raw_clock()->Advance(base::Milliseconds(10));
 
   simulator->Redirect(GURL("https://example.test/"));
-  raw_clock()->Advance(base::TimeDelta::FromMilliseconds(15));
+  raw_clock()->Advance(base::Milliseconds(15));
 
   simulator->Commit();
 
   // Spent 100 additional ms on the opener before closing it.
-  raw_clock()->Advance(base::TimeDelta::FromMilliseconds(100));
+  raw_clock()->Advance(base::Milliseconds(100));
   DeleteContents();
 
   histogram_tester()->ExpectUniqueSample(kTabUnderVisibleTime, 115, 1);
@@ -207,7 +206,7 @@
   SimulatePopup();
   web_contents()->WasHidden();
   NavigateAndCommitWithoutGesture(GURL("https://first.test/"));
-  raw_clock()->Advance(base::TimeDelta::FromMinutes(1));
+  raw_clock()->Advance(base::Minutes(1));
   DeleteContents();
   histogram_tester()->ExpectTotalCount(kTabUnderVisibleTime, 0);
 }
@@ -217,7 +216,7 @@
   SimulatePopup();
   web_contents()->WasShown();
   NavigateAndCommitWithoutGesture(GURL("https://example.test/"));
-  raw_clock()->Advance(base::TimeDelta::FromMinutes(1));
+  raw_clock()->Advance(base::Minutes(1));
   DeleteContents();
   histogram_tester()->ExpectTotalCount(kTabUnderVisibleTime, 0);
 }
@@ -236,7 +235,7 @@
   simulator->SetHasUserGesture(false);
   simulator->Fail(net::ERR_ABORTED);
 
-  raw_clock()->Advance(base::TimeDelta::FromMinutes(1));
+  raw_clock()->Advance(base::Minutes(1));
   DeleteContents();
   histogram_tester()->ExpectTotalCount(kTabUnderVisibleTime, 1);
 }
@@ -252,7 +251,7 @@
   simulator->SetHasUserGesture(false);
   simulator->Fail(net::ERR_CONNECTION_RESET);
 
-  raw_clock()->Advance(base::TimeDelta::FromMinutes(1));
+  raw_clock()->Advance(base::Minutes(1));
   DeleteContents();
   histogram_tester()->ExpectTotalCount(kTabUnderVisibleTime, 1);
 }
@@ -269,7 +268,7 @@
   simulator->Start();
   simulator->Fail(net::ERR_ABORTED);
 
-  raw_clock()->Advance(base::TimeDelta::FromMinutes(1));
+  raw_clock()->Advance(base::Minutes(1));
   DeleteContents();
   histogram_tester()->ExpectTotalCount(kTabUnderVisibleTime, 0);
 }
@@ -279,7 +278,7 @@
   SimulatePopup();
   NavigateAndCommitWithoutGesture(GURL("https://first.test/path"));
 
-  raw_clock()->Advance(base::TimeDelta::FromMinutes(1));
+  raw_clock()->Advance(base::Minutes(1));
   DeleteContents();
   histogram_tester()->ExpectTotalCount(kTabUnderVisibleTime, 0);
 }
@@ -294,7 +293,7 @@
   simulator->SetHasUserGesture(true);
   simulator->Commit();
 
-  raw_clock()->Advance(base::TimeDelta::FromMinutes(1));
+  raw_clock()->Advance(base::Minutes(1));
   DeleteContents();
   histogram_tester()->ExpectTotalCount(kTabUnderVisibleTime, 0);
 }
@@ -313,7 +312,7 @@
   NavigateAndCommitWithoutGesture(GURL("https://first.test/"));
 
   // Start navigating, then popup, then commit.
-  raw_clock()->Advance(base::TimeDelta::FromMilliseconds(50));
+  raw_clock()->Advance(base::Milliseconds(50));
   std::unique_ptr<content::NavigationSimulator> simulator =
       content::NavigationSimulator::CreateRendererInitiated(
           GURL("https://example.test/"), main_rfh());
@@ -323,9 +322,9 @@
   simulator->Commit();
 
   // Spent 100 ms on the opener before closing it.
-  raw_clock()->Advance(base::TimeDelta::FromMinutes(1));
+  raw_clock()->Advance(base::Minutes(1));
   web_contents()->WasShown();
-  raw_clock()->Advance(base::TimeDelta::FromMilliseconds(100));
+  raw_clock()->Advance(base::Milliseconds(100));
   DeleteContents();
 
   // No histograms are logged because:
@@ -524,7 +523,7 @@
 
   // Delay a long time before navigating the opener. Since there is no threshold
   // we always classify as a tab-under.
-  raw_clock()->Advance(base::TimeDelta::FromDays(10));
+  raw_clock()->Advance(base::Days(10));
 
   const GURL blocked_url("https://example.test/");
   EXPECT_FALSE(NavigateAndCommitWithoutGesture(blocked_url));
@@ -626,7 +625,7 @@
   const GURL first_url("https://first.test/");
   EXPECT_TRUE(NavigateAndCommitWithoutGesture(first_url));
   SimulatePopup();
-  raw_clock()->Advance(base::TimeDelta::FromMilliseconds(15));
+  raw_clock()->Advance(base::Milliseconds(15));
   const GURL blocked_url("https://example.test/");
   EXPECT_FALSE(NavigateAndCommitWithoutGesture(blocked_url));
 
diff --git a/chrome/browser/ui/bookmarks/bookmark_browsertest.cc b/chrome/browser/ui/bookmarks/bookmark_browsertest.cc
index 4eefd6e..1896977 100644
--- a/chrome/browser/ui/bookmarks/bookmark_browsertest.cc
+++ b/chrome/browser/ui/bookmarks/bookmark_browsertest.cc
@@ -109,7 +109,7 @@
     {
       base::RunLoop loop;
       base::RepeatingTimer timer;
-      timer.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(15),
+      timer.Start(FROM_HERE, base::Milliseconds(15),
                   base::BindRepeating(&CheckAnimation, browser(), &loop));
       loop.Run();
     }
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
index c8d3c044..ac5ea99 100644
--- a/chrome/browser/ui/browser.cc
+++ b/chrome/browser/ui/browser.cc
@@ -1693,7 +1693,7 @@
 
   std::vector<blink::mojom::WebFeature> features = {
       blink::mojom::WebFeature::kMovedOrResizedPopup};
-  if (creation_timer_.Elapsed() > base::TimeDelta::FromSeconds(2)) {
+  if (creation_timer_.Elapsed() > base::Seconds(2)) {
     // Additionally measure whether a popup was moved after creation, to
     // distinguish between popups that reposition themselves after load and
     // those which move popups continuously.
diff --git a/chrome/browser/ui/browser_focus_uitest.cc b/chrome/browser/ui/browser_focus_uitest.cc
index 3564242..d32ee8be 100644
--- a/chrome/browser/ui/browser_focus_uitest.cc
+++ b/chrome/browser/ui/browser_focus_uitest.cc
@@ -190,7 +190,7 @@
   // we can start clicking on them.
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE, base::RunLoop::QuitCurrentWhenIdleClosureDeprecated(),
-      base::TimeDelta::FromMilliseconds(kActionDelayMs));
+      base::Milliseconds(kActionDelayMs));
   content::RunMessageLoop();
 #endif  // defined(OS_POSIX)
 
diff --git a/chrome/browser/ui/cocoa/confirm_quit.h b/chrome/browser/ui/cocoa/confirm_quit.h
index 194dc3aa..a7c6af5 100644
--- a/chrome/browser/ui/cocoa/confirm_quit.h
+++ b/chrome/browser/ui/cocoa/confirm_quit.h
@@ -12,17 +12,14 @@
 namespace confirm_quit {
 
 // How long the user must hold down Cmd+Q to confirm the quit.
-constexpr base::TimeDelta kShowDuration =
-    base::TimeDelta::FromMilliseconds(1500);
+constexpr base::TimeDelta kShowDuration = base::Milliseconds(1500);
 
 // Duration of the window fade out animation.
-constexpr base::TimeDelta kWindowFadeOutDuration =
-    base::TimeDelta::FromMilliseconds(200);
+constexpr base::TimeDelta kWindowFadeOutDuration = base::Milliseconds(200);
 
 // For metrics recording only: How long the user must hold the keys to
 // differentitate kDoubleTap from kTapHold.
-constexpr base::TimeDelta kDoubleTapTimeDelta =
-    base::TimeDelta::FromMilliseconds(320);
+constexpr base::TimeDelta kDoubleTapTimeDelta = base::Milliseconds(320);
 
 // These numeric values are used in UMA logs; do not change them.  New values
 // should be added at the end, above kSampleCount.
diff --git a/chrome/browser/ui/cocoa/dock_icon.mm b/chrome/browser/ui/cocoa/dock_icon.mm
index dc15ebe6..3133da74 100644
--- a/chrome/browser/ui/cocoa/dock_icon.mm
+++ b/chrome/browser/ui/cocoa/dock_icon.mm
@@ -191,7 +191,7 @@
 - (void)updateIcon {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
   static base::TimeDelta updateFrequency =
-      base::TimeDelta::FromMilliseconds(kUpdateFrequencyMs);
+      base::Milliseconds(kUpdateFrequencyMs);
 
   base::TimeTicks now = base::TimeTicks::Now();
   base::TimeDelta timeSinceLastUpdate = now - _lastUpdate;
diff --git a/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_animation_controller.mm b/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_animation_controller.mm
index e9f34ae..fb4d28f 100644
--- a/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_animation_controller.mm
+++ b/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_animation_controller.mm
@@ -29,13 +29,13 @@
       animation_(this),
       hide_toolbar_timer_(
           FROM_HERE,
-          base::TimeDelta::FromMilliseconds(kTabStripChangesDelay),
+          base::Milliseconds(kTabStripChangesDelay),
           base::BindRepeating(&FullscreenToolbarAnimationController::
                                   AnimateToolbarOutIfPossible,
                               base::Unretained(this))),
       animation_start_value_(0),
       should_hide_toolbar_after_delay_(false) {
-  animation_.SetSlideDuration(base::TimeDelta::FromMilliseconds(200));
+  animation_.SetSlideDuration(base::Milliseconds(200));
   animation_.SetTweenType(gfx::Tween::EASE_OUT);
 }
 
diff --git a/chrome/browser/ui/cocoa/keystone_infobar_delegate.mm b/chrome/browser/ui/cocoa/keystone_infobar_delegate.mm
index cd4a16b4..b9c3871 100644
--- a/chrome/browser/ui/cocoa/keystone_infobar_delegate.mm
+++ b/chrome/browser/ui/cocoa/keystone_infobar_delegate.mm
@@ -52,8 +52,7 @@
       prefs_(prefs),
       can_expire_(false),
       weak_ptr_factory_(this) {
-  const base::TimeDelta kCanExpireOnNavigationAfterDelay =
-      base::TimeDelta::FromSeconds(8);
+  const base::TimeDelta kCanExpireOnNavigationAfterDelay = base::Seconds(8);
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&KeystonePromotionInfoBarDelegate::SetCanExpire,
diff --git a/chrome/browser/ui/exclusive_access/exclusive_access_bubble.cc b/chrome/browser/ui/exclusive_access/exclusive_access_bubble.cc
index 7c03aee..4492fdb 100644
--- a/chrome/browser/ui/exclusive_access/exclusive_access_bubble.cc
+++ b/chrome/browser/ui/exclusive_access/exclusive_access_bubble.cc
@@ -38,22 +38,22 @@
       bubble_type_(bubble_type),
       hide_timeout_(
           FROM_HERE,
-          base::TimeDelta::FromMilliseconds(kInitialDelayMs),
+          base::Milliseconds(kInitialDelayMs),
           base::BindRepeating(&ExclusiveAccessBubble::CheckMousePosition,
                               base::Unretained(this))),
       idle_timeout_(
           FROM_HERE,
-          base::TimeDelta::FromMilliseconds(kIdleTimeMs),
+          base::Milliseconds(kIdleTimeMs),
           base::BindRepeating(&ExclusiveAccessBubble::CheckMousePosition,
                               base::Unretained(this))),
       suppress_notify_timeout_(
           FROM_HERE,
-          base::TimeDelta::FromMilliseconds(kSnoozeNotificationsTimeMs),
+          base::Milliseconds(kSnoozeNotificationsTimeMs),
           base::BindRepeating(&ExclusiveAccessBubble::CheckMousePosition,
                               base::Unretained(this))),
       mouse_position_checker_(
           FROM_HERE,
-          base::TimeDelta::FromMilliseconds(1000 / kPositionCheckHz),
+          base::Milliseconds(1000 / kPositionCheckHz),
           base::BindRepeating(&ExclusiveAccessBubble::CheckMousePosition,
                               base::Unretained(this))) {
   DCHECK_NE(EXCLUSIVE_ACCESS_BUBBLE_TYPE_NONE, bubble_type_);
diff --git a/chrome/browser/ui/exclusive_access/fullscreen_controller_browsertest.cc b/chrome/browser/ui/exclusive_access/fullscreen_controller_browsertest.cc
index 057f619..0faa3f5e 100644
--- a/chrome/browser/ui/exclusive_access/fullscreen_controller_browsertest.cc
+++ b/chrome/browser/ui/exclusive_access/fullscreen_controller_browsertest.cc
@@ -189,8 +189,7 @@
 
   ASSERT_TRUE(RequestKeyboardLock(/*esc_key_locked=*/true));
   // Shorter than |ExclusiveAccessBubble::kInitialDelayMs|.
-  task_runner->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(InitialBubbleDelayMs() / 2));
+  task_runner->FastForwardBy(base::Milliseconds(InitialBubbleDelayMs() / 2));
   CancelKeyboardLock();
   ASSERT_TRUE(RequestKeyboardLock(/*esc_key_locked=*/true));
   ASSERT_TRUE(GetExclusiveAccessManager()
@@ -208,8 +207,7 @@
 
   ASSERT_TRUE(RequestKeyboardLock(/*esc_key_locked=*/true));
   // Longer than |ExclusiveAccessBubble::kInitialDelayMs|.
-  task_runner->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(InitialBubbleDelayMs() + 20));
+  task_runner->FastForwardBy(base::Milliseconds(InitialBubbleDelayMs() + 20));
   CancelKeyboardLock();
   ASSERT_TRUE(RequestKeyboardLock(/*esc_key_locked=*/true));
   ASSERT_TRUE(GetExclusiveAccessManager()
@@ -231,7 +229,7 @@
       [](bool* triggered) { *triggered = true; }, &esc_threshold_reached));
 
   // Set the window to a known value for testing.
-  SetEscRepeatWindowLength(base::TimeDelta::FromSeconds(1));
+  SetEscRepeatWindowLength(base::Seconds(1));
 
   ASSERT_TRUE(RequestKeyboardLock(/*esc_key_locked=*/true));
   ASSERT_TRUE(GetExclusiveAccessManager()
@@ -255,15 +253,15 @@
   GetExclusiveAccessManager()->HandleUserKeyEvent(key_up_event);
   ASSERT_FALSE(esc_threshold_reached);
 
-  clock.Advance(base::TimeDelta::FromMilliseconds(100));
+  clock.Advance(base::Milliseconds(100));
   GetExclusiveAccessManager()->HandleUserKeyEvent(key_down_event);
-  clock.Advance(base::TimeDelta::FromMilliseconds(100));
+  clock.Advance(base::Milliseconds(100));
   GetExclusiveAccessManager()->HandleUserKeyEvent(key_up_event);
   ASSERT_FALSE(esc_threshold_reached);
 
-  clock.Advance(base::TimeDelta::FromMilliseconds(100));
+  clock.Advance(base::Milliseconds(100));
   GetExclusiveAccessManager()->HandleUserKeyEvent(key_down_event);
-  clock.Advance(base::TimeDelta::FromMilliseconds(100));
+  clock.Advance(base::Milliseconds(100));
   GetExclusiveAccessManager()->HandleUserKeyEvent(key_up_event);
   ASSERT_TRUE(esc_threshold_reached);
 }
@@ -280,7 +278,7 @@
       [](bool* triggered) { *triggered = true; }, &esc_threshold_reached));
 
   // Set the window to a known value for testing.
-  SetEscRepeatWindowLength(base::TimeDelta::FromSeconds(1));
+  SetEscRepeatWindowLength(base::Seconds(1));
 
   ASSERT_TRUE(RequestKeyboardLock(/*esc_key_locked=*/true));
   ASSERT_TRUE(GetExclusiveAccessManager()
@@ -304,15 +302,15 @@
   GetExclusiveAccessManager()->HandleUserKeyEvent(key_up_event);
   ASSERT_FALSE(esc_threshold_reached);
 
-  clock.Advance(base::TimeDelta::FromMilliseconds(400));
+  clock.Advance(base::Milliseconds(400));
   GetExclusiveAccessManager()->HandleUserKeyEvent(key_down_event);
-  clock.Advance(base::TimeDelta::FromMilliseconds(200));
+  clock.Advance(base::Milliseconds(200));
   GetExclusiveAccessManager()->HandleUserKeyEvent(key_up_event);
   ASSERT_FALSE(esc_threshold_reached);
 
-  clock.Advance(base::TimeDelta::FromMilliseconds(400));
+  clock.Advance(base::Milliseconds(400));
   GetExclusiveAccessManager()->HandleUserKeyEvent(key_down_event);
-  clock.Advance(base::TimeDelta::FromMilliseconds(200));
+  clock.Advance(base::Milliseconds(200));
   GetExclusiveAccessManager()->HandleUserKeyEvent(key_up_event);
   ASSERT_FALSE(esc_threshold_reached);
 }
diff --git a/chrome/browser/ui/exclusive_access/mouse_lock_controller.cc b/chrome/browser/ui/exclusive_access/mouse_lock_controller.cc
index ace9c11..64009d6 100644
--- a/chrome/browser/ui/exclusive_access/mouse_lock_controller.cc
+++ b/chrome/browser/ui/exclusive_access/mouse_lock_controller.cc
@@ -29,7 +29,7 @@
 // The amount of time to disallow repeated pointer lock calls after the user
 // successfully escapes from one lock request.
 constexpr base::TimeDelta kEffectiveUserEscapeDuration =
-    base::TimeDelta::FromMilliseconds(1250);
+    base::Milliseconds(1250);
 
 }  // namespace
 
diff --git a/chrome/browser/ui/exclusive_access/mouse_lock_controller_browsertest.cc b/chrome/browser/ui/exclusive_access/mouse_lock_controller_browsertest.cc
index dbf45d3..b33aa60 100644
--- a/chrome/browser/ui/exclusive_access/mouse_lock_controller_browsertest.cc
+++ b/chrome/browser/ui/exclusive_access/mouse_lock_controller_browsertest.cc
@@ -104,8 +104,7 @@
 
   EXPECT_TRUE(task_runner->HasPendingTask());
   // Must fast forward at least |ExclusiveAccessBubble::kInitialDelayMs|.
-  task_runner->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(InitialBubbleDelayMs() + 20));
+  task_runner->FastForwardBy(base::Milliseconds(InitialBubbleDelayMs() + 20));
   EXPECT_EQ(1ul, mouse_lock_bubble_hide_reason_recorder_.size());
   EXPECT_EQ(ExclusiveAccessBubbleHideReason::kTimeout,
             mouse_lock_bubble_hide_reason_recorder_[0]);
@@ -118,8 +117,7 @@
 
   RequestToLockMouse(true, false);
   // Shorter than |ExclusiveAccessBubble::kInitialDelayMs|.
-  task_runner->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(InitialBubbleDelayMs() / 2));
+  task_runner->FastForwardBy(base::Milliseconds(InitialBubbleDelayMs() / 2));
   LostMouseLock();
   RequestToLockMouse(true, true);
 
@@ -137,8 +135,7 @@
 
   RequestToLockMouse(true, false);
   // Longer than |ExclusiveAccessBubble::kInitialDelayMs|.
-  task_runner->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(InitialBubbleDelayMs() + 20));
+  task_runner->FastForwardBy(base::Milliseconds(InitialBubbleDelayMs() + 20));
   LostMouseLock();
   RequestToLockMouse(true, true);
 
@@ -164,15 +161,13 @@
       GetExclusiveAccessManager()->mouse_lock_controller()->IsMouseLocked());
 
   // A lock request is ignored if we mimic the user-escape happened 1sec ago.
-  SetUserEscapeTimestampForTest(base::TimeTicks::Now() -
-                                base::TimeDelta::FromSeconds(1));
+  SetUserEscapeTimestampForTest(base::TimeTicks::Now() - base::Seconds(1));
   RequestToLockMouse(true, false);
   EXPECT_FALSE(
       GetExclusiveAccessManager()->mouse_lock_controller()->IsMouseLocked());
 
   // A lock request goes through if we mimic the user-escape happened 5secs ago.
-  SetUserEscapeTimestampForTest(base::TimeTicks::Now() -
-                                base::TimeDelta::FromSeconds(5));
+  SetUserEscapeTimestampForTest(base::TimeTicks::Now() - base::Seconds(5));
   RequestToLockMouse(true, false);
   EXPECT_TRUE(
       GetExclusiveAccessManager()->mouse_lock_controller()->IsMouseLocked());
diff --git a/chrome/browser/ui/global_media_controls/cast_media_notification_item.cc b/chrome/browser/ui/global_media_controls/cast_media_notification_item.cc
index 5c2effd..22f0579 100644
--- a/chrome/browser/ui/global_media_controls/cast_media_notification_item.cc
+++ b/chrome/browser/ui/global_media_controls/cast_media_notification_item.cc
@@ -186,7 +186,7 @@
         FROM_HERE,
         base::BindOnce(&CastMediaNotificationItem::RecordMetadataMetrics,
                        weak_ptr_factory_.GetWeakPtr()),
-        base::TimeDelta::FromSeconds(3));
+        base::Seconds(3));
   }
 }
 
diff --git a/chrome/browser/ui/global_media_controls/cast_media_notification_item_unittest.cc b/chrome/browser/ui/global_media_controls/cast_media_notification_item_unittest.cc
index d7541fd..70916e5 100644
--- a/chrome/browser/ui/global_media_controls/cast_media_notification_item_unittest.cc
+++ b/chrome/browser/ui/global_media_controls/cast_media_notification_item_unittest.cc
@@ -288,8 +288,8 @@
 
 TEST_F(CastMediaNotificationItemTest, MediaPositionUpdate) {
   SetView();
-  const base::TimeDelta duration = base::TimeDelta::FromSeconds(100);
-  const base::TimeDelta current_time = base::TimeDelta::FromSeconds(70);
+  const base::TimeDelta duration = base::Seconds(100);
+  const base::TimeDelta current_time = base::Seconds(70);
 
   {
     // Test that media position updated correctly with playing video.
diff --git a/chrome/browser/ui/global_media_controls/cast_media_session_controller.cc b/chrome/browser/ui/global_media_controls/cast_media_session_controller.cc
index 79d7050f..9bbecdd 100644
--- a/chrome/browser/ui/global_media_controls/cast_media_session_controller.cc
+++ b/chrome/browser/ui/global_media_controls/cast_media_session_controller.cc
@@ -13,7 +13,7 @@
 namespace {
 
 constexpr base::TimeDelta kDefaultSeekTimeSeconds =
-    base::TimeDelta::FromSeconds(media_session::mojom::kDefaultSeekTimeSeconds);
+    base::Seconds(media_session::mojom::kDefaultSeekTimeSeconds);
 
 bool IsPlaying(const media_router::mojom::MediaStatusPtr& media_status) {
   return media_status &&
@@ -125,8 +125,7 @@
   // TODO(crbug.com/1052156): If the playback rate is not 1, we must increment
   // at a different rate.
   content::GetUIThreadTaskRunner({})->PostDelayedTask(
-      FROM_HERE, increment_current_time_callback_.callback(),
-      base::TimeDelta::FromSeconds(1));
+      FROM_HERE, increment_current_time_callback_.callback(), base::Seconds(1));
 }
 
 void CastMediaSessionController::IncrementCurrentTime() {
@@ -135,6 +134,6 @@
 
   if (media_status_->current_time < media_status_->duration)
     IncrementCurrentTimeAfterOneSecond();
-  media_status_->current_time = PutWithinBounds(
-      media_status_->current_time + base::TimeDelta::FromSeconds(1));
+  media_status_->current_time =
+      PutWithinBounds(media_status_->current_time + base::Seconds(1));
 }
diff --git a/chrome/browser/ui/global_media_controls/cast_media_session_controller_unittest.cc b/chrome/browser/ui/global_media_controls/cast_media_session_controller_unittest.cc
index 7193f3b..7fe80d05 100644
--- a/chrome/browser/ui/global_media_controls/cast_media_session_controller_unittest.cc
+++ b/chrome/browser/ui/global_media_controls/cast_media_session_controller_unittest.cc
@@ -19,8 +19,7 @@
 namespace {
 
 constexpr base::TimeDelta kDefaultSeekSeconds =
-    base::TimeDelta::FromSeconds(media_session::mojom::kDefaultSeekTimeSeconds);
-
+    base::Seconds(media_session::mojom::kDefaultSeekTimeSeconds);
 }
 
 class MockMediaController : public media_router::mojom::MediaController {
@@ -44,8 +43,8 @@
         std::move(mock_controller_remote));
 
     media_status_ = media_router::mojom::MediaStatus::New();
-    media_status_->duration = base::TimeDelta::FromSeconds(100);
-    media_status_->current_time = base::TimeDelta::FromSeconds(20);
+    media_status_->duration = base::Seconds(100);
+    media_status_->current_time = base::Seconds(20);
     controller_->OnMediaStatusUpdated(media_status_.Clone());
   }
 
@@ -91,7 +90,7 @@
 }
 
 TEST_F(CastMediaSessionControllerTest, SeekBackwardOutOfRange) {
-  media_status_->current_time = base::TimeDelta::FromSeconds(2);
+  media_status_->current_time = base::Seconds(2);
   controller_->OnMediaStatusUpdated(media_status_.Clone());
 
   EXPECT_CALL(mock_controller_, Seek(base::TimeDelta()));
@@ -99,7 +98,7 @@
 }
 
 TEST_F(CastMediaSessionControllerTest, SeekBackwardAfterWaiting) {
-  const base::TimeDelta wait = base::TimeDelta::FromSeconds(3);
+  const base::TimeDelta wait = base::Seconds(3);
   task_environment_.FastForwardBy(wait);
 
   EXPECT_CALL(mock_controller_,
@@ -114,8 +113,7 @@
 }
 
 TEST_F(CastMediaSessionControllerTest, SeekForwardOutOfRange) {
-  media_status_->current_time =
-      media_status_->duration - base::TimeDelta::FromSeconds(2);
+  media_status_->current_time = media_status_->duration - base::Seconds(2);
   controller_->OnMediaStatusUpdated(media_status_.Clone());
 
   EXPECT_CALL(mock_controller_, Seek(media_status_->duration));
@@ -123,7 +121,7 @@
 }
 
 TEST_F(CastMediaSessionControllerTest, SeekForwardAfterWaiting) {
-  const base::TimeDelta wait = base::TimeDelta::FromSeconds(3);
+  const base::TimeDelta wait = base::Seconds(3);
   task_environment_.FastForwardBy(wait);
 
   EXPECT_CALL(mock_controller_,
diff --git a/chrome/browser/ui/global_media_controls/media_notification_device_monitor.cc b/chrome/browser/ui/global_media_controls/media_notification_device_monitor.cc
index 5517d18..e4533b54 100644
--- a/chrome/browser/ui/global_media_controls/media_notification_device_monitor.cc
+++ b/chrome/browser/ui/global_media_controls/media_notification_device_monitor.cc
@@ -95,7 +95,7 @@
         FROM_HERE,
         base::BindOnce(&PollingDeviceMonitorImpl::PollDeviceProvider,
                        weak_ptr_factory_.GetWeakPtr()),
-        base::TimeDelta::FromSeconds(kPollingIntervalSeconds));
+        base::Seconds(kPollingIntervalSeconds));
   }
 }
 
@@ -142,7 +142,7 @@
       FROM_HERE,
       base::BindOnce(&PollingDeviceMonitorImpl::PollDeviceProvider,
                      weak_ptr_factory_.GetWeakPtr()),
-      base::TimeDelta::FromSeconds(kPollingIntervalSeconds));
+      base::Seconds(kPollingIntervalSeconds));
 }
 
 void PollingDeviceMonitorImpl::NotifyObservers() {
diff --git a/chrome/browser/ui/global_media_controls/media_notification_device_monitor_unittest.cc b/chrome/browser/ui/global_media_controls/media_notification_device_monitor_unittest.cc
index 921cd7f..d38a8db 100644
--- a/chrome/browser/ui/global_media_controls/media_notification_device_monitor_unittest.cc
+++ b/chrome/browser/ui/global_media_controls/media_notification_device_monitor_unittest.cc
@@ -53,14 +53,14 @@
   provider.device_descriptions.emplace_back("1", "1", "1");
   EXPECT_CALL(observer, OnDevicesChanged).Times(1);
   monitor.StartMonitoring();
-  task_environment.FastForwardBy(base::TimeDelta::FromSeconds(
+  task_environment.FastForwardBy(base::Seconds(
       PollingDeviceMonitorImpl::get_polling_interval_for_testing()));
 
   // When the monitor polls a second time, the observer should not be notified
   // as the list of devices hasn't changed.
   testing::Mock::VerifyAndClearExpectations(&observer);
   EXPECT_CALL(observer, OnDevicesChanged).Times(0);
-  task_environment.FastForwardBy(base::TimeDelta::FromSeconds(
+  task_environment.FastForwardBy(base::Seconds(
       PollingDeviceMonitorImpl::get_polling_interval_for_testing()));
   testing::Mock::VerifyAndClearExpectations(&observer);
 }
diff --git a/chrome/browser/ui/global_media_controls/media_session_notification_item.cc b/chrome/browser/ui/global_media_controls/media_session_notification_item.cc
index e0e1d42..c4e80c3 100644
--- a/chrome/browser/ui/global_media_controls/media_session_notification_item.cc
+++ b/chrome/browser/ui/global_media_controls/media_session_notification_item.cc
@@ -32,8 +32,7 @@
 }
 
 // How long to wait (in milliseconds) for a new media session to begin.
-constexpr base::TimeDelta kFreezeTimerDelay =
-    base::TimeDelta::FromMilliseconds(2500);
+constexpr base::TimeDelta kFreezeTimerDelay = base::Milliseconds(2500);
 
 // The minimum size in px that the media session artwork can be to be displayed
 // in the notification.
diff --git a/chrome/browser/ui/global_media_controls/media_session_notification_item_unittest.cc b/chrome/browser/ui/global_media_controls/media_session_notification_item_unittest.cc
index 920cbb35..dcbbaee 100644
--- a/chrome/browser/ui/global_media_controls/media_session_notification_item_unittest.cc
+++ b/chrome/browser/ui/global_media_controls/media_session_notification_item_unittest.cc
@@ -72,8 +72,7 @@
   MediaSessionNotificationItem& item() { return *item_; }
 
   void AdvanceClockMilliseconds(int milliseconds) {
-    task_environment_.FastForwardBy(
-        base::TimeDelta::FromMilliseconds(milliseconds));
+    task_environment_.FastForwardBy(base::Milliseconds(milliseconds));
   }
 
  private:
diff --git a/chrome/browser/ui/global_media_controls/media_session_notification_producer.cc b/chrome/browser/ui/global_media_controls/media_session_notification_producer.cc
index ff6c868a..058ab24 100644
--- a/chrome/browser/ui/global_media_controls/media_session_notification_producer.cc
+++ b/chrome/browser/ui/global_media_controls/media_session_notification_producer.cc
@@ -70,7 +70,7 @@
   if (!base::FeatureList::IsEnabled(media::kGlobalMediaControlsAutoDismiss))
     return base::TimeDelta::Max();
 
-  return base::TimeDelta::FromMinutes(base::GetFieldTrialParamByFeatureAsInt(
+  return base::Minutes(base::GetFieldTrialParamByFeatureAsInt(
       media::kGlobalMediaControlsAutoDismiss,
       kAutoDismissTimerInMinutesParamName, kAutoDismissTimerInMinutesDefault));
 }
@@ -279,8 +279,7 @@
       base::TimeTicks::Now() - last_interaction_time_;
   base::UmaHistogramCustomTimes(
       "Media.GlobalMediaControls.InteractionDelayAfterPause",
-      time_since_last_interaction, base::TimeDelta::FromMinutes(1),
-      base::TimeDelta::FromDays(1), 100);
+      time_since_last_interaction, base::Minutes(1), base::Days(1), 100);
 }
 
 void MediaSessionNotificationProducer::Session::MarkActiveIfNecessary() {
diff --git a/chrome/browser/ui/global_media_controls/media_session_notification_producer_unittest.cc b/chrome/browser/ui/global_media_controls/media_session_notification_producer_unittest.cc
index 84478a3..31ab4841 100644
--- a/chrome/browser/ui/global_media_controls/media_session_notification_producer_unittest.cc
+++ b/chrome/browser/ui/global_media_controls/media_session_notification_producer_unittest.cc
@@ -50,8 +50,7 @@
 
  protected:
   void AdvanceClockMilliseconds(int milliseconds) {
-    task_environment_.FastForwardBy(
-        base::TimeDelta::FromMilliseconds(milliseconds));
+    task_environment_.FastForwardBy(base::Milliseconds(milliseconds));
   }
 
   void AdvanceClockMinutes(int minutes) {
@@ -484,16 +483,14 @@
   EXPECT_FALSE(HasActiveItems());
   EXPECT_TRUE(IsSessionInactive(id));
 
-  ExpectHistogramInteractionDelayAfterPause(base::TimeDelta::FromMinutes(70),
-                                            0);
+  ExpectHistogramInteractionDelayAfterPause(base::Minutes(70), 0);
 
   // Then, play the media. The notification should become active.
   SimulatePlaybackStateChanged(id, true);
 
   // We should have recorded an interaction even though the timer has
   // finished.
-  ExpectHistogramInteractionDelayAfterPause(base::TimeDelta::FromMinutes(70),
-                                            1);
+  ExpectHistogramInteractionDelayAfterPause(base::Minutes(70), 1);
   EXPECT_TRUE(HasActiveItems());
   EXPECT_FALSE(IsSessionInactive(id));
 }
@@ -513,16 +510,14 @@
   EXPECT_FALSE(HasActiveItems());
   EXPECT_TRUE(IsSessionInactive(id));
 
-  ExpectHistogramInteractionDelayAfterPause(base::TimeDelta::FromMinutes(70),
-                                            0);
+  ExpectHistogramInteractionDelayAfterPause(base::Minutes(70), 0);
 
   // Then, seek the media. The notification should become active.
   SimulateMediaSeeked(id);
 
   // We should have recorded an interaction even though the timer has
   // finished.
-  ExpectHistogramInteractionDelayAfterPause(base::TimeDelta::FromMinutes(70),
-                                            1);
+  ExpectHistogramInteractionDelayAfterPause(base::Minutes(70), 1);
   EXPECT_TRUE(HasActiveItems());
   EXPECT_FALSE(IsSessionInactive(id));
 
@@ -549,11 +544,9 @@
 
   // If we start playing again, we should not hide the notification, even
   // after an hour.
-  ExpectHistogramInteractionDelayAfterPause(base::TimeDelta::FromMinutes(59),
-                                            0);
+  ExpectHistogramInteractionDelayAfterPause(base::Minutes(59), 0);
   SimulatePlaybackStateChanged(id, true);
-  ExpectHistogramInteractionDelayAfterPause(base::TimeDelta::FromMinutes(59),
-                                            1);
+  ExpectHistogramInteractionDelayAfterPause(base::Minutes(59), 1);
   AdvanceClockMinutes(2);
   EXPECT_TRUE(HasActiveItems());
 
@@ -578,21 +571,17 @@
   EXPECT_TRUE(HasActiveItems());
 
   // If the user clicks to go back to the tab, it should reset the hide timer.
-  ExpectHistogramInteractionDelayAfterPause(base::TimeDelta::FromMinutes(59),
-                                            0);
+  ExpectHistogramInteractionDelayAfterPause(base::Minutes(59), 0);
   SimulateNotificationClicked(id);
-  ExpectHistogramInteractionDelayAfterPause(base::TimeDelta::FromMinutes(59),
-                                            1);
+  ExpectHistogramInteractionDelayAfterPause(base::Minutes(59), 1);
   AdvanceClockMinutes(50);
   EXPECT_TRUE(HasActiveItems());
 
   // If the user seeks the media before an hour is up, it should reset the
   // hide timer.
-  ExpectHistogramInteractionDelayAfterPause(base::TimeDelta::FromMinutes(50),
-                                            0);
+  ExpectHistogramInteractionDelayAfterPause(base::Minutes(50), 0);
   SimulateMediaSeeked(id);
-  ExpectHistogramInteractionDelayAfterPause(base::TimeDelta::FromMinutes(50),
-                                            1);
+  ExpectHistogramInteractionDelayAfterPause(base::Minutes(50), 1);
   AdvanceClockMinutes(59);
   EXPECT_TRUE(HasActiveItems());
 
@@ -626,11 +615,9 @@
   // should not have recorded any post-pause interactions.
   ExpectEmptyInteractionHistogram();
 
-  ExpectHistogramInteractionDelayAfterPause(base::TimeDelta::FromMinutes(61),
-                                            0);
+  ExpectHistogramInteractionDelayAfterPause(base::Minutes(61), 0);
   SimulatePlaybackStateChanged(id, true);
-  ExpectHistogramInteractionDelayAfterPause(base::TimeDelta::FromMinutes(61),
-                                            1);
+  ExpectHistogramInteractionDelayAfterPause(base::Minutes(61), 1);
 }
 
 TEST_F(MediaSessionNotificationProducerTest, HidingNotification_TimerParams) {
@@ -657,11 +644,11 @@
 
   // If we start playing again, we should not hide the notification, even
   // after kTimerInMinutes.
-  ExpectHistogramInteractionDelayAfterPause(
-      base::TimeDelta::FromMinutes(kTimerInMinutes - 1), 0);
+  ExpectHistogramInteractionDelayAfterPause(base::Minutes(kTimerInMinutes - 1),
+                                            0);
   SimulatePlaybackStateChanged(id, true);
-  ExpectHistogramInteractionDelayAfterPause(
-      base::TimeDelta::FromMinutes(kTimerInMinutes - 1), 1);
+  ExpectHistogramInteractionDelayAfterPause(base::Minutes(kTimerInMinutes - 1),
+                                            1);
   AdvanceClockMinutes(2);
   EXPECT_TRUE(HasActiveItems());
 
diff --git a/chrome/browser/ui/hats/hats_service.cc b/chrome/browser/ui/hats/hats_service.cc
index 24bc983..d5bfaab 100644
--- a/chrome/browser/ui/hats/hats_service.cc
+++ b/chrome/browser/ui/hats/hats_service.cc
@@ -64,16 +64,13 @@
 // TODO(crbug.com/1160661): When the minimum time between any survey, and the
 // minimum time between a specific survey, are the same, the logic supporting
 // the latter check is superfluous.
-constexpr base::TimeDelta kMinimumTimeBetweenSurveyStarts =
-    base::TimeDelta::FromDays(180);
+constexpr base::TimeDelta kMinimumTimeBetweenSurveyStarts = base::Days(180);
 
-constexpr base::TimeDelta kMinimumTimeBetweenAnySurveyStarts =
-    base::TimeDelta::FromDays(180);
+constexpr base::TimeDelta kMinimumTimeBetweenAnySurveyStarts = base::Days(180);
 
-constexpr base::TimeDelta kMinimumTimeBetweenSurveyChecks =
-    base::TimeDelta::FromDays(1);
+constexpr base::TimeDelta kMinimumTimeBetweenSurveyChecks = base::Days(1);
 
-constexpr base::TimeDelta kMinimumProfileAge = base::TimeDelta::FromDays(30);
+constexpr base::TimeDelta kMinimumProfileAge = base::Days(30);
 
 // Preferences Data Model
 // The kHatsSurveyMetadata pref points to a dictionary.
@@ -341,7 +338,7 @@
       base::BindOnce(&HatsService::LaunchSurvey, weak_ptr_factory_.GetWeakPtr(),
                      trigger, base::DoNothing(), base::DoNothing(),
                      product_specific_bits_data, product_specific_string_data),
-      base::TimeDelta::FromMilliseconds(timeout_ms));
+      base::Milliseconds(timeout_ms));
 }
 
 bool HatsService::LaunchDelayedSurveyForWebContents(
@@ -365,7 +362,7 @@
           &HatsService::DelayedSurveyTask::Launch,
           const_cast<HatsService::DelayedSurveyTask&>(*(result.first))
               .GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(timeout_ms));
+      base::Milliseconds(timeout_ms));
   if (!success) {
     pending_tasks_.erase(result.first);
   }
diff --git a/chrome/browser/ui/hats/hats_service_browsertest.cc b/chrome/browser/ui/hats/hats_service_browsertest.cc
index f3d238c7..89014a8 100644
--- a/chrome/browser/ui/hats/hats_service_browsertest.cc
+++ b/chrome/browser/ui/hats/hats_service_browsertest.cc
@@ -139,8 +139,8 @@
   void SetUpOnMainThread() override {
     host_resolver()->AddRule("*", "127.0.0.1");
     // Set the profile creation time to be old enough to ensure triggering.
-    browser()->profile()->SetCreationTimeForTesting(
-        base::Time::Now() - base::TimeDelta::FromDays(45));
+    browser()->profile()->SetCreationTimeForTesting(base::Time::Now() -
+                                                    base::Days(45));
   }
 
   void TearDownOnMainThread() override {
@@ -249,8 +249,7 @@
   base::HistogramTester histogram_tester;
   // Set creation time to only 15 days.
   static_cast<ProfileImpl*>(browser()->profile())
-      ->SetCreationTimeForTesting(base::Time::Now() -
-                                  base::TimeDelta::FromDays(15));
+      ->SetCreationTimeForTesting(base::Time::Now() - base::Days(15));
   GetHatsService()->LaunchSurvey(kHatsSurveyTriggerSettings);
   histogram_tester.ExpectUniqueSample(
       kHatsShouldShowSurveyReasonHistogram,
@@ -262,8 +261,7 @@
   SetMetricsConsent(true);
   // Set creation time to 31 days. This is just past the threshold.
   static_cast<ProfileImpl*>(browser()->profile())
-      ->SetCreationTimeForTesting(base::Time::Now() -
-                                  base::TimeDelta::FromDays(31));
+      ->SetCreationTimeForTesting(base::Time::Now() - base::Days(31));
   GetHatsService()->LaunchSurvey(kHatsSurveyTriggerSettings);
   EXPECT_TRUE(HatsNextDialogCreated());
 }
@@ -285,8 +283,7 @@
 IN_PROC_BROWSER_TEST_F(HatsServiceProbabilityOne, CheckedWithinADayNoShow) {
   SetMetricsConsent(true);
   HatsService::SurveyMetadata metadata;
-  metadata.last_survey_check_time =
-      base::Time::Now() - base::TimeDelta::FromHours(23);
+  metadata.last_survey_check_time = base::Time::Now() - base::Hours(23);
   GetHatsService()->SetSurveyMetadataForTesting(metadata);
   GetHatsService()->LaunchSurvey(kHatsSurveyTriggerSettings);
   EXPECT_FALSE(HatsNextDialogCreated());
@@ -295,8 +292,7 @@
 IN_PROC_BROWSER_TEST_F(HatsServiceProbabilityOne, CheckedAfterADayToShow) {
   SetMetricsConsent(true);
   HatsService::SurveyMetadata metadata;
-  metadata.last_survey_check_time =
-      base::Time::Now() - base::TimeDelta::FromDays(1);
+  metadata.last_survey_check_time = base::Time::Now() - base::Days(1);
   GetHatsService()->SetSurveyMetadataForTesting(metadata);
   GetHatsService()->LaunchSurvey(kHatsSurveyTriggerSettings);
   EXPECT_TRUE(HatsNextDialogCreated());
diff --git a/chrome/browser/ui/hats/trust_safety_sentiment_service_unittest.cc b/chrome/browser/ui/hats/trust_safety_sentiment_service_unittest.cc
index 5409069..f3c749a7 100644
--- a/chrome/browser/ui/hats/trust_safety_sentiment_service_unittest.cc
+++ b/chrome/browser/ui/hats/trust_safety_sentiment_service_unittest.cc
@@ -163,7 +163,7 @@
       TrustSafetySentimentService::FeatureArea::kPrivacySettings, {});
   service()->OpenedNewTabPage();
 
-  task_environment()->AdvanceClock(base::TimeDelta::FromMinutes(2));
+  task_environment()->AdvanceClock(base::Minutes(2));
   service()->TriggerOccurred(
       TrustSafetySentimentService::FeatureArea::kTrustedSurface, {});
   service()->OpenedNewTabPage();
@@ -171,7 +171,7 @@
 
   // Moving the clock forward such that only the trusted surface trigger is
   // within the window should guarantee it is the survey shown.
-  task_environment()->AdvanceClock(base::TimeDelta::FromMinutes(9));
+  task_environment()->AdvanceClock(base::Minutes(9));
   EXPECT_CALL(
       *mock_hats_service(),
       LaunchSurvey(kHatsSurveyTriggerTrustSafetyTrustedSurface, _, _, _, _));
@@ -277,7 +277,7 @@
   EXPECT_CALL(
       *mock_hats_service(),
       LaunchSurvey(kHatsSurveyTriggerTrustSafetyPrivacySettings, _, _, _, _));
-  task_environment()->AdvanceClock(base::TimeDelta::FromSeconds(20));
+  task_environment()->AdvanceClock(base::Seconds(20));
   task_environment()->RunUntilIdle();
   service()->OpenedNewTabPage();
   testing::Mock::VerifyAndClearExpectations(mock_hats_service());
@@ -286,13 +286,13 @@
   // receiving a survey.
   EXPECT_CALL(*mock_hats_service(), LaunchSurvey(_, _, _, _, _)).Times(0);
   service()->InteractedWithPrivacySettings(web_contents.get());
-  task_environment()->AdvanceClock(base::TimeDelta::FromSeconds(5));
+  task_environment()->AdvanceClock(base::Seconds(5));
   task_environment()->RunUntilIdle();
   service()->OpenedNewTabPage();
 
   content::WebContentsTester::For(web_contents.get())
       ->SetLastCommittedURL(GURL("http://unrelated.com"));
-  task_environment()->AdvanceClock(base::TimeDelta::FromSeconds(15));
+  task_environment()->AdvanceClock(base::Seconds(15));
   task_environment()->RunUntilIdle();
   service()->OpenedNewTabPage();
 }
@@ -330,7 +330,7 @@
               LaunchSurvey(kHatsSurveyTriggerTrustSafetyTransactions, _, _,
                            expected_psd, _));
 
-  task_environment()->AdvanceClock(base::TimeDelta::FromSeconds(20));
+  task_environment()->AdvanceClock(base::Seconds(20));
   task_environment()->RunUntilIdle();
   service()->OpenedNewTabPage();
   testing::Mock::VerifyAndClearExpectations(mock_hats_service());
@@ -339,13 +339,13 @@
   // eligible.
   EXPECT_CALL(*mock_hats_service(), LaunchSurvey(_, _, _, _, _)).Times(0);
   service()->OpenedPasswordManager(web_contents.get());
-  task_environment()->AdvanceClock(base::TimeDelta::FromSeconds(5));
+  task_environment()->AdvanceClock(base::Seconds(5));
   task_environment()->RunUntilIdle();
   service()->OpenedNewTabPage();
 
   content::WebContentsTester::For(web_contents.get())
       ->SetLastCommittedURL(GURL("http://unrelated.com"));
-  task_environment()->AdvanceClock(base::TimeDelta::FromSeconds(15));
+  task_environment()->AdvanceClock(base::Seconds(15));
   task_environment()->RunUntilIdle();
   service()->OpenedNewTabPage();
 }
@@ -574,7 +574,7 @@
 
   // The second visit to the NTP should not trigger a survey if it takes place
   // less than the minimum time to prompt after closing an incognito session.
-  task_environment()->AdvanceClock(base::TimeDelta::FromSeconds(30));
+  task_environment()->AdvanceClock(base::Seconds(30));
   service()->OpenedNewTabPage();
 
   // Up to this point no attempt to show any survey should have been made.
@@ -586,7 +586,7 @@
 
   // The next tab open which occurs after the required number of opens, and the
   // minimum time has passed, should trigger a survey.
-  task_environment()->AdvanceClock(base::TimeDelta::FromMinutes(1));
+  task_environment()->AdvanceClock(base::Minutes(1));
   service()->OpenedNewTabPage();
 
   CheckHistograms({TrustSafetySentimentService::FeatureArea::kPrivacySettings,
diff --git a/chrome/browser/ui/hung_plugin_tab_helper.cc b/chrome/browser/ui/hung_plugin_tab_helper.cc
index 60daf3624..c97cb50 100644
--- a/chrome/browser/ui/hung_plugin_tab_helper.cc
+++ b/chrome/browser/ui/hung_plugin_tab_helper.cc
@@ -49,7 +49,7 @@
 
   // Time to delay before re-showing the infobar for a hung plugin. This is
   // increased each time the user cancels it.
-  base::TimeDelta next_reshow_delay = base::TimeDelta::FromSeconds(10);
+  base::TimeDelta next_reshow_delay = base::Seconds(10);
 
   // Handles calling the helper when the infobar should be re-shown.
   base::OneShotTimer timer;
diff --git a/chrome/browser/ui/media_router/media_router_ui.cc b/chrome/browser/ui/media_router/media_router_ui.cc
index 4f96d83..365c2b8 100644
--- a/chrome/browser/ui/media_router/media_router_ui.cc
+++ b/chrome/browser/ui/media_router/media_router_ui.cc
@@ -237,8 +237,7 @@
       delete this;
       return;
     }
-    if (base::TimeTicks::Now() - fullscreen_request_time_ >
-        base::TimeDelta::FromSeconds(10)) {
+    if (base::TimeTicks::Now() - fullscreen_request_time_ > base::Seconds(10)) {
       // If content capture hasn't started within the timeout skip fullscreen.
       DLOG(WARNING) << "Capture of local content did not start within timeout";
       delete this;
@@ -246,7 +245,7 @@
     }
 
     capture_poll_timer_.Start(
-        FROM_HERE, base::TimeDelta::FromSeconds(1),
+        FROM_HERE, base::Seconds(1),
         base::BindOnce(
             &WebContentsFullscreenOnLoadedObserver::FullscreenIfContentCaptured,
             base::Unretained(this), web_contents));
diff --git a/chrome/browser/ui/media_router/media_router_ui_helper.cc b/chrome/browser/ui/media_router/media_router_ui_helper.cc
index 012f696..64c0e6a 100644
--- a/chrome/browser/ui/media_router/media_router_ui_helper.cc
+++ b/chrome/browser/ui/media_router/media_router_ui_helper.cc
@@ -43,14 +43,13 @@
 base::TimeDelta GetRouteRequestTimeout(MediaCastMode cast_mode) {
   switch (cast_mode) {
     case PRESENTATION:
-      return base::TimeDelta::FromSeconds(kCreateRouteTimeoutSeconds);
+      return base::Seconds(kCreateRouteTimeoutSeconds);
     case TAB_MIRROR:
-      return base::TimeDelta::FromSeconds(kCreateRouteTimeoutSecondsForTab);
+      return base::Seconds(kCreateRouteTimeoutSecondsForTab);
     case DESKTOP_MIRROR:
-      return base::TimeDelta::FromSeconds(kCreateRouteTimeoutSecondsForDesktop);
+      return base::Seconds(kCreateRouteTimeoutSecondsForDesktop);
     case LOCAL_FILE:
-      return base::TimeDelta::FromSeconds(
-          kCreateRouteTimeoutSecondsForLocalFile);
+      return base::Seconds(kCreateRouteTimeoutSecondsForLocalFile);
     default:
       NOTREACHED();
       return base::TimeDelta();
diff --git a/chrome/browser/ui/media_router/media_router_ui_unittest.cc b/chrome/browser/ui/media_router/media_router_ui_unittest.cc
index 18cf6be..aad0cd4 100644
--- a/chrome/browser/ui/media_router/media_router_ui_unittest.cc
+++ b/chrome/browser/ui/media_router/media_router_ui_unittest.cc
@@ -198,7 +198,7 @@
     EXPECT_CALL(
         *mock_router_,
         CreateRouteInternal(media_source.id(), kSinkId, _, web_contents(), _,
-                            base::TimeDelta::FromSeconds(60), is_incognito));
+                            base::Seconds(60), is_incognito));
     MediaSink sink{CreateCastSink(kSinkId, kSinkName)};
     for (MediaSinksObserver* sinks_observer : media_sinks_observers_)
       sinks_observer->OnSinksUpdated({sink}, std::vector<url::Origin>());
@@ -213,9 +213,8 @@
     ui_->OnResultsUpdated({{sink, {cast_mode}}});
     MediaRouteResponseCallback callback;
     EXPECT_CALL(*mock_router_,
-                CreateRouteInternal(
-                    _, _, _, _, _,
-                    base::TimeDelta::FromSeconds(timeout_seconds), false))
+                CreateRouteInternal(_, _, _, _, _,
+                                    base::Seconds(timeout_seconds), false))
         .WillOnce(SaveArgWithMove<4>(&callback));
     for (MediaSinksObserver* sinks_observer : media_sinks_observers_)
       sinks_observer->OnSinksUpdated({sink}, std::vector<url::Origin>());
diff --git a/chrome/browser/ui/omnibox/omnibox_view_browsertest.cc b/chrome/browser/ui/omnibox/omnibox_view_browsertest.cc
index 7427836..b8e9687 100644
--- a/chrome/browser/ui/omnibox/omnibox_view_browsertest.cc
+++ b/chrome/browser/ui/omnibox/omnibox_view_browsertest.cc
@@ -327,7 +327,7 @@
     for (size_t i = 0; i < base::size(kHistoryEntries); i++) {
       // Add everything in order of time. We don't want to have a time that
       // is "right now" or it will nondeterministically appear in the results.
-      base::Time t = base::Time::Now() - base::TimeDelta::FromHours(i + 1);
+      base::Time t = base::Time::Now() - base::Hours(i + 1);
       ASSERT_NO_FATAL_FAILURE(AddHistoryEntry(kHistoryEntries[i], t));
     }
   }
diff --git a/chrome/browser/ui/passwords/manage_passwords_test.cc b/chrome/browser/ui/passwords/manage_passwords_test.cc
index 6d5c4087..9123a3f 100644
--- a/chrome/browser/ui/passwords/manage_passwords_test.cc
+++ b/chrome/browser/ui/passwords/manage_passwords_test.cc
@@ -138,7 +138,7 @@
 void ManagePasswordsTest::SetupSafeState() {
   browser()->profile()->GetPrefs()->SetDouble(
       password_manager::prefs::kLastTimePasswordCheckCompleted,
-      (base::Time::Now() - base::TimeDelta::FromMinutes(1)).ToDoubleT());
+      (base::Time::Now() - base::Minutes(1)).ToDoubleT());
   SetupPendingPassword();
   scoped_refptr<password_manager::PasswordStore> password_store =
       PasswordStoreFactory::GetForProfile(browser()->profile(),
@@ -156,7 +156,7 @@
 void ManagePasswordsTest::SetupMoreToFixState() {
   browser()->profile()->GetPrefs()->SetDouble(
       password_manager::prefs::kLastTimePasswordCheckCompleted,
-      (base::Time::Now() - base::TimeDelta::FromMinutes(1)).ToDoubleT());
+      (base::Time::Now() - base::Minutes(1)).ToDoubleT());
   scoped_refptr<password_manager::PasswordStore> password_store =
       PasswordStoreFactory::GetForProfile(browser()->profile(),
                                           ServiceAccessType::IMPLICIT_ACCESS);
diff --git a/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc b/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc
index 1bd0667..9707a056 100644
--- a/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc
+++ b/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc
@@ -786,7 +786,7 @@
 
 // static
 base::TimeDelta ManagePasswordsUIController::GetTimeoutForSaveFallback() {
-  return base::TimeDelta::FromSeconds(
+  return base::Seconds(
       ManagePasswordsUIController::save_fallback_timeout_in_seconds_);
 }
 
diff --git a/chrome/browser/ui/passwords/manage_passwords_ui_controller_unittest.cc b/chrome/browser/ui/passwords/manage_passwords_ui_controller_unittest.cc
index 6a6dab2..2b2b815 100644
--- a/chrome/browser/ui/passwords/manage_passwords_ui_controller_unittest.cc
+++ b/chrome/browser/ui/passwords/manage_passwords_ui_controller_unittest.cc
@@ -1536,7 +1536,7 @@
 TEST_F(ManagePasswordsUIControllerTest, OpenSafeStateBubble) {
   profile()->GetPrefs()->SetDouble(
       password_manager::prefs::kLastTimePasswordCheckCompleted,
-      (base::Time::Now() - base::TimeDelta::FromMinutes(1)).ToDoubleT());
+      (base::Time::Now() - base::Minutes(1)).ToDoubleT());
   submitted_form() = test_local_form();
   submitted_form().password_value = u"new_password";
 
@@ -1580,7 +1580,7 @@
 TEST_F(ManagePasswordsUIControllerTest, OpenMoreToFixBubble) {
   profile()->GetPrefs()->SetDouble(
       password_manager::prefs::kLastTimePasswordCheckCompleted,
-      (base::Time::Now() - base::TimeDelta::FromMinutes(1)).ToDoubleT());
+      (base::Time::Now() - base::Minutes(1)).ToDoubleT());
   submitted_form() = test_local_form();
   submitted_form().password_value = u"new_password";
 
@@ -1632,7 +1632,7 @@
 TEST_F(ManagePasswordsUIControllerTest, NoMoreToFixBubbleIfPromoStillOpen) {
   profile()->GetPrefs()->SetDouble(
       password_manager::prefs::kLastTimePasswordCheckCompleted,
-      (base::Time::Now() - base::TimeDelta::FromMinutes(1)).ToDoubleT());
+      (base::Time::Now() - base::Minutes(1)).ToDoubleT());
   submitted_form() = test_local_form();
   submitted_form().password_value = u"new_password";
 
diff --git a/chrome/browser/ui/passwords/well_known_change_password_navigation_throttle_browsertest.cc b/chrome/browser/ui/passwords/well_known_change_password_navigation_throttle_browsertest.cc
index 2664b8c..346326fd 100644
--- a/chrome/browser/ui/passwords/well_known_change_password_navigation_throttle_browsertest.cc
+++ b/chrome/browser/ui/passwords/well_known_change_password_navigation_throttle_browsertest.cc
@@ -161,7 +161,7 @@
     return nullptr;
   const ServerResponse& config = it->second;
   auto http_response = std::make_unique<DelayedHttpResponse>(
-      base::TimeDelta::FromMilliseconds(config.resolve_time_in_milliseconds));
+      base::Milliseconds(config.resolve_time_in_milliseconds));
   http_response->set_code(config.status_code);
   http_response->set_content_type("text/plain");
   for (auto header_pair : config.headers) {
diff --git a/chrome/browser/ui/profile_picker.cc b/chrome/browser/ui/profile_picker.cc
index 1f6863e..aa882af1 100644
--- a/chrome/browser/ui/profile_picker.cc
+++ b/chrome/browser/ui/profile_picker.cc
@@ -21,7 +21,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kActiveTimeThreshold = base::TimeDelta::FromDays(28);
+constexpr base::TimeDelta kActiveTimeThreshold = base::Days(28);
 
 ProfilePicker::AvailabilityOnStartup GetAvailabilityOnStartup() {
   int availability_on_startup = g_browser_process->local_state()->GetInteger(
diff --git a/chrome/browser/ui/profile_picker_unittest.cc b/chrome/browser/ui/profile_picker_unittest.cc
index ff4abdf..8587f2b 100644
--- a/chrome/browser/ui/profile_picker_unittest.cc
+++ b/chrome/browser/ui/profile_picker_unittest.cc
@@ -58,7 +58,7 @@
   EXPECT_TRUE(ProfilePicker::ShouldShowAtLaunch());
 
   // Should be within the activity time threshold.
-  task_environment()->FastForwardBy(base::TimeDelta::FromDays(27));
+  task_environment()->FastForwardBy(base::Days(27));
   EXPECT_TRUE(ProfilePicker::ShouldShowAtLaunch());
 }
 
@@ -109,7 +109,7 @@
       testing_profile_manager()->CreateTestingProfile("profile2");
   GetProfileAttributes(profile2)->SetActiveTimeToNow();
   // Should be outside of the activity time threshold.
-  task_environment()->FastForwardBy(base::TimeDelta::FromDays(29));
+  task_environment()->FastForwardBy(base::Days(29));
 
   EXPECT_FALSE(ProfilePicker::ShouldShowAtLaunch());
 }
diff --git a/chrome/browser/ui/recently_audible_helper.h b/chrome/browser/ui/recently_audible_helper.h
index 20881380..211bc35 100644
--- a/chrome/browser/ui/recently_audible_helper.h
+++ b/chrome/browser/ui/recently_audible_helper.h
@@ -26,8 +26,7 @@
  public:
   // This corresponds to the amount of time that the "audio playing" icon will
   // persist in the tab strip after audio has stopped playing.
-  static constexpr base::TimeDelta kRecentlyAudibleTimeout =
-      base::TimeDelta::FromSeconds(2);
+  static constexpr base::TimeDelta kRecentlyAudibleTimeout = base::Seconds(2);
 
   using CallbackList =
       base::RepeatingCallbackList<void(bool was_recently_audible)>;
diff --git a/chrome/browser/ui/recently_audible_helper_unittest.cc b/chrome/browser/ui/recently_audible_helper_unittest.cc
index 9c72798..85aef7e0 100644
--- a/chrome/browser/ui/recently_audible_helper_unittest.cc
+++ b/chrome/browser/ui/recently_audible_helper_unittest.cc
@@ -136,7 +136,7 @@
   VerifyAndClearExpectations();
 
   // Keep audio playing and don't expect any transitions.
-  AdvanceTime(base::TimeDelta::FromSeconds(30));
+  AdvanceTime(base::Seconds(30));
   ExpectCurrentlyAudible();
   VerifyAndClearExpectations();
 
@@ -156,7 +156,7 @@
   VerifyAndClearExpectations();
 
   // Advance time and stop audio, not expecting a transition.
-  AdvanceTime(base::TimeDelta::FromSeconds(30));
+  AdvanceTime(base::Seconds(30));
   SimulateAudioStops();
   ExpectRecentlyAudible();
   VerifyAndClearExpectations();
diff --git a/chrome/browser/ui/search/ntp_user_data_logger.cc b/chrome/browser/ui/search/ntp_user_data_logger.cc
index 5331b83..6b70c0d 100644
--- a/chrome/browser/ui/search/ntp_user_data_logger.cc
+++ b/chrome/browser/ui/search/ntp_user_data_logger.cc
@@ -265,10 +265,9 @@
 // Helper macro to log a load time to UMA. There's no good reason why we don't
 // use one of the standard UMA_HISTORAM_*_TIMES macros, but all their ranges are
 // different, and it's not worth changing all the existing histograms.
-#define UMA_HISTOGRAM_LOAD_TIME(name, sample)                      \
-  UMA_HISTOGRAM_CUSTOM_TIMES(name, sample,                         \
-                             base::TimeDelta::FromMilliseconds(1), \
-                             base::TimeDelta::FromSeconds(60), 100)
+#define UMA_HISTOGRAM_LOAD_TIME(name, sample)                     \
+  UMA_HISTOGRAM_CUSTOM_TIMES(name, sample, base::Milliseconds(1), \
+                             base::Seconds(60), 100)
 
 NTPUserDataLogger::NTPUserDataLogger(Profile* profile, const GURL& ntp_url)
     : has_emitted_(false),
diff --git a/chrome/browser/ui/search/ntp_user_data_logger_unittest.cc b/chrome/browser/ui/search/ntp_user_data_logger_unittest.cc
index 95f0f75..946046f5 100644
--- a/chrome/browser/ui/search/ntp_user_data_logger_unittest.cc
+++ b/chrome/browser/ui/search/ntp_user_data_logger_unittest.cc
@@ -96,7 +96,7 @@
   // Ensure non-zero statistics.
   TestNTPUserDataLogger logger(GURL("chrome://newtab/"));
 
-  const base::TimeDelta delta = base::TimeDelta::FromMilliseconds(73);
+  const base::TimeDelta delta = base::Milliseconds(73);
 
   for (int i = 0; i < ntp_tiles::kMaxNumTiles; ++i) {
     logger.LogMostVisitedImpression(MakeNTPTileImpression(
@@ -173,7 +173,7 @@
       TileVisualType::ICON_REAL));
 
   // This should trigger emitting histograms.
-  logger.LogMostVisitedLoaded(base::TimeDelta::FromMilliseconds(73),
+  logger.LogMostVisitedLoaded(base::Milliseconds(73),
                               /*using_most_visited=*/true, /*is_visible=*/true);
 
   EXPECT_THAT(
@@ -253,7 +253,7 @@
                             TileVisualType::ICON_REAL));
 
   // This should trigger emitting histograms.
-  logger.LogMostVisitedLoaded(base::TimeDelta::FromMilliseconds(73),
+  logger.LogMostVisitedLoaded(base::Milliseconds(73),
                               /*using_most_visited=*/true, /*is_visible=*/true);
 
   EXPECT_THAT(
@@ -295,7 +295,7 @@
       TileTitleSource::UNKNOWN, TileVisualType::ICON_DEFAULT));
 
   // This should trigger emitting histograms.
-  logger.LogMostVisitedLoaded(base::TimeDelta::FromMilliseconds(73),
+  logger.LogMostVisitedLoaded(base::Milliseconds(73),
                               /*using_most_visited=*/true, /*is_visible=*/true);
 
   std::vector<base::Bucket> expectedImpressions =
@@ -470,7 +470,7 @@
 
   TestNTPUserDataLogger logger(GURL("chrome://newtab/"));
 
-  base::TimeDelta delta_tiles_loaded = base::TimeDelta::FromMilliseconds(100);
+  base::TimeDelta delta_tiles_loaded = base::Milliseconds(100);
 
   // Log a TOP_SITES impression (for the .MostVisited vs .MostLikely split in
   // the time histograms).
@@ -506,7 +506,7 @@
   // Ensure non-zero statistics.
   TestNTPUserDataLogger logger(GURL("chrome://newtab/"));
 
-  constexpr base::TimeDelta delta = base::TimeDelta::FromMilliseconds(0);
+  constexpr base::TimeDelta delta = base::Milliseconds(0);
 
   logger.LogMostVisitedImpression(ntp_tiles::NTPTileImpression(
       0, TileSource::TOP_SITES, TileTitleSource::UNKNOWN,
@@ -523,7 +523,7 @@
   TestNTPUserDataLogger logger(GURL("https://www.notgoogle.com/newtab"));
   logger.is_google_ = false;
 
-  base::TimeDelta delta_tiles_loaded = base::TimeDelta::FromMilliseconds(100);
+  base::TimeDelta delta_tiles_loaded = base::Milliseconds(100);
 
   // This should trigger emitting histograms.
   logger.LogMostVisitedLoaded(delta_tiles_loaded, /*using_most_visited=*/false,
@@ -540,7 +540,7 @@
   TestNTPUserDataLogger logger(GURL("https://www.notgoogle.com/newtab"));
   logger.is_google_ = false;
 
-  base::TimeDelta delta_tiles_loaded = base::TimeDelta::FromMilliseconds(100);
+  base::TimeDelta delta_tiles_loaded = base::Milliseconds(100);
 
   // This should trigger emitting histograms.
   logger.LogMostVisitedLoaded(delta_tiles_loaded, /*using_most_visited=*/true,
@@ -556,7 +556,7 @@
   TestNTPUserDataLogger logger(GURL("https://www.notgoogle.com/newtab"));
   logger.is_google_ = false;
 
-  base::TimeDelta delta_tiles_loaded = base::TimeDelta::FromMilliseconds(100);
+  base::TimeDelta delta_tiles_loaded = base::Milliseconds(100);
 
   // This should trigger emitting histograms.
   logger.LogMostVisitedLoaded(delta_tiles_loaded, /*using_most_visited=*/true,
diff --git a/chrome/browser/ui/search/search_ipc_router_unittest.cc b/chrome/browser/ui/search/search_ipc_router_unittest.cc
index c091c62..3bc789c 100644
--- a/chrome/browser/ui/search/search_ipc_router_unittest.cc
+++ b/chrome/browser/ui/search/search_ipc_router_unittest.cc
@@ -251,7 +251,7 @@
 }
 
 TEST_F(SearchIPCRouterTest, ProcessLogEventMsg) {
-  base::TimeDelta delta = base::TimeDelta::FromMilliseconds(123);
+  base::TimeDelta delta = base::Milliseconds(123);
   NavigateAndCommitActiveTab(GURL("chrome-search://foo/baz"));
   SetupMockDelegateAndPolicy();
   MockSearchIPCRouterPolicy* policy = GetSearchIPCRouterPolicy();
@@ -265,7 +265,7 @@
 }
 
 TEST_F(SearchIPCRouterTest, IgnoreLogEventMsg) {
-  base::TimeDelta delta = base::TimeDelta::FromMilliseconds(123);
+  base::TimeDelta delta = base::Milliseconds(123);
   NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar"));
   SetupMockDelegateAndPolicy();
   MockSearchIPCRouterPolicy* policy = GetSearchIPCRouterPolicy();
diff --git a/chrome/browser/ui/signin_reauth_view_controller_browsertest.cc b/chrome/browser/ui/signin_reauth_view_controller_browsertest.cc
index 2233c21c..6531256 100644
--- a/chrome/browser/ui/signin_reauth_view_controller_browsertest.cc
+++ b/chrome/browser/ui/signin_reauth_view_controller_browsertest.cc
@@ -51,7 +51,7 @@
 const char kReauthUserActionToFillPasswordHistogramName[] =
     "Signin.TransactionalReauthUserAction.ToFillPassword";
 
-const base::TimeDelta kReauthDialogTimeout = base::TimeDelta::FromSeconds(30);
+const base::TimeDelta kReauthDialogTimeout = base::Seconds(30);
 const char kReauthDonePath[] = "/embedded/xreauth/chrome?done";
 const char kReauthUnexpectedResponsePath[] =
     "/embedded/xreauth/chrome?unexpected";
diff --git a/chrome/browser/ui/startup/default_browser_infobar_delegate.cc b/chrome/browser/ui/startup/default_browser_infobar_delegate.cc
index fe6707f..230f9d2 100644
--- a/chrome/browser/ui/startup/default_browser_infobar_delegate.cc
+++ b/chrome/browser/ui/startup/default_browser_infobar_delegate.cc
@@ -38,7 +38,7 @@
       FROM_HERE,
       base::BindOnce(&DefaultBrowserInfoBarDelegate::AllowExpiry,
                      weak_factory_.GetWeakPtr()),
-      base::TimeDelta::FromSeconds(8));
+      base::Seconds(8));
 }
 
 DefaultBrowserInfoBarDelegate::~DefaultBrowserInfoBarDelegate() {
diff --git a/chrome/browser/ui/startup/default_browser_prompt.cc b/chrome/browser/ui/startup/default_browser_prompt.cc
index 6012895..a7b6bee 100644
--- a/chrome/browser/ui/startup/default_browser_prompt.cc
+++ b/chrome/browser/ui/startup/default_browser_prompt.cc
@@ -111,7 +111,7 @@
       return false;  // Failed to parse a reasonable period.
     base::Time show_on_or_after =
         base::Time::FromInternalValue(last_dismissed_value) +
-        base::TimeDelta::FromDays(period_days);
+        base::Days(period_days);
     if (base::Time::Now() < show_on_or_after)
       return false;
   }
diff --git a/chrome/browser/ui/tabs/hover_tab_selector.cc b/chrome/browser/ui/tabs/hover_tab_selector.cc
index 63691f6..5557887 100644
--- a/chrome/browser/ui/tabs/hover_tab_selector.cc
+++ b/chrome/browser/ui/tabs/hover_tab_selector.cc
@@ -31,8 +31,7 @@
   if (index != tab_strip_model_->active_index()) {
     // The delay between beginning to hover over a tab and the transition
     // to that tab taking place.
-    const base::TimeDelta kHoverTransitionDelay =
-        base::TimeDelta::FromMilliseconds(500);
+    const base::TimeDelta kHoverTransitionDelay = base::Milliseconds(500);
     tab_transition_tab_index_ = index;
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
         FROM_HERE,
diff --git a/chrome/browser/ui/tabs/tab_strip_model.cc b/chrome/browser/ui/tabs/tab_strip_model.cc
index d0f41c5..29e9413 100644
--- a/chrome/browser/ui/tabs/tab_strip_model.cc
+++ b/chrome/browser/ui/tabs/tab_strip_model.cc
@@ -147,8 +147,7 @@
     if (became_visible) {
       UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
           "Browser.Tabs.SelectionToVisibilityRequestTime", timer_.Elapsed(),
-          base::TimeDelta::FromMicroseconds(1), base::TimeDelta::FromSeconds(3),
-          50);
+          base::Microseconds(1), base::Seconds(3), 50);
       TRACE_EVENT_NESTABLE_ASYNC_END0("ui,latency",
                                       "TabSwitchVisibilityRequest", this);
       observation_.Reset();
@@ -317,7 +316,7 @@
   group_model_ = std::make_unique<TabGroupModel>(this);
 
   constexpr base::TimeDelta kTabScrubbingHistogramIntervalTime =
-      base::TimeDelta::FromSeconds(30);
+      base::Seconds(30);
 
   last_tab_switch_timestamp_ = base::TimeTicks::Now();
   tab_scrubbing_interval_timer_.Start(
@@ -575,7 +574,7 @@
   if (user_gesture.type == GestureType::kMouse ||
       user_gesture.type == GestureType::kKeyboard) {
     constexpr base::TimeDelta kMaxTimeConsideredScrubbing =
-        base::TimeDelta::FromMilliseconds(1500);
+        base::Milliseconds(1500);
     base::TimeDelta elapsed_time_since_tab_switch =
         base::TimeTicks::Now() - last_tab_switch_timestamp_;
     if (elapsed_time_since_tab_switch <= kMaxTimeConsideredScrubbing) {
diff --git a/chrome/browser/ui/tabs/tab_switch_event_latency_recorder.cc b/chrome/browser/ui/tabs/tab_switch_event_latency_recorder.cc
index 9fd30db..afdfe67 100644
--- a/chrome/browser/ui/tabs/tab_switch_event_latency_recorder.cc
+++ b/chrome/browser/ui/tabs/tab_switch_event_latency_recorder.cc
@@ -27,26 +27,22 @@
     case EventType::kKeyboard:
       UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
           "Browser.Tabs.InputEventToSelectionTime.Keyboard", delta,
-          base::TimeDelta::FromMicroseconds(100),
-          base::TimeDelta::FromMilliseconds(50), 50);
+          base::Microseconds(100), base::Milliseconds(50), 50);
       break;
     case EventType::kMouse:
       UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
           "Browser.Tabs.InputEventToSelectionTime.Mouse", delta,
-          base::TimeDelta::FromMicroseconds(100),
-          base::TimeDelta::FromMilliseconds(50), 50);
+          base::Microseconds(100), base::Milliseconds(50), 50);
       break;
     case EventType::kTouch:
       UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
           "Browser.Tabs.InputEventToSelectionTime.Touch", delta,
-          base::TimeDelta::FromMicroseconds(100),
-          base::TimeDelta::FromMilliseconds(50), 50);
+          base::Microseconds(100), base::Milliseconds(50), 50);
       break;
     case EventType::kWheel:
       UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
           "Browser.Tabs.InputEventToSelectionTime.Wheel", delta,
-          base::TimeDelta::FromMicroseconds(100),
-          base::TimeDelta::FromMilliseconds(50), 50);
+          base::Microseconds(100), base::Milliseconds(50), 50);
       break;
     case EventType::kOther:
       break;
diff --git a/chrome/browser/ui/task_manager/task_manager_table_model.cc b/chrome/browser/ui/task_manager/task_manager_table_model.cc
index 86721163..5a5fe7d 100644
--- a/chrome/browser/ui/task_manager/task_manager_table_model.cc
+++ b/chrome/browser/ui/task_manager/task_manager_table_model.cc
@@ -304,7 +304,7 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 TaskManagerTableModel::TaskManagerTableModel(TableViewDelegate* delegate)
-    : TaskManagerObserver(base::TimeDelta::FromMilliseconds(kRefreshTimeMS),
+    : TaskManagerObserver(base::Milliseconds(kRefreshTimeMS),
                           REFRESH_TYPE_NONE),
       table_view_delegate_(delegate),
       columns_settings_(new base::DictionaryValue),
diff --git a/chrome/browser/ui/thumbnails/background_thumbnail_video_capturer.cc b/chrome/browser/ui/thumbnails/background_thumbnail_video_capturer.cc
index 5c101eb..0a876ea 100644
--- a/chrome/browser/ui/thumbnails/background_thumbnail_video_capturer.cc
+++ b/chrome/browser/ui/thumbnails/background_thumbnail_video_capturer.cc
@@ -66,8 +66,7 @@
   video_capturer_->SetMinSizeChangePeriod(base::TimeDelta());
   video_capturer_->SetFormat(media::PIXEL_FORMAT_ARGB,
                              gfx::ColorSpace::CreateREC709());
-  video_capturer_->SetMinCapturePeriod(base::TimeDelta::FromSeconds(1) /
-                                       kMaxFrameRate);
+  video_capturer_->SetMinCapturePeriod(base::Seconds(1) / kMaxFrameRate);
   video_capturer_->Start(this);
 }
 
@@ -185,9 +184,8 @@
 
   UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
       "Tab.Preview.TimeToStoreAfterFrameReceived",
-      base::TimeTicks::Now() - time_of_call,
-      base::TimeDelta::FromMicroseconds(10),
-      base::TimeDelta::FromMilliseconds(10), 50);
+      base::TimeTicks::Now() - time_of_call, base::Microseconds(10),
+      base::Milliseconds(10), 50);
 
   got_frame_callback_.Run(cropped_frame, frame_id);
 }
diff --git a/chrome/browser/ui/thumbnails/thumbnail_capture_driver.h b/chrome/browser/ui/thumbnails/thumbnail_capture_driver.h
index cb6c485f..4db3f6e 100644
--- a/chrome/browser/ui/thumbnails/thumbnail_capture_driver.h
+++ b/chrome/browser/ui/thumbnails/thumbnail_capture_driver.h
@@ -56,8 +56,7 @@
 
   // Determines how long to wait for final capture, and how many times
   // to retry if one is not received. Exposed for testing.
-  static constexpr base::TimeDelta kCooldownDelay =
-      base::TimeDelta::FromMilliseconds(500);
+  static constexpr base::TimeDelta kCooldownDelay = base::Milliseconds(500);
   static constexpr size_t kMaxCooldownRetries = 3;
 
  private:
diff --git a/chrome/browser/ui/thumbnails/thumbnail_image.cc b/chrome/browser/ui/thumbnails/thumbnail_image.cc
index f8465921..b094fdcc 100644
--- a/chrome/browser/ui/thumbnails/thumbnail_image.cc
+++ b/chrome/browser/ui/thumbnails/thumbnail_image.cc
@@ -138,9 +138,8 @@
 
   UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
       "Tab.Preview.TimeToNotifyObserversAfterCaptureReceived",
-      base::TimeTicks::Now() - assign_sk_bitmap_time,
-      base::TimeDelta::FromMicroseconds(100),
-      base::TimeDelta::FromMilliseconds(100), 50);
+      base::TimeTicks::Now() - assign_sk_bitmap_time, base::Microseconds(100),
+      base::Milliseconds(100), 50);
 
   // We select a TRACE_EVENT_* macro based on |frame_id|'s presence.
   // Since these are scoped traces, the macro invocation must be in the
diff --git a/chrome/browser/ui/thumbnails/thumbnail_stats_tracker.h b/chrome/browser/ui/thumbnails/thumbnail_stats_tracker.h
index 8ec6cce..232dfbde 100644
--- a/chrome/browser/ui/thumbnails/thumbnail_stats_tracker.h
+++ b/chrome/browser/ui/thumbnails/thumbnail_stats_tracker.h
@@ -21,8 +21,7 @@
 
   friend class ThumbnailStatsTrackerTest;
 
-  static constexpr base::TimeDelta kReportingInterval =
-      base::TimeDelta::FromMinutes(5);
+  static constexpr base::TimeDelta kReportingInterval = base::Minutes(5);
 
   // Gets the global instance for this process.
   static ThumbnailStatsTracker& GetInstance();
diff --git a/chrome/browser/ui/thumbnails/thumbnail_tab_helper.cc b/chrome/browser/ui/thumbnails/thumbnail_tab_helper.cc
index e37404ed..a7df42c6 100644
--- a/chrome/browser/ui/thumbnails/thumbnail_tab_helper.cc
+++ b/chrome/browser/ui/thumbnails/thumbnail_tab_helper.cc
@@ -244,8 +244,7 @@
                                                     const SkBitmap& bitmap) {
   UMA_HISTOGRAM_CUSTOM_TIMES("Tab.Preview.TimeToStoreAfterTabSwitch",
                              base::TimeTicks::Now() - start_time,
-                             base::TimeDelta::FromMilliseconds(1),
-                             base::TimeDelta::FromSeconds(1), 50);
+                             base::Milliseconds(1), base::Seconds(1), 50);
   StoreThumbnail(CaptureType::kCopyFromView, bitmap, absl::nullopt);
 }
 
diff --git a/chrome/browser/ui/toolbar/recent_tabs_builder_test_helper.cc b/chrome/browser/ui/toolbar/recent_tabs_builder_test_helper.cc
index 76ce1582..345a40a4b 100644
--- a/chrome/browser/ui/toolbar/recent_tabs_builder_test_helper.cc
+++ b/chrome/browser/ui/toolbar/recent_tabs_builder_test_helper.cc
@@ -136,8 +136,7 @@
 
 void RecentTabsBuilderTestHelper::AddTab(int session_index, int window_index) {
   base::Time timestamp =
-      start_time_ +
-      base::TimeDelta::FromMinutes(base::RandGenerator(kMaxMinutesRange));
+      start_time_ + base::Minutes(base::RandGenerator(kMaxMinutesRange));
   AddTabWithInfo(session_index, window_index, timestamp, std::u16string());
 }
 
diff --git a/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model_unittest.cc b/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model_unittest.cc
index 4067e745..b338715e 100644
--- a/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model_unittest.cc
+++ b/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model_unittest.cc
@@ -496,7 +496,7 @@
 TEST_F(RecentTabsSubMenuModelTest, OtherDevices) {
   // Tabs are populated in decreasing timestamp.
   base::Time timestamp = base::Time::Now();
-  const base::TimeDelta time_delta = base::TimeDelta::FromMinutes(10);
+  const base::TimeDelta time_delta = base::Minutes(10);
 
   RecentTabsBuilderTestHelper recent_tabs_builder;
 
@@ -599,8 +599,7 @@
   DisableSync();
 
   // Before creating menu fill foreign sessions.
-  base::Time update_timestamp =
-      base::Time::Now() - base::TimeDelta::FromMinutes(10);
+  base::Time update_timestamp = base::Time::Now() - base::Minutes(10);
 
   RecentTabsBuilderTestHelper recent_tabs_builder;
 
@@ -671,7 +670,7 @@
   previous_enable_count = model.enable_count();
   previous_execute_count = model.execute_count();
 
-  update_timestamp = base::Time::Now() - base::TimeDelta::FromMinutes(5);
+  update_timestamp = base::Time::Now() - base::Minutes(5);
 
   // Add tab to the only window.
   recent_tabs_builder.AddTabWithInfo(0, 0, update_timestamp, std::u16string());
diff --git a/chrome/browser/ui/user_education/active_tab_tracker_unittest.cc b/chrome/browser/ui/user_education/active_tab_tracker_unittest.cc
index 1cb43e4..e9cd96b 100644
--- a/chrome/browser/ui/user_education/active_tab_tracker_unittest.cc
+++ b/chrome/browser/ui/user_education/active_tab_tracker_unittest.cc
@@ -34,7 +34,7 @@
   }
 };
 
-constexpr base::TimeDelta kTimeStep = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kTimeStep = base::Seconds(1);
 
 }  // namespace
 
diff --git a/chrome/browser/ui/user_education/feature_promo_snooze_service.cc b/chrome/browser/ui/user_education/feature_promo_snooze_service.cc
index 0e12799d..b7a81ea 100644
--- a/chrome/browser/ui/user_education/feature_promo_snooze_service.cc
+++ b/chrome/browser/ui/user_education/feature_promo_snooze_service.cc
@@ -48,7 +48,7 @@
 // client side will be used.
 constexpr base::FeatureParam<base::TimeDelta> kOverriddenDuration{
     &feature_engagement::kIPHDesktopSnoozeFeature,
-    "x_iph_snooze_overridden_duration", base::TimeDelta::FromHours(0)};
+    "x_iph_snooze_overridden_duration", base::Hours(0)};
 
 constexpr base::FeatureParam<FeaturePromoSnoozeService::NonClickerPolicy>::
     Option kNonClickerPolicyOptions[] = {
@@ -75,7 +75,7 @@
 
 void FeaturePromoSnoozeService::OnUserSnooze(const base::Feature& iph_feature,
                                              base::TimeDelta snooze_duration) {
-  DCHECK(snooze_duration > base::TimeDelta::FromSeconds(0));
+  DCHECK(snooze_duration > base::Seconds(0));
   auto snooze_data = ReadSnoozeData(iph_feature);
 
   if (!snooze_data)
@@ -165,8 +165,7 @@
     if (non_clicker_policy == NonClickerPolicy::kDismiss)
       return true;
 
-    return base::Time::Now() <
-           snooze_data->last_show_time + base::TimeDelta::FromDays(14);
+    return base::Time::Now() < snooze_data->last_show_time + base::Days(14);
   }
 }
 
@@ -221,7 +220,7 @@
   if (!show_time || !show_count) {
     // This feature was shipped before without handling
     // non-clickers. Assume previous displays were all snooozed.
-    show_time = *snooze_time - base::TimeDelta::FromSeconds(1);
+    show_time = *snooze_time - base::Seconds(1);
     show_count = *snooze_count;
   }
 
diff --git a/chrome/browser/ui/user_education/feature_promo_snooze_service.h b/chrome/browser/ui/user_education/feature_promo_snooze_service.h
index d49368caa..3a5ffd1 100644
--- a/chrome/browser/ui/user_education/feature_promo_snooze_service.h
+++ b/chrome/browser/ui/user_education/feature_promo_snooze_service.h
@@ -36,13 +36,11 @@
 
   // The amount of time the promo should stay onscreen if the user
   // never hovers over it.
-  static constexpr base::TimeDelta kTimeoutNoInteraction =
-      base::TimeDelta::FromSeconds(300);
+  static constexpr base::TimeDelta kTimeoutNoInteraction = base::Seconds(300);
 
   // The amount of time the promo should stay onscreen after the
   // user stops hovering over it.
-  static constexpr base::TimeDelta kTimeoutAfterInteraction =
-      base::TimeDelta::FromSeconds(3);
+  static constexpr base::TimeDelta kTimeoutAfterInteraction = base::Seconds(3);
 
   explicit FeaturePromoSnoozeService(Profile* profile);
 
@@ -54,9 +52,8 @@
   // The IPH controller must call this method when the user snoozes an IPH.
   // The snooze duration defaults to 1 day plus 2 additional hours in hope to
   // stagger busy hours in the days.
-  void OnUserSnooze(
-      const base::Feature& iph_feature,
-      base::TimeDelta snooze_duration = base::TimeDelta::FromHours(26));
+  void OnUserSnooze(const base::Feature& iph_feature,
+                    base::TimeDelta snooze_duration = base::Hours(26));
 
   // The IPH controller must call this method when the user actively dismiss an
   // IPH. Don't call this method in case of a passive dismiss, i.e. auto dismiss
diff --git a/chrome/browser/ui/user_education/feature_promo_snooze_service_unittest.cc b/chrome/browser/ui/user_education/feature_promo_snooze_service_unittest.cc
index 59bd3c43..fb731d1 100644
--- a/chrome/browser/ui/user_education/feature_promo_snooze_service_unittest.cc
+++ b/chrome/browser/ui/user_education/feature_promo_snooze_service_unittest.cc
@@ -71,9 +71,9 @@
 TEST_F(FeaturePromoSnoozeServiceTest, ReleaseSnoozedIPH) {
   service_.Reset(kTestIPHFeature);
   service_.OnPromoShown(kTestIPHFeature);
-  service_.OnUserSnooze(kTestIPHFeature, base::TimeDelta::FromHours(1));
+  service_.OnUserSnooze(kTestIPHFeature, base::Hours(1));
   EXPECT_TRUE(service_.IsBlocked(kTestIPHFeature));
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(2));
+  task_environment_.FastForwardBy(base::Hours(2));
   EXPECT_FALSE(service_.IsBlocked(kTestIPHFeature));
 }
 
@@ -81,15 +81,15 @@
   service_.Reset(kTestIPHFeature);
   service_.Reset(kTestIPHFeature2);
   service_.OnPromoShown(kTestIPHFeature);
-  service_.OnUserSnooze(kTestIPHFeature, base::TimeDelta::FromHours(1));
+  service_.OnUserSnooze(kTestIPHFeature, base::Hours(1));
   service_.OnPromoShown(kTestIPHFeature2);
-  service_.OnUserSnooze(kTestIPHFeature2, base::TimeDelta::FromHours(3));
+  service_.OnUserSnooze(kTestIPHFeature2, base::Hours(3));
   EXPECT_TRUE(service_.IsBlocked(kTestIPHFeature));
   EXPECT_TRUE(service_.IsBlocked(kTestIPHFeature2));
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(2));
+  task_environment_.FastForwardBy(base::Hours(2));
   EXPECT_FALSE(service_.IsBlocked(kTestIPHFeature));
   EXPECT_TRUE(service_.IsBlocked(kTestIPHFeature2));
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(2));
+  task_environment_.FastForwardBy(base::Hours(2));
   EXPECT_FALSE(service_.IsBlocked(kTestIPHFeature));
   EXPECT_FALSE(service_.IsBlocked(kTestIPHFeature2));
 }
@@ -101,7 +101,7 @@
   service_.Reset(kTestIPHFeature);
   service_.OnPromoShown(kTestIPHFeature);
   EXPECT_TRUE(service_.IsBlocked(kTestIPHFeature));
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(15));
+  task_environment_.FastForwardBy(base::Days(15));
   EXPECT_FALSE(service_.IsBlocked(kTestIPHFeature));
 }
 
@@ -112,6 +112,6 @@
   service_.Reset(kTestIPHFeature);
   service_.OnPromoShown(kTestIPHFeature);
   EXPECT_TRUE(service_.IsBlocked(kTestIPHFeature));
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(15));
+  task_environment_.FastForwardBy(base::Days(15));
   EXPECT_TRUE(service_.IsBlocked(kTestIPHFeature));
 }
diff --git a/chrome/browser/ui/user_education/reopen_tab_in_product_help_trigger.cc b/chrome/browser/ui/user_education/reopen_tab_in_product_help_trigger.cc
index 0b3c40a5..d9a7cfe 100644
--- a/chrome/browser/ui/user_education/reopen_tab_in_product_help_trigger.cc
+++ b/chrome/browser/ui/user_education/reopen_tab_in_product_help_trigger.cc
@@ -23,10 +23,8 @@
 
 // Default timeouts, if a field trial isn't present (only used for interactive
 // testing).
-const base::TimeDelta kDefaultTabMinimumActiveDuration =
-    base::TimeDelta::FromSeconds(10);
-const base::TimeDelta kDefaultNewTabOpenedTimeout =
-    base::TimeDelta::FromSeconds(10);
+const base::TimeDelta kDefaultTabMinimumActiveDuration = base::Seconds(10);
+const base::TimeDelta kDefaultNewTabOpenedTimeout = base::Seconds(10);
 
 absl::optional<base::TimeDelta> GetTimeoutFromFieldTrialParam(
     const std::string& name) {
@@ -36,7 +34,7 @@
   if (!str.empty()) {
     base::StringToInt(str, &timeout_seconds);
     DCHECK_GT(timeout_seconds, 0);
-    return base::TimeDelta::FromSeconds(timeout_seconds);
+    return base::Seconds(timeout_seconds);
   }
 
   return absl::optional<base::TimeDelta>();
diff --git a/chrome/browser/ui/user_education/reopen_tab_in_product_help_trigger_unittest.cc b/chrome/browser/ui/user_education/reopen_tab_in_product_help_trigger_unittest.cc
index 97966a3..5901b8d6 100644
--- a/chrome/browser/ui/user_education/reopen_tab_in_product_help_trigger_unittest.cc
+++ b/chrome/browser/ui/user_education/reopen_tab_in_product_help_trigger_unittest.cc
@@ -31,10 +31,8 @@
 // Triggering timeouts that will be passed through Finch params. They are chosen
 // to be different than the fallback timeouts to test that
 // ReopenTabInProductHelpTrigger does use the params if they exist.
-constexpr base::TimeDelta kTabMinimumActiveDuration =
-    base::TimeDelta::FromSeconds(15);
-constexpr base::TimeDelta kNewTabOpenedTimeout =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kTabMinimumActiveDuration = base::Seconds(15);
+constexpr base::TimeDelta kNewTabOpenedTimeout = base::Seconds(5);
 
 }  // namespace
 
diff --git a/chrome/browser/ui/user_education/reopen_tab_in_product_help_unittest.cc b/chrome/browser/ui/user_education/reopen_tab_in_product_help_unittest.cc
index a2c5d84e..194e505 100644
--- a/chrome/browser/ui/user_education/reopen_tab_in_product_help_unittest.cc
+++ b/chrome/browser/ui/user_education/reopen_tab_in_product_help_unittest.cc
@@ -33,10 +33,8 @@
 
 namespace {
 
-constexpr base::TimeDelta kTabMinimumActiveDuration =
-    base::TimeDelta::FromSeconds(15);
-constexpr base::TimeDelta kNewTabOpenedTimeout =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kTabMinimumActiveDuration = base::Seconds(15);
+constexpr base::TimeDelta kNewTabOpenedTimeout = base::Seconds(5);
 
 }  // namespace
 
diff --git a/chrome/browser/ui/views/accessibility/accessibility_focus_highlight.cc b/chrome/browser/ui/views/accessibility/accessibility_focus_highlight.cc
index c1eb5ef9..adb17bbc 100644
--- a/chrome/browser/ui/views/accessibility/accessibility_focus_highlight.cc
+++ b/chrome/browser/ui/views/accessibility/accessibility_focus_highlight.cc
@@ -48,13 +48,13 @@
     kPadding + kStrokeWidth + kGradientWidth + kLayerPadding;
 
 // The amount of time it should take for the highlight to fade in.
-constexpr auto kFadeInTime = base::TimeDelta::FromMilliseconds(100);
+constexpr auto kFadeInTime = base::Milliseconds(100);
 
 // The amount of time the highlight should persist before beginning to fade.
-constexpr auto kHighlightPersistTime = base::TimeDelta::FromSeconds(1);
+constexpr auto kHighlightPersistTime = base::Seconds(1);
 
 // The amount of time it should take for the highlight to fade out.
-constexpr auto kFadeOutTime = base::TimeDelta::FromMilliseconds(600);
+constexpr auto kFadeOutTime = base::Milliseconds(600);
 
 }  // namespace
 
diff --git a/chrome/browser/ui/views/accessibility/caption_bubble_controller_views_browsertest.cc b/chrome/browser/ui/views/accessibility/caption_bubble_controller_views_browsertest.cc
index 749284a3..c58067b1 100644
--- a/chrome/browser/ui/views/accessibility/caption_bubble_controller_views_browsertest.cc
+++ b/chrome/browser/ui/views/accessibility/caption_bubble_controller_views_browsertest.cc
@@ -1001,7 +1001,7 @@
   // TODO(crbug.com/1055150): Change this to 5 seconds. For some reasons tests
   // need to wait 10 seconds, but testing the feature only requires a 5 second
   // wait.
-  test_task_runner->FastForwardBy(base::TimeDelta::FromSeconds(10));
+  test_task_runner->FastForwardBy(base::Seconds(10));
   EXPECT_FALSE(IsWidgetVisible());
   EXPECT_EQ("", GetLabelText());
 
@@ -1010,12 +1010,12 @@
   OnPartialTranscription("Killer whales");
   EXPECT_TRUE(IsWidgetVisible());
   EXPECT_EQ("Killer whales", GetLabelText());
-  test_task_runner->FastForwardBy(base::TimeDelta::FromSeconds(4));
+  test_task_runner->FastForwardBy(base::Seconds(4));
   EXPECT_TRUE(IsWidgetVisible());
   OnPartialTranscription("Killer whales travel in matrifocal groups");
   EXPECT_TRUE(IsWidgetVisible());
   EXPECT_EQ("Killer whales travel in matrifocal groups", GetLabelText());
-  test_task_runner->FastForwardBy(base::TimeDelta::FromSeconds(4));
+  test_task_runner->FastForwardBy(base::Seconds(4));
   EXPECT_TRUE(IsWidgetVisible());
   OnFinalTranscription(
       "Killer whales travel in matrifocal groups--a family unit centered on "
@@ -1025,7 +1025,7 @@
       "Killer whales travel in matrifocal groups--a family unit centered on "
       "the mother.",
       GetLabelText());
-  test_task_runner->FastForwardBy(base::TimeDelta::FromSeconds(4));
+  test_task_runner->FastForwardBy(base::Seconds(4));
   EXPECT_TRUE(IsWidgetVisible());
 
   // TODO(crbug.com/1055150): Test that widget doesn't hide when focused. It
@@ -1053,7 +1053,7 @@
   // TODO(crbug.com/1055150): Change this to 5 seconds. For some reasons tests
   // need to wait 10 seconds, but testing the feature only requires a 5 second
   // wait.
-  test_task_runner->FastForwardBy(base::TimeDelta::FromSeconds(10));
+  test_task_runner->FastForwardBy(base::Seconds(10));
   EXPECT_FALSE(IsWidgetVisible());
   EXPECT_EQ("", GetLabelText());
 
diff --git a/chrome/browser/ui/views/apps/app_dialog/app_pause_dialog_view.cc b/chrome/browser/ui/views/apps/app_dialog/app_pause_dialog_view.cc
index b017526..623fbd92a 100644
--- a/chrome/browser/ui/views/apps/app_dialog/app_pause_dialog_view.cc
+++ b/chrome/browser/ui/views/apps/app_dialog/app_pause_dialog_view.cc
@@ -54,8 +54,7 @@
       ui::TimeFormat::Detailed(
           ui::TimeFormat::Format::FORMAT_DURATION,
           ui::TimeFormat::Length::LENGTH_LONG, cutoff,
-          base::TimeDelta::FromHours(pause_data.hours) +
-              base::TimeDelta::FromMinutes(pause_data.minutes)));
+          base::Hours(pause_data.hours) + base::Minutes(pause_data.minutes)));
 
   InitializeView(heading_text);
 
diff --git a/chrome/browser/ui/views/autofill/payments/offer_notification_bubble_views_test_base.cc b/chrome/browser/ui/views/autofill/payments/offer_notification_bubble_views_test_base.cc
index 40318157..60d0609a 100644
--- a/chrome/browser/ui/views/autofill/payments/offer_notification_bubble_views_test_base.cc
+++ b/chrome/browser/ui/views/autofill/payments/offer_notification_bubble_views_test_base.cc
@@ -55,8 +55,7 @@
       std::make_unique<AutofillOfferData>();
   offer_data_entry->offer_id = 4444;
   offer_data_entry->offer_reward_amount = "5%";
-  offer_data_entry->expiry =
-      AutofillClock::Now() + base::TimeDelta::FromDays(2);
+  offer_data_entry->expiry = AutofillClock::Now() + base::Days(2);
   offer_data_entry->merchant_origins = {};
   for (auto url : domains)
     offer_data_entry->merchant_origins.emplace_back(url.GetOrigin());
@@ -71,8 +70,7 @@
   std::unique_ptr<AutofillOfferData> offer_data_entry =
       std::make_unique<AutofillOfferData>();
   offer_data_entry->offer_id = 5555;
-  offer_data_entry->expiry =
-      AutofillClock::Now() + base::TimeDelta::FromDays(2);
+  offer_data_entry->expiry = AutofillClock::Now() + base::Days(2);
   offer_data_entry->merchant_origins = {};
   for (auto url : domains)
     offer_data_entry->merchant_origins.emplace_back(url.GetOrigin());
diff --git a/chrome/browser/ui/views/autofill/payments/save_card_bubble_views_browsertest.cc b/chrome/browser/ui/views/autofill/payments/save_card_bubble_views_browsertest.cc
index 253b20f..3662022 100644
--- a/chrome/browser/ui/views/autofill/payments/save_card_bubble_views_browsertest.cc
+++ b/chrome/browser/ui/views/autofill/payments/save_card_bubble_views_browsertest.cc
@@ -769,8 +769,7 @@
     GetSaveCardIconView()->ReduceAnimationTimeForTesting();
     auto* const animating_layout = GetAnimatingLayoutManager();
     if (animating_layout) {
-      animating_layout->SetAnimationDuration(
-          base::TimeDelta::FromMilliseconds(1));
+      animating_layout->SetAnimationDuration(base::Milliseconds(1));
     }
   }
 
@@ -1777,7 +1776,7 @@
   // be selected, so selecting the current January will always be expired.
   autofill::TestAutofillClock test_clock;
   test_clock.SetNow(base::Time::Now());
-  test_clock.Advance(base::TimeDelta::FromDays(40));
+  test_clock.Advance(base::Days(40));
   // Selecting expired date will disable [Save] button.
   month_input()->SetSelectedRow(1);
   year_input()->SetSelectedRow(1);
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
index 35824751..820135d 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
+++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
@@ -2013,7 +2013,7 @@
       FROM_HERE,
       base::BindOnce(&BookmarkBarView::ShowDropFolderForNode,
                      show_folder_method_factory_.GetWeakPtr(), node),
-      base::TimeDelta::FromMilliseconds(views::GetMenuShowDelay()));
+      base::Milliseconds(views::GetMenuShowDelay()));
 }
 
 void BookmarkBarView::CalculateDropLocation(
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bar_view_test.cc b/chrome/browser/ui/views/bookmarks/bookmark_bar_view_test.cc
index 2c9695d..27173ca 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view_test.cc
+++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view_test.cc
@@ -1031,7 +1031,7 @@
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
         FROM_HERE,
         base::BindOnce(&BookmarkBarViewTest9::Step4, base::Unretained(this)),
-        base::TimeDelta::FromMilliseconds(200));
+        base::Milliseconds(200));
   }
 
   void Step4() {
@@ -1327,7 +1327,7 @@
         FROM_HERE,
         base::BindOnce(&BookmarkBarViewTest12::Step5, base::Unretained(this),
                        base::Unretained(dialog)),
-        base::TimeDelta::FromSeconds(1));
+        base::Seconds(1));
   }
 
   void Step5(views::Widget* dialog) {
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_editor_view_unittest.cc b/chrome/browser/ui/views/bookmarks/bookmark_editor_view_unittest.cc
index aa1bf1f..91a78d1 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_editor_view_unittest.cc
+++ b/chrome/browser/ui/views/bookmarks/bookmark_editor_view_unittest.cc
@@ -207,7 +207,7 @@
 
 // Changes the url and makes sure parent/visual order doesn't change.
 TEST_F(BookmarkEditorViewTest, EditURLKeepsPosition) {
-  base::Time node_time = base::Time::Now() + base::TimeDelta::FromDays(2);
+  base::Time node_time = base::Time::Now() + base::Days(2);
   GetMutableNode("a")->set_date_added(node_time);
   CreateEditor(profile_.get(), nullptr,
                BookmarkEditor::EditDetails::EditNode(GetNode("a")),
@@ -240,7 +240,7 @@
 
 // Moves 'a' to be a child of the other node and changes its url to new_a.
 TEST_F(BookmarkEditorViewTest, ChangeParentAndURL) {
-  base::Time node_time = base::Time::Now() + base::TimeDelta::FromDays(2);
+  base::Time node_time = base::Time::Now() + base::Days(2);
   GetMutableNode("a")->set_date_added(node_time);
   CreateEditor(profile_.get(), nullptr,
                BookmarkEditor::EditDetails::EditNode(GetNode("a")),
diff --git a/chrome/browser/ui/views/bubble/webui_bubble_manager.cc b/chrome/browser/ui/views/bubble/webui_bubble_manager.cc
index 98f66b7..4dfb6da 100644
--- a/chrome/browser/ui/views/bubble/webui_bubble_manager.cc
+++ b/chrome/browser/ui/views/bubble/webui_bubble_manager.cc
@@ -10,8 +10,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kWebViewRetentionTime =
-    base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kWebViewRetentionTime = base::Seconds(30);
 
 }  // namespace
 
diff --git a/chrome/browser/ui/views/content_test_utils.cc b/chrome/browser/ui/views/content_test_utils.cc
index eca2c3fb..93e113a 100644
--- a/chrome/browser/ui/views/content_test_utils.cc
+++ b/chrome/browser/ui/views/content_test_utils.cc
@@ -51,7 +51,7 @@
   // Verify text input is updated.
   std::string result;
   while (result != "a") {
-    GiveItSomeTime(base::TimeDelta::FromMilliseconds(100));
+    GiveItSomeTime(base::Milliseconds(100));
 
     ASSERT_TRUE(content::ExecuteScriptAndExtractString(contents, R"(
       window.domAutomationController.send(
diff --git a/chrome/browser/ui/views/critical_notification_bubble_view.cc b/chrome/browser/ui/views/critical_notification_bubble_view.cc
index b1a580fa..e821f4d 100644
--- a/chrome/browser/ui/views/critical_notification_bubble_view.cc
+++ b/chrome/browser/ui/views/critical_notification_bubble_view.cc
@@ -56,7 +56,7 @@
 
 base::TimeDelta CriticalNotificationBubbleView::GetRemainingTime() const {
   // How long to give the user until auto-restart if no action is taken.
-  constexpr auto kCountdownDuration = base::TimeDelta::FromSeconds(30);
+  constexpr auto kCountdownDuration = base::Seconds(30);
   const base::TimeDelta time_lapsed = base::TimeTicks::Now() - bubble_created_;
   return kCountdownDuration - time_lapsed;
 }
@@ -130,7 +130,7 @@
                      margins().width());
   AddChildView(std::move(message));
 
-  refresh_timer_.Start(FROM_HERE, base::TimeDelta::FromSeconds(1), this,
+  refresh_timer_.Start(FROM_HERE, base::Seconds(1), this,
                        &CriticalNotificationBubbleView::OnCountdown);
 
   base::RecordAction(UserMetricsAction("CriticalNotificationShown"));
diff --git a/chrome/browser/ui/views/crostini/crostini_update_filesystem_view.cc b/chrome/browser/ui/views/crostini/crostini_update_filesystem_view.cc
index f564940..9af1151 100644
--- a/chrome/browser/ui/views/crostini/crostini_update_filesystem_view.cc
+++ b/chrome/browser/ui/views/crostini/crostini_update_filesystem_view.cc
@@ -34,7 +34,7 @@
 // The time to delay before showing the upgrade container dialog (to decrease
 // flashiness).
 constexpr base::TimeDelta kDelayBeforeUpgradeContainerDialog =
-    base::TimeDelta::FromMilliseconds(400);
+    base::Milliseconds(400);
 
 constexpr char kCrostiniUpgradeContainerSourceHistogram[] =
     "Crostini.UpgradeContainerSource";
@@ -53,7 +53,7 @@
 
   base::TimeDelta delay =
       g_crostini_update_filesystem_should_skip_delay_for_testing
-          ? base::TimeDelta::FromMilliseconds(0)
+          ? base::Milliseconds(0)
           : kDelayBeforeUpgradeContainerDialog;
 
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
diff --git a/chrome/browser/ui/views/desktop_capture/desktop_media_tab_list.cc b/chrome/browser/ui/views/desktop_capture/desktop_media_tab_list.cc
index 49d3b32..63bfae4 100644
--- a/chrome/browser/ui/views/desktop_capture/desktop_media_tab_list.cc
+++ b/chrome/browser/ui/views/desktop_capture/desktop_media_tab_list.cc
@@ -41,8 +41,7 @@
 // Delay after the selection is changed before clearing the preview, to allow a
 // direct switch from the old preview to the new one without flashing grey in
 // between.
-const base::TimeDelta kClearPreviewDelay =
-    base::TimeDelta::FromMilliseconds(200);
+const base::TimeDelta kClearPreviewDelay = base::Milliseconds(200);
 
 // ui::TableModel that wraps a DesktopMediaListController and listens for
 // updates from it.
diff --git a/chrome/browser/ui/views/download/download_item_view.cc b/chrome/browser/ui/views/download/download_item_view.cc
index 1bda81de3..aaf100a 100644
--- a/chrome/browser/ui/views/download/download_item_view.cc
+++ b/chrome/browser/ui/views/download/download_item_view.cc
@@ -291,7 +291,7 @@
       mode_(download::DownloadItemMode::kNormal),
       indeterminate_progress_timer_(
           FROM_HERE,
-          base::TimeDelta::FromMilliseconds(30),
+          base::Milliseconds(30),
           base::BindRepeating(
               [](DownloadItemView* view) {
                 if (view->model_->PercentComplete() < 0)
@@ -301,7 +301,7 @@
       accessible_alert_(accessible_alert),
       accessible_alert_timer_(
           FROM_HERE,
-          base::TimeDelta::FromMinutes(3),
+          base::Minutes(3),
           base::BindRepeating(&DownloadItemView::AnnounceAccessibleAlert,
                               base::Unretained(this))),
       current_scale_(/*AddedToWidget() set the right DPI*/ 1.0f) {
@@ -361,10 +361,10 @@
 
   dropdown_button_ = AddChildView(std::make_unique<ContextMenuButton>(this));
 
-  complete_animation_.SetSlideDuration(base::TimeDelta::FromMilliseconds(2500));
+  complete_animation_.SetSlideDuration(base::Milliseconds(2500));
   complete_animation_.SetTweenType(gfx::Tween::LINEAR);
 
-  scanning_animation_.SetThrobDuration(base::TimeDelta::FromMilliseconds(2500));
+  scanning_animation_.SetThrobDuration(base::Milliseconds(2500));
   scanning_animation_.SetTweenType(gfx::Tween::LINEAR);
 
   // Further configure default state, e.g. child visibility.
@@ -529,7 +529,7 @@
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(std::move(reenable), weak_ptr_factory_.GetWeakPtr()),
-      base::TimeDelta::FromSeconds(3));
+      base::Seconds(3));
 
   shelf_->AutoClose();
 }
diff --git a/chrome/browser/ui/views/download/download_shelf_view.cc b/chrome/browser/ui/views/download/download_shelf_view.cc
index bb3ef87..5722adc 100644
--- a/chrome/browser/ui/views/download/download_shelf_view.cc
+++ b/chrome/browser/ui/views/download/download_shelf_view.cc
@@ -90,9 +90,8 @@
   accessible_alert_ = AddChildView(std::make_unique<views::View>());
 
   if (gfx::Animation::ShouldRenderRichAnimation()) {
-    new_item_animation_.SetSlideDuration(
-        base::TimeDelta::FromMilliseconds(800));
-    shelf_animation_.SetSlideDuration(base::TimeDelta::FromMilliseconds(120));
+    new_item_animation_.SetSlideDuration(base::Milliseconds(800));
+    shelf_animation_.SetSlideDuration(base::Milliseconds(120));
   } else {
     new_item_animation_.SetSlideDuration(base::TimeDelta());
     shelf_animation_.SetSlideDuration(base::TimeDelta());
@@ -108,7 +107,7 @@
   // most likely going to trigger a new window to appear over the button. Delay
   // a long time so that the user has a chance to quickly close the other app
   // and return to chrome with the download shelf still open.
-  mouse_watcher_.set_notify_on_exit_time(base::TimeDelta::FromSeconds(5));
+  mouse_watcher_.set_notify_on_exit_time(base::Seconds(5));
   SetID(VIEW_ID_DOWNLOAD_SHELF);
   views::SetCascadingThemeProviderColor(this, views::kCascadingBackgroundColor,
                                         ThemeProperties::COLOR_TOOLBAR);
diff --git a/chrome/browser/ui/views/download/download_shelf_web_view.cc b/chrome/browser/ui/views/download/download_shelf_web_view.cc
index f6aa301..f3a5801 100644
--- a/chrome/browser/ui/views/download/download_shelf_web_view.cc
+++ b/chrome/browser/ui/views/download/download_shelf_web_view.cc
@@ -27,7 +27,7 @@
 
   LoadInitialURL(GURL(chrome::kChromeUIDownloadShelfURL));
 
-  shelf_animation_.SetSlideDuration(base::TimeDelta::FromMilliseconds(
+  shelf_animation_.SetSlideDuration(base::Milliseconds(
       gfx::Animation::ShouldRenderRichAnimation() ? 120 : 0));
 
   extensions::ChromeExtensionWebContentsObserver::CreateForWebContents(
diff --git a/chrome/browser/ui/views/download/download_started_animation_views.cc b/chrome/browser/ui/views/download/download_started_animation_views.cc
index 4e11946..cfa46554 100644
--- a/chrome/browser/ui/views/download/download_started_animation_views.cc
+++ b/chrome/browser/ui/views/download/download_started_animation_views.cc
@@ -20,7 +20,7 @@
 #include "ui/views/widget/widget.h"
 
 // How long to spend moving downwards and fading out after waiting.
-constexpr auto kMoveTime = base::TimeDelta::FromMilliseconds(600);
+constexpr auto kMoveTime = base::Milliseconds(600);
 
 // The animation framerate.
 const int kFrameRateHz = 60;
diff --git a/chrome/browser/ui/views/exclusive_access_bubble_views.cc b/chrome/browser/ui/views/exclusive_access_bubble_views.cc
index 461fa56..0ab1acb 100644
--- a/chrome/browser/ui/views/exclusive_access_bubble_views.cc
+++ b/chrome/browser/ui/views/exclusive_access_bubble_views.cc
@@ -176,7 +176,7 @@
 
   RunHideCallbackIfNeeded(ExclusiveAccessBubbleHideReason::kInterrupted);
 
-  animation_->SetSlideDuration(base::TimeDelta::FromMilliseconds(150));
+  animation_->SetSlideDuration(base::Milliseconds(150));
   animation_->Hide();
 }
 
@@ -298,14 +298,14 @@
   DCHECK(!IsHideTimeoutRunning());
   RunHideCallbackIfNeeded(ExclusiveAccessBubbleHideReason::kTimeout);
 
-  animation_->SetSlideDuration(base::TimeDelta::FromMilliseconds(700));
+  animation_->SetSlideDuration(base::Milliseconds(700));
   animation_->Hide();
 }
 
 void ExclusiveAccessBubbleViews::Show() {
   if (animation_->IsShowing())
     return;
-  animation_->SetSlideDuration(base::TimeDelta::FromMilliseconds(350));
+  animation_->SetSlideDuration(base::Milliseconds(350));
   animation_->Show();
 }
 
diff --git a/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc b/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc
index 4e1d63e..fd379dd 100644
--- a/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc
+++ b/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc
@@ -360,7 +360,7 @@
       // This base::Unretained is safe because the task is owned by the timer,
       // which is in turn owned by this object.
       enable_install_timer_.Start(
-          FROM_HERE, base::TimeDelta::FromMilliseconds(g_install_delay_in_ms),
+          FROM_HERE, base::Milliseconds(g_install_delay_in_ms),
           base::BindOnce(&ExtensionInstallDialogView::EnableInstallButton,
                          base::Unretained(this)));
     }
diff --git a/chrome/browser/ui/views/eye_dropper/eye_dropper_view.cc b/chrome/browser/ui/views/eye_dropper/eye_dropper_view.cc
index 112b734..01509392 100644
--- a/chrome/browser/ui/views/eye_dropper/eye_dropper_view.cc
+++ b/chrome/browser/ui/views/eye_dropper/eye_dropper_view.cc
@@ -40,7 +40,7 @@
   // Use a value close to the refresh rate @60hz.
   // TODO(iopopesc): Use SetCapture instead of a timer when support for
   // activating the eye dropper without closing the color popup is added.
-  timer_.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(16), this,
+  timer_.Start(FROM_HERE, base::Milliseconds(16), this,
                &EyeDropperView::ViewPositionHandler::UpdateViewPosition);
 }
 
@@ -184,8 +184,7 @@
   CaptureInputIfNeeded();
   // The ignore selection time should be long enough to allow the user to see
   // the UI.
-  ignore_selection_time_ =
-      base::TimeTicks::Now() + base::TimeDelta::FromMilliseconds(500);
+  ignore_selection_time_ = base::TimeTicks::Now() + base::Milliseconds(500);
 }
 
 EyeDropperView::~EyeDropperView() {
diff --git a/chrome/browser/ui/views/flying_indicator.cc b/chrome/browser/ui/views/flying_indicator.cc
index 0fe1325..8739684d 100644
--- a/chrome/browser/ui/views/flying_indicator.cc
+++ b/chrome/browser/ui/views/flying_indicator.cc
@@ -17,12 +17,9 @@
 #include "ui/views/window/dialog_delegate.h"
 
 namespace {
-static constexpr base::TimeDelta kFadeInDuration =
-    base::TimeDelta::FromMilliseconds(100);
-static constexpr base::TimeDelta kFlyDuration =
-    base::TimeDelta::FromMilliseconds(580);
-static constexpr base::TimeDelta kFadeOutDuration =
-    base::TimeDelta::FromMilliseconds(100);
+static constexpr base::TimeDelta kFadeInDuration = base::Milliseconds(100);
+static constexpr base::TimeDelta kFlyDuration = base::Milliseconds(580);
+static constexpr base::TimeDelta kFadeOutDuration = base::Milliseconds(100);
 }  // namespace
 
 // static
diff --git a/chrome/browser/ui/views/frame/browser_view.cc b/chrome/browser/ui/views/frame/browser_view.cc
index 6675447..26dfc67 100644
--- a/chrome/browser/ui/views/frame/browser_view.cc
+++ b/chrome/browser/ui/views/frame/browser_view.cc
@@ -1846,7 +1846,7 @@
       FROM_HERE,
       base::BindOnce(&BrowserView::MaybeShowReadingListInSidePanelIPH,
                      GetAsWeakPtr()),
-      base::TimeDelta::FromMinutes(5));
+      base::Minutes(5));
 }
 
 void BrowserView::MaybeShowWebUITabStripIPH() {
@@ -2948,8 +2948,8 @@
           ImmersiveModeController::ANIMATE_REVEAL_YES));
   auto delete_revealer = base::BindOnce(
       [](std::unique_ptr<ImmersiveRevealedLock>) {}, std::move(revealer));
-  constexpr auto kDefaultDelay = base::TimeDelta::FromSeconds(1);
-  constexpr auto kZeroDelay = base::TimeDelta::FromSeconds(0);
+  constexpr auto kDefaultDelay = base::Seconds(1);
+  constexpr auto kZeroDelay = base::Seconds(0);
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE, std::move(delete_revealer),
       g_disable_revealer_delay_for_testing ? kZeroDelay : kDefaultDelay);
@@ -3547,9 +3547,9 @@
   // moving the window to the target display; see http://crbug.com/1210548
   base::TimeDelta delay;
   if (swapping_screens_during_fullscreen)
-    delay = base::TimeDelta::FromMilliseconds(1000);
+    delay = base::Milliseconds(1000);
   else if (entering_cross_screen_fullscreen)
-    delay = base::TimeDelta::FromMilliseconds(1);
+    delay = base::Milliseconds(1);
   frame_->SetFullscreen(fullscreen, delay);
 #else   // OS_MAC
   frame_->SetFullscreen(fullscreen);
diff --git a/chrome/browser/ui/views/frame/top_container_loading_bar.cc b/chrome/browser/ui/views/frame/top_container_loading_bar.cc
index 23fb7fa5..dc9c718 100644
--- a/chrome/browser/ui/views/frame/top_container_loading_bar.cc
+++ b/chrome/browser/ui/views/frame/top_container_loading_bar.cc
@@ -16,7 +16,7 @@
 LoadingBarView::LoadingBarView() {
   SetPaintToLayer();
   layer()->SetFillsBoundsOpaquely(false);
-  animation_.SetDuration(base::TimeDelta::FromMilliseconds(300));
+  animation_.SetDuration(base::Milliseconds(300));
 }
 
 double LoadingBarView::GetDisplayedLoadingProgress() const {
diff --git a/chrome/browser/ui/views/frame/top_controls_slide_controller_chromeos.cc b/chrome/browser/ui/views/frame/top_controls_slide_controller_chromeos.cc
index 2852b2a8..5c69bcf 100644
--- a/chrome/browser/ui/views/frame/top_controls_slide_controller_chromeos.cc
+++ b/chrome/browser/ui/views/frame/top_controls_slide_controller_chromeos.cc
@@ -699,7 +699,7 @@
 
   for (auto* layer : layers) {
     ui::ScopedLayerAnimationSettings settings(layer->GetAnimator());
-    settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(0));
+    settings.SetTransitionDuration(base::Milliseconds(0));
     settings.SetPreemptionStrategy(
         ui::LayerAnimator::IMMEDIATELY_SET_NEW_TARGET);
     layer->SetTransform(trans);
diff --git a/chrome/browser/ui/views/frame/web_contents_close_handler.cc b/chrome/browser/ui/views/frame/web_contents_close_handler.cc
index 1fc1a38..33c86bd 100644
--- a/chrome/browser/ui/views/frame/web_contents_close_handler.cc
+++ b/chrome/browser/ui/views/frame/web_contents_close_handler.cc
@@ -51,8 +51,8 @@
     // handler. Often times the tab still ends up closing, but only after we get
     // back a response from the renderer. Assume this is going to happen and
     // keep around the cloned layer for a bit more time.
-    timer_.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(500),
-                 this, &WebContentsCloseHandler::OnStillHaventClosed);
+    timer_.Start(FROM_HERE, base::Milliseconds(500), this,
+                 &WebContentsCloseHandler::OnStillHaventClosed);
   }
 }
 
diff --git a/chrome/browser/ui/views/frame/webui_tab_strip_container_view.cc b/chrome/browser/ui/views/frame/webui_tab_strip_container_view.cc
index ac540bc7..9197c29 100644
--- a/chrome/browser/ui/views/frame/webui_tab_strip_container_view.cc
+++ b/chrome/browser/ui/views/frame/webui_tab_strip_container_view.cc
@@ -127,10 +127,8 @@
   // These values were determined by UX; in the future we may want to change
   // values for fling animations to be consistent for both open and close
   // gestures.
-  constexpr base::TimeDelta kHideAnimationDuration =
-      base::TimeDelta::FromMilliseconds(200);
-  constexpr base::TimeDelta kShowAnimationDuration =
-      base::TimeDelta::FromMilliseconds(250);
+  constexpr base::TimeDelta kHideAnimationDuration = base::Milliseconds(200);
+  constexpr base::TimeDelta kShowAnimationDuration = base::Milliseconds(250);
   switch (direction) {
     case WebUITabStripDragDirection::kUp:
       return kHideAnimationDuration;
@@ -155,7 +153,7 @@
   // fling is not granular enough to give consistent results.
   if (reason == WebUITabStripOpenCloseReason::kFling) {
     constexpr base::TimeDelta kMinimumAnimationDuration =
-        base::TimeDelta::FromMilliseconds(75);
+        base::Milliseconds(75);
     duration =
         std::max(kMinimumAnimationDuration, duration * percent_remaining);
   }
diff --git a/chrome/browser/ui/views/fullscreen_control/fullscreen_control_host.cc b/chrome/browser/ui/views/fullscreen_control/fullscreen_control_host.cc
index 87cd4f4..e3ff397 100644
--- a/chrome/browser/ui/views/fullscreen_control/fullscreen_control_host.cc
+++ b/chrome/browser/ui/views/fullscreen_control/fullscreen_control_host.cc
@@ -57,11 +57,11 @@
 constexpr float kShowFullscreenExitControlHeight = 3.f;
 
 // Time to wait to hide the popup after it is triggered.
-constexpr base::TimeDelta kMousePopupTimeout = base::TimeDelta::FromSeconds(3);
-constexpr base::TimeDelta kTouchPopupTimeout = base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kMousePopupTimeout = base::Seconds(3);
+constexpr base::TimeDelta kTouchPopupTimeout = base::Seconds(10);
 
 // Time to wait before showing the popup when the escape key is held.
-constexpr base::TimeDelta kKeyPressPopupDelay = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kKeyPressPopupDelay = base::Seconds(1);
 
 bool IsExitUiEnabled() {
 #if defined(OS_MAC)
diff --git a/chrome/browser/ui/views/fullscreen_control/fullscreen_control_view_interactive_uitest.cc b/chrome/browser/ui/views/fullscreen_control/fullscreen_control_view_interactive_uitest.cc
index 6bab6157..a813420 100644
--- a/chrome/browser/ui/views/fullscreen_control/fullscreen_control_view_interactive_uitest.cc
+++ b/chrome/browser/ui/views/fullscreen_control/fullscreen_control_view_interactive_uitest.cc
@@ -46,7 +46,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kPopupEventTimeout = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kPopupEventTimeout = base::Seconds(5);
 
 }  // namespace
 
@@ -137,8 +137,7 @@
   void FinishPromptAnimation() {
     gfx::AnimationTestApi animation_api(
         GetExclusiveAccessBubble()->animation_for_test());
-    base::TimeTicks far_future =
-        base::TimeTicks::Now() + base::TimeDelta::FromDays(1);
+    base::TimeTicks far_future = base::TimeTicks::Now() + base::Days(1);
     animation_api.Step(far_future);
   }
 
diff --git a/chrome/browser/ui/views/hats/hats_browsertest.cc b/chrome/browser/ui/views/hats/hats_browsertest.cc
index 3f29935..6ab5a2d 100644
--- a/chrome/browser/ui/views/hats/hats_browsertest.cc
+++ b/chrome/browser/ui/views/hats/hats_browsertest.cc
@@ -144,8 +144,8 @@
   auto* dialog = new MockHatsNextWebDialog(
       browser(), kHatsNextSurveyTriggerIDTesting,
       embedded_test_server()->GetURL("/hats/hats_next_mock.html"),
-      base::TimeDelta::FromSeconds(100), GetSuccessClosure(),
-      GetFailureClosure(), kHatsNextTestSurveyProductSpecificBitsData,
+      base::Seconds(100), GetSuccessClosure(), GetFailureClosure(),
+      kHatsNextTestSurveyProductSpecificBitsData,
       kHatsNextTestSurveyProductSpecificStringData);
 
   // Check that no record of a survey being shown is present.
@@ -194,8 +194,7 @@
   auto* dialog = new MockHatsNextWebDialog(
       browser(), "close_for_testing",
       embedded_test_server()->GetURL("/hats/hats_next_mock.html"),
-      base::TimeDelta::FromSeconds(100), GetSuccessClosure(),
-      GetFailureClosure(), {}, {});
+      base::Seconds(100), GetSuccessClosure(), GetFailureClosure(), {}, {});
 
   // The hats_next_mock.html will provide a state update to the dialog to
   // indicate that the survey window should be closed.
@@ -222,8 +221,8 @@
   auto* dialog = new MockHatsNextWebDialog(
       browser(), kHatsNextSurveyTriggerIDTesting,
       embedded_test_server()->GetURL("/hats/hats_next_mock.html"),
-      base::TimeDelta::FromSeconds(100), GetSuccessClosure(),
-      GetFailureClosure(), kHatsNextTestSurveyProductSpecificBitsData,
+      base::Seconds(100), GetSuccessClosure(), GetFailureClosure(),
+      kHatsNextTestSurveyProductSpecificBitsData,
       kHatsNextTestSurveyProductSpecificStringData);
   dialog->WaitForClose();
 
@@ -246,8 +245,7 @@
   auto* dialog = new MockHatsNextWebDialog(
       browser(), "invalid_test",
       embedded_test_server()->GetURL("/hats/non_existent.html"),
-      base::TimeDelta::FromMilliseconds(1), GetSuccessClosure(),
-      GetFailureClosure(), {}, {});
+      base::Milliseconds(1), GetSuccessClosure(), GetFailureClosure(), {}, {});
 
   dialog->WaitForClose();
 
@@ -267,8 +265,7 @@
   auto* dialog = new MockHatsNextWebDialog(
       browser(), "invalid_url_fragment_for_testing",
       embedded_test_server()->GetURL("/hats/hats_next_mock.html"),
-      base::TimeDelta::FromSeconds(100), GetSuccessClosure(),
-      GetFailureClosure(), {}, {});
+      base::Seconds(100), GetSuccessClosure(), GetFailureClosure(), {}, {});
 
   dialog->WaitForClose();
   EXPECT_EQ(0, success_count);
@@ -281,8 +278,7 @@
   auto* dialog = new MockHatsNextWebDialog(
       browser(), "open_new_web_contents_for_testing",
       embedded_test_server()->GetURL("/hats/hats_next_mock.html"),
-      base::TimeDelta::FromSeconds(100), base::DoNothing(), base::DoNothing(),
-      {}, {});
+      base::Seconds(100), base::DoNothing(), base::DoNothing(), {}, {});
 
   // The mock hats dialog will push a close state after it has attempted to
   // open another web contents.
@@ -307,8 +303,7 @@
   auto* dialog = new MockHatsNextWebDialog(
       devtools_browser, "open_new_web_contents_for_testing",
       embedded_test_server()->GetURL("/hats/hats_next_mock.html"),
-      base::TimeDelta::FromSeconds(100), base::DoNothing(), base::DoNothing(),
-      {}, {});
+      base::Seconds(100), base::DoNothing(), base::DoNothing(), {}, {});
 
   // The mock hats dialog will push a close state after it has attempted to
   // open another web contents.
@@ -328,8 +323,7 @@
   auto* dialog = new MockHatsNextWebDialog(
       browser(), "resize_for_testing",
       embedded_test_server()->GetURL("/hats/hats_next_mock.html"),
-      base::TimeDelta::FromSeconds(100), base::DoNothing(), base::DoNothing(),
-      {}, {});
+      base::Seconds(100), base::DoNothing(), base::DoNothing(), {}, {});
 
   // Check that the dialog reports a preferred size the same as the size defined
   // in hats_next_mock.html.
@@ -353,8 +347,7 @@
   auto* dialog = new MockHatsNextWebDialog(
       browser(), "resize_to_large_for_testing",
       embedded_test_server()->GetURL("/hats/hats_next_mock.html"),
-      base::TimeDelta::FromSeconds(100), base::DoNothing(), base::DoNothing(),
-      {}, {});
+      base::Seconds(100), base::DoNothing(), base::DoNothing(), {}, {});
 
   // Check that the maximum size of the dialog is bounded appropriately by the
   // dialogs maximum size. Depending on renderer warm-up, an initial empty size
@@ -380,8 +373,8 @@
   auto* dialog = new MockHatsNextWebDialog(
       browser(), kHatsNextSurveyTriggerIDTesting,
       embedded_test_server()->GetURL("/hats/hats_next_mock.html"),
-      base::TimeDelta::FromSeconds(100), GetSuccessClosure(),
-      GetFailureClosure(), kHatsNextTestSurveyProductSpecificBitsData,
+      base::Seconds(100), GetSuccessClosure(), GetFailureClosure(),
+      kHatsNextTestSurveyProductSpecificBitsData,
       kHatsNextTestSurveyProductSpecificStringData);
 
   // Allow the dialog to open before checking the zoom level of the contents.
diff --git a/chrome/browser/ui/views/hats/hats_next_web_dialog.cc b/chrome/browser/ui/views/hats/hats_next_web_dialog.cc
index 2a4b97e..a16e2fe 100644
--- a/chrome/browser/ui/views/hats/hats_next_web_dialog.cc
+++ b/chrome/browser/ui/views/hats/hats_next_web_dialog.cc
@@ -131,7 +131,7 @@
           browser,
           trigger_id,
           GURL("https://storage.googleapis.com/chrome_hats_staging/index.html"),
-          base::TimeDelta::FromSeconds(10),
+          base::Seconds(10),
           std::move(success_callback),
           std::move(failure_callback),
           product_specific_bits_data,
diff --git a/chrome/browser/ui/views/keyboard_access_browsertest.cc b/chrome/browser/ui/views/keyboard_access_browsertest.cc
index fca947e9..79d7f3b 100644
--- a/chrome/browser/ui/views/keyboard_access_browsertest.cc
+++ b/chrome/browser/ui/views/keyboard_access_browsertest.cc
@@ -106,7 +106,7 @@
       SendKeyPress(browser_, ui::VKEY_ESCAPE);
       base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
           FROM_HERE, base::RunLoop::QuitCurrentWhenIdleClosureDeprecated(),
-          base::TimeDelta::FromMilliseconds(200));
+          base::Milliseconds(200));
     } else {
       DCHECK(observation_.IsObserving());
       observation_.Reset();
diff --git a/chrome/browser/ui/views/location_bar/icon_label_bubble_view.cc b/chrome/browser/ui/views/location_bar/icon_label_bubble_view.cc
index c144cdd..4058cc72 100644
--- a/chrome/browser/ui/views/location_bar/icon_label_bubble_view.cc
+++ b/chrome/browser/ui/views/location_bar/icon_label_bubble_view.cc
@@ -112,7 +112,7 @@
   }
 
   ui::ScopedLayerAnimationSettings animation(layer()->GetAnimator());
-  animation.SetTransitionDuration(base::TimeDelta::FromMilliseconds(duration));
+  animation.SetTransitionDuration(base::Milliseconds(duration));
   animation.SetTweenType(gfx::Tween::Type::EASE_IN);
   layer()->SetOpacity(opacity);
 }
@@ -461,7 +461,7 @@
   SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
   label()->SetElideBehavior(gfx::NO_ELIDE);
   label()->SetVisible(false);
-  slide_animation_.SetSlideDuration(base::TimeDelta::FromMilliseconds(150));
+  slide_animation_.SetSlideDuration(base::Milliseconds(150));
   open_state_fraction_ = 1.0;
 }
 
@@ -471,7 +471,7 @@
   // statically showing the label (1800ms), and hiding the label (600ms). The
   // proportion of time spent in each portion of the animation is controlled by
   // kIconLabelBubbleOpenTimeFraction.
-  slide_animation_.SetSlideDuration(base::TimeDelta::FromMilliseconds(3000));
+  slide_animation_.SetSlideDuration(base::Milliseconds(3000));
   // The tween is calculated in GetWidthBetween().
   slide_animation_.SetTweenType(gfx::Tween::LINEAR);
   open_state_fraction_ = 0.2;
@@ -516,7 +516,7 @@
 }
 
 void IconLabelBubbleView::ReduceAnimationTimeForTesting() {
-  slide_animation_.SetSlideDuration(base::TimeDelta::FromMilliseconds(1));
+  slide_animation_.SetSlideDuration(base::Milliseconds(1));
 }
 
 void IconLabelBubbleView::PauseAnimation() {
diff --git a/chrome/browser/ui/views/location_bar/location_bar_view.cc b/chrome/browser/ui/views/location_bar/location_bar_view.cc
index 1af9a97..8cd8637 100644
--- a/chrome/browser/ui/views/location_bar/location_bar_view.cc
+++ b/chrome/browser/ui/views/location_bar/location_bar_view.cc
@@ -377,7 +377,7 @@
   // visible when the location entry has just been initialized.
   Update(nullptr);
 
-  hover_animation_.SetSlideDuration(base::TimeDelta::FromMilliseconds(200));
+  hover_animation_.SetSlideDuration(base::Milliseconds(200));
 
   is_initialized_ = true;
 }
diff --git a/chrome/browser/ui/views/location_bar/omnibox_chip_button.cc b/chrome/browser/ui/views/location_bar/omnibox_chip_button.cc
index 91f6c35..d0ee298 100644
--- a/chrome/browser/ui/views/location_bar/omnibox_chip_button.cc
+++ b/chrome/browser/ui/views/location_bar/omnibox_chip_button.cc
@@ -44,7 +44,7 @@
       gfx::Insets(GetLayoutConstant(LOCATION_BAR_CHILD_INTERIOR_PADDING),
                   GetLayoutInsets(LOCATION_BAR_ICON_INTERIOR_PADDING).left()));
 
-  constexpr auto kAnimationDuration = base::TimeDelta::FromMilliseconds(350);
+  constexpr auto kAnimationDuration = base::Milliseconds(350);
   animation_ = std::make_unique<gfx::SlideAnimation>(this);
   animation_->SetSlideDuration(kAnimationDuration);
 
@@ -54,13 +54,13 @@
 OmniboxChipButton::~OmniboxChipButton() = default;
 
 void OmniboxChipButton::AnimateCollapse() {
-  constexpr auto kAnimationDuration = base::TimeDelta::FromMilliseconds(250);
+  constexpr auto kAnimationDuration = base::Milliseconds(250);
   animation_->SetSlideDuration(kAnimationDuration);
   animation_->Hide();
 }
 
 void OmniboxChipButton::AnimateExpand() {
-  constexpr auto kAnimationDuration = base::TimeDelta::FromMilliseconds(350);
+  constexpr auto kAnimationDuration = base::Milliseconds(350);
   animation_->SetSlideDuration(kAnimationDuration);
   animation_->Show();
 }
diff --git a/chrome/browser/ui/views/location_bar/permission_chip.cc b/chrome/browser/ui/views/location_bar/permission_chip.cc
index 261b289..aa6c85e 100644
--- a/chrome/browser/ui/views/location_bar/permission_chip.cc
+++ b/chrome/browser/ui/views/location_bar/permission_chip.cc
@@ -187,7 +187,7 @@
 }
 
 void PermissionChip::StartCollapseTimer() {
-  constexpr auto kDelayBeforeCollapsingChip = base::TimeDelta::FromSeconds(12);
+  constexpr auto kDelayBeforeCollapsingChip = base::Seconds(12);
   collapse_timer_.Start(
       FROM_HERE, kDelayBeforeCollapsingChip,
       base::BindOnce(&PermissionChip::Collapse, base::Unretained(this),
@@ -198,14 +198,14 @@
   if (should_expand_) {
     if (base::FeatureList::IsEnabled(
             permissions::features::kPermissionChipAutoDismiss)) {
-      auto delay = base::TimeDelta::FromMilliseconds(
+      auto delay = base::Milliseconds(
           permissions::features::kPermissionChipAutoDismissDelay.Get());
       dismiss_timer_.Start(FROM_HERE, delay, this, &PermissionChip::Dismiss);
     }
   } else {
     // Abusive origins do not support expand animation, hence the dismiss timer
     // should be longer.
-    dismiss_timer_.Start(FROM_HERE, base::TimeDelta::FromSeconds(18), this,
+    dismiss_timer_.Start(FROM_HERE, base::Seconds(18), this,
                          &PermissionChip::Dismiss);
   }
 }
diff --git a/chrome/browser/ui/views/location_bar/zoom_bubble_view.cc b/chrome/browser/ui/views/location_bar/zoom_bubble_view.cc
index 2c43522..1679f647 100644
--- a/chrome/browser/ui/views/location_bar/zoom_bubble_view.cc
+++ b/chrome/browser/ui/views/location_bar/zoom_bubble_view.cc
@@ -60,13 +60,11 @@
 
 // The default time that the bubble should stay on the screen if it will close
 // automatically.
-constexpr base::TimeDelta kBubbleCloseDelayDefault =
-    base::TimeDelta::FromMilliseconds(1500);
+constexpr base::TimeDelta kBubbleCloseDelayDefault = base::Milliseconds(1500);
 
 // A longer timeout used for how long the bubble should stay on the screen
 // before it will close automatically after + or - buttons have been used.
-constexpr base::TimeDelta kBubbleCloseDelayLong =
-    base::TimeDelta::FromMilliseconds(5000);
+constexpr base::TimeDelta kBubbleCloseDelayLong = base::Milliseconds(5000);
 
 class ZoomButtonHighlightPathGenerator : public views::HighlightPathGenerator {
  public:
diff --git a/chrome/browser/ui/views/media_router/cast_dialog_metrics_unittest.cc b/chrome/browser/ui/views/media_router/cast_dialog_metrics_unittest.cc
index 2895ed4..30dac9da 100644
--- a/chrome/browser/ui/views/media_router/cast_dialog_metrics_unittest.cc
+++ b/chrome/browser/ui/views/media_router/cast_dialog_metrics_unittest.cc
@@ -26,13 +26,10 @@
 namespace {
 
 const base::Time init_time = base::Time::Now();
-const base::Time paint_time = init_time + base::TimeDelta::FromMilliseconds(50);
-const base::Time sink_load_time =
-    init_time + base::TimeDelta::FromMilliseconds(300);
-const base::Time start_casting_time =
-    init_time + base::TimeDelta::FromMilliseconds(2000);
-const base::Time close_dialog_time =
-    init_time + base::TimeDelta::FromMilliseconds(3000);
+const base::Time paint_time = init_time + base::Milliseconds(50);
+const base::Time sink_load_time = init_time + base::Milliseconds(300);
+const base::Time start_casting_time = init_time + base::Milliseconds(2000);
+const base::Time close_dialog_time = init_time + base::Milliseconds(3000);
 
 }  // namespace
 
diff --git a/chrome/browser/ui/views/media_router/cast_dialog_no_sinks_view.h b/chrome/browser/ui/views/media_router/cast_dialog_no_sinks_view.h
index 2bc328d..99f0da2 100644
--- a/chrome/browser/ui/views/media_router/cast_dialog_no_sinks_view.h
+++ b/chrome/browser/ui/views/media_router/cast_dialog_no_sinks_view.h
@@ -21,8 +21,7 @@
  public:
   METADATA_HEADER(CastDialogNoSinksView);
 
-  static constexpr base::TimeDelta kSearchWaitTime =
-      base::TimeDelta::FromSeconds(3);
+  static constexpr base::TimeDelta kSearchWaitTime = base::Seconds(3);
 
   explicit CastDialogNoSinksView(Profile* profile);
   CastDialogNoSinksView(const CastDialogNoSinksView&) = delete;
diff --git a/chrome/browser/ui/views/omnibox/omnibox_popup_contents_view.cc b/chrome/browser/ui/views/omnibox/omnibox_popup_contents_view.cc
index 66310c1..7598574 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_popup_contents_view.cc
+++ b/chrome/browser/ui/views/omnibox/omnibox_popup_contents_view.cc
@@ -140,7 +140,7 @@
     settings->SetTweenType(gfx::Tween::Type::FAST_OUT_SLOW_IN);
 
     constexpr base::TimeDelta kPopupOpacityAnimationDuration =
-        base::TimeDelta::FromMilliseconds(82);
+        base::Milliseconds(82);
     settings->SetTransitionDuration(kPopupOpacityAnimationDuration);
 
     return settings;
diff --git a/chrome/browser/ui/views/omnibox/omnibox_result_view.cc b/chrome/browser/ui/views/omnibox/omnibox_result_view.cc
index 659cb4a..9bc8c01 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_result_view.cc
+++ b/chrome/browser/ui/views/omnibox/omnibox_result_view.cc
@@ -588,8 +588,7 @@
 // OmniboxResultView, views::View overrides, private:
 
 void OmniboxResultView::OnBoundsChanged(const gfx::Rect& previous_bounds) {
-  keyword_slide_animation_->SetSlideDuration(
-      base::TimeDelta::FromMilliseconds(width() / 4));
+  keyword_slide_animation_->SetSlideDuration(base::Milliseconds(width() / 4));
   SetWidths();
 }
 
diff --git a/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc b/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc
index d6c7282..81e3e23 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc
+++ b/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc
@@ -124,10 +124,8 @@
     if (press_location == release_location) {
       generator.GestureTapAt(press_location);
     } else {
-      generator.GestureScrollSequence(press_location,
-                                      release_location,
-                                      base::TimeDelta::FromMilliseconds(10),
-                                      1);
+      generator.GestureScrollSequence(press_location, release_location,
+                                      base::Milliseconds(10), 1);
     }
   }
 
diff --git a/chrome/browser/ui/views/omnibox/omnibox_view_views_unittest.cc b/chrome/browser/ui/views/omnibox/omnibox_view_views_unittest.cc
index 69ce4f8..adbfcdc 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_view_views_unittest.cc
+++ b/chrome/browser/ui/views/omnibox/omnibox_view_views_unittest.cc
@@ -1053,7 +1053,7 @@
     OmniboxViewViewsTest::SetUp();
 
     // Advance 5 seconds from epoch so the time is not considered null.
-    clock_.Advance(base::TimeDelta::FromSeconds(5));
+    clock_.Advance(base::Seconds(5));
     ui::SetEventTickClockForTesting(&clock_);
 
     location_bar_model()->set_url(kFullUrl);
@@ -1244,7 +1244,7 @@
 
   // Advance the clock 5 seconds so the second click is not interpreted as a
   // double click.
-  clock()->Advance(base::TimeDelta::FromSeconds(5));
+  clock()->Advance(base::Seconds(5));
 
   // Second click should unelide only on mouse release.
   omnibox_textfield()->OnMousePressed(CreateMouseEvent(
@@ -1292,7 +1292,7 @@
 
   // Advance the clock 5 seconds so the next click is not interpreted as a
   // double click.
-  clock()->Advance(base::TimeDelta::FromSeconds(5));
+  clock()->Advance(base::Seconds(5));
 
   // Double click
   SendMouseClickAtPoint(point, 1);
@@ -1320,7 +1320,7 @@
 
   // Advance the clock 5 seconds so the next click is not interpreted as a
   // double click.
-  clock()->Advance(base::TimeDelta::FromSeconds(5));
+  clock()->Advance(base::Seconds(5));
 
   // Right click
   SendMouseClickAtPoint(point, 1, ui::EF_RIGHT_MOUSE_BUTTON);
diff --git a/chrome/browser/ui/views/overlay/overlay_window_views.cc b/chrome/browser/ui/views/overlay/overlay_window_views.cc
index 343e11f..c920adbb 100644
--- a/chrome/browser/ui/views/overlay/overlay_window_views.cc
+++ b/chrome/browser/ui/views/overlay/overlay_window_views.cc
@@ -285,7 +285,7 @@
       min_size_(kMinWindowSize),
       hide_controls_timer_(
           FROM_HERE,
-          base::TimeDelta::FromMilliseconds(2500),
+          base::Milliseconds(2500),
           base::BindRepeating(&OverlayWindowViews::UpdateControlsVisibility,
                               base::Unretained(this),
                               false /* is_visible */)) {
@@ -662,7 +662,7 @@
 
   update_controls_bounds_timer_ = std::make_unique<base::OneShotTimer>();
   update_controls_bounds_timer_->Start(
-      FROM_HERE, base::TimeDelta::FromSeconds(1),
+      FROM_HERE, base::Seconds(1),
       base::BindOnce(&OverlayWindowViews::OnUpdateControlsBounds,
                      base::Unretained(this)));
 }
diff --git a/chrome/browser/ui/views/page_action/pwa_install_view_browsertest.cc b/chrome/browser/ui/views/page_action/pwa_install_view_browsertest.cc
index 1ef77ff..a2d9681 100644
--- a/chrome/browser/ui/views/page_action/pwa_install_view_browsertest.cc
+++ b/chrome/browser/ui/views/page_action/pwa_install_view_browsertest.cc
@@ -585,11 +585,11 @@
 }
 
 IN_PROC_BROWSER_TEST_F(PwaInstallViewBrowserTest, BouncedInstallMeasured) {
-  TestInstallBounce(base::TimeDelta::FromMinutes(50), 1);
+  TestInstallBounce(base::Minutes(50), 1);
 }
 
 IN_PROC_BROWSER_TEST_F(PwaInstallViewBrowserTest, BouncedInstallIgnored) {
-  TestInstallBounce(base::TimeDelta::FromMinutes(70), 0);
+  TestInstallBounce(base::Minutes(70), 0);
 }
 
 // Omnibox install promotion should show if there are no viable related apps
diff --git a/chrome/browser/ui/views/page_info/accuracy_tip_bubble_view_browsertest.cc b/chrome/browser/ui/views/page_info/accuracy_tip_bubble_view_browsertest.cc
index 1c0de44..7535f05 100644
--- a/chrome/browser/ui/views/page_info/accuracy_tip_bubble_view_browsertest.cc
+++ b/chrome/browser/ui/views/page_info/accuracy_tip_bubble_view_browsertest.cc
@@ -244,7 +244,7 @@
   EXPECT_FALSE(IsUIShowing());
 
   // But a week later it shows up again with an opt-out button.
-  clock.Advance(base::TimeDelta::FromDays(7));
+  clock.Advance(base::Days(7));
   ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), GetUrl(kAccuracyTipUrl)));
   EXPECT_TRUE(IsUIShowing());
   ClickExtraButton();
@@ -319,7 +319,7 @@
   for (int i = 0;
        i < accuracy_tips::features::kMinPromptCountRequiredForSurvey.Get();
        i++) {
-    clock.Advance(base::TimeDelta::FromDays(7));
+    clock.Advance(base::Days(7));
     ASSERT_TRUE(
         ui_test_utils::NavigateToURL(browser(), GetUrl(kAccuracyTipUrl)));
     EXPECT_TRUE(IsUIShowing());
@@ -335,8 +335,8 @@
   bool enable_metrics = true;
   ChromeMetricsServiceAccessor::SetMetricsAndCrashReportingForTesting(
       &enable_metrics);
-  browser()->profile()->SetCreationTimeForTesting(
-      base::Time::Now() - base::TimeDelta::FromDays(45));
+  browser()->profile()->SetCreationTimeForTesting(base::Time::Now() -
+                                                  base::Days(45));
 
   clock.Advance(accuracy_tips::features::kMinTimeToShowSurvey.Get());
   ui_test_utils::NavigateToURLWithDisposition(
@@ -361,7 +361,7 @@
   for (int i = 0;
        i < accuracy_tips::features::kMinPromptCountRequiredForSurvey.Get();
        i++) {
-    clock.Advance(base::TimeDelta::FromDays(7));
+    clock.Advance(base::Days(7));
     ASSERT_TRUE(
         ui_test_utils::NavigateToURL(browser(), GetUrl(kAccuracyTipUrl)));
     EXPECT_TRUE(IsUIShowing());
@@ -377,8 +377,8 @@
   bool enable_metrics = true;
   ChromeMetricsServiceAccessor::SetMetricsAndCrashReportingForTesting(
       &enable_metrics);
-  browser()->profile()->SetCreationTimeForTesting(
-      base::Time::Now() - base::TimeDelta::FromDays(45));
+  browser()->profile()->SetCreationTimeForTesting(base::Time::Now() -
+                                                  base::Days(45));
 
   // Delete all history...
   tips_service->OnURLsDeleted(nullptr, history::DeletionInfo::ForAllHistory());
diff --git a/chrome/browser/ui/views/page_info/safety_tip_page_info_bubble_view_browsertest.cc b/chrome/browser/ui/views/page_info/safety_tip_page_info_bubble_view_browsertest.cc
index 07b5785..d86b8e02 100644
--- a/chrome/browser/ui/views/page_info/safety_tip_page_info_bubble_view_browsertest.cc
+++ b/chrome/browser/ui/views/page_info/safety_tip_page_info_bubble_view_browsertest.cc
@@ -1161,7 +1161,7 @@
   if (!IsSuspiciousSiteWarningEnabled()) {
     return;
   }
-  const base::TimeDelta kMinWarningTime = base::TimeDelta::FromMilliseconds(10);
+  const base::TimeDelta kMinWarningTime = base::Milliseconds(10);
 
   // Test the histogram for no user action taken.
   {
diff --git a/chrome/browser/ui/views/passwords/manage_passwords_icon_view_interactive_uitest.cc b/chrome/browser/ui/views/passwords/manage_passwords_icon_view_interactive_uitest.cc
index 6ff938611..d2dfdc3d 100644
--- a/chrome/browser/ui/views/passwords/manage_passwords_icon_view_interactive_uitest.cc
+++ b/chrome/browser/ui/views/passwords/manage_passwords_icon_view_interactive_uitest.cc
@@ -88,8 +88,7 @@
   void ReduceAnimationTime() {
     auto* const animating_layout = GetAnimatingLayoutManager();
     if (animating_layout) {
-      animating_layout->SetAnimationDuration(
-          base::TimeDelta::FromMilliseconds(1));
+      animating_layout->SetAnimationDuration(base::Milliseconds(1));
     }
   }
 
diff --git a/chrome/browser/ui/views/passwords/password_auto_sign_in_view.cc b/chrome/browser/ui/views/passwords/password_auto_sign_in_view.cc
index 8c0ed78..7674735 100644
--- a/chrome/browser/ui/views/passwords/password_auto_sign_in_view.cc
+++ b/chrome/browser/ui/views/passwords/password_auto_sign_in_view.cc
@@ -91,6 +91,5 @@
 }
 
 base::TimeDelta PasswordAutoSignInView::GetTimeout() {
-  return base::TimeDelta::FromSeconds(
-      PasswordAutoSignInView::auto_signin_toast_timeout_);
+  return base::Seconds(PasswordAutoSignInView::auto_signin_toast_timeout_);
 }
diff --git a/chrome/browser/ui/views/passwords/password_save_update_view.cc b/chrome/browser/ui/views/passwords/password_save_update_view.cc
index 1124a42..de2cf7a 100644
--- a/chrome/browser/ui/views/passwords/password_save_update_view.cc
+++ b/chrome/browser/ui/views/passwords/password_save_update_view.cc
@@ -276,13 +276,13 @@
 }
 
 base::TimeDelta GetRegularIPHTimeout() {
-  return base::TimeDelta::FromSeconds(base::GetFieldTrialParamByFeatureAsInt(
+  return base::Seconds(base::GetFieldTrialParamByFeatureAsInt(
       feature_engagement::kIPHPasswordsAccountStorageFeature,
       "account_storage_iph_timeout_seconds_regular", 30));
 }
 
 base::TimeDelta GetShortIPHTimeout() {
-  return base::TimeDelta::FromSeconds(base::GetFieldTrialParamByFeatureAsInt(
+  return base::Seconds(base::GetFieldTrialParamByFeatureAsInt(
       feature_engagement::kIPHPasswordsAccountStorageFeature,
       "account_storage_iph_timeout_seconds_short", 10));
 }
diff --git a/chrome/browser/ui/views/payments/payment_request_browsertest_base.cc b/chrome/browser/ui/views/payments/payment_request_browsertest_base.cc
index 83ee15d..afd9845 100644
--- a/chrome/browser/ui/views/payments/payment_request_browsertest_base.cc
+++ b/chrome/browser/ui/views/payments/payment_request_browsertest_base.cc
@@ -794,15 +794,14 @@
     PaymentRequestDialogView* dialog_view) {
   ViewStack* view_stack = dialog_view->view_stack_for_testing();
   if (view_stack->slide_in_animator_->IsAnimating()) {
-    view_stack->slide_in_animator_->SetAnimationDuration(
-        base::TimeDelta::FromMilliseconds(1));
+    view_stack->slide_in_animator_->SetAnimationDuration(base::Milliseconds(1));
     view_stack->slide_in_animator_->SetAnimationDelegate(
         view_stack->top(), std::unique_ptr<gfx::AnimationDelegate>(
                                new gfx::TestAnimationDelegate()));
     base::RunLoop().Run();
   } else if (view_stack->slide_out_animator_->IsAnimating()) {
     view_stack->slide_out_animator_->SetAnimationDuration(
-        base::TimeDelta::FromMilliseconds(1));
+        base::Milliseconds(1));
     view_stack->slide_out_animator_->SetAnimationDelegate(
         view_stack->top(), std::unique_ptr<gfx::AnimationDelegate>(
                                new gfx::TestAnimationDelegate()));
diff --git a/chrome/browser/ui/views/payments/view_stack_unittest.cc b/chrome/browser/ui/views/payments/view_stack_unittest.cc
index 0de1ae8..e23f46f 100644
--- a/chrome/browser/ui/views/payments/view_stack_unittest.cc
+++ b/chrome/browser/ui/views/payments/view_stack_unittest.cc
@@ -51,9 +51,9 @@
     view_stack_->SetBounds(0, 0, 10, 10);
     view_stack_->Push(std::make_unique<TestStackView>(), false);
     view_stack_->slide_in_animator_->SetAnimationDuration(
-        base::TimeDelta::FromMilliseconds(1));
+        base::Milliseconds(1));
     view_stack_->slide_out_animator_->SetAnimationDuration(
-        base::TimeDelta::FromMilliseconds(1));
+        base::Milliseconds(1));
   }
 
   ViewStackTest(const ViewStackTest&) = delete;
diff --git a/chrome/browser/ui/views/profiles/avatar_toolbar_button.cc b/chrome/browser/ui/views/profiles/avatar_toolbar_button.cc
index 2112d260..75669dbb 100644
--- a/chrome/browser/ui/views/profiles/avatar_toolbar_button.cc
+++ b/chrome/browser/ui/views/profiles/avatar_toolbar_button.cc
@@ -53,7 +53,7 @@
 
 // static
 base::TimeDelta AvatarToolbarButton::g_iph_min_delay_after_creation =
-    base::TimeDelta::FromSeconds(2);
+    base::Seconds(2);
 
 AvatarToolbarButton::AvatarToolbarButton(BrowserView* browser_view)
     : AvatarToolbarButton(browser_view, nullptr) {}
diff --git a/chrome/browser/ui/views/profiles/avatar_toolbar_button_delegate.cc b/chrome/browser/ui/views/profiles/avatar_toolbar_button_delegate.cc
index 4251631..76d6bb6 100644
--- a/chrome/browser/ui/views/profiles/avatar_toolbar_button_delegate.cc
+++ b/chrome/browser/ui/views/profiles/avatar_toolbar_button_delegate.cc
@@ -23,11 +23,9 @@
 
 namespace {
 
-constexpr base::TimeDelta kIdentityAnimationDuration =
-    base::TimeDelta::FromSeconds(3);
+constexpr base::TimeDelta kIdentityAnimationDuration = base::Seconds(3);
 
-constexpr base::TimeDelta kAvatarHighlightAnimationDuration =
-    base::TimeDelta::FromSeconds(2);
+constexpr base::TimeDelta kAvatarHighlightAnimationDuration = base::Seconds(2);
 
 ProfileAttributesStorage& GetProfileAttributesStorage() {
   return g_browser_process->profile_manager()->GetProfileAttributesStorage();
diff --git a/chrome/browser/ui/views/profiles/profile_customization_bubble_view_browsertest.cc b/chrome/browser/ui/views/profiles/profile_customization_bubble_view_browsertest.cc
index 5fb715a..d12ffa3 100644
--- a/chrome/browser/ui/views/profiles/profile_customization_bubble_view_browsertest.cc
+++ b/chrome/browser/ui/views/profiles/profile_customization_bubble_view_browsertest.cc
@@ -77,8 +77,7 @@
 }
 
 IN_PROC_BROWSER_TEST_F(ProfileCustomizationBubbleBrowserTest, IPH) {
-  AvatarToolbarButton::SetIPHMinDelayAfterCreationForTesting(
-      base::TimeDelta::FromSeconds(0));
+  AvatarToolbarButton::SetIPHMinDelayAfterCreationForTesting(base::Seconds(0));
   // Create the customization bubble, owned by the view hierarchy.
   ProfileCustomizationBubbleView* bubble =
       ProfileCustomizationBubbleView::CreateBubble(browser()->profile(),
diff --git a/chrome/browser/ui/views/profiles/profile_picker_view.cc b/chrome/browser/ui/views/profiles/profile_picker_view.cc
index cea8b574..71063ca 100644
--- a/chrome/browser/ui/views/profiles/profile_picker_view.cc
+++ b/chrome/browser/ui/views/profiles/profile_picker_view.cc
@@ -86,8 +86,7 @@
 // Padding of elements in the simple toolbar.
 constexpr gfx::Insets kToolbarPadding = gfx::Insets(8);
 
-constexpr base::TimeDelta kExtendedAccountInfoTimeout =
-    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kExtendedAccountInfoTimeout = base::Seconds(10);
 
 constexpr int kSupportedAcceleratorCommands[] = {
     IDC_CLOSE_TAB,  IDC_CLOSE_WINDOW,    IDC_EXIT,
diff --git a/chrome/browser/ui/views/profiles/profile_picker_view_browsertest.cc b/chrome/browser/ui/views/profiles/profile_picker_view_browsertest.cc
index e52c9ea18..ca52083 100644
--- a/chrome/browser/ui/views/profiles/profile_picker_view_browsertest.cc
+++ b/chrome/browser/ui/views/profiles/profile_picker_view_browsertest.cc
@@ -635,7 +635,7 @@
 
   // Make it work without waiting for a long delay.
   ProfilePicker::SetExtendedAccountInfoTimeoutForTesting(
-      base::TimeDelta::FromMilliseconds(10));
+      base::Milliseconds(10));
 
   // Add an account - simulate a successful Gaia sign-in.
   CoreAccountInfo core_account_info =
@@ -798,8 +798,7 @@
 }
 
 IN_PROC_BROWSER_TEST_F(ProfilePickerCreationFlowBrowserTest, OpenProfile) {
-  AvatarToolbarButton::SetIPHMinDelayAfterCreationForTesting(
-      base::TimeDelta::FromSeconds(0));
+  AvatarToolbarButton::SetIPHMinDelayAfterCreationForTesting(base::Seconds(0));
   ASSERT_EQ(1u, BrowserList::GetInstance()->size());
   // Create a second profile.
   base::FilePath other_path = CreateNewProfileWithoutBrowser();
@@ -820,8 +819,7 @@
 
 IN_PROC_BROWSER_TEST_F(ProfilePickerCreationFlowBrowserTest,
                        OpenProfile_Settings) {
-  AvatarToolbarButton::SetIPHMinDelayAfterCreationForTesting(
-      base::TimeDelta::FromSeconds(0));
+  AvatarToolbarButton::SetIPHMinDelayAfterCreationForTesting(base::Seconds(0));
   ASSERT_EQ(1u, BrowserList::GetInstance()->size());
   // Create a second profile.
   base::FilePath other_path = CreateNewProfileWithoutBrowser();
@@ -885,8 +883,7 @@
 // Regression test for https://crbug.com/1199035
 IN_PROC_BROWSER_TEST_F(ProfilePickerCreationFlowBrowserTest,
                        OpenProfile_Guest) {
-  AvatarToolbarButton::SetIPHMinDelayAfterCreationForTesting(
-      base::TimeDelta::FromSeconds(0));
+  AvatarToolbarButton::SetIPHMinDelayAfterCreationForTesting(base::Seconds(0));
   ASSERT_EQ(1u, BrowserList::GetInstance()->size());
   // Create a second profile.
   base::FilePath other_path = CreateNewProfileWithoutBrowser();
diff --git a/chrome/browser/ui/views/read_later/read_later_button.cc b/chrome/browser/ui/views/read_later/read_later_button.cc
index 4c109c6..3dc7736 100644
--- a/chrome/browser/ui/views/read_later/read_later_button.cc
+++ b/chrome/browser/ui/views/read_later/read_later_button.cc
@@ -87,12 +87,9 @@
 
 // Note this matches the background base layer alpha used in ToolbarButton.
 constexpr SkAlpha kBackgroundBaseLayerAlpha = 204;
-constexpr base::TimeDelta kHighlightShowDuration =
-    base::TimeDelta::FromMilliseconds(150);
-constexpr base::TimeDelta kHighlightHideDuration =
-    base::TimeDelta::FromMilliseconds(650);
-constexpr base::TimeDelta kHighlightDuration =
-    base::TimeDelta::FromMilliseconds(2250);
+constexpr base::TimeDelta kHighlightShowDuration = base::Milliseconds(150);
+constexpr base::TimeDelta kHighlightHideDuration = base::Milliseconds(650);
+constexpr base::TimeDelta kHighlightDuration = base::Milliseconds(2250);
 
 }  // namespace
 
diff --git a/chrome/browser/ui/views/relaunch_notification/relaunch_notification_controller.h b/chrome/browser/ui/views/relaunch_notification/relaunch_notification_controller.h
index ccaed397..bc9bc6d 100644
--- a/chrome/browser/ui/views/relaunch_notification/relaunch_notification_controller.h
+++ b/chrome/browser/ui/views/relaunch_notification/relaunch_notification_controller.h
@@ -66,8 +66,7 @@
   // The length of the final countdown given to the user before the browser is
   // summarily relaunched on Chrome desktop, or the device is rebooted on
   // Chrome OS.
-  static constexpr base::TimeDelta kRelaunchGracePeriod =
-      base::TimeDelta::FromHours(1);
+  static constexpr base::TimeDelta kRelaunchGracePeriod = base::Hours(1);
 
   RelaunchNotificationController(UpgradeDetector* upgrade_detector,
                                  const base::Clock* clock,
diff --git a/chrome/browser/ui/views/relaunch_notification/relaunch_notification_controller_unittest.cc b/chrome/browser/ui/views/relaunch_notification/relaunch_notification_controller_unittest.cc
index a883a09..bed2790 100644
--- a/chrome/browser/ui/views/relaunch_notification/relaunch_notification_controller_unittest.cc
+++ b/chrome/browser/ui/views/relaunch_notification/relaunch_notification_controller_unittest.cc
@@ -175,7 +175,7 @@
   base::TimeDelta high_threshold() const { return high_threshold_; }
 
  private:
-  base::TimeDelta high_threshold_ = base::TimeDelta::FromDays(7);
+  base::TimeDelta high_threshold_ = base::Days(7);
 };
 
 }  // namespace
@@ -561,20 +561,17 @@
       &mock_controller_delegate);
 
   // Reduce the period.
-  fake_upgrade_detector().BroadcastHighThresholdChange(
-      base::TimeDelta::FromDays(1));
+  fake_upgrade_detector().BroadcastHighThresholdChange(base::Days(1));
   FastForwardBy(fake_upgrade_detector().high_threshold());
   ::testing::Mock::VerifyAndClearExpectations(&mock_controller_delegate);
 
   SetNotificationPref(1);
-  fake_upgrade_detector().BroadcastHighThresholdChange(
-      base::TimeDelta::FromHours(23));
+  fake_upgrade_detector().BroadcastHighThresholdChange(base::Hours(23));
   FastForwardBy(fake_upgrade_detector().high_threshold());
   ::testing::Mock::VerifyAndClearExpectations(&mock_controller_delegate);
 
   SetNotificationPref(2);
-  fake_upgrade_detector().BroadcastHighThresholdChange(
-      base::TimeDelta::FromHours(22));
+  fake_upgrade_detector().BroadcastHighThresholdChange(base::Hours(22));
   FastForwardBy(fake_upgrade_detector().high_threshold());
   ::testing::Mock::VerifyAndClearExpectations(&mock_controller_delegate);
 }
@@ -593,20 +590,17 @@
   ::testing::Mock::VerifyAndClearExpectations(&mock_controller_delegate);
 
   // Reduce the period.
-  fake_upgrade_detector().BroadcastHighThresholdChange(
-      base::TimeDelta::FromDays(1));
+  fake_upgrade_detector().BroadcastHighThresholdChange(base::Days(1));
   FastForwardBy(fake_upgrade_detector().high_threshold());
   ::testing::Mock::VerifyAndClearExpectations(&mock_controller_delegate);
 
   SetNotificationPref(1);
-  fake_upgrade_detector().BroadcastHighThresholdChange(
-      base::TimeDelta::FromHours(23));
+  fake_upgrade_detector().BroadcastHighThresholdChange(base::Hours(23));
   FastForwardBy(fake_upgrade_detector().high_threshold());
   ::testing::Mock::VerifyAndClearExpectations(&mock_controller_delegate);
 
   SetNotificationPref(2);
-  fake_upgrade_detector().BroadcastHighThresholdChange(
-      base::TimeDelta::FromHours(22));
+  fake_upgrade_detector().BroadcastHighThresholdChange(base::Hours(22));
   FastForwardBy(fake_upgrade_detector().high_threshold());
   ::testing::Mock::VerifyAndClearExpectations(&mock_controller_delegate);
 }
@@ -894,7 +888,7 @@
   ::testing::Mock::VerifyAndClearExpectations(&mock_controller_delegate);
 
   // Advance to the grace threshold and raise the annoyance level.
-  FastForwardBy(delta - base::TimeDelta::FromHours(1));
+  FastForwardBy(delta - base::Hours(1));
   ::testing::Mock::VerifyAndClearExpectations(&mock_controller_delegate);
   EXPECT_CALL(mock_controller_delegate, NotifyRelaunchRequired());
   fake_upgrade_detector().BroadcastLevelChange(
@@ -908,7 +902,7 @@
 
   // Advance to the deadline to restart.
   EXPECT_CALL(mock_controller_delegate, OnRelaunchDeadlineExpired());
-  FastForwardBy(base::TimeDelta::FromHours(1));
+  FastForwardBy(base::Hours(1));
   ASSERT_EQ(GetMockClock()->Now(),
             upgrade_detector()->GetAnnoyanceLevelDeadline(
                 UpgradeDetector::UPGRADE_ANNOYANCE_HIGH));
@@ -1100,8 +1094,7 @@
   // Expect the platform_impl to show the notification synchronously.
   ::testing::StrictMock<base::MockOnceCallback<base::Time()>> callback;
 
-  base::Time deadline =
-      base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromHours(1));
+  base::Time deadline = base::Time::FromDeltaSinceWindowsEpoch(base::Hours(1));
 
   // There should be no query at the time of showing.
   platform_impl().NotifyRelaunchRequired(deadline, callback.Get());
@@ -1122,8 +1115,7 @@
 TEST_F(RelaunchNotificationControllerPlatformImplTest, DeferredDeadline) {
   ::testing::StrictMock<base::MockOnceCallback<base::Time()>> callback;
 
-  base::Time deadline =
-      base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromHours(1));
+  base::Time deadline = base::Time::FromDeltaSinceWindowsEpoch(base::Hours(1));
 
   // There should be no query because the browser isn't visible.
   platform_impl().NotifyRelaunchRequired(deadline, callback.Get());
diff --git a/chrome/browser/ui/views/relaunch_notification/relaunch_recommended_bubble_view_browsertest.cc b/chrome/browser/ui/views/relaunch_notification/relaunch_recommended_bubble_view_browsertest.cc
index dcb3a91a..6c0d6e4 100644
--- a/chrome/browser/ui/views/relaunch_notification/relaunch_recommended_bubble_view_browsertest.cc
+++ b/chrome/browser/ui/views/relaunch_notification/relaunch_recommended_bubble_view_browsertest.cc
@@ -22,8 +22,7 @@
 
   // DialogBrowserTest:
   void ShowUi(const std::string& name) override {
-    base::Time detection_time =
-        base::Time::Now() - base::TimeDelta::FromDays(3);
+    base::Time detection_time = base::Time::Now() - base::Days(3);
     RelaunchRecommendedBubbleView::ShowBubble(browser(), detection_time,
                                               base::DoNothing());
   }
diff --git a/chrome/browser/ui/views/relaunch_notification/relaunch_recommended_timer.cc b/chrome/browser/ui/views/relaunch_notification/relaunch_recommended_timer.cc
index 2e68456..b429aec 100644
--- a/chrome/browser/ui/views/relaunch_notification/relaunch_recommended_timer.cc
+++ b/chrome/browser/ui/views/relaunch_notification/relaunch_recommended_timer.cc
@@ -30,8 +30,7 @@
   // Refresh at the next day boundary.
   const base::Time now = base::Time::Now();
   const base::TimeDelta elapsed = now - upgrade_detected_time_;
-  const base::TimeDelta delta =
-      base::TimeDelta::FromDays(elapsed.InDays() + 1) - elapsed;
+  const base::TimeDelta delta = base::Days(elapsed.InDays() + 1) - elapsed;
 
   refresh_timer_.Start(FROM_HERE, now + delta, this,
                        &RelaunchRecommendedTimer::OnTitleRefresh);
diff --git a/chrome/browser/ui/views/relaunch_notification/relaunch_required_dialog_view_browsertest.cc b/chrome/browser/ui/views/relaunch_notification/relaunch_required_dialog_view_browsertest.cc
index 0ce8cc3..c6ecb8b 100644
--- a/chrome/browser/ui/views/relaunch_notification/relaunch_required_dialog_view_browsertest.cc
+++ b/chrome/browser/ui/views/relaunch_notification/relaunch_required_dialog_view_browsertest.cc
@@ -22,7 +22,7 @@
 
   // DialogBrowserTest:
   void ShowUi(const std::string& name) override {
-    base::Time deadline = base::Time::Now() + base::TimeDelta::FromDays(3);
+    base::Time deadline = base::Time::Now() + base::Days(3);
     RelaunchRequiredDialogView::Show(browser(), deadline, base::DoNothing());
   }
 };
diff --git a/chrome/browser/ui/views/relaunch_notification/relaunch_required_timer_internal.cc b/chrome/browser/ui/views/relaunch_notification/relaunch_required_timer_internal.cc
index b42ab6b..73366a07 100644
--- a/chrome/browser/ui/views/relaunch_notification/relaunch_required_timer_internal.cc
+++ b/chrome/browser/ui/views/relaunch_notification/relaunch_required_timer_internal.cc
@@ -10,40 +10,33 @@
 
 base::TimeDelta ComputeDeadlineDelta(base::TimeDelta deadline_offset) {
   // Round deadline_offset to the nearest second for the computations below.
-  deadline_offset =
-      base::TimeDelta::FromSeconds(std::round(deadline_offset.InSecondsF()));
+  deadline_offset = base::Seconds(std::round(deadline_offset.InSecondsF()));
 
   // At/above 47.5 hours, round up to showing N days (min 2).
   // TODO(grt): Explore ways to make this more obvious by way of new methods in
   // base::TimeDelta (e.g., float variants of FromXXX and rounding variants of
   // InXXX).
-  static constexpr base::TimeDelta kMinDaysDelta =
-      base::TimeDelta::FromMinutes(47 * 60 + 30);
+  static constexpr base::TimeDelta kMinDaysDelta = base::Minutes(47 * 60 + 30);
   // At/above 59.5 minutes, round up to showing N hours (min 1).
-  static constexpr base::TimeDelta kMinHoursDelta =
-      base::TimeDelta::FromSeconds(59 * 60 + 30);
+  static constexpr base::TimeDelta kMinHoursDelta = base::Seconds(59 * 60 + 30);
   // At/above 59.5 seconds, round up to showing N minutes (min 1).
   static constexpr base::TimeDelta kMinMinutesDelta =
-      base::TimeDelta::FromMilliseconds(59 * 1000 + 500);
+      base::Milliseconds(59 * 1000 + 500);
 
   // Round based on the time scale.
   if (deadline_offset >= kMinDaysDelta) {
-    return base::TimeDelta::FromDays(
-        (deadline_offset + base::TimeDelta::FromHours(12)).InDays());
+    return base::Days((deadline_offset + base::Hours(12)).InDays());
   }
 
   if (deadline_offset >= kMinHoursDelta) {
-    return base::TimeDelta::FromHours(
-        (deadline_offset + base::TimeDelta::FromMinutes(30)).InHours());
+    return base::Hours((deadline_offset + base::Minutes(30)).InHours());
   }
 
   if (deadline_offset >= kMinMinutesDelta) {
-    return base::TimeDelta::FromMinutes(
-        (deadline_offset + base::TimeDelta::FromSeconds(30)).InMinutes());
+    return base::Minutes((deadline_offset + base::Seconds(30)).InMinutes());
   }
 
-  return base::TimeDelta::FromSeconds(
-      (deadline_offset + base::TimeDelta::FromMilliseconds(500)).InSeconds());
+  return base::Seconds((deadline_offset + base::Milliseconds(500)).InSeconds());
 }
 
 base::TimeDelta ComputeNextRefreshDelta(base::TimeDelta deadline_offset) {
@@ -56,22 +49,20 @@
   // next granular form of units (e.g., 2 days to 47 hours).
   // TODO(grt): Find a way to reduce duplication with the constants in
   // ComputeDeadlineDelta once https://crbug.com/761570 is resolved.
-  static constexpr base::TimeDelta kMinDays = base::TimeDelta::FromDays(2);
-  static constexpr base::TimeDelta kMinHours = base::TimeDelta::FromHours(1);
-  static constexpr base::TimeDelta kMinMinutes =
-      base::TimeDelta::FromMinutes(1);
-  static constexpr base::TimeDelta kMinSeconds =
-      base::TimeDelta::FromSeconds(1);
+  static constexpr base::TimeDelta kMinDays = base::Days(2);
+  static constexpr base::TimeDelta kMinHours = base::Hours(1);
+  static constexpr base::TimeDelta kMinMinutes = base::Minutes(1);
+  static constexpr base::TimeDelta kMinSeconds = base::Seconds(1);
 
   base::TimeDelta delta;
   if (rounded_offset > kMinDays)
-    delta = base::TimeDelta::FromDays(rounded_offset.InDays() - 1);
+    delta = base::Days(rounded_offset.InDays() - 1);
   else if (rounded_offset > kMinHours)
-    delta = base::TimeDelta::FromHours(rounded_offset.InHours() - 1);
+    delta = base::Hours(rounded_offset.InHours() - 1);
   else if (rounded_offset > kMinMinutes)
-    delta = base::TimeDelta::FromMinutes(rounded_offset.InMinutes() - 1);
+    delta = base::Minutes(rounded_offset.InMinutes() - 1);
   else if (rounded_offset > kMinSeconds)
-    delta = base::TimeDelta::FromSeconds(rounded_offset.InSeconds() - 1);
+    delta = base::Seconds(rounded_offset.InSeconds() - 1);
 
   return deadline_offset - delta;
 }
diff --git a/chrome/browser/ui/views/relaunch_notification/relaunch_required_timer_internal_unittest.cc b/chrome/browser/ui/views/relaunch_notification/relaunch_required_timer_internal_unittest.cc
index 720a5d3c..2cee2b9 100644
--- a/chrome/browser/ui/views/relaunch_notification/relaunch_required_timer_internal_unittest.cc
+++ b/chrome/browser/ui/views/relaunch_notification/relaunch_required_timer_internal_unittest.cc
@@ -9,117 +9,98 @@
 
 TEST(RelaunchRequiredTimerTest, ComputeDeadlineDelta) {
   // A tiny bit over three days: round to three days.
-  EXPECT_EQ(
-      relaunch_notification::ComputeDeadlineDelta(
-          base::TimeDelta::FromDays(3) + base::TimeDelta::FromSecondsD(0.1)),
-      base::TimeDelta::FromDays(3));
+  EXPECT_EQ(relaunch_notification::ComputeDeadlineDelta(base::Days(3) +
+                                                        base::Seconds(0.1)),
+            base::Days(3));
   // Exactly three days: three days.
-  EXPECT_EQ(
-      relaunch_notification::ComputeDeadlineDelta(base::TimeDelta::FromDays(3)),
-      base::TimeDelta::FromDays(3));
+  EXPECT_EQ(relaunch_notification::ComputeDeadlineDelta(base::Days(3)),
+            base::Days(3));
   // Almost three days: round to three days.
-  EXPECT_EQ(relaunch_notification::ComputeDeadlineDelta(
-                base::TimeDelta::FromDays(3) - base::TimeDelta::FromHours(1)),
-            base::TimeDelta::FromDays(3));
+  EXPECT_EQ(relaunch_notification::ComputeDeadlineDelta(base::Days(3) -
+                                                        base::Hours(1)),
+            base::Days(3));
   // Just shy of two days: round up to two days.
-  EXPECT_EQ(relaunch_notification::ComputeDeadlineDelta(
-                base::TimeDelta::FromDays(2) - base::TimeDelta::FromMinutes(1)),
-            base::TimeDelta::FromDays(2));
+  EXPECT_EQ(relaunch_notification::ComputeDeadlineDelta(base::Days(2) -
+                                                        base::Minutes(1)),
+            base::Days(2));
   // A bit over 47 hours: round down to 47 hours.
-  EXPECT_EQ(
-      relaunch_notification::ComputeDeadlineDelta(
-          base::TimeDelta::FromDays(2) - base::TimeDelta::FromMinutes(45)),
-      base::TimeDelta::FromHours(47));
+  EXPECT_EQ(relaunch_notification::ComputeDeadlineDelta(base::Days(2) -
+                                                        base::Minutes(45)),
+            base::Hours(47));
   // Less than one and a half hours: round down to one hour.
-  EXPECT_EQ(
-      relaunch_notification::ComputeDeadlineDelta(
-          base::TimeDelta::FromHours(1) + base::TimeDelta::FromMinutes(23)),
-      base::TimeDelta::FromHours(1));
+  EXPECT_EQ(relaunch_notification::ComputeDeadlineDelta(base::Hours(1) +
+                                                        base::Minutes(23)),
+            base::Hours(1));
   // Exactly one hour: one hour.
-  EXPECT_EQ(relaunch_notification::ComputeDeadlineDelta(
-                base::TimeDelta::FromHours(1)),
-            base::TimeDelta::FromHours(1));
+  EXPECT_EQ(relaunch_notification::ComputeDeadlineDelta(base::Hours(1)),
+            base::Hours(1));
   // A bit over three minutes: round down to three minutes.
-  EXPECT_EQ(
-      relaunch_notification::ComputeDeadlineDelta(
-          base::TimeDelta::FromMinutes(3) + base::TimeDelta::FromSeconds(12)),
-      base::TimeDelta::FromMinutes(3));
+  EXPECT_EQ(relaunch_notification::ComputeDeadlineDelta(base::Minutes(3) +
+                                                        base::Seconds(12)),
+            base::Minutes(3));
   // Exactly two minutes: two minutes.
-  EXPECT_EQ(relaunch_notification::ComputeDeadlineDelta(
-                base::TimeDelta::FromMinutes(2)),
-            base::TimeDelta::FromMinutes(2));
+  EXPECT_EQ(relaunch_notification::ComputeDeadlineDelta(base::Minutes(2)),
+            base::Minutes(2));
   // Nearly one minute: one minute.
   EXPECT_EQ(relaunch_notification::ComputeDeadlineDelta(
-                base::TimeDelta::FromMilliseconds(60 * 1000 - 250)),
-            base::TimeDelta::FromMinutes(1));
+                base::Milliseconds(60 * 1000 - 250)),
+            base::Minutes(1));
   // Just over two seconds: two seconds.
   EXPECT_EQ(relaunch_notification::ComputeDeadlineDelta(
-                base::TimeDelta::FromMilliseconds(2 * 1000 + 250)),
-            base::TimeDelta::FromSeconds(2));
+                base::Milliseconds(2 * 1000 + 250)),
+            base::Seconds(2));
   // Exactly one second: one second.
-  EXPECT_EQ(relaunch_notification::ComputeDeadlineDelta(
-                base::TimeDelta::FromSeconds(1)),
-            base::TimeDelta::FromSeconds(1));
+  EXPECT_EQ(relaunch_notification::ComputeDeadlineDelta(base::Seconds(1)),
+            base::Seconds(1));
   // Next to nothing: zero.
-  EXPECT_EQ(relaunch_notification::ComputeDeadlineDelta(
-                base::TimeDelta::FromMilliseconds(250)),
-            base::TimeDelta());
+  EXPECT_EQ(
+      relaunch_notification::ComputeDeadlineDelta(base::Milliseconds(250)),
+      base::TimeDelta());
 }
 
 TEST(RelaunchRequiredTimerTest, ComputeNextRefreshDelta) {
   // Over three days: align to the next smallest day boundary.
-  EXPECT_EQ(
-      relaunch_notification::ComputeNextRefreshDelta(
-          base::TimeDelta::FromDays(3) + base::TimeDelta::FromSecondsD(0.1)),
-      base::TimeDelta::FromDays(1) + base::TimeDelta::FromSecondsD(0.1));
+  EXPECT_EQ(relaunch_notification::ComputeNextRefreshDelta(base::Days(3) +
+                                                           base::Seconds(0.1)),
+            base::Days(1) + base::Seconds(0.1));
   // Exactly three days: align to the next smallest day boundary.
-  EXPECT_EQ(relaunch_notification::ComputeNextRefreshDelta(
-                base::TimeDelta::FromDays(3)),
-            base::TimeDelta::FromDays(1));
+  EXPECT_EQ(relaunch_notification::ComputeNextRefreshDelta(base::Days(3)),
+            base::Days(1));
   // Almost three days: align to two days.
-  EXPECT_EQ(relaunch_notification::ComputeNextRefreshDelta(
-                base::TimeDelta::FromDays(3) - base::TimeDelta::FromHours(1)),
-            base::TimeDelta::FromHours(23));
+  EXPECT_EQ(relaunch_notification::ComputeNextRefreshDelta(base::Days(3) -
+                                                           base::Hours(1)),
+            base::Hours(23));
   // A bit over two days: align to 47 hours.
-  EXPECT_EQ(relaunch_notification::ComputeNextRefreshDelta(
-                base::TimeDelta::FromDays(2) + base::TimeDelta::FromHours(1)),
-            base::TimeDelta::FromHours(2));
+  EXPECT_EQ(relaunch_notification::ComputeNextRefreshDelta(base::Days(2) +
+                                                           base::Hours(1)),
+            base::Hours(2));
   // Exactly two days: align to 47 hours.
-  EXPECT_EQ(relaunch_notification::ComputeNextRefreshDelta(
-                base::TimeDelta::FromDays(2)),
-            base::TimeDelta::FromHours(1));
+  EXPECT_EQ(relaunch_notification::ComputeNextRefreshDelta(base::Days(2)),
+            base::Hours(1));
   // Less than one and a half hours: align to 59 minutes.
-  EXPECT_EQ(
-      relaunch_notification::ComputeNextRefreshDelta(
-          base::TimeDelta::FromHours(1) + base::TimeDelta::FromMinutes(23)),
-      base::TimeDelta::FromMinutes(24));
+  EXPECT_EQ(relaunch_notification::ComputeNextRefreshDelta(base::Hours(1) +
+                                                           base::Minutes(23)),
+            base::Minutes(24));
   // Exactly one hour: align to 59 minutes.
-  EXPECT_EQ(relaunch_notification::ComputeNextRefreshDelta(
-                base::TimeDelta::FromHours(1)),
-            base::TimeDelta::FromMinutes(1));
+  EXPECT_EQ(relaunch_notification::ComputeNextRefreshDelta(base::Hours(1)),
+            base::Minutes(1));
   // Between one and two minutes: align to 59 seconds.
-  EXPECT_EQ(
-      relaunch_notification::ComputeNextRefreshDelta(
-          base::TimeDelta::FromMinutes(1) + base::TimeDelta::FromSeconds(12)),
-      base::TimeDelta::FromSeconds(13));
+  EXPECT_EQ(relaunch_notification::ComputeNextRefreshDelta(base::Minutes(1) +
+                                                           base::Seconds(12)),
+            base::Seconds(13));
   // Exactly one minute: align to 59 seconds.
-  EXPECT_EQ(relaunch_notification::ComputeNextRefreshDelta(
-                base::TimeDelta::FromMinutes(1)),
-            base::TimeDelta::FromSeconds(1));
+  EXPECT_EQ(relaunch_notification::ComputeNextRefreshDelta(base::Minutes(1)),
+            base::Seconds(1));
   // One and a half seconds: align to 1 second.
-  EXPECT_EQ(relaunch_notification::ComputeNextRefreshDelta(
-                base::TimeDelta::FromSecondsD(1.5)),
-            base::TimeDelta::FromSecondsD(0.5));
+  EXPECT_EQ(relaunch_notification::ComputeNextRefreshDelta(base::Seconds(1.5)),
+            base::Seconds(0.5));
   // Just over one second: align to 0 seconds.
-  EXPECT_EQ(relaunch_notification::ComputeNextRefreshDelta(
-                base::TimeDelta::FromSecondsD(1.1)),
-            base::TimeDelta::FromSecondsD(1.1));
+  EXPECT_EQ(relaunch_notification::ComputeNextRefreshDelta(base::Seconds(1.1)),
+            base::Seconds(1.1));
   // Exactly one second: align to 0 seconds.
-  EXPECT_EQ(relaunch_notification::ComputeNextRefreshDelta(
-                base::TimeDelta::FromSeconds(1)),
-            base::TimeDelta::FromSeconds(1));
+  EXPECT_EQ(relaunch_notification::ComputeNextRefreshDelta(base::Seconds(1)),
+            base::Seconds(1));
   // Less than one second: align to 0 seconds.
-  EXPECT_EQ(relaunch_notification::ComputeNextRefreshDelta(
-                base::TimeDelta::FromSecondsD(0.1)),
-            base::TimeDelta::FromSecondsD(0.1));
+  EXPECT_EQ(relaunch_notification::ComputeNextRefreshDelta(base::Seconds(0.1)),
+            base::Seconds(0.1));
 }
diff --git a/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_bubble_view_impl_unittest.cc b/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_bubble_view_impl_unittest.cc
index 194cfa6..62d9257 100644
--- a/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_bubble_view_impl_unittest.cc
+++ b/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_bubble_view_impl_unittest.cc
@@ -27,15 +27,14 @@
 
   std::vector<TargetDeviceInfo> GetValidDevices() const override {
     base::SimpleTestClock clock;
-    return {{"Device_1", "Device_1", "device_guid_1",
-             sync_pb::SyncEnums_DeviceType_TYPE_LINUX,
-             clock.Now() - base::TimeDelta::FromDays(0)},
-            {"Device_2", "Device_2", "device_guid_2",
-             sync_pb::SyncEnums_DeviceType_TYPE_WIN,
-             clock.Now() - base::TimeDelta::FromDays(1)},
-            {"Device_3", "Device_3", "device_guid_3",
-             sync_pb::SyncEnums_DeviceType_TYPE_PHONE,
-             clock.Now() - base::TimeDelta::FromDays(5)}};
+    return {
+        {"Device_1", "Device_1", "device_guid_1",
+         sync_pb::SyncEnums_DeviceType_TYPE_LINUX, clock.Now() - base::Days(0)},
+        {"Device_2", "Device_2", "device_guid_2",
+         sync_pb::SyncEnums_DeviceType_TYPE_WIN, clock.Now() - base::Days(1)},
+        {"Device_3", "Device_3", "device_guid_3",
+         sync_pb::SyncEnums_DeviceType_TYPE_PHONE,
+         clock.Now() - base::Days(5)}};
   }
 
   MOCK_METHOD2(OnDeviceSelected,
diff --git a/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_toolbar_bubble_view.cc b/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_toolbar_bubble_view.cc
index 468a5230..2c1ecb7d 100644
--- a/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_toolbar_bubble_view.cc
+++ b/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_toolbar_bubble_view.cc
@@ -107,7 +107,7 @@
                       views::LayoutAlignment::kEnd);
   AddChildView(std::move(button));
 
-  base::TimeDelta kTimeoutMs = base::TimeDelta::FromMilliseconds(30000);
+  base::TimeDelta kTimeoutMs = base::Milliseconds(30000);
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&SendTabToSelfToolbarBubbleView::Timeout,
diff --git a/chrome/browser/ui/views/status_bubble_views.cc b/chrome/browser/ui/views/status_bubble_views.cc
index 97c7162..910d7a2b 100644
--- a/chrome/browser/ui/views/status_bubble_views.cc
+++ b/chrome/browser/ui/views/status_bubble_views.cc
@@ -72,22 +72,20 @@
 
 // Delays before we start hiding or showing the bubble after we receive a
 // show or hide request.
-constexpr auto kShowDelay = base::TimeDelta::FromMilliseconds(80);
-constexpr auto kHideDelay = base::TimeDelta::FromMilliseconds(250);
+constexpr auto kShowDelay = base::Milliseconds(80);
+constexpr auto kHideDelay = base::Milliseconds(250);
 
 // How long each fade should last for.
-constexpr auto kShowFadeDuration = base::TimeDelta::FromMilliseconds(120);
-constexpr auto kHideFadeDuration = base::TimeDelta::FromMilliseconds(200);
+constexpr auto kShowFadeDuration = base::Milliseconds(120);
+constexpr auto kHideFadeDuration = base::Milliseconds(200);
 constexpr int kFramerate = 25;
 
 // How long each expansion step should take.
-constexpr auto kMinExpansionStepDuration =
-    base::TimeDelta::FromMilliseconds(20);
-constexpr auto kMaxExpansionStepDuration =
-    base::TimeDelta::FromMilliseconds(150);
+constexpr auto kMinExpansionStepDuration = base::Milliseconds(20);
+constexpr auto kMaxExpansionStepDuration = base::Milliseconds(150);
 
 // How long to delay before destroying an unused status bubble widget.
-constexpr auto kDestroyPopupDelay = base::TimeDelta::FromSeconds(10);
+constexpr auto kDestroyPopupDelay = base::Seconds(10);
 
 const gfx::FontList& GetFont() {
   return views::style::GetFont(views::style::CONTEXT_LABEL,
@@ -865,7 +863,7 @@
           FROM_HERE,
           base::BindOnce(&StatusBubbleViews::ExpandBubble,
                          expand_timer_factory_.GetWeakPtr()),
-          base::TimeDelta::FromMilliseconds(kExpandHoverDelayMS));
+          base::Milliseconds(kExpandHoverDelayMS));
     }
     // An URL is always treated as a left-to-right string. On right-to-left UIs
     // we need to explicitly mark the URL as LTR to make sure it is displayed
diff --git a/chrome/browser/ui/views/status_bubble_views_browsertest.cc b/chrome/browser/ui/views/status_bubble_views_browsertest.cc
index 600371c..6bc28f5 100644
--- a/chrome/browser/ui/views/status_bubble_views_browsertest.cc
+++ b/chrome/browser/ui/views/status_bubble_views_browsertest.cc
@@ -71,7 +71,7 @@
   ASSERT_TRUE(GetShowHideAnimationForTesting());
   // Advance well past the time for the animation to ensure it completes.
   static_cast<gfx::AnimationContainerElement*>(GetShowHideAnimationForTesting())
-      ->Step(base::TimeTicks::Now() + base::TimeDelta::FromMinutes(1));
+      ->Step(base::TimeTicks::Now() + base::Minutes(1));
   // Widget should still exist.
   ASSERT_TRUE(GetWidget());
   EXPECT_FALSE(widget->IsVisible());
@@ -111,7 +111,7 @@
   ASSERT_TRUE(GetShowHideAnimationForTesting());
   // Advance well past the time for the animation to ensure it completes.
   static_cast<gfx::AnimationContainerElement*>(GetShowHideAnimationForTesting())
-      ->Step(base::TimeTicks::Now() + base::TimeDelta::FromMinutes(1));
+      ->Step(base::TimeTicks::Now() + base::Minutes(1));
   // Widget should still exist.
   ASSERT_TRUE(GetWidget());
   EXPECT_FALSE(widget->IsVisible());
diff --git a/chrome/browser/ui/views/tab_sharing/tab_sharing_ui_views.cc b/chrome/browser/ui/views/tab_sharing/tab_sharing_ui_views.cc
index 7675b2d2..1bac5f51 100644
--- a/chrome/browser/ui/views/tab_sharing/tab_sharing_ui_views.cc
+++ b/chrome/browser/ui/views/tab_sharing/tab_sharing_ui_views.cc
@@ -483,7 +483,7 @@
       FROM_HERE,
       base::BindOnce(&TabSharingUIViews::FaviconPeriodicUpdate,
                      weak_factory_.GetWeakPtr(), share_session_seq_num),
-      base::TimeDelta::FromMilliseconds(500));
+      base::Milliseconds(500));
 }
 
 void TabSharingUIViews::RefreshFavicons() {
diff --git a/chrome/browser/ui/views/tabs/alert_indicator.cc b/chrome/browser/ui/views/tabs/alert_indicator.cc
index 4a6f6c5..1839e88 100644
--- a/chrome/browser/ui/views/tabs/alert_indicator.cc
+++ b/chrome/browser/ui/views/tabs/alert_indicator.cc
@@ -23,16 +23,14 @@
 // Fade-in/out duration for the tab indicator animations.  Fade-in is quick to
 // immediately notify the user.  Fade-out is more gradual, so that the user has
 // a chance of finding a tab that has quickly "blipped" on and off.
-constexpr auto kIndicatorFadeInDuration =
-    base::TimeDelta::FromMilliseconds(200);
-constexpr auto kIndicatorFadeOutDuration =
-    base::TimeDelta::FromMilliseconds(1000);
+constexpr auto kIndicatorFadeInDuration = base::Milliseconds(200);
+constexpr auto kIndicatorFadeOutDuration = base::Milliseconds(1000);
 
 // Interval between frame updates of the tab indicator animations.  This is not
 // the usual 60 FPS because a trade-off must be made between tab UI animation
 // smoothness and media recording/playback performance on low-end hardware.
 constexpr base::TimeDelta kIndicatorFrameInterval =
-    base::TimeDelta::FromMilliseconds(50);  // 20 FPS
+    base::Milliseconds(50);  // 20 FPS
 
 std::unique_ptr<gfx::MultiAnimation> CreateTabRecordingIndicatorAnimation() {
   // Number of times the throbber fades in and out. After these cycles a final
diff --git a/chrome/browser/ui/views/tabs/glow_hover_controller.cc b/chrome/browser/ui/views/tabs/glow_hover_controller.cc
index e23edc0a..25d17a2 100644
--- a/chrome/browser/ui/views/tabs/glow_hover_controller.cc
+++ b/chrome/browser/ui/views/tabs/glow_hover_controller.cc
@@ -43,7 +43,7 @@
   switch (style) {
     case TabStyle::ShowHoverStyle::kSubtle:
       opacity_scale_ = subtle_opacity_scale_;
-      animation_.SetSlideDuration(base::TimeDelta::FromMilliseconds(200));
+      animation_.SetSlideDuration(base::Milliseconds(200));
       animation_.SetTweenType(gfx::Tween::EASE_OUT);
       animation_.Show();
       break;
diff --git a/chrome/browser/ui/views/tabs/tab.cc b/chrome/browser/ui/views/tabs/tab.cc
index db85413..b3be9c0 100644
--- a/chrome/browser/ui/views/tabs/tab.cc
+++ b/chrome/browser/ui/views/tabs/tab.cc
@@ -236,7 +236,7 @@
   tab_close_button_observer_ = std::make_unique<TabCloseButtonObserver>(
       this, close_button_, controller_);
 
-  title_animation_.SetDuration(base::TimeDelta::FromMilliseconds(100));
+  title_animation_.SetDuration(base::Milliseconds(100));
 
   // Enable keyboard focus.
   SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
diff --git a/chrome/browser/ui/views/tabs/tab_animation.cc b/chrome/browser/ui/views/tabs/tab_animation.cc
index ca88bf1..9b9ea46 100644
--- a/chrome/browser/ui/views/tabs/tab_animation.cc
+++ b/chrome/browser/ui/views/tabs/tab_animation.cc
@@ -13,7 +13,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kZeroDuration = base::TimeDelta::FromMilliseconds(0);
+constexpr base::TimeDelta kZeroDuration = base::Milliseconds(0);
 
 }  // namespace
 
diff --git a/chrome/browser/ui/views/tabs/tab_animation.h b/chrome/browser/ui/views/tabs/tab_animation.h
index caeb364..7b2b94b 100644
--- a/chrome/browser/ui/views/tabs/tab_animation.h
+++ b/chrome/browser/ui/views/tabs/tab_animation.h
@@ -17,8 +17,7 @@
 // to animate that tab.
 class TabAnimation {
  public:
-  static constexpr base::TimeDelta kAnimationDuration =
-      base::TimeDelta::FromMilliseconds(200);
+  static constexpr base::TimeDelta kAnimationDuration = base::Milliseconds(200);
 
   // Creates a TabAnimation for a tab with no active animations.
   explicit TabAnimation(TabAnimationState static_state);
diff --git a/chrome/browser/ui/views/tabs/tab_drag_controller.cc b/chrome/browser/ui/views/tabs/tab_drag_controller.cc
index 88e93e2..b32b2db1 100644
--- a/chrome/browser/ui/views/tabs/tab_drag_controller.cc
+++ b/chrome/browser/ui/views/tabs/tab_drag_controller.cc
@@ -74,12 +74,10 @@
 
 // Initial delay before moving tabs when the dragged tab is close to the edge of
 // the stacked tabs.
-constexpr auto kMoveAttachedInitialDelay =
-    base::TimeDelta::FromMilliseconds(600);
+constexpr auto kMoveAttachedInitialDelay = base::Milliseconds(600);
 
 // Delay for moving tabs after the initial delay has passed.
-constexpr auto kMoveAttachedSubsequentDelay =
-    base::TimeDelta::FromMilliseconds(300);
+constexpr auto kMoveAttachedSubsequentDelay = base::Milliseconds(300);
 
 // A dragged window is forced to be a bit smaller than maximized bounds during a
 // drag. This prevents the dragged browser widget from getting maximized at
@@ -860,7 +858,7 @@
   }
   if (current_state_ == DragState::kDraggingWindow) {
     bring_to_front_timer_.Start(
-        FROM_HERE, base::TimeDelta::FromMilliseconds(750),
+        FROM_HERE, base::Milliseconds(750),
         base::BindOnce(&TabDragController::BringWindowUnderPointToFront,
                        base::Unretained(this), point_in_screen));
   }
diff --git a/chrome/browser/ui/views/tabs/tab_drag_controller_interactive_uitest.cc b/chrome/browser/ui/views/tabs/tab_drag_controller_interactive_uitest.cc
index 392561d..b8012cf 100644
--- a/chrome/browser/ui/views/tabs/tab_drag_controller_interactive_uitest.cc
+++ b/chrome/browser/ui/views/tabs/tab_drag_controller_interactive_uitest.cc
@@ -582,7 +582,7 @@
           base::BindOnce(&DetachToBrowserTabDragControllerTest::
                              ReleaseInputAfterWindowDetached,
                          base::Unretained(this), first_dragged_tab_width),
-          base::TimeDelta::FromMilliseconds(1));
+          base::Milliseconds(1));
       return;
     }
 
@@ -4498,14 +4498,14 @@
   clock.SetNowTicks(base::TimeTicks::Now());
   ui::SetEventTickClockForTesting(&clock);
   ASSERT_TRUE(PressInput(tab_0_center));
-  clock.Advance(base::TimeDelta::FromMilliseconds(5));
+  clock.Advance(base::Milliseconds(5));
   ASSERT_TRUE(DragInputToNotifyWhenDone(
       tab_0_center + detach, base::BindLambdaForTesting([&]() {
         // Drag down again; this should cause a fling-down event.
-        clock.Advance(base::TimeDelta::FromMilliseconds(5));
+        clock.Advance(base::Milliseconds(5));
         ASSERT_TRUE(DragInputToNotifyWhenDone(
             tab_0_center + detach + detach, base::BindLambdaForTesting([&]() {
-              clock.Advance(base::TimeDelta::FromMilliseconds(5));
+              clock.Advance(base::Milliseconds(5));
               ASSERT_TRUE(ReleaseInput());
             })));
       })));
@@ -4534,11 +4534,11 @@
   clock.SetNowTicks(base::TimeTicks::Now());
   ui::SetEventTickClockForTesting(&clock);
   ASSERT_TRUE(PressInput(tab_0_center));
-  clock.Advance(base::TimeDelta::FromMilliseconds(5));
+  clock.Advance(base::Milliseconds(5));
   ASSERT_TRUE(DragInputToAsync(tab_0_center + detach));
-  clock.Advance(base::TimeDelta::FromMilliseconds(5));
+  clock.Advance(base::Milliseconds(5));
   ASSERT_TRUE(DragInputToAsync(tab_0_center + detach + detach));
-  clock.Advance(base::TimeDelta::FromMilliseconds(2));
+  clock.Advance(base::Milliseconds(2));
   ASSERT_TRUE(ReleaseInput());
   observer.Wait();
 
diff --git a/chrome/browser/ui/views/tabs/tab_hover_card_bubble_view.h b/chrome/browser/ui/views/tabs/tab_hover_card_bubble_view.h
index 16fd889..f55b0e2 100644
--- a/chrome/browser/ui/views/tabs/tab_hover_card_bubble_view.h
+++ b/chrome/browser/ui/views/tabs/tab_hover_card_bubble_view.h
@@ -36,7 +36,7 @@
 class TabHoverCardBubbleView : public views::BubbleDialogDelegateView {
  public:
   static constexpr base::TimeDelta kHoverCardSlideDuration =
-      base::TimeDelta::FromMilliseconds(200);
+      base::Milliseconds(200);
 
   // Helper class used to elide local filenames with a RenderText object that
   // is provided with the correct setup and formatting.
diff --git a/chrome/browser/ui/views/tabs/tab_hover_card_controller.cc b/chrome/browser/ui/views/tabs/tab_hover_card_controller.cc
index 92ce18d..e18659e 100644
--- a/chrome/browser/ui/views/tabs/tab_hover_card_controller.cc
+++ b/chrome/browser/ui/views/tabs/tab_hover_card_controller.cc
@@ -52,7 +52,7 @@
     }
   }
   DCHECK_GE(ms, 0);
-  return base::TimeDelta::FromMilliseconds(ms);
+  return base::Milliseconds(ms);
 }
 
 base::TimeDelta GetShowDelay(int tab_width) {
@@ -79,12 +79,10 @@
   //           |___________________________________________ tab width
   //               |                                |
   //       pinned tab width               standard tab width
-  constexpr base::TimeDelta kMinimumTriggerDelay =
-      base::TimeDelta::FromMilliseconds(300);
+  constexpr base::TimeDelta kMinimumTriggerDelay = base::Milliseconds(300);
   if (tab_width < TabStyle::GetPinnedWidth())
     return kMinimumTriggerDelay;
-  constexpr base::TimeDelta kMaximumTriggerDelay =
-      base::TimeDelta::FromMilliseconds(800);
+  constexpr base::TimeDelta kMaximumTriggerDelay = base::Milliseconds(800);
   double logarithmic_fraction =
       std::log(tab_width - TabStyle::GetPinnedWidth() + 1) /
       std::log(TabStyle::GetStandardWidth() - TabStyle::GetPinnedWidth() + 1);
@@ -92,7 +90,7 @@
   base::TimeDelta delay =
       logarithmic_fraction * scaling_factor + kMinimumTriggerDelay;
   if (tab_width >= TabStyle::GetStandardWidth())
-    delay += base::TimeDelta::FromMilliseconds(max_width_additiona_delay);
+    delay += base::Milliseconds(max_width_additiona_delay);
   return delay;
 }
 
@@ -487,7 +485,7 @@
   // card was last visible then it is shown immediately. This is to account for
   // if hover unintentionally leaves the tab strip.
   constexpr base::TimeDelta kShowWithoutDelayTimeBuffer =
-      base::TimeDelta::FromMilliseconds(300);
+      base::Milliseconds(300);
   base::TimeDelta elapsed_time =
       base::TimeTicks::Now() - last_mouse_exit_timestamp_;
 
diff --git a/chrome/browser/ui/views/tabs/tab_hover_card_metrics.cc b/chrome/browser/ui/views/tabs/tab_hover_card_metrics.cc
index e10e506..0fa1ba8 100644
--- a/chrome/browser/ui/views/tabs/tab_hover_card_metrics.cc
+++ b/chrome/browser/ui/views/tabs/tab_hover_card_metrics.cc
@@ -77,11 +77,10 @@
 #endif
 
 void RecordTimeSinceLastSeenMetric(base::TimeTicks last_seen_time) {
-  constexpr base::TimeDelta kMaxHoverCardReshowTimeDelta =
-      base::TimeDelta::FromSeconds(5);
+  constexpr base::TimeDelta kMaxHoverCardReshowTimeDelta = base::Seconds(5);
   const base::TimeDelta elapsed_time = base::TimeTicks::Now() - last_seen_time;
   constexpr base::TimeDelta kMinHoverCardReshowTimeDelta =
-      base::TimeDelta::FromMilliseconds(1);
+      base::Milliseconds(1);
   if (elapsed_time < kMinHoverCardReshowTimeDelta ||
       elapsed_time > kMaxHoverCardReshowTimeDelta) {
     return;
diff --git a/chrome/browser/ui/views/tabs/tab_hover_card_metrics_unittest.cc b/chrome/browser/ui/views/tabs/tab_hover_card_metrics_unittest.cc
index 2d62be5..84201b2 100644
--- a/chrome/browser/ui/views/tabs/tab_hover_card_metrics_unittest.cc
+++ b/chrome/browser/ui/views/tabs/tab_hover_card_metrics_unittest.cc
@@ -52,12 +52,9 @@
 constexpr int kShortDelayMS = 200;
 constexpr int kMediumDelayMS = 500;
 constexpr int kLongDelayMS = 1000;
-constexpr base::TimeDelta kShortDelay =
-    base::TimeDelta::FromMilliseconds(kShortDelayMS);
-constexpr base::TimeDelta kMediumDelay =
-    base::TimeDelta::FromMilliseconds(kMediumDelayMS);
-constexpr base::TimeDelta kLongDelay =
-    base::TimeDelta::FromMilliseconds(kLongDelayMS);
+constexpr base::TimeDelta kShortDelay = base::Milliseconds(kShortDelayMS);
+constexpr base::TimeDelta kMediumDelay = base::Milliseconds(kMediumDelayMS);
+constexpr base::TimeDelta kLongDelay = base::Milliseconds(kLongDelayMS);
 
 std::string GetFullHistogramName(const char* prefix, size_t tab_count) {
   return TabHoverCardMetrics::GetBucketHistogramName(
diff --git a/chrome/browser/ui/views/tabs/tab_icon.cc b/chrome/browser/ui/views/tabs/tab_icon.cc
index bc40223..fcd1321 100644
--- a/chrome/browser/ui/views/tabs/tab_icon.cc
+++ b/chrome/browser/ui/views/tabs/tab_icon.cc
@@ -53,8 +53,7 @@
                                 public gfx::AnimationDelegate {
  public:
   explicit CrashAnimation(TabIcon* target)
-      : gfx::LinearAnimation(base::TimeDelta::FromSeconds(1), 25, this),
-        target_(target) {}
+      : gfx::LinearAnimation(base::Seconds(1), 25, this), target_(target) {}
   CrashAnimation(const CrashAnimation&) = delete;
   CrashAnimation& operator=(const CrashAnimation&) = delete;
   ~CrashAnimation() override = default;
@@ -79,7 +78,7 @@
 TabIcon::TabIcon()
     : AnimationDelegateViews(this),
       clock_(base::DefaultTickClock::GetInstance()),
-      favicon_fade_in_animation_(base::TimeDelta::FromMilliseconds(250),
+      favicon_fade_in_animation_(base::Milliseconds(250),
                                  gfx::LinearAnimation::kDefaultFrameRate,
                                  this) {
   SetCanProcessEventsWithinSubtree(false);
diff --git a/chrome/browser/ui/views/tabs/tab_strip.cc b/chrome/browser/ui/views/tabs/tab_strip.cc
index c35f1cd..1a6e1003 100644
--- a/chrome/browser/ui/views/tabs/tab_strip.cc
+++ b/chrome/browser/ui/views/tabs/tab_strip.cc
@@ -3140,7 +3140,7 @@
 //
 // TODO(sky): revisit this when touch events are really plumbed through.
 #if !BUILDFLAG(IS_CHROMEOS_ASH)
-  constexpr auto kMouseMoveTime = base::TimeDelta::FromMilliseconds(200);
+  constexpr auto kMouseMoveTime = base::Milliseconds(200);
   constexpr int kMouseMoveCountBeforeConsiderReal = 3;
 #endif
 
@@ -3377,7 +3377,7 @@
 
 void TabStrip::StartResizeLayoutTabsFromTouchTimer() {
   // Amount of time we delay before resizing after a close from a touch.
-  constexpr auto kTouchResizeLayoutTime = base::TimeDelta::FromSeconds(2);
+  constexpr auto kTouchResizeLayoutTime = base::Seconds(2);
 
   resize_layout_timer_.Stop();
   resize_layout_timer_.Start(FROM_HERE, kTouchResizeLayoutTime, this,
diff --git a/chrome/browser/ui/views/tabs/tab_unittest.cc b/chrome/browser/ui/views/tabs/tab_unittest.cc
index c7051dc..d5930bff 100644
--- a/chrome/browser/ui/views/tabs/tab_unittest.cc
+++ b/chrome/browser/ui/views/tabs/tab_unittest.cc
@@ -163,7 +163,7 @@
  public:
   TabTest() {
     // Prevent the fake clock from starting at 0 which is the null time.
-    fake_clock_.Advance(base::TimeDelta::FromMilliseconds(2000));
+    fake_clock_.Advance(base::Milliseconds(2000));
   }
   ~TabTest() override {}
 
@@ -595,11 +595,11 @@
   EXPECT_TRUE(icon->GetShowingLoadingAnimation());
   EXPECT_TRUE(icon->layer());
   tab_controller->set_paint_throbber_to_layer(false);
-  tab->StepLoadingAnimation(base::TimeDelta::FromMilliseconds(100));
+  tab->StepLoadingAnimation(base::Milliseconds(100));
   EXPECT_TRUE(icon->GetShowingLoadingAnimation());
   EXPECT_FALSE(icon->layer());
   tab_controller->set_paint_throbber_to_layer(true);
-  tab->StepLoadingAnimation(base::TimeDelta::FromMilliseconds(100));
+  tab->StepLoadingAnimation(base::Milliseconds(100));
   EXPECT_TRUE(icon->GetShowingLoadingAnimation());
   EXPECT_TRUE(icon->layer());
   data.network_state = TabNetworkState::kNone;
diff --git a/chrome/browser/ui/views/toolbar/chrome_labs_bubble_view_unittest.cc b/chrome/browser/ui/views/toolbar/chrome_labs_bubble_view_unittest.cc
index ff8e7bd..200fe21 100644
--- a/chrome/browser/ui/views/toolbar/chrome_labs_bubble_view_unittest.cc
+++ b/chrome/browser/ui/views/toolbar/chrome_labs_bubble_view_unittest.cc
@@ -455,7 +455,7 @@
 TEST_F(ChromeLabsBubbleTest, NewBadgeTest) {
   EXPECT_TRUE(first_lab_item()->GetNewBadgeForTesting()->GetDisplayNewBadge());
   ChromeLabsBubbleView::Hide();
-  constexpr base::TimeDelta kDelay = base::TimeDelta::FromDays(8);
+  constexpr base::TimeDelta kDelay = base::Days(8);
   task_environment()->AdvanceClock(kDelay);
   ChromeLabsBubbleView::Show(chrome_labs_button(), browser_view()->browser(),
                              chrome_labs_model(),
diff --git a/chrome/browser/ui/views/toolbar/reload_button.cc b/chrome/browser/ui/views/toolbar/reload_button.cc
index 73d9b015..e1426b5e 100644
--- a/chrome/browser/ui/views/toolbar/reload_button.cc
+++ b/chrome/browser/ui/views/toolbar/reload_button.cc
@@ -37,8 +37,8 @@
                     nullptr),
       command_updater_(command_updater),
       double_click_timer_delay_(
-          base::TimeDelta::FromMilliseconds(views::GetDoubleClickInterval())),
-      mode_switch_timer_delay_(base::TimeDelta::FromMilliseconds(1350)) {
+          base::Milliseconds(views::GetDoubleClickInterval())),
+      mode_switch_timer_delay_(base::Milliseconds(1350)) {
   SetVisibleMode(Mode::kReload);
   SetTriggerableEventFlags(ui::EF_LEFT_MOUSE_BUTTON |
                            ui::EF_MIDDLE_MOUSE_BUTTON);
diff --git a/chrome/browser/ui/views/toolbar/toolbar_button.cc b/chrome/browser/ui/views/toolbar/toolbar_button.cc
index c632a10..82b3370 100644
--- a/chrome/browser/ui/views/toolbar/toolbar_button.cc
+++ b/chrome/browser/ui/views/toolbar/toolbar_button.cc
@@ -64,8 +64,7 @@
 }
 
 // Cycle duration of ink drop pulsing animation used for in-product help.
-constexpr base::TimeDelta kFeaturePromoPulseDuration =
-    base::TimeDelta::FromMilliseconds(800);
+constexpr base::TimeDelta kFeaturePromoPulseDuration = base::Milliseconds(800);
 
 // Max inset for pulsing animation.
 constexpr float kFeaturePromoPulseInsetDip = 3.0f;
@@ -480,7 +479,7 @@
         base::BindOnce(&ToolbarButton::ShowDropDownMenu,
                        show_menu_factory_.GetWeakPtr(),
                        ui::GetMenuSourceTypeForEvent(event)),
-        base::TimeDelta::FromMilliseconds(500));
+        base::Milliseconds(500));
   }
 
   return LabelButton::OnMousePressed(event);
@@ -717,8 +716,7 @@
 // to make a big contrast difference.
 // TODO(crbug.com/967317): This needs to be consistent with the duration of the
 // border animation in ToolbarIconContainerView.
-constexpr base::TimeDelta kHighlightAnimationDuration =
-    base::TimeDelta::FromMilliseconds(300);
+constexpr base::TimeDelta kHighlightAnimationDuration = base::Milliseconds(300);
 constexpr SkAlpha kBackgroundBaseLayerAlpha = 204;
 
 SkColor FadeWithAnimation(SkColor color, const gfx::Animation& animation) {
diff --git a/chrome/browser/ui/views/toolbar/webui_tab_counter_button.cc b/chrome/browser/ui/views/toolbar/webui_tab_counter_button.cc
index cea57e3..063b813 100644
--- a/chrome/browser/ui/views/toolbar/webui_tab_counter_button.cc
+++ b/chrome/browser/ui/views/toolbar/webui_tab_counter_button.cc
@@ -68,8 +68,7 @@
 // will be clipped by the border and not visible.
 constexpr int kOffscreenLabelDistance = 16;
 
-constexpr base::TimeDelta kFirstPartDuration =
-    base::TimeDelta::FromMilliseconds(100);
+constexpr base::TimeDelta kFirstPartDuration = base::Milliseconds(100);
 
 // Returns whether |change| to |tab_strip_mode| should start the tab counter
 // throbber animation.
@@ -251,15 +250,15 @@
           // Stay in place.
           gfx::MultiAnimation::Part(kFirstPartDuration, gfx::Tween::Type::ZERO),
           // Swap out to the new label.
-          gfx::MultiAnimation::Part(base::TimeDelta::FromMilliseconds(200),
+          gfx::MultiAnimation::Part(base::Milliseconds(200),
                                     gfx::Tween::Type::EASE_IN_OUT)}),
       border_view_(border_view),
       border_animation_(std::vector<gfx::MultiAnimation::Part>{
           gfx::MultiAnimation::Part(kFirstPartDuration,
                                     gfx::Tween::Type::EASE_OUT),
-          gfx::MultiAnimation::Part(base::TimeDelta::FromMilliseconds(150),
+          gfx::MultiAnimation::Part(base::Milliseconds(150),
                                     gfx::Tween::Type::EASE_IN_OUT),
-          gfx::MultiAnimation::Part(base::TimeDelta::FromMilliseconds(50),
+          gfx::MultiAnimation::Part(base::Milliseconds(50),
                                     gfx::Tween::Type::EASE_IN_OUT)}),
       throbber_(throbber) {
   label_animation_.set_delegate(this);
@@ -290,8 +289,8 @@
     // of the throbber is just to indicate to the user that some activity has
     // happened in the background, which may not otherwise have been obvious
     // because the tab strip is hidden in this mode.
-    throbber_timer_.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(1000),
-                          throbber_, &views::Throbber::Stop);
+    throbber_timer_.Start(FROM_HERE, base::Milliseconds(1000), throbber_,
+                          &views::Throbber::Stop);
 
     pending_throbber_ = false;
   }
diff --git a/chrome/browser/ui/views/user_education/feature_promo_bubble_view.cc b/chrome/browser/ui/views/user_education/feature_promo_bubble_view.cc
index 66c65355..0f0d4dba 100644
--- a/chrome/browser/ui/views/user_education/feature_promo_bubble_view.cc
+++ b/chrome/browser/ui/views/user_education/feature_promo_bubble_view.cc
@@ -62,11 +62,11 @@
 
 // The amount of time the promo should stay onscreen if the user
 // never hovers over it.
-constexpr base::TimeDelta kDelayDefault = base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kDelayDefault = base::Seconds(10);
 
 // The amount of time the promo should stay onscreen after the
 // user stops hovering over it.
-constexpr base::TimeDelta kDelayShort = base::TimeDelta::FromSeconds(3);
+constexpr base::TimeDelta kDelayShort = base::Seconds(3);
 
 // Maximum width of the bubble. Longer strings will cause wrapping.
 constexpr int kBubbleMaxWidthDip = 340;
diff --git a/chrome/browser/ui/views/user_education/feature_promo_bubble_view_unittest.cc b/chrome/browser/ui/views/user_education/feature_promo_bubble_view_unittest.cc
index 0464bec..c8b2f27 100644
--- a/chrome/browser/ui/views/user_education/feature_promo_bubble_view_unittest.cc
+++ b/chrome/browser/ui/views/user_education/feature_promo_bubble_view_unittest.cc
@@ -85,7 +85,7 @@
   MockWidgetObserver dismiss_observer;
   EXPECT_CALL(dismiss_observer, OnWidgetClosing(testing::_)).Times(1);
   bubble->GetWidget()->AddObserver(&dismiss_observer);
-  task_environment()->FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_environment()->FastForwardBy(base::Minutes(1));
   task_environment()->RunUntilIdle();
 }
 
@@ -95,7 +95,7 @@
   MockWidgetObserver dismiss_observer;
   EXPECT_CALL(dismiss_observer, OnWidgetClosing(testing::_)).Times(0);
   bubble->GetWidget()->AddObserver(&dismiss_observer);
-  task_environment()->FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_environment()->FastForwardBy(base::Minutes(1));
   task_environment()->RunUntilIdle();
   // WidgetObserver checks if it is in an observer list in its destructor.
   // Need to remove it from widget manually.
@@ -107,14 +107,14 @@
 
   FeaturePromoBubbleView::CreateParams params =
       GetBubbleParams(base::RepeatingClosure());
-  params.timeout_no_interaction = base::TimeDelta::FromSeconds(10);
-  params.timeout_after_interaction = base::TimeDelta::FromSeconds(10);
+  params.timeout_no_interaction = base::Seconds(10);
+  params.timeout_after_interaction = base::Seconds(10);
   params.timeout_callback = timeout_callback.Get();
 
   FeaturePromoBubbleView::Create(std::move(params));
 
   EXPECT_CALL(timeout_callback, Run()).Times(1);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment()->FastForwardBy(base::Seconds(10));
 }
 
 TEST_F(FeaturePromoBubbleViewTest, NoTimeoutIfSetToZero) {
@@ -131,7 +131,7 @@
   EXPECT_CALL(timeout_callback, Run()).Times(0);
 
   // Fast forward by a long time to check bubble does not time out.
-  task_environment()->FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment()->FastForwardBy(base::Hours(1));
 }
 
 TEST_F(FeaturePromoBubbleViewTest, RespectsProvidedTimeoutBeforeHover) {
@@ -139,17 +139,17 @@
 
   FeaturePromoBubbleView::CreateParams params =
       GetBubbleParams(base::RepeatingClosure());
-  params.timeout_no_interaction = base::TimeDelta::FromSeconds(20);
-  params.timeout_after_interaction = base::TimeDelta::FromSeconds(5);
+  params.timeout_no_interaction = base::Seconds(20);
+  params.timeout_after_interaction = base::Seconds(5);
   params.timeout_callback = timeout_callback.Get();
 
   FeaturePromoBubbleView::Create(std::move(params));
 
   EXPECT_CALL(timeout_callback, Run()).Times(0);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(19));
+  task_environment()->FastForwardBy(base::Seconds(19));
 
   EXPECT_CALL(timeout_callback, Run()).Times(1);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
 }
 
 TEST_F(FeaturePromoBubbleViewTest, RespectsProvidedTimeoutAfterHover) {
@@ -157,14 +157,14 @@
 
   FeaturePromoBubbleView::CreateParams params =
       GetBubbleParams(base::RepeatingClosure());
-  params.timeout_no_interaction = base::TimeDelta::FromSeconds(20);
-  params.timeout_after_interaction = base::TimeDelta::FromSeconds(5);
+  params.timeout_no_interaction = base::Seconds(20);
+  params.timeout_after_interaction = base::Seconds(5);
   params.timeout_callback = timeout_callback.Get();
 
   FeaturePromoBubbleView* bubble =
       FeaturePromoBubbleView::Create(std::move(params));
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(19));
+  task_environment()->FastForwardBy(base::Seconds(19));
 
   // Simulate mouse hovering and leaving bubble.
   ui::MouseEvent mouse_enter(ui::ET_MOUSE_ENTERED, gfx::Point(), gfx::Point(),
@@ -177,8 +177,8 @@
 
   // The bubble should time out with the shorter interval.
   EXPECT_CALL(timeout_callback, Run()).Times(0);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(4));
+  task_environment()->FastForwardBy(base::Seconds(4));
 
   EXPECT_CALL(timeout_callback, Run()).Times(1);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
 }
diff --git a/chrome/browser/ui/views/user_education/feature_promo_snooze_interactive_uitest.cc b/chrome/browser/ui/views/user_education/feature_promo_snooze_interactive_uitest.cc
index fc9da2f..19ac4b0 100644
--- a/chrome/browser/ui/views/user_education/feature_promo_snooze_interactive_uitest.cc
+++ b/chrome/browser/ui/views/user_education/feature_promo_snooze_interactive_uitest.cc
@@ -247,9 +247,9 @@
 
 IN_PROC_BROWSER_TEST_F(FeaturePromoSnoozeInteractiveTest, CanReSnooze) {
   // Simulate the user snoozing the IPH.
-  base::TimeDelta snooze_duration = base::TimeDelta::FromHours(26);
+  base::TimeDelta snooze_duration = base::Hours(26);
   base::Time snooze_time = base::Time::Now() - snooze_duration;
-  base::Time show_time = snooze_time - base::TimeDelta::FromSeconds(1);
+  base::Time show_time = snooze_time - base::Seconds(1);
   SetSnoozePrefs(feature_engagement::kIPHDesktopTabGroupsNewGroupFeature,
                  /* is_dismiss */ false,
                  /* show_count */ 1,
@@ -296,9 +296,9 @@
 IN_PROC_BROWSER_TEST_F(FeaturePromoSnoozeInteractiveTest,
                        DoesNotShowBeforeSnoozeDuration) {
   // Simulate a very recent snooze.
-  base::TimeDelta snooze_duration = base::TimeDelta::FromHours(26);
+  base::TimeDelta snooze_duration = base::Hours(26);
   base::Time snooze_time = base::Time::Now();
-  base::Time show_time = snooze_time - base::TimeDelta::FromSeconds(1);
+  base::Time show_time = snooze_time - base::Seconds(1);
   SetSnoozePrefs(feature_engagement::kIPHDesktopTabGroupsNewGroupFeature,
                  /* is_dismiss */ false,
                  /* show_count */ 1,
@@ -353,7 +353,7 @@
                        WorkWithoutNonClickerData) {
   // Non-clicker policy shipped pref entries that don't exist before.
   // Make sure empty entries are properly handled.
-  base::TimeDelta snooze_duration = base::TimeDelta::FromHours(26);
+  base::TimeDelta snooze_duration = base::Hours(26);
   base::Time snooze_time = base::Time::Now() - snooze_duration;
   SetSnoozePrefs(feature_engagement::kIPHDesktopTabGroupsNewGroupFeature,
                  /* is_dismiss */ false,
diff --git a/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_content_settings_container.cc b/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_content_settings_container.cc
index ba38228..8860d26 100644
--- a/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_content_settings_container.cc
+++ b/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_content_settings_container.cc
@@ -16,7 +16,7 @@
 namespace {
 
 constexpr base::TimeDelta kContentSettingsFadeInDuration =
-    base::TimeDelta::FromMilliseconds(500);
+    base::Milliseconds(500);
 
 }  // namespace
 
diff --git a/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_toolbar_button_container.h b/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_toolbar_button_container.h
index a3698a53..2a8124f 100644
--- a/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_toolbar_button_container.h
+++ b/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_toolbar_button_container.h
@@ -41,11 +41,11 @@
   // These control how long it takes for the origin text and menu button
   // highlight to fade in, pause then fade out.
   static constexpr base::TimeDelta kOriginFadeInDuration =
-      base::TimeDelta::FromMilliseconds(800);
+      base::Milliseconds(800);
   static constexpr base::TimeDelta kOriginPauseDuration =
-      base::TimeDelta::FromMilliseconds(2500);
+      base::Milliseconds(2500);
   static constexpr base::TimeDelta kOriginFadeOutDuration =
-      base::TimeDelta::FromMilliseconds(800);
+      base::Milliseconds(800);
 
   // The total duration of the origin fade animation.
   static base::TimeDelta OriginTotalDuration();
@@ -88,7 +88,7 @@
 
   // Duration to wait before starting the opening animation.
   static constexpr base::TimeDelta kTitlebarAnimationDelay =
-      base::TimeDelta::FromMilliseconds(750);
+      base::Milliseconds(750);
 
   // PageActionIconContainer:
   void AddPageActionIcon(std::unique_ptr<views::View> icon) override;
diff --git a/chrome/browser/ui/views/webauthn/authenticator_qr_sheet_view.cc b/chrome/browser/ui/views/webauthn/authenticator_qr_sheet_view.cc
index 8b015c1..7609fbcdf 100644
--- a/chrome/browser/ui/views/webauthn/authenticator_qr_sheet_view.cc
+++ b/chrome/browser/ui/views/webauthn/authenticator_qr_sheet_view.cc
@@ -227,7 +227,7 @@
   auto qr_view = std::make_unique<AuthenticatorQRViewCentered>(qr_string_);
   qr_view_ = qr_view.get();
 
-  timer_.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(600), this,
+  timer_.Start(FROM_HERE, base::Milliseconds(600), this,
                &AuthenticatorQRSheetView::Update);
   return std::make_pair(std::move(qr_view), AutoFocus::kYes);
 }
diff --git a/chrome/browser/ui/views/webauthn/ring_progress_bar.cc b/chrome/browser/ui/views/webauthn/ring_progress_bar.cc
index 0d813828..96582d7 100644
--- a/chrome/browser/ui/views/webauthn/ring_progress_bar.cc
+++ b/chrome/browser/ui/views/webauthn/ring_progress_bar.cc
@@ -18,8 +18,7 @@
 
 namespace {
 constexpr float kStrokeWidth = 4;
-constexpr base::TimeDelta kAnimationDuration =
-    base::TimeDelta::FromMilliseconds(200);
+constexpr base::TimeDelta kAnimationDuration = base::Milliseconds(200);
 static constexpr SkColor kRingColor = SkColorSetRGB(66, 133, 224);
 static constexpr SkColor kBackgroundColor = SkColorSetRGB(218, 220, 224);
 }  // namespace
diff --git a/chrome/browser/ui/web_applications/test/ssl_test_utils.cc b/chrome/browser/ui/web_applications/test/ssl_test_utils.cc
index 56feae0..4ee5246 100644
--- a/chrome/browser/ui/web_applications/test/ssl_test_utils.cc
+++ b/chrome/browser/ui/web_applications/test/ssl_test_utils.cc
@@ -29,9 +29,8 @@
   std::string cert_der;
   if (!net::x509_util::CreateKeyAndSelfSignedCert(
           "CN=Error", static_cast<uint32_t>(g_serial_number.GetNext()),
-          base::Time::Now() - base::TimeDelta::FromMinutes(5),
-          base::Time::Now() + base::TimeDelta::FromMinutes(5), &unused_key,
-          &cert_der)) {
+          base::Time::Now() - base::Minutes(5),
+          base::Time::Now() + base::Minutes(5), &unused_key, &cert_der)) {
     return nullptr;
   }
   return net::X509Certificate::CreateFromBytes(
diff --git a/chrome/browser/ui/web_applications/web_app_file_handling_browsertest.cc b/chrome/browser/ui/web_applications/web_app_file_handling_browsertest.cc
index 12d6beb..e70a4eb 100644
--- a/chrome/browser/ui/web_applications/web_app_file_handling_browsertest.cc
+++ b/chrome/browser/ui/web_applications/web_app_file_handling_browsertest.cc
@@ -68,7 +68,7 @@
     : public blink::mojom::FileHandlingExpiryInterceptorForTesting {
  public:
   FakeFileHandlingExpiryService()
-      : expiry_time_(base::Time::Now() + base::TimeDelta::FromDays(1)) {}
+      : expiry_time_(base::Time::Now() + base::Days(1)) {}
 
   blink::mojom::FileHandlingExpiry* GetForwardingInterface() override {
     NOTREACHED();
diff --git a/chrome/browser/ui/web_applications/web_app_metrics.cc b/chrome/browser/ui/web_applications/web_app_metrics.cc
index 5ea5d701..2a596a9fc 100644
--- a/chrome/browser/ui/web_applications/web_app_metrics.cc
+++ b/chrome/browser/ui/web_applications/web_app_metrics.cc
@@ -37,8 +37,7 @@
 // Max amount of time to record as a session. If a session exceeds this length,
 // treat it as invalid (0 time).
 // TODO (crbug.com/1081187): Use an idle timeout instead.
-constexpr base::TimeDelta max_valid_session_delta_ =
-    base::TimeDelta::FromHours(12);
+constexpr base::TimeDelta max_valid_session_delta_ = base::Hours(12);
 
 void RecordEngagementHistogram(
     const std::string& histogram_name,
diff --git a/chrome/browser/ui/web_applications/web_app_metrics_browsertest.cc b/chrome/browser/ui/web_applications/web_app_metrics_browsertest.cc
index 40670a4..981fac8 100644
--- a/chrome/browser/ui/web_applications/web_app_metrics_browsertest.cc
+++ b/chrome/browser/ui/web_applications/web_app_metrics_browsertest.cc
@@ -233,7 +233,7 @@
     base::subtle::ScopedTimeClockOverrides override(
         []() {
           return base::subtle::TimeNowIgnoringOverride().LocalMidnight() +
-                 base::TimeDelta::FromHours(1);
+                 base::Hours(1);
         },
         nullptr, nullptr);
     app_browser = web_app::LaunchWebAppBrowserAndWait(profile(), app_id);
@@ -246,7 +246,7 @@
     base::subtle::ScopedTimeClockOverrides override(
         []() {
           return base::subtle::TimeNowIgnoringOverride().LocalMidnight() +
-                 base::TimeDelta::FromHours(3);
+                 base::Hours(3);
         },
         nullptr, nullptr);
     WebAppMetrics::Get(profile())->OnBrowserNoLongerActive(app_browser);
@@ -256,7 +256,7 @@
     base::subtle::ScopedTimeClockOverrides override(
         []() {
           return base::subtle::TimeNowIgnoringOverride().LocalMidnight() +
-                 base::TimeDelta::FromHours(7);
+                 base::Hours(7);
         },
         nullptr, nullptr);
     WebAppMetrics::Get(profile())->OnBrowserSetLastActive(app_browser);
@@ -290,7 +290,7 @@
     base::subtle::ScopedTimeClockOverrides override(
         []() {
           return base::subtle::TimeNowIgnoringOverride().LocalMidnight() +
-                 base::TimeDelta::FromHours(1);
+                 base::Hours(1);
         },
         nullptr, nullptr);
     app_browser = web_app::LaunchWebAppBrowserAndWait(profile(), app_id);
@@ -309,7 +309,7 @@
     base::subtle::ScopedTimeClockOverrides override(
         []() {
           return base::subtle::TimeNowIgnoringOverride().LocalMidnight() +
-                 base::TimeDelta::FromHours(3);
+                 base::Hours(3);
         },
         nullptr, nullptr);
     WebAppMetrics::Get(profile())->OnBrowserSetLastActive(app_browser);
@@ -319,7 +319,7 @@
     base::subtle::ScopedTimeClockOverrides override(
         []() {
           return base::subtle::TimeNowIgnoringOverride().LocalMidnight() +
-                 base::TimeDelta::FromHours(7);
+                 base::Hours(7);
         },
         nullptr, nullptr);
     WebAppMetrics::Get(profile())->OnBrowserNoLongerActive(app_browser);
@@ -349,7 +349,7 @@
     base::subtle::ScopedTimeClockOverrides override(
         []() {
           return base::subtle::TimeNowIgnoringOverride().LocalMidnight() +
-                 base::TimeDelta::FromHours(1);
+                 base::Hours(1);
         },
         nullptr, nullptr);
     app_browser = web_app::LaunchWebAppBrowserAndWait(profile(), app_id);
@@ -362,7 +362,7 @@
     base::subtle::ScopedTimeClockOverrides override(
         []() {
           return base::subtle::TimeNowIgnoringOverride().LocalMidnight() +
-                 base::TimeDelta::FromHours(18);
+                 base::Hours(18);
         },
         nullptr, nullptr);
     WebAppMetrics::Get(profile())->OnBrowserNoLongerActive(app_browser);
@@ -390,7 +390,7 @@
     base::subtle::ScopedTimeClockOverrides override(
         []() {
           return base::subtle::TimeNowIgnoringOverride().LocalMidnight() +
-                 base::TimeDelta::FromHours(1);
+                 base::Hours(1);
         },
         nullptr, nullptr);
     app_browser = web_app::LaunchWebAppBrowserAndWait(profile(), app_id);
@@ -402,7 +402,7 @@
     base::subtle::ScopedTimeClockOverrides override(
         []() {
           return base::subtle::TimeNowIgnoringOverride().LocalMidnight() +
-                 base::TimeDelta::FromHours(3);
+                 base::Hours(3);
         },
         nullptr, nullptr);
     WebAppMetrics::Get(profile())->OnSuspend();
@@ -412,7 +412,7 @@
     base::subtle::ScopedTimeClockOverrides override(
         []() {
           return base::subtle::TimeNowIgnoringOverride().LocalMidnight() +
-                 base::TimeDelta::FromHours(7);
+                 base::Hours(7);
         },
         nullptr, nullptr);
     WebAppMetrics::Get(profile())->OnBrowserSetLastActive(app_browser);
diff --git a/chrome/browser/ui/webauthn/authenticator_dialog_browsertest.cc b/chrome/browser/ui/webauthn/authenticator_dialog_browsertest.cc
index ca0677f..fa80b2a 100644
--- a/chrome/browser/ui/webauthn/authenticator_dialog_browsertest.cc
+++ b/chrome/browser/ui/webauthn/authenticator_dialog_browsertest.cc
@@ -129,7 +129,7 @@
     } else if (name == "inline_bio_enrollment") {
       model->StartInlineBioEnrollment(base::DoNothing());
       timer_.Start(
-          FROM_HERE, base::TimeDelta::FromSeconds(2),
+          FROM_HERE, base::Seconds(2),
           base::BindLambdaForTesting([&, weak_model = model->GetWeakPtr()] {
             if (!weak_model || weak_model->current_step() !=
                                    AuthenticatorRequestDialogModel::Step::
diff --git a/chrome/browser/ui/webui/autofill_and_password_manager_internals/autofill_internals_ui_browsertest.cc b/chrome/browser/ui/webui/autofill_and_password_manager_internals/autofill_internals_ui_browsertest.cc
index a38051be..ab02ab3 100644
--- a/chrome/browser/ui/webui/autofill_and_password_manager_internals/autofill_internals_ui_browsertest.cc
+++ b/chrome/browser/ui/webui/autofill_and_password_manager_internals/autofill_internals_ui_browsertest.cc
@@ -34,8 +34,7 @@
   void SpinRunLoop() {
     base::RunLoop run_loop;
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-        FROM_HERE, run_loop.QuitClosure(),
-        base::TimeDelta::FromMilliseconds(20));
+        FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(20));
     run_loop.Run();
   }
 };
diff --git a/chrome/browser/ui/webui/certificate_provisioning_ui_handler.cc b/chrome/browser/ui/webui/certificate_provisioning_ui_handler.cc
index 377b1a4..05caf506 100644
--- a/chrome/browser/ui/webui/certificate_provisioning_ui_handler.cc
+++ b/chrome/browser/ui/webui/certificate_provisioning_ui_handler.cc
@@ -209,8 +209,7 @@
     update_after_hold_back_ = true;
     return;
   }
-  constexpr base::TimeDelta kTimeToHoldBackUpdates =
-      base::TimeDelta::FromMilliseconds(300);
+  constexpr base::TimeDelta kTimeToHoldBackUpdates = base::Milliseconds(300);
   hold_back_updates_timer_.Start(
       FROM_HERE, kTimeToHoldBackUpdates,
       base::BindOnce(
diff --git a/chrome/browser/ui/webui/certificate_provisioning_ui_handler_unittest.cc b/chrome/browser/ui/webui/certificate_provisioning_ui_handler_unittest.cc
index b076461..fa6123d 100644
--- a/chrome/browser/ui/webui/certificate_provisioning_ui_handler_unittest.cc
+++ b/chrome/browser/ui/webui/certificate_provisioning_ui_handler_unittest.cc
@@ -78,8 +78,7 @@
 
 // Test values for creating CertProfile for MockCertProvisioningWorker.
 constexpr char kCertProfileVersion[] = "cert_profile_version_1";
-constexpr base::TimeDelta kCertProfileRenewalPeriod =
-    base::TimeDelta::FromSeconds(0);
+constexpr base::TimeDelta kCertProfileRenewalPeriod = base::Seconds(0);
 constexpr char kDeviceCertProfileId[] = "device_cert_profile_1";
 constexpr char kDeviceCertProfileName[] = "Device Certificate Profile 1";
 constexpr char kUserCertProfileId[] = "user_cert_profile_1";
@@ -451,11 +450,11 @@
       &web_ui_, "certificate-provisioning-processes-changed");
   scheduler_observer_for_user_->OnVisibleStateChanged();
   // Another update does not trigger a UI update for the holdoff time.
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(299));
+  task_environment_.FastForwardBy(base::Milliseconds(299));
   EXPECT_EQ(0U, handler_->ReadAndResetUiRefreshCountForTesting());
 
   // When the holdoff time has elapsed, an UI update is triggered.
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(2));
+  task_environment_.FastForwardBy(base::Milliseconds(2));
   EXPECT_EQ(1U, handler_->ReadAndResetUiRefreshCountForTesting());
   result_waiter_2.Wait();
 
diff --git a/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_metrics_recorder_browsertest.cc b/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_metrics_recorder_browsertest.cc
index 92b6f75..10b23889 100644
--- a/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_metrics_recorder_browsertest.cc
+++ b/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_metrics_recorder_browsertest.cc
@@ -233,11 +233,11 @@
       base::MakeRefCounted<base::TestMockTimeTaskRunner>();
   AddSupervisionMetricsRecorder::GetInstance()->SetClockForTesting(
       task_runner_->GetMockTickClock());
-  base::TimeDelta duration(base::TimeDelta::FromSeconds(GetParam()));
+  base::TimeDelta duration(base::Seconds(GetParam()));
 
   // We need to start at some non-zero point in time or else
   // DCHECK(!start_time_.is_null()) throws.
-  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_runner_->FastForwardBy(base::Seconds(1));
   ShowAddSupervisionDialog();
   task_runner_->FastForwardBy(duration);
   CloseAddSupervisionDialog();
diff --git a/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_handler.cc b/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_handler.cc
index e0cb1ea..4573bc161 100644
--- a/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_handler.cc
+++ b/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_handler.cc
@@ -71,8 +71,7 @@
 }
 
 // Maximum interval to display in full mode.
-constexpr base::TimeDelta kMaxIntervalToDisplayInFullMode =
-    base::TimeDelta::FromSecondsD(5.0);
+constexpr base::TimeDelta kMaxIntervalToDisplayInFullMode = base::Seconds(5.0);
 
 base::FilePath GetLastTracingModelPath(Profile* profile) {
   DCHECK(profile);
@@ -632,8 +631,8 @@
     LOG(ERROR) << "Invalid input";
     return;
   }
-  max_tracing_time_ = base::TimeDelta::FromSeconds(args->GetList()[0].GetInt());
-  DCHECK_GE(max_tracing_time_, base::TimeDelta::FromSeconds(1));
+  max_tracing_time_ = base::Seconds(args->GetList()[0].GetInt());
+  DCHECK_GE(max_tracing_time_, base::Seconds(1));
 }
 
 void ArcGraphicsTracingHandler::HandleLoadFromText(
diff --git a/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_handler.h b/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_handler.h
index 2ebdcafe..658a7560 100644
--- a/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_handler.h
+++ b/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_handler.h
@@ -119,7 +119,7 @@
 
   // Determines the maximum tracing time.
   // Works only in |ArcGraphicsTracingMode::kOverview| mode.
-  base::TimeDelta max_tracing_time_ = base::TimeDelta::FromSeconds(5);
+  base::TimeDelta max_tracing_time_ = base::Seconds(5);
 
   base::OneShotTimer stop_tracing_timer_;
 
diff --git a/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_handler_unittest.cc b/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_handler_unittest.cc
index 3612bee2..241204e 100644
--- a/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_handler_unittest.cc
+++ b/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_handler_unittest.cc
@@ -34,10 +34,8 @@
 
 TEST_F(ArcGraphicsTracingHandlerTest, ModelName) {
   base::subtle::ScopedTimeClockOverrides time_override(
-      []() {
-        return base::Time::UnixEpoch() + base::TimeDelta::FromSeconds(1);
-      },
-      nullptr, nullptr);
+      []() { return base::Time::UnixEpoch() + base::Seconds(1); }, nullptr,
+      nullptr);
 
   const base::FilePath download_path =
       file_manager::util::GetDownloadsFolderForProfile(profile());
diff --git a/chrome/browser/ui/webui/chromeos/arc_power_control/arc_power_control_handler.cc b/chrome/browser/ui/webui/chromeos/arc_power_control/arc_power_control_handler.cc
index 601578a3..91cebbf 100644
--- a/chrome/browser/ui/webui/chromeos/arc_power_control/arc_power_control_handler.cc
+++ b/chrome/browser/ui/webui/chromeos/arc_power_control/arc_power_control_handler.cc
@@ -27,8 +27,7 @@
 namespace {
 
 // Maximum interval to display in tracing.
-constexpr base::TimeDelta kMaxIntervalToDisplay =
-    base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kMaxIntervalToDisplay = base::Minutes(5);
 
 // Names of throttling mode.
 constexpr char kThrottlingDisable[] = "disable";
diff --git a/chrome/browser/ui/webui/chromeos/edu_account_login_handler_unittest.cc b/chrome/browser/ui/webui/chromeos/edu_account_login_handler_unittest.cc
index eca9acf..cef6365 100644
--- a/chrome/browser/ui/webui/chromeos/edu_account_login_handler_unittest.cc
+++ b/chrome/browser/ui/webui/chromeos/edu_account_login_handler_unittest.cc
@@ -300,8 +300,7 @@
       kFakeParentGaiaId, kFakeParentCredential,
       GoogleServiceAuthError(GoogleServiceAuthError::NONE),
       signin::AccessTokenInfo(kFakeAccessToken,
-                              base::Time::Now() + base::TimeDelta::FromHours(1),
-                              "id_token"));
+                              base::Time::Now() + base::Hours(1), "id_token"));
 
   constexpr char fake_rapt[] = "fakeReauthProofToken";
   // Simulate successful fetching of ReAuthProofToken.
@@ -359,8 +358,7 @@
       kFakeParentGaiaId, kFakeParentCredential,
       GoogleServiceAuthError(GoogleServiceAuthError::NONE),
       signin::AccessTokenInfo(kFakeAccessToken,
-                              base::Time::Now() + base::TimeDelta::FromHours(1),
-                              "id_token"));
+                              base::Time::Now() + base::Hours(1), "id_token"));
 
   // Simulate failed fetching of ReAuthProofToken.
   handler()->OnReAuthProofTokenFailure(
diff --git a/chrome/browser/ui/webui/chromeos/edu_coexistence/edu_coexistence_login_handler_browsertest.cc b/chrome/browser/ui/webui/chromeos/edu_coexistence/edu_coexistence_login_handler_browsertest.cc
index 89b64e9a..3ff9388 100644
--- a/chrome/browser/ui/webui/chromeos/edu_coexistence/edu_coexistence_login_handler_browsertest.cc
+++ b/chrome/browser/ui/webui/chromeos/edu_coexistence/edu_coexistence_login_handler_browsertest.cc
@@ -91,9 +91,8 @@
 
     handler->OnOAuthAccessTokensFetched(
         GoogleServiceAuthError(state),
-        signin::AccessTokenInfo(
-            "access_token", base::Time::Now() + base::TimeDelta::FromMinutes(1),
-            ""));
+        signin::AccessTokenInfo("access_token",
+                                base::Time::Now() + base::Minutes(1), ""));
   }
 
   void ExpectEduCoexistenceState(
diff --git a/chrome/browser/ui/webui/chromeos/in_session_password_change/urgent_password_expiry_notification_handler.cc b/chrome/browser/ui/webui/chromeos/in_session_password_change/urgent_password_expiry_notification_handler.cc
index b514cf4e5..2a837f23 100644
--- a/chrome/browser/ui/webui/chromeos/in_session_password_change/urgent_password_expiry_notification_handler.cc
+++ b/chrome/browser/ui/webui/chromeos/in_session_password_change/urgent_password_expiry_notification_handler.cc
@@ -35,7 +35,7 @@
   const int ms_until_expiry = params->GetList()[1].GetInt();
 
   const std::u16string title = PasswordExpiryNotification::GetTitleText(
-      base::TimeDelta::FromMilliseconds(ms_until_expiry));
+      base::Milliseconds(ms_until_expiry));
 
   AllowJavascript();
   ResolveJavascriptCallback(base::Value(callback_id), base::Value(title));
diff --git a/chrome/browser/ui/webui/chromeos/login/cookie_waiter.cc b/chrome/browser/ui/webui/chromeos/login/cookie_waiter.cc
index c0cd024..b1d95b6 100644
--- a/chrome/browser/ui/webui/chromeos/login/cookie_waiter.cc
+++ b/chrome/browser/ui/webui/chromeos/login/cookie_waiter.cc
@@ -10,8 +10,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kCookieDelay = base::TimeDelta::FromSeconds(20);
-
+constexpr base::TimeDelta kCookieDelay = base::Seconds(20);
 }
 
 CookieWaiter::CookieWaiter(network::mojom::CookieManager* cookie_manager,
diff --git a/chrome/browser/ui/webui/chromeos/login/management_transition_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/management_transition_screen_handler.cc
index 0c1ba028..1bbb389 100644
--- a/chrome/browser/ui/webui/chromeos/login/management_transition_screen_handler.cc
+++ b/chrome/browser/ui/webui/chromeos/login/management_transition_screen_handler.cc
@@ -23,7 +23,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kWaitingTimeout = base::TimeDelta::FromMinutes(2);
+constexpr base::TimeDelta kWaitingTimeout = base::Minutes(2);
 
 }  // namespace
 
diff --git a/chrome/browser/ui/webui/chromeos/login/marketing_opt_in_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/marketing_opt_in_screen_handler.cc
index c3ee366..baa22ff 100644
--- a/chrome/browser/ui/webui/chromeos/login/marketing_opt_in_screen_handler.cc
+++ b/chrome/browser/ui/webui/chromeos/login/marketing_opt_in_screen_handler.cc
@@ -131,7 +131,7 @@
       ash::prefs::kAccessibilityTabletModeShelfNavigationButtonsEnabled,
       enabled);
   a11y_nav_buttons_toggle_metrics_reporter_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromSeconds(10),
+      FROM_HERE, base::Seconds(10),
       base::BindOnce(&RecordShowShelfNavigationButtonsValueChange, enabled));
 }
 
diff --git a/chrome/browser/ui/webui/chromeos/login/online_login_helper.cc b/chrome/browser/ui/webui/chromeos/login/online_login_helper.cc
index a8c4495..0ca8571 100644
--- a/chrome/browser/ui/webui/chromeos/login/online_login_helper.cc
+++ b/chrome/browser/ui/webui/chromeos/login/online_login_helper.cc
@@ -27,7 +27,7 @@
 const char kGAPSCookie[] = "GAPS";
 const char kOAUTHCodeCookie[] = "oauth_code";
 const char kRAPTCookie[] = "RAPT";
-constexpr base::TimeDelta kCookieDelay = base::TimeDelta::FromSeconds(20);
+constexpr base::TimeDelta kCookieDelay = base::Seconds(20);
 
 }  // namespace
 
diff --git a/chrome/browser/ui/webui/chromeos/login/saml_challenge_key_handler.h b/chrome/browser/ui/webui/chromeos/login/saml_challenge_key_handler.h
index cfcb7c3e..2a77c1a 100644
--- a/chrome/browser/ui/webui/chromeos/login/saml_challenge_key_handler.h
+++ b/chrome/browser/ui/webui/chromeos/login/saml_challenge_key_handler.h
@@ -57,8 +57,7 @@
   CallbackType callback_;
 
   // Timeout for `tpm_key_challenger_` to response.
-  const base::TimeDelta default_tpm_response_timeout_ =
-      base::TimeDelta::FromSeconds(15);
+  const base::TimeDelta default_tpm_response_timeout_ = base::Seconds(15);
   absl::optional<base::TimeDelta> tpm_response_timeout_for_testing_;
 
   // Performs attestation flow.
diff --git a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
index 8111f57..6cdc3df 100644
--- a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
+++ b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
@@ -107,14 +107,14 @@
 
 // Timeout to delay first notification about offline state for a
 // current network.
-constexpr base::TimeDelta kOfflineTimeout = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kOfflineTimeout = base::Seconds(1);
 
 // Timeout to delay first notification about offline state when authenticating
 // to a proxy.
-constexpr base::TimeDelta kProxyAuthTimeout = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kProxyAuthTimeout = base::Seconds(5);
 
 // Timeout used to prevent infinite connecting to a flaky network.
-constexpr base::TimeDelta kConnectingTimeout = base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kConnectingTimeout = base::Seconds(60);
 
 // Max number of Gaia Reload to Show Proxy Auth Dialog.
 const int kMaxGaiaReloadForProxyAuthDialog = 3;
diff --git a/chrome/browser/ui/webui/constrained_web_dialog_ui_browsertest.cc b/chrome/browser/ui/webui/constrained_web_dialog_ui_browsertest.cc
index f0d925e..253cde7 100644
--- a/chrome/browser/ui/webui/constrained_web_dialog_ui_browsertest.cc
+++ b/chrome/browser/ui/webui/constrained_web_dialog_ui_browsertest.cc
@@ -71,15 +71,14 @@
     const base::TimeTicks start_time = base::TimeTicks::Now();
     while (!condition.Run()) {
       const base::TimeTicks current_time = base::TimeTicks::Now();
-      if (current_time - start_time > base::TimeDelta::FromSeconds(5)) {
+      if (current_time - start_time > base::Seconds(5)) {
         ADD_FAILURE() << "Condition not met within five seconds.";
         return false;
       }
 
       base::RunLoop run_loop;
       base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-          FROM_HERE, run_loop.QuitClosure(),
-          base::TimeDelta::FromMilliseconds(20));
+          FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(20));
       run_loop.Run();
     }
     return true;
diff --git a/chrome/browser/ui/webui/download_shelf/download_shelf_ui.cc b/chrome/browser/ui/webui/download_shelf/download_shelf_ui.cc
index 70a7c6b..f5684c06 100644
--- a/chrome/browser/ui/webui/download_shelf/download_shelf_ui.cc
+++ b/chrome/browser/ui/webui/download_shelf/download_shelf_ui.cc
@@ -33,7 +33,7 @@
     : ui::MojoWebUIController(web_ui, true),
       progress_timer_(std::make_unique<base::RetainingOneShotTimer>(
           FROM_HERE,
-          base::TimeDelta::FromMilliseconds(30),
+          base::Milliseconds(30),
           base::BindRepeating(&DownloadShelfUI::NotifyDownloadProgress,
                               base::Unretained(this)))),
       download_manager_(Profile::FromWebUI(web_ui)->GetDownloadManager()),
@@ -252,7 +252,7 @@
     std::unique_ptr<base::RetainingOneShotTimer> timer) {
   progress_timer_ = std::move(timer);
   progress_timer_->Start(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(30),
+      FROM_HERE, base::Milliseconds(30),
       base::BindRepeating(&DownloadShelfUI::NotifyDownloadProgress,
                           base::Unretained(this)));
 }
diff --git a/chrome/browser/ui/webui/downloads/downloads_list_tracker_unittest.cc b/chrome/browser/ui/webui/downloads/downloads_list_tracker_unittest.cc
index dbc391a..44573081 100644
--- a/chrome/browser/ui/webui/downloads/downloads_list_tracker_unittest.cc
+++ b/chrome/browser/ui/webui/downloads/downloads_list_tracker_unittest.cc
@@ -96,7 +96,7 @@
 
   MockDownloadItem* CreateNextItem() {
     return CreateMock(mock_items_.size(), base::Time::UnixEpoch() +
-        base::TimeDelta::FromHours(mock_items_.size()));
+                                              base::Hours(mock_items_.size()));
   }
 
   void CreateTracker() {
diff --git a/chrome/browser/ui/webui/history_clusters/history_clusters_handler.cc b/chrome/browser/ui/webui/history_clusters/history_clusters_handler.cc
index 078cbcf..678705a 100644
--- a/chrome/browser/ui/webui/history_clusters/history_clusters_handler.cc
+++ b/chrome/browser/ui/webui/history_clusters/history_clusters_handler.cc
@@ -253,8 +253,7 @@
         std::set<GURL>(visit_ptr->raw_urls.begin(), visit_ptr->raw_urls.end());
     // ExpireHistoryArgs::end_time is not inclusive. Make sure all visits in the
     // given timespan are removed by adding 1 second to it.
-    expire_args.end_time =
-        visit_ptr->last_visit_time + base::TimeDelta::FromSeconds(1);
+    expire_args.end_time = visit_ptr->last_visit_time + base::Seconds(1);
     expire_args.begin_time = visit_ptr->first_visit_time;
   }
   auto* history_clusters_service =
diff --git a/chrome/browser/ui/webui/identity_internals_ui_browsertest.cc b/chrome/browser/ui/webui/identity_internals_ui_browsertest.cc
index 2e7780c..f4388c9 100644
--- a/chrome/browser/ui/webui/identity_internals_ui_browsertest.cc
+++ b/chrome/browser/ui/webui/identity_internals_ui_browsertest.cc
@@ -54,7 +54,7 @@
   std::set<std::string> scopes_set(scopes.begin(), scopes.end());
   extensions::IdentityTokenCacheValue token_cache_value =
       extensions::IdentityTokenCacheValue::CreateToken(
-          token_id, scopes_set, base::TimeDelta::FromSeconds(time_to_live));
+          token_id, scopes_set, base::Seconds(time_to_live));
 
   CoreAccountInfo user_info;
   user_info.account_id = CoreAccountId(account_id);
diff --git a/chrome/browser/ui/webui/internals/notifications/notifications_internals_ui_message_handler.cc b/chrome/browser/ui/webui/internals/notifications/notifications_internals_ui_message_handler.cc
index a2d8133..fba36bf 100644
--- a/chrome/browser/ui/webui/internals/notifications/notifications_internals_ui_message_handler.cc
+++ b/chrome/browser/ui/webui/internals/notifications/notifications_internals_ui_message_handler.cc
@@ -39,8 +39,7 @@
   CHECK_EQ(args->GetList().size(), 3u);
   notifications::ScheduleParams schedule_params;
   schedule_params.deliver_time_start = base::Time::Now();
-  schedule_params.deliver_time_end =
-      base::Time::Now() + base::TimeDelta::FromMinutes(5);
+  schedule_params.deliver_time_end = base::Time::Now() + base::Minutes(5);
   notifications::NotificationData data;
   // TOOD(hesen): Enable adding icons from notifications-internals HTML.
   data.custom_data.emplace("url", args->GetList()[0].GetString());
diff --git a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc b/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
index 9397c30..d2142cc 100644
--- a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
+++ b/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
@@ -84,9 +84,8 @@
   std::string cert_der;
   if (!net::x509_util::CreateKeyAndSelfSignedCert(
           "CN=Error", static_cast<uint32_t>(g_serial_number.GetNext()),
-          base::Time::Now() - base::TimeDelta::FromMinutes(5),
-          base::Time::Now() + base::TimeDelta::FromMinutes(5), &unused_key,
-          &cert_der)) {
+          base::Time::Now() - base::Minutes(5),
+          base::Time::Now() + base::Minutes(5), &unused_key, &cert_der)) {
     return nullptr;
   }
 
diff --git a/chrome/browser/ui/webui/management/management_ui_handler_unittest.cc b/chrome/browser/ui/webui/management/management_ui_handler_unittest.cc
index 16d74ade2..4ff28c3 100644
--- a/chrome/browser/ui/webui/management/management_ui_handler_unittest.cc
+++ b/chrome/browser/ui/webui/management/management_ui_handler_unittest.cc
@@ -556,7 +556,7 @@
         managed_user.get(), std::move(store), std::move(data_manager),
         base::FilePath() /* component_policy_cache_path */,
         policy::UserCloudPolicyManagerAsh::PolicyEnforcement::kPolicyRequired,
-        base::TimeDelta::FromMinutes(1) /* policy_refresh_timeout */,
+        base::Minutes(1) /* policy_refresh_timeout */,
         base::BindOnce(&ManagementUIHandlerTests::OnFatalError,
                        base::Unretained(this)),
         account_id, task_runner_);
diff --git a/chrome/browser/ui/webui/metrics_handler.cc b/chrome/browser/ui/webui/metrics_handler.cc
index 86c9fca..3da83a0 100644
--- a/chrome/browser/ui/webui/metrics_handler.cc
+++ b/chrome/browser/ui/webui/metrics_handler.cc
@@ -95,11 +95,10 @@
 
   DCHECK_GE(value, 0);
 
-  base::TimeDelta time_value = base::TimeDelta::FromMilliseconds(value);
+  base::TimeDelta time_value = base::Milliseconds(value);
 
   base::HistogramBase* counter = base::Histogram::FactoryTimeGet(
-      histogram_name, base::TimeDelta::FromMilliseconds(1),
-      base::TimeDelta::FromSeconds(10), 50,
+      histogram_name, base::Milliseconds(1), base::Seconds(10), 50,
       base::HistogramBase::kUmaTargetedHistogramFlag);
   counter->AddTime(time_value);
 }
@@ -110,6 +109,5 @@
 
   DCHECK_GE(value, 0);
 
-  base::UmaHistogramMediumTimes(histogram_name,
-                                base::TimeDelta::FromMilliseconds(value));
+  base::UmaHistogramMediumTimes(histogram_name, base::Milliseconds(value));
 }
diff --git a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc b/chrome/browser/ui/webui/net_internals/net_internals_ui.cc
index a4706e74..6dd28d0 100644
--- a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc
+++ b/chrome/browser/ui/webui/net_internals/net_internals_ui.cc
@@ -216,7 +216,7 @@
   result = list->GetBoolean(1, &sts_include_subdomains);
   DCHECK(result);
 
-  base::Time expiry = base::Time::Now() + base::TimeDelta::FromDays(1000);
+  base::Time expiry = base::Time::Now() + base::Days(1000);
   GetNetworkContext()->AddHSTS(domain, expiry, sts_include_subdomains,
                                base::DoNothing());
 }
@@ -260,7 +260,7 @@
 
   url::Origin origin = url::Origin::Create(GURL("https://" + domain));
 
-  base::Time expiry = base::Time::Now() + base::TimeDelta::FromDays(1000);
+  base::Time expiry = base::Time::Now() + base::Days(1000);
   GetNetworkContext()->AddExpectCT(
       domain, expiry, enforce, GURL(report_uri_str),
       net::NetworkIsolationKey(origin /* top_frame_site */,
diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc
index 8422185..3774ecd 100644
--- a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc
+++ b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc
@@ -631,8 +631,7 @@
   if (!prev_navigation_time.is_null()) {
     base::UmaHistogramCustomTimes("NewTabPage.TimeSinceLastNTP",
                                   navigation_start_time_ - prev_navigation_time,
-                                  base::TimeDelta::FromSeconds(1),
-                                  base::TimeDelta::FromDays(1), 100);
+                                  base::Seconds(1), base::Days(1), 100);
   }
   profile_->GetPrefs()->SetTime(kPrevNavigationTimePrefName,
                                 navigation_start_time_);
diff --git a/chrome/browser/ui/webui/read_later/read_later_page_handler.cc b/chrome/browser/ui/webui/read_later/read_later_page_handler.cc
index a9ae5ec5..40c57692 100644
--- a/chrome/browser/ui/webui/read_later/read_later_page_handler.cc
+++ b/chrome/browser/ui/webui/read_later/read_later_page_handler.cc
@@ -373,7 +373,7 @@
   if (last_update_time > now)
     return std::string();
   const base::TimeDelta elapsed_time =
-      base::TimeDelta::FromMicroseconds(now - last_update_time);
+      base::Microseconds(now - last_update_time);
   return base::UTF16ToUTF8(
       ui::TimeFormat::Simple(ui::TimeFormat::FORMAT_ELAPSED,
                              ui::TimeFormat::LENGTH_SHORT, elapsed_time));
diff --git a/chrome/browser/ui/webui/realbox/realbox_handler.cc b/chrome/browser/ui/webui/realbox/realbox_handler.cc
index d972437..63610b6 100644
--- a/chrome/browser/ui/webui/realbox/realbox_handler.cc
+++ b/chrome/browser/ui/webui/realbox/realbox_handler.cc
@@ -460,7 +460,7 @@
       /*middle_button=*/mouse_button == 1, alt_key, ctrl_key, meta_key,
       shift_key);
 
-  base::TimeDelta default_time_delta = base::TimeDelta::FromMilliseconds(-1);
+  base::TimeDelta default_time_delta = base::Milliseconds(-1);
 
   if (time_user_first_modified_realbox_.is_null())
     elapsed_time_since_first_autocomplete_query = default_time_delta;
diff --git a/chrome/browser/ui/webui/settings/chromeos/accessibility_handler.cc b/chrome/browser/ui/webui/settings/chromeos/accessibility_handler.cc
index 32a8a1e..552d6cb 100644
--- a/chrome/browser/ui/webui/settings/chromeos/accessibility_handler.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/accessibility_handler.cc
@@ -110,7 +110,7 @@
   args->GetBoolean(0, &enabled);
 
   a11y_nav_buttons_toggle_metrics_reporter_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromSeconds(10),
+      FROM_HERE, base::Seconds(10),
       base::BindOnce(&RecordShowShelfNavigationButtonsValueChange, enabled));
 }
 
diff --git a/chrome/browser/ui/webui/settings/chromeos/device_power_handler.cc b/chrome/browser/ui/webui/settings/chromeos/device_power_handler.cc
index 8fa9f95f..b2d4a21d 100644
--- a/chrome/browser/ui/webui/settings/chromeos/device_power_handler.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/device_power_handler.cc
@@ -310,9 +310,8 @@
   bool show_time = false;
 
   if (!calculating) {
-    time_left = base::TimeDelta::FromSeconds(
-        charging ? proto->battery_time_to_full_sec()
-                 : proto->battery_time_to_empty_sec());
+    time_left = base::Seconds(charging ? proto->battery_time_to_full_sec()
+                                       : proto->battery_time_to_empty_sec());
     show_time = ash::power_utils::ShouldDisplayBatteryTime(time_left);
   }
 
diff --git a/chrome/browser/ui/webui/settings/chromeos/kerberos_accounts_handler.cc b/chrome/browser/ui/webui/settings/chromeos/kerberos_accounts_handler.cc
index 02a60d66..36f43595 100644
--- a/chrome/browser/ui/webui/settings/chromeos/kerberos_accounts_handler.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/kerberos_accounts_handler.cc
@@ -261,10 +261,10 @@
     // Format validity time as 'xx hours yy minutes' for validity < 1 day and
     // 'nn days' otherwise.
     base::TimeDelta tgt_validity =
-        base::TimeDelta::FromSeconds(account.tgt_validity_seconds());
+        base::Seconds(account.tgt_validity_seconds());
     const std::u16string valid_for_duration = ui::TimeFormat::Detailed(
         ui::TimeFormat::FORMAT_DURATION, ui::TimeFormat::LENGTH_LONG,
-        tgt_validity < base::TimeDelta::FromDays(1) ? -1 : 0, tgt_validity);
+        tgt_validity < base::Days(1) ? -1 : 0, tgt_validity);
 
     base::DictionaryValue account_dict;
     account_dict.SetString("principalName", account.principal_name());
diff --git a/chrome/browser/ui/webui/settings/chromeos/os_settings_ui.cc b/chrome/browser/ui/webui/settings/chromeos/os_settings_ui.cc
index 5bc3339..557d1c0 100644
--- a/chrome/browser/ui/webui/settings/chromeos/os_settings_ui.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/os_settings_ui.cc
@@ -81,8 +81,8 @@
   // Note: OSSettingsUI lifetime is tied to the lifetime of the browser window.
   base::UmaHistogramCustomTimes("ChromeOS.Settings.WindowOpenDuration",
                                 base::TimeTicks::Now() - time_when_opened_,
-                                /*min=*/base::TimeDelta::FromMicroseconds(500),
-                                /*max=*/base::TimeDelta::FromHours(1),
+                                /*min=*/base::Microseconds(500),
+                                /*max=*/base::Hours(1),
                                 /*buckets=*/50);
 }
 
diff --git a/chrome/browser/ui/webui/settings/chromeos/search/per_session_settings_user_action_tracker.cc b/chrome/browser/ui/webui/settings/chromeos/search/per_session_settings_user_action_tracker.cc
index c0717cf..7f568b2 100644
--- a/chrome/browser/ui/webui/settings/chromeos/search/per_session_settings_user_action_tracker.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/search/per_session_settings_user_action_tracker.cc
@@ -13,20 +13,18 @@
 
 // The maximum amount of time that the settings window can be blurred to be
 // considered short enough for the "first change" metric.
-constexpr base::TimeDelta kShortBlurTimeLimit = base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kShortBlurTimeLimit = base::Minutes(1);
 
 // The minimum amount of time between a setting change and a subsequent setting
 // change. If two changes occur les than this amount of time from each other,
 // they are ignored by metrics. See https://crbug.com/1073714 for details.
-constexpr base::TimeDelta kMinSubsequentChange =
-    base::TimeDelta::FromMilliseconds(200);
+constexpr base::TimeDelta kMinSubsequentChange = base::Milliseconds(200);
 
 // Min/max values for the duration metrics. Note that these values are tied to
 // the metrics defined below; if these ever change, the metric names must also
 // be updated.
-constexpr base::TimeDelta kMinDurationMetric =
-    base::TimeDelta::FromMilliseconds(100);
-constexpr base::TimeDelta kMaxDurationMetric = base::TimeDelta::FromMinutes(10);
+constexpr base::TimeDelta kMinDurationMetric = base::Milliseconds(100);
+constexpr base::TimeDelta kMaxDurationMetric = base::Minutes(10);
 
 void LogDurationMetric(const char* metric_name, base::TimeDelta duration) {
   base::UmaHistogramCustomTimes(metric_name, duration, kMinDurationMetric,
diff --git a/chrome/browser/ui/webui/settings/chromeos/search/per_session_settings_user_action_tracker_unittest.cc b/chrome/browser/ui/webui/settings/chromeos/search/per_session_settings_user_action_tracker_unittest.cc
index 88e13c0..74f716e 100644
--- a/chrome/browser/ui/webui/settings/chromeos/search/per_session_settings_user_action_tracker_unittest.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/search/per_session_settings_user_action_tracker_unittest.cc
@@ -29,7 +29,7 @@
   tracker_.RecordClick();
   tracker_.RecordNavigation();
   tracker_.RecordSearch();
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
   tracker_.RecordSettingChange();
 
   // The "first change" metrics should have been logged.
@@ -44,7 +44,7 @@
       /*count=*/1);
   histogram_tester_.ExpectTimeBucketCount(
       "ChromeOS.Settings.TimeUntilChange.FirstChange",
-      /*sample=*/base::TimeDelta::FromSeconds(10),
+      /*sample=*/base::Seconds(10),
       /*count=*/1);
 
   // Without leaving the page, perform some more tasks, and change another
@@ -52,7 +52,7 @@
   tracker_.RecordClick();
   tracker_.RecordNavigation();
   tracker_.RecordSearch();
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
   tracker_.RecordSettingChange();
 
   // The "subsequent change" metrics should have been logged.
@@ -67,7 +67,7 @@
       /*count=*/1);
   histogram_tester_.ExpectTimeBucketCount(
       "ChromeOS.Settings.TimeUntilChange.SubsequentChange",
-      /*sample=*/base::TimeDelta::FromSeconds(10),
+      /*sample=*/base::Seconds(10),
       /*count=*/1);
 
   // Repeat this, but only after 100ms. This is lower than the minimum value
@@ -75,7 +75,7 @@
   tracker_.RecordClick();
   tracker_.RecordNavigation();
   tracker_.RecordSearch();
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  task_environment_.FastForwardBy(base::Milliseconds(100));
   tracker_.RecordSettingChange();
 
   // No additional logging should have occurred, so make the same verifications
@@ -91,14 +91,14 @@
       /*count=*/1);
   histogram_tester_.ExpectTimeBucketCount(
       "ChromeOS.Settings.TimeUntilChange.SubsequentChange",
-      /*sample=*/base::TimeDelta::FromSeconds(10),
+      /*sample=*/base::Seconds(10),
       /*count=*/1);
 
   // Repeat this once more, and verify that the counts increased.
   tracker_.RecordClick();
   tracker_.RecordNavigation();
   tracker_.RecordSearch();
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
   tracker_.RecordSettingChange();
 
   // The "subsequent change" metrics should have been logged.
@@ -113,7 +113,7 @@
       /*count=*/2);
   histogram_tester_.ExpectTimeBucketCount(
       "ChromeOS.Settings.TimeUntilChange.SubsequentChange",
-      /*sample=*/base::TimeDelta::FromSeconds(10),
+      /*sample=*/base::Seconds(10),
       /*count=*/2);
 }
 
@@ -121,54 +121,54 @@
   // Focus the page, click, and change a setting.
   tracker_.RecordPageFocus();
   tracker_.RecordClick();
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   tracker_.RecordSettingChange();
   histogram_tester_.ExpectTotalCount(
       "ChromeOS.Settings.NumClicksUntilChange.FirstChange",
       /*count=*/1);
   histogram_tester_.ExpectTimeBucketCount(
       "ChromeOS.Settings.TimeUntilChange.FirstChange",
-      /*sample=*/base::TimeDelta::FromSeconds(1),
+      /*sample=*/base::Seconds(1),
       /*count=*/1);
 
   // Blur for 59 seconds (not quite a minute), click, and change a setting.
   // Since the blur was under a minute, this should count for the "subsequent
   // change" metrics.
   tracker_.RecordPageBlur();
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(59));
+  task_environment_.FastForwardBy(base::Seconds(59));
   tracker_.RecordPageFocus();
   tracker_.RecordClick();
   tracker_.RecordSettingChange();
   histogram_tester_.ExpectTimeBucketCount(
       "ChromeOS.Settings.BlurredWindowDuration",
-      /*sample=*/base::TimeDelta::FromSeconds(59),
+      /*sample=*/base::Seconds(59),
       /*count=*/1);
   histogram_tester_.ExpectTotalCount(
       "ChromeOS.Settings.NumClicksUntilChange.SubsequentChange",
       /*count=*/1);
   histogram_tester_.ExpectTimeBucketCount(
       "ChromeOS.Settings.TimeUntilChange.SubsequentChange",
-      /*sample=*/base::TimeDelta::FromSeconds(59),
+      /*sample=*/base::Seconds(59),
       /*count=*/1);
 
   // Now, blur for a full minute, click, and change a setting. Since the blur
   // was a full minute, this should count for the "first change" metrics.
   tracker_.RecordPageBlur();
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_environment_.FastForwardBy(base::Minutes(1));
   tracker_.RecordPageFocus();
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment_.FastForwardBy(base::Seconds(5));
   tracker_.RecordClick();
   tracker_.RecordSettingChange();
   histogram_tester_.ExpectTimeBucketCount(
       "ChromeOS.Settings.BlurredWindowDuration",
-      /*sample=*/base::TimeDelta::FromMinutes(1),
+      /*sample=*/base::Minutes(1),
       /*count=*/2);
   histogram_tester_.ExpectTotalCount(
       "ChromeOS.Settings.NumClicksUntilChange.FirstChange",
       /*count=*/2);
   histogram_tester_.ExpectTimeBucketCount(
       "ChromeOS.Settings.TimeUntilChange.FirstChange",
-      /*sample=*/base::TimeDelta::FromSeconds(5),
+      /*sample=*/base::Seconds(5),
       /*count=*/1);
 }
 
diff --git a/chrome/browser/ui/webui/settings/recent_site_settings_helper_unittest.cc b/chrome/browser/ui/webui/settings/recent_site_settings_helper_unittest.cc
index c7bcb9d..820d23f 100644
--- a/chrome/browser/ui/webui/settings/recent_site_settings_helper_unittest.cc
+++ b/chrome/browser/ui/webui/settings/recent_site_settings_helper_unittest.cc
@@ -97,7 +97,7 @@
     auto_blocker->RecordDismissAndEmbargo(url1, kNotifications, false);
   }
 
-  clock()->Advance(base::TimeDelta::FromHours(2));
+  clock()->Advance(base::Hours(2));
   map->SetContentSettingDefaultScope(url2, url2, kImages, kAllowed);
   CreateIncognitoProfile();
 
@@ -123,13 +123,13 @@
   }
 
   // Ensure incognito generated permissions are separated correctly.
-  clock()->Advance(base::TimeDelta::FromHours(1));
+  clock()->Advance(base::Hours(1));
   HostContentSettingsMap* incognito_map =
       HostContentSettingsMapFactory::GetForProfile(incognito_profile());
   incognito_map->SetClockForTesting(clock());
   incognito_map->SetContentSettingDefaultScope(url1, url1, kImages, kAllowed);
 
-  clock()->Advance(base::TimeDelta::FromHours(1));
+  clock()->Advance(base::Hours(1));
   permissions::PermissionDecisionAutoBlocker* incognito_auto_blocker =
       PermissionDecisionAutoBlockerFactory::GetForProfile(incognito_profile());
   incognito_auto_blocker->SetClockForTesting(clock());
@@ -168,15 +168,15 @@
   // maximum number of sources and that order of origins is based on the
   // most recent permission for that source.
   const GURL url3("https://example.com:8443");
-  clock()->Advance(base::TimeDelta::FromHours(1));
+  clock()->Advance(base::Hours(1));
   map->SetContentSettingDefaultScope(url1, url1, kImages, kBlocked);
-  clock()->Advance(base::TimeDelta::FromHours(1));
+  clock()->Advance(base::Hours(1));
   for (int i = 0; i < 4; ++i) {
     auto_blocker->RecordIgnoreAndEmbargo(url3, kNotifications, false);
   }
-  clock()->Advance(base::TimeDelta::FromHours(1));
+  clock()->Advance(base::Hours(1));
   map->SetContentSettingDefaultScope(url2, url2, kPopups, kAllowed);
-  clock()->Advance(base::TimeDelta::FromHours(1));
+  clock()->Advance(base::Hours(1));
   map->SetContentSettingDefaultScope(url3, url3, kPopups, kBlocked);
 
   recent_permissions = GetRecentSitePermissions(profile(), content_types, 3);
@@ -216,7 +216,7 @@
 
   // Assign a new permission to a previously recorded site whose other
   // permissions are too old and ensure only the recent permission is returned.
-  clock()->Advance(base::TimeDelta::FromHours(1));
+  clock()->Advance(base::Hours(1));
   incognito_map->SetContentSettingDefaultScope(url1, url1, kPopups, kBlocked);
   recent_permissions = GetRecentSitePermissions(profile(), content_types, 3);
   {
@@ -232,7 +232,7 @@
 
   // Reset a changed permission to default and confirm it does not appear as a
   // recent permission change.
-  clock()->Advance(base::TimeDelta::FromHours(1));
+  clock()->Advance(base::Hours(1));
   map->SetContentSettingDefaultScope(url3, url3, kPopups, kDefault);
   recent_permissions = GetRecentSitePermissions(profile(), content_types, 3);
   {
@@ -247,7 +247,7 @@
   // considered. I.e. url3 now has an expired embargo and a default setting. It
   // should not be considered and should allow the images setting for url1 to
   // be included as a recent change.
-  clock()->Advance(base::TimeDelta::FromDays(7));
+  clock()->Advance(base::Days(7));
   auto_blocker->RecordDismissAndEmbargo(url1, kNotifications, false);
   recent_permissions = GetRecentSitePermissions(profile(), content_types, 3);
   {
@@ -271,11 +271,11 @@
 
   // Confirm that powerful permissions are listed first, and that other
   // permissions remain sorted by time.
-  clock()->Advance(base::TimeDelta::FromHours(1));
+  clock()->Advance(base::Hours(1));
   map->SetContentSettingDefaultScope(url1, url1, kPopups, kBlocked);
-  clock()->Advance(base::TimeDelta::FromHours(1));
+  clock()->Advance(base::Hours(1));
   map->SetContentSettingDefaultScope(url1, url1, kLocation, kAllowed);
-  clock()->Advance(base::TimeDelta::FromHours(1));
+  clock()->Advance(base::Hours(1));
   map->SetContentSettingDefaultScope(url1, url1, kImages, kAllowed);
 
   recent_permissions = GetRecentSitePermissions(profile(), content_types, 3);
@@ -294,9 +294,9 @@
   // Check that adding a conflicting permission to the regular profile after
   // the incognito profile has been created returns correctly for each profile.
   const GURL url4("http://example.com:8443");
-  clock()->Advance(base::TimeDelta::FromHours(1));
+  clock()->Advance(base::Hours(1));
   incognito_map->SetContentSettingDefaultScope(url4, url4, kLocation, kAllowed);
-  clock()->Advance(base::TimeDelta::FromHours(1));
+  clock()->Advance(base::Hours(1));
   map->SetContentSettingDefaultScope(url4, url4, kLocation, kBlocked);
 
   recent_permissions = GetRecentSitePermissions(profile(), content_types, 3);
@@ -316,7 +316,7 @@
 
   // Check that resetting the permission to default in the regular profile
   // does not affect the permission in the incognito profile.
-  clock()->Advance(base::TimeDelta::FromHours(1));
+  clock()->Advance(base::Hours(1));
   map->SetContentSettingDefaultScope(url4, url4, kLocation, kDefault);
 
   recent_permissions = GetRecentSitePermissions(profile(), content_types, 3);
diff --git a/chrome/browser/ui/webui/settings/reset_settings_handler.cc b/chrome/browser/ui/webui/settings/reset_settings_handler.cc
index 93124db..28dd707 100644
--- a/chrome/browser/ui/webui/settings/reset_settings_handler.cc
+++ b/chrome/browser/ui/webui/settings/reset_settings_handler.cc
@@ -80,8 +80,7 @@
 
   // Otherwise, only show the banner if it has been less than |kBannerShowTime|
   // since reset.
-  static constexpr base::TimeDelta kBannerShowTime =
-      base::TimeDelta::FromDays(5);
+  static constexpr base::TimeDelta kBannerShowTime = base::Days(5);
   const base::TimeDelta since_reset = base::Time::Now() - reset_time;
   return since_reset < kBannerShowTime;
 }
diff --git a/chrome/browser/ui/webui/settings/safety_check_handler.cc b/chrome/browser/ui/webui/settings/safety_check_handler.cc
index df43f02..88250c1 100644
--- a/chrome/browser/ui/webui/settings/safety_check_handler.cc
+++ b/chrome/browser/ui/webui/settings/safety_check_handler.cc
@@ -203,8 +203,8 @@
   // TODO(crbug.com/1139806): Part of the above workaround. If the timestamp in
   // prefs is null or older than the one from the registry, then return the one
   // from the registry. Otherwise return the one from prefs.
-  base::Time end_time_from_registry = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(end_time));
+  base::Time end_time_from_registry =
+      base::Time::FromDeltaSinceWindowsEpoch(base::Microseconds(end_time));
   if (end_time_from_prefs.is_null() ||
       end_time_from_prefs < end_time_from_registry) {
     return end_time_from_registry;
@@ -368,7 +368,7 @@
       FROM_HERE,
       base::BindOnce(&SafetyCheckHandler::PerformSafetyCheck,
                      weak_ptr_factory_.GetWeakPtr()),
-      base::TimeDelta::FromSeconds(1));
+      base::Seconds(1));
 }
 
 void SafetyCheckHandler::HandleGetParentRanDisplayString(
@@ -788,7 +788,7 @@
   base::Time::Exploded system_time_exploded;
   system_time.LocalExplode(&system_time_exploded);
 
-  const base::Time time_yesterday = system_time - base::TimeDelta::FromDays(1);
+  const base::Time time_yesterday = system_time - base::Days(1);
   base::Time::Exploded time_yesterday_exploded;
   time_yesterday.LocalExplode(&time_yesterday_exploded);
 
diff --git a/chrome/browser/ui/webui/settings/safety_check_handler_unittest.cc b/chrome/browser/ui/webui/settings/safety_check_handler_unittest.cc
index 25f401a..b4179a67 100644
--- a/chrome/browser/ui/webui/settings/safety_check_handler_unittest.cc
+++ b/chrome/browser/ui/webui/settings/safety_check_handler_unittest.cc
@@ -117,13 +117,13 @@
     // same day. This test time is hard coded to prevent DST flakiness, see
     // crbug.com/1066576.
     return base::Time::FromDoubleT(1609459199).LocalMidnight() -
-           base::TimeDelta::FromSeconds(1);
+           base::Seconds(1);
   }
 #if defined(OS_WIN) && BUILDFLAG(GOOGLE_CHROME_BRANDING)
   base::Time FetchChromeCleanerScanCompletionTimestamp() override {
     // 2 seconds before midnight Dec 31st 2020.
     return base::Time::FromDoubleT(1609459199).LocalMidnight() -
-           base::TimeDelta::FromSeconds(2);
+           base::Seconds(2);
   }
 #endif
 };
@@ -1664,8 +1664,7 @@
   // same day. This test time is hard coded to prevent DST flakiness, see
   // crbug.com/1066576.
   const base::Time system_time =
-      base::Time::FromDoubleT(1609459199).LocalMidnight() -
-      base::TimeDelta::FromSeconds(1);
+      base::Time::FromDoubleT(1609459199).LocalMidnight() - base::Seconds(1);
   // Display strings for given time deltas in seconds.
   std::vector<std::tuple<std::u16string, int>> tuples{
       std::make_tuple(u"a moment ago", 1),
@@ -1684,8 +1683,7 @@
       std::make_tuple(u"3 days ago", 60 * 60 * 24 * 4 - 1)};
   // Test that above time deltas produce the corresponding display strings.
   for (auto tuple : tuples) {
-    const base::Time time =
-        system_time - base::TimeDelta::FromSeconds(std::get<1>(tuple));
+    const base::Time time = system_time - base::Seconds(std::get<1>(tuple));
     const std::u16string display_string =
         safety_check_->GetStringForParentRan(time, system_time);
     EXPECT_EQ(base::StrCat({u"Safety check ran ", std::get<0>(tuple)}),
@@ -1707,8 +1705,7 @@
   // same day. This test time is hard coded to prevent DST flakiness, see
   // crbug.com/1066576.
   const base::Time system_time =
-      base::Time::FromDoubleT(1609459199).LocalMidnight() -
-      base::TimeDelta::FromSeconds(1);
+      base::Time::FromDoubleT(1609459199).LocalMidnight() - base::Seconds(1);
   // Display strings for given time deltas in seconds.
   std::vector<std::tuple<std::u16string, int>> tuples{
       std::make_tuple(u"just now", 1),
@@ -1727,8 +1724,7 @@
       std::make_tuple(u"3 days ago", 60 * 60 * 24 * 4 - 1)};
   // Test that above time deltas produce the corresponding display strings.
   for (auto tuple : tuples) {
-    const base::Time time =
-        system_time - base::TimeDelta::FromSeconds(std::get<1>(tuple));
+    const base::Time time = system_time - base::Seconds(std::get<1>(tuple));
     display_string =
         safety_check_->GetStringForChromeCleanerRan(time, system_time);
     ReplaceBrowserName(&display_string);
diff --git a/chrome/browser/ui/webui/settings/site_settings_handler_unittest.cc b/chrome/browser/ui/webui/settings/site_settings_handler_unittest.cc
index bbf26a9..297add2e 100644
--- a/chrome/browser/ui/webui/settings/site_settings_handler_unittest.cc
+++ b/chrome/browser/ui/webui/settings/site_settings_handler_unittest.cc
@@ -657,7 +657,7 @@
   }
 
   // Check |url4| disappears from the list when its embargo expires.
-  clock.Advance(base::TimeDelta::FromDays(8));
+  clock.Advance(base::Days(8));
   handler()->HandleGetAllSites(&base::Value::AsListValue(get_all_sites_args));
 
   {
@@ -682,7 +682,7 @@
       CONTENT_SETTING_BLOCK,
       auto_blocker->GetEmbargoResult(url3, ContentSettingsType::NOTIFICATIONS)
           .content_setting);
-  clock.Advance(base::TimeDelta::FromDays(8));
+  clock.Advance(base::Days(8));
   EXPECT_EQ(
       CONTENT_SETTING_ASK,
       auto_blocker->GetEmbargoResult(url3, ContentSettingsType::NOTIFICATIONS)
@@ -711,7 +711,7 @@
       CONTENT_SETTING_BLOCK,
       auto_blocker->GetEmbargoResult(url5, ContentSettingsType::NOTIFICATIONS)
           .content_setting);
-  clock.Advance(base::TimeDelta::FromDays(8));
+  clock.Advance(base::Days(8));
   EXPECT_EQ(
       CONTENT_SETTING_ASK,
       auto_blocker->GetEmbargoResult(url5, ContentSettingsType::NOTIFICATIONS)
@@ -761,7 +761,7 @@
   permissions::PermissionDecisionAutoBlocker* auto_blocker =
       PermissionDecisionAutoBlockerFactory::GetForProfile(profile());
   auto_blocker->SetClockForTesting(&clock);
-  clock.Advance(base::TimeDelta::FromHours(1));
+  clock.Advance(base::Hours(1));
 
   // Test recent permissions is empty when there are no preferences.
   handler()->HandleGetRecentSitePermissions(
@@ -786,14 +786,14 @@
     auto_blocker->RecordDismissAndEmbargo(
         url1, ContentSettingsType::NOTIFICATIONS, false);
 
-  clock.Advance(base::TimeDelta::FromHours(2));
-  clock.Advance(base::TimeDelta::FromHours(1));
+  clock.Advance(base::Hours(2));
+  clock.Advance(base::Hours(1));
   CreateIncognitoProfile();
   HostContentSettingsMap* incognito_map =
       HostContentSettingsMapFactory::GetForProfile(incognito_profile());
   incognito_map->SetClockForTesting(&clock);
 
-  clock.Advance(base::TimeDelta::FromHours(1));
+  clock.Advance(base::Hours(1));
   permissions::PermissionDecisionAutoBlocker* incognito_auto_blocker =
       PermissionDecisionAutoBlockerFactory::GetForProfile(incognito_profile());
   incognito_auto_blocker->SetClockForTesting(&clock);
diff --git a/chrome/browser/ui/webui/signin/login_ui_test_utils.cc b/chrome/browser/ui/webui/signin/login_ui_test_utils.cc
index d82d5a5..3294dd5 100644
--- a/chrome/browser/ui/webui/signin/login_ui_test_utils.cc
+++ b/chrome/browser/ui/webui/signin/login_ui_test_utils.cc
@@ -66,7 +66,7 @@
 
     base::OneShotTimer timer;
     timer.Start(
-        FROM_HERE, base::TimeDelta::FromSeconds(30),
+        FROM_HERE, base::Seconds(30),
         base::BindOnce(&SignInObserver::OnTimeout, base::Unretained(this)));
     running_ = true;
     message_loop_runner_ = new MessageLoopRunner;
@@ -157,7 +157,7 @@
   for (int attempt = 0; attempt < 10; ++attempt) {
     if (condition.Run())
       return;
-    RunLoopFor(base::TimeDelta::FromMilliseconds(1000));
+    RunLoopFor(base::Milliseconds(1000));
   }
 
   FAIL() << error_message;
@@ -485,7 +485,7 @@
       confirmation_closed_observer.WaitForConfirmationClosed();
       return true;
     }
-    RunLoopFor(base::TimeDelta::FromMilliseconds(1000));
+    RunLoopFor(base::Milliseconds(1000));
   }
   return false;
 }
@@ -510,7 +510,7 @@
             browser, action)) {
       return true;
     }
-    RunLoopFor(base::TimeDelta::FromMilliseconds(1000));
+    RunLoopFor(base::Milliseconds(1000));
   }
   return false;
 }
@@ -523,7 +523,7 @@
     if (SigninViewControllerTestUtil::TryCompleteReauthConfirmationDialog(
             browser, action))
       return true;
-    RunLoopFor(base::TimeDelta::FromMilliseconds(1000));
+    RunLoopFor(base::Milliseconds(1000));
   }
   return false;
 }
diff --git a/chrome/browser/ui/webui/signin/login_ui_test_utils.h b/chrome/browser/ui/webui/signin/login_ui_test_utils.h
index 3a6f109..a82ddc9 100644
--- a/chrome/browser/ui/webui/signin/login_ui_test_utils.h
+++ b/chrome/browser/ui/webui/signin/login_ui_test_utils.h
@@ -16,8 +16,7 @@
 
 namespace login_ui_test_utils {
 
-constexpr base::TimeDelta kSyncConfirmationDialogTimeout =
-    base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kSyncConfirmationDialogTimeout = base::Seconds(30);
 
 // Blocks until the login UI is available and ready for authorization.
 void WaitUntilUIReady(Browser* browser);
diff --git a/chrome/browser/ui/webui/tab_search/tab_search_page_handler.cc b/chrome/browser/ui/webui/tab_search/tab_search_page_handler.cc
index 5c5c69c3..f32d969 100644
--- a/chrome/browser/ui/webui/tab_search/tab_search_page_handler.cc
+++ b/chrome/browser/ui/webui/tab_search/tab_search_page_handler.cc
@@ -36,8 +36,7 @@
 #include "ui/base/l10n/time_format.h"
 
 namespace {
-constexpr base::TimeDelta kTabsChangeDelay =
-    base::TimeDelta::FromMilliseconds(50);
+constexpr base::TimeDelta kTabsChangeDelay = base::Milliseconds(50);
 
 std::string GetLastActiveElapsedText(
     const base::TimeTicks& last_active_time_ticks) {
diff --git a/chrome/browser/ui/webui/tab_strip/tab_strip_page_handler.cc b/chrome/browser/ui/webui/tab_strip/tab_strip_page_handler.cc
index eef40d47..274fccd8 100644
--- a/chrome/browser/ui/webui/tab_strip/tab_strip_page_handler.cc
+++ b/chrome/browser/ui/webui/tab_strip/tab_strip_page_handler.cc
@@ -62,8 +62,7 @@
 // Note: For better user experience, this is made shorter than
 // ET_GESTURE_LONG_PRESS delay, which is too long for this case, e.g., about
 // 650ms.
-constexpr base::TimeDelta kTouchLongpressDelay =
-    base::TimeDelta::FromMilliseconds(300);
+constexpr base::TimeDelta kTouchLongpressDelay = base::Milliseconds(300);
 
 class WebUIBackgroundMenuModel : public ui::SimpleMenuModel {
  public:
@@ -819,7 +818,7 @@
 
 void TabStripPageHandler::ReportTabActivationDuration(uint32_t duration_ms) {
   UMA_HISTOGRAM_TIMES("WebUITabStrip.TabActivation",
-                      base::TimeDelta::FromMilliseconds(duration_ms));
+                      base::Milliseconds(duration_ms));
   base::UmaHistogramEnumeration("TabStrip.Tab.WebUI.ActivationAction",
                                 TabStripModel::TabActivationTypes::kTab);
 }
@@ -827,13 +826,13 @@
 void TabStripPageHandler::ReportTabDataReceivedDuration(uint32_t tab_count,
                                                         uint32_t duration_ms) {
   ReportTabDurationHistogram("TabDataReceived", tab_count,
-                             base::TimeDelta::FromMilliseconds(duration_ms));
+                             base::Milliseconds(duration_ms));
 }
 
 void TabStripPageHandler::ReportTabCreationDuration(uint32_t tab_count,
                                                     uint32_t duration_ms) {
   ReportTabDurationHistogram("TabCreation", tab_count,
-                             base::TimeDelta::FromMilliseconds(duration_ms));
+                             base::Milliseconds(duration_ms));
 }
 
 // Callback passed to |thumbnail_tracker_|. Called when a tab's thumbnail
diff --git a/chrome/browser/ui/webui/tab_strip/tab_strip_ui_metrics.cc b/chrome/browser/ui/webui/tab_strip/tab_strip_ui_metrics.cc
index d8217f0..3d6c0ad4 100644
--- a/chrome/browser/ui/webui/tab_strip/tab_strip_ui_metrics.cc
+++ b/chrome/browser/ui/webui/tab_strip/tab_strip_ui_metrics.cc
@@ -21,6 +21,5 @@
   // closing it. Hence it's a reasonable lower bound. 1 minute is a
   // fairly arbitrary upper bound.
   UMA_HISTOGRAM_CUSTOM_TIMES("WebUITabStrip.OpenDuration", duration,
-                             base::TimeDelta::FromMilliseconds(500),
-                             base::TimeDelta::FromMinutes(1), 50);
+                             base::Milliseconds(500), base::Minutes(1), 50);
 }
diff --git a/chrome/browser/ui/webui/webui_load_timer.cc b/chrome/browser/ui/webui/webui_load_timer.cc
index 3330b385..24bd6ec 100644
--- a/chrome/browser/ui/webui/webui_load_timer.cc
+++ b/chrome/browser/ui/webui/webui_load_timer.cc
@@ -16,8 +16,7 @@
 // call this frequently.
 void CallUmaHistogramTimes(const std::string& name, base::TimeDelta duration) {
   base::HistogramBase* histogram = base::Histogram::FactoryTimeGet(
-      name, base::TimeDelta::FromMilliseconds(1),
-      base::TimeDelta::FromSeconds(10), 50,
+      name, base::Milliseconds(1), base::Seconds(10), 50,
       base::HistogramBase::kUmaTargetedHistogramFlag);
   DCHECK(histogram);
   histogram->AddTime(duration);
diff --git a/chrome/browser/upgrade_detector/installed_version_poller.cc b/chrome/browser/upgrade_detector/installed_version_poller.cc
index ed656b3d..70fdd9ad 100644
--- a/chrome/browser/upgrade_detector/installed_version_poller.cc
+++ b/chrome/browser/upgrade_detector/installed_version_poller.cc
@@ -86,7 +86,7 @@
       cmd_line.GetSwitchValueASCII(switches::kCheckForUpdateIntervalSec);
   int seconds;
   if (!seconds_str.empty() && base::StringToInt(seconds_str, &seconds))
-    return base::TimeDelta::FromSeconds(seconds);
+    return base::Seconds(seconds);
   return InstalledVersionPoller::kDefaultPollingInterval;
 }
 
@@ -115,7 +115,7 @@
 
 // static
 const base::TimeDelta InstalledVersionPoller::kDefaultPollingInterval =
-    base::TimeDelta::FromHours(2);
+    base::Hours(2);
 
 InstalledVersionPoller::InstalledVersionPoller(BuildState* build_state)
     : InstalledVersionPoller(build_state,
@@ -160,7 +160,7 @@
     // Wait ten seconds before polling for the new version in case the monitor
     // provides multiple notifications during a normal update. Repeat
     // notifications will push back the poll.
-    timer_.Start(FROM_HERE, base::TimeDelta::FromSeconds(10),
+    timer_.Start(FROM_HERE, base::Seconds(10),
                  base::BindOnce(&InstalledVersionPoller::Poll,
                                 base::Unretained(this), PollType::kMonitor));
   } else {
diff --git a/chrome/browser/upgrade_detector/installed_version_poller_unittest.cc b/chrome/browser/upgrade_detector/installed_version_poller_unittest.cc
index 225ed18..3c1b071 100644
--- a/chrome/browser/upgrade_detector/installed_version_poller_unittest.cc
+++ b/chrome/browser/upgrade_detector/installed_version_poller_unittest.cc
@@ -325,5 +325,5 @@
 
   // Expect a poll in ten seconds.
   EXPECT_CALL(callback, Run(_));
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
 }
diff --git a/chrome/browser/upgrade_detector/upgrade_detector.cc b/chrome/browser/upgrade_detector/upgrade_detector.cc
index b7348885..1444dabe 100644
--- a/chrome/browser/upgrade_detector/upgrade_detector.cc
+++ b/chrome/browser/upgrade_detector/upgrade_detector.cc
@@ -37,12 +37,11 @@
 constexpr int kIdleAmount = 2;  // Hours (or seconds, if testing).
 
 // Maximum duration for a relaunch window.
-constexpr base::TimeDelta kRelaunchWindowMaxDuration =
-    base::TimeDelta::FromHours(24);
+constexpr base::TimeDelta kRelaunchWindowMaxDuration = base::Hours(24);
 
 // The default amount of time between the detector's annoyance level change
 // from UPGRADE_ANNOYANCE_GRACE to UPGRADE_ANNOYANCE_HIGH.
-constexpr auto kDefaultGracePeriod = base::TimeDelta::FromHours(1);
+constexpr auto kDefaultGracePeriod = base::Hours(1);
 
 bool UseTestingIntervals() {
   // If a command line parameter specifying how long the upgrade check should
@@ -84,8 +83,7 @@
 
 // Returns random TimeDelta uniformly selected between zero and `max`.
 base::TimeDelta GenRandomTimeDelta(base::TimeDelta max) {
-  return base::TimeDelta::FromMicroseconds(
-      base::RandGenerator(max.InMicroseconds()));
+  return base::Microseconds(base::RandGenerator(max.InMicroseconds()));
 }
 
 }  // namespace
@@ -185,10 +183,10 @@
       local_state->FindPreference(prefs::kRelaunchNotificationPeriod);
   const int value = preference->GetValue()->GetInt();
   // Enforce the preference's documented minimum value.
-  constexpr base::TimeDelta kMinValue = base::TimeDelta::FromHours(1);
+  constexpr base::TimeDelta kMinValue = base::Hours(1);
   if (preference->IsDefaultValue() || value < kMinValue.InMilliseconds())
     return base::TimeDelta();
-  return base::TimeDelta::FromMilliseconds(value);
+  return base::Milliseconds(value);
 }
 
 // static
@@ -223,24 +221,23 @@
     // Push the deadline forward into a random interval in the next day's
     // window. The next day may be 25, 24 or 23 hours in the future. Take a stab
     // at 24 hours (the norm) and retry once if needed.
-    base::Time next_window_start = ComputeRelaunchWindowStartForDay(
-        window, deadline + base::TimeDelta::FromHours(24));
+    base::Time next_window_start =
+        ComputeRelaunchWindowStartForDay(window, deadline + base::Hours(24));
     if (next_window_start == window_start) {
       // The clocks must be set back, yielding a longer day. For example, 24
       // hours after a deadline of 00:30 could be at 23:30 on the same day due
       // to a DST change in the interim that sets clocks backward by one hour.
       // Try again. Use 26 rather than 25 in case some jurisdiction decides to
       // implement a shift of greater than 1 hour.
-      next_window_start = ComputeRelaunchWindowStartForDay(
-          window, deadline + base::TimeDelta::FromHours(26));
-    } else if (next_window_start - window_start >=
-               base::TimeDelta::FromHours(26)) {
+      next_window_start =
+          ComputeRelaunchWindowStartForDay(window, deadline + base::Hours(26));
+    } else if (next_window_start - window_start >= base::Hours(26)) {
       // The clocks must be set forward, yielding a shorter day, and we jumped
       // two days rather than one. For example, 24 hours after a deadline of
       // 23:30 could be at 00:30 two days later due to a DST change in the
       // interim that sets clocks forward by one hour". Try again.
-      next_window_start = ComputeRelaunchWindowStartForDay(
-          window, deadline + base::TimeDelta::FromHours(23));
+      next_window_start =
+          ComputeRelaunchWindowStartForDay(window, deadline + base::Hours(23));
     }
     return next_window_start + GenRandomTimeDelta(duration);
   }
@@ -251,8 +248,8 @@
 
   // Compute the relaunch window starting on the day prior to the deadline for
   // cases where the relaunch window straddles midnight.
-  base::Time prev_window_start = ComputeRelaunchWindowStartForDay(
-      window, deadline - base::TimeDelta::FromHours(24));
+  base::Time prev_window_start =
+      ComputeRelaunchWindowStartForDay(window, deadline - base::Hours(24));
   // The above cases do not apply here:
   // a) Previous day window jumped two days rather than one - This could arise
   // if, for example, 24 hours before the deadline of 00:30 is 23:30 two days
@@ -300,7 +297,7 @@
     return absl::nullopt;
 
   return RelaunchWindow(hour.value(), minute.value(),
-                        base::TimeDelta::FromMinutes(duration_mins.value()));
+                        base::Minutes(duration_mins.value()));
 }
 
 // static
@@ -379,9 +376,8 @@
 void UpgradeDetector::TriggerCriticalUpdate() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   const base::TimeDelta idle_timer =
-      UseTestingIntervals()
-          ? base::TimeDelta::FromSeconds(kIdleRepeatingTimerWait)
-          : base::TimeDelta::FromMinutes(kIdleRepeatingTimerWait);
+      UseTestingIntervals() ? base::Seconds(kIdleRepeatingTimerWait)
+                            : base::Minutes(kIdleRepeatingTimerWait);
   idle_check_timer_.Start(FROM_HERE, idle_timer, this,
                           &UpgradeDetector::CheckIdle);
 }
diff --git a/chrome/browser/upgrade_detector/upgrade_detector.h b/chrome/browser/upgrade_detector/upgrade_detector.h
index 9781ede..9861bc2 100644
--- a/chrome/browser/upgrade_detector/upgrade_detector.h
+++ b/chrome/browser/upgrade_detector/upgrade_detector.h
@@ -62,8 +62,7 @@
 
     bool IsValid() const {
       return hour >= 0 && hour <= 23 && minute >= 0 && minute <= 59 &&
-             duration >= base::TimeDelta::FromMinutes(1) &&
-             duration != base::TimeDelta::Max();
+             duration >= base::Minutes(1) && duration != base::TimeDelta::Max();
     }
 
     int hour;
diff --git a/chrome/browser/upgrade_detector/upgrade_detector_chromeos.cc b/chrome/browser/upgrade_detector/upgrade_detector_chromeos.cc
index 01532114..1e1b2c8f 100644
--- a/chrome/browser/upgrade_detector/upgrade_detector_chromeos.cc
+++ b/chrome/browser/upgrade_detector/upgrade_detector_chromeos.cc
@@ -34,18 +34,17 @@
 
 // How long to wait (each cycle) before checking which severity level we should
 // be at. Once we reach the highest severity, the timer will stop.
-constexpr base::TimeDelta kNotifyCycleDelta = base::TimeDelta::FromMinutes(20);
+constexpr base::TimeDelta kNotifyCycleDelta = base::Minutes(20);
 
 // The default amount of time it takes for the detector's annoyance level
 // (upgrade_notification_stage()) to reach UPGRADE_ANNOYANCE_HIGH once an
 // upgrade is detected.
-constexpr base::TimeDelta kDefaultHighThreshold = base::TimeDelta::FromDays(7);
+constexpr base::TimeDelta kDefaultHighThreshold = base::Days(7);
 
 // The default amount of time it takes for the detector's annoyance level
 // (upgrade_notification_stage()) to reach UPGRADE_ANNOYANCE_ELEVATED once an
 // upgrade is detected.
-constexpr base::TimeDelta kDefaultElevatedThreshold =
-    base::TimeDelta::FromDays(4);
+constexpr base::TimeDelta kDefaultElevatedThreshold = base::Days(4);
 
 // The default amount of time between the detector's annoyance level change
 // from UPGRADE_ANNOYANCE_ELEVATED to UPGRADE_ANNOYANCE_HIGH.
@@ -168,10 +167,10 @@
       local_state->FindPreference(prefs::kRelaunchHeadsUpPeriod);
   const int value = preference->GetValue()->GetInt();
   // Enforce the preference's documented minimum value.
-  static constexpr base::TimeDelta kMinValue = base::TimeDelta::FromHours(1);
+  static constexpr base::TimeDelta kMinValue = base::Hours(1);
   if (preference->IsDefaultValue() || value < kMinValue.InMilliseconds())
     return base::TimeDelta();
-  return base::TimeDelta::FromMilliseconds(value);
+  return base::Milliseconds(value);
 }
 
 void UpgradeDetectorChromeos::CalculateDeadlines() {
@@ -326,6 +325,5 @@
 // static
 UpgradeDetector::RelaunchWindow UpgradeDetector::GetDefaultRelaunchWindow() {
   // Two hours starting at 2am.
-  return RelaunchWindow(/*start_hour=*/2, /*start_minute=*/0,
-                        base::TimeDelta::FromHours(2));
+  return RelaunchWindow(/*start_hour=*/2, /*start_minute=*/0, base::Hours(2));
 }
diff --git a/chrome/browser/upgrade_detector/upgrade_detector_chromeos_unittest.cc b/chrome/browser/upgrade_detector/upgrade_detector_chromeos_unittest.cc
index 908cd884..ab5c39f 100644
--- a/chrome/browser/upgrade_detector/upgrade_detector_chromeos_unittest.cc
+++ b/chrome/browser/upgrade_detector/upgrade_detector_chromeos_unittest.cc
@@ -112,7 +112,7 @@
       original_tz_ = env_tz;
     env_->SetVar("TZ", "UTC");
     tzset();
-    FastForwardBy(base::TimeDelta::FromHours(2));
+    FastForwardBy(base::Hours(2));
   }
 
   ~UpgradeDetectorChromeosTest() override {
@@ -265,14 +265,14 @@
   upgrade_detector.Init();
   ::testing::StrictMock<MockUpgradeObserver> mock_observer(&upgrade_detector);
 
-  const auto notification_period = base::TimeDelta::FromDays(7);
-  const auto heads_up_period = base::TimeDelta::FromDays(1);
-  const auto grace_period = base::TimeDelta::FromHours(1);
+  const auto notification_period = base::Days(7);
+  const auto heads_up_period = base::Days(1);
+  const auto grace_period = base::Hours(1);
   SetNotificationPeriodPref(notification_period);
   SetHeadsUpPeriodPref(heads_up_period);
 
   const auto no_notification_till =
-      notification_period - heads_up_period - base::TimeDelta::FromMinutes(1);
+      notification_period - heads_up_period - base::Minutes(1);
   const auto first_notification_at = notification_period - heads_up_period;
   const auto second_notification_at = notification_period - grace_period;
   const auto third_notification_at = notification_period;
@@ -318,12 +318,12 @@
   upgrade_detector.Init();
   ::testing::StrictMock<MockUpgradeObserver> mock_observer(&upgrade_detector);
 
-  SetNotificationPeriodPref(base::TimeDelta::FromDays(4));
-  SetHeadsUpPeriodPref(base::TimeDelta::FromMinutes(90));
+  SetNotificationPeriodPref(base::Days(4));
+  SetHeadsUpPeriodPref(base::Minutes(90));
 
   // Observer should not get notifications about new version first 3 days.
   NotifyUpdateReadyToInstall("1.0.0.0");
-  FastForwardBy(base::TimeDelta::FromDays(3));
+  FastForwardBy(base::Days(3));
   RunUntilIdle();
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.upgrade_notification_stage(),
@@ -331,8 +331,7 @@
 
   // Observer should get notifications because of elevated annoyance reached.
   EXPECT_CALL(mock_observer, OnUpgradeRecommended());
-  FastForwardBy(base::TimeDelta::FromDays(1) -
-                base::TimeDelta::FromMinutes(90));
+  FastForwardBy(base::Days(1) - base::Minutes(90));
   RunUntilIdle();
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.upgrade_notification_stage(),
@@ -342,7 +341,7 @@
   // is midway of elevated and high deadline.
   EXPECT_CALL(mock_observer, OnUpgradeRecommended())
       .Times(testing::AnyNumber());
-  FastForwardBy(base::TimeDelta::FromMinutes(45));
+  FastForwardBy(base::Minutes(45));
   RunUntilIdle();
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.upgrade_notification_stage(),
@@ -351,7 +350,7 @@
   // Observer should get notifications as annoyance level is back to elevated
   // because of HeadsUpPeriod change.
   EXPECT_CALL(mock_observer, OnUpgradeRecommended());
-  SetHeadsUpPeriodPref(base::TimeDelta::FromMinutes(60));
+  SetHeadsUpPeriodPref(base::Minutes(60));
   RunUntilIdle();
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.upgrade_notification_stage(),
@@ -360,7 +359,7 @@
   // Observer should get notifications as annoyance level moves to grace because
   // of HeadsUpPeriod change.
   EXPECT_CALL(mock_observer, OnUpgradeRecommended());
-  SetHeadsUpPeriodPref(base::TimeDelta::FromMinutes(120));
+  SetHeadsUpPeriodPref(base::Minutes(120));
   RunUntilIdle();
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.upgrade_notification_stage(),
@@ -369,7 +368,7 @@
   // Observer should get notifications as annoyance level moves to none because
   // of NotificationPeriod change.
   EXPECT_CALL(mock_observer, OnUpgradeRecommended());
-  SetNotificationPeriodPref(base::TimeDelta::FromDays(7));
+  SetNotificationPeriodPref(base::Days(7));
   RunUntilIdle();
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.upgrade_notification_stage(),
@@ -378,8 +377,7 @@
   // UPGRADE_ANNOYANCE_HIGH at the end of the period.
   EXPECT_CALL(mock_observer, OnUpgradeRecommended())
       .Times(testing::AnyNumber());
-  FastForwardBy(base::TimeDelta::FromDays(3) +
-                base::TimeDelta::FromMinutes(45));
+  FastForwardBy(base::Days(3) + base::Minutes(45));
   RunUntilIdle();
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.upgrade_notification_stage(),
@@ -394,12 +392,12 @@
   upgrade_detector.Init();
   ::testing::StrictMock<MockUpgradeObserver> mock_observer(&upgrade_detector);
 
-  SetNotificationPeriodPref(base::TimeDelta::FromDays(7));
-  SetHeadsUpPeriodPref(base::TimeDelta::FromDays(1));
+  SetNotificationPeriodPref(base::Days(7));
+  SetHeadsUpPeriodPref(base::Days(1));
 
   // Observer should not get notifications about new version first 4 days.
   NotifyUpdateReadyToInstall("1.0.0.0");
-  FastForwardBy(base::TimeDelta::FromDays(4));
+  FastForwardBy(base::Days(4));
   RunUntilIdle();
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.upgrade_notification_stage(),
@@ -407,7 +405,7 @@
 
   // Observer should get notifications because of HeadsUpPeriod change.
   EXPECT_CALL(mock_observer, OnUpgradeRecommended());
-  SetHeadsUpPeriodPref(base::TimeDelta::FromDays(3));
+  SetHeadsUpPeriodPref(base::Days(3));
   RunUntilIdle();
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.upgrade_notification_stage(),
@@ -416,7 +414,7 @@
   // UPGRADE_ANNOYANCE_HIGH at the end of the period.
   EXPECT_CALL(mock_observer, OnUpgradeRecommended())
       .Times(testing::AnyNumber());
-  FastForwardBy(base::TimeDelta::FromDays(3));
+  FastForwardBy(base::Days(3));
   RunUntilIdle();
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.upgrade_notification_stage(),
@@ -431,12 +429,12 @@
   upgrade_detector.Init();
   ::testing::StrictMock<MockUpgradeObserver> mock_observer(&upgrade_detector);
 
-  SetNotificationPeriodPref(base::TimeDelta::FromDays(7));
-  SetHeadsUpPeriodPref(base::TimeDelta::FromDays(1));
+  SetNotificationPeriodPref(base::Days(7));
+  SetHeadsUpPeriodPref(base::Days(1));
 
   // Observer should not get notifications about new version first 4 days.
   NotifyUpdateReadyToInstall("1.0.0.0");
-  FastForwardBy(base::TimeDelta::FromDays(4));
+  FastForwardBy(base::Days(4));
   RunUntilIdle();
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.upgrade_notification_stage(),
@@ -444,7 +442,7 @@
 
   // Observer should get notifications because of NotificationPeriod change.
   EXPECT_CALL(mock_observer, OnUpgradeRecommended());
-  SetNotificationPeriodPref(base::TimeDelta::FromDays(5));
+  SetNotificationPeriodPref(base::Days(5));
   RunUntilIdle();
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.upgrade_notification_stage(),
@@ -453,7 +451,7 @@
   // UPGRADE_ANNOYANCE_HIGH at the end of the period.
   EXPECT_CALL(mock_observer, OnUpgradeRecommended())
       .Times(testing::AnyNumber());
-  FastForwardBy(base::TimeDelta::FromDays(3));
+  FastForwardBy(base::Days(3));
   RunUntilIdle();
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.upgrade_notification_stage(),
@@ -469,8 +467,8 @@
   upgrade_detector.Init();
   ::testing::StrictMock<MockUpgradeObserver> mock_observer(&upgrade_detector);
 
-  SetNotificationPeriodPref(base::TimeDelta::FromDays(7));
-  SetHeadsUpPeriodPref(base::TimeDelta::FromDays(8));
+  SetNotificationPeriodPref(base::Days(7));
+  SetHeadsUpPeriodPref(base::Days(8));
 
   // Observer should get notification because HeadsUpPeriod bigger than
   // NotificationPeriod.
@@ -480,33 +478,30 @@
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.upgrade_notification_stage(),
             UpgradeDetector::UPGRADE_ANNOYANCE_ELEVATED);
-  EXPECT_EQ(upgrade_detector.GetHighAnnoyanceLevelDelta(),
-            base::TimeDelta::FromDays(7));
+  EXPECT_EQ(upgrade_detector.GetHighAnnoyanceLevelDelta(), base::Days(7));
 
   // HighAnnoyanceLevelDelta becomes 8 days because period is increased.
   EXPECT_CALL(mock_observer, OnUpgradeRecommended());
-  SetNotificationPeriodPref(base::TimeDelta::FromDays(14));
+  SetNotificationPeriodPref(base::Days(14));
   RunUntilIdle();
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.upgrade_notification_stage(),
             UpgradeDetector::UPGRADE_ANNOYANCE_NONE);
-  EXPECT_EQ(upgrade_detector.GetHighAnnoyanceLevelDelta(),
-            base::TimeDelta::FromDays(8));
+  EXPECT_EQ(upgrade_detector.GetHighAnnoyanceLevelDelta(), base::Days(8));
 
   // Bring NotificationPeriod back, HighAnnoyanceLevelDelta becomes 7 days.
   EXPECT_CALL(mock_observer, OnUpgradeRecommended());
-  SetNotificationPeriodPref(base::TimeDelta::FromDays(7));
+  SetNotificationPeriodPref(base::Days(7));
   RunUntilIdle();
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.upgrade_notification_stage(),
             UpgradeDetector::UPGRADE_ANNOYANCE_ELEVATED);
-  EXPECT_EQ(upgrade_detector.GetHighAnnoyanceLevelDelta(),
-            base::TimeDelta::FromDays(7));
+  EXPECT_EQ(upgrade_detector.GetHighAnnoyanceLevelDelta(), base::Days(7));
 
   // UPGRADE_ANNOYANCE_HIGH at the end of the period.
   EXPECT_CALL(mock_observer, OnUpgradeRecommended())
       .Times(testing::AnyNumber());
-  FastForwardBy(base::TimeDelta::FromDays(7));
+  FastForwardBy(base::Days(7));
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.upgrade_notification_stage(),
             UpgradeDetector::UPGRADE_ANNOYANCE_HIGH);
@@ -520,8 +515,8 @@
   upgrade_detector.Init();
   ::testing::StrictMock<MockUpgradeObserver> mock_observer(&upgrade_detector);
 
-  SetNotificationPeriodPref(base::TimeDelta::FromDays(7));
-  SetHeadsUpPeriodPref(base::TimeDelta::FromDays(7));
+  SetNotificationPeriodPref(base::Days(7));
+  SetHeadsUpPeriodPref(base::Days(7));
 
   // Observer should get notification because HeadsUpPeriod is the same as
   // NotificationPeriod.
@@ -532,8 +527,8 @@
 
   // Both periods are changed but OnUpgradeRecommended called only once.
   EXPECT_CALL(mock_observer, OnUpgradeRecommended());
-  SetNotificationPeriodPref(base::TimeDelta::FromDays(8));
-  SetHeadsUpPeriodPref(base::TimeDelta::FromDays(8));
+  SetNotificationPeriodPref(base::Days(8));
+  SetHeadsUpPeriodPref(base::Days(8));
   RunUntilIdle();
   ::testing::Mock::VerifyAndClear(&mock_observer);
 
@@ -545,7 +540,7 @@
   TestUpgradeDetectorChromeos upgrade_detector(GetMockClock(),
                                                GetMockTickClock());
   upgrade_detector.Init();
-  const auto delta = base::TimeDelta::FromDays(7);
+  const auto delta = base::Days(7);
 
   base::Time detect_time;
   ASSERT_TRUE(base::Time::FromString("1 Jan 2018 06:00", &detect_time));
@@ -570,8 +565,8 @@
   upgrade_detector.Init();
   ::testing::StrictMock<MockUpgradeObserver> mock_observer(&upgrade_detector);
 
-  const auto notification_period = base::TimeDelta::FromDays(7);
-  const auto heads_up_period = base::TimeDelta::FromDays(2);
+  const auto notification_period = base::Days(7);
+  const auto heads_up_period = base::Days(2);
   SetNotificationPeriodPref(notification_period);
   SetHeadsUpPeriodPref(heads_up_period);
   // Simulate update installed.
@@ -581,7 +576,7 @@
 
   // Overriding the thresholds should change the high annoyance deadline and the
   // notification stage accordingly and notify the observers.
-  base::TimeDelta delta = base::TimeDelta::FromHours(2);
+  base::TimeDelta delta = base::Hours(2);
   base::Time deadline = upgrade_detector.upgrade_detected_time() + delta;
   EXPECT_CALL(mock_observer, OnUpgradeRecommended());
   upgrade_detector.OverrideHighAnnoyanceDeadline(deadline);
@@ -722,14 +717,13 @@
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.GetAnnoyanceLevelDeadline(
                 UpgradeDetector::UPGRADE_ANNOYANCE_HIGH),
-            detect_time + base::TimeDelta::FromDays(7));
+            detect_time + base::Days(7));
   EXPECT_EQ(upgrade_detector.GetAnnoyanceLevelDeadline(
                 UpgradeDetector::UPGRADE_ANNOYANCE_GRACE),
-            detect_time + base::TimeDelta::FromDays(7) -
-                base::TimeDelta::FromHours(1));
+            detect_time + base::Days(7) - base::Hours(1));
   EXPECT_EQ(upgrade_detector.GetAnnoyanceLevelDeadline(
                 UpgradeDetector::UPGRADE_ANNOYANCE_ELEVATED),
-            detect_time + base::TimeDelta::FromDays(4));
+            detect_time + base::Days(4));
   EXPECT_EQ(upgrade_detector.GetAnnoyanceLevelDeadline(
                 UpgradeDetector::UPGRADE_ANNOYANCE_LOW),
             detect_time);
@@ -742,15 +736,15 @@
 
   // Drop the period and notice change in the deadlines.
   EXPECT_CALL(mock_observer, OnUpgradeRecommended());
-  SetNotificationPeriodPref(base::TimeDelta::FromDays(1));
+  SetNotificationPeriodPref(base::Days(1));
   RunUntilIdle();
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.GetAnnoyanceLevelDeadline(
                 UpgradeDetector::UPGRADE_ANNOYANCE_HIGH),
-            detect_time + base::TimeDelta::FromHours(24));
+            detect_time + base::Hours(24));
   EXPECT_EQ(upgrade_detector.GetAnnoyanceLevelDeadline(
                 UpgradeDetector::UPGRADE_ANNOYANCE_GRACE),
-            detect_time + base::TimeDelta::FromHours(23));
+            detect_time + base::Hours(23));
   EXPECT_EQ(upgrade_detector.GetAnnoyanceLevelDeadline(
                 UpgradeDetector::UPGRADE_ANNOYANCE_ELEVATED),
             detect_time);
@@ -766,18 +760,18 @@
 
   // Set heads up period and notice change in the deadlines.
   EXPECT_CALL(mock_observer, OnUpgradeRecommended());
-  SetHeadsUpPeriodPref(base::TimeDelta::FromHours(10));
+  SetHeadsUpPeriodPref(base::Hours(10));
   RunUntilIdle();
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.GetAnnoyanceLevelDeadline(
                 UpgradeDetector::UPGRADE_ANNOYANCE_HIGH),
-            detect_time + base::TimeDelta::FromHours(24));
+            detect_time + base::Hours(24));
   EXPECT_EQ(upgrade_detector.GetAnnoyanceLevelDeadline(
                 UpgradeDetector::UPGRADE_ANNOYANCE_GRACE),
-            detect_time + base::TimeDelta::FromHours(23));
+            detect_time + base::Hours(23));
   EXPECT_EQ(upgrade_detector.GetAnnoyanceLevelDeadline(
                 UpgradeDetector::UPGRADE_ANNOYANCE_ELEVATED),
-            detect_time + base::TimeDelta::FromHours(14));
+            detect_time + base::Hours(14));
   EXPECT_EQ(upgrade_detector.GetAnnoyanceLevelDeadline(
                 UpgradeDetector::UPGRADE_ANNOYANCE_LOW),
             detect_time);
diff --git a/chrome/browser/upgrade_detector/upgrade_detector_impl.cc b/chrome/browser/upgrade_detector/upgrade_detector_impl.cc
index 0f7cd0fa..ee0bee4 100644
--- a/chrome/browser/upgrade_detector/upgrade_detector_impl.cc
+++ b/chrome/browser/upgrade_detector/upgrade_detector_impl.cc
@@ -52,26 +52,24 @@
 namespace {
 
 // The default thresholds for reaching annoyance levels.
-constexpr auto kDefaultVeryLowThreshold = base::TimeDelta::FromHours(1);
-constexpr auto kDefaultLowThreshold = base::TimeDelta::FromDays(2);
-constexpr auto kDefaultElevatedThreshold = base::TimeDelta::FromDays(4);
-constexpr auto kDefaultHighThreshold = base::TimeDelta::FromDays(7);
-constexpr auto kDefaultGraceThreshold =
-    kDefaultHighThreshold - base::TimeDelta::FromHours(1);
+constexpr auto kDefaultVeryLowThreshold = base::Hours(1);
+constexpr auto kDefaultLowThreshold = base::Days(2);
+constexpr auto kDefaultElevatedThreshold = base::Days(4);
+constexpr auto kDefaultHighThreshold = base::Days(7);
+constexpr auto kDefaultGraceThreshold = kDefaultHighThreshold - base::Hours(1);
 
 // How long to wait (each cycle) before checking which severity level we should
 // be at. Once we reach the highest severity, the timer will stop.
-constexpr auto kNotifyCycleTime = base::TimeDelta::FromMinutes(20);
+constexpr auto kNotifyCycleTime = base::Minutes(20);
 
 // Same as kNotifyCycleTimeMs but only used during testing.
-constexpr auto kNotifyCycleTimeForTesting =
-    base::TimeDelta::FromMilliseconds(500);
+constexpr auto kNotifyCycleTimeForTesting = base::Milliseconds(500);
 
 // How often to check to see if the build has become outdated.
-constexpr auto kOutdatedBuildDetectorPeriod = base::TimeDelta::FromDays(1);
+constexpr auto kOutdatedBuildDetectorPeriod = base::Days(1);
 
 // The number of days after which we identify a build/install as outdated.
-constexpr auto kOutdatedBuildAge = base::TimeDelta::FromDays(7) * 12;
+constexpr auto kOutdatedBuildAge = base::Days(7) * 12;
 
 constexpr bool ShouldDetectOutdatedBuilds() {
 #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
@@ -193,8 +191,7 @@
 
   // When testing, scale everything back so that a day passes in ten seconds.
   if (is_testing_ && !relaunch_window) {
-    constexpr int64_t scale_factor =
-        base::TimeDelta::FromDays(1) / base::TimeDelta::FromSeconds(10);
+    constexpr int64_t scale_factor = base::Days(1) / base::Seconds(10);
     for (auto& stage : stages_)
       stage /= scale_factor;
   }
@@ -587,6 +584,5 @@
 // static
 UpgradeDetector::RelaunchWindow UpgradeDetector::GetDefaultRelaunchWindow() {
   // Relaunch window is the whole day and any time is within the window.
-  return RelaunchWindow(/*start_hour=*/0, /*start_minute=*/0,
-                        base::TimeDelta::FromHours(24));
+  return RelaunchWindow(/*start_hour=*/0, /*start_minute=*/0, base::Hours(24));
 }
diff --git a/chrome/browser/upgrade_detector/upgrade_detector_impl_unittest.cc b/chrome/browser/upgrade_detector/upgrade_detector_impl_unittest.cc
index f10b82a3..db1b607 100644
--- a/chrome/browser/upgrade_detector/upgrade_detector_impl_unittest.cc
+++ b/chrome/browser/upgrade_detector/upgrade_detector_impl_unittest.cc
@@ -225,7 +225,7 @@
   EXPECT_FALSE(detector.notify_upgrade());
   EXPECT_EQ(0, notifications_listener.notification_count());
 
-  detector.NotifyOnUpgradeWithTimePassed(base::TimeDelta::FromDays(30));
+  detector.NotifyOnUpgradeWithTimePassed(base::Days(30));
   EXPECT_TRUE(detector.notify_upgrade());
   EXPECT_EQ(1, notifications_listener.notification_count());
   EXPECT_EQ(0, detector.trigger_critical_update_call_count());
@@ -275,57 +275,57 @@
       TestUpgradeDetectorImpl::UPGRADE_AVAILABLE_REGULAR);
   EXPECT_EQ(upgrade_detector.GetThresholdForLevel(
                 UpgradeDetector::UPGRADE_ANNOYANCE_HIGH),
-            base::TimeDelta::FromDays(7));
+            base::Days(7));
   EXPECT_EQ(upgrade_detector.GetThresholdForLevel(
                 UpgradeDetector::UPGRADE_ANNOYANCE_GRACE),
-            base::TimeDelta::FromDays(7) - base::TimeDelta::FromHours(1));
+            base::Days(7) - base::Hours(1));
   EXPECT_EQ(upgrade_detector.GetThresholdForLevel(
                 UpgradeDetector::UPGRADE_ANNOYANCE_ELEVATED),
-            base::TimeDelta::FromDays(4));
+            base::Days(4));
   EXPECT_EQ(upgrade_detector.GetThresholdForLevel(
                 UpgradeDetector::UPGRADE_ANNOYANCE_LOW),
-            base::TimeDelta::FromDays(2));
+            base::Days(2));
   EXPECT_EQ(upgrade_detector.GetThresholdForLevel(
                 UpgradeDetector::UPGRADE_ANNOYANCE_VERY_LOW),
-            base::TimeDelta::FromHours(1));
+            base::Hours(1));
   ::testing::Mock::VerifyAndClear(&mock_observer);
 
   // Fast forward an amount that is still in the "don't annoy me" period at the
   // default period.
-  FastForwardBy(base::TimeDelta::FromMinutes(59));
+  FastForwardBy(base::Minutes(59));
   ::testing::Mock::VerifyAndClear(&mock_observer);
 
   // Drop the period and notice that nothing changes (still below "very low").
-  SetNotificationPeriodPref(base::TimeDelta::FromDays(1));
+  SetNotificationPeriodPref(base::Days(1));
   RunUntilIdle();
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.GetThresholdForLevel(
                 UpgradeDetector::UPGRADE_ANNOYANCE_HIGH),
-            base::TimeDelta::FromHours(24));
+            base::Hours(24));
   EXPECT_EQ(upgrade_detector.GetThresholdForLevel(
                 UpgradeDetector::UPGRADE_ANNOYANCE_GRACE),
-            base::TimeDelta::FromHours(23));
+            base::Hours(23));
   EXPECT_EQ(upgrade_detector.GetThresholdForLevel(
                 UpgradeDetector::UPGRADE_ANNOYANCE_ELEVATED),
-            base::TimeDelta::FromHours(16));
+            base::Hours(16));
   EXPECT_EQ(upgrade_detector.GetThresholdForLevel(
                 UpgradeDetector::UPGRADE_ANNOYANCE_LOW),
-            base::TimeDelta::FromHours(8));
+            base::Hours(8));
   EXPECT_EQ(upgrade_detector.GetThresholdForLevel(
                 UpgradeDetector::UPGRADE_ANNOYANCE_VERY_LOW),
-            base::TimeDelta::FromHours(1));
+            base::Hours(1));
   EXPECT_EQ(upgrade_detector.upgrade_notification_stage(),
             UpgradeDetector::UPGRADE_ANNOYANCE_NONE);
 
   // Fast forward to the "very low" annoyance level.
   EXPECT_CALL(mock_observer, OnUpgradeRecommended());
-  FastForwardBy(base::TimeDelta::FromMinutes(1));
+  FastForwardBy(base::Minutes(1));
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.upgrade_notification_stage(),
             UpgradeDetector::UPGRADE_ANNOYANCE_VERY_LOW);
 
   // Drop the period; staying within "very low".
-  SetNotificationPeriodPref(base::TimeDelta::FromDays(1));
+  SetNotificationPeriodPref(base::Days(1));
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.upgrade_notification_stage(),
             UpgradeDetector::UPGRADE_ANNOYANCE_VERY_LOW);
@@ -341,14 +341,14 @@
   // Fast forward an amount that is still in the "very low" level at the default
   // period.
   EXPECT_CALL(mock_observer, OnUpgradeRecommended()).Times(AnyNumber());
-  FastForwardBy(base::TimeDelta::FromHours(7));
+  FastForwardBy(base::Hours(7));
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.upgrade_notification_stage(),
             UpgradeDetector::UPGRADE_ANNOYANCE_VERY_LOW);
 
   // Drop the period so that the current time is in the "low" annoyance level.
   EXPECT_CALL(mock_observer, OnUpgradeRecommended());
-  SetNotificationPeriodPref(base::TimeDelta::FromDays(1));
+  SetNotificationPeriodPref(base::Days(1));
   RunUntilIdle();
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.upgrade_notification_stage(),
@@ -365,14 +365,14 @@
   // Fast forward an amount that is still in the "very low" period at the
   // default period.
   EXPECT_CALL(mock_observer, OnUpgradeRecommended()).Times(AnyNumber());
-  FastForwardBy(base::TimeDelta::FromHours(8));
+  FastForwardBy(base::Hours(8));
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.upgrade_notification_stage(),
             UpgradeDetector::UPGRADE_ANNOYANCE_VERY_LOW);
 
   // Drop the period so that the current time is in the "elevated" level.
   EXPECT_CALL(mock_observer, OnUpgradeRecommended());
-  SetNotificationPeriodPref(base::TimeDelta::FromDays(1));
+  SetNotificationPeriodPref(base::Days(1));
   RunUntilIdle();
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.upgrade_notification_stage(),
@@ -389,14 +389,14 @@
   // Fast forward an amount that is still in the "very low" level at the default
   // period.
   EXPECT_CALL(mock_observer, OnUpgradeRecommended()).Times(AnyNumber());
-  FastForwardBy(base::TimeDelta::FromHours(7));
+  FastForwardBy(base::Hours(7));
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.upgrade_notification_stage(),
             UpgradeDetector::UPGRADE_ANNOYANCE_VERY_LOW);
 
   // Drop the period so that the current time is in the "grace" level.
   EXPECT_CALL(mock_observer, OnUpgradeRecommended());
-  SetNotificationPeriodPref(base::TimeDelta::FromDays(1));
+  SetNotificationPeriodPref(base::Days(1));
   RunUntilIdle();
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.upgrade_notification_stage(),
@@ -413,21 +413,21 @@
   // Fast forward an amount that is still in the "very low" level at the default
   // period.
   EXPECT_CALL(mock_observer, OnUpgradeRecommended()).Times(AnyNumber());
-  FastForwardBy(base::TimeDelta::FromHours(1));
+  FastForwardBy(base::Hours(1));
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.upgrade_notification_stage(),
             UpgradeDetector::UPGRADE_ANNOYANCE_VERY_LOW);
 
   // Drop the period so that the current time is in the "high" level.
   EXPECT_CALL(mock_observer, OnUpgradeRecommended());
-  SetNotificationPeriodPref(base::TimeDelta::FromDays(1));
+  SetNotificationPeriodPref(base::Days(1));
   RunUntilIdle();
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.upgrade_notification_stage(),
             UpgradeDetector::UPGRADE_ANNOYANCE_HIGH);
 
   // Expect no new notifications even if some time passes.
-  FastForwardBy(base::TimeDelta::FromHours(1));
+  FastForwardBy(base::Hours(1));
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.upgrade_notification_stage(),
             UpgradeDetector::UPGRADE_ANNOYANCE_HIGH);
@@ -443,14 +443,14 @@
   // Fast forward an amount that is still in the "very low" level at the default
   // period.
   EXPECT_CALL(mock_observer, OnUpgradeRecommended()).Times(AnyNumber());
-  FastForwardBy(base::TimeDelta::FromHours(12));
+  FastForwardBy(base::Hours(12));
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.upgrade_notification_stage(),
             UpgradeDetector::UPGRADE_ANNOYANCE_VERY_LOW);
 
   // Drop the period so that the current time is deep in the "high" level.
   EXPECT_CALL(mock_observer, OnUpgradeRecommended());
-  SetNotificationPeriodPref(base::TimeDelta::FromDays(1));
+  SetNotificationPeriodPref(base::Days(1));
   RunUntilIdle();
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.upgrade_notification_stage(),
@@ -486,7 +486,7 @@
   UpgradeDetectorImplTimerTest() {
     const int period_ms = GetParam();
     if (period_ms)
-      SetNotificationPeriodPref(base::TimeDelta::FromMilliseconds(period_ms));
+      SetNotificationPeriodPref(base::Milliseconds(period_ms));
   }
 
  private:
@@ -506,8 +506,7 @@
   using TimeAndStage =
       std::pair<base::Time, UpgradeDetector::UpgradeNotificationAnnoyanceLevel>;
   using Notifications = std::vector<TimeAndStage>;
-  static constexpr base::TimeDelta kTwentyMinues =
-      base::TimeDelta::FromMinutes(20);
+  static constexpr base::TimeDelta kTwentyMinues = base::Minutes(20);
 
   TestUpgradeDetectorImpl detector(GetMockClock(), GetMockTickClock());
   ::testing::StrictMock<MockUpgradeObserver> mock_observer(&detector);
@@ -525,7 +524,7 @@
       detector.GetThresholdForLevel(UpgradeDetector::UPGRADE_ANNOYANCE_GRACE),
       detector.GetThresholdForLevel(UpgradeDetector::UPGRADE_ANNOYANCE_HIGH),
   };
-  EXPECT_LE(thresholds[4] - thresholds[3], base::TimeDelta::FromHours(1));
+  EXPECT_LE(thresholds[4] - thresholds[3], base::Hours(1));
 
   ::testing::Mock::VerifyAndClear(&mock_observer);
 
@@ -669,7 +668,7 @@
   ::testing::StrictMock<MockUpgradeObserver> mock_observer(&upgrade_detector);
 
   upgrade_detector.Init();
-  SetNotificationPeriodPref(base::TimeDelta::FromDays(5));
+  SetNotificationPeriodPref(base::Days(5));
   SetRelaunchWindowPref(/*hour=*/7, /*minute=*/30, /*duration_mins=*/180);
   RunUntilIdle();
 
@@ -731,43 +730,42 @@
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.GetAnnoyanceLevelDeadline(
                 UpgradeDetector::UPGRADE_ANNOYANCE_HIGH),
-            detect_time + base::TimeDelta::FromDays(7));
+            detect_time + base::Days(7));
   EXPECT_EQ(upgrade_detector.GetAnnoyanceLevelDeadline(
                 UpgradeDetector::UPGRADE_ANNOYANCE_GRACE),
-            detect_time + base::TimeDelta::FromDays(7) -
-                base::TimeDelta::FromHours(1));
+            detect_time + base::Days(7) - base::Hours(1));
   EXPECT_EQ(upgrade_detector.GetAnnoyanceLevelDeadline(
                 UpgradeDetector::UPGRADE_ANNOYANCE_ELEVATED),
-            detect_time + base::TimeDelta::FromDays(4));
+            detect_time + base::Days(4));
   EXPECT_EQ(upgrade_detector.GetAnnoyanceLevelDeadline(
                 UpgradeDetector::UPGRADE_ANNOYANCE_LOW),
-            detect_time + base::TimeDelta::FromDays(2));
+            detect_time + base::Days(2));
   EXPECT_EQ(upgrade_detector.GetAnnoyanceLevelDeadline(
                 UpgradeDetector::UPGRADE_ANNOYANCE_VERY_LOW),
-            detect_time + base::TimeDelta::FromHours(1));
+            detect_time + base::Hours(1));
   EXPECT_EQ(upgrade_detector.GetAnnoyanceLevelDeadline(
                 UpgradeDetector::UPGRADE_ANNOYANCE_NONE),
             detect_time);
 
   // Drop the period and notice change in the deadlines.
-  SetNotificationPeriodPref(base::TimeDelta::FromDays(1));
+  SetNotificationPeriodPref(base::Days(1));
   RunUntilIdle();
   ::testing::Mock::VerifyAndClear(&mock_observer);
   EXPECT_EQ(upgrade_detector.GetAnnoyanceLevelDeadline(
                 UpgradeDetector::UPGRADE_ANNOYANCE_HIGH),
-            detect_time + base::TimeDelta::FromHours(24));
+            detect_time + base::Hours(24));
   EXPECT_EQ(upgrade_detector.GetAnnoyanceLevelDeadline(
                 UpgradeDetector::UPGRADE_ANNOYANCE_GRACE),
-            detect_time + base::TimeDelta::FromHours(23));
+            detect_time + base::Hours(23));
   EXPECT_EQ(upgrade_detector.GetAnnoyanceLevelDeadline(
                 UpgradeDetector::UPGRADE_ANNOYANCE_ELEVATED),
-            detect_time + base::TimeDelta::FromHours(16));
+            detect_time + base::Hours(16));
   EXPECT_EQ(upgrade_detector.GetAnnoyanceLevelDeadline(
                 UpgradeDetector::UPGRADE_ANNOYANCE_LOW),
-            detect_time + base::TimeDelta::FromHours(8));
+            detect_time + base::Hours(8));
   EXPECT_EQ(upgrade_detector.GetAnnoyanceLevelDeadline(
                 UpgradeDetector::UPGRADE_ANNOYANCE_VERY_LOW),
-            detect_time + base::TimeDelta::FromHours(1));
+            detect_time + base::Hours(1));
   EXPECT_EQ(upgrade_detector.GetAnnoyanceLevelDeadline(
                 UpgradeDetector::UPGRADE_ANNOYANCE_NONE),
             detect_time);
diff --git a/chrome/browser/upgrade_detector/upgrade_detector_unittest.cc b/chrome/browser/upgrade_detector/upgrade_detector_unittest.cc
index ca47a24..065f2cf1 100644
--- a/chrome/browser/upgrade_detector/upgrade_detector_unittest.cc
+++ b/chrome/browser/upgrade_detector/upgrade_detector_unittest.cc
@@ -111,8 +111,8 @@
   UpgradeDetector::RelaunchWindow CreateRelaunchWindow(int hour,
                                                        int minute,
                                                        int duration_mins) {
-    return UpgradeDetector::RelaunchWindow(
-        hour, minute, base::TimeDelta::FromMinutes(duration_mins));
+    return UpgradeDetector::RelaunchWindow(hour, minute,
+                                           base::Minutes(duration_mins));
   }
 
  private:
@@ -137,7 +137,7 @@
   ASSERT_TRUE(window);
   EXPECT_EQ(window.value().hour, 2);
   EXPECT_EQ(window.value().minute, 20);
-  EXPECT_EQ(window.value().duration, base::TimeDelta::FromMinutes(180));
+  EXPECT_EQ(window.value().duration, base::Minutes(180));
 }
 
 TEST_F(UpgradeDetectorTest, DeadlineAdjustment) {
diff --git a/chrome/browser/video_tutorials/internal/config.cc b/chrome/browser/video_tutorials/internal/config.cc
index 11c05a7..c3899123 100644
--- a/chrome/browser/video_tutorials/internal/config.cc
+++ b/chrome/browser/video_tutorials/internal/config.cc
@@ -63,7 +63,7 @@
   int frequency_in_days = base::GetFieldTrialParamByFeatureAsInt(
       features::kVideoTutorials, kFetchFrequencyKey,
       kDefaultFetchFrequencyDays);
-  return base::TimeDelta::FromDays(frequency_in_days);
+  return base::Days(frequency_in_days);
 }
 
 // static
diff --git a/chrome/browser/video_tutorials/internal/config_unittest.cc b/chrome/browser/video_tutorials/internal/config_unittest.cc
index a51c1e7..da0b319 100644
--- a/chrome/browser/video_tutorials/internal/config_unittest.cc
+++ b/chrome/browser/video_tutorials/internal/config_unittest.cc
@@ -28,7 +28,7 @@
   EXPECT_EQ(Config::GetTutorialsServerURL("https://abc.com").spec(),
             "https://test.com/v1/videotutorials");
   EXPECT_EQ(Config::GetDefaultPreferredLocale(), "en");
-  EXPECT_EQ(Config::GetFetchFrequency(), base::TimeDelta::FromDays(10));
+  EXPECT_EQ(Config::GetFetchFrequency(), base::Days(10));
   EXPECT_EQ(Config::GetExperimentTag(), "{some_param:some_value}");
 }
 
@@ -39,7 +39,7 @@
             "https://testing.com/v1/videotutorials");
   EXPECT_EQ(Config::GetTutorialsServerURL(""), GURL());
   EXPECT_EQ(Config::GetDefaultPreferredLocale(), "en");
-  EXPECT_EQ(Config::GetFetchFrequency(), base::TimeDelta::FromDays(15));
+  EXPECT_EQ(Config::GetFetchFrequency(), base::Days(15));
   EXPECT_EQ(Config::GetExperimentTag(), "");
 }
 
diff --git a/chrome/browser/visibility_timer_tab_helper_unittest.cc b/chrome/browser/visibility_timer_tab_helper_unittest.cc
index 859844a..7e05ab0 100644
--- a/chrome/browser/visibility_timer_tab_helper_unittest.cc
+++ b/chrome/browser/visibility_timer_tab_helper_unittest.cc
@@ -25,7 +25,7 @@
                                     EXPECT_FALSE(task_executed);
                                     task_executed = true;
                                   }),
-                                  base::TimeDelta::FromSecondsD(1));
+                                  base::Seconds(1));
 
   EXPECT_FALSE(task_executed);
 
@@ -33,7 +33,7 @@
   // the tab is not visible, so these 500ms never add up to >= 1 second.
   for (int n = 0; n < 10; n++) {
     web_contents()->WasShown();
-    task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(500));
+    task_environment()->FastForwardBy(base::Milliseconds(500));
     web_contents()->WasHidden();
   }
 
@@ -46,19 +46,19 @@
   // scheduled task, and when it fires Timer::RunScheduledTask will call
   // TimeTicks::Now() (which unlike task_environment()->NowTicks(), we can't
   // fake), and miscalculate the remaining delay at which to fire the timer.
-  task_environment()->FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment()->FastForwardBy(base::Days(1));
 
   EXPECT_FALSE(task_executed);
 
   // So 500ms is still not enough.
   web_contents()->WasShown();
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(500));
+  task_environment()->FastForwardBy(base::Milliseconds(500));
 
   EXPECT_FALSE(task_executed);
 
   // But 5*500ms > 1 second, so it should now be blocked.
   for (int n = 0; n < 4; n++)
-    task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(500));
+    task_environment()->FastForwardBy(base::Milliseconds(500));
 
   EXPECT_TRUE(task_executed);
 }
@@ -70,28 +70,28 @@
   VisibilityTimerTabHelper::FromWebContents(web_contents())
       ->PostTaskAfterVisibleDelay(
           FROM_HERE, base::BindLambdaForTesting([&] { tasks_executed += "1"; }),
-          base::TimeDelta::FromSecondsD(1));
+          base::Seconds(1));
   web_contents()->WasShown();
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(500));
+  task_environment()->FastForwardBy(base::Milliseconds(500));
 
   // Add second task. Its timer does not advance until after the first task
   // completes.
   VisibilityTimerTabHelper::FromWebContents(web_contents())
       ->PostTaskAfterVisibleDelay(
           FROM_HERE, base::BindLambdaForTesting([&] { tasks_executed += "2"; }),
-          base::TimeDelta::FromSecondsD(1));
+          base::Seconds(1));
 
   web_contents()->WasHidden();
   web_contents()->WasShown();
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(990));
+  task_environment()->FastForwardBy(base::Milliseconds(990));
 
   EXPECT_EQ("", tasks_executed);
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(11));
+  task_environment()->FastForwardBy(base::Milliseconds(11));
 
   EXPECT_EQ("1", tasks_executed);
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(1000));
+  task_environment()->FastForwardBy(base::Milliseconds(1000));
 
   EXPECT_EQ("12", tasks_executed);
 }
diff --git a/chrome/browser/vr/base_scheduler_delegate.cc b/chrome/browser/vr/base_scheduler_delegate.cc
index 8718c45..615f091e 100644
--- a/chrome/browser/vr/base_scheduler_delegate.cc
+++ b/chrome/browser/vr/base_scheduler_delegate.cc
@@ -40,14 +40,14 @@
   DCHECK(ui_);
   webxr_spinner_timeout_closure_.Reset(base::BindOnce(
       &SchedulerUiInterface::OnWebXrTimeoutImminent, base::Unretained(ui_)));
-  task_runner_->PostDelayedTask(
-      FROM_HERE, webxr_spinner_timeout_closure_.callback(),
-      base::TimeDelta::FromSeconds(webxr_spinner_timeout_seconds_));
+  task_runner_->PostDelayedTask(FROM_HERE,
+                                webxr_spinner_timeout_closure_.callback(),
+                                base::Seconds(webxr_spinner_timeout_seconds_));
   webxr_frame_timeout_closure_.Reset(base::BindOnce(
       &SchedulerUiInterface::OnWebXrTimedOut, base::Unretained(ui_)));
   task_runner_->PostDelayedTask(
       FROM_HERE, webxr_frame_timeout_closure_.callback(),
-      base::TimeDelta::FromSeconds(webxr_initial_frame_timeout_seconds_));
+      base::Seconds(webxr_initial_frame_timeout_seconds_));
 }
 
 void BaseSchedulerDelegate::CancelWebXrFrameTimeout() {
diff --git a/chrome/browser/vr/base_scheduler_delegate_unittest.cc b/chrome/browser/vr/base_scheduler_delegate_unittest.cc
index 639bb46..a520d4a 100644
--- a/chrome/browser/vr/base_scheduler_delegate_unittest.cc
+++ b/chrome/browser/vr/base_scheduler_delegate_unittest.cc
@@ -74,9 +74,9 @@
 
   EXPECT_CALL(ui, OnWebXrTimeoutImminent()).Times(0);
   EXPECT_CALL(ui, OnWebXrTimedOut()).Times(0);
-  FastForwardBy(base::TimeDelta::FromSeconds(1));
+  FastForwardBy(base::Seconds(1));
   scheduler_delegate.OnNewWebXrFrame();
-  FastForwardBy(base::TimeDelta::FromSeconds(10));
+  FastForwardBy(base::Seconds(10));
 }
 
 TEST_F(SchedulerDelegateTest, OneTimeoutWhenWebXrFrameArrivesSlow) {
@@ -86,9 +86,9 @@
 
   EXPECT_CALL(ui, OnWebXrTimeoutImminent()).Times(1);
   EXPECT_CALL(ui, OnWebXrTimedOut()).Times(0);
-  FastForwardBy(base::TimeDelta::FromSeconds(3));
+  FastForwardBy(base::Seconds(3));
   scheduler_delegate.OnNewWebXrFrame();
-  FastForwardBy(base::TimeDelta::FromSeconds(10));
+  FastForwardBy(base::Seconds(10));
 }
 
 TEST_F(SchedulerDelegateTest, TwoTimeoutsWhenWebXrFrameDoesNotArrive) {
@@ -98,7 +98,7 @@
 
   EXPECT_CALL(ui, OnWebXrTimeoutImminent()).Times(1);
   EXPECT_CALL(ui, OnWebXrTimedOut()).Times(1);
-  FastForwardBy(base::TimeDelta::FromSeconds(10));
+  FastForwardBy(base::Seconds(10));
 }
 
 TEST_F(SchedulerDelegateTest, NoTimeoutIfExitPresent) {
@@ -109,7 +109,7 @@
   EXPECT_CALL(ui, OnWebXrTimeoutImminent()).Times(0);
   EXPECT_CALL(ui, OnWebXrTimedOut()).Times(0);
   scheduler_delegate.OnExitPresent();
-  FastForwardBy(base::TimeDelta::FromSeconds(10));
+  FastForwardBy(base::Seconds(10));
 }
 
 TEST_F(SchedulerDelegateTest, NoTimeoutIfUnsetWebXrMode) {
@@ -120,7 +120,7 @@
   EXPECT_CALL(ui, OnWebXrTimeoutImminent()).Times(0);
   EXPECT_CALL(ui, OnWebXrTimedOut()).Times(0);
   scheduler_delegate.SetWebXrMode(false);
-  FastForwardBy(base::TimeDelta::FromSeconds(10));
+  FastForwardBy(base::Seconds(10));
 }
 
 }  // namespace vr
diff --git a/chrome/browser/vr/browser_renderer.cc b/chrome/browser/vr/browser_renderer.cc
index df64e02..631830d 100644
--- a/chrome/browser/vr/browser_renderer.cc
+++ b/chrome/browser/vr/browser_renderer.cc
@@ -224,7 +224,7 @@
       << "Attempted to set a UI activity expectation with one in progress";
   ui_test_state_ = std::make_unique<UiTestState>();
   ui_test_state_->quiescence_timeout_ms =
-      base::TimeDelta::FromMilliseconds(ui_expectation.quiescence_timeout_ms);
+      base::Milliseconds(ui_expectation.quiescence_timeout_ms);
 }
 
 void BrowserRenderer::SaveNextFrameBufferToDiskForTesting(
@@ -239,7 +239,7 @@
                                              "in progress";
   ui_visibility_state_ = std::make_unique<UiVisibilityState>();
   ui_visibility_state_->timeout_ms =
-      base::TimeDelta::FromMilliseconds(visibility_expectation.timeout_ms);
+      base::Milliseconds(visibility_expectation.timeout_ms);
   ui_visibility_state_->element_to_watch = visibility_expectation.element_name;
   ui_visibility_state_->expected_visibile = visibility_expectation.visibility;
 }
diff --git a/chrome/browser/vr/elements/controller.cc b/chrome/browser/vr/elements/controller.cc
index c0f7d694a..3c1cbfc 100644
--- a/chrome/browser/vr/elements/controller.cc
+++ b/chrome/browser/vr/elements/controller.cc
@@ -67,8 +67,7 @@
   auto alpha_curve = gfx::KeyframedFloatAnimationCurve::Create();
   for (size_t i = 0; i < length; i += 2) {
     alpha_curve->AddKeyframe(gfx::FloatKeyframe::Create(
-        base::TimeDelta::FromSecondsD(alpha_stops[i + 1]), alpha_stops[i],
-        nullptr));
+        base::Seconds(alpha_stops[i + 1]), alpha_stops[i], nullptr));
   }
   return alpha_curve;
 }
@@ -89,7 +88,7 @@
   colors->push_back(SkColorGetR(kColor) / 255.0);
   colors->push_back(SkColorGetG(kColor) / 255.0);
   colors->push_back(SkColorGetB(kColor) / 255.0);
-  colors->push_back(alpha_curve.GetValue(base::TimeDelta::FromSecondsD(alpha)));
+  colors->push_back(alpha_curve.GetValue(base::Seconds(alpha)));
 }
 
 void AddSphere(size_t num_rings,
diff --git a/chrome/browser/vr/elements/environment/background.cc b/chrome/browser/vr/elements/environment/background.cc
index 0e98833..a2be8e4 100644
--- a/chrome/browser/vr/elements/environment/background.cc
+++ b/chrome/browser/vr/elements/environment/background.cc
@@ -142,7 +142,7 @@
 Background::Background() {
   SetTransitionedProperties(
       {NORMAL_COLOR_FACTOR, INCOGNITO_COLOR_FACTOR, FULLSCREEN_COLOR_FACTOR});
-  SetTransitionDuration(base::TimeDelta::FromMilliseconds(2500));
+  SetTransitionDuration(base::Milliseconds(2500));
 }
 
 Background::~Background() = default;
diff --git a/chrome/browser/vr/elements/spinner.cc b/chrome/browser/vr/elements/spinner.cc
index 402923d..65de0ed 100644
--- a/chrome/browser/vr/elements/spinner.cc
+++ b/chrome/browser/vr/elements/spinner.cc
@@ -15,10 +15,8 @@
 
 namespace vr {
 
-static constexpr base::TimeDelta kSweepDuration =
-    base::TimeDelta::FromSecondsD(2.0 / 3.0);
-static constexpr base::TimeDelta kRotationDuration =
-    base::TimeDelta::FromMilliseconds(1568);
+static constexpr base::TimeDelta kSweepDuration = base::Seconds(2.0 / 3.0);
+static constexpr base::TimeDelta kRotationDuration = base::Milliseconds(1568);
 static constexpr float kMinAngle = 0.0f;
 static constexpr float kMaxAngle = 135.0f;
 static constexpr float kThicknessFactor = 0.078125f;
diff --git a/chrome/browser/vr/elements/spinner_unittest.cc b/chrome/browser/vr/elements/spinner_unittest.cc
index 46389698..e4d68fb6 100644
--- a/chrome/browser/vr/elements/spinner_unittest.cc
+++ b/chrome/browser/vr/elements/spinner_unittest.cc
@@ -58,14 +58,14 @@
     base::TimeDelta delta;
   };
   std::vector<TestCase> test_cases = {
-      {38.2652f, 63.8781f, base::TimeDelta::FromSecondsD(1.0 / 6.0)},
-      {76.5305f, 209.402f, base::TimeDelta::FromSecondsD(2.0 / 6.0)},
-      {114.796f, 259.029f, base::TimeDelta::FromSecondsD(3.0 / 6.0)},
-      {153.061f, 270.0f, base::TimeDelta::FromSecondsD(4.0 / 6.0)},
-      {255.206f, 206.121f, base::TimeDelta::FromSecondsD(5.0 / 6.0)},
-      {438.994f, 60.5979f, base::TimeDelta::FromSecondsD(6.0 / 6.0)},
-      {526.886f, 10.9706f, base::TimeDelta::FromSecondsD(7.0 / 6.0)},
-      {576.122f, 0.0f, base::TimeDelta::FromSecondsD(8.0 / 6.0)},
+      {38.2652f, 63.8781f, base::Seconds(1.0 / 6.0)},
+      {76.5305f, 209.402f, base::Seconds(2.0 / 6.0)},
+      {114.796f, 259.029f, base::Seconds(3.0 / 6.0)},
+      {153.061f, 270.0f, base::Seconds(4.0 / 6.0)},
+      {255.206f, 206.121f, base::Seconds(5.0 / 6.0)},
+      {438.994f, 60.5979f, base::Seconds(6.0 / 6.0)},
+      {526.886f, 10.9706f, base::Seconds(7.0 / 6.0)},
+      {576.122f, 0.0f, base::Seconds(8.0 / 6.0)},
   };
 
   for (const auto& test_case : test_cases) {
diff --git a/chrome/browser/vr/elements/throbber.cc b/chrome/browser/vr/elements/throbber.cc
index 90a03cb..3f3af129 100644
--- a/chrome/browser/vr/elements/throbber.cc
+++ b/chrome/browser/vr/elements/throbber.cc
@@ -60,8 +60,7 @@
   curve->AddKeyframe(
       gfx::FloatKeyframe::Create(base::TimeDelta(), kStartScale, nullptr));
   curve->AddKeyframe(gfx::FloatKeyframe::Create(
-      base::TimeDelta::FromMilliseconds(kCircleGrowAnimationTimeMs), kEndScale,
-      nullptr));
+      base::Milliseconds(kCircleGrowAnimationTimeMs), kEndScale, nullptr));
   curve->set_target(this);
 
   std::unique_ptr<gfx::KeyframeModel> keyframe_model(gfx::KeyframeModel::Create(
diff --git a/chrome/browser/vr/elements/transient_element_unittest.cc b/chrome/browser/vr/elements/transient_element_unittest.cc
index fba50c3..39914ac 100644
--- a/chrome/browser/vr/elements/transient_element_unittest.cc
+++ b/chrome/browser/vr/elements/transient_element_unittest.cc
@@ -26,7 +26,7 @@
 }  // namespace
 
 TEST(SimpleTransientElementTest, Visibility) {
-  SimpleTransientElement element(base::TimeDelta::FromSeconds(2));
+  SimpleTransientElement element(base::Seconds(2));
   element.SetOpacity(0.0f);
 
   EXPECT_EQ(0.0f, element.opacity());
@@ -69,7 +69,7 @@
 // Test that refreshing the visibility resets the transience timeout if the
 // element is currently visible.
 TEST(SimpleTransientElementTest, RefreshVisibility) {
-  SimpleTransientElement element(base::TimeDelta::FromSeconds(2));
+  SimpleTransientElement element(base::Seconds(2));
   element.SetOpacity(0.0f);
 
   // Enable, and ensure that the element is visible.
@@ -106,7 +106,7 @@
   UiScene scene;
   // Create transient root.
   auto transient_element =
-      std::make_unique<SimpleTransientElement>(base::TimeDelta::FromSeconds(2));
+      std::make_unique<SimpleTransientElement>(base::Seconds(2));
   SimpleTransientElement* parent = transient_element.get();
   transient_element->set_opacity_when_visible(0.5);
   scene.AddUiElement(kRoot, std::move(transient_element));
diff --git a/chrome/browser/vr/elements/viewport_aware_root_unittest.cc b/chrome/browser/vr/elements/viewport_aware_root_unittest.cc
index 5b3a49a5..45ddf39 100644
--- a/chrome/browser/vr/elements/viewport_aware_root_unittest.cc
+++ b/chrome/browser/vr/elements/viewport_aware_root_unittest.cc
@@ -135,8 +135,7 @@
   bool AnimateWithForwardVector(base::TimeDelta delta,
                                 const gfx::Vector3dF& forward_vector) {
     base::TimeTicks target_time = current_time_ + delta;
-    base::TimeDelta frame_duration =
-        base::TimeDelta::FromSecondsD(1.0 / kFramesPerSecond);
+    base::TimeDelta frame_duration = base::Seconds(1.0 / kFramesPerSecond);
     bool changed = false;
     gfx::Quaternion head_movement_quat(forward_vector, {0.f, 0.f, -1.f});
     gfx::Transform head_pose(head_movement_quat);
diff --git a/chrome/browser/vr/gesture_detector.cc b/chrome/browser/vr/gesture_detector.cc
index 8a1be62..15465a8 100644
--- a/chrome/browser/vr/gesture_detector.cc
+++ b/chrome/browser/vr/gesture_detector.cc
@@ -37,8 +37,7 @@
 
 // Exceeding pressing the appbutton for longer than this threshold will result
 // in a long press.
-constexpr base::TimeDelta kLongPressThreshold =
-    base::TimeDelta::FromMilliseconds(900);
+constexpr base::TimeDelta kLongPressThreshold = base::Milliseconds(900);
 
 struct TouchPoint {
   gfx::Vector2dF position;
diff --git a/chrome/browser/vr/gesture_detector_unittest.cc b/chrome/browser/vr/gesture_detector_unittest.cc
index 4a75ca26..a6102c3 100644
--- a/chrome/browser/vr/gesture_detector_unittest.cc
+++ b/chrome/browser/vr/gesture_detector_unittest.cc
@@ -108,7 +108,7 @@
   EXPECT_EQ(gestures.front()->type(), InputEvent::kFlingCancel);
 
   // A small move doesn't trigger scrolling yet.
-  timestamp += base::TimeDelta::FromMilliseconds(1);
+  timestamp += base::Milliseconds(1);
   controller.last_touch_timestamp = timestamp;
   controller.position_in_trackpad = {kDelta, kDelta};
   gestures = detector.DetectGestures(controller, timestamp);
@@ -123,7 +123,7 @@
   detector.DetectGestures(controller, timestamp);
 
   // Move to the right.
-  timestamp += base::TimeDelta::FromMilliseconds(1);
+  timestamp += base::Milliseconds(1);
   controller.last_touch_timestamp = timestamp;
   controller.position_in_trackpad = {0.3f, 0.0f};
   auto gestures = detector.DetectGestures(controller, timestamp);
@@ -133,7 +133,7 @@
   EXPECT_EQ(gesture->scroll_data.delta_y, 0.0f);
 
   // Move slightly up.
-  timestamp += base::TimeDelta::FromMilliseconds(1);
+  timestamp += base::Milliseconds(1);
   controller.last_touch_timestamp = timestamp;
   controller.position_in_trackpad = {0.3f, 0.01f};
   gestures = detector.DetectGestures(controller, timestamp);
@@ -144,16 +144,16 @@
 
   // Release touch. Scroll is extrapolated for 2 frames.
   controller.is_touching_trackpad = false;
-  timestamp += base::TimeDelta::FromMilliseconds(1);
+  timestamp += base::Milliseconds(1);
   gestures = detector.DetectGestures(controller, timestamp);
   EXPECT_EQ(gestures.front()->type(), InputEvent::kScrollUpdate);
   gesture = static_cast<InputEvent*>(gestures.front().get());
   EXPECT_GT(gesture->scroll_data.delta_x, 0.0f);
   EXPECT_GT(gesture->scroll_data.delta_y, 0.0f);
-  timestamp += base::TimeDelta::FromMilliseconds(1);
+  timestamp += base::Milliseconds(1);
   gestures = detector.DetectGestures(controller, timestamp);
   EXPECT_EQ(gestures.front()->type(), InputEvent::kScrollUpdate);
-  timestamp += base::TimeDelta::FromMilliseconds(1);
+  timestamp += base::Milliseconds(1);
   gestures = detector.DetectGestures(controller, timestamp);
   EXPECT_EQ(gestures.front()->type(), InputEvent::kScrollEnd);
 }
@@ -166,14 +166,14 @@
   detector.DetectGestures(controller, timestamp);
 
   // Move to the right.
-  timestamp += base::TimeDelta::FromMilliseconds(1);
+  timestamp += base::Milliseconds(1);
   controller.last_touch_timestamp = timestamp;
   controller.position_in_trackpad = {0.3f, 0.0f};
   auto gestures = detector.DetectGestures(controller, timestamp);
   EXPECT_EQ(gestures.front()->type(), InputEvent::kScrollBegin);
 
   // Button down.
-  timestamp += base::TimeDelta::FromMilliseconds(1);
+  timestamp += base::Milliseconds(1);
   controller.last_touch_timestamp = timestamp;
   controller.is_select_button_down = true;
   gestures = detector.DetectGestures(controller, timestamp);
@@ -188,20 +188,20 @@
   detector.DetectGestures(controller, timestamp);
 
   // Move to the right.
-  timestamp += base::TimeDelta::FromMilliseconds(1);
+  timestamp += base::Milliseconds(1);
   controller.last_touch_timestamp = timestamp;
   controller.position_in_trackpad = {0.3f, 0.0f};
   auto gestures = detector.DetectGestures(controller, timestamp);
   EXPECT_EQ(gestures.front()->type(), InputEvent::kScrollBegin);
 
   // Release touch. We should see extrapolated scrolling.
-  timestamp += base::TimeDelta::FromMilliseconds(1);
+  timestamp += base::Milliseconds(1);
   controller.is_touching_trackpad = false;
   gestures = detector.DetectGestures(controller, timestamp);
   EXPECT_EQ(gestures.front()->type(), InputEvent::kScrollUpdate);
 
   // Button down.
-  timestamp += base::TimeDelta::FromMilliseconds(1);
+  timestamp += base::Milliseconds(1);
   controller.is_select_button_down = true;
   gestures = detector.DetectGestures(controller, timestamp);
   EXPECT_EQ(gestures.front()->type(), InputEvent::kScrollEnd);
@@ -215,20 +215,20 @@
   detector.DetectGestures(controller, timestamp);
 
   // Move to the right.
-  timestamp += base::TimeDelta::FromMilliseconds(1);
+  timestamp += base::Milliseconds(1);
   controller.last_touch_timestamp = timestamp;
   controller.position_in_trackpad = {0.3f, 0.0f};
   auto gestures = detector.DetectGestures(controller, timestamp);
   EXPECT_EQ(gestures.front()->type(), InputEvent::kScrollBegin);
 
   // Release touch. We should see extrapolated scrolling.
-  timestamp += base::TimeDelta::FromMilliseconds(1);
+  timestamp += base::Milliseconds(1);
   controller.is_touching_trackpad = false;
   gestures = detector.DetectGestures(controller, timestamp);
   EXPECT_EQ(gestures.front()->type(), InputEvent::kScrollUpdate);
 
   // Touch and button down.
-  timestamp += base::TimeDelta::FromMilliseconds(1);
+  timestamp += base::Milliseconds(1);
   controller.is_select_button_down = true;
   controller.is_touching_trackpad = true;
   gestures = detector.DetectGestures(controller, timestamp);
@@ -248,7 +248,7 @@
   // Release menu button.
   controller.Update();
   controller.is_menu_button_down = false;
-  timestamp += base::TimeDelta::FromMilliseconds(1);
+  timestamp += base::Milliseconds(1);
   gestures = detector.DetectGestures(controller, timestamp);
   EXPECT_EQ(gestures.size(), 1u);
   EXPECT_EQ(gestures.front()->type(), InputEvent::kMenuButtonClicked);
@@ -266,7 +266,7 @@
 
   // Keep menu button down.
   controller.Update();
-  timestamp += base::TimeDelta::FromSeconds(1);
+  timestamp += base::Seconds(1);
   gestures = detector.DetectGestures(controller, timestamp);
   EXPECT_EQ(gestures.size(), 1u);
   EXPECT_EQ(gestures.front()->type(), InputEvent::kMenuButtonLongPressStart);
@@ -274,7 +274,7 @@
   // Release menu button.
   controller.Update();
   controller.is_menu_button_down = false;
-  timestamp += base::TimeDelta::FromSeconds(1);
+  timestamp += base::Seconds(1);
   gestures = detector.DetectGestures(controller, timestamp);
   EXPECT_EQ(gestures.size(), 1u);
   EXPECT_EQ(gestures.front()->type(), InputEvent::kMenuButtonLongPressEnd);
diff --git a/chrome/browser/vr/speech_recognizer.cc b/chrome/browser/vr/speech_recognizer.cc
index db4ae40..9e37b3d 100644
--- a/chrome/browser/vr/speech_recognizer.cc
+++ b/chrome/browser/vr/speech_recognizer.cc
@@ -188,8 +188,7 @@
 
 void SpeechRecognizerOnIO::StartSpeechTimeout(int timeout_seconds) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
-  speech_timeout_->Start(FROM_HERE,
-                         base::TimeDelta::FromSeconds(timeout_seconds),
+  speech_timeout_->Start(FROM_HERE, base::Seconds(timeout_seconds),
                          base::BindOnce(&SpeechRecognizerOnIO::SpeechTimeout,
                                         weak_factory_.GetWeakPtr()));
 }
diff --git a/chrome/browser/vr/test/ui_test.cc b/chrome/browser/vr/test/ui_test.cc
index 3490108..2615f5d 100644
--- a/chrome/browser/vr/test/ui_test.cc
+++ b/chrome/browser/vr/test/ui_test.cc
@@ -191,15 +191,15 @@
 }
 
 bool UiTest::RunForMs(float milliseconds) {
-  return RunFor(base::TimeDelta::FromMilliseconds(milliseconds));
+  return RunFor(base::Milliseconds(milliseconds));
 }
 
 bool UiTest::RunForSeconds(float seconds) {
-  return RunFor(base::TimeDelta::FromSecondsD(seconds));
+  return RunFor(base::Seconds(seconds));
 }
 
 bool UiTest::AdvanceFrame() {
-  current_time_ += base::TimeDelta::FromMilliseconds(16);
+  current_time_ += base::Milliseconds(16);
   return OnBeginFrame();
 }
 
@@ -242,7 +242,7 @@
 
 bool UiTest::RunFor(base::TimeDelta delta) {
   base::TimeTicks target_time = current_time_ + delta;
-  base::TimeDelta frame_time = base::TimeDelta::FromMilliseconds(16);
+  base::TimeDelta frame_time = base::Milliseconds(16);
   bool changed = false;
 
   // Run a frame in the near future to trigger new state changes.
diff --git a/chrome/browser/vr/test/xr_browser_test.h b/chrome/browser/vr/test/xr_browser_test.h
index c6378240..a5b31cc 100644
--- a/chrome/browser/vr/test/xr_browser_test.h
+++ b/chrome/browser/vr/test/xr_browser_test.h
@@ -39,15 +39,13 @@
 class XrBrowserTestBase : public InProcessBrowserTest {
  public:
   static constexpr base::TimeDelta kPollCheckIntervalShort =
-      base::TimeDelta::FromMilliseconds(50);
+      base::Milliseconds(50);
   static constexpr base::TimeDelta kPollCheckIntervalLong =
-      base::TimeDelta::FromMilliseconds(100);
-  static constexpr base::TimeDelta kPollTimeoutShort =
-      base::TimeDelta::FromMilliseconds(1000);
+      base::Milliseconds(100);
+  static constexpr base::TimeDelta kPollTimeoutShort = base::Milliseconds(1000);
   static constexpr base::TimeDelta kPollTimeoutMedium =
-      base::TimeDelta::FromMilliseconds(5000);
-  static constexpr base::TimeDelta kPollTimeoutLong =
-      base::TimeDelta::FromMilliseconds(10000);
+      base::Milliseconds(5000);
+  static constexpr base::TimeDelta kPollTimeoutLong = base::Milliseconds(10000);
   static constexpr char kOpenXrConfigPathEnvVar[] = "XR_RUNTIME_JSON";
   static constexpr char kOpenXrConfigPathVal[] =
       "./mock_vr_clients/bin/openxr/openxr.json";
diff --git a/chrome/browser/vr/ui.cc b/chrome/browser/vr/ui.cc
index 33602df..a8a49f5 100644
--- a/chrome/browser/vr/ui.cc
+++ b/chrome/browser/vr/ui.cc
@@ -276,10 +276,9 @@
       OnSpeechRecognitionEnded();
     } else {
       auto sequence = std::make_unique<Sequence>();
-      sequence->Add(
-          base::BindOnce(&Ui::OnSpeechRecognitionEnded,
-                         weak_ptr_factory_.GetWeakPtr()),
-          base::TimeDelta::FromMilliseconds(kSpeechRecognitionResultTimeoutMs));
+      sequence->Add(base::BindOnce(&Ui::OnSpeechRecognitionEnded,
+                                   weak_ptr_factory_.GetWeakPtr()),
+                    base::Milliseconds(kSpeechRecognitionResultTimeoutMs));
       scene_->AddSequence(std::move(sequence));
     }
   }
diff --git a/chrome/browser/vr/ui_host/vr_ui_host_impl.cc b/chrome/browser/vr/ui_host/vr_ui_host_impl.cc
index 3de8caf..5ba5be67 100644
--- a/chrome/browser/vr/ui_host/vr_ui_host_impl.cc
+++ b/chrome/browser/vr/ui_host/vr_ui_host_impl.cc
@@ -30,14 +30,13 @@
 namespace vr {
 
 namespace {
-static constexpr base::TimeDelta kPermissionPromptTimeout =
-    base::TimeDelta::FromSeconds(5);
+static constexpr base::TimeDelta kPermissionPromptTimeout = base::Seconds(5);
 
 #if defined(OS_WIN)
 // Some runtimes on Windows have quite lengthy lengthy startup animations that
 // may cause indicators/permissions to not be visible during the normal timeout.
 static constexpr base::TimeDelta kFirstWindowsPermissionPromptTimeout =
-    base::TimeDelta::FromSeconds(10);
+    base::Seconds(10);
 #endif
 
 base::TimeDelta GetPermissionPromptTimeout(bool first_time) {
@@ -49,7 +48,7 @@
 }
 
 static constexpr base::TimeDelta kPollCapturingStateInterval =
-    base::TimeDelta::FromSecondsD(0.2);
+    base::Seconds(0.2);
 
 const CapturingStateModel g_default_capturing_state;
 }  // namespace
diff --git a/chrome/browser/vr/ui_scene_creator.cc b/chrome/browser/vr/ui_scene_creator.cc
index 239a6ec..be77c9c 100644
--- a/chrome/browser/vr/ui_scene_creator.cc
+++ b/chrome/browser/vr/ui_scene_creator.cc
@@ -285,8 +285,8 @@
 std::unique_ptr<TransientElement> CreateTransientParent(UiElementName name,
                                                         int timeout_seconds,
                                                         bool animate_opacity) {
-  auto element = std::make_unique<SimpleTransientElement>(
-      base::TimeDelta::FromSeconds(timeout_seconds));
+  auto element =
+      std::make_unique<SimpleTransientElement>(base::Seconds(timeout_seconds));
   element->SetName(name);
   element->SetVisible(false);
   if (animate_opacity)
@@ -590,7 +590,7 @@
   callout_group->SetVisible(false);
   callout_group->SetTransitionedProperties({OPACITY});
   callout_group->SetTransitionDuration(
-      base::TimeDelta::FromMilliseconds(kControllerLabelTransitionDurationMs));
+      base::Milliseconds(kControllerLabelTransitionDurationMs));
   callout_group->AddBinding(
       VR_BIND_FUNC(bool, ControllerBinding, element_binding,
                    model->model()->resting_in_viewport, UiElement,
@@ -989,15 +989,14 @@
   gfx::TransformOperations value_2;
   value_2.AppendTranslate(0, kWebVrPermissionOffsetOvershoot, 0);
   curve->AddKeyframe(gfx::TransformKeyframe::Create(
-      base::TimeDelta::FromMilliseconds(kWebVrPermissionOffsetMs), value_2,
+      base::Milliseconds(kWebVrPermissionOffsetMs), value_2,
       gfx::CubicBezierTimingFunction::CreatePreset(
           gfx::CubicBezierTimingFunction::EaseType::EASE)));
 
   gfx::TransformOperations value_3;
   value_3.AppendTranslate(0, kWebVrPermissionOffsetFinal, 0);
   curve->AddKeyframe(gfx::TransformKeyframe::Create(
-      base::TimeDelta::FromMilliseconds(kWebVrPermissionAnimationDurationMs),
-      value_3,
+      base::Milliseconds(kWebVrPermissionAnimationDurationMs), value_3,
       gfx::CubicBezierTimingFunction::CreatePreset(
           gfx::CubicBezierTimingFunction::EaseType::EASE)));
 
@@ -1076,15 +1075,14 @@
   gfx::TransformOperations value_2;
   value_2.AppendTranslate(0, kWebVrPermissionOffsetOvershoot, 0);
   curve->AddKeyframe(gfx::TransformKeyframe::Create(
-      base::TimeDelta::FromMilliseconds(kWebVrPermissionOffsetMs), value_2,
+      base::Milliseconds(kWebVrPermissionOffsetMs), value_2,
       gfx::CubicBezierTimingFunction::CreatePreset(
           gfx::CubicBezierTimingFunction::EaseType::EASE)));
 
   gfx::TransformOperations value_3;
   value_3.AppendTranslate(0, kWebVrPermissionOffsetFinal, 0);
   curve->AddKeyframe(gfx::TransformKeyframe::Create(
-      base::TimeDelta::FromMilliseconds(kWebVrPermissionAnimationDurationMs),
-      value_3,
+      base::Milliseconds(kWebVrPermissionAnimationDurationMs), value_3,
       gfx::CubicBezierTimingFunction::CreatePreset(
           gfx::CubicBezierTimingFunction::EaseType::EASE)));
 
@@ -1201,16 +1199,16 @@
 
   auto hider = Create<UiElement>(k2dBrowsingVisibiltyHider, kPhaseNone);
   hider->SetTransitionedProperties({OPACITY});
-  hider->SetTransitionDuration(base::TimeDelta::FromMilliseconds(
-      kSpeechRecognitionOpacityAnimationDurationMs));
+  hider->SetTransitionDuration(
+      base::Milliseconds(kSpeechRecognitionOpacityAnimationDurationMs));
   VR_BIND_VISIBILITY(
       hider, model->default_browsing_enabled() || model->fullscreen_enabled());
   scene_->AddUiElement(k2dBrowsingRepositioner, std::move(hider));
 
   auto fader = Create<UiElement>(k2dBrowsingVisibiltyFader, kPhaseNone);
   fader->SetTransitionedProperties({OPACITY});
-  fader->SetTransitionDuration(base::TimeDelta::FromMilliseconds(
-      kSpeechRecognitionOpacityAnimationDurationMs));
+  fader->SetTransitionDuration(
+      base::Milliseconds(kSpeechRecognitionOpacityAnimationDurationMs));
   fader->AddBinding(std::make_unique<Binding<float>>(
       VR_BIND_LAMBDA(
           [](Model* model) {
@@ -1230,8 +1228,8 @@
   element = Create<UiElement>(k2dBrowsingForeground, kPhaseNone);
   element->set_bounds_contain_children(true);
   element->SetTransitionedProperties({OPACITY});
-  element->SetTransitionDuration(base::TimeDelta::FromMilliseconds(
-      kSpeechRecognitionOpacityAnimationDurationMs));
+  element->SetTransitionDuration(
+      base::Milliseconds(kSpeechRecognitionOpacityAnimationDurationMs));
   scene_->AddUiElement(k2dBrowsingVisibiltyFader, std::move(element));
 
   element = Create<UiElement>(k2dBrowsingContentGroup, kPhaseNone);
@@ -1514,7 +1512,7 @@
   frame->SetLocalOpacity(0.0f);
   frame->SetTransitionedProperties({LOCAL_OPACITY});
   frame->SetTransitionDuration(
-      base::TimeDelta::FromMilliseconds(kRepositionFrameTransitionDurationMs));
+      base::Milliseconds(kRepositionFrameTransitionDurationMs));
   VR_BIND_COLOR(model_, frame.get(), &ColorScheme::content_reposition_frame,
                 &Rect::SetColor);
 
@@ -1904,8 +1902,7 @@
   speech_recognition_root->SetTranslate(0.f, 0.f, -kContentDistance);
   speech_recognition_root->SetTransitionedProperties({OPACITY});
   speech_recognition_root->SetTransitionDuration(
-      base::TimeDelta::FromMilliseconds(
-          kSpeechRecognitionOpacityAnimationDurationMs));
+      base::Milliseconds(kSpeechRecognitionOpacityAnimationDurationMs));
   VR_BIND_VISIBILITY(speech_recognition_root, model->voice_search_active());
 
   auto inner_circle = std::make_unique<Rect>();
@@ -1926,8 +1923,8 @@
   auto speech_result_parent =
       Create<UiElement>(kSpeechRecognitionResult, kPhaseNone);
   speech_result_parent->SetTransitionedProperties({OPACITY});
-  speech_result_parent->SetTransitionDuration(base::TimeDelta::FromMilliseconds(
-      kSpeechRecognitionOpacityAnimationDurationMs));
+  speech_result_parent->SetTransitionDuration(
+      base::Milliseconds(kSpeechRecognitionOpacityAnimationDurationMs));
   speech_result_parent->AddBinding(std::make_unique<Binding<bool>>(
       VR_BIND_LAMBDA(
           [](Model* m) { return !m->speech.recognition_result.empty(); },
@@ -2080,7 +2077,7 @@
   auto reticle_laser_group = Create<UiElement>(kReticleLaserGroup, kPhaseNone);
   reticle_laser_group->SetTransitionedProperties({OPACITY});
   reticle_laser_group->SetTransitionDuration(
-      base::TimeDelta::FromMilliseconds(kControllerLabelTransitionDurationMs));
+      base::Milliseconds(kControllerLabelTransitionDurationMs));
   VR_BIND_VISIBILITY(reticle_laser_group, !model->reposition_window_enabled());
 
   auto laser = std::make_unique<Laser>(model_);
@@ -2574,8 +2571,7 @@
   auto omnibox_root = Create<UiElement>(kOmniboxRoot, kPhaseNone);
   omnibox_root->SetVisible(false);
   omnibox_root->SetTransitionedProperties({OPACITY});
-  omnibox_root->SetTransitionDuration(
-      base::TimeDelta::FromMilliseconds(kOmniboxTransitionMs));
+  omnibox_root->SetTransitionDuration(base::Milliseconds(kOmniboxTransitionMs));
   VR_BIND_VISIBILITY(omnibox_root, model->get_mode() == kModeEditingOmnibox);
 
   auto omnibox_outer_layout =
diff --git a/chrome/browser/vr/win/vr_browser_renderer_thread_win.cc b/chrome/browser/vr/win/vr_browser_renderer_thread_win.cc
index 9fb3126..3462633d 100644
--- a/chrome/browser/vr/win/vr_browser_renderer_thread_win.cc
+++ b/chrome/browser/vr/win/vr_browser_renderer_thread_win.cc
@@ -27,10 +27,8 @@
 #undef DrawState
 
 namespace {
-constexpr base::TimeDelta kWebVrInitialFrameTimeout =
-    base::TimeDelta::FromSeconds(5);
-constexpr base::TimeDelta kWebVrSpinnerTimeout =
-    base::TimeDelta::FromSeconds(2);
+constexpr base::TimeDelta kWebVrInitialFrameTimeout = base::Seconds(5);
+constexpr base::TimeDelta kWebVrSpinnerTimeout = base::Seconds(2);
 
 constexpr float kEpsilon = 0.1f;
 constexpr float kMaxPosition = 1000000;
diff --git a/chrome/browser/web_applications/daily_metrics_helper.cc b/chrome/browser/web_applications/daily_metrics_helper.cc
index 68c34a71..61b3e59 100644
--- a/chrome/browser/web_applications/daily_metrics_helper.cc
+++ b/chrome/browser/web_applications/daily_metrics_helper.cc
@@ -22,10 +22,10 @@
 namespace {
 
 int BucketedDailySeconds(base::TimeDelta delta) {
-  int64_t sample = base::clamp(delta.InSeconds(), int64_t(0),
-                               base::TimeDelta::FromDays(1).InSeconds());
+  int64_t sample =
+      base::clamp(delta.InSeconds(), int64_t(0), base::Days(1).InSeconds());
   // Result between 1 sec and 1 day, in 50 linear buckets per day.
-  int32_t bucket_size = base::TimeDelta::FromDays(1).InSeconds() / 50;
+  int32_t bucket_size = base::Days(1).InSeconds() / 50;
   int result = ukm::GetLinearBucketMin(sample, bucket_size);
   return std::max(1, result);
 }
diff --git a/chrome/browser/web_applications/externally_managed_app_registration_task.cc b/chrome/browser/web_applications/externally_managed_app_registration_task.cc
index 6c3cf6d..76712493 100644
--- a/chrome/browser/web_applications/externally_managed_app_registration_task.cc
+++ b/chrome/browser/web_applications/externally_managed_app_registration_task.cc
@@ -45,7 +45,7 @@
   service_worker_context_->AddObserver(this);
 
   registration_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromSeconds(registration_timeout_in_seconds_),
+      FROM_HERE, base::Seconds(registration_timeout_in_seconds_),
       base::BindOnce(
           &ExternallyManagedAppRegistrationTask::OnRegistrationTimeout,
           weak_ptr_factory_.GetWeakPtr()));
diff --git a/chrome/browser/web_applications/install_bounce_metric.cc b/chrome/browser/web_applications/install_bounce_metric.cc
index 70213f0..5d0ce06 100644
--- a/chrome/browser/web_applications/install_bounce_metric.cc
+++ b/chrome/browser/web_applications/install_bounce_metric.cc
@@ -35,8 +35,7 @@
   if (!base::StringToInt64(value->GetString(), &integer))
     return absl::nullopt;
 
-  return base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(integer));
+  return base::Time::FromDeltaSinceWindowsEpoch(base::Microseconds(integer));
 }
 
 base::Value SerializeTime(const base::Time& time) {
@@ -119,8 +118,7 @@
   if (!metrics)
     return;
 
-  constexpr base::TimeDelta kMaxInstallBounceDuration =
-      base::TimeDelta::FromHours(1);
+  constexpr base::TimeDelta kMaxInstallBounceDuration = base::Hours(1);
   if (GetTime() - metrics->timestamp > kMaxInstallBounceDuration)
     return;
 
diff --git a/chrome/browser/web_applications/manifest_update_manager.cc b/chrome/browser/web_applications/manifest_update_manager.cc
index f6e73e6..b345268 100644
--- a/chrome/browser/web_applications/manifest_update_manager.cc
+++ b/chrome/browser/web_applications/manifest_update_manager.cc
@@ -18,7 +18,7 @@
 
 namespace web_app {
 
-constexpr base::TimeDelta kDelayBetweenChecks = base::TimeDelta::FromDays(1);
+constexpr base::TimeDelta kDelayBetweenChecks = base::Days(1);
 constexpr const char kDisableManifestUpdateThrottle[] =
     "disable-manifest-update-throttle";
 
diff --git a/chrome/browser/web_applications/manifest_update_manager_browsertest.cc b/chrome/browser/web_applications/manifest_update_manager_browsertest.cc
index 4ac2db3..2d1d7c4 100644
--- a/chrome/browser/web_applications/manifest_update_manager_browsertest.cc
+++ b/chrome/browser/web_applications/manifest_update_manager_browsertest.cc
@@ -445,7 +445,7 @@
 }
 
 IN_PROC_BROWSER_TEST_F(ManifestUpdateManagerBrowserTest, CheckIsThrottled) {
-  constexpr base::TimeDelta kDelayBetweenChecks = base::TimeDelta::FromDays(1);
+  constexpr base::TimeDelta kDelayBetweenChecks = base::Days(1);
   base::Time time_override = base::Time::UnixEpoch();
   SetTimeOverride(time_override);
 
@@ -2024,7 +2024,7 @@
 
   // Update manifest, but keep same file handlers. Permission should be left on
   // ALLOW.
-  time_override += base::TimeDelta::FromDays(10);
+  time_override += base::Days(10);
   SetTimeOverride(time_override);
   OverrideManifest(kFileHandlerManifestTemplate, {".md\", \".txt", "blue"});
   EXPECT_EQ(ManifestUpdateResult::kAppUpdated, GetResultAfterPageLoad(url));
@@ -2037,7 +2037,7 @@
 
   // Update manifest, asking for /fewer/ file types. Permission should be left
   // on ALLOW.
-  time_override += base::TimeDelta::FromDays(10);
+  time_override += base::Days(10);
   SetTimeOverride(time_override);
   OverrideManifest(kFileHandlerManifestTemplate, {".txt", "blue"});
   EXPECT_EQ(ManifestUpdateResult::kAppUpdated, GetResultAfterPageLoad(url));
@@ -2063,7 +2063,7 @@
                                      ContentSettingsType::FILE_HANDLING,
                                      CONTENT_SETTING_BLOCK);
   OverrideManifest(kFileHandlerManifestTemplate, {".txt", "red"});
-  time_override += base::TimeDelta::FromDays(10);
+  time_override += base::Days(10);
   SetTimeOverride(time_override);
   EXPECT_EQ(ManifestUpdateResult::kAppUpdated, GetResultAfterPageLoad(url));
   EXPECT_EQ(CONTENT_SETTING_BLOCK,
diff --git a/chrome/browser/web_applications/system_web_apps/system_web_app_background_task.cc b/chrome/browser/web_applications/system_web_apps/system_web_app_background_task.cc
index ae434c2..c23bd2af 100644
--- a/chrome/browser/web_applications/system_web_apps/system_web_app_background_task.cc
+++ b/chrome/browser/web_applications/system_web_apps/system_web_app_background_task.cc
@@ -49,13 +49,11 @@
 
 void SystemAppBackgroundTask::StartTask() {
   if (open_immediately_ ||
-      period_ <
-          base::TimeDelta::FromSeconds(kInitialWaitForBackgroundTasksSeconds)) {
-    timer_->Start(
-        FROM_HERE,
-        base::TimeDelta::FromSeconds(kInitialWaitForBackgroundTasksSeconds),
-        base::BindOnce(&SystemAppBackgroundTask::MaybeOpenPage,
-                       weak_ptr_factory_.GetWeakPtr()));
+      period_ < base::Seconds(kInitialWaitForBackgroundTasksSeconds)) {
+    timer_->Start(FROM_HERE,
+                  base::Seconds(kInitialWaitForBackgroundTasksSeconds),
+                  base::BindOnce(&SystemAppBackgroundTask::MaybeOpenPage,
+                                 weak_ptr_factory_.GetWeakPtr()));
     state_ = INITIAL_WAIT;
   } else if (period_) {
     timer_->Start(FROM_HERE, period_.value(),
@@ -80,13 +78,12 @@
 
   base::TimeDelta polling_duration = (now - polling_since_time_);
 
-  if (polling_duration <
-          base::TimeDelta::FromSeconds(kIdlePollMaxTimeToWaitSeconds) &&
+  if (polling_duration < base::Seconds(kIdlePollMaxTimeToWaitSeconds) &&
       idle_state == ui::IDLE_STATE_ACTIVE) {
     // We've gone through some weird clock adjustment (daylight savings?) that's
     // sent us back in time. We don't know what's going on, so zero the polling
     // time and stop polling.
-    if (polling_duration < base::TimeDelta::FromSeconds(0) && period_) {
+    if (polling_duration < base::Seconds(0) && period_) {
       timer_->Start(FROM_HERE, period_.value(),
                     base::BindOnce(&SystemAppBackgroundTask::MaybeOpenPage,
                                    weak_ptr_factory_.GetWeakPtr()));
@@ -95,8 +92,7 @@
       return;
     }
     // Poll
-    timer_->Start(FROM_HERE,
-                  base::TimeDelta::FromSeconds(kIdlePollIntervalSeconds),
+    timer_->Start(FROM_HERE, base::Seconds(kIdlePollIntervalSeconds),
                   base::BindOnce(&SystemAppBackgroundTask::MaybeOpenPage,
                                  weak_ptr_factory_.GetWeakPtr()));
     state_ = WAIT_IDLE;
diff --git a/chrome/browser/web_applications/system_web_apps/test/system_web_app_manager_browsertest.cc b/chrome/browser/web_applications/system_web_apps/test/system_web_app_manager_browsertest.cc
index 4662aae..16dbb37 100644
--- a/chrome/browser/web_applications/system_web_apps/test/system_web_app_manager_browsertest.cc
+++ b/chrome/browser/web_applications/system_web_apps/test/system_web_app_manager_browsertest.cc
@@ -1567,7 +1567,7 @@
 
   auto& tasks = GetManager().GetBackgroundTasksForTesting();
   auto* timer = tasks[0]->get_timer_for_testing();
-  EXPECT_EQ(base::TimeDelta::FromSeconds(120), timer->GetCurrentDelay());
+  EXPECT_EQ(base::Seconds(120), timer->GetCurrentDelay());
   EXPECT_EQ(SystemAppBackgroundTask::INITIAL_WAIT,
             tasks[0]->get_state_for_testing());
   // The "Immediate" timer waits for 2 minutes, and it's really hard to mock
@@ -1579,11 +1579,11 @@
   EXPECT_TRUE(timer->IsRunning());
   EXPECT_EQ(1u, tasks.size());
   EXPECT_TRUE(tasks[0]->open_immediately_for_testing());
-  EXPECT_EQ(base::TimeDelta::FromDays(1), tasks[0]->period_for_testing());
+  EXPECT_EQ(base::Days(1), tasks[0]->period_for_testing());
   EXPECT_EQ(1u, tasks[0]->timer_activated_count_for_testing());
   EXPECT_EQ(SystemAppBackgroundTask::WAIT_PERIOD,
             tasks[0]->get_state_for_testing());
-  EXPECT_EQ(base::TimeDelta::FromDays(1), timer->GetCurrentDelay());
+  EXPECT_EQ(base::Days(1), timer->GetCurrentDelay());
 
   histograms.ExpectTotalCount("Webapp.SystemApps.BackgroundTaskStartDelay", 1);
   histograms.ExpectUniqueSample("Webapp.SystemApps.BackgroundTaskStartDelay", 0,
diff --git a/chrome/browser/web_applications/system_web_apps/test/system_web_app_manager_unittest.cc b/chrome/browser/web_applications/system_web_apps/test/system_web_app_manager_unittest.cc
index 2d848b5..1df4c875 100644
--- a/chrome/browser/web_applications/system_web_apps/test/system_web_app_manager_unittest.cc
+++ b/chrome/browser/web_applications/system_web_apps/test/system_web_app_manager_unittest.cc
@@ -1079,7 +1079,7 @@
 
 TEST_F(SystemWebAppManagerTimerTest, TestTimer) {
   ui::ScopedSetIdleState idle(ui::IDLE_STATE_IDLE);
-  SetupTimer(base::TimeDelta::FromSeconds(60), false);
+  SetupTimer(base::Seconds(60), false);
   StartAndWaitForAppsToSynchronize();
 
   auto& timers = system_web_app_manager().GetBackgroundTasksForTesting();
@@ -1092,7 +1092,7 @@
   loader->AddPrepareForLoadResults({WebAppUrlLoader::Result::kUrlLoaded});
   loader->SetNextLoadUrlResult(AppUrl1(), WebAppUrlLoader::Result::kUrlLoaded);
 
-  EXPECT_EQ(base::TimeDelta::FromSeconds(60), timers[0]->period_for_testing());
+  EXPECT_EQ(base::Seconds(60), timers[0]->period_for_testing());
   base::RunLoop().RunUntilIdle();
 
   EXPECT_EQ(0u, timers[0]->timer_activated_count_for_testing());
@@ -1100,7 +1100,7 @@
             timers[0]->get_state_for_testing());
   EXPECT_EQ(0u, timers[0]->opened_count_for_testing());
   // Fast forward until the timer fires.
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(
+  task_environment()->FastForwardBy(base::Seconds(
       SystemAppBackgroundTask::kInitialWaitForBackgroundTasksSeconds));
   EXPECT_EQ(1u, timers[0]->timer_activated_count_for_testing());
   EXPECT_EQ(1u, timers[0]->opened_count_for_testing());
@@ -1111,7 +1111,7 @@
   EXPECT_EQ(SystemAppBackgroundTask::WAIT_PERIOD,
             timers[0]->get_state_for_testing());
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(60));
+  task_environment()->FastForwardBy(base::Seconds(60));
 
   EXPECT_EQ(2u, timers[0]->timer_activated_count_for_testing());
   EXPECT_EQ(2u, timers[0]->opened_count_for_testing());
@@ -1120,7 +1120,7 @@
   loader->SetNextLoadUrlResult(AppUrl1(),
                                WebAppUrlLoader::Result::kFailedUnknownReason);
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(61));
+  task_environment()->FastForwardBy(base::Seconds(61));
 
   EXPECT_EQ(3u, timers[0]->timer_activated_count_for_testing());
   // The timer fired, but we couldn't open the page.
@@ -1130,7 +1130,7 @@
 TEST_F(SystemWebAppManagerTimerTest,
        TestTimerStartsImmediatelyThenRunsPeriodic) {
   ui::ScopedSetIdleState idle(ui::IDLE_STATE_IDLE);
-  SetupTimer(base::TimeDelta::FromSeconds(300), true);
+  SetupTimer(base::Seconds(300), true);
   TestWebAppUrlLoader* loader = nullptr;
   SystemWebAppWaiter waiter(&system_web_app_manager());
 
@@ -1154,10 +1154,10 @@
   auto& timers = system_web_app_manager().GetBackgroundTasksForTesting();
   EXPECT_EQ(SystemAppBackgroundTask::INITIAL_WAIT,
             timers[0]->get_state_for_testing());
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(121));
+  task_environment()->FastForwardBy(base::Seconds(121));
   EXPECT_EQ(1u, timers.size());
   EXPECT_EQ(true, timers[0]->open_immediately_for_testing());
-  EXPECT_EQ(base::TimeDelta::FromSeconds(300), timers[0]->period_for_testing());
+  EXPECT_EQ(base::Seconds(300), timers[0]->period_for_testing());
   EXPECT_EQ(1u, timers[0]->timer_activated_count_for_testing());
   EXPECT_EQ(1u, timers[0]->opened_count_for_testing());
   EXPECT_EQ(SystemAppBackgroundTask::WAIT_PERIOD,
@@ -1165,7 +1165,7 @@
   loader->AddPrepareForLoadResults({WebAppUrlLoader::Result::kUrlLoaded});
   loader->SetNextLoadUrlResult(AppUrl1(), WebAppUrlLoader::Result::kUrlLoaded);
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(300));
+  task_environment()->FastForwardBy(base::Seconds(300));
 
   EXPECT_EQ(2u, timers[0]->timer_activated_count_for_testing());
   EXPECT_EQ(2u, timers[0]->opened_count_for_testing());
@@ -1197,7 +1197,7 @@
   auto& timers = system_web_app_manager().GetBackgroundTasksForTesting();
   EXPECT_EQ(SystemAppBackgroundTask::INITIAL_WAIT,
             timers[0]->get_state_for_testing());
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(121));
+  task_environment()->FastForwardBy(base::Seconds(121));
   EXPECT_EQ(1u, timers.size());
   EXPECT_EQ(true, timers[0]->open_immediately_for_testing());
   EXPECT_EQ(absl::nullopt, timers[0]->period_for_testing());
@@ -1212,7 +1212,7 @@
   loader->AddPrepareForLoadResults({WebAppUrlLoader::Result::kUrlLoaded});
   loader->SetNextLoadUrlResult(AppUrl1(), WebAppUrlLoader::Result::kUrlLoaded);
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(300));
+  task_environment()->FastForwardBy(base::Seconds(300));
 
   EXPECT_EQ(1u, timers[0]->timer_activated_count_for_testing());
   EXPECT_EQ(1u, timers[0]->opened_count_for_testing());
@@ -1220,7 +1220,7 @@
 
 TEST_F(SystemWebAppManagerTimerTest, TestTimerWaitsForIdle) {
   ui::ScopedSetIdleState scoped_active(ui::IDLE_STATE_ACTIVE);
-  SetupTimer(base::TimeDelta::FromSeconds(300), true);
+  SetupTimer(base::Seconds(300), true);
 
   TestWebAppUrlLoader* loader = nullptr;
   SystemWebAppWaiter waiter(&system_web_app_manager());
@@ -1245,13 +1245,13 @@
   auto& timers = system_web_app_manager().GetBackgroundTasksForTesting();
   EXPECT_EQ(SystemAppBackgroundTask::INITIAL_WAIT,
             timers[0]->get_state_for_testing());
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(
+  task_environment()->FastForwardBy(base::Seconds(
       SystemAppBackgroundTask::kInitialWaitForBackgroundTasksSeconds));
   EXPECT_EQ(SystemAppBackgroundTask::WAIT_IDLE,
             timers[0]->get_state_for_testing());
   EXPECT_EQ(1u, timers.size());
   EXPECT_EQ(true, timers[0]->open_immediately_for_testing());
-  EXPECT_EQ(base::TimeDelta::FromSeconds(300), timers[0]->period_for_testing());
+  EXPECT_EQ(base::Seconds(300), timers[0]->period_for_testing());
   EXPECT_EQ(SystemAppBackgroundTask::WAIT_IDLE,
             timers[0]->get_state_for_testing());
   EXPECT_EQ(0u, timers[0]->timer_activated_count_for_testing());
@@ -1260,7 +1260,7 @@
 
   {
     ui::ScopedSetIdleState scoped_idle(ui::IDLE_STATE_IDLE);
-    task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(30));
+    task_environment()->FastForwardBy(base::Seconds(30));
     EXPECT_EQ(SystemAppBackgroundTask::WAIT_PERIOD,
               timers[0]->get_state_for_testing());
     EXPECT_EQ(1u, timers[0]->timer_activated_count_for_testing());
@@ -1269,7 +1269,7 @@
     loader->AddPrepareForLoadResults({WebAppUrlLoader::Result::kUrlLoaded});
     loader->SetNextLoadUrlResult(AppUrl1(),
                                  WebAppUrlLoader::Result::kUrlLoaded);
-    task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(300));
+    task_environment()->FastForwardBy(base::Seconds(300));
 
     EXPECT_EQ(2u, timers[0]->timer_activated_count_for_testing());
     EXPECT_EQ(2u, timers[0]->opened_count_for_testing());
@@ -1279,7 +1279,7 @@
     loader->AddPrepareForLoadResults({WebAppUrlLoader::Result::kUrlLoaded});
     loader->SetNextLoadUrlResult(AppUrl1(),
                                  WebAppUrlLoader::Result::kUrlLoaded);
-    task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(300));
+    task_environment()->FastForwardBy(base::Seconds(300));
     EXPECT_EQ(SystemAppBackgroundTask::WAIT_PERIOD,
               timers[0]->get_state_for_testing());
     EXPECT_EQ(3u, timers[0]->timer_activated_count_for_testing());
@@ -1289,7 +1289,7 @@
 
 TEST_F(SystemWebAppManagerTimerTest, TestTimerRunsAfterIdleLimitReached) {
   ui::ScopedSetIdleState idle(ui::IDLE_STATE_ACTIVE);
-  SetupTimer(base::TimeDelta::FromSeconds(300), true);
+  SetupTimer(base::Seconds(300), true);
 
   TestWebAppUrlLoader* loader = nullptr;
   SystemWebAppWaiter waiter(&system_web_app_manager());
@@ -1314,11 +1314,11 @@
   auto& timers = system_web_app_manager().GetBackgroundTasksForTesting();
   EXPECT_EQ(SystemAppBackgroundTask::INITIAL_WAIT,
             timers[0]->get_state_for_testing());
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(
+  task_environment()->FastForwardBy(base::Seconds(
       SystemAppBackgroundTask::kInitialWaitForBackgroundTasksSeconds));
   EXPECT_EQ(1u, timers.size());
   EXPECT_EQ(true, timers[0]->open_immediately_for_testing());
-  EXPECT_EQ(base::TimeDelta::FromSeconds(300), timers[0]->period_for_testing());
+  EXPECT_EQ(base::Seconds(300), timers[0]->period_for_testing());
   EXPECT_EQ(SystemAppBackgroundTask::WAIT_IDLE,
             timers[0]->get_state_for_testing());
   EXPECT_EQ(0u, timers[0]->timer_activated_count_for_testing());
@@ -1326,7 +1326,7 @@
 
   base::Time polling_since(timers[0]->polling_since_time_for_testing());
   // Poll up to not quite the maximum.
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(
+  task_environment()->FastForwardBy(base::Seconds(
       SystemAppBackgroundTask::kIdlePollMaxTimeToWaitSeconds - 1));
   EXPECT_EQ(SystemAppBackgroundTask::WAIT_IDLE,
             timers[0]->get_state_for_testing());
@@ -1335,7 +1335,7 @@
   EXPECT_EQ(0u, timers[0]->opened_count_for_testing());
 
   // Poll to the maximum wait.
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
   EXPECT_EQ(SystemAppBackgroundTask::WAIT_PERIOD,
             timers[0]->get_state_for_testing());
   EXPECT_EQ(1u, timers[0]->timer_activated_count_for_testing());
diff --git a/chrome/browser/web_applications/system_web_apps/test/test_system_web_app_installation.cc b/chrome/browser/web_applications/system_web_apps/test/test_system_web_app_installation.cc
index 35ef152..2c2b69d 100644
--- a/chrome/browser/web_applications/system_web_apps/test/test_system_web_app_installation.cc
+++ b/chrome/browser/web_applications/system_web_apps/test/test_system_web_app_installation.cc
@@ -472,8 +472,7 @@
           base::BindRepeating(&GenerateWebApplicationInfoForTestApp));
 
   SystemAppBackgroundTaskInfo background_task(
-      base::TimeDelta::FromDays(1), GURL("chrome://test-system-app/page2.html"),
-      true);
+      base::Days(1), GURL("chrome://test-system-app/page2.html"), true);
   delegate->SetTimerInfo(background_task);
 
   return base::WrapUnique(
diff --git a/chrome/browser/web_applications/test/web_app_test_utils.cc b/chrome/browser/web_applications/test/web_app_test_utils.cc
index 4c65ecc..db67c4fb 100644
--- a/chrome/browser/web_applications/test/web_app_test_utils.cc
+++ b/chrome/browser/web_applications/test/web_app_test_utils.cc
@@ -282,18 +282,15 @@
   app->SetUserDisplayMode(user_display_modes[random.next_uint(3)]);
 
   const base::Time last_badging_time =
-      base::Time::UnixEpoch() +
-      base::TimeDelta::FromMilliseconds(random.next_uint());
+      base::Time::UnixEpoch() + base::Milliseconds(random.next_uint());
   app->SetLastBadgingTime(last_badging_time);
 
   const base::Time last_launch_time =
-      base::Time::UnixEpoch() +
-      base::TimeDelta::FromMilliseconds(random.next_uint());
+      base::Time::UnixEpoch() + base::Milliseconds(random.next_uint());
   app->SetLastLaunchTime(last_launch_time);
 
   const base::Time install_time =
-      base::Time::UnixEpoch() +
-      base::TimeDelta::FromMilliseconds(random.next_uint());
+      base::Time::UnixEpoch() + base::Milliseconds(random.next_uint());
   app->SetInstallTime(install_time);
 
   const DisplayMode display_modes[4] = {
@@ -409,8 +406,7 @@
   }
 
   const base::Time manifest_update_time =
-      base::Time::UnixEpoch() +
-      base::TimeDelta::FromMilliseconds(random.next_uint());
+      base::Time::UnixEpoch() + base::Milliseconds(random.next_uint());
   app->SetManifestUpdateTime(manifest_update_time);
 
   // `random` should not be used after the chromeos block if the result
diff --git a/chrome/browser/web_applications/web_app_prefs_utils_unittest.cc b/chrome/browser/web_applications/web_app_prefs_utils_unittest.cc
index 299f7c1..adb3a82 100644
--- a/chrome/browser/web_applications/web_app_prefs_utils_unittest.cc
+++ b/chrome/browser/web_applications/web_app_prefs_utils_unittest.cc
@@ -26,13 +26,11 @@
 const AppId app_id = "test_app";
 const AppId app_id_2 = "test_app_2";
 const base::Time time_before_app_mute =
-    base::Time::Now() -
-    base::TimeDelta::FromDays(kIphAppSpecificMuteTimeSpanDays) -
-    base::TimeDelta::FromHours(1);
+    base::Time::Now() - base::Days(kIphAppSpecificMuteTimeSpanDays) -
+    base::Hours(1);
 const base::Time time_before_global_mute =
-    base::Time::Now() -
-    base::TimeDelta::FromDays(kIphAppAgnosticMuteTimeSpanDays) -
-    base::TimeDelta::FromHours(1);
+    base::Time::Now() - base::Days(kIphAppAgnosticMuteTimeSpanDays) -
+    base::Hours(1);
 }  // namespace
 
 class WebAppPrefsUtilsTest : public testing::Test {
diff --git a/chrome/browser/web_applications/web_app_url_loader.h b/chrome/browser/web_applications/web_app_url_loader.h
index ad13caf..c45d0fe 100644
--- a/chrome/browser/web_applications/web_app_url_loader.h
+++ b/chrome/browser/web_applications/web_app_url_loader.h
@@ -76,7 +76,7 @@
 
   // Exposed for testing.
   static constexpr base::TimeDelta kSecondsToWaitForWebContentsLoad =
-      base::TimeDelta::FromSeconds(30);
+      base::Seconds(30);
 };
 
 }  // namespace web_app
diff --git a/chrome/browser/webshare/chromeos/sharesheet_client.cc b/chrome/browser/webshare/chromeos/sharesheet_client.cc
index faffb738..6345ce8b 100644
--- a/chrome/browser/webshare/chromeos/sharesheet_client.cc
+++ b/chrome/browser/webshare/chromeos/sharesheet_client.cc
@@ -113,7 +113,7 @@
             FROM_HERE,
             base::BindOnce(std::move(callback),
                            blink::mojom::ShareError::CANCELED),
-            base::TimeDelta::FromSecondsD(delay_seconds));
+            base::Seconds(delay_seconds));
     return;
   }
 
@@ -194,7 +194,7 @@
   if (!web_contents() || error != blink::mojom::ShareError::OK) {
     std::move(current_share_->callback).Run(error);
     PrepareDirectoryTask::ScheduleSharedFileDeletion(
-        std::move(current_share_->file_paths), base::TimeDelta::FromMinutes(0));
+        std::move(current_share_->file_paths), base::Minutes(0));
     current_share_ = absl::nullopt;
     return;
   }
diff --git a/chrome/browser/webshare/chromeos/sharesheet_client_unittest.cc b/chrome/browser/webshare/chromeos/sharesheet_client_unittest.cc
index 45f5e23..0be1395 100644
--- a/chrome/browser/webshare/chromeos/sharesheet_client_unittest.cc
+++ b/chrome/browser/webshare/chromeos/sharesheet_client_unittest.cc
@@ -92,12 +92,12 @@
           [&error](blink::mojom::ShareError in_error) { error = in_error; }));
 
   // Should be cancelled after 1-2 seconds. So 500ms is not enough.
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(500));
+  task_environment()->FastForwardBy(base::Milliseconds(500));
   EXPECT_EQ(error, blink::mojom::ShareError::INTERNAL_ERROR);
 
   // But 5*500ms > 2 seconds, so it should now be cancelled.
   for (int n = 0; n < 4; n++)
-    task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(500));
+    task_environment()->FastForwardBy(base::Milliseconds(500));
   EXPECT_EQ(error, blink::mojom::ShareError::CANCELED);
 }
 
diff --git a/chrome/browser/webshare/mac/sharing_service_operation.mm b/chrome/browser/webshare/mac/sharing_service_operation.mm
index 85d83e5..85bb2a4 100644
--- a/chrome/browser/webshare/mac/sharing_service_operation.mm
+++ b/chrome/browser/webshare/mac/sharing_service_operation.mm
@@ -84,7 +84,7 @@
             FROM_HERE,
             base::BindOnce(std::move(callback_),
                            blink::mojom::ShareError::CANCELED),
-            base::TimeDelta::FromSecondsD(delay_seconds));
+            base::Seconds(delay_seconds));
     return;
   }
 
@@ -157,8 +157,8 @@
 
 void SharingServiceOperation::OnStoreFiles(blink::mojom::ShareError error) {
   if (!web_contents_ || error != blink::mojom::ShareError::OK) {
-    PrepareDirectoryTask::ScheduleSharedFileDeletion(
-        std::move(file_paths_), base::TimeDelta::FromMinutes(0));
+    PrepareDirectoryTask::ScheduleSharedFileDeletion(std::move(file_paths_),
+                                                     base::Minutes(0));
     std::move(callback_).Run(error);
     return;
   }
@@ -172,8 +172,8 @@
 void SharingServiceOperation::OnShowSharePicker(
     blink::mojom::ShareError error) {
   if (file_paths_.size() > 0) {
-    PrepareDirectoryTask::ScheduleSharedFileDeletion(
-        std::move(file_paths_), base::TimeDelta::FromMinutes(0));
+    PrepareDirectoryTask::ScheduleSharedFileDeletion(std::move(file_paths_),
+                                                     base::Minutes(0));
   }
   std::move(callback_).Run(error);
 }
diff --git a/chrome/browser/webshare/mac/sharing_service_operation_unittest.cc b/chrome/browser/webshare/mac/sharing_service_operation_unittest.cc
index 8911bae..453197b 100644
--- a/chrome/browser/webshare/mac/sharing_service_operation_unittest.cc
+++ b/chrome/browser/webshare/mac/sharing_service_operation_unittest.cc
@@ -81,12 +81,12 @@
       [&error](blink::mojom::ShareError in_error) { error = in_error; }));
 
   // Should be cancelled after 1-2 seconds. So 500ms is not enough.
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(500));
+  task_environment()->FastForwardBy(base::Milliseconds(500));
   EXPECT_EQ(error, blink::mojom::ShareError::INTERNAL_ERROR);
 
   // But 5*500ms > 2 seconds, so it should now be cancelled.
   for (int n = 0; n < 4; n++)
-    task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(500));
+    task_environment()->FastForwardBy(base::Milliseconds(500));
   EXPECT_EQ(error, blink::mojom::ShareError::CANCELED);
 }
 
diff --git a/chrome/browser/webshare/prepare_directory_task.h b/chrome/browser/webshare/prepare_directory_task.h
index 132bc28..fe52061 100644
--- a/chrome/browser/webshare/prepare_directory_task.h
+++ b/chrome/browser/webshare/prepare_directory_task.h
@@ -17,8 +17,7 @@
 // Deletes any old files remaining from past shares.
 class PrepareDirectoryTask {
  public:
-  static constexpr base::TimeDelta kSharedFileLifetime =
-      base::TimeDelta::FromMinutes(10);
+  static constexpr base::TimeDelta kSharedFileLifetime = base::Minutes(10);
 
   PrepareDirectoryTask(base::FilePath directory, uint64_t required_space);
   PrepareDirectoryTask(base::FilePath directory,
diff --git a/chrome/browser/webshare/safe_browsing_request.cc b/chrome/browser/webshare/safe_browsing_request.cc
index 24bcbb0..c843cac 100644
--- a/chrome/browser/webshare/safe_browsing_request.cc
+++ b/chrome/browser/webshare/safe_browsing_request.cc
@@ -19,8 +19,7 @@
 namespace {
 
 // The maximum amount of time to wait for the Safe Browsing response.
-constexpr base::TimeDelta kSafeBrowsingCheckTimeout =
-    base::TimeDelta::FromSeconds(2);
+constexpr base::TimeDelta kSafeBrowsingCheckTimeout = base::Seconds(2);
 
 }  // namespace
 
diff --git a/chrome/browser/webshare/win/show_share_ui_for_window_operation.h b/chrome/browser/webshare/win/show_share_ui_for_window_operation.h
index 1b7a4308..dc23668a 100644
--- a/chrome/browser/webshare/win/show_share_ui_for_window_operation.h
+++ b/chrome/browser/webshare/win/show_share_ui_for_window_operation.h
@@ -62,8 +62,7 @@
   void Run(DataRequestedCallback data_requested_callback);
 
  private:
-  static constexpr base::TimeDelta kMaxExecutionTime =
-      base::TimeDelta::FromSeconds(30);
+  static constexpr base::TimeDelta kMaxExecutionTime = base::Seconds(30);
 
   void Cancel();
   void OnDataRequested(
diff --git a/chrome/browser/webshare/win/show_share_ui_for_window_operation_unittest.cc b/chrome/browser/webshare/win/show_share_ui_for_window_operation_unittest.cc
index 86c78f7..660af72 100644
--- a/chrome/browser/webshare/win/show_share_ui_for_window_operation_unittest.cc
+++ b/chrome/browser/webshare/win/show_share_ui_for_window_operation_unittest.cc
@@ -112,7 +112,7 @@
   operation_->Run(std::move(test_callback_));
   ASSERT_EQ(test_callback_state_, TestCallbackState::NotRun);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   ASSERT_EQ(test_callback_state_, TestCallbackState::NotRun);
 
   task_environment_.FastForwardBy(
diff --git a/chrome/browser/win/chrome_process_finder.cc b/chrome/browser/win/chrome_process_finder.cc
index 788abf9..b4fec88 100644
--- a/chrome/browser/win/chrome_process_finder.cc
+++ b/chrome/browser/win/chrome_process_finder.cc
@@ -82,8 +82,7 @@
 }
 
 base::TimeDelta SetNotificationTimeoutForTesting(base::TimeDelta new_timeout) {
-  base::TimeDelta old_timeout =
-      base::TimeDelta::FromMilliseconds(g_timeout_in_milliseconds);
+  base::TimeDelta old_timeout = base::Milliseconds(g_timeout_in_milliseconds);
   g_timeout_in_milliseconds =
       base::checked_cast<uint32_t>(new_timeout.InMilliseconds());
   return old_timeout;
diff --git a/chrome/browser/win/conflicts/module_blocklist_cache_updater.cc b/chrome/browser/win/conflicts/module_blocklist_cache_updater.cc
index d34ed08..41bce64d5 100644
--- a/chrome/browser/win/conflicts/module_blocklist_cache_updater.cc
+++ b/chrome/browser/win/conflicts/module_blocklist_cache_updater.cc
@@ -49,7 +49,7 @@
 
 // The maximum amount of time a stale entry is kept in the cache before it is
 // deleted.
-static constexpr base::TimeDelta kMaxEntryAge = base::TimeDelta::FromDays(180);
+static constexpr base::TimeDelta kMaxEntryAge = base::Days(180);
 
 // This enum is used for UMA. Therefore, the values should never change.
 enum class BlocklistStatus {
diff --git a/chrome/browser/win/conflicts/module_database.h b/chrome/browser/win/conflicts/module_database.h
index ee67da3..ab98de51 100644
--- a/chrome/browser/win/conflicts/module_database.h
+++ b/chrome/browser/win/conflicts/module_database.h
@@ -54,8 +54,7 @@
 
   // The Module Database becomes idle after this timeout expires without any
   // module events.
-  static constexpr base::TimeDelta kIdleTimeout =
-      base::TimeDelta::FromSeconds(10);
+  static constexpr base::TimeDelta kIdleTimeout = base::Seconds(10);
 
   // Creates the ModuleDatabase. Must be created and set on the sequence
   // returned by GetTaskRunner().
diff --git a/chrome/browser/win/conflicts/module_inspector.cc b/chrome/browser/win/conflicts/module_inspector.cc
index 9eb9c2a..f3f90b08 100644
--- a/chrome/browser/win/conflicts/module_inspector.cc
+++ b/chrome/browser/win/conflicts/module_inspector.cc
@@ -23,7 +23,7 @@
 
 // The maximum amount of time a stale entry is kept in the cache before it is
 // deleted.
-constexpr base::TimeDelta kMaxEntryAge = base::TimeDelta::FromDays(30);
+constexpr base::TimeDelta kMaxEntryAge = base::Days(30);
 
 constexpr int kConnectionErrorRetryCount = 10;
 
@@ -151,7 +151,7 @@
     return;
 
   remote_util_win_ = util_win_factory_callback_.Run();
-  remote_util_win_.reset_on_idle_timeout(base::TimeDelta::FromSeconds(5));
+  remote_util_win_.reset_on_idle_timeout(base::Seconds(5));
   remote_util_win_.set_disconnect_handler(
       base::BindOnce(&ModuleInspector::OnUtilWinServiceConnectionError,
                      base::Unretained(this)));
diff --git a/chrome/browser/win/conflicts/module_inspector.h b/chrome/browser/win/conflicts/module_inspector.h
index 3798278..9b774f2 100644
--- a/chrome/browser/win/conflicts/module_inspector.h
+++ b/chrome/browser/win/conflicts/module_inspector.h
@@ -38,7 +38,7 @@
   // The amount of time before the |inspection_results_cache_| is flushed to
   // disk while the ModuleDatabase is not idle.
   static constexpr base::TimeDelta kFlushInspectionResultsTimerTimeout =
-      base::TimeDelta::FromMinutes(5);
+      base::Minutes(5);
 
   using OnModuleInspectedCallback =
       base::RepeatingCallback<void(const ModuleInfoKey& module_key,
diff --git a/chrome/browser/win/conflicts/third_party_metrics_recorder.cc b/chrome/browser/win/conflicts/third_party_metrics_recorder.cc
index a0044ea..5b1aaf5 100644
--- a/chrome/browser/win/conflicts/third_party_metrics_recorder.cc
+++ b/chrome/browser/win/conflicts/third_party_metrics_recorder.cc
@@ -41,7 +41,7 @@
   // It is safe to use base::Unretained() since the timer is a member variable
   // of this class.
   heartbeat_metrics_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromMinutes(5),
+      FROM_HERE, base::Minutes(5),
       base::BindRepeating(&ThirdPartyMetricsRecorder::RecordHeartbeatMetrics,
                           base::Unretained(this)));
 
diff --git a/chrome/browser/win/jumplist.cc b/chrome/browser/win/jumplist.cc
index c6f1b9c..db07fb7 100644
--- a/chrome/browser/win/jumplist.cc
+++ b/chrome/browser/win/jumplist.cc
@@ -79,29 +79,25 @@
 // The delay before updating the JumpList for users who haven't used it in a
 // session. A delay of 2000 ms is chosen to coalesce more updates when tabs are
 // closed rapidly.
-constexpr base::TimeDelta kLongDelayForUpdate =
-    base::TimeDelta::FromMilliseconds(2000);
+constexpr base::TimeDelta kLongDelayForUpdate = base::Milliseconds(2000);
 
 // The delay before updating the JumpList for users who have used it in a
 // session. A delay of 500 ms is used to not only make the update happen almost
 // immediately, but also prevent update storms when tabs are closed rapidly via
 // Ctrl-W.
-constexpr base::TimeDelta kShortDelayForUpdate =
-    base::TimeDelta::FromMilliseconds(500);
+constexpr base::TimeDelta kShortDelayForUpdate = base::Milliseconds(500);
 
 // The maximum allowed time for JumpListUpdater::BeginUpdate. Updates taking
 // longer than this are discarded to prevent bogging down slow machines.
-constexpr base::TimeDelta kTimeOutForBeginUpdate =
-    base::TimeDelta::FromMilliseconds(500);
+constexpr base::TimeDelta kTimeOutForBeginUpdate = base::Milliseconds(500);
 
 // The maximum allowed time for adding most visited pages custom category via
 // JumpListUpdater::AddCustomCategory.
 constexpr base::TimeDelta kTimeOutForAddCustomCategory =
-    base::TimeDelta::FromMilliseconds(320);
+    base::Milliseconds(320);
 
 // The maximum allowed time for JumpListUpdater::CommitUpdate.
-constexpr base::TimeDelta kTimeOutForCommitUpdate =
-    base::TimeDelta::FromMilliseconds(1000);
+constexpr base::TimeDelta kTimeOutForCommitUpdate = base::Milliseconds(1000);
 
 // Appends the common switches to each shell link.
 void AppendCommonSwitches(const base::FilePath& cmd_line_profile_dir,
diff --git a/chrome/chrome_cleaner/components/recovery_component.cc b/chrome/chrome_cleaner/components/recovery_component.cc
index c80a3a04..1e12e02 100644
--- a/chrome/chrome_cleaner/components/recovery_component.cc
+++ b/chrome/chrome_cleaner/components/recovery_component.cc
@@ -191,7 +191,7 @@
   ran_ = true;
   // We must make sure that the crx expansion is complete.
   if (!done_expanding_crx_.TimedWait(
-          base::TimeDelta::FromMinutes(kDownloadCrxWaitTimeInMin))) {
+          base::Minutes(kDownloadCrxWaitTimeInMin))) {
     LOG(WARNING) << "Timed out waiting for crx expansion completion.";
     return;
   }
@@ -217,7 +217,7 @@
 
   int exit_code = -1;
   bool success = recovery_process.WaitForExitWithTimeout(
-      base::TimeDelta::FromMinutes(kExecutionCrxWaitTimeInMin), &exit_code);
+      base::Minutes(kExecutionCrxWaitTimeInMin), &exit_code);
   LOG_IF(INFO, success) << "ChromeRecovery returned code: " << exit_code;
   PLOG_IF(ERROR, !success) << "ChromeRecovery failed to start in time.";
 }
diff --git a/chrome/chrome_cleaner/components/system_report_component.cc b/chrome/chrome_cleaner/components/system_report_component.cc
index 895d632..600fc57b 100644
--- a/chrome/chrome_cleaner/components/system_report_component.cc
+++ b/chrome/chrome_cleaner/components/system_report_component.cc
@@ -697,7 +697,7 @@
   // phases combined.
   const base::TimeTicks end_time =
       base::TimeTicks::Now() +
-      base::TimeDelta::FromMilliseconds(kParseAttemptTimeoutMilliseconds);
+      base::Milliseconds(kParseAttemptTimeoutMilliseconds);
   extension_settings_done.TimedWait(end_time - base::TimeTicks::Now());
   master_preferences_done.TimedWait(end_time - base::TimeTicks::Now());
   default_extensions_done.TimedWait(end_time - base::TimeTicks::Now());
diff --git a/chrome/chrome_cleaner/engines/controllers/elevating_facade.cc b/chrome/chrome_cleaner/engines/controllers/elevating_facade.cc
index ae2fe60..27ce77c 100644
--- a/chrome/chrome_cleaner/engines/controllers/elevating_facade.cc
+++ b/chrome/chrome_cleaner/engines/controllers/elevating_facade.cc
@@ -32,7 +32,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kCheckPeriod = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kCheckPeriod = base::Seconds(1);
 
 // Returns true if the class name of |window| begins with the typical Chrome
 // window class prefix.
diff --git a/chrome/chrome_cleaner/engines/controllers/engine_facade.cc b/chrome/chrome_cleaner/engines/controllers/engine_facade.cc
index 3b3e060..e024c72 100644
--- a/chrome/chrome_cleaner/engines/controllers/engine_facade.cc
+++ b/chrome/chrome_cleaner/engines/controllers/engine_facade.cc
@@ -33,8 +33,7 @@
 }
 
 base::TimeDelta EngineFacade::GetScanningWatchdogTimeout() const {
-  return base::TimeDelta::FromSeconds(
-      engine_client_->ScanningWatchdogTimeoutInSeconds());
+  return base::Seconds(engine_client_->ScanningWatchdogTimeoutInSeconds());
 }
 
 }  // namespace chrome_cleaner
diff --git a/chrome/chrome_cleaner/engines/controllers/main_controller.cc b/chrome/chrome_cleaner/engines/controllers/main_controller.cc
index 55dba02..299312557 100644
--- a/chrome/chrome_cleaner/engines/controllers/main_controller.cc
+++ b/chrome/chrome_cleaner/engines/controllers/main_controller.cc
@@ -43,9 +43,8 @@
 namespace chrome_cleaner {
 
 namespace {
-const base::TimeDelta kUserResponseWatchdogTimeout =
-    base::TimeDelta::FromHours(2);
-const base::TimeDelta kCleanerWatchdogTimeout = base::TimeDelta::FromHours(2);
+const base::TimeDelta kUserResponseWatchdogTimeout = base::Hours(2);
+const base::TimeDelta kCleanerWatchdogTimeout = base::Hours(2);
 
 // Log memory usage, CPU usage and various IO counters.
 void LogSystemResourceUsage() {
diff --git a/chrome/chrome_cleaner/engines/controllers/main_controller_unittest.cc b/chrome/chrome_cleaner/engines/controllers/main_controller_unittest.cc
index b044d7f9..2014a154 100644
--- a/chrome/chrome_cleaner/engines/controllers/main_controller_unittest.cc
+++ b/chrome/chrome_cleaner/engines/controllers/main_controller_unittest.cc
@@ -127,7 +127,7 @@
   Cleaner* GetCleaner() override { return &test_cleaner_; }
 
   base::TimeDelta GetScanningWatchdogTimeout() const override {
-    return base::TimeDelta::FromMilliseconds(150);
+    return base::Milliseconds(150);
   }
 };
 
@@ -614,15 +614,14 @@
 TEST_P(MainControllerWatchdogTest, Success) {
   SimpleTestPUPData test_pup_data(kFakePupId, PUPData::FLAGS_ACTION_REMOVE);
   test_main_controller()->set_scanning_watchdog_timeout(
-      base::TimeDelta::FromMilliseconds(500));
-  test_scanner()->delay_before_done_ = base::TimeDelta::FromMilliseconds(50);
+      base::Milliseconds(500));
+  test_scanner()->delay_before_done_ = base::Milliseconds(50);
   test_main_controller()->set_user_response_watchdog_timeout(
-      base::TimeDelta::FromMilliseconds(500));
-  test_main_controller()->set_user_response_delay(
-      base::TimeDelta::FromMilliseconds(50));
+      base::Milliseconds(500));
+  test_main_controller()->set_user_response_delay(base::Milliseconds(50));
   test_main_controller()->set_cleaning_watchdog_timeout(
-      base::TimeDelta::FromMilliseconds(500));
-  test_cleaner()->delay_before_done_ = base::TimeDelta::FromMilliseconds(50);
+      base::Milliseconds(500));
+  test_cleaner()->delay_before_done_ = base::Milliseconds(50);
   test_scanner()->found_pups_.push_back(kFakePupId);
   ExpectSuccess(RESULT_CODE_SUCCESS);
 }
@@ -630,13 +629,13 @@
 TEST_P(MainControllerWatchdogTest, ScannerHangsNoRemovableUwS) {
   SimpleTestPUPData test_pup_data(kFakePupId, 0);
   test_scanner()->found_pups_.push_back(kFakePupId);
-  test_scanner()->delay_before_done_ = base::TimeDelta::FromMilliseconds(300);
+  test_scanner()->delay_before_done_ = base::Milliseconds(300);
   // Note: There is a single timeout for the process running in cleanup
   // execution mode, that will include both the scanner and the cleaner steps.
   // This test simulates the scanner hanging in that scenario to make sure that
   // the watchdog timeout is triggered.
   test_main_controller()->set_cleaning_watchdog_timeout(
-      base::TimeDelta::FromMilliseconds(200));
+      base::Milliseconds(200));
 
   if (scanning_mode()) {
     ExpectDeath(RESULT_CODE_WATCHDOG_TIMEOUT_WITHOUT_REMOVABLE_UWS);
@@ -650,13 +649,13 @@
 TEST_P(MainControllerWatchdogTest, ScannerHangsWithRemovableUwS) {
   SimpleTestPUPData test_pup_data(kFakePupId, PUPData::FLAGS_ACTION_REMOVE);
   test_scanner()->found_pups_.push_back(kFakePupId);
-  test_scanner()->delay_before_done_ = base::TimeDelta::FromMilliseconds(300);
+  test_scanner()->delay_before_done_ = base::Milliseconds(300);
   // Note: There is a single timeout for the process running in cleanup
   // execution mode, that will include both the scanner and the cleaner steps.
   // This test simulates the scanner hanging in that scenario, to make sure that
   // the watchdog timeout is triggered.
   test_main_controller()->set_cleaning_watchdog_timeout(
-      base::TimeDelta::FromMilliseconds(200));
+      base::Milliseconds(200));
 
   if (scanning_mode()) {
     ExpectDeath(RESULT_CODE_WATCHDOG_TIMEOUT_WITH_REMOVABLE_UWS);
@@ -671,16 +670,15 @@
   SimpleTestPUPData test_pup_data(kFakePupId, PUPData::FLAGS_ACTION_REMOVE);
   test_scanner()->found_pups_.push_back(kFakePupId);
   test_main_controller()->set_user_response_watchdog_timeout(
-      base::TimeDelta::FromMilliseconds(50));
-  test_main_controller()->set_user_response_delay(
-      base::TimeDelta::FromMilliseconds(500));
+      base::Milliseconds(50));
+  test_main_controller()->set_user_response_delay(base::Milliseconds(500));
   // Note: There is a single timeout for the process running in cleanup
   // execution mode, that will include both the scanner and the cleaner steps.
   // Even though the process in cleanup execution mode doesn't wait for a user
   // response, we still want to test that scenario in case requirements change
   // in the future.
   test_main_controller()->set_cleaning_watchdog_timeout(
-      base::TimeDelta::FromMilliseconds(200));
+      base::Milliseconds(200));
 
   // Only scanning mode should set a user-response watchdog.
   if (scanning_mode()) {
@@ -695,9 +693,8 @@
 TEST_P(MainControllerWatchdogTest, CleanerHangs) {
   SimpleTestPUPData test_pup_data(kFakePupId, PUPData::FLAGS_ACTION_REMOVE);
   test_scanner()->found_pups_.push_back(kFakePupId);
-  test_main_controller()->set_cleaning_watchdog_timeout(
-      base::TimeDelta::FromMilliseconds(50));
-  test_cleaner()->delay_before_done_ = base::TimeDelta::FromMilliseconds(500);
+  test_main_controller()->set_cleaning_watchdog_timeout(base::Milliseconds(50));
+  test_cleaner()->delay_before_done_ = base::Milliseconds(500);
 
   if (cleanup_mode()) {
     ExpectDeath(RESULT_CODE_WATCHDOG_TIMEOUT_CLEANING);
diff --git a/chrome/chrome_cleaner/ipc/sandbox_unittest.cc b/chrome/chrome_cleaner/ipc/sandbox_unittest.cc
index 61ecec2..135f316 100644
--- a/chrome/chrome_cleaner/ipc/sandbox_unittest.cc
+++ b/chrome/chrome_cleaner/ipc/sandbox_unittest.cc
@@ -174,8 +174,8 @@
   EXPECT_TRUE(target_process.IsValid());
 
   int exit_code = -1;
-  EXPECT_TRUE(target_process.WaitForExitWithTimeout(
-      base::TimeDelta::FromSeconds(10), &exit_code));
+  EXPECT_TRUE(
+      target_process.WaitForExitWithTimeout(base::Seconds(10), &exit_code));
   EXPECT_EQ(kChildExitCode, exit_code);
 }
 
diff --git a/chrome/chrome_cleaner/logging/cleaner_logging_service_unittest.cc b/chrome/chrome_cleaner/logging/cleaner_logging_service_unittest.cc
index b958502..57482ec 100644
--- a/chrome/chrome_cleaner/logging/cleaner_logging_service_unittest.cc
+++ b/chrome/chrome_cleaner/logging/cleaner_logging_service_unittest.cc
@@ -1155,8 +1155,8 @@
   io_counters.ReadTransferCount = 4;
   io_counters.WriteTransferCount = 5;
   io_counters.OtherTransferCount = 6;
-  SystemResourceUsage usage = {io_counters, base::TimeDelta::FromSeconds(10),
-                               base::TimeDelta::FromSeconds(20), 123456};
+  SystemResourceUsage usage = {io_counters, base::Seconds(10),
+                               base::Seconds(20), 123456};
 
   logging_service_->EnableUploads(true, registry_logger_.get());
   logging_service_->LogProcessInformation(SandboxType::kNonSandboxed, usage);
diff --git a/chrome/chrome_cleaner/logging/reporter_logging_service_unittest.cc b/chrome/chrome_cleaner/logging/reporter_logging_service_unittest.cc
index 4e66721..dab24cf 100644
--- a/chrome/chrome_cleaner/logging/reporter_logging_service_unittest.cc
+++ b/chrome/chrome_cleaner/logging/reporter_logging_service_unittest.cc
@@ -239,8 +239,8 @@
   io_counters.ReadTransferCount = 4;
   io_counters.WriteTransferCount = 5;
   io_counters.OtherTransferCount = 6;
-  SystemResourceUsage usage = {io_counters, base::TimeDelta::FromSeconds(10),
-                               base::TimeDelta::FromSeconds(20), 123456};
+  SystemResourceUsage usage = {io_counters, base::Seconds(10),
+                               base::Seconds(20), 123456};
 
   StrictMock<MockSettings> mock_settings;
   EXPECT_CALL(mock_settings, engine()).WillOnce(Return(Engine::TEST_ONLY));
diff --git a/chrome/chrome_cleaner/logging/safe_browsing_reporter.cc b/chrome/chrome_cleaner/logging/safe_browsing_reporter.cc
index 8d83da10..e96359f 100644
--- a/chrome/chrome_cleaner/logging/safe_browsing_reporter.cc
+++ b/chrome/chrome_cleaner/logging/safe_browsing_reporter.cc
@@ -286,8 +286,7 @@
   std::unique_ptr<ChromeFoilResponse> response(new ChromeFoilResponse);
   Result result = Result::UPLOAD_NO_NETWORK;
   if (GetNetworkChecker()->WaitForSafeBrowsing(
-          upload_url_,
-          base::TimeDelta::FromSeconds(kNetworkPresenceTimeoutSeconds))) {
+          upload_url_, base::Seconds(kNetworkPresenceTimeoutSeconds))) {
     result = PerformUploadWithRetries(serialized_report, response.get(),
                                       traffic_annotation);
     if (result != Result::UPLOAD_SUCCESS) {
@@ -311,8 +310,7 @@
 
   SafeBrowsingReporter::Result result = Result::UPLOAD_INTERNAL_ERROR;
   for (unsigned int attempt = 0; attempt < kMaxUploadAttempts; ++attempt) {
-    sleep_callback_.Run(
-        base::TimeDelta::FromSeconds(kUploadAttemptDelaySeconds[attempt]));
+    sleep_callback_.Run(base::Seconds(kUploadAttemptDelaySeconds[attempt]));
     result = PerformUpload(serialized_report, response, traffic_annotation);
     if (result == Result::UPLOAD_SUCCESS)
       break;
diff --git a/chrome/chrome_cleaner/logging/scoped_timed_task_logger.cc b/chrome/chrome_cleaner/logging/scoped_timed_task_logger.cc
index 7e71ce9..7e38b931 100644
--- a/chrome/chrome_cleaner/logging/scoped_timed_task_logger.cc
+++ b/chrome/chrome_cleaner/logging/scoped_timed_task_logger.cc
@@ -28,7 +28,7 @@
 ScopedTimedTaskLogger::ScopedTimedTaskLogger(const char* logging_text)
     : ScopedTimedTaskLogger(base::BindOnce(&LogIfExceedThreshold,
                                            logging_text,
-                                           base::TimeDelta::FromSeconds(1))) {}
+                                           base::Seconds(1))) {}
 
 ScopedTimedTaskLogger::~ScopedTimedTaskLogger() {
   std::move(timer_callback_).Run(base::Time::NowFromSystemTime() - start_time_);
diff --git a/chrome/chrome_cleaner/logging/scoped_timed_task_logger_unittest.cc b/chrome/chrome_cleaner/logging/scoped_timed_task_logger_unittest.cc
index 6d665eec..60314c4b 100644
--- a/chrome/chrome_cleaner/logging/scoped_timed_task_logger_unittest.cc
+++ b/chrome/chrome_cleaner/logging/scoped_timed_task_logger_unittest.cc
@@ -76,9 +76,8 @@
 TEST_F(ScopedTimedTaskLoggerTest, NoLog) {
   static const char kNoShow[] = "Should not show up";
   {
-    ScopedTimedTaskLogger no_logs(
-        base::BindOnce(ScopedTimedTaskLogger::LogIfExceedThreshold, kNoShow,
-                       base::TimeDelta::FromDays(1)));
+    ScopedTimedTaskLogger no_logs(base::BindOnce(
+        ScopedTimedTaskLogger::LogIfExceedThreshold, kNoShow, base::Days(1)));
   }
   EXPECT_FALSE(LoggingMessagesContain(kNoShow));
 }
@@ -88,7 +87,7 @@
   {
     ScopedTimedTaskLogger logs(
         base::BindOnce(ScopedTimedTaskLogger::LogIfExceedThreshold, kShow,
-                       base::TimeDelta::FromMilliseconds(0)));
+                       base::Milliseconds(0)));
     ::Sleep(2);
   }
   EXPECT_TRUE(LoggingMessagesContain(kShow));
diff --git a/chrome/chrome_cleaner/os/initializer.cc b/chrome/chrome_cleaner/os/initializer.cc
index 265b413..908affc 100644
--- a/chrome/chrome_cleaner/os/initializer.cc
+++ b/chrome/chrome_cleaner/os/initializer.cc
@@ -76,7 +76,7 @@
     // immediately reset. Wait at most 5 seconds for the test to signal that
     // it's ready using the same event before continuing. If the test takes
     // longer than that stop waiting to prevent hangs.
-    notifier_event->TimedWait(base::TimeDelta::FromSeconds(5));
+    notifier_event->TimedWait(base::Seconds(5));
   }
 }
 
diff --git a/chrome/chrome_cleaner/os/shutdown_watchdog_unittest.cc b/chrome/chrome_cleaner/os/shutdown_watchdog_unittest.cc
index 3350f8b79..eb906259 100644
--- a/chrome/chrome_cleaner/os/shutdown_watchdog_unittest.cc
+++ b/chrome/chrome_cleaner/os/shutdown_watchdog_unittest.cc
@@ -20,8 +20,7 @@
   EXPECT_EXIT(
       {
         chrome_cleaner::ShutdownWatchdog watchdog(
-            base::TimeDelta::FromMilliseconds(1),
-            base::BindOnce(ReturnAnInt, 47));
+            base::Milliseconds(1), base::BindOnce(ReturnAnInt, 47));
         watchdog.Arm();
         // We won't actually sleep this long since the watchdog will terminate
         // the process much sooner.
@@ -33,8 +32,7 @@
   EXPECT_EXIT(
       {
         chrome_cleaner::ShutdownWatchdog watchdog(
-            base::TimeDelta::FromMilliseconds(1),
-            base::BindOnce(ReturnAnInt, 30));
+            base::Milliseconds(1), base::BindOnce(ReturnAnInt, 30));
         watchdog.Arm();
         // We won't actually sleep this long since the watchdog will terminate
         // the process much sooner.
diff --git a/chrome/chrome_cleaner/os/task_scheduler.cc b/chrome/chrome_cleaner/os/task_scheduler.cc
index dc370c79..13d8959 100644
--- a/chrome/chrome_cleaner/os/task_scheduler.cc
+++ b/chrome/chrome_cleaner/os/task_scheduler.cc
@@ -199,8 +199,7 @@
     SYSTEMTIME start_system_time = {};
     GetLocalTime(&start_system_time);
 
-    base::Time tomorrow(base::Time::NowFromSystemTime() +
-                        base::TimeDelta::FromDays(1));
+    base::Time tomorrow(base::Time::NowFromSystemTime() + base::Days(1));
     SYSTEMTIME end_system_time = {};
     if (!UTCFileTimeToLocalSystemTime(tomorrow.ToFileTime(), &end_system_time))
       return false;
@@ -595,7 +594,7 @@
 
     // None of the triggers should go beyond kNumDaysBeforeExpiry.
     base::Time expiry_date(base::Time::NowFromSystemTime() +
-                           base::TimeDelta::FromDays(kNumDaysBeforeExpiry));
+                           base::Days(kNumDaysBeforeExpiry));
     base::win::ScopedBstr end_boundary(GetTimestampString(expiry_date));
     hr = trigger->put_EndBoundary(end_boundary.Get());
     if (FAILED(hr)) {
diff --git a/chrome/chrome_cleaner/os/task_scheduler_unittest.cc b/chrome/chrome_cleaner/os/task_scheduler_unittest.cc
index 61f79196..caca5d8 100644
--- a/chrome/chrome_cleaner/os/task_scheduler_unittest.cc
+++ b/chrome/chrome_cleaner/os/task_scheduler_unittest.cc
@@ -130,8 +130,8 @@
                                     TaskScheduler::TRIGGER_TYPE_HOURLY, false));
   EXPECT_TRUE(task_scheduler_->IsTaskRegistered(kTaskName1));
 
-  base::TimeDelta one_hour(base::TimeDelta::FromHours(1));
-  base::TimeDelta one_minute(base::TimeDelta::FromMinutes(1));
+  base::TimeDelta one_hour(base::Hours(1));
+  base::TimeDelta one_minute(base::Minutes(1));
 
   base::Time next_run_time;
   EXPECT_TRUE(task_scheduler_->GetNextTaskRunTime(kTaskName1, &next_run_time));
@@ -155,8 +155,8 @@
       TaskScheduler::TRIGGER_TYPE_EVERY_SIX_HOURS, false));
   EXPECT_TRUE(task_scheduler_->IsTaskRegistered(kTaskName1));
 
-  base::TimeDelta six_hours(base::TimeDelta::FromHours(6));
-  base::TimeDelta one_minute(base::TimeDelta::FromMinutes(1));
+  base::TimeDelta six_hours(base::Hours(6));
+  base::TimeDelta one_minute(base::Minutes(1));
 
   base::Time next_run_time;
   EXPECT_TRUE(task_scheduler_->GetNextTaskRunTime(kTaskName1, &next_run_time));
diff --git a/chrome/chrome_cleaner/scanner/scanner_controller.cc b/chrome/chrome_cleaner/scanner/scanner_controller.cc
index 6b717388..ac6d832b 100644
--- a/chrome/chrome_cleaner/scanner/scanner_controller.cc
+++ b/chrome/chrome_cleaner/scanner/scanner_controller.cc
@@ -62,7 +62,7 @@
   // Make sure the scanning process gets completed in a reasonable amount of
   // time, otherwise log it and terminate the process.
   base::TimeDelta watchdog_timeout =
-      base::TimeDelta::FromSeconds(watchdog_timeout_in_seconds_);
+      base::Seconds(watchdog_timeout_in_seconds_);
 
   Settings* settings = Settings::GetInstance();
   if (settings->scanning_timeout_overridden())
diff --git a/chrome/chrome_cleaner/settings/settings.cc b/chrome/chrome_cleaner/settings/settings.cc
index 0dbd93cb..4ca38e5 100644
--- a/chrome/chrome_cleaner/settings/settings.cc
+++ b/chrome/chrome_cleaner/settings/settings.cc
@@ -205,7 +205,7 @@
     return false;
 
   DCHECK(timeout);
-  *timeout = base::TimeDelta::FromMinutes(timeout_minutes);
+  *timeout = base::Minutes(timeout_minutes);
   return true;
 }
 
diff --git a/chrome/chrome_cleaner/settings/settings_unittest.cc b/chrome/chrome_cleaner/settings/settings_unittest.cc
index b12a48b..8297591 100644
--- a/chrome/chrome_cleaner/settings/settings_unittest.cc
+++ b/chrome/chrome_cleaner/settings/settings_unittest.cc
@@ -160,7 +160,7 @@
       // Switch not present.
       {"", false, base::TimeDelta()},
       // Valid number of minutes.
-      {"100", true, base::TimeDelta::FromMinutes(100)},
+      {"100", true, base::Minutes(100)},
       // Disabled.
       {"0", true, base::TimeDelta()},
       // Invalid values.
diff --git a/chrome/chrome_cleaner/test/cleaner_test.cc b/chrome/chrome_cleaner/test/cleaner_test.cc
index b431303..eb88c39b 100644
--- a/chrome/chrome_cleaner/test/cleaner_test.cc
+++ b/chrome/chrome_cleaner/test/cleaner_test.cc
@@ -341,8 +341,8 @@
     }
 
     int exit_code = -1;
-    bool exited_within_timeout = process.WaitForExitWithTimeout(
-        base::TimeDelta::FromMinutes(10), &exit_code);
+    bool exited_within_timeout =
+        process.WaitForExitWithTimeout(base::Minutes(10), &exit_code);
     EXPECT_TRUE(exited_within_timeout);
     EXPECT_EQ(expected_exit_code, exit_code);
     if (!exited_within_timeout || expected_exit_code != exit_code)
diff --git a/chrome/chrome_cleaner/test/test_executables.cc b/chrome/chrome_cleaner/test/test_executables.cc
index ebb934a..9558af53 100644
--- a/chrome/chrome_cleaner/test/test_executables.cc
+++ b/chrome/chrome_cleaner/test/test_executables.cc
@@ -54,7 +54,7 @@
   launch_options.handles_to_inherit.push_back(init_done_event->handle());
   base::Process result = base::LaunchProcess(command_line, launch_options);
 
-  if (!init_done_event->TimedWait(base::TimeDelta::FromSeconds(10))) {
+  if (!init_done_event->TimedWait(base::Seconds(10))) {
     LOG(ERROR) << "Process did not signal";
     result.Terminate(/*exit_code=*/1, /*wait=*/false);
     return base::Process();
diff --git a/chrome/chrome_cleaner/test/test_process_main.cc b/chrome/chrome_cleaner/test/test_process_main.cc
index 82534234..cd8b352 100644
--- a/chrome/chrome_cleaner/test/test_process_main.cc
+++ b/chrome/chrome_cleaner/test/test_process_main.cc
@@ -68,7 +68,7 @@
     int sleep_minutes = 0;
     if (base::StringToInt(value, &sleep_minutes) && sleep_minutes > 0) {
       LOG(INFO) << "Process is sleeping for " << sleep_minutes << " minutes";
-      ::Sleep(base::TimeDelta::FromMinutes(sleep_minutes).InMilliseconds());
+      ::Sleep(base::Minutes(sleep_minutes).InMilliseconds());
     } else {
       LOG(ERROR) << "Invalid sleep delay value " << value;
     }
diff --git a/chrome/chrome_cleaner/test/test_util.cc b/chrome/chrome_cleaner/test/test_util.cc
index 611a09b5..4e9676a 100644
--- a/chrome/chrome_cleaner/test/test_util.cc
+++ b/chrome/chrome_cleaner/test/test_util.cc
@@ -121,7 +121,7 @@
   // IS_INTERNAL_CHROME_CLEANER_BUILD is only set on the Chrome Cleaner
   // builders, not the chromium builders, so this will not slow down the
   // general commit queue.
-  constexpr base::TimeDelta kInternalTimeout = base::TimeDelta::FromMinutes(10);
+  constexpr base::TimeDelta kInternalTimeout = base::Minutes(10);
   base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
       switches::kTestLauncherTimeout,
       base::NumberToString(kInternalTimeout.InMilliseconds()));
diff --git a/chrome/chrome_elf/third_party_dlls/logs_unittest.cc b/chrome/chrome_elf/third_party_dlls/logs_unittest.cc
index d6a6934..40fb7fe 100644
--- a/chrome/chrome_elf/third_party_dlls/logs_unittest.cc
+++ b/chrome/chrome_elf/third_party_dlls/logs_unittest.cc
@@ -107,7 +107,7 @@
 
   do {
     if (!args->notification_event->TimedWait(
-            base::TimeDelta::FromMilliseconds(kWaitTimeoutMs)))
+            base::Milliseconds(kWaitTimeoutMs)))
       break;
 
     bytes_written = DrainLog(&buffer[0], buffer_size, nullptr);
diff --git a/chrome/chrome_elf/third_party_dlls/main_unittest.cc b/chrome/chrome_elf/third_party_dlls/main_unittest.cc
index 92f1946..9386a7f 100644
--- a/chrome/chrome_elf/third_party_dlls/main_unittest.cc
+++ b/chrome/chrome_elf/third_party_dlls/main_unittest.cc
@@ -50,9 +50,8 @@
 };
 
 // NOTE: TestTimeouts::action_max_timeout() is not long enough here.
-base::TimeDelta g_timeout = ::IsDebuggerPresent()
-                                ? base::TimeDelta::Max()
-                                : base::TimeDelta::FromMilliseconds(5000);
+base::TimeDelta g_timeout =
+    ::IsDebuggerPresent() ? base::TimeDelta::Max() : base::Milliseconds(5000);
 
 // Centralize child test process control.
 void LaunchChildAndWait(const base::CommandLine& command_line, int* exit_code) {
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
index 6f85bc00..aea4692 100644
--- a/chrome/common/chrome_features.cc
+++ b/chrome/common/chrome_features.cc
@@ -399,7 +399,7 @@
 const base::FeatureParam<base::TimeDelta>
     kEnterpiseRealtimeExtensionRequestThrottleDelay{
         &kEnterpriseRealtimeExtensionRequest, "throttle_delay",
-        base::TimeDelta::FromMinutes(1)};
+        base::Minutes(1)};
 #endif
 
 // Controls whether the user justification text field is visible on the
@@ -953,13 +953,11 @@
 // The minimum and maximum time after a user has interacted with a Trust and
 // Safety they are eligible to be surveyed.
 const base::FeatureParam<base::TimeDelta>
-    kTrustSafetySentimentSurveyMinTimeToPrompt{&kTrustSafetySentimentSurvey,
-                                               "min-time-to-prompt",
-                                               base::TimeDelta::FromMinutes(2)};
+    kTrustSafetySentimentSurveyMinTimeToPrompt{
+        &kTrustSafetySentimentSurvey, "min-time-to-prompt", base::Minutes(2)};
 const base::FeatureParam<base::TimeDelta>
     kTrustSafetySentimentSurveyMaxTimeToPrompt{
-        &kTrustSafetySentimentSurvey, "max-time-to-prompt",
-        base::TimeDelta::FromMinutes(60)};
+        &kTrustSafetySentimentSurvey, "max-time-to-prompt", base::Minutes(60)};
 // The maximum and minimum range for the random number of NTPs that the user
 // must at least visit after interacting with a Trust and Safety feature to be
 // eligible for a survey.
@@ -992,22 +990,21 @@
 // The time the user must remain on settings after interacting with a privacy
 // setting to be considered.
 const base::FeatureParam<base::TimeDelta>
-    kTrustSafetySentimentSurveyPrivacySettingsTime{
-        &kTrustSafetySentimentSurvey, "privacy-settings-time",
-        base::TimeDelta::FromSeconds(20)};
+    kTrustSafetySentimentSurveyPrivacySettingsTime{&kTrustSafetySentimentSurvey,
+                                                   "privacy-settings-time",
+                                                   base::Seconds(20)};
 // The time the user must have the Trusted Surface bubble open to be considered.
 // Alternatively the user can interact with the bubble, in which case this time
 // is irrelevant.
 const base::FeatureParam<base::TimeDelta>
     kTrustSafetySentimentSurveyTrustedSurfaceTime{
-        &kTrustSafetySentimentSurvey, "trusted-surface-time",
-        base::TimeDelta::FromSeconds(5)};
+        &kTrustSafetySentimentSurvey, "trusted-surface-time", base::Seconds(5)};
 // The time the user must remain on settings after visiting the password
 // manager page.
 const base::FeatureParam<base::TimeDelta>
     kTrustSafetySentimentSurveyTransactionsPasswordManagerTime{
         &kTrustSafetySentimentSurvey, "transactions-password-manager-time",
-        base::TimeDelta::FromSeconds(20)};
+        base::Seconds(20)};
 
 #endif
 
diff --git a/chrome/common/conflicts/remote_module_watcher_win.h b/chrome/common/conflicts/remote_module_watcher_win.h
index bd7453e..64ff8db 100644
--- a/chrome/common/conflicts/remote_module_watcher_win.h
+++ b/chrome/common/conflicts/remote_module_watcher_win.h
@@ -34,7 +34,7 @@
 
   // The amount of time this class waits before sending all the received module
   // events in one batch to the browser process.
-  static constexpr base::TimeDelta kIdleDelay = base::TimeDelta::FromSeconds(5);
+  static constexpr base::TimeDelta kIdleDelay = base::Seconds(5);
 
   RemoteModuleWatcher(const RemoteModuleWatcher&) = delete;
   RemoteModuleWatcher& operator=(const RemoteModuleWatcher&) = delete;
diff --git a/chrome/common/notifications/notification_image_retainer.cc b/chrome/common/notifications/notification_image_retainer.cc
index cd8a35f..6474365 100644
--- a/chrome/common/notifications/notification_image_retainer.cc
+++ b/chrome/common/notifications/notification_image_retainer.cc
@@ -29,7 +29,7 @@
 // the delay is t * (n + 1), where t is the default on-screen display time for
 // an Action Center notification (6 seconds) and n is the number of
 // notifications that can be shown on-screen at once (1).
-constexpr base::TimeDelta kDeletionDelay = base::TimeDelta::FromSeconds(12);
+constexpr base::TimeDelta kDeletionDelay = base::Seconds(12);
 
 // Returns the temporary directory within the user data directory. The regular
 // temporary directory is not used to minimize the risk of files getting deleted
diff --git a/chrome/common/notifications/notification_image_retainer_unittest.cc b/chrome/common/notifications/notification_image_retainer_unittest.cc
index c0f6979..216364c 100644
--- a/chrome/common/notifications/notification_image_retainer_unittest.cc
+++ b/chrome/common/notifications/notification_image_retainer_unittest.cc
@@ -17,7 +17,7 @@
 namespace {
 
 // This value has to stay in sync with that in notification_image_retainer.cc.
-constexpr base::TimeDelta kDeletionDelay = base::TimeDelta::FromSeconds(12);
+constexpr base::TimeDelta kDeletionDelay = base::Seconds(12);
 
 }  // namespace
 
@@ -83,7 +83,7 @@
 
   // Simulate ticking of the clock so that the next image file has a different
   // registration time.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
 
   // Create 2nd image file on disk.
   base::FilePath temp_file2 = image_retainer->RegisterTemporaryImage(image);
@@ -92,7 +92,7 @@
 
   // Simulate ticking of the clock so that the next image file has a different
   // registration time.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
 
   // Create 3rd image file on disk.
   base::FilePath temp_file3 = image_retainer->RegisterTemporaryImage(image);
diff --git a/chrome/common/profiler/thread_profiler_browsertest.cc b/chrome/common/profiler/thread_profiler_browsertest.cc
index 0abf97d..a2859861 100644
--- a/chrome/common/profiler/thread_profiler_browsertest.cc
+++ b/chrome/common/profiler/thread_profiler_browsertest.cc
@@ -161,8 +161,7 @@
   ProfileInterceptor::GetInstance().SetFoundClosure(run_loop.QuitClosure());
   ProfileInterceptor::GetInstance().SetPredicate(predicate);
 
-  base::test::ScopedRunLoopTimeout timeout(FROM_HERE,
-                                           base::TimeDelta::FromSeconds(30));
+  base::test::ScopedRunLoopTimeout timeout(FROM_HERE, base::Seconds(30));
   run_loop.Run();
   return ProfileInterceptor::GetInstance().ProfileWasFound();
 }
diff --git a/chrome/common/profiler/thread_profiler_configuration.cc b/chrome/common/profiler/thread_profiler_configuration.cc
index 38a1abd..d2fc664 100644
--- a/chrome/common/profiler/thread_profiler_configuration.cc
+++ b/chrome/common/profiler/thread_profiler_configuration.cc
@@ -53,13 +53,13 @@
 base::StackSamplingProfiler::SamplingParams
 ThreadProfilerConfiguration::GetSamplingParams() const {
   base::StackSamplingProfiler::SamplingParams params;
-  params.initial_delay = base::TimeDelta::FromMilliseconds(0);
+  params.initial_delay = base::Milliseconds(0);
   // Trim the sampling duration when testing the profiler using browser tests.
   // The standard 30 second duration risks flaky timeouts since it's close to
   // the test timeout of 45 seconds.
   const base::TimeDelta duration =
-      base::TimeDelta::FromSeconds(IsBrowserTestModeEnabled() ? 1 : 30);
-  params.sampling_interval = base::TimeDelta::FromMilliseconds(100);
+      base::Seconds(IsBrowserTestModeEnabled() ? 1 : 30);
+  params.sampling_interval = base::Milliseconds(100);
   params.samples_per_profile = duration / params.sampling_interval;
 
   return params;
diff --git a/chrome/common/profiler/thread_profiler_unittest.cc b/chrome/common/profiler/thread_profiler_unittest.cc
index 6b5e8212..666313d 100644
--- a/chrome/common/profiler/thread_profiler_unittest.cc
+++ b/chrome/common/profiler/thread_profiler_unittest.cc
@@ -43,7 +43,7 @@
 }  // namespace
 
 TEST(ThreadProfilerTest, PeriodicSamplingScheduler) {
-  const base::TimeDelta sampling_duration = base::TimeDelta::FromSeconds(30);
+  const base::TimeDelta sampling_duration = base::Seconds(30);
   const double fraction_of_execution_time_to_sample = 0.01;
 
   const base::TimeDelta expected_period =
@@ -55,8 +55,7 @@
   // The first collection should be exactly at the start time, since the random
   // value is 0.0.
   scheduler.SetRandDouble(0.0);
-  EXPECT_EQ(base::TimeDelta::FromSeconds(0),
-            scheduler.GetTimeToNextCollection());
+  EXPECT_EQ(base::Seconds(0), scheduler.GetTimeToNextCollection());
 
   // With a random value of 1.0 the second collection should be at the end of
   // the second period.
@@ -72,7 +71,7 @@
 }
 
 TEST(ThreadProfilerTest, PeriodicSamplingSchedulerWithJumpInTimeTicks) {
-  const base::TimeDelta sampling_duration = base::TimeDelta::FromSeconds(30);
+  const base::TimeDelta sampling_duration = base::Seconds(30);
   const double fraction_of_execution_time_to_sample = 0.01;
 
   const base::TimeDelta expected_period =
@@ -84,15 +83,13 @@
   // The first collection should be exactly at the start time, since the random
   // value is 0.0.
   scheduler.SetRandDouble(0.0);
-  EXPECT_EQ(base::TimeDelta::FromSeconds(0),
-            scheduler.GetTimeToNextCollection());
+  EXPECT_EQ(base::Seconds(0), scheduler.GetTimeToNextCollection());
 
   // Simulate a non-continuous jump in the current TimeTicks such that the next
   // period would start before the current time. In this case the
   // period start should be reset to the current time, and the next collection
   // chosen within that period.
-  scheduler.tick_clock().Advance(expected_period +
-                                 base::TimeDelta::FromSeconds(1));
+  scheduler.tick_clock().Advance(expected_period + base::Seconds(1));
   scheduler.SetRandDouble(0.5);
   EXPECT_EQ(0.5 * (expected_period - sampling_duration),
             scheduler.GetTimeToNextCollection());
diff --git a/chrome/common/safe_browsing/rar_analyzer.cc b/chrome/common/safe_browsing/rar_analyzer.cc
index 4119712..af27cd0 100644
--- a/chrome/common/safe_browsing/rar_analyzer.cc
+++ b/chrome/common/safe_browsing/rar_analyzer.cc
@@ -52,7 +52,7 @@
   bool timeout = false;
   while (reader.ExtractNextEntry()) {
     if (base::Time::Now() - start_time >
-        base::TimeDelta::FromMilliseconds(kRarAnalysisTimeoutMs)) {
+        base::Milliseconds(kRarAnalysisTimeoutMs)) {
       timeout = true;
       break;
     }
diff --git a/chrome/common/safe_browsing/zip_analyzer.cc b/chrome/common/safe_browsing/zip_analyzer.cc
index b3f0a7e8..d10aebf8 100644
--- a/chrome/common/safe_browsing/zip_analyzer.cc
+++ b/chrome/common/safe_browsing/zip_analyzer.cc
@@ -65,7 +65,7 @@
       continue;
     }
     if (base::Time::Now() - start_time >
-        base::TimeDelta::FromMilliseconds(kZipAnalysisTimeoutMs)) {
+        base::Milliseconds(kZipAnalysisTimeoutMs)) {
       timeout = true;
       break;
     }
diff --git a/chrome/credential_provider/extension/app_inventory_manager.cc b/chrome/credential_provider/extension/app_inventory_manager.cc
index f98bae4f..4e214de 100644
--- a/chrome/credential_provider/extension/app_inventory_manager.cc
+++ b/chrome/credential_provider/extension/app_inventory_manager.cc
@@ -19,7 +19,7 @@
 namespace credential_provider {
 
 const base::TimeDelta kDefaultUploadAppInventoryRequestTimeout =
-    base::TimeDelta::FromMilliseconds(12000);
+    base::Milliseconds(12000);
 
 namespace {
 
@@ -52,8 +52,7 @@
     L"upload_app_inventory_from_esa";
 
 // The period of uploading app inventory to the backend.
-const base::TimeDelta kUploadAppInventoryExecutionPeriod =
-    base::TimeDelta::FromHours(3);
+const base::TimeDelta kUploadAppInventoryExecutionPeriod = base::Hours(3);
 
 // True when upload device details from ESA feature is enabled.
 bool g_upload_app_inventory_from_esa_enabled = false;
diff --git a/chrome/credential_provider/extension/task.h b/chrome/credential_provider/extension/task.h
index 05dc22f..a1e6701 100644
--- a/chrome/credential_provider/extension/task.h
+++ b/chrome/credential_provider/extension/task.h
@@ -17,7 +17,7 @@
 struct Config {
   // Set a default execution period in case it isn't defined by individual
   // tasks.
-  Config() : execution_period(base::TimeDelta::FromHours(1)) {}
+  Config() : execution_period(base::Hours(1)) {}
 
   // The period that the task will be executed on.
   base::TimeDelta execution_period;
diff --git a/chrome/credential_provider/extension/task_manager.cc b/chrome/credential_provider/extension/task_manager.cc
index 15484bd..5c347744 100644
--- a/chrome/credential_provider/extension/task_manager.cc
+++ b/chrome/credential_provider/extension/task_manager.cc
@@ -64,7 +64,7 @@
   int64_t last_sync_millis_int64;
   base::StringToInt64(last_sync_millis, &last_sync_millis_int64);
   const auto last_sync = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMilliseconds(last_sync_millis_int64));
+      base::Milliseconds(last_sync_millis_int64));
   return base::Time::Now() - last_sync;
 }
 
@@ -170,7 +170,7 @@
     // Calculate the next run so that periodic polling  happens within
     // proper time intervals. When the tasks are scheduled, we don't want to
     // immediately start executing to allow some warm-up.
-    base::TimeDelta next_run = base::TimeDelta::FromSeconds(10);
+    base::TimeDelta next_run = base::Seconds(10);
     const base::TimeDelta time_since_last_run =
         GetTimeDeltaSinceLastPeriodicSync(
             GetLastSyncRegNameForTask(base::UTF8ToWide(it->first)));
diff --git a/chrome/credential_provider/extension/task_manager_unittests.cc b/chrome/credential_provider/extension/task_manager_unittests.cc
index fca2dca..89552b3 100644
--- a/chrome/credential_provider/extension/task_manager_unittests.cc
+++ b/chrome/credential_provider/extension/task_manager_unittests.cc
@@ -115,20 +115,20 @@
   std::string fake_task_name = "fake_task";
 
   // Registers a task which has a config to run every 3 hours.
-  fake_task_manager()->RegisterTask(
-      fake_task_name, GenerateTaskCreator(base::TimeDelta::FromHours(3)));
+  fake_task_manager()->RegisterTask(fake_task_name,
+                                    GenerateTaskCreator(base::Hours(3)));
 
   // Starts running registered tasks for all associated GCPW users.
   RunTasks();
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromHours(5));
+  task_environment()->FastForwardBy(base::Hours(5));
   ASSERT_EQ(fake_task_manager()->NumOfTimesExecuted(fake_task_name), 2);
 
   std::wstring fake_task_reg_name =
       extension::GetLastSyncRegNameForTask(base::UTF8ToWide(fake_task_name));
   ASSERT_NE(GetGlobalFlagOrDefault(fake_task_reg_name, L""), L"");
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromHours(2));
+  task_environment()->FastForwardBy(base::Hours(2));
   ASSERT_EQ(fake_task_manager()->NumOfTimesExecuted(fake_task_name), 3);
 }
 
@@ -140,30 +140,28 @@
 
   const base::Time sync_time = base::Time::Now();
   const std::wstring sync_time_millis = base::NumberToWString(
-      (sync_time.ToDeltaSinceWindowsEpoch() - base::TimeDelta::FromHours(1))
-          .InMilliseconds());
+      (sync_time.ToDeltaSinceWindowsEpoch() - base::Hours(1)).InMilliseconds());
 
   SetGlobalFlag(fake_task_reg_name, sync_time_millis);
 
   // Registers a task which has a config to run every 3 hours.
-  fake_task_manager()->RegisterTask(
-      fake_task_name, GenerateTaskCreator(base::TimeDelta::FromHours(5)));
+  fake_task_manager()->RegisterTask(fake_task_name,
+                                    GenerateTaskCreator(base::Hours(5)));
 
   // Starts running registered tasks for all associated GCPW users.
   RunTasks();
 
   // First execution should happen after 4 hours as the registry says it was
   // executed an hour ago.
-  task_environment()->FastForwardBy(base::TimeDelta::FromHours(3) +
-                                    base::TimeDelta::FromMinutes(59));
+  task_environment()->FastForwardBy(base::Hours(3) + base::Minutes(59));
   ASSERT_EQ(fake_task_manager()->NumOfTimesExecuted(fake_task_name), 0);
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_environment()->FastForwardBy(base::Minutes(1));
   ASSERT_EQ(fake_task_manager()->NumOfTimesExecuted(fake_task_name), 1);
 
   ASSERT_NE(GetGlobalFlagOrDefault(fake_task_reg_name, L""), L"");
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromHours(5));
+  task_environment()->FastForwardBy(base::Hours(5));
   ASSERT_EQ(fake_task_manager()->NumOfTimesExecuted(fake_task_name), 2);
 }
 
@@ -194,12 +192,12 @@
 
   std::string fake_task_name = "fake_task";
 
-  fake_task_manager()->RegisterTask(
-      fake_task_name, GenerateTaskCreator(base::TimeDelta::FromHours(3)));
+  fake_task_manager()->RegisterTask(fake_task_name,
+                                    GenerateTaskCreator(base::Hours(3)));
 
   RunTasks();
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromHours(5));
+  task_environment()->FastForwardBy(base::Hours(5));
   ASSERT_EQ(fake_task_manager()->NumOfTimesExecuted(fake_task_name), 2);
 
   ASSERT_EQ(FakeTask::user_device_context_.size(), (size_t)1);
@@ -225,7 +223,7 @@
   std::wstring dm_token2;
   ASSERT_EQ(S_OK, GetGCPWDmToken((BSTR)sid2, &dm_token2));
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromHours(2));
+  task_environment()->FastForwardBy(base::Hours(2));
 
   ASSERT_EQ(fake_task_manager()->NumOfTimesExecuted(fake_task_name), 3);
   ASSERT_EQ(FakeTask::user_device_context_.size(), (size_t)2);
@@ -240,17 +238,16 @@
   std::string fake_task_name = "fake_task";
   std::string another_fake_task_name = "another_fake_task";
 
-  fake_task_manager()->RegisterTask(
-      fake_task_name, GenerateTaskCreator(base::TimeDelta::FromHours(3)));
+  fake_task_manager()->RegisterTask(fake_task_name,
+                                    GenerateTaskCreator(base::Hours(3)));
 
-  fake_task_manager()->RegisterTask(
-      another_fake_task_name,
-      GenerateTaskCreator(base::TimeDelta::FromHours(1)));
+  fake_task_manager()->RegisterTask(another_fake_task_name,
+                                    GenerateTaskCreator(base::Hours(1)));
 
   // Starts running registered tasks for all associated GCPW users.
   RunTasks();
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromHours(5));
+  task_environment()->FastForwardBy(base::Hours(5));
   ASSERT_EQ(fake_task_manager()->NumOfTimesExecuted(fake_task_name), 2);
   ASSERT_EQ(fake_task_manager()->NumOfTimesExecuted(another_fake_task_name), 5);
 
@@ -263,7 +260,7 @@
           base::UTF8ToWide(another_fake_task_name));
   ASSERT_NE(GetGlobalFlagOrDefault(another_fake_task_reg_name, L""), L"");
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromHours(2));
+  task_environment()->FastForwardBy(base::Hours(2));
   ASSERT_EQ(fake_task_manager()->NumOfTimesExecuted(fake_task_name), 3);
   ASSERT_EQ(fake_task_manager()->NumOfTimesExecuted(another_fake_task_name), 7);
 }
@@ -296,8 +293,8 @@
   // 1st backoff is 1 min. 2nd backoff ins 3 mins. 3rd backoff is 6 mins.
   FakeTask::num_fails_ = 3;
 
-  fake_task_manager()->RegisterTask(
-      fake_task_name, GenerateTaskCreator(base::TimeDelta::FromMinutes(30)));
+  fake_task_manager()->RegisterTask(fake_task_name,
+                                    GenerateTaskCreator(base::Minutes(30)));
 
   // Starts running registered tasks for all associated GCPW users.
   RunTasks();
@@ -306,27 +303,27 @@
       extension::GetLastSyncRegNameForTask(base::UTF8ToWide(fake_task_name));
 
   // Seconds 10 - 1st execution failure
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment()->FastForwardBy(base::Seconds(10));
   ASSERT_EQ(fake_task_manager()->NumOfTimesExecuted(fake_task_name), 1);
   ASSERT_EQ(GetGlobalFlagOrDefault(fake_task_reg_name, L""), L"");
 
   // Minutes 2:10 - 2nd execution failure
-  task_environment()->FastForwardBy(base::TimeDelta::FromMinutes(2));
+  task_environment()->FastForwardBy(base::Minutes(2));
   ASSERT_EQ(fake_task_manager()->NumOfTimesExecuted(fake_task_name), 2);
   ASSERT_EQ(GetGlobalFlagOrDefault(fake_task_reg_name, L""), L"");
 
   // Minutes 6:10 - 3rd execution failure
-  task_environment()->FastForwardBy(base::TimeDelta::FromMinutes(4));
+  task_environment()->FastForwardBy(base::Minutes(4));
   ASSERT_EQ(fake_task_manager()->NumOfTimesExecuted(fake_task_name), 3);
   ASSERT_EQ(GetGlobalFlagOrDefault(fake_task_reg_name, L""), L"");
 
   // Minutes 14:10 - success
-  task_environment()->FastForwardBy(base::TimeDelta::FromMinutes(8));
+  task_environment()->FastForwardBy(base::Minutes(8));
   ASSERT_EQ(fake_task_manager()->NumOfTimesExecuted(fake_task_name), 4);
   ASSERT_NE(GetGlobalFlagOrDefault(fake_task_reg_name, L""), L"");
 
   // Minutes 13:10 - 3 more success
-  task_environment()->FastForwardBy(base::TimeDelta::FromHours(2));
+  task_environment()->FastForwardBy(base::Hours(2));
   ASSERT_EQ(fake_task_manager()->NumOfTimesExecuted(fake_task_name), 8);
   ASSERT_NE(GetGlobalFlagOrDefault(fake_task_reg_name, L""), L"");
 }
diff --git a/chrome/credential_provider/gaiacp/associated_user_validator.cc b/chrome/credential_provider/gaiacp/associated_user_validator.cc
index 0360a90d..ecb9d93 100644
--- a/chrome/credential_provider/gaiacp/associated_user_validator.cc
+++ b/chrome/credential_provider/gaiacp/associated_user_validator.cc
@@ -32,10 +32,10 @@
 
 const base::TimeDelta
     AssociatedUserValidator::kDefaultTokenHandleValidationTimeout =
-        base::TimeDelta::FromMilliseconds(3000);
+        base::Milliseconds(3000);
 
 const base::TimeDelta AssociatedUserValidator::kTokenHandleValidityLifetime =
-    base::TimeDelta::FromSeconds(60);
+    base::Seconds(60);
 
 const char AssociatedUserValidator::kTokenInfoUrl[] =
     "https://www.googleapis.com/oauth2/v2/tokeninfo";
diff --git a/chrome/credential_provider/gaiacp/associated_user_validator_unittests.cc b/chrome/credential_provider/gaiacp/associated_user_validator_unittests.cc
index acf2a85..b14e3b2b 100644
--- a/chrome/credential_provider/gaiacp/associated_user_validator_unittests.cc
+++ b/chrome/credential_provider/gaiacp/associated_user_validator_unittests.cc
@@ -296,7 +296,7 @@
 TEST_F(AssociatedUserValidatorTest, InvalidTokenHandleTimeout) {
   GoogleUploadDeviceDetailsNeededForTesting upload_device_details_needed(false);
 
-  FakeAssociatedUserValidator validator(base::TimeDelta::FromMilliseconds(50));
+  FakeAssociatedUserValidator validator(base::Milliseconds(50));
   CComBSTR sid;
   ASSERT_EQ(S_OK, fake_os_user_manager()->CreateTestOSUser(
                       L"username", L"password", L"fullname", L"comment",
@@ -602,8 +602,8 @@
     }
     // Advance the time that is more than the offline validity period.
     TimeClockOverrideValue::current_time_ =
-        last_token_valid + base::TimeDelta::FromDays(validity_period_in_days) +
-        base::TimeDelta::FromMilliseconds(1);
+        last_token_valid + base::Days(validity_period_in_days) +
+        base::Milliseconds(1);
   }
 
   if (contains_stored_password) {
@@ -938,7 +938,7 @@
   // invalid result now.
   TimeClockOverrideValue::current_time_ +=
       AssociatedUserValidator::kTokenHandleValidityLifetime +
-      base::TimeDelta::FromMilliseconds(1);
+      base::Milliseconds(1);
   EXPECT_TRUE(validator.IsAuthEnforcedForUser(OLE2W(sid)));
   EXPECT_EQ(2u, fake_http_url_fetcher_factory()->requests_created());
 }
diff --git a/chrome/credential_provider/gaiacp/event_logs_upload_manager.cc b/chrome/credential_provider/gaiacp/event_logs_upload_manager.cc
index c68daf9..98243f4 100644
--- a/chrome/credential_provider/gaiacp/event_logs_upload_manager.cc
+++ b/chrome/credential_provider/gaiacp/event_logs_upload_manager.cc
@@ -29,7 +29,7 @@
 
 // Default timeout when trying to make requests to the GCPW service.
 const base::TimeDelta kDefaultUploadLogsRequestTimeout =
-    base::TimeDelta::FromMilliseconds(12000);
+    base::Milliseconds(12000);
 
 // Parameter names that are used in the JSON payload of the requests.
 const char kRequestSerialNumberParameterName[] = "device_serial_number";
diff --git a/chrome/credential_provider/gaiacp/experiments_fetcher.cc b/chrome/credential_provider/gaiacp/experiments_fetcher.cc
index ca8edcb..02d78ee 100644
--- a/chrome/credential_provider/gaiacp/experiments_fetcher.cc
+++ b/chrome/credential_provider/gaiacp/experiments_fetcher.cc
@@ -27,11 +27,10 @@
 
 // Default timeout when trying to make requests to the GCPW service.
 const base::TimeDelta kDefaultFetchExperimentsRequestTimeout =
-    base::TimeDelta::FromMilliseconds(5000);
+    base::Milliseconds(5000);
 
 // The period of refreshing experiments.
-const base::TimeDelta kExperimentsRefreshExecutionPeriod =
-    base::TimeDelta::FromHours(3);
+const base::TimeDelta kExperimentsRefreshExecutionPeriod = base::Hours(3);
 
 // Maximum number of retries if a HTTP call to the backend fails.
 constexpr unsigned int kMaxNumHttpRetries = 1;
diff --git a/chrome/credential_provider/gaiacp/gaia_credential_base_unittests.cc b/chrome/credential_provider/gaiacp/gaia_credential_base_unittests.cc
index 8a610fa..708a4107 100644
--- a/chrome/credential_provider/gaiacp/gaia_credential_base_unittests.cc
+++ b/chrome/credential_provider/gaiacp/gaia_credential_base_unittests.cc
@@ -1176,8 +1176,8 @@
       FakeInternetAvailabilityChecker::kHicForceNo);
   // Advance the time that is more than the offline validity period.
   BaseTimeClockOverrideValue::current_time_ =
-      base::Time::Now() + base::TimeDelta::FromDays(validity_period_in_days) +
-      base::TimeDelta::FromMilliseconds(1);
+      base::Time::Now() + base::Days(validity_period_in_days) +
+      base::Milliseconds(1);
   base::subtle::ScopedTimeClockOverrides time_override(
       &BaseTimeClockOverrideValue::NowOverride, nullptr, nullptr);
 
@@ -2892,7 +2892,7 @@
 
   if (get_key_event || generate_key_event) {
     fake_password_recovery_manager()->SetRequestTimeoutForTesting(
-        base::TimeDelta::FromMilliseconds(50));
+        base::Milliseconds(50));
   }
 
   fake_http_url_fetcher_factory()->SetFakeResponse(
@@ -2940,7 +2940,7 @@
 
   if (generate_key_event) {
     fake_password_recovery_manager()->SetRequestTimeoutForTesting(
-        base::TimeDelta::FromMilliseconds(50));
+        base::Milliseconds(50));
   }
 
   fake_http_url_fetcher_factory()->SetFakeResponse(
@@ -3400,7 +3400,7 @@
     upload_device_details_key_event = std::make_unique<base::WaitableEvent>();
 
     fake_gem_device_details_manager()->SetRequestTimeoutForTesting(
-        base::TimeDelta::FromMilliseconds(50));
+        base::Milliseconds(50));
   }
   const std::string device_resource_id = "test-device-resource-id";
   const std::string valid_server_response =
diff --git a/chrome/credential_provider/gaiacp/gcp_utils.cc b/chrome/credential_provider/gaiacp/gcp_utils.cc
index 0ac4e0b..d5b5903 100644
--- a/chrome/credential_provider/gaiacp/gcp_utils.cc
+++ b/chrome/credential_provider/gaiacp/gcp_utils.cc
@@ -94,10 +94,8 @@
     L"https://deviceenrollmentforwindows.googleapis.com/v1/discovery";
 
 constexpr int kMaxNumConsecutiveUploadDeviceFailures = 3;
-const base::TimeDelta kMaxTimeDeltaSinceLastUserPolicyRefresh =
-    base::TimeDelta::FromDays(1);
-const base::TimeDelta kMaxTimeDeltaSinceLastExperimentsFetch =
-    base::TimeDelta::FromDays(1);
+const base::TimeDelta kMaxTimeDeltaSinceLastUserPolicyRefresh = base::Days(1);
+const base::TimeDelta kMaxTimeDeltaSinceLastExperimentsFetch = base::Days(1);
 
 // Path elements for the path where the experiments are stored on disk.
 const wchar_t kGcpwExperimentsDirectory[] = L"Experiments";
@@ -1371,7 +1369,7 @@
       base::Time::Now().ToDeltaSinceWindowsEpoch().InMilliseconds() -
       last_fetch_millis_int64;
 
-  return base::TimeDelta::FromMilliseconds(time_delta_from_last_fetch_ms);
+  return base::Milliseconds(time_delta_from_last_fetch_ms);
 }
 
 }  // namespace credential_provider
diff --git a/chrome/credential_provider/gaiacp/gem_device_details_manager.cc b/chrome/credential_provider/gaiacp/gem_device_details_manager.cc
index 76e46c8..a1fbe00 100644
--- a/chrome/credential_provider/gaiacp/gem_device_details_manager.cc
+++ b/chrome/credential_provider/gaiacp/gem_device_details_manager.cc
@@ -30,7 +30,7 @@
 
 const base::TimeDelta
     GemDeviceDetailsManager::kDefaultUploadDeviceDetailsRequestTimeout =
-        base::TimeDelta::FromMilliseconds(12000);
+        base::Milliseconds(12000);
 
 namespace {
 
@@ -62,8 +62,7 @@
     L"upload_device_details_from_esa";
 
 // The period of uploading device details to the backend.
-const base::TimeDelta kUploadDeviceDetailsExecutionPeriod =
-    base::TimeDelta::FromHours(3);
+const base::TimeDelta kUploadDeviceDetailsExecutionPeriod = base::Hours(3);
 
 // True when upload device details from ESA feature  is enabled.
 bool g_upload_device_details_from_esa_enabled = false;
diff --git a/chrome/credential_provider/gaiacp/password_recovery_manager.cc b/chrome/credential_provider/gaiacp/password_recovery_manager.cc
index c3c5f16c..4b680004 100644
--- a/chrome/credential_provider/gaiacp/password_recovery_manager.cc
+++ b/chrome/credential_provider/gaiacp/password_recovery_manager.cc
@@ -42,11 +42,11 @@
 
 const base::TimeDelta
     PasswordRecoveryManager::kDefaultEscrowServiceEncryptionKeyRequestTimeout =
-        base::TimeDelta::FromMilliseconds(12000);
+        base::Milliseconds(12000);
 
 const base::TimeDelta
     PasswordRecoveryManager::kDefaultEscrowServiceDecryptionKeyRequestTimeout =
-        base::TimeDelta::FromMilliseconds(3000);
+        base::Milliseconds(3000);
 
 namespace {
 
diff --git a/chrome/credential_provider/gaiacp/user_policies_manager.cc b/chrome/credential_provider/gaiacp/user_policies_manager.cc
index 9328764..3ebcfbb 100644
--- a/chrome/credential_provider/gaiacp/user_policies_manager.cc
+++ b/chrome/credential_provider/gaiacp/user_policies_manager.cc
@@ -38,7 +38,7 @@
 
 // Default timeout when trying to make requests to the GCPW service.
 const base::TimeDelta kDefaultFetchPoliciesRequestTimeout =
-    base::TimeDelta::FromMilliseconds(5000);
+    base::Milliseconds(5000);
 
 // Path elements for the path where the policies are stored on disk.
 constexpr wchar_t kGcpwPoliciesDirectory[] = L"Policies";
@@ -55,8 +55,7 @@
 const char kPolicyFetchResponseKeyName[] = "policies";
 
 // The period of refreshing cloud policies.
-const base::TimeDelta kCloudPoliciesExecutionPeriod =
-    base::TimeDelta::FromHours(1);
+const base::TimeDelta kCloudPoliciesExecutionPeriod = base::Hours(1);
 
 // True when cloud policies feature is enabled.
 bool g_cloud_policies_enabled = false;
diff --git a/chrome/credential_provider/gaiacp/win_http_url_fetcher_unittests.cc b/chrome/credential_provider/gaiacp/win_http_url_fetcher_unittests.cc
index 9aaac819..e781b1e 100644
--- a/chrome/credential_provider/gaiacp/win_http_url_fetcher_unittests.cc
+++ b/chrome/credential_provider/gaiacp/win_http_url_fetcher_unittests.cc
@@ -40,8 +40,7 @@
   base::Value request(base::Value::Type::DICTIONARY);
   request.SetStringKey("request-str-key", "request-str-value");
   request.SetIntKey("request-int-key", 1234);
-  base::TimeDelta request_timeout =
-      base::TimeDelta::FromMilliseconds(timeout_in_millis);
+  base::TimeDelta request_timeout = base::Milliseconds(timeout_in_millis);
   absl::optional<base::Value> request_result;
 
   base::Value expected_result(base::Value::Type::DICTIONARY);
diff --git a/chrome/credential_provider/test/gcp_gls_output_unittest.cc b/chrome/credential_provider/test/gcp_gls_output_unittest.cc
index 6ebdcea..dd97e41 100644
--- a/chrome/credential_provider/test/gcp_gls_output_unittest.cc
+++ b/chrome/credential_provider/test/gcp_gls_output_unittest.cc
@@ -208,8 +208,8 @@
   // If the pipe is no longer readable it is expected that the process will be
   // terminating shortly.
   int exit_code;
-  EXPECT_TRUE(process.WaitForExitWithTimeout(
-      base::TimeDelta::FromMilliseconds(kTimeout), &exit_code));
+  EXPECT_TRUE(
+      process.WaitForExitWithTimeout(base::Milliseconds(kTimeout), &exit_code));
   EXPECT_EQ(exit_code, 0);
 
   return output_from_process;
diff --git a/chrome/credential_provider/test/test_credential.h b/chrome/credential_provider/test/test_credential.h
index f35f0f3..a9717d9 100644
--- a/chrome/credential_provider/test/test_credential.h
+++ b/chrome/credential_provider/test/test_credential.h
@@ -197,8 +197,7 @@
 
 template <class T>
 HRESULT CTestCredentialBase<T>::WaitForGls() {
-  return !gls_process_started_ ||
-                 gls_done_.TimedWait(base::TimeDelta::FromSeconds(30))
+  return !gls_process_started_ || gls_done_.TimedWait(base::Seconds(30))
              ? S_OK
              : HRESULT_FROM_WIN32(WAIT_TIMEOUT);
 }
diff --git a/chrome/installer/gcapi/gcapi_omaha_experiment_test.cc b/chrome/installer/gcapi/gcapi_omaha_experiment_test.cc
index f018cc5..4002dd25 100644
--- a/chrome/installer/gcapi/gcapi_omaha_experiment_test.cc
+++ b/chrome/installer/gcapi/gcapi_omaha_experiment_test.cc
@@ -202,95 +202,65 @@
   EXPECT_EQ(L"Sat, 01 Jan 2001 00:00:00 GMT",
             BuildExperimentDateString(kTestTime));
   EXPECT_EQ(L"Sat, 01 Jan 2001 00:00:00 GMT",
-            BuildExperimentDateString(kTestTime +
-                                      base::TimeDelta::FromMilliseconds(1)));
-  EXPECT_EQ(
-      L"Sat, 01 Jan 2001 00:00:01 GMT",
-      BuildExperimentDateString(kTestTime + base::TimeDelta::FromSeconds(1)));
-  EXPECT_EQ(
-      L"Sat, 01 Jan 2001 00:00:59 GMT",
-      BuildExperimentDateString(kTestTime + base::TimeDelta::FromSeconds(59)));
-  EXPECT_EQ(
-      L"Sat, 01 Jan 2001 00:01:00 GMT",
-      BuildExperimentDateString(kTestTime + base::TimeDelta::FromSeconds(60)));
-  EXPECT_EQ(
-      L"Sat, 01 Jan 2001 00:01:00 GMT",
-      BuildExperimentDateString(kTestTime + base::TimeDelta::FromMinutes(1)));
-  EXPECT_EQ(
-      L"Sat, 01 Jan 2001 00:59:00 GMT",
-      BuildExperimentDateString(kTestTime + base::TimeDelta::FromMinutes(59)));
-  EXPECT_EQ(
-      L"Sat, 01 Jan 2001 01:00:00 GMT",
-      BuildExperimentDateString(kTestTime + base::TimeDelta::FromMinutes(60)));
-  EXPECT_EQ(
-      L"Sat, 01 Jan 2001 01:00:00 GMT",
-      BuildExperimentDateString(kTestTime + base::TimeDelta::FromHours(1)));
-  EXPECT_EQ(
-      L"Sat, 01 Jan 2001 23:00:00 GMT",
-      BuildExperimentDateString(kTestTime + base::TimeDelta::FromHours(23)));
-  EXPECT_EQ(
-      L"Sun, 02 Jan 2001 00:00:00 GMT",
-      BuildExperimentDateString(kTestTime + base::TimeDelta::FromHours(24)));
-  EXPECT_EQ(
-      L"Sun, 02 Jan 2001 00:00:00 GMT",
-      BuildExperimentDateString(kTestTime + base::TimeDelta::FromDays(1)));
-  EXPECT_EQ(
-      L"Mon, 03 Jan 2001 00:00:00 GMT",
-      BuildExperimentDateString(kTestTime + base::TimeDelta::FromDays(2)));
-  EXPECT_EQ(
-      L"Tue, 04 Jan 2001 00:00:00 GMT",
-      BuildExperimentDateString(kTestTime + base::TimeDelta::FromDays(3)));
-  EXPECT_EQ(
-      L"Wed, 05 Jan 2001 00:00:00 GMT",
-      BuildExperimentDateString(kTestTime + base::TimeDelta::FromDays(4)));
-  EXPECT_EQ(
-      L"Thu, 06 Jan 2001 00:00:00 GMT",
-      BuildExperimentDateString(kTestTime + base::TimeDelta::FromDays(5)));
-  EXPECT_EQ(
-      L"Fri, 07 Jan 2001 00:00:00 GMT",
-      BuildExperimentDateString(kTestTime + base::TimeDelta::FromDays(6)));
-  EXPECT_EQ(
-      L"Sat, 08 Jan 2001 00:00:00 GMT",
-      BuildExperimentDateString(kTestTime + base::TimeDelta::FromDays(7)));
-  EXPECT_EQ(
-      L"Mon, 31 Jan 2001 00:00:00 GMT",
-      BuildExperimentDateString(kTestTime + base::TimeDelta::FromDays(30)));
-  EXPECT_EQ(
-      L"Tue, 01 Feb 2001 00:00:00 GMT",
-      BuildExperimentDateString(kTestTime + base::TimeDelta::FromDays(31)));
-  EXPECT_EQ(
-      L"Wed, 01 Mar 2001 00:00:00 GMT",
-      BuildExperimentDateString(kTestTime + base::TimeDelta::FromDays(60)));
-  EXPECT_EQ(
-      L"Sat, 01 Apr 2001 00:00:00 GMT",
-      BuildExperimentDateString(kTestTime + base::TimeDelta::FromDays(91)));
-  EXPECT_EQ(
-      L"Mon, 01 May 2001 00:00:00 GMT",
-      BuildExperimentDateString(kTestTime + base::TimeDelta::FromDays(121)));
-  EXPECT_EQ(
-      L"Thu, 01 Jun 2001 00:00:00 GMT",
-      BuildExperimentDateString(kTestTime + base::TimeDelta::FromDays(152)));
-  EXPECT_EQ(
-      L"Sat, 01 Jul 2001 00:00:00 GMT",
-      BuildExperimentDateString(kTestTime + base::TimeDelta::FromDays(182)));
-  EXPECT_EQ(
-      L"Tue, 01 Aug 2001 00:00:00 GMT",
-      BuildExperimentDateString(kTestTime + base::TimeDelta::FromDays(213)));
-  EXPECT_EQ(
-      L"Fri, 01 Sep 2001 00:00:00 GMT",
-      BuildExperimentDateString(kTestTime + base::TimeDelta::FromDays(244)));
-  EXPECT_EQ(
-      L"Sun, 01 Oct 2001 00:00:00 GMT",
-      BuildExperimentDateString(kTestTime + base::TimeDelta::FromDays(274)));
-  EXPECT_EQ(
-      L"Wed, 01 Nov 2001 00:00:00 GMT",
-      BuildExperimentDateString(kTestTime + base::TimeDelta::FromDays(305)));
-  EXPECT_EQ(
-      L"Fri, 01 Dec 2001 00:00:00 GMT",
-      BuildExperimentDateString(kTestTime + base::TimeDelta::FromDays(335)));
-  EXPECT_EQ(
-      L"Mon, 01 Jan 2002 00:00:00 GMT",
-      BuildExperimentDateString(kTestTime + base::TimeDelta::FromDays(366)));
+            BuildExperimentDateString(kTestTime + base::Milliseconds(1)));
+  EXPECT_EQ(L"Sat, 01 Jan 2001 00:00:01 GMT",
+            BuildExperimentDateString(kTestTime + base::Seconds(1)));
+  EXPECT_EQ(L"Sat, 01 Jan 2001 00:00:59 GMT",
+            BuildExperimentDateString(kTestTime + base::Seconds(59)));
+  EXPECT_EQ(L"Sat, 01 Jan 2001 00:01:00 GMT",
+            BuildExperimentDateString(kTestTime + base::Seconds(60)));
+  EXPECT_EQ(L"Sat, 01 Jan 2001 00:01:00 GMT",
+            BuildExperimentDateString(kTestTime + base::Minutes(1)));
+  EXPECT_EQ(L"Sat, 01 Jan 2001 00:59:00 GMT",
+            BuildExperimentDateString(kTestTime + base::Minutes(59)));
+  EXPECT_EQ(L"Sat, 01 Jan 2001 01:00:00 GMT",
+            BuildExperimentDateString(kTestTime + base::Minutes(60)));
+  EXPECT_EQ(L"Sat, 01 Jan 2001 01:00:00 GMT",
+            BuildExperimentDateString(kTestTime + base::Hours(1)));
+  EXPECT_EQ(L"Sat, 01 Jan 2001 23:00:00 GMT",
+            BuildExperimentDateString(kTestTime + base::Hours(23)));
+  EXPECT_EQ(L"Sun, 02 Jan 2001 00:00:00 GMT",
+            BuildExperimentDateString(kTestTime + base::Hours(24)));
+  EXPECT_EQ(L"Sun, 02 Jan 2001 00:00:00 GMT",
+            BuildExperimentDateString(kTestTime + base::Days(1)));
+  EXPECT_EQ(L"Mon, 03 Jan 2001 00:00:00 GMT",
+            BuildExperimentDateString(kTestTime + base::Days(2)));
+  EXPECT_EQ(L"Tue, 04 Jan 2001 00:00:00 GMT",
+            BuildExperimentDateString(kTestTime + base::Days(3)));
+  EXPECT_EQ(L"Wed, 05 Jan 2001 00:00:00 GMT",
+            BuildExperimentDateString(kTestTime + base::Days(4)));
+  EXPECT_EQ(L"Thu, 06 Jan 2001 00:00:00 GMT",
+            BuildExperimentDateString(kTestTime + base::Days(5)));
+  EXPECT_EQ(L"Fri, 07 Jan 2001 00:00:00 GMT",
+            BuildExperimentDateString(kTestTime + base::Days(6)));
+  EXPECT_EQ(L"Sat, 08 Jan 2001 00:00:00 GMT",
+            BuildExperimentDateString(kTestTime + base::Days(7)));
+  EXPECT_EQ(L"Mon, 31 Jan 2001 00:00:00 GMT",
+            BuildExperimentDateString(kTestTime + base::Days(30)));
+  EXPECT_EQ(L"Tue, 01 Feb 2001 00:00:00 GMT",
+            BuildExperimentDateString(kTestTime + base::Days(31)));
+  EXPECT_EQ(L"Wed, 01 Mar 2001 00:00:00 GMT",
+            BuildExperimentDateString(kTestTime + base::Days(60)));
+  EXPECT_EQ(L"Sat, 01 Apr 2001 00:00:00 GMT",
+            BuildExperimentDateString(kTestTime + base::Days(91)));
+  EXPECT_EQ(L"Mon, 01 May 2001 00:00:00 GMT",
+            BuildExperimentDateString(kTestTime + base::Days(121)));
+  EXPECT_EQ(L"Thu, 01 Jun 2001 00:00:00 GMT",
+            BuildExperimentDateString(kTestTime + base::Days(152)));
+  EXPECT_EQ(L"Sat, 01 Jul 2001 00:00:00 GMT",
+            BuildExperimentDateString(kTestTime + base::Days(182)));
+  EXPECT_EQ(L"Tue, 01 Aug 2001 00:00:00 GMT",
+            BuildExperimentDateString(kTestTime + base::Days(213)));
+  EXPECT_EQ(L"Fri, 01 Sep 2001 00:00:00 GMT",
+            BuildExperimentDateString(kTestTime + base::Days(244)));
+  EXPECT_EQ(L"Sun, 01 Oct 2001 00:00:00 GMT",
+            BuildExperimentDateString(kTestTime + base::Days(274)));
+  EXPECT_EQ(L"Wed, 01 Nov 2001 00:00:00 GMT",
+            BuildExperimentDateString(kTestTime + base::Days(305)));
+  EXPECT_EQ(L"Fri, 01 Dec 2001 00:00:00 GMT",
+            BuildExperimentDateString(kTestTime + base::Days(335)));
+  EXPECT_EQ(L"Mon, 01 Jan 2002 00:00:00 GMT",
+            BuildExperimentDateString(kTestTime + base::Days(366)));
 }
 
 INSTANTIATE_TEST_SUITE_P(All, GCAPIOmahaExperimentTest, ::testing::Bool());
diff --git a/chrome/installer/setup/setup_main.cc b/chrome/installer/setup/setup_main.cc
index 4c6c4c2f..b4ab7393 100644
--- a/chrome/installer/setup/setup_main.cc
+++ b/chrome/installer/setup/setup_main.cc
@@ -269,7 +269,7 @@
       // to match the old behavior.
       PLOG(ERROR) << "Overwriting DisplayVersion in 10s after failing to wait "
                      "for the MSI mutex";
-      base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(10));
+      base::PlatformThread::Sleep(base::Seconds(10));
     } else if (wait_result == WAIT_ABANDONED || wait_result == WAIT_OBJECT_0) {
       VLOG(1) << "Acquired MSI mutex; overwriting DisplayVersion.";
       acquired_mutex = true;
@@ -477,9 +477,8 @@
     //   shutdown: old files can't be deleted because Chrome is still in use.
     // Wait 5 minutes after an unsuccessful attempt because retrying immediately
     // is likely to fail again.
-    const base::TimeDelta max_wait_time = num_attempts == 0
-                                              ? base::TimeDelta::FromSeconds(15)
-                                              : base::TimeDelta::FromMinutes(5);
+    const base::TimeDelta max_wait_time =
+        num_attempts == 0 ? base::Seconds(15) : base::Minutes(5);
     if (setup_singleton.WaitForInterrupt(max_wait_time)) {
       VLOG(1) << "Exiting --delete-old-versions process because another "
                  "process tries to acquire the SetupSingleton.";
diff --git a/chrome/installer/setup/setup_singleton.cc b/chrome/installer/setup/setup_singleton.cc
index bdddd2b..3a1ceb4 100644
--- a/chrome/installer/setup/setup_singleton.cc
+++ b/chrome/installer/setup/setup_singleton.cc
@@ -110,8 +110,7 @@
   DCHECK_EQ(INVALID_HANDLE_VALUE, mutex_);
 
   const DWORD wait_return_value = ::WaitForSingleObject(
-      mutex,
-      static_cast<DWORD>(base::TimeDelta::FromSeconds(5).InMilliseconds()));
+      mutex, static_cast<DWORD>(base::Seconds(5).InMilliseconds()));
   if (wait_return_value == WAIT_ABANDONED ||
       wait_return_value == WAIT_OBJECT_0) {
     mutex_ = mutex;
diff --git a/chrome/installer/setup/setup_util_unittest.cc b/chrome/installer/setup/setup_util_unittest.cc
index 3c9f507..cf87a1a 100644
--- a/chrome/installer/setup/setup_util_unittest.cc
+++ b/chrome/installer/setup/setup_util_unittest.cc
@@ -249,8 +249,7 @@
   FILE_BASIC_INFO info = {};
   ASSERT_NE(0, ::GetFileInformationByHandleEx(dir.Get(), FileBasicInfo, &info,
                                               sizeof(info)));
-  FILETIME creation_time =
-      (now - base::TimeDelta::FromDays(kAgeDays)).ToFileTime();
+  FILETIME creation_time = (now - base::Days(kAgeDays)).ToFileTime();
   info.CreationTime.u.LowPart = creation_time.dwLowDateTime;
   info.CreationTime.u.HighPart = creation_time.dwHighDateTime;
   ASSERT_NE(0, ::SetFileInformationByHandle(dir.Get(), FileBasicInfo, &info,
diff --git a/chrome/installer/setup/user_experiment.cc b/chrome/installer/setup/user_experiment.cc
index 58aa564..53b7458f 100644
--- a/chrome/installer/setup/user_experiment.cc
+++ b/chrome/installer/setup/user_experiment.cc
@@ -90,8 +90,8 @@
       command_line->GetSwitchValueNative(kExperimentRetryDelay);
   int seconds;
   if (!value.empty() && base::StringToInt(value, &seconds))
-    return base::TimeDelta::FromSeconds(seconds);
-  return base::TimeDelta::FromMinutes(5);
+    return base::Seconds(seconds);
+  return base::Minutes(5);
 }
 
 // Overrides the participation value for testing if a value is provided via
@@ -167,8 +167,7 @@
 }
 
 bool UserSessionIsNotYoung() {
-  static constexpr base::TimeDelta kMinSessionLength =
-      base::TimeDelta::FromMinutes(5);
+  static constexpr base::TimeDelta kMinSessionLength = base::Minutes(5);
   base::Time session_start_time = GetConsoleSessionStartTime();
   if (session_start_time.is_null())
     return true;
diff --git a/chrome/installer/util/copy_tree_work_item_unittest.cc b/chrome/installer/util/copy_tree_work_item_unittest.cc
index ed3e33c..93d4cf9 100644
--- a/chrome/installer/util/copy_tree_work_item_unittest.cc
+++ b/chrome/installer/util/copy_tree_work_item_unittest.cc
@@ -435,7 +435,7 @@
       file_name_from, file_name_to, temp_dir_.GetPath(),
       WorkItem::NEW_NAME_IF_IN_USE, alternate_to));
   if (CopyTreeWorkItem::IsFileInUse(file_name_to))
-    base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(2));
+    base::PlatformThread::Sleep(base::Seconds(2));
   // If file is still in use, the rest of the test will fail.
   ASSERT_FALSE(CopyTreeWorkItem::IsFileInUse(file_name_to));
   EXPECT_TRUE(work_item->Do());
diff --git a/chrome/installer/util/experiment.cc b/chrome/installer/util/experiment.cc
index 8ceba62..732ac157 100644
--- a/chrome/installer/util/experiment.cc
+++ b/chrome/installer/util/experiment.cc
@@ -102,8 +102,7 @@
     first_display_time_ = time;
     metrics_.first_toast_offset_days =
         (time - base::Time::UnixEpoch() -
-         base::TimeDelta::FromSeconds(
-             ExperimentMetrics::kExperimentStartSeconds))
+         base::Seconds(ExperimentMetrics::kExperimentStartSeconds))
             .InDays();
     // If display time is outside the experiment range (possible due to
     // invalid local time), then set it to be kMaxFirstToastOffsetDays.
@@ -130,8 +129,8 @@
                                   ExperimentMetrics::kSessionLengthBucketBits);
   if (time_delta.InMinutes() < 0 ||
       time_delta.InMinutes() > ExperimentMetrics::kMaxSessionLength) {
-    time_delta = base::TimeDelta::FromMinutes(
-        ExperimentMetrics::ExperimentMetrics::kMaxSessionLength);
+    time_delta =
+        base::Minutes(ExperimentMetrics::ExperimentMetrics::kMaxSessionLength);
   }
   metrics_.session_length_bucket =
       LogFloor(1 + time_delta.InMinutes(), log_base);
@@ -143,8 +142,7 @@
   action_delay_ = time_delta;
   if (time_delta.InSeconds() < 0 ||
       time_delta.InSeconds() > ExperimentMetrics::kMaxActionDelay) {
-    time_delta =
-        base::TimeDelta::FromSeconds(ExperimentMetrics::kMaxActionDelay);
+    time_delta = base::Seconds(ExperimentMetrics::kMaxActionDelay);
   }
   double log_base = ExpBucketBase(ExperimentMetrics::kMaxActionDelay,
                                   ExperimentMetrics::kActionDelayBucketBits);
diff --git a/chrome/installer/util/experiment_labels_unittest.cc b/chrome/installer/util/experiment_labels_unittest.cc
index 3a36a160..97a433b8 100644
--- a/chrome/installer/util/experiment_labels_unittest.cc
+++ b/chrome/installer/util/experiment_labels_unittest.cc
@@ -42,19 +42,17 @@
 TEST(ExperimentLabels, SetValueForLabel) {
   ExperimentLabels label(L"");
 
-  label.SetValueForLabel(L"name", L"value", base::TimeDelta::FromSeconds(1));
+  label.SetValueForLabel(L"name", L"value", base::Seconds(1));
   base::WStringPiece value = label.GetValueForLabel(L"name");
   EXPECT_EQ(value, L"value");
   EXPECT_THAT(label.value(), StartsWith(L"name=value|"));
 
-  label.SetValueForLabel(L"name", L"othervalue",
-                         base::TimeDelta::FromSeconds(1));
+  label.SetValueForLabel(L"name", L"othervalue", base::Seconds(1));
   value = label.GetValueForLabel(L"name");
   EXPECT_EQ(value, L"othervalue");
   EXPECT_THAT(label.value(), StartsWith(L"name=othervalue|"));
 
-  label.SetValueForLabel(L"othername", L"somevalue",
-                         base::TimeDelta::FromSeconds(1));
+  label.SetValueForLabel(L"othername", L"somevalue", base::Seconds(1));
   value = label.GetValueForLabel(L"othername");
   EXPECT_EQ(value, L"somevalue");
   EXPECT_THAT(label.value(), HasSubstr(L"name=othervalue|"));
diff --git a/chrome/installer/util/experiment_storage.cc b/chrome/installer/util/experiment_storage.cc
index 374f72d..9248514d 100644
--- a/chrome/installer/util/experiment_storage.cc
+++ b/chrome/installer/util/experiment_storage.cc
@@ -404,8 +404,7 @@
   ExperimentLabels experiment_labels(value);
 
   experiment_labels.SetValueForLabel(kExperimentLabelName,
-                                     EncodeMetrics(metrics),
-                                     base::TimeDelta::FromDays(182));
+                                     EncodeMetrics(metrics), base::Days(182));
 
   return GoogleUpdateSettings::SetExperimentLabels(experiment_labels.value());
 }
diff --git a/chrome/installer/util/experiment_storage_unittest.cc b/chrome/installer/util/experiment_storage_unittest.cc
index 4c5e598..8cfe185 100644
--- a/chrome/installer/util/experiment_storage_unittest.cc
+++ b/chrome/installer/util/experiment_storage_unittest.cc
@@ -76,13 +76,12 @@
   experiment.SetInactiveDays(ExperimentMetrics::kMaxLastUsed);
   experiment.SetToastCount(ExperimentMetrics::kMaxToastCount);
   experiment.SetUserSessionUptime(
-      base::TimeDelta::FromMinutes(ExperimentMetrics::kMaxSessionLength));
-  experiment.SetActionDelay(
-      base::TimeDelta::FromSeconds(ExperimentMetrics::kMaxActionDelay));
+      base::Minutes(ExperimentMetrics::kMaxSessionLength));
+  experiment.SetActionDelay(base::Seconds(ExperimentMetrics::kMaxActionDelay));
   experiment.SetDisplayTime(
       base::Time::UnixEpoch() +
-      base::TimeDelta::FromSeconds(ExperimentMetrics::kExperimentStartSeconds) +
-      base::TimeDelta::FromDays(ExperimentMetrics::kMaxFirstToastOffsetDays));
+      base::Seconds(ExperimentMetrics::kExperimentStartSeconds) +
+      base::Days(ExperimentMetrics::kMaxFirstToastOffsetDays));
   experiment.SetState(ExperimentMetrics::kUserLogOff);  // Max state.
   ExperimentMetrics metrics = experiment.metrics();
   // toast_hour uses LocalMidnight whose value depend on local time. So, reset
diff --git a/chrome/installer/util/experiment_unittest.cc b/chrome/installer/util/experiment_unittest.cc
index e82c2b8ff..442c495 100644
--- a/chrome/installer/util/experiment_unittest.cc
+++ b/chrome/installer/util/experiment_unittest.cc
@@ -85,7 +85,7 @@
   EXPECT_EQ(zero_day, experiment.first_display_time());
   EXPECT_EQ(zero_day, experiment.latest_display_time());
 
-  base::Time one_day = zero_day + base::TimeDelta::FromDays(1);
+  base::Time one_day = zero_day + base::Days(1);
   experiment.SetDisplayTime(one_day);
   EXPECT_EQ(1, experiment.metrics().first_toast_offset_days);
   EXPECT_EQ(one_day, experiment.first_display_time());
@@ -93,7 +93,7 @@
 
   // Test that calling SetDisplayTime again will not reset
   // first_toast_offset_days.
-  base::Time two_day = zero_day + base::TimeDelta::FromDays(2);
+  base::Time two_day = zero_day + base::Days(2);
   experiment.SetDisplayTime(two_day);
   EXPECT_EQ(1, experiment.metrics().first_toast_offset_days);
   EXPECT_EQ(one_day, experiment.first_display_time());
@@ -103,8 +103,7 @@
   Experiment new_experiment;
   new_experiment.AssignGroup(5);
   base::Time max_day =
-      zero_day +
-      base::TimeDelta::FromDays(ExperimentMetrics::kMaxFirstToastOffsetDays);
+      zero_day + base::Days(ExperimentMetrics::kMaxFirstToastOffsetDays);
   new_experiment.SetDisplayTime(max_day);
   EXPECT_EQ(ExperimentMetrics::kMaxFirstToastOffsetDays,
             new_experiment.metrics().first_toast_offset_days);
@@ -114,7 +113,7 @@
   // Test setting toast_hour. Since it depends on local time it is
   // tested by setting toast hour for two consecutive hours and verifying the
   // difference is 1.
-  base::Time two_day_one_hour = two_day + base::TimeDelta::FromHours(1);
+  base::Time two_day_one_hour = two_day + base::Hours(1);
   Experiment hour_experiment;
   hour_experiment.AssignGroup(5);
   hour_experiment.SetDisplayTime(two_day_one_hour);
@@ -126,26 +125,26 @@
 TEST(ExperimentTest, TestSetUserSessionUptime) {
   Experiment experiment;
   experiment.AssignGroup(5);
-  experiment.SetUserSessionUptime(base::TimeDelta::FromMinutes(0));
+  experiment.SetUserSessionUptime(base::Minutes(0));
   EXPECT_EQ(0, experiment.metrics().session_length_bucket);
   EXPECT_EQ(0, experiment.user_session_uptime().InMinutes());
 
-  experiment.SetUserSessionUptime(base::TimeDelta::FromMinutes(60));
+  experiment.SetUserSessionUptime(base::Minutes(60));
   EXPECT_EQ(24, experiment.metrics().session_length_bucket);
   EXPECT_EQ(60, experiment.user_session_uptime().InMinutes());
 
-  experiment.SetUserSessionUptime(base::TimeDelta::FromMinutes(60 * 24));
+  experiment.SetUserSessionUptime(base::Minutes(60 * 24));
   EXPECT_EQ(43, experiment.metrics().session_length_bucket);
   EXPECT_EQ(60 * 24, experiment.user_session_uptime().InMinutes());
 
   experiment.SetUserSessionUptime(
-      base::TimeDelta::FromMinutes(ExperimentMetrics::kMaxSessionLength));
+      base::Minutes(ExperimentMetrics::kMaxSessionLength));
   EXPECT_EQ(63, experiment.metrics().session_length_bucket);
   EXPECT_EQ(ExperimentMetrics::kMaxSessionLength,
             experiment.user_session_uptime().InMinutes());
 
   experiment.SetUserSessionUptime(
-      base::TimeDelta::FromMinutes(2 * ExperimentMetrics::kMaxSessionLength));
+      base::Minutes(2 * ExperimentMetrics::kMaxSessionLength));
   EXPECT_EQ(63, experiment.metrics().session_length_bucket);
   EXPECT_EQ(2 * ExperimentMetrics::kMaxSessionLength,
             experiment.user_session_uptime().InMinutes());
@@ -154,26 +153,25 @@
 TEST(ExperimentTest, TestSetActionDelay) {
   Experiment experiment;
   experiment.AssignGroup(5);
-  experiment.SetActionDelay(base::TimeDelta::FromSeconds(0));
+  experiment.SetActionDelay(base::Seconds(0));
   EXPECT_EQ(0, experiment.metrics().action_delay_bucket);
   EXPECT_EQ(0, experiment.user_session_uptime().InSeconds());
 
-  experiment.SetActionDelay(base::TimeDelta::FromSeconds(60));
+  experiment.SetActionDelay(base::Seconds(60));
   EXPECT_EQ(10, experiment.metrics().action_delay_bucket);
   EXPECT_EQ(60, experiment.action_delay().InSeconds());
 
-  experiment.SetActionDelay(base::TimeDelta::FromSeconds(60 * 60));
+  experiment.SetActionDelay(base::Seconds(60 * 60));
   EXPECT_EQ(19, experiment.metrics().action_delay_bucket);
   EXPECT_EQ(60 * 60, experiment.action_delay().InSeconds());
 
-  experiment.SetActionDelay(
-      base::TimeDelta::FromSeconds(ExperimentMetrics::kMaxActionDelay));
+  experiment.SetActionDelay(base::Seconds(ExperimentMetrics::kMaxActionDelay));
   EXPECT_EQ(31, experiment.metrics().action_delay_bucket);
   EXPECT_EQ(ExperimentMetrics::kMaxActionDelay,
             experiment.action_delay().InSeconds());
 
   experiment.SetActionDelay(
-      base::TimeDelta::FromSeconds(2 * ExperimentMetrics::kMaxActionDelay));
+      base::Seconds(2 * ExperimentMetrics::kMaxActionDelay));
   EXPECT_EQ(31, experiment.metrics().action_delay_bucket);
   EXPECT_EQ(2 * ExperimentMetrics::kMaxActionDelay,
             experiment.action_delay().InSeconds());
@@ -188,12 +186,11 @@
   experiment.SetToastCount(1);
   base::Time test_display_time =
       (base::Time::UnixEpoch() +
-       base::TimeDelta::FromSeconds(
-           ExperimentMetrics::kExperimentStartSeconds) +
-       base::TimeDelta::FromDays(30) + base::TimeDelta::FromHours(3));
+       base::Seconds(ExperimentMetrics::kExperimentStartSeconds) +
+       base::Days(30) + base::Hours(3));
   experiment.SetDisplayTime(test_display_time);
-  experiment.SetUserSessionUptime(base::TimeDelta::FromMinutes(3962));
-  experiment.SetActionDelay(base::TimeDelta::FromSeconds(32875));
+  experiment.SetUserSessionUptime(base::Minutes(3962));
+  experiment.SetActionDelay(base::Seconds(32875));
 
   EXPECT_EQ(ExperimentMetrics::kGroupAssigned, experiment.state());
   EXPECT_EQ(5, experiment.group());
@@ -202,9 +199,8 @@
   EXPECT_EQ(1, experiment.toast_count());
   EXPECT_EQ(test_display_time, experiment.first_display_time());
   EXPECT_EQ(test_display_time, experiment.latest_display_time());
-  EXPECT_EQ(base::TimeDelta::FromMinutes(3962),
-            experiment.user_session_uptime());
-  EXPECT_EQ(base::TimeDelta::FromSeconds(32875), experiment.action_delay());
+  EXPECT_EQ(base::Minutes(3962), experiment.user_session_uptime());
+  EXPECT_EQ(base::Seconds(32875), experiment.action_delay());
 
   EXPECT_EQ(ExperimentMetrics::kGroupAssigned, experiment.metrics().state);
   EXPECT_EQ(5, experiment.metrics().group);
diff --git a/chrome/installer/util/google_update_util.cc b/chrome/installer/util/google_update_util.cc
index 77e34107..fa1d369 100644
--- a/chrome/installer/util/google_update_util.cc
+++ b/chrome/installer/util/google_update_util.cc
@@ -60,7 +60,7 @@
     success = true;  // Nothing to; vacuous success.
   } else {
     success = LaunchProcessAndWaitWithTimeout(
-        cmd_string, base::TimeDelta::FromMilliseconds(kGoogleUpdateTimeoutMs));
+        cmd_string, base::Milliseconds(kGoogleUpdateTimeoutMs));
   }
   return success;
 }
diff --git a/chrome/renderer/cart/commerce_hint_agent.cc b/chrome/renderer/cart/commerce_hint_agent.cc
index 16cdd0f1..a02551cc 100644
--- a/chrome/renderer/cart/commerce_hint_agent.cc
+++ b/chrome/renderer/cart/commerce_hint_agent.cc
@@ -75,7 +75,7 @@
 constexpr base::FeatureParam<base::TimeDelta> kCartExtractionGapTime{
     &ntp_features::kNtpChromeCartModule, "cart-extraction-gap-time",
     // Gap time is 0.5s by default.
-    base::TimeDelta::FromSecondsD(0.5)};
+    base::Seconds(0.5)};
 
 constexpr base::FeatureParam<std::string> kProductIdPatternMapping{
     &ntp_features::kNtpChromeCartModule, "product-id-pattern-mapping",
diff --git a/chrome/renderer/chrome_render_frame_observer.cc b/chrome/renderer/chrome_render_frame_observer.cc
index 2269138..4c314e8 100644
--- a/chrome/renderer/chrome_render_frame_observer.cc
+++ b/chrome/renderer/chrome_render_frame_observer.cc
@@ -94,8 +94,7 @@
 
 // For a page that auto-refreshes, we still show the bubble, if
 // the refresh delay is less than this value (in seconds).
-static constexpr base::TimeDelta kLocationChangeInterval =
-    base::TimeDelta::FromSeconds(10);
+static constexpr base::TimeDelta kLocationChangeInterval = base::Seconds(10);
 
 // For the context menu, we want to keep transparency as is instead of
 // replacing transparent pixels with black ones
diff --git a/chrome/renderer/chrome_render_thread_observer.cc b/chrome/renderer/chrome_render_thread_observer.cc
index d6c0f18..098b479 100644
--- a/chrome/renderer/chrome_render_thread_observer.cc
+++ b/chrome/renderer/chrome_render_thread_observer.cc
@@ -98,7 +98,7 @@
           FROM_HERE,
           base::BindOnce(&RendererResourceDelegate::InformHostOfCacheStats,
                          weak_factory_.GetWeakPtr()),
-          base::TimeDelta::FromMilliseconds(kCacheStatsDelayMS));
+          base::Milliseconds(kCacheStatsDelayMS));
     }
   }
 
diff --git a/chrome/renderer/chromeos_merge_session_loader_throttle.cc b/chrome/renderer/chromeos_merge_session_loader_throttle.cc
index e2e5f4aa..46a54e0 100644
--- a/chrome/renderer/chromeos_merge_session_loader_throttle.cc
+++ b/chrome/renderer/chromeos_merge_session_loader_throttle.cc
@@ -18,9 +18,9 @@
 base::TimeDelta MergeSessionLoaderThrottle::GetMergeSessionTimeout() {
   if (base::CommandLine::ForCurrentProcess()->HasSwitch(
           switches::kShortMergeSessionTimeoutForTest)) {
-    return base::TimeDelta::FromSeconds(1);
+    return base::Seconds(1);
   } else {
-    return base::TimeDelta::FromSeconds(20);
+    return base::Seconds(20);
   }
 }
 
diff --git a/chrome/renderer/lite_video/lite_video_hint_agent.cc b/chrome/renderer/lite_video/lite_video_hint_agent.cc
index 262480c..998b601d 100644
--- a/chrome/renderer/lite_video/lite_video_hint_agent.cc
+++ b/chrome/renderer/lite_video/lite_video_hint_agent.cc
@@ -66,9 +66,8 @@
   // 1 second, an 400KB response should have total delay of 5 seconds (400/100
   // + 1).
   auto delay_for_throttled_response =
-      base::TimeDelta::FromSecondsD(
-          recv_bytes.value_or(0) /
-          (*target_downlink_bandwidth_kbps_ * 1024.0)) +
+      base::Seconds(recv_bytes.value_or(0) /
+                    (*target_downlink_bandwidth_kbps_ * 1024.0)) +
       *target_downlink_rtt_latency_;
   auto response_delay =
       response_head.response_time - response_head.request_time;
diff --git a/chrome/renderer/lite_video/lite_video_hint_agent_browsertest.cc b/chrome/renderer/lite_video/lite_video_hint_agent_browsertest.cc
index f0724d2..8299098 100644
--- a/chrome/renderer/lite_video/lite_video_hint_agent_browsertest.cc
+++ b/chrome/renderer/lite_video/lite_video_hint_agent_browsertest.cc
@@ -139,8 +139,8 @@
         previews::mojom::LiteVideoHint::New();
     hint->kilobytes_to_buffer_before_throttle = 10;
     hint->target_downlink_bandwidth_kbps = 60;
-    hint->target_downlink_rtt_latency = base::TimeDelta::FromMilliseconds(500);
-    hint->max_throttling_delay = base::TimeDelta::FromSeconds(5);
+    hint->target_downlink_rtt_latency = base::Milliseconds(500);
+    hint->max_throttling_delay = base::Seconds(5);
     lite_video_hint_agent_->SetLiteVideoHint(std::move(hint));
   }
 
@@ -199,7 +199,7 @@
                                     true /* set_cache_control_no_transform */);
   histogram_tester().ExpectTotalCount("LiteVideo.URLLoader.ThrottleLatency", 1);
   EXPECT_TRUE(throttle_info->is_throttled());
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
   base::RunLoop().RunUntilIdle();
   EXPECT_FALSE(throttle_info->is_throttled());
 
@@ -232,7 +232,7 @@
   throttle_info = CreateThrottleAndSendResponse(net::HTTP_OK, "video/mp4", -1);
   histogram_tester().ExpectTotalCount("LiteVideo.URLLoader.ThrottleLatency", 1);
   EXPECT_TRUE(throttle_info->is_throttled());
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
   base::RunLoop().RunUntilIdle();
   EXPECT_FALSE(throttle_info->is_throttled());
 }
@@ -265,7 +265,7 @@
       CreateThrottleAndSendResponse(net::HTTP_OK, "video/mp4", 440000);
   histogram_tester().ExpectTotalCount("LiteVideo.URLLoader.ThrottleLatency", 1);
   EXPECT_TRUE(throttle_info->is_throttled());
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
   base::RunLoop().RunUntilIdle();
   EXPECT_FALSE(throttle_info->is_throttled());
 
@@ -356,7 +356,7 @@
                                       51);
   EXPECT_TRUE(throttle_info->is_throttled());
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(50));
+  task_environment_.FastForwardBy(base::Seconds(50));
   base::RunLoop().RunUntilIdle();
   for (const auto& throttle : throttles) {
     EXPECT_FALSE(throttle->is_throttled());
diff --git a/chrome/renderer/media/chrome_key_systems_provider_unittest.cc b/chrome/renderer/media/chrome_key_systems_provider_unittest.cc
index 65e3e58..9a2a64b5 100644
--- a/chrome/renderer/media/chrome_key_systems_provider_unittest.cc
+++ b/chrome/renderer/media/chrome_key_systems_provider_unittest.cc
@@ -119,9 +119,9 @@
 
   // This is timing related. The update interval for Widevine is 1000 ms.
   EXPECT_FALSE(key_systems_provider.IsKeySystemsUpdateNeeded());
-  tick_clock.Advance(base::TimeDelta::FromMilliseconds(990));
+  tick_clock.Advance(base::Milliseconds(990));
   EXPECT_FALSE(key_systems_provider.IsKeySystemsUpdateNeeded());
-  tick_clock.Advance(base::TimeDelta::FromMilliseconds(10));
+  tick_clock.Advance(base::Milliseconds(10));
 
 #if BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT)
   // Require update once enough time has passed for builds that install Widevine
@@ -145,9 +145,9 @@
 
   // Update not needed now, nor later because Widevine has been described.
   EXPECT_FALSE(key_systems_provider.IsKeySystemsUpdateNeeded());
-  tick_clock.Advance(base::TimeDelta::FromMilliseconds(1000));
+  tick_clock.Advance(base::Milliseconds(1000));
   EXPECT_FALSE(key_systems_provider.IsKeySystemsUpdateNeeded());
-  tick_clock.Advance(base::TimeDelta::FromMilliseconds(1000));
+  tick_clock.Advance(base::Milliseconds(1000));
   EXPECT_FALSE(key_systems_provider.IsKeySystemsUpdateNeeded());
 #else
   // No update needed for builds that either don't offer Widevine or do so
diff --git a/chrome/renderer/media/webrtc_logging_agent_impl.cc b/chrome/renderer/media/webrtc_logging_agent_impl.cc
index d2495adc..070af01 100644
--- a/chrome/renderer/media/webrtc_logging_agent_impl.cc
+++ b/chrome/renderer/media/webrtc_logging_agent_impl.cc
@@ -14,9 +14,8 @@
 namespace {
 
 constexpr base::TimeDelta kMinTimeSinceLastLogBufferSend =
-    base::TimeDelta::FromMilliseconds(100);
-constexpr base::TimeDelta kSendLogBufferDelay =
-    base::TimeDelta::FromMilliseconds(200);
+    base::Milliseconds(100);
+constexpr base::TimeDelta kSendLogBufferDelay = base::Milliseconds(200);
 
 // There can be only one registered WebRtcLogMessageDelegate, and so this class
 // abstracts away that detail, so that we can set callbacks more than once. It
diff --git a/chrome/renderer/pepper/pepper_uma_host.cc b/chrome/renderer/pepper/pepper_uma_host.cc
index c377c74..240852e 100644
--- a/chrome/renderer/pepper/pepper_uma_host.cc
+++ b/chrome/renderer/pepper/pepper_uma_host.cc
@@ -147,15 +147,12 @@
   RETURN_IF_BAD_ARGS(min, max, bucket_count);
 
   base::HistogramBase* counter = base::Histogram::FactoryTimeGet(
-      name,
-      base::TimeDelta::FromMilliseconds(min),
-      base::TimeDelta::FromMilliseconds(max),
-      bucket_count,
+      name, base::Milliseconds(min), base::Milliseconds(max), bucket_count,
       base::HistogramBase::kUmaTargetedHistogramFlag);
   // The histogram can be NULL if it is constructed with bad arguments.  Ignore
   // that data for this API.  An error message will be logged.
   if (counter)
-    counter->AddTime(base::TimeDelta::FromMilliseconds(sample));
+    counter->AddTime(base::Milliseconds(sample));
   return PP_OK;
 }
 
diff --git a/chrome/renderer/safe_browsing/phishing_dom_feature_extractor_browsertest.cc b/chrome/renderer/safe_browsing/phishing_dom_feature_extractor_browsertest.cc
index 46ce7f41..c16d885 100644
--- a/chrome/renderer/safe_browsing/phishing_dom_feature_extractor_browsertest.cc
+++ b/chrome/renderer/safe_browsing/phishing_dom_feature_extractor_browsertest.cc
@@ -455,27 +455,27 @@
       // Time check at the start of the first chunk of work.
       .WillOnce(Return(now))
       // Time check after the first 10 elements.
-      .WillOnce(Return(now + base::TimeDelta::FromMilliseconds(6)))
+      .WillOnce(Return(now + base::Milliseconds(6)))
       // Time check after the next 10 elements.  This is over the chunk
       // time limit, so a continuation task will be posted.
-      .WillOnce(Return(now + base::TimeDelta::FromMilliseconds(12)))
+      .WillOnce(Return(now + base::Milliseconds(12)))
       // Time check at the start of the second chunk of work.
-      .WillOnce(Return(now + base::TimeDelta::FromMilliseconds(22)))
+      .WillOnce(Return(now + base::Milliseconds(22)))
       // Time check after resuming iteration for the second chunk.
-      .WillOnce(Return(now + base::TimeDelta::FromMilliseconds(24)))
+      .WillOnce(Return(now + base::Milliseconds(24)))
       // Time check after the next 10 elements.
-      .WillOnce(Return(now + base::TimeDelta::FromMilliseconds(30)))
+      .WillOnce(Return(now + base::Milliseconds(30)))
       // Time check after the next 10 elements.  This will trigger another
       // continuation task.
-      .WillOnce(Return(now + base::TimeDelta::FromMilliseconds(36)))
+      .WillOnce(Return(now + base::Milliseconds(36)))
       // Time check at the start of the third chunk of work.
-      .WillOnce(Return(now + base::TimeDelta::FromMilliseconds(46)))
+      .WillOnce(Return(now + base::Milliseconds(46)))
       // Time check after resuming iteration for the third chunk.
-      .WillOnce(Return(now + base::TimeDelta::FromMilliseconds(48)))
+      .WillOnce(Return(now + base::Milliseconds(48)))
       // Time check after the last 10 elements.
-      .WillOnce(Return(now + base::TimeDelta::FromMilliseconds(54)))
+      .WillOnce(Return(now + base::Milliseconds(54)))
       // A final time check for the histograms.
-      .WillOnce(Return(now + base::TimeDelta::FromMilliseconds(56)));
+      .WillOnce(Return(now + base::Milliseconds(56)));
   extractor_->SetTickClockForTesting(&tick_clock);
 
   FeatureMap expected_features;
@@ -502,15 +502,15 @@
       // Time check at the start of the first chunk of work.
       .WillOnce(Return(now))
       // Time check after the first 10 elements.
-      .WillOnce(Return(now + base::TimeDelta::FromMilliseconds(300)))
+      .WillOnce(Return(now + base::Milliseconds(300)))
       // Time check at the start of the second chunk of work.
-      .WillOnce(Return(now + base::TimeDelta::FromMilliseconds(350)))
+      .WillOnce(Return(now + base::Milliseconds(350)))
       // Time check after resuming iteration for the second chunk.
-      .WillOnce(Return(now + base::TimeDelta::FromMilliseconds(360)))
+      .WillOnce(Return(now + base::Milliseconds(360)))
       // Time check after the next 10 elements.  This is over the limit.
-      .WillOnce(Return(now + base::TimeDelta::FromMilliseconds(600)))
+      .WillOnce(Return(now + base::Milliseconds(600)))
       // A final time check for the histograms.
-      .WillOnce(Return(now + base::TimeDelta::FromMilliseconds(620)));
+      .WillOnce(Return(now + base::Milliseconds(620)));
 
   features.Clear();
   ResetTest();
@@ -541,13 +541,13 @@
       // the feature extractor returns control to the message loop.
       .WillOnce(DoAll(
           Invoke(this, &PhishingDOMFeatureExtractorTest::ScheduleRemoveIframe),
-          Return(now + base::TimeDelta::FromMilliseconds(21))))
+          Return(now + base::Milliseconds(21))))
       // Time check at the start of the second chunk of work.
-      .WillOnce(Return(now + base::TimeDelta::FromMilliseconds(25)))
+      .WillOnce(Return(now + base::Milliseconds(25)))
       // Time check after resuming iteration for the second chunk.
-      .WillOnce(Return(now + base::TimeDelta::FromMilliseconds(27)))
+      .WillOnce(Return(now + base::Milliseconds(27)))
       // A final time check for the histograms.
-      .WillOnce(Return(now + base::TimeDelta::FromMilliseconds(33)));
+      .WillOnce(Return(now + base::Milliseconds(33)));
   extractor_->SetTickClockForTesting(&tick_clock);
 
   FeatureMap expected_features;
diff --git a/chrome/renderer/subresource_redirect/login_robots_decider_agent_browsertest.cc b/chrome/renderer/subresource_redirect/login_robots_decider_agent_browsertest.cc
index 66b557a..61516153 100644
--- a/chrome/renderer/subresource_redirect/login_robots_decider_agent_browsertest.cc
+++ b/chrome/renderer/subresource_redirect/login_robots_decider_agent_browsertest.cc
@@ -62,8 +62,8 @@
     RobotsRulesParserCache& robots_rules_parser_cache =
         RobotsRulesParserCache::Get();
     if (!robots_rules_parser_cache.DoRobotsRulesParserExist(origin)) {
-      robots_rules_parser_cache.CreateRobotsRulesParser(
-          origin, base::TimeDelta::FromSeconds(2));
+      robots_rules_parser_cache.CreateRobotsRulesParser(origin,
+                                                        base::Seconds(2));
     }
     EXPECT_TRUE(robots_rules_parser_cache.DoRobotsRulesParserExist(origin));
     robots_rules_parser_cache.UpdateRobotsRules(
@@ -80,7 +80,7 @@
       EXPECT_FALSE(result_receiver.did_receive_result());
       return *immediate_result == SubresourceRedirectResult::kRedirectable;
     }
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+    task_environment_.FastForwardBy(base::Seconds(10));
     return result_receiver.did_receive_result() &&
            result_receiver.subresource_redirect_result() ==
                SubresourceRedirectResult::kRedirectable;
diff --git a/chrome/renderer/subresource_redirect/login_robots_url_loader_throttle_browsertest.cc b/chrome/renderer/subresource_redirect/login_robots_url_loader_throttle_browsertest.cc
index aa7efff..7a37f3d 100644
--- a/chrome/renderer/subresource_redirect/login_robots_url_loader_throttle_browsertest.cc
+++ b/chrome/renderer/subresource_redirect/login_robots_url_loader_throttle_browsertest.cc
@@ -125,8 +125,8 @@
     RobotsRulesParserCache& robots_rules_parser_cache =
         RobotsRulesParserCache::Get();
     if (!robots_rules_parser_cache.DoRobotsRulesParserExist(origin)) {
-      robots_rules_parser_cache.CreateRobotsRulesParser(
-          origin, base::TimeDelta::FromSeconds(2));
+      robots_rules_parser_cache.CreateRobotsRulesParser(origin,
+                                                        base::Seconds(2));
     }
     EXPECT_TRUE(robots_rules_parser_cache.DoRobotsRulesParserExist(origin));
     robots_rules_parser_cache.UpdateRobotsRules(
@@ -419,7 +419,7 @@
   EXPECT_FALSE(throttle_info1->did_restart_with_url_reset_and_flags());
   EXPECT_FALSE(throttle_info2->did_restart_with_url_reset_and_flags());
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
 
   // Both resources should restart and resume loading with the original URL.
   EXPECT_TRUE(throttle_info1->did_restart_with_url_reset_and_flags());
diff --git a/chrome/renderer/subresource_redirect/public_image_hints_decider_agent.cc b/chrome/renderer/subresource_redirect/public_image_hints_decider_agent.cc
index b34afbe5..0c0f07f 100644
--- a/chrome/renderer/subresource_redirect/public_image_hints_decider_agent.cc
+++ b/chrome/renderer/subresource_redirect/public_image_hints_decider_agent.cc
@@ -63,7 +63,7 @@
   // by |this|, and the timer and its callback will get deleted when |this| is
   // destroyed.
   hint_receive_timeout_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromSeconds(GetHintsReceiveTimeout()),
+      FROM_HERE, base::Seconds(GetHintsReceiveTimeout()),
       base::BindOnce(&PublicImageHintsDeciderAgent::OnHintsReceiveTimeout,
                      base::Unretained(this)));
 }
diff --git a/chrome/renderer/subresource_redirect/robots_rules_parser_cache_browsertest.cc b/chrome/renderer/subresource_redirect/robots_rules_parser_cache_browsertest.cc
index 8c312b0..a179ae40 100644
--- a/chrome/renderer/subresource_redirect/robots_rules_parser_cache_browsertest.cc
+++ b/chrome/renderer/subresource_redirect/robots_rules_parser_cache_browsertest.cc
@@ -26,7 +26,7 @@
 
 const int kRenderFrameID = 1;
 
-constexpr base::TimeDelta kFetchTimeout = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kFetchTimeout = base::Seconds(1);
 
 // Provides a callback to send to robots rules parser, and to check the state of
 // the callback and its result.
@@ -164,7 +164,7 @@
   EXPECT_FALSE(receiver4->did_receive_result());
 
   // Let rule fetch timeout.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
 
   EXPECT_TRUE(receiver1->did_receive_result());
   EXPECT_TRUE(receiver2->did_receive_result());
diff --git a/chrome/renderer/subresource_redirect/robots_rules_parser_fuzzer.cc b/chrome/renderer/subresource_redirect/robots_rules_parser_fuzzer.cc
index d55c26a..776374e 100644
--- a/chrome/renderer/subresource_redirect/robots_rules_parser_fuzzer.cc
+++ b/chrome/renderer/subresource_redirect/robots_rules_parser_fuzzer.cc
@@ -41,7 +41,7 @@
 
   base::RunLoop run_loop;
 
-  RobotsRulesParser parser(base::TimeDelta::FromSeconds(1));
+  RobotsRulesParser parser(base::Seconds(1));
   parser.UpdateRobotsRules({std::move(rules)});
   parser.CheckRobotsRules(0, GURL(std::move(url)),
                           base::BindOnce(
diff --git a/chrome/renderer/subresource_redirect/robots_rules_parser_unittest.cc b/chrome/renderer/subresource_redirect/robots_rules_parser_unittest.cc
index afb5979..5ca0fdd 100644
--- a/chrome/renderer/subresource_redirect/robots_rules_parser_unittest.cc
+++ b/chrome/renderer/subresource_redirect/robots_rules_parser_unittest.cc
@@ -45,7 +45,7 @@
  public:
   SubresourceRedirectRobotsRulesParserTest()
       : task_environment_(base::test::TaskEnvironment::TimeSource::MOCK_TIME),
-        robots_rules_parser_(base::TimeDelta::FromSeconds(1)) {}
+        robots_rules_parser_(base::Seconds(1)) {}
   void SetUp() override {
     scoped_feature_list_.InitWithFeaturesAndParameters(
         {{blink::features::kSubresourceRedirect, {{}}}}, {});
@@ -150,7 +150,7 @@
        RulesReceiveTimeoutDisallowsAllPaths) {
   // Let the rule fetch timeout.
   VerifyRulesReceiveState(RobotsRulesParser::RulesReceiveState::kTimerRunning);
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
   VerifyRobotsRulesReceiveResultHistogram(
       RobotsRulesParser::SubresourceRedirectRobotsRulesReceiveResult::kTimeout);
   VerifyRulesReceiveState(RobotsRulesParser::RulesReceiveState::kTimeout);
@@ -199,7 +199,7 @@
 TEST_F(SubresourceRedirectRobotsRulesParserTest,
        VerifyCallbackCalledBeforeDeciderDestroy) {
   auto robots_rules_parser =
-      std::make_unique<RobotsRulesParser>(base::TimeDelta::FromSeconds(1));
+      std::make_unique<RobotsRulesParser>(base::Seconds(1));
   auto receiver1 = std::make_unique<CheckResultReceiver>();
   auto receiver2 = std::make_unique<CheckResultReceiver>();
 
@@ -237,7 +237,7 @@
 
   // Once the rule fetch timesout,the callback should get called with the
   // result.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
   VerifyRobotsRulesReceiveResultHistogram(
       RobotsRulesParser::SubresourceRedirectRobotsRulesReceiveResult::kTimeout);
   VerifyRulesReceiveState(RobotsRulesParser::RulesReceiveState::kTimeout);
diff --git a/chrome/renderer/subresource_redirect/subresource_redirect_params.cc b/chrome/renderer/subresource_redirect/subresource_redirect_params.cc
index 0e036f2..608eba5 100644
--- a/chrome/renderer/subresource_redirect/subresource_redirect_params.cc
+++ b/chrome/renderer/subresource_redirect/subresource_redirect_params.cc
@@ -20,10 +20,9 @@
 }  // namespace
 
 base::TimeDelta GetCompressionRedirectTimeout() {
-  return base::TimeDelta::FromMilliseconds(
-      base::GetFieldTrialParamByFeatureAsInt(
-          blink::features::kSubresourceRedirect, "subresource_redirect_timeout",
-          5000));
+  return base::Milliseconds(base::GetFieldTrialParamByFeatureAsInt(
+      blink::features::kSubresourceRedirect, "subresource_redirect_timeout",
+      5000));
 }
 
 int64_t GetHintsReceiveTimeout() {
@@ -34,15 +33,13 @@
 
 base::TimeDelta GetRobotsRulesReceiveTimeout() {
   if (base::FeatureList::IsEnabled(blink::features::kSubresourceRedirect)) {
-    return base::TimeDelta::FromMilliseconds(
-        base::GetFieldTrialParamByFeatureAsInt(
-            blink::features::kSubresourceRedirect,
-            "robots_rules_receive_timeout_ms", 2000));
+    return base::Milliseconds(base::GetFieldTrialParamByFeatureAsInt(
+        blink::features::kSubresourceRedirect,
+        "robots_rules_receive_timeout_ms", 2000));
   }
-  return base::TimeDelta::FromMilliseconds(
-      base::GetFieldTrialParamByFeatureAsInt(
-          blink::features::kSubresourceRedirectSrcVideo,
-          "robots_rules_receive_timeout_ms", 2000));
+  return base::Milliseconds(base::GetFieldTrialParamByFeatureAsInt(
+      blink::features::kSubresourceRedirectSrcVideo,
+      "robots_rules_receive_timeout_ms", 2000));
 }
 
 size_t GetFirstKSubresourceLimit() {
@@ -52,15 +49,13 @@
 
 base::TimeDelta GetRobotsRulesReceiveFirstKSubresourceTimeout() {
   if (base::FeatureList::IsEnabled(blink::features::kSubresourceRedirect)) {
-    return base::TimeDelta::FromMilliseconds(
-        base::GetFieldTrialParamByFeatureAsInt(
-            blink::features::kSubresourceRedirect,
-            "robots_rules_receive_first_k_timeout_ms", 2000));
+    return base::Milliseconds(base::GetFieldTrialParamByFeatureAsInt(
+        blink::features::kSubresourceRedirect,
+        "robots_rules_receive_first_k_timeout_ms", 2000));
   }
-  return base::TimeDelta::FromMilliseconds(
-      base::GetFieldTrialParamByFeatureAsInt(
-          blink::features::kSubresourceRedirectSrcVideo,
-          "robots_rules_receive_first_k_timeout_ms", 2000));
+  return base::Milliseconds(base::GetFieldTrialParamByFeatureAsInt(
+      blink::features::kSubresourceRedirectSrcVideo,
+      "robots_rules_receive_first_k_timeout_ms", 2000));
 }
 
 size_t GetFirstKDisableSubresourceRedirectLimit() {
diff --git a/chrome/service/cloud_print/cloud_print_auth.cc b/chrome/service/cloud_print/cloud_print_auth.cc
index 1cd3452..ccdeac8b 100644
--- a/chrome/service/cloud_print/cloud_print_auth.cc
+++ b/chrome/service/cloud_print/cloud_print_auth.cc
@@ -103,8 +103,8 @@
   // Schedule a task to refresh the access token again when it is about to
   // expire.
   DCHECK(expires_in_seconds > kTokenRefreshGracePeriodSecs);
-  base::TimeDelta refresh_delay = base::TimeDelta::FromSeconds(
-      expires_in_seconds - kTokenRefreshGracePeriodSecs);
+  base::TimeDelta refresh_delay =
+      base::Seconds(expires_in_seconds - kTokenRefreshGracePeriodSecs);
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE, base::BindOnce(&CloudPrintAuth::RefreshAccessToken, this),
       refresh_delay);
diff --git a/chrome/service/cloud_print/cloud_print_proxy_backend.cc b/chrome/service/cloud_print/cloud_print_proxy_backend.cc
index 17837cd..42a0175e 100644
--- a/chrome/service/cloud_print/cloud_print_proxy_backend.cc
+++ b/chrome/service/cloud_print/cloud_print_proxy_backend.cc
@@ -539,7 +539,7 @@
 
 void CloudPrintProxyBackend::Core::ScheduleJobPoll() {
   if (!job_poll_scheduled_) {
-    base::TimeDelta interval = base::TimeDelta::FromSeconds(
+    base::TimeDelta interval = base::Seconds(
         base::RandInt(kMinJobPollIntervalSecs, kMaxJobPollIntervalSecs));
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
         FROM_HERE,
@@ -564,7 +564,7 @@
         FROM_HERE,
         base::BindOnce(&CloudPrintProxyBackend::Core::CheckXmppPingStatus,
                        this),
-        base::TimeDelta::FromSeconds(kXmppPingCheckIntervalSecs));
+        base::Seconds(kXmppPingCheckIntervalSecs));
   }
 
   // Schedule next ping if needed.
@@ -576,9 +576,9 @@
   // settings_.xmpp_ping_enabled() is obsolete, we are now control
   // XMPP pings from Cloud Print server.
   if (!xmpp_ping_scheduled_) {
-    base::TimeDelta interval = base::TimeDelta::FromSeconds(
-      base::RandInt(settings_.xmpp_ping_timeout_sec() * 0.9,
-                    settings_.xmpp_ping_timeout_sec() * 1.1));
+    base::TimeDelta interval =
+        base::Seconds(base::RandInt(settings_.xmpp_ping_timeout_sec() * 0.9,
+                                    settings_.xmpp_ping_timeout_sec() * 1.1));
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
         FROM_HERE,
         base::BindOnce(&CloudPrintProxyBackend::Core::PingXmppServer, this),
diff --git a/chrome/service/cloud_print/print_system_cups.cc b/chrome/service/cloud_print/print_system_cups.cc
index 64116d5..68c6a497 100644
--- a/chrome/service/cloud_print/print_system_cups.cc
+++ b/chrome/service/cloud_print/print_system_cups.cc
@@ -51,11 +51,10 @@
     "application/pdf,application/postscript,image/jpeg,image/png,image/gif";
 
 // Time interval to check for printer's updates.
-constexpr base::TimeDelta kCheckForPrinterUpdatesTime =
-    base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kCheckForPrinterUpdatesTime = base::Minutes(5);
 
 // Job update timeout
-constexpr base::TimeDelta kJobUpdateTimeout = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kJobUpdateTimeout = base::Seconds(5);
 
 // Job id for dry run (it should not affect CUPS job ids, since 0 job-id is
 // invalid in CUPS.
@@ -416,7 +415,7 @@
   if (print_system_settings) {
     int timeout;
     if (print_system_settings->GetInteger(kCUPSUpdateTimeoutMs, &timeout))
-      update_timeout_ = base::TimeDelta::FromMilliseconds(timeout);
+      update_timeout_ = base::Milliseconds(timeout);
 
     int encryption;
     if (print_system_settings->GetInteger(kCUPSEncryption, &encryption))
diff --git a/chrome/service/cloud_print/printer_job_handler_unittest.cc b/chrome/service/cloud_print/printer_job_handler_unittest.cc
index d53a45f..a1f71b9d4 100644
--- a/chrome/service/cloud_print/printer_job_handler_unittest.cc
+++ b/chrome/service/cloud_print/printer_job_handler_unittest.cc
@@ -600,8 +600,8 @@
   base::RunLoop run_loop;
   active_run_loop_quit_closure_ = run_loop.QuitWhenIdleClosure();
 
-  base::test::ScopedRunLoopTimeout run_timeout(
-      FROM_HERE, base::TimeDelta::FromSeconds(timeout_seconds));
+  base::test::ScopedRunLoopTimeout run_timeout(FROM_HERE,
+                                               base::Seconds(timeout_seconds));
   run_loop.Run();
 }
 
@@ -745,7 +745,7 @@
       base::BindOnce(&net::FakeURLFetcherFactory::SetFakeResponse,
                      base::Unretained(&factory_), TicketURI(1),
                      kExamplePrintTicket, net::HTTP_OK, net::OK),
-      base::TimeDelta::FromSeconds(1));
+      base::Seconds(1));
 
   BeginTest(5);
 }
diff --git a/chrome/service/cloud_print/printer_job_queue_handler.cc b/chrome/service/cloud_print/printer_job_queue_handler.cc
index 36cf82e..2349c71 100644
--- a/chrome/service/cloud_print/printer_job_queue_handler.cc
+++ b/chrome/service/cloud_print/printer_job_queue_handler.cc
@@ -100,8 +100,7 @@
     return base::TimeDelta();
   }
 
-  base::TimeDelta backoff_time =
-      base::TimeDelta::FromSeconds(kJobFirstWaitTimeSecs);
+  base::TimeDelta backoff_time = base::Seconds(kJobFirstWaitTimeSecs);
   backoff_time *=
       // casting argument to double and result to uint64_t to avoid compilation
       // issues
diff --git a/chrome/service/cloud_print/printer_job_queue_handler_unittest.cc b/chrome/service/cloud_print/printer_job_queue_handler_unittest.cc
index 649690c..c85f2bf5 100644
--- a/chrome/service/cloud_print/printer_job_queue_handler_unittest.cc
+++ b/chrome/service/cloud_print/printer_job_queue_handler_unittest.cc
@@ -129,8 +129,7 @@
     job_queue_handler.JobFetchFailed("__testjob1");
 
   ON_CALL((*job_queue_handler.GetMock()), GetNow())
-      .WillByDefault(
-          Return(base::Time::UnixEpoch() + base::TimeDelta::FromMinutes(4)));
+      .WillByDefault(Return(base::Time::UnixEpoch() + base::Minutes(4)));
 
   for (int i = 0; i < 2; i++)
     job_queue_handler.JobFetchFailed("__testjob2");
@@ -157,8 +156,7 @@
     job_queue_handler.JobFetchFailed("__testjob1");
 
   ON_CALL((*job_queue_handler.GetMock()), GetNow())
-      .WillByDefault(
-          Return(base::Time::UnixEpoch() + base::TimeDelta::FromSeconds(4)));
+      .WillByDefault(Return(base::Time::UnixEpoch() + base::Seconds(4)));
 
   for (int i = 0; i < 2; i++)
     job_queue_handler.JobFetchFailed("__testjob2");
@@ -174,8 +172,8 @@
 
   jobs.clear();
   ON_CALL((*job_queue_handler.GetMock()), GetNow())
-      .WillByDefault(Return(base::Time::UnixEpoch() +
-                            base::TimeDelta::FromSeconds(4) + time_to_wait));
+      .WillByDefault(
+          Return(base::Time::UnixEpoch() + base::Seconds(4) + time_to_wait));
 
   jobs = job_queue_handler.GetJobsFromQueue(GetDictionary());
 
diff --git a/chrome/service/service_main.cc b/chrome/service/service_main.cc
index 8ffc524..54907f5 100644
--- a/chrome/service/service_main.cc
+++ b/chrome/service/service_main.cc
@@ -54,7 +54,7 @@
     for (int i = 0; i < 10; ++i) {
       if (service->Initialize())
         return true;
-      base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(i * 100));
+      base::PlatformThread::Sleep(base::Milliseconds(i * 100));
     }
     return false;
   };
diff --git a/chrome/service/service_process.cc b/chrome/service/service_process.cc
index bd0e242f..0b3de7f9 100644
--- a/chrome/service/service_process.cc
+++ b/chrome/service/service_process.cc
@@ -428,7 +428,7 @@
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&ServiceProcess::ShutdownIfNeeded, base::Unretained(this)),
-      base::TimeDelta::FromSeconds(kShutdownDelaySeconds));
+      base::Seconds(kShutdownDelaySeconds));
 }
 
 void ServiceProcess::ShutdownIfNeeded() {
diff --git a/chrome/services/cups_proxy/proxy_manager.cc b/chrome/services/cups_proxy/proxy_manager.cc
index 3bf00c91..5e725e3 100644
--- a/chrome/services/cups_proxy/proxy_manager.cc
+++ b/chrome/services/cups_proxy/proxy_manager.cc
@@ -155,9 +155,8 @@
   // kRateLimit, the request is blocked and the HTTP 429 Too Many Requests
   // response status code is returned.
   base::TimeTicks time = base::TimeTicks::Now();
-  bool block_request =
-      timestamp_.CurrentIndex() >= timestamp_.BufferSize() &&
-      time - timestamp_.ReadBuffer(0) < base::TimeDelta::FromSeconds(1);
+  bool block_request = timestamp_.CurrentIndex() >= timestamp_.BufferSize() &&
+                       time - timestamp_.ReadBuffer(0) < base::Seconds(1);
   timestamp_.SaveToBuffer(time);
   if (block_request) {
     LOG(WARNING) << "CupsPrintService: Rate limit (" << kRateLimit
diff --git a/chrome/services/cups_proxy/proxy_manager_unittest.cc b/chrome/services/cups_proxy/proxy_manager_unittest.cc
index 74b5b82ab..4bdcda62 100644
--- a/chrome/services/cups_proxy/proxy_manager_unittest.cc
+++ b/chrome/services/cups_proxy/proxy_manager_unittest.cc
@@ -82,7 +82,7 @@
 TEST_F(ProxyManagerTest, ProxyRequestRateLimitShortGap) {
   for (int i = 0; i < ProxyManager::kRateLimit + 1; i++) {
     if (i == ProxyManager::kRateLimit / 2)
-      FastForwardBy(base::TimeDelta::FromSecondsD(.99));
+      FastForwardBy(base::Seconds(.99));
     ProxyRequest();
   }
   EXPECT_EQ(NumRequestsByStatusCode(kHttpTooManyRequests), 1);
@@ -93,7 +93,7 @@
   for (int i = 0; i < ProxyManager::kRateLimit + 1; i++)
     ProxyRequest();
   EXPECT_EQ(NumRequestsByStatusCode(kHttpTooManyRequests), 1);
-  FastForwardBy(base::TimeDelta::FromSecondsD(1.01));
+  FastForwardBy(base::Seconds(1.01));
   for (int i = 0; i < ProxyManager::kRateLimit + 1; i++)
     ProxyRequest();
   EXPECT_EQ(NumRequestsByStatusCode(kHttpTooManyRequests), 2);
@@ -102,8 +102,7 @@
 // Test that calls at a constant rate below the rate limit are allowed.
 TEST_F(ProxyManagerTest, ProxyRequestRateLimitBelow) {
   for (int i = 0; i < ProxyManager::kRateLimit + 10; i++) {
-    FastForwardBy(
-        base::TimeDelta::FromSecondsD(1.01 / ProxyManager::kRateLimit));
+    FastForwardBy(base::Seconds(1.01 / ProxyManager::kRateLimit));
     ProxyRequest();
   }
   EXPECT_EQ(NumRequestsByStatusCode(kHttpTooManyRequests), 0);
@@ -112,8 +111,7 @@
 // Test that calls at a constant rate above the rate limit are blocked.
 TEST_F(ProxyManagerTest, ProxyRequestRateLimitAbove) {
   for (int i = 0; i < ProxyManager::kRateLimit + 10; i++) {
-    FastForwardBy(
-        base::TimeDelta::FromSecondsD(.99 / ProxyManager::kRateLimit));
+    FastForwardBy(base::Seconds(.99 / ProxyManager::kRateLimit));
     ProxyRequest();
   }
   EXPECT_EQ(NumRequestsByStatusCode(kHttpTooManyRequests), 10);
diff --git a/chrome/services/file_util/zip_file_creator.cc b/chrome/services/file_util/zip_file_creator.cc
index 3108900..7d554dc 100644
--- a/chrome/services/file_util/zip_file_creator.cc
+++ b/chrome/services/file_util/zip_file_creator.cc
@@ -187,7 +187,7 @@
       .src_files = relative_paths,
       .progress_callback = base::BindRepeating(&ZipFileCreator::OnProgress,
                                                this, std::cref(listener)),
-      .progress_period = base::TimeDelta::FromMilliseconds(1000),
+      .progress_period = base::Milliseconds(1000),
       .recursive = true,
   });
 
diff --git a/chrome/services/mac_notifications/mac_notification_service_un.h b/chrome/services/mac_notifications/mac_notification_service_un.h
index 37161b58..cad500d 100644
--- a/chrome/services/mac_notifications/mac_notification_service_un.h
+++ b/chrome/services/mac_notifications/mac_notification_service_un.h
@@ -32,8 +32,7 @@
     : public mojom::MacNotificationService {
  public:
   // Timer interval used to synchronize displayed notifications.
-  static constexpr auto kSynchronizationInterval =
-      base::TimeDelta::FromMinutes(10);
+  static constexpr auto kSynchronizationInterval = base::Minutes(10);
 
   MacNotificationServiceUN(
       mojo::PendingReceiver<mojom::MacNotificationService> service,
diff --git a/chrome/services/media_gallery_util/public/cpp/safe_audio_video_checker.cc b/chrome/services/media_gallery_util/public/cpp/safe_audio_video_checker.cc
index b5337a6..35e3a421 100644
--- a/chrome/services/media_gallery_util/public/cpp/safe_audio_video_checker.cc
+++ b/chrome/services/media_gallery_util/public/cpp/safe_audio_video_checker.cc
@@ -27,8 +27,7 @@
 }
 
 void SafeAudioVideoChecker::OnMediaParserCreated() {
-  static constexpr auto kFileDecodeTime =
-      base::TimeDelta::FromMilliseconds(250);
+  static constexpr auto kFileDecodeTime = base::Milliseconds(250);
 
   media_parser()->CheckMediaFile(
       kFileDecodeTime, std::move(file_),
diff --git a/chrome/services/sharing/nearby/decoder/nearby_decoder.cc b/chrome/services/sharing/nearby/decoder/nearby_decoder.cc
index 4b29faf..4eaea71 100644
--- a/chrome/services/sharing/nearby/decoder/nearby_decoder.cc
+++ b/chrome/services/sharing/nearby/decoder/nearby_decoder.cc
@@ -194,10 +194,9 @@
         certificate.metadata_encryption_key_tag().end());
     // Convert timestamp from milliseconds since the Unix epoch.
     base::Time start =
-        base::Time::UnixEpoch() +
-        base::TimeDelta::FromMilliseconds(certificate.start_time());
-    base::Time end = base::Time::UnixEpoch() +
-                     base::TimeDelta::FromMilliseconds(certificate.end_time());
+        base::Time::UnixEpoch() + base::Milliseconds(certificate.start_time());
+    base::Time end =
+        base::Time::UnixEpoch() + base::Milliseconds(certificate.end_time());
 
     mojo_certificates.push_back(mojom::PublicCertificate::New(
         std::move(secret_id), std::move(authenticity_key),
diff --git a/chrome/services/sharing/nearby/decoder/nearby_decoder_unittest.cc b/chrome/services/sharing/nearby/decoder/nearby_decoder_unittest.cc
index 2f2a08b7..298e74c 100644
--- a/chrome/services/sharing/nearby/decoder/nearby_decoder_unittest.cc
+++ b/chrome/services/sharing/nearby/decoder/nearby_decoder_unittest.cc
@@ -181,11 +181,10 @@
     EXPECT_EQ(StringToVector(certs[i].authenticity_key()),
               cert->authenticity_key);
     EXPECT_EQ(StringToVector(certs[i].public_key()), cert->public_key);
-    EXPECT_EQ(base::Time::UnixEpoch() +
-                  base::TimeDelta::FromMilliseconds(certs[i].start_time()),
-              cert->start_time);
-    EXPECT_EQ(base::Time::UnixEpoch() +
-                  base::TimeDelta::FromMilliseconds(certs[i].end_time()),
+    EXPECT_EQ(
+        base::Time::UnixEpoch() + base::Milliseconds(certs[i].start_time()),
+        cert->start_time);
+    EXPECT_EQ(base::Time::UnixEpoch() + base::Milliseconds(certs[i].end_time()),
               cert->end_time);
     EXPECT_EQ(StringToVector(certs[i].encrypted_metadata_bytes()),
               cert->encrypted_metadata_bytes);
diff --git a/chrome/services/sharing/nearby/nearby_connections_unittest.cc b/chrome/services/sharing/nearby/nearby_connections_unittest.cc
index 5be2009..f420ab8f7 100644
--- a/chrome/services/sharing/nearby/nearby_connections_unittest.cc
+++ b/chrome/services/sharing/nearby/nearby_connections_unittest.cc
@@ -47,10 +47,8 @@
 const int64_t kPayloadId = 612721831;
 const char kPayload[] = {0x0f, 0x0a, 0x0c, 0x0e};
 const uint8_t kBluetoothMacAddress[] = {0x00, 0x00, 0xe6, 0x88, 0x64, 0x13};
-const base::TimeDelta kKeepAliveInterval =
-    base::TimeDelta::FromMilliseconds(5123);
-const base::TimeDelta kKeepAliveTimeout =
-    base::TimeDelta::FromMilliseconds(31234);
+const base::TimeDelta kKeepAliveInterval = base::Milliseconds(5123);
+const base::TimeDelta kKeepAliveTimeout = base::Milliseconds(31234);
 
 mojom::AdvertisingOptionsPtr CreateAdvertisingOptions() {
   bool use_ble = false;
diff --git a/chrome/services/sharing/nearby/platform/bluetooth_classic_medium.cc b/chrome/services/sharing/nearby/platform/bluetooth_classic_medium.cc
index c62d881..1ede791b 100644
--- a/chrome/services/sharing/nearby/platform/bluetooth_classic_medium.cc
+++ b/chrome/services/sharing/nearby/platform/bluetooth_classic_medium.cc
@@ -22,8 +22,7 @@
 
 // Duration of time after which inactive Bluetooth devices may be removed from
 // the discovered devices map.
-const base::TimeDelta kStaleBluetoothDeviceTimeout =
-    base::TimeDelta::FromSeconds(20);
+const base::TimeDelta kStaleBluetoothDeviceTimeout = base::Seconds(20);
 
 void LogStartDiscoveryResult(bool success) {
   base::UmaHistogramBoolean(
diff --git a/chrome/services/sharing/nearby/platform/bluetooth_classic_medium_unittest.cc b/chrome/services/sharing/nearby/platform/bluetooth_classic_medium_unittest.cc
index 0648e1a..78ec735 100644
--- a/chrome/services/sharing/nearby/platform/bluetooth_classic_medium_unittest.cc
+++ b/chrome/services/sharing/nearby/platform/bluetooth_classic_medium_unittest.cc
@@ -28,7 +28,7 @@
 const char kNearbySharingServiceName[] = "NearbySharing";
 const device::BluetoothUUID kNearbySharingServiceUuid =
     device::BluetoothUUID("a82efa21-ae5c-3dde-9bbc-f16da7b16c5a");
-const base::TimeDelta kStaleDeviceTimeout = base::TimeDelta::FromSeconds(20);
+const base::TimeDelta kStaleDeviceTimeout = base::Seconds(20);
 }  // namespace
 
 class BluetoothClassicMediumTest : public testing::Test {
diff --git a/chrome/services/sharing/nearby/platform/bluetooth_server_socket_unittest.cc b/chrome/services/sharing/nearby/platform/bluetooth_server_socket_unittest.cc
index a62059a..02f9559 100644
--- a/chrome/services/sharing/nearby/platform/bluetooth_server_socket_unittest.cc
+++ b/chrome/services/sharing/nearby/platform/bluetooth_server_socket_unittest.cc
@@ -189,7 +189,7 @@
         base::ScopedAllowBaseSyncPrimitivesForTesting allow_wait;
         bluetooth_server_socket_->Close();
       }),
-      base::TimeDelta::FromSeconds(1));
+      base::Seconds(1));
 
   base::ScopedAllowBaseSyncPrimitivesForTesting allow_wait;
   EXPECT_FALSE(bluetooth_server_socket_->Accept());
diff --git a/chrome/services/sharing/nearby/platform/bluetooth_socket_unittest.cc b/chrome/services/sharing/nearby/platform/bluetooth_socket_unittest.cc
index 6b08ea5..fe384d51 100644
--- a/chrome/services/sharing/nearby/platform/bluetooth_socket_unittest.cc
+++ b/chrome/services/sharing/nearby/platform/bluetooth_socket_unittest.cc
@@ -274,7 +274,7 @@
         base::ScopedAllowBaseSyncPrimitivesForTesting allow;
         EXPECT_EQ(Exception::kSuccess, input_stream.Close().value);
       }),
-      base::TimeDelta::FromMilliseconds(100));
+      base::Milliseconds(100));
 
   run_loop.Run();
 
@@ -363,7 +363,7 @@
         base::ScopedAllowBaseSyncPrimitivesForTesting allow;
         EXPECT_EQ(Exception::kSuccess, output_stream.Close().value);
       }),
-      base::TimeDelta::FromMilliseconds(100));
+      base::Milliseconds(100));
 
   run_loop.Run();
 
diff --git a/chrome/services/sharing/nearby/platform/condition_variable.cc b/chrome/services/sharing/nearby/platform/condition_variable.cc
index 526d7b6..870cdc4 100644
--- a/chrome/services/sharing/nearby/platform/condition_variable.cc
+++ b/chrome/services/sharing/nearby/platform/condition_variable.cc
@@ -23,7 +23,7 @@
 
 Exception ConditionVariable::Wait(absl::Duration timeout) {
   condition_variable_.TimedWait(
-      base::TimeDelta::FromMicroseconds(absl::ToInt64Microseconds(timeout)));
+      base::Microseconds(absl::ToInt64Microseconds(timeout)));
   return {Exception::kSuccess};
 }
 
diff --git a/chrome/services/sharing/nearby/platform/count_down_latch.cc b/chrome/services/sharing/nearby/platform/count_down_latch.cc
index 68b64f7c7..8cd0243 100644
--- a/chrome/services/sharing/nearby/platform/count_down_latch.cc
+++ b/chrome/services/sharing/nearby/platform/count_down_latch.cc
@@ -30,7 +30,7 @@
   // Return true if |count_waitable_event_| is signaled before TimedAwait()
   // times out. Otherwise, this returns false due to timing out.
   return ExceptionOr<bool>(count_waitable_event_.TimedWait(
-      base::TimeDelta::FromMicroseconds(absl::ToInt64Microseconds(timeout))));
+      base::Microseconds(absl::ToInt64Microseconds(timeout))));
 }
 
 void CountDownLatch::CountDown() {
diff --git a/chrome/services/sharing/nearby/platform/count_down_latch_unittest.cc b/chrome/services/sharing/nearby/platform/count_down_latch_unittest.cc
index e0829ae8..2d603fc1 100644
--- a/chrome/services/sharing/nearby/platform/count_down_latch_unittest.cc
+++ b/chrome/services/sharing/nearby/platform/count_down_latch_unittest.cc
@@ -102,7 +102,7 @@
 
   base::RunLoop run_loop;
   base::UnguessableToken attempt_id = base::UnguessableToken::Create();
-  PostAwaitTask(run_loop, attempt_id, base::TimeDelta::FromMilliseconds(1000));
+  PostAwaitTask(run_loop, attempt_id, base::Milliseconds(1000));
 
   run_loop.Run();
   EXPECT_EQ(1u, MapSize());
@@ -185,7 +185,7 @@
 
   base::RunLoop run_loop;
   base::UnguessableToken attempt_id = base::UnguessableToken::Create();
-  PostAwaitTask(run_loop, attempt_id, base::TimeDelta::FromMilliseconds(1000));
+  PostAwaitTask(run_loop, attempt_id, base::Milliseconds(1000));
 
   run_loop.Run();
   EXPECT_EQ(1u, MapSize());
@@ -197,12 +197,10 @@
 
   base::RunLoop run_loop_1;
   base::UnguessableToken attempt_id_1 = base::UnguessableToken::Create();
-  PostAwaitTask(run_loop_1, attempt_id_1,
-                base::TimeDelta::FromMilliseconds(100));
+  PostAwaitTask(run_loop_1, attempt_id_1, base::Milliseconds(100));
   base::RunLoop run_loop_2;
   base::UnguessableToken attempt_id_2 = base::UnguessableToken::Create();
-  PostAwaitTask(run_loop_2, attempt_id_2,
-                base::TimeDelta::FromMilliseconds(1000));
+  PostAwaitTask(run_loop_2, attempt_id_2, base::Milliseconds(1000));
 
   run_loop_1.Run();
   ASSERT_EQ(1u, MapSize());
diff --git a/chrome/services/sharing/nearby/platform/scheduled_executor.cc b/chrome/services/sharing/nearby/platform/scheduled_executor.cc
index fd456d5..9ec92ef 100644
--- a/chrome/services/sharing/nearby/platform/scheduled_executor.cc
+++ b/chrome/services/sharing/nearby/platform/scheduled_executor.cc
@@ -111,10 +111,10 @@
   }
 
   timer_task_runner_->PostTask(
-      FROM_HERE, base::BindOnce(&ScheduledExecutor::StartTimerWithId,
-                                base::Unretained(this), id,
-                                base::TimeDelta::FromMicroseconds(
-                                    absl::ToInt64Microseconds(duration))));
+      FROM_HERE,
+      base::BindOnce(&ScheduledExecutor::StartTimerWithId,
+                     base::Unretained(this), id,
+                     base::Microseconds(absl::ToInt64Microseconds(duration))));
 
   return std::make_shared<CancelableTask>(
       base::BindOnce(&TryCancelTask, weak_factory_.GetWeakPtr(), id));
diff --git a/chrome/services/sharing/nearby/platform/scheduled_executor_unittest.cc b/chrome/services/sharing/nearby/platform/scheduled_executor_unittest.cc
index 24f12bf..a5a8d78 100644
--- a/chrome/services/sharing/nearby/platform/scheduled_executor_unittest.cc
+++ b/chrome/services/sharing/nearby/platform/scheduled_executor_unittest.cc
@@ -20,8 +20,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kDefaultDelayTimeDelta =
-    base::TimeDelta::FromMinutes(10);
+constexpr base::TimeDelta kDefaultDelayTimeDelta = base::Minutes(10);
 
 }  // namespace
 
diff --git a/chrome/services/sharing/nearby/platform/system_clock.cc b/chrome/services/sharing/nearby/platform/system_clock.cc
index ad93ea0..b4f982fa 100644
--- a/chrome/services/sharing/nearby/platform/system_clock.cc
+++ b/chrome/services/sharing/nearby/platform/system_clock.cc
@@ -50,7 +50,7 @@
   base::TimeDelta time_difference =
       base::Time::FromCFAbsoluteTime(CFAbsoluteTimeGetCurrent()) -
       (base::Time::FromTimeT(boottime.tv_sec) +
-       base::TimeDelta::FromMicroseconds(boottime.tv_usec));
+       base::Microseconds(boottime.tv_usec));
   return absl::FromUnixMicros(time_difference.InMicroseconds());
 #elif defined(OS_POSIX)
   // SystemClock::ElapsedRealtime() must provide monotonically increasing time,
@@ -69,7 +69,7 @@
 
 Exception SystemClock::Sleep(absl::Duration duration) {
   base::PlatformThread::Sleep(
-      base::TimeDelta::FromMicroseconds(absl::ToInt64Microseconds(duration)));
+      base::Microseconds(absl::ToInt64Microseconds(duration)));
   return {Exception::kSuccess};
 }
 
diff --git a/chrome/services/sharing/nearby/platform/webrtc.cc b/chrome/services/sharing/nearby/platform/webrtc.cc
index 20887dc..f6a8d77 100644
--- a/chrome/services/sharing/nearby/platform/webrtc.cc
+++ b/chrome/services/sharing/nearby/platform/webrtc.cc
@@ -43,12 +43,11 @@
 // ups.
 //
 // See: b/183505430 for more context.
-constexpr base::TimeDelta kIceConnectionReceivingTimeout =
-    base::TimeDelta::FromMinutes(10);
+constexpr base::TimeDelta kIceConnectionReceivingTimeout = base::Minutes(10);
 constexpr base::TimeDelta kIceCheckIntervalStrongConnectivity =
-    base::TimeDelta::FromSeconds(25);
+    base::Seconds(25);
 constexpr base::TimeDelta kStableWritableConnectionPingInterval =
-    base::TimeDelta::FromSeconds(30);
+    base::Seconds(30);
 
 net::NetworkTrafficAnnotationTag kTrafficAnnotation =
     net::DefineNetworkTrafficAnnotation("nearby_webrtc_connection", R"(
diff --git a/chrome/services/speech/cloud_speech_recognition_client.cc b/chrome/services/speech/cloud_speech_recognition_client.cc
index 3824981..26613eca 100644
--- a/chrome/services/speech/cloud_speech_recognition_client.cc
+++ b/chrome/services/speech/cloud_speech_recognition_client.cc
@@ -24,13 +24,11 @@
 
 // The maximum duration a stream can be open for. The Open Speech API supports 5
 // minutes of continuous recognition.
-constexpr base::TimeDelta kMaximumStreamDuration =
-    base::TimeDelta::FromSeconds(295);
+constexpr base::TimeDelta kMaximumStreamDuration = base::Seconds(295);
 
 // The Open Speech API will not return any recognition events if 30 seconds have
 // elapsed since the last audio upload.
-constexpr base::TimeDelta kMaximumPauseDuration =
-    base::TimeDelta::FromSeconds(28);
+constexpr base::TimeDelta kMaximumPauseDuration = base::Seconds(28);
 
 constexpr char kWebServiceBaseUrl[] =
     "https://www.google.com/speech-api/full-duplex/v1";
diff --git a/chrome/services/speech/cloud_speech_recognition_client_unittest.cc b/chrome/services/speech/cloud_speech_recognition_client_unittest.cc
index 730f5319..4f53ed4 100644
--- a/chrome/services/speech/cloud_speech_recognition_client_unittest.cc
+++ b/chrome/services/speech/cloud_speech_recognition_client_unittest.cc
@@ -477,7 +477,7 @@
   // Fast forward by 325 total seconds to trigger a reset.
   for (int i = 0; i < 13; i++) {
     InjectDummyAudio();
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(25));
+    task_environment_.FastForwardBy(base::Seconds(25));
   }
 
   ASSERT_EQ(2, speech_recognition_service_impl_->GetNumPending());
@@ -505,7 +505,7 @@
       GetDownstreamRequest()->request.url.spec();
 
   // Fast forward by 35 seconds to trigger a reset.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(35));
+  task_environment_.FastForwardBy(base::Seconds(35));
   InjectDummyAudio();
   ASSERT_EQ(2, speech_recognition_service_impl_->GetNumPending());
 
diff --git a/chrome/test/base/chromeos/ash_browser_test_starter.cc b/chrome/test/base/chromeos/ash_browser_test_starter.cc
index c75be61..e6cd1d0 100644
--- a/chrome/test/base/chromeos/ash_browser_test_starter.cc
+++ b/chrome/test/base/chromeos/ash_browser_test_starter.cc
@@ -65,8 +65,7 @@
 void WaitForExoStarted(const base::FilePath& xdg_path) {
   base::RepeatingTimer timer;
   base::RunLoop run_loop;
-  timer.Start(FROM_HERE, base::TimeDelta::FromSeconds(1),
-              base::BindLambdaForTesting([&]() {
+  timer.Start(FROM_HERE, base::Seconds(1), base::BindLambdaForTesting([&]() {
                 if (base::PathExists(xdg_path.Append("wayland-0")) &&
                     base::PathExists(xdg_path.Append("wayland-0.lock"))) {
                   run_loop.Quit();
diff --git a/chrome/test/base/web_feature_histogram_tester.cc b/chrome/test/base/web_feature_histogram_tester.cc
index beb67c5..c58b66e1 100644
--- a/chrome/test/base/web_feature_histogram_tester.cc
+++ b/chrome/test/base/web_feature_histogram_tester.cc
@@ -144,7 +144,7 @@
       break;
     }
 
-    base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(5));
+    base::PlatformThread::Sleep(base::Milliseconds(5));
   }
 
   return expected;
diff --git a/chrome/test/chromedriver/capabilities.cc b/chrome/test/chromedriver/capabilities.cc
index 041d6a2..264366a 100644
--- a/chrome/test/chromedriver/capabilities.cc
+++ b/chrome/test/chromedriver/capabilities.cc
@@ -74,7 +74,7 @@
     return Status(kInvalidArgument, "must be an integer");
   if (option.GetInt() < 0)
     return Status(kInvalidArgument, "must be positive or zero");
-  *to_set = base::TimeDelta::FromMilliseconds(option.GetInt());
+  *to_set = base::Milliseconds(option.GetInt());
   return Status(kOk);
 }
 
@@ -244,7 +244,7 @@
           timeout_ms_int64 < 0)
         return Status(kInvalidArgument, "value must be a non-negative integer");
       else
-        timeout = base::TimeDelta::FromMilliseconds(timeout_ms_int64);
+        timeout = base::Milliseconds(timeout_ms_int64);
     }
     if (type == "script") {
       capabilities->script_timeout = timeout;
@@ -773,7 +773,7 @@
       strict_file_interactability(false),
       android_use_running_app(false),
       detach(false),
-      extension_load_timeout(base::TimeDelta::FromSeconds(10)),
+      extension_load_timeout(base::Seconds(10)),
       network_emulation_enabled(false) {}
 
 Capabilities::~Capabilities() {}
diff --git a/chrome/test/chromedriver/chrome/adb_impl.cc b/chrome/test/chromedriver/chrome/adb_impl.cc
index 315b22bc..d3cf6daf 100644
--- a/chrome/test/chromedriver/chrome/adb_impl.cc
+++ b/chrome/test/chromedriver/chrome/adb_impl.cc
@@ -205,8 +205,7 @@
       FROM_HERE,
       base::BindOnce(&SendFileOnIOThread, device_serial, command_line_file,
                      command, response_buffer, port_));
-  Status status =
-      response_buffer->GetResponse(&response, base::TimeDelta::FromSeconds(30));
+  Status status = response_buffer->GetResponse(&response, base::Seconds(30));
   return status;
 }
 
@@ -338,8 +337,7 @@
   io_task_runner_->PostTask(FROM_HERE,
                             base::BindOnce(&ExecuteCommandOnIOThread, command,
                                            response_buffer, port_));
-  Status status = response_buffer->GetResponse(
-      response, base::TimeDelta::FromSeconds(30));
+  Status status = response_buffer->GetResponse(response, base::Seconds(30));
   if (status.IsOk()) {
     VLOG(1) << "Received adb response: " << *response;
   }
diff --git a/chrome/test/chromedriver/chrome/chrome_desktop_impl.cc b/chrome/test/chromedriver/chrome/chrome_desktop_impl.cc
index b79543a..841eec2 100644
--- a/chrome/test/chromedriver/chrome/chrome_desktop_impl.cc
+++ b/chrome/test/chromedriver/chrome/chrome_desktop_impl.cc
@@ -41,8 +41,7 @@
 #if defined(OS_POSIX)
   if (!kill_gracefully) {
     kill(process.Pid(), SIGKILL);
-    base::TimeTicks deadline =
-        base::TimeTicks::Now() + base::TimeDelta::FromSeconds(30);
+    base::TimeTicks deadline = base::TimeTicks::Now() + base::Seconds(30);
     while (base::TimeTicks::Now() < deadline) {
       pid_t pid = HANDLE_EINTR(waitpid(process.Pid(), NULL, WNOHANG));
       if (pid == process.Pid())
@@ -55,7 +54,7 @@
         }
         LOG(WARNING) << "Error waiting for process " << process.Pid();
       }
-      base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(50));
+      base::PlatformThread::Sleep(base::Milliseconds(50));
     }
     return false;
   }
@@ -137,7 +136,7 @@
     }
     if (!id.empty())
       break;
-    base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(100));
+    base::PlatformThread::Sleep(base::Milliseconds(100));
   }
   if (id.empty())
     return Status(kUnknownError, "page could not be found: " + url);
@@ -203,8 +202,8 @@
       status = devtools_websocket_client_->SendCommandAndIgnoreResponse(
           "Browser.close", base::DictionaryValue());
       // If status is not okay, we will try the old method of KillProcess
-      if (status.IsOk() && process_.WaitForExitWithTimeout(
-                               base::TimeDelta::FromSeconds(10), nullptr))
+      if (status.IsOk() &&
+          process_.WaitForExitWithTimeout(base::Seconds(10), nullptr))
         return status;
     }
   }
diff --git a/chrome/test/chromedriver/chrome/chrome_impl.cc b/chrome/test/chromedriver/chrome/chrome_impl.cc
index 2927fc9..f84c76e 100644
--- a/chrome/test/chromedriver/chrome/chrome_impl.cc
+++ b/chrome/test/chromedriver/chrome/chrome_impl.cc
@@ -303,7 +303,7 @@
 
     if (status.IsError())
       return status;
-    base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(100));
+    base::PlatformThread::Sleep(base::Milliseconds(100));
 
     status = GetWindowBounds(window->id, window);
     if (status.IsError())
@@ -360,7 +360,7 @@
   if (status.IsError())
     return status;
 
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(100));
+  base::PlatformThread::Sleep(base::Milliseconds(100));
 
   if (!desired_state || desired_state->empty())
     return Status(kOk);
@@ -414,7 +414,7 @@
     status = devtools_websocket_client_->SendCommand("Browser.setWindowBounds",
                                                      params);
 
-    base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(100));
+    base::PlatformThread::Sleep(base::Milliseconds(100));
 
     status = GetWindowBounds(window->id, window);
     if (status.IsError())
diff --git a/chrome/test/chromedriver/chrome/devtools_client_impl.cc b/chrome/test/chromedriver/chrome/devtools_client_impl.cc
index b46ae87..3b59d8cb 100644
--- a/chrome/test/chromedriver/chrome/devtools_client_impl.cc
+++ b/chrome/test/chromedriver/chrome/devtools_client_impl.cc
@@ -311,8 +311,7 @@
     // when only funcinterval has expired, continue while loop
     // but return timeout status if primary timeout has expired
     // This supports cases when loading state is updated by a different client
-    Timeout funcinterval =
-        Timeout(base::TimeDelta::FromMilliseconds(500), &timeout);
+    Timeout funcinterval = Timeout(base::Milliseconds(500), &timeout);
     Status status = ProcessNextMessage(-1, false, funcinterval);
     if (status.code() == kTimeout) {
       if (timeout.IsExpired()) {
@@ -395,8 +394,7 @@
         // Use a long default timeout if user has not requested one.
         Status status = ProcessNextMessage(
             command_id, true,
-            timeout != nullptr ? *timeout
-                               : Timeout(base::TimeDelta::FromMinutes(10)));
+            timeout != nullptr ? *timeout : Timeout(base::Minutes(10)));
         if (status.IsError()) {
           if (response_info->state == kReceived)
             response_info_map_.erase(command_id);
diff --git a/chrome/test/chromedriver/chrome/devtools_client_impl_unittest.cc b/chrome/test/chromedriver/chrome/devtools_client_impl_unittest.cc
index 86bae9b..50a6374 100644
--- a/chrome/test/chromedriver/chrome/devtools_client_impl_unittest.cc
+++ b/chrome/test/chromedriver/chrome/devtools_client_impl_unittest.cc
@@ -146,7 +146,7 @@
 
 class DevToolsClientImplTest : public testing::Test {
  protected:
-  DevToolsClientImplTest() : long_timeout_(base::TimeDelta::FromMinutes(5)) {}
+  DevToolsClientImplTest() : long_timeout_(base::Minutes(5)) {}
 
   const base::TimeDelta long_timeout_;
 };
diff --git a/chrome/test/chromedriver/chrome/devtools_http_client.cc b/chrome/test/chromedriver/chrome/devtools_http_client.cc
index cb20ec3a..a973d34 100644
--- a/chrome/test/chromedriver/chrome/devtools_http_client.cc
+++ b/chrome/test/chromedriver/chrome/devtools_http_client.cc
@@ -96,7 +96,7 @@
   while (!FetchUrlAndLog(version_url, &data) || data.empty()) {
     if (base::TimeTicks::Now() > deadline)
       return Status(kChromeNotReachable);
-    base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(50));
+    base::PlatformThread::Sleep(base::Milliseconds(50));
   }
 
   return ParseBrowserInfo(data, &browser_info_);
@@ -125,8 +125,7 @@
   }
 
   // Wait for the target window to be completely closed.
-  base::TimeTicks deadline =
-      base::TimeTicks::Now() + base::TimeDelta::FromSeconds(20);
+  base::TimeTicks deadline = base::TimeTicks::Now() + base::Seconds(20);
   while (base::TimeTicks::Now() < deadline) {
     WebViewsInfo views_info;
     Status status = GetWebViewsInfo(&views_info);
@@ -136,7 +135,7 @@
       return status;
     if (!views_info.GetForId(id))
       return Status(kOk);
-    base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(50));
+    base::PlatformThread::Sleep(base::Milliseconds(50));
   }
   return Status(kUnknownError, "failed to close window in 20 seconds");
 }
@@ -216,8 +215,7 @@
   }
 
   // Wait until DevTools UI disconnects from the given web view.
-  base::TimeTicks deadline =
-      base::TimeTicks::Now() + base::TimeDelta::FromSeconds(20);
+  base::TimeTicks deadline = base::TimeTicks::Now() + base::Seconds(20);
   while (base::TimeTicks::Now() < deadline) {
     status = GetWebViewsInfo(&views_info);
     if (status.IsError())
@@ -229,7 +227,7 @@
     if (view_info->debugger_url.size())
       return Status(kOk);
 
-    base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(50));
+    base::PlatformThread::Sleep(base::Milliseconds(50));
   }
   return Status(kUnknownError, "failed to close UI debuggers");
 }
diff --git a/chrome/test/chromedriver/chrome/scoped_temp_dir_with_retry.cc b/chrome/test/chromedriver/chrome/scoped_temp_dir_with_retry.cc
index 5c3680e3..3deaf33 100644
--- a/chrome/test/chromedriver/chrome/scoped_temp_dir_with_retry.cc
+++ b/chrome/test/chromedriver/chrome/scoped_temp_dir_with_retry.cc
@@ -16,7 +16,7 @@
         DLOG(WARNING) << "Could not delete temp dir after retries.";
         break;
       }
-      base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(10));
+      base::PlatformThread::Sleep(base::Milliseconds(10));
     }
   }
 }
diff --git a/chrome/test/chromedriver/chrome/web_view_impl.cc b/chrome/test/chromedriver/chrome/web_view_impl.cc
index 3528389..35ccf1f 100644
--- a/chrome/test/chromedriver/chrome/web_view_impl.cc
+++ b/chrome/test/chromedriver/chrome/web_view_impl.cc
@@ -884,7 +884,7 @@
     // executing the next command, and it will be counted towards its timeout.
     Status new_status = client_->HandleEventsUntil(
         not_pending_navigation,
-        Timeout(base::TimeDelta::FromSeconds(kWaitForNavigationStopSeconds)));
+        Timeout(base::Seconds(kWaitForNavigationStopSeconds)));
     navigation_tracker_->set_timed_out(false);
     if (new_status.IsError())
       status = new_status;
@@ -933,7 +933,7 @@
     std::string* screenshot,
     const base::DictionaryValue& params) {
   std::unique_ptr<base::DictionaryValue> result;
-  Timeout timeout(base::TimeDelta::FromSeconds(10));
+  Timeout timeout(base::Seconds(10));
   Status status = client_->SendCommandAndGetResultWithTimeout(
       "Page.captureScreenshot", params, &timeout, &result);
   if (status.IsError())
@@ -951,7 +951,7 @@
                   "PrintToPDF is only supported in headless mode");
   }
   std::unique_ptr<base::DictionaryValue> result;
-  Timeout timeout(base::TimeDelta::FromSeconds(10));
+  Timeout timeout(base::Seconds(10));
   Status status = client_->SendCommandAndGetResultWithTimeout(
       "Page.printToPDF", params, &timeout, &result);
   if (status.IsError()) {
@@ -1208,7 +1208,7 @@
       "}",
       kJavaScriptError,
       kDocUnloadError);
-  const base::TimeDelta kOneHundredMs = base::TimeDelta::FromMilliseconds(100);
+  const base::TimeDelta kOneHundredMs = base::Milliseconds(100);
 
   while (true) {
     base::ListValue no_args;
diff --git a/chrome/test/chromedriver/chrome/web_view_impl_unittest.cc b/chrome/test/chromedriver/chrome/web_view_impl_unittest.cc
index fdf4a46..c05240b 100644
--- a/chrome/test/chromedriver/chrome/web_view_impl_unittest.cc
+++ b/chrome/test/chromedriver/chrome/web_view_impl_unittest.cc
@@ -317,7 +317,7 @@
 
   // child_view gets no socket...
   ASSERT_NO_FATAL_FAILURE(child_view->WaitForPendingNavigations(
-      "1234", Timeout(base::TimeDelta::FromMilliseconds(10)), true));
+      "1234", Timeout(base::Milliseconds(10)), true));
 }
 
 TEST(CreateChild, IsPendingNavigation_NoErrors) {
@@ -335,7 +335,7 @@
   std::unique_ptr<WebViewImpl> child_view =
       std::unique_ptr<WebViewImpl>(parent_view.CreateChild(sessionid, "1234"));
 
-  Timeout timeout(base::TimeDelta::FromMilliseconds(10));
+  Timeout timeout(base::Milliseconds(10));
   bool result;
   ASSERT_NO_FATAL_FAILURE(child_view->IsPendingNavigation(&timeout, &result));
 }
diff --git a/chrome/test/chromedriver/chrome_launcher.cc b/chrome/test/chromedriver/chrome_launcher.cc
index 7eeb51d..899df07 100644
--- a/chrome/test/chromedriver/chrome_launcher.cc
+++ b/chrome/test/chromedriver/chrome_launcher.cc
@@ -273,8 +273,7 @@
   }
 
   const base::TimeTicks initial = base::TimeTicks::Now();
-  const base::TimeTicks deadline =
-      initial + base::TimeDelta::FromSeconds(wait_time);
+  const base::TimeTicks deadline = initial + base::Seconds(wait_time);
   Status status = client->Init(deadline - initial);
   if (status.IsError())
     return status;
@@ -336,7 +335,7 @@
         return Status(kOk);
       }
     }
-    base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(50));
+    base::PlatformThread::Sleep(base::Milliseconds(50));
   } while (base::TimeTicks::Now() < deadline);
 
   return Status(kUnknownError, "unable to discover open pages");
@@ -581,8 +580,7 @@
   int exit_code;
   base::TerminationStatus chrome_status =
       base::TERMINATION_STATUS_STILL_RUNNING;
-  base::TimeTicks deadline =
-      base::TimeTicks::Now() + base::TimeDelta::FromSeconds(60);
+  base::TimeTicks deadline = base::TimeTicks::Now() + base::Seconds(60);
   while (base::TimeTicks::Now() < deadline) {
     if (!devtools_port) {
       status =
@@ -645,7 +643,7 @@
           kChromeDriverProductShortName, kBrowserShortName));
       return failure_status;
     }
-    base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(50));
+    base::PlatformThread::Sleep(base::Milliseconds(50));
   }
 
   if (status.IsError()) {
diff --git a/chrome/test/chromedriver/commands.cc b/chrome/test/chromedriver/commands.cc
index 5386ebfef..27cc354 100644
--- a/chrome/test/chromedriver/commands.cc
+++ b/chrome/test/chromedriver/commands.cc
@@ -137,7 +137,7 @@
                             run_loop.QuitClosure(), session_list.get()));
   }
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(), base::TimeDelta::FromSeconds(10));
+      FROM_HERE, run_loop.QuitClosure(), base::Seconds(10));
   run_loop.Run();
 
   callback.Run(Status(kOk), std::move(session_list), session_id, false);
@@ -184,7 +184,7 @@
                             run_loop.QuitClosure()));
   }
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(), base::TimeDelta::FromSeconds(10));
+      FROM_HERE, run_loop.QuitClosure(), base::Seconds(10));
   // Uses a nested run loop to block this thread until all the quit
   // commands have executed, or the timeout expires.
   run_loop.Run();
diff --git a/chrome/test/chromedriver/commands_unittest.cc b/chrome/test/chromedriver/commands_unittest.cc
index ca6f2be..2da8430 100644
--- a/chrome/test/chromedriver/commands_unittest.cc
+++ b/chrome/test/chromedriver/commands_unittest.cc
@@ -449,7 +449,7 @@
 TEST(CommandsTest, SuccessfulFindElement) {
   FindElementWebView web_view(true, kElementExistsQueryTwice);
   Session session("id");
-  session.implicit_wait = base::TimeDelta::FromSeconds(1);
+  session.implicit_wait = base::Seconds(1);
   session.SwitchToSubFrame("frame_id1", std::string());
   base::Value params(base::Value::Type::DICTIONARY);
   params.SetStringKey("using", "css selector");
@@ -483,7 +483,7 @@
 TEST(CommandsTest, SuccessfulFindElements) {
   FindElementWebView web_view(false, kElementExistsQueryTwice);
   Session session("id");
-  session.implicit_wait = base::TimeDelta::FromSeconds(1);
+  session.implicit_wait = base::Seconds(1);
   session.SwitchToSubFrame("frame_id2", std::string());
   base::Value params(base::Value::Type::DICTIONARY);
   params.SetStringKey("using", "css selector");
@@ -518,7 +518,7 @@
 TEST(CommandsTest, SuccessfulFindChildElement) {
   FindElementWebView web_view(true, kElementExistsQueryTwice);
   Session session("id");
-  session.implicit_wait = base::TimeDelta::FromSeconds(1);
+  session.implicit_wait = base::Seconds(1);
   session.SwitchToSubFrame("frame_id3", std::string());
   base::Value params(base::Value::Type::DICTIONARY);
   params.SetStringKey("using", "css selector");
@@ -556,7 +556,7 @@
 TEST(CommandsTest, SuccessfulFindChildElements) {
   FindElementWebView web_view(false, kElementExistsQueryTwice);
   Session session("id");
-  session.implicit_wait = base::TimeDelta::FromSeconds(1);
+  session.implicit_wait = base::Seconds(1);
   session.SwitchToSubFrame("frame_id4", std::string());
   base::Value params(base::Value::Type::DICTIONARY);
   params.SetStringKey("using", "css selector");
@@ -596,7 +596,7 @@
 TEST(CommandsTest, TimeoutInFindElement) {
   Session session("id");
   FindElementWebView web_view(true, kElementExistsTimeout);
-  session.implicit_wait = base::TimeDelta::FromMilliseconds(2);
+  session.implicit_wait = base::Milliseconds(2);
   base::Value params(base::Value::Type::DICTIONARY);
   params.SetStringKey("using", "css selector");
   params.SetStringKey("value", "#a");
diff --git a/chrome/test/chromedriver/element_commands.cc b/chrome/test/chromedriver/element_commands.cc
index 9434c0c..f358fe2 100644
--- a/chrome/test/chromedriver/element_commands.cc
+++ b/chrome/test/chromedriver/element_commands.cc
@@ -120,7 +120,7 @@
     if (base::TimeTicks::Now() - start_time >= session->implicit_wait) {
       return Status(kElementNotVisible);
     }
-    base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(100));
+    base::PlatformThread::Sleep(base::Milliseconds(100));
   }
 
   bool is_enabled = false;
@@ -421,7 +421,7 @@
     if (status.IsError())
       return status;
     base::PlatformThread::Sleep(
-        base::TimeDelta::FromMilliseconds(1000 / kFlickTouchEventsPerSecond));
+        base::Milliseconds(1000 / kFlickTouchEventsPerSecond));
   }
   return web_view->DispatchTouchEvent(
       TouchEvent(kTouchEnd, location.x + xoffset, location.y + yoffset), false);
@@ -499,7 +499,7 @@
     if (base::TimeTicks::Now() - start_time >= session->implicit_wait) {
       return Status(kElementNotVisible);
     }
-    base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(50));
+    base::PlatformThread::Sleep(base::Milliseconds(50));
   }
   static bool isClearWarningNotified = false;
   if (!isClearWarningNotified) {
diff --git a/chrome/test/chromedriver/element_util.cc b/chrome/test/chromedriver/element_util.cc
index 3afe481..88234e4 100644
--- a/chrome/test/chromedriver/element_util.cc
+++ b/chrome/test/chromedriver/element_util.cc
@@ -193,12 +193,12 @@
       }
       middle = tmp_location;
       middle.Offset(region.Width() / 2, region.Height() / 2);
-      Timeout response_timeout(base::TimeDelta::FromSeconds(1));
+      Timeout response_timeout(base::Seconds(1));
       do {
         status =
          VerifyElementClickable(frame, web_view, clickable_element_id, middle);
         if (status.code() == kElementClickIntercepted)
-          base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(50));
+          base::PlatformThread::Sleep(base::Milliseconds(50));
         else
           break;
       } while (!response_timeout.IsExpired());
@@ -445,7 +445,7 @@
       return Status(kOk);
     }
 
-    base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(interval_ms));
+    base::PlatformThread::Sleep(base::Milliseconds(interval_ms));
   }
 }
 
@@ -632,7 +632,7 @@
     if (base::TimeTicks::Now() - start_time >= session->implicit_wait) {
       return Status(kElementNotVisible);
     }
-    base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(50));
+    base::PlatformThread::Sleep(base::Milliseconds(50));
   }
 
   WebRect rect;
diff --git a/chrome/test/chromedriver/net/net_util.cc b/chrome/test/chromedriver/net/net_util.cc
index 48b9720..6074822 100644
--- a/chrome/test/chromedriver/net/net_util.cc
+++ b/chrome/test/chromedriver/net/net_util.cc
@@ -59,7 +59,7 @@
 
     loader_ = network::SimpleURLLoader::Create(std::move(request),
                                                TRAFFIC_ANNOTATION_FOR_TESTS);
-    loader_->SetTimeoutDuration(base::TimeDelta::FromSeconds(10));
+    loader_->SetTimeoutDuration(base::Seconds(10));
     loader_->DownloadToStringOfUnboundedSizeUntilCrashAndDie(
         url_loader_factory_, base::BindOnce(&SyncUrlFetcher::OnURLLoadComplete,
                                             base::Unretained(this)));
diff --git a/chrome/test/chromedriver/net/sync_websocket_impl.cc b/chrome/test/chromedriver/net/sync_websocket_impl.cc
index 96b97e5..d78bb8a 100644
--- a/chrome/test/chromedriver/net/sync_websocket_impl.cc
+++ b/chrome/test/chromedriver/net/sync_websocket_impl.cc
@@ -70,7 +70,7 @@
     context_getter_->GetNetworkTaskRunner()->PostTask(
         FROM_HERE, base::BindOnce(&SyncWebSocketImpl::Core::ConnectOnIO, this,
                                   url, &success, &event));
-    if (event.TimedWait(base::TimeDelta::FromSeconds(timeout)))
+    if (event.TimedWait(base::Seconds(timeout)))
       break;
     LOG(WARNING) << "Timed out connecting to Chrome, "
                  << (timeout < kMaxTimeout ? "retrying..." : "giving up.");
diff --git a/chrome/test/chromedriver/net/sync_websocket_impl_unittest.cc b/chrome/test/chromedriver/net/sync_websocket_impl_unittest.cc
index b1c9b16..7e607c7 100644
--- a/chrome/test/chromedriver/net/sync_websocket_impl_unittest.cc
+++ b/chrome/test/chromedriver/net/sync_websocket_impl_unittest.cc
@@ -25,8 +25,7 @@
 class SyncWebSocketImplTest : public testing::Test {
  protected:
   SyncWebSocketImplTest()
-      : client_thread_("ClientThread"),
-        long_timeout_(base::TimeDelta::FromMinutes(1)) {}
+      : client_thread_("ClientThread"), long_timeout_(base::Minutes(1)) {}
   ~SyncWebSocketImplTest() override {}
 
   void SetUp() override {
@@ -180,10 +179,10 @@
   ASSERT_TRUE(sock.Connect(server_.web_socket_url()));
   ASSERT_TRUE(sock.Send("1"));
   // Wait for SyncWebSocket to receive the response from the server.
-  Timeout response_timeout(base::TimeDelta::FromSeconds(20));
+  Timeout response_timeout(base::Seconds(20));
   while (!response_timeout.IsExpired()) {
     if (sock.IsConnected() && !sock.HasNextMessage())
-      base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(10));
+      base::PlatformThread::Sleep(base::Milliseconds(10));
     else
       break;
   }
diff --git a/chrome/test/chromedriver/net/test_http_server.cc b/chrome/test/chromedriver/net/test_http_server.cc
index 02a6a15..8f63038 100644
--- a/chrome/test/chromedriver/net/test_http_server.cc
+++ b/chrome/test/chromedriver/net/test_http_server.cc
@@ -61,7 +61,7 @@
 }
 
 bool TestHttpServer::WaitForConnectionsToClose() {
-  return all_closed_event_.TimedWait(base::TimeDelta::FromSeconds(10));
+  return all_closed_event_.TimedWait(base::Seconds(10));
 }
 
 void TestHttpServer::SetRequestAction(WebSocketRequestAction action) {
diff --git a/chrome/test/chromedriver/net/websocket_unittest.cc b/chrome/test/chromedriver/net/websocket_unittest.cc
index d5ee034..88d694c 100644
--- a/chrome/test/chromedriver/net/websocket_unittest.cc
+++ b/chrome/test/chromedriver/net/websocket_unittest.cc
@@ -111,7 +111,7 @@
     base::RunLoop run_loop;
     sock->Connect(base::BindOnce(&OnConnectFinished, &run_loop, &error));
     task_environment_.GetMainThreadTaskRunner()->PostDelayedTask(
-        FROM_HERE, run_loop.QuitClosure(), base::TimeDelta::FromSeconds(10));
+        FROM_HERE, run_loop.QuitClosure(), base::Seconds(10));
     run_loop.Run();
     if (error == net::OK)
       return sock;
@@ -132,7 +132,7 @@
       ASSERT_TRUE(sock->Send(messages[i]));
     }
     task_environment_.GetMainThreadTaskRunner()->PostDelayedTask(
-        FROM_HERE, run_loop.QuitClosure(), base::TimeDelta::FromSeconds(10));
+        FROM_HERE, run_loop.QuitClosure(), base::Seconds(10));
     run_loop.Run();
   }
 
@@ -185,7 +185,7 @@
   ASSERT_TRUE(sock);
   ASSERT_TRUE(sock->Send("hi"));
   task_environment_.GetMainThreadTaskRunner()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(), base::TimeDelta::FromSeconds(10));
+      FROM_HERE, run_loop.QuitClosure(), base::Seconds(10));
   run_loop.Run();
 }
 
@@ -198,7 +198,7 @@
 
   sock->Send("hi");
   task_environment_.GetMainThreadTaskRunner()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(), base::TimeDelta::FromSeconds(10));
+      FROM_HERE, run_loop.QuitClosure(), base::Seconds(10));
   run_loop.Run();
   ASSERT_FALSE(sock->Send("hi"));
 }
@@ -253,7 +253,7 @@
 
   EXPECT_EQ(listener.Messages().size(), 0u);
   task_environment_.GetMainThreadTaskRunner()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(), base::TimeDelta::FromSeconds(10));
+      FROM_HERE, run_loop.QuitClosure(), base::Seconds(10));
   run_loop.Run();
   EXPECT_THAT(listener.Messages(), testing::ElementsAre(kOriginalMessage));
 }
@@ -278,7 +278,7 @@
   EXPECT_EQ(listener.Messages().size(), 0u);
 
   task_environment_.GetMainThreadTaskRunner()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(), base::TimeDelta::FromSeconds(10));
+      FROM_HERE, run_loop.QuitClosure(), base::Seconds(10));
   run_loop.Run();
   EXPECT_EQ(listener.Messages().size(), 0u);
 }
@@ -301,7 +301,7 @@
   EXPECT_EQ(listener.Messages().size(), 0u);
 
   task_environment_.GetMainThreadTaskRunner()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(), base::TimeDelta::FromSeconds(10));
+      FROM_HERE, run_loop.QuitClosure(), base::Seconds(10));
   run_loop.Run();
   EXPECT_EQ(listener.Messages().size(), 0u);
 }
diff --git a/chrome/test/chromedriver/performance_logger.cc b/chrome/test/chromedriver/performance_logger.cc
index e61a4df..0223167 100644
--- a/chrome/test/chromedriver/performance_logger.cc
+++ b/chrome/test/chromedriver/performance_logger.cc
@@ -303,7 +303,7 @@
   status = browser_client_->HandleEventsUntil(
       base::BindRepeating(&PerformanceLogger::IsTraceDone,
                           base::Unretained(this)),
-      Timeout(base::TimeDelta::FromSeconds(30)));
+      Timeout(base::Seconds(30)));
   if (status.IsError())
     return status;
 
diff --git a/chrome/test/chromedriver/session.cc b/chrome/test/chromedriver/session.cc
index ced5b5c..d9a1cae 100644
--- a/chrome/test/chromedriver/session.cc
+++ b/chrome/test/chromedriver/session.cc
@@ -52,12 +52,9 @@
 InputCancelListEntry::~InputCancelListEntry() = default;
 
 // The default timeout values came from W3C spec.
-const base::TimeDelta Session::kDefaultImplicitWaitTimeout =
-    base::TimeDelta::FromSeconds(0);
-const base::TimeDelta Session::kDefaultPageLoadTimeout =
-    base::TimeDelta::FromSeconds(300);
-const base::TimeDelta Session::kDefaultScriptTimeout =
-    base::TimeDelta::FromSeconds(30);
+const base::TimeDelta Session::kDefaultImplicitWaitTimeout = base::Seconds(0);
+const base::TimeDelta Session::kDefaultPageLoadTimeout = base::Seconds(300);
+const base::TimeDelta Session::kDefaultScriptTimeout = base::Seconds(30);
 
 Session::Session(const std::string& id)
     : id(id),
diff --git a/chrome/test/chromedriver/session_commands.cc b/chrome/test/chromedriver/session_commands.cc
index 7e2f149..6da4aad 100644
--- a/chrome/test/chromedriver/session_commands.cc
+++ b/chrome/test/chromedriver/session_commands.cc
@@ -879,7 +879,7 @@
     return Status(kInvalidArgument, "'type' must be a string");
 
   base::TimeDelta timeout =
-      base::TimeDelta::FromMilliseconds(static_cast<int>(maybe_ms.value()));
+      base::Milliseconds(static_cast<int>(maybe_ms.value()));
   if (*type == "implicit") {
     session->implicit_wait = timeout;
   } else if (*type == "script") {
@@ -912,7 +912,7 @@
             return Status(kInvalidArgument,
                           "value must be a non-negative integer");
         else
-            timeout = base::TimeDelta::FromMilliseconds(timeout_ms_int64);
+          timeout = base::Milliseconds(timeout_ms_int64);
     }
     if (type == "script") {
       session->script_timeout = timeout;
@@ -962,7 +962,7 @@
   if (!maybe_ms.has_value() || maybe_ms.value() < 0)
     return Status(kInvalidArgument, "'ms' must be a non-negative number");
   session->script_timeout =
-      base::TimeDelta::FromMilliseconds(static_cast<int>(maybe_ms.value()));
+      base::Milliseconds(static_cast<int>(maybe_ms.value()));
   return Status(kOk);
 }
 
@@ -973,7 +973,7 @@
   if (!maybe_ms.has_value() || maybe_ms.value() < 0)
     return Status(kInvalidArgument, "'ms' must be a non-negative number");
   session->implicit_wait =
-      base::TimeDelta::FromMilliseconds(static_cast<int>(maybe_ms.value()));
+      base::Milliseconds(static_cast<int>(maybe_ms.value()));
   return Status(kOk);
 }
 
diff --git a/chrome/test/chromedriver/session_commands_unittest.cc b/chrome/test/chromedriver/session_commands_unittest.cc
index 6cabd83..727a86d 100644
--- a/chrome/test/chromedriver/session_commands_unittest.cc
+++ b/chrome/test/chromedriver/session_commands_unittest.cc
@@ -616,9 +616,9 @@
   ASSERT_TRUE(capabilities_out.logging_prefs["driver"]);
   // Verify session settings are correct
   ASSERT_EQ(kAccept, session.unhandled_prompt_behavior);
-  ASSERT_EQ(base::TimeDelta::FromSeconds(57), session.implicit_wait);
-  ASSERT_EQ(base::TimeDelta::FromSeconds(29), session.page_load_timeout);
-  ASSERT_EQ(base::TimeDelta::FromSeconds(21), session.script_timeout);
+  ASSERT_EQ(base::Seconds(57), session.implicit_wait);
+  ASSERT_EQ(base::Seconds(29), session.page_load_timeout);
+  ASSERT_EQ(base::Seconds(21), session.script_timeout);
   ASSERT_TRUE(session.strict_file_interactability);
   ASSERT_EQ(Log::Level::kDebug, session.driver_log.get()->min_level());
 }
@@ -648,9 +648,9 @@
   ASSERT_TRUE(desired_caps_out->is_dict());
   ASSERT_TRUE(merged_out.is_dict());
   // Testing specific values could be fragile, but want to verify they are set
-  ASSERT_EQ(base::TimeDelta::FromSeconds(0), session.implicit_wait);
-  ASSERT_EQ(base::TimeDelta::FromSeconds(300), session.page_load_timeout);
-  ASSERT_EQ(base::TimeDelta::FromSeconds(30), session.script_timeout);
+  ASSERT_EQ(base::Seconds(0), session.implicit_wait);
+  ASSERT_EQ(base::Seconds(300), session.page_load_timeout);
+  ASSERT_EQ(base::Seconds(30), session.script_timeout);
   ASSERT_FALSE(session.strict_file_interactability);
   ASSERT_EQ(Log::Level::kWarning, session.driver_log.get()->min_level());
   // w3c values:
diff --git a/chrome/test/chromedriver/window_commands.cc b/chrome/test/chromedriver/window_commands.cc
index 15b1c100..b94695fe1 100644
--- a/chrome/test/chromedriver/window_commands.cc
+++ b/chrome/test/chromedriver/window_commands.cc
@@ -1891,8 +1891,7 @@
     }
 
     if (tick_duration > 0) {
-      base::PlatformThread::Sleep(
-          base::TimeDelta::FromMilliseconds(tick_duration));
+      base::PlatformThread::Sleep(base::Milliseconds(tick_duration));
     }
   }
 
diff --git a/chrome/test/media_router/media_router_e2e_browsertest.cc b/chrome/test/media_router/media_router_e2e_browsertest.cc
index 536c8e1..ffbb7e6 100644
--- a/chrome/test/media_router/media_router_e2e_browsertest.cc
+++ b/chrome/test/media_router/media_router_e2e_browsertest.cc
@@ -84,7 +84,7 @@
   DVLOG(1) << "Receiver name: " << receiver_;
   // Wait for MediaSinks compatible with |source| to be discovered.
   ASSERT_TRUE(ConditionalWait(
-      base::TimeDelta::FromSeconds(30), base::TimeDelta::FromSeconds(1),
+      base::Seconds(30), base::Seconds(1),
       base::BindRepeating(&MediaRouterE2EBrowserTest::IsSinkDiscovered,
                           base::Unretained(this))));
 
@@ -101,7 +101,7 @@
 
   // Wait for the route request to be fulfilled (and route to be started).
   ASSERT_TRUE(ConditionalWait(
-      base::TimeDelta::FromSeconds(30), base::TimeDelta::FromSeconds(1),
+      base::Seconds(30), base::Seconds(1),
       base::BindRepeating(&MediaRouterE2EBrowserTest::IsRouteCreated,
                           base::Unretained(this))));
 }
@@ -143,11 +143,11 @@
   // Wait for 30 seconds to make sure the route is stable.
   CreateMediaRoute(MediaSource::ForTab(tab_id.id()),
                    url::Origin::Create(GURL(kOrigin)), web_contents);
-  Wait(base::TimeDelta::FromSeconds(30));
+  Wait(base::Seconds(30));
 
   // Wait for 10 seconds to make sure route has been stopped.
   StopMediaRoute();
-  Wait(base::TimeDelta::FromSeconds(10));
+  Wait(base::Seconds(10));
 }
 
 IN_PROC_BROWSER_TEST_F(MediaRouterE2EBrowserTest, MANUAL_CastApp) {
@@ -155,11 +155,11 @@
   CreateMediaRoute(
       MediaSource::ForPresentationUrl(GURL(kCastAppPresentationUrl)),
       url::Origin::Create(GURL(kOrigin)), nullptr);
-  Wait(base::TimeDelta::FromSeconds(30));
+  Wait(base::Seconds(30));
 
   // Wait for 10 seconds to make sure route has been stopped.
   StopMediaRoute();
-  Wait(base::TimeDelta::FromSeconds(10));
+  Wait(base::Seconds(10));
 }
 
 }  // namespace media_router
diff --git a/chrome/test/media_router/media_router_e2e_ui_browsertest.cc b/chrome/test/media_router/media_router_e2e_ui_browsertest.cc
index 29b753a..17812ca1 100644
--- a/chrome/test/media_router/media_router_e2e_ui_browsertest.cc
+++ b/chrome/test/media_router/media_router_e2e_ui_browsertest.cc
@@ -42,7 +42,7 @@
   test_ui_->StartCastingFromCastDialog(receiver_);
 
   // Play the file for 10 seconds.
-  Wait(base::TimeDelta::FromSeconds(10));
+  Wait(base::Seconds(10));
 
   // Expect that the current tab has the file open in it.
   ASSERT_EQ(file_url, web_contents->GetURL());
@@ -59,7 +59,7 @@
   test_ui_->WaitForSink(receiver_);
   test_ui_->StopCastingFromCastDialog(receiver_);
   // Wait 15s for Chromecast to back to home screen and ready to use status.
-  Wait(base::TimeDelta::FromSeconds(15));
+  Wait(base::Seconds(15));
 }
 
 IN_PROC_BROWSER_TEST_F(MediaRouterE2EBrowserTest, MANUAL_MirrorHTML5Video) {
@@ -73,7 +73,7 @@
   test_ui_->StartCastingFromCastDialog(receiver_);
 
   // Mirror tab for 10s.
-  Wait(base::TimeDelta::FromSeconds(10));
+  Wait(base::Seconds(10));
 
   // Check the mirroring session has started successfully.
   ASSERT_FALSE(test_ui_->GetRouteIdForSink(receiver_).empty());
@@ -82,23 +82,23 @@
   // Play the video on loop and wait 5s for it to play smoothly.
   std::string script = "document.getElementsByTagName('video')[0].loop=true;";
   ExecuteScript(web_contents, script);
-  Wait(base::TimeDelta::FromSeconds(5));
+  Wait(base::Seconds(5));
 
   // Go to full screen and wait 5s for it to play smoothly.
   script =
       "document.getElementsByTagName('video')[0]."
       "webkitRequestFullScreen();";
   ExecuteScript(web_contents, script);
-  Wait(base::TimeDelta::FromSeconds(5));
+  Wait(base::Seconds(5));
   if (!test_ui_->IsCastDialogShown()) {
     test_ui_->ShowCastDialog();
     // Wait 5s for the dialog to be fully loaded and usable.
-    Wait(base::TimeDelta::FromSeconds(5));
+    Wait(base::Seconds(5));
   }
 
   // Check the mirroring session is still live.
   ASSERT_FALSE(test_ui_->GetRouteIdForSink(receiver_).empty());
-  Wait(base::TimeDelta::FromSeconds(20));
+  Wait(base::Seconds(20));
   if (!test_ui_->IsCastDialogShown())
     test_ui_->ShowCastDialog();
   test_ui_->WaitForSink(receiver_);
diff --git a/chrome/test/media_router/media_router_integration_browsertest.cc b/chrome/test/media_router/media_router_integration_browsertest.cc
index f3f887cd6..2963c9c2 100644
--- a/chrome/test/media_router/media_router_integration_browsertest.cc
+++ b/chrome/test/media_router/media_router_integration_browsertest.cc
@@ -192,7 +192,7 @@
   ExecuteJavaScriptAPI(web_contents, kStartSessionScript);
 
   // Wait to simulate the user waiting for any sinks to be displayed.
-  Wait(base::TimeDelta::FromSeconds(1));
+  Wait(base::Seconds(1));
   if (GlobalMediaControlsCastStartStopEnabled()) {
     test_ui_->HideGMCDialog();
   } else {
@@ -563,7 +563,7 @@
                                            /*stay_awake=*/true);
 
   // Wait for capture poll timer to pick up change.
-  Wait(base::TimeDelta::FromSeconds(3));
+  Wait(base::Seconds(3));
 
   // Expect that fullscreen was entered.
   ASSERT_TRUE(
@@ -591,7 +591,7 @@
   OpenDialogAndCastFile();
 
   // Wait for file to start playing (but not being captured).
-  Wait(base::TimeDelta::FromSeconds(3));
+  Wait(base::Seconds(3));
 
   // Expect no capture is ongoing.
   content::WebContents* web_contents = GetActiveWebContents();
diff --git a/chrome/test/media_router/media_router_integration_ui_browsertest.cc b/chrome/test/media_router/media_router_integration_ui_browsertest.cc
index 3e2a4a179..32697643 100644
--- a/chrome/test/media_router/media_router_integration_ui_browsertest.cc
+++ b/chrome/test/media_router/media_router_integration_ui_browsertest.cc
@@ -41,7 +41,7 @@
                        MANUAL_Dialog_RouteCreationTimedOut) {
   // The hardcoded timeout route creation timeout for the UI.
   // See kCreateRouteTimeoutSeconds in media_router_ui.cc.
-  test_provider_->set_delay(base::TimeDelta::FromSeconds(20));
+  test_provider_->set_delay(base::Seconds(20));
   OpenTestPage(FILE_PATH_LITERAL("basic_test.html"));
   test_ui_->ShowCastDialog();
   test_ui_->WaitForSinkAvailable(receiver_);
@@ -51,10 +51,10 @@
   test_ui_->WaitForAnyIssue();
 
   base::TimeDelta elapsed(base::TimeTicks::Now() - start_time);
-  base::TimeDelta expected_timeout(base::TimeDelta::FromSeconds(20));
+  base::TimeDelta expected_timeout(base::Seconds(20));
 
   EXPECT_GE(elapsed, expected_timeout);
-  EXPECT_LE(elapsed - expected_timeout, base::TimeDelta::FromSeconds(5));
+  EXPECT_LE(elapsed - expected_timeout, base::Seconds(5));
 
   std::string issue_title = test_ui_->GetIssueTextForSink(receiver_);
   // TODO(imcheng): Fix host name for file schemes (crbug.com/560576).
diff --git a/chrome/test/media_router/media_router_one_ua_integration_browsertest.cc b/chrome/test/media_router/media_router_one_ua_integration_browsertest.cc
index aa373c48..f5e4365 100644
--- a/chrome/test/media_router/media_router_one_ua_integration_browsertest.cc
+++ b/chrome/test/media_router/media_router_one_ua_integration_browsertest.cc
@@ -57,7 +57,7 @@
     test_provider_->CaptureOffScreenTab(GetActiveWebContents(), receiver_page,
                                         presentation_id);
     // Wait for offscreen tab to be created and loaded.
-    Wait(base::TimeDelta::FromSeconds(3));
+    Wait(base::Seconds(3));
   }
 };
 
diff --git a/chrome/updater/app/app_install_mac.mm b/chrome/updater/app/app_install_mac.mm
index 07c37ba..7b2aeacc 100644
--- a/chrome/updater/app/app_install_mac.mm
+++ b/chrome/updater/app/app_install_mac.mm
@@ -17,8 +17,7 @@
 void AppInstall::WakeCandidateDone() {
   PollLaunchctlList(
       updater_scope(), GetUpdateServiceLaunchdName(updater_scope()),
-      LaunchctlPresence::kPresent,
-      base::TimeDelta::FromSeconds(kWaitForLaunchctlUpdateSec),
+      LaunchctlPresence::kPresent, base::Seconds(kWaitForLaunchctlUpdateSec),
       base::BindOnce([](scoped_refptr<AppInstall> installer,
                         bool unused) { installer->RegisterUpdater(); },
                      base::WrapRefCounted(this)));
diff --git a/chrome/updater/app/server/mac/server.mm b/chrome/updater/app/server/mac/server.mm
index 3134e6f8..86325e5 100644
--- a/chrome/updater/app/server/mac/server.mm
+++ b/chrome/updater/app/server/mac/server.mm
@@ -114,7 +114,7 @@
 base::TimeDelta AppServerMac::ServerKeepAlive() {
   int seconds = external_constants()->ServerKeepAliveSeconds();
   VLOG(2) << "ServerKeepAliveSeconds: " << seconds;
-  return base::TimeDelta::FromSeconds(seconds);
+  return base::Seconds(seconds);
 }
 
 void AppServerMac::TaskCompleted() {
diff --git a/chrome/updater/check_for_updates_task.cc b/chrome/updater/check_for_updates_task.cc
index 86b1c7104..7a44106 100644
--- a/chrome/updater/check_for_updates_task.cc
+++ b/chrome/updater/check_for_updates_task.cc
@@ -46,7 +46,7 @@
       base::Time::NowFromSystemTime() -
       config->GetPrefService()->GetTime(kPrefUpdateTime);
   if (base::TimeDelta() < time_since_update &&
-      time_since_update < base::TimeDelta::FromSeconds(check_delay_seconds)) {
+      time_since_update < base::Seconds(check_delay_seconds)) {
     VLOG(0) << "Skipping checking for updates: last update was "
             << time_since_update.InMinutes() << " minutes ago.";
     return true;
@@ -136,7 +136,7 @@
               base::BindOnce(&CheckForUpdatesTask::MaybeCheckForUpdatesDone,
                              this),
               config_)),
-      base::TimeDelta::FromSecondsD(config_->InitialDelay()));
+      base::Seconds(config_->InitialDelay()));
 }
 
 void CheckForUpdatesTask::MaybeCheckForUpdatesDone() {
diff --git a/chrome/updater/launchd_util.cc b/chrome/updater/launchd_util.cc
index 27225e6b..c789206f 100644
--- a/chrome/updater/launchd_util.cc
+++ b/chrome/updater/launchd_util.cc
@@ -60,7 +60,7 @@
       FROM_HERE, {base::WithBaseSyncPrimitives()},
       base::BindOnce(&PollLaunchctlListImpl, scope, service, expectation,
                      deadline, std::move(callback)),
-      base::TimeDelta::FromMilliseconds(500));
+      base::Milliseconds(500));
 }
 
 }  // namespace
diff --git a/chrome/updater/mac/setup/keystone.cc b/chrome/updater/mac/setup/keystone.cc
index aaabcd6..b0dbd59 100644
--- a/chrome/updater/mac/setup/keystone.cc
+++ b/chrome/updater/mac/setup/keystone.cc
@@ -205,8 +205,7 @@
   }
   int exit_code = 0;
 
-  if (!process.WaitForExitWithTimeout(base::TimeDelta::FromSeconds(30),
-                                      &exit_code)) {
+  if (!process.WaitForExitWithTimeout(base::Seconds(30), &exit_code)) {
     LOG(ERROR) << "Uninstall Keystone didn't finish in the allowed time.";
     return;
   }
diff --git a/chrome/updater/mac/setup/setup.mm b/chrome/updater/mac/setup/setup.mm
index c684a48..ca544e3 100644
--- a/chrome/updater/mac/setup/setup.mm
+++ b/chrome/updater/mac/setup/setup.mm
@@ -416,7 +416,7 @@
     return setup_exit_codes::kFailedToStartLaunchdActiveServiceJob;
 
   // Wait for launchd to finish the load operation for the update service.
-  base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(2));
+  base::PlatformThread::Sleep(base::Seconds(2));
 
   return setup_exit_codes::kSuccess;
 }
diff --git a/chrome/updater/prefs.cc b/chrome/updater/prefs.cc
index d122e61..662e28c 100644
--- a/chrome/updater/prefs.cc
+++ b/chrome/updater/prefs.cc
@@ -78,7 +78,7 @@
 
 scoped_refptr<GlobalPrefs> CreateGlobalPrefs(UpdaterScope scope) {
   std::unique_ptr<ScopedPrefsLock> lock =
-      AcquireGlobalPrefsLock(scope, base::TimeDelta::FromMinutes(2));
+      AcquireGlobalPrefsLock(scope, base::Minutes(2));
   if (!lock)
     return nullptr;
 
diff --git a/chrome/updater/prefs_mac.mm b/chrome/updater/prefs_mac.mm
index 88c8d31..2b862f44 100644
--- a/chrome/updater/prefs_mac.mm
+++ b/chrome/updater/prefs_mac.mm
@@ -23,8 +23,7 @@
 
 // Interval to poll for lock availability if it is not immediately available.
 // Final interval will be truncated to fit the available timeout.
-constexpr base::TimeDelta kPrefsLockPollingInterval =
-    base::TimeDelta::FromSeconds(3);
+constexpr base::TimeDelta kPrefsLockPollingInterval = base::Seconds(3);
 
 //
 // Attempts to acquire the receive right to a named Mach service.
diff --git a/chrome/updater/prefs_unittest.cc b/chrome/updater/prefs_unittest.cc
index 1277f512..a579724 100644
--- a/chrome/updater/prefs_unittest.cc
+++ b/chrome/updater/prefs_unittest.cc
@@ -39,15 +39,15 @@
   base::test::TaskEnvironment task_environment(
       base::test::SingleThreadTaskEnvironment::MainThreadType::UI);
 
-  std::unique_ptr<ScopedPrefsLock> lock = AcquireGlobalPrefsLock(
-      GetUpdaterScope(), base::TimeDelta::FromSeconds(0));
+  std::unique_ptr<ScopedPrefsLock> lock =
+      AcquireGlobalPrefsLock(GetUpdaterScope(), base::Seconds(0));
   EXPECT_TRUE(lock);
 
   base::RunLoop run_loop;
   base::ThreadPool::PostTaskAndReplyWithResult(
       FROM_HERE, base::BindOnce([]() {
-        std::unique_ptr<ScopedPrefsLock> lock = AcquireGlobalPrefsLock(
-            GetUpdaterScope(), base::TimeDelta::FromSeconds(0));
+        std::unique_ptr<ScopedPrefsLock> lock =
+            AcquireGlobalPrefsLock(GetUpdaterScope(), base::Seconds(0));
         return lock.get() != nullptr;
       }),
       base::OnceCallback<void(bool)>(
@@ -65,8 +65,8 @@
   base::RunLoop run_loop;
   base::ThreadPool::PostTaskAndReplyWithResult(
       FROM_HERE, base::BindOnce([]() {
-        std::unique_ptr<ScopedPrefsLock> lock = AcquireGlobalPrefsLock(
-            GetUpdaterScope(), base::TimeDelta::FromSeconds(0));
+        std::unique_ptr<ScopedPrefsLock> lock =
+            AcquireGlobalPrefsLock(GetUpdaterScope(), base::Seconds(0));
         return lock.get() != nullptr;
       }),
       base::OnceCallback<void(bool)>(
@@ -76,8 +76,7 @@
           })));
   run_loop.Run();
 
-  auto lock = AcquireGlobalPrefsLock(GetUpdaterScope(),
-                                     base::TimeDelta::FromSeconds(0));
+  auto lock = AcquireGlobalPrefsLock(GetUpdaterScope(), base::Seconds(0));
   EXPECT_TRUE(lock);
 }
 
diff --git a/chrome/updater/setup_mac.mm b/chrome/updater/setup_mac.mm
index 06445ba..82e8d58 100644
--- a/chrome/updater/setup_mac.mm
+++ b/chrome/updater/setup_mac.mm
@@ -28,8 +28,7 @@
   }
   PollLaunchctlList(
       scope, GetUpdateServiceInternalLaunchdName(scope),
-      LaunchctlPresence::kPresent,
-      base::TimeDelta::FromSeconds(kWaitForLaunchctlUpdateSec),
+      LaunchctlPresence::kPresent, base::Seconds(kWaitForLaunchctlUpdateSec),
       base::BindOnce(
           [](base::OnceCallback<void(int)> callback, bool service_exists) {
             std::move(callback).Run(
diff --git a/chrome/updater/test/integration_tests.cc b/chrome/updater/test/integration_tests.cc
index 40bb969..f9fb5931 100644
--- a/chrome/updater/test/integration_tests.cc
+++ b/chrome/updater/test/integration_tests.cc
@@ -380,8 +380,7 @@
   // UpdateServiceInternal server takes at least 10 seconds to shut down after
   // Install, and RegisterApp cannot make progress until it shut downs and
   // releases the global prefs lock. We give it at most 18 seconds to be safe.
-  base::test::ScopedRunLoopTimeout timeout(FROM_HERE,
-                                           base::TimeDelta::FromSeconds(18));
+  base::test::ScopedRunLoopTimeout timeout(FROM_HERE, base::Seconds(18));
 
   ScopedServer test_server(test_commands_);
   Install();
diff --git a/chrome/updater/test/integration_tests_impl.cc b/chrome/updater/test/integration_tests_impl.cc
index 542686cf0..5a65936 100644
--- a/chrome/updater/test/integration_tests_impl.cc
+++ b/chrome/updater/test/integration_tests_impl.cc
@@ -252,8 +252,7 @@
     return false;
 
   // TODO(crbug.com/1096654): Get the timeout from TestTimeouts.
-  return process.WaitForExitWithTimeout(base::TimeDelta::FromSeconds(45),
-                                        exit_code);
+  return process.WaitForExitWithTimeout(base::Seconds(45), exit_code);
 }
 
 void SleepFor(int seconds) {
@@ -263,7 +262,7 @@
   base::ThreadPool::PostDelayedTask(
       FROM_HERE, {base::MayBlock()},
       base::BindOnce(&base::WaitableEvent::Signal, base::Unretained(&sleep)),
-      base::TimeDelta::FromSeconds(seconds));
+      base::Seconds(seconds));
   sleep.Wait();
   VLOG(2) << "Sleep complete.";
 }
@@ -274,7 +273,7 @@
   while (base::TimeTicks::Now() < deadline) {
     if (predicate.Run())
       return true;
-    base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(200));
+    base::PlatformThread::Sleep(base::Milliseconds(200));
   }
   return false;
 }
diff --git a/chrome/updater/test/integration_tests_mac.mm b/chrome/updater/test/integration_tests_mac.mm
index 0155c142..d7e46d1 100644
--- a/chrome/updater/test/integration_tests_mac.mm
+++ b/chrome/updater/test/integration_tests_mac.mm
@@ -92,7 +92,7 @@
   bool success = false;
   base::RunLoop loop;
   PollLaunchctlList(scope, service, LaunchctlPresence::kAbsent,
-                    base::TimeDelta::FromSeconds(7),
+                    base::Seconds(7),
                     base::BindLambdaForTesting([&](bool result) {
                       success = result;
                       loop.QuitClosure().Run();
diff --git a/chrome/updater/test/integration_tests_win.cc b/chrome/updater/test/integration_tests_win.cc
index 4fa6e08..393b2f9 100644
--- a/chrome/updater/test/integration_tests_win.cc
+++ b/chrome/updater/test/integration_tests_win.cc
@@ -478,8 +478,7 @@
 
 HRESULT DoLoopUntilDone(Microsoft::WRL::ComPtr<IAppBundleWeb> bundle) {
   bool done = false;
-  static const base::TimeDelta kExpirationTimeout =
-      base::TimeDelta::FromMinutes(1);
+  static const base::TimeDelta kExpirationTimeout = base::Minutes(1);
   base::ElapsedTimer timer;
 
   EXPECT_TRUE(timer.Elapsed() < kExpirationTimeout);
@@ -653,8 +652,7 @@
   int exit_code = -1;
   base::Process process = base::LaunchProcess(python_command, {});
   EXPECT_TRUE(process.IsValid());
-  EXPECT_TRUE(process.WaitForExitWithTimeout(base::TimeDelta::FromSeconds(60),
-                                             &exit_code));
+  EXPECT_TRUE(process.WaitForExitWithTimeout(base::Seconds(60), &exit_code));
   return exit_code;
 }
 
diff --git a/chrome/updater/updater_unittest.cc b/chrome/updater/updater_unittest.cc
index 9618de6..f24fcc3 100644
--- a/chrome/updater/updater_unittest.cc
+++ b/chrome/updater/updater_unittest.cc
@@ -45,7 +45,6 @@
   auto process = base::LaunchProcess(command_line, options);
   ASSERT_TRUE(process.IsValid());
   int exit_code = -1;
-  EXPECT_TRUE(process.WaitForExitWithTimeout(base::TimeDelta::FromSeconds(60),
-                                             &exit_code));
+  EXPECT_TRUE(process.WaitForExitWithTimeout(base::Seconds(60), &exit_code));
   EXPECT_EQ(0, exit_code);
 }
diff --git a/chrome/updater/win/action_handler.cc b/chrome/updater/win/action_handler.cc
index cafa45754..a97116e6 100644
--- a/chrome/updater/win/action_handler.cc
+++ b/chrome/updater/win/action_handler.cc
@@ -76,7 +76,7 @@
   options.start_hidden = true;
   base::Process process = base::LaunchProcess(command_line, options);
   int exit_code = 0;
-  const base::TimeDelta kMaxWaitTime = base::TimeDelta::FromSeconds(600);
+  const base::TimeDelta kMaxWaitTime = base::Seconds(600);
   const bool succeeded =
       process.WaitForExitWithTimeout(kMaxWaitTime, &exit_code);
   return Result{succeeded, exit_code, 0};
diff --git a/chrome/updater/win/installer_api.cc b/chrome/updater/win/installer_api.cc
index 5021951..93b8f462 100644
--- a/chrome/updater/win/installer_api.cc
+++ b/chrome/updater/win/installer_api.cc
@@ -338,7 +338,7 @@
   const auto time_begin = base::Time::NowFromSystemTime();
   do {
     bool wait_result = process.WaitForExitWithTimeout(
-        base::TimeDelta::FromSeconds(kWaitForInstallerProgressSec), &exit_code);
+        base::Seconds(kWaitForInstallerProgressSec), &exit_code);
     auto progress = GetInstallerProgress(updater_scope_, app_id());
     DVLOG(3) << "installer progress: " << progress;
     progress_callback.Run(progress);
@@ -347,7 +347,7 @@
       break;
     }
   } while (base::Time::NowFromSystemTime() - time_begin <=
-           base::TimeDelta::FromSeconds(kWaitForAppInstallerSec));
+           base::Seconds(kWaitForAppInstallerSec));
 
   return MakeInstallerResult(GetInstallerOutcome(updater_scope_, app_id()),
                              exit_code);
diff --git a/chrome/updater/win/task_scheduler.cc b/chrome/updater/win/task_scheduler.cc
index e1f1595..3523253 100644
--- a/chrome/updater/win/task_scheduler.cc
+++ b/chrome/updater/win/task_scheduler.cc
@@ -191,8 +191,7 @@
     SYSTEMTIME start_system_time = {};
     GetLocalTime(&start_system_time);
 
-    base::Time tomorrow(base::Time::NowFromSystemTime() +
-                        base::TimeDelta::FromDays(1));
+    base::Time tomorrow(base::Time::NowFromSystemTime() + base::Days(1));
     SYSTEMTIME end_system_time = {};
     if (!UTCFileTimeToLocalSystemTime(tomorrow.ToFileTime(), &end_system_time))
       return false;
@@ -581,7 +580,7 @@
 
     // None of the triggers should go beyond kNumDaysBeforeExpiry.
     base::Time expiry_date(base::Time::NowFromSystemTime() +
-                           base::TimeDelta::FromDays(kNumDaysBeforeExpiry));
+                           base::Days(kNumDaysBeforeExpiry));
     base::win::ScopedBstr end_boundary(GetTimestampString(expiry_date));
     hr = trigger->put_EndBoundary(end_boundary.Get());
     if (FAILED(hr)) {
diff --git a/chrome/updater/win/task_scheduler_unittest.cc b/chrome/updater/win/task_scheduler_unittest.cc
index d1c7c49..f928bef 100644
--- a/chrome/updater/win/task_scheduler_unittest.cc
+++ b/chrome/updater/win/task_scheduler_unittest.cc
@@ -131,8 +131,8 @@
                                     TaskScheduler::TRIGGER_TYPE_HOURLY, false));
   EXPECT_TRUE(task_scheduler_->IsTaskRegistered(kTaskName1));
 
-  base::TimeDelta one_hour(base::TimeDelta::FromHours(1));
-  base::TimeDelta one_minute(base::TimeDelta::FromMinutes(1));
+  base::TimeDelta one_hour(base::Hours(1));
+  base::TimeDelta one_minute(base::Minutes(1));
 
   base::Time next_run_time;
   EXPECT_TRUE(task_scheduler_->GetNextTaskRunTime(kTaskName1, &next_run_time));
@@ -156,8 +156,8 @@
       TaskScheduler::TRIGGER_TYPE_EVERY_FIVE_HOURS, false));
   EXPECT_TRUE(task_scheduler_->IsTaskRegistered(kTaskName1));
 
-  base::TimeDelta six_hours(base::TimeDelta::FromHours(5));
-  base::TimeDelta one_minute(base::TimeDelta::FromMinutes(1));
+  base::TimeDelta six_hours(base::Hours(5));
+  base::TimeDelta one_minute(base::Minutes(1));
 
   base::Time next_run_time;
   EXPECT_TRUE(task_scheduler_->GetNextTaskRunTime(kTaskName1, &next_run_time));
diff --git a/chrome/updater/win/test/test_executables.cc b/chrome/updater/win/test/test_executables.cc
index dc8d458..a3f5004d 100644
--- a/chrome/updater/win/test/test_executables.cc
+++ b/chrome/updater/win/test/test_executables.cc
@@ -53,7 +53,7 @@
   launch_options.handles_to_inherit.push_back(init_done_event->handle());
   base::Process result = base::LaunchProcess(command_line, launch_options);
 
-  if (!init_done_event->TimedWait(base::TimeDelta::FromSeconds(10))) {
+  if (!init_done_event->TimedWait(base::Seconds(10))) {
     LOG(ERROR) << "Process did not signal";
     result.Terminate(/*exit_code=*/1, /*wait=*/false);
     return base::Process();
diff --git a/chrome/updater/win/test/test_initializer.cc b/chrome/updater/win/test/test_initializer.cc
index a138ee1..663a618 100644
--- a/chrome/updater/win/test/test_initializer.cc
+++ b/chrome/updater/win/test/test_initializer.cc
@@ -51,7 +51,7 @@
   // it's ready using the same event before continuing. If the test takes
   // longer than that stop waiting to prevent hangs.
   if (notifier_event)
-    notifier_event->TimedWait(base::TimeDelta::FromSeconds(5));
+    notifier_event->TimedWait(base::Seconds(5));
 }
 
 }  // namespace updater
diff --git a/chrome/updater/win/test/test_process_main.cc b/chrome/updater/win/test/test_process_main.cc
index 1d7aa907..76a7bd2 100644
--- a/chrome/updater/win/test/test_process_main.cc
+++ b/chrome/updater/win/test/test_process_main.cc
@@ -28,7 +28,7 @@
     int sleep_minutes = 0;
     if (base::StringToInt(value, &sleep_minutes) && sleep_minutes > 0) {
       VLOG(1) << "Process is sleeping for " << sleep_minutes << " minutes";
-      ::Sleep(base::TimeDelta::FromMinutes(sleep_minutes).InMilliseconds());
+      ::Sleep(base::Minutes(sleep_minutes).InMilliseconds());
     } else {
       LOG(ERROR) << "Invalid sleep delay value " << value;
     }
diff --git a/chrome/utility/safe_browsing/mac/dmg_analyzer.cc b/chrome/utility/safe_browsing/mac/dmg_analyzer.cc
index e1811bf..cc57dce 100644
--- a/chrome/utility/safe_browsing/mac/dmg_analyzer.cc
+++ b/chrome/utility/safe_browsing/mac/dmg_analyzer.cc
@@ -155,7 +155,7 @@
     if (!stream)
       continue;
     if (base::Time::Now() - start_time >=
-        base::TimeDelta::FromMilliseconds(kDmgAnalysisTimeoutMs)) {
+        base::Milliseconds(kDmgAnalysisTimeoutMs)) {
       timeout = true;
       break;
     }
diff --git a/chromecast/base/alarm_manager.cc b/chromecast/base/alarm_manager.cc
index 0168cd8..08ac47a 100644
--- a/chromecast/base/alarm_manager.cc
+++ b/chromecast/base/alarm_manager.cc
@@ -58,8 +58,7 @@
   DCHECK(clock_);
   DCHECK(task_runner_);
   clock_tick_timer_.SetTaskRunner(task_runner_);
-  base::TimeDelta polling_frequency =
-      base::TimeDelta::FromSeconds(kClockPollInterval);
+  base::TimeDelta polling_frequency = base::Seconds(kClockPollInterval);
   clock_tick_timer_.Start(FROM_HERE, polling_frequency,
                           base::BindRepeating(&AlarmManager::CheckAlarm,
                                               weak_factory_.GetWeakPtr()));
diff --git a/chromecast/base/alarm_manager_unittest.cc b/chromecast/base/alarm_manager_unittest.cc
index 5c36d71b..653b82e 100644
--- a/chromecast/base/alarm_manager_unittest.cc
+++ b/chromecast/base/alarm_manager_unittest.cc
@@ -46,12 +46,12 @@
   std::unique_ptr<AlarmManager> manager = std::make_unique<AlarmManager>(
       clock, base::ThreadTaskRunnerHandle::Get());
 
-  base::Time alarm_time = now + base::TimeDelta::FromMinutes(10);
+  base::Time alarm_time = now + base::Minutes(10);
   std::unique_ptr<AlarmHandle> handle(manager->PostAlarmTask(
       base::BindOnce(&WallClockDependantTask::OnAlarmFire, task.GetWeakPtr()),
       alarm_time));
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(9));
-  clock->Advance(base::TimeDelta::FromMinutes(9));
+  task_environment_.FastForwardBy(base::Minutes(9));
+  clock->Advance(base::Minutes(9));
   task_environment_.RunUntilIdle();
   ASSERT_FALSE(task.fired_);
 }
@@ -70,19 +70,19 @@
       clock, base::ThreadTaskRunnerHandle::Get());
 
   // Add an alarm.
-  base::Time alarm_time = now + base::TimeDelta::FromMinutes(10);
+  base::Time alarm_time = now + base::Minutes(10);
   std::unique_ptr<AlarmHandle> handle(manager->PostAlarmTask(
       base::BindOnce(&WallClockDependantTask::OnAlarmFire, task.GetWeakPtr()),
       alarm_time));
-  clock->Advance(base::TimeDelta::FromMinutes(10));
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(10));
+  clock->Advance(base::Minutes(10));
+  task_environment_.FastForwardBy(base::Minutes(10));
   task_environment_.RunUntilIdle();
   ASSERT_TRUE(task.fired_);
 
   // Fires only once.
   task.fired_ = false;
-  clock->Advance(base::TimeDelta::FromMinutes(10));
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(10));
+  clock->Advance(base::Minutes(10));
+  task_environment_.FastForwardBy(base::Minutes(10));
   task_environment_.RunUntilIdle();
   ASSERT_FALSE(task.fired_);
 }
@@ -100,11 +100,11 @@
       test_clock.get(), base::ThreadTaskRunnerHandle::Get());
 
   // Add an alarm in the past. Should fire right away.
-  base::Time alarm_time = base::Time::Now() - base::TimeDelta::FromMinutes(10);
+  base::Time alarm_time = base::Time::Now() - base::Minutes(10);
   std::unique_ptr<AlarmHandle> handle(manager->PostAlarmTask(
       base::BindOnce(&WallClockDependantTask::OnAlarmFire, task.GetWeakPtr()),
       alarm_time));
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
   task_environment_.RunUntilIdle();
   ASSERT_TRUE(task.fired_);
 }
@@ -123,12 +123,12 @@
       clock, base::ThreadTaskRunnerHandle::Get());
 
   // Add an alarm. The time jumps to the future.
-  base::Time alarm_time = now + base::TimeDelta::FromMinutes(10);
+  base::Time alarm_time = now + base::Minutes(10);
   std::unique_ptr<AlarmHandle> handle(manager->PostAlarmTask(
       base::BindOnce(&WallClockDependantTask::OnAlarmFire, task.GetWeakPtr()),
       alarm_time));
-  clock->Advance(base::TimeDelta::FromMinutes(10));
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  clock->Advance(base::Minutes(10));
+  task_environment_.FastForwardBy(base::Minutes(1));
   task_environment_.RunUntilIdle();
   ASSERT_TRUE(task.fired_);
 }
@@ -147,12 +147,12 @@
       clock, base::ThreadTaskRunnerHandle::Get());
 
   // Add an alarm. The time jumps far into the future.
-  base::Time alarm_time = now + base::TimeDelta::FromMinutes(10);
+  base::Time alarm_time = now + base::Minutes(10);
   std::unique_ptr<AlarmHandle> handle(manager->PostAlarmTask(
       base::BindOnce(&WallClockDependantTask::OnAlarmFire, task.GetWeakPtr()),
       alarm_time));
-  clock->Advance(base::TimeDelta::FromMinutes(60));
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  clock->Advance(base::Minutes(60));
+  task_environment_.FastForwardBy(base::Minutes(1));
   task_environment_.RunUntilIdle();
   ASSERT_TRUE(task.fired_);
 }
@@ -173,20 +173,20 @@
       clock, base::ThreadTaskRunnerHandle::Get());
 
   // Add first task.
-  base::Time alarm_time = now + base::TimeDelta::FromMinutes(10);
+  base::Time alarm_time = now + base::Minutes(10);
   std::unique_ptr<AlarmHandle> handle1(manager->PostAlarmTask(
       base::BindOnce(&WallClockDependantTask::OnAlarmFire, task1.GetWeakPtr()),
       alarm_time));
 
   // Add second task.
-  alarm_time = now + base::TimeDelta::FromMinutes(12);
+  alarm_time = now + base::Minutes(12);
   std::unique_ptr<AlarmHandle> handle2(manager->PostAlarmTask(
       base::BindOnce(&WallClockDependantTask::OnAlarmFire, task2.GetWeakPtr()),
       alarm_time));
 
   // First task should fire.
-  clock->Advance(base::TimeDelta::FromMinutes(10));
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  clock->Advance(base::Minutes(10));
+  task_environment_.FastForwardBy(base::Minutes(1));
   task_environment_.RunUntilIdle();
   ASSERT_TRUE(task1.fired_);
   ASSERT_FALSE(task2.fired_);
@@ -196,8 +196,8 @@
   task2.fired_ = false;
 
   // Second task should fire.
-  clock->Advance(base::TimeDelta::FromMinutes(2));
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  clock->Advance(base::Minutes(2));
+  task_environment_.FastForwardBy(base::Minutes(1));
   task_environment_.RunUntilIdle();
   ASSERT_FALSE(task1.fired_);
   ASSERT_TRUE(task2.fired_);
@@ -219,20 +219,20 @@
       clock, base::ThreadTaskRunnerHandle::Get());
 
   // Add first task.
-  base::Time alarm_time = now + base::TimeDelta::FromMinutes(12);
+  base::Time alarm_time = now + base::Minutes(12);
   std::unique_ptr<AlarmHandle> handle1(manager->PostAlarmTask(
       base::BindOnce(&WallClockDependantTask::OnAlarmFire, task1.GetWeakPtr()),
       alarm_time));
 
   // Add second task.
-  alarm_time = now + base::TimeDelta::FromMinutes(10);
+  alarm_time = now + base::Minutes(10);
   std::unique_ptr<AlarmHandle> handle2(manager->PostAlarmTask(
       base::BindOnce(&WallClockDependantTask::OnAlarmFire, task2.GetWeakPtr()),
       alarm_time));
 
   // Second task should fire.
-  clock->Advance(base::TimeDelta::FromMinutes(10));
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  clock->Advance(base::Minutes(10));
+  task_environment_.FastForwardBy(base::Minutes(1));
   task_environment_.RunUntilIdle();
   ASSERT_FALSE(task1.fired_);
   ASSERT_TRUE(task2.fired_);
@@ -242,8 +242,8 @@
   task2.fired_ = false;
 
   // First task should fire.
-  clock->Advance(base::TimeDelta::FromMinutes(2));
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  clock->Advance(base::Minutes(2));
+  task_environment_.FastForwardBy(base::Minutes(1));
   task_environment_.RunUntilIdle();
   ASSERT_TRUE(task1.fired_);
   ASSERT_FALSE(task2.fired_);
@@ -267,26 +267,26 @@
       clock, base::ThreadTaskRunnerHandle::Get());
 
   // Add first task.
-  base::Time alarm_time = now + base::TimeDelta::FromMinutes(12);
+  base::Time alarm_time = now + base::Minutes(12);
   std::unique_ptr<AlarmHandle> handle1(manager->PostAlarmTask(
       base::BindOnce(&WallClockDependantTask::OnAlarmFire, task1.GetWeakPtr()),
       alarm_time));
 
   // Add second task.
-  alarm_time = now + base::TimeDelta::FromMinutes(16);
+  alarm_time = now + base::Minutes(16);
   std::unique_ptr<AlarmHandle> handle2(manager->PostAlarmTask(
       base::BindOnce(&WallClockDependantTask::OnAlarmFire, task2.GetWeakPtr()),
       alarm_time));
 
   // Add third task.
-  alarm_time = now + base::TimeDelta::FromMinutes(12);
+  alarm_time = now + base::Minutes(12);
   std::unique_ptr<AlarmHandle> handle3(manager->PostAlarmTask(
       base::BindOnce(&WallClockDependantTask::OnAlarmFire, task3.GetWeakPtr()),
       alarm_time));
 
   // First and third task should fire.
-  clock->Advance(base::TimeDelta::FromMinutes(12));
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  clock->Advance(base::Minutes(12));
+  task_environment_.FastForwardBy(base::Minutes(1));
   task_environment_.RunUntilIdle();
   ASSERT_TRUE(task1.fired_);
   ASSERT_FALSE(task2.fired_);
@@ -311,33 +311,33 @@
       clock, base::ThreadTaskRunnerHandle::Get());
 
   // Add first task.
-  base::Time alarm_time = now + base::TimeDelta::FromMinutes(15);
+  base::Time alarm_time = now + base::Minutes(15);
   std::unique_ptr<AlarmHandle> handle1(manager->PostAlarmTask(
       base::BindOnce(&WallClockDependantTask::OnAlarmFire, task1.GetWeakPtr()),
       alarm_time));
 
   // Add second task.
-  alarm_time = now + base::TimeDelta::FromMinutes(16);
+  alarm_time = now + base::Minutes(16);
   std::unique_ptr<AlarmHandle> handle2(manager->PostAlarmTask(
       base::BindOnce(&WallClockDependantTask::OnAlarmFire, task2.GetWeakPtr()),
       alarm_time));
 
   // Add third task.
-  alarm_time = now + base::TimeDelta::FromMinutes(11);
+  alarm_time = now + base::Minutes(11);
   std::unique_ptr<AlarmHandle> handle3(manager->PostAlarmTask(
       base::BindOnce(&WallClockDependantTask::OnAlarmFire, task3.GetWeakPtr()),
       alarm_time));
 
   // Third task should fire.
-  clock->Advance(base::TimeDelta::FromMinutes(12));
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  clock->Advance(base::Minutes(12));
+  task_environment_.FastForwardBy(base::Minutes(1));
   task_environment_.RunUntilIdle();
   ASSERT_FALSE(task1.fired_);
   ASSERT_FALSE(task2.fired_);
   ASSERT_TRUE(task3.fired_);
 
-  clock->Advance(base::TimeDelta::FromMinutes(3));
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  clock->Advance(base::Minutes(3));
+  task_environment_.FastForwardBy(base::Minutes(1));
   task_environment_.RunUntilIdle();
   ASSERT_TRUE(task1.fired_);
   ASSERT_FALSE(task2.fired_);
@@ -360,26 +360,26 @@
       clock, base::ThreadTaskRunnerHandle::Get());
 
   // Add first task.
-  base::Time alarm_time = now + base::TimeDelta::FromMinutes(15);
+  base::Time alarm_time = now + base::Minutes(15);
   std::unique_ptr<AlarmHandle> handle1(manager->PostAlarmTask(
       base::BindOnce(&WallClockDependantTask::OnAlarmFire, task1.GetWeakPtr()),
       alarm_time));
 
   // Add it again with less time.
-  alarm_time = now + base::TimeDelta::FromMinutes(1);
+  alarm_time = now + base::Minutes(1);
   std::unique_ptr<AlarmHandle> handle2(manager->PostAlarmTask(
       base::BindOnce(&WallClockDependantTask::OnAlarmFire, task1.GetWeakPtr()),
       alarm_time));
 
   // Add second task.
-  alarm_time = now + base::TimeDelta::FromMinutes(16);
+  alarm_time = now + base::Minutes(16);
   std::unique_ptr<AlarmHandle> handle3(manager->PostAlarmTask(
       base::BindOnce(&WallClockDependantTask::OnAlarmFire, task2.GetWeakPtr()),
       alarm_time));
 
   // First task should fire.
-  clock->Advance(base::TimeDelta::FromMinutes(1));
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  clock->Advance(base::Minutes(1));
+  task_environment_.FastForwardBy(base::Minutes(1));
   task_environment_.RunUntilIdle();
   ASSERT_TRUE(task1.fired_);
   ASSERT_FALSE(task2.fired_);
@@ -388,8 +388,8 @@
   task2.fired_ = false;
 
   // First task should fire again because it was added twice.
-  clock->Advance(base::TimeDelta::FromMinutes(14));
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  clock->Advance(base::Minutes(14));
+  task_environment_.FastForwardBy(base::Minutes(1));
   task_environment_.RunUntilIdle();
   ASSERT_TRUE(task1.fired_);
   ASSERT_FALSE(task2.fired_);
@@ -416,19 +416,19 @@
       clock, base::ThreadTaskRunnerHandle::Get());
 
   // Add first task.
-  base::Time alarm_time = now + base::TimeDelta::FromMinutes(12);
+  base::Time alarm_time = now + base::Minutes(12);
   std::unique_ptr<AlarmHandle> handle1(manager->PostAlarmTask(
       base::BindOnce(&WallClockDependantTask::OnAlarmFire, task1->GetWeakPtr()),
       alarm_time));
 
   // Add second task.
-  alarm_time = now + base::TimeDelta::FromMinutes(16);
+  alarm_time = now + base::Minutes(16);
   std::unique_ptr<AlarmHandle> handle2(manager->PostAlarmTask(
       base::BindOnce(&WallClockDependantTask::OnAlarmFire, task2->GetWeakPtr()),
       alarm_time));
 
   // Add third task.
-  alarm_time = now + base::TimeDelta::FromMinutes(12);
+  alarm_time = now + base::Minutes(12);
   std::unique_ptr<AlarmHandle> handle3(manager->PostAlarmTask(
       base::BindOnce(&WallClockDependantTask::OnAlarmFire, task3->GetWeakPtr()),
       alarm_time));
@@ -437,8 +437,8 @@
   task1.reset(nullptr);
 
   // Third task should fire.
-  clock->Advance(base::TimeDelta::FromMinutes(15));
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  clock->Advance(base::Minutes(15));
+  task_environment_.FastForwardBy(base::Minutes(1));
   task_environment_.RunUntilIdle();
   ASSERT_FALSE(task2->fired_);
   ASSERT_TRUE(task3->fired_);
@@ -465,19 +465,19 @@
       clock, base::ThreadTaskRunnerHandle::Get());
 
   // Add first task.
-  base::Time alarm_time = now + base::TimeDelta::FromMinutes(12);
+  base::Time alarm_time = now + base::Minutes(12);
   std::unique_ptr<AlarmHandle> handle1(manager->PostAlarmTask(
       base::BindOnce(&WallClockDependantTask::OnAlarmFire, task1->GetWeakPtr()),
       alarm_time));
 
   // Add second task.
-  alarm_time = now + base::TimeDelta::FromMinutes(16);
+  alarm_time = now + base::Minutes(16);
   std::unique_ptr<AlarmHandle> handle2(manager->PostAlarmTask(
       base::BindOnce(&WallClockDependantTask::OnAlarmFire, task2->GetWeakPtr()),
       alarm_time));
 
   // Add third task.
-  alarm_time = now + base::TimeDelta::FromMinutes(12);
+  alarm_time = now + base::Minutes(12);
   std::unique_ptr<AlarmHandle> handle3(manager->PostAlarmTask(
       base::BindOnce(&WallClockDependantTask::OnAlarmFire, task3->GetWeakPtr()),
       alarm_time));
@@ -486,8 +486,8 @@
   handle1.reset();
 
   // Third task should fire.
-  clock->Advance(base::TimeDelta::FromMinutes(15));
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  clock->Advance(base::Minutes(15));
+  task_environment_.FastForwardBy(base::Minutes(1));
   task_environment_.RunUntilIdle();
   ASSERT_FALSE(task1->fired_);
   ASSERT_FALSE(task2->fired_);
diff --git a/chromecast/base/metrics/cast_metrics_helper.cc b/chromecast/base/metrics/cast_metrics_helper.cc
index 9b21ea6..bc7d8962 100644
--- a/chromecast/base/metrics/cast_metrics_helper.cc
+++ b/chromecast/base/metrics/cast_metrics_helper.cc
@@ -36,7 +36,7 @@
 
 const char kMetricsNameAppInfoDelimiter = '#';
 
-constexpr base::TimeDelta kAppLoadTimeout = base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kAppLoadTimeout = base::Minutes(5);
 
 }  // namespace
 
@@ -206,12 +206,8 @@
   // Histogram from 250ms to 30s with 50 buckets.
   // The ratio between 2 consecutive buckets is:
   // exp( (ln(30000) - ln(250)) / 50 ) = 1.1
-  LogTimeHistogramEvent(
-      uma_name,
-      time,
-      base::TimeDelta::FromMilliseconds(250),
-      base::TimeDelta::FromMilliseconds(30000),
-      50);
+  LogTimeHistogramEvent(uma_name, time, base::Milliseconds(250),
+                        base::Milliseconds(30000), 50);
 }
 
 std::string CastMetricsHelper::GetMetricsNameWithAppName(
@@ -285,9 +281,7 @@
 void CastMetricsHelper::LogMediumTimeHistogramEvent(const std::string& name,
                                                     base::TimeDelta value) {
   // Follow UMA_HISTOGRAM_MEDIUM_TIMES definition.
-  LogTimeHistogramEvent(name, value,
-                        base::TimeDelta::FromMilliseconds(10),
-                        base::TimeDelta::FromMinutes(3),
+  LogTimeHistogramEvent(name, value, base::Milliseconds(10), base::Minutes(3),
                         50);
 }
 
diff --git a/chromecast/base/metrics/cast_metrics_helper_unittest.cc b/chromecast/base/metrics/cast_metrics_helper_unittest.cc
index 8e846c7..05ef2ec 100644
--- a/chromecast/base/metrics/cast_metrics_helper_unittest.cc
+++ b/chromecast/base/metrics/cast_metrics_helper_unittest.cc
@@ -33,7 +33,7 @@
 constexpr char kSessionId3[] = "SESSION_ID_3";
 constexpr int kValue = 123;
 
-constexpr base::TimeDelta kAppLoadTimeout = base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kAppLoadTimeout = base::Minutes(5);
 
 MATCHER_P2(HasDouble, key, value, "") {
   auto v = base::JSONReader::ReadDeprecated(arg);
@@ -134,7 +134,7 @@
   metrics_helper_.DidStartLoad(kAppId1);
   metrics_helper_.DidCompleteLoad(kAppId1, kSessionId1);
 
-  constexpr base::TimeDelta kTimeToFirstPaint = base::TimeDelta::FromSeconds(5);
+  constexpr base::TimeDelta kTimeToFirstPaint = base::Seconds(5);
   task_environment_.FastForwardBy(kTimeToFirstPaint);
 
   EXPECT_CALL(metrics_sink_, OnTimeEvent(AllOf(HasSubstr(kAppId1),
@@ -147,7 +147,7 @@
   metrics_helper_.DidStartLoad(kAppId1);
   metrics_helper_.DidCompleteLoad(kAppId1, kSessionId1);
 
-  constexpr base::TimeDelta kTimeToFirstAudio = base::TimeDelta::FromSeconds(5);
+  constexpr base::TimeDelta kTimeToFirstAudio = base::Seconds(5);
   task_environment_.FastForwardBy(kTimeToFirstAudio);
 
   EXPECT_CALL(metrics_sink_, OnTimeEvent(AllOf(HasSubstr(kAppId1),
diff --git a/chromecast/base/system_time_change_notifier.cc b/chromecast/base/system_time_change_notifier.cc
index 49d64ad..ae8f3a4 100644
--- a/chromecast/base/system_time_change_notifier.cc
+++ b/chromecast/base/system_time_change_notifier.cc
@@ -53,19 +53,18 @@
     base::Time now) {
   // ScheduleNextMonitor() will adjust actual expected_system_time.
   expected_system_time_ = now;
-  monitoring_limit_time_1sec_ =
-      now + base::TimeDelta::FromSeconds(kLimitForMonitorPer1Sec);
+  monitoring_limit_time_1sec_ = now + base::Seconds(kLimitForMonitorPer1Sec);
   monitoring_limit_time_10sec_ =
-      monitoring_limit_time_1sec_ +
-      base::TimeDelta::FromSeconds(kLimitForMonitorPer10Sec);
+      monitoring_limit_time_1sec_ + base::Seconds(kLimitForMonitorPer10Sec);
 }
 
 void SystemTimeChangeNotifierPeriodicMonitor::ScheduleNextMonitor(
     base::Time now) {
   base::TimeDelta next_checking_interval =
-      now <= monitoring_limit_time_1sec_ ? base::TimeDelta::FromSeconds(1) :
-      now <= monitoring_limit_time_10sec_ ? base::TimeDelta::FromSeconds(10) :
-      base::TimeDelta::FromMinutes(10);
+      now <= monitoring_limit_time_1sec_
+          ? base::Seconds(1)
+          : now <= monitoring_limit_time_10sec_ ? base::Seconds(10)
+                                                : base::Minutes(10);
   // Adjusting expected_system_time based on now cannot detect continuous system
   // time drift (false negative), but tolerates task delay (false positive).
   // Task delay is expected more than system time drift.
@@ -79,7 +78,7 @@
 
 void SystemTimeChangeNotifierPeriodicMonitor::CheckSystemTime() {
   base::Time now = Now();
-  const base::TimeDelta kInterval10Seconds(base::TimeDelta::FromSeconds(10));
+  const base::TimeDelta kInterval10Seconds(base::Seconds(10));
   if (now < expected_system_time_ - kInterval10Seconds ||
       now > expected_system_time_ + kInterval10Seconds) {  // Time changed!
     ResetTimeAndLimits(now);
diff --git a/chromecast/base/system_time_change_notifier_unittest.cc b/chromecast/base/system_time_change_notifier_unittest.cc
index 55a6dcb..b6bbfe3 100644
--- a/chromecast/base/system_time_change_notifier_unittest.cc
+++ b/chromecast/base/system_time_change_notifier_unittest.cc
@@ -104,7 +104,7 @@
   EXPECT_EQ(0, observer_->num_time_changed());
 
   // Time change NOT detected.
-  notifier_->set_fake_now_for_testing(now + base::TimeDelta::FromSeconds(4));
+  notifier_->set_fake_now_for_testing(now + base::Seconds(4));
   RunPendingTasks();
   EXPECT_EQ(0, observer_->num_time_changed());
   RunPendingTasks();
@@ -116,7 +116,7 @@
   EXPECT_EQ(0, observer_->num_time_changed());
 
   // Time change NOT detected.
-  notifier_->set_fake_now_for_testing(now - base::TimeDelta::FromSeconds(4));
+  notifier_->set_fake_now_for_testing(now - base::Seconds(4));
   RunPendingTasks();
   EXPECT_EQ(0, observer_->num_time_changed());
   RunPendingTasks();
@@ -127,7 +127,7 @@
   base::Time now = base::Time::Now();
   EXPECT_EQ(0, observer_->num_time_changed());
 
-  notifier_->set_fake_now_for_testing(now + base::TimeDelta::FromSeconds(40));
+  notifier_->set_fake_now_for_testing(now + base::Seconds(40));
   RunPendingTasks();
   // Still 0 since observe callback is running in next run loop.
   EXPECT_EQ(0, observer_->num_time_changed());
@@ -140,7 +140,7 @@
   base::Time now = base::Time::Now();
   EXPECT_EQ(0, observer_->num_time_changed());
 
-  notifier_->set_fake_now_for_testing(now - base::TimeDelta::FromSeconds(40));
+  notifier_->set_fake_now_for_testing(now - base::Seconds(40));
   RunPendingTasks();
   // Still 0 since observe callback is running in next run loop.
   EXPECT_EQ(0, observer_->num_time_changed());
@@ -154,27 +154,27 @@
   EXPECT_EQ(0, observer_->num_time_changed());
 
   // Time change NOT detected. Expected = now + 1, actual = now + 4.
-  notifier_->set_fake_now_for_testing(now + base::TimeDelta::FromSeconds(4));
+  notifier_->set_fake_now_for_testing(now + base::Seconds(4));
   RunPendingTasks();
   EXPECT_EQ(0, observer_->num_time_changed());
 
   // Time change NOT detected. Expected = now + 4 + 1, actual = now + 8.
-  notifier_->set_fake_now_for_testing(now + base::TimeDelta::FromSeconds(8));
+  notifier_->set_fake_now_for_testing(now + base::Seconds(8));
   RunPendingTasks();
   EXPECT_EQ(0, observer_->num_time_changed());
 
   // Time change NOT detected. Expected = now + 8 + 1, actual = now + 12.
-  notifier_->set_fake_now_for_testing(now + base::TimeDelta::FromSeconds(12));
+  notifier_->set_fake_now_for_testing(now + base::Seconds(12));
   RunPendingTasks();
   EXPECT_EQ(0, observer_->num_time_changed());
 
   // Time change detected. Expected = now + 12 + 1, actual = now + 16.
-  notifier_->set_fake_now_for_testing(now + base::TimeDelta::FromSeconds(16));
+  notifier_->set_fake_now_for_testing(now + base::Seconds(16));
   RunPendingTasks();
   EXPECT_EQ(0, observer_->num_time_changed());
 
   // Time change detected. Expected = now + 16 + 1, actual = now + 20.
-  notifier_->set_fake_now_for_testing(now + base::TimeDelta::FromSeconds(20));
+  notifier_->set_fake_now_for_testing(now + base::Seconds(20));
   RunPendingTasks();
   EXPECT_EQ(0, observer_->num_time_changed());
 }
@@ -184,27 +184,27 @@
   EXPECT_EQ(0, observer_->num_time_changed());
 
   // Time change NOT detected. Expected = now + 1, actual = now - 4.
-  notifier_->set_fake_now_for_testing(now - base::TimeDelta::FromSeconds(4));
+  notifier_->set_fake_now_for_testing(now - base::Seconds(4));
   RunPendingTasks();
   EXPECT_EQ(0, observer_->num_time_changed());
 
   // Time change NOT detected. Expected = now - 4 + 1, actual = now - 8.
-  notifier_->set_fake_now_for_testing(now - base::TimeDelta::FromSeconds(8));
+  notifier_->set_fake_now_for_testing(now - base::Seconds(8));
   RunPendingTasks();
   EXPECT_EQ(0, observer_->num_time_changed());
 
   // Time change detected. Expected = now - 8 + 1, actual = now - 12.
-  notifier_->set_fake_now_for_testing(now - base::TimeDelta::FromSeconds(12));
+  notifier_->set_fake_now_for_testing(now - base::Seconds(12));
   RunPendingTasks();
   EXPECT_EQ(0, observer_->num_time_changed());
 
   // Time change detected. Expected = now - 12 + 1, actual = now - 16.
-  notifier_->set_fake_now_for_testing(now - base::TimeDelta::FromSeconds(16));
+  notifier_->set_fake_now_for_testing(now - base::Seconds(16));
   RunPendingTasks();
   EXPECT_EQ(0, observer_->num_time_changed());
 
   // Time change detected. Expected = now - 20 + 1, actual = now - 20.
-  notifier_->set_fake_now_for_testing(now - base::TimeDelta::FromSeconds(20));
+  notifier_->set_fake_now_for_testing(now - base::Seconds(20));
   RunPendingTasks();
   EXPECT_EQ(0, observer_->num_time_changed());
 }
diff --git a/chromecast/base/task_runner_impl.cc b/chromecast/base/task_runner_impl.cc
index e718460..db9f385 100644
--- a/chromecast/base/task_runner_impl.cc
+++ b/chromecast/base/task_runner_impl.cc
@@ -26,9 +26,9 @@
   DCHECK(task);
   // TODO(halliwell): FROM_HERE is misleading, we should consider a macro for
   // vendor backends to send the callsite info.
-  return runner_->PostDelayedTask(
-      FROM_HERE, base::BindOnce(&Task::Run, base::Owned(task)),
-      base::TimeDelta::FromMilliseconds(delay_milliseconds));
+  return runner_->PostDelayedTask(FROM_HERE,
+                                  base::BindOnce(&Task::Run, base::Owned(task)),
+                                  base::Milliseconds(delay_milliseconds));
 }
 
 }  // namespace chromecast
diff --git a/chromecast/base/thread_health_checker_unittest.cc b/chromecast/base/thread_health_checker_unittest.cc
index b2f8438..522c0176 100644
--- a/chromecast/base/thread_health_checker_unittest.cc
+++ b/chromecast/base/thread_health_checker_unittest.cc
@@ -13,8 +13,8 @@
 namespace chromecast {
 
 namespace {
-const base::TimeDelta kInterval = base::TimeDelta::FromSeconds(3);
-const base::TimeDelta kTimeout = base::TimeDelta::FromSeconds(2);
+const base::TimeDelta kInterval = base::Seconds(3);
+const base::TimeDelta kTimeout = base::Seconds(2);
 }  // namespace
 
 class ThreadHealthCheckerTest : public ::testing::Test {
@@ -40,7 +40,7 @@
 TEST_F(ThreadHealthCheckerTest, FiresTimeoutWhenTaskRunnerDoesNotFlush) {
   CREATE_THREAD_HEALTH_CHECKER(thc);
   // Do not flush the patient, so that the health check sentinel task won't run.
-  doctor_->FastForwardBy(base::TimeDelta::FromSeconds(6));
+  doctor_->FastForwardBy(base::Seconds(6));
   EXPECT_TRUE(event_.IsSignaled());
 }
 
@@ -48,12 +48,12 @@
   CREATE_THREAD_HEALTH_CHECKER(thc);
   // Advance the doctor by enough time to post the health check, but not to time
   // out.
-  doctor_->FastForwardBy(base::TimeDelta::FromSeconds(4));
+  doctor_->FastForwardBy(base::Seconds(4));
   // Advance the patient to let the sentinel task run.
-  patient_->FastForwardBy(base::TimeDelta::FromSeconds(4));
+  patient_->FastForwardBy(base::Seconds(4));
   // Advance the doctor by enough time such that the sentinel not running would
   // cause the failure callback to run.
-  doctor_->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  doctor_->FastForwardBy(base::Seconds(2));
   EXPECT_FALSE(event_.IsSignaled());
 }
 
@@ -61,8 +61,8 @@
   CREATE_THREAD_HEALTH_CHECKER(thc);
   // Advance the doctor before the patient, to simulate a task in the patient
   // that takes too long.
-  doctor_->FastForwardBy(base::TimeDelta::FromSeconds(6));
-  patient_->FastForwardBy(base::TimeDelta::FromSeconds(6));
+  doctor_->FastForwardBy(base::Seconds(6));
+  patient_->FastForwardBy(base::Seconds(6));
   // Flush the task runner so the health check sentinel task is run.
   EXPECT_TRUE(event_.IsSignaled());
 }
@@ -70,14 +70,14 @@
 TEST_F(ThreadHealthCheckerTest, FiresTimeoutOnLaterIteration) {
   CREATE_THREAD_HEALTH_CHECKER(thc);
   // Advance the doctor enough to start the check.
-  doctor_->FastForwardBy(base::TimeDelta::FromSeconds(4));
+  doctor_->FastForwardBy(base::Seconds(4));
   // Advance the patient enough to run the task.
-  patient_->FastForwardBy(base::TimeDelta::FromSeconds(4));
+  patient_->FastForwardBy(base::Seconds(4));
   // Advance the doctor enough to start the check again.
-  doctor_->FastForwardBy(base::TimeDelta::FromSeconds(4));
+  doctor_->FastForwardBy(base::Seconds(4));
   EXPECT_FALSE(event_.IsSignaled());
   // Advance the doctor enough for the timeout from the second check to fire.
-  doctor_->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  doctor_->FastForwardBy(base::Seconds(2));
   EXPECT_TRUE(event_.IsSignaled());
 }
 
@@ -93,13 +93,13 @@
   {
     CREATE_THREAD_HEALTH_CHECKER(thc);
     // Fast forward by enough time to have scheduled a health check.
-    doctor_->FastForwardBy(base::TimeDelta::FromSeconds(4));
+    doctor_->FastForwardBy(base::Seconds(4));
     EXPECT_FALSE(event_.IsSignaled());
   }
   // Fast forward by enough time for the health check to have executed.
   // However, we want all pending events to be dropped after the destructor is
   // called, so the event should not be signalled.
-  doctor_->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  doctor_->FastForwardBy(base::Seconds(2));
   EXPECT_FALSE(event_.IsSignaled());
 }
 
diff --git a/chromecast/browser/accessibility/touch_exploration_controller_unittest.cc b/chromecast/browser/accessibility/touch_exploration_controller_unittest.cc
index 17d90db..67e7c95e 100644
--- a/chromecast/browser/accessibility/touch_exploration_controller_unittest.cc
+++ b/chromecast/browser/accessibility/touch_exploration_controller_unittest.cc
@@ -244,7 +244,7 @@
     generator_.reset(new ui::test::EventGenerator(root_window()));
 
     // Tests fail if time is ever 0.
-    simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(10));
+    simulated_clock_.Advance(base::Milliseconds(10));
     // ui takes ownership of the tick clock.
     ui::SetEventTickClockForTesting(&simulated_clock_);
 
@@ -311,12 +311,12 @@
 
   void AdvanceSimulatedTimePastTapDelay() {
     simulated_clock_.Advance(gesture_detector_config_.double_tap_timeout);
-    simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(1));
+    simulated_clock_.Advance(base::Milliseconds(1));
     touch_exploration_controller_->CallTapTimerNowForTesting();
   }
 
   void AdvanceSimulatedTimePastPotentialTapDelay() {
-    simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(1000));
+    simulated_clock_.Advance(base::Milliseconds(1000));
     touch_exploration_controller_->CallTapTimerNowIfRunningForTesting();
   }
 
@@ -640,7 +640,7 @@
 
   // Send a press, then add another finger after the double-tap timeout.
   generator_->PressTouchId(1);
-  simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(1000));
+  simulated_clock_.Advance(base::Milliseconds(1000));
   generator_->PressTouchId(2);
   std::vector<ui::LocatedEvent*> events =
       GetCapturedLocatedEventsOfType(ui::ET_MOUSE_MOVED);
@@ -670,7 +670,7 @@
   // timer fires.
   gfx::Point location1(233, 234);
   generator_->set_current_screen_location(location1);
-  simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(301));
+  simulated_clock_.Advance(base::Milliseconds(301));
   generator_->PressTouch();
   generator_->ReleaseTouch();
   AdvanceSimulatedTimePastTapDelay();
@@ -758,9 +758,9 @@
   generator_->PressTouch();
   generator_->ReleaseTouch();
   simulated_clock_.Advance(gesture_detector_config_.double_tap_timeout -
-                           base::TimeDelta::FromMilliseconds(25));
+                           base::Milliseconds(25));
   generator_->PressTouch();
-  simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(50));
+  simulated_clock_.Advance(base::Milliseconds(50));
   generator_->ReleaseTouch();
 
   std::vector<ui::LocatedEvent*> captured_events = GetCapturedLocatedEvents();
@@ -970,7 +970,7 @@
   // tapping again.
   gfx::Point final_location(133, 134);
   generator_->set_current_screen_location(final_location);
-  simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(250));
+  simulated_clock_.Advance(base::Milliseconds(250));
   generator_->PressTouch();
   generator_->ReleaseTouch();
 
@@ -1246,13 +1246,13 @@
   gfx::Point touch_exploration_location(120, 121);
 
   generator_->Dispatch(&first_press);
-  simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(10));
+  simulated_clock_.Advance(base::Milliseconds(10));
   // Since we are not out of the touch slop yet, we should not be in gesture in
   // progress.
   generator_->MoveTouch(second_location);
   EXPECT_FALSE(IsInTouchToMouseMode());
   EXPECT_FALSE(IsInGestureInProgressState());
-  simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(10));
+  simulated_clock_.Advance(base::Milliseconds(10));
 
   // Once we are out of slop, we should be in GestureInProgress.
   generator_->MoveTouch(third_location);
@@ -1532,7 +1532,7 @@
       ui::ET_TOUCH_PRESSED, gfx::Point(100, 200), Now(),
       ui::PointerDetails(ui::EventPointerType::kTouch, 0));
   generator_->Dispatch(&first_press);
-  simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(10));
+  simulated_clock_.Advance(base::Milliseconds(10));
   gfx::Point second_location(100 + distance, 200);
   generator_->MoveTouch(second_location);
   EXPECT_TRUE(IsInGestureInProgressState());
diff --git a/chromecast/browser/cast_browser_main_parts.cc b/chromecast/browser/cast_browser_main_parts.cc
index 39749cf4..647bc912 100644
--- a/chromecast/browser/cast_browser_main_parts.cc
+++ b/chromecast/browser/cast_browser_main_parts.cc
@@ -711,7 +711,7 @@
   OnStartPeriodicCrashReportUpload();
   crash_reporter_timer_.reset(new base::RepeatingTimer());
   crash_reporter_timer_->Start(
-      FROM_HERE, base::TimeDelta::FromMinutes(20), this,
+      FROM_HERE, base::Minutes(20), this,
       &CastBrowserMainParts::OnStartPeriodicCrashReportUpload);
 }
 
diff --git a/chromecast/browser/cast_media_blocker_browsertest.cc b/chromecast/browser/cast_media_blocker_browsertest.cc
index 3965083..edbec2f 100644
--- a/chromecast/browser/cast_media_blocker_browsertest.cc
+++ b/chromecast/browser/cast_media_blocker_browsertest.cc
@@ -60,8 +60,7 @@
       LOG(INFO) << "Checking media blocking, re-try = " << i;
       base::RunLoop run_loop(base::RunLoop::Type::kNestableTasksAllowed);
       base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-          FROM_HERE, run_loop.QuitClosure(),
-          base::TimeDelta::FromMilliseconds(100));
+          FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(100));
       run_loop.Run();
 
       const std::string command =
diff --git a/chromecast/browser/cast_system_memory_pressure_evaluator.cc b/chromecast/browser/cast_system_memory_pressure_evaluator.cc
index 96fe9b21..84addd5 100644
--- a/chromecast/browser/cast_system_memory_pressure_evaluator.cc
+++ b/chromecast/browser/cast_system_memory_pressure_evaluator.cc
@@ -134,7 +134,7 @@
       FROM_HERE,
       base::BindOnce(&CastSystemMemoryPressureEvaluator::PollPressureLevel,
                      weak_ptr_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(kPollingIntervalMS));
+      base::Milliseconds(kPollingIntervalMS));
 }
 
 void CastSystemMemoryPressureEvaluator::UpdateMemoryPressureLevel(
diff --git a/chromecast/browser/cast_web_contents_impl.cc b/chromecast/browser/cast_web_contents_impl.cc
index 8b2e9189..833aca76 100644
--- a/chromecast/browser/cast_web_contents_impl.cc
+++ b/chromecast/browser/cast_web_contents_impl.cc
@@ -268,7 +268,7 @@
       FROM_HERE,
       base::BindOnce(&CastWebContentsImpl::OnClosePageTimeout,
                      weak_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(1000));
+      base::Milliseconds(1000));
 }
 
 void CastWebContentsImpl::Stop(int error_code) {
diff --git a/chromecast/browser/metrics/cast_browser_metrics.cc b/chromecast/browser/metrics/cast_browser_metrics.cc
index ca980b02..fc6c530 100644
--- a/chromecast/browser/metrics/cast_browser_metrics.cc
+++ b/chromecast/browser/metrics/cast_browser_metrics.cc
@@ -122,7 +122,7 @@
   // process termination will not be uploaded.
   content::FetchHistogramsAsynchronously(
       base::ThreadTaskRunnerHandle::Get(), std::move(done_callback),
-      base::TimeDelta::FromSeconds(kMetricsFetchTimeoutSeconds));
+      base::Seconds(kMetricsFetchTimeoutSeconds));
 }
 
 void CastBrowserMetrics::ProcessExternalEvents(base::OnceClosure cb) {
diff --git a/chromecast/browser/metrics/external_metrics.cc b/chromecast/browser/metrics/external_metrics.cc
index 6f89431..607f9a5 100644
--- a/chromecast/browser/metrics/external_metrics.cc
+++ b/chromecast/browser/metrics/external_metrics.cc
@@ -178,7 +178,7 @@
       FROM_HERE,
       base::BindOnce(&ExternalMetrics::CollectEventsAndReschedule,
                      weak_factory_.GetWeakPtr()),
-      base::TimeDelta::FromSeconds(kExternalMetricsCollectionIntervalSeconds));
+      base::Seconds(kExternalMetricsCollectionIntervalSeconds));
 }
 
 }  // namespace metrics
diff --git a/chromecast/browser/webview/web_content_controller.cc b/chromecast/browser/webview/web_content_controller.cc
index 3ee0a5f..46bb4c7 100644
--- a/chromecast/browser/webview/web_content_controller.cc
+++ b/chromecast/browser/webview/web_content_controller.cc
@@ -44,7 +44,7 @@
 namespace {
 
 base::TimeTicks TimeTicksFromTimestamp(int64_t timestamp) {
-  return base::TimeTicks() + base::TimeDelta::FromMicroseconds(timestamp);
+  return base::TimeTicks() + base::Microseconds(timestamp);
 }
 
 }  // namespace
@@ -285,8 +285,7 @@
         ui::TouchEvent evt(
             type, gfx::PointF(touch.x(), touch.y()),
             gfx::PointF(touch.root_x(), touch.root_y()),
-            base::TimeTicks() +
-                base::TimeDelta::FromMicroseconds(ev.timestamp()),
+            base::TimeTicks() + base::Microseconds(ev.timestamp()),
             ui::PointerDetails(
                 static_cast<ui::EventPointerType>(touch.pointer_type()),
                 static_cast<ui::PointerId>(touch.pointer_id()),
@@ -343,9 +342,8 @@
         ui::MouseEvent evt(
             type, gfx::PointF(mouse.x(), mouse.y()),
             gfx::PointF(mouse.root_x(), mouse.root_y()),
-            base::TimeTicks() +
-                base::TimeDelta::FromMicroseconds(ev.timestamp()),
-            ev.flags(), mouse.changed_button_flags());
+            base::TimeTicks() + base::Microseconds(ev.timestamp()), ev.flags(),
+            mouse.changed_button_flags());
         if (contents->GetAccessibilityMode().has_mode(
                 ui::AXMode::kWebContents)) {
           evt.set_flags(evt.flags() | ui::EF_TOUCH_ACCESSIBILITY);
diff --git a/chromecast/browser/webview/webview_browsertest.cc b/chromecast/browser/webview/webview_browsertest.cc
index 5b9d0a3..6e9d560 100644
--- a/chromecast/browser/webview/webview_browsertest.cc
+++ b/chromecast/browser/webview/webview_browsertest.cc
@@ -39,8 +39,7 @@
 namespace chromecast {
 namespace {
 
-constexpr base::TimeDelta kDefaultTimeout =
-    base::TimeDelta::FromMilliseconds(5000);
+constexpr base::TimeDelta kDefaultTimeout = base::Milliseconds(5000);
 
 const std::string kKeyInputDataURL = R"HTML(
 <!DOCTYPE html>
diff --git a/chromecast/cast_core/cast_runtime_metrics_recorder.cc b/chromecast/cast_core/cast_runtime_metrics_recorder.cc
index e38a76b5..89df730a 100644
--- a/chromecast/cast_core/cast_runtime_metrics_recorder.cc
+++ b/chromecast/cast_core/cast_runtime_metrics_recorder.cc
@@ -43,8 +43,7 @@
                           const std::string& app_id,
                           const std::string& sdk_version,
                           const std::string& session_id) {
-  event_builder->SetTime(base::TimeTicks() +
-                         base::TimeDelta::FromMicrosecondsD(event_time));
+  event_builder->SetTime(base::TimeTicks() + base::Microseconds(event_time));
   if (!app_id.empty())
     event_builder->SetAppId(app_id);
   if (!sdk_version.empty())
@@ -163,10 +162,9 @@
                                                      int min,
                                                      int max,
                                                      int num_buckets) {
-  UMA_HISTOGRAM_CUSTOM_TIMES_NO_CACHE(
-      name, base::TimeDelta::FromMilliseconds(sample),
-      base::TimeDelta::FromMilliseconds(min),
-      base::TimeDelta::FromMilliseconds(max), num_buckets);
+  UMA_HISTOGRAM_CUSTOM_TIMES_NO_CACHE(name, base::Milliseconds(sample),
+                                      base::Milliseconds(min),
+                                      base::Milliseconds(max), num_buckets);
 }
 
 void CastRuntimeMetricsRecorder::RecordHistogramCount(const std::string& name,
diff --git a/chromecast/cast_core/message_port_handler.cc b/chromecast/cast_core/message_port_handler.cc
index 9b442f2..c7280fc 100644
--- a/chromecast/cast_core/message_port_handler.cc
+++ b/chromecast/cast_core/message_port_handler.cc
@@ -15,7 +15,7 @@
 // This is used as a timeout for both sending cast::web::Message requests and
 // awaiting responses.  Reaching this timeout without a response from the peer
 // will close the connection and Blink message port.
-constexpr base::TimeDelta kMessageTimeout = base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kMessageTimeout = base::Seconds(10);
 
 }  // namespace
 
diff --git a/chromecast/cast_core/runtime_application_dispatcher.cc b/chromecast/cast_core/runtime_application_dispatcher.cc
index 3ad02f1..1f9b9096 100644
--- a/chromecast/cast_core/runtime_application_dispatcher.cc
+++ b/chromecast/cast_core/runtime_application_dispatcher.cc
@@ -22,8 +22,7 @@
 namespace chromecast {
 namespace {
 
-base::TimeDelta kDefaultMetricsReportInterval =
-    base::TimeDelta::FromSeconds(60);
+base::TimeDelta kDefaultMetricsReportInterval = base::Seconds(60);
 
 }  // namespace
 
@@ -247,7 +246,7 @@
         FROM_HERE,
         base::BindOnce(&RuntimeApplicationDispatcher::SendHeartbeat,
                        weak_factory_.GetWeakPtr()),
-        base::TimeDelta::FromSeconds(heartbeat_period_));
+        base::Seconds(heartbeat_period_));
   }
 }
 
diff --git a/chromecast/cast_core/streaming_receiver_session_client.h b/chromecast/cast_core/streaming_receiver_session_client.h
index cdca4b2..ac61688 100644
--- a/chromecast/cast_core/streaming_receiver_session_client.h
+++ b/chromecast/cast_core/streaming_receiver_session_client.h
@@ -54,8 +54,7 @@
 
   // Max time for which streaming may wait for AV Settings receipt before being
   // treated as a failure.
-  static constexpr base::TimeDelta kMaxAVSettingsWaitTime =
-      base::TimeDelta::FromSeconds(5);
+  static constexpr base::TimeDelta kMaxAVSettingsWaitTime = base::Seconds(5);
 
   // Creates a new instance of this class. |handler| must persist for the
   // lifetime of this instance.
diff --git a/chromecast/crash/linux/crash_uploader.cc b/chromecast/crash/linux/crash_uploader.cc
index c96ce84..0027587 100644
--- a/chromecast/crash/linux/crash_uploader.cc
+++ b/chromecast/crash/linux/crash_uploader.cc
@@ -65,8 +65,7 @@
       chromecast::RebootUtil::RebootNow(
           chromecast::RebootShlib::CRASH_UPLOADER);
 
-    base::PlatformThread::Sleep(
-        base::TimeDelta::FromSeconds(kUploadRetryIntervalDefault));
+    base::PlatformThread::Sleep(base::Seconds(kUploadRetryIntervalDefault));
   }
 
   return EXIT_SUCCESS;
diff --git a/chromecast/crash/linux/synchronized_minidump_manager_unittest.cc b/chromecast/crash/linux/synchronized_minidump_manager_unittest.cc
index 576060e..510b063 100644
--- a/chromecast/crash/linux/synchronized_minidump_manager_unittest.cc
+++ b/chromecast/crash/linux/synchronized_minidump_manager_unittest.cc
@@ -133,8 +133,7 @@
   bool DoWork() override {
     // The lock has been acquired. Fall asleep for |kSleepDurationMs|, then
     // write the file.
-    base::PlatformThread::Sleep(
-        base::TimeDelta::FromMilliseconds(sleep_duration_ms_));
+    base::PlatformThread::Sleep(base::Milliseconds(sleep_duration_ms_));
     return SynchronizedMinidumpManagerSimple::DoWork();
   }
 
@@ -310,8 +309,7 @@
   // Meanwhile, this thread should wait brielfy to allow the other thread to
   // grab the lock.
   const int concurrency_delay = 50;
-  base::PlatformThread::Sleep(
-      base::TimeDelta::FromMilliseconds(concurrency_delay));
+  base::PlatformThread::Sleep(base::Milliseconds(concurrency_delay));
 
   // |sleepy_manager| has the lock by now, but has not released it. Attempt to
   // grab it. DoWorkLocked() should block until |manager| has a chance to write
@@ -360,8 +358,7 @@
   // Meanwhile, this process should wait brielfy to allow the other thread to
   // grab the lock.
   const int concurrency_delay = 50;
-  base::PlatformThread::Sleep(
-      base::TimeDelta::FromMilliseconds(concurrency_delay));
+  base::PlatformThread::Sleep(base::Milliseconds(concurrency_delay));
 
   // |sleepy_manager| has the lock by now, but has not released it. Attempt to
   // grab it. DoWorkLocked() should block until |manager| has a chance to write
@@ -436,8 +433,8 @@
     ASSERT_TRUE(uploader.DoWorkLocked());
     ASSERT_FALSE(uploader.can_upload_return_val());
 
-    base::TimeDelta period = base::TimeDelta::FromSeconds(
-        SynchronizedMinidumpManager::kRatelimitPeriodSeconds);
+    base::TimeDelta period =
+        base::Seconds(SynchronizedMinidumpManager::kRatelimitPeriodSeconds);
     base::Time now = base::Time::Now();
 
     // Half period shouldn't trigger reset
diff --git a/chromecast/device/bluetooth/le/ble_notification_logger.h b/chromecast/device/bluetooth/le/ble_notification_logger.h
index db098eb..d7c3121 100644
--- a/chromecast/device/bluetooth/le/ble_notification_logger.h
+++ b/chromecast/device/bluetooth/le/ble_notification_logger.h
@@ -20,7 +20,7 @@
 
 class BleNotificationLogger : public GattClientManager::Observer {
  public:
-  static constexpr auto kMinLogInterval = base::TimeDelta::FromMinutes(1);
+  static constexpr auto kMinLogInterval = base::Minutes(1);
 
   explicit BleNotificationLogger(GattClientManager* gcm);
 
diff --git a/chromecast/device/bluetooth/le/gatt_client_manager_impl.h b/chromecast/device/bluetooth/le/gatt_client_manager_impl.h
index ff464e4..1eb91d31 100644
--- a/chromecast/device/bluetooth/le/gatt_client_manager_impl.h
+++ b/chromecast/device/bluetooth/le/gatt_client_manager_impl.h
@@ -30,16 +30,13 @@
  public:
   // If a Connect request takes longer than this amount of time, we will treat
   // it as a failure.
-  static constexpr base::TimeDelta kConnectTimeout =
-      base::TimeDelta::FromSeconds(40);
+  static constexpr base::TimeDelta kConnectTimeout = base::Seconds(40);
   // If a Disconnect request takes longer than this amount of time, we will
   // treat it as a failure.
-  static constexpr base::TimeDelta kDisconnectTimeout =
-      base::TimeDelta::FromSeconds(10);
+  static constexpr base::TimeDelta kDisconnectTimeout = base::Seconds(10);
   // If a ReadRemoteRssi request takes longer than this amount of time, we will
   // treat it as a failure.
-  static constexpr base::TimeDelta kReadRemoteRssiTimeout =
-      base::TimeDelta::FromSeconds(10);
+  static constexpr base::TimeDelta kReadRemoteRssiTimeout = base::Seconds(10);
 
   explicit GattClientManagerImpl(bluetooth_v2_shlib::GattClient* gatt_client);
 
diff --git a/chromecast/device/bluetooth/le/remote_device_impl.h b/chromecast/device/bluetooth/le/remote_device_impl.h
index c84531d..fd204fa 100644
--- a/chromecast/device/bluetooth/le/remote_device_impl.h
+++ b/chromecast/device/bluetooth/le/remote_device_impl.h
@@ -35,8 +35,7 @@
  public:
   // If commands take longer than this amount of time, we will disconnect the
   // device.
-  static constexpr base::TimeDelta kCommandTimeout =
-      base::TimeDelta::FromSeconds(30);
+  static constexpr base::TimeDelta kCommandTimeout = base::Seconds(30);
 
   // RemoteDevice implementation
   void Connect(ConnectCallback cb, bluetooth_v2_shlib::Gatt::Client::Transport transport) override;
diff --git a/chromecast/external_mojo/external_service_support/external_connector_impl.cc b/chromecast/external_mojo/external_service_support/external_connector_impl.cc
index 3d632f8..96249746 100644
--- a/chromecast/external_mojo/external_service_support/external_connector_impl.cc
+++ b/chromecast/external_mojo/external_service_support/external_connector_impl.cc
@@ -27,8 +27,7 @@
 namespace external_service_support {
 
 namespace {
-constexpr base::TimeDelta kConnectRetryDelay =
-    base::TimeDelta::FromMilliseconds(500);
+constexpr base::TimeDelta kConnectRetryDelay = base::Milliseconds(500);
 }  // namespace
 
 // Since we are only allowed to make a single underlying connection to the
diff --git a/chromecast/graphics/accessibility/accessibility_focus_ring_controller.cc b/chromecast/graphics/accessibility/accessibility_focus_ring_controller.cc
index 1e4ad93..1e29860 100644
--- a/chromecast/graphics/accessibility/accessibility_focus_ring_controller.cc
+++ b/chromecast/graphics/accessibility/accessibility_focus_ring_controller.cc
@@ -67,13 +67,13 @@
     : root_window_(root_window) {
   DCHECK(root_window);
   focus_animation_info_.fade_in_time =
-      base::TimeDelta::FromMilliseconds(kFocusFadeInTimeMilliseconds);
+      base::Milliseconds(kFocusFadeInTimeMilliseconds);
   focus_animation_info_.fade_out_time =
-      base::TimeDelta::FromMilliseconds(kFocusFadeOutTimeMilliseconds);
+      base::Milliseconds(kFocusFadeOutTimeMilliseconds);
   caret_animation_info_.fade_in_time =
-      base::TimeDelta::FromMilliseconds(kCaretFadeInTimeMilliseconds);
+      base::Milliseconds(kCaretFadeInTimeMilliseconds);
   caret_animation_info_.fade_out_time =
-      base::TimeDelta::FromMilliseconds(kCaretFadeOutTimeMilliseconds);
+      base::Milliseconds(kCaretFadeOutTimeMilliseconds);
 }
 
 AccessibilityFocusRingController::~AccessibilityFocusRingController() = default;
@@ -195,9 +195,9 @@
 
 void AccessibilityFocusRingController::SetNoFadeForTesting() {
   focus_animation_info_.fade_in_time = base::TimeDelta();
-  focus_animation_info_.fade_out_time = base::TimeDelta::FromHours(1);
+  focus_animation_info_.fade_out_time = base::Hours(1);
   caret_animation_info_.fade_in_time = base::TimeDelta();
-  caret_animation_info_.fade_out_time = base::TimeDelta::FromHours(1);
+  caret_animation_info_.fade_out_time = base::Hours(1);
 }
 
 void AccessibilityFocusRingController::RectsToRings(
@@ -429,7 +429,7 @@
   if (focus_ring_behavior_ == FocusRingBehavior::PERSIST_FOCUS_RING) {
     base::TimeDelta delta = timestamp - focus_animation_info_.change_time;
     base::TimeDelta transition_time =
-        base::TimeDelta::FromMilliseconds(kTransitionTimeMilliseconds);
+        base::Milliseconds(kTransitionTimeMilliseconds);
     if (delta >= transition_time) {
       focus_layers_[0]->Set(focus_rings_[0]);
       return;
diff --git a/chromecast/graphics/cast_window_manager_aura.cc b/chromecast/graphics/cast_window_manager_aura.cc
index 9772ce8..62665ad 100644
--- a/chromecast/graphics/cast_window_manager_aura.cc
+++ b/chromecast/graphics/cast_window_manager_aura.cc
@@ -240,7 +240,7 @@
 
 #if BUILDFLAG(IS_CAST_AUDIO_ONLY)
   window_tree_host_->compositor()->SetDisplayVSyncParameters(
-      base::TimeTicks(), base::TimeDelta::FromMilliseconds(250));
+      base::TimeTicks(), base::Milliseconds(250));
 #endif
 
   // Chromecast devices do not support cut/copy/paste.
diff --git a/chromecast/graphics/gestures/cast_system_gesture_dispatcher.cc b/chromecast/graphics/gestures/cast_system_gesture_dispatcher.cc
index 533f9d7e..0b843ca2 100644
--- a/chromecast/graphics/gestures/cast_system_gesture_dispatcher.cc
+++ b/chromecast/graphics/gestures/cast_system_gesture_dispatcher.cc
@@ -10,7 +10,7 @@
 namespace chromecast {
 
 namespace {
-const base::TimeDelta kExpirationTime = base::TimeDelta::FromSeconds(3);
+const base::TimeDelta kExpirationTime = base::Seconds(3);
 const size_t kMaxSwipes = 3;
 }  // namespace
 
diff --git a/chromecast/graphics/gestures/cast_system_gesture_dispatcher_test.cc b/chromecast/graphics/gestures/cast_system_gesture_dispatcher_test.cc
index a1106d23..ca065cb1d 100644
--- a/chromecast/graphics/gestures/cast_system_gesture_dispatcher_test.cc
+++ b/chromecast/graphics/gestures/cast_system_gesture_dispatcher_test.cc
@@ -18,7 +18,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kTimeoutWindow = base::TimeDelta::FromSeconds(3);
+constexpr base::TimeDelta kTimeoutWindow = base::Seconds(3);
 const size_t kMaxSwipesWithinTimeout = 3;
 
 }  // namespace
@@ -172,8 +172,7 @@
     EXPECT_CALL(handler_2, HandleSideSwipe(event, origin, point));
     gesture_dispatcher_->HandleSideSwipe(event, origin, point);
     base::TimeDelta time_between_events =
-        (kTimeoutWindow - base::TimeDelta::FromSeconds(1)) /
-        (kMaxSwipesWithinTimeout - 1);
+        (kTimeoutWindow - base::Seconds(1)) / (kMaxSwipesWithinTimeout - 1);
     test_clock_->Advance(time_between_events);
   }
 
diff --git a/chromecast/graphics/gestures/multiple_tap_detector_test.cc b/chromecast/graphics/gestures/multiple_tap_detector_test.cc
index 71c992a..2251e781 100644
--- a/chromecast/graphics/gestures/multiple_tap_detector_test.cc
+++ b/chromecast/graphics/gestures/multiple_tap_detector_test.cc
@@ -45,7 +45,7 @@
     generator_.reset(new ui::test::EventGenerator(root_window()));
 
     // Tests fail if time is ever 0.
-    simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(10));
+    simulated_clock_.Advance(base::Milliseconds(10));
     // ui takes ownership of the tick clock.
     ui::SetEventTickClockForTesting(&simulated_clock_);
   }
@@ -64,7 +64,7 @@
   // Pause just past the maximum amount of time to trigger a double tap.
   void TooLongPause() {
     simulated_clock_.Advance(gesture_detector_config_.double_tap_timeout);
-    simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(1));
+    simulated_clock_.Advance(base::Milliseconds(1));
     triple_tap_detector_->triple_tap_timer_.Stop();
     triple_tap_detector_->OnTapIntervalTimerFired();
   }
@@ -76,7 +76,7 @@
                          ui::PointerDetails(ui::EventPointerType::kTouch,
                                             ui::kPointerIdUnknown));
     generator_->Dispatch(&press);
-    simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(kTapLengthMs));
+    simulated_clock_.Advance(base::Milliseconds(kTapLengthMs));
     ui::TouchEvent release(ui::ET_TOUCH_RELEASED, tap_point,
                            simulated_clock_.NowTicks(),
                            ui::PointerDetails(ui::EventPointerType::kTouch,
diff --git a/chromecast/graphics/gestures/side_swipe_detector.cc b/chromecast/graphics/gestures/side_swipe_detector.cc
index 2c3877af..b3e7d95 100644
--- a/chromecast/graphics/gestures/side_swipe_detector.cc
+++ b/chromecast/graphics/gestures/side_swipe_detector.cc
@@ -34,7 +34,7 @@
 // occurs inside the gesture margin will be valid as long as it occurs within
 // the time specified by this threshold.
 constexpr base::TimeDelta kGestureMarginEventsTimeLimit =
-    base::TimeDelta::FromMilliseconds(500);
+    base::Milliseconds(500);
 
 // Get the correct bottom gesture start height by checking both margin flags in
 // order, and then the default value if neither is set.
diff --git a/chromecast/graphics/gestures/side_swipe_detector_test.cc b/chromecast/graphics/gestures/side_swipe_detector_test.cc
index 034cdad..658d395 100644
--- a/chromecast/graphics/gestures/side_swipe_detector_test.cc
+++ b/chromecast/graphics/gestures/side_swipe_detector_test.cc
@@ -27,7 +27,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kTimeDelay = base::TimeDelta::FromMilliseconds(100);
+constexpr base::TimeDelta kTimeDelay = base::Milliseconds(100);
 constexpr int kSwipeDistance = 50;
 constexpr int kNumSteps = 5;
 // constexpr gfx::Point kZeroPoint{0, 0};
@@ -339,15 +339,15 @@
       .Times(0);
 
   // Start a drag but don't complete.
-  Drag(drag_point, base::TimeDelta::FromMilliseconds(10) /*start_hold_time */,
-       base::TimeDelta::FromMilliseconds(1000) /* drag_time */, end_point,
-       1 /* pointer_id */, false /* end_release */);
+  Drag(drag_point, base::Milliseconds(10) /*start_hold_time */,
+       base::Milliseconds(1000) /* drag_time */, end_point, 1 /* pointer_id */,
+       false /* end_release */);
 
   // A second drag is started with another finger, but will be ignored as a
   // swipe and all its events eaten.
-  Drag(drag_point, base::TimeDelta::FromMilliseconds(10) /*start_hold_time */,
-       base::TimeDelta::FromMilliseconds(1000) /* drag_time */, end_point,
-       2 /* pointer_id */, true /* end_release */);
+  Drag(drag_point, base::Milliseconds(10) /*start_hold_time */,
+       base::Milliseconds(1000) /* drag_time */, end_point, 2 /* pointer_id */,
+       true /* end_release */);
 
   base::RunLoop().RunUntilIdle();
 
diff --git a/chromecast/media/audio/audio_output_service/output_connection.cc b/chromecast/media/audio/audio_output_service/output_connection.cc
index 1a4415e..4383ec2 100644
--- a/chromecast/media/audio/audio_output_service/output_connection.cc
+++ b/chromecast/media/audio/audio_output_service/output_connection.cc
@@ -25,7 +25,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kConnectTimeout = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kConnectTimeout = base::Seconds(1);
 
 }  // namespace
 
diff --git a/chromecast/media/audio/audio_output_service/output_stream_connection.cc b/chromecast/media/audio/audio_output_service/output_stream_connection.cc
index 9330b81..91481cc 100644
--- a/chromecast/media/audio/audio_output_service/output_stream_connection.cc
+++ b/chromecast/media/audio/audio_output_service/output_stream_connection.cc
@@ -16,7 +16,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kHeartbeatTimeout = base::TimeDelta::FromSeconds(2);
+constexpr base::TimeDelta kHeartbeatTimeout = base::Seconds(2);
 
 enum MessageTypes : int {
   kInitial = 1,
diff --git a/chromecast/media/audio/audio_output_service/receiver/audio_output_service_receiver.cc b/chromecast/media/audio/audio_output_service/receiver/audio_output_service_receiver.cc
index 1b6362c..74640218 100644
--- a/chromecast/media/audio/audio_output_service/receiver/audio_output_service_receiver.cc
+++ b/chromecast/media/audio/audio_output_service/receiver/audio_output_service_receiver.cc
@@ -23,7 +23,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kInactivityTimeout = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kInactivityTimeout = base::Seconds(5);
 
 enum MessageTypes : int {
   kUpdateMediaTime = 1,
diff --git a/chromecast/media/audio/audio_output_service/receiver/cma_backend_shim.cc b/chromecast/media/audio/audio_output_service/receiver/cma_backend_shim.cc
index 01e4236..07af230 100644
--- a/chromecast/media/audio/audio_output_service/receiver/cma_backend_shim.cc
+++ b/chromecast/media/audio/audio_output_service/receiver/cma_backend_shim.cc
@@ -144,7 +144,7 @@
   }
   auto buffer = base::MakeRefCounted<CastDecoderBufferImpl>(size);
   memcpy(buffer->writable_data(), reinterpret_cast<const uint8_t*>(data), size);
-  buffer->set_timestamp(base::TimeDelta::FromMicroseconds(timestamp));
+  buffer->set_timestamp(base::Microseconds(timestamp));
   POST_MEDIA_TASK(&CmaBackendShim::AddDataOnMediaThread, std::move(buffer));
 }
 
diff --git a/chromecast/media/audio/capture_service/capture_service_receiver.h b/chromecast/media/audio/capture_service/capture_service_receiver.h
index 02afcd9d..6f00d58 100644
--- a/chromecast/media/audio/capture_service/capture_service_receiver.h
+++ b/chromecast/media/audio/capture_service/capture_service_receiver.h
@@ -44,8 +44,7 @@
   };
 
   // The timeout for a connecting socket to stop waiting and report error.
-  static constexpr base::TimeDelta kConnectTimeout =
-      base::TimeDelta::FromSeconds(1);
+  static constexpr base::TimeDelta kConnectTimeout = base::Seconds(1);
 
   CaptureServiceReceiver(capture_service::StreamInfo request_stream_info,
                          Delegate* delegate);
diff --git a/chromecast/media/audio/cast_audio_device_factory.cc b/chromecast/media/audio/cast_audio_device_factory.cc
index e068291..52467fb 100644
--- a/chromecast/media/audio/cast_audio_device_factory.cc
+++ b/chromecast/media/audio/cast_audio_device_factory.cc
@@ -123,7 +123,7 @@
     const blink::LocalFrameToken& frame_token,
     const ::media::AudioSinkParameters& params) {
   return base::MakeRefCounted<NonSwitchableAudioRendererSink>(
-      NewOutputDevice(frame_token, params, base::TimeDelta::FromSeconds(100)));
+      NewOutputDevice(frame_token, params, base::Seconds(100)));
 }
 
 scoped_refptr<::media::AudioCapturerSource>
diff --git a/chromecast/media/audio/cast_audio_input_stream.cc b/chromecast/media/audio/cast_audio_input_stream.cc
index 32aa493..17e13c37 100644
--- a/chromecast/media/audio/cast_audio_input_stream.cc
+++ b/chromecast/media/audio/cast_audio_input_stream.cc
@@ -148,10 +148,9 @@
   }
 
   DCHECK(input_callback_);
-  input_callback_->OnData(
-      audio_bus_.get(),
-      base::TimeTicks() + base::TimeDelta::FromMicroseconds(timestamp_us),
-      /* volume */ 1.0);
+  input_callback_->OnData(audio_bus_.get(),
+                          base::TimeTicks() + base::Microseconds(timestamp_us),
+                          /* volume */ 1.0);
   return true;
 }
 
diff --git a/chromecast/media/audio/cast_audio_mixer_unittest.cc b/chromecast/media/audio/cast_audio_mixer_unittest.cc
index 2dfa9f2..edae5da 100644
--- a/chromecast/media/audio/cast_audio_mixer_unittest.cc
+++ b/chromecast/media/audio/cast_audio_mixer_unittest.cc
@@ -404,7 +404,7 @@
 
   // |delay| is the same because the Mixer and stream are
   // using the same AudioParameters.
-  base::TimeDelta delay = base::TimeDelta::FromMicroseconds(1000);
+  base::TimeDelta delay = base::Microseconds(1000);
   EXPECT_CALL(source, OnMoreData(delay, _, 0, _));
   SignalPull(source_callback_, delay);
 
diff --git a/chromecast/media/audio/cast_audio_output_stream.cc b/chromecast/media/audio/cast_audio_output_stream.cc
index ebde65e..879bd6c 100644
--- a/chromecast/media/audio/cast_audio_output_stream.cc
+++ b/chromecast/media/audio/cast_audio_output_stream.cc
@@ -55,11 +55,10 @@
 
 namespace {
 // Below are settings for MixerService and the DirectAudio it uses.
-constexpr base::TimeDelta kFadeTime = base::TimeDelta::FromMilliseconds(5);
+constexpr base::TimeDelta kFadeTime = base::Milliseconds(5);
 constexpr base::TimeDelta kCommunicationsMaxBufferedFrames =
-    base::TimeDelta::FromMilliseconds(50);
-constexpr base::TimeDelta kMediaMaxBufferedFrames =
-    base::TimeDelta::FromMilliseconds(70);
+    base::Milliseconds(50);
+constexpr base::TimeDelta kMediaMaxBufferedFrames = base::Milliseconds(70);
 }  // namespace
 
 namespace chromecast {
@@ -289,7 +288,7 @@
   base::TimeDelta reported_delay = ::media::AudioTimestampHelper::FramesToTime(
       max_buffered_frames_, audio_params_.sample_rate());
   base::TimeTicks reported_delay_timestamp =
-      base::TimeTicks() + base::TimeDelta::FromMicroseconds(playout_timestamp);
+      base::TimeTicks() + base::Microseconds(playout_timestamp);
 
   int frames_filled = source_callback_->OnMoreData(
       reported_delay, reported_delay_timestamp, 0, audio_bus_.get());
diff --git a/chromecast/media/audio/cast_audio_output_stream_unittest.cc b/chromecast/media/audio/cast_audio_output_stream_unittest.cc
index 8f9233c..1ed613b 100644
--- a/chromecast/media/audio/cast_audio_output_stream_unittest.cc
+++ b/chromecast/media/audio/cast_audio_output_stream_unittest.cc
@@ -902,7 +902,7 @@
   audio_decoder->set_rendering_delay(
       CmaBackend::AudioDecoder::RenderingDelay(kDelayUs, MonotonicClockNow()));
   ::media::MockAudioSourceCallback source_callback;
-  const base::TimeDelta delay(base::TimeDelta::FromMicroseconds(kDelayUs));
+  const base::TimeDelta delay(base::Microseconds(kDelayUs));
   // OnMoreData can be called with a shorter delay than the rendering delay in
   // order to prefetch audio data faster.
   EXPECT_CALL(source_callback, OnMoreData(testing::Le(delay), _, _, _))
@@ -917,7 +917,7 @@
 
 TEST_F(CastAudioOutputStreamTest, MultiroomInfo) {
   chromecast::mojom::MultiroomInfo info(true, AudioChannel::kAll,
-                                        base::TimeDelta::FromSeconds(3), "");
+                                        base::Seconds(3), "");
   multiroom_manager_.SetMultiroomInfo(info);
 
   ::media::AudioOutputStream* stream = CreateStream();
@@ -938,8 +938,7 @@
   MediaPipelineDeviceParams params = cma_backend_->params();
   EXPECT_EQ(params.multiroom, true);
   EXPECT_EQ(params.audio_channel, AudioChannel::kAll);
-  EXPECT_EQ(params.output_delay_us,
-            base::TimeDelta::FromSeconds(3).InMicroseconds());
+  EXPECT_EQ(params.output_delay_us, base::Seconds(3).InMicroseconds());
 
   stream->Stop();
   stream->Close();
diff --git a/chromecast/media/audio/cast_audio_renderer.cc b/chromecast/media/audio/cast_audio_renderer.cc
index f25ba9d..b5e323c 100644
--- a/chromecast/media/audio/cast_audio_renderer.cc
+++ b/chromecast/media/audio/cast_audio_renderer.cc
@@ -508,7 +508,7 @@
   }
   reference_time_ =
       base::TimeTicks::FromInternalValue(reference_timestamp_microseconds);
-  media_pos_ = base::TimeDelta::FromMicroseconds(media_timestamp_microseconds);
+  media_pos_ = base::Microseconds(media_timestamp_microseconds);
   RUN_ON_MAIN_THREAD(ScheduleFetchNextBuffer);
 }
 
diff --git a/chromecast/media/audio/cast_audio_renderer.h b/chromecast/media/audio/cast_audio_renderer.h
index 9e883014..d2c9b3c3e 100644
--- a/chromecast/media/audio/cast_audio_renderer.h
+++ b/chromecast/media/audio/cast_audio_renderer.h
@@ -187,8 +187,8 @@
 
   // TODO(b/173250111): update these values based on whether the media session
   // is multiroom.
-  base::TimeDelta min_lead_time_ = base::TimeDelta::FromMilliseconds(100);
-  base::TimeDelta max_lead_time_ = base::TimeDelta::FromMilliseconds(500);
+  base::TimeDelta min_lead_time_ = base::Milliseconds(100);
+  base::TimeDelta max_lead_time_ = base::Milliseconds(500);
 
   mojo::PendingRemote<::media::mojom::CastApplicationMediaInfoManager>
       application_media_info_manager_pending_remote_;
diff --git a/chromecast/media/audio/cma_audio_output_stream.cc b/chromecast/media/audio/cma_audio_output_stream.cc
index a8883081..de2ce5c 100644
--- a/chromecast/media/audio/cma_audio_output_stream.cc
+++ b/chromecast/media/audio/cma_audio_output_stream.cc
@@ -27,7 +27,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kRenderBufferSize = base::TimeDelta::FromSeconds(4);
+constexpr base::TimeDelta kRenderBufferSize = base::Seconds(4);
 
 }  // namespace
 
@@ -202,9 +202,9 @@
     // The rendering delay to account for buffering is not included in
     // rendering_delay.delay_microseconds but is in delay_timestamp which isn't
     // used by AudioOutputStreamImpl.
-    delay = base::TimeDelta::FromMicroseconds(
-        rendering_delay.delay_microseconds +
-        rendering_delay.timestamp_microseconds - MonotonicClockNow());
+    delay = base::Microseconds(rendering_delay.delay_microseconds +
+                               rendering_delay.timestamp_microseconds -
+                               MonotonicClockNow());
     if (delay.InMicroseconds() < 0) {
       delay = base::TimeDelta();
     }
@@ -256,7 +256,7 @@
     last_push_complete_time_ = now;
 
     if (render_buffer_size_estimate_ >= buffer_duration_) {
-      delay = base::TimeDelta::FromSeconds(0);
+      delay = base::Seconds(0);
     } else {
       delay = buffer_duration_;
     }
diff --git a/chromecast/media/audio/mixer_service/mixer_connection.cc b/chromecast/media/audio/mixer_service/mixer_connection.cc
index ebcec2f..d144b61 100644
--- a/chromecast/media/audio/mixer_service/mixer_connection.cc
+++ b/chromecast/media/audio/mixer_service/mixer_connection.cc
@@ -27,7 +27,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kConnectTimeout = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kConnectTimeout = base::Seconds(1);
 
 }  // namespace
 
diff --git a/chromecast/media/audio/mixer_service/receiver/receiver_cma.cc b/chromecast/media/audio/mixer_service/receiver/receiver_cma.cc
index 5d55998..520e66c5 100644
--- a/chromecast/media/audio/mixer_service/receiver/receiver_cma.cc
+++ b/chromecast/media/audio/mixer_service/receiver/receiver_cma.cc
@@ -22,7 +22,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kInactivityTimeout = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kInactivityTimeout = base::Seconds(5);
 
 enum MessageTypes : int {
   kPushResult = 1,
diff --git a/chromecast/media/audio/rate_adjuster.cc b/chromecast/media/audio/rate_adjuster.cc
index f102cfea..f1cc282 100644
--- a/chromecast/media/audio/rate_adjuster.cc
+++ b/chromecast/media/audio/rate_adjuster.cc
@@ -14,7 +14,7 @@
 namespace media {
 
 namespace {
-constexpr auto kMaxRateChangeInterval = base::TimeDelta::FromMinutes(5);
+constexpr auto kMaxRateChangeInterval = base::Minutes(5);
 }  // namespace
 
 RateAdjuster::RateAdjuster(const Config& config,
diff --git a/chromecast/media/audio/rate_adjuster.h b/chromecast/media/audio/rate_adjuster.h
index 971ae86..39df4aa 100644
--- a/chromecast/media/audio/rate_adjuster.h
+++ b/chromecast/media/audio/rate_adjuster.h
@@ -24,10 +24,10 @@
  public:
   struct Config {
     // The minimum interval between clock rate changes.
-    base::TimeDelta rate_change_interval = base::TimeDelta::FromSeconds(1);
+    base::TimeDelta rate_change_interval = base::Seconds(1);
 
     // How long to make the linear regression window for smoothing errors.
-    base::TimeDelta linear_regression_window = base::TimeDelta::FromSeconds(10);
+    base::TimeDelta linear_regression_window = base::Seconds(10);
 
     // The maximum current error to ignore, in microseconds.
     int64_t max_ignored_current_error = 0;
diff --git a/chromecast/media/base/video_plane_controller.cc b/chromecast/media/base/video_plane_controller.cc
index ec6c69e9..17c83ade 100644
--- a/chromecast/media/base/video_plane_controller.cc
+++ b/chromecast/media/base/video_plane_controller.cc
@@ -92,7 +92,7 @@
     base::TimeTicks now = base::TimeTicks::Now();
     base::TimeDelta elapsed = now - last_set_geometry_time_;
 
-    if (elapsed < base::TimeDelta::FromMilliseconds(min_calling_interval_ms_)) {
+    if (elapsed < base::Milliseconds(min_calling_interval_ms_)) {
       if (!pending_set_geometry_) {
         pending_set_geometry_ = true;
 
@@ -101,7 +101,7 @@
             base::BindOnce(
                 &RateLimitedSetVideoPlaneGeometry::ApplyPendingSetGeometry,
                 this),
-            base::TimeDelta::FromMilliseconds(2 * min_calling_interval_ms_));
+            base::Milliseconds(2 * min_calling_interval_ms_));
       }
 
       pending_display_rect_ = display_rect;
diff --git a/chromecast/media/cma/backend/alsa/alsa_volume_control.cc b/chromecast/media/cma/backend/alsa/alsa_volume_control.cc
index 760654c..d6cb1009 100644
--- a/chromecast/media/cma/backend/alsa/alsa_volume_control.cc
+++ b/chromecast/media/cma/backend/alsa/alsa_volume_control.cc
@@ -32,7 +32,7 @@
 const char kAlsaDefaultVolumeElementName[] = "Master";
 const char kAlsaMuteMixerElementName[] = "Mute";
 
-constexpr base::TimeDelta kPowerSaveCheckTime = base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kPowerSaveCheckTime = base::Minutes(5);
 
 }  // namespace
 
diff --git a/chromecast/media/cma/backend/alsa/mixer_output_stream_alsa.cc b/chromecast/media/cma/backend/alsa/mixer_output_stream_alsa.cc
index dd2aceb..6d427f7 100644
--- a/chromecast/media/cma/backend/alsa/mixer_output_stream_alsa.cc
+++ b/chromecast/media/cma/backend/alsa/mixer_output_stream_alsa.cc
@@ -115,7 +115,7 @@
 // retried. Below constants define retries params.
 constexpr int kRestoreAfterSuspensionAttempts = 10;
 constexpr base::TimeDelta kRestoreAfterSuspensionAttemptDelay =
-    base::TimeDelta::FromMilliseconds(20);
+    base::Milliseconds(20);
 
 // These sample formats will be tried in order. 32 bit samples is ideal, but
 // some devices do not support 32 bit samples.
diff --git a/chromecast/media/cma/backend/android/audio_sink_android_audiotrack_impl.cc b/chromecast/media/cma/backend/android/audio_sink_android_audiotrack_impl.cc
index 76f4bfc..1fd6629 100644
--- a/chromecast/media/cma/backend/android/audio_sink_android_audiotrack_impl.cc
+++ b/chromecast/media/cma/backend/android/audio_sink_android_audiotrack_impl.cc
@@ -254,8 +254,7 @@
             << playout_time_left_us << "us";
   wait_for_eos_task_.Reset(base::BindOnce(
       &AudioSinkAndroidAudioTrackImpl::OnPlayoutDone, base::Unretained(this)));
-  base::TimeDelta delay =
-      base::TimeDelta::FromMicroseconds(playout_time_left_us);
+  base::TimeDelta delay = base::Microseconds(playout_time_left_us);
   feeder_task_runner_->PostDelayedTask(FROM_HERE, wait_for_eos_task_.callback(),
                                        delay);
 }
diff --git a/chromecast/media/cma/backend/audio_decoder_for_mixer.cc b/chromecast/media/cma/backend/audio_decoder_for_mixer.cc
index cced9027..8e37fdaf 100644
--- a/chromecast/media/cma/backend/audio_decoder_for_mixer.cc
+++ b/chromecast/media/cma/backend/audio_decoder_for_mixer.cc
@@ -50,7 +50,7 @@
 const double kPlaybackRateEpsilon = 0.001;
 
 const int64_t kDefaultInputQueueMs = 200;
-constexpr base::TimeDelta kFadeTime = base::TimeDelta::FromMilliseconds(5);
+constexpr base::TimeDelta kFadeTime = base::Milliseconds(5);
 const int kDefaultStartThresholdMs = 70;
 
 const CastAudioDecoder::OutputFormat kDecoderSampleFormat =
@@ -83,7 +83,7 @@
       switches::kMixerSourceInputQueueMs, kDefaultInputQueueMs);
 
   return ::media::AudioTimestampHelper::TimeToFrames(
-      base::TimeDelta::FromMilliseconds(queue_ms), sample_rate);
+      base::Milliseconds(queue_ms), sample_rate);
 }
 
 int StartThreshold(int sample_rate) {
@@ -91,7 +91,7 @@
       switches::kMixerSourceAudioReadyThresholdMs, kDefaultStartThresholdMs);
 
   return ::media::AudioTimestampHelper::TimeToFrames(
-      base::TimeDelta::FromMilliseconds(start_threshold_ms), sample_rate);
+      base::Milliseconds(start_threshold_ms), sample_rate);
 }
 
 }  // namespace
diff --git a/chromecast/media/cma/backend/audio_video_pipeline_device_unittest.cc b/chromecast/media/cma/backend/audio_video_pipeline_device_unittest.cc
index 947776e..9be93f5 100644
--- a/chromecast/media/cma/backend/audio_video_pipeline_device_unittest.cc
+++ b/chromecast/media/cma/backend/audio_video_pipeline_device_unittest.cc
@@ -55,7 +55,7 @@
 
 namespace {
 
-const base::TimeDelta kMonitorLoopDelay = base::TimeDelta::FromMilliseconds(20);
+const base::TimeDelta kMonitorLoopDelay = base::Milliseconds(20);
 // Call Start() with an initial PTS of 0.5 seconds, to test the behaviour if
 // we push buffers with a PTS before the start PTS. In this case the backend
 // should report the PTS as no later than the last pushed buffers.
@@ -811,7 +811,7 @@
   }
 
   int64_t pts = backend_->GetCurrentPts();
-  base::TimeDelta media_time = base::TimeDelta::FromMicroseconds(pts);
+  base::TimeDelta media_time = base::Microseconds(pts);
   if (sync_type_ == MediaPipelineDeviceParams::kModeSyncPts) {
     // Check that the current PTS is no more than 100ms past the last pushed
     // PTS.
@@ -893,7 +893,7 @@
       media_time >= pause_time_ + pause_pattern_[pause_pattern_idx_].delay) {
     // Do Pause
     backend_->Pause();
-    pause_time_ = base::TimeDelta::FromMicroseconds(backend_->GetCurrentPts());
+    pause_time_ = base::Microseconds(backend_->GetCurrentPts());
     RunPlaybackChecks();
 
     LOG(INFO) << "Pausing at " << pause_time_.InMilliseconds() << "ms for "
@@ -919,12 +919,10 @@
 
 void AudioVideoPipelineDeviceTest::OnPauseCompleted() {
   // Make sure the media time didn't move during that time.
-  base::TimeDelta media_time =
-      base::TimeDelta::FromMicroseconds(backend_->GetCurrentPts());
+  base::TimeDelta media_time = base::Microseconds(backend_->GetCurrentPts());
 
   // Make sure that the PTS did not advance too much while paused.
-  EXPECT_LT(media_time,
-            pause_time_ + base::TimeDelta::FromMilliseconds(kPausePtsSlackMs));
+  EXPECT_LT(media_time, pause_time_ + base::Milliseconds(kPausePtsSlackMs));
 
 #if defined(ENABLE_VIDEO_WITH_MIXED_AUDIO)
   // Do AV sync checks.
@@ -939,10 +937,9 @@
       backend_for_mixer->video_decoder() &&
       backend_for_mixer->MonotonicClockNow() > playback_start_time + 50000) {
     // Check the audio time.
-    base::TimeDelta audio_time = base::TimeDelta::FromMicroseconds(
-        backend_for_mixer->audio_decoder()->GetCurrentPts());
-    EXPECT_LT(audio_time, pause_time_ + base::TimeDelta::FromMilliseconds(
-                                            kPausePtsSlackMs));
+    base::TimeDelta audio_time =
+        base::Microseconds(backend_for_mixer->audio_decoder()->GetCurrentPts());
+    EXPECT_LT(audio_time, pause_time_ + base::Milliseconds(kPausePtsSlackMs));
 
     // Check the video time.
     int64_t timestamp = 0;
@@ -953,10 +950,9 @@
         << backend_for_mixer->MonotonicClockNow()
         << " playback should have started at=" << playback_start_time;
 
-    base::TimeDelta video_time = base::TimeDelta::FromMicroseconds(pts);
+    base::TimeDelta video_time = base::Microseconds(pts);
 
-    EXPECT_LT(video_time, pause_time_ + base::TimeDelta::FromMilliseconds(
-                                            kPausePtsSlackMs));
+    EXPECT_LT(video_time, pause_time_ + base::Milliseconds(kPausePtsSlackMs));
   }
 #endif
 
@@ -1072,8 +1068,7 @@
     return;
   set_sync_type(MediaPipelineDeviceParams::kModeSyncPts);
   // Setup to pause for 100ms every 500ms
-  AddPause(base::TimeDelta::FromMilliseconds(500),
-           base::TimeDelta::FromMilliseconds(100));
+  AddPause(base::Milliseconds(500), base::Milliseconds(100));
 
   ConfigureForVideoOnly("bear-640x360.webm", false /* raw_h264 */);
   Start();
@@ -1237,8 +1232,7 @@
     return;
   set_sync_type(MediaPipelineDeviceParams::kModeSyncPts);
   // Setup to pause for 100ms every 500ms
-  AddPause(base::TimeDelta::FromMilliseconds(500),
-           base::TimeDelta::FromMilliseconds(100));
+  AddPause(base::Milliseconds(500), base::Milliseconds(100));
 
   ConfigureForVideoOnly("bear-640x360.webm", false /* raw_h264 */);
   AddEffectsStreams();
diff --git a/chromecast/media/cma/backend/desktop/media_pipeline_backend_desktop.cc b/chromecast/media/cma/backend/desktop/media_pipeline_backend_desktop.cc
index aad60e4..8da7527 100644
--- a/chromecast/media/cma/backend/desktop/media_pipeline_backend_desktop.cc
+++ b/chromecast/media/cma/backend/desktop/media_pipeline_backend_desktop.cc
@@ -45,11 +45,11 @@
     return false;
 
   if (audio_decoder_) {
-    audio_decoder_->Start(base::TimeDelta::FromMicroseconds(start_pts));
+    audio_decoder_->Start(base::Microseconds(start_pts));
     audio_decoder_->SetPlaybackRate(rate_);
   }
   if (video_decoder_) {
-    video_decoder_->Start(base::TimeDelta::FromMicroseconds(start_pts));
+    video_decoder_->Start(base::Microseconds(start_pts));
     video_decoder_->SetPlaybackRate(rate_);
   }
   state_ = kStatePlaying;
diff --git a/chromecast/media/cma/backend/desktop/media_sink_desktop.cc b/chromecast/media/cma/backend/desktop/media_sink_desktop.cc
index 439de6e..b8b3480 100644
--- a/chromecast/media/cma/backend/desktop/media_sink_desktop.cc
+++ b/chromecast/media/cma/backend/desktop/media_sink_desktop.cc
@@ -64,7 +64,7 @@
   //    Those tests are wrong should be fixed.
   // TODO(alokp): Fix these issues when the next version of CMA backend is
   // scheduled to roll out. crbug.com/678394
-  auto timestamp = base::TimeDelta::FromMicroseconds(buffer->timestamp());
+  auto timestamp = base::Microseconds(buffer->timestamp());
   if (timestamp != ::media::kNoTimestamp) {
     last_frame_pts_ = timestamp;
     time_interpolator_.SetUpperBound(last_frame_pts_);
diff --git a/chromecast/media/cma/backend/desktop/mixer_output_stream_desktop.cc b/chromecast/media/cma/backend/desktop/mixer_output_stream_desktop.cc
index 998ed2d..7dcc6bf 100644
--- a/chromecast/media/cma/backend/desktop/mixer_output_stream_desktop.cc
+++ b/chromecast/media/cma/backend/desktop/mixer_output_stream_desktop.cc
@@ -13,8 +13,7 @@
 namespace chromecast {
 namespace media {
 
-constexpr base::TimeDelta kTargetWritePeriod =
-    base::TimeDelta::FromMilliseconds(20);
+constexpr base::TimeDelta kTargetWritePeriod = base::Milliseconds(20);
 
 bool MixerOutputStreamDesktop::Start(int requested_sample_rate, int channels) {
   sample_rate_ = requested_sample_rate;
diff --git a/chromecast/media/cma/backend/fuchsia/mixer_output_stream_fuchsia.cc b/chromecast/media/cma/backend/fuchsia/mixer_output_stream_fuchsia.cc
index 21a0f469..eb9ee4a 100644
--- a/chromecast/media/cma/backend/fuchsia/mixer_output_stream_fuchsia.cc
+++ b/chromecast/media/cma/backend/fuchsia/mixer_output_stream_fuchsia.cc
@@ -24,8 +24,7 @@
 
 // Target period between Write() calls. It's used to calculate the value
 // returned from OptimalWriteFramesCount().
-constexpr base::TimeDelta kTargetWritePeriod =
-    base::TimeDelta::FromMilliseconds(10);
+constexpr base::TimeDelta kTargetWritePeriod = base::Milliseconds(10);
 
 // Same value as in MixerOutputStreamAlsa. Currently this value is used to
 // simulate blocking Write() similar to ALSA's behavior, see comments in
@@ -218,7 +217,7 @@
 }
 
 void MixerOutputStreamFuchsia::OnMinLeadTimeChanged(int64_t min_lead_time) {
-  min_lead_time_ = base::TimeDelta::FromNanoseconds(min_lead_time);
+  min_lead_time_ = base::Nanoseconds(min_lead_time);
 
   // When min_lead_time_ increases we may need to reallocate |payload_buffer_|.
   // Code below just unmaps the current buffer. The new buffer will be allocated
diff --git a/chromecast/media/cma/backend/fuchsia/mixer_output_stream_fuchsia.h b/chromecast/media/cma/backend/fuchsia/mixer_output_stream_fuchsia.h
index 752d6a37..ff6d8ee 100644
--- a/chromecast/media/cma/backend/fuchsia/mixer_output_stream_fuchsia.h
+++ b/chromecast/media/cma/backend/fuchsia/mixer_output_stream_fuchsia.h
@@ -66,7 +66,7 @@
   // Current min lead time for the stream. This value is updated by
   // AudioRenderer::OnMinLeadTimeChanged event. Assume 50ms until we get the
   // first OnMinLeadTimeChanged event.
-  base::TimeDelta min_lead_time_ = base::TimeDelta::FromMilliseconds(50);
+  base::TimeDelta min_lead_time_ = base::Milliseconds(50);
 };
 
 }  // namespace media
diff --git a/chromecast/media/cma/backend/fuchsia/mixer_output_stream_fuchsia_unittest.cc b/chromecast/media/cma/backend/fuchsia/mixer_output_stream_fuchsia_unittest.cc
index 5c56c06d..bb34e59 100644
--- a/chromecast/media/cma/backend/fuchsia/mixer_output_stream_fuchsia_unittest.cc
+++ b/chromecast/media/cma/backend/fuchsia/mixer_output_stream_fuchsia_unittest.cc
@@ -33,7 +33,7 @@
 TEST_F(MixerOutputStreamFuchsiaTest, Play1s) {
   EXPECT_TRUE(output_.Start(kSampleRate, kNumChannels));
 
-  constexpr auto kTestStreamDuration = base::TimeDelta::FromMilliseconds(300);
+  constexpr auto kTestStreamDuration = base::Milliseconds(300);
   constexpr float kSignalFrequencyHz = 1000;
 
   auto started = base::TimeTicks::Now();
@@ -62,8 +62,7 @@
   auto ended = base::TimeTicks::Now();
 
   // Verify that Write() was blocking, allowing 100ms for buffering.
-  EXPECT_GT(ended - started,
-            kTestStreamDuration - base::TimeDelta::FromMilliseconds(100));
+  EXPECT_GT(ended - started, kTestStreamDuration - base::Milliseconds(100));
 
   output_.Stop();
 }
@@ -89,8 +88,7 @@
   // Run message loop for 100ms before calling Write() again.
   base::RunLoop run_loop;
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(),
-      base::TimeDelta::FromMilliseconds(100));
+      FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(100));
   run_loop.Run();
 
   // Write() is called to late, expect interrupted = true.
diff --git a/chromecast/media/cma/backend/mixer/mixer_input_connection.cc b/chromecast/media/cma/backend/mixer/mixer_input_connection.cc
index 5018701..6094981 100644
--- a/chromecast/media/cma/backend/mixer/mixer_input_connection.cc
+++ b/chromecast/media/cma/backend/mixer/mixer_input_connection.cc
@@ -44,11 +44,9 @@
 namespace {
 
 constexpr int kDefaultQueueSize = 8192;
-constexpr base::TimeDelta kDefaultFillTime =
-    base::TimeDelta::FromMilliseconds(5);
-constexpr base::TimeDelta kDefaultFadeTime =
-    base::TimeDelta::FromMilliseconds(5);
-constexpr base::TimeDelta kInactivityTimeout = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kDefaultFillTime = base::Milliseconds(5);
+constexpr base::TimeDelta kDefaultFadeTime = base::Milliseconds(5);
+constexpr base::TimeDelta kInactivityTimeout = base::Seconds(5);
 constexpr int64_t kDefaultMaxTimestampError = 2000;
 // Max absolute value for timestamp errors, to avoid overflow/underflow.
 constexpr int64_t kTimestampErrorLimit = 1000000;
@@ -192,12 +190,11 @@
   const auto& c = params.timestamped_audio_config();
   media::RateAdjuster::Config config;
   if (c.has_rate_change_interval()) {
-    config.rate_change_interval =
-        base::TimeDelta::FromMicroseconds(c.rate_change_interval());
+    config.rate_change_interval = base::Microseconds(c.rate_change_interval());
   }
   if (c.has_linear_regression_window()) {
     config.linear_regression_window =
-        base::TimeDelta::FromMicroseconds(c.linear_regression_window());
+        base::Microseconds(c.linear_regression_window());
   }
   if (c.has_max_ignored_current_error()) {
     config.max_ignored_current_error = c.max_ignored_current_error();
@@ -966,7 +963,7 @@
   if (drop_us >= 0) {
     AUDIO_LOG(INFO) << this << " Dropping audio, duration = " << drop_us;
     DropAudio(::media::AudioTimestampHelper::TimeToFrames(
-        base::TimeDelta::FromMicroseconds(drop_us), input_samples_per_second_));
+        base::Microseconds(drop_us), input_samples_per_second_));
     // Only start if we still have enough data to do so.
     started_ = (queued_frames_ >= start_threshold_frames_);
 
@@ -983,8 +980,7 @@
     AUDIO_LOG(INFO) << this
                     << " Adding silence. Duration = " << silence_duration;
     remaining_silence_frames_ = ::media::AudioTimestampHelper::TimeToFrames(
-        base::TimeDelta::FromMicroseconds(silence_duration),
-        input_samples_per_second_);
+        base::Microseconds(silence_duration), input_samples_per_second_);
     // Round to nearest multiple of 4 to preserve buffer alignment.
     remaining_silence_frames_ = ((remaining_silence_frames_ + 2) / 4) * 4;
     started_ = true;
diff --git a/chromecast/media/cma/backend/mixer/stream_mixer.cc b/chromecast/media/cma/backend/mixer/stream_mixer.cc
index 41929ba..f6e56754 100644
--- a/chromecast/media/cma/backend/mixer/stream_mixer.cc
+++ b/chromecast/media/cma/backend/mixer/stream_mixer.cc
@@ -75,10 +75,8 @@
 const int kMediaUnduckFadeMs = 700;
 const int kDefaultFilterFrameAlignment = 64;
 
-constexpr base::TimeDelta kMixerThreadCheckTimeout =
-    base::TimeDelta::FromSeconds(10);
-constexpr base::TimeDelta kHealthCheckInterval =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kMixerThreadCheckTimeout = base::Seconds(10);
+constexpr base::TimeDelta kHealthCheckInterval = base::Seconds(5);
 
 int GetFixedOutputSampleRate() {
   int fixed_sample_rate = GetSwitchValueNonNegativeInt(
@@ -103,7 +101,7 @@
   if (close_timeout_ms < 0) {
     return base::TimeDelta::Max();
   }
-  return base::TimeDelta::FromMilliseconds(close_timeout_ms);
+  return base::Milliseconds(close_timeout_ms);
 }
 
 void UseHighPriority() {
diff --git a/chromecast/media/cma/backend/multizone_backend_unittest.cc b/chromecast/media/cma/backend/multizone_backend_unittest.cc
index 6bc5bb2..a017593 100644
--- a/chromecast/media/cma/backend/multizone_backend_unittest.cc
+++ b/chromecast/media/cma/backend/multizone_backend_unittest.cc
@@ -271,8 +271,7 @@
         new ::media::DecoderBuffer(size_bytes));
     memset(silence_buffer->writable_data(), 0, silence_buffer->data_size());
     pending_buffer_ = new media::DecoderBufferAdapter(silence_buffer);
-    pending_buffer_->set_timestamp(
-        base::TimeDelta::FromMicroseconds(pushed_us_));
+    pending_buffer_->set_timestamp(base::Microseconds(pushed_us_));
   }
   BufferStatus status = decoder_->PushBuffer(pending_buffer_.get());
   ASSERT_NE(status, MediaPipelineBackend::kBufferFailed);
diff --git a/chromecast/media/cma/backend/proxy/buffer_id_manager_unittest.cc b/chromecast/media/cma/backend/proxy/buffer_id_manager_unittest.cc
index 79767c7..b339cdb1 100644
--- a/chromecast/media/cma/backend/proxy/buffer_id_manager_unittest.cc
+++ b/chromecast/media/cma/backend/proxy/buffer_id_manager_unittest.cc
@@ -67,7 +67,7 @@
         .WillOnce(Return(MediaPipelineBackend::AudioDecoder::RenderingDelay(
             rendering_delay, timestamp)));
     auto buffer = base::MakeRefCounted<CastDecoderBufferImpl>(1);
-    buffer->set_timestamp(base::TimeDelta::FromMicroseconds(pts));
+    buffer->set_timestamp(base::Microseconds(pts));
     auto result = id_manager_->AssignBufferId(*buffer);
     Mock::VerifyAndClearExpectations(&audio_decoder_);
     return result;
diff --git a/chromecast/media/cma/backend/proxy/media_pipeline_buffer_extension_unittest.cc b/chromecast/media/cma/backend/proxy/media_pipeline_buffer_extension_unittest.cc
index aedd09d..b321bb19 100644
--- a/chromecast/media/cma/backend/proxy/media_pipeline_buffer_extension_unittest.cc
+++ b/chromecast/media/cma/backend/proxy/media_pipeline_buffer_extension_unittest.cc
@@ -69,7 +69,7 @@
   scoped_refptr<CastDecoderBufferImpl> CreateBuffer(int64_t pts_increment = 3) {
     scoped_refptr<CastDecoderBufferImpl> buffer(
         new CastDecoderBufferImpl(3, StreamId::kPrimary));
-    buffer->set_timestamp(base::TimeDelta::FromMicroseconds(current_pts_));
+    buffer->set_timestamp(base::Microseconds(current_pts_));
     current_pts_ += pts_increment;
     return buffer;
   }
diff --git a/chromecast/media/cma/backend/video/av_sync_video.cc b/chromecast/media/cma/backend/video/av_sync_video.cc
index 84be8d1..9b09067 100644
--- a/chromecast/media/cma/backend/video/av_sync_video.cc
+++ b/chromecast/media/cma/backend/video/av_sync_video.cc
@@ -20,16 +20,14 @@
 
 namespace {
 
-constexpr base::TimeDelta kLinearRegressionWindow =
-    base::TimeDelta::FromSeconds(20);
+constexpr base::TimeDelta kLinearRegressionWindow = base::Seconds(20);
 
 // Time interval between AV sync upkeeps.
-constexpr base::TimeDelta kAvSyncUpkeepInterval =
-    base::TimeDelta::FromMilliseconds(16);
+constexpr base::TimeDelta kAvSyncUpkeepInterval = base::Milliseconds(16);
 
 // Threshold where the audio and video PTS are far enough apart such that we
 // want to do a hard correction.
-constexpr base::TimeDelta kMaxAptsError = base::TimeDelta::FromMilliseconds(50);
+constexpr base::TimeDelta kMaxAptsError = base::Milliseconds(50);
 
 // Minimum samples of video PTS before we start doing A/V sync.
 const int kMinVideoPtsSamples = 60;
diff --git a/chromecast/media/cma/backend/volume_control.cc b/chromecast/media/cma/backend/volume_control.cc
index da26b8a8..988f0b4 100644
--- a/chromecast/media/cma/backend/volume_control.cc
+++ b/chromecast/media/cma/backend/volume_control.cc
@@ -199,7 +199,7 @@
     mixer_->Connect();
 
     saved_volumes_writer_ = std::make_unique<base::ImportantFileWriter>(
-        storage_path_, thread_.task_runner(), base::TimeDelta::FromSeconds(1));
+        storage_path_, thread_.task_runner(), base::Seconds(1));
 
     double dbfs;
     for (auto type : {AudioContentType::kMedia, AudioContentType::kAlarm,
diff --git a/chromecast/media/cma/base/balanced_media_task_runner_unittest.cc b/chromecast/media/cma/base/balanced_media_task_runner_unittest.cc
index e65af6e..be94c783 100644
--- a/chromecast/media/cma/base/balanced_media_task_runner_unittest.cc
+++ b/chromecast/media/cma/base/balanced_media_task_runner_unittest.cc
@@ -118,14 +118,14 @@
         timestamps_in_ms[k].size());
     for (size_t i = 0; i < timestamps_in_ms[k].size(); i++) {
       contexts_[k].task_timestamp_list[i] =
-          base::TimeDelta::FromMilliseconds(timestamps_in_ms[k][i]);
+          base::Milliseconds(timestamps_in_ms[k][i]);
     }
   }
 
   // Expected task order (for tasks that are actually run).
   for (size_t k = 0; k < expected_task_timestamps_ms.size(); k++) {
     expected_task_timestamps_.push_back(
-        base::TimeDelta::FromMilliseconds(expected_task_timestamps_ms[k]));
+        base::Milliseconds(expected_task_timestamps_ms[k]));
   }
 }
 
@@ -134,7 +134,7 @@
       FROM_HERE,
       base::BindOnce(&BalancedMediaTaskRunnerTest::OnTestTimeout,
                      base::Unretained(this)),
-      base::TimeDelta::FromSeconds(5));
+      base::Seconds(5));
   ScheduleTask();
 }
 
@@ -232,9 +232,7 @@
       std::vector<int>(expected_timestamps,
                        expected_timestamps + base::size(expected_timestamps)));
 
-  SetupTest(base::TimeDelta::FromMilliseconds(30),
-            timestamps_ms,
-            scheduling_pattern,
+  SetupTest(base::Milliseconds(30), timestamps_ms, scheduling_pattern,
             expected_timestamps_ms);
   ProcessAllTasks();
   base::RunLoop().Run();
@@ -265,9 +263,7 @@
       std::vector<int>(expected_timestamps,
                        expected_timestamps + base::size(expected_timestamps)));
 
-  SetupTest(base::TimeDelta::FromMilliseconds(30),
-            timestamps_ms,
-            scheduling_pattern,
+  SetupTest(base::Milliseconds(30), timestamps_ms, scheduling_pattern,
             expected_timestamps_ms);
   ProcessAllTasks();
   base::RunLoop().Run();
@@ -291,8 +287,8 @@
   std::vector<size_t> scheduling_pattern = {
       0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0};
 
-  SetupTest(base::TimeDelta::FromMilliseconds(30), timestamps,
-            scheduling_pattern, expected_timestamps);
+  SetupTest(base::Milliseconds(30), timestamps, scheduling_pattern,
+            expected_timestamps);
   ProcessAllTasks();
   base::RunLoop().Run();
   EXPECT_TRUE(expected_task_timestamps_.empty());
diff --git a/chromecast/media/cma/base/buffering_controller.cc b/chromecast/media/cma/base/buffering_controller.cc
index 65f2724..c1fd1a3 100644
--- a/chromecast/media/cma/base/buffering_controller.cc
+++ b/chromecast/media/cma/base/buffering_controller.cc
@@ -18,7 +18,7 @@
 namespace {
 
 // Maximum time for buffering before we error out the stream.
-constexpr base::TimeDelta kBufferingTimeout = base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kBufferingTimeout = base::Minutes(1);
 
 }  // namespace
 
diff --git a/chromecast/media/cma/base/buffering_controller_unittest.cc b/chromecast/media/cma/base/buffering_controller_unittest.cc
index 0116352..7f5e381 100644
--- a/chromecast/media/cma/base/buffering_controller_unittest.cc
+++ b/chromecast/media/cma/base/buffering_controller_unittest.cc
@@ -47,14 +47,12 @@
 };
 
 BufferingControllerTest::BufferingControllerTest() {
-  base::TimeDelta low_level_threshold(
-      base::TimeDelta::FromMilliseconds(2000));
-  base::TimeDelta high_level_threshold(
-      base::TimeDelta::FromMilliseconds(6000));
+  base::TimeDelta low_level_threshold(base::Milliseconds(2000));
+  base::TimeDelta high_level_threshold(base::Milliseconds(6000));
 
-  d1_ = low_level_threshold - base::TimeDelta::FromMilliseconds(50);
+  d1_ = low_level_threshold - base::Milliseconds(50);
   d2_ = (low_level_threshold + high_level_threshold) / 2;
-  d3_ = high_level_threshold + base::TimeDelta::FromMilliseconds(50);
+  d3_ = high_level_threshold + base::Milliseconds(50);
 
   scoped_refptr<BufferingConfig> buffering_config(
       new BufferingConfig(low_level_threshold, high_level_threshold));
diff --git a/chromecast/media/cma/base/buffering_frame_provider_unittest.cc b/chromecast/media/cma/base/buffering_frame_provider_unittest.cc
index 74596a7..200d66b7 100644
--- a/chromecast/media/cma/base/buffering_frame_provider_unittest.cc
+++ b/chromecast/media/cma/base/buffering_frame_provider_unittest.cc
@@ -77,7 +77,7 @@
   std::vector<FrameGeneratorForTest::FrameSpec> frame_specs(frame_count);
   for (size_t k = 0; k < frame_specs.size() - 1; k++) {
     frame_specs[k].has_config = (k == 0);
-    frame_specs[k].timestamp = base::TimeDelta::FromMilliseconds(40) * k;
+    frame_specs[k].timestamp = base::Milliseconds(40) * k;
     frame_specs[k].size = 512;
     frame_specs[k].has_decrypt_config = ((k % 3) == 0);
   }
diff --git a/chromecast/media/cma/base/decoder_buffer_adapter_unittest.cc b/chromecast/media/cma/base/decoder_buffer_adapter_unittest.cc
index aa122aad..3888728 100644
--- a/chromecast/media/cma/base/decoder_buffer_adapter_unittest.cc
+++ b/chromecast/media/cma/base/decoder_buffer_adapter_unittest.cc
@@ -18,7 +18,7 @@
 scoped_refptr<media::DecoderBuffer> MakeDecoderBuffer() {
   scoped_refptr<media::DecoderBuffer> buffer =
       media::DecoderBuffer::CopyFrom(kBufferData, kBufferDataSize);
-  buffer->set_timestamp(base::TimeDelta::FromMicroseconds(kBufferTimestampUs));
+  buffer->set_timestamp(base::Microseconds(kBufferTimestampUs));
   return buffer;
 }
 }  // namespace
@@ -51,8 +51,7 @@
   EXPECT_EQ(kBufferTimestampUs, buffer_adapter->timestamp());
 
   const int64_t kTestTimestampUs = 62;
-  buffer_adapter->set_timestamp(
-      base::TimeDelta::FromMicroseconds(kTestTimestampUs));
+  buffer_adapter->set_timestamp(base::Microseconds(kTestTimestampUs));
   EXPECT_EQ(kTestTimestampUs, buffer_adapter->timestamp());
 }
 
diff --git a/chromecast/media/cma/base/demuxer_stream_adapter_unittest.cc b/chromecast/media/cma/base/demuxer_stream_adapter_unittest.cc
index 49e79ac6..d5302c9 100644
--- a/chromecast/media/cma/base/demuxer_stream_adapter_unittest.cc
+++ b/chromecast/media/cma/base/demuxer_stream_adapter_unittest.cc
@@ -96,7 +96,7 @@
       FROM_HERE,
       base::BindOnce(&DemuxerStreamAdapterTest::OnTestTimeout,
                      base::Unretained(this)),
-      base::TimeDelta::FromSeconds(5));
+      base::Seconds(5));
 
   coded_frame_provider_->Read(base::BindOnce(
       &DemuxerStreamAdapterTest::OnNewFrame, base::Unretained(this)));
@@ -119,8 +119,8 @@
   }
 
   ASSERT_TRUE(buffer.get() != NULL);
-  ASSERT_EQ(base::TimeDelta::FromMicroseconds(buffer->timestamp()),
-            base::TimeDelta::FromMilliseconds(40 * frame_received_count_));
+  ASSERT_EQ(base::Microseconds(buffer->timestamp()),
+            base::Milliseconds(40 * frame_received_count_));
   frame_received_count_++;
 
   if (frame_received_count_ >= total_frames_) {
diff --git a/chromecast/media/cma/base/demuxer_stream_for_test.cc b/chromecast/media/cma/base/demuxer_stream_for_test.cc
index cb52ecb..d69cf41b 100644
--- a/chromecast/media/cma/base/demuxer_stream_for_test.cc
+++ b/chromecast/media/cma/base/demuxer_stream_for_test.cc
@@ -38,7 +38,7 @@
         FROM_HERE,
         base::BindOnce(&DemuxerStreamForTest::DoRead, base::Unretained(this),
                        std::move(read_cb)),
-        base::TimeDelta::FromMilliseconds(20));
+        base::Milliseconds(20));
     return;
   }
   DoRead(std::move(read_cb));
@@ -77,8 +77,8 @@
   }
 
   scoped_refptr<::media::DecoderBuffer> buffer(new ::media::DecoderBuffer(16));
-  buffer->set_timestamp(frame_count_ * base::TimeDelta::FromMilliseconds(
-                                           kDemuxerStreamForTestFrameDuration));
+  buffer->set_timestamp(frame_count_ *
+                        base::Milliseconds(kDemuxerStreamForTestFrameDuration));
   frame_count_++;
   std::move(read_cb).Run(kOk, buffer);
 }
diff --git a/chromecast/media/cma/base/multi_demuxer_stream_adapter_unittest.cc b/chromecast/media/cma/base/multi_demuxer_stream_adapter_unittest.cc
index 8310707a9..54cfc13 100644
--- a/chromecast/media/cma/base/multi_demuxer_stream_adapter_unittest.cc
+++ b/chromecast/media/cma/base/multi_demuxer_stream_adapter_unittest.cc
@@ -88,10 +88,10 @@
       FROM_HERE,
       base::BindOnce(&MultiDemuxerStreamAdaptersTest::OnTestTimeout,
                      base::Unretained(this)),
-      base::TimeDelta::FromSeconds(5));
+      base::Seconds(5));
 
-  media_task_runner_factory_ = new BalancedMediaTaskRunnerFactory(
-      base::TimeDelta::FromMilliseconds(kMaxPtsDiffMs));
+  media_task_runner_factory_ =
+      new BalancedMediaTaskRunnerFactory(base::Milliseconds(kMaxPtsDiffMs));
 
   coded_frame_providers_.clear();
   frame_received_count_ = 0;
diff --git a/chromecast/media/cma/decoder/cast_audio_decoder.cc b/chromecast/media/cma/decoder/cast_audio_decoder.cc
index dd294df..008693a 100644
--- a/chromecast/media/cma/decoder/cast_audio_decoder.cc
+++ b/chromecast/media/cma/decoder/cast_audio_decoder.cc
@@ -49,7 +49,7 @@
             std::unique_ptr<uint8_t[]>(const_cast<uint8_t*>(buffer->data())),
             buffer->data_size()),
         buffer_(std::move(buffer)) {
-    set_timestamp(::base::TimeDelta::FromMicroseconds(buffer_->timestamp()));
+    set_timestamp(::base::Microseconds(buffer_->timestamp()));
   }
 
  private:
@@ -144,8 +144,7 @@
     }
 
     // FFmpegAudioDecoder requires a timestamp to be set.
-    base::TimeDelta timestamp =
-        base::TimeDelta::FromMicroseconds(data->timestamp());
+    base::TimeDelta timestamp = base::Microseconds(data->timestamp());
     if (timestamp == ::media::kNoTimestamp)
       data->set_timestamp(base::TimeDelta());
 
@@ -280,9 +279,9 @@
       NOTREACHED();
     }
 
-    result->set_duration(base::TimeDelta::FromMicroseconds(
-        num_frames * base::Time::kMicrosecondsPerSecond /
-        output_config_.samples_per_second));
+    result->set_duration(
+        base::Microseconds(num_frames * base::Time::kMicrosecondsPerSecond /
+                           output_config_.samples_per_second));
     return base::MakeRefCounted<media::DecoderBufferAdapter>(output_config_.id,
                                                              result);
   }
diff --git a/chromecast/media/cma/decoder/external_audio_decoder_wrapper.cc b/chromecast/media/cma/decoder/external_audio_decoder_wrapper.cc
index 0f4ea0f..735a9ab 100644
--- a/chromecast/media/cma/decoder/external_audio_decoder_wrapper.cc
+++ b/chromecast/media/cma/decoder/external_audio_decoder_wrapper.cc
@@ -236,7 +236,7 @@
     ConvertToS16(decoded.get());
   }
 
-  decoded->set_timestamp(base::TimeDelta::FromMicroseconds(data->timestamp()));
+  decoded->set_timestamp(base::Microseconds(data->timestamp()));
   std::move(decode_callback).Run(kDecodeOk, output_config_, std::move(decoded));
 }
 
diff --git a/chromecast/media/cma/pipeline/audio_video_pipeline_impl_unittest.cc b/chromecast/media/cma/pipeline/audio_video_pipeline_impl_unittest.cc
index 767ef6b0..ce041c4 100644
--- a/chromecast/media/cma/pipeline/audio_video_pipeline_impl_unittest.cc
+++ b/chromecast/media/cma/pipeline/audio_video_pipeline_impl_unittest.cc
@@ -204,8 +204,7 @@
         .Times(1)
         .WillOnce(Return(true));
 
-    media_pipeline_->StartPlayingFrom(
-        base::TimeDelta::FromMilliseconds(start_pts));
+    media_pipeline_->StartPlayingFrom(base::Milliseconds(start_pts));
     media_pipeline_->SetPlaybackRate(1.0f);
   }
   void SetCdm() { media_pipeline_->SetCdm(cdm_context_.get()); }
@@ -234,8 +233,7 @@
     frame_specs.resize(kNumFrames);
     for (size_t k = 0; k < frame_specs.size() - 1; k++) {
       frame_specs[k].has_config = (k == 0);
-      frame_specs[k].timestamp =
-          base::TimeDelta::FromMicroseconds(kFrameDurationUs) * k;
+      frame_specs[k].timestamp = base::Microseconds(kFrameDurationUs) * k;
       frame_specs[k].size = kFrameSize;
       frame_specs[k].has_decrypt_config = encrypted_;
     }
diff --git a/chromecast/media/cma/pipeline/av_pipeline_impl.cc b/chromecast/media/cma/pipeline/av_pipeline_impl.cc
index 2e330f3a..45ff12d 100644
--- a/chromecast/media/cma/pipeline/av_pipeline_impl.cc
+++ b/chromecast/media/cma/pipeline/av_pipeline_impl.cc
@@ -265,8 +265,7 @@
   DCHECK(!pushed_buffer_);
 
   if (!buffer->end_of_stream() && buffering_state_.get()) {
-    base::TimeDelta timestamp =
-        base::TimeDelta::FromMicroseconds(buffer->timestamp());
+    base::TimeDelta timestamp = base::Microseconds(buffer->timestamp());
     if (timestamp != ::media::kNoTimestamp)
       buffering_state_->SetMaxRenderingTime(timestamp);
   }
@@ -370,9 +369,8 @@
 
   if (!buffer->end_of_stream() &&
       (buffered_time_ == ::media::kNoTimestamp ||
-       buffered_time_ <
-           base::TimeDelta::FromMicroseconds(buffer->timestamp()))) {
-    buffered_time_ = base::TimeDelta::FromMicroseconds(buffer->timestamp());
+       buffered_time_ < base::Microseconds(buffer->timestamp()))) {
+    buffered_time_ = base::Microseconds(buffer->timestamp());
   }
 
   if (is_at_max_capacity)
@@ -409,10 +407,10 @@
       }
 
       if (playable_buffered_time_ == ::media::kNoTimestamp ||
-          playable_buffered_time_ < base::TimeDelta::FromMicroseconds(
-                                        non_playable_frame->timestamp())) {
+          playable_buffered_time_ <
+              base::Microseconds(non_playable_frame->timestamp())) {
         playable_buffered_time_ =
-            base::TimeDelta::FromMicroseconds(non_playable_frame->timestamp());
+            base::Microseconds(non_playable_frame->timestamp());
         buffering_state_->SetBufferedTime(playable_buffered_time_);
       }
     }
diff --git a/chromecast/media/cma/pipeline/media_pipeline_impl.cc b/chromecast/media/cma/pipeline/media_pipeline_impl.cc
index 9959f5b28..cbbb3f1 100644
--- a/chromecast/media/cma/pipeline/media_pipeline_impl.cc
+++ b/chromecast/media/cma/pipeline/media_pipeline_impl.cc
@@ -33,20 +33,16 @@
 namespace {
 
 // Buffering parameters when load_type is kLoadTypeUrl.
-constexpr base::TimeDelta kLowBufferThresholdURL(
-    base::TimeDelta::FromMilliseconds(2000));
-constexpr base::TimeDelta kHighBufferThresholdURL(
-    base::TimeDelta::FromMilliseconds(6000));
+constexpr base::TimeDelta kLowBufferThresholdURL(base::Milliseconds(2000));
+constexpr base::TimeDelta kHighBufferThresholdURL(base::Milliseconds(6000));
 
 // Buffering parameters when load_type is kLoadTypeMediaSource.
-constexpr base::TimeDelta kLowBufferThresholdMediaSource(
-    base::TimeDelta::FromMilliseconds(0));
+constexpr base::TimeDelta kLowBufferThresholdMediaSource(base::Milliseconds(0));
 constexpr base::TimeDelta kHighBufferThresholdMediaSource(
-    base::TimeDelta::FromMilliseconds(1000));
+    base::Milliseconds(1000));
 
 // Interval between two updates of the media time.
-constexpr base::TimeDelta kTimeUpdateInterval(
-    base::TimeDelta::FromMilliseconds(250));
+constexpr base::TimeDelta kTimeUpdateInterval(base::Milliseconds(250));
 
 // Interval between two updates of the statistics is equal to:
 // kTimeUpdateInterval * kStatisticsUpdatePeriod.
@@ -337,8 +333,8 @@
 base::TimeDelta MediaPipelineImpl::GetMediaTime() const {
   DCHECK(thread_checker_.CalledOnValidThread());
 #if BUILDFLAG(CMA_USE_ACCURATE_MEDIA_TIME)
-  base::TimeDelta time = base::TimeDelta::FromMicroseconds(
-      media_pipeline_backend_->GetCurrentPts());
+  base::TimeDelta time =
+      base::Microseconds(media_pipeline_backend_->GetCurrentPts());
 #else
   base::TimeDelta time = last_media_time_;
 #endif
@@ -514,8 +510,8 @@
   // Wait until the first available timestamp returned from backend, which means
   // the actual playback starts. Some of the rest of the logic, mainly media
   // time interpolating, expects a valid timestamp as baseline.
-  base::TimeDelta media_time = base::TimeDelta::FromMicroseconds(
-      media_pipeline_backend_->GetCurrentPts());
+  base::TimeDelta media_time =
+      base::Microseconds(media_pipeline_backend_->GetCurrentPts());
   if (media_time == ::media::kNoTimestamp &&
       (last_media_time_ == ::media::kNoTimestamp ||
        !media_time_interpolator_.interpolating())) {
@@ -585,7 +581,7 @@
 }
 
 void MediaPipelineImpl::ResetBitrateState() {
-  elapsed_time_delta_ = base::TimeDelta::FromSeconds(0);
+  elapsed_time_delta_ = base::Seconds(0);
   audio_bytes_for_bitrate_estimation_ = 0;
   video_bytes_for_bitrate_estimation_ = 0;
   last_sample_time_ = base::TimeTicks::Now();
diff --git a/chromecast/media/cma/test/frame_segmenter_for_test.cc b/chromecast/media/cma/test/frame_segmenter_for_test.cc
index a7f1709..9860073 100644
--- a/chromecast/media/cma/test/frame_segmenter_for_test.cc
+++ b/chromecast/media/cma/test/frame_segmenter_for_test.cc
@@ -109,8 +109,8 @@
         scoped_refptr<DecoderBufferBase>(new DecoderBufferAdapter(buffer)));
 
     // 1152 samples in an MP3 frame.
-    timestamp += base::TimeDelta::FromMicroseconds(
-        (UINT64_C(1152) * 1000 * 1000) / header.sampling_frequency);
+    timestamp += base::Microseconds((UINT64_C(1152) * 1000 * 1000) /
+                                    header.sampling_frequency);
   }
   return audio_frames;
 }
@@ -252,7 +252,7 @@
   // Create the list of buffers.
   // Totally arbitrary decision: assume a delta POC of 1 is 20ms (50Hz field
   // rate).
-  base::TimeDelta poc_duration = base::TimeDelta::FromMilliseconds(20);
+  base::TimeDelta poc_duration = base::Milliseconds(20);
   for (std::list<H264AccessUnit>::iterator it = access_unit_list.begin();
        it != access_unit_list.end(); ++it) {
     scoped_refptr< ::media::DecoderBuffer> buffer(
diff --git a/chromecast/media/cma/test/mock_frame_consumer.cc b/chromecast/media/cma/test/mock_frame_consumer.cc
index 790b90e..e0d227f 100644
--- a/chromecast/media/cma/test/mock_frame_consumer.cc
+++ b/chromecast/media/cma/test/mock_frame_consumer.cc
@@ -95,7 +95,7 @@
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
         FROM_HERE,
         base::BindOnce(&MockFrameConsumer::ReadFrame, base::Unretained(this)),
-        base::TimeDelta::FromMilliseconds(1));
+        base::Milliseconds(1));
   } else {
     base::ThreadTaskRunnerHandle::Get()->PostTask(
         FROM_HERE,
diff --git a/chromecast/media/cma/test/mock_frame_provider.cc b/chromecast/media/cma/test/mock_frame_provider.cc
index 4b58a6b..4645f60 100644
--- a/chromecast/media/cma/test/mock_frame_provider.cc
+++ b/chromecast/media/cma/test/mock_frame_provider.cc
@@ -50,7 +50,7 @@
         FROM_HERE,
         base::BindOnce(&MockFrameProvider::DoRead, base::Unretained(this),
                        std::move(read_cb)),
-        base::TimeDelta::FromMilliseconds(1));
+        base::Milliseconds(1));
   } else {
     base::ThreadTaskRunnerHandle::Get()->PostTask(
         FROM_HERE, base::BindOnce(&MockFrameProvider::DoRead,
@@ -61,7 +61,7 @@
 void MockFrameProvider::Flush(base::OnceClosure flush_cb) {
   if (delay_flush_) {
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-        FROM_HERE, std::move(flush_cb), base::TimeDelta::FromMilliseconds(10));
+        FROM_HERE, std::move(flush_cb), base::Milliseconds(10));
   } else {
     std::move(flush_cb).Run();
   }
diff --git a/chromecast/media/common/media_pipeline_backend_manager.cc b/chromecast/media/common/media_pipeline_backend_manager.cc
index 46c7dc8..924280d 100644
--- a/chromecast/media/common/media_pipeline_backend_manager.cc
+++ b/chromecast/media/common/media_pipeline_backend_manager.cc
@@ -37,7 +37,7 @@
 
 constexpr int kAudioDecoderLimit = std::numeric_limits<int>::max();
 constexpr int kVideoDecoderLimit = 1;
-constexpr base::TimeDelta kPowerSaveWaitTime = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kPowerSaveWaitTime = base::Seconds(5);
 
 }  // namespace
 
diff --git a/chromecast/media/service/cast_renderer.cc b/chromecast/media/service/cast_renderer.cc
index 963810d..409796d74 100644
--- a/chromecast/media/service/cast_renderer.cc
+++ b/chromecast/media/service/cast_renderer.cc
@@ -40,7 +40,7 @@
 
 // Maximum difference between audio frame PTS and video frame PTS
 // for frames read from the DemuxerStream.
-const base::TimeDelta kMaxDeltaFetcher(base::TimeDelta::FromMilliseconds(2000));
+const base::TimeDelta kMaxDeltaFetcher(base::Milliseconds(2000));
 
 void VideoModeSwitchCompletionCb(::media::PipelineStatusCallback init_cb,
                                  bool success) {
diff --git a/chromecast/metrics/cast_metrics_service_client.cc b/chromecast/metrics/cast_metrics_service_client.cc
index 627abcf..b0bbbf7 100644
--- a/chromecast/metrics/cast_metrics_service_client.cc
+++ b/chromecast/metrics/cast_metrics_service_client.cc
@@ -242,7 +242,7 @@
 }
 
 base::TimeDelta CastMetricsServiceClient::GetStandardUploadInterval() {
-  return base::TimeDelta::FromMinutes(kStandardUploadIntervalMinutes);
+  return base::Minutes(kStandardUploadIntervalMinutes);
 }
 
 ::metrics::MetricsLogStore::StorageLimits
diff --git a/chromecast/net/connectivity_checker_impl.cc b/chromecast/net/connectivity_checker_impl.cc
index 7b4bfa33..f2d270b 100644
--- a/chromecast/net/connectivity_checker_impl.cc
+++ b/chromecast/net/connectivity_checker_impl.cc
@@ -224,7 +224,7 @@
   const int timeout = kRequestTimeoutInSeconds
                       << (check_errors_ > 2 ? 2 : check_errors_);
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, timeout_.callback(), base::TimeDelta::FromSeconds(timeout));
+      FROM_HERE, timeout_.callback(), base::Seconds(timeout));
 }
 
 void ConnectivityCheckerImpl::SetCastMetricsHelperForTesting(
@@ -245,7 +245,7 @@
       FROM_HERE,
       base::BindOnce(&ConnectivityCheckerImpl::OnConnectionChangedInternal,
                      weak_this_),
-      base::TimeDelta::FromSeconds(kNetworkChangedDelayInSeconds));
+      base::Seconds(kNetworkChangedDelayInSeconds));
 }
 
 void ConnectivityCheckerImpl::OnConnectionChangedInternal() {
@@ -314,7 +314,7 @@
   task_runner_->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&ConnectivityCheckerImpl::CheckInternal, weak_this_),
-      base::TimeDelta::FromSeconds(kConnectivitySuccessPeriodSeconds));
+      base::Seconds(kConnectivitySuccessPeriodSeconds));
 }
 
 void ConnectivityCheckerImpl::OnUrlRequestError(ErrorType type) {
@@ -333,7 +333,7 @@
   // Check again.
   task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&ConnectivityCheckerImpl::Check, weak_this_),
-      base::TimeDelta::FromSeconds(kConnectivityPeriodSeconds));
+      base::Seconds(kConnectivityPeriodSeconds));
 }
 
 void ConnectivityCheckerImpl::OnUrlRequestTimeout() {
diff --git a/chromecast/net/time_sync_tracker_fuchsia.cc b/chromecast/net/time_sync_tracker_fuchsia.cc
index 591a732..0ba89ff 100644
--- a/chromecast/net/time_sync_tracker_fuchsia.cc
+++ b/chromecast/net/time_sync_tracker_fuchsia.cc
@@ -63,8 +63,8 @@
 
   if (!is_time_synced_) {
     task_runner_->PostDelayedTask(
-      FROM_HERE, base::BindOnce(&TimeSyncTrackerFuchsia::Poll, weak_this_),
-      base::TimeDelta::FromSeconds(kPollPeriodSeconds));
+        FROM_HERE, base::BindOnce(&TimeSyncTrackerFuchsia::Poll, weak_this_),
+        base::Seconds(kPollPeriodSeconds));
     return;
   }
 
diff --git a/chromecast/renderer/cast_content_renderer_client.cc b/chromecast/renderer/cast_content_renderer_client.cc
index a7184646..10b04e25 100644
--- a/chromecast/renderer/cast_content_renderer_client.cc
+++ b/chromecast/renderer/cast_content_renderer_client.cc
@@ -80,14 +80,12 @@
 // we don't need a larger capacity. Otherwise audio renderer will double the
 // buffer size when underrun happens, which will cause the playback paused to
 // wait long time for enough buffers.
-constexpr base::TimeDelta kAudioRendererMaxCapacity =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kAudioRendererMaxCapacity = base::Seconds(5);
 // Audio renderer algorithm starting capacity.  Configure large enough to
 // prevent underrun.
-constexpr base::TimeDelta kAudioRendererStartingCapacity =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kAudioRendererStartingCapacity = base::Seconds(5);
 constexpr base::TimeDelta kAudioRendererStartingCapacityEncrypted =
-    base::TimeDelta::FromSeconds(5);
+    base::Seconds(5);
 #endif  // defined(OS_ANDROID)
 
 CastContentRendererClient::CastContentRendererClient()
diff --git a/chromecast/ui/display_settings/brightness_animation.cc b/chromecast/ui/display_settings/brightness_animation.cc
index 9e28d41..5358a76 100644
--- a/chromecast/ui/display_settings/brightness_animation.cc
+++ b/chromecast/ui/display_settings/brightness_animation.cc
@@ -14,8 +14,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kManualAnimationDuration =
-    base::TimeDelta::FromSeconds(0);
+constexpr base::TimeDelta kManualAnimationDuration = base::Seconds(0);
 
 // Brightness changes are smoothed linearly over a 50 ms interval by the
 // backlight controller IC.
@@ -52,7 +51,7 @@
         << "Brightness animation started from invalid start_brightness_="
         << start_brightness_;
     start_brightness_ = target_brightness_;
-    SetDuration(base::TimeDelta::FromSeconds(0));
+    SetDuration(base::Seconds(0));
   } else {
     // This will reset the animation timer to the beginning.
     SetDuration(duration);
diff --git a/chromecast/ui/display_settings/color_temperature_animation.cc b/chromecast/ui/display_settings/color_temperature_animation.cc
index 01ab432..ae1c006 100644
--- a/chromecast/ui/display_settings/color_temperature_animation.cc
+++ b/chromecast/ui/display_settings/color_temperature_animation.cc
@@ -19,8 +19,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kManualAnimationDuration =
-    base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kManualAnimationDuration = base::Seconds(1);
 
 const int kAnimationFrameRate = 30;
 
diff --git a/chromecast/ui/display_settings/screen_power_controller_aura.cc b/chromecast/ui/display_settings/screen_power_controller_aura.cc
index 2441aef..9e066c4 100644
--- a/chromecast/ui/display_settings/screen_power_controller_aura.cc
+++ b/chromecast/ui/display_settings/screen_power_controller_aura.cc
@@ -14,16 +14,13 @@
 
 namespace {
 
-constexpr base::TimeDelta kScreenOnOffDuration =
-    base::TimeDelta::FromMilliseconds(200);
+constexpr base::TimeDelta kScreenOnOffDuration = base::Milliseconds(200);
 // These delays are needed to ensure there are no visible artifacts due to the
 // backlight turning on prior to the LCD fully initializing or vice-versa.
 // TODO(b/161140301): Make this configurable for different products
 // TODO(b/161268188): Remove these if the delays can be handled by the kernel
-constexpr base::TimeDelta kDisplayPowerOnDelay =
-    base::TimeDelta::FromMilliseconds(35);
-constexpr base::TimeDelta kDisplayPowerOffDelay =
-    base::TimeDelta::FromMilliseconds(85);
+constexpr base::TimeDelta kDisplayPowerOnDelay = base::Milliseconds(35);
+constexpr base::TimeDelta kDisplayPowerOffDelay = base::Milliseconds(85);
 
 }  // namespace
 
diff --git a/chromecast/ui/display_settings/screen_power_controller_aura_unittest.cc b/chromecast/ui/display_settings/screen_power_controller_aura_unittest.cc
index 677b09b7..2a150e9 100644
--- a/chromecast/ui/display_settings/screen_power_controller_aura_unittest.cc
+++ b/chromecast/ui/display_settings/screen_power_controller_aura_unittest.cc
@@ -20,12 +20,9 @@
 using ::testing::_;
 
 // These constants should be the same as screen_power_controller_aura.cc.
-constexpr base::TimeDelta kScreenOnOffDuration =
-    base::TimeDelta::FromMilliseconds(200);
-constexpr base::TimeDelta kDisplayPowerOnDelay =
-    base::TimeDelta::FromMilliseconds(35);
-constexpr base::TimeDelta kDisplayPowerOffDelay =
-    base::TimeDelta::FromMilliseconds(85);
+constexpr base::TimeDelta kScreenOnOffDuration = base::Milliseconds(200);
+constexpr base::TimeDelta kDisplayPowerOnDelay = base::Milliseconds(35);
+constexpr base::TimeDelta kDisplayPowerOffDelay = base::Milliseconds(85);
 
 class MockScreenPowerControllerDelegate
     : public ScreenPowerController::Delegate {
diff --git a/chromecast/ui/display_settings/screen_power_controller_default.cc b/chromecast/ui/display_settings/screen_power_controller_default.cc
index 7161754..03789f82 100644
--- a/chromecast/ui/display_settings/screen_power_controller_default.cc
+++ b/chromecast/ui/display_settings/screen_power_controller_default.cc
@@ -11,9 +11,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kScreenOnOffDuration =
-    base::TimeDelta::FromMilliseconds(200);
-
+constexpr base::TimeDelta kScreenOnOffDuration = base::Milliseconds(200);
 }
 
 std::unique_ptr<ScreenPowerController> ScreenPowerController::Create(
diff --git a/chromecast/ui/display_settings_manager_impl.cc b/chromecast/ui/display_settings_manager_impl.cc
index b5a1d63..ffaaabd 100644
--- a/chromecast/ui/display_settings_manager_impl.cc
+++ b/chromecast/ui/display_settings_manager_impl.cc
@@ -23,7 +23,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kAnimationDuration = base::TimeDelta::FromSeconds(2);
+constexpr base::TimeDelta kAnimationDuration = base::Seconds(2);
 
 const float kMinApiBrightness = 0.0f;
 const float kMaxApiBrightness = 1.0f;
@@ -132,7 +132,7 @@
 }
 
 void DisplaySettingsManagerImpl::SetBrightness(float brightness) {
-  SetBrightnessSmooth(brightness, base::TimeDelta::FromSeconds(0));
+  SetBrightnessSmooth(brightness, base::Seconds(0));
 }
 
 void DisplaySettingsManagerImpl::SetBrightnessSmooth(float brightness,
diff --git a/chromecast/ui/media_control_ui.cc b/chromecast/ui/media_control_ui.cc
index bca1be3..61715bf 100644
--- a/chromecast/ui/media_control_ui.cc
+++ b/chromecast/ui/media_control_ui.cc
@@ -26,8 +26,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kUpdateMediaTimePeriod =
-    base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kUpdateMediaTimePeriod = base::Seconds(1);
 const int kButtonSmallHeight = 56;
 const int kButtonBigHeight = 124;
 
diff --git a/chromecast/ui/media_overlay_impl.cc b/chromecast/ui/media_overlay_impl.cc
index 372b9f4..681f2cf 100644
--- a/chromecast/ui/media_overlay_impl.cc
+++ b/chromecast/ui/media_overlay_impl.cc
@@ -37,7 +37,7 @@
 constexpr int kVolumeBarHeight = 16;
 constexpr int kVolumePopupPadding = 16;
 constexpr int kVolumePopupBottomInset = 32;
-constexpr base::TimeDelta kUiHideDelay = base::TimeDelta::FromSeconds(3);
+constexpr base::TimeDelta kUiHideDelay = base::Seconds(3);
 
 }  // namespace
 
diff --git a/chromeos/assistant/test_support/expect_utils.h b/chromeos/assistant/test_support/expect_utils.h
index e888582..b935f2b 100644
--- a/chromeos/assistant/test_support/expect_utils.h
+++ b/chromeos/assistant/test_support/expect_utils.h
@@ -30,7 +30,7 @@
       FROM_HERE,
       base::BindOnce(CheckResult<T>, std::move(quit), expected_value,
                      value_callback),
-      base::TimeDelta::FromMilliseconds(10));
+      base::Milliseconds(10));
 }
 
 }  // namespace
diff --git a/chromeos/attestation/attestation_flow.cc b/chromeos/attestation/attestation_flow.cc
index 85b5648..1df0a18 100644
--- a/chromeos/attestation/attestation_flow.cc
+++ b/chromeos/attestation/attestation_flow.cc
@@ -84,9 +84,8 @@
     : attestation_client_(AttestationClient::Get()),
       server_proxy_(std::move(server_proxy)),
       crypto_key_type_(crypto_key_type),
-      ready_timeout_(base::TimeDelta::FromSeconds(kReadyTimeoutInSeconds)),
-      retry_delay_(
-          base::TimeDelta::FromMilliseconds(kRetryDelayInMilliseconds)) {}
+      ready_timeout_(base::Seconds(kReadyTimeoutInSeconds)),
+      retry_delay_(base::Milliseconds(kRetryDelayInMilliseconds)) {}
 
 AttestationFlow::AttestationFlow(std::unique_ptr<ServerProxy> server_proxy)
     : AttestationFlow(std::move(server_proxy), ::attestation::KEY_TYPE_RSA) {}
diff --git a/chromeos/attestation/attestation_flow_integrated.cc b/chromeos/attestation/attestation_flow_integrated.cc
index fd7d123c..11d8bea 100644
--- a/chromeos/attestation/attestation_flow_integrated.cc
+++ b/chromeos/attestation/attestation_flow_integrated.cc
@@ -29,11 +29,11 @@
 
 // A reasonable timeout that gives enough time for attestation to be ready,
 // yet does not make the caller wait too long.
-constexpr base::TimeDelta kReadyTimeout = base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kReadyTimeout = base::Seconds(60);
 
 // Delay before checking again whether the TPM has been prepared for
 // attestation.
-constexpr base::TimeDelta kRetryDelay = base::TimeDelta::FromMilliseconds(300);
+constexpr base::TimeDelta kRetryDelay = base::Milliseconds(300);
 
 // Values for the attestation server switch.
 constexpr char kAttestationServerDefault[] = "default";
diff --git a/chromeos/attestation/attestation_flow_integrated_unittest.cc b/chromeos/attestation/attestation_flow_integrated_unittest.cc
index 3c60f72..ef26451 100644
--- a/chromeos/attestation/attestation_flow_integrated_unittest.cc
+++ b/chromeos/attestation/attestation_flow_integrated_unittest.cc
@@ -274,7 +274,7 @@
       .WillOnce(SaveArg<1>(&certificate));
 
   AttestationFlowIntegrated flow;
-  flow.set_retry_delay_for_testing(base::TimeDelta::FromMilliseconds(10));
+  flow.set_retry_delay_for_testing(base::Milliseconds(10));
   flow.GetCertificate(
       static_cast<AttestationCertificateProfile>(request.certificate_profile()),
       AccountId::FromUserEmail(request.username()), request.request_origin(),
@@ -308,8 +308,8 @@
   EXPECT_CALL(callback, Run(_, _)).WillOnce(SaveArg<0>(&status));
 
   AttestationFlowIntegrated flow;
-  flow.set_ready_timeout_for_testing(base::TimeDelta::FromMilliseconds(10));
-  flow.set_retry_delay_for_testing(base::TimeDelta::FromMilliseconds(3));
+  flow.set_ready_timeout_for_testing(base::Milliseconds(10));
+  flow.set_retry_delay_for_testing(base::Milliseconds(3));
   flow.GetCertificate(
       static_cast<AttestationCertificateProfile>(request.certificate_profile()),
       AccountId::FromUserEmail(request.username()), request.request_origin(),
diff --git a/chromeos/attestation/attestation_flow_unittest.cc b/chromeos/attestation/attestation_flow_unittest.cc
index c6318675..740daee4 100644
--- a/chromeos/attestation/attestation_flow_unittest.cc
+++ b/chromeos/attestation/attestation_flow_unittest.cc
@@ -445,7 +445,7 @@
 
   std::unique_ptr<ServerProxy> proxy_interface(proxy.release());
   AttestationFlow flow(std::move(proxy_interface));
-  flow.set_retry_delay(base::TimeDelta::FromMilliseconds(30));
+  flow.set_retry_delay(base::Milliseconds(30));
   flow.GetCertificate(PROFILE_ENTERPRISE_USER_CERTIFICATE, account_id,
                       "fake_origin", true, std::string() /* key_name */,
                       std::move(callback));
@@ -487,8 +487,8 @@
 
   std::unique_ptr<ServerProxy> proxy_interface(proxy.release());
   AttestationFlow flow(std::move(proxy_interface));
-  flow.set_ready_timeout(base::TimeDelta::FromMilliseconds(20));
-  flow.set_retry_delay(base::TimeDelta::FromMilliseconds(6));
+  flow.set_ready_timeout(base::Milliseconds(20));
+  flow.set_retry_delay(base::Milliseconds(6));
   flow.GetCertificate(PROFILE_ENTERPRISE_USER_CERTIFICATE, EmptyAccountId(),
                       "fake_origin", true, std::string() /* key_name */,
                       std::move(callback));
@@ -522,8 +522,8 @@
 
   std::unique_ptr<ServerProxy> proxy_interface(proxy.release());
   AttestationFlow flow(std::move(proxy_interface));
-  flow.set_ready_timeout(base::TimeDelta::FromMilliseconds(20));
-  flow.set_retry_delay(base::TimeDelta::FromMilliseconds(6));
+  flow.set_ready_timeout(base::Milliseconds(20));
+  flow.set_retry_delay(base::Milliseconds(6));
   flow.GetCertificate(PROFILE_ENTERPRISE_USER_CERTIFICATE, EmptyAccountId(),
                       "fake_origin", true, std::string() /* key_name */,
                       std::move(callback));
diff --git a/chromeos/components/cdm_factory_daemon/content_decryption_module_adapter_unittest.cc b/chromeos/components/cdm_factory_daemon/content_decryption_module_adapter_unittest.cc
index d8500fe..067d54d 100644
--- a/chromeos/components/cdm_factory_daemon/content_decryption_module_adapter_unittest.cc
+++ b/chromeos/components/cdm_factory_daemon/content_decryption_module_adapter_unittest.cc
@@ -117,8 +117,8 @@
     const std::vector<uint8_t> data) {
   scoped_refptr<media::DecoderBuffer> buffer = media::DecoderBuffer::CopyFrom(
       data.data(), data.size(), kFakeSideData.data(), kFakeSideData.size());
-  buffer->set_timestamp(base::TimeDelta::FromSeconds(kFakeTimestampSec));
-  buffer->set_duration(base::TimeDelta::FromSeconds(kFakeDurationSec));
+  buffer->set_timestamp(base::Seconds(kFakeTimestampSec));
+  buffer->set_duration(base::Seconds(kFakeDurationSec));
   return buffer;
 }
 
diff --git a/chromeos/components/feature_usage/feature_usage_metrics.cc b/chromeos/components/feature_usage/feature_usage_metrics.cc
index 1c4f23a..0bee91b 100644
--- a/chromeos/components/feature_usage/feature_usage_metrics.cc
+++ b/chromeos/components/feature_usage/feature_usage_metrics.cc
@@ -33,11 +33,11 @@
 
 // First time periodic metrics are reported after 'kInitialInterval` time.
 constexpr base::TimeDelta FeatureUsageMetrics::kInitialInterval =
-    base::TimeDelta::FromMinutes(1);
+    base::Minutes(1);
 
 // Consecutive reports run every `kRepeatedInterval`
 constexpr base::TimeDelta FeatureUsageMetrics::kRepeatedInterval =
-    base::TimeDelta::FromMinutes(30);
+    base::Minutes(30);
 
 FeatureUsageMetrics::FeatureUsageMetrics(const std::string& feature_name,
                                          Delegate* const delegate)
diff --git a/chromeos/components/feature_usage/feature_usage_metrics_unittest.cc b/chromeos/components/feature_usage/feature_usage_metrics_unittest.cc
index 073ad897..af04edc 100644
--- a/chromeos/components/feature_usage/feature_usage_metrics_unittest.cc
+++ b/chromeos/components/feature_usage/feature_usage_metrics_unittest.cc
@@ -84,7 +84,7 @@
 
 TEST_F(FeatureUsageMetricsTest, RecordLongUsetime) {
   size_t repeated_periods = 4;
-  const base::TimeDelta extra_small_use_time = base::TimeDelta::FromMinutes(3);
+  const base::TimeDelta extra_small_use_time = base::Minutes(3);
   const base::TimeDelta use_time =
       FeatureUsageMetrics::kRepeatedInterval * repeated_periods +
       extra_small_use_time;
diff --git a/chromeos/components/local_search_service/search_metrics_reporter.cc b/chromeos/components/local_search_service/search_metrics_reporter.cc
index 7bcd1d73..64558428 100644
--- a/chromeos/components/local_search_service/search_metrics_reporter.cc
+++ b/chromeos/components/local_search_service/search_metrics_reporter.cc
@@ -16,8 +16,7 @@
 namespace {
 
 // Interval for asking metrics::DailyEvent to check whether a day has passed.
-constexpr base::TimeDelta kCheckDailyEventInternal =
-    base::TimeDelta::FromMinutes(30);
+constexpr base::TimeDelta kCheckDailyEventInternal = base::Minutes(30);
 
 // Prefs corresponding to IndexId values.
 constexpr std::array<const char*, SearchMetricsReporter::kNumberIndexIds>
diff --git a/chromeos/components/phonehub/connection_scheduler_impl_unittest.cc b/chromeos/components/phonehub/connection_scheduler_impl_unittest.cc
index 4724ce8..561b5c7 100644
--- a/chromeos/components/phonehub/connection_scheduler_impl_unittest.cc
+++ b/chromeos/components/phonehub/connection_scheduler_impl_unittest.cc
@@ -117,7 +117,7 @@
   EXPECT_EQ(0, GetBackoffFailureCount());
 
   // Fast forward time and confirm no other retries have been made.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(100));
+  task_environment_.FastForwardBy(base::Seconds(100));
   EXPECT_EQ(3u, fake_connection_manager_->num_attempt_connection_calls());
   EXPECT_EQ(0, GetBackoffFailureCount());
   EXPECT_EQ(FeatureStatus::kEnabledAndConnected,
@@ -148,7 +148,7 @@
   EXPECT_EQ(1u, fake_connection_manager_->num_disconnect_calls());
 
   // Fast forward time and confirm no other retries have been made.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(100));
+  task_environment_.FastForwardBy(base::Seconds(100));
   EXPECT_EQ(0, GetBackoffFailureCount());
   EXPECT_EQ(1u, fake_connection_manager_->num_attempt_connection_calls());
 
diff --git a/chromeos/components/phonehub/cros_state_sender.cc b/chromeos/components/phonehub/cros_state_sender.cc
index 01786746..92ac916c 100644
--- a/chromeos/components/phonehub/cros_state_sender.cc
+++ b/chromeos/components/phonehub/cros_state_sender.cc
@@ -16,8 +16,7 @@
 // The minimum time to wait before checking whether the phone has responded to
 // status messages sent by CrosStateSender, and re-sending the status messages
 // if there was no response (no phone status model exists).
-constexpr base::TimeDelta kMinimumRetryDelay =
-    base::TimeDelta::FromSeconds(15u);
+constexpr base::TimeDelta kMinimumRetryDelay = base::Seconds(15u);
 
 // The amount the previous delay is multiplied by to determine the new amount
 // of time to wait before determining whether CrosStateSender should resend the
diff --git a/chromeos/components/phonehub/cros_state_sender_unittest.cc b/chromeos/components/phonehub/cros_state_sender_unittest.cc
index 60dbdd7..313ab42 100644
--- a/chromeos/components/phonehub/cros_state_sender_unittest.cc
+++ b/chromeos/components/phonehub/cros_state_sender_unittest.cc
@@ -65,28 +65,28 @@
   EXPECT_EQ(1u, fake_message_sender_->GetCrosStateCallCount());
 
   // The retry time follows a doubling sequence.
-  EXPECT_EQ(base::TimeDelta::FromSeconds(15u), GetRetryDelay());
+  EXPECT_EQ(base::Seconds(15u), GetRetryDelay());
   mock_timer_->Fire();
   EXPECT_TRUE(mock_timer_->IsRunning());
   EXPECT_EQ(2u, fake_message_sender_->GetCrosStateCallCount());
 
-  EXPECT_EQ(base::TimeDelta::FromSeconds(30u), GetRetryDelay());
+  EXPECT_EQ(base::Seconds(30u), GetRetryDelay());
   mock_timer_->Fire();
   EXPECT_TRUE(mock_timer_->IsRunning());
   EXPECT_EQ(3u, fake_message_sender_->GetCrosStateCallCount());
 
-  EXPECT_EQ(base::TimeDelta::FromSeconds(60u), GetRetryDelay());
+  EXPECT_EQ(base::Seconds(60u), GetRetryDelay());
   mock_timer_->Fire();
   EXPECT_TRUE(mock_timer_->IsRunning());
   EXPECT_EQ(4u, fake_message_sender_->GetCrosStateCallCount());
 
   // The phone model becomes populated, stops retrying.
-  EXPECT_EQ(base::TimeDelta::FromSeconds(120u), GetRetryDelay());
+  EXPECT_EQ(base::Seconds(120u), GetRetryDelay());
   phone_model_->SetPhoneStatusModel(CreateFakePhoneStatusModel());
   mock_timer_->Fire();
   EXPECT_FALSE(mock_timer_->IsRunning());
   EXPECT_EQ(4u, fake_message_sender_->GetCrosStateCallCount());
-  EXPECT_EQ(base::TimeDelta::FromSeconds(120u), GetRetryDelay());
+  EXPECT_EQ(base::Seconds(120u), GetRetryDelay());
 
   fake_connection_manager_->SetStatus(
       secure_channel::ConnectionManager::Status::kConnecting);
diff --git a/chromeos/components/phonehub/invalid_connection_disconnector.cc b/chromeos/components/phonehub/invalid_connection_disconnector.cc
index e8266a0..a155dac8 100644
--- a/chromeos/components/phonehub/invalid_connection_disconnector.cc
+++ b/chromeos/components/phonehub/invalid_connection_disconnector.cc
@@ -17,7 +17,7 @@
 // the phone is connected. If the phone status model is still empty after this
 // period of time, ConnectionManager should call Disconnect().
 constexpr base::TimeDelta kEmptyPhoneStatusModelGracePeriodTimeDelta =
-    base::TimeDelta::FromSeconds(45);
+    base::Seconds(45);
 
 }  // namespace
 
diff --git a/chromeos/components/phonehub/notification_access_setup_operation.cc b/chromeos/components/phonehub/notification_access_setup_operation.cc
index 3b6c07a..f64bff62 100644
--- a/chromeos/components/phonehub/notification_access_setup_operation.cc
+++ b/chromeos/components/phonehub/notification_access_setup_operation.cc
@@ -28,10 +28,8 @@
 
 // Used for metrics; do not change.
 constexpr size_t kNumSetupDurationHistogramBuckets = 50;
-constexpr base::TimeDelta kSetupDurationHistogramMinTime =
-    base::TimeDelta::FromSeconds(1);
-constexpr base::TimeDelta kSetupDurationHistogramMaxTime =
-    base::TimeDelta::FromMinutes(10);
+constexpr base::TimeDelta kSetupDurationHistogramMinTime = base::Seconds(1);
+constexpr base::TimeDelta kSetupDurationHistogramMaxTime = base::Minutes(10);
 
 }  // namespace
 
diff --git a/chromeos/components/phonehub/recent_apps_interaction_handler_unittest.cc b/chromeos/components/phonehub/recent_apps_interaction_handler_unittest.cc
index e80bab1..c6e9779 100644
--- a/chromeos/components/phonehub/recent_apps_interaction_handler_unittest.cc
+++ b/chromeos/components/phonehub/recent_apps_interaction_handler_unittest.cc
@@ -91,14 +91,12 @@
   EXPECT_EQ(now, handler().recent_app_metadata_list_[0].second);
 
   // The same package name only update last accessed timestamp.
-  const base::Time next_minute =
-      base::Time::Now() + base::TimeDelta::FromMinutes(1);
+  const base::Time next_minute = base::Time::Now() + base::Minutes(1);
   handler().NotifyRecentAppAddedOrUpdated(app_metadata1, next_minute);
   EXPECT_EQ(1U, handler().recent_app_metadata_list_.size());
   EXPECT_EQ(next_minute, handler().recent_app_metadata_list_[0].second);
 
-  const base::Time next_hour =
-      base::Time::Now() + base::TimeDelta::FromHours(1);
+  const base::Time next_hour = base::Time::Now() + base::Hours(1);
   handler().NotifyRecentAppAddedOrUpdated(app_metadata2, next_hour);
   EXPECT_EQ(2U, handler().recent_app_metadata_list_.size());
 }
@@ -120,10 +118,8 @@
       Notification::AppMetadata(app_visible_name3, package_name3, gfx::Image());
 
   const base::Time now = base::Time::Now();
-  const base::Time next_minute =
-      base::Time::Now() + base::TimeDelta::FromMinutes(1);
-  const base::Time next_hour =
-      base::Time::Now() + base::TimeDelta::FromHours(1);
+  const base::Time next_minute = base::Time::Now() + base::Minutes(1);
+  const base::Time next_hour = base::Time::Now() + base::Hours(1);
 
   handler().NotifyRecentAppAddedOrUpdated(app_metadata1, now);
   handler().NotifyRecentAppAddedOrUpdated(app_metadata2, next_minute);
@@ -152,12 +148,9 @@
   auto app_metadata6 =
       Notification::AppMetadata(app_visible_name6, package_name6, gfx::Image());
 
-  const base::Time next_two_hour =
-      base::Time::Now() + base::TimeDelta::FromHours(2);
-  const base::Time next_three_hour =
-      base::Time::Now() + base::TimeDelta::FromHours(3);
-  const base::Time next_four_hour =
-      base::Time::Now() + base::TimeDelta::FromHours(4);
+  const base::Time next_two_hour = base::Time::Now() + base::Hours(2);
+  const base::Time next_three_hour = base::Time::Now() + base::Hours(3);
+  const base::Time next_four_hour = base::Time::Now() + base::Hours(4);
 
   handler().NotifyRecentAppAddedOrUpdated(app_metadata4, next_two_hour);
   handler().NotifyRecentAppAddedOrUpdated(app_metadata5, next_three_hour);
diff --git a/chromeos/components/projector_app/projector_oauth_token_fetcher.cc b/chromeos/components/projector_app/projector_oauth_token_fetcher.cc
index c14aae2..84dea1a 100644
--- a/chromeos/components/projector_app/projector_oauth_token_fetcher.cc
+++ b/chromeos/components/projector_app/projector_oauth_token_fetcher.cc
@@ -21,7 +21,7 @@
 // The cached OAuth token needs to be valid at least until base::Time::Now()
 // + `kBufferTime`. The buffer time will be useful to ensure that we don't send
 // soon to expire tokens to the Projector app.
-const base::TimeDelta kBufferTime = base::TimeDelta::FromSeconds(4);
+const base::TimeDelta kBufferTime = base::Seconds(4);
 
 signin::IdentityManager* GetIdentityManager() {
   return chromeos::ProjectorAppClient::Get()->GetIdentityManager();
diff --git a/chromeos/components/projector_app/test/projector_oauth_token_fetcher_unittest.cc b/chromeos/components/projector_app/test/projector_oauth_token_fetcher_unittest.cc
index ac5cc2a..778d9d5 100644
--- a/chromeos/components/projector_app/test/projector_oauth_token_fetcher_unittest.cc
+++ b/chromeos/components/projector_app/test/projector_oauth_token_fetcher_unittest.cc
@@ -17,7 +17,7 @@
 const char kTestUserEmail[] = "testuser1@gmail.com";
 const char kTestUser2Email[] = "testuser2@gmail.com";
 
-const base::TimeDelta kExpiryTimeFromNow = base::TimeDelta::FromMinutes(10);
+const base::TimeDelta kExpiryTimeFromNow = base::Minutes(10);
 }  // namespace
 
 namespace chromeos {
diff --git a/chromeos/components/proximity_auth/proximity_monitor_impl.cc b/chromeos/components/proximity_auth/proximity_monitor_impl.cc
index bd264e7..6a6d016 100644
--- a/chromeos/components/proximity_auth/proximity_monitor_impl.cc
+++ b/chromeos/components/proximity_auth/proximity_monitor_impl.cc
@@ -97,7 +97,7 @@
         base::BindOnce(
             &ProximityMonitorImpl::PerformScheduledUpdatePollingState,
             polling_weak_ptr_factory_.GetWeakPtr()),
-        base::TimeDelta::FromMilliseconds(kPollingTimeoutMs));
+        base::Milliseconds(kPollingTimeoutMs));
     Poll();
   } else {
     polling_weak_ptr_factory_.InvalidateWeakPtrs();
diff --git a/chromeos/components/proximity_auth/unlock_manager_impl.cc b/chromeos/components/proximity_auth/unlock_manager_impl.cc
index 512f30c..5c136f7b 100644
--- a/chromeos/components/proximity_auth/unlock_manager_impl.cc
+++ b/chromeos/components/proximity_auth/unlock_manager_impl.cc
@@ -42,7 +42,7 @@
 
 // The maximum amount of time that the unlock manager can stay in the 'waking
 // up' state after resuming from sleep.
-constexpr base::TimeDelta kWakingUpDuration = base::TimeDelta::FromSeconds(15);
+constexpr base::TimeDelta kWakingUpDuration = base::Seconds(15);
 
 // The maximum amount of time that we wait for the BluetoothAdapter to be
 // fully initialized after resuming from sleep.
@@ -50,18 +50,15 @@
 // returns incorrect presence and power values directly after resume, and does
 // not return correct values until about 1-2 seconds later. Remove this once
 // the bug is fixed.
-constexpr base::TimeDelta kBluetoothAdapterResumeMaxDuration =
-    base::TimeDelta::FromSeconds(3);
+constexpr base::TimeDelta kBluetoothAdapterResumeMaxDuration = base::Seconds(3);
 
 // The limit on the elapsed time for an auth attempt. If an auth attempt exceeds
 // this limit, it will time out and be rejected. This is provided as a failsafe,
 // in case something goes wrong.
-constexpr base::TimeDelta kAuthAttemptTimeout = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kAuthAttemptTimeout = base::Seconds(5);
 
-constexpr base::TimeDelta kMinExtendedDuration =
-    base::TimeDelta::FromMilliseconds(1);
-constexpr base::TimeDelta kMaxExtendedDuration =
-    base::TimeDelta::FromSeconds(15);
+constexpr base::TimeDelta kMinExtendedDuration = base::Milliseconds(1);
+constexpr base::TimeDelta kMaxExtendedDuration = base::Seconds(15);
 const int kNumDurationMetricBuckets = 100;
 
 const char kGetRemoteStatusNone[] = "none";
diff --git a/chromeos/components/sync_wifi/synced_network_metrics_logger.cc b/chromeos/components/sync_wifi/synced_network_metrics_logger.cc
index b0b5494..e8058ae 100644
--- a/chromeos/components/sync_wifi/synced_network_metrics_logger.cc
+++ b/chromeos/components/sync_wifi/synced_network_metrics_logger.cc
@@ -195,8 +195,7 @@
   // skipped when this class was recently created since 'connecting' may have
   // happened before we were tracking.
   if (!connecting_guids_.contains(network->guid()) &&
-      (base::Time::Now() - initialized_timestamp_) >
-          base::TimeDelta::FromSeconds(5)) {
+      (base::Time::Now() - initialized_timestamp_) > base::Seconds(5)) {
     return;
   }
 
diff --git a/chromeos/components/sync_wifi/synced_network_metrics_logger_unittest.cc b/chromeos/components/sync_wifi/synced_network_metrics_logger_unittest.cc
index 5429874..e64f7ab 100644
--- a/chromeos/components/sync_wifi/synced_network_metrics_logger_unittest.cc
+++ b/chromeos/components/sync_wifi/synced_network_metrics_logger_unittest.cc
@@ -105,9 +105,7 @@
   }
 
   // Skips the system clock ahead by 10 seconds.
-  void SkipAhead() {
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
-  }
+  void SkipAhead() { task_environment_.FastForwardBy(base::Seconds(10)); }
 
  private:
   std::unique_ptr<NetworkTestHelper> network_test_helper_;
diff --git a/chromeos/components/sync_wifi/synced_network_updater_impl.cc b/chromeos/components/sync_wifi/synced_network_updater_impl.cc
index a60bd23..9c7fce9 100644
--- a/chromeos/components/sync_wifi/synced_network_updater_impl.cc
+++ b/chromeos/components/sync_wifi/synced_network_updater_impl.cc
@@ -26,7 +26,7 @@
 namespace {
 
 const int kMaxRetries = 3;
-constexpr base::TimeDelta kTimeout = base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kTimeout = base::Minutes(1);
 
 }  // namespace
 
@@ -159,8 +159,7 @@
         NetworkHandler::Get()->network_metadata_store();
     metadata_store->SetIsConfiguredBySync(*network_guid);
     metadata_store->SetLastConnectedTimestamp(
-        *network_guid,
-        base::TimeDelta::FromMilliseconds(proto.last_connected_timestamp()));
+        *network_guid, base::Milliseconds(proto.last_connected_timestamp()));
   } else {
     NET_LOG(ERROR) << "Failed to configure network "
                    << NetworkId(NetworkStateFromNetworkIdentifier(id))
@@ -184,8 +183,7 @@
         NetworkHandler::Get()->network_metadata_store();
     metadata_store->SetIsConfiguredBySync(network_guid);
     metadata_store->SetLastConnectedTimestamp(
-        network_guid,
-        base::TimeDelta::FromMilliseconds(proto.last_connected_timestamp()));
+        network_guid, base::Milliseconds(proto.last_connected_timestamp()));
   } else {
     NET_LOG(ERROR) << "Failed to update network "
                    << NetworkGuidId(network_guid);
diff --git a/chromeos/components/sync_wifi/wifi_configuration_bridge.cc b/chromeos/components/sync_wifi/wifi_configuration_bridge.cc
index 7b32e0c1..14e24ca 100644
--- a/chromeos/components/sync_wifi/wifi_configuration_bridge.cc
+++ b/chromeos/components/sync_wifi/wifi_configuration_bridge.cc
@@ -54,8 +54,7 @@
 // Delay before attempting to save a newly configured network to sync.  This
 // is to give time for an initial connection attempt to fail in case of a bad
 // password, which will prevent syncing.
-constexpr base::TimeDelta kSyncAfterCreatedTimeout =
-    base::TimeDelta::FromSeconds(20);
+constexpr base::TimeDelta kSyncAfterCreatedTimeout = base::Seconds(20);
 
 }  // namespace
 
diff --git a/chromeos/components/tether/connect_tethering_operation_unittest.cc b/chromeos/components/tether/connect_tethering_operation_unittest.cc
index 62836e6..8ac3118 100644
--- a/chromeos/components/tether/connect_tethering_operation_unittest.cc
+++ b/chromeos/components/tether/connect_tethering_operation_unittest.cc
@@ -37,7 +37,7 @@
 namespace {
 
 constexpr base::TimeDelta kConnectTetheringResponseTimeSeconds =
-    base::TimeDelta::FromSeconds(15);
+    base::Seconds(15);
 
 // Used to verify the ConnectTetheringOperation notifies the observer
 // when appropriate.
diff --git a/chromeos/components/tether/connection_preserver_impl.cc b/chromeos/components/tether/connection_preserver_impl.cc
index 55a074a..dc06ee4a 100644
--- a/chromeos/components/tether/connection_preserver_impl.cc
+++ b/chromeos/components/tether/connection_preserver_impl.cc
@@ -189,7 +189,7 @@
   connection_attempt_->SetDelegate(this);
 
   preserved_connection_timer_->Start(
-      FROM_HERE, base::TimeDelta::FromSeconds(kTimeoutSeconds),
+      FROM_HERE, base::Seconds(kTimeoutSeconds),
       base::BindOnce(
           &ConnectionPreserverImpl::RemovePreservedConnectionIfPresent,
           weak_ptr_factory_.GetWeakPtr()));
diff --git a/chromeos/components/tether/disconnect_tethering_operation_unittest.cc b/chromeos/components/tether/disconnect_tethering_operation_unittest.cc
index 80debc1..4efa9ae 100644
--- a/chromeos/components/tether/disconnect_tethering_operation_unittest.cc
+++ b/chromeos/components/tether/disconnect_tethering_operation_unittest.cc
@@ -30,8 +30,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kDisconnectTetheringRequestTime =
-    base::TimeDelta::FromSeconds(3);
+constexpr base::TimeDelta kDisconnectTetheringRequestTime = base::Seconds(3);
 
 // Used to verify the DisonnectTetheringOperation notifies the observer when
 // appropriate.
diff --git a/chromeos/components/tether/host_connection_metrics_logger_unittest.cc b/chromeos/components/tether/host_connection_metrics_logger_unittest.cc
index ee657d64..bc90d5c7a 100644
--- a/chromeos/components/tether/host_connection_metrics_logger_unittest.cc
+++ b/chromeos/components/tether/host_connection_metrics_logger_unittest.cc
@@ -18,7 +18,7 @@
 namespace tether {
 
 namespace {
-constexpr base::TimeDelta kConnectToHostTime = base::TimeDelta::FromSeconds(13);
+constexpr base::TimeDelta kConnectToHostTime = base::Seconds(13);
 const char kTetherNetworkGuid[] = "tetherNetworkGuid";
 const char kWifiNetworkGuid[] = "wifiNetworkGuid";
 }  // namespace
diff --git a/chromeos/components/tether/host_scan_scheduler_impl.cc b/chromeos/components/tether/host_scan_scheduler_impl.cc
index 0e1f3456..4b622fe 100644
--- a/chromeos/components/tether/host_scan_scheduler_impl.cc
+++ b/chromeos/components/tether/host_scan_scheduler_impl.cc
@@ -124,7 +124,7 @@
 
   last_scan_end_timestamp_ = clock_->Now();
   host_scan_batch_timer_->Start(
-      FROM_HERE, base::TimeDelta::FromSeconds(kMaxNumSecondsBetweenBatchScans),
+      FROM_HERE, base::Seconds(kMaxNumSecondsBetweenBatchScans),
       base::BindOnce(&HostScanSchedulerImpl::LogHostScanBatchMetric,
                      weak_ptr_factory_.GetWeakPtr()));
 }
@@ -199,11 +199,11 @@
 
   base::TimeDelta batch_duration =
       last_scan_end_timestamp_ - last_scan_batch_start_timestamp_;
-  UMA_HISTOGRAM_CUSTOM_TIMES(
-      "InstantTethering.HostScanBatchDuration", batch_duration,
-      base::TimeDelta::FromSeconds(kMinScanMetricSeconds) /* min */,
-      base::TimeDelta::FromDays(kMaxScanMetricsDays) /* max */,
-      kNumMetricsBuckets /* bucket_count */);
+  UMA_HISTOGRAM_CUSTOM_TIMES("InstantTethering.HostScanBatchDuration",
+                             batch_duration,
+                             base::Seconds(kMinScanMetricSeconds) /* min */,
+                             base::Days(kMaxScanMetricsDays) /* max */,
+                             kNumMetricsBuckets /* bucket_count */);
 
   PA_LOG(VERBOSE) << "Logging host scan batch duration. Duration was "
                   << batch_duration.InSeconds() << " seconds.";
diff --git a/chromeos/components/tether/host_scan_scheduler_impl_unittest.cc b/chromeos/components/tether/host_scan_scheduler_impl_unittest.cc
index 8804c6ca..d9c9373 100644
--- a/chromeos/components/tether/host_scan_scheduler_impl_unittest.cc
+++ b/chromeos/components/tether/host_scan_scheduler_impl_unittest.cc
@@ -71,7 +71,7 @@
 
     // Advance the clock by an arbitrary value to ensure that when Now() is
     // called, the Unix epoch will not be returned.
-    test_clock_.Advance(base::TimeDelta::FromSeconds(10));
+    test_clock_.Advance(base::Seconds(10));
     test_task_runner_ = base::MakeRefCounted<base::TestSimpleTaskRunner>();
     host_scan_scheduler_->SetTestDoubles(
         base::WrapUnique(mock_host_scan_batch_timer_), &test_clock_,
@@ -157,7 +157,7 @@
   void VerifyScanDuration(size_t expected_num_seconds) {
     histogram_tester_->ExpectTimeBucketCount(
         "InstantTethering.HostScanBatchDuration",
-        base::TimeDelta::FromSeconds(expected_num_seconds), 1u);
+        base::Seconds(expected_num_seconds), 1u);
   }
 
   NetworkStateHandler* network_state_handler() {
@@ -186,7 +186,7 @@
   EXPECT_TRUE(
       network_state_handler()->GetScanningByType(NetworkTypePattern::Tether()));
 
-  test_clock_.Advance(base::TimeDelta::FromSeconds(5));
+  test_clock_.Advance(base::Seconds(5));
   fake_host_scanner_->StopScan();
   EXPECT_EQ(1u, fake_host_scanner_->num_scans_started());
   EXPECT_FALSE(
@@ -245,7 +245,7 @@
   EXPECT_TRUE(
       network_state_handler()->GetScanningByType(NetworkTypePattern::Tether()));
 
-  test_clock_.Advance(base::TimeDelta::FromSeconds(5));
+  test_clock_.Advance(base::Seconds(5));
   fake_host_scanner_->StopScan();
   EXPECT_EQ(1u, fake_host_scanner_->num_scans_started());
   EXPECT_FALSE(
@@ -272,7 +272,7 @@
   EXPECT_TRUE(
       network_state_handler()->GetScanningByType(NetworkTypePattern::Tether()));
 
-  test_clock_.Advance(base::TimeDelta::FromSeconds(5));
+  test_clock_.Advance(base::Seconds(5));
 
   // Delete |host_scan_scheduler_|, which should cause the metric to be logged.
   host_scan_scheduler_.reset();
@@ -285,43 +285,40 @@
   // The first scan takes 5 seconds. After stopping, the timer should be
   // running.
   host_scan_scheduler_->AttemptScanIfOffline();
-  test_clock_.Advance(base::TimeDelta::FromSeconds(5));
+  test_clock_.Advance(base::Seconds(5));
   fake_host_scanner_->StopScan();
   EXPECT_TRUE(mock_host_scan_batch_timer_->IsRunning());
 
   // Advance the clock by 1 second and start another scan. The timer should have
   // been stopped.
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
-  EXPECT_LT(base::TimeDelta::FromSeconds(1),
-            mock_host_scan_batch_timer_->GetCurrentDelay());
+  test_clock_.Advance(base::Seconds(1));
+  EXPECT_LT(base::Seconds(1), mock_host_scan_batch_timer_->GetCurrentDelay());
   host_scan_scheduler_->AttemptScanIfOffline();
   EXPECT_FALSE(mock_host_scan_batch_timer_->IsRunning());
 
   // Stop the scan; the duration should not have been recorded, and the timer
   // should be running again.
-  test_clock_.Advance(base::TimeDelta::FromSeconds(5));
+  test_clock_.Advance(base::Seconds(5));
   fake_host_scanner_->StopScan();
   EXPECT_TRUE(mock_host_scan_batch_timer_->IsRunning());
 
   // Advance the clock by 59 seconds and start another scan. The timer should
   // have been stopped.
-  test_clock_.Advance(base::TimeDelta::FromSeconds(59));
-  EXPECT_LT(base::TimeDelta::FromSeconds(59),
-            mock_host_scan_batch_timer_->GetCurrentDelay());
+  test_clock_.Advance(base::Seconds(59));
+  EXPECT_LT(base::Seconds(59), mock_host_scan_batch_timer_->GetCurrentDelay());
   host_scan_scheduler_->AttemptScanIfOffline();
   EXPECT_FALSE(mock_host_scan_batch_timer_->IsRunning());
 
   // Stop the scan; the duration should not have been recorded, and the timer
   // should be running again.
-  test_clock_.Advance(base::TimeDelta::FromSeconds(5));
+  test_clock_.Advance(base::Seconds(5));
   fake_host_scanner_->StopScan();
   EXPECT_TRUE(mock_host_scan_batch_timer_->IsRunning());
 
   // Advance the clock by 60 seconds, which should be equal to the timer's
   // delay. Since this is a MockTimer, we need to manually fire the timer.
-  test_clock_.Advance(base::TimeDelta::FromSeconds(60));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(60),
-            mock_host_scan_batch_timer_->GetCurrentDelay());
+  test_clock_.Advance(base::Seconds(60));
+  EXPECT_EQ(base::Seconds(60), mock_host_scan_batch_timer_->GetCurrentDelay());
   mock_host_scan_batch_timer_->Fire();
 
   // The scan duration should be equal to the three 5-second scans as well as
@@ -331,12 +328,11 @@
   // Now, start a new 5-second scan, then wait for the timer to fire. A new
   // batch duration should have been logged to metrics.
   host_scan_scheduler_->AttemptScanIfOffline();
-  test_clock_.Advance(base::TimeDelta::FromSeconds(5));
+  test_clock_.Advance(base::Seconds(5));
   fake_host_scanner_->StopScan();
   EXPECT_TRUE(mock_host_scan_batch_timer_->IsRunning());
-  test_clock_.Advance(base::TimeDelta::FromSeconds(60));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(60),
-            mock_host_scan_batch_timer_->GetCurrentDelay());
+  test_clock_.Advance(base::Seconds(60));
+  EXPECT_EQ(base::Seconds(60), mock_host_scan_batch_timer_->GetCurrentDelay());
   mock_host_scan_batch_timer_->Fire();
   VerifyScanDuration(5u /* expected_num_sections */);
 }
diff --git a/chromeos/components/tether/host_scanner_operation_unittest.cc b/chromeos/components/tether/host_scanner_operation_unittest.cc
index 7943401..1d87bc2 100644
--- a/chromeos/components/tether/host_scanner_operation_unittest.cc
+++ b/chromeos/components/tether/host_scanner_operation_unittest.cc
@@ -174,7 +174,7 @@
 
 TEST_F(HostScannerOperationTest, RecordsResponseDuration) {
   static constexpr base::TimeDelta kTetherAvailabilityResponseTime =
-      base::TimeDelta::FromSeconds(3);
+      base::Seconds(3);
 
   // Advance the clock in order to verify a non-zero response duration is
   // recorded and verified (below).
diff --git a/chromeos/components/tether/hotspot_usage_duration_tracker.cc b/chromeos/components/tether/hotspot_usage_duration_tracker.cc
index f9fd85c..4020de5 100644
--- a/chromeos/components/tether/hotspot_usage_duration_tracker.cc
+++ b/chromeos/components/tether/hotspot_usage_duration_tracker.cc
@@ -60,11 +60,11 @@
 
       PA_LOG(VERBOSE) << "Connection to hotspot has ended. Duration was "
                       << duration.InSeconds() << " second(s).";
-      UMA_HISTOGRAM_CUSTOM_TIMES(
-          "InstantTethering.HotspotUsageDuration", duration,
-          base::TimeDelta::FromSeconds(kMinDurationSeconds) /* min */,
-          base::TimeDelta::FromHours(kMaxDurationHours) /* max */,
-          kNumMetricsBuckets /* bucket_count */);
+      UMA_HISTOGRAM_CUSTOM_TIMES("InstantTethering.HotspotUsageDuration",
+                                 duration,
+                                 base::Seconds(kMinDurationSeconds) /* min */,
+                                 base::Hours(kMaxDurationHours) /* max */,
+                                 kNumMetricsBuckets /* bucket_count */);
       break;
     }
     default:
diff --git a/chromeos/components/tether/hotspot_usage_duration_tracker_unittest.cc b/chromeos/components/tether/hotspot_usage_duration_tracker_unittest.cc
index 8e5607d..32e83db 100644
--- a/chromeos/components/tether/hotspot_usage_duration_tracker_unittest.cc
+++ b/chromeos/components/tether/hotspot_usage_duration_tracker_unittest.cc
@@ -22,7 +22,7 @@
 const char kTestTetherNetworkGuid[] = "testTetherNetworkGuid";
 const char kTestWifiNetworkGuid[] = "testWifiNetworkGuid";
 
-constexpr const base::TimeDelta kTestDuration = base::TimeDelta::FromSeconds(5);
+constexpr const base::TimeDelta kTestDuration = base::Seconds(5);
 
 }  // namespace
 
diff --git a/chromeos/components/tether/keep_alive_operation_unittest.cc b/chromeos/components/tether/keep_alive_operation_unittest.cc
index 92b8c30c..a3ac1fc7 100644
--- a/chromeos/components/tether/keep_alive_operation_unittest.cc
+++ b/chromeos/components/tether/keep_alive_operation_unittest.cc
@@ -168,7 +168,7 @@
 
 TEST_F(KeepAliveOperationTest, RecordsResponseDuration) {
   static constexpr base::TimeDelta kKeepAliveTickleResponseTime =
-      base::TimeDelta::FromSeconds(3);
+      base::Seconds(3);
 
   EXPECT_CALL(mock_observer_, OnOperationFinishedRaw(remote_device_, _));
 
diff --git a/chromeos/components/tether/keep_alive_scheduler.cc b/chromeos/components/tether/keep_alive_scheduler.cc
index 3ae3e72..afb78262 100644
--- a/chromeos/components/tether/keep_alive_scheduler.cc
+++ b/chromeos/components/tether/keep_alive_scheduler.cc
@@ -65,8 +65,7 @@
   if (change_info.new_status == ActiveHost::ActiveHostStatus::CONNECTED) {
     DCHECK(change_info.new_active_host);
     active_host_device_ = change_info.new_active_host;
-    timer_->Start(FROM_HERE,
-                  base::TimeDelta::FromMinutes(kKeepAliveIntervalMinutes),
+    timer_->Start(FROM_HERE, base::Minutes(kKeepAliveIntervalMinutes),
                   base::BindRepeating(&KeepAliveScheduler::SendKeepAliveTickle,
                                       weak_ptr_factory_.GetWeakPtr()));
     SendKeepAliveTickle();
diff --git a/chromeos/components/tether/keep_alive_scheduler_unittest.cc b/chromeos/components/tether/keep_alive_scheduler_unittest.cc
index 301cfea..9fd75ed 100644
--- a/chromeos/components/tether/keep_alive_scheduler_unittest.cc
+++ b/chromeos/components/tether/keep_alive_scheduler_unittest.cc
@@ -125,8 +125,7 @@
     EXPECT_EQ(is_running, mock_timer_->IsRunning());
 
     if (is_running) {
-      EXPECT_EQ(base::TimeDelta::FromMinutes(
-                    KeepAliveScheduler::kKeepAliveIntervalMinutes),
+      EXPECT_EQ(base::Minutes(KeepAliveScheduler::kKeepAliveIntervalMinutes),
                 mock_timer_->GetCurrentDelay());
     }
   }
diff --git a/chromeos/components/tether/message_transfer_operation.cc b/chromeos/components/tether/message_transfer_operation.cc
index c6c2fba..208c6b61 100644
--- a/chromeos/components/tether/message_transfer_operation.cc
+++ b/chromeos/components/tether/message_transfer_operation.cc
@@ -264,7 +264,7 @@
   remote_device_to_timer_map_.emplace(remote_device,
                                       timer_factory_->CreateOneShotTimer());
   remote_device_to_timer_map_[remote_device]->Start(
-      FROM_HERE, base::TimeDelta::FromSeconds(timeout_seconds),
+      FROM_HERE, base::Seconds(timeout_seconds),
       base::BindOnce(&MessageTransferOperation::OnTimeout,
                      weak_ptr_factory_.GetWeakPtr(), remote_device));
 }
diff --git a/chromeos/components/tether/message_transfer_operation_unittest.cc b/chromeos/components/tether/message_transfer_operation_unittest.cc
index 756a00c..8bd3864 100644
--- a/chromeos/components/tether/message_transfer_operation_unittest.cc
+++ b/chromeos/components/tether/message_transfer_operation_unittest.cc
@@ -237,7 +237,7 @@
   void VerifyTimerCreatedForDevice(multidevice::RemoteDeviceRef remote_device,
                                    uint32_t timeout_seconds) {
     EXPECT_TRUE(GetTimerForDevice(remote_device));
-    EXPECT_EQ(base::TimeDelta::FromSeconds(timeout_seconds),
+    EXPECT_EQ(base::Seconds(timeout_seconds),
               GetTimerForDevice(remote_device)->GetCurrentDelay());
   }
 
diff --git a/chromeos/components/tether/top_level_host_scan_cache.cc b/chromeos/components/tether/top_level_host_scan_cache.cc
index b1013b0..82d4429 100644
--- a/chromeos/components/tether/top_level_host_scan_cache.cc
+++ b/chromeos/components/tether/top_level_host_scan_cache.cc
@@ -170,8 +170,7 @@
       << kNumMinutesBeforeCacheEntryExpires << " minutes.";
 
   found_iter->second->Start(
-      FROM_HERE,
-      base::TimeDelta::FromMinutes(kNumMinutesBeforeCacheEntryExpires),
+      FROM_HERE, base::Minutes(kNumMinutesBeforeCacheEntryExpires),
       base::BindOnce(&TopLevelHostScanCache::OnTimerFired,
                      weak_ptr_factory_.GetWeakPtr(), tether_network_guid));
 }
diff --git a/chromeos/components/tether/wifi_hotspot_connector.cc b/chromeos/components/tether/wifi_hotspot_connector.cc
index 73f3c41c..c2551b2 100644
--- a/chromeos/components/tether/wifi_hotspot_connector.cc
+++ b/chromeos/components/tether/wifi_hotspot_connector.cc
@@ -81,8 +81,7 @@
   tether_network_guid_ = tether_network_guid;
   wifi_network_guid_ = base::GenerateGUID();
   callback_ = std::move(callback);
-  timer_->Start(FROM_HERE,
-                base::TimeDelta::FromSeconds(kConnectionTimeoutSeconds),
+  timer_->Start(FROM_HERE, base::Seconds(kConnectionTimeoutSeconds),
                 base::BindOnce(&WifiHotspotConnector::OnConnectionTimeout,
                                weak_ptr_factory_.GetWeakPtr()));
   connection_attempt_start_time_ = clock_->Now();
diff --git a/chromeos/components/tether/wifi_hotspot_connector_unittest.cc b/chromeos/components/tether/wifi_hotspot_connector_unittest.cc
index f18d40cd..6820136 100644
--- a/chromeos/components/tether/wifi_hotspot_connector_unittest.cc
+++ b/chromeos/components/tether/wifi_hotspot_connector_unittest.cc
@@ -39,8 +39,7 @@
 const char kTetherNetworkGuid[] = "tetherNetworkGuid";
 const char kTetherNetworkGuid2[] = "tetherNetworkGuid2";
 
-constexpr base::TimeDelta kConnectionToHotspotTime =
-    base::TimeDelta::FromSeconds(20);
+constexpr base::TimeDelta kConnectionToHotspotTime = base::Seconds(20);
 
 std::string CreateConfigurationJsonString(const std::string& guid) {
   std::stringstream ss;
@@ -191,8 +190,7 @@
 
   void VerifyTimerSet() {
     EXPECT_TRUE(mock_timer_->IsRunning());
-    EXPECT_EQ(base::TimeDelta::FromSeconds(
-                  WifiHotspotConnector::kConnectionTimeoutSeconds),
+    EXPECT_EQ(base::Seconds(WifiHotspotConnector::kConnectionTimeoutSeconds),
               mock_timer_->GetCurrentDelay());
   }
 
@@ -501,7 +499,7 @@
   // Pass some arbitrary time -- this should not affect the
   // recorded duration because the start time should be reset
   // for a new network attempt.
-  test_clock_.Advance(base::TimeDelta::FromSeconds(13));
+  test_clock_.Advance(base::Seconds(13));
 
   // Before network becomes connectable, start the new connection.
   EXPECT_EQ(0u, connection_callback_responses_.size());
@@ -560,7 +558,7 @@
   // Pass some arbitrary time -- this should not affect the
   // recorded duration because the start time should be reset
   // for a new network attempt.
-  test_clock_.Advance(base::TimeDelta::FromSeconds(13));
+  test_clock_.Advance(base::Seconds(13));
 
   std::string wifi_guid1 = VerifyLastConfiguration("ssid1", "password1");
   EXPECT_FALSE(wifi_guid1.empty());
@@ -775,7 +773,7 @@
   // Pass some arbitrary time -- this should not affect the
   // recorded duration because the start time should be reset
   // for a new network attempt.
-  test_clock_.Advance(base::TimeDelta::FromSeconds(13));
+  test_clock_.Advance(base::Seconds(13));
 
   EXPECT_FALSE(test_network_connect_->last_configuration());
 
diff --git a/chromeos/crosapi/mojom/app_service_types_traits_unittest.cc b/chromeos/crosapi/mojom/app_service_types_traits_unittest.cc
index 17782b0..af0eb34 100644
--- a/chromeos/crosapi/mojom/app_service_types_traits_unittest.cc
+++ b/chromeos/crosapi/mojom/app_service_types_traits_unittest.cc
@@ -32,8 +32,8 @@
   icon_key->icon_effects = 2;
   input->icon_key = std::move(icon_key);
 
-  input->last_launch_time = base::Time() + base::TimeDelta::FromDays(1);
-  input->install_time = base::Time() + base::TimeDelta::FromDays(2);
+  input->last_launch_time = base::Time() + base::Days(1);
+  input->install_time = base::Time() + base::Days(2);
 
   input->install_reason = apps::mojom::InstallReason::kUser;
   input->recommendable = apps::mojom::OptionalBool::kTrue;
@@ -73,9 +73,8 @@
   EXPECT_EQ(output->icon_key->timeline, 1U);
   EXPECT_EQ(output->icon_key->icon_effects, 2U);
 
-  EXPECT_EQ(output->last_launch_time,
-            base::Time() + base::TimeDelta::FromDays(1));
-  EXPECT_EQ(output->install_time, base::Time() + base::TimeDelta::FromDays(2));
+  EXPECT_EQ(output->last_launch_time, base::Time() + base::Days(1));
+  EXPECT_EQ(output->install_time, base::Time() + base::Days(2));
 
   EXPECT_EQ(output->install_reason, apps::mojom::InstallReason::kUser);
   EXPECT_EQ(output->recommendable, apps::mojom::OptionalBool::kTrue);
diff --git a/chromeos/dbus/attestation/attestation_client.cc b/chromeos/dbus/attestation/attestation_client.cc
index 8897d15..f2639c6 100644
--- a/chromeos/dbus/attestation/attestation_client.cc
+++ b/chromeos/dbus/attestation/attestation_client.cc
@@ -32,8 +32,7 @@
 const char kAttestationServerTest[] = "test";
 
 // An arbitrary timeout for getting a certificate.
-constexpr base::TimeDelta kGetCertificateTimeout =
-    base::TimeDelta::FromSeconds(80);
+constexpr base::TimeDelta kGetCertificateTimeout = base::Seconds(80);
 
 AttestationClient* g_instance = nullptr;
 
diff --git a/chromeos/dbus/authpolicy/fake_authpolicy_client.h b/chromeos/dbus/authpolicy/fake_authpolicy_client.h
index 2c31cfc8..3c4fef6 100644
--- a/chromeos/dbus/authpolicy/fake_authpolicy_client.h
+++ b/chromeos/dbus/authpolicy/fake_authpolicy_client.h
@@ -138,8 +138,7 @@
   std::string auth_password() const { return auth_password_; }
 
   void DisableOperationDelayForTesting() {
-    dbus_operation_delay_ = disk_operation_delay_ =
-        base::TimeDelta::FromSeconds(0);
+    dbus_operation_delay_ = disk_operation_delay_ = base::Seconds(0);
   }
 
  protected:
@@ -177,9 +176,8 @@
       authpolicy::ActiveDirectoryUserStatus::TGT_VALID;
 
   // Delay operations to be more realistic.
-  base::TimeDelta dbus_operation_delay_ = base::TimeDelta::FromSeconds(3);
-  base::TimeDelta disk_operation_delay_ =
-      base::TimeDelta::FromMilliseconds(100);
+  base::TimeDelta dbus_operation_delay_ = base::Seconds(3);
+  base::TimeDelta disk_operation_delay_ = base::Milliseconds(100);
 
   enterprise_management::ChromeDeviceSettingsProto device_policy_;
 
diff --git a/chromeos/dbus/cicerone/cicerone_client.cc b/chromeos/dbus/cicerone/cicerone_client.cc
index a9c1e1b8..1a6862f 100644
--- a/chromeos/dbus/cicerone/cicerone_client.cc
+++ b/chromeos/dbus/cicerone/cicerone_client.cc
@@ -28,12 +28,11 @@
 CiceroneClient* g_instance = nullptr;
 
 // How long to wait before timing out on regular RPCs.
-constexpr base::TimeDelta kDefaultTimeout = base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kDefaultTimeout = base::Minutes(1);
 
 // How long to wait while doing more complex operations like starting or
 // creating a container.
-constexpr base::TimeDelta kLongOperationTimeout =
-    base::TimeDelta::FromMinutes(3);
+constexpr base::TimeDelta kLongOperationTimeout = base::Minutes(3);
 
 }  // namespace
 
diff --git a/chromeos/dbus/kerberos/fake_kerberos_client.cc b/chromeos/dbus/kerberos/fake_kerberos_client.cc
index c034e4a..207f25b 100644
--- a/chromeos/dbus/kerberos/fake_kerberos_client.cc
+++ b/chromeos/dbus/kerberos/fake_kerberos_client.cc
@@ -19,10 +19,10 @@
 namespace {
 
 // Fake validity lifetime for TGTs.
-constexpr base::TimeDelta kTgtValidity = base::TimeDelta::FromHours(10);
+constexpr base::TimeDelta kTgtValidity = base::Hours(10);
 
 // Fake renewal lifetime for TGTs.
-constexpr base::TimeDelta kTgtRenewal = base::TimeDelta::FromHours(24);
+constexpr base::TimeDelta kTgtRenewal = base::Hours(24);
 
 // Blacklist for fake config validation.
 const char* const kBlacklistedConfigOptions[] = {
diff --git a/chromeos/dbus/kerberos/fake_kerberos_client.h b/chromeos/dbus/kerberos/fake_kerberos_client.h
index 74715785..7ca945e 100644
--- a/chromeos/dbus/kerberos/fake_kerberos_client.h
+++ b/chromeos/dbus/kerberos/fake_kerberos_client.h
@@ -114,7 +114,7 @@
   absl::optional<std::string> recorded_function_calls_;
 
   // Fake delay for any asynchronous operation.
-  base::TimeDelta task_delay_ = base::TimeDelta::FromMilliseconds(100);
+  base::TimeDelta task_delay_ = base::Milliseconds(100);
 
   // The simulated number of network failures on |AcquireKerberosTgt()| (for
   // testing).
diff --git a/chromeos/dbus/machine_learning/machine_learning_client.cc b/chromeos/dbus/machine_learning/machine_learning_client.cc
index 94fbb745..464e898 100644
--- a/chromeos/dbus/machine_learning/machine_learning_client.cc
+++ b/chromeos/dbus/machine_learning/machine_learning_client.cc
@@ -22,7 +22,7 @@
 // TODO(crbug.com/1163656): the tast test platform.MLServiceBootstrap flakiness
 // shows ml-service bootstrap fails occasionally for timeout. Try to fix this
 // with a long period (2 minutes).
-constexpr base::TimeDelta kLongTimeout = base::TimeDelta::FromMinutes(2);
+constexpr base::TimeDelta kLongTimeout = base::Minutes(2);
 
 MachineLearningClient* g_instance = nullptr;
 
diff --git a/chromeos/dbus/native_timer_unittest.cc b/chromeos/dbus/native_timer_unittest.cc
index 6e642f6..4a449dd 100644
--- a/chromeos/dbus/native_timer_unittest.cc
+++ b/chromeos/dbus/native_timer_unittest.cc
@@ -69,8 +69,7 @@
   create_timer_loop.RunUntilIdle();
 
   // Starting the timer should fail as timer creation failed.
-  EXPECT_FALSE(CheckStartTimerAndExpiration(
-      &timer, base::TimeDelta::FromMilliseconds(1000)));
+  EXPECT_FALSE(CheckStartTimerAndExpiration(&timer, base::Milliseconds(1000)));
 }
 
 TEST_F(NativeTimerTest, CheckCreateAndStartTimer) {
@@ -80,13 +79,11 @@
   create_timer_loop.RunUntilIdle();
 
   // Start timer and check if starting the timer and its expiration succeeded.
-  EXPECT_TRUE(CheckStartTimerAndExpiration(
-      &timer, base::TimeDelta::FromMilliseconds(1000)));
+  EXPECT_TRUE(CheckStartTimerAndExpiration(&timer, base::Milliseconds(1000)));
 
   // Start another timer and check if starting the timer and its expiration
   // succeeded.
-  EXPECT_TRUE(CheckStartTimerAndExpiration(
-      &timer, base::TimeDelta::FromMilliseconds(1000)));
+  EXPECT_TRUE(CheckStartTimerAndExpiration(&timer, base::Milliseconds(1000)));
 }
 
 }  // namespace chromeos
diff --git a/chromeos/dbus/power/fake_power_manager_client.cc b/chromeos/dbus/power/fake_power_manager_client.cc
index f599c28..dd83838 100644
--- a/chromeos/dbus/power/fake_power_manager_client.cc
+++ b/chromeos/dbus/power/fake_power_manager_client.cc
@@ -31,8 +31,7 @@
 constexpr double kUsbMinAcWatts = 24;
 
 // The time power manager will wait before resuspending from a dark resume.
-constexpr base::TimeDelta kDarkSuspendDelayTimeout =
-    base::TimeDelta::FromSeconds(20);
+constexpr base::TimeDelta kDarkSuspendDelayTimeout = base::Seconds(20);
 
 // Callback fired when timer started through |StartArcTimer| expires. In
 // non-test environments this does a potentially blocking call on the UI
diff --git a/chromeos/dbus/power/power_manager_client.cc b/chromeos/dbus/power/power_manager_client.cc
index 5c7dda9..46a38cc2 100644
--- a/chromeos/dbus/power/power_manager_client.cc
+++ b/chromeos/dbus/power/power_manager_client.cc
@@ -1014,7 +1014,7 @@
       // Set |max_dark_suspend_delay_timeout_| to the minimum time power manager
       // guarantees before resuspending.
       max_dark_suspend_delay_timeout_ =
-          base::TimeDelta::FromMilliseconds(protobuf.min_delay_timeout_ms());
+          base::Milliseconds(protobuf.min_delay_timeout_ms());
 
       POWER_LOG(EVENT) << "Registered dark suspend delay "
                        << dark_suspend_delay_id_;
@@ -1254,8 +1254,7 @@
     has_dark_suspend_delay_id_ = false;
 
     power_manager::RegisterSuspendDelayRequest protobuf_request;
-    base::TimeDelta timeout =
-        base::TimeDelta::FromMilliseconds(kSuspendDelayTimeoutMs);
+    base::TimeDelta timeout = base::Milliseconds(kSuspendDelayTimeoutMs);
     protobuf_request.set_timeout(timeout.ToInternalValue());
     protobuf_request.set_description(kSuspendDelayDescription);
 
diff --git a/chromeos/dbus/power/power_policy_controller.cc b/chromeos/dbus/power/power_policy_controller.cc
index e297ae8..1e37dfa 100644
--- a/chromeos/dbus/power/power_policy_controller.cc
+++ b/chromeos/dbus/power/power_policy_controller.cc
@@ -532,7 +532,7 @@
   }
   int ac_delay = prefs_policy_.ac_delays().screen_lock_ms();
   int battery_delay = prefs_policy_.battery_delays().screen_lock_ms();
-  return base::TimeDelta::FromMilliseconds(std::max(ac_delay, battery_delay));
+  return base::Milliseconds(std::max(ac_delay, battery_delay));
 }
 
 int PowerPolicyController::AddScreenWakeLock(WakeLockReason reason,
diff --git a/chromeos/dbus/power/power_policy_controller_unittest.cc b/chromeos/dbus/power/power_policy_controller_unittest.cc
index d237a1f..ff5c1f4 100644
--- a/chromeos/dbus/power/power_policy_controller_unittest.cc
+++ b/chromeos/dbus/power/power_policy_controller_unittest.cc
@@ -492,16 +492,15 @@
   // Longer AC delay.
   prefs.enable_auto_screen_lock = true;
   policy_controller_->ApplyPrefs(prefs);
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(prefs.ac_screen_lock_delay_ms),
+  EXPECT_EQ(base::Milliseconds(prefs.ac_screen_lock_delay_ms),
             policy_controller_->Get()->GetMaxPolicyAutoScreenLockDelay());
 
   // Longer battery delay.
   prefs.ac_screen_lock_delay_ms = 1000;
   prefs.battery_screen_lock_delay_ms = 4000;
   policy_controller_->ApplyPrefs(prefs);
-  EXPECT_EQ(
-      base::TimeDelta::FromMilliseconds(prefs.battery_screen_lock_delay_ms),
-      policy_controller_->Get()->GetMaxPolicyAutoScreenLockDelay());
+  EXPECT_EQ(base::Milliseconds(prefs.battery_screen_lock_delay_ms),
+            policy_controller_->Get()->GetMaxPolicyAutoScreenLockDelay());
 }
 
 TEST_F(PowerPolicyControllerTest, FastSuspendWhenBacklightsForcedOff) {
diff --git a/chromeos/dbus/shill/fake_shill_manager_client.cc b/chromeos/dbus/shill/fake_shill_manager_client.cc
index 0e9f15a8..94fb684 100644
--- a/chromeos/dbus/shill/fake_shill_manager_client.cc
+++ b/chromeos/dbus/shill/fake_shill_manager_client.cc
@@ -1209,7 +1209,7 @@
     int seconds = 3;
     if (!arg1.empty())
       base::StringToInt(arg1, &seconds);
-    interactive_delay_ = base::TimeDelta::FromSeconds(seconds);
+    interactive_delay_ = base::Seconds(seconds);
     return true;
   } else if (arg0 == "sim_lock") {
     bool locked = (arg1 == "1");
diff --git a/chromeos/dbus/system_clock/system_clock_sync_observation_unittest.cc b/chromeos/dbus/system_clock/system_clock_sync_observation_unittest.cc
index cf2b2984..e9dbbb0 100644
--- a/chromeos/dbus/system_clock/system_clock_sync_observation_unittest.cc
+++ b/chromeos/dbus/system_clock/system_clock_sync_observation_unittest.cc
@@ -15,9 +15,8 @@
 namespace ash {
 
 namespace {
-constexpr base::TimeDelta kLongTimeout = base::TimeDelta::FromSeconds(100);
-constexpr base::TimeDelta kShortTimeout =
-    base::TimeDelta::FromMicroseconds(200);
+constexpr base::TimeDelta kLongTimeout = base::Seconds(100);
+constexpr base::TimeDelta kShortTimeout = base::Microseconds(200);
 }  // namespace
 
 class SystemClockSyncObservationTest : public testing::Test {
diff --git a/chromeos/dbus/tpm_manager/tpm_manager_client.cc b/chromeos/dbus/tpm_manager/tpm_manager_client.cc
index 36689b06..2dcff577 100644
--- a/chromeos/dbus/tpm_manager/tpm_manager_client.cc
+++ b/chromeos/dbus/tpm_manager/tpm_manager_client.cc
@@ -29,8 +29,7 @@
 namespace {
 
 // An arbitrary timeout for taking ownership.
-constexpr base::TimeDelta kTakeOwnershipTimeout =
-    base::TimeDelta::FromSeconds(80);
+constexpr base::TimeDelta kTakeOwnershipTimeout = base::Seconds(80);
 
 TpmManagerClient* g_instance = nullptr;
 
diff --git a/chromeos/dbus/update_engine/update_engine_client.cc b/chromeos/dbus/update_engine/update_engine_client.cc
index bcf9e68..8cf7d36 100644
--- a/chromeos/dbus/update_engine/update_engine_client.cc
+++ b/chromeos/dbus/update_engine/update_engine_client.cc
@@ -423,8 +423,8 @@
 
     EolInfo eol_info;
     if (status.eol_date() > 0) {
-      eol_info.eol_date = base::Time::UnixEpoch() +
-                          base::TimeDelta::FromDays(status.eol_date());
+      eol_info.eol_date =
+          base::Time::UnixEpoch() + base::Days(status.eol_date());
     }
     std::move(callback).Run(eol_info);
   }
@@ -550,7 +550,7 @@
         FROM_HERE,
         base::BindOnce(&UpdateEngineClientStubImpl::StateTransition,
                        weak_factory_.GetWeakPtr()),
-        base::TimeDelta::FromMilliseconds(kStateTransitionDefaultDelayMs));
+        base::Milliseconds(kStateTransitionDefaultDelayMs));
   }
 
   void RebootAfterUpdate() override {}
@@ -646,7 +646,7 @@
           FROM_HERE,
           base::BindOnce(&UpdateEngineClientStubImpl::StateTransition,
                          weak_factory_.GetWeakPtr()),
-          base::TimeDelta::FromMilliseconds(delay_ms));
+          base::Milliseconds(delay_ms));
     }
   }
 
diff --git a/chromeos/dbus/userdataauth/fake_userdataauth_client.cc b/chromeos/dbus/userdataauth/fake_userdataauth_client.cc
index 152ad6d..5508d1f 100644
--- a/chromeos/dbus/userdataauth/fake_userdataauth_client.cc
+++ b/chromeos/dbus/userdataauth/fake_userdataauth_client.cc
@@ -204,8 +204,7 @@
   dircrypto_migration_progress_ = 0;
   if (run_default_dircrypto_migration_) {
     dircrypto_migration_progress_timer_.Start(
-        FROM_HERE,
-        base::TimeDelta::FromMilliseconds(kDircryptoMigrationUpdateIntervalMs),
+        FROM_HERE, base::Milliseconds(kDircryptoMigrationUpdateIntervalMs),
         this, &FakeUserDataAuthClient::OnDircryptoMigrationProgressUpdated);
   }
 }
diff --git a/chromeos/disks/suspend_unmount_manager.cc b/chromeos/disks/suspend_unmount_manager.cc
index c1f234d..5bebb7d53 100644
--- a/chromeos/disks/suspend_unmount_manager.cc
+++ b/chromeos/disks/suspend_unmount_manager.cc
@@ -15,8 +15,7 @@
 namespace {
 
 // Threshold for logging the blocking of suspend.
-constexpr base::TimeDelta kBlockSuspendThreshold =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kBlockSuspendThreshold = base::Seconds(5);
 
 void OnRefreshCompleted(bool success) {}
 
diff --git a/chromeos/geolocation/simple_geolocation_request.cc b/chromeos/geolocation/simple_geolocation_request.cc
index 9b45c2be..a6c08e46 100644
--- a/chromeos/geolocation/simple_geolocation_request.cc
+++ b/chromeos/geolocation/simple_geolocation_request.cc
@@ -33,12 +33,9 @@
 
 // Location resolve timeout is usually 1 minute, so 2 minutes with 50 buckets
 // should be enough.
-#define UMA_HISTOGRAM_LOCATION_RESPONSE_TIMES(name, sample)         \
-  UMA_HISTOGRAM_CUSTOM_TIMES(name,                                  \
-                             sample,                                \
-                             base::TimeDelta::FromMilliseconds(10), \
-                             base::TimeDelta::FromMinutes(2),       \
-                             50)
+#define UMA_HISTOGRAM_LOCATION_RESPONSE_TIMES(name, sample)        \
+  UMA_HISTOGRAM_CUSTOM_TIMES(name, sample, base::Milliseconds(10), \
+                             base::Minutes(2), 50)
 
 namespace chromeos {
 
@@ -368,10 +365,10 @@
     std::unique_ptr<CellTowerVector> cell_tower_data)
     : shared_url_loader_factory_(std::move(factory)),
       service_url_(service_url),
-      retry_sleep_on_server_error_(base::TimeDelta::FromSeconds(
-          kResolveGeolocationRetrySleepOnServerErrorSeconds)),
-      retry_sleep_on_bad_response_(base::TimeDelta::FromSeconds(
-          kResolveGeolocationRetrySleepBadResponseSeconds)),
+      retry_sleep_on_server_error_(
+          base::Seconds(kResolveGeolocationRetrySleepOnServerErrorSeconds)),
+      retry_sleep_on_bad_response_(
+          base::Seconds(kResolveGeolocationRetrySleepBadResponseSeconds)),
       timeout_(timeout),
       retries_(0),
       wifi_data_(wifi_data.release()),
diff --git a/chromeos/geolocation/simple_geolocation_unittest.cc b/chromeos/geolocation/simple_geolocation_unittest.cc
index 5c9ae9d..d039f99f 100644
--- a/chromeos/geolocation/simple_geolocation_unittest.cc
+++ b/chromeos/geolocation/simple_geolocation_unittest.cc
@@ -99,7 +99,7 @@
         provider_->requests_[0].get();
 
     const base::TimeDelta base_retry_interval =
-        base::TimeDelta::FromMilliseconds(kRequestRetryIntervalMilliSeconds);
+        base::Milliseconds(kRequestRetryIntervalMilliSeconds);
     geolocation_request->set_retry_sleep_on_server_error_for_testing(
         base_retry_interval);
     geolocation_request->set_retry_sleep_on_bad_response_for_testing(
@@ -198,7 +198,7 @@
 
   GeolocationReceiver receiver;
   provider.RequestGeolocation(
-      base::TimeDelta::FromSeconds(1), false, false,
+      base::Seconds(1), false, false,
       base::BindOnce(&GeolocationReceiver::OnRequestDone,
                      base::Unretained(&receiver)));
   receiver.WaitUntilRequestDone();
@@ -221,7 +221,7 @@
 
   GeolocationReceiver receiver;
   provider.RequestGeolocation(
-      base::TimeDelta::FromSeconds(1), false, false,
+      base::Seconds(1), false, false,
       base::BindOnce(&GeolocationReceiver::OnRequestDone,
                      base::Unretained(&receiver)));
   receiver.WaitUntilRequestDone();
@@ -248,7 +248,7 @@
   ASSERT_GE(expected_retries, 2U);
 
   provider.RequestGeolocation(
-      base::TimeDelta::FromSeconds(timeout_seconds), false, false,
+      base::Seconds(timeout_seconds), false, false,
       base::BindOnce(&GeolocationReceiver::OnRequestDone,
                      base::Unretained(&receiver)));
   receiver.WaitUntilRequestDone();
@@ -294,7 +294,7 @@
 
   GeolocationReceiver receiver;
   provider.RequestGeolocation(
-      base::TimeDelta::FromSeconds(1), true, false,
+      base::Seconds(1), true, false,
       base::BindOnce(&GeolocationReceiver::OnRequestDone,
                      base::Unretained(&receiver)));
   receiver.WaitUntilRequestDone();
@@ -398,7 +398,7 @@
   {
     GeolocationReceiver receiver;
     provider.RequestGeolocation(
-        base::TimeDelta::FromSeconds(1), GetParam(), false,
+        base::Seconds(1), GetParam(), false,
         base::BindOnce(&GeolocationReceiver::OnRequestDone,
                        base::Unretained(&receiver)));
     receiver.WaitUntilRequestDone();
@@ -425,7 +425,7 @@
   {
     GeolocationReceiver receiver;
     provider.RequestGeolocation(
-        base::TimeDelta::FromSeconds(1), GetParam(), false,
+        base::Seconds(1), GetParam(), false,
         base::BindOnce(&GeolocationReceiver::OnRequestDone,
                        base::Unretained(&receiver)));
     receiver.WaitUntilRequestDone();
@@ -465,7 +465,7 @@
   {
     GeolocationReceiver receiver;
     provider.RequestGeolocation(
-        base::TimeDelta::FromSeconds(1), false, GetParam(),
+        base::Seconds(1), false, GetParam(),
         base::BindOnce(&GeolocationReceiver::OnRequestDone,
                        base::Unretained(&receiver)));
     receiver.WaitUntilRequestDone();
@@ -490,7 +490,7 @@
   {
     GeolocationReceiver receiver;
     provider.RequestGeolocation(
-        base::TimeDelta::FromSeconds(1), false, GetParam(),
+        base::Seconds(1), false, GetParam(),
         base::BindOnce(&GeolocationReceiver::OnRequestDone,
                        base::Unretained(&receiver)));
     receiver.WaitUntilRequestDone();
diff --git a/chromeos/memory/pressure/system_memory_pressure_evaluator.cc b/chromeos/memory/pressure/system_memory_pressure_evaluator.cc
index a6f8bfa5..ac6bb3e3 100644
--- a/chromeos/memory/pressure/system_memory_pressure_evaluator.cc
+++ b/chromeos/memory/pressure/system_memory_pressure_evaluator.cc
@@ -18,7 +18,7 @@
 // We try not to re-notify on moderate too frequently, this time
 // controls how frequently we will notify after our first notification.
 constexpr base::TimeDelta kModerateMemoryPressureCooldownTime =
-    base::TimeDelta::FromSeconds(10);
+    base::Seconds(10);
 
 }  // namespace
 
diff --git a/chromeos/memory/userspace_swap/userspace_swap.cc b/chromeos/memory/userspace_swap/userspace_swap.cc
index 63aaf7b..98cc564 100644
--- a/chromeos/memory/userspace_swap/userspace_swap.cc
+++ b/chromeos/memory/userspace_swap/userspace_swap.cc
@@ -368,13 +368,13 @@
         kUserspaceSwapRendererRegionLimitPerSwap.Get();
 
     config.blocked_refault_time =
-        base::TimeDelta::FromSeconds(kUserspaceSwapBlockedRefaultTimeSec.Get());
-    config.graph_walk_frequency = base::TimeDelta::FromSeconds(
+        base::Seconds(kUserspaceSwapBlockedRefaultTimeSec.Get());
+    config.graph_walk_frequency = base::Seconds(
         kUserspaceSwapModeratePressureGraphWalkFrequencySec.Get());
-    config.process_swap_frequency = base::TimeDelta::FromSeconds(
-        kUserspaceSwapProcessSwapFrequencySec.Get());
-    config.invisible_time_before_swap = base::TimeDelta::FromSeconds(
-        kUserspaceSwapInvisibleTimeBeforeSwapSec.Get());
+    config.process_swap_frequency =
+        base::Seconds(kUserspaceSwapProcessSwapFrequencySec.Get());
+    config.invisible_time_before_swap =
+        base::Seconds(kUserspaceSwapInvisibleTimeBeforeSwapSec.Get());
 
     config.swap_on_moderate_pressure = kUserspaceDoSwapModeratePressure.Get();
     config.swap_on_freeze = kUserspaceDoSwapOnFreeze.Get();
diff --git a/chromeos/metrics/login_event_recorder.cc b/chromeos/metrics/login_event_recorder.cc
index 3ba336b..7a7f6536 100644
--- a/chromeos/metrics/login_event_recorder.cc
+++ b/chromeos/metrics/login_event_recorder.cc
@@ -99,8 +99,8 @@
   base::Time last = times.back().time();
   base::TimeDelta total = last - first;
   base::HistogramBase* total_hist = base::Histogram::FactoryTimeGet(
-      uma_name, base::TimeDelta::FromMilliseconds(kMinTimeMillis),
-      base::TimeDelta::FromMilliseconds(kMaxTimeMillis), kNumBuckets,
+      uma_name, base::Milliseconds(kMinTimeMillis),
+      base::Milliseconds(kMaxTimeMillis), kNumBuckets,
       base::HistogramBase::kUmaTargetedHistogramFlag);
   total_hist->AddTime(total);
   std::string output =
@@ -142,8 +142,8 @@
     if (tm.send_to_uma()) {
       name = uma_prefix + tm.name();
       base::HistogramBase* prev_hist = base::Histogram::FactoryTimeGet(
-          name, base::TimeDelta::FromMilliseconds(kMinTimeMillis),
-          base::TimeDelta::FromMilliseconds(kMaxTimeMillis), kNumBuckets,
+          name, base::Milliseconds(kMinTimeMillis),
+          base::Milliseconds(kMaxTimeMillis), kNumBuckets,
           base::HistogramBase::kUmaTargetedHistogramFlag);
       prev_hist->AddTime(since_prev);
     } else {
@@ -355,7 +355,7 @@
       FROM_HERE,
       base::BindOnce(&LoginEventRecorder::WriteLoginTimesDelayed,
                      weak_ptr_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(kLoginTimeWriteDelayMs));
+      base::Milliseconds(kLoginTimeWriteDelayMs));
 }
 
 void LoginEventRecorder::RunScheduledWriteLoginTimes() {
diff --git a/chromeos/network/auto_connect_handler_unittest.cc b/chromeos/network/auto_connect_handler_unittest.cc
index 5bcbf14c..26695d5 100644
--- a/chromeos/network/auto_connect_handler_unittest.cc
+++ b/chromeos/network/auto_connect_handler_unittest.cc
@@ -667,7 +667,7 @@
 }
 
 TEST_F(AutoConnectHandlerTest, AutoConnectOnUserPolicyRescanDueToHiddenSsids) {
-  const base::TimeDelta kScanDelay = base::TimeDelta::FromSeconds(30);
+  const base::TimeDelta kScanDelay = base::Seconds(30);
   // Initial state: wifi0 is online, wifi1 is idle.
   std::string wifi0_service_path =
       ConfigureService(kConfigWifi0UnmanagedSharedConnected);
@@ -718,7 +718,7 @@
 }
 
 TEST_F(AutoConnectHandlerTest, AutoConnectOnUserPolicyRescanOnlyOnce) {
-  const base::TimeDelta kScanDelay = base::TimeDelta::FromSeconds(30);
+  const base::TimeDelta kScanDelay = base::Seconds(30);
   // Initial state: wifi0 is online, wifi1 is idle.
   std::string wifi0_service_path =
       ConfigureService(kConfigWifi0UnmanagedSharedConnected);
diff --git a/chromeos/network/cellular_connection_handler.cc b/chromeos/network/cellular_connection_handler.cc
index 5486ca3d..3f9391b 100644
--- a/chromeos/network/cellular_connection_handler.cc
+++ b/chromeos/network/cellular_connection_handler.cc
@@ -23,8 +23,7 @@
 namespace chromeos {
 namespace {
 
-constexpr base::TimeDelta kWaitingForConnectableTimeout =
-    base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kWaitingForConnectableTimeout = base::Seconds(30);
 
 bool CanInitiateShillConnection(const NetworkState* network) {
   // The network must be part of a Shill profile (i.e., it cannot be a "stub"
diff --git a/chromeos/network/cellular_connection_handler_unittest.cc b/chromeos/network/cellular_connection_handler_unittest.cc
index 5b7dd52..2417be9 100644
--- a/chromeos/network/cellular_connection_handler_unittest.cc
+++ b/chromeos/network/cellular_connection_handler_unittest.cc
@@ -344,8 +344,7 @@
 }
 
 TEST_F(CellularConnectionHandlerTest, TimeoutWaitingForConnectable_ESim) {
-  const base::TimeDelta kWaitingForConnectableTimeout =
-      base::TimeDelta::FromSeconds(30);
+  const base::TimeDelta kWaitingForConnectableTimeout = base::Seconds(30);
 
   SetEnableProfileBehavior(HermesProfileClient::TestInterface::
                                EnableProfileBehavior::kNotConnectable);
@@ -373,8 +372,7 @@
 }
 
 TEST_F(CellularConnectionHandlerTest, TimeoutWaitingForConnectable_PSim) {
-  const base::TimeDelta kWaitingForConnectableTimeout =
-      base::TimeDelta::FromSeconds(30);
+  const base::TimeDelta kWaitingForConnectableTimeout = base::Seconds(30);
 
   SetEnableProfileBehavior(HermesProfileClient::TestInterface::
                                EnableProfileBehavior::kNotConnectable);
diff --git a/chromeos/network/cellular_esim_installer_unittest.cc b/chromeos/network/cellular_esim_installer_unittest.cc
index a43395bf..6fb8016 100644
--- a/chromeos/network/cellular_esim_installer_unittest.cc
+++ b/chromeos/network/cellular_esim_installer_unittest.cc
@@ -175,7 +175,7 @@
 
   void FastForwardProfileRefreshDelay() {
     const base::TimeDelta kProfileRefreshCallbackDelay =
-        base::TimeDelta::FromMilliseconds(150);
+        base::Milliseconds(150);
 
     // Connect can result in two profile refresh calls before and after
     // enabling profile. Fast forward by delay after refresh.
diff --git a/chromeos/network/cellular_esim_profile_handler.cc b/chromeos/network/cellular_esim_profile_handler.cc
index 114f471..8d3f333 100644
--- a/chromeos/network/cellular_esim_profile_handler.cc
+++ b/chromeos/network/cellular_esim_profile_handler.cc
@@ -13,7 +13,7 @@
 // Delay before profile refresh callback is called. This ensures that eSIM
 // profiles are updated before callback returns.
 constexpr base::TimeDelta kProfileRefreshCallbackDelay =
-    base::TimeDelta::FromMilliseconds(150);
+    base::Milliseconds(150);
 
 }  // namespace
 
diff --git a/chromeos/network/cellular_esim_profile_handler_impl_unittest.cc b/chromeos/network/cellular_esim_profile_handler_impl_unittest.cc
index 2353d24..8a0eac4 100644
--- a/chromeos/network/cellular_esim_profile_handler_impl_unittest.cc
+++ b/chromeos/network/cellular_esim_profile_handler_impl_unittest.cc
@@ -205,7 +205,7 @@
 
   void FastForwardProfileRefreshDelay() {
     const base::TimeDelta kProfileRefreshCallbackDelay =
-        base::TimeDelta::FromMilliseconds(150);
+        base::Milliseconds(150);
     task_environment_.FastForwardBy(kProfileRefreshCallbackDelay);
   }
 
diff --git a/chromeos/network/cellular_inhibitor.cc b/chromeos/network/cellular_inhibitor.cc
index b4bc1b7..77b7b25e 100644
--- a/chromeos/network/cellular_inhibitor.cc
+++ b/chromeos/network/cellular_inhibitor.cc
@@ -25,13 +25,11 @@
 
 // Delay for first uninhibit retry attempt. Delay doubles for every
 // subsequent attempt.
-constexpr base::TimeDelta kUninhibitRetryDelay =
-    base::TimeDelta::FromSeconds(2);
+constexpr base::TimeDelta kUninhibitRetryDelay = base::Seconds(2);
 
 // Timeout waiting for Cellular device scanning state to change
 // to true and back to false.
-constexpr base::TimeDelta kScanningChangeTimeout =
-    base::TimeDelta::FromSeconds(120);
+constexpr base::TimeDelta kScanningChangeTimeout = base::Seconds(120);
 
 }  // namespace
 
@@ -52,7 +50,7 @@
 
 // static
 const base::TimeDelta CellularInhibitor::kInhibitPropertyChangeTimeout =
-    base::TimeDelta::FromSeconds(5);
+    base::Seconds(5);
 
 // static
 void CellularInhibitor::RecordInhibitOperationResult(
diff --git a/chromeos/network/cellular_inhibitor_unittest.cc b/chromeos/network/cellular_inhibitor_unittest.cc
index 6945da1..3db73df2 100644
--- a/chromeos/network/cellular_inhibitor_unittest.cc
+++ b/chromeos/network/cellular_inhibitor_unittest.cc
@@ -33,8 +33,7 @@
 const char kInhibitOperationResultHistogram[] =
     "Network.Cellular.InhibitResult";
 
-constexpr base::TimeDelta kScanningChangeTimeout =
-    base::TimeDelta::FromSeconds(120);
+constexpr base::TimeDelta kScanningChangeTimeout = base::Seconds(120);
 
 enum class GetInhibitedPropertyResult { kTrue, kFalse, kOperationFailed };
 
diff --git a/chromeos/network/cellular_metrics_logger.cc b/chromeos/network/cellular_metrics_logger.cc
index 0917dff..901ae0d8 100644
--- a/chromeos/network/cellular_metrics_logger.cc
+++ b/chromeos/network/cellular_metrics_logger.cc
@@ -81,11 +81,11 @@
 
 // static
 const base::TimeDelta CellularMetricsLogger::kInitializationTimeout =
-    base::TimeDelta::FromSeconds(15);
+    base::Seconds(15);
 
 // static
 const base::TimeDelta CellularMetricsLogger::kDisconnectRequestTimeout =
-    base::TimeDelta::FromSeconds(5);
+    base::Seconds(5);
 
 // static
 CellularMetricsLogger::SimPinOperationResult
diff --git a/chromeos/network/cellular_metrics_logger_unittest.cc b/chromeos/network/cellular_metrics_logger_unittest.cc
index 6cdc5f6..b77fa031 100644
--- a/chromeos/network/cellular_metrics_logger_unittest.cc
+++ b/chromeos/network/cellular_metrics_logger_unittest.cc
@@ -321,8 +321,7 @@
       0);
 
   // After |kTimeSpentOnlinePSim|, PSim Cellular becomes not connected.
-  const base::TimeDelta kTimeSpentOnlinePSim =
-      base::TimeDelta::FromSeconds(123);
+  const base::TimeDelta kTimeSpentOnlinePSim = base::Seconds(123);
   task_environment_.FastForwardBy(kTimeSpentOnlinePSim);
   service_client_test()->SetServiceProperty(
       kTestPSimCellularServicePath, shill::kStateProperty, kTestIdleStateValue);
@@ -366,8 +365,7 @@
       CellularMetricsLogger::CellularUsage::kConnectedAndOnlyNetwork, 1);
 
   // After |kTimeSpentOnlineESim|, ESim Cellular becomes not connected.
-  const base::TimeDelta kTimeSpentOnlineESim =
-      base::TimeDelta::FromSeconds(123);
+  const base::TimeDelta kTimeSpentOnlineESim = base::Seconds(123);
   task_environment_.FastForwardBy(kTimeSpentOnlineESim);
   service_client_test()->SetServiceProperty(
       kTestESimCellularServicePath, shill::kStateProperty, kTestIdleStateValue);
@@ -766,8 +764,7 @@
 TEST_F(CellularMetricsLoggerTest, CellularTimeToConnectedTest) {
   SetUpMetricsLogger();
 
-  constexpr base::TimeDelta kTestConnectionTime =
-      base::TimeDelta::FromMilliseconds(321);
+  constexpr base::TimeDelta kTestConnectionTime = base::Milliseconds(321);
   InitCellular();
   const base::Value kOnlineStateValue(shill::kStateOnline);
   const base::Value kAssocStateValue(shill::kStateAssociation);
diff --git a/chromeos/network/cellular_policy_handler_unittest.cc b/chromeos/network/cellular_policy_handler_unittest.cc
index 20fdf8b5..b99c91c6 100644
--- a/chromeos/network/cellular_policy_handler_unittest.cc
+++ b/chromeos/network/cellular_policy_handler_unittest.cc
@@ -169,7 +169,7 @@
 
   void FastForwardProfileRefreshDelay() {
     const base::TimeDelta kProfileRefreshCallbackDelay =
-        base::TimeDelta::FromMilliseconds(150);
+        base::Milliseconds(150);
     // Connect can result in two profile refresh calls before and after
     // enabling profile. Fast forward by delay after refresh.
     task_environment_.FastForwardBy(2 * kProfileRefreshCallbackDelay);
diff --git a/chromeos/network/geolocation_handler.cc b/chromeos/network/geolocation_handler.cc
index 01307fc8..ff6d451 100644
--- a/chromeos/network/geolocation_handler.cc
+++ b/chromeos/network/geolocation_handler.cc
@@ -197,8 +197,7 @@
   if (age_str) {
     int64_t age_ms;
     if (base::StringToInt64(*age_str, &age_ms)) {
-      wap.timestamp =
-          base::Time::Now() - base::TimeDelta::FromMilliseconds(age_ms);
+      wap.timestamp = base::Time::Now() - base::Milliseconds(age_ms);
     }
   }
 
@@ -236,8 +235,7 @@
   if (age_str) {
     int64_t age_ms;
     if (base::StringToInt64(*age_str, &age_ms)) {
-      ct.timestamp =
-          base::Time::Now() - base::TimeDelta::FromMilliseconds(age_ms);
+      ct.timestamp = base::Time::Now() - base::Milliseconds(age_ms);
     }
   }
 
diff --git a/chromeos/network/managed_network_configuration_handler_unittest.cc b/chromeos/network/managed_network_configuration_handler_unittest.cc
index 42a002d..99c44731 100644
--- a/chromeos/network/managed_network_configuration_handler_unittest.cc
+++ b/chromeos/network/managed_network_configuration_handler_unittest.cc
@@ -314,7 +314,7 @@
 
   void FastForwardProfileRefreshDelay() {
     const base::TimeDelta kProfileRefreshCallbackDelay =
-        base::TimeDelta::FromMilliseconds(150);
+        base::Milliseconds(150);
 
     // Connect can result in two profile refresh calls before and after
     // enabling profile. Fast forward by delay after refresh.
diff --git a/chromeos/network/network_connection_handler_impl.cc b/chromeos/network/network_connection_handler_impl.cc
index f947732..48f1b89 100644
--- a/chromeos/network/network_connection_handler_impl.cc
+++ b/chromeos/network/network_connection_handler_impl.cc
@@ -45,12 +45,10 @@
 // If connection to a network that may require a client certificate is requested
 // when client certificates are not loaded yet, wait this long until
 // certificates have been loaded.
-constexpr base::TimeDelta kMaxCertLoadTimeSeconds =
-    base::TimeDelta::FromSeconds(15);
+constexpr base::TimeDelta kMaxCertLoadTimeSeconds = base::Seconds(15);
 
 // Timeout after which a pending cellular connect request is considered failed.
-constexpr base::TimeDelta kCellularConnectTimeout =
-    base::TimeDelta::FromSeconds(150);
+constexpr base::TimeDelta kCellularConnectTimeout = base::Seconds(150);
 
 bool IsAuthenticationError(const std::string& error) {
   return (error == shill::kErrorBadWEPKey ||
diff --git a/chromeos/network/network_connection_handler_impl_unittest.cc b/chromeos/network/network_connection_handler_impl_unittest.cc
index 8191b56..a770d01 100644
--- a/chromeos/network/network_connection_handler_impl_unittest.cc
+++ b/chromeos/network/network_connection_handler_impl_unittest.cc
@@ -238,10 +238,8 @@
   }
 
   void TearDown() override {
-    helper_.hermes_euicc_test()->SetInteractiveDelay(
-        base::TimeDelta::FromSeconds(0));
-    helper_.manager_test()->SetInteractiveDelay(
-        base::TimeDelta::FromSeconds(0));
+    helper_.hermes_euicc_test()->SetInteractiveDelay(base::Seconds(0));
+    helper_.manager_test()->SetInteractiveDelay(base::Seconds(0));
     managed_config_handler_.reset();
     network_profile_handler_.reset();
     network_connection_handler_->RemoveObserver(
@@ -266,7 +264,7 @@
 
   void Connect(const std::string& service_path) {
     const base::TimeDelta kProfileRefreshCallbackDelay =
-        base::TimeDelta::FromMilliseconds(150);
+        base::Milliseconds(150);
     network_connection_handler_->ConnectToNetwork(
         service_path,
         base::BindOnce(&NetworkConnectionHandlerImplTest::SuccessCallback,
@@ -827,8 +825,7 @@
 
 TEST_F(NetworkConnectionHandlerImplTest,
        ConnectWithCertificateRequestedBeforeCertsAreLoaded_NeverLoaded) {
-  const base::TimeDelta kMaxCertLoadTimeSeconds =
-      base::TimeDelta::FromSeconds(15);
+  const base::TimeDelta kMaxCertLoadTimeSeconds = base::Seconds(15);
 
   Init();
 
@@ -1208,7 +1205,7 @@
   // Delay hermes operation so that first connect will be waiting in
   // CellularConnectionHandler.
   HermesEuiccClient::Get()->GetTestInterface()->SetInteractiveDelay(
-      base::TimeDelta::FromSeconds(10));
+      base::Seconds(10));
   Connect(kTestCellularServicePath);
   Connect(kTestCellularServicePath2);
 
@@ -1219,14 +1216,13 @@
 }
 
 TEST_F(NetworkConnectionHandlerImplTest, CellularConnectTimeout) {
-  const base::TimeDelta kCellularConnectTimeout =
-      base::TimeDelta::FromSeconds(150);
+  const base::TimeDelta kCellularConnectTimeout = base::Seconds(150);
   Init();
   AddNonConnectablePSimService();
   SetCellularServiceConnectable(kTestCellularServicePath);
 
   ShillManagerClient::Get()->GetTestInterface()->SetInteractiveDelay(
-      base::TimeDelta::FromSeconds(200));
+      base::Seconds(200));
   Connect(kTestCellularServicePath);
   AdvanceClock(kCellularConnectTimeout);
   EXPECT_EQ(NetworkConnectionHandler::kErrorConnectTimeout,
@@ -1235,8 +1231,7 @@
 
 TEST_F(NetworkConnectionHandlerImplTest,
        CellularConnectTimeout_StubToShillBacked) {
-  const base::TimeDelta kCellularConnectTimeout =
-      base::TimeDelta::FromSeconds(150);
+  const base::TimeDelta kCellularConnectTimeout = base::Seconds(150);
   Init();
   AddCellularServiceWithESimProfile(/*is_stub=*/true);
 
@@ -1246,7 +1241,7 @@
 
   // Now, Create a shill backed service for the same network.
   ShillManagerClient::Get()->GetTestInterface()->SetInteractiveDelay(
-      base::TimeDelta::FromSeconds(200));
+      base::Seconds(200));
   AddNonConnectableESimService();
   SetCellularServiceConnectable();
 
diff --git a/chromeos/network/network_metadata_store.cc b/chromeos/network/network_metadata_store.cc
index 5e7f3d5..304782ac 100644
--- a/chromeos/network/network_metadata_store.cc
+++ b/chromeos/network/network_metadata_store.cc
@@ -382,7 +382,7 @@
     return base::TimeDelta();
   }
 
-  return base::TimeDelta::FromMillisecondsD(timestamp->GetDouble());
+  return base::Milliseconds(timestamp->GetDouble());
 }
 
 void NetworkMetadataStore::SetLastConnectedTimestamp(
diff --git a/chromeos/network/portal_detector/network_portal_detector_strategy.cc b/chromeos/network/portal_detector/network_portal_detector_strategy.cc
index 9b7a2e1..60b47fd9 100644
--- a/chromeos/network/portal_detector/network_portal_detector_strategy.cc
+++ b/chromeos/network/portal_detector/network_portal_detector_strategy.cc
@@ -44,9 +44,9 @@
         timeout =
             kBaseAttemptTimeoutSec * (delegate_->NoResponseResultCount() + 1);
       }
-      return base::TimeDelta::FromSeconds(timeout);
+      return base::Seconds(timeout);
     }
-    return base::TimeDelta::FromSeconds(kBaseAttemptTimeoutSec);
+    return base::Seconds(kBaseAttemptTimeoutSec);
   }
 };
 
@@ -66,7 +66,7 @@
   // PortalDetectorStrategy overrides:
   StrategyId Id() const override { return STRATEGY_ID_ERROR_SCREEN; }
   base::TimeDelta GetNextAttemptTimeoutImpl() override {
-    return base::TimeDelta::FromSeconds(kAttemptTimeoutSec);
+    return base::Seconds(kAttemptTimeoutSec);
   }
 };
 
@@ -92,7 +92,7 @@
       timeout = kFastAttemptTimeoutSec;
     else
       timeout = kSlowAttemptTimeoutSec;
-    return base::TimeDelta::FromSeconds(timeout);
+    return base::Seconds(timeout);
   }
 };
 
diff --git a/chromeos/network/system_token_cert_db_storage.h b/chromeos/network/system_token_cert_db_storage.h
index f4c54d3..c339bd6 100644
--- a/chromeos/network/system_token_cert_db_storage.h
+++ b/chromeos/network/system_token_cert_db_storage.h
@@ -43,8 +43,7 @@
   // It is stated in cryptohome implementation that 5 minutes is enough time to
   // wait for any TPM operations. For more information, please refer to:
   // https://chromium.googlesource.com/chromiumos/platform2/+/main/cryptohome/cryptohome.cc
-  static constexpr base::TimeDelta kMaxCertDbRetrievalDelay =
-      base::TimeDelta::FromMinutes(5);
+  static constexpr base::TimeDelta kMaxCertDbRetrievalDelay = base::Minutes(5);
 
   // Called by `ChromeBrowserMainPartsAsh` to initialize a global
   // SystemTokenCertDbStorage instance.
diff --git a/chromeos/network/system_token_cert_db_storage_unittest.cc b/chromeos/network/system_token_cert_db_storage_unittest.cc
index 1c414086..fceaa87 100644
--- a/chromeos/network/system_token_cert_db_storage_unittest.cc
+++ b/chromeos/network/system_token_cert_db_storage_unittest.cc
@@ -69,7 +69,7 @@
   // Check that after 1 minute, SystemTokenCertDbStorage is still waiting
   // for the system token slot to be initialized and the DB retrieval hasn't
   // timed out yet.
-  const auto kOneMinuteDelay = base::TimeDelta::FromMinutes(1);
+  const auto kOneMinuteDelay = base::Minutes(1);
   EXPECT_LT(kOneMinuteDelay,
             SystemTokenCertDbStorage::kMaxCertDbRetrievalDelay);
 
@@ -92,7 +92,7 @@
 TEST_F(SystemTokenCertDbStorageTest, GetDatabaseLateRequestSuccess) {
   // Simulate waiting for 6 minutes after the initialization of the
   // SystemTokenCertDbStorage.
-  const auto kSixMinuteDelay = base::TimeDelta::FromMinutes(6);
+  const auto kSixMinuteDelay = base::Minutes(6);
   EXPECT_GT(kSixMinuteDelay,
             SystemTokenCertDbStorage::kMaxCertDbRetrievalDelay);
   task_environment()->FastForwardBy(kSixMinuteDelay);
@@ -118,7 +118,7 @@
       get_system_token_cert_db_callback_wrapper.GetCallback());
   EXPECT_FALSE(get_system_token_cert_db_callback_wrapper.IsCallbackCalled());
 
-  const auto kDelay1 = base::TimeDelta::FromMinutes(2);
+  const auto kDelay1 = base::Minutes(2);
   EXPECT_LT(kDelay1, SystemTokenCertDbStorage::kMaxCertDbRetrievalDelay);
 
   const auto kDelay2 =
diff --git a/chromeos/policy/weekly_time/time_utils.cc b/chromeos/policy/weekly_time/time_utils.cc
index 83d350f..19cbd61 100644
--- a/chromeos/policy/weekly_time/time_utils.cc
+++ b/chromeos/policy/weekly_time/time_utils.cc
@@ -21,7 +21,7 @@
 namespace policy {
 namespace weekly_time_utils {
 namespace {
-constexpr base::TimeDelta kWeek = base::TimeDelta::FromDays(7);
+constexpr base::TimeDelta kWeek = base::Days(7);
 const char kFormatWeekdayHourMinute[] = "EEEE jj:mm a";
 }  // namespace
 
diff --git a/chromeos/policy/weekly_time/time_utils_unittest.cc b/chromeos/policy/weekly_time/time_utils_unittest.cc
index 07d4cbe..1d47963 100644
--- a/chromeos/policy/weekly_time/time_utils_unittest.cc
+++ b/chromeos/policy/weekly_time/time_utils_unittest.cc
@@ -36,8 +36,8 @@
 
 constexpr int kMinutesInHour = 60;
 constexpr int kMillisecondsInHour = 3600000;
-constexpr base::TimeDelta kMinute = base::TimeDelta::FromMinutes(1);
-constexpr base::TimeDelta kHour = base::TimeDelta::FromHours(1);
+constexpr base::TimeDelta kMinute = base::Minutes(1);
+constexpr base::TimeDelta kHour = base::Hours(1);
 constexpr base::Time::Exploded kDaylightSavingsTime{2018, 8, 3, 8, 15, 0, 0, 0};
 constexpr base::Time::Exploded kNonDaylightSavingsTime{2018, 1, 0, 28,
                                                        0,    0, 0, 0};
@@ -250,7 +250,7 @@
   // Just to make sure: Time::FromString actually parses microseconds
   ASSERT_EQ(TimeFromString("Tue, 20 Apr 2021 22:05:00.123456 GMT") -
                 TimeFromString("Tue, 20 Apr 2021 22:05:00 GMT"),
-            base::TimeDelta::FromMicroseconds(123456));
+            base::Microseconds(123456));
 
   // First interval, before begin.
   EXPECT_EQ(GetNextEventTime(TimeFromString("Sat, 17 Apr 2021 23:59:59 GMT"),
diff --git a/chromeos/policy/weekly_time/weekly_time.cc b/chromeos/policy/weekly_time/weekly_time.cc
index fcc993d..a923143 100644
--- a/chromeos/policy/weekly_time/weekly_time.cc
+++ b/chromeos/policy/weekly_time/weekly_time.cc
@@ -15,11 +15,11 @@
 
 namespace {
 
-constexpr base::TimeDelta kWeek = base::TimeDelta::FromDays(7);
-constexpr base::TimeDelta kDay = base::TimeDelta::FromDays(1);
-constexpr base::TimeDelta kHour = base::TimeDelta::FromHours(1);
-constexpr base::TimeDelta kMinute = base::TimeDelta::FromMinutes(1);
-constexpr base::TimeDelta kSecond = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kWeek = base::Days(7);
+constexpr base::TimeDelta kDay = base::Days(1);
+constexpr base::TimeDelta kHour = base::Hours(1);
+constexpr base::TimeDelta kMinute = base::Minutes(1);
+constexpr base::TimeDelta kSecond = base::Seconds(1);
 
 }  // namespace
 
@@ -69,7 +69,7 @@
       other_converted.milliseconds() - milliseconds_;
   if (duration < 0)
     duration += kWeek.InMilliseconds();
-  return base::TimeDelta::FromMilliseconds(duration);
+  return base::Milliseconds(duration);
 }
 
 WeeklyTime WeeklyTime::AddMilliseconds(int milliseconds) const {
diff --git a/chromeos/policy/weekly_time/weekly_time_interval_unittest.cc b/chromeos/policy/weekly_time/weekly_time_interval_unittest.cc
index 62abf16..e737ea9 100644
--- a/chromeos/policy/weekly_time/weekly_time_interval_unittest.cc
+++ b/chromeos/policy/weekly_time/weekly_time_interval_unittest.cc
@@ -30,7 +30,7 @@
 
 const int kMinutesInHour = 60;
 
-constexpr base::TimeDelta kMinute = base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kMinute = base::Minutes(1);
 
 constexpr em::WeeklyTimeProto_DayOfWeek kWeekdays[] = {
     em::WeeklyTimeProto::DAY_OF_WEEK_UNSPECIFIED,
diff --git a/chromeos/policy/weekly_time/weekly_time_unittest.cc b/chromeos/policy/weekly_time/weekly_time_unittest.cc
index 7232bdd..4f66854 100644
--- a/chromeos/policy/weekly_time/weekly_time_unittest.cc
+++ b/chromeos/policy/weekly_time/weekly_time_unittest.cc
@@ -49,9 +49,9 @@
 
 constexpr int kMinutesInHour = 60;
 constexpr int kMillisecondsInHour = 3600000;
-constexpr base::TimeDelta kMinute = base::TimeDelta::FromMinutes(1);
-constexpr base::TimeDelta kHour = base::TimeDelta::FromHours(1);
-constexpr base::TimeDelta kWeek = base::TimeDelta::FromDays(7);
+constexpr base::TimeDelta kMinute = base::Minutes(1);
+constexpr base::TimeDelta kHour = base::Hours(1);
+constexpr base::TimeDelta kWeek = base::Days(7);
 
 }  // namespace
 
@@ -223,9 +223,7 @@
                         15 * kMinutesInHour + 30,
                         kFriday,
                         17 * kMinutesInHour + 45,
-                        base::TimeDelta::FromDays(6) +
-                            base::TimeDelta::FromHours(2) +
-                            base::TimeDelta::FromMinutes(15))));
+                        base::Days(6) + base::Hours(2) + base::Minutes(15))));
 
 class TwoWeeklyTimesAndDurationInDifferentTimezonesTest
     : public testing::TestWithParam<std::tuple<int,
@@ -262,7 +260,7 @@
                                     kMonday,
                                     kMinutesInHour,
                                     5 * kMillisecondsInHour,
-                                    kWeek - base::TimeDelta::FromHours(4))));
+                                    kWeek - base::Hours(4))));
 
 INSTANTIATE_TEST_SUITE_P(
     TimezoneMakesDurationWrapAround,
@@ -273,18 +271,17 @@
                                     kMonday,
                                     kMinutesInHour,
                                     4 * kMillisecondsInHour,
-                                    base::TimeDelta::FromHours(1))));
+                                    base::Hours(1))));
 
-INSTANTIATE_TEST_SUITE_P(
-    TwoAgnosticTimezones,
-    TwoWeeklyTimesAndDurationInDifferentTimezonesTest,
-    testing::Values(std::make_tuple(kMonday,
-                                    10 * kMinutesInHour,
-                                    absl::nullopt,
-                                    kTuesday,
-                                    5 * kMinutesInHour,
-                                    absl::nullopt,
-                                    base::TimeDelta::FromHours(19))));
+INSTANTIATE_TEST_SUITE_P(TwoAgnosticTimezones,
+                         TwoWeeklyTimesAndDurationInDifferentTimezonesTest,
+                         testing::Values(std::make_tuple(kMonday,
+                                                         10 * kMinutesInHour,
+                                                         absl::nullopt,
+                                                         kTuesday,
+                                                         5 * kMinutesInHour,
+                                                         absl::nullopt,
+                                                         base::Hours(19))));
 
 class TwoWeeklyTimesAndOffsetTest
     : public testing::TestWithParam<std::tuple<int, int, int, int, int>> {
diff --git a/chromeos/printing/ppd_cache_unittest.cc b/chromeos/printing/ppd_cache_unittest.cc
index 27a2fd5..db7172c 100644
--- a/chromeos/printing/ppd_cache_unittest.cc
+++ b/chromeos/printing/ppd_cache_unittest.cc
@@ -93,7 +93,7 @@
   EXPECT_EQ(captured_find_results_, 2);
   EXPECT_TRUE(find_result_.success);
   EXPECT_EQ(find_result_.contents, kTestContents);
-  EXPECT_LT(find_result_.age, base::TimeDelta::FromMinutes(5));
+  EXPECT_LT(find_result_.age, base::Minutes(5));
 
   cache->Find(kTestKey2, base::BindOnce(&PpdCacheTest::CaptureFindResult,
                                         base::Unretained(this)));
@@ -115,7 +115,7 @@
   task_environment_.RunUntilIdle();
   EXPECT_EQ(captured_find_results_, 1);
   // The age should be well under a second, but accept anything under an hour.
-  EXPECT_LT(find_result_.age, base::TimeDelta::FromHours(1));
+  EXPECT_LT(find_result_.age, base::Hours(1));
 }
 
 }  // namespace
diff --git a/chromeos/printing/ppd_metadata_manager_unittest.cc b/chromeos/printing/ppd_metadata_manager_unittest.cc
index af047d20..c4fc771 100644
--- a/chromeos/printing/ppd_metadata_manager_unittest.cc
+++ b/chromeos/printing/ppd_metadata_manager_unittest.cc
@@ -39,8 +39,7 @@
 
 // Arbitrarily chosen TimeDelta used in test cases that are not
 // time-senstive.
-constexpr base::TimeDelta kArbitraryTimeDelta =
-    base::TimeDelta::FromSeconds(30LL);
+constexpr base::TimeDelta kArbitraryTimeDelta = base::Seconds(30LL);
 
 // Arbitrarily malformed JSON used to exercise code paths in which
 // parsing fails.
@@ -466,8 +465,7 @@
   // t = 0s: caller requests a list of manufacturers from |manager_|,
   // using metadata parsed within the last thirty seconds. |manager_|
   // performs a live fetch for the manufacturers metadata.
-  manager_->GetManufacturers(base::TimeDelta::FromSeconds(30),
-                             std::move(callback));
+  manager_->GetManufacturers(base::Seconds(30), std::move(callback));
   loop.Run();
 
   ASSERT_EQ(results_.get_manufacturers_code,
@@ -501,8 +499,7 @@
   // t = 0s: caller requests a list of manufacturers from |manager_|.
   // |manager_| responds using the cached metadata without performing
   // a live fetch.
-  manager_->GetManufacturers(base::TimeDelta::FromSeconds(30),
-                             std::move(second_callback));
+  manager_->GetManufacturers(base::Seconds(30), std::move(second_callback));
   second_loop.Run();
 
   // We assert that the results are unchanged from before.
@@ -512,7 +509,7 @@
               ElementsAre(StrEq("It"), StrEq("Playing"), StrEq("You Are")));
 
   // t = 31s
-  clock_.Advance(base::TimeDelta::FromSeconds(31));
+  clock_.Advance(base::Seconds(31));
 
   // Jams the result code to something bad to require that the
   // |manager_| positively answer us.
@@ -527,8 +524,7 @@
   // t = 31s: caller requests a list of manufacturers from |manager_|.
   // |manager_| does not have sufficiently fresh metadata, so it
   // performs a live fetch.
-  manager_->GetManufacturers(base::TimeDelta::FromSeconds(30),
-                             std::move(third_callback));
+  manager_->GetManufacturers(base::Seconds(30), std::move(third_callback));
   third_loop.Run();
 
   // We assert that the results have changed.
@@ -698,7 +694,7 @@
   base::RunLoop loop;
   auto callback = base::BindOnce(&PpdMetadataManagerTest::CatchGetPrinters,
                                  base::Unretained(this), loop.QuitClosure());
-  manager_->GetPrinters("Manufacturer A", base::TimeDelta::FromSeconds(30),
+  manager_->GetPrinters("Manufacturer A", base::Seconds(30),
                         std::move(callback));
   loop.Run();
 
@@ -733,7 +729,7 @@
 
   // t = 0s: caller requests the printers for "Manufacturer A."
   // |manager_| re-uses the cached metadata.
-  manager_->GetPrinters("Manufacturer A", base::TimeDelta::FromSeconds(30),
+  manager_->GetPrinters("Manufacturer A", base::Seconds(30),
                         std::move(second_callback));
   second_loop.Run();
 
@@ -745,7 +741,7 @@
                            ParsedPrinterLike("Some Printer B", "some emm b")));
 
   // t = 31s
-  clock_.Advance(base::TimeDelta::FromSeconds(31));
+  clock_.Advance(base::Seconds(31));
 
   // Jams the results to some bad value, requiring that the manager
   // answer us positively.
@@ -758,7 +754,7 @@
   auto third_callback =
       base::BindOnce(&PpdMetadataManagerTest::CatchGetPrinters,
                      base::Unretained(this), third_loop.QuitClosure());
-  manager_->GetPrinters("Manufacturer A", base::TimeDelta::FromSeconds(30),
+  manager_->GetPrinters("Manufacturer A", base::Seconds(30),
                         std::move(third_callback));
   third_loop.Run();
 
@@ -978,8 +974,8 @@
   // fetches the appropriate forward index metadata (nos. 14, 15, and
   // 16) and caches the result.
   manager_->FindAllEmmsAvailableInIndex(
-      {"some printer a", "some printer b", "some printer c"},
-      base::TimeDelta::FromSeconds(30), std::move(callback));
+      {"some printer a", "some printer b", "some printer c"}, base::Seconds(30),
+      std::move(callback));
   loop.Run();
 
   EXPECT_THAT(results_.available_effective_make_and_model_strings,
@@ -1016,8 +1012,8 @@
   // Caller requests this using metadata fetched within the last thirty
   // seconds, so |manager_| does not perform a live fetch of the data.
   manager_->FindAllEmmsAvailableInIndex(
-      {"some printer a", "some printer b", "some printer c"},
-      base::TimeDelta::FromSeconds(30), std::move(second_callback));
+      {"some printer a", "some printer b", "some printer c"}, base::Seconds(30),
+      std::move(second_callback));
   second_loop.Run();
 
   // We expect the results to be unchanged.
@@ -1037,7 +1033,7 @@
                           "some-ppd-basename-c.ppd.gz")))));
 
   // t = 31s
-  clock_.Advance(base::TimeDelta::FromSeconds(31));
+  clock_.Advance(base::Seconds(31));
 
   base::RunLoop third_loop;
   auto third_callback =
@@ -1053,8 +1049,8 @@
   // Since we previously blocked forward index metadata nos. 14 and 15
   // from being served, the |manager_| will fail to fetch these.
   manager_->FindAllEmmsAvailableInIndex(
-      {"some printer a", "some printer b", "some printer c"},
-      base::TimeDelta::FromSeconds(30), std::move(third_callback));
+      {"some printer a", "some printer b", "some printer c"}, base::Seconds(30),
+      std::move(third_callback));
   third_loop.Run();
 
   // We expect the results to have changed.
@@ -1209,7 +1205,7 @@
   // 1138 and product ID 13. It asks that |manager_| do so with metadata
   // parsed within the last 30 seconds. |manager_| responds with the
   // cached USB index metadata without incurring a live fetch.
-  manager_->FindDeviceInUsbIndex(1138, 13, base::TimeDelta::FromSeconds(30),
+  manager_->FindDeviceInUsbIndex(1138, 13, base::Seconds(30),
                                  std::move(second_callback));
   second_loop.Run();
 
@@ -1219,7 +1215,7 @@
               StrEq("some printer a"));
 
   // t = 31s
-  clock_.Advance(base::TimeDelta::FromSeconds(31));
+  clock_.Advance(base::Seconds(31));
 
   // Jams the landing area to hold a test-failing string. We expect
   // the successful callback to overwrite this.
@@ -1236,7 +1232,7 @@
   // parsed within the last 30 seconds. |manager_| sees that the cached
   // USB index metadata is too stale, and so incurs a live fetch. The
   // fetch exposes the changed metadata.
-  manager_->FindDeviceInUsbIndex(1138, 13, base::TimeDelta::FromSeconds(30),
+  manager_->FindDeviceInUsbIndex(1138, 13, base::Seconds(30),
                                  std::move(third_callback));
   third_loop.Run();
 
@@ -1343,7 +1339,7 @@
   // t = 0s: caller requests the name of a USB manufacturer whose vendor
   // ID is 1138. |manager_| fetches, parses, and caches the USB vendor
   // ID map, responding with the name.
-  manager_->GetUsbManufacturerName(1138, base::TimeDelta::FromSeconds(30),
+  manager_->GetUsbManufacturerName(1138, base::Seconds(30),
                                    std::move(callback));
   loop.Run();
 
@@ -1369,7 +1365,7 @@
   // t = 0s: caller requests the name of a USB manufacturer whose vendor
   // ID is 1138. |manager_| responds with the previously fetched
   // metadata.
-  manager_->GetUsbManufacturerName(1138, base::TimeDelta::FromSeconds(30),
+  manager_->GetUsbManufacturerName(1138, base::Seconds(30),
                                    std::move(second_callback));
   second_loop.Run();
 
@@ -1379,7 +1375,7 @@
               StrEq("Vendor One One Three Eight"));
 
   // t = 31s
-  clock_.Advance(base::TimeDelta::FromSeconds(31));
+  clock_.Advance(base::Seconds(31));
 
   base::RunLoop third_loop;
   auto third_callback =
@@ -1390,7 +1386,7 @@
   // vendor ID is 1138. |manager_| notices that its cached metadata is
   // too stale and performs a live fetch, receiving the mutated
   // USB vendor ID map.
-  manager_->GetUsbManufacturerName(1138, base::TimeDelta::FromSeconds(30),
+  manager_->GetUsbManufacturerName(1138, base::Seconds(30),
                                    std::move(third_callback));
   third_loop.Run();
 
@@ -1523,7 +1519,7 @@
   // effective-make-and-model string "Hello there!" using metadata
   // parsed within the last thirty seconds. |manager_| fetches the
   // appropriate reverse index metadata.
-  manager_->SplitMakeAndModel("Hello there!", base::TimeDelta::FromSeconds(30),
+  manager_->SplitMakeAndModel("Hello there!", base::Seconds(30),
                               std::move(callback));
   loop.Run();
 
@@ -1558,7 +1554,7 @@
   // t = 0s: caller requests that |manager_| split the
   // effective-make-and-model string "Hello there!"
   // |manager_| re-uses the cached reverse index metadata.
-  manager_->SplitMakeAndModel("Hello there!", base::TimeDelta::FromSeconds(30),
+  manager_->SplitMakeAndModel("Hello there!", base::Seconds(30),
                               std::move(second_callback));
   second_loop.Run();
 
@@ -1569,7 +1565,7 @@
   EXPECT_THAT(results_.split_model, StrEq("Kenobi"));
 
   // t = 31s
-  clock_.Advance(base::TimeDelta::FromSeconds(31));
+  clock_.Advance(base::Seconds(31));
 
   // Jams the result to a bad value, requiring that the |manager_|
   // answer us positively.
@@ -1585,7 +1581,7 @@
   // effective-make-and-model string "Hello there!"
   // |manager_| doesn't have sufficiently fresh metadata, so it performs
   // a live fetch.
-  manager_->SplitMakeAndModel("Hello there!", base::TimeDelta::FromSeconds(30),
+  manager_->SplitMakeAndModel("Hello there!", base::Seconds(30),
                               std::move(third_callback));
   third_loop.Run();
 
diff --git a/chromeos/printing/ppd_provider.cc b/chromeos/printing/ppd_provider.cc
index f8e1ce3a..35df3274b 100644
--- a/chromeos/printing/ppd_provider.cc
+++ b/chromeos/printing/ppd_provider.cc
@@ -39,7 +39,7 @@
 
 // Age limit for time-sensitive API calls. Typically denotes "Please
 // respond with data no older than kMaxDataAge." Arbitrarily chosen.
-constexpr base::TimeDelta kMaxDataAge = base::TimeDelta::FromMinutes(30LL);
+constexpr base::TimeDelta kMaxDataAge = base::Minutes(30LL);
 
 // Effective-make-and-model string that describes a printer capable of
 // using the generic Epson PPD.
diff --git a/chromeos/printing/ppd_provider.h b/chromeos/printing/ppd_provider.h
index 8b7846f..107b6f8 100644
--- a/chromeos/printing/ppd_provider.h
+++ b/chromeos/printing/ppd_provider.h
@@ -106,7 +106,7 @@
     // non-authoritative -- PpdProvider will attempt to re-resolve from the
     // network anyways and only use the cache results if the network is
     // unavailable.
-    base::TimeDelta cache_staleness_age = base::TimeDelta::FromDays(14);
+    base::TimeDelta cache_staleness_age = base::Days(14);
 
     // Root of the ppd serving hierarchy.
     std::string ppd_server_root = "https://www.gstatic.com/chromeos_printing";
diff --git a/chromeos/printing/printer_config_cache_unittest.cc b/chromeos/printing/printer_config_cache_unittest.cc
index 292dc80..c029231 100644
--- a/chromeos/printing/printer_config_cache_unittest.cc
+++ b/chromeos/printing/printer_config_cache_unittest.cc
@@ -51,7 +51,7 @@
     "known-bad";
 
 // Defines an arbitrary time increment by which we advance the Clock.
-constexpr base::TimeDelta kTestingIncrement = base::TimeDelta::FromSeconds(1LL);
+constexpr base::TimeDelta kTestingIncrement = base::Seconds(1LL);
 
 // Defines a time of fetch used to construct FetchResult instances that
 // you'll use with the TimeInsensitiveFetchResultEquals matcher.
@@ -141,7 +141,7 @@
       FROM_HERE,
       base::BindOnce(
           &PrinterConfigCache::Fetch, base::Unretained(cache_.get()),
-          "known-good", base::TimeDelta::FromSeconds(0LL),
+          "known-good", base::Seconds(0LL),
           base::BindOnce(&PrinterConfigCacheTest::CaptureFetchResult,
                          base::Unretained(this), run_loop.QuitClosure())));
   run_loop.Run();
@@ -162,7 +162,7 @@
       FROM_HERE,
       base::BindOnce(
           &PrinterConfigCache::Fetch, base::Unretained(cache_.get()),
-          "known-bad", base::TimeDelta::FromSeconds(0LL),
+          "known-bad", base::Seconds(0LL),
           base::BindOnce(&PrinterConfigCacheTest::CaptureFetchResult,
                          base::Unretained(this), run_loop.QuitClosure())));
   run_loop.Run();
@@ -181,7 +181,7 @@
   base::SequencedTaskRunnerHandle::Get()->PostTask(
       FROM_HERE,
       base::BindOnce(&PrinterConfigCache::Fetch, base::Unretained(cache_.get()),
-                     "known-good", base::TimeDelta::FromSeconds(0LL),
+                     "known-good", base::Seconds(0LL),
                      base::BindOnce(&PrinterConfigCacheTest::CaptureFetchResult,
                                     base::Unretained(this),
                                     first_run_loop.QuitClosure())));
@@ -199,7 +199,7 @@
   base::SequencedTaskRunnerHandle::Get()->PostTask(
       FROM_HERE,
       base::BindOnce(&PrinterConfigCache::Fetch, base::Unretained(cache_.get()),
-                     "known-good", base::TimeDelta::FromSeconds(0LL),
+                     "known-good", base::Seconds(0LL),
                      base::BindOnce(&PrinterConfigCacheTest::CaptureFetchResult,
                                     base::Unretained(this),
                                     second_run_loop.QuitClosure())));
@@ -226,7 +226,7 @@
   base::SequencedTaskRunnerHandle::Get()->PostTask(
       FROM_HERE,
       base::BindOnce(&PrinterConfigCache::Fetch, base::Unretained(cache_.get()),
-                     "known-good", base::TimeDelta::FromSeconds(0LL),
+                     "known-good", base::Seconds(0LL),
                      base::BindOnce(&PrinterConfigCacheTest::CaptureFetchResult,
                                     base::Unretained(this),
                                     first_run_loop.QuitClosure())));
@@ -250,7 +250,7 @@
                      // timeout. Bear in mind that this test controls
                      // the passage of time, so nonzero timeout is
                      // "long" here...
-                     base::TimeDelta::FromSeconds(1LL),
+                     base::Seconds(1LL),
                      base::BindOnce(&PrinterConfigCacheTest::CaptureFetchResult,
                                     base::Unretained(this),
                                     // Avoids quitting this RunLoop.
@@ -261,14 +261,14 @@
       FROM_HERE,
       base::BindOnce(
           &PrinterConfigCache::Fetch, base::Unretained(cache_.get()),
-          "known-good", base::TimeDelta::FromSeconds(3600LL),
+          "known-good", base::Seconds(3600LL),
           base::BindOnce(&PrinterConfigCacheTest::CaptureFetchResult,
                          base::Unretained(this), base::RepeatingClosure())));
   base::SequencedTaskRunnerHandle::Get()->PostTask(
       FROM_HERE,
       base::BindOnce(
           &PrinterConfigCache::Fetch, base::Unretained(cache_.get()),
-          "known-good", base::TimeDelta::FromSeconds(86400LL),
+          "known-good", base::Seconds(86400LL),
           base::BindOnce(&PrinterConfigCacheTest::CaptureFetchResult,
                          base::Unretained(this), base::RepeatingClosure())));
 
@@ -278,7 +278,7 @@
       base::BindOnce(&PrinterConfigCache::Fetch, base::Unretained(cache_.get()),
                      "known-good",
                      // Forces the networked fetch.
-                     base::TimeDelta::FromSeconds(0LL),
+                     base::Seconds(0LL),
                      base::BindOnce(&PrinterConfigCacheTest::CaptureFetchResult,
                                     base::Unretained(this),
                                     // Ends our RunLoop.
@@ -317,7 +317,7 @@
   base::SequencedTaskRunnerHandle::Get()->PostTask(
       FROM_HERE,
       base::BindOnce(&PrinterConfigCache::Fetch, base::Unretained(cache_.get()),
-                     "known-good", base::TimeDelta::FromSeconds(32LL),
+                     "known-good", base::Seconds(32LL),
                      base::BindOnce(&PrinterConfigCacheTest::CaptureFetchResult,
                                     base::Unretained(this),
                                     first_run_loop.QuitClosure())));
@@ -326,7 +326,7 @@
   const base::Time time_zero = clock_.Now();
 
   // Advance clock to T+31.
-  AdvanceClock(base::TimeDelta::FromSeconds(31LL));
+  AdvanceClock(base::Seconds(31LL));
 
   // This Fetch() is given the same useful |expiration|; it only matters
   // in that the clock does not yet indicate that the locally resident
@@ -335,7 +335,7 @@
   base::SequencedTaskRunnerHandle::Get()->PostTask(
       FROM_HERE,
       base::BindOnce(&PrinterConfigCache::Fetch, base::Unretained(cache_.get()),
-                     "known-good", base::TimeDelta::FromSeconds(32LL),
+                     "known-good", base::Seconds(32LL),
                      base::BindOnce(&PrinterConfigCacheTest::CaptureFetchResult,
                                     base::Unretained(this),
                                     second_run_loop.QuitClosure())));
@@ -345,7 +345,7 @@
   // should have replied with local contents, fetched at time_zero.
 
   // Advance clock to T+32.
-  AdvanceClock(base::TimeDelta::FromSeconds(1));
+  AdvanceClock(base::Seconds(1));
 
   // This third Fetch() will be given the same |expiration| as ever.
   // The two previous calls to AdvanceClock() will have moved the time
@@ -357,7 +357,7 @@
       base::BindOnce(&PrinterConfigCache::Fetch, base::Unretained(cache_.get()),
                      "known-good",
                      // Entry fetched at T+0 is now stale at T+32.
-                     base::TimeDelta::FromSeconds(32LL),
+                     base::Seconds(32LL),
                      base::BindOnce(&PrinterConfigCacheTest::CaptureFetchResult,
                                     base::Unretained(this),
                                     third_run_loop.QuitClosure())));
@@ -383,7 +383,7 @@
   base::SequencedTaskRunnerHandle::Get()->PostTask(
       FROM_HERE,
       base::BindOnce(&PrinterConfigCache::Fetch, base::Unretained(cache_.get()),
-                     "known-good", base::TimeDelta::FromSeconds(604800LL),
+                     "known-good", base::Seconds(604800LL),
                      base::BindOnce(&PrinterConfigCacheTest::CaptureFetchResult,
                                     base::Unretained(this),
                                     first_run_loop.QuitClosure())));
@@ -406,7 +406,7 @@
   base::SequencedTaskRunnerHandle::Get()->PostTask(
       FROM_HERE,
       base::BindOnce(&PrinterConfigCache::Fetch, base::Unretained(cache_.get()),
-                     "known-good", base::TimeDelta::FromSeconds(18748800LL),
+                     "known-good", base::Seconds(18748800LL),
                      base::BindOnce(&PrinterConfigCacheTest::CaptureFetchResult,
                                     base::Unretained(this),
                                     second_run_loop.QuitClosure())));
diff --git a/chromeos/services/assistant/service.cc b/chromeos/services/assistant/service.cc
index 6e6c35e9..585021c 100644
--- a/chromeos/services/assistant/service.cc
+++ b/chromeos/services/assistant/service.cc
@@ -52,10 +52,8 @@
 constexpr char kScopeAssistant[] =
     "https://www.googleapis.com/auth/assistant-sdk-prototype";
 
-constexpr base::TimeDelta kMinTokenRefreshDelay =
-    base::TimeDelta::FromMilliseconds(1000);
-constexpr base::TimeDelta kMaxTokenRefreshDelay =
-    base::TimeDelta::FromMilliseconds(60 * 1000);
+constexpr base::TimeDelta kMinTokenRefreshDelay = base::Milliseconds(1000);
+constexpr base::TimeDelta kMaxTokenRefreshDelay = base::Milliseconds(60 * 1000);
 
 // Testing override for the URI used to contact the s3 server.
 const char* g_s3_server_uri_override = nullptr;
diff --git a/chromeos/services/assistant/service.h b/chromeos/services/assistant/service.h
index c5b512e..f00ad7d 100644
--- a/chromeos/services/assistant/service.h
+++ b/chromeos/services/assistant/service.h
@@ -55,7 +55,7 @@
 // |AssistantManagerService|'s state won't update if it's currently in the
 // process of starting up. This is the delay before we will try to update
 // |AssistantManagerService| again.
-constexpr auto kUpdateAssistantManagerDelay = base::TimeDelta::FromSeconds(1);
+constexpr auto kUpdateAssistantManagerDelay = base::Seconds(1);
 
 class COMPONENT_EXPORT(ASSISTANT_SERVICE) Service
     : public AssistantService,
diff --git a/chromeos/services/assistant/service_unittest.cc b/chromeos/services/assistant/service_unittest.cc
index 6c456d8..1b421c6c 100644
--- a/chromeos/services/assistant/service_unittest.cc
+++ b/chromeos/services/assistant/service_unittest.cc
@@ -40,7 +40,7 @@
 
 namespace {
 constexpr base::TimeDelta kDefaultTokenExpirationDelay =
-    base::TimeDelta::FromMilliseconds(60000);
+    base::Milliseconds(60000);
 
 #define EXPECT_STATE(_state) EXPECT_EQ(_state, assistant_manager()->GetState())
 
diff --git a/chromeos/services/assistant/test_support/scoped_assistant_browser_delegate.cc b/chromeos/services/assistant/test_support/scoped_assistant_browser_delegate.cc
index 28cff1ae..edc960c 100644
--- a/chromeos/services/assistant/test_support/scoped_assistant_browser_delegate.cc
+++ b/chromeos/services/assistant/test_support/scoped_assistant_browser_delegate.cc
@@ -9,8 +9,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kMockCallbackDelayTime =
-    base::TimeDelta::FromMilliseconds(250);
+constexpr base::TimeDelta kMockCallbackDelayTime = base::Milliseconds(250);
 
 std::unique_ptr<ui::AssistantTree> CreateTestAssistantTree() {
   auto tree = std::make_unique<ui::AssistantTree>();
diff --git a/chromeos/services/cellular_setup/esim_test_base.cc b/chromeos/services/cellular_setup/esim_test_base.cc
index df4bbe4..18c2921 100644
--- a/chromeos/services/cellular_setup/esim_test_base.cc
+++ b/chromeos/services/cellular_setup/esim_test_base.cc
@@ -44,7 +44,7 @@
 void ESimTestBase::SetUp() {
   HermesManagerClient::Get()->GetTestInterface()->ClearEuiccs();
   HermesEuiccClient::Get()->GetTestInterface()->SetInteractiveDelay(
-      base::TimeDelta::FromSeconds(0));
+      base::Seconds(0));
 
   network_state_handler_ = NetworkStateHandler::InitializeForTest();
   network_device_handler_ =
@@ -132,8 +132,7 @@
 }
 
 void ESimTestBase::FastForwardProfileRefreshDelay() {
-  const base::TimeDelta kProfileRefreshCallbackDelay =
-      base::TimeDelta::FromMilliseconds(150);
+  const base::TimeDelta kProfileRefreshCallbackDelay = base::Milliseconds(150);
 
   // Connect can result in two profile refresh calls before and after
   // enabling profile. Fast forward by delay after refresh.
diff --git a/chromeos/services/cellular_setup/euicc.cc b/chromeos/services/cellular_setup/euicc.cc
index e738af5..3e294238 100644
--- a/chromeos/services/cellular_setup/euicc.cc
+++ b/chromeos/services/cellular_setup/euicc.cc
@@ -35,8 +35,7 @@
 
 // Delay before pending profile refresh callback is called. This ensures that
 // eSIM profiles are updated before callback returns.
-constexpr base::TimeDelta kPendingProfileRefreshDelay =
-    base::TimeDelta::FromMilliseconds(150);
+constexpr base::TimeDelta kPendingProfileRefreshDelay = base::Milliseconds(150);
 
 // Prefix for EID when encoded in QR Code.
 const char kEidQrCodePrefix[] = "EID:";
diff --git a/chromeos/services/cellular_setup/euicc_unittest.cc b/chromeos/services/cellular_setup/euicc_unittest.cc
index 741c162..b86a70a9 100644
--- a/chromeos/services/cellular_setup/euicc_unittest.cc
+++ b/chromeos/services/cellular_setup/euicc_unittest.cc
@@ -252,8 +252,7 @@
       /*expected_count=*/1);
   EXPECT_EQ(0u, observer()->profile_list_change_calls().size());
 
-  constexpr base::TimeDelta kHermesInteractiveDelay =
-      base::TimeDelta::FromMilliseconds(3000);
+  constexpr base::TimeDelta kHermesInteractiveDelay = base::Milliseconds(3000);
   HermesEuiccClient::Get()->GetTestInterface()->SetInteractiveDelay(
       kHermesInteractiveDelay);
 
diff --git a/chromeos/services/cellular_setup/ota_activator_impl.cc b/chromeos/services/cellular_setup/ota_activator_impl.cc
index 3056d5d..b7be894 100644
--- a/chromeos/services/cellular_setup/ota_activator_impl.cc
+++ b/chromeos/services/cellular_setup/ota_activator_impl.cc
@@ -70,8 +70,7 @@
 OtaActivatorImpl::Factory::~Factory() = default;
 
 // static
-const base::TimeDelta OtaActivatorImpl::kConnectRetryDelay =
-    base::TimeDelta::FromSeconds(3);
+const base::TimeDelta OtaActivatorImpl::kConnectRetryDelay = base::Seconds(3);
 
 // static
 const size_t OtaActivatorImpl::kMaxConnectRetryAttempt = 3;
diff --git a/chromeos/services/cros_healthd/public/cpp/service_connection_unittest.cc b/chromeos/services/cros_healthd/public/cpp/service_connection_unittest.cc
index 53843bf0..323d7e52 100644
--- a/chromeos/services/cros_healthd/public/cpp/service_connection_unittest.cc
+++ b/chromeos/services/cros_healthd/public/cpp/service_connection_unittest.cc
@@ -563,7 +563,7 @@
   FakeCrosHealthdClient::Get()->SetRunRoutineResponseForTesting(response);
   base::RunLoop run_loop;
   ServiceConnection::GetInstance()->RunBatteryDischargeRoutine(
-      /*exec_duration=*/base::TimeDelta::FromSeconds(12),
+      /*exec_duration=*/base::Seconds(12),
       /*maximum_discharge_percent_allowed=*/99,
       base::BindLambdaForTesting([&](mojom::RunRoutineResponsePtr response) {
         EXPECT_EQ(response, MakeRunRoutineResponse());
@@ -578,7 +578,7 @@
   FakeCrosHealthdClient::Get()->SetRunRoutineResponseForTesting(response);
   base::RunLoop run_loop;
   ServiceConnection::GetInstance()->RunBatteryChargeRoutine(
-      /*exec_duration=*/base::TimeDelta::FromSeconds(30),
+      /*exec_duration=*/base::Seconds(30),
       /*minimum_charge_percent_required=*/10,
       base::BindLambdaForTesting([&](mojom::RunRoutineResponsePtr response) {
         EXPECT_EQ(response, MakeRunRoutineResponse());
diff --git a/chromeos/services/device_sync/async_execution_time_metrics_logger.cc b/chromeos/services/device_sync/async_execution_time_metrics_logger.cc
index 74c6242..84b5ed0 100644
--- a/chromeos/services/device_sync/async_execution_time_metrics_logger.cc
+++ b/chromeos/services/device_sync/async_execution_time_metrics_logger.cc
@@ -12,8 +12,7 @@
 
 namespace {
 
-constexpr const base::TimeDelta kMinAsyncExecutionTime =
-    base::TimeDelta::FromMilliseconds(1);
+constexpr const base::TimeDelta kMinAsyncExecutionTime = base::Milliseconds(1);
 
 // Provide enough granularity so that durations <10s are assigned to buckets in
 // the hundreds of milliseconds.
diff --git a/chromeos/services/device_sync/async_execution_time_metrics_logger.h b/chromeos/services/device_sync/async_execution_time_metrics_logger.h
index 019a298..2b4ec6b 100644
--- a/chromeos/services/device_sync/async_execution_time_metrics_logger.h
+++ b/chromeos/services/device_sync/async_execution_time_metrics_logger.h
@@ -13,8 +13,7 @@
 
 namespace device_sync {
 
-constexpr const base::TimeDelta kMaxAsyncExecutionTime =
-    base::TimeDelta::FromSeconds(30);
+constexpr const base::TimeDelta kMaxAsyncExecutionTime = base::Seconds(30);
 
 // Log metrics related to async function execution times. The function uses
 // custom bucket sizes with a max execution time of kMaxAsyncExecutionTime.
diff --git a/chromeos/services/device_sync/cryptauth_device_activity_getter_impl.cc b/chromeos/services/device_sync/cryptauth_device_activity_getter_impl.cc
index 8c323d4..8addad1 100644
--- a/chromeos/services/device_sync/cryptauth_device_activity_getter_impl.cc
+++ b/chromeos/services/device_sync/cryptauth_device_activity_getter_impl.cc
@@ -161,7 +161,7 @@
         std::move(device_activity_status.connectivity_status()),
         base::Time::FromTimeT(
             device_activity_status.last_update_time().seconds()) +
-            base::TimeDelta::FromNanoseconds(
+            base::Nanoseconds(
                 device_activity_status.last_update_time().nanos())));
   }
 
diff --git a/chromeos/services/device_sync/cryptauth_device_manager_impl.cc b/chromeos/services/device_sync/cryptauth_device_manager_impl.cc
index aaae351d2..5c5c2ea 100644
--- a/chromeos/services/device_sync/cryptauth_device_manager_impl.cc
+++ b/chromeos/services/device_sync/cryptauth_device_manager_impl.cc
@@ -525,8 +525,8 @@
 std::unique_ptr<SyncSchedulerImpl> CreateSyncScheduler(
     SyncScheduler::Delegate* delegate) {
   return std::make_unique<SyncSchedulerImpl>(
-      delegate, base::TimeDelta::FromHours(kRefreshPeriodHours),
-      base::TimeDelta::FromMinutes(kDeviceSyncBaseRecoveryPeriodMinutes),
+      delegate, base::Hours(kRefreshPeriodHours),
+      base::Minutes(kDeviceSyncBaseRecoveryPeriodMinutes),
       kDeviceSyncMaxJitterRatio, "CryptAuth DeviceSync");
 }
 
diff --git a/chromeos/services/device_sync/cryptauth_device_manager_impl_unittest.cc b/chromeos/services/device_sync/cryptauth_device_manager_impl_unittest.cc
index ac06028..fabd3323 100644
--- a/chromeos/services/device_sync/cryptauth_device_manager_impl_unittest.cc
+++ b/chromeos/services/device_sync/cryptauth_device_manager_impl_unittest.cc
@@ -645,7 +645,7 @@
       .WillByDefault(Return(SyncScheduler::Strategy::AGGRESSIVE_RECOVERY));
   EXPECT_TRUE(device_manager_->IsRecoveringFromFailure());
 
-  base::TimeDelta time_to_next_sync = base::TimeDelta::FromMinutes(60);
+  base::TimeDelta time_to_next_sync = base::Minutes(60);
   ON_CALL(*sync_scheduler(), GetTimeToNextSync())
       .WillByDefault(Return(time_to_next_sync));
   EXPECT_EQ(time_to_next_sync, device_manager_->GetTimeToNextAttempt());
diff --git a/chromeos/services/device_sync/cryptauth_enrollment_manager_impl.cc b/chromeos/services/device_sync/cryptauth_enrollment_manager_impl.cc
index d28459d..c97bde0 100644
--- a/chromeos/services/device_sync/cryptauth_enrollment_manager_impl.cc
+++ b/chromeos/services/device_sync/cryptauth_enrollment_manager_impl.cc
@@ -52,8 +52,8 @@
 std::unique_ptr<SyncScheduler> CreateSyncScheduler(
     SyncScheduler::Delegate* delegate) {
   return std::make_unique<SyncSchedulerImpl>(
-      delegate, base::TimeDelta::FromDays(kEnrollmentRefreshPeriodDays),
-      base::TimeDelta::FromMinutes(kEnrollmentBaseRecoveryPeriodMinutes),
+      delegate, base::Days(kEnrollmentRefreshPeriodDays),
+      base::Minutes(kEnrollmentBaseRecoveryPeriodMinutes),
       kEnrollmentMaxJitterRatio, "CryptAuth Enrollment");
 }
 
@@ -177,7 +177,7 @@
   base::Time last_enrollment_time = GetLastEnrollmentTime();
   return !last_enrollment_time.is_null() &&
          (clock_->Now() - last_enrollment_time) <
-             base::TimeDelta::FromDays(kValidEnrollmentPeriodDays);
+             base::Days(kValidEnrollmentPeriodDays);
 }
 
 base::Time CryptAuthEnrollmentManagerImpl::GetLastEnrollmentTime() const {
diff --git a/chromeos/services/device_sync/cryptauth_enrollment_manager_impl_unittest.cc b/chromeos/services/device_sync/cryptauth_enrollment_manager_impl_unittest.cc
index 60b073c..8492512 100644
--- a/chromeos/services/device_sync/cryptauth_enrollment_manager_impl_unittest.cc
+++ b/chromeos/services/device_sync/cryptauth_enrollment_manager_impl_unittest.cc
@@ -284,7 +284,7 @@
       .WillByDefault(Return(SyncScheduler::Strategy::AGGRESSIVE_RECOVERY));
   EXPECT_TRUE(enrollment_manager_.IsRecoveringFromFailure());
 
-  base::TimeDelta time_to_next_sync = base::TimeDelta::FromMinutes(60);
+  base::TimeDelta time_to_next_sync = base::Minutes(60);
   ON_CALL(*sync_scheduler(), GetTimeToNextSync())
       .WillByDefault(Return(time_to_next_sync));
   EXPECT_EQ(time_to_next_sync, enrollment_manager_.GetTimeToNextAttempt());
diff --git a/chromeos/services/device_sync/cryptauth_gcm_manager_impl.cc b/chromeos/services/device_sync/cryptauth_gcm_manager_impl.cc
index 113ef54a..8f0a497 100644
--- a/chromeos/services/device_sync/cryptauth_gcm_manager_impl.cc
+++ b/chromeos/services/device_sync/cryptauth_gcm_manager_impl.cc
@@ -193,8 +193,8 @@
                                   base::TimeDelta execution_time) {
   base::UmaHistogramCustomTimes(
       "CryptAuth.Gcm.Registration.AttemptTimeWithRetries", execution_time,
-      base::TimeDelta::FromSeconds(1) /* min */,
-      base::TimeDelta::FromMinutes(10) /* max */, 100 /* buckets */);
+      base::Seconds(1) /* min */, base::Minutes(10) /* max */,
+      100 /* buckets */);
 
   base::UmaHistogramEnumeration("CryptAuth.Gcm.Registration.Result", result);
 }
diff --git a/chromeos/services/device_sync/cryptauth_scheduler_impl.cc b/chromeos/services/device_sync/cryptauth_scheduler_impl.cc
index d0f9ce1c..108f1c0 100644
--- a/chromeos/services/device_sync/cryptauth_scheduler_impl.cc
+++ b/chromeos/services/device_sync/cryptauth_scheduler_impl.cc
@@ -24,22 +24,21 @@
 
 namespace {
 
-constexpr base::TimeDelta kZeroTimeDelta = base::TimeDelta::FromSeconds(0);
+constexpr base::TimeDelta kZeroTimeDelta = base::Seconds(0);
 
 // The default period between successful enrollments in days. Superseded by the
 // ClientDirective's checkin_delay_millis sent by CryptAuth.
-constexpr base::TimeDelta kDefaultRefreshPeriod = base::TimeDelta::FromDays(30);
+constexpr base::TimeDelta kDefaultRefreshPeriod = base::Days(30);
 
 // The default period, in hours, between Enrollment/DeviceSync attempts if the
 // previous Enrollment/DeviceSync attempt failed. Superseded by the
 // ClientDirective's retry_period_millis sent by CryptAuth.
-constexpr base::TimeDelta kDefaultRetryPeriod = base::TimeDelta::FromHours(12);
+constexpr base::TimeDelta kDefaultRetryPeriod = base::Hours(12);
 
 // The time to wait before an "immediate" retry attempt after a failed
 // Enrollment/DeviceSync attempt. Note: Some request types are throttled by
 // CryptAuth if more than one is sent within a five-minute window.
-constexpr base::TimeDelta kImmediateRetryDelay =
-    base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kImmediateRetryDelay = base::Minutes(5);
 
 // The default number of "immediate" retries after a failed
 // Enrollment/DeviceSync attempt. Superseded by the ClientDirective's
@@ -254,8 +253,7 @@
 }
 
 base::TimeDelta CryptAuthSchedulerImpl::GetRefreshPeriod() const {
-  return base::TimeDelta::FromMilliseconds(
-      client_directive_.checkin_delay_millis());
+  return base::Milliseconds(client_directive_.checkin_delay_millis());
 }
 absl::optional<base::TimeDelta>
 CryptAuthSchedulerImpl::GetTimeToNextEnrollmentRequest() const {
@@ -432,9 +430,9 @@
   }
 
   // Recover from failure after expending allotted immediate retries.
-  return std::max(kZeroTimeDelta, base::TimeDelta::FromMilliseconds(
-                                      client_directive_.retry_period_millis()) -
-                                      time_since_last_attempt);
+  return std::max(kZeroTimeDelta,
+                  base::Milliseconds(client_directive_.retry_period_millis()) -
+                      time_since_last_attempt);
 }
 
 bool CryptAuthSchedulerImpl::IsWaitingForResult(
diff --git a/chromeos/services/device_sync/cryptauth_scheduler_impl_unittest.cc b/chromeos/services/device_sync/cryptauth_scheduler_impl_unittest.cc
index bc87c0a4..37ed994 100644
--- a/chromeos/services/device_sync/cryptauth_scheduler_impl_unittest.cc
+++ b/chromeos/services/device_sync/cryptauth_scheduler_impl_unittest.cc
@@ -32,9 +32,8 @@
 
 enum class NetworkConnectionStatus { kDisconnected, kConnecting, kConnected };
 
-constexpr base::TimeDelta kZeroTimeDelta = base::TimeDelta::FromSeconds(0);
-constexpr base::TimeDelta kImmediateRetryDelay =
-    base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kZeroTimeDelta = base::Seconds(0);
+constexpr base::TimeDelta kImmediateRetryDelay = base::Minutes(5);
 const char kWifiServiceGuid[] = "wifiGuid";
 const char kSessionId[] = "sessionId";
 
@@ -251,9 +250,9 @@
       const cryptauthv2::ClientDirective& expected_client_directive) {
     EXPECT_EQ(util::EncodeProtoMessageAsValueString(&expected_client_directive),
               *pref_service_.Get(prefs::kCryptAuthSchedulerClientDirective));
-    EXPECT_EQ(base::TimeDelta::FromMilliseconds(
-                  expected_client_directive.checkin_delay_millis()),
-              scheduler()->GetRefreshPeriod());
+    EXPECT_EQ(
+        base::Milliseconds(expected_client_directive.checkin_delay_millis()),
+        scheduler()->GetRefreshPeriod());
   }
 
   void VerifyScheduledEnrollment(
@@ -368,8 +367,7 @@
   SetWifiNetworkStatus(NetworkConnectionStatus::kConnected);
 
   const base::Time kStartTime = base::Time::FromDoubleT(1600600000);
-  const base::Time kInitializationFinishTime =
-      kStartTime + base::TimeDelta::FromSeconds(5);
+  const base::Time kInitializationFinishTime = kStartTime + base::Seconds(5);
 
   clock()->SetNow(kStartTime);
 
@@ -451,8 +449,7 @@
   SetWifiNetworkStatus(NetworkConnectionStatus::kConnected);
 
   const base::Time kStartTime = base::Time::FromDoubleT(1600600000);
-  const base::Time kInitializationFinishTime =
-      kStartTime + base::TimeDelta::FromSeconds(5);
+  const base::Time kInitializationFinishTime = kStartTime + base::Seconds(5);
 
   clock()->SetNow(kStartTime);
 
@@ -565,9 +562,8 @@
     base::TimeDelta expected_delay =
         attempt < cryptauthv2::GetClientDirectiveForTest().retry_attempts()
             ? kImmediateRetryDelay
-            : base::TimeDelta::FromMilliseconds(
-                  cryptauthv2::GetClientDirectiveForTest()
-                      .retry_period_millis());
+            : base::Milliseconds(cryptauthv2::GetClientDirectiveForTest()
+                                     .retry_period_millis());
     VerifyScheduledEnrollment(expected_request, expected_delay);
     VerifyScheduledDeviceSync(expected_request, expected_delay);
   }
@@ -711,7 +707,7 @@
 
   const base::Time kLastEnrollmentTime = base::Time::FromDoubleT(1600600000);
   const base::Time kLastEnrollmentAttemptTime =
-      kLastEnrollmentTime + base::TimeDelta::FromDays(30);
+      kLastEnrollmentTime + base::Days(30);
   const base::Time kStartTime =
       kLastEnrollmentAttemptTime + (kImmediateRetryDelay / 2);
 
@@ -755,8 +751,7 @@
   SetWifiNetworkStatus(NetworkConnectionStatus::kConnected);
 
   const base::Time kLastSuccessTime = base::Time::FromDoubleT(1600600000);
-  const base::Time kLastAttemptTime =
-      kLastSuccessTime + base::TimeDelta::FromDays(30);
+  const base::Time kLastAttemptTime = kLastSuccessTime + base::Days(30);
   const base::Time kStartTime = kLastAttemptTime + (kImmediateRetryDelay / 2);
   clock()->SetNow(kStartTime);
 
@@ -847,7 +842,7 @@
                                        absl::nullopt /* session_id */);
   VerifyScheduledEnrollment(
       expected_enrollment_request,
-      base::TimeDelta::FromMilliseconds(
+      base::Milliseconds(
           old_client_directive.checkin_delay_millis()) /* expected_delay */);
 
   VerifyScheduledDeviceSync(expected_device_sync_request,
@@ -869,11 +864,11 @@
       new_client_directive));
   VerifyScheduledEnrollment(
       expected_enrollment_request,
-      base::TimeDelta::FromMilliseconds(
+      base::Milliseconds(
           new_client_directive.checkin_delay_millis()) /* expected_delay */);
   VerifyScheduledDeviceSync(
       expected_device_sync_request,
-      base::TimeDelta::FromMilliseconds(
+      base::Milliseconds(
           new_client_directive.retry_period_millis()) /* expected_delay */);
 }
 
@@ -974,7 +969,7 @@
   VerifyNoDeviceSyncsTriggeredButRequestQueued(expected_device_sync_request);
 
   // Once Wifi network connected, reschedule enrollment.
-  const base::TimeDelta kTimeElapsed = base::TimeDelta::FromHours(10);
+  const base::TimeDelta kTimeElapsed = base::Hours(10);
   clock()->SetNow(kNow + kTimeElapsed);
   AddDisconnectedWifiNetwork();
   SetWifiNetworkStatus(NetworkConnectionStatus::kConnected);
diff --git a/chromeos/services/device_sync/cryptauth_v2_device_manager_impl_unittest.cc b/chromeos/services/device_sync/cryptauth_v2_device_manager_impl_unittest.cc
index 0104d98..7a894d1 100644
--- a/chromeos/services/device_sync/cryptauth_v2_device_manager_impl_unittest.cc
+++ b/chromeos/services/device_sync/cryptauth_v2_device_manager_impl_unittest.cc
@@ -28,8 +28,7 @@
 
 const char kFakeSessionId[] = "session_id";
 const double kFakeLastSuccessTimeSeconds = 1600600000;
-constexpr base::TimeDelta kFakeFailureRetryTime =
-    base::TimeDelta::FromMinutes(15);
+constexpr base::TimeDelta kFakeFailureRetryTime = base::Minutes(15);
 
 // A FakeCryptAuthScheduler that updates its DeviceSync parameters based on the
 // result of the DeviceSync attempt. This makes for reasonable logs.
diff --git a/chromeos/services/device_sync/cryptauth_v2_enrollment_manager_impl_unittest.cc b/chromeos/services/device_sync/cryptauth_v2_enrollment_manager_impl_unittest.cc
index e5f80fdb..25b2a0c 100644
--- a/chromeos/services/device_sync/cryptauth_v2_enrollment_manager_impl_unittest.cc
+++ b/chromeos/services/device_sync/cryptauth_v2_enrollment_manager_impl_unittest.cc
@@ -50,10 +50,8 @@
 const char kFakeV2PrivateKey[] = "private_key_v2";
 const char kFakeSessionId[] = "session_id";
 
-constexpr base::TimeDelta kFakeRefreshPeriod =
-    base::TimeDelta::FromMilliseconds(2592000000);
-constexpr base::TimeDelta kFakeRetryPeriod =
-    base::TimeDelta::FromMilliseconds(43200000);
+constexpr base::TimeDelta kFakeRefreshPeriod = base::Milliseconds(2592000000);
+constexpr base::TimeDelta kFakeRetryPeriod = base::Milliseconds(43200000);
 
 const cryptauthv2::PolicyReference& GetClientDirectivePolicyReferenceForTest() {
   static const base::NoDestructor<cryptauthv2::PolicyReference>
@@ -434,10 +432,9 @@
 
   // Now, user is due for a refresh.
   test_clock()->SetNow(test_clock()->Now() + kFakeRefreshPeriod +
-                       base::TimeDelta::FromSeconds(1));
+                       base::Seconds(1));
   EXPECT_FALSE(enrollment_manager()->IsEnrollmentValid());
-  base::TimeDelta expected_time_to_next_attempt =
-      base::TimeDelta::FromSeconds(0);
+  base::TimeDelta expected_time_to_next_attempt = base::Seconds(0);
   fake_enrollment_scheduler()->set_time_to_next_enrollment_request(
       expected_time_to_next_attempt);
   EXPECT_EQ(expected_time_to_next_attempt,
diff --git a/chromeos/services/device_sync/device_sync_impl.cc b/chromeos/services/device_sync/device_sync_impl.cc
index 8b80a13..0fbe9d1 100644
--- a/chromeos/services/device_sync/device_sync_impl.cc
+++ b/chromeos/services/device_sync/device_sync_impl.cc
@@ -52,16 +52,15 @@
 
 namespace {
 
-constexpr base::TimeDelta kSetFeatureEnabledTimeout =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kSetFeatureEnabledTimeout = base::Seconds(5);
 
 // Timeout value for asynchronous operation.
 // TODO(https://crbug.com/933656): Use async execution time metrics to tune
 // this timeout value.
 constexpr base::TimeDelta kWaitingForClientAppMetadataTimeout =
-    base::TimeDelta::FromSeconds(60);
+    base::Seconds(60);
 
-constexpr base::TimeDelta kBaseRetryDelay = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kBaseRetryDelay = base::Seconds(5);
 
 // This enum is tied directly to a UMA enum defined in
 // //tools/metrics/histograms/enums.xml, and should always reflect it (do not
@@ -143,8 +142,8 @@
                                   bool success) {
   base::UmaHistogramCustomTimes(
       "CryptAuth.DeviceSyncService.GcmRegistration.ExecutionTime",
-      execution_time, base::TimeDelta::FromSeconds(1) /* min */,
-      base::TimeDelta::FromMinutes(10) /* max */, 100 /* buckets */);
+      execution_time, base::Seconds(1) /* min */, base::Minutes(10) /* max */,
+      100 /* buckets */);
 
   base::UmaHistogramBoolean(
       "CryptAuth.DeviceSyncService.GcmRegistration.Success", success);
@@ -154,7 +153,7 @@
                                          CryptAuthAsyncTaskResult result) {
   base::UmaHistogramCustomTimes(
       "CryptAuth.DeviceSyncService.ClientAppMetadataFetch.ExecutionTime",
-      execution_time, base::TimeDelta::FromSeconds(1) /* min */,
+      execution_time, base::Seconds(1) /* min */,
       kWaitingForClientAppMetadataTimeout /* max */, 100 /* buckets */);
 
   LogCryptAuthAsyncTaskSuccessMetric(
@@ -165,7 +164,7 @@
 void RecordInitializationMetrics(const base::TimeDelta& execution_time) {
   base::UmaHistogramCustomTimes(
       "CryptAuth.DeviceSyncService.Initialization.ExecutionTime",
-      execution_time, base::TimeDelta::FromSeconds(1) /* min */,
+      execution_time, base::Seconds(1) /* min */,
       kWaitingForClientAppMetadataTimeout /* max */, 100 /* buckets */);
 }
 
diff --git a/chromeos/services/device_sync/device_sync_service_unittest.cc b/chromeos/services/device_sync/device_sync_service_unittest.cc
index e5727557..6003ca2 100644
--- a/chromeos/services/device_sync/device_sync_service_unittest.cc
+++ b/chromeos/services/device_sync/device_sync_service_unittest.cc
@@ -2404,14 +2404,12 @@
 
 TEST_P(DeviceSyncServiceTest, GetDebugInfo) {
   static const base::TimeDelta kTimeBetweenEpochAndLastEnrollment =
-      base::TimeDelta::FromDays(365 * 50);  // 50 years
-  static const base::TimeDelta kTimeUntilNextEnrollment =
-      base::TimeDelta::FromDays(10);
+      base::Days(365 * 50);  // 50 years
+  static const base::TimeDelta kTimeUntilNextEnrollment = base::Days(10);
 
   static const base::TimeDelta kTimeBetweenEpochAndLastSync =
-      base::TimeDelta::FromDays(366 * 50);  // 50 years and 1 day
-  static const base::TimeDelta kTimeUntilNextSync =
-      base::TimeDelta::FromDays(11);
+      base::Days(366 * 50);  // 50 years and 1 day
+  static const base::TimeDelta kTimeUntilNextSync = base::Days(11);
 
   InitializeServiceSuccessfully();
 
diff --git a/chromeos/services/device_sync/fake_cryptauth_scheduler.h b/chromeos/services/device_sync/fake_cryptauth_scheduler.h
index 2459e15..8a34a3d 100644
--- a/chromeos/services/device_sync/fake_cryptauth_scheduler.h
+++ b/chromeos/services/device_sync/fake_cryptauth_scheduler.h
@@ -23,10 +23,9 @@
 // Fake CryptAuthScheduler implementation.
 class FakeCryptAuthScheduler : public CryptAuthScheduler {
  public:
-  static constexpr base::TimeDelta kDefaultRefreshPeriod =
-      base::TimeDelta::FromDays(30);
+  static constexpr base::TimeDelta kDefaultRefreshPeriod = base::Days(30);
   static constexpr base::TimeDelta kDefaultTimeToNextEnrollmentRequest =
-      base::TimeDelta::FromHours(12);
+      base::Hours(12);
 
   FakeCryptAuthScheduler();
 
diff --git a/chromeos/services/device_sync/proto/cryptauth_logging.cc b/chromeos/services/device_sync/proto/cryptauth_logging.cc
index f032ee0..9071dbc0 100644
--- a/chromeos/services/device_sync/proto/cryptauth_logging.cc
+++ b/chromeos/services/device_sync/proto/cryptauth_logging.cc
@@ -153,7 +153,7 @@
   {
     std::u16string checkin_delay;
     bool success = base::TimeDurationFormatWithSeconds(
-        base::TimeDelta::FromMilliseconds(directive.checkin_delay_millis()),
+        base::Milliseconds(directive.checkin_delay_millis()),
         base::DurationFormatWidth::DURATION_WIDTH_NARROW, &checkin_delay);
     if (success) {
       dict.SetStringKey("Next enrollment", checkin_delay);
@@ -169,7 +169,7 @@
   {
     std::u16string retry_period;
     bool success = base::TimeDurationFormatWithSeconds(
-        base::TimeDelta::FromMilliseconds(directive.retry_period_millis()),
+        base::Milliseconds(directive.retry_period_millis()),
         base::DurationFormatWidth::DURATION_WIDTH_NARROW, &retry_period);
     if (!success) {
       retry_period = base::UTF8ToUTF16(
@@ -354,7 +354,7 @@
       "Last update time",
       base::TimeFormatShortDateAndTimeWithTimeZone(
           base::Time::FromTimeT(status.last_update_time().seconds()) +
-          base::TimeDelta::FromNanoseconds(status.last_update_time().nanos())));
+          base::Nanoseconds(status.last_update_time().nanos())));
 
   return dict;
 }
diff --git a/chromeos/services/device_sync/stub_device_sync.cc b/chromeos/services/device_sync/stub_device_sync.cc
index d751ac5..6638d0b 100644
--- a/chromeos/services/device_sync/stub_device_sync.cc
+++ b/chromeos/services/device_sync/stub_device_sync.cc
@@ -150,11 +150,11 @@
     std::move(callback).Run(mojom::DebugInfo::New(
         /*last_enrollment_time=*/base::Time::Now(),
         /*time_to_next_enrollment_attempt=*/
-        base::TimeDelta::FromMilliseconds(10),
+        base::Milliseconds(10),
         /*is_recovering_from_enrollment_failure=*/false,
         /*is_enrollment_in_progress=*/false,
         /*last_sync_time=*/base::Time::Now(),
-        /*time_to_next_sync_attempt=*/base::TimeDelta::FromMilliseconds(10),
+        /*time_to_next_sync_attempt=*/base::Milliseconds(10),
         /*is_recovering_from_sync_failure=*/false,
         /*is_sync_in_progress=*/false));
   }
diff --git a/chromeos/services/device_sync/sync_scheduler_impl.cc b/chromeos/services/device_sync/sync_scheduler_impl.cc
index d783d94..1de8cda 100644
--- a/chromeos/services/device_sync/sync_scheduler_impl.cc
+++ b/chromeos/services/device_sync/sync_scheduler_impl.cc
@@ -73,7 +73,7 @@
 
   // The elapsed time may be negative if the system clock is changed. In this
   // case, we immediately schedule a sync.
-  base::TimeDelta zero_delta = base::TimeDelta::FromSeconds(0);
+  base::TimeDelta zero_delta = base::Seconds(0);
   if (elapsed_time_since_last_sync < zero_delta || sync_delta < zero_delta)
     sync_delta = zero_delta;
 
@@ -86,7 +86,7 @@
 
 base::TimeDelta SyncSchedulerImpl::GetTimeToNextSync() const {
   if (!timer_)
-    return base::TimeDelta::FromSeconds(0);
+    return base::Seconds(0);
   return timer_->GetCurrentDelay();
 }
 
@@ -170,7 +170,7 @@
   base::TimeDelta period = GetPeriod();
   base::TimeDelta jittered_time_delta = period + (period * jitter);
   if (jittered_time_delta.InMilliseconds() < 0)
-    jittered_time_delta = base::TimeDelta::FromMilliseconds(0);
+    jittered_time_delta = base::Milliseconds(0);
   return jittered_time_delta;
 }
 
diff --git a/chromeos/services/device_sync/sync_scheduler_impl_unittest.cc b/chromeos/services/device_sync/sync_scheduler_impl_unittest.cc
index b94ecec..cb6383c 100644
--- a/chromeos/services/device_sync/sync_scheduler_impl_unittest.cc
+++ b/chromeos/services/device_sync/sync_scheduler_impl_unittest.cc
@@ -77,10 +77,9 @@
                                         public SyncSchedulerImpl::Delegate {
  protected:
   DeviceSyncSyncSchedulerImplTest()
-      : refresh_period_(base::TimeDelta::FromDays(kRefreshPeriodDays)),
-        base_recovery_period_(
-            base::TimeDelta::FromSeconds(kRecoveryPeriodSeconds)),
-        zero_elapsed_time_(base::TimeDelta::FromSeconds(0)),
+      : refresh_period_(base::Days(kRefreshPeriodDays)),
+        base_recovery_period_(base::Seconds(kRecoveryPeriodSeconds)),
+        zero_elapsed_time_(base::Seconds(0)),
         scheduler_(new TestSyncSchedulerImpl(this,
                                              refresh_period_,
                                              base_recovery_period_,
@@ -178,7 +177,7 @@
 
 TEST_F(DeviceSyncSyncSchedulerImplTest, AggressiveRecoveryBackOff) {
   scheduler_->Start(zero_elapsed_time_, Strategy::AGGRESSIVE_RECOVERY);
-  base::TimeDelta last_recovery_period = base::TimeDelta::FromSeconds(0);
+  base::TimeDelta last_recovery_period = base::Seconds(0);
 
   for (int i = 0; i < 20; ++i) {
     timer()->Fire();
@@ -210,8 +209,7 @@
 }
 
 TEST_F(DeviceSyncSyncSchedulerImplTest, SyncImmediatelyForPeriodicRefresh) {
-  scheduler_->Start(base::TimeDelta::FromDays(kElapsedTimeDays),
-                    Strategy::PERIODIC_REFRESH);
+  scheduler_->Start(base::Days(kElapsedTimeDays), Strategy::PERIODIC_REFRESH);
   EXPECT_TRUE(scheduler_->GetTimeToNextSync().is_zero());
   EXPECT_TRUE(timer()->GetCurrentDelay().is_zero());
   timer()->Fire();
@@ -221,7 +219,7 @@
 }
 
 TEST_F(DeviceSyncSyncSchedulerImplTest, SyncImmediatelyForAggressiveRecovery) {
-  scheduler_->Start(base::TimeDelta::FromDays(kElapsedTimeDays),
+  scheduler_->Start(base::Days(kElapsedTimeDays),
                     Strategy::AGGRESSIVE_RECOVERY);
   EXPECT_TRUE(scheduler_->GetTimeToNextSync().is_zero());
   EXPECT_TRUE(timer()->GetCurrentDelay().is_zero());
@@ -232,7 +230,7 @@
 }
 
 TEST_F(DeviceSyncSyncSchedulerImplTest, InitialSyncShorterByElapsedTime) {
-  base::TimeDelta elapsed_time = base::TimeDelta::FromDays(2);
+  base::TimeDelta elapsed_time = base::Days(2);
   scheduler_->Start(elapsed_time, Strategy::PERIODIC_REFRESH);
   EXPECT_EQ(refresh_period_ - elapsed_time, scheduler_->GetTimeToNextSync());
   timer()->Fire();
@@ -245,7 +243,7 @@
 
   scheduler_->Start(zero_elapsed_time_, Strategy::PERIODIC_REFRESH);
 
-  base::TimeDelta cumulative_jitter = base::TimeDelta::FromSeconds(0);
+  base::TimeDelta cumulative_jitter = base::Seconds(0);
   for (int i = 0; i < 10; ++i) {
     base::TimeDelta next_sync_delta = scheduler_->GetTimeToNextSync();
     cumulative_jitter += (next_sync_delta - refresh_period_).magnitude();
@@ -262,7 +260,7 @@
 }
 
 TEST_F(DeviceSyncSyncSchedulerImplTest, JitteredTimeDeltaIsNonNegative) {
-  base::TimeDelta zero_delta = base::TimeDelta::FromSeconds(0);
+  base::TimeDelta zero_delta = base::Seconds(0);
   double max_jitter_ratio = 1;
   scheduler_ = std::make_unique<TestSyncSchedulerImpl>(
       this, zero_delta, zero_delta, max_jitter_ratio);
@@ -280,10 +278,9 @@
 
 TEST_F(DeviceSyncSyncSchedulerImplTest, StartWithNegativeElapsedTime) {
   // This could happen in rare cases where the system clock changes.
-  scheduler_->Start(base::TimeDelta::FromDays(-1000),
-                    Strategy::PERIODIC_REFRESH);
+  scheduler_->Start(base::Days(-1000), Strategy::PERIODIC_REFRESH);
 
-  base::TimeDelta zero_delta = base::TimeDelta::FromSeconds(0);
+  base::TimeDelta zero_delta = base::Seconds(0);
   EXPECT_EQ(zero_delta, scheduler_->GetTimeToNextSync());
   EXPECT_EQ(zero_delta, timer()->GetCurrentDelay());
 }
diff --git a/chromeos/services/libassistant/audio/audio_input_impl.cc b/chromeos/services/libassistant/audio/audio_input_impl.cc
index 27dd40b..59841e9 100644
--- a/chromeos/services/libassistant/audio/audio_input_impl.cc
+++ b/chromeos/services/libassistant/audio/audio_input_impl.cc
@@ -80,7 +80,7 @@
       // libassistant has rejected the hotword supplied by DSP. Thus, we reset
       // and reopen the device on hotword state.
       second_phase_timer_.Start(
-          FROM_HERE, base::TimeDelta::FromSeconds(1),
+          FROM_HERE, base::Seconds(1),
           base::BindRepeating(
               &DspHotwordStateManager::OnConversationTurnFinished,
               base::Unretained(this)));
@@ -236,8 +236,7 @@
     captured_frames_count_ += num_arrived_frames;
     if (VLOG_IS_ON(1)) {
       auto now = base::TimeTicks::Now();
-      if ((now - last_frame_count_report_time_) >
-          base::TimeDelta::FromMinutes(2)) {
+      if ((now - last_frame_count_report_time_) > base::Minutes(2)) {
         VLOG(1) << "Captured frames: " << captured_frames_count_;
         last_frame_count_report_time_ = now;
       }
diff --git a/chromeos/services/libassistant/audio/audio_output_provider_impl_unittest.cc b/chromeos/services/libassistant/audio/audio_output_provider_impl_unittest.cc
index 5ac1c57..6e52159 100644
--- a/chromeos/services/libassistant/audio/audio_output_provider_impl_unittest.cc
+++ b/chromeos/services/libassistant/audio/audio_output_provider_impl_unittest.cc
@@ -144,7 +144,7 @@
   audio_output_delegate.Reset();
   audio_bus->Zero();
   // On first render, it will push the data to |audio_bus|.
-  owner->Render(base::TimeDelta::FromMicroseconds(0), base::TimeTicks::Now(), 0,
+  owner->Render(base::Microseconds(0), base::TimeTicks::Now(), 0,
                 audio_bus.get());
   audio_output_delegate.Wait();
   EXPECT_FALSE(audio_bus->AreFramesZero());
@@ -152,7 +152,7 @@
 
   // The subsequent Render call will detect no data available and notify
   // delegate for OnEndOfStream().
-  owner->Render(base::TimeDelta::FromMicroseconds(0), base::TimeTicks::Now(), 0,
+  owner->Render(base::Microseconds(0), base::TimeTicks::Now(), 0,
                 audio_bus.get());
   EXPECT_TRUE(audio_output_delegate.end_of_stream());
 }
diff --git a/chromeos/services/libassistant/audio/fake_input_device.cc b/chromeos/services/libassistant/audio/fake_input_device.cc
index bf58a79..ee73bb0 100644
--- a/chromeos/services/libassistant/audio/fake_input_device.cc
+++ b/chromeos/services/libassistant/audio/fake_input_device.cc
@@ -69,7 +69,7 @@
     PostDelayedTask(FROM_HERE,
                     base::BindOnce(&FakeInputDevice::WaitForAudioFile,
                                    weak_factory_.GetWeakPtr()),
-                    base::TimeDelta::FromMilliseconds(100));
+                    base::Milliseconds(100));
   }
 
   void Stop() {
@@ -136,7 +136,7 @@
     PostDelayedTask(
         FROM_HERE,
         base::BindOnce(&FakeInputDevice::SendAudio, weak_factory_.GetWeakPtr()),
-        base::TimeDelta::FromMicrosecondsD(delay_in_microseconds));
+        base::Microseconds(delay_in_microseconds));
 
     DVLOG(2) << "Send " << block->frames() << " audio frames";
     const base::TimeTicks time = base::TimeTicks::Now();
@@ -162,7 +162,7 @@
     PostDelayedTask(FROM_HERE,
                     base::BindOnce(&FakeInputDevice::WaitForAudioFile,
                                    weak_factory_.GetWeakPtr()),
-                    base::TimeDelta::FromMicrosecondsD(delay_in_microseconds));
+                    base::Microseconds(delay_in_microseconds));
   }
 
   void PostDelayedTask(const base::Location& from_here,
diff --git a/chromeos/services/libassistant/conversation_controller.cc b/chromeos/services/libassistant/conversation_controller.cc
index 4a68fd3e..d24f753 100644
--- a/chromeos/services/libassistant/conversation_controller.cc
+++ b/chromeos/services/libassistant/conversation_controller.cc
@@ -29,8 +29,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kStopInteractionDelayTime =
-    base::TimeDelta::FromMilliseconds(500);
+constexpr base::TimeDelta kStopInteractionDelayTime = base::Milliseconds(500);
 
 // A macro which ensures we are running on the main thread.
 #define ENSURE_MOJOM_THREAD(method, ...)                                    \
@@ -546,7 +545,7 @@
             }
           },
           weak_factory_.GetWeakPtr(), id),
-      base::TimeDelta::FromMilliseconds(time_ms));
+      base::Milliseconds(time_ms));
 
   // Notify subscribers that a wait has been started.
   for (auto& observer : observers_)
diff --git a/chromeos/services/libassistant/conversation_controller.h b/chromeos/services/libassistant/conversation_controller.h
index 071166a..51f5ac0 100644
--- a/chromeos/services/libassistant/conversation_controller.h
+++ b/chromeos/services/libassistant/conversation_controller.h
@@ -138,8 +138,7 @@
   std::unique_ptr<assistant::action::CrosActionModule> action_module_;
 
   std::unique_ptr<base::CancelableOnceClosure> stop_interaction_closure_;
-  base::TimeDelta stop_interaction_delay_ =
-      base::TimeDelta::FromMilliseconds(500);
+  base::TimeDelta stop_interaction_delay_ = base::Milliseconds(500);
 
   scoped_refptr<base::SequencedTaskRunner> mojom_task_runner_;
   base::WeakPtrFactory<ConversationController> weak_factory_{this};
diff --git a/chromeos/services/libassistant/grpc/external_services/customer_registration_client.cc b/chromeos/services/libassistant/grpc/external_services/customer_registration_client.cc
index d2b7503..6431e912 100644
--- a/chromeos/services/libassistant/grpc/external_services/customer_registration_client.cc
+++ b/chromeos/services/libassistant/grpc/external_services/customer_registration_client.cc
@@ -28,8 +28,7 @@
 
 // Period at which CustomerRegistrationClient sends requests to the assistant's
 // customer registration service until it receives the first heartbeat.
-constexpr base::TimeDelta kRegistrationPollingPeriod =
-    base::TimeDelta::FromSeconds(3);
+constexpr base::TimeDelta kRegistrationPollingPeriod = base::Seconds(3);
 
 chromeos::libassistant::StateConfig BuildCustomerRegistrationStateConfig() {
   StateConfig state_config;
diff --git a/chromeos/services/libassistant/grpc/external_services/grpc_services_initializer.cc b/chromeos/services/libassistant/grpc/external_services/grpc_services_initializer.cc
index a25fa2a..03189995 100644
--- a/chromeos/services/libassistant/grpc/external_services/grpc_services_initializer.cc
+++ b/chromeos/services/libassistant/grpc/external_services/grpc_services_initializer.cc
@@ -29,7 +29,7 @@
 namespace {
 
 // Desired time between consecutive heartbeats.
-constexpr base::TimeDelta kHeartbeatInterval = base::TimeDelta::FromSeconds(2);
+constexpr base::TimeDelta kHeartbeatInterval = base::Seconds(2);
 
 }  // namespace
 
diff --git a/chromeos/services/libassistant/power_manager_provider_impl.cc b/chromeos/services/libassistant/power_manager_provider_impl.cc
index a0a42a9..61dabec 100644
--- a/chromeos/services/libassistant/power_manager_provider_impl.cc
+++ b/chromeos/services/libassistant/power_manager_provider_impl.cc
@@ -55,16 +55,15 @@
     assistant_client::Callback0 callback) {
   const AlarmId id = next_id_++;
   DVLOG(1) << __func__ << "Add alarm ID " << id << " for "
-           << base::Time::Now() +
-                  base::TimeDelta::FromMilliseconds(relative_time_ms);
+           << base::Time::Now() + base::Milliseconds(relative_time_ms);
 
   main_thread_task_runner_->PostTask(
       FROM_HERE,
-      base::BindOnce(&PowerManagerProviderImpl::AddWakeAlarmOnMainThread,
-                     weak_factory_.GetWeakPtr(), id,
-                     GetCurrentBootTime() +
-                         base::TimeDelta::FromMilliseconds(relative_time_ms),
-                     std::move(callback)));
+      base::BindOnce(
+          &PowerManagerProviderImpl::AddWakeAlarmOnMainThread,
+          weak_factory_.GetWeakPtr(), id,
+          GetCurrentBootTime() + base::Milliseconds(relative_time_ms),
+          std::move(callback)));
   return id;
 }
 
diff --git a/chromeos/services/libassistant/power_manager_provider_impl_unittest.cc b/chromeos/services/libassistant/power_manager_provider_impl_unittest.cc
index f04a139..06da6e6 100644
--- a/chromeos/services/libassistant/power_manager_provider_impl_unittest.cc
+++ b/chromeos/services/libassistant/power_manager_provider_impl_unittest.cc
@@ -118,8 +118,7 @@
         power_manager_provider_impl_->AddWakeAlarm(
             relative_time_ms, max_delay_ms,
             std::move(wake_alarm_expiration_cb));
-    task_environment_.FastForwardBy(
-        base::TimeDelta::FromMilliseconds(relative_time_ms));
+    task_environment_.FastForwardBy(base::Milliseconds(relative_time_ms));
 
     if (id <= 0UL)
       return false;
diff --git a/chromeos/services/libassistant/timer_controller.cc b/chromeos/services/libassistant/timer_controller.cc
index 3aa1d535..b5ec14d 100644
--- a/chromeos/services/libassistant/timer_controller.cc
+++ b/chromeos/services/libassistant/timer_controller.cc
@@ -53,20 +53,19 @@
     timer.id = event.timer_data.timer_id;
     timer.label = event.timer_data.label;
     timer.state = GetTimerState(event.timer_data.state);
-    timer.original_duration = base::TimeDelta::FromMilliseconds(
-        event.timer_data.original_duration_ms);
+    timer.original_duration =
+        base::Milliseconds(event.timer_data.original_duration_ms);
 
     // LibAssistant provides |fire_time_ms| as an offset from unix epoch.
-    timer.fire_time =
-        base::Time::UnixEpoch() +
-        base::TimeDelta::FromMilliseconds(event.timer_data.fire_time_ms);
+    timer.fire_time = base::Time::UnixEpoch() +
+                      base::Milliseconds(event.timer_data.fire_time_ms);
 
     // If the |timer| is paused, LibAssistant will specify the amount of time
     // remaining. Otherwise we calculate it based on |fire_time|.
-    timer.remaining_time = timer.state == AssistantTimerState::kPaused
-                               ? base::TimeDelta::FromMilliseconds(
-                                     event.timer_data.remaining_duration_ms)
-                               : timer.fire_time - base::Time::Now();
+    timer.remaining_time =
+        timer.state == AssistantTimerState::kPaused
+            ? base::Milliseconds(event.timer_data.remaining_duration_ms)
+            : timer.fire_time - base::Time::Now();
 
     result.push_back(timer);
   }
diff --git a/chromeos/services/multidevice_setup/eligible_host_devices_provider_impl.h b/chromeos/services/multidevice_setup/eligible_host_devices_provider_impl.h
index 7a89a81..8bf2101 100644
--- a/chromeos/services/multidevice_setup/eligible_host_devices_provider_impl.h
+++ b/chromeos/services/multidevice_setup/eligible_host_devices_provider_impl.h
@@ -21,7 +21,7 @@
       public device_sync::DeviceSyncClient::Observer {
  public:
   static constexpr base::TimeDelta kInactiveDeviceThresholdInDays =
-      base::TimeDelta::FromDays(30);
+      base::Days(30);
 
   class Factory {
    public:
diff --git a/chromeos/services/multidevice_setup/eligible_host_devices_provider_impl_unittest.cc b/chromeos/services/multidevice_setup/eligible_host_devices_provider_impl_unittest.cc
index a64f8b6..6f2a6993 100644
--- a/chromeos/services/multidevice_setup/eligible_host_devices_provider_impl_unittest.cc
+++ b/chromeos/services/multidevice_setup/eligible_host_devices_provider_impl_unittest.cc
@@ -274,7 +274,7 @@
       []() {
         return base::Time() +
                EligibleHostDevicesProviderImpl::kInactiveDeviceThresholdInDays +
-               base::TimeDelta::FromDays(1000);
+               base::Days(1000);
       },
       nullptr, nullptr);
 
@@ -301,7 +301,7 @@
           test_devices()[1].instance_id(),
           /*last_activity_time=*/base::Time::Now() -
               EligibleHostDevicesProviderImpl::kInactiveDeviceThresholdInDays -
-              base::TimeDelta::FromDays(1),
+              base::Days(1),
           cryptauthv2::ConnectivityStatus::ONLINE,
           /*last_update_time=*/base::Time::Now()));
 
@@ -313,7 +313,7 @@
           cryptauthv2::ConnectivityStatus::ONLINE,
           /*last_update_time=*/base::Time::Now() -
               EligibleHostDevicesProviderImpl::kInactiveDeviceThresholdInDays -
-              base::TimeDelta::FromDays(1)));
+              base::Days(1)));
 
   // Do not filter out; times within threhhold
   device_activity_statuses.emplace_back(
diff --git a/chromeos/services/multidevice_setup/grandfathered_easy_unlock_host_disabler.cc b/chromeos/services/multidevice_setup/grandfathered_easy_unlock_host_disabler.cc
index 0496bf8..1ced901 100644
--- a/chromeos/services/multidevice_setup/grandfathered_easy_unlock_host_disabler.cc
+++ b/chromeos/services/multidevice_setup/grandfathered_easy_unlock_host_disabler.cc
@@ -176,8 +176,7 @@
 
   PA_LOG(WARNING) << "Retrying in " << kNumMinutesBetweenRetries
                   << " minutes if necessary.";
-  timer_->Start(FROM_HERE,
-                base::TimeDelta::FromMinutes(kNumMinutesBetweenRetries),
+  timer_->Start(FROM_HERE, base::Minutes(kNumMinutesBetweenRetries),
                 base::BindOnce(&GrandfatheredEasyUnlockHostDisabler::
                                    DisableEasyUnlockHostIfNecessary,
                                base::Unretained(this)));
diff --git a/chromeos/services/multidevice_setup/host_backend_delegate_impl.cc b/chromeos/services/multidevice_setup/host_backend_delegate_impl.cc
index 22584a7..214e77cd 100644
--- a/chromeos/services/multidevice_setup/host_backend_delegate_impl.cc
+++ b/chromeos/services/multidevice_setup/host_backend_delegate_impl.cc
@@ -377,7 +377,7 @@
       failed_request_was_to_remove_pending_host) {
     NotifyBackendRequestFailed();
     timer_->Start(
-        FROM_HERE, base::TimeDelta::FromMinutes(kNumMinutesBetweenRetries),
+        FROM_HERE, base::Minutes(kNumMinutesBetweenRetries),
         base::BindOnce(&HostBackendDelegateImpl::AttemptNetworkRequest,
                        base::Unretained(this), true /* is_retry */));
   }
diff --git a/chromeos/services/multidevice_setup/host_device_timestamp_manager_impl_unittest.cc b/chromeos/services/multidevice_setup/host_device_timestamp_manager_impl_unittest.cc
index 89fb9f8..c49444d 100644
--- a/chromeos/services/multidevice_setup/host_device_timestamp_manager_impl_unittest.cc
+++ b/chromeos/services/multidevice_setup/host_device_timestamp_manager_impl_unittest.cc
@@ -19,8 +19,7 @@
 
 namespace {
 const base::Time kTestTime = base::Time::FromJavaTime(1500000000000);
-const base::Time kLaterTime =
-    kTestTime + base::TimeDelta::FromMilliseconds(123456789);
+const base::Time kLaterTime = kTestTime + base::Milliseconds(123456789);
 }  // namespace
 
 class HostDeviceTimestampManagerImplTest : public testing::Test {
diff --git a/chromeos/services/multidevice_setup/host_verifier_impl.cc b/chromeos/services/multidevice_setup/host_verifier_impl.cc
index 14d7eabb..ad64e30 100644
--- a/chromeos/services/multidevice_setup/host_verifier_impl.cc
+++ b/chromeos/services/multidevice_setup/host_verifier_impl.cc
@@ -48,12 +48,11 @@
     "multidevice_setup.last_used_time_delta_ms";
 
 // Delta to set for the first retry.
-constexpr const base::TimeDelta kFirstRetryDelta =
-    base::TimeDelta::FromMinutes(10);
+constexpr const base::TimeDelta kFirstRetryDelta = base::Minutes(10);
 
 // Delta for the time between a successful FindEligibleDevices call and a
 // request to sync devices.
-constexpr const base::TimeDelta kSyncDelay = base::TimeDelta::FromSeconds(5);
+constexpr const base::TimeDelta kSyncDelay = base::Seconds(5);
 
 // The multiplier for increasing the backoff timer between retries.
 const double kExponentialBackoffMultiplier = 1.5;
@@ -236,7 +235,7 @@
   base::Time retry_time = retry_time_from_prefs;
   while (clock_->Now() >= retry_time) {
     time_delta_ms *= kExponentialBackoffMultiplier;
-    retry_time += base::TimeDelta::FromMilliseconds(time_delta_ms);
+    retry_time += base::Milliseconds(time_delta_ms);
   }
 
   pref_service_->SetInt64(kRetryTimestampPrefName, retry_time.ToJavaTime());
diff --git a/chromeos/services/multidevice_setup/host_verifier_impl_unittest.cc b/chromeos/services/multidevice_setup/host_verifier_impl_unittest.cc
index ec7e2166..b14852b 100644
--- a/chromeos/services/multidevice_setup/host_verifier_impl_unittest.cc
+++ b/chromeos/services/multidevice_setup/host_verifier_impl_unittest.cc
@@ -292,7 +292,7 @@
       kTestTimeMs + kFirstRetryDeltaMs /* expected_retry_timestamp_value */,
       kFirstRetryDeltaMs /* expected_retry_delta_value */);
 
-  SimulateRetryTimePassing(base::TimeDelta::FromMinutes(1));
+  SimulateRetryTimePassing(base::Minutes(1));
   SetHostState(HostState::kHostSetAndFeaturesEnabled);
   VerifyState(true /* expected_is_verified */,
               1u /* expected_num_verified_events */,
@@ -341,9 +341,8 @@
       kFirstRetryDeltaMs /* expected_retry_delta_value */);
 
   // Simulate enough time pasing to time out and retry.
-  SimulateRetryTimePassing(
-      base::TimeDelta::FromMilliseconds(kFirstRetryDeltaMs),
-      true /* simulate_timeout */);
+  SimulateRetryTimePassing(base::Milliseconds(kFirstRetryDeltaMs),
+                           true /* simulate_timeout */);
   InvokePendingDeviceNotificationCall(true /* success */);
   VerifyState(false /* expected_is_verified */,
               0u /* expected_num_verified_events */,
@@ -355,8 +354,7 @@
 
   // Simulate the next retry timeout passing.
   SimulateRetryTimePassing(
-      base::TimeDelta::FromMilliseconds(kFirstRetryDeltaMs *
-                                        kExponentialBackoffMultiplier),
+      base::Milliseconds(kFirstRetryDeltaMs * kExponentialBackoffMultiplier),
       true /* simulate_timeout */);
   InvokePendingDeviceNotificationCall(true /* success */);
   VerifyState(false /* expected_is_verified */,
@@ -394,16 +392,15 @@
   // Simulate starting up the device to find that the retry timer is in 5
   // minutes.
   CreateVerifier(HostState::kHostSetButFeaturesDisabled,
-                 kTestTimeMs + base::TimeDelta::FromMinutes(5).InMilliseconds()
+                 kTestTimeMs + base::Minutes(5).InMilliseconds()
                  /* initial_timer_pref_value */,
                  kFirstRetryDeltaMs /* initial_time_delta_pref_value */);
 
-  SimulateRetryTimePassing(base::TimeDelta::FromMinutes(5),
-                           true /* simulate_timeout */);
+  SimulateRetryTimePassing(base::Minutes(5), true /* simulate_timeout */);
   InvokePendingDeviceNotificationCall(true /* success */);
   VerifyState(false /* expected_is_verified */,
               0u /* expected_num_verified_events */,
-              kTestTimeMs + base::TimeDelta::FromMinutes(5).InMilliseconds() +
+              kTestTimeMs + base::Minutes(5).InMilliseconds() +
                   kFirstRetryDeltaMs * kExponentialBackoffMultiplier
               /* expected_retry_timestamp_value */,
               kFirstRetryDeltaMs * kExponentialBackoffMultiplier
@@ -415,14 +412,14 @@
   // Simulate starting up the device to find that the retry timer had already
   // fired 5 minutes ago.
   CreateVerifier(HostState::kHostSetButFeaturesDisabled,
-                 kTestTimeMs - base::TimeDelta::FromMinutes(5).InMilliseconds()
+                 kTestTimeMs - base::Minutes(5).InMilliseconds()
                  /* initial_timer_pref_value */,
                  kFirstRetryDeltaMs /* initial_time_delta_pref_value */);
 
   InvokePendingDeviceNotificationCall(true /* success */);
   VerifyState(false /* expected_is_verified */,
               0u /* expected_num_verified_events */,
-              kTestTimeMs - base::TimeDelta::FromMinutes(5).InMilliseconds() +
+              kTestTimeMs - base::Minutes(5).InMilliseconds() +
                   kFirstRetryDeltaMs * kExponentialBackoffMultiplier
               /* expected_retry_timestamp_value */,
               kFirstRetryDeltaMs * kExponentialBackoffMultiplier
@@ -434,7 +431,7 @@
   // Simulate starting up the device to find that the retry timer had already
   // fired 20 minutes ago.
   CreateVerifier(HostState::kHostSetButFeaturesDisabled,
-                 kTestTimeMs - base::TimeDelta::FromMinutes(20).InMilliseconds()
+                 kTestTimeMs - base::Minutes(20).InMilliseconds()
                  /* initial_timer_pref_value */,
                  kFirstRetryDeltaMs /* initial_time_delta_pref_value */);
 
@@ -444,7 +441,7 @@
   InvokePendingDeviceNotificationCall(true /* success */);
   VerifyState(false /* expected_is_verified */,
               0u /* expected_num_verified_events */,
-              kTestTimeMs - base::TimeDelta::FromMinutes(20).InMilliseconds() +
+              kTestTimeMs - base::Minutes(20).InMilliseconds() +
                   kFirstRetryDeltaMs * kExponentialBackoffMultiplier +
                   kFirstRetryDeltaMs * kExponentialBackoffMultiplier *
                       kExponentialBackoffMultiplier
diff --git a/chromeos/services/multidevice_setup/wifi_sync_feature_manager_impl.cc b/chromeos/services/multidevice_setup/wifi_sync_feature_manager_impl.cc
index 5e052e3..4bdb440 100644
--- a/chromeos/services/multidevice_setup/wifi_sync_feature_manager_impl.cc
+++ b/chromeos/services/multidevice_setup/wifi_sync_feature_manager_impl.cc
@@ -387,8 +387,7 @@
   // If the network request failed and there is still a pending network request,
   // schedule a retry.
   if (GetCurrentState() == CurrentState::kValidPendingRequest) {
-    timer_->Start(FROM_HERE,
-                  base::TimeDelta::FromMinutes(kNumMinutesBetweenRetries),
+    timer_->Start(FROM_HERE, base::Minutes(kNumMinutesBetweenRetries),
                   base::BindOnce(&WifiSyncFeatureManagerImpl::
                                      AttemptSetWifiSyncHostStateNetworkRequest,
                                  base::Unretained(this), true /* is_retry */));
diff --git a/chromeos/services/network_config/cros_network_config.cc b/chromeos/services/network_config/cros_network_config.cc
index 9e81df0..92c625a 100644
--- a/chromeos/services/network_config/cros_network_config.cc
+++ b/chromeos/services/network_config/cros_network_config.cc
@@ -1501,7 +1501,7 @@
   double traffic_counter_reset_time =
       GetDouble(properties, ::onc::network_config::kTrafficCounterResetTime);
   result->traffic_counter_reset_time = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMillisecondsD(traffic_counter_reset_time));
+      base::Milliseconds(traffic_counter_reset_time));
 
   // Managed properties
   result->ip_address_config_type = GetRequiredManagedString(
diff --git a/chromeos/services/secure_channel/background_eid_generator_unittest.cc b/chromeos/services/secure_channel/background_eid_generator_unittest.cc
index c3e27165..79d33a4c 100644
--- a/chromeos/services/secure_channel/background_eid_generator_unittest.cc
+++ b/chromeos/services/secure_channel/background_eid_generator_unittest.cc
@@ -23,9 +23,8 @@
 namespace secure_channel {
 
 namespace {
-const int64_t kEidPeriodMs = base::TimeDelta::FromMinutes(15).InMilliseconds();
-const int64_t kBeaconSeedDurationMs =
-    base::TimeDelta::FromDays(14).InMilliseconds();
+const int64_t kEidPeriodMs = base::Minutes(15).InMilliseconds();
+const int64_t kBeaconSeedDurationMs = base::Days(14).InMilliseconds();
 
 // The number of nearest EIDs returned by GenerateNearestEids().
 const size_t kEidCount = 5;
@@ -119,8 +118,8 @@
   }
 
   void SetTestTime(int64_t timestamp_ms) {
-    base::Time time = base::Time::UnixEpoch() +
-                      base::TimeDelta::FromMilliseconds(timestamp_ms);
+    base::Time time =
+        base::Time::UnixEpoch() + base::Milliseconds(timestamp_ms);
     test_clock_.SetNow(time);
   }
 
diff --git a/chromeos/services/secure_channel/ble_advertiser_impl.cc b/chromeos/services/secure_channel/ble_advertiser_impl.cc
index 8e85a84..ed9222e 100644
--- a/chromeos/services/secure_channel/ble_advertiser_impl.cc
+++ b/chromeos/services/secure_channel/ble_advertiser_impl.cc
@@ -272,8 +272,7 @@
   std::unique_ptr<base::OneShotTimer> timer =
       timer_factory_->CreateOneShotTimer();
   timer->Start(
-      FROM_HERE,
-      base::TimeDelta::FromSeconds(kNumSecondsPerAdvertisementTimeslot),
+      FROM_HERE, base::Seconds(kNumSecondsPerAdvertisementTimeslot),
       base::BindOnce(
           &BleAdvertiserImpl::StopAdvertisementRequestAndUpdateActiveRequests,
           base::Unretained(this), index_to_add,
diff --git a/chromeos/services/secure_channel/ble_advertiser_impl_unittest.cc b/chromeos/services/secure_channel/ble_advertiser_impl_unittest.cc
index abe1aeb..80216e79 100644
--- a/chromeos/services/secure_channel/ble_advertiser_impl_unittest.cc
+++ b/chromeos/services/secure_channel/ble_advertiser_impl_unittest.cc
@@ -183,9 +183,9 @@
 
     // The timer should have been started.
     EXPECT_TRUE(fake_timer->IsRunning());
-    EXPECT_EQ(base::TimeDelta::FromSeconds(
-                  BleAdvertiserImpl::kNumSecondsPerAdvertisementTimeslot),
-              fake_timer->GetCurrentDelay());
+    EXPECT_EQ(
+        base::Seconds(BleAdvertiserImpl::kNumSecondsPerAdvertisementTimeslot),
+        fake_timer->GetCurrentDelay());
 
     return fake_timer;
   }
diff --git a/chromeos/services/secure_channel/ble_connection_manager_impl_unittest.cc b/chromeos/services/secure_channel/ble_connection_manager_impl_unittest.cc
index 204a66d..59198e3 100644
--- a/chromeos/services/secure_channel/ble_connection_manager_impl_unittest.cc
+++ b/chromeos/services/secure_channel/ble_connection_manager_impl_unittest.cc
@@ -46,12 +46,9 @@
 
 const size_t kNumTestDevices = 5;
 
-constexpr base::TimeDelta kScanToAdvertisementTime =
-    base::TimeDelta::FromSeconds(3);
-constexpr base::TimeDelta kAdvertisementToConnectionTime =
-    base::TimeDelta::FromSeconds(2);
-constexpr base::TimeDelta kConnectionToAuthenticationTime =
-    base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kScanToAdvertisementTime = base::Seconds(3);
+constexpr base::TimeDelta kAdvertisementToConnectionTime = base::Seconds(2);
+constexpr base::TimeDelta kConnectionToAuthenticationTime = base::Seconds(1);
 
 class FakeBleAdvertiserFactory : public BleAdvertiserImpl::Factory {
  public:
diff --git a/chromeos/services/secure_channel/ble_synchronizer.cc b/chromeos/services/secure_channel/ble_synchronizer.cc
index 8a3e5023..bd33006 100644
--- a/chromeos/services/secure_channel/ble_synchronizer.cc
+++ b/chromeos/services/secure_channel/ble_synchronizer.cc
@@ -72,9 +72,8 @@
   // frequently can cause race conditions. See crbug.com/760792.
   if (!last_command_end_timestamp_.is_null() &&
       time_since_last_command_ended <
-          base::TimeDelta::FromMilliseconds(kTimeBetweenEachCommandMs)) {
-    timer_->Start(FROM_HERE,
-                  base::TimeDelta::FromMilliseconds(kTimeBetweenEachCommandMs),
+          base::Milliseconds(kTimeBetweenEachCommandMs)) {
+    timer_->Start(FROM_HERE, base::Milliseconds(kTimeBetweenEachCommandMs),
                   base::BindOnce(&BleSynchronizer::ProcessQueue,
                                  weak_ptr_factory_.GetWeakPtr()));
     return;
diff --git a/chromeos/services/secure_channel/ble_synchronizer_unittest.cc b/chromeos/services/secure_channel/ble_synchronizer_unittest.cc
index 03fd15e5..ca5fa897 100644
--- a/chromeos/services/secure_channel/ble_synchronizer_unittest.cc
+++ b/chromeos/services/secure_channel/ble_synchronizer_unittest.cc
@@ -200,7 +200,7 @@
   }
 
   base::TimeDelta TimeDeltaMillis(int64_t num_millis) {
-    return base::TimeDelta::FromMilliseconds(num_millis);
+    return base::Milliseconds(num_millis);
   }
 
   void OnAdapterRegisterAdvertisement(RegisterAdvertisementArgs* args) {
diff --git a/chromeos/services/secure_channel/ble_weave_client_connection.cc b/chromeos/services/secure_channel/ble_weave_client_connection.cc
index 630f963..f731cd0 100644
--- a/chromeos/services/secure_channel/ble_weave_client_connection.cc
+++ b/chromeos/services/secure_channel/ble_weave_client_connection.cc
@@ -85,17 +85,17 @@
     SubStatus sub_status) {
   switch (sub_status) {
     case SubStatus::WAITING_CONNECTION_RESPONSE:
-      return base::TimeDelta::FromSeconds(kConnectionResponseTimeoutSeconds);
+      return base::Seconds(kConnectionResponseTimeoutSeconds);
     case SubStatus::WAITING_CONNECTION_LATENCY:
-      return base::TimeDelta::FromSeconds(kConnectionLatencyTimeoutSeconds);
+      return base::Seconds(kConnectionLatencyTimeoutSeconds);
     case SubStatus::WAITING_GATT_CONNECTION:
-      return base::TimeDelta::FromSeconds(kGattConnectionTimeoutSeconds);
+      return base::Seconds(kGattConnectionTimeoutSeconds);
     case SubStatus::WAITING_CHARACTERISTICS:
-      return base::TimeDelta::FromSeconds(kGattCharacteristicsTimeoutSeconds);
+      return base::Seconds(kGattCharacteristicsTimeoutSeconds);
     case SubStatus::WAITING_NOTIFY_SESSION:
-      return base::TimeDelta::FromSeconds(kNotifySessionTimeoutSeconds);
+      return base::Seconds(kNotifySessionTimeoutSeconds);
     case SubStatus::CONNECTED_AND_SENDING_MESSAGE:
-      return base::TimeDelta::FromSeconds(kSendingMessageTimeoutSeconds);
+      return base::Seconds(kSendingMessageTimeoutSeconds);
     default:
       // Max signifies that there should be no timeout.
       return base::TimeDelta::Max();
diff --git a/chromeos/services/secure_channel/connection_metrics_logger.cc b/chromeos/services/secure_channel/connection_metrics_logger.cc
index 050f7df..de9779e 100644
--- a/chromeos/services/secure_channel/connection_metrics_logger.cc
+++ b/chromeos/services/secure_channel/connection_metrics_logger.cc
@@ -12,10 +12,8 @@
 
 namespace {
 
-constexpr const base::TimeDelta kMinLatencyDuration =
-    base::TimeDelta::FromMilliseconds(1);
-constexpr const base::TimeDelta kMaxLatencyDuration =
-    base::TimeDelta::FromSeconds(30);
+constexpr const base::TimeDelta kMinLatencyDuration = base::Milliseconds(1);
+constexpr const base::TimeDelta kMaxLatencyDuration = base::Seconds(30);
 
 // Provide enough granularity so that durations <10s are assigned to buckets
 // in the hundreds of milliseconds.
diff --git a/chromeos/services/secure_channel/device_to_device_authenticator.cc b/chromeos/services/secure_channel/device_to_device_authenticator.cc
index 54414b4..0cad0db 100644
--- a/chromeos/services/secure_channel/device_to_device_authenticator.cc
+++ b/chromeos/services/secure_channel/device_to_device_authenticator.cc
@@ -130,7 +130,7 @@
   // Add a timeout for receiving the [Responder Auth] message as a guard.
   timer_ = CreateTimer();
   timer_->Start(
-      FROM_HERE, base::TimeDelta::FromSeconds(kResponderAuthTimeoutSeconds),
+      FROM_HERE, base::Seconds(kResponderAuthTimeoutSeconds),
       base::BindOnce(&DeviceToDeviceAuthenticator::OnResponderAuthTimedOut,
                      weak_ptr_factory_.GetWeakPtr()));
 
diff --git a/chromeos/services/secure_channel/foreground_eid_generator.cc b/chromeos/services/secure_channel/foreground_eid_generator.cc
index 258dced..5dddb46 100644
--- a/chromeos/services/secure_channel/foreground_eid_generator.cc
+++ b/chromeos/services/secure_channel/foreground_eid_generator.cc
@@ -25,8 +25,8 @@
 namespace {
 constexpr int64_t kNoTimestamp = 0;
 constexpr int64_t kMaxPositiveInt64TValue = 0x7FFFFFFF;
-constexpr base::TimeDelta kEidPeriod = base::TimeDelta::FromHours(8);
-constexpr base::TimeDelta kBeginningOfEidPeriod = base::TimeDelta::FromHours(2);
+constexpr base::TimeDelta kEidPeriod = base::Hours(8);
+constexpr base::TimeDelta kBeginningOfEidPeriod = base::Hours(2);
 }  // namespace
 
 const int8_t ForegroundEidGenerator::kBluetooth4Flag = 0x01;
diff --git a/chromeos/services/secure_channel/foreground_eid_generator_unittest.cc b/chromeos/services/secure_channel/foreground_eid_generator_unittest.cc
index 7ce2ba4..0a45c35 100644
--- a/chromeos/services/secure_channel/foreground_eid_generator_unittest.cc
+++ b/chromeos/services/secure_channel/foreground_eid_generator_unittest.cc
@@ -34,8 +34,8 @@
 // initializers are not a big problem in tests, but it is preferable to avoid
 // them here for consistensy with similar definitions going into release
 // binaries.
-constexpr base::TimeDelta kEidPeriod = base::TimeDelta::FromHours(8);
-constexpr base::TimeDelta kEidSeedPeriod = base::TimeDelta::FromDays(14);
+constexpr base::TimeDelta kEidPeriod = base::Hours(8);
+constexpr base::TimeDelta kEidSeedPeriod = base::Days(14);
 
 const int32_t kNumBytesInEidValue = 2;
 
@@ -138,8 +138,8 @@
 
   // TODO(khorimoto): Is there an easier way to do this?
   void SetTestTime(int64_t timestamp_ms) {
-    base::Time time = base::Time::UnixEpoch() +
-                      base::TimeDelta::FromMilliseconds(timestamp_ms);
+    base::Time time =
+        base::Time::UnixEpoch() + base::Milliseconds(timestamp_ms);
     test_clock_.SetNow(time);
   }
 
@@ -204,8 +204,7 @@
 
 TEST_F(SecureChannelForegroundEidGeneratorTest,
        GenerateBackgroundScanFilter_PastStartOfPeriod) {
-  SetTestTime(kDefaultCurrentTime +
-              base::TimeDelta::FromHours(3).InMilliseconds());
+  SetTestTime(kDefaultCurrentTime + base::Hours(3).InMilliseconds());
 
   std::unique_ptr<ForegroundEidGenerator::EidData> data =
       eid_generator_->GenerateBackgroundScanFilter(
@@ -418,8 +417,7 @@
 
 TEST_F(SecureChannelForegroundEidGeneratorTest,
        testGeneratePossibleAdvertisements_CurrentAndFutureAdjacentPeriods) {
-  SetTestTime(kDefaultCurrentPeriodStart +
-              base::TimeDelta::FromHours(3).InMilliseconds());
+  SetTestTime(kDefaultCurrentPeriodStart + base::Hours(3).InMilliseconds());
 
   std::vector<std::string> possible_advertisements =
       eid_generator_->GeneratePossibleAdvertisements(
diff --git a/chromeos/services/secure_channel/nearby_connection_metrics_recorder.cc b/chromeos/services/secure_channel/nearby_connection_metrics_recorder.cc
index 38f6baa..3314fdf3 100644
--- a/chromeos/services/secure_channel/nearby_connection_metrics_recorder.cc
+++ b/chromeos/services/secure_channel/nearby_connection_metrics_recorder.cc
@@ -13,7 +13,7 @@
 namespace {
 
 static constexpr base::TimeDelta kEffectiveSuccessRateTimeout =
-    base::TimeDelta::FromMinutes(1);
+    base::Minutes(1);
 
 void RecordEffectiveConnectionResult(bool success) {
   base::UmaHistogramBoolean(
diff --git a/chromeos/services/secure_channel/nearby_connection_metrics_recorder_unittest.cc b/chromeos/services/secure_channel/nearby_connection_metrics_recorder_unittest.cc
index 4414888..469e41ca 100644
--- a/chromeos/services/secure_channel/nearby_connection_metrics_recorder_unittest.cc
+++ b/chromeos/services/secure_channel/nearby_connection_metrics_recorder_unittest.cc
@@ -46,7 +46,7 @@
       /*sample=*/true,
       /*count=*/1);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
 
   // Succeed again; should be logged.
   recorder_.HandleConnectionSuccess(device_id_pair_);
@@ -55,7 +55,7 @@
       /*sample=*/true,
       /*count=*/2);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
 
   // Fail; nothing should be logged since the failure just occurred.
   recorder_.HandleConnectionFailure(device_id_pair_);
@@ -65,7 +65,7 @@
       /*count=*/0);
 
   // Fast forward 59 seconds (under 1min).
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(59));
+  task_environment_.FastForwardBy(base::Seconds(59));
 
   // Fail; still nothing should have been logged.
   recorder_.HandleConnectionFailure(device_id_pair_);
@@ -76,13 +76,13 @@
 
   // Fast forward 1 more second; a minute has passed, so a failure should have
   // been logged.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   histogram_tester_.ExpectBucketCount(
       "MultiDevice.SecureChannel.Nearby.EffectiveConnectionResult",
       /*sample=*/false,
       /*count=*/1);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
 
   // Succeed; this should reset any ongoing timer.
   recorder_.HandleConnectionSuccess(device_id_pair_);
@@ -91,7 +91,7 @@
       /*sample=*/true,
       /*count=*/3);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
 
   // Fail; nothing should be logged.
   recorder_.HandleConnectionFailure(device_id_pair_);
@@ -101,7 +101,7 @@
       /*count=*/1);
 
   // Move forward another minute and verify that another failure was logged.
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_environment_.FastForwardBy(base::Minutes(1));
   histogram_tester_.ExpectBucketCount(
       "MultiDevice.SecureChannel.Nearby.EffectiveConnectionResult",
       /*sample=*/false,
diff --git a/chromeos/services/secure_channel/public/cpp/client/connection_manager_impl.cc b/chromeos/services/secure_channel/public/cpp/client/connection_manager_impl.cc
index 93c2c22..98f7c00 100644
--- a/chromeos/services/secure_channel/public/cpp/client/connection_manager_impl.cc
+++ b/chromeos/services/secure_channel/public/cpp/client/connection_manager_impl.cc
@@ -16,8 +16,7 @@
 namespace chromeos {
 namespace secure_channel {
 namespace {
-constexpr base::TimeDelta kConnectionTimeoutSeconds(
-    base::TimeDelta::FromSeconds(15u));
+constexpr base::TimeDelta kConnectionTimeoutSeconds(base::Seconds(15u));
 
 void RecordConnectionSuccessMetric(const std::string& metric_name_result,
                                    bool success) {
diff --git a/chromeos/services/secure_channel/public/cpp/client/connection_manager_impl_unittest.cc b/chromeos/services/secure_channel/public/cpp/client/connection_manager_impl_unittest.cc
index af70ab8..4cecd50 100644
--- a/chromeos/services/secure_channel/public/cpp/client/connection_manager_impl_unittest.cc
+++ b/chromeos/services/secure_channel/public/cpp/client/connection_manager_impl_unittest.cc
@@ -31,13 +31,10 @@
 
 using multidevice_setup::mojom::HostStatus;
 
-constexpr base::TimeDelta kFakeConnectionLatencyTime(
-    base::TimeDelta::FromSeconds(3u));
-constexpr base::TimeDelta kFakeConnectionDurationTime(
-    base::TimeDelta::FromSeconds(10u));
+constexpr base::TimeDelta kFakeConnectionLatencyTime(base::Seconds(3u));
+constexpr base::TimeDelta kFakeConnectionDurationTime(base::Seconds(10u));
 
-constexpr base::TimeDelta kExpectedTimeoutSeconds(
-    base::TimeDelta::FromSeconds(15u));
+constexpr base::TimeDelta kExpectedTimeoutSeconds(base::Seconds(15u));
 
 class FakeObserver : public secure_channel::ConnectionManager::Observer {
  public:
diff --git a/chromeos/services/tts/google_tts_stream.cc b/chromeos/services/tts/google_tts_stream.cc
index 1af750a..aa5413417 100644
--- a/chromeos/services/tts/google_tts_stream.cc
+++ b/chromeos/services/tts/google_tts_stream.cc
@@ -167,9 +167,8 @@
        timepoint_index++) {
     tts_player_.AddExplicitTimepoint(
         libchrometts_.GoogleTtsGetTimepointsCharIndexAtIndex(timepoint_index),
-        base::TimeDelta::FromSecondsD(
-            libchrometts_.GoogleTtsGetTimepointsTimeInSecsAtIndex(
-                timepoint_index)));
+        base::Seconds(libchrometts_.GoogleTtsGetTimepointsTimeInSecsAtIndex(
+            timepoint_index)));
   }
 
   // Ensure we always clean up given status 0 (done) or -1 (error).
diff --git a/chromeos/services/tts/tts_service_unittest.cc b/chromeos/services/tts/tts_service_unittest.cc
index 698831c..97e5dc4 100644
--- a/chromeos/services/tts/tts_service_unittest.cc
+++ b/chromeos/services/tts/tts_service_unittest.cc
@@ -163,8 +163,8 @@
 
   auto bus = media::AudioBus::Create(1 /* channels */, 512 /* frames */);
   service_.playback_tts_stream_for_testing()->tts_player_for_testing()->Render(
-      base::TimeDelta::FromSeconds(0), base::TimeTicks::Now(),
-      0 /* prior frames skipped */, bus.get());
+      base::Seconds(0), base::TimeTicks::Now(), 0 /* prior frames skipped */,
+      bus.get());
   observer.FlushForTesting();
 
   // The playback stream pushes an empty buffer to trigger a start event.
@@ -176,8 +176,8 @@
       std::vector<float>(), 100 /* char_index */, false /* last buffer */);
   playback_tts_stream.FlushForTesting();
   service_.playback_tts_stream_for_testing()->tts_player_for_testing()->Render(
-      base::TimeDelta::FromSeconds(0), base::TimeTicks::Now(),
-      0 /* prior frames skipped */, bus.get());
+      base::Seconds(0), base::TimeTicks::Now(), 0 /* prior frames skipped */,
+      bus.get());
   observer.FlushForTesting();
   EXPECT_EQ(1, backing_observer.start_count);
   EXPECT_EQ(1U, backing_observer.char_indices.size());
@@ -190,8 +190,8 @@
       std::vector<float>(), 9999 /* char_index */, true /* last buffer */);
   playback_tts_stream.FlushForTesting();
   service_.playback_tts_stream_for_testing()->tts_player_for_testing()->Render(
-      base::TimeDelta::FromSeconds(0), base::TimeTicks::Now(),
-      0 /* prior frames skipped */, bus.get());
+      base::Seconds(0), base::TimeTicks::Now(), 0 /* prior frames skipped */,
+      bus.get());
   observer.FlushForTesting();
   EXPECT_EQ(1, backing_observer.start_count);
   EXPECT_EQ(1U, backing_observer.char_indices.size());
@@ -214,8 +214,8 @@
 
   auto bus = media::AudioBus::Create(1 /* channels */, 512 /* frames */);
   service_.playback_tts_stream_for_testing()->tts_player_for_testing()->Render(
-      base::TimeDelta::FromSeconds(0), base::TimeTicks::Now(),
-      0 /* prior frames skipped */, bus.get());
+      base::Seconds(0), base::TimeTicks::Now(), 0 /* prior frames skipped */,
+      bus.get());
   observer.FlushForTesting();
 
   // The playback stream pushes an empty buffer to trigger a start event.
@@ -227,8 +227,8 @@
       std::vector<float>(), -1 /* char_index */, false /* last buffer */);
   playback_tts_stream.FlushForTesting();
   service_.playback_tts_stream_for_testing()->tts_player_for_testing()->Render(
-      base::TimeDelta::FromSeconds(0), base::TimeTicks::Now(),
-      0 /* prior frames skipped */, bus.get());
+      base::Seconds(0), base::TimeTicks::Now(), 0 /* prior frames skipped */,
+      bus.get());
   observer.FlushForTesting();
   EXPECT_EQ(1, backing_observer.start_count);
   EXPECT_TRUE(backing_observer.char_indices.empty());
@@ -238,17 +238,17 @@
       std::vector<float>(), -1 /* char_index */, false /* last buffer */);
   service_.playback_tts_stream_for_testing()
       ->tts_player_for_testing()
-      ->AddExplicitTimepoint(100, base::TimeDelta::FromSeconds(0));
+      ->AddExplicitTimepoint(100, base::Seconds(0));
   service_.playback_tts_stream_for_testing()
       ->tts_player_for_testing()
-      ->AddExplicitTimepoint(200, base::TimeDelta::FromSeconds(0));
+      ->AddExplicitTimepoint(200, base::Seconds(0));
   service_.playback_tts_stream_for_testing()
       ->tts_player_for_testing()
-      ->AddExplicitTimepoint(300, base::TimeDelta::FromSeconds(0));
+      ->AddExplicitTimepoint(300, base::Seconds(0));
   playback_tts_stream.FlushForTesting();
   service_.playback_tts_stream_for_testing()->tts_player_for_testing()->Render(
-      base::TimeDelta::FromSeconds(0), base::TimeTicks::Now(),
-      0 /* prior frames skipped */, bus.get());
+      base::Seconds(0), base::TimeTicks::Now(), 0 /* prior frames skipped */,
+      bus.get());
   observer.FlushForTesting();
   EXPECT_EQ(1, backing_observer.start_count);
   EXPECT_EQ(3U, backing_observer.char_indices.size());
@@ -261,8 +261,8 @@
       std::vector<float>(), 9999 /* char_index */, true /* last buffer */);
   playback_tts_stream.FlushForTesting();
   service_.playback_tts_stream_for_testing()->tts_player_for_testing()->Render(
-      base::TimeDelta::FromSeconds(0), base::TimeTicks::Now(),
-      0 /* prior frames skipped */, bus.get());
+      base::Seconds(0), base::TimeTicks::Now(), 0 /* prior frames skipped */,
+      bus.get());
   observer.FlushForTesting();
   EXPECT_EQ(1, backing_observer.start_count);
   EXPECT_EQ(3U, backing_observer.char_indices.size());
diff --git a/chromeos/system/factory_ping_embargo_check.h b/chromeos/system/factory_ping_embargo_check.h
index e59954f5..f2ee2ccc 100644
--- a/chromeos/system/factory_ping_embargo_check.h
+++ b/chromeos/system/factory_ping_embargo_check.h
@@ -15,8 +15,7 @@
 
 // An embargo end date is considered invalid if it's more than this many
 // days in the future.
-constexpr base::TimeDelta kEmbargoEndDateGarbageDateThreshold =
-    base::TimeDelta::FromDays(14);
+constexpr base::TimeDelta kEmbargoEndDateGarbageDateThreshold = base::Days(14);
 
 enum class FactoryPingEmbargoState {
   // There is no correctly formatted factory ping embargo end date value in
diff --git a/chromeos/system/factory_ping_embargo_check_unittest.cc b/chromeos/system/factory_ping_embargo_check_unittest.cc
index f83729f..411d9c3 100644
--- a/chromeos/system/factory_ping_embargo_check_unittest.cc
+++ b/chromeos/system/factory_ping_embargo_check_unittest.cc
@@ -24,8 +24,7 @@
 // return value will be "2018-01-21".
 std::string GenerateEmbargoEndDate(int days_offset) {
   base::Time::Exploded exploded;
-  const base::Time target_time =
-      base::Time::Now() + base::TimeDelta::FromDays(days_offset);
+  const base::Time target_time = base::Time::Now() + base::Days(days_offset);
   target_time.UTCExplode(&exploded);
 
   const std::string embargo_end_date_string = base::StringPrintf(
diff --git a/chromeos/system/statistics_provider.cc b/chromeos/system/statistics_provider.cc
index d829879..c9e3f85 100644
--- a/chromeos/system/statistics_provider.cc
+++ b/chromeos/system/statistics_provider.cc
@@ -340,7 +340,7 @@
   // happen except during OOBE.
   base::Time start_time = base::Time::Now();
   base::ScopedAllowBaseSyncPrimitives allow_wait;
-  statistics_loaded_.TimedWait(base::TimeDelta::FromSeconds(kTimeoutSecs));
+  statistics_loaded_.TimedWait(base::Seconds(kTimeoutSecs));
 
   base::TimeDelta dtime = base::Time::Now() - start_time;
   if (statistics_loaded_.IsSignaled()) {
diff --git a/chromeos/timezone/timezone_request.cc b/chromeos/timezone/timezone_request.cc
index 705068a..424c2c8 100644
--- a/chromeos/timezone/timezone_request.cc
+++ b/chromeos/timezone/timezone_request.cc
@@ -328,10 +328,10 @@
       service_url_(service_url),
       geoposition_(geoposition),
       retry_timeout_abs_(base::Time::Now() + retry_timeout),
-      retry_sleep_on_server_error_(base::TimeDelta::FromSeconds(
-          kResolveTimeZoneRetrySleepOnServerErrorSeconds)),
-      retry_sleep_on_bad_response_(base::TimeDelta::FromSeconds(
-          kResolveTimeZoneRetrySleepBadResponseSeconds)),
+      retry_sleep_on_server_error_(
+          base::Seconds(kResolveTimeZoneRetrySleepOnServerErrorSeconds)),
+      retry_sleep_on_bad_response_(
+          base::Seconds(kResolveTimeZoneRetrySleepBadResponseSeconds)),
       retries_(0) {}
 
 TimeZoneRequest::~TimeZoneRequest() {
diff --git a/chromeos/timezone/timezone_resolver.cc b/chromeos/timezone/timezone_resolver.cc
index 5cf0a07..f5eb54a 100644
--- a/chromeos/timezone/timezone_resolver.cc
+++ b/chromeos/timezone/timezone_resolver.cc
@@ -70,7 +70,7 @@
 
 int IntervalForNextRequest(const int requests) {
   const base::TimeDelta initial_interval =
-      base::TimeDelta::FromSecondsD(kInitialRefreshIntervalSec);
+      base::Seconds(kInitialRefreshIntervalSec);
   return static_cast<int>(initial_interval.InSecondsF() *
                           (2 << (static_cast<unsigned>(requests) *
                                  kRefreshIntervalRequestsCountMultiplier)));
@@ -193,7 +193,7 @@
 void TZRequest::StartRequestOnNetworkAvailable() {
   resolver_->RecordAttempt();
   resolver_->geolocation_provider()->RequestGeolocation(
-      base::TimeDelta::FromSeconds(kRefreshTimeZoneTimeoutSeconds),
+      base::Seconds(kRefreshTimeZoneTimeoutSeconds),
       resolver_->ShouldSendWiFiGeolocationData(),
       resolver_->ShouldSendCellularGeolocationData(),
       base::BindOnce(&TZRequest::OnLocationResolved, AsWeakPtr()));
@@ -216,8 +216,7 @@
   if (!position.Valid())
     return;
 
-  const base::TimeDelta timeout =
-      base::TimeDelta::FromSeconds(kRefreshTimeZoneTimeoutSeconds);
+  const base::TimeDelta timeout = base::Seconds(kRefreshTimeZoneTimeoutSeconds);
 
   if (elapsed >= timeout) {
     VLOG(1) << "Refresh TimeZone: got location after timeout ("
@@ -280,8 +279,7 @@
   const base::Time last_refresh_at =
       base::Time::FromInternalValue(last_refresh_at_raw);
   const base::Time next_refresh_not_before =
-      last_refresh_at +
-      base::TimeDelta::FromSecondsD(kRefreshTimeZoneMinimumDelayOnRestartSec);
+      last_refresh_at + base::Seconds(kRefreshTimeZoneMinimumDelayOnRestartSec);
   if (next_refresh_not_before > base::Time::Now()) {
     requests_count_ = kRefreshTimeZoneInitialRequestCountOnRateLimit;
     VLOG(1) << "TimeZoneResolverImpl(): initialize requests_count_="
@@ -308,13 +306,13 @@
 TimeZoneResolver::TimeZoneResolverImpl::CalculateNextInterval() {
   // This is initial request, which should be served immediately.
   if (requests_count_ == 0) {
-    return base::TimeDelta::FromSecondsD(kInitialRefreshIntervalSec);
+    return base::Seconds(kInitialRefreshIntervalSec);
   }
 
   // See comment to kRefreshIntervalRequestsCountMultiplier.
   if (requests_count_ >=
       MaxRequestsCountForInterval(kMaximumRefreshIntervalSec)) {
-    return base::TimeDelta::FromSecondsD(kMaximumRefreshIntervalSec);
+    return base::Seconds(kMaximumRefreshIntervalSec);
   }
 
   const int base_interval = IntervalForNextRequest(requests_count_);
@@ -322,7 +320,7 @@
 
   // Add jitter to level request rate.
   const base::TimeDelta interval(
-      base::TimeDelta::FromSecondsD(base::RandDouble() * 2 * base_interval));
+      base::Seconds(base::RandDouble() * 2 * base_interval));
   VLOG(1) << "TimeZoneResolverImpl::CalculateNextInterval(): interval="
           << interval.InSecondsF();
   return interval;
diff --git a/chromeos/timezone/timezone_unittest.cc b/chromeos/timezone/timezone_unittest.cc
index 41616340..1345db1 100644
--- a/chromeos/timezone/timezone_unittest.cc
+++ b/chromeos/timezone/timezone_unittest.cc
@@ -100,7 +100,7 @@
     TimeZoneRequest* timezone_request = provider_->requests_[0].get();
 
     const base::TimeDelta base_retry_interval =
-        base::TimeDelta::FromMilliseconds(kRequestRetryIntervalMilliSeconds);
+        base::Milliseconds(kRequestRetryIntervalMilliSeconds);
     timezone_request->set_retry_sleep_on_server_error_for_testing(
         base_retry_interval);
     timezone_request->set_retry_sleep_on_bad_response_for_testing(
@@ -178,8 +178,7 @@
 
   TimeZoneReceiver receiver;
 
-  provider.RequestTimezone(simple_request.position,
-                           base::TimeDelta::FromSeconds(1),
+  provider.RequestTimezone(simple_request.position, base::Seconds(1),
                            base::BindOnce(&TimeZoneReceiver::OnRequestDone,
                                           base::Unretained(&receiver)));
   receiver.WaitUntilRequestDone();
@@ -203,8 +202,7 @@
 
   TimeZoneReceiver receiver;
 
-  provider.RequestTimezone(simple_request.position,
-                           base::TimeDelta::FromSeconds(1),
+  provider.RequestTimezone(simple_request.position, base::Seconds(1),
                            base::BindOnce(&TimeZoneReceiver::OnRequestDone,
                                           base::Unretained(&receiver)));
   receiver.WaitUntilRequestDone();
@@ -233,7 +231,7 @@
   ASSERT_GE(expected_retries, 2U);
 
   provider.RequestTimezone(simple_request.position,
-                           base::TimeDelta::FromSeconds(timeout_seconds),
+                           base::Seconds(timeout_seconds),
                            base::BindOnce(&TimeZoneReceiver::OnRequestDone,
                                           base::Unretained(&receiver)));
   receiver.WaitUntilRequestDone();
diff --git a/chromeos/tpm/install_attributes.cc b/chromeos/tpm/install_attributes.cc
index b134ba8c..052d5a6 100644
--- a/chromeos/tpm/install_attributes.cc
+++ b/chromeos/tpm/install_attributes.cc
@@ -45,7 +45,7 @@
 const int kDbusRetryCount = 12;
 
 // Interval of TPM lock state query retries during consistency check.
-constexpr base::TimeDelta kDbusRetryInterval = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kDbusRetryInterval = base::Seconds(5);
 
 std::string ReadMapKey(const std::map<std::string, std::string>& map,
                        const std::string& key) {
diff --git a/chromeos/tpm/install_attributes_unittest.cc b/chromeos/tpm/install_attributes_unittest.cc
index 90e1cb0..74e80162 100644
--- a/chromeos/tpm/install_attributes_unittest.cc
+++ b/chromeos/tpm/install_attributes_unittest.cc
@@ -381,7 +381,7 @@
   install_attributes_->Init(GetTempPath());
   // Fast-forward the timeline to virtually an infinite value in reality to make
   // sure retries get exhausted.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(99999));
+  task_environment_.FastForwardBy(base::Seconds(99999));
 
   // The expectation is "8" when TPM is not reachable.
   histogram_tester.ExpectUniqueSample("Enterprise.AttributesTPMConsistency", 8,
diff --git a/chromeos/tpm/tpm_token_info_getter.cc b/chromeos/tpm/tpm_token_info_getter.cc
index 9781ac3f..9bd92d3d 100644
--- a/chromeos/tpm/tpm_token_info_getter.cc
+++ b/chromeos/tpm/tpm_token_info_getter.cc
@@ -30,8 +30,7 @@
   base::TimeDelta next_delay = last_delay * 2;
 
   // Cap the delay to prevent an overflow. This threshold is arbitrarily chosen.
-  const base::TimeDelta max_delay =
-      base::TimeDelta::FromMilliseconds(kMaxRequestDelayMs);
+  const base::TimeDelta max_delay = base::Milliseconds(kMaxRequestDelayMs);
   if (next_delay > max_delay)
     next_delay = max_delay;
   return next_delay;
@@ -85,8 +84,7 @@
       type_(type),
       state_(TPMTokenInfoGetter::STATE_INITIAL),
       account_id_(account_id),
-      tpm_request_delay_(
-          base::TimeDelta::FromMilliseconds(kInitialRequestDelayMs)),
+      tpm_request_delay_(base::Milliseconds(kInitialRequestDelayMs)),
       cryptohome_pkcs11_client_(cryptohome_pkcs11_client) {}
 
 void TPMTokenInfoGetter::Continue() {
diff --git a/chromeos/ui/frame/caption_buttons/frame_caption_button_container_view.cc b/chromeos/ui/frame/caption_buttons/frame_caption_button_container_view.cc
index 45598e0ca..1ea9d8b 100644
--- a/chromeos/ui/frame/caption_buttons/frame_caption_button_container_view.cc
+++ b/chromeos/ui/frame/caption_buttons/frame_caption_button_container_view.cc
@@ -38,15 +38,14 @@
 
 // Duration of the animation of the position of buttons to the left of
 // |size_button_|.
-constexpr auto kPositionAnimationDuration =
-    base::TimeDelta::FromMilliseconds(500);
+constexpr auto kPositionAnimationDuration = base::Milliseconds(500);
 
 // Duration of the animation of the alpha of |size_button_|.
-constexpr auto kAlphaAnimationDuration = base::TimeDelta::FromMilliseconds(250);
+constexpr auto kAlphaAnimationDuration = base::Milliseconds(250);
 
 // Delay during |tablet_mode_animation_| hide to wait before beginning to
 // animate the position of buttons to the left of |size_button_|.
-constexpr auto kHidePositionDelay = base::TimeDelta::FromMilliseconds(100);
+constexpr auto kHidePositionDelay = base::Milliseconds(100);
 
 // Duration of |tablet_mode_animation_| hiding.
 // Hiding size button 250
@@ -58,8 +57,7 @@
 
 // Delay during |tablet_mode_animation_| show to wait before beginning to
 // animate the alpha of |size_button_|.
-constexpr auto kShowAnimationAlphaDelay =
-    base::TimeDelta::FromMilliseconds(100);
+constexpr auto kShowAnimationAlphaDelay = base::Milliseconds(100);
 
 // Duration of |tablet_mode_animation_| showing.
 // Slide other buttons 500
diff --git a/chromeos/ui/frame/caption_buttons/frame_size_button.cc b/chromeos/ui/frame/caption_buttons/frame_size_button.cc
index 6ce3fc4..61852db 100644
--- a/chromeos/ui/frame/caption_buttons/frame_size_button.cc
+++ b/chromeos/ui/frame/caption_buttons/frame_size_button.cc
@@ -205,9 +205,8 @@
     AnimateButtonsToSnapMode();
   } else {
     set_buttons_to_snap_mode_timer_.Start(
-        FROM_HERE,
-        base::TimeDelta::FromMilliseconds(set_buttons_to_snap_mode_delay_ms_),
-        this, &FrameSizeButton::AnimateButtonsToSnapMode);
+        FROM_HERE, base::Milliseconds(set_buttons_to_snap_mode_delay_ms_), this,
+        &FrameSizeButton::AnimateButtonsToSnapMode);
   }
 }
 
diff --git a/chromeos/ui/frame/default_frame_header.cc b/chromeos/ui/frame/default_frame_header.cc
index 7a823f7..0576105 100644
--- a/chromeos/ui/frame/default_frame_header.cc
+++ b/chromeos/ui/frame/default_frame_header.cc
@@ -28,7 +28,7 @@
 
 // Duration of animation scheduled when frame color is changed.
 constexpr base::TimeDelta kFrameColorChangeAnimationDuration =
-    base::TimeDelta::FromMilliseconds(240);
+    base::Milliseconds(240);
 
 // Tiles an image into an area, rounding the top corners.
 void TileRoundRect(gfx::Canvas* canvas,
diff --git a/chromeos/ui/frame/frame_header.cc b/chromeos/ui/frame/frame_header.cc
index bb03e2c..1b45a23 100644
--- a/chromeos/ui/frame/frame_header.cc
+++ b/chromeos/ui/frame/frame_header.cc
@@ -37,7 +37,7 @@
 namespace {
 
 constexpr base::TimeDelta kFrameActivationAnimationDuration =
-    base::TimeDelta::FromMilliseconds(200);
+    base::Milliseconds(200);
 
 DEFINE_UI_CLASS_PROPERTY_KEY(FrameHeader*, kFrameHeaderKey, nullptr)
 
diff --git a/chromeos/ui/frame/immersive/immersive_fullscreen_controller.cc b/chromeos/ui/frame/immersive/immersive_fullscreen_controller.cc
index 8bbcc2d6..2115271 100644
--- a/chromeos/ui/frame/immersive/immersive_fullscreen_controller.cc
+++ b/chromeos/ui/frame/immersive/immersive_fullscreen_controller.cc
@@ -419,7 +419,7 @@
   top_edge_hover_timer_.Stop();
   // Timer is stopped when |this| is destroyed, hence Unretained() is safe.
   top_edge_hover_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(kMouseRevealDelayMs),
+      FROM_HERE, base::Milliseconds(kMouseRevealDelayMs),
       base::BindOnce(
           &ImmersiveFullscreenController::AcquireLocatedEventRevealedLock,
           base::Unretained(this)));
@@ -545,9 +545,9 @@
     case ANIMATE_NO:
       return base::TimeDelta();
     case ANIMATE_SLOW:
-      return base::TimeDelta::FromMilliseconds(400);
+      return base::Milliseconds(400);
     case ANIMATE_FAST:
-      return base::TimeDelta::FromMilliseconds(200);
+      return base::Milliseconds(200);
   }
   NOTREACHED();
   return base::TimeDelta();
diff --git a/cloud_print/virtual_driver/win/port_monitor/port_monitor.cc b/cloud_print/virtual_driver/win/port_monitor/port_monitor.cc
index ad9526d..ca4ae31 100644
--- a/cloud_print/virtual_driver/win/port_monitor/port_monitor.cc
+++ b/cloud_print/virtual_driver/win/port_monitor/port_monitor.cc
@@ -123,7 +123,7 @@
 
 // Delete files which where not deleted by chrome.
 void DeleteLeakedFiles(const base::FilePath& dir) {
-  base::Time delete_before = base::Time::Now() - base::TimeDelta::FromDays(1);
+  base::Time delete_before = base::Time::Now() - base::Days(1);
   base::FileEnumerator enumerator(dir, false, base::FileEnumerator::FILES);
   for (base::FilePath file_path = enumerator.Next(); !file_path.empty();
        file_path = enumerator.Next()) {
diff --git a/codelabs/cpp101/factor.cc b/codelabs/cpp101/factor.cc
index effe828..e3b9ef2 100644
--- a/codelabs/cpp101/factor.cc
+++ b/codelabs/cpp101/factor.cc
@@ -77,9 +77,8 @@
       run_loop.QuitClosure());
 
   base::ThreadPool::PostTask(
-      FROM_HERE,
-      base::BindOnce(&PrintStatusUpdateRepeatedly, base::TimeTicks::Now(),
-                     base::TimeDelta::FromSeconds(1)));
+      FROM_HERE, base::BindOnce(&PrintStatusUpdateRepeatedly,
+                                base::TimeTicks::Now(), base::Seconds(1)));
 
   run_loop.Run();
 
diff --git a/codelabs/cpp101/sleep.cc b/codelabs/cpp101/sleep.cc
index e0aec69..3e95e906 100644
--- a/codelabs/cpp101/sleep.cc
+++ b/codelabs/cpp101/sleep.cc
@@ -32,7 +32,7 @@
   }
 
   base::RunLoop run_loop;
-  base::TimeDelta duration = base::TimeDelta::FromSeconds(duration_seconds);
+  base::TimeDelta duration = base::Seconds(duration_seconds);
 
   base::SequencedTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE, base::BindOnce(run_loop.QuitClosure()), duration);
diff --git a/components/accuracy_tips/accuracy_service_unittest.cc b/components/accuracy_tips/accuracy_service_unittest.cc
index 3ae8d806..47a1bfde 100644
--- a/components/accuracy_tips/accuracy_service_unittest.cc
+++ b/components/accuracy_tips/accuracy_service_unittest.cc
@@ -233,7 +233,7 @@
 
   // Future calls will return that the rate limit is active.
   EXPECT_EQ(CheckAccuracyStatusSync(url), AccuracyTipStatus::kRateLimited);
-  clock()->Advance(base::TimeDelta::FromDays(1));
+  clock()->Advance(base::Days(1));
   EXPECT_EQ(CheckAccuracyStatusSync(url), AccuracyTipStatus::kRateLimited);
 
   // Until sufficient time passed and the tip can be shown again.
@@ -253,7 +253,7 @@
       .WillOnce(Invoke(&OptOutClicked));
   service()->MaybeShowAccuracyTip(web_contents());
 
-  clock()->Advance(base::TimeDelta::FromDays(1));
+  clock()->Advance(base::Days(1));
   EXPECT_EQ(CheckAccuracyStatusSync(url), AccuracyTipStatus::kOptOut);
 
   // Forwarding |kTimeBetweenPrompts| days will also not show the prompt again.
@@ -355,7 +355,7 @@
 
   // Future calls will return that the rate limit is active.
   EXPECT_EQ(CheckAccuracyStatusSync(url), AccuracyTipStatus::kRateLimited);
-  clock()->Advance(base::TimeDelta::FromDays(1));
+  clock()->Advance(base::Days(1));
   EXPECT_EQ(CheckAccuracyStatusSync(url), AccuracyTipStatus::kRateLimited);
 
   // Until sufficient time passed and the tip can be shown again.
@@ -504,7 +504,7 @@
   clock()->Advance(features::kMinTimeToShowSurvey.Get());
 
   // History deleted for the last day...
-  base::Time begin = clock()->Now() - base::TimeDelta::FromDays(1);
+  base::Time begin = clock()->Now() - base::Days(1);
   base::Time end = clock()->Now();
   history::DeletionInfo deletion_info(
       history::DeletionTimeRange(begin, end), false /* is_from_expiration */,
diff --git a/components/accuracy_tips/features.cc b/components/accuracy_tips/features.cc
index d4a229e4..e3eedba 100644
--- a/components/accuracy_tips/features.cc
+++ b/components/accuracy_tips/features.cc
@@ -22,8 +22,7 @@
     &safe_browsing::kAccuracyTipsFeature, "LearnMoreUrl", ""};
 
 const base::FeatureParam<base::TimeDelta> kTimeBetweenPrompts{
-    &safe_browsing::kAccuracyTipsFeature, "TimeBetweenPrompts",
-    base::TimeDelta::FromDays(7)};
+    &safe_browsing::kAccuracyTipsFeature, "TimeBetweenPrompts", base::Days(7)};
 
 extern const base::FeatureParam<int> kNumIgnorePrompts{
     &safe_browsing::kAccuracyTipsFeature, "NumIgnorePrompts", 2};
@@ -35,12 +34,10 @@
     "AccuracyTipsSurvey", base::FEATURE_DISABLED_BY_DEFAULT};
 
 const base::FeatureParam<base::TimeDelta> kMinTimeToShowSurvey{
-    &kAccuracyTipsSurveyFeature, "MinTimeToShowSurvey",
-    base::TimeDelta::FromMinutes(10)};
+    &kAccuracyTipsSurveyFeature, "MinTimeToShowSurvey", base::Minutes(10)};
 
 const base::FeatureParam<base::TimeDelta> kMaxTimeToShowSurvey{
-    &kAccuracyTipsSurveyFeature, "MaxTimeToShowSurvey",
-    base::TimeDelta::FromMinutes(30)};
+    &kAccuracyTipsSurveyFeature, "MaxTimeToShowSurvey", base::Minutes(30)};
 
 const base::FeatureParam<int> kMinPromptCountRequiredForSurvey{
     &kAccuracyTipsSurveyFeature, "MinPromptCountRequiredForSurvey", 1};
diff --git a/components/app_restore/arc_save_handler.cc b/components/app_restore/arc_save_handler.cc
index 73c7f83..f09c8f8 100644
--- a/components/app_restore/arc_save_handler.cc
+++ b/components/app_restore/arc_save_handler.cc
@@ -19,8 +19,7 @@
 
 // Repeat timer interval between each checking that whether a task is created
 // for each app launching.
-constexpr base::TimeDelta kCheckCycleInterval =
-    base::TimeDelta::FromSeconds(600);
+constexpr base::TimeDelta kCheckCycleInterval = base::Seconds(600);
 
 }  // namespace
 
diff --git a/components/app_restore/full_restore_read_and_save_unittest.cc b/components/app_restore/full_restore_read_and_save_unittest.cc
index 2bb3efb..cab49deb 100644
--- a/components/app_restore/full_restore_read_and_save_unittest.cc
+++ b/components/app_restore/full_restore_read_and_save_unittest.cc
@@ -139,7 +139,7 @@
     // session id record is removed. So set the record time as 601 seconds ago,
     // so that CheckTasksForAppLaunching can remove the session id record to
     // simulate the task is not created for the session id.
-    it->second.second = it->second.second - base::TimeDelta::FromSeconds(601);
+    it->second.second = it->second.second - base::Seconds(601);
   }
 
   base::RepeatingTimer* GetArcCheckTimer() {
diff --git a/components/app_restore/full_restore_save_handler.cc b/components/app_restore/full_restore_save_handler.cc
index 60f7358e..ddfb1641 100644
--- a/components/app_restore/full_restore_save_handler.cc
+++ b/components/app_restore/full_restore_save_handler.cc
@@ -31,10 +31,10 @@
 
 // Delay between when an update is received, and when we save it to the
 // full restore file.
-constexpr base::TimeDelta kSaveDelay = base::TimeDelta::FromMilliseconds(2500);
+constexpr base::TimeDelta kSaveDelay = base::Milliseconds(2500);
 
 // Delay starting `save_timer_` during the system startup phase.
-constexpr base::TimeDelta kWaitDelay = base::TimeDelta::FromSeconds(120);
+constexpr base::TimeDelta kWaitDelay = base::Seconds(120);
 
 const char kCrxAppPrefix[] = "_crx_";
 
diff --git a/components/arc/compat_mode/resize_toggle_menu.cc b/components/arc/compat_mode/resize_toggle_menu.cc
index 7d44170f..4ac223b 100644
--- a/components/arc/compat_mode/resize_toggle_menu.cc
+++ b/components/arc/compat_mode/resize_toggle_menu.cc
@@ -296,7 +296,7 @@
 
   auto_close_closure_.Reset(base::BindOnce(&ResizeToggleMenu::CloseBubble,
                                            weak_ptr_factory_.GetWeakPtr()));
-  constexpr auto kAutoCloseDelay = base::TimeDelta::FromSeconds(2);
+  constexpr auto kAutoCloseDelay = base::Seconds(2);
   base::SequencedTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE, auto_close_closure_.callback(), kAutoCloseDelay);
 }
diff --git a/components/arc/compat_mode/resize_toggle_menu_unittest.cc b/components/arc/compat_mode/resize_toggle_menu_unittest.cc
index 6183ef13..68158db 100644
--- a/components/arc/compat_mode/resize_toggle_menu_unittest.cc
+++ b/components/arc/compat_mode/resize_toggle_menu_unittest.cc
@@ -181,9 +181,9 @@
 
   ClickButton(ResizeCompatMode::kPhone);
   EXPECT_TRUE(IsMenuRunning());
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
   EXPECT_TRUE(IsMenuRunning());
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(IsMenuRunning());
 }
 
@@ -193,13 +193,13 @@
 
   ClickButton(ResizeCompatMode::kPhone);
   EXPECT_TRUE(IsMenuRunning());
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
   EXPECT_TRUE(IsMenuRunning());
   ClickButton(ResizeCompatMode::kTablet);
   EXPECT_TRUE(IsMenuRunning());
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
   EXPECT_TRUE(IsMenuRunning());
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(IsMenuRunning());
 }
 
diff --git a/components/arc/enterprise/arc_data_snapshotd_bridge.cc b/components/arc/enterprise/arc_data_snapshotd_bridge.cc
index 52d0585..62a04bc 100644
--- a/components/arc/enterprise/arc_data_snapshotd_bridge.cc
+++ b/components/arc/enterprise/arc_data_snapshotd_bridge.cc
@@ -18,8 +18,7 @@
 namespace {
 
 // Interval between successful connection attempts.
-constexpr base::TimeDelta kConnectionAttemptInterval =
-    base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kConnectionAttemptInterval = base::Seconds(1);
 
 // The maximum number of consecutive connection attempts before giving up.
 constexpr int kMaxConnectionAttemptCount = 5;
diff --git a/components/arc/enterprise/arc_data_snapshotd_manager.cc b/components/arc/enterprise/arc_data_snapshotd_manager.cc
index 256655c..6c0814c 100644
--- a/components/arc/enterprise/arc_data_snapshotd_manager.cc
+++ b/components/arc/enterprise/arc_data_snapshotd_manager.cc
@@ -49,7 +49,7 @@
 constexpr char kTpmVersion[] = "tpm_version";
 
 // Snapshot muss automatically expire in 30 days if not updated.
-constexpr base::TimeDelta kSnapshotMaxLifetime = base::TimeDelta::FromDays(30);
+constexpr base::TimeDelta kSnapshotMaxLifetime = base::Days(30);
 
 // Returns true if the Chrome session is restored after crash.
 bool IsRestoredSession() {
diff --git a/components/arc/enterprise/snapshot_reboot_controller.cc b/components/arc/enterprise/snapshot_reboot_controller.cc
index 37983cf..2b8eecb3 100644
--- a/components/arc/enterprise/snapshot_reboot_controller.cc
+++ b/components/arc/enterprise/snapshot_reboot_controller.cc
@@ -29,7 +29,7 @@
 }  // namespace
 
 const int kMaxRebootAttempts = 3;
-const base::TimeDelta kRebootAttemptDelay = base::TimeDelta::FromMinutes(5);
+const base::TimeDelta kRebootAttemptDelay = base::Minutes(5);
 
 SnapshotRebootController::SnapshotRebootController(
     std::unique_ptr<ArcSnapshotRebootNotification> notification)
diff --git a/components/arc/enterprise/snapshot_session_controller.cc b/components/arc/enterprise/snapshot_session_controller.cc
index fbed618..5a5fd0a 100644
--- a/components/arc/enterprise/snapshot_session_controller.cc
+++ b/components/arc/enterprise/snapshot_session_controller.cc
@@ -17,7 +17,7 @@
 namespace {
 
 // The maximum duration of all required apps being installed.
-const base::TimeDelta kDuration = base::TimeDelta::FromMinutes(40);
+const base::TimeDelta kDuration = base::Minutes(40);
 
 // This class tracks a user session lifetime and notifies its observers about
 // the appropriate session state changes.
diff --git a/components/arc/enterprise/snapshot_session_controller_unittest.cc b/components/arc/enterprise/snapshot_session_controller_unittest.cc
index 86f6186..7b9bc6e 100644
--- a/components/arc/enterprise/snapshot_session_controller_unittest.cc
+++ b/components/arc/enterprise/snapshot_session_controller_unittest.cc
@@ -210,7 +210,7 @@
   EXPECT_TRUE(session_controller->get_timer_for_testing()->IsRunning());
   EXPECT_EQ(1, apps_tracker()->start_tracking_num());
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(40));
+  task_environment_.FastForwardBy(base::Minutes(40));
   task_environment_.RunUntilIdle();
 
   EXPECT_FALSE(session_controller->get_timer_for_testing()->IsRunning());
diff --git a/components/arc/ime/key_event_result_receiver.cc b/components/arc/ime/key_event_result_receiver.cc
index 0ceacac9..d4d4912c 100644
--- a/components/arc/ime/key_event_result_receiver.cc
+++ b/components/arc/ime/key_event_result_receiver.cc
@@ -23,11 +23,9 @@
 // TODO(b/183573525): This timeout is chosen tentatively. We should adjust the
 // value after collecting the latency metrics.
 constexpr base::TimeDelta kKeyEventDoneCallbackTimeout =
-    base::TimeDelta::FromMilliseconds(300);
-constexpr base::TimeDelta kKeyEventLatencyMin =
-    base::TimeDelta::FromMilliseconds(1);
-constexpr base::TimeDelta kKeyEventLatencyMax =
-    base::TimeDelta::FromMilliseconds(350);
+    base::Milliseconds(300);
+constexpr base::TimeDelta kKeyEventLatencyMin = base::Milliseconds(1);
+constexpr base::TimeDelta kKeyEventLatencyMax = base::Milliseconds(350);
 
 constexpr char kImeLatencyHistogramName[] = "Arc.ChromeOsImeLatency";
 
diff --git a/components/arc/ime/key_event_result_receiver_unittest.cc b/components/arc/ime/key_event_result_receiver_unittest.cc
index d51aed2a..9b2cc9e2 100644
--- a/components/arc/ime/key_event_result_receiver_unittest.cc
+++ b/components/arc/ime/key_event_result_receiver_unittest.cc
@@ -45,7 +45,7 @@
   receiver()->SetCallback(std::move(callback));
   EXPECT_FALSE(result.has_value());
 
-  ForwardBy(base::TimeDelta::FromSeconds(1));
+  ForwardBy(base::Seconds(1));
 
   EXPECT_TRUE(result.has_value());
   EXPECT_FALSE(result.value());
@@ -185,7 +185,7 @@
 TEST_F(KeyEventResultReceiverTest, Histrogram) {
   base::HistogramTester histogram_tester;
   constexpr char kHistogramName[] = "Arc.ChromeOsImeLatency";
-  auto delay = base::TimeDelta::FromMilliseconds(100);
+  auto delay = base::Milliseconds(100);
 
   receiver()->SetCallback(base::DoNothing());
 
@@ -199,7 +199,7 @@
 
   receiver()->SetCallback(base::DoNothing());
 
-  ForwardBy(base::TimeDelta::FromSeconds(1));
+  ForwardBy(base::Seconds(1));
 
   histogram_tester.ExpectTotalCount(kHistogramName, 2);
 }
diff --git a/components/arc/metrics/arc_metrics_service.cc b/components/arc/metrics/arc_metrics_service.cc
index 383ed1e..e33e933 100644
--- a/components/arc/metrics/arc_metrics_service.cc
+++ b/components/arc/metrics/arc_metrics_service.cc
@@ -33,8 +33,8 @@
 
 constexpr char kUmaPrefix[] = "Arc";
 
-constexpr base::TimeDelta kUmaMinTime = base::TimeDelta::FromMilliseconds(1);
-constexpr base::TimeDelta kUmaMaxTime = base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kUmaMinTime = base::Milliseconds(1);
+constexpr base::TimeDelta kUmaMaxTime = base::Seconds(60);
 constexpr int kUmaNumBuckets = 50;
 constexpr int kUmaPriAbiMigMaxFailedAttempts = 10;
 constexpr int kUmaFixupDirectoriesCountMin = 0;
@@ -42,8 +42,7 @@
 constexpr int kUmaFixupAppsCountMin = 0;
 constexpr int kUmaFixupAppsCountMax = 10000;
 
-constexpr base::TimeDelta kRequestProcessListPeriod =
-    base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kRequestProcessListPeriod = base::Minutes(5);
 constexpr char kArcProcessNamePrefix[] = "org.chromium.arc.";
 constexpr char kGmsProcessNamePrefix[] = "com.google.android.gms";
 constexpr char kBootProgressEnableScreen[] = "boot_progress_enable_screen";
@@ -288,8 +287,7 @@
             << event->uptimeMillis;
     const std::string name = "Arc." + event->event + suffix;
     const base::TimeTicks uptime =
-        base::TimeDelta::FromMilliseconds(event->uptimeMillis) +
-        base::TimeTicks();
+        base::Milliseconds(event->uptimeMillis) + base::TimeTicks();
     const base::TimeDelta elapsed_time = uptime - arc_start_time.value();
     base::UmaHistogramCustomTimes(name, elapsed_time, kUmaMinTime, kUmaMaxTime,
                                   kUmaNumBuckets);
@@ -579,8 +577,7 @@
     if (!(*it)->event.compare(kBootProgressArcUpgraded)) {
       arc_upgraded_event = std::move(*it);
       events.erase(it);
-      return base::TimeDelta::FromMilliseconds(
-                 arc_upgraded_event->uptimeMillis) +
+      return base::Milliseconds(arc_upgraded_event->uptimeMillis) +
              base::TimeTicks();
     }
   }
diff --git a/components/arc/metrics/arc_metrics_service_unittest.cc b/components/arc/metrics/arc_metrics_service_unittest.cc
index f908b9d..da994c2 100644
--- a/components/arc/metrics/arc_metrics_service_unittest.cc
+++ b/components/arc/metrics/arc_metrics_service_unittest.cc
@@ -127,8 +127,7 @@
 
   void SetArcStartTimeInMs(uint64_t arc_start_time_in_ms) {
     const base::TimeTicks arc_start_time =
-        base::TimeDelta::FromMilliseconds(arc_start_time_in_ms) +
-        base::TimeTicks();
+        base::Milliseconds(arc_start_time_in_ms) + base::TimeTicks();
     chromeos::FakeSessionManagerClient::Get()->set_arc_start_time(
         arc_start_time);
   }
@@ -347,8 +346,7 @@
   absl::optional<base::TimeTicks> arc_start_time =
       service()->GetArcStartTimeFromEvents(events);
   EXPECT_TRUE(arc_start_time.has_value());
-  EXPECT_EQ(*arc_start_time,
-            base::TimeDelta::FromMilliseconds(10) + base::TimeTicks());
+  EXPECT_EQ(*arc_start_time, base::Milliseconds(10) + base::TimeTicks());
 
   // Check that the upgrade event was removed from events.
   EXPECT_TRUE(std::none_of(
diff --git a/components/arc/power/arc_power_bridge.cc b/components/arc/power/arc_power_bridge.cc
index 120f292..18d3926 100644
--- a/components/arc/power/arc_power_bridge.cc
+++ b/components/arc/power/arc_power_bridge.cc
@@ -29,8 +29,7 @@
 
 // Delay for notifying Android about screen brightness changes, added in
 // order to prevent spammy brightness updates.
-constexpr base::TimeDelta kNotifyBrightnessDelay =
-    base::TimeDelta::FromMilliseconds(200);
+constexpr base::TimeDelta kNotifyBrightnessDelay = base::Milliseconds(200);
 
 // Singleton factory for ArcPowerBridge.
 class ArcPowerBridgeFactory
diff --git a/components/arc/session/arc_session_runner.cc b/components/arc/session/arc_session_runner.cc
index e3dd5af8..d575b44 100644
--- a/components/arc/session/arc_session_runner.cc
+++ b/components/arc/session/arc_session_runner.cc
@@ -17,8 +17,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kDefaultRestartDelay =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kDefaultRestartDelay = base::Seconds(5);
 
 void RecordInstanceCrashUma(ArcContainerLifetimeEvent sample) {
   UMA_HISTOGRAM_ENUMERATION("Arc.ContainerLifetimeEvent", sample,
diff --git a/components/arc/session/arc_vm_client_adapter.cc b/components/arc/session/arc_vm_client_adapter.cc
index d28d68013..1d76cc9 100644
--- a/components/arc/session/arc_vm_client_adapter.cc
+++ b/components/arc/session/arc_vm_client_adapter.cc
@@ -85,9 +85,9 @@
     "/run/arcvm_boot_notification_server/host.socket";
 
 constexpr base::TimeDelta kArcBugReportBackupTimeMetricMinTime =
-    base::TimeDelta::FromMilliseconds(1);
+    base::Milliseconds(1);
 constexpr base::TimeDelta kArcBugReportBackupTimeMetricMaxTime =
-    base::TimeDelta::FromSeconds(60);
+    base::Seconds(60);
 constexpr int kArcBugReportBackupTimeMetricBuckets = 50;
 constexpr const char kArcBugReportBackupTimeMetric[] =
     "Login.ArcBugReportBackupTime";
@@ -98,10 +98,9 @@
 
 constexpr int64_t kInvalidCid = -1;
 
-constexpr base::TimeDelta kConnectTimeoutLimit =
-    base::TimeDelta::FromSeconds(20);
+constexpr base::TimeDelta kConnectTimeoutLimit = base::Seconds(20);
 constexpr base::TimeDelta kConnectSleepDurationInitial =
-    base::TimeDelta::FromMilliseconds(100);
+    base::Milliseconds(100);
 
 absl::optional<base::TimeDelta> g_connect_timeout_limit_for_testing;
 absl::optional<base::TimeDelta> g_connect_sleep_duration_initial_for_testing;
diff --git a/components/arc/session/arc_vm_client_adapter_unittest.cc b/components/arc/session/arc_vm_client_adapter_unittest.cc
index ed737282..341890f 100644
--- a/components/arc/session/arc_vm_client_adapter_unittest.cc
+++ b/components/arc/session/arc_vm_client_adapter_unittest.cc
@@ -352,9 +352,9 @@
     SetArcVmBootNotificationServerAddressForTesting(
         abstract_addr,
         // connect_timeout_limit
-        base::TimeDelta::FromMilliseconds(100),
+        base::Milliseconds(100),
         // connect_sleep_duration_initial
-        base::TimeDelta::FromMilliseconds(20));
+        base::Milliseconds(20));
 
     chromeos::SessionManagerClient::InitializeFake();
 
@@ -1787,8 +1787,7 @@
 TEST_F(ArcVmClientAdapterTest, TestBootNotificationServerIsNotListening) {
   boot_notification_server()->Stop();
   // Change timeout to 26 seconds to allow for exponential backoff.
-  base::test::ScopedRunLoopTimeout timeout(FROM_HERE,
-                                           base::TimeDelta::FromSeconds(26));
+  base::test::ScopedRunLoopTimeout timeout(FROM_HERE, base::Seconds(26));
 
   StartMiniArcWithParams(false, {});
 }
diff --git a/components/arc/timer/arc_timer_bridge_unittest.cc b/components/arc/timer/arc_timer_bridge_unittest.cc
index 47b375d..37bf103d 100644
--- a/components/arc/timer/arc_timer_bridge_unittest.cc
+++ b/components/arc/timer/arc_timer_bridge_unittest.cc
@@ -262,7 +262,7 @@
   // Create timers before starting it.
   EXPECT_TRUE(CreateTimers(clocks));
   // Start timer and check if timer expired.
-  base::TimeDelta delay = base::TimeDelta::FromMilliseconds(20);
+  base::TimeDelta delay = base::Milliseconds(20);
   EXPECT_TRUE(StartTimer(CLOCK_BOOTTIME_ALARM, base::TimeTicks::Now() + delay));
   EXPECT_TRUE(WaitForExpiration(CLOCK_BOOTTIME_ALARM));
 }
@@ -278,7 +278,7 @@
   std::vector<clockid_t> clocks = {CLOCK_REALTIME_ALARM};
   EXPECT_TRUE(CreateTimers(clocks));
   // Start timer should fail due to un-registered clock id.
-  base::TimeDelta delay = base::TimeDelta::FromMilliseconds(20);
+  base::TimeDelta delay = base::Milliseconds(20);
   EXPECT_FALSE(
       StartTimer(CLOCK_BOOTTIME_ALARM, base::TimeTicks::Now() + delay));
 }
diff --git a/components/arc/video_accelerator/gpu_arc_video_decoder.cc b/components/arc/video_accelerator/gpu_arc_video_decoder.cc
index d1b5b401..9597d61 100644
--- a/components/arc/video_accelerator/gpu_arc_video_decoder.cc
+++ b/components/arc/video_accelerator/gpu_arc_video_decoder.cc
@@ -38,7 +38,7 @@
 // Convert the specified |bitstream_id| to a timestamp, which we can use to
 // identify which bitstream buffer a decoded video frame belongs to.
 base::TimeDelta BitstreamIdToFakeTimestamp(int32_t bitstream_id) {
-  return base::TimeDelta::FromMilliseconds(bitstream_id);
+  return base::Milliseconds(bitstream_id);
 }
 
 // Convert the specified |timestamp| to a bitstream id, so we can map between
diff --git a/components/arc/video_accelerator/gpu_arc_video_encode_accelerator.cc b/components/arc/video_accelerator/gpu_arc_video_encode_accelerator.cc
index 515600cb65..aca9d5f 100644
--- a/components/arc/video_accelerator/gpu_arc_video_encode_accelerator.cc
+++ b/components/arc/video_accelerator/gpu_arc_video_encode_accelerator.cc
@@ -211,7 +211,7 @@
       gfx::Rect(visible_size_), visible_size_, std::move(gpu_memory_buffer),
       dummy_mailbox /* mailbox_holders */,
       base::NullCallback() /* mailbox_holder_release_cb_ */,
-      base::TimeDelta::FromMicroseconds(timestamp));
+      base::Microseconds(timestamp));
   if (!frame) {
     DLOG(ERROR) << "Failed to create VideoFrame";
     client_->NotifyError(Error::kInvalidArgumentError);
diff --git a/components/assist_ranker/ranker_model.cc b/components/assist_ranker/ranker_model.cc
index 0495bcc..bd45b86 100644
--- a/components/assist_ranker/ranker_model.cc
+++ b/components/assist_ranker/ranker_model.cc
@@ -39,9 +39,9 @@
 
   // Otherwise, a model is expired if its age exceeds the cache duration.
   base::Time last_modified =
-      base::Time() + base::TimeDelta::FromSeconds(metadata.last_modified_sec());
+      base::Time() + base::Seconds(metadata.last_modified_sec());
   base::TimeDelta age = base::Time::Now() - last_modified;
-  return age > base::TimeDelta::FromSeconds(metadata.cache_duration_sec());
+  return age > base::Seconds(metadata.cache_duration_sec());
 }
 
 const std::string& RankerModel::GetSourceURL() const {
diff --git a/components/assist_ranker/ranker_model_loader_impl.cc b/components/assist_ranker/ranker_model_loader_impl.cc
index e098c9af..3e14f08 100644
--- a/components/assist_ranker/ranker_model_loader_impl.cc
+++ b/components/assist_ranker/ranker_model_loader_impl.cc
@@ -41,8 +41,7 @@
 // Helper function to UMA log a timer histograms.
 void RecordTimerHistogram(const std::string& name, base::TimeDelta duration) {
   base::HistogramBase* counter = base::Histogram::FactoryTimeGet(
-      name, base::TimeDelta::FromMilliseconds(10),
-      base::TimeDelta::FromMilliseconds(200000), 100,
+      name, base::Milliseconds(10), base::Milliseconds(200000), 100,
       base::HistogramBase::kUmaTargetedHistogramFlag);
   DCHECK(counter);
   counter->AddTime(duration);
@@ -219,7 +218,7 @@
   state_ = LoaderState::LOADING_FROM_URL;
   load_start_time_ = base::TimeTicks::Now();
   next_earliest_download_time_ =
-      load_start_time_ + base::TimeDelta::FromMinutes(kMinRetryDelayMins);
+      load_start_time_ + base::Minutes(kMinRetryDelayMins);
   bool request_started =
       url_fetcher_->Request(model_url_,
                             base::BindOnce(&RankerModelLoaderImpl::OnURLFetched,
diff --git a/components/assist_ranker/ranker_model_loader_impl_unittest.cc b/components/assist_ranker/ranker_model_loader_impl_unittest.cc
index c8e4475..707be15 100644
--- a/components/assist_ranker/ranker_model_loader_impl_unittest.cc
+++ b/components/assist_ranker/ranker_model_loader_impl_unittest.cc
@@ -193,11 +193,10 @@
 }
 
 void RankerModelLoaderImplTest::InitLocalModels() {
-  InitModel(remote_model_url_, base::Time::Now(), base::TimeDelta::FromDays(30),
+  InitModel(remote_model_url_, base::Time::Now(), base::Days(30),
             &local_model_);
-  InitModel(remote_model_url_,
-            base::Time::Now() - base::TimeDelta::FromDays(60),
-            base::TimeDelta::FromDays(30), &expired_model_);
+  InitModel(remote_model_url_, base::Time::Now() - base::Days(60),
+            base::Days(30), &expired_model_);
   SaveModel(local_model_, local_model_path_);
   SaveModel(expired_model_, expired_model_path_);
   ASSERT_EQ(base::WriteFile(invalid_model_path_, kInvalidModelData,
diff --git a/components/assist_ranker/ranker_model_unittest.cc b/components/assist_ranker/ranker_model_unittest.cc
index 3ac195f..1107131 100644
--- a/components/assist_ranker/ranker_model_unittest.cc
+++ b/components/assist_ranker/ranker_model_unittest.cc
@@ -47,7 +47,7 @@
 
 TEST(RankerModelTest, Serialization) {
   base::Time last_modified = base::Time::Now();
-  base::TimeDelta cache_duration = base::TimeDelta::FromDays(3);
+  base::TimeDelta cache_duration = base::Days(3);
   std::unique_ptr<RankerModel> original_model =
       NewModel(kModelURL, last_modified, cache_duration);
   std::string original_model_str = original_model->SerializeAsString();
@@ -65,9 +65,9 @@
 
 TEST(RankerModelTest, IsExpired) {
   base::Time today = base::Time::Now();
-  base::TimeDelta days_15 = base::TimeDelta::FromDays(15);
-  base::TimeDelta days_30 = base::TimeDelta::FromDays(30);
-  base::TimeDelta days_60 = base::TimeDelta::FromDays(60);
+  base::TimeDelta days_15 = base::Days(15);
+  base::TimeDelta days_30 = base::Days(30);
+  base::TimeDelta days_60 = base::Days(60);
 
   EXPECT_FALSE(NewModel(kModelURL, today, days_30)->IsExpired());
   EXPECT_FALSE(NewModel(kModelURL, today - days_15, days_30)->IsExpired());
diff --git a/components/autofill/content/browser/risk/fingerprint.cc b/components/autofill/content/browser/risk/fingerprint.cc
index a44c5ef4..6fadc78f 100644
--- a/components/autofill/content/browser/risk/fingerprint.cc
+++ b/components/autofill/content/browser/risk/fingerprint.cc
@@ -489,7 +489,7 @@
   internal::GetFingerprintInternal(
       obfuscated_gaia_id, window_bounds, content_bounds, screen_info, version,
       charset, accept_languages, install_time, app_locale, user_agent,
-      base::TimeDelta::FromSeconds(kTimeoutSeconds), std::move(callback));
+      base::Seconds(kTimeoutSeconds), std::move(callback));
 }
 
 }  // namespace risk
diff --git a/components/autofill/content/browser/risk/fingerprint_browsertest.cc b/components/autofill/content/browser/risk/fingerprint_browsertest.cc
index b4c0e049..f9ac936 100644
--- a/components/autofill/content/browser/risk/fingerprint_browsertest.cc
+++ b/components/autofill/content/browser/risk/fingerprint_browsertest.cc
@@ -79,8 +79,8 @@
     position->longitude = kLongitude;
     position->altitude = kAltitude;
     position->accuracy = kAccuracy;
-    position->timestamp = base::Time::UnixEpoch() +
-                          base::TimeDelta::FromMilliseconds(kGeolocationTime);
+    position->timestamp =
+        base::Time::UnixEpoch() + base::Milliseconds(kGeolocationTime);
 
     geolocation_overrider_ =
         std::make_unique<device::ScopedGeolocationOverrider>(
@@ -210,7 +210,7 @@
       kObfuscatedGaiaId, window_bounds_, content_bounds_, screen_info,
       "25.0.0.123", kCharset, kAcceptLanguages, AutofillClock::Now(), kLocale,
       kUserAgent,
-      base::TimeDelta::FromDays(1),  // Ought to be longer than any test run.
+      base::Days(1),  // Ought to be longer than any test run.
       base::BindOnce(&AutofillRiskFingerprintTest::GetFingerprintTestCallback,
                      base::Unretained(this), run_loop.QuitWhenIdleClosure()));
 
diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components/autofill/content/renderer/autofill_agent.cc
index eb97ce8..86b7476 100644
--- a/components/autofill/content/renderer/autofill_agent.cc
+++ b/components/autofill/content/renderer/autofill_agent.cc
@@ -951,7 +951,7 @@
 
 void AutofillAgent::TriggerReparse() {
   if (!reparse_timer_.IsRunning()) {
-    reparse_timer_.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(100),
+    reparse_timer_.Start(FROM_HERE, base::Milliseconds(100),
                          base::BindRepeating(&AutofillAgent::ProcessForms,
                                              weak_ptr_factory_.GetWeakPtr()));
   }
@@ -1044,8 +1044,7 @@
   // Start the timer to notify the driver that the select field was updated
   // after the options have finished changing,
   on_select_update_timer_.Start(
-      FROM_HERE,
-      base::TimeDelta::FromMilliseconds(kWaitTimeForSelectOptionsChangesMs),
+      FROM_HERE, base::Milliseconds(kWaitTimeForSelectOptionsChangesMs),
       base::BindRepeating(&AutofillAgent::SelectWasUpdated,
                           weak_ptr_factory_.GetWeakPtr(), element));
 }
diff --git a/components/autofill/core/browser/address_normalizer_impl.cc b/components/autofill/core/browser/address_normalizer_impl.cc
index 8edaff6..dffc4f6 100644
--- a/components/autofill/core/browser/address_normalizer_impl.cc
+++ b/components/autofill/core/browser/address_normalizer_impl.cc
@@ -102,7 +102,7 @@
                        weak_ptr_factory_.GetWeakPtr(),
                        /*success=*/false,
                        /*address_validator=*/nullptr),
-        base::TimeDelta::FromSeconds(timeout_seconds));
+        base::Seconds(timeout_seconds));
   }
 
   NormalizationRequest(const NormalizationRequest&) = delete;
diff --git a/components/autofill/core/browser/autocomplete_history_manager_unittest.cc b/components/autofill/core/browser/autocomplete_history_manager_unittest.cc
index 5018385..8672c14 100644
--- a/components/autofill/core/browser/autocomplete_history_manager_unittest.cc
+++ b/components/autofill/core/browser/autocomplete_history_manager_unittest.cc
@@ -721,13 +721,11 @@
 
   std::vector<AutofillEntry> expected_values = {
       GetAutofillEntry(test_name, test_value,
-                       AutofillClock::Now() - base::TimeDelta::FromDays(30),
-                       AutofillClock::Now() -
-                           base::TimeDelta::FromDays(days_since_last_use)),
+                       AutofillClock::Now() - base::Days(30),
+                       AutofillClock::Now() - base::Days(days_since_last_use)),
       GetAutofillEntry(test_name, other_test_value,
-                       AutofillClock::Now() - base::TimeDelta::FromDays(30),
-                       AutofillClock::Now() -
-                           base::TimeDelta::FromDays(days_since_last_use))};
+                       AutofillClock::Now() - base::Days(30),
+                       AutofillClock::Now() - base::Days(days_since_last_use))};
 
   std::unique_ptr<WDTypedResult> mocked_results =
       GetMockedDbResults(expected_values);
diff --git a/components/autofill/core/browser/autofill_ablation_study.cc b/components/autofill/core/browser/autofill_ablation_study.cc
index 39a9f65..0dcc131 100644
--- a/components/autofill/core/browser/autofill_ablation_study.cc
+++ b/components/autofill/core/browser/autofill_ablation_study.cc
@@ -61,7 +61,7 @@
   int32_t raw_offset_in_ms = zone->getRawOffset();
 
   // The time offset for EST is negative. Therefore, we add the negative number.
-  delta += base::TimeDelta::FromMilliseconds(raw_offset_in_ms);
+  delta += base::Milliseconds(raw_offset_in_ms);
 
   return delta.InDays();
 }
diff --git a/components/autofill/core/browser/autofill_ablation_study_unittest.cc b/components/autofill/core/browser/autofill_ablation_study_unittest.cc
index 3078559..2edae2a 100644
--- a/components/autofill/core/browser/autofill_ablation_study_unittest.cc
+++ b/components/autofill/core/browser/autofill_ablation_study_unittest.cc
@@ -164,11 +164,11 @@
 
   // 1 minute difference but not crossing the break of the day.
   EXPECT_EQ(GetAblationHash("seed", url, t),
-            GetAblationHash("seed", url, t + base::TimeDelta::FromMinutes(1)));
+            GetAblationHash("seed", url, t + base::Minutes(1)));
 
   // 1 day difference leads to crossing the break of the day.
   EXPECT_NE(GetAblationHash("seed", url, t),
-            GetAblationHash("seed", url, t + base::TimeDelta::FromHours(24)));
+            GetAblationHash("seed", url, t + base::Hours(24)));
 }
 
 // Ensure that if the feature is disabled, only kDefault is returned.
diff --git a/components/autofill/core/browser/autofill_download_manager.cc b/components/autofill/core/browser/autofill_download_manager.cc
index 606ca7d..4453054 100644
--- a/components/autofill/core/browser/autofill_download_manager.cc
+++ b/components/autofill/core/browser/autofill_download_manager.cc
@@ -164,8 +164,7 @@
 }
 
 base::TimeDelta GetThrottleResetPeriod() {
-  return base::TimeDelta::FromDays(
-      std::max(1, kAutofillUploadThrottlingPeriodInDays.Get()));
+  return base::Days(std::max(1, kAutofillUploadThrottlingPeriodInDays.Get()));
 }
 
 // Returns true if |id| is within |kAutofillExperimentRanges|.
diff --git a/components/autofill/core/browser/autofill_download_manager_unittest.cc b/components/autofill/core/browser/autofill_download_manager_unittest.cc
index 568a4a6a..6f71826 100644
--- a/components/autofill/core/browser/autofill_download_manager_unittest.cc
+++ b/components/autofill/core/browser/autofill_download_manager_unittest.cc
@@ -888,11 +888,10 @@
 
   EXPECT_EQ(1U, responses_.size());
   EXPECT_LT(download_manager_.loader_backoff_.GetTimeUntilRelease(),
-            base::TimeDelta::FromMilliseconds(1100));
+            base::Milliseconds(1100));
   base::RunLoop run_loop;
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(),
-      base::TimeDelta::FromMilliseconds(1100));
+      FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(1100));
   run_loop.Run();
 
   // Get the retried request.
@@ -906,7 +905,7 @@
 
   EXPECT_EQ(2U, responses_.size());
   EXPECT_LT(download_manager_.loader_backoff_.GetTimeUntilRelease(),
-            base::TimeDelta::FromMilliseconds(2100));
+            base::Milliseconds(2100));
 
   // There should not be an additional retry.
   ASSERT_EQ(test_url_loader_factory_.NumPending(), 0);
@@ -956,11 +955,10 @@
       "", network::URLLoaderCompletionStatus(net::OK));
   EXPECT_EQ(1U, responses_.size());
   EXPECT_LT(download_manager_.loader_backoff_.GetTimeUntilRelease(),
-            base::TimeDelta::FromMilliseconds(1100));
+            base::Milliseconds(1100));
   base::RunLoop run_loop;
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(),
-      base::TimeDelta::FromMilliseconds(1100));
+      FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(1100));
   run_loop.Run();
 
   // Check that it was a failure.
@@ -1038,7 +1036,7 @@
   histogram.ExpectUniqueSample("Autofill.ServerQueryResponse",
                                AutofillMetrics::QUERY_SENT, 1);
 
-  const auto kTimeDeltaMargin = base::TimeDelta::FromMilliseconds(100);
+  const auto kTimeDeltaMargin = base::Milliseconds(100);
   const int max_attempts = download_manager_.GetMaxServerAttempts();
   int attempt = 0;
   while (true) {
@@ -1106,7 +1104,7 @@
   form.fields.push_back(field);
 
   base::HistogramTester histogram;
-  const auto kTimeDeltaMargin = base::TimeDelta::FromMilliseconds(100);
+  const auto kTimeDeltaMargin = base::Milliseconds(100);
 
   auto form_structure = std::make_unique<FormStructure>(form);
   form_structure->set_submission_source(SubmissionSource::FORM_SUBMISSION);
@@ -1479,10 +1477,10 @@
       response->set_content_type("text/proto");
       response->AddCustomHeader(
           "Cache-Control",
-          base::StringPrintf("max-age=%" PRId64,
-                             base::TimeDelta::FromMilliseconds(
-                                 cache_expiration_in_milliseconds_)
-                                 .InSeconds()));
+          base::StringPrintf(
+              "max-age=%" PRId64,
+              base::Milliseconds(cache_expiration_in_milliseconds_)
+                  .InSeconds()));
       return response;
     }
 
@@ -1747,8 +1745,7 @@
   // (ie this should go to the embedded server).
   base::RunLoop run_loop;
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(),
-      base::TimeDelta::FromMilliseconds(100));
+      FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(100));
   run_loop.Run();
 
   {
@@ -2130,12 +2127,12 @@
 
   // Advance the clock, but not past the reset period. The pref won't reset,
   // so the upload should not be sent.
-  test_clock.Advance(base::TimeDelta::FromDays(15));
+  test_clock.Advance(base::Days(15));
   EXPECT_FALSE(SendUploadRequest(form_structure, true, {}, "", true));
 
   // Advance the clock beyond the reset period. The pref should be reset and
   // the upload should succeed.
-  test_clock.Advance(base::TimeDelta::FromDays(2));  // Total = 29
+  test_clock.Advance(base::Days(2));  // Total = 29
   EXPECT_TRUE(SendUploadRequest(form_structure, true, {}, "", true));
 
   // One upload was not sent.
diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/autofill/core/browser/autofill_manager.cc
index 63bf5624..cb95a2b 100644
--- a/components/autofill/core/browser/autofill_manager.cc
+++ b/components/autofill/core/browser/autofill_manager.cc
@@ -522,7 +522,7 @@
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
         FROM_HERE,
         base::BindOnce(query_result_delay_task_.callback(), queried_forms),
-        base::TimeDelta::FromSeconds(delay));
+        base::Seconds(delay));
   } else {
     PropagateAutofillPredictionsToDriver(queried_forms);
   }
diff --git a/components/autofill/core/browser/autofill_metrics.cc b/components/autofill/core/browser/autofill_metrics.cc
index 9c17c0d..205d7df 100644
--- a/components/autofill/core/browser/autofill_metrics.cc
+++ b/components/autofill/core/browser/autofill_metrics.cc
@@ -1881,9 +1881,8 @@
 // static
 void AutofillMetrics::LogFormFillDuration(const std::string& metric,
                                           const base::TimeDelta& duration) {
-  base::UmaHistogramCustomTimes(metric, duration,
-                                base::TimeDelta::FromMilliseconds(100),
-                                base::TimeDelta::FromMinutes(10), 50);
+  base::UmaHistogramCustomTimes(metric, duration, base::Milliseconds(100),
+                                base::Minutes(10), 50);
 }
 
 // static
diff --git a/components/autofill/core/browser/autofill_metrics_unittest.cc b/components/autofill/core/browser/autofill_metrics_unittest.cc
index 24fe8a2e..c6f9f6b 100644
--- a/components/autofill/core/browser/autofill_metrics_unittest.cc
+++ b/components/autofill/core/browser/autofill_metrics_unittest.cc
@@ -581,9 +581,9 @@
   offer_data.offer_id = id;
   offer_data.offer_reward_amount = offer_reward_amount;
   if (offer_expired) {
-    offer_data.expiry = AutofillClock::Now() - base::TimeDelta::FromDays(2);
+    offer_data.expiry = AutofillClock::Now() - base::Days(2);
   } else {
-    offer_data.expiry = AutofillClock::Now() + base::TimeDelta::FromDays(2);
+    offer_data.expiry = AutofillClock::Now() + base::Days(2);
   }
   offer_data.merchant_origins = {url};
   offer_data.eligible_instrument_id = {
@@ -4059,7 +4059,7 @@
 TEST_F(AutofillMetricsTest, LogStoredCreditCardMetrics) {
   // Helper timestamps for setting up the test data.
   base::Time now = AutofillClock::Now();
-  base::Time one_month_ago = now - base::TimeDelta::FromDays(30);
+  base::Time one_month_ago = now - base::Days(30);
   base::Time::Exploded now_exploded;
   base::Time::Exploded one_month_ago_exploded;
   now.LocalExplode(&now_exploded);
@@ -4081,14 +4081,14 @@
     for (int i = 0; i < num_cards_of_type; ++i) {
       // Create a card that's still in active use.
       CreditCard card_in_use = test::GetRandomCreditCard(record_type);
-      card_in_use.set_use_date(now - base::TimeDelta::FromDays(30));
+      card_in_use.set_use_date(now - base::Days(30));
       card_in_use.set_use_count(10);
 
       // Create a card that's not in active use.
       CreditCard card_in_disuse = test::GetRandomCreditCard(record_type);
       card_in_disuse.SetExpirationYear(one_month_ago_exploded.year);
       card_in_disuse.SetExpirationMonth(one_month_ago_exploded.month);
-      card_in_disuse.set_use_date(now - base::TimeDelta::FromDays(200));
+      card_in_disuse.set_use_date(now - base::Days(200));
       card_in_disuse.set_use_count(10);
 
       // Add the cards to the personal data manager in the appropriate way.
@@ -4102,7 +4102,7 @@
   base::HistogramTester histogram_tester;
   AutofillMetrics::LogStoredCreditCardMetrics(
       local_cards, server_cards, /*server_card_count_with_card_art_image=*/2,
-      base::TimeDelta::FromDays(180));
+      base::Days(180));
 
   // Validate the basic count metrics.
   histogram_tester.ExpectTotalCount("Autofill.StoredCreditCardCount", 1);
@@ -4215,7 +4215,7 @@
   base::HistogramTester histogram_tester;
   AutofillMetrics::LogStoredCreditCardMetrics(
       local_cards, server_cards, /*server_card_count_with_card_art_image=*/0,
-      base::TimeDelta::FromDays(180));
+      base::Days(180));
 
   // Validate the count metrics.
   histogram_tester.ExpectTotalCount("Autofill.StoredCreditCardCount", 1);
@@ -8887,8 +8887,7 @@
 TEST_F(AutofillMetricsTest, DaysSinceLastUse_CreditCard) {
   base::HistogramTester histogram_tester;
   CreditCard credit_card;
-  credit_card.set_use_date(AutofillClock::Now() -
-                           base::TimeDelta::FromDays(21));
+  credit_card.set_use_date(AutofillClock::Now() - base::Days(21));
   credit_card.RecordAndLogUse();
   histogram_tester.ExpectBucketCount("Autofill.DaysSinceLastUse.CreditCard", 21,
                                      1);
@@ -8898,7 +8897,7 @@
 TEST_F(AutofillMetricsTest, DaysSinceLastUse_Profile) {
   base::HistogramTester histogram_tester;
   AutofillProfile profile;
-  profile.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(13));
+  profile.set_use_date(AutofillClock::Now() - base::Days(13));
   profile.RecordAndLogUse();
   histogram_tester.ExpectBucketCount("Autofill.DaysSinceLastUse.Profile", 13,
                                      1);
@@ -9905,7 +9904,7 @@
     base::TimeTicks parse_time = browser_autofill_manager_->form_structures()
                                      .begin()
                                      ->second->form_parsed_timestamp();
-    test_clock.SetNowTicks(parse_time + base::TimeDelta::FromMicroseconds(17));
+    test_clock.SetNowTicks(parse_time + base::Microseconds(17));
     browser_autofill_manager_->OnFormSubmitted(
         form, /*known_success=*/false, SubmissionSource::FORM_SUBMISSION);
 
@@ -9931,8 +9930,8 @@
                                      ->second->form_parsed_timestamp();
     browser_autofill_manager_->OnTextFieldDidChange(
         form, form.fields.front(), gfx::RectF(),
-        parse_time + base::TimeDelta::FromMicroseconds(3));
-    test_clock.SetNowTicks(parse_time + base::TimeDelta::FromMicroseconds(17));
+        parse_time + base::Microseconds(3));
+    test_clock.SetNowTicks(parse_time + base::Microseconds(17));
     browser_autofill_manager_->OnFormSubmitted(
         form, /*known_success=*/false, SubmissionSource::FORM_SUBMISSION);
 
@@ -9959,8 +9958,8 @@
                                      .begin()
                                      ->second->form_parsed_timestamp();
     browser_autofill_manager_->OnDidFillAutofillFormData(
-        form, parse_time + base::TimeDelta::FromMicroseconds(5));
-    test_clock.SetNowTicks(parse_time + base::TimeDelta::FromMicroseconds(17));
+        form, parse_time + base::Microseconds(5));
+    test_clock.SetNowTicks(parse_time + base::Microseconds(17));
     browser_autofill_manager_->OnFormSubmitted(
         form, /*known_success=*/false, SubmissionSource::FORM_SUBMISSION);
 
@@ -9989,12 +9988,12 @@
                                      .begin()
                                      ->second->form_parsed_timestamp();
     browser_autofill_manager_->OnDidFillAutofillFormData(
-        form, parse_time + base::TimeDelta::FromMicroseconds(5));
+        form, parse_time + base::Microseconds(5));
 
     browser_autofill_manager_->OnTextFieldDidChange(
         form, form.fields.front(), gfx::RectF(),
-        parse_time + base::TimeDelta::FromMicroseconds(3));
-    test_clock.SetNowTicks(parse_time + base::TimeDelta::FromMicroseconds(17));
+        parse_time + base::Microseconds(3));
+    test_clock.SetNowTicks(parse_time + base::Microseconds(17));
     browser_autofill_manager_->OnFormSubmitted(
         form, /*known_success=*/false, SubmissionSource::FORM_SUBMISSION);
 
@@ -10022,11 +10021,11 @@
                                      ->second->form_parsed_timestamp();
     browser_autofill_manager_->OnFormsSeen(second_forms);
     browser_autofill_manager_->OnDidFillAutofillFormData(
-        form, parse_time + base::TimeDelta::FromMicroseconds(5));
+        form, parse_time + base::Microseconds(5));
     browser_autofill_manager_->OnTextFieldDidChange(
         form, form.fields.front(), gfx::RectF(),
-        parse_time + base::TimeDelta::FromMicroseconds(3));
-    test_clock.SetNowTicks(parse_time + base::TimeDelta::FromMicroseconds(17));
+        parse_time + base::Microseconds(3));
+    test_clock.SetNowTicks(parse_time + base::Microseconds(17));
     browser_autofill_manager_->OnFormSubmitted(
         form, /*known_success=*/false, SubmissionSource::FORM_SUBMISSION);
 
@@ -10055,7 +10054,7 @@
       if (kv.second->form_parsed_timestamp() > parse_time)
         parse_time = kv.second->form_parsed_timestamp();
     }
-    test_clock.SetNowTicks(parse_time + base::TimeDelta::FromMicroseconds(17));
+    test_clock.SetNowTicks(parse_time + base::Microseconds(17));
     browser_autofill_manager_->OnFormSubmitted(
         second_form, /*known_success=*/false,
         SubmissionSource::FORM_SUBMISSION);
@@ -10079,10 +10078,10 @@
     base::HistogramTester histogram_tester;
     AutofillMetrics::LogFormFillDurationFromInteraction(
         {FormType::kCreditCardForm}, true /* used_autofill */,
-        base::TimeDelta::FromMilliseconds(2000));
+        base::Milliseconds(2000));
     histogram_tester.ExpectTimeBucketCount(
         "Autofill.FillDuration.FromInteraction.WithAutofill.CreditCard",
-        base::TimeDelta::FromMilliseconds(2000), 1);
+        base::Milliseconds(2000), 1);
     histogram_tester.ExpectTotalCount(
         "Autofill.FillDuration.FromInteraction.WithoutAutofill.CreditCard", 0);
   }
@@ -10092,10 +10091,10 @@
     base::HistogramTester histogram_tester;
     AutofillMetrics::LogFormFillDurationFromInteraction(
         {FormType::kCreditCardForm}, false /* used_autofill */,
-        base::TimeDelta::FromMilliseconds(2000));
+        base::Milliseconds(2000));
     histogram_tester.ExpectTimeBucketCount(
         "Autofill.FillDuration.FromInteraction.WithoutAutofill.CreditCard",
-        base::TimeDelta::FromMilliseconds(2000), 1);
+        base::Milliseconds(2000), 1);
     histogram_tester.ExpectTotalCount(
         "Autofill.FillDuration.FromInteraction.WithAutofill.CreditCard", 0);
   }
@@ -10106,7 +10105,7 @@
     base::HistogramTester histogram_tester;
     AutofillMetrics::LogFormFillDurationFromInteraction(
         {FormType::kUnknownFormType}, false /* used_autofill */,
-        base::TimeDelta::FromMilliseconds(2000));
+        base::Milliseconds(2000));
     histogram_tester.ExpectTotalCount(
         "Autofill.FillDuration.FromInteraction.WithAutofill.CreditCard", 0);
     histogram_tester.ExpectTotalCount(
@@ -10120,10 +10119,10 @@
     base::HistogramTester histogram_tester;
     AutofillMetrics::LogFormFillDurationFromInteraction(
         {FormType::kAddressForm}, true /* used_autofill */,
-        base::TimeDelta::FromMilliseconds(2000));
+        base::Milliseconds(2000));
     histogram_tester.ExpectTimeBucketCount(
         "Autofill.FillDuration.FromInteraction.WithAutofill.Address",
-        base::TimeDelta::FromMilliseconds(2000), 1);
+        base::Milliseconds(2000), 1);
     histogram_tester.ExpectTotalCount(
         "Autofill.FillDuration.FromInteraction.WithoutAutofill.Address", 0);
   }
@@ -10133,10 +10132,10 @@
     base::HistogramTester histogram_tester;
     AutofillMetrics::LogFormFillDurationFromInteraction(
         {FormType::kAddressForm}, false /* used_autofill */,
-        base::TimeDelta::FromMilliseconds(2000));
+        base::Milliseconds(2000));
     histogram_tester.ExpectTimeBucketCount(
         "Autofill.FillDuration.FromInteraction.WithoutAutofill.Address",
-        base::TimeDelta::FromMilliseconds(2000), 1);
+        base::Milliseconds(2000), 1);
     histogram_tester.ExpectTotalCount(
         "Autofill.FillDuration.FromInteraction.WithAutofill.Address", 0);
   }
@@ -10147,7 +10146,7 @@
     base::HistogramTester histogram_tester;
     AutofillMetrics::LogFormFillDurationFromInteraction(
         {FormType::kUnknownFormType}, false /* used_autofill */,
-        base::TimeDelta::FromMilliseconds(2000));
+        base::Milliseconds(2000));
     histogram_tester.ExpectTotalCount(
         "Autofill.FillDuration.FromInteraction.WithAutofill.Address", 0);
     histogram_tester.ExpectTotalCount(
@@ -10161,10 +10160,10 @@
     base::HistogramTester histogram_tester;
     AutofillMetrics::LogFormFillDurationFromInteraction(
         {FormType::kPasswordForm}, true /* used_autofill */,
-        base::TimeDelta::FromMilliseconds(2000));
+        base::Milliseconds(2000));
     histogram_tester.ExpectTimeBucketCount(
         "Autofill.FillDuration.FromInteraction.WithAutofill.Password",
-        base::TimeDelta::FromMilliseconds(2000), 1);
+        base::Milliseconds(2000), 1);
     histogram_tester.ExpectTotalCount(
         "Autofill.FillDuration.FromInteraction.WithoutAutofill.Password", 0);
   }
@@ -10174,10 +10173,10 @@
     base::HistogramTester histogram_tester;
     AutofillMetrics::LogFormFillDurationFromInteraction(
         {FormType::kPasswordForm}, false /* used_autofill */,
-        base::TimeDelta::FromMilliseconds(2000));
+        base::Milliseconds(2000));
     histogram_tester.ExpectTimeBucketCount(
         "Autofill.FillDuration.FromInteraction.WithoutAutofill.Password",
-        base::TimeDelta::FromMilliseconds(2000), 1);
+        base::Milliseconds(2000), 1);
     histogram_tester.ExpectTotalCount(
         "Autofill.FillDuration.FromInteraction.WithAutofill.Password", 0);
   }
@@ -10188,7 +10187,7 @@
     base::HistogramTester histogram_tester;
     AutofillMetrics::LogFormFillDurationFromInteraction(
         {FormType::kUnknownFormType}, false /* used_autofill */,
-        base::TimeDelta::FromMilliseconds(2000));
+        base::Milliseconds(2000));
     histogram_tester.ExpectTotalCount(
         "Autofill.FillDuration.FromInteraction.WithAutofill.Password", 0);
     histogram_tester.ExpectTotalCount(
@@ -10202,10 +10201,10 @@
     base::HistogramTester histogram_tester;
     AutofillMetrics::LogFormFillDurationFromInteraction(
         {FormType::kUnknownFormType}, true /* used_autofill */,
-        base::TimeDelta::FromMilliseconds(2000));
+        base::Milliseconds(2000));
     histogram_tester.ExpectTimeBucketCount(
         "Autofill.FillDuration.FromInteraction.WithAutofill.Unknown",
-        base::TimeDelta::FromMilliseconds(2000), 1);
+        base::Milliseconds(2000), 1);
     histogram_tester.ExpectTotalCount(
         "Autofill.FillDuration.FromInteraction.WithoutAutofill.Unknown", 0);
   }
@@ -10215,10 +10214,10 @@
     base::HistogramTester histogram_tester;
     AutofillMetrics::LogFormFillDurationFromInteraction(
         {FormType::kUnknownFormType}, false /* used_autofill */,
-        base::TimeDelta::FromMilliseconds(2000));
+        base::Milliseconds(2000));
     histogram_tester.ExpectTimeBucketCount(
         "Autofill.FillDuration.FromInteraction.WithoutAutofill.Unknown",
-        base::TimeDelta::FromMilliseconds(2000), 1);
+        base::Milliseconds(2000), 1);
     histogram_tester.ExpectTotalCount(
         "Autofill.FillDuration.FromInteraction.WithAutofill.Unknown", 0);
   }
@@ -10229,7 +10228,7 @@
     base::HistogramTester histogram_tester;
     AutofillMetrics::LogFormFillDurationFromInteraction(
         {FormType::kAddressForm}, false /* used_autofill */,
-        base::TimeDelta::FromMilliseconds(2000));
+        base::Milliseconds(2000));
     histogram_tester.ExpectTotalCount(
         "Autofill.FillDuration.FromInteraction.WithAutofill.Unknown", 0);
     histogram_tester.ExpectTotalCount(
@@ -10244,19 +10243,19 @@
     AutofillMetrics::LogFormFillDurationFromInteraction(
         {FormType::kCreditCardForm, FormType::kAddressForm,
          FormType::kPasswordForm, FormType::kUnknownFormType},
-        true /* used_autofill */, base::TimeDelta::FromMilliseconds(2000));
+        true /* used_autofill */, base::Milliseconds(2000));
     histogram_tester.ExpectTimeBucketCount(
         "Autofill.FillDuration.FromInteraction.WithAutofill.CreditCard",
-        base::TimeDelta::FromMilliseconds(2000), 1);
+        base::Milliseconds(2000), 1);
     histogram_tester.ExpectTimeBucketCount(
         "Autofill.FillDuration.FromInteraction.WithAutofill.Address",
-        base::TimeDelta::FromMilliseconds(2000), 1);
+        base::Milliseconds(2000), 1);
     histogram_tester.ExpectTimeBucketCount(
         "Autofill.FillDuration.FromInteraction.WithAutofill.Password",
-        base::TimeDelta::FromMilliseconds(2000), 1);
+        base::Milliseconds(2000), 1);
     histogram_tester.ExpectTimeBucketCount(
         "Autofill.FillDuration.FromInteraction.WithAutofill.Unknown",
-        base::TimeDelta::FromMilliseconds(2000), 1);
+        base::Milliseconds(2000), 1);
   }
 
   // Should log time duration without autofill for all forms.
@@ -10265,19 +10264,19 @@
     AutofillMetrics::LogFormFillDurationFromInteraction(
         {FormType::kCreditCardForm, FormType::kAddressForm,
          FormType::kPasswordForm, FormType::kUnknownFormType},
-        false /* used_autofill */, base::TimeDelta::FromMilliseconds(2000));
+        false /* used_autofill */, base::Milliseconds(2000));
     histogram_tester.ExpectTimeBucketCount(
         "Autofill.FillDuration.FromInteraction.WithoutAutofill.CreditCard",
-        base::TimeDelta::FromMilliseconds(2000), 1);
+        base::Milliseconds(2000), 1);
     histogram_tester.ExpectTimeBucketCount(
         "Autofill.FillDuration.FromInteraction.WithoutAutofill.Address",
-        base::TimeDelta::FromMilliseconds(2000), 1);
+        base::Milliseconds(2000), 1);
     histogram_tester.ExpectTimeBucketCount(
         "Autofill.FillDuration.FromInteraction.WithoutAutofill.Password",
-        base::TimeDelta::FromMilliseconds(2000), 1);
+        base::Milliseconds(2000), 1);
     histogram_tester.ExpectTimeBucketCount(
         "Autofill.FillDuration.FromInteraction.WithoutAutofill.Unknown",
-        base::TimeDelta::FromMilliseconds(2000), 1);
+        base::Milliseconds(2000), 1);
   }
 }
 
@@ -11619,7 +11618,7 @@
     base::TimeTicks parse_time = browser_autofill_manager_->form_structures()
                                      .begin()
                                      ->second->form_parsed_timestamp();
-    test_clock.SetNowTicks(parse_time + base::TimeDelta::FromMicroseconds(17));
+    test_clock.SetNowTicks(parse_time + base::Microseconds(17));
     browser_autofill_manager_->OnFormSubmitted(
         form, /*known_success=*/false, SubmissionSource::FORM_SUBMISSION);
 
@@ -11637,11 +11636,11 @@
                                      .begin()
                                      ->second->form_parsed_timestamp();
     browser_autofill_manager_->OnDidFillAutofillFormData(
-        form, parse_time + base::TimeDelta::FromMicroseconds(5));
+        form, parse_time + base::Microseconds(5));
     browser_autofill_manager_->OnTextFieldDidChange(
         form, form.fields.front(), gfx::RectF(),
-        parse_time + base::TimeDelta::FromMicroseconds(3));
-    test_clock.SetNowTicks(parse_time + base::TimeDelta::FromMicroseconds(17));
+        parse_time + base::Microseconds(3));
+    test_clock.SetNowTicks(parse_time + base::Microseconds(17));
     browser_autofill_manager_->OnFormSubmitted(
         form, /*known_success=*/false, SubmissionSource::FORM_SUBMISSION);
 
diff --git a/components/autofill/core/browser/autofill_profile_import_process_unittest.cc b/components/autofill/core/browser/autofill_profile_import_process_unittest.cc
index 934197e..bf766da 100644
--- a/components/autofill/core/browser/autofill_profile_import_process_unittest.cc
+++ b/components/autofill/core/browser/autofill_profile_import_process_unittest.cc
@@ -72,7 +72,7 @@
 
   // Advance the test clock to make sure that the modification date of the new
   // profile gets updated.
-  test_clock.Advance(base::TimeDelta::FromDays(1));
+  test_clock.Advance(base::Days(1));
   base::Time current_time = AutofillClock::Now();
 
   // Create the import process for the scenario that there aren't any other
@@ -261,7 +261,7 @@
 
   // Set a modification date and subsequently advance the test clock.
   mergeable_profile.set_modification_date(AutofillClock::Now());
-  test_clock.Advance(base::TimeDelta::FromDays(1));
+  test_clock.Advance(base::Days(1));
   base::Time current_time = AutofillClock::Now();
 
   std::vector<AutofillProfile> existing_profiles = {mergeable_profile};
@@ -313,7 +313,7 @@
 
   // Set a modification date and subsequently advance the test clock.
   mergeable_profile.set_modification_date(AutofillClock::Now());
-  test_clock.Advance(base::TimeDelta::FromDays(1));
+  test_clock.Advance(base::Days(1));
   base::Time current_time = AutofillClock::Now();
 
   std::vector<AutofillProfile> existing_profiles = {mergeable_profile};
@@ -406,7 +406,7 @@
   // changed.
   mergeable_profile.set_modification_date(AutofillClock::Now());
   base::Time earlier_time = AutofillClock::Now();
-  test_clock.Advance(base::TimeDelta::FromDays(1));
+  test_clock.Advance(base::Days(1));
 
   std::vector<AutofillProfile> existing_profiles = {mergeable_profile};
   personal_data_manager_.SetProfiles(&existing_profiles);
@@ -457,7 +457,7 @@
 
   // Set a modification date and subsequently advance the test clock.
   updateable_profile.set_modification_date(AutofillClock::Now());
-  test_clock.Advance(base::TimeDelta::FromDays(1));
+  test_clock.Advance(base::Days(1));
   base::Time current_time = AutofillClock::Now();
 
   std::vector<AutofillProfile> existing_profiles = {updateable_profile};
@@ -699,7 +699,7 @@
 
   // Set a modification date and subsequently advance the test clock.
   updateable_profile.set_modification_date(AutofillClock::Now());
-  test_clock.Advance(base::TimeDelta::FromDays(1));
+  test_clock.Advance(base::Days(1));
   base::Time current_time = AutofillClock::Now();
 
   std::vector<AutofillProfile> existing_profiles = {updateable_profile};
diff --git a/components/autofill/core/browser/autofill_profile_save_strike_database.cc b/components/autofill/core/browser/autofill_profile_save_strike_database.cc
index f93fb3f..75eeb81 100644
--- a/components/autofill/core/browser/autofill_profile_save_strike_database.cc
+++ b/components/autofill/core/browser/autofill_profile_save_strike_database.cc
@@ -47,7 +47,7 @@
 absl::optional<base::TimeDelta>
 AutofillProfileSaveStrikeDatabase::GetExpiryTimeDelta() const {
   // Expiry time is 180 days by default.
-  return base::TimeDelta::FromDays(
+  return base::Days(
       features::kAutofillAutoBlockSaveAddressProfilePromptExpirationDays.Get());
 }
 
@@ -83,8 +83,7 @@
     }
 
     base::Time last_update = base::Time::FromDeltaSinceWindowsEpoch(
-        base::TimeDelta::FromMicroseconds(
-            entry.second.last_update_timestamp()));
+        base::Microseconds(entry.second.last_update_timestamp()));
 
     // Check if the time stamp of the record is within deletion range and if the
     // domain is deleted.
diff --git a/components/autofill/core/browser/autofill_profile_save_strike_database_unittest.cc b/components/autofill/core/browser/autofill_profile_save_strike_database_unittest.cc
index 99fb838..8c4ca31 100644
--- a/components/autofill/core/browser/autofill_profile_save_strike_database_unittest.cc
+++ b/components/autofill/core/browser/autofill_profile_save_strike_database_unittest.cc
@@ -119,9 +119,9 @@
 
   base::Time start_time = AutofillClock::Now();
   strike_database_->AddStrike(test_host1);
-  test_autofill_clock.Advance(base::TimeDelta::FromMinutes(1));
+  test_autofill_clock.Advance(base::Minutes(1));
   base::Time end_time = AutofillClock::Now();
-  test_autofill_clock.Advance(base::TimeDelta::FromMinutes(1));
+  test_autofill_clock.Advance(base::Minutes(1));
 
   // Now update the time stamp of this entry by adding another strike.
   // By this, the entry should not be deleted.
@@ -139,10 +139,10 @@
   test_autofill_clock.SetNow(AutofillClock::Now());
 
   strike_database_->AddStrike(test_host1);
-  test_autofill_clock.Advance(base::TimeDelta::FromMinutes(1));
+  test_autofill_clock.Advance(base::Minutes(1));
 
   base::Time start_time = AutofillClock::Now();
-  test_autofill_clock.Advance(base::TimeDelta::FromMinutes(1));
+  test_autofill_clock.Advance(base::Minutes(1));
   base::Time end_time = AutofillClock::Now();
 
   strike_database_->ClearStrikesByOriginAndTimeInternal(delete_all_hosts_set,
diff --git a/components/autofill/core/browser/autofill_profile_update_strike_database.cc b/components/autofill/core/browser/autofill_profile_update_strike_database.cc
index f08d69f2..6d75829 100644
--- a/components/autofill/core/browser/autofill_profile_update_strike_database.cc
+++ b/components/autofill/core/browser/autofill_profile_update_strike_database.cc
@@ -47,7 +47,7 @@
 absl::optional<base::TimeDelta>
 AutofillProfileUpdateStrikeDatabase::GetExpiryTimeDelta() const {
   // Expiry time is 180 days by default.
-  return base::TimeDelta::FromDays(
+  return base::Days(
       features::kAutofillAutoBlockUpdateAddressProfilePromptExpirationDays
           .Get());
 }
diff --git a/components/autofill/core/browser/autofill_profile_validator.cc b/components/autofill/core/browser/autofill_profile_validator.cc
index 898069ea..6cd26a8 100644
--- a/components/autofill/core/browser/autofill_profile_validator.cc
+++ b/components/autofill/core/browser/autofill_profile_validator.cc
@@ -46,7 +46,7 @@
                              weak_factory_.GetWeakPtr()));
   base::SequencedTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE, on_timeout_.callback(),
-      base::TimeDelta::FromSeconds(kRulesLoadingTimeoutSeconds));
+      base::Seconds(kRulesLoadingTimeoutSeconds));
 }
 
 AutofillProfileValidator::ValidationRequest::~ValidationRequest() {
diff --git a/components/autofill/core/browser/autofill_suggestion_generator_unittest.cc b/components/autofill/core/browser/autofill_suggestion_generator_unittest.cc
index 0d1237a..91728ab 100644
--- a/components/autofill/core/browser/autofill_suggestion_generator_unittest.cc
+++ b/components/autofill/core/browser/autofill_suggestion_generator_unittest.cc
@@ -81,7 +81,7 @@
   all_card_data.reserve(kNumCards);
   all_card_ptrs.reserve(kNumCards);
   for (size_t i = 0; i < kNumCards; ++i) {
-    constexpr base::TimeDelta k30Days = base::TimeDelta::FromDays(30);
+    constexpr base::TimeDelta k30Days = base::Days(30);
     all_card_data.emplace_back(base::GenerateGUID(), "https://example.com");
     if (i < 5) {
       all_card_data.back().set_use_date(kNow - (i + i + 1) * k30Days);
@@ -109,7 +109,7 @@
     // Filter the cards while capturing histograms.
     base::HistogramTester histogram_tester;
     AutofillSuggestionGenerator::RemoveExpiredCreditCardsNotUsedSinceTimestamp(
-        kNow, kNow - base::TimeDelta::FromDays(175), &cards);
+        kNow, kNow - base::Days(175), &cards);
 
     // Validate that we get the expected filtered cards and histograms.
     EXPECT_EQ(expected_cards, cards);
@@ -131,7 +131,7 @@
     // Filter the cards while capturing histograms.
     base::HistogramTester histogram_tester;
     AutofillSuggestionGenerator::RemoveExpiredCreditCardsNotUsedSinceTimestamp(
-        kNow, kNow - base::TimeDelta::FromDays(115), &cards);
+        kNow, kNow - base::Days(115), &cards);
 
     // Validate that we get the expected filtered cards and histograms.
     EXPECT_EQ(expected_cards, cards);
@@ -143,7 +143,7 @@
   // days ago and are expired.
   {
     // A handy constant.
-    const base::Time k115DaysAgo = kNow - base::TimeDelta::FromDays(115);
+    const base::Time k115DaysAgo = kNow - base::Days(115);
 
     // Created a shuffled primary copy of the card pointers.
     std::vector<CreditCard*> shuffled_cards(all_card_ptrs);
@@ -193,7 +193,7 @@
     // Filter the cards while capturing histograms.
     base::HistogramTester histogram_tester;
     AutofillSuggestionGenerator::RemoveExpiredCreditCardsNotUsedSinceTimestamp(
-        kNow, kNow - base::TimeDelta::FromDays(720), &cards);
+        kNow, kNow - base::Days(720), &cards);
 
     // Validate that we get the expected filtered cards and histograms.
     EXPECT_EQ(all_card_ptrs, cards);
@@ -212,7 +212,7 @@
     // Filter the cards while capturing histograms.
     base::HistogramTester histogram_tester;
     AutofillSuggestionGenerator::RemoveExpiredCreditCardsNotUsedSinceTimestamp(
-        kNow, kNow + base::TimeDelta::FromDays(1), &cards);
+        kNow, kNow + base::Days(1), &cards);
 
     // Validate that we get the expected filtered cards and histograms.
     EXPECT_TRUE(cards.empty());
diff --git a/components/autofill/core/browser/autofill_test_utils.cc b/components/autofill/core/browser/autofill_test_utils.cc
index f9d2b25..03152f8 100644
--- a/components/autofill/core/browser/autofill_test_utils.cc
+++ b/components/autofill/core/browser/autofill_test_utils.cc
@@ -620,7 +620,7 @@
   AutofillOfferData data;
   data.offer_id = 111;
   // Sets the expiry to be 45 days later.
-  data.expiry = AutofillClock::Now() + base::TimeDelta::FromDays(45);
+  data.expiry = AutofillClock::Now() + base::Days(45);
   data.offer_details_url = GURL("http://www.example1.com");
   data.merchant_origins.emplace_back("http://www.example1.com");
   data.display_strings.value_prop_text = "Get 5% off your purchase";
@@ -636,7 +636,7 @@
   AutofillOfferData data;
   data.offer_id = 222;
   // Sets the expiry to be 40 days later.
-  data.expiry = AutofillClock::Now() + base::TimeDelta::FromDays(40);
+  data.expiry = AutofillClock::Now() + base::Days(40);
   data.offer_details_url = GURL("http://www.example2.com");
   data.merchant_origins.emplace_back("http://www.example2.com");
   data.display_strings.value_prop_text = "Get $10 off your purchase";
@@ -652,9 +652,8 @@
   AutofillOfferData data;
   data.offer_id = 333;
   // Sets the expiry to be later if not expired, or earlier if expired.
-  data.expiry = is_expired
-                    ? AutofillClock::Now() - base::TimeDelta::FromDays(1)
-                    : AutofillClock::Now() + base::TimeDelta::FromDays(35);
+  data.expiry = is_expired ? AutofillClock::Now() - base::Days(1)
+                           : AutofillClock::Now() + base::Days(35);
   data.offer_details_url = GURL("http://www.example.com");
   data.merchant_origins.emplace_back(origin);
   data.display_strings.value_prop_text = "5% off on shoes. Up to $50.";
diff --git a/components/autofill/core/browser/browser_autofill_manager.cc b/components/autofill/core/browser/browser_autofill_manager.cc
index d4f475a..94bad7f2 100644
--- a/components/autofill/core/browser/browser_autofill_manager.cc
+++ b/components/autofill/core/browser/browser_autofill_manager.cc
@@ -2039,8 +2039,7 @@
 
     // Start a new timer to trigger refill.
     filling_context->on_refill_timer.Start(
-        FROM_HERE,
-        base::TimeDelta::FromMilliseconds(kWaitTimeForDynamicFormsMs),
+        FROM_HERE, base::Milliseconds(kWaitTimeForDynamicFormsMs),
         base::BindRepeating(&BrowserAutofillManager::TriggerRefill,
                             weak_ptr_factory_.GetWeakPtr(), form));
   }
diff --git a/components/autofill/core/browser/browser_autofill_manager_unittest.cc b/components/autofill/core/browser/browser_autofill_manager_unittest.cc
index 23e94df..cf65e67 100644
--- a/components/autofill/core/browser/browser_autofill_manager_unittest.cc
+++ b/components/autofill/core/browser/browser_autofill_manager_unittest.cc
@@ -751,8 +751,7 @@
                             "04", "2999", "1");
     credit_card1.set_guid("00000000-0000-0000-0000-000000000004");
     credit_card1.set_use_count(10);
-    credit_card1.set_use_date(AutofillClock::Now() -
-                              base::TimeDelta::FromDays(5));
+    credit_card1.set_use_date(AutofillClock::Now() - base::Days(5));
     personal_data_.AddCreditCard(credit_card1);
 
     CreditCard credit_card2;
@@ -761,8 +760,7 @@
                             "10", "2998", "1");
     credit_card2.set_guid("00000000-0000-0000-0000-000000000005");
     credit_card2.set_use_count(5);
-    credit_card2.set_use_date(AutofillClock::Now() -
-                              base::TimeDelta::FromDays(4));
+    credit_card2.set_use_date(AutofillClock::Now() - base::Days(4));
     personal_data_.AddCreditCard(credit_card2);
 
     CreditCard credit_card3;
@@ -2060,8 +2058,7 @@
                           "5231567890123456",  // Mastercard
                           "05", "2999", "1");
   credit_card.set_guid("00000000-0000-0000-0000-000000000007");
-  credit_card.set_use_date(AutofillClock::Now() -
-                           base::TimeDelta::FromDays(15));
+  credit_card.set_use_date(AutofillClock::Now() - base::Days(15));
   personal_data_.AddCreditCard(credit_card);
 
   // Set up our form data.
@@ -2152,16 +2149,14 @@
                           "2010", "1");
   credit_card1.set_guid("00000000-0000-0000-0000-000000000002");
   credit_card1.set_use_count(300);
-  credit_card1.set_use_date(AutofillClock::Now() -
-                            base::TimeDelta::FromDays(10));
+  credit_card1.set_use_date(AutofillClock::Now() - base::Days(10));
   personal_data_.AddCreditCard(credit_card1);
 
   // Add an expired card with a lower frecency score.
   CreditCard credit_card2("1141084B-72D7-4B73-90CF-3D6AC154673B",
                           test::kEmptyOrigin);
   credit_card2.set_use_count(3);
-  credit_card2.set_use_date(AutofillClock::Now() -
-                            base::TimeDelta::FromDays(1));
+  credit_card2.set_use_date(AutofillClock::Now() - base::Days(1));
   test::SetCreditCardInfo(&credit_card2, "John Dillinger",
                           "4234567890123456" /* Visa */, "01", "2011", "1");
   credit_card2.set_guid("00000000-0000-0000-0000-000000000003");
@@ -2225,14 +2220,14 @@
   CreditCard credit_card1(CreditCard::FULL_SERVER_CARD, "c789");
   test::SetCreditCardInfo(&credit_card1, "Clyde Barrow",
                           "4234567890123456" /* Visa */, "04", "2010", "1");
-  credit_card1.set_use_date(now - base::TimeDelta::FromDays(10));
+  credit_card1.set_use_date(now - base::Days(10));
   credit_card1.set_guid("00000000-0000-0000-0000-000000000001");
   personal_data_.AddServerCreditCard(credit_card1);
 
   // Add an expired masked card last used 180 days ago.
   CreditCard credit_card2(CreditCard::MASKED_SERVER_CARD, "c987");
   test::SetCreditCardInfo(&credit_card2, "Jane Doe", "6543", "01", "2010", "1");
-  credit_card2.set_use_date(now - base::TimeDelta::FromDays(181));
+  credit_card2.set_use_date(now - base::Days(181));
   credit_card2.SetNetworkForMaskedCard(kVisaCard);
   credit_card2.set_guid("00000000-0000-0000-0000-000000000002");
   personal_data_.AddServerCreditCard(credit_card2);
@@ -2240,7 +2235,7 @@
   // Add an expired local card last used 180 days ago.
   CreditCard credit_card3("1141084B-72D7-4B73-90CF-3D6AC154673B",
                           test::kEmptyOrigin);
-  credit_card3.set_use_date(now - base::TimeDelta::FromDays(182));
+  credit_card3.set_use_date(now - base::Days(182));
   test::SetCreditCardInfo(&credit_card3, "John Dillinger",
                           "378282246310005" /* American Express */, "01",
                           "2010", "1");
@@ -2884,7 +2879,7 @@
   }
 
   // Advance time and possibly submit the form.
-  base::TimeDelta time_delta = base::TimeDelta::FromSeconds(42);
+  base::TimeDelta time_delta = base::Seconds(42);
   clock.Advance(time_delta);
   if (params.submit_form)
     FormSubmitted(form);
@@ -9995,8 +9990,7 @@
                             "378282246310005" /* American Express */, "04",
                             "2999", "1");
     local_card.set_use_count(3);
-    local_card.set_use_date(AutofillClock::Now() -
-                            base::TimeDelta::FromDays(1));
+    local_card.set_use_date(AutofillClock::Now() - base::Days(1));
     local_card.SetNickname(base::UTF8ToUTF16(local_nickname_));
     local_card.set_guid("00000000-0000-0000-0000-000000000001");
     return local_card;
diff --git a/components/autofill/core/browser/data_model/autofill_data_model_unittest.cc b/components/autofill/core/browser/data_model/autofill_data_model_unittest.cc
index 11be576..b57acfb 100644
--- a/components/autofill/core/browser/data_model/autofill_data_model_unittest.cc
+++ b/components/autofill/core/browser/data_model/autofill_data_model_unittest.cc
@@ -113,7 +113,7 @@
   EXPECT_FALSE(model.IsDeletable());
 
   test_clock.SetNow(kArbitraryTime + kDisusedDataModelDeletionTimeDelta +
-                    base::TimeDelta::FromDays(1));
+                    base::Days(1));
   EXPECT_TRUE(model.IsDeletable());
 }
 
@@ -161,24 +161,22 @@
                                        LESS},
         // Same frequency, model_a is more recent.
         HasGreaterFrecencyThanTestCase{"guid_a", 8, now, "guid_b", 8,
-                                       now - base::TimeDelta::FromDays(1),
-                                       GREATER},
+                                       now - base::Days(1), GREATER},
         // Same frequency, model_a is less recent.
-        HasGreaterFrecencyThanTestCase{"guid_a", 8,
-                                       now - base::TimeDelta::FromDays(1),
+        HasGreaterFrecencyThanTestCase{"guid_a", 8, now - base::Days(1),
                                        "guid_b", 8, now, LESS},
         // Special case: occasional profiles. A profile with relatively low
         // usage and used recently (model_b) should not rank higher than a more
         // used profile that has been unused for a short amount of time
         // (model_a).
-        HasGreaterFrecencyThanTestCase{
-            "guid_a", 300, now - base::TimeDelta::FromDays(5), "guid_b", 10,
-            now - base::TimeDelta::FromDays(1), GREATER},
+        HasGreaterFrecencyThanTestCase{"guid_a", 300, now - base::Days(5),
+                                       "guid_b", 10, now - base::Days(1),
+                                       GREATER},
         // Special case: moving. A new profile used frequently (model_b) should
         // rank higher than a profile with more usage that has not been used for
         // a while (model_a).
-        HasGreaterFrecencyThanTestCase{
-            "guid_a", 300, now - base::TimeDelta::FromDays(15), "guid_b", 10,
-            now - base::TimeDelta::FromDays(1), LESS}));
+        HasGreaterFrecencyThanTestCase{"guid_a", 300, now - base::Days(15),
+                                       "guid_b", 10, now - base::Days(1),
+                                       LESS}));
 
 }  // namespace autofill
diff --git a/components/autofill/core/browser/data_model/autofill_profile_comparator_unittest.cc b/components/autofill/core/browser/data_model/autofill_profile_comparator_unittest.cc
index 23c56df7..6fbfc29d 100644
--- a/components/autofill/core/browser/data_model/autofill_profile_comparator_unittest.cc
+++ b/components/autofill/core/browser/data_model/autofill_profile_comparator_unittest.cc
@@ -913,13 +913,13 @@
   AutofillProfile p1 = CreateProfileWithName(name1);
   p1.set_use_date(AutofillClock::Now());
   AutofillProfile p2 = CreateProfileWithName(name2);
-  p2.set_use_date(AutofillClock::Now() - base::TimeDelta::FromHours(1));
+  p2.set_use_date(AutofillClock::Now() - base::Hours(1));
   AutofillProfile p3 = CreateProfileWithName(name3);
-  p3.set_use_date(AutofillClock::Now() - base::TimeDelta::FromHours(2));
+  p3.set_use_date(AutofillClock::Now() - base::Hours(2));
   AutofillProfile p4 = CreateProfileWithName(name4);
-  p4.set_use_date(AutofillClock::Now() - base::TimeDelta::FromHours(3));
+  p4.set_use_date(AutofillClock::Now() - base::Hours(3));
   AutofillProfile p5 = CreateProfileWithName(name5);
-  p5.set_use_date(AutofillClock::Now() - base::TimeDelta::FromHours(4));
+  p5.set_use_date(AutofillClock::Now() - base::Hours(4));
 
   AutofillProfile p6 = CreateProfileWithName(name6);
   AutofillProfile p7 = CreateProfileWithName(name7);
@@ -970,7 +970,7 @@
   EmailInfo email_b;
   email_b.SetRawInfo(EMAIL_ADDRESS, kEmailB16);
   AutofillProfile profile_b = CreateProfileWithEmail(kEmailB);
-  profile_b.set_use_date(profile_a.use_date() + base::TimeDelta::FromDays(1));
+  profile_b.set_use_date(profile_a.use_date() + base::Days(1));
 
   MergeEmailAddressesAndExpect(profile_a, profile_a, email_a);
   MergeEmailAddressesAndExpect(profile_b, profile_b, email_b);
@@ -998,14 +998,14 @@
   CompanyInfo company_b;
   company_b.SetRawInfo(COMPANY_NAME, kCompanyB16);
   AutofillProfile profile_b = CreateProfileWithCompanyName(kCompanyB);
-  profile_b.set_use_date(profile_a.use_date() + base::TimeDelta::FromDays(1));
+  profile_b.set_use_date(profile_a.use_date() + base::Days(1));
 
   // Company Name C is the most complete. Even though it has the earliest use
   // date, it will be preferred to the other two.
   CompanyInfo company_c;
   company_c.SetRawInfo(COMPANY_NAME, kCompanyC16);
   AutofillProfile profile_c = CreateProfileWithCompanyName(kCompanyC);
-  profile_c.set_use_date(profile_a.use_date() - base::TimeDelta::FromDays(1));
+  profile_c.set_use_date(profile_a.use_date() - base::Days(1));
 
   // Company Name D is in the format of a birthyear, invalid and non-verified.
   CompanyInfo company_d;
@@ -1209,7 +1209,7 @@
   AutofillProfile p2 = CreateProfileWithAddress(
       "1 Some Other Street", "Unit 3", "Carver City", "ca", "90210-1234", "us");
 
-  p2.set_use_date(p1.use_date() + base::TimeDelta::FromMinutes(1));
+  p2.set_use_date(p1.use_date() + base::Minutes(1));
   p2.SetRawInfo(autofill::ADDRESS_HOME_STREET_NAME, u"Some Other Street");
   p2.SetRawInfo(autofill::ADDRESS_HOME_DEPENDENT_STREET_NAME,
                 u"DependentStreetName2");
@@ -1242,7 +1242,7 @@
 
   AutofillProfile p2 = CreateProfileWithAddress(
       "6543, Bacon Rd", "", "Montreal", "QC", "hhh 999", "CA");
-  p2.set_use_date(p1.use_date() + base::TimeDelta::FromMinutes(1));
+  p2.set_use_date(p1.use_date() + base::Minutes(1));
   p2.SetRawInfo(autofill::ADDRESS_HOME_STREET_NAME, u"StreetName2");
   p2.SetRawInfo(autofill::ADDRESS_HOME_DEPENDENT_STREET_NAME,
                 u"DependentStreetName2");
@@ -1282,7 +1282,7 @@
   p2.SetRawInfo(autofill::ADDRESS_HOME_PREMISE_NAME, u"PremiseName2");
   p2.SetRawInfo(autofill::ADDRESS_HOME_SUBPREMISE, u"Subpremise2");
 
-  p2.set_use_date(p1.use_date() + base::TimeDelta::FromMinutes(1));
+  p2.set_use_date(p1.use_date() + base::Minutes(1));
 
   Address expected;
   expected.SetRawInfo(ADDRESS_HOME_LINE1, u"6543 CH BACON");
@@ -1306,7 +1306,7 @@
       "6543, Bacon Rd", "", "Montreal", "QC", "hhh 999", "CA");
   p2.SetRawInfo(ADDRESS_HOME_DEPENDENT_LOCALITY, u"Some Other String");
   p2.SetRawInfo(ADDRESS_HOME_SORTING_CODE, u"64205 Biarritz");
-  p2.set_use_date(p1.use_date() + base::TimeDelta::FromMinutes(1));
+  p2.set_use_date(p1.use_date() + base::Minutes(1));
 
   Address expected;
   expected.SetRawInfo(ADDRESS_HOME_LINE1, u"6543 CH BACON");
diff --git a/components/autofill/core/browser/data_model/autofill_profile_unittest.cc b/components/autofill/core/browser/data_model/autofill_profile_unittest.cc
index 07e6be71..540acf9 100644
--- a/components/autofill/core/browser/data_model/autofill_profile_unittest.cc
+++ b/components/autofill/core/browser/data_model/autofill_profile_unittest.cc
@@ -2334,7 +2334,7 @@
   const base::Time kArbitraryTime = base::Time::FromDoubleT(25000000000);
   TestAutofillClock test_clock;
   test_clock.SetNow(kArbitraryTime + kDisusedDataModelDeletionTimeDelta +
-                    base::TimeDelta::FromDays(1));
+                    base::Days(1));
 
   // Created a profile that has not been used since over the deletion threshold.
   AutofillProfile profile = test::GetFullProfile();
@@ -2502,7 +2502,7 @@
   profile_valid.set_use_count(10);
 
   const base::Time now = AutofillClock::Now();
-  const base::Time past = now - base::TimeDelta::FromDays(1);
+  const base::Time past = now - base::Days(1);
 
   profile_invalid.set_use_date(now);
   profile_valid.set_use_date(past);
diff --git a/components/autofill/core/browser/data_model/credit_card_unittest.cc b/components/autofill/core/browser/data_model/credit_card_unittest.cc
index be283a2..ff027d71 100644
--- a/components/autofill/core/browser/data_model/credit_card_unittest.cc
+++ b/components/autofill/core/browser/data_model/credit_card_unittest.cc
@@ -1318,7 +1318,7 @@
   const base::Time kArbitraryTime = base::Time::FromDoubleT(1000000000);
   TestAutofillClock test_clock;
   test_clock.SetNow(kArbitraryTime + kDisusedDataModelDeletionTimeDelta +
-                    base::TimeDelta::FromDays(1));
+                    base::Days(1));
 
   // Created a card that has not been used since over the deletion threshold.
   CreditCard card(base::GenerateGUID(), "https://www.example.com/");
@@ -1774,10 +1774,10 @@
   CreditCard::RecordType record_type;
   CreditCard::ServerStatus server_status;
 };
-  
-constexpr base::TimeDelta kCurrent = base::TimeDelta::FromDays(0);
-constexpr base::TimeDelta kOneYear = base::TimeDelta::FromDays(365);
-constexpr base::TimeDelta kOneMonth = base::TimeDelta::FromDays(31);
+
+constexpr base::TimeDelta kCurrent = base::Days(0);
+constexpr base::TimeDelta kOneYear = base::Days(365);
+constexpr base::TimeDelta kOneMonth = base::Days(31);
 
 void MonthAndYearFromDelta(const base::TimeDelta& time_delta,
                            int& month,
diff --git a/components/autofill/core/browser/data_model/test_data_creator.cc b/components/autofill/core/browser/data_model/test_data_creator.cc
index aae60b06a..48bc9bd7 100644
--- a/components/autofill/core/browser/data_model/test_data_creator.cc
+++ b/components/autofill/core/browser/data_model/test_data_creator.cc
@@ -20,14 +20,12 @@
 // Time delta to create test data.
 base::TimeDelta DeletableUseDateDelta(
     const base::TimeDelta& cc_deletion_delta) {
-  static base::TimeDelta delta =
-      cc_deletion_delta + base::TimeDelta::FromDays(5);
+  static base::TimeDelta delta = cc_deletion_delta + base::Days(5);
   return delta;
 }
 base::TimeDelta DeletableExpiryDateDelta(
     const base::TimeDelta& cc_deletion_delta) {
-  static base::TimeDelta delta =
-      cc_deletion_delta + base::TimeDelta::FromDays(45);
+  static base::TimeDelta delta = cc_deletion_delta + base::Days(45);
   return delta;
 }
 }  // namespace
@@ -78,8 +76,7 @@
 }
 
 AutofillProfile TestDataCreator::CreateBasicTestAddress() {
-  const base::Time use_date =
-      AutofillClock::Now() - base::TimeDelta::FromDays(20);
+  const base::Time use_date = AutofillClock::Now() - base::Days(20);
   AutofillProfile profile;
   profile.SetInfo(NAME_FULL, u"John McTester", app_locale_);
   profile.SetInfo(COMPANY_NAME, u"Test Inc.", app_locale_);
@@ -96,8 +93,7 @@
 }
 
 AutofillProfile TestDataCreator::CreateDisusedTestAddress() {
-  const base::Time use_date =
-      AutofillClock::Now() - base::TimeDelta::FromDays(185);
+  const base::Time use_date = AutofillClock::Now() - base::Days(185);
   AutofillProfile profile;
   profile.SetInfo(NAME_FULL, u"Polly Disused", app_locale_);
   profile.SetInfo(COMPANY_NAME,
@@ -119,8 +115,7 @@
 }
 
 AutofillProfile TestDataCreator::CreateDisusedDeletableTestAddress() {
-  const base::Time use_date =
-      AutofillClock::Now() - base::TimeDelta::FromDays(400);
+  const base::Time use_date = AutofillClock::Now() - base::Days(400);
   AutofillProfile profile;
   profile.SetInfo(NAME_FULL, u"Polly Deletable", app_locale_);
   profile.SetInfo(COMPANY_NAME,
@@ -144,9 +139,9 @@
 // Create a card expiring 500 days from now which was last used 10 days ago.
 CreditCard TestDataCreator::CreateBasicTestCreditCard() {
   const base::Time now = AutofillClock::Now();
-  const base::Time use_date = now - base::TimeDelta::FromDays(10);
+  const base::Time use_date = now - base::Days(10);
   base::Time::Exploded expiry_date;
-  (now + base::TimeDelta::FromDays(500)).LocalExplode(&expiry_date);
+  (now + base::Days(500)).LocalExplode(&expiry_date);
 
   CreditCard credit_card;
   credit_card.SetInfo(CREDIT_CARD_NAME_FULL, u"Alice Testerson", app_locale_);
@@ -159,9 +154,9 @@
 
 CreditCard TestDataCreator::CreateDisusedTestCreditCard() {
   const base::Time now = AutofillClock::Now();
-  const base::Time use_date = now - base::TimeDelta::FromDays(185);
+  const base::Time use_date = now - base::Days(185);
   base::Time::Exploded expiry_date;
-  (now - base::TimeDelta::FromDays(200)).LocalExplode(&expiry_date);
+  (now - base::Days(200)).LocalExplode(&expiry_date);
 
   CreditCard credit_card;
   credit_card.SetInfo(CREDIT_CARD_NAME_FULL, u"Bob Disused", app_locale_);
diff --git a/components/autofill/core/browser/geo/subkey_requester.cc b/components/autofill/core/browser/geo/subkey_requester.cc
index 6f1d7f6c..eb5711ae 100644
--- a/components/autofill/core/browser/geo/subkey_requester.cc
+++ b/components/autofill/core/browser/geo/subkey_requester.cc
@@ -41,8 +41,7 @@
         on_timeout_(base::BindOnce(&SubKeyRequest::OnRulesLoaded,
                                    base::Unretained(this))) {
     base::SequencedTaskRunnerHandle::Get()->PostDelayedTask(
-        FROM_HERE, on_timeout_.callback(),
-        base::TimeDelta::FromSeconds(timeout_seconds));
+        FROM_HERE, on_timeout_.callback(), base::Seconds(timeout_seconds));
   }
 
   SubKeyRequest(const SubKeyRequest&) = delete;
diff --git a/components/autofill/core/browser/metrics/form_event_logger_base.cc b/components/autofill/core/browser/metrics/form_event_logger_base.cc
index e7672cc..8bbffd4 100644
--- a/components/autofill/core/browser/metrics/form_event_logger_base.cc
+++ b/components/autofill/core/browser/metrics/form_event_logger_base.cc
@@ -395,18 +395,16 @@
           base::StrCat({"Autofill.Ablation.FillDurationSinceInteraction.",
                         form_type_name_.c_str(), ".Conditional",
                         conditional_ablation_group_string}),
-          *time_from_interaction_to_submission_,
-          base::TimeDelta::FromMilliseconds(100),
-          base::TimeDelta::FromMinutes(10), 50);
+          *time_from_interaction_to_submission_, base::Milliseconds(100),
+          base::Minutes(10), 50);
     }
     if (ablation_group_string) {
       base::UmaHistogramCustomTimes(
           base::StrCat({"Autofill.Ablation.FillDurationSinceInteraction.",
                         form_type_name_.c_str(), ".Unconditional",
                         ablation_group_string}),
-          *time_from_interaction_to_submission_,
-          base::TimeDelta::FromMilliseconds(100),
-          base::TimeDelta::FromMinutes(10), 50);
+          *time_from_interaction_to_submission_, base::Milliseconds(100),
+          base::Minutes(10), 50);
     }
   }
 }
diff --git a/components/autofill/core/browser/payments/autofill_offer_manager_unittest.cc b/components/autofill/core/browser/payments/autofill_offer_manager_unittest.cc
index 5f46f1c..12e6a0e8 100644
--- a/components/autofill/core/browser/payments/autofill_offer_manager_unittest.cc
+++ b/components/autofill/core/browser/payments/autofill_offer_manager_unittest.cc
@@ -82,9 +82,9 @@
     offer_data.offer_id = 4444;
     offer_data.offer_reward_amount = offer_reward_amount;
     if (expired) {
-      offer_data.expiry = AutofillClock::Now() - base::TimeDelta::FromDays(2);
+      offer_data.expiry = AutofillClock::Now() - base::Days(2);
     } else {
-      offer_data.expiry = AutofillClock::Now() + base::TimeDelta::FromDays(2);
+      offer_data.expiry = AutofillClock::Now() + base::Days(2);
     }
     offer_data.merchant_origins = std::move(merchant_origins);
     offer_data.eligible_instrument_id = {card.instrument_id()};
@@ -96,7 +96,7 @@
                                              GURL(kTestUrl)}) {
     AutofillOfferData offer_data;
     offer_data.offer_id = 5555;
-    offer_data.expiry = AutofillClock::Now() + base::TimeDelta::FromDays(2);
+    offer_data.expiry = AutofillClock::Now() + base::Days(2);
     offer_data.merchant_origins = std::move(merchant_origins);
     offer_data.offer_details_url = GURL(kOfferDetailsUrl);
     offer_data.promo_code = "5PCTOFFSHOES";
diff --git a/components/autofill/core/browser/payments/credit_card_access_manager.cc b/components/autofill/core/browser/payments/credit_card_access_manager.cc
index 510d021..e9fb934 100644
--- a/components/autofill/core/browser/payments/credit_card_access_manager.cc
+++ b/components/autofill/core/browser/payments/credit_card_access_manager.cc
@@ -256,7 +256,7 @@
       FROM_HERE,
       base::BindOnce(&CreditCardAccessManager::SignalCanFetchUnmaskDetails,
                      weak_ptr_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(delay_ms));
+      base::Milliseconds(delay_ms));
 }
 
 void CreditCardAccessManager::FetchCreditCard(
@@ -883,7 +883,7 @@
     ready_to_start_authentication_.OnEventOrTimeOut(
         base::BindOnce(&CreditCardAccessManager::OnStopWaitingForUnmaskDetails,
                        weak_ptr_factory_.GetWeakPtr()),
-        base::TimeDelta::FromMilliseconds(kUnmaskDetailsResponseTimeoutMs));
+        base::Milliseconds(kUnmaskDetailsResponseTimeoutMs));
   } else {
     GetAuthenticationType(
         IsFidoAuthEnabled(get_unmask_details_returned &&
diff --git a/components/autofill/core/browser/payments/credit_card_access_manager_unittest.cc b/components/autofill/core/browser/payments/credit_card_access_manager_unittest.cc
index 2db58a8e..322434f 100644
--- a/components/autofill/core/browser/payments/credit_card_access_manager_unittest.cc
+++ b/components/autofill/core/browser/payments/credit_card_access_manager_unittest.cc
@@ -1036,7 +1036,7 @@
 
       ResetFetchCreditCard();
       credit_card_access_manager_->PrepareToFetchCreditCard();
-      task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(4));
+      task_environment_.FastForwardBy(base::Seconds(4));
       WaitForCallbacks();
 
       credit_card_access_manager_->FetchCreditCard(local_card,
@@ -1057,7 +1057,7 @@
       credit_card_access_manager_->PrepareToFetchCreditCard();
       credit_card_access_manager_->FetchCreditCard(server_card,
                                                    accessor_->GetWeakPtr());
-      task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(4));
+      task_environment_.FastForwardBy(base::Seconds(4));
       WaitForCallbacks();
 
       histogram_tester.ExpectUniqueSample(
@@ -1132,7 +1132,7 @@
     // Mock a delayed response.
     InvokeDelayedGetUnmaskDetailsResponse();
 
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(4));
+    task_environment_.FastForwardBy(base::Seconds(4));
     WaitForCallbacks();
 
     histogram_tester.ExpectUniqueSample(
@@ -1154,7 +1154,7 @@
     credit_card_access_manager_->PrepareToFetchCreditCard();
     credit_card_access_manager_->FetchCreditCard(server_card,
                                                  accessor_->GetWeakPtr());
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(4));
+    task_environment_.FastForwardBy(base::Seconds(4));
     WaitForCallbacks();
 
     histogram_tester.ExpectUniqueSample(
diff --git a/components/autofill/core/browser/payments/credit_card_fido_authenticator.cc b/components/autofill/core/browser/payments/credit_card_fido_authenticator.cc
index dd1a9d5..d26d5bc8 100644
--- a/components/autofill/core/browser/payments/credit_card_fido_authenticator.cc
+++ b/components/autofill/core/browser/payments/credit_card_fido_authenticator.cc
@@ -565,8 +565,8 @@
 
   const auto* timeout = request_options.FindKeyOfType(
       "timeout_millis", base::Value::Type::INTEGER);
-  options->timeout = base::TimeDelta::FromMilliseconds(
-      timeout ? timeout->GetInt() : kWebAuthnTimeoutMs);
+  options->timeout =
+      base::Milliseconds(timeout ? timeout->GetInt() : kWebAuthnTimeoutMs);
 
   options->user_verification = UserVerificationRequirement::kRequired;
 
@@ -632,8 +632,8 @@
 
   const auto* timeout = creation_options.FindKeyOfType(
       "timeout_millis", base::Value::Type::INTEGER);
-  options->timeout = base::TimeDelta::FromMilliseconds(
-      timeout ? timeout->GetInt() : kWebAuthnTimeoutMs);
+  options->timeout =
+      base::Milliseconds(timeout ? timeout->GetInt() : kWebAuthnTimeoutMs);
 
   const auto* attestation =
       creation_options.FindStringKey("attestation_conveyance_preference");
diff --git a/components/autofill/core/browser/payments/credit_card_save_manager.cc b/components/autofill/core/browser/payments/credit_card_save_manager.cc
index 03e6639..7f44458 100644
--- a/components/autofill/core/browser/payments/credit_card_save_manager.cc
+++ b/components/autofill/core/browser/payments/credit_card_save_manager.cc
@@ -582,7 +582,7 @@
     payments::PaymentsClient::UploadRequestDetails* upload_request) {
   std::vector<AutofillProfile> candidate_profiles;
   const base::Time now = AutofillClock::Now();
-  const base::TimeDelta fifteen_minutes = base::TimeDelta::FromMinutes(15);
+  const base::TimeDelta fifteen_minutes = base::Minutes(15);
   // Reset |upload_decision_metrics_| to begin logging detected problems.
   upload_decision_metrics_ = 0;
   bool has_profile = false;
diff --git a/components/autofill/core/browser/payments/credit_card_save_strike_database.cc b/components/autofill/core/browser/payments/credit_card_save_strike_database.cc
index 8e42e62b..3cd1c40 100644
--- a/components/autofill/core/browser/payments/credit_card_save_strike_database.cc
+++ b/components/autofill/core/browser/payments/credit_card_save_strike_database.cc
@@ -27,7 +27,7 @@
 absl::optional<base::TimeDelta>
 CreditCardSaveStrikeDatabase::GetExpiryTimeDelta() const {
   // Expiry time is 6 months.
-  return base::TimeDelta::FromDays(183);
+  return base::Days(183);
 }
 
 bool CreditCardSaveStrikeDatabase::UniqueIdsRequired() const {
diff --git a/components/autofill/core/browser/payments/fido_authentication_strike_database.cc b/components/autofill/core/browser/payments/fido_authentication_strike_database.cc
index 41c85091..e12d273 100644
--- a/components/autofill/core/browser/payments/fido_authentication_strike_database.cc
+++ b/components/autofill/core/browser/payments/fido_authentication_strike_database.cc
@@ -33,7 +33,7 @@
 absl::optional<base::TimeDelta>
 FidoAuthenticationStrikeDatabase::GetExpiryTimeDelta() const {
   // Expiry time is six months.
-  return base::TimeDelta::FromDays(183);
+  return base::Days(183);
 }
 
 bool FidoAuthenticationStrikeDatabase::UniqueIdsRequired() const {
diff --git a/components/autofill/core/browser/payments/payments_client_unittest.cc b/components/autofill/core/browser/payments/payments_client_unittest.cc
index 6a338ba0..e5aebca4 100644
--- a/components/autofill/core/browser/payments/payments_client_unittest.cc
+++ b/components/autofill/core/browser/payments/payments_client_unittest.cc
@@ -372,8 +372,7 @@
   // start the Payments Request which requires the authentication.
   void IssueOAuthToken() {
     identity_test_env_.WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
-        "totally_real_token",
-        AutofillClock::Now() + base::TimeDelta::FromDays(10));
+        "totally_real_token", AutofillClock::Now() + base::Days(10));
 
     // Verify the auth header.
     std::string auth_header_value;
@@ -1102,7 +1101,7 @@
   // Issue a token for the secondary account.
   identity_test_env_.WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
       secondary_account_info.account_id, "secondary_account_token",
-      AutofillClock::Now() + base::TimeDelta::FromDays(10));
+      AutofillClock::Now() + base::Days(10));
 
   // Verify the auth header.
   std::string auth_header_value;
diff --git a/components/autofill/core/browser/payments/wait_for_signal_or_timeout_unittest.cc b/components/autofill/core/browser/payments/wait_for_signal_or_timeout_unittest.cc
index eda3fd3..be40eb3 100644
--- a/components/autofill/core/browser/payments/wait_for_signal_or_timeout_unittest.cc
+++ b/components/autofill/core/browser/payments/wait_for_signal_or_timeout_unittest.cc
@@ -36,7 +36,7 @@
 // happens.
 TEST_F(WaitForSignalOrTimeoutTest, InitThenSignal) {
   WaitForSignalOrTimeout wait;
-  wait.OnEventOrTimeOut(GetCallback(), base::TimeDelta::FromSeconds(30));
+  wait.OnEventOrTimeOut(GetCallback(), base::Seconds(30));
   EXPECT_EQ(0, callbacks_);
   EXPECT_FALSE(wait.IsSignaled());
   wait.Signal();
@@ -50,7 +50,7 @@
   EXPECT_TRUE(wait.IsSignaled());
 
   // Also the pending timeout should not trigger further callbacks.
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(35));
+  task_env_.FastForwardBy(base::Seconds(35));
   EXPECT_TRUE(wait.IsSignaled());
   EXPECT_EQ(1, callbacks_);
 }
@@ -66,7 +66,7 @@
   EXPECT_EQ(0, callbacks_);
 
   // Once the callback handler is registered, it should be called immediately.
-  wait.OnEventOrTimeOut(GetCallback(), base::TimeDelta::FromSeconds(30));
+  wait.OnEventOrTimeOut(GetCallback(), base::Seconds(30));
   EXPECT_TRUE(wait.IsSignaled());
   EXPECT_EQ(1, callbacks_);
   EXPECT_TRUE(last_callback_triggered_by_signal_);
@@ -77,7 +77,7 @@
   EXPECT_EQ(1, callbacks_);
 
   // Also the pending timeout should not trigger further callbacks.
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(35));
+  task_env_.FastForwardBy(base::Seconds(35));
   EXPECT_TRUE(wait.IsSignaled());
   EXPECT_EQ(1, callbacks_);
 }
@@ -85,11 +85,11 @@
 // A timeout occurs before Signal() is called.
 TEST_F(WaitForSignalOrTimeoutTest, InitThenTimeout) {
   WaitForSignalOrTimeout wait;
-  wait.OnEventOrTimeOut(GetCallback(), base::TimeDelta::FromSeconds(30));
+  wait.OnEventOrTimeOut(GetCallback(), base::Seconds(30));
   EXPECT_FALSE(wait.IsSignaled());
   EXPECT_EQ(0, callbacks_);
 
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(35));
+  task_env_.FastForwardBy(base::Seconds(35));
   EXPECT_TRUE(wait.IsSignaled());
   EXPECT_EQ(1, callbacks_);
   EXPECT_FALSE(last_callback_triggered_by_signal_);
@@ -105,17 +105,17 @@
 TEST_F(WaitForSignalOrTimeoutTest, DestroyedBeforeSignal) {
   {
     WaitForSignalOrTimeout wait;
-    wait.OnEventOrTimeOut(GetCallback(), base::TimeDelta::FromSeconds(30));
+    wait.OnEventOrTimeOut(GetCallback(), base::Seconds(30));
   }
   EXPECT_EQ(0, callbacks_);
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(35));
+  task_env_.FastForwardBy(base::Seconds(35));
   EXPECT_EQ(0, callbacks_);
 }
 
 // The WaitForSignalOrTimeout gets signaled, reset, and signaled again.
 TEST_F(WaitForSignalOrTimeoutTest, Reset) {
   WaitForSignalOrTimeout wait;
-  wait.OnEventOrTimeOut(GetCallback(), base::TimeDelta::FromSeconds(30));
+  wait.OnEventOrTimeOut(GetCallback(), base::Seconds(30));
   EXPECT_EQ(0, callbacks_);
   wait.Signal();
   EXPECT_EQ(1, callbacks_);
@@ -130,7 +130,7 @@
   wait.Signal();
   EXPECT_EQ(1, callbacks_);
   // Now the callback happens immediately.
-  wait.OnEventOrTimeOut(GetCallback(), base::TimeDelta::FromSeconds(30));
+  wait.OnEventOrTimeOut(GetCallback(), base::Seconds(30));
   EXPECT_EQ(2, callbacks_);
   EXPECT_TRUE(last_callback_triggered_by_signal_);
 
@@ -138,50 +138,50 @@
 
   // Finally, we simulate a timeout after the reset.
   EXPECT_FALSE(wait.IsSignaled());
-  wait.OnEventOrTimeOut(GetCallback(), base::TimeDelta::FromSeconds(30));
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(35));
+  wait.OnEventOrTimeOut(GetCallback(), base::Seconds(30));
+  task_env_.FastForwardBy(base::Seconds(35));
   EXPECT_EQ(3, callbacks_);
   EXPECT_FALSE(last_callback_triggered_by_signal_);
 }
 
 TEST_F(WaitForSignalOrTimeoutTest, OnEventOrTimeOutCalledTwice) {
   WaitForSignalOrTimeout wait;
-  wait.OnEventOrTimeOut(GetCallback(), base::TimeDelta::FromSeconds(30));
+  wait.OnEventOrTimeOut(GetCallback(), base::Seconds(30));
   EXPECT_EQ(0, callbacks_);
 
   // Wait some time but not long enough for the timeout to trigger.
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(25));
+  task_env_.FastForwardBy(base::Seconds(25));
   EXPECT_EQ(0, callbacks_);
   EXPECT_FALSE(wait.IsSignaled());
 
   // This resets the state machine (currently waiting for a signal or timeout)
   // and starts a new wait.
-  wait.OnEventOrTimeOut(GetCallback(), base::TimeDelta::FromSeconds(30));
+  wait.OnEventOrTimeOut(GetCallback(), base::Seconds(30));
 
   // Wait some time but not long enough for the timeout to trigger.
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(25));
+  task_env_.FastForwardBy(base::Seconds(25));
   // The first timeout should not have triggered anything.
   EXPECT_EQ(0, callbacks_);
   EXPECT_FALSE(wait.IsSignaled());
 
   // Wait some more time for the second timeout to kick in.
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_env_.FastForwardBy(base::Seconds(10));
   EXPECT_EQ(1, callbacks_);
   EXPECT_TRUE(wait.IsSignaled());
   EXPECT_FALSE(last_callback_triggered_by_signal_);
 
   // This resets the state machine (currently in done state) once more and
   // starts a new wait.
-  wait.OnEventOrTimeOut(GetCallback(), base::TimeDelta::FromSeconds(30));
+  wait.OnEventOrTimeOut(GetCallback(), base::Seconds(30));
 
   // Wait some time but not long enough for the timeout to trigger.
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(25));
+  task_env_.FastForwardBy(base::Seconds(25));
   // The first timeout should not have triggered anything.
   EXPECT_EQ(1, callbacks_);
   EXPECT_FALSE(wait.IsSignaled());
 
   // Wait some more time for the second timeout to kick in.
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_env_.FastForwardBy(base::Seconds(10));
   EXPECT_EQ(2, callbacks_);
   EXPECT_TRUE(wait.IsSignaled());
   EXPECT_FALSE(last_callback_triggered_by_signal_);
diff --git a/components/autofill/core/browser/personal_data_manager_unittest.cc b/components/autofill/core/browser/personal_data_manager_unittest.cc
index 1dd33f2..13c25b7d 100644
--- a/components/autofill/core/browser/personal_data_manager_unittest.cc
+++ b/components/autofill/core/browser/personal_data_manager_unittest.cc
@@ -409,15 +409,13 @@
                             "378282246310005" /* American Express */, "04",
                             "2999", "1");
     credit_card0.set_use_count(3);
-    credit_card0.set_use_date(AutofillClock::Now() -
-                              base::TimeDelta::FromDays(1));
+    credit_card0.set_use_date(AutofillClock::Now() - base::Days(1));
     personal_data_->AddCreditCard(credit_card0);
 
     CreditCard credit_card1("1141084B-72D7-4B73-90CF-3D6AC154673B",
                             test::kEmptyOrigin);
     credit_card1.set_use_count(300);
-    credit_card1.set_use_date(AutofillClock::Now() -
-                              base::TimeDelta::FromDays(10));
+    credit_card1.set_use_date(AutofillClock::Now() - base::Days(10));
     test::SetCreditCardInfo(&credit_card1, "John Dillinger",
                             "4234567890123456" /* Visa */, "01", "2999", "1");
     personal_data_->AddCreditCard(credit_card1);
@@ -425,8 +423,7 @@
     CreditCard credit_card2("002149C1-EE28-4213-A3B9-DA243FFF021B",
                             test::kEmptyOrigin);
     credit_card2.set_use_count(1);
-    credit_card2.set_use_date(AutofillClock::Now() -
-                              base::TimeDelta::FromDays(1));
+    credit_card2.set_use_date(AutofillClock::Now() - base::Days(1));
     test::SetCreditCardInfo(&credit_card2, "Bonnie Parker",
                             "5105105105105100" /* Mastercard */, "12", "2999",
                             "1");
@@ -492,8 +489,7 @@
     test::SetCreditCardInfo(&credit_card1, "Clyde Barrow",
                             "378282246310005" /* American Express */, "04",
                             "1999", "1");
-    credit_card1.set_use_date(AutofillClock::Now() -
-                              base::TimeDelta::FromDays(400));
+    credit_card1.set_use_date(AutofillClock::Now() - base::Days(400));
 
     personal_data_->AddCreditCard(credit_card1);
 
@@ -505,8 +501,7 @@
   // This profile is supposed to be deleted during a major version upgrade.
   void CreateDeletableDisusedProfile() {
     AutofillProfile profile0(test::GetFullProfile());
-    profile0.set_use_date(AutofillClock::Now() -
-                          base::TimeDelta::FromDays(400));
+    profile0.set_use_date(AutofillClock::Now() - base::Days(400));
     AddProfileToPersonalDataManager(profile0);
 
     EXPECT_EQ(1U, personal_data_->GetProfiles().size());
@@ -1026,7 +1021,7 @@
   SaveImportedProfileToPersonalDataManager(profile);
   const std::vector<AutofillProfile*>& profiles = personal_data_->GetProfiles();
   ASSERT_EQ(1U, profiles.size());
-  EXPECT_GT(base::TimeDelta::FromMilliseconds(2000),
+  EXPECT_GT(base::Milliseconds(2000),
             AutofillClock::Now() - profiles[0]->modification_date());
 }
 
@@ -2383,7 +2378,7 @@
     // Set frecency such that they appear before the "last" profile (added
     // next).
     profile.set_use_count(12);
-    profile.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(1));
+    profile.set_use_date(AutofillClock::Now() - base::Days(1));
 
     AddProfileToPersonalDataManager(profile);
     profiles.push_back(profile);
@@ -2396,7 +2391,7 @@
                        "000 Zoo St.\nSecond Line\nThird line", "unit 5",
                        "Hollywood", "CA", "91601", "US", "12345678910");
   profile.set_use_count(1);
-  profile.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(7));
+  profile.set_use_date(AutofillClock::Now() - base::Days(7));
   AddProfileToPersonalDataManager(profile);
 
   ResetPersonalDataManager(USER_MODE_NORMAL);
@@ -2420,7 +2415,7 @@
                        "johnwayne@me.xyz", "Fox",
                        "123 Zoo St.\nSecond Line\nThird line", "unit 5",
                        "Hollywood", "CA", "91601", "US", "12345678910");
-  profile3.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(1));
+  profile3.set_use_date(AutofillClock::Now() - base::Days(1));
   profile3.set_use_count(5);
   AddProfileToPersonalDataManager(profile3);
 
@@ -2429,7 +2424,7 @@
                        "johnwayne@me.xyz", "Fox",
                        "123 Zoo St.\nSecond Line\nThird line", "unit 5",
                        "Hollywood", "CA", "91601", "US", "12345678910");
-  profile1.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(1));
+  profile1.set_use_date(AutofillClock::Now() - base::Days(1));
   profile1.set_use_count(10);
   AddProfileToPersonalDataManager(profile1);
 
@@ -2438,7 +2433,7 @@
                        "johnwayne@me.xyz", "Fox",
                        "123 Zoo St.\nSecond Line\nThird line", "unit 5",
                        "Hollywood", "CA", "91601", "US", "12345678910");
-  profile2.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(15));
+  profile2.set_use_date(AutofillClock::Now() - base::Days(15));
   profile2.set_use_count(300);
   AddProfileToPersonalDataManager(profile2);
 
@@ -2494,7 +2489,7 @@
                        "johnwayne@me.xyz", "Fox",
                        "123 Zoo St.\nSecond Line\nThird line", "unit 5",
                        "Hollywood", "CA", "91601", "US", "12345678910");
-  profile1.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(200));
+  profile1.set_use_date(AutofillClock::Now() - base::Days(200));
   AddProfileToPersonalDataManager(profile1);
 
   AutofillProfile profile2(base::GenerateGUID(), test::kEmptyOrigin);
@@ -2502,7 +2497,7 @@
                        "johnwayne@me.xyz", "Fox",
                        "456 Zoo St.\nSecond Line\nThird line", "unit 5",
                        "Hollywood", "CA", "91601", "US", "12345678910");
-  profile2.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(20));
+  profile2.set_use_date(AutofillClock::Now() - base::Days(20));
   AddProfileToPersonalDataManager(profile2);
 
   ResetPersonalDataManager(USER_MODE_NORMAL);
@@ -2548,8 +2543,7 @@
 TEST_F(PersonalDataManagerTest, GetProfileSuggestions_Validity) {
   // Set up 2 different profiles: one valid and one invalid.
   AutofillProfile valid_profile(test::GetFullValidProfileForCanada());
-  valid_profile.set_use_date(AutofillClock::Now() -
-                             base::TimeDelta::FromDays(1));
+  valid_profile.set_use_date(AutofillClock::Now() - base::Days(1));
   valid_profile.set_use_count(1);
   AddProfileToPersonalDataManager(valid_profile);
 
@@ -2558,8 +2552,7 @@
                        "invalid email", "Fox",
                        "123 Zoo St.\nSecond Line\nThird line", "unit 5",
                        "Hollywood", "CA", "91601", "US", "Invalid Phone");
-  invalid_profile.set_use_date(AutofillClock::Now() -
-                               base::TimeDelta::FromDays(1));
+  invalid_profile.set_use_date(AutofillClock::Now() - base::Days(1));
   invalid_profile.set_use_count(1);
   AddProfileToPersonalDataManager(invalid_profile);
 
@@ -2986,7 +2979,7 @@
   // GetProfileSuggestions.
   profile1.set_use_date(AutofillClock::Now());
   profile1.set_use_count(10);
-  profile2.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(10));
+  profile2.set_use_date(AutofillClock::Now() - base::Days(10));
   profile2.set_use_count(1);
 
   EXPECT_TRUE(profile1.HasGreaterFrecencyThan(&profile2, AutofillClock::Now()));
@@ -3042,7 +3035,7 @@
   // GetProfileSuggestions.
   profile1.set_use_date(AutofillClock::Now());
   profile1.set_use_count(10);
-  profile2.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(10));
+  profile2.set_use_date(AutofillClock::Now() - base::Days(10));
   profile2.set_use_count(1);
 
   AddProfileToPersonalDataManager(profile1);
@@ -3098,7 +3091,7 @@
   // GetProfileSuggestions.
   profile1.set_use_date(AutofillClock::Now());
   profile1.set_use_count(10);
-  profile2.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(10));
+  profile2.set_use_date(AutofillClock::Now() - base::Days(10));
   profile2.set_use_count(1);
 
   AddProfileToPersonalDataManager(profile1);
@@ -3357,16 +3350,14 @@
   test::SetCreditCardInfo(&server_cards.back(), "Emmet Dalton", "2110", "12",
                           "2999", "1");
   server_cards.back().set_use_count(2);
-  server_cards.back().set_use_date(AutofillClock::Now() -
-                                   base::TimeDelta::FromDays(1));
+  server_cards.back().set_use_date(AutofillClock::Now() - base::Days(1));
   server_cards.back().SetNetworkForMaskedCard(kVisaCard);
 
   server_cards.emplace_back(CreditCard::FULL_SERVER_CARD, "b460");
   test::SetCreditCardInfo(&server_cards.back(), "Jesse James", "2109", "12",
                           "2999", "1");
   server_cards.back().set_use_count(6);
-  server_cards.back().set_use_date(AutofillClock::Now() -
-                                   base::TimeDelta::FromDays(1));
+  server_cards.back().set_use_date(AutofillClock::Now() - base::Days(1));
 
   SetServerCards(server_cards);
 
@@ -3404,16 +3395,14 @@
   test::SetCreditCardInfo(&server_cards.back(), "Emmet Dalton", "2110", "12",
                           "2999", "1");
   server_cards.back().set_use_count(2);
-  server_cards.back().set_use_date(AutofillClock::Now() -
-                                   base::TimeDelta::FromDays(1));
+  server_cards.back().set_use_date(AutofillClock::Now() - base::Days(1));
   server_cards.back().SetNetworkForMaskedCard(kVisaCard);
 
   server_cards.emplace_back(CreditCard::FULL_SERVER_CARD, "b460");
   test::SetCreditCardInfo(&server_cards.back(), "Jesse James", "2109", "12",
                           "2999", "1");
   server_cards.back().set_use_count(6);
-  server_cards.back().set_use_date(AutofillClock::Now() -
-                                   base::TimeDelta::FromDays(1));
+  server_cards.back().set_use_date(AutofillClock::Now() - base::Days(1));
 
   SetServerCards(server_cards);
   personal_data_->Refresh();
@@ -3447,16 +3436,14 @@
   test::SetCreditCardInfo(&server_cards.back(), "Emmet Dalton", "2110", "12",
                           "2999", "1");
   server_cards.back().set_use_count(2);
-  server_cards.back().set_use_date(AutofillClock::Now() -
-                                   base::TimeDelta::FromDays(1));
+  server_cards.back().set_use_date(AutofillClock::Now() - base::Days(1));
   server_cards.back().SetNetworkForMaskedCard(kVisaCard);
 
   server_cards.emplace_back(CreditCard::FULL_SERVER_CARD, "b460");
   test::SetCreditCardInfo(&server_cards.back(), "Jesse James", "2109", "12",
                           "2999", "1");
   server_cards.back().set_use_count(6);
-  server_cards.back().set_use_date(AutofillClock::Now() -
-                                   base::TimeDelta::FromDays(1));
+  server_cards.back().set_use_date(AutofillClock::Now() - base::Days(1));
 
   SetServerCards(server_cards);
 
@@ -3514,8 +3501,7 @@
   test::SetCreditCardInfo(&server_cards.back(), "John Dillinger",
                           "3456" /* Visa */, "01", "2999", "1");
   server_cards.back().set_use_count(2);
-  server_cards.back().set_use_date(AutofillClock::Now() -
-                                   base::TimeDelta::FromDays(15));
+  server_cards.back().set_use_date(AutofillClock::Now() - base::Days(15));
   server_cards.back().SetNetworkForMaskedCard(kVisaCard);
 
   // This unmasked server card is an exact dupe of a local card. Therefore only
@@ -3526,8 +3512,7 @@
                           "378282246310005" /* American Express */, "04",
                           "2999", "1");
   server_cards.back().set_use_count(1);
-  server_cards.back().set_use_date(AutofillClock::Now() -
-                                   base::TimeDelta::FromDays(15));
+  server_cards.back().set_use_date(AutofillClock::Now() - base::Days(15));
 
   SetServerCards(server_cards);
 
@@ -3603,7 +3588,7 @@
   test::SetCreditCardInfo(&local_card, "Homer Simpson",
                           "4234567890123456" /* Visa */, "01", "2999", "1");
   local_card.set_use_count(3);
-  local_card.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(1));
+  local_card.set_use_date(AutofillClock::Now() - base::Days(1));
   credit_cards.push_back(&local_card);
 
   // Create a full server card that is a duplicate of one of the local cards.
@@ -3611,8 +3596,7 @@
   test::SetCreditCardInfo(&full_server_card, "Homer Simpson",
                           "4234567890123456" /* Visa */, "01", "2999", "1");
   full_server_card.set_use_count(1);
-  full_server_card.set_use_date(AutofillClock::Now() -
-                                base::TimeDelta::FromDays(15));
+  full_server_card.set_use_date(AutofillClock::Now() - base::Days(15));
   credit_cards.push_back(&full_server_card);
 
   PersonalDataManager::DedupeCreditCardToSuggest(&credit_cards);
@@ -3630,7 +3614,7 @@
   CreditCard local_card("1141084B-72D7-4B73-90CF-3D6AC154673B",
                         test::kEmptyOrigin);
   local_card.set_use_count(300);
-  local_card.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(10));
+  local_card.set_use_date(AutofillClock::Now() - base::Days(10));
   test::SetCreditCardInfo(&local_card, "Homer Simpson",
                           "4234567890123456" /* Visa */, "01", "2999", "1");
   credit_cards.push_back(&local_card);
@@ -3640,8 +3624,7 @@
   test::SetCreditCardInfo(&masked_card, "Homer Simpson", "3456" /* Visa */,
                           "01", "2999", "1");
   masked_card.set_use_count(2);
-  masked_card.set_use_date(AutofillClock::Now() -
-                           base::TimeDelta::FromDays(15));
+  masked_card.set_use_date(AutofillClock::Now() - base::Days(15));
   masked_card.SetNetworkForMaskedCard(kVisaCard);
   credit_cards.push_back(&masked_card);
 
@@ -3661,8 +3644,7 @@
   test::SetCreditCardInfo(&full_server_card, "Homer Simpson",
                           "4234567890123456" /* Visa */, "01", "2999", "1");
   full_server_card.set_use_count(1);
-  full_server_card.set_use_date(AutofillClock::Now() -
-                                base::TimeDelta::FromDays(15));
+  full_server_card.set_use_date(AutofillClock::Now() - base::Days(15));
   credit_cards.push_back(&full_server_card);
 
   // Create a masked server card that is a duplicate of a local card.
@@ -3670,8 +3652,7 @@
   test::SetCreditCardInfo(&masked_card, "Homer Simpson", "3456" /* Visa */,
                           "01", "2999", "1");
   masked_card.set_use_count(2);
-  masked_card.set_use_date(AutofillClock::Now() -
-                           base::TimeDelta::FromDays(15));
+  masked_card.set_use_date(AutofillClock::Now() - base::Days(15));
   masked_card.SetNetworkForMaskedCard(kVisaCard);
   credit_cards.push_back(&masked_card);
 
@@ -3687,7 +3668,7 @@
   CreditCard local_card("002149C1-EE28-4213-A3B9-DA243FFF021B",
                         test::kEmptyOrigin);
   local_card.set_use_count(1);
-  local_card.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(1));
+  local_card.set_use_date(AutofillClock::Now() - base::Days(1));
   test::SetCreditCardInfo(&local_card, "Homer Simpson",
                           "5105105105105100" /* Mastercard */, "", "", "");
   credit_cards.push_back(&local_card);
@@ -3697,8 +3678,7 @@
   test::SetCreditCardInfo(&masked_card, "Homer Simpson", "0005", "12", "2999",
                           "1");
   masked_card.set_use_count(3);
-  masked_card.set_use_date(AutofillClock::Now() -
-                           base::TimeDelta::FromDays(15));
+  masked_card.set_use_date(AutofillClock::Now() - base::Days(15));
   // credit_card4.SetNetworkForMaskedCard(kVisaCard);
   credit_cards.push_back(&masked_card);
 
@@ -3709,8 +3689,7 @@
                           "378282246310005" /* American Express */, "04",
                           "2999", "1");
   full_server_card.set_use_count(1);
-  full_server_card.set_use_date(AutofillClock::Now() -
-                                base::TimeDelta::FromDays(15));
+  full_server_card.set_use_date(AutofillClock::Now() - base::Days(15));
   credit_cards.push_back(&full_server_card);
 
   PersonalDataManager::DedupeCreditCardToSuggest(&credit_cards);
@@ -4581,7 +4560,7 @@
                        "homer.simpson@abc.com", "", "742. Evergreen Terrace",
                        "", "Springfield", "IL", "91601", "US", "");
   profile1.set_use_count(12);
-  profile1.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(1));
+  profile1.set_use_date(AutofillClock::Now() - base::Days(1));
 
   // Create a profile with a medium frecency score.
   AutofillProfile profile2(base::GenerateGUID(), test::kEmptyOrigin);
@@ -4589,7 +4568,7 @@
                        "homer.simpson@abc.com", "", "742 Evergreen Terrace", "",
                        "Springfield", "IL", "91601", "", "12345678910");
   profile2.set_use_count(5);
-  profile2.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(3));
+  profile2.set_use_date(AutofillClock::Now() - base::Days(3));
 
   // Create a profile with a lower frecency score.
   AutofillProfile profile3(base::GenerateGUID(), test::kEmptyOrigin);
@@ -4597,7 +4576,7 @@
                        "homer.simpson@abc.com", "Fox", "742 Evergreen Terrace.",
                        "", "Springfield", "IL", "91601", "", "");
   profile3.set_use_count(3);
-  profile3.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(5));
+  profile3.set_use_date(AutofillClock::Now() - base::Days(5));
 
   // Create a set of two profiles to be merged together.
   // Create a profile with a higher frecency score.
@@ -4606,7 +4585,7 @@
                        "marge.simpson@abc.com", "", "742. Evergreen Terrace",
                        "", "Springfield", "IL", "91601", "US", "");
   profile4.set_use_count(11);
-  profile4.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(1));
+  profile4.set_use_date(AutofillClock::Now() - base::Days(1));
 
   // Create a profile with a lower frecency score.
   AutofillProfile profile5(base::GenerateGUID(), test::kEmptyOrigin);
@@ -4614,7 +4593,7 @@
                        "marge.simpson@abc.com", "Fox", "742 Evergreen Terrace.",
                        "", "Springfield", "IL", "91601", "", "");
   profile5.set_use_count(5);
-  profile5.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(3));
+  profile5.set_use_date(AutofillClock::Now() - base::Days(3));
 
   // Create a unique profile.
   AutofillProfile profile6(base::GenerateGUID(), test::kEmptyOrigin);
@@ -4622,7 +4601,7 @@
                        "bart.simpson@abc.com", "Fox", "742 Evergreen Terrace.",
                        "", "Springfield", "IL", "91601", "", "");
   profile6.set_use_count(10);
-  profile6.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(1));
+  profile6.set_use_date(AutofillClock::Now() - base::Days(1));
 
   // Add three credit cards. Give them a frecency score so that they are
   // suggested in order (1, 2, 3). This will ensure a deterministic order for
@@ -4712,7 +4691,7 @@
                        "homer.simpson@abc.com", "", "742. Evergreen Terrace",
                        "", "Springfield", "IL", "91601", "US", "");
   profile1.set_use_count(10);
-  profile1.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(1));
+  profile1.set_use_date(AutofillClock::Now() - base::Days(1));
 
   // Create a profile with a medium frecency score.
   AutofillProfile profile2(base::GenerateGUID(), test::kEmptyOrigin);
@@ -4720,7 +4699,7 @@
                        "homer.simpson@abc.com", "", "742 Evergreen Terrace", "",
                        "Springfield", "IL", "91601", "", "12345678910");
   profile2.set_use_count(5);
-  profile2.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(3));
+  profile2.set_use_date(AutofillClock::Now() - base::Days(3));
 
   // Create a profile with a lower frecency score.
   AutofillProfile profile3(base::GenerateGUID(), test::kEmptyOrigin);
@@ -4728,7 +4707,7 @@
                        "homer.simpson@abc.com", "Fox", "742 Evergreen Terrace.",
                        "", "Springfield", "IL", "91601", "", "");
   profile3.set_use_count(3);
-  profile3.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(5));
+  profile3.set_use_date(AutofillClock::Now() - base::Days(5));
 
   AddProfileToPersonalDataManager(profile1);
   AddProfileToPersonalDataManager(profile2);
@@ -4781,8 +4760,7 @@
   EXPECT_EQ(10U, profiles[0]->use_count());
   // The use date that results from the merge should be the one from the
   // profile1 since it was the most recently used profile.
-  EXPECT_LT(profile1.use_date() - base::TimeDelta::FromSeconds(10),
-            profiles[0]->use_date());
+  EXPECT_LT(profile1.use_date() - base::Seconds(10), profiles[0]->use_date());
 }
 
 // Tests that ApplyDedupingRoutine only keeps the verified profile with its
@@ -5022,7 +5000,7 @@
                        "homer.simpson@abc.com", "", "742. Evergreen Terrace",
                        "", "Springfield", "IL", "91601", "US", "");
   Homer1.set_use_count(10);
-  Homer1.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(1));
+  Homer1.set_use_date(AutofillClock::Now() - base::Days(1));
 
   // Create a Homer home profile with a medium frecency score compared to other
   // Homer profiles.
@@ -5031,7 +5009,7 @@
                        "homer.simpson@abc.com", "", "742 Evergreen Terrace", "",
                        "Springfield", "IL", "91601", "", "12345678910");
   Homer2.set_use_count(5);
-  Homer2.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(3));
+  Homer2.set_use_date(AutofillClock::Now() - base::Days(3));
 
   // Create a Homer home profile with a lower frecency score than other Homer
   // profiles.
@@ -5040,7 +5018,7 @@
                        "homer.simpson@abc.com", "Fox", "742 Evergreen Terrace.",
                        "", "Springfield", "IL", "91601", "", "");
   Homer3.set_use_count(3);
-  Homer3.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(5));
+  Homer3.set_use_date(AutofillClock::Now() - base::Days(5));
 
   // Create a Homer work profile (different address).
   AutofillProfile Homer4(base::GenerateGUID(), test::kEmptyOrigin);
@@ -5048,7 +5026,7 @@
                        "homer.simpson@abc.com", "Fox", "12 Nuclear Plant.", "",
                        "Springfield", "IL", "91601", "US", "9876543");
   Homer4.set_use_count(3);
-  Homer4.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(5));
+  Homer4.set_use_date(AutofillClock::Now() - base::Days(5));
 
   // Create a Marge profile with a lower frecency score that other Marge
   // profiles.
@@ -5057,7 +5035,7 @@
                        "marge.simpson@abc.com", "", "742 Evergreen Terrace", "",
                        "Springfield", "IL", "91601", "", "12345678910");
   Marge1.set_use_count(4);
-  Marge1.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(3));
+  Marge1.set_use_date(AutofillClock::Now() - base::Days(3));
 
   // Create a verified Marge home profile with a lower frecency score that the
   // other Marge profile.
@@ -5066,7 +5044,7 @@
                        "marge.simpson@abc.com", "", "742 Evergreen Terrace", "",
                        "Springfield", "IL", "91601", "", "12345678910");
   Marge2.set_use_count(2);
-  Marge2.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(3));
+  Marge2.set_use_date(AutofillClock::Now() - base::Days(3));
 
   // Create a Barney profile (guest user).
   AutofillProfile Barney(base::GenerateGUID(), test::kEmptyOrigin);
@@ -5074,7 +5052,7 @@
                        "ABC", "123 Other Street", "", "Springfield", "IL",
                        "91601", "", "");
   Barney.set_use_count(1);
-  Barney.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(180));
+  Barney.set_use_date(AutofillClock::Now() - base::Days(180));
   Barney.FinalizeAfterImport();
 
   AddProfileToPersonalDataManager(Homer1);
@@ -5136,10 +5114,8 @@
   EXPECT_EQ(10U, profiles[0]->use_count());
   // The use date that results from the merge should be the one from the
   // |Homer1| since it was the most recently used profile.
-  EXPECT_LT(Homer1.use_date() - base::TimeDelta::FromSeconds(5),
-            profiles[0]->use_date());
-  EXPECT_GT(Homer1.use_date() + base::TimeDelta::FromSeconds(5),
-            profiles[0]->use_date());
+  EXPECT_LT(Homer1.use_date() - base::Seconds(5), profiles[0]->use_date());
+  EXPECT_GT(Homer1.use_date() + base::Seconds(5), profiles[0]->use_date());
 
   // The other profiles should not have been modified.
   EXPECT_TRUE(Marge1 == *profiles[1]);
@@ -5236,7 +5212,7 @@
   test::SetProfileInfo(&profile0, "Alice", "", "Delete", "", "ACME",
                        "1234 Evergreen Terrace", "Bld. 6", "Springfield", "IL",
                        "32801", "US", "15151231234");
-  profile0.set_use_date(now - base::TimeDelta::FromDays(400));
+  profile0.set_use_date(now - base::Days(400));
   AddProfileToPersonalDataManager(profile0);
 
   // Create unverified/disused/used-by-expired-credit-card address(deletable).
@@ -5244,12 +5220,12 @@
   test::SetProfileInfo(&profile1, "Bob", "", "Delete", "", "ACME",
                        "1234 Evergreen Terrace", "Bld. 7", "Springfield", "IL",
                        "32801", "US", "15151231234");
-  profile1.set_use_date(now - base::TimeDelta::FromDays(400));
+  profile1.set_use_date(now - base::Days(400));
   CreditCard credit_card0(base::GenerateGUID(), test::kEmptyOrigin);
   test::SetCreditCardInfo(&credit_card0, "Bob",
                           "5105105105105100" /* Mastercard */, "04", "1999",
                           "1");
-  credit_card0.set_use_date(now - base::TimeDelta::FromDays(400));
+  credit_card0.set_use_date(now - base::Days(400));
   credit_card0.set_billing_address_id(profile1.guid());
   AddProfileToPersonalDataManager(profile1);
   personal_data_->AddCreditCard(credit_card0);
@@ -5261,7 +5237,7 @@
                        "1234 Evergreen Terrace", "Bld. 8", "Springfield", "IL",
                        "32801", "US", "15151231234");
   profile2.set_origin(kSettingsOrigin);
-  profile2.set_use_date(now - base::TimeDelta::FromDays(400));
+  profile2.set_use_date(now - base::Days(400));
   AddProfileToPersonalDataManager(profile2);
 
   // Create unverified/recently-used/not-used-by-valid-credit-card address(not
@@ -5270,7 +5246,7 @@
   test::SetProfileInfo(&profile3, "Dave", "", "Keep", "", "ACME",
                        "1234 Evergreen Terrace", "Bld. 9", "Springfield", "IL",
                        "32801", "US", "15151231234");
-  profile3.set_use_date(now - base::TimeDelta::FromDays(4));
+  profile3.set_use_date(now - base::Days(4));
   AddProfileToPersonalDataManager(profile3);
 
   // Create unverified/disused/used-by-valid-credit-card address(not deletable).
@@ -5278,12 +5254,12 @@
   test::SetProfileInfo(&profile4, "Emma", "", "Keep", "", "ACME",
                        "1234 Evergreen Terrace", "Bld. 10", "Springfield", "IL",
                        "32801", "US", "15151231234");
-  profile4.set_use_date(now - base::TimeDelta::FromDays(400));
+  profile4.set_use_date(now - base::Days(400));
   CreditCard credit_card1(CreditCard::MASKED_SERVER_CARD, "c987");
   test::SetCreditCardInfo(&credit_card1, "Emma", "6543", "01", "2999", "1");
   credit_card1.SetNetworkForMaskedCard(kVisaCard);
   credit_card1.set_billing_address_id(profile4.guid());
-  credit_card1.set_use_date(now - base::TimeDelta::FromDays(1));
+  credit_card1.set_use_date(now - base::Days(1));
   AddProfileToPersonalDataManager(profile4);
   personal_data_->AddCreditCard(credit_card1);
 
@@ -5315,7 +5291,7 @@
   test::SetCreditCardInfo(&credit_card1, "Alice",
                           "378282246310005" /* American Express */, "04",
                           "2999", "1");
-  credit_card1.set_use_date(now - base::TimeDelta::FromDays(4));
+  credit_card1.set_use_date(now - base::Days(4));
 
   // Create a local card that was expired 400 days ago, but recently used.
   // It is expected to remain.
@@ -5323,19 +5299,19 @@
   test::SetCreditCardInfo(&credit_card2, "Bob",
                           "378282246310006" /* American Express */, "04",
                           "1999", "1");
-  credit_card2.set_use_date(now - base::TimeDelta::FromDays(4));
+  credit_card2.set_use_date(now - base::Days(4));
 
   // Create a local card expired recently, and last used 400 days ago.
   // It is expected to remain.
   CreditCard credit_card3(base::GenerateGUID(), test::kEmptyOrigin);
-  base::Time expiry_date = now - base::TimeDelta::FromDays(32);
+  base::Time expiry_date = now - base::Days(32);
   base::Time::Exploded exploded;
   expiry_date.UTCExplode(&exploded);
   test::SetCreditCardInfo(&credit_card3, "Clyde", "4111111111111111" /* Visa */,
                           base::StringPrintf("%02d", exploded.month).c_str(),
                           base::StringPrintf("%04d", exploded.year).c_str(),
                           "1");
-  credit_card3.set_use_date(now - base::TimeDelta::FromDays(400));
+  credit_card3.set_use_date(now - base::Days(400));
 
   // Create a local card expired 400 days ago, and last used 400 days ago.
   // It is expected to be deleted.
@@ -5343,7 +5319,7 @@
   test::SetCreditCardInfo(&credit_card4, "David",
                           "5105105105105100" /* Mastercard */, "04", "1999",
                           "1");
-  credit_card4.set_use_date(now - base::TimeDelta::FromDays(400));
+  credit_card4.set_use_date(now - base::Days(400));
   personal_data_->AddCreditCard(credit_card1);
   personal_data_->AddCreditCard(credit_card2);
   personal_data_->AddCreditCard(credit_card3);
@@ -5355,13 +5331,13 @@
   CreditCard credit_card5(CreditCard::FULL_SERVER_CARD, "c789");
   test::SetCreditCardInfo(&credit_card5, "Emma", "4234567890123456" /* Visa */,
                           "04", "1999", "1");
-  credit_card5.set_use_date(now - base::TimeDelta::FromDays(400));
+  credit_card5.set_use_date(now - base::Days(400));
 
   // Create masked server card expired 400 days ago, and last used 400 days ago.
   // It is expected to remain because we do not delete server cards.
   CreditCard credit_card6(CreditCard::MASKED_SERVER_CARD, "c987");
   test::SetCreditCardInfo(&credit_card6, "Frank", "6543", "01", "1998", "1");
-  credit_card6.set_use_date(now - base::TimeDelta::FromDays(400));
+  credit_card6.set_use_date(now - base::Days(400));
   credit_card6.SetNetworkForMaskedCard(kVisaCard);
 
   // Save the server cards and set used_date to desired dates.
@@ -6035,7 +6011,7 @@
   AutofillProfile profile0(base::GenerateGUID(), test::kEmptyOrigin);
   test::SetProfileInfo(&profile0, "Bob", "", "Doe", "", "Fox", "1212 Center.",
                        "Bld. 5", "Orlando", "FL", "32801", "US", "19482937549");
-  profile0.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(3));
+  profile0.set_use_date(AutofillClock::Now() - base::Days(3));
   AddProfileToPersonalDataManager(profile0);
 
   // Add a profile used a long time (200 days) ago.
@@ -6043,7 +6019,7 @@
   test::SetProfileInfo(&profile1, "Seb", "", "Doe", "", "ACME",
                        "1234 Evergreen Terrace", "Bld. 5", "Springfield", "IL",
                        "32801", "US", "15151231234");
-  profile1.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(200));
+  profile1.set_use_date(AutofillClock::Now() - base::Days(200));
   AddProfileToPersonalDataManager(profile1);
 
   // Reload the database, which will log the stored profile counts.
@@ -6071,7 +6047,7 @@
 
   // Helper timestamps for setting up the test data.
   base::Time now = AutofillClock::Now();
-  base::Time one_month_ago = now - base::TimeDelta::FromDays(30);
+  base::Time one_month_ago = now - base::Days(30);
   base::Time::Exploded now_exploded;
   base::Time::Exploded one_month_ago_exploded;
   now.LocalExplode(&now_exploded);
@@ -6087,14 +6063,14 @@
   for (auto record_type : record_types) {
     // Create a card that's still in active use.
     CreditCard card_in_use = test::GetRandomCreditCard(record_type);
-    card_in_use.set_use_date(now - base::TimeDelta::FromDays(30));
+    card_in_use.set_use_date(now - base::Days(30));
     card_in_use.set_use_count(10);
 
     // Create a card that's not in active use.
     CreditCard card_in_disuse = test::GetRandomCreditCard(record_type);
     card_in_disuse.SetExpirationYear(one_month_ago_exploded.year);
     card_in_disuse.SetExpirationMonth(one_month_ago_exploded.month);
-    card_in_disuse.set_use_date(now - base::TimeDelta::FromDays(200));
+    card_in_disuse.set_use_date(now - base::Days(200));
     card_in_disuse.set_use_count(10);
 
     // Add the cards to the personal data manager in the appropriate way.
@@ -6187,10 +6163,8 @@
   ASSERT_EQ(3U, addresses.size());
   ASSERT_EQ(3U, credit_cards.size());
 
-  const base::Time disused_threshold =
-      AutofillClock::Now() - base::TimeDelta::FromDays(180);
-  const base::Time deletion_threshold =
-      AutofillClock::Now() - base::TimeDelta::FromDays(395);
+  const base::Time disused_threshold = AutofillClock::Now() - base::Days(180);
+  const base::Time deletion_threshold = AutofillClock::Now() - base::Days(395);
 
   // Verify that there was a valid address created.
   {
@@ -6671,7 +6645,7 @@
                           "08", "2999", "1");
   local_card.set_guid("00000000-0000-0000-0000-000000000009");
   local_card.set_record_type(CreditCard::LOCAL_CARD);
-  local_card.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(5));
+  local_card.set_use_date(AutofillClock::Now() - base::Days(5));
   personal_data_->AddCreditCard(local_card);
 
   WaitForOnPersonalDataChanged();
@@ -6932,7 +6906,7 @@
   AutofillProfile profile2(test::GetFullValidProfileForChina());
   profile2.SetRawInfo(ADDRESS_HOME_STATE, u"invalid state!");
   profile2.set_guid("00000000-0000-0000-0000-000000000002");
-  profile2.set_use_date(AutofillClock::Now() - base::TimeDelta::FromDays(200));
+  profile2.set_use_date(AutofillClock::Now() - base::Days(200));
   AddProfileToPersonalDataManager(profile2);
 
   AutofillProfile profile1(test::GetFullValidProfileForCanada());
@@ -7073,7 +7047,7 @@
 
   base::Time older_use_date = AutofillClock::Now();
   less_recently_used_profile.set_use_date(older_use_date);
-  test_clock.Advance(base::TimeDelta::FromDays(1));
+  test_clock.Advance(base::Days(1));
 
   // Set more recently used profile to have a use date that is newer than
   // `older_use_date`.
@@ -7128,7 +7102,7 @@
   updated_more_recently_used_profile.set_guid(
       more_recently_used_profile.guid());
   // Set the updated profile to have a newer use date than it's duplicate.
-  test_clock.Advance(base::TimeDelta::FromDays(1));
+  test_clock.Advance(base::Days(1));
   base::Time newer_use_data = AutofillClock::Now();
   updated_more_recently_used_profile.set_use_date(newer_use_data);
   UpdateProfileOnPersonalDataManager(updated_more_recently_used_profile);
@@ -7282,9 +7256,9 @@
   personal_data_->AddStrikeToBlockNewProfileImportForDomain(second_url);
   EXPECT_TRUE(personal_data_->IsNewProfileImportBlockedForDomain(first_url));
 
-  test_clock.Advance(base::TimeDelta::FromHours(1));
+  test_clock.Advance(base::Hours(1));
   base::Time end_of_deletion = AutofillClock::Now();
-  test_clock.Advance(base::TimeDelta::FromHours(1));
+  test_clock.Advance(base::Hours(1));
 
   personal_data_->AddStrikeToBlockNewProfileImportForDomain(second_url);
   EXPECT_TRUE(personal_data_->IsNewProfileImportBlockedForDomain(second_url));
diff --git a/components/autofill/core/browser/strike_database_integrator_base.cc b/components/autofill/core/browser/strike_database_integrator_base.cc
index 6d63e2ee..460e7ee 100644
--- a/components/autofill/core/browser/strike_database_integrator_base.cc
+++ b/components/autofill/core/browser/strike_database_integrator_base.cc
@@ -181,9 +181,9 @@
 
 base::TimeDelta StrikeDatabaseIntegratorBase::GetEntryAge(
     const StrikeData& strike_data) {
-  return AutofillClock::Now() - base::Time::FromDeltaSinceWindowsEpoch(
-                                    base::TimeDelta::FromMicroseconds(
-                                        strike_data.last_update_timestamp()));
+  return AutofillClock::Now() -
+         base::Time::FromDeltaSinceWindowsEpoch(
+             base::Microseconds(strike_data.last_update_timestamp()));
 }
 
 std::string StrikeDatabaseIntegratorBase::GetKey(const std::string& id) const {
diff --git a/components/autofill/core/browser/strike_database_integrator_test_strike_database.h b/components/autofill/core/browser/strike_database_integrator_test_strike_database.h
index 33053e76..68d7266 100644
--- a/components/autofill/core/browser/strike_database_integrator_test_strike_database.h
+++ b/components/autofill/core/browser/strike_database_integrator_test_strike_database.h
@@ -43,8 +43,7 @@
 
  private:
   bool unique_ids_required_ = false;
-  absl::optional<base::TimeDelta> expiry_time_delta_ =
-      base::TimeDelta::FromDays(365);
+  absl::optional<base::TimeDelta> expiry_time_delta_ = base::Days(365);
 
   absl::optional<size_t> maximum_entries_ = 10;
   absl::optional<size_t> maximum_entries_after_cleanup_ = 5;
diff --git a/components/autofill/core/browser/strike_database_integrator_test_strike_database_unittest.cc b/components/autofill/core/browser/strike_database_integrator_test_strike_database_unittest.cc
index 5030c17..7a9962c 100644
--- a/components/autofill/core/browser/strike_database_integrator_test_strike_database_unittest.cc
+++ b/components/autofill/core/browser/strike_database_integrator_test_strike_database_unittest.cc
@@ -143,7 +143,7 @@
 
   // Advance clock to past expiry time.
   test_clock.Advance(strike_database_->GetExpiryTimeDelta().value() +
-                     base::TimeDelta::FromMicroseconds(1));
+                     base::Microseconds(1));
 
   // One strike should be removed.
   strike_database_->RemoveExpiredStrikes();
@@ -155,7 +155,7 @@
 
   // Advance clock to past expiry time.
   test_clock.Advance(strike_database_->GetExpiryTimeDelta().value() +
-                     base::TimeDelta::FromMicroseconds(1));
+                     base::Microseconds(1));
 
   // Strike count should be one less than the max limit.
   strike_database_->RemoveExpiredStrikes();
@@ -171,7 +171,7 @@
 
   // Advance clock to past expiry time.
   test_clock.Advance(strike_database_->GetExpiryTimeDelta().value() +
-                     base::TimeDelta::FromMicroseconds(1));
+                     base::Microseconds(1));
 
   // One strike should be removed.
   strike_database_->RemoveExpiredStrikes();
@@ -183,7 +183,7 @@
 
   // Advance clock to past expiry time.
   test_clock.Advance(strike_database_->GetExpiryTimeDelta().value() +
-                     base::TimeDelta::FromMicroseconds(1));
+                     base::Microseconds(1));
 
   // Strike count should be one less than the max limit.
   strike_database_->RemoveExpiredStrikes();
@@ -228,7 +228,7 @@
 
   // Advance clock to past expiry time for |strike_database_|.
   test_clock.Advance(strike_database_->GetExpiryTimeDelta().value() +
-                     base::TimeDelta::FromMicroseconds(1));
+                     base::Microseconds(1));
 
   // Attempt to expire strikes. Only |strike_database_|'s keys should be
   // affected.
@@ -337,7 +337,7 @@
 
   // Advance clock to past the entry for |unique_id_1|'s expiry time.
   test_clock.Advance(strike_database_->GetExpiryTimeDelta().value() +
-                     base::TimeDelta::FromMicroseconds(1));
+                     base::Microseconds(1));
 
   strike_database_->AddStrike(unique_id_2);
   strike_database_->RemoveExpiredStrikes();
@@ -349,7 +349,7 @@
 
   // Advance clock to past |unique_id_2|'s expiry time.
   test_clock.Advance(strike_database_->GetExpiryTimeDelta().value() +
-                     base::TimeDelta::FromMicroseconds(1));
+                     base::Microseconds(1));
 
   strike_database_->RemoveExpiredStrikes();
 
diff --git a/components/autofill/core/browser/test_autofill_profile_validator_delayed.cc b/components/autofill/core/browser/test_autofill_profile_validator_delayed.cc
index 7bdb471..833df9c 100644
--- a/components/autofill/core/browser/test_autofill_profile_validator_delayed.cc
+++ b/components/autofill/core/browser/test_autofill_profile_validator_delayed.cc
@@ -34,6 +34,6 @@
       FROM_HERE,
       base::BindOnce(&TestAutofillProfileValidatorDelayed::LoadRulesInstantly,
                      base::Unretained(this), region_code),
-      base::TimeDelta::FromSeconds(kRulesDelayedLoadingTimeSeconds));
+      base::Seconds(kRulesDelayedLoadingTimeSeconds));
 }
 }  // namespace autofill
diff --git a/components/autofill/core/browser/test_event_waiter.h b/components/autofill/core/browser/test_event_waiter.h
index f56f8ef..b3d4ded43 100644
--- a/components/autofill/core/browser/test_event_waiter.h
+++ b/components/autofill/core/browser/test_event_waiter.h
@@ -30,9 +30,8 @@
 template <typename Event>
 class EventWaiter {
  public:
-  explicit EventWaiter(
-      std::list<Event> expected_event_sequence,
-      base::TimeDelta timeout = base::TimeDelta::FromSeconds(0));
+  explicit EventWaiter(std::list<Event> expected_event_sequence,
+                       base::TimeDelta timeout = base::Seconds(0));
 
   EventWaiter(const EventWaiter&) = delete;
   EventWaiter& operator=(const EventWaiter&) = delete;
diff --git a/components/autofill/core/browser/ui/autofill_image_fetcher.cc b/components/autofill/core/browser/ui/autofill_image_fetcher.cc
index 3310fa1..21a6906 100644
--- a/components/autofill/core/browser/ui/autofill_image_fetcher.cc
+++ b/components/autofill/core/browser/ui/autofill_image_fetcher.cc
@@ -112,7 +112,7 @@
 
   image_fetcher::ImageFetcherParams params(kCardArtImageTrafficAnnotation,
                                            kUmaClientName);
-  params.set_hold_for_expiration_interval(base::TimeDelta::FromMinutes(
+  params.set_hold_for_expiration_interval(base::Minutes(
       features::kAutofillImageFetcherDiskCacheExpirationInMinutes.Get()));
   image_fetcher_->FetchImage(
       card_art_url,
diff --git a/components/autofill/core/browser/ui/payments/card_unmask_prompt_controller_impl.cc b/components/autofill/core/browser/ui/payments/card_unmask_prompt_controller_impl.cc
index 4a66bb7..4f23457 100644
--- a/components/autofill/core/browser/ui/payments/card_unmask_prompt_controller_impl.cc
+++ b/components/autofill/core/browser/ui/payments/card_unmask_prompt_controller_impl.cc
@@ -297,7 +297,7 @@
 
 base::TimeDelta CardUnmaskPromptControllerImpl::GetSuccessMessageDuration()
     const {
-  return base::TimeDelta::FromMilliseconds(
+  return base::Milliseconds(
       card_.record_type() == CreditCard::LOCAL_CARD ||
               reason_ == AutofillClient::UnmaskCardReason::kPaymentRequest
           ? 0
diff --git a/components/autofill/core/browser/ui/suggestion_selection_unittest.cc b/components/autofill/core/browser/ui/suggestion_selection_unittest.cc
index ea318ff..cd7fb5625 100644
--- a/components/autofill/core/browser/ui/suggestion_selection_unittest.cc
+++ b/components/autofill/core/browser/ui/suggestion_selection_unittest.cc
@@ -360,8 +360,8 @@
       base::Time::FromUTCString("2017-01-02T00:00:01Z", &kCurrentTime);
   ASSERT_TRUE(result);
   constexpr size_t kNumProfiles = 10;
-  constexpr base::TimeDelta k30Days = base::TimeDelta::FromDays(30);
-  constexpr base::TimeDelta k5DaysBuffer = base::TimeDelta::FromDays(5);
+  constexpr base::TimeDelta k30Days = base::Days(30);
+  constexpr base::TimeDelta k5DaysBuffer = base::Days(5);
 
   // Set up the profile vectors with last use dates ranging from |kCurrentTime|
   // to 270 days ago, in 30 day increments.  Note that the profiles are sorted
@@ -486,7 +486,7 @@
     // Filter the profiles while capturing histograms.
     base::HistogramTester histogram_tester;
     suggestion_selection::RemoveProfilesNotUsedSinceTimestamp(
-        kCurrentTime + base::TimeDelta::FromDays(1), &profiles);
+        kCurrentTime + base::Days(1), &profiles);
 
     // Validate that we get the expected filtered profiles and histograms.
     EXPECT_TRUE(profiles.empty());
@@ -503,8 +503,7 @@
     // Filter the profiles while capturing histograms.
     base::HistogramTester histogram_tester;
     suggestion_selection::RemoveProfilesNotUsedSinceTimestamp(
-        kCurrentTime -
-            base::TimeDelta::FromDays(2 * kNumProfiles * k30Days.InDays()),
+        kCurrentTime - base::Days(2 * kNumProfiles * k30Days.InDays()),
         &profiles);
 
     // Validate that we get the expected filtered profiles and histograms.
diff --git a/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc b/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc
index 9143598..9842982 100644
--- a/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc
+++ b/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc
@@ -400,9 +400,8 @@
 
   // General offer data:
   offer_data.offer_id = offer_specifics.id();
-  offer_data.expiry =
-      base::Time::UnixEpoch() +
-      base::TimeDelta::FromSeconds(offer_specifics.offer_expiry_date());
+  offer_data.expiry = base::Time::UnixEpoch() +
+                      base::Seconds(offer_specifics.offer_expiry_date());
   offer_data.offer_details_url = GURL(offer_specifics.offer_details_url());
   for (const std::string& domain : offer_specifics.merchant_domain()) {
     const GURL gurl_domain = GURL(domain);
diff --git a/components/autofill/core/browser/webdata/autofill_table.cc b/components/autofill/core/browser/webdata/autofill_table.cc
index 3f38f0b..47a09306 100644
--- a/components/autofill/core/browser/webdata/autofill_table.cc
+++ b/components/autofill/core/browser/webdata/autofill_table.cc
@@ -1008,8 +1008,7 @@
   const int64_t period = kAutocompleteRetentionPolicyPeriodInDays;
   const auto change_type = AutofillChange::EXPIRE;
 
-  base::Time expiration_time =
-      AutofillClock::Now() - base::TimeDelta::FromDays(period);
+  base::Time expiration_time = AutofillClock::Now() - base::Days(period);
 
   // Query for the name and value of all form elements that were last used
   // before the |expiration_time|.
@@ -2147,7 +2146,7 @@
     data->offer_id = s.ColumnInt64(index++);
     data->offer_reward_amount = s.ColumnString(index++);
     data->expiry = base::Time::FromDeltaSinceWindowsEpoch(
-        base::TimeDelta::FromMilliseconds(s.ColumnInt64(index++)));
+        base::Milliseconds(s.ColumnInt64(index++)));
     data->offer_details_url = GURL(s.ColumnString(index++));
     data->promo_code = s.ColumnString(index++);
     data->display_strings.value_prop_text = s.ColumnString(index++);
diff --git a/components/autofill/core/browser/webdata/autofill_table_unittest.cc b/components/autofill/core/browser/webdata/autofill_table_unittest.cc
index f6bdaf3..7360eab 100644
--- a/components/autofill/core/browser/webdata/autofill_table_unittest.cc
+++ b/components/autofill/core/browser/webdata/autofill_table_unittest.cc
@@ -174,7 +174,7 @@
   field.name = u"Name";
   field.value = u"Superman";
   base::Time now = AutofillClock::Now();
-  base::TimeDelta two_seconds = base::TimeDelta::FromSeconds(2);
+  base::TimeDelta two_seconds = base::Seconds(2);
   EXPECT_TRUE(table_->AddFormFieldValue(field, &changes));
   std::vector<AutofillEntry> v;
   for (int i = 0; i < 5; ++i) {
@@ -305,7 +305,7 @@
   EXPECT_THAT(no_prefix_v, ElementsAre(expected_entry));
 
   // Update date_last_used.
-  base::Time new_time = now + base::TimeDelta::FromSeconds(1000);
+  base::Time new_time = now + base::Seconds(1000);
   EXPECT_TRUE(table_->AddFormFieldValueTime(field, &changes, new_time));
   EXPECT_TRUE(
       table_->GetFormValuesForElementName(field.name, u"Super", &prefix_v, 10));
@@ -750,9 +750,9 @@
 TEST_F(AutofillTableTest,
        Autofill_RemoveFormElementsAddedBetween_OlderThan30Days) {
   const base::Time kNow = AutofillClock::Now();
-  const base::Time k29DaysOld = kNow - base::TimeDelta::FromDays(29);
-  const base::Time k30DaysOld = kNow - base::TimeDelta::FromDays(30);
-  const base::Time k31DaysOld = kNow - base::TimeDelta::FromDays(31);
+  const base::Time k29DaysOld = kNow - base::Days(29);
+  const base::Time k30DaysOld = kNow - base::Days(30);
+  const base::Time k31DaysOld = kNow - base::Days(31);
 
   // Add some form field entries.
   AutofillChangeList changes;
@@ -784,8 +784,8 @@
 // delete an old entry.
 TEST_F(AutofillTableTest, RemoveExpiredFormElements_Expires_DeleteEntry) {
   auto kNow = AutofillClock::Now();
-  auto k2YearsOld = kNow - base::TimeDelta::FromDays(
-                               2 * kAutocompleteRetentionPolicyPeriodInDays);
+  auto k2YearsOld =
+      kNow - base::Days(2 * kAutocompleteRetentionPolicyPeriodInDays);
 
   AutofillChangeList changes;
   FormFieldData field;
@@ -805,7 +805,7 @@
 // delete non-expired entries' data from the SQLite table.
 TEST_F(AutofillTableTest, RemoveExpiredFormElements_NotOldEnough) {
   auto kNow = AutofillClock::Now();
-  auto k2DaysOld = kNow - base::TimeDelta::FromDays(2);
+  auto k2DaysOld = kNow - base::Days(2);
 
   AutofillChangeList changes;
   FormFieldData field;
@@ -3130,9 +3130,8 @@
   std::vector<std::unique_ptr<AutofillProfile>> profiles;
   std::vector<std::unique_ptr<CreditCard>> credit_cards;
   ASSERT_TRUE(table_->RemoveAutofillDataModifiedBetween(
-      unmasked_time + base::TimeDelta::FromDays(365),
-      unmasked_time + base::TimeDelta::FromDays(530), &profiles,
-      &credit_cards));
+      unmasked_time + base::Days(365), unmasked_time + base::Days(530),
+      &profiles, &credit_cards));
 
   // This should not affect the unmasked card (should be unmasked).
   std::vector<std::unique_ptr<CreditCard>> outputs;
@@ -3145,9 +3144,9 @@
   // Delete data in the range of the last 24 hours.
   // Fudge |now| to make sure it's strictly greater than the |now| that
   // the database uses.
-  base::Time now = AutofillClock::Now() + base::TimeDelta::FromSeconds(1);
+  base::Time now = AutofillClock::Now() + base::Seconds(1);
   ASSERT_TRUE(table_->RemoveAutofillDataModifiedBetween(
-      now - base::TimeDelta::FromDays(1), now, &profiles, &credit_cards));
+      now - base::Days(1), now, &profiles, &credit_cards));
 
   // This should re-mask.
   ASSERT_TRUE(table_->GetServerCreditCards(&outputs));
diff --git a/components/autofill/core/browser/webdata/autofill_wallet_metadata_sync_bridge.cc b/components/autofill/core/browser/webdata/autofill_wallet_metadata_sync_bridge.cc
index 67a29ab45..a0d0232 100644
--- a/components/autofill/core/browser/webdata/autofill_wallet_metadata_sync_bridge.cc
+++ b/components/autofill/core/browser/webdata/autofill_wallet_metadata_sync_bridge.cc
@@ -142,7 +142,7 @@
   metadata.id = GetMetadataIdForSpecificsId(specifics.id());
   metadata.use_count = specifics.use_count();
   metadata.use_date = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(specifics.use_date()));
+      base::Microseconds(specifics.use_date()));
 
   switch (specifics.type()) {
     case WalletMetadataSpecifics::ADDRESS:
diff --git a/components/autofill/core/browser/webdata/autofill_wallet_metadata_sync_bridge_unittest.cc b/components/autofill/core/browser/webdata/autofill_wallet_metadata_sync_bridge_unittest.cc
index 87be161..a7be983 100644
--- a/components/autofill/core/browser/webdata/autofill_wallet_metadata_sync_bridge_unittest.cc
+++ b/components/autofill/core/browser/webdata/autofill_wallet_metadata_sync_bridge_unittest.cc
@@ -95,7 +95,7 @@
 
 base::Time UseDateFromProtoValue(int64_t use_date_proto_value) {
   return base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(use_date_proto_value));
+      base::Microseconds(use_date_proto_value));
 }
 
 const base::Time kDefaultTime = UseDateFromProtoValue(100);
@@ -461,7 +461,7 @@
   }
 
   void AdvanceTestClockByTwoYears() {
-    test_clock_.Advance(base::TimeDelta::FromDays(365 * 2));
+    test_clock_.Advance(base::Days(365 * 2));
   }
 
   AutofillWalletMetadataSyncBridge* bridge() { return bridge_.get(); }
diff --git a/components/autofill/core/common/autofill_constants.h b/components/autofill/core/common/autofill_constants.h
index 7a1e157..e9dcabd 100644
--- a/components/autofill/core/common/autofill_constants.h
+++ b/components/autofill/core/common/autofill_constants.h
@@ -80,10 +80,8 @@
 };
 
 // Constants for the soft/hard deletion of Autofill data.
-constexpr base::TimeDelta kDisusedDataModelTimeDelta =
-    base::TimeDelta::FromDays(180);
-constexpr base::TimeDelta kDisusedDataModelDeletionTimeDelta =
-    base::TimeDelta::FromDays(395);
+constexpr base::TimeDelta kDisusedDataModelTimeDelta = base::Days(180);
+constexpr base::TimeDelta kDisusedDataModelDeletionTimeDelta = base::Days(395);
 
 // Returns if the entry with the given |use_date| is deletable? (i.e. has not
 // been used for a long time).
diff --git a/components/autofill/ios/browser/autofill_java_script_feature.mm b/components/autofill/ios/browser/autofill_java_script_feature.mm
index 6d0a0b5..c83dc52 100644
--- a/components/autofill/ios/browser/autofill_java_script_feature.mm
+++ b/components/autofill/ios/browser/autofill_java_script_feature.mm
@@ -81,10 +81,9 @@
   parameters.push_back(base::Value(static_cast<int>(required_fields_count)));
   parameters.push_back(
       base::Value(restrict_unowned_fields_to_formless_checkout));
-  CallJavaScriptFunction(
-      frame, "autofill.extractForms", parameters,
-      autofill::CreateStringCallback(std::move(callback)),
-      base::TimeDelta::FromSeconds(kJavaScriptExecutionTimeoutInSeconds));
+  CallJavaScriptFunction(frame, "autofill.extractForms", parameters,
+                         autofill::CreateStringCallback(std::move(callback)),
+                         base::Seconds(kJavaScriptExecutionTimeoutInSeconds));
 }
 
 void AutofillJavaScriptFeature::FillActiveFormField(
@@ -104,10 +103,9 @@
 
   std::vector<base::Value> parameters;
   parameters.push_back(std::move(*data));
-  CallJavaScriptFunction(
-      frame, filling_function, parameters,
-      autofill::CreateBoolCallback(std::move(callback)),
-      base::TimeDelta::FromSeconds(kJavaScriptExecutionTimeoutInSeconds));
+  CallJavaScriptFunction(frame, filling_function, parameters,
+                         autofill::CreateBoolCallback(std::move(callback)),
+                         base::Seconds(kJavaScriptExecutionTimeoutInSeconds));
 }
 
 void AutofillJavaScriptFeature::FillForm(
@@ -134,10 +132,9 @@
   parameters.push_back(base::Value(field_string_id));
   parameters.push_back(base::Value(field_numeric_id));
   parameters.push_back(base::Value(use_renderer_ids));
-  CallJavaScriptFunction(
-      frame, "autofill.fillForm", parameters,
-      autofill::CreateStringCallback(std::move(callback)),
-      base::TimeDelta::FromSeconds(kJavaScriptExecutionTimeoutInSeconds));
+  CallJavaScriptFunction(frame, "autofill.fillForm", parameters,
+                         autofill::CreateStringCallback(std::move(callback)),
+                         base::Seconds(kJavaScriptExecutionTimeoutInSeconds));
 }
 
 void AutofillJavaScriptFeature::ClearAutofilledFieldsForFormName(
@@ -162,10 +159,9 @@
   parameters.push_back(base::Value(base::SysNSStringToUTF8(field_identifier)));
   parameters.push_back(base::Value(field_numeric_id));
   parameters.push_back(base::Value(use_renderer_ids));
-  CallJavaScriptFunction(
-      frame, "autofill.clearAutofilledFields", parameters,
-      autofill::CreateStringCallback(std::move(callback)),
-      base::TimeDelta::FromSeconds(kJavaScriptExecutionTimeoutInSeconds));
+  CallJavaScriptFunction(frame, "autofill.clearAutofilledFields", parameters,
+                         autofill::CreateStringCallback(std::move(callback)),
+                         base::Seconds(kJavaScriptExecutionTimeoutInSeconds));
 }
 
 void AutofillJavaScriptFeature::FillPredictionData(
diff --git a/components/autofill/ios/browser/autofill_util.mm b/components/autofill/ios/browser/autofill_util.mm
index 9b687d7..8ae44b6 100644
--- a/components/autofill/ios/browser/autofill_util.mm
+++ b/components/autofill/ios/browser/autofill_util.mm
@@ -291,7 +291,7 @@
         name, parameters, base::BindOnce(^(const base::Value* res) {
           std::move(cb).Run(res);
         }),
-        base::TimeDelta::FromSeconds(kJavaScriptExecutionTimeoutInSeconds));
+        base::Seconds(kJavaScriptExecutionTimeoutInSeconds));
     if (!called) {
       std::move(cb).Run(nil);
     }
diff --git a/components/autofill/ios/browser/suggestion_controller_java_script_feature.mm b/components/autofill/ios/browser/suggestion_controller_java_script_feature.mm
index eae6c553..82cddaac 100644
--- a/components/autofill/ios/browser/suggestion_controller_java_script_feature.mm
+++ b/components/autofill/ios/browser/suggestion_controller_java_script_feature.mm
@@ -131,7 +131,7 @@
       frame, "suggestion.hasPreviousNextElements", parameters,
       base::BindOnce(&ProcessPreviousAndNextElementsPresenceResult,
                      std::move(completion_handler)),
-      base::TimeDelta::FromSeconds(kJavaScriptExecutionTimeoutInSeconds));
+      base::Seconds(kJavaScriptExecutionTimeoutInSeconds));
 }
 
 void SuggestionControllerJavaScriptFeature::CloseKeyboardForFrame(
diff --git a/components/autofill_assistant/browser/actions/action_delegate_util_unittest.cc b/components/autofill_assistant/browser/actions/action_delegate_util_unittest.cc
index 6f13c85c..1bdda0d 100644
--- a/components/autofill_assistant/browser/actions/action_delegate_util_unittest.cc
+++ b/components/autofill_assistant/browser/actions/action_delegate_util_unittest.cc
@@ -131,8 +131,7 @@
       test_util::MockFindElement(*mock_delegate, expected_selector);
 
   EXPECT_CALL(*mock_delegate, WaitUntilDocumentIsInReadyState(_, _, _, _))
-      .WillOnce(RunOnceCallback<3>(OkClientStatus(),
-                                   base::TimeDelta::FromSeconds(0)));
+      .WillOnce(RunOnceCallback<3>(OkClientStatus(), base::Seconds(0)));
   // No second call to WaitUntilDocumentIsInReadyState.
   EXPECT_CALL(*this, MockDone(_)).Times(0);
 
@@ -140,8 +139,8 @@
 
   AddStepIgnoreTiming(
       base::BindOnce(&ActionDelegate::WaitUntilDocumentIsInReadyState,
-                     mock_delegate->GetWeakPtr(),
-                     base::TimeDelta::FromMilliseconds(0), DOCUMENT_COMPLETE),
+                     mock_delegate->GetWeakPtr(), base::Milliseconds(0),
+                     DOCUMENT_COMPLETE),
       actions.get());
   actions->emplace_back(base::BindOnce(
       [](base::OnceCallback<void()> destroy_delegate,
@@ -153,8 +152,8 @@
       base::BindLambdaForTesting([&]() { mock_delegate.reset(); })));
   AddStepIgnoreTiming(
       base::BindOnce(&ActionDelegate::WaitUntilDocumentIsInReadyState,
-                     mock_delegate->GetWeakPtr(),
-                     base::TimeDelta::FromMilliseconds(0), DOCUMENT_COMPLETE),
+                     mock_delegate->GetWeakPtr(), base::Milliseconds(0),
+                     DOCUMENT_COMPLETE),
       actions.get());
 
   FindElementAndPerform(
diff --git a/components/autofill_assistant/browser/actions/action_unittest.cc b/components/autofill_assistant/browser/actions/action_unittest.cc
index b10b3f9e..da9b852 100644
--- a/components/autofill_assistant/browser/actions/action_unittest.cc
+++ b/components/autofill_assistant/browser/actions/action_unittest.cc
@@ -78,7 +78,7 @@
 };
 
 ACTION_P(Delay, delay) {
-  TimeTicksOverride::now_ticks_ += base::TimeDelta::FromSeconds(delay);
+  TimeTicksOverride::now_ticks_ += base::Seconds(delay);
 }
 
 TEST_F(FakeActionTest, WaitForDomActionTest) {
@@ -87,9 +87,8 @@
   InSequence sequence;
 
   EXPECT_CALL(mock_action_delegate_, OnShortWaitForElement(_, _))
-      .WillOnce(DoAll(Delay(2), RunOnceCallback<1>(
-                                    OkClientStatus(),
-                                    base::TimeDelta::FromMilliseconds(500))));
+      .WillOnce(DoAll(Delay(2), RunOnceCallback<1>(OkClientStatus(),
+                                                   base::Milliseconds(500))));
 
   ProcessedActionProto processed_proto;
   EXPECT_CALL(callback_, Run(_)).WillOnce(SaveArgPointee<0>(&processed_proto));
@@ -106,9 +105,9 @@
   InSequence sequence;
 
   EXPECT_CALL(mock_action_delegate_, OnShortWaitForElement(_, _))
-      .WillOnce(DoAll(Delay(2), RunOnceCallback<1>(
-                                    ClientStatusWithWarning(WARNING_SHOWN),
-                                    base::TimeDelta::FromMilliseconds(500))));
+      .WillOnce(DoAll(Delay(2),
+                      RunOnceCallback<1>(ClientStatusWithWarning(WARNING_SHOWN),
+                                         base::Milliseconds(500))));
 
   ProcessedActionProto processed_proto;
   EXPECT_CALL(callback_, Run(_)).WillOnce(SaveArgPointee<0>(&processed_proto));
diff --git a/components/autofill_assistant/browser/actions/collect_user_data_action_unittest.cc b/components/autofill_assistant/browser/actions/collect_user_data_action_unittest.cc
index ae9930f..8c2864a 100644
--- a/components/autofill_assistant/browser/actions/collect_user_data_action_unittest.cc
+++ b/components/autofill_assistant/browser/actions/collect_user_data_action_unittest.cc
@@ -2266,7 +2266,7 @@
   autofill::test::SetProfileInfo(
       &address_old, "Berta", "", "West", "berta.west@gmail.com", "",
       "Baker Street 221b", "", "London", "", "WC2N 5DU", "UK", "+44");
-  address_old.set_use_date(current - base::TimeDelta::FromDays(2));
+  address_old.set_use_date(current - base::Days(2));
 
   ON_CALL(mock_personal_data_manager_, GetProfileByGUID("card_new"))
       .WillByDefault(Return(&address_new));
@@ -2283,7 +2283,7 @@
   autofill::test::SetCreditCardInfo(&card_old, "Berta West", "4111111111111111",
                                     "1", "2050",
                                     /* billing_address_id= */ "card_old");
-  card_old.set_use_date(current - base::TimeDelta::FromDays(2));
+  card_old.set_use_date(current - base::Days(2));
 
   ON_CALL(mock_personal_data_manager_, GetCreditCards())
       .WillByDefault(
diff --git a/components/autofill_assistant/browser/actions/configure_bottom_sheet_action.cc b/components/autofill_assistant/browser/actions/configure_bottom_sheet_action.cc
index ef53909..59caaee 100644
--- a/components/autofill_assistant/browser/actions/configure_bottom_sheet_action.cc
+++ b/components/autofill_assistant/browser/actions/configure_bottom_sheet_action.cc
@@ -42,8 +42,7 @@
     if (expect_resize) {
       callback_ = std::move(callback);
 
-      timer_.Start(FROM_HERE,
-                   base::TimeDelta::FromMilliseconds(proto.resize_timeout_ms()),
+      timer_.Start(FROM_HERE, base::Milliseconds(proto.resize_timeout_ms()),
                    base::BindOnce(&ConfigureBottomSheetAction::OnTimeout,
                                   weak_ptr_factory_.GetWeakPtr()));
 
diff --git a/components/autofill_assistant/browser/actions/configure_bottom_sheet_action_unittest.cc b/components/autofill_assistant/browser/actions/configure_bottom_sheet_action_unittest.cc
index bab9c0d7..18d74fe 100644
--- a/components/autofill_assistant/browser/actions/configure_bottom_sheet_action_unittest.cc
+++ b/components/autofill_assistant/browser/actions/configure_bottom_sheet_action_unittest.cc
@@ -77,8 +77,8 @@
   // Fast forward time enough for an action created by RunWithTimeout() to time
   // out.
   void ForceTimeout() {
-    task_env_.FastForwardBy(base::TimeDelta::FromMilliseconds(100));
-    task_env_.FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+    task_env_.FastForwardBy(base::Milliseconds(100));
+    task_env_.FastForwardBy(base::Milliseconds(100));
   }
 
   // task_env_ must be first to guarantee other field
diff --git a/components/autofill_assistant/browser/actions/fallback_handler/required_fields_fallback_handler.h b/components/autofill_assistant/browser/actions/fallback_handler/required_fields_fallback_handler.h
index da50cc4..a38f061 100644
--- a/components/autofill_assistant/browser/actions/fallback_handler/required_fields_fallback_handler.h
+++ b/components/autofill_assistant/browser/actions/fallback_handler/required_fields_fallback_handler.h
@@ -119,7 +119,7 @@
   base::OnceCallback<void(const ClientStatus&)> status_update_callback_;
   ActionDelegate* action_delegate_;
   std::unique_ptr<BatchElementChecker> batch_element_checker_;
-  base::TimeDelta total_wait_time_ = base::TimeDelta::FromSeconds(0);
+  base::TimeDelta total_wait_time_ = base::Seconds(0);
   base::WeakPtrFactory<RequiredFieldsFallbackHandler> weak_ptr_factory_{this};
 };
 
diff --git a/components/autofill_assistant/browser/actions/fallback_handler/required_fields_fallback_handler_unittest.cc b/components/autofill_assistant/browser/actions/fallback_handler/required_fields_fallback_handler_unittest.cc
index 3bba006..568f2eb 100644
--- a/components/autofill_assistant/browser/actions/fallback_handler/required_fields_fallback_handler_unittest.cc
+++ b/components/autofill_assistant/browser/actions/fallback_handler/required_fields_fallback_handler_unittest.cc
@@ -64,13 +64,11 @@
     ON_CALL(mock_web_controller_, SetValueAttribute(_, _, _))
         .WillByDefault(RunOnceCallback<2>(OkClientStatus()));
     ON_CALL(mock_action_delegate_, WaitUntilDocumentIsInReadyState(_, _, _, _))
-        .WillByDefault(RunOnceCallback<3>(OkClientStatus(),
-                                          base::TimeDelta::FromSeconds(0)));
+        .WillByDefault(RunOnceCallback<3>(OkClientStatus(), base::Seconds(0)));
     ON_CALL(mock_web_controller_, ScrollIntoView(_, _, _, _, _))
         .WillByDefault(RunOnceCallback<4>(OkClientStatus()));
     ON_CALL(mock_web_controller_, WaitUntilElementIsStable(_, _, _, _))
-        .WillByDefault(RunOnceCallback<3>(OkClientStatus(),
-                                          base::TimeDelta::FromSeconds(0)));
+        .WillByDefault(RunOnceCallback<3>(OkClientStatus(), base::Seconds(0)));
   }
 
  protected:
@@ -603,8 +601,7 @@
                                              /* case_sensitive= */ false);
   EXPECT_CALL(mock_action_delegate_,
               OnShortWaitForElement(expected_option_selector, _))
-      .WillOnce(RunOnceCallback<1>(OkClientStatus(),
-                                   base::TimeDelta::FromSeconds(0)));
+      .WillOnce(RunOnceCallback<1>(OkClientStatus(), base::Seconds(0)));
   EXPECT_CALL(
       mock_web_controller_,
       ClickOrTapElement(ClickType::TAP,
@@ -691,7 +688,7 @@
   EXPECT_CALL(mock_action_delegate_,
               OnShortWaitForElement(expected_option_selector, _))
       .WillOnce(RunOnceCallback<1>(ClientStatus(ELEMENT_RESOLUTION_FAILED),
-                                   base::TimeDelta::FromSeconds(0)));
+                                   base::Seconds(0)));
   EXPECT_CALL(mock_action_delegate_, FindElement(_, _))
       .Times(0)
       .After(main_click);
diff --git a/components/autofill_assistant/browser/actions/get_element_status_action_unittest.cc b/components/autofill_assistant/browser/actions/get_element_status_action_unittest.cc
index dd12473..90d6143 100644
--- a/components/autofill_assistant/browser/actions/get_element_status_action_unittest.cc
+++ b/components/autofill_assistant/browser/actions/get_element_status_action_unittest.cc
@@ -57,8 +57,7 @@
     ON_CALL(mock_action_delegate_, GetWebsiteLoginManager)
         .WillByDefault(Return(&mock_website_login_manager_));
     ON_CALL(mock_action_delegate_, OnShortWaitForElement(_, _))
-        .WillByDefault(RunOnceCallback<1>(OkClientStatus(),
-                                          base::TimeDelta::FromSeconds(0)));
+        .WillByDefault(RunOnceCallback<1>(OkClientStatus(), base::Seconds(0)));
     test_util::MockFindAnyElement(mock_action_delegate_);
     ON_CALL(mock_web_controller_, GetStringAttribute(_, _, _))
         .WillByDefault(RunOnceCallback<2>(OkClientStatus(), kValue));
@@ -111,8 +110,7 @@
       ->set_text(kValue);
 
   EXPECT_CALL(mock_action_delegate_, OnShortWaitForElement(selector, _))
-      .WillOnce(RunOnceCallback<1>(ClientStatus(TIMED_OUT),
-                                   base::TimeDelta::FromSeconds(0)));
+      .WillOnce(RunOnceCallback<1>(ClientStatus(TIMED_OUT), base::Seconds(0)));
 
   EXPECT_CALL(callback_,
               Run(Pointee(Property(&ProcessedActionProto::status, TIMED_OUT))));
diff --git a/components/autofill_assistant/browser/actions/highlight_element_action_unittest.cc b/components/autofill_assistant/browser/actions/highlight_element_action_unittest.cc
index 97e003b..32e761f3 100644
--- a/components/autofill_assistant/browser/actions/highlight_element_action_unittest.cc
+++ b/components/autofill_assistant/browser/actions/highlight_element_action_unittest.cc
@@ -62,8 +62,7 @@
   Selector expected_selector = selector;
   EXPECT_CALL(mock_action_delegate_,
               OnShortWaitForElement(expected_selector, _))
-      .WillOnce(RunOnceCallback<1>(ClientStatus(TIMED_OUT),
-                                   base::TimeDelta::FromSeconds(0)));
+      .WillOnce(RunOnceCallback<1>(ClientStatus(TIMED_OUT), base::Seconds(0)));
 
   EXPECT_CALL(callback_,
               Run(Pointee(Property(&ProcessedActionProto::status, TIMED_OUT))));
@@ -79,8 +78,7 @@
   Selector expected_selector = selector;
   EXPECT_CALL(mock_action_delegate_,
               OnShortWaitForElement(expected_selector, _))
-      .WillOnce(RunOnceCallback<1>(OkClientStatus(),
-                                   base::TimeDelta::FromSeconds(0)));
+      .WillOnce(RunOnceCallback<1>(OkClientStatus(), base::Seconds(0)));
   auto expected_element =
       test_util::MockFindElement(mock_action_delegate_, expected_selector);
   EXPECT_CALL(mock_web_controller_,
diff --git a/components/autofill_assistant/browser/actions/perform_on_single_element_action_unittest.cc b/components/autofill_assistant/browser/actions/perform_on_single_element_action_unittest.cc
index 45b98e3..d9fa25c 100644
--- a/components/autofill_assistant/browser/actions/perform_on_single_element_action_unittest.cc
+++ b/components/autofill_assistant/browser/actions/perform_on_single_element_action_unittest.cc
@@ -73,8 +73,7 @@
   ProcessedActionProto capture;
   EXPECT_CALL(callback_, Run(_)).WillOnce(testing::SaveArgPointee<0>(&capture));
   EXPECT_CALL(perform_timed_, Run(_, _))
-      .WillOnce(RunOnceCallback<1>(OkClientStatus(),
-                                   base::TimeDelta::FromSeconds(1)));
+      .WillOnce(RunOnceCallback<1>(OkClientStatus(), base::Seconds(1)));
 
   ClientIdProto client_id;
   auto action = PerformOnSingleElementAction::WithOptionalClientIdTimed(
@@ -121,8 +120,7 @@
   ProcessedActionProto capture;
   EXPECT_CALL(callback_, Run(_)).WillOnce(testing::SaveArgPointee<0>(&capture));
   EXPECT_CALL(perform_timed_, Run(EqualsElement(element), _))
-      .WillOnce(RunOnceCallback<1>(OkClientStatus(),
-                                   base::TimeDelta::FromSeconds(1)));
+      .WillOnce(RunOnceCallback<1>(OkClientStatus(), base::Seconds(1)));
 
   auto action = PerformOnSingleElementAction::WithClientIdTimed(
       &mock_action_delegate_, action_proto_, client_id_, perform_timed_.Get());
diff --git a/components/autofill_assistant/browser/actions/prompt_action_unittest.cc b/components/autofill_assistant/browser/actions/prompt_action_unittest.cc
index a94e00f5..56bf57f 100644
--- a/components/autofill_assistant/browser/actions/prompt_action_unittest.cc
+++ b/components/autofill_assistant/browser/actions/prompt_action_unittest.cc
@@ -88,8 +88,7 @@
     check_elements.Run(checker_.get(),
                        base::BindOnce(&PromptActionTest::OnCheckElementsDone,
                                       base::Unretained(this)));
-    task_env_.FastForwardBy(
-        base::TimeDelta::FromMilliseconds(fake_check_time_));
+    task_env_.FastForwardBy(base::Milliseconds(fake_check_time_));
     checker_->AddAllDoneCallback(
         base::BindOnce(&PromptActionTest::OnWaitForDomDone,
                        base::Unretained(this), check_elements));
@@ -117,12 +116,11 @@
 
     if (check_elements_result_.ok()) {
       std::move(fake_wait_for_dom_done_)
-          .Run(check_elements_result_,
-               base::TimeDelta::FromMilliseconds(fake_wait_time_));
+          .Run(check_elements_result_, base::Milliseconds(fake_wait_time_));
     } else {
       wait_for_dom_timer_ = std::make_unique<base::OneShotTimer>();
       wait_for_dom_timer_->Start(
-          FROM_HERE, base::TimeDelta::FromSeconds(1),
+          FROM_HERE, base::Seconds(1),
           base::BindOnce(&PromptActionTest::RunFakeWaitForDom,
                          base::Unretained(this), check_elements));
     }
@@ -234,13 +232,13 @@
         std::move(callback).Run(OkClientStatus(),
                                 std::make_unique<ElementFinder::Result>());
       }));
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_env_.FastForwardBy(base::Seconds(1));
   ASSERT_THAT(user_actions_, Pointee(SizeIs(1)));
 
   EXPECT_CALL(mock_web_controller_, OnFindElement(Selector({"element"}), _))
       .WillRepeatedly(
           RunOnceCallback<1>(ClientStatus(ELEMENT_RESOLUTION_FAILED), nullptr));
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_env_.FastForwardBy(base::Seconds(1));
   ASSERT_THAT(user_actions_, Pointee(IsEmpty()));
 }
 
@@ -270,7 +268,7 @@
   PromptAction action(&mock_action_delegate_, proto_);
   action.ProcessAction(callback_.Get());
 
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(3));
+  task_env_.FastForwardBy(base::Seconds(3));
   ASSERT_THAT(user_actions_, Pointee(SizeIs(1)));
 
   ProcessedActionProto capture;
@@ -298,14 +296,14 @@
         std::move(callback).Run(OkClientStatus(),
                                 std::make_unique<ElementFinder::Result>());
       }));
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_env_.FastForwardBy(base::Seconds(1));
   ASSERT_THAT(user_actions_, Pointee(SizeIs(1)));
   EXPECT_TRUE((*user_actions_)[0].enabled());
 
   EXPECT_CALL(mock_web_controller_, OnFindElement(Selector({"element"}), _))
       .WillRepeatedly(
           RunOnceCallback<1>(ClientStatus(ELEMENT_RESOLUTION_FAILED), nullptr));
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_env_.FastForwardBy(base::Seconds(1));
   ASSERT_THAT(user_actions_, Pointee(SizeIs(1)));
   EXPECT_FALSE((*user_actions_)[0].enabled());
   EXPECT_TRUE((*user_actions_)[0].HasCallback());
@@ -334,7 +332,7 @@
                         Property(&ProcessedActionProto::prompt_choice,
                                  Property(&PromptProto::Result::server_payload,
                                           "auto-select"))))));
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_env_.FastForwardBy(base::Seconds(1));
 }
 
 TEST_F(PromptActionTest, TimingStatsAutoSelect) {
@@ -357,7 +355,7 @@
   EXPECT_CALL(mock_action_delegate_, CleanUpAfterPrompt());
   ProcessedActionProto capture;
   EXPECT_CALL(callback_, Run(_)).WillOnce(SaveArgPointee<0>(&capture));
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_env_.FastForwardBy(base::Seconds(1));
   EXPECT_EQ(capture.timing_stats().active_time_ms(), 500);
   EXPECT_EQ(capture.timing_stats().wait_time_ms(), 500);
 }
@@ -389,7 +387,7 @@
                         Property(&ProcessedActionProto::prompt_choice,
                                  Property(&PromptProto::Result::server_payload,
                                           "auto-select"))))));
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_env_.FastForwardBy(base::Seconds(1));
 }
 
 TEST_F(PromptActionTest, Terminate) {
@@ -506,7 +504,7 @@
   EXPECT_THAT(user_actions_, Pointee(SizeIs(0)));
 
   // First round of element checks: element doesn't exist.
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_env_.FastForwardBy(base::Seconds(1));
 
   // Second round of element checks: an interrupt ran and failed. No choice was
   // selected.
@@ -519,7 +517,7 @@
                        Property(&PromptProto::Result::server_payload, ""))))));
   ASSERT_TRUE(fake_wait_for_dom_done_);
   std::move(fake_wait_for_dom_done_)
-      .Run(ClientStatus(INTERRUPT_FAILED), base::TimeDelta::FromSeconds(0));
+      .Run(ClientStatus(INTERRUPT_FAILED), base::Seconds(0));
 }
 
 TEST_F(PromptActionTest, EndActionOnNavigation) {
@@ -558,8 +556,7 @@
                          base::OnceCallback<void()> callback, bool browse_mode,
                          bool browse_mode_invisible) {
             user_actions_ = std::move(user_actions);
-            timer->Start(FROM_HERE, base::TimeDelta::FromSeconds(1),
-                         std::move(callback));
+            timer->Start(FROM_HERE, base::Seconds(1), std::move(callback));
           });
 
   prompt_proto_->set_end_on_navigation(true);
diff --git a/components/autofill_assistant/browser/actions/select_option_action_unittest.cc b/components/autofill_assistant/browser/actions/select_option_action_unittest.cc
index f25b7a5..a394ef6 100644
--- a/components/autofill_assistant/browser/actions/select_option_action_unittest.cc
+++ b/components/autofill_assistant/browser/actions/select_option_action_unittest.cc
@@ -118,8 +118,7 @@
   Selector expected_selector = selector;
   EXPECT_CALL(mock_action_delegate_,
               OnShortWaitForElement(expected_selector, _))
-      .WillOnce(RunOnceCallback<1>(OkClientStatus(),
-                                   base::TimeDelta::FromSeconds(0)));
+      .WillOnce(RunOnceCallback<1>(OkClientStatus(), base::Seconds(0)));
   auto expected_element =
       test_util::MockFindElement(mock_action_delegate_, expected_selector);
   EXPECT_CALL(mock_web_controller_,
@@ -195,8 +194,7 @@
   Selector expected_selector = selector;
   EXPECT_CALL(mock_action_delegate_,
               OnShortWaitForElement(expected_selector, _))
-      .WillOnce(RunOnceCallback<1>(OkClientStatus(),
-                                   base::TimeDelta::FromSeconds(0)));
+      .WillOnce(RunOnceCallback<1>(OkClientStatus(), base::Seconds(0)));
   EXPECT_CALL(mock_web_controller_,
               SelectOption("John", false, SelectOptionProto::VALUE, false,
                            EqualsElement(test_util::MockFindElement(
@@ -221,8 +219,7 @@
   Selector expected_selector = selector;
   EXPECT_CALL(mock_action_delegate_,
               OnShortWaitForElement(expected_selector, _))
-      .WillOnce(RunOnceCallback<1>(OkClientStatus(),
-                                   base::TimeDelta::FromSeconds(0)));
+      .WillOnce(RunOnceCallback<1>(OkClientStatus(), base::Seconds(0)));
   auto expected_element =
       test_util::MockFindElement(mock_action_delegate_, expected_selector);
   EXPECT_CALL(mock_web_controller_,
@@ -262,8 +259,7 @@
   Selector expected_selector = selector;
   EXPECT_CALL(mock_action_delegate_,
               OnShortWaitForElement(expected_selector, _))
-      .WillOnce(RunOnceCallback<1>(OkClientStatus(),
-                                   base::TimeDelta::FromSeconds(0)));
+      .WillOnce(RunOnceCallback<1>(OkClientStatus(), base::Seconds(0)));
   EXPECT_CALL(
       mock_web_controller_,
       SelectOption("^\\+41791234567$", true, SelectOptionProto::VALUE, false,
diff --git a/components/autofill_assistant/browser/actions/set_attribute_action_unittest.cc b/components/autofill_assistant/browser/actions/set_attribute_action_unittest.cc
index 256987a..01e811b 100644
--- a/components/autofill_assistant/browser/actions/set_attribute_action_unittest.cc
+++ b/components/autofill_assistant/browser/actions/set_attribute_action_unittest.cc
@@ -65,8 +65,7 @@
   Selector expected_selector = selector;
   EXPECT_CALL(mock_action_delegate_,
               OnShortWaitForElement(expected_selector, _))
-      .WillOnce(RunOnceCallback<1>(OkClientStatus(),
-                                   base::TimeDelta::FromSeconds(0)));
+      .WillOnce(RunOnceCallback<1>(OkClientStatus(), base::Seconds(0)));
   auto expected_element =
       test_util::MockFindElement(mock_action_delegate_, expected_selector);
   std::vector<std::string> expected_attributes = {"value"};
diff --git a/components/autofill_assistant/browser/actions/show_cast_action.cc b/components/autofill_assistant/browser/actions/show_cast_action.cc
index a7b302d..414de427 100644
--- a/components/autofill_assistant/browser/actions/show_cast_action.cc
+++ b/components/autofill_assistant/browser/actions/show_cast_action.cc
@@ -129,7 +129,7 @@
           base::BindOnce(&WebController::WaitUntilElementIsStable,
                          delegate_->GetWebController()->GetWeakPtr(),
                          proto_.show_cast().stable_check_max_rounds(),
-                         base::TimeDelta::FromMilliseconds(
+                         base::Milliseconds(
                              proto_.show_cast().stable_check_interval_ms()))),
       actions.get());
   action_delegate_util::AddStepWithoutCallback(
diff --git a/components/autofill_assistant/browser/actions/show_cast_action_unittest.cc b/components/autofill_assistant/browser/actions/show_cast_action_unittest.cc
index 996f986..7d7e6613 100644
--- a/components/autofill_assistant/browser/actions/show_cast_action_unittest.cc
+++ b/components/autofill_assistant/browser/actions/show_cast_action_unittest.cc
@@ -64,8 +64,7 @@
   Selector expected_selector = selector;
   EXPECT_CALL(mock_action_delegate_,
               OnShortWaitForElement(expected_selector, _))
-      .WillOnce(RunOnceCallback<1>(ClientStatus(TIMED_OUT),
-                                   base::TimeDelta::FromSeconds(0)));
+      .WillOnce(RunOnceCallback<1>(ClientStatus(TIMED_OUT), base::Seconds(0)));
   EXPECT_CALL(mock_action_delegate_, StoreScrolledToElement(_)).Times(0);
   EXPECT_CALL(mock_action_delegate_, SetTouchableElementArea(_)).Times(0);
 
@@ -82,15 +81,13 @@
 
   EXPECT_CALL(mock_action_delegate_,
               OnShortWaitForElement(expected_selector, _))
-      .WillOnce(RunOnceCallback<1>(OkClientStatus(),
-                                   base::TimeDelta::FromSeconds(1)));
+      .WillOnce(RunOnceCallback<1>(OkClientStatus(), base::Seconds(1)));
   auto expected_element =
       test_util::MockFindElement(mock_action_delegate_, expected_selector);
   EXPECT_CALL(mock_action_delegate_,
               WaitUntilDocumentIsInReadyState(
                   _, DOCUMENT_INTERACTIVE, EqualsElement(expected_element), _))
-      .WillOnce(RunOnceCallback<3>(OkClientStatus(),
-                                   base::TimeDelta::FromSeconds(2)));
+      .WillOnce(RunOnceCallback<3>(OkClientStatus(), base::Seconds(2)));
   EXPECT_CALL(mock_action_delegate_,
               StoreScrolledToElement(EqualsElement(expected_element)));
   EXPECT_CALL(mock_web_controller_,
@@ -117,8 +114,7 @@
 
   EXPECT_CALL(mock_action_delegate_,
               OnShortWaitForElement(expected_selector, _))
-      .WillOnce(RunOnceCallback<1>(OkClientStatus(),
-                                   base::TimeDelta::FromSeconds(1)));
+      .WillOnce(RunOnceCallback<1>(OkClientStatus(), base::Seconds(1)));
 
   auto expected_container = test_util::MockFindElement(
       mock_action_delegate_, expected_container_selector);
@@ -127,8 +123,7 @@
   EXPECT_CALL(mock_action_delegate_,
               WaitUntilDocumentIsInReadyState(
                   _, DOCUMENT_INTERACTIVE, EqualsElement(expected_element), _))
-      .WillOnce(RunOnceCallback<3>(OkClientStatus(),
-                                   base::TimeDelta::FromSeconds(2)));
+      .WillOnce(RunOnceCallback<3>(OkClientStatus(), base::Seconds(2)));
   EXPECT_CALL(mock_action_delegate_,
               StoreScrolledToElement(EqualsElement(expected_element)));
   EXPECT_CALL(
@@ -155,23 +150,20 @@
 
   EXPECT_CALL(mock_action_delegate_,
               OnShortWaitForElement(expected_selector, _))
-      .WillOnce(RunOnceCallback<1>(OkClientStatus(),
-                                   base::TimeDelta::FromSeconds(0)));
+      .WillOnce(RunOnceCallback<1>(OkClientStatus(), base::Seconds(0)));
   auto expected_element =
       test_util::MockFindElement(mock_action_delegate_, expected_selector);
   EXPECT_CALL(mock_action_delegate_,
               WaitUntilDocumentIsInReadyState(
                   _, DOCUMENT_INTERACTIVE, EqualsElement(expected_element), _))
-      .WillOnce(RunOnceCallback<3>(OkClientStatus(),
-                                   base::TimeDelta::FromSeconds(0)));
+      .WillOnce(RunOnceCallback<3>(OkClientStatus(), base::Seconds(0)));
   EXPECT_CALL(mock_web_controller_,
               ScrollIntoViewIfNeeded(true, EqualsElement(expected_element), _))
       .WillOnce(RunOnceCallback<2>(OkClientStatus()));
   EXPECT_CALL(
       mock_web_controller_,
       WaitUntilElementIsStable(_, _, EqualsElement(expected_element), _))
-      .WillOnce(RunOnceCallback<3>(OkClientStatus(),
-                                   base::TimeDelta::FromSeconds(1)));
+      .WillOnce(RunOnceCallback<3>(OkClientStatus(), base::Seconds(1)));
   EXPECT_CALL(mock_action_delegate_,
               StoreScrolledToElement(EqualsElement(expected_element)));
   EXPECT_CALL(mock_web_controller_,
diff --git a/components/autofill_assistant/browser/actions/show_details_action.cc b/components/autofill_assistant/browser/actions/show_details_action.cc
index fcf0228..51a9f46a 100644
--- a/components/autofill_assistant/browser/actions/show_details_action.cc
+++ b/components/autofill_assistant/browser/actions/show_details_action.cc
@@ -60,7 +60,7 @@
     UpdateProcessedAction(INVALID_ACTION);
   } else {
     base::TimeDelta delay =
-        base::TimeDelta::FromMilliseconds(proto_.show_details().delay_ms());
+        base::Milliseconds(proto_.show_details().delay_ms());
     if (proto_.show_details().append()) {
       delegate_->AppendDetails(std::move(details), delay);
     } else {
diff --git a/components/autofill_assistant/browser/actions/stopwatch.cc b/components/autofill_assistant/browser/actions/stopwatch.cc
index 2863b4a..4a7f7dd 100644
--- a/components/autofill_assistant/browser/actions/stopwatch.cc
+++ b/components/autofill_assistant/browser/actions/stopwatch.cc
@@ -59,7 +59,7 @@
   if (elapsed_time_ > time) {
     elapsed_time_ -= time;
   } else {
-    elapsed_time_ = base::TimeDelta::FromMilliseconds(0);
+    elapsed_time_ = base::Milliseconds(0);
     if (running_) {
       start_time_ += (time - elapsed_time_);
     }
@@ -72,7 +72,7 @@
 
 void Stopwatch::Reset() {
   Stop();
-  elapsed_time_ = base::TimeDelta::FromMilliseconds(0);
+  elapsed_time_ = base::Milliseconds(0);
 }
 
 base::TimeDelta Stopwatch::TotalElapsed() const {
@@ -81,10 +81,9 @@
 
 base::TimeDelta Stopwatch::LastElapsedAt(base::TimeTicks time) const {
   if (!running_) {
-    return base::TimeDelta::FromMilliseconds(0);
+    return base::Milliseconds(0);
   }
-  return time > start_time_ ? time - start_time_
-                            : base::TimeDelta::FromMilliseconds(0);
+  return time > start_time_ ? time - start_time_ : base::Milliseconds(0);
 }
 
 bool Stopwatch::IsRunning() const {
diff --git a/components/autofill_assistant/browser/actions/stopwatch_unittest.cc b/components/autofill_assistant/browser/actions/stopwatch_unittest.cc
index ffa8d2c9..b369ca1 100644
--- a/components/autofill_assistant/browser/actions/stopwatch_unittest.cc
+++ b/components/autofill_assistant/browser/actions/stopwatch_unittest.cc
@@ -33,51 +33,51 @@
   EXPECT_FALSE(stopwatch_.Start());
   EXPECT_TRUE(stopwatch_.IsRunning());
 
-  TimeTicksOverride::now_ticks_ += base::TimeDelta::FromSeconds(1);
-  EXPECT_EQ(base::TimeDelta::FromSeconds(1), stopwatch_.TotalElapsed());
+  TimeTicksOverride::now_ticks_ += base::Seconds(1);
+  EXPECT_EQ(base::Seconds(1), stopwatch_.TotalElapsed());
 
-  TimeTicksOverride::now_ticks_ += base::TimeDelta::FromSeconds(2);
+  TimeTicksOverride::now_ticks_ += base::Seconds(2);
   EXPECT_TRUE(stopwatch_.Stop());
   EXPECT_FALSE(stopwatch_.Stop());
-  EXPECT_EQ(base::TimeDelta::FromSeconds(3), stopwatch_.TotalElapsed());
+  EXPECT_EQ(base::Seconds(3), stopwatch_.TotalElapsed());
 
-  TimeTicksOverride::now_ticks_ += base::TimeDelta::FromSeconds(2);
+  TimeTicksOverride::now_ticks_ += base::Seconds(2);
   EXPECT_TRUE(stopwatch_.Start());
-  TimeTicksOverride::now_ticks_ += base::TimeDelta::FromSeconds(1);
-  EXPECT_EQ(base::TimeDelta::FromSeconds(4), stopwatch_.TotalElapsed());
-  TimeTicksOverride::now_ticks_ += base::TimeDelta::FromSeconds(1);
+  TimeTicksOverride::now_ticks_ += base::Seconds(1);
+  EXPECT_EQ(base::Seconds(4), stopwatch_.TotalElapsed());
+  TimeTicksOverride::now_ticks_ += base::Seconds(1);
   EXPECT_TRUE(stopwatch_.Stop());
-  EXPECT_EQ(base::TimeDelta::FromSeconds(5), stopwatch_.TotalElapsed());
+  EXPECT_EQ(base::Seconds(5), stopwatch_.TotalElapsed());
 }
 
 TEST_F(StopwatchTest, AddTime) {
   base::subtle::ScopedTimeClockOverrides overrides(
       nullptr, &TimeTicksOverride::Now, nullptr);
   stopwatch_.Start();
-  TimeTicksOverride::now_ticks_ += base::TimeDelta::FromSeconds(1);
+  TimeTicksOverride::now_ticks_ += base::Seconds(1);
   stopwatch_.Stop();
-  stopwatch_.AddTime(base::TimeDelta::FromSeconds(2));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(3), stopwatch_.TotalElapsed());
+  stopwatch_.AddTime(base::Seconds(2));
+  EXPECT_EQ(base::Seconds(3), stopwatch_.TotalElapsed());
 }
 
 TEST_F(StopwatchTest, RemoveTime) {
   base::subtle::ScopedTimeClockOverrides overrides(
       nullptr, &TimeTicksOverride::Now, nullptr);
   stopwatch_.Start();
-  TimeTicksOverride::now_ticks_ += base::TimeDelta::FromSeconds(2);
+  TimeTicksOverride::now_ticks_ += base::Seconds(2);
   stopwatch_.Stop();
-  stopwatch_.RemoveTime(base::TimeDelta::FromSeconds(1));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(1), stopwatch_.TotalElapsed());
+  stopwatch_.RemoveTime(base::Seconds(1));
+  EXPECT_EQ(base::Seconds(1), stopwatch_.TotalElapsed());
 }
 
 TEST_F(StopwatchTest, RemoveGreaterThanElapsed) {
   base::subtle::ScopedTimeClockOverrides overrides(
       nullptr, &TimeTicksOverride::Now, nullptr);
   stopwatch_.Start();
-  TimeTicksOverride::now_ticks_ += base::TimeDelta::FromSeconds(1);
+  TimeTicksOverride::now_ticks_ += base::Seconds(1);
   stopwatch_.Stop();
-  stopwatch_.RemoveTime(base::TimeDelta::FromSeconds(2));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(0), stopwatch_.TotalElapsed());
+  stopwatch_.RemoveTime(base::Seconds(2));
+  EXPECT_EQ(base::Seconds(0), stopwatch_.TotalElapsed());
 }
 
 // This parameterized test uses 4 parameters: time to start at, time to stop at,
@@ -105,20 +105,17 @@
   long expected_while_running = std::get<2>(GetParam());
   long expected = std::get<3>(GetParam());
   if (start_at) {
-    stopwatch_.StartAt(TimeTicksOverride::now_ticks_ +
-                       base::TimeDelta::FromSeconds(start_at));
+    stopwatch_.StartAt(TimeTicksOverride::now_ticks_ + base::Seconds(start_at));
   } else {
     stopwatch_.Start();
   }
-  EXPECT_EQ(base::TimeDelta::FromSeconds(expected_while_running),
-            stopwatch_.TotalElapsed());
+  EXPECT_EQ(base::Seconds(expected_while_running), stopwatch_.TotalElapsed());
   if (stop_at) {
-    stopwatch_.StopAt(TimeTicksOverride::now_ticks_ +
-                      base::TimeDelta::FromSeconds(stop_at));
+    stopwatch_.StopAt(TimeTicksOverride::now_ticks_ + base::Seconds(stop_at));
   } else {
     stopwatch_.Stop();
   }
-  EXPECT_EQ(base::TimeDelta::FromSeconds(expected), stopwatch_.TotalElapsed());
+  EXPECT_EQ(base::Seconds(expected), stopwatch_.TotalElapsed());
 }
 
 class ActionStopwatchTest : public testing::Test {
@@ -130,56 +127,52 @@
   base::subtle::ScopedTimeClockOverrides overrides(
       nullptr, &TimeTicksOverride::Now, nullptr);
   action_stopwatch_.StartActiveTime();
-  TimeTicksOverride::now_ticks_ += base::TimeDelta::FromSeconds(1);
+  TimeTicksOverride::now_ticks_ += base::Seconds(1);
   action_stopwatch_.StartWaitTime();
-  TimeTicksOverride::now_ticks_ += base::TimeDelta::FromSeconds(2);
+  TimeTicksOverride::now_ticks_ += base::Seconds(2);
   action_stopwatch_.Stop();
-  EXPECT_EQ(base::TimeDelta::FromSeconds(1),
-            action_stopwatch_.TotalActiveTime());
-  EXPECT_EQ(base::TimeDelta::FromSeconds(2), action_stopwatch_.TotalWaitTime());
+  EXPECT_EQ(base::Seconds(1), action_stopwatch_.TotalActiveTime());
+  EXPECT_EQ(base::Seconds(2), action_stopwatch_.TotalWaitTime());
 }
 
 TEST_F(ActionStopwatchTest, TransferToActive) {
   base::subtle::ScopedTimeClockOverrides overrides(
       nullptr, &TimeTicksOverride::Now, nullptr);
   action_stopwatch_.StartActiveTime();
-  TimeTicksOverride::now_ticks_ += base::TimeDelta::FromSeconds(4);
+  TimeTicksOverride::now_ticks_ += base::Seconds(4);
   action_stopwatch_.StartWaitTime();
-  TimeTicksOverride::now_ticks_ += base::TimeDelta::FromSeconds(2);
+  TimeTicksOverride::now_ticks_ += base::Seconds(2);
   action_stopwatch_.Stop();
-  action_stopwatch_.TransferToActiveTime(base::TimeDelta::FromSeconds(3));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(7),
-            action_stopwatch_.TotalActiveTime());
-  EXPECT_EQ(base::TimeDelta::FromSeconds(0), action_stopwatch_.TotalWaitTime());
+  action_stopwatch_.TransferToActiveTime(base::Seconds(3));
+  EXPECT_EQ(base::Seconds(7), action_stopwatch_.TotalActiveTime());
+  EXPECT_EQ(base::Seconds(0), action_stopwatch_.TotalWaitTime());
 }
 
 TEST_F(ActionStopwatchTest, TransferToWait) {
   base::subtle::ScopedTimeClockOverrides overrides(
       nullptr, &TimeTicksOverride::Now, nullptr);
   action_stopwatch_.StartActiveTime();
-  TimeTicksOverride::now_ticks_ += base::TimeDelta::FromSeconds(2);
+  TimeTicksOverride::now_ticks_ += base::Seconds(2);
   action_stopwatch_.StartWaitTime();
-  TimeTicksOverride::now_ticks_ += base::TimeDelta::FromSeconds(4);
+  TimeTicksOverride::now_ticks_ += base::Seconds(4);
   action_stopwatch_.Stop();
-  action_stopwatch_.TransferToWaitTime(base::TimeDelta::FromSeconds(3));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(0),
-            action_stopwatch_.TotalActiveTime());
-  EXPECT_EQ(base::TimeDelta::FromSeconds(7), action_stopwatch_.TotalWaitTime());
+  action_stopwatch_.TransferToWaitTime(base::Seconds(3));
+  EXPECT_EQ(base::Seconds(0), action_stopwatch_.TotalActiveTime());
+  EXPECT_EQ(base::Seconds(7), action_stopwatch_.TotalWaitTime());
 }
 
 TEST_F(ActionStopwatchTest, StartTimesAt) {
   base::subtle::ScopedTimeClockOverrides overrides(
       nullptr, &TimeTicksOverride::Now, nullptr);
   action_stopwatch_.StartActiveTimeAt(TimeTicksOverride::now_ticks_ +
-                                      base::TimeDelta::FromSeconds(1));
-  TimeTicksOverride::now_ticks_ += base::TimeDelta::FromSeconds(5);
+                                      base::Seconds(1));
+  TimeTicksOverride::now_ticks_ += base::Seconds(5);
   action_stopwatch_.StartWaitTimeAt(TimeTicksOverride::now_ticks_ -
-                                    base::TimeDelta::FromSeconds(1));
-  TimeTicksOverride::now_ticks_ += base::TimeDelta::FromSeconds(2);
+                                    base::Seconds(1));
+  TimeTicksOverride::now_ticks_ += base::Seconds(2);
   action_stopwatch_.Stop();
-  EXPECT_EQ(base::TimeDelta::FromSeconds(3),
-            action_stopwatch_.TotalActiveTime());
-  EXPECT_EQ(base::TimeDelta::FromSeconds(3), action_stopwatch_.TotalWaitTime());
+  EXPECT_EQ(base::Seconds(3), action_stopwatch_.TotalActiveTime());
+  EXPECT_EQ(base::Seconds(3), action_stopwatch_.TotalWaitTime());
 }
 
 }  // namespace
diff --git a/components/autofill_assistant/browser/actions/upload_dom_action_unittest.cc b/components/autofill_assistant/browser/actions/upload_dom_action_unittest.cc
index b6588ae..cd0190ee 100644
--- a/components/autofill_assistant/browser/actions/upload_dom_action_unittest.cc
+++ b/components/autofill_assistant/browser/actions/upload_dom_action_unittest.cc
@@ -72,8 +72,7 @@
   *proto_.mutable_tree_root() = selector.proto;
 
   EXPECT_CALL(mock_action_delegate_, OnShortWaitForElement(selector, _))
-      .WillOnce(RunOnceCallback<1>(ClientStatus(TIMED_OUT),
-                                   base::TimeDelta::FromSeconds(0)));
+      .WillOnce(RunOnceCallback<1>(ClientStatus(TIMED_OUT), base::Seconds(0)));
 
   EXPECT_CALL(
       callback_,
@@ -91,8 +90,7 @@
   proto_.set_include_all_inner_text(true);
 
   EXPECT_CALL(mock_action_delegate_, OnShortWaitForElement(selector, _))
-      .WillOnce(RunOnceCallback<1>(OkClientStatus(),
-                                   base::TimeDelta::FromSeconds(0)));
+      .WillOnce(RunOnceCallback<1>(OkClientStatus(), base::Seconds(0)));
   auto expected_element =
       test_util::MockFindElement(mock_action_delegate_, selector);
   EXPECT_CALL(mock_web_controller_,
@@ -118,8 +116,7 @@
   // too. Failing FindElement is however the more interesting test than failing
   // GetOuterHtml.
   EXPECT_CALL(mock_action_delegate_, OnShortWaitForElement(selector, _))
-      .WillOnce(RunOnceCallback<1>(OkClientStatus(),
-                                   base::TimeDelta::FromSeconds(0)));
+      .WillOnce(RunOnceCallback<1>(OkClientStatus(), base::Seconds(0)));
   EXPECT_CALL(mock_action_delegate_, FindElement(selector, _))
       .WillOnce(
           RunOnceCallback<1>(ClientStatus(ELEMENT_RESOLUTION_FAILED), nullptr));
@@ -141,8 +138,7 @@
   *proto_.mutable_tree_root() = selector.proto;
 
   EXPECT_CALL(mock_action_delegate_, OnShortWaitForElement(selector, _))
-      .WillOnce(RunOnceCallback<1>(OkClientStatus(),
-                                   base::TimeDelta::FromSeconds(0)));
+      .WillOnce(RunOnceCallback<1>(OkClientStatus(), base::Seconds(0)));
   auto expected_element =
       test_util::MockFindElement(mock_action_delegate_, selector);
   EXPECT_CALL(mock_web_controller_,
@@ -167,8 +163,7 @@
   proto_.set_include_all_inner_text(true);
 
   EXPECT_CALL(mock_action_delegate_, OnShortWaitForElement(selector, _))
-      .WillOnce(RunOnceCallback<1>(OkClientStatus(),
-                                   base::TimeDelta::FromSeconds(0)));
+      .WillOnce(RunOnceCallback<1>(OkClientStatus(), base::Seconds(0)));
 
   EXPECT_CALL(mock_action_delegate_, FindAllElements(selector, _))
       .WillOnce(testing::WithArgs<1>([](auto&& callback) {
@@ -203,8 +198,7 @@
   proto_.set_can_match_multiple_elements(true);
 
   EXPECT_CALL(mock_action_delegate_, OnShortWaitForElement(selector, _))
-      .WillOnce(RunOnceCallback<1>(OkClientStatus(),
-                                   base::TimeDelta::FromSeconds(0)));
+      .WillOnce(RunOnceCallback<1>(OkClientStatus(), base::Seconds(0)));
 
   EXPECT_CALL(mock_action_delegate_, FindAllElements(selector, _))
       .WillOnce(testing::WithArgs<1>([](auto&& callback) {
diff --git a/components/autofill_assistant/browser/actions/use_address_action_unittest.cc b/components/autofill_assistant/browser/actions/use_address_action_unittest.cc
index d00a16dd8..17033cc 100644
--- a/components/autofill_assistant/browser/actions/use_address_action_unittest.cc
+++ b/components/autofill_assistant/browser/actions/use_address_action_unittest.cc
@@ -73,8 +73,7 @@
           checker->Run(&mock_web_controller_);
         }));
     ON_CALL(mock_action_delegate_, OnShortWaitForElement(_, _))
-        .WillByDefault(RunOnceCallback<1>(OkClientStatus(),
-                                          base::TimeDelta::FromSeconds(0)));
+        .WillByDefault(RunOnceCallback<1>(OkClientStatus(), base::Seconds(0)));
     test_util::MockFindAnyElement(mock_web_controller_);
   }
 
@@ -149,8 +148,7 @@
 
 TEST_F(UseAddressActionTest, ResolveProfileByNameSucceeds) {
   ON_CALL(mock_action_delegate_, OnShortWaitForElement(fake_selector_, _))
-      .WillByDefault(RunOnceCallback<1>(OkClientStatus(),
-                                        base::TimeDelta::FromSeconds(0)));
+      .WillByDefault(RunOnceCallback<1>(OkClientStatus(), base::Seconds(0)));
   ON_CALL(mock_web_controller_, GetFieldValue(_, _))
       .WillByDefault(RunOnceCallback<1>(OkClientStatus(), "not empty"));
 
@@ -186,8 +184,7 @@
 
 TEST_F(UseAddressActionTest, ResolveProfileByModelIdentifierSucceeds) {
   ON_CALL(mock_action_delegate_, OnShortWaitForElement(fake_selector_, _))
-      .WillByDefault(RunOnceCallback<1>(OkClientStatus(),
-                                        base::TimeDelta::FromSeconds(0)));
+      .WillByDefault(RunOnceCallback<1>(OkClientStatus(), base::Seconds(0)));
   ON_CALL(mock_web_controller_, GetFieldValue(_, _))
       .WillByDefault(RunOnceCallback<1>(OkClientStatus(), "not empty"));
 
@@ -232,8 +229,7 @@
 
 TEST_F(UseAddressActionTest, ShortWaitForElementVisible) {
   EXPECT_CALL(mock_action_delegate_, OnShortWaitForElement(fake_selector_, _))
-      .WillOnce(RunOnceCallback<1>(OkClientStatus(),
-                                   base::TimeDelta::FromSeconds(0)));
+      .WillOnce(RunOnceCallback<1>(OkClientStatus(), base::Seconds(0)));
 
   ActionProto action_proto = CreateUseAddressAction();
   // Autofill succeeds.
@@ -576,15 +572,13 @@
   EXPECT_CALL(mock_action_delegate_,
               WaitUntilDocumentIsInReadyState(
                   _, DOCUMENT_INTERACTIVE, EqualsElement(expected_element), _))
-      .WillOnce(RunOnceCallback<3>(OkClientStatus(),
-                                   base::TimeDelta::FromSeconds(0)));
+      .WillOnce(RunOnceCallback<3>(OkClientStatus(), base::Seconds(0)));
   EXPECT_CALL(mock_web_controller_,
               ScrollIntoView(std::string(), "center", "center",
                              EqualsElement(expected_element), _))
       .WillOnce(RunOnceCallback<4>(OkClientStatus()));
   EXPECT_CALL(mock_web_controller_, WaitUntilElementIsStable(_, _, _, _))
-      .WillOnce(RunOnceCallback<3>(OkClientStatus(),
-                                   base::TimeDelta::FromSeconds(0)));
+      .WillOnce(RunOnceCallback<3>(OkClientStatus(), base::Seconds(0)));
   EXPECT_CALL(
       mock_web_controller_,
       ClickOrTapElement(ClickType::CLICK, EqualsElement(expected_element), _))
diff --git a/components/autofill_assistant/browser/actions/use_credit_card_action_unittest.cc b/components/autofill_assistant/browser/actions/use_credit_card_action_unittest.cc
index 2fb3b9c..dee1e453 100644
--- a/components/autofill_assistant/browser/actions/use_credit_card_action_unittest.cc
+++ b/components/autofill_assistant/browser/actions/use_credit_card_action_unittest.cc
@@ -72,8 +72,7 @@
           checker->Run(&mock_web_controller_);
         });
     ON_CALL(mock_action_delegate_, OnShortWaitForElement(_, _))
-        .WillByDefault(RunOnceCallback<1>(OkClientStatus(),
-                                          base::TimeDelta::FromSeconds(0)));
+        .WillByDefault(RunOnceCallback<1>(OkClientStatus(), base::Seconds(0)));
     ON_CALL(mock_action_delegate_, GetFullCard)
         .WillByDefault(
             [](const autofill::CreditCard* credit_card,
@@ -166,8 +165,7 @@
 
 TEST_F(UseCreditCardActionTest, CreditCardInUserDataSucceeds) {
   ON_CALL(mock_action_delegate_, OnShortWaitForElement(fake_selector_, _))
-      .WillByDefault(RunOnceCallback<1>(OkClientStatus(),
-                                        base::TimeDelta::FromSeconds(0)));
+      .WillByDefault(RunOnceCallback<1>(OkClientStatus(), base::Seconds(0)));
   ON_CALL(mock_web_controller_, GetFieldValue(_, _))
       .WillByDefault(RunOnceCallback<1>(OkClientStatus(), "not empty"));
   ActionProto action;
@@ -203,8 +201,7 @@
 
 TEST_F(UseCreditCardActionTest, CreditCardInUserModelSucceeds) {
   ON_CALL(mock_action_delegate_, OnShortWaitForElement(fake_selector_, _))
-      .WillByDefault(RunOnceCallback<1>(OkClientStatus(),
-                                        base::TimeDelta::FromSeconds(0)));
+      .WillByDefault(RunOnceCallback<1>(OkClientStatus(), base::Seconds(0)));
   ON_CALL(mock_web_controller_, GetFieldValue(_, _))
       .WillByDefault(RunOnceCallback<1>(OkClientStatus(), "not empty"));
   ActionProto action;
@@ -410,15 +407,13 @@
   EXPECT_CALL(mock_action_delegate_,
               WaitUntilDocumentIsInReadyState(
                   _, DOCUMENT_INTERACTIVE, EqualsElement(expected_element), _))
-      .WillOnce(RunOnceCallback<3>(OkClientStatus(),
-                                   base::TimeDelta::FromSeconds(0)));
+      .WillOnce(RunOnceCallback<3>(OkClientStatus(), base::Seconds(0)));
   EXPECT_CALL(mock_web_controller_,
               ScrollIntoView(std::string(), "center", "center",
                              EqualsElement(expected_element), _))
       .WillOnce(RunOnceCallback<4>(OkClientStatus()));
   EXPECT_CALL(mock_web_controller_, WaitUntilElementIsStable(_, _, _, _))
-      .WillOnce(RunOnceCallback<3>(OkClientStatus(),
-                                   base::TimeDelta::FromSeconds(0)));
+      .WillOnce(RunOnceCallback<3>(OkClientStatus(), base::Seconds(0)));
   EXPECT_CALL(
       mock_web_controller_,
       ClickOrTapElement(ClickType::CLICK, EqualsElement(expected_element), _))
diff --git a/components/autofill_assistant/browser/actions/wait_for_document_action.cc b/components/autofill_assistant/browser/actions/wait_for_document_action.cc
index e7b8b08b..50bbaf8 100644
--- a/components/autofill_assistant/browser/actions/wait_for_document_action.cc
+++ b/components/autofill_assistant/browser/actions/wait_for_document_action.cc
@@ -86,8 +86,8 @@
     return;
   }
 
-  base::TimeDelta timeout = base::TimeDelta::FromMilliseconds(
-      proto_.wait_for_document().timeout_ms());
+  base::TimeDelta timeout =
+      base::Milliseconds(proto_.wait_for_document().timeout_ms());
   if (timeout.is_zero()) {
     SendResult(ClientStatus(TIMED_OUT), start_state);
     return;
diff --git a/components/autofill_assistant/browser/actions/wait_for_document_action_unittest.cc b/components/autofill_assistant/browser/actions/wait_for_document_action_unittest.cc
index 7575d96..3953a517 100644
--- a/components/autofill_assistant/browser/actions/wait_for_document_action_unittest.cc
+++ b/components/autofill_assistant/browser/actions/wait_for_document_action_unittest.cc
@@ -43,7 +43,7 @@
         .WillByDefault(Return(&mock_web_controller_));
     ON_CALL(mock_action_delegate_, WaitForDocumentReadyState(_, _, _, _))
         .WillByDefault(RunOnceCallback<3>(OkClientStatus(), DOCUMENT_COMPLETE,
-                                          base::TimeDelta::FromSeconds(0)));
+                                          base::Seconds(0)));
   }
 
   // Runs the action defined in |proto_| and reports the result to
@@ -140,7 +140,7 @@
   EXPECT_CALL(mock_action_delegate_,
               WaitForDocumentReadyState(_, DOCUMENT_INTERACTIVE, _, _))
       .WillOnce(RunOnceCallback<3>(OkClientStatus(), DOCUMENT_INTERACTIVE,
-                                   base::TimeDelta::FromSeconds(0)));
+                                   base::Seconds(0)));
   proto_.set_timeout_ms(1000);
   Run();
   EXPECT_EQ(ACTION_APPLIED, processed_action_.status());
@@ -160,7 +160,7 @@
               WaitForDocumentReadyState(_, DOCUMENT_COMPLETE, _, _))
       .WillOnce(RunOnceCallback<3>(ClientStatus(TIMED_OUT),
                                    DOCUMENT_UNKNOWN_READY_STATE,
-                                   base::TimeDelta::FromSeconds(0)));
+                                   base::Seconds(0)));
   // The second time the document is reported interactive.
   EXPECT_CALL(mock_web_controller_, GetDocumentReadyState(_, _))
       .WillOnce(RunOnceCallback<1>(OkClientStatus(), DOCUMENT_INTERACTIVE));
@@ -179,8 +179,7 @@
   Selector expected_frame_selector({"#frame"});
   EXPECT_CALL(mock_action_delegate_,
               OnShortWaitForElement(expected_frame_selector, _))
-      .WillRepeatedly(RunOnceCallback<1>(OkClientStatus(),
-                                         base::TimeDelta::FromSeconds(0)));
+      .WillRepeatedly(RunOnceCallback<1>(OkClientStatus(), base::Seconds(0)));
   EXPECT_CALL(mock_web_controller_,
               GetDocumentReadyState(
                   EqualsElement(test_util::MockFindElement(
@@ -196,9 +195,8 @@
 
 TEST_F(WaitForDocumentActionTest, CheckFrameElementNotFound) {
   EXPECT_CALL(mock_action_delegate_, OnShortWaitForElement(_, _))
-      .WillRepeatedly(
-          RunOnceCallback<1>(ClientStatus(ELEMENT_RESOLUTION_FAILED),
-                             base::TimeDelta::FromSeconds(0)));
+      .WillRepeatedly(RunOnceCallback<1>(
+          ClientStatus(ELEMENT_RESOLUTION_FAILED), base::Seconds(0)));
 
   proto_.set_timeout_ms(0);
   *proto_.mutable_frame() = ToSelectorProto("#frame");
diff --git a/components/autofill_assistant/browser/actions/wait_for_dom_action.cc b/components/autofill_assistant/browser/actions/wait_for_dom_action.cc
index 5df8503..ddb2734 100644
--- a/components/autofill_assistant/browser/actions/wait_for_dom_action.cc
+++ b/components/autofill_assistant/browser/actions/wait_for_dom_action.cc
@@ -19,8 +19,7 @@
 namespace autofill_assistant {
 namespace {
 
-static constexpr base::TimeDelta kDefaultCheckDuration =
-    base::TimeDelta::FromSeconds(15);
+static constexpr base::TimeDelta kDefaultCheckDuration = base::Seconds(15);
 
 void CollectExpectedElements(const ElementConditionProto& condition,
                              std::vector<std::string>* expected_client_ids) {
@@ -62,7 +61,7 @@
   base::TimeDelta max_wait_time = kDefaultCheckDuration;
   int timeout_ms = proto_.wait_for_dom().timeout_ms();
   if (timeout_ms > 0)
-    max_wait_time = base::TimeDelta::FromMilliseconds(timeout_ms);
+    max_wait_time = base::Milliseconds(timeout_ms);
 
   if (!proto_.wait_for_dom().has_wait_condition()) {
     VLOG(2) << "WaitForDomAction: no condition specified";
diff --git a/components/autofill_assistant/browser/actions/wait_for_dom_action_unittest.cc b/components/autofill_assistant/browser/actions/wait_for_dom_action_unittest.cc
index c5b4cc45..db5df3b 100644
--- a/components/autofill_assistant/browser/actions/wait_for_dom_action_unittest.cc
+++ b/components/autofill_assistant/browser/actions/wait_for_dom_action_unittest.cc
@@ -77,7 +77,7 @@
     ASSERT_TRUE(
         has_check_elements_result_);  // OnCheckElementsDone() not called
     std::move(callback).Run(check_elements_result_,
-                            base::TimeDelta::FromMilliseconds(fake_wait_time_));
+                            base::Milliseconds(fake_wait_time_));
   }
 
   // Runs the action defined in |proto_| and reports the result to |callback_|.
diff --git a/components/autofill_assistant/browser/actions/wait_for_navigation_action.cc b/components/autofill_assistant/browser/actions/wait_for_navigation_action.cc
index 9aec931..b729ffc 100644
--- a/components/autofill_assistant/browser/actions/wait_for_navigation_action.cc
+++ b/components/autofill_assistant/browser/actions/wait_for_navigation_action.cc
@@ -11,7 +11,7 @@
 
 namespace autofill_assistant {
 namespace {
-constexpr base::TimeDelta kDefaultTimeout = base::TimeDelta::FromSeconds(20);
+constexpr base::TimeDelta kDefaultTimeout = base::Seconds(20);
 }  // namespace
 
 WaitForNavigationAction::WaitForNavigationAction(ActionDelegate* delegate,
@@ -25,8 +25,8 @@
 void WaitForNavigationAction::InternalProcessAction(
     ProcessActionCallback callback) {
   callback_ = std::move(callback);
-  base::TimeDelta timeout = base::TimeDelta::FromMilliseconds(
-      proto_.wait_for_navigation().timeout_ms());
+  base::TimeDelta timeout =
+      base::Milliseconds(proto_.wait_for_navigation().timeout_ms());
   if (timeout.is_zero())
     timeout = kDefaultTimeout;
 
diff --git a/components/autofill_assistant/browser/autofill_assistant_onboarding_fetcher.cc b/components/autofill_assistant/browser/autofill_assistant_onboarding_fetcher.cc
index eca8c4d..84c9af8 100644
--- a/components/autofill_assistant/browser/autofill_assistant_onboarding_fetcher.cc
+++ b/components/autofill_assistant/browser/autofill_assistant_onboarding_fetcher.cc
@@ -64,8 +64,7 @@
 
 void AutofillAssistantOnboardingFetcher::StartFetch(const std::string& locale,
                                                     int timeout_ms) {
-  static const base::TimeDelta kFetchTimeout(
-      base::TimeDelta::FromMilliseconds(timeout_ms));
+  static const base::TimeDelta kFetchTimeout(base::Milliseconds(timeout_ms));
   if (url_loader_) {
     return;
   }
diff --git a/components/autofill_assistant/browser/client_settings.cc b/components/autofill_assistant/browser/client_settings.cc
index b1f69e006..a4000fdd 100644
--- a/components/autofill_assistant/browser/client_settings.cc
+++ b/components/autofill_assistant/browser/client_settings.cc
@@ -34,48 +34,47 @@
 
 void ClientSettings::UpdateFromProto(const ClientSettingsProto& proto) {
   if (proto.has_periodic_script_check_interval_ms()) {
-    periodic_script_check_interval = base::TimeDelta::FromMilliseconds(
-        proto.periodic_script_check_interval_ms());
+    periodic_script_check_interval =
+        base::Milliseconds(proto.periodic_script_check_interval_ms());
   }
   if (proto.has_periodic_element_check_interval_ms()) {
-    periodic_element_check_interval = base::TimeDelta::FromMilliseconds(
-        proto.periodic_element_check_interval_ms());
+    periodic_element_check_interval =
+        base::Milliseconds(proto.periodic_element_check_interval_ms());
   }
   if (proto.has_periodic_script_check_count()) {
     periodic_script_check_count = proto.periodic_script_check_count();
   }
   if (proto.has_element_position_update_interval_ms()) {
-    element_position_update_interval = base::TimeDelta::FromMilliseconds(
-        proto.element_position_update_interval_ms());
+    element_position_update_interval =
+        base::Milliseconds(proto.element_position_update_interval_ms());
   }
   if (proto.has_short_wait_for_element_deadline_ms()) {
-    short_wait_for_element_deadline = base::TimeDelta::FromMilliseconds(
-        proto.short_wait_for_element_deadline_ms());
+    short_wait_for_element_deadline =
+        base::Milliseconds(proto.short_wait_for_element_deadline_ms());
   }
   if (proto.has_box_model_check_interval_ms()) {
     box_model_check_interval =
-        base::TimeDelta::FromMilliseconds(proto.box_model_check_interval_ms());
+        base::Milliseconds(proto.box_model_check_interval_ms());
   }
   if (proto.has_box_model_check_count()) {
     box_model_check_count = proto.box_model_check_count();
   }
   if (proto.has_document_ready_check_timeout_ms()) {
-    document_ready_check_timeout = base::TimeDelta::FromMilliseconds(
-        proto.document_ready_check_timeout_ms());
+    document_ready_check_timeout =
+        base::Milliseconds(proto.document_ready_check_timeout_ms());
   }
   if (proto.has_cancel_delay_ms()) {
-    cancel_delay = base::TimeDelta::FromMilliseconds(proto.cancel_delay_ms());
+    cancel_delay = base::Milliseconds(proto.cancel_delay_ms());
   }
   if (proto.has_tap_count()) {
     tap_count = proto.tap_count();
   }
   if (proto.has_tap_tracking_duration_ms()) {
     tap_tracking_duration =
-        base::TimeDelta::FromMilliseconds(proto.tap_tracking_duration_ms());
+        base::Milliseconds(proto.tap_tracking_duration_ms());
   }
   if (proto.has_tap_shutdown_delay_ms()) {
-    tap_shutdown_delay =
-        base::TimeDelta::FromMilliseconds(proto.tap_shutdown_delay_ms());
+    tap_shutdown_delay = base::Milliseconds(proto.tap_shutdown_delay_ms());
   }
   if (proto.has_overlay_image()) {
     // TODO(b/170202574): Add integration test and remove legacy |image_url|.
@@ -127,11 +126,11 @@
           proto.slow_warning_settings().only_show_website_warning_once();
     }
     if (proto.slow_warning_settings().has_warning_delay_ms()) {
-      warning_delay = base::TimeDelta::FromMilliseconds(
-          proto.slow_warning_settings().warning_delay_ms());
+      warning_delay =
+          base::Milliseconds(proto.slow_warning_settings().warning_delay_ms());
     }
     if (proto.slow_warning_settings().has_slow_roundtrip_threshold_ms()) {
-      slow_roundtrip_threshold = base::TimeDelta::FromMilliseconds(
+      slow_roundtrip_threshold = base::Milliseconds(
           proto.slow_warning_settings().slow_roundtrip_threshold_ms());
     }
     if (proto.slow_warning_settings().has_max_consecutive_slow_roundtrips()) {
@@ -148,7 +147,7 @@
     }
     if (proto.slow_warning_settings()
             .has_minimum_warning_message_duration_ms()) {
-      minimum_warning_duration = base::TimeDelta::FromMilliseconds(
+      minimum_warning_duration = base::Milliseconds(
           proto.slow_warning_settings().minimum_warning_message_duration_ms());
     }
     if (proto.slow_warning_settings().message_mode() !=
diff --git a/components/autofill_assistant/browser/client_settings.h b/components/autofill_assistant/browser/client_settings.h
index 13eda8f..b7e3d9a 100644
--- a/components/autofill_assistant/browser/client_settings.h
+++ b/components/autofill_assistant/browser/client_settings.h
@@ -39,12 +39,10 @@
   std::string display_strings_locale;
 
   // Time between two periodic script precondition checks.
-  base::TimeDelta periodic_script_check_interval =
-      base::TimeDelta::FromSeconds(1);
+  base::TimeDelta periodic_script_check_interval = base::Seconds(1);
 
   // Time between two element checks in the script executor.
-  base::TimeDelta periodic_element_check_interval =
-      base::TimeDelta::FromSeconds(1);
+  base::TimeDelta periodic_element_check_interval = base::Seconds(1);
 
   // Run that many periodic checks before giving up unless something happens to
   // wake it up, such as the user touching the screen.
@@ -52,18 +50,15 @@
 
   // Time between two element position refreshes, when displaying highlighted
   // areas in prompt state.
-  base::TimeDelta element_position_update_interval =
-      base::TimeDelta::FromMilliseconds(100);
+  base::TimeDelta element_position_update_interval = base::Milliseconds(100);
 
   // Maximum amount of time normal actions should implicitly wait for a selector
   // to show up.
-  base::TimeDelta short_wait_for_element_deadline =
-      base::TimeDelta::FromSeconds(2);
+  base::TimeDelta short_wait_for_element_deadline = base::Seconds(2);
 
   // Time to wait between two checks of the box model, when waiting for an
   // element to become stable, such as before clicking.
-  base::TimeDelta box_model_check_interval =
-      base::TimeDelta::FromMilliseconds(200);
+  base::TimeDelta box_model_check_interval = base::Milliseconds(200);
 
   // Maximum number of checks to run while waiting for the element position to
   // become stable.
@@ -71,11 +66,10 @@
 
   // Time to wait while checking the document state, when waiting for the
   // document to become ready.
-  base::TimeDelta document_ready_check_timeout =
-      base::TimeDelta::FromSeconds(10);
+  base::TimeDelta document_ready_check_timeout = base::Seconds(10);
 
   // How much time to give users to tap undo when they tap a cancel button.
-  base::TimeDelta cancel_delay = base::TimeDelta::FromSeconds(5);
+  base::TimeDelta cancel_delay = base::Seconds(5);
 
   // If the user taps the overlay that many time within |tap_duration| turn the
   // UI off and give them |tap_shutdown_delay| to undo. If 0, unexpected taps
@@ -83,11 +77,11 @@
   int tap_count = 3;
 
   // Reset the unexpected tap counter after that time.
-  base::TimeDelta tap_tracking_duration = base::TimeDelta::FromSeconds(5);
+  base::TimeDelta tap_tracking_duration = base::Seconds(5);
 
   // How much time to give users to tap undo when after |tap_count| unexpected
   // taps where
-  base::TimeDelta tap_shutdown_delay = base::TimeDelta::FromSeconds(5);
+  base::TimeDelta tap_shutdown_delay = base::Seconds(5);
 
   // Optional image drawn on top of overlays.
   absl::optional<OverlayImageProto> overlay_image;
@@ -120,15 +114,14 @@
 
   // Defines the maximum wait on a dom find element operation before showing
   // the slow website warning.
-  base::TimeDelta warning_delay = base::TimeDelta::FromMilliseconds(1500);
+  base::TimeDelta warning_delay = base::Milliseconds(1500);
 
   // Defines the number of consecutive slow roundtrips allowed before showing
   // the slow connection warning.
   int max_consecutive_slow_roundtrips = 3;
 
   // Defines the threshold above which a roundtrip is considered too slow.
-  base::TimeDelta slow_roundtrip_threshold =
-      base::TimeDelta::FromMilliseconds(1500);
+  base::TimeDelta slow_roundtrip_threshold = base::Milliseconds(1500);
 
   // The message to show as a warning to inform the user of a slow connection.
   // If this is not set, no warning will be shown in case of slow connection.
@@ -140,8 +133,7 @@
 
   // The minimum duration that the message will be shown for (only applies to
   // the slow connection messages).
-  base::TimeDelta minimum_warning_duration =
-      base::TimeDelta::FromMilliseconds(1500);
+  base::TimeDelta minimum_warning_duration = base::Milliseconds(1500);
 
   // Whether the warning message should replace the current status message or
   // should be concatenated.
diff --git a/components/autofill_assistant/browser/controller.cc b/components/autofill_assistant/browser/controller.cc
index da7e815..83d04bea 100644
--- a/components/autofill_assistant/browser/controller.cc
+++ b/components/autofill_assistant/browser/controller.cc
@@ -1108,8 +1108,8 @@
 
   autostart_timeout_script_path_ =
       response_proto.script_timeout_error().script_path();
-  autostart_timeout_ = base::TimeDelta::FromMilliseconds(
-      response_proto.script_timeout_error().timeout_ms());
+  autostart_timeout_ =
+      base::Milliseconds(response_proto.script_timeout_error().timeout_ms());
   if (allow_autostart())
     absolute_autostart_timeout_ = tick_clock_->NowTicks() + autostart_timeout_;
 
diff --git a/components/autofill_assistant/browser/controller_unittest.cc b/components/autofill_assistant/browser/controller_unittest.cc
index 50e3eb4..8d8275a 100644
--- a/components/autofill_assistant/browser/controller_unittest.cc
+++ b/components/autofill_assistant/browser/controller_unittest.cc
@@ -630,7 +630,7 @@
   EXPECT_CALL(mock_observer_,
               OnClientSettingsChanged(
                   AllOf(Field(&ClientSettings::periodic_script_check_interval,
-                              base::TimeDelta::FromMilliseconds(1)),
+                              base::Milliseconds(1)),
                         Field(&ClientSettings::display_strings_locale, "en-US"),
                         Field(&ClientSettings::display_strings,
                               initial_client_settings.display_strings))))
@@ -638,7 +638,7 @@
   EXPECT_CALL(mock_observer_,
               OnClientSettingsChanged(
                   AllOf(Field(&ClientSettings::periodic_script_check_interval,
-                              base::TimeDelta::FromMilliseconds(1)),
+                              base::Milliseconds(1)),
                         Field(&ClientSettings::display_strings_locale, "fr-FR"),
                         Field(&ClientSettings::display_strings,
                               changed_client_settings.display_strings))))
@@ -646,7 +646,7 @@
   Start("http://a.example.com/path");
   EXPECT_THAT(controller_->GetSettings(),
               AllOf(Field(&ClientSettings::periodic_script_check_interval,
-                          base::TimeDelta::FromMilliseconds(1)),
+                          base::Milliseconds(1)),
                     Field(&ClientSettings::display_strings_locale, "fr-FR"),
                     Field(&ClientSettings::display_strings,
                           changed_client_settings.display_strings)));
@@ -995,7 +995,7 @@
   EXPECT_EQ(AutofillAssistantState::STARTING, controller_->GetState());
 
   for (int i = 0; i < 3; i++) {
-    task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment()->FastForwardBy(base::Seconds(1));
     EXPECT_EQ(AutofillAssistantState::STARTING, controller_->GetState());
   }
 
@@ -1004,7 +1004,7 @@
         std::move(callback).Run(OkClientStatus(),
                                 std::make_unique<ElementFinder::Result>());
       }));
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
 
   EXPECT_EQ(AutofillAssistantState::AUTOSTART_FALLBACK_PROMPT,
             controller_->GetState());
@@ -1037,7 +1037,7 @@
   Start("http://a.example.com/path");
   for (int i = 0; i < 30; i++) {
     EXPECT_EQ(AutofillAssistantState::STARTING, controller_->GetState());
-    task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment()->FastForwardBy(base::Seconds(1));
   }
   EXPECT_EQ(AutofillAssistantState::STOPPED, controller_->GetState());
   EXPECT_EQ("I give up", controller_->GetStatusMessage());
@@ -1071,13 +1071,13 @@
   // Warning after 4s, script succeeds and the client continues to wait.
   for (int i = 0; i < 4; i++) {
     EXPECT_EQ(AutofillAssistantState::STARTING, controller_->GetState());
-    task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment()->FastForwardBy(base::Seconds(1));
   }
   EXPECT_EQ(AutofillAssistantState::STARTING, controller_->GetState());
   EXPECT_EQ("This is slow", controller_->GetStatusMessage());
   for (int i = 0; i < 10; i++) {
     EXPECT_EQ(AutofillAssistantState::STARTING, controller_->GetState());
-    task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment()->FastForwardBy(base::Seconds(1));
   }
 }
 
@@ -1239,7 +1239,7 @@
 
   // No navigation event happened within the action timeout and the script ends.
   EXPECT_THAT(processed_actions_capture, SizeIs(0));
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
 
   ASSERT_THAT(processed_actions_capture, SizeIs(2));
   EXPECT_EQ(ACTION_APPLIED, processed_actions_capture[0].status());
@@ -1277,7 +1277,7 @@
           GURL("http://a.example.com/path"), web_contents()->GetMainFrame());
   simulator->SetTransition(ui::PAGE_TRANSITION_LINK);
   simulator->Start();
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
 
   // Navigation finishes and the script ends.
   EXPECT_THAT(processed_actions_capture, SizeIs(0));
@@ -3003,7 +3003,7 @@
           GURL("http://a.example.com/path"), web_contents()->GetMainFrame());
   simulator->SetTransition(ui::PAGE_TRANSITION_LINK);
   simulator->Start();
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
 
   // Commit the navigation, which will end the current prompt.
   EXPECT_THAT(processed_actions_capture, SizeIs(0));
@@ -3254,11 +3254,11 @@
 
   // Set 2 details in 1s (which directly clears the current details).
   controller_->SetDetails(std::make_unique<Details>(),
-                          base::TimeDelta::FromMilliseconds(1000));
+                          base::Milliseconds(1000));
   EXPECT_THAT(controller_->GetDetails(), IsEmpty());
   EXPECT_THAT(observed_details, IsEmpty());
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(1000));
+  task_environment()->FastForwardBy(base::Milliseconds(1000));
   EXPECT_THAT(controller_->GetDetails(), SizeIs(1));
   EXPECT_THAT(observed_details, SizeIs(1));
 
@@ -3268,29 +3268,27 @@
   EXPECT_THAT(observed_details, SizeIs(2));
 
   // Delay the appending of the details.
-  controller_->AppendDetails(
-      std::make_unique<Details>(),
-      /* delay= */ base::TimeDelta::FromMilliseconds(1000));
+  controller_->AppendDetails(std::make_unique<Details>(),
+                             /* delay= */ base::Milliseconds(1000));
   EXPECT_THAT(controller_->GetDetails(), SizeIs(2));
   EXPECT_THAT(observed_details, SizeIs(2));
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(999));
+  task_environment()->FastForwardBy(base::Milliseconds(999));
   EXPECT_THAT(controller_->GetDetails(), SizeIs(2));
   EXPECT_THAT(observed_details, SizeIs(2));
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_environment()->FastForwardBy(base::Milliseconds(1));
   EXPECT_THAT(controller_->GetDetails(), SizeIs(3));
   EXPECT_THAT(observed_details, SizeIs(3));
 
   // Setting the details clears the timers.
-  controller_->AppendDetails(
-      std::make_unique<Details>(),
-      /* delay= */ base::TimeDelta::FromMilliseconds(1000));
+  controller_->AppendDetails(std::make_unique<Details>(),
+                             /* delay= */ base::Milliseconds(1000));
   controller_->SetDetails(nullptr, base::TimeDelta());
   EXPECT_THAT(controller_->GetDetails(), IsEmpty());
   EXPECT_THAT(observed_details, IsEmpty());
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(2000));
+  task_environment()->FastForwardBy(base::Milliseconds(2000));
   EXPECT_THAT(controller_->GetDetails(), IsEmpty());
   EXPECT_THAT(observed_details, IsEmpty());
 }
diff --git a/components/autofill_assistant/browser/element_area_unittest.cc b/components/autofill_assistant/browser/element_area_unittest.cc
index 71a7eec..866a36d 100644
--- a/components/autofill_assistant/browser/element_area_unittest.cc
+++ b/components/autofill_assistant/browser/element_area_unittest.cc
@@ -85,7 +85,7 @@
         element_area_(&delegate_) {
     delegate_.SetWebController(&mock_web_controller_);
     delegate_.GetMutableSettings()->element_position_update_interval =
-        base::TimeDelta::FromMilliseconds(100);
+        base::Milliseconds(100);
 
     test_util::MockFindAnyElement(mock_web_controller_);
     ON_CALL(mock_web_controller_, GetElementRect(_, _))
@@ -436,7 +436,7 @@
 
   EXPECT_THAT(reported_area_, ElementsAre(MatchingRectF(0, 25, 100, 50)));
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  task_environment_.FastForwardBy(base::Milliseconds(100));
 
   // Updated area is available
   std::vector<RectF> rectangles;
@@ -448,7 +448,7 @@
   EXPECT_THAT(on_update_call_count_, 2);
 
   // No update if the element's position has not changed.
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  task_environment_.FastForwardBy(base::Milliseconds(100));
   EXPECT_THAT(on_update_call_count_, 2);
 }
 
diff --git a/components/autofill_assistant/browser/protocol_utils.cc b/components/autofill_assistant/browser/protocol_utils.cc
index 94989fc..0880bd9 100644
--- a/components/autofill_assistant/browser/protocol_utils.cc
+++ b/components/autofill_assistant/browser/protocol_utils.cc
@@ -264,7 +264,7 @@
           action.wait_for_document_to_become_interactive().client_id(),
           base::BindOnce(&ActionDelegate::WaitUntilDocumentIsInReadyState,
                          delegate->GetWeakPtr(),
-                         base::TimeDelta::FromMilliseconds(
+                         base::Milliseconds(
                              action.wait_for_document_to_become_interactive()
                                  .timeout_in_ms()),
                          DOCUMENT_INTERACTIVE));
@@ -272,12 +272,12 @@
       return PerformOnSingleElementAction::WithOptionalClientIdTimed(
           delegate, action,
           action.wait_for_document_to_become_complete().client_id(),
-          base::BindOnce(&ActionDelegate::WaitUntilDocumentIsInReadyState,
-                         delegate->GetWeakPtr(),
-                         base::TimeDelta::FromMilliseconds(
-                             action.wait_for_document_to_become_complete()
-                                 .timeout_in_ms()),
-                         DOCUMENT_COMPLETE));
+          base::BindOnce(
+              &ActionDelegate::WaitUntilDocumentIsInReadyState,
+              delegate->GetWeakPtr(),
+              base::Milliseconds(action.wait_for_document_to_become_complete()
+                                     .timeout_in_ms()),
+              DOCUMENT_COMPLETE));
     case ActionProto::ActionInfoCase::kSendClickEvent:
       return PerformOnSingleElementAction::WithClientId(
           delegate, action, action.send_click_event().client_id(),
@@ -337,13 +337,13 @@
       return PerformOnSingleElementAction::WithClientIdTimed(
           delegate, action,
           action.wait_for_element_to_become_stable().client_id(),
-          base::BindOnce(&WebController::WaitUntilElementIsStable,
-                         delegate->GetWebController()->GetWeakPtr(),
-                         action.wait_for_element_to_become_stable()
-                             .stable_check_max_rounds(),
-                         base::TimeDelta::FromMilliseconds(
-                             action.wait_for_element_to_become_stable()
-                                 .stable_check_interval_ms())));
+          base::BindOnce(
+              &WebController::WaitUntilElementIsStable,
+              delegate->GetWebController()->GetWeakPtr(),
+              action.wait_for_element_to_become_stable()
+                  .stable_check_max_rounds(),
+              base::Milliseconds(action.wait_for_element_to_become_stable()
+                                     .stable_check_interval_ms())));
     case ActionProto::ActionInfoCase::kCheckElementIsOnTop:
       return PerformOnSingleElementAction::WithClientId(
           delegate, action, action.check_element_is_on_top().client_id(),
diff --git a/components/autofill_assistant/browser/retry_timer_unittest.cc b/components/autofill_assistant/browser/retry_timer_unittest.cc
index 727f3765c..e8d8690 100644
--- a/components/autofill_assistant/browser/retry_timer_unittest.cc
+++ b/components/autofill_assistant/browser/retry_timer_unittest.cc
@@ -30,7 +30,7 @@
       : task_environment_(base::test::TaskEnvironment::TimeSource::MOCK_TIME) {}
 
   void FastForwardOneSecond() {
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 
   base::RepeatingCallback<void(base::OnceCallback<void(const ClientStatus&)>)>
@@ -80,24 +80,24 @@
 };
 
 TEST_F(RetryTimerTest, TryOnceAndSucceed) {
-  RetryTimer retry_timer(base::TimeDelta::FromSeconds(1));
+  RetryTimer retry_timer(base::Seconds(1));
   EXPECT_CALL(done_callback_, Run(EqualsStatus(OkClientStatus())));
-  retry_timer.Start(base::TimeDelta::FromSeconds(10), SucceedsOnceCallback(0),
+  retry_timer.Start(base::Seconds(10), SucceedsOnceCallback(0),
                     done_callback_.Get());
   EXPECT_EQ(1, try_count_);
 }
 
 TEST_F(RetryTimerTest, TryOnceAndFail) {
-  RetryTimer retry_timer(base::TimeDelta::FromSeconds(1));
+  RetryTimer retry_timer(base::Seconds(1));
   EXPECT_CALL(done_callback_, Run(EqualsStatus(ClientStatus())));
-  retry_timer.Start(base::TimeDelta::FromSeconds(0), AlwaysFailsCallback(),
+  retry_timer.Start(base::Seconds(0), AlwaysFailsCallback(),
                     done_callback_.Get());
   EXPECT_EQ(1, try_count_);
 }
 
 TEST_F(RetryTimerTest, TryMultipleTimesAndSucceed) {
-  RetryTimer retry_timer(base::TimeDelta::FromSeconds(1));
-  retry_timer.Start(base::TimeDelta::FromSeconds(10), SucceedsOnceCallback(2),
+  RetryTimer retry_timer(base::Seconds(1));
+  retry_timer.Start(base::Seconds(10), SucceedsOnceCallback(2),
                     done_callback_.Get());
   EXPECT_EQ(1, try_count_);
   FastForwardOneSecond();
@@ -108,8 +108,8 @@
 }
 
 TEST_F(RetryTimerTest, TryMultipleTimesAndFail) {
-  RetryTimer retry_timer(base::TimeDelta::FromSeconds(1));
-  retry_timer.Start(base::TimeDelta::FromSeconds(2), AlwaysFailsCallback(),
+  RetryTimer retry_timer(base::Seconds(1));
+  retry_timer.Start(base::Seconds(2), AlwaysFailsCallback(),
                     done_callback_.Get());
   EXPECT_EQ(1, try_count_);
   FastForwardOneSecond();
@@ -121,8 +121,8 @@
 
 TEST_F(RetryTimerTest, Cancel) {
   EXPECT_CALL(done_callback_, Run(_)).Times(0);
-  RetryTimer retry_timer(base::TimeDelta::FromSeconds(1));
-  retry_timer.Start(base::TimeDelta::FromSeconds(10), AlwaysFailsCallback(),
+  RetryTimer retry_timer(base::Seconds(1));
+  retry_timer.Start(base::Seconds(10), AlwaysFailsCallback(),
                     done_callback_.Get());
   EXPECT_EQ(1, try_count_);
   retry_timer.Cancel();
@@ -131,9 +131,8 @@
 
 TEST_F(RetryTimerTest, CancelWithPendingCallbacks) {
   EXPECT_CALL(done_callback_, Run(_)).Times(0);
-  RetryTimer retry_timer(base::TimeDelta::FromSeconds(1));
-  retry_timer.Start(base::TimeDelta::FromSeconds(10), CaptureCallback(),
-                    done_callback_.Get());
+  RetryTimer retry_timer(base::Seconds(1));
+  retry_timer.Start(base::Seconds(10), CaptureCallback(), done_callback_.Get());
   ASSERT_TRUE(captured_callback_);
   retry_timer.Cancel();
   std::move(captured_callback_).Run(OkClientStatus());  // Should do nothing
@@ -142,8 +141,8 @@
 TEST_F(RetryTimerTest, GiveUpWhenLeavingScope) {
   EXPECT_CALL(done_callback_, Run(_)).Times(0);
   {
-    RetryTimer retry_timer(base::TimeDelta::FromSeconds(1));
-    retry_timer.Start(base::TimeDelta::FromSeconds(10), AlwaysFailsCallback(),
+    RetryTimer retry_timer(base::Seconds(1));
+    retry_timer.Start(base::Seconds(10), AlwaysFailsCallback(),
                       done_callback_.Get());
     EXPECT_EQ(1, try_count_);
   }
@@ -153,8 +152,8 @@
 TEST_F(RetryTimerTest, GiveUpWhenLeavingScopeWithPendingCallback) {
   EXPECT_CALL(done_callback_, Run(_)).Times(0);
   {
-    RetryTimer retry_timer(base::TimeDelta::FromSeconds(1));
-    retry_timer.Start(base::TimeDelta::FromSeconds(10), CaptureCallback(),
+    RetryTimer retry_timer(base::Seconds(1));
+    retry_timer.Start(base::Seconds(10), CaptureCallback(),
                       done_callback_.Get());
     ASSERT_TRUE(captured_callback_);
   }
@@ -164,12 +163,12 @@
 TEST_F(RetryTimerTest, RestartOverridesFirstCall) {
   EXPECT_CALL(done_callback_, Run(_)).Times(0);
 
-  RetryTimer retry_timer(base::TimeDelta::FromSeconds(1));
-  retry_timer.Start(base::TimeDelta::FromSeconds(1), AlwaysFailsCallback(),
+  RetryTimer retry_timer(base::Seconds(1));
+  retry_timer.Start(base::Seconds(1), AlwaysFailsCallback(),
                     done_callback_.Get());
   base::MockCallback<base::OnceCallback<void(const ClientStatus&)>>
       done_callback2;
-  retry_timer.Start(base::TimeDelta::FromSeconds(1), AlwaysFailsCallback(),
+  retry_timer.Start(base::Seconds(1), AlwaysFailsCallback(),
                     done_callback2.Get());
   EXPECT_EQ(2, try_count_);
   EXPECT_CALL(done_callback2, Run(EqualsStatus(ClientStatus())));
@@ -180,14 +179,13 @@
 TEST_F(RetryTimerTest, RestartOverridesFirstCallWithPendingTask) {
   EXPECT_CALL(done_callback_, Run(_)).Times(0);
 
-  RetryTimer retry_timer(base::TimeDelta::FromSeconds(1));
-  retry_timer.Start(base::TimeDelta::FromSeconds(1), CaptureCallback(),
-                    done_callback_.Get());
+  RetryTimer retry_timer(base::Seconds(1));
+  retry_timer.Start(base::Seconds(1), CaptureCallback(), done_callback_.Get());
   ASSERT_TRUE(captured_callback_);
 
   base::MockCallback<base::OnceCallback<void(const ClientStatus&)>>
       done_callback2;
-  retry_timer.Start(base::TimeDelta::FromSeconds(1), AlwaysFailsCallback(),
+  retry_timer.Start(base::Seconds(1), AlwaysFailsCallback(),
                     done_callback2.Get());
 
   std::move(captured_callback_).Run(OkClientStatus());  // Should do nothing
@@ -198,10 +196,10 @@
 }
 
 TEST_F(RetryTimerTest, Running) {
-  RetryTimer retry_timer(base::TimeDelta::FromSeconds(1));
+  RetryTimer retry_timer(base::Seconds(1));
   EXPECT_FALSE(retry_timer.running());
 
-  retry_timer.Start(base::TimeDelta::FromSeconds(10), SucceedsOnceCallback(1),
+  retry_timer.Start(base::Seconds(10), SucceedsOnceCallback(1),
                     done_callback_.Get());
   EXPECT_TRUE(retry_timer.running());
 
@@ -211,10 +209,10 @@
 }
 
 TEST_F(RetryTimerTest, NotRunningAfterCancel) {
-  RetryTimer retry_timer(base::TimeDelta::FromSeconds(1));
+  RetryTimer retry_timer(base::Seconds(1));
   EXPECT_FALSE(retry_timer.running());
 
-  retry_timer.Start(base::TimeDelta::FromSeconds(10), SucceedsOnceCallback(1),
+  retry_timer.Start(base::Seconds(10), SucceedsOnceCallback(1),
                     done_callback_.Get());
   EXPECT_TRUE(retry_timer.running());
   retry_timer.Cancel();
diff --git a/components/autofill_assistant/browser/script_executor.cc b/components/autofill_assistant/browser/script_executor.cc
index f82f7bd..f8fb1543 100644
--- a/components/autofill_assistant/browser/script_executor.cc
+++ b/components/autofill_assistant/browser/script_executor.cc
@@ -767,7 +767,7 @@
   bool should_show_warning =
       !delegate_->GetSettings().only_show_connection_warning_once ||
       !connection_warning_already_shown_;
-  base::TimeDelta delay = base::TimeDelta::FromMilliseconds(0);
+  base::TimeDelta delay = base::Milliseconds(0);
   // MaybeShowSlowWarning is only called if should_sown_warning is true.
   bool warning_was_shown =
       should_show_warning &&
@@ -942,7 +942,7 @@
         FROM_HERE,
         base::BindOnce(&ScriptExecutor::ProcessAction,
                        weak_ptr_factory_.GetWeakPtr(), action),
-        base::TimeDelta::FromMilliseconds(delay_ms));
+        base::Milliseconds(delay_ms));
   } else {
     ProcessAction(action);
   }
@@ -1170,7 +1170,7 @@
   wait_time_total_ =
       (wait_time_stopwatch_.TotalElapsed() < retry_timer_.period())
           // It's the first run of the checks, set the total time waited to 0.
-          ? base::TimeDelta::FromSeconds(0)
+          ? base::Seconds(0)
           // If this is not the first run of the checks, in order to estimate
           // the real cost of periodic checks, half the duration of the retry
           // timer period is removed from the total wait time. This is to
diff --git a/components/autofill_assistant/browser/script_executor_unittest.cc b/components/autofill_assistant/browser/script_executor_unittest.cc
index 9b127764..af88e99 100644
--- a/components/autofill_assistant/browser/script_executor_unittest.cc
+++ b/components/autofill_assistant/browser/script_executor_unittest.cc
@@ -268,7 +268,7 @@
 }
 
 ACTION_P2(Delay, env, delay) {
-  env->FastForwardBy(base::TimeDelta::FromMilliseconds(delay));
+  env->FastForwardBy(base::Milliseconds(delay));
 }
 
 TEST_F(ScriptExecutorTest, ShowsSlowConnectionWarningReplace) {
@@ -276,10 +276,8 @@
   client_settings->slow_connection_message = "slow";
   client_settings->enable_slow_connection_warnings = true;
   client_settings->max_consecutive_slow_roundtrips = 2;
-  client_settings->slow_roundtrip_threshold =
-      base::TimeDelta::FromMilliseconds(100);
-  client_settings->minimum_warning_duration =
-      base::TimeDelta::FromMilliseconds(100);
+  client_settings->slow_roundtrip_threshold = base::Milliseconds(100);
+  client_settings->minimum_warning_duration = base::Milliseconds(100);
   client_settings->message_mode =
       ClientSettingsProto::SlowWarningSettings::REPLACE;
   ActionsResponseProto initial_actions_response;
@@ -310,10 +308,8 @@
   client_settings->slow_connection_message = "... slow";
   client_settings->enable_slow_connection_warnings = true;
   client_settings->max_consecutive_slow_roundtrips = 2;
-  client_settings->slow_roundtrip_threshold =
-      base::TimeDelta::FromMilliseconds(100);
-  client_settings->minimum_warning_duration =
-      base::TimeDelta::FromMilliseconds(100);
+  client_settings->slow_roundtrip_threshold = base::Milliseconds(100);
+  client_settings->minimum_warning_duration = base::Milliseconds(100);
   client_settings->message_mode =
       ClientSettingsProto::SlowWarningSettings::CONCATENATE;
   ActionsResponseProto initial_actions_response;
@@ -346,10 +342,8 @@
   client_settings->enable_slow_connection_warnings = true;
   client_settings->only_show_connection_warning_once = true;
   client_settings->max_consecutive_slow_roundtrips = 1;
-  client_settings->slow_roundtrip_threshold =
-      base::TimeDelta::FromMilliseconds(100);
-  client_settings->minimum_warning_duration =
-      base::TimeDelta::FromMilliseconds(100);
+  client_settings->slow_roundtrip_threshold = base::Milliseconds(100);
+  client_settings->minimum_warning_duration = base::Milliseconds(100);
   client_settings->message_mode =
       ClientSettingsProto::SlowWarningSettings::REPLACE;
   ActionsResponseProto initial_actions_response;
@@ -370,7 +364,7 @@
               Run(Field(&ScriptExecutor::Result::success, true)));
   executor_->Run(&user_data_, executor_callback_.Get());
   EXPECT_EQ(delegate_.GetStatusMessage(), "slow");
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  task_environment_.FastForwardBy(base::Milliseconds(100));
   EXPECT_EQ(delegate_.GetStatusMessage(), "2");
 }
 
@@ -381,10 +375,8 @@
   client_settings->only_show_connection_warning_once = false;
   client_settings->only_show_warning_once = false;
   client_settings->max_consecutive_slow_roundtrips = 1;
-  client_settings->slow_roundtrip_threshold =
-      base::TimeDelta::FromMilliseconds(100);
-  client_settings->minimum_warning_duration =
-      base::TimeDelta::FromMilliseconds(100);
+  client_settings->slow_roundtrip_threshold = base::Milliseconds(100);
+  client_settings->minimum_warning_duration = base::Milliseconds(100);
   client_settings->message_mode =
       ClientSettingsProto::SlowWarningSettings::REPLACE;
   ActionsResponseProto initial_actions_response;
@@ -405,9 +397,9 @@
               Run(Field(&ScriptExecutor::Result::success, true)));
   executor_->Run(&user_data_, executor_callback_.Get());
   EXPECT_EQ(delegate_.GetStatusMessage(), "slow");
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  task_environment_.FastForwardBy(base::Milliseconds(100));
   EXPECT_EQ(delegate_.GetStatusMessage(), "slow");
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  task_environment_.FastForwardBy(base::Milliseconds(100));
   EXPECT_EQ(delegate_.GetStatusMessage(), "2");
 }
 
@@ -468,14 +460,12 @@
   client_settings->slow_connection_message = "slow connection";
   client_settings->slow_website_message = "slow website";
   client_settings->enable_slow_website_warnings = true;
-  client_settings->warning_delay = base::TimeDelta::FromMilliseconds(1500);
+  client_settings->warning_delay = base::Milliseconds(1500);
   client_settings->enable_slow_connection_warnings = true;
   client_settings->only_show_warning_once = true;
   client_settings->max_consecutive_slow_roundtrips = 2;
-  client_settings->slow_roundtrip_threshold =
-      base::TimeDelta::FromMilliseconds(100);
-  client_settings->minimum_warning_duration =
-      base::TimeDelta::FromMilliseconds(100);
+  client_settings->slow_roundtrip_threshold = base::Milliseconds(100);
+  client_settings->minimum_warning_duration = base::Milliseconds(100);
   client_settings->message_mode =
       ClientSettingsProto::SlowWarningSettings::REPLACE;
   ActionsResponseProto tell1_waitfordom;
@@ -521,7 +511,7 @@
   ClientSettings* client_settings = delegate_.GetMutableSettings();
   client_settings->slow_website_message = "slow";
   client_settings->enable_slow_website_warnings = true;
-  client_settings->warning_delay = base::TimeDelta::FromMilliseconds(1500);
+  client_settings->warning_delay = base::Milliseconds(1500);
   ActionsResponseProto actions_response;
   actions_response.add_actions()->mutable_tell()->set_message("1");
   auto* wait_for_dom = actions_response.add_actions()->mutable_wait_for_dom();
@@ -613,14 +603,12 @@
   client_settings->slow_connection_message = "slow connection";
   client_settings->slow_website_message = "slow website";
   client_settings->enable_slow_website_warnings = true;
-  client_settings->warning_delay = base::TimeDelta::FromMilliseconds(1500);
+  client_settings->warning_delay = base::Milliseconds(1500);
   client_settings->enable_slow_connection_warnings = true;
   client_settings->only_show_warning_once = true;
   client_settings->max_consecutive_slow_roundtrips = 1;
-  client_settings->slow_roundtrip_threshold =
-      base::TimeDelta::FromMilliseconds(100);
-  client_settings->minimum_warning_duration =
-      base::TimeDelta::FromMilliseconds(100);
+  client_settings->slow_roundtrip_threshold = base::Milliseconds(100);
+  client_settings->minimum_warning_duration = base::Milliseconds(100);
   client_settings->message_mode =
       ClientSettingsProto::SlowWarningSettings::REPLACE;
   ActionsResponseProto tell1;
@@ -670,14 +658,12 @@
   client_settings->slow_connection_message = "slow connection";
   client_settings->slow_website_message = "slow website";
   client_settings->enable_slow_website_warnings = true;
-  client_settings->warning_delay = base::TimeDelta::FromMilliseconds(1500);
+  client_settings->warning_delay = base::Milliseconds(1500);
   client_settings->enable_slow_connection_warnings = true;
   client_settings->only_show_warning_once = false;
   client_settings->max_consecutive_slow_roundtrips = 1;
-  client_settings->slow_roundtrip_threshold =
-      base::TimeDelta::FromMilliseconds(100);
-  client_settings->minimum_warning_duration =
-      base::TimeDelta::FromMilliseconds(100);
+  client_settings->slow_roundtrip_threshold = base::Milliseconds(100);
+  client_settings->minimum_warning_duration = base::Milliseconds(100);
   client_settings->message_mode =
       ClientSettingsProto::SlowWarningSettings::REPLACE;
   ActionsResponseProto tell1;
@@ -822,7 +808,7 @@
   // Moving forward in time triggers action execution.
   EXPECT_CALL(executor_callback_,
               Run(Field(&ScriptExecutor::Result::success, true)));
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1000));
+  task_environment_.FastForwardBy(base::Milliseconds(1000));
   EXPECT_EQ(task_environment_.GetPendingMainThreadTaskCount(), 0u);
 }
 
@@ -956,7 +942,7 @@
                                 std::make_unique<ElementFinder::Result>());
       }));
   EXPECT_CALL(executor_callback_, Run(_));
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
 
   ASSERT_EQ(1u, processed_actions_capture.size());
   EXPECT_EQ(ACTION_APPLIED, processed_actions_capture[0].status());
@@ -1354,7 +1340,7 @@
               Run(Field(&ScriptExecutor::Result::success, true)));
   executor_->Run(&user_data_, executor_callback_.Get());
   for (int try_count = 0; try_count < 10; try_count++) {
-    task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1000));
+    task_environment_.FastForwardBy(base::Milliseconds(1000));
   }
 
   EXPECT_THAT(
@@ -1550,7 +1536,7 @@
   // timeout.
   delegate_.UpdateNavigationState(/* navigating= */ true, /* error= */ false);
   for (int i = 0; i < 5; i++) {
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 
   // The end of navigation un-pauses WaitForDom.
@@ -1683,7 +1669,7 @@
         std::move(callback).Run(OkClientStatus(),
                                 std::make_unique<ElementFinder::Result>());
       }));
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
 
   ASSERT_THAT(processed_actions_capture, SizeIs(1));
   EXPECT_EQ(ACTION_APPLIED, processed_actions_capture[0].status());
@@ -2027,7 +2013,7 @@
         std::move(callback).Run(OkClientStatus(),
                                 std::make_unique<ElementFinder::Result>());
       }));
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1000));
+  task_environment_.FastForwardBy(base::Milliseconds(1000));
   EXPECT_EQ("Prompt", delegate_.GetStatusMessage());
   EXPECT_EQ(AutofillAssistantState::PROMPT, delegate_.GetState());
 }
@@ -2053,7 +2039,7 @@
 
   EXPECT_CALL(executor_callback_,
               Run(Field(&ScriptExecutor::Result::success, true)));
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1000));
+  task_environment_.FastForwardBy(base::Milliseconds(1000));
   // Moving forward in time triggers action execution.
 
   EXPECT_EQ(200, timing_stats.roundtrip_time_ms());
diff --git a/components/autofill_assistant/browser/starter.cc b/components/autofill_assistant/browser/starter.cc
index 065d045b..8383489 100644
--- a/components/autofill_assistant/browser/starter.cc
+++ b/components/autofill_assistant/browser/starter.cc
@@ -55,9 +55,8 @@
 // The duration for which cache entries are considered fresh. Stale entries in
 // the cache are ignored.
 constexpr base::TimeDelta kMaxFailedTriggerScriptsCacheDuration =
-    base::TimeDelta::FromHours(1);
-constexpr base::TimeDelta kMaxUserDenylistedCacheDuration =
-    base::TimeDelta::FromHours(1);
+    base::Hours(1);
+constexpr base::TimeDelta kMaxUserDenylistedCacheDuration = base::Hours(1);
 
 // Creates a service request sender that serves the pre-specified response.
 // Creation may fail (return null) if the parameter fails to decode.
diff --git a/components/autofill_assistant/browser/starter_unittest.cc b/components/autofill_assistant/browser/starter_unittest.cc
index 02eeb97d..d6ea1f7 100644
--- a/components/autofill_assistant/browser/starter_unittest.cc
+++ b/components/autofill_assistant/browser/starter_unittest.cc
@@ -1634,7 +1634,7 @@
 
   EXPECT_CALL(*mock_trigger_script_service_request_sender_, OnSendRequest)
       .WillOnce(RunOnceCallback<2>(net::HTTP_OK, std::string()));
-  task_environment()->FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment()->FastForwardBy(base::Hours(1));
   SimulateNavigateToUrl(GURL("https://www.example.com/cart"));
   task_environment()->RunUntilIdle();
 
@@ -1682,7 +1682,7 @@
         trigger_script_coordinator_->PerformTriggerScriptAction(
             TriggerScriptProto::CANCEL_SESSION);
       });
-  task_environment()->FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment()->FastForwardBy(base::Hours(1));
   SimulateNavigateToUrl(GURL("https://www.example.com/cart"));
   task_environment()->RunUntilIdle();
 
@@ -1852,7 +1852,7 @@
   GetFailedTriggerFetchesCacheForTest()->Put("failed-t0.com", t0);
   GetUserDenylistedCacheForTest()->Put("denylisted-t0.com", t0);
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromMinutes(30));
+  task_environment()->FastForwardBy(base::Minutes(30));
   base::TimeTicks t1 = task_environment()->GetMockTickClock()->NowTicks();
   EXPECT_THAT(*GetFailedTriggerFetchesCacheForTest(),
               UnorderedElementsAre(Pair("failed-t0.com", t0)));
@@ -1861,7 +1861,7 @@
   GetFailedTriggerFetchesCacheForTest()->Put("failed-t1.com", t1);
   GetUserDenylistedCacheForTest()->Put("denylisted-t1.com", t1);
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromMinutes(30));
+  task_environment()->FastForwardBy(base::Minutes(30));
   base::TimeTicks t2 = task_environment()->GetMockTickClock()->NowTicks();
   EXPECT_CALL(*mock_trigger_script_service_request_sender_, OnSendRequest)
       .WillOnce(RunOnceCallback<2>(net::HTTP_OK, std::string()));
diff --git a/components/autofill_assistant/browser/trigger_scripts/trigger_script_coordinator.cc b/components/autofill_assistant/browser/trigger_scripts/trigger_script_coordinator.cc
index 935bd6ce..8e5d2a9 100644
--- a/components/autofill_assistant/browser/trigger_scripts/trigger_script_coordinator.cc
+++ b/components/autofill_assistant/browser/trigger_scripts/trigger_script_coordinator.cc
@@ -113,14 +113,13 @@
     (*script_parameters)->MergeWith(trigger_context_->GetScriptParameters());
     trigger_context_->SetScriptParameters(std::move(*script_parameters));
   }
-  trigger_condition_check_interval_ =
-      base::TimeDelta::FromMilliseconds(check_interval_ms);
+  trigger_condition_check_interval_ = base::Milliseconds(check_interval_ms);
   if (trigger_condition_timeout_ms.has_value()) {
     // Note: add 1 for the initial, not-delayed check.
     initial_trigger_condition_evaluations_ =
-        1 + base::ClampCeil<int64_t>(base::TimeDelta::FromMilliseconds(
-                                         *trigger_condition_timeout_ms) /
-                                     trigger_condition_check_interval_);
+        1 + base::ClampCeil<int64_t>(
+                base::Milliseconds(*trigger_condition_timeout_ms) /
+                trigger_condition_check_interval_);
   } else {
     initial_trigger_condition_evaluations_ = -1;
   }
@@ -277,11 +276,10 @@
                                            .has_ui_timeout_ms()) {
     ui_timeout_timer_.Start(
         FROM_HERE,
-        base::TimeDelta::FromMilliseconds(
-            trigger_scripts_[visible_trigger_script_]
-                ->AsProto()
-                .user_interface()
-                .ui_timeout_ms()),
+        base::Milliseconds(trigger_scripts_[visible_trigger_script_]
+                               ->AsProto()
+                               .user_interface()
+                               .ui_timeout_ms()),
         base::BindOnce(&TriggerScriptCoordinator::OnUiTimeoutReached,
                        weak_ptr_factory_.GetWeakPtr()));
   }
diff --git a/components/autofill_assistant/browser/trigger_scripts/trigger_script_coordinator.h b/components/autofill_assistant/browser/trigger_scripts/trigger_script_coordinator.h
index 92c6bc5..eb57bcf 100644
--- a/components/autofill_assistant/browser/trigger_scripts/trigger_script_coordinator.h
+++ b/components/autofill_assistant/browser/trigger_scripts/trigger_script_coordinator.h
@@ -218,8 +218,7 @@
   std::unique_ptr<DynamicTriggerConditions> dynamic_trigger_conditions_;
 
   // The time between consecutive evaluations of dynamic trigger conditions.
-  base::TimeDelta trigger_condition_check_interval_ =
-      base::TimeDelta::FromMilliseconds(1000);
+  base::TimeDelta trigger_condition_check_interval_ = base::Milliseconds(1000);
 
   // The number of times the trigger condition may be evaluated. If this reaches
   // 0, the trigger script stops with |TRIGGER_CONDITION_TIMEOUT|.
diff --git a/components/autofill_assistant/browser/trigger_scripts/trigger_script_coordinator_unittest.cc b/components/autofill_assistant/browser/trigger_scripts/trigger_script_coordinator_unittest.cc
index ed6ec81..4e7cb65a 100644
--- a/components/autofill_assistant/browser/trigger_scripts/trigger_script_coordinator_unittest.cc
+++ b/components/autofill_assistant/browser/trigger_scripts/trigger_script_coordinator_unittest.cc
@@ -280,7 +280,7 @@
   EXPECT_CALL(*mock_dynamic_trigger_conditions_,
               OnUpdate(mock_web_controller_, _))
       .WillOnce(RunOnceCallback<1>());
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
 }
 
 TEST_F(TriggerScriptCoordinatorTest, ShowAndHideTriggerScript) {
@@ -303,19 +303,19 @@
                       mock_callback_.Get());
 
   // Condition stays true, trigger script should not be hidden.
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
 
   // Condition turns false, trigger script should be hidden.
   ON_CALL(*mock_dynamic_trigger_conditions_, GetSelectorMatches)
       .WillByDefault(Return(false));
   EXPECT_CALL(*mock_ui_delegate_, HideTriggerScript).Times(1);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
 
   // Condition is true again, trigger script should be shown again.
   ON_CALL(*mock_dynamic_trigger_conditions_, GetSelectorMatches)
       .WillByDefault(Return(true));
   EXPECT_CALL(*mock_ui_delegate_, ShowTriggerScript).Times(1);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
 }
 
 TEST_F(TriggerScriptCoordinatorTest, PauseAndResumeOnTabVisibilityChange) {
@@ -385,16 +385,16 @@
   EXPECT_CALL(*mock_dynamic_trigger_conditions_, GetSelectorMatches)
       .WillOnce(Return(true));
   EXPECT_CALL(*mock_ui_delegate_, ShowTriggerScript).Times(0);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
 
   EXPECT_CALL(*mock_dynamic_trigger_conditions_, GetSelectorMatches)
       .WillOnce(Return(false));
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
 
   EXPECT_CALL(*mock_dynamic_trigger_conditions_, GetSelectorMatches)
       .WillOnce(Return(true));
   EXPECT_CALL(*mock_ui_delegate_, ShowTriggerScript).Times(1);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
 }
 
 TEST_F(TriggerScriptCoordinatorTest, PerformTriggerScriptActionCancelSession) {
@@ -640,14 +640,14 @@
       .WillRepeatedly(Return(false));
   coordinator_->Start(GURL(kFakeDeepLink), std::make_unique<TriggerContext>(),
                       mock_callback_.Get());
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
 
   EXPECT_CALL(
       mock_callback_,
       Run(Metrics::TriggerScriptFinishedState::TRIGGER_CONDITION_TIMEOUT, _,
           _));
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
   EXPECT_THAT(
       GetUkmTriggerScriptFinished(ukm_recorder_),
       ElementsAreArray(ToHumanReadableMetrics(
@@ -679,24 +679,24 @@
       .WillRepeatedly(Return(true));
   coordinator_->Start(GURL(kFakeDeepLink), std::make_unique<TriggerContext>(),
                       mock_callback_.Get());
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
 
   // When the trigger script is hidden, the timeout resets.
   EXPECT_CALL(*mock_ui_delegate_, HideTriggerScript).Times(1);
   EXPECT_CALL(*mock_dynamic_trigger_conditions_, GetSelectorMatches)
       .WillRepeatedly(Return(false));
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
   EXPECT_CALL(
       mock_callback_,
       Run(Metrics::TriggerScriptFinishedState::TRIGGER_CONDITION_TIMEOUT, _,
           _));
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
   EXPECT_THAT(
       GetUkmTriggerScriptFinished(ukm_recorder_),
       ElementsAreArray(ToHumanReadableMetrics(
@@ -725,7 +725,7 @@
   coordinator_->Start(GURL(kFakeDeepLink), std::make_unique<TriggerContext>(),
                       mock_callback_.Get());
   for (int i = 0; i < 10; ++i) {
-    task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment()->FastForwardBy(base::Seconds(1));
   }
 }
 
@@ -766,14 +766,14 @@
               OnUpdate(mock_web_controller_, _))
       .Times(3)
       .WillRepeatedly(RunOnceCallback<1>());
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
 
   EXPECT_CALL(
       mock_callback_,
       Run(Metrics::TriggerScriptFinishedState::TRIGGER_CONDITION_TIMEOUT, _,
           _));
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
   EXPECT_THAT(
       GetUkmTriggerScriptFinished(ukm_recorder_),
       ElementsAreArray(ToHumanReadableMetrics(
@@ -1234,10 +1234,10 @@
                       mock_callback_.Get());
 
   EXPECT_CALL(*mock_ui_delegate_, HideTriggerScript).Times(0);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
 
   EXPECT_CALL(*mock_ui_delegate_, HideTriggerScript).Times(1);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
 
   // Reloading the page should show the prompt again, resetting the timer.
   EXPECT_CALL(*mock_ui_delegate_, ShowTriggerScript).Times(1);
@@ -1246,10 +1246,10 @@
       ukm::GetSourceIdForWebContentsDocument(web_contents()));
 
   EXPECT_CALL(*mock_ui_delegate_, HideTriggerScript).Times(0);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
 
   EXPECT_CALL(*mock_ui_delegate_, HideTriggerScript).Times(1);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
 
   EXPECT_THAT(GetUkmTriggerScriptShownToUsers(ukm_recorder_),
               UnorderedElementsAreArray(ToHumanReadableMetrics(
@@ -1292,12 +1292,12 @@
                       mock_callback_.Get());
 
   // Showing the cancel popup should have disabled the timer.
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment()->FastForwardBy(base::Seconds(5));
 
   // As long as the prompt is not hidden, the timer continues to be disabled.
   content::NavigationSimulator::Reload(web_contents());
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
 }
 
 TEST_F(TriggerScriptCoordinatorTest, UiTimeoutInterruptedByOnboarding) {
@@ -1330,7 +1330,7 @@
                       mock_callback_.Get());
 
   // Showing the onboarding should have disabled the timer.
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment()->FastForwardBy(base::Seconds(5));
 }
 
 TEST_F(TriggerScriptCoordinatorTest, UiTimeoutInterruptedBySkipSession) {
@@ -1361,7 +1361,7 @@
   // Just to check that the timer has gone properly out-of-scope along with the
   // coordinator and nothing blows up.
   coordinator_.reset();
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment()->FastForwardBy(base::Seconds(5));
 }
 
 TEST_F(TriggerScriptCoordinatorTest, UiTimeoutInterruptedByNotNow) {
@@ -1386,16 +1386,16 @@
 
   // Time that passes while the prompt is hidden is irrelevant
   // (HideTriggerScript is not called again).
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment()->FastForwardBy(base::Seconds(5));
 
   // Reloading the page will show the prompt again and reset the timeout.
   EXPECT_CALL(*mock_ui_delegate_, ShowTriggerScript).WillOnce([&]() {
     coordinator_->OnTriggerScriptShown(true);
   });
   content::NavigationSimulator::Reload(web_contents());
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
   EXPECT_CALL(*mock_ui_delegate_, HideTriggerScript).Times(1);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
 }
 
 TEST_F(TriggerScriptCoordinatorTest, StoppingTwiceDoesNotCrash) {
@@ -1430,13 +1430,11 @@
 
   EXPECT_CALL(*mock_dynamic_trigger_conditions_, OnUpdate)
       .WillOnce(WithArg<1>([&](auto& callback) {
-        task_environment()->FastForwardBy(
-            base::TimeDelta::FromMilliseconds(700));
+        task_environment()->FastForwardBy(base::Milliseconds(700));
         std::move(callback).Run();
       }))
       .WillOnce(WithArg<1>([&](auto& callback) {
-        task_environment()->FastForwardBy(
-            base::TimeDelta::FromMilliseconds(300));
+        task_environment()->FastForwardBy(base::Milliseconds(300));
         std::move(callback).Run();
       }));
 
@@ -1445,7 +1443,7 @@
                       mock_callback_.Get());
 
   // Run the second scheduled trigger condition evaluation.
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
 
   // Run out-of-schedule trigger condition evaluation (should not be recorded).
   coordinator_->OnKeyboardVisibilityChanged(true);
diff --git a/components/autofill_assistant/browser/user_data_util_unittest.cc b/components/autofill_assistant/browser/user_data_util_unittest.cc
index a53fb7f..1ffbc9e 100644
--- a/components/autofill_assistant/browser/user_data_util_unittest.cc
+++ b/components/autofill_assistant/browser/user_data_util_unittest.cc
@@ -86,7 +86,7 @@
   autofill::test::SetProfileInfo(profile_old.get(), "Adam", "", "West",
                                  "adam.west@gmail.com", "", "", "", "", "", "",
                                  "", "");
-  profile_old->set_use_date(current - base::TimeDelta::FromDays(2));
+  profile_old->set_use_date(current - base::Days(2));
 
   auto profile_new = std::make_unique<autofill::AutofillProfile>();
   autofill::test::SetProfileInfo(profile_new.get(), "Adam", "", "West",
@@ -162,7 +162,7 @@
   autofill::test::SetProfileInfo(profile_old.get(), "Adam", "", "West",
                                  "adam.west@gmail.com", "", "", "", "", "", "",
                                  "", "");
-  profile_old->set_use_date(current - base::TimeDelta::FromDays(2));
+  profile_old->set_use_date(current - base::Days(2));
 
   auto profile_new = std::make_unique<autofill::AutofillProfile>();
   autofill::test::SetProfileInfo(profile_new.get(), "Adam", "", "West",
@@ -227,7 +227,7 @@
   autofill::test::SetProfileInfo(profile_old.get(), "Adam", "", "West", "", "",
                                  "Brandschenkestrasse 110", "", "Zurich", "",
                                  "8002", "CH", "");
-  profile_old->set_use_date(current - base::TimeDelta::FromDays(2));
+  profile_old->set_use_date(current - base::Days(2));
 
   auto profile_new = std::make_unique<autofill::AutofillProfile>();
   autofill::test::SetProfileInfo(profile_new.get(), "Adam", "", "West", "", "",
@@ -318,8 +318,7 @@
                                  "adam.west@gmail.com", "West", "", "",
                                  "Brandschenkestrasse 110", "", "Zurich", "",
                                  "8002", "CH", "+41");
-  profile_with_irrelevant_details->set_use_date(current -
-                                                base::TimeDelta::FromDays(2));
+  profile_with_irrelevant_details->set_use_date(current - base::Days(2));
 
   auto profile_complete = std::make_unique<autofill::AutofillProfile>();
   autofill::test::SetProfileInfo(profile_complete.get(), "Adam", "", "West", "",
@@ -376,7 +375,7 @@
   autofill::test::SetCreditCardInfo(old_card.get(), "Adam West",
                                     "4111111111111111", "1", "2050",
                                     /* billing_address_id= */ "");
-  old_card->set_use_date(current - base::TimeDelta::FromDays(2));
+  old_card->set_use_date(current - base::Days(2));
   auto old_instrument =
       std::make_unique<PaymentInstrument>(std::move(old_card), nullptr);
 
@@ -524,7 +523,7 @@
   autofill::test::SetCreditCardInfo(old_card.get(), "Adam West",
                                     "4111111111111111", "1", "2050",
                                     /* billing_address_id= */ "");
-  old_card->set_use_date(current - base::TimeDelta::FromDays(2));
+  old_card->set_use_date(current - base::Days(2));
   auto old_instrument =
       std::make_unique<PaymentInstrument>(std::move(old_card), nullptr);
 
diff --git a/components/autofill_assistant/browser/wait_for_document_operation_unittest.cc b/components/autofill_assistant/browser/wait_for_document_operation_unittest.cc
index 86ce41a9..eced57f9 100644
--- a/components/autofill_assistant/browser/wait_for_document_operation_unittest.cc
+++ b/components/autofill_assistant/browser/wait_for_document_operation_unittest.cc
@@ -34,8 +34,8 @@
     fake_script_executor_delegate_.SetWebController(&mock_web_controller_);
 
     wait_for_document_operation_ = std::make_unique<WaitForDocumentOperation>(
-        &fake_script_executor_delegate_, base::TimeDelta::FromSeconds(1),
-        DOCUMENT_COMPLETE, ElementFinder::Result(), mock_callback_.Get());
+        &fake_script_executor_delegate_, base::Seconds(1), DOCUMENT_COMPLETE,
+        ElementFinder::Result(), mock_callback_.Get());
   }
 
  protected:
@@ -53,7 +53,7 @@
   EXPECT_CALL(mock_web_controller_,
               WaitForDocumentReadyState(_, DOCUMENT_COMPLETE, _))
       .WillOnce(RunOnceCallback<2>(OkClientStatus(), DOCUMENT_COMPLETE,
-                                   base::TimeDelta::FromSeconds(0)));
+                                   base::Seconds(0)));
   EXPECT_CALL(mock_callback_,
               Run(Property(&ClientStatus::proto_status, ACTION_APPLIED), _, _));
 
@@ -65,7 +65,7 @@
               WaitForDocumentReadyState(_, DOCUMENT_COMPLETE, _))
       .WillOnce(RunOnceCallback<2>(ClientStatus(TIMED_OUT),
                                    DOCUMENT_UNKNOWN_READY_STATE,
-                                   base::TimeDelta::FromSeconds(0)));
+                                   base::Seconds(0)));
   EXPECT_CALL(mock_callback_,
               Run(Property(&ClientStatus::proto_status, TIMED_OUT), _, _));
 
@@ -88,20 +88,19 @@
               Run(Property(&ClientStatus::proto_status, TIMED_OUT), _, _));
 
   wait_for_document_operation_->Run();
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_env_.FastForwardBy(base::Seconds(2));
 
   // This callback should be ignored, it's too late. This should not report a
   // success or crash.
   std::move(captured_callback)
-      .Run(OkClientStatus(), DOCUMENT_COMPLETE,
-           base::TimeDelta::FromSeconds(2));
+      .Run(OkClientStatus(), DOCUMENT_COMPLETE, base::Seconds(2));
 }
 
 TEST_F(WaitForDocumentOperationTest, TimeoutIsIgnoredAfterSuccess) {
   EXPECT_CALL(mock_web_controller_,
               WaitForDocumentReadyState(_, DOCUMENT_COMPLETE, _))
       .WillOnce(RunOnceCallback<2>(OkClientStatus(), DOCUMENT_COMPLETE,
-                                   base::TimeDelta::FromSeconds(0)));
+                                   base::Seconds(0)));
   EXPECT_CALL(mock_callback_, Run(_, _, _)).Times(0);
   EXPECT_CALL(mock_callback_,
               Run(Property(&ClientStatus::proto_status, ACTION_APPLIED), _, _));
@@ -110,7 +109,7 @@
 
   // Moving forward in time causes the timer to expire. This should not report
   // a failure or crash.
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_env_.FastForwardBy(base::Seconds(2));
 }
 
 }  // namespace
diff --git a/components/autofill_assistant/browser/web/click_or_tap_worker.cc b/components/autofill_assistant/browser/web/click_or_tap_worker.cc
index c24ddb9..f50afda 100644
--- a/components/autofill_assistant/browser/web/click_or_tap_worker.cc
+++ b/components/autofill_assistant/browser/web/click_or_tap_worker.cc
@@ -28,8 +28,7 @@
   node_frame_id_ = element.node_frame_id();
   element_position_getter_ = std::make_unique<ElementPositionGetter>(
       devtools_client_, /* max_rounds= */ 1,
-      /* check_interval= */ base::TimeDelta::FromMilliseconds(0),
-      node_frame_id_);
+      /* check_interval= */ base::Milliseconds(0), node_frame_id_);
 
   element_position_getter_->Start(
       element.container_frame_host, element.object_id(),
diff --git a/components/autofill_assistant/browser/web/send_keyboard_input_worker.cc b/components/autofill_assistant/browser/web/send_keyboard_input_worker.cc
index ce3da76..f13eceab 100644
--- a/components/autofill_assistant/browser/web/send_keyboard_input_worker.cc
+++ b/components/autofill_assistant/browser/web/send_keyboard_input_worker.cc
@@ -106,8 +106,7 @@
   }
 
   callback_ = std::move(callback);
-  key_press_delay_ =
-      base::TimeDelta::FromMilliseconds(key_press_delay_in_millisecond);
+  key_press_delay_ = base::Milliseconds(key_press_delay_in_millisecond);
   frame_id_ = frame_id;
   key_events_ = key_events;
 
@@ -123,8 +122,8 @@
   // sort events by timestamp, we assign a unique,increasing timestamp to each
   // key events.
   pending_key_events_ = 2 * key_events.size();
-  base::Time base_ts = base::Time::Now() -
-                       base::TimeDelta::FromMilliseconds(2 * key_events.size());
+  base::Time base_ts =
+      base::Time::Now() - base::Milliseconds(2 * key_events.size());
 
   auto* devtools_input = devtools_client_->GetInput();
   auto weak_ptr = weak_ptr_factory_.GetWeakPtr();
@@ -132,9 +131,8 @@
   // any time.
 
   for (size_t i = 0; i < key_events.size(); i++) {
-    base::Time keydown_ts = base_ts + base::TimeDelta::FromMilliseconds(2 * i);
-    base::Time keyup_ts =
-        base_ts + base::TimeDelta::FromMilliseconds(2 * i + 1);
+    base::Time keydown_ts = base_ts + base::Milliseconds(2 * i);
+    base::Time keyup_ts = base_ts + base::Milliseconds(2 * i + 1);
     devtools_input->DispatchKeyEvent(
         CreateKeyEventParamsForKeyEvent(input::DispatchKeyEventType::KEY_DOWN,
                                         keydown_ts, key_events[i]),
diff --git a/components/autofill_assistant/browser/web/web_controller_browsertest.cc b/components/autofill_assistant/browser/web/web_controller_browsertest.cc
index 7044656..ff5fcb6 100644
--- a/components/autofill_assistant/browser/web/web_controller_browsertest.cc
+++ b/components/autofill_assistant/browser/web/web_controller_browsertest.cc
@@ -91,8 +91,7 @@
       {
         base::RunLoop heart_beat;
         base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-            FROM_HERE, heart_beat.QuitClosure(),
-            base::TimeDelta::FromSeconds(3));
+            FROM_HERE, heart_beat.QuitClosure(), base::Seconds(3));
         heart_beat.Run();
       }
       bool page_is_loading =
@@ -1460,7 +1459,7 @@
                        DISABLED_TapElementAfterPageIsIdle) {
   // Set a very long timeout to make sure either the page is idle or the test
   // timeout.
-  WaitTillPageIsIdle(base::TimeDelta::FromHours(1));
+  WaitTillPageIsIdle(base::Hours(1));
 
   Selector selector({"#touch_area_one"});
   ClickOrTapElement(selector, ClickType::TAP);
@@ -2591,15 +2590,13 @@
         }, 100);
       })())"));
   EXPECT_EQ(ELEMENT_UNSTABLE,
-            WaitUntilElementIsStable(element, 10,
-                                     base::TimeDelta::FromMilliseconds(100))
+            WaitUntilElementIsStable(element, 10, base::Milliseconds(100))
                 .proto_status());
 
   // Stop moving the element.
   EXPECT_TRUE(ExecJs(shell(), "clearInterval(document.browserTestInterval);"));
-  EXPECT_TRUE(WaitUntilElementIsStable(element, 10,
-                                       base::TimeDelta::FromMilliseconds(100))
-                  .ok());
+  EXPECT_TRUE(
+      WaitUntilElementIsStable(element, 10, base::Milliseconds(100)).ok());
 }
 
 IN_PROC_BROWSER_TEST_F(WebControllerBrowserTest,
@@ -2611,8 +2608,7 @@
   FindElement(Selector({"#emptydiv"}), &element_status, &empty_element);
   ASSERT_TRUE(element_status.ok());
   EXPECT_EQ(ELEMENT_POSITION_NOT_FOUND,
-            WaitUntilElementIsStable(empty_element, 10,
-                                     base::TimeDelta::FromMilliseconds(10))
+            WaitUntilElementIsStable(empty_element, 10, base::Milliseconds(10))
                 .proto_status());
 
   // The element is always hidden and has no box model.
@@ -2620,8 +2616,7 @@
   FindElement(Selector({"#hidden"}), &element_status, &hidden_element);
   ASSERT_TRUE(element_status.ok());
   EXPECT_EQ(ELEMENT_POSITION_NOT_FOUND,
-            WaitUntilElementIsStable(hidden_element, 10,
-                                     base::TimeDelta::FromMilliseconds(10))
+            WaitUntilElementIsStable(hidden_element, 10, base::Milliseconds(10))
                 .proto_status());
 }
 
@@ -2633,8 +2628,7 @@
   element.container_frame_host = web_contents()->GetMainFrame();
 
   EXPECT_EQ(ELEMENT_POSITION_NOT_FOUND,
-            WaitUntilElementIsStable(element, 10,
-                                     base::TimeDelta::FromMilliseconds(100))
+            WaitUntilElementIsStable(element, 10, base::Milliseconds(100))
                 .proto_status());
 }
 
diff --git a/components/background_sync/background_sync_controller_impl.cc b/components/background_sync/background_sync_controller_impl.cc
index 8b60e4c..aee98f27 100644
--- a/components/background_sync/background_sync_controller_impl.cc
+++ b/components/background_sync/background_sync_controller_impl.cc
@@ -149,8 +149,7 @@
     int initial_retry_delay_sec;
     if (base::StringToInt(field_params[kInitialRetryParameterName],
                           &initial_retry_delay_sec)) {
-      parameters->initial_retry_delay =
-          base::TimeDelta::FromSeconds(initial_retry_delay_sec);
+      parameters->initial_retry_delay = base::Seconds(initial_retry_delay_sec);
     }
   }
 
@@ -167,7 +166,7 @@
     if (base::StringToInt(field_params[kMinSyncRecoveryTimeName],
                           &min_sync_recovery_time_sec)) {
       parameters->min_sync_recovery_time =
-          base::TimeDelta::FromSeconds(min_sync_recovery_time_sec);
+          base::Seconds(min_sync_recovery_time_sec);
     }
   }
 
@@ -176,7 +175,7 @@
     if (base::StringToInt(field_params[kMaxSyncEventDurationName],
                           &max_sync_event_duration_sec)) {
       parameters->max_sync_event_duration =
-          base::TimeDelta::FromSeconds(max_sync_event_duration_sec);
+          base::Seconds(max_sync_event_duration_sec);
     }
   }
 
@@ -185,7 +184,7 @@
     if (base::StringToInt(field_params[kMinPeriodicSyncEventsInterval],
                           &min_periodic_sync_events_interval_sec)) {
       parameters->min_periodic_sync_events_interval =
-          base::TimeDelta::FromSeconds(min_periodic_sync_events_interval_sec);
+          base::Seconds(min_periodic_sync_events_interval_sec);
     }
   }
 
@@ -280,11 +279,11 @@
   DCHECK_GE(min_interval, 0);
 
   if (min_interval < min_gap_for_origin)
-    return base::TimeDelta::FromMilliseconds(min_gap_for_origin);
+    return base::Milliseconds(min_gap_for_origin);
   if (min_interval % min_gap_for_origin == 0)
-    return base::TimeDelta::FromMilliseconds(min_interval);
-  return base::TimeDelta::FromMilliseconds(
-      (min_interval / min_gap_for_origin + 1) * min_gap_for_origin);
+    return base::Milliseconds(min_interval);
+  return base::Milliseconds((min_interval / min_gap_for_origin + 1) *
+                            min_gap_for_origin);
 }
 
 base::TimeDelta BackgroundSyncControllerImpl::ApplyMinGapForOrigin(
diff --git a/components/blocked_content/popup_tracker.cc b/components/blocked_content/popup_tracker.cc
index a702dbb..7f8fb38 100644
--- a/components/blocked_content/popup_tracker.cc
+++ b/components/blocked_content/popup_tracker.cc
@@ -75,14 +75,13 @@
         "ContentSettings.Popups.FirstDocumentEngagementTime2",
         first_load_visible_time);
   }
-  UMA_HISTOGRAM_CUSTOM_TIMES(
-      "ContentSettings.Popups.EngagementTime", total_foreground_duration,
-      base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromHours(6), 50);
+  UMA_HISTOGRAM_CUSTOM_TIMES("ContentSettings.Popups.EngagementTime",
+                             total_foreground_duration, base::Milliseconds(1),
+                             base::Hours(6), 50);
   if (web_contents()->GetClosedByUserGesture()) {
     UMA_HISTOGRAM_CUSTOM_TIMES(
         "ContentSettings.Popups.EngagementTime.GestureClose",
-        total_foreground_duration, base::TimeDelta::FromMilliseconds(1),
-        base::TimeDelta::FromHours(6), 50);
+        total_foreground_duration, base::Milliseconds(1), base::Hours(6), 50);
   }
 
   if (opener_source_id_ != ukm::kInvalidSourceId) {
diff --git a/components/blocklist/opt_out_blocklist/opt_out_blocklist_item_unittest.cc b/components/blocklist/opt_out_blocklist/opt_out_blocklist_item_unittest.cc
index 68d495c..323be63 100644
--- a/components/blocklist/opt_out_blocklist/opt_out_blocklist_item_unittest.cc
+++ b/components/blocklist/opt_out_blocklist/opt_out_blocklist_item_unittest.cc
@@ -21,10 +21,9 @@
 TEST_F(OptOutBlocklistItemTest, BlockListState) {
   const int history = 4;
   const int threshold = 2;
-  const base::TimeDelta max_blocklist_duration =
-      base::TimeDelta::FromSeconds(30);
+  const base::TimeDelta max_blocklist_duration = base::Seconds(30);
   const base::Time now = base::Time::UnixEpoch();
-  const base::TimeDelta delay_between_entries = base::TimeDelta::FromSeconds(1);
+  const base::TimeDelta delay_between_entries = base::Seconds(1);
   const base::Time later =
       now + max_blocklist_duration + (delay_between_entries * 3);
 
diff --git a/components/blocklist/opt_out_blocklist/opt_out_blocklist_unittest.cc b/components/blocklist/opt_out_blocklist/opt_out_blocklist_unittest.cc
index 062c85fa..5e80a4ce 100644
--- a/components/blocklist/opt_out_blocklist/opt_out_blocklist_unittest.cc
+++ b/components/blocklist/opt_out_blocklist/opt_out_blocklist_unittest.cc
@@ -306,8 +306,8 @@
 
 TEST_F(OptOutBlocklistTest, HostBlockListNoStore) {
   // Tests the block list behavior when a null OptOutStore is passed in.
-  auto host_policy = std::make_unique<BlocklistData::Policy>(
-      base::TimeDelta::FromDays(365), 4u, 2);
+  auto host_policy =
+      std::make_unique<BlocklistData::Policy>(base::Days(365), 4u, 2);
   SetHostRule(std::move(host_policy), 5);
   BlocklistData::AllowedTypesAndVersions allowed_types;
   allowed_types.insert({1, 0});
@@ -315,7 +315,7 @@
 
   StartTest(true /* null_opt_out */);
 
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
 
   EXPECT_EQ(
       BlocklistReason::kAllowed,
@@ -325,9 +325,9 @@
       block_list_->IsLoadedAndAllowed(kTestHost2, 1, false, &passed_reasons_));
 
   block_list_->AddEntry(kTestHost1, true, 1);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
   block_list_->AddEntry(kTestHost1, true, 1);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
 
   EXPECT_EQ(
       BlocklistReason::kUserOptedOutOfHost,
@@ -340,9 +340,9 @@
       block_list_->IsLoadedAndAllowed(kTestHost2, 1, false, &passed_reasons_));
 
   block_list_->AddEntry(kTestHost2, true, 1);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
   block_list_->AddEntry(kTestHost2, true, 1);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
 
   EXPECT_EQ(
       BlocklistReason::kUserOptedOutOfHost,
@@ -355,11 +355,11 @@
       block_list_->IsLoadedAndAllowed(kTestHost2, 1, false, &passed_reasons_));
 
   block_list_->AddEntry(kTestHost2, false, 1);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
   block_list_->AddEntry(kTestHost2, false, 1);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
   block_list_->AddEntry(kTestHost2, false, 1);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
 
   EXPECT_EQ(
       BlocklistReason::kUserOptedOutOfHost,
@@ -384,8 +384,8 @@
 TEST_F(OptOutBlocklistTest, TypeBlockListWithStore) {
   // Tests the block list behavior when a non-null OptOutStore is passed in.
 
-  auto type_policy = std::make_unique<BlocklistData::Policy>(
-      base::TimeDelta::FromDays(365), 4u, 2);
+  auto type_policy =
+      std::make_unique<BlocklistData::Policy>(base::Days(365), 4u, 2);
   SetTypeRule(std::move(type_policy));
   BlocklistData::AllowedTypesAndVersions allowed_types;
   allowed_types.insert({1, 0});
@@ -394,7 +394,7 @@
 
   StartTest(false /* null_opt_out */);
 
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
 
   EXPECT_EQ(
       BlocklistReason::kBlocklistNotLoaded,
@@ -419,9 +419,9 @@
       block_list_->IsLoadedAndAllowed(kTestHost1, 2, false, &passed_reasons_));
 
   block_list_->AddEntry(kTestHost1, true, 1);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
   block_list_->AddEntry(kTestHost1, true, 1);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
 
   EXPECT_EQ(
       BlocklistReason::kUserOptedOutOfType,
@@ -437,9 +437,9 @@
       block_list_->IsLoadedAndAllowed(kTestHost1, 2, false, &passed_reasons_));
 
   block_list_->AddEntry(kTestHost1, true, 2);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
   block_list_->AddEntry(kTestHost1, true, 2);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
 
   EXPECT_EQ(
       BlocklistReason::kUserOptedOutOfType,
@@ -452,11 +452,11 @@
       block_list_->IsLoadedAndAllowed(kTestHost1, 2, false, &passed_reasons_));
 
   block_list_->AddEntry(kTestHost1, false, 2);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
   block_list_->AddEntry(kTestHost1, false, 2);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
   block_list_->AddEntry(kTestHost1, false, 2);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
 
   EXPECT_EQ(
       BlocklistReason::kUserOptedOutOfType,
@@ -498,8 +498,8 @@
 
 TEST_F(OptOutBlocklistTest, TypeBlockListNoStore) {
   // Tests the block list behavior when a null OptOutStore is passed in.
-  auto type_policy = std::make_unique<BlocklistData::Policy>(
-      base::TimeDelta::FromDays(365), 4u, 2);
+  auto type_policy =
+      std::make_unique<BlocklistData::Policy>(base::Days(365), 4u, 2);
   SetTypeRule(std::move(type_policy));
   BlocklistData::AllowedTypesAndVersions allowed_types;
   allowed_types.insert({1, 0});
@@ -508,7 +508,7 @@
 
   StartTest(true /* null_opt_out */);
 
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
 
   EXPECT_EQ(
       BlocklistReason::kAllowed,
@@ -518,9 +518,9 @@
       block_list_->IsLoadedAndAllowed(kTestHost1, 2, false, &passed_reasons_));
 
   block_list_->AddEntry(kTestHost1, true, 1);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
   block_list_->AddEntry(kTestHost1, true, 1);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
 
   EXPECT_EQ(
       BlocklistReason::kUserOptedOutOfType,
@@ -533,9 +533,9 @@
       block_list_->IsLoadedAndAllowed(kTestHost1, 2, false, &passed_reasons_));
 
   block_list_->AddEntry(kTestHost1, true, 2);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
   block_list_->AddEntry(kTestHost1, true, 2);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
 
   EXPECT_EQ(
       BlocklistReason::kUserOptedOutOfType,
@@ -548,11 +548,11 @@
       block_list_->IsLoadedAndAllowed(kTestHost1, 2, false, &passed_reasons_));
 
   block_list_->AddEntry(kTestHost1, false, 2);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
   block_list_->AddEntry(kTestHost1, false, 2);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
   block_list_->AddEntry(kTestHost1, false, 2);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
 
   EXPECT_EQ(
       BlocklistReason::kUserOptedOutOfType,
@@ -586,14 +586,14 @@
   int host_indifferent_threshold = 4;
 
   auto persistent_policy = std::make_unique<BlocklistData::Policy>(
-      base::TimeDelta::FromDays(365), 4u, host_indifferent_threshold);
+      base::Days(365), 4u, host_indifferent_threshold);
   SetPersistentRule(std::move(persistent_policy));
   BlocklistData::AllowedTypesAndVersions allowed_types;
   allowed_types.insert({1, 0});
   SetAllowedTypes(std::move(allowed_types));
 
   StartTest(true /* null_opt_out */);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
 
   EXPECT_EQ(
       BlocklistReason::kAllowed,
@@ -614,7 +614,7 @@
         i != 3 ? BlocklistReason::kAllowed
                : BlocklistReason::kUserOptedOutInGeneral,
         block_list_->IsLoadedAndAllowed(hosts[0], 1, false, &passed_reasons_));
-    test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+    test_clock_.Advance(base::Seconds(1));
   }
 
   EXPECT_EQ(
@@ -634,7 +634,7 @@
       block_list_->IsLoadedAndAllowed(hosts[3], 1, true, &passed_reasons_));
 
   block_list_->AddEntry(hosts[3], false, 1);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
 
   // New non-opt-out entry will cause these to be allowed now.
   EXPECT_EQ(
@@ -659,8 +659,8 @@
   std::vector<bool> test_opt_out{true, false};
 
   for (auto opt_out : test_opt_out) {
-    auto host_policy = std::make_unique<BlocklistData::Policy>(
-        base::TimeDelta::FromDays(365), 4u, 2);
+    auto host_policy =
+        std::make_unique<BlocklistData::Policy>(base::Days(365), 4u, 2);
     SetHostRule(std::move(host_policy), 5);
     BlocklistData::AllowedTypesAndVersions allowed_types;
     allowed_types.insert({1, 0});
@@ -672,9 +672,9 @@
               block_list_->IsLoadedAndAllowed(kTestHost1, 1, false,
                                               &passed_reasons_));
     block_list_->AddEntry(kTestHost1, opt_out, 1);
-    test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+    test_clock_.Advance(base::Seconds(1));
     block_list_->AddEntry(kTestHost1, opt_out, 1);
-    test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+    test_clock_.Advance(base::Seconds(1));
     EXPECT_EQ(BlocklistReason::kBlocklistNotLoaded,
               block_list_->IsLoadedAndAllowed(kTestHost1, 1, false,
                                               &passed_reasons_));
@@ -684,17 +684,16 @@
               block_list_->IsLoadedAndAllowed(kTestHost1, 1, false,
                                               &passed_reasons_));
     block_list_->AddEntry(kTestHost1, opt_out, 1);
-    test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+    test_clock_.Advance(base::Seconds(1));
     block_list_->AddEntry(kTestHost1, opt_out, 1);
-    test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+    test_clock_.Advance(base::Seconds(1));
     EXPECT_EQ(0, opt_out_store_->clear_blocklist_count());
-    block_list_->ClearBlockList(
-        start_, test_clock_.Now() + base::TimeDelta::FromSeconds(1));
+    block_list_->ClearBlockList(start_, test_clock_.Now() + base::Seconds(1));
     EXPECT_EQ(1, opt_out_store_->clear_blocklist_count());
     block_list_->AddEntry(kTestHost2, opt_out, 1);
-    test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+    test_clock_.Advance(base::Seconds(1));
     block_list_->AddEntry(kTestHost2, opt_out, 1);
-    test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+    test_clock_.Advance(base::Seconds(1));
     base::RunLoop().RunUntilIdle();
     EXPECT_EQ(1, opt_out_store_->clear_blocklist_count());
 
@@ -715,8 +714,8 @@
   const std::string test_host_4("host4.com");
   const std::string test_host_5("host5.com");
 
-  auto host_policy = std::make_unique<BlocklistData::Policy>(
-      base::TimeDelta::FromDays(365), 1u, 1);
+  auto host_policy =
+      std::make_unique<BlocklistData::Policy>(base::Days(365), 1u, 1);
   SetHostRule(std::move(host_policy), 2);
   BlocklistData::AllowedTypesAndVersions allowed_types;
   allowed_types.insert({1, 0});
@@ -725,9 +724,9 @@
   StartTest(true /* null_opt_out */);
 
   block_list_->AddEntry(kTestHost1, true, 1);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
   block_list_->AddEntry(kTestHost2, false, 1);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
   block_list_->AddEntry(test_host_3, false, 1);
   // kTestHost1 should stay in the map, since it has an opt out time.
   EXPECT_EQ(
@@ -740,9 +739,9 @@
       BlocklistReason::kAllowed,
       block_list_->IsLoadedAndAllowed(test_host_3, 1, false, &passed_reasons_));
 
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
   block_list_->AddEntry(test_host_4, true, 1);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
   block_list_->AddEntry(test_host_5, true, 1);
   // test_host_4 and test_host_5 should remain in the map, but host should be
   // evicted.
@@ -764,7 +763,7 @@
   const std::string test_host_3("host3.com");
 
   auto session_policy = std::make_unique<BlocklistData::Policy>(
-      base::TimeDelta::FromSeconds(single_opt_out_duration), 1u, 1);
+      base::Seconds(single_opt_out_duration), 1u, 1);
   SetSessionRule(std::move(session_policy));
   BlocklistData::AllowedTypesAndVersions allowed_types;
   allowed_types.insert({1, 0});
@@ -780,8 +779,7 @@
       BlocklistReason::kAllowed,
       block_list_->IsLoadedAndAllowed(test_host_3, 1, false, &passed_reasons_));
 
-  test_clock_.Advance(
-      base::TimeDelta::FromSeconds(single_opt_out_duration + 1));
+  test_clock_.Advance(base::Seconds(single_opt_out_duration + 1));
 
   block_list_->AddEntry(kTestHost2, true, 1);
   EXPECT_EQ(
@@ -791,8 +789,7 @@
       BlocklistReason::kUserOptedOutInSession,
       block_list_->IsLoadedAndAllowed(test_host_3, 1, false, &passed_reasons_));
 
-  test_clock_.Advance(
-      base::TimeDelta::FromSeconds(single_opt_out_duration - 1));
+  test_clock_.Advance(base::Seconds(single_opt_out_duration - 1));
 
   EXPECT_EQ(
       BlocklistReason::kUserOptedOutInSession,
@@ -801,8 +798,7 @@
       BlocklistReason::kUserOptedOutInSession,
       block_list_->IsLoadedAndAllowed(test_host_3, 1, false, &passed_reasons_));
 
-  test_clock_.Advance(
-      base::TimeDelta::FromSeconds(single_opt_out_duration + 1));
+  test_clock_.Advance(base::Seconds(single_opt_out_duration + 1));
 
   EXPECT_EQ(
       BlocklistReason::kAllowed,
@@ -817,8 +813,8 @@
   // "single_opt_out_duration_in_seconds") resets the blocklist's recent opt out
   // rule.
 
-  auto session_policy = std::make_unique<BlocklistData::Policy>(
-      base::TimeDelta::FromSeconds(5), 1u, 1);
+  auto session_policy =
+      std::make_unique<BlocklistData::Policy>(base::Seconds(5), 1u, 1);
   SetSessionRule(std::move(session_policy));
   BlocklistData::AllowedTypesAndVersions allowed_types;
   allowed_types.insert({1, 0});
@@ -827,7 +823,7 @@
   StartTest(false /* null_opt_out */);
 
   block_list_->AddEntry(kTestHost1, true /* opt_out */, 1);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
   block_list_->ClearBlockList(start_, test_clock_.Now());
   base::RunLoop().RunUntilIdle();
 
@@ -839,8 +835,8 @@
 TEST_F(OptOutBlocklistTest, ObserverIsNotifiedOnHostBlocklisted) {
   // Tests the block list behavior when a null OptOutStore is passed in.
 
-  auto host_policy = std::make_unique<BlocklistData::Policy>(
-      base::TimeDelta::FromDays(365), 4u, 2);
+  auto host_policy =
+      std::make_unique<BlocklistData::Policy>(base::Days(365), 4u, 2);
   SetHostRule(std::move(host_policy), 5);
   BlocklistData::AllowedTypesAndVersions allowed_types;
   allowed_types.insert({1, 0});
@@ -853,13 +849,13 @@
       block_list_->IsLoadedAndAllowed(kTestHost1, 1, false, &passed_reasons_));
 
   // Observer is not notified as blocklisted when the threshold does not met.
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
   block_list_->AddEntry(kTestHost1, true, 1);
   base::RunLoop().RunUntilIdle();
   EXPECT_THAT(blocklist_delegate_.blocklisted_hosts(), ::testing::SizeIs(0));
 
   // Observer is notified as blocklisted when the threshold is met.
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
   block_list_->AddEntry(kTestHost1, true, 1);
   base::RunLoop().RunUntilIdle();
   const base::Time blocklisted_time = test_clock_.Now();
@@ -868,7 +864,7 @@
             blocklist_delegate_.blocklisted_hosts().find(kTestHost1)->second);
 
   // Observer is not notified when the host is already blocklisted.
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
   block_list_->AddEntry(kTestHost1, true, 1);
   base::RunLoop().RunUntilIdle();
   EXPECT_THAT(blocklist_delegate_.blocklisted_hosts(), ::testing::SizeIs(1));
@@ -878,7 +874,7 @@
   // Observer is notified when blocklist is cleared.
   EXPECT_FALSE(blocklist_delegate_.blocklist_cleared());
 
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
   block_list_->ClearBlockList(start_, test_clock_.Now());
   base::RunLoop().RunUntilIdle();
 
@@ -898,7 +894,7 @@
   int host_indifferent_threshold = 4;
 
   auto persistent_policy = std::make_unique<BlocklistData::Policy>(
-      base::TimeDelta::FromDays(30), 4u, host_indifferent_threshold);
+      base::Days(30), 4u, host_indifferent_threshold);
   SetPersistentRule(std::move(persistent_policy));
   BlocklistData::AllowedTypesAndVersions allowed_types;
   allowed_types.insert({1, 0});
@@ -911,7 +907,7 @@
   EXPECT_FALSE(blocklist_delegate_.user_blocklisted());
 
   for (int i = 0; i < host_indifferent_threshold; ++i) {
-    test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+    test_clock_.Advance(base::Seconds(1));
     block_list_->AddEntry(hosts[i], true, 1);
     base::RunLoop().RunUntilIdle();
 
@@ -923,7 +919,7 @@
   }
 
   // Observer is notified when the user is no longer blocklisted.
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
   block_list_->AddEntry(hosts[3], false, 1);
   base::RunLoop().RunUntilIdle();
 
@@ -934,8 +930,7 @@
   int host_indifferent_threshold = 4;
   size_t host_indifferent_history = 4u;
   auto persistent_policy = std::make_unique<BlocklistData::Policy>(
-      base::TimeDelta::FromDays(30), host_indifferent_history,
-      host_indifferent_threshold);
+      base::Days(30), host_indifferent_history, host_indifferent_threshold);
   SetPersistentRule(std::move(persistent_policy));
   BlocklistData::AllowedTypesAndVersions allowed_types;
   allowed_types.insert({1, 0});
@@ -947,14 +942,14 @@
   allowed_types[0] = 0;
   std::unique_ptr<BlocklistData> data = std::make_unique<BlocklistData>(
       nullptr,
-      std::make_unique<BlocklistData::Policy>(base::TimeDelta::FromSeconds(365),
+      std::make_unique<BlocklistData::Policy>(base::Seconds(365),
                                               host_indifferent_history,
                                               host_indifferent_threshold),
       nullptr, nullptr, 0, std::move(allowed_types));
   base::SimpleTestClock test_clock;
 
   for (int i = 0; i < host_indifferent_threshold; ++i) {
-    test_clock.Advance(base::TimeDelta::FromSeconds(1));
+    test_clock.Advance(base::Seconds(1));
     data->AddEntry(kTestHost1, true, 0, test_clock.Now(), true);
   }
 
@@ -971,8 +966,7 @@
   block_list->SetAllowedTypes(std::move(allowed_types));
 
   persistent_policy = std::make_unique<BlocklistData::Policy>(
-      base::TimeDelta::FromDays(30), host_indifferent_history,
-      host_indifferent_threshold);
+      base::Days(30), host_indifferent_history, host_indifferent_threshold);
   block_list->SetPersistentRule(std::move(persistent_policy));
 
   block_list->Init();
@@ -986,8 +980,7 @@
   int host_indifferent_threshold = 2;
   size_t host_indifferent_history = 4u;
   auto host_policy = std::make_unique<BlocklistData::Policy>(
-      base::TimeDelta::FromDays(365), host_indifferent_history,
-      host_indifferent_threshold);
+      base::Days(365), host_indifferent_history, host_indifferent_threshold);
   SetHostRule(std::move(host_policy), 5);
   BlocklistData::AllowedTypesAndVersions allowed_types;
   allowed_types.insert({1, 0});
@@ -1001,14 +994,14 @@
   allowed_types[static_cast<int>(1)] = 0;
   std::unique_ptr<BlocklistData> data = std::make_unique<BlocklistData>(
       nullptr, nullptr,
-      std::make_unique<BlocklistData::Policy>(base::TimeDelta::FromDays(365),
+      std::make_unique<BlocklistData::Policy>(base::Days(365),
                                               host_indifferent_history,
                                               host_indifferent_threshold),
       nullptr, 2, std::move(allowed_types));
 
-  test_clock.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock.Advance(base::Seconds(1));
   data->AddEntry(kTestHost1, true, static_cast<int>(1), test_clock.Now(), true);
-  test_clock.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock.Advance(base::Seconds(1));
   data->AddEntry(kTestHost1, true, static_cast<int>(1), test_clock.Now(), true);
   base::Time blocklisted_time = test_clock.Now();
 
@@ -1019,7 +1012,7 @@
                             test_clock.Now(), &reasons));
 
   // Host |url_b| is not blocklisted.
-  test_clock.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock.Advance(base::Seconds(1));
   data->AddEntry(kTestHost2, true, static_cast<int>(1), test_clock.Now(), true);
 
   std::unique_ptr<TestOptOutStore> opt_out_store =
@@ -1033,8 +1026,7 @@
   block_list->SetAllowedTypes(std::move(allowed_types));
 
   host_policy = std::make_unique<BlocklistData::Policy>(
-      base::TimeDelta::FromDays(30), host_indifferent_history,
-      host_indifferent_threshold);
+      base::Days(30), host_indifferent_history, host_indifferent_threshold);
   block_list->SetPersistentRule(std::move(host_policy));
 
   block_list->Init();
@@ -1066,8 +1058,8 @@
   // Test that IsLoadedAndAllow, push checked BlocklistReasons to the
   // |passed_reasons| vector.
 
-  auto session_policy = std::make_unique<BlocklistData::Policy>(
-      base::TimeDelta::FromSeconds(5), 1u, 1);
+  auto session_policy =
+      std::make_unique<BlocklistData::Policy>(base::Seconds(5), 1u, 1);
   SetSessionRule(std::move(session_policy));
   BlocklistData::AllowedTypesAndVersions allowed_types;
   allowed_types.insert({1, 0});
@@ -1093,24 +1085,24 @@
       "http://www.url_3.com",
   };
 
-  auto session_policy = std::make_unique<BlocklistData::Policy>(
-      base::TimeDelta::FromSeconds(1), 1u, 1);
+  auto session_policy =
+      std::make_unique<BlocklistData::Policy>(base::Seconds(1), 1u, 1);
   SetSessionRule(std::move(session_policy));
-  auto persistent_policy = std::make_unique<BlocklistData::Policy>(
-      base::TimeDelta::FromDays(365), 4u, 4);
+  auto persistent_policy =
+      std::make_unique<BlocklistData::Policy>(base::Days(365), 4u, 4);
   SetPersistentRule(std::move(persistent_policy));
   BlocklistData::AllowedTypesAndVersions allowed_types;
   allowed_types.insert({1, 0});
   SetAllowedTypes(std::move(allowed_types));
 
   StartTest(true /* null_opt_out */);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
 
   for (auto host : hosts) {
     block_list_->AddEntry(host, true, 1);
   }
 
-  test_clock_.Advance(base::TimeDelta::FromSeconds(2));
+  test_clock_.Advance(base::Seconds(2));
 
   EXPECT_EQ(
       BlocklistReason::kUserOptedOutInGeneral,
@@ -1130,14 +1122,14 @@
   // Test that IsLoadedAndAllow, push checked BlocklistReasons to the
   // |passed_reasons| vector.
 
-  auto session_policy = std::make_unique<BlocklistData::Policy>(
-      base::TimeDelta::FromDays(5), 3u, 3);
+  auto session_policy =
+      std::make_unique<BlocklistData::Policy>(base::Days(5), 3u, 3);
   SetSessionRule(std::move(session_policy));
-  auto persistent_policy = std::make_unique<BlocklistData::Policy>(
-      base::TimeDelta::FromDays(365), 4u, 4);
+  auto persistent_policy =
+      std::make_unique<BlocklistData::Policy>(base::Days(365), 4u, 4);
   SetPersistentRule(std::move(persistent_policy));
-  auto host_policy = std::make_unique<BlocklistData::Policy>(
-      base::TimeDelta::FromDays(30), 4u, 2);
+  auto host_policy =
+      std::make_unique<BlocklistData::Policy>(base::Days(30), 4u, 2);
   SetHostRule(std::move(host_policy), 2);
   BlocklistData::AllowedTypesAndVersions allowed_types;
   allowed_types.insert({1, 0});
@@ -1167,17 +1159,17 @@
   // Test that IsLoadedAndAllow, push checked BlocklistReasons to the
   // |passed_reasons| vector.
 
-  auto session_policy = std::make_unique<BlocklistData::Policy>(
-      base::TimeDelta::FromSeconds(1), 1u, 1);
+  auto session_policy =
+      std::make_unique<BlocklistData::Policy>(base::Seconds(1), 1u, 1);
   SetSessionRule(std::move(session_policy));
-  auto persistent_policy = std::make_unique<BlocklistData::Policy>(
-      base::TimeDelta::FromDays(365), 4u, 4);
+  auto persistent_policy =
+      std::make_unique<BlocklistData::Policy>(base::Days(365), 4u, 4);
   SetPersistentRule(std::move(persistent_policy));
-  auto host_policy = std::make_unique<BlocklistData::Policy>(
-      base::TimeDelta::FromDays(30), 4u, 4);
+  auto host_policy =
+      std::make_unique<BlocklistData::Policy>(base::Days(30), 4u, 4);
   SetHostRule(std::move(host_policy), 1);
-  auto type_policy = std::make_unique<BlocklistData::Policy>(
-      base::TimeDelta::FromDays(30), 4u, 4);
+  auto type_policy =
+      std::make_unique<BlocklistData::Policy>(base::Days(30), 4u, 4);
   SetTypeRule(std::move(type_policy));
   BlocklistData::AllowedTypesAndVersions allowed_types;
   allowed_types.insert({1, 0});
diff --git a/components/blocklist/opt_out_blocklist/sql/opt_out_store_sql.cc b/components/blocklist/opt_out_blocklist/sql/opt_out_store_sql.cc
index 743f756..791e4ca 100644
--- a/components/blocklist/opt_out_blocklist/sql/opt_out_store_sql.cc
+++ b/components/blocklist/opt_out_blocklist/sql/opt_out_store_sql.cc
@@ -275,11 +275,10 @@
   int count = 0;
   while (statement.Step()) {
     ++count;
-    blocklist_data->AddEntry(statement.ColumnString(0), statement.ColumnBool(2),
-                             statement.ColumnInt64(3),
-                             base::Time() + base::TimeDelta::FromMicroseconds(
-                                                statement.ColumnInt64(1)),
-                             true);
+    blocklist_data->AddEntry(
+        statement.ColumnString(0), statement.ColumnBool(2),
+        statement.ColumnInt64(3),
+        base::Time() + base::Microseconds(statement.ColumnInt64(1)), true);
   }
 
   if (count > MaxRowsInOptOutDB()) {
diff --git a/components/blocklist/opt_out_blocklist/sql/opt_out_store_sql_unittest.cc b/components/blocklist/opt_out_blocklist/sql/opt_out_store_sql_unittest.cc
index 4aac3cc..e89e2fa 100644
--- a/components/blocklist/opt_out_blocklist/sql/opt_out_store_sql_unittest.cc
+++ b/components/blocklist/opt_out_blocklist/sql/opt_out_store_sql_unittest.cc
@@ -48,13 +48,10 @@
   void Load() {
     // Choose reasonable constants.
     std::unique_ptr<BlocklistData> data = std::make_unique<BlocklistData>(
-        std::make_unique<BlocklistData::Policy>(base::TimeDelta::FromMinutes(5),
-                                                1, 1),
-        std::make_unique<BlocklistData::Policy>(base::TimeDelta::FromDays(30),
-                                                10, 6u),
-        std::make_unique<BlocklistData::Policy>(base::TimeDelta::FromDays(30),
-                                                4, 2u),
-        nullptr, 10, allowed_types_);
+        std::make_unique<BlocklistData::Policy>(base::Minutes(5), 1, 1),
+        std::make_unique<BlocklistData::Policy>(base::Days(30), 10, 6u),
+        std::make_unique<BlocklistData::Policy>(base::Days(30), 4, 2u), nullptr,
+        10, allowed_types_);
 
     store_->LoadBlockList(
         std::move(data),
@@ -184,11 +181,11 @@
 
   // Create three different entries with different hosts.
   store_->AddEntry(true, test_host_a, 1, clock.Now());
-  clock.Advance(base::TimeDelta::FromSeconds(1));
+  clock.Advance(base::Seconds(1));
 
   store_->AddEntry(true, test_host_b, 1, clock.Now());
   base::Time host_b_time = clock.Now();
-  clock.Advance(base::TimeDelta::FromSeconds(1));
+  clock.Advance(base::Seconds(1));
 
   store_->AddEntry(false, test_host_c, 1, clock.Now());
   base::RunLoop().RunUntilIdle();
@@ -244,10 +241,10 @@
   for (size_t i = 0; i < row_limit; i++) {
     store_->AddEntry(true, test_host, 1, clock.Now());
     last_opt_out_time = clock.Now();
-    clock.Advance(base::TimeDelta::FromSeconds(1));
+    clock.Advance(base::Seconds(1));
   }
 
-  clock.Advance(base::TimeDelta::FromSeconds(1));
+  clock.Advance(base::Seconds(1));
   store_->AddEntry(false, test_host, 1, clock.Now());
 
   base::RunLoop().RunUntilIdle();
@@ -268,7 +265,7 @@
   EXPECT_NE(blocklist_data_->block_list_item_host_map().end(), iter);
   EXPECT_EQ(last_opt_out_time, iter->second.most_recent_opt_out_time().value());
   EXPECT_EQ(row_limit, iter->second.OptOutRecordsSizeForTesting());
-  clock.Advance(base::TimeDelta::FromSeconds(1));
+  clock.Advance(base::Seconds(1));
   // If both entries' opt out states are stored correctly, then this should not
   // be block listed.
   EXPECT_FALSE(iter->second.IsBlockListed(clock.Now()));
diff --git a/components/bookmarks/browser/bookmark_model_unittest.cc b/components/bookmarks/browser/bookmark_model_unittest.cc
index a469e2d3..de84932e 100644
--- a/components/bookmarks/browser/bookmark_model_unittest.cc
+++ b/components/bookmarks/browser/bookmark_model_unittest.cc
@@ -678,8 +678,7 @@
   const BookmarkNode* root = model_->bookmark_bar_node();
   const std::u16string title(u"foo");
   BookmarkNode::MetaInfoMap meta_info;
-  const base::Time creation_time(base::Time::Now() -
-                                 base::TimeDelta::FromDays(1));
+  const base::Time creation_time(base::Time::Now() - base::Days(1));
 
   const BookmarkNode* new_node =
       model_->AddFolder(root, /*index=*/0, title, &meta_info, creation_time);
@@ -890,7 +889,7 @@
 
   ClearCounts();
 
-  base::Time new_time = base::Time::Now() + base::TimeDelta::FromMinutes(20);
+  base::Time new_time = base::Time::Now() + base::Minutes(20);
   model_->SetDateAdded(node, new_time);
   AssertObserverCount(0, 0, 0, 0, 0, 0, 0, 0, 0);
   EXPECT_EQ(new_time, node->date_added());
@@ -937,7 +936,7 @@
   const BookmarkNode* root = model_->bookmark_bar_node();
   const std::u16string title(u"foo");
   const GURL url("http://foo.com");
-  const base::Time old_date(base::Time::Now() - base::TimeDelta::FromDays(1));
+  const base::Time old_date(base::Time::Now() - base::Days(1));
 
   const BookmarkNode* node = model_->AddURL(root, 0, title, url);
   model_->SetDateFolderModified(root, old_date);
diff --git a/components/bookmarks/browser/bookmark_storage.h b/components/bookmarks/browser/bookmark_storage.h
index 0a3779b..f8963c7c 100644
--- a/components/bookmarks/browser/bookmark_storage.h
+++ b/components/bookmarks/browser/bookmark_storage.h
@@ -33,8 +33,7 @@
     : public base::ImportantFileWriter::BackgroundDataSerializer {
  public:
   // How often the file is saved at most.
-  static constexpr base::TimeDelta kSaveDelay =
-      base::TimeDelta::FromMilliseconds(2500);
+  static constexpr base::TimeDelta kSaveDelay = base::Milliseconds(2500);
 
   // Creates a BookmarkStorage for the specified model. The data will saved to a
   // location derived from |profile_path|. The disk writes will be executed as a
diff --git a/components/bookmarks/browser/bookmark_storage_unittest.cc b/components/bookmarks/browser/bookmark_storage_unittest.cc
index 43636dfd..e03c2e9 100644
--- a/components/bookmarks/browser/bookmark_storage_unittest.cc
+++ b/components/bookmarks/browser/bookmark_storage_unittest.cc
@@ -48,12 +48,12 @@
 
   // Advance clock until immediately before saving takes place.
   task_environment.FastForwardBy(BookmarkStorage::kSaveDelay -
-                                 base::TimeDelta::FromMilliseconds(10));
+                                 base::Milliseconds(10));
   EXPECT_TRUE(storage.HasScheduledSaveForTesting());
   EXPECT_FALSE(base::PathExists(temp_dir.GetPath().Append(kBookmarksFileName)));
 
   // Advance clock past the saving moment.
-  task_environment.FastForwardBy(base::TimeDelta::FromMilliseconds(20));
+  task_environment.FastForwardBy(base::Milliseconds(20));
   EXPECT_FALSE(storage.HasScheduledSaveForTesting());
   EXPECT_TRUE(base::PathExists(temp_dir.GetPath().Append(kBookmarksFileName)));
 }
diff --git a/components/breadcrumbs/core/breadcrumb_manager.cc b/components/breadcrumbs/core/breadcrumb_manager.cc
index e6b8cb6..79fac267 100644
--- a/components/breadcrumbs/core/breadcrumb_manager.cc
+++ b/components/breadcrumbs/core/breadcrumb_manager.cc
@@ -97,8 +97,7 @@
 }
 
 void BreadcrumbManager::DropOldEvents() {
-  static const base::TimeDelta kMessageExpirationTime =
-      base::TimeDelta::FromMinutes(20);
+  static const base::TimeDelta kMessageExpirationTime = base::Minutes(20);
 
   bool old_buckets_dropped = false;
   const base::Time now = base::Time::Now();
diff --git a/components/breadcrumbs/core/breadcrumb_manager_observer_unittest.cc b/components/breadcrumbs/core/breadcrumb_manager_observer_unittest.cc
index 9dfc6eb..ed8c783 100644
--- a/components/breadcrumbs/core/breadcrumb_manager_observer_unittest.cc
+++ b/components/breadcrumbs/core/breadcrumb_manager_observer_unittest.cc
@@ -81,9 +81,9 @@
 
   const std::string event = "event";
   manager_.AddEvent(event);
-  task_env_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_env_.FastForwardBy(base::Hours(1));
   manager_.AddEvent(event);
-  task_env_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_env_.FastForwardBy(base::Hours(1));
   manager_.AddEvent(event);
 
   EXPECT_EQ(&manager_, observer_.old_events_removed_last_received_manager_);
diff --git a/components/breadcrumbs/core/breadcrumb_manager_unittest.cc b/components/breadcrumbs/core/breadcrumb_manager_unittest.cc
index 53a84afa..c0025e0 100644
--- a/components/breadcrumbs/core/breadcrumb_manager_unittest.cc
+++ b/components/breadcrumbs/core/breadcrumb_manager_unittest.cc
@@ -53,17 +53,17 @@
 TEST_F(BreadcrumbManagerTest, OldEventsDropped) {
   // Log an event from one and two hours ago.
   breadcrumb_manager_.AddEvent("event1");
-  task_env_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_env_.FastForwardBy(base::Hours(1));
   breadcrumb_manager_.AddEvent("event2");
-  task_env_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_env_.FastForwardBy(base::Hours(1));
 
   // Log three events separated by three minutes to ensure they receive their
   // own event bucket. Otherwise, some old events may be returned to ensure a
   // minimum number of available events. See |MinimumEventsReturned| test below.
   breadcrumb_manager_.AddEvent("event3");
-  task_env_.FastForwardBy(base::TimeDelta::FromMinutes(3));
+  task_env_.FastForwardBy(base::Minutes(3));
   breadcrumb_manager_.AddEvent("event4");
-  task_env_.FastForwardBy(base::TimeDelta::FromMinutes(3));
+  task_env_.FastForwardBy(base::Minutes(3));
   breadcrumb_manager_.AddEvent("event5");
 
   std::list<std::string> events = breadcrumb_manager_.GetEvents(0);
@@ -80,9 +80,9 @@
 TEST_F(BreadcrumbManagerTest, MinimumEventsReturned) {
   // Log an event from one and two hours ago.
   breadcrumb_manager_.AddEvent("event1");
-  task_env_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_env_.FastForwardBy(base::Hours(1));
   breadcrumb_manager_.AddEvent("event2");
-  task_env_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_env_.FastForwardBy(base::Hours(1));
   breadcrumb_manager_.AddEvent("event3");
 
   const std::list<std::string>& events = breadcrumb_manager_.GetEvents(0);
diff --git a/components/breadcrumbs/core/breadcrumb_persistent_storage_manager.cc b/components/breadcrumbs/core/breadcrumb_persistent_storage_manager.cc
index 56b5313..93a22a7 100644
--- a/components/breadcrumbs/core/breadcrumb_persistent_storage_manager.cc
+++ b/components/breadcrumbs/core/breadcrumb_persistent_storage_manager.cc
@@ -29,7 +29,7 @@
 const char kEventSeparator[] = "\n";
 
 // Minimum time between breadcrumb writes to disk.
-constexpr auto kMinDelayBetweenWrites = base::TimeDelta::FromMilliseconds(250);
+constexpr auto kMinDelayBetweenWrites = base::Milliseconds(250);
 
 // Writes |events| to |file_path| at |position|.
 void DoInsertEventsIntoMemoryMappedFile(const base::FilePath& file_path,
diff --git a/components/browser_sync/active_devices_provider_impl_unittest.cc b/components/browser_sync/active_devices_provider_impl_unittest.cc
index 7692c67..5dc8d2c 100644
--- a/components/browser_sync/active_devices_provider_impl_unittest.cc
+++ b/components/browser_sync/active_devices_provider_impl_unittest.cc
@@ -43,8 +43,7 @@
       base::GUID::GenerateRandomV4().AsLowercaseString(), name,
       "chrome_version", "user_agent", sync_pb::SyncEnums::TYPE_UNSET,
       "device_id", "manufacturer_name", "model_name", "full_hardware_class",
-      last_updated_timestamp,
-      base::TimeDelta::FromMinutes(kPulseIntervalMinutes),
+      last_updated_timestamp, base::Minutes(kPulseIntervalMinutes),
       /*send_tab_to_self_receiving_enabled=*/false,
       /*sharing_info=*/absl::nullopt, /*paask_info=*/absl::nullopt,
       fcm_registration_token, interested_data_types);
@@ -79,15 +78,13 @@
 };
 
 TEST_F(ActiveDevicesProviderImplTest, ShouldFilterInactiveDevices) {
-  AddDevice(
-      "local_device_pulse_interval",
-      /*fcm_registration_token=*/"", DefaultInterestedDataTypes(),
-      clock_.Now() - base::TimeDelta::FromMinutes(kPulseIntervalMinutes + 1));
+  AddDevice("local_device_pulse_interval",
+            /*fcm_registration_token=*/"", DefaultInterestedDataTypes(),
+            clock_.Now() - base::Minutes(kPulseIntervalMinutes + 1));
 
   // Very old device.
   AddDevice("device_inactive", /*fcm_registration_token=*/"",
-            DefaultInterestedDataTypes(),
-            clock_.Now() - base::TimeDelta::FromDays(100));
+            DefaultInterestedDataTypes(), clock_.Now() - base::Days(100));
 
   // The local device should be considered active due to margin even though the
   // device is outside the pulse interval. This is not a single client because
@@ -149,11 +146,11 @@
 
 TEST_F(ActiveDevicesProviderImplTest, ShouldReturnActiveFCMRegistrationTokens) {
   AddDevice("device_1", "fcm_token_1", DefaultInterestedDataTypes(),
-            clock_.Now() - base::TimeDelta::FromMinutes(1));
+            clock_.Now() - base::Minutes(1));
   AddDevice("device_2", "fcm_token_2", DefaultInterestedDataTypes(),
-            clock_.Now() - base::TimeDelta::FromMinutes(1));
+            clock_.Now() - base::Minutes(1));
   AddDevice("device_inactive", "fcm_token_3", DefaultInterestedDataTypes(),
-            clock_.Now() - base::TimeDelta::FromDays(100));
+            clock_.Now() - base::Days(100));
 
   ASSERT_EQ(3u, device_list_.size());
 
@@ -180,7 +177,7 @@
     const std::string device_name = "device_" + base::NumberToString(i);
     const std::string fcm_token = "fcm_token_" + device_name;
     AddDevice(device_name, fcm_token, DefaultInterestedDataTypes(),
-              clock_.Now() - base::TimeDelta::FromMinutes(1));
+              clock_.Now() - base::Minutes(1));
   }
 
   EXPECT_THAT(active_devices_provider_
diff --git a/components/browser_sync/browser_sync_switches.cc b/components/browser_sync/browser_sync_switches.cc
index 34430f9..158f5d5c 100644
--- a/components/browser_sync/browser_sync_switches.cc
+++ b/components/browser_sync/browser_sync_switches.cc
@@ -47,6 +47,6 @@
 // pulse interval to mitigate possible latency after DeviceInfo commit.
 const base::FeatureParam<base::TimeDelta> kSyncActiveDeviceMargin{
     &kSyncFilterOutInactiveDevicesForSingleClient, "SyncActiveDeviceMargin",
-    base::TimeDelta::FromMinutes(30)};
+    base::Minutes(30)};
 
 }  // namespace switches
diff --git a/components/browsing_data/core/browsing_data_utils.cc b/components/browsing_data/core/browsing_data_utils.cc
index 3a31703..4fe155b 100644
--- a/components/browsing_data/core/browsing_data_utils.cc
+++ b/components/browsing_data/core/browsing_data_utils.cc
@@ -54,16 +54,16 @@
   base::Time delete_begin_time = base::Time::Now();
   switch (time_period) {
     case TimePeriod::LAST_HOUR:
-      diff = base::TimeDelta::FromHours(1);
+      diff = base::Hours(1);
       break;
     case TimePeriod::LAST_DAY:
-      diff = base::TimeDelta::FromHours(24);
+      diff = base::Hours(24);
       break;
     case TimePeriod::LAST_WEEK:
-      diff = base::TimeDelta::FromHours(7 * 24);
+      diff = base::Hours(7 * 24);
       break;
     case TimePeriod::FOUR_WEEKS:
-      diff = base::TimeDelta::FromHours(4 * 7 * 24);
+      diff = base::Hours(4 * 7 * 24);
       break;
     case TimePeriod::ALL_TIME:
     case TimePeriod::OLDER_THAN_30_DAYS:
@@ -75,7 +75,7 @@
 
 base::Time CalculateEndDeleteTime(TimePeriod time_period) {
   if (time_period == TimePeriod::OLDER_THAN_30_DAYS) {
-    return base::Time::Now() - base::TimeDelta::FromDays(30);
+    return base::Time::Now() - base::Days(30);
   }
   return base::Time::Max();
 }
diff --git a/components/browsing_data/core/counters/browsing_data_counter.cc b/components/browsing_data/core/counters/browsing_data_counter.cc
index 98b1f87d..0bf05b6f 100644
--- a/components/browsing_data/core/counters/browsing_data_counter.cc
+++ b/components/browsing_data/core/counters/browsing_data_counter.cc
@@ -85,10 +85,8 @@
   state_transitions_.push_back(state_);
 
   if (use_delay_) {
-    timer_.Start(
-        FROM_HERE,
-        base::TimeDelta::FromMilliseconds(kDelayUntilShowCalculatingMs), this,
-        &BrowsingDataCounter::TransitionToShowCalculating);
+    timer_.Start(FROM_HERE, base::Milliseconds(kDelayUntilShowCalculatingMs),
+                 this, &BrowsingDataCounter::TransitionToShowCalculating);
   } else {
     state_ = State::READY_TO_REPORT_RESULT;
   }
@@ -150,10 +148,8 @@
   state_transitions_.push_back(state_);
 
   callback_.Run(std::make_unique<Result>(this));
-  timer_.Start(
-      FROM_HERE,
-      base::TimeDelta::FromMilliseconds(kDelayUntilReadyToShowResultMs),
-      this, &BrowsingDataCounter::TransitionToReadyToReportResult);
+  timer_.Start(FROM_HERE, base::Milliseconds(kDelayUntilReadyToShowResultMs),
+               this, &BrowsingDataCounter::TransitionToReadyToReportResult);
 }
 
 void BrowsingDataCounter::TransitionToReadyToReportResult() {
diff --git a/components/browsing_data/core/counters/browsing_data_counter_unittest.cc b/components/browsing_data/core/counters/browsing_data_counter_unittest.cc
index 5f1dfb8e..83f8773 100644
--- a/components/browsing_data/core/counters/browsing_data_counter_unittest.cc
+++ b/components/browsing_data/core/counters/browsing_data_counter_unittest.cc
@@ -50,7 +50,7 @@
                            &MockBrowsingDataCounter::ReportResult),
                        base::Unretained(this),
                        static_cast<BrowsingDataCounter::ResultInt>(0)),
-        base::TimeDelta::FromMilliseconds(delay_ms_));
+        base::Milliseconds(delay_ms_));
   }
 
   void OnInitialized() override {}
diff --git a/components/browsing_data/core/counters/history_counter.cc b/components/browsing_data/core/counters/history_counter.cc
index 3a6b6447..e482967 100644
--- a/components/browsing_data/core/counters/history_counter.cc
+++ b/components/browsing_data/core/counters/history_counter.cc
@@ -80,9 +80,9 @@
 
   web_counting_finished_ = false;
 
-  web_history_timeout_.Start(
-      FROM_HERE, base::TimeDelta::FromSeconds(kWebHistoryTimeoutSeconds), this,
-      &HistoryCounter::OnWebHistoryTimeout);
+  web_history_timeout_.Start(FROM_HERE,
+                             base::Seconds(kWebHistoryTimeoutSeconds), this,
+                             &HistoryCounter::OnWebHistoryTimeout);
 
   history::QueryOptions options;
   options.max_count = 1;
diff --git a/components/captive_portal/content/captive_portal_service_unittest.cc b/components/captive_portal/content/captive_portal_service_unittest.cc
index 9f5c12cf..d97fb5ba 100644
--- a/components/captive_portal/content/captive_portal_service_unittest.cc
+++ b/components/captive_portal/content/captive_portal_service_unittest.cc
@@ -107,7 +107,7 @@
 
     // These values make checking exponential backoff easier.
     set_multiply_factor(2.0);
-    set_maximum_backoff(base::TimeDelta::FromSeconds(1600));
+    set_maximum_backoff(base::Seconds(1600));
 
     // This means backoff starts after the second "failure", which is the third
     // captive portal test in a row that ends up with the same result.  Since
@@ -142,8 +142,7 @@
                int status_code,
                int expected_delay_secs,
                const char* response_headers) {
-    base::TimeDelta expected_delay =
-        base::TimeDelta::FromSeconds(expected_delay_secs);
+    base::TimeDelta expected_delay = base::Seconds(expected_delay_secs);
 
     ASSERT_EQ(CaptivePortalService::STATE_IDLE, service()->state());
     ASSERT_EQ(expected_delay, GetTimeUntilNextRequest());
@@ -174,8 +173,7 @@
 
   // Runs a test when the captive portal service is disabled.
   void RunDisabledTest(int expected_delay_secs) {
-    base::TimeDelta expected_delay =
-        base::TimeDelta::FromSeconds(expected_delay_secs);
+    base::TimeDelta expected_delay = base::Seconds(expected_delay_secs);
 
     ASSERT_EQ(CaptivePortalService::STATE_IDLE, service()->state());
     ASSERT_EQ(expected_delay, GetTimeUntilNextRequest());
@@ -296,9 +294,9 @@
   Initialize(CaptivePortalService::NOT_TESTING);
 
   // This value should have no effect on this test, until the end.
-  set_initial_backoff_portal(base::TimeDelta::FromSeconds(1));
+  set_initial_backoff_portal(base::Seconds(1));
 
-  set_initial_backoff_no_portal(base::TimeDelta::FromSeconds(100));
+  set_initial_backoff_no_portal(base::Seconds(100));
   RunBackoffTest(RESULT_INTERNET_CONNECTED, net::OK, 204);
 
   // Make sure that getting a new result resets the timer.
@@ -313,9 +311,9 @@
   Initialize(CaptivePortalService::NOT_TESTING);
 
   // This value should have no effect on this test.
-  set_initial_backoff_portal(base::TimeDelta::FromDays(1));
+  set_initial_backoff_portal(base::Days(1));
 
-  set_initial_backoff_no_portal(base::TimeDelta::FromSeconds(100));
+  set_initial_backoff_no_portal(base::Seconds(100));
   RunBackoffTest(RESULT_NO_RESPONSE, net::OK, 500);
 
   // Make sure that getting a new result resets the timer.
@@ -329,9 +327,9 @@
   Initialize(CaptivePortalService::NOT_TESTING);
 
   // This value should have no effect on this test, until the end.
-  set_initial_backoff_no_portal(base::TimeDelta::FromSeconds(250));
+  set_initial_backoff_no_portal(base::Seconds(250));
 
-  set_initial_backoff_portal(base::TimeDelta::FromSeconds(100));
+  set_initial_backoff_portal(base::Seconds(100));
   RunBackoffTest(RESULT_BEHIND_CAPTIVE_PORTAL, net::OK, 200);
 
   // Make sure that getting a new result resets the timer.
@@ -346,9 +344,9 @@
   Initialize(CaptivePortalService::NOT_TESTING);
 
   // This value should have no effect on this test.
-  set_initial_backoff_no_portal(base::TimeDelta::FromDays(1));
+  set_initial_backoff_no_portal(base::Days(1));
 
-  set_initial_backoff_portal(base::TimeDelta::FromSeconds(100));
+  set_initial_backoff_portal(base::Seconds(100));
 
   EnableCaptivePortalDetectionPreference(false);
 
@@ -392,7 +390,7 @@
 // works.
 TEST_F(CaptivePortalServiceTest, CaptivePortalPrefDisabledWhilePending) {
   Initialize(CaptivePortalService::NOT_TESTING);
-  set_initial_backoff_no_portal(base::TimeDelta::FromDays(1));
+  set_initial_backoff_no_portal(base::Days(1));
 
   CaptivePortalObserver observer(service());
   service()->DetectCaptivePortal();
@@ -452,7 +450,7 @@
 TEST_F(CaptivePortalServiceTest, CaptivePortalJitter) {
   Initialize(CaptivePortalService::NOT_TESTING);
   set_jitter_factor(0.3);
-  set_initial_backoff_no_portal(base::TimeDelta::FromSeconds(100));
+  set_initial_backoff_no_portal(base::Seconds(100));
   RunTest(RESULT_INTERNET_CONNECTED, net::OK, 204, 0, nullptr);
   RunTest(RESULT_INTERNET_CONNECTED, net::OK, 204, 0, nullptr);
 
@@ -467,7 +465,7 @@
 // Check a Retry-After header that contains a delay in seconds.
 TEST_F(CaptivePortalServiceTest, CaptivePortalRetryAfterSeconds) {
   Initialize(CaptivePortalService::NOT_TESTING);
-  set_initial_backoff_no_portal(base::TimeDelta::FromSeconds(100));
+  set_initial_backoff_no_portal(base::Seconds(100));
   const char* retry_after = "HTTP/1.1 503 OK\nRetry-After: 101\n\n";
 
   // Check that Retry-After headers work both on the first request to return a
@@ -478,26 +476,26 @@
 
   // Make sure that there's no effect on the next captive portal check after
   // login.
-  EXPECT_EQ(base::TimeDelta::FromSeconds(0), GetTimeUntilNextRequest());
+  EXPECT_EQ(base::Seconds(0), GetTimeUntilNextRequest());
 }
 
 // Check that the RecheckPolicy is still respected on 503 responses with
 // Retry-After headers.
 TEST_F(CaptivePortalServiceTest, CaptivePortalRetryAfterSecondsTooShort) {
   Initialize(CaptivePortalService::NOT_TESTING);
-  set_initial_backoff_no_portal(base::TimeDelta::FromSeconds(100));
+  set_initial_backoff_no_portal(base::Seconds(100));
   const char* retry_after = "HTTP/1.1 503 OK\nRetry-After: 99\n\n";
 
   RunTest(RESULT_NO_RESPONSE, net::OK, 503, 0, retry_after);
   // Normally would be no delay on the first check with a new result.
   RunTest(RESULT_NO_RESPONSE, net::OK, 503, 99, retry_after);
-  EXPECT_EQ(base::TimeDelta::FromSeconds(100), GetTimeUntilNextRequest());
+  EXPECT_EQ(base::Seconds(100), GetTimeUntilNextRequest());
 }
 
 // Check a Retry-After header that contains a date.
 TEST_F(CaptivePortalServiceTest, CaptivePortalRetryAfterDate) {
   Initialize(CaptivePortalService::NOT_TESTING);
-  set_initial_backoff_no_portal(base::TimeDelta::FromSeconds(50));
+  set_initial_backoff_no_portal(base::Seconds(50));
 
   // base has a function to get a time in the right format from a string, but
   // not the other way around.
@@ -508,7 +506,7 @@
 
   RunTest(RESULT_NO_RESPONSE, net::OK, 503, 0,
           "HTTP/1.1 503 OK\nRetry-After: Tue, 17 Apr 2012 18:02:51 GMT\n\n");
-  EXPECT_EQ(base::TimeDelta::FromSeconds(51), GetTimeUntilNextRequest());
+  EXPECT_EQ(base::Seconds(51), GetTimeUntilNextRequest());
 }
 
 }  // namespace captive_portal
diff --git a/components/captive_portal/content/captive_portal_tab_reloader.cc b/components/captive_portal/content/captive_portal_tab_reloader.cc
index 1bd28d3..e9a760eb 100644
--- a/components/captive_portal/content/captive_portal_tab_reloader.cc
+++ b/components/captive_portal/content/captive_portal_tab_reloader.cc
@@ -53,8 +53,7 @@
       state_(STATE_NONE),
       provisional_main_frame_load_(false),
       ssl_url_in_redirect_chain_(false),
-      slow_ssl_load_time_(
-          base::TimeDelta::FromSeconds(kDefaultSlowSSLTimeSeconds)),
+      slow_ssl_load_time_(base::Seconds(kDefaultSlowSSLTimeSeconds)),
       open_login_tab_callback_(open_login_tab_callback) {}
 
 CaptivePortalTabReloader::~CaptivePortalTabReloader() {}
diff --git a/components/captive_portal/core/captive_portal_detector_unittest.cc b/components/captive_portal/core/captive_portal_detector_unittest.cc
index 363b7c6..ccb33d8b9 100644
--- a/components/captive_portal/core/captive_portal_detector_unittest.cc
+++ b/components/captive_portal/core/captive_portal_detector_unittest.cc
@@ -159,7 +159,7 @@
   // result and on subsequent requests.
   results.result = captive_portal::RESULT_NO_RESPONSE;
   results.response_code = 503;
-  results.retry_after_delta = base::TimeDelta::FromSeconds(101);
+  results.retry_after_delta = base::Seconds(101);
   RunTest(results, net::OK, 503, retry_after);
 
   results.result = captive_portal::RESULT_INTERNET_CONNECTED;
diff --git a/components/cast_certificate/cast_cert_test_helpers.cc b/components/cast_certificate/cast_cert_test_helpers.cc
index 717d730..715b1c58 100644
--- a/components/cast_certificate/cast_cert_test_helpers.cc
+++ b/components/cast_certificate/cast_cert_test_helpers.cc
@@ -84,7 +84,7 @@
 }
 
 base::Time ConvertUnixTimestampSeconds(uint64_t time) {
-  return base::Time::UnixEpoch() + base::TimeDelta::FromSeconds(time);
+  return base::Time::UnixEpoch() + base::Seconds(time);
 }
 
 std::unique_ptr<net::TrustStoreInMemory> LoadTestCert(
diff --git a/components/cast_certificate/cast_crl.cc b/components/cast_certificate/cast_crl.cc
index 2c8a972..e395685 100644
--- a/components/cast_certificate/cast_crl.cc
+++ b/components/cast_certificate/cast_crl.cc
@@ -99,7 +99,7 @@
                         net::der::GeneralizedTime* generalized_time) {
   base::Time unix_timestamp =
       base::Time::UnixEpoch() +
-      base::TimeDelta::FromSeconds(base::saturated_cast<int64_t>(seconds));
+      base::Seconds(base::saturated_cast<int64_t>(seconds));
   return net::der::EncodeTimeAsGeneralizedTime(unix_timestamp,
                                                generalized_time);
 }
diff --git a/components/cast_channel/cast_auth_util.cc b/components/cast_channel/cast_auth_util.cc
index 33f665e..93563cc 100644
--- a/components/cast_channel/cast_auth_util.cc
+++ b/components/cast_channel/cast_auth_util.cc
@@ -124,8 +124,7 @@
 
   void EnsureNonceTimely() {
     if (base::Time::Now() >
-        (nonce_generation_time_ +
-         base::TimeDelta::FromHours(kNonceExpirationTimeInHours))) {
+        (nonce_generation_time_ + base::Hours(kNonceExpirationTimeInHours))) {
       GenerateNonce();
     }
   }
@@ -331,8 +330,7 @@
   // is repurposed as this signature's expiration.
   base::Time expiry = peer_cert.valid_expiry();
   base::Time lifetime_limit =
-      verification_time +
-      base::TimeDelta::FromDays(kMaxSelfSignedCertLifetimeInDays);
+      verification_time + base::Days(kMaxSelfSignedCertLifetimeInDays);
   if (peer_cert.valid_start().is_null() ||
       peer_cert.valid_start() > verification_time) {
     return AuthResult::CreateWithParseError(
diff --git a/components/cast_channel/cast_auth_util_fuzzer.cc b/components/cast_channel/cast_auth_util_fuzzer.cc
index 0c3b35f..6aa32a77 100644
--- a/components/cast_channel/cast_auth_util_fuzzer.cc
+++ b/components/cast_channel/cast_auth_util_fuzzer.cc
@@ -46,15 +46,15 @@
   switch (c) {
     case TimeBoundCase::VALID:
       // Create bound that include the current date.
-      mtime = base::Time::Now() + base::TimeDelta::FromDays(direction);
+      mtime = base::Time::Now() + base::Days(direction);
       break;
     case TimeBoundCase::INVALID:
       // Create a bound that excludes the current date.
-      mtime = base::Time::Now() + base::TimeDelta::FromDays(-direction);
+      mtime = base::Time::Now() + base::Days(-direction);
       break;
     case TimeBoundCase::OOB:
       // Create a bound so far in the past/future it's not valid.
-      mtime = base::Time::Now() + base::TimeDelta::FromDays(direction * 10000);
+      mtime = base::Time::Now() + base::Days(direction * 10000);
       break;
     case TimeBoundCase::MISSING:
       // Remove any existing bound.
diff --git a/components/cast_channel/cast_auth_util_unittest.cc b/components/cast_channel/cast_auth_util_unittest.cc
index c2482b4..30bb363 100644
--- a/components/cast_channel/cast_auth_util_unittest.cc
+++ b/components/cast_channel/cast_auth_util_unittest.cc
@@ -212,8 +212,7 @@
           base::as_bytes(base::make_span(tls_cert_der[0])));
   std::string peer_cert_der;
   AuthResult result = VerifyTLSCertificate(
-      *tls_cert, &peer_cert_der,
-      tls_cert->valid_start() - base::TimeDelta::FromSeconds(1));
+      *tls_cert, &peer_cert_der, tls_cert->valid_start() - base::Seconds(1));
   EXPECT_FALSE(result.success());
   EXPECT_EQ(AuthResult::ERROR_TLS_CERT_VALID_START_DATE_IN_FUTURE,
             result.error_type);
@@ -229,8 +228,7 @@
           base::as_bytes(base::make_span(tls_cert_der[0])));
   std::string peer_cert_der;
   AuthResult result = VerifyTLSCertificate(
-      *tls_cert, &peer_cert_der,
-      tls_cert->valid_expiry() + base::TimeDelta::FromSeconds(2));
+      *tls_cert, &peer_cert_der, tls_cert->valid_expiry() + base::Seconds(2));
   EXPECT_FALSE(result.success());
   EXPECT_EQ(AuthResult::ERROR_TLS_CERT_EXPIRED, result.error_type);
 }
diff --git a/components/cast_channel/cast_message_handler.cc b/components/cast_channel/cast_message_handler.cc
index c4b0e4e..16e8262 100644
--- a/components/cast_channel/cast_message_handler.cc
+++ b/components/cast_channel/cast_message_handler.cc
@@ -21,7 +21,7 @@
 namespace {
 
 // The max launch timeout amount for session launch requests.
-constexpr base::TimeDelta kLaunchMaxTimeout = base::TimeDelta::FromMinutes(2);
+constexpr base::TimeDelta kLaunchMaxTimeout = base::Minutes(2);
 
 // The max size of Cast Message is 64KB.
 constexpr int kMaxCastMessagePayload = 64 * 1024;
diff --git a/components/cast_channel/cast_message_handler.h b/components/cast_channel/cast_message_handler.h
index 092c3b8d..f4c2d5e0 100644
--- a/components/cast_channel/cast_message_handler.h
+++ b/components/cast_channel/cast_message_handler.h
@@ -114,7 +114,7 @@
 };
 
 // Default timeout amount for requests waiting for a response.
-constexpr base::TimeDelta kRequestTimeout = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kRequestTimeout = base::Seconds(5);
 
 // Handles messages that are sent between this browser instance and the Cast
 // devices connected to it. This class also manages virtual connections (VCs)
diff --git a/components/cast_channel/cast_message_handler_unittest.cc b/components/cast_channel/cast_message_handler_unittest.cc
index c6eb55e..b5f3027 100644
--- a/components/cast_channel/cast_message_handler_unittest.cc
+++ b/components/cast_channel/cast_message_handler_unittest.cc
@@ -320,7 +320,7 @@
                      base::Unretained(this)));
   EXPECT_CALL(*this, DoOnAppAvailability("ABCDEFAB",
                                          GetAppAvailabilityResult::kUnknown));
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment_.FastForwardBy(base::Seconds(5));
 }
 
 TEST_F(CastMessageHandlerTest, AppAvailabilitySentOnlyOnceWhilePending) {
@@ -395,7 +395,7 @@
   const absl::optional<base::Value> json = base::JSONReader::Read(kAppParams);
 
   handler_.LaunchSession(
-      channel_id_, kAppId1, base::TimeDelta::FromSeconds(30), {"WEB"}, json,
+      channel_id_, kAppId1, base::Seconds(30), {"WEB"}, json,
       base::BindOnce(&CastMessageHandlerTest::ExpectSessionLaunchResult,
                      base::Unretained(this),
                      LaunchSessionResponse::Result::kOk));
@@ -436,13 +436,13 @@
   ExpectEnsureConnectionThen(CastMessageType::kLaunch);
 
   handler_.LaunchSession(
-      channel_id_, kAppId1, base::TimeDelta::FromSeconds(30), {"WEB"},
+      channel_id_, kAppId1, base::Seconds(30), {"WEB"},
       /* appParams */ absl::nullopt,
       base::BindOnce(&CastMessageHandlerTest::ExpectSessionLaunchResult,
                      base::Unretained(this),
                      LaunchSessionResponse::Result::kTimedOut));
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(30));
+  task_environment_.FastForwardBy(base::Seconds(30));
   EXPECT_EQ(1, session_launch_response_count_);
 }
 
@@ -451,7 +451,7 @@
   base::Value json(base::Value::Type::DICTIONARY);
   json.SetKey("key", base::Value(invalid_URL));
   handler_.LaunchSession(
-      channel_id_, kAppId1, base::TimeDelta::FromSeconds(30), {"WEB"},
+      channel_id_, kAppId1, base::Seconds(30), {"WEB"},
       absl::make_optional<base::Value>(std::move(json)),
       base::BindOnce(&CastMessageHandlerTest::ExpectSessionLaunchResult,
                      base::Unretained(this),
diff --git a/components/cast_channel/cast_socket_service_unittest.cc b/components/cast_channel/cast_socket_service_unittest.cc
index 1e6458f..ecf1b4d 100644
--- a/components/cast_channel/cast_socket_service_unittest.cc
+++ b/components/cast_channel/cast_socket_service_unittest.cc
@@ -91,8 +91,7 @@
   EXPECT_CALL(*mock_socket, AddObserver(_));
 
   cast_socket_service_->AddObserver(&mock_observer_);
-  CastSocketOpenParams open_param(ip_endpoint,
-                                  base::TimeDelta::FromSeconds(20));
+  CastSocketOpenParams open_param(ip_endpoint, base::Seconds(20));
   cast_socket_service_->OpenSocket(CastSocketService::NetworkContextGetter(),
                                    open_param, mock_on_open_callback_.Get());
 }
diff --git a/components/cast_channel/cast_socket_unittest.cc b/components/cast_channel/cast_socket_unittest.cc
index 079ec6d..872c30f 100644
--- a/components/cast_channel/cast_socket_unittest.cc
+++ b/components/cast_channel/cast_socket_unittest.cc
@@ -387,9 +387,8 @@
         url_request_context_(true),
         logger_(new Logger()),
         observer_(new MockCastSocketObserver()),
-        socket_open_params_(
-            CreateIPEndPointForTest(),
-            base::TimeDelta::FromMilliseconds(kDistantTimeoutMillis)),
+        socket_open_params_(CreateIPEndPointForTest(),
+                            base::Milliseconds(kDistantTimeoutMillis)),
         client_socket_factory_(socket_open_params_.ip_endpoint) {}
 
   CastSocketTestBase(const CastSocketTestBase&) = delete;
diff --git a/components/cast_channel/keep_alive_delegate_unittest.cc b/components/cast_channel/keep_alive_delegate_unittest.cc
index a89d964..9cb531a6 100644
--- a/components/cast_channel/keep_alive_delegate_unittest.cc
+++ b/components/cast_channel/keep_alive_delegate_unittest.cc
@@ -88,8 +88,8 @@
     logger_ = new Logger();
     keep_alive_ = std::make_unique<KeepAliveDelegate>(
         &socket_, logger_, base::WrapUnique(inner_delegate_),
-        base::TimeDelta::FromMilliseconds(kTestPingTimeoutMillis),
-        base::TimeDelta::FromMilliseconds(kTestLivenessTimeoutMillis));
+        base::Milliseconds(kTestPingTimeoutMillis),
+        base::Milliseconds(kTestLivenessTimeoutMillis));
     liveness_timer_ = new MockTimerWithMonitoredReset;
     ping_timer_ = new MockTimerWithMonitoredReset;
     EXPECT_CALL(*liveness_timer_, StopTriggered()).Times(0);
@@ -253,17 +253,17 @@
       .WillOnce(PostCompletionCallbackTask<1>(net::OK));
   // Forward 1s, at time 1, fire ping timer.
   mock_time_task_runner->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(kTestPingTimeoutMillis));
+      base::Milliseconds(kTestPingTimeoutMillis));
 
   // Forward 9s, at Time 10, do not fire liveness timer.
   EXPECT_CALL(*inner_delegate_, OnError(_)).Times(0);
-  mock_time_task_runner->FastForwardBy(base::TimeDelta::FromMilliseconds(
-      kTestLivenessTimeoutMillis - kTestPingTimeoutMillis));
+  mock_time_task_runner->FastForwardBy(
+      base::Milliseconds(kTestLivenessTimeoutMillis - kTestPingTimeoutMillis));
 
   // Forward 1s, at time 11s, fire liveness timer.
   EXPECT_CALL(*inner_delegate_, OnError(_));
   mock_time_task_runner->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(kTestPingTimeoutMillis));
+      base::Milliseconds(kTestPingTimeoutMillis));
 }
 
 }  // namespace
diff --git a/components/cast_channel/libcast_socket_service_unittest.cc b/components/cast_channel/libcast_socket_service_unittest.cc
index 5f690e7..963253c 100644
--- a/components/cast_channel/libcast_socket_service_unittest.cc
+++ b/components/cast_channel/libcast_socket_service_unittest.cc
@@ -32,8 +32,7 @@
   CastSocket* OpenSocket(std::unique_ptr<LibcastSocket> cast_socket,
                          const net::IPEndPoint& endpoint) {
     socket_service_.SetLibcastSocketForTest(std::move(cast_socket));
-    CastSocketOpenParams open_params(endpoint,
-                                     base::TimeDelta::FromSeconds(20));
+    CastSocketOpenParams open_params(endpoint, base::Seconds(20));
     CastSocket* socket = nullptr;
     base::RunLoop run_loop;
     socket_service_.OpenSocket(
diff --git a/components/cast_channel/openscreen_cast_auth_util_fuzzer.cc b/components/cast_channel/openscreen_cast_auth_util_fuzzer.cc
index e1c940f5..b874487c 100644
--- a/components/cast_channel/openscreen_cast_auth_util_fuzzer.cc
+++ b/components/cast_channel/openscreen_cast_auth_util_fuzzer.cc
@@ -44,15 +44,15 @@
   switch (c) {
     case TimeBoundCase::VALID:
       // Create bound that include the current date.
-      t = base::Time::Now() + base::TimeDelta::FromDays(direction);
+      t = base::Time::Now() + base::Days(direction);
       break;
     case TimeBoundCase::INVALID:
       // Create a bound that excludes the current date.
-      t = base::Time::Now() + base::TimeDelta::FromDays(-direction);
+      t = base::Time::Now() + base::Days(-direction);
       break;
     case TimeBoundCase::OOB:
       // Create a bound so far in the past/future it's not valid.
-      t = base::Time::Now() + base::TimeDelta::FromDays(direction * 10000);
+      t = base::Time::Now() + base::Days(direction * 10000);
       break;
     case TimeBoundCase::MISSING:
       // Remove any existing bound.
diff --git a/components/cast_streaming/browser/cast_streaming_session.cc b/components/cast_streaming/browser/cast_streaming_session.cc
index b63cc0f..b20573a 100644
--- a/components/cast_streaming/browser/cast_streaming_session.cc
+++ b/components/cast_streaming/browser/cast_streaming_session.cc
@@ -15,7 +15,7 @@
 namespace {
 
 // Timeout to stop the Session when no data is received.
-constexpr base::TimeDelta kNoDataTimeout = base::TimeDelta::FromSeconds(15);
+constexpr base::TimeDelta kNoDataTimeout = base::Seconds(15);
 
 bool CreateDataPipeForStreamType(media::DemuxerStream::Type type,
                                  mojo::ScopedDataPipeProducerHandle* producer,
@@ -30,7 +30,7 @@
 }
 
 // Timeout to end the Session when no offer message is sent.
-constexpr base::TimeDelta kInitTimeout = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kInitTimeout = base::Seconds(5);
 
 }  // namespace
 
@@ -124,8 +124,7 @@
   // overlapping video frames but this is fine since the media pipeline mostly
   // considers the playout time when deciding which frame to present or play
   video_consumer_ = std::make_unique<StreamConsumer>(
-      video_receiver, base::TimeDelta::FromMinutes(10),
-      std::move(data_pipe_producer),
+      video_receiver, base::Minutes(10), std::move(data_pipe_producer),
       base::BindRepeating(&CastStreamingSession::Client::OnVideoBufferReceived,
                           base::Unretained(client_)),
       base::BindRepeating(&base::OneShotTimer::Reset,
diff --git a/components/cast_streaming/browser/cast_streaming_session_unittest.cc b/components/cast_streaming/browser/cast_streaming_session_unittest.cc
index 159b20a..30f0aef8 100644
--- a/components/cast_streaming/browser/cast_streaming_session_unittest.cc
+++ b/components/cast_streaming/browser/cast_streaming_session_unittest.cc
@@ -119,12 +119,12 @@
   const uint8_t kAudioData[] = {42};
   scoped_refptr<media::DataBuffer> audio_buffer =
       media::DataBuffer::CopyFrom(kAudioData, sizeof(kAudioData));
-  audio_buffer->set_timestamp(base::TimeDelta::FromSeconds(0));
+  audio_buffer->set_timestamp(base::Seconds(0));
 
   const uint8_t kVideoData[] = {42, 84};
   scoped_refptr<media::DataBuffer> video_buffer =
       media::DataBuffer::CopyFrom(kVideoData, sizeof(kVideoData));
-  video_buffer->set_timestamp(base::TimeDelta::FromSeconds(0));
+  video_buffer->set_timestamp(base::Seconds(0));
 
   sender_.SendAudioBuffer(audio_buffer);
   sender_.SendVideoBuffer(video_buffer, true);
diff --git a/components/cast_streaming/browser/stream_consumer.cc b/components/cast_streaming/browser/stream_consumer.cc
index 891ffae..e6862ee 100644
--- a/components/cast_streaming/browser/stream_consumer.cc
+++ b/components/cast_streaming/browser/stream_consumer.cc
@@ -141,11 +141,11 @@
       encoded_frame.dependency ==
       openscreen::cast::EncodedFrame::Dependency::KEY_FRAME;
 
-  base::TimeDelta playout_time = base::TimeDelta::FromMicroseconds(
-      encoded_frame.rtp_timestamp
-          .ToTimeSinceOrigin<std::chrono::microseconds>(
-              receiver_->rtp_timebase())
-          .count());
+  base::TimeDelta playout_time =
+      base::Microseconds(encoded_frame.rtp_timestamp
+                             .ToTimeSinceOrigin<std::chrono::microseconds>(
+                                 receiver_->rtp_timebase())
+                             .count());
 
   // Some senders do not send an initial playout time of 0. To work around this,
   // a playout offset is added here.
diff --git a/components/certificate_transparency/chrome_ct_policy_enforcer.cc b/components/certificate_transparency/chrome_ct_policy_enforcer.cc
index 421a7ea..0ee7ec8c 100644
--- a/components/certificate_transparency/chrome_ct_policy_enforcer.cc
+++ b/components/certificate_transparency/chrome_ct_policy_enforcer.cc
@@ -292,7 +292,7 @@
   // The date when diverse SCTs requirement is effective from.
   // 2015-07-01 00:00:00 UTC.
   const base::Time kDiverseSCTRequirementStartDate =
-      base::Time::UnixEpoch() + base::TimeDelta::FromSeconds(1435708800);
+      base::Time::UnixEpoch() + base::Seconds(1435708800);
   if (issuance_date >= kDiverseSCTRequirementStartDate &&
       !(has_embedded_google_sct && has_embedded_nongoogle_sct)) {
     // Note: This also covers the case for non-embedded SCTs, as it's only
diff --git a/components/certificate_transparency/chrome_ct_policy_enforcer_unittest.cc b/components/certificate_transparency/chrome_ct_policy_enforcer_unittest.cc
index 406fe596..a8f783c 100644
--- a/components/certificate_transparency/chrome_ct_policy_enforcer_unittest.cc
+++ b/components/certificate_transparency/chrome_ct_policy_enforcer_unittest.cc
@@ -196,7 +196,7 @@
             policy_enforcer_->CheckCompliance(chain_.get(), scts,
                                               NetLogWithSource()));
 
-  clock_.Advance(base::TimeDelta::FromDays(71));
+  clock_.Advance(base::Days(71));
 
   EXPECT_EQ(CTPolicyCompliance::CT_POLICY_BUILD_NOT_TIMELY,
             policy_enforcer_->CheckCompliance(chain_.get(), scts,
@@ -511,9 +511,9 @@
   // Clear the log list and set the last updated time to more than 10 weeks ago.
   std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
   std::vector<std::string> operated_by_google_logs;
-  chrome_policy_enforcer->UpdateCTLogList(
-      base::Time::Now() - base::TimeDelta::FromDays(71), disqualified_logs,
-      operated_by_google_logs);
+  chrome_policy_enforcer->UpdateCTLogList(base::Time::Now() - base::Days(71),
+                                          disqualified_logs,
+                                          operated_by_google_logs);
 
   // The check should return build not timely even though the Google Aviator log
   // is no longer in the list, since the last update time is greater than 10
diff --git a/components/certificate_transparency/chrome_require_ct_delegate.cc b/components/certificate_transparency/chrome_require_ct_delegate.cc
index 2e0f6cc..7117cf5 100644
--- a/components/certificate_transparency/chrome_require_ct_delegate.cc
+++ b/components/certificate_transparency/chrome_require_ct_delegate.cc
@@ -184,7 +184,7 @@
   // Compute >= 2018-05-01, rather than deal with possible fractional
   // seconds.
   const base::Time kMay_1_2018 =
-      base::Time::UnixEpoch() + base::TimeDelta::FromSeconds(1525132800);
+      base::Time::UnixEpoch() + base::Seconds(1525132800);
   if (chain->valid_start() >= kMay_1_2018)
     return CTRequirementLevel::REQUIRED;
 
diff --git a/components/certificate_transparency/tools/make_ct_known_logs_list.py b/components/certificate_transparency/tools/make_ct_known_logs_list.py
index 563e645..56ca69c 100755
--- a/components/certificate_transparency/tools/make_ct_known_logs_list.py
+++ b/components/certificate_transparency/tools/make_ct_known_logs_list.py
@@ -130,7 +130,7 @@
   s += ",\n"
   s += _to_loginfo_struct(log)
   s += ",\n"
-  s += '     base::TimeDelta::FromSeconds(%d)' % (
+  s += '     base::Seconds(%d)' % (
       _timestamp_to_timedelta_since_unixepoch(
           log["state"]["retired"]["timestamp"]))
   s += '}'
@@ -162,7 +162,7 @@
   s = ""
   s += "// The time at which this log list was last updated.\n";
   s += "const base::TimeDelta kLogListTimestamp = "
-  s += 'base::TimeDelta::FromSeconds(%d);\n\n' % (
+  s += 'base::Seconds(%d);\n\n' % (
       _timestamp_to_timedelta_since_unixepoch(timestamp))
   return s
 
diff --git a/components/certificate_transparency/tools/make_ct_known_logs_list_unittest.py b/components/certificate_transparency/tools/make_ct_known_logs_list_unittest.py
index 98b43d1..f201ce26 100755
--- a/components/certificate_transparency/tools/make_ct_known_logs_list_unittest.py
+++ b/components/certificate_transparency/tools/make_ct_known_logs_list_unittest.py
@@ -188,7 +188,7 @@
         '\\x7a\\x9c\\xb4\\x10\\xff\\x61\\xf2\\x00\\x15\\xad",\n    {"\\x61'
         '\\x62\\x63",\n     3,\n     "Test Description"'
         '},\n     '
-        "base::TimeDelta::FromSeconds(1551083574)}")
+        "base::Seconds(1551083574)}")
 
     self.assertEqual(
         make_ct_known_logs_list._to_disqualified_loginfo_struct(log),
@@ -248,7 +248,7 @@
     expected_generated_timestamp = (
         '// The time at which this log list was last updated.\n'
         'const base::TimeDelta kLogListTimestamp = '
-        'base::TimeDelta::FromSeconds(1628467200);\n\n')
+        'base::Seconds(1628467200);\n\n')
 
     self.assertEqual(
         make_ct_known_logs_list._generate_log_list_timestamp(iso_timestamp),
diff --git a/components/client_hints/browser/client_hints.cc b/components/client_hints/browser/client_hints.cc
index 3d014ac..53e4e43 100644
--- a/components/client_hints/browser/client_hints.cc
+++ b/components/client_hints/browser/client_hints.cc
@@ -91,7 +91,7 @@
     return;
   }
 
-  if (expiration_duration <= base::TimeDelta::FromSeconds(0))
+  if (expiration_duration <= base::Seconds(0))
     return;
 
   base::Value::ListStorage expiration_times_list;
@@ -119,15 +119,13 @@
 
   UMA_HISTOGRAM_EXACT_LINEAR("ClientHints.UpdateEventCount", 1, 2);
   UMA_HISTOGRAM_CUSTOM_TIMES(
-      "ClientHints.PersistDuration", expiration_duration,
-      base::TimeDelta::FromSeconds(1),
+      "ClientHints.PersistDuration", expiration_duration, base::Seconds(1),
       // TODO(crbug.com/949034): Rename and fix this histogram to have some
       // intended max value. We throw away the 32 most-significant bits of the
       // 64-bit time delta in milliseconds. Before it happened silently in
       // histogram.cc, now it is explicit here. The previous value of 365 days
       // effectively turns into roughly 17 days when getting cast to int.
-      base::TimeDelta::FromMilliseconds(
-          static_cast<int>(base::TimeDelta::FromDays(365).InMilliseconds())),
+      base::Milliseconds(static_cast<int>(base::Days(365).InMilliseconds())),
       100);
 
   UMA_HISTOGRAM_COUNTS_100("ClientHints.UpdateSize", client_hints.size());
diff --git a/components/component_updater/android/background_task_update_scheduler.cc b/components/component_updater/android/background_task_update_scheduler.cc
index b315536..6acd5c01 100644
--- a/components/component_updater/android/background_task_update_scheduler.cc
+++ b/components/component_updater/android/background_task_update_scheduler.cc
@@ -14,7 +14,7 @@
 
 // Delay of running component updates after the background task fires to give
 // enough time for async component registration.
-const base::TimeDelta kOnStartTaskDelay = base::TimeDelta::FromSeconds(2);
+const base::TimeDelta kOnStartTaskDelay = base::Seconds(2);
 
 }  // namespace
 
diff --git a/components/component_updater/component_updater_service.cc b/components/component_updater/component_updater_service.cc
index a73b5c8..686f787 100644
--- a/components/component_updater/component_updater_service.cc
+++ b/components/component_updater/component_updater_service.cc
@@ -98,8 +98,8 @@
           << config_->NextCheckDelay() << " seconds. ";
 
   scheduler_->Schedule(
-      base::TimeDelta::FromSecondsD(config_->InitialDelay()),
-      base::TimeDelta::FromSeconds(config_->NextCheckDelay()),
+      base::Seconds(config_->InitialDelay()),
+      base::Seconds(config_->NextCheckDelay()),
       base::BindRepeating(
           base::IgnoreResult(&CrxUpdateService::CheckForUpdates),
           base::Unretained(this)),
@@ -268,7 +268,7 @@
   if (component_state && !component_state->last_check.is_null()) {
     base::TimeDelta delta =
         base::TimeTicks::Now() - component_state->last_check;
-    if (delta < base::TimeDelta::FromSeconds(config_->OnDemandDelay()))
+    if (delta < base::Seconds(config_->OnDemandDelay()))
       return false;
   }
 
diff --git a/components/component_updater/timer_unittest.cc b/components/component_updater/timer_unittest.cc
index 2d75fbeb..f5b5d70 100644
--- a/components/component_updater/timer_unittest.cc
+++ b/components/component_updater/timer_unittest.cc
@@ -55,7 +55,7 @@
   EXPECT_EQ(0, timer_client_fake.count());
 
   Timer timer;
-  const base::TimeDelta delay(base::TimeDelta::FromMilliseconds(1));
+  const base::TimeDelta delay(base::Milliseconds(1));
   timer.Start(delay, delay,
               base::BindRepeating(&TimerClientMock::OnTimerEvent,
                                   base::Unretained(&timer_client_fake)));
diff --git a/components/content_capture/browser/content_capture_receiver.cc b/components/content_capture/browser/content_capture_receiver.cc
index b9c6af18..fc5d965 100644
--- a/components/content_capture/browser/content_capture_receiver.cc
+++ b/components/content_capture/browser/content_capture_receiver.cc
@@ -205,7 +205,7 @@
 
   title_update_task_runner_->PostDelayedTask(
       FROM_HERE, notify_title_update_callback_->callback(),
-      base::TimeDelta::FromSeconds(exponential_delay_));
+      base::Seconds(exponential_delay_));
 
   exponential_delay_ =
       exponential_delay_ < 256 ? exponential_delay_ * 2 : exponential_delay_;
diff --git a/components/content_capture/browser/content_capture_receiver_test.cc b/components/content_capture/browser/content_capture_receiver_test.cc
index 4411a108..546d24e 100644
--- a/components/content_capture/browser/content_capture_receiver_test.cc
+++ b/components/content_capture/browser/content_capture_receiver_test.cc
@@ -563,8 +563,7 @@
   EXPECT_TRUE(task_runner->HasPendingTask());
   EXPECT_EQ(2u, receiver->exponential_delay_);
   // Run the pending task.
-  task_runner->FastForwardBy(
-      base::TimeDelta::FromSeconds(receiver->exponential_delay_ / 2));
+  task_runner->FastForwardBy(base::Seconds(receiver->exponential_delay_ / 2));
   task_runner->RunUntilIdle();
   // Verify the title is updated and the task is reset.
   EXPECT_EQ(title2, content_capture_consumer_helper()->updated_title());
diff --git a/components/content_capture/renderer/content_capture_sender.cc b/components/content_capture/renderer/content_capture_sender.cc
index 5d51899..e884822e 100644
--- a/components/content_capture/renderer/content_capture_sender.cc
+++ b/components/content_capture/renderer/content_capture_sender.cc
@@ -34,8 +34,7 @@
 }
 
 base::TimeDelta ContentCaptureSender::GetTaskInitialDelay() const {
-  return base::TimeDelta::FromMilliseconds(
-      features::TaskInitialDelayInMilliseconds());
+  return base::Milliseconds(features::TaskInitialDelayInMilliseconds());
 }
 
 void ContentCaptureSender::DidCaptureContent(
@@ -100,8 +99,7 @@
   }
   UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
       "ContentCapture.GetBoundingBox", base::TimeTicks::Now() - start,
-      base::TimeDelta::FromMicroseconds(1),
-      base::TimeDelta::FromMilliseconds(10), 50);
+      base::Microseconds(1), base::Milliseconds(10), 50);
 }
 
 const mojo::AssociatedRemote<mojom::ContentCaptureReceiver>&
diff --git a/components/content_settings/core/browser/content_settings_pref.cc b/components/content_settings/core/browser/content_settings_pref.cc
index b99d858c..8a31604 100644
--- a/components/content_settings/core/browser/content_settings_pref.cc
+++ b/components/content_settings/core/browser/content_settings_pref.cc
@@ -65,8 +65,8 @@
   std::string timestamp_str = GetString(*dictionary, kLastModifiedPath);
   int64_t timestamp = 0;
   base::StringToInt64(timestamp_str, &timestamp);
-  base::Time last_modified = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(timestamp));
+  base::Time last_modified =
+      base::Time::FromDeltaSinceWindowsEpoch(base::Microseconds(timestamp));
   return last_modified;
 }
 
@@ -78,7 +78,7 @@
   int64_t expiration_timestamp = 0;
   base::StringToInt64(expiration_timestamp_str, &expiration_timestamp);
   base::Time expiration = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(expiration_timestamp));
+      base::Microseconds(expiration_timestamp));
   return expiration;
 }
 
diff --git a/components/content_settings/core/browser/content_settings_rule_unittest.cc b/components/content_settings/core/browser/content_settings_rule_unittest.cc
index 5b6e567..147fa1c57 100644
--- a/components/content_settings/core/browser/content_settings_rule_unittest.cc
+++ b/components/content_settings/core/browser/content_settings_rule_unittest.cc
@@ -37,9 +37,8 @@
 }  // namespace
 
 TEST(RuleTest, ConcatenationIterator) {
-  base::Time expiredTime =
-      base::Time::Now() - base::TimeDelta::FromSeconds(101);
-  base::Time validTime = base::Time::Now() - base::TimeDelta::FromSeconds(101);
+  base::Time expiredTime = base::Time::Now() - base::Seconds(101);
+  base::Time validTime = base::Time::Now() - base::Seconds(101);
 
   std::list<Rule> rules1;
   rules1.push_back(Rule(ContentSettingsPattern::FromString("a"),
diff --git a/components/content_settings/core/browser/cookie_settings_unittest.cc b/components/content_settings/core/browser/cookie_settings_unittest.cc
index 8efb603..354038d 100644
--- a/components/content_settings/core/browser/cookie_settings_unittest.cc
+++ b/components/content_settings/core/browser/cookie_settings_unittest.cc
@@ -642,8 +642,7 @@
       ContentSettingsPattern::FromURLNoWildcard(url),
       ContentSettingsPattern::FromURLNoWildcard(top_level_url),
       ContentSettingsType::STORAGE_ACCESS, CONTENT_SETTING_ALLOW,
-      {content_settings::GetConstraintExpiration(
-           base::TimeDelta::FromSeconds(100)),
+      {content_settings::GetConstraintExpiration(base::Seconds(100)),
        SessionModel::UserSession});
 
   // When requesting our setting for the url/top-level combination our
@@ -654,7 +653,7 @@
 
   // If we fastforward past the expiration of our grant the result should be
   // CONTENT_SETTING_BLOCK now.
-  FastForwardTime(base::TimeDelta::FromSeconds(101));
+  FastForwardTime(base::Seconds(101));
   EXPECT_EQ(cookie_settings_->GetCookieSetting(url, top_level_url, nullptr),
             CONTENT_SETTING_BLOCK);
 }
diff --git a/components/crash/content/browser/crash_handler_host_linux.cc b/components/crash/content/browser/crash_handler_host_linux.cc
index d433582..873b4cc 100644
--- a/components/crash/content/browser/crash_handler_host_linux.cc
+++ b/components/crash/content/browser/crash_handler_host_linux.cc
@@ -350,7 +350,7 @@
                        std::move(asan_report),
 #endif
                        uptime, oom_size, signal_fd, attempt),
-        base::TimeDelta::FromMilliseconds(kRetryIntervalTranslatingTidInMs));
+        base::Milliseconds(kRetryIntervalTranslatingTidInMs));
     return;
   }
 
diff --git a/components/cronet/android/cronet_url_request_context_adapter.cc b/components/cronet/android/cronet_url_request_context_adapter.cc
index 2d057c0..efbaf22 100644
--- a/components/cronet/android/cronet_url_request_context_adapter.cc
+++ b/components/cronet/android/cronet_url_request_context_adapter.cc
@@ -304,8 +304,7 @@
       new URLRequestContextConfig::Pkp(
           base::android::ConvertJavaStringToUTF8(env, jhost),
           jinclude_subdomains,
-          base::Time::UnixEpoch() +
-              base::TimeDelta::FromMilliseconds(jexpiration_time)));
+          base::Time::UnixEpoch() + base::Milliseconds(jexpiration_time)));
   for (auto bytes_array : jhashes.ReadElements<jbyteArray>()) {
     static_assert(std::is_pod<net::SHA256HashValue>::value,
                   "net::SHA256HashValue is not POD");
diff --git a/components/cronet/android/test/experimental_options_test.cc b/components/cronet/android/test/experimental_options_test.cc
index 3a1748d..ddad39d 100644
--- a/components/cronet/android/test/experimental_options_test.cc
+++ b/components/cronet/android/test/experimental_options_test.cc
@@ -48,10 +48,8 @@
       net::AddressList::CreateFromIPAddress(address, 0);
   net::HostCache::Entry entry(net::OK, address_list,
                               net::HostCache::Entry::SOURCE_UNKNOWN);
-  cache->Set(key1, entry, base::TimeTicks::Now(),
-             base::TimeDelta::FromSeconds(1));
-  cache->Set(key2, entry, base::TimeTicks::Now(),
-             base::TimeDelta::FromSeconds(1));
+  cache->Set(key1, entry, base::TimeTicks::Now(), base::Seconds(1));
+  cache->Set(key2, entry, base::TimeTicks::Now(), base::Seconds(1));
 }
 }  // namespace
 
diff --git a/components/cronet/cronet_prefs_manager.cc b/components/cronet/cronet_prefs_manager.cc
index abb260d..87d7253 100644
--- a/components/cronet/cronet_prefs_manager.cc
+++ b/components/cronet/cronet_prefs_manager.cc
@@ -175,7 +175,7 @@
         base::BindOnce(
             &NetworkQualitiesPrefDelegateImpl::SchedulePendingLossyWrites,
             weak_ptr_factory_.GetWeakPtr()),
-        base::TimeDelta::FromSeconds(kUpdatePrefsDelaySeconds));
+        base::Seconds(kUpdatePrefsDelaySeconds));
   }
   std::unique_ptr<base::DictionaryValue> GetDictionaryValue() override {
     DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
@@ -286,8 +286,7 @@
   host_cache_persistence_manager_ =
       std::make_unique<HostCachePersistenceManager>(
           host_cache, pref_service_.get(), kHostCachePref,
-          base::TimeDelta::FromMilliseconds(host_cache_persistence_delay_ms),
-          net_log);
+          base::Milliseconds(host_cache_persistence_delay_ms), net_log);
 }
 
 void CronetPrefsManager::PrepareForShutdown() {
diff --git a/components/cronet/host_cache_persistence_manager_unittest.cc b/components/cronet/host_cache_persistence_manager_unittest.cc
index c5e1d0c..5b8f4ba8 100644
--- a/components/cronet/host_cache_persistence_manager_unittest.cc
+++ b/components/cronet/host_cache_persistence_manager_unittest.cc
@@ -41,8 +41,7 @@
                             net::NetworkIsolationKey());
     net::HostCache::Entry entry(net::OK, net::AddressList(),
                                 net::HostCache::Entry::SOURCE_UNKNOWN);
-    cache_->Set(key, entry, base::TimeTicks::Now(),
-                base::TimeDelta::FromSeconds(1));
+    cache_->Set(key, entry, base::TimeTicks::Now(), base::Seconds(1));
   }
 
   // Reads the current value of the pref from the TestingPrefServiceSimple
@@ -77,12 +76,9 @@
     net::HostCache::Entry entry(net::OK, net::AddressList(),
                                 net::HostCache::Entry::SOURCE_UNKNOWN);
 
-    temp_cache.Set(key1, entry, base::TimeTicks::Now(),
-                   base::TimeDelta::FromSeconds(1));
-    temp_cache.Set(key2, entry, base::TimeTicks::Now(),
-                   base::TimeDelta::FromSeconds(1));
-    temp_cache.Set(key3, entry, base::TimeTicks::Now(),
-                   base::TimeDelta::FromSeconds(1));
+    temp_cache.Set(key1, entry, base::TimeTicks::Now(), base::Seconds(1));
+    temp_cache.Set(key2, entry, base::TimeTicks::Now(), base::Seconds(1));
+    temp_cache.Set(key3, entry, base::TimeTicks::Now(), base::Seconds(1));
 
     base::ListValue value;
     temp_cache.GetAsListValue(&value, false /* include_stale */,
@@ -107,65 +103,65 @@
 // Make a single change to the HostCache and make sure that it's written
 // when the timer expires. Then repeat.
 TEST_F(HostCachePersistenceManagerTest, SeparateWrites) {
-  MakePersistenceManager(base::TimeDelta::FromSeconds(60));
+  MakePersistenceManager(base::Seconds(60));
 
   WriteToCache("1.test");
-  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(59));
+  task_runner_->FastForwardBy(base::Seconds(59));
   CheckPref(0);
-  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_runner_->FastForwardBy(base::Seconds(1));
   CheckPref(1);
 
   WriteToCache("2.test");
-  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(59));
+  task_runner_->FastForwardBy(base::Seconds(59));
   CheckPref(1);
-  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_runner_->FastForwardBy(base::Seconds(1));
   CheckPref(2);
 }
 
 // Write to the HostCache multiple times and make sure that all changes
 // are written to prefs at the appropriate times.
 TEST_F(HostCachePersistenceManagerTest, MultipleWrites) {
-  MakePersistenceManager(base::TimeDelta::FromSeconds(300));
+  MakePersistenceManager(base::Seconds(300));
 
   WriteToCache("1.test");
   WriteToCache("2.test");
-  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(299));
+  task_runner_->FastForwardBy(base::Seconds(299));
   CheckPref(0);
-  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_runner_->FastForwardBy(base::Seconds(1));
   CheckPref(2);
 
   WriteToCache("3.test");
   WriteToCache("4.test");
-  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(299));
+  task_runner_->FastForwardBy(base::Seconds(299));
   CheckPref(2);
-  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_runner_->FastForwardBy(base::Seconds(1));
   CheckPref(4);
 }
 
 // Make changes to the HostCache at different times and ensure that the writes
 // to prefs are batched as expected.
 TEST_F(HostCachePersistenceManagerTest, BatchedWrites) {
-  MakePersistenceManager(base::TimeDelta::FromMilliseconds(100));
+  MakePersistenceManager(base::Milliseconds(100));
 
   WriteToCache("1.test");
-  task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(30));
+  task_runner_->FastForwardBy(base::Milliseconds(30));
   WriteToCache("2.test");
-  task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(30));
+  task_runner_->FastForwardBy(base::Milliseconds(30));
   WriteToCache("3.test");
   CheckPref(0);
-  task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(40));
+  task_runner_->FastForwardBy(base::Milliseconds(40));
   CheckPref(3);
 
   // Add a delay in between batches.
-  task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(50));
+  task_runner_->FastForwardBy(base::Milliseconds(50));
 
   WriteToCache("4.test");
-  task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(30));
+  task_runner_->FastForwardBy(base::Milliseconds(30));
   WriteToCache("5.test");
-  task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(30));
+  task_runner_->FastForwardBy(base::Milliseconds(30));
   WriteToCache("6.test");
   CheckPref(3);
-  task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(40));
+  task_runner_->FastForwardBy(base::Milliseconds(40));
   CheckPref(6);
 }
 
@@ -176,7 +172,7 @@
   InitializePref();
   CheckPref(3);
 
-  MakePersistenceManager(base::TimeDelta::FromSeconds(1));
+  MakePersistenceManager(base::Seconds(1));
   task_runner_->RunUntilIdle();
   ASSERT_EQ(3u, cache_->size());
 }
@@ -184,7 +180,7 @@
 // Set the pref after the HostCachePersistenceManager is created, and make
 // sure it gets picked up by the HostCache.
 TEST_F(HostCachePersistenceManagerTest, InitBeforePrefs) {
-  MakePersistenceManager(base::TimeDelta::FromSeconds(1));
+  MakePersistenceManager(base::Seconds(1));
   ASSERT_EQ(0u, cache_->size());
 
   CheckPref(0);
diff --git a/components/cronet/native/native_metrics_util_test.cc b/components/cronet/native/native_metrics_util_test.cc
index aab2fe5..b8abc7b 100644
--- a/components/cronet/native/native_metrics_util_test.cc
+++ b/components/cronet/native/native_metrics_util_test.cc
@@ -15,8 +15,8 @@
 namespace {
 
 TEST(NativeMetricsUtilTest, ConvertsTimes) {
-  constexpr auto start_delta = base::TimeDelta::FromMilliseconds(20);
-  constexpr auto event_delta = base::TimeDelta::FromMilliseconds(30);
+  constexpr auto start_delta = base::Milliseconds(20);
+  constexpr auto event_delta = base::Milliseconds(30);
 
   absl::optional<Cronet_DateTime> converted;
   ConvertTime(base::TimeTicks::UnixEpoch() + event_delta,
@@ -27,8 +27,8 @@
 }
 
 TEST(NativeMetricsUtilTest, OverwritesOldOutParam) {
-  constexpr auto start_delta = base::TimeDelta::FromMilliseconds(20);
-  constexpr auto event_delta = base::TimeDelta::FromMilliseconds(30);
+  constexpr auto start_delta = base::Milliseconds(20);
+  constexpr auto event_delta = base::Milliseconds(30);
 
   absl::optional<Cronet_DateTime> converted;
   converted.emplace();
@@ -41,7 +41,7 @@
 }
 
 TEST(NativeMetricsUtilTest, NullTicks) {
-  constexpr auto start_delta = base::TimeDelta::FromMilliseconds(20);
+  constexpr auto start_delta = base::Milliseconds(20);
 
   absl::optional<Cronet_DateTime> converted;
   ConvertTime(base::TimeTicks(), base::TimeTicks::UnixEpoch() + start_delta,
@@ -50,8 +50,8 @@
 }
 
 TEST(NativeMetricsUtilTest, NullStartTicks) {
-  constexpr auto start_delta = base::TimeDelta::FromMilliseconds(20);
-  constexpr auto event_delta = base::TimeDelta::FromMilliseconds(30);
+  constexpr auto start_delta = base::Milliseconds(20);
+  constexpr auto event_delta = base::Milliseconds(30);
 
   absl::optional<Cronet_DateTime> converted;
   ConvertTime(base::TimeTicks::UnixEpoch() + event_delta, base::TimeTicks(),
@@ -60,8 +60,8 @@
 }
 
 TEST(NativeMetricsUtilTest, NullStartTime) {
-  constexpr auto start_delta = base::TimeDelta::FromMilliseconds(20);
-  constexpr auto event_delta = base::TimeDelta::FromMilliseconds(30);
+  constexpr auto start_delta = base::Milliseconds(20);
+  constexpr auto event_delta = base::Milliseconds(30);
 
   absl::optional<Cronet_DateTime> converted;
   EXPECT_DCHECK_DEATH(ConvertTime(base::TimeTicks::UnixEpoch() + event_delta,
diff --git a/components/cronet/native/test/test_upload_data_provider.cc b/components/cronet/native/test/test_upload_data_provider.cc
index 80b0571..47746d24 100644
--- a/components/cronet/native/test/test_upload_data_provider.cc
+++ b/components/cronet/native/test/test_upload_data_provider.cc
@@ -277,7 +277,7 @@
 }
 
 void TestUploadDataProvider::AssertClosed() {
-  awaiting_close_.TimedWait(base::TimeDelta::FromMilliseconds(5000));
+  awaiting_close_.TimedWait(base::Milliseconds(5000));
   EXPECT_TRUE(closed_.IsSet()) << "Was not closed";
 }
 
diff --git a/components/cronet/native/url_request.cc b/components/cronet/native/url_request.cc
index 49defaa..bc23da1 100644
--- a/components/cronet/native/url_request.cc
+++ b/components/cronet/native/url_request.cc
@@ -564,7 +564,7 @@
     return;
 #if DCHECK_IS_ON()
   // Verify that Executor calls Cronet_Runnable_Destroy().
-  if (!runnable_destroyed_.TimedWait(base::TimeDelta::FromSeconds(5))) {
+  if (!runnable_destroyed_.TimedWait(base::Seconds(5))) {
     LOG(ERROR) << "Cronet Executor didn't call Cronet_Runnable_Destroy() in "
                   "5s; still waiting.";
     runnable_destroyed_.Wait();
diff --git a/components/cronet/stale_host_resolver_unittest.cc b/components/cronet/stale_host_resolver_unittest.cc
index 21c3b1d..fb113a43 100644
--- a/components/cronet/stale_host_resolver_unittest.cc
+++ b/components/cronet/stale_host_resolver_unittest.cc
@@ -140,7 +140,7 @@
         resolve_pending_(false),
         resolve_complete_(false) {
     // Make value clock not empty.
-    tick_clock_.Advance(base::TimeDelta::FromMicroseconds(1));
+    tick_clock_.Advance(base::Microseconds(1));
   }
 
   ~StaleHostResolverTest() override {}
@@ -148,7 +148,7 @@
   void SetStaleDelay(int stale_delay_sec) {
     DCHECK(!resolver_);
 
-    options_.delay = base::TimeDelta::FromSeconds(stale_delay_sec);
+    options_.delay = base::Seconds(stale_delay_sec);
   }
 
   void SetUseStaleOnNameNotResolved() {
@@ -162,8 +162,7 @@
                          bool allow_other_network) {
     DCHECK(!resolver_);
 
-    options_.max_expired_time =
-        base::TimeDelta::FromSeconds(max_expired_time_sec);
+    options_.max_expired_time = base::Seconds(max_expired_time_sec);
     options_.max_stale_uses = max_stale_uses;
     options_.allow_other_network = allow_other_network;
   }
@@ -230,7 +229,7 @@
     DCHECK(resolver_);
     DCHECK(resolver_->GetHostCache());
 
-    base::TimeDelta ttl(base::TimeDelta::FromSeconds(kCacheEntryTTLSec));
+    base::TimeDelta ttl(base::Seconds(kCacheEntryTTLSec));
     net::HostCache::Key key(kHostname, net::DnsQueryType::UNSPECIFIED, 0,
                             net::HostResolverSource::ANY,
                             net::NetworkIsolationKey());
@@ -238,7 +237,7 @@
         error,
         error == net::OK ? MakeAddressList(kCacheAddress) : net::AddressList(),
         net::HostCache::Entry::SOURCE_UNKNOWN, ttl);
-    base::TimeDelta age = base::TimeDelta::FromSeconds(age_sec);
+    base::TimeDelta age = base::Seconds(age_sec);
     base::TimeTicks then = tick_clock_.NowTicks() - age;
     resolver_->GetHostCache()->Set(key, entry, then, ttl);
   }
@@ -293,8 +292,7 @@
     // Run until resolve completes or timeout.
     resolve_closure_ = run_loop.QuitWhenIdleClosure();
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-        FROM_HERE, resolve_closure_,
-        base::TimeDelta::FromSeconds(kWaitTimeoutSec));
+        FROM_HERE, resolve_closure_, base::Seconds(kWaitTimeoutSec));
     run_loop.Run();
   }
 
@@ -620,15 +618,15 @@
     CreateResolver();
     CreateCacheEntry(kCacheEntryTTLSec + test_case.age_sec, test_case.error);
 
-    AdvanceTickClock(base::TimeDelta::FromMilliseconds(1));
+    AdvanceTickClock(base::Milliseconds(1));
     for (int j = 0; j < test_case.network_changes; ++j)
       OnNetworkChange();
 
-    AdvanceTickClock(base::TimeDelta::FromMilliseconds(1));
+    AdvanceTickClock(base::Milliseconds(1));
     for (int j = 0; j < test_case.stale_use - 1; ++j)
       LookupStale();
 
-    AdvanceTickClock(base::TimeDelta::FromMilliseconds(1));
+    AdvanceTickClock(base::Milliseconds(1));
     Resolve(absl::nullopt);
     WaitForResolve();
     EXPECT_TRUE(resolve_complete()) << i;
@@ -652,7 +650,7 @@
       }
     }
     // Make sure that all tasks complete so jobs are freed properly.
-    AdvanceTickClock(base::TimeDelta::FromSeconds(kLongStaleDelaySec));
+    AdvanceTickClock(base::Seconds(kLongStaleDelaySec));
     WaitForNetworkResolveComplete();
     base::RunLoop run_loop;
     run_loop.RunUntilIdle();
diff --git a/components/cronet/url_request_context_config.cc b/components/cronet/url_request_context_config.cc
index 6e6bd7f..93fd123 100644
--- a/components/cronet/url_request_context_config.cc
+++ b/components/cronet/url_request_context_config.cc
@@ -378,7 +378,7 @@
       if (quic_args->GetInteger(kQuicIdleConnectionTimeoutSeconds,
                                 &quic_idle_connection_timeout_seconds)) {
         quic_params->idle_connection_timeout =
-            base::TimeDelta::FromSeconds(quic_idle_connection_timeout_seconds);
+            base::Seconds(quic_idle_connection_timeout_seconds);
       }
 
       int quic_max_time_before_crypto_handshake_seconds = 0;
@@ -386,8 +386,7 @@
               kQuicMaxTimeBeforeCryptoHandshakeSeconds,
               &quic_max_time_before_crypto_handshake_seconds)) {
         quic_params->max_time_before_crypto_handshake =
-            base::TimeDelta::FromSeconds(
-                quic_max_time_before_crypto_handshake_seconds);
+            base::Seconds(quic_max_time_before_crypto_handshake_seconds);
       }
 
       int quic_max_idle_time_before_crypto_handshake_seconds = 0;
@@ -395,8 +394,7 @@
               kQuicMaxIdleTimeBeforeCryptoHandshakeSeconds,
               &quic_max_idle_time_before_crypto_handshake_seconds)) {
         quic_params->max_idle_time_before_crypto_handshake =
-            base::TimeDelta::FromSeconds(
-                quic_max_idle_time_before_crypto_handshake_seconds);
+            base::Seconds(quic_max_idle_time_before_crypto_handshake_seconds);
       }
 
       absl::optional<bool> quic_close_sessions_on_ip_change =
@@ -449,8 +447,7 @@
                 kQuicMaxTimeOnNonDefaultNetworkSeconds,
                 &quic_max_time_on_non_default_network_seconds)) {
           quic_params->max_time_on_non_default_network =
-              base::TimeDelta::FromSeconds(
-                  quic_max_time_on_non_default_network_seconds);
+              base::Seconds(quic_max_time_on_non_default_network_seconds);
         }
         if (quic_args->GetInteger(
                 kQuicMaxMigrationsToNonDefaultNetworkOnWriteError,
@@ -479,8 +476,7 @@
                 kQuicIdleSessionMigrationPeriodSeconds,
                 &quic_idle_session_migration_period_seconds)) {
           quic_params->idle_session_migration_period =
-              base::TimeDelta::FromSeconds(
-                  quic_idle_session_migration_period_seconds);
+              base::Seconds(quic_idle_session_migration_period_seconds);
         }
       }
 
@@ -498,9 +494,8 @@
       if (quic_args->GetInteger(
               kQuicRetransmittableOnWireTimeoutMilliseconds,
               &quic_retransmittable_on_wire_timeout_milliseconds)) {
-        quic_params->retransmittable_on_wire_timeout =
-            base::TimeDelta::FromMilliseconds(
-                quic_retransmittable_on_wire_timeout_milliseconds);
+        quic_params->retransmittable_on_wire_timeout = base::Milliseconds(
+            quic_retransmittable_on_wire_timeout_milliseconds);
       }
 
       quic_params->retry_on_alternate_network_before_handshake =
@@ -574,12 +569,12 @@
 
         int delay;
         if (stale_dns_args->GetInteger(kStaleDnsDelayMs, &delay))
-          stale_dns_options.delay = base::TimeDelta::FromMilliseconds(delay);
+          stale_dns_options.delay = base::Milliseconds(delay);
         int max_expired_time_ms;
         if (stale_dns_args->GetInteger(kStaleDnsMaxExpiredTimeMs,
                                        &max_expired_time_ms)) {
           stale_dns_options.max_expired_time =
-              base::TimeDelta::FromMilliseconds(max_expired_time_ms);
+              base::Milliseconds(max_expired_time_ms);
         }
         int max_stale_uses;
         if (stale_dns_args->GetInteger(kStaleDnsMaxStaleUses, &max_stale_uses))
diff --git a/components/cronet/url_request_context_config_unittest.cc b/components/cronet/url_request_context_config_unittest.cc
index 01595c4..0ea450d 100644
--- a/components/cronet/url_request_context_config_unittest.cc
+++ b/components/cronet/url_request_context_config_unittest.cc
@@ -856,10 +856,8 @@
   EXPECT_EQ(1000,
             quic_params->retransmittable_on_wire_timeout.InMilliseconds());
   EXPECT_TRUE(quic_params->migrate_idle_sessions);
-  EXPECT_EQ(base::TimeDelta::FromSeconds(15),
-            quic_params->idle_session_migration_period);
-  EXPECT_EQ(base::TimeDelta::FromSeconds(10),
-            quic_params->max_time_on_non_default_network);
+  EXPECT_EQ(base::Seconds(15), quic_params->idle_session_migration_period);
+  EXPECT_EQ(base::Seconds(10), quic_params->max_time_on_non_default_network);
   EXPECT_EQ(3,
             quic_params->max_migrations_to_non_default_network_on_write_error);
   EXPECT_EQ(
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats_unittest.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats_unittest.cc
index 6b82c93..81ffa6f 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats_unittest.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats_unittest.cc
@@ -136,13 +136,9 @@
     return now_ + now_delta_;
   }
 
-  void SetFakeTimeDeltaInHours(int hours) {
-    now_delta_ = base::TimeDelta::FromHours(hours);
-  }
+  void SetFakeTimeDeltaInHours(int hours) { now_delta_ = base::Hours(hours); }
 
-  void AddFakeTimeDeltaInHours(int hours) {
-    now_delta_ += base::TimeDelta::FromHours(hours);
-  }
+  void AddFakeTimeDeltaInHours(int hours) { now_delta_ += base::Hours(hours); }
 
   void SetUpPrefs() {
     CreatePrefList(prefs::kDailyHttpOriginalContentLength);
@@ -400,8 +396,7 @@
 }
 
 TEST_F(DataReductionProxyCompressionStatsTest, WritePrefsDelayed) {
-  ResetCompressionStatsWithDelay(
-      base::TimeDelta::FromMinutes(kWriteDelayMinutes));
+  ResetCompressionStatsWithDelay(base::Minutes(kWriteDelayMinutes));
 
   EXPECT_EQ(0, pref_service()->GetInt64(prefs::kHttpOriginalContentLength));
   EXPECT_EQ(0, pref_service()->GetInt64(prefs::kHttpReceivedContentLength));
@@ -422,8 +417,7 @@
   list_value.Append(base::Value(base::NumberToString(1234)));
   pref_service()->Set(prefs::kDailyHttpOriginalContentLength, list_value);
 
-  ResetCompressionStatsWithDelay(
-      base::TimeDelta::FromMinutes(kWriteDelayMinutes));
+  ResetCompressionStatsWithDelay(base::Minutes(kWriteDelayMinutes));
 
   const base::Value* value =
       pref_service()->GetList(prefs::kDailyHttpOriginalContentLength);
@@ -762,7 +756,7 @@
   base::RunLoop().RunUntilIdle();
 
   base::Time now = base::Time::Now();
-  base::Time fifteen_mins_ago = now - base::TimeDelta::FromMinutes(15);
+  base::Time fifteen_mins_ago = now - base::Minutes(15);
 
   RecordDataUsage("https://www.foo.com", 1000, 1250, fifteen_mins_ago);
 
@@ -802,7 +796,7 @@
   base::RunLoop().RunUntilIdle();
 
   base::Time now = base::Time::Now();
-  base::Time fifteen_mins_ago = now - base::TimeDelta::FromMinutes(15);
+  base::Time fifteen_mins_ago = now - base::Minutes(15);
 
   RecordDataUsage("https://www.foo.com", 1000, 1250, fifteen_mins_ago);
 
@@ -830,7 +824,7 @@
   base::RunLoop().RunUntilIdle();
 
   base::Time now = base::Time::Now();
-  base::Time fifteen_mins_ago = now - base::TimeDelta::FromMinutes(15);
+  base::Time fifteen_mins_ago = now - base::Minutes(15);
   // Fake record to be from 15 minutes ago so that it is flushed to storage.
   RecordDataUsage("https://www.bar.com", 900, 1100, fifteen_mins_ago);
 
@@ -855,7 +849,7 @@
   base::RunLoop().RunUntilIdle();
 
   base::Time now = base::Time::Now();
-  base::Time fifteen_mins_ago = now - base::TimeDelta::FromMinutes(15);
+  base::Time fifteen_mins_ago = now - base::Minutes(15);
 
   // Fake record to be from 15 minutes ago so that it is flushed to storage.
   RecordDataUsage("https://www.bar.com", 900, 1100, fifteen_mins_ago);
@@ -903,7 +897,7 @@
   base::RunLoop().RunUntilIdle();
 
   base::Time now = base::Time::Now();
-  base::Time fifteen_mins_ago = now - base::TimeDelta::FromMinutes(15);
+  base::Time fifteen_mins_ago = now - base::Minutes(15);
   // Fake record to be from 15 minutes ago so that it is flushed to storage.
   RecordDataUsage("https://www.bar.com", 900, 1100, fifteen_mins_ago);
 
@@ -1029,7 +1023,7 @@
       kNonMainFrameKB);
 
   // Fast forward 7 days, and verify that the last week histograms are recorded.
-  fake_time_now += base::TimeDelta::FromDays(7);
+  fake_time_now += base::Days(7);
   InitializeWeeklyAggregateDataUse(fake_time_now);
   VerifyDictionaryPref(prefs::kLastWeekUserTrafficContentTypeDownstreamKB,
                        data_use_measurement::DataUseUserData::MAIN_FRAME_HTML,
@@ -1062,7 +1056,7 @@
                        kMainFrameKB);
 
   // Fast forward by more than two weeks, and the prefs will be cleared.
-  fake_time_now += base::TimeDelta::FromDays(15);
+  fake_time_now += base::Days(15);
   InitializeWeeklyAggregateDataUse(fake_time_now);
   VerifyDictionaryPref(prefs::kLastWeekUserTrafficContentTypeDownstreamKB,
                        data_use_measurement::DataUseUserData::MAIN_FRAME_HTML,
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_settings_unittest.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_settings_unittest.cc
index 73317fc..ebc82303 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_settings_unittest.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_settings_unittest.cc
@@ -244,7 +244,7 @@
 TEST_F(DataReductionProxySettingsTest, TestDaysSinceEnabledWithTestClock) {
   const char kUMAEnabledState[] = "DataReductionProxy.DaysSinceEnabled";
   base::SimpleTestClock clock;
-  clock.Advance(base::TimeDelta::FromDays(1));
+  clock.Advance(base::Days(1));
   ResetSettings(&clock);
 
   base::Time last_enabled_time = clock.Now();
@@ -274,7 +274,7 @@
     // running.
     test_context_->SetDataReductionProxyEnabled(false);
     settings_->MaybeActivateDataReductionProxy(false);
-    clock.Advance(base::TimeDelta::FromDays(1));
+    clock.Advance(base::Days(1));
     last_enabled_time = clock.Now();
 
     test_context_->SetDataReductionProxyEnabled(true);
@@ -291,7 +291,7 @@
   {
     // Advance clock by a random number of days.
     int advance_clock_days = 42;
-    clock.Advance(base::TimeDelta::FromDays(advance_clock_days));
+    clock.Advance(base::Days(advance_clock_days));
     base::HistogramTester histogram_tester;
     // Simulate Chromium start up. Data reduction proxy was enabled
     // |advance_clock_days| ago.
diff --git a/components/data_reduction_proxy/core/browser/data_usage_store.cc b/components/data_reduction_proxy/core/browser/data_usage_store.cc
index e47174e1..e0a2844 100644
--- a/components/data_reduction_proxy/core/browser/data_usage_store.cc
+++ b/components/data_reduction_proxy/core/browser/data_usage_store.cc
@@ -177,10 +177,9 @@
       BucketLowerBoundary(current_bucket_last_updated_);
   // Data usage is stored for the past |kDataUsageHistoryNumDays| days. Compute
   // the begin time for data usage.
-  base::Time begin_history =
-      begin_current_interval -
-      base::TimeDelta::FromDays(kDataUsageHistoryNumDays) +
-      base::TimeDelta::FromMinutes(kDataUsageBucketLengthInMinutes);
+  base::Time begin_history = begin_current_interval -
+                             base::Days(kDataUsageHistoryNumDays) +
+                             base::Minutes(kDataUsageBucketLengthInMinutes);
 
   // Nothing to do if there is no overlap between given interval and the
   // interval for which data usage history is maintained.
@@ -239,8 +238,8 @@
   DCHECK_LE(start_interval, end_interval);
 
   base::Time bucket_start = BucketLowerBoundary(bucket_last_updated);
-  base::Time bucket_end = bucket_start + base::TimeDelta::FromMinutes(
-                                             kDataUsageBucketLengthInMinutes);
+  base::Time bucket_end =
+      bucket_start + base::Minutes(kDataUsageBucketLengthInMinutes);
   DCHECK_LE(bucket_start, bucket_end);
   return bucket_end >= start_interval && end_interval >= bucket_start;
 }
diff --git a/components/data_reduction_proxy/core/browser/data_usage_store_unittest.cc b/components/data_reduction_proxy/core/browser/data_usage_store_unittest.cc
index 5964a79..508a57a 100644
--- a/components/data_reduction_proxy/core/browser/data_usage_store_unittest.cc
+++ b/components/data_reduction_proxy/core/browser/data_usage_store_unittest.cc
@@ -74,7 +74,7 @@
     map.insert(
         std::pair<std::string, std::string>("current_bucket_index", "2880"));
     for (int i = 0; i < static_cast<int>(kNumExpectedBuckets); ++i) {
-      base::Time time = current_time - base::TimeDelta::FromMinutes(i * 5);
+      base::Time time = current_time - base::Minutes(i * 5);
       DataUsageBucket bucket;
       bucket.set_last_updated_timestamp(time.ToInternalValue());
       bucket.set_had_read_error(false);
@@ -233,15 +233,13 @@
   // the second bucket range is 0.0.5.0.0 - 0.0.29.59.999, etc.
   base::Time first_bucket_time = base::Time::Now();  // 0.0.0.0.0.
   base::Time last_bucket_time = first_bucket_time    // 59.23.55.0.0
-                                + base::TimeDelta::FromDays(60) -
-                                base::TimeDelta::FromMinutes(15);
+                                + base::Days(60) - base::Minutes(15);
   base::Time before_history_time =  // 0.0.-5.0.0
-      first_bucket_time - base::TimeDelta::FromMinutes(15);
+      first_bucket_time - base::Minutes(15);
   base::Time tenth_bucket_time =  // 0.2.15.0.0
-      first_bucket_time + base::TimeDelta::FromHours(2) +
-      base::TimeDelta::FromMinutes(15);
+      first_bucket_time + base::Hours(2) + base::Minutes(15);
   base::Time second_last_bucket_time =  // 59.23.45.0.0
-      last_bucket_time - base::TimeDelta::FromMinutes(15);
+      last_bucket_time - base::Minutes(15);
 
   // This bucket will be discarded when the |last_bucket| is stored.
   DataUsageBucket bucket_before_history;
@@ -433,7 +431,7 @@
   exploded.minute = 0;
   base::Time now;
   EXPECT_TRUE(base::Time::FromUTCExploded(exploded, &now));
-  base::Time fifteen_mins_from_now = now + base::TimeDelta::FromMinutes(15);
+  base::Time fifteen_mins_from_now = now + base::Minutes(15);
 
   // Deleting browsing from the future should be a no-op.
   data_usage_store()->DeleteBrowsingHistory(fifteen_mins_from_now,
@@ -454,8 +452,7 @@
       "DataReductionProxy.DeleteBrowsingHistory.NumBuckets", 1, 1);
 
   // Delete the current bucket + the last 5 minutes, so two buckets.
-  data_usage_store()->DeleteBrowsingHistory(
-      now - base::TimeDelta::FromMinutes(5), now);
+  data_usage_store()->DeleteBrowsingHistory(now - base::Minutes(5), now);
   ASSERT_EQ(kNumExpectedBuckets - 1, store()->map()->size());
   ASSERT_TRUE(store()->map()->find(base::StringPrintf(
                   "data_usage_bucket:%d", kTestCurrentBucketIndex - 1)) ==
@@ -464,8 +461,7 @@
       "DataReductionProxy.DeleteBrowsingHistory.NumBuckets", 2, 1);
 
   // Delete 30 days of browsing history.
-  data_usage_store()->DeleteBrowsingHistory(now - base::TimeDelta::FromDays(30),
-                                            now);
+  data_usage_store()->DeleteBrowsingHistory(now - base::Days(30), now);
   ASSERT_EQ(kNumExpectedBuckets - kBucketsInHour * 30 * 24,
             store()->map()->size());
   ASSERT_TRUE(store()->map()->find("data_usage_bucket:0") ==
@@ -480,8 +476,7 @@
   // Delete wraps around and removes the last element which is at position
   // (|kNumExpectedBuckets| - 1).
   data_usage_store()->DeleteBrowsingHistory(
-      now - base::TimeDelta::FromDays(30) - base::TimeDelta::FromMinutes(5),
-      now);
+      now - base::Days(30) - base::Minutes(5), now);
   ASSERT_EQ(kNumExpectedBuckets - kBucketsInHour * 30 * 24 - 1,
             store()->map()->size());
   ASSERT_TRUE(store()->map()->find(base::StringPrintf(
@@ -491,8 +486,7 @@
                   "data_usage_bucket:%d", kNumExpectedBuckets - 2)) !=
               store()->map()->end());
 
-  data_usage_store()->DeleteBrowsingHistory(now - base::TimeDelta::FromDays(60),
-                                            now);
+  data_usage_store()->DeleteBrowsingHistory(now - base::Days(60), now);
   ASSERT_EQ(1u, store()->map()->size());
   histogram_tester.ExpectBucketCount(
       "DataReductionProxy.DeleteBrowsingHistory.NumBuckets",
diff --git a/components/data_use_measurement/core/data_use_tracker_prefs.cc b/components/data_use_measurement/core/data_use_tracker_prefs.cc
index edccaf61..898f7aa 100644
--- a/components/data_use_measurement/core/data_use_tracker_prefs.cc
+++ b/components/data_use_measurement/core/data_use_tracker_prefs.cc
@@ -73,7 +73,7 @@
   const base::DictionaryValue* user_pref_dict =
       pref_service_->GetDictionary(pref_name);
   const base::Time current_date = GetCurrentMeasurementDate();
-  const base::Time last_date = current_date - base::TimeDelta::FromDays(60);
+  const base::Time last_date = current_date - base::Days(60);
 
   base::DictionaryValue user_pref_new_dict;
   for (auto it : user_pref_dict->DictItems()) {
diff --git a/components/data_use_measurement/core/data_use_tracker_prefs_unittest.cc b/components/data_use_measurement/core/data_use_tracker_prefs_unittest.cc
index f01213f..782b00c5 100644
--- a/components/data_use_measurement/core/data_use_tracker_prefs_unittest.cc
+++ b/components/data_use_measurement/core/data_use_tracker_prefs_unittest.cc
@@ -75,7 +75,7 @@
 
   // Move clock forward 10 days. New data use reported must go in a separate
   // entry in the dictionary pref.
-  clock.Advance(base::TimeDelta::FromDays(10));
+  clock.Advance(base::Days(10));
   DataUseTrackerPrefsTest tracker_prefs_test_2(&clock, &test_prefs);
   EXPECT_EQ(
       1u, test_prefs.GetDictionary(prefs::kDataUsedUserForeground)->DictSize());
@@ -87,7 +87,7 @@
   // Move clock forward 55 days. This should clean up the first entry since they
   // are now 65 days older (i.e., more than 60 days old). New data use reported
   // must go in a separate entry in the dictionary pref.
-  clock.Advance(base::TimeDelta::FromDays(55));
+  clock.Advance(base::Days(55));
   DataUseTrackerPrefsTest tracker_prefs_test_3(&clock, &test_prefs);
   EXPECT_EQ(
       1u, test_prefs.GetDictionary(prefs::kDataUsedUserForeground)->DictSize());
diff --git a/components/desks_storage/core/desk_sync_bridge.cc b/components/desks_storage/core/desk_sync_bridge.cc
index 96877d4b..6295823 100644
--- a/components/desks_storage/core/desk_sync_bridge.cc
+++ b/components/desks_storage/core/desk_sync_bridge.cc
@@ -55,8 +55,7 @@
 
 // Converts a time field from sync protobufs to a time object.
 base::Time ProtoTimeToTime(int64_t proto_t) {
-  return base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(proto_t));
+  return base::Time::FromDeltaSinceWindowsEpoch(base::Microseconds(proto_t));
 }
 
 // Converts a time object to the format used in sync protobufs
diff --git a/components/desks_storage/core/desk_sync_bridge_unittest.cc b/components/desks_storage/core/desk_sync_bridge_unittest.cc
index e3a0df9a..9fb9976b 100644
--- a/components/desks_storage/core/desk_sync_bridge_unittest.cc
+++ b/components/desks_storage/core/desk_sync_bridge_unittest.cc
@@ -311,8 +311,7 @@
     return changes;
   }
 
-  base::Time AdvanceAndGetTime(
-      base::TimeDelta delta = base::TimeDelta::FromMilliseconds(10)) {
+  base::Time AdvanceAndGetTime(base::TimeDelta delta = base::Milliseconds(10)) {
     clock_.Advance(delta);
     return clock_.Now();
   }
diff --git a/components/desks_storage/core/desk_template.cc b/components/desks_storage/core/desk_template.cc
index 6e05d35..03f15ea 100644
--- a/components/desks_storage/core/desk_template.cc
+++ b/components/desks_storage/core/desk_template.cc
@@ -24,8 +24,7 @@
 
 // Converts a time field from sync protobufs to a time object.
 base::Time ProtoTimeToTime(int64_t proto_t) {
-  return base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(proto_t));
+  return base::Time::FromDeltaSinceWindowsEpoch(base::Microseconds(proto_t));
 }
 
 }  // namespace
diff --git a/components/device_event_log/device_event_log_impl_unittest.cc b/components/device_event_log/device_event_log_impl_unittest.cc
index d2f2f90..d7eaab8 100644
--- a/components/device_event_log/device_event_log_impl_unittest.cc
+++ b/components/device_event_log/device_event_log_impl_unittest.cc
@@ -347,19 +347,19 @@
 
 TEST_F(DeviceEventLogTest, TestClearRange) {
   AddTestEventWithTimestamp(LOG_LEVEL_EVENT, "event1",
-                            base::Time() + base::TimeDelta::FromSeconds(1));
+                            base::Time() + base::Seconds(1));
   AddTestEventWithTimestamp(LOG_LEVEL_EVENT, "event2",
-                            base::Time() + base::TimeDelta::FromSeconds(2));
+                            base::Time() + base::Seconds(2));
   AddTestEventWithTimestamp(LOG_LEVEL_EVENT, "event3",
-                            base::Time() + base::TimeDelta::FromSeconds(3));
+                            base::Time() + base::Seconds(3));
   AddTestEventWithTimestamp(LOG_LEVEL_EVENT, "event4",
-                            base::Time() + base::TimeDelta::FromSeconds(4));
+                            base::Time() + base::Seconds(4));
 
   EXPECT_EQ("event1\nevent2\nevent3\nevent4\n",
             GetLogString(OLDEST_FIRST, "", LOG_LEVEL_EVENT, 0));
 
-  impl_->Clear(base::Time() + base::TimeDelta::FromSeconds(2),
-               base::Time() + base::TimeDelta::FromSeconds(3));
+  impl_->Clear(base::Time() + base::Seconds(2),
+               base::Time() + base::Seconds(3));
 
   EXPECT_EQ("event1\nevent4\n",
             GetLogString(OLDEST_FIRST, "", LOG_LEVEL_EVENT, 0));
diff --git a/components/discardable_memory/client/client_discardable_shared_memory_manager.h b/components/discardable_memory/client/client_discardable_shared_memory_manager.h
index cd0e1ad..055c8f66 100644
--- a/components/discardable_memory/client/client_discardable_shared_memory_manager.h
+++ b/components/discardable_memory/client/client_discardable_shared_memory_manager.h
@@ -78,15 +78,13 @@
     bytes_allocated_limit_for_testing_ = limit;
   }
 
-  static constexpr base::TimeDelta kMinAgeForScheduledPurge =
-      base::TimeDelta::FromMinutes(5);
+  static constexpr base::TimeDelta kMinAgeForScheduledPurge = base::Minutes(5);
 
   // The expected cost of purging should be very small (< 1ms), so it can be
   // scheduled frequently. However, we don't purge memory that has been touched
   // recently (see: |BackgroundPurge()| and |kMinAgeForScheduledPurge|), so
   // there is no benefit to scheduling this more than once per minute.
-  static constexpr base::TimeDelta kScheduledPurgeInterval =
-      base::TimeDelta::FromMinutes(1);
+  static constexpr base::TimeDelta kScheduledPurgeInterval = base::Minutes(1);
 
   // These fields are only protected for testing, they would otherwise be
   // private. Everything else should be either public or private.
diff --git a/components/discardable_memory/common/discardable_shared_memory_heap_perftest.cc b/components/discardable_memory/common/discardable_shared_memory_heap_perftest.cc
index 915c0a5..24c0c25 100644
--- a/components/discardable_memory/common/discardable_shared_memory_heap_perftest.cc
+++ b/components/discardable_memory/common/discardable_shared_memory_heap_perftest.cc
@@ -61,7 +61,7 @@
   std::vector<std::unique_ptr<base::ScopedClosureRunner>> spans;
 
   base::TimeTicks start = base::TimeTicks::Now();
-  base::TimeTicks end = start + base::TimeDelta::FromMilliseconds(kTimeLimitMs);
+  base::TimeTicks end = start + base::Milliseconds(kTimeLimitMs);
   base::TimeDelta accumulator;
   int count = 0;
   while (start < end) {
diff --git a/components/discardable_memory/service/discardable_shared_memory_manager.cc b/components/discardable_memory/service/discardable_shared_memory_manager.cc
index 720def0..85fcda5 100644
--- a/components/discardable_memory/service/discardable_shared_memory_manager.cc
+++ b/components/discardable_memory/service/discardable_shared_memory_manager.cc
@@ -637,7 +637,7 @@
   DCHECK(enforce_memory_policy_task_runner_);
   enforce_memory_policy_task_runner_->PostDelayedTask(
       FROM_HERE, enforce_memory_policy_callback_,
-      base::TimeDelta::FromMilliseconds(kEnforceMemoryPolicyDelayMs));
+      base::Milliseconds(kEnforceMemoryPolicyDelayMs));
 }
 
 void DiscardableSharedMemoryManager::InvalidateMojoThreadWeakPtrs(
diff --git a/components/dom_distiller/content/browser/distiller_page_web_contents_browsertest.cc b/components/dom_distiller/content/browser/distiller_page_web_contents_browsertest.cc
index dbe2ae6..f98ada4 100644
--- a/components/dom_distiller/content/browser/distiller_page_web_contents_browsertest.cc
+++ b/components/dom_distiller/content/browser/distiller_page_web_contents_browsertest.cc
@@ -403,7 +403,7 @@
 
   // Make sure the test ends when it does not crash.
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(), base::TimeDelta::FromSeconds(2));
+      FROM_HERE, run_loop.QuitClosure(), base::Seconds(2));
 
   run_loop.Run();
 }
diff --git a/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc b/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
index 5975c1b1..778c714 100644
--- a/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
+++ b/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
@@ -179,7 +179,7 @@
       render_frame_host->GetLastCommittedURL());
   if (start_time_ms > 0) {
     base::TimeTicks start_time =
-        base::TimeDelta::FromMilliseconds(start_time_ms) + base::TimeTicks();
+        base::Milliseconds(start_time_ms) + base::TimeTicks();
     base::TimeDelta latency = base::TimeTicks::Now() - start_time;
 
     UMA_HISTOGRAM_TIMES("DomDistiller.Time.ViewerLoading", latency);
diff --git a/components/dom_distiller/content/browser/uma_helper_unittest.cc b/components/dom_distiller/content/browser/uma_helper_unittest.cc
index 56fd714..22b03e1 100644
--- a/components/dom_distiller/content/browser/uma_helper_unittest.cc
+++ b/components/dom_distiller/content/browser/uma_helper_unittest.cc
@@ -21,8 +21,7 @@
 class UMAHelperTest : public testing::Test {
  public:
   void FastForwardBy(int milliseconds) {
-    task_environment_.FastForwardBy(
-        base::TimeDelta::FromMilliseconds(milliseconds));
+    task_environment_.FastForwardBy(base::Milliseconds(milliseconds));
   }
 
  protected:
@@ -101,16 +100,16 @@
   // Destroy the timer. Since it was running and on a distilled page, expect
   // logging to have happened.
   delete timer;
-  histogram_tester.ExpectTimeBucketCount(
-      kDistilledPageHistogram, base::TimeDelta::FromMilliseconds(100), 1);
+  histogram_tester.ExpectTimeBucketCount(kDistilledPageHistogram,
+                                         base::Milliseconds(100), 1);
 
   // Nothing is logged if it wasn't destroyed while on a distilled page.
   timer = new UMAHelper::DistillabilityDriverTimer();
   timer->Start(false);
   FastForwardBy(200);
   delete timer;
-  histogram_tester.ExpectTimeBucketCount(
-      kDistilledPageHistogram, base::TimeDelta::FromMilliseconds(200), 0);
+  histogram_tester.ExpectTimeBucketCount(kDistilledPageHistogram,
+                                         base::Milliseconds(200), 0);
 }
 
 }  // namespace dom_distiller
diff --git a/components/dom_distiller/core/distiller_page.cc b/components/dom_distiller/core/distiller_page.cc
index 81230d8..b2aebc26 100644
--- a/components/dom_distiller/core/distiller_page.cc
+++ b/components/dom_distiller/core/distiller_page.cc
@@ -113,31 +113,28 @@
         const dom_distiller::proto::TimingInfo& timing =
             distiller_result->timing_info();
         if (timing.has_markup_parsing_time()) {
-          UMA_HISTOGRAM_TIMES(
-              "DomDistiller.Time.MarkupParsing",
-              base::TimeDelta::FromMillisecondsD(timing.markup_parsing_time()));
+          UMA_HISTOGRAM_TIMES("DomDistiller.Time.MarkupParsing",
+                              base::Milliseconds(timing.markup_parsing_time()));
         }
         if (timing.has_document_construction_time()) {
-          UMA_HISTOGRAM_TIMES("DomDistiller.Time.DocumentConstruction",
-                              base::TimeDelta::FromMillisecondsD(
-                                  timing.document_construction_time()));
+          UMA_HISTOGRAM_TIMES(
+              "DomDistiller.Time.DocumentConstruction",
+              base::Milliseconds(timing.document_construction_time()));
         }
         if (timing.has_article_processing_time()) {
-          UMA_HISTOGRAM_TIMES("DomDistiller.Time.ArticleProcessing",
-                              base::TimeDelta::FromMillisecondsD(
-                                  timing.article_processing_time()));
+          UMA_HISTOGRAM_TIMES(
+              "DomDistiller.Time.ArticleProcessing",
+              base::Milliseconds(timing.article_processing_time()));
         }
         if (timing.has_formatting_time()) {
-          UMA_HISTOGRAM_TIMES(
-              "DomDistiller.Time.Formatting",
-              base::TimeDelta::FromMillisecondsD(timing.formatting_time()));
+          UMA_HISTOGRAM_TIMES("DomDistiller.Time.Formatting",
+                              base::Milliseconds(timing.formatting_time()));
         }
         if (timing.has_total_time()) {
-          UMA_HISTOGRAM_TIMES(
-              "DomDistiller.Time.DistillationTotal",
-              base::TimeDelta::FromMillisecondsD(timing.total_time()));
+          UMA_HISTOGRAM_TIMES("DomDistiller.Time.DistillationTotal",
+                              base::Milliseconds(timing.total_time()));
           VLOG(1) << "DomDistiller.Time.DistillationTotal = "
-                  << base::TimeDelta::FromMillisecondsD(timing.total_time());
+                  << base::Milliseconds(timing.total_time());
         }
       }
       if (distiller_result->has_statistics_info()) {
diff --git a/components/domain_reliability/context.cc b/components/domain_reliability/context.cc
index e6d15d61..9bb8a2ad 100644
--- a/components/domain_reliability/context.cc
+++ b/components/domain_reliability/context.cc
@@ -261,7 +261,7 @@
 
 void DomainReliabilityContext::RemoveExpiredBeacons() {
   base::TimeTicks now = time_->NowTicks();
-  const base::TimeDelta kMaxAge = base::TimeDelta::FromHours(1);
+  const base::TimeDelta kMaxAge = base::Hours(1);
   while (!beacons_.empty() && now - beacons_.front()->start_time >= kMaxAge) {
     beacons_.front()->outcome = DomainReliabilityBeacon::Outcome::kExpired;
     beacons_.pop_front();
diff --git a/components/domain_reliability/context_unittest.cc b/components/domain_reliability/context_unittest.cc
index 13853811..b63597c 100644
--- a/components/domain_reliability/context_unittest.cc
+++ b/components/domain_reliability/context_unittest.cc
@@ -51,7 +51,7 @@
   beacon->details.quic_broken = true;
   beacon->details.quic_port_migration_detected = quic_port_migration_detected;
   beacon->http_response_code = -1;
-  beacon->elapsed = base::TimeDelta::FromMilliseconds(250);
+  beacon->elapsed = base::Milliseconds(250);
   beacon->start_time = time->NowTicks() - beacon->elapsed;
   beacon->upload_depth = 0;
   beacon->sample_rate = 1.0;
@@ -135,7 +135,7 @@
     // Make sure that the last network change does not overlap requests
     // made in test cases, which start 250ms in the past (see |MakeBeacon|).
     last_network_change_time_ = time_.NowTicks();
-    time_.Advance(base::TimeDelta::FromSeconds(1));
+    time_.Advance(base::Seconds(1));
   }
 
   void InitContext(std::unique_ptr<const DomainReliabilityConfig> config) {
@@ -151,9 +151,7 @@
   base::TimeDelta retry_interval() const {
     return params_.upload_retry_interval;
   }
-  base::TimeDelta zero_delta() const {
-    return base::TimeDelta::FromMicroseconds(0);
-  }
+  base::TimeDelta zero_delta() const { return base::Microseconds(0); }
 
   bool upload_allowed_callback_pending() const {
     return !upload_allowed_result_callback_.is_null();
@@ -930,7 +928,7 @@
   base::HistogramTester histograms;
   InitContext(MakeTestConfig());
   std::unique_ptr<DomainReliabilityBeacon> beacon = MakeBeacon(&time_);
-  time_.Advance(base::TimeDelta::FromHours(2));
+  time_.Advance(base::Hours(2));
   context_->OnBeacon(std::move(beacon));
 
   time_.Advance(max_delay());
@@ -953,12 +951,12 @@
 
   std::unique_ptr<DomainReliabilityBeacon> oldest_beacon = MakeBeacon(&time_);
   const DomainReliabilityBeacon* oldest_beacon_ptr = oldest_beacon.get();
-  time_.Advance(base::TimeDelta::FromSeconds(1));
+  time_.Advance(base::Seconds(1));
   context_->OnBeacon(std::move(oldest_beacon));
 
   for (size_t i = 0; i < DomainReliabilityContext::kMaxQueuedBeacons; ++i) {
     std::unique_ptr<DomainReliabilityBeacon> beacon = MakeBeacon(&time_);
-    time_.Advance(base::TimeDelta::FromSeconds(1));
+    time_.Advance(base::Seconds(1));
     context_->OnBeacon(std::move(beacon));
   }
 
diff --git a/components/domain_reliability/monitor_unittest.cc b/components/domain_reliability/monitor_unittest.cc
index f51f05e..09391c36 100644
--- a/components/domain_reliability/monitor_unittest.cc
+++ b/components/domain_reliability/monitor_unittest.cc
@@ -605,7 +605,7 @@
 
   net::LoadTimingInfo load_timing_info;
   url_request->GetLoadTimingInfo(&load_timing_info);
-  base::TimeDelta expected_elapsed = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta expected_elapsed = base::Seconds(1);
   time_->Advance(load_timing_info.request_start - time_->NowTicks() +
                  expected_elapsed);
 
diff --git a/components/domain_reliability/scheduler.cc b/components/domain_reliability/scheduler.cc
index 919cc4e7..86856ab 100644
--- a/components/domain_reliability/scheduler.cc
+++ b/components/domain_reliability/scheduler.cc
@@ -60,13 +60,13 @@
   DomainReliabilityScheduler::Params params;
 
   params.minimum_upload_delay =
-      base::TimeDelta::FromSeconds(GetUnsignedFieldTrialValueOrDefault(
+      base::Seconds(GetUnsignedFieldTrialValueOrDefault(
           kMinimumUploadDelayFieldTrialName, kDefaultMinimumUploadDelaySec));
   params.maximum_upload_delay =
-      base::TimeDelta::FromSeconds(GetUnsignedFieldTrialValueOrDefault(
+      base::Seconds(GetUnsignedFieldTrialValueOrDefault(
           kMaximumUploadDelayFieldTrialName, kDefaultMaximumUploadDelaySec));
   params.upload_retry_interval =
-      base::TimeDelta::FromSeconds(GetUnsignedFieldTrialValueOrDefault(
+      base::Seconds(GetUnsignedFieldTrialValueOrDefault(
           kUploadRetryIntervalFieldTrialName, kDefaultUploadRetryIntervalSec));
 
   return params;
diff --git a/components/domain_reliability/scheduler_unittest.cc b/components/domain_reliability/scheduler_unittest.cc
index 85738cd9..e2dce29 100644
--- a/components/domain_reliability/scheduler_unittest.cc
+++ b/components/domain_reliability/scheduler_unittest.cc
@@ -114,7 +114,7 @@
   TimeDelta min_delay() const { return params_.minimum_upload_delay; }
   TimeDelta max_delay() const { return params_.maximum_upload_delay; }
   TimeDelta retry_interval() const { return params_.upload_retry_interval; }
-  TimeDelta zero_delta() const { return base::TimeDelta::FromMicroseconds(0); }
+  TimeDelta zero_delta() const { return base::Microseconds(0); }
 
  protected:
   void ScheduleUploadCallback(TimeDelta min, TimeDelta max) {
@@ -162,7 +162,7 @@
 TEST_F(DomainReliabilitySchedulerTest, RetryAfter) {
   CreateScheduler(1);
 
-  base::TimeDelta retry_after_interval = base::TimeDelta::FromMinutes(30);
+  base::TimeDelta retry_after_interval = base::Minutes(30);
 
   scheduler_->OnBeaconAdded();
   ASSERT_TRUE(CheckPendingUpload(min_delay(), max_delay()));
diff --git a/components/domain_reliability/test_util.cc b/components/domain_reliability/test_util.cc
index f87c54a4..9b2155dd 100644
--- a/components/domain_reliability/test_util.cc
+++ b/components/domain_reliability/test_util.cc
@@ -174,9 +174,9 @@
 
 DomainReliabilityScheduler::Params MakeTestSchedulerParams() {
   DomainReliabilityScheduler::Params params;
-  params.minimum_upload_delay = base::TimeDelta::FromMinutes(1);
-  params.maximum_upload_delay = base::TimeDelta::FromMinutes(5);
-  params.upload_retry_interval = base::TimeDelta::FromSeconds(15);
+  params.minimum_upload_delay = base::Minutes(1);
+  params.maximum_upload_delay = base::Minutes(5);
+  params.upload_retry_interval = base::Seconds(15);
   return params;
 }
 
diff --git a/components/download/database/download_db_conversions.cc b/components/download/database/download_db_conversions.cc
index a46007df..2f7b317 100644
--- a/components/download/database/download_db_conversions.cc
+++ b/components/download/database/download_db_conversions.cc
@@ -21,8 +21,7 @@
 
 // Converts a time stamp in milliseconds to base::Time.
 base::Time FromMillisecondsToTime(int64_t time_ms) {
-  return base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMilliseconds(time_ms));
+  return base::Time::FromDeltaSinceWindowsEpoch(base::Milliseconds(time_ms));
 }
 
 }  // namespace
diff --git a/components/download/internal/background_service/config.cc b/components/download/internal/background_service/config.cc
index 9fd83d8..2ffd9a6 100644
--- a/components/download/internal/background_service/config.cc
+++ b/components/download/internal/background_service/config.cc
@@ -16,8 +16,7 @@
 namespace {
 
 // Default value for battery query interval.
-const base::TimeDelta kDefaultBatteryQueryInterval =
-    base::TimeDelta::FromSeconds(120);
+const base::TimeDelta kDefaultBatteryQueryInterval = base::Seconds(120);
 
 // Default minimum battery percentage to start download or background task when
 // battery requirement is sensitive.
@@ -40,54 +39,45 @@
 
 // Default value for file keep alive time, keep the file alive for 12 hours by
 // default.
-const base::TimeDelta kDefaultFileKeepAliveTime =
-    base::TimeDelta::FromHours(12);
+const base::TimeDelta kDefaultFileKeepAliveTime = base::Hours(12);
 
 // Default value for maximum duration that the file can be kept alive time,
 // default is 7 days.
-const base::TimeDelta kDefaultMaxFileKeepAliveTime =
-    base::TimeDelta::FromDays(7);
+const base::TimeDelta kDefaultMaxFileKeepAliveTime = base::Days(7);
 
 // Default value for file cleanup window, the system will schedule a cleanup
 // task within this window.
-const base::TimeDelta kDefaultFileCleanupWindow =
-    base::TimeDelta::FromHours(24);
+const base::TimeDelta kDefaultFileCleanupWindow = base::Hours(24);
 
 // Default value for the start window time for OS to schedule background task.
-const base::TimeDelta kDefaultWindowStartTime = base::TimeDelta::FromMinutes(5);
+const base::TimeDelta kDefaultWindowStartTime = base::Minutes(5);
 
 // Default value for the end window time for OS to schedule background task.
-const base::TimeDelta kDefaultWindowEndTime = base::TimeDelta::FromHours(8);
+const base::TimeDelta kDefaultWindowEndTime = base::Hours(8);
 
 // Default value for start up delay to wait for network stack ready.
-const base::TimeDelta kDefaultNetworkStartupDelay =
-    base::TimeDelta::FromSeconds(2);
+const base::TimeDelta kDefaultNetworkStartupDelay = base::Seconds(2);
 
 // Default value for start up delay to wait for network stack ready when
 // triggered from a background task.
 const base::TimeDelta kDefaultNetworkStartupDelayBackgroundTask =
-    base::TimeDelta::FromSeconds(5);
+    base::Seconds(5);
 
 // The default delay to notify the observer when network changes from
 // disconnected to connected.
-const base::TimeDelta kDefaultNetworkChangeDelay =
-    base::TimeDelta::FromSeconds(5);
+const base::TimeDelta kDefaultNetworkChangeDelay = base::Seconds(5);
 
 // The default delay to notify the observer after a navigation completes.
-const base::TimeDelta kDefaultNavigationCompletionDelay =
-    base::TimeDelta::FromSeconds(30);
+const base::TimeDelta kDefaultNavigationCompletionDelay = base::Seconds(30);
 
 // The default timeout for a navigation.
-const base::TimeDelta kDefaultNavigationTimeoutDelay =
-    base::TimeDelta::FromSeconds(300);
+const base::TimeDelta kDefaultNavigationTimeoutDelay = base::Seconds(300);
 
 // The default timeout for a pending upload.
-const base::TimeDelta kDefaultPendingUploadTimeoutDelay =
-    base::TimeDelta::FromSeconds(30);
+const base::TimeDelta kDefaultPendingUploadTimeoutDelay = base::Seconds(30);
 
 // The default value of download retry delay when the download is failed.
-const base::TimeDelta kDefaultDownloadRetryDelay =
-    base::TimeDelta::FromSeconds(20);
+const base::TimeDelta kDefaultDownloadRetryDelay = base::Seconds(20);
 
 // Helper routine to get Finch experiment parameter. If no Finch seed was found,
 // use the |default_value|. The |name| should match an experiment
@@ -104,10 +94,9 @@
 // static
 std::unique_ptr<Configuration> Configuration::CreateFromFinch() {
   std::unique_ptr<Configuration> config(new Configuration());
-  config->battery_query_interval =
-      base::TimeDelta::FromSeconds(base::saturated_cast<int>(
-          GetFinchConfigUInt(kBatteryQueryIntervalConfig,
-                             kDefaultBatteryQueryInterval.InSeconds())));
+  config->battery_query_interval = base::Seconds(base::saturated_cast<int>(
+      GetFinchConfigUInt(kBatteryQueryIntervalConfig,
+                         kDefaultBatteryQueryInterval.InSeconds())));
   config->download_battery_percentage =
       base::saturated_cast<int>(GetFinchConfigUInt(
           kDownloadBatteryPercentageConfig, kDefaultDownloadBatteryPercentage));
@@ -121,55 +110,46 @@
       GetFinchConfigUInt(kMaxRetryCountConfig, kDefaultMaxRetryCount);
   config->max_resumption_count =
       GetFinchConfigUInt(kMaxResumptionCountConfig, kDefaultMaxResumptionCount);
-  config->file_keep_alive_time =
-      base::TimeDelta::FromMinutes(base::saturated_cast<int>(
-          GetFinchConfigUInt(kFileKeepAliveTimeMinutesConfig,
-                             kDefaultFileKeepAliveTime.InMinutes())));
-  config->max_file_keep_alive_time =
-      base::TimeDelta::FromMinutes(base::saturated_cast<int>(
-          GetFinchConfigUInt(kMaxFileKeepAliveTimeMinutesConfig,
-                             kDefaultMaxFileKeepAliveTime.InMinutes())));
-  config->file_cleanup_window =
-      base::TimeDelta::FromMinutes(base::saturated_cast<int>(
-          GetFinchConfigUInt(kFileCleanupWindowMinutesConfig,
-                             kDefaultFileCleanupWindow.InMinutes())));
+  config->file_keep_alive_time = base::Minutes(base::saturated_cast<int>(
+      GetFinchConfigUInt(kFileKeepAliveTimeMinutesConfig,
+                         kDefaultFileKeepAliveTime.InMinutes())));
+  config->max_file_keep_alive_time = base::Minutes(base::saturated_cast<int>(
+      GetFinchConfigUInt(kMaxFileKeepAliveTimeMinutesConfig,
+                         kDefaultMaxFileKeepAliveTime.InMinutes())));
+  config->file_cleanup_window = base::Minutes(base::saturated_cast<int>(
+      GetFinchConfigUInt(kFileCleanupWindowMinutesConfig,
+                         kDefaultFileCleanupWindow.InMinutes())));
   config->window_start_time =
-      base::TimeDelta::FromSeconds(base::saturated_cast<int>(GetFinchConfigUInt(
+      base::Seconds(base::saturated_cast<int>(GetFinchConfigUInt(
           kWindowStartTimeSecondsConfig, kDefaultWindowStartTime.InSeconds())));
   config->window_end_time =
-      base::TimeDelta::FromSeconds(base::saturated_cast<int>(GetFinchConfigUInt(
+      base::Seconds(base::saturated_cast<int>(GetFinchConfigUInt(
           kWindowEndTimeSecondsConfig, kDefaultWindowEndTime.InSeconds())));
-  config->network_startup_delay =
-      base::TimeDelta::FromMilliseconds(base::saturated_cast<int>(
-          GetFinchConfigUInt(kNetworkStartupDelayMsConfig,
-                             kDefaultNetworkStartupDelay.InMilliseconds())));
+  config->network_startup_delay = base::Milliseconds(base::saturated_cast<int>(
+      GetFinchConfigUInt(kNetworkStartupDelayMsConfig,
+                         kDefaultNetworkStartupDelay.InMilliseconds())));
   config->network_startup_delay_backgroud_task =
-      base::TimeDelta::FromMilliseconds(
-          base::saturated_cast<int>(GetFinchConfigUInt(
-              kNetworkStartupDelayBackgroundTaskMsConfig,
-              kDefaultNetworkStartupDelayBackgroundTask.InMilliseconds())));
+      base::Milliseconds(base::saturated_cast<int>(GetFinchConfigUInt(
+          kNetworkStartupDelayBackgroundTaskMsConfig,
+          kDefaultNetworkStartupDelayBackgroundTask.InMilliseconds())));
 
-  config->network_change_delay =
-      base::TimeDelta::FromMilliseconds(base::saturated_cast<int>(
-          GetFinchConfigUInt(kNetworkChangeDelayMsConfig,
-                             kDefaultNetworkChangeDelay.InMilliseconds())));
-  config->navigation_completion_delay =
-      base::TimeDelta::FromSeconds(base::saturated_cast<int>(
-          GetFinchConfigUInt(kNavigationCompletionDelaySecondsConfig,
-                             kDefaultNavigationCompletionDelay.InSeconds())));
-  config->navigation_timeout_delay =
-      base::TimeDelta::FromSeconds(base::saturated_cast<int>(
-          GetFinchConfigUInt(kNavigationTimeoutDelaySecondsConfig,
-                             kDefaultNavigationTimeoutDelay.InSeconds())));
+  config->network_change_delay = base::Milliseconds(base::saturated_cast<int>(
+      GetFinchConfigUInt(kNetworkChangeDelayMsConfig,
+                         kDefaultNetworkChangeDelay.InMilliseconds())));
+  config->navigation_completion_delay = base::Seconds(base::saturated_cast<int>(
+      GetFinchConfigUInt(kNavigationCompletionDelaySecondsConfig,
+                         kDefaultNavigationCompletionDelay.InSeconds())));
+  config->navigation_timeout_delay = base::Seconds(base::saturated_cast<int>(
+      GetFinchConfigUInt(kNavigationTimeoutDelaySecondsConfig,
+                         kDefaultNavigationTimeoutDelay.InSeconds())));
   config->pending_upload_timeout_delay =
-      base::TimeDelta::FromSeconds(base::saturated_cast<int>(
+      base::Seconds(base::saturated_cast<int>(
           GetFinchConfigUInt(kPendingUploadTimeoutDelaySecondsConfig,
                              kDefaultPendingUploadTimeoutDelay.InSeconds())));
 
-  config->download_retry_delay =
-      base::TimeDelta::FromMilliseconds(base::saturated_cast<int>(
-          GetFinchConfigUInt(kDownloadRetryDelayMsConfig,
-                             kDefaultDownloadRetryDelay.InMilliseconds())));
+  config->download_retry_delay = base::Milliseconds(base::saturated_cast<int>(
+      GetFinchConfigUInt(kDownloadRetryDelayMsConfig,
+                         kDefaultDownloadRetryDelay.InMilliseconds())));
   return config;
 }
 
diff --git a/components/download/internal/background_service/controller_impl_unittest.cc b/components/download/internal/background_service/controller_impl_unittest.cc
index 0004a1d..38038f9 100644
--- a/components/download/internal/background_service/controller_impl_unittest.cc
+++ b/components/download/internal/background_service/controller_impl_unittest.cc
@@ -95,7 +95,7 @@
   unsigned int delay = upload_response_delay_[guid];
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE, base::BindOnce(std::move(callback), post_body),
-      base::TimeDelta::FromSeconds(delay));
+      base::Seconds(delay));
 }
 
 void UploadClient::SetUploadResponseDelayForGuid(const std::string& guid,
@@ -158,8 +158,8 @@
     config_ = config.get();
     config_->max_retry_count = 1;
     config_->max_resumption_count = 4;
-    config_->file_keep_alive_time = base::TimeDelta::FromMinutes(10);
-    config_->file_cleanup_window = base::TimeDelta::FromMinutes(5);
+    config_->file_keep_alive_time = base::Minutes(10);
+    config_->file_cleanup_window = base::Minutes(5);
     config_->max_concurrent_downloads = 5;
     config_->max_running_downloads = 5;
     auto logger = std::make_unique<test::EmptyLogger>();
@@ -1020,7 +1020,7 @@
   EXPECT_EQ(completion_info.path, updated_entry->target_file_path);
   EXPECT_EQ(now, updated_entry->completion_time);
   EXPECT_LE(done_dentry.completion_time + config_->file_keep_alive_time,
-            now + base::TimeDelta::FromSeconds(start_time));
+            now + base::Seconds(start_time));
   EXPECT_EQ(completion_info.hash256, done_dentry.hash256);
   task_runner_->RunUntilIdle();
 }
@@ -1119,20 +1119,19 @@
   // File keep alive time is 10 minutes.
   // entry1 should be ignored.
   Entry entry1 = test::BuildBasicEntry(Entry::State::ACTIVE);
-  entry1.completion_time = base::Time::Now() - base::TimeDelta::FromMinutes(7);
+  entry1.completion_time = base::Time::Now() - base::Minutes(7);
   entry1.last_cleanup_check_time = entry1.completion_time;
   Entry entry2 = test::BuildBasicEntry(Entry::State::COMPLETE);
-  entry2.completion_time = base::Time::Now() - base::TimeDelta::FromMinutes(1);
+  entry2.completion_time = base::Time::Now() - base::Minutes(1);
   entry2.last_cleanup_check_time = entry2.completion_time;
   Entry entry3 = test::BuildBasicEntry(Entry::State::COMPLETE);
-  entry3.completion_time = base::Time::Now() - base::TimeDelta::FromMinutes(2);
+  entry3.completion_time = base::Time::Now() - base::Minutes(2);
   entry3.last_cleanup_check_time = entry3.completion_time;
 
   // For entry4, keep_alive_until time should be considered instead.
   Entry entry4 = test::BuildBasicEntry(Entry::State::COMPLETE);
-  entry4.completion_time = base::Time::Now() - base::TimeDelta::FromMinutes(5);
-  entry4.last_cleanup_check_time =
-      base::Time::Now() - base::TimeDelta::FromMinutes(1);
+  entry4.completion_time = base::Time::Now() - base::Minutes(5);
+  entry4.last_cleanup_check_time = base::Time::Now() - base::Minutes(1);
   std::vector<Entry> entries = {entry1, entry2, entry3, entry4};
 
   // Setup download driver test data.
@@ -1273,7 +1272,7 @@
   Entry entry3 = create_entry(50);
   Entry entry4 = create_entry(10);
   Entry entry5 = create_entry(25);
-  config_->pending_upload_timeout_delay = base::TimeDelta::FromSeconds(30);
+  config_->pending_upload_timeout_delay = base::Seconds(30);
   config_->max_concurrent_downloads = 8u;
   config_->max_running_downloads = 8u;
   config_->max_retry_count = 4u;
@@ -1299,7 +1298,7 @@
   verify_entry(entry5.guid, Entry::State::ACTIVE, absl::nullopt, false);
 
   // At 20 seconds.
-  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(20));
+  task_runner_->FastForwardBy(base::Seconds(20));
 
   // Test that entry1 is marked as upload and is in progress.
   verify_entry(entry1.guid, Entry::State::ACTIVE,
@@ -1328,7 +1327,7 @@
   verify_entry(entry2.guid, absl::nullopt, absl::nullopt, false);
 
   // At 25 seconds.
-  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_runner_->FastForwardBy(base::Seconds(5));
 
   // Entry2, entry5 receive client response.
   verify_entry(entry2.guid, absl::nullopt, absl::nullopt, false);
@@ -1341,7 +1340,7 @@
       .Times(1);
 
   // At 40 seconds.
-  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(15));
+  task_runner_->FastForwardBy(base::Seconds(15));
   verify_entry(entry3.guid, absl::nullopt, absl::nullopt, false);
 
   // Test network failure for entry4. First check the entry is in progress.
@@ -1364,7 +1363,7 @@
   verify_entry(entry5.guid, Entry::State::ACTIVE, absl::nullopt, true);
 
   // At 65 seconds. Entry5 receives data for the second time and continues.
-  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(25));
+  task_runner_->FastForwardBy(base::Seconds(25));
   verify_entry(entry5.guid, Entry::State::ACTIVE,
                DriverEntry::State::IN_PROGRESS, true);
 }
@@ -1789,15 +1788,13 @@
 TEST_F(DownloadServiceControllerImplTest, CancelTimeTest) {
   Entry entry1 = test::BuildBasicEntry();
   entry1.state = Entry::State::ACTIVE;
-  entry1.create_time = base::Time::Now() - base::TimeDelta::FromSeconds(10);
-  entry1.scheduling_params.cancel_time =
-      base::Time::Now() - base::TimeDelta::FromSeconds(5);
+  entry1.create_time = base::Time::Now() - base::Seconds(10);
+  entry1.scheduling_params.cancel_time = base::Time::Now() - base::Seconds(5);
 
   Entry entry2 = test::BuildBasicEntry();
   entry2.state = Entry::State::COMPLETE;
-  entry2.create_time = base::Time::Now() - base::TimeDelta::FromSeconds(10);
-  entry2.scheduling_params.cancel_time =
-      base::Time::Now() - base::TimeDelta::FromSeconds(2);
+  entry2.create_time = base::Time::Now() - base::Seconds(10);
+  entry2.scheduling_params.cancel_time = base::Time::Now() - base::Seconds(2);
   entry2.completion_time = base::Time::Now();
   std::vector<Entry> entries = {entry1, entry2};
 
@@ -1815,41 +1812,38 @@
 }
 
 TEST_F(DownloadServiceControllerImplTest, RemoveCleanupEligibleDownloads) {
-  config_->file_keep_alive_time = base::TimeDelta::FromMinutes(5);
-  config_->max_file_keep_alive_time = base::TimeDelta::FromMinutes(50);
+  config_->file_keep_alive_time = base::Minutes(5);
+  config_->max_file_keep_alive_time = base::Minutes(50);
 
   Entry entry1 = test::BuildBasicEntry(Entry::State::ACTIVE);
   entry1.client = DownloadClient::TEST_2;
 
   Entry entry2 = test::BuildBasicEntry(Entry::State::COMPLETE);
-  entry2.completion_time = base::Time::Now() - base::TimeDelta::FromMinutes(2);
+  entry2.completion_time = base::Time::Now() - base::Minutes(2);
   entry2.last_cleanup_check_time = entry2.completion_time;
   entry2.client = DownloadClient::TEST_2;
 
   Entry entry3 = test::BuildBasicEntry(Entry::State::COMPLETE);
-  entry3.completion_time = base::Time::Now() - base::TimeDelta::FromMinutes(20);
+  entry3.completion_time = base::Time::Now() - base::Minutes(20);
   entry3.last_cleanup_check_time = entry3.completion_time;
   entry3.client = DownloadClient::TEST_2;
 
   // last_cleanup_check_time was recent and enough time hasn't passed.
   Entry entry4 = test::BuildBasicEntry(Entry::State::COMPLETE);
-  entry4.completion_time = base::Time::Now() - base::TimeDelta::FromMinutes(20);
-  entry4.last_cleanup_check_time =
-      base::Time::Now() - base::TimeDelta::FromMinutes(2);
+  entry4.completion_time = base::Time::Now() - base::Minutes(20);
+  entry4.last_cleanup_check_time = base::Time::Now() - base::Minutes(2);
   entry4.client = DownloadClient::TEST_2;
 
   // Client doesn't want to delete.
   Entry entry5 = test::BuildBasicEntry(Entry::State::COMPLETE);
-  entry5.completion_time = base::Time::Now() - base::TimeDelta::FromMinutes(45);
-  entry5.last_cleanup_check_time =
-      base::Time::Now() - base::TimeDelta::FromMinutes(20);
+  entry5.completion_time = base::Time::Now() - base::Minutes(45);
+  entry5.last_cleanup_check_time = base::Time::Now() - base::Minutes(20);
   entry5.client = DownloadClient::TEST;
 
   // Client doesn't want to delete, but entry has gotten too many life times.
   Entry entry6 = test::BuildBasicEntry(Entry::State::COMPLETE);
-  entry6.completion_time = base::Time::Now() - base::TimeDelta::FromMinutes(80);
-  entry6.last_cleanup_check_time =
-      base::Time::Now() - base::TimeDelta::FromMinutes(20);
+  entry6.completion_time = base::Time::Now() - base::Minutes(80);
+  entry6.last_cleanup_check_time = base::Time::Now() - base::Minutes(20);
   entry6.client = DownloadClient::TEST;
 
   std::vector<Entry> entries = {entry1, entry2, entry3, entry4, entry5, entry6};
diff --git a/components/download/internal/background_service/ios/background_download_service_impl.cc b/components/download/internal/background_service/ios/background_download_service_impl.cc
index 19944e9..7f2c42a9 100644
--- a/components/download/internal/background_service/ios/background_download_service_impl.cc
+++ b/components/download/internal/background_service/ios/background_download_service_impl.cc
@@ -28,7 +28,7 @@
 namespace {
 
 // Interval to throttle the download update that results in a database update.
-const base::TimeDelta kUpdateInterval = base::TimeDelta::FromSeconds(5);
+const base::TimeDelta kUpdateInterval = base::Seconds(5);
 
 }  // namespace
 
diff --git a/components/download/internal/background_service/ios/background_download_service_impl_unittest.cc b/components/download/internal/background_service/ios/background_download_service_impl_unittest.cc
index 956544a..f3541b0 100644
--- a/components/download/internal/background_service/ios/background_download_service_impl_unittest.cc
+++ b/components/download/internal/background_service/ios/background_download_service_impl_unittest.cc
@@ -194,7 +194,7 @@
   entry_expired.client = DownloadClient::TEST;
   entry_expired.state = Entry::State::COMPLETE;
   entry_expired.guid = kGuid2;
-  entry_expired.create_time = clock_.Now() - base::TimeDelta::FromDays(300);
+  entry_expired.create_time = clock_.Now() - base::Days(300);
   entries->emplace_back(std::move(entry_expired));
 
   // Build a completed entry that should be kept.
@@ -279,7 +279,7 @@
   service()->StartDownload(std::move(download_params));
 
   // Advance the time to make sure the update is not throttled.
-  clock_.Advance(base::TimeDelta::FromSeconds(11));
+  clock_.Advance(base::Seconds(11));
   store_->TriggerUpdate(/*success=*/true);
   EXPECT_EQ(kGuid, store_->LastUpdatedEntry()->guid);
   EXPECT_EQ(10u, store_->LastUpdatedEntry()->bytes_downloaded);
diff --git a/components/download/internal/background_service/navigation_monitor_impl_unittests.cc b/components/download/internal/background_service/navigation_monitor_impl_unittests.cc
index 3efa44d..676e96a 100644
--- a/components/download/internal/background_service/navigation_monitor_impl_unittests.cc
+++ b/components/download/internal/background_service/navigation_monitor_impl_unittests.cc
@@ -43,7 +43,7 @@
         FROM_HERE,
         base::BindOnce(&TestNavigationMonitorObserver::VerifyNavigationState,
                        weak_ptr_factory_.GetWeakPtr(), expected),
-        base::TimeDelta::FromMilliseconds(millis));
+        base::Milliseconds(millis));
   }
 
  private:
@@ -68,8 +68,8 @@
     navigation_monitor_ = std::make_unique<NavigationMonitorImpl>();
     observer_ = std::make_unique<TestNavigationMonitorObserver>(
         task_runner_, navigation_monitor_.get());
-    navigation_monitor_->Configure(base::TimeDelta::FromMilliseconds(20),
-                                   base::TimeDelta::FromMilliseconds(200));
+    navigation_monitor_->Configure(base::Milliseconds(20),
+                                   base::Milliseconds(200));
   }
 
   void TearDown() override {
@@ -88,7 +88,7 @@
         FROM_HERE,
         base::BindOnce(&NavigationMonitorImplTest::SendNavigationEvent,
                        weak_ptr_factory_.GetWeakPtr(), event),
-        base::TimeDelta::FromMilliseconds(millis));
+        base::Milliseconds(millis));
   }
 
  protected:
diff --git a/components/download/internal/background_service/scheduler/device_status_listener_unittest.cc b/components/download/internal/background_service/scheduler/device_status_listener_unittest.cc
index fa9762f..b8d99770 100644
--- a/components/download/internal/background_service/scheduler/device_status_listener_unittest.cc
+++ b/components/download/internal/background_service/scheduler/device_status_listener_unittest.cc
@@ -181,8 +181,8 @@
   ChangeNetworkType(ConnectionType::CONNECTION_NONE);
   SimulateBatteryChange(true); /* Not charging. */
   EXPECT_EQ(DeviceStatus(), listener_->CurrentDeviceStatus());
-  const auto acutual_delay = base::TimeDelta::FromSeconds(0);
-  listener_->Start(base::TimeDelta::FromSeconds(1));
+  const auto acutual_delay = base::Seconds(0);
+  listener_->Start(base::Seconds(1));
   listener_->Start(acutual_delay);
   EXPECT_CALL(mock_observer_, OnDeviceStatusChanged(_)).Times(1);
   base::RunLoop().RunUntilIdle();
diff --git a/components/download/internal/background_service/scheduler/scheduler_impl_unittest.cc b/components/download/internal/background_service/scheduler/scheduler_impl_unittest.cc
index 3dcb935..6ce8e20 100644
--- a/components/download/internal/background_service/scheduler/scheduler_impl_unittest.cc
+++ b/components/download/internal/background_service/scheduler/scheduler_impl_unittest.cc
@@ -351,7 +351,7 @@
   entries_[0].create_time = base::Time::Now();
   entries_[1].client = DownloadClient::TEST;
   entries_[1].scheduling_params.priority = SchedulingParams::Priority::LOW;
-  entries_[1].create_time = base::Time::Now() - base::TimeDelta::FromDays(1);
+  entries_[1].create_time = base::Time::Now() - base::Days(1);
   entries_[2].client = DownloadClient::TEST;
   entries_[2].scheduling_params.priority = SchedulingParams::Priority::LOW;
   entries_[2].create_time = base::Time::Now();
diff --git a/components/download/internal/background_service/service_config_impl_unittest.cc b/components/download/internal/background_service/service_config_impl_unittest.cc
index b310666..dcc5095 100644
--- a/components/download/internal/background_service/service_config_impl_unittest.cc
+++ b/components/download/internal/background_service/service_config_impl_unittest.cc
@@ -14,7 +14,7 @@
 
   config.max_scheduled_downloads = 7;
   config.max_concurrent_downloads = 12;
-  config.file_keep_alive_time = base::TimeDelta::FromSeconds(12);
+  config.file_keep_alive_time = base::Seconds(12);
 
   EXPECT_EQ(config.max_scheduled_downloads,
             impl.GetMaxScheduledDownloadsPerClient());
diff --git a/components/download/internal/background_service/stats.cc b/components/download/internal/background_service/stats.cc
index 1607068..5183d33 100644
--- a/components/download/internal/background_service/stats.cc
+++ b/components/download/internal/background_service/stats.cc
@@ -231,8 +231,7 @@
 
 void LogFileLifeTime(const base::TimeDelta& file_life_time) {
   UMA_HISTOGRAM_CUSTOM_TIMES("Download.Service.Files.LifeTime", file_life_time,
-                             base::TimeDelta::FromSeconds(1),
-                             base::TimeDelta::FromDays(8), 100);
+                             base::Seconds(1), base::Days(8), 100);
 }
 
 void LogEntryEvent(DownloadEvent event) {
diff --git a/components/download/internal/common/download_db_cache.cc b/components/download/internal/common/download_db_cache.cc
index 51e7269..3b545e5e 100644
--- a/components/download/internal/common/download_db_cache.cc
+++ b/components/download/internal/common/download_db_cache.cc
@@ -150,8 +150,7 @@
     return;
   if (!update_timer_.IsRunning() &&
       result == ShouldUpdateDownloadDBResult::UPDATE) {
-    update_timer_.Start(FROM_HERE,
-                        base::TimeDelta::FromMilliseconds(kUpdateDBIntervalMs),
+    update_timer_.Start(FROM_HERE, base::Milliseconds(kUpdateDBIntervalMs),
                         this, &DownloadDBCache::UpdateDownloadDB);
   }
 
diff --git a/components/download/internal/common/download_file_impl.cc b/components/download/internal/common/download_file_impl.cc
index 729108e..a856532f 100644
--- a/components/download/internal/common/download_file_impl.cc
+++ b/components/download/internal/common/download_file_impl.cc
@@ -401,8 +401,7 @@
   // 2 at each subsequent retry. Assumes that |retries_left| starts at
   // kMaxRenameRetries. Also assumes that kMaxRenameRetries is less than the
   // number of bits in an int.
-  return base::TimeDelta::FromMilliseconds(kInitialRenameRetryDelayMs) *
-         (1 << attempt_number);
+  return base::Milliseconds(kInitialRenameRetryDelayMs) * (1 << attempt_number);
 }
 
 bool DownloadFileImpl::ShouldRetryFailedRename(DownloadInterruptReason reason) {
@@ -576,8 +575,7 @@
   bool should_terminate = false;
   InputStream::StreamState state(InputStream::EMPTY);
   DownloadInterruptReason reason = DOWNLOAD_INTERRUPT_REASON_NONE;
-  base::TimeDelta delta(
-      base::TimeDelta::FromMilliseconds(kMaxTimeBlockingFileThreadMs));
+  base::TimeDelta delta(base::Milliseconds(kMaxTimeBlockingFileThreadMs));
   // Take care of any file local activity required.
   do {
     state = source_stream->Read(&incoming_data, &incoming_data_size);
@@ -741,9 +739,8 @@
 
 void DownloadFileImpl::WillWriteToDisk(size_t data_len) {
   if (!update_timer_->IsRunning()) {
-    update_timer_->Start(FROM_HERE,
-                         base::TimeDelta::FromMilliseconds(kUpdatePeriodMs),
-                         this, &DownloadFileImpl::SendUpdate);
+    update_timer_->Start(FROM_HERE, base::Milliseconds(kUpdatePeriodMs), this,
+                         &DownloadFileImpl::SendUpdate);
   }
   rate_estimator_.Increment(data_len);
 }
diff --git a/components/download/internal/common/download_file_unittest.cc b/components/download/internal/common/download_file_unittest.cc
index 0d1618a..3b5ceac 100644
--- a/components/download/internal/common/download_file_unittest.cc
+++ b/components/download/internal/common/download_file_unittest.cc
@@ -119,7 +119,7 @@
 
  protected:
   base::TimeDelta GetRetryDelayForFailedRename(int attempt_count) override {
-    return base::TimeDelta::FromMilliseconds(0);
+    return base::Milliseconds(0);
   }
 
 #if !defined(OS_WIN)
diff --git a/components/download/internal/common/download_item_impl.cc b/components/download/internal/common/download_item_impl.cc
index 74d9c5a..b744024b 100644
--- a/components/download/internal/common/download_item_impl.cc
+++ b/components/download/internal/common/download_item_impl.cc
@@ -1049,8 +1049,7 @@
   if (speed == 0)
     return false;
 
-  *remaining =
-      base::TimeDelta::FromSeconds((total_bytes_ - GetReceivedBytes()) / speed);
+  *remaining = base::Seconds((total_bytes_ - GetReceivedBytes()) / speed);
   return true;
 }
 
diff --git a/components/download/internal/common/download_item_impl_unittest.cc b/components/download/internal/common/download_item_impl_unittest.cc
index fc0ce4f4..5454bc8 100644
--- a/components/download/internal/common/download_item_impl_unittest.cc
+++ b/components/download/internal/common/download_item_impl_unittest.cc
@@ -2701,7 +2701,7 @@
   params.push_back(
       {false, absl::nullopt, true, DownloadItem::IN_PROGRESS, true});
   // Download later, will be interrupted.
-  auto future_time = base::Time::Now() + base::TimeDelta::FromDays(10);
+  auto future_time = base::Time::Now() + base::Days(10);
   params.push_back({false, future_time, true, DownloadItem::INTERRUPTED, true});
   return params;
 }
@@ -2803,7 +2803,7 @@
   auto item = CreateDownloadItem(DownloadItem::DownloadState::INTERRUPTED,
                                  DOWNLOAD_INTERRUPT_REASON_CRASH);
   auto download_schedule = absl::make_optional<DownloadSchedule>(
-      false, base::Time::Now() + base::TimeDelta::FromDays(10));
+      false, base::Time::Now() + base::Days(10));
   item->OnDownloadScheduleChanged(std::move(download_schedule));
 
   EXPECT_EQ(item->GetState(), DownloadItem::DownloadState::INTERRUPTED);
diff --git a/components/download/internal/common/download_ukm_helper_unittest.cc b/components/download/internal/common/download_ukm_helper_unittest.cc
index edf6dea0..3b155fc 100644
--- a/components/download/internal/common/download_ukm_helper_unittest.cc
+++ b/components/download/internal/common/download_ukm_helper_unittest.cc
@@ -85,7 +85,7 @@
   int bytes_wasted = 1234;
   DownloadUkmHelper::RecordDownloadInterrupted(
       download_id_, change_in_file_size, reason, resulting_file_size,
-      base::TimeDelta::FromMilliseconds(time_since_start), bytes_wasted);
+      base::Milliseconds(time_since_start), bytes_wasted);
 
   ExpectUkmMetrics(
       UkmDownloadInterrupted::kEntryName,
@@ -105,8 +105,7 @@
   ResumeMode mode = ResumeMode::IMMEDIATE_RESTART;
   int time_since_start_resume = 300;
   DownloadUkmHelper::RecordDownloadResumed(
-      download_id_, mode,
-      base::TimeDelta::FromMilliseconds(time_since_start_resume));
+      download_id_, mode, base::Milliseconds(time_since_start_resume));
 
   ExpectUkmMetrics(
       UkmDownloadResumed::kEntryName,
@@ -120,8 +119,7 @@
   int bytes_wasted_completed = 2345;
   DownloadUkmHelper::RecordDownloadCompleted(
       download_id_, resulting_file_size_completed,
-      base::TimeDelta::FromMilliseconds(time_since_start_completed),
-      bytes_wasted_completed);
+      base::Milliseconds(time_since_start_completed), bytes_wasted_completed);
 
   ExpectUkmMetrics(
       UkmDownloadCompleted::kEntryName,
diff --git a/components/download/internal/common/download_utils.cc b/components/download/internal/common/download_utils.cc
index fe12314..666deb4 100644
--- a/components/download/internal/common/download_utils.cc
+++ b/components/download/internal/common/download_utils.cc
@@ -654,7 +654,7 @@
   int expired_days = base::GetFieldTrialParamByFeatureAsInt(
       features::kDeleteExpiredDownloads, kExpiredDownloadDeleteTimeFinchKey,
       kDefaultDownloadExpiredTimeInDays);
-  return base::TimeDelta::FromDays(expired_days);
+  return base::Days(expired_days);
 }
 
 base::TimeDelta GetOverwrittenDownloadDeleteTime() {
@@ -662,7 +662,7 @@
       features::kDeleteOverwrittenDownloads,
       kOverwrittenDownloadDeleteTimeFinchKey,
       kDefaultOverwrittenDownloadExpiredTimeInDays);
-  return base::TimeDelta::FromDays(expired_days);
+  return base::Days(expired_days);
 }
 
 int GetDownloadFileBufferSize() {
diff --git a/components/download/internal/common/parallel_download_utils.cc b/components/download/internal/common/parallel_download_utils.cc
index 5aa3ad6..8623a6f 100644
--- a/components/download/internal/common/parallel_download_utils.cc
+++ b/components/download/internal/common/parallel_download_utils.cc
@@ -179,8 +179,8 @@
       features::kParallelDownloading, kParallelRequestDelayFinchKey);
   int64_t time_ms = 0;
   return base::StringToInt64(finch_value, &time_ms)
-             ? base::TimeDelta::FromMilliseconds(time_ms)
-             : base::TimeDelta::FromMilliseconds(0);
+             ? base::Milliseconds(time_ms)
+             : base::Milliseconds(0);
 }
 
 base::TimeDelta GetParallelRequestRemainingTimeConfig() {
@@ -188,8 +188,8 @@
       features::kParallelDownloading, kParallelRequestRemainingTimeFinchKey);
   int time_in_seconds = 0;
   return base::StringToInt(finch_value, &time_in_seconds)
-             ? base::TimeDelta::FromSeconds(time_in_seconds)
-             : base::TimeDelta::FromSeconds(kDefaultRemainingTimeInSeconds);
+             ? base::Seconds(time_in_seconds)
+             : base::Seconds(kDefaultRemainingTimeInSeconds);
 }
 
 int64_t GetMaxContiguousDataBlockSizeFromBeginning(
diff --git a/components/download/internal/common/parallel_download_utils_unittest.cc b/components/download/internal/common/parallel_download_utils_unittest.cc
index e35f884..394d82f5 100644
--- a/components/download/internal/common/parallel_download_utils_unittest.cc
+++ b/components/download/internal/common/parallel_download_utils_unittest.cc
@@ -340,9 +340,8 @@
   EXPECT_TRUE(IsParallelDownloadEnabled());
   EXPECT_EQ(GetMinSliceSizeConfig(), 1234);
   EXPECT_EQ(GetParallelRequestCountConfig(), 6);
-  EXPECT_EQ(GetParallelRequestDelayConfig(), base::TimeDelta::FromSeconds(2));
-  EXPECT_EQ(GetParallelRequestRemainingTimeConfig(),
-            base::TimeDelta::FromSeconds(3));
+  EXPECT_EQ(GetParallelRequestDelayConfig(), base::Seconds(2));
+  EXPECT_EQ(GetParallelRequestRemainingTimeConfig(), base::Seconds(3));
 }
 
 // Test to verify the disable experiment group will actually disable the
diff --git a/components/download/public/background_service/basic_task_scheduler.cc b/components/download/public/background_service/basic_task_scheduler.cc
index d39f170..1e952c1 100644
--- a/components/download/public/background_service/basic_task_scheduler.cc
+++ b/components/download/public/background_service/basic_task_scheduler.cc
@@ -32,7 +32,7 @@
                      weak_factory_.GetWeakPtr(), task_type));
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE, scheduled_tasks_[task_type].callback(),
-      base::TimeDelta::FromSeconds(window_start_time_seconds));
+      base::Seconds(window_start_time_seconds));
 }
 
 void BasicTaskScheduler::CancelTask(download::DownloadTaskType task_type) {
diff --git a/components/download/public/common/auto_resumption_handler.cc b/components/download/public/common/auto_resumption_handler.cc
index 5393be5..7296b1f1 100644
--- a/components/download/public/common/auto_resumption_handler.cc
+++ b/components/download/public/common/auto_resumption_handler.cc
@@ -27,23 +27,19 @@
 
 // The delay to wait for after a chrome restart before resuming all pending
 // downloads so that tab loading doesn't get impacted.
-const base::TimeDelta kAutoResumeStartupDelay =
-    base::TimeDelta::FromSeconds(10);
+const base::TimeDelta kAutoResumeStartupDelay = base::Seconds(10);
 
 // The interval at which various download updates are grouped together for
 // computing the params for the task scheduler.
-const base::TimeDelta kBatchDownloadUpdatesInterval =
-    base::TimeDelta::FromSeconds(1);
+const base::TimeDelta kBatchDownloadUpdatesInterval = base::Seconds(1);
 
 // The delay to wait for before immediately retrying a download after it got
 // interrupted due to network reasons.
-const base::TimeDelta kDownloadImmediateRetryDelay =
-    base::TimeDelta::FromSeconds(1);
+const base::TimeDelta kDownloadImmediateRetryDelay = base::Seconds(1);
 
 // Any downloads started before this interval will be ignored. User scheduled
 // download will not be affected.
-const base::TimeDelta kAutoResumptionExpireInterval =
-    base::TimeDelta::FromDays(7);
+const base::TimeDelta kAutoResumptionExpireInterval = base::Days(7);
 
 // The task type to use for scheduling a task.
 const download::DownloadTaskType kResumptionTaskType =
diff --git a/components/download/public/common/auto_resumption_handler_unittest.cc b/components/download/public/common/auto_resumption_handler_unittest.cc
index 589a19b..b701699 100644
--- a/components/download/public/common/auto_resumption_handler_unittest.cc
+++ b/components/download/public/common/auto_resumption_handler_unittest.cc
@@ -116,7 +116,7 @@
 
     // Make sure the item won't be expired and ignored.
     ON_CALL(*download, GetStartTime())
-        .WillByDefault(Return(GetNow() - base::TimeDelta::FromDays(1)));
+        .WillByDefault(Return(GetNow() - base::Days(1)));
   }
 
   void SetNetworkConnectionType(ConnectionType connection_type) {
@@ -291,7 +291,7 @@
   SetNetworkConnectionType(ConnectionType::CONNECTION_WIFI);
 
   // Create a normal expired download.
-  base::Time expired_start_time = GetNow() - base::TimeDelta::FromDays(100);
+  base::Time expired_start_time = GetNow() - base::Days(100);
   auto item0 = std::make_unique<NiceMock<MockDownloadItem>>();
   SetDownloadState(item0.get(), DownloadItem::INTERRUPTED, false, false);
   ON_CALL(*item0.get(), GetStartTime())
@@ -337,7 +337,7 @@
 TEST_F(AutoResumptionHandlerTest, DownloadLaterStartFutureNotAutoResumed) {
   SetNetworkConnectionType(ConnectionType::CONNECTION_WIFI);
   auto item = std::make_unique<NiceMock<MockDownloadItem>>();
-  auto delta = base::TimeDelta::FromDays(10);
+  auto delta = base::Days(10);
   base::Time future_time = GetNow() + delta;
   SetDownloadState(item.get(), DownloadItem::INTERRUPTED, false, false);
   SetDownloadSchedule(item.get(),
diff --git a/components/download/public/common/download_schedule_unittest.cc b/components/download/public/common/download_schedule_unittest.cc
index 5c97ca1..c22b552c 100644
--- a/components/download/public/common/download_schedule_unittest.cc
+++ b/components/download/public/common/download_schedule_unittest.cc
@@ -20,7 +20,7 @@
   EXPECT_EQ(download_schedule.start_time(), absl::nullopt);
 
   auto time = absl::make_optional(
-      base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromDays(1)));
+      base::Time::FromDeltaSinceWindowsEpoch(base::Days(1)));
   download_schedule = DownloadSchedule(false, time);
   EXPECT_FALSE(download_schedule.only_on_wifi());
   EXPECT_EQ(download_schedule.start_time(), time);
diff --git a/components/drive/drive_notification_manager.cc b/components/drive/drive_notification_manager.cc
index 2da63a2d..b937e6e 100644
--- a/components/drive/drive_notification_manager.cc
+++ b/components/drive/drive_notification_manager.cc
@@ -196,7 +196,7 @@
 
   polling_timer_.Stop();
   polling_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromSeconds(interval_secs + jitter),
+      FROM_HERE, base::Seconds(interval_secs + jitter),
       base::BindOnce(&DriveNotificationManager::NotifyObserversToUpdate,
                      weak_ptr_factory_.GetWeakPtr(), NOTIFICATION_POLLING,
                      std::map<std::string, int64_t>()));
@@ -209,8 +209,7 @@
 
   batch_timer_.Stop();
   batch_timer_.Start(
-      FROM_HERE,
-      base::TimeDelta::FromSeconds(kInvalidationBatchIntervalSecs + jitter),
+      FROM_HERE, base::Seconds(kInvalidationBatchIntervalSecs + jitter),
       base::BindOnce(&DriveNotificationManager::OnBatchTimerExpired,
                      weak_ptr_factory_.GetWeakPtr()));
 }
diff --git a/components/drive/drive_notification_manager_unittest.cc b/components/drive/drive_notification_manager_unittest.cc
index 0a679671d..be9d7eb 100644
--- a/components/drive/drive_notification_manager_unittest.cc
+++ b/components/drive/drive_notification_manager_unittest.cc
@@ -165,7 +165,7 @@
       invalidation::Invalidation::InitUnknownVersion(kDefaultCorpusTopic));
   EXPECT_TRUE(drive_notification_observer_->GetNotificationIds().empty());
 
-  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(30));
+  task_runner_->FastForwardBy(base::Seconds(30));
 
   // Default corpus is has the id "" when sent to observers.
   std::map<std::string, int64_t> expected_ids = {{"", -1}};
@@ -184,7 +184,7 @@
       invalidation::Invalidation::Init(kDefaultCorpusTopic, 1, ""));
   EXPECT_TRUE(drive_notification_observer_->GetNotificationIds().empty());
 
-  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(30));
+  task_runner_->FastForwardBy(base::Seconds(30));
 
   // Default corpus is has the id "" when sent to observers.
   expected_ids = {{"", 2}};
@@ -196,7 +196,7 @@
       invalidation::Invalidation::Init(team_drive_1_topic, 2, ""));
   EXPECT_TRUE(drive_notification_observer_->GetNotificationIds().empty());
 
-  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(30));
+  task_runner_->FastForwardBy(base::Seconds(30));
   expected_ids = {{team_drive_id_1, 2}};
   EXPECT_EQ(expected_ids, drive_notification_observer_->GetNotificationIds());
   drive_notification_observer_->ClearNotificationIds();
@@ -217,7 +217,7 @@
 
   EXPECT_TRUE(drive_notification_observer_->GetNotificationIds().empty());
 
-  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(30));
+  task_runner_->FastForwardBy(base::Seconds(30));
   expected_ids = {{"", 2}, {team_drive_id_1, 2}};
   EXPECT_EQ(expected_ids, drive_notification_observer_->GetNotificationIds());
 }
diff --git a/components/drive/service/fake_drive_service.cc b/components/drive/service/fake_drive_service.cc
index 66cbe95..2dd606c 100644
--- a/components/drive/service/fake_drive_service.cc
+++ b/components/drive/service/fake_drive_service.cc
@@ -1688,12 +1688,10 @@
   AddNewChangestamp(new_change, team_drive_id);
   UpdateETag(new_file);
 
-  new_file->set_created_date(base::Time() +
-                             base::TimeDelta::FromMilliseconds(++date_seq_));
-  new_file->set_modified_by_me_date(
-      base::Time() + base::TimeDelta::FromMilliseconds(++date_seq_));
-  new_file->set_modified_date(base::Time() +
-                              base::TimeDelta::FromMilliseconds(++date_seq_));
+  new_file->set_created_date(base::Time() + base::Milliseconds(++date_seq_));
+  new_file->set_modified_by_me_date(base::Time() +
+                                    base::Milliseconds(++date_seq_));
+  new_file->set_modified_date(base::Time() + base::Milliseconds(++date_seq_));
 
   EntryInfo* raw_new_entry = new_entry.get();
   entries_[resource_id] = std::move(new_entry);
@@ -1724,8 +1722,7 @@
 
   AddNewChangestamp(&change, std::string());
 
-  change.set_modification_date(base::Time() +
-                               base::TimeDelta::FromMilliseconds(++date_seq_));
+  change.set_modification_date(base::Time() + base::Milliseconds(++date_seq_));
 
   EntryInfo* raw_new_entry = new_entry.get();
   entries_[team_drive_id] = std::move(new_entry);
diff --git a/components/embedder_support/android/metrics/android_metrics_service_client.cc b/components/embedder_support/android/metrics/android_metrics_service_client.cc
index 2f6a491..bdbeadf 100644
--- a/components/embedder_support/android/metrics/android_metrics_service_client.cc
+++ b/components/embedder_support/android/metrics/android_metrics_service_client.cc
@@ -500,7 +500,7 @@
   base::StatisticsRecorder::ImportProvidedHistograms();
 
   base::TimeDelta timeout =
-      base::TimeDelta::FromMilliseconds(kMaxHistogramGatheringWaitDuration);
+      base::Milliseconds(kMaxHistogramGatheringWaitDuration);
 
   // Set up the callback task to call after we receive histograms from all
   // child processes. |timeout| specifies how long to wait before absolutely
diff --git a/components/enterprise/browser/reporting/report_scheduler.cc b/components/enterprise/browser/reporting/report_scheduler.cc
index df9c424be..6bcd1344 100644
--- a/components/enterprise/browser/reporting/report_scheduler.cc
+++ b/components/enterprise/browser/reporting/report_scheduler.cc
@@ -29,7 +29,7 @@
 namespace {
 
 constexpr base::TimeDelta kDefaultUploadInterval =
-    base::TimeDelta::FromHours(24);  // Default upload interval is 24 hours.
+    base::Hours(24);           // Default upload interval is 24 hours.
 const int kMaximumRetry = 10;  // Retry 10 times takes about 15 to 19 hours.
 
 bool IsBrowserVersionUploaded(ReportScheduler::ReportTrigger trigger) {
diff --git a/components/enterprise/browser/reporting/report_uploader_unittest.cc b/components/enterprise/browser/reporting/report_uploader_unittest.cc
index b0c58f4d..1d68e4b 100644
--- a/components/enterprise/browser/reporting/report_uploader_unittest.cc
+++ b/components/enterprise/browser/reporting/report_uploader_unittest.cc
@@ -92,11 +92,10 @@
                 task_environment_.NextMainThreadPendingTaskDelay());
       return;
     }
-    EXPECT_GE(base::TimeDelta::FromSeconds(delay_seconds),
+    EXPECT_GE(base::Seconds(delay_seconds),
               task_environment_.NextMainThreadPendingTaskDelay());
-    EXPECT_LE(
-        base::TimeDelta::FromSeconds(static_cast<int>(delay_seconds * 0.9)),
-        task_environment_.NextMainThreadPendingTaskDelay());
+    EXPECT_LE(base::Seconds(static_cast<int>(delay_seconds * 0.9)),
+              task_environment_.NextMainThreadPendingTaskDelay());
   }
 
   base::test::TaskEnvironment task_environment_;
diff --git a/components/error_page/content/browser/net_error_auto_reloader.cc b/components/error_page/content/browser/net_error_auto_reloader.cc
index 2a14b5f..17b8602 100644
--- a/components/error_page/content/browser/net_error_auto_reloader.cc
+++ b/components/error_page/content/browser/net_error_auto_reloader.cc
@@ -59,10 +59,8 @@
 
 base::TimeDelta GetNextReloadDelay(size_t reload_count) {
   static constexpr base::TimeDelta kDelays[] = {
-      base::TimeDelta::FromSeconds(1),  base::TimeDelta::FromSeconds(5),
-      base::TimeDelta::FromSeconds(30), base::TimeDelta::FromMinutes(1),
-      base::TimeDelta::FromMinutes(5),  base::TimeDelta::FromMinutes(10),
-      base::TimeDelta::FromMinutes(30)};
+      base::Seconds(1), base::Seconds(5),  base::Seconds(30), base::Minutes(1),
+      base::Minutes(5), base::Minutes(10), base::Minutes(30)};
   return kDelays[std::min(reload_count, base::size(kDelays) - 1)];
 }
 
diff --git a/components/exo/buffer.cc b/components/exo/buffer.cc
index 99559971..ef63326a 100644
--- a/components/exo/buffer.cc
+++ b/components/exo/buffer.cc
@@ -400,8 +400,7 @@
       use_zero_copy_(use_zero_copy),
       is_overlay_candidate_(is_overlay_candidate),
       y_invert_(y_invert),
-      wait_for_release_delay_(
-          base::TimeDelta::FromMilliseconds(kWaitForReleaseDelayMs)) {}
+      wait_for_release_delay_(base::Milliseconds(kWaitForReleaseDelayMs)) {}
 
 Buffer::~Buffer() {}
 
diff --git a/components/exo/client_controlled_shell_surface.cc b/components/exo/client_controlled_shell_surface.cc
index e9b5c7b..c211adc 100644
--- a/components/exo/client_controlled_shell_surface.cc
+++ b/components/exo/client_controlled_shell_surface.cc
@@ -1419,7 +1419,7 @@
     ui::Compositor* compositor =
         widget_->GetNativeWindow()->layer()->GetCompositor();
     orientation_compositor_lock_ = compositor->GetCompositorLock(
-        this, base::TimeDelta::FromMilliseconds(kOrientationLockTimeoutMs));
+        this, base::Milliseconds(kOrientationLockTimeoutMs));
   }
 }
 
diff --git a/components/exo/data_device.cc b/components/exo/data_device.cc
index 88afbae..8039776 100644
--- a/components/exo/data_device.cc
+++ b/components/exo/data_device.cc
@@ -32,7 +32,7 @@
               "kDataDeviceSeatObserverPriority is not in the valid range.");
 
 constexpr base::TimeDelta kDataOfferDestructionTimeout =
-    base::TimeDelta::FromMilliseconds(1000);
+    base::Milliseconds(1000);
 
 DragOperation DndActionToDragOperation(DndAction dnd_action) {
   switch (dnd_action) {
diff --git a/components/exo/gamepad.cc b/components/exo/gamepad.cc
index 4e6cecc..787c24af 100644
--- a/components/exo/gamepad.cc
+++ b/components/exo/gamepad.cc
@@ -39,7 +39,7 @@
 
   vibration_timer_.Stop();
   vibration_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(0),
+      FROM_HERE, base::Milliseconds(0),
       base::BindOnce(&Gamepad::HandleVibrate, base::Unretained(this),
                      duration_millis, amplitudes, repeat, /*index=*/0,
                      /*duration_already_vibrated=*/0));
@@ -67,7 +67,7 @@
     //  commands until the effect is complete.
     SendVibrate(amplitudes[index], kMaxDurationMillis);
     vibration_timer_.Start(
-        FROM_HERE, base::TimeDelta::FromMilliseconds(kMaxDurationMillis),
+        FROM_HERE, base::Milliseconds(kMaxDurationMillis),
         base::BindOnce(&Gamepad::HandleVibrate, base::Unretained(this),
                        duration_millis, amplitudes, repeat, index,
                        /*duration_already_vibrated=*/duration_already_vibrated +
@@ -81,7 +81,7 @@
       index = repeat;
 
     vibration_timer_.Start(
-        FROM_HERE, base::TimeDelta::FromMilliseconds(duration_left_to_vibrate),
+        FROM_HERE, base::Milliseconds(duration_left_to_vibrate),
         base::BindOnce(&Gamepad::HandleVibrate, base::Unretained(this),
                        duration_millis, amplitudes, repeat, index,
                        /*duration_already_vibrated=*/0));
diff --git a/components/exo/gamepad_unittest.cc b/components/exo/gamepad_unittest.cc
index 006c9f9..7324bd60 100644
--- a/components/exo/gamepad_unittest.cc
+++ b/components/exo/gamepad_unittest.cc
@@ -16,9 +16,9 @@
 
 constexpr int64_t kDurationMillis = 0x8000;
 constexpr base::TimeDelta kPendingTaskDuration =
-    base::TimeDelta::FromMillisecondsD(kDurationMillis);
+    base::Milliseconds(kDurationMillis);
 constexpr base::TimeDelta kPendingMaxTaskDuration =
-    base::TimeDelta::FromMillisecondsD(kMaxDurationMillis);
+    base::Milliseconds(kMaxDurationMillis);
 constexpr uint8_t kAmplitude = 128;
 
 class TestGamepad : public Gamepad {
@@ -100,8 +100,7 @@
   EXPECT_EQ(0, gamepad_->send_cancel_vibration_count_);
 
   gamepad_->Vibrate({kDurationMillis}, {kAmplitude}, -1);
-  task_environment_.FastForwardBy(
-      base::TimeDelta::FromMillisecondsD(kDurationMillis / 2));
+  task_environment_.FastForwardBy(base::Milliseconds(kDurationMillis / 2));
   EXPECT_EQ(1, gamepad_->send_vibrate_count_);
   EXPECT_EQ(kAmplitude, gamepad_->last_vibrate_amplitude_);
   EXPECT_EQ(kDurationMillis, gamepad_->last_vibrate_duration_);
diff --git a/components/exo/keyboard.cc b/components/exo/keyboard.cc
index a62a5ad..39aa4bfd 100644
--- a/components/exo/keyboard.cc
+++ b/components/exo/keyboard.cc
@@ -164,8 +164,8 @@
 Keyboard::Keyboard(std::unique_ptr<KeyboardDelegate> delegate, Seat* seat)
     : delegate_(std::move(delegate)),
       seat_(seat),
-      expiration_delay_for_pending_key_acks_(base::TimeDelta::FromMilliseconds(
-          kExpirationDelayForPendingKeyAcksMs)) {
+      expiration_delay_for_pending_key_acks_(
+          base::Milliseconds(kExpirationDelayForPendingKeyAcksMs)) {
   seat_->AddObserver(this, kKeyboardSeatObserverPriority);
   ash::KeyboardController::Get()->AddObserver(this);
   ash::ImeControllerImpl* ime_controller = ash::Shell::Get()->ime_controller();
diff --git a/components/exo/keyboard_unittest.cc b/components/exo/keyboard_unittest.cc
index 17b1ed3..f8fc38a 100644
--- a/components/exo/keyboard_unittest.cc
+++ b/components/exo/keyboard_unittest.cc
@@ -791,10 +791,9 @@
   testing::Mock::VerifyAndClearExpectations(&configuration_delegate);
 }
 
-constexpr base::TimeDelta kDelta50Ms = base::TimeDelta::FromMilliseconds(50);
-constexpr base::TimeDelta kDelta500Ms = base::TimeDelta::FromMilliseconds(500);
-constexpr base::TimeDelta kDelta1000Ms =
-    base::TimeDelta::FromMilliseconds(1000);
+constexpr base::TimeDelta kDelta50Ms = base::Milliseconds(50);
+constexpr base::TimeDelta kDelta500Ms = base::Milliseconds(500);
+constexpr base::TimeDelta kDelta1000Ms = base::Milliseconds(1000);
 
 TEST_F(KeyboardTest, KeyRepeatSettingsLoadDefaults) {
   auto delegate = std::make_unique<NiceMockKeyboardDelegate>();
@@ -1183,8 +1182,7 @@
   // Wait until |ProcessExpiredPendingKeyAcks| is fired.
   base::RunLoop run_loop;
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(),
-      base::TimeDelta::FromMilliseconds(1000));
+      FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(1000));
   run_loop.Run();
   base::RunLoop().RunUntilIdle();
 
@@ -1275,8 +1273,7 @@
   // Wait until |ProcessExpiredPendingKeyAcks| is fired.
   base::RunLoop run_loop;
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(),
-      base::TimeDelta::FromMilliseconds(1000));
+      FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(1000));
   run_loop.Run();
   base::RunLoop().RunUntilIdle();
 
diff --git a/components/exo/permission_unittest.cc b/components/exo/permission_unittest.cc
index 1d018e2..e85f0a49 100644
--- a/components/exo/permission_unittest.cc
+++ b/components/exo/permission_unittest.cc
@@ -11,22 +11,21 @@
 namespace {
 
 TEST(PermissionsTest, ActiveCapability) {
-  Permission p{Permission::Capability::kActivate, base::TimeDelta::FromDays(1)};
+  Permission p{Permission::Capability::kActivate, base::Days(1)};
   ASSERT_TRUE(p.Check(Permission::Capability::kActivate));
   ASSERT_FALSE(p.Check(static_cast<Permission::Capability>(
       (int)(Permission::Capability::kActivate) + 1)));
 }
 
 TEST(PermissionsTest, Revoke) {
-  Permission p{Permission::Capability::kActivate, base::TimeDelta::FromDays(1)};
+  Permission p{Permission::Capability::kActivate, base::Days(1)};
   ASSERT_TRUE(p.Check(Permission::Capability::kActivate));
   p.Revoke();
   ASSERT_FALSE(p.Check(Permission::Capability::kActivate));
 }
 
 TEST(PermissionsTest, Expire) {
-  Permission p{Permission::Capability::kActivate,
-               base::TimeDelta::FromMilliseconds(0)};
+  Permission p{Permission::Capability::kActivate, base::Milliseconds(0)};
   ASSERT_FALSE(p.Check(Permission::Capability::kActivate));
 }
 
diff --git a/components/exo/shell_surface.cc b/components/exo/shell_surface.cc
index dd62af5..48033888 100644
--- a/components/exo/shell_surface.cc
+++ b/components/exo/shell_surface.cc
@@ -407,8 +407,8 @@
       ui::Compositor* compositor =
           widget_->GetNativeWindow()->layer()->GetCompositor();
       configure_compositor_lock_ = compositor->GetCompositorLock(
-          nullptr, base::TimeDelta::FromMilliseconds(
-                       kMaximizedOrFullscreenOrPinnedLockTimeoutMs));
+          nullptr,
+          base::Milliseconds(kMaximizedOrFullscreenOrPinnedLockTimeoutMs));
     } else {
       animations_disabler_ = std::make_unique<ash::ScopedAnimationDisabler>(
           widget_->GetNativeWindow());
diff --git a/components/exo/shell_surface_unittest.cc b/components/exo/shell_surface_unittest.cc
index 5cb4678..46d9406 100644
--- a/components/exo/shell_surface_unittest.cc
+++ b/components/exo/shell_surface_unittest.cc
@@ -397,7 +397,7 @@
   EXPECT_FALSE(HasPermissionToActivate(window));
 
   // Can grant permission.
-  GrantPermissionToActivate(window, base::TimeDelta::FromDays(1));
+  GrantPermissionToActivate(window, base::Days(1));
   exo::Permission* permission = window->GetProperty(kPermissionKey);
   EXPECT_TRUE(permission->Check(Permission::Capability::kActivate));
   EXPECT_TRUE(HasPermissionToActivate(window));
@@ -407,7 +407,7 @@
   EXPECT_FALSE(HasPermissionToActivate(window));
 
   // Can grant permission again.
-  GrantPermissionToActivate(window, base::TimeDelta::FromDays(2));
+  GrantPermissionToActivate(window, base::Days(2));
   exo::Permission* permission2 = window->GetProperty(kPermissionKey);
   EXPECT_TRUE(permission2->Check(Permission::Capability::kActivate));
   EXPECT_TRUE(HasPermissionToActivate(window));
@@ -440,8 +440,7 @@
   EXPECT_TRUE(widget2->IsActive());
 
   // Grant permission to activate the first window.
-  GrantPermissionToActivate(widget1->GetNativeWindow(),
-                            base::TimeDelta::FromDays(1));
+  GrantPermissionToActivate(widget1->GetNativeWindow(), base::Days(1));
 
   // The first window can activate itself.
   surface1->RequestActivation();
diff --git a/components/exo/ui_lock_controller.cc b/components/exo/ui_lock_controller.cc
index 195bf97..b02b218 100644
--- a/components/exo/ui_lock_controller.cc
+++ b/components/exo/ui_lock_controller.cc
@@ -48,11 +48,11 @@
 //   mouse moves below 150px.
 
 // Duration to show the 'Press and hold Esc' notification.
-constexpr auto kEscNotificationDuration = base::TimeDelta::FromSeconds(4);
+constexpr auto kEscNotificationDuration = base::Seconds(4);
 // Position of Esc notification from top of screen.
 const int kEscNotificationTopPx = 45;
 // Duration to show the exit 'X' popup.
-constexpr auto kExitPopupDuration = base::TimeDelta::FromSeconds(3);
+constexpr auto kExitPopupDuration = base::Seconds(3);
 // Display the exit popup if mouse is above this height.
 constexpr float kExitPopupDisplayHeight = 3.f;
 // Hide the exit popup if mouse is below this height.
@@ -220,7 +220,7 @@
                                    nullptr)
 }
 
-constexpr auto kLongPressEscapeDuration = base::TimeDelta::FromSeconds(2);
+constexpr auto kLongPressEscapeDuration = base::Seconds(2);
 constexpr auto kExcludedFlags = ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN |
                                 ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN |
                                 ui::EF_ALTGR_DOWN | ui::EF_IS_REPEAT;
diff --git a/components/exo/ui_lock_controller_unittest.cc b/components/exo/ui_lock_controller_unittest.cc
index 83349a0..e85dc2d 100644
--- a/components/exo/ui_lock_controller_unittest.cc
+++ b/components/exo/ui_lock_controller_unittest.cc
@@ -128,7 +128,7 @@
       gfx::AnimationTestApi animation_api(popup->GetAnimationForTesting());
       base::TimeTicks now = base::TimeTicks::Now();
       animation_api.SetStartTime(now);
-      animation_api.Step(now + base::TimeDelta::FromMilliseconds(500));
+      animation_api.Step(now + base::Milliseconds(500));
     }
     return popup && popup->IsVisible();
   }
@@ -146,10 +146,10 @@
   EXPECT_TRUE(window_state->IsFullscreen());
 
   GetEventGenerator()->PressKey(ui::VKEY_ESCAPE, ui::EF_NONE);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
   EXPECT_TRUE(window_state->IsFullscreen());  // no change yet
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(window_state->IsFullscreen());
   EXPECT_TRUE(window_state->IsNormalStateType());
 }
@@ -163,7 +163,7 @@
   EXPECT_TRUE(window_state->IsFullscreen());
 
   GetEventGenerator()->PressKey(ui::VKEY_ESCAPE, ui::EF_CONTROL_DOWN);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_environment()->FastForwardBy(base::Seconds(2));
   EXPECT_TRUE(window_state->IsFullscreen());
 }
 
@@ -179,7 +179,7 @@
   EXPECT_TRUE(window_state->IsFullscreen());
 
   GetEventGenerator()->PressKey(ui::VKEY_ESCAPE, ui::EF_NONE);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_environment()->FastForwardBy(base::Seconds(2));
   EXPECT_TRUE(window_state->IsFullscreen());
 }
 
@@ -195,7 +195,7 @@
   test_surface2.surface->Commit();
 
   GetEventGenerator()->PressKey(ui::VKEY_ESCAPE, ui::EF_NONE);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_environment()->FastForwardBy(base::Seconds(2));
 
   EXPECT_TRUE(test_surface1.GetTopLevelWindowState()->IsFullscreen());
   EXPECT_FALSE(test_surface2.GetTopLevelWindowState()->IsFullscreen());
@@ -211,11 +211,11 @@
   EXPECT_TRUE(window_state->IsFullscreen());
 
   GetEventGenerator()->PressKey(ui::VKEY_ESCAPE, ui::EF_NONE);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
 
   test_surface.reset();  // Destroying the Surface destroys the Window
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(3));
+  task_environment()->FastForwardBy(base::Seconds(3));
 
   // The implicit assertion is that the code doesn't crash.
 }
@@ -235,12 +235,12 @@
 
   // Act: Press escape, then toggle focus back and forth
   GetEventGenerator()->PressKey(ui::VKEY_ESCAPE, ui::EF_NONE);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
 
   wm::ActivateWindow(other_surface.surface->window());
   wm::ActivateWindow(fullscreen_surface.surface->window());
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_environment()->FastForwardBy(base::Seconds(2));
 
   // Assert: Fullscreen window was not minimized, despite regaining focus.
   EXPECT_FALSE(fullscreen_surface.GetTopLevelWindowState()->IsMinimized());
@@ -255,9 +255,9 @@
   auto* window_state = test_surface.GetTopLevelWindowState();
 
   GetEventGenerator()->PressKey(ui::VKEY_ESCAPE, ui::EF_NONE);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
   GetEventGenerator()->ReleaseKey(ui::VKEY_ESCAPE, ui::EF_NONE);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_environment()->FastForwardBy(base::Seconds(2));
 
   EXPECT_TRUE(window_state->IsFullscreen());
 }
@@ -273,10 +273,10 @@
   EXPECT_TRUE(window_state->IsFullscreen());
 
   GetEventGenerator()->PressKey(ui::VKEY_ESCAPE, ui::EF_NONE);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
   EXPECT_TRUE(window_state->IsFullscreen());  // no change yet
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(window_state->IsFullscreen());
   EXPECT_TRUE(window_state->IsMinimized());
 }
@@ -290,7 +290,7 @@
   auto* window_state = test_surface.GetTopLevelWindowState();
 
   GetEventGenerator()->PressKey(ui::VKEY_ESCAPE, ui::EF_NONE);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_environment()->FastForwardBy(base::Seconds(2));
 
   EXPECT_FALSE(window_state->IsMinimized());
 }
@@ -312,7 +312,7 @@
   test_surface.surface->Commit();
 
   EXPECT_TRUE(GetEscNotification(&test_surface));
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment()->FastForwardBy(base::Seconds(5));
   EXPECT_FALSE(GetEscNotification(&test_surface));
 }
 
@@ -326,7 +326,7 @@
   EXPECT_TRUE(GetEscNotification(&test_surface));
 
   GetEventGenerator()->PressKey(ui::VKEY_ESCAPE, ui::EF_NONE);
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(3));
+  task_environment()->FastForwardBy(base::Seconds(3));
 
   EXPECT_FALSE(test_surface.GetTopLevelWindowState()->IsFullscreen());
   EXPECT_FALSE(GetEscNotification(&test_surface));
@@ -372,7 +372,7 @@
   EXPECT_TRUE(GetEscNotification(&test_surface));
 
   // After duration, notification should be removed.
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment()->FastForwardBy(base::Seconds(5));
   EXPECT_FALSE(GetEscNotification(&test_surface));
 
   // Notification is shown after fullscreen toggle.
@@ -412,7 +412,7 @@
   EXPECT_FALSE(IsExitPopupVisible(window));
 
   // Wait for notification to close, now exit popup should show.
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment()->FastForwardBy(base::Seconds(5));
   EXPECT_FALSE(GetEscNotification(&test_surface));
   GetEventGenerator()->MoveMouseTo(1, 2);
   EXPECT_TRUE(IsExitPopupVisible(window));
@@ -426,7 +426,7 @@
   EXPECT_TRUE(IsExitPopupVisible(window));
 
   // Popup should hide after 3s.
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment()->FastForwardBy(base::Seconds(5));
   EXPECT_FALSE(IsExitPopupVisible(window));
 
   // Moving mouse to y=100, then above y=3 should still have popup hidden.
diff --git a/components/exo/vsync_timing_manager.cc b/components/exo/vsync_timing_manager.cc
index 7f824b4d..f08d5517 100644
--- a/components/exo/vsync_timing_manager.cc
+++ b/components/exo/vsync_timing_manager.cc
@@ -50,7 +50,7 @@
 void VSyncTimingManager::OnThrottlingStarted(
     const std::vector<aura::Window*>& windows,
     uint8_t fps) {
-  throttled_interval_ = base::TimeDelta::FromHz(fps);
+  throttled_interval_ = base::Hertz(fps);
   OnUpdateVSyncParameters(last_timebase_, last_interval_);
 }
 
@@ -89,7 +89,7 @@
       FROM_HERE,
       base::BindOnce(&VSyncTimingManager::MaybeInitializeConnection,
                      weak_ptr_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(250));
+      base::Milliseconds(250));
 }
 
 }  // namespace exo
diff --git a/components/exo/wayland/clients/rects.cc b/components/exo/wayland/clients/rects.cc
index b8796f50..81cfd88 100644
--- a/components/exo/wayland/clients/rects.cc
+++ b/components/exo/wayland/clients/rects.cc
@@ -221,8 +221,7 @@
   int64_t microseconds = seconds * base::Time::kMicrosecondsPerSecond +
                          tv_nsec / base::Time::kNanosecondsPerMicrosecond;
 
-  *timestamp =
-      base::TimeTicks() + base::TimeDelta::FromMicroseconds(microseconds);
+  *timestamp = base::TimeTicks() + base::Microseconds(microseconds);
 }
 
 }  // namespace
@@ -575,6 +574,6 @@
   base::SingleThreadTaskExecutor main_task_executor(base::MessagePumpType::UI);
   exo::wayland::clients::RectsClient client;
   return client.Run(params, max_frames_pending, num_rects, num_benchmark_runs,
-                    base::TimeDelta::FromMilliseconds(benchmark_interval_ms),
+                    base::Milliseconds(benchmark_interval_ms),
                     command_line->HasSwitch(switches::kShowFpsCounter));
 }
diff --git a/components/exo/wayland/clients/simple.cc b/components/exo/wayland/clients/simple.cc
index 2d73a18a..ab67352 100644
--- a/components/exo/wayland/clients/simple.cc
+++ b/components/exo/wayland/clients/simple.cc
@@ -60,7 +60,7 @@
   int64_t microseconds = seconds * base::Time::kMicrosecondsPerSecond +
                          tv_nsec / base::Time::kNanosecondsPerMicrosecond;
   base::TimeTicks presentation_time =
-      base::TimeTicks() + base::TimeDelta::FromMicroseconds(microseconds);
+      base::TimeTicks() + base::Microseconds(microseconds);
   presentation->feedback.total_presentation_latency +=
       presentation_time - frame.submit_time;
   ++presentation->feedback.num_frames_presented;
diff --git a/components/exo/wayland/fuzzer/harness_unittest.cc b/components/exo/wayland/fuzzer/harness_unittest.cc
index 8234628..c83e733b 100644
--- a/components/exo/wayland/fuzzer/harness_unittest.cc
+++ b/components/exo/wayland/fuzzer/harness_unittest.cc
@@ -82,8 +82,8 @@
                                  base::BindOnce(&RunHarness, &harness, &event));
   // For this action sequence we need two dispatches. The first will bind the
   // registry, the second is for the callback.
-  server_->Dispatch(base::TimeDelta::FromSeconds(5));
-  server_->Dispatch(base::TimeDelta::FromSeconds(5));
+  server_->Dispatch(base::Seconds(5));
+  server_->Dispatch(base::Seconds(5));
   server_->Flush();
   event.Wait();
 
diff --git a/components/exo/wayland/server_unittest.cc b/components/exo/wayland/server_unittest.cc
index 4ec7184f..0a0c482 100644
--- a/components/exo/wayland/server_unittest.cc
+++ b/components/exo/wayland/server_unittest.cc
@@ -115,7 +115,7 @@
                                                 &connected_to_server, &event));
 
   // Call Dispatch() with a 5 second timeout.
-  server->Dispatch(base::TimeDelta::FromSeconds(5));
+  server->Dispatch(base::Seconds(5));
 
   // Check if client thread managed to connect to server.
   event.Wait();
diff --git a/components/exo/wayland/wayland_display_output.cc b/components/exo/wayland/wayland_display_output.cc
index ef7404f..796e063 100644
--- a/components/exo/wayland/wayland_display_output.cc
+++ b/components/exo/wayland/wayland_display_output.cc
@@ -18,7 +18,7 @@
 namespace exo {
 namespace wayland {
 namespace {
-base::TimeDelta kDeleteTaskDelay = base::TimeDelta::FromSeconds(3);
+base::TimeDelta kDeleteTaskDelay = base::Seconds(3);
 
 void DoDelete(WaylandDisplayOutput* output, int retry_count) {
   if (retry_count > 0 && output->output_counts() > 0) {
diff --git a/components/exo/wayland/wayland_keyboard_delegate_unittest.cc b/components/exo/wayland/wayland_keyboard_delegate_unittest.cc
index bb3c5cd..01b8b46 100644
--- a/components/exo/wayland/wayland_keyboard_delegate_unittest.cc
+++ b/components/exo/wayland/wayland_keyboard_delegate_unittest.cc
@@ -13,32 +13,23 @@
 using WaylandKeyboardDelegateTest = testing::Test;
 
 TEST_F(WaylandKeyboardDelegateTest, RepeatRateIsZeroIfRepeatDisabled) {
-  EXPECT_EQ(
-      GetWaylandRepeatRateForTesting(false, base::TimeDelta::FromSeconds(1)),
-      0);
+  EXPECT_EQ(GetWaylandRepeatRateForTesting(false, base::Seconds(1)), 0);
 }
 
 TEST_F(WaylandKeyboardDelegateTest, Converts100MsIntervalTo10Hertz) {
-  EXPECT_EQ(GetWaylandRepeatRateForTesting(
-                true, base::TimeDelta::FromMilliseconds(100)),
-            10);
+  EXPECT_EQ(GetWaylandRepeatRateForTesting(true, base::Milliseconds(100)), 10);
 }
 
 TEST_F(WaylandKeyboardDelegateTest, Converts333MsIntervalTo3Hertz) {
-  EXPECT_EQ(GetWaylandRepeatRateForTesting(
-                true, base::TimeDelta::FromMilliseconds(333)),
-            3);
+  EXPECT_EQ(GetWaylandRepeatRateForTesting(true, base::Milliseconds(333)), 3);
 }
 
 TEST_F(WaylandKeyboardDelegateTest, Converts500MsIntervalTo2Hertz) {
-  EXPECT_EQ(GetWaylandRepeatRateForTesting(
-                true, base::TimeDelta::FromMilliseconds(500)),
-            2);
+  EXPECT_EQ(GetWaylandRepeatRateForTesting(true, base::Milliseconds(500)), 2);
 }
 
 TEST_F(WaylandKeyboardDelegateTest, Converts1SecondIntervalTo1Hertz) {
-  EXPECT_EQ(
-      GetWaylandRepeatRateForTesting(true, base::TimeDelta::FromSeconds(1)), 1);
+  EXPECT_EQ(GetWaylandRepeatRateForTesting(true, base::Seconds(1)), 1);
 }
 
 TEST_F(WaylandKeyboardDelegateTest,
@@ -46,8 +37,7 @@
   // Should really be 0.5Hz, but Wayland only supports integer repeat rates.
   // Make sure we fallback to 1Hz so some repeating occurs, rather than 0Hz
   // which disables key repeat.
-  EXPECT_EQ(
-      GetWaylandRepeatRateForTesting(true, base::TimeDelta::FromSeconds(2)), 1);
+  EXPECT_EQ(GetWaylandRepeatRateForTesting(true, base::Seconds(2)), 1);
 }
 
 }  // namespace
diff --git a/components/exo/wayland/zaura_shell_unittest.cc b/components/exo/wayland/zaura_shell_unittest.cc
index 399bc9c..af7bd06 100644
--- a/components/exo/wayland/zaura_shell_unittest.cc
+++ b/components/exo/wayland/zaura_shell_unittest.cc
@@ -36,7 +36,7 @@
 
 namespace {
 
-constexpr auto kTransitionDuration = base::TimeDelta::FromSeconds(3);
+constexpr auto kTransitionDuration = base::Seconds(3);
 
 class TestAuraSurface : public AuraSurface {
  public:
diff --git a/components/exo/wayland/zcr_remote_shell_impl.cc b/components/exo/wayland/zcr_remote_shell_impl.cc
index f5a4ec9..c36259f 100644
--- a/components/exo/wayland/zcr_remote_shell_impl.cc
+++ b/components/exo/wayland/zcr_remote_shell_impl.cc
@@ -557,7 +557,7 @@
       FROM_HERE,
       base::BindOnce(&WaylandRemoteShell::SendDisplayMetrics,
                      weak_ptr_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(delay_ms));
+      base::Milliseconds(delay_ms));
 }
 
 // Returns the transform that a display's output is currently adjusted for.
diff --git a/components/exo/wm_helper_chromeos_unittest.cc b/components/exo/wm_helper_chromeos_unittest.cc
index d2a32f2..66ef23e 100644
--- a/components/exo/wm_helper_chromeos_unittest.cc
+++ b/components/exo/wm_helper_chromeos_unittest.cc
@@ -91,8 +91,7 @@
   EXPECT_EQ(vsync_timing_manager.throttled_interval(), base::TimeDelta());
 
   // Both windows are to be throttled, vsync timing will be adjusted.
-  base::TimeDelta throttled_interval =
-      base::TimeDelta::FromHz(ftc->throttled_fps());
+  base::TimeDelta throttled_interval = base::Hertz(ftc->throttled_fps());
   EXPECT_CALL(observer,
               OnUpdateVSyncParameters(testing::_, throttled_interval));
   ftc->StartThrottling({arc_window_1.get(), arc_window_2.get()});
diff --git a/components/favicon/core/favicon_backend.cc b/components/favicon/core/favicon_backend.cc
index 0be8d3c1..118132b6 100644
--- a/components/favicon/core/favicon_backend.cc
+++ b/components/favicon/core/favicon_backend.cc
@@ -25,7 +25,7 @@
 namespace {
 
 // The amount of time before we re-fetch the favicon.
-constexpr base::TimeDelta kFaviconRefetchDelta = base::TimeDelta::FromDays(7);
+constexpr base::TimeDelta kFaviconRefetchDelta = base::Days(7);
 
 bool IsFaviconBitmapExpired(base::Time last_updated) {
   return (base::Time::Now() - last_updated) > kFaviconRefetchDelta;
diff --git a/components/favicon/core/favicon_backend_unittest.cc b/components/favicon/core/favicon_backend_unittest.cc
index 2d708c4..cd6f721 100644
--- a/components/favicon/core/favicon_backend_unittest.cc
+++ b/components/favicon/core/favicon_backend_unittest.cc
@@ -930,8 +930,7 @@
                                                 &favicon_bitmaps));
 
   // Change the last updated time of the just added favicon bitmap.
-  const base::Time kLastUpdateTime =
-      base::Time::Now() - base::TimeDelta::FromDays(314);
+  const base::Time kLastUpdateTime = base::Time::Now() - base::Days(314);
   backend_->db()->SetFaviconBitmapLastUpdateTime(favicon_bitmaps[0].bitmap_id,
                                                  kLastUpdateTime);
 
diff --git a/components/favicon/core/favicon_database.cc b/components/favicon/core/favicon_database.cc
index e9a2992..6942f37 100644
--- a/components/favicon/core/favicon_database.cc
+++ b/components/favicon/core/favicon_database.cc
@@ -443,7 +443,7 @@
     favicon_bitmap.bitmap_id = statement.ColumnInt64(0);
     favicon_bitmap.icon_id = icon_id;
     favicon_bitmap.last_updated = base::Time::FromDeltaSinceWindowsEpoch(
-        base::TimeDelta::FromMicroseconds(statement.ColumnInt64(1)));
+        base::Microseconds(statement.ColumnInt64(1)));
     std::vector<uint8_t> bitmap_data_blob;
     statement.ColumnBlobAsVector(2, &bitmap_data_blob);
     if (!bitmap_data_blob.empty()) {
@@ -453,7 +453,7 @@
     favicon_bitmap.pixel_size =
         gfx::Size(statement.ColumnInt(3), statement.ColumnInt(4));
     favicon_bitmap.last_requested = base::Time::FromDeltaSinceWindowsEpoch(
-        base::TimeDelta::FromMicroseconds(statement.ColumnInt64(5)));
+        base::Microseconds(statement.ColumnInt64(5)));
     favicon_bitmaps->push_back(favicon_bitmap);
   }
   return result;
@@ -477,7 +477,7 @@
 
   if (last_updated) {
     *last_updated = base::Time::FromDeltaSinceWindowsEpoch(
-        base::TimeDelta::FromMicroseconds(statement.ColumnInt64(0)));
+        base::Microseconds(statement.ColumnInt64(0)));
   }
 
   if (png_icon_data) {
@@ -493,7 +493,7 @@
 
   if (last_requested) {
     *last_requested = base::Time::FromDeltaSinceWindowsEpoch(
-        base::TimeDelta::FromMicroseconds(statement.ColumnInt64(4)));
+        base::Microseconds(statement.ColumnInt64(4)));
   }
 
   return true;
@@ -601,8 +601,7 @@
       SQL_FROM_HERE, "SELECT id FROM favicons WHERE url=?"));
   id_statement.BindString(0, database_utils::GurlToDatabaseUrl(icon_url));
 
-  base::Time max_time =
-      time - base::TimeDelta::FromDays(kFaviconUpdateLastRequestedAfterDays);
+  base::Time max_time = time - base::Days(kFaviconUpdateLastRequestedAfterDays);
 
   while (id_statement.Step()) {
     favicon_base::FaviconID icon_id = id_statement.ColumnInt64(0);
@@ -658,7 +657,7 @@
 
   if (last_updated) {
     *last_updated = base::Time::FromDeltaSinceWindowsEpoch(
-        base::TimeDelta::FromMicroseconds(statement.ColumnInt64(0)));
+        base::Microseconds(statement.ColumnInt64(0)));
   }
   return true;
 }
diff --git a/components/favicon/core/favicon_database_unittest.cc b/components/favicon/core/favicon_database_unittest.cc
index 54a3871..ebb845f 100644
--- a/components/favicon/core/favicon_database_unittest.cc
+++ b/components/favicon/core/favicon_database_unittest.cc
@@ -317,7 +317,7 @@
   base::Time add_time1;
   ASSERT_TRUE(
       base::Time::FromUTCExploded({2017, 5, 0, 1, 0, 0, 0, 0}, &add_time1));
-  base::Time add_time2 = add_time1 - base::TimeDelta::FromSeconds(1);
+  base::Time add_time2 = add_time1 - base::Seconds(1);
   std::vector<unsigned char> data(kBlob1, kBlob1 + sizeof(kBlob1));
   scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data));
 
@@ -356,8 +356,7 @@
       icon, favicon, FaviconBitmapType::ON_DEMAND, start, gfx::Size());
   ASSERT_NE(0, bitmap);
 
-  base::Time end =
-      start + base::TimeDelta::FromDays(kFaviconUpdateLastRequestedAfterDays);
+  base::Time end = start + base::Days(kFaviconUpdateLastRequestedAfterDays);
   EXPECT_TRUE(db.TouchOnDemandFavicon(url, end));
 
   base::Time last_updated;
@@ -388,7 +387,7 @@
       icon, favicon, FaviconBitmapType::ON_DEMAND, start, gfx::Size());
   ASSERT_NE(0, bitmap);
 
-  base::Time end = start + base::TimeDelta::FromMinutes(1);
+  base::Time end = start + base::Minutes(1);
   EXPECT_TRUE(db.TouchOnDemandFavicon(url, end));
 
   base::Time last_requested;
@@ -416,8 +415,7 @@
       icon, favicon, FaviconBitmapType::ON_VISIT, start, gfx::Size());
   EXPECT_NE(0, bitmap);
 
-  base::Time end =
-      start + base::TimeDelta::FromDays(kFaviconUpdateLastRequestedAfterDays);
+  base::Time end = start + base::Days(kFaviconUpdateLastRequestedAfterDays);
   db.TouchOnDemandFavicon(url, end);
 
   base::Time last_updated;
@@ -451,7 +449,7 @@
   GURL page_url2("http://google.com/2");
   ASSERT_NE(0, db.AddIconMapping(page_url2, icon));
 
-  base::Time get_older_than = start + base::TimeDelta::FromSeconds(1);
+  base::Time get_older_than = start + base::Seconds(1);
   auto map = db.GetOldOnDemandFavicons(get_older_than);
 
   // The icon is returned.
@@ -484,7 +482,7 @@
   ASSERT_NE(0, db.AddIconMapping(page_url, icon));
   ASSERT_TRUE(db.SetFaviconOutOfDate(icon));
 
-  base::Time get_older_than = start + base::TimeDelta::FromSeconds(1);
+  base::Time get_older_than = start + base::Seconds(1);
   auto map = db.GetOldOnDemandFavicons(get_older_than);
 
   // No icon is returned.
@@ -511,10 +509,10 @@
   ASSERT_NE(0, db.AddIconMapping(GURL("http://google.com/"), icon));
 
   // Touch the icon 3 weeks later.
-  base::Time now = start + base::TimeDelta::FromDays(21);
+  base::Time now = start + base::Days(21);
   EXPECT_TRUE(db.TouchOnDemandFavicon(url, now));
 
-  base::Time get_older_than = start + base::TimeDelta::FromSeconds(1);
+  base::Time get_older_than = start + base::Seconds(1);
   auto map = db.GetOldOnDemandFavicons(get_older_than);
 
   // No icon is returned.
@@ -539,7 +537,7 @@
   ASSERT_NE(0, icon);
   ASSERT_NE(0, db.AddIconMapping(GURL("http://google.com/"), icon));
 
-  base::Time get_older_than = start + base::TimeDelta::FromSeconds(1);
+  base::Time get_older_than = start + base::Seconds(1);
   auto map = db.GetOldOnDemandFavicons(get_older_than);
 
   // No icon is returned.
@@ -1375,7 +1373,7 @@
                     FaviconBitmapType::ON_VISIT, time1, gfx::Size());
   EXPECT_NE(0u, id1);
 
-  const base::Time time2 = time1 - base::TimeDelta::FromSeconds(10);
+  const base::Time time2 = time1 - base::Seconds(10);
   favicon_base::FaviconID id2 =
       db.AddFavicon(url, favicon_base::IconType::kTouchIcon, favicon,
                     FaviconBitmapType::ON_VISIT, time2, gfx::Size());
@@ -1383,27 +1381,23 @@
   EXPECT_NE(id1, id2);
 
   // There should be no favicons before |time2|.
-  EXPECT_TRUE(db.GetFaviconsLastUpdatedBefore(
-                    time2 - base::TimeDelta::FromSeconds(1), 10)
-                  .empty());
+  EXPECT_TRUE(
+      db.GetFaviconsLastUpdatedBefore(time2 - base::Seconds(1), 10).empty());
 
   // Requesting a time after |time2| should return |id2|.
-  auto ids = db.GetFaviconsLastUpdatedBefore(
-      time2 + base::TimeDelta::FromSeconds(1), 10);
+  auto ids = db.GetFaviconsLastUpdatedBefore(time2 + base::Seconds(1), 10);
   ASSERT_EQ(1u, ids.size());
   EXPECT_EQ(id2, ids[0]);
 
   // There should two favicons when using a time after |time1|.
-  ids = db.GetFaviconsLastUpdatedBefore(time1 + base::TimeDelta::FromSeconds(1),
-                                        10);
+  ids = db.GetFaviconsLastUpdatedBefore(time1 + base::Seconds(1), 10);
   ASSERT_EQ(2u, ids.size());
   // |id2| is before |id1|, so it should be returned first.
   EXPECT_EQ(id2, ids[0]);
   EXPECT_EQ(id1, ids[1]);
 
   // Repeat previous, but cap the max at 1.
-  ids = db.GetFaviconsLastUpdatedBefore(time1 + base::TimeDelta::FromSeconds(1),
-                                        1);
+  ids = db.GetFaviconsLastUpdatedBefore(time1 + base::Seconds(1), 1);
   ASSERT_EQ(1u, ids.size());
   // |id2| is before |id1|, so it should be returned first.
   EXPECT_EQ(id2, ids[0]);
@@ -1414,9 +1408,9 @@
   ASSERT_EQ(sql::INIT_OK, db.Init(file_name_));
   db.BeginTransaction();
 
-  base::Time t1 = base::Time::Now() - base::TimeDelta::FromMinutes(3);
-  base::Time t2 = base::Time::Now() - base::TimeDelta::FromMinutes(2);
-  base::Time t3 = base::Time::Now() - base::TimeDelta::FromMinutes(1);
+  base::Time t1 = base::Time::Now() - base::Minutes(3);
+  base::Time t2 = base::Time::Now() - base::Minutes(2);
+  base::Time t3 = base::Time::Now() - base::Minutes(1);
 
   std::vector<unsigned char> data(kBlob1, kBlob1 + sizeof(kBlob1));
   scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data));
diff --git a/components/feature_engagement/internal/event_model_impl.cc b/components/feature_engagement/internal/event_model_impl.cc
index 68f11f7..775ef564 100644
--- a/components/feature_engagement/internal/event_model_impl.cc
+++ b/components/feature_engagement/internal/event_model_impl.cc
@@ -130,7 +130,7 @@
     return base::Time();
 
   return base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(event->last_snooze_time_us()));
+      base::Microseconds(event->last_snooze_time_us()));
 }
 
 uint32_t EventModelImpl::GetSnoozeCount(const std::string& event_name,
diff --git a/components/feature_engagement/internal/event_model_impl_unittest.cc b/components/feature_engagement/internal/event_model_impl_unittest.cc
index f7fef2f..fdb07873 100644
--- a/components/feature_engagement/internal/event_model_impl_unittest.cc
+++ b/components/feature_engagement/internal/event_model_impl_unittest.cc
@@ -464,8 +464,8 @@
 
   // Verify that incrementing snooze across multiple days update the snooze
   // count and the last_snooze_time_us field.
-  base::Time snooze_time = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(5));
+  base::Time snooze_time =
+      base::Time::FromDeltaSinceWindowsEpoch(base::Microseconds(5));
   model_->IncrementEvent("snooze", 1u);
   model_->IncrementSnooze("snooze", 1u, base::Time());
   model_->IncrementEvent("snooze", 2u);
@@ -505,10 +505,10 @@
   EXPECT_TRUE(model_->IsReady());
 
   // Verify the correct last_snooze_time_us is returned.
-  base::Time snooze_time1 = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(4));
-  base::Time snooze_time2 = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(5));
+  base::Time snooze_time1 =
+      base::Time::FromDeltaSinceWindowsEpoch(base::Microseconds(4));
+  base::Time snooze_time2 =
+      base::Time::FromDeltaSinceWindowsEpoch(base::Microseconds(5));
 
   model_->IncrementSnooze("bar", 10u, snooze_time1);
   EXPECT_EQ(snooze_time1, model_->GetLastSnoozeTimestamp("bar"));
diff --git a/components/feature_engagement/internal/feature_config_condition_validator.cc b/components/feature_engagement/internal/feature_config_condition_validator.cc
index 5379601..803f145 100644
--- a/components/feature_engagement/internal/feature_config_condition_validator.cc
+++ b/components/feature_engagement/internal/feature_config_condition_validator.cc
@@ -61,8 +61,7 @@
   result.snooze_expiration_ok =
       !event_model.IsSnoozeDismissed(config.trigger.name) &&
       (event_model.GetLastSnoozeTimestamp(config.trigger.name) <
-       base::Time::Now() -
-           base::TimeDelta::FromDays(config.snooze_params.snooze_interval));
+       base::Time::Now() - base::Days(config.snooze_params.snooze_interval));
 
   result.should_show_snooze =
       result.snooze_expiration_ok &&
diff --git a/components/feature_engagement/internal/feature_config_condition_validator_unittest.cc b/components/feature_engagement/internal/feature_config_condition_validator_unittest.cc
index e4c55a8..84d5333 100644
--- a/components/feature_engagement/internal/feature_config_condition_validator_unittest.cc
+++ b/components/feature_engagement/internal/feature_config_condition_validator_unittest.cc
@@ -716,7 +716,7 @@
 
   // Updating last snooze timestamp.
   event_model_.IncrementSnooze(config.trigger.name, 1u,
-                               baseline - base::TimeDelta::FromDays(4));
+                               baseline - base::Days(4));
 
   // Verify that snooze conditions are met at day 3.
   result = GetResultForDay(config, 3u);
@@ -726,7 +726,7 @@
 
   // When last snooze timestamp is too recent.
   event_model_.IncrementSnooze(config.trigger.name, 1u,
-                               baseline - base::TimeDelta::FromDays(2));
+                               baseline - base::Days(2));
   result = GetResultForDay(config, 3u);
   EXPECT_FALSE(result.NoErrors());
   EXPECT_FALSE(result.snooze_expiration_ok);
@@ -734,7 +734,7 @@
 
   // Reset the last snooze timestamp.
   event_model_.IncrementSnooze(config.trigger.name, 1u,
-                               baseline - base::TimeDelta::FromDays(4));
+                               baseline - base::Days(4));
   result = GetResultForDay(config, 3u);
   EXPECT_TRUE(result.NoErrors());
   EXPECT_TRUE(result.snooze_expiration_ok);
diff --git a/components/feature_engagement/internal/system_time_provider_unittest.cc b/components/feature_engagement/internal/system_time_provider_unittest.cc
index 9b8ce7e..eb9a7c9 100644
--- a/components/feature_engagement/internal/system_time_provider_unittest.cc
+++ b/components/feature_engagement/internal/system_time_provider_unittest.cc
@@ -66,26 +66,26 @@
 TEST_F(SystemTimeProviderTest, TestDeltasFromEpoch) {
   base::Time epoch = base::Time::UnixEpoch();
 
-  time_provider_.SetCurrentTime(epoch + base::TimeDelta::FromDays(1));
+  time_provider_.SetCurrentTime(epoch + base::Days(1));
   EXPECT_EQ(1u, time_provider_.GetCurrentDay());
 
-  time_provider_.SetCurrentTime(epoch + base::TimeDelta::FromDays(2));
+  time_provider_.SetCurrentTime(epoch + base::Days(2));
   EXPECT_EQ(2u, time_provider_.GetCurrentDay());
 
-  time_provider_.SetCurrentTime(epoch + base::TimeDelta::FromDays(100));
+  time_provider_.SetCurrentTime(epoch + base::Days(100));
   EXPECT_EQ(100u, time_provider_.GetCurrentDay());
 }
 
 TEST_F(SystemTimeProviderTest, TestNegativeDeltasFromEpoch) {
   base::Time epoch = base::Time::UnixEpoch();
 
-  time_provider_.SetCurrentTime(epoch - base::TimeDelta::FromDays(1));
+  time_provider_.SetCurrentTime(epoch - base::Days(1));
   EXPECT_EQ(0u, time_provider_.GetCurrentDay());
 
-  time_provider_.SetCurrentTime(epoch - base::TimeDelta::FromDays(2));
+  time_provider_.SetCurrentTime(epoch - base::Days(2));
   EXPECT_EQ(0u, time_provider_.GetCurrentDay());
 
-  time_provider_.SetCurrentTime(epoch - base::TimeDelta::FromDays(100));
+  time_provider_.SetCurrentTime(epoch - base::Days(100));
   EXPECT_EQ(0u, time_provider_.GetCurrentDay());
 }
 
diff --git a/components/federated_learning/features/features.cc b/components/federated_learning/features/features.cc
index 199fe3a0..cd05f26 100644
--- a/components/federated_learning/features/features.cc
+++ b/components/federated_learning/features/features.cc
@@ -36,8 +36,7 @@
 const base::Feature kFederatedLearningOfCohorts{
     "FederatedLearningOfCohorts", base::FEATURE_DISABLED_BY_DEFAULT};
 constexpr base::FeatureParam<base::TimeDelta> kFlocIdScheduledUpdateInterval{
-    &kFederatedLearningOfCohorts, "update_interval",
-    base::TimeDelta::FromDays(7)};
+    &kFederatedLearningOfCohorts, "update_interval", base::Days(7)};
 constexpr base::FeatureParam<int> kFlocIdMinimumHistoryDomainSizeRequired{
     &kFederatedLearningOfCohorts, "minimum_history_domain_size_required", 3};
 constexpr base::FeatureParam<int> kFlocIdFinchConfigVersion{
diff --git a/components/feed/core/v2/api_test/feed_api_notice_card_unittest.cc b/components/feed/core/v2/api_test/feed_api_notice_card_unittest.cc
index 5f72aade..45d8d5b 100644
--- a/components/feed/core/v2/api_test/feed_api_notice_card_unittest.cc
+++ b/components/feed/core/v2/api_test/feed_api_notice_card_unittest.cc
@@ -57,10 +57,10 @@
           .slice_id();
   stream_->ReportSliceViewed(surface.GetSurfaceId(), surface.GetStreamType(),
                              slice_id);
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
   stream_->ReportSliceViewed(surface.GetSurfaceId(), surface.GetStreamType(),
                              slice_id);
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
   stream_->ReportSliceViewed(surface.GetSurfaceId(), surface.GetStreamType(),
                              slice_id);
   stream_->ReportOpenAction(GURL(), surface.GetStreamType(), slice_id);
diff --git a/components/feed/core/v2/api_test/feed_api_reliability_logging_unittest.cc b/components/feed/core/v2/api_test/feed_api_reliability_logging_unittest.cc
index fe7742b9..da4c51d 100644
--- a/components/feed/core/v2/api_test/feed_api_reliability_logging_unittest.cc
+++ b/components/feed/core/v2/api_test/feed_api_reliability_logging_unittest.cc
@@ -315,7 +315,7 @@
           /*first_cluster_id=*/0,
           kTestTimeEpoch -
               GetFeedConfig().GetStalenessThreshold(kForYouStream) -
-              base::TimeDelta::FromMinutes(1)),
+              base::Minutes(1)),
       base::DoNothing());
 
   // Store is stale, so we should fallback to a network request.
@@ -348,7 +348,7 @@
           /*first_cluster_id=*/0,
           kTestTimeEpoch -
               GetFeedConfig().GetStalenessThreshold(kForYouStream) -
-              base::TimeDelta::FromMinutes(1)),
+              base::Minutes(1)),
       base::DoNothing());
 
   // Store is stale, so we should fallback to a network request.
diff --git a/components/feed/core/v2/api_test/feed_api_stream_unittest.cc b/components/feed/core/v2/api_test/feed_api_stream_unittest.cc
index c6472c7..95ec3ef 100644
--- a/components/feed/core/v2/api_test/feed_api_stream_unittest.cc
+++ b/components/feed/core/v2/api_test/feed_api_stream_unittest.cc
@@ -73,8 +73,7 @@
     injected_response.model_update_request = MakeTypicalInitialModelState();
     RequestSchedule schedule;
     schedule.anchor_time = kTestTimeEpoch;
-    schedule.refresh_offsets = {base::TimeDelta::FromSeconds(12),
-                                base::TimeDelta::FromSeconds(48)};
+    schedule.refresh_offsets = {base::Seconds(12), base::Seconds(48)};
 
     injected_response.request_schedule = schedule;
     response_translator_.InjectResponse(std::move(injected_response));
@@ -422,8 +421,7 @@
   {
     RequestSchedule schedule;
     schedule.anchor_time = kTestTimeEpoch;
-    schedule.refresh_offsets = {base::TimeDelta::FromSeconds(12),
-                                base::TimeDelta::FromSeconds(48)};
+    schedule.refresh_offsets = {base::Seconds(12), base::Seconds(48)};
     RefreshResponseData response_data;
     response_data.model_update_request = MakeTypicalInitialModelState();
     response_data.request_schedule = schedule;
@@ -438,26 +436,26 @@
   }
 
   // Verify the first refresh was scheduled.
-  EXPECT_EQ(base::TimeDelta::FromSeconds(12),
+  EXPECT_EQ(base::Seconds(12),
             refresh_scheduler_
                 .scheduled_run_times[RefreshTaskId::kRefreshForYouFeed]);
 
   // Simulate executing the background task.
   refresh_scheduler_.Clear();
-  task_environment_.AdvanceClock(base::TimeDelta::FromSeconds(12));
+  task_environment_.AdvanceClock(base::Seconds(12));
   stream_->ExecuteRefreshTask(RefreshTaskId::kRefreshForYouFeed);
   WaitForIdleTaskQueue();
 
   // Verify |RefreshTaskComplete()| was called and next refresh was scheduled.
   EXPECT_TRUE(refresh_scheduler_.completed_tasks.count(
       RefreshTaskId::kRefreshForYouFeed));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(48 - 12),
+  EXPECT_EQ(base::Seconds(48 - 12),
             refresh_scheduler_
                 .scheduled_run_times[RefreshTaskId::kRefreshForYouFeed]);
 
   // Simulate executing the background task again.
   refresh_scheduler_.Clear();
-  task_environment_.AdvanceClock(base::TimeDelta::FromSeconds(48 - 12));
+  task_environment_.AdvanceClock(base::Seconds(48 - 12));
   stream_->ExecuteRefreshTask(RefreshTaskId::kRefreshForYouFeed);
   WaitForIdleTaskQueue();
 
@@ -474,8 +472,7 @@
   {
     RequestSchedule schedule;
     schedule.anchor_time = kTestTimeEpoch;
-    schedule.refresh_offsets = {base::TimeDelta::FromSeconds(12),
-                                base::TimeDelta::FromSeconds(48)};
+    schedule.refresh_offsets = {base::Seconds(12), base::Seconds(48)};
     RefreshResponseData response_data;
     response_data.model_update_request = MakeTypicalInitialModelState();
     response_data.request_schedule = schedule;
@@ -491,7 +488,7 @@
   // Ensure a refresh is foreced only after a scheduled refresh was missed.
   // First, load the stream after 11 seconds.
   response_translator_.InjectResponse(MakeTypicalInitialModelState());
-  task_environment_.AdvanceClock(base::TimeDelta::FromSeconds(11));
+  task_environment_.AdvanceClock(base::Seconds(11));
   surface.Attach(stream_.get());
   WaitForIdleTaskQueue();
   ASSERT_EQ(1, network_.send_query_call_count);  // no refresh yet
@@ -500,7 +497,7 @@
   // 12 seconds.
   surface.Detach();
   stream_->UnloadModel(surface.GetStreamType());
-  task_environment_.AdvanceClock(base::TimeDelta::FromSeconds(2));
+  task_environment_.AdvanceClock(base::Seconds(2));
   surface.Attach(stream_.get());
   WaitForIdleTaskQueue();
 
@@ -531,7 +528,7 @@
   // Fast forward enough to pass the server stale age but not the default stale
   // age.
   task_environment_.FastForwardBy(server_staleness_threshold +
-                                  base::TimeDelta::FromSeconds(1));
+                                  base::Seconds(1));
 
   // Set up the response translator to be prepared for another request (which we
   // expect to happen).
@@ -571,7 +568,7 @@
   }
 
   base::TimeDelta content_age =
-      server_content_expiration_threshold + base::TimeDelta::FromSeconds(1);
+      server_content_expiration_threshold + base::Seconds(1);
 
   // Fast forward enough to pass the server expiration age but not the default
   // expiration age.
@@ -607,7 +604,7 @@
           /*first_cluster_id=*/0,
           kTestTimeEpoch -
               GetFeedConfig().GetStalenessThreshold(GetStreamType()) -
-              base::TimeDelta::FromMinutes(1)),
+              base::Minutes(1)),
       base::DoNothing());
 
   // Store is stale, so we should fallback to a network request.
@@ -624,8 +621,7 @@
 TEST_F(FeedApiTest, LoadFromNetworkBecauseStoreIsExpired) {
   base::HistogramTester histograms;
   const base::TimeDelta kContentAge =
-      GetFeedConfig().content_expiration_threshold +
-      base::TimeDelta::FromMinutes(1);
+      GetFeedConfig().content_expiration_threshold + base::Minutes(1);
   store_->OverwriteStream(
       kForYouStream,
       MakeTypicalInitialModelState(
@@ -651,7 +647,7 @@
   // Fill the store with stream data that is just barely stale.
   base::HistogramTester histograms;
   const base::TimeDelta kContentAge =
-      GetFeedConfig().stale_content_threshold + base::TimeDelta::FromMinutes(1);
+      GetFeedConfig().stale_content_threshold + base::Minutes(1);
   store_->OverwriteStream(
       kForYouStream,
       MakeTypicalInitialModelState(
@@ -680,7 +676,7 @@
       MakeTypicalInitialModelState(
           /*first_cluster_id=*/0,
           kTestTimeEpoch - GetFeedConfig().content_expiration_threshold -
-              base::TimeDelta::FromMinutes(1)),
+              base::Minutes(1)),
       base::DoNothing());
 
   // Store contains expired content, so we should fallback to a network request.
@@ -767,8 +763,7 @@
   model_generator.signed_in = false;
 
   // Advance the clock, but not past the end of the forced-signed-out period.
-  task_environment_.FastForwardBy(kSuppressRefreshDuration -
-                                  base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(kSuppressRefreshDuration - base::Seconds(1));
 
   // Refresh the feed, queuing up a signed-out response.
   response_translator_.InjectResponse(model_generator.MakeFirstPage(),
@@ -791,7 +786,7 @@
   EXPECT_FALSE(stream_->GetModel(surface.GetStreamType())->signed_in());
 
   // Advance the clock beyond the forced signed out period.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_environment_.FastForwardBy(base::Seconds(2));
   EXPECT_FALSE(stream_->GetModel(surface.GetStreamType())->signed_in());
 
   // Requests for subsequent pages continue the use existing session.
@@ -847,8 +842,7 @@
 
 TEST_F(FeedApiTest, AllowSignedInRequestAfterHistoryIsDeletedAfterDelay) {
   stream_->OnAllHistoryDeleted();
-  task_environment_.FastForwardBy(kSuppressRefreshDuration +
-                                  base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(kSuppressRefreshDuration + base::Seconds(1));
   response_translator_.InjectResponse(MakeTypicalInitialModelState());
   TestForYouSurface surface(stream_.get());
   WaitForIdleTaskQueue();
@@ -878,7 +872,7 @@
       MakeTypicalInitialModelState(
           /*first_cluster_id=*/0, kTestTimeEpoch -
                                       GetFeedConfig().stale_content_threshold +
-                                      base::TimeDelta::FromMinutes(1)),
+                                      base::Minutes(1)),
       base::DoNothing());
   TestForYouSurface surface(stream_.get());
   WaitForIdleTaskQueue();
@@ -1046,7 +1040,7 @@
   }
   // Wait until the feed content is stale.
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(100));
+  task_environment_.FastForwardBy(base::Hours(100));
 
   // Load content from the network again. This time there is no new content.
   response_translator_.InjectResponse(MakeTypicalInitialModelState());
@@ -1144,7 +1138,7 @@
             callback.RunAndGetResult().request_status);
 
   // Wait for model to unload and reattach surface. New content is loaded.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment_.FastForwardBy(base::Seconds(5));
   surface.Attach(stream_.get());
   WaitForIdleTaskQueue();
   ASSERT_EQ("loading -> 3 slices", surface.DescribeUpdates());
@@ -1402,9 +1396,8 @@
   RequestSchedule schedule = prefs::GetRequestSchedule(
       RefreshTaskId::kRefreshForYouFeed, profile_prefs_);
   EXPECT_EQ(std::vector<base::TimeDelta>({
-                base::TimeDelta::FromSeconds(86308) +
-                    base::TimeDelta::FromNanoseconds(822963644),
-                base::TimeDelta::FromSeconds(120000),
+                base::Seconds(86308) + base::Nanoseconds(822963644),
+                base::Seconds(120000),
             }),
             schedule.refresh_offsets);
 
@@ -1786,7 +1779,7 @@
 TEST_F(FeedApiTest, UploadActionsSkipsStaleActionsByTimestamp) {
   stream_->UploadAction(MakeFeedAction(2ul), false, base::DoNothing());
   WaitForIdleTaskQueue();
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(25));
+  task_environment_.FastForwardBy(base::Hours(25));
 
   // Trigger upload
   CallbackReceiver<UploadActionsTask::Result> cr;
@@ -1830,7 +1823,7 @@
 }
 
 TEST_F(FeedApiTest, MetadataLoadedWhenDatabaseInitialized) {
-  const auto kExpiry = kTestTimeEpoch + base::TimeDelta::FromDays(1234);
+  const auto kExpiry = kTestTimeEpoch + base::Days(1234);
   {
     // Write some metadata so it can be loaded when FeedStream starts up.
     feedstore::Metadata initial_metadata;
@@ -1870,7 +1863,7 @@
 
 TEST_F(FeedApiTest, ModelUnloadsAfterTimeout) {
   Config config;
-  config.model_unload_timeout = base::TimeDelta::FromSeconds(1);
+  config.model_unload_timeout = base::Seconds(1);
   SetFeedConfigForTesting(config);
 
   response_translator_.InjectResponse(MakeTypicalInitialModelState());
@@ -1879,18 +1872,18 @@
 
   surface.Detach();
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(999));
+  task_environment_.FastForwardBy(base::Milliseconds(999));
   WaitForIdleTaskQueue();
   EXPECT_TRUE(stream_->GetModel(surface.GetStreamType()));
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(2));
+  task_environment_.FastForwardBy(base::Milliseconds(2));
   WaitForIdleTaskQueue();
   EXPECT_FALSE(stream_->GetModel(surface.GetStreamType()));
 }
 
 TEST_F(FeedApiTest, ModelDoesNotUnloadIfSurfaceIsAttached) {
   Config config;
-  config.model_unload_timeout = base::TimeDelta::FromSeconds(1);
+  config.model_unload_timeout = base::Seconds(1);
   SetFeedConfigForTesting(config);
 
   response_translator_.InjectResponse(MakeTypicalInitialModelState());
@@ -1899,20 +1892,20 @@
 
   surface.Detach();
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(999));
+  task_environment_.FastForwardBy(base::Milliseconds(999));
   WaitForIdleTaskQueue();
   EXPECT_TRUE(stream_->GetModel(surface.GetStreamType()));
 
   surface.Attach(stream_.get());
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(2));
+  task_environment_.FastForwardBy(base::Milliseconds(2));
   WaitForIdleTaskQueue();
   EXPECT_TRUE(stream_->GetModel(surface.GetStreamType()));
 }
 
 TEST_F(FeedApiTest, ModelUnloadsAfterSecondTimeout) {
   Config config;
-  config.model_unload_timeout = base::TimeDelta::FromSeconds(1);
+  config.model_unload_timeout = base::Seconds(1);
   SetFeedConfigForTesting(config);
 
   response_translator_.InjectResponse(MakeTypicalInitialModelState());
@@ -1921,7 +1914,7 @@
 
   surface.Detach();
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(999));
+  task_environment_.FastForwardBy(base::Milliseconds(999));
   WaitForIdleTaskQueue();
   EXPECT_TRUE(stream_->GetModel(surface.GetStreamType()));
 
@@ -1929,11 +1922,11 @@
   surface.Attach(stream_.get());
   surface.Detach();
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(999));
+  task_environment_.FastForwardBy(base::Milliseconds(999));
   WaitForIdleTaskQueue();
   EXPECT_TRUE(stream_->GetModel(surface.GetStreamType()));
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(2));
+  task_environment_.FastForwardBy(base::Milliseconds(2));
   WaitForIdleTaskQueue();
   EXPECT_FALSE(stream_->GetModel(surface.GetStreamType()));
 }
@@ -2027,7 +2020,7 @@
   //     - the request should include the first session-id
   //     - the stream should retain the first session-id
   //     - the session-id's expiry time should be unchanged
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   response_translator_.InjectResponse(model_generator.MakeNextPage(2),
                                       kSessionToken1);
   stream_->LoadMore(surface, base::DoNothing());
@@ -2051,7 +2044,7 @@
   //     - the request should include the first session-id
   //     - the stream should retain the first session-id
   //     - the session-id's expiry time should be unchanged
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   response_translator_.InjectResponse(model_generator.MakeNextPage(3));
   stream_->LoadMore(surface, base::DoNothing());
   WaitForIdleTaskQueue();
@@ -2074,7 +2067,7 @@
   //     - the request should include the first session-id
   //     - the stream should retain the second session-id
   //     - the new session-id's expiry time should be updated
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   response_translator_.InjectResponse(model_generator.MakeNextPage(4),
                                       kSessionToken2);
   stream_->LoadMore(surface, base::DoNothing());
@@ -2089,7 +2082,7 @@
                                 .chrome_client_info()
                                 .session_id());
   EXPECT_EQ(kSessionToken2, stream_->GetMetadata().session_id().token());
-  EXPECT_TIME_EQ(kSessionToken1ExpiryTime + base::TimeDelta::FromSeconds(3),
+  EXPECT_TIME_EQ(kSessionToken1ExpiryTime + base::Seconds(3),
                  feedstore::GetSessionIdExpiryTime(stream_->GetMetadata()));
 }
 
@@ -2143,7 +2136,7 @@
   //     - the stream should retain the original session-id
   surface.Detach();
   task_environment_.FastForwardBy(GetFeedConfig().stale_content_threshold +
-                                  base::TimeDelta::FromSeconds(1));
+                                  base::Seconds(1));
   response_translator_.InjectResponse(model_generator.MakeFirstPage());
   surface.Attach(stream_.get());
   WaitForIdleTaskQueue();
@@ -2244,7 +2237,7 @@
   network_.InjectListWebFeedsResponse({MakeWireWebFeed("cats")});
 
   Config config;
-  config.model_unload_timeout = base::TimeDelta::FromSeconds(1);
+  config.model_unload_timeout = base::Seconds(1);
   SetFeedConfigForTesting(config);
 
   response_translator_.InjectResponse(MakeTypicalInitialModelState());
@@ -2256,7 +2249,7 @@
 
   for_you_surface.Detach();
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_environment_.FastForwardBy(base::Seconds(2));
   WaitForIdleTaskQueue();
 
   EXPECT_TRUE(stream_->GetModel(kWebFeedStream));
@@ -2323,7 +2316,7 @@
   TestForYouSurface surface(stream_.get());
   WaitForIdleTaskQueue();
   surface.Detach();
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(20));
+  task_environment_.FastForwardBy(base::Days(20));
 
   // Trigger stream load again, it should refersh from the network.
   surface.Attach(stream_.get());
diff --git a/components/feed/core/v2/api_test/feed_api_subscriptions_unittest.cc b/components/feed/core/v2/api_test/feed_api_subscriptions_unittest.cc
index 3a3ef6e2..354b582 100644
--- a/components/feed/core/v2/api_test/feed_api_subscriptions_unittest.cc
+++ b/components/feed/core/v2/api_test/feed_api_subscriptions_unittest.cc
@@ -656,7 +656,7 @@
 
   // Wait until the delayed task would normally run, verify no request is made.
   task_environment_.FastForwardBy(GetFeedConfig().fetch_web_feed_info_delay +
-                                  base::TimeDelta::FromSeconds(1));
+                                  base::Seconds(1));
   WaitForIdleTaskQueue();
   ASSERT_EQ(0, network_.GetListRecommendedWebFeedsRequestCount());
 }
@@ -669,7 +669,7 @@
 
   // Wait until the delayed task would normally run, verify no request is made.
   task_environment_.FastForwardBy(GetFeedConfig().fetch_web_feed_info_delay +
-                                  base::TimeDelta::FromSeconds(1));
+                                  base::Seconds(1));
   WaitForIdleTaskQueue();
   EXPECT_EQ(0, network_.GetListRecommendedWebFeedsRequestCount());
   EXPECT_EQ(0, network_.GetListFollowedWebFeedsRequestCount());
@@ -681,7 +681,7 @@
 
   // Wait until the delayed task runs, and verify the network request was sent.
   task_environment_.FastForwardBy(GetFeedConfig().fetch_web_feed_info_delay +
-                                  base::TimeDelta::FromSeconds(1));
+                                  base::Seconds(1));
   WaitForIdleTaskQueue();
   ASSERT_EQ(1, network_.GetListRecommendedWebFeedsRequestCount());
 
@@ -709,7 +709,7 @@
     // Wait until the delayed task runs, and verify the network request was
     // sent.
     task_environment_.FastForwardBy(GetFeedConfig().fetch_web_feed_info_delay +
-                                    base::TimeDelta::FromSeconds(1));
+                                    base::Seconds(1));
     WaitForIdleTaskQueue();
     ASSERT_EQ(1, network_.GetListRecommendedWebFeedsRequestCount());
     ASSERT_EQ(
@@ -734,7 +734,7 @@
 
   // Wait until the delayed task runs, and verify the network request was sent.
   task_environment_.FastForwardBy(GetFeedConfig().fetch_web_feed_info_delay +
-                                  base::TimeDelta::FromSeconds(1));
+                                  base::Seconds(1));
   WaitForIdleTaskQueue();
   ASSERT_EQ(1, network_.GetListRecommendedWebFeedsRequestCount());
 
@@ -764,7 +764,7 @@
     InjectRecommendedWebFeedsResponse({MakeWireWebFeed("cats")});
 
     task_environment_.FastForwardBy(GetFeedConfig().fetch_web_feed_info_delay +
-                                    base::TimeDelta::FromSeconds(1));
+                                    base::Seconds(1));
     WaitForIdleTaskQueue();
     ASSERT_EQ(1, network_.GetListRecommendedWebFeedsRequestCount());
   }
@@ -775,7 +775,7 @@
     CreateStream();
 
     task_environment_.FastForwardBy(GetFeedConfig().fetch_web_feed_info_delay +
-                                    base::TimeDelta::FromSeconds(1));
+                                    base::Seconds(1));
     WaitForIdleTaskQueue();
     ASSERT_EQ(1, network_.GetListRecommendedWebFeedsRequestCount());
   }
@@ -790,7 +790,7 @@
     CreateStream();
 
     task_environment_.FastForwardBy(GetFeedConfig().fetch_web_feed_info_delay +
-                                    base::TimeDelta::FromSeconds(1));
+                                    base::Seconds(1));
     WaitForIdleTaskQueue();
     ASSERT_EQ(2, network_.GetListRecommendedWebFeedsRequestCount());
     EXPECT_EQ(
@@ -812,7 +812,7 @@
 
   // Wait until the delayed task would normally run, verify no request is made.
   task_environment_.FastForwardBy(GetFeedConfig().fetch_web_feed_info_delay +
-                                  base::TimeDelta::FromSeconds(1));
+                                  base::Seconds(1));
   WaitForIdleTaskQueue();
   ASSERT_EQ(0, network_.GetListFollowedWebFeedsRequestCount());
 }
@@ -823,7 +823,7 @@
 
   // Wait until the delayed task runs, and verify the network request was sent.
   task_environment_.FastForwardBy(GetFeedConfig().fetch_web_feed_info_delay +
-                                  base::TimeDelta::FromSeconds(1));
+                                  base::Seconds(1));
   WaitForIdleTaskQueue();
   ASSERT_EQ(1, network_.GetListFollowedWebFeedsRequestCount());
 
@@ -851,7 +851,7 @@
     // Wait until the delayed task runs, and verify the network request was
     // sent.
     task_environment_.FastForwardBy(GetFeedConfig().fetch_web_feed_info_delay +
-                                    base::TimeDelta::FromSeconds(1));
+                                    base::Seconds(1));
     WaitForIdleTaskQueue();
     ASSERT_EQ(1, network_.GetListFollowedWebFeedsRequestCount());
     ASSERT_EQ(
@@ -876,7 +876,7 @@
 
   // Wait until the delayed task runs, and verify the network request was sent.
   task_environment_.FastForwardBy(GetFeedConfig().fetch_web_feed_info_delay +
-                                  base::TimeDelta::FromSeconds(1));
+                                  base::Seconds(1));
   WaitForIdleTaskQueue();
   ASSERT_EQ(1, network_.GetListFollowedWebFeedsRequestCount());
 
@@ -908,7 +908,7 @@
     network_.InjectListWebFeedsResponse({MakeWireWebFeed("cats")});
 
     task_environment_.FastForwardBy(GetFeedConfig().fetch_web_feed_info_delay +
-                                    base::TimeDelta::FromSeconds(1));
+                                    base::Seconds(1));
     WaitForIdleTaskQueue();
     ASSERT_EQ(1, network_.GetListFollowedWebFeedsRequestCount());
   }
@@ -919,7 +919,7 @@
     CreateStream();
 
     task_environment_.FastForwardBy(GetFeedConfig().fetch_web_feed_info_delay +
-                                    base::TimeDelta::FromSeconds(1));
+                                    base::Seconds(1));
     WaitForIdleTaskQueue();
     ASSERT_EQ(1, network_.GetListFollowedWebFeedsRequestCount());
   }
@@ -933,7 +933,7 @@
     CreateStream();
 
     task_environment_.FastForwardBy(GetFeedConfig().fetch_web_feed_info_delay +
-                                    base::TimeDelta::FromSeconds(1));
+                                    base::Seconds(1));
     WaitForIdleTaskQueue();
     ASSERT_EQ(2, network_.GetListFollowedWebFeedsRequestCount());
     EXPECT_EQ(
diff --git a/components/feed/core/v2/api_test/feed_api_test.cc b/components/feed/core/v2/api_test/feed_api_test.cc
index f292e449..fce6ad4 100644
--- a/components/feed/core/v2/api_test/feed_api_test.cc
+++ b/components/feed/core/v2/api_test/feed_api_test.cc
@@ -387,7 +387,7 @@
     result.response_info.status_code = http_status_code;
 
   result.response_info.response_body_bytes = 100;
-  result.response_info.fetch_duration = base::TimeDelta::FromMilliseconds(42);
+  result.response_info.fetch_duration = base::Milliseconds(42);
   result.response_info.was_signed_in = true;
   if (injected_response_) {
     result.response_body = std::make_unique<feedwire::Response>(
diff --git a/components/feed/core/v2/config.cc b/components/feed/core/v2/config.cc
index 77483db..bf748b00 100644
--- a/components/feed/core/v2/config.cc
+++ b/components/feed/core/v2/config.cc
@@ -56,22 +56,22 @@
           config->max_list_web_feeds_requests_per_day);
 
   config->stale_content_threshold =
-      base::TimeDelta::FromSecondsD(base::GetFieldTrialParamByFeatureAsDouble(
+      base::Seconds(base::GetFieldTrialParamByFeatureAsDouble(
           kInterestFeedV2, "stale_content_threshold_seconds",
           config->stale_content_threshold.InSecondsF()));
 
   config->content_expiration_threshold =
-      base::TimeDelta::FromSecondsD(base::GetFieldTrialParamByFeatureAsDouble(
+      base::Seconds(base::GetFieldTrialParamByFeatureAsDouble(
           kInterestFeedV2, "content_expiration_threshold_seconds",
           config->content_expiration_threshold.InSecondsF()));
 
   config->background_refresh_window_length =
-      base::TimeDelta::FromSecondsD(base::GetFieldTrialParamByFeatureAsDouble(
+      base::Seconds(base::GetFieldTrialParamByFeatureAsDouble(
           kInterestFeedV2, "background_refresh_window_length_seconds",
           config->background_refresh_window_length.InSecondsF()));
 
   config->default_background_refresh_interval =
-      base::TimeDelta::FromSecondsD(base::GetFieldTrialParamByFeatureAsDouble(
+      base::Seconds(base::GetFieldTrialParamByFeatureAsDouble(
           kInterestFeedV2, "default_background_refresh_interval_seconds",
           config->default_background_refresh_interval.InSecondsF()));
 
@@ -80,7 +80,7 @@
       config->max_action_upload_attempts);
 
   config->max_action_age =
-      base::TimeDelta::FromSecondsD(base::GetFieldTrialParamByFeatureAsDouble(
+      base::Seconds(base::GetFieldTrialParamByFeatureAsDouble(
           kInterestFeedV2, "max_action_age_seconds",
           config->max_action_age.InSecondsF()));
 
@@ -89,7 +89,7 @@
       config->max_action_upload_bytes);
 
   config->model_unload_timeout =
-      base::TimeDelta::FromSecondsD(base::GetFieldTrialParamByFeatureAsDouble(
+      base::Seconds(base::GetFieldTrialParamByFeatureAsDouble(
           kInterestFeedV2, "model_unload_timeout_seconds",
           config->model_unload_timeout.InSecondsF()));
 
@@ -113,7 +113,7 @@
           config->send_signed_out_session_logs);
 
   config->session_id_max_age =
-      base::TimeDelta::FromDays(base::GetFieldTrialParamByFeatureAsInt(
+      base::Days(base::GetFieldTrialParamByFeatureAsInt(
           kInterestFeedV2, "session_id_max_age_days",
           config->session_id_max_age.InDays()));
 
@@ -128,17 +128,17 @@
           config->webfeed_accelerator_recent_visit_history_days);
 
   config->recommended_feeds_staleness_threshold =
-      base::TimeDelta::FromDays(base::GetFieldTrialParamByFeatureAsInt(
+      base::Days(base::GetFieldTrialParamByFeatureAsInt(
           kWebFeed, "recommended_feeds_staleness_threshold_days",
           config->recommended_feeds_staleness_threshold.InDays()));
 
   config->subscribed_feeds_staleness_threshold =
-      base::TimeDelta::FromDays(base::GetFieldTrialParamByFeatureAsInt(
+      base::Days(base::GetFieldTrialParamByFeatureAsInt(
           kWebFeed, "subscribed_feeds_staleness_threshold_days",
           config->subscribed_feeds_staleness_threshold.InDays()));
 
   config->web_feed_stale_content_threshold =
-      base::TimeDelta::FromSecondsD(base::GetFieldTrialParamByFeatureAsDouble(
+      base::Seconds(base::GetFieldTrialParamByFeatureAsDouble(
           kWebFeed, "web_feed_stale_content_threshold_seconds",
           config->web_feed_stale_content_threshold.InSecondsF()));
 
diff --git a/components/feed/core/v2/config.h b/components/feed/core/v2/config.h
index 06f7280..76aa1e5 100644
--- a/components/feed/core/v2/config.h
+++ b/components/feed/core/v2/config.h
@@ -23,27 +23,25 @@
   int max_list_recommended_web_feeds_requests_per_day = 20;
   int max_list_web_feeds_requests_per_day = 20;
   // We'll always attempt to refresh content older than this.
-  base::TimeDelta stale_content_threshold = base::TimeDelta::FromHours(4);
+  base::TimeDelta stale_content_threshold = base::Hours(4);
   // Content older than this threshold will not be shown to the user.
-  base::TimeDelta content_expiration_threshold = base::TimeDelta::FromHours(48);
+  base::TimeDelta content_expiration_threshold = base::Hours(48);
   // How long the window is for background refresh tasks. If the task cannot be
   // scheduled in the window, the background refresh is aborted.
-  base::TimeDelta background_refresh_window_length =
-      base::TimeDelta::FromHours(24);
+  base::TimeDelta background_refresh_window_length = base::Hours(24);
   // The time between background refresh attempts. Ignored if a server-defined
   // fetch schedule has been assigned.
-  base::TimeDelta default_background_refresh_interval =
-      base::TimeDelta::FromHours(24);
+  base::TimeDelta default_background_refresh_interval = base::Hours(24);
   // Maximum number of times to attempt to upload a pending action before
   // deleting it.
   int max_action_upload_attempts = 3;
   // Maximum age for a pending action. Actions older than this are deleted.
-  base::TimeDelta max_action_age = base::TimeDelta::FromHours(24);
+  base::TimeDelta max_action_age = base::Hours(24);
   // Maximum payload size for one action upload batch.
   size_t max_action_upload_bytes = 20000;
   // If no surfaces are attached, the stream model is unloaded after this
   // timeout.
-  base::TimeDelta model_unload_timeout = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta model_unload_timeout = base::Seconds(1);
   // How far ahead in number of items from last visible item to final item
   // before attempting to load more content.
   int load_more_trigger_lookahead = 5;
@@ -56,26 +54,23 @@
   // Whether to send (pseudonymous) logs for signed-out sessions.
   bool send_signed_out_session_logs = false;
   // The max age of a signed-out session token.
-  base::TimeDelta session_id_max_age = base::TimeDelta::FromDays(30);
+  base::TimeDelta session_id_max_age = base::Days(30);
   // Maximum number of images prefetched per refresh.
   int max_prefetch_image_requests_per_refresh = 50;
 
   // Configuration for Web Feeds.
 
   // How long before Web Feed content is considered stale.
-  base::TimeDelta web_feed_stale_content_threshold =
-      base::TimeDelta::FromHours(1);
+  base::TimeDelta web_feed_stale_content_threshold = base::Hours(1);
   // TimeDelta after startup to fetch recommended and subscribed Web Feeds if
   // they are stale. If zero, no fetching is done.
-  base::TimeDelta fetch_web_feed_info_delay = base::TimeDelta::FromSeconds(40);
+  base::TimeDelta fetch_web_feed_info_delay = base::Seconds(40);
   // How long before cached recommended feed data on the device is considered
   // stale and refetched.
-  base::TimeDelta recommended_feeds_staleness_threshold =
-      base::TimeDelta::FromDays(28);
+  base::TimeDelta recommended_feeds_staleness_threshold = base::Days(28);
   // How long before cached subscribed feed data on the device is considered
   // stale and refetched.
-  base::TimeDelta subscribed_feeds_staleness_threshold =
-      base::TimeDelta::FromDays(7);
+  base::TimeDelta subscribed_feeds_staleness_threshold = base::Days(7);
   // Number of days of history to query when determining whether to show the
   // follow accelerator.
   int webfeed_accelerator_recent_visit_history_days = 14;
diff --git a/components/feed/core/v2/feed_network_impl.cc b/components/feed/core/v2/feed_network_impl.cc
index 16480ea..695a5fd1 100644
--- a/components/feed/core/v2/feed_network_impl.cc
+++ b/components/feed/core/v2/feed_network_impl.cc
@@ -49,7 +49,7 @@
 namespace feed {
 namespace {
 constexpr char kApplicationXProtobuf[] = "application/x-protobuf";
-constexpr base::TimeDelta kNetworkTimeout = base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kNetworkTimeout = base::Seconds(30);
 constexpr char kDiscoverHost[] = "https://discover-pa.googleapis.com/";
 
 signin::ScopeSet GetAuthScopes() {
diff --git a/components/feed/core/v2/feedstore_util.cc b/components/feed/core/v2/feedstore_util.cc
index 3c0c41f..5142fa1 100644
--- a/components/feed/core/v2/feedstore_util.cc
+++ b/components/feed/core/v2/feedstore_util.cc
@@ -34,7 +34,7 @@
 }
 
 base::Time FromTimestampMillis(int64_t millis) {
-  return base::Time::UnixEpoch() + base::TimeDelta::FromMilliseconds(millis);
+  return base::Time::UnixEpoch() + base::Milliseconds(millis);
 }
 
 void SetLastAddedTime(base::Time t, feedstore::StreamData& data) {
@@ -47,8 +47,7 @@
 
 base::Time GetSessionIdExpiryTime(const Metadata& metadata) {
   return base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMilliseconds(
-          metadata.session_id().expiry_time_ms()));
+      base::Milliseconds(metadata.session_id().expiry_time_ms()));
 }
 
 void SetSessionId(Metadata& metadata,
diff --git a/components/feed/core/v2/feedstore_util_unittest.cc b/components/feed/core/v2/feedstore_util_unittest.cc
index 219a768..95f4e2ce 100644
--- a/components/feed/core/v2/feedstore_util_unittest.cc
+++ b/components/feed/core/v2/feedstore_util_unittest.cc
@@ -13,7 +13,7 @@
 namespace feedstore {
 namespace {
 base::Time kTestTimeEpoch = base::Time::UnixEpoch();
-const base::Time kExpiryTime1 = kTestTimeEpoch + base::TimeDelta::FromHours(2);
+const base::Time kExpiryTime1 = kTestTimeEpoch + base::Hours(2);
 
 const std::string Token1() {
   return "token1";
diff --git a/components/feed/core/v2/metrics_reporter.cc b/components/feed/core/v2/metrics_reporter.cc
index b32af80a..a1c3992 100644
--- a/components/feed/core/v2/metrics_reporter.cc
+++ b/components/feed/core/v2/metrics_reporter.cc
@@ -29,16 +29,16 @@
 // Maximum time to wait before declaring a load operation failed.
 // For both ContentSuggestions.Feed.UserJourney.OpenFeed
 // and ContentSuggestions.Feed.UserJourney.GetMore.
-constexpr base::TimeDelta kLoadTimeout = base::TimeDelta::FromSeconds(15);
+constexpr base::TimeDelta kLoadTimeout = base::Seconds(15);
 // Maximum time to wait before declaring opening a card a failure.
 // For ContentSuggestions.Feed.UserJourney.OpenCard.
-constexpr base::TimeDelta kOpenTimeout = base::TimeDelta::FromSeconds(20);
+constexpr base::TimeDelta kOpenTimeout = base::Seconds(20);
 // For ContentSuggestions.Feed.TimeSpentInFeed, we want to get a measure
 // of how much time the user is spending with the Feed. If the user stops
 // interacting with the Feed, we stop counting it as time spent after this
 // timeout.
 constexpr base::TimeDelta kTimeSpentInFeedInteractionTimeout =
-    base::TimeDelta::FromSeconds(30);
+    base::Seconds(30);
 
 void ReportEngagementTypeHistogram(const StreamType& stream_type,
                                    FeedEngagementType engagement_type) {
@@ -104,10 +104,10 @@
 void ReportLoadLatencies(std::unique_ptr<LoadLatencyTimes> latencies) {
   for (const LoadLatencyTimes::Step& step : latencies->steps()) {
     // TODO(crbug/1152592): Add a WebFeed-specific histogram for this.
-    base::UmaHistogramCustomTimes(
-        "ContentSuggestions.Feed.LoadStepLatency." +
-            LoadLatencyStepName(step.kind),
-        step.latency, base::TimeDelta::FromMilliseconds(50), kLoadTimeout, 50);
+    base::UmaHistogramCustomTimes("ContentSuggestions.Feed.LoadStepLatency." +
+                                      LoadLatencyStepName(step.kind),
+                                  step.latency, base::Milliseconds(50),
+                                  kLoadTimeout, 50);
   }
 }
 
@@ -241,7 +241,7 @@
   scroll_distance_dp = std::abs(scroll_distance_dp);
   // Determine if this interaction is part of a new 'session'.
   base::TimeTicks now = base::TimeTicks::Now();
-  const base::TimeDelta kVisitTimeout = base::TimeDelta::FromMinutes(5);
+  const base::TimeDelta kVisitTimeout = base::Minutes(5);
   if (now - visit_start_time_ > kVisitTimeout) {
     FinalizeVisit();
   }
@@ -536,7 +536,7 @@
                     surface_waiting.stream_type.IsWebFeed() ? ".WebFeed" : "",
                     success ? ".SuccessDuration" : ".FailureDuration"}),
       base::TimeTicks::Now() - surface_waiting.wait_start,
-      base::TimeDelta::FromMilliseconds(50), kLoadTimeout, 50);
+      base::Milliseconds(50), kLoadTimeout, 50);
 }
 
 void MetricsReporter::ReportGetMoreIfNeeded(SurfaceId surface_id,
@@ -551,7 +551,7 @@
       base::StrCat({"ContentSuggestions.Feed.UserJourney.GetMore.",
                     success ? "SuccessDuration" : "FailureDuration"}),
       base::TimeTicks::Now() - surface_waiting.wait_start,
-      base::TimeDelta::FromMilliseconds(50), kLoadTimeout, 50);
+      base::Milliseconds(50), kLoadTimeout, 50);
 }
 
 void MetricsReporter::CardOpenBegin(const StreamType& stream_type) {
@@ -581,8 +581,7 @@
 
   if (success) {
     base::UmaHistogramCustomTimes(histogram_name, latency,
-                                  base::TimeDelta::FromMilliseconds(100),
-                                  kOpenTimeout, 50);
+                                  base::Milliseconds(100), kOpenTimeout, 50);
   } else {
     base::UmaHistogramBoolean(histogram_name, true);
   }
@@ -653,14 +652,12 @@
     if (loaded_new_content_from_network) {
       base::UmaHistogramCustomTimes(
           "ContentSuggestions.Feed.ContentAgeOnLoad.BlockingRefresh",
-          stored_content_age, base::TimeDelta::FromMinutes(5),
-          base::TimeDelta::FromDays(7),
+          stored_content_age, base::Minutes(5), base::Days(7),
           /*buckets=*/50);
     } else {
       base::UmaHistogramCustomTimes(
           "ContentSuggestions.Feed.ContentAgeOnLoad.NotRefreshed",
-          stored_content_age, base::TimeDelta::FromSeconds(5),
-          base::TimeDelta::FromDays(7),
+          stored_content_age, base::Seconds(5), base::Days(7),
           /*buckets=*/50);
     }
   }
@@ -756,8 +753,7 @@
 void MetricsReporter::OnClearAll(base::TimeDelta time_since_last_clear) {
   base::UmaHistogramCustomTimes(
       "ContentSuggestions.Feed.Scheduler.TimeSinceLastFetchOnClear",
-      time_since_last_clear, base::TimeDelta::FromSeconds(1),
-      base::TimeDelta::FromDays(7),
+      time_since_last_clear, base::Seconds(1), base::Days(7),
       /*bucket_count=*/50);
 }
 
@@ -771,9 +767,9 @@
     // Report metrics if 24 hours have passed since the day started.
     const base::TimeDelta since_day_start =
         (base::Time::Now() - persistent_data_.current_day_start);
-    if (since_day_start > base::TimeDelta::FromDays(1)
+    if (since_day_start > base::Days(1)
         // Allow up to 1 hour of negative delta, for expected clock changes.
-        || since_day_start < -base::TimeDelta::FromHours(1)) {
+        || since_day_start < -base::Hours(1)) {
       if (persistent_data_.accumulated_time_spent_in_feed > base::TimeDelta()) {
         base::UmaHistogramLongTimes(
             "ContentSuggestions.Feed.TimeSpentInFeed",
diff --git a/components/feed/core/v2/metrics_reporter_unittest.cc b/components/feed/core/v2/metrics_reporter_unittest.cc
index 74cbf90e..0b7d465 100644
--- a/components/feed/core/v2/metrics_reporter_unittest.cc
+++ b/components/feed/core/v2/metrics_reporter_unittest.cc
@@ -26,7 +26,7 @@
 constexpr StreamType kCombinedStreams = StreamType();
 
 constexpr SurfaceId kSurfaceId = SurfaceId(5);
-const base::TimeDelta kEpsilon = base::TimeDelta::FromMilliseconds(1);
+const base::TimeDelta kEpsilon = base::Milliseconds(1);
 const int kSubscriptionCount = 42;
 const ContentStats kContentStats = {
     /*card_count=*/12,
@@ -47,8 +47,8 @@
 
     // Tests start at the beginning of a day.
     task_environment_.AdvanceClock(
-        (base::Time::Now().LocalMidnight() + base::TimeDelta::FromDays(1)) -
-        base::Time::Now() + base::TimeDelta::FromSeconds(1));
+        (base::Time::Now().LocalMidnight() + base::Days(1)) -
+        base::Time::Now() + base::Seconds(1));
 
     RecreateMetricsReporter();
   }
@@ -190,9 +190,9 @@
 
 TEST_F(MetricsReporterTest, VisitsCanLastMoreThanFiveMinutes) {
   reporter_->StreamScrolled(kForYouStream, 1);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(5) - kEpsilon);
+  task_environment_.FastForwardBy(base::Minutes(5) - kEpsilon);
   reporter_->OpenAction(kForYouStream, 0);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(5) - kEpsilon);
+  task_environment_.FastForwardBy(base::Minutes(5) - kEpsilon);
   reporter_->StreamScrolled(kForYouStream, 1);
 
   std::map<FeedEngagementType, int> want({
@@ -208,7 +208,7 @@
 TEST_F(MetricsReporterTest, NewVisitAfterInactivity) {
   reporter_->OpenAction(kForYouStream, 0);
   reporter_->StreamScrolled(kForYouStream, 1);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(5) + kEpsilon);
+  task_environment_.FastForwardBy(base::Minutes(5) + kEpsilon);
   reporter_->OpenAction(kForYouStream, 0);
   reporter_->StreamScrolled(kForYouStream, 1);
 
@@ -248,7 +248,7 @@
       "ContentSuggestions.Feed.WebFeed.FollowCount.Engaged", kSubscriptionCount,
       1);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(5) + kEpsilon);
+  task_environment_.FastForwardBy(base::Minutes(5) + kEpsilon);
   reporter_->OpenAction(kForYouStream, 0);
   reporter_->StreamScrolled(kForYouStream, 1);
 
@@ -279,8 +279,8 @@
                           LoadStreamStatus::kLoadedFromNetwork,
                           /*is_initial_load=*/true,
                           /*loaded_new_content_from_network=*/true,
-                          /*stored_content_age=*/base::TimeDelta::FromDays(5),
-                          kContentStats, DefaultRequestMetadata(),
+                          /*stored_content_age=*/base::Days(5), kContentStats,
+                          DefaultRequestMetadata(),
                           std::make_unique<LoadLatencyTimes>());
 
   histogram_.ExpectUniqueSample(
@@ -303,8 +303,8 @@
                           LoadStreamStatus::kLoadedFromNetwork,
                           /*is_initial_load=*/true,
                           /*loaded_new_content_from_network=*/true,
-                          /*stored_content_age=*/base::TimeDelta::FromDays(5),
-                          kContentStats, DefaultRequestMetadata(),
+                          /*stored_content_age=*/base::Days(5), kContentStats,
+                          DefaultRequestMetadata(),
                           std::make_unique<LoadLatencyTimes>());
 
   histogram_.ExpectUniqueSample(
@@ -340,8 +340,8 @@
                           LoadStreamStatus::kLoadedFromNetwork,
                           /*is_initial_load=*/true,
                           /*loaded_new_content_from_network=*/true,
-                          /*stored_content_age=*/base::TimeDelta::FromDays(5),
-                          kContentStats, request_metadata,
+                          /*stored_content_age=*/base::Days(5), kContentStats,
+                          request_metadata,
                           std::make_unique<LoadLatencyTimes>());
 
   histogram_.ExpectUniqueSample(
@@ -359,8 +359,8 @@
                           LoadStreamStatus::kLoadedFromNetwork,
                           /*is_initial_load=*/true,
                           /*loaded_new_content_from_network=*/true,
-                          /*stored_content_age=*/base::TimeDelta::FromDays(5),
-                          ContentStats(), DefaultRequestMetadata(),
+                          /*stored_content_age=*/base::Days(5), ContentStats(),
+                          DefaultRequestMetadata(),
                           std::make_unique<LoadLatencyTimes>());
 
   histogram_.ExpectUniqueSample(
@@ -373,8 +373,8 @@
                           LoadStreamStatus::kDataInStoreIsExpired,
                           /*is_initial_load=*/true,
                           /*loaded_new_content_from_network=*/false,
-                          /*stored_content_age=*/base::TimeDelta::FromDays(5),
-                          kContentStats, DefaultRequestMetadata(),
+                          /*stored_content_age=*/base::Days(5), kContentStats,
+                          DefaultRequestMetadata(),
                           std::make_unique<LoadLatencyTimes>());
 
   histogram_.ExpectTotalCount("ContentSuggestions.Feed.LoadedCardCount", 0);
@@ -385,8 +385,8 @@
                           LoadStreamStatus::kLoadedFromNetwork,
                           /*is_initial_load=*/false,
                           /*loaded_new_content_from_network=*/true,
-                          /*stored_content_age=*/base::TimeDelta::FromDays(5),
-                          kContentStats, DefaultRequestMetadata(),
+                          /*stored_content_age=*/base::Days(5), kContentStats,
+                          DefaultRequestMetadata(),
                           std::make_unique<LoadLatencyTimes>());
 
   histogram_.ExpectUniqueSample(
@@ -424,13 +424,13 @@
                           LoadStreamStatus::kLoadedFromNetwork,
                           /*is_initial_load=*/true,
                           /*loaded_new_content_from_network=*/true,
-                          /*stored_content_age=*/base::TimeDelta::FromDays(5),
-                          kContentStats, DefaultRequestMetadata(),
+                          /*stored_content_age=*/base::Days(5), kContentStats,
+                          DefaultRequestMetadata(),
                           std::make_unique<LoadLatencyTimes>());
 
   histogram_.ExpectUniqueTimeSample(
-      "ContentSuggestions.Feed.ContentAgeOnLoad.BlockingRefresh",
-      base::TimeDelta::FromDays(5), 1);
+      "ContentSuggestions.Feed.ContentAgeOnLoad.BlockingRefresh", base::Days(5),
+      1);
 }
 
 TEST_F(MetricsReporterTest, ReportsContentAgeNoRefresh) {
@@ -438,13 +438,13 @@
                           LoadStreamStatus::kLoadedFromStore,
                           /*is_initial_load=*/true,
                           /*loaded_new_content_from_network=*/false,
-                          /*stored_content_age=*/base::TimeDelta::FromDays(5),
-                          kContentStats, DefaultRequestMetadata(),
+                          /*stored_content_age=*/base::Days(5), kContentStats,
+                          DefaultRequestMetadata(),
                           std::make_unique<LoadLatencyTimes>());
 
   histogram_.ExpectUniqueTimeSample(
-      "ContentSuggestions.Feed.ContentAgeOnLoad.NotRefreshed",
-      base::TimeDelta::FromDays(5), 1);
+      "ContentSuggestions.Feed.ContentAgeOnLoad.NotRefreshed", base::Days(5),
+      1);
 }
 
 TEST_F(MetricsReporterTest, DoNotReportContentAgeWhenNotPositive) {
@@ -452,7 +452,7 @@
       kForYouStream, LoadStreamStatus::kDataInStoreIsStale,
       LoadStreamStatus::kLoadedFromStore, /*is_initial_load=*/true,
       /*loaded_new_content_from_network=*/false,
-      /*stored_content_age=*/-base::TimeDelta::FromSeconds(1), kContentStats,
+      /*stored_content_age=*/-base::Seconds(1), kContentStats,
       DefaultRequestMetadata(), std::make_unique<LoadLatencyTimes>());
   reporter_->OnLoadStream(kForYouStream, LoadStreamStatus::kDataInStoreIsStale,
                           LoadStreamStatus::kLoadedFromStore,
@@ -470,9 +470,9 @@
 TEST_F(MetricsReporterTest, ReportsLoadStepLatenciesOnFirstView) {
   {
     auto latencies = std::make_unique<LoadLatencyTimes>();
-    task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(150));
+    task_environment_.FastForwardBy(base::Milliseconds(150));
     latencies->StepComplete(LoadLatencyTimes::kLoadFromStore);
-    task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(50));
+    task_environment_.FastForwardBy(base::Milliseconds(50));
     latencies->StepComplete(LoadLatencyTimes::kUploadActions);
     reporter_->OnLoadStream(kForYouStream, LoadStreamStatus::kNoStatus,
                             LoadStreamStatus::kLoadedFromNetwork,
@@ -482,19 +482,19 @@
                             kContentStats, DefaultRequestMetadata(),
                             std::move(latencies));
   }
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(300));
+  task_environment_.FastForwardBy(base::Milliseconds(300));
   reporter_->FeedViewed(kSurfaceId);
   reporter_->FeedViewed(kSurfaceId);
 
   histogram_.ExpectUniqueTimeSample(
       "ContentSuggestions.Feed.LoadStepLatency.LoadFromStore",
-      base::TimeDelta::FromMilliseconds(150), 1);
+      base::Milliseconds(150), 1);
   histogram_.ExpectUniqueTimeSample(
       "ContentSuggestions.Feed.LoadStepLatency.ActionUpload",
-      base::TimeDelta::FromMilliseconds(50), 1);
+      base::Milliseconds(50), 1);
   histogram_.ExpectUniqueTimeSample(
       "ContentSuggestions.Feed.LoadStepLatency.StreamView",
-      base::TimeDelta::FromMilliseconds(300), 1);
+      base::Milliseconds(300), 1);
 }
 
 TEST_F(MetricsReporterTest, ReportsLoadMoreStatus) {
@@ -727,42 +727,42 @@
 
 TEST_F(MetricsReporterTest, OpenFeedSuccessDuration) {
   reporter_->SurfaceOpened(kForYouStream, kSurfaceId);
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(9));
+  task_environment_.FastForwardBy(base::Seconds(9));
   reporter_->FeedViewed(kSurfaceId);
 
   histogram_.ExpectUniqueTimeSample(
       "ContentSuggestions.Feed.UserJourney.OpenFeed.SuccessDuration",
-      base::TimeDelta::FromSeconds(9), 1);
+      base::Seconds(9), 1);
 }
 
 TEST_F(MetricsReporterTest, WebFeed_OpenFeedSuccessDuration) {
   reporter_->SurfaceOpened(kWebFeedStream, kSurfaceId);
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(9));
+  task_environment_.FastForwardBy(base::Seconds(9));
   reporter_->FeedViewed(kSurfaceId);
 
   histogram_.ExpectUniqueTimeSample(
       "ContentSuggestions.Feed.UserJourney.OpenFeed.WebFeed.SuccessDuration",
-      base::TimeDelta::FromSeconds(9), 1);
+      base::Seconds(9), 1);
 }
 
 TEST_F(MetricsReporterTest, OpenFeedLoadTimeout) {
   reporter_->SurfaceOpened(kForYouStream, kSurfaceId);
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(16));
+  task_environment_.FastForwardBy(base::Seconds(16));
 
   histogram_.ExpectUniqueTimeSample(
       "ContentSuggestions.Feed.UserJourney.OpenFeed.FailureDuration",
-      base::TimeDelta::FromSeconds(15), 1);
+      base::Seconds(15), 1);
   histogram_.ExpectTotalCount(
       "ContentSuggestions.Feed.UserJourney.OpenFeed.SuccessDuration", 0);
 }
 
 TEST_F(MetricsReporterTest, WebFeed_OpenFeedLoadTimeout) {
   reporter_->SurfaceOpened(kWebFeedStream, kSurfaceId);
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(16));
+  task_environment_.FastForwardBy(base::Seconds(16));
 
   histogram_.ExpectUniqueTimeSample(
       "ContentSuggestions.Feed.UserJourney.OpenFeed.WebFeed.FailureDuration",
-      base::TimeDelta::FromSeconds(15), 1);
+      base::Seconds(15), 1);
   histogram_.ExpectTotalCount(
       "ContentSuggestions.Feed.UserJourney.OpenFeed.WebFeed.SuccessDuration",
       0);
@@ -770,24 +770,24 @@
 
 TEST_F(MetricsReporterTest, OpenFeedCloseBeforeLoad) {
   reporter_->SurfaceOpened(kForYouStream, kSurfaceId);
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(14));
+  task_environment_.FastForwardBy(base::Seconds(14));
   reporter_->SurfaceClosed(kSurfaceId);
 
   histogram_.ExpectUniqueTimeSample(
       "ContentSuggestions.Feed.UserJourney.OpenFeed.FailureDuration",
-      base::TimeDelta::FromSeconds(14), 1);
+      base::Seconds(14), 1);
   histogram_.ExpectTotalCount(
       "ContentSuggestions.Feed.UserJourney.OpenFeed.SuccessDuration", 0);
 }
 
 TEST_F(MetricsReporterTest, WebFeed_OpenFeedCloseBeforeLoad) {
   reporter_->SurfaceOpened(kWebFeedStream, kSurfaceId);
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(14));
+  task_environment_.FastForwardBy(base::Seconds(14));
   reporter_->SurfaceClosed(kSurfaceId);
 
   histogram_.ExpectUniqueTimeSample(
       "ContentSuggestions.Feed.UserJourney.OpenFeed.WebFeed.FailureDuration",
-      base::TimeDelta::FromSeconds(14), 1);
+      base::Seconds(14), 1);
   histogram_.ExpectTotalCount(
       "ContentSuggestions.Feed.UserJourney.OpenFeed.WebFeed.SuccessDuration",
       0);
@@ -795,27 +795,27 @@
 
 TEST_F(MetricsReporterTest, OpenCardSuccessDuration) {
   reporter_->OpenAction(kForYouStream, 0);
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(19));
+  task_environment_.FastForwardBy(base::Seconds(19));
   reporter_->PageLoaded();
 
   histogram_.ExpectUniqueTimeSample(
       "ContentSuggestions.Feed.UserJourney.OpenCard.SuccessDuration",
-      base::TimeDelta::FromSeconds(19), 1);
+      base::Seconds(19), 1);
 }
 
 TEST_F(MetricsReporterTest, WebFeed_OpenCardSuccessDuration) {
   reporter_->OpenAction(kWebFeedStream, 0);
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(19));
+  task_environment_.FastForwardBy(base::Seconds(19));
   reporter_->PageLoaded();
 
   histogram_.ExpectUniqueTimeSample(
       "ContentSuggestions.Feed.UserJourney.OpenCard.WebFeed.SuccessDuration",
-      base::TimeDelta::FromSeconds(19), 1);
+      base::Seconds(19), 1);
 }
 
 TEST_F(MetricsReporterTest, OpenCardTimeout) {
   reporter_->OpenAction(kForYouStream, 0);
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(21));
+  task_environment_.FastForwardBy(base::Seconds(21));
   reporter_->PageLoaded();
 
   histogram_.ExpectUniqueSample(
@@ -826,7 +826,7 @@
 
 TEST_F(MetricsReporterTest, WebFeed_OpenCardTimeout) {
   reporter_->OpenAction(kWebFeedStream, 0);
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(21));
+  task_environment_.FastForwardBy(base::Seconds(21));
   reporter_->PageLoaded();
 
   histogram_.ExpectUniqueSample(
@@ -873,32 +873,32 @@
 
 TEST_F(MetricsReporterTest, TimeSpentInFeedCountsOnlyForegroundTime) {
   reporter_->OpenAction(kForYouStream, 0);
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   reporter_->OnEnterBackground();
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_environment_.FastForwardBy(base::Seconds(2));
   reporter_->OpenAction(kForYouStream, 0);
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(3));
+  task_environment_.FastForwardBy(base::Seconds(3));
   reporter_->OnEnterBackground();
 
   // Trigger reporting the persistent metrics the next day.
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
   RecreateMetricsReporter();
 
   histogram_.ExpectUniqueTimeSample("ContentSuggestions.Feed.TimeSpentInFeed",
-                                    base::TimeDelta::FromSeconds(4), 1);
+                                    base::Seconds(4), 1);
 }
 
 TEST_F(MetricsReporterTest, TimeSpentInFeedLimitsIdleTime) {
   reporter_->OpenAction(kForYouStream, 0);
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(31));
+  task_environment_.FastForwardBy(base::Seconds(31));
   reporter_->OnEnterBackground();
 
   // Trigger reporting the persistent metrics the next day.
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
   RecreateMetricsReporter();
 
   histogram_.ExpectUniqueTimeSample("ContentSuggestions.Feed.TimeSpentInFeed",
-                                    base::TimeDelta::FromSeconds(30), 1);
+                                    base::Seconds(30), 1);
 }
 
 TEST_F(MetricsReporterTest, TimeSpentInFeedIsPerDay) {
@@ -907,11 +907,11 @@
   // triggers reporting the UMA for the previous day.
   for (int i = 0; i < 49; ++i) {
     reporter_->OpenAction(kForYouStream, 0);
-    task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+    task_environment_.FastForwardBy(base::Hours(1));
   }
 
   histogram_.ExpectUniqueTimeSample("ContentSuggestions.Feed.TimeSpentInFeed",
-                                    base::TimeDelta::FromSeconds(30) * 24, 2);
+                                    base::Seconds(30) * 24, 2);
 }
 
 TEST_F(MetricsReporterTest, TimeSpentIsPersisted) {
@@ -920,28 +920,28 @@
   // the UMA for the previous day.
   for (int i = 0; i < 49; ++i) {
     reporter_->OpenAction(kForYouStream, 0);
-    task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+    task_environment_.FastForwardBy(base::Hours(1));
     reporter_->OnEnterBackground();
     RecreateMetricsReporter();
   }
 
   histogram_.ExpectUniqueTimeSample("ContentSuggestions.Feed.TimeSpentInFeed",
-                                    base::TimeDelta::FromSeconds(30) * 24, 2);
+                                    base::Seconds(30) * 24, 2);
 }
 
 TEST_F(MetricsReporterTest, TimeSpentInFeedTracksWholeScrollTime) {
   reporter_->StreamScrollStart();
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_environment_.FastForwardBy(base::Seconds(2));
   reporter_->StreamScrolled(kForYouStream, 1);
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   reporter_->OnEnterBackground();
 
   // Trigger reporting the persistent metrics the next day.
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
   RecreateMetricsReporter();
 
   histogram_.ExpectUniqueTimeSample("ContentSuggestions.Feed.TimeSpentInFeed",
-                                    base::TimeDelta::FromSeconds(3), 1);
+                                    base::Seconds(3), 1);
 }
 
 TEST_F(MetricsReporterTest, TurnOnAction) {
@@ -959,7 +959,7 @@
 TEST_F(MetricsReporterTest, NetworkRequestCompleteReportsUma) {
   NetworkResponseInfo response_info;
   response_info.status_code = 200;
-  response_info.fetch_duration = base::TimeDelta::FromSeconds(2);
+  response_info.fetch_duration = base::Seconds(2);
   response_info.encoded_size_bytes = 123 * 1024;
 
   MetricsReporter::NetworkRequestComplete(NetworkRequestType::kListWebFeeds,
@@ -970,7 +970,7 @@
       200, 1);
   histogram_.ExpectUniqueTimeSample(
       "ContentSuggestions.Feed.Network.Duration.ListFollowedWebFeeds",
-      base::TimeDelta::FromSeconds(2), 1);
+      base::Seconds(2), 1);
   histogram_.ExpectUniqueSample(
       "ContentSuggestions.Feed.Network.CompressedResponseSizeKB."
       "ListFollowedWebFeeds",
diff --git a/components/feed/core/v2/persistent_key_value_store_impl_unittest.cc b/components/feed/core/v2/persistent_key_value_store_impl_unittest.cc
index 0b467362..3ac51cb 100644
--- a/components/feed/core/v2/persistent_key_value_store_impl_unittest.cc
+++ b/components/feed/core/v2/persistent_key_value_store_impl_unittest.cc
@@ -212,7 +212,7 @@
 
 TEST_F(PersistentKeyValueStoreTest, EvictOldEntriesDeletesOldEntriesFirst) {
   Put("1", "x");
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   Put("2", "x");
 
   SetMaxSizeBeforeEviction(1);
@@ -224,7 +224,7 @@
 TEST_F(PersistentKeyValueStoreTest,
        EvictOldEntriesDeletesOldEntriesFirstReverseKeys) {
   Put("2", "x");
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   Put("1", "x");
 
   SetMaxSizeBeforeEviction(1);
@@ -253,8 +253,7 @@
       feedkvstore::Entry new_entry;
       new_entry.set_value("2");
       new_entry.set_modification_time(
-          (base::Time::Now().ToDeltaSinceWindowsEpoch() +
-           base::TimeDelta::FromMinutes(1))
+          (base::Time::Now().ToDeltaSinceWindowsEpoch() + base::Minutes(1))
               .InMilliseconds());
       entries_to_save->emplace_back("key2", std::move(new_entry));
     }
@@ -282,7 +281,7 @@
     // Make key order different than insertion order.
     int key = hash_int(i);
     Put(base::NumberToString(key), "x");
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 
   SetMaxSizeBeforeEviction(kFinalEntryCount);
@@ -301,7 +300,7 @@
     // Make key order different than insertion order.
     int key = hash_int(i);
     Put(base::NumberToString(key), "x");
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 
   SetMaxSizeBeforeEviction(kMaxEntriesInMemory - 1);
@@ -319,7 +318,7 @@
     // Make key order different than insertion order.
     int key = hash_int(i);
     Put(base::NumberToString(key), "x");
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 
   SetMaxSizeBeforeEviction(kMaxEntriesInMemory + 1 - 1);
@@ -354,7 +353,7 @@
     MakeStore();
     for (int i = 0; i < kMaxEntriesInMemory + 1; ++i) {
       Put(base::NumberToString(i), "x");
-      task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+      task_environment_.FastForwardBy(base::Seconds(1));
     }
     // Call EvictOldEntries(), and then eventually delete the store while
     // EvictOldEntries() is running. If EvictOldEntries() completes first,
@@ -402,7 +401,7 @@
   for (int i = 0;; ++i) {
     ASSERT_LT(i, 1000);
     Put(base::NumberToString(i), "1234567890");
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
     if (Get("0") == "<not-found>")
       break;
   }
diff --git a/components/feed/core/v2/protocol_translator.cc b/components/feed/core/v2/protocol_translator.cc
index 4c3bcd7..0f0daa6 100644
--- a/components/feed/core/v2/protocol_translator.cc
+++ b/components/feed/core/v2/protocol_translator.cc
@@ -69,8 +69,7 @@
 }
 
 base::TimeDelta TranslateDuration(const feedwire::Duration& v) {
-  return base::TimeDelta::FromSeconds(v.seconds()) +
-         base::TimeDelta::FromNanoseconds(v.nanos());
+  return base::Seconds(v.seconds()) + base::Nanoseconds(v.nanos());
 }
 
 absl::optional<RequestSchedule> TranslateRequestSchedule(
diff --git a/components/feed/core/v2/protocol_translator_unittest.cc b/components/feed/core/v2/protocol_translator_unittest.cc
index db92f25..dd15c16 100644
--- a/components/feed/core/v2/protocol_translator_unittest.cc
+++ b/components/feed/core/v2/protocol_translator_unittest.cc
@@ -25,8 +25,7 @@
 namespace {
 
 const char kResponsePbPath[] = "components/test/data/feed/response.binarypb";
-const base::Time kCurrentTime =
-    base::Time::UnixEpoch() + base::TimeDelta::FromDays(123);
+const base::Time kCurrentTime = base::Time::UnixEpoch() + base::Days(123);
 
 feedwire::Response TestWireResponse() {
   // Read and parse response.binarypb.
@@ -316,9 +315,8 @@
   ASSERT_TRUE(translated.request_schedule);
   EXPECT_EQ(kCurrentTime, translated.request_schedule->anchor_time);
   EXPECT_EQ(std::vector<base::TimeDelta>(
-                {base::TimeDelta::FromSeconds(86308) +
-                     base::TimeDelta::FromNanoseconds(822963644),
-                 base::TimeDelta::FromSeconds(120000)}),
+                {base::Seconds(86308) + base::Nanoseconds(822963644),
+                 base::Seconds(120000)}),
             translated.request_schedule->refresh_offsets);
 
   std::stringstream ss;
diff --git a/components/feed/core/v2/public/public_types_unittest.cc b/components/feed/core/v2/public/public_types_unittest.cc
index 96b2a355..e02959e 100644
--- a/components/feed/core/v2/public/public_types_unittest.cc
+++ b/components/feed/core/v2/public/public_types_unittest.cc
@@ -12,17 +12,15 @@
 DebugStreamData MakeDebugStreamData() {
   NetworkResponseInfo fetch_info;
   fetch_info.status_code = 200;
-  fetch_info.fetch_duration = base::TimeDelta::FromSeconds(4);
-  fetch_info.fetch_time =
-      base::Time::UnixEpoch() + base::TimeDelta::FromMinutes(200);
+  fetch_info.fetch_duration = base::Seconds(4);
+  fetch_info.fetch_time = base::Time::UnixEpoch() + base::Minutes(200);
   fetch_info.bless_nonce = "nonce";
   fetch_info.base_request_url = GURL("https://www.google.com");
 
   NetworkResponseInfo upload_info;
   upload_info.status_code = 200;
-  upload_info.fetch_duration = base::TimeDelta::FromSeconds(2);
-  upload_info.fetch_time =
-      base::Time::UnixEpoch() + base::TimeDelta::FromMinutes(201);
+  upload_info.fetch_duration = base::Seconds(2);
+  upload_info.fetch_time = base::Time::UnixEpoch() + base::Minutes(201);
   upload_info.base_request_url = GURL("https://www.upload.com");
 
   DebugStreamData data;
diff --git a/components/feed/core/v2/request_throttler_unittest.cc b/components/feed/core/v2/request_throttler_unittest.cc
index 69d112b..e4b90fa5 100644
--- a/components/feed/core/v2/request_throttler_unittest.cc
+++ b/components/feed/core/v2/request_throttler_unittest.cc
@@ -31,8 +31,7 @@
 
     // Set the clock to 12:01AM.
     base::Time twelveO_One =
-        (base::Time::Now() + base::TimeDelta::FromDays(1)).LocalMidnight() +
-        base::TimeDelta::FromMinutes(1);
+        (base::Time::Now() + base::Days(1)).LocalMidnight() + base::Minutes(1);
     task_environment_.AdvanceClock(twelveO_One - base::Time::Now());
   }
 
@@ -56,9 +55,9 @@
   }
   // Because we started at 12:01AM, we need to advance 24 hours before making
   // another successful request.
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(23));
+  task_environment_.FastForwardBy(base::Hours(23));
   EXPECT_FALSE(throttler_.RequestQuota(NetworkRequestType::kUploadActions));
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
   EXPECT_TRUE(throttler_.RequestQuota(NetworkRequestType::kUploadActions));
 }
 
diff --git a/components/feed/core/v2/scheduling.cc b/components/feed/core/v2/scheduling.cc
index c46392c..51fa9ed 100644
--- a/components/feed/core/v2/scheduling.cc
+++ b/components/feed/core/v2/scheduling.cc
@@ -79,7 +79,7 @@
   // Attempt to detect system clock changes. If |anchor_time| is in the future,
   // or too far in the past, we reset |anchor_time| to now.
   if (now < schedule->anchor_time ||
-      schedule->anchor_time + base::TimeDelta::FromDays(7) < now) {
+      schedule->anchor_time + base::Days(7) < now) {
     schedule->anchor_time = now;
   }
   while (!schedule->refresh_offsets.empty()) {
@@ -110,8 +110,7 @@
   if (stream_metadata && stream_metadata->has_content_lifetime()) {
     staleness_threshold = GetThresholdTime(
         staleness_threshold,
-        base::TimeDelta::FromMilliseconds(
-            stream_metadata->content_lifetime().stale_age_ms()));
+        base::Milliseconds(stream_metadata->content_lifetime().stale_age_ms()));
   }
 
   return content_age > staleness_threshold;
@@ -128,7 +127,7 @@
   if (stream_metadata && stream_metadata->has_content_lifetime()) {
     content_expiration_threshold = GetThresholdTime(
         content_expiration_threshold,
-        base::TimeDelta::FromMilliseconds(
+        base::Milliseconds(
             stream_metadata->content_lifetime().invalid_age_ms()));
   }
 
diff --git a/components/feed/core/v2/scheduling.h b/components/feed/core/v2/scheduling.h
index 3af94f16..bdc4a901 100644
--- a/components/feed/core/v2/scheduling.h
+++ b/components/feed/core/v2/scheduling.h
@@ -18,8 +18,7 @@
 class Metadata;
 }
 namespace feed {
-constexpr base::TimeDelta kSuppressRefreshDuration =
-    base::TimeDelta::FromMinutes(30);
+constexpr base::TimeDelta kSuppressRefreshDuration = base::Minutes(30);
 
 // A schedule for making Feed refresh requests.
 // |anchor_time| + |refresh_offsets[i]| is the time each fetch should be made.
diff --git a/components/feed/core/v2/scheduling_unittest.cc b/components/feed/core/v2/scheduling_unittest.cc
index 32f14cf..4bb57f32e 100644
--- a/components/feed/core/v2/scheduling_unittest.cc
+++ b/components/feed/core/v2/scheduling_unittest.cc
@@ -18,7 +18,7 @@
 
 const base::Time kAnchorTime =
     base::Time::UnixEpoch() + TimeDelta::FromHours(6);
-const base::TimeDelta kDefaultScheduleInterval = base::TimeDelta::FromHours(24);
+const base::TimeDelta kDefaultScheduleInterval = base::Hours(24);
 
 std::string ToJSON(const base::Value& value) {
   std::string json;
@@ -123,10 +123,8 @@
 
 class ContentLifetimeTest : public testing::Test {
  public:
-  const base::TimeDelta kDefaultContentExpiration =
-      base::TimeDelta::FromHours(24);
-  const base::TimeDelta kDefaultStaleContentThreshold =
-      base::TimeDelta::FromHours(4);
+  const base::TimeDelta kDefaultContentExpiration = base::Hours(24);
+  const base::TimeDelta kDefaultStaleContentThreshold = base::Hours(4);
 
   void SetUp() override {
     Config config = GetFeedConfig();
@@ -156,7 +154,7 @@
   }
 
   base::TimeDelta WithEpsilon(base::TimeDelta duration) {
-    return duration + base::TimeDelta::FromMilliseconds(1);
+    return duration + base::Milliseconds(1);
   }
 
   feedstore::Metadata metadata_;
@@ -167,38 +165,37 @@
                                        kDefaultStaleContentThreshold));
   EXPECT_TRUE(ShouldWaitForNewContent(
       metadata_, kForYouStream, WithEpsilon(kDefaultStaleContentThreshold)));
-  EXPECT_TRUE(ShouldWaitForNewContent(metadata_, kForYouStream,
-                                      base::TimeDelta::FromHours(5)));
-  EXPECT_FALSE(ShouldWaitForNewContent(metadata_, kForYouStream,
-                                       base::TimeDelta::FromHours(3)));
+  EXPECT_TRUE(
+      ShouldWaitForNewContent(metadata_, kForYouStream, base::Hours(5)));
+  EXPECT_FALSE(
+      ShouldWaitForNewContent(metadata_, kForYouStream, base::Hours(3)));
 }
 
 TEST_F(ContentLifetimeTest, ShouldWaitForNewContent_ServerThreshold_Valid) {
-  set_stale_age(base::TimeDelta::FromMinutes(60));
-  EXPECT_TRUE(ShouldWaitForNewContent(metadata_, kForYouStream,
-                                      base::TimeDelta::FromMinutes(61)));
-  EXPECT_FALSE(ShouldWaitForNewContent(metadata_, kForYouStream,
-                                       base::TimeDelta::FromMinutes(59)));
+  set_stale_age(base::Minutes(60));
+  EXPECT_TRUE(
+      ShouldWaitForNewContent(metadata_, kForYouStream, base::Minutes(61)));
+  EXPECT_FALSE(
+      ShouldWaitForNewContent(metadata_, kForYouStream, base::Minutes(59)));
 }
 
 TEST_F(ContentLifetimeTest, ShouldWaitForNewContent_ServerThreshold_Invalid) {
   // We ignore stale ages greater than the default.
   EXPECT_TRUE(ShouldWaitForNewContent(
       metadata_, kForYouStream, WithEpsilon(kDefaultStaleContentThreshold)));
-  set_stale_age(kDefaultStaleContentThreshold +
-                base::TimeDelta::FromMinutes(1));
+  set_stale_age(kDefaultStaleContentThreshold + base::Minutes(1));
   EXPECT_TRUE(ShouldWaitForNewContent(
       metadata_, kForYouStream, WithEpsilon(kDefaultStaleContentThreshold)));
 
   // We ignore zero durations.
-  set_stale_age(base::TimeDelta::FromDays(0));
+  set_stale_age(base::Days(0));
   EXPECT_FALSE(ShouldWaitForNewContent(metadata_, kForYouStream,
                                        kDefaultStaleContentThreshold));
   EXPECT_TRUE(ShouldWaitForNewContent(
       metadata_, kForYouStream, WithEpsilon(kDefaultStaleContentThreshold)));
 
   // We ignore negative durations.
-  set_stale_age(base::TimeDelta::FromDays(-1));
+  set_stale_age(base::Days(-1));
   EXPECT_FALSE(ShouldWaitForNewContent(metadata_, kForYouStream,
                                        kDefaultStaleContentThreshold));
   EXPECT_TRUE(ShouldWaitForNewContent(
@@ -208,40 +205,39 @@
 TEST_F(ContentLifetimeTest, ContentInvalidFromAge_DefaultThreshold) {
   EXPECT_FALSE(ContentInvalidFromAge(metadata_, kForYouStream,
                                      kDefaultContentExpiration));
-  EXPECT_TRUE(ContentInvalidFromAge(
-      metadata_, kForYouStream,
-      kDefaultContentExpiration + base::TimeDelta::FromMilliseconds(1)));
-  EXPECT_TRUE(ContentInvalidFromAge(metadata_, kForYouStream,
-                                    base::TimeDelta::FromHours(25)));
-  EXPECT_FALSE(ContentInvalidFromAge(metadata_, kForYouStream,
-                                     base::TimeDelta::FromHours(23)));
+  EXPECT_TRUE(
+      ContentInvalidFromAge(metadata_, kForYouStream,
+                            kDefaultContentExpiration + base::Milliseconds(1)));
+  EXPECT_TRUE(ContentInvalidFromAge(metadata_, kForYouStream, base::Hours(25)));
+  EXPECT_FALSE(
+      ContentInvalidFromAge(metadata_, kForYouStream, base::Hours(23)));
 }
 
 TEST_F(ContentLifetimeTest, ContentInvalidFromAge_ServerThreshold_Valid) {
-  set_invalid_age(base::TimeDelta::FromMinutes(60));
-  EXPECT_TRUE(ContentInvalidFromAge(metadata_, kForYouStream,
-                                    base::TimeDelta::FromMinutes(61)));
-  EXPECT_FALSE(ContentInvalidFromAge(metadata_, kForYouStream,
-                                     base::TimeDelta::FromMinutes(59)));
+  set_invalid_age(base::Minutes(60));
+  EXPECT_TRUE(
+      ContentInvalidFromAge(metadata_, kForYouStream, base::Minutes(61)));
+  EXPECT_FALSE(
+      ContentInvalidFromAge(metadata_, kForYouStream, base::Minutes(59)));
 }
 
 TEST_F(ContentLifetimeTest, ContentInvalidFromAge_ServerThreshold_Invalid) {
   // We ignore stale ages greater than the default.
   EXPECT_TRUE(ContentInvalidFromAge(metadata_, kForYouStream,
                                     WithEpsilon(kDefaultContentExpiration)));
-  set_invalid_age(kDefaultContentExpiration + base::TimeDelta::FromMinutes(1));
+  set_invalid_age(kDefaultContentExpiration + base::Minutes(1));
   EXPECT_TRUE(ContentInvalidFromAge(metadata_, kForYouStream,
                                     WithEpsilon(kDefaultContentExpiration)));
 
   // We ignore zero durations.
-  set_invalid_age(base::TimeDelta::FromDays(0));
+  set_invalid_age(base::Days(0));
   EXPECT_FALSE(ContentInvalidFromAge(metadata_, kForYouStream,
                                      kDefaultContentExpiration));
   EXPECT_TRUE(ContentInvalidFromAge(metadata_, kForYouStream,
                                     WithEpsilon(kDefaultContentExpiration)));
 
   // We ignore negative durations.
-  set_invalid_age(base::TimeDelta::FromDays(-1));
+  set_invalid_age(base::Days(-1));
   EXPECT_FALSE(ContentInvalidFromAge(metadata_, kForYouStream,
                                      kDefaultContentExpiration));
   EXPECT_TRUE(ContentInvalidFromAge(metadata_, kForYouStream,
diff --git a/components/feed/core/v2/stream/notice_card_tracker.cc b/components/feed/core/v2/stream/notice_card_tracker.cc
index 2bbfc58..77cb8791 100644
--- a/components/feed/core/v2/stream/notice_card_tracker.cc
+++ b/components/feed/core/v2/stream/notice_card_tracker.cc
@@ -56,7 +56,7 @@
   }
 
   auto now = base::TimeTicks::Now();
-  if (now - last_view_time_ < base::TimeDelta::FromMinutes(5))
+  if (now - last_view_time_ < base::Minutes(5))
     return;
 
   last_view_time_ = now;
diff --git a/components/feed/core/v2/stream/notice_card_tracker_unittest.cc b/components/feed/core/v2/stream/notice_card_tracker_unittest.cc
index 98b77ed..af8b3d07 100644
--- a/components/feed/core/v2/stream/notice_card_tracker_unittest.cc
+++ b/components/feed/core/v2/stream/notice_card_tracker_unittest.cc
@@ -35,7 +35,7 @@
   void SetUp() override {
     feed::RegisterProfilePrefs(profile_prefs_.registry());
     // Make sure current time isn't zero.
-    task_environment_.AdvanceClock(base::TimeDelta::FromDays(1));
+    task_environment_.AdvanceClock(base::Days(1));
   }
 
  protected:
@@ -51,9 +51,9 @@
   // Generate enough views to reach the acknowlegement threshold, but the views
   // were not on the notice card.
   tracker.OnCardViewed(/*is_signed_in=*/true, OtherContentId());
-  task_environment_.AdvanceClock(base::TimeDelta::FromMinutes(6));
+  task_environment_.AdvanceClock(base::Minutes(6));
   tracker.OnCardViewed(/*is_signed_in=*/true, OtherContentId());
-  task_environment_.AdvanceClock(base::TimeDelta::FromMinutes(6));
+  task_environment_.AdvanceClock(base::Minutes(6));
   tracker.OnCardViewed(/*is_signed_in=*/true, OtherContentId());
 
   EXPECT_FALSE(tracker.HasAcknowledgedNoticeCard());
@@ -63,9 +63,9 @@
   NoticeCardTracker tracker(&profile_prefs_);
 
   tracker.OnCardViewed(/*is_signed_in=*/true, NoticeCardContentId());
-  task_environment_.AdvanceClock(base::TimeDelta::FromMinutes(6));
+  task_environment_.AdvanceClock(base::Minutes(6));
   tracker.OnCardViewed(/*is_signed_in=*/true, NoticeCardContentId());
-  task_environment_.AdvanceClock(base::TimeDelta::FromMinutes(6));
+  task_environment_.AdvanceClock(base::Minutes(6));
   tracker.OnCardViewed(/*is_signed_in=*/true, NoticeCardContentId());
 
   EXPECT_TRUE(tracker.HasAcknowledgedNoticeCard());
@@ -75,9 +75,9 @@
   NoticeCardTracker tracker(&profile_prefs_);
 
   tracker.OnCardViewed(/*is_signed_in=*/true, NoticeCardContentId());
-  task_environment_.AdvanceClock(base::TimeDelta::FromMinutes(4));
+  task_environment_.AdvanceClock(base::Minutes(4));
   tracker.OnCardViewed(/*is_signed_in=*/true, NoticeCardContentId());
-  task_environment_.AdvanceClock(base::TimeDelta::FromMinutes(4));
+  task_environment_.AdvanceClock(base::Minutes(4));
   tracker.OnCardViewed(/*is_signed_in=*/true, NoticeCardContentId());
 
   EXPECT_FALSE(tracker.HasAcknowledgedNoticeCard());
@@ -89,7 +89,7 @@
 
   // Generate views but not enough to reach the threshold.
   tracker.OnCardViewed(/*is_signed_in=*/true, NoticeCardContentId());
-  task_environment_.AdvanceClock(base::TimeDelta::FromMinutes(6));
+  task_environment_.AdvanceClock(base::Minutes(6));
   tracker.OnCardViewed(/*is_signed_in=*/true, NoticeCardContentId());
 
   EXPECT_FALSE(tracker.HasAcknowledgedNoticeCard());
diff --git a/components/feed/core/v2/tasks/upload_actions_task.cc b/components/feed/core/v2/tasks/upload_actions_task.cc
index b30b440..11fc9b67 100644
--- a/components/feed/core/v2/tasks/upload_actions_task.cc
+++ b/components/feed/core/v2/tasks/upload_actions_task.cc
@@ -30,8 +30,7 @@
 bool ShouldUpload(const StoredAction& action) {
   base::Time action_time =
       base::Time::UnixEpoch() +
-      base::TimeDelta::FromSeconds(
-          action.action().client_data().timestamp_seconds());
+      base::Seconds(action.action().client_data().timestamp_seconds());
   base::TimeDelta age = base::Time::Now() - action_time;
   if (age < base::TimeDelta())
     age = base::TimeDelta();
diff --git a/components/feed/core/v2/test/test_util.h b/components/feed/core/v2/test/test_util.h
index 6fc78c2..df31b47b 100644
--- a/components/feed/core/v2/test/test_util.h
+++ b/components/feed/core/v2/test/test_util.h
@@ -13,7 +13,7 @@
 
 // Although time is mocked through TaskEnvironment, it does drift by small
 // amounts.
-const base::TimeDelta kEpsilon = base::TimeDelta::FromMilliseconds(5);
+const base::TimeDelta kEpsilon = base::Milliseconds(5);
 #define EXPECT_TIME_EQ(WANT, GOT)                    \
   {                                                  \
     base::Time want___ = (WANT), got___ = (GOT);     \
diff --git a/components/feed/core/v2/types.cc b/components/feed/core/v2/types.cc
index e411a4d..5ba085d 100644
--- a/components/feed/core/v2/types.cc
+++ b/components/feed/core/v2/types.cc
@@ -43,9 +43,9 @@
         iterator.ReadString(&value.bless_nonce) &&
         iterator.ReadString(&base_request_url)))
     return false;
-  value.fetch_duration = base::TimeDelta::FromMilliseconds(fetch_duration_ms);
-  value.fetch_time = base::TimeDelta::FromMilliseconds(fetch_time_ms) +
-                     base::Time::UnixEpoch();
+  value.fetch_duration = base::Milliseconds(fetch_duration_ms);
+  value.fetch_time =
+      base::Milliseconds(fetch_time_ms) + base::Time::UnixEpoch();
   value.base_request_url = GURL(base_request_url);
   return true;
 }
diff --git a/components/feed/core/v2/types_unittest.cc b/components/feed/core/v2/types_unittest.cc
index 633ae59..08907c26 100644
--- a/components/feed/core/v2/types_unittest.cc
+++ b/components/feed/core/v2/types_unittest.cc
@@ -23,7 +23,7 @@
 
 TEST(PersistentMetricsData, SerializesAndDeserializes) {
   PersistentMetricsData data;
-  data.accumulated_time_spent_in_feed = base::TimeDelta::FromHours(2);
+  data.accumulated_time_spent_in_feed = base::Hours(2);
   data.current_day_start = base::Time::UnixEpoch();
 
   const base::Value serialized_value = PersistentMetricsDataToValue(data);
diff --git a/components/feed/core/v2/web_feed_subscription_coordinator.cc b/components/feed/core/v2/web_feed_subscription_coordinator.cc
index 006afd1..1863efb0 100644
--- a/components/feed/core/v2/web_feed_subscription_coordinator.cc
+++ b/components/feed/core/v2/web_feed_subscription_coordinator.cc
@@ -637,7 +637,7 @@
   base::TimeDelta staleness =
       base::Time::Now() - index_.GetRecommendedFeedsUpdateTime();
   if (staleness > GetFeedConfig().recommended_feeds_staleness_threshold ||
-      staleness < -base::TimeDelta::FromHours(1)) {
+      staleness < -base::Hours(1)) {
     RefreshRecommendedFeeds();
   }
 }
@@ -682,7 +682,7 @@
   base::TimeDelta staleness =
       base::Time::Now() - index_.GetSubscribedFeedsUpdateTime();
   if (staleness > GetFeedConfig().subscribed_feeds_staleness_threshold ||
-      staleness < -base::TimeDelta::FromHours(1)) {
+      staleness < -base::Hours(1)) {
     fetching_subscribed_web_feeds_because_stale_ = true;
     auto callback_adaptor = [](base::OnceClosure callback, RefreshResult) {
       std::move(callback).Run();
diff --git a/components/feedback/feedback_uploader.cc b/components/feedback/feedback_uploader.cc
index 97e53ba..791cc267 100644
--- a/components/feedback/feedback_uploader.cc
+++ b/components/feedback/feedback_uploader.cc
@@ -40,11 +40,11 @@
 // backoff delay is applied on successive failures.
 // This value can be overriden by tests by calling
 // FeedbackUploader::SetMinimumRetryDelayForTesting().
-base::TimeDelta g_minimum_retry_delay = base::TimeDelta::FromMinutes(60);
+base::TimeDelta g_minimum_retry_delay = base::Minutes(60);
 
 // If a new report is queued to be dispatched immediately while another is being
 // dispatched, this is the time to wait for the on-going dispatching to finish.
-base::TimeDelta g_dispatching_wait_delay = base::TimeDelta::FromSeconds(4);
+base::TimeDelta g_dispatching_wait_delay = base::Seconds(4);
 
 GURL GetFeedbackPostGURL() {
   const base::CommandLine& command_line =
diff --git a/components/feedback/feedback_uploader_dispatch_unittest.cc b/components/feedback/feedback_uploader_dispatch_unittest.cc
index 77c2fe5..7678285 100644
--- a/components/feedback/feedback_uploader_dispatch_unittest.cc
+++ b/components/feedback/feedback_uploader_dispatch_unittest.cc
@@ -29,8 +29,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kTestRetryDelay =
-    base::TimeDelta::FromMilliseconds(1);
+constexpr base::TimeDelta kTestRetryDelay = base::Milliseconds(1);
 
 constexpr char kFeedbackPostUrl[] =
     "https://www.google.com/tools/feedback/chrome/__submit";
diff --git a/components/feedback/feedback_uploader_unittest.cc b/components/feedback/feedback_uploader_unittest.cc
index c00e503..873da9f6 100644
--- a/components/feedback/feedback_uploader_unittest.cc
+++ b/components/feedback/feedback_uploader_unittest.cc
@@ -33,8 +33,7 @@
 constexpr char kReportFour[] = "four";
 constexpr char kReportFive[] = "five";
 
-constexpr base::TimeDelta kRetryDelayForTest =
-    base::TimeDelta::FromMilliseconds(100);
+constexpr base::TimeDelta kRetryDelayForTest = base::Milliseconds(100);
 
 class MockFeedbackUploader : public FeedbackUploader {
  public:
diff --git a/components/fullscreen_control/fullscreen_control_popup.cc b/components/fullscreen_control/fullscreen_control_popup.cc
index c2c22f5..59accb8 100644
--- a/components/fullscreen_control/fullscreen_control_popup.cc
+++ b/components/fullscreen_control/fullscreen_control_popup.cc
@@ -60,7 +60,7 @@
 
   parent_bounds_in_screen_ = parent_bounds_in_screen;
 
-  animation_->SetSlideDuration(base::TimeDelta::FromMilliseconds(300));
+  animation_->SetSlideDuration(base::Milliseconds(300));
   animation_->Show();
 
   // The default animation progress is 0. Call it once here then show the popup
@@ -74,7 +74,7 @@
     return;
 
   if (animated) {
-    animation_->SetSlideDuration(base::TimeDelta::FromMilliseconds(150));
+    animation_->SetSlideDuration(base::Milliseconds(150));
     animation_->Hide();
     return;
   }
diff --git a/components/fullscreen_control/fullscreen_control_popup_unittest.cc b/components/fullscreen_control/fullscreen_control_popup_unittest.cc
index 7f284e1..0a53d28 100644
--- a/components/fullscreen_control/fullscreen_control_popup_unittest.cc
+++ b/components/fullscreen_control/fullscreen_control_popup_unittest.cc
@@ -51,9 +51,7 @@
     animation_api_->Step(now + duration);
   }
 
-  void CompleteAnimation() {
-    RunAnimationFor(base::TimeDelta::FromMilliseconds(5000));
-  }
+  void CompleteAnimation() { RunAnimationFor(base::Milliseconds(5000)); }
 
   gfx::Rect GetParentBounds() const {
     return parent_widget_->GetClientAreaBoundsInScreen();
@@ -94,7 +92,7 @@
 TEST_F(FullscreenControlPopupTest, HidePopupWhileStillShowing) {
   popup_->Show(GetParentBounds());
 
-  RunAnimationFor(base::TimeDelta::FromMilliseconds(50));
+  RunAnimationFor(base::Milliseconds(50));
 
   EXPECT_TRUE(popup_->IsAnimating());
   EXPECT_TRUE(popup_->IsVisible());
diff --git a/components/gcm_driver/fake_gcm_client.cc b/components/gcm_driver/fake_gcm_client.cc
index 2f2c6ba..62745c9 100644
--- a/components/gcm_driver/fake_gcm_client.cc
+++ b/components/gcm_driver/fake_gcm_client.cc
@@ -298,13 +298,13 @@
         base::BindOnce(&FakeGCMClient::MessageSendError,
                        weak_ptr_factory_.GetWeakPtr(), app_id,
                        send_error_details),
-        base::TimeDelta::FromMilliseconds(200));
+        base::Milliseconds(200));
   } else if(message.id.find("ack") != std::string::npos) {
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
         FROM_HERE,
         base::BindOnce(&FakeGCMClient::SendAcknowledgement,
                        weak_ptr_factory_.GetWeakPtr(), app_id, message.id),
-        base::TimeDelta::FromMilliseconds(200));
+        base::Milliseconds(200));
   }
 }
 
diff --git a/components/gcm_driver/features.cc b/components/gcm_driver/features.cc
index fb90cd4..9f65076 100644
--- a/components/gcm_driver/features.cc
+++ b/components/gcm_driver/features.cc
@@ -31,9 +31,9 @@
   if (!override_value.empty()) {
     int override_value_days;
     if (base::StringToInt(override_value, &override_value_days))
-      return base::TimeDelta::FromDays(override_value_days);
+      return base::Days(override_value_days);
   }
-  return base::TimeDelta::FromDays(kDefaultTokenInvalidationPeriod);
+  return base::Days(kDefaultTokenInvalidationPeriod);
 }
 
 }  // namespace features
diff --git a/components/gcm_driver/gcm_account_mapper.cc b/components/gcm_driver/gcm_account_mapper.cc
index 63ed5e15..5570f85 100644
--- a/components/gcm_driver/gcm_account_mapper.cc
+++ b/components/gcm_driver/gcm_account_mapper.cc
@@ -347,8 +347,7 @@
 bool GCMAccountMapper::CanTriggerUpdate(
     const base::Time& last_update_time) const {
   return last_update_time +
-             base::TimeDelta::FromHours(kGCMUpdateIntervalHours -
-                                        kGCMUpdateEarlyStartHours) <
+             base::Hours(kGCMUpdateIntervalHours - kGCMUpdateEarlyStartHours) <
          clock_->Now();
 }
 
@@ -356,8 +355,8 @@
     const AccountMapping& account_mapping) const {
   int ttl_seconds = account_mapping.status == AccountMapping::REMOVING ?
       kGCMRemoveMappingMessageTTL : kGCMAddMappingMessageTTL;
-  return account_mapping.status_change_timestamp +
-      base::TimeDelta::FromSeconds(ttl_seconds) < clock_->Now();
+  return account_mapping.status_change_timestamp + base::Seconds(ttl_seconds) <
+         clock_->Now();
 }
 
 AccountMapping* GCMAccountMapper::FindMappingByAccountId(
diff --git a/components/gcm_driver/gcm_account_mapper_unittest.cc b/components/gcm_driver/gcm_account_mapper_unittest.cc
index 0c307cba..286d7e4 100644
--- a/components/gcm_driver/gcm_account_mapper_unittest.cc
+++ b/components/gcm_driver/gcm_account_mapper_unittest.cc
@@ -831,7 +831,7 @@
 // tokens are periodically delierverd.
 TEST_F(GCMAccountMapperTest, MultipleAccountMappings) {
   clock()->SetNow(base::Time::Now());
-  base::Time half_hour_ago = clock()->Now() - base::TimeDelta::FromMinutes(30);
+  base::Time half_hour_ago = clock()->Now() - base::Minutes(30);
   GCMAccountMapper::AccountMappings stored_mappings;
   stored_mappings.push_back(MakeAccountMapping(
       kAccountId, AccountMapping::ADDING, half_hour_ago, "acc_id_msg"));
@@ -871,7 +871,7 @@
   account_tokens.push_back(MakeAccountTokenInfo(kAccountId));
 
   // Advance a day to make sure existing mappings will be reported.
-  clock()->SetNow(clock()->Now() + base::TimeDelta::FromDays(1));
+  clock()->SetNow(clock()->Now() + base::Days(1));
   mapper()->SetAccountTokens(account_tokens);
 
   expected_mappings[0].status = AccountMapping::MAPPED;
@@ -883,7 +883,7 @@
   VerifyMappings(
       expected_mappings, GetAccounts(), "Step 2, One account is being removed");
 
-  clock()->SetNow(clock()->Now() + base::TimeDelta::FromSeconds(5));
+  clock()->SetNow(clock()->Now() + base::Seconds(5));
   gcm_driver().AcknowledgeSendAllMessages();
 
   expected_mappings[0].status_change_timestamp = clock()->Now();
@@ -898,7 +898,7 @@
   account_tokens.push_back(MakeAccountTokenInfo(kAccountId4));
 
   // Advance a day to make sure existing mappings will be reported.
-  clock()->SetNow(clock()->Now() + base::TimeDelta::FromDays(1));
+  clock()->SetNow(clock()->Now() + base::Days(1));
   mapper()->SetAccountTokens(account_tokens);
 
   // Mapping from acc_id_0 still in position 0
@@ -909,7 +909,7 @@
 
   VerifyMappings(expected_mappings, GetAccounts(), "Step 4, Two new accounts");
 
-  clock()->SetNow(clock()->Now() + base::TimeDelta::FromSeconds(1));
+  clock()->SetNow(clock()->Now() + base::Seconds(1));
   gcm_driver().CompleteSendAllMessages();
 
   expected_mappings[1].status = AccountMapping::ADDING;
@@ -920,7 +920,7 @@
   VerifyMappings(
       expected_mappings, GetAccounts(), "Step 5, Two accounts being added");
 
-  clock()->SetNow(clock()->Now() + base::TimeDelta::FromSeconds(5));
+  clock()->SetNow(clock()->Now() + base::Seconds(5));
   gcm_driver().AcknowledgeSendAllMessages();
 
   expected_mappings[0].status_change_timestamp = clock()->Now();
diff --git a/components/gcm_driver/gcm_account_tracker.cc b/components/gcm_driver/gcm_account_tracker.cc
index f1746f1d..e59c11b 100644
--- a/components/gcm_driver/gcm_account_tracker.cc
+++ b/components/gcm_driver/gcm_account_tracker.cc
@@ -212,8 +212,7 @@
        ++iter) {
     if (iter->second.state == TOKEN_PRESENT &&
         iter->second.expiration_time <
-            base::Time::Now() +
-                base::TimeDelta::FromMilliseconds(kMinimumTokenValidityMs)) {
+            base::Time::Now() + base::Milliseconds(kMinimumTokenValidityMs)) {
       iter->second.access_token.clear();
       iter->second.state = TOKEN_NEEDED;
       iter->second.expiration_time = base::Time();
@@ -249,8 +248,7 @@
 base::TimeDelta GCMAccountTracker::GetTimeToNextTokenReporting() const {
   base::TimeDelta time_till_next_reporting =
       driver_->GetLastTokenFetchTime() +
-      base::TimeDelta::FromMilliseconds(kTokenReportingIntervalMs) -
-      base::Time::Now();
+      base::Milliseconds(kTokenReportingIntervalMs) - base::Time::Now();
 
   // Case when token fetching is overdue.
   if (time_till_next_reporting < base::TimeDelta())
@@ -260,8 +258,8 @@
   // situation when the method is called before GCM driver is completely
   // initialized.
   if (time_till_next_reporting >
-          base::TimeDelta::FromMilliseconds(kTokenReportingIntervalMs)) {
-    return base::TimeDelta::FromMilliseconds(kTokenReportingIntervalMs);
+      base::Milliseconds(kTokenReportingIntervalMs)) {
+    return base::Milliseconds(kTokenReportingIntervalMs);
   }
 
   return time_till_next_reporting;
diff --git a/components/gcm_driver/gcm_account_tracker_unittest.cc b/components/gcm_driver/gcm_account_tracker_unittest.cc
index 5b148aa..14390d5 100644
--- a/components/gcm_driver/gcm_account_tracker_unittest.cc
+++ b/components/gcm_driver/gcm_account_tracker_unittest.cc
@@ -496,20 +496,16 @@
 
   // Regular case. The tokens have been just reported.
   driver()->SetLastTokenFetchTime(base::Time::Now());
-  EXPECT_TRUE(GetTimeToNextTokenReporting() <=
-                  base::TimeDelta::FromSeconds(12 * 60 * 60));
+  EXPECT_TRUE(GetTimeToNextTokenReporting() <= base::Seconds(12 * 60 * 60));
 
   // A case when gcm driver is not yet initialized.
   driver()->SetLastTokenFetchTime(base::Time::Max());
-  EXPECT_EQ(base::TimeDelta::FromSeconds(12 * 60 * 60),
-            GetTimeToNextTokenReporting());
+  EXPECT_EQ(base::Seconds(12 * 60 * 60), GetTimeToNextTokenReporting());
 
   // A case when token reporting calculation is expected to result in more than
   // 12 hours, in which case we expect exactly 12 hours.
-  driver()->SetLastTokenFetchTime(base::Time::Now() +
-      base::TimeDelta::FromDays(2));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(12 * 60 * 60),
-            GetTimeToNextTokenReporting());
+  driver()->SetLastTokenFetchTime(base::Time::Now() + base::Days(2));
+  EXPECT_EQ(base::Seconds(12 * 60 * 60), GetTimeToNextTokenReporting());
 }
 
 // Tests conditions when token reporting is required.
diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gcm_client_impl.cc
index fec98045..b0095dd 100644
--- a/components/gcm_driver/gcm_client_impl.cc
+++ b/components/gcm_driver/gcm_client_impl.cc
@@ -432,7 +432,7 @@
           FROM_HERE,
           base::BindOnce(&GCMClientImpl::DestroyStoreWhenNotNeeded,
                          destroying_gcm_store_ptr_factory_.GetWeakPtr()),
-          base::TimeDelta::FromMilliseconds(kDestroyGCMStoreDelayMS));
+          base::Milliseconds(kDestroyGCMStoreDelayMS));
     }
 
     return;
diff --git a/components/gcm_driver/gcm_client_impl_unittest.cc b/components/gcm_driver/gcm_client_impl_unittest.cc
index 57d6cb8..3edde78 100644
--- a/components/gcm_driver/gcm_client_impl_unittest.cc
+++ b/components/gcm_driver/gcm_client_impl_unittest.cc
@@ -593,7 +593,7 @@
 }
 
 void GCMClientImplTest::InitializeGCMClient() {
-  clock()->Advance(base::TimeDelta::FromMilliseconds(1));
+  clock()->Advance(base::Milliseconds(1));
 
   // Actual initialization.
   GCMClient::ChromeBuildInfo chrome_build_info;
@@ -798,7 +798,7 @@
   EXPECT_TRUE(device_checkin_info().secret);
 
   // Fast forward the clock to trigger the store destroying logic.
-  FastForwardBy(base::TimeDelta::FromMilliseconds(300000));
+  FastForwardBy(base::Milliseconds(300000));
   PumpLoopUntilIdle();
 
   EXPECT_EQ(GCMClientImpl::INITIALIZED, gcm_client_state());
@@ -955,7 +955,7 @@
   reset_last_event();
 
   // Advance time by (kTestTokenInvalidationPeriod)/2
-  clock()->Advance(base::TimeDelta::FromDays(kTestTokenInvalidationPeriod / 2));
+  clock()->Advance(base::Days(kTestTokenInvalidationPeriod / 2));
 
   // Register the same sender again. The same registration ID as the
   // previous one should be returned, and we should *not* send a
@@ -986,7 +986,7 @@
   reset_last_event();
 
   // Advance time by kTestTokenInvalidationPeriod
-  clock()->Advance(base::TimeDelta::FromDays(kTestTokenInvalidationPeriod));
+  clock()->Advance(base::Days(kTestTokenInvalidationPeriod));
 
   // Register the same sender again. Different registration ID from the
   // previous one should be returned.
@@ -1172,7 +1172,7 @@
   // GCM Client and G-services settings.
   ASSERT_TRUE(CreateUniqueTempDir());
   // Time will be advancing one hour every time it is checked.
-  BuildGCMClient(base::TimeDelta::FromSeconds(kSettingsCheckinInterval));
+  BuildGCMClient(base::Seconds(kSettingsCheckinInterval));
   InitializeGCMClient();
   StartGCMClient();
 }
@@ -1187,7 +1187,7 @@
   ASSERT_NO_FATAL_FAILURE(
       CompleteCheckin(kDeviceAndroidId, kDeviceSecurityToken,
                       GServicesSettings::CalculateDigest(settings), settings));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(kSettingsCheckinInterval),
+  EXPECT_EQ(base::Seconds(kSettingsCheckinInterval),
             gservices_settings().GetCheckinInterval());
   EXPECT_EQ(GURL("http://alternative.url/checkin"),
             gservices_settings().GetCheckinURL());
@@ -1234,7 +1234,7 @@
   InitializeGCMClient();
   StartGCMClient();
 
-  EXPECT_EQ(base::TimeDelta::FromSeconds(kSettingsCheckinInterval),
+  EXPECT_EQ(base::Seconds(kSettingsCheckinInterval),
             gservices_settings().GetCheckinInterval());
   EXPECT_EQ(GURL("http://alternative.url/checkin"),
             gservices_settings().GetCheckinURL());
diff --git a/components/gcm_driver/instance_id/instance_id_android.cc b/components/gcm_driver/instance_id/instance_id_android.cc
index 4dea8b052..ace47d9 100644
--- a/components/gcm_driver/instance_id/instance_id_android.cc
+++ b/components/gcm_driver/instance_id/instance_id_android.cc
@@ -172,8 +172,8 @@
   // If the InstanceID's getId, getToken and deleteToken methods have never been
   // called, or deleteInstanceID has cleared it since, creation time will be 0.
   if (creation_time_unix_ms) {
-    creation_time = base::Time::UnixEpoch() +
-                    base::TimeDelta::FromMilliseconds(creation_time_unix_ms);
+    creation_time =
+        base::Time::UnixEpoch() + base::Milliseconds(creation_time_unix_ms);
   }
 
   GetCreationTimeCallback* callback =
diff --git a/components/gcm_driver/registration_info.cc b/components/gcm_driver/registration_info.cc
index 1d749ebb..13689bb 100644
--- a/components/gcm_driver/registration_info.cc
+++ b/components/gcm_driver/registration_info.cc
@@ -141,8 +141,7 @@
   if (base::StringToInt64(last_validated_str, &last_validated_ms)) {
     // It's okay for |last_validated| to be the default base::Time() value
     // when there is no serialized timestamp value available.
-    last_validated =
-        base::Time() + base::TimeDelta::FromMicroseconds(last_validated_ms);
+    last_validated = base::Time() + base::Microseconds(last_validated_ms);
   }
 
   return true;
@@ -234,7 +233,7 @@
   if (base::StringToInt64(last_validated_str, &last_validated_ms)) {
     // It's okay for last_validated to be the default base::Time() value
     // when there is no serialized timestamp available.
-    last_validated += base::TimeDelta::FromMicroseconds(last_validated_ms);
+    last_validated += base::Microseconds(last_validated_ms);
   }
 
   return true;
diff --git a/components/guest_os/guest_os_engagement_metrics.cc b/components/guest_os/guest_os_engagement_metrics.cc
index 9732ea54..1a61d75 100644
--- a/components/guest_os/guest_os_engagement_metrics.cc
+++ b/components/guest_os/guest_os_engagement_metrics.cc
@@ -23,10 +23,8 @@
 
 namespace {
 
-constexpr base::TimeDelta kUpdateEngagementTimePeriod =
-    base::TimeDelta::FromMinutes(1);
-constexpr base::TimeDelta kSaveEngagementTimeToPrefsPeriod =
-    base::TimeDelta::FromMinutes(30);
+constexpr base::TimeDelta kUpdateEngagementTimePeriod = base::Minutes(1);
+constexpr base::TimeDelta kSaveEngagementTimeToPrefsPeriod = base::Minutes(30);
 
 int GetDayId(const base::Clock* clock) {
   return clock->Now().LocalMidnight().since_origin().InDays();
@@ -196,23 +194,19 @@
   if (!ShouldRecordEngagementTimeToUma())
     return;
   VLOG(2) << "day changed, recording engagement time to UMA";
-  UmaHistogramCustomTimes(
-      uma_name_ + ".EngagementTime.Total", engagement_time_total_,
-      base::TimeDelta::FromSeconds(1),
-      base::TimeDelta::FromDays(1) + kUpdateEngagementTimePeriod, 50);
+  UmaHistogramCustomTimes(uma_name_ + ".EngagementTime.Total",
+                          engagement_time_total_, base::Seconds(1),
+                          base::Days(1) + kUpdateEngagementTimePeriod, 50);
   UmaHistogramCustomTimes(
       uma_name_ + ".EngagementTime." + uma_name_ + "Total",
       engagement_time_foreground_ + engagement_time_background_,
-      base::TimeDelta::FromSeconds(1),
-      base::TimeDelta::FromDays(1) + kUpdateEngagementTimePeriod, 50);
-  UmaHistogramCustomTimes(
-      uma_name_ + ".EngagementTime.Foreground", engagement_time_foreground_,
-      base::TimeDelta::FromSeconds(1),
-      base::TimeDelta::FromDays(1) + kUpdateEngagementTimePeriod, 50);
-  UmaHistogramCustomTimes(
-      uma_name_ + ".EngagementTime.Background", engagement_time_background_,
-      base::TimeDelta::FromSeconds(1),
-      base::TimeDelta::FromDays(1) + kUpdateEngagementTimePeriod, 50);
+      base::Seconds(1), base::Days(1) + kUpdateEngagementTimePeriod, 50);
+  UmaHistogramCustomTimes(uma_name_ + ".EngagementTime.Foreground",
+                          engagement_time_foreground_, base::Seconds(1),
+                          base::Days(1) + kUpdateEngagementTimePeriod, 50);
+  UmaHistogramCustomTimes(uma_name_ + ".EngagementTime.Background",
+                          engagement_time_background_, base::Seconds(1),
+                          base::Days(1) + kUpdateEngagementTimePeriod, 50);
   ResetEngagementTimePrefs();
 }
 
diff --git a/components/guest_os/guest_os_engagement_metrics_unittest.cc b/components/guest_os/guest_os_engagement_metrics_unittest.cc
index 5963b0c..aa7969b 100644
--- a/components/guest_os/guest_os_engagement_metrics_unittest.cc
+++ b/components/guest_os/guest_os_engagement_metrics_unittest.cc
@@ -53,7 +53,7 @@
 
     // The code doesn't work for correctly for a clock just at the epoch so
     // advance by a day first.
-    test_clock_.Advance(base::TimeDelta::FromDays(1));
+    test_clock_.Advance(base::Days(1));
     CreateEngagementMetrics();
     SetSessionState(session_manager::SessionState::ACTIVE);
   }
@@ -84,7 +84,7 @@
   }
 
   void AdvanceSeconds(int seconds) {
-    test_tick_clock_.Advance(base::TimeDelta::FromSeconds(seconds));
+    test_tick_clock_.Advance(base::Seconds(seconds));
   }
 
   void FocusMatchedWindow() {
@@ -101,13 +101,13 @@
 
   void TriggerRecordEngagementTimeToUma() {
     // Trigger UMA record by changing to next day.
-    test_clock_.Advance(base::TimeDelta::FromDays(1));
+    test_clock_.Advance(base::Days(1));
     engagement_metrics_->OnSessionStateChanged();
   }
 
   void ExpectTime(const std::string& histogram, int seconds) {
     tester_.ExpectTimeBucketCount("Foo.EngagementTime." + histogram,
-                                  base::TimeDelta::FromSeconds(seconds), 1);
+                                  base::Seconds(seconds), 1);
   }
 
   void DestroyEngagementMetrics() { engagement_metrics_.reset(); }
diff --git a/components/gwp_asan/client/guarded_page_allocator_unittest.cc b/components/gwp_asan/client/guarded_page_allocator_unittest.cc
index 8d286d4..4be500d 100644
--- a/components/gwp_asan/client/guarded_page_allocator_unittest.cc
+++ b/components/gwp_asan/client/guarded_page_allocator_unittest.cc
@@ -270,7 +270,7 @@
   void Run() override {
     char* buf;
     while ((buf = reinterpret_cast<char*>(gpa_->Allocate(1))) == nullptr) {
-      base::PlatformThread::Sleep(base::TimeDelta::FromNanoseconds(5000));
+      base::PlatformThread::Sleep(base::Nanoseconds(5000));
     }
 
     // Verify that no other thread has access to this page.
@@ -279,7 +279,7 @@
     // Mark this page and allow some time for another thread to potentially
     // gain access to this page.
     buf[0] = 'A';
-    base::PlatformThread::Sleep(base::TimeDelta::FromNanoseconds(10000));
+    base::PlatformThread::Sleep(base::Nanoseconds(10000));
     EXPECT_EQ(buf[0], 'A');
 
     // Unmark this page and deallocate.
diff --git a/components/heap_profiling/in_process/heap_profiler_controller.cc b/components/heap_profiling/in_process/heap_profiler_controller.cc
index e90010e..97c14873 100644
--- a/components/heap_profiling/in_process/heap_profiler_controller.cc
+++ b/components/heap_profiling/in_process/heap_profiler_controller.cc
@@ -73,7 +73,7 @@
   base::SamplingHeapProfiler::Get()->Start();
   const int interval = GetCollectionIntervalInMinutes();
   DCHECK_GT(interval, 0);
-  ScheduleNextSnapshot(stopped_, base::TimeDelta::FromMinutes(interval));
+  ScheduleNextSnapshot(stopped_, base::Minutes(interval));
 }
 
 // static
diff --git a/components/heap_profiling/in_process/heap_profiler_controller_unittest.cc b/components/heap_profiling/in_process/heap_profiler_controller_unittest.cc
index 9401e25..0d69443 100644
--- a/components/heap_profiling/in_process/heap_profiler_controller_unittest.cc
+++ b/components/heap_profiling/in_process/heap_profiler_controller_unittest.cc
@@ -29,7 +29,7 @@
           }));
   controller.Start();
 
-  task_environment.FastForwardBy(base::TimeDelta::FromDays(365));
+  task_environment.FastForwardBy(base::Days(365));
 }
 
 // Sampling profiler is not capable of unwinding stack on Android under tests.
diff --git a/components/heap_profiling/multi_process/test_driver.cc b/components/heap_profiling/multi_process/test_driver.cc
index b9cd155..c0fa0bc1 100644
--- a/components/heap_profiling/multi_process/test_driver.cc
+++ b/components/heap_profiling/multi_process/test_driver.cc
@@ -792,7 +792,7 @@
 
   // Brief sleep to prevent spamming the task queue, since this code is called
   // in a tight loop.
-  base::PlatformThread::Sleep(base::TimeDelta::FromMicroseconds(100));
+  base::PlatformThread::Sleep(base::Microseconds(100));
 
   WaitForProfilingToStartForAllRenderersUIThreadAndSignal();
 }
diff --git a/components/heavy_ad_intervention/heavy_ad_blocklist.cc b/components/heavy_ad_intervention/heavy_ad_blocklist.cc
index c72e95c8..d04fa2c 100644
--- a/components/heavy_ad_intervention/heavy_ad_blocklist.cc
+++ b/components/heavy_ad_intervention/heavy_ad_blocklist.cc
@@ -58,7 +58,7 @@
   const int kDefaultHostDurationHours = 24;
   const int kDefaultHostThreshold = 5;
   *max_hosts = GetBlocklistParamValue(kHostsInMemory, kDefaultHostsInMemory);
-  *duration = base::TimeDelta::FromHours(
+  *duration = base::Hours(
       GetBlocklistParamValue(kHostDurationHours, kDefaultHostDurationHours));
   *history = GetBlocklistParamValue(kHostThreshold, kDefaultHostThreshold);
   *threshold = GetBlocklistParamValue(kHostThreshold, kDefaultHostThreshold);
diff --git a/components/heavy_ad_intervention/heavy_ad_blocklist_unittest.cc b/components/heavy_ad_intervention/heavy_ad_blocklist_unittest.cc
index ae93f41..14cfacb 100644
--- a/components/heavy_ad_intervention/heavy_ad_blocklist_unittest.cc
+++ b/components/heavy_ad_intervention/heavy_ad_blocklist_unittest.cc
@@ -89,8 +89,8 @@
 
   EXPECT_TRUE(blocklist_->ShouldUseHostPolicy(&duration, &history, &threshold,
                                               &max_hosts));
-  EXPECT_EQ(base::TimeDelta::FromDays(1), duration);
-  EXPECT_EQ(base::TimeDelta::FromHours(24), duration);
+  EXPECT_EQ(base::Days(1), duration);
+  EXPECT_EQ(base::Hours(24), duration);
   EXPECT_EQ(5u, history);
   EXPECT_EQ(5, threshold);
   EXPECT_EQ(50u, max_hosts);
@@ -121,7 +121,7 @@
 
   EXPECT_TRUE(blocklist_->ShouldUseHostPolicy(&duration, &history, &threshold,
                                               &max_hosts));
-  EXPECT_EQ(base::TimeDelta::FromHours(host_duration_hours), duration);
+  EXPECT_EQ(base::Hours(host_duration_hours), duration);
   EXPECT_EQ(host_threshold, static_cast<int>(history));
   EXPECT_EQ(host_threshold, threshold);
   EXPECT_EQ(host_max_hosts, static_cast<int>(max_hosts));
diff --git a/components/history/core/browser/android/android_time.h b/components/history/core/browser/android/android_time.h
index c3f65e6..62daeac 100644
--- a/components/history/core/browser/android/android_time.h
+++ b/components/history/core/browser/android/android_time.h
@@ -15,8 +15,7 @@
 // the below 2 methods are used convert between base::Time and the milliseconds
 // stored in database.
 inline base::Time FromDatabaseTime(int64_t milliseconds) {
-  return base::TimeDelta::FromMilliseconds(milliseconds) +
-         base::Time::UnixEpoch();
+  return base::Milliseconds(milliseconds) + base::Time::UnixEpoch();
 }
 
 inline int64_t ToDatabaseTime(const base::Time& time) {
diff --git a/components/history/core/browser/browsing_history_service.cc b/components/history/core/browser/browsing_history_service.cc
index 6233b5ab..662c613 100644
--- a/components/history/core/browser/browsing_history_service.cc
+++ b/components/history/core/browser/browsing_history_service.cc
@@ -271,7 +271,7 @@
       // Start a timer with timeout before we make the actual query, otherwise
       // tests get confused when completion callback is run synchronously.
       web_history_timer_->Start(
-          FROM_HERE, base::TimeDelta::FromSeconds(kWebHistoryTimeoutSeconds),
+          FROM_HERE, base::Seconds(kWebHistoryTimeoutSeconds),
           base::BindOnce(&BrowsingHistoryService::WebHistoryTimeout,
                          weak_factory_.GetWeakPtr(), state));
 
@@ -357,9 +357,9 @@
   }
 
   base::Time end_time =
-      result.last_visit < (query_start_time - base::TimeDelta::FromMinutes(1))
+      result.last_visit < (query_start_time - base::Minutes(1))
           ? result.last_visit
-          : query_start_time - base::TimeDelta::FromMinutes(1);
+          : query_start_time - base::Minutes(1);
   local_history_->GetLastVisitToHost(
       host_name, base::Time() /* before_time */, end_time /* end_time */,
       base::BindOnce(
@@ -740,8 +740,8 @@
             continue;
           }
           // The timestamp on the server is a Unix time.
-          base::Time time = base::Time::UnixEpoch() +
-                            base::TimeDelta::FromMicroseconds(timestamp_usec);
+          base::Time time =
+              base::Time::UnixEpoch() + base::Microseconds(timestamp_usec);
 
           // Get the ID of the client that this visit came from.
           std::string client_id;
diff --git a/components/history/core/browser/domain_mixing_metrics.cc b/components/history/core/browser/domain_mixing_metrics.cc
index 1a0d34b..d9bf9985 100644
--- a/components/history/core/browser/domain_mixing_metrics.cc
+++ b/components/history/core/browser/domain_mixing_metrics.cc
@@ -37,7 +37,7 @@
 // result = 2018-01-05 04:00:00 UTC
 Day ToStartOfDay(base::Time time, Day ref_start_of_day) {
   return ref_start_of_day +
-         base::TimeDelta::FromDays((time - ref_start_of_day).InDaysFloored());
+         base::Days((time - ref_start_of_day).InDaysFloored());
 }
 
 // Counts the number of visits per day and per domain as a nested map
@@ -118,8 +118,7 @@
   // Reverse iterator, starting at the day before active_day.
   auto it = std::make_reverse_iterator(active_day);
   for (const int num_days : NumDaysForMetrics()) {
-    const Day first_day =
-        active_day->first - base::TimeDelta::FromDays(num_days - 1);
+    const Day first_day = active_day->first - base::Days(num_days - 1);
     for (; it != domain_visits_per_day.rend() && it->first >= first_day; ++it) {
       for (const auto& domain_num_visits : it->second) {
         domain_visits[domain_num_visits.first] += domain_num_visits.second;
diff --git a/components/history/core/browser/domain_mixing_metrics_unittest.cc b/components/history/core/browser/domain_mixing_metrics_unittest.cc
index 20a9419..429f34a 100644
--- a/components/history/core/browser/domain_mixing_metrics_unittest.cc
+++ b/components/history/core/browser/domain_mixing_metrics_unittest.cc
@@ -18,8 +18,7 @@
 };
 
 TEST_F(DomainMixingMetricsTest, NoVisits) {
-  base::Time now =
-      base::Time::UnixEpoch() + base::TimeDelta::FromSeconds(1523432317);
+  base::Time now = base::Time::UnixEpoch() + base::Seconds(1523432317);
   EmitDomainMixingMetrics({}, now);
 
   // Check that no metrics were emitted.
@@ -41,16 +40,15 @@
   // DomainMixing.OneWeek 33% (2 on .ch, 1 on .fr, day 1 is out of range)
   // DomainMixing.TwoWeeks 50% (2 on .ch, 2 on other domains - 1.fr and 1 .com)
   // DomainMixing.OneMonth 50% (ditto)
-  base::Time day1 =
-      base::Time::UnixEpoch() + base::TimeDelta::FromSeconds(1523432317);
-  base::Time day2 = day1 + base::TimeDelta::FromDays(1);
-  base::Time day8 = day1 + base::TimeDelta::FromDays(7);
+  base::Time day1 = base::Time::UnixEpoch() + base::Seconds(1523432317);
+  base::Time day2 = day1 + base::Days(1);
+  base::Time day8 = day1 + base::Days(7);
   EmitDomainMixingMetrics(
       {
-          DomainVisit("www.google.com", day1 + base::TimeDelta::FromHours(1)),
-          DomainVisit("www.google.ch", day2 + base::TimeDelta::FromHours(23)),
-          DomainVisit("www.google.ch", day8 + base::TimeDelta::FromHours(2)),
-          DomainVisit("www.google.fr", day8 + base::TimeDelta::FromHours(22)),
+          DomainVisit("www.google.com", day1 + base::Hours(1)),
+          DomainVisit("www.google.ch", day2 + base::Hours(23)),
+          DomainVisit("www.google.ch", day8 + base::Hours(2)),
+          DomainVisit("www.google.fr", day8 + base::Hours(22)),
       },
       day8);
 
@@ -61,9 +59,8 @@
 }
 
 TEST_F(DomainMixingMetricsTest, WithInactiveDays) {
-  base::Time day1 =
-      base::Time::UnixEpoch() + base::TimeDelta::FromSeconds(1523432317);
-  base::Time day3 = day1 + base::TimeDelta::FromDays(2);
+  base::Time day1 = base::Time::UnixEpoch() + base::Seconds(1523432317);
+  base::Time day3 = day1 + base::Days(2);
   EmitDomainMixingMetrics(
       {
           DomainVisit("www.google.com", day1),
diff --git a/components/history/core/browser/expire_history_backend.cc b/components/history/core/browser/expire_history_backend.cc
index e6079be04..8f76fa6 100644
--- a/components/history/core/browser/expire_history_backend.cc
+++ b/components/history/core/browser/expire_history_backend.cc
@@ -83,8 +83,8 @@
 
     base::Time begin_time = db->GetEarlyExpirationThreshold();
     // Advance `end_time` to expire early.
-    base::Time early_end_time = end_time +
-        base::TimeDelta::FromDays(kEarlyExpirationAdvanceDays);
+    base::Time early_end_time =
+        end_time + base::Days(kEarlyExpirationAdvanceDays);
 
     // We don't want to set the early expiration threshold to a time in the
     // future.
@@ -122,8 +122,7 @@
 
 // If the expiration timer is delayed by over an hour, then assume that the
 // machine went to sleep.
-constexpr base::TimeDelta kExpirationSleepWakeupThreshold =
-    base::TimeDelta::FromHours(1);
+constexpr base::TimeDelta kExpirationSleepWakeupThreshold = base::Hours(1);
 
 // The minimum number of hours between checking for old on-demand favicons that
 // should be cleared.
@@ -339,7 +338,7 @@
   // in time, since it can be fairly expensive.
   if (expiration_threshold <
       last_on_demand_expiration_threshold_ +
-          base::TimeDelta::FromHours(kClearOnDemandFaviconsIntervalHours)) {
+          base::Hours(kClearOnDemandFaviconsIntervalHours)) {
     return;
   }
 
@@ -576,9 +575,9 @@
     // If work queue is empty, reset the work queue to contain all tasks and
     // schedule next iteration after a longer delay.
     InitWorkQueue();
-    delay = base::TimeDelta::FromMinutes(kExpirationEmptyDelayMin);
+    delay = base::Minutes(kExpirationEmptyDelayMin);
   } else {
-    delay = base::TimeDelta::FromSeconds(kExpirationDelaySec);
+    delay = base::Seconds(kExpirationDelaySec);
   }
 
   expected_expiration_time_ = base::Time::Now() + delay;
@@ -603,7 +602,7 @@
         FROM_HERE,
         base::BindOnce(&ExpireHistoryBackend::ScheduleExpire,
                        weak_factory_.GetWeakPtr()),
-        base::TimeDelta::FromMinutes(kExpirationEmptyDelayMin));
+        base::Minutes(kExpirationEmptyDelayMin));
     return;
   }
 
@@ -620,7 +619,7 @@
     // Otherwise do a final clean-up - remove old favicons not bound to visits.
     ClearOldOnDemandFaviconsIfPossible(
         base::Time::Now() -
-        base::TimeDelta::FromDays(internal::kOnDemandFaviconIsOldAfterDays));
+        base::Days(internal::kOnDemandFaviconIsOldAfterDays));
   }
 
   ScheduleExpire();
diff --git a/components/history/core/browser/expire_history_backend_unittest.cc b/components/history/core/browser/expire_history_backend_unittest.cc
index 80ea7b7c..b6ab918 100644
--- a/components/history/core/browser/expire_history_backend_unittest.cc
+++ b/components/history/core/browser/expire_history_backend_unittest.cc
@@ -69,8 +69,7 @@
 }
 
 base::Time GetOldFaviconThreshold() {
-  return PretendNow() -
-         base::TimeDelta::FromDays(internal::kOnDemandFaviconIsOldAfterDays);
+  return PretendNow() - base::Days(internal::kOnDemandFaviconIsOldAfterDays);
 }
 
 }  // namespace
@@ -234,9 +233,9 @@
 
   // Four times for each visit.
   visit_times[3] = PretendNow();
-  visit_times[2] = visit_times[3] - base::TimeDelta::FromDays(1);
-  visit_times[1] = visit_times[3] - base::TimeDelta::FromDays(2);
-  visit_times[0] = visit_times[3] - base::TimeDelta::FromDays(3);
+  visit_times[2] = visit_times[3] - base::Days(1);
+  visit_times[1] = visit_times[3] - base::Days(2);
+  visit_times[0] = visit_times[3] - base::Days(3);
 
   // Two favicons. The first two URLs will share the same one, while the last
   // one will have a unique favicon.
@@ -1057,8 +1056,8 @@
   const ExpiringVisitsReader* reader = expirer_.GetAllVisitsReader();
 
   // Deleting a time range with no URLs should return false (nothing found).
-  EXPECT_FALSE(expirer_.ExpireSomeOldHistory(
-      visit_times[0] - base::TimeDelta::FromDays(100), reader, 1));
+  EXPECT_FALSE(expirer_.ExpireSomeOldHistory(visit_times[0] - base::Days(100),
+                                             reader, 1));
   EXPECT_EQ(nullptr, GetLastDeletionInfo());
 
   // Deleting a time range with not up the the max results should also return
@@ -1117,7 +1116,7 @@
   favicon_base::FaviconID icon_id = thumb_db_->AddFavicon(
       url, favicon_base::IconType::kFavicon, favicon,
       favicon::FaviconBitmapType::ON_DEMAND,
-      GetOldFaviconThreshold() - base::TimeDelta::FromSeconds(1), gfx::Size());
+      GetOldFaviconThreshold() - base::Seconds(1), gfx::Size());
   ASSERT_NE(0, icon_id);
   GURL page_url("http://google.com/");
   ASSERT_NE(0, thumb_db_->AddIconMapping(page_url, icon_id));
@@ -1143,7 +1142,7 @@
   favicon_base::FaviconID icon_id = thumb_db_->AddFavicon(
       url, favicon_base::IconType::kFavicon, favicon,
       favicon::FaviconBitmapType::ON_DEMAND,
-      GetOldFaviconThreshold() - base::TimeDelta::FromSeconds(1), gfx::Size());
+      GetOldFaviconThreshold() - base::Seconds(1), gfx::Size());
   ASSERT_NE(0, icon_id);
   GURL page_url1("http://google.com/1");
   ASSERT_NE(0, thumb_db_->AddIconMapping(page_url1, icon_id));
@@ -1171,7 +1170,7 @@
 TEST_F(ExpireHistoryTest, ClearOldOnDemandFaviconsDoesDeleteAfterLongDelay) {
   // Previous clearing (2 days ago).
   expirer_.ClearOldOnDemandFaviconsIfPossible(GetOldFaviconThreshold() -
-                                              base::TimeDelta::FromDays(2));
+                                              base::Days(2));
 
   // The blob does not encode any real bitmap, obviously.
   const unsigned char kBlob[] = "0";
@@ -1183,7 +1182,7 @@
   favicon_base::FaviconID icon_id = thumb_db_->AddFavicon(
       url, favicon_base::IconType::kFavicon, favicon,
       favicon::FaviconBitmapType::ON_DEMAND,
-      GetOldFaviconThreshold() - base::TimeDelta::FromSeconds(1), gfx::Size());
+      GetOldFaviconThreshold() - base::Seconds(1), gfx::Size());
   ASSERT_NE(0, icon_id);
   GURL page_url("http://google.com/");
   ASSERT_NE(0, thumb_db_->AddIconMapping(page_url, icon_id));
@@ -1202,7 +1201,7 @@
        ClearOldOnDemandFaviconsDoesNotDeleteAfterShortDelay) {
   // Previous clearing (5 minutes ago).
   expirer_.ClearOldOnDemandFaviconsIfPossible(GetOldFaviconThreshold() -
-                                              base::TimeDelta::FromMinutes(5));
+                                              base::Minutes(5));
 
   // The blob does not encode any real bitmap, obviously.
   const unsigned char kBlob[] = "0";
@@ -1214,7 +1213,7 @@
   favicon_base::FaviconID icon_id = thumb_db_->AddFavicon(
       url, favicon_base::IconType::kFavicon, favicon,
       favicon::FaviconBitmapType::ON_DEMAND,
-      GetOldFaviconThreshold() - base::TimeDelta::FromSeconds(1), gfx::Size());
+      GetOldFaviconThreshold() - base::Seconds(1), gfx::Size());
   ASSERT_NE(0, icon_id);
   GURL page_url1("http://google.com/1");
   ASSERT_NE(0, thumb_db_->AddIconMapping(page_url1, icon_id));
@@ -1242,7 +1241,7 @@
   // Set up the example data.
   base::Time now = PretendNow();
   URLRow url_row1(GURL("http://google.com/1"));
-  url_row1.set_last_visit(now - base::TimeDelta::FromDays(1));
+  url_row1.set_last_visit(now - base::Days(1));
   url_row1.set_visit_count(1);
   URLID url1 = main_db_->AddURL(url_row1);
 
@@ -1255,7 +1254,7 @@
   // "http://www.google.com/1".
   VisitRow visit_row1;
   visit_row1.url_id = url1;
-  visit_row1.visit_time = now - base::TimeDelta::FromDays(1);
+  visit_row1.visit_time = now - base::Days(1);
   visit_row1.transition = ui::PAGE_TRANSITION_CHAIN_START;
 
   main_db_->AddVisit(&visit_row1, SOURCE_BROWSED);
@@ -1284,7 +1283,7 @@
   // Set up the example data.
   base::Time now = PretendNow();
   URLRow url_row1(GURL("http://google.com/1"));
-  url_row1.set_last_visit(now - base::TimeDelta::FromDays(1));
+  url_row1.set_last_visit(now - base::Days(1));
   url_row1.set_visit_count(1);
   URLID url1 = main_db_->AddURL(url_row1);
 
@@ -1297,7 +1296,7 @@
   // "http://www.google.com/1".
   VisitRow visit_row1;
   visit_row1.url_id = url1;
-  visit_row1.visit_time = now - base::TimeDelta::FromDays(1);
+  visit_row1.visit_time = now - base::Days(1);
   visit_row1.transition = ui::PAGE_TRANSITION_CHAIN_START;
   main_db_->AddVisit(&visit_row1, SOURCE_BROWSED);
 
@@ -1330,7 +1329,7 @@
   // Set up the example data.
   base::Time now = PretendNow();
   URLRow url_row1(GURL("http://google.com/1"));
-  url_row1.set_last_visit(now - base::TimeDelta::FromDays(1));
+  url_row1.set_last_visit(now - base::Days(1));
   url_row1.set_visit_count(1);
   URLID url1 = main_db_->AddURL(url_row1);
 
@@ -1343,7 +1342,7 @@
   // "http://www.google.com/1". But both are separate redirect chains.
   VisitRow visit_row1;
   visit_row1.url_id = url1;
-  visit_row1.visit_time = now - base::TimeDelta::FromDays(1);
+  visit_row1.visit_time = now - base::Days(1);
   visit_row1.transition = ui::PageTransitionFromInt(
       ui::PAGE_TRANSITION_CHAIN_START | ui::PAGE_TRANSITION_CHAIN_END);
   main_db_->AddVisit(&visit_row1, SOURCE_BROWSED);
diff --git a/components/history/core/browser/history_backend.cc b/components/history/core/browser/history_backend.cc
index 5fa23d6..acff532 100644
--- a/components/history/core/browser/history_backend.cc
+++ b/components/history/core/browser/history_backend.cc
@@ -176,8 +176,8 @@
 }
 
 base::Time MidnightNDaysLater(base::Time time, int days) {
-  return (time.LocalMidnight() + base::TimeDelta::FromDays(days) +
-          base::TimeDelta::FromHours(kDSTRoundingOffsetHours))
+  return (time.LocalMidnight() + base::Days(days) +
+          base::Hours(kDSTRoundingOffsetHours))
       .LocalMidnight();
 }
 
@@ -1899,8 +1899,7 @@
                                 base::Unretained(backend_client_.get()))
           : base::NullCallback();
   std::vector<std::unique_ptr<PageUsageData>> data = db_->QuerySegmentUsage(
-      base::Time::Now() - base::TimeDelta::FromDays(days_back), result_count,
-      url_filter);
+      base::Time::Now() - base::Days(days_back), result_count, url_filter);
 
   MostVisitedURLList result;
   for (const std::unique_ptr<PageUsageData>& current_data : data)
@@ -2259,9 +2258,8 @@
   scheduled_commit_.Reset(
       base::BindOnce(&HistoryBackend::Commit, base::Unretained(this)));
 
-  task_runner_->PostDelayedTask(
-      FROM_HERE, scheduled_commit_.callback(),
-      base::TimeDelta::FromSeconds(kCommitIntervalSeconds));
+  task_runner_->PostDelayedTask(FROM_HERE, scheduled_commit_.callback(),
+                                base::Seconds(kCommitIntervalSeconds));
 }
 
 void HistoryBackend::CancelScheduledCommit() {
diff --git a/components/history/core/browser/history_backend_db_unittest.cc b/components/history/core/browser/history_backend_db_unittest.cc
index cd12bc7..439983e 100644
--- a/components/history/core/browser/history_backend_db_unittest.cc
+++ b/components/history/core/browser/history_backend_db_unittest.cc
@@ -882,7 +882,7 @@
   url_chain.push_back(GURL("http://example.com/c"));
 
   base::Time start_time(base::Time::Now());
-  base::Time end_time(start_time + base::TimeDelta::FromHours(1));
+  base::Time end_time(start_time + base::Hours(1));
   base::Time last_access_time;
 
   DownloadRow download_A;
@@ -918,9 +918,9 @@
 
   url_chain.push_back(GURL("http://example.com/d"));
 
-  base::Time start_time2(start_time + base::TimeDelta::FromHours(10));
-  base::Time end_time2(end_time + base::TimeDelta::FromHours(10));
-  base::Time last_access_time2(start_time2 + base::TimeDelta::FromHours(5));
+  base::Time start_time2(start_time + base::Hours(10));
+  base::Time end_time2(end_time + base::Hours(10));
+  base::Time last_access_time2(start_time2 + base::Hours(5));
 
   DownloadRow download_B;
   download_B.current_path = base::FilePath(FILE_PATH_LITERAL("/path/3"));
@@ -977,8 +977,8 @@
   url_chain.push_back(GURL("http://example.com/c"));
 
   base::Time start_time(base::Time::Now());
-  base::Time end_time(start_time + base::TimeDelta::FromHours(1));
-  base::Time last_access_time(start_time + base::TimeDelta::FromHours(5));
+  base::Time end_time(start_time + base::Hours(1));
+  base::Time last_access_time(start_time + base::Hours(5));
 
   DownloadRow download;
   download.current_path = base::FilePath(FILE_PATH_LITERAL("/path/1"));
@@ -1019,7 +1019,7 @@
   download.state = DownloadState::CANCELLED;
   download.danger_type = DownloadDangerType::USER_VALIDATED;
   download.interrupt_reason = 4;
-  download.end_time += base::TimeDelta::FromHours(1);
+  download.end_time += base::Hours(1);
   download.total_bytes += 1;
   download.hash = "some-other-hash";
   download.opened = !download.opened;
@@ -1057,14 +1057,10 @@
       DownloadSliceInfo(id1, 500, 100, false));
   ASSERT_TRUE(db_->UpdateDownload(results[0]));
 
-  AddDownload(id2,
-              "05AF6C8E-E4E0-45D7-B5CE-BC99F7019919",
-              DownloadState::COMPLETE,
-              now + base::TimeDelta::FromDays(2));
-  AddDownload(id3,
-              "05AF6C8E-E4E0-45D7-B5CE-BC99F701991A",
-              DownloadState::COMPLETE,
-              now - base::TimeDelta::FromDays(2));
+  AddDownload(id2, "05AF6C8E-E4E0-45D7-B5CE-BC99F7019919",
+              DownloadState::COMPLETE, now + base::Days(2));
+  AddDownload(id3, "05AF6C8E-E4E0-45D7-B5CE-BC99F701991A",
+              DownloadState::COMPLETE, now - base::Days(2));
 
   // Confirm that resulted in the correct number of rows in the DB.
   DeleteBackend();
@@ -1256,7 +1252,7 @@
   download.mime_type = "mime/type";
   download.original_mime_type = "original/mime-type";
   download.start_time = base::Time::Now();
-  download.end_time = download.start_time + base::TimeDelta::FromHours(1);
+  download.end_time = download.start_time + base::Hours(1);
   download.etag = "etag1";
   download.last_modified = "last_modified_1";
   download.received_bytes = 10;
@@ -1268,8 +1264,7 @@
   download.id = 1;
   download.guid = "FE672168-26EF-4275-A149-FEC25F6A75F9";
   download.opened = false;
-  download.last_access_time =
-      download.start_time + base::TimeDelta::FromHours(5);
+  download.last_access_time = download.start_time + base::Hours(5);
   download.transient = false;
   download.by_ext_id = "extension-id";
   download.by_ext_name = "extension-name";
@@ -1306,7 +1301,7 @@
   download.mime_type = "mime/type";
   download.original_mime_type = "original/mime-type";
   download.start_time = base::Time::Now();
-  download.end_time = download.start_time + base::TimeDelta::FromHours(1);
+  download.end_time = download.start_time + base::Hours(1);
   download.etag = "etag1";
   download.last_modified = "last_modified_1";
   download.received_bytes = 0;
@@ -1318,8 +1313,7 @@
   download.id = 1;
   download.guid = "FE672168-26EF-4275-A149-FEC25F6A75F9";
   download.opened = false;
-  download.last_access_time =
-      download.start_time + base::TimeDelta::FromHours(5);
+  download.last_access_time = download.start_time + base::Hours(5);
   download.transient = true;
   download.by_ext_id = "extension-id";
   download.by_ext_name = "extension-name";
@@ -1351,7 +1345,7 @@
   download.mime_type = "mime/type";
   download.original_mime_type = "original/mime-type";
   download.start_time = base::Time::Now();
-  download.end_time = download.start_time + base::TimeDelta::FromHours(1);
+  download.end_time = download.start_time + base::Hours(1);
   download.etag = "etag1";
   download.last_modified = "last_modified_1";
   download.received_bytes = 10;
@@ -1363,8 +1357,7 @@
   download.id = 1;
   download.guid = "FE672168-26EF-4275-A149-FEC25F6A75F9";
   download.opened = false;
-  download.last_access_time =
-      download.start_time + base::TimeDelta::FromHours(5);
+  download.last_access_time = download.start_time + base::Hours(5);
   download.transient = true;
   download.by_ext_id = "extension-id";
   download.by_ext_name = "extension-name";
@@ -1408,7 +1401,7 @@
   download.mime_type = "mime/type";
   download.original_mime_type = "original/mime-type";
   download.start_time = base::Time::Now();
-  download.end_time = download.start_time + base::TimeDelta::FromHours(1);
+  download.end_time = download.start_time + base::Hours(1);
   download.etag = "etag1";
   download.last_modified = "last_modified_1";
   download.received_bytes = 10;
@@ -1420,8 +1413,7 @@
   download.id = 1;
   download.guid = "FE672168-26EF-4275-A149-FEC25F6A75F9";
   download.opened = false;
-  download.last_access_time =
-      download.start_time + base::TimeDelta::FromHours(5);
+  download.last_access_time = download.start_time + base::Hours(5);
   download.transient = false;
   download.by_ext_id = "extension-id";
   download.by_ext_name = "extension-name";
@@ -1511,7 +1503,7 @@
   download.mime_type = "mime/type";
   download.original_mime_type = "original/mime-type";
   download.start_time = base::Time::Now();
-  download.end_time = download.start_time + base::TimeDelta::FromHours(1);
+  download.end_time = download.start_time + base::Hours(1);
   download.etag = "etag1";
   download.last_modified = "last_modified_1";
   download.received_bytes = 10;
@@ -1523,8 +1515,7 @@
   download.id = 1;
   download.guid = "FE672168-26EF-4275-A149-FEC25F6A75F9";
   download.opened = false;
-  download.last_access_time =
-      download.start_time + base::TimeDelta::FromHours(5);
+  download.last_access_time = download.start_time + base::Hours(5);
   download.transient = true;
   download.by_ext_id = "extension-id";
   download.by_ext_name = "extension-name";
@@ -1845,8 +1836,8 @@
   const ui::PageTransition transition2 = ui::PAGE_TRANSITION_TYPED;
   const SegmentID segment_id1 = 7;
   const SegmentID segment_id2 = 8;
-  const base::TimeDelta visit_duration1(base::TimeDelta::FromSeconds(30));
-  const base::TimeDelta visit_duration2(base::TimeDelta::FromSeconds(45));
+  const base::TimeDelta visit_duration1(base::Seconds(30));
+  const base::TimeDelta visit_duration2(base::Seconds(45));
 
   const char kInsertStatement[] =
       "INSERT INTO visits "
@@ -1909,7 +1900,7 @@
   const VisitID referring_visit = 1;
   const ui::PageTransition transition = ui::PAGE_TRANSITION_TYPED;
   const SegmentID segment_id = 8;
-  const base::TimeDelta visit_duration(base::TimeDelta::FromSeconds(45));
+  const base::TimeDelta visit_duration(base::Seconds(45));
 
   const char kInsertStatement[] =
       "INSERT INTO visits "
@@ -1950,7 +1941,7 @@
   const VisitID referring_visit = 0;
   const ui::PageTransition transition = ui::PAGE_TRANSITION_TYPED;
   const base::Time visit_time(base::Time::Now());
-  const base::TimeDelta visit_duration(base::TimeDelta::FromSeconds(30));
+  const base::TimeDelta visit_duration(base::Seconds(30));
 
   // The first visit has both a DB entry and a metadata entry.
   const VisitID visit_id1 = 1;
@@ -2233,7 +2224,7 @@
   const VisitID referring_visit = 0;
   const ui::PageTransition transition = ui::PAGE_TRANSITION_TYPED;
   const base::Time visit_time(base::Time::Now());
-  const base::TimeDelta visit_duration(base::TimeDelta::FromSeconds(30));
+  const base::TimeDelta visit_duration(base::Seconds(30));
 
   // The first visit has both a DB entry and a metadata entry.
   const VisitID visit_id1 = 1;
@@ -2493,7 +2484,7 @@
     VisitContextAnnotations visit_context_annotations;
     db_->GetContextAnnotationsForVisit(visit_id, &visit_context_annotations);
     EXPECT_EQ(visit_context_annotations.total_foreground_duration,
-              base::TimeDelta::FromSeconds(-1));
+              base::Seconds(-1));
   }
 }
 
diff --git a/components/history/core/browser/history_backend_unittest.cc b/components/history/core/browser/history_backend_unittest.cc
index 13ec0fcc..b525448a 100644
--- a/components/history/core/browser/history_backend_unittest.cc
+++ b/components/history/core/browser/history_backend_unittest.cc
@@ -564,7 +564,7 @@
     url_row.set_title(u"Google Search");
     url_row.set_typed_count(1);
     url_row.set_visit_count(1);
-    url_row.set_last_visit(base::Time::Now() - base::TimeDelta::FromHours(1));
+    url_row.set_last_visit(base::Time::Now() - base::Hours(1));
     return url_row;
   }
 
@@ -574,7 +574,7 @@
     url_row.set_title(u"Google Maps");
     url_row.set_typed_count(2);
     url_row.set_visit_count(3);
-    url_row.set_last_visit(base::Time::Now() - base::TimeDelta::FromHours(2));
+    url_row.set_last_visit(base::Time::Now() - base::Hours(2));
     return url_row;
   }
 
@@ -583,7 +583,7 @@
     url_row.set_id(30);
     url_row.set_title(u"Google News");
     url_row.set_visit_count(5);
-    url_row.set_last_visit(base::Time::Now() - base::TimeDelta::FromHours(3));
+    url_row.set_last_visit(base::Time::Now() - base::Hours(3));
     return url_row;
   }
 
@@ -946,7 +946,7 @@
 
   GURL url("http://google.com");
 
-  base::Time visit_time = base::Time::Now() - base::TimeDelta::FromDays(1);
+  base::Time visit_time = base::Time::Now() - base::Days(1);
   HistoryAddPageArgs request(url, visit_time, nullptr, 0, GURL(),
                              RedirectList(),
                              ui::PAGE_TRANSITION_KEYWORD_GENERATED, false,
@@ -1081,11 +1081,11 @@
   URLRow row3(GURL("https://mail.google.com/"));
   row3.set_visit_count(1);
   row3.set_typed_count(1);
-  row3.set_last_visit(base::Time::Now() - base::TimeDelta::FromDays(7 - 1));
+  row3.set_last_visit(base::Time::Now() - base::Days(7 - 1));
   URLRow row4(GURL("https://maps.google.com/"));
   row4.set_visit_count(1);
   row4.set_typed_count(1);
-  row4.set_last_visit(base::Time::Now() - base::TimeDelta::FromDays(365 + 2));
+  row4.set_last_visit(base::Time::Now() - base::Days(365 + 2));
 
   URLRows rows;
   rows.push_back(row1);
@@ -1459,7 +1459,7 @@
 
   // Create visit times
   base::Time recent_time = base::Time::Now();
-  base::TimeDelta visit_age = base::TimeDelta::FromDays(3);
+  base::TimeDelta visit_age = base::Days(3);
   base::Time older_time = recent_time - visit_age;
 
   // Visit the url with recent time.
@@ -1890,14 +1890,14 @@
 
   GURL url1("http://www.cnn.com");
   std::vector<VisitInfo> visits1, visits2;
-  visits1.emplace_back(base::Time::Now() - base::TimeDelta::FromDays(5),
+  visits1.emplace_back(base::Time::Now() - base::Days(5),
                        ui::PAGE_TRANSITION_LINK);
-  visits1.emplace_back(base::Time::Now() - base::TimeDelta::FromDays(1),
+  visits1.emplace_back(base::Time::Now() - base::Days(1),
                        ui::PAGE_TRANSITION_LINK);
   visits1.emplace_back(base::Time::Now(), ui::PAGE_TRANSITION_LINK);
 
   GURL url2("http://www.example.com");
-  visits2.emplace_back(base::Time::Now() - base::TimeDelta::FromDays(10),
+  visits2.emplace_back(base::Time::Now() - base::Days(10),
                        ui::PAGE_TRANSITION_LINK);
   visits2.emplace_back(base::Time::Now(), ui::PAGE_TRANSITION_LINK);
 
@@ -1933,9 +1933,9 @@
 
   GURL url1("http://www.cnn.com");
   std::vector<VisitInfo> visits1;
-  visits1.emplace_back(base::Time::Now() - base::TimeDelta::FromDays(5),
+  visits1.emplace_back(base::Time::Now() - base::Days(5),
                        ui::PAGE_TRANSITION_LINK);
-  visits1.emplace_back(base::Time::Now() - base::TimeDelta::FromDays(1),
+  visits1.emplace_back(base::Time::Now() - base::Days(1),
                        ui::PAGE_TRANSITION_LINK);
   visits1.emplace_back(base::Time::Now(), ui::PAGE_TRANSITION_LINK);
 
@@ -1961,15 +1961,12 @@
   backend_->DeleteAllHistory();
 
   GURL url1("http://www.cnn.com");
-  VisitInfo typed_visit(
-      base::Time::Now() - base::TimeDelta::FromDays(6),
-      ui::PAGE_TRANSITION_TYPED);
-  VisitInfo reload_visit(
-      base::Time::Now() - base::TimeDelta::FromDays(5),
-      ui::PAGE_TRANSITION_RELOAD);
-  VisitInfo link_visit(
-      base::Time::Now() - base::TimeDelta::FromDays(4),
-      ui::PAGE_TRANSITION_LINK);
+  VisitInfo typed_visit(base::Time::Now() - base::Days(6),
+                        ui::PAGE_TRANSITION_TYPED);
+  VisitInfo reload_visit(base::Time::Now() - base::Days(5),
+                         ui::PAGE_TRANSITION_RELOAD);
+  VisitInfo link_visit(base::Time::Now() - base::Days(4),
+                       ui::PAGE_TRANSITION_LINK);
   std::vector<VisitInfo> visits_to_add;
   visits_to_add.push_back(typed_visit);
   visits_to_add.push_back(reload_visit);
@@ -2014,12 +2011,12 @@
 
   GURL url1("http://www.cnn.com");
   std::vector<VisitInfo> visits1, visits2;
-  visits1.emplace_back(base::Time::Now() - base::TimeDelta::FromDays(5),
+  visits1.emplace_back(base::Time::Now() - base::Days(5),
                        ui::PAGE_TRANSITION_LINK);
   visits1.emplace_back(base::Time::Now(), ui::PAGE_TRANSITION_LINK);
 
   GURL url2("http://www.example.com");
-  visits2.emplace_back(base::Time::Now() - base::TimeDelta::FromDays(10),
+  visits2.emplace_back(base::Time::Now() - base::Days(10),
                        ui::PAGE_TRANSITION_LINK);
   visits2.emplace_back(base::Time::Now(), ui::PAGE_TRANSITION_LINK);
 
@@ -2495,9 +2492,9 @@
 
 TEST_F(HistoryBackendTest, GetCountsAndLastVisitForOrigins) {
   base::Time now = base::Time::Now();
-  base::Time tomorrow = now + base::TimeDelta::FromDays(1);
-  base::Time yesterday = now - base::TimeDelta::FromDays(1);
-  base::Time last_week = now - base::TimeDelta::FromDays(7);
+  base::Time tomorrow = now + base::Days(1);
+  base::Time yesterday = now - base::Days(1);
+  base::Time last_week = now - base::Days(7);
 
   backend_->AddPageVisit(GURL("http://cnn.com/intl"), yesterday, 0,
                          ui::PAGE_TRANSITION_LINK, false, SOURCE_BROWSED, false,
@@ -2551,12 +2548,12 @@
 
   GURL url1("http://www.cnn.com");
   std::vector<VisitInfo> visit_info1, visit_info2;
-  base::Time start_ts = base::Time::Now() - base::TimeDelta::FromDays(5);
-  base::Time end_ts = start_ts + base::TimeDelta::FromDays(2);
+  base::Time start_ts = base::Time::Now() - base::Days(5);
+  base::Time end_ts = start_ts + base::Days(2);
   visit_info1.emplace_back(start_ts, ui::PAGE_TRANSITION_LINK);
 
   GURL url2("http://www.example.com");
-  visit_info2.emplace_back(base::Time::Now() - base::TimeDelta::FromDays(10),
+  visit_info2.emplace_back(base::Time::Now() - base::Days(10),
                            ui::PAGE_TRANSITION_LINK);
 
   // Clear all history.
@@ -2714,14 +2711,14 @@
   ASSERT_TRUE(backend_.get());
   // Since history operations are dependent on the local timezone, make all
   // entries relative to a fixed, local reference time.
-  base::Time reference_time = base::Time::UnixEpoch().LocalMidnight() +
-                              base::TimeDelta::FromHours(12);
+  base::Time reference_time =
+      base::Time::UnixEpoch().LocalMidnight() + base::Hours(12);
 
   // Insert 4 entries into the database.
   HistoryAddPageArgs args[4];
   for (size_t i = 0; i < base::size(args); ++i) {
     args[i].url = GURL("http://example" + base::NumberToString(i) + ".com");
-    args[i].time = reference_time + base::TimeDelta::FromDays(i);
+    args[i].time = reference_time + base::Days(i);
     backend_->AddPage(args[i]);
   }
 
@@ -3236,7 +3233,7 @@
   for (size_t i = 0; i < pages.size(); ++i) {
     HistoryAddPageArgs args;
     args.url = GURL("http://example" + base::NumberToString(i + 1) + ".com");
-    args.time = base::Time::Now() - base::TimeDelta::FromDays(i + 1);
+    args.time = base::Time::Now() - base::Days(i + 1);
     args.transition = pages[i].first;
     args.consider_for_ntp_most_visited = pages[i].second;
     backend_->AddPage(args);
@@ -3272,7 +3269,7 @@
     // Each visit should have a unique `visit_time` to avoid deduping visits to
     // the same URL. The exact times don't matter, but we use increasing values
     // to making the test cases easy to reason about.
-    last_visit_time += base::TimeDelta::FromMilliseconds(1);
+    last_visit_time += base::Milliseconds(1);
     return backend_->AddPageVisit(
         GURL(url), last_visit_time, /*referring_visit=*/0,
         // Must set this so that the visit is considered 'visible'.
@@ -3384,7 +3381,7 @@
 TEST_F(HistoryBackendTest, GetRecentClusterIdsAndAnnotatedVisits) {
   const auto time_now = base::Time::Now();
   const auto get_relative_time = [&](int seconds) {
-    return time_now + base::TimeDelta::FromSeconds(seconds);
+    return time_now + base::Seconds(seconds);
   };
 
   const auto add_annotated_visit = [&](int relative_time) {
@@ -3508,7 +3505,7 @@
     // Each visit should have a unique `visit_time` to avoid deduping visits to
     // the same URL. The exact times don't matter, but we use increasing
     // values to make the test cases easy to reason about.
-    last_visit_time += base::TimeDelta::FromMilliseconds(1);
+    last_visit_time += base::Milliseconds(1);
     ui::PageTransition transition =
         is_redirect ? ui::PageTransition::PAGE_TRANSITION_IS_REDIRECT_MASK
                     : ui::PageTransition::PAGE_TRANSITION_CHAIN_START;
diff --git a/components/history/core/browser/history_constants.cc b/components/history/core/browser/history_constants.cc
index 6d024a8..333cb449 100644
--- a/components/history/core/browser/history_constants.cc
+++ b/components/history/core/browser/history_constants.cc
@@ -19,7 +19,7 @@
 const int kMaxTitleChanges = 10;
 
 base::TimeDelta GetTitleSettingWindow() {
-  const auto value = base::TimeDelta::FromSeconds(5);
+  const auto value = base::Seconds(5);
   return value;
 }
 
diff --git a/components/history/core/browser/history_database.cc b/components/history/core/browser/history_database.cc
index 77a7cb71..e237476 100644
--- a/components/history/core/browser/history_database.cc
+++ b/components/history/core/browser/history_database.cc
@@ -169,8 +169,7 @@
     start_time = base::TimeTicks::Now();
 
     // Collect all URLs visited within the last month.
-    base::Time one_month_ago =
-        base::Time::Now() - base::TimeDelta::FromDays(30);
+    base::Time one_month_ago = base::Time::Now() - base::Days(30);
     sql::Statement url_sql(db_.GetUniqueStatement(
         "SELECT url, last_visit_time FROM urls WHERE last_visit_time > ?"));
     url_sql.BindInt64(0, one_month_ago.ToInternalValue());
@@ -181,7 +180,7 @@
     int month_url_count = 0;
     std::set<std::string> week_hosts;
     std::set<std::string> month_hosts;
-    base::Time one_week_ago = base::Time::Now() - base::TimeDelta::FromDays(7);
+    base::Time one_week_ago = base::Time::Now() - base::Days(7);
     while (url_sql.Step()) {
       GURL url(url_sql.ColumnString(0));
       base::Time visit_time =
@@ -207,7 +206,7 @@
 int HistoryDatabase::CountUniqueHostsVisitedLastMonth() {
   base::TimeTicks start_time = base::TimeTicks::Now();
   // Collect all URLs visited within the last month.
-  base::Time one_month_ago = base::Time::Now() - base::TimeDelta::FromDays(30);
+  base::Time one_month_ago = base::Time::Now() - base::Days(30);
 
   sql::Statement url_sql(
       db_.GetUniqueStatement("SELECT url FROM urls "
diff --git a/components/history/core/browser/history_querying_unittest.cc b/components/history/core/browser/history_querying_unittest.cc
index fcbb134..bdd0e4e 100644
--- a/components/history/core/browser/history_querying_unittest.cc
+++ b/components/history/core/browser/history_querying_unittest.cc
@@ -204,7 +204,7 @@
   }
 
   base::Time GetTimeFromDaysAgo(int days_ago) {
-    return base_ - (days_ago * base::TimeDelta::FromDays(1));
+    return base_ - (days_ago * base::Days(1));
   }
 
   void TearDown() override {
@@ -295,8 +295,7 @@
   EXPECT_FALSE(results.reached_beginning());
 
   // Try `begin_time` just later than the oldest visit.
-  options.begin_time =
-      test_entries[0].time + base::TimeDelta::FromMicroseconds(1);
+  options.begin_time = test_entries[0].time + base::Microseconds(1);
   QueryHistory(std::string(), options, &results);
   EXPECT_FALSE(results.reached_beginning());
   QueryHistory("some", options, &results);
@@ -310,8 +309,7 @@
   EXPECT_TRUE(results.reached_beginning());
 
   // Try `begin_time` just earlier than the oldest visit.
-  options.begin_time =
-      test_entries[0].time - base::TimeDelta::FromMicroseconds(1);
+  options.begin_time = test_entries[0].time - base::Microseconds(1);
   QueryHistory(std::string(), options, &results);
   EXPECT_TRUE(results.reached_beginning());
   QueryHistory("some", options, &results);
diff --git a/components/history/core/browser/history_service_unittest.cc b/components/history/core/browser/history_service_unittest.cc
index e01d81e..8a5e397d 100644
--- a/components/history/core/browser/history_service_unittest.cc
+++ b/components/history/core/browser/history_service_unittest.cc
@@ -643,8 +643,7 @@
 void AddPageInThePast(HistoryService* history,
                       const std::string& url_spec,
                       int days_back) {
-  base::Time time_in_the_past =
-      base::Time::Now() - base::TimeDelta::FromDays(days_back);
+  base::Time time_in_the_past = base::Time::Now() - base::Days(days_back);
   AddPageAtTime(history, url_spec, time_in_the_past);
 }
 
@@ -656,9 +655,8 @@
                             int seconds = 0) {
   base::Time past_midnight = MidnightNDaysLater(base_time, -days_back);
 
-  return past_midnight + base::TimeDelta::FromHours(hours_since_midnight) +
-         base::TimeDelta::FromMinutes(minutes) +
-         base::TimeDelta::FromSeconds(seconds);
+  return past_midnight + base::Hours(hours_since_midnight) +
+         base::Minutes(minutes) + base::Seconds(seconds);
 }
 
 // Helper to contain a callback and run loop logic.
@@ -683,7 +681,7 @@
     DomainMetricBitmaskType metric_type_bitmask,
     base::CancelableTaskTracker* tracker) {
   base::RunLoop run_loop;
-  base::TimeDelta dst_rounding_offset = base::TimeDelta::FromHours(4);
+  base::TimeDelta dst_rounding_offset = base::Hours(4);
 
   // Compute the number of days to report metrics for.
   int number_of_days = 0;
@@ -764,8 +762,7 @@
   // some domain visits can be inserted between `query_time` and midnight
   // for testing.
   query_time =
-      std::max(query_time.LocalMidnight() + base::TimeDelta::FromMinutes(10),
-               query_time);
+      std::max(query_time.LocalMidnight() + base::Minutes(10), query_time);
 
   AddPageAtTime(history, "http://www.google.com/",
                 GetTimeInThePast(query_time, /*days_back=*/2,
@@ -780,7 +777,7 @@
   // Domains visited on the query day will not be included in the result.
   AddPageAtTime(history, "http://www.youtube.com/", query_time.LocalMidnight());
   AddPageAtTime(history, "http://www.chromium.com/",
-                query_time.LocalMidnight() + base::TimeDelta::FromMinutes(5));
+                query_time.LocalMidnight() + base::Minutes(5));
   AddPageAtTime(history, "http://www.youtube.com/", query_time);
 
   // IP addresses, empty strings, non-TLD's should not be counted
diff --git a/components/history/core/browser/history_types.cc b/components/history/core/browser/history_types.cc
index 74abe22..99d8b52 100644
--- a/components/history/core/browser/history_types.cc
+++ b/components/history/core/browser/history_types.cc
@@ -169,7 +169,7 @@
 
 void QueryOptions::SetRecentDayRange(int days_ago) {
   end_time = base::Time::Now();
-  begin_time = end_time - base::TimeDelta::FromDays(days_ago);
+  begin_time = end_time - base::Days(days_ago);
 }
 
 int64_t QueryOptions::EffectiveBeginTime() const {
@@ -324,7 +324,7 @@
 
   // Due to DST, leap seconds, etc., the next day at midnight may be more than
   // 24 hours away, so add 36 hours and round back down to midnight.
-  end_time = (begin_time + base::TimeDelta::FromHours(36)).LocalMidnight();
+  end_time = (begin_time + base::Hours(36)).LocalMidnight();
 }
 
 // DeletionTimeRange ----------------------------------------------------------
diff --git a/components/history/core/browser/history_types.h b/components/history/core/browser/history_types.h
index 878bb8d..7199e77 100644
--- a/components/history/core/browser/history_types.h
+++ b/components/history/core/browser/history_types.h
@@ -730,7 +730,7 @@
   // respond. Any duration that exceeds 30 days will be recorded as 30 days, so
   // in practice, if this duration indicates 30 days, it can be anything from 30
   // to the maximum duration that local history is stored.
-  base::TimeDelta duration_since_last_visit = base::TimeDelta::FromSeconds(-1);
+  base::TimeDelta duration_since_last_visit = base::Seconds(-1);
 
   // ---------------------------------------------------------------------------
   // The below metrics are all already recorded by UKM for non-memories reasons.
@@ -744,7 +744,7 @@
 
   // The total duration that this visit was in the foreground. Recorded as -1 if
   // not recorded.
-  base::TimeDelta total_foreground_duration = base::TimeDelta::FromSeconds(-1);
+  base::TimeDelta total_foreground_duration = base::Seconds(-1);
 };
 
 // A `VisitRow` along with its corresponding `URLRow`,
diff --git a/components/history/core/browser/history_types_unittest.cc b/components/history/core/browser/history_types_unittest.cc
index 4391e28..bc00ed1 100644
--- a/components/history/core/browser/history_types_unittest.cc
+++ b/components/history/core/browser/history_types_unittest.cc
@@ -123,8 +123,8 @@
   EXPECT_FALSE(invalid.IsValid());
   EXPECT_FALSE(invalid.IsAllTime());
 
-  auto some_hours = DeletionTimeRange(
-      base::Time::Now() - base::TimeDelta::FromHours(1), base::Time::Now());
+  auto some_hours =
+      DeletionTimeRange(base::Time::Now() - base::Hours(1), base::Time::Now());
   EXPECT_TRUE(some_hours.IsValid());
   EXPECT_FALSE(some_hours.IsAllTime());
 
diff --git a/components/history/core/browser/sync/delete_directive_handler.cc b/components/history/core/browser/sync/delete_directive_handler.cc
index ae4651a2..4c46eea 100644
--- a/components/history/core/browser/sync/delete_directive_handler.cc
+++ b/components/history/core/browser/sync/delete_directive_handler.cc
@@ -61,7 +61,7 @@
 
 // Converts a Unix timestamp in microseconds to a base::Time value.
 base::Time UnixUsecToTime(int64_t usec) {
-  return base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(usec);
+  return base::Time::UnixEpoch() + base::Microseconds(usec);
 }
 
 // Converts a base::Time value to a Unix timestamp in microseconds.
@@ -254,7 +254,7 @@
     // range in directive is inclusive.
     history_backend->ExpireHistoryForTimes(
         group_it->second, group_it->first.first,
-        group_it->first.second + base::TimeDelta::FromMicroseconds(1));
+        group_it->first.second + base::Microseconds(1));
   }
 }
 
@@ -295,7 +295,7 @@
         // time range in directive is inclusive.
         history_backend->ExpireHistoryBetween(
             std::set<GURL>(), current_start_time,
-            current_end_time + base::TimeDelta::FromMicroseconds(1),
+            current_end_time + base::Microseconds(1),
             /*user_initiated*/ true);
       }
       current_start_time = directive_start_time;
@@ -307,7 +307,7 @@
   if (!current_start_time.is_null()) {
     history_backend->ExpireHistoryBetween(
         std::set<GURL>(), current_start_time,
-        current_end_time + base::TimeDelta::FromMicroseconds(1),
+        current_end_time + base::Microseconds(1),
         /*user_initiated*/ true);
   }
 }
diff --git a/components/history/core/browser/sync/delete_directive_handler_unittest.cc b/components/history/core/browser/sync/delete_directive_handler_unittest.cc
index d1d62b1c..13f3822 100644
--- a/components/history/core/browser/sync/delete_directive_handler_unittest.cc
+++ b/components/history/core/browser/sync/delete_directive_handler_unittest.cc
@@ -33,7 +33,7 @@
 namespace {
 
 base::Time UnixUsecToTime(int64_t usec) {
-  return base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(usec);
+  return base::Time::UnixEpoch() + base::Microseconds(usec);
 }
 
 class TestHistoryBackendDelegate : public HistoryBackend::Delegate {
@@ -85,7 +85,7 @@
     return;
   }
 
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(100));
+  base::PlatformThread::Sleep(base::Milliseconds(100));
   base::ThreadTaskRunnerHandle::Get()->PostTask(
       FROM_HERE, base::BindOnce(&CheckDirectiveProcessingResult, timeout,
                                 change_processor, num_changes));
@@ -176,8 +176,7 @@
   sync_pb::GlobalIdDirective* global_id_directive =
       delete_directive.mutable_global_id_directive();
   global_id_directive->add_global_id(
-      (base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(1))
-          .ToInternalValue());
+      (base::Time::UnixEpoch() + base::Microseconds(1)).ToInternalValue());
 
   syncer::FakeSyncChangeProcessor change_processor;
 
@@ -223,8 +222,7 @@
       entity_specs.mutable_history_delete_directive()
           ->mutable_global_id_directive();
   global_id_directive->add_global_id(
-      (base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(6))
-          .ToInternalValue());
+      (base::Time::UnixEpoch() + base::Microseconds(6)).ToInternalValue());
   global_id_directive->set_start_time_usec(3);
   global_id_directive->set_end_time_usec(10);
   directives.push_back(
@@ -233,8 +231,7 @@
   // 2nd directive.
   global_id_directive->Clear();
   global_id_directive->add_global_id(
-      (base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(17))
-          .ToInternalValue());
+      (base::Time::UnixEpoch() + base::Microseconds(17)).ToInternalValue());
   global_id_directive->set_start_time_usec(13);
   global_id_directive->set_end_time_usec(19);
   directives.push_back(
@@ -253,10 +250,9 @@
   // Inject a task to check status and keep message loop filled before directive
   // processing finishes.
   base::ThreadTaskRunnerHandle::Get()->PostTask(
-      FROM_HERE,
-      base::BindOnce(&CheckDirectiveProcessingResult,
-                     base::Time::Now() + base::TimeDelta::FromSeconds(10),
-                     &change_processor, 2));
+      FROM_HERE, base::BindOnce(&CheckDirectiveProcessingResult,
+                                base::Time::Now() + base::Seconds(10),
+                                &change_processor, 2));
   base::RunLoop().RunUntilIdle();
 
   QueryURLResult query = QueryURL(test_url);
@@ -320,10 +316,9 @@
   // Inject a task to check status and keep message loop filled before
   // directive processing finishes.
   base::ThreadTaskRunnerHandle::Get()->PostTask(
-      FROM_HERE,
-      base::BindOnce(&CheckDirectiveProcessingResult,
-                     base::Time::Now() + base::TimeDelta::FromSeconds(10),
-                     &change_processor, 2));
+      FROM_HERE, base::BindOnce(&CheckDirectiveProcessingResult,
+                                base::Time::Now() + base::Seconds(10),
+                                &change_processor, 2));
   base::RunLoop().RunUntilIdle();
 
   QueryURLResult query = QueryURL(test_url);
@@ -387,10 +382,9 @@
   // Inject a task to check status and keep message loop filled before
   // directive processing finishes.
   base::ThreadTaskRunnerHandle::Get()->PostTask(
-      FROM_HERE,
-      base::BindOnce(&CheckDirectiveProcessingResult,
-                     base::Time::Now() + base::TimeDelta::FromSeconds(10),
-                     &change_processor, 2));
+      FROM_HERE, base::BindOnce(&CheckDirectiveProcessingResult,
+                                base::Time::Now() + base::Seconds(10),
+                                &change_processor, 2));
   base::RunLoop().RunUntilIdle();
 
   QueryURLResult query = QueryURL(test_url1);
diff --git a/components/history/core/browser/top_sites_impl.cc b/components/history/core/browser/top_sites_impl.cc
index d6ea7d6..39b3837 100644
--- a/components/history/core/browser/top_sites_impl.cc
+++ b/components/history/core/browser/top_sites_impl.cc
@@ -62,17 +62,16 @@
 }
 
 // The delay for the first HistoryService query at startup.
-constexpr base::TimeDelta kFirstDelayAtStartup =
-    base::TimeDelta::FromSeconds(15);
+constexpr base::TimeDelta kFirstDelayAtStartup = base::Seconds(15);
 
 // The delay for the all HistoryService queries other than the first one.
 #if defined(OS_IOS) || defined(OS_ANDROID)
 // On mobile, having the max at 60 minutes results in the topsites database
 // being not updated often enough since the app isn't usually running for long
 // stretches of time.
-constexpr base::TimeDelta kDelayForUpdates = base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kDelayForUpdates = base::Minutes(5);
 #else
-constexpr base::TimeDelta kDelayForUpdates = base::TimeDelta::FromMinutes(60);
+constexpr base::TimeDelta kDelayForUpdates = base::Minutes(60);
 #endif  // defined(OS_IOS) || defined(OS_ANDROID)
 
 // Key for preference listing the URLs that should not be shown as most visited
diff --git a/components/history/core/browser/top_sites_impl_unittest.cc b/components/history/core/browser/top_sites_impl_unittest.cc
index af0e3d5..4ad0a13 100644
--- a/components/history/core/browser/top_sites_impl_unittest.cc
+++ b/components/history/core/browser/top_sites_impl_unittest.cc
@@ -502,11 +502,11 @@
   url2_redirects.push_back(google2_url);
   url2_redirects.push_back(google3_url);
 
-  AddPageToHistory(google3_url, url2.title,
-                   add_time - base::TimeDelta::FromMinutes(1), url2_redirects);
+  AddPageToHistory(google3_url, url2.title, add_time - base::Minutes(1),
+                   url2_redirects);
   // Add google twice so that it becomes the first visited site.
-  AddPageToHistory(google3_url, url2.title,
-                   add_time - base::TimeDelta::FromMinutes(2), url2_redirects);
+  AddPageToHistory(google3_url, url2.title, add_time - base::Minutes(2),
+                   url2_redirects);
 
   RefreshTopSitesAndRecreate();
 
diff --git a/components/history/core/browser/url_database.cc b/components/history/core/browser/url_database.cc
index a2ca714a..fa353779 100644
--- a/components/history/core/browser/url_database.cc
+++ b/components/history/core/browser/url_database.cc
@@ -786,11 +786,10 @@
 const int kLowQualityMatchAgeLimitInDays = 3;
 
 const base::TimeDelta kAutocompleteDuplicateVisitIntervalThreshold =
-    base::TimeDelta::FromMinutes(5);
+    base::Minutes(5);
 
 base::Time AutocompleteAgeThreshold() {
-  return (base::Time::Now() -
-          base::TimeDelta::FromDays(kLowQualityMatchAgeLimitInDays));
+  return (base::Time::Now() - base::Days(kLowQualityMatchAgeLimitInDays));
 }
 
 bool RowQualifiesAsSignificant(const URLRow& row,
diff --git a/components/history/core/browser/visit_annotations_database.cc b/components/history/core/browser/visit_annotations_database.cc
index 9d253c2f..84c3704 100644
--- a/components/history/core/browser/visit_annotations_database.cc
+++ b/components/history/core/browser/visit_annotations_database.cc
@@ -155,13 +155,13 @@
 // Convenience to construct a `AnnotatedVisitRow`. Assumes the visit values are
 // bound starting at index 0.
 AnnotatedVisitRow StatementToAnnotatedVisitRow(sql::Statement& statement) {
-  return {statement.ColumnInt64(0),
-          ConstructContextAnnotationsWithFlags(
-              statement.ColumnInt64(1),
-              base::TimeDelta::FromMicroseconds(statement.ColumnInt64(2)),
-              statement.ColumnInt(3),
-              base::TimeDelta::FromMicroseconds(statement.ColumnInt64(4))),
-          {}};
+  return {
+      statement.ColumnInt64(0),
+      ConstructContextAnnotationsWithFlags(
+          statement.ColumnInt64(1),
+          base::Microseconds(statement.ColumnInt64(2)), statement.ColumnInt(3),
+          base::Microseconds(statement.ColumnInt64(4))),
+      {}};
 }
 
 // Like `StatementToAnnotatedVisitRow()` but for multiple rows.
@@ -347,10 +347,8 @@
   // The `VisitID` in column 0 is intentionally ignored, as it's not part of
   // `VisitContextAnnotations`.
   *out_context_annotations = ConstructContextAnnotationsWithFlags(
-      statement.ColumnInt64(1),
-      base::TimeDelta::FromMicroseconds(statement.ColumnInt64(2)),
-      statement.ColumnInt(3),
-      base::TimeDelta::FromMicroseconds(statement.ColumnInt64(4)));
+      statement.ColumnInt64(1), base::Microseconds(statement.ColumnInt64(2)),
+      statement.ColumnInt(3), base::Microseconds(statement.ColumnInt64(4)));
   return true;
 }
 
diff --git a/components/history/core/browser/visit_annotations_test_utils.cc b/components/history/core/browser/visit_annotations_test_utils.cc
index 785ede35..212d440 100644
--- a/components/history/core/browser/visit_annotations_test_utils.cc
+++ b/components/history/core/browser/visit_annotations_test_utils.cc
@@ -9,8 +9,7 @@
 namespace history {
 
 base::Time IntToTime(int seconds) {
-  return base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromSeconds(seconds));
+  return base::Time::FromDeltaSinceWindowsEpoch(base::Seconds(seconds));
 }
 
 std::vector<VisitID> GetVisitIds(
diff --git a/components/history/core/browser/visit_database_unittest.cc b/components/history/core/browser/visit_database_unittest.cc
index 165d55c..7255b90 100644
--- a/components/history/core/browser/visit_database_unittest.cc
+++ b/components/history/core/browser/visit_database_unittest.cc
@@ -625,10 +625,10 @@
 
 TEST_F(VisitDatabaseTest, GetLastVisitToOrigin_VisitsOutsideRange) {
   base::Time begin_time = base::Time::Now();
-  base::Time end_time = begin_time + base::TimeDelta::FromHours(1);
+  base::Time end_time = begin_time + base::Hours(1);
 
   VisitRow row1{AddURL(URLRow(GURL("https://www.chromium.org"))),
-                begin_time - base::TimeDelta::FromHours(1),
+                begin_time - base::Hours(1),
                 0,
                 ui::PageTransitionFromInt(0),
                 0,
@@ -636,7 +636,7 @@
                 0};
   AddVisit(&row1, SOURCE_BROWSED);
   VisitRow row2{AddURL(URLRow(GURL("https://www.chromium.org"))),
-                end_time + base::TimeDelta::FromHours(1),
+                end_time + base::Hours(1),
                 0,
                 ui::PageTransitionFromInt(0),
                 0,
@@ -653,7 +653,7 @@
 
 TEST_F(VisitDatabaseTest, GetLastVisitToOrigin_EndTimeNotIncluded) {
   base::Time begin_time = base::Time::Now();
-  base::Time end_time = begin_time + base::TimeDelta::FromHours(1);
+  base::Time end_time = begin_time + base::Hours(1);
 
   VisitRow row1{AddURL(URLRow(GURL("https://www.chromium.org"))),
                 begin_time,
@@ -681,7 +681,7 @@
 
 TEST_F(VisitDatabaseTest, GetLastVisitToOrigin_SameOriginOnly) {
   base::Time begin_time = base::Time::Now();
-  base::Time end_time = begin_time + base::TimeDelta::FromHours(1);
+  base::Time end_time = begin_time + base::Hours(1);
 
   VisitRow row1{AddURL(URLRow(GURL("https://other.origin.chromium.org"))),
                 begin_time,
@@ -692,7 +692,7 @@
                 0};
   AddVisit(&row1, SOURCE_BROWSED);
   VisitRow row2{AddURL(URLRow(GURL("https://www.chromium.org/path?query=foo"))),
-                begin_time + base::TimeDelta::FromMinutes(1),
+                begin_time + base::Minutes(1),
                 0,
                 ui::PageTransitionFromInt(0),
                 0,
@@ -704,12 +704,12 @@
   EXPECT_TRUE(GetLastVisitToOrigin(
       url::Origin::Create(GURL("https://www.chromium.org")), begin_time,
       end_time, &last_visit));
-  EXPECT_EQ(last_visit, begin_time + base::TimeDelta::FromMinutes(1));
+  EXPECT_EQ(last_visit, begin_time + base::Minutes(1));
 }
 
 TEST_F(VisitDatabaseTest, GetLastVisitToHost_DifferentScheme) {
   base::Time begin_time = base::Time::Now();
-  base::Time end_time = begin_time + base::TimeDelta::FromHours(1);
+  base::Time end_time = begin_time + base::Hours(1);
 
   VisitRow row1{AddURL(URLRow(GURL("https://www.chromium.org"))),
                 begin_time,
@@ -722,7 +722,7 @@
                 0};
   AddVisit(&row1, SOURCE_BROWSED);
   VisitRow row2{AddURL(URLRow(GURL("http://www.chromium.org"))),
-                begin_time + base::TimeDelta::FromMinutes(1),
+                begin_time + base::Minutes(1),
                 0,
                 ui::PageTransitionFromInt(ui::PAGE_TRANSITION_TYPED |
                                           ui::PAGE_TRANSITION_CHAIN_START |
@@ -736,12 +736,12 @@
   VisitRow row;
   EXPECT_TRUE(GetLastVisitToHost(GURL("https://www.chromium.org").host(),
                                  begin_time, end_time, &last_visit));
-  EXPECT_EQ(last_visit, begin_time + base::TimeDelta::FromMinutes(1));
+  EXPECT_EQ(last_visit, begin_time + base::Minutes(1));
 }
 
 TEST_F(VisitDatabaseTest, GetLastVisitToHost_IncludePort) {
   base::Time begin_time = base::Time::Now();
-  base::Time end_time = begin_time + base::TimeDelta::FromHours(1);
+  base::Time end_time = begin_time + base::Hours(1);
 
   VisitRow row1{AddURL(URLRow(GURL("https://www.chromium.org"))),
                 begin_time,
@@ -754,7 +754,7 @@
                 0};
   AddVisit(&row1, SOURCE_BROWSED);
   VisitRow row2{AddURL(URLRow(GURL("https://www.chromium.org:8080"))),
-                begin_time + base::TimeDelta::FromMinutes(1),
+                begin_time + base::Minutes(1),
                 0,
                 ui::PageTransitionFromInt(ui::PAGE_TRANSITION_TYPED |
                                           ui::PAGE_TRANSITION_CHAIN_START |
@@ -767,12 +767,12 @@
   base::Time last_visit;
   EXPECT_TRUE(GetLastVisitToHost(GURL("https://www.chromium.org").host(),
                                  begin_time, end_time, &last_visit));
-  EXPECT_EQ(last_visit, begin_time + base::TimeDelta::FromMinutes(1));
+  EXPECT_EQ(last_visit, begin_time + base::Minutes(1));
 }
 
 TEST_F(VisitDatabaseTest, GetLastVisitToHost_DifferentPorts) {
   base::Time begin_time = base::Time::Now();
-  base::Time end_time = begin_time + base::TimeDelta::FromHours(1);
+  base::Time end_time = begin_time + base::Hours(1);
 
   VisitRow row1{AddURL(URLRow(GURL("https://www.chromium.org:8080"))),
                 begin_time,
@@ -785,7 +785,7 @@
                 0};
   AddVisit(&row1, SOURCE_BROWSED);
   VisitRow row2{AddURL(URLRow(GURL("https://www.chromium.org:32256"))),
-                begin_time + base::TimeDelta::FromMinutes(1),
+                begin_time + base::Minutes(1),
                 0,
                 ui::PageTransitionFromInt(ui::PAGE_TRANSITION_TYPED |
                                           ui::PAGE_TRANSITION_CHAIN_START |
@@ -798,12 +798,12 @@
   base::Time last_visit;
   EXPECT_TRUE(GetLastVisitToHost(GURL("https://www.chromium.org:8080").host(),
                                  begin_time, end_time, &last_visit));
-  EXPECT_EQ(last_visit, begin_time + base::TimeDelta::FromMinutes(1));
+  EXPECT_EQ(last_visit, begin_time + base::Minutes(1));
 }
 
 TEST_F(VisitDatabaseTest, GetLastVisitToOrigin_MostRecentVisitTime) {
   base::Time begin_time = base::Time::Now();
-  base::Time end_time = begin_time + base::TimeDelta::FromHours(1);
+  base::Time end_time = begin_time + base::Hours(1);
 
   VisitRow row1{AddURL(URLRow(GURL("https://chromium.org/"))),
                 begin_time,
@@ -814,7 +814,7 @@
                 0};
   AddVisit(&row1, SOURCE_BROWSED);
   VisitRow row2{AddURL(URLRow(GURL("https://www.chromium.org/"))),
-                begin_time + base::TimeDelta::FromMinutes(1),
+                begin_time + base::Minutes(1),
                 0,
                 ui::PageTransitionFromInt(0),
                 0,
@@ -822,7 +822,7 @@
                 0};
   AddVisit(&row2, SOURCE_BROWSED);
   VisitRow row3{AddURL(URLRow(GURL("https://www.chromium.org/"))),
-                begin_time + base::TimeDelta::FromMinutes(2),
+                begin_time + base::Minutes(2),
                 0,
                 ui::PageTransitionFromInt(0),
                 0,
@@ -834,7 +834,7 @@
   EXPECT_TRUE(GetLastVisitToOrigin(
       url::Origin::Create(GURL("https://www.chromium.org")), begin_time,
       end_time, &last_visit));
-  EXPECT_EQ(last_visit, begin_time + base::TimeDelta::FromMinutes(2));
+  EXPECT_EQ(last_visit, begin_time + base::Minutes(2));
 }
 
 TEST_F(VisitDatabaseTest, GetLastVisitToURL) {
@@ -887,11 +887,10 @@
 
 TEST_F(VisitDatabaseTest, GetDailyVisitsToHostWithVisits) {
   base::Time begin_time = base::Time::Now();
-  base::Time end_time = begin_time + base::TimeDelta::FromDays(10);
+  base::Time end_time = begin_time + base::Days(10);
 
-  base::Time day1_time =
-      begin_time.LocalMidnight() + base::TimeDelta::FromHours(24);
-  base::Time day2_time = day1_time + base::TimeDelta::FromHours(24);
+  base::Time day1_time = begin_time.LocalMidnight() + base::Hours(24);
+  base::Time day2_time = day1_time + base::Hours(24);
 
   auto add_visit = [&](const GURL& url, base::Time visit_time) {
     VisitRow row{AddURL(URLRow(url)),
@@ -906,13 +905,11 @@
     AddVisit(&row, SOURCE_BROWSED);
   };
   // One visit before time range.
-  add_visit(GURL("https://foo.com/"),
-            begin_time - base::TimeDelta::FromHours(1));
+  add_visit(GURL("https://foo.com/"), begin_time - base::Hours(1));
   // Two visits on first day.
   add_visit(GURL("https://foo.com/bar"), day1_time);
-  add_visit(GURL("https://foo.com/baz"), day1_time +
-                                             base::TimeDelta::FromHours(24) -
-                                             base::TimeDelta::FromSeconds(1));
+  add_visit(GURL("https://foo.com/baz"),
+            day1_time + base::Hours(24) - base::Seconds(1));
   // Five visits on the next day.
   for (int i = 0; i < 5; ++i) {
     add_visit(GURL("https://foo.com/bar"), day2_time);
@@ -923,8 +920,7 @@
   add_visit(GURL("https://foo.com:123/bar"), day2_time);
 
   // One visit after end_time.
-  add_visit(GURL("https://foo.com/bar"),
-            end_time + base::TimeDelta::FromSeconds(1));
+  add_visit(GURL("https://foo.com/bar"), end_time + base::Seconds(1));
 
   DailyVisitsResult result =
       GetDailyVisitsToHost(GURL("https://foo.com"), begin_time, end_time);
@@ -935,7 +931,7 @@
 
 TEST_F(VisitDatabaseTest, GetDailyVisitsToHostNoVisits) {
   base::Time begin_time = base::Time::Now();
-  base::Time end_time = begin_time + base::TimeDelta::FromDays(10);
+  base::Time end_time = begin_time + base::Days(10);
 
   // A non-user visible visit.
   VisitRow row{AddURL(URLRow(GURL("https://www.chromium.org"))),
@@ -957,7 +953,7 @@
 TEST_F(VisitDatabaseTest, GetGoogleDomainVisitsFromSearchesInRange_NoVisits) {
   const auto begin_time = base::Time::Now();
   EXPECT_THAT(GetGoogleDomainVisitsFromSearchesInRange(
-                  begin_time, begin_time + base::TimeDelta::FromDays(1)),
+                  begin_time, begin_time + base::Days(1)),
               IsEmpty());
 }
 
@@ -966,7 +962,7 @@
   const auto begin_time = base::Time::Now();
   // Out of range, one hour before begin time.
   VisitRow row{AddURL(URLRow(GURL("https://www.google.fr/search?q=foo"))),
-               begin_time + base::TimeDelta::FromHours(-1),
+               begin_time + base::Hours(-1),
                0,
                ui::PageTransitionFromInt(0),
                0,
@@ -984,7 +980,7 @@
   AddVisit(&row, SOURCE_BROWSED);
   // In range, 23 hours after begin time.
   row = {AddURL(URLRow(GURL("https://www.google.ch/search?q=foo"))),
-         begin_time + base::TimeDelta::FromHours(23),
+         begin_time + base::Hours(23),
          0,
          ui::PageTransitionFromInt(0),
          0,
@@ -993,7 +989,7 @@
   AddVisit(&row, SOURCE_BROWSED);
   // Out of range, exactly a day after begin time.
   row = {AddURL(URLRow(GURL("https://www.google.de/search?q=foo"))),
-         begin_time + base::TimeDelta::FromHours(24),
+         begin_time + base::Hours(24),
          0,
          ui::PageTransitionFromInt(0),
          0,
@@ -1002,14 +998,13 @@
   AddVisit(&row, SOURCE_BROWSED);
 
   EXPECT_THAT(
-      GetGoogleDomainVisitsFromSearchesInRange(
-          begin_time, begin_time + base::TimeDelta::FromDays(1)),
-      ElementsAre(
-          AllOf(Property(&DomainVisit::domain, "www.google.com"),
-                Property(&DomainVisit::visit_time, begin_time)),
-          AllOf(Property(&DomainVisit::domain, "www.google.ch"),
-                Property(&DomainVisit::visit_time,
-                         begin_time + base::TimeDelta::FromHours(23)))));
+      GetGoogleDomainVisitsFromSearchesInRange(begin_time,
+                                               begin_time + base::Days(1)),
+      ElementsAre(AllOf(Property(&DomainVisit::domain, "www.google.com"),
+                        Property(&DomainVisit::visit_time, begin_time)),
+                  AllOf(Property(&DomainVisit::domain, "www.google.ch"),
+                        Property(&DomainVisit::visit_time,
+                                 begin_time + base::Hours(23)))));
 }
 
 TEST_F(VisitDatabaseTest, GetGoogleDomainVisitsFromSearchesInRange_NotSearch) {
@@ -1024,7 +1019,7 @@
   AddVisit(&row, SOURCE_BROWSED);
 
   EXPECT_THAT(GetGoogleDomainVisitsFromSearchesInRange(
-                  begin_time, begin_time + base::TimeDelta::FromDays(1)),
+                  begin_time, begin_time + base::Days(1)),
               IsEmpty());
 }
 
@@ -1041,7 +1036,7 @@
   AddVisit(&row, SOURCE_BROWSED);
 
   EXPECT_THAT(GetGoogleDomainVisitsFromSearchesInRange(
-                  begin_time, begin_time + base::TimeDelta::FromDays(1)),
+                  begin_time, begin_time + base::Days(1)),
               IsEmpty());
 }
 
diff --git a/components/history/core/browser/web_history_service.cc b/components/history/core/browser/web_history_service.cc
index 5df2cab..192b751 100644
--- a/components/history/core/browser/web_history_service.cc
+++ b/components/history/core/browser/web_history_service.cc
@@ -298,11 +298,10 @@
   // QueryOptions uses exclusive `end_time` while the history.google.com API
   // uses it inclusively, so we subtract 1us during conversion.
 
-  base::Time end_time =
-      options.end_time.is_null()
-          ? base::Time::Now()
-          : std::min(options.end_time - base::TimeDelta::FromMicroseconds(1),
-                     base::Time::Now());
+  base::Time end_time = options.end_time.is_null()
+                            ? base::Time::Now()
+                            : std::min(options.end_time - base::Microseconds(1),
+                                       base::Time::Now());
   url = net::AppendQueryParameter(url, "max", ServerTimeString(end_time));
 
   if (!options.begin_time.is_null()) {
diff --git a/components/history/core/common/thumbnail_score_unittest.cc b/components/history/core/common/thumbnail_score_unittest.cc
index b621ba5..7bfd213 100644
--- a/components/history/core/common/thumbnail_score_unittest.cc
+++ b/components/history/core/common/thumbnail_score_unittest.cc
@@ -29,7 +29,7 @@
   // Use a really long time for the difference so we aren't sensitive to the
   // degrading schedule.
   base::Time now = base::Time::Now();
-  base::Time last_year = now - base::TimeDelta::FromDays(365);
+  base::Time last_year = now - base::Days(365);
 
   ThumbnailScore oldie_but_goodie(0.1, true, true, last_year);
   ThumbnailScore newie_but_crappie(0.9, true, true, now);
diff --git a/components/history/core/test/fake_web_history_service.cc b/components/history/core/test/fake_web_history_service.cc
index 34c8014..3d8a494 100644
--- a/components/history/core/test/fake_web_history_service.cc
+++ b/components/history/core/test/fake_web_history_service.cc
@@ -247,7 +247,7 @@
   int64_t us;
   if (!base::StringToInt64(value, &us))
      return base::Time();
-  return base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(us);
+  return base::Time::UnixEpoch() + base::Microseconds(us);
 }
 
 FakeWebHistoryService::Request* FakeWebHistoryService::CreateRequest(
diff --git a/components/history/metrics/domain_diversity_reporter.cc b/components/history/metrics/domain_diversity_reporter.cc
index b5c7dd4e..20072bfc 100644
--- a/components/history/metrics/domain_diversity_reporter.cc
+++ b/components/history/metrics/domain_diversity_reporter.cc
@@ -13,8 +13,7 @@
 
 namespace {
 // The interval between two successive domain metrics reports.
-constexpr base::TimeDelta kDomainDiversityReportingInterval =
-    base::TimeDelta::FromDays(1);
+constexpr base::TimeDelta kDomainDiversityReportingInterval = base::Days(1);
 
 // Pref name for the persistent timestamp of the last report. This pref is
 // per local profile but not synced.
@@ -91,7 +90,7 @@
     // The beginning and the end of a 7-day period may differ by at most
     // 24 * 8 + 1(DST offset) hours; round up to FromDays(9) here.
     if (time_current_report_triggered - time_last_report_triggered <
-        base::TimeDelta::FromDays(number_of_days_to_report + 2)) {
+        base::Days(number_of_days_to_report + 2)) {
       // Compute the number of days that needs to be reported for based on
       // the last report time and current time.
       base::TimeDelta report_time_range =
@@ -103,9 +102,9 @@
       // `report_time_range` so that the resulting time range is guaranteed to
       // be at least the correct number of days times 24. The number of days to
       // report is capped at 7 days.
-      number_of_days_to_report = std::min(
-          (report_time_range + base::TimeDelta::FromHours(4)).InDaysFloored(),
-          number_of_days_to_report);
+      number_of_days_to_report =
+          std::min((report_time_range + base::Hours(4)).InDaysFloored(),
+                   number_of_days_to_report);
     }
 
     if (number_of_days_to_report >= 1) {
diff --git a/components/history/metrics/domain_diversity_reporter_unittest.cc b/components/history/metrics/domain_diversity_reporter_unittest.cc
index d3df592..5ca1e5c 100644
--- a/components/history/metrics/domain_diversity_reporter_unittest.cc
+++ b/components/history/metrics/domain_diversity_reporter_unittest.cc
@@ -22,7 +22,7 @@
 
 namespace {
 // The interval between two scheduled computation tasks.
-constexpr base::TimeDelta kScheduleInterval = base::TimeDelta::FromDays(1);
+constexpr base::TimeDelta kScheduleInterval = base::Days(1);
 
 // Pref name for the persistent timestamp of the last stats reporting.
 // Should be in sync with similar name in the reporter's impl.
@@ -68,7 +68,7 @@
     // issues in time arithmetic caused by uneven day lengths due to Daylight
     // Saving Time.
     test_clock_.SetTime(MidnightNDaysLater(test_clock_.Now(), 0) +
-                        base::TimeDelta::FromHours(10));
+                        base::Hours(10));
   }
 
   void CreateDomainDiversityReporter() {
@@ -297,7 +297,7 @@
   histograms().ExpectBucketCount("History.DomainCount28Day", 4, 2);
 
   test_clock().SetTime(MidnightNDaysLater(test_clock().Now(), 1) +
-                       base::TimeDelta::FromHours(10));
+                       base::Hours(10));
   FastForwardAndWait(kScheduleInterval);  // fast-forward 24 hours
 
   // The new report will include the four domain visits on the last
@@ -353,7 +353,7 @@
 
   // Set the mock clock to 20:00 on the same day
   test_clock().SetTime(MidnightNDaysLater(test_clock().Now(), 0) +
-                       base::TimeDelta::FromHours(20));
+                       base::Hours(20));
 
   // Fast-forward the scheduler's clock by another 24 hours in order to trigger
   // the next report
diff --git a/components/history_clusters/core/history_clusters_service.cc b/components/history_clusters/core/history_clusters_service.cc
index e944b80..3a7400b 100644
--- a/components/history_clusters/core/history_clusters_service.cc
+++ b/components/history_clusters/core/history_clusters_service.cc
@@ -76,7 +76,7 @@
     // Super simple method of pagination: one day a time, broken up at 4AM.
     // Get 4AM yesterday in the morning, and 4AM today in the afternoon.
     base::Time begin = end_time.is_null() ? base::Time::Now() : end_time;
-    begin -= base::TimeDelta::FromHours(12);
+    begin -= base::Hours(12);
     base::Time::Exploded exploded_begin;
     begin.LocalExplode(&exploded_begin);
     exploded_begin.hour = 4;
@@ -85,7 +85,7 @@
     exploded_begin.millisecond = 0;
     // If for some reason this fails, fallback to 24 hours ago.
     if (!base::Time::FromLocalExploded(exploded_begin, &options_.begin_time))
-      options_.begin_time = end_time - base::TimeDelta::FromDays(1);
+      options_.begin_time = end_time - base::Days(1);
 
     // History Clusters wants a complete navigation graph and internally handles
     // de-duplication.
@@ -106,13 +106,13 @@
                          std::back_inserter(annotated_visits_));
       // TODO(tommycli): Connect this to History's limit defined internally in
       //  components/history.
-      exhausted_history_ = (base::Time::Now() - options_.begin_time) >=
-                           base::TimeDelta::FromDays(90);
+      exhausted_history_ =
+          (base::Time::Now() - options_.begin_time) >= base::Days(90);
 
       // If we didn't get enough visits, ask for another day's worth from
       // History and call this method again when done.
       options_.end_time = options_.begin_time;
-      options_.begin_time = options_.end_time - base::TimeDelta::FromDays(1);
+      options_.begin_time = options_.end_time - base::Days(1);
     } while (!exhausted_history_ && annotated_visits_.size() < max_count_);
 
     // Now we have enough visits for clustering, add all incomplete visits
@@ -562,8 +562,7 @@
     return false;
 
   // 2 hour threshold chosen arbitrarily for cache refresh time.
-  if ((base::Time::Now() - all_keywords_cache_timestamp_) >
-          base::TimeDelta::FromHours(2) &&
+  if ((base::Time::Now() - all_keywords_cache_timestamp_) > base::Hours(2) &&
       !cache_query_task_tracker_.HasTrackedTasks()) {
     // Update the timestamp right away, to prevent this from running again.
     // (The cache_query_task_tracker_ should also do this.)
diff --git a/components/history_clusters/core/history_clusters_service_test_api.cc b/components/history_clusters/core/history_clusters_service_test_api.cc
index 1960d6fb..0de3da9 100644
--- a/components/history_clusters/core/history_clusters_service_test_api.cc
+++ b/components/history_clusters/core/history_clusters_service_test_api.cc
@@ -22,9 +22,8 @@
       visit.url_row.set_title(u"Search Engine Title");
       visit.visit_row.visit_id = 1;
       // Choose a recent time, as otherwise History will discard the visit.
-      visit.visit_row.visit_time =
-          base::Time::Now() - base::TimeDelta::FromDays(2);
-      visit.visit_row.visit_duration = base::TimeDelta::FromMilliseconds(5600);
+      visit.visit_row.visit_time = base::Time::Now() - base::Days(2);
+      visit.visit_row.visit_duration = base::Milliseconds(5600);
       visit.context_annotations.page_end_reason = 3;
       visit.context_annotations.is_new_bookmark = true;
       visit.source = history::VisitSource::SOURCE_BROWSED;
@@ -38,9 +37,8 @@
       visit.url_row.set_title(u"Code Storage Title");
       visit.visit_row.visit_id = 2;
       // Choose a recent time, as otherwise History will discard the visit.
-      visit.visit_row.visit_time =
-          base::Time::Now() - base::TimeDelta::FromDays(1);
-      visit.visit_row.visit_duration = base::TimeDelta::FromSeconds(20);
+      visit.visit_row.visit_time = base::Time::Now() - base::Days(1);
+      visit.visit_row.visit_duration = base::Seconds(20);
       visit.visit_row.referring_visit = 1;
       visit.context_annotations.page_end_reason = 5;
       visit.context_annotations.is_existing_part_of_tab_group = true;
@@ -55,9 +53,8 @@
       visit.url_row.set_title(u"Synched visit");
       visit.visit_row.visit_id = 3;
       // Choose a recent time, as otherwise History will discard the visit.
-      visit.visit_row.visit_time =
-          base::Time::Now() - base::TimeDelta::FromDays(1);
-      visit.visit_row.visit_duration = base::TimeDelta::FromSeconds(20);
+      visit.visit_row.visit_time = base::Time::Now() - base::Days(1);
+      visit.visit_row.visit_duration = base::Seconds(20);
       visit.context_annotations.page_end_reason = 5;
       visit.source = history::VisitSource::SOURCE_SYNCED;
       visits.push_back(visit);
diff --git a/components/history_clusters/core/history_clusters_service_unittest.cc b/components/history_clusters/core/history_clusters_service_unittest.cc
index 051893f..497a85b1 100644
--- a/components/history_clusters/core/history_clusters_service_unittest.cc
+++ b/components/history_clusters/core/history_clusters_service_unittest.cc
@@ -181,7 +181,7 @@
     EXPECT_EQ(visit.visit_row.visit_id, 2);
     EXPECT_EQ(visit.visit_row.visit_time,
               GetHardcodedTestVisits()[1].visit_row.visit_time);
-    EXPECT_EQ(visit.visit_row.visit_duration, base::TimeDelta::FromSeconds(20));
+    EXPECT_EQ(visit.visit_row.visit_duration, base::Seconds(20));
     EXPECT_EQ(visit.url_row.url(), "https://github.com/");
     EXPECT_EQ(visit.context_annotations.page_end_reason, 5);
 
@@ -189,8 +189,7 @@
     EXPECT_EQ(visit.visit_row.visit_id, 1);
     EXPECT_EQ(visit.visit_row.visit_time,
               GetHardcodedTestVisits()[0].visit_row.visit_time);
-    EXPECT_EQ(visit.visit_row.visit_duration,
-              base::TimeDelta::FromMilliseconds(5600));
+    EXPECT_EQ(visit.visit_row.visit_duration, base::Milliseconds(5600));
     EXPECT_EQ(visit.url_row.url(), "https://google.com/");
     EXPECT_EQ(visit.context_annotations.page_end_reason, 3);
 
@@ -392,9 +391,7 @@
   // Create persisted visits 1, 2, & 3.
   AddHardcodedTestDataToHistoryService();
 
-  auto days_ago = [](int days) {
-    return base::Time::Now() - base::TimeDelta::FromDays(days);
-  };
+  auto days_ago = [](int days) { return base::Time::Now() - base::Days(days); };
 
   // Create incomplete visits; only 3 & 4 should be returned by the query.
   AddIncompleteVisit(4, 4, days_ago(1));
diff --git a/components/image_fetcher/core/cache/image_cache.cc b/components/image_fetcher/core/cache/image_cache.cc
index 2bbee9d..c7773c6a 100644
--- a/components/image_fetcher/core/cache/image_cache.cc
+++ b/components/image_fetcher/core/cache/image_cache.cc
@@ -210,8 +210,7 @@
       pref_service_->GetTime(kPrefLastStartupEviction);
   // If we've already garbage collected in the past interval, bail out.
   if (last_eviction_time >
-      clock_->Now() -
-          base::TimeDelta::FromHours(kImageCacheEvictionIntervalHours)) {
+      clock_->Now() - base::Hours(kImageCacheEvictionIntervalHours)) {
     return;
   }
 
@@ -247,8 +246,7 @@
 void ImageCache::RunEviction(size_t bytes_left,
                              base::OnceClosure on_completion) {
   metadata_store_->EvictImageMetadata(
-      clock_->Now() - base::TimeDelta::FromDays(kCacheItemsTimeToLiveDays),
-      bytes_left,
+      clock_->Now() - base::Days(kCacheItemsTimeToLiveDays), bytes_left,
       base::BindOnce(&ImageCache::OnKeysEvicted, weak_ptr_factory_.GetWeakPtr(),
                      std::move(on_completion)));
 }
diff --git a/components/image_fetcher/core/cache/image_cache_unittest.cc b/components/image_fetcher/core/cache/image_cache_unittest.cc
index 2b1ba5c..c377bfd2b 100644
--- a/components/image_fetcher/core/cache/image_cache_unittest.cc
+++ b/components/image_fetcher/core/cache/image_cache_unittest.cc
@@ -248,7 +248,7 @@
   PrepareImageCache(false);
   auto metadata_before = GetMetadata(kImageUrlHashed);
 
-  clock()->SetNow(clock()->Now() + base::TimeDelta::FromHours(1));
+  clock()->SetNow(clock()->Now() + base::Hours(1));
   LoadImage(kImageUrl, kImageData);
   db()->LoadCallback(true);
   db()->UpdateCallback(true);
@@ -262,7 +262,7 @@
   PrepareImageCache(false);
   auto metadata_before = GetMetadata(kImageUrlHashed);
 
-  clock()->SetNow(clock()->Now() + base::TimeDelta::FromHours(1));
+  clock()->SetNow(clock()->Now() + base::Hours(1));
   LoadImage(kImageUrl, kImageData);
 
   auto metadata_after = GetMetadata(kImageUrlHashed);
@@ -282,7 +282,7 @@
 TEST_F(CachedImageFetcherImageCacheTest, Eviction) {
   PrepareImageCache(false);
 
-  clock()->SetNow(clock()->Now() + base::TimeDelta::FromDays(7));
+  clock()->SetNow(clock()->Now() + base::Days(7));
   RunEvictionOnStartup(/* success */ true);
   ASSERT_EQ(clock()->Now(), prefs()->GetTime(kPrefLastStartupEviction));
 
@@ -298,17 +298,16 @@
 // Verifies eviction for CacheStrategy::HOLD_UNTIL_EXPIRED.
 TEST_F(CachedImageFetcherImageCacheTest, EvictionHoldUtilExpires) {
   PrepareImageCache(false);
-  clock()->SetNow(clock()->Now() + base::TimeDelta::FromDays(2));
+  clock()->SetNow(clock()->Now() + base::Days(2));
 
-  image_cache()->SaveImage(kImageUrl, "image_data", false,
-                           base::TimeDelta::FromDays(10));
+  image_cache()->SaveImage(kImageUrl, "image_data", false, base::Days(10));
 
   image_cache()->SaveImage(kOtherImageUrl, "other_image_data", false,
-                           base::TimeDelta::FromHours(1));
+                           base::Hours(1));
   RunUntilIdle();
 
   // Forward the clock to make image with |kOtherImageUrl| expired.
-  clock()->SetNow(clock()->Now() + base::TimeDelta::FromHours(3));
+  clock()->SetNow(clock()->Now() + base::Hours(3));
   RunEvictionOnStartup(/* success */ true);
   LoadImage(kImageUrl, "image_data");
   LoadImage(kOtherImageUrl, "");
@@ -317,7 +316,7 @@
 TEST_F(CachedImageFetcherImageCacheTest, EvictionWhenFull) {
   PrepareImageCache(false);
   InjectMetadata(kImageUrl, kOverMaxCacheSize, /* needs_transcoding */ false);
-  clock()->SetNow(clock()->Now() + base::TimeDelta::FromDays(6));
+  clock()->SetNow(clock()->Now() + base::Days(6));
   RunEvictionWhenFull(/* success */ true);
 
   // The data should be removed because it's over the allowed limit.
@@ -327,7 +326,7 @@
 TEST_F(CachedImageFetcherImageCacheTest, EvictionTooSoon) {
   PrepareImageCache(false);
 
-  clock()->SetNow(clock()->Now() + base::TimeDelta::FromDays(6));
+  clock()->SetNow(clock()->Now() + base::Days(6));
   RunEvictionOnStartup(/* success */ true);
 
   LoadImage(kImageUrl, kImageData);
@@ -338,7 +337,7 @@
 
   prefs()->SetTime("cached_image_fetcher_last_startup_eviction_time",
                    clock()->Now());
-  clock()->SetNow(clock()->Now() + base::TimeDelta::FromHours(23));
+  clock()->SetNow(clock()->Now() + base::Hours(23));
   RunEvictionOnStartup(/* success */ false);
   LoadImage(kImageUrl, kImageData);
 }
diff --git a/components/image_fetcher/core/cache/image_metadata_store_leveldb_unittest.cc b/components/image_fetcher/core/cache/image_metadata_store_leveldb_unittest.cc
index 6363c0d..83936b0 100644
--- a/components/image_fetcher/core/cache/image_metadata_store_leveldb_unittest.cc
+++ b/components/image_fetcher/core/cache/image_metadata_store_leveldb_unittest.cc
@@ -191,7 +191,7 @@
   AssertDataPresent(kImageKey, kImageDataLength, clock()->Now(), clock()->Now(),
                     /* needs_transcoding */ false);
 
-  ExpirationInterval expiration_interval = base::TimeDelta::FromHours(1);
+  ExpirationInterval expiration_interval = base::Hours(1);
   metadata_store()->SaveImageMetadata(kImageKey, kImageDataLength,
                                       /* needs_transcoding */ true,
                                       expiration_interval);
@@ -255,15 +255,15 @@
 TEST_F(CachedImageFetcherImageMetadataStoreLevelDBTest, UpdateImageMetadata) {
   PrepareDatabase(true);
 
-  clock()->SetNow(base::Time() + base::TimeDelta::FromHours(1));
+  clock()->SetNow(base::Time() + base::Hours(1));
   metadata_store()->UpdateImageMetadata(kImageKey);
   db()->LoadCallback(true);
   db()->UpdateCallback(true);
   RunUntilIdle();
 
   AssertDataPresent(kImageKey, kImageDataLength,
-                    clock()->Now() - base::TimeDelta::FromHours(1),
-                    clock()->Now(), /* needs_transcoding */ false);
+                    clock()->Now() - base::Hours(1), clock()->Now(),
+                    /* needs_transcoding */ false);
 }
 
 TEST_F(CachedImageFetcherImageMetadataStoreLevelDBTest,
@@ -338,7 +338,7 @@
 
   metadata_store()->SaveImageMetadata(kOtherImageKey, 15,
                                       /* needs_transcoding */ false,
-                                      base::TimeDelta::FromDays(7));
+                                      base::Days(7));
   EXPECT_EQ(5, metadata_store()->GetEstimatedSize(CacheOption::kBestEffort));
   EXPECT_EQ(15,
             metadata_store()->GetEstimatedSize(CacheOption::kHoldUntilExpired));
@@ -351,7 +351,7 @@
   // A GC call before the db is initialized should be ignore.
   EXPECT_CALL(*this, OnKeysReturned(std::vector<std::string>()));
   RunGarbageCollection(
-      base::TimeDelta::FromHours(1), base::TimeDelta::FromHours(1),
+      base::Hours(1), base::Hours(1),
       base::BindOnce(
           &CachedImageFetcherImageMetadataStoreLevelDBTest::OnKeysReturned,
           base::Unretained(this)),
@@ -365,7 +365,7 @@
 
   metadata_store()->SaveImageMetadata(kOtherImageKey, 100,
                                       /* needs_transcoding */ false,
-                                      base::TimeDelta::FromSeconds(1));
+                                      base::Seconds(1));
   db()->UpdateCallback(true);
   EXPECT_EQ(metadata_store()->GetEstimatedSize(CacheOption::kBestEffort),
             kImageDataLength);
@@ -377,7 +377,7 @@
       *this,
       OnKeysReturned(std::vector<std::string>({kImageKey, kOtherImageKey})));
   RunGarbageCollection(
-      base::TimeDelta::FromHours(1), base::TimeDelta::FromHours(1),
+      base::Hours(1), base::Hours(1),
       base::BindOnce(
           &CachedImageFetcherImageMetadataStoreLevelDBTest::OnKeysReturned,
           base::Unretained(this)));
@@ -405,7 +405,7 @@
 
   // Run GC without moving the clock forward, should result in no hits.
   RunGarbageCollection(
-      base::TimeDelta::FromHours(0), base::TimeDelta::FromHours(1),
+      base::Hours(0), base::Hours(1),
       base::BindOnce(
           &CachedImageFetcherImageMetadataStoreLevelDBTest::OnKeysReturned,
           base::Unretained(this)));
@@ -425,11 +425,11 @@
   PrepareDatabase(true);
 
   // Insert an item one our later.
-  clock()->SetNow(clock()->Now() + base::TimeDelta::FromHours(1));
+  clock()->SetNow(clock()->Now() + base::Hours(1));
   metadata_store()->SaveImageMetadata(kOtherImageKey, kImageDataLength,
                                       /* needs_transcoding */ false,
                                       /* expiration_interval*/ absl::nullopt);
-  clock()->SetNow(clock()->Now() - base::TimeDelta::FromHours(1));
+  clock()->SetNow(clock()->Now() - base::Hours(1));
   ASSERT_TRUE(IsDataPresent(kOtherImageKey));
 
   EXPECT_CALL(*this, OnKeysReturned(std::vector<std::string>({kImageKey})));
@@ -438,7 +438,7 @@
   // Byte limit set so the one garbage collected should be enough. The older
   // entry should be gc'd kImageKey, the other should stay kOtherImageKey.
   RunGarbageCollection(
-      base::TimeDelta::FromHours(1), base::TimeDelta::FromHours(1),
+      base::Hours(1), base::Hours(1),
       base::BindOnce(
           &CachedImageFetcherImageMetadataStoreLevelDBTest::OnKeysReturned,
           base::Unretained(this)),
@@ -457,7 +457,7 @@
   // Run GC without moving the clock forward, should result in no hits.
   // Run GC with a byte limit of 0, everything should go.
   RunGarbageCollection(
-      base::TimeDelta::FromHours(0), base::TimeDelta::FromHours(1),
+      base::Hours(0), base::Hours(1),
       base::BindOnce(
           &CachedImageFetcherImageMetadataStoreLevelDBTest::OnKeysReturned,
           base::Unretained(this)),
@@ -475,7 +475,7 @@
 
   // Run GC but loading the entries failed, should return an empty list.
   RunGarbageCollection(
-      base::TimeDelta::FromHours(1), base::TimeDelta::FromHours(1),
+      base::Hours(1), base::Hours(1),
       base::BindOnce(
           &CachedImageFetcherImageMetadataStoreLevelDBTest::OnKeysReturned,
           base::Unretained(this)));
@@ -488,7 +488,7 @@
   PrepareDatabase(true);
   EXPECT_CALL(*this, OnKeysReturned(std::vector<std::string>()));
   RunGarbageCollection(
-      base::TimeDelta::FromHours(1), base::TimeDelta::FromHours(1),
+      base::Hours(1), base::Hours(1),
       base::BindOnce(
           &CachedImageFetcherImageMetadataStoreLevelDBTest::OnKeysReturned,
           base::Unretained(this)));
diff --git a/components/image_fetcher/core/image_data_fetcher.cc b/components/image_fetcher/core/image_data_fetcher.cc
index 4857008..f6fb8c1d 100644
--- a/components/image_fetcher/core/image_data_fetcher.cc
+++ b/components/image_fetcher/core/image_data_fetcher.cc
@@ -134,8 +134,7 @@
   // body will get thrown out anyway, though.
   loader->SetAllowHttpErrorResults(true);
 
-  loader->SetTimeoutDuration(
-      base::TimeDelta::FromSeconds(kDownloadTimeoutSeconds));
+  loader->SetTimeoutDuration(base::Seconds(kDownloadTimeoutSeconds));
 
   if (max_download_bytes_.has_value()) {
     loader->DownloadToString(
diff --git a/components/image_fetcher/core/image_fetcher_metrics_reporter.cc b/components/image_fetcher/core/image_fetcher_metrics_reporter.cc
index 4321f10..a54a0da 100644
--- a/components/image_fetcher/core/image_fetcher_metrics_reporter.cc
+++ b/components/image_fetcher/core/image_fetcher_metrics_reporter.cc
@@ -45,7 +45,7 @@
                                       const std::string client_name) {
   return base::LinearHistogram::FactoryTimeGet(
       histogram_name + std::string(".") + client_name, base::TimeDelta(),
-      base::TimeDelta::FromMilliseconds(kMaxReportTimeMs),
+      base::Milliseconds(kMaxReportTimeMs),
       /* one bucket every 20ms. */ kMaxReportTimeMs / 20,
       base::Histogram::kUmaTargetedHistogramFlag);
 }
diff --git a/components/image_fetcher/image_fetcher_bridge.cc b/components/image_fetcher/image_fetcher_bridge.cc
index f806a2b..b75bdf4e 100644
--- a/components/image_fetcher/image_fetcher_bridge.cc
+++ b/components/image_fetcher/image_fetcher_bridge.cc
@@ -95,7 +95,7 @@
   image_fetcher::ImageFetcherParams params(kTrafficAnnotation, client_name);
   if (j_expiration_interval_mins > 0) {
     params.set_hold_for_expiration_interval(
-        base::TimeDelta::FromMinutes(j_expiration_interval_mins));
+        base::Minutes(j_expiration_interval_mins));
   }
 
   // We can skip transcoding here because this method is used in java as
@@ -130,7 +130,7 @@
   ImageFetcherParams params(kTrafficAnnotation, client_name);
   if (j_expiration_interval_mins > 0) {
     params.set_hold_for_expiration_interval(
-        base::TimeDelta::FromMinutes(j_expiration_interval_mins));
+        base::Minutes(j_expiration_interval_mins));
   }
 
   SimpleFactoryKey* key =
diff --git a/components/invalidation/impl/fcm_network_handler.cc b/components/invalidation/impl/fcm_network_handler.cc
index 4e00d1e7..73d5913b 100644
--- a/components/invalidation/impl/fcm_network_handler.cc
+++ b/components/invalidation/impl/fcm_network_handler.cc
@@ -55,8 +55,7 @@
       return base::TimeDelta();
     }
 
-    return base::TimeDelta::FromSeconds(
-        switches::kSyncInstanceIDTokenTTLSeconds.Get());
+    return base::Seconds(switches::kSyncInstanceIDTokenTTLSeconds.Get());
   }
 
   // This magic value is identical to kPolicyFCMInvalidationSenderID, i.e. the
@@ -66,8 +65,7 @@
       return base::TimeDelta();
     }
 
-    return base::TimeDelta::FromSeconds(
-        switches::kPolicyInstanceIDTokenTTLSeconds.Get());
+    return base::Seconds(switches::kPolicyInstanceIDTokenTTLSeconds.Get());
   }
 
   // The default for all other FCM clients is no TTL.
@@ -238,8 +236,7 @@
   DCHECK(IsListening());
 
   token_validation_timer_->Start(
-      FROM_HERE,
-      base::TimeDelta::FromMinutes(kTokenValidationPeriodMinutesDefault),
+      FROM_HERE, base::Minutes(kTokenValidationPeriodMinutesDefault),
       base::BindOnce(&FCMNetworkHandler::StartTokenValidation,
                      weak_ptr_factory_.GetWeakPtr()));
 }
diff --git a/components/invalidation/impl/fcm_network_handler_unittests.cc b/components/invalidation/impl/fcm_network_handler_unittests.cc
index 697b8f0..d34a01ff 100644
--- a/components/invalidation/impl/fcm_network_handler_unittests.cc
+++ b/components/invalidation/impl/fcm_network_handler_unittests.cc
@@ -440,16 +440,15 @@
 
   // Adjust timers and check that validation will happen in time.
   // The old token was invalid, so token listener should be informed.
-  const base::TimeDelta time_to_validation = base::TimeDelta::FromHours(24);
-  task_runner->FastForwardBy(time_to_validation -
-                             base::TimeDelta::FromSeconds(1));
+  const base::TimeDelta time_to_validation = base::Hours(24);
+  task_runner->FastForwardBy(time_to_validation - base::Seconds(1));
   // But when it is time, validation happens.
   EXPECT_CALL(*mock_instance_id(), GetToken)
       .WillOnce(WithArg<4>(Invoke([](InstanceID::GetTokenCallback callback) {
         std::move(callback).Run("token_new", InstanceID::Result::SUCCESS);
       })));
   EXPECT_CALL(mock_on_token_callback, Run("token_new")).Times(1);
-  task_runner->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_runner->FastForwardBy(base::Seconds(1));
 }
 
 TEST_F(FCMNetworkHandlerTest,
@@ -473,9 +472,8 @@
 
   // Adjust timers and check that validation will happen in time.
   // The old token is valid, so no token listener should be informed.
-  const base::TimeDelta time_to_validation = base::TimeDelta::FromHours(24);
-  task_runner->FastForwardBy(time_to_validation -
-                             base::TimeDelta::FromSeconds(1));
+  const base::TimeDelta time_to_validation = base::Hours(24);
+  task_runner->FastForwardBy(time_to_validation - base::Seconds(1));
 
   // But when it is time, validation happens.
   EXPECT_CALL(*mock_instance_id(), GetToken)
@@ -483,22 +481,18 @@
         std::move(callback).Run("token", InstanceID::Result::SUCCESS);
       })));
   EXPECT_CALL(mock_on_token_callback, Run).Times(0);
-  task_runner->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_runner->FastForwardBy(base::Seconds(1));
 }
 
 TEST_F(FCMNetworkHandlerTestWithTTL, ShouldProvideTTLWithSyncSenderID) {
-  EXPECT_CALL(
-      *mock_instance_id(),
-      GetToken(_, _, Eq(base::TimeDelta::FromSeconds(kTimeToLiveInSeconds)), _,
-               _));
+  EXPECT_CALL(*mock_instance_id(),
+              GetToken(_, _, Eq(base::Seconds(kTimeToLiveInSeconds)), _, _));
   MakeHandler(/*sender_id=*/"8181035976")->StartListening();
 }
 
 TEST_F(FCMNetworkHandlerTestWithTTL, ShouldProvideTTLWithPolicySenderID) {
-  EXPECT_CALL(
-      *mock_instance_id(),
-      GetToken(_, _, Eq(base::TimeDelta::FromSeconds(kTimeToLiveInSeconds)), _,
-               _));
+  EXPECT_CALL(*mock_instance_id(),
+              GetToken(_, _, Eq(base::Seconds(kTimeToLiveInSeconds)), _, _));
   MakeHandler(/*sender_id=*/"1013309121859")->StartListening();
 }
 
diff --git a/components/invalidation/impl/per_user_topic_subscription_manager_unittest.cc b/components/invalidation/impl/per_user_topic_subscription_manager_unittest.cc
index e9fe0f6..844e568 100644
--- a/components/invalidation/impl/per_user_topic_subscription_manager_unittest.cc
+++ b/components/invalidation/impl/per_user_topic_subscription_manager_unittest.cc
@@ -332,7 +332,7 @@
   // Initial backoff is 2 seconds with 20% jitter, so the minimum possible delay
   // is 1600ms. Advance time to just before that; nothing should have changed
   // yet.
-  FastForwardTimeBy(base::TimeDelta::FromMilliseconds(1500));
+  FastForwardTimeBy(base::Milliseconds(1500));
   EXPECT_TRUE(per_user_topic_subscription_manager->GetSubscribedTopicsForTest()
                   .empty());
   EXPECT_FALSE(
@@ -342,7 +342,7 @@
   // Access token should be refreshed in order to avoid requests with expired
   // access token.
   EXPECT_CALL(identity_observer, OnAccessTokenRequested(_, _, _));
-  FastForwardTimeBy(base::TimeDelta::FromMilliseconds(600));
+  FastForwardTimeBy(base::Milliseconds(600));
   identity_test_env()->WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
       "access_token", base::Time::Max());
   base::RunLoop().RunUntilIdle();
@@ -415,13 +415,13 @@
   // UpdateSubscribedTopics() call shouldn't lead to backoff bypassing.
   per_user_topic_subscription_manager->UpdateSubscribedTopics(
       topics, kFakeInstanceIdToken);
-  FastForwardTimeBy(base::TimeDelta::FromMilliseconds(1500));
+  FastForwardTimeBy(base::Milliseconds(1500));
   testing::Mock::VerifyAndClearExpectations(&identity_observer);
 
   // The maximum backoff is 2 seconds; advance to just past that. Now access
   // token should be requested.
   EXPECT_CALL(identity_observer, OnAccessTokenRequested(_, _, _));
-  FastForwardTimeBy(base::TimeDelta::FromMilliseconds(600));
+  FastForwardTimeBy(base::Milliseconds(600));
   testing::Mock::VerifyAndClearExpectations(&identity_observer);
 
   // Add valid responses to access token and subscription requests and ensure
diff --git a/components/javascript_dialogs/views/layer_dimmer.cc b/components/javascript_dialogs/views/layer_dimmer.cc
index a107e32..1e61bec 100644
--- a/components/javascript_dialogs/views/layer_dimmer.cc
+++ b/components/javascript_dialogs/views/layer_dimmer.cc
@@ -20,13 +20,12 @@
 
   layer_ = std::make_unique<ui::Layer>(ui::LAYER_SOLID_COLOR);
   layer_->SetName(parent_->GetName() + "_LayerDimmer");
-  layer_->SetAnimator(
-      new ui::LayerAnimator(base::TimeDelta::FromMilliseconds(200)));
+  layer_->SetAnimator(new ui::LayerAnimator(base::Milliseconds(200)));
   layer_->SetColor(SkColorSetA(SK_ColorBLACK, 127));
   {
     // Don't animate these changes right now.
     ui::ScopedLayerAnimationSettings settings(layer_->GetAnimator());
-    settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(0));
+    settings.SetTransitionDuration(base::Milliseconds(0));
     layer_->SetOpacity(0.f);
     layer_->SetBounds(parent_->bounds());
   }
@@ -70,7 +69,7 @@
   if (window == parent_) {
     // Don't animate this bounds change.
     ui::ScopedLayerAnimationSettings settings(layer_->GetAnimator());
-    settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(0));
+    settings.SetTransitionDuration(base::Milliseconds(0));
     layer_->SetBounds(gfx::Rect(new_bounds.size()));
   }
 }
diff --git a/components/language/content/browser/geo_language_provider.cc b/components/language/content/browser/geo_language_provider.cc
index 8324a8a5..90773bf 100644
--- a/components/language/content/browser/geo_language_provider.cc
+++ b/components/language/content/browser/geo_language_provider.cc
@@ -23,7 +23,7 @@
 
 // Don't start requesting updates to IP-based approximation geolocation until
 // this long after receiving the last one.
-constexpr base::TimeDelta kMinUpdatePeriod = base::TimeDelta::FromDays(1);
+constexpr base::TimeDelta kMinUpdatePeriod = base::Days(1);
 
 GeoLanguageProvider::Binder& GetBinderOverride() {
   static base::NoDestructor<GeoLanguageProvider::Binder> binder;
diff --git a/components/language/content/browser/geo_language_provider_unittest.cc b/components/language/content/browser/geo_language_provider_unittest.cc
index 01e5c51..b4ef370 100644
--- a/components/language/content/browser/geo_language_provider_unittest.cc
+++ b/components/language/content/browser/geo_language_provider_unittest.cc
@@ -124,7 +124,7 @@
   std::vector<std::string> expected_langs = {"hi", "en"};
   EXPECT_EQ(expected_langs, result);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(12));
+  task_environment_.FastForwardBy(base::Hours(12));
   EXPECT_EQ(1, GetQueryNextPositionCalledTimes());
   EXPECT_EQ(expected_langs, GetCachedLanguages());
 }
@@ -142,7 +142,7 @@
 
   // Move to another random place in Karnataka, India.
   MoveToLocation(23.0, 85.7);
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(25));
+  task_environment_.FastForwardBy(base::Hours(25));
   EXPECT_EQ(2, GetQueryNextPositionCalledTimes());
 
   result = GetCurrentGeoLanguages();
diff --git a/components/language/core/browser/url_language_histogram_unittest.cc b/components/language/core/browser/url_language_histogram_unittest.cc
index 6e5c4a89..7a37540 100644
--- a/components/language/core/browser/url_language_histogram_unittest.cc
+++ b/components/language/core/browser/url_language_histogram_unittest.cc
@@ -137,8 +137,7 @@
   EXPECT_THAT(hist.GetLanguageFrequency(kLang1), FloatEq(1.0));
 
   // Clearing only the last hour of the history has no effect.
-  hist.ClearHistory(base::Time::Now() - base::TimeDelta::FromHours(2),
-                    base::Time::Max());
+  hist.ClearHistory(base::Time::Now() - base::Hours(2), base::Time::Max());
 
   EXPECT_THAT(hist.GetTopLanguages(), SizeIs(1));
   EXPECT_THAT(hist.GetLanguageFrequency(kLang1), FloatEq(1.0));
diff --git a/components/leveldb_proto/internal/shared_proto_database.h b/components/leveldb_proto/internal/shared_proto_database.h
index 02d956b..00fb987 100644
--- a/components/leveldb_proto/internal/shared_proto_database.h
+++ b/components/leveldb_proto/internal/shared_proto_database.h
@@ -194,7 +194,7 @@
   base::queue<std::unique_ptr<InitRequest>> outstanding_init_requests_;
   bool create_if_missing_ = false;
 
-  base::TimeDelta delete_obsolete_delay_ = base::TimeDelta::FromSeconds(120);
+  base::TimeDelta delete_obsolete_delay_ = base::Seconds(120);
   base::Lock delete_obsolete_delay_lock_;
   base::CancelableOnceClosure delete_obsolete_task_;
 };
diff --git a/components/leveldb_proto/internal/shared_proto_database_unittest.cc b/components/leveldb_proto/internal/shared_proto_database_unittest.cc
index 82e006a..8298c74 100644
--- a/components/leveldb_proto/internal/shared_proto_database_unittest.cc
+++ b/components/leveldb_proto/internal/shared_proto_database_unittest.cc
@@ -164,7 +164,7 @@
   run_loop.Run();
   base::RunLoop quit_cooldown;
   GetMainThreadTaskRunner()->PostDelayedTask(
-      FROM_HERE, quit_cooldown.QuitClosure(), base::TimeDelta::FromSeconds(3));
+      FROM_HERE, quit_cooldown.QuitClosure(), base::Seconds(3));
 }
 
 // If not attempt to create the db, kInvalidOperation will be returned in the
diff --git a/components/live_caption/views/caption_bubble.cc b/components/live_caption/views/caption_bubble.cc
index fa2a479..741a7bae 100644
--- a/components/live_caption/views/caption_bubble.cc
+++ b/components/live_caption/views/caption_bubble.cc
@@ -395,7 +395,7 @@
     return;
 
   inactivity_timer_ = std::make_unique<base::RetainingOneShotTimer>(
-      FROM_HERE, base::TimeDelta::FromSeconds(kNoActivityIntervalSeconds),
+      FROM_HERE, base::Seconds(kNoActivityIntervalSeconds),
       base::BindRepeating(&CaptionBubble::OnInactivityTimeout,
                           base::Unretained(this)),
       tick_clock_);
diff --git a/components/media_message_center/media_controls_progress_view.cc b/components/media_message_center/media_controls_progress_view.cc
index a22377a..1622e1a 100644
--- a/components/media_message_center/media_controls_progress_view.cc
+++ b/components/media_message_center/media_controls_progress_view.cc
@@ -101,9 +101,9 @@
 
   // For durations greater than 24 hours, prefer base::DURATION_WIDTH_NARROW for
   // better readability (e.g., 27h 23m 10s rather than 27:23:10).
-  base::DurationFormatWidth time_format =
-      duration >= base::TimeDelta::FromDays(1) ? base::DURATION_WIDTH_NARROW
-                                               : base::DURATION_WIDTH_NUMERIC;
+  base::DurationFormatWidth time_format = duration >= base::Days(1)
+                                              ? base::DURATION_WIDTH_NARROW
+                                              : base::DURATION_WIDTH_NUMERIC;
 
   std::u16string elapsed_time;
   bool elapsed_time_received = base::TimeDurationFormatWithSeconds(
@@ -116,7 +116,7 @@
   if (elapsed_time_received && total_time_received) {
     // If |duration| is less than an hour, we don't want to show  "0:" hours on
     // the progress times.
-    if (duration < base::TimeDelta::FromHours(1)) {
+    if (duration < base::Hours(1)) {
       base::ReplaceFirstSubstringAfterOffset(&elapsed_time, 0, u"0:", u"");
       base::ReplaceFirstSubstringAfterOffset(&total_time, 0, u"0:", u"");
     }
@@ -126,8 +126,8 @@
   }
 
   if (media_position.playback_rate() != 0) {
-    base::TimeDelta update_frequency = base::TimeDelta::FromSecondsD(
-        std::abs(1 / media_position.playback_rate()));
+    base::TimeDelta update_frequency =
+        base::Seconds(std::abs(1 / media_position.playback_rate()));
     update_progress_timer_.Start(
         FROM_HERE, update_frequency,
         base::BindRepeating(&MediaControlsProgressView::UpdateProgress,
diff --git a/components/media_message_center/media_controls_progress_view_unittest.cc b/components/media_message_center/media_controls_progress_view_unittest.cc
index 3379ef36..8063f43b 100644
--- a/components/media_message_center/media_controls_progress_view_unittest.cc
+++ b/components/media_message_center/media_controls_progress_view_unittest.cc
@@ -71,8 +71,8 @@
 
 TEST_F(MAYBE_MediaControlsProgressViewTest, InitProgress) {
   media_session::MediaPosition media_position(
-      /*playback_rate=*/1, /*duration=*/base::TimeDelta::FromSeconds(600),
-      /*position=*/base::TimeDelta::FromSeconds(300), /*end_of_media=*/false);
+      /*playback_rate=*/1, /*duration=*/base::Seconds(600),
+      /*position=*/base::Seconds(300), /*end_of_media=*/false);
 
   progress_view_->UpdateProgress(media_position);
 
@@ -83,8 +83,8 @@
 
 TEST_F(MAYBE_MediaControlsProgressViewTest, InitProgressOverHour) {
   media_session::MediaPosition media_position(
-      /*playback_rate=*/1, /*duration=*/base::TimeDelta::FromHours(2),
-      /*position=*/base::TimeDelta::FromMinutes(30), /*end_of_media=*/false);
+      /*playback_rate=*/1, /*duration=*/base::Hours(2),
+      /*position=*/base::Minutes(30), /*end_of_media=*/false);
 
   progress_view_->UpdateProgress(media_position);
 
@@ -95,8 +95,8 @@
 
 TEST_F(MAYBE_MediaControlsProgressViewTest, InitProgressOverDay) {
   media_session::MediaPosition media_position(
-      /*playback_rate=*/1, /*duration=*/base::TimeDelta::FromHours(25),
-      /*position=*/base::TimeDelta::FromHours(5), /*end_of_media=*/false);
+      /*playback_rate=*/1, /*duration=*/base::Hours(25),
+      /*position=*/base::Hours(5), /*end_of_media=*/false);
 
   progress_view_->UpdateProgress(media_position);
 
@@ -108,8 +108,8 @@
 
 TEST_F(MAYBE_MediaControlsProgressViewTest, UpdateProgress) {
   media_session::MediaPosition media_position(
-      /*playback_rate=*/1, /*duration=*/base::TimeDelta::FromSeconds(600),
-      /*position=*/base::TimeDelta::FromSeconds(300), /*end_of_media=*/false);
+      /*playback_rate=*/1, /*duration=*/base::Seconds(600),
+      /*position=*/base::Seconds(300), /*end_of_media=*/false);
 
   progress_view_->UpdateProgress(media_position);
 
@@ -117,7 +117,7 @@
   EXPECT_EQ(progress_view_->progress_time_for_testing(), u"05:00");
   EXPECT_EQ(progress_view_->progress_bar_for_testing()->GetValue(), .5);
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(30));
+  task_environment()->FastForwardBy(base::Seconds(30));
   task_environment()->RunUntilIdle();
 
   EXPECT_EQ(progress_view_->duration_for_testing(), u"10:00");
@@ -127,8 +127,8 @@
 
 TEST_F(MAYBE_MediaControlsProgressViewTest, UpdateProgressFastPlayback) {
   media_session::MediaPosition media_position(
-      /*playback_rate=*/2, /*duration=*/base::TimeDelta::FromSeconds(600),
-      /*position=*/base::TimeDelta::FromSeconds(300), /*end_of_media=*/false);
+      /*playback_rate=*/2, /*duration=*/base::Seconds(600),
+      /*position=*/base::Seconds(300), /*end_of_media=*/false);
 
   progress_view_->UpdateProgress(media_position);
 
@@ -136,7 +136,7 @@
   EXPECT_EQ(progress_view_->progress_time_for_testing(), u"05:00");
   EXPECT_EQ(progress_view_->progress_bar_for_testing()->GetValue(), .5);
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(15));
+  task_environment()->FastForwardBy(base::Seconds(15));
   task_environment()->RunUntilIdle();
 
   EXPECT_EQ(progress_view_->duration_for_testing(), u"10:00");
@@ -146,8 +146,8 @@
 
 TEST_F(MAYBE_MediaControlsProgressViewTest, UpdateProgressSlowPlayback) {
   media_session::MediaPosition media_position(
-      /*playback_rate=*/.5, /*duration=*/base::TimeDelta::FromSeconds(600),
-      /*position=*/base::TimeDelta::FromSeconds(300), /*end_of_media=*/false);
+      /*playback_rate=*/.5, /*duration=*/base::Seconds(600),
+      /*position=*/base::Seconds(300), /*end_of_media=*/false);
 
   progress_view_->UpdateProgress(media_position);
 
@@ -155,7 +155,7 @@
   EXPECT_EQ(progress_view_->progress_time_for_testing(), u"05:00");
   EXPECT_EQ(progress_view_->progress_bar_for_testing()->GetValue(), .5);
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(60));
+  task_environment()->FastForwardBy(base::Seconds(60));
   task_environment()->RunUntilIdle();
 
   EXPECT_EQ(progress_view_->duration_for_testing(), u"10:00");
@@ -165,8 +165,8 @@
 
 TEST_F(MAYBE_MediaControlsProgressViewTest, UpdateProgressNegativePlayback) {
   media_session::MediaPosition media_position(
-      /*playback_rate=*/-1, /*duration=*/base::TimeDelta::FromSeconds(600),
-      /*position=*/base::TimeDelta::FromSeconds(300), /*end_of_media=*/false);
+      /*playback_rate=*/-1, /*duration=*/base::Seconds(600),
+      /*position=*/base::Seconds(300), /*end_of_media=*/false);
 
   progress_view_->UpdateProgress(media_position);
 
@@ -174,7 +174,7 @@
   EXPECT_EQ(progress_view_->progress_time_for_testing(), u"05:00");
   EXPECT_EQ(progress_view_->progress_bar_for_testing()->GetValue(), .5);
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(30));
+  task_environment()->FastForwardBy(base::Seconds(30));
   task_environment()->RunUntilIdle();
 
   EXPECT_EQ(progress_view_->duration_for_testing(), u"10:00");
@@ -184,8 +184,8 @@
 
 TEST_F(MAYBE_MediaControlsProgressViewTest, UpdateProgressPastDuration) {
   media_session::MediaPosition media_position(
-      /*playback_rate=*/1, /*duration=*/base::TimeDelta::FromSeconds(600),
-      /*position=*/base::TimeDelta::FromSeconds(300), /*end_of_media=*/false);
+      /*playback_rate=*/1, /*duration=*/base::Seconds(600),
+      /*position=*/base::Seconds(300), /*end_of_media=*/false);
 
   progress_view_->UpdateProgress(media_position);
 
@@ -194,7 +194,7 @@
   EXPECT_EQ(progress_view_->progress_bar_for_testing()->GetValue(), .5);
 
   // Move forward in time past the duration.
-  task_environment()->FastForwardBy(base::TimeDelta::FromMinutes(6));
+  task_environment()->FastForwardBy(base::Minutes(6));
   task_environment()->RunUntilIdle();
 
   // Verify the progress does not go past the duration.
@@ -205,8 +205,8 @@
 
 TEST_F(MAYBE_MediaControlsProgressViewTest, UpdateProgressBeforeStart) {
   media_session::MediaPosition media_position(
-      /*playback_rate=*/-1, /*duration=*/base::TimeDelta::FromSeconds(600),
-      /*position=*/base::TimeDelta::FromSeconds(300), /*end_of_media=*/false);
+      /*playback_rate=*/-1, /*duration=*/base::Seconds(600),
+      /*position=*/base::Seconds(300), /*end_of_media=*/false);
 
   progress_view_->UpdateProgress(media_position);
 
@@ -215,7 +215,7 @@
   EXPECT_EQ(progress_view_->progress_bar_for_testing()->GetValue(), .5);
 
   // Move forward in time before the start using negative playback rate.
-  task_environment()->FastForwardBy(base::TimeDelta::FromMinutes(6));
+  task_environment()->FastForwardBy(base::Minutes(6));
   task_environment()->RunUntilIdle();
 
   // Verify the progress does not go below 0.
@@ -226,8 +226,8 @@
 
 TEST_F(MAYBE_MediaControlsProgressViewTest, UpdateProgressPaused) {
   media_session::MediaPosition media_position(
-      /*playback_rate=*/0, /*duration=*/base::TimeDelta::FromSeconds(600),
-      /*position=*/base::TimeDelta::FromSeconds(300), /*end_of_media=*/false);
+      /*playback_rate=*/0, /*duration=*/base::Seconds(600),
+      /*position=*/base::Seconds(300), /*end_of_media=*/false);
 
   progress_view_->UpdateProgress(media_position);
 
@@ -235,7 +235,7 @@
   EXPECT_EQ(progress_view_->progress_time_for_testing(), u"05:00");
   EXPECT_EQ(progress_view_->progress_bar_for_testing()->GetValue(), .5);
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromMinutes(6));
+  task_environment()->FastForwardBy(base::Minutes(6));
   task_environment()->RunUntilIdle();
 
   // Verify the progress does not change while media is paused.
@@ -246,8 +246,8 @@
 
 TEST_F(MAYBE_MediaControlsProgressViewTest, UpdateProgressTwice) {
   media_session::MediaPosition media_position(
-      /*playback_rate=*/1, /*duration=*/base::TimeDelta::FromSeconds(600),
-      /*position=*/base::TimeDelta::FromSeconds(300), /*end_of_media=*/false);
+      /*playback_rate=*/1, /*duration=*/base::Seconds(600),
+      /*position=*/base::Seconds(300), /*end_of_media=*/false);
 
   // Simulate first position change.
   progress_view_->UpdateProgress(media_position);
@@ -257,8 +257,8 @@
   EXPECT_EQ(progress_view_->progress_bar_for_testing()->GetValue(), .5);
 
   media_session::MediaPosition new_media_position(
-      /*playback_rate=*/1, /*duration=*/base::TimeDelta::FromSeconds(200),
-      /*position=*/base::TimeDelta::FromSeconds(50), /*end_of_media=*/false);
+      /*playback_rate=*/1, /*duration=*/base::Seconds(200),
+      /*position=*/base::Seconds(50), /*end_of_media=*/false);
 
   // Simulate second position change.
   progress_view_->UpdateProgress(new_media_position);
diff --git a/components/media_message_center/media_notification_view_modern_impl_unittest.cc b/components/media_message_center/media_notification_view_modern_impl_unittest.cc
index 77b42fca..42ebd69 100644
--- a/components/media_message_center/media_notification_view_modern_impl_unittest.cc
+++ b/components/media_message_center/media_notification_view_modern_impl_unittest.cc
@@ -606,8 +606,8 @@
 
 TEST_F(MAYBE_MediaNotificationViewModernImplTest, UpdateProgressBar) {
   media_session::MediaPosition media_position(
-      /*playback_rate=*/1.0, /*duration=*/base::TimeDelta::FromSeconds(600),
-      /*position=*/base::TimeDelta::FromSeconds(0), /*end_of_media=*/false);
+      /*playback_rate=*/1.0, /*duration=*/base::Seconds(600),
+      /*position=*/base::Seconds(0), /*end_of_media=*/false);
   view()->UpdateWithMediaPosition(media_position);
   EXPECT_EQ(progress_view()->duration_for_testing(), u"10:00");
 }
diff --git a/components/media_router/browser/android/flinging_controller_bridge.cc b/components/media_router/browser/android/flinging_controller_bridge.cc
index 7bce87c..067badb 100644
--- a/components/media_router/browser/android/flinging_controller_bridge.cc
+++ b/components/media_router/browser/android/flinging_controller_bridge.cc
@@ -131,10 +131,10 @@
   status.can_seek = Java_MediaStatusBridge_canSeek(env, j_status);
   status.is_muted = Java_MediaStatusBridge_isMuted(env, j_status);
   status.volume = Java_MediaStatusBridge_volume(env, j_status);
-  status.duration = base::TimeDelta::FromMilliseconds(
-      Java_MediaStatusBridge_duration(env, j_status));
-  status.current_time = base::TimeDelta::FromMilliseconds(
-      Java_MediaStatusBridge_currentTime(env, j_status));
+  status.duration =
+      base::Milliseconds(Java_MediaStatusBridge_duration(env, j_status));
+  status.current_time =
+      base::Milliseconds(Java_MediaStatusBridge_currentTime(env, j_status));
 
   observer_->OnMediaStatusUpdated(status);
 }
@@ -146,7 +146,7 @@
   long time_in_ms = Java_FlingingControllerBridge_getApproximateCurrentTime(
       env, j_flinging_controller_bridge_);
 
-  return base::TimeDelta::FromMilliseconds(time_in_ms);
+  return base::Milliseconds(time_in_ms);
 }
 
 }  // namespace media_router
diff --git a/components/media_router/browser/issue_manager.cc b/components/media_router/browser/issue_manager.cc
index c8e3a37..fb760be3 100644
--- a/components/media_router/browser/issue_manager.cc
+++ b/components/media_router/browser/issue_manager.cc
@@ -32,9 +32,9 @@
 
   switch (issue_info.severity) {
     case IssueInfo::Severity::NOTIFICATION:
-      return base::TimeDelta::FromMinutes(kNotificationAutoDismissMins);
+      return base::Minutes(kNotificationAutoDismissMins);
     case IssueInfo::Severity::WARNING:
-      return base::TimeDelta::FromMinutes(kWarningAutoDismissMins);
+      return base::Minutes(kWarningAutoDismissMins);
     case IssueInfo::Severity::FATAL:
       NOTREACHED() << "FATAL issues should be blocking";
       return base::TimeDelta();
diff --git a/components/media_router/browser/logger_impl_unittest.cc b/components/media_router/browser/logger_impl_unittest.cc
index 71dee6d..799ed199 100644
--- a/components/media_router/browser/logger_impl_unittest.cc
+++ b/components/media_router/browser/logger_impl_unittest.cc
@@ -59,7 +59,7 @@
 
 TEST_F(LoggerImplTest, RecordAndGetLogs) {
   const base::Time time1 = base::Time::Now();
-  const base::Time time2 = time1 + base::TimeDelta::FromSeconds(20);
+  const base::Time time2 = time1 + base::Seconds(20);
   const std::string expected_logs =
       R"([
     {
diff --git a/components/media_router/browser/media_router_metrics.cc b/components/media_router/browser/media_router_metrics.cc
index 5c33a220..de2b39b 100644
--- a/components/media_router/browser/media_router_metrics.cc
+++ b/components/media_router/browser/media_router_metrics.cc
@@ -144,7 +144,7 @@
 
 // static
 const base::TimeDelta MediaRouterMetrics::kDeviceCountMetricDelay =
-    base::TimeDelta::FromSeconds(3);
+    base::Seconds(3);
 
 // static
 void MediaRouterMetrics::RecordMediaRouterDialogOrigin(
diff --git a/components/media_router/browser/media_router_metrics_unittest.cc b/components/media_router/browser/media_router_metrics_unittest.cc
index 36cc168a..4819488 100644
--- a/components/media_router/browser/media_router_metrics_unittest.cc
+++ b/components/media_router/browser/media_router_metrics_unittest.cc
@@ -32,7 +32,7 @@
     base::RepeatingCallback<void(const base::TimeDelta&)> recording_cb,
     const std::string& histogram_name) {
   base::HistogramTester tester;
-  const base::TimeDelta delta = base::TimeDelta::FromMilliseconds(10);
+  const base::TimeDelta delta = base::Milliseconds(10);
 
   tester.ExpectTotalCount(histogram_name, 0);
   recording_cb.Run(delta);
diff --git a/components/media_router/common/discovery/media_sink_service_base.cc b/components/media_router/common/discovery/media_sink_service_base.cc
index a8feb3384..97c19e4 100644
--- a/components/media_router/common/discovery/media_sink_service_base.cc
+++ b/components/media_router/common/discovery/media_sink_service_base.cc
@@ -11,8 +11,7 @@
 
 namespace {
 // Timeout amount for |discovery_timer_|.
-const constexpr base::TimeDelta kDiscoveryTimeout =
-    base::TimeDelta::FromSeconds(3);
+const constexpr base::TimeDelta kDiscoveryTimeout = base::Seconds(3);
 }  // namespace
 
 namespace media_router {
diff --git a/components/media_router/common/providers/cast/cast_media_source.cc b/components/media_router/common/providers/cast/cast_media_source.cc
index d08f161..fb656b8cc 100644
--- a/components/media_router/common/providers/cast/cast_media_source.cc
+++ b/components/media_router/common/providers/cast/cast_media_source.cc
@@ -260,8 +260,7 @@
   int launch_timeout_millis = 0;
   if (base::StringToInt(launch_timeout_str, &launch_timeout_millis) &&
       launch_timeout_millis > 0) {
-    cast_source->set_launch_timeout(
-        base::TimeDelta::FromMilliseconds(launch_timeout_millis));
+    cast_source->set_launch_timeout(base::Milliseconds(launch_timeout_millis));
   }
 
   int target_playout_delay_millis = 0;
@@ -269,7 +268,7 @@
                         &target_playout_delay_millis) &&
       target_playout_delay_millis > 0) {
     cast_source->set_target_playout_delay(
-        base::TimeDelta::FromMilliseconds(target_playout_delay_millis));
+        base::Milliseconds(target_playout_delay_millis));
   }
 
   if (audio_capture_str == "0")
diff --git a/components/media_router/common/providers/cast/cast_media_source.h b/components/media_router/common/providers/cast/cast_media_source.h
index 6eb58241..b7ab2b2 100644
--- a/components/media_router/common/providers/cast/cast_media_source.h
+++ b/components/media_router/common/providers/cast/cast_media_source.h
@@ -32,8 +32,7 @@
     "705D30C6"  // MultizoneFollower
 };
 
-static constexpr base::TimeDelta kDefaultLaunchTimeout =
-    base::TimeDelta::FromSeconds(60);
+static constexpr base::TimeDelta kDefaultLaunchTimeout = base::Seconds(60);
 
 // Class for storing a bitwise OR of enum values.
 //
diff --git a/components/media_router/common/providers/cast/cast_media_source_unittest.cc b/components/media_router/common/providers/cast/cast_media_source_unittest.cc
index fc19fc6..64c1085fd 100644
--- a/components/media_router/common/providers/cast/cast_media_source_unittest.cc
+++ b/components/media_router/common/providers/cast/cast_media_source_unittest.cc
@@ -67,14 +67,13 @@
   EXPECT_EQ("namespace", broadcast_request->broadcast_namespace);
   EXPECT_EQ("message%", broadcast_request->message);
   EXPECT_EQ("12345", source->client_id());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(30000), source->launch_timeout());
+  EXPECT_EQ(base::Milliseconds(30000), source->launch_timeout());
   EXPECT_EQ(AutoJoinPolicy::kTabAndOriginScoped, source->auto_join_policy());
   EXPECT_EQ(DefaultActionPolicy::kCastThisTab, source->default_action_policy());
   EXPECT_EQ(ReceiverAppType::kAndroidTv, source->supported_app_types()[0]);
   EXPECT_EQ(ReceiverAppType::kWeb, source->supported_app_types()[1]);
   EXPECT_EQ("appParams", source->app_params());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(42),
-            source->target_playout_delay());
+  EXPECT_EQ(base::Milliseconds(42), source->target_playout_delay());
   EXPECT_EQ(false, source->site_requested_audio_capture());
   EXPECT_EQ(cast_channel::VirtualConnectionType::kInvisible,
             source->connection_type());
@@ -107,7 +106,7 @@
   EXPECT_EQ("namespace", broadcast_request->broadcast_namespace);
   EXPECT_EQ("message%", broadcast_request->message);
   EXPECT_EQ("12345", source->client_id());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(30000), source->launch_timeout());
+  EXPECT_EQ(base::Milliseconds(30000), source->launch_timeout());
   EXPECT_EQ(AutoJoinPolicy::kOriginScoped, source->auto_join_policy());
   EXPECT_EQ(DefaultActionPolicy::kCastThisTab, source->default_action_policy());
   EXPECT_EQ(ReceiverAppType::kWeb, source->supported_app_types()[0]);
diff --git a/components/memory_pressure/memory_pressure_level_reporter.cc b/components/memory_pressure/memory_pressure_level_reporter.cc
index 9455741..5c582503 100644
--- a/components/memory_pressure/memory_pressure_level_reporter.cc
+++ b/components/memory_pressure/memory_pressure_level_reporter.cc
@@ -73,9 +73,9 @@
         break;
     }
 
-    base::UmaHistogramCustomTimes(
-        histogram_name, now - current_pressure_level_begin_,
-        base::TimeDelta::FromSeconds(1), base::TimeDelta::FromMinutes(10), 50);
+    base::UmaHistogramCustomTimes(histogram_name,
+                                  now - current_pressure_level_begin_,
+                                  base::Seconds(1), base::Minutes(10), 50);
   }
 
   current_pressure_level_begin_ = now;
@@ -88,13 +88,13 @@
   auto duration = now - current_pressure_level_begin_;
   auto duration_s = duration.InSeconds();
   accumulator_buckets_[current_pressure_level_] +=
-      duration - base::TimeDelta::FromSeconds(duration_s);
+      duration - base::Seconds(duration_s);
   auto accumulated_seconds =
       accumulator_buckets_[current_pressure_level_].InSeconds();
   if (accumulated_seconds > 0) {
     duration_s += accumulated_seconds;
     accumulator_buckets_[current_pressure_level_] -=
-        base::TimeDelta::FromSeconds(accumulated_seconds);
+        base::Seconds(accumulated_seconds);
   }
 
   if (duration_s) {
@@ -113,7 +113,7 @@
   if (!base::SequencedTaskRunnerHandle::IsSet())
     return;
   periodic_reporting_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromMinutes(5),
+      FROM_HERE, base::Minutes(5),
       base::BindOnce(&MemoryPressureLevelReporter::OnMemoryPressureLevelChanged,
                      // Unretained is safe because |this| owns this timer.
                      base::Unretained(this), current_pressure_level_));
diff --git a/components/memory_pressure/memory_pressure_level_reporter_unittest.cc b/components/memory_pressure/memory_pressure_level_reporter_unittest.cc
index c06c8e5f..1c2bcc6 100644
--- a/components/memory_pressure/memory_pressure_level_reporter_unittest.cc
+++ b/components/memory_pressure/memory_pressure_level_reporter_unittest.cc
@@ -23,40 +23,36 @@
   base::HistogramTester histogram_tester;
 
   // Moderate -> None.
-  task_environment.AdvanceClock(base::TimeDelta::FromSeconds(12));
+  task_environment.AdvanceClock(base::Seconds(12));
   reporter.OnMemoryPressureLevelChanged(
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE);
   histogram_tester.ExpectTimeBucketCount(
-      "Memory.PressureWindowDuration.ModerateToNone",
-      base::TimeDelta::FromSeconds(12), 1);
+      "Memory.PressureWindowDuration.ModerateToNone", base::Seconds(12), 1);
 
   // Moderate -> Critical.
   reporter.OnMemoryPressureLevelChanged(
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE);
-  task_environment.AdvanceClock(base::TimeDelta::FromSeconds(20));
+  task_environment.AdvanceClock(base::Seconds(20));
   reporter.OnMemoryPressureLevelChanged(
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL);
   histogram_tester.ExpectTimeBucketCount(
-      "Memory.PressureWindowDuration.ModerateToCritical",
-      base::TimeDelta::FromSeconds(20), 1);
+      "Memory.PressureWindowDuration.ModerateToCritical", base::Seconds(20), 1);
 
   // Critical -> None
-  task_environment.AdvanceClock(base::TimeDelta::FromSeconds(25));
+  task_environment.AdvanceClock(base::Seconds(25));
   reporter.OnMemoryPressureLevelChanged(
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE);
   histogram_tester.ExpectTimeBucketCount(
-      "Memory.PressureWindowDuration.CriticalToNone",
-      base::TimeDelta::FromSeconds(25), 1);
+      "Memory.PressureWindowDuration.CriticalToNone", base::Seconds(25), 1);
 
   // Critical -> Moderate
   reporter.OnMemoryPressureLevelChanged(
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL);
-  task_environment.AdvanceClock(base::TimeDelta::FromSeconds(27));
+  task_environment.AdvanceClock(base::Seconds(27));
   reporter.OnMemoryPressureLevelChanged(
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE);
   histogram_tester.ExpectTimeBucketCount(
-      "Memory.PressureWindowDuration.CriticalToModerate",
-      base::TimeDelta::FromSeconds(27), 1);
+      "Memory.PressureWindowDuration.CriticalToModerate", base::Seconds(27), 1);
 }
 
 TEST(MemoryPressureLevelReporterTest, MemoryPressureHistogram) {
@@ -69,7 +65,7 @@
           base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE);
   base::HistogramTester histogram_tester;
 
-  constexpr base::TimeDelta kDelay = base::TimeDelta::FromSeconds(12);
+  constexpr base::TimeDelta kDelay = base::Seconds(12);
   const char* kHistogram = "Memory.PressureLevel2";
 
   // None -> Moderate.
@@ -130,8 +126,7 @@
   base::HistogramTester histogram_tester;
 
   const char* kHistogram = "Memory.PressureLevel2";
-  constexpr base::TimeDelta kHalfASecond =
-      base::TimeDelta::FromMilliseconds(500);
+  constexpr base::TimeDelta kHalfASecond = base::Milliseconds(500);
 
   task_environment.AdvanceClock(kHalfASecond);
   reporter.OnMemoryPressureLevelChanged(
@@ -170,7 +165,7 @@
 
   // Advancing the clock by a few seconds shouldn't cause any periodic
   // reporting.
-  task_environment.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment.FastForwardBy(base::Seconds(10));
   histogram_tester.ExpectBucketCount(
       kHistogram,
       static_cast<int>(
@@ -178,14 +173,14 @@
       0);
 
   // Advancing the clock by a few minutes should cause periodic reporting.
-  task_environment.FastForwardBy(base::TimeDelta::FromMinutes(5));
+  task_environment.FastForwardBy(base::Minutes(5));
   histogram_tester.ExpectBucketCount(
       kHistogram,
       static_cast<int>(
           base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE),
       5 * 60 /* 5 minutes */);
 
-  task_environment.FastForwardBy(base::TimeDelta::FromMinutes(5));
+  task_environment.FastForwardBy(base::Minutes(5));
   histogram_tester.ExpectBucketCount(
       kHistogram,
       static_cast<int>(
diff --git a/components/memory_pressure/system_memory_pressure_evaluator_fuchsia.cc b/components/memory_pressure/system_memory_pressure_evaluator_fuchsia.cc
index 6324fbe..8da2e6b 100644
--- a/components/memory_pressure/system_memory_pressure_evaluator_fuchsia.cc
+++ b/components/memory_pressure/system_memory_pressure_evaluator_fuchsia.cc
@@ -33,7 +33,7 @@
 
 const base::TimeDelta
     SystemMemoryPressureEvaluatorFuchsia::kRenotifyVotePeriod =
-        base::TimeDelta::FromSeconds(5);
+        base::Seconds(5);
 
 SystemMemoryPressureEvaluatorFuchsia::SystemMemoryPressureEvaluatorFuchsia(
     std::unique_ptr<memory_pressure::MemoryPressureVoter> voter)
diff --git a/components/memory_pressure/system_memory_pressure_evaluator_linux.cc b/components/memory_pressure/system_memory_pressure_evaluator_linux.cc
index 8ec04b2..c08da70 100644
--- a/components/memory_pressure/system_memory_pressure_evaluator_linux.cc
+++ b/components/memory_pressure/system_memory_pressure_evaluator_linux.cc
@@ -36,10 +36,10 @@
 namespace os_linux {
 
 const base::TimeDelta SystemMemoryPressureEvaluator::kMemorySamplingPeriod =
-    base::TimeDelta::FromSeconds(5);
+    base::Seconds(5);
 
 const base::TimeDelta SystemMemoryPressureEvaluator::kModeratePressureCooldown =
-    base::TimeDelta::FromSeconds(10);
+    base::Seconds(10);
 
 const int SystemMemoryPressureEvaluator::kDefaultModerateThresholdPc = 75;
 const int SystemMemoryPressureEvaluator::kDefaultCriticalThresholdPc = 85;
diff --git a/components/memory_pressure/system_memory_pressure_evaluator_win.cc b/components/memory_pressure/system_memory_pressure_evaluator_win.cc
index 460d016..e0eeaa4 100644
--- a/components/memory_pressure/system_memory_pressure_evaluator_win.cc
+++ b/components/memory_pressure/system_memory_pressure_evaluator_win.cc
@@ -75,14 +75,14 @@
 
 // Check the amount of RAM left every 5 seconds.
 const base::TimeDelta SystemMemoryPressureEvaluator::kMemorySamplingPeriod =
-    base::TimeDelta::FromSeconds(5);
+    base::Seconds(5);
 
 // The following constants have been lifted from similar values in the ChromeOS
 // memory pressure monitor. The values were determined experimentally to ensure
 // sufficient responsiveness of the memory pressure subsystem, and minimal
 // overhead.
 const base::TimeDelta SystemMemoryPressureEvaluator::kModeratePressureCooldown =
-    base::TimeDelta::FromSeconds(10);
+    base::Seconds(10);
 
 // TODO(chrisha): Explore the following constants further with an experiment.
 
@@ -142,7 +142,7 @@
 
   // The period of the critical pressure notification timer.
   static constexpr base::TimeDelta kHighPressureNotificationInterval =
-      base::TimeDelta::FromSeconds(2);
+      base::Seconds(2);
 
   // The voter used to cast the votes.
   std::unique_ptr<MemoryPressureVoter> voter_;
diff --git a/components/metal_util/test_shader.h b/components/metal_util/test_shader.h
index 87b3d63e..c86e17b4d 100644
--- a/components/metal_util/test_shader.h
+++ b/components/metal_util/test_shader.h
@@ -37,14 +37,13 @@
                             const base::TimeDelta& compile_time)>;
 
 // A default timeout value for compiling the test shader.
-constexpr base::TimeDelta kTestShaderTimeout = base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kTestShaderTimeout = base::Minutes(1);
 
 // Return the value kTestShaderTimeoutTime for |compile_time| if it times out.
-constexpr base::TimeDelta kTestShaderTimeForever =
-    base::TimeDelta::FromMinutes(3);
+constexpr base::TimeDelta kTestShaderTimeForever = base::Minutes(3);
 
 // A default delay before attempting to compile the test shader.
-constexpr base::TimeDelta kTestShaderDelay = base::TimeDelta::FromMinutes(3);
+constexpr base::TimeDelta kTestShaderDelay = base::Minutes(3);
 
 // Attempt to asynchronously compile a trivial Metal shader. If |delay| is zero,
 // then compile synchronously, otherwise, post a delayed task to do the compile.
diff --git a/components/metrics/call_stack_profile_builder_unittest.cc b/components/metrics/call_stack_profile_builder_unittest.cc
index 687cc77..2b2aefff 100644
--- a/components/metrics/call_stack_profile_builder_unittest.cc
+++ b/components/metrics/call_stack_profile_builder_unittest.cc
@@ -133,8 +133,8 @@
   profile_builder->RecordMetadata(
       base::MetadataRecorder::MetadataProvider(&metadata_recorder));
   profile_builder->OnSampleCompleted(frames2, base::TimeTicks());
-  profile_builder->OnProfileCompleted(base::TimeDelta::FromMilliseconds(500),
-                                      base::TimeDelta::FromMilliseconds(100));
+  profile_builder->OnProfileCompleted(base::Milliseconds(500),
+                                      base::Milliseconds(100));
 
   const SampledProfile& proto = profile_builder->test_sampled_profile();
 
@@ -444,8 +444,8 @@
       base::MetadataRecorder::MetadataProvider(&metadata_recorder));
   profile_builder->OnSampleCompleted({frame}, base::TimeTicks());
 
-  profile_builder->OnProfileCompleted(base::TimeDelta::FromMilliseconds(500),
-                                      base::TimeDelta::FromMilliseconds(100));
+  profile_builder->OnProfileCompleted(base::Milliseconds(500),
+                                      base::Milliseconds(100));
 
   const SampledProfile& proto = profile_builder->test_sampled_profile();
 
@@ -469,10 +469,9 @@
   const base::TimeTicks first_sample_time = base::TimeTicks::UnixEpoch();
 
   profile_builder->OnSampleCompleted({frame}, first_sample_time);
-  profile_builder->OnSampleCompleted(
-      {frame}, first_sample_time + base::TimeDelta::FromSeconds(1));
-  profile_builder->OnProfileCompleted(base::TimeDelta::FromSeconds(1),
-                                      base::TimeDelta::FromSeconds(1));
+  profile_builder->OnSampleCompleted({frame},
+                                     first_sample_time + base::Seconds(1));
+  profile_builder->OnProfileCompleted(base::Seconds(1), base::Seconds(1));
 
   EXPECT_EQ(first_sample_time, profile_builder->test_profile_start_time());
 }
@@ -493,8 +492,8 @@
       base::MetadataRecorder::MetadataProvider(&metadata_recorder));
   profile_builder->OnSampleCompleted({frame}, base::TimeTicks());
 
-  profile_builder->OnProfileCompleted(base::TimeDelta::FromMilliseconds(500),
-                                      base::TimeDelta::FromMilliseconds(100));
+  profile_builder->OnProfileCompleted(base::Milliseconds(500),
+                                      base::Milliseconds(100));
 
   const SampledProfile& proto = profile_builder->test_sampled_profile();
 
@@ -524,7 +523,7 @@
   TestModule module;
   base::Frame frame = {0x10, &module};
   base::TimeTicks profile_start_time = base::TimeTicks::UnixEpoch();
-  base::TimeDelta sample_time_delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta sample_time_delta = base::Seconds(1);
 
   profile_builder->RecordMetadata(
       base::MetadataRecorder::MetadataProvider(&metadata_recorder));
@@ -589,7 +588,7 @@
   TestModule module;
   base::Frame frame = {0x10, &module};
   base::TimeTicks profile_start_time = base::TimeTicks::UnixEpoch();
-  base::TimeDelta sample_time_delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta sample_time_delta = base::Seconds(1);
 
   profile_builder->RecordMetadata(
       base::MetadataRecorder::MetadataProvider(&metadata_recorder));
@@ -611,7 +610,7 @@
       {frame}, profile_start_time + 3 * sample_time_delta);
 
   profile_builder->ApplyMetadataRetrospectively(
-      profile_start_time - base::TimeDelta::FromMicroseconds(1),
+      profile_start_time - base::Microseconds(1),
       profile_start_time + sample_time_delta,
       base::MetadataRecorder::Item(3, 30, 300));
 
diff --git a/components/metrics/child_call_stack_profile_collector_unittest.cc b/components/metrics/child_call_stack_profile_collector_unittest.cc
index 1c68d09..8f0e147 100644
--- a/components/metrics/child_call_stack_profile_collector_unittest.cc
+++ b/components/metrics/child_call_stack_profile_collector_unittest.cc
@@ -74,8 +74,7 @@
   CollectEmptyProfile();
   ASSERT_EQ(1u, profiles().size());
   base::TimeTicks start_timestamp = profiles()[0].start_timestamp;
-  EXPECT_GE(base::TimeDelta::FromMilliseconds(10),
-            base::TimeTicks::Now() - start_timestamp);
+  EXPECT_GE(base::Milliseconds(10), base::TimeTicks::Now() - start_timestamp);
 
   // Set the interface. The profiles should be passed to it.
   child_collector_.SetParentProfileCollector(std::move(collector_remote_));
@@ -90,7 +89,7 @@
   base::RunLoop().RunUntilIdle();
   EXPECT_EQ(0u, profiles().size());
   ASSERT_EQ(1u, receiver_impl_->profile_start_times.size());
-  EXPECT_GE(base::TimeDelta::FromMilliseconds(10),
+  EXPECT_GE(base::Milliseconds(10),
             (base::TimeTicks::Now() - receiver_impl_->profile_start_times[0]));
 }
 
@@ -100,7 +99,7 @@
   // Add a profile before providing a null interface.
   CollectEmptyProfile();
   ASSERT_EQ(1u, profiles().size());
-  EXPECT_GE(base::TimeDelta::FromMilliseconds(10),
+  EXPECT_GE(base::Milliseconds(10),
             base::TimeTicks::Now() - profiles()[0].start_timestamp);
 
   // Set the null interface. The profile should be flushed.
diff --git a/components/metrics/daily_event.cc b/components/metrics/daily_event.cc
index 786377e6..ba7d348 100644
--- a/components/metrics/daily_event.cc
+++ b/components/metrics/daily_event.cc
@@ -57,8 +57,8 @@
   base::Time now = base::Time::Now();
   if (last_fired_.is_null()) {
     // The first time we call CheckInterval, we read the time stored in prefs.
-    last_fired_ = base::Time() + base::TimeDelta::FromMicroseconds(
-                                     pref_service_->GetInt64(pref_name_));
+    last_fired_ =
+        base::Time() + base::Microseconds(pref_service_->GetInt64(pref_name_));
 
     DVLOG(1) << "DailyEvent time loaded: " << last_fired_;
     if (last_fired_.is_null()) {
diff --git a/components/metrics/daily_event_unittest.cc b/components/metrics/daily_event_unittest.cc
index d573756..6ed02426d 100644
--- a/components/metrics/daily_event_unittest.cc
+++ b/components/metrics/daily_event_unittest.cc
@@ -64,7 +64,7 @@
 
 // The event should fire if the preference is more than a day old.
 TEST_F(DailyEventTest, TestOldFires) {
-  base::Time last_time = base::Time::Now() - base::TimeDelta::FromHours(25);
+  base::Time last_time = base::Time::Now() - base::Hours(25);
   prefs_.SetInt64(kTestPrefName, last_time.since_origin().InMicroseconds());
   event_.CheckInterval();
   ASSERT_TRUE(observer_->fired());
@@ -73,7 +73,7 @@
 
 // The event should fire if the preference is more than a day in the future.
 TEST_F(DailyEventTest, TestFutureFires) {
-  base::Time last_time = base::Time::Now() + base::TimeDelta::FromHours(25);
+  base::Time last_time = base::Time::Now() + base::Hours(25);
   prefs_.SetInt64(kTestPrefName, last_time.since_origin().InMicroseconds());
   event_.CheckInterval();
   ASSERT_TRUE(observer_->fired());
@@ -82,7 +82,7 @@
 
 // The event should not fire if the preference is more recent than a day.
 TEST_F(DailyEventTest, TestRecentNotFired) {
-  base::Time last_time = base::Time::Now() - base::TimeDelta::FromMinutes(2);
+  base::Time last_time = base::Time::Now() - base::Minutes(2);
   prefs_.SetInt64(kTestPrefName, last_time.since_origin().InMicroseconds());
   event_.CheckInterval();
   EXPECT_FALSE(observer_->fired());
@@ -90,7 +90,7 @@
 
 // The event should not fire if the preference is less than a day in the future.
 TEST_F(DailyEventTest, TestSoonNotFired) {
-  base::Time last_time = base::Time::Now() + base::TimeDelta::FromMinutes(2);
+  base::Time last_time = base::Time::Now() + base::Minutes(2);
   prefs_.SetInt64(kTestPrefName, last_time.since_origin().InMicroseconds());
   event_.CheckInterval();
   EXPECT_FALSE(observer_->fired());
diff --git a/components/metrics/data_use_tracker.cc b/components/metrics/data_use_tracker.cc
index d7e4ab4..1f9ee05 100644
--- a/components/metrics/data_use_tracker.cc
+++ b/components/metrics/data_use_tracker.cc
@@ -132,7 +132,7 @@
   const base::DictionaryValue* user_pref_dict =
       local_state_->GetDictionary(pref_name);
   const base::Time current_date = GetCurrentMeasurementDate();
-  const base::Time week_ago = current_date - base::TimeDelta::FromDays(7);
+  const base::Time week_ago = current_date - base::Days(7);
 
   base::DictionaryValue user_pref_new_dict;
   for (base::DictionaryValue::Iterator it(*user_pref_dict); !it.IsAtEnd();
diff --git a/components/metrics/date_changed_helper_unittest.cc b/components/metrics/date_changed_helper_unittest.cc
index c4b4e794..d8c5401 100644
--- a/components/metrics/date_changed_helper_unittest.cc
+++ b/components/metrics/date_changed_helper_unittest.cc
@@ -45,10 +45,8 @@
   date_changed_helper::HasDateChangedSinceLastCall(&prefs_, kTestPrefName);
 
   base::subtle::ScopedTimeClockOverrides time_override(
-      []() {
-        return TimeNowIgnoringOverride() + base::TimeDelta::FromHours(25);
-      },
-      nullptr, nullptr);
+      []() { return TimeNowIgnoringOverride() + base::Hours(25); }, nullptr,
+      nullptr);
   ASSERT_TRUE(
       date_changed_helper::HasDateChangedSinceLastCall(&prefs_, kTestPrefName));
 }
@@ -60,10 +58,8 @@
   date_changed_helper::HasDateChangedSinceLastCall(&prefs_, kTestPrefName);
 
   base::subtle::ScopedTimeClockOverrides time_override(
-      []() {
-        return TimeNowIgnoringOverride() - base::TimeDelta::FromHours(25);
-      },
-      nullptr, nullptr);
+      []() { return TimeNowIgnoringOverride() - base::Hours(25); }, nullptr,
+      nullptr);
   ASSERT_TRUE(
       date_changed_helper::HasDateChangedSinceLastCall(&prefs_, kTestPrefName));
 }
@@ -74,8 +70,7 @@
   {
     base::subtle::ScopedTimeClockOverrides time_override(
         []() {
-          return TimeNowIgnoringOverride().LocalMidnight() +
-                 base::TimeDelta::FromHours(2);
+          return TimeNowIgnoringOverride().LocalMidnight() + base::Hours(2);
         },
         nullptr, nullptr);
     date_changed_helper::HasDateChangedSinceLastCall(&prefs_, kTestPrefName);
@@ -83,8 +78,7 @@
 
   base::subtle::ScopedTimeClockOverrides time_override(
       []() {
-        return TimeNowIgnoringOverride().LocalMidnight() +
-               base::TimeDelta::FromHours(22);
+        return TimeNowIgnoringOverride().LocalMidnight() + base::Hours(22);
       },
       nullptr, nullptr);
   ASSERT_FALSE(
@@ -97,8 +91,7 @@
   {
     base::subtle::ScopedTimeClockOverrides time_override(
         []() {
-          return TimeNowIgnoringOverride().LocalMidnight() +
-                 base::TimeDelta::FromHours(22);
+          return TimeNowIgnoringOverride().LocalMidnight() + base::Hours(22);
         },
         nullptr, nullptr);
     date_changed_helper::HasDateChangedSinceLastCall(&prefs_, kTestPrefName);
@@ -106,8 +99,7 @@
 
   base::subtle::ScopedTimeClockOverrides time_override(
       []() {
-        return TimeNowIgnoringOverride().LocalMidnight() +
-               base::TimeDelta::FromHours(2);
+        return TimeNowIgnoringOverride().LocalMidnight() + base::Hours(2);
       },
       nullptr, nullptr);
   ASSERT_FALSE(
@@ -120,8 +112,7 @@
   {
     base::subtle::ScopedTimeClockOverrides time_override(
         []() {
-          return TimeNowIgnoringOverride().LocalMidnight() -
-                 base::TimeDelta::FromMinutes(5);
+          return TimeNowIgnoringOverride().LocalMidnight() - base::Minutes(5);
         },
         nullptr, nullptr);
     date_changed_helper::HasDateChangedSinceLastCall(&prefs_, kTestPrefName);
@@ -129,8 +120,7 @@
 
   base::subtle::ScopedTimeClockOverrides time_override(
       []() {
-        return TimeNowIgnoringOverride().LocalMidnight() +
-               base::TimeDelta::FromMinutes(5);
+        return TimeNowIgnoringOverride().LocalMidnight() + base::Minutes(5);
       },
       nullptr, nullptr);
   ASSERT_TRUE(
@@ -143,8 +133,7 @@
   {
     base::subtle::ScopedTimeClockOverrides time_override(
         []() {
-          return TimeNowIgnoringOverride().LocalMidnight() +
-                 base::TimeDelta::FromMinutes(5);
+          return TimeNowIgnoringOverride().LocalMidnight() + base::Minutes(5);
         },
         nullptr, nullptr);
     date_changed_helper::HasDateChangedSinceLastCall(&prefs_, kTestPrefName);
@@ -152,8 +141,7 @@
 
   base::subtle::ScopedTimeClockOverrides time_override(
       []() {
-        return TimeNowIgnoringOverride().LocalMidnight() -
-               base::TimeDelta::FromMinutes(5);
+        return TimeNowIgnoringOverride().LocalMidnight() - base::Minutes(5);
       },
       nullptr, nullptr);
   ASSERT_TRUE(
diff --git a/components/metrics/demographics/demographic_metrics_test_utils.cc b/components/metrics/demographics/demographic_metrics_test_utils.cc
index 6874fbbd..153f368 100644
--- a/components/metrics/demographics/demographic_metrics_test_utils.cc
+++ b/components/metrics/demographics/demographic_metrics_test_utils.cc
@@ -38,13 +38,12 @@
                        network_time::NetworkTimeTracker* time_tracker) {
   // Simulate the latency in the network to get the network time from the remote
   // server.
-  constexpr base::TimeDelta kLatency = base::TimeDelta::FromMilliseconds(10);
+  constexpr base::TimeDelta kLatency = base::Milliseconds(10);
 
   // Simulate the time taken to call UpdateNetworkTime() since the moment the
   // callback was created. When not testing with the fake sync server, the
   // callback is called when doing an HTTP request to the sync server.
-  constexpr base::TimeDelta kCallbackDelay =
-      base::TimeDelta::FromMilliseconds(10);
+  constexpr base::TimeDelta kCallbackDelay = base::Milliseconds(10);
 
   // Simulate a network time that is a bit earlier than the now time.
   base::Time network_time = now - kCallbackDelay - kLatency;
@@ -55,8 +54,7 @@
   base::TimeTicks post_time = base::TimeTicks::Now() - kCallbackDelay;
 
   time_tracker->UpdateNetworkTime(
-      network_time, /*resolution=*/base::TimeDelta::FromMilliseconds(1),
-      kLatency, post_time);
+      network_time, /*resolution=*/base::Milliseconds(1), kLatency, post_time);
 }
 
 int GetMaximumEligibleBirthYear(const base::Time& now) {
diff --git a/components/metrics/field_trials_provider_unittest.cc b/components/metrics/field_trials_provider_unittest.cc
index e379789..0c5bab7 100644
--- a/components/metrics/field_trials_provider_unittest.cc
+++ b/components/metrics/field_trials_provider_unittest.cc
@@ -74,7 +74,7 @@
   // take between 1-15ms per the documented resolution of base::TimeTicks.
   void WaitUntilTimeChanges(const base::TimeTicks& value) {
     while (base::TimeTicks::Now() == value) {
-      base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(1));
+      base::PlatformThread::Sleep(base::Milliseconds(1));
     }
   }
 
diff --git a/components/metrics/file_metrics_provider_unittest.cc b/components/metrics/file_metrics_provider_unittest.cc
index 49cc39a..871a11de 100644
--- a/components/metrics/file_metrics_provider_unittest.cc
+++ b/components/metrics/file_metrics_provider_unittest.cc
@@ -282,7 +282,7 @@
 TEST_P(FileMetricsProviderTest, AccessMetrics) {
   ASSERT_FALSE(PathExists(metrics_file()));
 
-  base::Time metrics_time = base::Time::Now() - base::TimeDelta::FromMinutes(5);
+  base::Time metrics_time = base::Time::Now() - base::Minutes(5);
   std::unique_ptr<base::PersistentHistogramAllocator> histogram_allocator =
       CreateMetricsFileWithHistograms(2);
   ASSERT_TRUE(PathExists(metrics_file()));
@@ -316,7 +316,7 @@
   EXPECT_FALSE(base::PathExists(metrics_file()));
 
   // Recreate the file to indicate that it is "new" and must be recorded.
-  metrics_time = metrics_time + base::TimeDelta::FromMinutes(1);
+  metrics_time = metrics_time + base::Minutes(1);
   WriteMetricsFileAtTime(metrics_file(), histogram_allocator.get(),
                          metrics_time);
 
@@ -330,7 +330,7 @@
 TEST_P(FileMetricsProviderTest, AccessTimeLimitedFile) {
   ASSERT_FALSE(PathExists(metrics_file()));
 
-  base::Time metrics_time = base::Time::Now() - base::TimeDelta::FromHours(5);
+  base::Time metrics_time = base::Time::Now() - base::Hours(5);
   std::unique_ptr<base::PersistentHistogramAllocator> histogram_allocator =
       CreateMetricsFileWithHistograms(2);
   ASSERT_TRUE(PathExists(metrics_file()));
@@ -340,7 +340,7 @@
   FileMetricsProvider::Params params(
       metrics_file(), FileMetricsProvider::SOURCE_HISTOGRAMS_ATOMIC_FILE,
       FileMetricsProvider::ASSOCIATE_CURRENT_RUN, kMetricsName);
-  params.max_age = base::TimeDelta::FromHours(1);
+  params.max_age = base::Hours(1);
   provider()->RegisterSource(params);
 
   // Attempt to access the file should return nothing.
@@ -354,7 +354,7 @@
   ASSERT_FALSE(PathExists(metrics_file()));
 
   base::Time now_time = base::Time::Now();
-  base::Time metrics_time = now_time - base::TimeDelta::FromMinutes(5);
+  base::Time metrics_time = now_time - base::Minutes(5);
   std::unique_ptr<base::PersistentHistogramAllocator> histogram_allocator =
       CreateMetricsFileWithHistograms(2);
   ASSERT_TRUE(PathExists(metrics_file()));
@@ -381,7 +381,7 @@
   EXPECT_TRUE(base::PathExists(metrics_file()));
   ASSERT_TRUE(base::GetFileInfo(metrics_file(), &fileinfo));
   EXPECT_LT(metrics_time, fileinfo.last_modified);
-  EXPECT_LE(now_time - base::TimeDelta::FromSeconds(2), fileinfo.last_modified);
+  EXPECT_LE(now_time - base::Seconds(2), fileinfo.last_modified);
 
   // Second full run on the same file should process the file.
   OnDidCreateMetricsLog();
@@ -394,7 +394,7 @@
   ASSERT_FALSE(PathExists(metrics_file()));
 
   base::Time now_time = base::Time::Now();
-  base::Time metrics_time = now_time - base::TimeDelta::FromMinutes(5);
+  base::Time metrics_time = now_time - base::Minutes(5);
   std::unique_ptr<base::PersistentHistogramAllocator> histogram_allocator =
       CreateMetricsFileWithHistograms(2);
   ASSERT_TRUE(PathExists(metrics_file()));
@@ -429,7 +429,7 @@
   base::HistogramBase* histogram;
 
   // Create files starting with a timestamp a few minutes back.
-  base::Time base_time = base::Time::Now() - base::TimeDelta::FromMinutes(10);
+  base::Time base_time = base::Time::Now() - base::Minutes(10);
 
   // Create some files in an odd order. The files are "touched" back in time to
   // ensure that each file has a later timestamp on disk than the previous one.
@@ -443,33 +443,28 @@
   histogram = base::Histogram::FactoryGet("h1", 1, 100, 10, 0);
   histogram->Add(1);
   WriteMetricsFileAtTime(metrics_files.GetPath().AppendASCII("a1.pma"),
-                         allocator,
-                         base_time + base::TimeDelta::FromMinutes(1));
+                         allocator, base_time + base::Minutes(1));
 
   histogram = base::Histogram::FactoryGet("h2", 1, 100, 10, 0);
   histogram->Add(2);
   WriteMetricsFileAtTime(metrics_files.GetPath().AppendASCII("c2.pma"),
-                         allocator,
-                         base_time + base::TimeDelta::FromMinutes(2));
+                         allocator, base_time + base::Minutes(2));
 
   histogram = base::Histogram::FactoryGet("h3", 1, 100, 10, 0);
   histogram->Add(3);
   WriteMetricsFileAtTime(metrics_files.GetPath().AppendASCII("b3.pma"),
-                         allocator,
-                         base_time + base::TimeDelta::FromMinutes(3));
+                         allocator, base_time + base::Minutes(3));
 
   histogram = base::Histogram::FactoryGet("h4", 1, 100, 10, 0);
   histogram->Add(3);
   WriteMetricsFileAtTime(metrics_files.GetPath().AppendASCII("d4.pma"),
-                         allocator,
-                         base_time + base::TimeDelta::FromMinutes(4));
+                         allocator, base_time + base::Minutes(4));
 
   base::TouchFile(metrics_files.GetPath().AppendASCII("b3.pma"),
-                  base_time + base::TimeDelta::FromMinutes(5),
-                  base_time + base::TimeDelta::FromMinutes(5));
+                  base_time + base::Minutes(5), base_time + base::Minutes(5));
 
   WriteMetricsFileAtTime(metrics_files.GetPath().AppendASCII("baz"), allocator,
-                         base_time + base::TimeDelta::FromMinutes(6));
+                         base_time + base::Minutes(6));
 
   // The global allocator has to be detached here so that no metrics created
   // by code called below get stored in it as that would make for potential
@@ -507,14 +502,14 @@
   ASSERT_FALSE(PathExists(metrics_file()));
 
   // Create files starting with a timestamp a few minutes back.
-  base::Time base_time = base::Time::Now() - base::TimeDelta::FromMinutes(10);
+  base::Time base_time = base::Time::Now() - base::Minutes(10);
 
   base::ScopedTempDir metrics_files;
   EXPECT_TRUE(metrics_files.CreateUniqueTempDir());
 
   CreateMetricsFileWithHistograms(
       metrics_files.GetPath().AppendASCII("h1.pma"),
-      base_time + base::TimeDelta::FromMinutes(1), 1,
+      base_time + base::Minutes(1), 1,
       base::BindOnce([](base::PersistentHistogramAllocator* allocator) {
         allocator->memory_allocator()->SetMemoryState(
             base::PersistentMemoryAllocator::MEMORY_DELETED);
@@ -522,7 +517,7 @@
 
   CreateMetricsFileWithHistograms(
       metrics_files.GetPath().AppendASCII("h2.pma"),
-      base_time + base::TimeDelta::FromMinutes(2), 2,
+      base_time + base::Minutes(2), 2,
       base::BindOnce([](base::PersistentHistogramAllocator* allocator) {
         SystemProfileProto profile_proto;
         SystemProfileProto::FieldTrial* trial = profile_proto.add_field_trial();
@@ -537,7 +532,7 @@
 
   CreateMetricsFileWithHistograms(
       metrics_files.GetPath().AppendASCII("h3.pma"),
-      base_time + base::TimeDelta::FromMinutes(3), 3,
+      base_time + base::Minutes(3), 3,
       base::BindOnce([](base::PersistentHistogramAllocator* allocator) {
         allocator->memory_allocator()->SetMemoryState(
             base::PersistentMemoryAllocator::MEMORY_DELETED);
@@ -548,8 +543,7 @@
                      base::File::FLAG_CREATE | base::File::FLAG_WRITE);
   }
   base::TouchFile(metrics_files.GetPath().AppendASCII("h4.pma"),
-                  base_time + base::TimeDelta::FromMinutes(4),
-                  base_time + base::TimeDelta::FromMinutes(4));
+                  base_time + base::Minutes(4), base_time + base::Minutes(4));
 
   // Register the file and allow the "checker" task to run.
   provider()->RegisterSource(FileMetricsProvider::Params(
@@ -600,8 +594,7 @@
   histogram = base::Histogram::FactoryGet("h1", 1, 100, 10, 0);
   histogram->Add(1);
   WriteMetricsFileAtTime(metrics_files.GetPath().AppendASCII("a1.pma"),
-                         allocator,
-                         base::Time::Now() - base::TimeDelta::FromHours(1));
+                         allocator, base::Time::Now() - base::Hours(1));
 
   histogram = base::Histogram::FactoryGet("h2", 1, 100, 10, 0);
   histogram->Add(2);
@@ -618,7 +611,7 @@
       metrics_files.GetPath(),
       FileMetricsProvider::SOURCE_HISTOGRAMS_ATOMIC_DIR,
       FileMetricsProvider::ASSOCIATE_CURRENT_RUN, kMetricsName);
-  params.max_age = base::TimeDelta::FromMinutes(30);
+  params.max_age = base::Minutes(30);
   provider()->RegisterSource(params);
 
   // Only b2, with 2 histograms, should be read.
@@ -648,8 +641,7 @@
   histogram = base::Histogram::FactoryGet("h1", 1, 100, 10, 0);
   histogram->Add(1);
   WriteMetricsFileAtTime(metrics_files.GetPath().AppendASCII("a1.pma"),
-                         allocator,
-                         base::Time::Now() - base::TimeDelta::FromHours(1));
+                         allocator, base::Time::Now() - base::Hours(1));
 
   histogram = base::Histogram::FactoryGet("h2", 1, 100, 10, 0);
   histogram->Add(2);
@@ -701,8 +693,7 @@
   histogram = base::Histogram::FactoryGet("h1", 1, 100, 10, 0);
   histogram->Add(1);
   WriteMetricsFileAtTime(metrics_files.GetPath().AppendASCII("a1.pma"),
-                         allocator,
-                         base::Time::Now() - base::TimeDelta::FromHours(1));
+                         allocator, base::Time::Now() - base::Hours(1));
 
   histogram = base::Histogram::FactoryGet("h2", 1, 100, 10, 0);
   histogram->Add(2);
@@ -744,7 +735,7 @@
   base::HistogramBase* histogram;
 
   // Create files starting with a timestamp a few minutes back.
-  base::Time base_time = base::Time::Now() - base::TimeDelta::FromMinutes(10);
+  base::Time base_time = base::Time::Now() - base::Minutes(10);
 
   // Create some files in an odd order. The files are "touched" back in time to
   // ensure that each file has a later timestamp on disk than the previous one.
@@ -754,30 +745,25 @@
   histogram = base::Histogram::FactoryGet("h1", 1, 100, 10, 0);
   histogram->Add(1);
   WriteMetricsFileAtTime(metrics_files.GetPath().AppendASCII("a1.pma"),
-                         allocator,
-                         base_time + base::TimeDelta::FromMinutes(1));
+                         allocator, base_time + base::Minutes(1));
 
   histogram = base::Histogram::FactoryGet("h2", 1, 100, 10, 0);
   histogram->Add(2);
   WriteMetricsFileAtTime(metrics_files.GetPath().AppendASCII("c2.pma"),
-                         allocator,
-                         base_time + base::TimeDelta::FromMinutes(2));
+                         allocator, base_time + base::Minutes(2));
 
   histogram = base::Histogram::FactoryGet("h3", 1, 100, 10, 0);
   histogram->Add(3);
   WriteMetricsFileAtTime(metrics_files.GetPath().AppendASCII("b3.pma"),
-                         allocator,
-                         base_time + base::TimeDelta::FromMinutes(3));
+                         allocator, base_time + base::Minutes(3));
 
   histogram = base::Histogram::FactoryGet("h4", 1, 100, 10, 0);
   histogram->Add(3);
   WriteMetricsFileAtTime(metrics_files.GetPath().AppendASCII("d4.pma"),
-                         allocator,
-                         base_time + base::TimeDelta::FromMinutes(4));
+                         allocator, base_time + base::Minutes(4));
 
   base::TouchFile(metrics_files.GetPath().AppendASCII("b3.pma"),
-                  base_time + base::TimeDelta::FromMinutes(5),
-                  base_time + base::TimeDelta::FromMinutes(5));
+                  base_time + base::Minutes(5), base_time + base::Minutes(5));
 
   // The global allocator has to be detached here so that no metrics created
   // by code called below get stored in it as that would make for potential
@@ -1061,8 +1047,7 @@
     new_name[1] = '1' + i;
     base::FilePath file_name = temp_dir().AppendASCII(new_name).AddExtension(
         base::PersistentMemoryAllocator::kFileExtension);
-    base::Time file_time =
-        file_base_time - base::TimeDelta::FromMinutes(file_count - i);
+    base::Time file_time = file_base_time - base::Minutes(file_count - i);
     base::TouchFile(metrics_file(), file_time, file_time);
     base::Move(metrics_file(), file_name);
     file_names.push_back(std::move(file_name));
diff --git a/components/metrics/metrics_reporting_service.cc b/components/metrics/metrics_reporting_service.cc
index 9470b44c..c44f99d 100644
--- a/components/metrics/metrics_reporting_service.cc
+++ b/components/metrics/metrics_reporting_service.cc
@@ -60,7 +60,7 @@
     base::TimeDelta interval) {
   UMA_HISTOGRAM_CUSTOM_COUNTS("UMA.ActualLogUploadInterval",
                               interval.InMinutes(), 1,
-                              base::TimeDelta::FromHours(12).InMinutes(), 50);
+                              base::Hours(12).InMinutes(), 50);
 }
 
 void MetricsReportingService::LogCellularConstraint(bool upload_canceled) {
diff --git a/components/metrics/metrics_scheduler.cc b/components/metrics/metrics_scheduler.cc
index 4df3c8a..975dbc6 100644
--- a/components/metrics/metrics_scheduler.cc
+++ b/components/metrics/metrics_scheduler.cc
@@ -24,7 +24,7 @@
 MetricsScheduler::MetricsScheduler(const base::RepeatingClosure& task_callback,
                                    bool fast_startup_for_testing)
     : task_callback_(task_callback),
-      interval_(base::TimeDelta::FromSeconds(
+      interval_(base::Seconds(
           fast_startup_for_testing ? 0 : kInitialIntervalSeconds)),
       running_(false),
       callback_pending_(false) {}
diff --git a/components/metrics/metrics_service.cc b/components/metrics/metrics_service.cc
index d4f6714..9e4d2794 100644
--- a/components/metrics/metrics_service.cc
+++ b/components/metrics/metrics_service.cc
@@ -273,7 +273,7 @@
       FROM_HERE,
       base::BindOnce(&MetricsService::UpdateLastLiveTimestampTask,
                      self_ptr_factory_.GetWeakPtr()),
-      base::TimeDelta::FromSeconds(kUpdateAliveTimestampSeconds));
+      base::Seconds(kUpdateAliveTimestampSeconds));
 }
 
 void MetricsService::Stop() {
@@ -632,7 +632,7 @@
     // We only need to schedule that run once.
     state_ = INIT_TASK_SCHEDULED;
 
-    base::TimeDelta initialization_delay = base::TimeDelta::FromSeconds(
+    base::TimeDelta initialization_delay = base::Seconds(
         client_->ShouldStartUpFastForTesting() ? 0
                                                : kInitializationDelaySeconds);
     base::SequencedTaskRunnerHandle::Get()->PostDelayedTask(
@@ -970,8 +970,7 @@
 void MetricsService::PrepareProviderMetricsTask() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   bool found = PrepareProviderMetricsLog();
-  base::TimeDelta next_check = found ? base::TimeDelta::FromSeconds(5)
-                                     : base::TimeDelta::FromMinutes(15);
+  base::TimeDelta next_check = found ? base::Seconds(5) : base::Minutes(15);
   base::SequencedTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&MetricsService::PrepareProviderMetricsTask,
diff --git a/components/metrics/metrics_service_client.cc b/components/metrics/metrics_service_client.cc
index 3a8381f..cbf829b 100644
--- a/components/metrics/metrics_service_client.cc
+++ b/components/metrics/metrics_service_client.cc
@@ -86,7 +86,7 @@
         metrics::switches::kMetricsUploadIntervalSec);
     int custom_upload_interval;
     if (base::StringToInt(switch_value, &custom_upload_interval)) {
-      return base::TimeDelta::FromSeconds(
+      return base::Seconds(
           std::max(custom_upload_interval, kMetricsUploadIntervalSecMinimum));
     }
     LOG(DFATAL) << "Malformed value for --metrics-upload-interval. "
diff --git a/components/metrics/metrics_service_client_unittest.cc b/components/metrics/metrics_service_client_unittest.cc
index 766b2a8..061022a 100644
--- a/components/metrics/metrics_service_client_unittest.cc
+++ b/components/metrics/metrics_service_client_unittest.cc
@@ -43,8 +43,7 @@
   base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
       switches::kMetricsUploadIntervalSec,
       base::NumberToString(specified_upload_sec));
-  ASSERT_EQ(base::TimeDelta::FromSeconds(specified_upload_sec),
-            client.GetUploadInterval());
+  ASSERT_EQ(base::Seconds(specified_upload_sec), client.GetUploadInterval());
 
   base::CommandLine::ForCurrentProcess()->RemoveSwitch(
       switches::kMetricsUploadIntervalSec);
@@ -53,8 +52,7 @@
   base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
       switches::kMetricsUploadIntervalSec,
       base::NumberToString(specified_upload_sec));
-  ASSERT_EQ(base::TimeDelta::FromSeconds(specified_upload_sec),
-            client.GetUploadInterval());
+  ASSERT_EQ(base::Seconds(specified_upload_sec), client.GetUploadInterval());
 }
 
 TEST_F(MetricsServiceClientTest, TestUploadIntervalLimitedForDos) {
@@ -68,7 +66,7 @@
       switches::kMetricsUploadIntervalSec,
       base::NumberToString(too_short_upload_sec));
   // Upload interval should be the DOS rate limit.
-  ASSERT_EQ(base::TimeDelta::FromSeconds(20), client.GetUploadInterval());
+  ASSERT_EQ(base::Seconds(20), client.GetUploadInterval());
 }
 
 }  // namespace metrics
diff --git a/components/metrics/metrics_service_unittest.cc b/components/metrics/metrics_service_unittest.cc
index 4f3f15c5..1e2c569 100644
--- a/components/metrics/metrics_service_unittest.cc
+++ b/components/metrics/metrics_service_unittest.cc
@@ -688,7 +688,7 @@
   EXPECT_EQ(num_pending_tasks + 1, task_runner_->NumPendingTasks());
 
   // To avoid flakiness, yield until we're over a microsecond threshold.
-  YieldUntil(initial_last_live_time + base::TimeDelta::FromMicroseconds(2));
+  YieldUntil(initial_last_live_time + base::Microseconds(2));
 
   task_runner_->RunPendingTasks();
 
@@ -698,7 +698,7 @@
   EXPECT_LT(initial_last_live_time, updated_last_live_time);
 
   // Double check that an update schedules again...
-  YieldUntil(updated_last_live_time + base::TimeDelta::FromMicroseconds(2));
+  YieldUntil(updated_last_live_time + base::Microseconds(2));
 
   task_runner_->RunPendingTasks();
   EXPECT_LT(
diff --git a/components/metrics/metrics_upload_scheduler.cc b/components/metrics/metrics_upload_scheduler.cc
index 24594fbb..af64b42 100644
--- a/components/metrics/metrics_upload_scheduler.cc
+++ b/components/metrics/metrics_upload_scheduler.cc
@@ -33,11 +33,10 @@
 // where the server is having issues.
 base::TimeDelta BackOffUploadInterval(base::TimeDelta interval) {
   DCHECK_GT(kBackoffMultiplier, 1.0);
-  interval = base::TimeDelta::FromMicroseconds(static_cast<int64_t>(
-      kBackoffMultiplier * interval.InMicroseconds()));
+  interval = base::Microseconds(
+      static_cast<int64_t>(kBackoffMultiplier * interval.InMicroseconds()));
 
-  base::TimeDelta max_interval =
-      base::TimeDelta::FromHours(kMaxBackoffIntervalHours);
+  base::TimeDelta max_interval = base::Hours(kMaxBackoffIntervalHours);
   if (interval > max_interval || interval.InSeconds() < 0) {
     interval = max_interval;
   }
@@ -48,12 +47,12 @@
 // On mobile, keeping the radio on is very expensive, so prefer to keep this
 // short and send in bursts.
 base::TimeDelta GetUnsentLogsInterval() {
-  return base::TimeDelta::FromSeconds(3);
+  return base::Seconds(3);
 }
 
 // Initial time delay after a log uploaded fails before retrying it.
 base::TimeDelta GetInitialBackoffInterval() {
-  return base::TimeDelta::FromMinutes(5);
+  return base::Minutes(5);
 }
 
 }  // namespace
@@ -87,7 +86,7 @@
 }
 
 void MetricsUploadScheduler::UploadOverDataUsageCap() {
-  TaskDone(base::TimeDelta::FromMinutes(kOverDataUsageIntervalMinutes));
+  TaskDone(base::Minutes(kOverDataUsageIntervalMinutes));
 }
 
 }  // namespace metrics
diff --git a/components/metrics/net/cellular_logic_helper.cc b/components/metrics/net/cellular_logic_helper.cc
index 99697015..ba6909d 100644
--- a/components/metrics/net/cellular_logic_helper.cc
+++ b/components/metrics/net/cellular_logic_helper.cc
@@ -27,8 +27,7 @@
 const base::Feature kMoreFrequentUmaUploads{"MoreFrequentUmaUploads",
                                             base::FEATURE_DISABLED_BY_DEFAULT};
 // The interval between these more-frequent uploads.
-constexpr base::TimeDelta kMoreFrequentUploadInterval =
-    base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kMoreFrequentUploadInterval = base::Minutes(5);
 #endif  // IS_CHROMEOS_ASH
 
 #if defined(OS_ANDROID)
@@ -42,13 +41,13 @@
 base::TimeDelta GetUploadInterval(bool use_cellular_upload_interval) {
 #if defined(OS_ANDROID) || defined(OS_IOS)
   if (use_cellular_upload_interval)
-    return base::TimeDelta::FromSeconds(kStandardUploadIntervalCellularSeconds);
+    return base::Seconds(kStandardUploadIntervalCellularSeconds);
 #elif BUILDFLAG(IS_CHROMEOS_ASH)
   if (base::FeatureList::IsEnabled(kMoreFrequentUmaUploads)) {
     return kMoreFrequentUploadInterval;
   }
 #endif
-  return base::TimeDelta::FromSeconds(kStandardUploadIntervalSeconds);
+  return base::Seconds(kStandardUploadIntervalSeconds);
 }
 
 bool ShouldUseCellularUploadInterval() {
diff --git a/components/metrics/persistent_histograms.cc b/components/metrics/persistent_histograms.cc
index 2cafa80..bc2fed7 100644
--- a/components/metrics/persistent_histograms.cc
+++ b/components/metrics/persistent_histograms.cc
@@ -48,7 +48,7 @@
   // exists on the order of milliseconds when working properly so "one day" is
   // generous but still ensures no big build up of these files. This is an
   // I/O intensive task so do it in the background (enforced by "file" calls).
-  base::Time one_day_ago = base::Time::Now() - base::TimeDelta::FromDays(1);
+  base::Time one_day_ago = base::Time::Now() - base::Days(1);
   base::FileEnumerator file_iter(dir, /*recursive=*/false,
                                  base::FileEnumerator::FILES);
   for (base::FilePath path = file_iter.Next(); !path.empty();
@@ -73,8 +73,7 @@
 // How much time after startup to run the above function. Two minutes is
 // enough for the system to stabilize and get the user what they want before
 // spending time on clean-up efforts.
-constexpr base::TimeDelta kDeleteOldWindowsTempFilesDelay =
-    base::TimeDelta::FromMinutes(2);
+constexpr base::TimeDelta kDeleteOldWindowsTempFilesDelay = base::Minutes(2);
 
 #endif  // defined(OS_WIN)
 
@@ -149,7 +148,7 @@
       base::BindOnce(
           base::IgnoreResult(&base::GlobalHistogramAllocator::CreateSpareFile),
           std::move(spare_file), kAllocSize),
-      base::TimeDelta::FromSeconds(kSpareFileCreateDelaySeconds));
+      base::Seconds(kSpareFileCreateDelaySeconds));
 
   return result;
 }
diff --git a/components/metrics/stability_metrics_provider_unittest.cc b/components/metrics/stability_metrics_provider_unittest.cc
index 3ebcd8cf..17d5912a 100644
--- a/components/metrics/stability_metrics_provider_unittest.cc
+++ b/components/metrics/stability_metrics_provider_unittest.cc
@@ -113,7 +113,7 @@
     recorder.LogCrash(unclean_time);
 
     // Record a crash with no system crash.
-    recorder.LogCrash(unclean_time - base::TimeDelta::FromMinutes(1));
+    recorder.LogCrash(unclean_time - base::Minutes(1));
   }
 
   {
diff --git a/components/metrics/structured/external_metrics_unittest.cc b/components/metrics/structured/external_metrics_unittest.cc
index 665f222..4446e14 100644
--- a/components/metrics/structured/external_metrics_unittest.cc
+++ b/components/metrics/structured/external_metrics_unittest.cc
@@ -58,7 +58,7 @@
     // We don't use the scheduling feature when testing ExternalMetrics, instead
     // we just call CollectMetrics directly. So make up a time interval here
     // that we'll never reach in a test.
-    const auto one_hour = base::TimeDelta::FromHours(1);
+    const auto one_hour = base::Hours(1);
     external_metrics_ = std::make_unique<ExternalMetrics>(
         temp_dir_.GetPath(), one_hour,
         base::BindRepeating(&ExternalMetricsTest::OnEventsCollected,
diff --git a/components/metrics/structured/key_data_unittest.cc b/components/metrics/structured/key_data_unittest.cc
index 133aa48..b240745 100644
--- a/components/metrics/structured/key_data_unittest.cc
+++ b/components/metrics/structured/key_data_unittest.cc
@@ -81,8 +81,8 @@
   base::FilePath GetPath() { return temp_dir_.GetPath().Append("keys"); }
 
   void MakeKeyData() {
-    key_data_ = std::make_unique<KeyData>(
-        GetPath(), base::TimeDelta::FromSeconds(0), base::DoNothing());
+    key_data_ = std::make_unique<KeyData>(GetPath(), base::Seconds(0),
+                                          base::DoNothing());
     Wait();
   }
 
@@ -286,7 +286,7 @@
 
   {
     // Advancing by 50 days, the key should not be rotated.
-    time_.Advance(base::TimeDelta::FromDays(50));
+    time_.Advance(base::Days(50));
     EXPECT_EQ(key_data_->Id(kProjectOneHash), first_id);
     EXPECT_EQ(key_data_->LastKeyRotation(kProjectOneHash), start_day);
     SaveKeyData();
@@ -298,7 +298,7 @@
   {
     // Advancing by another 50 days, the key should be rotated and the last
     // rotation day should be incremented by 90.
-    time_.Advance(base::TimeDelta::FromDays(50));
+    time_.Advance(base::Days(50));
     EXPECT_NE(key_data_->Id(kProjectOneHash), first_id);
     SaveKeyData();
 
@@ -314,7 +314,7 @@
   {
     // Advancing by 453 days, the last rotation day should now 6 periods of 90
     // days ahead.
-    time_.Advance(base::TimeDelta::FromDays(453));
+    time_.Advance(base::Days(453));
     key_data_->Id(kProjectOneHash);
     SaveKeyData();
 
diff --git a/components/metrics/structured/neutrino_logging.cc b/components/metrics/structured/neutrino_logging.cc
index 9bf18ad4..c2021a2 100644
--- a/components/metrics/structured/neutrino_logging.cc
+++ b/components/metrics/structured/neutrino_logging.cc
@@ -15,7 +15,7 @@
 int Log2TimeSince(int64_t timestamp) {
   return floor(
       log2((base::Time::Now() - base::Time::FromTimeT(timestamp)).InSecondsF() /
-           base::TimeDelta::FromDays(1).InSecondsF()));
+           base::Days(1).InSecondsF()));
 }
 
 }  // namespace
diff --git a/components/metrics/structured/persistent_proto_unittest.cc b/components/metrics/structured/persistent_proto_unittest.cc
index e5cef4b..76045f8 100644
--- a/components/metrics/structured/persistent_proto_unittest.cc
+++ b/components/metrics/structured/persistent_proto_unittest.cc
@@ -44,7 +44,7 @@
 }
 
 base::TimeDelta WriteDelay() {
-  return base::TimeDelta::FromSeconds(0);
+  return base::Seconds(0);
 }
 
 }  // namespace
diff --git a/components/metrics/structured/structured_metrics_provider.cc b/components/metrics/structured/structured_metrics_provider.cc
index 1737b76a..3114014 100644
--- a/components/metrics/structured/structured_metrics_provider.cc
+++ b/components/metrics/structured/structured_metrics_provider.cc
@@ -32,8 +32,7 @@
 // to the metrics service via ProvideIndependentMetrics. This is set carefully:
 // metrics logs are stored in a queue of limited size, and are uploaded roughly
 // every 30 minutes.
-constexpr base::TimeDelta kMinIndependentMetricsInterval =
-    base::TimeDelta::FromMinutes(45);
+constexpr base::TimeDelta kMinIndependentMetricsInterval = base::Minutes(45);
 
 // Directory containing serialized event protos to read.
 constexpr char kExternalMetricsDir[] = "/var/lib/metrics/structured/events";
@@ -131,7 +130,7 @@
     return;
   init_state_ = InitState::kProfileAdded;
 
-  const auto save_delay = base::TimeDelta::FromMilliseconds(kSaveDelayMs);
+  const auto save_delay = base::Milliseconds(kSaveDelayMs);
 
   profile_key_data_ = std::make_unique<KeyData>(
       profile_path.Append(kProfileKeyDataPath), save_delay,
@@ -157,7 +156,7 @@
 
   external_metrics_ = std::make_unique<ExternalMetrics>(
       base::FilePath(kExternalMetricsDir),
-      base::TimeDelta::FromMinutes(kExternalMetricsIntervalMins),
+      base::Minutes(kExternalMetricsIntervalMins),
       base::BindRepeating(
           &StructuredMetricsProvider::OnExternalMetricsCollected,
           weak_factory_.GetWeakPtr()));
@@ -407,7 +406,7 @@
 void StructuredMetricsProvider::SetExternalMetricsDirForTest(
     const base::FilePath& dir) {
   external_metrics_ = std::make_unique<ExternalMetrics>(
-      dir, base::TimeDelta::FromMinutes(kExternalMetricsIntervalMins),
+      dir, base::Minutes(kExternalMetricsIntervalMins),
       base::BindRepeating(
           &StructuredMetricsProvider::OnExternalMetricsCollected,
           weak_factory_.GetWeakPtr()));
diff --git a/components/metrics/structured/structured_metrics_provider_unittest.cc b/components/metrics/structured/structured_metrics_provider_unittest.cc
index 0c8664e..26c5cf4 100644
--- a/components/metrics/structured/structured_metrics_provider_unittest.cc
+++ b/components/metrics/structured/structured_metrics_provider_unittest.cc
@@ -108,7 +108,7 @@
     StructuredMetricsClient::Get()->SetDelegate(Recorder::GetInstance());
     // Move the mock date forward from day 0, because KeyData assumes that day 0
     // is a bug.
-    task_environment_.AdvanceClock(base::TimeDelta::FromDays(1000));
+    task_environment_.AdvanceClock(base::Days(1000));
   }
 
   base::FilePath TempDirPath() { return temp_dir_.GetPath(); }
@@ -232,7 +232,7 @@
     // Independent metrics are only reported at intervals. So advance time to
     // ensure HasIndependentMetrics will return true if there are recorded
     // metrics.
-    task_environment_.AdvanceClock(base::TimeDelta::FromHours(1));
+    task_environment_.AdvanceClock(base::Hours(1));
 
     ChromeUserMetricsExtension uma_proto;
     if (provider_->HasIndependentMetrics()) {
@@ -662,7 +662,7 @@
   OnProfileAdded(TempDirPath());
   OnRecordingEnabled();
   SetExternalMetricsDirForTest(events_dir);
-  task_environment_.AdvanceClock(base::TimeDelta::FromHours(10));
+  task_environment_.AdvanceClock(base::Hours(10));
   Wait();
   EXPECT_EQ(GetSessionData().events_size(), 3);
 }
diff --git a/components/metrics/system_session_analyzer/system_session_analyzer_win_unittest.cc b/components/metrics/system_session_analyzer/system_session_analyzer_win_unittest.cc
index 4dbf2661..7f4d04c8 100644
--- a/components/metrics/system_session_analyzer/system_session_analyzer_win_unittest.cc
+++ b/components/metrics/system_session_analyzer/system_session_analyzer_win_unittest.cc
@@ -87,26 +87,25 @@
 
   base::Time time = base::Time::Now();
   analyzer.AddEvent({kIdSessionStart, time});
-  analyzer.AddEvent(
-      {kIdSessionEndUnclean, time - base::TimeDelta::FromSeconds(10)});
-  analyzer.AddEvent({kIdSessionStart, time - base::TimeDelta::FromSeconds(20)});
-  analyzer.AddEvent({kIdSessionEnd, time - base::TimeDelta::FromSeconds(22)});
-  analyzer.AddEvent({kIdSessionStart, time - base::TimeDelta::FromSeconds(28)});
+  analyzer.AddEvent({kIdSessionEndUnclean, time - base::Seconds(10)});
+  analyzer.AddEvent({kIdSessionStart, time - base::Seconds(20)});
+  analyzer.AddEvent({kIdSessionEnd, time - base::Seconds(22)});
+  analyzer.AddEvent({kIdSessionStart, time - base::Seconds(28)});
 
   EXPECT_EQ(SystemSessionAnalyzer::OUTSIDE_RANGE,
-            analyzer.IsSessionUnclean(time - base::TimeDelta::FromSeconds(30)));
+            analyzer.IsSessionUnclean(time - base::Seconds(30)));
   EXPECT_EQ(SystemSessionAnalyzer::CLEAN,
-            analyzer.IsSessionUnclean(time - base::TimeDelta::FromSeconds(25)));
+            analyzer.IsSessionUnclean(time - base::Seconds(25)));
   EXPECT_EQ(SystemSessionAnalyzer::UNCLEAN,
-            analyzer.IsSessionUnclean(time - base::TimeDelta::FromSeconds(20)));
+            analyzer.IsSessionUnclean(time - base::Seconds(20)));
   EXPECT_EQ(SystemSessionAnalyzer::UNCLEAN,
-            analyzer.IsSessionUnclean(time - base::TimeDelta::FromSeconds(15)));
+            analyzer.IsSessionUnclean(time - base::Seconds(15)));
   EXPECT_EQ(SystemSessionAnalyzer::UNCLEAN,
-            analyzer.IsSessionUnclean(time - base::TimeDelta::FromSeconds(10)));
+            analyzer.IsSessionUnclean(time - base::Seconds(10)));
   EXPECT_EQ(SystemSessionAnalyzer::CLEAN,
-            analyzer.IsSessionUnclean(time - base::TimeDelta::FromSeconds(5)));
+            analyzer.IsSessionUnclean(time - base::Seconds(5)));
   EXPECT_EQ(SystemSessionAnalyzer::CLEAN,
-            analyzer.IsSessionUnclean(time + base::TimeDelta::FromSeconds(5)));
+            analyzer.IsSessionUnclean(time + base::Seconds(5)));
 }
 
 TEST(SystemSessionAnalyzerTest, NoEvent) {
@@ -120,8 +119,8 @@
 
   base::Time time = base::Time::Now();
   analyzer.AddEvent({kIdSessionStart, time});
-  analyzer.AddEvent({kIdSessionEnd, time + base::TimeDelta::FromSeconds(1)});
-  analyzer.AddEvent({kIdSessionStart, time - base::TimeDelta::FromSeconds(1)});
+  analyzer.AddEvent({kIdSessionEnd, time + base::Seconds(1)});
+  analyzer.AddEvent({kIdSessionStart, time - base::Seconds(1)});
 
   EXPECT_EQ(SystemSessionAnalyzer::INITIALIZE_FAILED,
             analyzer.IsSessionUnclean(base::Time::Now()));
@@ -132,8 +131,8 @@
 
   base::Time time = base::Time::Now();
   analyzer.AddEvent({kIdSessionStart, time});
-  analyzer.AddEvent({kIdSessionStart, time - base::TimeDelta::FromSeconds(1)});
-  analyzer.AddEvent({kIdSessionEnd, time - base::TimeDelta::FromSeconds(2)});
+  analyzer.AddEvent({kIdSessionStart, time - base::Seconds(1)});
+  analyzer.AddEvent({kIdSessionEnd, time - base::Seconds(2)});
 
   EXPECT_EQ(SystemSessionAnalyzer::INITIALIZE_FAILED,
             analyzer.IsSessionUnclean(base::Time::Now()));
diff --git a/components/metrics/test/test_metrics_service_client.cc b/components/metrics/test/test_metrics_service_client.cc
index 5c0070a..b47d6a5b 100644
--- a/components/metrics/test/test_metrics_service_client.cc
+++ b/components/metrics/test/test_metrics_service_client.cc
@@ -74,7 +74,7 @@
 }
 
 base::TimeDelta TestMetricsServiceClient::GetStandardUploadInterval() {
-  return base::TimeDelta::FromMinutes(5);
+  return base::Minutes(5);
 }
 
 bool TestMetricsServiceClient::IsReportingPolicyManaged() {
diff --git a/components/mirroring/service/message_dispatcher_unittest.cc b/components/mirroring/service/message_dispatcher_unittest.cc
index 5cec51d..9352fbe 100644
--- a/components/mirroring/service/message_dispatcher_unittest.cc
+++ b/components/mirroring/service/message_dispatcher_unittest.cc
@@ -252,7 +252,7 @@
       CastMessage{mojom::kWebRtcNamespace, kFakeOffer};
   message_dispatcher_->RequestReply(
       offer_message.Clone(), ResponseType::ANSWER, 45623,
-      base::TimeDelta::FromMilliseconds(100),
+      base::Milliseconds(100),
       base::BindRepeating(&MessageDispatcherTest::OnAnswerResponse,
                           base::Unretained(this)));
   task_environment_.RunUntilIdle();
@@ -304,7 +304,7 @@
       mojom::kWebRtcNamespace, "{\"type\":\"OFFER\",\"seqNum\":12345}"};
   message_dispatcher_->RequestReply(
       fake_message.Clone(), ResponseType::ANSWER, 12345,
-      base::TimeDelta::FromMilliseconds(100),
+      base::Milliseconds(100),
       base::BindRepeating(&MessageDispatcherTest::OnAnswerResponse,
                           base::Unretained(this)));
   task_environment_.RunUntilIdle();
diff --git a/components/mirroring/service/mirror_settings.cc b/components/mirroring/service/mirror_settings.cc
index 4e0b361..f37e8a9 100644
--- a/components/mirroring/service/mirror_settings.cc
+++ b/components/mirroring/service/mirror_settings.cc
@@ -24,8 +24,7 @@
 // Default end-to-end latency. Currently adaptive latency control is disabled
 // because of audio playout regressions (b/32876644).
 // TODO(openscreen/44): Re-enable in port to Open Screen.
-constexpr base::TimeDelta kDefaultPlayoutDelay =
-    base::TimeDelta::FromMilliseconds(400);
+constexpr base::TimeDelta kDefaultPlayoutDelay = base::Milliseconds(400);
 
 constexpr int kAudioTimebase = 48000;
 constexpr int kVidoTimebase = 90000;
@@ -65,7 +64,7 @@
 
   VLOG(1) << "Using custom mirroring playout delay value of: " << playout_delay
           << "ms...";
-  return base::TimeDelta::FromMilliseconds(playout_delay);
+  return base::Milliseconds(playout_delay);
 }
 
 base::TimeDelta GetPlayoutDelay() {
diff --git a/components/mirroring/service/remoting_sender_unittest.cc b/components/mirroring/service/remoting_sender_unittest.cc
index 7c872f76..ee5d5e97 100644
--- a/components/mirroring/service/remoting_sender_unittest.cc
+++ b/components/mirroring/service/remoting_sender_unittest.cc
@@ -142,8 +142,7 @@
 
     // Give CastRemotingSender a small RTT measurement to prevent kickstart
     // testing from taking too long.
-    remoting_sender_->OnMeasuredRoundTripTime(
-        base::TimeDelta::FromMilliseconds(1));
+    remoting_sender_->OnMeasuredRoundTripTime(base::Milliseconds(1));
     RunPendingTasks();
   }
 
diff --git a/components/mirroring/service/rtp_stream.cc b/components/mirroring/service/rtp_stream.cc
index a6fb2ae..c1f77ec 100644
--- a/components/mirroring/service/rtp_stream.cc
+++ b/components/mirroring/service/rtp_stream.cc
@@ -23,8 +23,7 @@
 
 // The maximum time since the last video frame was received from the video
 // source, before requesting refresh frames.
-constexpr base::TimeDelta kRefreshInterval =
-    base::TimeDelta::FromMilliseconds(250);
+constexpr base::TimeDelta kRefreshInterval = base::Milliseconds(250);
 
 // The maximum number of refresh video frames to request/receive.  After this
 // limit (60 * 250ms = 15 seconds), refresh frame requests will stop being made.
diff --git a/components/mirroring/service/rtp_stream_unittest.cc b/components/mirroring/service/rtp_stream_unittest.cc
index 85142b2..c3880a1d 100644
--- a/components/mirroring/service/rtp_stream_unittest.cc
+++ b/components/mirroring/service/rtp_stream_unittest.cc
@@ -108,7 +108,7 @@
 // Test the audio streaming pipeline.
 TEST_F(RtpStreamTest, AudioStreaming) {
   // Create audio data.
-  const base::TimeDelta kDuration = base::TimeDelta::FromMilliseconds(10);
+  const base::TimeDelta kDuration = base::Milliseconds(10);
   media::cast::FrameSenderConfig audio_config =
       media::cast::GetDefaultAudioSenderConfig();
   std::unique_ptr<media::AudioBus> audio_bus =
diff --git a/components/mirroring/service/session.cc b/components/mirroring/service/session.cc
index 6fd1d021..cfa573a 100644
--- a/components/mirroring/service/session.cc
+++ b/components/mirroring/service/session.cc
@@ -72,17 +72,15 @@
 
 // The interval for CastTransport to send Frame/PacketEvents to Session for
 // logging.
-constexpr base::TimeDelta kSendEventsInterval = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kSendEventsInterval = base::Seconds(1);
 
 // The duration for OFFER/ANSWER exchange. If timeout, notify the client that
 // the session failed to start.
-constexpr base::TimeDelta kOfferAnswerExchangeTimeout =
-    base::TimeDelta::FromSeconds(15);
+constexpr base::TimeDelta kOfferAnswerExchangeTimeout = base::Seconds(15);
 
 // Amount of time to wait before assuming the Cast Receiver does not support
 // querying for capabilities via GET_CAPABILITIES.
-constexpr base::TimeDelta kGetCapabilitiesTimeout =
-    base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kGetCapabilitiesTimeout = base::Seconds(30);
 
 // Used for OFFER/ANSWER message exchange. Some receivers will error out on
 // payloadType values other than the ones hard-coded here.
@@ -609,7 +607,7 @@
         std::min(video_config->max_bitrate, video.bit_rate_limits.maximum);
     video_config->max_playout_delay =
         std::min(video_config->max_playout_delay,
-                 base::TimeDelta::FromMilliseconds(video.max_delay.count()));
+                 base::Milliseconds(video.max_delay.count()));
     video_config->max_frame_rate =
         std::min(video_config->max_frame_rate,
                  static_cast<double>(video.maximum.frame_rate));
@@ -626,7 +624,7 @@
         std::min(audio_config->max_bitrate, audio.bit_rate_limits.maximum);
     audio_config->max_playout_delay =
         std::min(audio_config->max_playout_delay,
-                 base::TimeDelta::FromMilliseconds(audio.max_delay.count()));
+                 base::Milliseconds(audio.max_delay.count()));
     // Currently, Chrome only supports stereo, so audio.max_channels is ignored.
   }
 }
diff --git a/components/mirroring/service/session_unittest.cc b/components/mirroring/service/session_unittest.cc
index d8ed259..10338883 100644
--- a/components/mirroring/service/session_unittest.cc
+++ b/components/mirroring/service/session_unittest.cc
@@ -243,7 +243,7 @@
     session_params->receiver_model_name = "Chromecast";
     if (target_playout_delay_ms_ != kDefaultPlayoutDelay) {
       session_params->target_playout_delay =
-          base::TimeDelta::FromMilliseconds(target_playout_delay_ms_);
+          base::Milliseconds(target_playout_delay_ms_);
     }
     cast_mode_ = "mirroring";
     mojo::PendingRemote<mojom::ResourceProvider> resource_provider_remote;
diff --git a/components/nacl/browser/nacl_browser.cc b/components/nacl/browser/nacl_browser.cc
index 6ba7c5b..1b48638 100644
--- a/components/nacl/browser/nacl_browser.cc
+++ b/components/nacl/browser/nacl_browser.cc
@@ -545,7 +545,7 @@
         FROM_HERE,
         base::BindOnce(&NaClBrowser::PersistValidationCache,
                        base::Unretained(this)),
-        base::TimeDelta::FromMilliseconds(kValidationCacheCoalescingTimeMS));
+        base::Milliseconds(kValidationCacheCoalescingTimeMS));
     validation_cache_is_modified_ = true;
   }
 }
diff --git a/components/nacl/browser/pnacl_host.cc b/components/nacl/browser/pnacl_host.cc
index 7a7061c..823dc6a 100644
--- a/components/nacl/browser/pnacl_host.cc
+++ b/components/nacl/browser/pnacl_host.cc
@@ -231,8 +231,7 @@
         base::BindOnce(&PnaclHost::GetNexeFd, base::Unretained(this),
                        render_process_id, pp_instance, is_incognito, cache_info,
                        cb),
-        base::TimeDelta::FromMilliseconds(
-            kTranslationCacheInitializationDelayMs));
+        base::Milliseconds(kTranslationCacheInitializationDelayMs));
     return;
   }
 
@@ -592,8 +591,7 @@
         base::BindOnce(&PnaclHost::ClearTranslationCacheEntriesBetween,
                        base::Unretained(this), initial_time, end_time,
                        std::move(callback)),
-        base::TimeDelta::FromMilliseconds(
-            kTranslationCacheInitializationDelayMs));
+        base::Milliseconds(kTranslationCacheInitializationDelayMs));
     return;
   }
   pending_backend_operations_++;
diff --git a/components/nacl/loader/nacl_ipc_adapter_unittest.cc b/components/nacl/loader/nacl_ipc_adapter_unittest.cc
index 8a95ed44..f93d04e 100644
--- a/components/nacl/loader/nacl_ipc_adapter_unittest.cc
+++ b/components/nacl/loader/nacl_ipc_adapter_unittest.cc
@@ -284,7 +284,7 @@
         : SimpleThread("NaClIPCAdapterThread"),
           adapter_(adapter) {}
     void Run() override {
-      base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(1));
+      base::PlatformThread::Sleep(base::Seconds(1));
       adapter_->OnChannelError();
     }
    private:
diff --git a/components/nacl/renderer/histogram.cc b/components/nacl/renderer/histogram.cc
index df57acf..90993e7 100644
--- a/components/nacl/renderer/histogram.cc
+++ b/components/nacl/renderer/histogram.cc
@@ -91,13 +91,10 @@
   if (sample < 0)
     sample = 0;
   base::HistogramBase* counter = base::Histogram::FactoryTimeGet(
-      name,
-      base::TimeDelta::FromMilliseconds(1),
-      base::TimeDelta::FromMilliseconds(20000),
-      100,
+      name, base::Milliseconds(1), base::Milliseconds(20000), 100,
       base::HistogramBase::kUmaTargetedHistogramFlag);
   if (counter)
-    counter->AddTime(base::TimeDelta::FromMilliseconds(sample));
+    counter->AddTime(base::Milliseconds(sample));
 }
 
 // Records values up to 3 minutes, 20 seconds.
@@ -105,13 +102,10 @@
   if (sample < 0)
     sample = 0;
   base::HistogramBase* counter = base::Histogram::FactoryTimeGet(
-      name,
-      base::TimeDelta::FromMilliseconds(10),
-      base::TimeDelta::FromMilliseconds(200000),
-      100,
+      name, base::Milliseconds(10), base::Milliseconds(200000), 100,
       base::HistogramBase::kUmaTargetedHistogramFlag);
   if (counter)
-    counter->AddTime(base::TimeDelta::FromMilliseconds(sample));
+    counter->AddTime(base::Milliseconds(sample));
 }
 
 // Records values up to 33 minutes.
@@ -119,13 +113,10 @@
   if (sample < 0)
     sample = 0;
   base::HistogramBase* counter = base::Histogram::FactoryTimeGet(
-      name,
-      base::TimeDelta::FromMilliseconds(100),
-      base::TimeDelta::FromMilliseconds(2000000),
-      100,
+      name, base::Milliseconds(100), base::Milliseconds(2000000), 100,
       base::HistogramBase::kUmaTargetedHistogramFlag);
   if (counter)
-    counter->AddTime(base::TimeDelta::FromMilliseconds(sample));
+    counter->AddTime(base::Milliseconds(sample));
 }
 
 // Records values up to 12 minutes.
@@ -133,13 +124,10 @@
   if (sample_ms < 0)
     sample_ms = 0;
   base::HistogramBase* counter = base::Histogram::FactoryTimeGet(
-      name,
-      base::TimeDelta::FromMilliseconds(10),
-      base::TimeDelta::FromMilliseconds(720000),
-      100,
+      name, base::Milliseconds(10), base::Milliseconds(720000), 100,
       base::HistogramBase::kUmaTargetedHistogramFlag);
   if (counter)
-    counter->AddTime(base::TimeDelta::FromMilliseconds(sample_ms));
+    counter->AddTime(base::Milliseconds(sample_ms));
 }
 
 void HistogramStartupTimeSmall(const std::string& name,
diff --git a/components/nacl/renderer/ppb_nacl_private_impl.cc b/components/nacl/renderer/ppb_nacl_private_impl.cc
index 63a39ed..4378162 100644
--- a/components/nacl/renderer/ppb_nacl_private_impl.cc
+++ b/components/nacl/renderer/ppb_nacl_private_impl.cc
@@ -1293,7 +1293,7 @@
                       int64_t total_bytes_received,
                       int64_t total_bytes_to_be_received) {
     base::Time now = base::Time::Now();
-    if (now - last_event_ > base::TimeDelta::FromMilliseconds(10)) {
+    if (now - last_event_ > base::Milliseconds(10)) {
       DispatchProgressEvent(instance_,
                             ProgressEvent(PP_NACL_EVENT_PROGRESS,
                                           url,
diff --git a/components/navigation_interception/intercept_navigation_delegate.cc b/components/navigation_interception/intercept_navigation_delegate.cc
index a4e4d29..897acfd 100644
--- a/components/navigation_interception/intercept_navigation_delegate.cc
+++ b/components/navigation_interception/intercept_navigation_delegate.cc
@@ -122,8 +122,7 @@
   bool has_user_gesture_carryover =
       !navigation_params_to_use.has_user_gesture() &&
       base::TimeTicks::Now() - last_user_gesture_carryover_timestamp_ <=
-          base::TimeDelta::FromSeconds(
-              kMaxValidityOfUserGestureCarryoverInSeconds);
+          base::Seconds(kMaxValidityOfUserGestureCarryoverInSeconds);
 
   ScopedJavaLocalRef<jobject> jobject_params = CreateJavaNavigationParams(
       env, navigation_params_to_use, has_user_gesture_carryover);
diff --git a/components/net_log/net_log_proxy_source_unittest.cc b/components/net_log/net_log_proxy_source_unittest.cc
index 9c47747..2ca91f3e 100644
--- a/components/net_log/net_log_proxy_source_unittest.cc
+++ b/components/net_log/net_log_proxy_source_unittest.cc
@@ -155,7 +155,7 @@
       std::move(proxy_sink_remote));
 
   // No capture modes are set, so should not get proxied.
-  task_environment.FastForwardBy(base::TimeDelta::FromSeconds(9876));
+  task_environment.FastForwardBy(base::Seconds(9876));
 
   net::NetLogWithSource source0 = net::NetLogWithSource::Make(
       net::NetLog::Get(), net::NetLogSourceType::URL_REQUEST);
@@ -170,16 +170,16 @@
   // start listening for NetLog events.
   capture_mode_waiter->WaitForCaptureModeUpdate();
 
-  task_environment.FastForwardBy(base::TimeDelta::FromSeconds(5432));
+  task_environment.FastForwardBy(base::Seconds(5432));
   base::TimeTicks source1_start_ticks = base::TimeTicks::Now();
 
   net::NetLogWithSource source1 = net::NetLogWithSource::Make(
       net::NetLog::Get(), net::NetLogSourceType::SOCKET);
-  task_environment.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment.FastForwardBy(base::Seconds(1));
   base::TimeTicks source1_event0_ticks = base::TimeTicks::Now();
   source1.BeginEvent(net::NetLogEventType::SOCKET_ALIVE);
 
-  task_environment.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment.FastForwardBy(base::Seconds(10));
   base::TimeTicks source1_event1_ticks = base::TimeTicks::Now();
   // Add the second event from a different thread. Use a lambda instead of
   // binding to NetLogWithSource::EndEvent since EndEvent is overloaded and
diff --git a/components/network_hints/renderer/renderer_dns_prefetch.cc b/components/network_hints/renderer/renderer_dns_prefetch.cc
index 5acce83..e65032f 100644
--- a/components/network_hints/renderer/renderer_dns_prefetch.cc
+++ b/components/network_hints/renderer/renderer_dns_prefetch.cc
@@ -61,7 +61,7 @@
           FROM_HERE,
           base::BindOnce(&RendererDnsPrefetch::SubmitHostnames,
                          weak_factory_.GetWeakPtr()),
-          base::TimeDelta::FromMilliseconds(10));
+          base::Milliseconds(10));
     }
     return;
   }
@@ -100,7 +100,7 @@
         FROM_HERE,
         base::BindOnce(&RendererDnsPrefetch::SubmitHostnames,
                        weak_factory_.GetWeakPtr()),
-        base::TimeDelta::FromMilliseconds(10));
+        base::Milliseconds(10));
   } else {
     // TODO(JAR): Should we only clear the map when we navigate, or reload?
     domain_map_.clear();
diff --git a/components/network_session_configurator/browser/network_session_configurator.cc b/components/network_session_configurator/browser/network_session_configurator.cc
index 332b002..c767d81d 100644
--- a/components/network_session_configurator/browser/network_session_configurator.cc
+++ b/components/network_session_configurator/browser/network_session_configurator.cc
@@ -559,28 +559,26 @@
         GetQuicIdleConnectionTimeoutSeconds(quic_trial_params);
     if (idle_connection_timeout_seconds != 0) {
       quic_params->idle_connection_timeout =
-          base::TimeDelta::FromSeconds(idle_connection_timeout_seconds);
+          base::Seconds(idle_connection_timeout_seconds);
     }
     int reduced_ping_timeout_seconds =
         GetQuicReducedPingTimeoutSeconds(quic_trial_params);
     if (reduced_ping_timeout_seconds > 0 &&
         reduced_ping_timeout_seconds < quic::kPingTimeoutSecs) {
       quic_params->reduced_ping_timeout =
-          base::TimeDelta::FromSeconds(reduced_ping_timeout_seconds);
+          base::Seconds(reduced_ping_timeout_seconds);
     }
     int max_time_before_crypto_handshake_seconds =
         GetQuicMaxTimeBeforeCryptoHandshakeSeconds(quic_trial_params);
     if (max_time_before_crypto_handshake_seconds > 0) {
       quic_params->max_time_before_crypto_handshake =
-          base::TimeDelta::FromSeconds(
-              max_time_before_crypto_handshake_seconds);
+          base::Seconds(max_time_before_crypto_handshake_seconds);
     }
     int max_idle_time_before_crypto_handshake_seconds =
         GetQuicMaxIdleTimeBeforeCryptoHandshakeSeconds(quic_trial_params);
     if (max_idle_time_before_crypto_handshake_seconds > 0) {
       quic_params->max_idle_time_before_crypto_handshake =
-          base::TimeDelta::FromSeconds(
-              max_idle_time_before_crypto_handshake_seconds);
+          base::Seconds(max_idle_time_before_crypto_handshake_seconds);
     }
     quic_params->estimate_initial_rtt =
         ShouldQuicEstimateInitialRtt(quic_trial_params);
@@ -600,8 +598,7 @@
         GetQuicInitialRttForHandshakeMilliseconds(quic_trial_params);
     if (initial_rtt_for_handshake_milliseconds > 0) {
       quic_params->initial_rtt_for_handshake =
-          base::TimeDelta::FromMilliseconds(
-              initial_rtt_for_handshake_milliseconds);
+          base::Milliseconds(initial_rtt_for_handshake_milliseconds);
     }
 
     quic_params->disable_tls_zero_rtt =
@@ -614,8 +611,7 @@
         GetQuicRetransmittableOnWireTimeoutMilliseconds(quic_trial_params);
     if (retransmittable_on_wire_timeout_milliseconds > 0) {
       quic_params->retransmittable_on_wire_timeout =
-          base::TimeDelta::FromMilliseconds(
-              retransmittable_on_wire_timeout_milliseconds);
+          base::Milliseconds(retransmittable_on_wire_timeout_milliseconds);
     }
     quic_params->migrate_idle_sessions =
         ShouldQuicMigrateIdleSessions(quic_trial_params);
@@ -623,13 +619,13 @@
         GetQuicIdleSessionMigrationPeriodSeconds(quic_trial_params);
     if (idle_session_migration_period_seconds > 0) {
       quic_params->idle_session_migration_period =
-          base::TimeDelta::FromSeconds(idle_session_migration_period_seconds);
+          base::Seconds(idle_session_migration_period_seconds);
     }
     int max_time_on_non_default_network_seconds =
         GetQuicMaxTimeOnNonDefaultNetworkSeconds(quic_trial_params);
     if (max_time_on_non_default_network_seconds > 0) {
       quic_params->max_time_on_non_default_network =
-          base::TimeDelta::FromSeconds(max_time_on_non_default_network_seconds);
+          base::Seconds(max_time_on_non_default_network_seconds);
     }
     int max_migrations_to_non_default_network_on_write_error =
         GetQuicMaxNumMigrationsToNonDefaultNetworkOnWriteError(
diff --git a/components/network_session_configurator/browser/network_session_configurator_unittest.cc b/components/network_session_configurator/browser/network_session_configurator_unittest.cc
index 5f41203..ecea8dbb 100644
--- a/components/network_session_configurator/browser/network_session_configurator_unittest.cc
+++ b/components/network_session_configurator/browser/network_session_configurator_unittest.cc
@@ -81,11 +81,11 @@
   EXPECT_FALSE(quic_params_.close_sessions_on_ip_change);
   EXPECT_FALSE(quic_params_.goaway_sessions_on_ip_change);
   EXPECT_EQ(net::kIdleConnectionTimeout, quic_params_.idle_connection_timeout);
-  EXPECT_EQ(base::TimeDelta::FromSeconds(quic::kPingTimeoutSecs),
+  EXPECT_EQ(base::Seconds(quic::kPingTimeoutSecs),
             quic_params_.reduced_ping_timeout);
-  EXPECT_EQ(base::TimeDelta::FromSeconds(quic::kMaxTimeForCryptoHandshakeSecs),
+  EXPECT_EQ(base::Seconds(quic::kMaxTimeForCryptoHandshakeSecs),
             quic_params_.max_time_before_crypto_handshake);
-  EXPECT_EQ(base::TimeDelta::FromSeconds(quic::kInitialIdleTimeoutSecs),
+  EXPECT_EQ(base::Seconds(quic::kInitialIdleTimeoutSecs),
             quic_params_.max_idle_time_before_crypto_handshake);
   EXPECT_FALSE(quic_params_.estimate_initial_rtt);
   EXPECT_FALSE(quic_params_.migrate_sessions_on_network_change_v2);
@@ -252,7 +252,7 @@
 
   ParseFieldTrials();
 
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1000),
+  EXPECT_EQ(base::Milliseconds(1000),
             quic_params_.retransmittable_on_wire_timeout);
 }
 
@@ -265,8 +265,7 @@
 
   ParseFieldTrials();
 
-  EXPECT_EQ(base::TimeDelta::FromSeconds(300),
-            quic_params_.idle_connection_timeout);
+  EXPECT_EQ(base::Seconds(300), quic_params_.idle_connection_timeout);
 }
 
 TEST_F(NetworkSessionConfiguratorTest,
@@ -276,7 +275,7 @@
   variations::AssociateVariationParams("QUIC", "Enabled", field_trial_params);
   base::FieldTrialList::CreateFieldTrial("QUIC", "Enabled");
   ParseFieldTrials();
-  EXPECT_EQ(base::TimeDelta::FromSeconds(quic::kPingTimeoutSecs),
+  EXPECT_EQ(base::Seconds(quic::kPingTimeoutSecs),
             quic_params_.reduced_ping_timeout);
 }
 
@@ -287,7 +286,7 @@
   variations::AssociateVariationParams("QUIC", "Enabled", field_trial_params);
   base::FieldTrialList::CreateFieldTrial("QUIC", "Enabled");
   ParseFieldTrials();
-  EXPECT_EQ(base::TimeDelta::FromSeconds(quic::kPingTimeoutSecs),
+  EXPECT_EQ(base::Seconds(quic::kPingTimeoutSecs),
             quic_params_.reduced_ping_timeout);
 }
 
@@ -298,8 +297,7 @@
   variations::AssociateVariationParams("QUIC", "Enabled", field_trial_params);
   base::FieldTrialList::CreateFieldTrial("QUIC", "Enabled");
   ParseFieldTrials();
-  EXPECT_EQ(base::TimeDelta::FromSeconds(10),
-            quic_params_.reduced_ping_timeout);
+  EXPECT_EQ(base::Seconds(10), quic_params_.reduced_ping_timeout);
 }
 
 TEST_F(NetworkSessionConfiguratorTest,
@@ -309,8 +307,7 @@
   variations::AssociateVariationParams("QUIC", "Enabled", field_trial_params);
   base::FieldTrialList::CreateFieldTrial("QUIC", "Enabled");
   ParseFieldTrials();
-  EXPECT_EQ(base::TimeDelta::FromSeconds(7),
-            quic_params_.max_time_before_crypto_handshake);
+  EXPECT_EQ(base::Seconds(7), quic_params_.max_time_before_crypto_handshake);
 }
 
 TEST_F(NetworkSessionConfiguratorTest,
@@ -320,7 +317,7 @@
   variations::AssociateVariationParams("QUIC", "Enabled", field_trial_params);
   base::FieldTrialList::CreateFieldTrial("QUIC", "Enabled");
   ParseFieldTrials();
-  EXPECT_EQ(base::TimeDelta::FromSeconds(quic::kMaxTimeForCryptoHandshakeSecs),
+  EXPECT_EQ(base::Seconds(quic::kMaxTimeForCryptoHandshakeSecs),
             quic_params_.max_time_before_crypto_handshake);
 }
 
@@ -331,7 +328,7 @@
   variations::AssociateVariationParams("QUIC", "Enabled", field_trial_params);
   base::FieldTrialList::CreateFieldTrial("QUIC", "Enabled");
   ParseFieldTrials();
-  EXPECT_EQ(base::TimeDelta::FromSeconds(11),
+  EXPECT_EQ(base::Seconds(11),
             quic_params_.max_idle_time_before_crypto_handshake);
 }
 
@@ -342,7 +339,7 @@
   variations::AssociateVariationParams("QUIC", "Enabled", field_trial_params);
   base::FieldTrialList::CreateFieldTrial("QUIC", "Enabled");
   ParseFieldTrials();
-  EXPECT_EQ(base::TimeDelta::FromSeconds(quic::kInitialIdleTimeoutSecs),
+  EXPECT_EQ(base::Seconds(quic::kInitialIdleTimeoutSecs),
             quic_params_.max_idle_time_before_crypto_handshake);
 }
 
@@ -427,8 +424,7 @@
   ParseFieldTrials();
 
   EXPECT_TRUE(quic_params_.migrate_idle_sessions);
-  EXPECT_EQ(base::TimeDelta::FromSeconds(15),
-            quic_params_.idle_session_migration_period);
+  EXPECT_EQ(base::Seconds(15), quic_params_.idle_session_migration_period);
 }
 
 TEST_F(NetworkSessionConfiguratorTest,
@@ -440,8 +436,7 @@
 
   ParseFieldTrials();
 
-  EXPECT_EQ(base::TimeDelta::FromSeconds(10),
-            quic_params_.max_time_on_non_default_network);
+  EXPECT_EQ(base::Seconds(10), quic_params_.max_time_on_non_default_network);
 }
 
 TEST_F(
@@ -903,8 +898,7 @@
 
   ParseFieldTrials();
 
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(500),
-            quic_params_.initial_rtt_for_handshake);
+  EXPECT_EQ(base::Milliseconds(500), quic_params_.initial_rtt_for_handshake);
 }
 
 class NetworkSessionConfiguratorWithQuicVersionTest
diff --git a/components/network_time/network_time_tracker.cc b/components/network_time/network_time_tracker.cc
index e7394b5..eee2873 100644
--- a/components/network_time/network_time_tracker.cc
+++ b/components/network_time/network_time_tracker.cc
@@ -151,9 +151,9 @@
   const std::string param = variations::GetVariationParamValueByFeature(
       kNetworkTimeServiceQuerying, kVariationsServiceCheckTimeIntervalSeconds);
   if (!param.empty() && base::StringToInt64(param, &seconds) && seconds > 0) {
-    return base::TimeDelta::FromSeconds(seconds);
+    return base::Seconds(seconds);
   }
-  return base::TimeDelta::FromSeconds(kCheckTimeIntervalSeconds);
+  return base::Seconds(kCheckTimeIntervalSeconds);
 }
 
 double RandomQueryProbability() {
@@ -186,7 +186,7 @@
     scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory)
     : server_url_(kTimeServiceURL),
       max_response_size_(1024),
-      backoff_(base::TimeDelta::FromMinutes(kBackoffMinutes)),
+      backoff_(base::Minutes(kBackoffMinutes)),
       url_loader_factory_(std::move(url_loader_factory)),
       clock_(std::move(clock)),
       tick_clock_(std::move(tick_clock)),
@@ -212,8 +212,7 @@
   base::Time now = clock_->Now();
   if (ticks_at_last_measurement_ > tick_clock_->NowTicks() ||
       time_at_last_measurement_ > now ||
-      now - time_at_last_measurement_ >
-          base::TimeDelta::FromDays(kSerializedDataMaxAgeDays)) {
+      now - time_at_last_measurement_ > base::Days(kSerializedDataMaxAgeDays)) {
     // Drop saved mapping if either clock has run backward, or the data are too
     // old.
     pref_service_->ClearPref(prefs::kNetworkTimeMapping);
@@ -225,7 +224,7 @@
   query_signer_ =
       client_update_protocol::Ecdsa::Create(kKeyVersion, public_key);
 
-  QueueCheckTime(base::TimeDelta::FromSeconds(0));
+  QueueCheckTime(base::Seconds(0));
 }
 
 NetworkTimeTracker::~NetworkTimeTracker() {
@@ -263,8 +262,8 @@
   // was posted, 4 and 5 are the Now() and NowTicks() above, and 6 and 7 will be
   // the Now() and NowTicks() in GetNetworkTime().
   network_time_uncertainty_ =
-      resolution + latency + kNumTimeMeasurements *
-      base::TimeDelta::FromMilliseconds(kTicksResolutionMs);
+      resolution + latency +
+      kNumTimeMeasurements * base::Milliseconds(kTicksResolutionMs);
 
   base::DictionaryValue time_mapping;
   time_mapping.SetDouble(kPrefTime, time_at_last_measurement_.ToJsTime());
@@ -358,16 +357,15 @@
   base::TimeDelta time_delta = clock_->Now() - time_at_last_measurement_;
   if (time_delta.InMilliseconds() < 0) {  // Has wall clock run backward?
     DVLOG(1) << "Discarding network time due to wall clock running backward";
-    LOCAL_HISTOGRAM_CUSTOM_TIMES(
-        "NetworkTimeTracker.WallClockRanBackwards", time_delta.magnitude(),
-        base::TimeDelta::FromSeconds(1), base::TimeDelta::FromDays(7), 50);
+    LOCAL_HISTOGRAM_CUSTOM_TIMES("NetworkTimeTracker.WallClockRanBackwards",
+                                 time_delta.magnitude(), base::Seconds(1),
+                                 base::Days(7), 50);
     network_time_at_last_measurement_ = base::Time();
     return NETWORK_TIME_SYNC_LOST;
   }
   // Now we know that both |tick_delta| and |time_delta| are positive.
   base::TimeDelta divergence = tick_delta - time_delta;
-  if (divergence.magnitude() >
-      base::TimeDelta::FromSeconds(kClockDivergenceSeconds)) {
+  if (divergence.magnitude() > base::Seconds(kClockDivergenceSeconds)) {
     // Most likely either the machine has suspended, or the wall clock has been
     // reset.
     DVLOG(1) << "Discarding network time due to clocks diverging";
@@ -379,11 +377,11 @@
     if (divergence.InMilliseconds() < 0) {
       LOCAL_HISTOGRAM_CUSTOM_TIMES(
           "NetworkTimeTracker.ClockDivergence.Negative", divergence.magnitude(),
-          base::TimeDelta::FromSeconds(60), base::TimeDelta::FromDays(7), 50);
+          base::Seconds(60), base::Days(7), 50);
     } else {
       LOCAL_HISTOGRAM_CUSTOM_TIMES(
           "NetworkTimeTracker.ClockDivergence.Positive", divergence.magnitude(),
-          base::TimeDelta::FromSeconds(60), base::TimeDelta::FromDays(7), 50);
+          base::Seconds(60), base::Days(7), 50);
     }
     network_time_at_last_measurement_ = base::Time();
     return NETWORK_TIME_SYNC_LOST;
@@ -542,8 +540,7 @@
   // to make the server's response unpredictable.
   base::Time current_time = base::Time::FromJsTime(current_time_millis);
   base::TimeDelta resolution =
-      base::TimeDelta::FromMilliseconds(1) +
-      base::TimeDelta::FromSeconds(kTimeServerMaxSkewSeconds);
+      base::Milliseconds(1) + base::Seconds(kTimeServerMaxSkewSeconds);
 
   // Record histograms for the latency of the time query and the time delta
   // between time fetches.
@@ -552,8 +549,7 @@
   if (!last_fetched_time_.is_null()) {
     LOCAL_HISTOGRAM_CUSTOM_TIMES("NetworkTimeTracker.TimeBetweenFetches",
                                  current_time - last_fetched_time_,
-                                 base::TimeDelta::FromHours(1),
-                                 base::TimeDelta::FromDays(7), 50);
+                                 base::Hours(1), base::Days(7), 50);
   }
   last_fetched_time_ = current_time;
 
@@ -572,11 +568,11 @@
   // long time.
   if (!UpdateTimeFromResponse(
           std::move(response_body))) {  // On error, back off.
-    if (backoff_ < base::TimeDelta::FromDays(2)) {
+    if (backoff_ < base::Days(2)) {
       backoff_ *= 2;
     }
   } else {
-    backoff_ = base::TimeDelta::FromMinutes(kBackoffMinutes);
+    backoff_ = base::Minutes(kBackoffMinutes);
   }
   QueueCheckTime(backoff_);
   time_fetcher_.reset();
diff --git a/components/network_time/network_time_tracker_unittest.cc b/components/network_time/network_time_tracker_unittest.cc
index 937bae7..85a5dfd1 100644
--- a/components/network_time/network_time_tracker_unittest.cc
+++ b/components/network_time/network_time_tracker_unittest.cc
@@ -68,13 +68,13 @@
         shared_url_loader_factory_);
 
     // Do this to be sure that |is_null| returns false.
-    clock_->Advance(base::TimeDelta::FromDays(111));
-    tick_clock_->Advance(base::TimeDelta::FromDays(222));
+    clock_->Advance(base::Days(111));
+    tick_clock_->Advance(base::Days(222));
 
     // Can not be smaller than 15, it's the NowFromSystemTime() resolution.
-    resolution_ = base::TimeDelta::FromMilliseconds(17);
-    latency_ = base::TimeDelta::FromMilliseconds(50);
-    adjustment_ = 7 * base::TimeDelta::FromMilliseconds(kTicksResolutionMs);
+    resolution_ = base::Milliseconds(17);
+    latency_ = base::Milliseconds(50);
+    adjustment_ = 7 * base::Milliseconds(kTicksResolutionMs);
   }
 
   // Replaces |tracker_| with a new object, while preserving the
@@ -188,7 +188,7 @@
 
   // Simulate that it look a long time (1888us) for the browser thread to get
   // around to executing the update.
-  AdvanceBoth(base::TimeDelta::FromMicroseconds(1888));
+  AdvanceBoth(base::Microseconds(1888));
   UpdateNetworkTime(in_network_time, resolution_, latency_, posting_time);
 
   base::Time out_network_time;
@@ -219,7 +219,7 @@
 
 TEST_F(NetworkTimeTrackerTest, ClockIsWack) {
   // Now let's assume the system clock is completely wrong.
-  base::Time in_network_time = clock_->Now() - base::TimeDelta::FromDays(90);
+  base::Time in_network_time = clock_->Now() - base::Days(90);
   UpdateNetworkTime(in_network_time - latency_ / 2, resolution_, latency_,
                     tick_clock_->NowTicks());
 
@@ -239,7 +239,7 @@
   UpdateNetworkTime(in_network_time - latency_ / 2, resolution_, latency_,
                     tick_clock_->NowTicks());
 
-  base::TimeDelta small = base::TimeDelta::FromSeconds(30);
+  base::TimeDelta small = base::Seconds(30);
   tick_clock_->Advance(small);
   base::Time out_network_time;
   base::TimeDelta out_uncertainty;
@@ -267,7 +267,7 @@
   EXPECT_EQ(resolution_ + latency_ + adjustment_, uncertainty);
 
   // Fake a wait to make sure we keep tracking.
-  AdvanceBoth(base::TimeDelta::FromSeconds(1));
+  AdvanceBoth(base::Seconds(1));
   EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_AVAILABLE,
             tracker_->GetNetworkTime(&out_network_time, &uncertainty));
   EXPECT_EQ(clock_->Now(), out_network_time);
@@ -276,7 +276,7 @@
   // And one more time.
   UpdateNetworkTime(clock_->Now() - latency_ / 2, resolution_, latency_,
                     tick_clock_->NowTicks());
-  AdvanceBoth(base::TimeDelta::FromSeconds(1));
+  AdvanceBoth(base::Seconds(1));
   EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_AVAILABLE,
             tracker_->GetNetworkTime(&out_network_time, &uncertainty));
   EXPECT_EQ(clock_->Now(), out_network_time);
@@ -291,8 +291,8 @@
   // Simulate the wall clock advancing faster than the tick clock.
   UpdateNetworkTime(clock_->Now(), resolution_, latency_,
                     tick_clock_->NowTicks());
-  tick_clock_->Advance(base::TimeDelta::FromSeconds(1));
-  clock_->Advance(base::TimeDelta::FromDays(1));
+  tick_clock_->Advance(base::Seconds(1));
+  clock_->Advance(base::Days(1));
   base::Time out_network_time;
   EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_SYNC_LOST,
             tracker_->GetNetworkTime(&out_network_time, nullptr));
@@ -302,7 +302,7 @@
   // The recorded clock divergence should be 1 second - 1 day in seconds.
   histograms.ExpectBucketCount(
       kClockDivergenceNegativeHistogram,
-      base::TimeDelta::FromSeconds(kOneDayInSeconds - 1).InMilliseconds(), 1);
+      base::Seconds(kOneDayInSeconds - 1).InMilliseconds(), 1);
 }
 
 TEST_F(NetworkTimeTrackerTest, TickClockSpringsForward) {
@@ -313,8 +313,8 @@
   // Simulate the tick clock advancing faster than the wall clock.
   UpdateNetworkTime(clock_->Now(), resolution_, latency_,
                     tick_clock_->NowTicks());
-  tick_clock_->Advance(base::TimeDelta::FromDays(1));
-  clock_->Advance(base::TimeDelta::FromSeconds(1));
+  tick_clock_->Advance(base::Days(1));
+  clock_->Advance(base::Seconds(1));
   base::Time out_network_time;
   EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_SYNC_LOST,
             tracker_->GetNetworkTime(&out_network_time, nullptr));
@@ -324,7 +324,7 @@
   // The recorded clock divergence should be 1 day - 1 second.
   histograms.ExpectBucketCount(
       kClockDivergencePositiveHistogram,
-      base::TimeDelta::FromSeconds(kOneDayInSeconds - 1).InMilliseconds(), 1);
+      base::Seconds(kOneDayInSeconds - 1).InMilliseconds(), 1);
 }
 
 TEST_F(NetworkTimeTrackerTest, FallBack) {
@@ -335,8 +335,8 @@
   // Simulate the wall clock running backward.
   UpdateNetworkTime(clock_->Now(), resolution_, latency_,
                     tick_clock_->NowTicks());
-  tick_clock_->Advance(base::TimeDelta::FromSeconds(1));
-  clock_->Advance(base::TimeDelta::FromDays(-1));
+  tick_clock_->Advance(base::Seconds(1));
+  clock_->Advance(base::Days(-1));
   base::Time out_network_time;
   EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_SYNC_LOST,
             tracker_->GetNetworkTime(&out_network_time, nullptr));
@@ -345,7 +345,7 @@
   histograms.ExpectTotalCount(kWallClockBackwardsHistogram, 1);
   histograms.ExpectBucketCount(
       kWallClockBackwardsHistogram,
-      base::TimeDelta::FromSeconds(kOneDayInSeconds - 1).InMilliseconds(), 1);
+      base::Seconds(kOneDayInSeconds - 1).InMilliseconds(), 1);
 }
 
 TEST_F(NetworkTimeTrackerTest, SuspendAndResume) {
@@ -353,7 +353,7 @@
   // would happen in a suspend+resume cycle.
   UpdateNetworkTime(clock_->Now(), resolution_, latency_,
                     tick_clock_->NowTicks());
-  clock_->Advance(base::TimeDelta::FromHours(1));
+  clock_->Advance(base::Hours(1));
   base::Time out_network_time;
   EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_SYNC_LOST,
             tracker_->GetNetworkTime(&out_network_time, nullptr));
@@ -362,7 +362,7 @@
 TEST_F(NetworkTimeTrackerTest, Serialize) {
   // Test that we can serialize and deserialize state and get consistent
   // results.
-  base::Time in_network_time = clock_->Now() - base::TimeDelta::FromDays(90);
+  base::Time in_network_time = clock_->Now() - base::Days(90);
   UpdateNetworkTime(in_network_time - latency_ / 2, resolution_, latency_,
                     tick_clock_->NowTicks());
   base::Time out_network_time;
@@ -373,7 +373,7 @@
   EXPECT_EQ(resolution_ + latency_ + adjustment_, out_uncertainty);
 
   // 6 days is just under the threshold for discarding data.
-  base::TimeDelta delta = base::TimeDelta::FromDays(6);
+  base::TimeDelta delta = base::Days(6);
   AdvanceBoth(delta);
   Reset();
   EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_AVAILABLE,
@@ -385,7 +385,7 @@
 TEST_F(NetworkTimeTrackerTest, DeserializeOldFormat) {
   // Test that deserializing old data (which do not record the uncertainty and
   // tick clock) causes the serialized data to be ignored.
-  base::Time in_network_time = clock_->Now() - base::TimeDelta::FromDays(90);
+  base::Time in_network_time = clock_->Now() - base::Days(90);
   UpdateNetworkTime(in_network_time - latency_ / 2, resolution_, latency_,
                     tick_clock_->NowTicks());
 
@@ -409,13 +409,13 @@
 TEST_F(NetworkTimeTrackerTest, SerializeWithLongDelay) {
   // Test that if the serialized data are more than a week old, they are
   // discarded.
-  base::Time in_network_time = clock_->Now() - base::TimeDelta::FromDays(90);
+  base::Time in_network_time = clock_->Now() - base::Days(90);
   UpdateNetworkTime(in_network_time - latency_ / 2, resolution_, latency_,
                     tick_clock_->NowTicks());
   base::Time out_network_time;
   EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_AVAILABLE,
             tracker_->GetNetworkTime(&out_network_time, nullptr));
-  AdvanceBoth(base::TimeDelta::FromDays(8));
+  AdvanceBoth(base::Days(8));
   Reset();
   EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SYNC_ATTEMPT,
             tracker_->GetNetworkTime(&out_network_time, nullptr));
@@ -424,13 +424,13 @@
 TEST_F(NetworkTimeTrackerTest, SerializeWithTickClockAdvance) {
   // Test that serialized data are discarded if the wall clock and tick clock
   // have not advanced consistently since data were serialized.
-  base::Time in_network_time = clock_->Now() - base::TimeDelta::FromDays(90);
+  base::Time in_network_time = clock_->Now() - base::Days(90);
   UpdateNetworkTime(in_network_time - latency_ / 2, resolution_, latency_,
                     tick_clock_->NowTicks());
   base::Time out_network_time;
   EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_AVAILABLE,
             tracker_->GetNetworkTime(&out_network_time, nullptr));
-  tick_clock_->Advance(base::TimeDelta::FromDays(1));
+  tick_clock_->Advance(base::Days(1));
   Reset();
   EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_SYNC_LOST,
             tracker_->GetNetworkTime(&out_network_time, nullptr));
@@ -439,14 +439,14 @@
 TEST_F(NetworkTimeTrackerTest, SerializeWithWallClockAdvance) {
   // Test that serialized data are discarded if the wall clock and tick clock
   // have not advanced consistently since data were serialized.
-  base::Time in_network_time = clock_->Now() - base::TimeDelta::FromDays(90);
+  base::Time in_network_time = clock_->Now() - base::Days(90);
   UpdateNetworkTime(in_network_time - latency_ / 2, resolution_, latency_,
                     tick_clock_->NowTicks());
 
   base::Time out_network_time;
   EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_AVAILABLE,
             tracker_->GetNetworkTime(&out_network_time, nullptr));
-  clock_->Advance(base::TimeDelta::FromDays(1));
+  clock_->Advance(base::Days(1));
   Reset();
   EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_SYNC_LOST,
             tracker_->GetNetworkTime(&out_network_time, nullptr));
@@ -461,8 +461,7 @@
   EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SYNC_ATTEMPT,
             tracker_->GetNetworkTime(&out_network_time, nullptr));
   // First query should happen soon.
-  EXPECT_EQ(base::TimeDelta::FromMinutes(0),
-            tracker_->GetTimerDelayForTesting());
+  EXPECT_EQ(base::Minutes(0), tracker_->GetTimerDelayForTesting());
 
   test_server_->RegisterRequestHandler(
       base::BindRepeating(&GoodTimeResponseHandler));
@@ -474,12 +473,10 @@
   EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_AVAILABLE,
             tracker_->GetNetworkTime(&out_network_time, nullptr));
   EXPECT_EQ(base::Time::UnixEpoch() +
-                base::TimeDelta::FromMilliseconds(
-                    (uint64_t)kGoodTimeResponseHandlerJsTime[0]),
+                base::Milliseconds((uint64_t)kGoodTimeResponseHandlerJsTime[0]),
             out_network_time);
   // Should see no backoff in the success case.
-  EXPECT_EQ(base::TimeDelta::FromMinutes(60),
-            tracker_->GetTimerDelayForTesting());
+  EXPECT_EQ(base::Minutes(60), tracker_->GetTimerDelayForTesting());
 
   histograms.ExpectTotalCount(kFetchFailedHistogram, 0);
   histograms.ExpectTotalCount(kFetchValidHistogram, 1);
@@ -504,12 +501,10 @@
   EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_AVAILABLE,
             tracker_->GetNetworkTime(&out_network_time, nullptr));
   EXPECT_EQ(base::Time::UnixEpoch() +
-                base::TimeDelta::FromMilliseconds(
-                    (uint64_t)kGoodTimeResponseHandlerJsTime[0]),
+                base::Milliseconds((uint64_t)kGoodTimeResponseHandlerJsTime[0]),
             out_network_time);
   // Should see no backoff in the success case.
-  EXPECT_EQ(base::TimeDelta::FromMinutes(60),
-            tracker_->GetTimerDelayForTesting());
+  EXPECT_EQ(base::Minutes(60), tracker_->GetTimerDelayForTesting());
 }
 
 // Tests that when StartTimeFetch() is called with a query already in
@@ -534,12 +529,10 @@
   EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_AVAILABLE,
             tracker_->GetNetworkTime(&out_network_time, nullptr));
   EXPECT_EQ(base::Time::UnixEpoch() +
-                base::TimeDelta::FromMilliseconds(
-                    (uint64_t)kGoodTimeResponseHandlerJsTime[0]),
+                base::Milliseconds((uint64_t)kGoodTimeResponseHandlerJsTime[0]),
             out_network_time);
   // Should see no backoff in the success case.
-  EXPECT_EQ(base::TimeDelta::FromMinutes(60),
-            tracker_->GetTimerDelayForTesting());
+  EXPECT_EQ(base::Minutes(60), tracker_->GetTimerDelayForTesting());
 }
 
 // Tests that StartTimeFetch() returns false if called while network
@@ -592,15 +585,13 @@
   // No query should be started so long as NetworkTimeTracker is synced, but the
   // next check should happen soon.
   EXPECT_FALSE(tracker_->QueryTimeServiceForTesting());
-  EXPECT_EQ(base::TimeDelta::FromMinutes(6),
-            tracker_->GetTimerDelayForTesting());
+  EXPECT_EQ(base::Minutes(6), tracker_->GetTimerDelayForTesting());
 
   field_trial_test_->SetNetworkQueriesWithVariationsService(
       true, 1.0, NetworkTimeTracker::FETCHES_IN_BACKGROUND_AND_ON_DEMAND);
   EXPECT_TRUE(tracker_->QueryTimeServiceForTesting());
   tracker_->WaitForFetchForTesting(123123123);
-  EXPECT_EQ(base::TimeDelta::FromMinutes(60),
-            tracker_->GetTimerDelayForTesting());
+  EXPECT_EQ(base::Minutes(60), tracker_->GetTimerDelayForTesting());
 }
 
 TEST_F(NetworkTimeTrackerTest, NoNetworkQueryWhileFeatureDisabled) {
@@ -609,8 +600,7 @@
       false, 0.0, NetworkTimeTracker::FETCHES_IN_BACKGROUND_AND_ON_DEMAND);
   EXPECT_FALSE(tracker_->QueryTimeServiceForTesting());
   // The timer is not started when the feature is disabled.
-  EXPECT_EQ(base::TimeDelta::FromMinutes(0),
-            tracker_->GetTimerDelayForTesting());
+  EXPECT_EQ(base::Minutes(0), tracker_->GetTimerDelayForTesting());
 
   // Enable time queries and check that a query is sent.
   field_trial_test_->SetNetworkQueriesWithVariationsService(
@@ -634,8 +624,7 @@
   base::Time out_network_time;
   EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SUCCESSFUL_SYNC,
             tracker_->GetNetworkTime(&out_network_time, nullptr));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(120),
-            tracker_->GetTimerDelayForTesting());
+  EXPECT_EQ(base::Minutes(120), tracker_->GetTimerDelayForTesting());
 
   histograms.ExpectTotalCount(kFetchFailedHistogram, 0);
   histograms.ExpectTotalCount(kFetchValidHistogram, 1);
@@ -669,8 +658,7 @@
   base::Time out_network_time;
   EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SUCCESSFUL_SYNC,
             tracker_->GetNetworkTime(&out_network_time, nullptr));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(120),
-            tracker_->GetTimerDelayForTesting());
+  EXPECT_EQ(base::Minutes(120), tracker_->GetTimerDelayForTesting());
 
   histograms.ExpectTotalCount(kFetchFailedHistogram, 0);
   histograms.ExpectTotalCount(kFetchValidHistogram, 1);
@@ -693,8 +681,7 @@
   EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SUCCESSFUL_SYNC,
             tracker_->GetNetworkTime(&out_network_time, nullptr));
   // Should see backoff in the error case.
-  EXPECT_EQ(base::TimeDelta::FromMinutes(120),
-            tracker_->GetTimerDelayForTesting());
+  EXPECT_EQ(base::Minutes(120), tracker_->GetTimerDelayForTesting());
 
   histograms.ExpectTotalCount(kFetchFailedHistogram, 1);
   // There was no network error, so the histogram is recorded as
@@ -727,8 +714,7 @@
   EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SUCCESSFUL_SYNC,
             tracker_->GetNetworkTime(&out_network_time, nullptr));
   // Should see backoff in the error case.
-  EXPECT_EQ(base::TimeDelta::FromMinutes(120),
-            tracker_->GetTimerDelayForTesting());
+  EXPECT_EQ(base::Minutes(120), tracker_->GetTimerDelayForTesting());
 
   histograms.ExpectTotalCount(kFetchFailedHistogram, 1);
   histograms.ExpectBucketCount(kFetchFailedHistogram, -net::ERR_EMPTY_RESPONSE,
@@ -908,7 +894,7 @@
 
   // Trigger a second query, which should cause the delta from the first
   // query to be recorded.
-  clock_->Advance(base::TimeDelta::FromHours(1));
+  clock_->Advance(base::Hours(1));
   EXPECT_TRUE(tracker_->QueryTimeServiceForTesting());
   tracker_->WaitForFetchForTesting(123123123);
   EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_AVAILABLE,
diff --git a/components/no_state_prefetch/browser/no_state_prefetch_manager.cc b/components/no_state_prefetch/browser/no_state_prefetch_manager.cc
index db7ae90..df3e436 100644
--- a/components/no_state_prefetch/browser/no_state_prefetch_manager.cc
+++ b/components/no_state_prefetch/browser/no_state_prefetch_manager.cc
@@ -66,13 +66,11 @@
 namespace {
 
 // Time interval at which periodic cleanups are performed.
-constexpr base::TimeDelta kPeriodicCleanupInterval =
-    base::TimeDelta::FromMilliseconds(1000);
+constexpr base::TimeDelta kPeriodicCleanupInterval = base::Milliseconds(1000);
 
 // Time interval after which OnCloseWebContentsDeleter will schedule a
 // WebContents for deletion.
-constexpr base::TimeDelta kDeleteWithExtremePrejudice =
-    base::TimeDelta::FromSeconds(3);
+constexpr base::TimeDelta kDeleteWithExtremePrejudice = base::Seconds(3);
 
 // Length of prerender history, for display in chrome://net-internals
 constexpr int kHistoryLength = 100;
@@ -142,8 +140,7 @@
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
 
   last_prefetch_start_time_ =
-      GetCurrentTimeTicks() -
-      base::TimeDelta::FromMilliseconds(kMinTimeBetweenPrefetchesMs);
+      GetCurrentTimeTicks() - base::Milliseconds(kMinTimeBetweenPrefetchesMs);
 }
 
 NoStatePrefetchManager::~NoStatePrefetchManager() {
@@ -364,8 +361,8 @@
                                                         const GURL& url) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
 
-  CleanUpOldNavigations(&navigations_, base::TimeDelta::FromMilliseconds(
-                                           kNavigationRecordWindowMs));
+  CleanUpOldNavigations(&navigations_,
+                        base::Milliseconds(kNavigationRecordWindowMs));
   for (auto it = navigations_.rbegin(); it != navigations_.rend(); ++it) {
     if (it->url == url)
       return true;
@@ -412,8 +409,8 @@
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
 
   navigations_.emplace_back(url, GetCurrentTimeTicks(), ORIGIN_NONE);
-  CleanUpOldNavigations(&navigations_, base::TimeDelta::FromMilliseconds(
-                                           kNavigationRecordWindowMs));
+  CleanUpOldNavigations(&navigations_,
+                        base::Milliseconds(kNavigationRecordWindowMs));
 }
 
 struct NoStatePrefetchManager::NoStatePrefetchData::OrderByExpiryTime {
@@ -583,8 +580,7 @@
   GetPrefetchInformation(url, &prefetch_age, nullptr /* final_status*/,
                          nullptr /* origin */);
   if (!prefetch_age.is_zero() &&
-      prefetch_age <
-          base::TimeDelta::FromMinutes(net::HttpCache::kPrefetchReuseMins)) {
+      prefetch_age < base::Minutes(net::HttpCache::kPrefetchReuseMins)) {
     SkipNoStatePrefetchContentsAndMaybePreconnect(url, origin,
                                                   FINAL_STATUS_DUPLICATE);
     return nullptr;
@@ -721,7 +717,7 @@
 
   DeleteToDeletePrerenders();
 
-  CleanUpOldNavigations(&prefetches_, base::TimeDelta::FromMinutes(30));
+  CleanUpOldNavigations(&prefetches_, base::Minutes(30));
 }
 
 void NoStatePrefetchManager::PostCleanupTask() {
@@ -835,8 +831,7 @@
       GetCurrentTimeTicks() - last_prefetch_start_time_;
   if (!config_.rate_limit_enabled)
     return true;
-  return elapsed_time >=
-         base::TimeDelta::FromMilliseconds(kMinTimeBetweenPrefetchesMs);
+  return elapsed_time >= base::Milliseconds(kMinTimeBetweenPrefetchesMs);
 }
 
 void NoStatePrefetchManager::DeleteOldWebContents() {
@@ -848,7 +843,7 @@
     base::TimeDelta* prefetch_age,
     FinalStatus* final_status,
     Origin* origin) {
-  CleanUpOldNavigations(&prefetches_, base::TimeDelta::FromMinutes(30));
+  CleanUpOldNavigations(&prefetches_, base::Minutes(30));
 
   if (prefetch_age)
     *prefetch_age = base::TimeDelta();
diff --git a/components/no_state_prefetch/browser/prerender_config.cc b/components/no_state_prefetch/browser/prerender_config.cc
index 7208299..22642180 100644
--- a/components/no_state_prefetch/browser/prerender_config.cc
+++ b/components/no_state_prefetch/browser/prerender_config.cc
@@ -11,9 +11,9 @@
       max_link_concurrency(1),
       max_link_concurrency_per_launcher(1),
       rate_limit_enabled(true),
-      max_wait_to_launch(base::TimeDelta::FromMinutes(4)),
-      time_to_live(base::TimeDelta::FromMinutes(5)),
-      abandon_time_to_live(base::TimeDelta::FromSeconds(3)),
+      max_wait_to_launch(base::Minutes(4)),
+      time_to_live(base::Minutes(5)),
+      abandon_time_to_live(base::Seconds(3)),
       default_tab_bounds(640, 480) {}
 
 Config::~Config() {}
diff --git a/components/no_state_prefetch/browser/prerender_history_unittest.cc b/components/no_state_prefetch/browser/prerender_history_unittest.cc
index 9a0d67f..712e2a6 100644
--- a/components/no_state_prefetch/browser/prerender_history_unittest.cc
+++ b/components/no_state_prefetch/browser/prerender_history_unittest.cc
@@ -85,9 +85,9 @@
   const char* const kSecondUrl = "http://www.beta.com/";
   const FinalStatus kSecondFinalStatus = FINAL_STATUS_DUPLICATE;
   const Origin kSecondOrigin = ORIGIN_OMNIBOX;
-  PrerenderHistory::Entry entry_second(
-      GURL(kSecondUrl), kSecondFinalStatus, kSecondOrigin,
-      epoch_start + base::TimeDelta::FromMilliseconds(1));
+  PrerenderHistory::Entry entry_second(GURL(kSecondUrl), kSecondFinalStatus,
+                                       kSecondOrigin,
+                                       epoch_start + base::Milliseconds(1));
   history.AddEntry(entry_second);
   entry_value = history.CopyEntriesAsValue();
   ASSERT_TRUE(entry_value.get() != nullptr);
@@ -102,9 +102,9 @@
   const char* const kThirdUrl = "http://www.gamma.com/";
   const FinalStatus kThirdFinalStatus = FINAL_STATUS_AUTH_NEEDED;
   const Origin kThirdOrigin = ORIGIN_LINK_REL_PRERENDER_CROSSDOMAIN;
-  PrerenderHistory::Entry entry_third(
-      GURL(kThirdUrl), kThirdFinalStatus, kThirdOrigin,
-      epoch_start + base::TimeDelta::FromMilliseconds(2));
+  PrerenderHistory::Entry entry_third(GURL(kThirdUrl), kThirdFinalStatus,
+                                      kThirdOrigin,
+                                      epoch_start + base::Milliseconds(2));
   history.AddEntry(entry_third);
   entry_value = history.CopyEntriesAsValue();
   ASSERT_TRUE(entry_value.get() != nullptr);
diff --git a/components/no_state_prefetch/common/prerender_url_loader_throttle.cc b/components/no_state_prefetch/common/prerender_url_loader_throttle.cc
index b71720b..c38edbb 100644
--- a/components/no_state_prefetch/common/prerender_url_loader_throttle.cc
+++ b/components/no_state_prefetch/common/prerender_url_loader_throttle.cc
@@ -113,10 +113,9 @@
   }
 #endif  // OS_ANDROID
 
-  detached_timer_.Start(FROM_HERE,
-                        base::TimeDelta::FromMilliseconds(
-                            content::kDefaultDetachableCancelDelayMs),
-                        this, &PrerenderURLLoaderThrottle::OnTimedOut);
+  detached_timer_.Start(
+      FROM_HERE, base::Milliseconds(content::kDefaultDetachableCancelDelayMs),
+      this, &PrerenderURLLoaderThrottle::OnTimedOut);
 }
 
 const char* PrerenderURLLoaderThrottle::NameForLoggingWillStartRequest() {
diff --git a/components/ntp_snippets/category_rankers/click_based_category_ranker.cc b/components/ntp_snippets/category_rankers/click_based_category_ranker.cc
index 6b0b2a3..bd7f4b59 100644
--- a/components/ntp_snippets/category_rankers/click_based_category_ranker.cc
+++ b/components/ntp_snippets/category_rankers/click_based_category_ranker.cc
@@ -53,7 +53,7 @@
 const int kMinNumClicksToDecay = 30;
 
 // Time between two consecutive decays (assuming enough clicks).
-constexpr auto kTimeBetweenDecays = base::TimeDelta::FromDays(1);
+constexpr auto kTimeBetweenDecays = base::Days(1);
 
 // Decay factor as a fraction. The current value approximates the seventh root
 // of 0.5. This yields a 50% decay per seven decays. Seven weak decays are used
diff --git a/components/ntp_snippets/category_rankers/click_based_category_ranker_unittest.cc b/components/ntp_snippets/category_rankers/click_based_category_ranker_unittest.cc
index 675e466d..8ecf4c0 100644
--- a/components/ntp_snippets/category_rankers/click_based_category_ranker_unittest.cc
+++ b/components/ntp_snippets/category_rankers/click_based_category_ranker_unittest.cc
@@ -277,7 +277,7 @@
 
   // Let multiple years pass by.
   base::SimpleTestClock test_clock;
-  test_clock.SetNow(base::Time::Now() + base::TimeDelta::FromDays(1000));
+  test_clock.SetNow(base::Time::Now() + base::Days(1000));
   // Reset the ranker to pick up the new clock.
   ResetRanker(&test_clock);
 
@@ -309,7 +309,7 @@
 
   // Let multiple years pass by.
   base::SimpleTestClock test_clock;
-  test_clock.SetNow(base::Time::Now() + base::TimeDelta::FromDays(1000));
+  test_clock.SetNow(base::Time::Now() + base::Days(1000));
   // Reset the ranker to pick up the new clock.
   ResetRanker(&test_clock);
 
@@ -339,7 +339,7 @@
 
   // Ensure that |Now()| is different from |before| by injecting our clock.
   base::SimpleTestClock test_clock;
-  test_clock.SetNow(base::Time::Now() + base::TimeDelta::FromSeconds(10));
+  test_clock.SetNow(base::Time::Now() + base::Seconds(10));
   ResetRanker(&test_clock);
 
   EXPECT_EQ(before, ranker()->GetLastDecayTime());
@@ -483,7 +483,7 @@
   ASSERT_FALSE(CompareCategories(first, second));
 
   // The user partially clears history.
-  base::Time begin = base::Time::Now() - base::TimeDelta::FromHours(1),
+  base::Time begin = base::Time::Now() - base::Hours(1),
              end = base::Time::Max();
   ranker()->ClearHistory(begin, end);
 
diff --git a/components/ntp_snippets/content_suggestions_metrics.cc b/components/ntp_snippets/content_suggestions_metrics.cc
index b4e8d01..52abf28 100644
--- a/components/ntp_snippets/content_suggestions_metrics.cc
+++ b/components/ntp_snippets/content_suggestions_metrics.cc
@@ -159,7 +159,7 @@
 // for the age of suggestions) for use with dynamic histogram names.
 void UmaHistogramAge(const std::string& name, const base::TimeDelta& value) {
   base::Histogram::FactoryTimeGet(
-      name, base::TimeDelta::FromSeconds(1), base::TimeDelta::FromDays(7), 100,
+      name, base::Seconds(1), base::Days(7), 100,
       base::HistogramBase::kUmaTargetedHistogramFlag)
       ->AddTime(value);
 }
@@ -259,10 +259,10 @@
 
   if (category.IsKnownCategory(KnownCategories::ARTICLES)) {
     // Records the time since the fetch time of the displayed snippet.
-    UMA_HISTOGRAM_CUSTOM_TIMES(
-        kHistogramTimeSinceSuggestionFetched, base::Time::Now() - fetch_date,
-        base::TimeDelta::FromSeconds(1), base::TimeDelta::FromDays(7),
-        /*bucket_count=*/100);
+    UMA_HISTOGRAM_CUSTOM_TIMES(kHistogramTimeSinceSuggestionFetched,
+                               base::Time::Now() - fetch_date, base::Seconds(1),
+                               base::Days(7),
+                               /*bucket_count=*/100);
   }
 
   // TODO(markusheintz): Discuss whether the code below should be moved into a
diff --git a/components/ntp_snippets/content_suggestions_metrics_unittest.cc b/components/ntp_snippets/content_suggestions_metrics_unittest.cc
index d1f3bba..313131f 100644
--- a/components/ntp_snippets/content_suggestions_metrics_unittest.cc
+++ b/components/ntp_snippets/content_suggestions_metrics_unittest.cc
@@ -22,24 +22,20 @@
   OnSuggestionShown(/*global_position=*/1,
                     Category::FromKnownCategory(KnownCategories::ARTICLES),
                     /*position_in_category=*/3, base::Time::Now(),
-                    /*score=*/0.01f,
-                    base::Time::Now() - base::TimeDelta::FromHours(2));
+                    /*score=*/0.01f, base::Time::Now() - base::Hours(2));
   // Test corner cases for score.
   OnSuggestionShown(/*global_position=*/1,
                     Category::FromKnownCategory(KnownCategories::ARTICLES),
                     /*position_in_category=*/3, base::Time::Now(),
-                    /*score=*/0.0f,
-                    base::Time::Now() - base::TimeDelta::FromHours(2));
+                    /*score=*/0.0f, base::Time::Now() - base::Hours(2));
   OnSuggestionShown(/*global_position=*/1,
                     Category::FromKnownCategory(KnownCategories::ARTICLES),
                     /*position_in_category=*/3, base::Time::Now(),
-                    /*score=*/1.0f,
-                    base::Time::Now() - base::TimeDelta::FromHours(2));
+                    /*score=*/1.0f, base::Time::Now() - base::Hours(2));
   OnSuggestionShown(/*global_position=*/1,
                     Category::FromKnownCategory(KnownCategories::ARTICLES),
                     /*position_in_category=*/3, base::Time::Now(),
-                    /*score=*/8.0f,
-                    base::Time::Now() - base::TimeDelta::FromHours(2));
+                    /*score=*/8.0f, base::Time::Now() - base::Hours(2));
 
   EXPECT_THAT(
       histogram_tester.GetAllSamples(
diff --git a/components/ntp_snippets/reading_list/reading_list_suggestions_provider_unittest.cc b/components/ntp_snippets/reading_list/reading_list_suggestions_provider_unittest.cc
index 8c1d7259..91af520 100644
--- a/components/ntp_snippets/reading_list/reading_list_suggestions_provider_unittest.cc
+++ b/components/ntp_snippets/reading_list/reading_list_suggestions_provider_unittest.cc
@@ -53,17 +53,17 @@
   void AddEntries() {
     model_->AddEntry(url_unread1_, kTitleUnread1,
                      reading_list::ADDED_VIA_CURRENT_APP);
-    clock_.Advance(base::TimeDelta::FromMilliseconds(10));
+    clock_.Advance(base::Milliseconds(10));
     model_->AddEntry(url_unread2_, kTitleUnread2,
                      reading_list::ADDED_VIA_CURRENT_APP);
-    clock_.Advance(base::TimeDelta::FromMilliseconds(10));
+    clock_.Advance(base::Milliseconds(10));
     model_->AddEntry(url_read1_, kTitleRead1,
                      reading_list::ADDED_VIA_CURRENT_APP);
     model_->SetReadStatus(url_read1_, true);
-    clock_.Advance(base::TimeDelta::FromMilliseconds(10));
+    clock_.Advance(base::Milliseconds(10));
     model_->AddEntry(url_unread3_, kTitleUnread3,
                      reading_list::ADDED_VIA_CURRENT_APP);
-    clock_.Advance(base::TimeDelta::FromMilliseconds(10));
+    clock_.Advance(base::Milliseconds(10));
     model_->AddEntry(url_unread4_, kTitleUnread4,
                      reading_list::ADDED_VIA_CURRENT_APP);
   }
@@ -114,7 +114,7 @@
   std::string title_read1 = "title_read1";
   model_->AddEntry(url_unread1, title_unread1,
                    reading_list::ADDED_VIA_CURRENT_APP);
-  clock_.Advance(base::TimeDelta::FromMilliseconds(10));
+  clock_.Advance(base::Milliseconds(10));
   model_->AddEntry(url_read1, title_read1, reading_list::ADDED_VIA_CURRENT_APP);
   model_->SetReadStatus(url_read1, true);
 
diff --git a/components/ntp_snippets/remote/remote_suggestions_fetcher_impl_unittest.cc b/components/ntp_snippets/remote/remote_suggestions_fetcher_impl_unittest.cc
index b899254..ac4a2ba 100644
--- a/components/ntp_snippets/remote/remote_suggestions_fetcher_impl_unittest.cc
+++ b/components/ntp_snippets/remote/remote_suggestions_fetcher_impl_unittest.cc
@@ -168,7 +168,7 @@
       FROM_HERE,
       base::BindOnce(&ParseJson, json, std::move(success_callback),
                      std::move(error_callback)),
-      base::TimeDelta::FromMilliseconds(kTestJsonParsingLatencyMs));
+      base::Milliseconds(kTestJsonParsingLatencyMs));
 }
 
 }  // namespace
diff --git a/components/ntp_snippets/remote/remote_suggestions_provider_impl.cc b/components/ntp_snippets/remote/remote_suggestions_provider_impl.cc
index 630dd85..4d082149 100644
--- a/components/ntp_snippets/remote/remote_suggestions_provider_impl.cc
+++ b/components/ntp_snippets/remote/remote_suggestions_provider_impl.cc
@@ -167,7 +167,7 @@
 const int kDefaultTimeoutForLoadingIndicatorSeconds = 5;
 
 base::TimeDelta GetTimeoutForLoadingIndicator() {
-  return base::TimeDelta::FromSeconds(base::GetFieldTrialParamByFeatureAsInt(
+  return base::Seconds(base::GetFieldTrialParamByFeatureAsInt(
       ntp_snippets::kArticleSuggestionsFeature,
       kTimeoutForLoadingIndicatorSecondsParamName,
       kDefaultTimeoutForLoadingIndicatorSeconds));
@@ -879,8 +879,7 @@
         if (ShouldForceFetchedSuggestionsNotifications() &&
             IsFetchedSuggestionsNotificationsEnabled()) {
           suggestion->set_should_notify(true);
-          suggestion->set_notification_deadline(clock_->Now() +
-                                                base::TimeDelta::FromDays(7));
+          suggestion->set_notification_deadline(clock_->Now() + base::Days(7));
         }
         if (!IsFetchedSuggestionsNotificationsEnabled()) {
           suggestion->set_should_notify(false);
diff --git a/components/ntp_snippets/remote/remote_suggestions_provider_impl_unittest.cc b/components/ntp_snippets/remote/remote_suggestions_provider_impl_unittest.cc
index 4eb23b6c..a4b18a4 100644
--- a/components/ntp_snippets/remote/remote_suggestions_provider_impl_unittest.cc
+++ b/components/ntp_snippets/remote/remote_suggestions_provider_impl_unittest.cc
@@ -138,7 +138,7 @@
 }
 
 base::Time GetDefaultExpirationTime() {
-  return base::Time::Now() + base::TimeDelta::FromHours(1);
+  return base::Time::Now() + base::Hours(1);
 }
 
 // TODO(vitaliii): Remove this and use RemoteSuggestionBuilder instead.
@@ -2107,7 +2107,7 @@
 
   // Advance the time and check whether the time was updated correctly after the
   // background fetch.
-  simple_test_clock.Advance(base::TimeDelta::FromHours(1));
+  simple_test_clock.Advance(base::Hours(1));
 
   RemoteSuggestionsFetcher::SnippetsAvailableCallback snippets_callback;
   EXPECT_CALL(*mock_suggestions_fetcher(), FetchSnippets(_, _))
@@ -3097,9 +3097,8 @@
   auto response_callback = RefetchWhileDisplayingAndGetResponseCallback();
 
   // The timeout does not fire earlier than it should.
-  FastForwardBy(
-      base::TimeDelta::FromSeconds(kTimeoutForRefetchWhileDisplayingSeconds) -
-      base::TimeDelta::FromMilliseconds(1));
+  FastForwardBy(base::Seconds(kTimeoutForRefetchWhileDisplayingSeconds) -
+                base::Milliseconds(1));
 
   // Before the results come, the status is AVAILABLE_LOADING.
   ASSERT_EQ(CategoryStatus::AVAILABLE_LOADING,
@@ -3169,15 +3168,14 @@
   // No need to finish the fetch, we ignore the response callback.
   RefetchWhileDisplayingAndGetResponseCallback();
 
-  FastForwardBy(
-      base::TimeDelta::FromSeconds(kTimeoutForRefetchWhileDisplayingSeconds) -
-      base::TimeDelta::FromMilliseconds(1));
+  FastForwardBy(base::Seconds(kTimeoutForRefetchWhileDisplayingSeconds) -
+                base::Milliseconds(1));
 
   // Before the timeout, the status is flipped to AVAILABLE_LOADING.
   ASSERT_EQ(CategoryStatus::AVAILABLE_LOADING,
             observer().StatusForCategory(articles_category()));
 
-  FastForwardBy(base::TimeDelta::FromMilliseconds(2));
+  FastForwardBy(base::Milliseconds(2));
 
   // After the timeout, the status is flipped back to AVAILABLE, with the
   // previous suggestion.
@@ -3208,9 +3206,8 @@
   // No need to finish the fetch, we ignore the response callback.
   RefetchWhileDisplayingAndGetResponseCallback();
 
-  FastForwardBy(
-      base::TimeDelta::FromSeconds(kTimeoutForRefetchWhileDisplayingSeconds) -
-      base::TimeDelta::FromMilliseconds(1));
+  FastForwardBy(base::Seconds(kTimeoutForRefetchWhileDisplayingSeconds) -
+                base::Milliseconds(1));
 
   // Before the timeout, the status is flipped to AVAILABLE_LOADING.
   ASSERT_EQ(CategoryStatus::AVAILABLE_LOADING,
@@ -3224,7 +3221,7 @@
 
   // Trigger the timeout. The provider should gracefully handle(i.e. not crash
   // because of) the category being disabled in the interim.
-  FastForwardBy(base::TimeDelta::FromMilliseconds(2));
+  FastForwardBy(base::Milliseconds(2));
 }
 
 TEST_F(RemoteSuggestionsProviderImplTest,
@@ -3248,14 +3245,13 @@
   // No need to finish the fetch, we ignore the response callback.
   RefetchWhileDisplayingAndGetResponseCallback();
 
-  FastForwardBy(
-      base::TimeDelta::FromSeconds(kTimeoutForRefetchWhileDisplayingSeconds) -
-      base::TimeDelta::FromMilliseconds(1));
+  FastForwardBy(base::Seconds(kTimeoutForRefetchWhileDisplayingSeconds) -
+                base::Milliseconds(1));
 
   // Another fetch does nothing to the deadline.
   RefetchWhileDisplayingAndGetResponseCallback();
 
-  FastForwardBy(base::TimeDelta::FromMilliseconds(2));
+  FastForwardBy(base::Milliseconds(2));
 
   // After the timeout, the status is flipped back to AVAILABLE, with the
   // previous suggestion.
diff --git a/components/ntp_snippets/remote/remote_suggestions_scheduler_impl.cc b/components/ntp_snippets/remote/remote_suggestions_scheduler_impl.cc
index 2ddf4d2..407e398 100644
--- a/components/ntp_snippets/remote/remote_suggestions_scheduler_impl.cc
+++ b/components/ntp_snippets/remote/remote_suggestions_scheduler_impl.cc
@@ -187,7 +187,7 @@
       ntp_snippets::kArticleSuggestionsFeature, param_name,
       default_value_hours);
 
-  return base::TimeDelta::FromSecondsD(value_hours * 3600.0);
+  return base::Seconds(value_hours * 3600.0);
 }
 
 void ReportTimeUntilFirstShownTrigger(
@@ -198,24 +198,21 @@
       UMA_HISTOGRAM_CUSTOM_TIMES(
           "NewTabPage.ContentSuggestions.TimeUntilFirstShownTrigger."
           "RareNTPUser",
-          time_until_first_shown_trigger, base::TimeDelta::FromSeconds(1),
-          base::TimeDelta::FromDays(7),
+          time_until_first_shown_trigger, base::Seconds(1), base::Days(7),
           /*bucket_count=*/50);
       break;
     case UserClassifier::UserClass::ACTIVE_NTP_USER:
       UMA_HISTOGRAM_CUSTOM_TIMES(
           "NewTabPage.ContentSuggestions.TimeUntilFirstShownTrigger."
           "ActiveNTPUser",
-          time_until_first_shown_trigger, base::TimeDelta::FromSeconds(1),
-          base::TimeDelta::FromDays(7),
+          time_until_first_shown_trigger, base::Seconds(1), base::Days(7),
           /*bucket_count=*/50);
       break;
     case UserClassifier::UserClass::ACTIVE_SUGGESTIONS_CONSUMER:
       UMA_HISTOGRAM_CUSTOM_TIMES(
           "NewTabPage.ContentSuggestions.TimeUntilFirstShownTrigger."
           "ActiveSuggestionsConsumer",
-          time_until_first_shown_trigger, base::TimeDelta::FromSeconds(1),
-          base::TimeDelta::FromDays(7),
+          time_until_first_shown_trigger, base::Seconds(1), base::Days(7),
           /*bucket_count=*/50);
       break;
   }
@@ -229,24 +226,21 @@
       UMA_HISTOGRAM_CUSTOM_TIMES(
           "NewTabPage.ContentSuggestions.TimeUntilFirstStartupTrigger."
           "RareNTPUser",
-          time_until_first_startup_trigger, base::TimeDelta::FromSeconds(1),
-          base::TimeDelta::FromDays(7),
+          time_until_first_startup_trigger, base::Seconds(1), base::Days(7),
           /*bucket_count=*/50);
       break;
     case UserClassifier::UserClass::ACTIVE_NTP_USER:
       UMA_HISTOGRAM_CUSTOM_TIMES(
           "NewTabPage.ContentSuggestions.TimeUntilFirstStartupTrigger."
           "ActiveNTPUser",
-          time_until_first_startup_trigger, base::TimeDelta::FromSeconds(1),
-          base::TimeDelta::FromDays(7),
+          time_until_first_startup_trigger, base::Seconds(1), base::Days(7),
           /*bucket_count=*/50);
       break;
     case UserClassifier::UserClass::ACTIVE_SUGGESTIONS_CONSUMER:
       UMA_HISTOGRAM_CUSTOM_TIMES(
           "NewTabPage.ContentSuggestions.TimeUntilFirstStartupTrigger."
           "ActiveSuggestionsConsumer",
-          time_until_first_startup_trigger, base::TimeDelta::FromSeconds(1),
-          base::TimeDelta::FromDays(7),
+          time_until_first_startup_trigger, base::Seconds(1), base::Days(7),
           /*bucket_count=*/50);
       break;
   }
@@ -259,24 +253,21 @@
       UMA_HISTOGRAM_CUSTOM_TIMES(
           "NewTabPage.ContentSuggestions.TimeUntilSoftFetch."
           "RareNTPUser",
-          time_until_shown_fetch, base::TimeDelta::FromSeconds(1),
-          base::TimeDelta::FromDays(7),
+          time_until_shown_fetch, base::Seconds(1), base::Days(7),
           /*bucket_count=*/50);
       break;
     case UserClassifier::UserClass::ACTIVE_NTP_USER:
       UMA_HISTOGRAM_CUSTOM_TIMES(
           "NewTabPage.ContentSuggestions.TimeUntilSoftFetch."
           "ActiveNTPUser",
-          time_until_shown_fetch, base::TimeDelta::FromSeconds(1),
-          base::TimeDelta::FromDays(7),
+          time_until_shown_fetch, base::Seconds(1), base::Days(7),
           /*bucket_count=*/50);
       break;
     case UserClassifier::UserClass::ACTIVE_SUGGESTIONS_CONSUMER:
       UMA_HISTOGRAM_CUSTOM_TIMES(
           "NewTabPage.ContentSuggestions.TimeUntilSoftFetch."
           "ActiveSuggestionsConsumer",
-          time_until_shown_fetch, base::TimeDelta::FromSeconds(1),
-          base::TimeDelta::FromDays(7),
+          time_until_shown_fetch, base::Seconds(1), base::Days(7),
           /*bucket_count=*/50);
       break;
   }
@@ -289,24 +280,21 @@
       UMA_HISTOGRAM_CUSTOM_TIMES(
           "NewTabPage.ContentSuggestions.TimeUntilStartupFetch."
           "RareNTPUser",
-          time_until_startup_fetch, base::TimeDelta::FromSeconds(1),
-          base::TimeDelta::FromDays(7),
+          time_until_startup_fetch, base::Seconds(1), base::Days(7),
           /*bucket_count=*/50);
       break;
     case UserClassifier::UserClass::ACTIVE_NTP_USER:
       UMA_HISTOGRAM_CUSTOM_TIMES(
           "NewTabPage.ContentSuggestions.TimeUntilStartupFetch."
           "ActiveNTPUser",
-          time_until_startup_fetch, base::TimeDelta::FromSeconds(1),
-          base::TimeDelta::FromDays(7),
+          time_until_startup_fetch, base::Seconds(1), base::Days(7),
           /*bucket_count=*/50);
       break;
     case UserClassifier::UserClass::ACTIVE_SUGGESTIONS_CONSUMER:
       UMA_HISTOGRAM_CUSTOM_TIMES(
           "NewTabPage.ContentSuggestions.TimeUntilStartupFetch."
           "ActiveSuggestionsConsumer",
-          time_until_startup_fetch, base::TimeDelta::FromSeconds(1),
-          base::TimeDelta::FromDays(7),
+          time_until_startup_fetch, base::Seconds(1), base::Days(7),
           /*bucket_count=*/50);
       break;
   }
@@ -320,24 +308,21 @@
       UMA_HISTOGRAM_CUSTOM_TIMES(
           "NewTabPage.ContentSuggestions.TimeUntilPersistentFetch."
           "RareNTPUser",
-          time_until_persistent_fetch, base::TimeDelta::FromSeconds(1),
-          base::TimeDelta::FromDays(7),
+          time_until_persistent_fetch, base::Seconds(1), base::Days(7),
           /*bucket_count=*/50);
       break;
     case UserClassifier::UserClass::ACTIVE_NTP_USER:
       UMA_HISTOGRAM_CUSTOM_TIMES(
           "NewTabPage.ContentSuggestions.TimeUntilPersistentFetch."
           "ActiveNTPUser",
-          time_until_persistent_fetch, base::TimeDelta::FromSeconds(1),
-          base::TimeDelta::FromDays(7),
+          time_until_persistent_fetch, base::Seconds(1), base::Days(7),
           /*bucket_count=*/50);
       break;
     case UserClassifier::UserClass::ACTIVE_SUGGESTIONS_CONSUMER:
       UMA_HISTOGRAM_CUSTOM_TIMES(
           "NewTabPage.ContentSuggestions.TimeUntilPersistentFetch."
           "ActiveSuggestionsConsumer",
-          time_until_persistent_fetch, base::TimeDelta::FromSeconds(1),
-          base::TimeDelta::FromDays(7),
+          time_until_persistent_fetch, base::Seconds(1), base::Days(7),
           /*bucket_count=*/50);
       break;
   }
@@ -422,7 +407,7 @@
   // The default value for staleness is |interval_startup_wifi| which is not
   // constant. It depends on user class and is configurable by field trial
   // params as well.
-  return base::TimeDelta::FromHours(base::GetFieldTrialParamByFeatureAsInt(
+  return base::Hours(base::GetFieldTrialParamByFeatureAsInt(
       ntp_snippets::kArticleSuggestionsFeature,
       kMinAgeForStaleFetchHoursParamName, interval_startup_wifi.InHours()));
 }
@@ -542,8 +527,8 @@
   // asks for new suggestions) to give sync the time to propagate the changes in
   // history to the server.
   background_fetches_allowed_after_ =
-      clock_->Now() + base::TimeDelta::FromMinutes(
-                          kBlockBackgroundFetchesMinutesAfterClearingHistory);
+      clock_->Now() +
+      base::Minutes(kBlockBackgroundFetchesMinutesAfterClearingHistory);
   // After that time elapses, we should fetch as soon as possible.
   ClearLastFetchAttemptTime();
 }
@@ -860,8 +845,7 @@
       profile_prefs_->GetTime(prefs::kSnippetLastFetchAttemptTime);
   UMA_HISTOGRAM_CUSTOM_TIMES(
       "ContentSuggestions.Feed.Scheduler.TimeSinceLastFetchOnClear",
-      attempt_age, base::TimeDelta::FromSeconds(1),
-      base::TimeDelta::FromDays(7),
+      attempt_age, base::Seconds(1), base::Days(7),
       /*bucket_count=*/50);
 
   profile_prefs_->ClearPref(prefs::kSnippetLastFetchAttemptTime);
diff --git a/components/ntp_snippets/remote/remote_suggestions_scheduler_impl_unittest.cc b/components/ntp_snippets/remote/remote_suggestions_scheduler_impl_unittest.cc
index 2e469aa..48c5203 100644
--- a/components/ntp_snippets/remote/remote_suggestions_scheduler_impl_unittest.cc
+++ b/components/ntp_snippets/remote/remote_suggestions_scheduler_impl_unittest.cc
@@ -622,7 +622,7 @@
   // UserClassifier defaults to UserClass::ACTIVE_NTP_USER - we work with the
   // default interval for this class here. This time would allow for a fetch on
   // NTP open but not on cold start.
-  test_clock()->Advance(base::TimeDelta::FromHours(13));
+  test_clock()->Advance(base::Hours(13));
   // This should *not* trigger a fetch.
   scheduler()->OnBrowserColdStart();
 
@@ -631,7 +631,7 @@
   scheduler()->OnProviderDeactivated();
   ResetProvider();  // Also resets the scheduler and test clock.
 
-  test_clock()->Advance(base::TimeDelta::FromHours(13));
+  test_clock()->Advance(base::Hours(13));
   EXPECT_CALL(*provider(), ready()).WillRepeatedly(Return(false));
   scheduler()->OnSuggestionsSurfaceOpened();
   scheduler()->OnBrowserColdStart();
@@ -732,8 +732,7 @@
   // Make the first soft fetch successful.
   scheduler()->OnBrowserForegrounded();
   std::move(signal_fetch_done).Run(Status::Success());
-  test_clock()->Advance(
-      base::TimeDelta::FromHours(kDefaultStartupIntervalHours));
+  test_clock()->Advance(base::Hours(kDefaultStartupIntervalHours));
   scheduler()->OnBrowserForegrounded();
 }
 
@@ -921,12 +920,11 @@
   // Open NTP again after too short delay (one minute missing). UserClassifier
   // defaults to UserClass::ACTIVE_NTP_USER - we work with the default interval
   // for this class here. This time no fetch is executed.
-  test_clock()->Advance(base::TimeDelta::FromHours(4) -
-                        base::TimeDelta::FromMinutes(1));
+  test_clock()->Advance(base::Hours(4) - base::Minutes(1));
   scheduler()->OnSuggestionsSurfaceOpened();
 
   // Open NTP after another delay, now together long enough to issue a fetch.
-  test_clock()->Advance(base::TimeDelta::FromMinutes(2));
+  test_clock()->Advance(base::Minutes(2));
   EXPECT_CALL(*provider(), RefetchInTheBackground(_));
   scheduler()->OnSuggestionsSurfaceOpened();
 }
@@ -955,11 +953,11 @@
   std::move(signal_fetch_done).Run(Status::Success());
 
   // Open NTP again after too short delay. This time no fetch is executed.
-  test_clock()->Advance(base::TimeDelta::FromMinutes(20));
+  test_clock()->Advance(base::Minutes(20));
   scheduler()->OnSuggestionsSurfaceOpened();
 
   // Open NTP after another delay, now together long enough to issue a fetch.
-  test_clock()->Advance(base::TimeDelta::FromMinutes(10));
+  test_clock()->Advance(base::Minutes(10));
   EXPECT_CALL(*provider(), RefetchInTheBackground(_));
   scheduler()->OnSuggestionsSurfaceOpened();
 }
@@ -986,12 +984,11 @@
   std::move(signal_fetch_done).Run(Status::Success());
 
   // Open NTP again after too short delay. This time no fetch is executed.
-  test_clock()->Advance(base::TimeDelta::FromHours(4) -
-                        base::TimeDelta::FromMinutes(1));
+  test_clock()->Advance(base::Hours(4) - base::Minutes(1));
   scheduler()->OnSuggestionsSurfaceOpened();
 
   // Open NTP after another delay, now together long enough to issue a fetch.
-  test_clock()->Advance(base::TimeDelta::FromMinutes(2));
+  test_clock()->Advance(base::Minutes(2));
   EXPECT_CALL(*provider(), RefetchInTheBackground(_));
   scheduler()->OnSuggestionsSurfaceOpened();
 }
@@ -1020,11 +1017,11 @@
   std::move(signal_fetch_done).Run(Status::Success());
 
   // Open NTP again after too short delay. This time no fetch is executed.
-  test_clock()->Advance(base::TimeDelta::FromMinutes(20));
+  test_clock()->Advance(base::Minutes(20));
   scheduler()->OnSuggestionsSurfaceOpened();
 
   // Open NTP after another delay, now together long enough to issue a fetch.
-  test_clock()->Advance(base::TimeDelta::FromMinutes(10));
+  test_clock()->Advance(base::Minutes(10));
   EXPECT_CALL(*provider(), RefetchInTheBackground(_));
   scheduler()->OnSuggestionsSurfaceOpened();
 }
@@ -1038,13 +1035,13 @@
   scheduler()->OnHistoryCleared();
 
   // A trigger after 15 minutes is ignored.
-  test_clock()->Advance(base::TimeDelta::FromMinutes(15));
+  test_clock()->Advance(base::Minutes(15));
   scheduler()->OnBrowserForegrounded();
 
   // A trigger after another 16 minutes is performed (more than 30m after
   // clearing the history).
   EXPECT_CALL(*provider(), RefetchWhileDisplaying(_));
-  test_clock()->Advance(base::TimeDelta::FromMinutes(16));
+  test_clock()->Advance(base::Minutes(16));
   scheduler()->OnBrowserForegrounded();
 }
 
@@ -1129,7 +1126,7 @@
 
   // Foreground the browser again after a very long delay. Again, no fetch is
   // executed for neither Foregrounded, nor ColdStart.
-  test_clock()->Advance(base::TimeDelta::FromHours(100000));
+  test_clock()->Advance(base::Hours(100000));
   scheduler()->OnBrowserForegrounded();
   scheduler()->OnBrowserColdStart();
 }
@@ -1167,9 +1164,8 @@
   std::move(signal_fetch_done).Run(Status::Success());
 
   // The staleness threshold by default equals to the startup interval.
-  test_clock()->Advance(
-      base::TimeDelta::FromHours(kDefaultStartupIntervalHours) -
-      base::TimeDelta::FromMinutes(1));
+  test_clock()->Advance(base::Hours(kDefaultStartupIntervalHours) -
+                        base::Minutes(1));
 
   // Not long enough: non-stale.
   EXPECT_CALL(*provider(), RefetchWhileDisplaying(_)).Times(0);
@@ -1194,9 +1190,8 @@
   std::move(signal_fetch_done).Run(Status::Success());
 
   // The staleness threshold by default equals to the startup interval.
-  test_clock()->Advance(
-      base::TimeDelta::FromHours(kDefaultStartupIntervalHours) +
-      base::TimeDelta::FromMinutes(1));
+  test_clock()->Advance(base::Hours(kDefaultStartupIntervalHours) +
+                        base::Minutes(1));
 
   // Long enough: stale.
   EXPECT_CALL(*provider(), RefetchWhileDisplaying(_));
@@ -1224,8 +1219,7 @@
   std::move(signal_fetch_done).Run(Status::Success());
 
   // The staleness threshold by default equals to the startup interval.
-  test_clock()->Advance(base::TimeDelta::FromHours(kStaleHours) -
-                        base::TimeDelta::FromMinutes(1));
+  test_clock()->Advance(base::Hours(kStaleHours) - base::Minutes(1));
 
   // Not long enough: non-stale.
   EXPECT_CALL(*provider(), RefetchWhileDisplaying(_)).Times(0);
@@ -1252,8 +1246,7 @@
   scheduler()->OnBrowserForegrounded();
   std::move(signal_fetch_done).Run(Status::Success());
 
-  test_clock()->Advance(base::TimeDelta::FromHours(kStaleHours) +
-                        base::TimeDelta::FromMinutes(1));
+  test_clock()->Advance(base::Hours(kStaleHours) + base::Minutes(1));
 
   // Long enough: stale.
   EXPECT_CALL(*provider(), RefetchWhileDisplaying(_));
@@ -1281,8 +1274,7 @@
   std::move(signal_fetch_done).Run(Status::Success());
 
   // The staleness threshold by default equals to the startup interval.
-  test_clock()->Advance(base::TimeDelta::FromHours(kStartupHours) -
-                        base::TimeDelta::FromMinutes(1));
+  test_clock()->Advance(base::Hours(kStartupHours) - base::Minutes(1));
 
   // Not long enough: non-stale.
   EXPECT_CALL(*provider(), RefetchWhileDisplaying(_)).Times(0);
@@ -1309,8 +1301,7 @@
   scheduler()->OnBrowserForegrounded();
   std::move(signal_fetch_done).Run(Status::Success());
 
-  test_clock()->Advance(base::TimeDelta::FromHours(kStartupHours) +
-                        base::TimeDelta::FromMinutes(1));
+  test_clock()->Advance(base::Hours(kStartupHours) + base::Minutes(1));
 
   // Long enough: stale.
   EXPECT_CALL(*provider(), RefetchWhileDisplaying(_));
diff --git a/components/ntp_snippets/time_serialization.cc b/components/ntp_snippets/time_serialization.cc
index 95343f6..f4034a8 100644
--- a/components/ntp_snippets/time_serialization.cc
+++ b/components/ntp_snippets/time_serialization.cc
@@ -11,7 +11,7 @@
 }
 
 base::Time DeserializeTime(int64_t serialized_time) {
-  return base::Time() + base::TimeDelta::FromMicroseconds(serialized_time);
+  return base::Time() + base::Microseconds(serialized_time);
 }
 
 }  // namespace ntp_snippets
diff --git a/components/ntp_snippets/time_serialization_unittest.cc b/components/ntp_snippets/time_serialization_unittest.cc
index 26c3200d..fc37a430 100644
--- a/components/ntp_snippets/time_serialization_unittest.cc
+++ b/components/ntp_snippets/time_serialization_unittest.cc
@@ -12,9 +12,9 @@
 namespace ntp_snippets {
 
 TEST(TimeSerializationTest, TimeSerialization) {
-  std::vector<base::Time> values_to_test = {
-      base::Time::Min(), base::Time(),
-      base::Time() + base::TimeDelta::FromHours(1), base::Time::Max()};
+  std::vector<base::Time> values_to_test = {base::Time::Min(), base::Time(),
+                                            base::Time() + base::Hours(1),
+                                            base::Time::Max()};
   for (const base::Time& value : values_to_test) {
     EXPECT_EQ(SerializeTime(value), value.ToInternalValue());
     EXPECT_EQ(base::Time::FromInternalValue(SerializeTime(value)), value);
diff --git a/components/ntp_snippets/user_classifier.cc b/components/ntp_snippets/user_classifier.cc
index 8a4ae1a..78e590e6 100644
--- a/components/ntp_snippets/user_classifier.cc
+++ b/components/ntp_snippets/user_classifier.cc
@@ -360,7 +360,7 @@
   const base::TimeDelta since_last_time =
       clock_->Now() - DeserializeTime(pref_service_->GetInt64(
                           kLastTimeKeys[static_cast<int>(metric)]));
-  return since_last_time / base::TimeDelta::FromHours(1);
+  return since_last_time / base::Hours(1);
 }
 
 bool UserClassifier::HasLastTime(Metric metric) const {
diff --git a/components/ntp_snippets/user_classifier_unittest.cc b/components/ntp_snippets/user_classifier_unittest.cc
index 500f9650..3d184dce 100644
--- a/components/ntp_snippets/user_classifier_unittest.cc
+++ b/components/ntp_snippets/user_classifier_unittest.cc
@@ -73,7 +73,7 @@
 
   // After a few more clicks, become an active consumer.
   for (int i = 0; i < 5; i++) {
-    test_clock()->Advance(base::TimeDelta::FromHours(1));
+    test_clock()->Advance(base::Hours(1));
     user_classifier->OnEvent(UserClassifier::Metric::SUGGESTIONS_USED);
   }
   EXPECT_THAT(user_classifier->GetUserClass(),
@@ -92,13 +92,13 @@
 
   // After two clicks still only an active user.
   user_classifier->OnEvent(UserClassifier::Metric::SUGGESTIONS_USED);
-  test_clock()->Advance(base::TimeDelta::FromHours(1));
+  test_clock()->Advance(base::Hours(1));
   user_classifier->OnEvent(UserClassifier::Metric::SUGGESTIONS_USED);
   EXPECT_THAT(user_classifier->GetUserClass(),
               Eq(UserClassifier::UserClass::ACTIVE_NTP_USER));
 
   // One more click to become an active consumer.
-  test_clock()->Advance(base::TimeDelta::FromHours(1));
+  test_clock()->Advance(base::Hours(1));
   user_classifier->OnEvent(UserClassifier::Metric::SUGGESTIONS_USED);
   EXPECT_THAT(user_classifier->GetUserClass(),
               Eq(UserClassifier::UserClass::ACTIVE_SUGGESTIONS_CONSUMER));
@@ -108,12 +108,12 @@
   UserClassifier* user_classifier = CreateUserClassifier();
 
   // After two days of waiting still an active user.
-  test_clock()->Advance(base::TimeDelta::FromDays(2));
+  test_clock()->Advance(base::Days(2));
   EXPECT_THAT(user_classifier->GetUserClass(),
               Eq(UserClassifier::UserClass::ACTIVE_NTP_USER));
 
   // Two more days to become a rare user.
-  test_clock()->Advance(base::TimeDelta::FromDays(2));
+  test_clock()->Advance(base::Days(2));
   EXPECT_THAT(user_classifier->GetUserClass(),
               Eq(UserClassifier::UserClass::RARE_NTP_USER));
 }
@@ -128,12 +128,12 @@
   UserClassifier* user_classifier = CreateUserClassifier();
 
   // After one days of waiting still an active user.
-  test_clock()->Advance(base::TimeDelta::FromDays(1));
+  test_clock()->Advance(base::Days(1));
   EXPECT_THAT(user_classifier->GetUserClass(),
               Eq(UserClassifier::UserClass::ACTIVE_NTP_USER));
 
   // One more day to become a rare user.
-  test_clock()->Advance(base::TimeDelta::FromDays(1));
+  test_clock()->Advance(base::Days(1));
   EXPECT_THAT(user_classifier->GetUserClass(),
               Eq(UserClassifier::UserClass::RARE_NTP_USER));
 }
@@ -156,7 +156,7 @@
   user_classifier->OnEvent(metric);
 
   for (int i = 0; i < 10; i++) {
-    test_clock()->Advance(base::TimeDelta::FromHours(1));
+    test_clock()->Advance(base::Hours(1));
     double old_metric = user_classifier->GetEstimatedAvgTime(metric);
     user_classifier->OnEvent(metric);
     EXPECT_THAT(user_classifier->GetEstimatedAvgTime(metric), Lt(old_metric));
@@ -180,18 +180,18 @@
   // Have the pattern of an event every five hours and start changing it towards
   // an event every 10 hours.
   for (int i = 0; i < 100; i++) {
-    test_clock()->Advance(base::TimeDelta::FromHours(5));
+    test_clock()->Advance(base::Hours(5));
     user_classifier->OnEvent(metric);
   }
   EXPECT_THAT(user_classifier->GetEstimatedAvgTime(metric),
               DoubleNear(5.0, 0.1));
   for (int i = 0; i < 3; i++) {
-    test_clock()->Advance(base::TimeDelta::FromHours(10));
+    test_clock()->Advance(base::Hours(10));
     user_classifier->OnEvent(metric);
   }
   EXPECT_THAT(user_classifier->GetEstimatedAvgTime(metric), Gt(5.5));
   for (int i = 0; i < 100; i++) {
-    test_clock()->Advance(base::TimeDelta::FromHours(10));
+    test_clock()->Advance(base::Hours(10));
     user_classifier->OnEvent(metric);
   }
   EXPECT_THAT(user_classifier->GetEstimatedAvgTime(metric),
@@ -206,13 +206,13 @@
   user_classifier->OnEvent(metric);
   // Subsequent events get ignored for the next 30 minutes.
   for (int i = 0; i < 5; i++) {
-    test_clock()->Advance(base::TimeDelta::FromMinutes(5));
+    test_clock()->Advance(base::Minutes(5));
     double old_metric = user_classifier->GetEstimatedAvgTime(metric);
     user_classifier->OnEvent(metric);
     EXPECT_THAT(user_classifier->GetEstimatedAvgTime(metric), Eq(old_metric));
   }
   // An event 30 minutes after the initial event is finally not ignored.
-  test_clock()->Advance(base::TimeDelta::FromMinutes(5));
+  test_clock()->Advance(base::Minutes(5));
   double old_metric = user_classifier->GetEstimatedAvgTime(metric);
   user_classifier->OnEvent(metric);
   EXPECT_THAT(user_classifier->GetEstimatedAvgTime(metric), Lt(old_metric));
@@ -231,13 +231,13 @@
   user_classifier->OnEvent(metric);
   // Subsequent events get ignored for the next 60 minutes.
   for (int i = 0; i < 11; i++) {
-    test_clock()->Advance(base::TimeDelta::FromMinutes(5));
+    test_clock()->Advance(base::Minutes(5));
     double old_metric = user_classifier->GetEstimatedAvgTime(metric);
     user_classifier->OnEvent(metric);
     EXPECT_THAT(user_classifier->GetEstimatedAvgTime(metric), Eq(old_metric));
   }
   // An event 60 minutes after the initial event is finally not ignored.
-  test_clock()->Advance(base::TimeDelta::FromMinutes(5));
+  test_clock()->Advance(base::Minutes(5));
   double old_metric = user_classifier->GetEstimatedAvgTime(metric);
   user_classifier->OnEvent(metric);
   EXPECT_THAT(user_classifier->GetEstimatedAvgTime(metric), Lt(old_metric));
@@ -250,14 +250,14 @@
   // The initial event
   user_classifier->OnEvent(metric);
   // Wait for an insane amount of time
-  test_clock()->Advance(base::TimeDelta::FromDays(365));
+  test_clock()->Advance(base::Days(365));
   user_classifier->OnEvent(metric);
   double metric_after_a_year = user_classifier->GetEstimatedAvgTime(metric);
 
   // Now repeat the same with s/one year/one week.
   user_classifier->ClearClassificationForDebugging();
   user_classifier->OnEvent(metric);
-  test_clock()->Advance(base::TimeDelta::FromDays(7));
+  test_clock()->Advance(base::Days(7));
   user_classifier->OnEvent(metric);
 
   // The results should be the same.
@@ -277,14 +277,14 @@
   // The initial event
   user_classifier->OnEvent(metric);
   // Wait for an insane amount of time
-  test_clock()->Advance(base::TimeDelta::FromDays(365));
+  test_clock()->Advance(base::Days(365));
   user_classifier->OnEvent(metric);
   double metric_after_a_year = user_classifier->GetEstimatedAvgTime(metric);
 
   // Now repeat the same with s/one year/two days.
   user_classifier->ClearClassificationForDebugging();
   user_classifier->OnEvent(metric);
-  test_clock()->Advance(base::TimeDelta::FromDays(3));
+  test_clock()->Advance(base::Days(3));
   user_classifier->OnEvent(metric);
 
   // The results should be the same.
diff --git a/components/ntp_tiles/popular_sites_impl.cc b/components/ntp_tiles/popular_sites_impl.cc
index c0a48650..161880f 100644
--- a/components/ntp_tiles/popular_sites_impl.cc
+++ b/components/ntp_tiles/popular_sites_impl.cc
@@ -280,7 +280,7 @@
   const base::TimeDelta time_since_last_download =
       base::Time::Now() - last_download_time;
   const base::TimeDelta redownload_interval =
-      base::TimeDelta::FromHours(kPopularSitesRedownloadIntervalHours);
+      base::Hours(kPopularSitesRedownloadIntervalHours);
   const bool download_time_is_future = base::Time::Now() < last_download_time;
 
   pending_url_ = GetURLToFetch();
diff --git a/components/offline_items_collection/core/android/offline_item_bridge_unittest.cc b/components/offline_items_collection/core/android/offline_item_bridge_unittest.cc
index d9d7ff1a..68d8850e 100644
--- a/components/offline_items_collection/core/android/offline_item_bridge_unittest.cc
+++ b/components/offline_items_collection/core/android/offline_item_bridge_unittest.cc
@@ -51,8 +51,7 @@
       env, j_test(), j_offline_item, true /*only_on_wifi*/, 0);
 
   // OfflineItemSchedule with specific start time.
-  auto start_time =
-      base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromDays(1));
+  auto start_time = base::Time::FromDeltaSinceWindowsEpoch(base::Days(1));
   item.schedule = absl::make_optional<OfflineItemSchedule>(
       false /*only_on_wifi*/, start_time);
   EXPECT_EQ(start_time, item.schedule->start_time);
diff --git a/components/offline_items_collection/core/throttled_offline_content_provider.cc b/components/offline_items_collection/core/throttled_offline_content_provider.cc
index 25445ca..3482581 100644
--- a/components/offline_items_collection/core/throttled_offline_content_provider.cc
+++ b/components/offline_items_collection/core/throttled_offline_content_provider.cc
@@ -19,7 +19,7 @@
 ThrottledOfflineContentProvider::ThrottledOfflineContentProvider(
     OfflineContentProvider* provider)
     : ThrottledOfflineContentProvider(
-          base::TimeDelta::FromMilliseconds(kDelayBetweenUpdatesMs),
+          base::Milliseconds(kDelayBetweenUpdatesMs),
           provider) {}
 
 ThrottledOfflineContentProvider::ThrottledOfflineContentProvider(
diff --git a/components/offline_items_collection/core/throttled_offline_content_provider_unittest.cc b/components/offline_items_collection/core/throttled_offline_content_provider_unittest.cc
index 7c6a9044..f8bb212c 100644
--- a/components/offline_items_collection/core/throttled_offline_content_provider_unittest.cc
+++ b/components/offline_items_collection/core/throttled_offline_content_provider_unittest.cc
@@ -60,7 +60,7 @@
   ThrottledOfflineContentProviderTest()
       : task_runner_(new base::TestMockTimeTaskRunner),
         handle_(task_runner_),
-        delay_(base::TimeDelta::FromSeconds(1)),
+        delay_(base::Seconds(1)),
         provider_(delay_, &wrapped_provider_) {}
   ~ThrottledOfflineContentProviderTest() override {}
 
@@ -70,8 +70,7 @@
 
  protected:
   base::TimeTicks GetTimeThatWillAllowAnUpdate() {
-    return base::TimeTicks::Now() - delay_ -
-           base::TimeDelta::FromMilliseconds(1);
+    return base::TimeTicks::Now() - delay_ - base::Milliseconds(1);
   }
 
   scoped_refptr<base::TestMockTimeTaskRunner> task_runner_;
diff --git a/components/offline_pages/core/background/cleanup_task_unittest.cc b/components/offline_pages/core/background/cleanup_task_unittest.cc
index b2f1a90..3b15406 100644
--- a/components/offline_pages/core/background/cleanup_task_unittest.cc
+++ b/components/offline_pages/core/background/cleanup_task_unittest.cc
@@ -158,8 +158,8 @@
 TEST_F(CleanupTaskTest, CleanupExpiredRequest) {
   base::Time creation_time = OfflineTimeNow();
   base::Time expired_time =
-      creation_time - base::TimeDelta::FromSeconds(
-                          policy()->GetRequestExpirationTimeInSeconds() + 10);
+      creation_time -
+      base::Seconds(policy()->GetRequestExpirationTimeInSeconds() + 10);
   // Request2 will be expired, request1 will be current.
   SavePageRequest request1(kRequestId1, GURL("https://google.com"), kClientId1,
                            creation_time, kUserRequested);
diff --git a/components/offline_pages/core/background/offliner_client_unittest.cc b/components/offline_pages/core/background/offliner_client_unittest.cc
index 2936521..6c02c4c4 100644
--- a/components/offline_pages/core/background/offliner_client_unittest.cc
+++ b/components/offline_pages/core/background/offliner_client_unittest.cc
@@ -23,7 +23,7 @@
 using MockProgressCallback = base::MockCallback<
     base::RepeatingCallback<void(const SavePageRequest&, int64_t)>>;
 
-const base::TimeDelta kOneMinute = base::TimeDelta::FromMinutes(1);
+const base::TimeDelta kOneMinute = base::Minutes(1);
 
 SavePageRequest TestRequest() {
   return SavePageRequest(123, GURL("http://test.com"),
diff --git a/components/offline_pages/core/background/offliner_policy_utils.cc b/components/offline_pages/core/background/offliner_policy_utils.cc
index d36cda16..c335c76f 100644
--- a/components/offline_pages/core/background/offliner_policy_utils.cc
+++ b/components/offline_pages/core/background/offliner_policy_utils.cc
@@ -20,8 +20,7 @@
   DCHECK(policy);
 
   if (OfflineTimeNow() - request->creation_time() >=
-      base::TimeDelta::FromSeconds(
-          policy->GetRequestExpirationTimeInSeconds())) {
+      base::Seconds(policy->GetRequestExpirationTimeInSeconds())) {
     return RequestExpirationStatus::EXPIRED;
   }
   if (request->started_attempt_count() >= policy->GetMaxStartedTries())
diff --git a/components/offline_pages/core/background/pick_request_task.cc b/components/offline_pages/core/background/pick_request_task.cc
index 10f858a6..ea60c459c 100644
--- a/components/offline_pages/core/background/pick_request_task.cc
+++ b/components/offline_pages/core/background/pick_request_task.cc
@@ -36,8 +36,7 @@
 
 namespace offline_pages {
 
-const base::TimeDelta PickRequestTask::kDeferInterval =
-    base::TimeDelta::FromMinutes(1);
+const base::TimeDelta PickRequestTask::kDeferInterval = base::Minutes(1);
 
 PickRequestTask::PickRequestTask(
     RequestQueueStore* store,
diff --git a/components/offline_pages/core/background/pick_request_task_unittest.cc b/components/offline_pages/core/background/pick_request_task_unittest.cc
index d6c2639..ee0cb47 100644
--- a/components/offline_pages/core/background/pick_request_task_unittest.cc
+++ b/components/offline_pages/core/background/pick_request_task_unittest.cc
@@ -240,8 +240,7 @@
 }
 
 TEST_F(PickRequestTaskTest, ChooseRequestWithSameRetryCountButEarlier) {
-  base::Time creation_time1 =
-      OfflineTimeNow() - base::TimeDelta::FromSeconds(10);
+  base::Time creation_time1 = OfflineTimeNow() - base::Seconds(10);
   base::Time creation_time2 = OfflineTimeNow();
   SavePageRequest request1(kRequestId1, GURL("https://google.com"), kClientId1,
                            creation_time1, kUserRequested);
@@ -265,8 +264,7 @@
       kMaxCompletedTries, kBackgroundProcessingTimeBudgetSeconds);
   MakePickRequestTask();
 
-  base::Time creation_time1 =
-      OfflineTimeNow() - base::TimeDelta::FromSeconds(10);
+  base::Time creation_time1 = OfflineTimeNow() - base::Seconds(10);
   base::Time creation_time2 = OfflineTimeNow();
   SavePageRequest request1(kRequestId1, GURL("https://google.com"), kClientId1,
                            creation_time1, kUserRequested);
@@ -339,8 +337,7 @@
       kMaxCompletedTries, kBackgroundProcessingTimeBudgetSeconds);
   MakePickRequestTask();
 
-  base::Time creation_time1 =
-      OfflineTimeNow() - base::TimeDelta::FromSeconds(10);
+  base::Time creation_time1 = OfflineTimeNow() - base::Seconds(10);
   base::Time creation_time2 = OfflineTimeNow();
   SavePageRequest request1(kRequestId1, GURL("https://google.com"), kClientId1,
                            creation_time1, kUserRequested);
@@ -360,8 +357,8 @@
 TEST_F(PickRequestTaskTest, ChooseNonExpiredRequest) {
   base::Time creation_time = OfflineTimeNow();
   base::Time expired_time =
-      creation_time - base::TimeDelta::FromSeconds(
-                          policy_->GetRequestExpirationTimeInSeconds() + 60);
+      creation_time -
+      base::Seconds(policy_->GetRequestExpirationTimeInSeconds() + 60);
   SavePageRequest request1(kRequestId1, GURL("https://google.com"), kClientId1,
                            creation_time, kUserRequested);
   SavePageRequest request2(kRequestId2, GURL("http://nytimes.com"), kClientId2,
@@ -381,8 +378,7 @@
 }
 
 TEST_F(PickRequestTaskTest, ChooseRequestThatHasNotExceededStartLimit) {
-  base::Time creation_time1 =
-      OfflineTimeNow() - base::TimeDelta::FromSeconds(1);
+  base::Time creation_time1 = OfflineTimeNow() - base::Seconds(1);
   base::Time creation_time2 = OfflineTimeNow();
   SavePageRequest request1(kRequestId1, GURL("https://google.com"), kClientId1,
                            creation_time1, kUserRequested);
@@ -407,8 +403,7 @@
 }
 
 TEST_F(PickRequestTaskTest, ChooseRequestThatHasNotExceededCompletionLimit) {
-  base::Time creation_time1 =
-      OfflineTimeNow() - base::TimeDelta::FromSeconds(1);
+  base::Time creation_time1 = OfflineTimeNow() - base::Seconds(1);
   base::Time creation_time2 = OfflineTimeNow();
   SavePageRequest request1(kRequestId1, GURL("https://google.com"), kClientId1,
                            creation_time1, kUserRequested);
@@ -509,8 +504,7 @@
   // prioritizing issues with older creation time, fewer attempt count and it's
   // earlier in the request queue.
   base::Time creation_time = OfflineTimeNow();
-  base::Time older_creation_time =
-      creation_time - base::TimeDelta::FromMinutes(10);
+  base::Time older_creation_time = creation_time - base::Minutes(10);
   SavePageRequest request1(kRequestId1, GURL("https://google.com"), kClientId1,
                            older_creation_time, kUserRequested);
   SavePageRequest request2(kRequestId2, GURL("http://nytimes.com"), kClientId2,
diff --git a/components/offline_pages/core/background/request_coordinator.cc b/components/offline_pages/core/background/request_coordinator.cc
index 4682118..5d4d584 100644
--- a/components/offline_pages/core/background/request_coordinator.cc
+++ b/components/offline_pages/core/background/request_coordinator.cc
@@ -34,8 +34,8 @@
 namespace {
 const bool kUserRequest = true;
 const bool kStartOfProcessing = true;
-constexpr base::TimeDelta kMinDuration = base::TimeDelta::FromSeconds(1);
-constexpr base::TimeDelta kMaxDuration = base::TimeDelta::FromDays(7);
+constexpr base::TimeDelta kMinDuration = base::Seconds(1);
+constexpr base::TimeDelta kMaxDuration = base::Days(7);
 const int kDurationBuckets = 50;
 const int kDisabledTaskRecheckSeconds = 5;
 
@@ -103,7 +103,7 @@
   base::TimeDelta duration = OfflineTimeNow() - request.creation_time();
   base::UmaHistogramCustomTimes(
       AddHistogramSuffix(request.client_id(), histogram_name.c_str()), duration,
-      base::TimeDelta::FromMilliseconds(100), base::TimeDelta::FromDays(7), 50);
+      base::Milliseconds(100), base::Days(7), 50);
 }
 
 void RecordCancelTimeUMA(const SavePageRequest& canceled_request) {
@@ -772,11 +772,11 @@
 
   base::TimeDelta processing_time_budget;
   if (processing_state_ == ProcessingWindowState::SCHEDULED_WINDOW) {
-    processing_time_budget = base::TimeDelta::FromSeconds(
+    processing_time_budget = base::Seconds(
         policy_->GetProcessingTimeBudgetWhenBackgroundScheduledInSeconds());
   } else {
     DCHECK(processing_state_ == ProcessingWindowState::IMMEDIATE_WINDOW);
-    processing_time_budget = base::TimeDelta::FromSeconds(
+    processing_time_budget = base::Seconds(
         policy_->GetProcessingTimeBudgetForImmediateLoadInSeconds());
   }
 
@@ -971,10 +971,10 @@
 
   base::TimeDelta timeout;
   if (processing_state_ == ProcessingWindowState::SCHEDULED_WINDOW) {
-    timeout = base::TimeDelta::FromSeconds(
+    timeout = base::Seconds(
         policy_->GetSinglePageTimeLimitWhenBackgroundScheduledInSeconds());
   } else {
-    timeout = base::TimeDelta::FromSeconds(
+    timeout = base::Seconds(
         policy_->GetSinglePageTimeLimitForImmediateLoadInSeconds());
   }
   // Start the load and save process in the offliner (Async).
diff --git a/components/offline_pages/core/background/request_coordinator_unittest.cc b/components/offline_pages/core/background/request_coordinator_unittest.cc
index 2a68f9a..be3abaef 100644
--- a/components/offline_pages/core/background/request_coordinator_unittest.cc
+++ b/components/offline_pages/core/background/request_coordinator_unittest.cc
@@ -1257,7 +1257,7 @@
   AddRequest1();
   PumpLoop();
   // Test a different ordering of tasks, by delaying the offliner cancellation.
-  offliner()->set_cancel_delay(base::TimeDelta::FromSeconds(1));
+  offliner()->set_cancel_delay(base::Seconds(1));
   // Ensure the start processing request stops before the completion callback.
   EnableOfflinerCallback(false);
 
@@ -1281,7 +1281,7 @@
       request_ids, base::BindOnce(&RequestCoordinatorTest::RemoveRequestsDone,
                                   base::Unretained(this)));
 
-  AdvanceClockBy(base::TimeDelta::FromSeconds(2));
+  AdvanceClockBy(base::Seconds(2));
 
   // Since offliner was started, it will have seen cancel call.
   EXPECT_TRUE(OfflinerWasCanceled());
@@ -1366,7 +1366,7 @@
   PumpLoop();
 
   // Advance the mock clock far enough to cause a watchdog timeout
-  AdvanceClockBy(base::TimeDelta::FromSeconds(
+  AdvanceClockBy(base::Seconds(
       coordinator()
           ->policy()
           ->GetSinglePageTimeLimitWhenBackgroundScheduledInSeconds() +
@@ -1397,11 +1397,11 @@
   EXPECT_TRUE(state() == RequestCoordinatorState::OFFLINING);
 
   // Advance the mock clock 1 second before the watchdog timeout.
-  AdvanceClockBy(base::TimeDelta::FromSeconds(
-      coordinator()
-          ->policy()
-          ->GetSinglePageTimeLimitForImmediateLoadInSeconds() -
-      1));
+  AdvanceClockBy(
+      base::Seconds(coordinator()
+                        ->policy()
+                        ->GetSinglePageTimeLimitForImmediateLoadInSeconds() -
+                    1));
   PumpLoop();
 
   // Verify still busy.
@@ -1409,7 +1409,7 @@
   EXPECT_FALSE(OfflinerWasCanceled());
 
   // Advance the mock clock past the watchdog timeout now.
-  AdvanceClockBy(base::TimeDelta::FromSeconds(2));
+  AdvanceClockBy(base::Seconds(2));
   PumpLoop();
 
   // Verify the request timed out.
@@ -1436,7 +1436,7 @@
   // Advance the mock clock far enough to exceed our time budget.
   // The first request will time out, and because we are over time budget,
   // the second request will not be started.
-  AdvanceClockBy(base::TimeDelta::FromSeconds(kTestTimeBudgetSeconds));
+  AdvanceClockBy(base::Seconds(kTestTimeBudgetSeconds));
   PumpLoop();
 
   // TryNextRequest should decide that there is no more work to be done,
@@ -1728,7 +1728,7 @@
   PumpLoop();
 
   // Advance the mock clock far enough to cause a watchdog timeout
-  AdvanceClockBy(base::TimeDelta::FromSeconds(
+  AdvanceClockBy(base::Seconds(
       coordinator()
           ->policy()
           ->GetSinglePageTimeLimitWhenBackgroundScheduledInSeconds() +
@@ -1768,11 +1768,11 @@
     EXPECT_TRUE(state() == RequestCoordinatorState::OFFLINING);
 
     // Advance the mock clock 1 second more than the watchdog timeout.
-    AdvanceClockBy(base::TimeDelta::FromSeconds(
-        coordinator()
-            ->policy()
-            ->GetSinglePageTimeLimitForImmediateLoadInSeconds() +
-        1));
+    AdvanceClockBy(
+        base::Seconds(coordinator()
+                          ->policy()
+                          ->GetSinglePageTimeLimitForImmediateLoadInSeconds() +
+                      1));
     PumpLoop();
 
     // Verify the request timed out.
@@ -1787,11 +1787,11 @@
   EnableSnapshotOnLastRetry();
 
   // Advance the mock clock 1 second more than the watchdog timeout.
-  AdvanceClockBy(base::TimeDelta::FromSeconds(
-      coordinator()
-          ->policy()
-          ->GetSinglePageTimeLimitForImmediateLoadInSeconds() +
-      1));
+  AdvanceClockBy(
+      base::Seconds(coordinator()
+                        ->policy()
+                        ->GetSinglePageTimeLimitForImmediateLoadInSeconds() +
+                    1));
   PumpLoop();
 
   // The last time would trigger the snapshot on last retry and succeed.
diff --git a/components/offline_pages/core/background/request_queue_store_unittest.cc b/components/offline_pages/core/background/request_queue_store_unittest.cc
index 11a2714..9e5d220 100644
--- a/components/offline_pages/core/background/request_queue_store_unittest.cc
+++ b/components/offline_pages/core/background/request_queue_store_unittest.cc
@@ -44,16 +44,16 @@
 };
 
 SavePageRequest GetTestRequest(const GURL& url, const GURL& original_url) {
-  SavePageRequest request(kRequestId, url, kClientId,
-                          base::Time::FromDeltaSinceWindowsEpoch(
-                              base::TimeDelta::FromSeconds(1000)),
-                          kUserRequested);
+  SavePageRequest request(
+      kRequestId, url, kClientId,
+      base::Time::FromDeltaSinceWindowsEpoch(base::Seconds(1000)),
+      kUserRequested);
   // Set fields to non-default values.
   request.set_fail_state(offline_items_collection::FailState::FILE_NO_SPACE);
   request.set_started_attempt_count(2);
   request.set_completed_attempt_count(3);
-  request.set_last_attempt_time(base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromSeconds(400)));
+  request.set_last_attempt_time(
+      base::Time::FromDeltaSinceWindowsEpoch(base::Seconds(400)));
   request.set_request_origin("http://www.origin.com");
   // Note: pending_state is not stored.
   request.set_original_url(original_url);
@@ -680,8 +680,7 @@
   this->PumpLoop();
   this->ClearResults();
 
-  base::Time new_creation_time =
-      creation_time + base::TimeDelta::FromMinutes(1);
+  base::Time new_creation_time = creation_time + base::Minutes(1);
   // Try updating an existing request.
   SavePageRequest updated_request(kRequestId, kUrl1, kClientId,
                                   new_creation_time, kUserRequested);
diff --git a/components/offline_pages/core/background/request_queue_unittest.cc b/components/offline_pages/core/background/request_queue_unittest.cc
index 8391425..c1cd2a8b 100644
--- a/components/offline_pages/core/background/request_queue_unittest.cc
+++ b/components/offline_pages/core/background/request_queue_unittest.cc
@@ -555,7 +555,7 @@
 TEST_F(RequestQueueTest, CleanStaleRequests) {
   // Create a request that is already expired.
   base::Time creation_time =
-      OfflineTimeNow() - base::TimeDelta::FromSeconds(2 * kOneWeekInSeconds);
+      OfflineTimeNow() - base::Seconds(2 * kOneWeekInSeconds);
 
   SavePageRequest original_request(kRequestId, GURL("http://example.com"),
                                    kClientId, creation_time, kUserRequested);
diff --git a/components/offline_pages/core/background/save_page_request_unittest.cc b/components/offline_pages/core/background/save_page_request_unittest.cc
index a7b6ab8..464108e514 100644
--- a/components/offline_pages/core/background/save_page_request_unittest.cc
+++ b/components/offline_pages/core/background/save_page_request_unittest.cc
@@ -52,7 +52,7 @@
                           kUserRequested);
   request.set_request_origin(kRequestOrigin);
 
-  base::Time start_time = creation_time + base::TimeDelta::FromHours(3);
+  base::Time start_time = creation_time + base::Hours(3);
   request.MarkAttemptStarted(start_time);
 
   // Most things don't change about the request.
@@ -86,7 +86,7 @@
   SavePageRequest request(kRequestId, kUrl1, kClientId, creation_time,
                           kUserRequested);
 
-  base::Time start_time = creation_time + base::TimeDelta::FromHours(3);
+  base::Time start_time = creation_time + base::Hours(3);
   request.MarkAttemptStarted(start_time);
 
   // Most things don't change about the request.
diff --git a/components/offline_pages/core/background_snapshot_controller.cc b/components/offline_pages/core/background_snapshot_controller.cc
index 6488af9..a9965780 100644
--- a/components/offline_pages/core/background_snapshot_controller.cc
+++ b/components/offline_pages/core/background_snapshot_controller.cc
@@ -65,8 +65,7 @@
         base::BindOnce(
             &BackgroundSnapshotController::MaybeStartSnapshotThenStop,
             weak_ptr_factory_.GetWeakPtr()),
-        base::TimeDelta::FromMilliseconds(
-            delay_after_document_on_load_completed_ms_));
+        base::Milliseconds(delay_after_document_on_load_completed_ms_));
 }
 
 void BackgroundSnapshotController::MaybeStartSnapshot() {
diff --git a/components/offline_pages/core/background_snapshot_controller_unittest.cc b/components/offline_pages/core/background_snapshot_controller_unittest.cc
index f30b829..096acff 100644
--- a/components/offline_pages/core/background_snapshot_controller_unittest.cc
+++ b/components/offline_pages/core/background_snapshot_controller_unittest.cc
@@ -80,7 +80,7 @@
   controller()->DocumentOnLoadCompletedInMainFrame();
   PumpLoop();
   EXPECT_EQ(0, snapshot_count());
-  FastForwardBy(base::TimeDelta::FromMilliseconds(
+  FastForwardBy(base::Milliseconds(
       controller()->GetDelayAfterDocumentOnLoadCompletedForTest()));
   EXPECT_EQ(1, snapshot_count());
 }
@@ -91,7 +91,7 @@
   PumpLoop();
   EXPECT_EQ(0, snapshot_count());
   controller()->Stop();
-  FastForwardBy(base::TimeDelta::FromMilliseconds(
+  FastForwardBy(base::Milliseconds(
       controller()->GetDelayAfterDocumentOnLoadCompletedForTest()));
   // Should not start snapshots
   EXPECT_EQ(0, snapshot_count());
@@ -104,14 +104,14 @@
 // as done later. That reporting should have no effect nor crash.
 TEST_F(BackgroundSnapshotControllerTest, ClientReset) {
   controller()->DocumentOnLoadCompletedInMainFrame();
-  FastForwardBy(base::TimeDelta::FromMilliseconds(
+  FastForwardBy(base::Milliseconds(
       controller()->GetDelayAfterDocumentOnLoadCompletedForTest()));
   EXPECT_EQ(1, snapshot_count());
   // This normally happens when navigation starts.
   controller()->Reset();
   // Next snapshot should be initiated when new document is loaded.
   controller()->DocumentOnLoadCompletedInMainFrame();
-  FastForwardBy(base::TimeDelta::FromMilliseconds(
+  FastForwardBy(base::Milliseconds(
       controller()->GetDelayAfterDocumentOnLoadCompletedForTest()));
   // No snapshot since session was reset.
   EXPECT_EQ(2, snapshot_count());
diff --git a/components/offline_pages/core/model/cleanup_visuals_task_unittest.cc b/components/offline_pages/core/model/cleanup_visuals_task_unittest.cc
index 6bf5247..5d8f709 100644
--- a/components/offline_pages/core/model/cleanup_visuals_task_unittest.cc
+++ b/components/offline_pages/core/model/cleanup_visuals_task_unittest.cc
@@ -78,7 +78,7 @@
 
   // Start slightly above base::Time() to avoid negative time below.
   TestScopedOfflineClock test_clock;
-  test_clock.SetNow(base::Time() + base::TimeDelta::FromDays(1));
+  test_clock.SetNow(base::Time() + base::Days(1));
 
   // 1. Has item, not expired.
   OfflinePageItem item1 = generator()->CreateItem();
@@ -92,21 +92,21 @@
   // 2. Has item, expired.
   OfflinePageItem item2 = generator()->CreateItem();
   store_test_util()->InsertItem(item2);
-  test_clock.Advance(base::TimeDelta::FromSeconds(-1));
+  test_clock.Advance(base::Seconds(-1));
   OfflinePageVisuals visuals2(item2.offline_id,
                               OfflineTimeNow() + kVisualsExpirationDelta,
                               "thumb2", "favicon2");
   StoreVisuals(visuals2.offline_id, visuals2.thumbnail, visuals2.favicon);
 
   // 3. No item, not expired.
-  test_clock.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock.Advance(base::Seconds(1));
   OfflinePageVisuals visuals3(store_utils::GenerateOfflineId(),
                               OfflineTimeNow() + kVisualsExpirationDelta,
                               "thumb3", "favicon3");
   StoreVisuals(visuals3.offline_id, visuals3.thumbnail, visuals3.favicon);
 
   // 4. No item, expired. This one gets removed.
-  test_clock.Advance(base::TimeDelta::FromSeconds(-1));
+  test_clock.Advance(base::Seconds(-1));
   OfflinePageVisuals visuals4(store_utils::GenerateOfflineId(),
                               OfflineTimeNow() + kVisualsExpirationDelta,
                               "thumb4", "favicon4");
@@ -115,7 +115,7 @@
   base::MockCallback<CleanupVisualsCallback> callback;
   EXPECT_CALL(callback, Run(true)).Times(1);
 
-  test_clock.Advance(kVisualsExpirationDelta + base::TimeDelta::FromSeconds(1));
+  test_clock.Advance(kVisualsExpirationDelta + base::Seconds(1));
 
   base::HistogramTester histogram_tester;
   RunTask(std::make_unique<CleanupVisualsTask>(store(), OfflineTimeNow(),
diff --git a/components/offline_pages/core/model/clear_storage_task.cc b/components/offline_pages/core/model/clear_storage_task.cc
index 3321a8c..fd83369 100644
--- a/components/offline_pages/core/model/clear_storage_task.cc
+++ b/components/offline_pages/core/model/clear_storage_task.cc
@@ -134,8 +134,7 @@
         base::TimeDelta time_since_creation = start_time - page.creation_time;
         UMA_HISTOGRAM_CUSTOM_COUNTS(
             "OfflinePages.ClearTemporaryPages.TimeSinceCreation",
-            time_since_creation.InMinutes(), 1,
-            base::TimeDelta::FromDays(30).InMinutes(), 50);
+            time_since_creation.InMinutes(), 1, base::Days(30).InMinutes(), 50);
       }
     }
   }
diff --git a/components/offline_pages/core/model/clear_storage_task_unittest.cc b/components/offline_pages/core/model/clear_storage_task_unittest.cc
index c964692..d03a7fa 100644
--- a/components/offline_pages/core/model/clear_storage_task_unittest.cc
+++ b/components/offline_pages/core/model/clear_storage_task_unittest.cc
@@ -183,7 +183,7 @@
 TEST_F(ClearStorageTaskTest, ClearPagesLessThanLimit) {
   Initialize({{kBookmarkNamespace, 1, 1}, {kLastNNamespace, 1, 1}});
 
-  clock()->Advance(base::TimeDelta::FromMinutes(5));
+  clock()->Advance(base::Minutes(5));
   RunClearStorageTask(clock()->Now());
 
   // In total there're 2 expired pages so they'll be cleared successfully.
@@ -201,7 +201,7 @@
 TEST_F(ClearStorageTaskTest, ClearPagesMoreFreshPages) {
   Initialize({{kBookmarkNamespace, 30, 0}, {kLastNNamespace, 100, 1}});
 
-  clock()->Advance(base::TimeDelta::FromMinutes(5));
+  clock()->Advance(base::Minutes(5));
   RunClearStorageTask(clock()->Now());
 
   // In total there's 1 expired page so it'll be cleared successfully.
@@ -219,7 +219,7 @@
 TEST_F(ClearStorageTaskTest, TryClearPersistentPages) {
   Initialize({{kDownloadNamespace, 20, 0}});
 
-  clock()->Advance(base::TimeDelta::FromDays(367));
+  clock()->Advance(base::Days(367));
   RunClearStorageTask(clock()->Now());
 
   // There's 20 pages and the clock advances for more than a year.
@@ -239,7 +239,7 @@
   Initialize({{kDownloadNamespace, 20, 0}});
   SetFreeSpace(1024);
 
-  clock()->Advance(base::TimeDelta::FromDays(367));
+  clock()->Advance(base::Days(367));
   RunClearStorageTask(clock()->Now());
 
   // There're 20 pages and the clock advances for more than a year.
@@ -273,7 +273,7 @@
   ASSERT_GT(last_n_policy.expiration_period, bookmark_policy.expiration_period);
 
   // Advance 30 minutes from initial pages creation time.
-  clock()->Advance(base::TimeDelta::FromMinutes(30));
+  clock()->Advance(base::Minutes(30));
   RunClearStorageTask(clock()->Now());
 
   // There's only 1 expired pages, so it will be cleared. There will be (30 +
@@ -306,7 +306,7 @@
 
   // Advance the clock by 1 ms, there's no change in pages so the attempt to
   // clear storage should be unnecessary.
-  clock()->Advance(base::TimeDelta::FromMilliseconds(1));
+  clock()->Advance(base::Milliseconds(1));
   RunClearStorageTask(clock()->Now());
 
   // The clearing attempt is unnecessary.
@@ -328,7 +328,7 @@
   // to be cleared.
   AddPages({kLastNNamespace, 240, 0});
   SetFreeSpace(200 * (1 << 20));
-  clock()->Advance(base::TimeDelta::FromMinutes(5));
+  clock()->Advance(base::Minutes(5));
   RunClearStorageTask(clock()->Now());
 
   // There should be 107 pages remaining after the clearing (including 40
@@ -351,7 +351,7 @@
 
   // Advance the clock by 300 days, in order to expire all temporary pages. Only
   // 67 temporary pages are left from the last clearing.
-  clock()->Advance(base::TimeDelta::FromDays(300));
+  clock()->Advance(base::Days(300));
   RunClearStorageTask(clock()->Now());
 
   // All temporary pages should be cleared by now.
@@ -364,7 +364,7 @@
       "OfflinePages.ClearTemporaryPages.TimeSinceCreation", 291);
   histogram_tester()->ExpectBucketCount(
       "OfflinePages.ClearTemporaryPages.TimeSinceCreation",
-      base::TimeDelta::FromDays(300).InMinutes() + 5, 67);
+      base::Days(300).InMinutes() + 5, 67);
 }
 
 }  // namespace offline_pages
diff --git a/components/offline_pages/core/model/delete_page_task.cc b/components/offline_pages/core/model/delete_page_task.cc
index f08f6f8c..9dbc104 100644
--- a/components/offline_pages/core/model/delete_page_task.cc
+++ b/components/offline_pages/core/model/delete_page_task.cc
@@ -48,7 +48,7 @@
 
 void ReportDeletePageHistograms(
     const std::vector<OfflinePageItem>& deleted_pages) {
-  const int max_minutes = base::TimeDelta::FromDays(365).InMinutes();
+  const int max_minutes = base::Days(365).InMinutes();
   base::Time delete_time = OfflineTimeNow();
   for (const auto& item : deleted_pages) {
     base::UmaHistogramCustomCounts(
diff --git a/components/offline_pages/core/model/delete_page_task_unittest.cc b/components/offline_pages/core/model/delete_page_task_unittest.cc
index 7c49bad2..5cc61d8a 100644
--- a/components/offline_pages/core/model/delete_page_task_unittest.cc
+++ b/components/offline_pages/core/model/delete_page_task_unittest.cc
@@ -223,7 +223,7 @@
   generator()->SetUrl(GURL("http://example.com"));
   // Guarantees that page1 will be deleted by making it older.
   base::Time now = OfflineTimeNow();
-  generator()->SetLastAccessTime(now - base::TimeDelta::FromMinutes(5));
+  generator()->SetLastAccessTime(now - base::Minutes(5));
   OfflinePageItem page1 = generator()->CreateItemWithTempFile();
   generator()->SetLastAccessTime(now);
   OfflinePageItem page2 = generator()->CreateItemWithTempFile();
diff --git a/components/offline_pages/core/model/get_pages_task_unittest.cc b/components/offline_pages/core/model/get_pages_task_unittest.cc
index 5ead6fe5..e531d05 100644
--- a/components/offline_pages/core/model/get_pages_task_unittest.cc
+++ b/components/offline_pages/core/model/get_pages_task_unittest.cc
@@ -317,9 +317,9 @@
   generator()->SetNamespace(kCCTNamespace);
   OfflinePageItem item1 = generator()->CreateItem();
   OfflinePageItem item2 = generator()->CreateItem();
-  item2.creation_time = item1.creation_time + base::TimeDelta::FromSeconds(2);
+  item2.creation_time = item1.creation_time + base::Seconds(2);
   OfflinePageItem item3 = generator()->CreateItem();
-  item3.creation_time = item1.creation_time + base::TimeDelta::FromSeconds(1);
+  item3.creation_time = item1.creation_time + base::Seconds(1);
 
   InsertItems({item1, item2, item3});
 
@@ -336,9 +336,9 @@
   OfflinePageItem item1 = generator()->CreateItem();
   item1.last_access_time = base::Time();
   OfflinePageItem item2 = generator()->CreateItem();
-  item2.last_access_time = base::Time() + base::TimeDelta::FromSeconds(2);
+  item2.last_access_time = base::Time() + base::Seconds(2);
   OfflinePageItem item3 = generator()->CreateItem();
-  item3.last_access_time = base::Time() + base::TimeDelta::FromSeconds(1);
+  item3.last_access_time = base::Time() + base::Seconds(1);
 
   InsertItems({item1, item2, item3});
 
diff --git a/components/offline_pages/core/model/mark_page_accessed_task.cc b/components/offline_pages/core/model/mark_page_accessed_task.cc
index e6c29fde5..b0954993 100644
--- a/components/offline_pages/core/model/mark_page_accessed_task.cc
+++ b/components/offline_pages/core/model/mark_page_accessed_task.cc
@@ -28,7 +28,7 @@
   // Used as upper bound of PageAccessInterval histogram which is used for
   // evaluating how good the expiration period is. The expiration period of a
   // page will be longer than one year in extreme cases so it's good enough.
-  const int kMinutesPerYear = base::TimeDelta::FromDays(365).InMinutes();
+  const int kMinutesPerYear = base::Days(365).InMinutes();
 
   static const char kSql[] =
       "SELECT client_namespace, last_access_time FROM " OFFLINE_PAGES_TABLE_NAME
diff --git a/components/offline_pages/core/model/offline_page_model_taskified.h b/components/offline_pages/core/model/offline_page_model_taskified.h
index eef30d28..8a9134c 100644
--- a/components/offline_pages/core/model/offline_page_model_taskified.h
+++ b/components/offline_pages/core/model/offline_page_model_taskified.h
@@ -55,12 +55,10 @@
   // Delay between the scheduling and actual running of maintenance tasks. To
   // not cause the re-opening of the metadata store this delay should be kept
   // smaller than OfflinePageMetadataStore::kClosingDelay.
-  static constexpr base::TimeDelta kMaintenanceTasksDelay =
-      base::TimeDelta::FromSeconds(10);
+  static constexpr base::TimeDelta kMaintenanceTasksDelay = base::Seconds(10);
 
   // Minimum delay between runs of maintenance tasks during a Chrome session.
-  static constexpr base::TimeDelta kClearStorageInterval =
-      base::TimeDelta::FromMinutes(30);
+  static constexpr base::TimeDelta kClearStorageInterval = base::Minutes(30);
 
   OfflinePageModelTaskified(
       std::unique_ptr<OfflinePageMetadataStore> store,
diff --git a/components/offline_pages/core/model/offline_page_model_taskified_unittest.cc b/components/offline_pages/core/model/offline_page_model_taskified_unittest.cc
index c545ccd..b3e83be 100644
--- a/components/offline_pages/core/model/offline_page_model_taskified_unittest.cc
+++ b/components/offline_pages/core/model/offline_page_model_taskified_unittest.cc
@@ -1282,7 +1282,7 @@
   base::MockCallback<MultipleOfflinePageItemCallback> callback;
   model()->GetAllPages(callback.Get());
   FastForwardBy(OfflinePageModelTaskified::kMaintenanceTasksDelay +
-                base::TimeDelta::FromMilliseconds(1));
+                base::Milliseconds(1));
 
   EXPECT_EQ(2LL, store_test_util()->GetPageCount());
   EXPECT_EQ(0UL, test_utils::GetFileCountInDirectory(temporary_dir_path()));
@@ -1293,7 +1293,7 @@
 TEST_F(OfflinePageModelTaskifiedTest, ClearStorage) {
   // The ClearStorage task should not be executed based on time delays after
   // launch (aka the model being built).
-  FastForwardBy(base::TimeDelta::FromDays(1));
+  FastForwardBy(base::Days(1));
   EXPECT_EQ(base::Time(), last_maintenance_tasks_schedule_time());
 
   // GetAllPages should schedule a delayed task that will eventually run
@@ -1310,8 +1310,7 @@
   // After the delay (plus 1 millisecond just in case) ClearStorage should be
   // enqueued and executed.
   const base::TimeDelta run_delay =
-      OfflinePageModelTaskified::kMaintenanceTasksDelay +
-      base::TimeDelta::FromMilliseconds(1);
+      OfflinePageModelTaskified::kMaintenanceTasksDelay + base::Milliseconds(1);
   FastForwardBy(run_delay);
   EXPECT_EQ(last_scheduling_time, last_maintenance_tasks_schedule_time());
   // Check that CleanupVisualsTask ran.
@@ -1336,7 +1335,7 @@
   // Forwarding by the full interval (plus 1 second just in case) should allow
   // the task to be enqueued again.
   FastForwardBy(OfflinePageModelTaskified::kClearStorageInterval / 2 +
-                base::TimeDelta::FromSeconds(1));
+                base::Seconds(1));
   // Saving a page should also immediately enqueue the ClearStorage task.
   const GURL kTestUrl("http://example.com");
   auto archiver = BuildArchiver(kTestUrl, ArchiverResult::SUCCESSFULLY_CREATED);
@@ -1372,7 +1371,7 @@
        MAYBE_PersistentPageConsistencyCheckExecuted) {
   // The PersistentPageConsistencyCheckTask should not be executed based on time
   // delays after launch (aka the model being built).
-  FastForwardBy(base::TimeDelta::FromDays(1));
+  FastForwardBy(base::Days(1));
   histogram_tester()->ExpectTotalCount(
       "OfflinePages.ConsistencyCheck.Persistent.Result", 0);
 
@@ -1397,8 +1396,7 @@
   // After the delay (plus 1 millisecond just in case), the consistency check
   // should be enqueued and executed.
   const base::TimeDelta run_delay =
-      OfflinePageModelTaskified::kMaintenanceTasksDelay +
-      base::TimeDelta::FromMilliseconds(1);
+      OfflinePageModelTaskified::kMaintenanceTasksDelay + base::Milliseconds(1);
   FastForwardBy(run_delay);
   // But nothing should change.
   EXPECT_EQ(1UL,
@@ -1427,7 +1425,7 @@
   // the task to be enqueued again and call GetAllPages again to enqueue the
   // task.
   FastForwardBy(OfflinePageModelTaskified::kClearStorageInterval / 2 +
-                base::TimeDelta::FromSeconds(1));
+                base::Seconds(1));
   model()->GetAllPages(callback.Get());
   // And advance the delay too.
   FastForwardBy(run_delay);
@@ -1444,7 +1442,7 @@
 
   // Forwarding by a long time that is enough for the page with missing file to
   // get expired.
-  FastForwardBy(base::TimeDelta::FromDays(400));
+  FastForwardBy(base::Days(400));
   // Saving a page should also immediately enqueue the consistency check task.
   const GURL kTestUrl("http://example.com");
   auto archiver = BuildArchiver(kTestUrl, ArchiverResult::SUCCESSFULLY_CREATED);
@@ -1481,7 +1479,7 @@
   EXPECT_EQ(base::Time(), last_maintenance_tasks_schedule_time());
 
   // Advance the clock considerably and confirm no runs happened.
-  FastForwardBy(base::TimeDelta::FromDays(1));
+  FastForwardBy(base::Days(1));
   EXPECT_EQ(base::Time(), last_maintenance_tasks_schedule_time());
   histogram_tester()->ExpectTotalCount(
       "OfflinePages.ClearTemporaryPages.Result", 0);
diff --git a/components/offline_pages/core/model/persistent_page_consistency_check_task.cc b/components/offline_pages/core/model/persistent_page_consistency_check_task.cc
index ed294f1..7b214d8 100644
--- a/components/offline_pages/core/model/persistent_page_consistency_check_task.cc
+++ b/components/offline_pages/core/model/persistent_page_consistency_check_task.cc
@@ -32,7 +32,7 @@
 
 namespace {
 
-const base::TimeDelta kExpireThreshold = base::TimeDelta::FromDays(365);
+const base::TimeDelta kExpireThreshold = base::Days(365);
 
 std::vector<OfflinePageItem> GetPersistentPages(
     sql::Database* db) {
diff --git a/components/offline_pages/core/model/persistent_page_consistency_check_task_unittest.cc b/components/offline_pages/core/model/persistent_page_consistency_check_task_unittest.cc
index a590207..6a48600 100644
--- a/components/offline_pages/core/model/persistent_page_consistency_check_task_unittest.cc
+++ b/components/offline_pages/core/model/persistent_page_consistency_check_task_unittest.cc
@@ -57,7 +57,7 @@
 #endif
 TEST_F(PersistentPageConsistencyCheckTaskTest,
        MAYBE_ClearExpiredPersistentPages) {
-  base::Time expire_time = base::Time::Now() - base::TimeDelta::FromDays(400);
+  base::Time expire_time = base::Time::Now() - base::Days(400);
 
   // |page{1,4}| will be marked as missing file.
   // |page{2,5}| will be deleted from DB, since they've been expired for longer
@@ -128,7 +128,7 @@
 #endif
 TEST_F(PersistentPageConsistencyCheckTaskTest,
        MAYBE_ClearExpiredPersistentPagesByFilePath) {
-  base::Time expire_time = base::Time::Now() - base::TimeDelta::FromDays(400);
+  base::Time expire_time = base::Time::Now() - base::Days(400);
   // |page| will be deleted from DB, since it's been expired for longer than
   // threshold.
   generator()->SetSystemDownloadId(kArchivePublishedWithoutDownloadId);
diff --git a/components/offline_pages/core/model/store_visuals_task.cc b/components/offline_pages/core/model/store_visuals_task.cc
index cfdf120f..f6200b4 100644
--- a/components/offline_pages/core/model/store_visuals_task.cc
+++ b/components/offline_pages/core/model/store_visuals_task.cc
@@ -19,7 +19,7 @@
 // eventually deleted if their offline_id does not correspond to an offline
 // item. Two days gives us plenty of time so that the prefetched item can be
 // imported into the offline item database.
-const base::TimeDelta kVisualsExpirationDelta = base::TimeDelta::FromDays(2);
+const base::TimeDelta kVisualsExpirationDelta = base::Days(2);
 
 namespace {
 
diff --git a/components/offline_pages/core/model/store_visuals_task_unittest.cc b/components/offline_pages/core/model/store_visuals_task_unittest.cc
index 1c683e1..964cc94f 100644
--- a/components/offline_pages/core/model/store_visuals_task_unittest.cc
+++ b/components/offline_pages/core/model/store_visuals_task_unittest.cc
@@ -77,7 +77,7 @@
 
   EXPECT_EQ(visuals, MustReadVisuals(visuals.offline_id));
 
-  test_clock.Advance(base::TimeDelta::FromDays(1));
+  test_clock.Advance(base::Days(1));
   visuals.thumbnail += "_extradata";
   visuals.expiration = OfflineTimeNow() + kVisualsExpirationDelta;
   EXPECT_CALL(callback, Run(true, visuals.thumbnail));
diff --git a/components/offline_pages/core/offline_page_client_policy.cc b/components/offline_pages/core/offline_page_client_policy.cc
index 5e72085..321d247b 100644
--- a/components/offline_pages/core/offline_page_client_policy.cc
+++ b/components/offline_pages/core/offline_page_client_policy.cc
@@ -27,14 +27,14 @@
 PolicyData BuildPolicies() {
   std::vector<OfflinePageClientPolicy> all_policies;
   {
-    auto policy = OfflinePageClientPolicy::CreateTemporary(
-        kBookmarkNamespace, base::TimeDelta::FromDays(7));
+    auto policy = OfflinePageClientPolicy::CreateTemporary(kBookmarkNamespace,
+                                                           base::Days(7));
     policy.pages_allowed_per_url = 1;
     all_policies.push_back(policy);
   }
   {
-    auto policy = OfflinePageClientPolicy::CreateTemporary(
-        kLastNNamespace, base::TimeDelta::FromDays(30));
+    auto policy = OfflinePageClientPolicy::CreateTemporary(kLastNNamespace,
+                                                           base::Days(30));
     policy.is_restricted_to_tab_from_client_id = true;
     all_policies.push_back(policy);
   }
@@ -44,8 +44,8 @@
     all_policies.push_back(policy);
   }
   {
-    auto policy = OfflinePageClientPolicy::CreateTemporary(
-        kCCTNamespace, base::TimeDelta::FromDays(2));
+    auto policy =
+        OfflinePageClientPolicy::CreateTemporary(kCCTNamespace, base::Days(2));
     policy.pages_allowed_per_url = 1;
     policy.requires_specific_user_settings = true;
     all_policies.push_back(policy);
@@ -63,7 +63,7 @@
   }
   {
     auto policy = OfflinePageClientPolicy::CreateTemporary(
-        kSuggestedArticlesNamespace, base::TimeDelta::FromDays(30));
+        kSuggestedArticlesNamespace, base::Days(30));
     policy.is_supported_by_download = 1;
     policy.is_suggested = true;
     all_policies.push_back(policy);
@@ -77,14 +77,14 @@
   }
   {
     auto policy = OfflinePageClientPolicy::CreateTemporary(
-        kLivePageSharingNamespace, base::TimeDelta::FromHours(1));
+        kLivePageSharingNamespace, base::Hours(1));
     policy.pages_allowed_per_url = 1;
     policy.is_restricted_to_tab_from_client_id = true;
     all_policies.push_back(policy);
   }
   {
-    auto policy = OfflinePageClientPolicy::CreateTemporary(
-        kAutoAsyncNamespace, base::TimeDelta::FromDays(30));
+    auto policy = OfflinePageClientPolicy::CreateTemporary(kAutoAsyncNamespace,
+                                                           base::Days(30));
     policy.pages_allowed_per_url = 1;
     policy.defer_background_fetch_while_page_is_active = true;
     all_policies.push_back(policy);
@@ -93,7 +93,7 @@
   // Fallback policy.
   {
     OfflinePageClientPolicy policy = OfflinePageClientPolicy::CreateTemporary(
-        kDefaultNamespace, base::TimeDelta::FromDays(1));
+        kDefaultNamespace, base::Days(1));
     policy.page_limit = 10;
     policy.pages_allowed_per_url = 1;
     all_policies.push_back(policy);
diff --git a/components/offline_pages/core/offline_store_utils.cc b/components/offline_pages/core/offline_store_utils.cc
index 46196de..4ded18a 100644
--- a/components/offline_pages/core/offline_store_utils.cc
+++ b/components/offline_pages/core/offline_store_utils.cc
@@ -21,7 +21,7 @@
 
 base::Time FromDatabaseTime(int64_t serialized_time) {
   return base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(serialized_time));
+      base::Microseconds(serialized_time));
 }
 
 std::string ToDatabaseFilePath(const base::FilePath& file_path) {
diff --git a/components/offline_pages/core/prefetch/prefetch_downloader.h b/components/offline_pages/core/prefetch/prefetch_downloader.h
index ca1a31944a..49bce16 100644
--- a/components/offline_pages/core/prefetch/prefetch_downloader.h
+++ b/components/offline_pages/core/prefetch/prefetch_downloader.h
@@ -16,8 +16,7 @@
 
 namespace offline_pages {
 class PrefetchService;
-static constexpr base::TimeDelta kPrefetchDownloadLifetime =
-    base::TimeDelta::FromDays(2);
+static constexpr base::TimeDelta kPrefetchDownloadLifetime = base::Days(2);
 
 // Asynchronously downloads the archive.
 class PrefetchDownloader {
diff --git a/components/offline_pages/core/prefetch/prefetch_downloader_impl_unittest.cc b/components/offline_pages/core/prefetch/prefetch_downloader_impl_unittest.cc
index 35e1c21e..4a6e1569 100644
--- a/components/offline_pages/core/prefetch/prefetch_downloader_impl_unittest.cc
+++ b/components/offline_pages/core/prefetch/prefetch_downloader_impl_unittest.cc
@@ -128,8 +128,7 @@
                           "\r\n\r\n"}),
             params->request_params.request_headers.ToString());
 
-  EXPECT_EQ(base::TimeDelta::FromDays(2),
-            params->scheduling_params.cancel_time - epoch);
+  EXPECT_EQ(base::Days(2), params->scheduling_params.cancel_time - epoch);
   RunUntilIdle();
 }
 
diff --git a/components/offline_pages/core/prefetch/prefetch_prefs.cc b/components/offline_pages/core/prefetch/prefetch_prefs.cc
index 0fbfcf47..218d905 100644
--- a/components/offline_pages/core/prefetch/prefetch_prefs.cc
+++ b/components/offline_pages/core/prefetch/prefetch_prefs.cc
@@ -19,7 +19,7 @@
     "offline_prefetch.testing_header_value";
 const char kEnabledByServer[] = "offline_prefetch.enabled_by_server";
 const char kNextForbiddenCheckTimePref[] = "offline_prefetch.next_gpb_check";
-const base::TimeDelta kForbiddenCheckDelay = base::TimeDelta::FromDays(7);
+const base::TimeDelta kForbiddenCheckDelay = base::Days(7);
 const char kPrefetchCachedGCMToken[] = "offline_prefetch.gcm_token";
 
 }  // namespace
@@ -62,9 +62,9 @@
 bool IsLimitlessPrefetchingEnabled(PrefService* prefs) {
   base::TimeDelta max_duration;
   if (version_info::IsOfficialBuild())
-    max_duration = base::TimeDelta::FromDays(1);
+    max_duration = base::Days(1);
   else
-    max_duration = base::TimeDelta::FromDays(365);
+    max_duration = base::Days(365);
 
   DCHECK(prefs);
   const base::Time enabled_time =
diff --git a/components/offline_pages/core/prefetch/prefetch_prefs_unittest.cc b/components/offline_pages/core/prefetch/prefetch_prefs_unittest.cc
index f77ba0f7..fed41d251 100644
--- a/components/offline_pages/core/prefetch/prefetch_prefs_unittest.cc
+++ b/components/offline_pages/core/prefetch/prefetch_prefs_unittest.cc
@@ -61,11 +61,11 @@
   // expected.
   base::TimeDelta enabled_duration;
   if (version_info::IsOfficialBuild())
-    enabled_duration = base::TimeDelta::FromDays(1);
+    enabled_duration = base::Days(1);
   else
-    enabled_duration = base::TimeDelta::FromDays(365);
+    enabled_duration = base::Days(365);
 
-  base::TimeDelta advance_delta = base::TimeDelta::FromHours(2);
+  base::TimeDelta advance_delta = base::Hours(2);
   base::Time now = OfflineTimeNow();
 
   prefetch_prefs::SetLimitlessPrefetchingEnabled(prefs(), true);
@@ -114,7 +114,7 @@
   EXPECT_FALSE(prefetch_prefs::IsForbiddenCheckDue(prefs()));
 
   TestScopedOfflineClock test_clock;
-  base::Time later = OfflineTimeNow() + base::TimeDelta::FromDays(8);
+  base::Time later = OfflineTimeNow() + base::Days(8);
   test_clock.SetNow(later);
 
   prefetch_prefs::SetPrefetchingEnabledInSettings(prefs(), false);
@@ -148,7 +148,7 @@
 
   // Jump ahead in time so that a check should be due.
   TestScopedOfflineClock test_clock;
-  test_clock.SetNow(OfflineTimeNow() + base::TimeDelta::FromDays(8));
+  test_clock.SetNow(OfflineTimeNow() + base::Days(8));
 
   EXPECT_TRUE(prefetch_prefs::IsForbiddenCheckDue(prefs()));
   EXPECT_FALSE(prefetch_prefs::IsEnabledByServerUnknown(prefs()));
diff --git a/components/offline_pages/core/prefetch/store/prefetch_downloader_quota.cc b/components/offline_pages/core/prefetch/store/prefetch_downloader_quota.cc
index 5fa9bc126..5c484da3 100644
--- a/components/offline_pages/core/prefetch/store/prefetch_downloader_quota.cc
+++ b/components/offline_pages/core/prefetch/store/prefetch_downloader_quota.cc
@@ -24,7 +24,7 @@
 static const char kMaxDailyQuotaBytesParamName[] =
     "offline_pages_max_daily_quota_bytes";
 
-constexpr base::TimeDelta kQuotaPeriod = base::TimeDelta::FromDays(1);
+constexpr base::TimeDelta kQuotaPeriod = base::Days(1);
 
 // Normalize quota to [0, GetMaxDailyQuotaBytes()].
 int64_t NormalizeQuota(int64_t quota) {
diff --git a/components/offline_pages/core/prefetch/store/prefetch_downloader_quota_unittest.cc b/components/offline_pages/core/prefetch/store/prefetch_downloader_quota_unittest.cc
index 9488e17..fe1e9ab6 100644
--- a/components/offline_pages/core/prefetch/store/prefetch_downloader_quota_unittest.cc
+++ b/components/offline_pages/core/prefetch/store/prefetch_downloader_quota_unittest.cc
@@ -97,21 +97,21 @@
 TEST_F(PrefetchDownloaderQuotaTest, CheckQuotaForHalfDay) {
   // Start with no quota, and wait for half a day, we should have half of quota.
   EXPECT_TRUE(store_util()->SetPrefetchQuota(0));
-  store_util()->clock()->Advance(base::TimeDelta::FromHours(12));
+  store_util()->clock()->Advance(base::Hours(12));
   EXPECT_EQ(PrefetchDownloaderQuota::kDefaultMaxDailyQuotaBytes / 2,
             store_util()->GetPrefetchQuota());
 
   // Now start with quota set to 1/4. Expecting 3/4 of quota.
   EXPECT_TRUE(store_util()->SetPrefetchQuota(
       PrefetchDownloaderQuota::kDefaultMaxDailyQuotaBytes / 4));
-  store_util()->clock()->Advance(base::TimeDelta::FromHours(12));
+  store_util()->clock()->Advance(base::Hours(12));
   EXPECT_EQ(3 * PrefetchDownloaderQuota::kDefaultMaxDailyQuotaBytes / 4,
             store_util()->GetPrefetchQuota());
 
   // Now start with quota set to 1/2. Expects full quota.
   EXPECT_TRUE(store_util()->SetPrefetchQuota(
       PrefetchDownloaderQuota::kDefaultMaxDailyQuotaBytes / 2));
-  store_util()->clock()->Advance(base::TimeDelta::FromHours(12));
+  store_util()->clock()->Advance(base::Hours(12));
   EXPECT_EQ(PrefetchDownloaderQuota::kDefaultMaxDailyQuotaBytes,
             store_util()->GetPrefetchQuota());
 
@@ -119,7 +119,7 @@
   // maximum.
   EXPECT_TRUE(store_util()->SetPrefetchQuota(
       3 * PrefetchDownloaderQuota::kDefaultMaxDailyQuotaBytes / 4));
-  store_util()->clock()->Advance(base::TimeDelta::FromHours(12));
+  store_util()->clock()->Advance(base::Hours(12));
   EXPECT_EQ(PrefetchDownloaderQuota::kDefaultMaxDailyQuotaBytes,
             store_util()->GetPrefetchQuota());
 }
@@ -127,21 +127,21 @@
 // This test deals with small and extreme time change scenarios.
 TEST_F(PrefetchDownloaderQuotaTest, CheckQuotaAfterTimeChange) {
   EXPECT_TRUE(store_util()->SetPrefetchQuota(0));
-  store_util()->clock()->Advance(base::TimeDelta::FromHours(-1));
+  store_util()->clock()->Advance(base::Hours(-1));
   EXPECT_EQ(0, store_util()->GetPrefetchQuota());
 
   EXPECT_TRUE(store_util()->SetPrefetchQuota(
       PrefetchDownloaderQuota::kDefaultMaxDailyQuotaBytes));
-  store_util()->clock()->Advance(base::TimeDelta::FromHours(1));
+  store_util()->clock()->Advance(base::Hours(1));
   EXPECT_EQ(PrefetchDownloaderQuota::kDefaultMaxDailyQuotaBytes,
             store_util()->GetPrefetchQuota());
 
   // When going back in time, we get a situation where quota would be negative,
   // we detect it and write back a value of 0 with that date.
-  store_util()->clock()->Advance(base::TimeDelta::FromDays(-365));
+  store_util()->clock()->Advance(base::Days(-365));
   EXPECT_EQ(0, store_util()->GetPrefetchQuota());
   // Above implies that after another day our quota is back to full daily max.
-  store_util()->clock()->Advance(base::TimeDelta::FromDays(1));
+  store_util()->clock()->Advance(base::Days(1));
   EXPECT_EQ(PrefetchDownloaderQuota::kDefaultMaxDailyQuotaBytes,
             store_util()->GetPrefetchQuota());
 }
diff --git a/components/offline_pages/core/prefetch/tasks/add_unique_urls_task.cc b/components/offline_pages/core/prefetch/tasks/add_unique_urls_task.cc
index 417848d..748dda1 100644
--- a/components/offline_pages/core/prefetch/tasks/add_unique_urls_task.cc
+++ b/components/offline_pages/core/prefetch/tasks/add_unique_urls_task.cc
@@ -137,7 +137,7 @@
 
     // We artificially add a microsecond to ensure that the timestamp is
     // different (and guarantee a particular order when sorting by timestamp).
-    now += base::TimeDelta::FromMicroseconds(1);
+    now += base::Microseconds(1);
   }
 
   if (!transaction.Commit())
diff --git a/components/offline_pages/core/prefetch/tasks/add_unique_urls_task_unittest.cc b/components/offline_pages/core/prefetch/tasks/add_unique_urls_task_unittest.cc
index 4b212e1..df8a3bc 100644
--- a/components/offline_pages/core/prefetch/tasks/add_unique_urls_task_unittest.cc
+++ b/components/offline_pages/core/prefetch/tasks/add_unique_urls_task_unittest.cc
@@ -155,7 +155,7 @@
 
   // Advance time by 1 hour to verify that timestamp of ID-1 is updated on the
   // next task execution.
-  clock.Advance(base::TimeDelta::FromHours(1));
+  clock.Advance(base::Hours(1));
   const base::Time later_time = clock.Now();
 
   // Turn ID-1 and ID-2 items into zombies.
@@ -182,11 +182,9 @@
   // Note: as timestamps are inserted with microsecond variations, we're
   // comparing them using a safe range of 1 second.
   EXPECT_LE(later_time, items[kClientId1].creation_time);
-  EXPECT_GE(later_time + base::TimeDelta::FromSeconds(1),
-            items[kClientId1].creation_time);
+  EXPECT_GE(later_time + base::Seconds(1), items[kClientId1].creation_time);
   EXPECT_LE(later_time, items[kClientId1].freshness_time);
-  EXPECT_GE(later_time + base::TimeDelta::FromSeconds(1),
-            items[kClientId1].freshness_time);
+  EXPECT_GE(later_time + base::Seconds(1), items[kClientId1].freshness_time);
 
   // Previously existing ID-2 should not have been modified.
   ASSERT_GT(items.count(kClientId2), 0U);
@@ -195,11 +193,9 @@
   EXPECT_EQ(PrefetchURL2().title, items[kClientId2].title);
   EXPECT_EQ(PrefetchItemState::ZOMBIE, items[kClientId2].state);
   EXPECT_LE(start_time, items[kClientId2].creation_time);
-  EXPECT_GE(start_time + base::TimeDelta::FromSeconds(1),
-            items[kClientId2].creation_time);
+  EXPECT_GE(start_time + base::Seconds(1), items[kClientId2].creation_time);
   EXPECT_LE(start_time, items[kClientId2].freshness_time);
-  EXPECT_GE(start_time + base::TimeDelta::FromSeconds(1),
-            items[kClientId2].freshness_time);
+  EXPECT_GE(start_time + base::Seconds(1), items[kClientId2].freshness_time);
 
   // Newly suggested ID-3 should be added.
   ASSERT_GT(items.count(kClientId3), 0U);
@@ -208,11 +204,9 @@
   EXPECT_EQ(PrefetchURL3().title, items[kClientId3].title);
   EXPECT_EQ(PrefetchItemState::NEW_REQUEST, items[kClientId3].state);
   EXPECT_LE(later_time, items[kClientId3].creation_time);
-  EXPECT_GE(later_time + base::TimeDelta::FromSeconds(1),
-            items[kClientId3].creation_time);
+  EXPECT_GE(later_time + base::Seconds(1), items[kClientId3].creation_time);
   EXPECT_LE(later_time, items[kClientId3].freshness_time);
-  EXPECT_GE(later_time + base::TimeDelta::FromSeconds(1),
-            items[kClientId3].freshness_time);
+  EXPECT_GE(later_time + base::Seconds(1), items[kClientId3].freshness_time);
 }
 
 }  // namespace offline_pages
diff --git a/components/offline_pages/core/prefetch/tasks/download_archives_task_unittest.cc b/components/offline_pages/core/prefetch/tasks/download_archives_task_unittest.cc
index 4370332..550f92f 100644
--- a/components/offline_pages/core/prefetch/tasks/download_archives_task_unittest.cc
+++ b/components/offline_pages/core/prefetch/tasks/download_archives_task_unittest.cc
@@ -103,7 +103,7 @@
 }
 
 TEST_F(DownloadArchivesTaskTest, SingleArchiveToDownload) {
-  constexpr auto kFreshnessDelta = base::TimeDelta::FromMilliseconds(123);
+  constexpr auto kFreshnessDelta = base::Milliseconds(123);
 
   int64_t dummy_item_id = InsertDummyItem();
   int64_t download_item_id = InsertItemToDownload(kLargeArchiveSize);
@@ -204,7 +204,7 @@
   int64_t dummy_item_id = InsertDummyItem();
   // download_item_1 is expected to be fresher, therefore we create it second.
   int64_t download_item_id_2 = InsertItemToDownload(kLargeArchiveSize);
-  FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  FastForwardBy(base::Milliseconds(1));
   int64_t download_item_id_1 = InsertItemToDownload(kLargeArchiveSize);
 
   std::set<PrefetchItem> items_before_run;
@@ -258,7 +258,7 @@
     item_ids.insert(item_ids.begin(), InsertItemToDownload(kSmallArchiveSize));
     // Add some time in between them so that the download order is deterministic
     // and the checks further down work.
-    FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+    FastForwardBy(base::Milliseconds(1));
   }
 
   std::set<PrefetchItem> items_before_run;
@@ -327,7 +327,7 @@
     item_ids.insert(item_ids.begin(), InsertItemToDownload(kLargeArchiveSize));
     // Add some time in between them so that the download order is deterministic
     // and the checks further down work.
-    FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+    FastForwardBy(base::Milliseconds(1));
   }
 
   std::set<PrefetchItem> items_before_run;
diff --git a/components/offline_pages/core/prefetch/tasks/generate_page_bundle_task_unittest.cc b/components/offline_pages/core/prefetch/tasks/generate_page_bundle_task_unittest.cc
index e4cdd5e2..638e274 100644
--- a/components/offline_pages/core/prefetch/tasks/generate_page_bundle_task_unittest.cc
+++ b/components/offline_pages/core/prefetch/tasks/generate_page_bundle_task_unittest.cc
@@ -77,7 +77,7 @@
   item1.creation_time = item1.freshness_time;
   EXPECT_TRUE(store_util()->InsertPrefetchItem(item1));
 
-  clock.Advance(base::TimeDelta::FromSeconds(1));
+  clock.Advance(base::Seconds(1));
 
   // This item will also be sent with the bundle request but being the freshest
   // it will come first in the list.
@@ -98,7 +98,7 @@
 
   EXPECT_EQ(3, store_util()->CountPrefetchItems());
 
-  clock.Advance(base::TimeDelta::FromHours(1));
+  clock.Advance(base::Hours(1));
 
   GeneratePageBundleTask task(dispatcher(), store(), gcm_token(),
                               prefetch_request_factory(),
diff --git a/components/offline_pages/core/prefetch/tasks/metrics_finalization_task.cc b/components/offline_pages/core/prefetch/tasks/metrics_finalization_task.cc
index 775b9a4..62641e2 100644
--- a/components/offline_pages/core/prefetch/tasks/metrics_finalization_task.cc
+++ b/components/offline_pages/core/prefetch/tasks/metrics_finalization_task.cc
@@ -125,8 +125,7 @@
 
 void ReportMetricsFor(const PrefetchItemStats& url, const base::Time now) {
   // Lifetime reporting.
-  static const int kFourWeeksInSeconds =
-      base::TimeDelta::FromDays(28).InSeconds();
+  static const int kFourWeeksInSeconds = base::Days(28).InSeconds();
   const bool successful = url.error_code == PrefetchItemErrorCode::SUCCESS;
   int64_t lifetime_seconds = (now - url.creation_time).InSeconds();
   if (successful) {
diff --git a/components/offline_pages/core/prefetch/tasks/metrics_finalization_task_unittest.cc b/components/offline_pages/core/prefetch/tasks/metrics_finalization_task_unittest.cc
index 6a7bbe7..feaa372 100644
--- a/components/offline_pages/core/prefetch/tasks/metrics_finalization_task_unittest.cc
+++ b/components/offline_pages/core/prefetch/tasks/metrics_finalization_task_unittest.cc
@@ -98,7 +98,7 @@
 
   // Overrides the offline clock and set a current time in the future.
   TestScopedOfflineClock clock;
-  clock.SetNow(before_insert_time + base::TimeDelta::FromHours(1));
+  clock.SetNow(before_insert_time + base::Hours(1));
 
   // Execute the metrics task.
   RunTask(metrics_finalization_task_.get());
diff --git a/components/offline_pages/core/prefetch/tasks/stale_entry_finalizer_task.cc b/components/offline_pages/core/prefetch/tasks/stale_entry_finalizer_task.cc
index f1c95dc..54cef37 100644
--- a/components/offline_pages/core/prefetch/tasks/stale_entry_finalizer_task.cc
+++ b/components/offline_pages/core/prefetch/tasks/stale_entry_finalizer_task.cc
@@ -28,11 +28,11 @@
 
 // Maximum amount of time into the future an item can has its freshness time set
 // to after which it will be finalized (or deleted if in the zombie state).
-constexpr base::TimeDelta kFutureItemTimeLimit = base::TimeDelta::FromDays(1);
+constexpr base::TimeDelta kFutureItemTimeLimit = base::Days(1);
 
 // Expiration time delay for items entering the zombie state, after which they
 // are permanently deleted.
-constexpr base::TimeDelta kZombieItemLifetime = base::TimeDelta::FromDays(7);
+constexpr base::TimeDelta kZombieItemLifetime = base::Days(7);
 
 // If this time changes, we need to update the desciption in histograms.xml
 // for OfflinePages.Prefetching.StuckItemState.
@@ -42,12 +42,12 @@
   switch (state) {
     // Bucket 1.
     case PrefetchItemState::NEW_REQUEST:
-      return base::TimeDelta::FromDays(1);
+      return base::Days(1);
     // Bucket 2.
     case PrefetchItemState::AWAITING_GCM:
     case PrefetchItemState::RECEIVED_GCM:
     case PrefetchItemState::RECEIVED_BUNDLE:
-      return base::TimeDelta::FromDays(1);
+      return base::Days(1);
     // Bucket 3.
     case PrefetchItemState::DOWNLOADING:
     case PrefetchItemState::IMPORTING:
@@ -61,7 +61,7 @@
     case PrefetchItemState::ZOMBIE:
       NOTREACHED();
   }
-  return base::TimeDelta::FromDays(1);
+  return base::Days(1);
 }
 
 PrefetchItemErrorCode ErrorCodeForState(PrefetchItemState state) {
@@ -164,8 +164,8 @@
 // If there is a bug in our code, an item might be stuck in the queue waiting
 // on an event that didn't happen.  If so, finalize that item and report it.
 void ReportAndFinalizeStuckItems(base::Time now, sql::Database* db) {
-  const int64_t earliest_valid_creation_time = store_utils::ToDatabaseTime(
-      now - base::TimeDelta::FromDays(kStuckTimeLimitInDays));
+  const int64_t earliest_valid_creation_time =
+      store_utils::ToDatabaseTime(now - base::Days(kStuckTimeLimitInDays));
   // Report.
   {
     static constexpr char kSql[] =
diff --git a/components/offline_pages/core/prefetch/tasks/stale_entry_finalizer_task_unittest.cc b/components/offline_pages/core/prefetch/tasks/stale_entry_finalizer_task_unittest.cc
index 1bb956d3..3333299 100644
--- a/components/offline_pages/core/prefetch/tasks/stale_entry_finalizer_task_unittest.cc
+++ b/components/offline_pages/core/prefetch/tasks/stale_entry_finalizer_task_unittest.cc
@@ -72,7 +72,7 @@
   PrefetchTaskTestBase::SetUp();
   stale_finalizer_task_ =
       std::make_unique<StaleEntryFinalizerTask>(dispatcher(), store());
-  simple_test_clock_.SetNow(base::Time() + base::TimeDelta::FromDays(100));
+  simple_test_clock_.SetNow(base::Time() + base::Days(100));
 }
 
 void StaleEntryFinalizerTaskTest::TearDown() {
@@ -84,8 +84,8 @@
     PrefetchItemState state,
     int freshness_delta_in_hours) {
   PrefetchItem item(item_generator()->CreateItem(state));
-  item.freshness_time = simple_test_clock_.Now() +
-                        base::TimeDelta::FromHours(freshness_delta_in_hours);
+  item.freshness_time =
+      simple_test_clock_.Now() + base::Hours(freshness_delta_in_hours);
   item.creation_time = simple_test_clock_.Now();
   EXPECT_TRUE(store_util()->InsertPrefetchItem(item))
       << "Failed inserting item with state " << static_cast<int>(state);
@@ -96,8 +96,8 @@
     PrefetchItemState state,
     int creation_delta_in_hours) {
   PrefetchItem item(item_generator()->CreateItem(state));
-  item.creation_time = simple_test_clock_.Now() +
-                       base::TimeDelta::FromHours(creation_delta_in_hours);
+  item.creation_time =
+      simple_test_clock_.Now() + base::Hours(creation_delta_in_hours);
   item.freshness_time = simple_test_clock_.Now();
   EXPECT_TRUE(store_util()->InsertPrefetchItem(item))
       << "Failed inserting item with state " << static_cast<int>(state);
diff --git a/components/offline_pages/core/snapshot_controller.cc b/components/offline_pages/core/snapshot_controller.cc
index 8734f00f..2807320b 100644
--- a/components/offline_pages/core/snapshot_controller.cc
+++ b/components/offline_pages/core/snapshot_controller.cc
@@ -71,7 +71,7 @@
       base::BindOnce(&SnapshotController::MaybeStartSnapshot,
                      weak_ptr_factory_.GetWeakPtr(),
                      PageQuality::FAIR_AND_IMPROVING),
-      base::TimeDelta::FromMilliseconds(delay_after_document_available_ms_));
+      base::Milliseconds(delay_after_document_available_ms_));
 }
 
 void SnapshotController::DocumentOnLoadCompletedInMainFrame() {
@@ -80,8 +80,7 @@
       FROM_HERE,
       base::BindOnce(&SnapshotController::MaybeStartSnapshotThenStop,
                      weak_ptr_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(
-          delay_after_document_on_load_completed_ms_));
+      base::Milliseconds(delay_after_document_on_load_completed_ms_));
 }
 
 void SnapshotController::MaybeStartSnapshot(PageQuality updated_page_quality) {
diff --git a/components/offline_pages/core/snapshot_controller_unittest.cc b/components/offline_pages/core/snapshot_controller_unittest.cc
index 7d29c5f..03d8c3c 100644
--- a/components/offline_pages/core/snapshot_controller_unittest.cc
+++ b/components/offline_pages/core/snapshot_controller_unittest.cc
@@ -79,7 +79,7 @@
   controller()->DocumentOnLoadCompletedInMainFrame();
   PumpLoop();
   EXPECT_EQ(0, snapshot_count());
-  FastForwardBy(base::TimeDelta::FromMilliseconds(
+  FastForwardBy(base::Milliseconds(
       controller()->GetDelayAfterDocumentOnLoadCompletedForTest()));
   EXPECT_EQ(1, snapshot_count());
 }
@@ -90,7 +90,7 @@
   controller()->DocumentAvailableInMainFrame();
   PumpLoop();
   EXPECT_EQ(0, snapshot_count());
-  FastForwardBy(base::TimeDelta::FromMilliseconds(
+  FastForwardBy(base::Milliseconds(
       controller()->GetDelayAfterDocumentAvailableForTest()));
   EXPECT_EQ(1, snapshot_count());
 }
@@ -105,14 +105,14 @@
   EXPECT_EQ(0, snapshot_count());
   controller()->DocumentOnLoadCompletedInMainFrame();
   // Advance time to OnLoadCompleted delay to trigger snapshot.
-  FastForwardBy(base::TimeDelta::FromMilliseconds(
+  FastForwardBy(base::Milliseconds(
       controller()->GetDelayAfterDocumentOnLoadCompletedForTest()));
   EXPECT_EQ(1, snapshot_count());
   // Report that snapshot is completed.
   controller()->PendingSnapshotCompleted();
   // Even though previous snapshot is completed, new one should not start
   // when this DocumentAvailable delay expires.
-  FastForwardBy(base::TimeDelta::FromMilliseconds(
+  FastForwardBy(base::Milliseconds(
       controller()->GetDelayAfterDocumentAvailableForTest()));
   EXPECT_EQ(1, snapshot_count());
 }
@@ -122,14 +122,14 @@
   controller()->DocumentAvailableInMainFrame();
   PumpLoop();
   EXPECT_EQ(0, snapshot_count());
-  FastForwardBy(base::TimeDelta::FromMilliseconds(
+  FastForwardBy(base::Milliseconds(
       controller()->GetDelayAfterDocumentAvailableForTest()));
   EXPECT_EQ(1, snapshot_count());
   // Report that snapshot is completed.
   controller()->PendingSnapshotCompleted();
   // OnLoad should make 2nd snapshot after its delay.
   controller()->DocumentOnLoadCompletedInMainFrame();
-  FastForwardBy(base::TimeDelta::FromMilliseconds(
+  FastForwardBy(base::Milliseconds(
       controller()->GetDelayAfterDocumentOnLoadCompletedForTest()));
   EXPECT_EQ(2, snapshot_count());
 }
@@ -140,7 +140,7 @@
   PumpLoop();
   EXPECT_EQ(0, snapshot_count());
   controller()->Stop();
-  FastForwardBy(base::TimeDelta::FromMilliseconds(
+  FastForwardBy(base::Milliseconds(
       controller()->GetDelayAfterDocumentAvailableForTest()));
   // Should not start snapshots
   EXPECT_EQ(0, snapshot_count());
@@ -153,18 +153,18 @@
   controller()->DocumentAvailableInMainFrame();
 
   controller()->Reset();
-  FastForwardBy(base::TimeDelta::FromMilliseconds(
+  FastForwardBy(base::Milliseconds(
       controller()->GetDelayAfterDocumentAvailableForTest()));
   // No snapshot since session was reset.
   EXPECT_EQ(0, snapshot_count());
   controller()->DocumentOnLoadCompletedInMainFrame();
-  FastForwardBy(base::TimeDelta::FromMilliseconds(
+  FastForwardBy(base::Milliseconds(
       controller()->GetDelayAfterDocumentOnLoadCompletedForTest()));
   EXPECT_EQ(1, snapshot_count());
 
   controller()->Reset();
   controller()->DocumentAvailableInMainFrame();
-  FastForwardBy(base::TimeDelta::FromMilliseconds(
+  FastForwardBy(base::Milliseconds(
       controller()->GetDelayAfterDocumentAvailableForTest()));
   // No snapshot since session was reset.
   EXPECT_EQ(2, snapshot_count());
@@ -174,7 +174,7 @@
 // as done later. That reporting should have no effect nor crash.
 TEST_F(SnapshotControllerTest, ClientResetWhileSnapshotting) {
   controller()->DocumentOnLoadCompletedInMainFrame();
-  FastForwardBy(base::TimeDelta::FromMilliseconds(
+  FastForwardBy(base::Milliseconds(
       controller()->GetDelayAfterDocumentOnLoadCompletedForTest()));
   EXPECT_EQ(1, snapshot_count());
   // This normally happens when navigation starts.
@@ -182,7 +182,7 @@
   controller()->PendingSnapshotCompleted();
   // Next snapshot should be initiated when new document is loaded.
   controller()->DocumentAvailableInMainFrame();
-  FastForwardBy(base::TimeDelta::FromMilliseconds(
+  FastForwardBy(base::Milliseconds(
       controller()->GetDelayAfterDocumentAvailableForTest()));
   // No snapshot since session was reset.
   EXPECT_EQ(2, snapshot_count());
diff --git a/components/offline_pages/task/sql_store_base.h b/components/offline_pages/task/sql_store_base.h
index 40e66dcc..e2c28c4 100644
--- a/components/offline_pages/task/sql_store_base.h
+++ b/components/offline_pages/task/sql_store_base.h
@@ -46,8 +46,7 @@
 
   // Defines inactivity time of DB after which it is going to be closed.
   // TODO(crbug.com/933369): Derive appropriate value in a scientific way.
-  static constexpr base::TimeDelta kClosingDelay =
-      base::TimeDelta::FromSeconds(20);
+  static constexpr base::TimeDelta kClosingDelay = base::Seconds(20);
 
   // If |file_path| is empty, this constructs an in-memory database.
   SqlStoreBase(const std::string& histogram_tag,
diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/omnibox/browser/autocomplete_controller.cc
index abccdc0..bb3bf8b 100644
--- a/components/omnibox/browser/autocomplete_controller.cc
+++ b/components/omnibox/browser/autocomplete_controller.cc
@@ -963,9 +963,8 @@
   const int kExpireTimeMS = 500;
 
   if (result_.HasCopiedMatches())
-    expire_timer_.Start(FROM_HERE,
-                        base::TimeDelta::FromMilliseconds(kExpireTimeMS),
-                        this, &AutocompleteController::ExpireCopiedEntries);
+    expire_timer_.Start(FROM_HERE, base::Milliseconds(kExpireTimeMS), this,
+                        &AutocompleteController::ExpireCopiedEntries);
 }
 
 void AutocompleteController::StartStopTimer() {
diff --git a/components/omnibox/browser/autocomplete_provider_debouncer.cc b/components/omnibox/browser/autocomplete_provider_debouncer.cc
index 91dd225..252f2e9c 100644
--- a/components/omnibox/browser/autocomplete_provider_debouncer.cc
+++ b/components/omnibox/browser/autocomplete_provider_debouncer.cc
@@ -14,7 +14,7 @@
     base::OnceCallback<void()> callback) {
   callback_ = std::move(callback);
 
-  base::TimeDelta delay(base::TimeDelta::FromMilliseconds(delay_ms_));
+  base::TimeDelta delay(base::Milliseconds(delay_ms_));
   if (from_last_run_)
     delay -= base::TimeTicks::Now() - time_last_run_;
 
diff --git a/components/omnibox/browser/autocomplete_provider_unittest.cc b/components/omnibox/browser/autocomplete_provider_unittest.cc
index 8e9e143..f5244df 100644
--- a/components/omnibox/browser/autocomplete_provider_unittest.cc
+++ b/components/omnibox/browser/autocomplete_provider_unittest.cc
@@ -932,30 +932,30 @@
   // and the field trial triggered bit, many conditions need to be satisfied.
   AutocompleteMatch match(nullptr, 1100, false,
                           AutocompleteMatchType::SEARCH_SUGGEST);
-  GURL url(GetDestinationURL(match, base::TimeDelta::FromMilliseconds(2456)));
+  GURL url(GetDestinationURL(match, base::Milliseconds(2456)));
   EXPECT_TRUE(url.path().empty());
 
   // The protocol needs to be https.
   RegisterTemplateURL(kTestTemplateURLKeyword,
                       "https://aqs/{searchTerms}/{google:assistedQueryStats}");
-  url = GetDestinationURL(match, base::TimeDelta::FromMilliseconds(2456));
+  url = GetDestinationURL(match, base::Milliseconds(2456));
   EXPECT_TRUE(url.path().empty());
 
   // There needs to be a keyword provider.
   match.keyword = kTestTemplateURLKeyword;
-  url = GetDestinationURL(match, base::TimeDelta::FromMilliseconds(2456));
+  url = GetDestinationURL(match, base::Milliseconds(2456));
   EXPECT_TRUE(url.path().empty());
 
   // search_terms_args needs to be set.
   match.search_terms_args =
       std::make_unique<TemplateURLRef::SearchTermsArgs>(std::u16string());
-  url = GetDestinationURL(match, base::TimeDelta::FromMilliseconds(2456));
+  url = GetDestinationURL(match, base::Milliseconds(2456));
   EXPECT_TRUE(url.path().empty());
 
   // assisted_query_stats needs to have been previously set.
   match.search_terms_args->assisted_query_stats =
       "chrome.0.69i57j69i58j5l2j0l3j69i59";
-  url = GetDestinationURL(match, base::TimeDelta::FromMilliseconds(2456));
+  url = GetDestinationURL(match, base::Milliseconds(2456));
   EXPECT_EQ("//aqs=chrome.0.69i57j69i58j5l2j0l3j69i59.2456j0j0&", url.path());
 
   // Test field trial triggered bit set.
@@ -963,7 +963,7 @@
       "chrome.0.69i57j69i58j5l2j0l3j69i59";
   set_search_provider_field_trial_triggered_in_session(true);
   EXPECT_TRUE(search_provider_field_trial_triggered_in_session());
-  url = GetDestinationURL(match, base::TimeDelta::FromMilliseconds(2456));
+  url = GetDestinationURL(match, base::Milliseconds(2456));
   EXPECT_EQ("//aqs=chrome.0.69i57j69i58j5l2j0l3j69i59.2456j1j0&", url.path());
 
   // Test page classification set.
@@ -972,7 +972,7 @@
   set_current_page_classification(metrics::OmniboxEventProto::OTHER);
   set_search_provider_field_trial_triggered_in_session(false);
   EXPECT_FALSE(search_provider_field_trial_triggered_in_session());
-  url = GetDestinationURL(match, base::TimeDelta::FromMilliseconds(2456));
+  url = GetDestinationURL(match, base::Milliseconds(2456));
   EXPECT_EQ("//aqs=chrome.0.69i57j69i58j5l2j0l3j69i59.2456j0j4&", url.path());
 
   // Test page classification and field trial triggered set.
@@ -980,7 +980,7 @@
       "chrome.0.69i57j69i58j5l2j0l3j69i59";
   set_search_provider_field_trial_triggered_in_session(true);
   EXPECT_TRUE(search_provider_field_trial_triggered_in_session());
-  url = GetDestinationURL(match, base::TimeDelta::FromMilliseconds(2456));
+  url = GetDestinationURL(match, base::Milliseconds(2456));
   EXPECT_EQ("//aqs=chrome.0.69i57j69i58j5l2j0l3j69i59.2456j1j4&", url.path());
 
   // Test experiment stats set.
@@ -988,7 +988,7 @@
       "chrome.0.69i57j69i58j5l2j0l3j69i59";
   add_zero_suggest_provider_experiment_stat(
       base::test::ParseJson(R"json({"2":"0:67","4":10001})json"));
-  url = GetDestinationURL(match, base::TimeDelta::FromMilliseconds(2456));
+  url = GetDestinationURL(match, base::Milliseconds(2456));
   EXPECT_EQ("//aqs=chrome.0.69i57j69i58j5l2j0l3j69i59.2456j1j4.10001i0,67&",
             url.path());
 
@@ -996,7 +996,7 @@
       "chrome.0.69i57j69i58j5l2j0l3j69i59";
   add_zero_suggest_provider_experiment_stat(
       base::test::ParseJson(R"json({"2":"54:67","4":10001})json"));
-  url = GetDestinationURL(match, base::TimeDelta::FromMilliseconds(2456));
+  url = GetDestinationURL(match, base::Milliseconds(2456));
   EXPECT_EQ(
       "//"
       "aqs=chrome.0.69i57j69i58j5l2j0l3j69i59.2456j1j4.10001i0,67j10001i54,67&",
diff --git a/components/omnibox/browser/autocomplete_result.cc b/components/omnibox/browser/autocomplete_result.cc
index f488ddab..f6b9fc6 100644
--- a/components/omnibox/browser/autocomplete_result.cc
+++ b/components/omnibox/browser/autocomplete_result.cc
@@ -493,9 +493,9 @@
   }
 
   base::TimeDelta time_delta = base::TimeTicks::Now() - start_time;
-  UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
-      "Omnibox.TabMatchTime", time_delta, base::TimeDelta::FromMicroseconds(1),
-      base::TimeDelta::FromMilliseconds(5), 50);
+  UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES("Omnibox.TabMatchTime", time_delta,
+                                          base::Microseconds(1),
+                                          base::Milliseconds(5), 50);
 }
 
 bool AutocompleteResult::HasCopiedMatches() const {
diff --git a/components/omnibox/browser/clipboard_provider_unittest.cc b/components/omnibox/browser/clipboard_provider_unittest.cc
index 64074bb..357c4373 100644
--- a/components/omnibox/browser/clipboard_provider_unittest.cc
+++ b/components/omnibox/browser/clipboard_provider_unittest.cc
@@ -91,16 +91,15 @@
   void ClearClipboard() { clipboard_content_.SuppressClipboardContent(); }
 
   void SetClipboardUrl(const GURL& url) {
-    clipboard_content_.SetClipboardURL(url, base::TimeDelta::FromMinutes(9));
+    clipboard_content_.SetClipboardURL(url, base::Minutes(9));
   }
 
   void SetClipboardText(const std::u16string& text) {
-    clipboard_content_.SetClipboardText(text, base::TimeDelta::FromMinutes(9));
+    clipboard_content_.SetClipboardText(text, base::Minutes(9));
   }
 
   void SetClipboardImage(const gfx::Image& image) {
-    clipboard_content_.SetClipboardImage(image,
-                                         base::TimeDelta::FromMinutes(9));
+    clipboard_content_.SetClipboardImage(image, base::Minutes(9));
   }
 
   bool IsClipboardEmpty() {
diff --git a/components/omnibox/browser/document_provider_unittest.cc b/components/omnibox/browser/document_provider_unittest.cc
index 98f09e2..bed7fef 100644
--- a/components/omnibox/browser/document_provider_unittest.cc
+++ b/components/omnibox/browser/document_provider_unittest.cc
@@ -756,9 +756,9 @@
   base::Time local_now;
   EXPECT_TRUE(base::Time::FromLocalExploded(local_exploded, &local_now));
 
-  base::Time modified_today = local_now + base::TimeDelta::FromHours(-1);
-  base::Time modified_this_year = local_now + base::TimeDelta::FromDays(-8);
-  base::Time modified_last_year = local_now + base::TimeDelta::FromDays(-365);
+  base::Time modified_today = local_now + base::Hours(-1);
+  base::Time modified_this_year = local_now + base::Days(-8);
+  base::Time modified_last_year = local_now + base::Days(-365);
 
   // GenerateLastModifiedString should accept any parsable timestamp, but use
   // ISO8601 UTC timestamp strings since the service returns them in practice.
diff --git a/components/omnibox/browser/history_quick_provider_performance_unittest.cc b/components/omnibox/browser/history_quick_provider_performance_unittest.cc
index 7efeb9b..7bd80fa 100644
--- a/components/omnibox/browser/history_quick_provider_performance_unittest.cc
+++ b/components/omnibox/browser/history_quick_provider_performance_unittest.cc
@@ -58,7 +58,7 @@
   row.set_title(base::UTF8ToUTF16("Page " + fake_hash));
   row.set_visit_count(1);
   row.set_typed_count(1);
-  row.set_last_visit(base::Time::Now() - base::TimeDelta::FromDays(1));
+  row.set_last_visit(base::Time::Now() - base::Days(1));
   return row;
 }
 
diff --git a/components/omnibox/browser/history_quick_provider_unittest.cc b/components/omnibox/browser/history_quick_provider_unittest.cc
index 4dcfd71..dfadaca 100644
--- a/components/omnibox/browser/history_quick_provider_unittest.cc
+++ b/components/omnibox/browser/history_quick_provider_unittest.cc
@@ -292,8 +292,7 @@
     row.set_title(base::UTF8ToUTF16(info.title));
     row.set_visit_count(info.visit_count);
     row.set_typed_count(info.typed_count);
-    row.set_last_visit(base::Time::Now() -
-                       base::TimeDelta::FromDays(info.days_from_now));
+    row.set_last_visit(base::Time::Now() - base::Days(info.days_from_now));
 
     AddFakeURLToHistoryDB(history_backend()->db(), row);
   }
diff --git a/components/omnibox/browser/history_test_util.cc b/components/omnibox/browser/history_test_util.cc
index 16c4a144..ad4410c0 100644
--- a/components/omnibox/browser/history_test_util.cc
+++ b/components/omnibox/browser/history_test_util.cc
@@ -16,7 +16,7 @@
   auto AddVisit = [&](ui::PageTransition transition,
                       bool incremented_omnibox_typed_score) mutable {
     // Assume earlier visits are at one-day intervals.
-    visit_time -= base::TimeDelta::FromDays(1);
+    visit_time -= base::Days(1);
     VisitRow row(url_id, visit_time, 0, transition, 1,
                  incremented_omnibox_typed_score, 0);
     history_db->AddVisit(&row, SOURCE_BROWSED);
diff --git a/components/omnibox/browser/in_memory_url_index_unittest.cc b/components/omnibox/browser/in_memory_url_index_unittest.cc
index 0a497c6..a21559c 100644
--- a/components/omnibox/browser/in_memory_url_index_unittest.cc
+++ b/components/omnibox/browser/in_memory_url_index_unittest.cc
@@ -259,7 +259,7 @@
   // Update [urls.last_visit_time] and [visits.visit_time] to represent a time
   // relative to 'now'.
   base::Time time_right_now = base::Time::NowFromSystemTime();
-  base::TimeDelta day_delta = base::TimeDelta::FromDays(1);
+  base::TimeDelta day_delta = base::Days(1);
   {
     sql::Statement s(db.GetUniqueStatement(
         "UPDATE urls SET last_visit_time = ? - ? * last_visit_time"));
@@ -699,8 +699,8 @@
   constexpr int kLowVisitCount = 20;
   constexpr int kHighVisitCount = 200;
 
-  constexpr base::TimeDelta kOld = base::TimeDelta::FromDays(15);
-  constexpr base::TimeDelta kNew = base::TimeDelta::FromDays(2);
+  constexpr base::TimeDelta kOld = base::Days(15);
+  constexpr base::TimeDelta kNew = base::Days(2);
 
   constexpr int kMinRowId = 5000;
 
@@ -1244,8 +1244,7 @@
   // Overwrite the build time so that we'll think the data is too old
   // and rebuild the cache from history.
   const base::Time fake_rebuild_time =
-      private_data.last_time_rebuilt_from_history_ -
-      base::TimeDelta::FromDays(30);
+      private_data.last_time_rebuilt_from_history_ - base::Days(30);
   private_data.last_time_rebuilt_from_history_ = fake_rebuild_time;
 
   // Capture the current private data for later comparison to restored data.
diff --git a/components/omnibox/browser/omnibox_edit_model.cc b/components/omnibox/browser/omnibox_edit_model.cc
index 7b070663..70e20dda 100644
--- a/components/omnibox/browser/omnibox_edit_model.cc
+++ b/components/omnibox/browser/omnibox_edit_model.cc
@@ -821,8 +821,7 @@
   const bool popup_open = PopupIsOpen();
   if (input_.focus_type() != OmniboxFocusType::DEFAULT || !popup_open ||
       !pasted_text.empty()) {
-    const base::TimeDelta default_time_delta =
-        base::TimeDelta::FromMilliseconds(-1);
+    const base::TimeDelta default_time_delta = base::Milliseconds(-1);
     elapsed_time_since_user_first_modified_omnibox = default_time_delta;
     elapsed_time_since_last_change_to_default_match = default_time_delta;
   }
diff --git a/components/omnibox/browser/omnibox_field_trial.cc b/components/omnibox/browser/omnibox_field_trial.cc
index 480684361..396dcb81 100644
--- a/components/omnibox/browser/omnibox_field_trial.cc
+++ b/components/omnibox/browser/omnibox_field_trial.cc
@@ -182,7 +182,7 @@
     return 1.0;
 
   const double half_life_intervals =
-      time_ms / base::TimeDelta::FromDays(half_life_days_).InMillisecondsF();
+      time_ms / base::Days(half_life_days_).InMillisecondsF();
   return pow(2.0, -half_life_intervals);
 }
 
@@ -220,8 +220,8 @@
   if (base::StringToInt(
           base::FieldTrialList::FindFullName(kStopTimerFieldTrialName),
           &stop_timer_ms))
-    return base::TimeDelta::FromMilliseconds(stop_timer_ms);
-  return base::TimeDelta::FromMilliseconds(1500);
+    return base::Milliseconds(stop_timer_ms);
+  return base::Milliseconds(1500);
 }
 
 base::Time OmniboxFieldTrial::GetLocalHistoryZeroSuggestAgeThreshold() {
@@ -236,7 +236,7 @@
     param_value_as_int = 7;
   }
 
-  return (base::Time::Now() - base::TimeDelta::FromDays(param_value_as_int));
+  return (base::Time::Now() - base::Days(param_value_as_int));
 }
 
 bool OmniboxFieldTrial::ShortcutsScoringMaxRelevance(
diff --git a/components/omnibox/browser/omnibox_field_trial_unittest.cc b/components/omnibox/browser/omnibox_field_trial_unittest.cc
index 88e9a83..38e66c7 100644
--- a/components/omnibox/browser/omnibox_field_trial_unittest.cc
+++ b/components/omnibox/browser/omnibox_field_trial_unittest.cc
@@ -445,13 +445,13 @@
   HUPScoringParams::ScoreBuckets buckets;
 
   // No decay by default.
-  EXPECT_EQ(1.0, buckets.HalfLifeTimeDecay(base::TimeDelta::FromDays(7)));
+  EXPECT_EQ(1.0, buckets.HalfLifeTimeDecay(base::Days(7)));
 
   buckets.set_half_life_days(7);
-  EXPECT_EQ(0.5, buckets.HalfLifeTimeDecay(base::TimeDelta::FromDays(7)));
-  EXPECT_EQ(0.25, buckets.HalfLifeTimeDecay(base::TimeDelta::FromDays(14)));
-  EXPECT_EQ(1.0, buckets.HalfLifeTimeDecay(base::TimeDelta::FromDays(0)));
-  EXPECT_EQ(1.0, buckets.HalfLifeTimeDecay(base::TimeDelta::FromDays(-1)));
+  EXPECT_EQ(0.5, buckets.HalfLifeTimeDecay(base::Days(7)));
+  EXPECT_EQ(0.25, buckets.HalfLifeTimeDecay(base::Days(14)));
+  EXPECT_EQ(1.0, buckets.HalfLifeTimeDecay(base::Days(0)));
+  EXPECT_EQ(1.0, buckets.HalfLifeTimeDecay(base::Days(-1)));
 }
 
 TEST_F(OmniboxFieldTrialTest, GetSuggestPollingStrategy) {
diff --git a/components/omnibox/browser/omnibox_metrics_provider.cc b/components/omnibox/browser/omnibox_metrics_provider.cc
index 6c838baa..49918e1 100644
--- a/components/omnibox/browser/omnibox_metrics_provider.cc
+++ b/components/omnibox/browser/omnibox_metrics_provider.cc
@@ -69,8 +69,7 @@
                                         WindowOpenDisposition::SWITCH_TO_TAB);
   if (log.completed_length != std::u16string::npos)
     omnibox_event->set_completed_length(log.completed_length);
-  const base::TimeDelta default_time_delta =
-      base::TimeDelta::FromMilliseconds(-1);
+  const base::TimeDelta default_time_delta = base::Milliseconds(-1);
   if (log.elapsed_time_since_user_first_modified_omnibox !=
       default_time_delta) {
     // Only upload the typing duration if it is set/valid.
diff --git a/components/omnibox/browser/on_device_head_provider.cc b/components/omnibox/browser/on_device_head_provider.cc
index 8f263a9..fa375df 100644
--- a/components/omnibox/browser/on_device_head_provider.cc
+++ b/components/omnibox/browser/on_device_head_provider.cc
@@ -163,8 +163,7 @@
       FROM_HERE,
       base::BindOnce(&OnDeviceHeadProvider::DoSearch,
                      weak_ptr_factory_.GetWeakPtr(), std::move(params)),
-      delay > 0 ? base::TimeDelta::FromMilliseconds(delay)
-                : base::TimeDelta());
+      delay > 0 ? base::Milliseconds(delay) : base::TimeDelta());
 }
 
 void OnDeviceHeadProvider::Stop(bool clear_cached_results,
diff --git a/components/omnibox/browser/scored_history_match_unittest.cc b/components/omnibox/browser/scored_history_match_unittest.cc
index 54173a1..6ab40cd 100644
--- a/components/omnibox/browser/scored_history_match_unittest.cc
+++ b/components/omnibox/browser/scored_history_match_unittest.cc
@@ -37,9 +37,8 @@
                                       base::Time now) {
   VisitInfoVector visits;
   for (int i = 0; i < num_visits; ++i) {
-    visits.push_back(
-        std::make_pair(now - base::TimeDelta::FromDays(i * frequency),
-                       ui::PAGE_TRANSITION_LINK));
+    visits.push_back(std::make_pair(now - base::Days(i * frequency),
+                                    ui::PAGE_TRANSITION_LINK));
   }
   return visits;
 }
@@ -90,7 +89,7 @@
   row.set_visit_count(visit_count);
   row.set_typed_count(typed_count);
   row.set_last_visit(base::Time::NowFromSystemTime() -
-                     base::TimeDelta::FromDays(days_since_last_visit));
+                     base::Days(days_since_last_visit));
   return row;
 }
 
@@ -594,13 +593,12 @@
   // A two-visit score should have a higher score than the single typed visit
   // score.
   visits = {{now, ui::PAGE_TRANSITION_TYPED},
-            {now - base::TimeDelta::FromDays(1), ui::PAGE_TRANSITION_LINK}};
+            {now - base::Days(1), ui::PAGE_TRANSITION_LINK}};
   const float two_visits_score = match.GetFrequency(now, false, visits);
   EXPECT_GT(two_visits_score, one_typed_score);
 
   // Add an third untyped visit.
-  visits.push_back(
-      {now - base::TimeDelta::FromDays(2), ui::PAGE_TRANSITION_LINK});
+  visits.push_back({now - base::Days(2), ui::PAGE_TRANSITION_LINK});
 
   // The score should be higher than the two-visit score.
   const float three_visits_score = match.GetFrequency(now, false, visits);
diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/browser/search_provider.cc
index 3013c00..f2c98de 100644
--- a/components/omnibox/browser/search_provider.cc
+++ b/components/omnibox/browser/search_provider.cc
@@ -627,8 +627,7 @@
     }
     default_loader_ = CreateSuggestLoader(
         providers_.GetDefaultProviderURL(), input_,
-        timeout_ms > 0 ? base::TimeDelta::FromMilliseconds(timeout_ms)
-                       : base::TimeDelta());
+        timeout_ms > 0 ? base::Milliseconds(timeout_ms) : base::TimeDelta());
   }
   keyword_loader_ = CreateSuggestLoader(providers_.GetKeywordProviderURL(),
                                         keyword_input_, base::TimeDelta());
@@ -697,7 +696,7 @@
   OmniboxFieldTrial::GetSuggestPollingStrategy(&from_last_keystroke,
                                                &polling_delay_ms);
 
-  base::TimeDelta delay(base::TimeDelta::FromMilliseconds(polling_delay_ms));
+  base::TimeDelta delay(base::Milliseconds(polling_delay_ms));
   if (from_last_keystroke)
     return delay;
 
diff --git a/components/omnibox/browser/shortcuts_database_unittest.cc b/components/omnibox/browser/shortcuts_database_unittest.cc
index a19a7d13..4f0bd32 100644
--- a/components/omnibox/browser/shortcuts_database_unittest.cc
+++ b/components/omnibox/browser/shortcuts_database_unittest.cc
@@ -180,8 +180,7 @@
           info.document_type, ASCIIToUTF16(info.contents), info.contents_class,
           ASCIIToUTF16(info.description), info.description_class,
           info.transition, info.type, ASCIIToUTF16(info.keyword)),
-      base::Time::Now() - base::TimeDelta::FromDays(info.days_from_now),
-      info.number_of_hits);
+      base::Time::Now() - base::Days(info.days_from_now), info.number_of_hits);
 }
 
 void ShortcutsDatabaseTest::AddAll() {
diff --git a/components/omnibox/browser/shortcuts_provider.cc b/components/omnibox/browser/shortcuts_provider.cc
index 55cf703f..aa23f0f0 100644
--- a/components/omnibox/browser/shortcuts_provider.cc
+++ b/components/omnibox/browser/shortcuts_provider.cc
@@ -382,8 +382,7 @@
   const double kLn2 = 0.6931471805599453;
   base::TimeDelta time_passed = base::Time::Now() - shortcut.last_access_time;
   // Clamp to 0 in case time jumps backwards (e.g. due to DST).
-  double decay_exponent =
-      std::max(0.0, kLn2 * time_passed / base::TimeDelta::FromDays(7));
+  double decay_exponent = std::max(0.0, kLn2 * time_passed / base::Days(7));
 
   // We modulate the decay factor based on how many times the shortcut has been
   // used. Newly created shortcuts decay at full speed; otherwise, decaying by
diff --git a/components/omnibox/browser/shortcuts_provider_test_util.cc b/components/omnibox/browser/shortcuts_provider_test_util.cc
index a9b61d9..fb639cb 100644
--- a/components/omnibox/browser/shortcuts_provider_test_util.cc
+++ b/components/omnibox/browser/shortcuts_provider_test_util.cc
@@ -61,8 +61,7 @@
             cur.contents_class, base::ASCIIToUTF16(cur.description),
             cur.description_class, cur.transition, cur.type,
             base::ASCIIToUTF16(cur.keyword)),
-        base::Time::Now() - base::TimeDelta::FromDays(cur.days_from_now),
-        cur.number_of_hits);
+        base::Time::Now() - base::Days(cur.days_from_now), cur.number_of_hits);
     backend->AddShortcut(shortcut);
   }
   EXPECT_EQ(expected_size, backend->shortcuts_map().size());
diff --git a/components/omnibox/browser/shortcuts_provider_unittest.cc b/components/omnibox/browser/shortcuts_provider_unittest.cc
index 54c311d40..e80bca6 100644
--- a/components/omnibox/browser/shortcuts_provider_unittest.cc
+++ b/components/omnibox/browser/shortcuts_provider_unittest.cc
@@ -481,18 +481,18 @@
   EXPECT_LT(score_one_quarter, score_one_half);
 
   // Should decay with time - one week.
-  shortcut.last_access_time = base::Time::Now() - base::TimeDelta::FromDays(7);
+  shortcut.last_access_time = base::Time::Now() - base::Days(7);
   int score_week_old = CalculateScore("test", shortcut);
   EXPECT_LT(score_week_old, kMaxScore);
 
   // Should decay more in two weeks.
-  shortcut.last_access_time = base::Time::Now() - base::TimeDelta::FromDays(14);
+  shortcut.last_access_time = base::Time::Now() - base::Days(14);
   int score_two_weeks_old = CalculateScore("test", shortcut);
   EXPECT_LT(score_two_weeks_old, score_week_old);
 
   // But not if it was actively clicked on. 2 hits slow decaying power.
   shortcut.number_of_hits = 2;
-  shortcut.last_access_time = base::Time::Now() - base::TimeDelta::FromDays(14);
+  shortcut.last_access_time = base::Time::Now() - base::Days(14);
   int score_popular_two_weeks_old = CalculateScore("test", shortcut);
   EXPECT_LT(score_two_weeks_old, score_popular_two_weeks_old);
   // But still decayed.
@@ -500,7 +500,7 @@
 
   // 3 hits slow decaying power even more.
   shortcut.number_of_hits = 3;
-  shortcut.last_access_time = base::Time::Now() - base::TimeDelta::FromDays(14);
+  shortcut.last_access_time = base::Time::Now() - base::Days(14);
   int score_more_popular_two_weeks_old = CalculateScore("test", shortcut);
   EXPECT_LT(score_two_weeks_old, score_more_popular_two_weeks_old);
   EXPECT_LT(score_popular_two_weeks_old, score_more_popular_two_weeks_old);
diff --git a/components/omnibox/browser/url_index_private_data.cc b/components/omnibox/browser/url_index_private_data.cc
index 3ad66171..830f2e2 100644
--- a/components/omnibox/browser/url_index_private_data.cc
+++ b/components/omnibox/browser/url_index_private_data.cc
@@ -1081,8 +1081,7 @@
       base::Time::FromInternalValue(cache.last_rebuild_timestamp());
   const base::TimeDelta rebuilt_ago =
       base::Time::Now() - last_time_rebuilt_from_history_;
-  if ((rebuilt_ago > base::TimeDelta::FromDays(7)) ||
-      (rebuilt_ago < base::TimeDelta::FromDays(-1))) {
+  if ((rebuilt_ago > base::Days(7)) || (rebuilt_ago < base::Days(-1))) {
     // Cache is more than a week old or, somehow, from some time in the future.
     // It's probably a good time to rebuild the index from history to
     // allow synced entries to now appear, expired entries to disappear, etc.
diff --git a/components/open_from_clipboard/clipboard_recent_content.cc b/components/open_from_clipboard/clipboard_recent_content.cc
index 2e59ce3..b8c0888 100644
--- a/components/open_from_clipboard/clipboard_recent_content.cc
+++ b/components/open_from_clipboard/clipboard_recent_content.cc
@@ -34,5 +34,5 @@
 
 // static
 base::TimeDelta ClipboardRecentContent::MaximumAgeOfClipboard() {
-  return base::TimeDelta::FromMinutes(10);
+  return base::Minutes(10);
 }
diff --git a/components/open_from_clipboard/clipboard_recent_content_generic_unittest.cc b/components/open_from_clipboard/clipboard_recent_content_generic_unittest.cc
index ff283dd..259f8ff 100644
--- a/components/open_from_clipboard/clipboard_recent_content_generic_unittest.cc
+++ b/components/open_from_clipboard/clipboard_recent_content_generic_unittest.cc
@@ -112,8 +112,7 @@
   for (size_t i = 0; i < base::size(test_data); ++i) {
     test_clipboard_->WriteText(test_data[i].clipboard.data(),
                                test_data[i].clipboard.length());
-    test_clipboard_->SetLastModifiedTime(now -
-                                         base::TimeDelta::FromSeconds(10));
+    test_clipboard_->SetLastModifiedTime(now - base::Seconds(10));
     EXPECT_EQ(test_data[i].expected_get_recent_url_value,
               recent_content.GetRecentURLFromClipboard().has_value())
         << "for input " << test_data[i].clipboard;
@@ -125,11 +124,11 @@
   base::Time now = base::Time::Now();
   std::string text = "http://example.com/";
   test_clipboard_->WriteText(text.data(), text.length());
-  test_clipboard_->SetLastModifiedTime(now - base::TimeDelta::FromMinutes(9));
+  test_clipboard_->SetLastModifiedTime(now - base::Minutes(9));
   EXPECT_TRUE(recent_content.GetRecentURLFromClipboard().has_value());
   // If the last modified time is 10 minutes ago, the URL shouldn't be
   // suggested.
-  test_clipboard_->SetLastModifiedTime(now - base::TimeDelta::FromMinutes(11));
+  test_clipboard_->SetLastModifiedTime(now - base::Minutes(11));
   EXPECT_FALSE(recent_content.GetRecentURLFromClipboard().has_value());
 }
 
@@ -138,12 +137,11 @@
   base::Time now = base::Time::Now();
   std::string text = " whether URL or not should not matter here.";
   test_clipboard_->WriteText(text.data(), text.length());
-  test_clipboard_->SetLastModifiedTime(now - base::TimeDelta::FromSeconds(32));
+  test_clipboard_->SetLastModifiedTime(now - base::Seconds(32));
   base::TimeDelta age = recent_content.GetClipboardContentAge();
   // It's possible the GetClipboardContentAge() took some time, so allow a
   // little slop (5 seconds) in this comparison; don't check for equality.
-  EXPECT_LT(age - base::TimeDelta::FromSeconds(32),
-            base::TimeDelta::FromSeconds(5));
+  EXPECT_LT(age - base::Seconds(32), base::Seconds(5));
 }
 
 TEST_F(ClipboardRecentContentGenericTest, SuppressClipboardContent) {
@@ -152,7 +150,7 @@
   base::Time now = base::Time::Now();
   std::string text = "http://example.com/";
   test_clipboard_->WriteText(text.data(), text.length());
-  test_clipboard_->SetLastModifiedTime(now - base::TimeDelta::FromSeconds(10));
+  test_clipboard_->SetLastModifiedTime(now - base::Seconds(10));
   EXPECT_TRUE(recent_content.GetRecentURLFromClipboard().has_value());
   EXPECT_TRUE(recent_content.GetRecentTextFromClipboard().has_value());
   EXPECT_FALSE(recent_content.HasRecentImageFromClipboard());
@@ -176,7 +174,7 @@
   base::Time now = base::Time::Now();
   std::string text = "  Foo Bar   ";
   test_clipboard_->WriteText(text.data(), text.length());
-  test_clipboard_->SetLastModifiedTime(now - base::TimeDelta::FromSeconds(10));
+  test_clipboard_->SetLastModifiedTime(now - base::Seconds(10));
   EXPECT_TRUE(recent_content.GetRecentTextFromClipboard().has_value());
   EXPECT_FALSE(recent_content.GetRecentURLFromClipboard().has_value());
   EXPECT_FALSE(recent_content.HasRecentImageFromClipboard());
@@ -192,7 +190,7 @@
   base::Time now = base::Time::Now();
   std::string text = "http://example.com/";
   test_clipboard_->WriteText(text.data(), text.length());
-  test_clipboard_->SetLastModifiedTime(now - base::TimeDelta::FromSeconds(10));
+  test_clipboard_->SetLastModifiedTime(now - base::Seconds(10));
   EXPECT_TRUE(recent_content.GetRecentURLFromClipboard().has_value());
 
   // After clear it, it shouldn't be suggested.
@@ -215,7 +213,7 @@
 
   EXPECT_FALSE(recent_content.HasRecentImageFromClipboard());
   test_clipboard_->WriteBitmap(bitmap);
-  test_clipboard_->SetLastModifiedTime(now - base::TimeDelta::FromSeconds(10));
+  test_clipboard_->SetLastModifiedTime(now - base::Seconds(10));
   EXPECT_TRUE(recent_content.HasRecentImageFromClipboard());
   EXPECT_FALSE(recent_content.GetRecentURLFromClipboard().has_value());
   EXPECT_FALSE(recent_content.GetRecentTextFromClipboard().has_value());
@@ -238,7 +236,7 @@
   test_clipboard_->WriteBookmark(title.data(), title.length(), url_text.data(),
                                  url_text.length());
 #endif  // defined(OS_LINUX) || defined(OS_CHROMEOS)
-  test_clipboard_->SetLastModifiedTime(now - base::TimeDelta::FromSeconds(10));
+  test_clipboard_->SetLastModifiedTime(now - base::Seconds(10));
 
   HasDataCallbackWaiter waiter(&recent_content);
   waiter.WaitForCallbackDone();
@@ -252,7 +250,7 @@
   base::Time now = base::Time::Now();
   std::string text = "  Foo Bar   ";
   test_clipboard_->WriteText(text.data(), text.length());
-  test_clipboard_->SetLastModifiedTime(now - base::TimeDelta::FromSeconds(10));
+  test_clipboard_->SetLastModifiedTime(now - base::Seconds(10));
 
   HasDataCallbackWaiter waiter(&recent_content);
   waiter.WaitForCallbackDone();
@@ -268,7 +266,7 @@
   bitmap.allocN32Pixels(3, 2);
   bitmap.eraseARGB(255, 0, 255, 0);
   test_clipboard_->WriteBitmap(bitmap);
-  test_clipboard_->SetLastModifiedTime(now - base::TimeDelta::FromSeconds(10));
+  test_clipboard_->SetLastModifiedTime(now - base::Seconds(10));
 
   HasDataCallbackWaiter waiter(&recent_content);
   waiter.WaitForCallbackDone();
diff --git a/components/open_from_clipboard/clipboard_recent_content_ios.mm b/components/open_from_clipboard/clipboard_recent_content_ios.mm
index e77ad2c..2e0f0bb9 100644
--- a/components/open_from_clipboard/clipboard_recent_content_ios.mm
+++ b/components/open_from_clipboard/clipboard_recent_content_ios.mm
@@ -222,7 +222,7 @@
 ClipboardRecentContentIOS::~ClipboardRecentContentIOS() {}
 
 base::TimeDelta ClipboardRecentContentIOS::GetClipboardContentAge() const {
-  return base::TimeDelta::FromSeconds(
+  return base::Seconds(
       static_cast<int64_t>([implementation_ clipboardContentAge]));
 }
 
diff --git a/components/open_from_clipboard/clipboard_recent_content_ios_unittest.mm b/components/open_from_clipboard/clipboard_recent_content_ios_unittest.mm
index 08af853..7d0d91d7 100644
--- a/components/open_from_clipboard/clipboard_recent_content_ios_unittest.mm
+++ b/components/open_from_clipboard/clipboard_recent_content_ios_unittest.mm
@@ -107,13 +107,11 @@
  protected:
   ClipboardRecentContentIOSTest() {
     // By default, set that the device booted 10 days ago.
-    ResetClipboardRecentContent(kAppSpecificScheme,
-                                base::TimeDelta::FromDays(10));
+    ResetClipboardRecentContent(kAppSpecificScheme, base::Days(10));
   }
 
   void SimulateDeviceRestart() {
-    ResetClipboardRecentContent(kAppSpecificScheme,
-                                base::TimeDelta::FromSeconds(0));
+    ResetClipboardRecentContent(kAppSpecificScheme, base::Seconds(0));
   }
 
   void ResetClipboardRecentContent(const std::string& application_scheme,
@@ -225,7 +223,7 @@
   VerifyClipboardURLExists(kAppSpecificURL);
 
   // Test URL without app specific scheme.
-  ResetClipboardRecentContent(std::string(), base::TimeDelta::FromDays(10));
+  ResetClipboardRecentContent(std::string(), base::Days(10));
 
   SetPasteboardContent(kAppSpecificURL);
   VerifiyClipboardURLIsInvalid();
@@ -246,8 +244,7 @@
 
   // Tests that if chrome is relaunched, old pasteboard data is still
   // not provided.
-  ResetClipboardRecentContent(kAppSpecificScheme,
-                              base::TimeDelta::FromDays(10));
+  ResetClipboardRecentContent(kAppSpecificScheme, base::Days(10));
   VerifyClipboardTypeExists(ClipboardContentType::URL, false);
   VerifyClipboardTypeExists(ClipboardContentType::Text, false);
 
@@ -286,8 +283,7 @@
   VerifyClipboardTypeExists(ClipboardContentType::URL, false);
 
   // Create a new clipboard content to test persistence.
-  ResetClipboardRecentContent(kAppSpecificScheme,
-                              base::TimeDelta::FromDays(10));
+  ResetClipboardRecentContent(kAppSpecificScheme, base::Days(10));
 
   // Check that the pasteboard content is still suppressed.
   VerifyClipboardTypeExists(ClipboardContentType::URL, false);
@@ -318,8 +314,7 @@
   VerifyClipboardTypeExists(ClipboardContentType::Image, false);
 
   // Create a new clipboard content to test persistence.
-  ResetClipboardRecentContent(kAppSpecificScheme,
-                              base::TimeDelta::FromDays(10));
+  ResetClipboardRecentContent(kAppSpecificScheme, base::Days(10));
 
   // Check that the pasteboard content is still suppressed.
   VerifyClipboardTypeExists(ClipboardContentType::Image, false);
diff --git a/components/openscreen_platform/task_runner.cc b/components/openscreen_platform/task_runner.cc
index 71fbd733..d526b9c 100644
--- a/components/openscreen_platform/task_runner.cc
+++ b/components/openscreen_platform/task_runner.cc
@@ -36,7 +36,7 @@
 }
 
 void TaskRunner::PostPackagedTaskWithDelay(Task task, Clock::duration delay) {
-  auto time_delta = base::TimeDelta::FromMicroseconds(
+  auto time_delta = base::Microseconds(
       std::chrono::duration_cast<std::chrono::microseconds>(delay).count());
   task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(ExecuteTask, std::move(task)), time_delta);
diff --git a/components/optimization_guide/core/hint_cache.cc b/components/optimization_guide/core/hint_cache.cc
index 679c626..3033441d 100644
--- a/components/optimization_guide/core/hint_cache.cc
+++ b/components/optimization_guide/core/hint_cache.cc
@@ -388,9 +388,8 @@
                                   std::unique_ptr<proto::Hint> hint) {
   if (IsValidURLForURLKeyedHint(url)) {
     url_keyed_hint_cache_.Put(
-        url.spec(),
-        std::make_unique<MemoryHint>(
-            base::Time::Now() + base::TimeDelta::FromDays(7), std::move(hint)));
+        url.spec(), std::make_unique<MemoryHint>(
+                        base::Time::Now() + base::Days(7), std::move(hint)));
   }
 }
 
diff --git a/components/optimization_guide/core/hint_cache_unittest.cc b/components/optimization_guide/core/hint_cache_unittest.cc
index eafc548d..09f2c83 100644
--- a/components/optimization_guide/core/hint_cache_unittest.cc
+++ b/components/optimization_guide/core/hint_cache_unittest.cc
@@ -657,8 +657,7 @@
   EXPECT_TRUE(hint_cache()->GetHostKeyedHintIfLoaded("host.domain.org"));
 
   // Set time so hint should be expired.
-  MoveClockForwardBy(
-      base::TimeDelta::FromSeconds(kFetchedHintExpirationSecs + 1));
+  MoveClockForwardBy(base::Seconds(kFetchedHintExpirationSecs + 1));
   EXPECT_FALSE(hint_cache()->GetHostKeyedHintIfLoaded("host.domain.org"));
 }
 
@@ -696,7 +695,7 @@
   // Set time so hint should be expired.
   MoveClockForwardBy(
       optimization_guide::features::StoredFetchedHintsFreshnessDuration() +
-      base::TimeDelta::FromSeconds(1));
+      base::Seconds(1));
   EXPECT_FALSE(hint_cache()->GetHostKeyedHintIfLoaded("host.domain.org"));
 }
 
diff --git a/components/optimization_guide/core/hints_fetcher.cc b/components/optimization_guide/core/hints_fetcher.cc
index ed11f25..c1da94f 100644
--- a/components/optimization_guide/core/hints_fetcher.cc
+++ b/components/optimization_guide/core/hints_fetcher.cc
@@ -151,8 +151,8 @@
   if (!value)
     return false;
 
-  base::Time host_valid_time = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromSecondsD(*value));
+  base::Time host_valid_time =
+      base::Time::FromDeltaSinceWindowsEpoch(base::Seconds(*value));
   return host_valid_time > time_clock->Now();
 }
 
@@ -351,8 +351,8 @@
     base::TimeDelta valid_duration =
         features::StoredFetchedHintsFreshnessDuration();
     if (get_hints_response->has_max_cache_duration()) {
-      valid_duration = base::TimeDelta::FromSeconds(
-          get_hints_response->max_cache_duration().seconds());
+      valid_duration =
+          base::Seconds(get_hints_response->max_cache_duration().seconds());
     }
     UpdateHostsSuccessfullyFetched(valid_duration);
     RecordRequestStatusHistogram(request_context_,
@@ -379,8 +379,8 @@
   // Remove any expired hosts.
   std::vector<std::string> entries_to_remove;
   for (auto it : hosts_fetched_list->DictItems()) {
-    if (base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromSecondsD(
-            it.second.GetDouble())) < time_clock_->Now()) {
+    if (base::Time::FromDeltaSinceWindowsEpoch(
+            base::Seconds(it.second.GetDouble())) < time_clock_->Now()) {
       entries_to_remove.emplace_back(it.first);
     }
   }
@@ -466,8 +466,8 @@
     absl::optional<double> value =
         hosts_fetched->FindDoubleKey(HashHostForDictionary(host));
     if (value && optimization_guide::features::ShouldPersistHintsToDisk()) {
-      base::Time host_valid_time = base::Time::FromDeltaSinceWindowsEpoch(
-          base::TimeDelta::FromSecondsD(*value));
+      base::Time host_valid_time =
+          base::Time::FromDeltaSinceWindowsEpoch(base::Seconds(*value));
       host_hints_due_for_refresh =
           (host_valid_time - features::GetHostHintsFetchRefreshDuration() <=
            time_clock_->Now());
diff --git a/components/optimization_guide/core/hints_fetcher_unittest.cc b/components/optimization_guide/core/hints_fetcher_unittest.cc
index c7437a1..81abc2a 100644
--- a/components/optimization_guide/core/hints_fetcher_unittest.cc
+++ b/components/optimization_guide/core/hints_fetcher_unittest.cc
@@ -287,7 +287,7 @@
 
   // Advancing the clock by a little bit more than 1 hour so that the hints are
   // now due for refresh.
-  test_clock.Advance(base::TimeDelta::FromMinutes(61));
+  test_clock.Advance(base::Minutes(61));
 
   EXPECT_TRUE(FetchHints({"foo.com"}, {} /* urls */));
   EXPECT_FALSE(FetchHints({"bar.com"}, {} /* urls */));
@@ -402,11 +402,10 @@
     // This reduces the necessary precision for the check on the expiry time for
     // the hosts stored in the pref. The exact time is not necessary, being
     // within 10 minutes is acceptable.
-    EXPECT_NEAR((base::Time::FromDeltaSinceWindowsEpoch(
-                     base::TimeDelta::FromSecondsD(*value)) -
+    EXPECT_NEAR((base::Time::FromDeltaSinceWindowsEpoch(base::Seconds(*value)) -
                  GetMockClock()->Now())
                     .InMinutes(),
-                base::TimeDelta::FromDays(7).InMinutes(), 10);
+                base::Days(7).InMinutes(), 10);
   }
 }
 
diff --git a/components/optimization_guide/core/hints_manager.cc b/components/optimization_guide/core/hints_manager.cc
index 7c6c9490..bb05831 100644
--- a/components/optimization_guide/core/hints_manager.cc
+++ b/components/optimization_guide/core/hints_manager.cc
@@ -64,7 +64,7 @@
 // Provides a random time delta in seconds between |kFetchRandomMinDelay| and
 // |kFetchRandomMaxDelay|.
 base::TimeDelta RandomFetchDelay() {
-  return base::TimeDelta::FromSeconds(base::RandInt(
+  return base::Seconds(base::RandInt(
       optimization_guide::features::ActiveTabsHintsFetchRandomMinDelaySecs(),
       optimization_guide::features::ActiveTabsHintsFetchRandomMaxDelaySecs()));
 }
@@ -821,7 +821,7 @@
 base::Time HintsManager::GetLastHintsFetchAttemptTime() const {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   return base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(pref_service_->GetInt64(
+      base::Microseconds(pref_service_->GetInt64(
           optimization_guide::prefs::kHintsFetcherLastFetchAttempt)));
 }
 
diff --git a/components/optimization_guide/core/hints_manager_unittest.cc b/components/optimization_guide/core/hints_manager_unittest.cc
index fb2da10..e9aa544 100644
--- a/components/optimization_guide/core/hints_manager_unittest.cc
+++ b/components/optimization_guide/core/hints_manager_unittest.cc
@@ -1641,7 +1641,7 @@
   InitializeWithDefaultConfig("1.0.0");
 
   // Force timer to expire and schedule a hints fetch.
-  MoveClockForwardBy(base::TimeDelta::FromSeconds(kUpdateFetchHintsTimeSecs));
+  MoveClockForwardBy(base::Seconds(kUpdateFetchHintsTimeSecs));
   EXPECT_EQ(0, top_host_provider->get_num_top_hosts_called());
   // Hints fetcher should not even be created.
   EXPECT_FALSE(batch_update_hints_fetcher());
@@ -1825,7 +1825,7 @@
 }
 
 TEST_F(HintsManagerTest, HintFetcherPrefUpdated_URL) {
-  base::Time expiry = base::Time::Now() + base::TimeDelta::FromHours(1);
+  base::Time expiry = base::Time::Now() + base::Hours(1);
   optimization_guide::HintsFetcher::AddFetchedHostForTesting(
       pref_service(), "host-key.com", expiry);
   optimization_guide::HintsFetcher::AddFetchedHostForTesting(
@@ -1853,7 +1853,7 @@
 }
 
 TEST_F(HintsManagerTest, HintFetcherPrefUpdated_Hosts) {
-  base::Time expiry = base::Time::Now() + base::TimeDelta::FromHours(1);
+  base::Time expiry = base::Time::Now() + base::Hours(1);
   optimization_guide::HintsFetcher::AddFetchedHostForTesting(
       pref_service(), "host-key.com", expiry);
   optimization_guide::HintsFetcher::AddFetchedHostForTesting(
@@ -1913,7 +1913,7 @@
   InitializeWithDefaultConfig("1.0.0");
 
   // Force timer to expire and schedule a hints fetch.
-  MoveClockForwardBy(base::TimeDelta::FromSeconds(kUpdateFetchHintsTimeSecs));
+  MoveClockForwardBy(base::Seconds(kUpdateFetchHintsTimeSecs));
   // Hints fetcher should not even be created.
   EXPECT_FALSE(batch_update_hints_fetcher());
 }
@@ -1934,7 +1934,7 @@
   InitializeWithDefaultConfig("1.0.0");
 
   // Force timer to expire and schedule a hints fetch but the fetch is not made.
-  MoveClockForwardBy(base::TimeDelta::FromSeconds(kUpdateFetchHintsTimeSecs));
+  MoveClockForwardBy(base::Seconds(kUpdateFetchHintsTimeSecs));
   EXPECT_EQ(0, top_host_provider->get_num_top_hosts_called());
   // Hints fetcher should not be created.
   EXPECT_FALSE(batch_update_hints_fetcher());
@@ -1967,7 +1967,7 @@
           {HintsFetcherEndState::kFetchSuccessWithHostHints}));
 
   // Force timer to expire after random delay and schedule a hints fetch.
-  MoveClockForwardBy(base::TimeDelta::FromSeconds(60 * 2));
+  MoveClockForwardBy(base::Seconds(60 * 2));
   EXPECT_EQ(0, top_host_provider->get_num_top_hosts_called());
   // Hints fetcher should not be created.
   EXPECT_FALSE(batch_update_hints_fetcher());
@@ -1988,14 +1988,14 @@
   InitializeWithDefaultConfig("1.0.0");
 
   // Force timer to expire after random delay and schedule a hints fetch.
-  MoveClockForwardBy(base::TimeDelta::FromSeconds(60 * 2));
+  MoveClockForwardBy(base::Seconds(60 * 2));
   EXPECT_EQ(1, top_host_provider->get_num_top_hosts_called());
   EXPECT_EQ(1, tab_url_provider()->get_num_urls_called());
   // Hints fetcher should not be even created.
   EXPECT_FALSE(batch_update_hints_fetcher());
 
   // Move it forward again to make sure timer is scheduled.
-  MoveClockForwardBy(base::TimeDelta::FromSeconds(kUpdateFetchHintsTimeSecs));
+  MoveClockForwardBy(base::Seconds(kUpdateFetchHintsTimeSecs));
   EXPECT_EQ(2, top_host_provider->get_num_top_hosts_called());
   EXPECT_EQ(2, tab_url_provider()->get_num_urls_called());
   // Still no hosts or URLs, so hints fetcher should still not be even created.
@@ -2023,7 +2023,7 @@
 
   // Force timer to expire after random delay and schedule a hints fetch that
   // succeeds.
-  MoveClockForwardBy(base::TimeDelta::FromSeconds(60 * 2));
+  MoveClockForwardBy(base::Seconds(60 * 2));
   EXPECT_EQ(1, top_host_provider->get_num_top_hosts_called());
   EXPECT_EQ(1, tab_url_provider()->get_num_urls_called());
   EXPECT_EQ(1, batch_update_hints_fetcher()->num_fetches_requested());
@@ -2032,7 +2032,7 @@
       "OptimizationGuide.HintsManager.ActiveTabUrlsToFetchFor", 2, 1);
 
   // Move it forward again to make sure timer is scheduled.
-  MoveClockForwardBy(base::TimeDelta::FromSeconds(kUpdateFetchHintsTimeSecs));
+  MoveClockForwardBy(base::Seconds(kUpdateFetchHintsTimeSecs));
   EXPECT_EQ(2, top_host_provider->get_num_top_hosts_called());
   EXPECT_EQ(2, tab_url_provider()->get_num_urls_called());
   // Urls didn't change and we have all URLs cached in store.
@@ -2058,11 +2058,11 @@
 
   // Force timer to expire after random delay and schedule a hints fetch that
   // succeeds.
-  MoveClockForwardBy(base::TimeDelta::FromSeconds(60 * 2));
+  MoveClockForwardBy(base::Seconds(60 * 2));
   EXPECT_EQ(1, batch_update_hints_fetcher()->num_fetches_requested());
 
   // Move it forward again to make sure timer is scheduled.
-  MoveClockForwardBy(base::TimeDelta::FromSeconds(kUpdateFetchHintsTimeSecs));
+  MoveClockForwardBy(base::Seconds(kUpdateFetchHintsTimeSecs));
   EXPECT_EQ(2, batch_update_hints_fetcher()->num_fetches_requested());
 }
 
@@ -3312,7 +3312,7 @@
   InitializeWithDefaultConfig("1.0.0");
 
   // Force timer to expire and schedule a hints fetch.
-  MoveClockForwardBy(base::TimeDelta::FromSeconds(kUpdateFetchHintsTimeSecs));
+  MoveClockForwardBy(base::Seconds(kUpdateFetchHintsTimeSecs));
   // Hints fetcher should not even be created.
   EXPECT_FALSE(batch_update_hints_fetcher());
 }
diff --git a/components/optimization_guide/core/optimization_guide_features.cc b/components/optimization_guide/core/optimization_guide_features.cc
index 140a81b..31fb2db 100644
--- a/components/optimization_guide/core/optimization_guide_features.cc
+++ b/components/optimization_guide/core/optimization_guide_features.cc
@@ -97,7 +97,7 @@
 // The default value here is a bit of a guess.
 // TODO(crbug/1163244): This should be tuned once metrics are available.
 base::TimeDelta PageTextExtractionOutstandingRequestsGracePeriod() {
-  return base::TimeDelta::FromMilliseconds(GetFieldTrialParamByFeatureAsInt(
+  return base::Milliseconds(GetFieldTrialParamByFeatureAsInt(
       kPageTextExtraction, "outstanding_requests_grace_period_ms", 1000));
 }
 
@@ -129,7 +129,7 @@
 }
 
 base::TimeDelta StoredFetchedHintsFreshnessDuration() {
-  return base::TimeDelta::FromDays(GetFieldTrialParamByFeatureAsInt(
+  return base::Days(GetFieldTrialParamByFeatureAsInt(
       kRemoteOptimizationGuideFetching,
       "max_store_duration_for_featured_hints_in_days", 7));
 }
@@ -210,20 +210,20 @@
 }
 
 base::TimeDelta GetHostHintsFetchRefreshDuration() {
-  return base::TimeDelta::FromHours(GetFieldTrialParamByFeatureAsInt(
+  return base::Hours(GetFieldTrialParamByFeatureAsInt(
       kRemoteOptimizationGuideFetching, "hints_fetch_refresh_duration_in_hours",
       72));
 }
 
 base::TimeDelta GetActiveTabsFetchRefreshDuration() {
-  return base::TimeDelta::FromHours(GetFieldTrialParamByFeatureAsInt(
+  return base::Hours(GetFieldTrialParamByFeatureAsInt(
       kRemoteOptimizationGuideFetching,
       "active_tabs_fetch_refresh_duration_in_hours", 1));
 }
 
 base::TimeDelta GetActiveTabsStalenessTolerance() {
   // 90 days initially chosen since that's how long local history lasts for.
-  return base::TimeDelta::FromDays(GetFieldTrialParamByFeatureAsInt(
+  return base::Days(GetFieldTrialParamByFeatureAsInt(
       kRemoteOptimizationGuideFetching,
       "active_tabs_staleness_tolerance_in_days", 90));
 }
@@ -248,7 +248,7 @@
 }
 
 base::TimeDelta StoredHostModelFeaturesFreshnessDuration() {
-  return base::TimeDelta::FromDays(GetFieldTrialParamByFeatureAsInt(
+  return base::Days(GetFieldTrialParamByFeatureAsInt(
       kOptimizationTargetPrediction,
       "max_store_duration_for_host_model_features_in_days", 7));
 }
@@ -258,13 +258,13 @@
   // careful consideration. Any model that is on device and expires will be
   // removed and triggered to refetch so any feature relying on the model could
   // have a period of time without a valid model.
-  return base::TimeDelta::FromDays(GetFieldTrialParamByFeatureAsInt(
+  return base::Days(GetFieldTrialParamByFeatureAsInt(
       kOptimizationTargetPrediction, "inactive_duration_for_models_in_days",
       30));
 }
 
 base::TimeDelta URLKeyedHintValidCacheDuration() {
-  return base::TimeDelta::FromSeconds(GetFieldTrialParamByFeatureAsInt(
+  return base::Seconds(GetFieldTrialParamByFeatureAsInt(
       kOptimizationHints, "max_url_keyed_hint_valid_cache_duration_in_seconds",
       60 * 60 /* 1 hour */));
 }
@@ -319,12 +319,12 @@
 }
 
 base::TimeDelta PredictionModelFetchRetryDelay() {
-  return base::TimeDelta::FromMinutes(GetFieldTrialParamByFeatureAsInt(
+  return base::Minutes(GetFieldTrialParamByFeatureAsInt(
       kOptimizationTargetPrediction, "fetch_retry_minutes", 2));
 }
 
 base::TimeDelta PredictionModelFetchInterval() {
-  return base::TimeDelta::FromHours(GetFieldTrialParamByFeatureAsInt(
+  return base::Hours(GetFieldTrialParamByFeatureAsInt(
       kOptimizationTargetPrediction, "fetch_interval_hours", 24));
 }
 
@@ -413,7 +413,7 @@
 }
 
 base::TimeDelta GetOnloadDelayForHintsFetching() {
-  return base::TimeDelta::FromMilliseconds(GetFieldTrialParamByFeatureAsInt(
+  return base::Milliseconds(GetFieldTrialParamByFeatureAsInt(
       kRemoteOptimizationGuideFetching, "onload_delay_for_hints_fetching_ms",
       0));
 }
diff --git a/components/optimization_guide/core/optimization_guide_navigation_data_unittest.cc b/components/optimization_guide/core/optimization_guide_navigation_data_unittest.cc
index 887d921..675cd0a1 100644
--- a/components/optimization_guide/core/optimization_guide_navigation_data_unittest.cc
+++ b/components/optimization_guide/core/optimization_guide_navigation_data_unittest.cc
@@ -128,7 +128,7 @@
       std::make_unique<OptimizationGuideNavigationData>(
           /*navigation_id=*/3, /*navigation_start=*/now);
   data->set_hints_fetch_start(now);
-  data->set_hints_fetch_end(now + base::TimeDelta::FromMilliseconds(123));
+  data->set_hints_fetch_end(now + base::Milliseconds(123));
   data.reset();
 
   auto entries = ukm_recorder.GetEntriesByName(
@@ -199,7 +199,7 @@
       std::make_unique<OptimizationGuideNavigationData>(
           /*navigation_id=*/3, /*navigation_start=*/now);
   data->set_hints_fetch_start(now);
-  data->set_hints_fetch_end(now - base::TimeDelta::FromMilliseconds(123));
+  data->set_hints_fetch_end(now - base::Milliseconds(123));
   data.reset();
 
   auto entries = ukm_recorder.GetEntriesByName(
diff --git a/components/optimization_guide/core/optimization_guide_store.cc b/components/optimization_guide/core/optimization_guide_store.cc
index 3c3e5543..97a50f7 100644
--- a/components/optimization_guide/core/optimization_guide_store.cc
+++ b/components/optimization_guide/core/optimization_guide_store.cc
@@ -766,7 +766,7 @@
   if (fetched_entry != metadata_entries->end()) {
     DCHECK(fetched_entry->second.has_update_time_secs());
     fetched_update_time_ = base::Time::FromDeltaSinceWindowsEpoch(
-        base::TimeDelta::FromSeconds(fetched_entry->second.update_time_secs()));
+        base::Seconds(fetched_entry->second.update_time_secs()));
   } else {
     if (component_metadata_missing) {
       result_recorder.set_result(
@@ -786,9 +786,8 @@
   host_model_features_update_time_ = base::Time();
   if (host_model_features_entry != metadata_entries->end()) {
     DCHECK(host_model_features_entry->second.has_update_time_secs());
-    host_model_features_update_time_ =
-        base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromSeconds(
-            host_model_features_entry->second.update_time_secs()));
+    host_model_features_update_time_ = base::Time::FromDeltaSinceWindowsEpoch(
+        base::Seconds(host_model_features_entry->second.update_time_secs()));
     host_model_features_metadata_loaded = true;
   }
   // TODO(crbug/1001194): Metrics should be separated so that stores maintaining
@@ -894,11 +893,10 @@
   absl::optional<base::Time> expiry_time;
   if (entry->has_expiry_time_secs()) {
     expiry_time = base::Time::FromDeltaSinceWindowsEpoch(
-        base::TimeDelta::FromSeconds(entry->expiry_time_secs()));
+        base::Seconds(entry->expiry_time_secs()));
     LOCAL_HISTOGRAM_CUSTOM_TIMES(
         "OptimizationGuide.HintCache.FetchedHint.TimeToExpiration",
-        *expiry_time - base::Time::Now(), base::TimeDelta::FromHours(1),
-        base::TimeDelta::FromDays(15), 50);
+        *expiry_time - base::Time::Now(), base::Hours(1), base::Days(15), 50);
   }
   std::move(callback).Run(
       entry_key,
diff --git a/components/optimization_guide/core/optimization_guide_store_unittest.cc b/components/optimization_guide/core/optimization_guide_store_unittest.cc
index 38e29c5..3b50ac6 100644
--- a/components/optimization_guide/core/optimization_guide_store_unittest.cc
+++ b/components/optimization_guide/core/optimization_guide_store_unittest.cc
@@ -379,11 +379,10 @@
     if (metadata_entry != db_store_.end()) {
       // The next update time should have same time up to the second as the
       // metadata entry is stored in seconds.
-      EXPECT_TRUE(
-          base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromSeconds(
-              metadata_entry->second.update_time_secs())) -
-              update_time <
-          base::TimeDelta::FromSeconds(1));
+      EXPECT_TRUE(base::Time::FromDeltaSinceWindowsEpoch(base::Seconds(
+                      metadata_entry->second.update_time_secs())) -
+                      update_time <
+                  base::Seconds(1));
     } else {
       FAIL() << "No fetched metadata found";
     }
@@ -398,11 +397,10 @@
     if (metadata_entry != db_store_.end()) {
       // The next update time should have same time up to the second as the
       // metadata entry is stored in seconds.
-      EXPECT_TRUE(
-          base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromSeconds(
-              metadata_entry->second.update_time_secs())) -
-              update_time <
-          base::TimeDelta::FromSeconds(1));
+      EXPECT_TRUE(base::Time::FromDeltaSinceWindowsEpoch(base::Seconds(
+                      metadata_entry->second.update_time_secs())) -
+                      update_time <
+                  base::Seconds(1));
     } else {
       FAIL() << "No host model features metadata found";
     }
@@ -1771,13 +1769,13 @@
   fetched_hint1.set_key("domain2.org");
   fetched_hint1.set_key_representation(proto::HOST);
   fetched_hint1.mutable_max_cache_duration()->set_seconds(
-      base::TimeDelta::FromDays(7).InSeconds());
+      base::Days(7).InSeconds());
   update_data->MoveHintIntoUpdateData(std::move(fetched_hint1));
   proto::Hint fetched_hint2;
   fetched_hint2.set_key("domain3.org");
   fetched_hint2.set_key_representation(proto::HOST);
   fetched_hint2.mutable_max_cache_duration()->set_seconds(
-      base::TimeDelta::FromDays(7).InSeconds());
+      base::Days(7).InSeconds());
   update_data->MoveHintIntoUpdateData(std::move(fetched_hint2));
 
   UpdateFetchedHints(std::move(update_data));
@@ -1789,13 +1787,13 @@
   fetched_hint1.set_key("domain4.org");
   fetched_hint1.set_key_representation(proto::HOST);
   fetched_hint1.mutable_max_cache_duration()->set_seconds(
-      base::TimeDelta::FromDays(-7).InSeconds());
+      base::Days(-7).InSeconds());
   update_data->MoveHintIntoUpdateData(std::move(fetched_hint1));
   proto::Hint fetched_hint4;
   fetched_hint2.set_key("domain5.org");
   fetched_hint2.set_key_representation(proto::HOST);
   fetched_hint2.mutable_max_cache_duration()->set_seconds(
-      base::TimeDelta::FromDays(-7).InSeconds());
+      base::Days(-7).InSeconds());
   update_data->MoveHintIntoUpdateData(std::move(fetched_hint2));
 
   UpdateFetchedHints(std::move(update_data));
diff --git a/components/optimization_guide/core/store_update_data_unittest.cc b/components/optimization_guide/core/store_update_data_unittest.cc
index d45ce42c..d9c0096 100644
--- a/components/optimization_guide/core/store_update_data_unittest.cc
+++ b/components/optimization_guide/core/store_update_data_unittest.cc
@@ -105,8 +105,7 @@
     proto::StoreEntry store_entry = entry.second;
     if (store_entry.entry_type() == proto::FETCHED_HINT) {
       base::Time expected_expiry_time =
-          base::Time::Now() +
-          base::TimeDelta::FromSeconds(max_cache_duration_secs);
+          base::Time::Now() + base::Seconds(max_cache_duration_secs);
       EXPECT_EQ(expected_expiry_time.ToDeltaSinceWindowsEpoch().InSeconds(),
                 store_entry.expiry_time_secs());
       break;
diff --git a/components/page_image_annotation/content/renderer/content_page_annotator_driver.cc b/components/page_image_annotation/content/renderer/content_page_annotator_driver.cc
index 9ca5119..20c6be4 100644
--- a/components/page_image_annotation/content/renderer/content_page_annotator_driver.cc
+++ b/components/page_image_annotation/content/renderer/content_page_annotator_driver.cc
@@ -138,7 +138,7 @@
       FROM_HERE,
       base::BindOnce(&ContentPageAnnotatorDriver::FindAndTrackImages,
                      weak_ptr_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(kDomCrawlDelayMs));
+      base::Milliseconds(kDomCrawlDelayMs));
 }
 
 void ContentPageAnnotatorDriver::OnDestruct() {
diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.cc
index 06d0484..e0a09a3f 100644
--- a/components/page_info/page_info.cc
+++ b/components/page_info/page_info.cc
@@ -337,40 +337,35 @@
   base::UmaHistogramCustomTimes(security_state::GetSecurityLevelHistogramName(
                                     kPageInfoTimePrefix, security_level_),
                                 base::TimeTicks::Now() - start_time_,
-                                base::TimeDelta::FromMilliseconds(1),
-                                base::TimeDelta::FromHours(1), 100);
+                                base::Milliseconds(1), base::Hours(1), 100);
   base::UmaHistogramCustomTimes(
       security_state::GetSafetyTipHistogramName(kPageInfoTimePrefix,
                                                 safety_tip_info_.status),
-      base::TimeTicks::Now() - start_time_,
-      base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromHours(1), 100);
+      base::TimeTicks::Now() - start_time_, base::Milliseconds(1),
+      base::Hours(1), 100);
 
   if (did_perform_action_) {
     base::UmaHistogramCustomTimes(
         security_state::GetSecurityLevelHistogramName(kPageInfoTimeActionPrefix,
                                                       security_level_),
-        base::TimeTicks::Now() - start_time_,
-        base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromHours(1),
-        100);
+        base::TimeTicks::Now() - start_time_, base::Milliseconds(1),
+        base::Hours(1), 100);
     base::UmaHistogramCustomTimes(
         security_state::GetSafetyTipHistogramName(kPageInfoTimeActionPrefix,
                                                   safety_tip_info_.status),
-        base::TimeTicks::Now() - start_time_,
-        base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromHours(1),
-        100);
+        base::TimeTicks::Now() - start_time_, base::Milliseconds(1),
+        base::Hours(1), 100);
   } else {
     base::UmaHistogramCustomTimes(
         security_state::GetSecurityLevelHistogramName(
             kPageInfoTimeNoActionPrefix, security_level_),
-        base::TimeTicks::Now() - start_time_,
-        base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromHours(1),
-        100);
+        base::TimeTicks::Now() - start_time_, base::Milliseconds(1),
+        base::Hours(1), 100);
     base::UmaHistogramCustomTimes(
         security_state::GetSafetyTipHistogramName(kPageInfoTimeNoActionPrefix,
                                                   safety_tip_info_.status),
-        base::TimeTicks::Now() - start_time_,
-        base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromHours(1),
-        100);
+        base::TimeTicks::Now() - start_time_, base::Milliseconds(1),
+        base::Hours(1), 100);
   }
 }
 
diff --git a/components/page_load_metrics/browser/layout_shift_normalization.cc b/components/page_load_metrics/browser/layout_shift_normalization.cc
index 63b7934..1eb4db5 100644
--- a/components/page_load_metrics/browser/layout_shift_normalization.cc
+++ b/components/page_load_metrics/browser/layout_shift_normalization.cc
@@ -5,8 +5,7 @@
 #include "components/page_load_metrics/browser/layout_shift_normalization.h"
 
 namespace page_load_metrics {
-constexpr auto NEW_SHIFT_BUFFER_WINDOW_DURATION =
-    base::TimeDelta::FromSeconds(5);
+constexpr auto NEW_SHIFT_BUFFER_WINDOW_DURATION = base::Seconds(5);
 constexpr auto MAX_SHIFT_BUFFER_SIZE = 300;
 
 LayoutShiftNormalization::LayoutShiftNormalization() = default;
@@ -114,15 +113,15 @@
 
   // Update Session Windows.
   UpdateSessionWindow(
-      &session_gap1000ms_max5000ms_, base::TimeDelta::FromMilliseconds(1000),
-      base::TimeDelta::FromMilliseconds(5000), first, first_non_stale,
+      &session_gap1000ms_max5000ms_, base::Milliseconds(1000),
+      base::Milliseconds(5000), first, first_non_stale,
       normalized_cls_data_.session_windows_gap1000ms_max5000ms_max_cls,
       dummy_count);
   auto tmp_session_gap1000ms_max5000ms = session_gap1000ms_max5000ms_;
 
   UpdateSessionWindow(
-      &tmp_session_gap1000ms_max5000ms, base::TimeDelta::FromMilliseconds(1000),
-      base::TimeDelta::FromMilliseconds(5000), first_non_stale, last,
+      &tmp_session_gap1000ms_max5000ms, base::Milliseconds(1000),
+      base::Milliseconds(5000), first_non_stale, last,
       normalized_cls_data_.session_windows_gap1000ms_max5000ms_max_cls,
       dummy_count);
 }
diff --git a/components/page_load_metrics/browser/layout_shift_normalization_unittest.cc b/components/page_load_metrics/browser/layout_shift_normalization_unittest.cc
index 431e773..2edcdf42 100644
--- a/components/page_load_metrics/browser/layout_shift_normalization_unittest.cc
+++ b/components/page_load_metrics/browser/layout_shift_normalization_unittest.cc
@@ -30,7 +30,7 @@
       std::vector<std::pair<int, double>> shifts_data) {
     for (auto shift : shifts_data) {
       new_shifts.emplace_back(page_load_metrics::mojom::LayoutShift::New(
-          current_time - base::TimeDelta::FromMilliseconds(std::get<0>(shift)),
+          current_time - base::Milliseconds(std::get<0>(shift)),
           std::get<1>(shift)));
       // Update CLS.
       cumulative_layoutshift_score_ += std::get<1>(shift);
@@ -95,7 +95,7 @@
 TEST_F(LayoutShiftNormalizationTest, MultipleShiftsFromDifferentTimes) {
   base::TimeTicks current_time = base::TimeTicks::Now();
   // Insert the first set of new layout shifts. The insertion order matters.
-  auto current_time_1 = current_time - base::TimeDelta::FromMilliseconds(5000);
+  auto current_time_1 = current_time - base::Milliseconds(5000);
   std::vector<page_load_metrics::mojom::LayoutShiftPtr> new_shifts_1;
   InsertNewLayoutShifts(new_shifts_1, current_time_1,
                         {{2100, 1.5}, {1800, 1.5}});
@@ -111,7 +111,7 @@
 
   // Insert the third set of new layout shifts. The insertion order
   // matters.
-  auto current_time_3 = current_time + base::TimeDelta::FromMilliseconds(6000);
+  auto current_time_3 = current_time + base::Milliseconds(6000);
   std::vector<page_load_metrics::mojom::LayoutShiftPtr> new_shifts_3;
   InsertNewLayoutShifts(new_shifts_3, current_time_3, {{0, 0.5}});
   AddNewLayoutShifts(new_shifts_3, current_time_3);
diff --git a/components/page_load_metrics/browser/metrics_web_contents_observer_unittest.cc b/components/page_load_metrics/browser/metrics_web_contents_observer_unittest.cc
index ff1da26..ac00488 100644
--- a/components/page_load_metrics/browser/metrics_web_contents_observer_unittest.cc
+++ b/components/page_load_metrics/browser/metrics_web_contents_observer_unittest.cc
@@ -48,8 +48,8 @@
 void PopulatePageLoadTiming(mojom::PageLoadTiming* timing) {
   page_load_metrics::InitPageLoadTimingForTest(timing);
   timing->navigation_start = base::Time::FromDoubleT(1);
-  timing->response_start = base::TimeDelta::FromMilliseconds(10);
-  timing->parse_timing->parse_start = base::TimeDelta::FromMilliseconds(20);
+  timing->response_start = base::Milliseconds(10);
+  timing->parse_timing->parse_start = base::Milliseconds(20);
 }
 
 blink::mojom::ResourceLoadInfoPtr CreateResourceLoadInfo(
@@ -306,8 +306,8 @@
   mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
-  timing.response_start = base::TimeDelta::FromMilliseconds(10);
-  timing.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(20);
+  timing.response_start = base::Milliseconds(10);
+  timing.parse_timing->parse_start = base::Milliseconds(20);
 
   content::NavigationSimulator::NavigateAndCommitFromBrowser(
       web_contents(), GURL(kDefaultTestUrl));
@@ -324,11 +324,9 @@
   mojom::PageLoadTiming subframe_timing;
   page_load_metrics::InitPageLoadTimingForTest(&subframe_timing);
   subframe_timing.navigation_start = base::Time::FromDoubleT(2);
-  subframe_timing.response_start = base::TimeDelta::FromMilliseconds(10);
-  subframe_timing.parse_timing->parse_start =
-      base::TimeDelta::FromMilliseconds(20);
-  subframe_timing.paint_timing->first_paint =
-      base::TimeDelta::FromMilliseconds(40);
+  subframe_timing.response_start = base::Milliseconds(10);
+  subframe_timing.parse_timing->parse_start = base::Milliseconds(20);
+  subframe_timing.paint_timing->first_paint = base::Milliseconds(40);
   subframe = content::NavigationSimulator::NavigateAndCommitFromDocument(
       GURL(kDefaultTestUrl2), subframe);
   SimulateTimingUpdate(subframe_timing, subframe);
@@ -466,7 +464,7 @@
 TEST_F(MetricsWebContentsObserverTest, NullNavigationStartError) {
   mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
-  timing.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(1);
+  timing.parse_timing->parse_start = base::Milliseconds(1);
 
   content::NavigationSimulator::NavigateAndCommitFromBrowser(
       web_contents(), GURL(kDefaultTestUrl));
@@ -491,7 +489,7 @@
   mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
-  timing.parse_timing->parse_stop = base::TimeDelta::FromMilliseconds(1);
+  timing.parse_timing->parse_stop = base::Milliseconds(1);
 
   content::NavigationSimulator::NavigateAndCommitFromBrowser(
       web_contents(), GURL(kDefaultTestUrl));
@@ -722,7 +720,7 @@
   mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
-  timing.response_start = base::TimeDelta::FromMilliseconds(10);
+  timing.response_start = base::Milliseconds(10);
 
   content::NavigationSimulator::NavigateAndCommitFromBrowser(
       web_contents(), GURL(kDefaultTestUrl));
@@ -738,8 +736,7 @@
   // Dispatch a timing update for the child frame that includes a first paint.
   mojom::PageLoadTiming subframe_timing;
   PopulatePageLoadTiming(&subframe_timing);
-  subframe_timing.paint_timing->first_paint =
-      base::TimeDelta::FromMilliseconds(40);
+  subframe_timing.paint_timing->first_paint = base::Milliseconds(40);
   subframe = content::NavigationSimulator::NavigateAndCommitFromDocument(
       GURL(kDefaultTestUrl2), subframe);
   SimulateTimingUpdate(subframe_timing, subframe);
@@ -755,7 +752,7 @@
   // Dispatch the parse_start event in the parent. We should now unbuffer the
   // first paint main frame update and receive a main frame update with a first
   // paint value.
-  timing.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(20);
+  timing.parse_timing->parse_start = base::Milliseconds(20);
   SimulateTimingUpdate(timing);
   ASSERT_EQ(2, CountUpdatedTimingReported());
   EXPECT_FALSE(timing.Equals(*updated_timings().back()));
@@ -791,7 +788,7 @@
   // Ensure this is much bigger than the subframe first paint below. We
   // currently can't inject the navigation start offset, so we must ensure that
   // subframe first paint + navigation start offset < main frame first paint.
-  timing.paint_timing->first_paint = base::TimeDelta::FromMilliseconds(100000);
+  timing.paint_timing->first_paint = base::Milliseconds(100000);
   content::NavigationSimulator::NavigateAndCommitFromBrowser(
       web_contents(), GURL(kDefaultTestUrl));
   SimulateTimingUpdateWithoutFiringDispatchTimer(timing, main_rfh());
@@ -805,8 +802,7 @@
   // Dispatch a timing update for a child frame that includes a first paint.
   mojom::PageLoadTiming subframe_timing;
   PopulatePageLoadTiming(&subframe_timing);
-  subframe_timing.paint_timing->first_paint =
-      base::TimeDelta::FromMilliseconds(500);
+  subframe_timing.paint_timing->first_paint = base::Milliseconds(500);
   content::RenderFrameHost* subframe = rfh_tester->AppendChild("subframe");
   subframe = content::NavigationSimulator::NavigateAndCommitFromDocument(
       GURL(kDefaultTestUrl2), subframe);
@@ -850,8 +846,7 @@
   // Dispatch a timing update for an additional child frame, with an earlier
   // first paint time. This should cause an immediate update, without a timer
   // delay.
-  subframe_timing.paint_timing->first_paint =
-      base::TimeDelta::FromMilliseconds(50);
+  subframe_timing.paint_timing->first_paint = base::Milliseconds(50);
   content::RenderFrameHost* subframe2 = rfh_tester->AppendChild("subframe");
   subframe2 = content::NavigationSimulator::NavigateAndCommitFromDocument(
       GURL(kDefaultTestUrl2), subframe2);
@@ -876,7 +871,7 @@
 TEST_F(MetricsWebContentsObserverTest, FlushBufferOnAppBackground) {
   mojom::PageLoadTiming timing;
   PopulatePageLoadTiming(&timing);
-  timing.paint_timing->first_paint = base::TimeDelta::FromMilliseconds(100000);
+  timing.paint_timing->first_paint = base::Milliseconds(100000);
   content::NavigationSimulator::NavigateAndCommitFromBrowser(
       web_contents(), GURL(kDefaultTestUrl));
   SimulateTimingUpdateWithoutFiringDispatchTimer(timing, main_rfh());
@@ -890,8 +885,7 @@
        FirstInputDelayMissingFirstInputTimestamp) {
   mojom::PageLoadTiming timing;
   PopulatePageLoadTiming(&timing);
-  timing.interactive_timing->first_input_delay =
-      base::TimeDelta::FromMilliseconds(10);
+  timing.interactive_timing->first_input_delay = base::Milliseconds(10);
 
   content::NavigationSimulator::NavigateAndCommitFromBrowser(
       web_contents(), GURL(kDefaultTestUrl));
@@ -920,8 +914,7 @@
        FirstInputTimestampMissingFirstInputDelay) {
   mojom::PageLoadTiming timing;
   PopulatePageLoadTiming(&timing);
-  timing.interactive_timing->first_input_timestamp =
-      base::TimeDelta::FromMilliseconds(10);
+  timing.interactive_timing->first_input_timestamp = base::Milliseconds(10);
 
   content::NavigationSimulator::NavigateAndCommitFromBrowser(
       web_contents(), GURL(kDefaultTestUrl));
@@ -950,8 +943,7 @@
        LongestInputDelayMissingLongestInputTimestamp) {
   mojom::PageLoadTiming timing;
   PopulatePageLoadTiming(&timing);
-  timing.interactive_timing->longest_input_delay =
-      base::TimeDelta::FromMilliseconds(10);
+  timing.interactive_timing->longest_input_delay = base::Milliseconds(10);
 
   content::NavigationSimulator::NavigateAndCommitFromBrowser(
       web_contents(), GURL(kDefaultTestUrl));
@@ -980,8 +972,7 @@
        LongestInputTimestampMissingLongestInputDelay) {
   mojom::PageLoadTiming timing;
   PopulatePageLoadTiming(&timing);
-  timing.interactive_timing->longest_input_timestamp =
-      base::TimeDelta::FromMilliseconds(10);
+  timing.interactive_timing->longest_input_timestamp = base::Milliseconds(10);
 
   content::NavigationSimulator::NavigateAndCommitFromBrowser(
       web_contents(), GURL(kDefaultTestUrl));
@@ -1010,15 +1001,11 @@
        LongestInputDelaySmallerThanFirstInputDelay) {
   mojom::PageLoadTiming timing;
   PopulatePageLoadTiming(&timing);
-  timing.interactive_timing->first_input_delay =
-      base::TimeDelta::FromMilliseconds(50);
-  timing.interactive_timing->first_input_timestamp =
-      base::TimeDelta::FromMilliseconds(1000);
+  timing.interactive_timing->first_input_delay = base::Milliseconds(50);
+  timing.interactive_timing->first_input_timestamp = base::Milliseconds(1000);
 
-  timing.interactive_timing->longest_input_delay =
-      base::TimeDelta::FromMilliseconds(10);
-  timing.interactive_timing->longest_input_timestamp =
-      base::TimeDelta::FromMilliseconds(2000);
+  timing.interactive_timing->longest_input_delay = base::Milliseconds(10);
+  timing.interactive_timing->longest_input_timestamp = base::Milliseconds(2000);
 
   content::NavigationSimulator::NavigateAndCommitFromBrowser(
       web_contents(), GURL(kDefaultTestUrl));
@@ -1049,15 +1036,11 @@
        LongestInputTimestampEarlierThanFirstInputTimestamp) {
   mojom::PageLoadTiming timing;
   PopulatePageLoadTiming(&timing);
-  timing.interactive_timing->first_input_delay =
-      base::TimeDelta::FromMilliseconds(50);
-  timing.interactive_timing->first_input_timestamp =
-      base::TimeDelta::FromMilliseconds(1000);
+  timing.interactive_timing->first_input_delay = base::Milliseconds(50);
+  timing.interactive_timing->first_input_timestamp = base::Milliseconds(1000);
 
-  timing.interactive_timing->longest_input_delay =
-      base::TimeDelta::FromMilliseconds(60);
-  timing.interactive_timing->longest_input_timestamp =
-      base::TimeDelta::FromMilliseconds(500);
+  timing.interactive_timing->longest_input_delay = base::Milliseconds(60);
+  timing.interactive_timing->longest_input_timestamp = base::Milliseconds(500);
 
   content::NavigationSimulator::NavigateAndCommitFromBrowser(
       web_contents(), GURL(kDefaultTestUrl));
@@ -1091,13 +1074,11 @@
        FirstInputDelayAndTimingSubframeFirstDeliveredSecond) {
   mojom::PageLoadTiming timing;
   PopulatePageLoadTiming(&timing);
-  timing.interactive_timing->first_input_delay =
-      base::TimeDelta::FromMilliseconds(10);
+  timing.interactive_timing->first_input_delay = base::Milliseconds(10);
   // Set this far in the future. We currently can't control the navigation start
   // offset, so we ensure that the subframe timestamp + the unknown offset is
   // less than the main frame timestamp.
-  timing.interactive_timing->first_input_timestamp =
-      base::TimeDelta::FromMinutes(100);
+  timing.interactive_timing->first_input_timestamp = base::Minutes(100);
 
   content::NavigationSimulator::NavigateAndCommitFromBrowser(
       web_contents(), GURL(kDefaultTestUrl));
@@ -1112,9 +1093,9 @@
   mojom::PageLoadTiming subframe_timing;
   PopulatePageLoadTiming(&subframe_timing);
   subframe_timing.interactive_timing->first_input_delay =
-      base::TimeDelta::FromMilliseconds(15);
+      base::Milliseconds(15);
   subframe_timing.interactive_timing->first_input_timestamp =
-      base::TimeDelta::FromMilliseconds(90);
+      base::Milliseconds(90);
 
   subframe = content::NavigationSimulator::NavigateAndCommitFromDocument(
       GURL(kDefaultTestUrl2), subframe);
@@ -1127,12 +1108,10 @@
   const mojom::InteractiveTiming& interactive_timing =
       *complete_timings().back()->interactive_timing;
 
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(15),
-            interactive_timing.first_input_delay);
+  EXPECT_EQ(base::Milliseconds(15), interactive_timing.first_input_delay);
   // Ensure the timestamp is from the subframe. The main frame timestamp was 100
   // minutes.
-  EXPECT_LT(interactive_timing.first_input_timestamp,
-            base::TimeDelta::FromMinutes(10));
+  EXPECT_LT(interactive_timing.first_input_timestamp, base::Minutes(10));
 
   CheckNoErrorEvents();
 }
@@ -1153,9 +1132,9 @@
   mojom::PageLoadTiming subframe_timing;
   PopulatePageLoadTiming(&subframe_timing);
   subframe_timing.interactive_timing->first_input_delay =
-      base::TimeDelta::FromMilliseconds(10);
+      base::Milliseconds(10);
   subframe_timing.interactive_timing->first_input_timestamp =
-      base::TimeDelta::FromMinutes(100);
+      base::Minutes(100);
 
   subframe = content::NavigationSimulator::NavigateAndCommitFromDocument(
       GURL(kDefaultTestUrl2), subframe);
@@ -1166,13 +1145,11 @@
   // Dispatch a timing update for the main frame that includes a first input
   // earlier than the one for the subframe.
 
-  timing.interactive_timing->first_input_delay =
-      base::TimeDelta::FromMilliseconds(15);
+  timing.interactive_timing->first_input_delay = base::Milliseconds(15);
   // Set this far in the future. We currently can't control the navigation start
   // offset, so we ensure that the main frame timestamp + the unknown offset is
   // less than the subframe timestamp.
-  timing.interactive_timing->first_input_timestamp =
-      base::TimeDelta::FromMilliseconds(90);
+  timing.interactive_timing->first_input_timestamp = base::Milliseconds(90);
 
   content::NavigationSimulator::NavigateAndCommitFromBrowser(
       web_contents(), GURL(kDefaultTestUrl));
@@ -1185,12 +1162,10 @@
   const mojom::InteractiveTiming& interactive_timing =
       *complete_timings().back()->interactive_timing;
 
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(15),
-            interactive_timing.first_input_delay);
+  EXPECT_EQ(base::Milliseconds(15), interactive_timing.first_input_delay);
   // Ensure the timestamp is from the main frame. The subframe timestamp was 100
   // minutes.
-  EXPECT_LT(interactive_timing.first_input_timestamp,
-            base::TimeDelta::FromMinutes(10));
+  EXPECT_LT(interactive_timing.first_input_timestamp, base::Minutes(10));
 
   CheckNoErrorEvents();
 }
@@ -1207,9 +1182,9 @@
   mojom::PageLoadTiming subframe_timing;
   PopulatePageLoadTiming(&subframe_timing);
   subframe_timing.interactive_timing->longest_input_delay =
-      base::TimeDelta::FromMilliseconds(70);
+      base::Milliseconds(70);
   subframe_timing.interactive_timing->longest_input_timestamp =
-      base::TimeDelta::FromMilliseconds(1000);
+      base::Milliseconds(1000);
 
   subframe = content::NavigationSimulator::NavigateAndCommitFromDocument(
       GURL(kDefaultTestUrl2), subframe);
@@ -1221,9 +1196,9 @@
   // Dispatch a timing update for the main frame that includes a longest input
   // delay longer than the one for the subframe.
   main_frame_timing.interactive_timing->longest_input_delay =
-      base::TimeDelta::FromMilliseconds(100);
+      base::Milliseconds(100);
   main_frame_timing.interactive_timing->longest_input_timestamp =
-      base::TimeDelta::FromMilliseconds(2000);
+      base::Milliseconds(2000);
   content::NavigationSimulator::NavigateAndCommitFromBrowser(
       web_contents(), GURL(kDefaultTestUrl));
   SimulateTimingUpdate(main_frame_timing);
@@ -1233,9 +1208,9 @@
   mojom::PageLoadTiming subframe2_timing;
   PopulatePageLoadTiming(&subframe2_timing);
   subframe2_timing.interactive_timing->longest_input_delay =
-      base::TimeDelta::FromMilliseconds(80);
+      base::Milliseconds(80);
   subframe2_timing.interactive_timing->longest_input_timestamp =
-      base::TimeDelta::FromMilliseconds(3000);
+      base::Milliseconds(3000);
   subframe2 = content::NavigationSimulator::NavigateAndCommitFromDocument(
       GURL(kDefaultTestUrl2), subframe2);
   SimulateTimingUpdate(subframe2_timing, subframe2);
@@ -1247,9 +1222,8 @@
   const mojom::InteractiveTiming& interactive_timing =
       *complete_timings().back()->interactive_timing;
 
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(100),
-            interactive_timing.longest_input_delay);
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(2000),
+  EXPECT_EQ(base::Milliseconds(100), interactive_timing.longest_input_delay);
+  EXPECT_EQ(base::Milliseconds(2000),
             interactive_timing.longest_input_timestamp);
 
   CheckNoErrorEvents();
@@ -1266,9 +1240,9 @@
   mojom::PageLoadTiming main_frame_timing;
   PopulatePageLoadTiming(&main_frame_timing);
   main_frame_timing.interactive_timing->longest_input_delay =
-      base::TimeDelta::FromMilliseconds(100);
+      base::Milliseconds(100);
   main_frame_timing.interactive_timing->longest_input_timestamp =
-      base::TimeDelta::FromMilliseconds(2000);
+      base::Milliseconds(2000);
   content::NavigationSimulator::NavigateAndCommitFromBrowser(
       web_contents(), GURL(kDefaultTestUrl));
   SimulateTimingUpdate(main_frame_timing);
@@ -1281,9 +1255,9 @@
   mojom::PageLoadTiming subframe_timing;
   PopulatePageLoadTiming(&subframe_timing);
   subframe_timing.interactive_timing->longest_input_delay =
-      base::TimeDelta::FromMilliseconds(15);
+      base::Milliseconds(15);
   subframe_timing.interactive_timing->longest_input_timestamp =
-      base::TimeDelta::FromMilliseconds(1000);
+      base::Milliseconds(1000);
   subframe1 = content::NavigationSimulator::NavigateAndCommitFromDocument(
       GURL(kDefaultTestUrl2), subframe1);
   SimulateTimingUpdate(subframe_timing, subframe1);
@@ -1293,9 +1267,9 @@
   mojom::PageLoadTiming subframe2_timing;
   PopulatePageLoadTiming(&subframe2_timing);
   subframe2_timing.interactive_timing->longest_input_delay =
-      base::TimeDelta::FromMilliseconds(200);
+      base::Milliseconds(200);
   subframe2_timing.interactive_timing->longest_input_timestamp =
-      base::TimeDelta::FromMilliseconds(3000);
+      base::Milliseconds(3000);
   // TODO: Make this url3.
   subframe2 = content::NavigationSimulator::NavigateAndCommitFromDocument(
       GURL(kDefaultTestUrl2), subframe2);
@@ -1308,15 +1282,14 @@
   const mojom::InteractiveTiming& interactive_timing =
       *complete_timings().back()->interactive_timing;
 
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(200),
-            interactive_timing.longest_input_delay);
+  EXPECT_EQ(base::Milliseconds(200), interactive_timing.longest_input_delay);
 
   // Actual LID timestamp includes the delta between navigation start in
   // subframe2 and navigation time in the main frame. That delta varies with
   // different runs, so we only check here that the timestamp is greater than
   // 3s.
   EXPECT_GT(interactive_timing.longest_input_timestamp.value(),
-            base::TimeDelta::FromMilliseconds(3000));
+            base::Milliseconds(3000));
 
   CheckNoErrorEvents();
 }
@@ -1324,14 +1297,14 @@
 TEST_F(MetricsWebContentsObserverTest, DispatchDelayedMetricsOnPageClose) {
   mojom::PageLoadTiming timing;
   PopulatePageLoadTiming(&timing);
-  timing.paint_timing->first_paint = base::TimeDelta::FromMilliseconds(1000);
+  timing.paint_timing->first_paint = base::Milliseconds(1000);
   content::NavigationSimulator::NavigateAndCommitFromBrowser(
       web_contents(), GURL(kDefaultTestUrl));
   SimulateTimingUpdateWithoutFiringDispatchTimer(timing, main_rfh());
 
   // Throw in a cpu timing update, shouldn't affect the page timing results.
   mojom::CpuTiming cpu_timing;
-  cpu_timing.task_time = base::TimeDelta::FromMilliseconds(1000);
+  cpu_timing.task_time = base::Milliseconds(1000);
   SimulateCpuTimingUpdate(cpu_timing, main_rfh());
 
   EXPECT_TRUE(GetMostRecentTimer()->IsRunning());
@@ -1358,7 +1331,7 @@
       web_contents(), GURL(kDefaultTestUrl));
 
   mojom::CpuTiming timing;
-  timing.task_time = base::TimeDelta::FromMilliseconds(1000);
+  timing.task_time = base::Milliseconds(1000);
   SimulateCpuTimingUpdate(timing, main_rfh());
   ASSERT_EQ(1, CountUpdatedCpuTimingReported());
   EXPECT_TRUE(timing.Equals(*updated_cpu_timings().back()));
diff --git a/components/page_load_metrics/browser/observers/ad_metrics/ads_page_load_metrics_observer_unittest.cc b/components/page_load_metrics/browser/observers/ad_metrics/ads_page_load_metrics_observer_unittest.cc
index 2475baa9..ba375bc3 100644
--- a/components/page_load_metrics/browser/observers/ad_metrics/ads_page_load_metrics_observer_unittest.cc
+++ b/components/page_load_metrics/browser/observers/ad_metrics/ads_page_load_metrics_observer_unittest.cc
@@ -105,14 +105,11 @@
 enum class ResourceCached { kNotCached = 0, kCachedHttp, kCachedMemory };
 enum class FrameType { AD = 0, NON_AD };
 
-const base::TimeDelta kParseStartTime = base::TimeDelta::FromMilliseconds(3);
-const base::TimeDelta kCreativeEligibleToPaintTime =
-    base::TimeDelta::FromMilliseconds(4);
-const base::TimeDelta kCreativeFCPTime = base::TimeDelta::FromMilliseconds(5);
-const base::TimeDelta kOtherFrameEligibleToPaintTime =
-    base::TimeDelta::FromMilliseconds(9);
-const base::TimeDelta kOtherFrameFCPTime =
-    base::TimeDelta::FromMilliseconds(10);
+const base::TimeDelta kParseStartTime = base::Milliseconds(3);
+const base::TimeDelta kCreativeEligibleToPaintTime = base::Milliseconds(4);
+const base::TimeDelta kCreativeFCPTime = base::Milliseconds(5);
+const base::TimeDelta kOtherFrameEligibleToPaintTime = base::Milliseconds(9);
+const base::TimeDelta kOtherFrameFCPTime = base::Milliseconds(10);
 const char kAdUrl[] = "https://ads.com/ad/disallowed.html";
 const char kOtherAdUrl[] = "https://other-ads.com/ad/disallowed.html";
 const char kNonAdUrl[] = "https://foo.com/";
@@ -496,11 +493,11 @@
   // intervention.
   void UseCpuTimeUnderThreshold(RenderFrameHost* render_frame_host,
                                 base::TimeDelta total_time) {
-    const base::TimeDelta peak_threshold = base::TimeDelta::FromMilliseconds(
+    const base::TimeDelta peak_threshold = base::Milliseconds(
         heavy_ad_thresholds::kMaxPeakWindowedPercent * 30000 / 100 - 1);
     for (; total_time > peak_threshold; total_time -= peak_threshold) {
       OnCpuTimingUpdate(render_frame_host, peak_threshold);
-      AdvancePageDuration(base::TimeDelta::FromSeconds(31));
+      AdvancePageDuration(base::Seconds(31));
     }
     OnCpuTimingUpdate(render_frame_host, total_time);
   }
@@ -1522,8 +1519,8 @@
   mojom::PageLoadTiming timing;
   InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::Now();
-  timing.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(10);
-  timing.response_start = base::TimeDelta::FromSeconds(0);
+  timing.parse_timing->parse_start = base::Milliseconds(10);
+  timing.response_start = base::Seconds(0);
   PopulateRequiredTimingFields(&timing);
   tester()->SimulateTimingUpdate(timing);
   ResourceDataUpdate(
@@ -1537,8 +1534,8 @@
                      "video/webm" /* mime_type */, true /* is_ad_resource */);
 
   // Update cpu timings.
-  OnCpuTimingUpdate(ad_frame, base::TimeDelta::FromMilliseconds(500));
-  OnCpuTimingUpdate(main_rfh(), base::TimeDelta::FromMilliseconds(500));
+  OnCpuTimingUpdate(ad_frame, base::Milliseconds(500));
+  OnCpuTimingUpdate(main_rfh(), base::Milliseconds(500));
   NavigateMainFrame(kNonAdUrl);
 
   auto entries = test_ukm_recorder().GetEntriesByName(
@@ -1585,7 +1582,7 @@
   ResourceDataUpdate(main_frame, ResourceCached::kNotCached, 10);
 
   // Use CPU but maintain zero bytes in the ad frame
-  OnCpuTimingUpdate(ad_frame, base::TimeDelta::FromMilliseconds(1000));
+  OnCpuTimingUpdate(ad_frame, base::Milliseconds(1000));
 
   NavigateFrame(kNonAdUrl, main_frame);
 
@@ -1606,32 +1603,32 @@
   ResourceDataUpdate(ad_frame, ResourceCached::kNotCached, 10);
 
   // Perform some updates on ad and non-ad frames. Usage 1%.
-  OnCpuTimingUpdate(ad_frame, base::TimeDelta::FromMilliseconds(500));
+  OnCpuTimingUpdate(ad_frame, base::Milliseconds(500));
 
   // Advance time by twelve seconds.
-  AdvancePageDuration(base::TimeDelta::FromSeconds(12));
+  AdvancePageDuration(base::Seconds(12));
 
   // Do some more work on the ad frame. Usage 5%.
-  OnCpuTimingUpdate(ad_frame, base::TimeDelta::FromMilliseconds(1000));
+  OnCpuTimingUpdate(ad_frame, base::Milliseconds(1000));
 
   // Advance time by twelve more seconds.
-  AdvancePageDuration(base::TimeDelta::FromSeconds(12));
+  AdvancePageDuration(base::Seconds(12));
 
   // Do some more work on the ad frame. Usage 8%.
-  OnCpuTimingUpdate(ad_frame, base::TimeDelta::FromMilliseconds(1000));
+  OnCpuTimingUpdate(ad_frame, base::Milliseconds(1000));
 
   // Advance time by twelve more seconds.
-  AdvancePageDuration(base::TimeDelta::FromSeconds(12));
+  AdvancePageDuration(base::Seconds(12));
 
   // Perform some updates on ad and non-ad frames. Usage 10%/13%.
-  OnCpuTimingUpdate(ad_frame, base::TimeDelta::FromMilliseconds(1000));
-  OnCpuTimingUpdate(main_frame, base::TimeDelta::FromMilliseconds(1000));
+  OnCpuTimingUpdate(ad_frame, base::Milliseconds(1000));
+  OnCpuTimingUpdate(main_frame, base::Milliseconds(1000));
 
   // Advance time by twelve more seconds.
-  AdvancePageDuration(base::TimeDelta::FromSeconds(12));
+  AdvancePageDuration(base::Seconds(12));
 
   // Perform some updates on ad and non-ad frames. Usage 8%/11%.
-  OnCpuTimingUpdate(ad_frame, base::TimeDelta::FromMilliseconds(500));
+  OnCpuTimingUpdate(ad_frame, base::Milliseconds(500));
 
   // Navigate away and check the peak windowed cpu usage.
   NavigateFrame(kNonAdUrl, main_frame);
@@ -1657,33 +1654,33 @@
   ResourceDataUpdate(ad_frame, ResourceCached::kNotCached, 10);
 
   // Perform some updates on ad and non-ad frames. Usage 1%.
-  OnCpuTimingUpdate(ad_frame, base::TimeDelta::FromMilliseconds(500));
+  OnCpuTimingUpdate(ad_frame, base::Milliseconds(500));
 
   // Advance time by twelve seconds.
-  AdvancePageDuration(base::TimeDelta::FromSeconds(12));
+  AdvancePageDuration(base::Seconds(12));
 
   // Do some more work on the ad frame. Usage 8%.
-  OnCpuTimingUpdate(ad_frame, base::TimeDelta::FromMilliseconds(2000));
+  OnCpuTimingUpdate(ad_frame, base::Milliseconds(2000));
 
   // Advance time by twelve more seconds.
-  AdvancePageDuration(base::TimeDelta::FromSeconds(12));
+  AdvancePageDuration(base::Seconds(12));
 
   // Do some more work on the ad frame. Usage 11%.
-  OnCpuTimingUpdate(ad_frame, base::TimeDelta::FromMilliseconds(1000));
+  OnCpuTimingUpdate(ad_frame, base::Milliseconds(1000));
 
   // Set the page activation and advance time by twelve more seconds.
   tester()->SimulateFrameReceivedUserActivation(ad_frame);
-  AdvancePageDuration(base::TimeDelta::FromSeconds(12));
+  AdvancePageDuration(base::Seconds(12));
 
   // Perform some updates on ad and main frames. Usage 13%/16%.
-  OnCpuTimingUpdate(ad_frame, base::TimeDelta::FromMilliseconds(1000));
-  OnCpuTimingUpdate(main_frame, base::TimeDelta::FromMilliseconds(1000));
+  OnCpuTimingUpdate(ad_frame, base::Milliseconds(1000));
+  OnCpuTimingUpdate(main_frame, base::Milliseconds(1000));
 
   // Advance time by twelve more seconds.
-  AdvancePageDuration(base::TimeDelta::FromSeconds(12));
+  AdvancePageDuration(base::Seconds(12));
 
   // Perform some updates on ad and non-ad frames. Usage 8%/11%.
-  OnCpuTimingUpdate(ad_frame, base::TimeDelta::FromMilliseconds(500));
+  OnCpuTimingUpdate(ad_frame, base::Milliseconds(500));
 
   // Navigate away and check the peak windowed cpu usage.
   NavigateFrame(kNonAdUrl, main_frame);
@@ -1708,23 +1705,23 @@
   ResourceDataUpdate(ad_frame, ResourceCached::kNotCached, 10);
 
   // Perform some updates on ad and non-ad frames.
-  OnCpuTimingUpdate(ad_frame, base::TimeDelta::FromMilliseconds(500));
-  OnCpuTimingUpdate(non_ad_frame, base::TimeDelta::FromMilliseconds(500));
+  OnCpuTimingUpdate(ad_frame, base::Milliseconds(500));
+  OnCpuTimingUpdate(non_ad_frame, base::Milliseconds(500));
 
   // Hide the page, and ensure we keep recording information.
   web_contents()->WasHidden();
 
   // Do some more work on the ad frame.
-  OnCpuTimingUpdate(ad_frame, base::TimeDelta::FromMilliseconds(1000));
+  OnCpuTimingUpdate(ad_frame, base::Milliseconds(1000));
 
   // Show the page, nothing should change.
   web_contents()->WasShown();
 
   // Do some more work on the main frame.
-  OnCpuTimingUpdate(main_frame, base::TimeDelta::FromMilliseconds(500));
+  OnCpuTimingUpdate(main_frame, base::Milliseconds(500));
 
   // Navigate away after 4 seconds.
-  AdvancePageDuration(base::TimeDelta::FromMilliseconds(4000));
+  AdvancePageDuration(base::Milliseconds(4000));
   NavigateFrame(kNonAdUrl, main_frame);
 
   // Check the cpu histograms.
@@ -1759,21 +1756,21 @@
   ResourceDataUpdate(ad_frame, ResourceCached::kNotCached, 10);
 
   // Perform some updates on ad and non-ad frames.
-  OnCpuTimingUpdate(ad_frame, base::TimeDelta::FromMilliseconds(1000));
-  OnCpuTimingUpdate(non_ad_frame, base::TimeDelta::FromMilliseconds(500));
+  OnCpuTimingUpdate(ad_frame, base::Milliseconds(1000));
+  OnCpuTimingUpdate(non_ad_frame, base::Milliseconds(500));
 
   // Set the frame as activated after 2.5 seconds
-  AdvancePageDuration(base::TimeDelta::FromMilliseconds(2500));
+  AdvancePageDuration(base::Milliseconds(2500));
   tester()->SimulateFrameReceivedUserActivation(ad_frame);
 
   // Do some more work on the main frame.
-  OnCpuTimingUpdate(main_frame, base::TimeDelta::FromMilliseconds(500));
+  OnCpuTimingUpdate(main_frame, base::Milliseconds(500));
 
   // Do some more work on the ad frame.
-  OnCpuTimingUpdate(ad_frame, base::TimeDelta::FromMilliseconds(500));
+  OnCpuTimingUpdate(ad_frame, base::Milliseconds(500));
 
   // Navigate away after 4 seconds.
-  AdvancePageDuration(base::TimeDelta::FromMilliseconds(1500));
+  AdvancePageDuration(base::Milliseconds(1500));
   NavigateFrame(kNonAdUrl, main_frame);
 
   // Check the cpu histograms.
@@ -2017,11 +2014,10 @@
                      (heavy_ad_thresholds::kMaxNetworkBytes / 1024));
   OnCpuTimingUpdate(
       ad_frame_cpu,
-      base::TimeDelta::FromMilliseconds(
-          heavy_ad_thresholds::kMaxPeakWindowedPercent * 30000 / 100));
+      base::Milliseconds(heavy_ad_thresholds::kMaxPeakWindowedPercent * 30000 /
+                         100));
   UseCpuTimeUnderThreshold(
-      ad_frame_total_cpu,
-      base::TimeDelta::FromMilliseconds(heavy_ad_thresholds::kMaxCpuTime));
+      ad_frame_total_cpu, base::Milliseconds(heavy_ad_thresholds::kMaxCpuTime));
 
   // Check the intervention issues
   EXPECT_EQ(rfh_tester_net->GetHeavyAdIssueCount(
@@ -2139,7 +2135,7 @@
   // Use just under the peak threshold amount of CPU.
   OnCpuTimingUpdate(
       ad_frame,
-      base::TimeDelta::FromMilliseconds(
+      base::Milliseconds(
           heavy_ad_thresholds::kMaxPeakWindowedPercent * 30000 / 100 - 1));
 
   // Verify we did not trigger the intervention.
@@ -2158,8 +2154,8 @@
 
   // Use enough CPU to trigger the intervention.
   ErrorPageWaiter waiter(web_contents());
-  AdvancePageDuration(base::TimeDelta::FromSeconds(10));
-  OnCpuTimingUpdate(ad_frame, base::TimeDelta::FromMilliseconds(1));
+  AdvancePageDuration(base::Seconds(10));
+  OnCpuTimingUpdate(ad_frame, base::Milliseconds(1));
 
   // Wait for an error page and then check there's an intervention on the frame.
   waiter.WaitForError();
@@ -2326,8 +2322,8 @@
             0);
 
   // Verify the frame can still trip the CPU threshold.
-  UseCpuTimeUnderThreshold(ad_frame, base::TimeDelta::FromMilliseconds(
-                                         heavy_ad_thresholds::kMaxCpuTime + 1));
+  UseCpuTimeUnderThreshold(
+      ad_frame, base::Milliseconds(heavy_ad_thresholds::kMaxCpuTime + 1));
 
   // Verify we did trigger the intervention and that the message matches the
   // intervention type with noise.
@@ -2373,18 +2369,18 @@
 
   // Use just under the threshold amount of CPU.Needs to spread across enough
   // windows to not trigger peak threshold.
-  AdvancePageDuration(base::TimeDelta::FromSeconds(30));
-  UseCpuTimeUnderThreshold(ad_frame, base::TimeDelta::FromMilliseconds(
-                                         heavy_ad_thresholds::kMaxCpuTime - 1));
+  AdvancePageDuration(base::Seconds(30));
+  UseCpuTimeUnderThreshold(
+      ad_frame, base::Milliseconds(heavy_ad_thresholds::kMaxCpuTime - 1));
 
   // Verify we did not trigger the intervention.
   EXPECT_FALSE(HasInterventionReportsAfterFlush(ad_frame));
 
-  AdvancePageDuration(base::TimeDelta::FromSeconds(30));
+  AdvancePageDuration(base::Seconds(30));
 
   // Use enough CPU to trigger the intervention.
   ErrorPageWaiter waiter(web_contents());
-  OnCpuTimingUpdate(ad_frame, base::TimeDelta::FromMilliseconds(1));
+  OnCpuTimingUpdate(ad_frame, base::Milliseconds(1));
 
   EXPECT_TRUE(HasInterventionReportsAfterFlush(ad_frame));
   waiter.WaitForError();
@@ -2416,7 +2412,7 @@
   // Use just under the peak threshold amount of CPU.
   OnCpuTimingUpdate(
       ad_frame,
-      base::TimeDelta::FromMilliseconds(
+      base::Milliseconds(
           heavy_ad_thresholds::kMaxPeakWindowedPercent * 30000 / 100 - 1));
 
   // Verify we did not trigger the intervention.
@@ -2424,8 +2420,8 @@
 
   // Use enough CPU to trigger the intervention.
   ErrorPageWaiter waiter(web_contents());
-  AdvancePageDuration(base::TimeDelta::FromSeconds(10));
-  OnCpuTimingUpdate(ad_frame, base::TimeDelta::FromMilliseconds(1));
+  AdvancePageDuration(base::Seconds(10));
+  OnCpuTimingUpdate(ad_frame, base::Milliseconds(1));
 
   EXPECT_TRUE(HasInterventionReportsAfterFlush(ad_frame));
   waiter.WaitForError();
@@ -2546,8 +2542,8 @@
                          (heavy_ad_thresholds::kMaxNetworkBytes / 1024) + 1);
     }
     if (test_case.exceed_cpu) {
-      OnCpuTimingUpdate(ad_frame, base::TimeDelta::FromMilliseconds(
-                                      heavy_ad_thresholds::kMaxCpuTime + 1));
+      OnCpuTimingUpdate(
+          ad_frame, base::Milliseconds(heavy_ad_thresholds::kMaxCpuTime + 1));
     }
 
     // We should either see an error page if the intervention happened, or not
@@ -2874,8 +2870,7 @@
   ResourceDataUpdate(ad_frame, ResourceCached::kNotCached, 100);
 
   // Set FirstContentfulPaint.
-  SimulateFirstContentfulPaint(ad_frame,
-                               base::TimeDelta::FromMilliseconds(100));
+  SimulateFirstContentfulPaint(ad_frame, base::Milliseconds(100));
 
   // Navigate away and check the histogram.
   NavigateFrame(kNonAdUrl, main_frame);
@@ -2902,12 +2897,10 @@
   ResourceDataUpdate(ad_frame, ResourceCached::kNotCached, 100);
 
   // Set FirstContentfulPaint for nested subframe. Assume that it paints first.
-  SimulateFirstContentfulPaint(sub_frame,
-                               base::TimeDelta::FromMilliseconds(90));
+  SimulateFirstContentfulPaint(sub_frame, base::Milliseconds(90));
 
   // Set FirstContentfulPaint for root ad frame.
-  SimulateFirstContentfulPaint(ad_frame,
-                               base::TimeDelta::FromMilliseconds(100));
+  SimulateFirstContentfulPaint(ad_frame, base::Milliseconds(100));
 
   // Navigate away and check the histogram.
   NavigateFrame(kNonAdUrl, main_frame);
@@ -2935,13 +2928,11 @@
   ResourceDataUpdate(ad_frame, ResourceCached::kNotCached, 100);
 
   // Set FirstContentfulPaint for root ad frame.
-  SimulateFirstContentfulPaint(ad_frame,
-                               base::TimeDelta::FromMilliseconds(100));
+  SimulateFirstContentfulPaint(ad_frame, base::Milliseconds(100));
 
   // Set FirstContentfulPaint for inner subframe. Simulate the nested
   // frame painting first but having its IPCs received second.
-  SimulateFirstContentfulPaint(sub_frame,
-                               base::TimeDelta::FromMilliseconds(90));
+  SimulateFirstContentfulPaint(sub_frame, base::Milliseconds(90));
 
   // Navigate away and check the histogram.
   NavigateFrame(kNonAdUrl, main_frame);
@@ -2969,8 +2960,7 @@
   ResourceDataUpdate(ad_frame, ResourceCached::kNotCached, 100);
 
   // Set FirstContentfulPaint for nested subframe. It is the only frame painted.
-  SimulateFirstContentfulPaint(sub_frame,
-                               base::TimeDelta::FromMilliseconds(90));
+  SimulateFirstContentfulPaint(sub_frame, base::Milliseconds(90));
 
   // Navigate away and check the histogram.
   NavigateFrame(kNonAdUrl, main_frame);
diff --git a/components/page_load_metrics/browser/observers/ad_metrics/frame_data_utils.h b/components/page_load_metrics/browser/observers/ad_metrics/frame_data_utils.h
index fa8cff5..804b1de 100644
--- a/components/page_load_metrics/browser/observers/ad_metrics/frame_data_utils.h
+++ b/components/page_load_metrics/browser/observers/ad_metrics/frame_data_utils.h
@@ -91,8 +91,7 @@
   ~PeakCpuAggregator();
 
   // Window over which to consider cpu time spent in an ad_frame.
-  static constexpr base::TimeDelta kWindowSize =
-      base::TimeDelta::FromSeconds(30);
+  static constexpr base::TimeDelta kWindowSize = base::Seconds(30);
 
   // Update the peak window variables given the current update and update time.
   void UpdatePeakWindowedPercent(base::TimeDelta cpu_usage_update,
diff --git a/components/page_load_metrics/browser/observers/back_forward_cache_page_load_metrics_observer.cc b/components/page_load_metrics/browser/observers/back_forward_cache_page_load_metrics_observer.cc
index 7904cc2a..a6e6cdf 100644
--- a/components/page_load_metrics/browser/observers/back_forward_cache_page_load_metrics_observer.cc
+++ b/components/page_load_metrics/browser/observers/back_forward_cache_page_load_metrics_observer.cc
@@ -188,8 +188,7 @@
               first_input_delay, GetDelegate(), index)) {
     UMA_HISTOGRAM_CUSTOM_TIMES(
         internal::kHistogramFirstInputDelayAfterBackForwardCacheRestore,
-        *first_input_delay, base::TimeDelta::FromMilliseconds(1),
-        base::TimeDelta::FromSeconds(60), 50);
+        *first_input_delay, base::Milliseconds(1), base::Seconds(60), 50);
 
     // HistoryNavigation is a singular event, and we share the same instance as
     // long as we use the same source ID.
diff --git a/components/page_load_metrics/browser/observers/back_forward_cache_page_load_metrics_observer_unittest.cc b/components/page_load_metrics/browser/observers/back_forward_cache_page_load_metrics_observer_unittest.cc
index c3d32b0..197628a 100644
--- a/components/page_load_metrics/browser/observers/back_forward_cache_page_load_metrics_observer_unittest.cc
+++ b/components/page_load_metrics/browser/observers/back_forward_cache_page_load_metrics_observer_unittest.cc
@@ -159,10 +159,8 @@
 //   cache restore.
 TEST_F(BackForwardCachePageLoadMetricsObserverTest,
        TestOnFirstPaintAfterBackForwardCacheRestoreInPage) {
-  absl::optional<base::TimeDelta> first_bg_time(
-      base::TimeDelta::FromMilliseconds(50));
-  absl::optional<base::TimeDelta> second_bg_time(
-      base::TimeDelta::FromMilliseconds(200));
+  absl::optional<base::TimeDelta> first_bg_time(base::Milliseconds(50));
+  absl::optional<base::TimeDelta> second_bg_time(base::Milliseconds(200));
 
   AddBFCacheRestoreState(observer_with_fake_delegate_.get(),
                          fake_delegate_.get(), /*was_in_foreground=*/true,
@@ -179,7 +177,7 @@
 
   page_load_metrics::mojom::BackForwardCacheTiming bf_cache_timing;
   bf_cache_timing.first_paint_after_back_forward_cache_restore =
-      base::TimeDelta::FromMilliseconds(100);
+      base::Milliseconds(100);
 
   size_t expected_metrics_count = 0;
   auto& test_ukm_recorder = tester()->test_ukm_recorder();
@@ -213,7 +211,7 @@
   // index 2 has no background time (i.e. is still active).
   expected_metrics_count++;
   bf_cache_timing.first_paint_after_back_forward_cache_restore =
-      base::TimeDelta::FromMilliseconds(500);
+      base::Milliseconds(500);
   observer_with_fake_delegate_->OnFirstPaintAfterBackForwardCacheRestoreInPage(
       bf_cache_timing, /*index=*/2);
   result_metrics = test_ukm_recorder.FilteredHumanReadableMetricForEntry(
diff --git a/components/page_load_metrics/browser/observers/click_input_tracker.cc b/components/page_load_metrics/browser/observers/click_input_tracker.cc
index 1c3812d..4dcb2ed 100644
--- a/components/page_load_metrics/browser/observers/click_input_tracker.cc
+++ b/components/page_load_metrics/browser/observers/click_input_tracker.cc
@@ -17,7 +17,7 @@
 ClickInputTracker::ClickInputTracker() {
   // Set thresholds per Feature parameters as appropriate.
   time_delta_threshold_ =
-      base::TimeDelta::FromMilliseconds(base::GetFieldTrialParamByFeatureAsInt(
+      base::Milliseconds(base::GetFieldTrialParamByFeatureAsInt(
           kClickInputTracker, "time_delta_threshold_ms", 500));
   position_delta_threshold_ = base::GetFieldTrialParamByFeatureAsInt(
       kClickInputTracker, "position_delta_threshold", 10);
diff --git a/components/page_load_metrics/browser/observers/click_input_tracker_unittest.cc b/components/page_load_metrics/browser/observers/click_input_tracker_unittest.cc
index 805f757..f9dec53 100644
--- a/components/page_load_metrics/browser/observers/click_input_tracker_unittest.cc
+++ b/components/page_load_metrics/browser/observers/click_input_tracker_unittest.cc
@@ -39,21 +39,21 @@
   click_tracker.OnUserInput(tap1);
   EXPECT_EQ(1, click_tracker.GetCurrentBurstCountForTesting());
 
-  timestamp += base::TimeDelta::FromMilliseconds(100);
+  timestamp += base::Milliseconds(100);
   blink::WebGestureEvent tap2(blink::WebInputEvent::Type::kGestureTap, 0,
                               timestamp);
   tap2.SetPositionInScreen(gfx::PointF(103, 198));
   click_tracker.OnUserInput(tap2);
   EXPECT_EQ(2, click_tracker.GetCurrentBurstCountForTesting());
 
-  timestamp += base::TimeDelta::FromMilliseconds(200);
+  timestamp += base::Milliseconds(200);
   blink::WebGestureEvent tap3(blink::WebInputEvent::Type::kGestureTap, 0,
                               timestamp);
   tap3.SetPositionInScreen(gfx::PointF(99, 202));
   click_tracker.OnUserInput(tap3);
   EXPECT_EQ(3, click_tracker.GetCurrentBurstCountForTesting());
 
-  timestamp += base::TimeDelta::FromMilliseconds(300);
+  timestamp += base::Milliseconds(300);
   blink::WebGestureEvent tap4(blink::WebInputEvent::Type::kGestureTap, 0,
                               timestamp);
   tap4.SetPositionInScreen(gfx::PointF(101, 201));
@@ -61,7 +61,7 @@
   EXPECT_EQ(4, click_tracker.GetCurrentBurstCountForTesting());
 
   // Now exceed time delta threshold.
-  timestamp += base::TimeDelta::FromMilliseconds(800);
+  timestamp += base::Milliseconds(800);
   blink::WebGestureEvent tap5(blink::WebInputEvent::Type::kGestureTap, 0,
                               timestamp);
   tap5.SetPositionInScreen(gfx::PointF(101, 201));
@@ -69,7 +69,7 @@
   EXPECT_EQ(1, click_tracker.GetCurrentBurstCountForTesting());
   EXPECT_EQ(4, click_tracker.GetMaxBurstCountForTesting());
 
-  timestamp += base::TimeDelta::FromMilliseconds(100);
+  timestamp += base::Milliseconds(100);
   blink::WebGestureEvent tap6(blink::WebInputEvent::Type::kGestureTap, 0,
                               timestamp);
   tap6.SetPositionInScreen(gfx::PointF(103, 198));
@@ -104,21 +104,21 @@
   click_tracker.OnUserInput(click1);
   EXPECT_EQ(1, click_tracker.GetCurrentBurstCountForTesting());
 
-  timestamp += base::TimeDelta::FromMilliseconds(100);
+  timestamp += base::Milliseconds(100);
   blink::WebMouseEvent click2(blink::WebInputEvent::Type::kMouseUp, 0,
                               timestamp);
   click2.SetPositionInScreen(gfx::PointF(103, 198));
   click_tracker.OnUserInput(click2);
   EXPECT_EQ(2, click_tracker.GetCurrentBurstCountForTesting());
 
-  timestamp += base::TimeDelta::FromMilliseconds(200);
+  timestamp += base::Milliseconds(200);
   blink::WebMouseEvent click3(blink::WebInputEvent::Type::kMouseUp, 0,
                               timestamp);
   click3.SetPositionInScreen(gfx::PointF(99, 202));
   click_tracker.OnUserInput(click3);
   EXPECT_EQ(3, click_tracker.GetCurrentBurstCountForTesting());
 
-  timestamp += base::TimeDelta::FromMilliseconds(300);
+  timestamp += base::Milliseconds(300);
   blink::WebMouseEvent click4(blink::WebInputEvent::Type::kMouseUp, 0,
                               timestamp);
   click4.SetPositionInScreen(gfx::PointF(101, 201));
@@ -126,7 +126,7 @@
   EXPECT_EQ(4, click_tracker.GetCurrentBurstCountForTesting());
 
   // Now exceed position delta threshold.
-  timestamp += base::TimeDelta::FromMilliseconds(100);
+  timestamp += base::Milliseconds(100);
   blink::WebMouseEvent click5(blink::WebInputEvent::Type::kMouseUp, 0,
                               timestamp);
   click5.SetPositionInScreen(gfx::PointF(151, 201));
@@ -134,7 +134,7 @@
   EXPECT_EQ(1, click_tracker.GetCurrentBurstCountForTesting());
   EXPECT_EQ(4, click_tracker.GetMaxBurstCountForTesting());
 
-  timestamp += base::TimeDelta::FromMilliseconds(100);
+  timestamp += base::Milliseconds(100);
   blink::WebMouseEvent click6(blink::WebInputEvent::Type::kMouseUp, 0,
                               timestamp);
   click6.SetPositionInScreen(gfx::PointF(153, 198));
@@ -142,7 +142,7 @@
   EXPECT_EQ(2, click_tracker.GetCurrentBurstCountForTesting());
   EXPECT_EQ(4, click_tracker.GetMaxBurstCountForTesting());
 
-  timestamp += base::TimeDelta::FromMilliseconds(100);
+  timestamp += base::Milliseconds(100);
   blink::WebMouseEvent click7(blink::WebInputEvent::Type::kMouseUp, 0,
                               timestamp);
   click7.SetPositionInScreen(gfx::PointF(153, 198));
@@ -150,7 +150,7 @@
   EXPECT_EQ(3, click_tracker.GetCurrentBurstCountForTesting());
   EXPECT_EQ(4, click_tracker.GetMaxBurstCountForTesting());
 
-  timestamp += base::TimeDelta::FromMilliseconds(100);
+  timestamp += base::Milliseconds(100);
   blink::WebMouseEvent click8(blink::WebInputEvent::Type::kMouseUp, 0,
                               timestamp);
   click8.SetPositionInScreen(gfx::PointF(153, 198));
@@ -158,7 +158,7 @@
   EXPECT_EQ(4, click_tracker.GetCurrentBurstCountForTesting());
   EXPECT_EQ(4, click_tracker.GetMaxBurstCountForTesting());
 
-  timestamp += base::TimeDelta::FromMilliseconds(100);
+  timestamp += base::Milliseconds(100);
   blink::WebMouseEvent click9(blink::WebInputEvent::Type::kMouseUp, 0,
                               timestamp);
   click9.SetPositionInScreen(gfx::PointF(153, 198));
diff --git a/components/page_load_metrics/browser/observers/core/uma_page_load_metrics_observer.cc b/components/page_load_metrics/browser/observers/core/uma_page_load_metrics_observer.cc
index 29d348b..a4a7890 100644
--- a/components/page_load_metrics/browser/observers/core/uma_page_load_metrics_observer.cc
+++ b/components/page_load_metrics/browser/observers/core/uma_page_load_metrics_observer.cc
@@ -36,7 +36,7 @@
 // The threshold to emit a trace event is the 99th percentile
 // of the histogram on Windows Stable as of Feb 26th, 2020.
 constexpr base::TimeDelta kFirstContentfulPaintTraceThreshold =
-    base::TimeDelta::FromMilliseconds(12388);
+    base::Milliseconds(12388);
 
 // TODO(bmcquade): If other observers want to log histograms based on load type,
 // promote this enum to page_load_metrics_observer.h.
@@ -681,8 +681,7 @@
   UMA_HISTOGRAM_CUSTOM_TIMES(
       internal::kHistogramFirstInputDelay,
       timing.interactive_timing->first_input_delay.value(),
-      base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromSeconds(60),
-      50);
+      base::Milliseconds(1), base::Seconds(60), 50);
   PAGE_LOAD_HISTOGRAM(internal::kHistogramFirstInputTimestamp,
                       timing.interactive_timing->first_input_timestamp.value());
   TRACE_EVENT_MARK_WITH_TIMESTAMP1(
@@ -1118,8 +1117,7 @@
     UMA_HISTOGRAM_CUSTOM_TIMES(
         internal::kHistogramLongestInputDelay,
         main_frame_timing.interactive_timing->longest_input_delay.value(),
-        base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromSeconds(60),
-        50);
+        base::Milliseconds(1), base::Seconds(60), 50);
     PAGE_LOAD_HISTOGRAM(
         internal::kHistogramLongestInputTimestamp,
         main_frame_timing.interactive_timing->longest_input_timestamp.value());
diff --git a/components/page_load_metrics/browser/observers/core/uma_page_load_metrics_observer_unittest.cc b/components/page_load_metrics/browser/observers/core/uma_page_load_metrics_observer_unittest.cc
index 1f12cd4..0c84256 100644
--- a/components/page_load_metrics/browser/observers/core/uma_page_load_metrics_observer_unittest.cc
+++ b/components/page_load_metrics/browser/observers/core/uma_page_load_metrics_observer_unittest.cc
@@ -201,12 +201,10 @@
 }
 
 TEST_F(UmaPageLoadMetricsObserverTest, SingleMetricAfterCommit) {
-  base::TimeDelta parse_start = base::TimeDelta::FromMilliseconds(1);
-  base::TimeDelta parse_stop = base::TimeDelta::FromMilliseconds(5);
-  base::TimeDelta parse_script_load_duration =
-      base::TimeDelta::FromMilliseconds(3);
-  base::TimeDelta parse_script_exec_duration =
-      base::TimeDelta::FromMilliseconds(1);
+  base::TimeDelta parse_start = base::Milliseconds(1);
+  base::TimeDelta parse_stop = base::Milliseconds(5);
+  base::TimeDelta parse_script_load_duration = base::Milliseconds(3);
+  base::TimeDelta parse_script_exec_duration = base::Milliseconds(1);
 
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
@@ -245,12 +243,12 @@
 }
 
 TEST_F(UmaPageLoadMetricsObserverTest, MultipleMetricsAfterCommits) {
-  base::TimeDelta parse_start = base::TimeDelta::FromMilliseconds(1);
-  base::TimeDelta response = base::TimeDelta::FromMilliseconds(1);
-  base::TimeDelta first_image_paint = base::TimeDelta::FromMilliseconds(30);
+  base::TimeDelta parse_start = base::Milliseconds(1);
+  base::TimeDelta response = base::Milliseconds(1);
+  base::TimeDelta first_image_paint = base::Milliseconds(30);
   base::TimeDelta first_contentful_paint = first_image_paint;
-  base::TimeDelta dom_content = base::TimeDelta::FromMilliseconds(40);
-  base::TimeDelta load = base::TimeDelta::FromMilliseconds(100);
+  base::TimeDelta dom_content = base::Milliseconds(40);
+  base::TimeDelta load = base::Milliseconds(100);
 
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
@@ -340,7 +338,7 @@
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
   timing.document_timing->dom_content_loaded_event_start =
-      base::TimeDelta::FromMicroseconds(1);
+      base::Microseconds(1);
   PopulateRequiredTimingFields(&timing);
 
   // Make sure first_image_paint hasn't been set (wasn't set by
@@ -354,7 +352,7 @@
   // Background the tab, then foreground it.
   web_contents()->WasHidden();
   web_contents()->WasShown();
-  timing.paint_timing->first_image_paint = base::TimeDelta::FromSeconds(4);
+  timing.paint_timing->first_image_paint = base::Seconds(4);
   PopulateRequiredTimingFields(&timing);
   tester()->SimulateTimingUpdate(timing);
 
@@ -466,9 +464,8 @@
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
-  timing.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(5);
-  timing.paint_timing->first_contentful_paint =
-      base::TimeDelta::FromMilliseconds(10);
+  timing.parse_timing->parse_start = base::Milliseconds(5);
+  timing.paint_timing->first_contentful_paint = base::Milliseconds(10);
   PopulateRequiredTimingFields(&timing);
 
   GURL url(kDefaultTestUrl);
@@ -541,9 +538,8 @@
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
-  timing.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(5);
-  timing.paint_timing->first_contentful_paint =
-      base::TimeDelta::FromMilliseconds(10);
+  timing.parse_timing->parse_start = base::Milliseconds(5);
+  timing.paint_timing->first_contentful_paint = base::Milliseconds(10);
   PopulateRequiredTimingFields(&timing);
 
   GURL url(kDefaultTestUrl);
@@ -653,9 +649,8 @@
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
-  timing.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(5);
-  timing.paint_timing->first_contentful_paint =
-      base::TimeDelta::FromMilliseconds(10);
+  timing.parse_timing->parse_start = base::Milliseconds(5);
+  timing.paint_timing->first_contentful_paint = base::Milliseconds(10);
   PopulateRequiredTimingFields(&timing);
 
   GURL url(kDefaultTestUrl);
@@ -744,11 +739,9 @@
 
 TEST_F(UmaPageLoadMetricsObserverTest, CpuUsageCounted) {
   NavigateAndCommit(GURL(kDefaultTestUrl));
-  OnCpuTimingUpdate(web_contents()->GetMainFrame(),
-                    base::TimeDelta::FromMilliseconds(750));
+  OnCpuTimingUpdate(web_contents()->GetMainFrame(), base::Milliseconds(750));
   web_contents()->WasHidden();  // Set the web contents as backgrounded.
-  OnCpuTimingUpdate(web_contents()->GetMainFrame(),
-                    base::TimeDelta::FromMilliseconds(250));
+  OnCpuTimingUpdate(web_contents()->GetMainFrame(), base::Milliseconds(250));
   NavigateAndCommit(GURL(kDefaultTestUrl2));
 
   tester()->histogram_tester().ExpectUniqueSample(
@@ -761,9 +754,8 @@
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
-  timing.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(5);
-  timing.paint_timing->first_meaningful_paint =
-      base::TimeDelta::FromMilliseconds(10);
+  timing.parse_timing->parse_start = base::Milliseconds(5);
+  timing.paint_timing->first_meaningful_paint = base::Milliseconds(10);
   PopulateRequiredTimingFields(&timing);
 
   NavigateAndCommit(GURL(kDefaultTestUrl));
@@ -791,7 +783,7 @@
   // There is a text paint but it's smaller than image. Pick a value that lines
   // up with a histogram bucket.
   timing.paint_timing->largest_contentful_paint->largest_text_paint =
-      base::TimeDelta::FromMilliseconds(4780);
+      base::Milliseconds(4780);
   timing.paint_timing->largest_contentful_paint->largest_text_paint_size = 70u;
   PopulateExperimentalLCP(timing.paint_timing);
   PopulateRequiredTimingFields(&timing);
@@ -817,7 +809,7 @@
   // There is a text paint but it's smaller than image. Pick a value that lines
   // up with a histogram bucket.
   timing.paint_timing->largest_contentful_paint->largest_text_paint =
-      base::TimeDelta::FromMilliseconds(4780);
+      base::Milliseconds(4780);
   timing.paint_timing->largest_contentful_paint->largest_text_paint_size = 120u;
   PopulateExperimentalLCP(timing.paint_timing);
   PopulateRequiredTimingFields(&timing);
@@ -845,7 +837,7 @@
   page_load_metrics::InitPageLoadTimingForTest(&subframe_timing);
   subframe_timing.navigation_start = base::Time::FromDoubleT(200);
   subframe_timing.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(4780);
+      base::Milliseconds(4780);
   subframe_timing.paint_timing->largest_contentful_paint
       ->largest_image_paint_size = 100u;
   PopulateExperimentalLCP(subframe_timing.paint_timing);
@@ -889,7 +881,7 @@
   subframe_timing.paint_timing->largest_contentful_paint
       ->largest_image_paint_size = 100u;
   subframe_timing.paint_timing->largest_contentful_paint->largest_text_paint =
-      base::TimeDelta::FromMilliseconds(500);
+      base::Milliseconds(500);
   subframe_timing.paint_timing->largest_contentful_paint
       ->largest_text_paint_size = 80u;
   PopulateExperimentalLCP(subframe_timing.paint_timing);
@@ -922,7 +914,7 @@
   timing.navigation_start = base::Time::FromDoubleT(1);
   // Pick a value that lines up with a histogram bucket.
   timing.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(4780);
+      base::Milliseconds(4780);
   timing.paint_timing->largest_contentful_paint->largest_image_paint_size = 50u;
   PopulateExperimentalLCP(timing.paint_timing);
   PopulateRequiredTimingFields(&timing);
@@ -965,7 +957,7 @@
   timing.navigation_start = base::Time::FromDoubleT(1);
   // Pick a value that lines up with a histogram bucket.
   timing.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(9382);
+      base::Milliseconds(9382);
   timing.paint_timing->largest_contentful_paint->largest_image_paint_size = 50u;
   PopulateExperimentalLCP(timing.paint_timing);
   PopulateRequiredTimingFields(&timing);
@@ -975,7 +967,7 @@
   page_load_metrics::InitPageLoadTimingForTest(&subframe_timing);
   subframe_timing.navigation_start = base::Time::FromDoubleT(2);
   subframe_timing.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(4780);
+      base::Milliseconds(4780);
   subframe_timing.paint_timing->largest_contentful_paint
       ->largest_image_paint_size = 100u;
   PopulateExperimentalLCP(subframe_timing.paint_timing);
@@ -1012,7 +1004,7 @@
   timing.navigation_start = base::Time::FromDoubleT(1);
   // Pick a value that lines up with a histogram bucket.
   timing.paint_timing->largest_contentful_paint->largest_text_paint =
-      base::TimeDelta::FromMilliseconds(4780);
+      base::Milliseconds(4780);
   timing.paint_timing->largest_contentful_paint->largest_text_paint_size = 100u;
   PopulateExperimentalLCP(timing.paint_timing);
   PopulateRequiredTimingFields(&timing);
@@ -1022,7 +1014,7 @@
   page_load_metrics::InitPageLoadTimingForTest(&subframe_timing);
   subframe_timing.navigation_start = base::Time::FromDoubleT(2);
   subframe_timing.paint_timing->largest_contentful_paint->largest_text_paint =
-      base::TimeDelta::FromMilliseconds(300);
+      base::Milliseconds(300);
   subframe_timing.paint_timing->largest_contentful_paint
       ->largest_text_paint_size = 50u;
   PopulateExperimentalLCP(subframe_timing.paint_timing);
@@ -1064,7 +1056,7 @@
   page_load_metrics::InitPageLoadTimingForTest(&subframe_timing);
   subframe_timing.navigation_start = base::Time::FromDoubleT(2);
   subframe_timing.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(4780);
+      base::Milliseconds(4780);
   subframe_timing.paint_timing->largest_contentful_paint
       ->largest_image_paint_size = 50u;
   PopulateExperimentalLCP(subframe_timing.paint_timing);
@@ -1083,7 +1075,7 @@
   tester()->SimulateTimingUpdate(subframe_timing, subframe);
 
   subframe_timing.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(300);
+      base::Milliseconds(300);
   subframe_timing.paint_timing->largest_contentful_paint
       ->largest_image_paint_size = 10u;
   PopulateExperimentalLCP(subframe_timing.paint_timing);
@@ -1114,7 +1106,7 @@
   page_load_metrics::InitPageLoadTimingForTest(&subframe_timing);
   subframe_timing.navigation_start = base::Time::FromDoubleT(2);
   subframe_timing.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(4780);
+      base::Milliseconds(4780);
   subframe_timing.paint_timing->largest_contentful_paint
       ->largest_image_paint_size = 10u;
   PopulateExperimentalLCP(subframe_timing.paint_timing);
@@ -1133,7 +1125,7 @@
   tester()->SimulateTimingUpdate(subframe_timing, subframe);
 
   subframe_timing.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(990);
+      base::Milliseconds(990);
   subframe_timing.paint_timing->largest_contentful_paint
       ->largest_image_paint_size = 50u;
   PopulateExperimentalLCP(subframe_timing.paint_timing);
@@ -1170,7 +1162,7 @@
   timing.navigation_start = base::Time::FromDoubleT(1);
   // Pick a value that lines up with a histogram bucket.
   timing.paint_timing->largest_contentful_paint->largest_text_paint =
-      base::TimeDelta::FromMilliseconds(4780);
+      base::Milliseconds(4780);
   timing.paint_timing->largest_contentful_paint->largest_text_paint_size = 100;
   PopulateExperimentalLCP(timing.paint_timing);
   PopulateRequiredTimingFields(&timing);
@@ -1189,7 +1181,7 @@
   timing.navigation_start = base::Time::FromDoubleT(1);
   // Pick a value that lines up with a histogram bucket.
   timing.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(4780);
+      base::Milliseconds(4780);
   timing.paint_timing->largest_contentful_paint->largest_image_paint_size = 100;
   PopulateExperimentalLCP(timing.paint_timing);
   PopulateRequiredTimingFields(&timing);
@@ -1209,10 +1201,10 @@
   timing.navigation_start = base::Time::FromDoubleT(1);
   // Pick a value that lines up with a histogram bucket.
   timing.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(4780);
+      base::Milliseconds(4780);
   timing.paint_timing->largest_contentful_paint->largest_image_paint_size = 100;
   timing.paint_timing->largest_contentful_paint->largest_text_paint =
-      base::TimeDelta::FromMilliseconds(1000);
+      base::Milliseconds(1000);
   timing.paint_timing->largest_contentful_paint->largest_text_paint_size = 10;
   PopulateExperimentalLCP(timing.paint_timing);
   PopulateRequiredTimingFields(&timing);
@@ -1231,11 +1223,11 @@
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
   timing.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(4780);
+      base::Milliseconds(4780);
   timing.paint_timing->largest_contentful_paint->largest_image_paint_size = 10;
   // Pick a value that lines up with a histogram bucket.
   timing.paint_timing->largest_contentful_paint->largest_text_paint =
-      base::TimeDelta::FromMilliseconds(990);
+      base::Milliseconds(990);
   timing.paint_timing->largest_contentful_paint->largest_text_paint_size = 100;
   PopulateExperimentalLCP(timing.paint_timing);
   PopulateRequiredTimingFields(&timing);
@@ -1252,11 +1244,9 @@
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
-  timing.interactive_timing->first_input_delay =
-      base::TimeDelta::FromMilliseconds(5);
+  timing.interactive_timing->first_input_delay = base::Milliseconds(5);
   // Pick a value that lines up with a histogram bucket.
-  timing.interactive_timing->first_input_timestamp =
-      base::TimeDelta::FromMilliseconds(4780);
+  timing.interactive_timing->first_input_timestamp = base::Milliseconds(4780);
   PopulateRequiredTimingFields(&timing);
 
   NavigateAndCommit(GURL(kDefaultTestUrl));
@@ -1276,11 +1266,9 @@
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
-  timing.interactive_timing->longest_input_delay =
-      base::TimeDelta::FromMilliseconds(5);
+  timing.interactive_timing->longest_input_delay = base::Milliseconds(5);
   // Pick a value that lines up with a histogram bucket.
-  timing.interactive_timing->longest_input_timestamp =
-      base::TimeDelta::FromMilliseconds(4780);
+  timing.interactive_timing->longest_input_timestamp = base::Milliseconds(4780);
   PopulateRequiredTimingFields(&timing);
 
   NavigateAndCommit(GURL(kDefaultTestUrl));
@@ -1301,10 +1289,8 @@
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
-  timing.interactive_timing->first_input_delay =
-      base::TimeDelta::FromMilliseconds(5);
-  timing.interactive_timing->first_input_timestamp =
-      base::TimeDelta::FromMilliseconds(5000);
+  timing.interactive_timing->first_input_delay = base::Milliseconds(5);
+  timing.interactive_timing->first_input_timestamp = base::Milliseconds(5000);
   PopulateRequiredTimingFields(&timing);
 
   NavigateAndCommit(GURL(kDefaultTestUrl));
@@ -1528,7 +1514,7 @@
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = base::Time::FromDoubleT(1);
   timing.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(9382);
+      base::Milliseconds(9382);
   timing.paint_timing->largest_contentful_paint->largest_image_paint_size = 50u;
   PopulateExperimentalLCP(timing.paint_timing);
   PopulateRequiredTimingFields(&timing);
@@ -1538,7 +1524,7 @@
   page_load_metrics::InitPageLoadTimingForTest(&subframe_timing);
   subframe_timing.navigation_start = base::Time::FromDoubleT(2);
   subframe_timing.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(4780);
+      base::Milliseconds(4780);
   subframe_timing.paint_timing->largest_contentful_paint
       ->largest_image_paint_size = 100u;
   PopulateExperimentalLCP(subframe_timing.paint_timing);
@@ -1573,7 +1559,7 @@
   timing.navigation_start = base::Time::FromDoubleT(1);
   // Pick a value that lines up with a histogram bucket.
   timing.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(900);
+      base::Milliseconds(900);
   timing.paint_timing->largest_contentful_paint->largest_image_paint_size = 50u;
   PopulateExperimentalLCP(timing.paint_timing);
   PopulateRequiredTimingFields(&timing);
@@ -1583,7 +1569,7 @@
   page_load_metrics::InitPageLoadTimingForTest(&subframe_timing);
   subframe_timing.navigation_start = base::Time::FromDoubleT(2);
   subframe_timing.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(4780);
+      base::Milliseconds(4780);
   subframe_timing.paint_timing->largest_contentful_paint
       ->largest_image_paint_size = 30u;
   PopulateExperimentalLCP(subframe_timing.paint_timing);
@@ -1620,7 +1606,7 @@
   timing.navigation_start = base::Time::FromDoubleT(1);
   // Pick a value that lines up with a histogram bucket.
   timing.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(900);
+      base::Milliseconds(900);
   timing.paint_timing->largest_contentful_paint->largest_image_paint_size = 50u;
   PopulateExperimentalLCP(timing.paint_timing);
   PopulateRequiredTimingFields(&timing);
@@ -1630,7 +1616,7 @@
   page_load_metrics::InitPageLoadTimingForTest(&subframe_timing);
   subframe_timing.navigation_start = base::Time::FromDoubleT(2);
   subframe_timing.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(3000);
+      base::Milliseconds(3000);
   subframe_timing.paint_timing->largest_contentful_paint
       ->largest_image_paint_size = 100u;
   PopulateExperimentalLCP(subframe_timing.paint_timing);
@@ -1640,7 +1626,7 @@
   page_load_metrics::InitPageLoadTimingForTest(&subframe_timing2);
   subframe_timing2.navigation_start = base::Time::FromDoubleT(2);
   subframe_timing2.paint_timing->largest_contentful_paint->largest_image_paint =
-      base::TimeDelta::FromMilliseconds(4780);
+      base::Milliseconds(4780);
   subframe_timing2.paint_timing->largest_contentful_paint
       ->largest_image_paint_size = 30u;
   PopulateExperimentalLCP(subframe_timing2.paint_timing);
diff --git a/components/page_load_metrics/browser/observers/early_hints_page_load_metrics_observer.cc b/components/page_load_metrics/browser/observers/early_hints_page_load_metrics_observer.cc
index a38a623b..d99dace 100644
--- a/components/page_load_metrics/browser/observers/early_hints_page_load_metrics_observer.cc
+++ b/components/page_load_metrics/browser/observers/early_hints_page_load_metrics_observer.cc
@@ -81,7 +81,6 @@
     base::UmaHistogramCustomTimes(
         internal::kHistogramEarlyHintsPreloadFirstInputDelay,
         timing.interactive_timing->first_input_delay.value(),
-        base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromSeconds(60),
-        50);
+        base::Milliseconds(1), base::Seconds(60), 50);
   }
 }
diff --git a/components/page_load_metrics/browser/observers/early_hints_page_load_metrics_observer_unittest.cc b/components/page_load_metrics/browser/observers/early_hints_page_load_metrics_observer_unittest.cc
index 86b2b44..d05cf12 100644
--- a/components/page_load_metrics/browser/observers/early_hints_page_load_metrics_observer_unittest.cc
+++ b/components/page_load_metrics/browser/observers/early_hints_page_load_metrics_observer_unittest.cc
@@ -37,22 +37,18 @@
     page_load_metrics::mojom::PageLoadTiming timing;
     page_load_metrics::InitPageLoadTimingForTest(&timing);
     timing.navigation_start = base::Time::Now();
-    timing.parse_timing->parse_stop = base::TimeDelta::FromMilliseconds(50);
-    timing.paint_timing->first_contentful_paint =
-        base::TimeDelta::FromMilliseconds(100);
+    timing.parse_timing->parse_stop = base::Milliseconds(50);
+    timing.paint_timing->first_contentful_paint = base::Milliseconds(100);
 
     auto largest_contentful_paint =
         page_load_metrics::mojom::LargestContentfulPaintTiming::New();
-    largest_contentful_paint->largest_image_paint =
-        base::TimeDelta::FromMilliseconds(100);
+    largest_contentful_paint->largest_image_paint = base::Milliseconds(100);
     largest_contentful_paint->largest_image_paint_size = 100;
     timing.paint_timing->largest_contentful_paint =
         std::move(largest_contentful_paint);
 
-    timing.interactive_timing->first_input_delay =
-        base::TimeDelta::FromMilliseconds(10);
-    timing.interactive_timing->first_input_timestamp =
-        base::TimeDelta::FromMilliseconds(4780);
+    timing.interactive_timing->first_input_delay = base::Milliseconds(10);
+    timing.interactive_timing->first_input_timestamp = base::Milliseconds(4780);
 
     PopulateRequiredTimingFields(&timing);
     tester()->SimulateTimingUpdate(timing);
diff --git a/components/page_load_metrics/browser/observers/prerender_page_load_metrics_observer.cc b/components/page_load_metrics/browser/observers/prerender_page_load_metrics_observer.cc
index 8c8af39..d47b5a8 100644
--- a/components/page_load_metrics/browser/observers/prerender_page_load_metrics_observer.cc
+++ b/components/page_load_metrics/browser/observers/prerender_page_load_metrics_observer.cc
@@ -101,8 +101,7 @@
   UMA_HISTOGRAM_CUSTOM_TIMES(
       internal::kHistogramPrerenderFirstInputDelay4,
       timing.interactive_timing->first_input_delay.value(),
-      base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromSeconds(60),
-      50);
+      base::Milliseconds(1), base::Seconds(60), 50);
 }
 
 void PrerenderPageLoadMetricsObserver::OnComplete(
diff --git a/components/page_load_metrics/browser/page_load_metrics_memory_tracker.cc b/components/page_load_metrics/browser/page_load_metrics_memory_tracker.cc
index 8218680c..1767080 100644
--- a/components/page_load_metrics/browser/page_load_metrics_memory_tracker.cc
+++ b/components/page_load_metrics/browser/page_load_metrics_memory_tracker.cc
@@ -47,9 +47,8 @@
   if (base::FeatureList::IsEnabled(features::kV8PerFrameMemoryMonitoring)) {
     memory_request_ = std::make_unique<
         performance_manager::v8_memory::V8DetailedMemoryRequestAnySeq>(
-        base::TimeDelta::FromSeconds(60),
-        performance_manager::v8_memory::V8DetailedMemoryRequest::
-            MeasurementMode::kLazy);
+        base::Seconds(60), performance_manager::v8_memory::
+                               V8DetailedMemoryRequest::MeasurementMode::kLazy);
     memory_request_->AddObserver(this);
   }
 }
diff --git a/components/page_load_metrics/browser/page_load_metrics_update_dispatcher.cc b/components/page_load_metrics/browser/page_load_metrics_update_dispatcher.cc
index d45c796..4100245 100644
--- a/components/page_load_metrics/browser/page_load_metrics_update_dispatcher.cc
+++ b/components/page_load_metrics/browser/page_load_metrics_update_dispatcher.cc
@@ -829,8 +829,7 @@
   if (should_buffer_timing_update_callback) {
     timer_->Start(
         FROM_HERE,
-        base::TimeDelta::FromMilliseconds(
-            GetBufferTimerDelayMillis(TimerType::kBrowser)),
+        base::Milliseconds(GetBufferTimerDelayMillis(TimerType::kBrowser)),
         base::BindOnce(&PageLoadMetricsUpdateDispatcher::DispatchTimingUpdates,
                        base::Unretained(this)));
   } else if (!timer_->IsRunning()) {
diff --git a/components/page_load_metrics/browser/page_load_metrics_util.h b/components/page_load_metrics/browser/page_load_metrics_util.h
index 9bf1ef9..9c0369f 100644
--- a/components/page_load_metrics/browser/page_load_metrics_util.h
+++ b/components/page_load_metrics/browser/page_load_metrics_util.h
@@ -13,16 +13,14 @@
 #include "third_party/blink/public/common/loader/loading_behavior_flag.h"
 
 // Up to 10 minutes, with 100 buckets.
-#define PAGE_LOAD_HISTOGRAM(name, sample)                           \
-  UMA_HISTOGRAM_CUSTOM_TIMES(name, sample,                          \
-                             base::TimeDelta::FromMilliseconds(10), \
-                             base::TimeDelta::FromMinutes(10), 100)
+#define PAGE_LOAD_HISTOGRAM(name, sample)                          \
+  UMA_HISTOGRAM_CUSTOM_TIMES(name, sample, base::Milliseconds(10), \
+                             base::Minutes(10), 100)
 
 // Up to 1 hour, with 100 buckets.
-#define PAGE_LOAD_LONG_HISTOGRAM(name, sample)                      \
-  UMA_HISTOGRAM_CUSTOM_TIMES(name, sample,                          \
-                             base::TimeDelta::FromMilliseconds(10), \
-                             base::TimeDelta::FromHours(1), 100)
+#define PAGE_LOAD_LONG_HISTOGRAM(name, sample)                     \
+  UMA_HISTOGRAM_CUSTOM_TIMES(name, sample, base::Milliseconds(10), \
+                             base::Hours(1), 100)
 
 // Records |bytes| to |histogram_name| in kilobytes (i.e., bytes / 1024).
 #define PAGE_BYTES_HISTOGRAM(histogram_name, bytes) \
diff --git a/components/page_load_metrics/renderer/fake_page_timing_sender.cc b/components/page_load_metrics/renderer/fake_page_timing_sender.cc
index 23e52f6..b70f6fd 100644
--- a/components/page_load_metrics/renderer/fake_page_timing_sender.cc
+++ b/components/page_load_metrics/renderer/fake_page_timing_sender.cc
@@ -71,9 +71,8 @@
     const base::TimeDelta input_delay) {
   expected_input_timing->num_input_events++;
   expected_input_timing->total_input_delay += input_delay;
-  expected_input_timing->total_adjusted_input_delay +=
-      base::TimeDelta::FromMilliseconds(
-          std::max(int64_t(0), input_delay.InMilliseconds() - int64_t(50)));
+  expected_input_timing->total_adjusted_input_delay += base::Milliseconds(
+      std::max(int64_t(0), input_delay.InMilliseconds() - int64_t(50)));
 }
 void FakePageTimingSender::PageTimingValidator::VerifyExpectedInputTiming()
     const {
diff --git a/components/page_load_metrics/renderer/metrics_render_frame_observer.cc b/components/page_load_metrics/renderer/metrics_render_frame_observer.cc
index 0758c58..7da2058 100644
--- a/components/page_load_metrics/renderer/metrics_render_frame_observer.cc
+++ b/components/page_load_metrics/renderer/metrics_render_frame_observer.cc
@@ -648,17 +648,15 @@
     // If we started parsing, record all parser durations such as the amount of
     // time blocked on script load, even if those values are zero.
     timing->parse_timing->parse_blocked_on_script_load_duration =
-        base::TimeDelta::FromSecondsD(perf.ParseBlockedOnScriptLoadDuration());
+        base::Seconds(perf.ParseBlockedOnScriptLoadDuration());
     timing->parse_timing
         ->parse_blocked_on_script_load_from_document_write_duration =
-        base::TimeDelta::FromSecondsD(
-            perf.ParseBlockedOnScriptLoadFromDocumentWriteDuration());
+        base::Seconds(perf.ParseBlockedOnScriptLoadFromDocumentWriteDuration());
     timing->parse_timing->parse_blocked_on_script_execution_duration =
-        base::TimeDelta::FromSecondsD(
-            perf.ParseBlockedOnScriptExecutionDuration());
+        base::Seconds(perf.ParseBlockedOnScriptExecutionDuration());
     timing->parse_timing
         ->parse_blocked_on_script_execution_from_document_write_duration =
-        base::TimeDelta::FromSecondsD(
+        base::Seconds(
             perf.ParseBlockedOnScriptExecutionFromDocumentWriteDuration());
   }
   if (perf.LastPortalActivatedPaint().has_value()) {
diff --git a/components/page_load_metrics/renderer/metrics_render_frame_observer_unittest.cc b/components/page_load_metrics/renderer/metrics_render_frame_observer_unittest.cc
index 5da6c035..b2d3b276 100644
--- a/components/page_load_metrics/renderer/metrics_render_frame_observer_unittest.cc
+++ b/components/page_load_metrics/renderer/metrics_render_frame_observer_unittest.cc
@@ -92,7 +92,7 @@
   observer.DidCommitProvisionalLoad(ui::PAGE_TRANSITION_LINK);
   observer.GetMockTimer()->Fire();
 
-  timing.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(10);
+  timing.parse_timing->parse_start = base::Milliseconds(10);
   observer.ExpectPageLoadTiming(timing);
 
   observer.DidChangePerformanceTiming();
@@ -115,16 +115,16 @@
   observer.DidCommitProvisionalLoad(ui::PAGE_TRANSITION_LINK);
 
   // Send cpu timing updates and verify the expected result.
-  observer.DidChangeCpuTiming(base::TimeDelta::FromMilliseconds(110));
-  observer.DidChangeCpuTiming(base::TimeDelta::FromMilliseconds(50));
-  observer.ExpectCpuTiming(base::TimeDelta::FromMilliseconds(160));
+  observer.DidChangeCpuTiming(base::Milliseconds(110));
+  observer.DidChangeCpuTiming(base::Milliseconds(50));
+  observer.ExpectCpuTiming(base::Milliseconds(160));
   observer.GetMockTimer()->Fire();
 }
 
 TEST_F(MetricsRenderFrameObserverTest, MultipleMetrics) {
   base::Time nav_start = base::Time::FromDoubleT(10);
-  base::TimeDelta dom_event = base::TimeDelta::FromMillisecondsD(2);
-  base::TimeDelta load_event = base::TimeDelta::FromMillisecondsD(2);
+  base::TimeDelta dom_event = base::Milliseconds(2);
+  base::TimeDelta load_event = base::Milliseconds(2);
 
   TestMetricsRenderFrameObserver observer;
 
@@ -169,8 +169,8 @@
 
 TEST_F(MetricsRenderFrameObserverTest, MultipleNavigations) {
   base::Time nav_start = base::Time::FromDoubleT(10);
-  base::TimeDelta dom_event = base::TimeDelta::FromMillisecondsD(2);
-  base::TimeDelta load_event = base::TimeDelta::FromMillisecondsD(2);
+  base::TimeDelta dom_event = base::Milliseconds(2);
+  base::TimeDelta load_event = base::Milliseconds(2);
 
   TestMetricsRenderFrameObserver observer;
 
@@ -195,8 +195,8 @@
   observer.VerifyExpectedTimings();
 
   base::Time nav_start_2 = base::Time::FromDoubleT(100);
-  base::TimeDelta dom_event_2 = base::TimeDelta::FromMillisecondsD(20);
-  base::TimeDelta load_event_2 = base::TimeDelta::FromMillisecondsD(20);
+  base::TimeDelta dom_event_2 = base::Milliseconds(20);
+  base::TimeDelta load_event_2 = base::Milliseconds(20);
   mojom::PageLoadTiming timing_2;
   page_load_metrics::InitPageLoadTimingForTest(&timing_2);
   timing_2.navigation_start = nav_start_2;
diff --git a/components/page_load_metrics/renderer/page_timing_metrics_sender.cc b/components/page_load_metrics/renderer/page_timing_metrics_sender.cc
index 6e1c236..246ea3c8 100644
--- a/components/page_load_metrics/renderer/page_timing_metrics_sender.cc
+++ b/components/page_load_metrics/renderer/page_timing_metrics_sender.cc
@@ -329,7 +329,7 @@
     delay_ms = kInitialTimerDelayMillis;
   }
 
-  timer_->Start(FROM_HERE, base::TimeDelta::FromMilliseconds(delay_ms),
+  timer_->Start(FROM_HERE, base::Milliseconds(delay_ms),
                 base::BindOnce(&PageTimingMetricsSender::SendNow,
                                base::Unretained(this)));
 }
@@ -368,9 +368,8 @@
   input_timing_delta_->num_input_events++;
   input_timing_delta_->total_input_delay += input_delay;
   input_timing_delta_->total_adjusted_input_delay +=
-      base::TimeDelta::FromMilliseconds(
-          std::max(int64_t(0),
-                   input_delay.InMilliseconds() - kInputDelayAdjustmentMillis));
+      base::Milliseconds(std::max(int64_t(0), input_delay.InMilliseconds() -
+                                                  kInputDelayAdjustmentMillis));
   EnsureSendTimer();
 }
 
diff --git a/components/page_load_metrics/renderer/page_timing_metrics_sender_unittest.cc b/components/page_load_metrics/renderer/page_timing_metrics_sender_unittest.cc
index 30d6dedf..0c59de40 100644
--- a/components/page_load_metrics/renderer/page_timing_metrics_sender_unittest.cc
+++ b/components/page_load_metrics/renderer/page_timing_metrics_sender_unittest.cc
@@ -76,7 +76,7 @@
 
 TEST_F(PageTimingMetricsSenderTest, CoalesceMultipleTimings) {
   base::Time nav_start = base::Time::FromDoubleT(10);
-  base::TimeDelta load_event = base::TimeDelta::FromMillisecondsD(4);
+  base::TimeDelta load_event = base::Milliseconds(4);
 
   mojom::PageLoadTiming timing;
   InitPageLoadTimingForTest(&timing);
@@ -101,7 +101,7 @@
 
 TEST_F(PageTimingMetricsSenderTest, MultipleTimings) {
   base::Time nav_start = base::Time::FromDoubleT(10);
-  base::TimeDelta load_event = base::TimeDelta::FromMillisecondsD(4);
+  base::TimeDelta load_event = base::Milliseconds(4);
 
   mojom::PageLoadTiming timing;
   InitPageLoadTimingForTest(&timing);
@@ -145,8 +145,8 @@
 TEST_F(PageTimingMetricsSenderTest, SendInputEvents) {
   mojom::PageLoadTiming timing;
   InitPageLoadTimingForTest(&timing);
-  base::TimeDelta input_delay_1 = base::TimeDelta::FromMilliseconds(40);
-  base::TimeDelta input_delay_2 = base::TimeDelta::FromMilliseconds(60);
+  base::TimeDelta input_delay_1 = base::Milliseconds(40);
+  base::TimeDelta input_delay_2 = base::Milliseconds(60);
 
   metrics_sender_->Update(timing.Clone(),
                           PageTimingMetadataRecorder::MonotonicTiming());
@@ -272,7 +272,7 @@
   metrics_sender_->mock_timer()->Fire();
   validator_.VerifyExpectedFeatures();
 
-  base::TimeDelta load_event = base::TimeDelta::FromMillisecondsD(4);
+  base::TimeDelta load_event = base::Milliseconds(4);
   // Send an updated PageLoadTiming after the timer for the first send request
   // has fired, and verify that a second list of features is sent.
   timing.document_timing->load_event_start = load_event;
@@ -337,14 +337,14 @@
 TEST_F(PageTimingMetricsSenderTest, FirstContentfulPaintForcesSend) {
   mojom::PageLoadTiming timing;
   InitPageLoadTimingForTest(&timing);
-  timing.paint_timing->first_contentful_paint = base::TimeDelta::FromSeconds(1);
+  timing.paint_timing->first_contentful_paint = base::Seconds(1);
   validator_.ExpectPageLoadTiming(timing);
 
   // Updating when |timing| has FCP will cause the metrics to be sent urgently.
   metrics_sender_->Update(timing.Clone(),
                           PageTimingMetadataRecorder::MonotonicTiming());
   EXPECT_EQ(metrics_sender_->mock_timer()->GetCurrentDelay(),
-            base::TimeDelta::FromMilliseconds(0));
+            base::Milliseconds(0));
   metrics_sender_->mock_timer()->Fire();
 }
 
diff --git a/components/paint_preview/player/android/player_compositor_delegate_android.cc b/components/paint_preview/player/android/player_compositor_delegate_android.cc
index e41a86bc..18939c08 100644
--- a/components/paint_preview/player/android/player_compositor_delegate_android.cc
+++ b/components/paint_preview/player/android/player_compositor_delegate_android.cc
@@ -115,7 +115,7 @@
       static_cast<bool>(j_main_frame_mode),
       base::BindOnce(&base::android::RunIntCallbackAndroid,
                      ScopedJavaGlobalRef<jobject>(j_compositor_error_callback)),
-      base::TimeDelta::FromSeconds(15),
+      base::Seconds(15),
       (static_cast<bool>(j_is_low_mem) ? kMaxParallelBitmapRequestsLowMemory
                                        : kMaxParallelBitmapRequests));
 
diff --git a/components/paint_preview/player/player_compositor_delegate_unittest.cc b/components/paint_preview/player/player_compositor_delegate_unittest.cc
index 368760f..8b5d3e2 100644
--- a/components/paint_preview/player/player_compositor_delegate_unittest.cc
+++ b/components/paint_preview/player/player_compositor_delegate_unittest.cc
@@ -885,9 +885,8 @@
               std::move(quit).Run();
             },
             loop.QuitClosure()),
-        base::TimeDelta::FromSeconds(1), kMaxParallelRequests,
-        std::move(compositor_service));
-    env.FastForwardBy(base::TimeDelta::FromSeconds(5));
+        base::Seconds(1), kMaxParallelRequests, std::move(compositor_service));
+    env.FastForwardBy(base::Seconds(5));
     loop.Run();
   }
   env.RunUntilIdle();
diff --git a/components/password_manager/core/browser/android_affiliation/affiliated_match_helper.h b/components/password_manager/core/browser/android_affiliation/affiliated_match_helper.h
index c536808..6fd919b 100644
--- a/components/password_manager/core/browser/android_affiliation/affiliated_match_helper.h
+++ b/components/password_manager/core/browser/android_affiliation/affiliated_match_helper.h
@@ -72,7 +72,7 @@
   // browser start-up into web sites using Android credentials.
   // TODO(engedy): See if we can tie this instead to some meaningful event.
   static constexpr base::TimeDelta kInitializationDelayOnStartup =
-      base::TimeDelta::FromSeconds(8);
+      base::Seconds(8);
 
   AffiliationService* get_affiliation_service() { return affiliation_service_; }
 
diff --git a/components/password_manager/core/browser/android_affiliation/affiliation_backend.cc b/components/password_manager/core/browser/android_affiliation/affiliation_backend.cc
index 1b40de6a..6a2f7df3 100644
--- a/components/password_manager/core/browser/android_affiliation/affiliation_backend.cc
+++ b/components/password_manager/core/browser/android_affiliation/affiliation_backend.cc
@@ -279,12 +279,12 @@
     base::TimeDelta delay = clock_->Now() - construction_time_;
     UMA_HISTOGRAM_CUSTOM_TIMES(
         "PasswordManager.AffiliationBackend.FirstFetchDelay", delay,
-        base::TimeDelta::FromSeconds(1), base::TimeDelta::FromDays(3), 50);
+        base::Seconds(1), base::Days(3), 50);
   } else {
     base::TimeDelta delay = clock_->Now() - last_request_time_;
     UMA_HISTOGRAM_CUSTOM_TIMES(
         "PasswordManager.AffiliationBackend.SubsequentFetchDelay", delay,
-        base::TimeDelta::FromSeconds(1), base::TimeDelta::FromDays(3), 50);
+        base::Seconds(1), base::Days(3), 50);
   }
   last_request_time_ = clock_->Now();
 }
diff --git a/components/password_manager/core/browser/android_affiliation/affiliation_backend_unittest.cc b/components/password_manager/core/browser/android_affiliation/affiliation_backend_unittest.cc
index 56d5f81c..083dfda 100644
--- a/components/password_manager/core/browser/android_affiliation/affiliation_backend_unittest.cc
+++ b/components/password_manager/core/browser/android_affiliation/affiliation_backend_unittest.cc
@@ -143,20 +143,20 @@
 }
 
 base::TimeDelta GetCacheHardExpiryPeriod() {
-  return base::TimeDelta::FromHours(FacetManager::kCacheHardExpiryInHours);
+  return base::Hours(FacetManager::kCacheHardExpiryInHours);
 }
 
 base::TimeDelta GetCacheSoftExpiryPeriod() {
-  return base::TimeDelta::FromHours(FacetManager::kCacheSoftExpiryInHours);
+  return base::Hours(FacetManager::kCacheSoftExpiryInHours);
 }
 
 base::TimeDelta GetShortTestPeriod() {
-  return base::TimeDelta::FromHours(1);
+  return base::Hours(1);
 }
 
 // Returns a smallest time difference that this test cares about.
 base::TimeDelta Epsilon() {
-  return base::TimeDelta::FromMicroseconds(1);
+  return base::Microseconds(1);
 }
 
 }  // namespace
@@ -828,7 +828,7 @@
 // Canceling a non-existing prefetch request for a non-prefetched facet.
 TEST_F(AffiliationBackendTest, CancelingNonExistingPrefetchIsSilentlyIgnored) {
   CancelPrefetch(FacetURI::FromCanonicalSpec(kTestFacetURIAlpha1),
-                 backend_task_runner()->Now() + base::TimeDelta::FromHours(24));
+                 backend_task_runner()->Now() + base::Hours(24));
   ASSERT_NO_FATAL_FAILURE(ExpectNoFetchNeeded());
   EXPECT_EQ(0u, backend_facet_manager_count());
   EXPECT_FALSE(backend_task_runner()->HasPendingTask());
diff --git a/components/password_manager/core/browser/android_affiliation/affiliation_fetch_throttler.cc b/components/password_manager/core/browser/android_affiliation/affiliation_fetch_throttler.cc
index 4a95f2e..0f04e36e 100644
--- a/components/password_manager/core/browser/android_affiliation/affiliation_fetch_throttler.cc
+++ b/components/password_manager/core/browser/android_affiliation/affiliation_fetch_throttler.cc
@@ -140,9 +140,9 @@
 
   double grace_ms = kGracePeriodAfterReconnectMs *
                     (1 - base::RandDouble() * kBackoffPolicy.jitter_factor);
-  exponential_backoff_->SetCustomReleaseTime(std::max(
-      exponential_backoff_->GetReleaseTime(),
-      tick_clock_->NowTicks() + base::TimeDelta::FromMillisecondsD(grace_ms)));
+  exponential_backoff_->SetCustomReleaseTime(
+      std::max(exponential_backoff_->GetReleaseTime(),
+               tick_clock_->NowTicks() + base::Milliseconds(grace_ms)));
 
   if (state_ == FETCH_NEEDED)
     EnsureCallbackIsScheduled();
diff --git a/components/password_manager/core/browser/android_affiliation/affiliation_fetch_throttler_unittest.cc b/components/password_manager/core/browser/android_affiliation/affiliation_fetch_throttler_unittest.cc
index 23543f5..749d01a 100644
--- a/components/password_manager/core/browser/android_affiliation/affiliation_fetch_throttler_unittest.cc
+++ b/components/password_manager/core/browser/android_affiliation/affiliation_fetch_throttler_unittest.cc
@@ -112,7 +112,7 @@
   // Runs the task runner for |secs| and asserts that OnCanSendNetworkRequest()
   // will not have been called by the end of this period.
   void AssertNoReleaseForSecs(int64_t secs) {
-    task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(secs));
+    task_runner_->FastForwardBy(base::Seconds(secs));
     ASSERT_EQ(0u, mock_delegate_.can_send_count());
   }
 
diff --git a/components/password_manager/core/browser/android_affiliation/facet_manager.cc b/components/password_manager/core/browser/android_affiliation/facet_manager.cc
index 3e5902ec..694cc96e6 100644
--- a/components/password_manager/core/browser/android_affiliation/facet_manager.cc
+++ b/components/password_manager/core/browser/android_affiliation/facet_manager.cc
@@ -208,13 +208,11 @@
 }
 
 base::Time FacetManager::GetCacheSoftExpiryTime() const {
-  return last_update_time_ +
-         base::TimeDelta::FromHours(kCacheSoftExpiryInHours);
+  return last_update_time_ + base::Hours(kCacheSoftExpiryInHours);
 }
 
 base::Time FacetManager::GetCacheHardExpiryTime() const {
-  return last_update_time_ +
-         base::TimeDelta::FromHours(kCacheHardExpiryInHours);
+  return last_update_time_ + base::Hours(kCacheHardExpiryInHours);
 }
 
 base::Time FacetManager::GetMaximumKeepFreshUntilThreshold() const {
diff --git a/components/password_manager/core/browser/android_affiliation/facet_manager_unittest.cc b/components/password_manager/core/browser/android_affiliation/facet_manager_unittest.cc
index e44677c7d..986980f 100644
--- a/components/password_manager/core/browser/android_affiliation/facet_manager_unittest.cc
+++ b/components/password_manager/core/browser/android_affiliation/facet_manager_unittest.cc
@@ -57,7 +57,7 @@
       // This formula is a simple stateless solution for notifying FacetManagers
       // prematurely multiple times in a row while also ensuring that the tests
       // are still fast, with no more than log2(delay.InSeconds()) repetitions.
-      delay = std::min(delay, delay / 2 + base::TimeDelta::FromSeconds(1));
+      delay = std::min(delay, delay / 2 + base::Seconds(1));
     } else if (accuracy_ == NotificationAccuracy::NEVER_CALLED) {
       return;
     }
@@ -172,20 +172,20 @@
 }
 
 base::TimeDelta GetCacheHardExpiryPeriod() {
-  return base::TimeDelta::FromHours(FacetManager::kCacheHardExpiryInHours);
+  return base::Hours(FacetManager::kCacheHardExpiryInHours);
 }
 
 base::TimeDelta GetCacheSoftExpiryPeriod() {
-  return base::TimeDelta::FromHours(FacetManager::kCacheSoftExpiryInHours);
+  return base::Hours(FacetManager::kCacheSoftExpiryInHours);
 }
 
 base::TimeDelta GetShortTestPeriod() {
-  return base::TimeDelta::FromHours(1);
+  return base::Hours(1);
 }
 
 // Returns a smallest time difference that this test cares about.
 base::TimeDelta Epsilon() {
-  return base::TimeDelta::FromMicroseconds(1);
+  return base::Microseconds(1);
 }
 
 // Returns |time| + |delay| or the maximum time if |delay| is the maximum delta.
diff --git a/components/password_manager/core/browser/field_info_table.cc b/components/password_manager/core/browser/field_info_table.cc
index c9e0330c..9915ab9 100644
--- a/components/password_manager/core/browser/field_info_table.cc
+++ b/components/password_manager/core/browser/field_info_table.cc
@@ -54,7 +54,7 @@
     results.back().field_type = static_cast<autofill::ServerFieldType>(
         s->ColumnInt(GetColumnNumber(FieldInfoTableColumn::kFieldType)));
     results.back().create_time = base::Time::FromDeltaSinceWindowsEpoch(
-        (base::TimeDelta::FromMicroseconds(s->ColumnInt64(
+        (base::Microseconds(s->ColumnInt64(
             GetColumnNumber(FieldInfoTableColumn::kCreateTime)))));
   }
   return results;
diff --git a/components/password_manager/core/browser/form_fetcher_impl_unittest.cc b/components/password_manager/core/browser/form_fetcher_impl_unittest.cc
index a0792739..eaaa6d01 100644
--- a/components/password_manager/core/browser/form_fetcher_impl_unittest.cc
+++ b/components/password_manager/core/browser/form_fetcher_impl_unittest.cc
@@ -1052,8 +1052,7 @@
 // Check that results from both stores are merged.
 TEST_F(MultiStoreFormFetcherTest, MergeFromBothStores) {
   const base::Time kLastUsedNow = base::Time::Now();
-  const base::Time kLastUsedYesterday =
-      kLastUsedNow - base::TimeDelta::FromDays(1);
+  const base::Time kLastUsedYesterday = kLastUsedNow - base::Days(1);
   Fetch();
   PasswordForm federated1 = CreateFederated("user", kLastUsedNow);
   PasswordForm federated2 = CreateFederated("user_B", kLastUsedNow);
diff --git a/components/password_manager/core/browser/generation/password_requirements_spec_fetcher_impl.cc b/components/password_manager/core/browser/generation/password_requirements_spec_fetcher_impl.cc
index 317922a..99c8b58 100644
--- a/components/password_manager/core/browser/generation/password_requirements_spec_fetcher_impl.cc
+++ b/components/password_manager/core/browser/generation/password_requirements_spec_fetcher_impl.cc
@@ -181,7 +181,7 @@
                      base::Unretained(this), hash_prefix));
 
   lookup->download_timer.Start(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(timeout_),
+      FROM_HERE, base::Milliseconds(timeout_),
       base::BindOnce(&PasswordRequirementsSpecFetcherImpl::OnFetchTimeout,
                      base::Unretained(this), hash_prefix));
 
diff --git a/components/password_manager/core/browser/generation/password_requirements_spec_fetcher_unittest.cc b/components/password_manager/core/browser/generation/password_requirements_spec_fetcher_unittest.cc
index d12247f..ce0737f 100644
--- a/components/password_manager/core/browser/generation/password_requirements_spec_fetcher_unittest.cc
+++ b/components/password_manager/core/browser/generation/password_requirements_spec_fetcher_unittest.cc
@@ -233,8 +233,7 @@
     if (test.timeout == kMagicTimeout) {
       // Make sure that the request takes longer than the timeout and gets
       // killed by the timer.
-      environment.FastForwardBy(
-          base::TimeDelta::FromMilliseconds(2 * kMagicTimeout));
+      environment.FastForwardBy(base::Milliseconds(2 * kMagicTimeout));
       environment.RunUntilIdle();
     }
 
@@ -295,8 +294,7 @@
     EXPECT_EQ(1, loader_factory.NumPending());
 
     if (simulate_timeout) {
-      environment.FastForwardBy(
-          base::TimeDelta::FromMilliseconds(2 * kTimeout));
+      environment.FastForwardBy(base::Milliseconds(2 * kTimeout));
       environment.RunUntilIdle();
       EXPECT_FALSE(spec_for_a.has_min_length());
       EXPECT_FALSE(spec_for_b.has_min_length());
diff --git a/components/password_manager/core/browser/http_credentials_cleaner_unittest.cc b/components/password_manager/core/browser/http_credentials_cleaner_unittest.cc
index 06582753..e9525ee 100644
--- a/components/password_manager/core/browser/http_credentials_cleaner_unittest.cc
+++ b/components/password_manager/core/browser/http_credentials_cleaner_unittest.cc
@@ -256,8 +256,7 @@
     auto password_store = base::MakeRefCounted<TestPasswordStore>();
     ASSERT_TRUE(password_store->Init(nullptr));
 
-    double last_time =
-        (base::Time::Now() - base::TimeDelta::FromMinutes(10)).ToDoubleT();
+    double last_time = (base::Time::Now() - base::Minutes(10)).ToDoubleT();
     if (should_start_clean_up) {
       // Simulate that the clean-up was performed
       // (HttpCredentialCleaner::kCleanUpDelayInDays + 1) days ago.
@@ -266,8 +265,7 @@
       // |HttpCredentialCleaner::kCleanUpDelayInDays| days between two
       // clean-ups)
       last_time = (base::Time::Now() -
-                   base::TimeDelta::FromDays(
-                       HttpCredentialCleaner::kCleanUpDelayInDays + 1))
+                   base::Days(HttpCredentialCleaner::kCleanUpDelayInDays + 1))
                       .ToDoubleT();
     }
 
diff --git a/components/password_manager/core/browser/insecure_credentials_table.cc b/components/password_manager/core/browser/insecure_credentials_table.cc
index 53947541f..7b2c7f9d 100644
--- a/components/password_manager/core/browser/insecure_credentials_table.cc
+++ b/components/password_manager/core/browser/insecure_credentials_table.cc
@@ -26,7 +26,7 @@
     std::u16string username = s->ColumnString16(2);
     InsecureType insecurity_type = static_cast<InsecureType>(s->ColumnInt64(3));
     base::Time create_time = base::Time::FromDeltaSinceWindowsEpoch(
-        (base::TimeDelta::FromMicroseconds(s->ColumnInt64(4))));
+        (base::Microseconds(s->ColumnInt64(4))));
     bool is_muted = !!s->ColumnInt64(5);
     InsecureCredential issue(std::move(signon_realm), std::move(username),
                              create_time, insecurity_type, IsMuted(is_muted));
diff --git a/components/password_manager/core/browser/login_database.cc b/components/password_manager/core/browser/login_database.cc
index a717029..b4e49c2 100644
--- a/components/password_manager/core/browser/login_database.cc
+++ b/components/password_manager/core/browser/login_database.cc
@@ -1262,16 +1262,15 @@
       static_cast<PasswordForm::GenerationUploadStatus>(
           s.ColumnInt(COLUMN_GENERATION_UPLOAD_STATUS));
   form->date_last_used = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(s.ColumnInt64(COLUMN_DATE_LAST_USED)));
+      base::Microseconds(s.ColumnInt64(COLUMN_DATE_LAST_USED)));
   base::span<const uint8_t> moving_blocked_for_blob =
       s.ColumnBlob(COLUMN_MOVING_BLOCKED_FOR);
   if (!moving_blocked_for_blob.empty()) {
     base::Pickle pickle = PickleFromSpan(moving_blocked_for_blob);
     form->moving_blocked_for_list = DeserializeGaiaIdHashVector(pickle);
   }
-  form->date_password_modified =
-      base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromMicroseconds(
-          s.ColumnInt64(COLUMN_DATE_PASSWORD_MODIFIED)));
+  form->date_password_modified = base::Time::FromDeltaSinceWindowsEpoch(
+      base::Microseconds(s.ColumnInt64(COLUMN_DATE_PASSWORD_MODIFIED)));
   PopulateFormWithPasswordIssues(FormPrimaryKey(*primary_key), form);
 
   return ENCRYPTION_RESULT_SUCCESS;
diff --git a/components/password_manager/core/browser/login_database_unittest.cc b/components/password_manager/core/browser/login_database_unittest.cc
index 0ccfc49d..61a4d1a 100644
--- a/components/password_manager/core/browser/login_database_unittest.cc
+++ b/components/password_manager/core/browser/login_database_unittest.cc
@@ -97,8 +97,7 @@
   form.times_used = 1;
   form.form_data.name = u"form_name";
   form.date_last_used = base::Time::Now();
-  form.date_password_modified =
-      base::Time::Now() - base::TimeDelta::FromDays(1);
+  form.date_password_modified = base::Time::Now() - base::Days(1);
   form.display_name = u"Mr. Smith";
   form.icon_url = GURL("https://accounts.google.com/Icon");
   form.skip_zero_click = true;
@@ -877,9 +876,9 @@
   EXPECT_EQ(0U, result.size());
 
   base::Time now = base::Time::Now();
-  base::TimeDelta one_day = base::TimeDelta::FromDays(1);
-  base::Time back_30_days = now - base::TimeDelta::FromDays(30);
-  base::Time back_31_days = now - base::TimeDelta::FromDays(31);
+  base::TimeDelta one_day = base::Days(1);
+  base::Time back_30_days = now - base::Days(30);
+  base::Time back_31_days = now - base::Days(31);
 
   // Create one with a 0 time.
   EXPECT_TRUE(
@@ -1323,10 +1322,9 @@
       ValueElementPair(u"my_new_username", u"new_username_id"));
   form.times_used = 20;
   form.submit_element = u"submit_element";
-  form.date_created = base::Time::Now() - base::TimeDelta::FromDays(3);
+  form.date_created = base::Time::Now() - base::Days(3);
   form.date_last_used = base::Time::Now();
-  form.date_password_modified =
-      base::Time::Now() - base::TimeDelta::FromDays(1);
+  form.date_password_modified = base::Time::Now() - base::Days(1);
   form.blocked_by_user = true;
   form.scheme = PasswordForm::Scheme::kBasic;
   form.type = PasswordForm::Type::kGenerated;
@@ -1367,7 +1365,7 @@
       ValueElementPair(u"my_new_username", u"new_username_id"));
   form.times_used = 20;
   form.submit_element = u"submit_element";
-  form.date_created = base::Time::Now() - base::TimeDelta::FromDays(3);
+  form.date_created = base::Time::Now() - base::Days(3);
   form.date_last_used = base::Time::Now();
   form.display_name = u"Mr. Smith";
   form.icon_url = GURL("https://accounts.google.com/Icon");
diff --git a/components/password_manager/core/browser/password_access_authenticator.h b/components/password_manager/core/browser/password_access_authenticator.h
index e220c16..d9fcccbf 100644
--- a/components/password_manager/core/browser/password_access_authenticator.h
+++ b/components/password_manager/core/browser/password_access_authenticator.h
@@ -26,8 +26,7 @@
 
   // For how long after the last successful authentication a user is considered
   // authenticated without repeating the challenge.
-  constexpr static base::TimeDelta kAuthValidityPeriod =
-      base::TimeDelta::FromSeconds(60);
+  constexpr static base::TimeDelta kAuthValidityPeriod = base::Seconds(60);
 
   // |os_reauth_call| is passed to |os_reauth_call_|, see the latter for
   // explanation.
diff --git a/components/password_manager/core/browser/password_access_authenticator_unittest.cc b/components/password_manager/core/browser/password_access_authenticator_unittest.cc
index 04faed2..d27eb4a 100644
--- a/components/password_manager/core/browser/password_access_authenticator_unittest.cc
+++ b/components/password_manager/core/browser/password_access_authenticator_unittest.cc
@@ -60,14 +60,13 @@
                                        1);
 
   task_environment().AdvanceClock(
-      PasswordAccessAuthenticator::kAuthValidityPeriod -
-      base::TimeDelta::FromSeconds(1));
+      PasswordAccessAuthenticator::kAuthValidityPeriod - base::Seconds(1));
   EXPECT_CALL(callback(), Run).Times(0);
   EXPECT_TRUE(authenticator().EnsureUserIsAuthenticated(purpose()));
   histogram_tester().ExpectBucketCount(kHistogramName, ReauthResult::kSkipped,
                                        1);
 
-  task_environment().AdvanceClock(base::TimeDelta::FromSeconds(2));
+  task_environment().AdvanceClock(base::Seconds(2));
   EXPECT_CALL(callback(), Run(purpose()));
   EXPECT_TRUE(authenticator().EnsureUserIsAuthenticated(purpose()));
   histogram_tester().ExpectBucketCount(kHistogramName, ReauthResult::kSuccess,
@@ -97,7 +96,7 @@
 
   // Advance just a little bit, so that if |authenticator| starts the grace
   // period, this is still within it.
-  task_environment().AdvanceClock(base::TimeDelta::FromSeconds(1));
+  task_environment().AdvanceClock(base::Seconds(1));
   EXPECT_CALL(callback(), Run(purpose())).WillOnce(Return(false));
   EXPECT_FALSE(authenticator().EnsureUserIsAuthenticated(purpose()));
   histogram_tester().ExpectBucketCount(kHistogramName, ReauthResult::kFailure,
diff --git a/components/password_manager/core/browser/password_form_metrics_recorder.cc b/components/password_manager/core/browser/password_form_metrics_recorder.cc
index c508551..9990d22 100644
--- a/components/password_manager/core/browser/password_form_metrics_recorder.cc
+++ b/components/password_manager/core/browser/password_form_metrics_recorder.cc
@@ -349,18 +349,18 @@
           pref_service_->GetTime(prefs::kAccountStoreDateLastUsedForFilling);
 
       bool was_profile_store_used_in_last_7_days =
-          (now - profile_store_last_use) < base::TimeDelta::FromDays(7);
+          (now - profile_store_last_use) < base::Days(7);
       bool was_account_store_used_in_last_7_days =
-          (now - account_store_last_use) < base::TimeDelta::FromDays(7);
+          (now - account_store_last_use) < base::Days(7);
       base::UmaHistogramEnumeration(
           "PasswordManager.StoresUsedForFillingInLast7Days",
           ComputeFillingSource(was_profile_store_used_in_last_7_days,
                                was_account_store_used_in_last_7_days));
 
       bool was_profile_store_used_in_last_28_days =
-          (now - profile_store_last_use) < base::TimeDelta::FromDays(28);
+          (now - profile_store_last_use) < base::Days(28);
       bool was_account_store_used_in_last_28_days =
-          (now - account_store_last_use) < base::TimeDelta::FromDays(28);
+          (now - account_store_last_use) < base::Days(28);
       base::UmaHistogramEnumeration(
           "PasswordManager.StoresUsedForFillingInLast28Days",
           ComputeFillingSource(was_profile_store_used_in_last_28_days,
diff --git a/components/password_manager/core/browser/password_form_metrics_recorder_unittest.cc b/components/password_manager/core/browser/password_form_metrics_recorder_unittest.cc
index 9613307..4dff8a6 100644
--- a/components/password_manager/core/browser/password_form_metrics_recorder_unittest.cc
+++ b/components/password_manager/core/browser/password_form_metrics_recorder_unittest.cc
@@ -1416,7 +1416,7 @@
         PasswordFormMetricsRecorder::FillingSource::kFilledFromProfileStore, 1);
   }
 
-  clock.Advance(base::TimeDelta::FromDays(2));
+  clock.Advance(base::Days(2));
 
   // Day 2: A credential from the account store is filled.
   {
@@ -1451,7 +1451,7 @@
         PasswordFormMetricsRecorder::FillingSource::kFilledFromBothStores, 1);
   }
 
-  clock.Advance(base::TimeDelta::FromDays(6));
+  clock.Advance(base::Days(6));
 
   // Day 8: A credential from the account store is filled (again).
   {
@@ -1486,7 +1486,7 @@
         PasswordFormMetricsRecorder::FillingSource::kFilledFromBothStores, 1);
   }
 
-  clock.Advance(base::TimeDelta::FromDays(27));
+  clock.Advance(base::Days(27));
 
   // Day 35: The user manually enters a credential that's not stored.
   {
@@ -1520,7 +1520,7 @@
         PasswordFormMetricsRecorder::FillingSource::kFilledFromAccountStore, 1);
   }
 
-  clock.Advance(base::TimeDelta::FromDays(2));
+  clock.Advance(base::Days(2));
 
   // Day 37: The user again manually enters a credential that's not stored.
   {
diff --git a/components/password_manager/core/browser/password_generation_manager_unittest.cc b/components/password_manager/core/browser/password_generation_manager_unittest.cc
index 0d61005..9c119b7 100644
--- a/components/password_manager/core/browser/password_generation_manager_unittest.cc
+++ b/components/password_manager/core/browser/password_generation_manager_unittest.cc
@@ -169,7 +169,7 @@
 }
 
 void PasswordGenerationManagerTest::ForwardByMinute() {
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_environment_.FastForwardBy(base::Minutes(1));
 }
 
 // Check that accepting a generated password simply relays the message to the
diff --git a/components/password_manager/core/browser/password_manager_util_unittest.cc b/components/password_manager/core/browser/password_manager_util_unittest.cc
index 1cb0d99f..00f9114 100644
--- a/components/password_manager/core/browser/password_manager_util_unittest.cc
+++ b/components/password_manager/core/browser/password_manager_util_unittest.cc
@@ -163,8 +163,8 @@
 
 TEST(PasswordManagerUtil, FindBestMatches) {
   const base::Time kNow = base::Time::Now();
-  const base::Time kYesterday = kNow - base::TimeDelta::FromDays(1);
-  const base::Time k2DaysAgo = kNow - base::TimeDelta::FromDays(2);
+  const base::Time kYesterday = kNow - base::Days(1);
+  const base::Time k2DaysAgo = kNow - base::Days(2);
   const int kNotFound = -1;
   struct TestMatch {
     bool is_psl_match;
diff --git a/components/password_manager/core/browser/password_reuse_detection_manager_unittest.cc b/components/password_manager/core/browser/password_reuse_detection_manager_unittest.cc
index 6b12d05..b3f75fd8 100644
--- a/components/password_manager/core/browser/password_reuse_detection_manager_unittest.cc
+++ b/components/password_manager/core/browser/password_reuse_detection_manager_unittest.cc
@@ -111,7 +111,7 @@
   manager.OnKeyPressedCommitted(u"1");
 
   // Simulate 10 seconds of inactivity.
-  clock.SetNow(now + base::TimeDelta::FromSeconds(10));
+  clock.SetNow(now + base::Seconds(10));
   // Expect that a keystroke typed before inactivity is cleared.
   EXPECT_CALL(reuse_manager_, CheckReuse(std::u16string(u"2"), _, _));
   manager.OnKeyPressedCommitted(u"2");
diff --git a/components/password_manager/core/browser/password_save_manager_impl_unittest.cc b/components/password_manager/core/browser/password_save_manager_impl_unittest.cc
index 723fef4..49a7775 100644
--- a/components/password_manager/core/browser/password_save_manager_impl_unittest.cc
+++ b/components/password_manager/core/browser/password_save_manager_impl_unittest.cc
@@ -1424,7 +1424,7 @@
       parsed_submitted_form_.password_value;
   saved_match_in_profile_store.in_store = PasswordForm::Store::kProfileStore;
   saved_match_in_profile_store.date_created =
-      base::Time::Now() - base::TimeDelta::FromDays(10);
+      base::Time::Now() - base::Days(10);
   saved_match_in_profile_store.times_used = 10;
   saved_match_in_profile_store.moving_blocked_for_list.push_back(
       autofill::GaiaIdHash::FromGaiaId("email@gmail.com"));
diff --git a/components/password_manager/core/browser/password_scripts_fetcher_impl.cc b/components/password_manager/core/browser/password_scripts_fetcher_impl.cc
index aebc2d6..5af9b2f 100644
--- a/components/password_manager/core/browser/password_scripts_fetcher_impl.cc
+++ b/components/password_manager/core/browser/password_scripts_fetcher_impl.cc
@@ -167,7 +167,7 @@
 
 void PasswordScriptsFetcherImpl::StartFetch() {
   static const base::TimeDelta kFetchTimeout(
-      base::TimeDelta::FromSeconds(kFetchTimeoutInSeconds));
+      base::Seconds(kFetchTimeoutInSeconds));
   if (url_loader_)
     return;
   auto resource_request = std::make_unique<network::ResourceRequest>();
@@ -270,7 +270,7 @@
 
 bool PasswordScriptsFetcherImpl::IsCacheStale() const {
   static const base::TimeDelta kCacheTimeout(
-      base::TimeDelta::FromMinutes(kCacheTimeoutInMinutes));
+      base::Minutes(kCacheTimeoutInMinutes));
   return last_fetch_timestamp_.is_null() ||
          base::TimeTicks::Now() - last_fetch_timestamp_ >= kCacheTimeout;
 }
diff --git a/components/password_manager/core/browser/password_scripts_fetcher_impl.h b/components/password_manager/core/browser/password_scripts_fetcher_impl.h
index 99b5e0c75..259c13e 100644
--- a/components/password_manager/core/browser/password_scripts_fetcher_impl.h
+++ b/components/password_manager/core/browser/password_scripts_fetcher_impl.h
@@ -85,8 +85,7 @@
 
 #if defined(UNIT_TEST)
   void make_cache_stale_for_testing() {
-    last_fetch_timestamp_ =
-        base::TimeTicks::Now() - base::TimeDelta::FromDays(1);
+    last_fetch_timestamp_ = base::TimeTicks::Now() - base::Days(1);
   }
 #endif
 
diff --git a/components/password_manager/core/browser/password_store_impl.cc b/components/password_manager/core/browser/password_store_impl.cc
index c7b264f..207618b 100644
--- a/components/password_manager/core/browser/password_store_impl.cc
+++ b/components/password_manager/core/browser/password_store_impl.cc
@@ -33,7 +33,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kSyncTaskTimeout = base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kSyncTaskTimeout = base::Seconds(30);
 
 }  // namespace
 
@@ -526,7 +526,7 @@
         FROM_HERE,
         base::BindOnce(&PasswordStoreImpl::ReportMetrics,
                        weak_ptr_factory_.GetWeakPtr()),
-        base::TimeDelta::FromSeconds(30));
+        base::Seconds(30));
   }
 
   sync_bridge_ = base::WrapUnique(new PasswordSyncBridge(
diff --git a/components/password_manager/core/browser/password_store_unittest.cc b/components/password_manager/core/browser/password_store_unittest.cc
index 7fcb092..4afb8ca 100644
--- a/components/password_manager/core/browser/password_store_unittest.cc
+++ b/components/password_manager/core/browser/password_store_unittest.cc
@@ -1496,8 +1496,7 @@
   const GURL origin = GURL(origin_url);
   base::RepeatingCallback<bool(const GURL&)> filter =
       base::BindRepeating(&MatchesOrigin, origin);
-  base::Time time_after_creation_date =
-      form->date_created + base::TimeDelta::FromDays(1);
+  base::Time time_after_creation_date = form->date_created + base::Days(1);
   base::RunLoop run_loop;
   EXPECT_CALL(observer, OnLoginsChanged).Times(0);
   store()->RemoveLoginsByURLAndTime(filter, time_after_creation_date,
@@ -1514,7 +1513,7 @@
   auto* mock_backend =
       static_cast<MockPasswordStoreBackend*>(store->GetBackendForTesting());
   store->Init(nullptr);
-  constexpr auto delta = base::TimeDelta::FromMilliseconds(123u);
+  constexpr auto delta = base::Milliseconds(123u);
 
   base::HistogramTester histogram_tester;
   EXPECT_CALL(*mock_backend, GetAllLoginsAsync(_))
diff --git a/components/password_manager/core/browser/possible_username_data.h b/components/password_manager/core/browser/possible_username_data.h
index 2f811a8..d20ab58 100644
--- a/components/password_manager/core/browser/possible_username_data.h
+++ b/components/password_manager/core/browser/possible_username_data.h
@@ -17,8 +17,7 @@
 // The maximum time between the user typed in a text field and subsequent
 // submission of the password form, such that the typed value is considered to
 // be a possible username.
-constexpr auto kPossibleUsernameExpirationTimeout =
-    base::TimeDelta::FromMinutes(1);
+constexpr auto kPossibleUsernameExpirationTimeout = base::Minutes(1);
 
 // Contains information that the user typed in a text field. It might be the
 // username during username first flow.
diff --git a/components/password_manager/core/browser/sync/password_proto_utils.cc b/components/password_manager/core/browser/sync/password_proto_utils.cc
index 9932f94..4245278 100644
--- a/components/password_manager/core/browser/sync/password_proto_utils.cc
+++ b/components/password_manager/core/browser/sync/password_proto_utils.cc
@@ -19,7 +19,7 @@
   return base::Time::FromDeltaSinceWindowsEpoch(
       // Use FromDeltaSinceWindowsEpoch because create_time_us has
       // always used the Windows epoch.
-      base::TimeDelta::FromMicroseconds(time));
+      base::Microseconds(time));
 }
 
 }  // namespace
@@ -146,7 +146,7 @@
     // For legacy passwords that don't have the |date_last_used| field set, we
     // should it similar to the logic in login database migration.
     password.date_last_used =
-        base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromDays(1));
+        base::Time::FromDeltaSinceWindowsEpoch(base::Days(1));
   }
 
   password.date_password_modified = ConvertToBaseTime(
diff --git a/components/password_manager/core/browser/sync/password_sync_bridge.cc b/components/password_manager/core/browser/sync/password_sync_bridge.cc
index 4d27674..421e5d0 100644
--- a/components/password_manager/core/browser/sync/password_sync_bridge.cc
+++ b/components/password_manager/core/browser/sync/password_sync_bridge.cc
@@ -64,7 +64,7 @@
   return base::Time::FromDeltaSinceWindowsEpoch(
       // Use FromDeltaSinceWindowsEpoch because create_time_us has
       // always used the Windows epoch.
-      base::TimeDelta::FromMicroseconds(time));
+      base::Microseconds(time));
 }
 
 PasswordForm PasswordFromEntityChange(const syncer::EntityChange& entity_change,
@@ -90,7 +90,7 @@
     // For legacy passwords that don't have the |date_last_used| field set, we
     // should it similar to the logic in login database migration.
     password.date_last_used =
-        base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromDays(1));
+        base::Time::FromDeltaSinceWindowsEpoch(base::Days(1));
   }
   password.date_password_modified = ConvertToBaseTime(
       password_data.has_date_password_modified_windows_epoch_micros()
diff --git a/components/password_manager/core/browser/sync/password_sync_bridge_unittest.cc b/components/password_manager/core/browser/sync/password_sync_bridge_unittest.cc
index 6303ab4..b06c66a6 100644
--- a/components/password_manager/core/browser/sync/password_sync_bridge_unittest.cc
+++ b/components/password_manager/core/browser/sync/password_sync_bridge_unittest.cc
@@ -704,7 +704,7 @@
       CreateSpecificsWithSignonRealm(kSignonRealm3);
 
   base::Time now = base::Time::Now();
-  base::Time yesterday = now - base::TimeDelta::FromDays(1);
+  base::Time yesterday = now - base::Days(1);
 
   form2.date_created = yesterday;
   specifics2.mutable_client_only_encrypted_data()->set_date_created(
@@ -778,7 +778,7 @@
   // than the local one. We will assign primary keys for Form 1 and Form 2 in
   // the local DB.
   base::Time now = base::Time::Now();
-  base::Time yesterday = now - base::TimeDelta::FromDays(1);
+  base::Time yesterday = now - base::Days(1);
   const int kPrimaryKey1 = 1000;
   const int kPrimaryKey2 = 1001;
   const std::string kPrimaryKeyStr1 = "1000";
diff --git a/components/password_manager/core/browser/ui/insecure_credentials_manager_unittest.cc b/components/password_manager/core/browser/ui/insecure_credentials_manager_unittest.cc
index 82421c1..abd35ca1 100644
--- a/components/password_manager/core/browser/ui/insecure_credentials_manager_unittest.cc
+++ b/components/password_manager/core/browser/ui/insecure_credentials_manager_unittest.cc
@@ -418,7 +418,7 @@
 
   RunUntilIdle();
   provider().StartWeakCheck();
-  AdvanceClock(base::TimeDelta::FromMilliseconds(kDelay));
+  AdvanceClock(base::Milliseconds(kDelay));
   RunUntilIdle();
 
   EXPECT_THAT(provider().GetWeakCredentials(), IsEmpty());
@@ -444,7 +444,7 @@
 
   RunUntilIdle();
   provider().StartWeakCheck();
-  AdvanceClock(base::TimeDelta::FromMilliseconds(2 * kDelay));
+  AdvanceClock(base::Milliseconds(2 * kDelay));
   RunUntilIdle();
 
   EXPECT_THAT(provider().GetWeakCredentials(), IsEmpty());
@@ -472,7 +472,7 @@
 
   RunUntilIdle();
   provider().StartWeakCheck();
-  AdvanceClock(base::TimeDelta::FromMilliseconds(kDelay));
+  AdvanceClock(base::Milliseconds(kDelay));
   RunUntilIdle();
 
   std::vector<CredentialWithPassword> weak_credentials =
@@ -506,7 +506,7 @@
 
   RunUntilIdle();
   provider().StartWeakCheck();
-  AdvanceClock(base::TimeDelta::FromMilliseconds(kDelay));
+  AdvanceClock(base::Milliseconds(kDelay));
   RunUntilIdle();
 
   std::vector<CredentialWithPassword> weak_credentials =
@@ -539,7 +539,7 @@
 
   RunUntilIdle();
   provider().StartWeakCheck();
-  AdvanceClock(base::TimeDelta::FromMilliseconds(kDelay));
+  AdvanceClock(base::Milliseconds(kDelay));
   RunUntilIdle();
 
   std::vector<CredentialWithPassword> weak_credentials =
@@ -573,7 +573,7 @@
 
   RunUntilIdle();
   provider().StartWeakCheck();
-  AdvanceClock(base::TimeDelta::FromMilliseconds(kDelay));
+  AdvanceClock(base::Milliseconds(kDelay));
   RunUntilIdle();
 
   std::vector<CredentialWithPassword> returned_weak_credentials =
@@ -613,7 +613,7 @@
 
   RunUntilIdle();
   provider().StartWeakCheck();
-  AdvanceClock(base::TimeDelta::FromMilliseconds(kDelay));
+  AdvanceClock(base::Milliseconds(kDelay));
   RunUntilIdle();
 
   std::vector<CredentialWithPassword> returned_weak_credentials =
diff --git a/components/password_manager/core/browser/ui/post_save_compromised_helper.cc b/components/password_manager/core/browser/ui/post_save_compromised_helper.cc
index 348680c..3783d29 100644
--- a/components/password_manager/core/browser/ui/post_save_compromised_helper.cc
+++ b/components/password_manager/core/browser/ui/post_save_compromised_helper.cc
@@ -16,7 +16,7 @@
 
 // Maximum time since the last password check while the result is considered
 // up to date.
-constexpr auto kMaxTimeSinceLastCheck = base::TimeDelta::FromMinutes(30);
+constexpr auto kMaxTimeSinceLastCheck = base::Minutes(30);
 
 PostSaveCompromisedHelper::PostSaveCompromisedHelper(
     base::span<const InsecureCredential> compromised,
diff --git a/components/password_manager/core/browser/ui/post_save_compromised_helper_unittest.cc b/components/password_manager/core/browser/ui/post_save_compromised_helper_unittest.cc
index 37c2fcd8..3542794 100644
--- a/components/password_manager/core/browser/ui/post_save_compromised_helper_unittest.cc
+++ b/components/password_manager/core/browser/ui/post_save_compromised_helper_unittest.cc
@@ -101,9 +101,8 @@
 }
 
 TEST_F(PostSaveCompromisedHelperTest, EmptyStore) {
-  prefs()->SetDouble(
-      kLastTimePasswordCheckCompleted,
-      (base::Time::Now() - base::TimeDelta::FromMinutes(1)).ToDoubleT());
+  prefs()->SetDouble(kLastTimePasswordCheckCompleted,
+                     (base::Time::Now() - base::Minutes(1)).ToDoubleT());
   PostSaveCompromisedHelper helper({}, kUsername);
   base::MockCallback<PostSaveCompromisedHelper::BubbleCallback> callback;
   EXPECT_CALL(callback, Run(BubbleType::kNoBubble, 0));
@@ -116,9 +115,8 @@
 }
 
 TEST_F(PostSaveCompromisedHelperTest, RandomSite_FullStore) {
-  prefs()->SetDouble(
-      kLastTimePasswordCheckCompleted,
-      (base::Time::Now() - base::TimeDelta::FromMinutes(1)).ToDoubleT());
+  prefs()->SetDouble(kLastTimePasswordCheckCompleted,
+                     (base::Time::Now() - base::Minutes(1)).ToDoubleT());
   PostSaveCompromisedHelper helper({}, kUsername);
   base::MockCallback<PostSaveCompromisedHelper::BubbleCallback> callback;
   EXPECT_CALL(callback, Run(BubbleType::kNoBubble, _));
@@ -132,9 +130,8 @@
 }
 
 TEST_F(PostSaveCompromisedHelperTest, CompromisedSite_ItemStayed) {
-  prefs()->SetDouble(
-      kLastTimePasswordCheckCompleted,
-      (base::Time::Now() - base::TimeDelta::FromMinutes(1)).ToDoubleT());
+  prefs()->SetDouble(kLastTimePasswordCheckCompleted,
+                     (base::Time::Now() - base::Minutes(1)).ToDoubleT());
   PasswordForm form1 = CreateForm(kSignonRealm, kUsername);
   form1.password_issues.insert({InsecureType::kLeaked, InsecurityMetadata()});
   PasswordForm form2 = CreateForm(kSignonRealm, kUsername2);
@@ -152,9 +149,8 @@
 }
 
 TEST_F(PostSaveCompromisedHelperTest, CompromisedSite_ItemGone) {
-  prefs()->SetDouble(
-      kLastTimePasswordCheckCompleted,
-      (base::Time::Now() - base::TimeDelta::FromMinutes(1)).ToDoubleT());
+  prefs()->SetDouble(kLastTimePasswordCheckCompleted,
+                     (base::Time::Now() - base::Minutes(1)).ToDoubleT());
   std::vector<InsecureCredential> saved = {
       CreateInsecureCredential(kUsername),
       CreateInsecureCredential(kUsername2)};
@@ -188,9 +184,8 @@
 }
 
 TEST_F(PostSaveCompromisedHelperTest, FixedLast_BulkCheckDoneLongAgo) {
-  prefs()->SetDouble(
-      kLastTimePasswordCheckCompleted,
-      (base::Time::Now() - base::TimeDelta::FromDays(5)).ToDoubleT());
+  prefs()->SetDouble(kLastTimePasswordCheckCompleted,
+                     (base::Time::Now() - base::Days(5)).ToDoubleT());
   std::vector<InsecureCredential> saved = {CreateInsecureCredential(kUsername)};
   PostSaveCompromisedHelper helper({saved}, kUsername);
   base::MockCallback<PostSaveCompromisedHelper::BubbleCallback> callback;
@@ -204,9 +199,8 @@
 }
 
 TEST_F(PostSaveCompromisedHelperTest, FixedLast_BulkCheckDoneRecently) {
-  prefs()->SetDouble(
-      kLastTimePasswordCheckCompleted,
-      (base::Time::Now() - base::TimeDelta::FromMinutes(1)).ToDoubleT());
+  prefs()->SetDouble(kLastTimePasswordCheckCompleted,
+                     (base::Time::Now() - base::Minutes(1)).ToDoubleT());
   std::vector<InsecureCredential> saved = {CreateInsecureCredential(kUsername)};
   PostSaveCompromisedHelper helper({saved}, kUsername);
   base::MockCallback<PostSaveCompromisedHelper::BubbleCallback> callback;
@@ -224,9 +218,8 @@
   feature_list.InitWithFeatureState(features::kMutingCompromisedCredentials,
                                     true);
 
-  prefs()->SetDouble(
-      kLastTimePasswordCheckCompleted,
-      (base::Time::Now() - base::TimeDelta::FromMinutes(1)).ToDoubleT());
+  prefs()->SetDouble(kLastTimePasswordCheckCompleted,
+                     (base::Time::Now() - base::Minutes(1)).ToDoubleT());
   std::vector<InsecureCredential> saved = {CreateInsecureCredential(
       kUsername, PasswordForm::Store::kProfileStore, IsMuted(true))};
   PostSaveCompromisedHelper helper({saved}, kUsername);
@@ -245,9 +238,8 @@
   feature_list.InitWithFeatureState(features::kMutingCompromisedCredentials,
                                     true);
 
-  prefs()->SetDouble(
-      kLastTimePasswordCheckCompleted,
-      (base::Time::Now() - base::TimeDelta::FromMinutes(1)).ToDoubleT());
+  prefs()->SetDouble(kLastTimePasswordCheckCompleted,
+                     (base::Time::Now() - base::Minutes(1)).ToDoubleT());
   std::vector<InsecureCredential> saved = {CreateInsecureCredential(kUsername)};
   PostSaveCompromisedHelper helper({saved}, kUsername);
   base::MockCallback<PostSaveCompromisedHelper::BubbleCallback> callback;
@@ -289,9 +281,8 @@
 
 TEST_F(PostSaveCompromisedHelperWithTwoStoreTest,
        CompromisedSiteInAccountStore_ItemStayed) {
-  prefs()->SetDouble(
-      kLastTimePasswordCheckCompleted,
-      (base::Time::Now() - base::TimeDelta::FromMinutes(1)).ToDoubleT());
+  prefs()->SetDouble(kLastTimePasswordCheckCompleted,
+                     (base::Time::Now() - base::Minutes(1)).ToDoubleT());
   InsecureCredential profile_store_compromised_credential =
       CreateInsecureCredential(kUsername, PasswordForm::Store::kProfileStore);
   InsecureCredential account_store_compromised_credential =
diff --git a/components/password_manager/core/browser/well_known_change_password_state.h b/components/password_manager/core/browser/well_known_change_password_state.h
index 4fae0f4..df36862e 100644
--- a/components/password_manager/core/browser/well_known_change_password_state.h
+++ b/components/password_manager/core/browser/well_known_change_password_state.h
@@ -37,8 +37,7 @@
   // Time to wait for the callback from AffiliationService before finishing
   // processing. A callback signals the prefetch action was completed regardless
   // if the response arrived or not.
-  static constexpr base::TimeDelta kPrefetchTimeout =
-      base::TimeDelta::FromSeconds(2);
+  static constexpr base::TimeDelta kPrefetchTimeout = base::Seconds(2);
 
   explicit WellKnownChangePasswordState(
       password_manager::WellKnownChangePasswordStateDelegate* delegate);
diff --git a/components/password_manager/core/browser/well_known_change_password_state_unittest.cc b/components/password_manager/core/browser/well_known_change_password_state_unittest.cc
index 7a3e4456..aefe621 100644
--- a/components/password_manager/core/browser/well_known_change_password_state_unittest.cc
+++ b/components/password_manager/core/browser/well_known_change_password_state_unittest.cc
@@ -117,7 +117,7 @@
                 network::CreateURLResponseHead(status), "");
           },
           status, &test_url_loader_factory_),
-      base::TimeDelta::FromMilliseconds(delay));
+      base::Milliseconds(delay));
 }
 
 void WellKnownChangePasswordStateTest::RespondeToChangePasswordRequest(
@@ -128,7 +128,7 @@
       base::BindOnce(
           &WellKnownChangePasswordState::SetChangePasswordResponseCode,
           base::Unretained(&state_), status),
-      base::TimeDelta::FromMilliseconds(delay));
+      base::Milliseconds(delay));
 }
 
 TEST_P(WellKnownChangePasswordStateTest, Support_Ok) {
@@ -200,7 +200,7 @@
   // FastForwardBy makes sure the prefech timeout is not reached.
   const int64_t ms_to_forward =
       std::max(params.change_password_delay, params.not_exist_delay) + 1;
-  FastForwardBy(base::TimeDelta::FromMilliseconds(ms_to_forward));
+  FastForwardBy(base::Milliseconds(ms_to_forward));
 }
 
 TEST_P(WellKnownChangePasswordStateTest, TimeoutTriggersOnProcessingFinished) {
@@ -214,7 +214,7 @@
   RespondeToNonExistingRequest(net::HTTP_NOT_FOUND, params.not_exist_delay);
   const int64_t ms_to_forward =
       std::max(params.change_password_delay, params.not_exist_delay) + 1;
-  FastForwardBy(base::TimeDelta::FromMilliseconds(ms_to_forward));
+  FastForwardBy(base::Milliseconds(ms_to_forward));
 
   EXPECT_CALL(*delegate(), OnProcessingFinished(false));
   FastForwardBy(WellKnownChangePasswordState::kPrefetchTimeout);
@@ -249,7 +249,7 @@
   RespondeToNonExistingRequest(net::HTTP_NOT_FOUND, params.not_exist_delay);
   const int64_t ms_to_forward =
       std::max(params.change_password_delay, params.not_exist_delay) + 1;
-  FastForwardBy(base::TimeDelta::FromMilliseconds(ms_to_forward));
+  FastForwardBy(base::Milliseconds(ms_to_forward));
 
   EXPECT_CALL(*delegate(), OnProcessingFinished(false));
   static_cast<AffiliationFetcherDelegate*>(affiliation_service.get())
diff --git a/components/password_manager/ios/password_manager_java_script_feature.mm b/components/password_manager/ios/password_manager_java_script_feature.mm
index 6b2f5e61..521b2cf 100644
--- a/components/password_manager/ios/password_manager_java_script_feature.mm
+++ b/components/password_manager/ios/password_manager_java_script_feature.mm
@@ -122,10 +122,9 @@
     base::OnceCallback<void(NSString*)> callback) {
   DCHECK(frame->IsMainFrame());
   DCHECK(!callback.is_null());
-  CallJavaScriptFunction(
-      frame, "passwords.findPasswordForms", {},
-      CreateStringCallback(std::move(callback)),
-      base::TimeDelta::FromSeconds(kJavaScriptExecutionTimeoutInSeconds));
+  CallJavaScriptFunction(frame, "passwords.findPasswordForms", {},
+                         CreateStringCallback(std::move(callback)),
+                         base::Seconds(kJavaScriptExecutionTimeoutInSeconds));
 }
 
 void PasswordManagerJavaScriptFeature::ExtractForm(
@@ -136,10 +135,9 @@
   DCHECK(!callback.is_null());
   std::vector<base::Value> parameters;
   parameters.emplace_back(FormRendererIdToJsParameter(form_identifier));
-  CallJavaScriptFunction(
-      frame, "passwords.getPasswordFormDataAsString", parameters,
-      CreateStringCallback(std::move(callback)),
-      base::TimeDelta::FromSeconds(kJavaScriptExecutionTimeoutInSeconds));
+  CallJavaScriptFunction(frame, "passwords.getPasswordFormDataAsString",
+                         parameters, CreateStringCallback(std::move(callback)),
+                         base::Seconds(kJavaScriptExecutionTimeoutInSeconds));
 }
 
 void PasswordManagerJavaScriptFeature::FillPasswordForm(
@@ -181,10 +179,9 @@
   parameters.push_back(std::move(*form_value));
   parameters.emplace_back(std::move(username));
   parameters.emplace_back(std::move(password));
-  CallJavaScriptFunction(
-      frame, "passwords.fillPasswordForm", parameters,
-      CreateBoolCallback(std::move(callback)),
-      base::TimeDelta::FromSeconds(kJavaScriptExecutionTimeoutInSeconds));
+  CallJavaScriptFunction(frame, "passwords.fillPasswordForm", parameters,
+                         CreateBoolCallback(std::move(callback)),
+                         base::Seconds(kJavaScriptExecutionTimeoutInSeconds));
 }
 
 void PasswordManagerJavaScriptFeature::FillPasswordForm(
@@ -204,10 +201,10 @@
       FieldRendererIdToJsParameter(confirm_password_identifier));
   parameters.push_back(
       base::Value(base::SysNSStringToUTF8(generated_password)));
-  CallJavaScriptFunction(
-      frame, "passwords.fillPasswordFormWithGeneratedPassword", parameters,
-      CreateBoolCallback(std::move(callback)),
-      base::TimeDelta::FromSeconds(kJavaScriptExecutionTimeoutInSeconds));
+  CallJavaScriptFunction(frame,
+                         "passwords.fillPasswordFormWithGeneratedPassword",
+                         parameters, CreateBoolCallback(std::move(callback)),
+                         base::Seconds(kJavaScriptExecutionTimeoutInSeconds));
 }
 
 }  // namespace password_manager
diff --git a/components/payments/content/payment_method_manifest_table_unittest.cc b/components/payments/content/payment_method_manifest_table_unittest.cc
index 6832a3f..31ed25fa 100644
--- a/components/payments/content/payment_method_manifest_table_unittest.cc
+++ b/components/payments/content/payment_method_manifest_table_unittest.cc
@@ -298,8 +298,8 @@
                                           "relying-party.example")));
 
   table->ClearSecurePaymentConfirmationInstruments(
-      base::Time::Now() - base::TimeDelta::FromMinutes(1),
-      base::Time::Now() + base::TimeDelta::FromMinutes(1));
+      base::Time::Now() - base::Minutes(1),
+      base::Time::Now() + base::Minutes(1));
 
   std::vector<std::vector<uint8_t>> credential_ids;
   credential_ids.push_back(CreateCredentialId(/*first_byte=*/0));
@@ -322,7 +322,7 @@
                                           "relying-party.example")));
 
   table->ClearSecurePaymentConfirmationInstruments(
-      base::Time(), base::Time::Now() - base::TimeDelta::FromMinutes(1));
+      base::Time(), base::Time::Now() - base::Minutes(1));
 
   std::vector<std::vector<uint8_t>> credential_ids;
   credential_ids.push_back(CreateCredentialId(/*first_byte=*/0));
diff --git a/components/payments/content/secure_payment_confirmation_app.cc b/components/payments/content/secure_payment_confirmation_app.cc
index 0b50538..239801e 100644
--- a/components/payments/content/secure_payment_confirmation_app.cc
+++ b/components/payments/content/secure_payment_confirmation_app.cc
@@ -85,7 +85,7 @@
   options->relying_party_id = effective_relying_party_identity_;
   options->timeout = request_->timeout.has_value()
                          ? request_->timeout.value()
-                         : base::TimeDelta::FromMinutes(kDefaultTimeoutMinutes);
+                         : base::Minutes(kDefaultTimeoutMinutes);
   options->user_verification = device::UserVerificationRequirement::kRequired;
   std::vector<device::PublicKeyCredentialDescriptor> credentials;
 
diff --git a/components/payments/core/can_make_payment_query.cc b/components/payments/core/can_make_payment_query.cc
index fc537da..2aaaa8b9 100644
--- a/components/payments/core/can_make_payment_query.cc
+++ b/components/payments/core/can_make_payment_query.cc
@@ -28,7 +28,7 @@
   const auto& it = queries_.find(id);
   if (it == queries_.end()) {
     auto timer = std::make_unique<base::OneShotTimer>();
-    timer->Start(FROM_HERE, base::TimeDelta::FromMinutes(30),
+    timer->Start(FROM_HERE, base::Minutes(30),
                  base::BindOnce(&CanMakePaymentQuery::ExpireQuotaForFrameOrigin,
                                 weak_ptr_factory_.GetWeakPtr(), id));
     timers_.insert(std::make_pair(id, std::move(timer)));
diff --git a/components/payments/core/journey_logger.cc b/components/payments/core/journey_logger.cc
index 07a1a33..8ed3204 100644
--- a/components/payments/core/journey_logger.cc
+++ b/components/payments/core/journey_logger.cc
@@ -75,9 +75,9 @@
 // since the payment handler window times out after 5 minutes.
 void RecordTimeToCheckoutUmaHistograms(const std::string name,
                                        const base::TimeDelta time_to_checkout) {
-  UmaHistogramCustomTimes(
-      name, time_to_checkout, base::TimeDelta::FromMilliseconds(1) /* min */,
-      base::TimeDelta::FromMinutes(5) /* max */, 100 /*bucket count*/);
+  UmaHistogramCustomTimes(name, time_to_checkout,
+                          base::Milliseconds(1) /* min */,
+                          base::Minutes(5) /* max */, 100 /*bucket count*/);
 }
 
 }  // namespace
diff --git a/components/performance_manager/decorators/page_load_tracker_decorator.h b/components/performance_manager/decorators/page_load_tracker_decorator.h
index cb36747..9be2710ac 100644
--- a/components/performance_manager/decorators/page_load_tracker_decorator.h
+++ b/components/performance_manager/decorators/page_load_tracker_decorator.h
@@ -65,13 +65,12 @@
   // kWaitingForNavigation to kWaitingForNavigationTimedOut if the page change
   // hasn't been committed.
   static constexpr base::TimeDelta kWaitingForNavigationTimeout =
-      base::TimeDelta::FromSeconds(5);
+      base::Seconds(5);
 
   // The amount of time a page has to be idle post-loading in order for it to be
   // considered loaded and idle. This is used in UpdateLoadIdleState
   // transitions.
-  static constexpr base::TimeDelta kLoadedAndIdlingTimeout =
-      base::TimeDelta::FromSeconds(1);
+  static constexpr base::TimeDelta kLoadedAndIdlingTimeout = base::Seconds(1);
 
   // The maximum amount of time post-DidStopLoading a page can be waiting for
   // an idle state to occur before the page is simply considered loaded anyways.
@@ -83,8 +82,7 @@
   // (see SessionRestore.ForegroundTabFirstLoaded). This ensures that all tabs
   // eventually transition to loaded, even if they keep the main task queue
   // busy, or continue loading content.
-  static constexpr base::TimeDelta kWaitingForIdleTimeout =
-      base::TimeDelta::FromMinutes(1);
+  static constexpr base::TimeDelta kWaitingForIdleTimeout = base::Minutes(1);
 
   // (Un)registers the various node observer flavors of this object with the
   // graph. These are invoked by OnPassedToGraph and OnTakenFromGraph, but
diff --git a/components/performance_manager/decorators/process_metrics_decorator.cc b/components/performance_manager/decorators/process_metrics_decorator.cc
index dccb10a..25e5e81a 100644
--- a/components/performance_manager/decorators/process_metrics_decorator.cc
+++ b/components/performance_manager/decorators/process_metrics_decorator.cc
@@ -21,14 +21,12 @@
 namespace {
 
 // The default process metrics refresh interval.
-constexpr base::TimeDelta kDefaultRefreshTimerPeriod =
-    base::TimeDelta::FromMinutes(2);
+constexpr base::TimeDelta kDefaultRefreshTimerPeriod = base::Minutes(2);
 
 #if !defined(OS_ANDROID)
 // The fast process metrics refresh interval. Used in certain situations, see
 // the comment in ProcessMetricsDecorator::StartTimer for more details.
-constexpr base::TimeDelta kFastRefreshTimerPeriod =
-    base::TimeDelta::FromSeconds(20);
+constexpr base::TimeDelta kFastRefreshTimerPeriod = base::Seconds(20);
 #endif
 
 }  // namespace
diff --git a/components/performance_manager/decorators/site_data_recorder.cc b/components/performance_manager/decorators/site_data_recorder.cc
index 91a9d7c..24a6564 100644
--- a/components/performance_manager/decorators/site_data_recorder.cc
+++ b/components/performance_manager/decorators/site_data_recorder.cc
@@ -19,13 +19,13 @@
 // use some of these features without this being an attempt to communicate
 // with the user (e.g. the page is just really finishing to load).
 constexpr base::TimeDelta kTitleOrFaviconChangePostLoadGracePeriod =
-    base::TimeDelta::FromSeconds(20);
+    base::Seconds(20);
 
 // The period of time during which audio usage gets ignored after a page gets
 // backgrounded. It's necessary because there might be a delay between a media
 // request gets initiated and the time the audio actually starts.
 constexpr base::TimeDelta kFeatureUsagePostBackgroundGracePeriod =
-    base::TimeDelta::FromSeconds(10);
+    base::Seconds(10);
 
 // Provides SiteData machinery access to some internals of a PageNodeImpl.
 class SiteDataAccess {
diff --git a/components/performance_manager/decorators/site_data_recorder_unittest.cc b/components/performance_manager/decorators/site_data_recorder_unittest.cc
index c8f32eb5..d32e35a 100644
--- a/components/performance_manager/decorators/site_data_recorder_unittest.cc
+++ b/components/performance_manager/decorators/site_data_recorder_unittest.cc
@@ -31,9 +31,9 @@
 namespace performance_manager {
 
 constexpr base::TimeDelta kTitleOrFaviconChangePostLoadGracePeriod =
-    base::TimeDelta::FromSeconds(20);
+    base::Seconds(20);
 constexpr base::TimeDelta kFeatureUsagePostBackgroundGracePeriod =
-    base::TimeDelta::FromSeconds(10);
+    base::Seconds(10);
 
 // A mock implementation of a SiteDataWriter.
 class LenientMockDataWriter : public SiteDataWriter {
diff --git a/components/performance_manager/features.cc b/components/performance_manager/features.cc
index a2cad7a6..963edba 100644
--- a/components/performance_manager/features.cc
+++ b/components/performance_manager/features.cc
@@ -41,10 +41,10 @@
 TabLoadingFrameNavigationThrottlesParams
 TabLoadingFrameNavigationThrottlesParams::GetParams() {
   TabLoadingFrameNavigationThrottlesParams params;
-  params.minimum_throttle_timeout = base::TimeDelta::FromMilliseconds(
-      kMinimumThrottleTimeoutMilliseconds.Get());
-  params.maximum_throttle_timeout = base::TimeDelta::FromMilliseconds(
-      kMaximumThrottleTimeoutMilliseconds.Get());
+  params.minimum_throttle_timeout =
+      base::Milliseconds(kMinimumThrottleTimeoutMilliseconds.Get());
+  params.maximum_throttle_timeout =
+      base::Milliseconds(kMaximumThrottleTimeoutMilliseconds.Get());
   params.fcp_multiple = kFCPMultiple.Get();
   return params;
 }
@@ -102,7 +102,7 @@
   BFCachePerformanceManagerPolicyParams params;
   params.flush_on_moderate_pressure_ =
       BFCachePerformanceManagerPolicyParams::kFlushOnModeratePressure.Get();
-  params.delay_to_flush_background_tab_ = base::TimeDelta::FromSeconds(
+  params.delay_to_flush_background_tab_ = base::Seconds(
       BFCachePerformanceManagerPolicyParams::kDelayToFlushBackgroundTabInSeconds
           .Get());
   return params;
diff --git a/components/performance_manager/graph/frame_node_impl_unittest.cc b/components/performance_manager/graph/frame_node_impl_unittest.cc
index 8aec21bb..03a7878d 100644
--- a/components/performance_manager/graph/frame_node_impl_unittest.cc
+++ b/components/performance_manager/graph/frame_node_impl_unittest.cc
@@ -469,7 +469,7 @@
   MockObserver obs;
   graph()->AddFrameNodeObserver(&obs);
 
-  base::TimeDelta fcp = base::TimeDelta::FromMilliseconds(1364);
+  base::TimeDelta fcp = base::Milliseconds(1364);
   EXPECT_CALL(obs, OnFirstContentfulPaint(frame_node.get(), fcp));
   frame_node->OnFirstContentfulPaint(fcp);
 
diff --git a/components/performance_manager/graph/page_node_impl_unittest.cc b/components/performance_manager/graph/page_node_impl_unittest.cc
index d4895c5..2d2d066 100644
--- a/components/performance_manager/graph/page_node_impl_unittest.cc
+++ b/components/performance_manager/graph/page_node_impl_unittest.cc
@@ -92,13 +92,13 @@
 
   mock_graph.page->SetIsVisible(true);
   EXPECT_TRUE(mock_graph.page->is_visible());
-  AdvanceClock(base::TimeDelta::FromSeconds(42));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(42),
+  AdvanceClock(base::Seconds(42));
+  EXPECT_EQ(base::Seconds(42),
             mock_graph.page->TimeSinceLastVisibilityChange());
 
   mock_graph.page->SetIsVisible(false);
-  AdvanceClock(base::TimeDelta::FromSeconds(23));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(23),
+  AdvanceClock(base::Seconds(23));
+  EXPECT_EQ(base::Seconds(23),
             mock_graph.page->TimeSinceLastVisibilityChange());
   EXPECT_FALSE(mock_graph.page->is_visible());
 }
@@ -115,9 +115,8 @@
   EXPECT_EQ(url, mock_graph.page->main_frame_url());
   EXPECT_EQ(10u, mock_graph.page->navigation_id());
   EXPECT_EQ(kHtmlMimeType, mock_graph.page->contents_mime_type());
-  AdvanceClock(base::TimeDelta::FromSeconds(11));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(11),
-            mock_graph.page->TimeSinceLastNavigation());
+  AdvanceClock(base::Seconds(11));
+  EXPECT_EQ(base::Seconds(11), mock_graph.page->TimeSinceLastNavigation());
 
   // 2nd navigation.
   url = GURL("http://www.example.org/bobcat");
@@ -126,9 +125,8 @@
   EXPECT_EQ(url, mock_graph.page->main_frame_url());
   EXPECT_EQ(20u, mock_graph.page->navigation_id());
   EXPECT_EQ(kHtmlMimeType, mock_graph.page->contents_mime_type());
-  AdvanceClock(base::TimeDelta::FromSeconds(17));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(17),
-            mock_graph.page->TimeSinceLastNavigation());
+  AdvanceClock(base::Seconds(17));
+  EXPECT_EQ(base::Seconds(17), mock_graph.page->TimeSinceLastNavigation());
 
   // Test a same-document navigation.
   url = GURL("http://www.example.org/bobcat#fun");
@@ -137,9 +135,8 @@
   EXPECT_EQ(url, mock_graph.page->main_frame_url());
   EXPECT_EQ(30u, mock_graph.page->navigation_id());
   EXPECT_EQ(kHtmlMimeType, mock_graph.page->contents_mime_type());
-  AdvanceClock(base::TimeDelta::FromSeconds(17));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(17),
-            mock_graph.page->TimeSinceLastNavigation());
+  AdvanceClock(base::Seconds(17));
+  EXPECT_EQ(base::Seconds(17), mock_graph.page->TimeSinceLastNavigation());
 
   // Test a navigation to a page with a different MIME type.
   url = GURL("http://www.example.org/document.pdf");
@@ -148,9 +145,8 @@
   EXPECT_EQ(url, mock_graph.page->main_frame_url());
   EXPECT_EQ(40u, mock_graph.page->navigation_id());
   EXPECT_EQ(kPdfMimeType, mock_graph.page->contents_mime_type());
-  AdvanceClock(base::TimeDelta::FromSeconds(17));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(17),
-            mock_graph.page->TimeSinceLastNavigation());
+  AdvanceClock(base::Seconds(17));
+  EXPECT_EQ(base::Seconds(17), mock_graph.page->TimeSinceLastNavigation());
 }
 
 TEST_F(PageNodeImplTest, BrowserContextID) {
diff --git a/components/performance_manager/graph/policies/bfcache_policy_unittest.cc b/components/performance_manager/graph/policies/bfcache_policy_unittest.cc
index c1cce77..a63f4933 100644
--- a/components/performance_manager/graph/policies/bfcache_policy_unittest.cc
+++ b/components/performance_manager/graph/policies/bfcache_policy_unittest.cc
@@ -22,7 +22,7 @@
  public:
   LenientMockBFCachePolicy() {
     flush_on_moderate_pressure_ = true;
-    delay_to_flush_background_tab_ = base::TimeDelta::FromSeconds(5);
+    delay_to_flush_background_tab_ = base::Seconds(5);
   }
   ~LenientMockBFCachePolicy() override = default;
   LenientMockBFCachePolicy(const LenientMockBFCachePolicy& other) = delete;
diff --git a/components/performance_manager/graph/policies/tab_loading_frame_navigation_policy_unittest.cc b/components/performance_manager/graph/policies/tab_loading_frame_navigation_policy_unittest.cc
index 106027b..04de175d 100644
--- a/components/performance_manager/graph/policies/tab_loading_frame_navigation_policy_unittest.cc
+++ b/components/performance_manager/graph/policies/tab_loading_frame_navigation_policy_unittest.cc
@@ -419,7 +419,7 @@
   // Simulate an FCP that would cause a minimum timeout to be applied.
   base::TimeDelta fcp = policy()->GetMinTimeoutForTesting() /
                             policy()->GetFCPMultipleForTesting() -
-                        base::TimeDelta::FromMilliseconds(100);
+                        base::Milliseconds(100);
   ASSERT_LT(base::TimeDelta(), fcp);
 
   // Advance time by that amount and simulate FCP. No callbacks should fire.
@@ -441,8 +441,8 @@
   ExpectThrottledPageCount(1);
 
   // Simulate an FCP that will cause a timeout update.
-  base::TimeDelta fcp = policy()->GetMinTimeoutForTesting() +
-                        base::TimeDelta::FromMilliseconds(100);
+  base::TimeDelta fcp =
+      policy()->GetMinTimeoutForTesting() + base::Milliseconds(100);
 
   // Advance time by that amount and simulate FCP. No callbacks should fire.
   task_environment()->FastForwardBy(fcp);
@@ -467,7 +467,7 @@
   // maximum.
   base::TimeDelta fcp = policy()->GetMaxTimeoutForTesting() /
                             policy()->GetFCPMultipleForTesting() +
-                        base::TimeDelta::FromMilliseconds(100);
+                        base::Milliseconds(100);
 
   // Advance time by that amount and simulate FCP. No callbacks should fire.
   task_environment()->FastForwardBy(fcp);
@@ -488,9 +488,8 @@
 
   // Make sure the parsing works.
   auto params = features::TabLoadingFrameNavigationThrottlesParams::GetParams();
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(2500),
-            params.minimum_throttle_timeout);
-  EXPECT_EQ(base::TimeDelta::FromSeconds(25), params.maximum_throttle_timeout);
+  EXPECT_EQ(base::Milliseconds(2500), params.minimum_throttle_timeout);
+  EXPECT_EQ(base::Seconds(25), params.maximum_throttle_timeout);
   EXPECT_EQ(3.14, params.fcp_multiple);
 
   // And make sure the plumbing works.
@@ -505,20 +504,18 @@
   // An FCP of 300ms would yield 942ms, or 642ms of additional timeout. This is
   // less than timeout_min_, so we should get that.
   EXPECT_EQ(params.minimum_throttle_timeout,
-            policy->CalculateTimeoutFromFCPForTesting(
-                base::TimeDelta::FromMilliseconds(300)));
+            policy->CalculateTimeoutFromFCPForTesting(base::Milliseconds(300)));
 
   // An FCP of 1000ms would yield 3140ms, or 2140ms of additional timeout. This
   // is also less than timeout_min_, so we should get that.
-  EXPECT_EQ(params.minimum_throttle_timeout,
-            policy->CalculateTimeoutFromFCPForTesting(
-                base::TimeDelta::FromMilliseconds(1000)));
+  EXPECT_EQ(
+      params.minimum_throttle_timeout,
+      policy->CalculateTimeoutFromFCPForTesting(base::Milliseconds(1000)));
 
   // An FCP of 2000ms would yield 6280ms, or 4280ms of additional timeout. We
   // should get that.
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(4280),
-            policy->CalculateTimeoutFromFCPForTesting(
-                base::TimeDelta::FromMilliseconds(2000)));
+  EXPECT_EQ(base::Milliseconds(4280), policy->CalculateTimeoutFromFCPForTesting(
+                                          base::Milliseconds(2000)));
 }
 
 }  // namespace policies
diff --git a/components/performance_manager/graph/process_node_impl_unittest.cc b/components/performance_manager/graph/process_node_impl_unittest.cc
index a3593ec..70e0c40 100644
--- a/components/performance_manager/graph/process_node_impl_unittest.cc
+++ b/components/performance_manager/graph/process_node_impl_unittest.cc
@@ -83,7 +83,7 @@
 
   // Resurrect again and verify the launch time and measurements
   // are cleared.
-  const base::Time launch2_time = launch_time + base::TimeDelta::FromSeconds(1);
+  const base::Time launch2_time = launch_time + base::Seconds(1);
   process_node->SetProcess(self.Duplicate(), launch2_time);
 
   EXPECT_EQ(launch2_time, process_node->launch_time());
diff --git a/components/performance_manager/persistence/site_data/site_data_cache_impl_unittest.cc b/components/performance_manager/persistence/site_data/site_data_cache_impl_unittest.cc
index b0782f1..8722272 100644
--- a/components/performance_manager/persistence/site_data/site_data_cache_impl_unittest.cc
+++ b/components/performance_manager/persistence/site_data/site_data_cache_impl_unittest.cc
@@ -23,7 +23,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kDelay = base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kDelay = base::Minutes(1);
 
 class MockSiteCache : public testing::NoopSiteDataStore {
  public:
diff --git a/components/performance_manager/persistence/site_data/site_data_impl.cc b/components/performance_manager/persistence/site_data/site_data_impl.cc
index bc80eb4..441dd297 100644
--- a/components/performance_manager/persistence/site_data/site_data_impl.cc
+++ b/components/performance_manager/persistence/site_data/site_data_impl.cc
@@ -43,8 +43,7 @@
 
 // Observations windows have a default value of 2 hours, 95% of backgrounded
 // tabs don't use any of these features in this time window.
-static constexpr base::TimeDelta kObservationWindowLength =
-    base::TimeDelta::FromHours(2);
+static constexpr base::TimeDelta kObservationWindowLength = base::Hours(2);
 
 }  // namespace
 
@@ -312,7 +311,7 @@
             feature_name),
         InternalRepresentationToTimeDelta(
             feature_proto->observation_duration()),
-        base::TimeDelta::FromSeconds(1), base::TimeDelta::FromDays(1), 100);
+        base::Seconds(1), base::Days(1), 100);
   }
 
   feature_proto->Clear();
diff --git a/components/performance_manager/persistence/site_data/site_data_impl.h b/components/performance_manager/persistence/site_data/site_data_impl.h
index bfd412d..e03b8e9 100644
--- a/components/performance_manager/persistence/site_data/site_data_impl.h
+++ b/components/performance_manager/persistence/site_data/site_data_impl.h
@@ -185,7 +185,7 @@
   // used to store TimeDelta values in the |SiteDataProto| protobuf.
   static base::TimeDelta InternalRepresentationToTimeDelta(
       ::google::protobuf::int64 value) {
-    return base::TimeDelta::FromSeconds(value);
+    return base::Seconds(value);
   }
   static int64_t TimeDeltaToInternalRepresentation(base::TimeDelta delta) {
     return delta.InSeconds();
diff --git a/components/performance_manager/persistence/site_data/site_data_impl_unittest.cc b/components/performance_manager/persistence/site_data/site_data_impl_unittest.cc
index bc819f82..d472168 100644
--- a/components/performance_manager/persistence/site_data/site_data_impl_unittest.cc
+++ b/components/performance_manager/persistence/site_data/site_data_impl_unittest.cc
@@ -148,7 +148,7 @@
   // Advance the clock by a time lower than the minimum observation time for
   // the audio feature.
   AdvanceClock(SiteDataImpl::GetFeatureObservationWindowLengthForTesting() -
-               base::TimeDelta::FromSeconds(1));
+               base::Seconds(1));
 
   // The audio feature usage is still unknown as the observation window hasn't
   // expired.
@@ -203,20 +203,20 @@
   base::TimeDelta last_loaded_time =
       local_site_data->last_loaded_time_for_testing();
 
-  AdvanceClock(base::TimeDelta::FromSeconds(1));
+  AdvanceClock(base::Seconds(1));
 
   // Loading the site a second time shouldn't change the last loaded time.
   local_site_data2->NotifySiteLoaded();
   EXPECT_EQ(last_loaded_time, local_site_data2->last_loaded_time_for_testing());
 
-  AdvanceClock(base::TimeDelta::FromSeconds(1));
+  AdvanceClock(base::Seconds(1));
 
   // Unloading the site shouldn't update the last loaded time as there's still
   // a loaded instance.
   local_site_data2->NotifySiteUnloaded(TabVisibility::kForeground);
   EXPECT_EQ(last_loaded_time, local_site_data->last_loaded_time_for_testing());
 
-  AdvanceClock(base::TimeDelta::FromSeconds(1));
+  AdvanceClock(base::Seconds(1));
 
   local_site_data->NotifySiteUnloaded(TabVisibility::kForeground);
   EXPECT_NE(last_loaded_time, local_site_data->last_loaded_time_for_testing());
@@ -231,7 +231,7 @@
   local_site_data->NotifyUsesAudioInBackground();
 
   AdvanceClock(SiteDataImpl::GetFeatureObservationWindowLengthForTesting() -
-               base::TimeDelta::FromSeconds(1));
+               base::Seconds(1));
   EXPECT_EQ(SiteFeatureUsage::kSiteFeatureInUse,
             local_site_data->UsesAudioInBackground());
   EXPECT_EQ(SiteFeatureUsage::kSiteFeatureUsageUnknown,
@@ -252,7 +252,7 @@
 
   // Advancing the clock shouldn't affect the observation duration for this
   // feature.
-  AdvanceClock(base::TimeDelta::FromSeconds(1));
+  AdvanceClock(base::Seconds(1));
   EXPECT_EQ(observation_duration_before_unload,
             local_site_data->FeatureObservationDuration(
                 local_site_data->site_characteristics_for_testing()
@@ -263,7 +263,7 @@
   local_site_data->NotifySiteLoaded();
   local_site_data->NotifyLoadedSiteBackgrounded();
 
-  AdvanceClock(base::TimeDelta::FromSeconds(1));
+  AdvanceClock(base::Seconds(1));
 
   EXPECT_EQ(SiteFeatureUsage::kSiteFeatureInUse,
             local_site_data->UsesAudioInBackground());
@@ -279,7 +279,7 @@
   auto local_site_data =
       GetDataImpl(kDummyOrigin, destroy_delegate_.GetWeakPtr(), &data_store_);
 
-  const base::TimeDelta kInterval = base::TimeDelta::FromSeconds(1);
+  const base::TimeDelta kInterval = base::Seconds(1);
   const auto kIntervalInternalRepresentation =
       TestSiteDataImpl::TimeDeltaToInternalRepresentation(kInterval);
   const auto kZeroIntervalInternalRepresentation =
@@ -374,18 +374,16 @@
 
   // Unload the site and save the last loaded time to make sure the
   // initialization doesn't overwrite it.
-  AdvanceClock(base::TimeDelta::FromSeconds(1));
+  AdvanceClock(base::Seconds(1));
   local_site_data->NotifySiteUnloaded(TabVisibility::kBackground);
-  AdvanceClock(base::TimeDelta::FromSeconds(1));
+  AdvanceClock(base::Seconds(1));
   auto last_loaded = local_site_data->last_loaded_time_for_testing();
 
   // Add a couple of performance samples.
   local_site_data->NotifyLoadTimePerformanceMeasurement(
-      base::TimeDelta::FromMicroseconds(100),
-      base::TimeDelta::FromMicroseconds(1000), 2000u);
+      base::Microseconds(100), base::Microseconds(1000), 2000u);
   local_site_data->NotifyLoadTimePerformanceMeasurement(
-      base::TimeDelta::FromMicroseconds(200),
-      base::TimeDelta::FromMicroseconds(500), 1000u);
+      base::Microseconds(200), base::Microseconds(500), 1000u);
 
   // Make sure the local performance samples are averaged as expected.
   EXPECT_EQ(2U, local_site_data->load_duration().num_datums());
@@ -535,7 +533,7 @@
   EXPECT_EQ(0U, local_site_data->loaded_tabs_in_background_count_for_testing());
 
   local_site_data->NotifySiteLoaded();
-  AdvanceClock(base::TimeDelta::FromSeconds(1));
+  AdvanceClock(base::Seconds(1));
   local_site_data->NotifyLoadedSiteBackgrounded();
 
   auto background_session_begin =
@@ -544,7 +542,7 @@
 
   EXPECT_EQ(1U, local_site_data->loaded_tabs_in_background_count_for_testing());
 
-  AdvanceClock(base::TimeDelta::FromSeconds(1));
+  AdvanceClock(base::Seconds(1));
 
   // Add a second instance of this object, this one pretending to be in
   // foreground.
@@ -555,7 +553,7 @@
   EXPECT_EQ(background_session_begin,
             local_site_data->background_session_begin_for_testing());
 
-  AdvanceClock(base::TimeDelta::FromSeconds(1));
+  AdvanceClock(base::Seconds(1));
 
   local_site_data->NotifyLoadedSiteForegrounded();
   EXPECT_EQ(0U, local_site_data->loaded_tabs_in_background_count_for_testing());
@@ -570,7 +568,7 @@
 
   EXPECT_EQ(expected_observation_duration, observed_observation_duration);
 
-  AdvanceClock(base::TimeDelta::FromSeconds(1));
+  AdvanceClock(base::Seconds(1));
 
   local_site_data->NotifyLoadedSiteBackgrounded();
   EXPECT_EQ(1U, local_site_data->loaded_tabs_in_background_count_for_testing());
@@ -633,9 +631,9 @@
   local_site_data_ref->NotifySiteLoaded();
   local_site_data_ref->NotifyLoadedSiteBackgrounded();
 
-  AdvanceClock(base::TimeDelta::FromSeconds(15));
+  AdvanceClock(base::Seconds(15));
   local_site_data->FlushStateToProto();
-  AdvanceClock(base::TimeDelta::FromSeconds(15));
+  AdvanceClock(base::Seconds(15));
 
   local_site_data->NotifyUsesAudioInBackground();
   local_site_data_ref->NotifyUsesAudioInBackground();
diff --git a/components/performance_manager/persistence/site_data/site_data_reader_unittest.cc b/components/performance_manager/persistence/site_data/site_data_reader_unittest.cc
index febc8c7..db98774 100644
--- a/components/performance_manager/persistence/site_data/site_data_reader_unittest.cc
+++ b/components/performance_manager/persistence/site_data/site_data_reader_unittest.cc
@@ -127,7 +127,7 @@
 
   // Advance the clock by a large amount of time, enough for the unused features
   // observation windows to expire.
-  AdvanceClock(base::TimeDelta::FromDays(31));
+  AdvanceClock(base::Days(31));
 
   EXPECT_EQ(performance_manager::SiteFeatureUsage::kSiteFeatureNotInUse,
             reader_->UpdatesFaviconInBackground());
diff --git a/components/performance_manager/persistence/site_data/site_data_writer_unittest.cc b/components/performance_manager/persistence/site_data/site_data_writer_unittest.cc
index 937fdad..92be588 100644
--- a/components/performance_manager/persistence/site_data/site_data_writer_unittest.cc
+++ b/components/performance_manager/persistence/site_data/site_data_writer_unittest.cc
@@ -97,9 +97,8 @@
   EXPECT_EQ(SiteFeatureUsage::kSiteFeatureInUse,
             test_impl_->UsesAudioInBackground());
 
-  writer_->NotifyLoadTimePerformanceMeasurement(
-      base::TimeDelta::FromMicroseconds(202),
-      base::TimeDelta::FromMicroseconds(101), 1005);
+  writer_->NotifyLoadTimePerformanceMeasurement(base::Microseconds(202),
+                                                base::Microseconds(101), 1005);
   EXPECT_EQ(1u, test_impl_->load_duration().num_datums());
   EXPECT_EQ(202.0, test_impl_->load_duration().value());
   EXPECT_EQ(1u, test_impl_->cpu_usage_estimate().num_datums());
diff --git a/components/performance_manager/public/v8_memory/v8_detailed_memory.h b/components/performance_manager/public/v8_memory/v8_detailed_memory.h
index 49721d19..141c9c6 100644
--- a/components/performance_manager/public/v8_memory/v8_detailed_memory.h
+++ b/components/performance_manager/public/v8_memory/v8_detailed_memory.h
@@ -100,7 +100,7 @@
 //       // Creating a V8DetailedMemoryRequest with the |graph| parameter
 //       // automatically starts measurements.
 //       request_ = std::make_unique<V8DetailedMemoryRequest>(
-//           base::TimeDelta::FromSeconds(30), graph);
+//           base::Seconds(30), graph);
 //       observer_ = std::make_unique<Observer>();
 //       request_->AddObserver(observer_.get());
 //     }
diff --git a/components/performance_manager/public/v8_memory/v8_detailed_memory_any_seq.h b/components/performance_manager/public/v8_memory/v8_detailed_memory_any_seq.h
index 8659376f..29084d6 100644
--- a/components/performance_manager/public/v8_memory/v8_detailed_memory_any_seq.h
+++ b/components/performance_manager/public/v8_memory/v8_detailed_memory_any_seq.h
@@ -90,7 +90,7 @@
 //       // Creating a V8DetailedMemoryRequest with the |graph| parameter
 //       // automatically starts measurements.
 //       request_ = std::make_unique<V8DetailedMemoryRequestAnySeq>(
-//           base::TimeDelta::FromMinutes(2));
+//           base::Minutes(2));
 //       observer_ = std::make_unique<Observer>();
 //       request_->AddObserver(observer_.get());
 //     }
diff --git a/components/performance_manager/v8_memory/v8_detailed_memory_unittest.cc b/components/performance_manager/v8_memory/v8_detailed_memory_unittest.cc
index cee694c..73880cf 100644
--- a/components/performance_manager/v8_memory/v8_detailed_memory_unittest.cc
+++ b/components/performance_manager/v8_memory/v8_detailed_memory_unittest.cc
@@ -104,8 +104,7 @@
   ~LifetimeTestObject() = default;
 };
 
-constexpr base::TimeDelta kMinTimeBetweenRequests =
-    base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kMinTimeBetweenRequests = base::Seconds(30);
 
 }  // namespace
 
@@ -320,7 +319,7 @@
 
     auto data = NewPerProcessV8MemoryUsage(1);
     data->isolates[0]->shared_bytes_used = 1ULL;
-    ExpectQueryAndDelayReply(&mock_reporter, base::TimeDelta::FromSeconds(10),
+    ExpectQueryAndDelayReply(&mock_reporter, base::Seconds(10),
                              std::move(data));
   }
 
@@ -333,11 +332,11 @@
       }));
 
   // Verify that the request is sent but the reply is not yet received.
-  task_env().FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_env().FastForwardBy(base::Seconds(5));
   Mock::VerifyAndClearExpectations(&mock_reporter);
 
   doomed_request.reset();
-  task_env().FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_env().FastForwardBy(base::Seconds(5));
 
   // Create a request that is deleted from within its own callback and make
   // sure nothing explodes.
@@ -365,7 +364,7 @@
   {
     auto data = NewPerProcessV8MemoryUsage(1);
     data->isolates[0]->shared_bytes_used = 3ULL;
-    ExpectQueryAndDelayReply(&mock_reporter, base::TimeDelta::FromSeconds(10),
+    ExpectQueryAndDelayReply(&mock_reporter, base::Seconds(10),
                              std::move(data));
   }
   auto lifetime_test = std::make_unique<LifetimeTestObject>();
@@ -382,13 +381,13 @@
           std::move(lifetime_test)));
 
   // Verify that requests are sent but reply is not yet received.
-  task_env().FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_env().FastForwardBy(base::Seconds(5));
   Mock::VerifyAndClearExpectations(&mock_reporter);
   ASSERT_TRUE(weak_lifetime_test);
 
   process.reset();
 
-  task_env().FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_env().FastForwardBy(base::Seconds(5));
   EXPECT_FALSE(weak_lifetime_test);
 }
 
@@ -406,7 +405,7 @@
 
     auto data = NewPerProcessV8MemoryUsage(1);
     data->isolates[0]->shared_bytes_used = 1ULL;
-    ExpectQueryAndDelayReply(&mock_reporter, base::TimeDelta::FromSeconds(10),
+    ExpectQueryAndDelayReply(&mock_reporter, base::Seconds(10),
                              std::move(data));
   }
 
@@ -424,13 +423,13 @@
           std::move(lifetime_test)));
 
   // Verify that requests are sent but reply is not yet received.
-  task_env().FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_env().FastForwardBy(base::Seconds(5));
   Mock::VerifyAndClearExpectations(&mock_reporter);
   ASSERT_TRUE(weak_lifetime_test);
 
   internal::DestroyV8DetailedMemoryDecoratorForTesting(graph());
 
-  task_env().FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_env().FastForwardBy(base::Seconds(5));
   EXPECT_FALSE(weak_lifetime_test);
 }
 
@@ -695,8 +694,7 @@
 }
 
 TEST_P(V8DetailedMemoryDecoratorModeTest, LazyRequests) {
-  constexpr base::TimeDelta kLazyRequestLength =
-      base::TimeDelta::FromSeconds(30);
+  constexpr base::TimeDelta kLazyRequestLength = base::Seconds(30);
   V8DetailedMemoryRequest lazy_request(kLazyRequestLength,
                                        MeasurementMode::kLazy, graph());
 
@@ -711,13 +709,12 @@
       content::PROCESS_TYPE_RENDERER,
       RenderProcessHostProxy::CreateForTesting(kTestProcessID));
 
-  task_env().FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_env().FastForwardBy(base::Seconds(1));
   Mock::VerifyAndClearExpectations(&reporter);
 
   // If a lazy request takes too long to respond it should be upgraded to a
   // bounded request if one is in the queue.
-  constexpr base::TimeDelta kLongBoundedRequestLength =
-      base::TimeDelta::FromSeconds(45);
+  constexpr base::TimeDelta kLongBoundedRequestLength = base::Seconds(45);
   V8DetailedMemoryRequest long_bounded_request(kLongBoundedRequestLength,
                                                bounded_mode_, graph());
   auto* decorator = V8DetailedMemoryDecorator::GetFromGraph(graph());
@@ -732,8 +729,8 @@
     // should arrive in time to prevent upgrading the request.
     auto data = NewPerProcessV8MemoryUsage(1);
     data->isolates[0]->shared_bytes_used = 1U;
-    ExpectQueryAndDelayReply(&reporter, base::TimeDelta::FromSeconds(10),
-                             std::move(data), ExpectedMode::LAZY);
+    ExpectQueryAndDelayReply(&reporter, base::Seconds(10), std::move(data),
+                             ExpectedMode::LAZY);
   }
 
   // Wait long enough for the upgraded request to be sent, to verify that it
@@ -741,8 +738,7 @@
   task_env().FastForwardBy(kLongBoundedRequestLength);
   Mock::VerifyAndClearExpectations(&reporter);
 
-  constexpr base::TimeDelta kUpgradeRequestLength =
-      base::TimeDelta::FromSeconds(40);
+  constexpr base::TimeDelta kUpgradeRequestLength = base::Seconds(40);
   V8DetailedMemoryRequest bounded_request_upgrade(kUpgradeRequestLength,
                                                   bounded_mode_, graph());
   ASSERT_TRUE(decorator->GetNextRequest());
@@ -757,8 +753,8 @@
     // so a second upgraded request should be sent.
     auto data = NewPerProcessV8MemoryUsage(1);
     data->isolates[0]->shared_bytes_used = 2U;
-    ExpectQueryAndDelayReply(&reporter, base::TimeDelta::FromSeconds(10),
-                             std::move(data), ExpectedMode::LAZY);
+    ExpectQueryAndDelayReply(&reporter, base::Seconds(10), std::move(data),
+                             ExpectedMode::LAZY);
 
     auto data2 = NewPerProcessV8MemoryUsage(1);
     data2->isolates[0]->shared_bytes_used = 3U;
@@ -824,7 +820,7 @@
       RenderProcessHostProxy::CreateForTesting(kTestProcessID));
   EXPECT_FALSE(V8DetailedMemoryProcessData::ForProcessNode(process.get()));
 
-  task_env().FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_env().FastForwardBy(base::Seconds(1));
   // All the following FastForwardBy calls will place the clock 1 sec after a
   // measurement is expected.
 
@@ -902,7 +898,7 @@
   EXPECT_EQ(kLongInterval,
             decorator->GetNextRequest()->min_time_between_requests());
 
-  task_env().FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_env().FastForwardBy(base::Seconds(1));
   EXPECT_EQ(5U, V8DetailedMemoryProcessData::ForProcessNode(process.get())
                     ->shared_v8_bytes_used());
 
@@ -1033,7 +1029,7 @@
 
   // Make measurements take long enough that a second request could be sent.
   constexpr base::TimeDelta kMeasurementLength(1.5 * kShortInterval);
-  constexpr base::TimeDelta kOneSecond = base::TimeDelta::FromSeconds(1);
+  constexpr base::TimeDelta kOneSecond = base::Seconds(1);
 
   auto long_memory_request =
       std::make_unique<V8DetailedMemoryRequest>(kLongInterval, graph());
@@ -1200,7 +1196,7 @@
   auto process = CreateNode<ProcessNodeImpl>(
       content::PROCESS_TYPE_RENDERER,
       RenderProcessHostProxy::CreateForTesting(kTestProcessID));
-  task_env().FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_env().FastForwardBy(base::Seconds(1));
   ASSERT_EQ(1U, V8DetailedMemoryProcessData::ForProcessNode(process.get())
                     ->shared_v8_bytes_used())
       << "First measurement didn't happen when expected";
@@ -1319,7 +1315,7 @@
       RenderProcessHostProxy::CreateForTesting(kTestProcessID));
   observer.ExpectObservationOnProcess(process.get(), 1U);
 
-  task_env().FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_env().FastForwardBy(base::Seconds(1));
 
   Mock::VerifyAndClearExpectations(&reporter);
   Mock::VerifyAndClearExpectations(&observer);
@@ -1382,7 +1378,7 @@
 
   // All the following FastForwardBy calls will place the clock 1 sec after a
   // measurement is expected.
-  task_env().FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_env().FastForwardBy(base::Seconds(1));
   testing::Mock::VerifyAndClearExpectations(&mock_reporter1);
   testing::Mock::VerifyAndClearExpectations(&mock_reporter2);
 
@@ -1434,7 +1430,7 @@
   process1_request->AddObserver(&mock_observer);
   mock_observer.ExpectObservationOnProcess(process1.get(), 4U);
 
-  task_env().FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_env().FastForwardBy(base::Seconds(1));
   testing::Mock::VerifyAndClearExpectations(&mock_reporter1);
   testing::Mock::VerifyAndClearExpectations(&mock_reporter2);
   testing::Mock::VerifyAndClearExpectations(&mock_observer);
@@ -1490,7 +1486,7 @@
 
   // All the following FastForwardBy calls will place the clock 1 sec after a
   // measurement is expected.
-  task_env().FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_env().FastForwardBy(base::Seconds(1));
   testing::Mock::VerifyAndClearExpectations(&mock_reporter);
 
   // Delay next lazy reply and expect |bounded_request| to be sent while
@@ -1716,8 +1712,7 @@
       ExpectBindReceiver(&mock_reporter1, main_process_id());
       auto data = NewPerProcessV8MemoryUsage(1);
       data->isolates[0]->shared_bytes_used = 1U;
-      ExpectQueryAndDelayReply(&mock_reporter1,
-                               base::TimeDelta::FromMilliseconds(1),
+      ExpectQueryAndDelayReply(&mock_reporter1, base::Milliseconds(1),
                                std::move(data));
     }
 
@@ -1844,7 +1839,7 @@
 
     auto data = NewPerProcessV8MemoryUsage(1);
     data->isolates[0]->shared_bytes_used = 1ULL;
-    ExpectQueryAndDelayReply(&mock_reporter, base::TimeDelta::FromSeconds(10),
+    ExpectQueryAndDelayReply(&mock_reporter, base::Seconds(10),
                              std::move(data));
   }
 
@@ -1859,11 +1854,11 @@
           }));
 
   // Verify that requests are sent but reply is not received.
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment()->FastForwardBy(base::Seconds(5));
   Mock::VerifyAndClearExpectations(&mock_reporter);
 
   doomed_request.reset();
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment()->FastForwardBy(base::Seconds(5));
 
   // Create a request that is deleted from within its own callback and make
   // sure nothing explodes.
@@ -1892,7 +1887,7 @@
   {
     auto data = NewPerProcessV8MemoryUsage(1);
     data->isolates[0]->shared_bytes_used = 3ULL;
-    ExpectQueryAndDelayReply(&mock_reporter, base::TimeDelta::FromSeconds(10),
+    ExpectQueryAndDelayReply(&mock_reporter, base::Seconds(10),
                              std::move(data));
   }
   auto lifetime_test = std::make_unique<LifetimeTestObject>();
@@ -1910,13 +1905,13 @@
           std::move(lifetime_test)));
 
   // Verify that requests are sent but reply is not yet received.
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment()->FastForwardBy(base::Seconds(5));
   Mock::VerifyAndClearExpectations(&mock_reporter);
   ASSERT_TRUE(weak_lifetime_test);
 
   content::RenderFrameHostTester::For(child_frame())->Detach();
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment()->FastForwardBy(base::Seconds(5));
   EXPECT_FALSE(weak_lifetime_test);
 }
 
@@ -1930,7 +1925,7 @@
 
     auto data = NewPerProcessV8MemoryUsage(1);
     data->isolates[0]->shared_bytes_used = 1ULL;
-    ExpectQueryAndDelayReply(&mock_reporter, base::TimeDelta::FromSeconds(10),
+    ExpectQueryAndDelayReply(&mock_reporter, base::Seconds(10),
                              std::move(data));
   }
 
@@ -1949,7 +1944,7 @@
           std::move(lifetime_test)));
 
   // Verify that requests are sent but reply is not yet received.
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment()->FastForwardBy(base::Seconds(5));
   Mock::VerifyAndClearExpectations(&mock_reporter);
   ASSERT_TRUE(weak_lifetime_test);
 
@@ -1961,7 +1956,7 @@
   PerformanceManager::CallOnGraph(FROM_HERE, run_loop.QuitClosure());
   run_loop.Run();
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment()->FastForwardBy(base::Seconds(5));
   EXPECT_FALSE(weak_lifetime_test);
 }
 
diff --git a/components/performance_manager/v8_memory/web_memory_impl_unittest.cc b/components/performance_manager/v8_memory/web_memory_impl_unittest.cc
index 5e0df59..d2639de1 100644
--- a/components/performance_manager/v8_memory/web_memory_impl_unittest.cc
+++ b/components/performance_manager/v8_memory/web_memory_impl_unittest.cc
@@ -202,19 +202,19 @@
 
     auto data = NewPerProcessV8MemoryUsage(1);
     AddIsolateMemoryUsage(frame_token, 1001u, data->isolates[0].get());
-    ExpectQueryAndDelayReply(&mock_reporter, base::TimeDelta::FromSeconds(10),
+    ExpectQueryAndDelayReply(&mock_reporter, base::Seconds(10),
                              std::move(data));
   }
 
   // Verify that requests are sent but reply is not yet received.
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment()->FastForwardBy(base::Seconds(5));
   ::testing::Mock::VerifyAndClearExpectations(&mock_reporter);
 
   // Remove the child frame, which will destroy the child process.
   content::RenderFrameHostTester::For(child_frame())->Detach();
 
   // Advance until the reply is expected to make sure nothing explodes.
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment()->FastForwardBy(base::Seconds(5));
 }
 
 TEST_F(WebMemoryImplPMTest, MeasurementDisallowed) {
diff --git a/components/permissions/contexts/geolocation_permission_context_android.cc b/components/permissions/contexts/geolocation_permission_context_android.cc
index 187ca4d8..bad41e6 100644
--- a/components/permissions/contexts/geolocation_permission_context_android.cc
+++ b/components/permissions/contexts/geolocation_permission_context_android.cc
@@ -45,8 +45,7 @@
 const char kLocationSettingsMetricNonDSESuffix[] = "NonDSE";
 
 base::Time GetTimeNow() {
-  return base::Time::Now() +
-         base::TimeDelta::FromDays(g_day_offset_for_testing);
+  return base::Time::Now() + base::Days(g_day_offset_for_testing);
 }
 
 void LogLocationSettingsMetric(
@@ -300,17 +299,17 @@
   switch (backoff_level) {
     case LocationSettingsDialogBackOff::kNoBackOff:
       backoff_level = LocationSettingsDialogBackOff::kOneWeek;
-      next_show += base::TimeDelta::FromDays(7);
+      next_show += base::Days(7);
       break;
     case LocationSettingsDialogBackOff::kOneWeek:
       backoff_level = LocationSettingsDialogBackOff::kOneMonth;
-      next_show += base::TimeDelta::FromDays(30);
+      next_show += base::Days(30);
       break;
     case LocationSettingsDialogBackOff::kOneMonth:
       backoff_level = LocationSettingsDialogBackOff::kThreeMonths;
       FALLTHROUGH;
     case LocationSettingsDialogBackOff::kThreeMonths:
-      next_show += base::TimeDelta::FromDays(90);
+      next_show += base::Days(90);
       break;
     default:
       NOTREACHED();
diff --git a/components/permissions/permission_auditing_database_unittest.cc b/components/permissions/permission_auditing_database_unittest.cc
index 07762c17..052711d 100644
--- a/components/permissions/permission_auditing_database_unittest.cc
+++ b/components/permissions/permission_auditing_database_unittest.cc
@@ -28,8 +28,7 @@
 namespace {
 
 base::Time TimeFromTimestamp(const int64_t& time) {
-  return base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(time));
+  return base::Time::FromDeltaSinceWindowsEpoch(base::Microseconds(time));
 }
 
 constexpr ContentSettingsType kTestTypes[] = {
@@ -191,21 +190,20 @@
 
 TEST_F(PermissionAuditingDatabaseTest, UsageHistoryContainsOnlyLastSessions) {
   for (const auto time : test_times_) {
-    ASSERT_TRUE(db().StorePermissionUsage(
-        {.origin = GetOrigin(kTestUrl1),
-         .type = kTestTypes[0],
-         .usage_start = time,
-         .usage_end = time + base::TimeDelta::FromMicroseconds(1),
-         .had_user_activation = false,
-         .was_foreground = false,
-         .had_focus = false}));
+    ASSERT_TRUE(
+        db().StorePermissionUsage({.origin = GetOrigin(kTestUrl1),
+                                   .type = kTestTypes[0],
+                                   .usage_start = time,
+                                   .usage_end = time + base::Microseconds(1),
+                                   .had_user_activation = false,
+                                   .was_foreground = false,
+                                   .had_focus = false}));
   }
   EXPECT_EQ(GetPermissionUsageHistory(kTestTypes[0], kTestUrl1).size(),
             base::size(test_times_));
   for (size_t i = 0; i < base::size(test_times_); ++i) {
-    EXPECT_EQ(GetPermissionUsageHistory(
-                  kTestTypes[0], kTestUrl1,
-                  test_times_[i] + base::TimeDelta::FromMicroseconds(2))
+    EXPECT_EQ(GetPermissionUsageHistory(kTestTypes[0], kTestUrl1,
+                                        test_times_[i] + base::Microseconds(2))
                   .size(),
               base::size(test_times_) - i - 1);
   }
@@ -232,7 +230,7 @@
     ASSERT_TRUE(db().StorePermissionUsage(
         SessionLike(kTestTypes[0], url.c_str(), session)));
     const auto& end_time = session.usage_end;
-    auto tomorrow = end_time + base::TimeDelta::FromDays(1);
+    auto tomorrow = end_time + base::Days(1);
     ASSERT_TRUE(GetLastUsageTime(kTestTypes[0], url.c_str()) == end_time);
     ASSERT_TRUE(UpdateEndTime(kTestTypes[0], url.c_str(), session.usage_start,
                               tomorrow));
diff --git a/components/permissions/permission_auditing_service.cc b/components/permissions/permission_auditing_service.cc
index 3f8120b..b377404 100644
--- a/components/permissions/permission_auditing_service.cc
+++ b/components/permissions/permission_auditing_service.cc
@@ -13,11 +13,10 @@
 
 // Specifies the permissions usage session lifetime. Each session older
 // than this value is to be deleted.
-constexpr base::TimeDelta kUsageSessionMaxAge = base::TimeDelta::FromDays(90);
+constexpr base::TimeDelta kUsageSessionMaxAge = base::Days(90);
 
 // Specifies the time period between the regular sessions deletions.
-constexpr base::TimeDelta kUsageSessionCullingInterval =
-    base::TimeDelta::FromMinutes(30);
+constexpr base::TimeDelta kUsageSessionCullingInterval = base::Minutes(30);
 
 }  // namespace
 
diff --git a/components/permissions/permission_auditing_service_unittest.cc b/components/permissions/permission_auditing_service_unittest.cc
index 067bf92..5f8ea913 100644
--- a/components/permissions/permission_auditing_service_unittest.cc
+++ b/components/permissions/permission_auditing_service_unittest.cc
@@ -29,10 +29,9 @@
 
 namespace {
 
-constexpr base::Time kTestTimes[] = {
-    base::Time() + base::TimeDelta::FromDays(1),
-    base::Time() + base::TimeDelta::FromDays(2),
-    base::Time() + base::TimeDelta::FromDays(3)};
+constexpr base::Time kTestTimes[] = {base::Time() + base::Days(1),
+                                     base::Time() + base::Days(2),
+                                     base::Time() + base::Days(3)};
 
 constexpr ContentSettingsType kTestTypes[] = {
     ContentSettingsType::MEDIASTREAM_MIC,
diff --git a/components/permissions/permission_decision_auto_blocker.cc b/components/permissions/permission_decision_auto_blocker.cc
index 227f104d..614d46c 100644
--- a/components/permissions/permission_decision_auto_blocker.cc
+++ b/components/permissions/permission_decision_auto_blocker.cc
@@ -118,7 +118,7 @@
       permission_dict->FindKeyOfType(key, base::Value::Type::DOUBLE);
   if (found && base::FeatureList::IsEnabled(feature)) {
     return base::Time::FromDeltaSinceWindowsEpoch(
-        base::TimeDelta::FromMicroseconds(found->GetDouble()));
+        base::Microseconds(found->GetDouble()));
   }
   return base::Time();
 }
@@ -191,14 +191,14 @@
 
   if (IsUnderEmbargo(permission_dict, features::kBlockPromptsIfDismissedOften,
                      kPermissionDismissalEmbargoKey, current_time,
-                     base::TimeDelta::FromDays(g_dismissal_embargo_days))) {
+                     base::Days(g_dismissal_embargo_days))) {
     return PermissionResult(CONTENT_SETTING_BLOCK,
                             PermissionStatusSource::MULTIPLE_DISMISSALS);
   }
 
   if (IsUnderEmbargo(permission_dict, features::kBlockPromptsIfIgnoredOften,
                      kPermissionIgnoreEmbargoKey, current_time,
-                     base::TimeDelta::FromDays(g_ignore_embargo_days))) {
+                     base::Days(g_ignore_embargo_days))) {
     return PermissionResult(CONTENT_SETTING_BLOCK,
                             PermissionStatusSource::MULTIPLE_IGNORES);
   }
diff --git a/components/permissions/permission_decision_auto_blocker_unittest.cc b/components/permissions/permission_decision_auto_blocker_unittest.cc
index 6a804cf..cc76127 100644
--- a/components/permissions/permission_decision_auto_blocker_unittest.cc
+++ b/components/permissions/permission_decision_auto_blocker_unittest.cc
@@ -426,7 +426,7 @@
   EXPECT_EQ(1UL, origins.count(url2));
 
   // Expire the remaining embargo and confirm the origin is removed
-  clock()->Advance(base::TimeDelta::FromDays(8));
+  clock()->Advance(base::Days(8));
   origins = autoblocker()->GetEmbargoedOrigins(content_types);
   EXPECT_EQ(0UL, origins.size());
 }
@@ -462,7 +462,7 @@
   EXPECT_EQ(PermissionStatusSource::UNSPECIFIED, result.source);
 
   // Confirm embargo status during the embargo period.
-  clock()->Advance(base::TimeDelta::FromDays(5));
+  clock()->Advance(base::Days(5));
   result =
       autoblocker()->GetEmbargoResult(url, ContentSettingsType::GEOLOCATION);
   EXPECT_EQ(CONTENT_SETTING_BLOCK, result.content_setting);
@@ -471,14 +471,14 @@
   // Check embargo is lifted on expiry day. A small offset after the exact
   // embargo expiration date has been added to account for any precision errors
   // when removing the date stored as a double from the permission dictionary.
-  clock()->Advance(base::TimeDelta::FromHours(3 * 24 + 1));
+  clock()->Advance(base::Hours(3 * 24 + 1));
   result =
       autoblocker()->GetEmbargoResult(url, ContentSettingsType::GEOLOCATION);
   EXPECT_EQ(CONTENT_SETTING_ASK, result.content_setting);
   EXPECT_EQ(PermissionStatusSource::UNSPECIFIED, result.source);
 
   // Check embargo is lifted well after the expiry day.
-  clock()->Advance(base::TimeDelta::FromDays(1));
+  clock()->Advance(base::Days(1));
   result =
       autoblocker()->GetEmbargoResult(url, ContentSettingsType::GEOLOCATION);
   EXPECT_EQ(CONTENT_SETTING_ASK, result.content_setting);
@@ -491,7 +491,7 @@
       url, ContentSettingsType::NOTIFICATIONS, false));
   EXPECT_TRUE(autoblocker()->RecordDismissAndEmbargo(
       url, ContentSettingsType::NOTIFICATIONS, false));
-  clock()->Advance(base::TimeDelta::FromDays(1));
+  clock()->Advance(base::Days(1));
   result =
       autoblocker()->GetEmbargoResult(url, ContentSettingsType::NOTIFICATIONS);
   EXPECT_EQ(CONTENT_SETTING_BLOCK, result.content_setting);
@@ -513,7 +513,7 @@
   // aliasing the current time by passing it through a double. This allows us
   // to directly compare the test time and times retrieved from storage.
   base::Time test_time = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(static_cast<double>(
+      base::Microseconds(static_cast<double>(
           base::Time::Now().ToDeltaSinceWindowsEpoch().InMicroseconds())));
   clock()->SetNow(test_time);
 
@@ -543,14 +543,14 @@
 
   // Ensure moving clock while within embargo period does not affect embargo
   // start time.
-  clock()->Advance(base::TimeDelta::FromDays(5));
+  clock()->Advance(base::Days(5));
   embargo_start_time =
       autoblocker()->GetEmbargoStartTime(url, ContentSettingsType::GEOLOCATION);
   EXPECT_EQ(test_time, embargo_start_time);
 
   // Move clock beyond embaro (plus a small offset for potential precision
   // errors) and confirm start time is unaffected but embargo is suspended.
-  clock()->Advance(base::TimeDelta::FromHours(3 * 24 + 1));
+  clock()->Advance(base::Hours(3 * 24 + 1));
   embargo_start_time =
       autoblocker()->GetEmbargoStartTime(url, ContentSettingsType::GEOLOCATION);
   EXPECT_EQ(test_time, embargo_start_time);
@@ -560,9 +560,9 @@
   EXPECT_EQ(PermissionStatusSource::UNSPECIFIED, result.source);
 
   // Advance time, reinstate embargo and confirm that time is updated.
-  test_time += base::TimeDelta::FromDays(9);
+  test_time += base::Days(9);
   test_time = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(static_cast<double>(
+      base::Microseconds(static_cast<double>(
           test_time.ToDeltaSinceWindowsEpoch().InMicroseconds())));
   clock()->SetNow(test_time);
 
@@ -573,9 +573,9 @@
   EXPECT_EQ(test_time, embargo_start_time);
 
   // Advance time to expire dismiss embargo and create new embargo for ignoring.
-  test_time += base::TimeDelta::FromDays(7);
+  test_time += base::Days(7);
   test_time = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(static_cast<double>(
+      base::Microseconds(static_cast<double>(
           test_time.ToDeltaSinceWindowsEpoch().InMicroseconds())));
   clock()->SetNow(test_time);
 
@@ -595,9 +595,9 @@
 
   // Advance time, reinstate the dismiss embargo via a single action, and
   // confirm that time is updated.
-  test_time += base::TimeDelta::FromDays(1);
+  test_time += base::Days(1);
   test_time = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(static_cast<double>(
+      base::Microseconds(static_cast<double>(
           test_time.ToDeltaSinceWindowsEpoch().InMicroseconds())));
   clock()->SetNow(test_time);
 
@@ -648,7 +648,7 @@
 
   // Accelerate time forward, check that the embargo status is lifted and the
   // request won't be automatically blocked.
-  clock()->Advance(base::TimeDelta::FromDays(8));
+  clock()->Advance(base::Days(8));
   result =
       autoblocker()->GetEmbargoResult(url, ContentSettingsType::GEOLOCATION);
   EXPECT_EQ(CONTENT_SETTING_ASK, result.content_setting);
@@ -664,7 +664,7 @@
 
   // Accelerate time again, check embargo is lifted and another permission
   // request is let through.
-  clock()->Advance(base::TimeDelta::FromDays(8));
+  clock()->Advance(base::Days(8));
   result =
       autoblocker()->GetEmbargoResult(url, ContentSettingsType::GEOLOCATION);
   EXPECT_EQ(CONTENT_SETTING_ASK, result.content_setting);
@@ -709,7 +709,7 @@
 
   // Accelerate time forward, check that the embargo status is lifted and the
   // request won't be automatically blocked.
-  clock()->Advance(base::TimeDelta::FromDays(8));
+  clock()->Advance(base::Days(8));
   result =
       autoblocker()->GetEmbargoResult(url, ContentSettingsType::MIDI_SYSEX);
   EXPECT_EQ(CONTENT_SETTING_ASK, result.content_setting);
@@ -725,7 +725,7 @@
 
   // Accelerate time again, check embargo is lifted and another permission
   // request is let through.
-  clock()->Advance(base::TimeDelta::FromDays(8));
+  clock()->Advance(base::Days(8));
   result =
       autoblocker()->GetEmbargoResult(url, ContentSettingsType::MIDI_SYSEX);
   EXPECT_EQ(CONTENT_SETTING_ASK, result.content_setting);
diff --git a/components/permissions/permission_request_manager.cc b/components/permissions/permission_request_manager.cc
index 2c2195c..f61a196 100644
--- a/components/permissions/permission_request_manager.cc
+++ b/components/permissions/permission_request_manager.cc
@@ -93,8 +93,7 @@
     return true;
   }
 
-  static constexpr base::TimeDelta kQuietChipIgnoreTimeout =
-      base::TimeDelta::FromSecondsD(8.5);
+  static constexpr base::TimeDelta kQuietChipIgnoreTimeout = base::Seconds(8.5);
   return base::Time::Now() - request_display_start_time.value() <
          kQuietChipIgnoreTimeout;
 }
diff --git a/components/permissions/permission_request_manager_unittest.cc b/components/permissions/permission_request_manager_unittest.cc
index 2b26bdf..72c8597a 100644
--- a/components/permissions/permission_request_manager_unittest.cc
+++ b/components/permissions/permission_request_manager_unittest.cc
@@ -1190,7 +1190,7 @@
 
   // Less then 8.5 seconds.
   manager_->set_current_request_first_display_time_for_testing(
-      base::Time::Now() - base::TimeDelta::FromMilliseconds(5000));
+      base::Time::Now() - base::Milliseconds(5000));
 
   std::unique_ptr<MockPermissionRequest> request_geolocation =
       CreateAndAddRequest(RequestType::kGeolocation, /*should_be_seen=*/true,
@@ -1225,7 +1225,7 @@
 
   // More then 8.5 seconds.
   manager_->set_current_request_first_display_time_for_testing(
-      base::Time::Now() - base::TimeDelta::FromMilliseconds(9000));
+      base::Time::Now() - base::Milliseconds(9000));
 
   std::unique_ptr<MockPermissionRequest> request_geolocation =
       CreateAndAddRequest(RequestType::kGeolocation, /*should_be_seen=*/true,
@@ -1268,7 +1268,7 @@
                           1);
   // Less then 8.5 seconds.
   manager_->set_current_request_first_display_time_for_testing(
-      base::Time::Now() - base::TimeDelta::FromMilliseconds(5000));
+      base::Time::Now() - base::Milliseconds(5000));
 
   std::unique_ptr<MockPermissionRequest> request_geolocation =
       CreateAndAddRequest(RequestType::kGeolocation, /*should_be_seen=*/true,
@@ -1318,7 +1318,7 @@
                           1);
   // Less then 8.5 seconds.
   manager_->set_current_request_first_display_time_for_testing(
-      base::Time::Now() - base::TimeDelta::FromMilliseconds(5000));
+      base::Time::Now() - base::Milliseconds(5000));
 
   // Geolocation is not shown because Camera has higher priority.
   std::unique_ptr<MockPermissionRequest> request_geolocation =
@@ -1373,7 +1373,7 @@
                           1);
   // Less then 8.5 seconds.
   manager_->set_current_request_first_display_time_for_testing(
-      base::Time::Now() - base::TimeDelta::FromMilliseconds(5000));
+      base::Time::Now() - base::Milliseconds(5000));
 
   // Geolocation is not shown because Camera has higher priority.
   std::unique_ptr<MockPermissionRequest> request_geolocation =
@@ -1436,7 +1436,7 @@
                           1);
   // Less then 8.5 seconds.
   manager_->set_current_request_first_display_time_for_testing(
-      base::Time::Now() - base::TimeDelta::FromMilliseconds(5000));
+      base::Time::Now() - base::Milliseconds(5000));
 
   // Geolocation is not shown because Camera has higher priority.
   std::unique_ptr<MockPermissionRequest> request_geolocation =
diff --git a/components/permissions/permission_uma_util.cc b/components/permissions/permission_uma_util.cc
index 304b6cd..759552cb 100644
--- a/components/permissions/permission_uma_util.cc
+++ b/components/permissions/permission_uma_util.cc
@@ -839,10 +839,10 @@
 void PermissionUmaUtil::RecordTimeElapsedBetweenGrantAndUse(
     ContentSettingsType type,
     base::TimeDelta delta) {
-  base::UmaHistogramCustomCounts(
-      "Permissions.Usage.ElapsedTimeSinceGrant." +
-          PermissionUtil::GetPermissionString(type),
-      delta.InSeconds(), 1, base::TimeDelta::FromDays(365).InSeconds(), 100);
+  base::UmaHistogramCustomCounts("Permissions.Usage.ElapsedTimeSinceGrant." +
+                                     PermissionUtil::GetPermissionString(type),
+                                 delta.InSeconds(), 1,
+                                 base::Days(365).InSeconds(), 100);
 }
 
 void PermissionUmaUtil::RecordTimeElapsedBetweenGrantAndRevoke(
@@ -851,7 +851,7 @@
   base::UmaHistogramCustomCounts(
       "Permissions.Revocation.ElapsedTimeSinceGrant." +
           PermissionUtil::GetPermissionString(type),
-      delta.InSeconds(), 1, base::TimeDelta::FromDays(365).InSeconds(), 100);
+      delta.InSeconds(), 1, base::Days(365).InSeconds(), 100);
 }
 
 // static
diff --git a/components/permissions/prediction_service/prediction_service.cc b/components/permissions/prediction_service/prediction_service.cc
index 5d4f6611..5d4d301 100644
--- a/components/permissions/prediction_service/prediction_service.cc
+++ b/components/permissions/prediction_service/prediction_service.cc
@@ -28,7 +28,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kURLLookupTimeout = base::TimeDelta::FromSeconds(2);
+constexpr base::TimeDelta kURLLookupTimeout = base::Seconds(2);
 
 constexpr float kRoundToMultiplesOf = 0.1f;
 
diff --git a/components/permissions/prediction_service/prediction_service_unittest.cc b/components/permissions/prediction_service/prediction_service_unittest.cc
index e697335..0b296d5 100644
--- a/components/permissions/prediction_service/prediction_service_unittest.cc
+++ b/components/permissions/prediction_service/prediction_service_unittest.cc
@@ -243,7 +243,7 @@
           FROM_HERE,
           base::BindOnce(&PredictionServiceTest::Respond,
                          base::Unretained(this), url, 0, err_code),
-          base::TimeDelta::FromSecondsD(delay_in_seconds));
+          base::Seconds(delay_in_seconds));
       return;
     }
 
diff --git a/components/policy/core/browser/webui/machine_level_user_cloud_policy_status_provider.cc b/components/policy/core/browser/webui/machine_level_user_cloud_policy_status_provider.cc
index 3e2b8074e6..b597e58 100644
--- a/components/policy/core/browser/webui/machine_level_user_cloud_policy_status_provider.cc
+++ b/components/policy/core/browser/webui/machine_level_user_cloud_policy_status_provider.cc
@@ -39,7 +39,7 @@
       "refreshInterval",
       ui::TimeFormat::Simple(
           ui::TimeFormat::FORMAT_DURATION, ui::TimeFormat::LENGTH_SHORT,
-          base::TimeDelta::FromMilliseconds(
+          base::Milliseconds(
               refresh_scheduler
                   ? refresh_scheduler->GetActualRefreshDelay()
                   : CloudPolicyRefreshScheduler::kDefaultRefreshDelayMs)));
diff --git a/components/policy/core/browser/webui/policy_status_provider.cc b/components/policy/core/browser/webui/policy_status_provider.cc
index 2d8fba7..30b795e7 100644
--- a/components/policy/core/browser/webui/policy_status_provider.cc
+++ b/components/policy/core/browser/webui/policy_status_provider.cc
@@ -85,7 +85,7 @@
   if (policy && policy->has_gaia_id())
     dict->SetString("gaiaId", policy->gaia_id());
 
-  base::TimeDelta refresh_interval = base::TimeDelta::FromMilliseconds(
+  base::TimeDelta refresh_interval = base::Milliseconds(
       refresh_scheduler ? refresh_scheduler->GetActualRefreshDelay()
                         : CloudPolicyRefreshScheduler::kDefaultRefreshDelayMs);
 
diff --git a/components/policy/core/common/cloud/cloud_policy_client_unittest.cc b/components/policy/core/common/cloud/cloud_policy_client_unittest.cc
index c937259..ba088198 100644
--- a/components/policy/core/common/cloud/cloud_policy_client_unittest.cc
+++ b/components/policy/core/common/cloud/cloud_policy_client_unittest.cc
@@ -991,8 +991,7 @@
   RegisterClient();
 
   const int kPublicKeyVersion = 42;
-  const base::Time kOldTimestamp(base::Time::UnixEpoch() +
-                                 base::TimeDelta::FromDays(20));
+  const base::Time kOldTimestamp(base::Time::UnixEpoch() + base::Days(20));
 
   em::DeviceManagementRequest policy_request = GetPolicyRequest();
   em::PolicyFetchRequest* policy_fetch_request =
diff --git a/components/policy/core/common/cloud/cloud_policy_refresh_scheduler.cc b/components/policy/core/common/cloud/cloud_policy_refresh_scheduler.cc
index d56ccef..c7e32f0 100644
--- a/components/policy/core/common/cloud/cloud_policy_refresh_scheduler.cc
+++ b/components/policy/core/common/cloud/cloud_policy_refresh_scheduler.cc
@@ -217,7 +217,7 @@
     return;
 
   const base::TimeDelta refresh_delay =
-      base::TimeDelta::FromMilliseconds(GetActualRefreshDelay());
+      base::Milliseconds(GetActualRefreshDelay());
   const base::TimeDelta system_delta =
       std::max(last_refresh_ + refresh_delay - base::Time::NowFromSystemTime(),
                base::TimeDelta());
@@ -368,7 +368,7 @@
 }
 
 void CloudPolicyRefreshScheduler::RefreshAfter(int delta_ms) {
-  const base::TimeDelta delta(base::TimeDelta::FromMilliseconds(delta_ms));
+  const base::TimeDelta delta(base::Milliseconds(delta_ms));
 
   // Schedule the callback, calculating the delay based on both, system time
   // and TimeTicks, whatever comes up to become earlier update. This is done to
@@ -385,7 +385,7 @@
   // Unless requesting an immediate refresh, add a delay to the scheduled policy
   // refresh in order to spread out server load.
   if (!delay.is_zero())
-    delay += base::TimeDelta::FromMilliseconds(refresh_delay_salt_ms_);
+    delay += base::Milliseconds(refresh_delay_salt_ms_);
 
   refresh_callback_.Reset(base::BindOnce(
       &CloudPolicyRefreshScheduler::PerformRefresh, base::Unretained(this)));
diff --git a/components/policy/core/common/cloud/cloud_policy_refresh_scheduler_unittest.cc b/components/policy/core/common/cloud/cloud_policy_refresh_scheduler_unittest.cc
index 64682c771..a96d01c 100644
--- a/components/policy/core/common/cloud/cloud_policy_refresh_scheduler_unittest.cc
+++ b/components/policy/core/common/cloud/cloud_policy_refresh_scheduler_unittest.cc
@@ -52,8 +52,7 @@
     // value back to get a millisecond-clamped time stamp for the checks below.
     store_.policy_ = std::make_unique<em::PolicyData>();
     base::Time now = base::Time::NowFromSystemTime();
-    base::TimeDelta initial_age =
-        base::TimeDelta::FromMinutes(kInitialCacheAgeMinutes);
+    base::TimeDelta initial_age = base::Minutes(kInitialCacheAgeMinutes);
     store_.policy_->set_timestamp((now - initial_age).ToJavaTime());
     last_update_ = base::Time::FromJavaTime(store_.policy_->timestamp());
     last_update_ticks_ = base::TimeTicks::Now() +
@@ -84,7 +83,7 @@
     // out to be earlier than the next refresh time point, calculated from the
     // ticks count clock.
     scheduler->set_last_refresh_for_testing(base::Time::NowFromSystemTime() -
-                                            base::TimeDelta::FromDays(1));
+                                            base::Days(1));
   }
 
   base::TimeDelta GetLastDelay() const {
@@ -95,8 +94,7 @@
 
   void CheckTiming(CloudPolicyRefreshScheduler* const scheduler,
                    int64_t expected_delay_ms) const {
-    CheckTimingWithAge(scheduler,
-                       base::TimeDelta::FromMilliseconds(expected_delay_ms),
+    CheckTimingWithAge(scheduler, base::Milliseconds(expected_delay_ms),
                        base::TimeDelta());
   }
 
@@ -112,8 +110,8 @@
     base::TimeDelta offset_since_refresh_plus_salt = offset_from_last_refresh;
     // The salt is only applied for non-immediate scheduled refreshes.
     if (!offset_from_last_refresh.is_zero()) {
-      offset_since_refresh_plus_salt += base::TimeDelta::FromMilliseconds(
-          scheduler->GetSaltDelayForTesting());
+      offset_since_refresh_plus_salt +=
+          base::Milliseconds(scheduler->GetSaltDelayForTesting());
     }
     // |last_update_| was updated and then a refresh was scheduled at time S,
     // so |last_update_| is a bit before that.
@@ -161,12 +159,11 @@
     // The mobile platforms take the cache age into account for the initial
     // fetch. Usually the cache age is ignored for the initial refresh, but on
     // mobile it's used to restrain from refreshing on every startup.
-    base::TimeDelta rate = base::TimeDelta::FromMilliseconds(
+    base::TimeDelta rate = base::Milliseconds(
         with_invalidations
             ? CloudPolicyRefreshScheduler::kWithInvalidationsRefreshDelayMs
             : kPolicyRefreshRate);
-    CheckTimingWithAge(scheduler, rate,
-                       base::TimeDelta::FromMinutes(kInitialCacheAgeMinutes));
+    CheckTimingWithAge(scheduler, rate, base::Minutes(kInitialCacheAgeMinutes));
 #else
     // Other platforms refresh immediately.
     EXPECT_EQ(base::TimeDelta(), GetLastDelay());
diff --git a/components/policy/core/common/cloud/cloud_policy_validator_unittest.cc b/components/policy/core/common/cloud/cloud_policy_validator_unittest.cc
index e556eae..574bb5f 100644
--- a/components/policy/core/common/cloud/cloud_policy_validator_unittest.cc
+++ b/components/policy/core/common/cloud/cloud_policy_validator_unittest.cc
@@ -263,7 +263,7 @@
 
 TEST_F(CloudPolicyValidatorTest,
        SuccessfulRunValidationWithTimestampFromTheFuture) {
-  base::Time timestamp(timestamp_ + base::TimeDelta::FromHours(3));
+  base::Time timestamp(timestamp_ + base::Hours(3));
   policy_.policy_data().set_timestamp(
       (timestamp - base::Time::UnixEpoch()).InMilliseconds());
   Validate(CheckStatus(CloudPolicyValidatorBase::VALIDATION_OK));
@@ -297,7 +297,7 @@
 }
 
 TEST_F(CloudPolicyValidatorTest, ErrorOldTimestamp) {
-  base::Time timestamp(timestamp_ - base::TimeDelta::FromMinutes(5));
+  base::Time timestamp(timestamp_ - base::Minutes(5));
   policy_.policy_data().set_timestamp(timestamp.ToJavaTime());
   Validate(CheckStatus(CloudPolicyValidatorBase::VALIDATION_BAD_TIMESTAMP));
 }
diff --git a/components/policy/core/common/cloud/component_cloud_policy_store_unittest.cc b/components/policy/core/common/cloud/component_cloud_policy_store_unittest.cc
index 9cb0b24a..08befef 100644
--- a/components/policy/core/common/cloud/component_cloud_policy_store_unittest.cc
+++ b/components/policy/core/common/cloud/component_cloud_policy_store_unittest.cc
@@ -199,8 +199,7 @@
                             CreatePolicyData().get(), TestPolicyHash(),
                             kTestPolicy));
 
-  const int64_t kPastTimestamp =
-      (base::Time() + base::TimeDelta::FromDays(1)).ToJavaTime();
+  const int64_t kPastTimestamp = (base::Time() + base::Days(1)).ToJavaTime();
   CHECK_GT(PolicyBuilder::kFakeTimestamp, kPastTimestamp);
   builder_.policy_data().set_timestamp(kPastTimestamp);
   std::string error;
diff --git a/components/policy/core/common/cloud/component_cloud_policy_updater_unittest.cc b/components/policy/core/common/cloud/component_cloud_policy_updater_unittest.cc
index 9f1843cd..4bf5223f 100644
--- a/components/policy/core/common/cloud/component_cloud_policy_updater_unittest.cc
+++ b/components/policy/core/common/cloud/component_cloud_policy_updater_unittest.cc
@@ -457,7 +457,7 @@
   // After 12 hours (minus some random jitter), the next download attempt
   // happens.
   EXPECT_EQ(0, loader_factory_.NumPending());
-  task_env_.FastForwardBy(base::TimeDelta::FromHours(12));
+  task_env_.FastForwardBy(base::Hours(12));
   EXPECT_TRUE(loader_factory_.IsPending(kTestDownload));
 
   // Complete the download.
@@ -492,7 +492,7 @@
   // After 12 hours (minus some random jitter), the next download attempt
   // happens.
   EXPECT_EQ(0, loader_factory_.NumPending());
-  task_env_.FastForwardBy(base::TimeDelta::FromHours(12));
+  task_env_.FastForwardBy(base::Hours(12));
   EXPECT_TRUE(loader_factory_.IsPending(kTestDownload));
 
   // Complete the download with an invalid (empty) JSON. This tests against the
diff --git a/components/policy/core/common/cloud/device_management_service.cc b/components/policy/core/common/cloud/device_management_service.cc
index f26b7e4c78..ff1b0e9 100644
--- a/components/policy/core/common/cloud/device_management_service.cc
+++ b/components/policy/core/common/cloud/device_management_service.cc
@@ -456,7 +456,7 @@
     task_runner_->PostDelayedTask(
         FROM_HERE,
         base::BindOnce(&DeviceManagementService::JobImpl::Start, GetWeakPtr()),
-        base::TimeDelta::FromMilliseconds(GetRetryDelay(retry_method)));
+        base::Milliseconds(GetRetryDelay(retry_method)));
   }
   return retry_method;
 }
@@ -623,7 +623,7 @@
       FROM_HERE,
       base::BindOnce(&DeviceManagementService::Initialize,
                      weak_ptr_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(delay_milliseconds));
+      base::Milliseconds(delay_milliseconds));
 }
 
 void DeviceManagementService::Initialize() {
diff --git a/components/policy/core/common/cloud/external_policy_data_updater_unittest.cc b/components/policy/core/common/cloud/external_policy_data_updater_unittest.cc
index 8b290f86..3cdf3e9 100644
--- a/components/policy/core/common/cloud/external_policy_data_updater_unittest.cc
+++ b/components/policy/core/common/cloud/external_policy_data_updater_unittest.cc
@@ -302,8 +302,8 @@
   // Make a fetch request.
   RequestExternalDataFetchAndWait(0);
 
-  base::TimeDelta expected_delay = base::TimeDelta::FromSeconds(15);
-  const base::TimeDelta delay_cap = base::TimeDelta::FromHours(12);
+  base::TimeDelta expected_delay = base::Seconds(15);
+  const base::TimeDelta delay_cap = base::Hours(12);
 
   // The backoff delay is capped at 12 hours, which is reached after 12 retries:
   // 15 * 2^12 == 61440 > 43200 == 12 * 60 * 60
@@ -330,8 +330,7 @@
     // to 100%.
     base::TimeDelta delay = backend_task_runner_->NextPendingTaskDelay();
     EXPECT_GT(delay,
-              base::TimeDelta::FromMilliseconds(
-                  0.799 * expected_delay.InMilliseconds()));
+              base::Milliseconds(0.799 * expected_delay.InMilliseconds()));
     EXPECT_LE(delay, expected_delay);
 
     if (i < 12) {
diff --git a/components/policy/core/common/features.cc b/components/policy/core/common/features.cc
index f354daf..6d0349c5 100644
--- a/components/policy/core/common/features.cc
+++ b/components/policy/core/common/features.cc
@@ -21,8 +21,7 @@
 const base::FeatureParam<base::TimeDelta>
     kPolicyBlocklistThrottlePolicyLoadTimeout{
         &kPolicyBlocklistThrottleRequiresPoliciesLoaded,
-        "PolicyBlocklistThrottlePolicyLoadTimeout",
-        base::TimeDelta::FromSeconds(20)};
+        "PolicyBlocklistThrottlePolicyLoadTimeout", base::Seconds(20)};
 
 const base::Feature kUploadBrowserDeviceIdentifier{
     "UploadBrowserDeviceIdentifier", base::FEATURE_ENABLED_BY_DEFAULT};
diff --git a/components/policy/core/common/policy_statistics_collector.cc b/components/policy/core/common/policy_statistics_collector.cc
index 9cb607a4..79ed48a9 100644
--- a/components/policy/core/common/policy_statistics_collector.cc
+++ b/components/policy/core/common/policy_statistics_collector.cc
@@ -126,7 +126,7 @@
 
   // Take care of next update.
   prefs_->SetTime(policy_prefs::kLastPolicyStatisticsUpdate, base::Time::Now());
-  ScheduleUpdate(base::TimeDelta::FromMilliseconds(kStatisticsUpdateRate));
+  ScheduleUpdate(base::Milliseconds(kStatisticsUpdateRate));
 }
 
 void PolicyStatisticsCollector::ScheduleUpdate(base::TimeDelta delay) {
diff --git a/components/policy/core/common/policy_statistics_collector_unittest.cc b/components/policy/core/common/policy_statistics_collector_unittest.cc
index 8609dca..2f87fb6 100644
--- a/components/policy/core/common/policy_statistics_collector_unittest.cc
+++ b/components/policy/core/common/policy_statistics_collector_unittest.cc
@@ -62,7 +62,7 @@
 class PolicyStatisticsCollectorTest : public testing::Test {
  protected:
   PolicyStatisticsCollectorTest()
-      : update_delay_(base::TimeDelta::FromMilliseconds(
+      : update_delay_(base::Milliseconds(
             PolicyStatisticsCollector::kStatisticsUpdateRate)),
         task_runner_(new base::TestSimpleTaskRunner()) {}
 
@@ -85,7 +85,7 @@
         .WillRepeatedly(ReturnRef(policy_map_));
 
     // Arbitrary negative value (so it'll be different from |update_delay_|).
-    last_delay_ = base::TimeDelta::FromDays(-1);
+    last_delay_ = base::Days(-1);
     policy_map_.Clear();
     policy_statistics_collector_ = std::make_unique<PolicyStatisticsCollector>(
         policy_details_.GetCallback(), chrome_schema_, &policy_service_,
diff --git a/components/policy/core/common/remote_commands/remote_command_job.cc b/components/policy/core/common/remote_commands/remote_command_job.cc
index b15c91c3..15e89a3 100644
--- a/components/policy/core/common/remote_commands/remote_command_job.cc
+++ b/components/policy/core/common/remote_commands/remote_command_job.cc
@@ -13,10 +13,8 @@
 
 namespace {
 
-constexpr base::TimeDelta kDefaultCommandTimeout =
-    base::TimeDelta::FromMinutes(10);
-constexpr base::TimeDelta kDefaultCommandExpirationTime =
-    base::TimeDelta::FromMinutes(10);
+constexpr base::TimeDelta kDefaultCommandTimeout = base::Minutes(10);
+constexpr base::TimeDelta kDefaultCommandExpirationTime = base::Minutes(10);
 
 }  // namespace
 
@@ -50,8 +48,7 @@
     // time we got it from server.
     // It's just an estimation since we lost the time the response was
     // transmitted over the network.
-    issued_time_ =
-        now - base::TimeDelta::FromMilliseconds(command.age_of_command());
+    issued_time_ = now - base::Milliseconds(command.age_of_command());
   } else {
     SYSLOG(WARNING) << "No age_of_command provided by server for command "
                     << unique_id_ << ".";
diff --git a/components/policy/core/common/remote_commands/remote_commands_queue_unittest.cc b/components/policy/core/common/remote_commands/remote_commands_queue_unittest.cc
index e1a3002..9544f77bb 100644
--- a/components/policy/core/common/remote_commands/remote_commands_queue_unittest.cc
+++ b/components/policy/core/common/remote_commands/remote_commands_queue_unittest.cc
@@ -177,18 +177,17 @@
     base::TimeTicks expected_issued_time) {
   // Maximum possible error can be 1 millisecond due to truncating.
   EXPECT_GE(expected_issued_time, job->issued_time());
-  EXPECT_LE(expected_issued_time - base::TimeDelta::FromMilliseconds(1),
-            job->issued_time());
+  EXPECT_LE(expected_issued_time - base::Milliseconds(1), job->issued_time());
 }
 
 TEST_F(RemoteCommandsQueueTest, SingleSucceedCommand) {
   // Initialize a job expected to succeed after 5 seconds, from a protobuf with
   // |kUniqueID|, |kPayload| and |test_start_time_| as command issued time.
   std::unique_ptr<RemoteCommandJob> job(
-      new TestRemoteCommandJob(true, base::TimeDelta::FromSeconds(5)));
+      new TestRemoteCommandJob(true, base::Seconds(5)));
   InitializeJob(job.get(), kUniqueID, test_start_time_, kPayload);
 
-  AddJobAndVerifyRunningAfter(std::move(job), base::TimeDelta::FromSeconds(4));
+  AddJobAndVerifyRunningAfter(std::move(job), base::Seconds(4));
 
   // After 6 seconds, the job is expected to be finished.
   EXPECT_CALL(observer_,
@@ -196,7 +195,7 @@
                                            RemoteCommandJob::SUCCEEDED),
                                   Property(&RemoteCommandJob::GetResultPayload,
                                            Pointee(StrEq(kPayload))))));
-  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_runner_->FastForwardBy(base::Seconds(2));
   Mock::VerifyAndClearExpectations(&observer_);
 
   task_runner_->FastForwardUntilNoTasksRemain();
@@ -206,10 +205,10 @@
   // Initialize a job expected to fail after 10 seconds, from a protobuf with
   // |kUniqueID|, |kPayload| and |test_start_time_| as command issued time.
   std::unique_ptr<RemoteCommandJob> job(
-      new TestRemoteCommandJob(false, base::TimeDelta::FromSeconds(10)));
+      new TestRemoteCommandJob(false, base::Seconds(10)));
   InitializeJob(job.get(), kUniqueID, test_start_time_, kPayload);
 
-  AddJobAndVerifyRunningAfter(std::move(job), base::TimeDelta::FromSeconds(9));
+  AddJobAndVerifyRunningAfter(std::move(job), base::Seconds(9));
 
   // After 11 seconds, the job is expected to be finished.
   EXPECT_CALL(observer_,
@@ -217,7 +216,7 @@
                   Property(&RemoteCommandJob::status, RemoteCommandJob::FAILED),
                   Property(&RemoteCommandJob::GetResultPayload,
                            Pointee(StrEq(kPayload))))));
-  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_runner_->FastForwardBy(base::Seconds(2));
   Mock::VerifyAndClearExpectations(&observer_);
 
   task_runner_->FastForwardUntilNoTasksRemain();
@@ -227,17 +226,16 @@
   // Initialize a job expected to fail after 600 seconds, from a protobuf with
   // |kUniqueID|, |kPayload| and |test_start_time_| as command issued time.
   std::unique_ptr<RemoteCommandJob> job(
-      new TestRemoteCommandJob(false, base::TimeDelta::FromSeconds(600)));
+      new TestRemoteCommandJob(false, base::Seconds(600)));
   InitializeJob(job.get(), kUniqueID, test_start_time_, kPayload);
 
-  AddJobAndVerifyRunningAfter(std::move(job),
-                              base::TimeDelta::FromSeconds(599));
+  AddJobAndVerifyRunningAfter(std::move(job), base::Seconds(599));
 
   // After 601 seconds, the job is expected to be terminated (10 minutes is the
   // timeout duration).
   EXPECT_CALL(observer_, OnJobFinished(Property(&RemoteCommandJob::status,
                                                 RemoteCommandJob::TERMINATED)));
-  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_runner_->FastForwardBy(base::Seconds(2));
   Mock::VerifyAndClearExpectations(&observer_);
 
   task_runner_->FastForwardUntilNoTasksRemain();
@@ -247,7 +245,7 @@
   // Initialize a job expected to succeed after 10 seconds, from a protobuf with
   // |kUniqueID|, |kMalformedCommandPayload| and |test_start_time_|.
   std::unique_ptr<RemoteCommandJob> job(
-      new TestRemoteCommandJob(true, base::TimeDelta::FromSeconds(10)));
+      new TestRemoteCommandJob(true, base::Seconds(10)));
   // Should failed immediately.
   FailInitializeJob(job.get(), kUniqueID, test_start_time_,
                     TestRemoteCommandJob::kMalformedCommandPayload);
@@ -257,9 +255,8 @@
   // Initialize a job expected to succeed after 10 seconds, from a protobuf with
   // |kUniqueID| and |test_start_time_ - 4 hours|.
   std::unique_ptr<RemoteCommandJob> job(
-      new TestRemoteCommandJob(true, base::TimeDelta::FromSeconds(10)));
-  InitializeJob(job.get(), kUniqueID,
-                test_start_time_ - base::TimeDelta::FromHours(4),
+      new TestRemoteCommandJob(true, base::Seconds(10)));
+  InitializeJob(job.get(), kUniqueID, test_start_time_ - base::Hours(4),
                 std::string());
 
   // Add the job to the queue. It should not be started.
@@ -277,7 +274,7 @@
   // Initialize a job expected to succeed after 5 seconds, from a protobuf with
   // |kUniqueID|, |kPayload| and |test_start_time_| as command issued time.
   std::unique_ptr<RemoteCommandJob> job(
-      new TestRemoteCommandJob(true, base::TimeDelta::FromSeconds(5)));
+      new TestRemoteCommandJob(true, base::Seconds(5)));
   InitializeJob(job.get(), kUniqueID, test_start_time_, kPayload);
 
   // Add the job to the queue, should start executing immediately. Pass the
@@ -293,18 +290,17 @@
   // Initialize another job expected to succeed after 5 seconds, from a protobuf
   // with |kUniqueID2|, |kPayload2| and |test_start_time_ + 1s| as command
   // issued time.
-  job = std::make_unique<TestRemoteCommandJob>(true,
-                                               base::TimeDelta::FromSeconds(5));
-  InitializeJob(job.get(), kUniqueID2,
-                test_start_time_ + base::TimeDelta::FromSeconds(1), kPayload2);
+  job = std::make_unique<TestRemoteCommandJob>(true, base::Seconds(5));
+  InitializeJob(job.get(), kUniqueID2, test_start_time_ + base::Seconds(1),
+                kPayload2);
 
   // After 2 seconds, add the second job. It should be queued and not start
   // running immediately.
-  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_runner_->FastForwardBy(base::Seconds(2));
   queue_.AddJob(std::move(job));
 
   // After 4 seconds, nothing happens.
-  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_runner_->FastForwardBy(base::Seconds(2));
   Mock::VerifyAndClearExpectations(&observer_);
 
   // After 6 seconds, the first job should finish running and the second one
@@ -321,7 +317,7 @@
       OnJobStarted(AllOf(
           Property(&RemoteCommandJob::unique_id, kUniqueID2),
           Property(&RemoteCommandJob::status, RemoteCommandJob::RUNNING))));
-  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_runner_->FastForwardBy(base::Seconds(2));
   Mock::VerifyAndClearExpectations(&observer_);
 
   // After 11 seconds, the second job should finish running as well.
@@ -332,7 +328,7 @@
           Property(&RemoteCommandJob::status, RemoteCommandJob::SUCCEEDED),
           Property(&RemoteCommandJob::GetResultPayload,
                    Pointee(StrEq(kPayload2))))));
-  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_runner_->FastForwardBy(base::Seconds(5));
   Mock::VerifyAndClearExpectations(&observer_);
 
   task_runner_->FastForwardUntilNoTasksRemain();
diff --git a/components/policy/core/common/remote_commands/remote_commands_service_unittest.cc b/components/policy/core/common/remote_commands/remote_commands_service_unittest.cc
index 0f93298..23d1e49 100644
--- a/components/policy/core/common/remote_commands/remote_commands_service_unittest.cc
+++ b/components/policy/core/common/remote_commands/remote_commands_service_unittest.cc
@@ -66,8 +66,7 @@
   MockTestRemoteCommandFactory() {
     ON_CALL(*this, BuildTestCommand())
         .WillByDefault(ReturnNew<TestRemoteCommandJob>(
-            true,
-            base::TimeDelta::FromSeconds(kTestCommandExecutionTimeInSeconds)));
+            true, base::Seconds(kTestCommandExecutionTimeInSeconds)));
   }
   MockTestRemoteCommandFactory(const MockTestRemoteCommandFactory&) = delete;
   MockTestRemoteCommandFactory& operator=(const MockTestRemoteCommandFactory&) =
@@ -158,8 +157,7 @@
             &TestingCloudPolicyClientForRemoteCommands::DoFetchRemoteCommands,
             base::Unretained(this), std::move(last_command_id), command_results,
             std::move(callback), fetch_call_expectation),
-        base::TimeDelta::FromSeconds(
-            kTestClientServerCommunicationDelayInSeconds));
+        base::Seconds(kTestClientServerCommunicationDelayInSeconds));
   }
 
   void DoFetchRemoteCommands(
@@ -191,8 +189,7 @@
         FROM_HERE,
         base::BindOnce(std::move(callback), DM_STATUS_SUCCESS, fetched_commands,
                        signed_commands),
-        base::TimeDelta::FromSeconds(
-            kTestClientServerCommunicationDelayInSeconds));
+        base::Seconds(kTestClientServerCommunicationDelayInSeconds));
   }
 
   base::queue<FetchCallExpectation> expected_fetch_commands_calls_;
diff --git a/components/policy/core/common/remote_commands/test_remote_command_job.cc b/components/policy/core/common/remote_commands/test_remote_command_job.cc
index 3ce235e5..8fb1ebd0 100644
--- a/components/policy/core/common/remote_commands/test_remote_command_job.cc
+++ b/components/policy/core/common/remote_commands/test_remote_command_job.cc
@@ -44,7 +44,7 @@
 TestRemoteCommandJob::TestRemoteCommandJob(bool succeed,
                                            base::TimeDelta execution_duration)
     : succeed_(succeed), execution_duration_(execution_duration) {
-  DCHECK_LT(base::TimeDelta::FromSeconds(0), execution_duration_);
+  DCHECK_LT(base::Seconds(0), execution_duration_);
 }
 
 em::RemoteCommand_Type TestRemoteCommandJob::GetType() const {
@@ -61,8 +61,7 @@
 
 bool TestRemoteCommandJob::IsExpired(base::TimeTicks now) {
   return !issued_time().is_null() &&
-         now > issued_time() +
-                   base::TimeDelta::FromHours(kCommandExpirationTimeInHours);
+         now > issued_time() + base::Hours(kCommandExpirationTimeInHours);
 }
 
 void TestRemoteCommandJob::RunImpl(CallbackWithResult succeed_callback,
diff --git a/components/power_scheduler/power_mode_arbiter.h b/components/power_scheduler/power_mode_arbiter.h
index 0204d2a..fd07554 100644
--- a/components/power_scheduler/power_mode_arbiter.h
+++ b/components/power_scheduler/power_mode_arbiter.h
@@ -45,7 +45,7 @@
   // Limits the frequency at which we can run the UpdatePendingResets() task.
   // All pending resets are aligned to this time resolution. Public for testing.
   static constexpr base::TimeDelta kResetVoteTimeResolution =
-      base::TimeDelta::FromMilliseconds(100);
+      base::Milliseconds(100);
 
   static PowerModeArbiter* GetInstance();
 
diff --git a/components/power_scheduler/power_mode_arbiter_unittest.cc b/components/power_scheduler/power_mode_arbiter_unittest.cc
index a30bdfe..cff551b 100644
--- a/components/power_scheduler/power_mode_arbiter_unittest.cc
+++ b/components/power_scheduler/power_mode_arbiter_unittest.cc
@@ -464,8 +464,8 @@
   FakeObserver observer;
   arbiter.AddObserver(&observer);
 
-  base::TimeDelta delta1s = base::TimeDelta::FromSeconds(1);
-  base::TimeDelta delta2s = base::TimeDelta::FromSeconds(2);
+  base::TimeDelta delta1s = base::Seconds(1);
+  base::TimeDelta delta2s = base::Seconds(2);
 
   std::unique_ptr<PowerModeVoter> voter1 = arbiter.NewVoter("voter1");
   voter1->VoteFor(PowerMode::kAnimation);
@@ -565,7 +565,7 @@
   EXPECT_EQ(arbiter.GetActiveModeForTesting(), PowerMode::kIdle);
 
   FakeObserver observer;
-  base::TimeDelta delta1s = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta1s = base::Seconds(1);
 
   arbiter.OnThreadPoolAvailable();
 
diff --git a/components/power_scheduler/power_mode_voter.h b/components/power_scheduler/power_mode_voter.h
index d7dfac7b..4b228a68 100644
--- a/components/power_scheduler/power_mode_voter.h
+++ b/components/power_scheduler/power_mode_voter.h
@@ -34,33 +34,29 @@
   };
 
   // Consider an initial response to a single input to last 100ms.
-  static constexpr base::TimeDelta kResponseTimeout =
-      base::TimeDelta::FromMilliseconds(100);
+  static constexpr base::TimeDelta kResponseTimeout = base::Milliseconds(100);
 
   // Animations often have brief idle periods where no frames are produced. This
   // timeout is applied before resetting animation votes to avoid frequent vote
   // reversals.
-  static constexpr base::TimeDelta kAnimationTimeout =
-      base::TimeDelta::FromMilliseconds(100);
+  static constexpr base::TimeDelta kAnimationTimeout = base::Milliseconds(100);
   static constexpr base::TimeDelta kVideoTimeout = kAnimationTimeout;
 
   // Software draws can take longer than the rest of animations. We use a
   // different timeout constant for them to allow individual tweaking.
   static constexpr base::TimeDelta kSoftwareDrawTimeout =
-      base::TimeDelta::FromMilliseconds(100);
+      base::Milliseconds(100);
 
   // Give frames an extra second to draw & settle after load completion.
-  static constexpr base::TimeDelta kLoadingTimeout =
-      base::TimeDelta::FromSeconds(1);
+  static constexpr base::TimeDelta kLoadingTimeout = base::Seconds(1);
   // Avoid getting stuck in loading stage forever. More than 99.9% of
   // navigations load (to largest contentful paint) in less than a minute.
-  static constexpr base::TimeDelta kStuckLoadingTimeout =
-      base::TimeDelta::FromSeconds(60);
+  static constexpr base::TimeDelta kStuckLoadingTimeout = base::Seconds(60);
 
   // This timeout is applied before resetting script execution votes to avoid
   // frequent vote reversals.
   static constexpr base::TimeDelta kScriptExecutionTimeout =
-      base::TimeDelta::FromMilliseconds(50);
+      base::Milliseconds(50);
 
   ~PowerModeVoter();
 
diff --git a/components/power_scheduler/power_scheduler.cc b/components/power_scheduler/power_scheduler.cc
index 4a16a25..a06e25c 100644
--- a/components/power_scheduler/power_scheduler.cc
+++ b/components/power_scheduler/power_scheduler.cc
@@ -83,8 +83,8 @@
 // Default policy params for the PowerScheduler feature. Please update the
 // comment in power_scheduler_features.cc when changing these defaults.
 static constexpr SchedulingPolicyParams kDefaultParams{
-    SchedulingPolicy::kThrottleIdleAndNopAnimation,
-    base::TimeDelta::FromMilliseconds(500), 0.5f};
+    SchedulingPolicy::kThrottleIdleAndNopAnimation, base::Milliseconds(500),
+    0.5f};
 
 // Keys/values for the field trial params.
 static const char kPolicyKey[] = "policy";
@@ -230,7 +230,7 @@
     int min_time_ms = 0;
     if (base::StringToInt(field_trial_params[kMinTimeInModeMsKey],
                           &min_time_ms)) {
-      params.min_time_in_mode = base::TimeDelta::FromMilliseconds(min_time_ms);
+      params.min_time_in_mode = base::Milliseconds(min_time_ms);
     }
 
     double min_cputime_ratio = 0;
@@ -422,9 +422,8 @@
       !enforced_affinity_setup_time_.is_null()) {
     auto throttling_duration = now - enforced_affinity_setup_time_;
     UMA_HISTOGRAM_CUSTOM_TIMES("Power.PowerScheduler.ThrottlingDuration",
-                               throttling_duration,
-                               base::TimeDelta::FromMilliseconds(1),
-                               base::TimeDelta::FromMinutes(10), 100);
+                               throttling_duration, base::Milliseconds(1),
+                               base::Minutes(10), 100);
 
     UMA_HISTOGRAM_SCALED_ENUMERATION(
         "Power.PowerScheduler.ThrottlingDurationPerCpuAffinityMode",
diff --git a/components/power_scheduler/power_scheduler_unittest.cc b/components/power_scheduler/power_scheduler_unittest.cc
index 265b6c53..52324127 100644
--- a/components/power_scheduler/power_scheduler_unittest.cc
+++ b/components/power_scheduler/power_scheduler_unittest.cc
@@ -97,7 +97,7 @@
     }
     EXPECT_EQ(scheduler_.GetPolicy().policy, policy);
     EXPECT_EQ(scheduler_.GetPolicy().min_time_in_mode,
-              base::TimeDelta::FromMilliseconds(min_time_in_mode_ms));
+              base::Milliseconds(min_time_in_mode_ms));
     EXPECT_NEAR(scheduler_.GetPolicy().min_cputime_ratio, min_cputime_ratio,
                 0.01);
   }
@@ -152,7 +152,7 @@
 
 TEST_F(PowerSchedulerTest, ThrottleIdleWithMinimums) {
   SchedulingPolicyParams params{SchedulingPolicy::kThrottleIdle,
-                                base::TimeDelta::FromMilliseconds(500), 0.5};
+                                base::Milliseconds(500), 0.5};
   SetPolicyAndExpect(params, base::CpuAffinityMode::kDefault);
 
   SetPowerModeAndExpect(PowerMode::kIdle, base::CpuAffinityMode::kDefault);
@@ -165,7 +165,7 @@
                           base::CpuAffinityMode::kDefault);
     SetPowerModeAndExpect(PowerMode::kIdle, base::CpuAffinityMode::kDefault);
     // Advancing time with incrementing CPU above min - throttle.
-    scheduler_.AdvanceCpuTime(base::TimeDelta::FromMilliseconds(300));
+    scheduler_.AdvanceCpuTime(base::Milliseconds(300));
     task_environment_.FastForwardBy(params.min_time_in_mode);
     Expect(base::CpuAffinityMode::kLittleCoresOnly);
 
@@ -174,7 +174,7 @@
                           base::CpuAffinityMode::kDefault);
     SetPowerModeAndExpect(PowerMode::kIdle, base::CpuAffinityMode::kDefault);
     // Advancing time with incrementing CPU below min - stay unthrottled.
-    scheduler_.AdvanceCpuTime(base::TimeDelta::FromMilliseconds(100));
+    scheduler_.AdvanceCpuTime(base::Milliseconds(100));
     task_environment_.FastForwardBy(params.min_time_in_mode);
     Expect(base::CpuAffinityMode::kDefault);
   }
@@ -184,7 +184,7 @@
     SetPowerModeAndExpect(PowerMode::kAnimation,
                           base::CpuAffinityMode::kDefault);
     SetPowerModeAndExpect(PowerMode::kIdle, base::CpuAffinityMode::kDefault);
-    scheduler_.AdvanceCpuTime(base::TimeDelta::FromMilliseconds(300));
+    scheduler_.AdvanceCpuTime(base::Milliseconds(300));
     task_environment_.FastForwardBy(params.min_time_in_mode / 2);
     Expect(base::CpuAffinityMode::kDefault);
   }
diff --git a/components/prefs/pref_service_unittest.cc b/components/prefs/pref_service_unittest.cc
index 8575fb0..b31ed70 100644
--- a/components/prefs/pref_service_unittest.cc
+++ b/components/prefs/pref_service_unittest.cc
@@ -251,8 +251,8 @@
   TestingPrefServiceSimple prefs;
 
   // Register a non-null time as the default.
-  const base::Time default_time = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(12345));
+  const base::Time default_time =
+      base::Time::FromDeltaSinceWindowsEpoch(base::Microseconds(12345));
   prefs.registry()->RegisterTimePref(kPrefName, default_time);
   EXPECT_FALSE(prefs.GetTime(kPrefName).is_null());
 
@@ -279,8 +279,7 @@
   TestingPrefServiceSimple prefs;
 
   // Register a non-zero time delta as the default.
-  const base::TimeDelta default_delta =
-      base::TimeDelta::FromMicroseconds(12345);
+  const base::TimeDelta default_delta = base::Microseconds(12345);
   prefs.registry()->RegisterTimeDeltaPref(kPrefName, default_delta);
   EXPECT_FALSE(prefs.GetTimeDelta(kPrefName).is_zero());
 
diff --git a/components/query_tiles/internal/cached_image_loader.cc b/components/query_tiles/internal/cached_image_loader.cc
index 7dd82061..beea151 100644
--- a/components/query_tiles/internal/cached_image_loader.cc
+++ b/components/query_tiles/internal/cached_image_loader.cc
@@ -32,8 +32,7 @@
 
 // The time interval for the images to stay in image fetcher's cache after last
 // used time.
-constexpr base::TimeDelta kImageCacheExpirationInterval =
-    base::TimeDelta::FromDays(1);
+constexpr base::TimeDelta kImageCacheExpirationInterval = base::Days(1);
 
 constexpr net::NetworkTrafficAnnotationTag kQueryTilesTrafficAnnotation =
     net::DefineNetworkTrafficAnnotation("query_tiles_image_loader", R"(
diff --git a/components/query_tiles/internal/proto_conversion.cc b/components/query_tiles/internal/proto_conversion.cc
index 0840af5..fc0d4eb 100644
--- a/components/query_tiles/internal/proto_conversion.cc
+++ b/components/query_tiles/internal/proto_conversion.cc
@@ -24,7 +24,7 @@
 // deserialization. Loses precision beyond milliseconds.
 base::Time MillisecondsToTime(int64_t serialized_time_ms) {
   return base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMilliseconds(serialized_time_ms));
+      base::Milliseconds(serialized_time_ms));
 }
 
 // Use to convert TileInfo in response proto to the local Tile structure.
diff --git a/components/query_tiles/internal/tile_config.cc b/components/query_tiles/internal/tile_config.cc
index 80cf823..d83110e 100644
--- a/components/query_tiles/internal/tile_config.cc
+++ b/components/query_tiles/internal/tile_config.cc
@@ -185,7 +185,7 @@
   int time_in_seconds = base::GetFieldTrialParamByFeatureAsInt(
       features::kQueryTiles, kExpireDurationKey,
       kDefaultExpireDurationInSeconds);
-  return base::TimeDelta::FromSeconds(time_in_seconds);
+  return base::Seconds(time_in_seconds);
 }
 
 // static
diff --git a/components/query_tiles/internal/tile_config_unittest.cc b/components/query_tiles/internal/tile_config_unittest.cc
index 7227419..f3539b66 100644
--- a/components/query_tiles/internal/tile_config_unittest.cc
+++ b/components/query_tiles/internal/tile_config_unittest.cc
@@ -41,7 +41,7 @@
             GURL("https://test.com/v1/querytiles"));
   EXPECT_TRUE(TileConfig::GetIsUnMeteredNetworkRequired());
   EXPECT_EQ(TileConfig::GetExperimentTag(), "1234");
-  EXPECT_EQ(TileConfig::GetExpireDuration(), base::TimeDelta::FromSeconds(100));
+  EXPECT_EQ(TileConfig::GetExpireDuration(), base::Seconds(100));
   EXPECT_EQ(TileConfig::GetScheduleIntervalInMs(), 123);
   EXPECT_EQ(TileConfig::GetMaxRandomWindowInMs(), 234);
   EXPECT_EQ(TileConfig::GetOneoffTaskWindowInMs(), 345);
@@ -58,17 +58,17 @@
             GURL("https://xyz.com/v1/querytiles"));
   EXPECT_FALSE(TileConfig::GetIsUnMeteredNetworkRequired());
   EXPECT_TRUE(TileConfig::GetExperimentTag().empty());
-  EXPECT_EQ(TileConfig::GetExpireDuration(), base::TimeDelta::FromDays(2));
+  EXPECT_EQ(TileConfig::GetExpireDuration(), base::Days(2));
   EXPECT_EQ(TileConfig::GetScheduleIntervalInMs(),
-            base::TimeDelta::FromHours(12).InMilliseconds());
+            base::Hours(12).InMilliseconds());
   EXPECT_EQ(TileConfig::GetMaxRandomWindowInMs(),
-            base::TimeDelta::FromHours(4).InMilliseconds());
+            base::Hours(4).InMilliseconds());
   EXPECT_EQ(TileConfig::GetOneoffTaskWindowInMs(),
-            base::TimeDelta::FromHours(2).InMilliseconds());
+            base::Hours(2).InMilliseconds());
   EXPECT_EQ(TileConfig::GetBackoffPolicyArgsInitDelayInMs(),
-            base::TimeDelta::FromSeconds(30).InMilliseconds());
+            base::Seconds(30).InMilliseconds());
   EXPECT_EQ(TileConfig::GetBackoffPolicyArgsMaxDelayInMs(),
-            base::TimeDelta::FromDays(1).InMilliseconds());
+            base::Days(1).InMilliseconds());
 }
 
 // Test to verify ImagePrefetchMode can be parsed correctly from Finch
diff --git a/components/query_tiles/internal/tile_group_unittest.cc b/components/query_tiles/internal/tile_group_unittest.cc
index 0b08f233..39522e0 100644
--- a/components/query_tiles/internal/tile_group_unittest.cc
+++ b/components/query_tiles/internal/tile_group_unittest.cc
@@ -16,7 +16,7 @@
 namespace {
 
 TEST(TileGroupTest, CompareOperators) {
-  base::Time last_updated_ts = base::Time::Now() - base::TimeDelta::FromDays(7);
+  base::Time last_updated_ts = base::Time::Now() - base::Days(7);
   TileGroup lhs, rhs;
   test::ResetTestGroup(&lhs, last_updated_ts);
   test::ResetTestGroup(&rhs, last_updated_ts);
@@ -30,7 +30,7 @@
   EXPECT_NE(lhs, rhs);
   test::ResetTestGroup(&rhs);
 
-  rhs.last_updated_ts += base::TimeDelta::FromDays(1);
+  rhs.last_updated_ts += base::Days(1);
   EXPECT_NE(lhs, rhs);
   test::ResetTestGroup(&rhs);
 
@@ -39,7 +39,7 @@
 }
 
 TEST(TileGroupTest, DeepCompareOperators) {
-  base::Time last_updated_ts = base::Time::Now() - base::TimeDelta::FromDays(7);
+  base::Time last_updated_ts = base::Time::Now() - base::Days(7);
   TileGroup lhs, rhs;
   test::ResetTestGroup(&lhs, last_updated_ts);
   test::ResetTestGroup(&rhs, last_updated_ts);
@@ -64,7 +64,7 @@
 
 TEST(TileGroupTest, MoveOperator) {
   TileGroup lhs;
-  base::Time last_updated_ts = base::Time::Now() - base::TimeDelta::FromDays(7);
+  base::Time last_updated_ts = base::Time::Now() - base::Days(7);
   test::ResetTestGroup(&lhs, last_updated_ts);
   TileGroup rhs = std::move(lhs);
   TileGroup expected;
@@ -76,8 +76,7 @@
   base::Time now_time = base::Time::Now();
   TileGroup group;
   group.tile_stats["guid-1-1"] = TileStats(now_time, 0);
-  group.tile_stats["guid-1-2"] =
-      TileStats(now_time + base::TimeDelta::FromHours(1), 0.5);
+  group.tile_stats["guid-1-2"] = TileStats(now_time + base::Hours(1), 0.5);
   group.OnTileClicked("guid-1-1");
   EXPECT_EQ(group.tile_stats["guid-1-1"].score, 1);
   group.OnTileClicked("guid-1-2");
diff --git a/components/query_tiles/internal/tile_manager_unittest.cc b/components/query_tiles/internal/tile_manager_unittest.cc
index 993336f..037bd179 100644
--- a/components/query_tiles/internal/tile_manager_unittest.cc
+++ b/components/query_tiles/internal/tile_manager_unittest.cc
@@ -203,7 +203,7 @@
 TEST_F(TileManagerTest, InitAndLoadWithInvalidGroup) {
   // Create an expired group.
   auto expired_group = CreateValidGroup("expired_group_id", "tile_id");
-  expired_group.last_updated_ts = current_time() - base::TimeDelta::FromDays(3);
+  expired_group.last_updated_ts = current_time() - base::Days(3);
 
   // Locale mismatch group.
   auto locale_mismatch_group =
@@ -219,7 +219,7 @@
 TEST_F(TileManagerTest, InitAndLoadSuccess) {
   // Two valid groups are loaded, the most recent one will be selected.
   auto group1 = CreateValidGroup("group_id_1", "tile_id_1");
-  group1.last_updated_ts -= base::TimeDelta::FromMinutes(5);
+  group1.last_updated_ts -= base::Minutes(5);
   auto group2 = CreateValidGroup("group_id_2", "tile_id_2");
   const Tile expected = *group2.tiles[0];
 
diff --git a/components/query_tiles/internal/tile_service_scheduler_unittest.cc b/components/query_tiles/internal/tile_service_scheduler_unittest.cc
index f3201ceb..2cbb0b9 100644
--- a/components/query_tiles/internal/tile_service_scheduler_unittest.cc
+++ b/components/query_tiles/internal/tile_service_scheduler_unittest.cc
@@ -254,7 +254,7 @@
   auto now = clock()->Now();
   tile_service_scheduler()->OnTileManagerInitialized(TileGroupStatus::kNoTiles);
   EXPECT_EQ(prefs()->GetTime(kFirstScheduleTimeKey), now);
-  auto two_hours_later = now + base::TimeDelta::FromHours(2);
+  auto two_hours_later = now + base::Hours(2);
   clock()->SetNow(two_hours_later);
   tile_service_scheduler()->OnTileManagerInitialized(TileGroupStatus::kNoTiles);
   tile_service_scheduler()->OnTileManagerInitialized(TileGroupStatus::kNoTiles);
@@ -284,7 +284,7 @@
   // tiles, the scheduler should start a new first kickoff flow.
   scoped_command_line.GetProcessCommandLine()->RemoveSwitch(
       query_tiles::switches::kQueryTilesInstantBackgroundTask);
-  auto two_hours_later = now + base::TimeDelta::FromHours(2);
+  auto two_hours_later = now + base::Hours(2);
   clock()->SetNow(two_hours_later);
   EXPECT_CALL(*native_scheduler(), Schedule(_)).Times(1);
   tile_service_scheduler()->OnTileManagerInitialized(TileGroupStatus::kNoTiles);
diff --git a/components/query_tiles/internal/tile_utils_unittest.cc b/components/query_tiles/internal/tile_utils_unittest.cc
index fc8e6e5..8366be6 100644
--- a/components/query_tiles/internal/tile_utils_unittest.cc
+++ b/components/query_tiles/internal/tile_utils_unittest.cc
@@ -131,7 +131,7 @@
   TileGroup group;
   test::ResetTestGroup(&group);
 
-  base::Time past_time = base::Time::Now() - base::TimeDelta::FromDays(30);
+  base::Time past_time = base::Time::Now() - base::Days(30);
   std::map<std::string, TileStats> tile_stats;
   tile_stats["guid-1-1"] = TileStats(group.last_updated_ts, 0.5);
   tile_stats["guid-1-2"] = TileStats(past_time, 0.5);
@@ -169,15 +169,15 @@
 TEST(TileUtilsTest, CalculateTileScore) {
   base::Time now_time = base::Time::Now();
   EXPECT_EQ(CalculateTileScore(TileStats(now_time, 0.7), now_time), 0.7);
-  EXPECT_EQ(CalculateTileScore(TileStats(now_time, 1.0),
-                               now_time + base::TimeDelta::FromHours(18)),
-            1.0);
-  EXPECT_EQ(CalculateTileScore(TileStats(now_time, 1.0),
-                               now_time + base::TimeDelta::FromDays(1)),
-            exp(-0.099));
-  EXPECT_EQ(CalculateTileScore(TileStats(now_time, 1.0),
-                               now_time + base::TimeDelta::FromDays(30)),
-            0);
+  EXPECT_EQ(
+      CalculateTileScore(TileStats(now_time, 1.0), now_time + base::Hours(18)),
+      1.0);
+  EXPECT_EQ(
+      CalculateTileScore(TileStats(now_time, 1.0), now_time + base::Days(1)),
+      exp(-0.099));
+  EXPECT_EQ(
+      CalculateTileScore(TileStats(now_time, 1.0), now_time + base::Days(30)),
+      0);
 }
 
 TEST(TileUtilsTest, IsTrendingTile) {
diff --git a/components/query_tiles/test/test_utils.cc b/components/query_tiles/test/test_utils.cc
index 08d1b7e..60612291 100644
--- a/components/query_tiles/test/test_utils.cc
+++ b/components/query_tiles/test/test_utils.cc
@@ -33,7 +33,7 @@
 }
 
 void ResetTestGroup(TileGroup* group) {
-  ResetTestGroup(group, base::Time::Now() - base::TimeDelta::FromDays(7));
+  ResetTestGroup(group, base::Time::Now() - base::Days(7));
 }
 
 void ResetTestGroup(TileGroup* group, base::Time last_updated_ts) {
@@ -42,8 +42,8 @@
   // Convert time due to precision we used in proto message conversion.
   int64_t milliseconds =
       last_updated_ts.ToDeltaSinceWindowsEpoch().InMilliseconds();
-  group->last_updated_ts = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMilliseconds(milliseconds));
+  group->last_updated_ts =
+      base::Time::FromDeltaSinceWindowsEpoch(base::Milliseconds(milliseconds));
   group->tiles.clear();
   auto test_entry_1 = std::make_unique<Tile>();
   ResetTestEntry(test_entry_1.get());
diff --git a/components/quirks/quirks_manager.cc b/components/quirks/quirks_manager.cc
index d98e64a..3365fd7 100644
--- a/components/quirks/quirks_manager.cc
+++ b/components/quirks/quirks_manager.cc
@@ -176,7 +176,7 @@
       base::Time::Now() - base::Time::FromDoubleT(last_check);
 
   // Don't need server check if we've checked within last 30 days.
-  if (time_since < base::TimeDelta::FromDays(kDaysBetweenServerChecks)) {
+  if (time_since < base::Days(kDaysBetweenServerChecks)) {
     VLOG(2) << time_since.InDays()
             << " days since last Quirks Server check for display "
             << IdToHexString(product_id);
diff --git a/components/reading_list/core/reading_list_entry.cc b/components/reading_list/core/reading_list_entry.cc
index bcd6e239..d138bb0 100644
--- a/components/reading_list/core/reading_list_entry.cc
+++ b/components/reading_list/core/reading_list_entry.cc
@@ -354,8 +354,7 @@
   }
   base::TimeDelta estimated_read_time;
   if (pb_entry.estimated_read_time_seconds()) {
-    estimated_read_time =
-        base::TimeDelta::FromSeconds(pb_entry.estimated_read_time_seconds());
+    estimated_read_time = base::Seconds(pb_entry.estimated_read_time_seconds());
   }
 
   State state = UNSEEN;
@@ -490,8 +489,7 @@
   }
   base::TimeDelta estimated_read_time;
   if (pb_entry.has_estimated_read_time_seconds()) {
-    estimated_read_time =
-        base::TimeDelta::FromSeconds(pb_entry.estimated_read_time_seconds());
+    estimated_read_time = base::Seconds(pb_entry.estimated_read_time_seconds());
   }
 
   State state = UNSEEN;
diff --git a/components/reading_list/core/reading_list_entry_unittest.cc b/components/reading_list/core/reading_list_entry_unittest.cc
index 39d2433..9c965f9 100644
--- a/components/reading_list/core/reading_list_entry_unittest.cc
+++ b/components/reading_list/core/reading_list_entry_unittest.cc
@@ -190,7 +190,7 @@
               kFirstBackoff * fuzzing);
 
   // Action.
-  clock.Advance(base::TimeDelta::FromMinutes(kFirstBackoff * 2));
+  clock.Advance(base::Minutes(kFirstBackoff * 2));
 
   // Test.
   EXPECT_EQ(0, e.TimeUntilNextTry().InMilliseconds());
diff --git a/components/reading_list/core/reading_list_model_unittest.cc b/components/reading_list/core/reading_list_model_unittest.cc
index ea205c0..bf90107e 100644
--- a/components/reading_list/core/reading_list_model_unittest.cc
+++ b/components/reading_list/core/reading_list_model_unittest.cc
@@ -17,7 +17,7 @@
 namespace {
 
 base::Time AdvanceAndGetTime(base::SimpleTestClock* clock) {
-  clock->Advance(base::TimeDelta::FromMilliseconds(10));
+  clock->Advance(base::Milliseconds(10));
   return clock->Now();
 }
 
diff --git a/components/reading_list/core/reading_list_store_unittest.cc b/components/reading_list/core/reading_list_store_unittest.cc
index 1649f5ef..3c4c7e7 100644
--- a/components/reading_list/core/reading_list_store_unittest.cc
+++ b/components/reading_list/core/reading_list_store_unittest.cc
@@ -71,7 +71,7 @@
 }
 
 base::Time AdvanceAndGetTime(base::SimpleTestClock* clock) {
-  clock->Advance(base::TimeDelta::FromMilliseconds(10));
+  clock->Advance(base::Milliseconds(10));
   return clock->Now();
 }
 
diff --git a/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm b/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm
index 2a4679b..b17d46de 100644
--- a/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm
+++ b/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm
@@ -52,7 +52,7 @@
 using remote_cocoa::mojom::WindowVisibilityState;
 
 namespace {
-constexpr auto kUIPaintTimeout = base::TimeDelta::FromSeconds(5);
+constexpr auto kUIPaintTimeout = base::Seconds(5);
 
 bool AreWindowShadowsDisabled() {
   // When:
diff --git a/components/reporting/encryption/encryption_module.h b/components/reporting/encryption/encryption_module.h
index a637330..65995a7 100644
--- a/components/reporting/encryption/encryption_module.h
+++ b/components/reporting/encryption/encryption_module.h
@@ -26,8 +26,7 @@
 
   // Factory method creates |EncryptionModule| object.
   static scoped_refptr<EncryptionModuleInterface> Create(
-      base::TimeDelta renew_encryption_key_period =
-          base::TimeDelta::FromDays(1));
+      base::TimeDelta renew_encryption_key_period = base::Days(1));
 
  protected:
   // Constructor can only be called by |Create| factory method.
diff --git a/components/reporting/encryption/encryption_module_interface.h b/components/reporting/encryption/encryption_module_interface.h
index a308dad..5aa7129 100644
--- a/components/reporting/encryption/encryption_module_interface.h
+++ b/components/reporting/encryption/encryption_module_interface.h
@@ -29,8 +29,7 @@
   static const char kEncryptedReporting[];
 
   explicit EncryptionModuleInterface(
-      base::TimeDelta renew_encryption_key_period =
-          base::TimeDelta::FromDays(1));
+      base::TimeDelta renew_encryption_key_period = base::Days(1));
   EncryptionModuleInterface(const EncryptionModuleInterface& other) = delete;
   EncryptionModuleInterface& operator=(const EncryptionModuleInterface& other) =
       delete;
diff --git a/components/reporting/encryption/encryption_module_unittest.cc b/components/reporting/encryption/encryption_module_unittest.cc
index 55ebe572..7e2529d 100644
--- a/components/reporting/encryption/encryption_module_unittest.cc
+++ b/components/reporting/encryption/encryption_module_unittest.cc
@@ -196,14 +196,14 @@
   ASSERT_OK(encrypted_result.status()) << encrypted_result.status();
 
   // Simulate short wait. Key is still available and not needed.
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(8));
+  task_environment_.FastForwardBy(base::Hours(8));
   ASSERT_TRUE(encryption_module_->has_encryption_key());
   ASSERT_FALSE(encryption_module_->need_encryption_key());
   encrypted_result = EncryptSync(kTestString);
   ASSERT_OK(encrypted_result.status()) << encrypted_result.status();
 
   // Simulate long wait. Key is still available, but is needed now.
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
   ASSERT_TRUE(encryption_module_->has_encryption_key());
   ASSERT_TRUE(encryption_module_->need_encryption_key());
   encrypted_result = EncryptSync(kTestString);
diff --git a/components/reporting/storage/storage.cc b/components/reporting/storage/storage.cc
index ace5361..b7046243 100644
--- a/components/reporting/storage/storage.cc
+++ b/components/reporting/storage/storage.cc
@@ -59,22 +59,19 @@
     FILE_PATH_LITERAL("FastBatch");
 constexpr base::FilePath::CharType kFastBatchQueuePrefix[] =
     FILE_PATH_LITERAL("P_FastBatch");
-constexpr base::TimeDelta kFastBatchUploadPeriod =
-    base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kFastBatchUploadPeriod = base::Seconds(1);
 
 constexpr base::FilePath::CharType kSlowBatchQueueSubdir[] =
     FILE_PATH_LITERAL("SlowBatch");
 constexpr base::FilePath::CharType kSlowBatchQueuePrefix[] =
     FILE_PATH_LITERAL("P_SlowBatch");
-constexpr base::TimeDelta kSlowBatchUploadPeriod =
-    base::TimeDelta::FromSeconds(20);
+constexpr base::TimeDelta kSlowBatchUploadPeriod = base::Seconds(20);
 
 constexpr base::FilePath::CharType kBackgroundQueueSubdir[] =
     FILE_PATH_LITERAL("Background");
 constexpr base::FilePath::CharType kBackgroundQueuePrefix[] =
     FILE_PATH_LITERAL("P_Background");
-constexpr base::TimeDelta kBackgroundQueueUploadPeriod =
-    base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kBackgroundQueueUploadPeriod = base::Minutes(1);
 
 constexpr base::FilePath::CharType kManualQueueSubdir[] =
     FILE_PATH_LITERAL("Manual");
@@ -89,8 +86,7 @@
 // Failed upload retry delay: if an upload fails and there are no more incoming
 // events, collected events will not get uploaded for an indefinite time (see
 // b/192666219).
-constexpr base::TimeDelta kFailedUploadRetryDelay =
-    base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kFailedUploadRetryDelay = base::Seconds(1);
 
 // Returns vector of <priority, queue_options> for all expected queues in
 // Storage. Queues are all located under the given root directory.
diff --git a/components/reporting/storage/storage_queue_stress_test.cc b/components/reporting/storage/storage_queue_stress_test.cc
index e770e36..f9115022 100644
--- a/components/reporting/storage/storage_queue_stress_test.cc
+++ b/components/reporting/storage/storage_queue_stress_test.cc
@@ -184,7 +184,7 @@
   }
 
   QueueOptions BuildStorageQueueOptionsPeriodic(
-      base::TimeDelta upload_period = base::TimeDelta::FromSeconds(1)) const {
+      base::TimeDelta upload_period = base::Seconds(1)) const {
     return BuildStorageQueueOptionsImmediate().set_upload_period(upload_period);
   }
 
diff --git a/components/reporting/storage/storage_queue_unittest.cc b/components/reporting/storage/storage_queue_unittest.cc
index c56ab13..6b560bf 100644
--- a/components/reporting/storage/storage_queue_unittest.cc
+++ b/components/reporting/storage/storage_queue_unittest.cc
@@ -524,8 +524,7 @@
   }
 
   QueueOptions BuildStorageQueueOptionsImmediate(
-      base::TimeDelta upload_retry_delay =
-          base::TimeDelta::FromSeconds(1)) const {
+      base::TimeDelta upload_retry_delay = base::Seconds(1)) const {
     return QueueOptions(options_)
         .set_subdirectory(FILE_PATH_LITERAL("D1"))
         .set_file_prefix(FILE_PATH_LITERAL("F0001"))
@@ -533,7 +532,7 @@
   }
 
   QueueOptions BuildStorageQueueOptionsPeriodic(
-      base::TimeDelta upload_period = base::TimeDelta::FromSeconds(1)) const {
+      base::TimeDelta upload_period = base::Seconds(1)) const {
     return BuildStorageQueueOptionsImmediate().set_upload_period(upload_period);
   }
 
@@ -662,7 +661,7 @@
       .RetiresOnSaturation();
 
   // Trigger upload.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
 }
 
 TEST_P(StorageQueueTest, WriteIntoNewStorageQueueAndUploadWithFailures) {
@@ -689,7 +688,7 @@
       .RetiresOnSaturation();
 
   // Trigger upload.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
 }
 
 TEST_P(StorageQueueTest, WriteIntoNewStorageQueueReopenWriteMoreAndUpload) {
@@ -724,7 +723,7 @@
       .RetiresOnSaturation();
 
   // Trigger upload.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
 }
 
 TEST_P(StorageQueueTest,
@@ -773,7 +772,7 @@
       .RetiresOnSaturation();
 
   // Trigger upload.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
 }
 
 TEST_P(
@@ -823,7 +822,7 @@
       .RetiresOnSaturation();
 
   // Trigger upload.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
 }
 
 TEST_P(StorageQueueTest,
@@ -916,7 +915,7 @@
   }
 
   // Trigger upload.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
 }
 
 TEST_P(StorageQueueTest, WriteIntoNewStorageQueueAndFlush) {
@@ -1028,7 +1027,7 @@
         .RetiresOnSaturation();
 
     // Forward time to trigger upload
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
   // Confirm #0 and forward time again, removing record #0
   ConfirmOrDie(/*sequencing_id=*/0);
@@ -1046,7 +1045,7 @@
         }))
         .RetiresOnSaturation();
     // Forward time to trigger upload
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 
   // Confirm #1 and forward time again, removing record #1
@@ -1063,7 +1062,7 @@
         }))
         .RetiresOnSaturation();
     // Forward time to trigger upload
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 
   // Add more data and verify that #2 and new data are returned.
@@ -1086,7 +1085,7 @@
           return Status::StatusOK();
         }))
         .RetiresOnSaturation();
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 
   // Confirm #2 and forward time again, removing record #2
@@ -1106,7 +1105,7 @@
           return Status::StatusOK();
         }))
         .RetiresOnSaturation();
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 }
 
@@ -1133,7 +1132,7 @@
         .RetiresOnSaturation();
 
     // Forward time to trigger upload
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 
   // Confirm #0 and forward time again, removing record #0
@@ -1152,7 +1151,7 @@
         }))
         .RetiresOnSaturation();
     // Forward time to trigger upload
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 
   // Confirm #1 and forward time again, removing record #1
@@ -1169,7 +1168,7 @@
         }))
         .RetiresOnSaturation();
     // Forward time to trigger upload
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 
   ResetTestStorageQueue();
@@ -1197,7 +1196,7 @@
           return Status::StatusOK();
         }))
         .RetiresOnSaturation();
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 
   // Confirm #2 and forward time again, removing record #2
@@ -1217,7 +1216,7 @@
           return Status::StatusOK();
         }))
         .RetiresOnSaturation();
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 }
 
@@ -1245,7 +1244,7 @@
         .RetiresOnSaturation();
 
     // Forward time to trigger upload
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 
   // Confirm #0 and forward time again, removing record #0
@@ -1264,7 +1263,7 @@
         }))
         .RetiresOnSaturation();
     // Forward time to trigger upload
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 
   // Confirm #1 and forward time again, removing record #1
@@ -1281,7 +1280,7 @@
         }))
         .RetiresOnSaturation();
     // Forward time to trigger upload
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 
   ResetTestStorageQueue();
@@ -1314,7 +1313,7 @@
           return Status::StatusOK();
         }))
         .RetiresOnSaturation();
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 
   // Confirm #2 and forward time again, removing record #2
@@ -1337,7 +1336,7 @@
           return Status::StatusOK();
         }))
         .RetiresOnSaturation();
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 }
 
@@ -1528,7 +1527,7 @@
     WriteStringOrDie(kData[0]);  // Immediately uploads and fails.
 
     // Let it retry upload and verify.
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 }
 
@@ -1561,7 +1560,7 @@
           return Status::StatusOK();
         }))
         .RetiresOnSaturation();
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 
   // Confirm 0 and make sure no retry happens (since everything is confirmed).
@@ -1570,7 +1569,7 @@
       .Times(0);
 
   ConfirmOrDie(/*sequencing_id=*/0);
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
 }
 
 TEST_P(StorageQueueTest, WriteEncryptFailure) {
@@ -1609,7 +1608,7 @@
         .RetiresOnSaturation();
 
     // Forward time to trigger upload
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 
   // Confirm #1 and forward time again, possibly removing records #0 and #1
@@ -1627,7 +1626,7 @@
         }))
         .RetiresOnSaturation();
     // Forward time to trigger upload
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 
   // Now force confirm the very beginning and forward time again.
@@ -1656,7 +1655,7 @@
         }))
         .RetiresOnSaturation();
     // Forward time to trigger upload
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 
   // Force confirm #0 and forward time again.
@@ -1682,7 +1681,7 @@
         }))
         .RetiresOnSaturation();
     // Forward time to trigger upload
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 }
 
diff --git a/components/reporting/storage/storage_unittest.cc b/components/reporting/storage/storage_unittest.cc
index bfd331d..0e78d17 100644
--- a/components/reporting/storage/storage_unittest.cc
+++ b/components/reporting/storage/storage_unittest.cc
@@ -734,8 +734,7 @@
       const StorageOptions& options,
       scoped_refptr<EncryptionModuleInterface> encryption_module =
           EncryptionModule::Create(
-              /*renew_encryption_key_period=*/base::TimeDelta::FromMinutes(
-                  30))) {
+              /*renew_encryption_key_period=*/base::Minutes(30))) {
     ASSERT_FALSE(storage_) << "TestStorage already assigned";
     StatusOr<scoped_refptr<Storage>> storage_result =
         CreateTestStorage(options, encryption_module);
@@ -770,8 +769,7 @@
       const StorageOptions& options,
       scoped_refptr<EncryptionModuleInterface> encryption_module =
           EncryptionModule::Create(
-              /*renew_encryption_key_period=*/base::TimeDelta::FromMinutes(
-                  30))) {
+              /*renew_encryption_key_period=*/base::Minutes(30))) {
     // Initialize Storage with no key.
     test::TestEvent<StatusOr<scoped_refptr<Storage>>> e;
     test_compression_module_ =
@@ -991,7 +989,7 @@
       .RetiresOnSaturation();
 
   // Trigger upload.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
 }
 
 TEST_P(StorageTest, WriteIntoNewStorageAndUploadWithKeyUpdate) {
@@ -1000,7 +998,7 @@
     return;
   }
 
-  static constexpr auto kKeyRenewalTime = base::TimeDelta::FromSeconds(5);
+  static constexpr auto kKeyRenewalTime = base::Seconds(5);
   CreateTestStorageOrDie(BuildTestStorageOptions(),
                          EncryptionModule::Create(kKeyRenewalTime));
   WriteStringOrDie(MANUAL_BATCH, kData[0]);
@@ -1045,8 +1043,7 @@
   WriteStringOrDie(MANUAL_BATCH, kMoreData[2]);
 
   // Wait to trigger encryption key request on the next upload
-  task_environment_.FastForwardBy(kKeyRenewalTime +
-                                  base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(kKeyRenewalTime + base::Seconds(1));
 
   // Set uploader expectations with encryption key request.
   test::TestCallbackAutoWaiter waiter;
@@ -1095,7 +1092,7 @@
       .RetiresOnSaturation();
 
   // Trigger upload.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
 }
 
 TEST_P(StorageTest, WriteIntoNewStorageAndFlush) {
@@ -1176,7 +1173,7 @@
         .RetiresOnSaturation();
 
     // Forward time to trigger upload
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 
   // Confirm #0 and forward time again, removing data #0
@@ -1194,7 +1191,7 @@
         })))
         .RetiresOnSaturation();
     // Forward time to trigger upload
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 
   // Confirm #1 and forward time again, removing data #1
@@ -1211,7 +1208,7 @@
         })))
         .RetiresOnSaturation();
     // Forward time to trigger upload
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 
   // Add more records and verify that #2 and new records are returned.
@@ -1233,7 +1230,7 @@
           return Status::StatusOK();
         })))
         .RetiresOnSaturation();
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 
   // Confirm #2 and forward time again, removing data #2
@@ -1251,7 +1248,7 @@
           return Status::StatusOK();
         })))
         .RetiresOnSaturation();
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 }
 
@@ -1510,7 +1507,7 @@
           return Status::StatusOK();
         })))
         .RetiresOnSaturation();
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(20));
+    task_environment_.FastForwardBy(base::Seconds(20));
   }
 
   // Confirm #0 SLOW_BATCH, removing data #0
@@ -1546,7 +1543,7 @@
           return Status::StatusOK();
         })))
         .RetiresOnSaturation();
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(20));
+    task_environment_.FastForwardBy(base::Seconds(20));
   }
 }
 
@@ -1575,7 +1572,7 @@
                      kData[0]);  // Immediately uploads and fails.
 
     // Let it retry upload and verify.
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 }
 
@@ -1624,7 +1621,7 @@
         })))
         .RetiresOnSaturation();
     // Forward time to trigger upload
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 
   // Confirm #1 and forward time again, possibly removing records #0 and #1
@@ -1641,7 +1638,7 @@
         })))
         .RetiresOnSaturation();
     // Forward time to trigger upload
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 
   // Now force confirm #0 and forward time again.
@@ -1667,7 +1664,7 @@
         })))
         .RetiresOnSaturation();
     // Forward time to trigger upload
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 
   // Force confirm #0 and forward time again.
@@ -1690,7 +1687,7 @@
         })))
         .RetiresOnSaturation();
     // Forward time to trigger upload
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 }
 
@@ -1720,7 +1717,7 @@
         << write_result;
 
     // Forward time to trigger upload
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 
   // This time key delivery is to succeed.
@@ -1736,7 +1733,7 @@
       .RetiresOnSaturation();
 
   // Forward time to trigger upload
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
 
   // Successfully write data
   WriteStringOrDie(FAST_BATCH, kData[0]);
@@ -1758,7 +1755,7 @@
         .RetiresOnSaturation();
 
     // Trigger successful upload.
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 
   ResetTestStorage();
@@ -1787,7 +1784,7 @@
         .RetiresOnSaturation();
 
     // Trigger upload.
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 }
 
diff --git a/components/reporting/util/task_runner_context_unittest.cc b/components/reporting/util/task_runner_context_unittest.cc
index 2c36498..fa646ce 100644
--- a/components/reporting/util/task_runner_context_unittest.cc
+++ b/components/reporting/util/task_runner_context_unittest.cc
@@ -111,7 +111,7 @@
         : TaskRunnerContext<uint32_t>(std::move(callback),
                                       std::move(task_runner)),
           init_value_(init_value),
-          delay_(base::TimeDelta::FromSecondsD(0.1)) {}
+          delay_(base::Seconds(0.1)) {}
 
    private:
     void Halve(uint32_t value, uint32_t log) {
@@ -120,7 +120,7 @@
         Response(log);
         return;
       }
-      delay_ += base::TimeDelta::FromSecondsD(0.1);
+      delay_ += base::Seconds(0.1);
       ScheduleAfter(delay_, &SeriesOfDelaysContext::Halve,
                     base::Unretained(this), value / 2, log + 1);
     }
@@ -159,7 +159,7 @@
         : TaskRunnerContext<uint32_t>(std::move(callback),
                                       std::move(task_runner)),
           init_value_(init_value),
-          delay_(base::TimeDelta::FromSecondsD(0.1)) {}
+          delay_(base::Seconds(0.1)) {}
 
    private:
     void Halve(uint32_t value, uint32_t log) {
@@ -170,7 +170,7 @@
       }
       // Perform a calculation on a generic thread pool with delay,
       // then get back to the sequence by calling Schedule from there.
-      delay_ += base::TimeDelta::FromSecondsD(0.1);
+      delay_ += base::Seconds(0.1);
       base::ThreadPool::PostDelayedTask(
           FROM_HERE,
           base::BindOnce(
diff --git a/components/rlz/rlz_tracker.cc b/components/rlz/rlz_tracker.cc
index 72718ea..dfe758c 100644
--- a/components/rlz/rlz_tracker.cc
+++ b/components/rlz/rlz_tracker.cc
@@ -40,11 +40,11 @@
 // Maximum and minimum delay for financial ping we would allow to be set through
 // master preferences. Somewhat arbitrary, may need to be adjusted in future.
 #if BUILDFLAG(IS_CHROMEOS_ASH)
-const base::TimeDelta kMinInitDelay = base::TimeDelta::FromSeconds(60);
-const base::TimeDelta kMaxInitDelay = base::TimeDelta::FromHours(24);
+const base::TimeDelta kMinInitDelay = base::Seconds(60);
+const base::TimeDelta kMaxInitDelay = base::Hours(24);
 #else
-const base::TimeDelta kMinInitDelay = base::TimeDelta::FromSeconds(20);
-const base::TimeDelta kMaxInitDelay = base::TimeDelta::FromSeconds(200);
+const base::TimeDelta kMinInitDelay = base::Seconds(20);
+const base::TimeDelta kMaxInitDelay = base::Seconds(200);
 #endif
 
 void RecordProductEvents(bool first_run,
diff --git a/components/rlz/rlz_tracker_unittest.cc b/components/rlz/rlz_tracker_unittest.cc
index fba7899b..cd27531b 100644
--- a/components/rlz/rlz_tracker_unittest.cc
+++ b/components/rlz/rlz_tracker_unittest.cc
@@ -467,7 +467,7 @@
 #endif
 }
 
-const base::TimeDelta kDelay = base::TimeDelta::FromMilliseconds(20);
+const base::TimeDelta kDelay = base::Milliseconds(20);
 
 TEST_F(RlzLibTest, RecordProductEvent) {
   RLZTracker::RecordProductEvent(rlz_lib::CHROME, RLZTracker::ChromeOmnibox(),
diff --git a/components/safe_browsing/content/browser/client_side_detection_service.cc b/components/safe_browsing/content/browser/client_side_detection_service.cc
index 76f892d..22910b7 100644
--- a/components/safe_browsing/content/browser/client_side_detection_service.cc
+++ b/components/safe_browsing/content/browser/client_side_detection_service.cc
@@ -339,11 +339,9 @@
   const CacheState& cache_state = *it->second;
   if (cache_state.is_phishing
           ? cache_state.timestamp >
-                base::Time::Now() -
-                    base::TimeDelta::FromMinutes(kPositiveCacheIntervalMinutes)
+                base::Time::Now() - base::Minutes(kPositiveCacheIntervalMinutes)
           : cache_state.timestamp >
-                base::Time::Now() -
-                    base::TimeDelta::FromDays(kNegativeCacheIntervalDays)) {
+                base::Time::Now() - base::Days(kNegativeCacheIntervalDays)) {
     *is_phishing = cache_state.is_phishing;
     return true;
   }
@@ -356,11 +354,10 @@
   // could be used for this purpose even if we will not use the entry to
   // satisfy the request from the cache.
   base::TimeDelta positive_cache_interval =
-      std::max(base::TimeDelta::FromMinutes(kPositiveCacheIntervalMinutes),
-               base::TimeDelta::FromDays(kReportsIntervalDays));
-  base::TimeDelta negative_cache_interval =
-      std::max(base::TimeDelta::FromDays(kNegativeCacheIntervalDays),
-               base::TimeDelta::FromDays(kReportsIntervalDays));
+      std::max(base::Minutes(kPositiveCacheIntervalMinutes),
+               base::Days(kReportsIntervalDays));
+  base::TimeDelta negative_cache_interval = std::max(
+      base::Days(kNegativeCacheIntervalDays), base::Days(kReportsIntervalDays));
 
   // Remove elements from the cache that will no longer be used.
   for (auto it = cache_.begin(); it != cache_.end();) {
@@ -388,8 +385,7 @@
 void ClientSideDetectionService::AddPhishingReport(base::Time timestamp) {
   phishing_report_times_.push_back(timestamp);
 
-  base::Time cutoff =
-      base::Time::Now() - base::TimeDelta::FromDays(kReportsIntervalDays);
+  base::Time cutoff = base::Time::Now() - base::Days(kReportsIntervalDays);
 
   // Erase items older than cutoff because we will never care about them again.
   while (!phishing_report_times_.empty() &&
diff --git a/components/safe_browsing/content/browser/client_side_model_loader.cc b/components/safe_browsing/content/browser/client_side_model_loader.cc
index 69d6862..70a9ca1b 100644
--- a/components/safe_browsing/content/browser/client_side_model_loader.cc
+++ b/components/safe_browsing/content/browser/client_side_model_loader.cc
@@ -272,7 +272,7 @@
       (status == MODEL_SUCCESS || status == MODEL_NOT_CHANGED)) {
     // We're adding 60s of additional delay to make sure we're past
     // the model's age.
-    max_age += base::TimeDelta::FromMinutes(1);
+    max_age += base::Minutes(1);
     delay_ms = max_age.InMilliseconds();
   }
 
@@ -289,7 +289,7 @@
       FROM_HERE,
       base::BindOnce(&ModelLoader::StartFetch, weak_factory_.GetWeakPtr(),
                      /*only_from_cache=*/false),
-      base::TimeDelta::FromMilliseconds(delay_ms));
+      base::Milliseconds(delay_ms));
 }
 
 void ModelLoader::CancelFetcher() {
diff --git a/components/safe_browsing/content/browser/download/download_stats.cc b/components/safe_browsing/content/browser/download/download_stats.cc
index 1a7bc627..cc9fd0a 100644
--- a/components/safe_browsing/content/browser/download/download_stats.cc
+++ b/components/safe_browsing/content/browser/download/download_stats.cc
@@ -115,8 +115,8 @@
   base::UmaHistogramCustomTimes(
       "SBClientDownload.SafeDownloadOpenedLatency2" + metric_suffix,
       /* sample */ download_opened_time - download_end_time,
-      /* min */ base::TimeDelta::FromSeconds(1),
-      /* max */ base::TimeDelta::FromDays(1), /* buckets */ 50);
+      /* min */ base::Seconds(1),
+      /* max */ base::Days(1), /* buckets */ 50);
 
   RecordDownloadOpenedFileType(download_content, download_opened_time,
                                download_end_time);
@@ -189,8 +189,8 @@
       "SBClientDownload.SafeDownloadOpenedLatencyByContentType." +
           download_content_str,
       /* sample */ download_opened_time - download_end_time,
-      /* min */ base::TimeDelta::FromSeconds(1),
-      /* max */ base::TimeDelta::FromDays(1), /* buckets */ 50);
+      /* min */ base::Seconds(1),
+      /* max */ base::Days(1), /* buckets */ 50);
 }
 
 void RecordDownloadFileTypeAttributes(
@@ -227,8 +227,8 @@
     base::UmaHistogramCustomTimes(
         "SBClientDownload.UserGestureFileType.LastBypassDownloadInterval",
         /* sample */ base::Time::Now() - last_bypass_time.value(),
-        /* min */ base::TimeDelta::FromSeconds(1),
-        /* max */ base::TimeDelta::FromDays(1), /* buckets */ 50);
+        /* min */ base::Seconds(1),
+        /* max */ base::Days(1), /* buckets */ 50);
   }
 }
 
diff --git a/components/safe_browsing/content/browser/download/download_stats_unittest.cc b/components/safe_browsing/content/browser/download/download_stats_unittest.cc
index ab5fcef..73cedbb6 100644
--- a/components/safe_browsing/content/browser/download/download_stats_unittest.cc
+++ b/components/safe_browsing/content/browser/download/download_stats_unittest.cc
@@ -84,30 +84,27 @@
   // Not logged for dangerous downloads.
   RecordDownloadOpened(
       download::DownloadDangerType::DOWNLOAD_DANGER_TYPE_DANGEROUS_CONTENT,
-      fake_content, download_end_time + base::TimeDelta::FromDays(1),
-      download_end_time,
+      fake_content, download_end_time + base::Days(1), download_end_time,
       /*show_download_in_folder=*/false);
   histogram_tester.ExpectTotalCount(
       "SBClientDownload.SafeDownloadOpenedLatency2.OpenDirectly", 0);
 
   RecordDownloadOpened(
       download::DownloadDangerType::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS,
-      fake_content, download_end_time + base::TimeDelta::FromDays(1),
-      download_end_time,
+      fake_content, download_end_time + base::Days(1), download_end_time,
       /*show_download_in_folder=*/false);
   histogram_tester.ExpectTimeBucketCount(
       "SBClientDownload.SafeDownloadOpenedLatency2.OpenDirectly",
-      /*sample=*/base::TimeDelta::FromDays(1),
+      /*sample=*/base::Days(1),
       /*count=*/1);
 
   RecordDownloadOpened(
       download::DownloadDangerType::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS,
-      fake_content, download_end_time + base::TimeDelta::FromHours(5),
-      download_end_time,
+      fake_content, download_end_time + base::Hours(5), download_end_time,
       /*show_download_in_folder=*/true);
   histogram_tester.ExpectTimeBucketCount(
       "SBClientDownload.SafeDownloadOpenedLatency2.ShowInFolder",
-      /*sample=*/base::TimeDelta::FromHours(5),
+      /*sample=*/base::Hours(5),
       /*count=*/1);
 }
 
@@ -117,27 +114,27 @@
   base::Time download_end_time = base::Time::Now();
 
   RecordDownloadOpenedFileType(download::DownloadContent::SPREADSHEET,
-                               download_end_time + base::TimeDelta::FromDays(1),
+                               download_end_time + base::Days(1),
                                download_end_time);
   histogram_tester.ExpectTimeBucketCount(
       "SBClientDownload.SafeDownloadOpenedLatencyByContentType.SPREADSHEET",
-      /*sample=*/base::TimeDelta::FromDays(1),
+      /*sample=*/base::Days(1),
       /*count=*/1);
 
-  RecordDownloadOpenedFileType(
-      download::DownloadContent::PRESENTATION,
-      download_end_time + base::TimeDelta::FromHours(5), download_end_time);
+  RecordDownloadOpenedFileType(download::DownloadContent::PRESENTATION,
+                               download_end_time + base::Hours(5),
+                               download_end_time);
   histogram_tester.ExpectTimeBucketCount(
       "SBClientDownload.SafeDownloadOpenedLatencyByContentType.PRESENTATION",
-      /*sample=*/base::TimeDelta::FromHours(5),
+      /*sample=*/base::Hours(5),
       /*count=*/1);
 
   RecordDownloadOpenedFileType(download::DownloadContent::ARCHIVE,
-                               download_end_time + base::TimeDelta::FromDays(1),
+                               download_end_time + base::Days(1),
                                download_end_time);
   histogram_tester.ExpectTimeBucketCount(
       "SBClientDownload.SafeDownloadOpenedLatencyByContentType.ARCHIVE",
-      /*sample=*/base::TimeDelta::FromDays(1),
+      /*sample=*/base::Days(1),
       /*count=*/1);
 }
 
@@ -158,11 +155,11 @@
   }
   {
     base::HistogramTester histogram_tester;
-    RecordDownloadFileTypeAttributes(DownloadFileType::ALLOW_ON_USER_GESTURE,
-                                     /*has_user_gesture=*/true,
-                                     /*visited_referrer_before=*/true,
-                                     /*latest_bypass_time=*/base::Time::Now() -
-                                         base::TimeDelta::FromHours(1));
+    RecordDownloadFileTypeAttributes(
+        DownloadFileType::ALLOW_ON_USER_GESTURE,
+        /*has_user_gesture=*/true,
+        /*visited_referrer_before=*/true,
+        /*latest_bypass_time=*/base::Time::Now() - base::Hours(1));
     histogram_tester.ExpectBucketCount(
         "SBClientDownload.UserGestureFileType.Attributes",
         /*sample=*/UserGestureFileTypeAttributes::TOTAL_TYPE_CHECKED,
@@ -182,7 +179,7 @@
         /*expected_count=*/1);
     histogram_tester.ExpectUniqueTimeSample(
         "SBClientDownload.UserGestureFileType.LastBypassDownloadInterval",
-        /*sample=*/base::TimeDelta::FromHours(1),
+        /*sample=*/base::Hours(1),
         /*expected_bucket_count=*/1);
   }
 }
diff --git a/components/safe_browsing/content/browser/password_protection/password_protection_request_content.cc b/components/safe_browsing/content/browser/password_protection/password_protection_request_content.cc
index a7e46fe..709a49d 100644
--- a/components/safe_browsing/content/browser/password_protection/password_protection_request_content.cc
+++ b/components/safe_browsing/content/browser/password_protection/password_protection_request_content.cc
@@ -192,7 +192,7 @@
           base::BindOnce(
               &PasswordProtectionRequestContent::OnGetDomFeatureTimeout,
               AsWeakPtr()),
-          base::TimeDelta::FromMilliseconds(kDomFeatureTimeoutMs));
+          base::Milliseconds(kDomFeatureTimeoutMs));
   dom_feature_start_time_ = base::TimeTicks::Now();
 }
 
diff --git a/components/safe_browsing/content/browser/safe_browsing_blocking_page.cc b/components/safe_browsing/content/browser/safe_browsing_blocking_page.cc
index 585726f..68cf597 100644
--- a/components/safe_browsing/content/browser/safe_browsing_blocking_page.cc
+++ b/components/safe_browsing/content/browser/safe_browsing_blocking_page.cc
@@ -133,10 +133,10 @@
 void SafeBrowsingBlockingPage::OnInterstitialClosing() {
   // With committed interstitials OnProceed and OnDontProceed don't get
   // called, so call FinishThreatDetails from here.
-  FinishThreatDetails((proceeded() ? base::TimeDelta::FromMilliseconds(
-                                         threat_details_proceed_delay())
-                                   : base::TimeDelta()),
-                      proceeded(), controller()->metrics_helper()->NumVisits());
+  FinishThreatDetails(
+      (proceeded() ? base::Milliseconds(threat_details_proceed_delay())
+                   : base::TimeDelta()),
+      proceeded(), controller()->metrics_helper()->NumVisits());
   if (!proceeded()) {
     OnDontProceedDone();
   } else {
diff --git a/components/safe_browsing/content/browser/safe_browsing_metrics_collector.cc b/components/safe_browsing/content/browser/safe_browsing_metrics_collector.cc
index 7beb8308..32f8e7ea 100644
--- a/components/safe_browsing/content/browser/safe_browsing_metrics_collector.cc
+++ b/components/safe_browsing/content/browser/safe_browsing_metrics_collector.cc
@@ -43,7 +43,7 @@
 
 base::Time PrefValueToTime(const base::Value& value) {
   return base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromSeconds(base::ValueToInt64(value).value_or(0)));
+      base::Seconds(base::ValueToInt64(value).value_or(0)));
 }
 
 }  // namespace
@@ -66,10 +66,9 @@
 }
 
 void SafeBrowsingMetricsCollector::StartLogging() {
-  base::TimeDelta log_interval =
-      base::TimeDelta::FromDays(kMetricsLoggingIntervalDay);
+  base::TimeDelta log_interval = base::Days(kMetricsLoggingIntervalDay);
   base::Time last_log_time =
-      base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromSeconds(
+      base::Time::FromDeltaSinceWindowsEpoch(base::Seconds(
           pref_service_->GetInt64(prefs::kSafeBrowsingMetricsLastLogTime)));
   base::TimeDelta delay = base::Time::Now() - last_log_time;
   if (delay >= log_interval) {
@@ -87,8 +86,7 @@
   pref_service_->SetInt64(
       prefs::kSafeBrowsingMetricsLastLogTime,
       base::Time::Now().ToDeltaSinceWindowsEpoch().InSeconds());
-  ScheduleNextLoggingAfterInterval(
-      base::TimeDelta::FromDays(kMetricsLoggingIntervalDay));
+  ScheduleNextLoggingAfterInterval(base::Days(kMetricsLoggingIntervalDay));
 }
 
 void SafeBrowsingMetricsCollector::ScheduleNextLoggingAfterInterval(
@@ -122,9 +120,8 @@
     if (!IsBypassEventType(event_type)) {
       continue;
     }
-    int bypass_count =
-        GetEventCountSince(user_state, event_type,
-                           base::Time::Now() - base::TimeDelta::FromDays(28));
+    int bypass_count = GetEventCountSince(user_state, event_type,
+                                          base::Time::Now() - base::Days(28));
     base::UmaHistogramCounts100("SafeBrowsing.Daily.BypassCountLast28Days." +
                                     GetUserStateMetricSuffix(user_state) + "." +
                                     GetEventTypeMetricSuffix(event_type),
@@ -152,7 +149,7 @@
     for (auto event_map : state_map.second.DictItems()) {
       event_map.second.EraseListValueIf([&](const auto& timestamp) {
         return base::Time::Now() - PrefValueToTime(timestamp) >
-               base::TimeDelta::FromDays(kEventMaxDurationDay);
+               base::Days(kEventMaxDurationDay);
       });
     }
   }
@@ -224,7 +221,7 @@
                                            EventType::USER_STATE_DISABLED);
     int disabled_times_last_week = GetEventCountSince(
         UserState::kEnhancedProtection, EventType::USER_STATE_DISABLED,
-        base::Time::Now() - base::TimeDelta::FromDays(7));
+        base::Time::Now() - base::Days(7));
     if (disabled_times_last_week <= kEsbDisabledMetricsQuota) {
       LogEnhancedProtectionDisabledMetrics();
     }
@@ -281,7 +278,7 @@
         "SafeBrowsing.EsbDisabled.BypassCountLast28Days." +
             GetEventTypeMetricSuffix(event_type),
         GetEventCountSince(UserState::kEnhancedProtection, event_type,
-                           base::Time::Now() - base::TimeDelta::FromDays(28)));
+                           base::Time::Now() - base::Days(28)));
 
     const absl::optional<Event> latest_event =
         GetLatestEventFromEventType(UserState::kEnhancedProtection, event_type);
@@ -301,8 +298,8 @@
         "SafeBrowsing.EsbDisabled.LastBypassEventInterval." +
             GetEventTypeMetricSuffix(latest_event->type),
         /* sample */ base::Time::Now() - latest_event->timestamp,
-        /* min */ base::TimeDelta::FromSeconds(1),
-        /* max */ base::TimeDelta::FromDays(1), /* buckets */ 50);
+        /* min */ base::Seconds(1),
+        /* max */ base::Days(1), /* buckets */ 50);
   }
 
   const absl::optional<Event> latest_enabled_event =
diff --git a/components/safe_browsing/content/browser/safe_browsing_metrics_collector_unittest.cc b/components/safe_browsing/content/browser/safe_browsing_metrics_collector_unittest.cc
index eb7275a..64a1db7 100644
--- a/components/safe_browsing/content/browser/safe_browsing_metrics_collector_unittest.cc
+++ b/components/safe_browsing/content/browser/safe_browsing_metrics_collector_unittest.cc
@@ -94,8 +94,7 @@
 TEST_F(SafeBrowsingMetricsCollectorTest,
        StartLogging_LastLoggingIntervalLongerThanScheduleInterval) {
   base::HistogramTester histograms;
-  SetSafeBrowsingMetricsLastLogTime(base::Time::Now() -
-                                    base::TimeDelta::FromHours(25));
+  SetSafeBrowsingMetricsLastLogTime(base::Time::Now() - base::Hours(25));
   SetSafeBrowsingState(&pref_service_, SafeBrowsingState::STANDARD_PROTECTION);
   SetExtendedReportingPrefForTests(&pref_service_, true);
   metrics_collector_->StartLogging();
@@ -110,7 +109,7 @@
   histograms.ExpectBucketCount(
       "SafeBrowsing.Pref.Daily.SafeBrowsingModeManaged",
       /* sample */ 1, /* expected_count */ 0);
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(23));
+  task_environment_.FastForwardBy(base::Hours(23));
   // Shouldn't log new data before the scheduled time.
   histograms.ExpectBucketCount("SafeBrowsing.Pref.Daily.SafeBrowsingState",
                                /* sample */ 1, /* expected_count */ 1);
@@ -122,7 +121,7 @@
   histograms.ExpectBucketCount(
       "SafeBrowsing.Pref.Daily.SafeBrowsingModeManaged",
       /* sample */ 1, /* expected_count */ 0);
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
   // Should log when the scheduled time arrives.
   histograms.ExpectBucketCount("SafeBrowsing.Pref.Daily.SafeBrowsingState",
                                /* sample */ 1, /* expected_count */ 2);
@@ -134,7 +133,7 @@
   histograms.ExpectBucketCount(
       "SafeBrowsing.Pref.Daily.SafeBrowsingModeManaged",
       /* sample */ 1, /* expected_count */ 0);
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(24));
+  task_environment_.FastForwardBy(base::Hours(24));
   // Should log when the scheduled time arrives.
   histograms.ExpectBucketCount("SafeBrowsing.Pref.Daily.SafeBrowsingState",
                                /* sample */ 1, /* expected_count */ 3);
@@ -150,7 +149,7 @@
   // Should now detect SafeBrowsing as Managed.
   pref_service_.SetManagedPref(prefs::kSafeBrowsingEnabled,
                                std::make_unique<base::Value>(true));
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(24));
+  task_environment_.FastForwardBy(base::Hours(24));
   histograms.ExpectBucketCount(
       "SafeBrowsing.Pref.Daily.SafeBrowsingModeManaged",
       /* sample */ 0, /* expected_count */ 3);
@@ -162,18 +161,17 @@
 TEST_F(SafeBrowsingMetricsCollectorTest,
        StartLogging_LastLoggingIntervalShorterThanScheduleInterval) {
   base::HistogramTester histograms;
-  SetSafeBrowsingMetricsLastLogTime(base::Time::Now() -
-                                    base::TimeDelta::FromHours(1));
+  SetSafeBrowsingMetricsLastLogTime(base::Time::Now() - base::Hours(1));
   SetSafeBrowsingState(&pref_service_, SafeBrowsingState::STANDARD_PROTECTION);
   metrics_collector_->StartLogging();
   // Should not log immediately because the last logging interval is shorter
   // than the interval.
   histograms.ExpectBucketCount("SafeBrowsing.Pref.Daily.SafeBrowsingState",
                                /* sample */ 1, /* expected_count */ 0);
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(23));
+  task_environment_.FastForwardBy(base::Hours(23));
   histograms.ExpectBucketCount("SafeBrowsing.Pref.Daily.SafeBrowsingState",
                                /* sample */ 1, /* expected_count */ 1);
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(24));
+  task_environment_.FastForwardBy(base::Hours(24));
   histograms.ExpectBucketCount("SafeBrowsing.Pref.Daily.SafeBrowsingState",
                                /* sample */ 1, /* expected_count */ 2);
 }
@@ -181,8 +179,7 @@
 TEST_F(SafeBrowsingMetricsCollectorTest,
        StartLogging_PrefChangeBetweenLogging) {
   base::HistogramTester histograms;
-  SetSafeBrowsingMetricsLastLogTime(base::Time::Now() -
-                                    base::TimeDelta::FromHours(25));
+  SetSafeBrowsingMetricsLastLogTime(base::Time::Now() - base::Hours(25));
   SetSafeBrowsingState(&pref_service_, SafeBrowsingState::STANDARD_PROTECTION);
   metrics_collector_->StartLogging();
   histograms.ExpectTotalCount("SafeBrowsing.Pref.Daily.SafeBrowsingState",
@@ -190,7 +187,7 @@
   histograms.ExpectBucketCount("SafeBrowsing.Pref.Daily.SafeBrowsingState",
                                /* sample */ 1, /* expected_count */ 1);
   SetSafeBrowsingState(&pref_service_, SafeBrowsingState::NO_SAFE_BROWSING);
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(24));
+  task_environment_.FastForwardBy(base::Hours(24));
   histograms.ExpectTotalCount("SafeBrowsing.Pref.Daily.SafeBrowsingState",
                               /* expected_count */ 2);
   histograms.ExpectBucketCount("SafeBrowsing.Pref.Daily.SafeBrowsingState",
@@ -203,7 +200,7 @@
   metrics_collector_->AddSafeBrowsingEventToPref(
       EventType::DATABASE_INTERSTITIAL_BYPASS);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
   for (int i = 0; i < 29; i++) {
     metrics_collector_->AddSafeBrowsingEventToPref(
         EventType::DATABASE_INTERSTITIAL_BYPASS);
@@ -214,7 +211,7 @@
   EXPECT_EQ(30u, timestamps->GetList().size());
   EXPECT_TRUE(IsSortedInChronologicalOrder(timestamps));
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
   metrics_collector_->AddSafeBrowsingEventToPref(
       EventType::DATABASE_INTERSTITIAL_BYPASS);
 
@@ -251,16 +248,14 @@
   base::HistogramTester histograms;
   SetSafeBrowsingState(&pref_service_, SafeBrowsingState::ENHANCED_PROTECTION);
 
-  FastForwardAndAddEvent(base::TimeDelta::FromHours(1),
+  FastForwardAndAddEvent(base::Hours(1),
                          EventType::DATABASE_INTERSTITIAL_BYPASS);
-  FastForwardAndAddEvent(base::TimeDelta::FromHours(1),
-                         EventType::CSD_INTERSTITIAL_BYPASS);
-  FastForwardAndAddEvent(base::TimeDelta::FromHours(1),
+  FastForwardAndAddEvent(base::Hours(1), EventType::CSD_INTERSTITIAL_BYPASS);
+  FastForwardAndAddEvent(base::Hours(1),
                          EventType::DATABASE_INTERSTITIAL_BYPASS);
-  FastForwardAndAddEvent(base::TimeDelta::FromHours(1),
-                         EventType::CSD_INTERSTITIAL_BYPASS);
+  FastForwardAndAddEvent(base::Hours(1), EventType::CSD_INTERSTITIAL_BYPASS);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
   // Changing enhanced protection to standard protection should log the metric.
   SetSafeBrowsingState(&pref_service_, SafeBrowsingState::STANDARD_PROTECTION);
   histograms.ExpectUniqueSample("SafeBrowsing.EsbDisabled.LastBypassEventType",
@@ -268,7 +263,7 @@
                                 /* expected_count */ 1);
   histograms.ExpectUniqueTimeSample(
       "SafeBrowsing.EsbDisabled.LastBypassEventInterval.CsdInterstitialBypass",
-      /* sample */ base::TimeDelta::FromHours(1),
+      /* sample */ base::Hours(1),
       /* expected_count */ 1);
   histograms.ExpectBucketCount(
       "SafeBrowsing.EsbDisabled.BypassCountLast28Days."
@@ -294,9 +289,9 @@
                                 /* expected_count */ 1);
 
   // Changing enhanced protection to no protection should log the metric.
-  FastForwardAndAddEvent(base::TimeDelta::FromHours(1),
+  FastForwardAndAddEvent(base::Hours(1),
                          EventType::REAL_TIME_INTERSTITIAL_BYPASS);
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
   SetSafeBrowsingState(&pref_service_, SafeBrowsingState::NO_SAFE_BROWSING);
   histograms.ExpectTotalCount("SafeBrowsing.EsbDisabled.LastBypassEventType",
                               /* expected_count */ 2);
@@ -307,7 +302,7 @@
   histograms.ExpectTimeBucketCount(
       "SafeBrowsing.EsbDisabled.LastBypassEventInterval."
       "RealTimeInterstitialBypass",
-      /* sample */ base::TimeDelta::FromDays(1),
+      /* sample */ base::Days(1),
       /* expected_count */ 1);
   histograms.ExpectBucketCount(
       "SafeBrowsing.EsbDisabled.BypassCountLast28Days."
@@ -336,7 +331,7 @@
   base::HistogramTester histograms;
   SetSafeBrowsingState(&pref_service_, SafeBrowsingState::ENHANCED_PROTECTION);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
   SetSafeBrowsingState(&pref_service_, SafeBrowsingState::STANDARD_PROTECTION);
   histograms.ExpectBucketCount("SafeBrowsing.EsbDisabled.LastEnabledInterval",
                                /* sample */ 0,
@@ -346,7 +341,7 @@
   histograms.ExpectTotalCount("SafeBrowsing.EsbDisabled.LastEnabledInterval",
                               /* expected_count */ 1);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
   SetSafeBrowsingState(&pref_service_, SafeBrowsingState::NO_SAFE_BROWSING);
   histograms.ExpectBucketCount("SafeBrowsing.EsbDisabled.LastEnabledInterval",
                                /* sample */ 1,
@@ -358,7 +353,7 @@
   histograms.ExpectTotalCount("SafeBrowsing.EsbDisabled.LastEnabledInterval",
                               /* expected_count */ 2);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(7));
+  task_environment_.FastForwardBy(base::Days(7));
   SetSafeBrowsingState(&pref_service_, SafeBrowsingState::STANDARD_PROTECTION);
   histograms.ExpectBucketCount("SafeBrowsing.EsbDisabled.LastEnabledInterval",
                                /* sample */ 7,
@@ -381,32 +376,32 @@
   base::HistogramTester histograms;
   SetSafeBrowsingState(&pref_service_, SafeBrowsingState::ENHANCED_PROTECTION);
 
-  FastForwardAndAddEvent(base::TimeDelta::FromHours(1),
+  FastForwardAndAddEvent(base::Hours(1),
                          EventType::DATABASE_INTERSTITIAL_BYPASS);
   SetSafeBrowsingState(&pref_service_, SafeBrowsingState::STANDARD_PROTECTION);
   histograms.ExpectTotalCount("SafeBrowsing.EsbDisabled.LastBypassEventType",
                               /* expected_count */ 1);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
   SetSafeBrowsingState(&pref_service_, SafeBrowsingState::ENHANCED_PROTECTION);
   SetSafeBrowsingState(&pref_service_, SafeBrowsingState::STANDARD_PROTECTION);
   histograms.ExpectTotalCount("SafeBrowsing.EsbDisabled.LastBypassEventType",
                               /* expected_count */ 2);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
   SetSafeBrowsingState(&pref_service_, SafeBrowsingState::ENHANCED_PROTECTION);
   SetSafeBrowsingState(&pref_service_, SafeBrowsingState::STANDARD_PROTECTION);
   histograms.ExpectTotalCount("SafeBrowsing.EsbDisabled.LastBypassEventType",
                               /* expected_count */ 3);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
   SetSafeBrowsingState(&pref_service_, SafeBrowsingState::ENHANCED_PROTECTION);
   SetSafeBrowsingState(&pref_service_, SafeBrowsingState::STANDARD_PROTECTION);
   // The metric is not logged because it is already logged 3 times in a week.
   histograms.ExpectTotalCount("SafeBrowsing.EsbDisabled.LastBypassEventType",
                               /* expected_count */ 3);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(7));
+  task_environment_.FastForwardBy(base::Days(7));
   SetSafeBrowsingState(&pref_service_, SafeBrowsingState::ENHANCED_PROTECTION);
   SetSafeBrowsingState(&pref_service_, SafeBrowsingState::STANDARD_PROTECTION);
   // The metric is logged again because the oldest entry is more than 7 days
@@ -420,7 +415,7 @@
   base::HistogramTester histograms;
   SetSafeBrowsingState(&pref_service_, SafeBrowsingState::ENHANCED_PROTECTION);
 
-  FastForwardAndAddEvent(base::TimeDelta::FromHours(1),
+  FastForwardAndAddEvent(base::Hours(1),
                          EventType::DATABASE_INTERSTITIAL_BYPASS);
 
   pref_service_.SetManagedPref(prefs::kSafeBrowsingEnabled,
@@ -434,16 +429,15 @@
   SetSafeBrowsingMetricsLastLogTime(base::Time::Now());
   SetSafeBrowsingState(&pref_service_, SafeBrowsingState::ENHANCED_PROTECTION);
   metrics_collector_->StartLogging();
-  FastForwardAndAddEvent(base::TimeDelta::FromHours(1),
+  FastForwardAndAddEvent(base::Hours(1),
                          EventType::DATABASE_INTERSTITIAL_BYPASS);
-  FastForwardAndAddEvent(base::TimeDelta::FromHours(1),
+  FastForwardAndAddEvent(base::Hours(1),
                          EventType::DATABASE_INTERSTITIAL_BYPASS);
-  FastForwardAndAddEvent(base::TimeDelta::FromHours(1),
-                         EventType::CSD_INTERSTITIAL_BYPASS);
-  FastForwardAndAddEvent(base::TimeDelta::FromHours(1),
+  FastForwardAndAddEvent(base::Hours(1), EventType::CSD_INTERSTITIAL_BYPASS);
+  FastForwardAndAddEvent(base::Hours(1),
                          EventType::REAL_TIME_INTERSTITIAL_BYPASS);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
   histograms.ExpectTotalCount(
       "SafeBrowsing.Daily.BypassCountLast28Days.EnhancedProtection.AllEvents",
       /* expected_count */ 1);
@@ -467,9 +461,8 @@
       /* sample */ 1,
       /* expected_count */ 1);
 
-  FastForwardAndAddEvent(base::TimeDelta::FromHours(1),
-                         EventType::CSD_INTERSTITIAL_BYPASS);
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  FastForwardAndAddEvent(base::Hours(1), EventType::CSD_INTERSTITIAL_BYPASS);
+  task_environment_.FastForwardBy(base::Days(1));
   histograms.ExpectTotalCount(
       "SafeBrowsing.Daily.BypassCountLast28Days.EnhancedProtection.AllEvents",
       /* expected_count */ 2);
@@ -483,7 +476,7 @@
       /* sample */ 2,
       /* expected_count */ 1);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
   histograms.ExpectTotalCount(
       "SafeBrowsing.Daily.BypassCountLast28Days.EnhancedProtection.AllEvents",
       /* expected_count */ 3);
@@ -504,10 +497,10 @@
   SetSafeBrowsingMetricsLastLogTime(base::Time::Now());
   SetSafeBrowsingState(&pref_service_, SafeBrowsingState::ENHANCED_PROTECTION);
   metrics_collector_->StartLogging();
-  FastForwardAndAddEvent(base::TimeDelta::FromHours(1),
+  FastForwardAndAddEvent(base::Hours(1),
                          EventType::DATABASE_INTERSTITIAL_BYPASS);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
   histograms.ExpectBucketCount(
       "SafeBrowsing.Daily.BypassCountLast28Days.EnhancedProtection.AllEvents",
       /* sample */ 0,
@@ -527,7 +520,7 @@
       /* sample */ 1,
       /* expected_count */ 1);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(28));
+  task_environment_.FastForwardBy(base::Days(28));
   // The event is older than 28 days, so it shouldn't be counted.
   histograms.ExpectBucketCount(
       "SafeBrowsing.Daily.BypassCountLast28Days.EnhancedProtection.AllEvents",
@@ -546,22 +539,22 @@
   SetSafeBrowsingMetricsLastLogTime(base::Time::Now());
   SetSafeBrowsingState(&pref_service_, SafeBrowsingState::ENHANCED_PROTECTION);
   metrics_collector_->StartLogging();
-  FastForwardAndAddEvent(base::TimeDelta::FromHours(1),
+  FastForwardAndAddEvent(base::Hours(1),
                          EventType::DATABASE_INTERSTITIAL_BYPASS);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
   histograms.ExpectUniqueSample(
       "SafeBrowsing.Daily.BypassCountLast28Days.EnhancedProtection.AllEvents",
       /* sample */ 1,
       /* expected_count */ 1);
 
   SetSafeBrowsingState(&pref_service_, SafeBrowsingState::STANDARD_PROTECTION);
-  FastForwardAndAddEvent(base::TimeDelta::FromHours(1),
+  FastForwardAndAddEvent(base::Hours(1),
                          EventType::DATABASE_INTERSTITIAL_BYPASS);
-  FastForwardAndAddEvent(base::TimeDelta::FromHours(1),
+  FastForwardAndAddEvent(base::Hours(1),
                          EventType::DATABASE_INTERSTITIAL_BYPASS);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
   histograms.ExpectUniqueSample(
       "SafeBrowsing.Daily.BypassCountLast28Days.StandardProtection.AllEvents",
       /* sample */ 2,
@@ -574,12 +567,11 @@
   SetSafeBrowsingMetricsLastLogTime(base::Time::Now());
   SetSafeBrowsingState(&pref_service_, SafeBrowsingState::STANDARD_PROTECTION);
   metrics_collector_->StartLogging();
-  FastForwardAndAddEvent(base::TimeDelta::FromHours(1),
+  FastForwardAndAddEvent(base::Hours(1),
                          EventType::DATABASE_INTERSTITIAL_BYPASS);
-  FastForwardAndAddEvent(base::TimeDelta::FromDays(1),
-                         EventType::CSD_INTERSTITIAL_BYPASS);
+  FastForwardAndAddEvent(base::Days(1), EventType::CSD_INTERSTITIAL_BYPASS);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(30));
+  task_environment_.FastForwardBy(base::Days(30));
   const base::Value* db_timestamps = GetTsFromUserStateAndEventType(
       UserState::kStandardProtection, EventType::DATABASE_INTERSTITIAL_BYPASS);
   // The event is removed from pref because it was logged more than 30 days.
@@ -589,7 +581,7 @@
   // The CSD event is still in pref because it was logged less than 30 days.
   EXPECT_EQ(1u, csd_timestamps->GetList().size());
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
   // The CSD event is also removed because it was logged more than 30 days now.
   EXPECT_EQ(0u, csd_timestamps->GetList().size());
 
@@ -619,16 +611,15 @@
   EXPECT_EQ(absl::nullopt, metrics_collector_->GetLatestEventTimestamp(
                                EventType::DATABASE_INTERSTITIAL_BYPASS));
   // Timestamps are rounded to second when stored in prefs.
-  base::Time rounded_time =
-      base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromSeconds(
-          base::Time::Now().ToDeltaSinceWindowsEpoch().InSeconds()));
-  FastForwardAndAddEvent(base::TimeDelta::FromHours(1),
+  base::Time rounded_time = base::Time::FromDeltaSinceWindowsEpoch(
+      base::Seconds(base::Time::Now().ToDeltaSinceWindowsEpoch().InSeconds()));
+  FastForwardAndAddEvent(base::Hours(1),
                          EventType::DATABASE_INTERSTITIAL_BYPASS);
-  EXPECT_EQ(rounded_time + base::TimeDelta::FromHours(1),
+  EXPECT_EQ(rounded_time + base::Hours(1),
             metrics_collector_->GetLatestEventTimestamp(
                 EventType::DATABASE_INTERSTITIAL_BYPASS));
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
-  EXPECT_EQ(rounded_time + base::TimeDelta::FromHours(1),
+  task_environment_.FastForwardBy(base::Days(1));
+  EXPECT_EQ(rounded_time + base::Hours(1),
             metrics_collector_->GetLatestEventTimestamp(
                 EventType::DATABASE_INTERSTITIAL_BYPASS));
 }
diff --git a/components/safe_browsing/content/browser/safe_browsing_navigation_observer_manager.cc b/components/safe_browsing/content/browser/safe_browsing_navigation_observer_manager.cc
index 72a2bac..32c9d44 100644
--- a/components/safe_browsing/content/browser/safe_browsing_navigation_observer_manager.cc
+++ b/components/safe_browsing/content/browser/safe_browsing_navigation_observer_manager.cc
@@ -348,7 +348,7 @@
       pref_service_(pref_service) {
   // Schedule clean up in 2 minutes.
   ScheduleNextCleanUpAfterInterval(
-      base::TimeDelta::FromSecondsD(kNavigationFootprintTTLInSecond));
+      base::Seconds(kNavigationFootprintTTLInSecond));
 }
 
 void SafeBrowsingNavigationObserverManager::RecordNavigationEvent(
@@ -437,7 +437,7 @@
   CleanUpUserGestures();
   CleanUpIpAddresses();
   ScheduleNextCleanUpAfterInterval(
-      base::TimeDelta::FromSecondsD(kNavigationFootprintTTLInSecond));
+      base::Seconds(kNavigationFootprintTTLInSecond));
 }
 
 SafeBrowsingNavigationObserverManager::AttributionResult
diff --git a/components/safe_browsing/content/browser/triggers/ad_sampler_trigger.cc b/components/safe_browsing/content/browser/triggers/ad_sampler_trigger.cc
index ce6ab444d..6c484e84 100644
--- a/components/safe_browsing/content/browser/triggers/ad_sampler_trigger.cc
+++ b/components/safe_browsing/content/browser/triggers/ad_sampler_trigger.cc
@@ -125,7 +125,7 @@
       FROM_HERE,
       base::BindOnce(&AdSamplerTrigger::CreateAdSampleReport,
                      weak_ptr_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(start_report_delay_ms_));
+      base::Milliseconds(start_report_delay_ms_));
 }
 
 void AdSamplerTrigger::CreateAdSampleReport() {
@@ -159,7 +159,7 @@
           base::Unretained(trigger_manager_), TriggerType::AD_SAMPLE,
           base::Unretained(web_contents()), base::TimeDelta(),
           /*did_proceed=*/false, /*num_visits=*/0, error_options),
-      base::TimeDelta::FromMilliseconds(finish_report_delay_ms_));
+      base::Milliseconds(finish_report_delay_ms_));
 
   UMA_HISTOGRAM_ENUMERATION(kAdSamplerTriggerActionMetricName, AD_SAMPLED,
                             MAX_ACTIONS);
diff --git a/components/safe_browsing/content/browser/triggers/suspicious_site_trigger.cc b/components/safe_browsing/content/browser/triggers/suspicious_site_trigger.cc
index 458ef5d..a7c7ba5e 100644
--- a/components/safe_browsing/content/browser/triggers/suspicious_site_trigger.cc
+++ b/components/safe_browsing/content/browser/triggers/suspicious_site_trigger.cc
@@ -112,7 +112,7 @@
       FROM_HERE,
       base::BindOnce(&SuspiciousSiteTrigger::ReportDelayTimerFired,
                      weak_ptr_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(finish_report_delay_ms_));
+      base::Milliseconds(finish_report_delay_ms_));
 
   UMA_HISTOGRAM_ENUMERATION(kSuspiciousSiteTriggerEventMetricName,
                             SuspiciousSiteTriggerEvent::REPORT_STARTED);
diff --git a/components/safe_browsing/content/browser/triggers/trigger_throttler.cc b/components/safe_browsing/content/browser/triggers/trigger_throttler.cc
index 5e61175..2e97419 100644
--- a/components/safe_browsing/content/browser/triggers/trigger_throttler.cc
+++ b/components/safe_browsing/content/browser/triggers/trigger_throttler.cc
@@ -22,7 +22,7 @@
 
 namespace {
 const size_t kUnlimitedTriggerQuota = std::numeric_limits<size_t>::max();
-constexpr base::TimeDelta kOneDayTimeDelta = base::TimeDelta::FromDays(1);
+constexpr base::TimeDelta kOneDayTimeDelta = base::Days(1);
 
 // Predicate used to search |trigger_type_and_quota_list_| by trigger type.
 class TriggerTypeIs {
diff --git a/components/safe_browsing/content/browser/triggers/trigger_throttler_unittest.cc b/components/safe_browsing/content/browser/triggers/trigger_throttler_unittest.cc
index 6f6ac551..b4c7ba61 100644
--- a/components/safe_browsing/content/browser/triggers/trigger_throttler_unittest.cc
+++ b/components/safe_browsing/content/browser/triggers/trigger_throttler_unittest.cc
@@ -116,7 +116,7 @@
   // use up quota. We then advance the clock by a day and ensure quota is
   // available again.
   base::SimpleTestClock test_clock;
-  test_clock.SetNow(base::Time::Now() - base::TimeDelta::FromDays(10));
+  test_clock.SetNow(base::Time::Now() - base::Days(10));
   base::Time base_ts = test_clock.Now();
 
   SetTestClock(&test_clock);
@@ -139,8 +139,7 @@
 
   // Move the clock forward by 1 day (and a bit) and try the trigger again,
   // quota should be available now.
-  test_clock.Advance(base::TimeDelta::FromDays(1) +
-                     base::TimeDelta::FromSeconds(1));
+  test_clock.Advance(base::Days(1) + base::Seconds(1));
   base::Time advanced_ts = test_clock.Now();
   EXPECT_TRUE(throttler()->TriggerCanFire(TriggerType::AD_SAMPLE));
 
diff --git a/components/safe_browsing/content/browser/web_ui/safe_browsing_ui.cc b/components/safe_browsing/content/browser/web_ui/safe_browsing_ui.cc
index e7ffd885..f15c04a 100644
--- a/components/safe_browsing/content/browser/web_ui/safe_browsing_ui.cc
+++ b/components/safe_browsing/content/browser/web_ui/safe_browsing_ui.cc
@@ -426,8 +426,8 @@
 #if BUILDFLAG(SAFE_BROWSING_DB_LOCAL)
 
 base::Value UserReadableTimeFromMillisSinceEpoch(int64_t time_in_milliseconds) {
-  base::Time time = base::Time::UnixEpoch() +
-                    base::TimeDelta::FromMilliseconds(time_in_milliseconds);
+  base::Time time =
+      base::Time::UnixEpoch() + base::Milliseconds(time_in_milliseconds);
   return base::Value(
       base::UTF16ToASCII(base::TimeFormatShortDateAndTime(time)));
 }
@@ -1221,7 +1221,7 @@
   base::DictionaryValue result;
 
   base::Time timestamp = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(event.event_time_usec()));
+      base::Microseconds(event.event_time_usec()));
   result.SetDouble("time", timestamp.ToJsTime());
 
   base::DictionaryValue event_dict;
diff --git a/components/safe_browsing/content/renderer/phishing_classifier/phishing_dom_feature_extractor.cc b/components/safe_browsing/content/renderer/phishing_classifier/phishing_dom_feature_extractor.cc
index a2fa859..222ae1e 100644
--- a/components/safe_browsing/content/renderer/phishing_classifier/phishing_dom_feature_extractor.cc
+++ b/components/safe_browsing/content/renderer/phishing_classifier/phishing_dom_feature_extractor.cc
@@ -198,15 +198,14 @@
         num_elements = 0;
         base::TimeTicks now = clock_->NowTicks();
         if (now - page_feature_state_->start_time >=
-            base::TimeDelta::FromMilliseconds(kMaxTotalTimeMs)) {
+            base::Milliseconds(kMaxTotalTimeMs)) {
           // We expect this to happen infrequently, so record when it does.
           UMA_HISTOGRAM_COUNTS_1M("SBClientPhishing.DOMFeatureTimeout", 1);
           RunCallback(false);
           return;
         }
         base::TimeDelta chunk_elapsed = now - current_chunk_start_time;
-        if (chunk_elapsed >=
-            base::TimeDelta::FromMilliseconds(kMaxTimePerChunkMs)) {
+        if (chunk_elapsed >= base::Milliseconds(kMaxTimePerChunkMs)) {
           // The time limit for the current chunk is up, so post a task to
           // continue extraction.
           //
diff --git a/components/safe_browsing/content/renderer/phishing_classifier/phishing_term_feature_extractor.cc b/components/safe_browsing/content/renderer/phishing_classifier/phishing_term_feature_extractor.cc
index bb5b188..525636b 100644
--- a/components/safe_browsing/content/renderer/phishing_classifier/phishing_term_feature_extractor.cc
+++ b/components/safe_browsing/content/renderer/phishing_classifier/phishing_term_feature_extractor.cc
@@ -158,16 +158,14 @@
     if (num_words >= kClockCheckGranularity) {
       num_words = 0;
       base::TimeTicks now = clock_->NowTicks();
-      if (now - state_->start_time >=
-          base::TimeDelta::FromMilliseconds(kMaxTotalTimeMs)) {
+      if (now - state_->start_time >= base::Milliseconds(kMaxTotalTimeMs)) {
         // We expect this to happen infrequently, so record when it does.
         UMA_HISTOGRAM_COUNTS_1M("SBClientPhishing.TermFeatureTimeout", 1);
         RunCallback(false);
         return;
       }
       base::TimeDelta chunk_elapsed = now - current_chunk_start_time;
-      if (chunk_elapsed >=
-          base::TimeDelta::FromMilliseconds(kMaxTimePerChunkMs)) {
+      if (chunk_elapsed >= base::Milliseconds(kMaxTimePerChunkMs)) {
         // The time limit for the current chunk is up, so post a task to
         // continue extraction.
         //
diff --git a/components/safe_browsing/content/renderer/phishing_classifier/phishing_term_feature_extractor_unittest.cc b/components/safe_browsing/content/renderer/phishing_classifier/phishing_term_feature_extractor_unittest.cc
index 88b3d98..df6d73aa 100644
--- a/components/safe_browsing/content/renderer/phishing_classifier/phishing_term_feature_extractor_unittest.cc
+++ b/components/safe_browsing/content/renderer/phishing_classifier/phishing_term_feature_extractor_unittest.cc
@@ -317,22 +317,22 @@
       // Time check at the start of the first chunk of work.
       .WillOnce(Return(now))
       // Time check after the first 5 words.
-      .WillOnce(Return(now + base::TimeDelta::FromMilliseconds(3)))
+      .WillOnce(Return(now + base::Milliseconds(3)))
       // Time check after the next 5 words.
-      .WillOnce(Return(now + base::TimeDelta::FromMilliseconds(6)))
+      .WillOnce(Return(now + base::Milliseconds(6)))
       // Time check after the next 5 words.
-      .WillOnce(Return(now + base::TimeDelta::FromMilliseconds(9)))
+      .WillOnce(Return(now + base::Milliseconds(9)))
       // Time check after the next 5 words.  This is over the chunk
       // time limit, so a continuation task will be posted.
-      .WillOnce(Return(now + base::TimeDelta::FromMilliseconds(12)))
+      .WillOnce(Return(now + base::Milliseconds(12)))
       // Time check at the start of the second chunk of work.
-      .WillOnce(Return(now + base::TimeDelta::FromMilliseconds(22)))
+      .WillOnce(Return(now + base::Milliseconds(22)))
       // Time check after the next 5 words.
-      .WillOnce(Return(now + base::TimeDelta::FromMilliseconds(25)))
+      .WillOnce(Return(now + base::Milliseconds(25)))
       // Time check after the next 5 words.
-      .WillOnce(Return(now + base::TimeDelta::FromMilliseconds(28)))
+      .WillOnce(Return(now + base::Milliseconds(28)))
       // A final check for the histograms.
-      .WillOnce(Return(now + base::TimeDelta::FromMilliseconds(30)));
+      .WillOnce(Return(now + base::Milliseconds(30)));
   extractor_->SetTickClockForTesting(&tick_clock);
 
   FeatureMap expected_features;
@@ -412,13 +412,13 @@
       // Time check at the start of the first chunk of work.
       .WillOnce(Return(now))
       // Time check after the first 5 words,
-      .WillOnce(Return(now + base::TimeDelta::FromMilliseconds(300)))
+      .WillOnce(Return(now + base::Milliseconds(300)))
       // Time check at the start of the second chunk of work.
-      .WillOnce(Return(now + base::TimeDelta::FromMilliseconds(350)))
+      .WillOnce(Return(now + base::Milliseconds(350)))
       // Time check after the next 5 words.  This is over the limit.
-      .WillOnce(Return(now + base::TimeDelta::FromMilliseconds(600)))
+      .WillOnce(Return(now + base::Milliseconds(600)))
       // A final time check for the histograms.
-      .WillOnce(Return(now + base::TimeDelta::FromMilliseconds(620)));
+      .WillOnce(Return(now + base::Milliseconds(620)));
 
   features.Clear();
   shingle_hashes.clear();
@@ -439,10 +439,10 @@
       // Time check at the start of the first chunk of work.
       .WillOnce(Return(now))
       // Time check after the first 5 words.
-      .WillOnce(Return(now + base::TimeDelta::FromMilliseconds(7)))
+      .WillOnce(Return(now + base::Milliseconds(7)))
       // Time check after the next 5 words. This should be greater than
       // kMaxTimePerChunkMs so that we stop and schedule extraction for later.
-      .WillOnce(Return(now + base::TimeDelta::FromMilliseconds(14)));
+      .WillOnce(Return(now + base::Milliseconds(14)));
   extractor_->SetTickClockForTesting(&tick_clock);
 
   FeatureMap features;
diff --git a/components/safe_browsing/core/browser/db/allowlist_checker_client.cc b/components/safe_browsing/core/browser/db/allowlist_checker_client.cc
index ad27174..b1bc6f7 100644
--- a/components/safe_browsing/core/browser/db/allowlist_checker_client.cc
+++ b/components/safe_browsing/core/browser/db/allowlist_checker_client.cc
@@ -89,7 +89,7 @@
   // check takes too long.
   auto timeout_callback = base::BindOnce(&AllowlistCheckerClient::OnTimeout,
                                          weak_factory_.GetWeakPtr());
-  timer_.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(kLookupTimeoutMS),
+  timer_.Start(FROM_HERE, base::Milliseconds(kLookupTimeoutMS),
                std::move(timeout_callback));
 }
 
diff --git a/components/safe_browsing/core/browser/db/allowlist_checker_client_unittest.cc b/components/safe_browsing/core/browser/db/allowlist_checker_client_unittest.cc
index 7ad138a..e33e013 100644
--- a/components/safe_browsing/core/browser/db/allowlist_checker_client_unittest.cc
+++ b/components/safe_browsing/core/browser/db/allowlist_checker_client_unittest.cc
@@ -117,11 +117,11 @@
   MockBoolCallback callback;
   AllowlistCheckerClient::StartCheckCsdAllowlist(database_manager_, target_url_,
                                                  callback.Get());
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   // No callback yet.
 
   EXPECT_CALL(callback, Run(true /* did_match_allowlist */));
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment_.FastForwardBy(base::Seconds(5));
 }
 
 }  // namespace safe_browsing
diff --git a/components/safe_browsing/core/browser/db/v4_get_hash_protocol_manager.cc b/components/safe_browsing/core/browser/db/v4_get_hash_protocol_manager.cc
index 2b1bf57..cfe26eb 100644
--- a/components/safe_browsing/core/browser/db/v4_get_hash_protocol_manager.cc
+++ b/components/safe_browsing/core/browser/db/v4_get_hash_protocol_manager.cc
@@ -608,7 +608,7 @@
       positive_expiry = clock_->Now() + TimeDelta::FromSeconds(
                                             match.cache_duration().seconds());
     } else {
-      positive_expiry = clock_->Now() - base::TimeDelta::FromSeconds(1);
+      positive_expiry = clock_->Now() - base::Seconds(1);
     }
     FullHashInfo full_hash_info(match.threat().hash(), list_id,
                                 positive_expiry);
diff --git a/components/safe_browsing/core/browser/db/v4_get_hash_protocol_manager_unittest.cc b/components/safe_browsing/core/browser/db/v4_get_hash_protocol_manager_unittest.cc
index ca29702..d5c8838f 100644
--- a/components/safe_browsing/core/browser/db/v4_get_hash_protocol_manager_unittest.cc
+++ b/components/safe_browsing/core/browser/db/v4_get_hash_protocol_manager_unittest.cc
@@ -310,8 +310,7 @@
   matched_locally[full_hash].push_back(
       StoreAndHashPrefix(GetChromeUrlApiId(), prefix));
   std::vector<FullHashInfo> expected_results;
-  FullHashInfo fhi(full_hash, GetChromeUrlApiId(),
-                   now + base::TimeDelta::FromSeconds(300));
+  FullHashInfo fhi(full_hash, GetChromeUrlApiId(), now + base::Seconds(300));
   fhi.metadata.api_permissions.insert("NOTIFICATIONS");
   expected_results.push_back(fhi);
 
@@ -332,8 +331,7 @@
   ASSERT_EQ(1u, cache->size());
   EXPECT_EQ(1u, cache->count(prefix));
   const CachedHashPrefixInfo& cached_result = cache->at(prefix);
-  EXPECT_EQ(cached_result.negative_expiry,
-            now + base::TimeDelta::FromSeconds(600));
+  EXPECT_EQ(cached_result.negative_expiry, now + base::Seconds(600));
   ASSERT_EQ(1u, cached_result.full_hash_infos.size());
   EXPECT_EQ(FullHash("Everything's shiny, Cap'n."),
             cached_result.full_hash_infos[0].full_hash);
@@ -451,7 +449,7 @@
   base::Time cache_expire;
   EXPECT_TRUE(pm->ParseHashResponse(res_data, &full_hash_infos, &cache_expire));
 
-  EXPECT_EQ(now + base::TimeDelta::FromSeconds(600), cache_expire);
+  EXPECT_EQ(now + base::Seconds(600), cache_expire);
   // Even though the server responded with two ThreatMatch responses, one
   // should have been dropped.
   ASSERT_EQ(1ul, full_hash_infos.size());
@@ -460,8 +458,8 @@
   EXPECT_EQ(GetChromeUrlApiId(), fhi.list_id);
   EXPECT_EQ(1ul, fhi.metadata.api_permissions.size());
   EXPECT_EQ(1ul, fhi.metadata.api_permissions.count("NOTIFICATIONS"));
-  EXPECT_EQ(now + base::TimeDelta::FromSeconds(300), fhi.positive_expiry);
-  EXPECT_EQ(now + base::TimeDelta::FromSeconds(400), pm->next_gethash_time_);
+  EXPECT_EQ(now + base::Seconds(300), fhi.positive_expiry);
+  EXPECT_EQ(now + base::Seconds(400), pm->next_gethash_time_);
 }
 
 // Adds an entry with an ignored ThreatEntryType.
@@ -485,7 +483,7 @@
   EXPECT_FALSE(
       pm->ParseHashResponse(res_data, &full_hash_infos, &cache_expire));
 
-  EXPECT_EQ(now + base::TimeDelta::FromSeconds(600), cache_expire);
+  EXPECT_EQ(now + base::Seconds(600), cache_expire);
   // There should be no hash results.
   EXPECT_EQ(0ul, full_hash_infos.size());
 }
@@ -519,7 +517,7 @@
     base::Time cache_expire;
     EXPECT_TRUE(
         pm->ParseHashResponse(se_data, &full_hash_infos, &cache_expire));
-    EXPECT_EQ(now + base::TimeDelta::FromSeconds(600), cache_expire);
+    EXPECT_EQ(now + base::Seconds(600), cache_expire);
 
     // Ensure that the threat remains valid since we found a full hash match,
     // even though the metadata information could not be parsed correctly.
@@ -553,7 +551,7 @@
     base::Time cache_expire;
     EXPECT_TRUE(
         pm->ParseHashResponse(pha_data, &full_hash_infos, &cache_expire));
-    EXPECT_EQ(now + base::TimeDelta::FromSeconds(600), cache_expire);
+    EXPECT_EQ(now + base::Seconds(600), cache_expire);
 
     ASSERT_EQ(1ul, full_hash_infos.size());
     const FullHashInfo& fhi = full_hash_infos[0];
@@ -660,7 +658,7 @@
     base::Time cache_expire;
     EXPECT_TRUE(
         pm->ParseHashResponse(sf_data, &full_hash_infos, &cache_expire));
-    EXPECT_EQ(now + base::TimeDelta::FromSeconds(600), cache_expire);
+    EXPECT_EQ(now + base::Seconds(600), cache_expire);
 
     ASSERT_EQ(1ul, full_hash_infos.size());
     const FullHashInfo& fhi = full_hash_infos[0];
@@ -706,7 +704,7 @@
   base::Time cache_expire;
   EXPECT_TRUE(pm->ParseHashResponse(res_data, &full_hash_infos, &cache_expire));
 
-  EXPECT_EQ(now + base::TimeDelta::FromSeconds(600), cache_expire);
+  EXPECT_EQ(now + base::Seconds(600), cache_expire);
   ASSERT_EQ(1ul, full_hash_infos.size());
   const auto& fhi = full_hash_infos[0];
   EXPECT_EQ(full_hash, fhi.full_hash);
@@ -772,7 +770,7 @@
 
     // Prefix has a cache entry but full hash is not there. (Case: 1-b-i)
     CachedHashPrefixInfo* entry = &(*cache)[prefix];
-    entry->negative_expiry = now + base::TimeDelta::FromMinutes(5);
+    entry->negative_expiry = now + base::Minutes(5);
     pm->GetFullHashCachedResults(matched_locally, now, &prefixes_to_request,
                                  &cached_full_hash_infos);
     EXPECT_TRUE(prefixes_to_request.empty());
@@ -786,7 +784,7 @@
 
     // Expired negative cache entry. (Case: 1-b-ii)
     CachedHashPrefixInfo* entry = &(*cache)[prefix];
-    entry->negative_expiry = now - base::TimeDelta::FromMinutes(5);
+    entry->negative_expiry = now - base::Minutes(5);
     pm->GetFullHashCachedResults(matched_locally, now, &prefixes_to_request,
                                  &cached_full_hash_infos);
     ASSERT_EQ(1ul, prefixes_to_request.size());
@@ -801,9 +799,9 @@
 
     // Now put unexpired full hash in the cache. (Case: 1-a-i)
     CachedHashPrefixInfo* entry = &(*cache)[prefix];
-    entry->negative_expiry = now + base::TimeDelta::FromMinutes(5);
+    entry->negative_expiry = now + base::Minutes(5);
     entry->full_hash_infos.emplace_back(full_hash, GetUrlMalwareId(),
-                                        now + base::TimeDelta::FromMinutes(3));
+                                        now + base::Minutes(3));
     pm->GetFullHashCachedResults(matched_locally, now, &prefixes_to_request,
                                  &cached_full_hash_infos);
     EXPECT_TRUE(prefixes_to_request.empty());
@@ -818,9 +816,9 @@
 
     // Expire the full hash in the cache. (Case: 1-a-ii)
     CachedHashPrefixInfo* entry = &(*cache)[prefix];
-    entry->negative_expiry = now + base::TimeDelta::FromMinutes(5);
+    entry->negative_expiry = now + base::Minutes(5);
     entry->full_hash_infos.emplace_back(full_hash, GetUrlMalwareId(),
-                                        now - base::TimeDelta::FromMinutes(3));
+                                        now - base::Minutes(3));
     pm->GetFullHashCachedResults(matched_locally, now, &prefixes_to_request,
                                  &cached_full_hash_infos);
     ASSERT_EQ(1ul, prefixes_to_request.size());
@@ -845,13 +843,13 @@
 
   FullHashCache* cache = pm->full_hash_cache_for_tests();
   CachedHashPrefixInfo* entry = &(*cache)[prefix_1];
-  entry->negative_expiry = now + base::TimeDelta::FromMinutes(100);
+  entry->negative_expiry = now + base::Minutes(100);
   // Put one unexpired full hash in the cache for a store we'll look in.
   entry->full_hash_infos.emplace_back(full_hash_1, GetUrlMalwareId(),
-                                      now + base::TimeDelta::FromSeconds(200));
+                                      now + base::Seconds(200));
   // Put one unexpired full hash in the cache for a store we'll not look in.
   entry->full_hash_infos.emplace_back(full_hash_1, GetUrlSocEngId(),
-                                      now + base::TimeDelta::FromSeconds(200));
+                                      now + base::Seconds(200));
 
   // Request full hash information from two stores.
   FullHashToStoreAndHashPrefixesMap matched_locally;
@@ -863,9 +861,9 @@
   // Expect full hash information from both stores.
   std::vector<FullHashInfo> expected_results;
   expected_results.emplace_back(full_hash_1, GetUrlMalwareId(),
-                                now + base::TimeDelta::FromSeconds(200));
+                                now + base::Seconds(200));
   expected_results.emplace_back(full_hash_2, GetChromeUrlApiId(),
-                                now + base::TimeDelta::FromSeconds(300));
+                                now + base::Seconds(300));
   expected_results[1].metadata.api_permissions.insert("NOTIFICATIONS");
 
   pm->GetFullHashes(
@@ -882,15 +880,13 @@
   // Verify the state of the cache.
   ASSERT_EQ(2u, cache->size());
   const CachedHashPrefixInfo& cached_result_1 = cache->at(prefix_1);
-  EXPECT_EQ(cached_result_1.negative_expiry,
-            now + base::TimeDelta::FromMinutes(100));
+  EXPECT_EQ(cached_result_1.negative_expiry, now + base::Minutes(100));
   ASSERT_EQ(2u, cached_result_1.full_hash_infos.size());
   EXPECT_EQ(full_hash_1, cached_result_1.full_hash_infos[0].full_hash);
   EXPECT_EQ(GetUrlMalwareId(), cached_result_1.full_hash_infos[0].list_id);
 
   const CachedHashPrefixInfo& cached_result_2 = cache->at(prefix_2);
-  EXPECT_EQ(cached_result_2.negative_expiry,
-            now + base::TimeDelta::FromSeconds(600));
+  EXPECT_EQ(cached_result_2.negative_expiry, now + base::Seconds(600));
   ASSERT_EQ(1u, cached_result_2.full_hash_infos.size());
   EXPECT_EQ(full_hash_2, cached_result_2.full_hash_infos[0].full_hash);
   EXPECT_EQ(GetChromeUrlApiId(), cached_result_2.full_hash_infos[0].list_id);
diff --git a/components/safe_browsing/core/browser/db/v4_local_database_manager.cc b/components/safe_browsing/core/browser/db/v4_local_database_manager.cc
index 9119c86..24f6bdd 100644
--- a/components/safe_browsing/core/browser/db/v4_local_database_manager.cc
+++ b/components/safe_browsing/core/browser/db/v4_local_database_manager.cc
@@ -933,8 +933,8 @@
          check->artificial_full_hash_to_store_and_hash_prefixes) {
       for (const auto& store_and_prefix : entry.second) {
         ListIdentifier list_id = store_and_prefix.list_id;
-        base::Time next = base::Time::Now() + base::TimeDelta::FromMinutes(
-                                                  kFullHashExpiryTimeInMinutes);
+        base::Time next =
+            base::Time::Now() + base::Minutes(kFullHashExpiryTimeInMinutes);
         full_hash_infos.emplace_back(entry.first, list_id, next);
       }
     }
diff --git a/components/safe_browsing/core/browser/db/v4_protocol_manager_util.cc b/components/safe_browsing/core/browser/db/v4_protocol_manager_util.cc
index 1822269..535187f5 100644
--- a/components/safe_browsing/core/browser/db/v4_protocol_manager_util.cc
+++ b/components/safe_browsing/core/browser/db/v4_protocol_manager_util.cc
@@ -311,8 +311,8 @@
     *multiplier *= 2;
   }
   base::TimeDelta next =
-      base::TimeDelta::FromMinutes(*multiplier * (1 + base::RandDouble()) * 15);
-  base::TimeDelta day = base::TimeDelta::FromHours(24);
+      base::Minutes(*multiplier * (1 + base::RandDouble()) * 15);
+  base::TimeDelta day = base::Hours(24);
   return next < day ? next : day;
 }
 
diff --git a/components/safe_browsing/core/browser/db/v4_test_util.cc b/components/safe_browsing/core/browser/db/v4_test_util.cc
index 46013a2..f201d7da 100644
--- a/components/safe_browsing/core/browser/db/v4_test_util.cc
+++ b/components/safe_browsing/core/browser/db/v4_test_util.cc
@@ -138,7 +138,7 @@
 
 FullHashInfo GetFullHashInfo(const GURL& url, const ListIdentifier& list_id) {
   return FullHashInfo(V4ProtocolManagerUtil::GetFullHash(url), list_id,
-                      base::Time::Now() + base::TimeDelta::FromMinutes(5));
+                      base::Time::Now() + base::Minutes(5));
 }
 
 FullHashInfo GetFullHashInfoWithMetadata(
diff --git a/components/safe_browsing/core/browser/db/v4_update_protocol_manager.cc b/components/safe_browsing/core/browser/db/v4_update_protocol_manager.cc
index 34bc157..84c4976 100644
--- a/components/safe_browsing/core/browser/db/v4_update_protocol_manager.cc
+++ b/components/safe_browsing/core/browser/db/v4_update_protocol_manager.cc
@@ -149,9 +149,9 @@
     ExtendedReportingLevelCallback extended_reporting_level_callback)
     : update_error_count_(0),
       update_back_off_mult_(1),
-      next_update_interval_(base::TimeDelta::FromSeconds(
-          base::RandInt(kV4TimerStartIntervalSecMin,
-                        kV4TimerStartIntervalSecMax))),
+      next_update_interval_(
+          base::Seconds(base::RandInt(kV4TimerStartIntervalSecMin,
+                                      kV4TimerStartIntervalSecMax))),
       config_(config),
       url_loader_factory_(url_loader_factory),
       update_callback_(update_callback),
@@ -285,8 +285,7 @@
     if (minimum_wait_duration_seconds < kV4TimerStartIntervalSecMin) {
       minimum_wait_duration_seconds = kV4TimerStartIntervalSecMin;
     }
-    next_update_interval_ =
-        base::TimeDelta::FromSeconds(minimum_wait_duration_seconds);
+    next_update_interval_ = base::Seconds(minimum_wait_duration_seconds);
   }
 
   for (ListUpdateResponse& list_update_response :
diff --git a/components/safe_browsing/core/browser/password_protection/password_protection_request.cc b/components/safe_browsing/core/browser/password_protection/password_protection_request.cc
index 48d0b845..9d0388c 100644
--- a/components/safe_browsing/core/browser/password_protection/password_protection_request.cc
+++ b/components/safe_browsing/core/browser/password_protection/password_protection_request.cc
@@ -405,7 +405,7 @@
   ui_task_runner()->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&PasswordProtectionRequest::Cancel, AsWeakPtr(), true),
-      base::TimeDelta::FromMilliseconds(request_timeout_in_ms_));
+      base::Milliseconds(request_timeout_in_ms_));
 }
 
 void PasswordProtectionRequest::OnURLLoaderComplete(
diff --git a/components/safe_browsing/core/browser/realtime/url_lookup_service_base.cc b/components/safe_browsing/core/browser/realtime/url_lookup_service_base.cc
index 0d3a7c7..1b723898 100644
--- a/components/safe_browsing/core/browser/realtime/url_lookup_service_base.cc
+++ b/components/safe_browsing/core/browser/realtime/url_lookup_service_base.cc
@@ -251,9 +251,8 @@
 
   // Enter backoff mode, calculate duration.
   next_backoff_duration_secs_ = GetBackoffDurationInSeconds();
-  backoff_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromSeconds(next_backoff_duration_secs_),
-      this, &RealTimeUrlLookupServiceBase::ResetFailures);
+  backoff_timer_.Start(FROM_HERE, base::Seconds(next_backoff_duration_secs_),
+                       this, &RealTimeUrlLookupServiceBase::ResetFailures);
   did_successful_lookup_since_last_backoff_ = false;
 }
 
@@ -406,7 +405,7 @@
                                     GetMetricSuffix(), req_data.size());
   owned_loader->AttachStringForUpload(req_data, "application/octet-stream");
   owned_loader->SetTimeoutDuration(
-      base::TimeDelta::FromSeconds(kURLLookupTimeoutDurationInSeconds));
+      base::Seconds(kURLLookupTimeoutDurationInSeconds));
   owned_loader->DownloadToStringOfUnboundedSizeUntilCrashAndDie(
       url_loader_factory_.get(),
       base::BindOnce(&RealTimeUrlLookupServiceBase::OnURLLoaderComplete,
diff --git a/components/safe_browsing/core/browser/realtime/url_lookup_service_unittest.cc b/components/safe_browsing/core/browser/realtime/url_lookup_service_unittest.cc
index 0d374c27..4c8779a 100644
--- a/components/safe_browsing/core/browser/realtime/url_lookup_service_unittest.cc
+++ b/components/safe_browsing/core/browser/realtime/url_lookup_service_unittest.cc
@@ -321,15 +321,15 @@
   EXPECT_TRUE(IsInBackoffMode());
 
   // Backoff not reset after 1 second.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   EXPECT_TRUE(IsInBackoffMode());
 
   // Backoff not reset after 299 seconds.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(298));
+  task_environment_.FastForwardBy(base::Seconds(298));
   EXPECT_TRUE(IsInBackoffMode());
 
   // Backoff should have been reset after 300 seconds.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(IsInBackoffMode());
 }
 
@@ -395,15 +395,15 @@
   EXPECT_TRUE(IsInBackoffMode());
 
   // Backoff not reset after 1 second.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   EXPECT_TRUE(IsInBackoffMode());
 
   // Backoff not reset after 299 seconds.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(298));
+  task_environment_.FastForwardBy(base::Seconds(298));
   EXPECT_TRUE(IsInBackoffMode());
 
   // Backoff should have been reset after 300 seconds.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(IsInBackoffMode());
 
   /////////////////////////////////////
@@ -418,15 +418,15 @@
   EXPECT_TRUE(IsInBackoffMode());
 
   // Backoff not reset after 1 second.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   EXPECT_TRUE(IsInBackoffMode());
 
   // Backoff not reset after 599 seconds.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(598));
+  task_environment_.FastForwardBy(base::Seconds(598));
   EXPECT_TRUE(IsInBackoffMode());
 
   // Backoff should have been reset after 600 seconds.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(IsInBackoffMode());
 
   //////////////////////////////////////
@@ -441,15 +441,15 @@
   EXPECT_TRUE(IsInBackoffMode());
 
   // Backoff not reset after 1 second.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   EXPECT_TRUE(IsInBackoffMode());
 
   // Backoff not reset after 1199 seconds.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1198));
+  task_environment_.FastForwardBy(base::Seconds(1198));
   EXPECT_TRUE(IsInBackoffMode());
 
   // Backoff should have been reset after 1200 seconds.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(IsInBackoffMode());
 
   ///////////////////////////////////////////////////
@@ -464,15 +464,15 @@
   EXPECT_TRUE(IsInBackoffMode());
 
   // Backoff not reset after 1 second.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   EXPECT_TRUE(IsInBackoffMode());
 
   // Backoff not reset after 1799 seconds.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1798));
+  task_environment_.FastForwardBy(base::Seconds(1798));
   EXPECT_TRUE(IsInBackoffMode());
 
   // Backoff should have been reset after 1800 seconds.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(IsInBackoffMode());
 
   ///////////////////////////////////////////////////
@@ -487,15 +487,15 @@
   EXPECT_TRUE(IsInBackoffMode());
 
   // Backoff not reset after 1 second.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   EXPECT_TRUE(IsInBackoffMode());
 
   // Backoff not reset after 1799 seconds.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1798));
+  task_environment_.FastForwardBy(base::Seconds(1798));
   EXPECT_TRUE(IsInBackoffMode());
 
   // Backoff should have been reset after 1800 seconds.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(IsInBackoffMode());
 }
 
@@ -520,15 +520,15 @@
   EXPECT_TRUE(IsInBackoffMode());
 
   // Backoff not reset after 1 second.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   EXPECT_TRUE(IsInBackoffMode());
 
   // Backoff not reset after 299 seconds.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(298));
+  task_environment_.FastForwardBy(base::Seconds(298));
   EXPECT_TRUE(IsInBackoffMode());
 
   // Backoff should have been reset after 300 seconds.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(IsInBackoffMode());
 
   /////////////////////////////////////
@@ -543,15 +543,15 @@
   EXPECT_TRUE(IsInBackoffMode());
 
   // Backoff not reset after 1 second.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   EXPECT_TRUE(IsInBackoffMode());
 
   // Backoff not reset after 599 seconds.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(598));
+  task_environment_.FastForwardBy(base::Seconds(598));
   EXPECT_TRUE(IsInBackoffMode());
 
   // Backoff should have been reset after 600 seconds.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(IsInBackoffMode());
 
   // The next lookup is a success. This should reset the backoff duration to
@@ -571,15 +571,15 @@
   EXPECT_TRUE(IsInBackoffMode());
 
   // Backoff not reset after 1 second.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   EXPECT_TRUE(IsInBackoffMode());
 
   // Backoff not reset after 299 seconds.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(298));
+  task_environment_.FastForwardBy(base::Seconds(298));
   EXPECT_TRUE(IsInBackoffMode());
 
   // Backoff should have been reset after 300 seconds.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(IsInBackoffMode());
 }
 
@@ -1010,7 +1010,7 @@
                                base::Time::Now().ToDoubleT())
           .get());
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_environment_.FastForwardBy(base::Minutes(1));
   EnableRealTimeUrlLookup({kRealTimeUrlLookupReferrerChain}, {});
   GURL url(kTestUrl);
   SetUpRTLookupResponse(RTLookupResponse::ThreatInfo::DANGEROUS,
diff --git a/components/safe_browsing/core/browser/safe_browsing_token_fetch_tracker.cc b/components/safe_browsing/core/browser/safe_browsing_token_fetch_tracker.cc
index e12a1058..b9ae10b1 100644
--- a/components/safe_browsing/core/browser/safe_browsing_token_fetch_tracker.cc
+++ b/components/safe_browsing/core/browser/safe_browsing_token_fetch_tracker.cc
@@ -34,8 +34,7 @@
       base::BindOnce(&SafeBrowsingTokenFetchTracker::OnTokenFetchTimeout,
                      weak_ptr_factory_.GetWeakPtr(), request_id,
                      std::move(on_token_fetch_timeout_callback)),
-      base::TimeDelta::FromMilliseconds(
-          kTokenFetchTimeoutDelayFromMilliseconds));
+      base::Milliseconds(kTokenFetchTimeoutDelayFromMilliseconds));
 
   return request_id;
 }
diff --git a/components/safe_browsing/core/browser/safe_browsing_token_fetch_tracker_unittest.cc b/components/safe_browsing/core/browser/safe_browsing_token_fetch_tracker_unittest.cc
index fd7257ff..37b0a43 100644
--- a/components/safe_browsing/core/browser/safe_browsing_token_fetch_tracker_unittest.cc
+++ b/components/safe_browsing/core/browser/safe_browsing_token_fetch_tracker_unittest.cc
@@ -125,7 +125,7 @@
                      &on_timeout1_invoked));
 
   task_environment_.FastForwardBy(
-      base::TimeDelta::FromMilliseconds(delay_before_second_request_from_ms));
+      base::Milliseconds(delay_before_second_request_from_ms));
   fetcher.StartTrackingTokenFetch(
       base::BindOnce([](std::string* target_token,
                         const std::string& token) { *target_token = token; },
@@ -140,16 +140,16 @@
       kTokenFetchTimeoutDelayFromMilliseconds -
       delay_before_second_request_from_ms;
   task_environment_.FastForwardBy(
-      base::TimeDelta::FromMilliseconds(time_to_trigger_first_timeout_from_ms));
+      base::Milliseconds(time_to_trigger_first_timeout_from_ms));
   EXPECT_EQ(access_token1, "");
   EXPECT_TRUE(on_timeout1_invoked);
   EXPECT_EQ(access_token2, "dummy_value2");
   EXPECT_FALSE(on_timeout2_invoked);
 
   // Fast-forward to trigger the second request's timeout threshold.
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(
-      kTokenFetchTimeoutDelayFromMilliseconds -
-      time_to_trigger_first_timeout_from_ms));
+  task_environment_.FastForwardBy(
+      base::Milliseconds(kTokenFetchTimeoutDelayFromMilliseconds -
+                         time_to_trigger_first_timeout_from_ms));
   EXPECT_EQ(access_token2, "");
   EXPECT_TRUE(on_timeout2_invoked);
 }
diff --git a/components/safe_browsing/core/browser/safe_browsing_url_checker_impl.cc b/components/safe_browsing/core/browser/safe_browsing_url_checker_impl.cc
index fdadd8fb..c610554 100644
--- a/components/safe_browsing/core/browser/safe_browsing_url_checker_impl.cc
+++ b/components/safe_browsing/core/browser/safe_browsing_url_checker_impl.cc
@@ -421,8 +421,7 @@
                                       TRACE_ID_LOCAL(this), "url", url.spec());
 
     // Start a timer to abort the check if it takes too long.
-    timer_.Start(FROM_HERE,
-                 base::TimeDelta::FromMilliseconds(kCheckUrlTimeoutMs), this,
+    timer_.Start(FROM_HERE, base::Milliseconds(kCheckUrlTimeoutMs), this,
                  &SafeBrowsingUrlCheckerImpl::OnTimeout);
 
     bool safe_synchronously;
diff --git a/components/safe_browsing/core/browser/verdict_cache_manager.cc b/components/safe_browsing/core/browser/verdict_cache_manager.cc
index 6693e81..ffb5b2e9 100644
--- a/components/safe_browsing/core/browser/verdict_cache_manager.cc
+++ b/components/safe_browsing/core/browser/verdict_cache_manager.cc
@@ -386,8 +386,7 @@
   if (history_service)
     history_service_observation_.Observe(history_service);
   if (!content_settings->IsOffTheRecord()) {
-    ScheduleNextCleanUpAfterInterval(
-        base::TimeDelta::FromSeconds(kCleanUpIntervalInitSecond));
+    ScheduleNextCleanUpAfterInterval(base::Seconds(kCleanUpIntervalInitSecond));
   }
   CacheArtificialRealTimeUrlVerdict();
   CacheArtificialPhishGuardVerdict();
@@ -622,8 +621,7 @@
   CleanUpExpiredPhishGuardVerdicts();
   CleanUpExpiredRealTimeUrlCheckVerdicts();
   CleanUpExpiredPageLoadTokens();
-  ScheduleNextCleanUpAfterInterval(
-      base::TimeDelta::FromSeconds(kCleanUpIntervalSecond));
+  ScheduleNextCleanUpAfterInterval(base::Seconds(kCleanUpIntervalSecond));
 }
 
 void VerdictCacheManager::CleanUpExpiredPhishGuardVerdicts() {
@@ -708,7 +706,7 @@
     ChromeUserPopulation::PageLoadToken token = hostname_token_pair.second;
     return base::Time::Now() -
                base::Time::FromJavaTime(token.token_time_msec()) >
-           base::TimeDelta::FromMinutes(kPageLoadTokenExpireMinute);
+           base::Minutes(kPageLoadTokenExpireMinute);
   });
   // TODO(crbug.com/1240403): Log the number of entries in page_load_token_map_;
 }
diff --git a/components/safe_browsing/core/browser/verdict_cache_manager_unittest.cc b/components/safe_browsing/core/browser/verdict_cache_manager_unittest.cc
index b558711..8013b2a 100644
--- a/components/safe_browsing/core/browser/verdict_cache_manager_unittest.cc
+++ b/components/safe_browsing/core/browser/verdict_cache_manager_unittest.cc
@@ -356,8 +356,7 @@
   // (2) "www.example1.com" valid
   cache_manager_->SetPageLoadTokenForTesting(
       GURL("https://www.example.com"),
-      CreatePageLoadToken((now - base::TimeDelta::FromHours(1)).ToJavaTime(),
-                          "token1"));
+      CreatePageLoadToken((now - base::Hours(1)).ToJavaTime(), "token1"));
   cache_manager_->SetPageLoadTokenForTesting(
       GURL("https://www.example1.com"),
       CreatePageLoadToken(now.ToJavaTime(), "token2"));
@@ -710,28 +709,28 @@
   cache_manager_->CacheRealTimeUrlVerdict(GURL("https://www.example.com/"),
                                           response, base::Time::Now());
   ASSERT_EQ(1u, cache_manager_->GetStoredRealTimeUrlCheckVerdictCount());
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(119));
+  task_environment_.FastForwardBy(base::Seconds(119));
   ASSERT_EQ(1u, cache_manager_->GetStoredRealTimeUrlCheckVerdictCount());
   // The first cleanup task should happen at 120 seconds after construction.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_environment_.FastForwardBy(base::Seconds(2));
   ASSERT_EQ(0u, cache_manager_->GetStoredRealTimeUrlCheckVerdictCount());
 
   cache_manager_->CacheRealTimeUrlVerdict(GURL("https://www.example.com/"),
                                           response, base::Time::Now());
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1798));
+  task_environment_.FastForwardBy(base::Seconds(1798));
   ASSERT_EQ(1u, cache_manager_->GetStoredRealTimeUrlCheckVerdictCount());
   // The second cleanup task should happen at 120 + 1800 seconds after
   // construction.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_environment_.FastForwardBy(base::Seconds(2));
   ASSERT_EQ(0u, cache_manager_->GetStoredRealTimeUrlCheckVerdictCount());
 
   cache_manager_->CacheRealTimeUrlVerdict(GURL("https://www.example.com/"),
                                           response, base::Time::Now());
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1798));
+  task_environment_.FastForwardBy(base::Seconds(1798));
   ASSERT_EQ(1u, cache_manager_->GetStoredRealTimeUrlCheckVerdictCount());
   // The third cleanup task should happen at 120 + 1800 + 1800 seconds after
   // construction.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_environment_.FastForwardBy(base::Seconds(2));
   ASSERT_EQ(0u, cache_manager_->GetStoredRealTimeUrlCheckVerdictCount());
 }
 
@@ -748,8 +747,7 @@
                                           response, base::Time::Now());
   ASSERT_EQ(1u, cache_manager_->GetStoredRealTimeUrlCheckVerdictCount());
   // Fast forward by 8 days.
-  task_environment_.FastForwardBy(
-      base::TimeDelta::FromSeconds(8 * 24 * 60 * 60));
+  task_environment_.FastForwardBy(base::Seconds(8 * 24 * 60 * 60));
   // Although the cache duration is set to 20 days, it is stored longer than the
   // upper bound(7 days). The cache should be cleaned up.
   ASSERT_EQ(0u, cache_manager_->GetStoredRealTimeUrlCheckVerdictCount());
diff --git a/components/safe_browsing/core/common/utils.cc b/components/safe_browsing/core/common/utils.cc
index 311e624..e9b3c2d 100644
--- a/components/safe_browsing/core/common/utils.cc
+++ b/components/safe_browsing/core/common/utils.cc
@@ -83,7 +83,7 @@
     return zero_delay;
 
   base::Time next_event = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromSeconds(seconds_since_epoch));
+      base::Seconds(seconds_since_epoch));
   base::Time now = base::Time::Now();
   if (now > next_event)
     return zero_delay;
diff --git a/components/safe_search_api/url_checker.cc b/components/safe_search_api/url_checker.cc
index 3d3ab51..d312a80c 100644
--- a/components/safe_search_api/url_checker.cc
+++ b/components/safe_search_api/url_checker.cc
@@ -60,8 +60,7 @@
                        size_t cache_size)
     : async_checker_(std::move(async_checker)),
       cache_(cache_size),
-      cache_timeout_(
-          base::TimeDelta::FromSeconds(kDefaultCacheTimeoutSeconds)) {}
+      cache_timeout_(base::Seconds(kDefaultCacheTimeoutSeconds)) {}
 
 URLChecker::~URLChecker() = default;
 
diff --git a/components/safe_search_api/url_checker_unittest.cc b/components/safe_search_api/url_checker_unittest.cc
index 93c2de8a..d78af22 100644
--- a/components/safe_search_api/url_checker_unittest.cc
+++ b/components/safe_search_api/url_checker_unittest.cc
@@ -152,7 +152,7 @@
 TEST_F(SafeSearchURLCheckerTest, CacheTimeout) {
   GURL url(GetNewURL());
 
-  checker_->SetCacheTimeoutForTesting(base::TimeDelta::FromSeconds(0));
+  checker_->SetCacheTimeoutForTesting(base::Seconds(0));
 
   EXPECT_CALL(*this, OnCheckDone(url, Classification::SAFE, false));
   ASSERT_FALSE(SendResponse(url, Classification::SAFE, false));
diff --git a/components/safety_check/update_check_helper.cc b/components/safety_check/update_check_helper.cc
index acb66d3..787c051a 100644
--- a/components/safety_check/update_check_helper.cc
+++ b/components/safety_check/update_check_helper.cc
@@ -21,7 +21,7 @@
 
 // Request timeout of 5 seconds to not interrupt the completion of Safety check.
 // The user can always start a new Safety check if a request times out.
-constexpr base::TimeDelta kConnectionTimeout = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kConnectionTimeout = base::Seconds(5);
 
 // Maximum number of retries for sending the request.
 constexpr int kMaxRetries = 2;
diff --git a/components/safety_check/update_check_helper_unittest.cc b/components/safety_check/update_check_helper_unittest.cc
index 319a92b..5586abf 100644
--- a/components/safety_check/update_check_helper_unittest.cc
+++ b/components/safety_check/update_check_helper_unittest.cc
@@ -75,7 +75,7 @@
   update_helper_->CheckConnectivity(base::BindOnce(
       &UpdateCheckHelperTest::VerifyResult, base::Unretained(this)));
   EXPECT_EQ(1, test_url_loader_factory_.NumPending());
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(6));
+  task_environment_.FastForwardBy(base::Seconds(6));
   // Request should timeout after 5 seconds.
   EXPECT_EQ(0, test_url_loader_factory_.NumPending());
   VerifyCallbackInvoked();
@@ -101,7 +101,7 @@
   update_helper_->CheckConnectivity(base::BindOnce(
       &UpdateCheckHelperTest::VerifyResult, base::Unretained(this)));
   EXPECT_EQ(1, test_url_loader_factory_.NumPending());
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   // Start another check 1 second later.
   update_helper_->CheckConnectivity(base::BindOnce(
       &UpdateCheckHelperTest::VerifyResult, base::Unretained(this)));
@@ -127,7 +127,7 @@
 
   // Another check after 10 seconds - this time successful.
   ResetCallbackInvoked();
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
   SetExpectedResult(true);
   update_helper_->CheckConnectivity(base::BindOnce(
       &UpdateCheckHelperTest::VerifyResult, base::Unretained(this)));
diff --git a/components/scheduling_metrics/thread_metrics.cc b/components/scheduling_metrics/thread_metrics.cc
index f84c1005..21a7fdd 100644
--- a/components/scheduling_metrics/thread_metrics.cc
+++ b/components/scheduling_metrics/thread_metrics.cc
@@ -11,8 +11,7 @@
 // Threshold for discarding ultra-long tasks. It is assumed that ultra-long
 // tasks are reporting glitches (e.g. system falling asleep on the middle of the
 // task).
-constexpr base::TimeDelta kLongTaskDiscardingThreshold =
-    base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kLongTaskDiscardingThreshold = base::Seconds(30);
 
 }  // namespace
 
diff --git a/components/scheduling_metrics/thread_metrics_unittest.cc b/components/scheduling_metrics/thread_metrics_unittest.cc
index 987020f..5ad08d4f 100644
--- a/components/scheduling_metrics/thread_metrics_unittest.cc
+++ b/components/scheduling_metrics/thread_metrics_unittest.cc
@@ -20,11 +20,11 @@
 using base::sequence_manager::FakeTaskTiming;
 
 base::TimeTicks Seconds(int seconds) {
-  return base::TimeTicks() + base::TimeDelta::FromSeconds(seconds);
+  return base::TimeTicks() + base::Seconds(seconds);
 }
 
 base::ThreadTicks ThreadSeconds(int seconds) {
-  return base::ThreadTicks() + base::TimeDelta::FromSeconds(seconds);
+  return base::ThreadTicks() + base::Seconds(seconds);
 }
 
 }  // namespace
diff --git a/components/scheduling_metrics/total_duration_metric_reporter.cc b/components/scheduling_metrics/total_duration_metric_reporter.cc
index 40b66d6..8560718 100644
--- a/components/scheduling_metrics/total_duration_metric_reporter.cc
+++ b/components/scheduling_metrics/total_duration_metric_reporter.cc
@@ -8,8 +8,8 @@
 
 namespace {
 
-constexpr base::TimeDelta kMinimalValue = base::TimeDelta::FromSeconds(1);
-constexpr base::TimeDelta kMaximalValue = base::TimeDelta::FromHours(1);
+constexpr base::TimeDelta kMinimalValue = base::Seconds(1);
+constexpr base::TimeDelta kMaximalValue = base::Hours(1);
 constexpr int kBucketCount = 50;
 
 }  // namespace
diff --git a/components/scheduling_metrics/total_duration_metric_reporter_unittest.cc b/components/scheduling_metrics/total_duration_metric_reporter_unittest.cc
index 0b99a6d..e917512 100644
--- a/components/scheduling_metrics/total_duration_metric_reporter_unittest.cc
+++ b/components/scheduling_metrics/total_duration_metric_reporter_unittest.cc
@@ -15,13 +15,13 @@
   TotalDurationMetricReporter metric_reporter("TestHistogram.Positive",
                                               "TestHistogram.Negative");
 
-  metric_reporter.RecordAdditionalDuration(base::TimeDelta::FromSeconds(1));
-  metric_reporter.RecordAdditionalDuration(base::TimeDelta::FromSeconds(2));
-  metric_reporter.RecordAdditionalDuration(base::TimeDelta::FromSeconds(5));
+  metric_reporter.RecordAdditionalDuration(base::Seconds(1));
+  metric_reporter.RecordAdditionalDuration(base::Seconds(2));
+  metric_reporter.RecordAdditionalDuration(base::Seconds(5));
 
   metric_reporter.Reset();
 
-  metric_reporter.RecordAdditionalDuration(base::TimeDelta::FromSeconds(10));
+  metric_reporter.RecordAdditionalDuration(base::Seconds(10));
 
   std::map<base::Histogram::Sample, base::HistogramBase::Count> result;
 
diff --git a/components/schema_org/common/time.cc b/components/schema_org/common/time.cc
index 0be877a..8f53f41d 100644
--- a/components/schema_org/common/time.cc
+++ b/components/schema_org/common/time.cc
@@ -28,13 +28,13 @@
     t >> unit;
     switch (unit) {
       case 'H':
-        duration = duration + base::TimeDelta::FromHours(amount);
+        duration = duration + base::Hours(amount);
         break;
       case 'M':
-        duration = duration + base::TimeDelta::FromMinutes(amount);
+        duration = duration + base::Minutes(amount);
         break;
       case 'S':
-        duration = duration + base::TimeDelta::FromSeconds(amount);
+        duration = duration + base::Seconds(amount);
         break;
       default:
         return absl::nullopt;
diff --git a/components/search/ntp_features.cc b/components/search/ntp_features.cc
index 8ac57fb..7d217ed 100644
--- a/components/search/ntp_features.cc
+++ b/components/search/ntp_features.cc
@@ -141,9 +141,9 @@
   // integer, return the default value.
   unsigned int param_value_as_int = 0;
   if (!base::StringToUint(param_value, &param_value_as_int)) {
-    return base::TimeDelta::FromSeconds(3);
+    return base::Seconds(3);
   }
-  return base::TimeDelta::FromMilliseconds(param_value_as_int);
+  return base::Milliseconds(param_value_as_int);
 }
 
 }  // namespace ntp_features
diff --git a/components/search_engines/android/template_url_service_android.cc b/components/search_engines/android/template_url_service_android.cc
index dca0b1e..76e165c 100644
--- a/components/search_engines/android/template_url_service_android.cc
+++ b/components/search_engines/android/template_url_service_android.cc
@@ -343,12 +343,12 @@
   data.safe_for_autoreplace = true;
   data.input_encodings.push_back("UTF-8");
   data.prepopulate_id = 0;
-  data.date_created = base::Time::Now() -
-                      base::TimeDelta::FromDays(static_cast<int>(age_in_days));
-  data.last_modified = base::Time::Now() -
-                       base::TimeDelta::FromDays(static_cast<int>(age_in_days));
-  data.last_visited = base::Time::Now() -
-                      base::TimeDelta::FromDays(static_cast<int>(age_in_days));
+  data.date_created =
+      base::Time::Now() - base::Days(static_cast<int>(age_in_days));
+  data.last_modified =
+      base::Time::Now() - base::Days(static_cast<int>(age_in_days));
+  data.last_visited =
+      base::Time::Now() - base::Days(static_cast<int>(age_in_days));
   TemplateURL* t_url =
       template_url_service_->Add(std::make_unique<TemplateURL>(data));
   CHECK(t_url) << "Failed adding template url for: " << keyword;
diff --git a/components/search_engines/keyword_table.cc b/components/search_engines/keyword_table.cc
index d895c38..e5aee86 100644
--- a/components/search_engines/keyword_table.cc
+++ b/components/search_engines/keyword_table.cc
@@ -492,10 +492,8 @@
   data->input_encodings = base::SplitString(
       s.ColumnString(9), ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
   data->id = s.ColumnInt64(0);
-  data->date_created =
-      base::Time() + base::TimeDelta::FromMicroseconds(s.ColumnInt64(7));
-  data->last_modified =
-      base::Time() + base::TimeDelta::FromMicroseconds(s.ColumnInt64(13));
+  data->date_created = base::Time() + base::Microseconds(s.ColumnInt64(7));
+  data->last_modified = base::Time() + base::Microseconds(s.ColumnInt64(13));
   data->created_by_policy = s.ColumnBool(12);
   data->created_from_play_api = s.ColumnBool(22);
   data->usage_count = s.ColumnInt(8);
@@ -513,8 +511,7 @@
     }
   }
 
-  data->last_visited =
-      base::Time() + base::TimeDelta::FromMicroseconds(s.ColumnInt64(21));
+  data->last_visited = base::Time() + base::Microseconds(s.ColumnInt64(21));
 
   return true;
 }
diff --git a/components/search_engines/keyword_web_data_service.cc b/components/search_engines/keyword_web_data_service.cc
index 4f2de437..d7584ba 100644
--- a/components/search_engines/keyword_web_data_service.cc
+++ b/components/search_engines/keyword_web_data_service.cc
@@ -76,7 +76,7 @@
     scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner)
     : WebDataServiceBase(std::move(wdbs), std::move(ui_task_runner)),
       timer_(FROM_HERE,
-             base::TimeDelta::FromSeconds(5),
+             base::Seconds(5),
              base::BindRepeating(&KeywordWebDataService::CommitQueuedOperations,
                                  base::Unretained(this))) {}
 
diff --git a/components/search_engines/template_url_fetcher.cc b/components/search_engines/template_url_fetcher.cc
index 66b6b37..452515c1 100644
--- a/components/search_engines/template_url_fetcher.cc
+++ b/components/search_engines/template_url_fetcher.cc
@@ -135,7 +135,7 @@
       std::move(resource_request), kTrafficAnnotation);
   simple_url_loader_->SetAllowHttpErrorResults(true);
   simple_url_loader_->SetTimeoutDuration(
-      base::TimeDelta::FromSeconds(kOpenSearchTimeoutSeconds));
+      base::Seconds(kOpenSearchTimeoutSeconds));
   simple_url_loader_->SetRetryOptions(
       kOpenSearchRetryCount, network::SimpleURLLoader::RETRY_ON_NETWORK_CHANGE);
   simple_url_loader_->SetRequestID(request_id);
diff --git a/components/search_engines/template_url_service.cc b/components/search_engines/template_url_service.cc
index a3e8d69..c635550 100644
--- a/components/search_engines/template_url_service.cc
+++ b/components/search_engines/template_url_service.cc
@@ -1306,7 +1306,7 @@
   }
 
   // Extend expiration time another 60 seconds.
-  token_expiration_time_ = current_time + base::TimeDelta::FromSeconds(60);
+  token_expiration_time_ = current_time + base::Seconds(60);
   return current_token_;
 }
 
diff --git a/components/search_engines/template_url_service_unittest.cc b/components/search_engines/template_url_service_unittest.cc
index c8bfe27..d9252a2 100644
--- a/components/search_engines/template_url_service_unittest.cc
+++ b/components/search_engines/template_url_service_unittest.cc
@@ -33,7 +33,7 @@
 
   // ... unless the token has expired.
   template_url_service().current_token_.clear();
-  const base::TimeDelta kSmallDelta = base::TimeDelta::FromMilliseconds(1);
+  const base::TimeDelta kSmallDelta = base::Milliseconds(1);
   template_url_service().token_expiration_time_ =
       base::TimeTicks::Now() - kSmallDelta;
   token = template_url_service().GetSessionToken();
diff --git a/components/search_provider_logos/fixed_logo_api.cc b/components/search_provider_logos/fixed_logo_api.cc
index c41c8a8..61a14f5 100644
--- a/components/search_provider_logos/fixed_logo_api.cc
+++ b/components/search_provider_logos/fixed_logo_api.cc
@@ -22,7 +22,7 @@
   // If |can_show_after_expiration| is true, the |expiration_time| has little
   // effect. Set it as far as possible in the future just as an approximation.
   logo->metadata.expiration_time =
-      response_time + base::TimeDelta::FromMilliseconds(kMaxTimeToLiveMS);
+      response_time + base::Milliseconds(kMaxTimeToLiveMS);
   logo->metadata.can_show_after_expiration = true;
 
   *parsing_failed = false;
diff --git a/components/search_provider_logos/google_logo_api.cc b/components/search_provider_logos/google_logo_api.cc
index 84b8a8f..8313dcf6 100644
--- a/components/search_provider_logos/google_logo_api.cc
+++ b/components/search_provider_logos/google_logo_api.cc
@@ -330,10 +330,10 @@
   // The JSON doesn't guarantee the number to fit into an int.
   double ttl_ms = 0;  // Expires immediately if the parameter is missing.
   if (ddljson->GetDouble("time_to_live_ms", &ttl_ms)) {
-    time_to_live = base::TimeDelta::FromMillisecondsD(ttl_ms);
+    time_to_live = base::Milliseconds(ttl_ms);
     logo->metadata.can_show_after_expiration = false;
   } else {
-    time_to_live = base::TimeDelta::FromMilliseconds(kMaxTimeToLiveMS);
+    time_to_live = base::Milliseconds(kMaxTimeToLiveMS);
     logo->metadata.can_show_after_expiration = true;
   }
   logo->metadata.expiration_time = response_time + time_to_live;
diff --git a/components/search_provider_logos/logo_service_impl.cc b/components/search_provider_logos/logo_service_impl.cc
index c76a3c1..833bfea 100644
--- a/components/search_provider_logos/logo_service_impl.cc
+++ b/components/search_provider_logos/logo_service_impl.cc
@@ -68,7 +68,7 @@
         FROM_HERE,
         base::BindOnce(&ImageDecodedHandlerWithTimeout::OnImageDecoded,
                        handler->weak_ptr_factory_.GetWeakPtr(), gfx::Image()),
-        base::TimeDelta::FromSeconds(kDecodeLogoTimeoutSeconds));
+        base::Seconds(kDecodeLogoTimeoutSeconds));
     return base::BindOnce(&ImageDecodedHandlerWithTimeout::OnImageDecoded,
                           handler->weak_ptr_factory_.GetWeakPtr());
   }
@@ -133,8 +133,7 @@
 // OK to show, i.e. it's not expired or it's allowed to be shown temporarily
 // after expiration.
 bool IsLogoOkToShow(const LogoMetadata& metadata, base::Time now) {
-  base::TimeDelta offset =
-      base::TimeDelta::FromMilliseconds(kMaxTimeToLiveMS * 3 / 2);
+  base::TimeDelta offset = base::Milliseconds(kMaxTimeToLiveMS * 3 / 2);
   base::Time distant_past = now - offset;
   // Sanity check so logos aren't accidentally cached forever.
   if (metadata.expiration_time < distant_past) {
diff --git a/components/search_provider_logos/logo_service_impl_unittest.cc b/components/search_provider_logos/logo_service_impl_unittest.cc
index bc8187c..9a5e54a 100644
--- a/components/search_provider_logos/logo_service_impl_unittest.cc
+++ b/components/search_provider_logos/logo_service_impl_unittest.cc
@@ -131,8 +131,7 @@
   logo.image = MakeBitmap(2, 5);
   logo.dark_image = MakeBitmap2(20, 50);
   logo.metadata.can_show_after_expiration = false;
-  logo.metadata.expiration_time =
-      response_time + base::TimeDelta::FromHours(19);
+  logo.metadata.expiration_time = response_time + base::Hours(19);
   logo.metadata.fingerprint = "8bc33a80";
   logo.metadata.source_url =
       AppendPreliminaryParamsToDoodleURL(false, false, logo_url);
@@ -151,8 +150,7 @@
   Logo logo;
   logo.image = MakeBitmap(2, 5);
   logo.metadata.can_show_after_expiration = false;
-  logo.metadata.expiration_time =
-      response_time + base::TimeDelta::FromHours(19);
+  logo.metadata.expiration_time = response_time + base::Hours(19);
   logo.metadata.fingerprint = "8bc33a80";
   logo.metadata.source_url =
       AppendPreliminaryParamsToDoodleURL(false, false, logo_url);
@@ -711,8 +709,7 @@
   fresh_logo.dark_image.reset();
   fresh_logo.metadata.mime_type.clear();
   fresh_logo.metadata.dark_mime_type.clear();
-  fresh_logo.metadata.expiration_time =
-      test_clock_.Now() + base::TimeDelta::FromDays(8);
+  fresh_logo.metadata.expiration_time = test_clock_.Now() + base::Days(8);
   SetServerResponseWhenFingerprint(fresh_logo.metadata.fingerprint,
                                    ServerResponse(fresh_logo));
 
@@ -758,8 +755,7 @@
   fresh_logo.metadata.on_click_url = GURL("https://new.onclick.url");
   fresh_logo.metadata.alt_text = "new alt text";
   fresh_logo.metadata.animated_url = GURL("https://new.animated.url");
-  fresh_logo.metadata.expiration_time =
-      test_clock_.Now() + base::TimeDelta::FromDays(8);
+  fresh_logo.metadata.expiration_time = test_clock_.Now() + base::Days(8);
   SetServerResponseWhenFingerprint(fresh_logo.metadata.fingerprint,
                                    ServerResponse(fresh_logo));
 
@@ -846,7 +842,7 @@
 
 TEST_F(LogoServiceImplTest, LogoWithTTLCannotBeShownAfterExpiration) {
   Logo logo = GetSampleLogo(DoodleURL(), test_clock_.Now());
-  base::TimeDelta time_to_live = base::TimeDelta::FromDays(3);
+  base::TimeDelta time_to_live = base::Days(3);
   logo.metadata.expiration_time = test_clock_.Now() + time_to_live;
   SetServerResponse(ServerResponse(logo));
   LogoCallbacks callbacks;
@@ -872,15 +868,14 @@
   const LogoMetadata* cached_metadata = logo_cache_->GetCachedLogoMetadata();
   ASSERT_TRUE(cached_metadata);
   EXPECT_TRUE(cached_metadata->can_show_after_expiration);
-  EXPECT_EQ(test_clock_.Now() + base::TimeDelta::FromDays(30),
+  EXPECT_EQ(test_clock_.Now() + base::Days(30),
             cached_metadata->expiration_time);
 }
 
 TEST_F(LogoServiceImplTest, UseSoftExpiredCachedLogo) {
   SetServerResponse("", net::ERR_FAILED, net::HTTP_OK);
   Logo cached_logo = GetSampleLogo(DoodleURL(), test_clock_.Now());
-  cached_logo.metadata.expiration_time =
-      test_clock_.Now() - base::TimeDelta::FromSeconds(1);
+  cached_logo.metadata.expiration_time = test_clock_.Now() - base::Seconds(1);
   cached_logo.metadata.can_show_after_expiration = true;
   logo_cache_->EncodeAndSetCachedLogo(cached_logo);
 
@@ -898,8 +893,7 @@
 
 TEST_F(LogoServiceImplTest, RerequestSoftExpiredCachedLogo) {
   Logo cached_logo = GetSampleLogo(DoodleURL(), test_clock_.Now());
-  cached_logo.metadata.expiration_time =
-      test_clock_.Now() - base::TimeDelta::FromDays(5);
+  cached_logo.metadata.expiration_time = test_clock_.Now() - base::Days(5);
   cached_logo.metadata.can_show_after_expiration = true;
   logo_cache_->EncodeAndSetCachedLogo(cached_logo);
 
@@ -921,8 +915,7 @@
 TEST_F(LogoServiceImplTest, DeleteAncientCachedLogo) {
   SetServerResponse("", net::ERR_FAILED, net::HTTP_OK);
   Logo cached_logo = GetSampleLogo(DoodleURL(), test_clock_.Now());
-  cached_logo.metadata.expiration_time =
-      test_clock_.Now() - base::TimeDelta::FromDays(200);
+  cached_logo.metadata.expiration_time = test_clock_.Now() - base::Days(200);
   cached_logo.metadata.can_show_after_expiration = true;
   logo_cache_->EncodeAndSetCachedLogo(cached_logo);
 
@@ -942,8 +935,7 @@
 TEST_F(LogoServiceImplTest, DeleteExpiredCachedLogo) {
   SetServerResponse("", net::ERR_FAILED, net::HTTP_OK);
   Logo cached_logo = GetSampleLogo(DoodleURL(), test_clock_.Now());
-  cached_logo.metadata.expiration_time =
-      test_clock_.Now() - base::TimeDelta::FromSeconds(1);
+  cached_logo.metadata.expiration_time = test_clock_.Now() - base::Seconds(1);
   cached_logo.metadata.can_show_after_expiration = false;
   logo_cache_->EncodeAndSetCachedLogo(cached_logo);
 
diff --git a/components/security_interstitials/content/certificate_error_report_unittest.cc b/components/security_interstitials/content/certificate_error_report_unittest.cc
index 026d369..ab0b785 100644
--- a/components/security_interstitials/content/certificate_error_report_unittest.cc
+++ b/components/security_interstitials/content/certificate_error_report_unittest.cc
@@ -393,8 +393,7 @@
   debug_info->win_platform_debug_info =
       cert_verifier::mojom::WinPlatformVerifierDebugInfo::New();
   debug_info->win_platform_debug_info->authroot_this_update =
-      base::Time::FromDeltaSinceWindowsEpoch(
-          base::TimeDelta::FromMicroseconds(8675309));
+      base::Time::FromDeltaSinceWindowsEpoch(base::Microseconds(8675309));
   debug_info->win_platform_debug_info->authroot_sequence_number = {
       'J', 'E', 'N', 'N', 'Y'};
 #endif
diff --git a/components/security_interstitials/content/ssl_error_handler.cc b/components/security_interstitials/content/ssl_error_handler.cc
index daed439..3cb5474 100644
--- a/components/security_interstitials/content/ssl_error_handler.cc
+++ b/components/security_interstitials/content/ssl_error_handler.cc
@@ -243,8 +243,7 @@
 };
 
 ConfigSingleton::ConfigSingleton()
-    : interstitial_delay_(
-          base::TimeDelta::FromMilliseconds(kInterstitialDelayInMilliseconds)),
+    : interstitial_delay_(base::Milliseconds(kInterstitialDelayInMilliseconds)),
       os_captive_portal_status_for_testing_(OS_CAPTIVE_PORTAL_STATUS_NOT_SET),
       ssl_error_assistant_(std::make_unique<SSLErrorAssistant>()) {}
 
@@ -267,8 +266,7 @@
 }
 
 void ConfigSingleton::ResetForTesting() {
-  interstitial_delay_ =
-      base::TimeDelta::FromMilliseconds(kInterstitialDelayInMilliseconds);
+  interstitial_delay_ = base::Milliseconds(kInterstitialDelayInMilliseconds);
   timer_started_callback_ = nullptr;
   on_blocking_page_shown_callback_ =
       SSLErrorHandler::OnBlockingPageShownCallback();
@@ -980,9 +978,8 @@
     base::TimeTicks started_handling_error) {
   UMA_HISTOGRAM_CUSTOM_TIMES(
       "interstitial.ssl_error_handler.cert_date_error_delay",
-      base::TimeTicks::Now() - started_handling_error,
-      base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromSeconds(4),
-      50);
+      base::TimeTicks::Now() - started_handling_error, base::Milliseconds(1),
+      base::Seconds(4), 50);
 
   timer_.Stop();
   base::Clock* testing_clock = g_config.Pointer()->clock();
diff --git a/components/security_interstitials/content/ssl_error_handler_unittest.cc b/components/security_interstitials/content/ssl_error_handler_unittest.cc
index fbbc6e5..b8965dc 100644
--- a/components/security_interstitials/content/ssl_error_handler_unittest.cc
+++ b/components/security_interstitials/content/ssl_error_handler_unittest.cc
@@ -675,8 +675,8 @@
         std::unique_ptr<base::TickClock>(tick_clock_), &pref_service_,
         shared_url_loader_factory_);
     // Do this to be sure that |is_null| returns false.
-    clock_->Advance(base::TimeDelta::FromDays(111));
-    tick_clock_->Advance(base::TimeDelta::FromDays(222));
+    clock_->Advance(base::Days(111));
+    tick_clock_->Advance(base::Days(222));
 
     SSLErrorHandler::SetInterstitialDelayForTesting(base::TimeDelta());
     ssl_info_.cert =
@@ -1117,8 +1117,7 @@
   base::HistogramTester histograms;
   base::Time network_time;
   base::TimeDelta uncertainty;
-  SSLErrorHandler::SetInterstitialDelayForTesting(
-      base::TimeDelta::FromHours(1));
+  SSLErrorHandler::SetInterstitialDelayForTesting(base::Hours(1));
   EXPECT_EQ(network_time::NetworkTimeTracker::NETWORK_TIME_NO_SYNC_ATTEMPT,
             tracker()->GetNetworkTime(&network_time, &uncertainty));
 
diff --git a/components/security_interstitials/content/stateful_ssl_host_state_delegate.cc b/components/security_interstitials/content/stateful_ssl_host_state_delegate.cc
index f66a7c2b..034b351 100644
--- a/components/security_interstitials/content/stateful_ssl_host_state_delegate.cc
+++ b/components/security_interstitials/content/stateful_ssl_host_state_delegate.cc
@@ -150,7 +150,7 @@
     return false;
 
   base::Time cutoff_time;
-  cutoff_time = clock->Now() - base::TimeDelta::FromSeconds(error_reset_time);
+  cutoff_time = clock->Now() - base::Seconds(error_reset_time);
 
   // Assume that the values in the list are in increasing order;
   // UpdateRecurrentInterstitialPref() maintains this ordering. Check if there
@@ -390,8 +390,7 @@
   // directly storing a string value.
   GURL url = GetSecureGURLForHost(host);
   base::Time expiration_time =
-      clock_->Now() +
-      base::TimeDelta::FromSeconds(kDeltaDefaultExpirationInSeconds);
+      clock_->Now() + base::Seconds(kDeltaDefaultExpirationInSeconds);
   auto dict = std::make_unique<base::Value>(base::Value::Type::DICTIONARY);
   dict->SetKey(kHTTPAllowlistExpirationTimeKey,
                base::TimeToValue(expiration_time));
@@ -667,7 +666,7 @@
 
     expired = true;
     base::Time expiration_time =
-        now + base::TimeDelta::FromSeconds(kDeltaDefaultExpirationInSeconds);
+        now + base::Seconds(kDeltaDefaultExpirationInSeconds);
     // Unfortunately, JSON (and thus content settings) doesn't support int64_t
     // values, only doubles. Since this mildly depends on precision, it is
     // better to store the value as a string.
diff --git a/components/security_state/content/content_utils_unittest.cc b/components/security_state/content/content_utils_unittest.cc
index 6cf70aa..3b233f51 100644
--- a/components/security_state/content/content_utils_unittest.cc
+++ b/components/security_state/content/content_utils_unittest.cc
@@ -764,7 +764,7 @@
   std::string cert_der;
   if (!net::x509_util::CreateKeyAndSelfSignedCert(
           "CN=Error", static_cast<uint32_t>(g_serial_number.GetNext()),
-          base::Time::Now() - base::TimeDelta::FromMinutes(30),
+          base::Time::Now() - base::Minutes(30),
           base::Time::Now() + time_until_expiration, &unused_key, &cert_der)) {
     return nullptr;
   }
@@ -782,8 +782,8 @@
   // Check that an info explanation is provided if the certificate is expiring
   // in less than 48 hours.
   content::SecurityStyleExplanations explanations;
-  visible_security_state.certificate = scoped_refptr<net::X509Certificate>(
-      CreateFakeCert(base::TimeDelta::FromHours(30)));
+  visible_security_state.certificate =
+      scoped_refptr<net::X509Certificate>(CreateFakeCert(base::Hours(30)));
   ASSERT_TRUE(visible_security_state.certificate);
   GetSecurityStyle(security_state::SECURE, visible_security_state,
                    &explanations);
@@ -792,8 +792,8 @@
   // Check that no explanation is set if the certificate is expiring in more
   // than 48 hours.
   explanations.info_explanations.clear();
-  visible_security_state.certificate = scoped_refptr<net::X509Certificate>(
-      CreateFakeCert(base::TimeDelta::FromHours(72)));
+  visible_security_state.certificate =
+      scoped_refptr<net::X509Certificate>(CreateFakeCert(base::Hours(72)));
   ASSERT_TRUE(visible_security_state.certificate);
   GetSecurityStyle(security_state::SECURE, visible_security_state,
                    &explanations);
@@ -801,8 +801,8 @@
 
   // Check that no explanation is set if the certificate has already expired.
   explanations.info_explanations.clear();
-  visible_security_state.certificate = scoped_refptr<net::X509Certificate>(
-      CreateFakeCert(base::TimeDelta::FromHours(-10)));
+  visible_security_state.certificate =
+      scoped_refptr<net::X509Certificate>(CreateFakeCert(base::Hours(-10)));
   ASSERT_TRUE(visible_security_state.certificate);
   GetSecurityStyle(security_state::SECURE, visible_security_state,
                    &explanations);
diff --git a/components/segmentation_platform/internal/database/database_maintenance_impl.cc b/components/segmentation_platform/internal/database/database_maintenance_impl.cc
index 45057f51..65b2805 100644
--- a/components/segmentation_platform/internal/database/database_maintenance_impl.cc
+++ b/components/segmentation_platform/internal/database/database_maintenance_impl.cc
@@ -199,8 +199,7 @@
     base::OnceClosure next_action) {
   for (uint64_t days_ago = kFirstCompactionDay;
        days_ago <= kMaxSignalStorageDays; ++days_ago) {
-    base::Time compaction_day =
-        clock_->Now() - base::TimeDelta::FromDays(days_ago);
+    base::Time compaction_day = clock_->Now() - base::Days(days_ago);
     for (auto signal_id : signal_ids) {
       signal_database_->CompactSamplesForDay(
           signal_id.second, signal_id.first, compaction_day,
diff --git a/components/segmentation_platform/internal/database/database_maintenance_impl_unittest.cc b/components/segmentation_platform/internal/database/database_maintenance_impl_unittest.cc
index 4c6bb4c..0a51fa4 100644
--- a/components/segmentation_platform/internal/database/database_maintenance_impl_unittest.cc
+++ b/components/segmentation_platform/internal/database/database_maintenance_impl_unittest.cc
@@ -139,13 +139,13 @@
   std::vector<SignalData> signal_datas = {
       {OptimizationTarget::OPTIMIZATION_TARGET_SEGMENTATION_NEW_TAB,
        SignalType::HISTOGRAM_VALUE, "Foo", base::HashMetricName("Foo"), 44, 1,
-       Aggregation::COUNT, clock_.Now() - base::TimeDelta::FromDays(10), true},
+       Aggregation::COUNT, clock_.Now() - base::Days(10), true},
       {OptimizationTarget::OPTIMIZATION_TARGET_SEGMENTATION_SHARE,
        SignalType::HISTOGRAM_ENUM, "Bar", base::HashMetricName("Bar"), 33, 1,
-       Aggregation::COUNT, clock_.Now() - base::TimeDelta::FromDays(5), true},
+       Aggregation::COUNT, clock_.Now() - base::Days(5), true},
       {OptimizationTarget::OPTIMIZATION_TARGET_SEGMENTATION_SHARE,
        SignalType::USER_ACTION, "Failed", base::HashMetricName("Failed"), 22, 1,
-       Aggregation::COUNT, clock_.Now() - base::TimeDelta::FromDays(1), false},
+       Aggregation::COUNT, clock_.Now() - base::Days(1), false},
   };
 
   // Prepare test setup.
@@ -182,9 +182,8 @@
     for (uint64_t days_ago = kLatestCompactionDaysAgo;
          days_ago <= kEarliestCompactionDaysAgo; ++days_ago) {
       EXPECT_CALL(*signal_database_,
-                  CompactSamplesForDay(
-                      sd.signal_type, sd.name_hash,
-                      clock_.Now() - base::TimeDelta::FromDays(days_ago), _))
+                  CompactSamplesForDay(sd.signal_type, sd.name_hash,
+                                       clock_.Now() - base::Days(days_ago), _))
           .WillOnce(RunOnceCallback<3>(/*success=*/sd.success));
     }
   }
diff --git a/components/segmentation_platform/internal/database/metadata_utils.cc b/components/segmentation_platform/internal/database/metadata_utils.cc
index c794b46cf..47e3851 100644
--- a/components/segmentation_platform/internal/database/metadata_utils.cc
+++ b/components/segmentation_platform/internal/database/metadata_utils.cc
@@ -127,9 +127,8 @@
   if (!segment_info.has_prediction_result())
     return true;
 
-  base::Time last_result_timestamp =
-      base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromMicroseconds(
-          segment_info.prediction_result().timestamp_us()));
+  base::Time last_result_timestamp = base::Time::FromDeltaSinceWindowsEpoch(
+      base::Microseconds(segment_info.prediction_result().timestamp_us()));
 
   base::TimeDelta result_ttl =
       segment_info.model_metadata().result_time_to_live() *
@@ -146,9 +145,8 @@
   const proto::SegmentationModelMetadata& metadata =
       segment_info.model_metadata();
 
-  base::Time last_result_timestamp =
-      base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromMicroseconds(
-          segment_info.prediction_result().timestamp_us()));
+  base::Time last_result_timestamp = base::Time::FromDeltaSinceWindowsEpoch(
+      base::Microseconds(segment_info.prediction_result().timestamp_us()));
   base::TimeDelta result_ttl =
       metadata.result_time_to_live() * GetTimeUnit(metadata);
 
@@ -160,19 +158,19 @@
   proto::TimeUnit time_unit = model_metadata.time_unit();
   switch (time_unit) {
     case proto::TimeUnit::YEAR:
-      return base::TimeDelta::FromDays(365);
+      return base::Days(365);
     case proto::TimeUnit::MONTH:
-      return base::TimeDelta::FromDays(30);
+      return base::Days(30);
     case proto::TimeUnit::WEEK:
-      return base::TimeDelta::FromDays(7);
+      return base::Days(7);
     case proto::TimeUnit::DAY:
-      return base::TimeDelta::FromDays(1);
+      return base::Days(1);
     case proto::TimeUnit::HOUR:
-      return base::TimeDelta::FromHours(1);
+      return base::Hours(1);
     case proto::TimeUnit::MINUTE:
-      return base::TimeDelta::FromMinutes(1);
+      return base::Minutes(1);
     case proto::TimeUnit::SECOND:
-      return base::TimeDelta::FromSeconds(1);
+      return base::Seconds(1);
     case proto::TimeUnit::UNKNOWN_TIME_UNIT:
       FALLTHROUGH;
     default:
diff --git a/components/segmentation_platform/internal/database/metadata_utils_unittest.cc b/components/segmentation_platform/internal/database/metadata_utils_unittest.cc
index b59f6972..51d5ecf 100644
--- a/components/segmentation_platform/internal/database/metadata_utils_unittest.cc
+++ b/components/segmentation_platform/internal/database/metadata_utils_unittest.cc
@@ -336,13 +336,13 @@
 
   // Stale results.
   auto* prediction_result = segment_info.mutable_prediction_result();
-  base::Time result_time = now - base::TimeDelta::FromDays(3);
+  base::Time result_time = now - base::Days(3);
   prediction_result->set_timestamp_us(
       result_time.ToDeltaSinceWindowsEpoch().InMicroseconds());
   EXPECT_FALSE(metadata_utils::HasFreshResults(segment_info, now));
 
   // Fresh results.
-  result_time = now - base::TimeDelta::FromHours(2);
+  result_time = now - base::Hours(2);
   prediction_result->set_timestamp_us(
       result_time.ToDeltaSinceWindowsEpoch().InMicroseconds());
   EXPECT_TRUE(metadata_utils::HasFreshResults(segment_info, now));
@@ -360,14 +360,14 @@
 
   // Unexpired result.
   auto* prediction_result = segment_info.mutable_prediction_result();
-  base::Time result_time = base::Time::Now() - base::TimeDelta::FromDays(3);
+  base::Time result_time = base::Time::Now() - base::Days(3);
   prediction_result->set_timestamp_us(
       result_time.ToDeltaSinceWindowsEpoch().InMicroseconds());
   EXPECT_FALSE(
       metadata_utils::HasExpiredOrUnavailableResult(segment_info, now));
 
   // Expired result.
-  result_time = base::Time::Now() - base::TimeDelta::FromDays(30);
+  result_time = base::Time::Now() - base::Days(30);
   prediction_result->set_timestamp_us(
       result_time.ToDeltaSinceWindowsEpoch().InMicroseconds());
   EXPECT_TRUE(metadata_utils::HasExpiredOrUnavailableResult(segment_info, now));
@@ -376,32 +376,25 @@
 TEST_F(MetadataUtilsTest, GetTimeUnit) {
   proto::SegmentationModelMetadata metadata;
   metadata.set_time_unit(proto::TimeUnit::DAY);
-  EXPECT_EQ(base::TimeDelta::FromDays(1),
-            metadata_utils::GetTimeUnit(metadata));
+  EXPECT_EQ(base::Days(1), metadata_utils::GetTimeUnit(metadata));
 
   metadata.set_time_unit(proto::TimeUnit::HOUR);
-  EXPECT_EQ(base::TimeDelta::FromHours(1),
-            metadata_utils::GetTimeUnit(metadata));
+  EXPECT_EQ(base::Hours(1), metadata_utils::GetTimeUnit(metadata));
 
   metadata.set_time_unit(proto::TimeUnit::MINUTE);
-  EXPECT_EQ(base::TimeDelta::FromMinutes(1),
-            metadata_utils::GetTimeUnit(metadata));
+  EXPECT_EQ(base::Minutes(1), metadata_utils::GetTimeUnit(metadata));
 
   metadata.set_time_unit(proto::TimeUnit::SECOND);
-  EXPECT_EQ(base::TimeDelta::FromSeconds(1),
-            metadata_utils::GetTimeUnit(metadata));
+  EXPECT_EQ(base::Seconds(1), metadata_utils::GetTimeUnit(metadata));
 
   metadata.set_time_unit(proto::TimeUnit::WEEK);
-  EXPECT_EQ(base::TimeDelta::FromDays(7),
-            metadata_utils::GetTimeUnit(metadata));
+  EXPECT_EQ(base::Days(7), metadata_utils::GetTimeUnit(metadata));
 
   metadata.set_time_unit(proto::TimeUnit::MONTH);
-  EXPECT_EQ(base::TimeDelta::FromDays(30),
-            metadata_utils::GetTimeUnit(metadata));
+  EXPECT_EQ(base::Days(30), metadata_utils::GetTimeUnit(metadata));
 
   metadata.set_time_unit(proto::TimeUnit::YEAR);
-  EXPECT_EQ(base::TimeDelta::FromDays(365),
-            metadata_utils::GetTimeUnit(metadata));
+  EXPECT_EQ(base::Days(365), metadata_utils::GetTimeUnit(metadata));
 }
 
 TEST_F(MetadataUtilsTest, SignalTypeToSignalKind) {
diff --git a/components/segmentation_platform/internal/database/signal_database_impl.cc b/components/segmentation_platform/internal/database/signal_database_impl.cc
index 5d3ad71..2d01518 100644
--- a/components/segmentation_platform/internal/database/signal_database_impl.cc
+++ b/components/segmentation_platform/internal/database/signal_database_impl.cc
@@ -169,8 +169,7 @@
     base::Time midnight = key.range_start().UTCMidnight();
     for (int i = 0; i < signal_data.samples_size(); ++i) {
       const auto& sample = signal_data.samples(i);
-      base::Time timestamp =
-          midnight + base::TimeDelta::FromSeconds(sample.time_sec_delta());
+      base::Time timestamp = midnight + base::Seconds(sample.time_sec_delta());
       if (timestamp < start_time || timestamp > end_time)
         continue;
 
@@ -233,8 +232,7 @@
   DCHECK(initialized_);
   // Compact the signals between 00:00:00AM to 23:59:59PM.
   day_start_time = day_start_time.UTCMidnight();
-  base::Time day_end_time = day_start_time + base::TimeDelta::FromDays(1) -
-                            base::TimeDelta::FromSeconds(1);
+  base::Time day_end_time = day_start_time + base::Days(1) - base::Seconds(1);
   SignalKey compact_key(metadata_utils::SignalTypeToSignalKind(signal_type),
                         name_hash, day_end_time, day_start_time);
   database_->LoadKeysAndEntriesWithFilter(
@@ -290,7 +288,7 @@
 
 void SignalDatabaseImpl::CleanupStaleCachedEntries(
     base::Time current_timestamp) {
-  base::Time prev_second = current_timestamp - base::TimeDelta::FromSeconds(1);
+  base::Time prev_second = current_timestamp - base::Seconds(1);
   std::vector<SignalKey> keys_to_delete;
   for (const auto& entry : recently_added_signals_) {
     if (entry.first.range_end() < prev_second)
diff --git a/components/segmentation_platform/internal/database/signal_database_impl_unittest.cc b/components/segmentation_platform/internal/database/signal_database_impl_unittest.cc
index e75e08df..35523762 100644
--- a/components/segmentation_platform/internal/database/signal_database_impl_unittest.cc
+++ b/components/segmentation_platform/internal/database/signal_database_impl_unittest.cc
@@ -13,7 +13,7 @@
 namespace segmentation_platform {
 
 bool IsWithinOneSecond(base::Time t1, base::Time t2) {
-  return (t1 - t2).magnitude() < base::TimeDelta::FromSeconds(1);
+  return (t1 - t2).magnitude() < base::Seconds(1);
 }
 
 void CheckVectorsEqual(const std::vector<SignalDatabase::Sample>& expected_list,
@@ -55,8 +55,7 @@
     signal_db_->Initialize(base::DoNothing());
     db_->InitStatusCallback(leveldb_proto::Enums::InitStatus::kOK);
 
-    test_clock_.SetNow(base::Time::Now().UTCMidnight() +
-                       base::TimeDelta::FromHours(8));
+    test_clock_.SetNow(base::Time::Now().UTCMidnight() + base::Hours(8));
   }
 
   void TearDown() override {
@@ -75,8 +74,7 @@
 
 TEST_F(SignalDatabaseImplTest, WriteSampleAndRead) {
   SetUpDB();
-  base::Time now =
-      base::Time::Now().UTCMidnight() + base::TimeDelta::FromHours(8);
+  base::Time now = base::Time::Now().UTCMidnight() + base::Hours(8);
 
   uint64_t name_hash = 1234;
   proto::SignalType signal_type = proto::SignalType::HISTOGRAM_VALUE;
@@ -90,7 +88,7 @@
 
   // Write a sample.
   int32_t value = 10;
-  base::Time timestamp = now - base::TimeDelta::FromHours(1);
+  base::Time timestamp = now - base::Hours(1);
   test_clock_.SetNow(timestamp);
   signal_db_->WriteSample(signal_type, name_hash, value, base::DoNothing());
   db_->UpdateCallback(true);
@@ -120,8 +118,7 @@
 
 TEST_F(SignalDatabaseImplTest, WriteSampleAndReadWithPrefixMismatch) {
   SetUpDB();
-  base::Time now =
-      base::Time::Now().UTCMidnight() + base::TimeDelta::FromHours(8);
+  base::Time now = base::Time::Now().UTCMidnight() + base::Hours(8);
 
   uint64_t name_hash_1 = 1234;
   uint64_t name_hash_2 = name_hash_1;
@@ -134,7 +131,7 @@
 
   // Write a sample for signal 1.
   int32_t value = 10;
-  base::Time timestamp = now - base::TimeDelta::FromHours(1);
+  base::Time timestamp = now - base::Hours(1);
   test_clock_.SetNow(timestamp);
   signal_db_->WriteSample(signal_type_1, name_hash_1, value, base::DoNothing());
   db_->UpdateCallback(true);
@@ -166,9 +163,9 @@
 
   proto::SignalType signal_type = proto::SignalType::USER_ACTION;
   uint64_t name_hash = 1234;
-  base::Time timestamp1 = test_clock_.Now() - base::TimeDelta::FromHours(3);
-  base::Time timestamp2 = timestamp1 + base::TimeDelta::FromHours(1);
-  base::Time timestamp3 = timestamp2 + base::TimeDelta::FromHours(1);
+  base::Time timestamp1 = test_clock_.Now() - base::Hours(3);
+  base::Time timestamp2 = timestamp1 + base::Hours(1);
+  base::Time timestamp3 = timestamp2 + base::Hours(1);
 
   // Write two samples, at timestamp1 and timestamp3.
   test_clock_.SetNow(timestamp1);
@@ -207,11 +204,10 @@
 
 TEST_F(SignalDatabaseImplTest, WriteMultipleSamplesAndRunCompaction) {
   // Set up three consecutive date timestamps, each at 8:00AM.
-  base::Time day1 = base::Time::Now().UTCMidnight() +
-                    base::TimeDelta::FromHours(8) -
-                    base::TimeDelta::FromDays(2);
-  base::Time day2 = day1 + base::TimeDelta::FromDays(1);
-  base::Time day3 = day2 + base::TimeDelta::FromDays(1);
+  base::Time day1 =
+      base::Time::Now().UTCMidnight() + base::Hours(8) - base::Days(2);
+  base::Time day2 = day1 + base::Days(1);
+  base::Time day3 = day2 + base::Days(1);
 
   SetUpDB();
   EXPECT_EQ(0u, db_entries_.size());
@@ -220,9 +216,9 @@
   uint64_t name_hash = 1234;
 
   // Collect two samples on day1, and one on day2.
-  base::Time timestamp_day1_1 = day1 + base::TimeDelta::FromHours(1);
-  base::Time timestamp_day1_2 = day1 + base::TimeDelta::FromHours(2);
-  base::Time timestamp_day2_1 = day2 + base::TimeDelta::FromHours(2);
+  base::Time timestamp_day1_1 = day1 + base::Hours(1);
+  base::Time timestamp_day1_2 = day1 + base::Hours(2);
+  base::Time timestamp_day2_1 = day2 + base::Hours(2);
 
   test_clock_.SetNow(timestamp_day1_1);
   signal_db_->WriteSample(signal_type, name_hash, absl::nullopt,
@@ -289,7 +285,7 @@
   db_->LoadCallback(true);
 
   signal_db_->GetSamples(signal_type, name_hash, day3.UTCMidnight(),
-                         day3.UTCMidnight() + base::TimeDelta::FromDays(1),
+                         day3.UTCMidnight() + base::Days(1),
                          base::BindOnce(&SignalDatabaseImplTest::OnGetSamples,
                                         base::Unretained(this)));
   db_->LoadCallback(true);
@@ -299,8 +295,8 @@
 
   // Read a range of samples not aligned to midnight.
   signal_db_->GetSamples(signal_type, name_hash,
-                         timestamp_day1_1 + base::TimeDelta::FromHours(1),
-                         timestamp_day2_1 - base::TimeDelta::FromHours(1),
+                         timestamp_day1_1 + base::Hours(1),
+                         timestamp_day2_1 - base::Hours(1),
                          base::BindOnce(&SignalDatabaseImplTest::OnGetSamples,
                                         base::Unretained(this)));
   db_->LoadCallback(true);
diff --git a/components/segmentation_platform/internal/database/signal_key.cc b/components/segmentation_platform/internal/database/signal_key.cc
index 859c666c..54acd21 100644
--- a/components/segmentation_platform/internal/database/signal_key.cc
+++ b/components/segmentation_platform/internal/database/signal_key.cc
@@ -41,8 +41,8 @@
 }
 
 base::Time StripResolutionSmallerThanSeconds(base::Time time) {
-  return base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromSeconds(
-      time.ToDeltaSinceWindowsEpoch().InSeconds()));
+  return base::Time::FromDeltaSinceWindowsEpoch(
+      base::Seconds(time.ToDeltaSinceWindowsEpoch().InSeconds()));
 }
 }  // namespace
 
@@ -91,9 +91,9 @@
       FromInternalSignalKindRepresentation(internal_key.prefix.kind);
   output->name_hash_ = internal_key.prefix.name_hash;
   output->range_start_ = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromSeconds(internal_key.time_range_start_sec));
+      base::Seconds(internal_key.time_range_start_sec));
   output->range_end_ = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromSeconds(internal_key.time_range_end_sec));
+      base::Seconds(internal_key.time_range_end_sec));
   return true;
 }
 
diff --git a/components/segmentation_platform/internal/database/signal_key_unittest.cc b/components/segmentation_platform/internal/database/signal_key_unittest.cc
index faea5c19..041ac0b 100644
--- a/components/segmentation_platform/internal/database/signal_key_unittest.cc
+++ b/components/segmentation_platform/internal/database/signal_key_unittest.cc
@@ -46,27 +46,26 @@
 
  protected:
   void SetUp() override {
-    test_clock_.SetNow(base::Time::UnixEpoch() + base::TimeDelta::FromHours(8));
+    test_clock_.SetNow(base::Time::UnixEpoch() + base::Hours(8));
   }
 
   base::SimpleTestClock test_clock_;
 };
 
 TEST_F(SignalKeyTest, TestConvertToAndFromBinary) {
-  VerifyConversion(
-      SignalKey(SignalKey::Kind::USER_ACTION, 1, test_clock_.Now(),
-                test_clock_.Now() + base::TimeDelta::FromSeconds(10)));
-  VerifyConversion(
-      SignalKey(SignalKey::Kind::HISTOGRAM_VALUE, 2, base::Time::Now(),
-                test_clock_.Now() + base::TimeDelta::FromSeconds(20)));
-  VerifyConversion(
-      SignalKey(SignalKey::Kind::HISTOGRAM_ENUM, 3, base::Time::Now(),
-                test_clock_.Now() + base::TimeDelta::FromSeconds(30)));
+  VerifyConversion(SignalKey(SignalKey::Kind::USER_ACTION, 1, test_clock_.Now(),
+                             test_clock_.Now() + base::Seconds(10)));
+  VerifyConversion(SignalKey(SignalKey::Kind::HISTOGRAM_VALUE, 2,
+                             base::Time::Now(),
+                             test_clock_.Now() + base::Seconds(20)));
+  VerifyConversion(SignalKey(SignalKey::Kind::HISTOGRAM_ENUM, 3,
+                             base::Time::Now(),
+                             test_clock_.Now() + base::Seconds(30)));
 }
 
 TEST_F(SignalKeyTest, TestValidity) {
   SignalKey valid_key(SignalKey::Kind::USER_ACTION, 42, test_clock_.Now(),
-                      test_clock_.Now() + base::TimeDelta::FromSeconds(10));
+                      test_clock_.Now() + base::Seconds(10));
   EXPECT_TRUE(valid_key.IsValid());
 
   // A default constructed key should not be valid.
@@ -95,7 +94,7 @@
   // By testing that the underlying format is the binary version of
   // SignalKeyInternal, we can ensure API guarantees based on SignalKeyInternal.
   SignalKey key(SignalKey::Kind::USER_ACTION, 42, test_clock_.Now(),
-                test_clock_.Now() + base::TimeDelta::FromSeconds(10));
+                test_clock_.Now() + base::Seconds(10));
 
   std::string binary_key = key.ToBinary();
   SignalKeyInternal internal_key;
@@ -108,7 +107,7 @@
 
 TEST_F(SignalKeyTest, TestGetPrefixInBinary) {
   SignalKey key(SignalKey::Kind::USER_ACTION, 42, test_clock_.Now(),
-                test_clock_.Now() + base::TimeDelta::FromSeconds(10));
+                test_clock_.Now() + base::Seconds(10));
 
   std::string binary_prefix = key.GetPrefixInBinary();
   SignalKeyInternal::Prefix prefix;
@@ -122,7 +121,7 @@
                   test_clock_.Now());
 
   SignalKey late(SignalKey::Kind::USER_ACTION, 42, test_clock_.Now(),
-                 test_clock_.Now() + base::TimeDelta::FromSeconds(20));
+                 test_clock_.Now() + base::Seconds(20));
 
   EXPECT_LT(CompareBinaryKeys(early, late), 0);
 }
@@ -138,21 +137,21 @@
 
 TEST_F(SignalKeyTest, EndTimeMoreSignificantThanStartTime) {
   SignalKey early_end(SignalKey::Kind::USER_ACTION, 42,
-                      test_clock_.Now() + base::TimeDelta::FromSeconds(20),
-                      test_clock_.Now() + base::TimeDelta::FromSeconds(20));
+                      test_clock_.Now() + base::Seconds(20),
+                      test_clock_.Now() + base::Seconds(20));
   SignalKey early_start(SignalKey::Kind::USER_ACTION, 42,
-                        test_clock_.Now() + base::TimeDelta::FromSeconds(10),
-                        test_clock_.Now() + base::TimeDelta::FromSeconds(30));
+                        test_clock_.Now() + base::Seconds(10),
+                        test_clock_.Now() + base::Seconds(30));
 
   EXPECT_LT(CompareBinaryKeys(early_end, early_start), 0);
 }
 
 TEST_F(SignalKeyTest, OrderByStartTimeIfEverythingElseIsEqual) {
   SignalKey early_start(SignalKey::Kind::USER_ACTION, 42,
-                        test_clock_.Now() + base::TimeDelta::FromSeconds(10),
+                        test_clock_.Now() + base::Seconds(10),
                         test_clock_.Now());
   SignalKey late_start(SignalKey::Kind::USER_ACTION, 42,
-                       test_clock_.Now() + base::TimeDelta::FromSeconds(20),
+                       test_clock_.Now() + base::Seconds(20),
                        test_clock_.Now());
 
   EXPECT_LT(CompareBinaryKeys(early_start, late_start), 0);
@@ -178,7 +177,7 @@
 
 TEST_F(SignalKeyTest, TestKeyDebugStringRepresentation) {
   SignalKey key(SignalKey::Kind::USER_ACTION, 42, test_clock_.Now(),
-                test_clock_.Now() + base::TimeDelta::FromSeconds(10));
+                test_clock_.Now() + base::Seconds(10));
 
   EXPECT_EQ(
       "{kind=1, name_hash=42, range_start=1970-01-01 08:00:00.000 UTC, "
diff --git a/components/segmentation_platform/internal/database/signal_storage_config.cc b/components/segmentation_platform/internal/database/signal_storage_config.cc
index fa11f98..f228a60 100644
--- a/components/segmentation_platform/internal/database/signal_storage_config.cc
+++ b/components/segmentation_platform/internal/database/signal_storage_config.cc
@@ -101,7 +101,7 @@
       return false;
 
     base::Time collection_start_time = base::Time::FromDeltaSinceWindowsEpoch(
-        base::TimeDelta::FromSeconds(config->collection_start_time_s()));
+        base::Seconds(config->collection_start_time_s()));
     if (clock_->Now() - collection_start_time < min_signal_collection_length)
       return false;
   }
@@ -158,9 +158,9 @@
   for (int i = 0; i < config_.signals_size(); ++i) {
     const auto& signal_config = config_.signals(i);
     base::Time collection_start_time = base::Time::FromDeltaSinceWindowsEpoch(
-        base::TimeDelta::FromSeconds(signal_config.collection_start_time_s()));
+        base::Seconds(signal_config.collection_start_time_s()));
     base::TimeDelta required_storage_length =
-        base::TimeDelta::FromSeconds(signal_config.storage_length_s());
+        base::Seconds(signal_config.storage_length_s());
     base::Time earliest_needed_timestamp =
         clock_->Now() - required_storage_length;
 
diff --git a/components/segmentation_platform/internal/database/signal_storage_config_unittest.cc b/components/segmentation_platform/internal/database/signal_storage_config_unittest.cc
index 2c43e59..132be8f 100644
--- a/components/segmentation_platform/internal/database/signal_storage_config_unittest.cc
+++ b/components/segmentation_platform/internal/database/signal_storage_config_unittest.cc
@@ -111,8 +111,7 @@
   proto::SignalStorageConfig signal_config = config.signals(0);
   EXPECT_EQ(name_hash, signal_config.name_hash());
   EXPECT_EQ(proto::SignalType::USER_ACTION, signal_config.signal_type());
-  EXPECT_EQ(base::TimeDelta::FromDays(2).InSeconds(),
-            signal_config.storage_length_s());
+  EXPECT_EQ(base::Days(2).InSeconds(), signal_config.storage_length_s());
   EXPECT_NE(0, signal_config.collection_start_time_s());
 
   // Add the second model. It should do a overwrite of previous value.
@@ -128,8 +127,7 @@
   signal_config = config.signals(0);
   EXPECT_EQ(name_hash, signal_config.name_hash());
   EXPECT_EQ(proto::SignalType::USER_ACTION, signal_config.signal_type());
-  EXPECT_EQ(base::TimeDelta::FromDays(6).InSeconds(),
-            signal_config.storage_length_s());
+  EXPECT_EQ(base::Days(6).InSeconds(), signal_config.storage_length_s());
   EXPECT_NE(0, signal_config.collection_start_time_s());
 
   // Signal collection shouldn't satisfy.
@@ -138,7 +136,7 @@
 
   // Advance clock by 1 day. Start collection. Signal collection still won't
   // satisfy.
-  test_clock_.Advance(base::TimeDelta::FromDays(1));
+  test_clock_.Advance(base::Days(1));
   EXPECT_FALSE(
       signal_storage_config_->MeetsSignalCollectionRequirement(metadata));
   EXPECT_FALSE(
@@ -147,7 +145,7 @@
 
   // Advance clock by 2 days. Signal collection should be sufficient for the
   // first model.
-  test_clock_.Advance(base::TimeDelta::FromDays(2));
+  test_clock_.Advance(base::Days(2));
   EXPECT_TRUE(
       signal_storage_config_->MeetsSignalCollectionRequirement(metadata));
   EXPECT_NE(0, signal_config.collection_start_time_s());
@@ -158,7 +156,7 @@
 
   // Advance clock by 3 days. Signal collection should be sufficient for second
   // model as well.
-  test_clock_.Advance(base::TimeDelta::FromDays(3));
+  test_clock_.Advance(base::Days(3));
   EXPECT_TRUE(
       signal_storage_config_->MeetsSignalCollectionRequirement(metadata));
   EXPECT_TRUE(
@@ -169,8 +167,7 @@
   signal_config = config.signals(0);
   EXPECT_EQ(name_hash, signal_config.name_hash());
   EXPECT_EQ(proto::SignalType::USER_ACTION, signal_config.signal_type());
-  EXPECT_EQ(base::TimeDelta::FromDays(6).InSeconds(),
-            signal_config.storage_length_s());
+  EXPECT_EQ(base::Days(6).InSeconds(), signal_config.storage_length_s());
   EXPECT_NE(0, signal_config.collection_start_time_s());
 }
 
@@ -184,31 +181,28 @@
   proto::SignalStorageConfig* signal1 = config.add_signals();
   signal1->set_name_hash(base::HashMetricName("1"));
   signal1->set_signal_type(proto::SignalType::HISTOGRAM_VALUE);
-  signal1->set_collection_start_time_s(
-      (test_clock_.Now() - base::TimeDelta::FromDays(3))
-          .ToDeltaSinceWindowsEpoch()
-          .InSeconds());
-  signal1->set_storage_length_s(base::TimeDelta::FromDays(2).InSeconds());
+  signal1->set_collection_start_time_s((test_clock_.Now() - base::Days(3))
+                                           .ToDeltaSinceWindowsEpoch()
+                                           .InSeconds());
+  signal1->set_storage_length_s(base::Days(2).InSeconds());
 
   // Unknown.
   proto::SignalStorageConfig* signal2 = config.add_signals();
   signal2->set_name_hash(base::HashMetricName("2"));
   signal2->set_signal_type(proto::SignalType::HISTOGRAM_VALUE);
-  signal2->set_collection_start_time_s(
-      (test_clock_.Now() - base::TimeDelta::FromDays(3))
-          .ToDeltaSinceWindowsEpoch()
-          .InSeconds());
-  signal2->set_storage_length_s(base::TimeDelta::FromDays(5).InSeconds());
+  signal2->set_collection_start_time_s((test_clock_.Now() - base::Days(3))
+                                           .ToDeltaSinceWindowsEpoch()
+                                           .InSeconds());
+  signal2->set_storage_length_s(base::Days(5).InSeconds());
 
   // Known.
   proto::SignalStorageConfig* signal3 = config.add_signals();
   signal3->set_name_hash(base::HashMetricName("3"));
   signal3->set_signal_type(proto::SignalType::HISTOGRAM_VALUE);
-  signal3->set_collection_start_time_s(
-      (test_clock_.Now() - base::TimeDelta::FromDays(3))
-          .ToDeltaSinceWindowsEpoch()
-          .InSeconds());
-  signal3->set_storage_length_s(base::TimeDelta::FromDays(5).InSeconds());
+  signal3->set_collection_start_time_s((test_clock_.Now() - base::Days(3))
+                                           .ToDeltaSinceWindowsEpoch()
+                                           .InSeconds());
+  signal3->set_storage_length_s(base::Days(5).InSeconds());
 
   // Initialize non-empty DB.
   db_entries_.insert({kDatabaseKey, config});
@@ -245,7 +239,7 @@
   signal_storage_config_->UpdateSignalsForCleanup(result);
   db_->UpdateCallback(true);
   auto signal = db_entries_[kDatabaseKey].signals(0);
-  EXPECT_EQ((test_clock_.Now() - base::TimeDelta::FromDays(2))
+  EXPECT_EQ((test_clock_.Now() - base::Days(2))
                 .ToDeltaSinceWindowsEpoch()
                 .InSeconds(),
             signal.collection_start_time_s());
diff --git a/components/segmentation_platform/internal/execution/feature_aggregator_impl_unittest.cc b/components/segmentation_platform/internal/execution/feature_aggregator_impl_unittest.cc
index cb8a701..4aa30fd 100644
--- a/components/segmentation_platform/internal/execution/feature_aggregator_impl_unittest.cc
+++ b/components/segmentation_platform/internal/execution/feature_aggregator_impl_unittest.cc
@@ -24,12 +24,11 @@
 using proto::SignalType;
 
 namespace {
-constexpr base::TimeDelta kDefaultBucketDuration =
-    base::TimeDelta::FromHours(3);
-constexpr base::TimeDelta kOneSecond = base::TimeDelta::FromSeconds(1);
-constexpr base::TimeDelta kTwoSeconds = base::TimeDelta::FromSeconds(2);
-constexpr base::TimeDelta kThreeSeconds = base::TimeDelta::FromSeconds(3);
-constexpr base::TimeDelta kFourSeconds = base::TimeDelta::FromSeconds(4);
+constexpr base::TimeDelta kDefaultBucketDuration = base::Hours(3);
+constexpr base::TimeDelta kOneSecond = base::Seconds(1);
+constexpr base::TimeDelta kTwoSeconds = base::Seconds(2);
+constexpr base::TimeDelta kThreeSeconds = base::Seconds(3);
+constexpr base::TimeDelta kFourSeconds = base::Seconds(4);
 constexpr uint64_t kDefaultBucketCount = 6;
 }  // namespace
 
@@ -258,46 +257,42 @@
 TEST_F(FeatureAggregatorImplTest, BucketizationThresholds) {
   std::vector<Sample> samples{
       // First sample is exactly 1 day ago, part of second bucket.
-      {clock_.Now() - base::TimeDelta::FromDays(1), 1},
+      {clock_.Now() - base::Days(1), 1},
       // Second sample is just over 1 day ago, part of second bucket.
-      {clock_.Now() - base::TimeDelta::FromDays(1) -
-           base::TimeDelta::FromSeconds(1),
-       2},
+      {clock_.Now() - base::Days(1) - base::Seconds(1), 2},
       // Second sample is just under 1 day ago, part of first bucket.
-      {clock_.Now() - base::TimeDelta::FromDays(1) +
-           base::TimeDelta::FromSeconds(1),
-       3},
+      {clock_.Now() - base::Days(1) + base::Seconds(1), 3},
   };
 
-  Verify(SignalType::USER_ACTION, Aggregation::BUCKETED_COUNT, 2,
-         base::TimeDelta::FromDays(1), samples, {1, 2});
-  Verify(SignalType::USER_ACTION, Aggregation::BUCKETED_SUM, 2,
-         base::TimeDelta::FromDays(1), samples, {1, 2});
+  Verify(SignalType::USER_ACTION, Aggregation::BUCKETED_COUNT, 2, base::Days(1),
+         samples, {1, 2});
+  Verify(SignalType::USER_ACTION, Aggregation::BUCKETED_SUM, 2, base::Days(1),
+         samples, {1, 2});
   Verify(SignalType::HISTOGRAM_ENUM, Aggregation::BUCKETED_COUNT, 2,
-         base::TimeDelta::FromDays(1), samples, {1, 2});
+         base::Days(1), samples, {1, 2});
   Verify(SignalType::HISTOGRAM_ENUM, Aggregation::BUCKETED_SUM, 2,
-         base::TimeDelta::FromDays(1), samples, {3, 3});
+         base::Days(1), samples, {3, 3});
   Verify(SignalType::HISTOGRAM_VALUE, Aggregation::BUCKETED_COUNT, 2,
-         base::TimeDelta::FromDays(1), samples, {1, 2});
+         base::Days(1), samples, {1, 2});
   Verify(SignalType::HISTOGRAM_VALUE, Aggregation::BUCKETED_SUM, 2,
-         base::TimeDelta::FromDays(1), samples, {3, 3});
+         base::Days(1), samples, {3, 3});
 }
 
 TEST_F(FeatureAggregatorImplTest, BucketsOutOfBounds) {
   std::vector<Sample> samples{
-      {clock_.Now() + base::TimeDelta::FromDays(1), 1},  // In the future.
+      {clock_.Now() + base::Days(1), 1},  // In the future.
       {clock_.Now(), 2},
-      {clock_.Now() - base::TimeDelta::FromDays(1), 3},
-      {clock_.Now() - base::TimeDelta::FromDays(2), 4},
-      {clock_.Now() - base::TimeDelta::FromDays(3), 5},  // Too old.
+      {clock_.Now() - base::Days(1), 3},
+      {clock_.Now() - base::Days(2), 4},
+      {clock_.Now() - base::Days(3), 5},  // Too old.
   };
 
   // Using bucket count of 3, means the first sample is out of bounds for being
   // in the future, and the last sample is out of bounds for being too old.
   Verify(SignalType::HISTOGRAM_VALUE, Aggregation::BUCKETED_COUNT, 3,
-         base::TimeDelta::FromDays(1), samples, {1, 1, 1});
+         base::Days(1), samples, {1, 1, 1});
   Verify(SignalType::HISTOGRAM_VALUE, Aggregation::BUCKETED_SUM, 3,
-         base::TimeDelta::FromDays(1), samples, {2, 3, 4});
+         base::Days(1), samples, {2, 3, 4});
 }
 
 TEST_F(FeatureAggregatorImplTest, FilterEnumSamples) {
diff --git a/components/segmentation_platform/internal/execution/model_execution_manager_impl_unittest.cc b/components/segmentation_platform/internal/execution/model_execution_manager_impl_unittest.cc
index 1a6ef85..b3b7a2b 100644
--- a/components/segmentation_platform/internal/execution/model_execution_manager_impl_unittest.cc
+++ b/components/segmentation_platform/internal/execution/model_execution_manager_impl_unittest.cc
@@ -43,8 +43,8 @@
 using Sample = SignalDatabase::Sample;
 
 namespace {
-constexpr base::TimeDelta kOneSecond = base::TimeDelta::FromSeconds(1);
-constexpr base::TimeDelta kTwoSeconds = base::TimeDelta::FromSeconds(2);
+constexpr base::TimeDelta kOneSecond = base::Seconds(1);
+constexpr base::TimeDelta kTwoSeconds = base::Seconds(2);
 }  // namespace
 
 class MockSegmentInfoDatabase : public test::TestSegmentInfoDatabase {
@@ -237,7 +237,7 @@
 
   // Initialize with required metadata.
   segment_database_->SetBucketDuration(segment_id, 3, proto::TimeUnit::HOUR);
-  base::TimeDelta bucket_duration = base::TimeDelta::FromHours(3);
+  base::TimeDelta bucket_duration = base::Hours(3);
 
   // Set up a single user action feature.
   std::string user_action_name_1 = "some_action_1";
@@ -294,7 +294,7 @@
 
   // Initialize with required metadata.
   segment_database_->SetBucketDuration(segment_id, 3, proto::TimeUnit::HOUR);
-  base::TimeDelta bucket_duration = base::TimeDelta::FromHours(3);
+  base::TimeDelta bucket_duration = base::Hours(3);
 
   // Set up 3 metadata feature, one of each signal type.
   std::string user_action_name = "some_user_action";
@@ -375,7 +375,7 @@
 
   // Initialize with required metadata.
   segment_database_->SetBucketDuration(segment_id, 3, proto::TimeUnit::HOUR);
-  base::TimeDelta bucket_duration = base::TimeDelta::FromHours(3);
+  base::TimeDelta bucket_duration = base::Hours(3);
 
   // Set up 3 metadata feature, one of each signal type.
   std::string collected_user_action = "some_user_action";
@@ -446,7 +446,7 @@
 
   // Initialize with required metadata.
   segment_database_->SetBucketDuration(segment_id, 3, proto::TimeUnit::HOUR);
-  base::TimeDelta bucket_duration = base::TimeDelta::FromHours(3);
+  base::TimeDelta bucket_duration = base::Hours(3);
 
   // Set up a single enum histogram feature.
   std::string histogram_enum_name = "some_histogram_enum";
@@ -498,7 +498,7 @@
 
   // Initialize with required metadata.
   segment_database_->SetBucketDuration(segment_id, 3, proto::TimeUnit::HOUR);
-  base::TimeDelta bucket_duration = base::TimeDelta::FromHours(3);
+  base::TimeDelta bucket_duration = base::Hours(3);
 
   // Set up metadata features where bucket_count is not equal to 1.
   std::string user_action_name = "some_user_action";
diff --git a/components/segmentation_platform/internal/scheduler/model_execution_scheduler_unittest.cc b/components/segmentation_platform/internal/scheduler/model_execution_scheduler_unittest.cc
index 3336e419..3b27ea17e 100644
--- a/components/segmentation_platform/internal/scheduler/model_execution_scheduler_unittest.cc
+++ b/components/segmentation_platform/internal/scheduler/model_execution_scheduler_unittest.cc
@@ -107,9 +107,8 @@
 
   // If we have a non-fresh, but not expired result, we SHOULD NOT try to
   // execute the model.
-  base::Time not_expired_timestamp = clock_.Now() -
-                                     base::TimeDelta::FromDays(1) +
-                                     base::TimeDelta::FromHours(1);
+  base::Time not_expired_timestamp =
+      clock_.Now() - base::Days(1) + base::Hours(1);
   prediction_result->set_result(0.9);
   prediction_result->set_timestamp_us(
       not_expired_timestamp.ToDeltaSinceWindowsEpoch().InMicroseconds());
@@ -119,9 +118,8 @@
   model_execution_scheduler_->OnNewModelInfoReady(*segment_info);
 
   // If we have an expired result, we SHOULD try to execute the model.
-  base::Time just_expired_timestamp = clock_.Now() -
-                                      base::TimeDelta::FromDays(1) -
-                                      base::TimeDelta::FromHours(1);
+  base::Time just_expired_timestamp =
+      clock_.Now() - base::Days(1) - base::Hours(1);
   prediction_result->set_result(0.9);
   prediction_result->set_timestamp_us(
       just_expired_timestamp.ToDeltaSinceWindowsEpoch().InMicroseconds());
diff --git a/components/segmentation_platform/internal/segmentation_platform_service_impl.cc b/components/segmentation_platform/internal/segmentation_platform_service_impl.cc
index 9b26ffdc..9413256 100644
--- a/components/segmentation_platform/internal/segmentation_platform_service_impl.cc
+++ b/components/segmentation_platform/internal/segmentation_platform_service_impl.cc
@@ -43,8 +43,7 @@
 const base::FilePath::CharType kSignalDBName[] = FILE_PATH_LITERAL("SignalDB");
 const base::FilePath::CharType kSignalStorageConfigDBName[] =
     FILE_PATH_LITERAL("SignalStorageConfigDB");
-const base::TimeDelta kDatabaseMaintenanceDelay =
-    base::TimeDelta::FromSeconds(30);
+const base::TimeDelta kDatabaseMaintenanceDelay = base::Seconds(30);
 }  // namespace
 
 SegmentationPlatformServiceImpl::SegmentationPlatformServiceImpl(
diff --git a/components/segmentation_platform/internal/segmentation_platform_service_impl_unittest.cc b/components/segmentation_platform/internal/segmentation_platform_service_impl_unittest.cc
index b09e783..284db60 100644
--- a/components/segmentation_platform/internal/segmentation_platform_service_impl_unittest.cc
+++ b/components/segmentation_platform/internal/segmentation_platform_service_impl_unittest.cc
@@ -59,7 +59,7 @@
   {
     std::unique_ptr<Config> config = std::make_unique<Config>();
     config->segmentation_key = kTestSegmentationKey1;
-    config->segment_selection_ttl = base::TimeDelta::FromDays(28);
+    config->segment_selection_ttl = base::Days(28);
     config->segment_ids = {
         OptimizationTarget::OPTIMIZATION_TARGET_SEGMENTATION_NEW_TAB,
         OptimizationTarget::OPTIMIZATION_TARGET_SEGMENTATION_SHARE};
@@ -68,7 +68,7 @@
   {
     std::unique_ptr<Config> config = std::make_unique<Config>();
     config->segmentation_key = kTestSegmentationKey2;
-    config->segment_selection_ttl = base::TimeDelta::FromDays(10);
+    config->segment_selection_ttl = base::Days(10);
     config->segment_ids = {
         OptimizationTarget::OPTIMIZATION_TARGET_SEGMENTATION_SHARE,
         OptimizationTarget::OPTIMIZATION_TARGET_SEGMENTATION_VOICE};
@@ -77,7 +77,7 @@
   {
     std::unique_ptr<Config> config = std::make_unique<Config>();
     config->segmentation_key = kTestSegmentationKey3;
-    config->segment_selection_ttl = base::TimeDelta::FromDays(14);
+    config->segment_selection_ttl = base::Days(14);
     config->segment_ids = {
         OptimizationTarget::OPTIMIZATION_TARGET_SEGMENTATION_NEW_TAB};
     configs.push_back(std::move(config));
diff --git a/components/segmentation_platform/internal/selection/segment_selector_unittest.cc b/components/segmentation_platform/internal/selection/segment_selector_unittest.cc
index fd63592..6c5f19a 100644
--- a/components/segmentation_platform/internal/selection/segment_selector_unittest.cc
+++ b/components/segmentation_platform/internal/selection/segment_selector_unittest.cc
@@ -30,7 +30,7 @@
 Config CreateTestConfig() {
   Config config;
   config.segmentation_key = "some_key";
-  config.segment_selection_ttl = base::TimeDelta::FromDays(28);
+  config.segment_selection_ttl = base::Days(28);
   config.segment_ids = {
       OptimizationTarget::OPTIMIZATION_TARGET_SEGMENTATION_NEW_TAB,
       OptimizationTarget::OPTIMIZATION_TARGET_SEGMENTATION_SHARE};
@@ -241,7 +241,7 @@
   segment_database_->AddPredictionResult(segment_id, 0.6, clock_.Now());
   segment_database_->AddPredictionResult(segment_id2, 0.5, clock_.Now());
 
-  clock_.Advance(base::TimeDelta::FromDays(1));
+  clock_.Advance(base::Days(1));
   segment_selector_->OnModelExecutionCompleted(segment_id);
   ASSERT_TRUE(prefs_->selection.has_value());
   ASSERT_EQ(segment_id2, prefs_->selection->segment_id);
diff --git a/components/send_tab_to_self/fake_send_tab_to_self_model.cc b/components/send_tab_to_self/fake_send_tab_to_self_model.cc
index 504c2c3..010b692e 100644
--- a/components/send_tab_to_self/fake_send_tab_to_self_model.cc
+++ b/components/send_tab_to_self/fake_send_tab_to_self_model.cc
@@ -50,10 +50,10 @@
        sync_pb::SyncEnums_DeviceType_TYPE_LINUX, base::Time::Now()},
       {"Fake Desktop 2 Long", "Fake Desktop 2", "D0001",
        sync_pb::SyncEnums_DeviceType_TYPE_WIN,
-       base::Time::Now() - base::TimeDelta::FromDays(1)},
+       base::Time::Now() - base::Days(1)},
       {"Fake Phone Long", "Fake Phone", "D0002",
        sync_pb::SyncEnums_DeviceType_TYPE_PHONE,
-       base::Time::Now() - base::TimeDelta::FromDays(7)},
+       base::Time::Now() - base::Days(7)},
   };
 }
 
diff --git a/components/send_tab_to_self/send_tab_to_self_bridge.cc b/components/send_tab_to_self/send_tab_to_self_bridge.cc
index b5c8aa2..5ed63fb 100644
--- a/components/send_tab_to_self/send_tab_to_self_bridge.cc
+++ b/components/send_tab_to_self/send_tab_to_self_bridge.cc
@@ -34,14 +34,13 @@
 
 using syncer::ModelTypeStore;
 
-const base::TimeDelta kDedupeTime = base::TimeDelta::FromSeconds(5);
+const base::TimeDelta kDedupeTime = base::Seconds(5);
 
-const base::TimeDelta kDeviceExpiration = base::TimeDelta::FromDays(10);
+const base::TimeDelta kDeviceExpiration = base::Days(10);
 
 // Converts a time field from sync protobufs to a time object.
 base::Time ProtoTimeToTime(int64_t proto_t) {
-  return base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(proto_t));
+  return base::Time::FromDeltaSinceWindowsEpoch(base::Microseconds(proto_t));
 }
 
 // Allocate a EntityData and copies |specifics| into it.
diff --git a/components/send_tab_to_self/send_tab_to_self_bridge_unittest.cc b/components/send_tab_to_self/send_tab_to_self_bridge_unittest.cc
index 9f5c8f2..5e5252ad 100644
--- a/components/send_tab_to_self/send_tab_to_self_bridge_unittest.cc
+++ b/components/send_tab_to_self/send_tab_to_self_bridge_unittest.cc
@@ -129,7 +129,7 @@
 
     SetLocalDeviceCacheGuid(kLocalDeviceCacheGuid);
     local_device_ = CreateDevice(kLocalDeviceCacheGuid, "device",
-                                 clock()->Now() - base::TimeDelta::FromDays(1));
+                                 clock()->Now() - base::Days(1));
     AddTestDevice(local_device_.get(), /*local=*/true);
   }
 
@@ -159,8 +159,7 @@
     base::RunLoop().RunUntilIdle();
   }
 
-  base::Time AdvanceAndGetTime(
-      base::TimeDelta delta = base::TimeDelta::FromMilliseconds(10)) {
+  base::Time AdvanceAndGetTime(base::TimeDelta delta = base::Milliseconds(10)) {
     clock_.Advance(delta);
     return clock_.Now();
   }
@@ -698,16 +697,15 @@
 
   // Create multiple DeviceInfo objects with the same name but different guids.
   std::unique_ptr<syncer::DeviceInfo> recent_device =
-      CreateDevice(kRecentGuid, "device_name",
-                   clock()->Now() - base::TimeDelta::FromDays(1));
+      CreateDevice(kRecentGuid, "device_name", clock()->Now() - base::Days(1));
   AddTestDevice(recent_device.get());
 
-  std::unique_ptr<syncer::DeviceInfo> old_device = CreateDevice(
-      kOldGuid, "device_name", clock()->Now() - base::TimeDelta::FromDays(3));
+  std::unique_ptr<syncer::DeviceInfo> old_device =
+      CreateDevice(kOldGuid, "device_name", clock()->Now() - base::Days(3));
   AddTestDevice(old_device.get());
 
-  std::unique_ptr<syncer::DeviceInfo> older_device = CreateDevice(
-      kOlderGuid, "device_name", clock()->Now() - base::TimeDelta::FromDays(5));
+  std::unique_ptr<syncer::DeviceInfo> older_device =
+      CreateDevice(kOlderGuid, "device_name", clock()->Now() - base::Days(5));
   AddTestDevice(older_device.get());
 
   TargetDeviceInfo target_device_info(
@@ -748,14 +746,12 @@
        GetTargetDeviceInfoSortedList_NoExpiredDevices) {
   InitializeBridge();
 
-  std::unique_ptr<syncer::DeviceInfo> expired_device =
-      CreateDevice("expired_guid", "expired_device_name",
-                   clock()->Now() - base::TimeDelta::FromDays(11));
+  std::unique_ptr<syncer::DeviceInfo> expired_device = CreateDevice(
+      "expired_guid", "expired_device_name", clock()->Now() - base::Days(11));
   AddTestDevice(expired_device.get());
 
-  std::unique_ptr<syncer::DeviceInfo> valid_device =
-      CreateDevice("valid_guid", "valid_device_name",
-                   clock()->Now() - base::TimeDelta::FromDays(1));
+  std::unique_ptr<syncer::DeviceInfo> valid_device = CreateDevice(
+      "valid_guid", "valid_device_name", clock()->Now() - base::Days(1));
   AddTestDevice(valid_device.get());
 
   TargetDeviceInfo target_device_info(
@@ -800,13 +796,11 @@
 
   // Set a device that is about to expire and a more recent device.
   std::unique_ptr<syncer::DeviceInfo> older_device =
-      CreateDevice("older_guid", "older_name",
-                   clock()->Now() - base::TimeDelta::FromDays(9));
+      CreateDevice("older_guid", "older_name", clock()->Now() - base::Days(9));
   AddTestDevice(older_device.get());
 
-  std::unique_ptr<syncer::DeviceInfo> recent_device =
-      CreateDevice("recent_guid", "recent_name",
-                   clock()->Now() - base::TimeDelta::FromDays(1));
+  std::unique_ptr<syncer::DeviceInfo> recent_device = CreateDevice(
+      "recent_guid", "recent_name", clock()->Now() - base::Days(1));
   AddTestDevice(recent_device.get());
 
   TargetDeviceInfo older_device_info(
@@ -823,7 +817,7 @@
               ElementsAre(recent_device_info, older_device_info));
 
   // Advance the time so that the older device expires.
-  clock()->Advance(base::TimeDelta::FromDays(5));
+  clock()->Advance(base::Days(5));
 
   // Make sure only the recent device is in the map.
   EXPECT_THAT(bridge()->GetTargetDeviceInfoSortedList(),
diff --git a/components/send_tab_to_self/send_tab_to_self_entry.cc b/components/send_tab_to_self/send_tab_to_self_entry.cc
index 8521faf..2361c23 100644
--- a/components/send_tab_to_self/send_tab_to_self_entry.cc
+++ b/components/send_tab_to_self/send_tab_to_self_entry.cc
@@ -25,8 +25,7 @@
 
 // Converts a time field from sync protobufs to a time object.
 base::Time ProtoTimeToTime(int64_t proto_t) {
-  return base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(proto_t));
+  return base::Time::FromDeltaSinceWindowsEpoch(base::Microseconds(proto_t));
 }
 
 }  // namespace
diff --git a/components/send_tab_to_self/send_tab_to_self_entry.h b/components/send_tab_to_self/send_tab_to_self_entry.h
index ccca3f2..9e1b76c 100644
--- a/components/send_tab_to_self/send_tab_to_self_entry.h
+++ b/components/send_tab_to_self/send_tab_to_self_entry.h
@@ -17,7 +17,7 @@
 
 namespace send_tab_to_self {
 
-constexpr base::TimeDelta kExpiryTime = base::TimeDelta::FromDays(10);
+constexpr base::TimeDelta kExpiryTime = base::Days(10);
 
 class SendTabToSelfLocal;
 
diff --git a/components/send_tab_to_self/send_tab_to_self_entry_unittest.cc b/components/send_tab_to_self/send_tab_to_self_entry_unittest.cc
index 2427cd0..d89cd6f 100644
--- a/components/send_tab_to_self/send_tab_to_self_entry_unittest.cc
+++ b/components/send_tab_to_self/send_tab_to_self_entry_unittest.cc
@@ -114,8 +114,7 @@
                            base::Time::FromTimeT(10), base::Time::FromTimeT(10),
                            "device1", "device1");
 
-  EXPECT_TRUE(entry.IsExpired(base::Time::FromTimeT(11) +
-                              base::TimeDelta::FromDays(10)));
+  EXPECT_TRUE(entry.IsExpired(base::Time::FromTimeT(11) + base::Days(10)));
   EXPECT_FALSE(entry.IsExpired(base::Time::FromTimeT(11)));
 }
 
diff --git a/components/services/heap_profiling/connection_manager.cc b/components/services/heap_profiling/connection_manager.cc
index 068915bc..70d28b9 100644
--- a/components/services/heap_profiling/connection_manager.cc
+++ b/components/services/heap_profiling/connection_manager.cc
@@ -73,7 +73,7 @@
 };
 
 ConnectionManager::ConnectionManager() {
-  metrics_timer_.Start(FROM_HERE, base::TimeDelta::FromHours(24),
+  metrics_timer_.Start(FROM_HERE, base::Hours(24),
                        base::BindRepeating(&ConnectionManager::ReportMetrics,
                                            base::Unretained(this)));
 }
diff --git a/components/services/storage/dom_storage/local_storage_impl.cc b/components/services/storage/dom_storage/local_storage_impl.cc
index 867e4657..62af440 100644
--- a/components/services/storage/dom_storage/local_storage_impl.cc
+++ b/components/services/storage/dom_storage/local_storage_impl.cc
@@ -200,8 +200,7 @@
       : context_(context), storage_key_(storage_key) {
     // Delay for a moment after a value is set in anticipation
     // of other values being set, so changes are batched.
-    static constexpr base::TimeDelta kCommitDefaultDelaySecs =
-        base::TimeDelta::FromSeconds(5);
+    static constexpr base::TimeDelta kCommitDefaultDelaySecs = base::Seconds(5);
 
     // To avoid excessive IO we apply limits to the amount of data being written
     // and the frequency of writes.
diff --git a/components/services/storage/dom_storage/session_storage_data_map.cc b/components/services/storage/dom_storage/session_storage_data_map.cc
index 6979775..afae716 100644
--- a/components/services/storage/dom_storage/session_storage_data_map.cc
+++ b/components/services/storage/dom_storage/session_storage_data_map.cc
@@ -102,8 +102,7 @@
 StorageAreaImpl::Options SessionStorageDataMap::GetOptions() {
   // Delay for a moment after a value is set in anticipation
   // of other values being set, so changes are batched.
-  constexpr const base::TimeDelta kCommitDefaultDelaySecs =
-      base::TimeDelta::FromSeconds(5);
+  constexpr const base::TimeDelta kCommitDefaultDelaySecs = base::Seconds(5);
 
   // To avoid excessive IO we apply limits to the amount of data being
   // written and the frequency of writes.
diff --git a/components/services/storage/dom_storage/storage_area_impl.cc b/components/services/storage/dom_storage/storage_area_impl.cc
index fbba1e7..443fc73 100644
--- a/components/services/storage/dom_storage/storage_area_impl.cc
+++ b/components/services/storage/dom_storage/storage_area_impl.cc
@@ -72,10 +72,8 @@
       memory_used_(0),
       start_time_(base::TimeTicks::Now()),
       default_commit_delay_(options.default_commit_delay),
-      data_rate_limiter_(options.max_bytes_per_hour,
-                         base::TimeDelta::FromHours(1)),
-      commit_rate_limiter_(options.max_commits_per_hour,
-                           base::TimeDelta::FromHours(1)) {
+      data_rate_limiter_(options.max_bytes_per_hour, base::Hours(1)),
+      commit_rate_limiter_(options.max_commits_per_hour, base::Hours(1)) {
   receivers_.set_disconnect_handler(base::BindRepeating(
       &StorageAreaImpl::OnConnectionError, weak_ptr_factory_.GetWeakPtr()));
 }
@@ -700,7 +698,7 @@
 
 base::TimeDelta StorageAreaImpl::ComputeCommitDelay() const {
   if (s_aggressive_flushing_enabled_)
-    return base::TimeDelta::FromSeconds(1);
+    return base::Seconds(1);
 
   base::TimeDelta elapsed_time = base::TimeTicks::Now() - start_time_;
   base::TimeDelta delay =
diff --git a/components/services/storage/dom_storage/storage_area_impl_unittest.cc b/components/services/storage/dom_storage/storage_area_impl_unittest.cc
index 88a18427..9b1fdad8 100644
--- a/components/services/storage/dom_storage/storage_area_impl_unittest.cc
+++ b/components/services/storage/dom_storage/storage_area_impl_unittest.cc
@@ -119,7 +119,7 @@
 StorageAreaImpl::Options GetDefaultTestingOptions(CacheMode cache_mode) {
   StorageAreaImpl::Options options;
   options.max_size = kTestSizeLimit;
-  options.default_commit_delay = base::TimeDelta::FromSeconds(5);
+  options.default_commit_delay = base::Seconds(5);
   options.max_bytes_per_hour = 10 * 1024 * 1024;
   options.max_commits_per_hour = 60;
   options.cache_mode = cache_mode;
diff --git a/components/services/storage/indexed_db/transactional_leveldb/transactional_leveldb_unittest.cc b/components/services/storage/indexed_db/transactional_leveldb/transactional_leveldb_unittest.cc
index b24a465..3059e9c6 100644
--- a/components/services/storage/indexed_db/transactional_leveldb/transactional_leveldb_unittest.cc
+++ b/components/services/storage/indexed_db/transactional_leveldb/transactional_leveldb_unittest.cc
@@ -181,7 +181,7 @@
   std::string put_value;
   auto test_clock = std::make_unique<base::SimpleTestClock>();
   base::SimpleTestClock* clock_ptr = test_clock.get();
-  clock_ptr->Advance(base::TimeDelta::FromHours(2));
+  clock_ptr->Advance(base::Hours(2));
 
   leveldb::Status status = OpenLevelDBDatabase();
   ASSERT_TRUE(status.ok());
@@ -194,14 +194,14 @@
   EXPECT_EQ(now_time, transactional_leveldb_database_->LastModified());
 
   // Calling |Remove| sets time modified.
-  clock_ptr->Advance(base::TimeDelta::FromSeconds(200));
+  clock_ptr->Advance(base::Seconds(200));
   now_time = clock_ptr->Now();
   status = transactional_leveldb_database_->Remove(key);
   EXPECT_TRUE(status.ok());
   EXPECT_EQ(now_time, transactional_leveldb_database_->LastModified());
 
   // Calling |Write| sets time modified
-  clock_ptr->Advance(base::TimeDelta::FromMinutes(15));
+  clock_ptr->Advance(base::Minutes(15));
   now_time = clock_ptr->Now();
   auto batch = LevelDBWriteBatch::Create();
   batch->Put(key, value);
diff --git a/components/services/storage/service_worker/service_worker_database.cc b/components/services/storage/service_worker/service_worker_database.cc
index aa93fbb..cdca93fc 100644
--- a/components/services/storage/service_worker/service_worker_database.cc
+++ b/components/services/storage/service_worker/service_worker_database.cc
@@ -1639,7 +1639,7 @@
   (*out)->is_active = data.is_active();
   (*out)->has_fetch_handler = data.has_fetch_handler();
   (*out)->last_update_check = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(data.last_update_check_time()));
+      base::Microseconds(data.last_update_check_time()));
   (*out)->resources_total_size_bytes = data.resources_total_size_bytes();
   if (data.has_origin_trial_tokens()) {
     const ServiceWorkerOriginTrialInfo& info = data.origin_trial_tokens();
@@ -1683,7 +1683,7 @@
 
   if (data.has_script_response_time()) {
     (*out)->script_response_time = base::Time::FromDeltaSinceWindowsEpoch(
-        base::TimeDelta::FromMicroseconds(data.script_response_time()));
+        base::Microseconds(data.script_response_time()));
   }
 
   if (data.has_update_via_cache()) {
diff --git a/components/sessions/core/command_storage_backend.cc b/components/sessions/core/command_storage_backend.cc
index 77e7924..8242c43d 100644
--- a/components/sessions/core/command_storage_backend.cc
+++ b/components/sessions/core/command_storage_backend.cc
@@ -523,8 +523,8 @@
   if (!base::StringToInt64(parts[1], &result))
     return false;
 
-  timestamp_result = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(result));
+  timestamp_result =
+      base::Time::FromDeltaSinceWindowsEpoch(base::Microseconds(result));
   return true;
 }
 
@@ -653,13 +653,12 @@
   // Ensure we don't reuse the current file (this is extremely unlikely to
   // ever be true).
   if (new_timestamp == timestamp_)
-    new_timestamp += base::TimeDelta::FromMicroseconds(1);
+    new_timestamp += base::Microseconds(1);
   if (last_session_info_) {
     // Ensure that the last session's timestamp is before the current file's.
     // This might not be true if the system clock has changed.
     if (last_session_info_->timestamp > new_timestamp) {
-      new_timestamp =
-          last_session_info_->timestamp + base::TimeDelta::FromMicroseconds(1);
+      new_timestamp = last_session_info_->timestamp + base::Microseconds(1);
     }
   }
   timestamp_ = new_timestamp;
diff --git a/components/sessions/core/command_storage_backend_unittest.cc b/components/sessions/core/command_storage_backend_unittest.cc
index 98ce68dd..c9c00b9e 100644
--- a/components/sessions/core/command_storage_backend_unittest.cc
+++ b/components/sessions/core/command_storage_backend_unittest.cc
@@ -538,7 +538,7 @@
   EXPECT_TRUE(
       CommandStorageBackend::TimestampFromPath(test_path_2, result_time_2));
   EXPECT_EQ(base::Time::FromDeltaSinceWindowsEpoch(
-                base::TimeDelta::FromMicroseconds(13234316721694577)),
+                base::Microseconds(13234316721694577)),
             result_time_2);
 
   // Test attempting to parse invalid file names.
@@ -564,7 +564,7 @@
   EXPECT_EQ(base_dir.Append(FILE_PATH_LITERAL("Session_0")), result_path_1);
 
   const auto test_time_2 = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(13234316721694577));
+      base::Microseconds(13234316721694577));
   const auto result_path_2 =
       FilePathFromTime(CommandStorageManager::SessionType::kTabRestore,
                        base::FilePath(), test_time_2);
diff --git a/components/sessions/core/command_storage_manager.cc b/components/sessions/core/command_storage_manager.cc
index 8c7980f..50d094c 100644
--- a/components/sessions/core/command_storage_manager.cc
+++ b/components/sessions/core/command_storage_manager.cc
@@ -22,7 +22,7 @@
 
 // Delay between when a command is received, and when we save it to the
 // backend.
-constexpr base::TimeDelta kSaveDelay = base::TimeDelta::FromMilliseconds(2500);
+constexpr base::TimeDelta kSaveDelay = base::Milliseconds(2500);
 
 void AdaptGetLastSessionCommands(
     CommandStorageManager::GetCommandsCallback callback,
diff --git a/components/sessions/core/serialized_navigation_entry_test_helper.cc b/components/sessions/core/serialized_navigation_entry_test_helper.cc
index 93c94eb..e0b2e757 100644
--- a/components/sessions/core/serialized_navigation_entry_test_helper.cc
+++ b/components/sessions/core/serialized_navigation_entry_test_helper.cc
@@ -27,8 +27,7 @@
 const bool kHasPostData = true;
 const int64_t kPostID = 100;
 const bool kIsOverridingUserAgent = true;
-const base::Time kTimestamp =
-    base::Time::UnixEpoch() + base::TimeDelta::FromMilliseconds(100);
+const base::Time kTimestamp = base::Time::UnixEpoch() + base::Milliseconds(100);
 const int kHttpStatusCode = 404;
 const SerializedNavigationEntry::PasswordState kPasswordState =
     SerializedNavigationEntry::HAS_PASSWORD_FIELD;
diff --git a/components/sessions/core/tab_restore_service_impl.cc b/components/sessions/core/tab_restore_service_impl.cc
index a9dc2d6c..7142d9e 100644
--- a/components/sessions/core/tab_restore_service_impl.cc
+++ b/components/sessions/core/tab_restore_service_impl.cc
@@ -343,7 +343,7 @@
       std::make_unique<sessions::TabRestoreService::Window>();
   window->selected_tab_index = fields.selected_tab_index;
   window->timestamp = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(fields.timestamp));
+      base::Microseconds(fields.timestamp));
   *window_id = SessionID::FromSerializedValue(fields.window_id);
   *num_tabs = fields.num_tabs;
 
@@ -1118,7 +1118,7 @@
           entries.push_back(std::make_unique<Tab>());
           current_tab = static_cast<Tab*>(entries.back().get());
           current_tab->timestamp = base::Time::FromDeltaSinceWindowsEpoch(
-              base::TimeDelta::FromMicroseconds(payload.timestamp));
+              base::Microseconds(payload.timestamp));
         }
         current_tab->current_navigation_index = payload.index;
         break;
diff --git a/components/shared_highlighting/core/common/shared_highlighting_metrics_unittest.cc b/components/shared_highlighting/core/common/shared_highlighting_metrics_unittest.cc
index 122ac2d..5e74fdc5 100644
--- a/components/shared_highlighting/core/common/shared_highlighting_metrics_unittest.cc
+++ b/components/shared_highlighting/core/common/shared_highlighting_metrics_unittest.cc
@@ -274,7 +274,7 @@
 
 // Tests that link generation success latency logs to the right histogram.
 TEST_F(SharedHighlightingMetricsTest, LinkGeneratedSuccessLatency) {
-  base::TimeDelta test_delta = base::TimeDelta::FromMilliseconds(2000);
+  base::TimeDelta test_delta = base::Milliseconds(2000);
 
   LogGenerateSuccessLatency(test_delta);
 
@@ -284,7 +284,7 @@
 
 // Tests that link generation failure latency logs to the right histogram.
 TEST_F(SharedHighlightingMetricsTest, LinkGeneratedErrorLatency) {
-  base::TimeDelta test_delta = base::TimeDelta::FromMilliseconds(2000);
+  base::TimeDelta test_delta = base::Milliseconds(2000);
 
   LogGenerateErrorLatency(test_delta);
 
diff --git a/components/signin/core/browser/account_reconcilor_unittest.cc b/components/signin/core/browser/account_reconcilor_unittest.cc
index 3aa8895..f9f0565f 100644
--- a/components/signin/core/browser/account_reconcilor_unittest.cc
+++ b/components/signin/core/browser/account_reconcilor_unittest.cc
@@ -96,7 +96,7 @@
 
   base::TimeDelta GetReconcileTimeout() const override {
     // Does not matter as long as it is different from base::TimeDelta::Max().
-    return base::TimeDelta::FromMinutes(100);
+    return base::Minutes(100);
   }
 
   void OnReconcileError(const GoogleServiceAuthError& error) override {
@@ -1665,7 +1665,7 @@
   ASSERT_EQ(0u, accounts_in_cookie_jar_info.signed_out_accounts.size());
   // List accounts retries once on |UNEXPECTED_SERVICE_RESPONSE| errors with
   // backoff protection.
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_environment()->FastForwardBy(base::Seconds(2));
   ASSERT_EQ(signin_metrics::ACCOUNT_RECONCILOR_ERROR, reconcilor->GetState());
 }
 
@@ -2616,8 +2616,8 @@
   }
 
   void FastForwadTimeToRefillRequests(size_t number_of_requests) {
-    task_environment()->FastForwardBy(base::TimeDelta::FromMinutes(
-        minutes_to_refill_per_request_ * number_of_requests));
+    task_environment()->FastForwardBy(
+        base::Minutes(minutes_to_refill_per_request_ * number_of_requests));
   }
 
  private:
diff --git a/components/signin/internal/identity_manager/account_fetcher_service.cc b/components/signin/internal/identity_manager/account_fetcher_service.cc
index 390383a..80b70bc 100644
--- a/components/signin/internal/identity_manager/account_fetcher_service.cc
+++ b/components/signin/internal/identity_manager/account_fetcher_service.cc
@@ -42,8 +42,7 @@
 
 namespace {
 
-const base::TimeDelta kRefreshFromTokenServiceDelay =
-    base::TimeDelta::FromHours(24);
+const base::TimeDelta kRefreshFromTokenServiceDelay = base::Hours(24);
 
 }  // namespace
 
diff --git a/components/signin/internal/identity_manager/account_tracker_service_unittest.cc b/components/signin/internal/identity_manager/account_tracker_service_unittest.cc
index 0c4b0ca..a079544 100644
--- a/components/signin/internal/identity_manager/account_tracker_service_unittest.cc
+++ b/components/signin/internal/identity_manager/account_tracker_service_unittest.cc
@@ -1196,7 +1196,7 @@
 
   // Rewind the time by half a day, which shouldn't be enough to trigger a
   // network refresh.
-  base::Time fake_update = base::Time::Now() - base::TimeDelta::FromHours(12);
+  base::Time fake_update = base::Time::Now() - base::Hours(12);
   signin_client()->GetPrefs()->SetTime(AccountFetcherService::kLastUpdatePref,
                                        fake_update);
 
@@ -1215,7 +1215,7 @@
   EXPECT_TRUE(account_fetcher()->AreAllAccountCapabilitiesFetched());
 
   // Rewind the last updated time enough to trigger a network refresh.
-  fake_update = base::Time::Now() - base::TimeDelta::FromHours(25);
+  fake_update = base::Time::Now() - base::Hours(25);
   signin_client()->GetPrefs()->SetTime(AccountFetcherService::kLastUpdatePref,
                                        fake_update);
 
diff --git a/components/signin/internal/identity_manager/gaia_cookie_manager_service.cc b/components/signin/internal/identity_manager/gaia_cookie_manager_service.cc
index ee185282f..1f2cfd3 100644
--- a/components/signin/internal/identity_manager/gaia_cookie_manager_service.cc
+++ b/components/signin/internal/identity_manager/gaia_cookie_manager_service.cc
@@ -257,9 +257,8 @@
 
   // Some fetches may timeout.  Start a timer to decide when the result fetcher
   // has waited long enough.
-  timer_.Start(
-      FROM_HERE, base::TimeDelta::FromSeconds(kExternalCCResultTimeoutSeconds),
-      this, &GaiaCookieManagerService::ExternalCcResultFetcher::Timeout);
+  timer_.Start(FROM_HERE, base::Seconds(kExternalCCResultTimeoutSeconds), this,
+               &GaiaCookieManagerService::ExternalCcResultFetcher::Timeout);
 }
 
 bool GaiaCookieManagerService::ExternalCcResultFetcher::IsRunning() {
diff --git a/components/signin/internal/identity_manager/gaia_cookie_manager_service_unittest.cc b/components/signin/internal/identity_manager/gaia_cookie_manager_service_unittest.cc
index 62409c5..4eb070d 100644
--- a/components/signin/internal/identity_manager/gaia_cookie_manager_service_unittest.cc
+++ b/components/signin/internal/identity_manager/gaia_cookie_manager_service_unittest.cc
@@ -215,8 +215,7 @@
 
   void Advance(scoped_refptr<base::TestMockTimeTaskRunner> test_task_runner,
                base::TimeDelta advance_by) {
-    test_task_runner->FastForwardBy(advance_by +
-                                    base::TimeDelta::FromMilliseconds(1));
+    test_task_runner->FastForwardBy(advance_by + base::Milliseconds(1));
     test_task_runner->RunUntilIdle();
   }
 
diff --git a/components/signin/internal/identity_manager/profile_oauth2_token_service_unittest.cc b/components/signin/internal/identity_manager/profile_oauth2_token_service_unittest.cc
index 13a1acb1..ce013356 100644
--- a/components/signin/internal/identity_manager/profile_oauth2_token_service_unittest.cc
+++ b/components/signin/internal/identity_manager/profile_oauth2_token_service_unittest.cc
@@ -736,7 +736,7 @@
        max_reties >= 0 && consumer_.number_of_successful_tokens_ != 1;
        --max_reties) {
     base::RunLoop().RunUntilIdle();
-    base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(1));
+    base::PlatformThread::Sleep(base::Seconds(1));
   }
 
   EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
diff --git a/components/signin/internal/identity_manager/ubertoken_fetcher_impl.cc b/components/signin/internal/identity_manager/ubertoken_fetcher_impl.cc
index 1f808b1e..6267b19 100644
--- a/components/signin/internal/identity_manager/ubertoken_fetcher_impl.cc
+++ b/components/signin/internal/identity_manager/ubertoken_fetcher_impl.cc
@@ -89,8 +89,8 @@
       UMA_HISTOGRAM_ENUMERATION("Signin.UberTokenRetry", error.state(),
                                 GoogleServiceAuthError::NUM_STATES);
       retry_timer_.Stop();
-      retry_timer_.Start(FROM_HERE, base::TimeDelta::FromSecondsD(backoff),
-                         this, &UbertokenFetcherImpl::ExchangeTokens);
+      retry_timer_.Start(FROM_HERE, base::Seconds(backoff), this,
+                         &UbertokenFetcherImpl::ExchangeTokens);
       return;
     }
   } else {
diff --git a/components/signin/ios/browser/account_consistency_service.mm b/components/signin/ios/browser/account_consistency_service.mm
index f516752a..1b2eb434 100644
--- a/components/signin/ios/browser/account_consistency_service.mm
+++ b/components/signin/ios/browser/account_consistency_service.mm
@@ -45,8 +45,7 @@
 // ensure that Mirror account consistency is respected in light of the more
 // restrictive Intelligent Tracking Prevention (ITP) guidelines in iOS 14
 // that may remove or invalidate Gaia cookies on the Google domain.
-constexpr base::TimeDelta kDelayThresholdToUpdateGaiaCookie =
-    base::TimeDelta::FromHours(1);
+constexpr base::TimeDelta kDelayThresholdToUpdateGaiaCookie = base::Hours(1);
 
 const char* kGoogleUrl = "https://google.com";
 const char* kYoutubeUrl = "https://youtube.com";
@@ -90,7 +89,7 @@
         signin::kDelayThresholdMinutesToUpdateGaiaCookie);
     int commandLineDelay = 0;
     if (base::StringToInt(delayString, &commandLineDelay)) {
-      return base::TimeDelta::FromMinutes(commandLineDelay);
+      return base::Minutes(commandLineDelay);
     }
   }
   return kDelayThresholdToUpdateGaiaCookie;
@@ -496,8 +495,7 @@
           /*creation_time=*/base::Time::Now(),
           // Create expiration date of Now+2y to roughly follow the SAPISID
           // cookie.
-          /*expiration_time=*/base::Time::Now() +
-              base::TimeDelta::FromDays(730),
+          /*expiration_time=*/base::Time::Now() + base::Days(730),
           /*last_access_time=*/base::Time(),
           /*secure=*/true,
           /*httponly=*/false, net::CookieSameSite::LAX_MODE,
diff --git a/components/signin/ios/browser/account_consistency_service_unittest.mm b/components/signin/ios/browser/account_consistency_service_unittest.mm
index 763a2f58..bbefaae 100644
--- a/components/signin/ios/browser/account_consistency_service_unittest.mm
+++ b/components/signin/ios/browser/account_consistency_service_unittest.mm
@@ -789,7 +789,7 @@
   SimulateNavigateToURL(response, nil);
 
   // Advance clock, but stay within the one-hour Gaia update time.
-  base::TimeDelta oneMinuteDelta = base::TimeDelta::FromMinutes(1);
+  base::TimeDelta oneMinuteDelta = base::Minutes(1);
   task_environment_.FastForwardBy(oneMinuteDelta);
   SimulateNavigateToURLWithInterruption(response, nil);
 
@@ -815,7 +815,7 @@
   SimulateNavigateToURL(response, nil);
 
   // Advance clock past the one-hour Gaia update time.
-  base::TimeDelta twoHourDelta = base::TimeDelta::FromHours(2);
+  base::TimeDelta twoHourDelta = base::Hours(2);
   task_environment_.FastForwardBy(twoHourDelta);
   SimulateNavigateToURL(response, nil);
 
diff --git a/components/signin/public/base/persistent_repeating_timer_unittest.cc b/components/signin/public/base/persistent_repeating_timer_unittest.cc
index 5f0a5779..89bc888 100644
--- a/components/signin/public/base/persistent_repeating_timer_unittest.cc
+++ b/components/signin/public/base/persistent_repeating_timer_unittest.cc
@@ -14,7 +14,7 @@
 namespace {
 
 const char kLastUpdatedTimePref[] = "test.last_updated_time";
-constexpr base::TimeDelta kTestDelay = base::TimeDelta::FromHours(2);
+constexpr base::TimeDelta kTestDelay = base::Hours(2);
 
 }  // namespace
 
@@ -50,7 +50,7 @@
   timer.Start();
   CheckCallCount(1);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_environment_.FastForwardBy(base::Minutes(1));
   CheckCallCount(1);
 
   // And after the delay.
@@ -72,9 +72,9 @@
   timer.Start();
   CheckCallCount(1);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_environment_.FastForwardBy(base::Minutes(1));
   CheckCallCount(1);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_environment_.FastForwardBy(base::Minutes(1));
   timer.Start();
   CheckCallCount(1);
 
@@ -87,7 +87,7 @@
 
 TEST_F(PersistentRepeatingTimerTest, RecentPref) {
   pref_service_.SetTime(kLastUpdatedTimePref,
-                        base::Time::Now() - base::TimeDelta::FromHours(1));
+                        base::Time::Now() - base::Hours(1));
 
   PersistentRepeatingTimer timer(
       &pref_service_, kLastUpdatedTimePref, kTestDelay,
@@ -99,22 +99,22 @@
   timer.Start();
   CheckCallCount(0);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_environment_.FastForwardBy(base::Minutes(1));
   CheckCallCount(0);
 
   // It is run after te delay.
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
   CheckCallCount(1);
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
   CheckCallCount(1);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
   CheckCallCount(2);
 }
 
 TEST_F(PersistentRepeatingTimerTest, OldPref) {
   pref_service_.SetTime(kLastUpdatedTimePref,
-                        base::Time::Now() - base::TimeDelta::FromHours(10));
+                        base::Time::Now() - base::Hours(10));
 
   PersistentRepeatingTimer timer(
       &pref_service_, kLastUpdatedTimePref, kTestDelay,
@@ -126,7 +126,7 @@
   timer.Start();
   CheckCallCount(1);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_environment_.FastForwardBy(base::Minutes(1));
   CheckCallCount(1);
 
   // And after the delay.
diff --git a/components/signin/public/base/signin_metrics.cc b/components/signin/public/base/signin_metrics.cc
index bae2aac..c6f93bb 100644
--- a/components/signin/public/base/signin_metrics.cc
+++ b/components/signin/public/base/signin_metrics.cc
@@ -605,12 +605,12 @@
                                             bool successful) {
   if (successful) {
     UMA_HISTOGRAM_CUSTOM_TIMES("Signin.Reconciler.Duration.UpTo3mins.Success",
-                               duration, base::TimeDelta::FromMilliseconds(1),
-                               base::TimeDelta::FromMinutes(3), 100);
+                               duration, base::Milliseconds(1),
+                               base::Minutes(3), 100);
   } else {
     UMA_HISTOGRAM_CUSTOM_TIMES("Signin.Reconciler.Duration.UpTo3mins.Failure",
-                               duration, base::TimeDelta::FromMilliseconds(1),
-                               base::TimeDelta::FromMinutes(3), 100);
+                               duration, base::Milliseconds(1),
+                               base::Minutes(3), 100);
   }
 }
 
@@ -665,8 +665,7 @@
   INVESTIGATOR_HISTOGRAM_CUSTOM_COUNTS(
       "Signin.CookieJar.StableAge", type,
       base::saturated_cast<int>(stable_age.InSeconds()), 1,
-      base::saturated_cast<int>(base::TimeDelta::FromDays(365).InSeconds()),
-      100);
+      base::saturated_cast<int>(base::Days(365).InSeconds()), 100);
 }
 
 void LogCookieJarCounts(const int signed_in,
diff --git a/components/signin/public/identity_manager/access_token_fetcher_unittest.cc b/components/signin/public/identity_manager/access_token_fetcher_unittest.cc
index f26e59b..81f36b7 100644
--- a/components/signin/public/identity_manager/access_token_fetcher_unittest.cc
+++ b/components/signin/public/identity_manager/access_token_fetcher_unittest.cc
@@ -62,7 +62,7 @@
       : signin_client_(&pref_service_),
         token_service_(&pref_service_),
         access_token_info_("access token",
-                           base::Time::Now() + base::TimeDelta::FromHours(1),
+                           base::Time::Now() + base::Hours(1),
                            std::string(kIdTokenEmptyServices)),
         account_tracker_(std::make_unique<AccountTrackerService>()),
         primary_account_manager_(&signin_client_,
diff --git a/components/signin/public/identity_manager/accounts_cookie_mutator_unittest.cc b/components/signin/public/identity_manager/accounts_cookie_mutator_unittest.cc
index b13a43d..6677e68dd 100644
--- a/components/signin/public/identity_manager/accounts_cookie_mutator_unittest.cc
+++ b/components/signin/public/identity_manager/accounts_cookie_mutator_unittest.cc
@@ -230,8 +230,7 @@
       account_id, gaia::GaiaSource::kChrome, std::move(completion_callback));
 
   identity_test_env()->WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
-      account_id, kTestAccessToken,
-      base::Time::Now() + base::TimeDelta::FromHours(1));
+      account_id, kTestAccessToken, base::Time::Now() + base::Hours(1));
   run_loop.Run();
 
   EXPECT_EQ(account_id_from_add_account_to_cookie_completed_callback,
@@ -377,11 +376,9 @@
           run_loop.QuitClosure()));
 
   identity_test_env()->WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
-      account_id, kTestAccessToken,
-      base::Time::Now() + base::TimeDelta::FromHours(1));
+      account_id, kTestAccessToken, base::Time::Now() + base::Hours(1));
   identity_test_env()->WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
-      other_account_id, kTestAccessToken,
-      base::Time::Now() + base::TimeDelta::FromHours(1));
+      other_account_id, kTestAccessToken, base::Time::Now() + base::Hours(1));
 
   run_loop.Run();
 }
@@ -415,11 +412,9 @@
               run_loop.QuitClosure()));
 
   identity_test_env()->WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
-      account_id, kTestAccessToken,
-      base::Time::Now() + base::TimeDelta::FromHours(1));
+      account_id, kTestAccessToken, base::Time::Now() + base::Hours(1));
   identity_test_env()->WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
-      other_account_id, kTestAccessToken,
-      base::Time::Now() + base::TimeDelta::FromHours(1));
+      other_account_id, kTestAccessToken, base::Time::Now() + base::Hours(1));
 
   run_loop.Run();
 }
diff --git a/components/signin/public/identity_manager/primary_account_access_token_fetcher_unittest.cc b/components/signin/public/identity_manager/primary_account_access_token_fetcher_unittest.cc
index f85af31..e552b72 100644
--- a/components/signin/public/identity_manager/primary_account_access_token_fetcher_unittest.cc
+++ b/components/signin/public/identity_manager/primary_account_access_token_fetcher_unittest.cc
@@ -49,7 +49,7 @@
   PrimaryAccountAccessTokenFetcherTest()
       : identity_test_env_(std::make_unique<IdentityTestEnvironment>()),
         access_token_info_("access token",
-                           base::Time::Now() + base::TimeDelta::FromHours(1),
+                           base::Time::Now() + base::Hours(1),
                            "id_token") {}
 
   ~PrimaryAccountAccessTokenFetcherTest() override = default;
diff --git a/components/site_engagement/content/site_engagement_helper.cc b/components/site_engagement/content/site_engagement_helper.cc
index 04e037a..6cbe364 100644
--- a/components/site_engagement/content/site_engagement_helper.cc
+++ b/components/site_engagement/content/site_engagement_helper.cc
@@ -66,8 +66,7 @@
 
 void SiteEngagementService::Helper::PeriodicTracker::Pause() {
   TrackingStopped();
-  StartTimer(
-      base::TimeDelta::FromSeconds(g_seconds_to_pause_engagement_detection));
+  StartTimer(base::Seconds(g_seconds_to_pause_engagement_detection));
 }
 
 void SiteEngagementService::Helper::PeriodicTracker::Stop() {
@@ -173,7 +172,7 @@
   // Only begin engagement detection when media actually starts playing.
   active_media_players_.push_back(id);
   if (!IsTimerRunning())
-    Start(base::TimeDelta::FromSeconds(g_seconds_delay_after_media_starts));
+    Start(base::Seconds(g_seconds_delay_after_media_starts));
 }
 
 void SiteEngagementService::Helper::MediaTracker::MediaStoppedPlaying(
@@ -235,8 +234,7 @@
 
   service_->HandleNavigation(web_contents(), handle->GetPageTransition());
 
-  input_tracker_.Start(
-      base::TimeDelta::FromSeconds(g_seconds_delay_after_navigation));
+  input_tracker_.Start(base::Seconds(g_seconds_delay_after_navigation));
 }
 
 void SiteEngagementService::Helper::OnVisibilityChanged(
@@ -251,8 +249,7 @@
     // Start a timer to track input if it isn't already running and input isn't
     // already being tracked.
     if (!input_tracker_.IsTimerRunning() && !input_tracker_.is_tracking()) {
-      input_tracker_.Start(
-          base::TimeDelta::FromSeconds(g_seconds_delay_after_show));
+      input_tracker_.Start(base::Seconds(g_seconds_delay_after_show));
     }
   }
 }
diff --git a/components/site_engagement/content/site_engagement_score_unittest.cc b/components/site_engagement/content/site_engagement_score_unittest.cc
index 09cae4d..855f8bea 100644
--- a/components/site_engagement/content/site_engagement_score_unittest.cc
+++ b/components/site_engagement/content/site_engagement_score_unittest.cc
@@ -89,8 +89,7 @@
 
     // Update the score to new values and verify it updates the score dict
     // correctly.
-    base::Time different_day =
-        GetReferenceTime() + base::TimeDelta::FromDays(1);
+    base::Time different_day = GetReferenceTime() + base::Days(1);
     UpdateScore(&initial_score, 5, 10, different_day);
     EXPECT_TRUE(initial_score.UpdateScoreDict(copy.get()));
     SiteEngagementScore updated_score(&test_clock_, GURL(), std::move(copy));
@@ -125,7 +124,7 @@
 // a different day.
 TEST_F(SiteEngagementScoreTest, AccumulateOnTwoDays) {
   base::Time reference_time = GetReferenceTime();
-  base::Time later_date = reference_time + base::TimeDelta::FromDays(2);
+  base::Time later_date = reference_time + base::Days(2);
 
   test_clock_.SetNow(reference_time);
   for (int i = 0; i < kMoreAccumulationsThanNeededToMaxDailyEngagement; ++i)
@@ -153,7 +152,7 @@
   base::Time current_day = GetReferenceTime();
 
   for (int i = 0; i < kMoreDaysThanNeededToMaxTotalEngagement; ++i) {
-    current_day += base::TimeDelta::FromDays(1);
+    current_day += base::Days(1);
     test_clock_.SetNow(current_day);
     for (int j = 0; j < kMoreAccumulationsThanNeededToMaxDailyEngagement; ++j)
       score_.AddPoints(SiteEngagementScore::GetNavigationPoints());
@@ -172,7 +171,7 @@
   base::Time current_day = GetReferenceTime();
 
   for (int i = 0; i < kMoreAccumulationsThanNeededToMaxTotalEngagement; ++i) {
-    current_day += base::TimeDelta::FromDays(1);
+    current_day += base::Days(1);
     test_clock_.SetNow(current_day);
 
     for (int j = 0; j < kLessAccumulationsThanNeededToMaxDailyEngagement; ++j)
@@ -194,7 +193,7 @@
 
   // First max the score.
   for (int i = 0; i < kMoreDaysThanNeededToMaxTotalEngagement; ++i) {
-    current_day += base::TimeDelta::FromDays(1);
+    current_day += base::Days(1);
     test_clock_.SetNow(current_day);
 
     for (int j = 0; j < kMoreAccumulationsThanNeededToMaxDailyEngagement; ++j)
@@ -205,25 +204,23 @@
 
   // The score should not have decayed before the first decay period has
   // elapsed.
-  test_clock_.SetNow(current_day +
-                     base::TimeDelta::FromHours(
-                         SiteEngagementScore::GetDecayPeriodInHours() - 1));
+  test_clock_.SetNow(
+      current_day +
+      base::Hours(SiteEngagementScore::GetDecayPeriodInHours() - 1));
   EXPECT_EQ(SiteEngagementScore::kMaxPoints, score_.GetTotalScore());
 
   // The score should have decayed by one chunk after one decay period has
   // elapsed.
-  test_clock_.SetNow(
-      current_day +
-      base::TimeDelta::FromHours(SiteEngagementScore::GetDecayPeriodInHours()));
+  test_clock_.SetNow(current_day +
+                     base::Hours(SiteEngagementScore::GetDecayPeriodInHours()));
   EXPECT_EQ(
       SiteEngagementScore::kMaxPoints - SiteEngagementScore::GetDecayPoints(),
       score_.GetTotalScore());
 
   // The score should have decayed by the right number of chunks after a few
   // decay periods have elapsed.
-  test_clock_.SetNow(
-      current_day +
-      base::TimeDelta::FromHours(kLessPeriodsThanNeededToDecayMaxScore *
+  test_clock_.SetNow(current_day +
+                     base::Hours(kLessPeriodsThanNeededToDecayMaxScore *
                                  SiteEngagementScore::GetDecayPeriodInHours()));
   EXPECT_EQ(SiteEngagementScore::kMaxPoints -
                 kLessPeriodsThanNeededToDecayMaxScore *
@@ -231,9 +228,8 @@
             score_.GetTotalScore());
 
   // The score should not decay below zero.
-  test_clock_.SetNow(
-      current_day +
-      base::TimeDelta::FromHours(kMorePeriodsThanNeededToDecayMaxScore *
+  test_clock_.SetNow(current_day +
+                     base::Hours(kMorePeriodsThanNeededToDecayMaxScore *
                                  SiteEngagementScore::GetDecayPeriodInHours()));
   EXPECT_EQ(0, score_.GetTotalScore());
 }
@@ -244,7 +240,7 @@
 
   // Get the score up to something that can handle a bit of decay before
   for (int i = 0; i < kLessDaysThanNeededToMaxTotalEngagement; ++i) {
-    current_day += base::TimeDelta::FromDays(1);
+    current_day += base::Days(1);
     test_clock_.SetNow(current_day);
 
     for (int j = 0; j < kMoreAccumulationsThanNeededToMaxDailyEngagement; ++j)
@@ -256,9 +252,8 @@
   EXPECT_EQ(initial_score, score_.GetTotalScore());
 
   // Go forward a few decay periods.
-  test_clock_.SetNow(
-      current_day +
-      base::TimeDelta::FromHours(kLessPeriodsThanNeededToDecayMaxScore *
+  test_clock_.SetNow(current_day +
+                     base::Hours(kLessPeriodsThanNeededToDecayMaxScore *
                                  SiteEngagementScore::GetDecayPeriodInHours()));
 
   double decayed_score =
@@ -284,9 +279,9 @@
 
   // Adding to the score on an earlier date should be treated like another day,
   // and should not cause any decay.
-  test_clock_.SetNow(current_day - base::TimeDelta::FromDays(
-                                       kMorePeriodsThanNeededToDecayMaxScore *
-                                       SiteEngagementScore::GetDecayPoints()));
+  test_clock_.SetNow(current_day -
+                     base::Days(kMorePeriodsThanNeededToDecayMaxScore *
+                                SiteEngagementScore::GetDecayPoints()));
   for (int i = 0; i < kMoreAccumulationsThanNeededToMaxDailyEngagement; ++i) {
     score_.AddPoints(SiteEngagementScore::GetNavigationPoints());
     double day_score =
@@ -354,7 +349,7 @@
   score2.AddPoints(1.0);
   EXPECT_EQ(2.5, score2.GetTotalScore());
 
-  test_clock_.SetNow(current_day + base::TimeDelta::FromDays(1));
+  test_clock_.SetNow(current_day + base::Days(1));
 
   // The first event for the next day gets the bonus.
   score1.AddPoints(0.5);
@@ -378,7 +373,7 @@
   score_.AddPoints(SiteEngagementScore::GetNavigationPoints());
   EXPECT_EQ(SiteEngagementScore::GetNavigationPoints(), score_.GetTotalScore());
 
-  current_day += base::TimeDelta::FromDays(7);
+  current_day += base::Days(7);
   test_clock_.SetNow(current_day);
 
   score_.Reset(20.0, current_day);
@@ -392,9 +387,9 @@
   EXPECT_EQ(25.0, score_.GetTotalScore());
 
   // The decay should happen one decay period from the current time.
-  test_clock_.SetNow(current_day +
-                     base::TimeDelta::FromHours(
-                         SiteEngagementScore::GetDecayPeriodInHours() + 1));
+  test_clock_.SetNow(
+      current_day +
+      base::Hours(SiteEngagementScore::GetDecayPeriodInHours() + 1));
   EXPECT_EQ(25.0 - SiteEngagementScore::GetDecayPoints(),
             score_.GetTotalScore());
 
@@ -412,7 +407,7 @@
   base::Time old_now = test_clock_.Now();
 
   score_.set_last_shortcut_launch_time(test_clock_.Now());
-  test_clock_.SetNow(GetReferenceTime() + base::TimeDelta::FromDays(3));
+  test_clock_.SetNow(GetReferenceTime() + base::Days(3));
   now = test_clock_.Now();
   score_.Reset(15.0, now);
 
@@ -433,13 +428,13 @@
 
   // Single decay period, expect the score to be halved once.
   score_.AddPoints(2.0);
-  current_day += base::TimeDelta::FromDays(7);
+  current_day += base::Days(7);
   test_clock_.SetNow(current_day);
   EXPECT_DOUBLE_EQ(1.0, score_.GetTotalScore());
 
   // 3 decay periods, expect the score to be halved 3 times.
   score_.AddPoints(15.0);
-  current_day += base::TimeDelta::FromDays(21);
+  current_day += base::Days(21);
   test_clock_.SetNow(current_day);
   EXPECT_DOUBLE_EQ(2.0, score_.GetTotalScore());
 
@@ -447,7 +442,7 @@
   score_.AddPoints(4.0);
   EXPECT_DOUBLE_EQ(6.0, score_.GetTotalScore());
   SetParamValue(SiteEngagementScore::DECAY_POINTS, 2.0);
-  current_day += base::TimeDelta::FromDays(7);
+  current_day += base::Days(7);
   test_clock_.SetNow(current_day);
   EXPECT_NEAR(1.0, score_.GetTotalScore(), kMaxRoundingDeviation);
 }
@@ -455,7 +450,7 @@
 // Verify that GetDetails fills out all fields correctly.
 TEST_F(SiteEngagementScoreTest, GetDetails) {
   // Advance the clock, otherwise Now() is the same as the null Time value.
-  test_clock_.Advance(base::TimeDelta::FromDays(365));
+  test_clock_.Advance(base::Days(365));
 
   GURL url("http://www.google.com/");
 
diff --git a/components/site_engagement/content/site_engagement_service.cc b/components/site_engagement/content/site_engagement_service.cc
index 5ddc30b8..bb19a13 100644
--- a/components/site_engagement/content/site_engagement_service.cc
+++ b/components/site_engagement/content/site_engagement_service.cc
@@ -584,14 +584,13 @@
 }
 
 base::TimeDelta SiteEngagementService::GetMaxDecayPeriod() const {
-  return base::TimeDelta::FromHours(
-             SiteEngagementScore::GetDecayPeriodInHours()) *
+  return base::Hours(SiteEngagementScore::GetDecayPeriodInHours()) *
          SiteEngagementScore::GetMaxDecaysPerScore();
 }
 
 base::TimeDelta SiteEngagementService::GetStalePeriod() const {
   return GetMaxDecayPeriod() +
-         base::TimeDelta::FromHours(
+         base::Hours(
              SiteEngagementScore::GetLastEngagementGracePeriodInHours());
 }
 
diff --git a/components/site_isolation/site_isolation_policy_unittest.cc b/components/site_isolation/site_isolation_policy_unittest.cc
index 729402e..4d28fb1 100644
--- a/components/site_isolation/site_isolation_policy_unittest.cc
+++ b/components/site_isolation/site_isolation_policy_unittest.cc
@@ -148,7 +148,7 @@
     SiteIsolationPolicy::PersistIsolatedOrigin(
         browser_context(), url::Origin::Create(GURL(origin)),
         IsolatedOriginSource::WEB_TRIGGERED);
-    task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+    task_environment()->FastForwardBy(base::Milliseconds(1));
   }
 
   std::vector<std::string> GetStoredOrigins() {
@@ -287,8 +287,7 @@
   base::TimeDelta default_timeout =
       ::features::kSiteIsolationForCrossOriginOpenerPolicyExpirationTimeoutParam
           .default_value;
-  task_environment()->FastForwardBy(default_timeout +
-                                    base::TimeDelta::FromDays(1));
+  task_environment()->FastForwardBy(default_timeout + base::Days(1));
 
   // foo1.com and foo2.com should still be in prefs. (Expired entries are only
   // removed when we try to load them from prefs.)
diff --git a/components/soda/soda_installer.cc b/components/soda/soda_installer.cc
index 86c183d3..5b26b2a 100644
--- a/components/soda/soda_installer.cc
+++ b/components/soda/soda_installer.cc
@@ -123,7 +123,7 @@
   // Schedule deletion.
   global_prefs->SetTime(
       prefs::kSodaScheduledDeletionTime,
-      base::Time::Now() + base::TimeDelta::FromDays(kSodaCleanUpDelayInDays));
+      base::Time::Now() + base::Days(kSodaCleanUpDelayInDays));
 }
 
 bool SodaInstaller::IsSodaInstalled(LanguageCode language_code) const {
diff --git a/components/soda/soda_installer_impl_chromeos_unittest.cc b/components/soda/soda_installer_impl_chromeos_unittest.cc
index 55ef277..91ef025 100644
--- a/components/soda/soda_installer_impl_chromeos_unittest.cc
+++ b/components/soda/soda_installer_impl_chromeos_unittest.cc
@@ -18,7 +18,7 @@
 
 namespace {
 const speech::LanguageCode kEnglishLocale = speech::LanguageCode::kEnUs;
-const base::TimeDelta kSodaUninstallTime = base::TimeDelta::FromDays(30);
+const base::TimeDelta kSodaUninstallTime = base::Days(30);
 }  // namespace
 
 namespace speech {
diff --git a/components/spellcheck/browser/spellcheck_host_metrics.cc b/components/spellcheck/browser/spellcheck_host_metrics.cc
index ecb8c32..0ba28ca 100644
--- a/components/spellcheck/browser/spellcheck_host_metrics.cc
+++ b/components/spellcheck/browser/spellcheck_host_metrics.cc
@@ -25,8 +25,8 @@
       start_time_(base::TimeTicks::Now()) {
   const uint64_t kHistogramTimerDurationInMinutes = 30;
   recording_timer_.Start(FROM_HERE,
-      base::TimeDelta::FromMinutes(kHistogramTimerDurationInMinutes),
-      this, &SpellCheckHostMetrics::OnHistogramTimerExpired);
+                         base::Minutes(kHistogramTimerDurationInMinutes), this,
+                         &SpellCheckHostMetrics::OnHistogramTimerExpired);
   RecordWordCounts();
 }
 
@@ -78,7 +78,8 @@
     // a 30 minute interval. If the time was 0 we will end up dividing by zero.
     CHECK_NE(0, since_start.InSeconds());
     size_t checked_words_per_hour = spellchecked_word_count_ *
-        base::TimeDelta::FromHours(1).InSeconds() / since_start.InSeconds();
+                                    base::Hours(1).InSeconds() /
+                                    since_start.InSeconds();
     base::UmaHistogramCounts1M(
         "SpellCheck.CheckedWordsPerHour",
         base::saturated_cast<int>(checked_words_per_hour));
diff --git a/components/ssl_errors/error_classification.cc b/components/ssl_errors/error_classification.cc
index 8341d17..6e9a1e4 100644
--- a/components/ssl_errors/error_classification.cc
+++ b/components/ssl_errors/error_classification.cc
@@ -192,7 +192,7 @@
     const network_time::NetworkTimeTracker* network_time_tracker) {
   base::Time now_network;
   base::TimeDelta uncertainty;
-  const base::TimeDelta kNetworkTimeFudge = base::TimeDelta::FromMinutes(5);
+  const base::TimeDelta kNetworkTimeFudge = base::Minutes(5);
   NetworkClockState network_state = NETWORK_CLOCK_STATE_MAX;
   network_time::NetworkTimeTracker::NetworkTimeResult network_time_result =
       network_time_tracker->GetNetworkTime(&now_network, &uncertainty);
@@ -227,9 +227,9 @@
   base::Time build_time = g_testing_build_time.Get().is_null()
                               ? base::GetBuildTime()
                               : g_testing_build_time.Get();
-  if (now_system < build_time - base::TimeDelta::FromDays(2)) {
+  if (now_system < build_time - base::Days(2)) {
     build_time_state = CLOCK_STATE_PAST;
-  } else if (now_system > build_time + base::TimeDelta::FromDays(365)) {
+  } else if (now_system > build_time + base::Days(365)) {
     build_time_state = CLOCK_STATE_FUTURE;
   }
 
diff --git a/components/ssl_errors/error_classification_unittest.cc b/components/ssl_errors/error_classification_unittest.cc
index b168de8..f3785ce0 100644
--- a/components/ssl_errors/error_classification_unittest.cc
+++ b/components/ssl_errors/error_classification_unittest.cc
@@ -269,8 +269,7 @@
       kNetworkTimeHistogram,
       ssl_errors::NETWORK_CLOCK_STATE_UNKNOWN_NO_SYNC_ATTEMPT, 1);
 
-  ssl_errors::SetBuildTimeForTesting(base::Time::Now() -
-                                     base::TimeDelta::FromDays(367));
+  ssl_errors::SetBuildTimeForTesting(base::Time::Now() - base::Days(367));
   EXPECT_EQ(
       ssl_errors::ClockState::CLOCK_STATE_FUTURE,
       ssl_errors::GetClockState(base::Time::Now(), &network_time_tracker));
@@ -282,8 +281,7 @@
       kNetworkTimeHistogram,
       ssl_errors::NETWORK_CLOCK_STATE_UNKNOWN_NO_SYNC_ATTEMPT, 2);
 
-  ssl_errors::SetBuildTimeForTesting(base::Time::Now() +
-                                     base::TimeDelta::FromDays(3));
+  ssl_errors::SetBuildTimeForTesting(base::Time::Now() + base::Days(3));
   EXPECT_EQ(
       ssl_errors::ClockState::CLOCK_STATE_PAST,
       ssl_errors::GetClockState(base::Time::Now(), &network_time_tracker));
@@ -298,10 +296,10 @@
   // Intentionally leave the build time alone.  It should be ignored
   // in favor of network time.
   network_time_tracker.UpdateNetworkTime(
-      base::Time::Now() + base::TimeDelta::FromHours(1),
-      base::TimeDelta::FromSeconds(1),         // resolution
-      base::TimeDelta::FromMilliseconds(250),  // latency
-      base::TimeTicks::Now());                 // posting time
+      base::Time::Now() + base::Hours(1),
+      base::Seconds(1),         // resolution
+      base::Milliseconds(250),  // latency
+      base::TimeTicks::Now());  // posting time
   EXPECT_EQ(
       ssl_errors::ClockState::CLOCK_STATE_PAST,
       ssl_errors::GetClockState(base::Time::Now(), &network_time_tracker));
@@ -311,10 +309,10 @@
       kNetworkTimeHistogram, ssl_errors::NETWORK_CLOCK_STATE_CLOCK_IN_PAST, 1);
 
   network_time_tracker.UpdateNetworkTime(
-      base::Time::Now() - base::TimeDelta::FromHours(1),
-      base::TimeDelta::FromSeconds(1),         // resolution
-      base::TimeDelta::FromMilliseconds(250),  // latency
-      base::TimeTicks::Now());                 // posting time
+      base::Time::Now() - base::Hours(1),
+      base::Seconds(1),         // resolution
+      base::Milliseconds(250),  // latency
+      base::TimeTicks::Now());  // posting time
   EXPECT_EQ(
       ssl_errors::ClockState::CLOCK_STATE_FUTURE,
       ssl_errors::GetClockState(base::Time::Now(), &network_time_tracker));
@@ -326,9 +324,9 @@
 
   network_time_tracker.UpdateNetworkTime(
       base::Time::Now(),
-      base::TimeDelta::FromSeconds(1),         // resolution
-      base::TimeDelta::FromMilliseconds(250),  // latency
-      base::TimeTicks::Now());                 // posting time
+      base::Seconds(1),         // resolution
+      base::Milliseconds(250),  // latency
+      base::TimeTicks::Now());  // posting time
   EXPECT_EQ(
       ssl_errors::ClockState::CLOCK_STATE_OK,
       ssl_errors::GetClockState(base::Time::Now(), &network_time_tracker));
@@ -341,11 +339,10 @@
   // itself.
   network_time_tracker.UpdateNetworkTime(
       base::Time(),
-      base::TimeDelta::FromSeconds(1),         // resolution
-      base::TimeDelta::FromMilliseconds(250),  // latency
-      base::TimeTicks::Now());                 // posting time
-  ssl_errors::SetBuildTimeForTesting(base::Time::Now() +
-                                     base::TimeDelta::FromDays(3));
+      base::Seconds(1),         // resolution
+      base::Milliseconds(250),  // latency
+      base::TimeTicks::Now());  // posting time
+  ssl_errors::SetBuildTimeForTesting(base::Time::Now() + base::Days(3));
   EXPECT_EQ(
       ssl_errors::ClockState::CLOCK_STATE_PAST,
       ssl_errors::GetClockState(base::Time::Now(), &network_time_tracker));
@@ -377,8 +374,8 @@
   base::SimpleTestTickClock* tick_clock = new base::SimpleTestTickClock;
   base::SimpleTestClock* clock = new base::SimpleTestClock;
   // Do this to be sure that |is_null| returns false.
-  clock->Advance(base::TimeDelta::FromDays(111));
-  tick_clock->Advance(base::TimeDelta::FromDays(222));
+  clock->Advance(base::Days(111));
+  tick_clock->Advance(base::Days(222));
 
   network_time::NetworkTimeTracker network_time_tracker(
       std::unique_ptr<base::Clock>(clock),
@@ -434,9 +431,9 @@
   // System clock is correct.
   network_time_tracker.UpdateNetworkTime(
       clock->Now(),
-      base::TimeDelta::FromSeconds(1),         // resolution
-      base::TimeDelta::FromMilliseconds(250),  // latency
-      tick_clock->NowTicks());                 // posting time
+      base::Seconds(1),         // resolution
+      base::Milliseconds(250),  // latency
+      tick_clock->NowTicks());  // posting time
   EXPECT_EQ(ssl_errors::ClockState::CLOCK_STATE_OK,
             ssl_errors::GetClockState(clock->Now(), &network_time_tracker));
   histograms.ExpectTotalCount(kNetworkTimeHistogram, 5);
@@ -445,10 +442,10 @@
 
   // System clock is in the past.
   network_time_tracker.UpdateNetworkTime(
-      clock->Now() + base::TimeDelta::FromHours(1),
-      base::TimeDelta::FromSeconds(1),         // resolution
-      base::TimeDelta::FromMilliseconds(250),  // latency
-      tick_clock->NowTicks());                 // posting time
+      clock->Now() + base::Hours(1),
+      base::Seconds(1),         // resolution
+      base::Milliseconds(250),  // latency
+      tick_clock->NowTicks());  // posting time
   EXPECT_EQ(ssl_errors::ClockState::CLOCK_STATE_PAST,
             ssl_errors::GetClockState(clock->Now(), &network_time_tracker));
   histograms.ExpectTotalCount(kNetworkTimeHistogram, 6);
@@ -457,10 +454,10 @@
 
   // System clock is in the future.
   network_time_tracker.UpdateNetworkTime(
-      clock->Now() - base::TimeDelta::FromHours(1),
-      base::TimeDelta::FromSeconds(1),         // resolution
-      base::TimeDelta::FromMilliseconds(250),  // latency
-      tick_clock->NowTicks());                 // posting time
+      clock->Now() - base::Hours(1),
+      base::Seconds(1),         // resolution
+      base::Milliseconds(250),  // latency
+      tick_clock->NowTicks());  // posting time
   EXPECT_EQ(ssl_errors::ClockState::CLOCK_STATE_FUTURE,
             ssl_errors::GetClockState(clock->Now(), &network_time_tracker));
   histograms.ExpectTotalCount(kNetworkTimeHistogram, 7);
@@ -469,8 +466,8 @@
                                1);
 
   // Sync has been lost.
-  tick_clock->Advance(base::TimeDelta::FromSeconds(1));
-  clock->Advance(base::TimeDelta::FromDays(1));
+  tick_clock->Advance(base::Seconds(1));
+  clock->Advance(base::Days(1));
   // GetClockState() will fall back to the build time heuristic.
   ssl_errors::GetClockState(clock->Now(), &network_time_tracker);
   histograms.ExpectTotalCount(kNetworkTimeHistogram, 8);
diff --git a/components/storage_monitor/storage_monitor_linux.cc b/components/storage_monitor/storage_monitor_linux.cc
index e8d4db8..d258b16 100644
--- a/components/storage_monitor/storage_monitor_linux.cc
+++ b/components/storage_monitor/storage_monitor_linux.cc
@@ -224,7 +224,7 @@
   if (!process.IsValid())
     return StorageMonitor::EJECT_FAILURE;
 
-  static constexpr auto kEjectTimeout = base::TimeDelta::FromSeconds(3);
+  static constexpr auto kEjectTimeout = base::Seconds(3);
   int exit_code = -1;
   if (!process.WaitForExitWithTimeout(kEjectTimeout, &exit_code)) {
     process.Terminate(-1, false);
diff --git a/components/storage_monitor/volume_mount_watcher_win.cc b/components/storage_monitor/volume_mount_watcher_win.cc
index 94a3513..c587675 100644
--- a/components/storage_monitor/volume_mount_watcher_win.cc
+++ b/components/storage_monitor/volume_mount_watcher_win.cc
@@ -255,8 +255,7 @@
                                 0, nullptr, 0, &bytes_returned, nullptr);
   if (!locked) {
     const int kNumLockRetries = 1;
-    const base::TimeDelta kLockRetryInterval =
-        base::TimeDelta::FromMilliseconds(500);
+    const base::TimeDelta kLockRetryInterval = base::Milliseconds(500);
     if (iteration < kNumLockRetries) {
       // Try again -- the lock may have been a transient one. This happens on
       // things like AV disk lock for some reason, or another process
diff --git a/components/subresource_filter/content/browser/ads_intervention_manager.cc b/components/subresource_filter/content/browser/ads_intervention_manager.cc
index 1a91d8f..1cf936a 100644
--- a/components/subresource_filter/content/browser/ads_intervention_manager.cc
+++ b/components/subresource_filter/content/browser/ads_intervention_manager.cc
@@ -46,7 +46,7 @@
     mojom::AdsViolation violation) {
   switch (violation) {
     case mojom::AdsViolation::kHeavyAdsInterventionAtHostLimit:
-      return base::TimeDelta::FromDays(1);
+      return base::Days(1);
     default:
       return kAdsInterventionDuration.Get();
   }
diff --git a/components/subresource_filter/content/browser/ads_intervention_manager_unittest.cc b/components/subresource_filter/content/browser/ads_intervention_manager_unittest.cc
index b161333..23ba1ee 100644
--- a/components/subresource_filter/content/browser/ads_intervention_manager_unittest.cc
+++ b/components/subresource_filter/content/browser/ads_intervention_manager_unittest.cc
@@ -81,22 +81,22 @@
 
   ads_intervention_manager_->TriggerAdsInterventionForUrlOnSubsequentLoads(
       url, mojom::AdsViolation::kMobileAdDensityByHeightAbove30);
-  test_clock()->Advance(base::TimeDelta::FromHours(1));
+  test_clock()->Advance(base::Hours(1));
 
   absl::optional<AdsInterventionManager::LastAdsIntervention> ads_intervention =
       ads_intervention_manager_->GetLastAdsIntervention(url);
   EXPECT_TRUE(ads_intervention.has_value());
   EXPECT_EQ(ads_intervention->ads_violation,
             mojom::AdsViolation::kMobileAdDensityByHeightAbove30);
-  EXPECT_EQ(ads_intervention->duration_since, base::TimeDelta::FromHours(1));
+  EXPECT_EQ(ads_intervention->duration_since, base::Hours(1));
 
   // Advance the clock by two hours, duration since should now be 3 hours.
-  test_clock()->Advance(base::TimeDelta::FromHours(2));
+  test_clock()->Advance(base::Hours(2));
   ads_intervention = ads_intervention_manager_->GetLastAdsIntervention(url);
   EXPECT_TRUE(ads_intervention.has_value());
   EXPECT_EQ(ads_intervention->ads_violation,
             mojom::AdsViolation::kMobileAdDensityByHeightAbove30);
-  EXPECT_EQ(ads_intervention->duration_since, base::TimeDelta::FromHours(3));
+  EXPECT_EQ(ads_intervention->duration_since, base::Hours(3));
 }
 
 }  // namespace subresource_filter
diff --git a/components/subresource_filter/content/browser/page_load_statistics.cc b/components/subresource_filter/content/browser/page_load_statistics.cc
index 4272fb1..b5058e2 100644
--- a/components/subresource_filter/content/browser/page_load_statistics.cc
+++ b/components/subresource_filter/content/browser/page_load_statistics.cc
@@ -54,13 +54,11 @@
     UMA_HISTOGRAM_CUSTOM_MICRO_TIMES(
         "SubresourceFilter.PageLoad.SubresourceEvaluation.TotalWallDuration",
         aggregated_document_statistics_.evaluation_total_wall_duration,
-        base::TimeDelta::FromMicroseconds(1), base::TimeDelta::FromSeconds(10),
-        50);
+        base::Microseconds(1), base::Seconds(10), 50);
     UMA_HISTOGRAM_CUSTOM_MICRO_TIMES(
         "SubresourceFilter.PageLoad.SubresourceEvaluation.TotalCPUDuration",
         aggregated_document_statistics_.evaluation_total_cpu_duration,
-        base::TimeDelta::FromMicroseconds(1), base::TimeDelta::FromSeconds(10),
-        50);
+        base::Microseconds(1), base::Seconds(10), 50);
   } else {
     DCHECK(aggregated_document_statistics_.evaluation_total_wall_duration
                .is_zero());
diff --git a/components/subresource_filter/content/browser/subframe_navigation_filtering_throttle.cc b/components/subresource_filter/content/browser/subframe_navigation_filtering_throttle.cc
index 81a6299..7164e053 100644
--- a/components/subresource_filter/content/browser/subframe_navigation_filtering_throttle.cc
+++ b/components/subresource_filter/content/browser/subframe_navigation_filtering_throttle.cc
@@ -79,20 +79,17 @@
     case LoadPolicy::ALLOW:
       UMA_HISTOGRAM_CUSTOM_MICRO_TIMES(
           "SubresourceFilter.DocumentLoad.SubframeFilteringDelay.Allowed",
-          total_defer_time_, base::TimeDelta::FromMicroseconds(1),
-          base::TimeDelta::FromSeconds(10), 50);
+          total_defer_time_, base::Microseconds(1), base::Seconds(10), 50);
       break;
     case LoadPolicy::WOULD_DISALLOW:
       UMA_HISTOGRAM_CUSTOM_MICRO_TIMES(
           "SubresourceFilter.DocumentLoad.SubframeFilteringDelay.WouldDisallow",
-          total_defer_time_, base::TimeDelta::FromMicroseconds(1),
-          base::TimeDelta::FromSeconds(10), 50);
+          total_defer_time_, base::Microseconds(1), base::Seconds(10), 50);
       break;
     case LoadPolicy::DISALLOW:
       UMA_HISTOGRAM_CUSTOM_MICRO_TIMES(
           "SubresourceFilter.DocumentLoad.SubframeFilteringDelay.Disallowed2",
-          total_defer_time_, base::TimeDelta::FromMicroseconds(1),
-          base::TimeDelta::FromSeconds(10), 50);
+          total_defer_time_, base::Microseconds(1), base::Seconds(10), 50);
       break;
   }
 
diff --git a/components/subresource_filter/content/browser/subresource_filter_content_settings_manager.h b/components/subresource_filter/content/browser/subresource_filter_content_settings_manager.h
index 1fae292..8bb86c3 100644
--- a/components/subresource_filter/content/browser/subresource_filter_content_settings_manager.h
+++ b/components/subresource_filter/content/browser/subresource_filter_content_settings_manager.h
@@ -127,11 +127,10 @@
   // Time before showing the UI again on a domain.
   // TODO(csharrison): Consider setting this via a finch param.
   static constexpr base::TimeDelta kDelayBeforeShowingInfobarAgain =
-      base::TimeDelta::FromHours(24);
+      base::Hours(24);
 
   // Maximum duration to persist metadata for.
-  static constexpr base::TimeDelta kMaxPersistMetadataDuration =
-      base::TimeDelta::FromDays(7);
+  static constexpr base::TimeDelta kMaxPersistMetadataDuration = base::Days(7);
 
   // Overwrites existing site metadata for testing.
   void SetSiteMetadataForTesting(const GURL& url,
diff --git a/components/subresource_filter/content/browser/subresource_filter_content_settings_manager_unittest.cc b/components/subresource_filter/content/browser/subresource_filter_content_settings_manager_unittest.cc
index af1e7996..d592e714 100644
--- a/components/subresource_filter/content/browser/subresource_filter_content_settings_manager_unittest.cc
+++ b/components/subresource_filter/content/browser/subresource_filter_content_settings_manager_unittest.cc
@@ -163,7 +163,7 @@
 
   task_environment()->FastForwardBy(
       SubresourceFilterContentSettingsManager::kMaxPersistMetadataDuration -
-      base::TimeDelta::FromMinutes(1));
+      base::Minutes(1));
 
   // Setting metadata in safe browsing does not overwrite the existing
   // expiration set by the ads intervention.
@@ -175,7 +175,7 @@
   EXPECT_NE(dict, nullptr);
 
   // Advance the clock, metadata should be cleared.
-  task_environment()->FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_environment()->FastForwardBy(base::Minutes(1));
 
   dict = settings_manager()->GetSiteMetadata(url);
   EXPECT_EQ(dict, nullptr);
diff --git a/components/subresource_filter/content/browser/subresource_filter_safe_browsing_activation_throttle.cc b/components/subresource_filter/content/browser/subresource_filter_safe_browsing_activation_throttle.cc
index de31a2a9d..c3a2d33 100644
--- a/components/subresource_filter/content/browser/subresource_filter_safe_browsing_activation_throttle.cc
+++ b/components/subresource_filter/content/browser/subresource_filter_safe_browsing_activation_throttle.cc
@@ -227,7 +227,7 @@
   DCHECK(HasFinishedAllSafeBrowsingChecks());
 
   base::TimeDelta delay = defer_time_.is_null()
-                              ? base::TimeDelta::FromMilliseconds(0)
+                              ? base::Milliseconds(0)
                               : base::TimeTicks::Now() - defer_time_;
   UMA_HISTOGRAM_TIMES("SubresourceFilter.PageLoad.SafeBrowsingDelay", delay);
 
diff --git a/components/subresource_filter/content/browser/subresource_filter_safe_browsing_activation_throttle_unittest.cc b/components/subresource_filter/content/browser/subresource_filter_safe_browsing_activation_throttle_unittest.cc
index 4d6e6d7..2b6ac2a3 100644
--- a/components/subresource_filter/content/browser/subresource_filter_safe_browsing_activation_throttle_unittest.cc
+++ b/components/subresource_filter/content/browser/subresource_filter_safe_browsing_activation_throttle_unittest.cc
@@ -965,7 +965,7 @@
                               1);
 
   tester().ExpectTimeBucketCount(kSafeBrowsingNavigationDelay,
-                                 base::TimeDelta::FromMilliseconds(0), 1);
+                                 base::Milliseconds(0), 1);
 }
 
 // Flaky on Win, Chromium and Linux. http://crbug.com/748524
@@ -990,7 +990,7 @@
                               1);
 
   tester().ExpectTimeBucketCount(kSafeBrowsingNavigationDelay,
-                                 base::TimeDelta::FromMilliseconds(0), 1);
+                                 base::Milliseconds(0), 1);
   tester().ExpectTotalCount(kSafeBrowsingCheckTime, 2);
 }
 
@@ -1114,7 +1114,7 @@
   EXPECT_EQ(mojom::ActivationLevel::kDisabled,
             *observer()->GetPageActivationForLastCommittedLoad());
   tester().ExpectTimeBucketCount(kSafeBrowsingNavigationDelay,
-                                 base::TimeDelta::FromMilliseconds(0), 1);
+                                 base::Milliseconds(0), 1);
 }
 
 TEST_P(SubresourceFilterSafeBrowsingActivationThrottleTestWithCancelling,
diff --git a/components/subresource_filter/content/browser/subresource_filter_safe_browsing_client_request.h b/components/subresource_filter/content/browser/subresource_filter_safe_browsing_client_request.h
index 601558f..8b66387 100644
--- a/components/subresource_filter/content/browser/subresource_filter_safe_browsing_client_request.h
+++ b/components/subresource_filter/content/browser/subresource_filter_safe_browsing_client_request.h
@@ -62,8 +62,7 @@
   // verify a URL. After this amount of time the outstanding check will be
   // aborted, and the URL will be treated as if it didn't belong to the
   // Subresource Filter only list.
-  static constexpr base::TimeDelta kCheckURLTimeout =
-      base::TimeDelta::FromSeconds(5);
+  static constexpr base::TimeDelta kCheckURLTimeout = base::Seconds(5);
 
  private:
   // Callback for when the safe browsing check has taken longer than
diff --git a/components/subresource_filter/core/browser/subresource_filter_features.cc b/components/subresource_filter/core/browser/subresource_filter_features.cc
index 20f0528..185921e 100644
--- a/components/subresource_filter/core/browser/subresource_filter_features.cc
+++ b/components/subresource_filter/core/browser/subresource_filter_features.cc
@@ -242,8 +242,7 @@
     "AdsInterventionsEnforced", base::FEATURE_DISABLED_BY_DEFAULT};
 
 const base::FeatureParam<base::TimeDelta> kAdsInterventionDuration = {
-    &kAdsInterventionsEnforced, "kAdsInterventionDuration",
-    base::TimeDelta::FromDays(3)};
+    &kAdsInterventionsEnforced, "kAdsInterventionDuration", base::Days(3)};
 
 // Legacy name `activation_state` is used in variation parameters.
 const char kActivationLevelParameterName[] = "activation_state";
diff --git a/components/subresource_filter/core/common/time_measurements.h b/components/subresource_filter/core/common/time_measurements.h
index e9c6973..894242a0 100644
--- a/components/subresource_filter/core/common/time_measurements.h
+++ b/components/subresource_filter/core/common/time_measurements.h
@@ -64,10 +64,9 @@
 // the histogram stores times in microseconds, up to 1 second, in 50 buckets.
 //
 // WARNING: The generated code is not thread-safe.
-#define UMA_HISTOGRAM_MICRO_TIMES(name, sample)                          \
-  UMA_HISTOGRAM_CUSTOM_MICRO_TIMES(name, sample,                         \
-                                   base::TimeDelta::FromMicroseconds(1), \
-                                   base::TimeDelta::FromSeconds(1), 50)
+#define UMA_HISTOGRAM_MICRO_TIMES(name, sample)                         \
+  UMA_HISTOGRAM_CUSTOM_MICRO_TIMES(name, sample, base::Microseconds(1), \
+                                   base::Seconds(1), 50)
 
 // This can be used when the default ranges are not sufficient. This macro lets
 // the metric developer customize the min and max of the sampled range, as well
diff --git a/components/subresource_redirect/subresource_redirect_browser_test_util.cc b/components/subresource_redirect/subresource_redirect_browser_test_util.cc
index 6f09388..a8a9f675 100644
--- a/components/subresource_redirect/subresource_redirect_browser_test_util.cc
+++ b/components/subresource_redirect/subresource_redirect_browser_test_util.cc
@@ -85,7 +85,7 @@
       return response;
     case FailureMode::kTimeout:
       response = std::make_unique<net::test_server::DelayedHttpResponse>(
-          base::TimeDelta::FromSeconds(4));
+          base::Seconds(4));
       break;
     case FailureMode::kNone:
       break;
diff --git a/components/sync/base/time.cc b/components/sync/base/time.cc
index ee4c7c1..d612cbe 100644
--- a/components/sync/base/time.cc
+++ b/components/sync/base/time.cc
@@ -18,7 +18,7 @@
 }
 
 base::Time ProtoTimeToTime(int64_t proto_t) {
-  return base::Time::UnixEpoch() + base::TimeDelta::FromMilliseconds(proto_t);
+  return base::Time::UnixEpoch() + base::Milliseconds(proto_t);
 }
 
 std::string GetTimeDebugString(const base::Time& t) {
diff --git a/components/sync/driver/glue/sync_transport_data_prefs.cc b/components/sync/driver/glue/sync_transport_data_prefs.cc
index 008b1cf..462d1db 100644
--- a/components/sync/driver/glue/sync_transport_data_prefs.cc
+++ b/components/sync/driver/glue/sync_transport_data_prefs.cc
@@ -109,7 +109,7 @@
   // callers to use a reasonable default value instead.
   // This fixes a past bug where stored pref values were accidentally
   // re-interpreted from "seconds" to "microseconds"; see crbug.com/1246850.
-  if (poll_interval < base::TimeDelta::FromMinutes(1) &&
+  if (poll_interval < base::Minutes(1) &&
       base::FeatureList::IsEnabled(kSyncResetVeryShortPollInterval)) {
     pref_service_->ClearPref(kSyncPollIntervalSeconds);
     return base::TimeDelta();
diff --git a/components/sync/driver/glue/sync_transport_data_prefs_unittest.cc b/components/sync/driver/glue/sync_transport_data_prefs_unittest.cc
index 9ba5204..9af7017 100644
--- a/components/sync/driver/glue/sync_transport_data_prefs_unittest.cc
+++ b/components/sync/driver/glue/sync_transport_data_prefs_unittest.cc
@@ -46,14 +46,14 @@
 
 TEST_F(SyncTransportDataPrefsTest, PollInterval) {
   EXPECT_TRUE(sync_prefs_->GetPollInterval().is_zero());
-  sync_prefs_->SetPollInterval(base::TimeDelta::FromMinutes(30));
+  sync_prefs_->SetPollInterval(base::Minutes(30));
   EXPECT_FALSE(sync_prefs_->GetPollInterval().is_zero());
   EXPECT_EQ(sync_prefs_->GetPollInterval().InMinutes(), 30);
 }
 
 TEST_F(SyncTransportDataPrefsTest, ResetsVeryShortPollInterval) {
   // Set the poll interval to something unreasonably short.
-  sync_prefs_->SetPollInterval(base::TimeDelta::FromMilliseconds(100));
+  sync_prefs_->SetPollInterval(base::Milliseconds(100));
   // This should reset the pref to "empty", so that callers will use a
   // reasonable default value.
   EXPECT_TRUE(sync_prefs_->GetPollInterval().is_zero());
diff --git a/components/sync/driver/startup_controller.cc b/components/sync/driver/startup_controller.cc
index a954978..43a6b576 100644
--- a/components/sync/driver/startup_controller.cc
+++ b/components/sync/driver/startup_controller.cc
@@ -21,8 +21,7 @@
 
 // The amount of time we'll wait to initialize sync if no data type requests
 // immediately initialization.
-constexpr base::TimeDelta kDefaultDeferredInitDelay =
-    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kDefaultDeferredInitDelay = base::Seconds(10);
 
 base::TimeDelta GetDeferredInitDelay() {
   const base::CommandLine* cmdline = base::CommandLine::ForCurrentProcess();
@@ -34,7 +33,7 @@
       DCHECK_GE(timeout, 0);
       DVLOG(2) << "Sync StartupController overriding startup timeout to "
                << timeout << " seconds.";
-      return base::TimeDelta::FromSeconds(timeout);
+      return base::Seconds(timeout);
     }
   }
   return kDefaultDeferredInitDelay;
@@ -151,8 +150,7 @@
   DCHECK(!start_up_time_.is_null());
   base::TimeDelta time_deferred = base::Time::Now() - start_up_time_;
   base::UmaHistogramCustomTimes("Sync.Startup.TimeDeferred2", time_deferred,
-                                base::TimeDelta::FromSeconds(0),
-                                base::TimeDelta::FromMinutes(2), 60);
+                                base::Seconds(0), base::Minutes(2), 60);
   base::UmaHistogramEnumeration("Sync.Startup.DeferredInitTrigger", trigger);
 }
 
diff --git a/components/sync/driver/sync_auth_manager_unittest.cc b/components/sync/driver/sync_auth_manager_unittest.cc
index a840948..a651c26 100644
--- a/components/sync/driver/sync_auth_manager_unittest.cc
+++ b/components/sync/driver/sync_auth_manager_unittest.cc
@@ -168,7 +168,7 @@
 
   // Make sure an access token is available.
   identity_env()->WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
-      "access_token", base::Time::Now() + base::TimeDelta::FromHours(1));
+      "access_token", base::Time::Now() + base::Hours(1));
   ASSERT_EQ(auth_manager->GetCredentials().access_token, "access_token");
 
   // Sign out of the account.
@@ -312,7 +312,7 @@
   // Once an access token is available, the callback should get run.
   EXPECT_CALL(credentials_changed, Run());
   identity_env()->WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
-      "access_token", base::Time::Now() + base::TimeDelta::FromHours(1));
+      "access_token", base::Time::Now() + base::Hours(1));
   ASSERT_EQ(auth_manager->GetCredentials().access_token, "access_token");
 
   // Now the refresh token gets updated. The access token will get dropped, so
@@ -324,7 +324,7 @@
   // Once a new token is available, there's another notification.
   EXPECT_CALL(credentials_changed, Run());
   identity_env()->WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
-      "access_token_2", base::Time::Now() + base::TimeDelta::FromHours(1));
+      "access_token_2", base::Time::Now() + base::Hours(1));
   ASSERT_EQ(auth_manager->GetCredentials().access_token, "access_token_2");
 
   // Revoking the refresh token should also cause the access token to get
@@ -348,7 +348,7 @@
   auth_manager->ConnectionOpened();
 
   identity_env()->WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
-      "access_token", base::Time::Now() + base::TimeDelta::FromHours(1));
+      "access_token", base::Time::Now() + base::Hours(1));
 
   EXPECT_EQ(auth_manager->GetCredentials().access_token, "access_token");
 }
@@ -453,7 +453,7 @@
 
   // Retry is a success.
   identity_env()->WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
-      "access_token", base::Time::Now() + base::TimeDelta::FromHours(1));
+      "access_token", base::Time::Now() + base::Hours(1));
 
   ASSERT_EQ(auth_manager->GetCredentials().access_token, "access_token");
   // Don't expect any backoff when the retry is a success.
@@ -498,7 +498,7 @@
 
   auth_manager->ConnectionOpened();
   identity_env()->WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
-      "access_token", base::Time::Now() + base::TimeDelta::FromHours(1));
+      "access_token", base::Time::Now() + base::Hours(1));
   ASSERT_EQ(auth_manager->GetCredentials().access_token, "access_token");
 
   // The server is returning AUTH_ERROR - maybe something's wrong with the
@@ -525,7 +525,7 @@
 
   auth_manager->ConnectionOpened();
   identity_env()->WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
-      "access_token", base::Time::Now() + base::TimeDelta::FromHours(1));
+      "access_token", base::Time::Now() + base::Hours(1));
   ASSERT_EQ(auth_manager->GetCredentials().access_token, "access_token");
 
   // Now a server error happens.
@@ -552,7 +552,7 @@
 
   auth_manager->ConnectionOpened();
   identity_env()->WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
-      "access_token", base::Time::Now() + base::TimeDelta::FromHours(1));
+      "access_token", base::Time::Now() + base::Hours(1));
   ASSERT_EQ(auth_manager->GetCredentials().access_token, "access_token");
 
   // A server error happens.
@@ -582,7 +582,7 @@
 
   auth_manager->ConnectionOpened();
   identity_env()->WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
-      "access_token", base::Time::Now() + base::TimeDelta::FromHours(1));
+      "access_token", base::Time::Now() + base::Hours(1));
   ASSERT_EQ(auth_manager->GetCredentials().access_token, "access_token");
 
   // Now everything is okay for a while.
@@ -598,7 +598,7 @@
   EXPECT_TRUE(auth_manager->GetCredentials().access_token.empty());
 
   identity_env()->WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
-      "access_token_2", base::Time::Now() + base::TimeDelta::FromHours(1));
+      "access_token_2", base::Time::Now() + base::Hours(1));
   EXPECT_EQ(auth_manager->GetCredentials().access_token, "access_token_2");
 }
 
@@ -615,7 +615,7 @@
 
   auth_manager->ConnectionOpened();
   identity_env()->WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
-      "access_token", base::Time::Now() + base::TimeDelta::FromHours(1));
+      "access_token", base::Time::Now() + base::Hours(1));
   ASSERT_EQ(auth_manager->GetCredentials().access_token, "access_token");
 
   // Now everything is okay for a while.
@@ -631,7 +631,7 @@
   EXPECT_TRUE(auth_manager->GetCredentials().access_token.empty());
 
   identity_env()->WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
-      "access_token_2", base::Time::Now() + base::TimeDelta::FromHours(1));
+      "access_token_2", base::Time::Now() + base::Hours(1));
   EXPECT_EQ(auth_manager->GetCredentials().access_token, "access_token_2");
 }
 
@@ -678,7 +678,7 @@
 
   auth_manager->ConnectionOpened();
   identity_env()->WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
-      "access_token", base::Time::Now() + base::TimeDelta::FromHours(1));
+      "access_token", base::Time::Now() + base::Hours(1));
   ASSERT_EQ(auth_manager->GetCredentials().access_token, "access_token");
 
   // Now everything is okay for a while.
@@ -718,7 +718,7 @@
 
   auth_manager->ConnectionOpened();
   identity_env()->WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
-      "access_token", base::Time::Now() + base::TimeDelta::FromHours(1));
+      "access_token", base::Time::Now() + base::Hours(1));
   ASSERT_EQ(auth_manager->GetCredentials().access_token, "access_token");
 
   // Now everything is okay for a while.
@@ -764,7 +764,7 @@
   // Sync starts up normally.
   auth_manager->ConnectionOpened();
   identity_env()->WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
-      "access_token", base::Time::Now() + base::TimeDelta::FromHours(1));
+      "access_token", base::Time::Now() + base::Hours(1));
   ASSERT_EQ(auth_manager->GetCredentials().access_token, "access_token");
   auth_manager->ConnectionStatusChanged(syncer::CONNECTION_OK);
   ASSERT_EQ(auth_manager->GetCredentials().access_token, "access_token");
@@ -781,7 +781,7 @@
   // also request a new access token.
   identity_env()->SetRefreshTokenForPrimaryAccount();
   identity_env()->WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
-      "access_token_2", base::Time::Now() + base::TimeDelta::FromHours(1));
+      "access_token_2", base::Time::Now() + base::Hours(1));
   ASSERT_EQ(auth_manager->GetCredentials().access_token, "access_token_2");
 }
 
diff --git a/components/sync/driver/sync_driver_switches.cc b/components/sync/driver/sync_driver_switches.cc
index 933e93c..744fa920 100644
--- a/components/sync/driver/sync_driver_switches.cc
+++ b/components/sync/driver/sync_driver_switches.cc
@@ -73,8 +73,7 @@
 
 // Max time to delay the sync startup while waiting for policies to load.
 const base::FeatureParam<base::TimeDelta> kSyncPolicyLoadTimeout{
-    &kSyncRequiresPoliciesLoaded, "SyncPolicyLoadTimeout",
-    base::TimeDelta::FromSeconds(10)};
+    &kSyncRequiresPoliciesLoaded, "SyncPolicyLoadTimeout", base::Seconds(10)};
 
 #if defined(OS_IOS)
 // Whether RPC is enabled.
diff --git a/components/sync/driver/sync_internals_util.cc b/components/sync/driver/sync_internals_util.cc
index b4a85b5b..e4c89038 100644
--- a/components/sync/driver/sync_internals_util.cc
+++ b/components/sync/driver/sync_internals_util.cc
@@ -289,7 +289,7 @@
 
   base::TimeDelta time_since_last_sync = base::Time::Now() - last_synced_time;
 
-  if (time_since_last_sync < base::TimeDelta::FromMinutes(1))
+  if (time_since_last_sync < base::Minutes(1))
     return "Just now";
 
   return GetTimeDeltaDebugString(time_since_last_sync) + " ago";
diff --git a/components/sync/driver/sync_service_impl_unittest.cc b/components/sync/driver/sync_service_impl_unittest.cc
index 849bbcf..23f4d46 100644
--- a/components/sync/driver/sync_service_impl_unittest.cc
+++ b/components/sync/driver/sync_service_impl_unittest.cc
@@ -960,7 +960,7 @@
   // Again, wait for SyncServiceImpl to be notified.
   base::RunLoop().RunUntilIdle();
   identity_test_env()->WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
-      "this one works", base::Time::Now() + base::TimeDelta::FromDays(10));
+      "this one works", base::Time::Now() + base::Days(10));
 
   // Check that sync auth error state cleared.
   EXPECT_EQ(GoogleServiceAuthError::NONE, service()->GetAuthError().state());
diff --git a/components/sync/driver/sync_session_durations_metrics_recorder_unittest.cc b/components/sync/driver/sync_session_durations_metrics_recorder_unittest.cc
index 49a58ec2..809864b 100644
--- a/components/sync/driver/sync_session_durations_metrics_recorder_unittest.cc
+++ b/components/sync/driver/sync_session_durations_metrics_recorder_unittest.cc
@@ -19,7 +19,7 @@
 namespace syncer {
 namespace {
 
-constexpr base::TimeDelta kSessionTime = base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kSessionTime = base::Seconds(10);
 
 class SyncSessionDurationsMetricsRecorderTest : public testing::Test {
  public:
diff --git a/components/sync/driver/sync_stopped_reporter.cc b/components/sync/driver/sync_stopped_reporter.cc
index 3571eee..15c801e 100644
--- a/components/sync/driver/sync_stopped_reporter.cc
+++ b/components/sync/driver/sync_stopped_reporter.cc
@@ -28,7 +28,7 @@
 // plenty of time. Since sync is off when this request is started, we don't
 // want anything sync-related hanging around for very long from a human
 // perspective either. This seems like a good compromise.
-constexpr base::TimeDelta kRequestTimeout = base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kRequestTimeout = base::Seconds(10);
 
 }  // namespace
 
diff --git a/components/sync/driver/test_sync_service.cc b/components/sync/driver/test_sync_service.cc
index f3a9340..2cc368b 100644
--- a/components/sync/driver/test_sync_service.cc
+++ b/components/sync/driver/test_sync_service.cc
@@ -30,7 +30,7 @@
       /*num_to_delete_entries_by_type=*/
       std::vector<int>(GetNumModelTypes(), 0),
       /*get_updates_origin=*/sync_pb::SyncEnums::UNKNOWN_ORIGIN,
-      /*poll_interval=*/base::TimeDelta::FromMinutes(30),
+      /*poll_interval=*/base::Minutes(30),
       /*has_remaining_local_changes=*/false);
 }
 
diff --git a/components/sync/engine/backoff_delay_provider.cc b/components/sync/engine/backoff_delay_provider.cc
index 5a32d05..1c772b8 100644
--- a/components/sync/engine/backoff_delay_provider.cc
+++ b/components/sync/engine/backoff_delay_provider.cc
@@ -28,13 +28,11 @@
     return kMaxBackoffTime;
 
   const base::TimeDelta backoff =
-      std::max(base::TimeDelta::FromSeconds(1),
-               last_delay * kBackoffMultiplyFactor) +
+      std::max(base::Seconds(1), last_delay * kBackoffMultiplyFactor) +
       jitter_sign * kBackoffJitterFactor * last_delay;
 
   // Clamp backoff between 1 second and |kMaxBackoffTime|.
-  return std::max(base::TimeDelta::FromSeconds(1),
-                  std::min(backoff, kMaxBackoffTime));
+  return std::max(base::Seconds(1), std::min(backoff, kMaxBackoffTime));
 }
 
 }  // namespace
diff --git a/components/sync/engine/commit_contribution_impl_unittest.cc b/components/sync/engine/commit_contribution_impl_unittest.cc
index be7efce..e37094cc 100644
--- a/components/sync/engine/commit_contribution_impl_unittest.cc
+++ b/components/sync/engine/commit_contribution_impl_unittest.cc
@@ -66,10 +66,8 @@
 
 TEST(CommitContributionImplTest, PopulateCommitProtoDefault) {
   const int64_t kBaseVersion = 7;
-  base::Time creation_time =
-      base::Time::UnixEpoch() + base::TimeDelta::FromDays(1);
-  base::Time modification_time =
-      creation_time + base::TimeDelta::FromSeconds(1);
+  base::Time creation_time = base::Time::UnixEpoch() + base::Days(1);
+  base::Time modification_time = creation_time + base::Seconds(1);
 
   auto data = std::make_unique<syncer::EntityData>();
 
@@ -110,10 +108,8 @@
 
 TEST(CommitContributionImplTest, PopulateCommitProtoBookmark) {
   const int64_t kBaseVersion = 7;
-  base::Time creation_time =
-      base::Time::UnixEpoch() + base::TimeDelta::FromDays(1);
-  base::Time modification_time =
-      creation_time + base::TimeDelta::FromSeconds(1);
+  base::Time creation_time = base::Time::UnixEpoch() + base::Days(1);
+  base::Time modification_time = creation_time + base::Seconds(1);
 
   auto data = std::make_unique<syncer::EntityData>();
 
@@ -155,10 +151,8 @@
 
 TEST(CommitContributionImplTest, PopulateCommitProtoBookmarkFolder) {
   const int64_t kBaseVersion = 7;
-  base::Time creation_time =
-      base::Time::UnixEpoch() + base::TimeDelta::FromDays(1);
-  base::Time modification_time =
-      creation_time + base::TimeDelta::FromSeconds(1);
+  base::Time creation_time = base::Time::UnixEpoch() + base::Days(1);
+  base::Time modification_time = creation_time + base::Seconds(1);
 
   auto data = std::make_unique<syncer::EntityData>();
 
diff --git a/components/sync/engine/cycle/data_type_tracker.cc b/components/sync/engine/cycle/data_type_tracker.cc
index c6a7309..6dc8a5143 100644
--- a/components/sync/engine/cycle/data_type_tracker.cc
+++ b/components/sync/engine/cycle/data_type_tracker.cc
@@ -18,16 +18,14 @@
 namespace {
 
 // Possible nudge delays for local changes.
-constexpr base::TimeDelta kMinLocalChangeNudgeDelay =
-    base::TimeDelta::FromMilliseconds(50);
+constexpr base::TimeDelta kMinLocalChangeNudgeDelay = base::Milliseconds(50);
 constexpr base::TimeDelta kMediumLocalChangeNudgeDelay =
-    base::TimeDelta::FromMilliseconds(200);
-constexpr base::TimeDelta kBigLocalChangeNudgeDelay =
-    base::TimeDelta::FromMilliseconds(2000);
+    base::Milliseconds(200);
+constexpr base::TimeDelta kBigLocalChangeNudgeDelay = base::Milliseconds(2000);
 constexpr base::TimeDelta kVeryBigLocalChangeNudgeDelay = kDefaultPollInterval;
 
 constexpr base::TimeDelta kDefaultLocalChangeNudgeDelayForSessions =
-    base::TimeDelta::FromSeconds(11);
+    base::Seconds(11);
 
 const size_t kDefaultMaxPayloadsPerType = 10;
 
@@ -322,15 +320,14 @@
 
 base::TimeDelta DataTypeTracker::GetTimeUntilUnblock() const {
   DCHECK(IsBlocked());
-  return std::max(base::TimeDelta::FromSeconds(0),
-                  unblock_time_ - base::TimeTicks::Now());
+  return std::max(base::Seconds(0), unblock_time_ - base::TimeTicks::Now());
 }
 
 base::TimeDelta DataTypeTracker::GetLastBackoffInterval() const {
   if (GetBlockingMode() !=
       WaitInterval::BlockingMode::kExponentialBackoffRetrying) {
     NOTREACHED();
-    return base::TimeDelta::FromSeconds(0);
+    return base::Seconds(0);
   }
   return wait_interval_->length;
 }
diff --git a/components/sync/engine/cycle/nudge_tracker.cc b/components/sync/engine/cycle/nudge_tracker.cc
index 564f4e9..330b2855 100644
--- a/components/sync/engine/cycle/nudge_tracker.cc
+++ b/components/sync/engine/cycle/nudge_tracker.cc
@@ -16,10 +16,8 @@
 namespace {
 
 // Nudge delays for local refresh and invalidations. Common to all data types.
-constexpr base::TimeDelta kLocalRefreshDelay =
-    base::TimeDelta::FromMilliseconds(500);
-constexpr base::TimeDelta kRemoteInvalidationDelay =
-    base::TimeDelta::FromMilliseconds(250);
+constexpr base::TimeDelta kLocalRefreshDelay = base::Milliseconds(500);
+constexpr base::TimeDelta kRemoteInvalidationDelay = base::Milliseconds(250);
 
 }  // namespace
 
diff --git a/components/sync/engine/cycle/nudge_tracker_unittest.cc b/components/sync/engine/cycle/nudge_tracker_unittest.cc
index 47610c2..ad45d72 100644
--- a/components/sync/engine/cycle/nudge_tracker_unittest.cc
+++ b/components/sync/engine/cycle/nudge_tracker_unittest.cc
@@ -111,9 +111,8 @@
 // RETRY < all variants of GU_TRIGGER
 TEST_F(NudgeTrackerTest, OriginPriorities) {
   // Start with a retry request.
-  const base::TimeTicks t0 =
-      base::TimeTicks() + base::TimeDelta::FromMicroseconds(1234);
-  const base::TimeTicks t1 = t0 + base::TimeDelta::FromSeconds(10);
+  const base::TimeTicks t0 = base::TimeTicks() + base::Microseconds(1234);
+  const base::TimeTicks t1 = t0 + base::Seconds(10);
   nudge_tracker_.SetNextRetryTime(t0);
   nudge_tracker_.SetSyncCycleStartTime(t1);
   EXPECT_EQ(sync_pb::SyncEnums::RETRY, nudge_tracker_.GetOrigin());
@@ -431,7 +430,7 @@
 // Test IsSyncRequired() responds correctly to data type throttling and backoff.
 TEST_F(NudgeTrackerTest, IsSyncRequired_Throttling_Backoff) {
   const base::TimeTicks now = base::TimeTicks::Now();
-  const base::TimeDelta throttle_length = base::TimeDelta::FromMinutes(0);
+  const base::TimeDelta throttle_length = base::Minutes(0);
 
   EXPECT_FALSE(nudge_tracker_.IsSyncRequired(ModelTypeSet::All()));
 
@@ -476,7 +475,7 @@
 // backoff.
 TEST_F(NudgeTrackerTest, IsGetUpdatesRequired_Throttling_Backoff) {
   const base::TimeTicks now = base::TimeTicks::Now();
-  const base::TimeDelta throttle_length = base::TimeDelta::FromMinutes(0);
+  const base::TimeDelta throttle_length = base::Minutes(0);
 
   EXPECT_FALSE(nudge_tracker_.IsGetUpdatesRequired(ModelTypeSet::All()));
 
@@ -526,7 +525,7 @@
 // Tests throttling-related getter functions when some types are throttled.
 TEST_F(NudgeTrackerTest, ThrottleAndUnthrottle) {
   const base::TimeTicks now = base::TimeTicks::Now();
-  const base::TimeDelta throttle_length = base::TimeDelta::FromMinutes(0);
+  const base::TimeDelta throttle_length = base::Minutes(0);
 
   nudge_tracker_.SetTypesThrottledUntil(ModelTypeSet(SESSIONS, PREFERENCES),
                                         throttle_length, now);
@@ -547,7 +546,7 @@
 // Tests backoff-related getter functions when some types are backed off.
 TEST_F(NudgeTrackerTest, BackoffAndUnbackoff) {
   const base::TimeTicks now = base::TimeTicks::Now();
-  const base::TimeDelta backoff_length = base::TimeDelta::FromMinutes(0);
+  const base::TimeDelta backoff_length = base::Minutes(0);
 
   nudge_tracker_.SetTypeBackedOff(SESSIONS, backoff_length, now);
   nudge_tracker_.SetTypeBackedOff(PREFERENCES, backoff_length, now);
@@ -567,8 +566,8 @@
 
 TEST_F(NudgeTrackerTest, OverlappingThrottleIntervals) {
   const base::TimeTicks now = base::TimeTicks::Now();
-  const base::TimeDelta throttle1_length = base::TimeDelta::FromMinutes(0);
-  const base::TimeDelta throttle2_length = base::TimeDelta::FromMinutes(20);
+  const base::TimeDelta throttle1_length = base::Minutes(0);
+  const base::TimeDelta throttle2_length = base::Minutes(20);
 
   // Setup the longer of two intervals.
   nudge_tracker_.SetTypesThrottledUntil(ModelTypeSet(SESSIONS, PREFERENCES),
@@ -605,8 +604,8 @@
 
 TEST_F(NudgeTrackerTest, OverlappingBackoffIntervals) {
   const base::TimeTicks now = base::TimeTicks::Now();
-  const base::TimeDelta backoff1_length = base::TimeDelta::FromMinutes(0);
-  const base::TimeDelta backoff2_length = base::TimeDelta::FromMinutes(20);
+  const base::TimeDelta backoff1_length = base::Minutes(0);
+  const base::TimeDelta backoff2_length = base::Minutes(20);
 
   // Setup the longer of two intervals.
   nudge_tracker_.SetTypeBackedOff(SESSIONS, backoff2_length, now);
@@ -643,8 +642,8 @@
 
 TEST_F(NudgeTrackerTest, Retry) {
   const base::TimeTicks t0 = base::TimeTicks::FromInternalValue(12345);
-  const base::TimeTicks t3 = t0 + base::TimeDelta::FromSeconds(3);
-  const base::TimeTicks t4 = t0 + base::TimeDelta::FromSeconds(4);
+  const base::TimeTicks t3 = t0 + base::Seconds(3);
+  const base::TimeTicks t4 = t0 + base::Seconds(4);
 
   // Set retry for t3.
   nudge_tracker_.SetNextRetryTime(t3);
@@ -677,10 +676,10 @@
 // began.
 TEST_F(NudgeTrackerTest, IsRetryRequired_MidCycleUpdate1) {
   const base::TimeTicks t0 = base::TimeTicks::FromInternalValue(12345);
-  const base::TimeTicks t1 = t0 + base::TimeDelta::FromSeconds(1);
-  const base::TimeTicks t2 = t0 + base::TimeDelta::FromSeconds(2);
-  const base::TimeTicks t5 = t0 + base::TimeDelta::FromSeconds(5);
-  const base::TimeTicks t6 = t0 + base::TimeDelta::FromSeconds(6);
+  const base::TimeTicks t1 = t0 + base::Seconds(1);
+  const base::TimeTicks t2 = t0 + base::Seconds(2);
+  const base::TimeTicks t5 = t0 + base::Seconds(5);
+  const base::TimeTicks t6 = t0 + base::Seconds(6);
 
   nudge_tracker_.SetNextRetryTime(t0);
   nudge_tracker_.SetSyncCycleStartTime(t1);
@@ -710,10 +709,10 @@
 // began.
 TEST_F(NudgeTrackerTest, IsRetryRequired_MidCycleUpdate2) {
   const base::TimeTicks t0 = base::TimeTicks::FromInternalValue(12345);
-  const base::TimeTicks t1 = t0 + base::TimeDelta::FromSeconds(1);
-  const base::TimeTicks t3 = t0 + base::TimeDelta::FromSeconds(3);
-  const base::TimeTicks t5 = t0 + base::TimeDelta::FromSeconds(5);
-  const base::TimeTicks t6 = t0 + base::TimeDelta::FromSeconds(6);
+  const base::TimeTicks t1 = t0 + base::Seconds(1);
+  const base::TimeTicks t3 = t0 + base::Seconds(3);
+  const base::TimeTicks t5 = t0 + base::Seconds(5);
+  const base::TimeTicks t6 = t0 + base::Seconds(6);
 
   // Schedule a future retry, and a nudge unrelated to it.
   nudge_tracker_.RecordLocalChange(BOOKMARKS);
@@ -743,8 +742,8 @@
 // Simulate the case where a sync cycle fails.
 TEST_F(NudgeTrackerTest, IsRetryRequired_FailedCycle) {
   const base::TimeTicks t0 = base::TimeTicks::FromInternalValue(12345);
-  const base::TimeTicks t1 = t0 + base::TimeDelta::FromSeconds(1);
-  const base::TimeTicks t2 = t0 + base::TimeDelta::FromSeconds(2);
+  const base::TimeTicks t1 = t0 + base::Seconds(1);
+  const base::TimeTicks t2 = t0 + base::Seconds(2);
 
   nudge_tracker_.SetNextRetryTime(t0);
   nudge_tracker_.SetSyncCycleStartTime(t1);
@@ -767,11 +766,11 @@
 // was invoked, but the sync cycle did not complete successfully.
 TEST_F(NudgeTrackerTest, IsRetryRequired_FailedCycleIncludesUpdate) {
   const base::TimeTicks t0 = base::TimeTicks::FromInternalValue(12345);
-  const base::TimeTicks t1 = t0 + base::TimeDelta::FromSeconds(1);
-  const base::TimeTicks t3 = t0 + base::TimeDelta::FromSeconds(3);
-  const base::TimeTicks t4 = t0 + base::TimeDelta::FromSeconds(4);
-  const base::TimeTicks t5 = t0 + base::TimeDelta::FromSeconds(5);
-  const base::TimeTicks t6 = t0 + base::TimeDelta::FromSeconds(6);
+  const base::TimeTicks t1 = t0 + base::Seconds(1);
+  const base::TimeTicks t3 = t0 + base::Seconds(3);
+  const base::TimeTicks t4 = t0 + base::Seconds(4);
+  const base::TimeTicks t5 = t0 + base::Seconds(5);
+  const base::TimeTicks t6 = t0 + base::Seconds(6);
 
   nudge_tracker_.SetNextRetryTime(t0);
   nudge_tracker_.SetSyncCycleStartTime(t1);
@@ -831,8 +830,7 @@
   // a last-resort fallback.
   EXPECT_GT(nudge_tracker_.RecordLocalChange(AUTOFILL),
             nudge_tracker_.RecordLocalChange(SESSIONS));
-  EXPECT_GT(nudge_tracker_.RecordLocalChange(AUTOFILL),
-            base::TimeDelta::FromHours(1));
+  EXPECT_GT(nudge_tracker_.RecordLocalChange(AUTOFILL), base::Hours(1));
   EXPECT_EQ(nudge_tracker_.RecordLocalChange(AUTOFILL),
             nudge_tracker_.RecordLocalChange(USER_EVENTS));
 }
@@ -840,27 +838,24 @@
 // Test that custom nudge delays are used over the defaults.
 TEST_F(NudgeTrackerTest, CustomDelayTest) {
   // Set some custom delays.
-  nudge_tracker_.SetLocalChangeDelayIgnoringMinForTest(
-      BOOKMARKS, base::TimeDelta::FromSeconds(10));
-  nudge_tracker_.SetLocalChangeDelayIgnoringMinForTest(
-      SESSIONS, base::TimeDelta::FromSeconds(2));
+  nudge_tracker_.SetLocalChangeDelayIgnoringMinForTest(BOOKMARKS,
+                                                       base::Seconds(10));
+  nudge_tracker_.SetLocalChangeDelayIgnoringMinForTest(SESSIONS,
+                                                       base::Seconds(2));
 
   // Only those with custom delays should be affected, not another type.
   EXPECT_NE(nudge_tracker_.RecordLocalChange(BOOKMARKS),
             nudge_tracker_.RecordLocalChange(PREFERENCES));
 
-  EXPECT_EQ(base::TimeDelta::FromSeconds(10),
-            nudge_tracker_.RecordLocalChange(BOOKMARKS));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(2),
-            nudge_tracker_.RecordLocalChange(SESSIONS));
+  EXPECT_EQ(base::Seconds(10), nudge_tracker_.RecordLocalChange(BOOKMARKS));
+  EXPECT_EQ(base::Seconds(2), nudge_tracker_.RecordLocalChange(SESSIONS));
 }
 
 TEST_F(NudgeTrackerTest, DoNotUpdateDelayIfTooSmall) {
   base::TimeDelta initial_delay = nudge_tracker_.RecordLocalChange(BOOKMARKS);
   // The tracker should enforce a minimum threshold that prevents setting a
   // delay too small.
-  nudge_tracker_.UpdateLocalChangeDelay(BOOKMARKS,
-                                        base::TimeDelta::FromMicroseconds(100));
+  nudge_tracker_.UpdateLocalChangeDelay(BOOKMARKS, base::Microseconds(100));
   EXPECT_EQ(initial_delay, nudge_tracker_.RecordLocalChange(BOOKMARKS));
 }
 
diff --git a/components/sync/engine/cycle/sync_cycle_snapshot_unittest.cc b/components/sync/engine/cycle/sync_cycle_snapshot_unittest.cc
index 80967b2..f8c5b288 100644
--- a/components/sync/engine/cycle/sync_cycle_snapshot_unittest.cc
+++ b/components/sync/engine/cycle/sync_cycle_snapshot_unittest.cc
@@ -55,7 +55,7 @@
       std::vector<int>(GetNumModelTypes(), 0),
       std::vector<int>(GetNumModelTypes(), 0),
       sync_pb::SyncEnums::UNKNOWN_ORIGIN,
-      /*poll_interval=*/base::TimeDelta::FromMinutes(30),
+      /*poll_interval=*/base::Minutes(30),
       /*has_remaining_local_changes=*/false);
   std::unique_ptr<base::DictionaryValue> value(snapshot.ToValue());
   EXPECT_EQ(21u, value->DictSize());
diff --git a/components/sync/engine/events/protocol_event_buffer_unittest.cc b/components/sync/engine/events/protocol_event_buffer_unittest.cc
index d06aee7..b22e022 100644
--- a/components/sync/engine/events/protocol_event_buffer_unittest.cc
+++ b/components/sync/engine/events/protocol_event_buffer_unittest.cc
@@ -34,15 +34,12 @@
     int64_t id) {
   sync_pb::ClientToServerMessage message;
   return std::make_unique<PollGetUpdatesRequestEvent>(
-      base::Time::FromDeltaSinceWindowsEpoch(
-          base::TimeDelta::FromMicroseconds(id)),
-      message);
+      base::Time::FromDeltaSinceWindowsEpoch(base::Microseconds(id)), message);
 }
 
 bool ProtocolEventBufferTest::HasId(const ProtocolEvent& event, int64_t id) {
   return event.GetTimestampForTesting() ==
-         base::Time::FromDeltaSinceWindowsEpoch(
-             base::TimeDelta::FromMicroseconds(id));
+         base::Time::FromDeltaSinceWindowsEpoch(base::Microseconds(id));
 }
 
 TEST_F(ProtocolEventBufferTest, AddThenReturnEvents) {
diff --git a/components/sync/engine/get_updates_processor_unittest.cc b/components/sync/engine/get_updates_processor_unittest.cc
index d5c642d..1a42498 100644
--- a/components/sync/engine/get_updates_processor_unittest.cc
+++ b/components/sync/engine/get_updates_processor_unittest.cc
@@ -270,7 +270,7 @@
   nudge_tracker.SetNextRetryTime(t1);
 
   // Get the nudge tracker to think the retry is due.
-  nudge_tracker.SetSyncCycleStartTime(t1 + base::TimeDelta::FromSeconds(1));
+  nudge_tracker.SetSyncCycleStartTime(t1 + base::Seconds(1));
 
   sync_pb::ClientToServerMessage message;
   NormalGetUpdatesDelegate normal_delegate(nudge_tracker);
@@ -301,7 +301,7 @@
   nudge_tracker.SetNextRetryTime(t1);
 
   // Get the nudge tracker to think the retry is due.
-  nudge_tracker.SetSyncCycleStartTime(t1 + base::TimeDelta::FromSeconds(1));
+  nudge_tracker.SetSyncCycleStartTime(t1 + base::Seconds(1));
 
   // Record a local change, too.
   nudge_tracker.RecordLocalChange(BOOKMARKS);
diff --git a/components/sync/engine/net/http_bridge.cc b/components/sync/engine/net/http_bridge.cc
index 674d73c..8cbe5ec 100644
--- a/components/sync/engine/net/http_bridge.cc
+++ b/components/sync/engine/net/http_bridge.cc
@@ -37,7 +37,7 @@
 // It's possible for an http request to be silently stalled. We set a time
 // limit for all http requests, beyond which the request is cancelled and
 // treated as a transient failure.
-constexpr base::TimeDelta kMaxHttpRequestTime = base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kMaxHttpRequestTime = base::Minutes(5);
 
 // Helper method for logging timeouts via UMA.
 void LogTimeout(bool timed_out) {
diff --git a/components/sync/engine/polling_constants.h b/components/sync/engine/polling_constants.h
index 1432bd4..7ad270e 100644
--- a/components/sync/engine/polling_constants.h
+++ b/components/sync/engine/polling_constants.h
@@ -23,28 +23,25 @@
 // We use high values here to ensure that failure to receive poll updates from
 // the server doesn't result in rapid-fire polling from the client due to low
 // local limits.
-constexpr base::TimeDelta kDefaultPollInterval = base::TimeDelta::FromHours(8);
+constexpr base::TimeDelta kDefaultPollInterval = base::Hours(8);
 
 // Maximum interval for exponential backoff.
-constexpr base::TimeDelta kMaxBackoffTime = base::TimeDelta::FromMinutes(10);
+constexpr base::TimeDelta kMaxBackoffTime = base::Minutes(10);
 
 // After a failure contacting sync servers, specifies how long to wait before
 // reattempting and entering exponential backoff if consecutive failures
 // occur.
-constexpr base::TimeDelta kInitialBackoffRetryTime =
-    base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kInitialBackoffRetryTime = base::Seconds(30);
 
 // A dangerously short retry value that would not actually protect servers from
 // DDoS if it were used as a seed for exponential backoff, although the client
 // would still follow exponential backoff.  Useful for debugging and tests (when
 // you don't want to wait 5 minutes).
-constexpr base::TimeDelta kInitialBackoffShortRetryTime =
-    base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kInitialBackoffShortRetryTime = base::Seconds(1);
 
 // Similar to kInitialBackoffRetryTime above, but only to be used in
 // certain exceptional error cases, such as MIGRATION_DONE.
-constexpr base::TimeDelta kInitialBackoffImmediateRetryTime =
-    base::TimeDelta::FromSeconds(0);
+constexpr base::TimeDelta kInitialBackoffImmediateRetryTime = base::Seconds(0);
 
 }  // namespace syncer
 
diff --git a/components/sync/engine/sync_manager_impl_unittest.cc b/components/sync/engine/sync_manager_impl_unittest.cc
index 331d104..aa25d2f 100644
--- a/components/sync/engine/sync_manager_impl_unittest.cc
+++ b/components/sync/engine/sync_manager_impl_unittest.cc
@@ -192,7 +192,7 @@
         std::make_unique<ComponentsFactory>(std::move(scheduler));
     args.encryption_handler = &encryption_handler_;
     args.cancelation_signal = &cancelation_signal_;
-    args.poll_interval = base::TimeDelta::FromMinutes(60);
+    args.poll_interval = base::Minutes(60);
     sync_manager_.Init(&args);
 
     base::RunLoop().RunUntilIdle();
diff --git a/components/sync/engine/sync_scheduler_impl_unittest.cc b/components/sync/engine/sync_scheduler_impl_unittest.cc
index feb9d8b..9d227d9 100644
--- a/components/sync/engine/sync_scheduler_impl_unittest.cc
+++ b/components/sync/engine/sync_scheduler_impl_unittest.cc
@@ -268,7 +268,7 @@
         std::vector<SyncEngineEventListener*>(), nullptr,
         model_type_registry_.get(), "fake_invalidator_client_id",
         "fake_cache_guid", "fake_birthday", "fake_bag_of_chips",
-        /*poll_interval=*/base::TimeDelta::FromMinutes(30));
+        /*poll_interval=*/base::Minutes(30));
     context_->set_notifications_enabled(true);
     context_->set_account_name("Test");
     RebuildScheduler();
@@ -1989,9 +1989,9 @@
 
 TEST_F(SyncSchedulerImplTest, PollOnStartUpAfterLongPause) {
   base::Time now = base::Time::Now();
-  base::TimeDelta poll_interval = base::TimeDelta::FromHours(4);
+  base::TimeDelta poll_interval = base::Hours(4);
   base::Time last_reset = ComputeLastPollOnStart(
-      /*last_poll=*/now - base::TimeDelta::FromDays(1), poll_interval, now);
+      /*last_poll=*/now - base::Days(1), poll_interval, now);
   EXPECT_THAT(last_reset, Gt(now - poll_interval));
   // The max poll delay is 1% of the poll_interval.
   EXPECT_THAT(last_reset, Lt(now - 0.99 * poll_interval));
@@ -1999,8 +1999,8 @@
 
 TEST_F(SyncSchedulerImplTest, PollOnStartUpAfterShortPause) {
   base::Time now = base::Time::Now();
-  base::TimeDelta poll_interval = base::TimeDelta::FromHours(4);
-  base::Time last_poll = now - base::TimeDelta::FromHours(2);
+  base::TimeDelta poll_interval = base::Hours(4);
+  base::Time last_poll = now - base::Hours(2);
   EXPECT_THAT(ComputeLastPollOnStart(last_poll, poll_interval, now),
               Eq(last_poll));
 }
@@ -2009,8 +2009,8 @@
 // random number generation.
 TEST_F(SyncSchedulerImplTest, PollOnStartUpWithinBoundsAfterLongPause) {
   base::Time now = base::Time::Now();
-  base::TimeDelta poll_interval = base::TimeDelta::FromHours(4);
-  base::Time last_poll = now - base::TimeDelta::FromDays(2);
+  base::TimeDelta poll_interval = base::Hours(4);
+  base::Time last_poll = now - base::Days(2);
   bool found_delay_greater_than_5_permille = false;
   bool found_delay_less_or_equal_5_permille = false;
   for (int i = 0; i < 10000; ++i) {
@@ -2035,8 +2035,8 @@
   feature_list.InitAndEnableFeature(switches::kSyncResetPollIntervalOnStart);
   base::Time now = base::Time::Now();
   EXPECT_THAT(ComputeLastPollOnStart(
-                  /*last_poll=*/now - base::TimeDelta::FromDays(1),
-                  /*poll_interval=*/base::TimeDelta::FromHours(4), now),
+                  /*last_poll=*/now - base::Days(1),
+                  /*poll_interval=*/base::Hours(4), now),
               Eq(now));
 }
 
diff --git a/components/sync/engine/syncer_proto_util.cc b/components/sync/engine/syncer_proto_util.cc
index 23fe078..0c1ad30 100644
--- a/components/sync/engine/syncer_proto_util.cc
+++ b/components/sync/engine/syncer_proto_util.cc
@@ -31,8 +31,7 @@
 namespace {
 
 // Time to backoff syncing after receiving a throttled response.
-constexpr base::TimeDelta kSyncDelayAfterThrottled =
-    base::TimeDelta::FromHours(2);
+constexpr base::TimeDelta kSyncDelayAfterThrottled = base::Hours(2);
 
 void LogResponseProfilingData(const ClientToServerResponse& response) {
   if (response.has_profiling_data()) {
@@ -383,8 +382,7 @@
   if (response.has_client_command()) {
     const sync_pb::ClientCommand& command = response.client_command();
     if (command.has_throttle_delay_seconds()) {
-      throttle_delay =
-          base::TimeDelta::FromSeconds(command.throttle_delay_seconds());
+      throttle_delay = base::Seconds(command.throttle_delay_seconds());
     }
   }
   return throttle_delay;
@@ -457,7 +455,7 @@
 
     if (command.has_set_sync_poll_interval()) {
       base::TimeDelta interval =
-          base::TimeDelta::FromSeconds(command.set_sync_poll_interval());
+          base::Seconds(command.set_sync_poll_interval());
       if (interval.is_zero()) {
         DLOG(WARNING) << "Received zero poll interval from server. Ignoring.";
       } else {
@@ -469,7 +467,7 @@
     if (command.has_sessions_commit_delay_seconds()) {
       std::map<ModelType, base::TimeDelta> delay_map;
       delay_map[SESSIONS] =
-          base::TimeDelta::FromSeconds(command.sessions_commit_delay_seconds());
+          base::Seconds(command.sessions_commit_delay_seconds());
       cycle->delegate()->OnReceivedCustomNudgeDelays(delay_map);
     }
 
@@ -480,7 +478,7 @@
 
     if (command.has_gu_retry_delay_seconds()) {
       cycle->delegate()->OnReceivedGuRetryDelay(
-          base::TimeDelta::FromSeconds(command.gu_retry_delay_seconds()));
+          base::Seconds(command.gu_retry_delay_seconds()));
     }
 
     if (command.custom_nudge_delays_size() > 0) {
@@ -492,8 +490,8 @@
         ModelType type = GetModelTypeFromSpecificsFieldNumber(
             command.custom_nudge_delays(i).datatype_id());
         if (type != UNSPECIFIED) {
-          delay_map[type] = base::TimeDelta::FromMilliseconds(
-              command.custom_nudge_delays(i).delay_ms());
+          delay_map[type] =
+              base::Milliseconds(command.custom_nudge_delays(i).delay_ms());
         }
       }
       cycle->delegate()->OnReceivedCustomNudgeDelays(delay_map);
diff --git a/components/sync/engine/syncer_proto_util_unittest.cc b/components/sync/engine/syncer_proto_util_unittest.cc
index 81fe96680..366092e7 100644
--- a/components/sync/engine/syncer_proto_util_unittest.cc
+++ b/components/sync/engine/syncer_proto_util_unittest.cc
@@ -68,7 +68,7 @@
         /*cache_guid=*/"",
         /*birthday=*/"",
         /*bag_of_chips=*/"",
-        /*poll_internal=*/base::TimeDelta::FromSeconds(1));
+        /*poll_internal=*/base::Seconds(1));
   }
 
   SyncCycleContext* context() { return context_.get(); }
diff --git a/components/sync/engine/syncer_unittest.cc b/components/sync/engine/syncer_unittest.cc
index c247fda3..cbd3832 100644
--- a/components/sync/engine/syncer_unittest.cc
+++ b/components/sync/engine/syncer_unittest.cc
@@ -174,7 +174,7 @@
         debug_info_getter_.get(), model_type_registry_.get(),
         "fake_invalidator_client_id", local_cache_guid(),
         mock_server_->store_birthday(), "fake_bag_of_chips",
-        /*poll_interval=*/base::TimeDelta::FromMinutes(30));
+        /*poll_interval=*/base::Minutes(30));
     auto syncer = std::make_unique<Syncer>(&cancelation_signal_);
     // The syncer is destroyed with the scheduler that owns it.
     syncer_ = syncer.get();
@@ -710,10 +710,9 @@
   mock_server_->SetGUClientCommand(std::move(command));
   EXPECT_TRUE(SyncShareNudge());
 
-  EXPECT_EQ(base::TimeDelta::FromSeconds(8), last_poll_interval_received_);
-  EXPECT_EQ(base::TimeDelta::FromSeconds(3141), last_sessions_commit_delay_);
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(950),
-            last_bookmarks_commit_delay_);
+  EXPECT_EQ(base::Seconds(8), last_poll_interval_received_);
+  EXPECT_EQ(base::Seconds(3141), last_sessions_commit_delay_);
+  EXPECT_EQ(base::Milliseconds(950), last_bookmarks_commit_delay_);
   EXPECT_EQ(11, last_client_invalidation_hint_buffer_size_);
 
   command = std::make_unique<ClientCommand>();
@@ -730,10 +729,9 @@
   mock_server_->SetGUClientCommand(std::move(command));
   EXPECT_TRUE(SyncShareNudge());
 
-  EXPECT_EQ(base::TimeDelta::FromSeconds(180), last_poll_interval_received_);
-  EXPECT_EQ(base::TimeDelta::FromSeconds(2718), last_sessions_commit_delay_);
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1050),
-            last_bookmarks_commit_delay_);
+  EXPECT_EQ(base::Seconds(180), last_poll_interval_received_);
+  EXPECT_EQ(base::Seconds(2718), last_sessions_commit_delay_);
+  EXPECT_EQ(base::Milliseconds(1050), last_bookmarks_commit_delay_);
   EXPECT_EQ(9, last_client_invalidation_hint_buffer_size_);
 }
 
@@ -756,10 +754,9 @@
   mock_server_->SetCommitClientCommand(std::move(command));
   EXPECT_TRUE(SyncShareNudge());
 
-  EXPECT_EQ(base::TimeDelta::FromSeconds(8), last_poll_interval_received_);
-  EXPECT_EQ(base::TimeDelta::FromSeconds(3141), last_sessions_commit_delay_);
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(950),
-            last_bookmarks_commit_delay_);
+  EXPECT_EQ(base::Seconds(8), last_poll_interval_received_);
+  EXPECT_EQ(base::Seconds(3141), last_sessions_commit_delay_);
+  EXPECT_EQ(base::Milliseconds(950), last_bookmarks_commit_delay_);
   EXPECT_EQ(11, last_client_invalidation_hint_buffer_size_);
 
   command = std::make_unique<ClientCommand>();
@@ -777,10 +774,9 @@
   mock_server_->SetCommitClientCommand(std::move(command));
   EXPECT_TRUE(SyncShareNudge());
 
-  EXPECT_EQ(base::TimeDelta::FromSeconds(180), last_poll_interval_received_);
-  EXPECT_EQ(base::TimeDelta::FromSeconds(2718), last_sessions_commit_delay_);
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1050),
-            last_bookmarks_commit_delay_);
+  EXPECT_EQ(base::Seconds(180), last_poll_interval_received_);
+  EXPECT_EQ(base::Seconds(2718), last_sessions_commit_delay_);
+  EXPECT_EQ(base::Milliseconds(1050), last_bookmarks_commit_delay_);
   EXPECT_EQ(9, last_client_invalidation_hint_buffer_size_);
 }
 
diff --git a/components/sync/invalidations/fcm_handler.cc b/components/sync/invalidations/fcm_handler.cc
index 31268e5..a2dfd3d4 100644
--- a/components/sync/invalidations/fcm_handler.cc
+++ b/components/sync/invalidations/fcm_handler.cc
@@ -177,8 +177,7 @@
   DCHECK(IsListening());
 
   token_validation_timer_.Start(
-      FROM_HERE,
-      base::TimeDelta::FromMinutes(kTokenValidationPeriodMinutesDefault),
+      FROM_HERE, base::Minutes(kTokenValidationPeriodMinutesDefault),
       base::BindOnce(&FCMHandler::StartTokenValidation,
                      weak_ptr_factory_.GetWeakPtr()));
 }
@@ -214,7 +213,7 @@
     instance_id::InstanceID::GetTokenCallback callback) {
   instance_id_driver_->GetInstanceID(app_id_)->GetToken(
       sender_id_, instance_id::kGCMScope,
-      /*time_to_live=*/base::TimeDelta::FromSeconds(kInstanceIDTokenTTLSeconds),
+      /*time_to_live=*/base::Seconds(kInstanceIDTokenTTLSeconds),
       /*flags=*/{instance_id::InstanceID::Flags::kIsLazy}, std::move(callback));
 }
 
diff --git a/components/sync/invalidations/fcm_handler_unittest.cc b/components/sync/invalidations/fcm_handler_unittest.cc
index 45a24cfc..1d37653 100644
--- a/components/sync/invalidations/fcm_handler_unittest.cc
+++ b/components/sync/invalidations/fcm_handler_unittest.cc
@@ -189,15 +189,14 @@
   // Adjust the time and check that validation will happen in time.
   // The old token is invalid, so token observer should be informed.
   task_environment_.FastForwardBy(
-      base::TimeDelta::FromMinutes(kTokenValidationPeriodMinutesDefault) -
-      base::TimeDelta::FromSeconds(1));
+      base::Minutes(kTokenValidationPeriodMinutesDefault) - base::Seconds(1));
   // When it is time, validation happens.
   EXPECT_CALL(mock_instance_id_, GetToken)
       .WillOnce(WithArg<4>(Invoke([](InstanceID::GetTokenCallback callback) {
         std::move(callback).Run("new token", InstanceID::Result::SUCCESS);
       })));
   EXPECT_CALL(mock_token_observer, OnFCMRegistrationTokenChanged()).Times(1);
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
 
   fcm_handler_.RemoveTokenObserver(&mock_token_observer);
 }
@@ -218,15 +217,14 @@
   // Adjust the time and check that validation will happen in time.
   // The old token is valid, so token observer should not be informed.
   task_environment_.FastForwardBy(
-      base::TimeDelta::FromMinutes(kTokenValidationPeriodMinutesDefault) -
-      base::TimeDelta::FromSeconds(1));
+      base::Minutes(kTokenValidationPeriodMinutesDefault) - base::Seconds(1));
   // When it is time, validation happens.
   EXPECT_CALL(mock_instance_id_, GetToken)
       .WillOnce(WithArg<4>(Invoke([](InstanceID::GetTokenCallback callback) {
         std::move(callback).Run("token", InstanceID::Result::SUCCESS);
       })));
   EXPECT_CALL(mock_token_observer, OnFCMRegistrationTokenChanged()).Times(0);
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
 
   fcm_handler_.RemoveTokenObserver(&mock_token_observer);
 }
diff --git a/components/sync/model/client_tag_based_model_type_processor.cc b/components/sync/model/client_tag_based_model_type_processor.cc
index e1d1c7a..30ccd65 100644
--- a/components/sync/model/client_tag_based_model_type_processor.cc
+++ b/components/sync/model/client_tag_based_model_type_processor.cc
@@ -763,8 +763,8 @@
                 : "Persistent",
             ModelTypeToHistogramSuffix(type_)),
         configuration_duration,
-        /*min=*/base::TimeDelta::FromMilliseconds(1),
-        /*min=*/base::TimeDelta::FromSeconds(60),
+        /*min=*/base::Milliseconds(1),
+        /*min=*/base::Seconds(60),
         /*buckets=*/50);
   }
 
diff --git a/components/sync/model/client_tag_based_model_type_processor_unittest.cc b/components/sync/model/client_tag_based_model_type_processor_unittest.cc
index cd71b27..2f87568b 100644
--- a/components/sync/model/client_tag_based_model_type_processor_unittest.cc
+++ b/components/sync/model/client_tag_based_model_type_processor_unittest.cc
@@ -1055,7 +1055,7 @@
   ASSERT_EQ(ctime, type_processor()->GetEntityModificationTime(kKey1));
 
   // Make sure the clock advances.
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(1));
+  base::PlatformThread::Sleep(base::Milliseconds(1));
   ASSERT_NE(ctime, base::Time::Now());
 
   bridge()->WriteItem(kKey1, kValue2);
@@ -1126,7 +1126,7 @@
   ASSERT_FALSE(ctime.is_null());
 
   // Make sure the clock advances.
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(1));
+  base::PlatformThread::Sleep(base::Milliseconds(1));
   ASSERT_NE(ctime, base::Time::Now());
 
   bridge()->WriteItem(kKey1, kValue2);
diff --git a/components/sync/model/client_tag_based_remote_update_handler.cc b/components/sync/model/client_tag_based_remote_update_handler.cc
index 0a4f99d..78dc9e99 100644
--- a/components/sync/model/client_tag_based_remote_update_handler.cc
+++ b/components/sync/model/client_tag_based_remote_update_handler.cc
@@ -27,16 +27,16 @@
 
   UMA_HISTOGRAM_CUSTOM_TIMES("Sync.NonReflectionUpdateFreshnessPossiblySkewed2",
                              latency,
-                             /*min=*/base::TimeDelta::FromMilliseconds(100),
-                             /*max=*/base::TimeDelta::FromDays(7),
+                             /*min=*/base::Milliseconds(100),
+                             /*max=*/base::Days(7),
                              /*bucket_count=*/50);
 
   base::UmaHistogramCustomTimes(
       std::string("Sync.NonReflectionUpdateFreshnessPossiblySkewed2.") +
           ModelTypeToHistogramSuffix(type),
       latency,
-      /*min=*/base::TimeDelta::FromMilliseconds(100),
-      /*max=*/base::TimeDelta::FromDays(7),
+      /*min=*/base::Milliseconds(100),
+      /*max=*/base::Days(7),
       /*bucket_count=*/50);
 }
 
diff --git a/components/sync/model/processor_entity_unittest.cc b/components/sync/model/processor_entity_unittest.cc
index 114ea99..75ff842e 100644
--- a/components/sync/model/processor_entity_unittest.cc
+++ b/components/sync/model/processor_entity_unittest.cc
@@ -105,8 +105,7 @@
 // tests.
 class ProcessorEntityTest : public ::testing::Test {
  public:
-  ProcessorEntityTest()
-      : ctime_(base::Time::Now() - base::TimeDelta::FromSeconds(1)) {}
+  ProcessorEntityTest() : ctime_(base::Time::Now() - base::Seconds(1)) {}
 
   std::unique_ptr<ProcessorEntity> CreateNew() {
     return ProcessorEntity::CreateNew(kKey, kHash, "", ctime_);
diff --git a/components/sync/nigori/nigori_unittest.cc b/components/sync/nigori/nigori_unittest.cc
index 0f5b0d1..ef7d310 100644
--- a/components/sync/nigori/nigori_unittest.cc
+++ b/components/sync/nigori/nigori_unittest.cc
@@ -29,7 +29,7 @@
   // base::TimeTicks::Now(). We do this because we are testing functions which
   // call NowTicks() twice.
   static constexpr base::TimeDelta kTicksAdvanceAfterEachCall =
-      base::TimeDelta::FromMilliseconds(250);
+      base::Milliseconds(250);
 
   base::TimeTicks NowTicks() const override {
     int current_call_count = call_count_;
diff --git a/components/sync/test/engine/mock_model_type_processor.cc b/components/sync/test/engine/mock_model_type_processor.cc
index dc1c331..569aef9a 100644
--- a/components/sync/test/engine/mock_model_type_processor.cc
+++ b/components/sync/test/engine/mock_model_type_processor.cc
@@ -105,9 +105,8 @@
 
   // These fields are not really used for much, but we set them anyway
   // to make this item look more realistic.
-  data->creation_time = base::Time::UnixEpoch() + base::TimeDelta::FromDays(1);
-  data->modification_time =
-      data->creation_time + base::TimeDelta::FromSeconds(base_version);
+  data->creation_time = base::Time::UnixEpoch() + base::Days(1);
+  data->modification_time = data->creation_time + base::Seconds(base_version);
   data->name = "Name: " + tag_hash.value();
 
   DCHECK(!data->is_deleted());
@@ -136,11 +135,10 @@
 
   // These fields have little or no effect on behavior.  We set them anyway to
   // make the test more realistic.
-  data->creation_time = base::Time::UnixEpoch() + base::TimeDelta::FromDays(1);
+  data->creation_time = base::Time::UnixEpoch() + base::Days(1);
   data->name = "Name deleted";
 
-  data->modification_time =
-      data->creation_time + base::TimeDelta::FromSeconds(base_version);
+  data->modification_time = data->creation_time + base::Seconds(base_version);
 
   auto request_data = std::make_unique<CommitRequestData>();
   request_data->entity = std::move(data);
diff --git a/components/sync/test/engine/mock_model_type_worker.cc b/components/sync/test/engine/mock_model_type_worker.cc
index b7ca14e..5b43d17 100644
--- a/components/sync/test/engine/mock_model_type_worker.cc
+++ b/components/sync/test/engine/mock_model_type_worker.cc
@@ -172,9 +172,8 @@
   data.specifics = specifics;
   // These elements should have no effect on behavior, but we set them anyway
   // so we can test they are properly copied around the system if we want to.
-  data.creation_time = base::Time::UnixEpoch() + base::TimeDelta::FromDays(1);
-  data.modification_time =
-      data.creation_time + base::TimeDelta::FromSeconds(version);
+  data.creation_time = base::Time::UnixEpoch() + base::Days(1);
+  data.modification_time = data.creation_time + base::Seconds(version);
   data.name = data.specifics.has_encrypted()
                   ? "encrypted"
                   : data.specifics.preference().name();
@@ -224,9 +223,8 @@
   data.client_tag_hash = tag_hash;
   // These elements should have no effect on behavior, but we set them anyway
   // so we can test they are properly copied around the system if we want to.
-  data.creation_time = base::Time::UnixEpoch() + base::TimeDelta::FromDays(1);
-  data.modification_time =
-      data.creation_time + base::TimeDelta::FromSeconds(version);
+  data.creation_time = base::Time::UnixEpoch() + base::Days(1);
+  data.modification_time = data.creation_time + base::Seconds(version);
   data.name = "Name Non Unique";
 
   UpdateResponseData response_data;
diff --git a/components/sync/test/engine/single_type_mock_server.cc b/components/sync/test/engine/single_type_mock_server.cc
index 463c309..e41cc72 100644
--- a/components/sync/test/engine/single_type_mock_server.cc
+++ b/components/sync/test/engine/single_type_mock_server.cc
@@ -56,8 +56,8 @@
   entity.mutable_specifics()->CopyFrom(specifics);
 
   // Unimportant fields, set for completeness only.
-  base::Time ctime = base::Time::UnixEpoch() + base::TimeDelta::FromDays(1);
-  base::Time mtime = ctime + base::TimeDelta::FromSeconds(version);
+  base::Time ctime = base::Time::UnixEpoch() + base::Days(1);
+  base::Time mtime = ctime + base::Seconds(version);
   entity.set_ctime(TimeToProtoTime(ctime));
   entity.set_mtime(TimeToProtoTime(mtime));
   entity.set_name("Name: " + tag_hash.value());
@@ -84,8 +84,8 @@
   AddDefaultFieldValue(type_, entity.mutable_specifics());
 
   // Unimportant fields, set for completeness only.
-  base::Time ctime = base::Time::UnixEpoch() + base::TimeDelta::FromDays(1);
-  base::Time mtime = ctime + base::TimeDelta::FromSeconds(version);
+  base::Time ctime = base::Time::UnixEpoch() + base::Days(1);
+  base::Time mtime = ctime + base::Seconds(version);
   entity.set_ctime(TimeToProtoTime(ctime));
   entity.set_mtime(TimeToProtoTime(mtime));
   entity.set_name("Tombstone");
diff --git a/components/sync/test/fake_server/fake_server.cc b/components/sync/test/fake_server/fake_server.cc
index 2c0eb12..33661027 100644
--- a/components/sync/test/fake_server/fake_server.cc
+++ b/components/sync/test/fake_server/fake_server.cc
@@ -157,7 +157,7 @@
   }
 
   hash_and_time.time = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(micros_since_windows_epoch));
+      base::Microseconds(micros_since_windows_epoch));
   return hash_and_time;
 }
 
diff --git a/components/sync/trusted_vault/standalone_trusted_vault_backend_unittest.cc b/components/sync/trusted_vault/standalone_trusted_vault_backend_unittest.cc
index 5615bae..6ffd02e0 100644
--- a/components/sync/trusted_vault/standalone_trusted_vault_backend_unittest.cc
+++ b/components/sync/trusted_vault/standalone_trusted_vault_backend_unittest.cc
@@ -761,7 +761,7 @@
       .Run(TrustedVaultRegistrationStatus::kOtherError);
 
   // Mimic system set to the past.
-  clock()->Advance(base::TimeDelta::FromSeconds(-1));
+  clock()->Advance(base::Seconds(-1));
 
   device_registration_callback =
       TrustedVaultConnection::RegisterAuthenticationFactorCallback();
diff --git a/components/sync/trusted_vault/trusted_vault_access_token_fetcher_frontend_unittest.cc b/components/sync/trusted_vault/trusted_vault_access_token_fetcher_frontend_unittest.cc
index 0076f8b8..6434a6f 100644
--- a/components/sync/trusted_vault/trusted_vault_access_token_fetcher_frontend_unittest.cc
+++ b/components/sync/trusted_vault/trusted_vault_access_token_fetcher_frontend_unittest.cc
@@ -59,8 +59,7 @@
   EXPECT_THAT(fetched_access_token, Eq(absl::nullopt));
 
   identity_env()->WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
-      kAccountId, kAccessToken,
-      base::Time::Now() + base::TimeDelta::FromHours(1));
+      kAccountId, kAccessToken, base::Time::Now() + base::Hours(1));
 
   // Now access token should be fetched.
   ASSERT_THAT(fetched_access_token, Ne(absl::nullopt));
@@ -87,8 +86,7 @@
   EXPECT_THAT(fetched_access_token, Eq(absl::nullopt));
 
   identity_env()->WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
-      kAccountId, kAccessToken,
-      base::Time::Now() + base::TimeDelta::FromHours(1));
+      kAccountId, kAccessToken, base::Time::Now() + base::Hours(1));
 
   // Now access token should be fetched.
   ASSERT_THAT(fetched_access_token, Ne(absl::nullopt));
@@ -173,8 +171,7 @@
   EXPECT_THAT(fetched_access_token2, Eq(absl::nullopt));
 
   identity_env()->WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
-      kAccountId, kAccessToken,
-      base::Time::Now() + base::TimeDelta::FromHours(1));
+      kAccountId, kAccessToken, base::Time::Now() + base::Hours(1));
 
   // Both fetch callbacks should be called.
   ASSERT_THAT(fetched_access_token1, Ne(absl::nullopt));
diff --git a/components/sync/trusted_vault/trusted_vault_connection_impl_unittest.cc b/components/sync/trusted_vault/trusted_vault_connection_impl_unittest.cc
index e58af9e..c80267a 100644
--- a/components/sync/trusted_vault/trusted_vault_connection_impl_unittest.cc
+++ b/components/sync/trusted_vault/trusted_vault_connection_impl_unittest.cc
@@ -87,8 +87,8 @@
     absl::optional<signin::AccessTokenInfo> access_token_info;
     if (access_token_) {
       access_token_info = signin::AccessTokenInfo(
-          *access_token_, /*expiration_time_param=*/base::Time::Now() +
-                              base::TimeDelta::FromHours(1),
+          *access_token_,
+          /*expiration_time_param=*/base::Time::Now() + base::Hours(1),
           /*id_token=*/std::string());
     }
     std::move(callback).Run(access_token_info);
diff --git a/components/sync/trusted_vault/trusted_vault_request_unittest.cc b/components/sync/trusted_vault/trusted_vault_request_unittest.cc
index 1c32def4..3f6fa71 100644
--- a/components/sync/trusted_vault/trusted_vault_request_unittest.cc
+++ b/components/sync/trusted_vault/trusted_vault_request_unittest.cc
@@ -65,7 +65,7 @@
     absl::optional<signin::AccessTokenInfo> access_token_info;
     if (access_token_) {
       access_token_info = signin::AccessTokenInfo(
-          *access_token_, base::Time::Now() + base::TimeDelta::FromHours(1),
+          *access_token_, base::Time::Now() + base::Hours(1),
           /*id_token=*/std::string());
     }
     std::move(callback).Run(access_token_info);
diff --git a/components/sync/trusted_vault/trusted_vault_switches.cc b/components/sync/trusted_vault/trusted_vault_switches.cc
index dcaebf6..ec3f502 100644
--- a/components/sync/trusted_vault/trusted_vault_switches.cc
+++ b/components/sync/trusted_vault/trusted_vault_switches.cc
@@ -20,6 +20,6 @@
 const base::FeatureParam<base::TimeDelta>
     kTrustedVaultServiceThrottlingDuration{
         &kSyncTrustedVaultPassphraseRecovery,
-        "TrustedVaultServiceThrottlingDuration", base::TimeDelta::FromDays(1)};
+        "TrustedVaultServiceThrottlingDuration", base::Days(1)};
 
 }  // namespace switches
diff --git a/components/sync_bookmarks/bookmark_model_merger_unittest.cc b/components/sync_bookmarks/bookmark_model_merger_unittest.cc
index 0a7adcd..8cd8fe7 100644
--- a/components/sync_bookmarks/bookmark_model_merger_unittest.cc
+++ b/components/sync_bookmarks/bookmark_model_merger_unittest.cc
@@ -1865,8 +1865,7 @@
       /*server_id=*/"Id1", /*parent_id=*/kBookmarkBarId, kTitle1,
       /*url=*/kUrl,
       /*is_folder=*/false, /*unique_position=*/MakeRandomPosition(), kUrlGUID));
-  updates.back().entity.creation_time =
-      base::Time::Now() - base::TimeDelta::FromDays(1);
+  updates.back().entity.creation_time = base::Time::Now() - base::Days(1);
   updates.push_back(CreateUpdateResponseData(
       /*server_id=*/"Id2", /*parent_id=*/kBookmarkBarId, kTitle2,
       /*url=*/kUrl,
@@ -1929,8 +1928,7 @@
       /*server_id=*/"Id2", /*parent_id=*/kBookmarkBarId, kTitle2,
       /*url=*/kDifferentUrl,
       /*is_folder=*/false, /*unique_position=*/MakeRandomPosition(), kUrlGUID));
-  updates.back().entity.creation_time =
-      base::Time::Now() - base::TimeDelta::FromDays(1);
+  updates.back().entity.creation_time = base::Time::Now() - base::Days(1);
 
   base::HistogramTester histogram_tester;
   std::unique_ptr<SyncedBookmarkTracker> tracker =
@@ -1966,8 +1964,7 @@
       /*server_id=*/"Id1", /*parent_id=*/kBookmarkBarId, kTitle,
       /*url=*/"",
       /*is_folder=*/true, /*unique_position=*/MakeRandomPosition(), kGUID));
-  updates.back().entity.creation_time =
-      base::Time::Now() - base::TimeDelta::FromDays(1);
+  updates.back().entity.creation_time = base::Time::Now() - base::Days(1);
   updates.push_back(CreateUpdateResponseData(
       /*server_id=*/"Id2", /*parent_id=*/kBookmarkBarId, kTitle,
       /*url=*/"",
@@ -2021,8 +2018,7 @@
   updates.push_back(CreateUpdateResponseData(
       /*server_id=*/"Id2", /*parent_id=*/kBookmarkBarId, kTitle2,
       /*url=*/"", /*is_folder=*/true, MakeRandomPosition(), kGUID));
-  updates.back().entity.creation_time =
-      base::Time::Now() - base::TimeDelta::FromDays(1);
+  updates.back().entity.creation_time = base::Time::Now() - base::Days(1);
   updates.push_back(CreateUpdateResponseData(
       /*server_id=*/"Id21", /*parent_id=*/"Id2", "Some title 2",
       /*url=*/"", /*is_folder=*/true, MakeRandomPosition()));
diff --git a/components/sync_bookmarks/bookmark_remote_updates_handler_unittest.cc b/components/sync_bookmarks/bookmark_remote_updates_handler_unittest.cc
index 84e87243..5a858c4f 100644
--- a/components/sync_bookmarks/bookmark_remote_updates_handler_unittest.cc
+++ b/components/sync_bookmarks/bookmark_remote_updates_handler_unittest.cc
@@ -1042,8 +1042,7 @@
   const std::string kOriginatorClientItemId = kBookmarkGuid.AsLowercaseString();
   const std::string kSyncId = "server_id";
   const int64_t kServerVersion = 1000;
-  const base::Time kModificationTime(base::Time::Now() -
-                                     base::TimeDelta::FromSeconds(1));
+  const base::Time kModificationTime(base::Time::Now() - base::Seconds(1));
 
   sync_pb::ModelTypeState model_type_state;
   model_type_state.set_initial_sync_done(true);
@@ -1109,8 +1108,7 @@
       base::GUID::GenerateRandomV4().AsLowercaseString();
   const std::string kSyncId = "server_id";
   const int64_t kServerVersion = 1000;
-  const base::Time kModificationTime(base::Time::Now() -
-                                     base::TimeDelta::FromSeconds(1));
+  const base::Time kModificationTime(base::Time::Now() - base::Seconds(1));
 
   sync_pb::ModelTypeState model_type_state;
   model_type_state.set_initial_sync_done(true);
diff --git a/components/sync_bookmarks/bookmark_specifics_conversions.cc b/components/sync_bookmarks/bookmark_specifics_conversions.cc
index ab92ede..39db5c0 100644
--- a/components/sync_bookmarks/bookmark_specifics_conversions.cc
+++ b/components/sync_bookmarks/bookmark_specifics_conversions.cc
@@ -343,7 +343,7 @@
   const base::Time creation_time = base::Time::FromDeltaSinceWindowsEpoch(
       // Use FromDeltaSinceWindowsEpoch because creation_time_us has
       // always used the Windows epoch.
-      base::TimeDelta::FromMicroseconds(creation_time_us));
+      base::Microseconds(creation_time_us));
 
   switch (specifics.type()) {
     case sync_pb::BookmarkSpecifics::UNSPECIFIED:
diff --git a/components/sync_bookmarks/bookmark_specifics_conversions_unittest.cc b/components/sync_bookmarks/bookmark_specifics_conversions_unittest.cc
index c2f0801..97b6e067 100644
--- a/components/sync_bookmarks/bookmark_specifics_conversions_unittest.cc
+++ b/components/sync_bookmarks/bookmark_specifics_conversions_unittest.cc
@@ -95,10 +95,9 @@
   EXPECT_THAT(bm_specifics.type(), Eq(sync_pb::BookmarkSpecifics::URL));
   EXPECT_THAT(bm_specifics.legacy_canonicalized_title(), Eq(kTitle));
   EXPECT_THAT(GURL(bm_specifics.url()), Eq(kUrl));
-  EXPECT_THAT(
-      base::Time::FromDeltaSinceWindowsEpoch(
-          base::TimeDelta::FromMicroseconds(bm_specifics.creation_time_us())),
-      Eq(kTime));
+  EXPECT_THAT(base::Time::FromDeltaSinceWindowsEpoch(
+                  base::Microseconds(bm_specifics.creation_time_us())),
+              Eq(kTime));
   EXPECT_TRUE(syncer::UniquePosition::FromProto(bm_specifics.unique_position())
                   .Equals(kUniquePosition));
   for (const sync_pb::MetaInfo& meta_info : bm_specifics.meta_info()) {
diff --git a/components/sync_bookmarks/synced_bookmark_tracker_unittest.cc b/components/sync_bookmarks/synced_bookmark_tracker_unittest.cc
index 1c75d47..8fbe7ed2 100644
--- a/components/sync_bookmarks/synced_bookmark_tracker_unittest.cc
+++ b/components/sync_bookmarks/synced_bookmark_tracker_unittest.cc
@@ -125,8 +125,7 @@
   const int64_t kId = 1;
   const base::GUID kGuid = base::GUID::GenerateRandomV4();
   const int64_t kServerVersion = 1000;
-  const base::Time kCreationTime(base::Time::Now() -
-                                 base::TimeDelta::FromSeconds(1));
+  const base::Time kCreationTime(base::Time::Now() - base::Seconds(1));
   const sync_pb::EntitySpecifics specifics =
       GenerateSpecifics(/*title=*/std::string(), /*url=*/std::string());
 
@@ -168,8 +167,7 @@
   const int64_t kId = 1;
   const base::GUID kGuid = base::GUID::GenerateRandomV4();
   const int64_t kServerVersion = 1000;
-  const base::Time kModificationTime(base::Time::Now() -
-                                     base::TimeDelta::FromSeconds(1));
+  const base::Time kModificationTime(base::Time::Now() - base::Seconds(1));
   const sync_pb::EntitySpecifics specifics =
       GenerateSpecifics(/*title=*/std::string(), /*url=*/std::string());
   bookmarks::BookmarkNode node(kId, kGuid, GURL());
@@ -202,8 +200,7 @@
   const GURL kUrl("http://www.foo.com");
   const int64_t kId = 1;
   const int64_t kServerVersion = 1000;
-  const base::Time kCreationTime(base::Time::Now() -
-                                 base::TimeDelta::FromSeconds(1));
+  const base::Time kCreationTime(base::Time::Now() - base::Seconds(1));
   const sync_pb::EntitySpecifics specifics =
       GenerateSpecifics(/*title=*/std::string(), /*url=*/std::string());
 
@@ -228,8 +225,7 @@
   const std::string kSyncId = "SYNC_ID";
   const int64_t kId = 1;
   const int64_t kServerVersion = 1000;
-  const base::Time kModificationTime(base::Time::Now() -
-                                     base::TimeDelta::FromSeconds(1));
+  const base::Time kModificationTime(base::Time::Now() - base::Seconds(1));
   const sync_pb::EntitySpecifics specifics =
       GenerateSpecifics(/*title=*/std::string(), /*url=*/std::string());
   bookmarks::BookmarkNode node(kId, base::GUID::GenerateRandomV4(), GURL());
@@ -250,8 +246,7 @@
   const std::string kSyncId = "SYNC_ID";
   const int64_t kId = 1;
   const int64_t kServerVersion = 1000;
-  const base::Time kModificationTime(base::Time::Now() -
-                                     base::TimeDelta::FromSeconds(1));
+  const base::Time kModificationTime(base::Time::Now() - base::Seconds(1));
   const sync_pb::EntitySpecifics specifics =
       GenerateSpecifics(/*title=*/std::string(), /*url=*/std::string());
   bookmarks::BookmarkNode node(kId, base::GUID::GenerateRandomV4(), GURL());
@@ -284,8 +279,7 @@
   const int64_t kId = 1;
   const int64_t kServerVersion = 1000;
   const int64_t kNewServerVersion = 1001;
-  const base::Time kModificationTime(base::Time::Now() -
-                                     base::TimeDelta::FromSeconds(1));
+  const base::Time kModificationTime(base::Time::Now() - base::Seconds(1));
   const sync_pb::EntitySpecifics specifics =
       GenerateSpecifics(/*title=*/std::string(), /*url=*/std::string());
   bookmarks::BookmarkNode node(kId, base::GUID::GenerateRandomV4(), GURL());
@@ -317,8 +311,7 @@
   const std::string kSyncId = "SYNC_ID";
   const std::string kNewSyncId = "NEW_SYNC_ID";
   const int64_t kServerVersion = 1000;
-  const base::Time kModificationTime(base::Time::Now() -
-                                     base::TimeDelta::FromSeconds(1));
+  const base::Time kModificationTime(base::Time::Now() - base::Seconds(1));
   const sync_pb::EntitySpecifics specifics =
       GenerateSpecifics(/*title=*/std::string(), /*url=*/std::string());
   bookmarks::BookmarkNode node(/*id=*/1, base::GUID::GenerateRandomV4(),
@@ -478,8 +471,7 @@
   const int64_t kId = 1;
   const base::GUID kGuid = base::GUID::GenerateRandomV4();
   const int64_t kServerVersion = 1000;
-  const base::Time kModificationTime(base::Time::Now() -
-                                     base::TimeDelta::FromSeconds(1));
+  const base::Time kModificationTime(base::Time::Now() - base::Seconds(1));
   const sync_pb::EntitySpecifics specifics =
       GenerateSpecifics(/*title=*/std::string(), /*url=*/std::string());
   bookmarks::BookmarkNode node(kId, kGuid, GURL());
@@ -518,8 +510,7 @@
   const int64_t kId = 1;
   const base::GUID kGuid = base::GUID::GenerateRandomV4();
   const int64_t kServerVersion = 1000;
-  const base::Time kModificationTime(base::Time::Now() -
-                                     base::TimeDelta::FromSeconds(1));
+  const base::Time kModificationTime(base::Time::Now() - base::Seconds(1));
   const sync_pb::EntitySpecifics specifics =
       GenerateSpecifics(/*title=*/std::string(), /*url=*/std::string());
   bookmarks::BookmarkNode node(kId, kGuid, GURL());
@@ -887,8 +878,8 @@
   sync_pb::BookmarkModelMetadata model_metadata =
       CreateMetadataForPermanentNodes(model.get());
   // Sync happened 23 hours ago, which is considered recent enough.
-  model_metadata.set_last_sync_time(syncer::TimeToProtoTime(
-      base::Time::Now() - base::TimeDelta::FromHours(23)));
+  model_metadata.set_last_sync_time(
+      syncer::TimeToProtoTime(base::Time::Now() - base::Hours(23)));
 
   sync_pb::BookmarkMetadata* node0_metadata =
       model_metadata.add_bookmarks_metadata();
diff --git a/components/sync_device_info/device_info_prefs.cc b/components/sync_device_info/device_info_prefs.cc
index 147a5f99..b1b8f5a 100644
--- a/components/sync_device_info/device_info_prefs.cc
+++ b/components/sync_device_info/device_info_prefs.cc
@@ -26,8 +26,7 @@
 const char kTimestampKey[] = "timestamp";
 
 // The max time a local device's cached GUIDs will be stored.
-constexpr base::TimeDelta kMaxTimeDeltaLocalCacheGuidsStored =
-    base::TimeDelta::FromDays(10);
+constexpr base::TimeDelta kMaxTimeDeltaLocalCacheGuidsStored = base::Days(10);
 
 // The max number of local device most recent cached GUIDs that will be stored
 // in preferences.
@@ -120,8 +119,8 @@
       return true;
     }
 
-    const base::Time creation_time = base::Time::FromDeltaSinceWindowsEpoch(
-        base::TimeDelta::FromDays(*days_since_epoch));
+    const base::Time creation_time =
+        base::Time::FromDeltaSinceWindowsEpoch(base::Days(*days_since_epoch));
     return creation_time < clock_->Now() - kMaxTimeDeltaLocalCacheGuidsStored;
   });
 }
diff --git a/components/sync_device_info/device_info_prefs_unittest.cc b/components/sync_device_info/device_info_prefs_unittest.cc
index 69d984b..7221ed1 100644
--- a/components/sync_device_info/device_info_prefs_unittest.cc
+++ b/components/sync_device_info/device_info_prefs_unittest.cc
@@ -28,12 +28,10 @@
 };
 
 TEST_F(DeviceInfoPrefsTest, ShouldGarbageCollectExpiredCacheGuids) {
-  const base::TimeDelta kMaxDaysLocalCacheGuidsStored =
-      base::TimeDelta::FromDays(10);
+  const base::TimeDelta kMaxDaysLocalCacheGuidsStored = base::Days(10);
 
   device_info_prefs_.AddLocalCacheGuid("guid1");
-  clock_.Advance(kMaxDaysLocalCacheGuidsStored -
-                 base::TimeDelta::FromMinutes(1));
+  clock_.Advance(kMaxDaysLocalCacheGuidsStored - base::Minutes(1));
   device_info_prefs_.AddLocalCacheGuid("guid2");
 
   // First garbage collection immediately before taking effect, hence a no-op.
@@ -42,7 +40,7 @@
   EXPECT_TRUE(device_info_prefs_.IsRecentLocalCacheGuid("guid2"));
 
   // Advancing one day causes the first GUID to be garbage-collected.
-  clock_.Advance(base::TimeDelta::FromDays(1));
+  clock_.Advance(base::Days(1));
   device_info_prefs_.GarbageCollectExpiredCacheGuids();
   EXPECT_FALSE(device_info_prefs_.IsRecentLocalCacheGuid("guid1"));
   EXPECT_TRUE(device_info_prefs_.IsRecentLocalCacheGuid("guid2"));
diff --git a/components/sync_device_info/device_info_sync_bridge.cc b/components/sync_device_info/device_info_sync_bridge.cc
index e223cbc..0f101cf 100644
--- a/components/sync_device_info/device_info_sync_bridge.cc
+++ b/components/sync_device_info/device_info_sync_bridge.cc
@@ -47,7 +47,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kExpirationThreshold = base::TimeDelta::FromDays(56);
+constexpr base::TimeDelta kExpirationThreshold = base::Days(56);
 
 // Find the timestamp for the last time this |device_info| was edited.
 Time GetLastUpdateTime(const DeviceInfoSpecifics& specifics) {
diff --git a/components/sync_device_info/device_info_sync_bridge_unittest.cc b/components/sync_device_info/device_info_sync_bridge_unittest.cc
index 655aaf8..0bd2ec2 100644
--- a/components/sync_device_info/device_info_sync_bridge_unittest.cc
+++ b/components/sync_device_info/device_info_sync_bridge_unittest.cc
@@ -142,7 +142,7 @@
 MATCHER(HasLastUpdatedAboutNow, "") {
   const sync_pb::DeviceInfoSpecifics& specifics = arg.device_info();
   const base::Time now = base::Time::Now();
-  const base::TimeDelta tolerance = base::TimeDelta::FromMinutes(1);
+  const base::TimeDelta tolerance = base::Minutes(1);
   const base::Time actual_last_updated =
       ProtoTimeToTime(specifics.last_updated_timestamp());
 
@@ -1009,8 +1009,7 @@
   // Now set time to long ago in the past, it should not be active anymore.
   bridge()->ApplySyncChanges(
       bridge()->CreateMetadataChangeList(),
-      EntityAddList({CreateSpecifics(
-          1, base::Time::Now() - base::TimeDelta::FromDays(365))}));
+      EntityAddList({CreateSpecifics(1, base::Time::Now() - base::Days(365))}));
   EXPECT_EQ(1, bridge()->CountActiveDevices());
 }
 
@@ -1025,23 +1024,17 @@
 
   // Time ranges are overlapping.
   ON_CALL(*processor(), GetEntityCreationTime(specifics1.cache_guid()))
-      .WillByDefault(
-          Return(base::Time::UnixEpoch() + base::TimeDelta::FromMinutes(1)));
+      .WillByDefault(Return(base::Time::UnixEpoch() + base::Minutes(1)));
   ON_CALL(*processor(), GetEntityModificationTime(specifics1.cache_guid()))
-      .WillByDefault(
-          Return(base::Time::UnixEpoch() + base::TimeDelta::FromMinutes(3)));
+      .WillByDefault(Return(base::Time::UnixEpoch() + base::Minutes(3)));
   ON_CALL(*processor(), GetEntityCreationTime(specifics2.cache_guid()))
-      .WillByDefault(
-          Return(base::Time::UnixEpoch() + base::TimeDelta::FromMinutes(2)));
+      .WillByDefault(Return(base::Time::UnixEpoch() + base::Minutes(2)));
   ON_CALL(*processor(), GetEntityModificationTime(specifics2.cache_guid()))
-      .WillByDefault(
-          Return(base::Time::UnixEpoch() + base::TimeDelta::FromMinutes(4)));
+      .WillByDefault(Return(base::Time::UnixEpoch() + base::Minutes(4)));
   ON_CALL(*processor(), GetEntityCreationTime(specifics3.cache_guid()))
-      .WillByDefault(
-          Return(base::Time::UnixEpoch() + base::TimeDelta::FromMinutes(2)));
+      .WillByDefault(Return(base::Time::UnixEpoch() + base::Minutes(2)));
   ON_CALL(*processor(), GetEntityModificationTime(specifics3.cache_guid()))
-      .WillByDefault(
-          Return(base::Time::UnixEpoch() + base::TimeDelta::FromMinutes(5)));
+      .WillByDefault(Return(base::Time::UnixEpoch() + base::Minutes(5)));
 
   // With two devices, the local device gets ignored because it doesn't overlap.
   bridge()->ApplySyncChanges(bridge()->CreateMetadataChangeList(),
@@ -1070,23 +1063,17 @@
 
   // Time ranges are non-overlapping.
   ON_CALL(*processor(), GetEntityCreationTime(specifics1.cache_guid()))
-      .WillByDefault(
-          Return(base::Time::UnixEpoch() + base::TimeDelta::FromMinutes(1)));
+      .WillByDefault(Return(base::Time::UnixEpoch() + base::Minutes(1)));
   ON_CALL(*processor(), GetEntityModificationTime(specifics1.cache_guid()))
-      .WillByDefault(
-          Return(base::Time::UnixEpoch() + base::TimeDelta::FromMinutes(2)));
+      .WillByDefault(Return(base::Time::UnixEpoch() + base::Minutes(2)));
   ON_CALL(*processor(), GetEntityCreationTime(specifics2.cache_guid()))
-      .WillByDefault(
-          Return(base::Time::UnixEpoch() + base::TimeDelta::FromMinutes(3)));
+      .WillByDefault(Return(base::Time::UnixEpoch() + base::Minutes(3)));
   ON_CALL(*processor(), GetEntityModificationTime(specifics2.cache_guid()))
-      .WillByDefault(
-          Return(base::Time::UnixEpoch() + base::TimeDelta::FromMinutes(4)));
+      .WillByDefault(Return(base::Time::UnixEpoch() + base::Minutes(4)));
   ON_CALL(*processor(), GetEntityCreationTime(specifics3.cache_guid()))
-      .WillByDefault(
-          Return(base::Time::UnixEpoch() + base::TimeDelta::FromMinutes(5)));
+      .WillByDefault(Return(base::Time::UnixEpoch() + base::Minutes(5)));
   ON_CALL(*processor(), GetEntityModificationTime(specifics3.cache_guid()))
-      .WillByDefault(
-          Return(base::Time::UnixEpoch() + base::TimeDelta::FromMinutes(6)));
+      .WillByDefault(Return(base::Time::UnixEpoch() + base::Minutes(6)));
 
   bridge()->ApplySyncChanges(
       bridge()->CreateMetadataChangeList(),
@@ -1113,23 +1100,17 @@
 
   // Time ranges are non-overlapping.
   ON_CALL(*processor(), GetEntityCreationTime(specifics1.cache_guid()))
-      .WillByDefault(
-          Return(base::Time::UnixEpoch() + base::TimeDelta::FromMinutes(1)));
+      .WillByDefault(Return(base::Time::UnixEpoch() + base::Minutes(1)));
   ON_CALL(*processor(), GetEntityModificationTime(specifics1.cache_guid()))
-      .WillByDefault(
-          Return(base::Time::UnixEpoch() + base::TimeDelta::FromMinutes(2)));
+      .WillByDefault(Return(base::Time::UnixEpoch() + base::Minutes(2)));
   ON_CALL(*processor(), GetEntityCreationTime(specifics2.cache_guid()))
-      .WillByDefault(
-          Return(base::Time::UnixEpoch() + base::TimeDelta::FromMinutes(3)));
+      .WillByDefault(Return(base::Time::UnixEpoch() + base::Minutes(3)));
   ON_CALL(*processor(), GetEntityModificationTime(specifics2.cache_guid()))
-      .WillByDefault(
-          Return(base::Time::UnixEpoch() + base::TimeDelta::FromMinutes(4)));
+      .WillByDefault(Return(base::Time::UnixEpoch() + base::Minutes(4)));
   ON_CALL(*processor(), GetEntityCreationTime(specifics3.cache_guid()))
-      .WillByDefault(
-          Return(base::Time::UnixEpoch() + base::TimeDelta::FromMinutes(5)));
+      .WillByDefault(Return(base::Time::UnixEpoch() + base::Minutes(5)));
   ON_CALL(*processor(), GetEntityModificationTime(specifics3.cache_guid()))
-      .WillByDefault(
-          Return(base::Time::UnixEpoch() + base::TimeDelta::FromMinutes(6)));
+      .WillByDefault(Return(base::Time::UnixEpoch() + base::Minutes(6)));
 
   bridge()->ApplySyncChanges(
       bridge()->CreateMetadataChangeList(),
@@ -1149,17 +1130,13 @@
 
   // Time ranges are overlapping.
   ON_CALL(*processor(), GetEntityCreationTime(specifics1.cache_guid()))
-      .WillByDefault(
-          Return(base::Time::UnixEpoch() + base::TimeDelta::FromMinutes(1)));
+      .WillByDefault(Return(base::Time::UnixEpoch() + base::Minutes(1)));
   ON_CALL(*processor(), GetEntityModificationTime(specifics1.cache_guid()))
-      .WillByDefault(
-          Return(base::Time::UnixEpoch() + base::TimeDelta::FromMinutes(4)));
+      .WillByDefault(Return(base::Time::UnixEpoch() + base::Minutes(4)));
   ON_CALL(*processor(), GetEntityCreationTime(specifics2.cache_guid()))
-      .WillByDefault(
-          Return(base::Time::UnixEpoch() + base::TimeDelta::FromMinutes(3)));
+      .WillByDefault(Return(base::Time::UnixEpoch() + base::Minutes(3)));
   ON_CALL(*processor(), GetEntityModificationTime(specifics2.cache_guid()))
-      .WillByDefault(
-          Return(base::Time::UnixEpoch() + base::TimeDelta::FromMinutes(2)));
+      .WillByDefault(Return(base::Time::UnixEpoch() + base::Minutes(2)));
 
   // With two devices, the local device gets ignored because it doesn't overlap.
   bridge()->ApplySyncChanges(bridge()->CreateMetadataChangeList(),
@@ -1296,9 +1273,9 @@
   ASSERT_FALSE(ReadAllFromStore().empty());
 
   const DeviceInfoSpecifics specifics_old =
-      CreateSpecifics(1, base::Time::Now() - base::TimeDelta::FromDays(57));
+      CreateSpecifics(1, base::Time::Now() - base::Days(57));
   const DeviceInfoSpecifics specifics_fresh =
-      CreateSpecifics(1, base::Time::Now() - base::TimeDelta::FromDays(55));
+      CreateSpecifics(1, base::Time::Now() - base::Days(55));
   auto error = bridge()->ApplySyncChanges(
       bridge()->CreateMetadataChangeList(),
       EntityAddList({specifics_old, specifics_fresh}));
@@ -1719,8 +1696,8 @@
 TEST_F(DeviceInfoSyncBridgeTest, ShouldUploadOutdatedLocalDeviceInfo) {
   // Create an outdated local device info which should be reuploaded during
   // initialization.
-  const DeviceInfoSpecifics specifics = CreateLocalDeviceSpecifics(
-      base::Time::Now() - base::TimeDelta::FromDays(10));
+  const DeviceInfoSpecifics specifics =
+      CreateLocalDeviceSpecifics(base::Time::Now() - base::Days(10));
   const ModelTypeState model_type_state = StateWithEncryption("ekn");
   WriteToStoreWithMetadata({specifics}, model_type_state);
 
diff --git a/components/sync_device_info/device_info_util.cc b/components/sync_device_info/device_info_util.cc
index c6fce8f..4b82761 100644
--- a/components/sync_device_info/device_info_util.cc
+++ b/components/sync_device_info/device_info_util.cc
@@ -14,8 +14,7 @@
 namespace syncer {
 
 const char DeviceInfoUtil::kClientTagPrefix[] = "DeviceInfo_";
-const base::TimeDelta DeviceInfoUtil::kActiveThreshold =
-    base::TimeDelta::FromDays(14);
+const base::TimeDelta DeviceInfoUtil::kActiveThreshold = base::Days(14);
 
 namespace {
 
@@ -37,7 +36,7 @@
 
 // static
 base::TimeDelta DeviceInfoUtil::GetPulseInterval() {
-  return base::TimeDelta::FromMinutes(kPulseIntervalMinutes.Get());
+  return base::Minutes(kPulseIntervalMinutes.Get());
 }
 
 // static
diff --git a/components/sync_device_info/local_device_info_provider_impl_unittest.cc b/components/sync_device_info/local_device_info_provider_impl_unittest.cc
index bc3e514d..6022e8d 100644
--- a/components/sync_device_info/local_device_info_provider_impl_unittest.cc
+++ b/components/sync_device_info/local_device_info_provider_impl_unittest.cc
@@ -272,8 +272,7 @@
   auto device_info_restored_from_store = std::make_unique<DeviceInfo>(
       kLocalDeviceGuid, "name", "chrome_version", "user_agent",
       sync_pb::SyncEnums_DeviceType_TYPE_LINUX, "device_id", "manufacturer",
-      "model", "full_hardware_class", base::Time(),
-      base::TimeDelta::FromDays(1),
+      "model", "full_hardware_class", base::Time(), base::Days(1),
       /*send_tab_to_self_receiving_enabled=*/true,
       /*sharing_info=*/absl::nullopt, paask_info, kFCMRegistrationToken,
       kInterestedDataTypes);
diff --git a/components/sync_sessions/open_tabs_ui_delegate_impl_unittest.cc b/components/sync_sessions/open_tabs_ui_delegate_impl_unittest.cc
index 97092fd..bd63a14 100644
--- a/components/sync_sessions/open_tabs_ui_delegate_impl_unittest.cc
+++ b/components/sync_sessions/open_tabs_ui_delegate_impl_unittest.cc
@@ -61,7 +61,7 @@
   entry1.set_title(u"title1");
   session_tracker_.GetTab(kSessionTag1, kTabId1)->navigations.push_back(entry1);
   session_tracker_.GetSession(kSessionTag1)->modified_time =
-      kTime0 + base::TimeDelta::FromSeconds(3);
+      kTime0 + base::Seconds(3);
 
   session_tracker_.PutWindowInSession(kSessionTag2, kWindowId2);
   session_tracker_.PutTabInWindow(kSessionTag2, kWindowId2, kTabId2);
@@ -71,7 +71,7 @@
   entry2.set_title(u"title2");
   session_tracker_.GetTab(kSessionTag2, kTabId2)->navigations.push_back(entry2);
   session_tracker_.GetSession(kSessionTag2)->modified_time =
-      kTime0 + base::TimeDelta::FromSeconds(1);
+      kTime0 + base::Seconds(1);
 
   session_tracker_.PutWindowInSession(kSessionTag3, kWindowId3);
   session_tracker_.PutTabInWindow(kSessionTag3, kWindowId3, kTabId3);
@@ -81,7 +81,7 @@
   entry3.set_title(u"title3");
   session_tracker_.GetTab(kSessionTag3, kTabId3)->navigations.push_back(entry3);
   session_tracker_.GetSession(kSessionTag3)->modified_time =
-      kTime0 + base::TimeDelta::FromSeconds(2);
+      kTime0 + base::Seconds(2);
 
   std::vector<const SyncedSession*> sessions;
   EXPECT_TRUE(delegate_.GetAllForeignSessions(&sessions));
@@ -102,17 +102,17 @@
   sessions::SessionTab* tab1 = session_tracker_.GetTab(kSessionTag1, kTabId1);
   tab1->navigations.push_back(
       sessions::SerializedNavigationEntryTestHelper::CreateNavigationForTest());
-  tab1->timestamp = kTime0 + base::TimeDelta::FromSeconds(3);
+  tab1->timestamp = kTime0 + base::Seconds(3);
 
   sessions::SessionTab* tab2 = session_tracker_.GetTab(kSessionTag1, kTabId2);
   tab2->navigations.push_back(
       sessions::SerializedNavigationEntryTestHelper::CreateNavigationForTest());
-  tab2->timestamp = kTime0 + base::TimeDelta::FromSeconds(1);
+  tab2->timestamp = kTime0 + base::Seconds(1);
 
   sessions::SessionTab* tab3 = session_tracker_.GetTab(kSessionTag1, kTabId3);
   tab3->navigations.push_back(
       sessions::SerializedNavigationEntryTestHelper::CreateNavigationForTest());
-  tab3->timestamp = kTime0 + base::TimeDelta::FromSeconds(2);
+  tab3->timestamp = kTime0 + base::Seconds(2);
 
   std::vector<const SessionTab*> tabs;
   EXPECT_TRUE(delegate_.GetForeignSessionTabs(kSessionTag1, &tabs));
diff --git a/components/sync_sessions/session_sync_bridge.cc b/components/sync_sessions/session_sync_bridge.cc
index 4af5f47..9d9c824 100644
--- a/components/sync_sessions/session_sync_bridge.cc
+++ b/components/sync_sessions/session_sync_bridge.cc
@@ -39,7 +39,7 @@
 
 // Default time without activity after which a session is considered stale and
 // becomes a candidate for garbage collection.
-const base::TimeDelta kStaleSessionThreshold = base::TimeDelta::FromDays(14);
+const base::TimeDelta kStaleSessionThreshold = base::Days(14);
 
 std::unique_ptr<syncer::EntityData> MoveToEntityData(
     const std::string& client_name,
diff --git a/components/sync_sessions/session_sync_bridge_unittest.cc b/components/sync_sessions/session_sync_bridge_unittest.cc
index f690cb5..7fc4295 100644
--- a/components/sync_sessions/session_sync_bridge_unittest.cc
+++ b/components/sync_sessions/session_sync_bridge_unittest.cc
@@ -1531,10 +1531,8 @@
 TEST_F(SessionSyncBridgeTest, ShouldDoGarbageCollection) {
   // We construct two identical sessions, one modified recently, one modified
   // more than |kStaleSessionThreshold| ago (14 days ago).
-  const base::Time stale_mtime =
-      base::Time::Now() - base::TimeDelta::FromDays(15);
-  const base::Time recent_mtime =
-      base::Time::Now() - base::TimeDelta::FromDays(13);
+  const base::Time stale_mtime = base::Time::Now() - base::Days(15);
+  const base::Time recent_mtime = base::Time::Now() - base::Days(13);
   const std::string kStaleSessionTag = "stalesessiontag";
   const std::string kRecentSessionTag = "recentsessiontag";
   const int kWindowId = 2000001;
diff --git a/components/sync_sessions/synced_session_tracker.cc b/components/sync_sessions/synced_session_tracker.cc
index 3bb7990..42a0de0 100644
--- a/components/sync_sessions/synced_session_tracker.cc
+++ b/components/sync_sessions/synced_session_tracker.cc
@@ -26,7 +26,7 @@
 // due to data not having been committed yet. After that time, the data will
 // be dropped.
 constexpr base::TimeDelta kMaxUnmappedButUnsyncedLocalTabAge =
-    base::TimeDelta::FromMinutes(10);
+    base::Minutes(10);
 // This is a generous cap to avoid issues with situations like sync being in
 // error state (e.g. auth error) during which many tabs could be opened and
 // closed, and still the information would not be committed.
diff --git a/components/sync_sessions/synced_session_tracker_unittest.cc b/components/sync_sessions/synced_session_tracker_unittest.cc
index 9c79901..f6065cbf 100644
--- a/components/sync_sessions/synced_session_tracker_unittest.cc
+++ b/components/sync_sessions/synced_session_tracker_unittest.cc
@@ -555,8 +555,7 @@
   // unsynced.
   tracker_.GetTab(kTag, kTab1)->timestamp = base::Time::Now();
   tracker_.GetTab(kTag, kTab2)->timestamp = base::Time::Now();
-  tracker_.GetTab(kTag, kTab3)->timestamp =
-      base::Time::Now() - base::TimeDelta::FromDays(100);
+  tracker_.GetTab(kTag, kTab3)->timestamp = base::Time::Now() - base::Days(100);
   tracker_.GetTab(kTag, kTab4)->timestamp = base::Time::Now();
 
   // Among the unmapped (closed) ones, |kTab2| and |kTab3| are unsynced.
diff --git a/components/system_media_controls/mac/now_playing_info_center_delegate.mm b/components/system_media_controls/mac/now_playing_info_center_delegate.mm
index 7f73d10..b392a67 100644
--- a/components/system_media_controls/mac/now_playing_info_center_delegate.mm
+++ b/components/system_media_controls/mac/now_playing_info_center_delegate.mm
@@ -85,7 +85,7 @@
 
 void NowPlayingInfoCenterDelegate::StartTimer() {
   timer_->Start(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(100),
+      FROM_HERE, base::Milliseconds(100),
       base::BindOnce(
           &NowPlayingInfoCenterDelegate::UpdatePlaybackStatusAndPosition,
           base::Unretained(this)));
diff --git a/components/system_media_controls/mac/remote_command_center_delegate_cocoa.mm b/components/system_media_controls/mac/remote_command_center_delegate_cocoa.mm
index d05e043..610cacb 100644
--- a/components/system_media_controls/mac/remote_command_center_delegate_cocoa.mm
+++ b/components/system_media_controls/mac/remote_command_center_delegate_cocoa.mm
@@ -70,8 +70,8 @@
   } else if (event.command == commandCenter.changePlaybackPositionCommand) {
     MPChangePlaybackPositionCommandEvent* changePlaybackPositionCommandEvent =
         (MPChangePlaybackPositionCommandEvent*)event;
-    _delegate->OnSeekTo(base::TimeDelta::FromSecondsD(
-        changePlaybackPositionCommandEvent.positionTime));
+    _delegate->OnSeekTo(
+        base::Seconds(changePlaybackPositionCommandEvent.positionTime));
   }
   return MPRemoteCommandHandlerStatusSuccess;
 }
diff --git a/components/translate/content/browser/content_translate_driver.cc b/components/translate/content/browser/content_translate_driver.cc
index ca81e98..cff57b5 100644
--- a/components/translate/content/browser/content_translate_driver.cc
+++ b/components/translate/content/browser/content_translate_driver.cc
@@ -99,7 +99,7 @@
         base::BindOnce(&ContentTranslateDriver::InitiateTranslation,
                        weak_pointer_factory_.GetWeakPtr(), page_lang,
                        attempt + 1),
-        base::TimeDelta::FromMilliseconds(backoff));
+        base::Milliseconds(backoff));
     return;
   }
 
diff --git a/components/translate/content/renderer/per_frame_translate_agent.cc b/components/translate/content/renderer/per_frame_translate_agent.cc
index 76c31c2..89b221d 100644
--- a/components/translate/content/renderer/per_frame_translate_agent.cc
+++ b/components/translate/content/renderer/per_frame_translate_agent.cc
@@ -190,7 +190,7 @@
 base::TimeDelta PerFrameTranslateAgent::AdjustDelay(int delay_in_milliseconds) {
   // Just converts |delay_in_milliseconds| without any modification in practical
   // cases. Tests will override this function to return modified value.
-  return base::TimeDelta::FromMilliseconds(delay_in_milliseconds);
+  return base::Milliseconds(delay_in_milliseconds);
 }
 
 void PerFrameTranslateAgent::ExecuteScript(const std::string& script) {
diff --git a/components/translate/content/renderer/translate_agent.cc b/components/translate/content/renderer/translate_agent.cc
index 5637890..931b9dd8 100644
--- a/components/translate/content/renderer/translate_agent.cc
+++ b/components/translate/content/renderer/translate_agent.cc
@@ -297,7 +297,7 @@
 base::TimeDelta TranslateAgent::AdjustDelay(int delay_in_milliseconds) {
   // Just converts |delay_in_milliseconds| without any modification in practical
   // cases. Tests will override this function to return modified value.
-  return base::TimeDelta::FromMilliseconds(delay_in_milliseconds);
+  return base::Milliseconds(delay_in_milliseconds);
 }
 
 void TranslateAgent::ExecuteScript(const std::string& script) {
diff --git a/components/translate/core/browser/translate_metrics_logger_impl_unittest.cc b/components/translate/core/browser/translate_metrics_logger_impl_unittest.cc
index 55c093d..004b99e 100644
--- a/components/translate/core/browser/translate_metrics_logger_impl_unittest.cc
+++ b/components/translate/core/browser/translate_metrics_logger_impl_unittest.cc
@@ -459,18 +459,15 @@
   // Establish constants for this test.
   base::SimpleTestTickClock test_clock;
 
-  constexpr base::TimeDelta delay1 = base::TimeDelta::FromSeconds(100);
-  constexpr base::TimeDelta delay2 = base::TimeDelta::FromSeconds(200);
-  constexpr base::TimeDelta delay3 = base::TimeDelta::FromSeconds(300);
-  constexpr base::TimeDelta delay4 = base::TimeDelta::FromSeconds(400);
-  constexpr base::TimeDelta delay5 = base::TimeDelta::FromSeconds(500);
+  constexpr base::TimeDelta delay1 = base::Seconds(100);
+  constexpr base::TimeDelta delay2 = base::Seconds(200);
+  constexpr base::TimeDelta delay3 = base::Seconds(300);
+  constexpr base::TimeDelta delay4 = base::Seconds(400);
+  constexpr base::TimeDelta delay5 = base::Seconds(500);
 
-  constexpr base::TimeDelta translation_delay1 =
-      base::TimeDelta::FromSeconds(10);
-  constexpr base::TimeDelta translation_delay2 =
-      base::TimeDelta::FromSeconds(30);
-  constexpr base::TimeDelta translation_delay3 =
-      base::TimeDelta::FromSeconds(20);
+  constexpr base::TimeDelta translation_delay1 = base::Seconds(10);
+  constexpr base::TimeDelta translation_delay2 = base::Seconds(30);
+  constexpr base::TimeDelta translation_delay3 = base::Seconds(20);
 
   const ukm::SourceId ukm_source_id = 4321;
 
@@ -668,7 +665,7 @@
   uint32_t ranker_model_version = 4321;
 
   translate_metrics_logger()->LogRankerStart();
-  test_clock.Advance(base::TimeDelta::FromSeconds(10));
+  test_clock.Advance(base::Seconds(10));
   translate_metrics_logger()->LogRankerFinish();
 
   translate_metrics_logger()->LogRankerMetrics(ranker_decision,
@@ -678,7 +675,7 @@
 
   histogram_tester()->ExpectUniqueSample(
       kTranslatePageLoadRankerTimerShouldOfferTranslation,
-      base::TimeDelta::FromSeconds(10).InMilliseconds(), 1);
+      base::Seconds(10).InMilliseconds(), 1);
   histogram_tester()->ExpectUniqueSample(kTranslatePageLoadRankerDecision,
                                          ranker_decision, 1);
   histogram_tester()->ExpectUniqueSample(kTranslatePageLoadRankerVersion,
@@ -1292,10 +1289,10 @@
 
 TEST_F(TranslateMetricsLoggerImplTest, TrackTimeTranslatedAndNotTranslated) {
   // Set constants for this test.
-  base::TimeDelta delay1 = base::TimeDelta::FromSeconds(100);
-  base::TimeDelta delay2 = base::TimeDelta::FromSeconds(200);
-  base::TimeDelta delay3 = base::TimeDelta::FromSeconds(300);
-  base::TimeDelta delay4 = base::TimeDelta::FromSeconds(400);
+  base::TimeDelta delay1 = base::Seconds(100);
+  base::TimeDelta delay2 = base::Seconds(200);
+  base::TimeDelta delay3 = base::Seconds(300);
+  base::TimeDelta delay4 = base::Seconds(400);
 
   // Setup test clock, so it can be controlled by the test.
   base::SimpleTestTickClock test_clock;
@@ -1335,9 +1332,9 @@
 TEST_F(TranslateMetricsLoggerImplTest,
        TrackTimeTranslatedAndNotTranslated_LongTranslation) {
   // Set constants for this test.
-  base::TimeDelta delay1 = base::TimeDelta::FromSeconds(100);
-  base::TimeDelta delay2 = base::TimeDelta::FromSeconds(200);
-  base::TimeDelta delay3 = base::TimeDelta::FromSeconds(400);
+  base::TimeDelta delay1 = base::Seconds(100);
+  base::TimeDelta delay2 = base::Seconds(200);
+  base::TimeDelta delay3 = base::Seconds(400);
 
   // Setup test clock, so it can be controlled by the test.
   base::SimpleTestTickClock test_clock;
@@ -1441,8 +1438,8 @@
   // Set constants for this test.
   base::SimpleTestTickClock test_clock;
 
-  constexpr base::TimeDelta default_delay = base::TimeDelta::FromSeconds(100);
-  constexpr base::TimeDelta zero_delay = base::TimeDelta::FromSeconds(0);
+  constexpr base::TimeDelta default_delay = base::Seconds(100);
+  constexpr base::TimeDelta zero_delay = base::Seconds(0);
 
   // Simulate sucessfully translating a page.
   translate_metrics_logger()->SetInternalClockForTesting(&test_clock);
@@ -1494,11 +1491,11 @@
     base::TimeDelta time_to_translate;
     TranslateErrors::Type translate_error_type;
   } kTests[] = {
-      {base::TimeDelta::FromSeconds(100), TranslateErrors::NONE},
-      {base::TimeDelta::FromSeconds(200), TranslateErrors::NETWORK},
-      {base::TimeDelta::FromSeconds(400), TranslateErrors::NONE},
-      {base::TimeDelta::FromSeconds(500), TranslateErrors::NETWORK},
-      {base::TimeDelta::FromSeconds(300), TranslateErrors::NONE},
+      {base::Seconds(100), TranslateErrors::NONE},
+      {base::Seconds(200), TranslateErrors::NETWORK},
+      {base::Seconds(400), TranslateErrors::NONE},
+      {base::Seconds(500), TranslateErrors::NETWORK},
+      {base::Seconds(300), TranslateErrors::NONE},
   };
 
   for (const auto& test : kTests) {
@@ -1513,7 +1510,7 @@
 
   translate_metrics_logger()->RecordMetrics(true);
 
-  CheckMaxTimeToTranslate(base::TimeDelta::FromSeconds(400));
+  CheckMaxTimeToTranslate(base::Seconds(400));
 }
 
 TEST_F(TranslateMetricsLoggerImplTest, LogUIInteraction) {
diff --git a/components/translate/core/browser/translate_prefs_unittest.cc b/components/translate/core/browser/translate_prefs_unittest.cc
index 05efca59..dec4eca 100644
--- a/components/translate/core/browser/translate_prefs_unittest.cc
+++ b/components/translate/core/browser/translate_prefs_unittest.cc
@@ -64,7 +64,7 @@
     accept_languages_tester_ =
         std::make_unique<language::test::LanguagePrefTester>(&prefs_);
     now_ = base::Time::Now();
-    two_days_ago_ = now_ - base::TimeDelta::FromDays(2);
+    two_days_ago_ = now_ - base::Days(2);
   }
 
   void SetUp() override {
@@ -950,10 +950,9 @@
 
   // Now migrate and fix the prefs.
   translate_prefs_->MigrateNeverPromptSites();
-  EXPECT_THAT(
-      translate_prefs_->GetNeverPromptSitesBetween(
-          base::Time::Now() - base::TimeDelta::FromDays(1), base::Time::Max()),
-      ElementsAre("migratedWrong.com", "unmigrated.com"));
+  EXPECT_THAT(translate_prefs_->GetNeverPromptSitesBetween(
+                  base::Time::Now() - base::Days(1), base::Time::Max()),
+              ElementsAre("migratedWrong.com", "unmigrated.com"));
   EXPECT_EQ(prefs_.Get(TranslatePrefs::kPrefNeverPromptSitesDeprecated)
                 ->GetList()
                 .size(),
diff --git a/components/translate/core/browser/translate_script.cc b/components/translate/core/browser/translate_script.cc
index 8414fbb..48884ee0 100644
--- a/components/translate/core/browser/translate_script.cc
+++ b/components/translate/core/browser/translate_script.cc
@@ -50,7 +50,7 @@
     "cr.googleTranslate.onLoadJavascript";
 
 TranslateScript::TranslateScript()
-    : expiration_delay_(base::TimeDelta::FromDays(kExpirationDelayDays)) {}
+    : expiration_delay_(base::Days(kExpirationDelayDays)) {}
 
 TranslateScript::~TranslateScript() {}
 
diff --git a/components/translate/core/browser/translate_script.h b/components/translate/core/browser/translate_script.h
index 20b6085..96311a3c 100644
--- a/components/translate/core/browser/translate_script.h
+++ b/components/translate/core/browser/translate_script.h
@@ -40,7 +40,7 @@
   // Delay after which the translate script is fetched again from the
   // translation server.
   void set_expiration_delay(int delay_ms) {
-    expiration_delay_ = base::TimeDelta::FromMilliseconds(delay_ms);
+    expiration_delay_ = base::Milliseconds(delay_ms);
   }
 
   // Clears the translate script, so it will be fetched next time we translate.
diff --git a/components/translate/core/common/translate_metrics.cc b/components/translate/core/common/translate_metrics.cc
index 3b9d71b..7945278 100644
--- a/components/translate/core/common/translate_metrics.cc
+++ b/components/translate/core/common/translate_metrics.cc
@@ -41,21 +41,21 @@
 }
 
 void ReportTimeToBeReady(double time_in_msec) {
-  UMA_HISTOGRAM_MEDIUM_TIMES(metrics_internal::kTranslateTimeToBeReady,
-                             base::TimeDelta::FromMicroseconds(
-                                 static_cast<int64_t>(time_in_msec * 1000.0)));
+  UMA_HISTOGRAM_MEDIUM_TIMES(
+      metrics_internal::kTranslateTimeToBeReady,
+      base::Microseconds(static_cast<int64_t>(time_in_msec * 1000.0)));
 }
 
 void ReportTimeToLoad(double time_in_msec) {
-  UMA_HISTOGRAM_MEDIUM_TIMES(metrics_internal::kTranslateTimeToLoad,
-                             base::TimeDelta::FromMicroseconds(
-                                 static_cast<int64_t>(time_in_msec * 1000.0)));
+  UMA_HISTOGRAM_MEDIUM_TIMES(
+      metrics_internal::kTranslateTimeToLoad,
+      base::Microseconds(static_cast<int64_t>(time_in_msec * 1000.0)));
 }
 
 void ReportTimeToTranslate(double time_in_msec) {
-  UMA_HISTOGRAM_MEDIUM_TIMES(metrics_internal::kTranslateTimeToTranslate,
-                             base::TimeDelta::FromMicroseconds(
-                                 static_cast<int64_t>(time_in_msec * 1000.0)));
+  UMA_HISTOGRAM_MEDIUM_TIMES(
+      metrics_internal::kTranslateTimeToTranslate,
+      base::Microseconds(static_cast<int64_t>(time_in_msec * 1000.0)));
 }
 
 void ReportUserActionDuration(base::TimeTicks begin, base::TimeTicks end) {
diff --git a/components/translate/core/common/translate_metrics_unittest.cc b/components/translate/core/common/translate_metrics_unittest.cc
index ac38f41..823b38d 100644
--- a/components/translate/core/common/translate_metrics_unittest.cc
+++ b/components/translate/core/common/translate_metrics_unittest.cc
@@ -182,7 +182,7 @@
   MetricsRecorder recorder(metrics_internal::kTranslateUserActionDuration);
   recorder.CheckTotalCount(0);
   TimeTicks begin = TimeTicks::Now();
-  TimeTicks end = begin + base::TimeDelta::FromSeconds(3776);
+  TimeTicks end = begin + base::Seconds(3776);
   ReportUserActionDuration(begin, end);
   recorder.CheckValueInLogs(3776000.0);
   recorder.CheckTotalCount(1);
diff --git a/components/translate/ios/browser/language_detection_controller.mm b/components/translate/ios/browser/language_detection_controller.mm
index f27d098..93e77be 100644
--- a/components/translate/ios/browser/language_detection_controller.mm
+++ b/components/translate/ios/browser/language_detection_controller.mm
@@ -106,7 +106,7 @@
   }
 
   UMA_HISTOGRAM_TIMES(kTranslateCaptureText,
-                      base::TimeDelta::FromMillisecondsD(*capture_text_time));
+                      base::Milliseconds(*capture_text_time));
 
   // If there is no language defined in httpEquiv, use the HTTP header.
   if (http_content_language->empty())
@@ -117,8 +117,7 @@
       base::BindRepeating(&LanguageDetectionController::OnTextRetrieved,
                           weak_method_factory_.GetWeakPtr(), *has_notranslate,
                           *http_content_language, *html_lang, url),
-      base::TimeDelta::FromMilliseconds(
-          web::kJavaScriptFunctionCallDefaultTimeout));
+      base::Milliseconds(web::kJavaScriptFunctionCallDefaultTimeout));
 }
 
 void LanguageDetectionController::OnTextRetrieved(
diff --git a/components/ui_devtools/tracing_agent.cc b/components/ui_devtools/tracing_agent.cc
index c5ca72b..d5fb365 100644
--- a/components/ui_devtools/tracing_agent.cc
+++ b/components/ui_devtools/tracing_agent.cc
@@ -463,7 +463,7 @@
     usage_reporting_interval = kMinimumReportingInterval;
 
   base::TimeDelta interval =
-      base::TimeDelta::FromMilliseconds(std::ceil(usage_reporting_interval));
+      base::Milliseconds(std::ceil(usage_reporting_interval));
   buffer_usage_poll_timer_ = std::make_unique<base::RepeatingTimer>();
   buffer_usage_poll_timer_->Start(
       FROM_HERE, interval,
diff --git a/components/ukm/observers/ukm_consent_state_observer_unittest.cc b/components/ukm/observers/ukm_consent_state_observer_unittest.cc
index dd39b19..1e3157f 100644
--- a/components/ukm/observers/ukm_consent_state_observer_unittest.cc
+++ b/components/ukm/observers/ukm_consent_state_observer_unittest.cc
@@ -46,8 +46,7 @@
         0, true, 0, base::Time::Now(), base::Time::Now(),
         std::vector<int>(syncer::GetNumModelTypes(), 0),
         std::vector<int>(syncer::GetNumModelTypes(), 0),
-        sync_pb::SyncEnums::UNKNOWN_ORIGIN, base::TimeDelta::FromMinutes(1),
-        false));
+        sync_pb::SyncEnums::UNKNOWN_ORIGIN, base::Minutes(1), false));
 
     NotifyObserversOfStateChanged();
   }
diff --git a/components/ukm/ukm_service_unittest.cc b/components/ukm/ukm_service_unittest.cc
index e27e5474..76fffed 100644
--- a/components/ukm/ukm_service_unittest.cc
+++ b/components/ukm/ukm_service_unittest.cc
@@ -993,7 +993,7 @@
       // ensures each source has a unique timestamp to avoid flakes. Should take
       // between 1-15ms per documented resolution of base::TimeTicks.
       while (base::TimeTicks::Now() == last_time) {
-        base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(1));
+        base::PlatformThread::Sleep(base::Milliseconds(1));
       }
 
       ids.push_back(GetNonWhitelistedSourceId(i));
diff --git a/components/update_client/background_downloader_win.cc b/components/update_client/background_downloader_win.cc
index 2549c49..35f83ec 100644
--- a/components/update_client/background_downloader_win.cc
+++ b/components/update_client/background_downloader_win.cc
@@ -336,7 +336,7 @@
   if (FAILED(hr))
     return false;
 
-  const base::TimeDelta time_delta(base::TimeDelta::FromDays(num_days));
+  const base::TimeDelta time_delta(base::Days(num_days));
   const base::Time creation_time(base::Time::FromFileTime(times.CreationTime));
 
   return creation_time + time_delta < base::Time::Now();
@@ -411,8 +411,8 @@
 void BackgroundDownloader::StartTimer() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   timer_ = std::make_unique<base::OneShotTimer>();
-  timer_->Start(FROM_HERE, base::TimeDelta::FromSeconds(kJobPollingIntervalSec),
-                this, &BackgroundDownloader::OnTimer);
+  timer_->Start(FROM_HERE, base::Seconds(kJobPollingIntervalSec), this,
+                &BackgroundDownloader::OnTimer);
 }
 
 void BackgroundDownloader::OnTimer() {
@@ -770,8 +770,7 @@
 }
 
 bool BackgroundDownloader::IsStuck() {
-  const base::TimeDelta job_stuck_timeout(
-      base::TimeDelta::FromMinutes(kJobStuckTimeoutMin));
+  const base::TimeDelta job_stuck_timeout(base::Minutes(kJobStuckTimeoutMin));
   return job_stuck_begin_time_ + job_stuck_timeout < base::TimeTicks::Now();
 }
 
@@ -878,7 +877,7 @@
   static base::Time last_sweep;
 
   const base::TimeDelta time_delta(
-      base::TimeDelta::FromDays(kPurgeStaleJobsIntervalBetweenChecksDays));
+      base::Days(kPurgeStaleJobsIntervalBetweenChecksDays));
   const base::Time current_time(base::Time::Now());
   if (last_sweep + time_delta > current_time)
     return;
diff --git a/components/update_client/component.cc b/components/update_client/component.cc
index 4d7f92ef..ab28142 100644
--- a/components/update_client/component.cc
+++ b/components/update_client/component.cc
@@ -427,7 +427,7 @@
   const base::TimeDelta update_cost(base::TimeTicks::Now() - update_begin_);
   DCHECK_GE(update_cost, base::TimeDelta());
   const base::TimeDelta max_update_delay =
-      base::TimeDelta::FromSeconds(update_context_.config->UpdateDelay());
+      base::Seconds(update_context_.config->UpdateDelay());
   return std::min(update_cost, max_update_delay);
 }
 
diff --git a/components/update_client/update_engine.cc b/components/update_client/update_engine.cc
index 1e507ff..c01a229 100644
--- a/components/update_client/update_engine.cc
+++ b/components/update_client/update_engine.cc
@@ -184,8 +184,7 @@
       std::min(update_context->retry_after_sec, kMaxRetryAfterSec);
   if (throttle_sec >= 0) {
     throttle_updates_until_ =
-        throttle_sec ? base::TimeTicks::Now() +
-                           base::TimeDelta::FromSeconds(throttle_sec)
+        throttle_sec ? base::TimeTicks::Now() + base::Seconds(throttle_sec)
                      : base::TimeTicks();
   }
 
@@ -372,7 +371,7 @@
 
   // Throttle the calls in the interval (t - 1 day, t) to limit the effect of
   // unset clocks or clock drift.
-  return throttle_updates_until_ - base::TimeDelta::FromDays(1) < now &&
+  return throttle_updates_until_ - base::Days(1) < now &&
          now < throttle_updates_until_;
 }
 
diff --git a/components/update_client/updater_state.cc b/components/update_client/updater_state.cc
index da41477..b44a6258 100644
--- a/components/update_client/updater_state.cc
+++ b/components/update_client/updater_state.cc
@@ -83,8 +83,8 @@
 }
 
 std::string UpdaterState::NormalizeTimeDelta(const base::TimeDelta& delta) {
-  const base::TimeDelta two_weeks = base::TimeDelta::FromDays(14);
-  const base::TimeDelta two_months = base::TimeDelta::FromDays(56);
+  const base::TimeDelta two_weeks = base::Days(14);
+  const base::TimeDelta two_months = base::Days(56);
 
   std::string val;  // Contains the value to return in hours.
   if (delta <= two_weeks) {
diff --git a/components/update_client/updater_state_unittest.cc b/components/update_client/updater_state_unittest.cc
index 2abf6ad..0905d71c 100644
--- a/components/update_client/updater_state_unittest.cc
+++ b/components/update_client/updater_state_unittest.cc
@@ -74,17 +74,17 @@
   EXPECT_STREQ("0.0.0.0", attributes.at("version").c_str());
 
   updater_state.last_autoupdate_started_ =
-      base::Time::NowFromSystemTime() - base::TimeDelta::FromDays(15);
+      base::Time::NowFromSystemTime() - base::Days(15);
   attributes = updater_state.BuildAttributes();
   EXPECT_STREQ("336", attributes.at("laststarted").c_str());
 
   updater_state.last_autoupdate_started_ =
-      base::Time::NowFromSystemTime() - base::TimeDelta::FromDays(58);
+      base::Time::NowFromSystemTime() - base::Days(58);
   attributes = updater_state.BuildAttributes();
   EXPECT_STREQ("1344", attributes.at("laststarted").c_str());
 
   updater_state.last_autoupdate_started_ =
-      base::Time::NowFromSystemTime() - base::TimeDelta::FromDays(90);
+      base::Time::NowFromSystemTime() - base::Days(90);
   attributes = updater_state.BuildAttributes();
   EXPECT_STREQ("1344", attributes.at("laststarted").c_str());
 
@@ -94,12 +94,12 @@
   EXPECT_EQ(0u, attributes.count("laststarted"));
 
   updater_state.last_checked_ =
-      base::Time::NowFromSystemTime() - base::TimeDelta::FromDays(15);
+      base::Time::NowFromSystemTime() - base::Days(15);
   attributes = updater_state.BuildAttributes();
   EXPECT_STREQ("336", attributes.at("lastchecked").c_str());
 
   updater_state.last_checked_ =
-      base::Time::NowFromSystemTime() - base::TimeDelta::FromDays(90);
+      base::Time::NowFromSystemTime() - base::Days(90);
   attributes = updater_state.BuildAttributes();
   EXPECT_STREQ("1344", attributes.at("lastchecked").c_str());
 
diff --git a/components/user_manager/known_user_unittest.cc b/components/user_manager/known_user_unittest.cc
index 31fc0f4..7f4765e5 100644
--- a/components/user_manager/known_user_unittest.cc
+++ b/components/user_manager/known_user_unittest.cc
@@ -529,7 +529,7 @@
   KnownUser known_user(local_state());
   EXPECT_FALSE(known_user.GetOfflineSigninLimit(kDefaultAccountId).has_value());
 
-  base::TimeDelta offline_signin_limit = base::TimeDelta::FromMinutes(80);
+  base::TimeDelta offline_signin_limit = base::Minutes(80);
   known_user.SetOfflineSigninLimit(kDefaultAccountId, offline_signin_limit);
 
   EXPECT_EQ(known_user.GetOfflineSigninLimit(kDefaultAccountId).value(),
@@ -687,7 +687,7 @@
                                 base::Value(true));
   }
 
-  const base::TimeDelta kLegitValue = base::TimeDelta::FromDays(14);
+  const base::TimeDelta kLegitValue = base::Days(14);
   known_user.SetPref(kDefaultAccountId2, kDeprecatedPrefName,
                      base::TimeDeltaToValue(kLegitValue));
 
diff --git a/components/variations/service/safe_seed_manager_unittest.cc b/components/variations/service/safe_seed_manager_unittest.cc
index 4e61717..bb2c5b3 100644
--- a/components/variations/service/safe_seed_manager_unittest.cc
+++ b/components/variations/service/safe_seed_manager_unittest.cc
@@ -29,7 +29,7 @@
 const char kTestSessionConsistencyCountry[] = "CA";
 
 base::Time GetTestFetchTime() {
-  return base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromDays(123));
+  return base::Time::FromDeltaSinceWindowsEpoch(base::Days(123));
 }
 
 // A simple fake data store.
diff --git a/components/variations/service/variations_field_trial_creator.cc b/components/variations/service/variations_field_trial_creator.cc
index 3463a30..30d8b8a 100644
--- a/components/variations/service/variations_field_trial_creator.cc
+++ b/components/variations/service/variations_field_trial_creator.cc
@@ -94,7 +94,7 @@
 // Records the loaded seed's age.
 void RecordSeedFreshness(base::TimeDelta seed_age) {
   UMA_HISTOGRAM_CUSTOM_COUNTS("Variations.SeedFreshness", seed_age.InMinutes(),
-                              1, base::TimeDelta::FromDays(30).InMinutes(), 50);
+                              1, base::Days(30).InMinutes(), 50);
 }
 
 // Records details about Chrome's attempt to apply a variations seed.
diff --git a/components/variations/service/variations_field_trial_creator_unittest.cc b/components/variations/service/variations_field_trial_creator_unittest.cc
index f7c0fd1..068c332 100644
--- a/components/variations/service/variations_field_trial_creator_unittest.cc
+++ b/components/variations/service/variations_field_trial_creator_unittest.cc
@@ -453,11 +453,10 @@
       {.days = 30, .binary_build_time = now},
       // Verify that when the binary is older than the most recent seed, the
       // seed is applied even though it was downloaded more than 30 days ago.
-      {.days = 31, .binary_build_time = now - base::TimeDelta::FromDays(32)}};
+      {.days = 31, .binary_build_time = now - base::Days(32)}};
 
   for (const TestParams& test_case : test_cases) {
-    const base::Time seed_fetch_time =
-        now - base::TimeDelta::FromDays(test_case.days);
+    const base::Time seed_fetch_time = now - base::Days(test_case.days);
     // The seed should be used, so the safe seed manager should be informed of
     // the active seed state.
     NiceMock<MockSafeSeedManager> safe_seed_manager(&prefs_);
@@ -555,7 +554,7 @@
 
   // Simulate an expired seed. For a seed to be expired, it must be older than
   // 30 days and be older than the binary.
-  const base::Time seed_date = now - base::TimeDelta::FromDays(31);
+  const base::Time seed_date = now - base::Days(31);
   prefs_.SetTime(prefs::kVariationsLastFetchTime, seed_date);
 
   // Check that field trials are not created from the expired seed.
@@ -586,7 +585,7 @@
       // Verify that when (i) safe mode is triggered and (ii) the binary is
       // older than the safe seed, the safe seed is applied even though it was
       // downloaded more than 30 days ago.
-      {.days = 31, .binary_build_time = now - base::TimeDelta::FromDays(32)}};
+      {.days = 31, .binary_build_time = now - base::Days(32)}};
 
   for (const TestParams& test_case : test_cases) {
     // With a valid safe seed, the safe seed manager should not be informed of
@@ -603,8 +602,7 @@
     field_trial_creator.SetBuildTime(test_case.binary_build_time);
 
     // Simulate the safe seed being stored.
-    const base::Time seed_fetch_time =
-        now - base::TimeDelta::FromDays(test_case.days);
+    const base::Time seed_fetch_time = now - base::Days(test_case.days);
     prefs_.SetTime(prefs::kVariationsSafeSeedFetchTime, seed_fetch_time);
 
     // Check that field trials are created from the safe seed. Since the test
@@ -637,8 +635,7 @@
   NiceMock<MockSafeSeedManager> safe_seed_manager(&prefs_);
   ON_CALL(safe_seed_manager, ShouldRunInSafeMode()).WillByDefault(Return(true));
 
-  const base::Time recent_time =
-      base::Time::Now() - base::TimeDelta::FromMinutes(17);
+  const base::Time recent_time = base::Time::Now() - base::Minutes(17);
   prefs_.SetTime(prefs::kVariationsLastFetchTime, recent_time);
   // When using the regular seed, the safe seed manager should be informed of
   // the active seed state.
@@ -754,7 +751,7 @@
 
   // Simulate an expired seed. For a seed to be expired, it must be older than
   // 30 days and be older than the binary.
-  const base::Time seed_date = now - base::TimeDelta::FromDays(31);
+  const base::Time seed_date = now - base::Days(31);
   prefs_.SetTime(prefs::kVariationsSafeSeedFetchTime, seed_date);
 
   // Check that field trials are not created from the expired seed.
@@ -778,8 +775,7 @@
   DisableTestingConfig();
 
   // Simulate having received a seed in Java during First Run.
-  const base::Time one_day_ago =
-      base::Time::Now() - base::TimeDelta::FromDays(1);
+  const base::Time one_day_ago = base::Time::Now() - base::Days(1);
   auto initial_seed = std::make_unique<SeedResponse>();
   initial_seed->data = SerializeSeed(CreateTestSeedWithCountryFilter());
   initial_seed->signature = kTestSeedSignature;
diff --git a/components/variations/service/variations_service.cc b/components/variations/service/variations_service.cc
index 8d507809..6173c8e 100644
--- a/components/variations/service/variations_service.cc
+++ b/components/variations/service/variations_service.cc
@@ -673,7 +673,7 @@
     time_since_last_fetch = now - last_request_started_time_;
   UMA_HISTOGRAM_CUSTOM_COUNTS("Variations.TimeSinceLastFetchAttempt",
                               time_since_last_fetch.InMinutes(), 1,
-                              base::TimeDelta::FromDays(7).InMinutes(), 50);
+                              base::Days(7).InMinutes(), 50);
   UMA_HISTOGRAM_COUNTS_100("Variations.RequestCount", request_count_);
   ++request_count_;
   last_request_started_time_ = now;
@@ -830,8 +830,7 @@
     const base::TimeTicks now = base::TimeTicks::Now();
     const base::TimeDelta latency = now - last_request_started_time_;
     client_->GetNetworkTimeTracker()->UpdateNetworkTime(
-        response_date,
-        base::TimeDelta::FromSeconds(kServerTimeResolutionInSeconds), latency,
+        response_date, base::Seconds(kServerTimeResolutionInSeconds), latency,
         now);
   }
 
diff --git a/components/variations/study_filtering.cc b/components/variations/study_filtering.cc
index 19376c30..8d6e78b 100644
--- a/components/variations/study_filtering.cc
+++ b/components/variations/study_filtering.cc
@@ -19,7 +19,7 @@
 
 // Converts |date_time| in Study date format to base::Time.
 base::Time ConvertStudyDateToBaseTime(int64_t date_time) {
-  return base::Time::UnixEpoch() + base::TimeDelta::FromSeconds(date_time);
+  return base::Time::UnixEpoch() + base::Seconds(date_time);
 }
 
 // Similar to base::Contains(), but specifically for ASCII strings and
diff --git a/components/variations/study_filtering_unittest.cc b/components/variations/study_filtering_unittest.cc
index 4212ff7..d0e14069 100644
--- a/components/variations/study_filtering_unittest.cc
+++ b/components/variations/study_filtering_unittest.cc
@@ -347,7 +347,7 @@
 
 TEST(VariationsStudyFilteringTest, CheckStudyStartDate) {
   const base::Time now = base::Time::Now();
-  const base::TimeDelta delta = base::TimeDelta::FromHours(1);
+  const base::TimeDelta delta = base::Hours(1);
   const struct {
     const base::Time start_date;
     bool expected_result;
@@ -374,7 +374,7 @@
 
 TEST(VariationsStudyFilteringTest, CheckStudyEndDate) {
   const base::Time now = base::Time::Now();
-  const base::TimeDelta delta = base::TimeDelta::FromHours(1);
+  const base::TimeDelta delta = base::Hours(1);
   const struct {
     const base::Time end_date;
     bool expected_result;
@@ -901,7 +901,7 @@
 
 TEST(VariationsStudyFilteringTest, IsStudyExpired) {
   const base::Time now = base::Time::Now();
-  const base::TimeDelta delta = base::TimeDelta::FromHours(1);
+  const base::TimeDelta delta = base::Hours(1);
   const struct {
     const base::Time expiry_date;
     bool expected_result;
diff --git a/components/variations/synthetic_trial_registry_unittest.cc b/components/variations/synthetic_trial_registry_unittest.cc
index c1385ff..d786e10 100644
--- a/components/variations/synthetic_trial_registry_unittest.cc
+++ b/components/variations/synthetic_trial_registry_unittest.cc
@@ -47,7 +47,7 @@
   // take between 1-15ms per the documented resolution of base::TimeTicks.
   void WaitUntilTimeChanges(const base::TimeTicks& value) {
     while (base::TimeTicks::Now() == value) {
-      base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(1));
+      base::PlatformThread::Sleep(base::Milliseconds(1));
     }
   }
 
diff --git a/components/variations/variations_request_scheduler.cc b/components/variations/variations_request_scheduler.cc
index 151f440d..30a3abe3 100644
--- a/components/variations/variations_request_scheduler.cc
+++ b/components/variations/variations_request_scheduler.cc
@@ -35,8 +35,7 @@
   Reset();
   // The delay before attempting a fetch shortly, in minutes.
   const int kFetchShortlyDelayMinutes = 5;
-  one_shot_timer_.Start(FROM_HERE,
-                        base::TimeDelta::FromMinutes(kFetchShortlyDelayMinutes),
+  one_shot_timer_.Start(FROM_HERE, base::Minutes(kFetchShortlyDelayMinutes),
                         task_);
 }
 
@@ -50,10 +49,10 @@
       GetVariationParamValue("VariationsServiceControl", "fetch_period_min");
   size_t period_min;
   if (base::StringToSizeT(period_min_str, &period_min))
-    return base::TimeDelta::FromMinutes(period_min);
+    return base::Minutes(period_min);
 
   // The default fetch interval is every 30 minutes.
-  return base::TimeDelta::FromMinutes(30);
+  return base::Minutes(30);
 }
 
 base::RepeatingClosure VariationsRequestScheduler::task() const {
diff --git a/components/variations/variations_request_scheduler_mobile.cc b/components/variations/variations_request_scheduler_mobile.cc
index d0f350a..b33d3cd 100644
--- a/components/variations/variations_request_scheduler_mobile.cc
+++ b/components/variations/variations_request_scheduler_mobile.cc
@@ -50,11 +50,9 @@
   // Since Start() launches a one-off execution, we can reuse it here. Also
   // note that since Start() verifies that the seed needs to be refreshed, we
   // do not verify here.
-  schedule_fetch_timer_.Start(
-      FROM_HERE,
-      base::TimeDelta::FromSeconds(kScheduleFetchDelaySeconds),
-      this,
-      &VariationsRequestSchedulerMobile::Start);
+  schedule_fetch_timer_.Start(FROM_HERE,
+                              base::Seconds(kScheduleFetchDelaySeconds), this,
+                              &VariationsRequestSchedulerMobile::Start);
 }
 
 // static
diff --git a/components/variations/variations_request_scheduler_mobile_unittest.cc b/components/variations/variations_request_scheduler_mobile_unittest.cc
index 9482572..a5a74af 100644
--- a/components/variations/variations_request_scheduler_mobile_unittest.cc
+++ b/components/variations/variations_request_scheduler_mobile_unittest.cc
@@ -39,7 +39,7 @@
 TEST(VariationsRequestSchedulerMobileTest, StartRun) {
   TestingPrefServiceSimple prefs;
   // Verify it doesn't take more than a day.
-  base::Time old = base::Time::Now() - base::TimeDelta::FromHours(24);
+  base::Time old = base::Time::Now() - base::Hours(24);
   prefs.registry()->RegisterTimePref(prefs::kVariationsLastFetchTime, old);
   int executed = 0;
   const base::RepeatingClosure task =
@@ -83,7 +83,7 @@
 
   TestingPrefServiceSimple prefs;
 
-  base::Time old = base::Time::Now() - base::TimeDelta::FromHours(24);
+  base::Time old = base::Time::Now() - base::Hours(24);
   prefs.registry()->RegisterTimePref(prefs::kVariationsLastFetchTime, old);
   int executed = 0;
   const base::RepeatingClosure task =
@@ -110,7 +110,7 @@
 
   TestingPrefServiceSimple prefs;
 
-  base::Time old = base::Time::Now() - base::TimeDelta::FromHours(24);
+  base::Time old = base::Time::Now() - base::Hours(24);
   prefs.registry()->RegisterTimePref(prefs::kVariationsLastFetchTime, old);
   int executed = 0;
   const base::RepeatingClosure task =
@@ -132,10 +132,9 @@
   // Simulate letting time pass.
   const base::Time last_fetch_time =
       prefs.GetTime(prefs::kVariationsLastFetchTime);
-  const base::Time one_day_earlier =
-      last_fetch_time - base::TimeDelta::FromHours(24);
+  const base::Time one_day_earlier = last_fetch_time - base::Hours(24);
   prefs.SetTime(prefs::kVariationsLastFetchTime, one_day_earlier);
-  scheduler.last_request_time_ -= base::TimeDelta::FromHours(24);
+  scheduler.last_request_time_ -= base::Hours(24);
 
   scheduler.OnAppEnterForeground();
   EXPECT_TRUE(scheduler.schedule_fetch_timer_.IsRunning());
diff --git a/components/variations/variations_seed_processor_unittest.cc b/components/variations/variations_seed_processor_unittest.cc
index 722e5ddf..567f55f 100644
--- a/components/variations/variations_seed_processor_unittest.cc
+++ b/components/variations/variations_seed_processor_unittest.cc
@@ -292,8 +292,7 @@
   *study2 = *study1;
   ASSERT_EQ(seed.study(0).name(), seed.study(1).name());
 
-  const base::Time year_ago =
-      base::Time::Now() - base::TimeDelta::FromDays(365);
+  const base::Time year_ago = base::Time::Now() - base::Days(365);
 
   ClientFilterableState client_state(base::BindOnce([] { return false; }));
   client_state.locale = "en-CA";
@@ -852,8 +851,8 @@
     "kEnabledFeature", base::FEATURE_ENABLED_BY_DEFAULT
   };
   const base::Time now = base::Time::Now();
-  const base::Time year_ago = now - base::TimeDelta::FromDays(365);
-  const base::Time year_later = now + base::TimeDelta::FromDays(365);
+  const base::Time year_ago = now - base::Days(365);
+  const base::Time year_later = now + base::Days(365);
 
   struct {
     const base::Feature& feature;
@@ -938,8 +937,7 @@
 
   Study study;
   study.set_name("Study1");
-  const base::Time year_ago =
-      base::Time::Now() - base::TimeDelta::FromDays(365);
+  const base::Time year_ago = base::Time::Now() - base::Days(365);
   study.set_expiry_date(TimeToProtoTime(year_ago));
   auto* exp1 = AddExperiment("A", 1, &study);
   exp1->mutable_feature_association()->add_enable_feature(kFeature.name);
@@ -963,8 +961,7 @@
   // that happens.
   Study study;
   study.set_name("Study1");
-  const base::Time year_ago =
-      base::Time::Now() - base::TimeDelta::FromDays(365);
+  const base::Time year_ago = base::Time::Now() - base::Days(365);
   study.set_expiry_date(TimeToProtoTime(year_ago));
   auto* exp1 = AddExperiment("A", 1, &study);
   exp1->mutable_feature_association()->add_enable_feature(kFeature.name);
diff --git a/components/variations/variations_seed_simulator_unittest.cc b/components/variations/variations_seed_simulator_unittest.cc
index 681e9adf..4284022 100644
--- a/components/variations/variations_seed_simulator_unittest.cc
+++ b/components/variations/variations_seed_simulator_unittest.cc
@@ -402,8 +402,7 @@
   Study study;
   study.set_consistency(Study::PERMANENT);
   study.set_name("Study1");
-  const base::Time year_ago =
-      base::Time::Now() - base::TimeDelta::FromDays(365);
+  const base::Time year_ago = base::Time::Now() - base::Days(365);
   study.set_expiry_date(TimeToProtoTime(year_ago));
   auto* exp1 = AddExperiment("A", 1, &study);
   study.clear_default_experiment_name();
diff --git a/components/variations/variations_seed_store_unittest.cc b/components/variations/variations_seed_store_unittest.cc
index f85cc1c..ce3b2e8 100644
--- a/components/variations/variations_seed_store_unittest.cc
+++ b/components/variations/variations_seed_store_unittest.cc
@@ -80,8 +80,7 @@
 // implementation is not important; it's only important that distinct inputs map
 // to distinct outputs.
 base::Time WrapTime(int64_t time) {
-  return base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(time));
+  return base::Time::FromDeltaSinceWindowsEpoch(base::Microseconds(time));
 }
 
 // Populates |seed| with simple test data. The resulting seed will contain one
@@ -153,7 +152,7 @@
   prefs->SetString(prefs::kVariationsSafeSeedSignature, "f");
   prefs->SetString(prefs::kVariationsSeedSignature, "g");
   const base::Time now = base::Time::Now();
-  const base::TimeDelta delta = base::TimeDelta::FromDays(1);
+  const base::TimeDelta delta = base::Days(1);
   prefs->SetTime(prefs::kVariationsSafeSeedDate, now - delta);
   prefs->SetTime(prefs::kVariationsSafeSeedFetchTime, now - delta * 2);
   prefs->SetTime(prefs::kVariationsSeedDate, now - delta * 3);
@@ -418,7 +417,7 @@
   const std::string base64_seed = SerializeSeedBase64(seed);
   const std::string base64_seed_signature = "a test signature, ignored.";
   const base::Time reference_date = base::Time::Now();
-  const base::Time fetch_time = reference_date - base::TimeDelta::FromDays(3);
+  const base::Time fetch_time = reference_date - base::Days(3);
   const std::string locale = "en-US";
   const std::string permanent_consistency_country = "us";
   const std::string session_consistency_country = "ca";
diff --git a/components/viz/common/frame_sinks/begin_frame_args.cc b/components/viz/common/frame_sinks/begin_frame_args.cc
index 00f0119..23fd58b 100644
--- a/components/viz/common/frame_sinks/begin_frame_args.cc
+++ b/components/viz/common/frame_sinks/begin_frame_args.cc
@@ -88,7 +88,7 @@
 BeginFrameArgs::BeginFrameArgs()
     : frame_time(base::TimeTicks::Min()),
       deadline(base::TimeTicks::Min()),
-      interval(base::TimeDelta::FromMicroseconds(-1)),
+      interval(base::Microseconds(-1)),
       frame_id(BeginFrameId(0, kInvalidFrameNumber)) {}
 
 BeginFrameArgs::BeginFrameArgs(uint64_t source_id,
diff --git a/components/viz/common/frame_sinks/begin_frame_args.h b/components/viz/common/frame_sinks/begin_frame_args.h
index eb1c3f9..3242ec4 100644
--- a/components/viz/common/frame_sinks/begin_frame_args.h
+++ b/components/viz/common/frame_sinks/begin_frame_args.h
@@ -115,14 +115,12 @@
   // This is the default interval assuming 60Hz to use to avoid sprinkling the
   // code with magic numbers.
   static constexpr base::TimeDelta DefaultInterval() {
-    return base::TimeDelta::FromSeconds(1) / 60;
+    return base::Seconds(1) / 60;
   }
 
   // This is the preferred interval to use when the producer can animate at the
   // max interval supported by the Display.
-  static constexpr base::TimeDelta MinInterval() {
-    return base::TimeDelta::FromSeconds(0);
-  }
+  static constexpr base::TimeDelta MinInterval() { return base::Seconds(0); }
 
   // This is the preferred interval to use when the producer doesn't have any
   // frame rate preference. The Display can use any value which is appropriate.
diff --git a/components/viz/common/frame_sinks/begin_frame_args_unittest.cc b/components/viz/common/frame_sinks/begin_frame_args_unittest.cc
index 73cb9de..a2c255c 100644
--- a/components/viz/common/frame_sinks/begin_frame_args_unittest.cc
+++ b/components/viz/common/frame_sinks/begin_frame_args_unittest.cc
@@ -12,9 +12,9 @@
 namespace viz {
 namespace {
 
-constexpr base::TimeDelta k1Usec = base::TimeDelta::FromMicroseconds(1);
-constexpr base::TimeDelta k2Usec = base::TimeDelta::FromMicroseconds(2);
-constexpr base::TimeDelta k3Usec = base::TimeDelta::FromMicroseconds(3);
+constexpr base::TimeDelta k1Usec = base::Microseconds(1);
+constexpr base::TimeDelta k2Usec = base::Microseconds(2);
+constexpr base::TimeDelta k3Usec = base::Microseconds(3);
 
 TEST(BeginFrameArgsTest, Helpers) {
   // Quick create methods work
diff --git a/components/viz/common/frame_sinks/begin_frame_source_unittest.cc b/components/viz/common/frame_sinks/begin_frame_source_unittest.cc
index b0931b7..3209500 100644
--- a/components/viz/common/frame_sinks/begin_frame_source_unittest.cc
+++ b/components/viz/common/frame_sinks/begin_frame_source_unittest.cc
@@ -23,7 +23,7 @@
 
 // Returns a fake TimeTicks based on the given microsecond offset.
 base::TimeTicks TicksFromMicroseconds(int64_t micros) {
-  return base::TimeTicks() + base::TimeDelta::FromMicroseconds(micros);
+  return base::TimeTicks() + base::Microseconds(micros);
 }
 
 // BeginFrameSource testing ----------------------------------------------------
@@ -41,7 +41,7 @@
   TestTaskRunner()
       : base::TestMockTimeTaskRunner(
             base::TestMockTimeTaskRunner::Type::kStandalone) {
-    AdvanceMockTickClock(base::TimeDelta::FromMicroseconds(1000));
+    AdvanceMockTickClock(base::Microseconds(1000));
   }
 
   TestTaskRunner(const TestTaskRunner&) = delete;
@@ -100,7 +100,7 @@
 
   EXPECT_BEGIN_FRAME_USED(*obs_, source_->source_id(), 2, 1100,
                           1100 + kDeadline, kInterval);
-  task_runner_->AdvanceMockTickClock(base::TimeDelta::FromMicroseconds(100));
+  task_runner_->AdvanceMockTickClock(base::Microseconds(100));
   source_->DidFinishFrame(obs_.get());
   task_runner_->RunUntilIdle();
 }
@@ -131,7 +131,7 @@
                           1000 + kDeadline, kInterval);
   task_runner_->RunUntilIdle();
 
-  task_runner_->AdvanceMockTickClock(base::TimeDelta::FromMicroseconds(100));
+  task_runner_->AdvanceMockTickClock(base::Microseconds(100));
   source_->DidFinishFrame(obs_.get());
   source_->RemoveObserver(obs_.get());
 
@@ -147,17 +147,17 @@
                           1000 + kDeadline, kInterval);
   task_runner_->RunUntilIdle();
 
-  task_runner_->AdvanceMockTickClock(base::TimeDelta::FromMicroseconds(100));
+  task_runner_->AdvanceMockTickClock(base::Microseconds(100));
   source_->RemoveObserver(obs_.get());
 
-  task_runner_->AdvanceMockTickClock(base::TimeDelta::FromMicroseconds(10));
+  task_runner_->AdvanceMockTickClock(base::Microseconds(10));
   EXPECT_BEGIN_FRAME_SOURCE_PAUSED(*obs_, false);
   source_->AddObserver(obs_.get());
 
-  task_runner_->AdvanceMockTickClock(base::TimeDelta::FromMicroseconds(10));
+  task_runner_->AdvanceMockTickClock(base::Microseconds(10));
   source_->DidFinishFrame(obs_.get());
 
-  task_runner_->AdvanceMockTickClock(base::TimeDelta::FromMicroseconds(10));
+  task_runner_->AdvanceMockTickClock(base::Microseconds(10));
   // The begin frame is posted at the time when the observer was added,
   // so it ignores changes to "now" afterward.
   EXPECT_BEGIN_FRAME_USED(*obs_, source_->source_id(), 2, 1110,
@@ -174,17 +174,17 @@
                           1000 + kDeadline, kInterval);
   task_runner_->RunUntilIdle();
 
-  task_runner_->AdvanceMockTickClock(base::TimeDelta::FromMicroseconds(100));
+  task_runner_->AdvanceMockTickClock(base::Microseconds(100));
   source_->DidFinishFrame(obs_.get());
 
-  task_runner_->AdvanceMockTickClock(base::TimeDelta::FromMicroseconds(10));
+  task_runner_->AdvanceMockTickClock(base::Microseconds(10));
   source_->RemoveObserver(obs_.get());
 
-  task_runner_->AdvanceMockTickClock(base::TimeDelta::FromMicroseconds(10));
+  task_runner_->AdvanceMockTickClock(base::Microseconds(10));
   EXPECT_BEGIN_FRAME_SOURCE_PAUSED(*obs_, false);
   source_->AddObserver(obs_.get());
 
-  task_runner_->AdvanceMockTickClock(base::TimeDelta::FromMicroseconds(10));
+  task_runner_->AdvanceMockTickClock(base::Microseconds(10));
   // Ticks at the time at which the observer was added, ignoring the
   // last change to "now".
   EXPECT_BEGIN_FRAME_USED(*obs_, source_->source_id(), 2, 1120,
@@ -209,7 +209,7 @@
                           1000 + kDeadline, kInterval);
   task_runner_->RunUntilIdle();
 
-  task_runner_->AdvanceMockTickClock(base::TimeDelta::FromMicroseconds(100));
+  task_runner_->AdvanceMockTickClock(base::Microseconds(100));
   source_->DidFinishFrame(obs_.get());
   source_->DidFinishFrame(obs_.get());
   source_->DidFinishFrame(obs_.get());
@@ -217,7 +217,7 @@
                           1100 + kDeadline, kInterval);
   task_runner_->RunUntilIdle();
 
-  task_runner_->AdvanceMockTickClock(base::TimeDelta::FromMicroseconds(100));
+  task_runner_->AdvanceMockTickClock(base::Microseconds(100));
   source_->DidFinishFrame(obs_.get());
   source_->DidFinishFrame(obs_.get());
   source_->DidFinishFrame(obs_.get());
@@ -233,9 +233,9 @@
                           1000 + kDeadline, kInterval);
   task_runner_->RunUntilIdle();
 
-  task_runner_->AdvanceMockTickClock(base::TimeDelta::FromMicroseconds(100));
+  task_runner_->AdvanceMockTickClock(base::Microseconds(100));
   source_->DidFinishFrame(obs_.get());
-  task_runner_->AdvanceMockTickClock(base::TimeDelta::FromMicroseconds(50));
+  task_runner_->AdvanceMockTickClock(base::Microseconds(50));
   // Ticks at the time the last frame finished, so ignores the last change to
   // "now".
   EXPECT_BEGIN_FRAME_USED(*obs_, source_->source_id(), 2, 1100,
@@ -259,7 +259,7 @@
                           kInterval);
   task_runner_->RunUntilIdle();
 
-  task_runner_->AdvanceMockTickClock(base::TimeDelta::FromMicroseconds(100));
+  task_runner_->AdvanceMockTickClock(base::Microseconds(100));
   source_->DidFinishFrame(&obs1);
   source_->DidFinishFrame(&obs2);
   EXPECT_BEGIN_FRAME_USED(obs1, source_->source_id(), 2, 1100, 1100 + kDeadline,
@@ -268,7 +268,7 @@
                           kInterval);
   task_runner_->RunUntilIdle();
 
-  task_runner_->AdvanceMockTickClock(base::TimeDelta::FromMicroseconds(100));
+  task_runner_->AdvanceMockTickClock(base::Microseconds(100));
   source_->DidFinishFrame(&obs1);
   source_->DidFinishFrame(&obs2);
   EXPECT_TRUE(task_runner_->HasPendingTask());
@@ -286,14 +286,14 @@
                           kInterval);
   task_runner_->RunUntilIdle();
 
-  task_runner_->AdvanceMockTickClock(base::TimeDelta::FromMicroseconds(100));
+  task_runner_->AdvanceMockTickClock(base::Microseconds(100));
   EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs2, false);
   source_->AddObserver(&obs2);
   EXPECT_BEGIN_FRAME_USED(obs2, source_->source_id(), 2, 1100, 1100 + kDeadline,
                           kInterval);
   task_runner_->RunUntilIdle();
 
-  task_runner_->AdvanceMockTickClock(base::TimeDelta::FromMicroseconds(100));
+  task_runner_->AdvanceMockTickClock(base::Microseconds(100));
   source_->DidFinishFrame(&obs1);
   EXPECT_BEGIN_FRAME_USED(obs1, source_->source_id(), 3, 1200, 1200 + kDeadline,
                           kInterval);
@@ -307,7 +307,7 @@
   // aborted since |obs1| is removed. Clear that from the task runner.
   task_runner_->RunUntilIdle();
 
-  task_runner_->AdvanceMockTickClock(base::TimeDelta::FromMicroseconds(100));
+  task_runner_->AdvanceMockTickClock(base::Microseconds(100));
   source_->DidFinishFrame(&obs2);
   EXPECT_BEGIN_FRAME_USED(obs2, source_->source_id(), 4, 1300, 1300 + kDeadline,
                           kInterval);
@@ -331,11 +331,11 @@
   task_runner_->RunUntilIdle();
 
   // |obs1| finishes first.
-  task_runner_->AdvanceMockTickClock(base::TimeDelta::FromMicroseconds(100));
+  task_runner_->AdvanceMockTickClock(base::Microseconds(100));
   source_->DidFinishFrame(&obs1);
 
   // |obs2| finishes also, before getting to the newly posted begin frame.
-  task_runner_->AdvanceMockTickClock(base::TimeDelta::FromMicroseconds(100));
+  task_runner_->AdvanceMockTickClock(base::Microseconds(100));
   source_->DidFinishFrame(&obs2);
 
   // Because the begin frame source already ticked when |obs1| finished,
@@ -362,8 +362,8 @@
         std::make_unique<FakeDelayBasedTimeSource>(
             task_runner_->GetMockTickClock(), task_runner_.get());
 
-    time_source->SetTimebaseAndInterval(
-        base::TimeTicks(), base::TimeDelta::FromMicroseconds(10000));
+    time_source->SetTimebaseAndInterval(base::TimeTicks(),
+                                        base::Microseconds(10000));
     source_ = std::make_unique<DelayBasedBeginFrameSource>(
         std::move(time_source), BeginFrameSource::kNotRestartableId);
     obs_ = std::make_unique<MockBeginFrameObserver>();
@@ -378,7 +378,7 @@
 
 TEST_F(DelayBasedBeginFrameSourceTest,
        AddObserverCallsOnBeginFrameWithMissedTick) {
-  task_runner_->AdvanceMockTickClock(base::TimeDelta::FromMicroseconds(9010));
+  task_runner_->AdvanceMockTickClock(base::Microseconds(9010));
   EXPECT_BEGIN_FRAME_SOURCE_PAUSED(*obs_, false);
   EXPECT_BEGIN_FRAME_USED_MISSED(*obs_, source_->source_id(), 1, 10000, 20000,
                                  10000);
@@ -395,7 +395,7 @@
             task_runner_->NowTicks() + task_runner_->NextPendingTaskDelay());
 
   EXPECT_BEGIN_FRAME_USED(*obs_, source_->source_id(), 2, 10000, 20000, 10000);
-  task_runner_->AdvanceMockTickClock(base::TimeDelta::FromMicroseconds(9010));
+  task_runner_->AdvanceMockTickClock(base::Microseconds(9010));
   task_runner_->RunUntilIdle();
 }
 
@@ -427,7 +427,7 @@
 
   // Update the vsync information
   source_->OnUpdateVSyncParameters(TicksFromMicroseconds(27500),
-                                   base::TimeDelta::FromMicroseconds(10001));
+                                   base::Microseconds(10001));
 
   EXPECT_BEGIN_FRAME_USED(*obs_, source_->source_id(), 5, 40000, 47502, 10001);
   EXPECT_BEGIN_FRAME_USED(*obs_, source_->source_id(), 6, 47502, 57503, 10001);
@@ -451,7 +451,7 @@
   // tick (i.e. next_tick -> 40000, following_tick -> 41000)
   // Begin frame won't be used at 41000 because this is a double-tick.
   source_->OnUpdateVSyncParameters(TicksFromMicroseconds(26000),
-                                   base::TimeDelta::FromMicroseconds(5000));
+                                   base::Microseconds(5000));
   EXPECT_BEGIN_FRAME_USED(*obs_, source_->source_id(), 5, 40000, 41000, 5000);
   EXPECT_BEGIN_FRAME_USED(*obs_, source_->source_id(), 7, 46000, 51000, 5000);
   task_runner_->FastForwardTo(TicksFromMicroseconds(46000));
@@ -460,7 +460,7 @@
   // and next tick happens exactly one interval before the following tick
   // tick (i.e. next_tick -> 51000, following_tick -> 60000)
   source_->OnUpdateVSyncParameters(TicksFromMicroseconds(42000),
-                                   base::TimeDelta::FromMicroseconds(9000));
+                                   base::Microseconds(9000));
   EXPECT_BEGIN_FRAME_USED(*obs_, source_->source_id(), 8, 51000, 60000, 9000);
   EXPECT_BEGIN_FRAME_USED(*obs_, source_->source_id(), 9, 60000, 69000, 9000);
   EXPECT_BEGIN_FRAME_USED(*obs_, source_->source_id(), 10, 69000, 78000, 9000);
@@ -482,7 +482,7 @@
   // and next tick happens within less than one interval of the new timebase
   // Begin frame won't be used at 41000 because this is a double-tick.
   source_->OnUpdateVSyncParameters(TicksFromMicroseconds(41000),
-                                   base::TimeDelta::FromMicroseconds(5000));
+                                   base::Microseconds(5000));
   EXPECT_BEGIN_FRAME_USED(*obs_, source_->source_id(), 5, 40000, 41000, 5000);
   EXPECT_BEGIN_FRAME_USED(*obs_, source_->source_id(), 7, 46000, 51000, 5000);
   task_runner_->FastForwardTo(TicksFromMicroseconds(46000));
@@ -490,7 +490,7 @@
   // Update the vsync information such that timebase is after next tick time,
   // and next tick happens exactly one interval before the new timebase
   source_->OnUpdateVSyncParameters(TicksFromMicroseconds(60000),
-                                   base::TimeDelta::FromMicroseconds(9000));
+                                   base::Microseconds(9000));
   EXPECT_BEGIN_FRAME_USED(*obs_, source_->source_id(), 8, 51000, 60000, 9000);
   EXPECT_BEGIN_FRAME_USED(*obs_, source_->source_id(), 9, 60000, 69000, 9000);
   EXPECT_BEGIN_FRAME_USED(*obs_, source_->source_id(), 10, 69000, 78000, 9000);
@@ -500,7 +500,7 @@
   // and next tick happens more than one interval before the new timebase
   // Begin frame won't be used at 80000 because this is a double-tick.
   source_->OnUpdateVSyncParameters(TicksFromMicroseconds(100000),
-                                   base::TimeDelta::FromMicroseconds(5000));
+                                   base::Microseconds(5000));
   EXPECT_BEGIN_FRAME_USED(*obs_, source_->source_id(), 11, 78000, 80000, 5000);
   EXPECT_BEGIN_FRAME_USED(*obs_, source_->source_id(), 13, 85000, 90000, 5000);
   task_runner_->FastForwardTo(TicksFromMicroseconds(85000));
@@ -521,13 +521,13 @@
   // and last tick time.
   // Begin frame won't be used at 41000 because this is a double-tick.
   source_->OnUpdateVSyncParameters(TicksFromMicroseconds(35000),
-                                   base::TimeDelta::FromMicroseconds(6000));
+                                   base::Microseconds(6000));
   EXPECT_BEGIN_FRAME_USED(*obs_, source_->source_id(), 5, 40000, 41000, 6000);
   EXPECT_BEGIN_FRAME_USED(*obs_, source_->source_id(), 7, 47000, 53000, 6000);
   task_runner_->FastForwardTo(TicksFromMicroseconds(47000));
 
   source_->OnUpdateVSyncParameters(TicksFromMicroseconds(49000),
-                                   base::TimeDelta::FromMicroseconds(10000));
+                                   base::Microseconds(10000));
   EXPECT_BEGIN_FRAME_USED(*obs_, source_->source_id(), 8, 53000, 59000, 10000);
   EXPECT_BEGIN_FRAME_USED(*obs_, source_->source_id(), 9, 59000, 69000, 10000);
   EXPECT_BEGIN_FRAME_USED(*obs_, source_->source_id(), 10, 69000, 79000, 10000);
@@ -538,7 +538,7 @@
   NiceMock<MockBeginFrameObserver> obs1, obs2;
 
   // Mock tick clock starts off at 1000.
-  task_runner_->FastForwardBy(base::TimeDelta::FromMicroseconds(9010));
+  task_runner_->FastForwardBy(base::Microseconds(9010));
   EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs1, false);
   EXPECT_BEGIN_FRAME_USED_MISSED(obs1, source_->source_id(), 1, 10000, 20000,
                                  10000);
@@ -546,7 +546,7 @@
   // No tasks should need to be run for this to occur.
 
   EXPECT_BEGIN_FRAME_USED(obs1, source_->source_id(), 2, 20000, 30000, 10000);
-  task_runner_->FastForwardBy(base::TimeDelta::FromMicroseconds(10000));
+  task_runner_->FastForwardBy(base::Microseconds(10000));
 
   EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs2, false);
   // Sequence number unchanged for missed frame with time of last normal frame.
@@ -557,12 +557,12 @@
 
   EXPECT_BEGIN_FRAME_USED(obs1, source_->source_id(), 3, 30000, 40000, 10000);
   EXPECT_BEGIN_FRAME_USED(obs2, source_->source_id(), 3, 30000, 40000, 10000);
-  task_runner_->FastForwardBy(base::TimeDelta::FromMicroseconds(10000));
+  task_runner_->FastForwardBy(base::Microseconds(10000));
 
   source_->RemoveObserver(&obs1);
 
   EXPECT_BEGIN_FRAME_USED(obs2, source_->source_id(), 4, 40000, 50000, 10000);
-  task_runner_->FastForwardBy(base::TimeDelta::FromMicroseconds(10000));
+  task_runner_->FastForwardBy(base::Microseconds(10000));
 
   source_->RemoveObserver(&obs2);
   task_runner_->FastForwardTo(TicksFromMicroseconds(50000));
@@ -577,16 +577,16 @@
   source_->AddObserver(&obs);
 
   source_->OnUpdateVSyncParameters(TicksFromMicroseconds(5000),
-                                   base::TimeDelta::FromMicroseconds(10000));
-  task_runner_->AdvanceMockTickClock(base::TimeDelta::FromMicroseconds(4000));
+                                   base::Microseconds(10000));
+  task_runner_->AdvanceMockTickClock(base::Microseconds(4000));
 
   // No begin frame received.
   task_runner_->RunUntilIdle();
 
   // Begin frame received.
   source_->OnUpdateVSyncParameters(TicksFromMicroseconds(10000),
-                                   base::TimeDelta::FromMicroseconds(10000));
-  task_runner_->AdvanceMockTickClock(base::TimeDelta::FromMicroseconds(5000));
+                                   base::Microseconds(10000));
+  task_runner_->AdvanceMockTickClock(base::Microseconds(5000));
   EXPECT_BEGIN_FRAME_USED(obs, source_->source_id(), 2, 10000, 20000, 10000);
   task_runner_->RunUntilIdle();
 }
@@ -600,8 +600,8 @@
   source_->RemoveObserver(&obs);
 
   source_->OnUpdateVSyncParameters(TicksFromMicroseconds(5000),
-                                   base::TimeDelta::FromMicroseconds(10000));
-  task_runner_->AdvanceMockTickClock(base::TimeDelta::FromMicroseconds(4000));
+                                   base::Microseconds(10000));
+  task_runner_->AdvanceMockTickClock(base::Microseconds(4000));
 
   // No missed frame received.
   EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs, false);
@@ -612,8 +612,8 @@
 
   // Missed frame received.
   source_->OnUpdateVSyncParameters(TicksFromMicroseconds(10000),
-                                   base::TimeDelta::FromMicroseconds(10000));
-  task_runner_->AdvanceMockTickClock(base::TimeDelta::FromMicroseconds(5000));
+                                   base::Microseconds(10000));
+  task_runner_->AdvanceMockTickClock(base::Microseconds(5000));
   EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs, false);
   // Sequence number is incremented again, because sufficient time has passed.
   EXPECT_BEGIN_FRAME_USED_MISSED(obs, source_->source_id(), 2, 10000, 20000,
@@ -632,7 +632,7 @@
   task_runner_->RunUntilIdle();
 
   EXPECT_BEGIN_FRAME_USED(obs, source_->source_id(), 2, 10000, 20000, 10000);
-  task_runner_->AdvanceMockTickClock(base::TimeDelta::FromMicroseconds(9000));
+  task_runner_->AdvanceMockTickClock(base::Microseconds(9000));
   task_runner_->RunUntilIdle();
 
   // Sequence number should stay the same within same interval.
@@ -642,7 +642,7 @@
 
   EXPECT_BEGIN_FRAME_USED(obs, source_->source_id(), 3, 20000, 30000, 10000);
   EXPECT_BEGIN_FRAME_USED(obs2, source_->source_id(), 3, 20000, 30000, 10000);
-  task_runner_->AdvanceMockTickClock(base::TimeDelta::FromMicroseconds(10000));
+  task_runner_->AdvanceMockTickClock(base::Microseconds(10000));
   task_runner_->RunUntilIdle();
 }
 
@@ -655,7 +655,7 @@
   task_runner_->RunUntilIdle();
 
   EXPECT_BEGIN_FRAME_USED(obs, source_->source_id(), 2, 10000, 20000, 10000);
-  task_runner_->AdvanceMockTickClock(base::TimeDelta::FromMicroseconds(9000));
+  task_runner_->AdvanceMockTickClock(base::Microseconds(9000));
   task_runner_->RunUntilIdle();
   source_->RemoveObserver(&obs);
 
@@ -664,7 +664,7 @@
   EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs, false);
   EXPECT_BEGIN_FRAME_USED_MISSED(obs, source_->source_id(), 10, 90000, 100000,
                                  10000);
-  task_runner_->AdvanceMockTickClock(base::TimeDelta::FromMicroseconds(80000));
+  task_runner_->AdvanceMockTickClock(base::Microseconds(80000));
   source_->AddObserver(&obs);
 }
 
diff --git a/components/viz/common/frame_sinks/delay_based_time_source_unittest.cc b/components/viz/common/frame_sinks/delay_based_time_source_unittest.cc
index eb59778..c0e84dd1 100644
--- a/components/viz/common/frame_sinks/delay_based_time_source_unittest.cc
+++ b/components/viz/common/frame_sinks/delay_based_time_source_unittest.cc
@@ -15,8 +15,7 @@
 namespace {
 
 base::TimeDelta Interval() {
-  return base::TimeDelta::FromMicroseconds(base::Time::kMicrosecondsPerSecond /
-                                           60);
+  return base::Microseconds(base::Time::kMicrosecondsPerSecond / 60);
 }
 
 class DelayBasedTimeSourceTest : public ::testing::Test {
@@ -55,7 +54,7 @@
   EXPECT_TRUE(timer()->Active());
   EXPECT_TRUE(task_runner()->HasPendingTask());
 
-  SetNow(timer()->Now() + base::TimeDelta::FromMilliseconds(16));
+  SetNow(timer()->Now() + base::Milliseconds(16));
   task_runner()->RunPendingTasks();
   EXPECT_TRUE(timer()->Active());
   EXPECT_TRUE(client()->TickCalled());
@@ -115,7 +114,7 @@
 
   EXPECT_EQ(16, task_runner()->NextPendingTaskDelay().InMilliseconds());
 
-  SetNow(timer()->Now() + Interval() + base::TimeDelta::FromMicroseconds(1));
+  SetNow(timer()->Now() + Interval() + base::Microseconds(1));
   task_runner()->RunPendingTasks();
 
   EXPECT_EQ(16, task_runner()->NextPendingTaskDelay().InMilliseconds());
@@ -149,8 +148,7 @@
 
   EXPECT_EQ(16, task_runner()->NextPendingTaskDelay().InMilliseconds());
 
-  SetNow(timer()->Now() + 2 * Interval() +
-         base::TimeDelta::FromMicroseconds(1));
+  SetNow(timer()->Now() + 2 * Interval() + base::Microseconds(1));
   task_runner()->RunPendingTasks();
 
   EXPECT_EQ(16, task_runner()->NextPendingTaskDelay().InMilliseconds());
@@ -166,7 +164,7 @@
 
   EXPECT_EQ(16, task_runner()->NextPendingTaskDelay().InMilliseconds());
 
-  SetNow(timer()->Now() + Interval() + base::TimeDelta::FromMilliseconds(8));
+  SetNow(timer()->Now() + Interval() + base::Milliseconds(8));
   task_runner()->RunPendingTasks();
 
   EXPECT_EQ(8, task_runner()->NextPendingTaskDelay().InMilliseconds());
@@ -183,7 +181,7 @@
   base::TimeTicks future_timebase = timer()->Now() + Interval() * 10;
 
   // 1ms jitter
-  base::TimeDelta jitter1 = base::TimeDelta::FromMilliseconds(1);
+  base::TimeDelta jitter1 = base::Milliseconds(1);
 
   // Tick with +1ms of jitter
   future_timebase += Interval();
@@ -214,7 +212,7 @@
   EXPECT_EQ(16, task_runner()->NextPendingTaskDelay().InMilliseconds());
 
   // 8 ms jitter
-  base::TimeDelta jitter8 = base::TimeDelta::FromMilliseconds(8);
+  base::TimeDelta jitter8 = base::Milliseconds(8);
 
   // Tick with +8ms of jitter
   future_timebase += Interval();
@@ -245,7 +243,7 @@
   EXPECT_EQ(16, task_runner()->NextPendingTaskDelay().InMilliseconds());
 
   // 15 ms jitter
-  base::TimeDelta jitter15 = base::TimeDelta::FromMilliseconds(15);
+  base::TimeDelta jitter15 = base::Milliseconds(15);
 
   // Tick with +15ms jitter
   future_timebase += Interval();
@@ -290,7 +288,7 @@
     total_frame_time += delay_ms / 1000.0;
 
     // Run the callback exactly when asked
-    SetNow(timer()->Now() + base::TimeDelta::FromMilliseconds(delay_ms));
+    SetNow(timer()->Now() + base::Milliseconds(delay_ms));
     task_runner()->RunPendingTasks();
   }
   double average_interval =
@@ -323,7 +321,7 @@
 
   // Start the timer() again, but before the next tick time the timer()
   // previously planned on using. That same tick time should still be targeted.
-  SetNow(timer()->Now() + base::TimeDelta::FromMilliseconds(4));
+  SetNow(timer()->Now() + base::Milliseconds(4));
   timer()->SetActive(true);
   EXPECT_EQ(12, task_runner()->NextPendingTaskDelay().InMilliseconds());
 }
@@ -343,7 +341,7 @@
 
   // Start the timer() again, but before the next tick time the timer()
   // previously planned on using. That same tick time should still be targeted.
-  SetNow(timer()->Now() + base::TimeDelta::FromMilliseconds(20));
+  SetNow(timer()->Now() + base::Milliseconds(20));
   timer()->SetActive(true);
   EXPECT_EQ(13, task_runner()->NextPendingTaskDelay().InMilliseconds());
 }
diff --git a/components/viz/common/gpu/context_cache_controller.cc b/components/viz/common/gpu/context_cache_controller.cc
index f0058e2..80425d8 100644
--- a/components/viz/common/gpu/context_cache_controller.cc
+++ b/components/viz/common/gpu/context_cache_controller.cc
@@ -154,7 +154,7 @@
       FROM_HERE,
       base::BindOnce(&ContextCacheController::OnIdle, weak_ptr_,
                      current_idle_generation),
-      base::TimeDelta::FromSeconds(kIdleCleanupDelaySeconds));
+      base::Seconds(kIdleCleanupDelaySeconds));
 }
 
 void ContextCacheController::InvalidatePendingIdleCallbacks() {
diff --git a/components/viz/common/gpu/context_cache_controller_unittest.cc b/components/viz/common/gpu/context_cache_controller_unittest.cc
index f37d1c4..3252ac2 100644
--- a/components/viz/common/gpu/context_cache_controller_unittest.cc
+++ b/components/viz/common/gpu/context_cache_controller_unittest.cc
@@ -113,7 +113,7 @@
 
   EXPECT_CALL(context_support, SetAggressivelyFreeResources(true));
   EXPECT_CALL(context_support, SetAggressivelyFreeResources(false));
-  task_runner->FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_runner->FastForwardBy(base::Seconds(5));
   Mock::VerifyAndClearExpectations(&context_support);
 
   EXPECT_CALL(context_support, SetAggressivelyFreeResources(true));
@@ -129,7 +129,7 @@
 
   // We are not visible, so becoming busy should not trigger an idle callback.
   cache_controller.ClientBecameNotBusy(std::move(busy));
-  task_runner->FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_runner->FastForwardBy(base::Seconds(5));
 }
 
 TEST(ContextCacheControllerTest, ScopedBusyMulitpleWhileVisible) {
@@ -149,7 +149,7 @@
   // When we fast forward, only one cleanup should happen.
   EXPECT_CALL(context_support, SetAggressivelyFreeResources(true));
   EXPECT_CALL(context_support, SetAggressivelyFreeResources(false));
-  task_runner->FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_runner->FastForwardBy(base::Seconds(5));
   Mock::VerifyAndClearExpectations(&context_support);
 
   EXPECT_CALL(context_support, SetAggressivelyFreeResources(true));
@@ -191,7 +191,7 @@
   cache_controller.ClientBecameNotBusy(std::move(busy));
   EXPECT_CALL(context_support, SetAggressivelyFreeResources(true));
   EXPECT_CALL(context_support, SetAggressivelyFreeResources(false));
-  task_runner->FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_runner->FastForwardBy(base::Seconds(5));
   Mock::VerifyAndClearExpectations(&context_support);
 
   // The Skia resource cache should now be empty.
diff --git a/components/viz/common/gpu/metal_api_proxy.mm b/components/viz/common/gpu/metal_api_proxy.mm
index 1d5c718b..9d7dd6a 100644
--- a/components/viz/common/gpu/metal_api_proxy.mm
+++ b/components/viz/common/gpu/metal_api_proxy.mm
@@ -82,9 +82,8 @@
 
   // Suppress the watchdog timer for kTimeout by reporting progress every
   // half-second. After that, allow it to kill the the GPU process.
-  constexpr base::TimeDelta kTimeout = base::TimeDelta::FromSeconds(60);
-  constexpr base::TimeDelta kWaitPeriod =
-      base::TimeDelta::FromMilliseconds(500);
+  constexpr base::TimeDelta kTimeout = base::Seconds(60);
+  constexpr base::TimeDelta kWaitPeriod = base::Milliseconds(500);
   while (true) {
     if (base::TimeTicks::Now() - start_time < kTimeout && progress_reporter)
       progress_reporter->ReportProgress();
@@ -119,9 +118,8 @@
     progress_reporter->ReportProgress();
   [device newRenderPipelineStateWithDescriptor:descriptor
                              completionHandler:completionHandler];
-  constexpr base::TimeDelta kTimeout = base::TimeDelta::FromSeconds(60);
-  constexpr base::TimeDelta kWaitPeriod =
-      base::TimeDelta::FromMilliseconds(500);
+  constexpr base::TimeDelta kTimeout = base::Seconds(60);
+  constexpr base::TimeDelta kWaitPeriod = base::Milliseconds(500);
   while (true) {
     if (base::TimeTicks::Now() - start_time < kTimeout && progress_reporter)
       progress_reporter->ReportProgress();
diff --git a/components/viz/common/gpu/vulkan_in_process_context_provider.h b/components/viz/common/gpu/vulkan_in_process_context_provider.h
index 2025f827..c883bb8 100644
--- a/components/viz/common/gpu/vulkan_in_process_context_provider.h
+++ b/components/viz/common/gpu/vulkan_in_process_context_provider.h
@@ -40,7 +40,7 @@
       uint32_t sync_cpu_memory_limit = 0,
       const gpu::GPUInfo* gpu_info = nullptr,
       base::TimeDelta cooldown_duration_at_memory_pressure_critical =
-          base::TimeDelta::FromSeconds(15));
+          base::Seconds(15));
 
   VulkanInProcessContextProvider(const VulkanInProcessContextProvider&) =
       delete;
diff --git a/components/viz/common/quads/compositor_frame_metadata_unittest.cc b/components/viz/common/quads/compositor_frame_metadata_unittest.cc
index 2ae5adf..5104139e 100644
--- a/components/viz/common/quads/compositor_frame_metadata_unittest.cc
+++ b/components/viz/common/quads/compositor_frame_metadata_unittest.cc
@@ -73,21 +73,18 @@
       SurfaceId(frame_sink_id, local_id1), SurfaceId(frame_sink_id, local_id2));
   metadata.activation_dependencies.emplace_back(
       SurfaceId(frame_sink_id, local_id1));
-  metadata.deadline =
-      FrameDeadline(base::TimeTicks() + base::TimeDelta::FromSeconds(123), 15,
-                    base::TimeDelta::FromMilliseconds(16), true);
+  metadata.deadline = FrameDeadline(base::TimeTicks() + base::Seconds(123), 15,
+                                    base::Milliseconds(16), true);
   metadata.begin_frame_ack = BeginFrameAck(999, 888, true, 777);
   metadata.frame_token = 6;
   metadata.send_frame_token_to_embedder = true;
   metadata.min_page_scale_factor = 123.3f;
   metadata.top_controls_visible_height.emplace(0.5);
-  metadata.preferred_frame_interval.emplace(
-      base::TimeDelta::FromMilliseconds(11));
+  metadata.preferred_frame_interval.emplace(base::Milliseconds(11));
   metadata.display_transform_hint = gfx::OVERLAY_TRANSFORM_FLIP_VERTICAL;
   metadata.delegated_ink_metadata = std::make_unique<gfx::DelegatedInkMetadata>(
       gfx::PointF(88.8, 44.4), 1.f, SK_ColorRED,
-      base::TimeTicks() + base::TimeDelta::FromSeconds(125),
-      gfx::RectF(1, 2, 3, 4), true);
+      base::TimeTicks() + base::Seconds(125), gfx::RectF(1, 2, 3, 4), true);
   metadata.transition_directives.emplace_back(
       4u, CompositorFrameTransitionDirective::Type::kSave,
       CompositorFrameTransitionDirective::Effect::kCoverUp);
diff --git a/components/viz/common/quads/compositor_frame_transition_directive.cc b/components/viz/common/quads/compositor_frame_transition_directive.cc
index c3743605..fe7ecad 100644
--- a/components/viz/common/quads/compositor_frame_transition_directive.cc
+++ b/components/viz/common/quads/compositor_frame_transition_directive.cc
@@ -11,10 +11,8 @@
 namespace viz {
 namespace {
 
-constexpr base::TimeDelta kDefaultTransitionDuration =
-    base::TimeDelta::FromMilliseconds(250);
-constexpr base::TimeDelta kDefaultTransitionDelay =
-    base::TimeDelta::FromMilliseconds(0);
+constexpr base::TimeDelta kDefaultTransitionDuration = base::Milliseconds(250);
+constexpr base::TimeDelta kDefaultTransitionDelay = base::Milliseconds(0);
 
 }  // namespace
 
@@ -48,8 +46,8 @@
 
 bool CompositorFrameTransitionDirective::TransitionConfig::IsValid(
     std::string* error) const {
-  constexpr base::TimeDelta kMinValue = base::TimeDelta::FromSeconds(0);
-  constexpr base::TimeDelta kMaxValue = base::TimeDelta::FromSeconds(5);
+  constexpr base::TimeDelta kMinValue = base::Seconds(0);
+  constexpr base::TimeDelta kMaxValue = base::Seconds(5);
 
   if (duration < kMinValue || duration > kMaxValue) {
     if (error)
diff --git a/components/viz/common/quads/draw_quad_perftest.cc b/components/viz/common/quads/draw_quad_perftest.cc
index d64d2d1c..7a9ee2bc 100644
--- a/components/viz/common/quads/draw_quad_perftest.cc
+++ b/components/viz/common/quads/draw_quad_perftest.cc
@@ -54,7 +54,7 @@
  public:
   DrawQuadPerfTest()
       : timer_(kWarmupRuns,
-               base::TimeDelta::FromMilliseconds(kTimeLimitMillis),
+               base::Milliseconds(kTimeLimitMillis),
                kTimeCheckInterval) {}
 
   void CreateRenderPass() {
diff --git a/components/viz/common/yuv_readback_unittest.cc b/components/viz/common/yuv_readback_unittest.cc
index 2d1b493..5626708a 100644
--- a/components/viz/common/yuv_readback_unittest.cc
+++ b/components/viz/common/yuv_readback_unittest.cc
@@ -369,14 +369,12 @@
             // on its coded size.
             gfx::Size((output_xsize + 15) & ~15, (output_ysize + 15) & ~15),
             gfx::Rect(0, 0, output_xsize, output_ysize),
-            gfx::Size(output_xsize, output_ysize),
-            base::TimeDelta::FromSeconds(0));
+            gfx::Size(output_xsize, output_ysize), base::Seconds(0));
     scoped_refptr<media::VideoFrame> truth_frame =
         media::VideoFrame::CreateFrame(
             media::PIXEL_FORMAT_I420, gfx::Size(output_xsize, output_ysize),
             gfx::Rect(0, 0, output_xsize, output_ysize),
-            gfx::Size(output_xsize, output_ysize),
-            base::TimeDelta::FromSeconds(0));
+            gfx::Size(output_xsize, output_ysize), base::Seconds(0));
 
     base::RunLoop run_loop;
     auto run_quit_closure = [](base::OnceClosure quit_closure, bool result) {
diff --git a/components/viz/demo/host/demo_host.cc b/components/viz/demo/host/demo_host.cc
index b113a78..88936fc 100644
--- a/components/viz/demo/host/demo_host.cc
+++ b/components/viz/demo/host/demo_host.cc
@@ -108,7 +108,7 @@
         FROM_HERE,
         base::BindOnce(&DemoHost::EmbedClients, base::Unretained(this),
                        embedded_client.get(), gfx::Rect(125, 125, 150, 150)),
-        base::TimeDelta::FromSeconds(1));
+        base::Seconds(1));
   }
   embedded_clients_.push_back(std::move(embedded_client));
 }
@@ -163,7 +163,7 @@
       FROM_HERE,
       base::BindOnce(&DemoHost::EmbedClients, base::Unretained(this),
                      root_client_.get(), gfx::Rect(50, 50, 300, 300)),
-      base::TimeDelta::FromSeconds(1));
+      base::Seconds(1));
 }
 
 void DemoHost::OnFirstSurfaceActivation(const viz::SurfaceInfo& surface_info) {}
diff --git a/components/viz/host/client_frame_sink_video_capturer.cc b/components/viz/host/client_frame_sink_video_capturer.cc
index 8d65944..31ef581 100644
--- a/components/viz/host/client_frame_sink_video_capturer.cc
+++ b/components/viz/host/client_frame_sink_video_capturer.cc
@@ -15,8 +15,7 @@
 namespace {
 
 // How long to wait before attempting to re-establish a lost connection.
-constexpr base::TimeDelta kReEstablishConnectionDelay =
-    base::TimeDelta::FromMilliseconds(100);
+constexpr base::TimeDelta kReEstablishConnectionDelay = base::Milliseconds(100);
 
 }  // namespace
 
diff --git a/components/viz/host/gpu_host_impl.cc b/components/viz/host/gpu_host_impl.cc
index 9eae4a9..8701154 100644
--- a/components/viz/host/gpu_host_impl.cc
+++ b/components/viz/host/gpu_host_impl.cc
@@ -513,7 +513,7 @@
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   if (!channel_requests_.empty())
     return;
-  constexpr base::TimeDelta kShutDownTimeout = base::TimeDelta::FromSeconds(10);
+  constexpr base::TimeDelta kShutDownTimeout = base::Seconds(10);
   shutdown_timeout_.Start(FROM_HERE, kShutDownTimeout,
                           base::BindOnce(&GpuHostImpl::MaybeShutdownGpuProcess,
                                          base::Unretained(this)));
diff --git a/components/viz/host/host_frame_sink_manager_unittest.cc b/components/viz/host/host_frame_sink_manager_unittest.cc
index a68eaf0..5e79b20 100644
--- a/components/viz/host/host_frame_sink_manager_unittest.cc
+++ b/components/viz/host/host_frame_sink_manager_unittest.cc
@@ -458,7 +458,7 @@
 TEST_F(HostFrameSinkManagerTest, ThrottleFramePainting) {
   const std::vector<FrameSinkId> frame_sink_ids{
       FrameSinkId(1, 1), FrameSinkId(2, 2), FrameSinkId(3, 3)};
-  constexpr base::TimeDelta interval = base::TimeDelta::FromHz(10);
+  constexpr base::TimeDelta interval = base::Hertz(10);
   EXPECT_CALL(impl(), Throttle(frame_sink_ids, interval));
   host().Throttle(frame_sink_ids, interval);
 
diff --git a/components/viz/service/display/bsp_tree_perftest.cc b/components/viz/service/display/bsp_tree_perftest.cc
index 99698991..bdbdb52 100644
--- a/components/viz/service/display/bsp_tree_perftest.cc
+++ b/components/viz/service/display/bsp_tree_perftest.cc
@@ -47,7 +47,7 @@
  public:
   BspTreePerfTest()
       : timer_(kWarmupRuns,
-               base::TimeDelta::FromMilliseconds(kTimeLimitMillis),
+               base::Milliseconds(kTimeLimitMillis),
                kTimeCheckInterval) {}
 
   void SetupTree() override {
diff --git a/components/viz/service/display/delegated_ink_point_pixel_test_helper.cc b/components/viz/service/display/delegated_ink_point_pixel_test_helper.cc
index 186451d..adeda6f 100644
--- a/components/viz/service/display/delegated_ink_point_pixel_test_helper.cc
+++ b/components/viz/service/display/delegated_ink_point_pixel_test_helper.cc
@@ -88,10 +88,10 @@
     const gfx::PointF& point) {
   DCHECK(ink_points_.find(pointer_id) != ink_points_.end());
   EXPECT_GT(static_cast<int>(ink_points_[pointer_id].size()), 0);
-  CreateAndSendPoint(point,
-                     ink_points_[pointer_id].back().timestamp() +
-                         base::TimeDelta::FromMicroseconds(10),
-                     pointer_id);
+  CreateAndSendPoint(
+      point,
+      ink_points_[pointer_id].back().timestamp() + base::Microseconds(10),
+      pointer_id);
 }
 
 gfx::Rect DelegatedInkPointPixelTestHelper::GetDelegatedInkDamageRect() {
diff --git a/components/viz/service/display/delegated_ink_point_renderer_skia.cc b/components/viz/service/display/delegated_ink_point_renderer_skia.cc
index e3bc5f5..7bb6de04 100644
--- a/components/viz/service/display/delegated_ink_point_renderer_skia.cc
+++ b/components/viz/service/display/delegated_ink_point_renderer_skia.cc
@@ -63,7 +63,7 @@
     const std::vector<gfx::DelegatedInkPoint>* points_to_draw,
     const gfx::DelegatedInkMetadata* metadata) {
   if (points_to_draw->size() == 0)
-    return base::TimeDelta::FromMilliseconds(0);
+    return base::Milliseconds(0);
 
   return points_to_draw->back().timestamp() - metadata->timestamp();
 }
diff --git a/components/viz/service/display/delegated_ink_trail_data.cc b/components/viz/service/display/delegated_ink_trail_data.cc
index d5b1c2f0..ea89149 100644
--- a/components/viz/service/display/delegated_ink_trail_data.cc
+++ b/components/viz/service/display/delegated_ink_trail_data.cc
@@ -80,9 +80,8 @@
            ++i) {
         base::TimeTicks timestamp =
             ink_points_to_draw->back().timestamp() +
-            base::TimeDelta::FromMilliseconds(
-                kPredictionConfigs[experiment]
-                    .milliseconds_into_future_per_point);
+            base::Milliseconds(kPredictionConfigs[experiment]
+                                   .milliseconds_into_future_per_point);
         std::unique_ptr<ui::InputPredictor::InputData> predicted_point =
             handler.predictor->GeneratePrediction(timestamp);
         if (predicted_point) {
diff --git a/components/viz/service/display/direct_renderer.cc b/components/viz/service/display/direct_renderer.cc
index fe4f195d..1743be3 100644
--- a/components/viz/service/display/direct_renderer.cc
+++ b/components/viz/service/display/direct_renderer.cc
@@ -338,8 +338,8 @@
         &current_frame()->root_content_bounds);
     auto overlay_processing_time = overlay_processing_timer.Elapsed();
 
-    constexpr auto kMinTime = base::TimeDelta::FromMicroseconds(5);
-    constexpr auto kMaxTime = base::TimeDelta::FromMilliseconds(10);
+    constexpr auto kMinTime = base::Microseconds(5);
+    constexpr auto kMaxTime = base::Milliseconds(10);
     constexpr int kTimeBuckets = 50;
     UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
         "Compositing.DirectRenderer.OverlayProcessingUs",
@@ -932,7 +932,7 @@
   // OutputSurface size to |device_viewport_size_|.
   if (device_viewport_size_ == requested_viewport_size &&
       (base::TimeTicks::Now() - last_viewport_resize_time_) >=
-          base::TimeDelta::FromSeconds(1)) {
+          base::Seconds(1)) {
     return requested_viewport_size;
   }
 
diff --git a/components/viz/service/display/display.cc b/components/viz/service/display/display.cc
index a976b53..4e9430b 100644
--- a/components/viz/service/display/display.cc
+++ b/components/viz/service/display/display.cc
@@ -88,13 +88,12 @@
     DrawQuad::Material::kYuvVideoContent,
 };
 
-constexpr base::TimeDelta kAllowedDeltaFromFuture =
-    base::TimeDelta::FromMilliseconds(16);
+constexpr base::TimeDelta kAllowedDeltaFromFuture = base::Milliseconds(16);
 
 // A lower bounds for GetEstimatedDisplayDrawTime, influenced by
 // Compositing.Display.DrawToSwapUs.
 constexpr base::TimeDelta kMinEstimatedDisplayDrawTime =
-    base::TimeDelta::FromMicroseconds(250);
+    base::Microseconds(250);
 
 // Assign each Display instance a starting value for the the display-trace id,
 // so that multiple Displays all don't start at 0, because that makes it
@@ -147,7 +146,7 @@
   if (difference.InMinutes() > 3) {
     UMA_HISTOGRAM_CUSTOM_TIMES(
         "Graphics.PresentationTimestamp.LargePresentationDelta", difference,
-        base::TimeDelta::FromMinutes(3), base::TimeDelta::FromHours(1), 50);
+        base::Minutes(3), base::Hours(1), 50);
   }
   return feedback;
 }
@@ -308,7 +307,7 @@
   auto gpu_latency = feedback.ready_timestamp - swap_timings_.swap_start;
   // TODO(crbug.com/1157620): Move this check to SanitizePresentationFeedback
   // to handle all incorrect feedback cases.
-  if (gpu_latency < base::TimeDelta::FromSeconds(0)) {
+  if (gpu_latency < base::Seconds(0)) {
     DVLOG(1) << "GPU latency is negative: " << gpu_latency.InMillisecondsF()
              << " ms";
     return;
diff --git a/components/viz/service/display/display.h b/components/viz/service/display/display.h
index 842b872c..6efdc09 100644
--- a/components/viz/service/display/display.h
+++ b/components/viz/service/display/display.h
@@ -99,10 +99,8 @@
 
   ~Display() override;
 
-  static constexpr base::TimeDelta kDrawToSwapMin =
-      base::TimeDelta::FromMicroseconds(5);
-  static constexpr base::TimeDelta kDrawToSwapMax =
-      base::TimeDelta::FromMilliseconds(50);
+  static constexpr base::TimeDelta kDrawToSwapMin = base::Microseconds(5);
+  static constexpr base::TimeDelta kDrawToSwapMax = base::Milliseconds(50);
   static constexpr uint32_t kDrawToSwapUsBuckets = 50;
 
   // TODO(cblume, crbug.com/900973): |enable_shared_images| is a temporary
diff --git a/components/viz/service/display/display_perftest.cc b/components/viz/service/display/display_perftest.cc
index a7374b6d..ee829a1 100644
--- a/components/viz/service/display/display_perftest.cc
+++ b/components/viz/service/display/display_perftest.cc
@@ -58,7 +58,7 @@
  public:
   RemoveOverdrawQuadPerfTest()
       : timer_(kWarmupRuns,
-               base::TimeDelta::FromMilliseconds(kTimeLimitMillis),
+               base::Milliseconds(kTimeLimitMillis),
                kTimeCheckInterval),
         task_runner_(base::MakeRefCounted<base::NullTaskRunner>()) {}
 
diff --git a/components/viz/service/display/display_scheduler.cc b/components/viz/service/display/display_scheduler.cc
index 42c894ac..7049029 100644
--- a/components/viz/service/display/display_scheduler.cc
+++ b/components/viz/service/display/display_scheduler.cc
@@ -226,8 +226,7 @@
 
 int DisplayScheduler::MaxPendingSwaps() const {
   // Interval for 120hz with some delta for margin of error.
-  constexpr base::TimeDelta k120HzInterval =
-      base::TimeDelta::FromMicroseconds(8500);
+  constexpr base::TimeDelta k120HzInterval = base::Microseconds(8500);
   if (current_begin_frame_args_.interval > k120HzInterval ||
       !max_pending_swaps_120hz_) {
     return max_pending_swaps_;
diff --git a/components/viz/service/display/display_scheduler_unittest.cc b/components/viz/service/display/display_scheduler_unittest.cc
index 43da8fa..84bc54f 100644
--- a/components/viz/service/display/display_scheduler_unittest.cc
+++ b/components/viz/service/display/display_scheduler_unittest.cc
@@ -180,7 +180,7 @@
                    task_runner_.get(),
                    kMaxPendingSwaps,
                    wait_for_all_surfaces_before_draw) {
-    now_src_.Advance(base::TimeDelta::FromMicroseconds(10000));
+    now_src_.Advance(base::Microseconds(10000));
     scheduler_.SetClient(&client_);
   }
 
@@ -195,7 +195,7 @@
 
   void AdvanceTimeAndBeginFrameForTest(
       const std::vector<SurfaceId>& observing_surfaces) {
-    now_src_.Advance(base::TimeDelta::FromMicroseconds(10000));
+    now_src_.Advance(base::Microseconds(10000));
     // FakeBeginFrameSource deals with |source_id| and |sequence_number|.
     last_begin_frame_args_ = fake_begin_frame_source_.CreateBeginFrameArgs(
         BEGINFRAME_FROM_HERE, &now_src_);
diff --git a/components/viz/service/display/display_unittest.cc b/components/viz/service/display/display_unittest.cc
index 7102252..9819104 100644
--- a/components/viz/service/display/display_unittest.cc
+++ b/components/viz/service/display/display_unittest.cc
@@ -3636,7 +3636,7 @@
 
   // Instead of doing a draw, forward time by ~1 seconds. That should unthrottle
   // the begin-frame.
-  frame_time += base::TimeDelta::FromSecondsD(1.1);
+  frame_time += base::Seconds(1.1);
   EXPECT_TRUE(ShouldSendBeginFrame(support_.get(), frame_time));
 }
 
@@ -3758,7 +3758,7 @@
           .SetActivationDependencies({sub_surface_id2})
           .SetDeadline(FrameDeadline(base::TimeTicks::Now(),
                                      std::numeric_limits<uint32_t>::max(),
-                                     base::TimeDelta::FromSeconds(1), false))
+                                     base::Seconds(1), false))
           .Build();
   support_->SubmitCompositorFrame(id_allocator_.GetCurrentLocalSurfaceId(),
                                   std::move(frame));
@@ -3834,7 +3834,7 @@
     display_->DidReceiveSwapBuffersAck(GetTestSwapTimings(),
                                        /*release_fence=*/gfx::GpuFenceHandle());
     display_->DidReceivePresentationFeedback(
-        {base::TimeTicks::Now() - base::TimeDelta::FromSeconds(1), {}, 0});
+        {base::TimeTicks::Now() - base::Seconds(1), {}, 0});
     EXPECT_THAT(histograms.GetAllSamples(
                     "Graphics.PresentationTimestamp.InvalidFromFuture"),
                 testing::IsEmpty());
@@ -3859,7 +3859,7 @@
     display_->DidReceiveSwapBuffersAck(GetTestSwapTimings(),
                                        /*release_fence=*/gfx::GpuFenceHandle());
     display_->DidReceivePresentationFeedback(
-        {base::TimeTicks::Now() + base::TimeDelta::FromMilliseconds(1),
+        {base::TimeTicks::Now() + base::Milliseconds(1),
          {},
          gfx::PresentationFeedback::kHWClock});
     EXPECT_THAT(histograms.GetAllSamples(
@@ -3882,7 +3882,7 @@
     display_->DidReceiveSwapBuffersAck(GetTestSwapTimings(),
                                        /*release_fence=*/gfx::GpuFenceHandle());
     display_->DidReceivePresentationFeedback(
-        {base::TimeTicks::Now() + base::TimeDelta::FromMilliseconds(1), {}, 0});
+        {base::TimeTicks::Now() + base::Milliseconds(1), {}, 0});
     EXPECT_THAT(histograms.GetAllSamples(
                     "Graphics.PresentationTimestamp.InvalidBeforeSwap"),
                 testing::IsEmpty());
@@ -3906,7 +3906,7 @@
     display_->DidReceiveSwapBuffersAck(GetTestSwapTimings(),
                                        /*release_fence=*/gfx::GpuFenceHandle());
     display_->DidReceivePresentationFeedback(
-        {base::TimeTicks::Now() + base::TimeDelta::FromSeconds(1), {}, 0});
+        {base::TimeTicks::Now() + base::Seconds(1), {}, 0});
     EXPECT_THAT(histograms.GetAllSamples(
                     "Graphics.PresentationTimestamp.InvalidBeforeSwap"),
                 testing::IsEmpty());
@@ -4564,7 +4564,7 @@
     point.Offset(10, 10);
 
     base::TimeTicks timestamp = ink_points_[pointer_id].back().timestamp();
-    timestamp += base::TimeDelta::FromMilliseconds(5);
+    timestamp += base::Milliseconds(5);
 
     CreateAndStoreDelegatedInkPoint(point, timestamp, pointer_id);
   }
@@ -4741,7 +4741,7 @@
   base::TimeDelta bucket_without_prediction =
       last_ink_point(kPointerId).timestamp() - metadata.timestamp();
   FinalizePathAndCheckHistograms(bucket_without_prediction,
-                                 base::TimeDelta::FromMilliseconds(0));
+                                 base::Milliseconds(0));
 
   EXPECT_EQ(kInitialDelegatedPoints - kInkPointForMetadata,
             StoredPointsForPointerId(kPointerId));
@@ -4779,8 +4779,7 @@
   // due to not finding a matching pointer ID to predict with.
   const int kExpectedPoints = StoredPointsForPointerId(kPointerId);
   SendMetadata(metadata);
-  FinalizePathAndCheckHistograms(base::TimeDelta::FromMilliseconds(0),
-                                 base::TimeDelta::Min());
+  FinalizePathAndCheckHistograms(base::Milliseconds(0), base::TimeDelta::Min());
   EXPECT_EQ(kExpectedPoints, StoredPointsForPointerId(kPointerId));
 }
 
@@ -4801,7 +4800,7 @@
     // result in multiple pointer ids having identical DelegatedInkPoints
     CreateAndStoreDelegatedInkPoint(gfx::PointF(i * 5, i * 10), timestamp,
                                     kPointerIds[i]);
-    timestamp += base::TimeDelta::FromMilliseconds(5);
+    timestamp += base::Milliseconds(5);
   }
 
   EXPECT_EQ(static_cast<int>(kPointerIds.size()), UniqueStoredPointerIds());
@@ -4840,11 +4839,10 @@
   FinalizePathAndCheckHistograms(
       bucket_without_prediction,
       bucket_without_prediction +
-          base::TimeDelta::FromMilliseconds(
-              kPredictionConfigs[PredictionConfig::k1Point12Ms]
-                  .milliseconds_into_future_per_point *
-              kPredictionConfigs[PredictionConfig::k1Point12Ms]
-                  .points_to_predict));
+          base::Milliseconds(kPredictionConfigs[PredictionConfig::k1Point12Ms]
+                                 .milliseconds_into_future_per_point *
+                             kPredictionConfigs[PredictionConfig::k1Point12Ms]
+                                 .points_to_predict));
 
   // Confirm the size, first, and last points of the first pointer ID are what
   // we expect.
@@ -4868,8 +4866,7 @@
   SendMetadata(gfx::DelegatedInkMetadata(
       gfx::PointF(100, 100), 5.6f, SK_ColorBLACK, base::TimeTicks::Min(),
       gfx::RectF(), base::TimeTicks::Min(), /*hovering*/ false));
-  FinalizePathAndCheckHistograms(base::TimeDelta::FromMilliseconds(0),
-                                 base::TimeDelta::Min());
+  FinalizePathAndCheckHistograms(base::Milliseconds(0), base::TimeDelta::Min());
   EXPECT_EQ(kNumPointsForPointerId0 - kInkPointForMetadata,
             StoredPointsForPointerId(kPointerIds[0]));
   for (uint64_t i = 1; i < kPointerIds.size(); ++i) {
@@ -4882,10 +4879,9 @@
   // will still exist as they contains the predictors as well.
   SendMetadata(gfx::DelegatedInkMetadata(
       gfx::PointF(100, 100), 5.6f, SK_ColorBLACK,
-      base::TimeTicks::Now() + base::TimeDelta::FromMilliseconds(1000),
-      gfx::RectF(), base::TimeTicks::Now(), /*hovering*/ false));
-  FinalizePathAndCheckHistograms(base::TimeDelta::FromMilliseconds(0),
-                                 base::TimeDelta::Min());
+      base::TimeTicks::Now() + base::Milliseconds(1000), gfx::RectF(),
+      base::TimeTicks::Now(), /*hovering*/ false));
+  FinalizePathAndCheckHistograms(base::Milliseconds(0), base::TimeDelta::Min());
   for (int i : kPointerIds)
     EXPECT_EQ(0, StoredPointsForPointerId(i));
 }
@@ -4904,14 +4900,11 @@
   const int32_t kPointerId = 17;
   CreateAndStoreDelegatedInkPoint(gfx::PointF(20, 19), timestamp, kPointerId);
   CreateAndStoreDelegatedInkPoint(
-      gfx::PointF(15, 19), timestamp + base::TimeDelta::FromMilliseconds(8),
-      kPointerId);
+      gfx::PointF(15, 19), timestamp + base::Milliseconds(8), kPointerId);
   CreateAndStoreDelegatedInkPoint(
-      gfx::PointF(16, 28), timestamp + base::TimeDelta::FromMilliseconds(16),
-      kPointerId);
+      gfx::PointF(16, 28), timestamp + base::Milliseconds(16), kPointerId);
   CreateAndStoreDelegatedInkPoint(
-      gfx::PointF(29, 35), timestamp + base::TimeDelta::FromMilliseconds(24),
-      kPointerId);
+      gfx::PointF(29, 35), timestamp + base::Milliseconds(24), kPointerId);
 
   // Provide a metadata so that points can be drawn, based on the first ink
   // point that was sent.
@@ -4924,16 +4917,14 @@
   // *WithPrediction should be able to predict here, so it should contain 1 in
   // the bucket that is |kNumberOfMillisecondsIntoFutureToPredictPerPoint| *
   // |kNumberOfPointsToPredict| into the future from 24 ms bucket.
-  base::TimeDelta bucket_without_prediction =
-      base::TimeDelta::FromMilliseconds(24);
+  base::TimeDelta bucket_without_prediction = base::Milliseconds(24);
   FinalizePathAndCheckHistograms(
       bucket_without_prediction,
       bucket_without_prediction +
-          base::TimeDelta::FromMilliseconds(
-              kPredictionConfigs[PredictionConfig::k1Point12Ms]
-                  .milliseconds_into_future_per_point *
-              kPredictionConfigs[PredictionConfig::k1Point12Ms]
-                  .points_to_predict));
+          base::Milliseconds(kPredictionConfigs[PredictionConfig::k1Point12Ms]
+                                 .milliseconds_into_future_per_point *
+                             kPredictionConfigs[PredictionConfig::k1Point12Ms]
+                                 .points_to_predict));
 
   // Now provide metadata that matches the final ink point provided, so that
   // everything earlier is filtered out. Then the *WithoutPrediction histogram
@@ -4941,10 +4932,10 @@
   // still be able to predict points, so it should have counted one.
   MakeAndSendMetadataFromStoredInkPoint(/*index*/ 3, kDiameter, SK_ColorBLACK,
                                         gfx::RectF());
-  bucket_without_prediction = base::TimeDelta::FromMilliseconds(0);
+  bucket_without_prediction = base::Milliseconds(0);
   FinalizePathAndCheckHistograms(
       bucket_without_prediction,
-      base::TimeDelta::FromMilliseconds(
+      base::Milliseconds(
           kPredictionConfigs[PredictionConfig::k1Point12Ms]
               .milliseconds_into_future_per_point *
           kPredictionConfigs[PredictionConfig::k1Point12Ms].points_to_predict));
@@ -4959,11 +4950,9 @@
   timestamp = base::TimeTicks::Now();
   CreateAndStoreDelegatedInkPoint(gfx::PointF(85, 56), timestamp, kPointerId);
   CreateAndStoreDelegatedInkPoint(
-      gfx::PointF(96, 70), timestamp + base::TimeDelta::FromMilliseconds(2),
-      kPointerId);
+      gfx::PointF(96, 70), timestamp + base::Milliseconds(2), kPointerId);
   CreateAndStoreDelegatedInkPoint(
-      gfx::PointF(112, 94), timestamp + base::TimeDelta::FromMilliseconds(10),
-      kPointerId);
+      gfx::PointF(112, 94), timestamp + base::Milliseconds(10), kPointerId);
   FinalizePathAndCheckHistograms(base::TimeDelta::Min(),
                                  base::TimeDelta::Min());
 }
@@ -4977,15 +4966,14 @@
   // the first point, but within DelegatedInkPointRendererBase::kEpsilon of
   // the point so that a trail is drawn.
   base::TimeTicks timestamp = base::TimeTicks::Now();
-  base::TimeTicks timestamp2 = timestamp + base::TimeDelta::FromMilliseconds(8);
+  base::TimeTicks timestamp2 = timestamp + base::Milliseconds(8);
   gfx::PointF point(45.f, 78.f);
   gfx::PointF point2(68.f, 89.f);
   const int32_t kPointerId = 17;
   CreateAndStoreDelegatedInkPoint(point, timestamp, kPointerId);
   CreateAndStoreDelegatedInkPoint(point2, timestamp2, kPointerId);
   CreateAndStoreDelegatedInkPoint(
-      gfx::PointF(80.f, 70.f),
-      timestamp2 + base::TimeDelta::FromMilliseconds(8), kPointerId);
+      gfx::PointF(80.f, 70.f), timestamp2 + base::Milliseconds(8), kPointerId);
 
   gfx::DelegatedInkMetadata metadata(
       gfx::PointF(point.x() - 0.03f, point.y() + 0.03f), 45.f, SK_ColorBLACK,
diff --git a/components/viz/service/display/frame_rate_decider.cc b/components/viz/service/display/frame_rate_decider.cc
index ee93f143..b5c392d 100644
--- a/components/viz/service/display/frame_rate_decider.cc
+++ b/components/viz/service/display/frame_rate_decider.cc
@@ -25,7 +25,7 @@
   if (a.is_min() || b.is_min() || a.is_max() || b.is_max())
     return a == b;
 
-  constexpr auto kMaxDelta = base::TimeDelta::FromMillisecondsD(0.5);
+  constexpr auto kMaxDelta = base::Milliseconds(0.5);
   return (a - b).magnitude() < kMaxDelta;
 }
 
@@ -55,7 +55,7 @@
   // 24Hz.
   double interval_in_seconds = 1.0 / 24.0;
   frame_interval_for_sinks_with_no_preference_ =
-      base::TimeDelta::FromSecondsD(interval_in_seconds);
+      base::Seconds(interval_in_seconds);
 
   surface_manager_->AddObserver(this);
 }
diff --git a/components/viz/service/display/frame_rate_decider.h b/components/viz/service/display/frame_rate_decider.h
index 818374a..19e437c 100644
--- a/components/viz/service/display/frame_rate_decider.h
+++ b/components/viz/service/display/frame_rate_decider.h
@@ -40,7 +40,7 @@
   // any preferred setting and should let the platform decide the display's
   // refresh rate.
   static constexpr base::TimeDelta UnspecifiedFrameInterval() {
-    return base::TimeDelta::FromSeconds(0);
+    return base::Seconds(0);
   }
 
   // This object should be created and held for the duration when surface
diff --git a/components/viz/service/display/frame_rate_decider_unittest.cc b/components/viz/service/display/frame_rate_decider_unittest.cc
index ce48185..8db6a25 100644
--- a/components/viz/service/display/frame_rate_decider_unittest.cc
+++ b/components/viz/service/display/frame_rate_decider_unittest.cc
@@ -109,7 +109,7 @@
 
 TEST_F(FrameRateDeciderTest, ActiveSurfaceTrackingFrameIndexChange) {
   const FrameSinkId frame_sink_id(1u, 1u);
-  const base::TimeDelta preferred_interval = base::TimeDelta::FromSeconds(1);
+  const base::TimeDelta preferred_interval = base::Seconds(1);
   preferred_intervals_[frame_sink_id] = preferred_interval;
 
   const std::vector<base::TimeDelta> supported_intervals = {
@@ -140,7 +140,7 @@
 
 TEST_F(FrameRateDeciderTest, ActiveSurfaceTrackingSurfaceIdChange) {
   const FrameSinkId frame_sink_id(1u, 1u);
-  const base::TimeDelta preferred_interval = base::TimeDelta::FromSeconds(1);
+  const base::TimeDelta preferred_interval = base::Seconds(1);
   preferred_intervals_[frame_sink_id] = preferred_interval;
 
   const std::vector<base::TimeDelta> supported_intervals = {
@@ -170,7 +170,7 @@
 
 TEST_F(FrameRateDeciderTest,
        SurfaceWithMinIntervalPicksLowestSupportedInterval) {
-  base::TimeDelta min_supported_interval = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta min_supported_interval = base::Seconds(1);
   const std::vector<base::TimeDelta> supported_intervals = {
       min_supported_interval * 3, min_supported_interval * 2,
       min_supported_interval};
@@ -211,7 +211,7 @@
 }
 
 TEST_F(FrameRateDeciderTest, OptimalFrameSinkIntervelIsPicked) {
-  base::TimeDelta min_supported_interval = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta min_supported_interval = base::Seconds(1);
   const std::vector<base::TimeDelta> supported_intervals = {
       min_supported_interval * 2, min_supported_interval};
   frame_rate_decider_->SetSupportedFrameIntervals(supported_intervals);
@@ -255,7 +255,7 @@
 }
 
 TEST_F(FrameRateDeciderTest, MinFrameSinkIntervalIsPicked) {
-  base::TimeDelta min_supported_interval = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta min_supported_interval = base::Seconds(1);
   const std::vector<base::TimeDelta> supported_intervals = {
       min_supported_interval * 3, min_supported_interval * 2,
       min_supported_interval};
@@ -289,7 +289,7 @@
 }
 
 TEST_F(FrameRateDeciderTest, TogglesAfterMinNumOfFrames) {
-  base::TimeDelta min_supported_interval = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta min_supported_interval = base::Seconds(1);
   const std::vector<base::TimeDelta> supported_intervals = {
       min_supported_interval * 2, min_supported_interval};
   frame_rate_decider_->SetSupportedFrameIntervals(supported_intervals);
@@ -333,7 +333,7 @@
       surface_manager_.get(), this, hw_support_for_multiple_refresh_rate,
       false);
   frame_rate_decider_->set_min_num_of_frames_to_toggle_interval_for_testing(0u);
-  base::TimeDelta min_supported_interval = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta min_supported_interval = base::Seconds(1);
   const std::vector<base::TimeDelta> supported_intervals = {
       min_supported_interval * 2, min_supported_interval};
   frame_rate_decider_->SetSupportedFrameIntervals(supported_intervals);
@@ -378,7 +378,7 @@
 }
 
 TEST_F(FrameRateDeciderTest, ManySinksWithMinInterval) {
-  base::TimeDelta min_supported_interval = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta min_supported_interval = base::Seconds(1);
   const std::vector<base::TimeDelta> supported_intervals = {
       min_supported_interval * 3, min_supported_interval * 2,
       min_supported_interval};
@@ -407,7 +407,7 @@
 
 // If there are no fixed frame sources, we should not lower the frame interval.
 TEST_F(FrameRateDeciderTest, NoFixedIntervalSurfaces) {
-  base::TimeDelta min_supported_interval = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta min_supported_interval = base::Seconds(1);
   const std::vector<base::TimeDelta> supported_intervals = {
       min_supported_interval * 3, min_supported_interval * 2,
       min_supported_interval};
@@ -439,7 +439,7 @@
       surface_manager_.get(), this, hw_support_for_multiple_refresh_rate,
       false);
   frame_rate_decider_->set_min_num_of_frames_to_toggle_interval_for_testing(0u);
-  base::TimeDelta min_supported_interval = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta min_supported_interval = base::Seconds(1);
   const std::vector<base::TimeDelta> supported_intervals = {
       min_supported_interval * 3, min_supported_interval * 2,
       min_supported_interval};
diff --git a/components/viz/service/display/gl_renderer.cc b/components/viz/service/display/gl_renderer.cc
index 34f6df83..16bc49b 100644
--- a/components/viz/service/display/gl_renderer.cc
+++ b/components/viz/service/display/gl_renderer.cc
@@ -3133,7 +3133,7 @@
     durations.emplace(duration, timer_queries_.front().second);
     queries_to_delete.push_back(timer_queries_.front().first);
     timer_queries_.pop();
-    start_time_ticks -= base::TimeDelta::FromNanoseconds(duration);
+    start_time_ticks -= base::Nanoseconds(duration);
   }
 
   // Delete all timer queries for which results have been retrieved.
@@ -3159,7 +3159,7 @@
         TRACE_DISABLED_BY_DEFAULT("viz.gpu_composite_time"), "Composite Time",
         TRACE_ID_LOCAL(trace_unique_id), durations.front().second.c_str(),
         start_time_ticks);
-    start_time_ticks += base::TimeDelta::FromNanoseconds(duration);
+    start_time_ticks += base::Nanoseconds(duration);
     durations.pop();
   }
 
diff --git a/components/viz/service/display/overlay_unittest.cc b/components/viz/service/display/overlay_unittest.cc
index 7b58eff8..779745d 100644
--- a/components/viz/service/display/overlay_unittest.cc
+++ b/components/viz/service/display/overlay_unittest.cc
@@ -4341,7 +4341,7 @@
   Mock::VerifyAndClearExpectations(&scheduler_);
 
   // Tighten OutputSurface size after 1 second passes without size changes.
-  TimeTicksOverride::now_ticks_ += base::TimeDelta::FromMilliseconds(999);
+  TimeTicksOverride::now_ticks_ += base::Milliseconds(999);
 
   pass = CreateRenderPass();
   CreateOpaqueQuadAt(resource_provider_.get(),
@@ -4358,7 +4358,7 @@
   EXPECT_EQ(gfx::Size(2304, 2304), output_surface_->size());
   Mock::VerifyAndClearExpectations(&scheduler_);
 
-  TimeTicksOverride::now_ticks_ += base::TimeDelta::FromMilliseconds(1);
+  TimeTicksOverride::now_ticks_ += base::Milliseconds(1);
 
   pass = CreateRenderPass();
   CreateOpaqueQuadAt(resource_provider_.get(),
diff --git a/components/viz/service/display/renderer_pixeltest.cc b/components/viz/service/display/renderer_pixeltest.cc
index 1aec7473..7bbca07 100644
--- a/components/viz/service/display/renderer_pixeltest.cc
+++ b/components/viz/service/display/renderer_pixeltest.cc
@@ -5606,25 +5606,21 @@
   const base::TimeTicks kPointerId1StartTime = kTimestamp;
   const gfx::PointF kPointerId2StartPoint(160, 190);
   const base::TimeTicks kPointerId2StartTime =
-      kTimestamp + base::TimeDelta::FromMilliseconds(15);
+      kTimestamp + base::Milliseconds(15);
 
   // Send four points for pointer ID 1 and two points for pointer ID 2 in mixed
   // order to confirm that they get put in the right buckets. Some timestamps
   // match intentionally to make sure that point is considered when matching
   // DelegatedInkMetadata to DelegatedInkPoints
   CreateAndSendPoint(kPointerId1StartPoint, kPointerId1StartTime, kPointerId1);
-  CreateAndSendPoint(gfx::PointF(24, 80),
-                     kTimestamp + base::TimeDelta::FromMilliseconds(15),
+  CreateAndSendPoint(gfx::PointF(24, 80), kTimestamp + base::Milliseconds(15),
                      kPointerId1);
   CreateAndSendPoint(kPointerId2StartPoint, kPointerId2StartTime, kPointerId2);
-  CreateAndSendPoint(gfx::PointF(60, 130),
-                     kTimestamp + base::TimeDelta::FromMilliseconds(24),
+  CreateAndSendPoint(gfx::PointF(60, 130), kTimestamp + base::Milliseconds(24),
                      kPointerId1);
-  CreateAndSendPoint(gfx::PointF(80, 118),
-                     kTimestamp + base::TimeDelta::FromMilliseconds(20),
+  CreateAndSendPoint(gfx::PointF(80, 118), kTimestamp + base::Milliseconds(20),
                      kPointerId2);
-  CreateAndSendPoint(gfx::PointF(100, 190),
-                     kTimestamp + base::TimeDelta::FromMilliseconds(30),
+  CreateAndSendPoint(gfx::PointF(100, 190), kTimestamp + base::Milliseconds(30),
                      kPointerId1);
 
   const gfx::RectF kPresentationArea(200, 200);
diff --git a/components/viz/service/display/surface_aggregator.h b/components/viz/service/display/surface_aggregator.h
index c51865aa..f9c2e5d 100644
--- a/components/viz/service/display/surface_aggregator.h
+++ b/components/viz/service/display/surface_aggregator.h
@@ -62,10 +62,8 @@
 
   // These constants are used for all time related metrics recorded in
   // SurfaceAggregator.
-  static constexpr base::TimeDelta kHistogramMinTime =
-      base::TimeDelta::FromMicroseconds(5);
-  static constexpr base::TimeDelta kHistogramMaxTime =
-      base::TimeDelta::FromMilliseconds(10);
+  static constexpr base::TimeDelta kHistogramMinTime = base::Microseconds(5);
+  static constexpr base::TimeDelta kHistogramMaxTime = base::Milliseconds(10);
   static constexpr int kHistogramTimeBuckets = 50;
 
   // |target_damage| represents an area on the output surface that might have
diff --git a/components/viz/service/display/surface_aggregator_perftest.cc b/components/viz/service/display/surface_aggregator_perftest.cc
index 808d18a..d58bf38 100644
--- a/components/viz/service/display/surface_aggregator_perftest.cc
+++ b/components/viz/service/display/surface_aggregator_perftest.cc
@@ -157,7 +157,7 @@
         nullptr, &manager_, FrameSinkId(1, num_surfaces + 1), /*is_root=*/true);
     auto root_token = base::UnguessableToken::Create();
     base::TimeTicks next_fake_display_time =
-        base::TimeTicks() + base::TimeDelta::FromSeconds(1);
+        base::TimeTicks() + base::Seconds(1);
 
     bool first_lap = true;
     timer_.Reset();
@@ -287,7 +287,7 @@
         nullptr, &manager_, root_frame_sink_id, /*is_root=*/true);
 
     base::TimeTicks next_fake_display_time =
-        base::TimeTicks() + base::TimeDelta::FromSeconds(1);
+        base::TimeTicks() + base::Seconds(1);
 
     timer_.Reset();
     do {
@@ -396,7 +396,7 @@
             base::Histogram::kNoFlags);
 
     base::TimeTicks next_fake_display_time =
-        base::TimeTicks() + base::TimeDelta::FromSeconds(1);
+        base::TimeTicks() + base::Seconds(1);
     timer_.Reset();
     int laps = 0;
     do {
diff --git a/components/viz/service/display/surface_aggregator_pixeltest.cc b/components/viz/service/display/surface_aggregator_pixeltest.cc
index ae4b37f..2761751 100644
--- a/components/viz/service/display/surface_aggregator_pixeltest.cc
+++ b/components/viz/service/display/surface_aggregator_pixeltest.cc
@@ -57,8 +57,7 @@
   FrameSinkManagerImpl manager_;
   ParentLocalSurfaceIdAllocator root_allocator_;
   std::unique_ptr<CompositorFrameSinkSupport> support_;
-  base::TimeTicks next_display_time_ =
-      base::TimeTicks() + base::TimeDelta::FromSeconds(1);
+  base::TimeTicks next_display_time_ = base::TimeTicks() + base::Seconds(1);
 };
 
 INSTANTIATE_TEST_SUITE_P(,
diff --git a/components/viz/service/display/surface_aggregator_unittest.cc b/components/viz/service/display/surface_aggregator_unittest.cc
index f374c1d..937580d6 100644
--- a/components/viz/service/display/surface_aggregator_unittest.cc
+++ b/components/viz/service/display/surface_aggregator_unittest.cc
@@ -114,8 +114,7 @@
   }
 
  private:
-  base::TimeTicks next_display_time_ =
-      base::TimeTicks() + base::TimeDelta::FromSeconds(1);
+  base::TimeTicks next_display_time_ = base::TimeTicks() + base::Seconds(1);
 };
 
 }  // namespace
@@ -8805,9 +8804,9 @@
       gfx::RectF(50, 50, 300, 300), base::TimeTicks::Now(), /*hovering*/ false);
   gfx::DelegatedInkMetadata later_metadata(
       gfx::PointF(92, 35), 0.08, SK_ColorYELLOW,
-      base::TimeTicks::Now() + base::TimeDelta::FromMicroseconds(50),
+      base::TimeTicks::Now() + base::Microseconds(50),
       gfx::RectF(35, 55, 128, 256),
-      base::TimeTicks::Now() + base::TimeDelta::FromMicroseconds(52),
+      base::TimeTicks::Now() + base::Microseconds(52),
       /*hovering*/ true);
 
   CompositorFrame child_2_frame = MakeEmptyCompositorFrame();
diff --git a/components/viz/service/display/viz_perftest.cc b/components/viz/service/display/viz_perftest.cc
index 3047cfa..babb38e4 100644
--- a/components/viz/service/display/viz_perftest.cc
+++ b/components/viz/service/display/viz_perftest.cc
@@ -115,10 +115,10 @@
     int delay_millis;
     if (base::StringToInt(delay_millis_string, &delay_millis) &&
         delay_millis > 0) {
-      return base::TimeDelta::FromMilliseconds(delay_millis);
+      return base::Milliseconds(delay_millis);
     }
   }
-  return base::TimeDelta::FromSeconds(3);
+  return base::Seconds(3);
 }
 
 }  // namespace
diff --git a/components/viz/service/display_embedder/gl_output_surface_offscreen.cc b/components/viz/service/display_embedder/gl_output_surface_offscreen.cc
index 7e61d17..9e7190ad 100644
--- a/components/viz/service/display_embedder/gl_output_surface_offscreen.cc
+++ b/components/viz/service/display_embedder/gl_output_surface_offscreen.cc
@@ -129,8 +129,8 @@
   auto now = base::TimeTicks::Now();
   client()->DidReceiveSwapBuffersAck({.swap_start = now},
                                      /*release_fence=*/gfx::GpuFenceHandle());
-  client()->DidReceivePresentationFeedback(gfx::PresentationFeedback(
-      now, base::TimeDelta::FromMilliseconds(16), /*flags=*/0));
+  client()->DidReceivePresentationFeedback(
+      gfx::PresentationFeedback(now, base::Milliseconds(16), /*flags=*/0));
 
   if (needs_swap_size_notifications())
     client()->DidSwapWithSize(size_);
diff --git a/components/viz/service/display_embedder/output_presenter_fuchsia.cc b/components/viz/service/display_embedder/output_presenter_fuchsia.cc
index 0f5c3e0b..fc59a39 100644
--- a/components/viz/service/display_embedder/output_presenter_fuchsia.cc
+++ b/components/viz/service/display_embedder/output_presenter_fuchsia.cc
@@ -473,7 +473,7 @@
         frame.ordinal - presentation_state_->presented_frame_ordinal;
     present_time = presentation_state_->presentation_time +
                    presentation_state_->interval * relative_position -
-                   base::TimeDelta::FromMilliseconds(1);
+                   base::Milliseconds(1);
     present_time = std::max(present_time, now);
   }
 
diff --git a/components/viz/service/display_embedder/output_presenter_x11.cc b/components/viz/service/display_embedder/output_presenter_x11.cc
index 239ba8c..9014892 100644
--- a/components/viz/service/display_embedder/output_presenter_x11.cc
+++ b/components/viz/service/display_embedder/output_presenter_x11.cc
@@ -474,12 +474,11 @@
   if (event->msc > last_present_msc_)
     last_present_msc_ = event->msc;
 
-  auto timestamp =
-      base::TimeTicks() + base::TimeDelta::FromMicroseconds(event->ust);
+  auto timestamp = base::TimeTicks() + base::Microseconds(event->ust);
   // Assume the refresh rate is 60 Hz for now.
   // TODO(penghuang): query refresh rate from Xserver.
-  constexpr auto kInterval = base::TimeDelta::FromMicroseconds(
-      base::Time::kMicrosecondsPerSecond / 60);
+  constexpr auto kInterval =
+      base::Microseconds(base::Time::kMicrosecondsPerSecond / 60);
   uint32_t flags = gfx::PresentationFeedback::kVSync;
   if (event->mode == x11::Present::CompleteMode::Flip)
     flags |= gfx::PresentationFeedback::kZeroCopy;
diff --git a/components/viz/service/display_embedder/skia_output_device_buffer_queue.cc b/components/viz/service/display_embedder/skia_output_device_buffer_queue.cc
index df3c9cef..537fa785 100644
--- a/components/viz/service/display_embedder/skia_output_device_buffer_queue.cc
+++ b/components/viz/service/display_embedder/skia_output_device_buffer_queue.cc
@@ -30,7 +30,7 @@
 base::TimeTicks g_last_reshape_failure = base::TimeTicks();
 
 NOINLINE void CheckForLoopFailuresBufferQueue() {
-  const auto threshold = base::TimeDelta::FromSeconds(1);
+  const auto threshold = base::Seconds(1);
   auto now = base::TimeTicks::Now();
   if (!g_last_reshape_failure.is_null() &&
       now - g_last_reshape_failure < threshold) {
diff --git a/components/viz/service/display_embedder/skia_output_device_gl.cc b/components/viz/service/display_embedder/skia_output_device_gl.cc
index 5a4d94e..fb24a7b 100644
--- a/components/viz/service/display_embedder/skia_output_device_gl.cc
+++ b/components/viz/service/display_embedder/skia_output_device_gl.cc
@@ -42,7 +42,7 @@
 base::TimeTicks g_last_reshape_failure = base::TimeTicks();
 
 NOINLINE void CheckForLoopFailures() {
-  const auto threshold = base::TimeDelta::FromSeconds(1);
+  const auto threshold = base::Seconds(1);
   auto now = base::TimeTicks::Now();
   if (!g_last_reshape_failure.is_null() &&
       now - g_last_reshape_failure < threshold) {
diff --git a/components/viz/service/display_embedder/skia_output_surface_dependency_impl.cc b/components/viz/service/display_embedder/skia_output_surface_dependency_impl.cc
index d7c7f7f8..2edc3695 100644
--- a/components/viz/service/display_embedder/skia_output_surface_dependency_impl.cc
+++ b/components/viz/service/display_embedder/skia_output_surface_dependency_impl.cc
@@ -134,8 +134,7 @@
 
 void SkiaOutputSurfaceDependencyImpl::ScheduleDelayedGPUTaskFromGPUThread(
     base::OnceClosure task) {
-  constexpr base::TimeDelta kDelayForDelayedWork =
-      base::TimeDelta::FromMilliseconds(2);
+  constexpr base::TimeDelta kDelayForDelayedWork = base::Milliseconds(2);
   gpu_service_impl_->gpu_task_runner()->PostDelayedTask(
       FROM_HERE, std::move(task), kDelayForDelayedWork);
 }
diff --git a/components/viz/service/display_embedder/skia_output_surface_impl.cc b/components/viz/service/display_embedder/skia_output_surface_impl.cc
index a3f5121..515e16f 100644
--- a/components/viz/service/display_embedder/skia_output_surface_impl.cc
+++ b/components/viz/service/display_embedder/skia_output_surface_impl.cc
@@ -1236,8 +1236,7 @@
   if (num_allocated_buffers_ <= 1)
     return;
 
-  constexpr base::TimeDelta kDropFrameBufferDelay =
-      base::TimeDelta::FromSeconds(5);
+  constexpr base::TimeDelta kDropFrameBufferDelay = base::Seconds(5);
   idle_drop_frame_buffer_timer_.Start(
       FROM_HERE, kDropFrameBufferDelay,
       base::BindOnce(
diff --git a/components/viz/service/display_embedder/vsync_parameter_listener.h b/components/viz/service/display_embedder/vsync_parameter_listener.h
index 3dc9c9c9..1e03a6f 100644
--- a/components/viz/service/display_embedder/vsync_parameter_listener.h
+++ b/components/viz/service/display_embedder/vsync_parameter_listener.h
@@ -35,8 +35,7 @@
  private:
   friend class VSyncParameterListenerTestRunner;
 
-  static constexpr base::TimeDelta kMaxTimebaseSkew =
-      base::TimeDelta::FromMicroseconds(25);
+  static constexpr base::TimeDelta kMaxTimebaseSkew = base::Microseconds(25);
 
   bool ShouldSendUpdate(base::TimeTicks timebase, base::TimeDelta interval);
 
diff --git a/components/viz/service/display_embedder/vsync_parameter_listener_unittest.cc b/components/viz/service/display_embedder/vsync_parameter_listener_unittest.cc
index 20dfc1a..f60c0a12 100644
--- a/components/viz/service/display_embedder/vsync_parameter_listener_unittest.cc
+++ b/components/viz/service/display_embedder/vsync_parameter_listener_unittest.cc
@@ -13,9 +13,8 @@
 class VSyncParameterListenerTestRunner {
  public:
   VSyncParameterListenerTestRunner(int64_t interval_us, int64_t timebase_us)
-      : interval_(base::TimeDelta::FromMicroseconds(interval_us)),
-        timebase_(base::TimeTicks() +
-                  base::TimeDelta::FromMicroseconds(timebase_us)) {}
+      : interval_(base::Microseconds(interval_us)),
+        timebase_(base::TimeTicks() + base::Microseconds(timebase_us)) {}
 
   void RunTests() {
     const uint64_t interval_us = interval_.InMicroseconds();
@@ -59,8 +58,7 @@
     EXPECT_TRUE(listener.ShouldSendUpdate(timebase_, interval_));
 
     return listener.ShouldSendUpdate(
-        timebase_ + base::TimeDelta::FromMicroseconds(timebase_difference_us),
-        interval_);
+        timebase_ + base::Microseconds(timebase_difference_us), interval_);
   }
 
   base::TimeDelta interval_;
diff --git a/components/viz/service/frame_sinks/compositor_frame_sink_support.cc b/components/viz/service/frame_sinks/compositor_frame_sink_support.cc
index 7c901ad5..c010637 100644
--- a/components/viz/service/frame_sinks/compositor_frame_sink_support.cc
+++ b/components/viz/service/frame_sinks/compositor_frame_sink_support.cc
@@ -1034,7 +1034,7 @@
   // the last one was sent, either because clients are unresponsive or have
   // submitted too many undrawn frames.
   const bool can_throttle_if_unresponsive_or_excessive =
-      frame_time - last_frame_time_ < base::TimeDelta::FromSeconds(1);
+      frame_time - last_frame_time_ < base::Seconds(1);
 
   // If there are pending timing details from the previous frame(s),
   // then the client needs to receive the begin-frame.
diff --git a/components/viz/service/frame_sinks/compositor_frame_sink_support_unittest.cc b/components/viz/service/frame_sinks/compositor_frame_sink_support_unittest.cc
index ca90f5aa..1140bf4f 100644
--- a/components/viz/service/frame_sinks/compositor_frame_sink_support_unittest.cc
+++ b/components/viz/service/frame_sinks/compositor_frame_sink_support_unittest.cc
@@ -240,7 +240,7 @@
     support->DidPresentCompositorFrame(
         frame_token, draw_time, timings,
         gfx::PresentationFeedback(base::TimeTicks::Now(),
-                                  base::TimeDelta::FromMilliseconds(16),
+                                  base::Milliseconds(16),
                                   /*flags=*/0));
   }
 
@@ -1500,8 +1500,7 @@
   }
 
   for (; sent_frames < BeginFrameTracker::kLimitStop; ++sent_frames) {
-    base::TimeTicks unthrottle_time =
-        frametime + base::TimeDelta::FromSeconds(1);
+    base::TimeTicks unthrottle_time = frametime + base::Seconds(1);
 
     // The client should now be throttled for the next second and won't receive
     // OnBeginFrames().
@@ -1512,7 +1511,7 @@
     begin_frame_source.TestOnBeginFrame(args);
     testing::Mock::VerifyAndClearExpectations(&mock_client);
 
-    frametime = unthrottle_time - base::TimeDelta::FromMicroseconds(1);
+    frametime = unthrottle_time - base::Microseconds(1);
     args = CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, 0,
                                           sequence_number++, frametime);
     EXPECT_CALL(mock_client, OnBeginFrame(args, _)).Times(0);
@@ -1532,7 +1531,7 @@
 
   // The client should no longer receive OnBeginFrame() until it becomes
   // responsive again.
-  frametime += base::TimeDelta::FromMinutes(1);
+  frametime += base::Minutes(1);
   args = CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, 0,
                                         sequence_number++, frametime);
   EXPECT_CALL(mock_client, OnBeginFrame(args, _)).Times(0);
@@ -1566,8 +1565,7 @@
   support->SetBeginFrameSource(&begin_frame_source);
   support->SetNeedsBeginFrame(true);
   constexpr uint8_t fps = 5;
-  constexpr base::TimeDelta throttled_interval =
-      base::TimeDelta::FromSeconds(1) / fps;
+  constexpr base::TimeDelta throttled_interval = base::Seconds(1) / fps;
   support->ThrottleBeginFrame(throttled_interval);
 
   constexpr base::TimeDelta interval = BeginFrameArgs::DefaultInterval();
@@ -1576,7 +1574,7 @@
   int sent_frames = 0;
   BeginFrameArgs args;
   uint64_t frames_throttled_since_last = 0;
-  const base::TimeTicks end_time = frame_time + base::TimeDelta::FromSeconds(2);
+  const base::TimeTicks end_time = frame_time + base::Seconds(2);
 
   base::TimeTicks next_expected_begin_frame = frame_time;
   while (frame_time < end_time) {
diff --git a/components/viz/service/frame_sinks/external_begin_frame_source_android.cc b/components/viz/service/frame_sinks/external_begin_frame_source_android.cc
index f7944c3a4..49f8b53 100644
--- a/components/viz/service/frame_sinks/external_begin_frame_source_android.cc
+++ b/components/viz/service/frame_sinks/external_begin_frame_source_android.cc
@@ -34,9 +34,8 @@
   DCHECK_EQ(base::TimeTicks::GetClock(),
             base::TimeTicks::Clock::LINUX_CLOCK_MONOTONIC);
   base::TimeTicks frame_time =
-      base::TimeTicks() + base::TimeDelta::FromMicroseconds(time_micros);
-  base::TimeDelta vsync_period(
-      base::TimeDelta::FromMicroseconds(period_micros));
+      base::TimeTicks() + base::Microseconds(time_micros);
+  base::TimeDelta vsync_period(base::Microseconds(period_micros));
   // Calculate the next frame deadline:
   base::TimeTicks deadline = frame_time + vsync_period;
 
diff --git a/components/viz/service/frame_sinks/frame_sink_manager_unittest.cc b/components/viz/service/frame_sinks/frame_sink_manager_unittest.cc
index 7a52b6d..16cb55f 100644
--- a/components/viz/service/frame_sinks/frame_sink_manager_unittest.cc
+++ b/components/viz/service/frame_sinks/frame_sink_manager_unittest.cc
@@ -439,7 +439,7 @@
   manager_.RegisterFrameSinkHierarchy(client_c->frame_sink_id(),
                                       client_d->frame_sink_id());
 
-  constexpr base::TimeDelta interval = base::TimeDelta::FromHz(20);
+  constexpr base::TimeDelta interval = base::Hertz(20);
 
   std::vector<FrameSinkId> ids{kFrameSinkIdRoot, kFrameSinkIdA, kFrameSinkIdB,
                                kFrameSinkIdC, kFrameSinkIdD};
@@ -487,7 +487,7 @@
   manager_.RegisterFrameSinkHierarchy(client_b->frame_sink_id(),
                                       client_c->frame_sink_id());
 
-  constexpr base::TimeDelta interval = base::TimeDelta::FromHz(20);
+  constexpr base::TimeDelta interval = base::Hertz(20);
 
   std::vector<FrameSinkId> ids{kFrameSinkIdRoot, kFrameSinkIdA, kFrameSinkIdB,
                                kFrameSinkIdC};
@@ -547,7 +547,7 @@
   manager_.RegisterFrameSinkHierarchy(client_a->frame_sink_id(),
                                       client_b->frame_sink_id());
 
-  constexpr base::TimeDelta interval = base::TimeDelta::FromHz(20);
+  constexpr base::TimeDelta interval = base::Hertz(20);
 
   std::vector<FrameSinkId> ids{kFrameSinkIdRoot, kFrameSinkIdA, kFrameSinkIdB};
 
diff --git a/components/viz/service/frame_sinks/gpu_vsync_begin_frame_source.cc b/components/viz/service/frame_sinks/gpu_vsync_begin_frame_source.cc
index 30569f7..2a713304 100644
--- a/components/viz/service/frame_sinks/gpu_vsync_begin_frame_source.cc
+++ b/components/viz/service/frame_sinks/gpu_vsync_begin_frame_source.cc
@@ -67,7 +67,7 @@
 
 void GpuVSyncBeginFrameSource::SetPreferredInterval(base::TimeDelta interval) {
   auto interval_for_half_refresh_rate = vsync_interval_ * 2;
-  constexpr auto kMaxDelta = base::TimeDelta::FromMillisecondsD(0.5);
+  constexpr auto kMaxDelta = base::Milliseconds(0.5);
   bool run_at_half_refresh_rate =
       interval > (interval_for_half_refresh_rate - kMaxDelta);
   if (run_at_half_refresh_rate_ == run_at_half_refresh_rate)
diff --git a/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc b/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc
index 24b4d47..8ed8bfb 100644
--- a/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc
+++ b/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc
@@ -289,7 +289,7 @@
           : display_frame_interval_;
 
   // Throttle rendering to 30hz.
-  constexpr base::TimeDelta kThrottledInterval = base::TimeDelta::FromHz(30);
+  constexpr base::TimeDelta kThrottledInterval = base::Hertz(30);
 
   // Only throttle if the frame interval is smaller than |kThrottledInterval|
   // meaning the refresh rate is higher than the target of 30hz.
@@ -330,7 +330,7 @@
       supported_refresh_rates.size());
   for (size_t i = 0; i < supported_refresh_rates.size(); ++i) {
     supported_frame_intervals[i] =
-        base::TimeDelta::FromSecondsD(1 / supported_refresh_rates[i]);
+        base::Seconds(1 / supported_refresh_rates[i]);
   }
 
   display_->SetSupportedFrameIntervals(supported_frame_intervals);
diff --git a/components/viz/service/frame_sinks/surface_references_unittest.cc b/components/viz/service/frame_sinks/surface_references_unittest.cc
index 68fc75fb..796d834 100644
--- a/components/viz/service/frame_sinks/surface_references_unittest.cc
+++ b/components/viz/service/frame_sinks/surface_references_unittest.cc
@@ -521,7 +521,7 @@
 // Check that old temporary references are deleted, but only for surfaces marked
 // as destroyed.
 TEST_F(SurfaceReferencesTest, MarkOldTemporaryReferences) {
-  constexpr base::TimeDelta kFastForwardTime = base::TimeDelta::FromSeconds(30);
+  constexpr base::TimeDelta kFastForwardTime = base::Seconds(30);
 
   // There are no temporary references so the timer should be stopped.
   EXPECT_FALSE(IsTemporaryReferenceTimerRunning());
diff --git a/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl.cc b/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl.cc
index 20f2ed3..543266b1 100644
--- a/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl.cc
+++ b/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl.cc
@@ -40,8 +40,7 @@
   UMA_HISTOGRAM_CUSTOM_TIMES(                                             \
       base::StringPrintf("Viz.FrameSinkVideoCapturer.%s.CaptureDuration", \
                          name),                                           \
-      sample, base::TimeDelta::FromMilliseconds(1),                       \
-      base::TimeDelta::FromSeconds(1), 50)
+      sample, base::Milliseconds(1), base::Seconds(1), 50)
 
 namespace viz {
 
@@ -165,9 +164,8 @@
     base::TimeDelta min_capture_period) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
-  constexpr base::TimeDelta kMinMinCapturePeriod =
-      base::TimeDelta::FromMicroseconds(base::Time::kMicrosecondsPerSecond /
-                                        media::limits::kMaxFramesPerSecond);
+  constexpr base::TimeDelta kMinMinCapturePeriod = base::Microseconds(
+      base::Time::kMicrosecondsPerSecond / media::limits::kMaxFramesPerSecond);
   if (min_capture_period < kMinMinCapturePeriod) {
     min_capture_period = kMinMinCapturePeriod;
   }
@@ -177,8 +175,7 @@
   // advance between two successive frames.
   if (!base::TimeTicks::IsHighResolution()) {
     constexpr base::TimeDelta kMinLowResCapturePeriod =
-        base::TimeDelta::FromMicroseconds(base::Time::kMicrosecondsPerSecond /
-                                          30);
+        base::Microseconds(base::Time::kMicrosecondsPerSecond / 30);
     if (min_capture_period < kMinLowResCapturePeriod) {
       min_capture_period = kMinLowResCapturePeriod;
     }
diff --git a/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl_unittest.cc b/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl_unittest.cc
index 0bb50b3a..ed2129d 100644
--- a/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl_unittest.cc
+++ b/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl_unittest.cc
@@ -77,7 +77,7 @@
 constexpr FrameSinkId kFrameSinkId = FrameSinkId(1, 1);
 
 // The compositor frame interval.
-constexpr auto kVsyncInterval = base::TimeDelta::FromSeconds(1) / 60;
+constexpr auto kVsyncInterval = base::Seconds(1) / 60;
 
 const struct SizeSet {
   // The size of the compositor frame sink's Surface.
@@ -409,7 +409,7 @@
     // Override the capturer's TickClock with a virtual clock managed by a
     // manually-driven task runner.
     task_runner_ = new base::TestMockTimeTaskRunner(
-        base::Time::Now(), base::TimeTicks() + base::TimeDelta::FromSeconds(1),
+        base::Time::Now(), base::TimeTicks() + base::Seconds(1),
         base::TestMockTimeTaskRunner::Type::kStandalone);
     start_time_ = task_runner_->NowTicks();
     capturer_->clock_ = task_runner_->GetMockTickClock();
diff --git a/components/viz/service/frame_sinks/video_capture/interprocess_frame_pool.h b/components/viz/service/frame_sinks/video_capture/interprocess_frame_pool.h
index eb96d2b..699f283 100644
--- a/components/viz/service/frame_sinks/video_capture/interprocess_frame_pool.h
+++ b/components/viz/service/frame_sinks/video_capture/interprocess_frame_pool.h
@@ -121,8 +121,7 @@
 
   // The amount of time that should elapsed between log warnings about shared
   // memory allocation/mapping failures.
-  static constexpr base::TimeDelta kMinLoggingPeriod =
-      base::TimeDelta::FromSeconds(10);
+  static constexpr base::TimeDelta kMinLoggingPeriod = base::Seconds(10);
 
   SEQUENCE_CHECKER(sequence_checker_);
 
diff --git a/components/viz/service/frame_sinks/video_detector.cc b/components/viz/service/frame_sinks/video_detector.cc
index d5c7141..a5f132f4 100644
--- a/components/viz/service/frame_sinks/video_detector.cc
+++ b/components/viz/service/frame_sinks/video_detector.cc
@@ -62,7 +62,7 @@
 
     const bool in_video =
         (buffer_size_ == kMinFramesPerSecond) &&
-        (now - update_times_[buffer_start_] <= base::TimeDelta::FromSeconds(1));
+        (now - update_times_[buffer_start_] <= base::Seconds(1));
 
     if (in_video && video_start_time_.is_null())
       video_start_time_ = update_times_[buffer_start_];
diff --git a/components/viz/service/frame_sinks/video_detector.h b/components/viz/service/frame_sinks/video_detector.h
index 234c9c0..566d324a 100644
--- a/components/viz/service/frame_sinks/video_detector.h
+++ b/components/viz/service/frame_sinks/video_detector.h
@@ -64,13 +64,11 @@
   static constexpr int kMinFramesPerSecond = 15;
 
   // Timeout after which video is no longer considered to be playing.
-  static constexpr base::TimeDelta kVideoTimeout =
-      base::TimeDelta::FromMilliseconds(1000);
+  static constexpr base::TimeDelta kVideoTimeout = base::Milliseconds(1000);
 
   // Duration video must be playing in a client before it is reported to
   // observers.
-  static constexpr base::TimeDelta kMinVideoDuration =
-      base::TimeDelta::FromMilliseconds(3000);
+  static constexpr base::TimeDelta kMinVideoDuration = base::Milliseconds(3000);
 
   // If no video activity is detected for |kVideoTimeout|, this
   // method will be called by |video_inactive_timer_|;
diff --git a/components/viz/service/frame_sinks/video_detector_unittest.cc b/components/viz/service/frame_sinks/video_detector_unittest.cc
index 1eb3e6ea..e9ab042 100644
--- a/components/viz/service/frame_sinks/video_detector_unittest.cc
+++ b/components/viz/service/frame_sinks/video_detector_unittest.cc
@@ -94,8 +94,7 @@
 
   void SetUp() override {
     mock_task_runner_ = base::MakeRefCounted<base::TestMockTimeTaskRunner>(
-        base::Time() + base::TimeDelta::FromSeconds(1),
-        base::TimeTicks() + base::TimeDelta::FromSeconds(1));
+        base::Time() + base::Seconds(1), base::TimeTicks() + base::Seconds(1));
 
     detector_ = frame_sink_manager_.CreateVideoDetectorForTesting(
         mock_task_runner_->GetMockTickClock(), mock_task_runner_);
@@ -177,7 +176,7 @@
                    int updates_per_second,
                    base::TimeDelta duration) {
     const base::TimeDelta time_between_updates =
-        base::TimeDelta::FromSecondsD(1.0 / updates_per_second);
+        base::Seconds(1.0 / updates_per_second);
     for (base::TimeDelta d; d < duration; d += time_between_updates) {
       SendUpdate(frame_sink, damage);
       CreateDisplayFrame();
@@ -289,8 +288,7 @@
 // Turn video activity on and off. Make sure the observers are notified
 // properly.
 TEST_F(VideoDetectorTest, ReportStartAndStop) {
-  const base::TimeDelta kDuration =
-      kMinDuration + base::TimeDelta::FromMilliseconds(100);
+  const base::TimeDelta kDuration = kMinDuration + base::Milliseconds(100);
   std::unique_ptr<CompositorFrameSinkSupport> frame_sink = CreateFrameSink();
   EmbedClient(frame_sink.get());
   SendUpdates(frame_sink.get(), kMinRect, kMinFps + 5, kDuration);
@@ -322,8 +320,7 @@
   // Even if there's video playing in both clients, the observer should only
   // receive a single notification.
   constexpr int fps = 2 * kMinFps;
-  constexpr base::TimeDelta time_between_updates =
-      base::TimeDelta::FromSecondsD(1.0 / fps);
+  constexpr base::TimeDelta time_between_updates = base::Seconds(1.0 / fps);
   for (base::TimeDelta d; d < 2 * kMinDuration; d += time_between_updates) {
     SendUpdate(frame_sink1.get(), kMinRect);
     SendUpdate(frame_sink2.get(), kMinRect);
diff --git a/components/viz/service/surfaces/surface_manager.cc b/components/viz/service/surfaces/surface_manager.cc
index da26057..33fd23c 100644
--- a/components/viz/service/surfaces/surface_manager.cc
+++ b/components/viz/service/surfaces/surface_manager.cc
@@ -31,7 +31,7 @@
 namespace viz {
 namespace {
 
-constexpr base::TimeDelta kExpireInterval = base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kExpireInterval = base::Seconds(10);
 
 }  // namespace
 
diff --git a/components/viz/service/surfaces/surface_saved_frame_storage.cc b/components/viz/service/surfaces/surface_saved_frame_storage.cc
index 498e0a9..f30d1a33 100644
--- a/components/viz/service/surfaces/surface_saved_frame_storage.cc
+++ b/components/viz/service/surfaces/surface_saved_frame_storage.cc
@@ -19,7 +19,7 @@
 // Expire saved frames after 5 seconds.
 // TODO(vmpstr): Figure out if we need to change this for cross-origin
 // animations, since the network delay can cause us to wait longer.
-constexpr base::TimeDelta kExpiryTime = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kExpiryTime = base::Seconds(5);
 
 }  // namespace
 
diff --git a/components/viz/service/transitions/surface_animation_manager_unittest.cc b/components/viz/service/transitions/surface_animation_manager_unittest.cc
index 8dbdacf..1eae8a1 100644
--- a/components/viz/service/transitions/surface_animation_manager_unittest.cc
+++ b/components/viz/service/transitions/surface_animation_manager_unittest.cc
@@ -108,7 +108,7 @@
 class SurfaceAnimationManagerTest : public testing::Test {
  public:
   void SetUp() override {
-    current_time_ = base::TimeTicks() + base::TimeDelta::FromDays(1);
+    current_time_ = base::TimeTicks() + base::Days(1);
     surface_manager_ = frame_sink_manager_.surface_manager();
     support_ = std::make_unique<CompositorFrameSinkSupport>(
         nullptr, &frame_sink_manager_, kArbitraryFrameSinkId, /*is_root=*/true);
@@ -300,17 +300,16 @@
 
   EXPECT_TRUE(manager().NeedsBeginFrame());
 
-  manager().UpdateFrameTime(AdvanceTime(base::TimeDelta::FromMilliseconds(50)));
+  manager().UpdateFrameTime(AdvanceTime(base::Milliseconds(50)));
   manager().NotifyFrameAdvanced();
   EXPECT_TRUE(manager().NeedsBeginFrame());
 
-  manager().UpdateFrameTime(
-      AdvanceTime(base::TimeDelta::FromMilliseconds(500)));
+  manager().UpdateFrameTime(AdvanceTime(base::Milliseconds(500)));
   manager().NotifyFrameAdvanced();
   // We should be at the done state, but still need a frame.
   EXPECT_TRUE(manager().NeedsBeginFrame());
 
-  manager().UpdateFrameTime(AdvanceTime(base::TimeDelta::FromMilliseconds(1)));
+  manager().UpdateFrameTime(AdvanceTime(base::Milliseconds(1)));
   manager().NotifyFrameAdvanced();
   EXPECT_FALSE(manager().NeedsBeginFrame());
 }
@@ -332,7 +331,7 @@
 
   storage()->ExpireForTesting();
 
-  AdvanceTime(base::TimeDelta::FromSeconds(6));
+  AdvanceTime(base::Seconds(6));
   manager().ProcessTransitionDirectives(CreateAnimateDirectiveAsVector(2),
                                         storage());
   EXPECT_FALSE(manager().NeedsBeginFrame());
@@ -349,8 +348,7 @@
     EXPECT_FALSE(manager().NeedsBeginFrame());
 
     ++sequence_id;
-    manager().UpdateFrameTime(
-        AdvanceTime(base::TimeDelta::FromMilliseconds(50)));
+    manager().UpdateFrameTime(AdvanceTime(base::Milliseconds(50)));
   }
 
   storage()->CompleteForTesting();
@@ -364,13 +362,12 @@
 
   EXPECT_TRUE(manager().NeedsBeginFrame());
 
-  manager().UpdateFrameTime(
-      AdvanceTime(base::TimeDelta::FromMilliseconds(500)));
+  manager().UpdateFrameTime(AdvanceTime(base::Milliseconds(500)));
   manager().NotifyFrameAdvanced();
   // We're at the done state now.
   EXPECT_TRUE(manager().NeedsBeginFrame());
 
-  manager().UpdateFrameTime(AdvanceTime(base::TimeDelta::FromMilliseconds(1)));
+  manager().UpdateFrameTime(AdvanceTime(base::Milliseconds(1)));
   manager().NotifyFrameAdvanced();
   // Now we're idle.
   EXPECT_FALSE(manager().NeedsBeginFrame());
@@ -411,19 +408,16 @@
 
     EXPECT_TRUE(manager().NeedsBeginFrame());
 
-    manager().UpdateFrameTime(
-        AdvanceTime(base::TimeDelta::FromMilliseconds(200)));
+    manager().UpdateFrameTime(AdvanceTime(base::Milliseconds(200)));
     manager().NotifyFrameAdvanced();
     EXPECT_TRUE(manager().NeedsBeginFrame());
 
-    manager().UpdateFrameTime(
-        AdvanceTime(base::TimeDelta::FromMilliseconds(200)));
+    manager().UpdateFrameTime(AdvanceTime(base::Milliseconds(200)));
     manager().NotifyFrameAdvanced();
     // We should be at the done state, but still need a frame.
     EXPECT_TRUE(manager().NeedsBeginFrame());
 
-    manager().UpdateFrameTime(
-        AdvanceTime(base::TimeDelta::FromMilliseconds(1)));
+    manager().UpdateFrameTime(AdvanceTime(base::Milliseconds(1)));
     manager().NotifyFrameAdvanced();
     EXPECT_FALSE(manager().NeedsBeginFrame());
 
@@ -476,8 +470,8 @@
   EXPECT_FALSE(manager().NeedsBeginFrame());
 
   CompositorFrameTransitionDirective::TransitionConfig root_config;
-  root_config.duration = base::TimeDelta::FromSeconds(1);
-  root_config.delay = base::TimeDelta::FromSeconds(1);
+  root_config.duration = base::Seconds(1);
+  root_config.delay = base::Seconds(1);
 
   CompositorFrameTransitionDirective save(
       1, CompositorFrameTransitionDirective::Type::kSave,
@@ -519,7 +513,7 @@
   EXPECT_TRUE(manager().root_animation_.dst_transform().Apply().IsIdentity());
 
   // Tick a small value to start the transform animation but not opacity.
-  auto only_transform_delay = base::TimeDelta::FromMilliseconds(100);
+  auto only_transform_delay = base::Milliseconds(100);
   EXPECT_TRUE(manager().NeedsBeginFrame());
   manager().UpdateFrameTime(AdvanceTime(only_transform_delay));
   manager().NotifyFrameAdvanced();
@@ -574,8 +568,8 @@
   zero_config.duration = zero_config.delay = base::TimeDelta();
 
   CompositorFrameTransitionDirective::TransitionConfig shared_config;
-  shared_config.duration = base::TimeDelta::FromSeconds(1);
-  shared_config.delay = base::TimeDelta::FromSeconds(1);
+  shared_config.duration = base::Seconds(1);
+  shared_config.delay = base::Seconds(1);
 
   CompositorFrameTransitionDirective save(
       1, CompositorFrameTransitionDirective::Type::kSave,
@@ -699,7 +693,7 @@
 
   // Trigger the last frame to end the animation.
   EXPECT_TRUE(manager().NeedsBeginFrame());
-  manager().UpdateFrameTime(AdvanceTime(base::TimeDelta::FromMilliseconds(16)));
+  manager().UpdateFrameTime(AdvanceTime(base::Milliseconds(16)));
   manager().NotifyFrameAdvanced();
   manager().UpdateFrameTime(AdvanceTime(base::TimeDelta()));
   manager().NotifyFrameAdvanced();
diff --git a/components/viz/test/begin_frame_args_test.cc b/components/viz/test/begin_frame_args_test.cc
index fa98015..0175d66 100644
--- a/components/viz/test/begin_frame_args_test.cc
+++ b/components/viz/test/begin_frame_args_test.cc
@@ -42,9 +42,9 @@
     int64_t interval) {
   return BeginFrameArgs::Create(
       location, source_id, sequence_number,
-      base::TimeTicks() + base::TimeDelta::FromMicroseconds(frame_time),
-      base::TimeTicks() + base::TimeDelta::FromMicroseconds(deadline),
-      base::TimeDelta::FromMicroseconds(interval), BeginFrameArgs::NORMAL);
+      base::TimeTicks() + base::Microseconds(frame_time),
+      base::TimeTicks() + base::Microseconds(deadline),
+      base::Microseconds(interval), BeginFrameArgs::NORMAL);
 }
 
 BeginFrameArgs CreateBeginFrameArgsForTesting(
@@ -57,9 +57,9 @@
     BeginFrameArgs::BeginFrameArgsType type) {
   return BeginFrameArgs::Create(
       location, source_id, sequence_number,
-      base::TimeTicks() + base::TimeDelta::FromMicroseconds(frame_time),
-      base::TimeTicks() + base::TimeDelta::FromMicroseconds(deadline),
-      base::TimeDelta::FromMicroseconds(interval), type);
+      base::TimeTicks() + base::Microseconds(frame_time),
+      base::TimeTicks() + base::Microseconds(deadline),
+      base::Microseconds(interval), type);
 }
 
 BeginFrameArgs CreateBeginFrameArgsForTesting(
diff --git a/components/viz/test/fake_external_begin_frame_source.cc b/components/viz/test/fake_external_begin_frame_source.cc
index 75cd976..c59f0959 100644
--- a/components/viz/test/fake_external_begin_frame_source.cc
+++ b/components/viz/test/fake_external_begin_frame_source.cc
@@ -100,7 +100,7 @@
                      CreateBeginFrameArgs(BEGINFRAME_FROM_HERE)));
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE, begin_frame_task_.callback(),
-      base::TimeDelta::FromMilliseconds(milliseconds_per_frame_));
+      base::Milliseconds(milliseconds_per_frame_));
   next_begin_frame_number_++;
 }
 
diff --git a/components/web_cache/browser/web_cache_manager.cc b/components/web_cache/browser/web_cache_manager.cc
index 593ef17..d282f77 100644
--- a/components/web_cache/browser/web_cache_manager.cc
+++ b/components/web_cache/browser/web_cache_manager.cc
@@ -389,7 +389,7 @@
       FROM_HERE,
       base::BindOnce(&WebCacheManager::ReviseAllocationStrategy,
                      weak_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(kReviseAllocationDelayMS));
+      base::Milliseconds(kReviseAllocationDelayMS));
 }
 
 void WebCacheManager::FindInactiveRenderers() {
diff --git a/components/web_resource/web_resource_service.cc b/components/web_resource/web_resource_service.cc
index c5b2056..fcb582d7 100644
--- a/components/web_resource/web_resource_service.cc
+++ b/components/web_resource/web_resource_service.cc
@@ -104,7 +104,7 @@
       FROM_HERE,
       base::BindOnce(&WebResourceService::StartFetch,
                      weak_ptr_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(delay_ms));
+      base::Milliseconds(delay_ms));
 }
 
 void WebResourceService::SetResourceRequestAllowedNotifier(
diff --git a/components/webapps/browser/android/add_to_homescreen_data_fetcher.cc b/components/webapps/browser/android/add_to_homescreen_data_fetcher.cc
index 43fc407..e028ca50 100644
--- a/components/webapps/browser/android/add_to_homescreen_data_fetcher.cc
+++ b/components/webapps/browser/android/add_to_homescreen_data_fetcher.cc
@@ -126,7 +126,7 @@
       observer_(observer),
       shortcut_info_(GetShortcutUrl(web_contents)),
       has_maskable_primary_icon_(false),
-      data_timeout_ms_(base::TimeDelta::FromMilliseconds(data_timeout_ms)),
+      data_timeout_ms_(base::Milliseconds(data_timeout_ms)),
       is_waiting_for_manifest_(true) {
   DCHECK(shortcut_info_.url.is_valid());
 
diff --git a/components/webapps/browser/android/webapk/webapk_icon_hasher.cc b/components/webapps/browser/android/webapk/webapk_icon_hasher.cc
index 0159e1a..fc4e97e 100644
--- a/components/webapps/browser/android/webapk/webapk_icon_hasher.cc
+++ b/components/webapps/browser/android/webapk/webapk_icon_hasher.cc
@@ -125,7 +125,7 @@
   DCHECK(url_loader_factory);
 
   download_timeout_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(timeout_ms),
+      FROM_HERE, base::Milliseconds(timeout_ms),
       base::BindOnce(&WebApkIconHasher::OnDownloadTimedOut,
                      base::Unretained(this)));
 
diff --git a/components/webapps/browser/banners/app_banner_manager.cc b/components/webapps/browser/banners/app_banner_manager.cc
index 398a2a2b..b8e0d9d 100644
--- a/components/webapps/browser/banners/app_banner_manager.cc
+++ b/components/webapps/browser/banners/app_banner_manager.cc
@@ -142,8 +142,7 @@
 
 // static
 base::Time AppBannerManager::GetCurrentTime() {
-  return base::Time::Now() +
-         base::TimeDelta::FromDays(gTimeDeltaInDaysForTesting);
+  return base::Time::Now() + base::Days(gTimeDeltaInDaysForTesting);
 }
 
 // static
diff --git a/components/webapps/browser/banners/app_banner_settings_helper.cc b/components/webapps/browser/banners/app_banner_settings_helper.cc
index 7aee6f08..f02a417 100644
--- a/components/webapps/browser/banners/app_banner_settings_helper.cc
+++ b/components/webapps/browser/banners/app_banner_settings_helper.cc
@@ -337,9 +337,8 @@
   DCHECK(!package_name_or_start_url.empty());
 
   absl::optional<bool> in_period = WasEventWithinPeriod(
-      APP_BANNER_EVENT_DID_BLOCK,
-      base::TimeDelta::FromDays(gDaysAfterDismissedToShow), web_contents,
-      origin_url, package_name_or_start_url, now);
+      APP_BANNER_EVENT_DID_BLOCK, base::Days(gDaysAfterDismissedToShow),
+      web_contents, origin_url, package_name_or_start_url, now);
   return in_period.value_or(true);
 }
 
@@ -351,9 +350,8 @@
   DCHECK(!package_name_or_start_url.empty());
 
   absl::optional<bool> in_period = WasEventWithinPeriod(
-      APP_BANNER_EVENT_DID_SHOW,
-      base::TimeDelta::FromDays(gDaysAfterIgnoredToShow), web_contents,
-      origin_url, package_name_or_start_url, now);
+      APP_BANNER_EVENT_DID_SHOW, base::Days(gDaysAfterIgnoredToShow),
+      web_contents, origin_url, package_name_or_start_url, now);
 
   return in_period.value_or(true);
 }
@@ -415,7 +413,7 @@
   // dictionaries per app path. If we find one that has been added to
   // homescreen recently, return true.
   base::TimeDelta recent_last_launch_in_days =
-      base::TimeDelta::FromDays(kRecentLastLaunchInDays);
+      base::Days(kRecentLastLaunchInDays);
   for (base::DictionaryValue::Iterator it(*origin_dict); !it.IsAtEnd();
        it.Advance()) {
     if (it.value().is_dict()) {
@@ -480,10 +478,8 @@
     const GURL& scope) {
   DCHECK(scope.is_valid());
 
-  constexpr base::TimeDelta kInitialAnimationSuppressionPeriod =
-      base::TimeDelta::FromDays(1);
-  constexpr base::TimeDelta kMaxAnimationSuppressionPeriod =
-      base::TimeDelta::FromDays(90);
+  constexpr base::TimeDelta kInitialAnimationSuppressionPeriod = base::Days(1);
+  constexpr base::TimeDelta kMaxAnimationSuppressionPeriod = base::Days(90);
   constexpr double kExponentialBackoffFactor = 2;
 
   NextInstallTextAnimation next_prompt = {AppBannerManager::GetCurrentTime(),
diff --git a/components/webapps/browser/banners/app_banner_settings_helper_unittest.cc b/components/webapps/browser/banners/app_banner_settings_helper_unittest.cc
index 946a067a..a7a213a9 100644
--- a/components/webapps/browser/banners/app_banner_settings_helper_unittest.cc
+++ b/components/webapps/browser/banners/app_banner_settings_helper_unittest.cc
@@ -80,7 +80,7 @@
   NavigateAndCommit(url);
 
   base::Time reference_time = GetReferenceTime();
-  base::Time other_time = reference_time - base::TimeDelta::FromDays(3);
+  base::Time other_time = reference_time - base::Days(3);
   for (int event = AppBannerSettingsHelper::APP_BANNER_EVENT_COULD_SHOW;
        event < AppBannerSettingsHelper::APP_BANNER_EVENT_NUM_EVENTS; ++event) {
     // Check that by default, there is no event.
@@ -142,8 +142,8 @@
   NavigateAndCommit(url);
 
   base::Time reference_time = GetReferenceTime();
-  base::Time two_months_ago = reference_time - base::TimeDelta::FromDays(60);
-  base::Time one_year_ago = reference_time - base::TimeDelta::FromDays(366);
+  base::Time two_months_ago = reference_time - base::Days(60);
+  base::Time one_year_ago = reference_time - base::Days(366);
 
   EXPECT_FALSE(AppBannerSettingsHelper::WasBannerRecentlyBlocked(
       web_contents(), url, kTestPackageName, reference_time));
@@ -174,8 +174,8 @@
   NavigateAndCommit(url);
 
   base::Time reference_time = GetReferenceTime();
-  base::Time one_week_ago = reference_time - base::TimeDelta::FromDays(7);
-  base::Time one_year_ago = reference_time - base::TimeDelta::FromDays(366);
+  base::Time one_week_ago = reference_time - base::Days(7);
+  base::Time one_year_ago = reference_time - base::Days(366);
 
   EXPECT_FALSE(AppBannerSettingsHelper::WasBannerRecentlyIgnored(
       web_contents(), url, kTestPackageName, reference_time));
@@ -203,7 +203,7 @@
 
 TEST_F(AppBannerSettingsHelperTest, ReportsWhetherSiteWasEverAdded) {
   GURL url(kTestURL);
-  base::Time one_year_ago = GetReferenceTime() - base::TimeDelta::FromDays(366);
+  base::Time one_year_ago = GetReferenceTime() - base::Days(366);
 
   EXPECT_FALSE(AppBannerSettingsHelper::HasBeenInstalled(web_contents(), url,
                                                          kTestPackageName));
@@ -239,7 +239,7 @@
       service->GetScore(otherURL)));
 
   base::Time reference_time = GetReferenceTime();
-  base::Time one_week_ago = reference_time - base::TimeDelta::FromDays(7);
+  base::Time one_week_ago = reference_time - base::Days(7);
 
   // If url is blocked, otherURL will also be reported as blocked.
   EXPECT_FALSE(AppBannerSettingsHelper::WasBannerRecentlyBlocked(
@@ -299,10 +299,10 @@
   NavigateAndCommit(url);
 
   base::Time reference_time = GetReferenceTime();
-  base::Time first_day = reference_time + base::TimeDelta::FromDays(1);
-  base::Time ninth_day = reference_time + base::TimeDelta::FromDays(9);
-  base::Time tenth_day = reference_time + base::TimeDelta::FromDays(10);
-  base::Time eleventh_day = reference_time + base::TimeDelta::FromDays(11);
+  base::Time first_day = reference_time + base::Days(1);
+  base::Time ninth_day = reference_time + base::Days(9);
+  base::Time tenth_day = reference_time + base::Days(10);
+  base::Time eleventh_day = reference_time + base::Days(11);
 
   EXPECT_FALSE(AppBannerSettingsHelper::WasLaunchedRecently(
       browser_context(), url, reference_time));
@@ -369,7 +369,7 @@
   NavigateAndCommit(url);
 
   base::Time reference_time = GetReferenceTime();
-  base::Time one_day_ago = reference_time - base::TimeDelta::FromDays(1);
+  base::Time one_day_ago = reference_time - base::Days(1);
 
   AppBannerSettingsHelper::RecordBannerEvent(
       web_contents(), url, url.spec(),
diff --git a/components/webrtc_logging/browser/log_cleanup.cc b/components/webrtc_logging/browser/log_cleanup.cc
index 1e8361c..9c9b522 100644
--- a/components/webrtc_logging/browser/log_cleanup.cc
+++ b/components/webrtc_logging/browser/log_cleanup.cc
@@ -19,7 +19,7 @@
 
 namespace webrtc_logging {
 
-const base::TimeDelta kTimeToKeepLogs = base::TimeDelta::FromDays(5);
+const base::TimeDelta kTimeToKeepLogs = base::Days(5);
 
 namespace {
 
diff --git a/components/webrtc_logging/browser/log_cleanup_unittest.cc b/components/webrtc_logging/browser/log_cleanup_unittest.cc
index 81d2a56d..3c97d66 100644
--- a/components/webrtc_logging/browser/log_cleanup_unittest.cc
+++ b/components/webrtc_logging/browser/log_cleanup_unittest.cc
@@ -21,7 +21,7 @@
   WebRtcLogCleanupTest() = default;
 
   void SetUp() override {
-    ASSERT_GT(kTimeToKeepLogs, base::TimeDelta::FromDays(2));
+    ASSERT_GT(kTimeToKeepLogs, base::Days(2));
 
     // Create three files. One with modified date as of now, one with date one
     // day younger than the keep limit, one with date one day older than the
@@ -32,11 +32,11 @@
     ASSERT_TRUE(CreateTemporaryFileInDir(dir_.GetPath(), &file));
     ASSERT_TRUE(CreateTemporaryFileInDir(dir_.GetPath(), &file));
     base::Time time_expect_to_keep =
-        base::Time::Now() - kTimeToKeepLogs + base::TimeDelta::FromDays(1);
+        base::Time::Now() - kTimeToKeepLogs + base::Days(1);
     TouchFile(file, time_expect_to_keep, time_expect_to_keep);
     ASSERT_TRUE(CreateTemporaryFileInDir(dir_.GetPath(), &file));
     base::Time time_expect_to_delete =
-        base::Time::Now() - kTimeToKeepLogs + -base::TimeDelta::FromDays(1);
+        base::Time::Now() - kTimeToKeepLogs + -base::Days(1);
     TouchFile(file, time_expect_to_delete, time_expect_to_delete);
   }
 
@@ -63,8 +63,7 @@
 }
 
 TEST_F(WebRtcLogCleanupTest, DeleteOldAndRecentWebRtcLogFiles) {
-  base::Time delete_begin_time =
-      base::Time::Now() - base::TimeDelta::FromDays(1);
+  base::Time delete_begin_time = base::Time::Now() - base::Days(1);
   DeleteOldAndRecentWebRtcLogFiles(dir_.GetPath(), delete_begin_time);
   VerifyFiles(1);
 }
@@ -141,20 +140,18 @@
   const base::Time now = base::Time::Now();
 
   const std::string expired_capture_timestamp_line =
-      base::NumberToString((now - base::TimeDelta::FromHours(1)).ToDoubleT()) +
+      base::NumberToString((now - base::Hours(1)).ToDoubleT()) +
       ",report_id_3,local_id_3,101.3\n";
 
   const std::string not_expired_line =
-      base::NumberToString((now - base::TimeDelta::FromHours(2)).ToDoubleT()) +
+      base::NumberToString((now - base::Hours(2)).ToDoubleT()) +
       ",report_id_2,local_id_2," +
-      base::NumberToString((now - base::TimeDelta::FromHours(3)).ToDoubleT()) +
-      "\n";
+      base::NumberToString((now - base::Hours(3)).ToDoubleT()) + "\n";
 
   // Note: Would only happen if the clock is changed in between.
   const std::string expired_upload_timestamp_line =
       "100.1,report_id_1,local_id_1," +
-      base::NumberToString((now - base::TimeDelta::FromHours(4)).ToDoubleT()) +
-      "\n";
+      base::NumberToString((now - base::Hours(4)).ToDoubleT()) + "\n";
 
   const std::string contents = expired_capture_timestamp_line +  //
                                not_expired_line +                //
diff --git a/components/wifi/wifi_service_win.cc b/components/wifi/wifi_service_win.cc
index 9651b76..fc8bac2 100644
--- a/components/wifi/wifi_service_win.cc
+++ b/components/wifi/wifi_service_win.cc
@@ -947,7 +947,7 @@
         FROM_HERE,
         base::BindOnce(&WiFiServiceImpl::WaitForNetworkConnect,
                        base::Unretained(this), network_guid, ++attempt),
-        base::TimeDelta::FromMilliseconds(kAttemptDelayMs));
+        base::Milliseconds(kAttemptDelayMs));
   }
 }
 
diff --git a/content/app/content_main_runner_impl.cc b/content/app/content_main_runner_impl.cc
index f0a96a0a..915ae322c 100644
--- a/content/app/content_main_runner_impl.cc
+++ b/content/app/content_main_runner_impl.cc
@@ -439,7 +439,7 @@
                                 control_type));
 
   // Block the control thread while waiting for SessionEnding to be handled.
-  base::PlatformThread::Sleep(base::TimeDelta::FromHours(1));
+  base::PlatformThread::Sleep(base::Hours(1));
 
   // This should never be hit. The process will be terminated either by
   // ContentBrowserClient::SessionEnding or by Windows, if the former takes too
@@ -451,7 +451,7 @@
 // control thread. The event will be handled by the browser process.
 BOOL WINAPI OtherConsoleControlHandler(DWORD control_type) {
   // Block the control thread while waiting for the browser process.
-  base::PlatformThread::Sleep(base::TimeDelta::FromHours(1));
+  base::PlatformThread::Sleep(base::Hours(1));
 
   // This should never be hit. The process will be terminated by the browser
   // process or by Windows, if the former takes too long.
diff --git a/content/browser/accessibility/browser_accessibility_mac.mm b/content/browser/accessibility/browser_accessibility_mac.mm
index 4c168fa..e778a98d 100644
--- a/content/browser/accessibility/browser_accessibility_mac.mm
+++ b/content/browser/accessibility/browser_accessibility_mac.mm
@@ -103,7 +103,7 @@
             }
           },
           std::move(old_native_obj)),
-      base::TimeDelta::FromMilliseconds(1000));
+      base::Milliseconds(1000));
 }
 
 uint32_t BrowserAccessibilityMac::PlatformChildCount() const {
diff --git a/content/browser/accessibility/browser_accessibility_manager_mac.mm b/content/browser/accessibility/browser_accessibility_manager_mac.mm
index 58f6c6a..c4c0e0aa 100644
--- a/content/browser/accessibility/browser_accessibility_manager_mac.mm
+++ b/content/browser/accessibility/browser_accessibility_manager_mac.mm
@@ -239,7 +239,7 @@
                 }
               },
               std::move(retained_node)),
-          base::TimeDelta::FromMilliseconds(kLiveRegionChangeIntervalMS));
+          base::Milliseconds(kLiveRegionChangeIntervalMS));
       return;
     }
     case ui::AXEventGenerator::Event::LIVE_REGION_CREATED:
diff --git a/content/browser/accessibility/browser_accessibility_state_impl.cc b/content/browser/accessibility/browser_accessibility_state_impl.cc
index 9b6cc5c..9456ea6 100644
--- a/content/browser/accessibility/browser_accessibility_state_impl.cc
+++ b/content/browser/accessibility/browser_accessibility_state_impl.cc
@@ -79,8 +79,7 @@
 
 BrowserAccessibilityStateImpl::BrowserAccessibilityStateImpl()
     : BrowserAccessibilityState(),
-      histogram_delay_(
-          base::TimeDelta::FromSeconds(ACCESSIBILITY_HISTOGRAM_DELAY_SECS)) {
+      histogram_delay_(base::Seconds(ACCESSIBILITY_HISTOGRAM_DELAY_SECS)) {
   force_renderer_accessibility_ =
       base::CommandLine::ForCurrentProcess()->HasSwitch(
           switches::kForceRendererAccessibility);
@@ -262,7 +261,7 @@
     return;
 
   if (now - first_user_input_event_time_ >
-      base::TimeDelta::FromSeconds(kAutoDisableAccessibilityTimeSecs)) {
+      base::Seconds(kAutoDisableAccessibilityTimeSecs)) {
     if (!accessibility_active_start_time_.is_null()) {
       base::UmaHistogramLongTimes(
           "Accessibility.ActiveTime",
@@ -303,7 +302,7 @@
         base::BindOnce(
             &BrowserAccessibilityStateImpl::UpdateAccessibilityActivityTask,
             base::Unretained(this)),
-        base::TimeDelta::FromSeconds(kOnAccessibilityUsageUpdateDelaySecs));
+        base::Seconds(kOnAccessibilityUsageUpdateDelaySecs));
   }
 }
 
@@ -403,7 +402,7 @@
     base::RepeatingClosure done_callback) {
   // Set the delay to 1 second, that ensures that we actually test having
   // a nonzero delay but the test still runs quickly.
-  histogram_delay_ = base::TimeDelta::FromSeconds(1);
+  histogram_delay_ = base::Seconds(1);
   background_thread_done_callback_ = done_callback;
   InitBackgroundTasks();
 }
diff --git a/content/browser/accessibility/browser_accessibility_state_impl_unittest.cc b/content/browser/accessibility/browser_accessibility_state_impl_unittest.cc
index 677038a..83ba9f7 100644
--- a/content/browser/accessibility/browser_accessibility_state_impl_unittest.cc
+++ b/content/browser/accessibility/browser_accessibility_state_impl_unittest.cc
@@ -26,7 +26,7 @@
         features::kAutoDisableAccessibility);
     ui::SetEventTickClockForTesting(&clock_);
     // Set the initial time to something non-zero.
-    clock_.Advance(base::TimeDelta::FromSeconds(100));
+    clock_.Advance(base::Seconds(100));
     state_ = BrowserAccessibilityStateImpl::GetInstance();
   }
 
@@ -51,7 +51,7 @@
   // Don't simulate any accessibility APIs in that time.
   state_->OnUserInputEvent();
   state_->OnUserInputEvent();
-  clock_.Advance(base::TimeDelta::FromSeconds(31));
+  clock_.Advance(base::Seconds(31));
   state_->OnUserInputEvent();
 
   // Accessibility should now be disabled.
@@ -64,7 +64,7 @@
   // A histogram should record that accessibility was enabled for
   // 31 seconds.
   histograms.ExpectUniqueTimeSample("Accessibility.AutoDisabled.EnabledTime",
-                                    base::TimeDelta::FromSeconds(31), 1);
+                                    base::Seconds(31), 1);
 }
 
 TEST_F(BrowserAccessibilityStateImplTest,
@@ -80,7 +80,7 @@
   // but simulate accessibility APIs in that time.
   state_->OnUserInputEvent();
   state_->OnUserInputEvent();
-  clock_.Advance(base::TimeDelta::FromSeconds(31));
+  clock_.Advance(base::Seconds(31));
   state_->OnAccessibilityApiUsage();
   state_->OnUserInputEvent();
 
@@ -91,7 +91,7 @@
   // user input event, before the delay.
   state_->OnUserInputEvent();
   state_->OnAccessibilityApiUsage();
-  clock_.Advance(base::TimeDelta::FromSeconds(31));
+  clock_.Advance(base::Seconds(31));
   state_->OnUserInputEvent();
   state_->OnUserInputEvent();
 
@@ -100,7 +100,7 @@
 
   // Advance another 31 seconds and simulate another user input event;
   // now accessibility should be disabled.
-  clock_.Advance(base::TimeDelta::FromSeconds(31));
+  clock_.Advance(base::Seconds(31));
   state_->OnUserInputEvent();
   EXPECT_FALSE(state_->IsAccessibleBrowser());
 }
@@ -118,7 +118,7 @@
   // but add a new accessibility mode flag.
   state_->OnUserInputEvent();
   state_->OnUserInputEvent();
-  clock_.Advance(base::TimeDelta::FromSeconds(31));
+  clock_.Advance(base::Seconds(31));
   state_->AddAccessibilityModeFlags(ui::kAXModeComplete);
   state_->OnUserInputEvent();
 
diff --git a/content/browser/accessibility/cross_platform_accessibility_browsertest.cc b/content/browser/accessibility/cross_platform_accessibility_browsertest.cc
index 830d937b..d6d0f7d 100644
--- a/content/browser/accessibility/cross_platform_accessibility_browsertest.cc
+++ b/content/browser/accessibility/cross_platform_accessibility_browsertest.cc
@@ -1735,8 +1735,8 @@
                                            ax::mojom::Event::kLayoutComplete);
     // Run test for 1 second, counting the number of layout completes.
     while (timer.Elapsed().InMilliseconds() < 1000) {
-      waiter.WaitForNotificationWithTimeout(
-          base::TimeDelta::FromMilliseconds(1000) - timer.Elapsed());
+      waiter.WaitForNotificationWithTimeout(base::Milliseconds(1000) -
+                                            timer.Elapsed());
       ++num_batches;
     }
   }
@@ -1793,8 +1793,8 @@
       ax::mojom::Event::kDocumentSelectionChanged);
   // Run test for 1 second, counting the number of selection changes.
   while (timer.Elapsed().InMilliseconds() < 1000) {
-    waiter.WaitForNotificationWithTimeout(
-        base::TimeDelta::FromMilliseconds(1000) - timer.Elapsed());
+    waiter.WaitForNotificationWithTimeout(base::Milliseconds(1000) -
+                                          timer.Elapsed());
     ++num_batches;
   }
 
@@ -1851,8 +1851,8 @@
         ui::AXEventGenerator::Event::ACTIVE_DESCENDANT_CHANGED);
     // Run test for 1 second, counting the number of active descendant changes.
     while (timer.Elapsed().InMilliseconds() < 1000) {
-      waiter.WaitForNotificationWithTimeout(
-          base::TimeDelta::FromMilliseconds(1000) - timer.Elapsed());
+      waiter.WaitForNotificationWithTimeout(base::Milliseconds(1000) -
+                                            timer.Elapsed());
       ++num_batches;
     }
   }
diff --git a/content/browser/accessibility/snapshot_ax_tree_browsertest.cc b/content/browser/accessibility/snapshot_ax_tree_browsertest.cc
index fcef4a3..6545700 100644
--- a/content/browser/accessibility/snapshot_ax_tree_browsertest.cc
+++ b/content/browser/accessibility/snapshot_ax_tree_browsertest.cc
@@ -579,7 +579,7 @@
         ui::kAXModeComplete,
         /* exclude_offscreen= */ false,
         /* max_nodes= */ 0,
-        /* timeout= */ base::TimeDelta::FromMilliseconds(1));
+        /* timeout= */ base::Milliseconds(1));
     waiter.Wait();
 
     nodes_with_timeout = waiter.snapshot().nodes.size();
diff --git a/content/browser/aggregation_service/aggregatable_report_sender.cc b/content/browser/aggregation_service/aggregatable_report_sender.cc
index 70adc7af..de4902a 100644
--- a/content/browser/aggregation_service/aggregatable_report_sender.cc
+++ b/content/browser/aggregation_service/aggregatable_report_sender.cc
@@ -89,7 +89,7 @@
 
   auto it = loaders_in_progress_.insert(loaders_in_progress_.begin(),
                                         std::move(simple_url_loader));
-  simple_url_loader_ptr->SetTimeoutDuration(base::TimeDelta::FromSeconds(30));
+  simple_url_loader_ptr->SetTimeoutDuration(base::Seconds(30));
 
   std::string contents_json;
   JSONStringValueSerializer serializer(&contents_json);
diff --git a/content/browser/aggregation_service/aggregatable_report_sender_unittest.cc b/content/browser/aggregation_service/aggregatable_report_sender_unittest.cc
index 77ac079..3ba1c83 100644
--- a/content/browser/aggregation_service/aggregatable_report_sender_unittest.cc
+++ b/content/browser/aggregation_service/aggregatable_report_sender_unittest.cc
@@ -144,7 +144,7 @@
   EXPECT_EQ(test_url_loader_factory_.NumPending(), 1);
 
   // The request should time out after 30 seconds.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(30));
+  task_environment_.FastForwardBy(base::Seconds(30));
 
   EXPECT_EQ(test_url_loader_factory_.NumPending(), 0);
 }
diff --git a/content/browser/aggregation_service/aggregation_service_key_fetcher_unittest.cc b/content/browser/aggregation_service/aggregation_service_key_fetcher_unittest.cc
index 8185ddd..1906a79 100644
--- a/content/browser/aggregation_service/aggregation_service_key_fetcher_unittest.cc
+++ b/content/browser/aggregation_service/aggregation_service_key_fetcher_unittest.cc
@@ -208,11 +208,11 @@
   base::Time now = clock().Now();
 
   PublicKey key(/*id=*/"abcd", /*key=*/kABCD1234AsBytes);
-  SetPublicKeysInStorage(
-      origin, PublicKeyset(/*keys=*/{key}, /*fetch_time=*/now,
-                           /*expiry_time=*/now + base::TimeDelta::FromDays(1)));
+  SetPublicKeysInStorage(origin,
+                         PublicKeyset(/*keys=*/{key}, /*fetch_time=*/now,
+                                      /*expiry_time=*/now + base::Days(1)));
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(2));
+  task_environment_.FastForwardBy(base::Days(2));
 
   ExpectKeyFetchFailure(origin,
                         AggregationServiceKeyFetcher::PublicKeyFetchStatus::
diff --git a/content/browser/aggregation_service/aggregation_service_network_fetcher_impl.cc b/content/browser/aggregation_service/aggregation_service_network_fetcher_impl.cc
index 31510a4..6b5e6d9 100644
--- a/content/browser/aggregation_service/aggregation_service_network_fetcher_impl.cc
+++ b/content/browser/aggregation_service/aggregation_service_network_fetcher_impl.cc
@@ -103,7 +103,7 @@
 
   auto it = loaders_in_progress_.insert(loaders_in_progress_.begin(),
                                         std::move(simple_url_loader));
-  simple_url_loader_ptr->SetTimeoutDuration(base::TimeDelta::FromSeconds(30));
+  simple_url_loader_ptr->SetTimeoutDuration(base::Seconds(30));
 
   const int kMaxRetries = 1;
 
diff --git a/content/browser/aggregation_service/aggregation_service_network_fetcher_impl_unittest.cc b/content/browser/aggregation_service/aggregation_service_network_fetcher_impl_unittest.cc
index 26d4031..c2d5ed7 100644
--- a/content/browser/aggregation_service/aggregation_service_network_fetcher_impl_unittest.cc
+++ b/content/browser/aggregation_service/aggregation_service_network_fetcher_impl_unittest.cc
@@ -183,7 +183,7 @@
   EXPECT_EQ(test_url_loader_factory_.NumPending(), 1);
 
   // The request should time out after 30 seconds.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(30));
+  task_environment_.FastForwardBy(base::Seconds(30));
 
   EXPECT_EQ(test_url_loader_factory_.NumPending(), 0);
   EXPECT_FALSE(test_url_loader_factory_.SimulateResponseForPendingRequest(
diff --git a/content/browser/aggregation_service/aggregation_service_storage_sql_unittest.cc b/content/browser/aggregation_service/aggregation_service_storage_sql_unittest.cc
index 20821df..0c39912 100644
--- a/content/browser/aggregation_service/aggregation_service_storage_sql_unittest.cc
+++ b/content/browser/aggregation_service/aggregation_service_storage_sql_unittest.cc
@@ -178,10 +178,10 @@
   base::Time now = clock_.Now();
   url::Origin origin = GetExampleOrigin();
   PublicKeyset keyset(std::move(keys), /*fetch_time=*/now,
-                      /*expiry_time=*/now + base::TimeDelta::FromDays(7));
+                      /*expiry_time=*/now + base::Days(7));
 
   storage_->SetPublicKeys(origin, keyset);
-  clock_.Advance(base::TimeDelta::FromDays(8));
+  clock_.Advance(base::Days(8));
   EXPECT_TRUE(storage_->GetPublicKeys(origin).empty());
 
   CloseDatabase();
@@ -247,7 +247,7 @@
                           PublicKeyset(keys_1, /*fetch_time=*/clock_.Now(),
                                        /*expiry_time=*/base::Time::Max()));
 
-  clock_.Advance(base::TimeDelta::FromDays(3));
+  clock_.Advance(base::Days(3));
 
   url::Origin origin_2 = url::Origin::Create(GURL("https://b.com"));
   std::vector<PublicKey> keys_2{
@@ -263,8 +263,8 @@
       keys_2, storage_->GetPublicKeys(origin_2)));
 
   base::Time now = clock_.Now();
-  storage_->ClearPublicKeysFetchedBetween(now - base::TimeDelta::FromDays(5),
-                                          now - base::TimeDelta::FromDays(1));
+  storage_->ClearPublicKeysFetchedBetween(now - base::Days(5),
+                                          now - base::Days(1));
 
   EXPECT_TRUE(storage_->GetPublicKeys(origin_1).empty());
   EXPECT_TRUE(aggregation_service::PublicKeysEqual(
@@ -282,7 +282,7 @@
                           PublicKeyset(keys_1, /*fetch_time=*/clock_.Now(),
                                        /*expiry_time=*/base::Time::Max()));
 
-  clock_.Advance(base::TimeDelta::FromDays(1));
+  clock_.Advance(base::Days(1));
 
   url::Origin origin_2 = url::Origin::Create(GURL("https://b.com"));
   std::vector<PublicKey> keys_2{
@@ -313,26 +313,24 @@
   std::vector<PublicKey> keys_1{
       PublicKey(/*id=*/"abcd", /*key=*/kABCD1234AsBytes),
       PublicKey(/*id=*/"bcde", /*key=*/kEFGH5678AsBytes)};
-  storage_->SetPublicKeys(
-      origin_1,
-      PublicKeyset(keys_1, /*fetch_time=*/now,
-                   /*expiry_time=*/now + base::TimeDelta::FromDays(1)));
+  storage_->SetPublicKeys(origin_1,
+                          PublicKeyset(keys_1, /*fetch_time=*/now,
+                                       /*expiry_time=*/now + base::Days(1)));
 
   url::Origin origin_2 = url::Origin::Create(GURL("https://b.com"));
   std::vector<PublicKey> keys_2{
       PublicKey(/*id=*/"abcd", /*key=*/kABCD1234AsBytes),
       PublicKey(/*id=*/"efgh", /*key=*/kEFGH5678AsBytes)};
-  storage_->SetPublicKeys(
-      origin_2,
-      PublicKeyset(keys_2, /*fetch_time=*/now,
-                   /*expiry_time=*/now + base::TimeDelta::FromDays(3)));
+  storage_->SetPublicKeys(origin_2,
+                          PublicKeyset(keys_2, /*fetch_time=*/now,
+                                       /*expiry_time=*/now + base::Days(3)));
 
   EXPECT_TRUE(aggregation_service::PublicKeysEqual(
       keys_1, storage_->GetPublicKeys(origin_1)));
   EXPECT_TRUE(aggregation_service::PublicKeysEqual(
       keys_2, storage_->GetPublicKeys(origin_2)));
 
-  storage_->ClearPublicKeysExpiredBy(now + base::TimeDelta::FromDays(1));
+  storage_->ClearPublicKeysExpiredBy(now + base::Days(1));
 
   EXPECT_TRUE(storage_->GetPublicKeys(origin_1).empty());
   EXPECT_TRUE(aggregation_service::PublicKeysEqual(
diff --git a/content/browser/android/battery_metrics.h b/content/browser/android/battery_metrics.h
index 927848a..16105f4 100644
--- a/content/browser/android/battery_metrics.h
+++ b/content/browser/android/battery_metrics.h
@@ -47,12 +47,10 @@
 
   // Battery drain is captured and reported periodically in this interval while
   // the device is on battery power and the app is visible.
-  static constexpr base::TimeDelta kMetricsInterval =
-      base::TimeDelta::FromSeconds(30);
+  static constexpr base::TimeDelta kMetricsInterval = base::Seconds(30);
 
   // Radio state is polled with this interval to count radio wakeups.
-  static constexpr base::TimeDelta kRadioStateInterval =
-      base::TimeDelta::FromSeconds(1);
+  static constexpr base::TimeDelta kRadioStateInterval = base::Seconds(1);
 
   bool app_visible_;
   bool on_battery_power_;
diff --git a/content/browser/android/content_ui_event_handler.cc b/content/browser/android/content_ui_event_handler.cc
index 265c5ef..9bcc368 100644
--- a/content/browser/android/content_ui_event_handler.cc
+++ b/content/browser/android/content_ui_event_handler.cc
@@ -98,8 +98,7 @@
 
   // Compute Event.Latency.OS.MOUSE_WHEEL histogram.
   base::TimeTicks current_time = ui::EventTimeForNow();
-  base::TimeTicks event_time =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(time_ms);
+  base::TimeTicks event_time = base::TimeTicks() + base::Milliseconds(time_ms);
   ComputeEventLatencyOS(ui::ET_MOUSEWHEEL, event_time, current_time);
   ui::MotionEventAndroid::Pointer pointer(
       0, x, y, 0.0f /* touch_major */, 0.0f /* touch_minor */, 0.0f, 0.0f, 0);
diff --git a/content/browser/android/ime_adapter_android.cc b/content/browser/android/ime_adapter_android.cc
index a013b6de..b2159ad 100644
--- a/content/browser/android/ime_adapter_android.cc
+++ b/content/browser/android/ime_adapter_android.cc
@@ -54,8 +54,8 @@
     int unicode_char) {
   return NativeWebKeyboardEvent(
       env, java_key_event, static_cast<blink::WebInputEvent::Type>(type),
-      modifiers, base::TimeTicks() + base::TimeDelta::FromMilliseconds(time_ms),
-      key_code, scan_code, unicode_char, is_system_key);
+      modifiers, base::TimeTicks() + base::Milliseconds(time_ms), key_code,
+      scan_code, unicode_char, is_system_key);
 }
 
 }  // anonymous namespace
diff --git a/content/browser/android/text_suggestion_host_android.cc b/content/browser/android/text_suggestion_host_android.cc
index 51c5f3d..025cace 100644
--- a/content/browser/android/text_suggestion_host_android.cc
+++ b/content/browser/android/text_suggestion_host_android.cc
@@ -205,8 +205,8 @@
 
 void TextSuggestionHostAndroid::StartSuggestionMenuTimer() {
   suggestion_menu_timeout_.Stop();
-  suggestion_menu_timeout_.Start(base::TimeDelta::FromMilliseconds(
-      gfx::ViewConfiguration::GetDoubleTapTimeoutInMs()));
+  suggestion_menu_timeout_.Start(
+      base::Milliseconds(gfx::ViewConfiguration::GetDoubleTapTimeoutInMs()));
 }
 
 void TextSuggestionHostAndroid::OnKeyEvent() {
diff --git a/content/browser/appcache/appcache_group.cc b/content/browser/appcache/appcache_group.cc
index 5e176e8..0aa69b4 100644
--- a/content/browser/appcache/appcache_group.cc
+++ b/content/browser/appcache/appcache_group.cc
@@ -234,8 +234,7 @@
   restart_update_task_.Reset(
       base::BindOnce(&AppCacheGroup::RunQueuedUpdates, this));
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, restart_update_task_.callback(),
-      base::TimeDelta::FromMilliseconds(delay_ms));
+      FROM_HERE, restart_update_task_.callback(), base::Milliseconds(delay_ms));
 }
 
 void AppCacheGroup::HostDestructionImminent(AppCacheHost* host) {
diff --git a/content/browser/appcache/appcache_service_impl.cc b/content/browser/appcache/appcache_service_impl.cc
index 1867b02..83bda4a 100644
--- a/content/browser/appcache/appcache_service_impl.cc
+++ b/content/browser/appcache/appcache_service_impl.cc
@@ -543,8 +543,8 @@
   // users never shutdown the browser.
 
   constexpr base::TimeDelta kZeroDelta;
-  constexpr base::TimeDelta kOneHour = base::TimeDelta::FromHours(1);
-  constexpr base::TimeDelta kThirtySeconds = base::TimeDelta::FromSeconds(30);
+  constexpr base::TimeDelta kOneHour = base::Hours(1);
+  constexpr base::TimeDelta kThirtySeconds = base::Seconds(30);
 
   // If the system managed to stay up for long enough, reset the
   // delay so a new failure won't incur a long wait to get going again.
diff --git a/content/browser/appcache/appcache_storage_impl.cc b/content/browser/appcache/appcache_storage_impl.cc
index a42366f..f2487711 100644
--- a/content/browser/appcache/appcache_storage_impl.cc
+++ b/content/browser/appcache/appcache_storage_impl.cc
@@ -298,7 +298,7 @@
 
   if (!storage_->is_disabled()) {
     storage_->usage_map_.swap(usage_map_);
-    const base::TimeDelta kDelay = base::TimeDelta::FromMinutes(5);
+    const base::TimeDelta kDelay = base::Minutes(5);
     base::SequencedTaskRunnerHandle::Get()->PostDelayedTask(
         FROM_HERE,
         base::BindOnce(
@@ -1761,7 +1761,7 @@
 
 void AppCacheStorageImpl::ScheduleDeleteOneResponse() {
   DCHECK(!is_response_deletion_scheduled_);
-  const base::TimeDelta kBriefDelay = base::TimeDelta::FromMilliseconds(10);
+  const base::TimeDelta kBriefDelay = base::Milliseconds(10);
   base::SequencedTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&AppCacheStorageImpl::DeleteOneResponse,
@@ -1936,7 +1936,7 @@
 void AppCacheStorageImpl::LazilyCommitLastAccessTimes() {
   if (lazy_commit_timer_.IsRunning())
     return;
-  const base::TimeDelta kDelay = base::TimeDelta::FromMinutes(5);
+  const base::TimeDelta kDelay = base::Minutes(5);
   lazy_commit_timer_.Start(
       FROM_HERE, kDelay,
       base::BindOnce(&AppCacheStorageImpl::OnLazyCommitTimer,
diff --git a/content/browser/appcache/appcache_test_helper.cc b/content/browser/appcache/appcache_test_helper.cc
index 9a4afd9..2c64649 100644
--- a/content/browser/appcache/appcache_test_helper.cc
+++ b/content/browser/appcache/appcache_test_helper.cc
@@ -37,8 +37,7 @@
       new AppCache(appcache_service->storage(), ++appcache_id_);
   appcache->set_manifest_parser_version(0);
   appcache->set_manifest_scope("/");
-  appcache->set_token_expires(base::Time::Now() +
-                              base::TimeDelta::FromDays(10));
+  appcache->set_token_expires(base::Time::Now() + base::Days(10));
   AppCacheEntry entry(AppCacheEntry::MANIFEST, ++response_id_);
   appcache->AddEntry(manifest_url, entry);
   appcache->set_complete(true);
diff --git a/content/browser/appcache/appcache_update_job.cc b/content/browser/appcache/appcache_update_job.cc
index c21b18be..bed6f82 100644
--- a/content/browser/appcache/appcache_update_job.cc
+++ b/content/browser/appcache/appcache_update_job.cc
@@ -371,7 +371,7 @@
   MadeProgress();
   group_->SetUpdateAppCacheStatus(AppCacheGroup::CHECKING);
   if (group_->HasCache()) {
-    base::TimeDelta kFullUpdateInterval = base::TimeDelta::FromHours(24);
+    base::TimeDelta kFullUpdateInterval = base::Hours(24);
     update_type_ = UPGRADE_ATTEMPT;
     AppCache* cache = group_->newest_complete_cache();
     cached_manifest_parser_version_ = cache->manifest_parser_version();
@@ -437,7 +437,7 @@
     return;
   }
 
-  base::TimeDelta kMaxEvictableErrorDuration = base::TimeDelta::FromDays(14);
+  base::TimeDelta kMaxEvictableErrorDuration = base::Days(14);
   base::TimeDelta error_duration =
       base::Time::Now() - group_->first_evictable_error_time();
   if (error_duration > kMaxEvictableErrorDuration) {
diff --git a/content/browser/attribution_reporting/conversion_host_utils.cc b/content/browser/attribution_reporting/conversion_host_utils.cc
index 24c8696..9c5ade9 100644
--- a/content/browser/attribution_reporting/conversion_host_utils.cc
+++ b/content/browser/attribution_reporting/conversion_host_utils.cc
@@ -96,7 +96,7 @@
   }
 
   if (expiry != 0)
-    impression.expiry = base::TimeDelta::FromMilliseconds(expiry);
+    impression.expiry = base::Milliseconds(expiry);
 
   return impression;
 }
diff --git a/content/browser/attribution_reporting/conversion_host_utils_unittest.cc b/content/browser/attribution_reporting/conversion_host_utils_unittest.cc
index db86001..c2d1cba 100644
--- a/content/browser/attribution_reporting/conversion_host_utils_unittest.cc
+++ b/content/browser/attribution_reporting/conversion_host_utils_unittest.cc
@@ -23,7 +23,7 @@
   EXPECT_EQ(9223372036854775807ull, impression->impression_data);
   EXPECT_EQ("example.com", impression->conversion_destination.host());
   EXPECT_EQ("example2.com", impression->reporting_origin->host());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1234), impression->expiry);
+  EXPECT_EQ(base::Milliseconds(1234), impression->expiry);
 }
 
 TEST(ConversionHostUtilsTest, AppImpression_Valid_NoOptionals) {
diff --git a/content/browser/attribution_reporting/conversion_internals_browsertest.cc b/content/browser/attribution_reporting/conversion_internals_browsertest.cc
index c97abb2..4fb2cac 100644
--- a/content/browser/attribution_reporting/conversion_internals_browsertest.cc
+++ b/content/browser/attribution_reporting/conversion_internals_browsertest.cc
@@ -297,7 +297,7 @@
       AttributionReport(ImpressionBuilder(now).SetData(100).Build(),
                         /*conversion_data=*/5,
                         /*conversion_time=*/now,
-                        /*report_time=*/now + base::TimeDelta::FromHours(2),
+                        /*report_time=*/now + base::Hours(2),
                         /*priority=*/0, AttributionReport::Id(2)),
       SentReportInfo::Status::kSent,
       /*http_response_code=*/200));
@@ -312,7 +312,7 @@
   manager.GetSessionStorage().AddDroppedReport(
       AttributionReport(ImpressionBuilder(now).Build(),
                         /*conversion_data=*/8, /*conversion_time=*/now,
-                        /*report_time=*/now + base::TimeDelta::FromHours(1),
+                        /*report_time=*/now + base::Hours(1),
                         /*priority=*/11, AttributionReport::Id(3)));
   OverrideWebUIConversionManager(&manager);
 
@@ -415,7 +415,7 @@
                            /*report_time=*/now, /*priority=*/7,
                            AttributionReport::Id(1));
   manager.SetReportsForWebUI({report});
-  report.report_time += base::TimeDelta::FromHours(1);
+  report.report_time += base::Hours(1);
   manager.GetSessionStorage().AddSentReport(
       SentReportInfo(report, SentReportInfo::Status::kSent,
                      /*http_response_code=*/200));
diff --git a/content/browser/attribution_reporting/conversion_manager_impl.cc b/content/browser/attribution_reporting/conversion_manager_impl.cc
index e57ae18..3b8d4cc 100644
--- a/content/browser/attribution_reporting/conversion_manager_impl.cc
+++ b/content/browser/attribution_reporting/conversion_manager_impl.cc
@@ -103,7 +103,7 @@
 }  // namespace
 
 const constexpr base::TimeDelta kConversionManagerQueueReportsInterval =
-    base::TimeDelta::FromMinutes(30);
+    base::Minutes(30);
 
 ConversionManager* ConversionManagerProviderImpl::GetManager(
     WebContents* web_contents) const {
diff --git a/content/browser/attribution_reporting/conversion_manager_impl_unittest.cc b/content/browser/attribution_reporting/conversion_manager_impl_unittest.cc
index de7f1d2..e6fbd62 100644
--- a/content/browser/attribution_reporting/conversion_manager_impl_unittest.cc
+++ b/content/browser/attribution_reporting/conversion_manager_impl_unittest.cc
@@ -37,8 +37,7 @@
 
 using ::testing::ElementsAre;
 
-constexpr base::TimeDelta kExpiredReportOffset =
-    base::TimeDelta::FromMinutes(2);
+constexpr base::TimeDelta kExpiredReportOffset = base::Minutes(2);
 
 class ConstantStartupDelayPolicy : public ConversionPolicy {
  public:
@@ -135,10 +134,10 @@
 
 // Time after impression that a conversion can first be sent. See
 // ConversionStorageDelegateImpl::GetReportTimeForConversion().
-constexpr base::TimeDelta kFirstReportingWindow = base::TimeDelta::FromDays(2);
+constexpr base::TimeDelta kFirstReportingWindow = base::Days(2);
 
 // Give impressions a sufficiently long expiry.
-constexpr base::TimeDelta kImpressionExpiry = base::TimeDelta::FromDays(30);
+constexpr base::TimeDelta kImpressionExpiry = base::Days(30);
 
 const size_t kMaxSentReportsToStore = 3;
 
@@ -274,10 +273,10 @@
   // sent. Make sure the report is not queued earlier than this.
   task_environment_.FastForwardBy(kFirstReportingWindow -
                                   kConversionManagerQueueReportsInterval -
-                                  base::TimeDelta::FromMinutes(1));
+                                  base::Minutes(1));
   EXPECT_EQ(0u, test_reporter_->num_reports());
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_environment_.FastForwardBy(base::Minutes(1));
   EXPECT_EQ(1u, test_reporter_->num_reports());
 }
 
@@ -351,11 +350,11 @@
 
   task_environment_.FastForwardBy(kFirstReportingWindow -
                                   kConversionManagerQueueReportsInterval -
-                                  base::TimeDelta::FromMilliseconds(1));
+                                  base::Milliseconds(1));
   EXPECT_EQ(base::Time(), test_reporter_->last_report_time());
 
   // The report is first in the queuing window.
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_environment_.FastForwardBy(base::Milliseconds(1));
   EXPECT_EQ(expected_report_time, test_reporter_->last_report_time());
 
   // Simulate the reporter sending the report only once the actual report time
@@ -370,10 +369,10 @@
   test_reporter_->WaitForNumReports(3);
   // At this point, the report has been added directly to the reporter with the
   // updated report time of +5 minutes.
-  expected_report_time += base::TimeDelta::FromMinutes(5);
+  expected_report_time += base::Minutes(5);
   EXPECT_EQ(expected_report_time, test_reporter_->last_report_time());
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(5));
+  task_environment_.FastForwardBy(base::Minutes(5));
   EXPECT_EQ(expected_report_time, test_reporter_->last_report_time());
   test_reporter_->RunDeferredCallbacks();
 
@@ -381,10 +380,10 @@
   test_reporter_->WaitForNumReports(4);
   // At this point, the report has been added directly to the reporter with the
   // updated report time of +15 minutes.
-  expected_report_time += base::TimeDelta::FromMinutes(15);
+  expected_report_time += base::Minutes(15);
   EXPECT_EQ(expected_report_time, test_reporter_->last_report_time());
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(15));
+  task_environment_.FastForwardBy(base::Minutes(15));
   EXPECT_EQ(expected_report_time, test_reporter_->last_report_time());
   test_reporter_->RunDeferredCallbacks();
 
@@ -413,10 +412,10 @@
   EXPECT_EQ(3u, test_reporter_->num_reports());
 
   test_reporter_->SetSentReportInfoStatus(SentReportInfo::Status::kOffline);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(30));
+  task_environment_.FastForwardBy(base::Minutes(30));
   EXPECT_EQ(3u, test_reporter_->num_reports());
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(30));
+  task_environment_.FastForwardBy(base::Minutes(30));
   EXPECT_EQ(3u, test_reporter_->num_reports());
 
   // kFailed =1.
@@ -433,7 +432,7 @@
 
   // Fast-forward past the reporting window and past report expiry.
   task_environment_.FastForwardBy(kFirstReportingWindow);
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(100));
+  task_environment_.FastForwardBy(base::Days(100));
 
   // Simulate startup and ensure the report is sent before being expired.
   CreateManager();
@@ -622,7 +621,7 @@
   // (kFirstReportingWindow+ 1 minute).
   task_environment_.FastForwardBy(kFirstReportingWindow -
                                   (2 * kConversionManagerQueueReportsInterval) +
-                                  base::TimeDelta::FromMinutes(1));
+                                  base::Minutes(1));
 
   // Create the manager and check that the first report is queued immediately.
   CreateManager();
@@ -646,7 +645,7 @@
 
     base::RunLoop run_loop;
     conversion_manager_->ClearData(
-        start, start + base::TimeDelta::FromMinutes(1),
+        start, start + base::Minutes(1),
         base::BindLambdaForTesting(
             [match_url](const url::Origin& _) { return match_url; }),
         run_loop.QuitClosure());
@@ -684,7 +683,7 @@
   EXPECT_EQ(0u, test_reporter_->num_reports());
 
   conversion_manager_->SendReportsForWebUI(base::DoNothing());
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(0));
+  task_environment_.FastForwardBy(base::Minutes(0));
   EXPECT_EQ(1u, test_reporter_->num_reports());
 }
 
@@ -708,16 +707,15 @@
 
   // Fast forward past the expected report time of the first conversion, t =
   // (kFirstReportingWindow+ 1 minute).
-  task_environment_.FastForwardBy(kFirstReportingWindow +
-                                  base::TimeDelta::FromMinutes(1));
+  task_environment_.FastForwardBy(kFirstReportingWindow + base::Minutes(1));
 
   CreateManager();
   test_reporter_->WaitForNumReports(1);
 
   // Ensure that the expired report is delayed based on the time the browser
   // started.
-  EXPECT_EQ(start_time + kFirstReportingWindow +
-                base::TimeDelta::FromMinutes(1) + kExpiredReportOffset,
+  EXPECT_EQ(start_time + kFirstReportingWindow + base::Minutes(1) +
+                kExpiredReportOffset,
             test_reporter_->last_report_time());
 }
 
@@ -733,8 +731,7 @@
   conversion_manager_.reset();
 
   // Fast forward just before the expected report time.
-  task_environment_.FastForwardBy(kFirstReportingWindow -
-                                  base::TimeDelta::FromMinutes(1));
+  task_environment_.FastForwardBy(kFirstReportingWindow - base::Minutes(1));
 
   // Ensure that this report does not receive additional delay.
   CreateManager();
@@ -812,9 +809,7 @@
 TEST_F(ConversionManagerImplTest, ConversionPrioritization_OneReportSent) {
   test_reporter_->ShouldRunReportSentCallbacks(true);
   conversion_manager_->HandleImpression(
-      ImpressionBuilder(clock().Now())
-          .SetExpiry(base::TimeDelta::FromDays(7))
-          .Build());
+      ImpressionBuilder(clock().Now()).SetExpiry(base::Days(7)).Build());
   ExpectNumStoredImpressions(1u);
 
   conversion_manager_->HandleConversion(
@@ -825,14 +820,13 @@
       ConversionBuilder().SetPriority(1).Build());
   ExpectNumStoredReports(3u);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(7) -
-                                  base::TimeDelta::FromMinutes(30));
+  task_environment_.FastForwardBy(base::Days(7) - base::Minutes(30));
   EXPECT_EQ(3u, test_reporter_->num_reports());
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(5));
+  task_environment_.FastForwardBy(base::Minutes(5));
   conversion_manager_->HandleConversion(
       ConversionBuilder().SetPriority(2).Build());
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
   EXPECT_EQ(3u, test_reporter_->num_reports());
 }
 
diff --git a/content/browser/attribution_reporting/conversion_network_sender_impl.cc b/content/browser/attribution_reporting/conversion_network_sender_impl.cc
index e13524aa..3284a89 100644
--- a/content/browser/attribution_reporting/conversion_network_sender_impl.cc
+++ b/content/browser/attribution_reporting/conversion_network_sender_impl.cc
@@ -57,10 +57,9 @@
   base::Time original_report_time =
       ComputeReportTime(report.impression, report.conversion_time);
   base::TimeDelta time_since_original_report_time = now - original_report_time;
-  base::UmaHistogramCustomTimes("Conversions.ExtraReportDelay2",
-                                time_since_original_report_time,
-                                base::TimeDelta::FromSeconds(1),
-                                base::TimeDelta::FromDays(24), /*buckets=*/100);
+  base::UmaHistogramCustomTimes(
+      "Conversions.ExtraReportDelay2", time_since_original_report_time,
+      base::Seconds(1), base::Days(24), /*buckets=*/100);
 
   base::TimeDelta time_from_conversion_to_report_send =
       report.report_time - report.conversion_time;
@@ -130,7 +129,7 @@
 
   auto it = loaders_in_progress_.insert(loaders_in_progress_.begin(),
                                         std::move(simple_url_loader));
-  simple_url_loader_ptr->SetTimeoutDuration(base::TimeDelta::FromSeconds(30));
+  simple_url_loader_ptr->SetTimeoutDuration(base::Seconds(30));
 
   std::string report_body = report.ReportBody();
   simple_url_loader_ptr->AttachStringForUpload(report_body, "application/json");
diff --git a/content/browser/attribution_reporting/conversion_network_sender_impl_unittest.cc b/content/browser/attribution_reporting/conversion_network_sender_impl_unittest.cc
index a876ece2..6d3bcae24 100644
--- a/content/browser/attribution_reporting/conversion_network_sender_impl_unittest.cc
+++ b/content/browser/attribution_reporting/conversion_network_sender_impl_unittest.cc
@@ -224,7 +224,7 @@
   EXPECT_EQ(1, test_url_loader_factory_.NumPending());
 
   // The request should time out after 30 seconds.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(30));
+  task_environment_.FastForwardBy(base::Seconds(30));
 
   EXPECT_EQ(0, test_url_loader_factory_.NumPending());
 
@@ -440,7 +440,7 @@
 TEST_F(ConversionNetworkSenderTest, TimeFromConversionToReportSendHistogram) {
   base::HistogramTester histograms;
   auto report = GetReport(/*conversion_id=*/1);
-  report.report_time = base::Time() + base::TimeDelta::FromHours(5);
+  report.report_time = base::Time() + base::Hours(5);
   network_sender_->SendReport(report, GetSentCallback());
   EXPECT_TRUE(test_url_loader_factory_.SimulateResponseForPendingRequest(
       kReportUrl, ""));
diff --git a/content/browser/attribution_reporting/conversion_policy.cc b/content/browser/attribution_reporting/conversion_policy.cc
index 394ffa2d..f583c0d 100644
--- a/content/browser/attribution_reporting/conversion_policy.cc
+++ b/content/browser/attribution_reporting/conversion_policy.cc
@@ -73,16 +73,15 @@
     const absl::optional<base::TimeDelta>& declared_expiry,
     base::Time impression_time,
     StorableSource::SourceType source_type) const {
-  constexpr base::TimeDelta kMinImpressionExpiry = base::TimeDelta::FromDays(1);
-  constexpr base::TimeDelta kDefaultImpressionExpiry =
-      base::TimeDelta::FromDays(30);
+  constexpr base::TimeDelta kMinImpressionExpiry = base::Days(1);
+  constexpr base::TimeDelta kDefaultImpressionExpiry = base::Days(30);
 
   // Default to the maximum expiry time.
   base::TimeDelta expiry = declared_expiry.value_or(kDefaultImpressionExpiry);
 
   // Expiry time for event sources must be a whole number of days.
   if (source_type == StorableSource::SourceType::kEvent)
-    expiry = expiry.RoundToMultiple(base::TimeDelta::FromDays(1));
+    expiry = expiry.RoundToMultiple(base::Days(1));
 
   // If the impression specified its own expiry, clamp it to the minimum and
   // maximum.
@@ -101,8 +100,7 @@
   // increasing this delay once we can be sure reports are still sent at
   // reasonable times, and not delayed for many browser sessions due to short
   // session up-times.
-  return now +
-         base::TimeDelta::FromMilliseconds(base::RandInt(0, 5 * 60 * 1000));
+  return now + base::Milliseconds(base::RandInt(0, 5 * 60 * 1000));
 }
 
 absl::optional<base::TimeDelta> ConversionPolicy::GetFailedReportDelay(
@@ -110,7 +108,7 @@
   DCHECK_GT(failed_send_attempts, 0);
 
   const int kMaxFailedSendAttempts = 2;
-  const base::TimeDelta kInitialReportDelay = base::TimeDelta::FromMinutes(5);
+  const base::TimeDelta kInitialReportDelay = base::Minutes(5);
   const int kDelayFactor = 3;
 
   if (failed_send_attempts > kMaxFailedSendAttempts)
diff --git a/content/browser/attribution_reporting/conversion_policy_unittest.cc b/content/browser/attribution_reporting/conversion_policy_unittest.cc
index a63674e..d270534e 100644
--- a/content/browser/attribution_reporting/conversion_policy_unittest.cc
+++ b/content/browser/attribution_reporting/conversion_policy_unittest.cc
@@ -107,18 +107,18 @@
 
   for (auto source_type : kSourceTypes) {
     EXPECT_EQ(
-        impression_time + base::TimeDelta::FromDays(30),
+        impression_time + base::Days(30),
         ConversionPolicy().GetExpiryTimeForImpression(
             /*declared_expiry=*/absl::nullopt, impression_time, source_type));
   }
 }
 
 TEST_F(ConversionPolicyTest, LargeImpressionExpirySpecified_ClampedTo30Days) {
-  constexpr base::TimeDelta declared_expiry = base::TimeDelta::FromDays(60);
+  constexpr base::TimeDelta declared_expiry = base::Days(60);
   const base::Time impression_time = base::Time::Now();
 
   for (auto source_type : kSourceTypes) {
-    EXPECT_EQ(impression_time + base::TimeDelta::FromDays(30),
+    EXPECT_EQ(impression_time + base::Days(30),
               ConversionPolicy().GetExpiryTimeForImpression(
                   declared_expiry, impression_time, source_type));
   }
@@ -129,10 +129,9 @@
     base::TimeDelta declared_expiry;
     base::TimeDelta want_expiry;
   } kTestCases[] = {
-      {base::TimeDelta::FromDays(-1), base::TimeDelta::FromDays(1)},
-      {base::TimeDelta::FromDays(0), base::TimeDelta::FromDays(1)},
-      {base::TimeDelta::FromDays(1) - base::TimeDelta::FromMilliseconds(1),
-       base::TimeDelta::FromDays(1)},
+      {base::Days(-1), base::Days(1)},
+      {base::Days(0), base::Days(1)},
+      {base::Days(1) - base::Milliseconds(1), base::Days(1)},
   };
 
   const base::Time impression_time = base::Time::Now();
@@ -152,17 +151,15 @@
     base::TimeDelta declared_expiry;
     base::TimeDelta want_expiry;
   } kTestCases[] = {
-      {StorableSource::SourceType::kNavigation, base::TimeDelta::FromHours(36),
-       base::TimeDelta::FromHours(36)},
-      {StorableSource::SourceType::kEvent, base::TimeDelta::FromHours(36),
-       base::TimeDelta::FromDays(2)},
+      {StorableSource::SourceType::kNavigation, base::Hours(36),
+       base::Hours(36)},
+      {StorableSource::SourceType::kEvent, base::Hours(36), base::Days(2)},
 
       {StorableSource::SourceType::kNavigation,
-       base::TimeDelta::FromDays(1) + base::TimeDelta::FromMilliseconds(1),
-       base::TimeDelta::FromDays(1) + base::TimeDelta::FromMilliseconds(1)},
+       base::Days(1) + base::Milliseconds(1),
+       base::Days(1) + base::Milliseconds(1)},
       {StorableSource::SourceType::kEvent,
-       base::TimeDelta::FromDays(1) + base::TimeDelta::FromMilliseconds(1),
-       base::TimeDelta::FromDays(1)},
+       base::Days(1) + base::Milliseconds(1), base::Days(1)},
   };
 
   const base::Time impression_time = base::Time::Now();
@@ -176,11 +173,11 @@
 }
 
 TEST_F(ConversionPolicyTest, ImpressionExpirySpecified_ExpiryOverrideDefault) {
-  constexpr base::TimeDelta declared_expiry = base::TimeDelta::FromDays(10);
+  constexpr base::TimeDelta declared_expiry = base::Days(10);
   const base::Time impression_time = base::Time::Now();
 
   for (auto source_type : kSourceTypes) {
-    EXPECT_EQ(impression_time + base::TimeDelta::FromDays(10),
+    EXPECT_EQ(impression_time + base::Days(10),
               ConversionPolicy().GetExpiryTimeForImpression(
                   declared_expiry, impression_time, source_type));
   }
@@ -191,8 +188,8 @@
     int failed_send_attempts;
     absl::optional<base::TimeDelta> expected;
   } kTestCases[] = {
-      {1, base::TimeDelta::FromMinutes(5)},
-      {2, base::TimeDelta::FromMinutes(15)},
+      {1, base::Minutes(5)},
+      {2, base::Minutes(15)},
       {3, absl::nullopt},
   };
 
diff --git a/content/browser/attribution_reporting/conversion_reporter_impl_unittest.cc b/content/browser/attribution_reporting/conversion_reporter_impl_unittest.cc
index 66fc986..0727914e 100644
--- a/content/browser/attribution_reporting/conversion_reporter_impl_unittest.cc
+++ b/content/browser/attribution_reporting/conversion_reporter_impl_unittest.cc
@@ -135,7 +135,7 @@
 TEST_F(ConversionReporterImplTest,
        ReportWithReportTimeBeforeCurrentTime_ReportSent) {
   reporter_->AddReportsToQueue(
-      {GetReport(clock().Now(), clock().Now() - base::TimeDelta::FromHours(10),
+      {GetReport(clock().Now(), clock().Now() - base::Hours(10),
                  AttributionReport::Id(1))});
 
   // Fast forward by 0, as we yield the thread when a report is scheduled to be
@@ -149,7 +149,7 @@
 TEST_F(ConversionReporterImplTest,
        ReportWithReportTimeBeforeCurrentTime_DeletedReportNotSent) {
   reporter_->AddReportsToQueue(
-      {GetReport(clock().Now(), clock().Now() - base::TimeDelta::FromHours(10),
+      {GetReport(clock().Now(), clock().Now() - base::Hours(10),
                  AttributionReport::Id(1))});
 
   reporter_->RemoveAllReportsFromQueue();
@@ -163,30 +163,30 @@
 
 TEST_F(ConversionReporterImplTest,
        ReportWithDelayedReportTime_NotSentUntilDelay) {
-  const base::TimeDelta delay = base::TimeDelta::FromMinutes(30);
+  const base::TimeDelta delay = base::Minutes(30);
 
   reporter_->AddReportsToQueue({GetReport(clock().Now(), clock().Now() + delay,
                                           AttributionReport::Id(1))});
   task_environment_.FastForwardBy(base::TimeDelta());
   EXPECT_EQ(0u, sender_->num_reports_sent());
 
-  task_environment_.FastForwardBy(delay - base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(delay - base::Seconds(1));
   EXPECT_EQ(0u, sender_->num_reports_sent());
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   EXPECT_EQ(1u, sender_->num_reports_sent());
 }
 
 TEST_F(ConversionReporterImplTest, DuplicateReportScheduled_Ignored) {
   reporter_->AddReportsToQueue(
-      {GetReport(clock().Now(), clock().Now() + base::TimeDelta::FromMinutes(1),
+      {GetReport(clock().Now(), clock().Now() + base::Minutes(1),
                  AttributionReport::Id(1))});
 
   // A duplicate report should not be scheduled.
   reporter_->AddReportsToQueue(
-      {GetReport(clock().Now(), clock().Now() + base::TimeDelta::FromMinutes(1),
+      {GetReport(clock().Now(), clock().Now() + base::Minutes(1),
                  AttributionReport::Id(1))});
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_environment_.FastForwardBy(base::Minutes(1));
   EXPECT_EQ(1u, sender_->num_reports_sent());
 }
 
@@ -208,8 +208,7 @@
 TEST_F(ConversionReporterImplTest, ManyReportsAddedAtOnce_SentInOrder) {
   std::vector<AttributionReport> reports;
   for (int i = 1; i < 10; i++) {
-    reports.push_back(GetReport(clock().Now(),
-                                clock().Now() + base::TimeDelta::FromMinutes(i),
+    reports.push_back(GetReport(clock().Now(), clock().Now() + base::Minutes(i),
                                 AttributionReport::Id(i)));
   }
   reporter_->AddReportsToQueue(reports);
@@ -217,7 +216,7 @@
   EXPECT_EQ(0u, sender_->num_reports_sent());
 
   for (int i = 1; i < 10; i++) {
-    task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+    task_environment_.FastForwardBy(base::Minutes(1));
 
     EXPECT_EQ(static_cast<size_t>(i), sender_->num_reports_sent());
     EXPECT_EQ(static_cast<int64_t>(i), *sender_->last_sent_report_id());
@@ -228,15 +227,15 @@
 
 TEST_F(ConversionReporterImplTest, ManyReportsAddedSeparately_SentInOrder) {
   for (int i = 1; i < 10; i++) {
-    reporter_->AddReportsToQueue({GetReport(
-        clock().Now(), clock().Now() + base::TimeDelta::FromMinutes(i),
-        AttributionReport::Id(i))});
+    reporter_->AddReportsToQueue(
+        {GetReport(clock().Now(), clock().Now() + base::Minutes(i),
+                   AttributionReport::Id(i))});
   }
   task_environment_.FastForwardBy(base::TimeDelta());
   EXPECT_EQ(0u, sender_->num_reports_sent());
 
   for (int i = 1; i < 10; i++) {
-    task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+    task_environment_.FastForwardBy(base::Minutes(1));
 
     EXPECT_EQ(static_cast<size_t>(i), sender_->num_reports_sent());
     EXPECT_EQ(static_cast<int64_t>(i), *sender_->last_sent_report_id());
@@ -326,34 +325,34 @@
   SetOffline(true);
 
   reporter_->AddReportsToQueue({
-      GetReport(clock().Now(), clock().Now() + base::TimeDelta::FromMinutes(1),
+      GetReport(clock().Now(), clock().Now() + base::Minutes(1),
                 AttributionReport::Id(1)),
-      GetReport(clock().Now(), clock().Now() + base::TimeDelta::FromMinutes(2),
+      GetReport(clock().Now(), clock().Now() + base::Minutes(2),
                 AttributionReport::Id(2)),
   });
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_environment_.FastForwardBy(base::Minutes(1));
   EXPECT_EQ(0u, sender_->num_reports_sent());
   EXPECT_EQ(AttributionReport::Id(1),
             *last_sent_report_info()->report.conversion_id);
   EXPECT_EQ(SentReportInfo::Status::kOffline, last_sent_report_info()->status);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_environment_.FastForwardBy(base::Minutes(1));
   EXPECT_EQ(0u, sender_->num_reports_sent());
   EXPECT_EQ(AttributionReport::Id(2),
             *last_sent_report_info()->report.conversion_id);
   EXPECT_EQ(SentReportInfo::Status::kOffline, last_sent_report_info()->status);
 
   reporter_->AddReportsToQueue({
-      GetReport(clock().Now(), clock().Now() + base::TimeDelta::FromMinutes(1),
+      GetReport(clock().Now(), clock().Now() + base::Minutes(1),
                 AttributionReport::Id(1)),
-      GetReport(clock().Now(), clock().Now() + base::TimeDelta::FromMinutes(2),
+      GetReport(clock().Now(), clock().Now() + base::Minutes(2),
                 AttributionReport::Id(2)),
   });
 
   SetOffline(false);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_environment_.FastForwardBy(base::Minutes(1));
   EXPECT_EQ(1u, sender_->num_reports_sent());
   EXPECT_EQ(AttributionReport::Id(1),
             *last_sent_report_info()->report.conversion_id);
@@ -361,7 +360,7 @@
 
   SetOffline(true);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_environment_.FastForwardBy(base::Minutes(1));
   EXPECT_EQ(1u, sender_->num_reports_sent());
   EXPECT_EQ(AttributionReport::Id(2),
             *last_sent_report_info()->report.conversion_id);
diff --git a/content/browser/attribution_reporting/conversion_storage_delegate_impl.cc b/content/browser/attribution_reporting/conversion_storage_delegate_impl.cc
index 672eba05..17d9028be 100644
--- a/content/browser/attribution_reporting/conversion_storage_delegate_impl.cc
+++ b/content/browser/attribution_reporting/conversion_storage_delegate_impl.cc
@@ -59,12 +59,12 @@
     case AttributionType::kNavigation:
     case AttributionType::kEvent:
       return {
-          .time_window = base::TimeDelta::FromDays(30),
+          .time_window = base::Days(30),
           .max_contributions_per_window = 100,
       };
     case AttributionType::kAggregate:
       return {
-          .time_window = base::TimeDelta::FromDays(7),
+          .time_window = base::Days(7),
           .max_contributions_per_window = 65536,
       };
   }
@@ -79,13 +79,13 @@
 base::TimeDelta
 ConversionStorageDelegateImpl::GetDeleteExpiredImpressionsFrequency() const {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  return base::TimeDelta::FromMinutes(5);
+  return base::Minutes(5);
 }
 
 base::TimeDelta
 ConversionStorageDelegateImpl::GetDeleteExpiredRateLimitsFrequency() const {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  return base::TimeDelta::FromMinutes(5);
+  return base::Minutes(5);
 }
 
 base::Time ConversionStorageDelegateImpl::GetReportTime(
diff --git a/content/browser/attribution_reporting/conversion_storage_delegate_impl_unittest.cc b/content/browser/attribution_reporting/conversion_storage_delegate_impl_unittest.cc
index add1387..549a5c5 100644
--- a/content/browser/attribution_reporting/conversion_storage_delegate_impl_unittest.cc
+++ b/content/browser/attribution_reporting/conversion_storage_delegate_impl_unittest.cc
@@ -14,7 +14,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kDefaultExpiry = base::TimeDelta::FromDays(30);
+constexpr base::TimeDelta kDefaultExpiry = base::Days(30);
 
 AttributionReport GetReport(base::Time impression_time,
                             base::Time conversion_time,
@@ -43,7 +43,7 @@
   base::Time impression_time = base::Time::Now();
   const AttributionReport report =
       GetReport(impression_time, /*conversion_time=*/impression_time);
-  EXPECT_EQ(impression_time + base::TimeDelta::FromDays(2),
+  EXPECT_EQ(impression_time + base::Days(2),
             ConversionStorageDelegateImpl().GetReportTime(
                 report.impression, report.conversion_time));
 }
@@ -51,10 +51,10 @@
 TEST_F(ConversionStorageDelegateImplTest,
        ConversionImmediatelyBeforeWindow_NextWindowUsed) {
   base::Time impression_time = base::Time::Now();
-  base::Time conversion_time = impression_time + base::TimeDelta::FromDays(2) -
-                               base::TimeDelta::FromMinutes(1);
+  base::Time conversion_time =
+      impression_time + base::Days(2) - base::Minutes(1);
   const AttributionReport report = GetReport(impression_time, conversion_time);
-  EXPECT_EQ(impression_time + base::TimeDelta::FromDays(7),
+  EXPECT_EQ(impression_time + base::Days(7),
             ConversionStorageDelegateImpl().GetReportTime(
                 report.impression, report.conversion_time));
 }
@@ -65,10 +65,10 @@
 
   // The deadline for a window is 1 hour before the window. Use a time just
   // before the deadline.
-  base::Time conversion_time = impression_time + base::TimeDelta::FromDays(2) -
-                               base::TimeDelta::FromMinutes(61);
+  base::Time conversion_time =
+      impression_time + base::Days(2) - base::Minutes(61);
   const AttributionReport report = GetReport(impression_time, conversion_time);
-  EXPECT_EQ(impression_time + base::TimeDelta::FromDays(2),
+  EXPECT_EQ(impression_time + base::Days(2),
             ConversionStorageDelegateImpl().GetReportTime(
                 report.impression, report.conversion_time));
 }
@@ -76,13 +76,12 @@
 TEST_F(ConversionStorageDelegateImplTest,
        ImpressionExpiryBeforeTwoDayWindow_TwoDayWindowUsed) {
   base::Time impression_time = base::Time::Now();
-  base::Time conversion_time = impression_time + base::TimeDelta::FromHours(1);
+  base::Time conversion_time = impression_time + base::Hours(1);
 
   // Set the impression to expire before the two day window.
-  const AttributionReport report =
-      GetReport(impression_time, conversion_time,
-                /*expiry=*/base::TimeDelta::FromHours(2));
-  EXPECT_EQ(impression_time + base::TimeDelta::FromDays(2),
+  const AttributionReport report = GetReport(impression_time, conversion_time,
+                                             /*expiry=*/base::Hours(2));
+  EXPECT_EQ(impression_time + base::Days(2),
             ConversionStorageDelegateImpl().GetReportTime(
                 report.impression, report.conversion_time));
 }
@@ -90,16 +89,14 @@
 TEST_F(ConversionStorageDelegateImplTest,
        ImpressionExpiryBeforeSevenDayWindow_ExpiryWindowUsed) {
   base::Time impression_time = base::Time::Now();
-  base::Time conversion_time = impression_time + base::TimeDelta::FromDays(3);
+  base::Time conversion_time = impression_time + base::Days(3);
 
   // Set the impression to expire before the two day window.
-  const AttributionReport report =
-      GetReport(impression_time, conversion_time,
-                /*expiry=*/base::TimeDelta::FromDays(4));
+  const AttributionReport report = GetReport(impression_time, conversion_time,
+                                             /*expiry=*/base::Days(4));
 
   // The expiry window is reported one hour after expiry time.
-  EXPECT_EQ(impression_time + base::TimeDelta::FromDays(4) +
-                base::TimeDelta::FromHours(1),
+  EXPECT_EQ(impression_time + base::Days(4) + base::Hours(1),
             ConversionStorageDelegateImpl().GetReportTime(
                 report.impression, report.conversion_time));
 }
@@ -107,16 +104,14 @@
 TEST_F(ConversionStorageDelegateImplTest,
        ImpressionExpiryAfterSevenDayWindow_ExpiryWindowUsed) {
   base::Time impression_time = base::Time::Now();
-  base::Time conversion_time = impression_time + base::TimeDelta::FromDays(7);
+  base::Time conversion_time = impression_time + base::Days(7);
 
   // Set the impression to expire before the two day window.
-  const AttributionReport report =
-      GetReport(impression_time, conversion_time,
-                /*expiry=*/base::TimeDelta::FromDays(9));
+  const AttributionReport report = GetReport(impression_time, conversion_time,
+                                             /*expiry=*/base::Days(9));
 
   // The expiry window is reported one hour after expiry time.
-  EXPECT_EQ(impression_time + base::TimeDelta::FromDays(9) +
-                base::TimeDelta::FromHours(1),
+  EXPECT_EQ(impression_time + base::Days(9) + base::Hours(1),
             ConversionStorageDelegateImpl().GetReportTime(
                 report.impression, report.conversion_time));
 }
@@ -124,13 +119,11 @@
 TEST_F(ConversionStorageDelegateImplTest,
        SourceTypeEvent_ExpiryLessThanTwoDays_TwoDaysUsed) {
   base::Time impression_time = base::Time::Now();
-  base::Time conversion_time = impression_time + base::TimeDelta::FromDays(3);
+  base::Time conversion_time = impression_time + base::Days(3);
   const AttributionReport report =
       GetReport(impression_time, conversion_time,
-                /*expiry=*/base::TimeDelta::FromDays(1),
-                StorableSource::SourceType::kEvent);
-  EXPECT_EQ(impression_time + base::TimeDelta::FromDays(2) +
-                base::TimeDelta::FromHours(1),
+                /*expiry=*/base::Days(1), StorableSource::SourceType::kEvent);
+  EXPECT_EQ(impression_time + base::Days(2) + base::Hours(1),
             ConversionStorageDelegateImpl().GetReportTime(
                 report.impression, report.conversion_time));
 }
@@ -138,13 +131,11 @@
 TEST_F(ConversionStorageDelegateImplTest,
        SourceTypeEvent_ExpiryGreaterThanTwoDays_ExpiryUsed) {
   base::Time impression_time = base::Time::Now();
-  base::Time conversion_time = impression_time + base::TimeDelta::FromDays(3);
+  base::Time conversion_time = impression_time + base::Days(3);
   const AttributionReport report =
       GetReport(impression_time, conversion_time,
-                /*expiry=*/base::TimeDelta::FromDays(4),
-                StorableSource::SourceType::kEvent);
-  EXPECT_EQ(impression_time + base::TimeDelta::FromDays(4) +
-                base::TimeDelta::FromHours(1),
+                /*expiry=*/base::Days(4), StorableSource::SourceType::kEvent);
+  EXPECT_EQ(impression_time + base::Days(4) + base::Hours(1),
             ConversionStorageDelegateImpl().GetReportTime(
                 report.impression, report.conversion_time));
 }
diff --git a/content/browser/attribution_reporting/conversion_storage_sql_unittest.cc b/content/browser/attribution_reporting/conversion_storage_sql_unittest.cc
index 008117b..322c730 100644
--- a/content/browser/attribution_reporting/conversion_storage_sql_unittest.cc
+++ b/content/browser/attribution_reporting/conversion_storage_sql_unittest.cc
@@ -190,15 +190,14 @@
   OpenDatabase();
 
   base::Time start = clock()->Now();
-  auto impression =
-      ImpressionBuilder(start).SetExpiry(base::TimeDelta::FromDays(30)).Build();
+  auto impression = ImpressionBuilder(start).SetExpiry(base::Days(30)).Build();
   storage()->StoreImpression(impression);
 
-  clock()->Advance(base::TimeDelta::FromDays(1));
+  clock()->Advance(base::Days(1));
   EXPECT_EQ(CreateReportStatus::kSuccess,
             MaybeCreateAndStoreConversionReport(DefaultConversion()));
 
-  clock()->Advance(base::TimeDelta::FromDays(1));
+  clock()->Advance(base::Days(1));
   EXPECT_EQ(CreateReportStatus::kSuccess,
             MaybeCreateAndStoreConversionReport(DefaultConversion()));
 
@@ -226,15 +225,14 @@
   OpenDatabase();
 
   base::Time start = clock()->Now();
-  auto impression =
-      ImpressionBuilder(start).SetExpiry(base::TimeDelta::FromDays(30)).Build();
+  auto impression = ImpressionBuilder(start).SetExpiry(base::Days(30)).Build();
   storage()->StoreImpression(impression);
 
-  clock()->Advance(base::TimeDelta::FromDays(1));
+  clock()->Advance(base::Days(1));
   EXPECT_EQ(CreateReportStatus::kSuccess,
             MaybeCreateAndStoreConversionReport(DefaultConversion()));
 
-  clock()->Advance(base::TimeDelta::FromDays(1));
+  clock()->Advance(base::Days(1));
   EXPECT_EQ(CreateReportStatus::kSuccess,
             MaybeCreateAndStoreConversionReport(DefaultConversion()));
 
@@ -262,16 +260,15 @@
 
   base::Time start = clock()->Now();
   for (int i = 0; i < 10; i++) {
-    auto impression = ImpressionBuilder(start)
-                          .SetExpiry(base::TimeDelta::FromDays(30))
-                          .Build();
+    auto impression =
+        ImpressionBuilder(start).SetExpiry(base::Days(30)).Build();
     storage()->StoreImpression(impression);
-    clock()->Advance(base::TimeDelta::FromDays(1));
+    clock()->Advance(base::Days(1));
   }
 
   EXPECT_EQ(CreateReportStatus::kSuccess,
             MaybeCreateAndStoreConversionReport(DefaultConversion()));
-  clock()->Advance(base::TimeDelta::FromDays(1));
+  clock()->Advance(base::Days(1));
   EXPECT_EQ(CreateReportStatus::kSuccess,
             MaybeCreateAndStoreConversionReport(DefaultConversion()));
 
@@ -337,7 +334,7 @@
   OpenDatabase();
   delegate()->set_max_conversions_per_impression(1);
   delegate()->set_rate_limits({
-      .time_window = base::TimeDelta::FromDays(7),
+      .time_window = base::Days(7),
       .max_contributions_per_window = INT_MAX,
   });
   const url::Origin impression_origin =
@@ -347,13 +344,13 @@
   const url::Origin conversion_origin =
       url::Origin::Create(GURL("https://b.example/"));
   storage()->StoreImpression(ImpressionBuilder(clock()->Now())
-                                 .SetExpiry(base::TimeDelta::FromDays(30))
+                                 .SetExpiry(base::Days(30))
                                  .SetImpressionOrigin(impression_origin)
                                  .SetReportingOrigin(reporting_origin)
                                  .SetConversionOrigin(conversion_origin)
                                  .Build());
 
-  clock()->Advance(base::TimeDelta::FromDays(1));
+  clock()->Advance(base::Days(1));
   EXPECT_EQ(
       CreateReportStatus::kSuccess,
       MaybeCreateAndStoreConversionReport(
@@ -375,7 +372,7 @@
               .Build()));
   EXPECT_EQ(0u, storage()->GetActiveImpressions().size());
 
-  clock()->Advance(base::TimeDelta::FromDays(1));
+  clock()->Advance(base::Days(1));
   EXPECT_TRUE(storage()->DeleteConversion(AttributionReport::Id(1)));
   storage()->ClearData(
       base::Time::Min(), base::Time::Max(),
@@ -397,7 +394,7 @@
   OpenDatabase();
   delegate()->set_max_conversions_per_impression(1);
   delegate()->set_rate_limits({
-      .time_window = base::TimeDelta::FromDays(7),
+      .time_window = base::Days(7),
       .max_contributions_per_window = INT_MAX,
   });
   const url::Origin impression_origin =
@@ -407,13 +404,13 @@
   const url::Origin conversion_origin =
       url::Origin::Create(GURL("https://sub.impression.example/"));
   storage()->StoreImpression(ImpressionBuilder(clock()->Now())
-                                 .SetExpiry(base::TimeDelta::FromDays(30))
+                                 .SetExpiry(base::Days(30))
                                  .SetImpressionOrigin(impression_origin)
                                  .SetReportingOrigin(reporting_origin)
                                  .SetConversionOrigin(conversion_origin)
                                  .Build());
 
-  clock()->Advance(base::TimeDelta::FromDays(1));
+  clock()->Advance(base::Days(1));
   EXPECT_EQ(
       CreateReportStatus::kSuccess,
       MaybeCreateAndStoreConversionReport(
@@ -435,7 +432,7 @@
               .Build()));
   EXPECT_EQ(0u, storage()->GetActiveImpressions().size());
 
-  clock()->Advance(base::TimeDelta::FromDays(1));
+  clock()->Advance(base::Days(1));
   EXPECT_TRUE(storage()->DeleteConversion(AttributionReport::Id(1)));
   storage()->ClearData(
       base::Time::Min(), base::Time::Max(),
@@ -527,15 +524,13 @@
 TEST_F(ConversionStorageSqlTest, ImpressionNotExpired_NotDeleted) {
   OpenDatabase();
 
-  storage()->StoreImpression(
-      ImpressionBuilder(clock()->Now())
-          .SetExpiry(base::TimeDelta::FromMilliseconds(3))
-          .Build());
+  storage()->StoreImpression(ImpressionBuilder(clock()->Now())
+                                 .SetExpiry(base::Milliseconds(3))
+                                 .Build());
   // Store another impression to trigger the expiry logic.
-  storage()->StoreImpression(
-      ImpressionBuilder(clock()->Now())
-          .SetExpiry(base::TimeDelta::FromMilliseconds(3))
-          .Build());
+  storage()->StoreImpression(ImpressionBuilder(clock()->Now())
+                                 .SetExpiry(base::Milliseconds(3))
+                                 .Build());
 
   CloseDatabase();
   ExpectImpressionRows(2u);
@@ -544,16 +539,14 @@
 TEST_F(ConversionStorageSqlTest, ImpressionExpired_Deleted) {
   OpenDatabase();
 
-  storage()->StoreImpression(
-      ImpressionBuilder(clock()->Now())
-          .SetExpiry(base::TimeDelta::FromMilliseconds(3))
-          .Build());
-  clock()->Advance(base::TimeDelta::FromMilliseconds(3));
+  storage()->StoreImpression(ImpressionBuilder(clock()->Now())
+                                 .SetExpiry(base::Milliseconds(3))
+                                 .Build());
+  clock()->Advance(base::Milliseconds(3));
   // Store another impression to trigger the expiry logic.
-  storage()->StoreImpression(
-      ImpressionBuilder(clock()->Now())
-          .SetExpiry(base::TimeDelta::FromMilliseconds(3))
-          .Build());
+  storage()->StoreImpression(ImpressionBuilder(clock()->Now())
+                                 .SetExpiry(base::Milliseconds(3))
+                                 .Build());
 
   CloseDatabase();
   ExpectImpressionRows(1u);
@@ -562,19 +555,16 @@
 TEST_F(ConversionStorageSqlTest, ImpressionExpired_TooFrequent_NotDeleted) {
   OpenDatabase();
 
-  delegate()->set_delete_expired_impressions_frequency(
-      base::TimeDelta::FromMilliseconds(4));
+  delegate()->set_delete_expired_impressions_frequency(base::Milliseconds(4));
 
-  storage()->StoreImpression(
-      ImpressionBuilder(clock()->Now())
-          .SetExpiry(base::TimeDelta::FromMilliseconds(3))
-          .Build());
-  clock()->Advance(base::TimeDelta::FromMilliseconds(3));
+  storage()->StoreImpression(ImpressionBuilder(clock()->Now())
+                                 .SetExpiry(base::Milliseconds(3))
+                                 .Build());
+  clock()->Advance(base::Milliseconds(3));
   // Store another impression to trigger the expiry logic.
-  storage()->StoreImpression(
-      ImpressionBuilder(clock()->Now())
-          .SetExpiry(base::TimeDelta::FromMilliseconds(3))
-          .Build());
+  storage()->StoreImpression(ImpressionBuilder(clock()->Now())
+                                 .SetExpiry(base::Milliseconds(3))
+                                 .Build());
 
   CloseDatabase();
   ExpectImpressionRows(2u);
@@ -584,19 +574,17 @@
        ExpiredImpressionWithPendingConversion_NotDeleted) {
   OpenDatabase();
 
-  storage()->StoreImpression(
-      ImpressionBuilder(clock()->Now())
-          .SetExpiry(base::TimeDelta::FromMilliseconds(3))
-          .Build());
+  storage()->StoreImpression(ImpressionBuilder(clock()->Now())
+                                 .SetExpiry(base::Milliseconds(3))
+                                 .Build());
   EXPECT_EQ(CreateReportStatus::kSuccess,
             MaybeCreateAndStoreConversionReport(DefaultConversion()));
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(3));
+  clock()->Advance(base::Milliseconds(3));
   // Store another impression to trigger the expiry logic.
-  storage()->StoreImpression(
-      ImpressionBuilder(clock()->Now())
-          .SetExpiry(base::TimeDelta::FromMilliseconds(3))
-          .Build());
+  storage()->StoreImpression(ImpressionBuilder(clock()->Now())
+                                 .SetExpiry(base::Milliseconds(3))
+                                 .Build());
 
   CloseDatabase();
   ExpectImpressionRows(2u);
@@ -605,21 +593,18 @@
 TEST_F(ConversionStorageSqlTest, TwoImpressionsOneExpired_OneDeleted) {
   OpenDatabase();
 
-  storage()->StoreImpression(
-      ImpressionBuilder(clock()->Now())
-          .SetExpiry(base::TimeDelta::FromMilliseconds(3))
-          .Build());
-  storage()->StoreImpression(
-      ImpressionBuilder(clock()->Now())
-          .SetExpiry(base::TimeDelta::FromMilliseconds(4))
-          .Build());
+  storage()->StoreImpression(ImpressionBuilder(clock()->Now())
+                                 .SetExpiry(base::Milliseconds(3))
+                                 .Build());
+  storage()->StoreImpression(ImpressionBuilder(clock()->Now())
+                                 .SetExpiry(base::Milliseconds(4))
+                                 .Build());
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(3));
+  clock()->Advance(base::Milliseconds(3));
   // Store another impression to trigger the expiry logic.
-  storage()->StoreImpression(
-      ImpressionBuilder(clock()->Now())
-          .SetExpiry(base::TimeDelta::FromMilliseconds(3))
-          .Build());
+  storage()->StoreImpression(ImpressionBuilder(clock()->Now())
+                                 .SetExpiry(base::Milliseconds(3))
+                                 .Build());
 
   CloseDatabase();
   ExpectImpressionRows(2u);
@@ -631,26 +616,24 @@
   const int kReportTime = 5;
   delegate()->set_report_time_ms(kReportTime);
 
-  storage()->StoreImpression(
-      ImpressionBuilder(clock()->Now())
-          .SetExpiry(base::TimeDelta::FromMilliseconds(3))
-          .Build());
+  storage()->StoreImpression(ImpressionBuilder(clock()->Now())
+                                 .SetExpiry(base::Milliseconds(3))
+                                 .Build());
   EXPECT_EQ(CreateReportStatus::kSuccess,
             MaybeCreateAndStoreConversionReport(DefaultConversion()));
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(3));
+  clock()->Advance(base::Milliseconds(3));
   // Advance past the default report time.
-  clock()->Advance(base::TimeDelta::FromMilliseconds(kReportTime));
+  clock()->Advance(base::Milliseconds(kReportTime));
 
   std::vector<AttributionReport> reports =
       storage()->GetConversionsToReport(clock()->Now());
   EXPECT_EQ(1u, reports.size());
   EXPECT_TRUE(storage()->DeleteConversion(*reports[0].conversion_id));
   // Store another impression to trigger the expiry logic.
-  storage()->StoreImpression(
-      ImpressionBuilder(clock()->Now())
-          .SetExpiry(base::TimeDelta::FromMilliseconds(3))
-          .Build());
+  storage()->StoreImpression(ImpressionBuilder(clock()->Now())
+                                 .SetExpiry(base::Milliseconds(3))
+                                 .Build());
 
   CloseDatabase();
   ExpectImpressionRows(1u);
diff --git a/content/browser/attribution_reporting/conversion_storage_unittest.cc b/content/browser/attribution_reporting/conversion_storage_unittest.cc
index 4d96861..10255a17 100644
--- a/content/browser/attribution_reporting/conversion_storage_unittest.cc
+++ b/content/browser/attribution_reporting/conversion_storage_unittest.cc
@@ -73,7 +73,7 @@
     AttributionReport report(impression, conversion.conversion_data(),
                              /*conversion_time=*/clock_.Now(),
                              /*report_time=*/impression.impression_time() +
-                                 base::TimeDelta::FromMilliseconds(kReportTime),
+                                 base::Milliseconds(kReportTime),
                              conversion.priority(),
                              /*conversion_id=*/absl::nullopt);
     return report;
@@ -202,7 +202,7 @@
             MaybeCreateAndStoreConversionReport(
                 ConversionBuilder().SetEventSourceTriggerData(456).Build()));
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(kReportTime));
+  clock()->Advance(base::Milliseconds(kReportTime));
 
   std::vector<AttributionReport> actual_reports =
       storage()->GetConversionsToReport(clock()->Now());
@@ -211,28 +211,26 @@
 }
 
 TEST_F(ConversionStorageTest, ImpressionExpired_NoConversionsStored) {
-  storage()->StoreImpression(
-      ImpressionBuilder(clock()->Now())
-          .SetExpiry(base::TimeDelta::FromMilliseconds(2))
-          .Build());
-  clock()->Advance(base::TimeDelta::FromMilliseconds(2));
+  storage()->StoreImpression(ImpressionBuilder(clock()->Now())
+                                 .SetExpiry(base::Milliseconds(2))
+                                 .Build());
+  clock()->Advance(base::Milliseconds(2));
 
   EXPECT_EQ(CreateReportStatus::kNoMatchingImpressions,
             MaybeCreateAndStoreConversionReport(DefaultConversion()));
 }
 
 TEST_F(ConversionStorageTest, ImpressionExpired_ConversionsStoredPrior) {
-  storage()->StoreImpression(
-      ImpressionBuilder(clock()->Now())
-          .SetExpiry(base::TimeDelta::FromMilliseconds(4))
-          .Build());
+  storage()->StoreImpression(ImpressionBuilder(clock()->Now())
+                                 .SetExpiry(base::Milliseconds(4))
+                                 .Build());
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(3));
+  clock()->Advance(base::Milliseconds(3));
 
   EXPECT_EQ(CreateReportStatus::kSuccess,
             MaybeCreateAndStoreConversionReport(DefaultConversion()));
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(5));
+  clock()->Advance(base::Milliseconds(5));
 
   EXPECT_EQ(CreateReportStatus::kNoMatchingImpressions,
             MaybeCreateAndStoreConversionReport(DefaultConversion()));
@@ -262,7 +260,7 @@
 
   AttributionReport expected_report = GetExpectedReport(impression, conversion);
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(kReportTime));
+  clock()->Advance(base::Milliseconds(kReportTime));
 
   std::vector<AttributionReport> actual_reports =
       storage()->GetConversionsToReport(clock()->Now());
@@ -279,7 +277,7 @@
   EXPECT_EQ(CreateReportStatus::kNoMatchingImpressions,
             MaybeCreateAndStoreConversionReport(DefaultConversion()));
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(kReportTime));
+  clock()->Advance(base::Milliseconds(kReportTime));
 
   EXPECT_EQ(0u, storage()->GetConversionsToReport(clock()->Now()).size());
 }
@@ -294,7 +292,7 @@
   EXPECT_EQ(CreateReportStatus::kNoMatchingImpressions,
             MaybeCreateAndStoreConversionReport(DefaultConversion()));
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(kReportTime));
+  clock()->Advance(base::Milliseconds(kReportTime));
 
   EXPECT_EQ(0u, storage()->GetConversionsToReport(clock()->Now()).size());
 }
@@ -304,7 +302,7 @@
   EXPECT_EQ(CreateReportStatus::kSuccess,
             MaybeCreateAndStoreConversionReport(DefaultConversion()));
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(kReportTime));
+  clock()->Advance(base::Milliseconds(kReportTime));
 
   std::vector<AttributionReport> reports =
       storage()->GetConversionsToReport(clock()->Now());
@@ -363,7 +361,7 @@
   EXPECT_EQ(CreateReportStatus::kSuccess,
             MaybeCreateAndStoreConversionReport(DefaultConversion()));
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(kReportTime));
+  clock()->Advance(base::Milliseconds(kReportTime));
 
   // Delete the report.
   DeleteConversionReports(storage()->GetConversionsToReport(clock()->Now()));
@@ -379,7 +377,7 @@
   AttributionReport expected_report =
       GetExpectedReport(new_impression, conversion);
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(kReportTime));
+  clock()->Advance(base::Milliseconds(kReportTime));
 
   // Verify it was the new impression that converted.
   EXPECT_THAT(storage()->GetConversionsToReport(clock()->Now()),
@@ -395,7 +393,7 @@
   EXPECT_EQ(CreateReportStatus::kSuccess,
             MaybeCreateAndStoreConversionReport(DefaultConversion()));
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(kReportTime));
+  clock()->Advance(base::Milliseconds(kReportTime));
 
   // Delete the report.
   DeleteConversionReports(storage()->GetConversionsToReport(clock()->Now()));
@@ -431,7 +429,7 @@
   auto conversion = DefaultConversion();
 
   // Advance clock so third impression is stored at a different timestamp.
-  clock()->Advance(base::TimeDelta::FromMilliseconds(3));
+  clock()->Advance(base::Milliseconds(3));
 
   // Make a conversion with different impression data.
   auto third_impression = ImpressionBuilder(clock()->Now()).SetData(10).Build();
@@ -442,7 +440,7 @@
   EXPECT_EQ(CreateReportStatus::kSuccess,
             MaybeCreateAndStoreConversionReport(conversion));
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(kReportTime));
+  clock()->Advance(base::Milliseconds(kReportTime));
 
   std::vector<AttributionReport> actual_reports =
       storage()->GetConversionsToReport(clock()->Now());
@@ -456,10 +454,10 @@
   storage()->StoreImpression(first_impression);
 
   // Advance clock so the next impression is stored at a different timestamp.
-  clock()->Advance(base::TimeDelta::FromMilliseconds(3));
+  clock()->Advance(base::Milliseconds(3));
   storage()->StoreImpression(ImpressionBuilder(clock()->Now()).Build());
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(3));
+  clock()->Advance(base::Milliseconds(3));
   storage()->StoreImpression(ImpressionBuilder(clock()->Now()).Build());
 
   EXPECT_EQ(CreateReportStatus::kSuccess,
@@ -467,13 +465,13 @@
 
   // Advance to the first impression's report time and verify only its report is
   // available.
-  clock()->Advance(base::TimeDelta::FromMilliseconds(kReportTime - 6));
+  clock()->Advance(base::Milliseconds(kReportTime - 6));
   EXPECT_EQ(0u, storage()->GetConversionsToReport(clock()->Now()).size());
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(3));
+  clock()->Advance(base::Milliseconds(3));
   EXPECT_EQ(0u, storage()->GetConversionsToReport(clock()->Now()).size());
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(3));
+  clock()->Advance(base::Milliseconds(3));
   EXPECT_EQ(1u, storage()->GetConversionsToReport(clock()->Now()).size());
 }
 
@@ -481,7 +479,7 @@
   storage()->StoreImpression(ImpressionBuilder(clock()->Now()).Build());
   EXPECT_EQ(CreateReportStatus::kSuccess,
             MaybeCreateAndStoreConversionReport(DefaultConversion()));
-  clock()->Advance(base::TimeDelta::FromMilliseconds(kReportTime));
+  clock()->Advance(base::Milliseconds(kReportTime));
 
   std::vector<AttributionReport> first_call_reports =
       storage()->GetConversionsToReport(clock()->Now());
@@ -582,8 +580,7 @@
   auto impression = ImpressionBuilder(now).Build();
   storage()->StoreImpression(impression);
 
-  storage()->ClearData(now + base::TimeDelta::FromMinutes(10),
-                       now + base::TimeDelta::FromMinutes(20),
+  storage()->ClearData(now + base::Minutes(10), now + base::Minutes(20),
                        GetMatcher(impression.impression_origin()));
   EXPECT_EQ(CreateReportStatus::kSuccess,
             MaybeCreateAndStoreConversionReport(DefaultConversion()));
@@ -595,7 +592,7 @@
   {
     auto impression = ImpressionBuilder(now).Build();
     storage()->StoreImpression(impression);
-    storage()->ClearData(now, now + base::TimeDelta::FromMinutes(20),
+    storage()->ClearData(now, now + base::Minutes(20),
                          GetMatcher(impression.conversion_origin()));
     EXPECT_EQ(CreateReportStatus::kNoMatchingImpressions,
               MaybeCreateAndStoreConversionReport(DefaultConversion()));
@@ -611,8 +608,7 @@
   EXPECT_EQ(CreateReportStatus::kSuccess,
             MaybeCreateAndStoreConversionReport(conversion));
 
-  storage()->ClearData(now - base::TimeDelta::FromMinutes(20),
-                       now + base::TimeDelta::FromMinutes(20),
+  storage()->ClearData(now - base::Minutes(20), now + base::Minutes(20),
                        GetMatcher(impression.impression_origin()));
 
   EXPECT_TRUE(storage()->GetConversionsToReport(base::Time::Max()).empty());
@@ -626,12 +622,12 @@
     auto origin =
         url::Origin::Create(GURL(base::StringPrintf("https://%d.com/", i)));
     storage()->StoreImpression(ImpressionBuilder(now)
-                                   .SetExpiry(base::TimeDelta::FromDays(30))
+                                   .SetExpiry(base::Days(30))
                                    .SetImpressionOrigin(origin)
                                    .SetReportingOrigin(origin)
                                    .SetConversionOrigin(origin)
                                    .Build());
-    clock()->Advance(base::TimeDelta::FromDays(1));
+    clock()->Advance(base::Days(1));
   }
 
   // Convert half of them now, half after another day.
@@ -645,7 +641,7 @@
                       .SetReportingOrigin(origin)
                       .Build()));
   }
-  clock()->Advance(base::TimeDelta::FromDays(1));
+  clock()->Advance(base::Days(1));
   for (int i = 5; i < 10; i++) {
     auto origin =
         url::Origin::Create(GURL(base::StringPrintf("https://%d.com/", i)));
@@ -664,8 +660,7 @@
 
 TEST_F(ConversionStorageTest, ClearDataWithImpressionOutsideRange) {
   base::Time start = clock()->Now();
-  auto impression =
-      ImpressionBuilder(start).SetExpiry(base::TimeDelta::FromDays(30)).Build();
+  auto impression = ImpressionBuilder(start).SetExpiry(base::Days(30)).Build();
   auto conversion = DefaultConversion();
 
   storage()->StoreImpression(impression);
@@ -681,13 +676,12 @@
 // delete anything, unless the time range intersects one of the events.
 TEST_F(ConversionStorageTest, ClearDataRangeBetweenEvents) {
   base::Time start = clock()->Now();
-  auto impression =
-      ImpressionBuilder(start).SetExpiry(base::TimeDelta::FromDays(30)).Build();
+  auto impression = ImpressionBuilder(start).SetExpiry(base::Days(30)).Build();
   auto conversion = DefaultConversion();
 
   storage()->StoreImpression(impression);
 
-  clock()->Advance(base::TimeDelta::FromDays(1));
+  clock()->Advance(base::Days(1));
 
   const AttributionReport expected_report =
       GetExpectedReport(impression, conversion);
@@ -695,8 +689,7 @@
   EXPECT_EQ(CreateReportStatus::kSuccess,
             MaybeCreateAndStoreConversionReport(conversion));
 
-  storage()->ClearData(start + base::TimeDelta::FromMinutes(1),
-                       start + base::TimeDelta::FromMinutes(10),
+  storage()->ClearData(start + base::Minutes(1), start + base::Minutes(10),
                        GetMatcher(impression.impression_origin()));
 
   std::vector<AttributionReport> actual_reports =
@@ -707,17 +700,14 @@
 // multiple impressions per conversion, if only a subset of impressions match.
 TEST_F(ConversionStorageTest, ClearDataWithMultiTouch) {
   base::Time start = clock()->Now();
-  auto impression1 =
-      ImpressionBuilder(start).SetExpiry(base::TimeDelta::FromDays(30)).Build();
+  auto impression1 = ImpressionBuilder(start).SetExpiry(base::Days(30)).Build();
   storage()->StoreImpression(impression1);
 
-  clock()->Advance(base::TimeDelta::FromDays(1));
-  auto impression2 = ImpressionBuilder(clock()->Now())
-                         .SetExpiry(base::TimeDelta::FromDays(30))
-                         .Build();
-  auto impression3 = ImpressionBuilder(clock()->Now())
-                         .SetExpiry(base::TimeDelta::FromDays(30))
-                         .Build();
+  clock()->Advance(base::Days(1));
+  auto impression2 =
+      ImpressionBuilder(clock()->Now()).SetExpiry(base::Days(30)).Build();
+  auto impression3 =
+      ImpressionBuilder(clock()->Now()).SetExpiry(base::Days(30)).Build();
 
   storage()->StoreImpression(impression2);
   storage()->StoreImpression(impression3);
@@ -736,16 +726,15 @@
 TEST_F(ConversionStorageTest, DeleteAll) {
   base::Time start = clock()->Now();
   for (int i = 0; i < 10; i++) {
-    auto impression = ImpressionBuilder(start)
-                          .SetExpiry(base::TimeDelta::FromDays(30))
-                          .Build();
+    auto impression =
+        ImpressionBuilder(start).SetExpiry(base::Days(30)).Build();
     storage()->StoreImpression(impression);
-    clock()->Advance(base::TimeDelta::FromDays(1));
+    clock()->Advance(base::Days(1));
   }
 
   EXPECT_EQ(CreateReportStatus::kSuccess,
             MaybeCreateAndStoreConversionReport(DefaultConversion()));
-  clock()->Advance(base::TimeDelta::FromDays(1));
+  clock()->Advance(base::Days(1));
   EXPECT_EQ(CreateReportStatus::kSuccess,
             MaybeCreateAndStoreConversionReport(DefaultConversion()));
 
@@ -761,16 +750,15 @@
 TEST_F(ConversionStorageTest, DeleteAllNullDeleteBegin) {
   base::Time start = clock()->Now();
   for (int i = 0; i < 10; i++) {
-    auto impression = ImpressionBuilder(start)
-                          .SetExpiry(base::TimeDelta::FromDays(30))
-                          .Build();
+    auto impression =
+        ImpressionBuilder(start).SetExpiry(base::Days(30)).Build();
     storage()->StoreImpression(impression);
-    clock()->Advance(base::TimeDelta::FromDays(1));
+    clock()->Advance(base::Days(1));
   }
 
   EXPECT_EQ(CreateReportStatus::kSuccess,
             MaybeCreateAndStoreConversionReport(DefaultConversion()));
-  clock()->Advance(base::TimeDelta::FromDays(1));
+  clock()->Advance(base::Days(1));
   EXPECT_EQ(CreateReportStatus::kSuccess,
             MaybeCreateAndStoreConversionReport(DefaultConversion()));
 
@@ -854,7 +842,7 @@
   EXPECT_EQ(CreateReportStatus::kDroppedForNoise,
             MaybeCreateAndStoreConversionReport(DefaultConversion()));
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(kReportTime));
+  clock()->Advance(base::Milliseconds(kReportTime));
 
   std::vector<AttributionReport> actual_reports =
       storage()->GetConversionsToReport(clock()->Now());
@@ -879,7 +867,7 @@
             MaybeCreateAndStoreConversionReport(
                 ConversionBuilder().SetConversionData(7).Build()));
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(kReportTime));
+  clock()->Advance(base::Milliseconds(kReportTime));
 
   std::vector<AttributionReport> actual_reports =
       storage()->GetConversionsToReport(clock()->Now());
@@ -917,7 +905,7 @@
   const AttributionReport expected_report =
       GetExpectedReport(impression, conversion);
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(kReportTime));
+  clock()->Advance(base::Milliseconds(kReportTime));
 
   std::vector<AttributionReport> actual_reports =
       storage()->GetConversionsToReport(clock()->Now());
@@ -928,7 +916,7 @@
        NeverAndTruthfullyAttributeImpressions_ReportNotStored) {
   storage()->StoreImpression(ImpressionBuilder(clock()->Now()).Build());
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(1));
+  clock()->Advance(base::Milliseconds(1));
 
   storage()->StoreImpression(
       ImpressionBuilder(clock()->Now())
@@ -941,7 +929,7 @@
   EXPECT_EQ(CreateReportStatus::kDroppedForNoise,
             MaybeCreateAndStoreConversionReport(conversion));
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(kReportTime));
+  clock()->Advance(base::Milliseconds(kReportTime));
 
   std::vector<AttributionReport> actual_reports =
       storage()->GetConversionsToReport(clock()->Now());
@@ -1039,7 +1027,7 @@
                 url::Origin::Create(GURL(impression.conversion_origin)))
             .SetSourceType(StorableSource::SourceType::kEvent)
             .Build());
-    clock()->Advance(base::TimeDelta::FromMilliseconds(1));
+    clock()->Advance(base::Milliseconds(1));
   }
 
   std::vector<StorableSource> stored_impressions =
@@ -1074,7 +1062,7 @@
             MaybeCreateAndStoreConversionReport(DefaultConversion()));
   EXPECT_EQ(0u, storage()->GetActiveImpressions().size());
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(1));
+  clock()->Advance(base::Milliseconds(1));
   storage()->StoreImpression(
       ImpressionBuilder(clock()->Now())
           .SetConversionOrigin(url::Origin::Create(GURL("https://a.example")))
@@ -1083,7 +1071,7 @@
   EXPECT_EQ(1u, storage()->GetActiveImpressions().size());
 
   delegate()->set_max_attribution_destinations_per_event_source(1);
-  clock()->Advance(base::TimeDelta::FromMilliseconds(1));
+  clock()->Advance(base::Milliseconds(1));
   storage()->StoreImpression(
       ImpressionBuilder(clock()->Now())
           .SetConversionOrigin(url::Origin::Create(GURL("https://b.example")))
@@ -1102,7 +1090,7 @@
   // retained; a.example is the only one that should have been deleted. The
   // presence of 1 conversion to report implies that the inactive impression
   // remains in the DB.
-  clock()->Advance(base::TimeDelta::FromMilliseconds(kReportTime));
+  clock()->Advance(base::Milliseconds(kReportTime));
   EXPECT_EQ(1u, storage()->GetConversionsToReport(clock()->Now()).size());
 }
 
@@ -1111,11 +1099,11 @@
   storage()->StoreImpression(
       ImpressionBuilder(clock()->Now()).SetData(3).Build());
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(1));
+  clock()->Advance(base::Milliseconds(1));
   storage()->StoreImpression(
       ImpressionBuilder(clock()->Now()).SetData(7).Build());
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(1));
+  clock()->Advance(base::Milliseconds(1));
   storage()->StoreImpression(
       ImpressionBuilder(clock()->Now()).SetData(5).Build());
 
@@ -1123,7 +1111,7 @@
   EXPECT_EQ(CreateReportStatus::kSuccess,
             MaybeCreateAndStoreConversionReport(DefaultConversion()));
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(kReportTime));
+  clock()->Advance(base::Milliseconds(kReportTime));
 
   std::vector<AttributionReport> actual_reports =
       storage()->GetConversionsToReport(clock()->Now());
@@ -1136,11 +1124,11 @@
   storage()->StoreImpression(
       ImpressionBuilder(clock()->Now()).SetPriority(100).SetData(3).Build());
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(1));
+  clock()->Advance(base::Milliseconds(1));
   storage()->StoreImpression(
       ImpressionBuilder(clock()->Now()).SetPriority(300).SetData(5).Build());
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(1));
+  clock()->Advance(base::Milliseconds(1));
   storage()->StoreImpression(
       ImpressionBuilder(clock()->Now()).SetPriority(200).SetData(7).Build());
 
@@ -1148,7 +1136,7 @@
   EXPECT_EQ(CreateReportStatus::kSuccess,
             MaybeCreateAndStoreConversionReport(DefaultConversion()));
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(kReportTime));
+  clock()->Advance(base::Milliseconds(kReportTime));
 
   std::vector<AttributionReport> actual_reports =
       storage()->GetConversionsToReport(clock()->Now());
@@ -1191,12 +1179,11 @@
   const AttributionReport expected_report(
       impression, /*conversion_data=*/7,
       /*conversion_time=*/clock()->Now(),
-      /*report_time=*/clock()->Now() +
-          base::TimeDelta::FromMilliseconds(kReportTime),
+      /*report_time=*/clock()->Now() + base::Milliseconds(kReportTime),
       /*priority=*/0,
       /*conversion_id=*/absl::nullopt);
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(kReportTime));
+  clock()->Advance(base::Milliseconds(kReportTime));
 
   std::vector<AttributionReport> actual_reports =
       storage()->GetConversionsToReport(clock()->Now());
@@ -1249,7 +1236,7 @@
   EXPECT_TRUE(result.dropped_report.has_value());
   EXPECT_EQ(23u, result.dropped_report->conversion_data);
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(kReportTime));
+  clock()->Advance(base::Milliseconds(kReportTime));
 
   std::vector<AttributionReport> actual_reports =
       storage()->GetConversionsToReport(clock()->Now());
@@ -1281,7 +1268,7 @@
             ConversionBuilder().SetPriority(i).SetConversionData(i).Build()));
   }
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(kReportTime));
+  clock()->Advance(base::Milliseconds(kReportTime));
 
   std::vector<AttributionReport> actual_reports =
       storage()->GetConversionsToReport(clock()->Now());
@@ -1299,7 +1286,7 @@
       MaybeCreateAndStoreConversionReport(
           ConversionBuilder().SetPriority(1).SetConversionData(3).Build()));
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(1));
+  clock()->Advance(base::Milliseconds(1));
   EXPECT_EQ(
       CreateReportStatus::kSuccess,
       MaybeCreateAndStoreConversionReport(
@@ -1307,7 +1294,7 @@
 
   // This report should not be stored, as even though it has the same priority
   // as the previous two, it is the most recent.
-  clock()->Advance(base::TimeDelta::FromMilliseconds(1));
+  clock()->Advance(base::Milliseconds(1));
   EXPECT_EQ(
       CreateReportStatus::kPriorityTooLow,
       MaybeCreateAndStoreConversionReport(
@@ -1315,7 +1302,7 @@
 
   // This report should be stored by replacing the one with `conversion_data ==
   // 2`, which is the most recent of the two with `priority == 1`.
-  clock()->Advance(base::TimeDelta::FromMilliseconds(1));
+  clock()->Advance(base::Milliseconds(1));
   EXPECT_EQ(
       CreateReportStatus::kSuccessDroppedLowerPriority,
       MaybeCreateAndStoreConversionReport(
@@ -1428,7 +1415,7 @@
                     .SetConversionData(75)
                     .Build()));
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(kReportTime));
+  clock()->Advance(base::Milliseconds(kReportTime));
   std::vector<AttributionReport> actual_reports =
       storage()->GetConversionsToReport(clock()->Now());
   EXPECT_EQ(3u, actual_reports.size());
@@ -1450,7 +1437,7 @@
           .Build());
   EXPECT_EQ(1u, storage()->GetActiveImpressions().size());
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(1));
+  clock()->Advance(base::Milliseconds(1));
 
   EXPECT_EQ(CreateReportStatus::kSuccess,
             MaybeCreateAndStoreConversionReport(
@@ -1461,7 +1448,7 @@
                     .SetConversionData(3)
                     .Build()));
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(kReportTime));
+  clock()->Advance(base::Milliseconds(kReportTime));
 
   std::vector<AttributionReport> actual_reports =
       storage()->GetConversionsToReport(clock()->Now());
@@ -1471,7 +1458,7 @@
   // Simulate the report being sent and deleted from storage.
   DeleteConversionReports(actual_reports);
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(1));
+  clock()->Advance(base::Milliseconds(1));
 
   // This report shouldn't be stored, as it should be deduped against the
   // previously stored one even though that previous one is no longer in the DB.
@@ -1484,7 +1471,7 @@
                     .SetConversionData(5)
                     .Build()));
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(kReportTime));
+  clock()->Advance(base::Milliseconds(kReportTime));
   EXPECT_THAT(storage()->GetConversionsToReport(clock()->Now()), IsEmpty());
 }
 
@@ -1494,7 +1481,7 @@
             MaybeCreateAndStoreConversionReport(
                 ConversionBuilder().SetPriority(13).Build()));
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(kReportTime));
+  clock()->Advance(base::Milliseconds(kReportTime));
 
   std::vector<AttributionReport> actual_reports =
       storage()->GetConversionsToReport(clock()->Now());
@@ -1551,14 +1538,14 @@
   EXPECT_EQ(CreateReportStatus::kSuccess,
             MaybeCreateAndStoreConversionReport(DefaultConversion()));
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(kReportTime));
+  clock()->Advance(base::Milliseconds(kReportTime));
 
   std::vector<AttributionReport> actual_reports =
       storage()->GetConversionsToReport(clock()->Now());
   EXPECT_EQ(1u, actual_reports.size());
   EXPECT_EQ(0, actual_reports[0].failed_send_attempts);
 
-  const base::TimeDelta delay = base::TimeDelta::FromDays(2);
+  const base::TimeDelta delay = base::Days(2);
   const base::Time new_report_time = actual_reports[0].report_time + delay;
   EXPECT_TRUE(storage()->UpdateReportForSendFailure(
       *actual_reports[0].conversion_id, new_report_time));
diff --git a/content/browser/attribution_reporting/conversion_test_utils.cc b/content/browser/attribution_reporting/conversion_test_utils.cc
index 7281216..dc7e1d69 100644
--- a/content/browser/attribution_reporting/conversion_test_utils.cc
+++ b/content/browser/attribution_reporting/conversion_test_utils.cc
@@ -94,8 +94,7 @@
 base::Time ConfigurableStorageDelegate::GetReportTime(
     const StorableSource& impression,
     base::Time conversion_time) const {
-  return impression.impression_time() +
-         base::TimeDelta::FromMilliseconds(report_time_ms_);
+  return impression.impression_time() + base::Milliseconds(report_time_ms_);
 }
 
 int ConfigurableStorageDelegate::GetMaxConversionsPerImpression(
@@ -218,7 +217,7 @@
 ImpressionBuilder::ImpressionBuilder(base::Time time)
     : impression_data_(123),
       impression_time_(time),
-      expiry_(base::TimeDelta::FromMilliseconds(kExpiryTime)),
+      expiry_(base::Milliseconds(kExpiryTime)),
       impression_origin_(url::Origin::Create(GURL(kDefaultImpressionOrigin))),
       conversion_origin_(url::Origin::Create(GURL(kDefaultConversionOrigin))),
       reporting_origin_(url::Origin::Create(GURL(kDefaultReportOrigin))),
diff --git a/content/browser/attribution_reporting/conversion_utils.cc b/content/browser/attribution_reporting/conversion_utils.cc
index 4f6c4766..39b426b 100644
--- a/content/browser/attribution_reporting/conversion_utils.cc
+++ b/content/browser/attribution_reporting/conversion_utils.cc
@@ -17,7 +17,7 @@
   base::TimeDelta expiry_deadline =
       impression.expiry_time() - impression.impression_time();
 
-  constexpr base::TimeDelta kMinExpiryDeadline = base::TimeDelta::FromDays(2);
+  constexpr base::TimeDelta kMinExpiryDeadline = base::Days(2);
   if (expiry_deadline < kMinExpiryDeadline)
     expiry_deadline = kMinExpiryDeadline;
 
@@ -38,14 +38,13 @@
   //
   // Note that only navigation (not event) sources have early reporting
   // deadlines.
-  constexpr base::TimeDelta kWindowDeadlineOffset =
-      base::TimeDelta::FromHours(1);
+  constexpr base::TimeDelta kWindowDeadlineOffset = base::Hours(1);
 
   std::vector<base::TimeDelta> early_deadlines;
   switch (impression.source_type()) {
     case StorableSource::SourceType::kNavigation:
-      early_deadlines = {base::TimeDelta::FromDays(2) - kWindowDeadlineOffset,
-                         base::TimeDelta::FromDays(7) - kWindowDeadlineOffset};
+      early_deadlines = {base::Days(2) - kWindowDeadlineOffset,
+                         base::Days(7) - kWindowDeadlineOffset};
       break;
     case StorableSource::SourceType::kEvent:
       early_deadlines = {};
diff --git a/content/browser/attribution_reporting/conversions_browsertest.cc b/content/browser/attribution_reporting/conversions_browsertest.cc
index 054640d..2d59612d 100644
--- a/content/browser/attribution_reporting/conversions_browsertest.cc
+++ b/content/browser/attribution_reporting/conversions_browsertest.cc
@@ -209,8 +209,7 @@
   // behavior with the new surface.
   base::RunLoop run_loop;
   base::SequencedTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(),
-      base::TimeDelta::FromMilliseconds(100));
+      FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(100));
   run_loop.Run();
   EXPECT_FALSE(expected_report.HasRequest());
 }
@@ -595,8 +594,7 @@
   // flakily failing if the logic breaks.
   base::RunLoop run_loop;
   base::SequencedTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(),
-      base::TimeDelta::FromMilliseconds(100));
+      FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(100));
   run_loop.Run();
   EXPECT_FALSE(expected_report.HasRequest());
 
@@ -698,8 +696,7 @@
   // flakily failing if the logic breaks.
   base::RunLoop run_loop;
   base::SequencedTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(),
-      base::TimeDelta::FromMilliseconds(100));
+      FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(100));
   run_loop.Run();
   EXPECT_FALSE(expected_report_not_sent.HasRequest());
 }
@@ -875,8 +872,7 @@
   // pre-rendered.
   base::RunLoop run_loop;
   base::SequencedTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(),
-      base::TimeDelta::FromMilliseconds(100));
+      FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(100));
   EXPECT_FALSE(expected_report.HasRequest());
 }
 
@@ -997,8 +993,7 @@
   // pre-rendered.
   base::RunLoop run_loop;
   base::SequencedTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(),
-      base::TimeDelta::FromMilliseconds(100));
+      FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(100));
   EXPECT_FALSE(expected_report.HasRequest());
 }
 
diff --git a/content/browser/attribution_reporting/impression_declaration_browsertest.cc b/content/browser/attribution_reporting/impression_declaration_browsertest.cc
index b937371..b8a47509 100644
--- a/content/browser/attribution_reporting/impression_declaration_browsertest.cc
+++ b/content/browser/attribution_reporting/impression_declaration_browsertest.cc
@@ -228,7 +228,7 @@
             last_impression.conversion_destination);
   EXPECT_EQ(url::Origin::Create(GURL("https://report.com")),
             last_impression.reporting_origin);
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1000), *last_impression.expiry);
+  EXPECT_EQ(base::Milliseconds(1000), *last_impression.expiry);
 
   // Verify default attribution source priority.
   EXPECT_EQ(0, last_impression.priority);
@@ -851,7 +851,7 @@
             last_impression.conversion_destination);
   EXPECT_EQ(url::Origin::Create(GURL("https://report.com")),
             last_impression.reporting_origin);
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1000), *last_impression.expiry);
+  EXPECT_EQ(base::Milliseconds(1000), *last_impression.expiry);
   EXPECT_EQ(10, last_impression.priority);
 }
 
diff --git a/content/browser/attribution_reporting/rate_limit_table_unittest.cc b/content/browser/attribution_reporting/rate_limit_table_unittest.cc
index 4b99fab..677ab847 100644
--- a/content/browser/attribution_reporting/rate_limit_table_unittest.cc
+++ b/content/browser/attribution_reporting/rate_limit_table_unittest.cc
@@ -117,7 +117,7 @@
   EXPECT_TRUE(table()->CreateTable(&db));
 
   delegate()->set_rate_limits({
-      .time_window = base::TimeDelta::FromDays(3),
+      .time_window = base::Days(3),
       .max_contributions_per_window = INT_MAX,
   });
 
@@ -130,7 +130,7 @@
 
   // The above report should be deleted, as it expires after the clock is
   // advanced.
-  clock()->Advance(base::TimeDelta::FromDays(3));
+  clock()->Advance(base::Days(3));
   EXPECT_TRUE(table()->AddRateLimit(
       &db,
       NewConversionReport(url::Origin::Create(GURL("https://c.example/")),
@@ -147,7 +147,7 @@
   delegate()->set_rate_limits({
       // Set this to >9d so |AddRateLimit|'s calls to |DeleteExpiredRateLimits|
       // don't delete any of the rows we're adding.
-      .time_window = base::TimeDelta::FromDays(10),
+      .time_window = base::Days(10),
       .max_contributions_per_window = 2,
   });
 
@@ -160,11 +160,11 @@
   EXPECT_TRUE(
       table()->AddRateLimit(&db, NewConversionReport(example_a, example_c)));
 
-  clock()->Advance(base::TimeDelta::FromDays(3));
+  clock()->Advance(base::Days(3));
   EXPECT_TRUE(
       table()->AddRateLimit(&db, NewConversionReport(example_a, example_d)));
 
-  clock()->Advance(base::TimeDelta::FromDays(3));
+  clock()->Advance(base::Days(3));
   EXPECT_TRUE(
       table()->AddRateLimit(&db, NewConversionReport(example_a, example_c)));
 
@@ -193,7 +193,7 @@
             table()->AttributionAllowed(&db, report_b_a, now));
 
   // Expire the first row above by advancing to +10d.
-  clock()->Advance(base::TimeDelta::FromDays(4));
+  clock()->Advance(base::Days(4));
   now = clock()->Now();
   EXPECT_EQ(AttributionAllowedStatus::kAllowed,
             table()->AttributionAllowed(&db, report_a_c, now));
@@ -220,7 +220,7 @@
   EXPECT_TRUE(table()->CreateTable(&db));
 
   delegate()->set_rate_limits({
-      .time_window = base::TimeDelta::FromDays(2),
+      .time_window = base::Days(2),
       .max_contributions_per_window = 2,
   });
 
@@ -267,7 +267,7 @@
   EXPECT_TRUE(table()->CreateTable(&db));
 
   delegate()->set_rate_limits({
-      .time_window = base::TimeDelta::FromDays(4),
+      .time_window = base::Days(4),
       .max_contributions_per_window = 2,
   });
 
@@ -282,7 +282,7 @@
   // ConversionDestination.
   EXPECT_TRUE(table()->AddRateLimit(
       &db, NewConversionReport(example_a, example_c_sub_a)));
-  clock()->Advance(base::TimeDelta::FromDays(3));
+  clock()->Advance(base::Days(3));
   EXPECT_TRUE(table()->AddRateLimit(
       &db, NewConversionReport(example_a, example_c_sub_b)));
 
@@ -304,7 +304,7 @@
   EXPECT_TRUE(table()->CreateTable(&db));
 
   delegate()->set_rate_limits({
-      .time_window = base::TimeDelta::FromDays(4),
+      .time_window = base::Days(4),
       .max_contributions_per_window = 2,
   });
 
@@ -319,7 +319,7 @@
   // impression_site.
   EXPECT_TRUE(table()->AddRateLimit(
       &db, NewConversionReport(example_c_sub_a, example_a)));
-  clock()->Advance(base::TimeDelta::FromDays(3));
+  clock()->Advance(base::Days(3));
   EXPECT_TRUE(table()->AddRateLimit(
       &db, NewConversionReport(example_c_sub_b, example_a)));
 
@@ -369,13 +369,13 @@
 
   EXPECT_TRUE(
       table()->AddRateLimit(&db, NewConversionReport(example_a, example_b)));
-  clock()->Advance(base::TimeDelta::FromDays(2));
+  clock()->Advance(base::Days(2));
   EXPECT_TRUE(
       table()->AddRateLimit(&db, NewConversionReport(example_a, example_b)));
-  clock()->Advance(base::TimeDelta::FromDays(2));
+  clock()->Advance(base::Days(2));
   EXPECT_TRUE(
       table()->AddRateLimit(&db, NewConversionReport(example_b, example_c)));
-  clock()->Advance(base::TimeDelta::FromDays(2));
+  clock()->Advance(base::Days(2));
   EXPECT_TRUE(
       table()->AddRateLimit(&db, NewConversionReport(example_b, example_c)));
   EXPECT_EQ(4u, GetRateLimitRows(&db));
@@ -391,9 +391,8 @@
 
   // Delete the first row: attribution should now be allowed for the site,
   // but the other rows should not be deleted.
-  EXPECT_TRUE(table()->ClearAllDataInRange(&db,
-                                           now - base::TimeDelta::FromDays(7),
-                                           now - base::TimeDelta::FromDays(6)));
+  EXPECT_TRUE(table()->ClearAllDataInRange(&db, now - base::Days(7),
+                                           now - base::Days(6)));
   EXPECT_EQ(3u, GetRateLimitRows(&db));
   EXPECT_EQ(AttributionAllowedStatus::kAllowed,
             table()->AttributionAllowed(
@@ -424,10 +423,10 @@
 
   EXPECT_TRUE(
       table()->AddRateLimit(&db, NewConversionReport(example_a, example_ba)));
-  clock()->Advance(base::TimeDelta::FromDays(2));
+  clock()->Advance(base::Days(2));
   EXPECT_TRUE(
       table()->AddRateLimit(&db, NewConversionReport(example_a, example_bb)));
-  clock()->Advance(base::TimeDelta::FromDays(2));
+  clock()->Advance(base::Days(2));
   EXPECT_TRUE(
       table()->AddRateLimit(&db, NewConversionReport(example_d, example_c)));
 
@@ -440,7 +439,7 @@
 
   // Should delete nothing, because (example_d, example_c) is at now.
   EXPECT_TRUE(table()->ClearDataForOriginsInRange(
-      &db, base::Time(), now - base::TimeDelta::FromDays(1),
+      &db, base::Time(), now - base::Days(1),
       base::BindRepeating(std::equal_to<url::Origin>(), example_c)));
   EXPECT_EQ(3u, GetRateLimitRows(&db));
   EXPECT_EQ(AttributionAllowedStatus::kNotAllowed,
@@ -487,8 +486,7 @@
 }
 
 TEST_F(RateLimitTableTest, AddRateLimit_DeletesExpiredRateLimits) {
-  delegate()->set_delete_expired_rate_limits_frequency(
-      base::TimeDelta::FromMinutes(5));
+  delegate()->set_delete_expired_rate_limits_frequency(base::Minutes(5));
 
   sql::Database db;
   EXPECT_TRUE(db.Open(db_path()));
@@ -506,10 +504,10 @@
               ElementsAre("https://a.example", "https://c.example"));
 
   delegate()->set_rate_limits({
-      .time_window = base::TimeDelta::FromMinutes(2),
+      .time_window = base::Minutes(2),
       .max_contributions_per_window = INT_MAX,
   });
-  clock()->Advance(base::TimeDelta::FromMinutes(1));
+  clock()->Advance(base::Minutes(1));
   EXPECT_TRUE(table()->AddRateLimit(
       &db,
       NewConversionReport(url::Origin::Create(GURL("https://e.example/")),
@@ -518,7 +516,7 @@
               ElementsAre("https://a.example", "https://c.example",
                           "https://e.example"));
 
-  clock()->Advance(base::TimeDelta::FromMinutes(3));
+  clock()->Advance(base::Minutes(3));
   EXPECT_TRUE(table()->AddRateLimit(
       &db,
       NewConversionReport(url::Origin::Create(GURL("https://g.example/")),
@@ -528,7 +526,7 @@
               ElementsAre("https://a.example", "https://c.example",
                           "https://e.example", "https://g.example"));
 
-  clock()->Advance(base::TimeDelta::FromMinutes(1));
+  clock()->Advance(base::Minutes(1));
   EXPECT_TRUE(table()->AddRateLimit(
       &db,
       NewConversionReport(url::Origin::Create(GURL("https://i.example/")),
@@ -587,7 +585,7 @@
   EXPECT_TRUE(table()->CreateTable(&db));
 
   delegate()->set_rate_limits({
-      .time_window = base::TimeDelta::FromDays(7),
+      .time_window = base::Days(7),
       .max_contributions_per_window = 16,
   });
 
@@ -613,8 +611,7 @@
                     {.bucket = "a", .value = 10},
                 }));
 
-  clock()->Advance(base::TimeDelta::FromDays(7) -
-                   base::TimeDelta::FromMilliseconds(1));
+  clock()->Advance(base::Days(7) - base::Milliseconds(1));
   EXPECT_EQ(AttributionAllowedStatus::kAllowed,
             table()->AddAggregateHistogramContributionsForTesting(
                 &db, impression,
@@ -629,7 +626,7 @@
                 }));
 
   // This is checking expiry behavior.
-  clock()->Advance(base::TimeDelta::FromDays(1));
+  clock()->Advance(base::Days(1));
   EXPECT_EQ(AttributionAllowedStatus::kAllowed,
             table()->AddAggregateHistogramContributionsForTesting(
                 &db, impression,
diff --git a/content/browser/audio/audio_service.cc b/content/browser/audio/audio_service.cc
index 450272a8..8e8f6aa 100644
--- a/content/browser/audio/audio_service.cc
+++ b/content/browser/audio/audio_service.cc
@@ -38,7 +38,7 @@
   int timeout_s = 0;
   if (!base::StringToInt(timeout_str, &timeout_s))
     return absl::nullopt;
-  return base::TimeDelta::FromSeconds(timeout_s);
+  return base::Seconds(timeout_s);
 }
 
 absl::optional<base::TimeDelta> GetCommandLineIdleTimeout() {
@@ -49,7 +49,7 @@
   int timeout_ms = 0;
   if (!base::StringToInt(timeout_str, &timeout_ms))
     return absl::nullopt;
-  return base::TimeDelta::FromMilliseconds(timeout_ms);
+  return base::Milliseconds(timeout_ms);
 }
 
 absl::optional<base::TimeDelta> GetAudioServiceProcessIdleTimeout() {
@@ -171,7 +171,7 @@
 }
 
 std::unique_ptr<media::AudioSystem> CreateAudioSystemForAudioService() {
-  constexpr auto kServiceDisconnectTimeout = base::TimeDelta::FromSeconds(1);
+  constexpr auto kServiceDisconnectTimeout = base::Seconds(1);
   return std::make_unique<audio::AudioSystemToServiceAdapter>(
       base::BindRepeating(&BindSystemInfoFromAnySequence),
       kServiceDisconnectTimeout);
diff --git a/content/browser/back_forward_cache_browsertest.cc b/content/browser/back_forward_cache_browsertest.cc
index 225e9d5..7861efd 100644
--- a/content/browser/back_forward_cache_browsertest.cc
+++ b/content/browser/back_forward_cache_browsertest.cc
@@ -536,8 +536,7 @@
 
   const int kMaxBufferedBytesPerRequest = 7000;
   const int kMaxBufferedBytesPerProcess = 10000;
-  const base::TimeDelta kGracePeriodToFinishLoading =
-      base::TimeDelta::FromSeconds(5);
+  const base::TimeDelta kGracePeriodToFinishLoading = base::Seconds(5);
 
  private:
   void AddSampleToBuckets(std::vector<base::Bucket>* buckets,
@@ -917,9 +916,7 @@
   FakeIdleTimeProvider(const FakeIdleTimeProvider&) = delete;
   FakeIdleTimeProvider& operator=(const FakeIdleTimeProvider&) = delete;
 
-  base::TimeDelta CalculateIdleTime() override {
-    return base::TimeDelta::FromSeconds(0);
-  }
+  base::TimeDelta CalculateIdleTime() override { return base::Seconds(0); }
 
   bool CheckIdleStateIsLocked() override { return false; }
 };
@@ -4423,7 +4420,7 @@
   // immediately evicted) by checking after 3 seconds.
   base::RunLoop loop;
   base::OneShotTimer timer;
-  timer.Start(FROM_HERE, base::TimeDelta::FromSeconds(3), loop.QuitClosure());
+  timer.Start(FROM_HERE, base::Seconds(3), loop.QuitClosure());
   loop.Run();
   EXPECT_EQ(nullptr, fetch2_response.http_request());
 
@@ -4480,7 +4477,7 @@
   // redirects of keepalive fetches and the redirect request should be sent.
   base::RunLoop loop;
   base::OneShotTimer timer;
-  timer.Start(FROM_HERE, base::TimeDelta::FromSeconds(3), loop.QuitClosure());
+  timer.Start(FROM_HERE, base::Seconds(3), loop.QuitClosure());
   loop.Run();
   EXPECT_EQ(nullptr, fetch2_response.http_request());
 
@@ -5241,7 +5238,7 @@
   base::RunLoop run_loop;
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE, run_loop.QuitClosure(),
-      kGracePeriodToFinishLoading + base::TimeDelta::FromSeconds(1));
+      kGracePeriodToFinishLoading + base::Seconds(1));
   run_loop.Run();
 
   // Ensure that the page is still in bfcache.
@@ -5286,7 +5283,7 @@
   base::RunLoop run_loop;
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE, run_loop.QuitClosure(),
-      kGracePeriodToFinishLoading + base::TimeDelta::FromSeconds(1));
+      kGracePeriodToFinishLoading + base::Seconds(1));
   run_loop.Run();
 
   // Ensure that the page is still in bfcache.
@@ -6489,10 +6486,9 @@
   base::TimeDelta time_to_live_in_back_forward_cache =
       BackForwardCacheImpl::GetTimeToLiveInBackForwardCache();
   // This should match the value we set in EnableFeatureAndSetParams.
-  EXPECT_EQ(time_to_live_in_back_forward_cache,
-            base::TimeDelta::FromSeconds(3600));
+  EXPECT_EQ(time_to_live_in_back_forward_cache, base::Seconds(3600));
 
-  base::TimeDelta delta = base::TimeDelta::FromMilliseconds(1);
+  base::TimeDelta delta = base::Milliseconds(1);
 
   ASSERT_TRUE(embedded_test_server()->Start());
   GURL url_a(embedded_test_server()->GetURL("a.com", "/title1.html"));
diff --git a/content/browser/background_sync/background_sync_launcher_unittest.cc b/content/browser/background_sync/background_sync_launcher_unittest.cc
index 21b80fa9d..774dc2c 100644
--- a/content/browser/background_sync/background_sync_launcher_unittest.cc
+++ b/content/browser/background_sync/background_sync_launcher_unittest.cc
@@ -73,8 +73,8 @@
 
       static_cast<StoragePartitionImpl*>(storage_partition)
           ->GetBackgroundSyncContext()
-          ->set_wakeup_delta_for_testing(
-              sync_type, base::TimeDelta::FromMilliseconds(iter->second));
+          ->set_wakeup_delta_for_testing(sync_type,
+                                         base::Milliseconds(iter->second));
     }
   }
 
diff --git a/content/browser/background_sync/background_sync_manager_unittest.cc b/content/browser/background_sync/background_sync_manager_unittest.cc
index a6f291a..4d12d497 100644
--- a/content/browser/background_sync/background_sync_manager_unittest.cc
+++ b/content/browser/background_sync/background_sync_manager_unittest.cc
@@ -819,7 +819,7 @@
   EXPECT_EQ(0, periodic_sync_events_called_);
 
   // Advance clock.
-  test_clock_.Advance(base::TimeDelta::FromMilliseconds(thirteen_hours_ms));
+  test_clock_.Advance(base::Milliseconds(thirteen_hours_ms));
   FireReadyEvents();
   base::RunLoop().RunUntilIdle();
 
@@ -828,7 +828,7 @@
   EXPECT_TRUE(Unregister(sync_options_2_));
 
   // Advance clock. Expect no increase in periodicSync events fired.
-  test_clock_.Advance(base::TimeDelta::FromMilliseconds(thirteen_hours_ms));
+  test_clock_.Advance(base::Milliseconds(thirteen_hours_ms));
   FireReadyEvents();
   base::RunLoop().RunUntilIdle();
   EXPECT_EQ(1, periodic_sync_events_called_);
@@ -1326,7 +1326,7 @@
 
 TEST_F(BackgroundSyncManagerTest, PeriodicSyncFiresWhenExpected) {
   InitPeriodicSyncEventTest();
-  base::TimeDelta thirteen_hours = base::TimeDelta::FromHours(13);
+  base::TimeDelta thirteen_hours = base::Hours(13);
   sync_options_2_.min_interval = thirteen_hours.InMilliseconds();
 
   EXPECT_TRUE(Register(sync_options_2_));
@@ -1352,7 +1352,7 @@
 
 TEST_F(BackgroundSyncManagerTest, TestSupensionAndRevival) {
   InitPeriodicSyncEventTest();
-  auto thirteen_hours = base::TimeDelta::FromHours(13);
+  auto thirteen_hours = base::Hours(13);
   sync_options_2_.min_interval = thirteen_hours.InMilliseconds();
   sync_options_1_.min_interval = thirteen_hours.InMilliseconds();
 
@@ -1389,7 +1389,7 @@
 
 TEST_F(BackgroundSyncManagerTest, UnregisterForOrigin) {
   InitPeriodicSyncEventTest();
-  auto thirteen_hours = base::TimeDelta::FromHours(13);
+  auto thirteen_hours = base::Hours(13);
   sync_options_2_.min_interval = thirteen_hours.InMilliseconds();
   sync_options_1_.min_interval = thirteen_hours.InMilliseconds();
 
@@ -1690,10 +1690,10 @@
       GetController()->background_sync_parameters();
   parameters->disable = true;
   parameters->max_sync_attempts = 100;
-  parameters->initial_retry_delay = base::TimeDelta::FromMinutes(200);
+  parameters->initial_retry_delay = base::Minutes(200);
   parameters->retry_delay_factor = 300;
-  parameters->min_sync_recovery_time = base::TimeDelta::FromMinutes(400);
-  parameters->max_sync_event_duration = base::TimeDelta::FromMinutes(500);
+  parameters->min_sync_recovery_time = base::Minutes(400);
+  parameters->max_sync_event_duration = base::Minutes(500);
 
   // Restart the BackgroundSyncManager so that it updates its parameters.
   SetupBackgroundSyncManager();
@@ -1805,15 +1805,14 @@
 
   // Register a periodic Background Sync but it can't fire due to lack of
   // network, wake up is required.
-  base::TimeDelta thirteen_hours = base::TimeDelta::FromHours(13);
+  base::TimeDelta thirteen_hours = base::Hours(13);
   sync_options_1_.min_interval = thirteen_hours.InMilliseconds();
   Register(sync_options_1_);
   EXPECT_TRUE(IsBrowserWakeupForPeriodicSyncScheduled());
   EXPECT_TRUE(EqualsSoonestPeriodicSyncWakeupDelta(thirteen_hours));
 
   // Advance clock.
-  test_clock_.Advance(
-      base::TimeDelta::FromMilliseconds(thirteen_hours.InMilliseconds()));
+  test_clock_.Advance(base::Milliseconds(thirteen_hours.InMilliseconds()));
 
   // Start the event but it will pause mid-sync due to
   // InitDelayedPeriodicSyncEventTest() above.
@@ -1850,7 +1849,7 @@
   EXPECT_EQ(GetSoonestWakeupDelta(
                 blink::mojom::BackgroundSyncType::PERIODIC,
                 /* last_browser_wakeup_for_periodic_sync= */ base::Time()),
-            base::TimeDelta::FromMilliseconds(sync_options_2_.min_interval));
+            base::Milliseconds(sync_options_2_.min_interval));
 }
 
 TEST_F(BackgroundSyncManagerTest, SoonestWakeupDeltaDecreasesWithTime) {
@@ -1864,17 +1863,17 @@
       blink::mojom::BackgroundSyncType::PERIODIC,
       /* last_browser_wakeup_for_periodic_sync= */ base::Time());
 
-  test_clock_.Advance(base::TimeDelta::FromMilliseconds(thirteen_hours_ms));
+  test_clock_.Advance(base::Milliseconds(thirteen_hours_ms));
   base::TimeDelta soonest_wakeup_delta_2 = GetSoonestWakeupDelta(
       blink::mojom::BackgroundSyncType::PERIODIC,
       /* last_browser_wakeup_for_periodic_sync= */ base::Time());
 
-  test_clock_.Advance(base::TimeDelta::FromMilliseconds(thirteen_hours_ms));
+  test_clock_.Advance(base::Milliseconds(thirteen_hours_ms));
   base::TimeDelta soonest_wakeup_delta_3 = GetSoonestWakeupDelta(
       blink::mojom::BackgroundSyncType::PERIODIC,
       /* last_browser_wakeup_for_periodic_sync= */ base::Time());
 
-  test_clock_.Advance(base::TimeDelta::FromMilliseconds(thirteen_hours_ms));
+  test_clock_.Advance(base::Milliseconds(thirteen_hours_ms));
   base::TimeDelta soonest_wakeup_delta_4 = GetSoonestWakeupDelta(
       blink::mojom::BackgroundSyncType::PERIODIC,
       /* last_browser_wakeup_for_periodic_sync= */ base::Time());
@@ -1885,12 +1884,12 @@
 }
 
 TEST_F(BackgroundSyncManagerTest, SoonestWakeupDeltaAppliesBrowserWakeupLimit) {
-  base::TimeDelta twelve_hours = base::TimeDelta::FromHours(12);
+  base::TimeDelta twelve_hours = base::Hours(12);
   SetPeriodicSyncEventsMinIntervalAndRestartManager(twelve_hours);
 
   // Register a periodic sync.
   // Hour zero.
-  base::TimeDelta thirteen_hours = base::TimeDelta::FromHours(13);
+  base::TimeDelta thirteen_hours = base::Hours(13);
   sync_options_1_.min_interval = thirteen_hours.InMilliseconds();
   EXPECT_TRUE(Register(sync_options_1_));
   EXPECT_TRUE(GetRegistration(sync_options_1_));
@@ -1901,21 +1900,21 @@
 
   // Advance the clock by an hour.
   // Hour 1. Expect soonest_wakeup_delta to now be 12.
-  base::TimeDelta one_hour = base::TimeDelta::FromHours(1);
+  base::TimeDelta one_hour = base::Hours(1);
   test_clock_.Advance(one_hour);
   EXPECT_EQ(GetSoonestWakeupDelta(
                 blink::mojom::BackgroundSyncType::PERIODIC,
                 /* last_browser_wakeup_for_periodic_sync= */ base::Time()),
             twelve_hours);
   // Advance the clock by 12 hours. Hour 13.
-  test_clock_.Advance(base::TimeDelta::FromHours(9));
+  test_clock_.Advance(base::Hours(9));
   base::Time browser_wakeup_time = test_clock_.Now();
-  test_clock_.Advance(base::TimeDelta::FromHours(3));
+  test_clock_.Advance(base::Hours(3));
   EXPECT_EQ(
       GetSoonestWakeupDelta(
           blink::mojom::BackgroundSyncType::PERIODIC,
           /* last_browser_wakeup_for_periodic_sync= */ browser_wakeup_time),
-      base::TimeDelta::FromHours(9));
+      base::Hours(9));
   EXPECT_EQ(GetSoonestWakeupDelta(
                 blink::mojom::BackgroundSyncType::PERIODIC,
                 /* last_browser_wakeup_for_periodic_sync= */ base::Time()),
@@ -1924,13 +1923,13 @@
 }
 
 TEST_F(BackgroundSyncManagerTest, StaggeredPeriodicSyncRegistrations) {
-  base::TimeDelta twelve_hours = base::TimeDelta::FromHours(12);
+  base::TimeDelta twelve_hours = base::Hours(12);
   SetPeriodicSyncEventsMinIntervalAndRestartManager(twelve_hours);
   InitPeriodicSyncEventTest();
   SetNetwork(network::mojom::ConnectionType::CONNECTION_NONE);
 
   // Register a periodic sync.
-  base::TimeDelta thirteen_hours = base::TimeDelta::FromHours(13);
+  base::TimeDelta thirteen_hours = base::Hours(13);
   sync_options_1_.min_interval = thirteen_hours.InMilliseconds();
   EXPECT_TRUE(Register(sync_options_1_));
   EXPECT_TRUE(GetRegistration(sync_options_1_));
@@ -1941,7 +1940,7 @@
             thirteen_hours);
 
   // Advance the clock by an hour. Add another registration.
-  base::TimeDelta one_hour = base::TimeDelta::FromHours(1);
+  base::TimeDelta one_hour = base::Hours(1);
   test_clock_.Advance(one_hour);
   sync_options_2_.min_interval = thirteen_hours.InMilliseconds();
   EXPECT_EQ(GetSoonestWakeupDelta(
@@ -1991,7 +1990,7 @@
   SetMaxSyncAttemptsAndRestartManager(2);
   InitFailedPeriodicSyncEventTest();
 
-  base::TimeDelta thirteen_hours = base::TimeDelta::FromHours(13);
+  base::TimeDelta thirteen_hours = base::Hours(13);
   sync_options_2_.min_interval = thirteen_hours.InMilliseconds();
 
   EXPECT_TRUE(Register(sync_options_2_));
@@ -2008,9 +2007,8 @@
 
   // Since this one failed, a wakeup/delayed task will be scheduled for retries
   // after five minutes.
-  EXPECT_EQ(base::TimeDelta::FromMinutes(5),
-            delayed_periodic_sync_task_delta());
-  test_clock_.Advance(base::TimeDelta::FromMinutes(5));
+  EXPECT_EQ(base::Minutes(5), delayed_periodic_sync_task_delta());
+  test_clock_.Advance(base::Minutes(5));
   FireReadyEvents();
   base::RunLoop().RunUntilIdle();
 
@@ -2019,14 +2017,14 @@
 
   // Second attempt would also fail, resetting to next thirteen_hours.
   // Expect nothing after just another hour.
-  test_clock_.Advance(base::TimeDelta::FromHours(1));
+  test_clock_.Advance(base::Hours(1));
   FireReadyEvents();
   base::RunLoop().RunUntilIdle();
 
   EXPECT_EQ(2, periodic_sync_events_called_);
 
   // Expect the next event after another twelve hours.
-  test_clock_.Advance(base::TimeDelta::FromHours(12));
+  test_clock_.Advance(base::Hours(12));
   FireReadyEvents();
   base::RunLoop().RunUntilIdle();
 
@@ -2044,9 +2042,8 @@
   EXPECT_TRUE(IsDelayedTaskScheduledOneShotSync());
 
   // Make sure the delay is reasonable.
-  EXPECT_LT(base::TimeDelta::FromMinutes(1),
-            delayed_one_shot_sync_task_delta());
-  EXPECT_GT(base::TimeDelta::FromHours(1), delayed_one_shot_sync_task_delta());
+  EXPECT_LT(base::Minutes(1), delayed_one_shot_sync_task_delta());
+  EXPECT_GT(base::Hours(1), delayed_one_shot_sync_task_delta());
 
   // Fire again and this time it should permanently fail.
   test_clock_.Advance(delayed_one_shot_sync_task_delta());
@@ -2092,16 +2089,14 @@
 
   // Fire again one second before it's ready to retry. Expect it to reschedule
   // the delay timer for one more second.
-  test_clock_.Advance(delayed_one_shot_sync_task_delta() -
-                      base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(delayed_one_shot_sync_task_delta() - base::Seconds(1));
   FireReadyEvents();
   base::RunLoop().RunUntilIdle();
   EXPECT_TRUE(GetRegistration(sync_options_1_));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(1),
-            delayed_one_shot_sync_task_delta());
+  EXPECT_EQ(base::Seconds(1), delayed_one_shot_sync_task_delta());
 
   // Fire one second later and it should fail permanently.
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
   RunOneShotSyncDelayedTask();
   base::RunLoop().RunUntilIdle();
   EXPECT_FALSE(GetRegistration(sync_options_1_));
@@ -2137,12 +2132,11 @@
   base::TimeDelta delta = delayed_one_shot_sync_task_delta();
   CreateBackgroundSyncManager();
   InitFailedSyncEventTest();
-  test_clock_.Advance(delta - base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(delta - base::Seconds(1));
   InitBackgroundSyncManager();
   base::RunLoop().RunUntilIdle();
   EXPECT_TRUE(GetRegistration(sync_options_1_));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(1),
-            delayed_one_shot_sync_task_delta());
+  EXPECT_EQ(base::Seconds(1), delayed_one_shot_sync_task_delta());
 }
 
 TEST_F(BackgroundSyncManagerTest, RetryIfClosedMidSync) {
diff --git a/content/browser/background_sync/background_sync_metrics.cc b/content/browser/background_sync/background_sync_metrics.cc
index d6f9096..8e9ce41 100644
--- a/content/browser/background_sync/background_sync_metrics.cc
+++ b/content/browser/background_sync/background_sync_metrics.cc
@@ -90,8 +90,8 @@
   // 6 minutes, to be safe.
   base::UmaHistogramCustomTimes(
       GetBackgroundSyncPrefix(sync_type) + "BackgroundSync.Event.Time", time,
-      /* min= */ base::TimeDelta::FromMilliseconds(10),
-      /* max= */ base::TimeDelta::FromMinutes(6),
+      /* min= */ base::Milliseconds(10),
+      /* max= */ base::Minutes(6),
       /* buckets= */ 50);
   base::UmaHistogramCounts100(
       GetBackgroundSyncPrefix(sync_type) + "BackgroundSync.Event.BatchSize",
diff --git a/content/browser/background_sync/background_sync_metrics_unittest.cc b/content/browser/background_sync/background_sync_metrics_unittest.cc
index 3f99d3b9..721b2b8 100644
--- a/content/browser/background_sync/background_sync_metrics_unittest.cc
+++ b/content/browser/background_sync/background_sync_metrics_unittest.cc
@@ -68,20 +68,18 @@
 
 TEST_F(BackgroundSyncMetricsTest, RecordBatchSyncEventComplete) {
   BackgroundSyncMetrics::RecordBatchSyncEventComplete(
-      BackgroundSyncType::ONE_SHOT, base::TimeDelta::FromSeconds(1),
+      BackgroundSyncType::ONE_SHOT, base::Seconds(1),
       /* from_wakeup_task= */ false,
       /* number_of_batched_sync_events= */ 1);
-  histogram_tester_.ExpectUniqueSample(
-      "BackgroundSync.Event.Time",
-      base::TimeDelta::FromSeconds(1).InMilliseconds(), 1);
+  histogram_tester_.ExpectUniqueSample("BackgroundSync.Event.Time",
+                                       base::Seconds(1).InMilliseconds(), 1);
 
   BackgroundSyncMetrics::RecordBatchSyncEventComplete(
-      BackgroundSyncType::PERIODIC, base::TimeDelta::FromMinutes(1),
+      BackgroundSyncType::PERIODIC, base::Minutes(1),
       /* from_wakeup_task= */ false,
       /* number_of_batched_sync_events= */ 10);
-  histogram_tester_.ExpectUniqueSample(
-      "PeriodicBackgroundSync.Event.Time",
-      base::TimeDelta::FromMinutes(1).InMilliseconds(), 1);
+  histogram_tester_.ExpectUniqueSample("PeriodicBackgroundSync.Event.Time",
+                                       base::Minutes(1).InMilliseconds(), 1);
 }
 
 TEST_F(BackgroundSyncMetricsTest, CountRegisterSuccess) {
diff --git a/content/browser/background_sync/background_sync_scheduler_unittest.cc b/content/browser/background_sync/background_sync_scheduler_unittest.cc
index c1b7b1f5..fd4d0b06 100644
--- a/content/browser/background_sync/background_sync_scheduler_unittest.cc
+++ b/content/browser/background_sync/background_sync_scheduler_unittest.cc
@@ -111,9 +111,9 @@
 
 TEST_F(BackgroundSyncSchedulerTest, ScheduleInvokesCallback) {
   base::RunLoop run_loop;
-  ScheduleDelayedProcessing(
-      GURL(kUrl_1), blink::mojom::BackgroundSyncType::ONE_SHOT,
-      base::TimeDelta::FromMilliseconds(1), run_loop.QuitClosure());
+  ScheduleDelayedProcessing(GURL(kUrl_1),
+                            blink::mojom::BackgroundSyncType::ONE_SHOT,
+                            base::Milliseconds(1), run_loop.QuitClosure());
   run_loop.Run();
 }
 
@@ -132,7 +132,7 @@
   bool was_called = false;
   ScheduleDelayedProcessing(
       GURL(kUrl_1), blink::mojom::BackgroundSyncType::ONE_SHOT,
-      base::TimeDelta::FromMinutes(1),
+      base::Minutes(1),
       base::BindOnce([](bool* was_called) { *was_called = true; },
                      &was_called));
   base::RunLoop().RunUntilIdle();
@@ -148,16 +148,16 @@
   bool was_called = false;
   ScheduleDelayedProcessing(
       GURL(kUrl_1), blink::mojom::BackgroundSyncType::ONE_SHOT,
-      base::TimeDelta::FromSeconds(1),
+      base::Seconds(1),
       base::BindOnce([](bool* was_called) { *was_called = true; },
                      &was_called));
   base::RunLoop().RunUntilIdle();
   ASSERT_FALSE(was_called);
 
   base::RunLoop run_loop;
-  ScheduleDelayedProcessing(
-      GURL(kUrl_1), blink::mojom::BackgroundSyncType::ONE_SHOT,
-      base::TimeDelta::FromMilliseconds(1), run_loop.QuitClosure());
+  ScheduleDelayedProcessing(GURL(kUrl_1),
+                            blink::mojom::BackgroundSyncType::ONE_SHOT,
+                            base::Milliseconds(1), run_loop.QuitClosure());
   run_loop.Run();
 
   EXPECT_FALSE(was_called);
@@ -165,13 +165,13 @@
 
 TEST_F(BackgroundSyncSchedulerTest, MultipleStoragePartitions) {
   base::RunLoop run_loop_1, run_loop_2;
-  ScheduleDelayedProcessing(
-      GURL(kUrl_1), blink::mojom::BackgroundSyncType::ONE_SHOT,
-      base::TimeDelta::FromSeconds(1), run_loop_1.QuitClosure());
+  ScheduleDelayedProcessing(GURL(kUrl_1),
+                            blink::mojom::BackgroundSyncType::ONE_SHOT,
+                            base::Seconds(1), run_loop_1.QuitClosure());
 
-  ScheduleDelayedProcessing(
-      GURL(kUrl_2), blink::mojom::BackgroundSyncType::ONE_SHOT,
-      base::TimeDelta::FromMilliseconds(1), run_loop_2.QuitClosure());
+  ScheduleDelayedProcessing(GURL(kUrl_2),
+                            blink::mojom::BackgroundSyncType::ONE_SHOT,
+                            base::Milliseconds(1), run_loop_2.QuitClosure());
 
   run_loop_1.Run();
   run_loop_2.Run();
@@ -179,12 +179,12 @@
 
 TEST_F(BackgroundSyncSchedulerTest, ScheduleBothTypesOfSync) {
   base::RunLoop run_loop_1, run_loop_2;
-  ScheduleDelayedProcessing(
-      GURL(kUrl_1), blink::mojom::BackgroundSyncType::ONE_SHOT,
-      base::TimeDelta::FromMilliseconds(1), run_loop_1.QuitClosure());
-  ScheduleDelayedProcessing(
-      GURL(kUrl_1), blink::mojom::BackgroundSyncType::PERIODIC,
-      base::TimeDelta::FromMilliseconds(1), run_loop_2.QuitClosure());
+  ScheduleDelayedProcessing(GURL(kUrl_1),
+                            blink::mojom::BackgroundSyncType::ONE_SHOT,
+                            base::Milliseconds(1), run_loop_1.QuitClosure());
+  ScheduleDelayedProcessing(GURL(kUrl_1),
+                            blink::mojom::BackgroundSyncType::PERIODIC,
+                            base::Milliseconds(1), run_loop_2.QuitClosure());
   run_loop_1.Run();
   run_loop_2.Run();
 }
@@ -193,60 +193,60 @@
 TEST_F(BackgroundSyncSchedulerTest, BrowserWakeupScheduled) {
   ScheduleDelayedProcessing(GURL(kUrl_1),
                             blink::mojom::BackgroundSyncType::ONE_SHOT,
-                            base::TimeDelta::FromSeconds(1), base::DoNothing());
+                            base::Seconds(1), base::DoNothing());
 
   EXPECT_LE(GetBrowserWakeupDelay(blink::mojom::BackgroundSyncType::ONE_SHOT),
-            base::TimeDelta::FromSeconds(1));
+            base::Seconds(1));
 
-  ScheduleDelayedProcessing(
-      GURL(kUrl_2), blink::mojom::BackgroundSyncType::ONE_SHOT,
-      base::TimeDelta::FromMilliseconds(1), base::DoNothing());
+  ScheduleDelayedProcessing(GURL(kUrl_2),
+                            blink::mojom::BackgroundSyncType::ONE_SHOT,
+                            base::Milliseconds(1), base::DoNothing());
   EXPECT_LE(GetBrowserWakeupDelay(blink::mojom::BackgroundSyncType::ONE_SHOT),
-            base::TimeDelta::FromMilliseconds(1));
+            base::Milliseconds(1));
 }
 
 TEST_F(BackgroundSyncSchedulerTest,
        BrowserWakeupScheduleSecondAfterFirstFinishes) {
   base::RunLoop run_loop_1;
-  ScheduleDelayedProcessing(
-      GURL(kUrl_1), blink::mojom::BackgroundSyncType::ONE_SHOT,
-      base::TimeDelta::FromMilliseconds(1), run_loop_1.QuitClosure());
+  ScheduleDelayedProcessing(GURL(kUrl_1),
+                            blink::mojom::BackgroundSyncType::ONE_SHOT,
+                            base::Milliseconds(1), run_loop_1.QuitClosure());
   EXPECT_LE(GetBrowserWakeupDelay(blink::mojom::BackgroundSyncType::ONE_SHOT),
-            base::TimeDelta::FromMilliseconds(1));
+            base::Milliseconds(1));
   run_loop_1.Run();
 
   ScheduleDelayedProcessing(GURL(kUrl_2),
                             blink::mojom::BackgroundSyncType::ONE_SHOT,
-                            base::TimeDelta::FromMinutes(1), base::DoNothing());
+                            base::Minutes(1), base::DoNothing());
   EXPECT_GT(GetBrowserWakeupDelay(blink::mojom::BackgroundSyncType::ONE_SHOT),
-            base::TimeDelta::FromMilliseconds(1));
+            base::Milliseconds(1));
   EXPECT_LE(GetBrowserWakeupDelay(blink::mojom::BackgroundSyncType::ONE_SHOT),
-            base::TimeDelta::FromMinutes(1));
+            base::Minutes(1));
 }
 
 TEST_F(BackgroundSyncSchedulerTest, BrowserWakeupScheduleOneOfEachType) {
   ScheduleDelayedProcessing(GURL(kUrl_1),
                             blink::mojom::BackgroundSyncType::PERIODIC,
-                            base::TimeDelta::FromSeconds(1), base::DoNothing());
+                            base::Seconds(1), base::DoNothing());
   base::RunLoop().RunUntilIdle();
   EXPECT_LE(GetBrowserWakeupDelay(blink::mojom::BackgroundSyncType::PERIODIC),
-            base::TimeDelta::FromSeconds(1));
+            base::Seconds(1));
 
   ScheduleDelayedProcessing(GURL(kUrl_2),
                             blink::mojom::BackgroundSyncType::ONE_SHOT,
-                            base::TimeDelta::FromMinutes(1), base::DoNothing());
+                            base::Minutes(1), base::DoNothing());
   base::RunLoop().RunUntilIdle();
   EXPECT_LE(GetBrowserWakeupDelay(blink::mojom::BackgroundSyncType::ONE_SHOT),
-            base::TimeDelta::FromMinutes(1));
+            base::Minutes(1));
 }
 
 TEST_F(BackgroundSyncSchedulerTest, BrowserWakeupScheduleThenCancel) {
   ScheduleDelayedProcessing(GURL(kUrl_1),
                             blink::mojom::BackgroundSyncType::PERIODIC,
-                            base::TimeDelta::FromMinutes(1), base::DoNothing());
+                            base::Minutes(1), base::DoNothing());
   base::RunLoop().RunUntilIdle();
   EXPECT_LE(GetBrowserWakeupDelay(blink::mojom::BackgroundSyncType::PERIODIC),
-            base::TimeDelta::FromMinutes(1));
+            base::Minutes(1));
 
   CancelDelayedProcessing(GURL(kUrl_1),
                           blink::mojom::BackgroundSyncType::PERIODIC);
@@ -258,10 +258,10 @@
 TEST_F(BackgroundSyncSchedulerTest, CancelingOneTypeDoesNotAffectAnother) {
   ScheduleDelayedProcessing(GURL(kUrl_1),
                             blink::mojom::BackgroundSyncType::PERIODIC,
-                            base::TimeDelta::FromMinutes(1), base::DoNothing());
+                            base::Minutes(1), base::DoNothing());
   ScheduleDelayedProcessing(GURL(kUrl_2),
                             blink::mojom::BackgroundSyncType::ONE_SHOT,
-                            base::TimeDelta::FromSeconds(1), base::DoNothing());
+                            base::Seconds(1), base::DoNothing());
 
   CancelDelayedProcessing(GURL(kUrl_1),
                           blink::mojom::BackgroundSyncType::PERIODIC);
@@ -270,20 +270,20 @@
   EXPECT_EQ(GetBrowserWakeupDelay(blink::mojom::BackgroundSyncType::PERIODIC),
             base::TimeDelta::Max());
   EXPECT_LE(GetBrowserWakeupDelay(blink::mojom::BackgroundSyncType::ONE_SHOT),
-            base::TimeDelta::FromSeconds(1));
+            base::Seconds(1));
 }
 
 TEST_F(BackgroundSyncSchedulerTest,
        CancelingProcessingForOneStorageParitionUpdatesBrowserWakeup) {
   ScheduleDelayedProcessing(GURL(kUrl_1),
                             blink::mojom::BackgroundSyncType::ONE_SHOT,
-                            base::TimeDelta::FromMinutes(1), base::DoNothing());
+                            base::Minutes(1), base::DoNothing());
   ScheduleDelayedProcessing(GURL(kUrl_2),
                             blink::mojom::BackgroundSyncType::ONE_SHOT,
-                            base::TimeDelta::FromSeconds(1), base::DoNothing());
+                            base::Seconds(1), base::DoNothing());
   base::RunLoop().RunUntilIdle();
   EXPECT_LE(GetBrowserWakeupDelay(blink::mojom::BackgroundSyncType::ONE_SHOT),
-            base::TimeDelta::FromSeconds(1));
+            base::Seconds(1));
   auto wakeup_time1 = GetBrowserWakeupTime();
 
   CancelDelayedProcessing(GURL(kUrl_2),
@@ -291,9 +291,9 @@
   base::RunLoop().RunUntilIdle();
 
   EXPECT_LE(GetBrowserWakeupDelay(blink::mojom::BackgroundSyncType::ONE_SHOT),
-            base::TimeDelta::FromMinutes(1));
+            base::Minutes(1));
   EXPECT_GT(GetBrowserWakeupDelay(blink::mojom::BackgroundSyncType::ONE_SHOT),
-            base::TimeDelta::FromSeconds(1));
+            base::Seconds(1));
   EXPECT_LT(wakeup_time1, GetBrowserWakeupTime());
 }
 
diff --git a/content/browser/background_sync/one_shot_background_sync_browsertest.cc b/content/browser/background_sync/one_shot_background_sync_browsertest.cc
index eb8c9b68..fd14aba 100644
--- a/content/browser/background_sync/one_shot_background_sync_browsertest.cc
+++ b/content/browser/background_sync/one_shot_background_sync_browsertest.cc
@@ -85,8 +85,7 @@
   while (HasTag(tag)) {
     base::RunLoop run_loop;
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-        FROM_HERE, run_loop.QuitClosure(),
-        base::TimeDelta::FromMilliseconds(pauses_ms));
+        FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(pauses_ms));
     run_loop.Run();
   }
 }
diff --git a/content/browser/background_sync/periodic_background_sync_browsertest.cc b/content/browser/background_sync/periodic_background_sync_browsertest.cc
index e0ddd2c..8ffdbc0 100644
--- a/content/browser/background_sync/periodic_background_sync_browsertest.cc
+++ b/content/browser/background_sync/periodic_background_sync_browsertest.cc
@@ -13,8 +13,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kMinGapBetweenPeriodicSyncEvents =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kMinGapBetweenPeriodicSyncEvents = base::Seconds(5);
 
 }  // namespace
 
diff --git a/content/browser/blob_storage/blob_url_unittest.cc b/content/browser/blob_storage/blob_url_unittest.cc
index 7277210..a058081 100644
--- a/content/browser/blob_storage/blob_url_unittest.cc
+++ b/content/browser/blob_storage/blob_url_unittest.cc
@@ -372,8 +372,7 @@
 }
 
 TEST_F(BlobURLTest, TestGetChangedFileRequest) {
-  base::Time old_time =
-      temp_file_modification_time1_ - base::TimeDelta::FromSeconds(10);
+  base::Time old_time = temp_file_modification_time1_ - base::Seconds(10);
   blob_data_->AppendFile(temp_file1_, 0, 3, old_time);
   TestErrorRequest(net::ERR_UPLOAD_FILE_CHANGED);
 }
@@ -433,8 +432,8 @@
 
 TEST_F(BlobURLTest, TestGetChangedFileSystemFileRequest) {
   SetUpFileSystem();
-  base::Time old_time = temp_file_system_file_modification_time1_ -
-                        base::TimeDelta::FromSeconds(10);
+  base::Time old_time =
+      temp_file_system_file_modification_time1_ - base::Seconds(10);
   blob_data_->AppendFileSystemFile(
       file_system_context_->CrackURLInFirstPartyContext(
           temp_file_system_file1_),
diff --git a/content/browser/bluetooth/bluetooth_device_chooser_controller.cc b/content/browser/bluetooth/bluetooth_device_chooser_controller.cc
index 252bb00..255b7a2b7 100644
--- a/content/browser/bluetooth/bluetooth_device_chooser_controller.cc
+++ b/content/browser/bluetooth/bluetooth_device_chooser_controller.cc
@@ -230,7 +230,7 @@
       render_frame_host_(render_frame_host),
       discovery_session_timer_(
           FROM_HERE,
-          base::TimeDelta::FromSeconds(scan_duration_),
+          base::Seconds(scan_duration_),
           base::BindRepeating(
               &BluetoothDeviceChooserController::StopDeviceDiscovery,
               // base::Timer guarantees it won't call back after its
diff --git a/content/browser/browser_process_io_thread.cc b/content/browser/browser_process_io_thread.cc
index 248a89c9..b7d5c84 100644
--- a/content/browser/browser_process_io_thread.cc
+++ b/content/browser/browser_process_io_thread.cc
@@ -163,8 +163,7 @@
       base::ScopedAllowBaseSyncPrimitives scoped_allow_base_sync_primitives;
       const base::TimeTicks start_time = base::TimeTicks::Now();
       process.WaitForExitWithTimeout(
-          base::TimeDelta::FromSeconds(kMaxSecondsToWaitForNetworkProcess),
-          nullptr);
+          base::Seconds(kMaxSecondsToWaitForNetworkProcess), nullptr);
       // Record time spent for the method call.
       base::TimeDelta network_wait_time = base::TimeTicks::Now() - start_time;
       UMA_HISTOGRAM_TIMES("NetworkService.ShutdownTime", network_wait_time);
diff --git a/content/browser/browsing_data/browsing_data_remover_impl.cc b/content/browser/browsing_data/browsing_data_remover_impl.cc
index 612e1c6..9a090ff 100644
--- a/content/browser/browsing_data/browsing_data_remover_impl.cc
+++ b/content/browser/browsing_data/browsing_data_remover_impl.cc
@@ -49,7 +49,7 @@
 
 // Timeout after which the History.ClearBrowsingData.Duration.SlowTasks180s
 // histogram is recorded.
-const base::TimeDelta kSlowTaskTimeout = base::TimeDelta::FromSeconds(180);
+const base::TimeDelta kSlowTaskTimeout = base::Seconds(180);
 
 base::OnceClosure RunsOrPostOnCurrentTaskRunner(base::OnceClosure closure) {
   return base::BindOnce(
diff --git a/content/browser/browsing_data/browsing_data_remover_impl_unittest.cc b/content/browser/browsing_data/browsing_data_remover_impl_unittest.cc
index a9538b2..06e879e 100644
--- a/content/browser/browsing_data/browsing_data_remover_impl_unittest.cc
+++ b/content/browser/browsing_data/browsing_data_remover_impl_unittest.cc
@@ -282,7 +282,7 @@
 }
 
 base::Time AnHourAgo() {
-  return base::Time::Now() - base::TimeDelta::FromHours(1);
+  return base::Time::Now() - base::Hours(1);
 }
 
 bool FilterMatchesCookie(const CookieDeletionFilterPtr& filter,
@@ -662,7 +662,7 @@
   CreateMockPolicy();
 
   BlockUntilBrowsingDataRemoved(
-      base::Time::Now() - base::TimeDelta::FromDays(7), base::Time::Max(),
+      base::Time::Now() - base::Days(7), base::Time::Max(),
       BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE, false);
 
   EXPECT_EQ(BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE, GetRemovalMask());
@@ -985,7 +985,7 @@
 
 TEST_F(BrowsingDataRemoverImplTest, RemoveQuotaManagedDataForLastWeek) {
   BlockUntilBrowsingDataRemoved(
-      base::Time::Now() - base::TimeDelta::FromDays(7), base::Time::Max(),
+      base::Time::Now() - base::Days(7), base::Time::Max(),
       BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS |
           BrowsingDataRemover::DATA_TYPE_WEB_SQL |
           BrowsingDataRemover::DATA_TYPE_APP_CACHE |
@@ -1673,9 +1673,9 @@
   // Since Trust Tokens data is not associated with particular timestamps, we
   // should observe the same clearing behavior with a non-default time range as
   // with the default time range.
-  BlockUntilOriginDataRemoved(
-      base::Time(), base::Time() + base::TimeDelta::FromSeconds(1),
-      BrowsingDataRemover::DATA_TYPE_TRUST_TOKENS, std::move(builder));
+  BlockUntilOriginDataRemoved(base::Time(), base::Time() + base::Seconds(1),
+                              BrowsingDataRemover::DATA_TYPE_TRUST_TOKENS,
+                              std::move(builder));
 }
 
 TEST_F(BrowsingDataRemoverImplTest, DeferCookieDeletion) {
diff --git a/content/browser/browsing_data/clear_site_data_handler.cc b/content/browser/browsing_data/clear_site_data_handler.cc
index 337781d..9f3b6b0b 100644
--- a/content/browser/browsing_data/clear_site_data_handler.cc
+++ b/content/browser/browsing_data/clear_site_data_handler.cc
@@ -312,8 +312,7 @@
 
   UMA_HISTOGRAM_CUSTOM_TIMES("Navigation.ClearSiteData.Duration",
                              base::TimeTicks::Now() - clearing_started,
-                             base::TimeDelta::FromMilliseconds(1),
-                             base::TimeDelta::FromSeconds(1), 50);
+                             base::Milliseconds(1), base::Seconds(1), 50);
 
   // TODO(crbug.com/876931): Delay output until next frame for navigations.
   delegate->OutputMessages(web_contents_getter);
diff --git a/content/browser/cache_storage/cache_storage_cache_unittest.cc b/content/browser/cache_storage/cache_storage_cache_unittest.cc
index 48dc588e..4aafe18 100644
--- a/content/browser/cache_storage/cache_storage_cache_unittest.cc
+++ b/content/browser/cache_storage/cache_storage_cache_unittest.cc
@@ -1975,8 +1975,7 @@
       base::MakeRefCounted<net::IOBuffer>(kSize);
   memset(buffer->data(), 0, kSize);
   EXPECT_FALSE(WriteSideData(no_body_request_->url,
-                             response_time + base::TimeDelta::FromSeconds(1),
-                             buffer, kSize));
+                             response_time + base::Seconds(1), buffer, kSize));
   EXPECT_EQ(CacheStorageError::kErrorNotFound, callback_error_);
   ASSERT_TRUE(Delete(no_body_request_));
 }
diff --git a/content/browser/cache_storage/cache_storage_manager_unittest.cc b/content/browser/cache_storage/cache_storage_manager_unittest.cc
index 3d633e5..abeb06ab 100644
--- a/content/browser/cache_storage/cache_storage_manager_unittest.cc
+++ b/content/browser/cache_storage/cache_storage_manager_unittest.cc
@@ -1398,7 +1398,7 @@
   // in the following Size() call.
   base::FilePath cache_index_path =
       storage_path.AppendASCII(LegacyCacheStorage::kIndexFileName);
-  base::Time t = base::Time::Now() + base::TimeDelta::FromHours(-1);
+  base::Time t = base::Time::Now() + base::Hours(-1);
   EXPECT_TRUE(base::TouchFile(cache_index_path, t, t));
   EXPECT_FALSE(IsIndexFileCurrent(storage_path));
 
@@ -1762,7 +1762,7 @@
   // older than the other directories in the store to trigger size
   // recalculation.
   EXPECT_TRUE(base::CopyFile(backup_index_path, index_path));
-  base::Time t = base::Time::Now() - base::TimeDelta::FromHours(1);
+  base::Time t = base::Time::Now() - base::Hours(1);
   EXPECT_TRUE(base::TouchFile(index_path, t, t));
   EXPECT_FALSE(IsIndexFileCurrent(storage_dir));
 
@@ -1821,7 +1821,7 @@
 
   // Make the access/mod times of index file older than the other files in the
   // cache to trigger size recalculation.
-  base::Time t = base::Time::Now() - base::TimeDelta::FromHours(1);
+  base::Time t = base::Time::Now() - base::Hours(1);
   EXPECT_TRUE(base::TouchFile(index_path, t, t));
   EXPECT_FALSE(IsIndexFileCurrent(storage_dir));
 
diff --git a/content/browser/cache_storage/legacy/legacy_cache_storage.cc b/content/browser/cache_storage/legacy/legacy_cache_storage.cc
index 3452354..6aa7a9d 100644
--- a/content/browser/cache_storage/legacy/legacy_cache_storage.cc
+++ b/content/browser/cache_storage/legacy/legacy_cache_storage.cc
@@ -864,8 +864,7 @@
                                          weak_factory_.GetWeakPtr(),
                                          base::DoNothing()));
   base::SequencedTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, index_write_task_.callback(),
-      base::TimeDelta::FromMilliseconds(delay_ms));
+      FROM_HERE, index_write_task_.callback(), base::Milliseconds(delay_ms));
 }
 
 void LegacyCacheStorage::WriteIndex(base::OnceCallback<void(bool)> callback) {
diff --git a/content/browser/child_process_launcher.cc b/content/browser/child_process_launcher.cc
index 2606233..54b53b1 100644
--- a/content/browser/child_process_launcher.cc
+++ b/content/browser/child_process_launcher.cc
@@ -208,28 +208,25 @@
   const base::TimeDelta process_total_cpu_use =
       process_metrics->GetCumulativeCPUUsage();
 
-  constexpr base::TimeDelta kShortLifetime = base::TimeDelta::FromMinutes(1);
+  constexpr base::TimeDelta kShortLifetime = base::Minutes(1);
   if (process_lifetime <= kShortLifetime) {
     // Bucketing chosen by looking at AverageCPU2.RendererProcess in UMA. Only
     // a renderer at the 99.9th percentile of this metric would overflow.
     UMA_HISTOGRAM_CUSTOM_TIMES("Renderer.TotalCPUUse2.ShortLived",
-                               process_total_cpu_use,
-                               base::TimeDelta::FromMilliseconds(1),
-                               base::TimeDelta::FromSeconds(30), 100);
+                               process_total_cpu_use, base::Milliseconds(1),
+                               base::Seconds(30), 100);
   } else {
     // Bucketing chosen by looking at AverageCPU2.RendererProcess and
     // Renderer.ProcessLifetime values in UMA. Only a renderer at the 99th
     // percentile of both of those values combined will overflow.
     UMA_HISTOGRAM_CUSTOM_TIMES("Renderer.TotalCPUUse2.LongLived",
-                               process_total_cpu_use,
-                               base::TimeDelta::FromMilliseconds(1),
-                               base::TimeDelta::FromHours(3), 100);
+                               process_total_cpu_use, base::Milliseconds(1),
+                               base::Hours(3), 100);
   }
 
   // Global measurement. Bucketing identical to LongLivedRenders.
   UMA_HISTOGRAM_CUSTOM_TIMES("Renderer.TotalCPUUse2", process_total_cpu_use,
-                             base::TimeDelta::FromMilliseconds(1),
-                             base::TimeDelta::FromHours(3), 100);
+                             base::Milliseconds(1), base::Hours(3), 100);
 }
 
 // static
diff --git a/content/browser/child_process_security_policy_impl.cc b/content/browser/child_process_security_policy_impl.cc
index bdf34ac..4801a19 100644
--- a/content/browser/child_process_security_policy_impl.cc
+++ b/content/browser/child_process_security_policy_impl.cc
@@ -851,7 +851,7 @@
 ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl()
     : browsing_instance_cleanup_delay_(
           RenderProcessHostImpl::kKeepAliveHandleFactoryTimeout +
-          base::TimeDelta::FromSeconds(2)) {
+          base::Seconds(2)) {
   // We know about these schemes and believe them to be safe.
   RegisterWebSafeScheme(url::kHttpScheme);
   RegisterWebSafeScheme(url::kHttpsScheme);
diff --git a/content/browser/child_process_security_policy_impl.h b/content/browser/child_process_security_policy_impl.h
index 0f85584..f661206 100644
--- a/content/browser/child_process_security_policy_impl.h
+++ b/content/browser/child_process_security_policy_impl.h
@@ -664,8 +664,7 @@
   // Allows tests to modify the delay in cleaning up BrowsingInstanceIds. If the
   // delay is set to zero, cleanup happens immediately.
   void SetBrowsingInstanceCleanupDelayForTesting(int64_t delay_in_seconds) {
-    browsing_instance_cleanup_delay_ =
-        base::TimeDelta::FromSeconds(delay_in_seconds);
+    browsing_instance_cleanup_delay_ = base::Seconds(delay_in_seconds);
   }
 
  private:
diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/client_hints/client_hints.cc
index fe95e6a6..628bbb2 100644
--- a/content/browser/client_hints/client_hints.cc
+++ b/content/browser/client_hints/client_hints.cc
@@ -91,9 +91,8 @@
 
   // Limit the maximum reported value and the granularity to reduce
   // fingerprinting.
-  constexpr base::TimeDelta kMaxRtt = base::TimeDelta::FromSeconds(3);
-  constexpr base::TimeDelta kGranularity =
-      base::TimeDelta::FromMilliseconds(50);
+  constexpr base::TimeDelta kMaxRtt = base::Seconds(3);
+  constexpr base::TimeDelta kGranularity = base::Milliseconds(50);
 
   const base::TimeDelta modified_rtt =
       std::min(rtt.value() * GetRandomMultiplier(host), kMaxRtt);
@@ -819,9 +818,8 @@
   // base::TimeDelta::Max cannot be used. As this will be removed once the
   // FeaturePolicyForClientHints feature is shipped, a reasonably large value
   // was chosen instead.
-  base::TimeDelta duration = use_persist_duration
-                                 ? *persist_duration
-                                 : base::TimeDelta::FromDays(1000000);
+  base::TimeDelta duration =
+      use_persist_duration ? *persist_duration : base::Days(1000000);
 
   delegate->PersistClientHints(url::Origin::Create(url), hints,
                                std::move(duration));
diff --git a/content/browser/client_hints/client_hints_unittest.cc b/content/browser/client_hints/client_hints_unittest.cc
index c11eb08..6978309 100644
--- a/content/browser/client_hints/client_hints_unittest.cc
+++ b/content/browser/client_hints/client_hints_unittest.cc
@@ -11,21 +11,12 @@
 namespace content {
 
 TEST(ClientHintsTest, RttRoundedOff) {
-  EXPECT_EQ(
-      0u, RoundRttForTesting("", base::TimeDelta::FromMilliseconds(1023)) % 50);
-  EXPECT_EQ(
-      0u, RoundRttForTesting("", base::TimeDelta::FromMilliseconds(6787)) % 50);
-  EXPECT_EQ(0u,
-            RoundRttForTesting("", base::TimeDelta::FromMilliseconds(12)) % 50);
-  EXPECT_EQ(0u, RoundRttForTesting("foo.com",
-                                   base::TimeDelta::FromMilliseconds(1023)) %
-                    50);
-  EXPECT_EQ(0u, RoundRttForTesting("foo.com",
-                                   base::TimeDelta::FromMilliseconds(1193)) %
-                    50);
-  EXPECT_EQ(
-      0u, RoundRttForTesting("foo.com", base::TimeDelta::FromMilliseconds(12)) %
-              50);
+  EXPECT_EQ(0u, RoundRttForTesting("", base::Milliseconds(1023)) % 50);
+  EXPECT_EQ(0u, RoundRttForTesting("", base::Milliseconds(6787)) % 50);
+  EXPECT_EQ(0u, RoundRttForTesting("", base::Milliseconds(12)) % 50);
+  EXPECT_EQ(0u, RoundRttForTesting("foo.com", base::Milliseconds(1023)) % 50);
+  EXPECT_EQ(0u, RoundRttForTesting("foo.com", base::Milliseconds(1193)) % 50);
+  EXPECT_EQ(0u, RoundRttForTesting("foo.com", base::Milliseconds(12)) % 50);
 }
 
 TEST(ClientHintsTest, DownlinkRoundedOff) {
@@ -55,17 +46,10 @@
 // To handle that, the maximum absolute difference allowed is set to a value
 // slightly larger than 10% of the original metric value.
 TEST(ClientHintsTest, FinalRttWithin10PercentValue) {
-  EXPECT_NEAR(98, RoundRttForTesting("", base::TimeDelta::FromMilliseconds(98)),
-              100);
-  EXPECT_NEAR(1023,
-              RoundRttForTesting("", base::TimeDelta::FromMilliseconds(1023)),
-              200);
-  EXPECT_NEAR(1193,
-              RoundRttForTesting("", base::TimeDelta::FromMilliseconds(1193)),
-              200);
-  EXPECT_NEAR(2750,
-              RoundRttForTesting("", base::TimeDelta::FromMilliseconds(2750)),
-              400);
+  EXPECT_NEAR(98, RoundRttForTesting("", base::Milliseconds(98)), 100);
+  EXPECT_NEAR(1023, RoundRttForTesting("", base::Milliseconds(1023)), 200);
+  EXPECT_NEAR(1193, RoundRttForTesting("", base::Milliseconds(1193)), 200);
+  EXPECT_NEAR(2750, RoundRttForTesting("", base::Milliseconds(2750)), 400);
 }
 
 // Verify that the value of downlink after adding noise is within approximately
@@ -82,18 +66,12 @@
 }
 
 TEST(ClientHintsTest, RttMaxValue) {
-  EXPECT_GE(3000u,
-            RoundRttForTesting("", base::TimeDelta::FromMilliseconds(1023)));
-  EXPECT_GE(3000u,
-            RoundRttForTesting("", base::TimeDelta::FromMilliseconds(2789)));
-  EXPECT_GE(3000u,
-            RoundRttForTesting("", base::TimeDelta::FromMilliseconds(6023)));
-  EXPECT_EQ(
-      0u, RoundRttForTesting("", base::TimeDelta::FromMilliseconds(1023)) % 50);
-  EXPECT_EQ(
-      0u, RoundRttForTesting("", base::TimeDelta::FromMilliseconds(2789)) % 50);
-  EXPECT_EQ(
-      0u, RoundRttForTesting("", base::TimeDelta::FromMilliseconds(6023)) % 50);
+  EXPECT_GE(3000u, RoundRttForTesting("", base::Milliseconds(1023)));
+  EXPECT_GE(3000u, RoundRttForTesting("", base::Milliseconds(2789)));
+  EXPECT_GE(3000u, RoundRttForTesting("", base::Milliseconds(6023)));
+  EXPECT_EQ(0u, RoundRttForTesting("", base::Milliseconds(1023)) % 50);
+  EXPECT_EQ(0u, RoundRttForTesting("", base::Milliseconds(2789)) % 50);
+  EXPECT_EQ(0u, RoundRttForTesting("", base::Milliseconds(6023)) % 50);
 }
 
 TEST(ClientHintsTest, DownlinkMaxValue) {
@@ -109,15 +87,15 @@
 }
 
 TEST(ClientHintsTest, RttRandomized) {
-  const int initial_value = RoundRttForTesting(
-      "example.com", base::TimeDelta::FromMilliseconds(1023));
+  const int initial_value =
+      RoundRttForTesting("example.com", base::Milliseconds(1023));
   bool network_quality_randomized_by_host = false;
   // There is a 1/20 chance that the same random noise is selected for two
   // different hosts. Run this test across 20 hosts to reduce the chances of
   // test failing to (1/20)^20.
   for (size_t i = 0; i < 20; ++i) {
-    int value = RoundRttForTesting(base::NumberToString(i),
-                                   base::TimeDelta::FromMilliseconds(1023));
+    int value =
+        RoundRttForTesting(base::NumberToString(i), base::Milliseconds(1023));
     // If |value| is different than |initial_value|, it implies that RTT is
     // randomized by host. This verifies the behavior, and test can be ended.
     if (value != initial_value)
@@ -127,8 +105,7 @@
 
   // Calling RoundRttForTesting for same host should return the same result.
   for (size_t i = 0; i < 20; ++i) {
-    int value = RoundRttForTesting("example.com",
-                                   base::TimeDelta::FromMilliseconds(1023));
+    int value = RoundRttForTesting("example.com", base::Milliseconds(1023));
     EXPECT_EQ(initial_value, value);
   }
 }
diff --git a/content/browser/code_cache/generated_code_cache.cc b/content/browser/code_cache/generated_code_cache.cc
index 2952b62..f8763f8 100644
--- a/content/browser/code_cache/generated_code_cache.cc
+++ b/content/browser/code_cache/generated_code_cache.cc
@@ -155,7 +155,7 @@
   int64_t raw_response_time;
   memcpy(&raw_response_time, buffer->data(), kResponseTimeSizeInBytes);
   *response_time = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(raw_response_time));
+      base::Microseconds(raw_response_time));
   memcpy(data_size, buffer->data() + kResponseTimeSizeInBytes,
          kDataSizeInBytes);
 }
diff --git a/content/browser/compute_pressure/compute_pressure_host.h b/content/browser/compute_pressure/compute_pressure_host.h
index 188a34c..007eeaa 100644
--- a/content/browser/compute_pressure/compute_pressure_host.h
+++ b/content/browser/compute_pressure/compute_pressure_host.h
@@ -32,7 +32,7 @@
     : public blink::mojom::ComputePressureHost {
  public:
   static constexpr base::TimeDelta kDefaultVisibleObserverRateLimit =
-      base::TimeDelta::FromSeconds(1);
+      base::Seconds(1);
 
   // `did_connection_change` is called on changes to the mojo connections
   // handled by this host are changed. The callback will not be Run() after
diff --git a/content/browser/compute_pressure/compute_pressure_host_unittest.cc b/content/browser/compute_pressure/compute_pressure_host_unittest.cc
index fc2d171..b50469d 100644
--- a/content/browser/compute_pressure/compute_pressure_host_unittest.cc
+++ b/content/browser/compute_pressure/compute_pressure_host_unittest.cc
@@ -30,7 +30,7 @@
     // called while the ComputePressureHost is alive, and this instance owns the
     // ComputePressureHost.
     SetHostImpl(std::make_unique<ComputePressureHost>(
-        kTestOrigin, /*is_supported=*/true, base::TimeDelta::FromSeconds(1),
+        kTestOrigin, /*is_supported=*/true, base::Seconds(1),
         base::BindRepeating(&ComputePressureHostTest::DidHostConnectionsChange,
                             base::Unretained(this))));
   }
@@ -80,7 +80,7 @@
   base::Time now = base::Time::Now();
 
   host_impl_->UpdateObservers({.cpu_utilization = 0.42, .cpu_speed = 0.84},
-                              now + base::TimeDelta::FromSeconds(1));
+                              now + base::Seconds(1));
   observer.WaitForUpdate();
   ASSERT_THAT(observer.updates(), testing::SizeIs(testing::Eq(1u)));
   EXPECT_EQ(observer.updates()[0],
@@ -95,19 +95,16 @@
 
   base::Time after_add = base::Time::Now();
 
-  host_impl_->UpdateObservers(
-      {.cpu_utilization = 0.42, .cpu_speed = 0.84},
-      after_add + base::TimeDelta::FromMilliseconds(1000));
+  host_impl_->UpdateObservers({.cpu_utilization = 0.42, .cpu_speed = 0.84},
+                              after_add + base::Milliseconds(1000));
   observer.WaitForUpdate();
   observer.updates().clear();
 
   // The first update should be blocked due to rate-limiting.
-  host_impl_->UpdateObservers(
-      {.cpu_utilization = 1.0, .cpu_speed = 1.0},
-      after_add + base::TimeDelta::FromMilliseconds(1500));
-  host_impl_->UpdateObservers(
-      {.cpu_utilization = 0.0, .cpu_speed = 0.0},
-      after_add + base::TimeDelta::FromMilliseconds(2100));
+  host_impl_->UpdateObservers({.cpu_utilization = 1.0, .cpu_speed = 1.0},
+                              after_add + base::Milliseconds(1500));
+  host_impl_->UpdateObservers({.cpu_utilization = 0.0, .cpu_speed = 0.0},
+                              after_add + base::Milliseconds(2100));
   observer.WaitForUpdate();
 
   ASSERT_THAT(observer.updates(), testing::SizeIs(testing::Eq(1u)));
@@ -125,16 +122,14 @@
 
   base::Time after_add = base::Time::Now();
 
-  ASSERT_LE(after_add - before_add, base::TimeDelta::FromMilliseconds(500))
+  ASSERT_LE(after_add - before_add, base::Milliseconds(500))
       << "test timings assume that AddObserver completes in at most 500ms";
 
   // The first update should be blocked due to rate-limiting.
-  host_impl_->UpdateObservers(
-      {.cpu_utilization = 0.42, .cpu_speed = 0.84},
-      before_add + base::TimeDelta::FromMilliseconds(700));
-  host_impl_->UpdateObservers(
-      {.cpu_utilization = 0.0, .cpu_speed = 0.0},
-      before_add + base::TimeDelta::FromMilliseconds(1600));
+  host_impl_->UpdateObservers({.cpu_utilization = 0.42, .cpu_speed = 0.84},
+                              before_add + base::Milliseconds(700));
+  host_impl_->UpdateObservers({.cpu_utilization = 0.0, .cpu_speed = 0.0},
+                              before_add + base::Milliseconds(1600));
   observer.WaitForUpdate();
 
   ASSERT_THAT(observer.updates(), testing::SizeIs(testing::Eq(1u)));
@@ -159,7 +154,7 @@
   base::Time now = base::Time::Now();
 
   host_impl_->UpdateObservers({.cpu_utilization = 0.42, .cpu_speed = 0.84},
-                              now + base::TimeDelta::FromSeconds(1));
+                              now + base::Seconds(1));
   FakeComputePressureObserver::WaitForUpdates(
       {&observer1, &observer2, &observer3});
 
@@ -202,10 +197,10 @@
   base::Time now = base::Time::Now();
 
   host_impl_->UpdateObservers({.cpu_utilization = 0.42, .cpu_speed = 0.84},
-                              now + base::TimeDelta::FromMilliseconds(1000));
+                              now + base::Milliseconds(1000));
   observer3.WaitForUpdate();
   host_impl_->UpdateObservers({.cpu_utilization = 0.84, .cpu_speed = 0.42},
-                              now + base::TimeDelta::FromMilliseconds(2000));
+                              now + base::Milliseconds(2000));
   observer3.WaitForUpdate();
 
   EXPECT_THAT(observer3.updates(), testing::SizeIs(testing::Eq(2u)));
@@ -222,7 +217,7 @@
 
 TEST_F(ComputePressureHostTest, AddObserver_ThirdPartyFrame) {
   ComputePressureHost host_3p_impl(
-      kThirdPartyOrigin, /*is_supported=*/true, base::TimeDelta::FromSeconds(1),
+      kThirdPartyOrigin, /*is_supported=*/true, base::Seconds(1),
       /*did_connections_change*/ base::DoNothing());
   mojo::Remote<blink::mojom::ComputePressureHost> host_3p;
   host_3p_impl.BindReceiver(main_frame_id_,
@@ -240,10 +235,10 @@
   base::Time now = base::Time::Now();
 
   host_impl_->UpdateObservers({.cpu_utilization = 0.0, .cpu_speed = 0.0},
-                              now + base::TimeDelta::FromMilliseconds(1000));
+                              now + base::Milliseconds(1000));
   first_party_observer.WaitForUpdate();
   host_impl_->UpdateObservers({.cpu_utilization = 1.0, .cpu_speed = 1.0},
-                              now + base::TimeDelta::FromMilliseconds(2000));
+                              now + base::Milliseconds(2000));
   first_party_observer.WaitForUpdate();
 
   EXPECT_THAT(first_party_observer.updates(), testing::SizeIs(testing::Eq(2u)));
@@ -267,9 +262,9 @@
 
   // The first two updates should be blocked due to invisibility.
   host_impl_->UpdateObservers({.cpu_utilization = 0.0, .cpu_speed = 0.0},
-                              now + base::TimeDelta::FromMilliseconds(1000));
+                              now + base::Milliseconds(1000));
   host_impl_->UpdateObservers({.cpu_utilization = 1.0, .cpu_speed = 1.0},
-                              now + base::TimeDelta::FromMilliseconds(2000));
+                              now + base::Milliseconds(2000));
 
   test_rvh()->SimulateWasShown();
 
@@ -277,7 +272,7 @@
   // time proximity to the second update, because the second update is not
   // dispatched.
   host_impl_->UpdateObservers({.cpu_utilization = 1.0, .cpu_speed = 1.0},
-                              now + base::TimeDelta::FromMilliseconds(2100));
+                              now + base::Milliseconds(2100));
   observer.WaitForUpdate();
 
   ASSERT_THAT(observer.updates(), testing::SizeIs(testing::Eq(1u)));
@@ -305,10 +300,10 @@
   base::Time now = base::Time::Now();
 
   host_impl_->UpdateObservers({.cpu_utilization = 0.0, .cpu_speed = 0.0},
-                              now + base::TimeDelta::FromMilliseconds(1000));
+                              now + base::Milliseconds(1000));
   valid_observer.WaitForUpdate();
   host_impl_->UpdateObservers({.cpu_utilization = 1.0, .cpu_speed = 1.0},
-                              now + base::TimeDelta::FromMilliseconds(2000));
+                              now + base::Milliseconds(2000));
   valid_observer.WaitForUpdate();
 
   EXPECT_THAT(valid_observer.updates(), testing::SizeIs(testing::Eq(2u)));
@@ -342,10 +337,10 @@
   base::Time now = base::Time::Now();
 
   host_impl_->UpdateObservers({.cpu_utilization = 0.0, .cpu_speed = 0.0},
-                              now + base::TimeDelta::FromMilliseconds(1000));
+                              now + base::Milliseconds(1000));
   valid_observer.WaitForUpdate();
   host_impl_->UpdateObservers({.cpu_utilization = 1.0, .cpu_speed = 1.0},
-                              now + base::TimeDelta::FromMilliseconds(2000));
+                              now + base::Milliseconds(2000));
   valid_observer.WaitForUpdate();
 
   EXPECT_THAT(valid_observer.updates(), testing::SizeIs(testing::Eq(2u)));
@@ -359,7 +354,7 @@
 
 TEST_F(ComputePressureHostTest, AddObserver_NotSupported) {
   SetHostImpl(std::make_unique<ComputePressureHost>(
-      kTestOrigin, /*is_supported=*/false, base::TimeDelta::FromSeconds(1),
+      kTestOrigin, /*is_supported=*/false, base::Seconds(1),
       /*did_connections_change=*/base::DoNothing()));
 
   FakeComputePressureObserver observer;
diff --git a/content/browser/compute_pressure/compute_pressure_manager.h b/content/browser/compute_pressure/compute_pressure_manager.h
index 67db2b0b..9029cb76 100644
--- a/content/browser/compute_pressure/compute_pressure_manager.h
+++ b/content/browser/compute_pressure/compute_pressure_manager.h
@@ -39,8 +39,7 @@
  public:
   // The sampling interval must be smaller or equal to the rate-limit for
   // observer updates.
-  static constexpr base::TimeDelta kDefaultSamplingInterval =
-      base::TimeDelta::FromSeconds(1);
+  static constexpr base::TimeDelta kDefaultSamplingInterval = base::Seconds(1);
 
   // Factory method for production instances.
   static std::unique_ptr<ComputePressureManager> Create();
diff --git a/content/browser/compute_pressure/compute_pressure_manager_unittest.cc b/content/browser/compute_pressure/compute_pressure_manager_unittest.cc
index c8d866b..1847112c 100644
--- a/content/browser/compute_pressure/compute_pressure_manager_unittest.cc
+++ b/content/browser/compute_pressure/compute_pressure_manager_unittest.cc
@@ -30,8 +30,8 @@
     NavigateAndCommit(kTestUrl);
 
     SetManager(ComputePressureManager::CreateForTesting(
-        std::make_unique<FakeCpuProbe>(), base::TimeDelta::FromMilliseconds(1),
-        base::TimeDelta::FromMilliseconds(1)));
+        std::make_unique<FakeCpuProbe>(), base::Milliseconds(1),
+        base::Milliseconds(1)));
   }
 
   void TearDown() override {
@@ -222,8 +222,7 @@
 
 TEST_F(ComputePressureManagerTest, AddObserver_NoProbe) {
   SetManager(ComputePressureManager::CreateForTesting(
-      /*cpu_probe=*/nullptr, base::TimeDelta::FromMilliseconds(1),
-      base::TimeDelta::FromMilliseconds(1)));
+      /*cpu_probe=*/nullptr, base::Milliseconds(1), base::Milliseconds(1)));
 
   FakeComputePressureObserver observer;
   EXPECT_EQ(main_host_sync_->AddObserver(kQuantization,
diff --git a/content/browser/compute_pressure/compute_pressure_sampler_unittest.cc b/content/browser/compute_pressure/compute_pressure_sampler_unittest.cc
index 3fa0ea6..80b127ec 100644
--- a/content/browser/compute_pressure/compute_pressure_sampler_unittest.cc
+++ b/content/browser/compute_pressure/compute_pressure_sampler_unittest.cc
@@ -32,7 +32,7 @@
   ComputePressureSamplerTest()
       : sampler_(std::make_unique<ComputePressureSampler>(
             std::make_unique<FakeCpuProbe>(),
-            base::TimeDelta::FromMilliseconds(1),
+            base::Milliseconds(1),
             base::BindRepeating(&ComputePressureSamplerTest::SamplerCallback,
                                 base::Unretained(this)))) {}
 
@@ -154,8 +154,7 @@
   };
 
   sampler_ = std::make_unique<ComputePressureSampler>(
-      std::make_unique<StreamingCpuProbe>(samples),
-      base::TimeDelta::FromMilliseconds(1),
+      std::make_unique<StreamingCpuProbe>(samples), base::Milliseconds(1),
       base::BindRepeating(&ComputePressureSamplerTest::SamplerCallback,
                           base::Unretained(this)));
   sampler_->EnsureStarted();
@@ -197,7 +196,7 @@
   samples_.clear();
   cpu_probe().SetLastSample({.cpu_utilization = 0.25, .cpu_speed = 0.5});
   // 10ms should be long enough to ensure that all the sampling tasks are done.
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(10));
+  base::PlatformThread::Sleep(base::Milliseconds(10));
 
   sampler_->EnsureStarted();
   WaitForUpdate();
@@ -231,7 +230,7 @@
   samples_.clear();
   cpu_probe().SetLastSample({.cpu_utilization = 0.25, .cpu_speed = 0.5});
   // 10ms should be long enough to ensure that all the sampling tasks are done.
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(10));
+  base::PlatformThread::Sleep(base::Milliseconds(10));
 
   sampler_->EnsureStarted();
   WaitForUpdate();
diff --git a/content/browser/content_index/content_index_database.cc b/content/browser/content_index/content_index_database.cc
index 41506d2f..adef0b3 100644
--- a/content/browser/content_index/content_index_database.cc
+++ b/content/browser/content_index/content_index_database.cc
@@ -116,7 +116,7 @@
 
   auto description = DescriptionFromProto(entry_proto.description());
   base::Time registration_time = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(entry_proto.timestamp()));
+      base::Microseconds(entry_proto.timestamp()));
 
   return ContentIndexEntry(service_worker_registration_id,
                            std::move(description), std::move(launch_url),
diff --git a/content/browser/data_decoder_browsertest.cc b/content/browser/data_decoder_browsertest.cc
index c7fe189..dbaa2fa 100644
--- a/content/browser/data_decoder_browsertest.cc
+++ b/content/browser/data_decoder_browsertest.cc
@@ -67,8 +67,7 @@
     return false;
 
   EXPECT_EQ(1u, buckets.size());
-  out_measurement_value =
-      base::TimeDelta::FromMilliseconds(buckets.front().min);
+  out_measurement_value = base::Milliseconds(buckets.front().min);
   return true;
 }
 
diff --git a/content/browser/device_sensors/device_sensor_browsertest.cc b/content/browser/device_sensors/device_sensor_browsertest.cc
index a323fa93..27b6304 100644
--- a/content/browser/device_sensors/device_sensor_browsertest.cc
+++ b/content/browser/device_sensors/device_sensor_browsertest.cc
@@ -245,7 +245,7 @@
 
   // TODO(timvolodine): investigate if it is possible to test this without
   // delay, crbug.com/360044.
-  WaitForAlertDialogAndQuitAfterDelay(base::TimeDelta::FromMilliseconds(500));
+  WaitForAlertDialogAndQuitAfterDelay(base::Milliseconds(500));
 
   same_tab_observer.Wait();
   EXPECT_EQ("pass", shell()->web_contents()->GetLastCommittedURL().ref());
diff --git a/content/browser/devtools/devtools_background_services_context_impl.cc b/content/browser/devtools/devtools_background_services_context_impl.cc
index 63db00d..698f8434 100644
--- a/content/browser/devtools/devtools_background_services_context_impl.cc
+++ b/content/browser/devtools/devtools_background_services_context_impl.cc
@@ -103,7 +103,7 @@
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
 
   // TODO(rayankans): Make the time delay finch configurable.
-  base::Time expiration_time = base::Time::Now() + base::TimeDelta::FromDays(3);
+  base::Time expiration_time = base::Time::Now() + base::Days(3);
   expiration_times_[service] = expiration_time;
 
   GetContentClient()->browser()->UpdateDevToolsBackgroundServiceExpiration(
diff --git a/content/browser/devtools/devtools_background_services_context_impl_unittest.cc b/content/browser/devtools/devtools_background_services_context_impl_unittest.cc
index 5fcfb14..4a2b3572 100644
--- a/content/browser/devtools/devtools_background_services_context_impl_unittest.cc
+++ b/content/browser/devtools/devtools_background_services_context_impl_unittest.cc
@@ -141,7 +141,7 @@
   }
 
   void SimulateOneWeekPassing() {
-    base::Time one_week_ago = base::Time::Now() - base::TimeDelta::FromDays(7);
+    base::Time one_week_ago = base::Time::Now() - base::Days(7);
     context_->expiration_times_
         [devtools::proto::BackgroundService::BACKGROUND_FETCH] = one_week_ago;
   }
diff --git a/content/browser/devtools/devtools_manager_unittest.cc b/content/browser/devtools/devtools_manager_unittest.cc
index ab1ce36..fe3605f 100644
--- a/content/browser/devtools/devtools_manager_unittest.cc
+++ b/content/browser/devtools/devtools_manager_unittest.cc
@@ -144,7 +144,7 @@
   // Start a timeout.
   inspected_rvh->GetWidget()->StartInputEventAckTimeout();
   task_environment()->FastForwardBy(kHungRendererDelay +
-                                    base::TimeDelta::FromMilliseconds(10));
+                                    base::Milliseconds(10));
   EXPECT_FALSE(delegate.renderer_unresponsive_received());
 
   // Now close devtools and check that the notification is delivered.
@@ -152,7 +152,7 @@
   // Start a timeout.
   inspected_rvh->GetWidget()->StartInputEventAckTimeout();
   task_environment()->FastForwardBy(kHungRendererDelay +
-                                    base::TimeDelta::FromMilliseconds(10));
+                                    base::Milliseconds(10));
   EXPECT_TRUE(delegate.renderer_unresponsive_received());
 
   contents()->SetDelegate(nullptr);
diff --git a/content/browser/devtools/devtools_video_consumer.cc b/content/browser/devtools/devtools_video_consumer.cc
index 9d0c3751..891038b 100644
--- a/content/browser/devtools/devtools_video_consumer.cc
+++ b/content/browser/devtools/devtools_video_consumer.cc
@@ -22,8 +22,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kDefaultMinCapturePeriod =
-    base::TimeDelta::FromMilliseconds(10);
+constexpr base::TimeDelta kDefaultMinCapturePeriod = base::Milliseconds(10);
 
 // Frame size can change every frame.
 constexpr base::TimeDelta kDefaultMinPeriod = base::TimeDelta();
diff --git a/content/browser/devtools/protocol/background_service_handler.cc b/content/browser/devtools/protocol/background_service_handler.cc
index 44fabd1..9573ecd 100644
--- a/content/browser/devtools/protocol/background_service_handler.cc
+++ b/content/browser/devtools/protocol/background_service_handler.cc
@@ -79,7 +79,7 @@
 std::unique_ptr<protocol::BackgroundService::BackgroundServiceEvent>
 ToBackgroundServiceEvent(const devtools::proto::BackgroundServiceEvent& event) {
   base::Time timestamp = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(event.timestamp()));
+      base::Microseconds(event.timestamp()));
   return protocol::BackgroundService::BackgroundServiceEvent::Create()
       .SetTimestamp(timestamp.ToJsTime() / 1'000)  // milliseconds -> seconds
       .SetOrigin(event.origin())
diff --git a/content/browser/devtools/protocol/input_handler.cc b/content/browser/devtools/protocol/input_handler.cc
index 9f7a8f62..65eda39 100644
--- a/content/browser/devtools/protocol/input_handler.cc
+++ b/content/browser/devtools/protocol/input_handler.cc
@@ -112,10 +112,9 @@
 base::TimeTicks GetEventTimeTicks(const Maybe<double>& timestamp) {
   // Convert timestamp, in seconds since unix epoch, to an event timestamp
   // which is time ticks since platform start time.
-  return timestamp.isJust()
-             ? base::TimeDelta::FromSecondsD(timestamp.fromJust()) +
-                   base::TimeTicks::UnixEpoch()
-             : base::TimeTicks::Now();
+  return timestamp.isJust() ? base::Seconds(timestamp.fromJust()) +
+                                  base::TimeTicks::UnixEpoch()
+                            : base::TimeTicks::Now();
 }
 
 bool SetKeyboardEventText(char16_t* to, Maybe<std::string> from) {
@@ -1646,10 +1645,10 @@
     return;
   }
 
-  SynthesizeRepeatingScroll(
-      gesture_params, repeat_count.fromMaybe(0),
-      base::TimeDelta::FromMilliseconds(repeat_delay_ms.fromMaybe(250)),
-      interaction_marker_name.fromMaybe(""), ++last_id_, std::move(callback));
+  SynthesizeRepeatingScroll(gesture_params, repeat_count.fromMaybe(0),
+                            base::Milliseconds(repeat_delay_ms.fromMaybe(250)),
+                            interaction_marker_name.fromMaybe(""), ++last_id_,
+                            std::move(callback));
 }
 
 void InputHandler::SynthesizeRepeatingScroll(
diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/browser/devtools/protocol/network_handler.cc
index cf57dbb..706de7e 100644
--- a/content/browser/devtools/protocol/network_handler.cc
+++ b/content/browser/devtools/protocol/network_handler.cc
@@ -1625,7 +1625,7 @@
   if (throttling_enabled) {
     network_conditions = network::mojom::NetworkConditions::New();
     network_conditions->offline = offline;
-    network_conditions->latency = base::TimeDelta::FromMilliseconds(latency);
+    network_conditions->latency = base::Milliseconds(latency);
     network_conditions->download_throughput = download_throughput;
     network_conditions->upload_throughput = upload_throughput;
   }
diff --git a/content/browser/devtools/protocol/page_handler.cc b/content/browser/devtools/protocol/page_handler.cc
index 93b7a8a..848b2540 100644
--- a/content/browser/devtools/protocol/page_handler.cc
+++ b/content/browser/devtools/protocol/page_handler.cc
@@ -1123,7 +1123,7 @@
           FROM_HERE,
           base::BindOnce(&PageHandler::InnerSwapCompositorFrame,
                          weak_factory_.GetWeakPtr()),
-          base::TimeDelta::FromMilliseconds(kFrameRetryDelayMs));
+          base::Milliseconds(kFrameRetryDelayMs));
     }
     --frames_in_flight_;
     return;
diff --git a/content/browser/devtools/protocol/system_info_handler.cc b/content/browser/devtools/protocol/system_info_handler.cc
index 9e66a20..9a8cc22 100644
--- a/content/browser/devtools/protocol/system_info_handler.cc
+++ b/content/browser/devtools/protocol/system_info_handler.cc
@@ -312,7 +312,7 @@
         FROM_HERE,
         base::BindOnce(&SystemInfoHandlerGpuObserver::ObserverWatchdogCallback,
                        weak_factory_.GetWeakPtr()),
-        base::TimeDelta::FromMilliseconds(kGPUInfoWatchdogTimeoutMs));
+        base::Milliseconds(kGPUInfoWatchdogTimeoutMs));
 
     GpuDataManagerImpl::GetInstance()->AddObserver(this);
     OnGpuInfoUpdate();
diff --git a/content/browser/devtools/protocol/tracing_handler.cc b/content/browser/devtools/protocol/tracing_handler.cc
index 5553d11..9fd448d 100644
--- a/content/browser/devtools/protocol/tracing_handler.cc
+++ b/content/browser/devtools/protocol/tracing_handler.cc
@@ -1060,7 +1060,7 @@
     usage_reporting_interval = kMinimumReportingInterval;
 
   base::TimeDelta interval =
-      base::TimeDelta::FromMilliseconds(std::ceil(usage_reporting_interval));
+      base::Milliseconds(std::ceil(usage_reporting_interval));
   buffer_usage_poll_timer_ = std::make_unique<base::RepeatingTimer>();
   buffer_usage_poll_timer_->Start(
       FROM_HERE, interval,
diff --git a/content/browser/download/download_browsertest.cc b/content/browser/download/download_browsertest.cc
index 5ffb50f..31cba6f 100644
--- a/content/browser/download/download_browsertest.cc
+++ b/content/browser/download/download_browsertest.cc
@@ -1974,12 +1974,12 @@
   // message created by Shutdown and before the notification callback
   // created by the IO thread in canceling the request.
   GetIOThreadTaskRunner({})->PostTask(
-      FROM_HERE, base::BindOnce(&base::PlatformThread::Sleep,
-                                base::TimeDelta::FromMilliseconds(25)));
+      FROM_HERE,
+      base::BindOnce(&base::PlatformThread::Sleep, base::Milliseconds(25)));
   DownloadManagerForShell(shell())->Shutdown();
   GetIOThreadTaskRunner({})->PostTask(
-      FROM_HERE, base::BindOnce(&base::PlatformThread::Sleep,
-                                base::TimeDelta::FromMilliseconds(25)));
+      FROM_HERE,
+      base::BindOnce(&base::PlatformThread::Sleep, base::Milliseconds(25)));
 }
 
 // Try to shutdown just after we release the download file, by delaying
diff --git a/content/browser/download/download_manager_impl_unittest.cc b/content/browser/download/download_manager_impl_unittest.cc
index 6907de3..9f93a4f6 100644
--- a/content/browser/download/download_manager_impl_unittest.cc
+++ b/content/browser/download/download_manager_impl_unittest.cc
@@ -831,7 +831,7 @@
 TEST_F(DownloadManagerWithExpirationTest, DeleteExpiredDownload) {
   std::vector<GURL> url_chain;
   url_chain.emplace_back("http://example.com/1.zip");
-  auto expired_start_time = base::Time::Now() - base::TimeDelta::FromDays(10);
+  auto expired_start_time = base::Time::Now() - base::Days(10);
   download::DownloadItem* download_item = CreateDownloadItem(
       expired_start_time, url_chain, download::DownloadItem::INTERRUPTED);
   EXPECT_FALSE(download_item)
diff --git a/content/browser/download/mhtml_generation_browsertest.cc b/content/browser/download/mhtml_generation_browsertest.cc
index b585ef1..8e10ee5 100644
--- a/content/browser/download/mhtml_generation_browsertest.cc
+++ b/content/browser/download/mhtml_generation_browsertest.cc
@@ -127,7 +127,7 @@
  protected:
   void SendResponse(SerializeAsMHTMLCallback callback) {
     std::vector<std::string> dummy_digests;
-    base::TimeDelta dummy_time_delta = base::TimeDelta::FromMilliseconds(100);
+    base::TimeDelta dummy_time_delta = base::Milliseconds(100);
     std::move(callback).Run(mojom::MhtmlSaveStatus::kSuccess, dummy_digests,
                             dummy_time_delta);
   }
diff --git a/content/browser/gpu/browser_gpu_channel_host_factory.cc b/content/browser/gpu/browser_gpu_channel_host_factory.cc
index 926e7ad..825955a 100644
--- a/content/browser/gpu/browser_gpu_channel_host_factory.cc
+++ b/content/browser/gpu/browser_gpu_channel_host_factory.cc
@@ -458,8 +458,7 @@
       gpu::kGpuWatchdogTimeout.InSeconds() * gpu::kRestartFactor + 5;
 #endif
 
-  timeout_.Start(FROM_HERE,
-                 base::TimeDelta::FromSeconds(kGpuChannelTimeoutInSeconds),
+  timeout_.Start(FROM_HERE, base::Seconds(kGpuChannelTimeoutInSeconds),
                  base::BindOnce(&DumpGpuStackOnProcessThread));
 #endif  // OS_ANDROID
 }
diff --git a/content/browser/gpu/gpu_data_manager_impl_private.cc b/content/browser/gpu/gpu_data_manager_impl_private.cc
index f456cbd5..43dd51a5 100644
--- a/content/browser/gpu/gpu_data_manager_impl_private.cc
+++ b/content/browser/gpu/gpu_data_manager_impl_private.cc
@@ -563,7 +563,7 @@
 void GpuDataManagerImplPrivate::StartUmaTimer() {
   // Do not change kTimerInterval without also changing the UMA histogram name,
   // as histogram data from before/after the change will not be comparable.
-  constexpr base::TimeDelta kTimerInterval = base::TimeDelta::FromMinutes(5);
+  constexpr base::TimeDelta kTimerInterval = base::Minutes(5);
   compositing_mode_timer_.Start(
       FROM_HERE, kTimerInterval, this,
       &GpuDataManagerImplPrivate::RecordCompositingMode);
@@ -744,7 +744,7 @@
   base::TimeDelta delta;
   if (delayed &&
       !command_line->HasSwitch(switches::kNoDelayForDX12VulkanInfoCollection)) {
-    delta = base::TimeDelta::FromSeconds(120);
+    delta = base::Seconds(120);
   }
 
   base::OnceClosure task = base::BindOnce(
@@ -811,7 +811,7 @@
   base::TimeDelta delta;
   if (delayed &&
       !command_line->HasSwitch(switches::kNoDelayForDX12VulkanInfoCollection)) {
-    delta = base::TimeDelta::FromSeconds(120);
+    delta = base::Seconds(120);
   }
 
   base::OnceClosure task = base::BindOnce(
@@ -993,8 +993,7 @@
   gpu_info_ = gpu_info;
   base::UmaHistogramCustomMicrosecondsTimes(
       "GPU.GPUInitializationTime.V3", gpu_info_.initialization_time,
-      base::TimeDelta::FromMilliseconds(5), base::TimeDelta::FromSeconds(5),
-      50);
+      base::Milliseconds(5), base::Seconds(5), 50);
   UMA_HISTOGRAM_EXACT_LINEAR("GPU.GpuCount", gpu_info_.GpuCount(), 10);
   RecordDiscreteGpuHistograms(gpu_info_);
 #if defined(OS_WIN)
diff --git a/content/browser/gpu/gpu_data_manager_impl_private_unittest.cc b/content/browser/gpu/gpu_data_manager_impl_private_unittest.cc
index b002877..75e2cc16 100644
--- a/content/browser/gpu/gpu_data_manager_impl_private_unittest.cc
+++ b/content/browser/gpu/gpu_data_manager_impl_private_unittest.cc
@@ -164,16 +164,16 @@
 
 base::Time GpuDataManagerImplPrivateTest::JustBeforeExpiration(
     const GpuDataManagerImplPrivate* manager) {
-  return GetTimeForTesting() + base::TimeDelta::FromMilliseconds(
-      manager->GetBlockAllDomainsDurationInMs()) -
-      base::TimeDelta::FromMilliseconds(3);
+  return GetTimeForTesting() +
+         base::Milliseconds(manager->GetBlockAllDomainsDurationInMs()) -
+         base::Milliseconds(3);
 }
 
 base::Time GpuDataManagerImplPrivateTest::JustAfterExpiration(
     const GpuDataManagerImplPrivate* manager) {
-  return GetTimeForTesting() + base::TimeDelta::FromMilliseconds(
-      manager->GetBlockAllDomainsDurationInMs()) +
-      base::TimeDelta::FromMilliseconds(3);
+  return GetTimeForTesting() +
+         base::Milliseconds(manager->GetBlockAllDomainsDurationInMs()) +
+         base::Milliseconds(3);
 }
 
 void GpuDataManagerImplPrivateTest::TestBlockingDomainFrom3DAPIs(
diff --git a/content/browser/host_zoom_map_impl_unittest.cc b/content/browser/host_zoom_map_impl_unittest.cc
index 7c332065..db9c0fa 100644
--- a/content/browser/host_zoom_map_impl_unittest.cc
+++ b/content/browser/host_zoom_map_impl_unittest.cc
@@ -93,7 +93,7 @@
   host_zoom_map.SetZoomLevelForHost("zoomed.com", 1.5);
   host_zoom_map.SetZoomLevelForHost("zoomed2.com", 2.0);
 
-  base::Time later = now + base::TimeDelta::FromSeconds(1);
+  base::Time later = now + base::Seconds(1);
   test_clock.SetNow(later);
   host_zoom_map.SetZoomLevelForHost("zoomed2.com", 2.5);
   host_zoom_map.SetZoomLevelForHost("zoomzoom.com", 3);
@@ -125,22 +125,20 @@
   host_zoom_map.SetClockForTesting(&test_clock);
 
   base::Time now = base::Time::Now();
-  test_clock.SetNow(now - base::TimeDelta::FromHours(3));
+  test_clock.SetNow(now - base::Hours(3));
   host_zoom_map.SetZoomLevelForHost("zoomzoom.com", 3.5);
-  test_clock.SetNow(now - base::TimeDelta::FromHours(1));
+  test_clock.SetNow(now - base::Hours(1));
   host_zoom_map.SetZoomLevelForHost("zoom.com", 1.5);
-  test_clock.SetNow(now - base::TimeDelta::FromDays(31));
+  test_clock.SetNow(now - base::Days(31));
   host_zoom_map.SetZoomLevelForHost("zoom2.com", 2.5);
   EXPECT_EQ(3u, host_zoom_map.GetAllZoomLevels().size());
 
-  host_zoom_map.ClearZoomLevels(now - base::TimeDelta::FromHours(2),
-                                base::Time::Max());
+  host_zoom_map.ClearZoomLevels(now - base::Hours(2), base::Time::Max());
   ASSERT_EQ(2u, host_zoom_map.GetAllZoomLevels().size());
   EXPECT_EQ("zoom2.com", host_zoom_map.GetAllZoomLevels()[0].host);
   EXPECT_EQ("zoomzoom.com", host_zoom_map.GetAllZoomLevels()[1].host);
 
-  host_zoom_map.ClearZoomLevels(base::Time(),
-                                now - base::TimeDelta::FromDays(30));
+  host_zoom_map.ClearZoomLevels(base::Time(), now - base::Days(30));
   ASSERT_EQ(1u, host_zoom_map.GetAllZoomLevels().size());
   EXPECT_EQ("zoomzoom.com", host_zoom_map.GetAllZoomLevels()[0].host);
 
diff --git a/content/browser/idle/idle_manager_impl.cc b/content/browser/idle/idle_manager_impl.cc
index aa8533739..2eace480 100644
--- a/content/browser/idle/idle_manager_impl.cc
+++ b/content/browser/idle/idle_manager_impl.cc
@@ -24,7 +24,7 @@
 using blink::mojom::IdleState;
 using blink::mojom::PermissionStatus;
 
-constexpr base::TimeDelta kMinimumThreshold = base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kMinimumThreshold = base::Seconds(60);
 
 }  // namespace
 
diff --git a/content/browser/idle/idle_manager_unittest.cc b/content/browser/idle/idle_manager_unittest.cc
index abf6fba..4f56bb6 100644
--- a/content/browser/idle/idle_manager_unittest.cc
+++ b/content/browser/idle/idle_manager_unittest.cc
@@ -46,7 +46,7 @@
 
 const char kTestUrl[] = "https://www.google.com";
 
-constexpr base::TimeDelta kThreshold = base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kThreshold = base::Seconds(60);
 
 class MockIdleMonitor : public blink::mojom::IdleMonitor {
  public:
@@ -140,7 +140,7 @@
             }));
 
     // Fast forward to run polling task.
-    task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment()->FastForwardBy(base::Seconds(1));
     loop.Run();
     return std::make_tuple(user_result, screen_result);
   }
@@ -179,7 +179,7 @@
 
   // Initial state of the system.
   EXPECT_CALL(*idle_time_provider(), CalculateIdleTime())
-      .WillOnce(Return(base::TimeDelta::FromSeconds(0)));
+      .WillOnce(Return(base::Seconds(0)));
   EXPECT_CALL(*idle_time_provider(), CheckIdleStateIsLocked())
       .WillOnce(Return(false));
 
@@ -192,7 +192,7 @@
 
   // Initial state of the system.
   EXPECT_CALL(*idle_time_provider(), CalculateIdleTime())
-      .WillOnce(Return(base::TimeDelta::FromSeconds(0)));
+      .WillOnce(Return(base::Seconds(0)));
   EXPECT_CALL(*idle_time_provider(), CheckIdleStateIsLocked())
       .WillOnce(Return(false));
 
@@ -201,7 +201,7 @@
 
   // Simulates a user going idle.
   EXPECT_CALL(*idle_time_provider(), CalculateIdleTime())
-      .WillOnce(Return(base::TimeDelta::FromSeconds(60)));
+      .WillOnce(Return(base::Seconds(60)));
   EXPECT_CALL(*idle_time_provider(), CheckIdleStateIsLocked())
       .WillOnce(Return(true));
 
@@ -210,7 +210,7 @@
 
   // Simulates a user going active, calling a callback under the threshold.
   EXPECT_CALL(*idle_time_provider(), CalculateIdleTime())
-      .WillOnce(Return(base::TimeDelta::FromSeconds(0)));
+      .WillOnce(Return(base::Seconds(0)));
   EXPECT_CALL(*idle_time_provider(), CheckIdleStateIsLocked())
       .WillOnce(Return(false));
 
@@ -223,7 +223,7 @@
 
   // Initial state of the system.
   EXPECT_CALL(*idle_time_provider(), CalculateIdleTime())
-      .WillOnce(Return(base::TimeDelta::FromSeconds(70)));
+      .WillOnce(Return(base::Seconds(70)));
   EXPECT_CALL(*idle_time_provider(), CheckIdleStateIsLocked())
       .WillOnce(Return(true));
 
@@ -232,7 +232,7 @@
 
   // Simulates a user unlocking the screen.
   EXPECT_CALL(*idle_time_provider(), CalculateIdleTime())
-      .WillOnce(Return(base::TimeDelta::FromSeconds(0)));
+      .WillOnce(Return(base::Seconds(0)));
   EXPECT_CALL(*idle_time_provider(), CheckIdleStateIsLocked())
       .WillOnce(Return(false));
 
@@ -245,7 +245,7 @@
 
   // Initial state of the system.
   EXPECT_CALL(*idle_time_provider(), CalculateIdleTime())
-      .WillOnce(Return(base::TimeDelta::FromSeconds(0)));
+      .WillOnce(Return(base::Seconds(0)));
   EXPECT_CALL(*idle_time_provider(), CheckIdleStateIsLocked())
       .WillOnce(Return(false));
 
@@ -254,7 +254,7 @@
 
   // Simulates a user locking the screen.
   EXPECT_CALL(*idle_time_provider(), CalculateIdleTime())
-      .WillOnce(Return(base::TimeDelta::FromSeconds(10)));
+      .WillOnce(Return(base::Seconds(10)));
   EXPECT_CALL(*idle_time_provider(), CheckIdleStateIsLocked())
       .WillOnce(Return(true));
 
@@ -267,7 +267,7 @@
 
   // Initial state of the system.
   EXPECT_CALL(*idle_time_provider(), CalculateIdleTime())
-      .WillOnce(Return(base::TimeDelta::FromSeconds(0)));
+      .WillOnce(Return(base::Seconds(0)));
   EXPECT_CALL(*idle_time_provider(), CheckIdleStateIsLocked())
       .WillOnce(Return(false));
 
@@ -276,7 +276,7 @@
 
   // Simulates a user locking screen.
   EXPECT_CALL(*idle_time_provider(), CalculateIdleTime())
-      .WillOnce(Return(base::TimeDelta::FromSeconds(10)));
+      .WillOnce(Return(base::Seconds(10)));
   EXPECT_CALL(*idle_time_provider(), CheckIdleStateIsLocked())
       .WillOnce(Return(true));
 
@@ -285,7 +285,7 @@
 
   // Simulates a user going idle, while the screen is still locked.
   EXPECT_CALL(*idle_time_provider(), CalculateIdleTime())
-      .WillOnce(Return(base::TimeDelta::FromSeconds(70)));
+      .WillOnce(Return(base::Seconds(70)));
   EXPECT_CALL(*idle_time_provider(), CheckIdleStateIsLocked())
       .WillOnce(Return(true));
 
@@ -298,7 +298,7 @@
 
   // Initial state of the system.
   EXPECT_CALL(*idle_time_provider(), CalculateIdleTime())
-      .WillOnce(Return(base::TimeDelta::FromSeconds(0)));
+      .WillOnce(Return(base::Seconds(0)));
   EXPECT_CALL(*idle_time_provider(), CheckIdleStateIsLocked())
       .WillOnce(Return(false));
 
@@ -307,7 +307,7 @@
 
   // Simulates a user going idle, but with the screen still unlocked.
   EXPECT_CALL(*idle_time_provider(), CalculateIdleTime())
-      .WillOnce(Return(base::TimeDelta::FromSeconds(60)));
+      .WillOnce(Return(base::Seconds(60)));
   EXPECT_CALL(*idle_time_provider(), CheckIdleStateIsLocked())
       .WillOnce(Return(false));
 
@@ -318,7 +318,7 @@
   // idle (e.g. screensaver kicks in first, throwing idleness, then getting
   // locked).
   EXPECT_CALL(*idle_time_provider(), CalculateIdleTime())
-      .WillOnce(Return(base::TimeDelta::FromSeconds(60)));
+      .WillOnce(Return(base::Seconds(60)));
   EXPECT_CALL(*idle_time_provider(), CheckIdleStateIsLocked())
       .WillOnce(Return(true));
 
@@ -346,12 +346,12 @@
 
   // Initial state of the system.
   EXPECT_CALL(*idle_time_provider(), CalculateIdleTime())
-      .WillOnce(Return(base::TimeDelta::FromSeconds(90)));
+      .WillOnce(Return(base::Seconds(90)));
   EXPECT_CALL(*idle_time_provider(), CheckIdleStateIsLocked())
       .WillOnce(Return(false));
 
   EXPECT_EQ(
-      AddMonitorRequest(base::TimeDelta::FromSeconds(91)),
+      AddMonitorRequest(base::Seconds(91)),
       std::make_tuple(UserIdleState::kActive, ScreenIdleState::kUnlocked));
 }
 
@@ -366,7 +366,7 @@
   EXPECT_CALL(*idle_time_provider(), CalculateIdleTime()).Times(0);
   EXPECT_CALL(*idle_time_provider(), CheckIdleStateIsLocked()).Times(0);
 
-  service_remote_->AddMonitor(base::TimeDelta::FromSeconds(50),
+  service_remote_->AddMonitor(base::Seconds(50),
                               monitor_receiver.BindNewPipeAndPassRemote(),
                               base::NullCallback());
 
diff --git a/content/browser/idle/idle_polling_service.cc b/content/browser/idle/idle_polling_service.cc
index b8b8a314..d508092 100644
--- a/content/browser/idle/idle_polling_service.cc
+++ b/content/browser/idle/idle_polling_service.cc
@@ -11,7 +11,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kPollInterval = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kPollInterval = base::Seconds(1);
 
 // Default provider implementation. Everything is delegated to
 // ui::CalculateIdleTime and ui::CheckIdleStateIsLocked.
@@ -21,7 +21,7 @@
   ~DefaultIdleProvider() override = default;
 
   base::TimeDelta CalculateIdleTime() override {
-    return base::TimeDelta::FromSeconds(ui::CalculateIdleTime());
+    return base::Seconds(ui::CalculateIdleTime());
   }
 
   bool CheckIdleStateIsLocked() override {
diff --git a/content/browser/indexed_db/indexed_db_backing_store.cc b/content/browser/indexed_db/indexed_db_backing_store.cc
index 3fced1cd..21f0b61 100644
--- a/content/browser/indexed_db/indexed_db_backing_store.cc
+++ b/content/browser/indexed_db/indexed_db_backing_store.cc
@@ -388,7 +388,7 @@
           return false;
         ret.emplace_back(blob_number, type, file_name,
                          base::Time::FromDeltaSinceWindowsEpoch(
-                             base::TimeDelta::FromMicroseconds(last_modified)),
+                             base::Microseconds(last_modified)),
                          size);
         break;
       }
@@ -1723,7 +1723,7 @@
   base::TimeDelta delay =
       std::min(kInitialJournalCleaningWindowTime, time_until_max);
 
-  if (delay <= base::TimeDelta::FromSeconds(0)) {
+  if (delay <= base::Seconds(0)) {
     journal_cleaning_timer_.AbandonAndStop();
     CleanRecoveryJournalIgnoreReturn();
     return;
diff --git a/content/browser/indexed_db/indexed_db_backing_store.h b/content/browser/indexed_db/indexed_db_backing_store.h
index 7ec839cf..a5746ebf 100644
--- a/content/browser/indexed_db/indexed_db_backing_store.h
+++ b/content/browser/indexed_db/indexed_db_backing_store.h
@@ -378,10 +378,10 @@
   // Wait for a maximum of 5 seconds from the first call to the timer since the
   // last journal cleaning.
   static constexpr const base::TimeDelta kMaxJournalCleaningWindowTime =
-      base::TimeDelta::FromSeconds(5);
+      base::Seconds(5);
   // Default to a 2 second timer delay before we clean up blobs.
   static constexpr const base::TimeDelta kInitialJournalCleaningWindowTime =
-      base::TimeDelta::FromSeconds(2);
+      base::Seconds(2);
 
   IndexedDBBackingStore(
       Mode backing_store_mode,
diff --git a/content/browser/indexed_db/indexed_db_backing_store_unittest.cc b/content/browser/indexed_db/indexed_db_backing_store_unittest.cc
index be7a58f..fd6e73f 100644
--- a/content/browser/indexed_db/indexed_db_backing_store_unittest.cc
+++ b/content/browser/indexed_db/indexed_db_backing_store_unittest.cc
@@ -499,16 +499,14 @@
     // useful keys and values during tests
     if (IncludesBlobs()) {
       external_objects_.push_back(CreateBlobInfo(u"blob type", 1));
-      external_objects_.push_back(
-          CreateBlobInfo(u"file name", u"file type",
-                         base::Time::FromDeltaSinceWindowsEpoch(
-                             base::TimeDelta::FromMicroseconds(kTime1)),
-                         kBlobFileData1.size()));
-      external_objects_.push_back(
-          CreateBlobInfo(u"file name", u"file type",
-                         base::Time::FromDeltaSinceWindowsEpoch(
-                             base::TimeDelta::FromMicroseconds(kTime2)),
-                         kBlobFileData2.size()));
+      external_objects_.push_back(CreateBlobInfo(
+          u"file name", u"file type",
+          base::Time::FromDeltaSinceWindowsEpoch(base::Microseconds(kTime1)),
+          kBlobFileData1.size()));
+      external_objects_.push_back(CreateBlobInfo(
+          u"file name", u"file type",
+          base::Time::FromDeltaSinceWindowsEpoch(base::Microseconds(kTime2)),
+          kBlobFileData2.size()));
     }
     if (IncludesFileSystemAccessHandles()) {
       external_objects_.push_back(CreateFileSystemAccessHandle());
diff --git a/content/browser/indexed_db/indexed_db_factory_unittest.cc b/content/browser/indexed_db/indexed_db_factory_unittest.cc
index c288b4f..6b52616b 100644
--- a/content/browser/indexed_db/indexed_db_factory_unittest.cc
+++ b/content/browser/indexed_db/indexed_db_factory_unittest.cc
@@ -335,7 +335,7 @@
   EXPECT_EQ(IndexedDBStorageKeyState::ClosingState::kPreCloseGracePeriod,
             factory()->GetStorageKeyFactory(storage_key)->closing_stage());
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_environment()->FastForwardBy(base::Seconds(2));
 
   // The factory should be closed, as the pre close tasks are delayed.
   EXPECT_FALSE(factory()->GetStorageKeyFactory(storage_key));
diff --git a/content/browser/indexed_db/indexed_db_leveldb_operations.cc b/content/browser/indexed_db/indexed_db_leveldb_operations.cc
index b9e4ded..c0d9eaf 100644
--- a/content/browser/indexed_db/indexed_db_leveldb_operations.cc
+++ b/content/browser/indexed_db/indexed_db_leveldb_operations.cc
@@ -581,7 +581,7 @@
     time_micros = 0;
 
   DCHECK_GE(time_micros, 0);
-  *earliest_sweep += base::TimeDelta::FromMicroseconds(time_micros);
+  *earliest_sweep += base::Microseconds(time_micros);
 
   return s;
 }
@@ -616,7 +616,7 @@
     time_micros = 0;
 
   DCHECK_GE(time_micros, 0);
-  *earliest_compaction += base::TimeDelta::FromMicroseconds(time_micros);
+  *earliest_compaction += base::Microseconds(time_micros);
 
   return s;
 }
diff --git a/content/browser/indexed_db/indexed_db_pre_close_task_queue_unittest.cc b/content/browser/indexed_db/indexed_db_pre_close_task_queue_unittest.cc
index 6f46ba52..9a9ff97 100644
--- a/content/browser/indexed_db/indexed_db_pre_close_task_queue_unittest.cc
+++ b/content/browser/indexed_db/indexed_db_pre_close_task_queue_unittest.cc
@@ -27,7 +27,7 @@
 using StopReason = IndexedDBPreCloseTaskQueue::StopReason;
 
 namespace {
-constexpr base::TimeDelta kTestMaxRunTime = base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kTestMaxRunTime = base::Seconds(30);
 const std::u16string kDBName = u"TestDBName";
 constexpr int64_t kDBId = 1;
 constexpr int64_t kDBVersion = 2;
diff --git a/content/browser/indexed_db/indexed_db_storage_key_state.cc b/content/browser/indexed_db/indexed_db_storage_key_state.cc
index da2fc14b..b1280ec 100644
--- a/content/browser/indexed_db/indexed_db_storage_key_state.cc
+++ b/content/browser/indexed_db/indexed_db_storage_key_state.cc
@@ -45,13 +45,13 @@
 const int kTombstoneSweeperMaxIterations = 10 * 1000 * 1000;
 
 constexpr const base::TimeDelta kMinEarliestStorageKeySweepFromNow =
-    base::TimeDelta::FromDays(1);
+    base::Days(1);
 static_assert(kMinEarliestStorageKeySweepFromNow <
                   IndexedDBStorageKeyState::kMaxEarliestStorageKeySweepFromNow,
               "Min < Max");
 
 constexpr const base::TimeDelta kMinEarliestGlobalSweepFromNow =
-    base::TimeDelta::FromMinutes(5);
+    base::Minutes(5);
 static_assert(kMinEarliestGlobalSweepFromNow <
                   IndexedDBStorageKeyState::kMaxEarliestGlobalSweepFromNow,
               "Min < Max");
@@ -62,7 +62,7 @@
                    kMinEarliestStorageKeySweepFromNow.InMilliseconds();
   int64_t rand_millis = kMinEarliestStorageKeySweepFromNow.InMilliseconds() +
                         static_cast<int64_t>(base::RandGenerator(range));
-  return now + base::TimeDelta::FromMilliseconds(rand_millis);
+  return now + base::Milliseconds(rand_millis);
 }
 
 base::Time GenerateNextGlobalSweepTime(base::Time now) {
@@ -71,18 +71,18 @@
                    kMinEarliestGlobalSweepFromNow.InMilliseconds();
   int64_t rand_millis = kMinEarliestGlobalSweepFromNow.InMilliseconds() +
                         static_cast<int64_t>(base::RandGenerator(range));
-  return now + base::TimeDelta::FromMilliseconds(rand_millis);
+  return now + base::Milliseconds(rand_millis);
 }
 
 constexpr const base::TimeDelta kMinEarliestStorageKeyCompactionFromNow =
-    base::TimeDelta::FromDays(1);
+    base::Days(1);
 static_assert(
     kMinEarliestStorageKeyCompactionFromNow <
         IndexedDBStorageKeyState::kMaxEarliestStorageKeyCompactionFromNow,
     "Min < Max");
 
 constexpr const base::TimeDelta kMinEarliestGlobalCompactionFromNow =
-    base::TimeDelta::FromMinutes(5);
+    base::Minutes(5);
 static_assert(kMinEarliestGlobalCompactionFromNow <
                   IndexedDBStorageKeyState::kMaxEarliestGlobalCompactionFromNow,
               "Min < Max");
@@ -95,7 +95,7 @@
   int64_t rand_millis =
       kMinEarliestStorageKeyCompactionFromNow.InMilliseconds() +
       static_cast<int64_t>(base::RandGenerator(range));
-  return now + base::TimeDelta::FromMilliseconds(rand_millis);
+  return now + base::Milliseconds(rand_millis);
 }
 
 base::Time GenerateNextGlobalCompactionTime(base::Time now) {
@@ -104,7 +104,7 @@
                    kMinEarliestGlobalCompactionFromNow.InMilliseconds();
   int64_t rand_millis = kMinEarliestGlobalCompactionFromNow.InMilliseconds() +
                         static_cast<int64_t>(base::RandGenerator(range));
-  return now + base::TimeDelta::FromMilliseconds(rand_millis);
+  return now + base::Milliseconds(rand_millis);
 }
 
 }  // namespace
@@ -345,7 +345,7 @@
   DCHECK(!close_timer_.IsRunning());
   closing_stage_ = ClosingState::kPreCloseGracePeriod;
   close_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromSeconds(kBackingStoreGracePeriodSeconds),
+      FROM_HERE, base::Seconds(kBackingStoreGracePeriodSeconds),
       base::BindOnce(
           [](base::WeakPtr<IndexedDBStorageKeyState> factory) {
             if (!factory ||
@@ -390,7 +390,7 @@
   if (!tasks.empty()) {
     pre_close_task_queue_ = std::make_unique<IndexedDBPreCloseTaskQueue>(
         std::move(tasks), maybe_close_backing_store_runner.Release(),
-        base::TimeDelta::FromSeconds(kRunningPreCloseTasksMaxRunPeriodSeconds),
+        base::Seconds(kRunningPreCloseTasksMaxRunPeriodSeconds),
         std::make_unique<base::OneShotTimer>());
     pre_close_task_queue_->Start(
         base::BindOnce(&IndexedDBBackingStore::GetCompleteMetadata,
diff --git a/content/browser/indexed_db/indexed_db_storage_key_state.h b/content/browser/indexed_db/indexed_db_storage_key_state.h
index 2e208f4..8f06adfd 100644
--- a/content/browser/indexed_db/indexed_db_storage_key_state.h
+++ b/content/browser/indexed_db/indexed_db_storage_key_state.h
@@ -59,23 +59,23 @@
   // occurs after backing store close.
   // Visible for testing.
   static constexpr const base::TimeDelta kMaxEarliestGlobalSweepFromNow =
-      base::TimeDelta::FromHours(1);
+      base::Hours(1);
   // Maximum time interval between runs of the IndexedDBSweeper for a given
   // storage_key. Sweeping only occurs after backing store close.
   // Visible for testing.
   static constexpr const base::TimeDelta kMaxEarliestStorageKeySweepFromNow =
-      base::TimeDelta::FromDays(3);
+      base::Days(3);
 
   // Maximum time interval between runs of the IndexedDBCompactionTask.
   // Compaction only occurs after backing store close.
   // Visible for testing.
   static constexpr const base::TimeDelta kMaxEarliestGlobalCompactionFromNow =
-      base::TimeDelta::FromHours(1);
+      base::Hours(1);
   // Maximum time interval between runs of the IndexedDBCompactionTask for a
   // given storage_key. Compaction only occurs after backing store close.
   // Visible for testing.
   static constexpr const base::TimeDelta
-      kMaxEarliestStorageKeyCompactionFromNow = base::TimeDelta::FromDays(3);
+      kMaxEarliestStorageKeyCompactionFromNow = base::Days(3);
 
   enum class ClosingState {
     // IndexedDBStorageKeyState isn't closing.
diff --git a/content/browser/indexed_db/indexed_db_tombstone_sweeper_unittest.cc b/content/browser/indexed_db/indexed_db_tombstone_sweeper_unittest.cc
index 3624f3c..8aa1b64c 100644
--- a/content/browser/indexed_db/indexed_db_tombstone_sweeper_unittest.cc
+++ b/content/browser/indexed_db/indexed_db_tombstone_sweeper_unittest.cc
@@ -51,10 +51,8 @@
 
 constexpr int kRoundIterations = 11;
 constexpr int kMaxIterations = 100;
-const base::TimeTicks kTaskStartTime =
-    base::TimeTicks() + base::TimeDelta::FromSeconds(1);
-const base::TimeTicks kTaskEndTime =
-    base::TimeTicks() + base::TimeDelta::FromSeconds(2);
+const base::TimeTicks kTaskStartTime = base::TimeTicks() + base::Seconds(1);
+const base::TimeTicks kTaskEndTime = base::TimeTicks() + base::Seconds(2);
 
 constexpr int64_t kDb1 = 1;
 constexpr int64_t kDb2 = 1;
@@ -184,7 +182,7 @@
   void ExpectTaskTimeRecorded() {
     histogram_tester_.ExpectTimeBucketCount(
         "WebCore.IndexedDB.TombstoneSweeper.DeletionTotalTime.Complete",
-        base::TimeDelta::FromSeconds(1), 1);
+        base::Seconds(1), 1);
   }
 
   void ExpectIndexEntry(leveldb::MockIterator& iterator,
diff --git a/content/browser/indexed_db/indexed_db_transaction.cc b/content/browser/indexed_db/indexed_db_transaction.cc
index 48e47e74..f199a6e 100644
--- a/content/browser/indexed_db/indexed_db_transaction.cc
+++ b/content/browser/indexed_db/indexed_db_transaction.cc
@@ -543,7 +543,7 @@
 }
 
 base::TimeDelta IndexedDBTransaction::GetInactivityTimeout() const {
-  return base::TimeDelta::FromSeconds(kInactivityTimeoutPeriodSeconds);
+  return base::Seconds(kInactivityTimeoutPeriodSeconds);
 }
 
 void IndexedDBTransaction::Timeout() {
diff --git a/content/browser/indexed_db/mock_browsertest_indexed_db_class_factory.cc b/content/browser/indexed_db/mock_browsertest_indexed_db_class_factory.cc
index 06a754e..15b82bb 100644
--- a/content/browser/indexed_db/mock_browsertest_indexed_db_class_factory.cc
+++ b/content/browser/indexed_db/mock_browsertest_indexed_db_class_factory.cc
@@ -103,7 +103,7 @@
   // Browser tests run under memory/address sanitizers (etc) may trip the
   // default 60s timeout, so relax it during tests.
   base::TimeDelta GetInactivityTimeout() const override {
-    return base::TimeDelta::FromSeconds(60 * 60);
+    return base::Seconds(60 * 60);
   }
 };
 
diff --git a/content/browser/interest_group/ad_auction_service_impl.cc b/content/browser/interest_group/ad_auction_service_impl.cc
index 9a0cee0a..466feaa 100644
--- a/content/browser/interest_group/ad_auction_service_impl.cc
+++ b/content/browser/interest_group/ad_auction_service_impl.cc
@@ -43,7 +43,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kMaxExpiry = base::TimeDelta::FromDays(30);
+constexpr base::TimeDelta kMaxExpiry = base::Days(30);
 
 constexpr net::NetworkTrafficAnnotationTag kTrafficAnnotation =
     net::DefineNetworkTrafficAnnotation("auction_report_sender", R"(
diff --git a/content/browser/interest_group/auction_runner_unittest.cc b/content/browser/interest_group/auction_runner_unittest.cc
index f4fa4395..a21c6356 100644
--- a/content/browser/interest_group/auction_runner_unittest.cc
+++ b/content/browser/interest_group/auction_runner_unittest.cc
@@ -842,7 +842,7 @@
         // Add some time between interest group wins, so that they'll be added
         // to the database in the order they appear. Their times will *not*
         // match those in `prev_wins`.
-        task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+        task_environment_.FastForwardBy(base::Seconds(1));
       }
     }
 
@@ -2849,7 +2849,7 @@
           1,
           GURL("https://ad2.com"),
           absl::nullopt,
-          base::TimeDelta::FromMilliseconds(-1),
+          base::Milliseconds(-1),
       },
   };
 
diff --git a/content/browser/interest_group/interest_group_browsertest.cc b/content/browser/interest_group/interest_group_browsertest.cc
index 7f4e2ba..3dd385fc 100644
--- a/content/browser/interest_group/interest_group_browsertest.cc
+++ b/content/browser/interest_group/interest_group_browsertest.cc
@@ -592,7 +592,7 @@
   // to remove it.
   manager_->JoinInterestGroup(
       blink::InterestGroup(
-          /*expiry=*/base::Time::Now() + base::TimeDelta::FromSeconds(300),
+          /*expiry=*/base::Time::Now() + base::Seconds(300),
           /*owner=*/test_origin_d,
           /*name=*/"candy",
           /*bidding_url=*/absl::nullopt,
@@ -1203,7 +1203,7 @@
   // try to remove it.
   GURL disabled_domain = https_server_->GetURL("d.test", "/");
   blink::InterestGroup disabled_group;
-  disabled_group.expiry = base::Time::Now() + base::TimeDelta::FromSeconds(300);
+  disabled_group.expiry = base::Time::Now() + base::Seconds(300);
   disabled_group.owner = url::Origin::Create(disabled_domain);
   disabled_group.name = "candy";
   disabled_group.bidding_url = https_server_->GetURL(
@@ -2129,7 +2129,7 @@
 
   ASSERT_TRUE(JoinInterestGroupAndWaitInJs(
       blink::InterestGroup(
-          /*expiry=*/base::Time() + base::TimeDelta::FromSeconds(300),
+          /*expiry=*/base::Time() + base::Seconds(300),
           /*owner=*/url::Origin::Create(test_url.GetOrigin()),
           /*name=*/"cars",
           /*bidding_url=*/
@@ -2174,7 +2174,7 @@
 
   ASSERT_TRUE(JoinInterestGroupAndWaitInJs(
       blink::InterestGroup(
-          /*expiry=*/base::Time() + base::TimeDelta::FromSeconds(300),
+          /*expiry=*/base::Time() + base::Seconds(300),
           /*owner=*/url::Origin::Create(test_url_b.GetOrigin()),
           /*name=*/"boats",
           /*bidding_url=*/
@@ -2200,7 +2200,7 @@
 
   ASSERT_TRUE(JoinInterestGroupAndWaitInJs(
       blink::InterestGroup(
-          /*expiry=*/base::Time() + base::TimeDelta::FromSeconds(300),
+          /*expiry=*/base::Time() + base::Seconds(300),
           /*owner=*/url::Origin::Create(test_url.GetOrigin()),
           /*name=*/"cars",
           /*bidding_url=*/
@@ -2247,7 +2247,7 @@
 
   ASSERT_TRUE(JoinInterestGroupAndWaitInJs(
       blink::InterestGroup(
-          /*expiry=*/base::Time() + base::TimeDelta::FromSeconds(300),
+          /*expiry=*/base::Time() + base::Seconds(300),
           /*owner=*/url::Origin::Create(test_url.GetOrigin()),
           /*name=*/"cars",
           /*bidding_url=*/
@@ -2289,7 +2289,7 @@
 
   ASSERT_TRUE(JoinInterestGroupAndWaitInJs(
       blink::InterestGroup(
-          /*expiry=*/base::Time() + base::TimeDelta::FromSeconds(300),
+          /*expiry=*/base::Time() + base::Seconds(300),
           /*owner=*/url::Origin::Create(test_url.GetOrigin()),
           /*name=*/"cars",
           /*bidding_url=*/
@@ -2396,7 +2396,7 @@
 
   ASSERT_TRUE(JoinInterestGroupAndWaitInJs(
       blink::InterestGroup(
-          /*expiry=*/base::Time() + base::TimeDelta::FromSeconds(300),
+          /*expiry=*/base::Time() + base::Seconds(300),
           /*owner=*/url::Origin::Create(test_url.GetOrigin()),
           /*name=*/"cars",
           /*bidding_url=*/
@@ -2466,7 +2466,7 @@
 
   ASSERT_TRUE(JoinInterestGroupAndWaitInJs(
       blink::InterestGroup(
-          /*expiry=*/base::Time() + base::TimeDelta::FromSeconds(300),
+          /*expiry=*/base::Time() + base::Seconds(300),
           /*owner=*/url::Origin::Create(test_url.GetOrigin()),
           /*name=*/"cars",
           /*bidding_url=*/
@@ -2566,8 +2566,7 @@
 
     // Set up kAdUrl as the only interest group ad in the auction.
     blink::InterestGroup interest_group;
-    interest_group.expiry =
-        base::Time::Now() + base::TimeDelta::FromSeconds(300);
+    interest_group.expiry = base::Time::Now() + base::Seconds(300);
     constexpr char kGroupName[] = "cars";
     interest_group.name = kGroupName;
     interest_group.owner = test_origin_a_;
diff --git a/content/browser/interest_group/interest_group_storage.h b/content/browser/interest_group/interest_group_storage.h
index a76e3c70..0f1bbba2 100644
--- a/content/browser/interest_group/interest_group_storage.h
+++ b/content/browser/interest_group/interest_group_storage.h
@@ -32,20 +32,16 @@
 // within the same sequence.
 class CONTENT_EXPORT InterestGroupStorage {
  public:
-  static constexpr base::TimeDelta kHistoryLength =
-      base::TimeDelta::FromDays(30);
-  static constexpr base::TimeDelta kMaintenanceInterval =
-      base::TimeDelta::FromHours(1);
-  static constexpr base::TimeDelta kIdlePeriod =
-      base::TimeDelta::FromSeconds(30);
+  static constexpr base::TimeDelta kHistoryLength = base::Days(30);
+  static constexpr base::TimeDelta kMaintenanceInterval = base::Hours(1);
+  static constexpr base::TimeDelta kIdlePeriod = base::Seconds(30);
   // After a successful interest group update, delay the next update until
   // kUpdateSucceededBackoffPeriod time has passed.
   static constexpr base::TimeDelta kUpdateSucceededBackoffPeriod =
-      base::TimeDelta::FromDays(1);
+      base::Days(1);
   // After a failed interest group update, delay the next update until
   // kUpdateFailedBackoffPeriod time has passed.
-  static constexpr base::TimeDelta kUpdateFailedBackoffPeriod =
-      base::TimeDelta::FromHours(1);
+  static constexpr base::TimeDelta kUpdateFailedBackoffPeriod = base::Hours(1);
 
   // Constructs an interest group storage based on a SQLite database in the
   // `path`/InterestGroups file. If the path passed in is empty, then the
diff --git a/content/browser/interest_group/interest_group_storage_unittest.cc b/content/browser/interest_group/interest_group_storage_unittest.cc
index 6f1678b..d47ce1d 100644
--- a/content/browser/interest_group/interest_group_storage_unittest.cc
+++ b/content/browser/interest_group/interest_group_storage_unittest.cc
@@ -53,7 +53,7 @@
     InterestGroup result;
     result.owner = owner;
     result.name = name;
-    result.expiry = base::Time::Now() + base::TimeDelta::FromDays(30);
+    result.expiry = base::Time::Now() + base::Days(30);
     return result;
   }
 
@@ -231,7 +231,7 @@
   EXPECT_EQ(1, interest_groups[0].group->signals->bid_count);
 
   // Add the second win *after* the first so we can check ordering.
-  task_environment().FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment().FastForwardBy(base::Seconds(1));
   std::string ad2_json = "{url: '" + ad2_url.spec() + "'}";
   storage->RecordInterestGroupBid(test_origin, "example");
   storage->RecordInterestGroupWin(test_origin, "example", ad2_json);
@@ -265,7 +265,7 @@
   InterestGroup full;
   full.owner = full_origin;
   full.name = "full";
-  full.expiry = base::Time::Now() + base::TimeDelta::FromDays(30);
+  full.expiry = base::Time::Now() + base::Days(30);
   full.bidding_url = GURL("https://full.example.com/bid");
   full.update_url = GURL("https://full.example.com/update");
   full.trusted_bidding_signals_url = GURL("https://full.example.com/signals");
@@ -362,19 +362,19 @@
             original_maintenance_time);
 
   task_environment().FastForwardBy(InterestGroupStorage::kIdlePeriod -
-                                   base::TimeDelta::FromSeconds(1));
+                                   base::Seconds(1));
 
   //  Maintenance should not have run yet as we are not idle.
   EXPECT_EQ(storage->GetLastMaintenanceTimeForTesting(),
             original_maintenance_time);
 
-  task_environment().FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_environment().FastForwardBy(base::Seconds(2));
   // Verify that maintenance has run.
   EXPECT_EQ(storage->GetLastMaintenanceTimeForTesting(), next_maintenance_time);
   original_maintenance_time = storage->GetLastMaintenanceTimeForTesting();
 
   task_environment().FastForwardBy(InterestGroupStorage::kHistoryLength -
-                                   base::TimeDelta::FromDays(1));
+                                   base::Days(1));
   // Verify that maintenance has not run. It's been long enough, but we haven't
   // made any calls.
   EXPECT_EQ(storage->GetLastMaintenanceTimeForTesting(),
@@ -396,8 +396,7 @@
 
   // Advance past expiration and check that since DB maintenance last ran before
   // the expiration the outdated entries are present but not reported.
-  task_environment().FastForwardBy(base::TimeDelta::FromDays(1) +
-                                   base::TimeDelta::FromSeconds(1));
+  task_environment().FastForwardBy(base::Days(1) + base::Seconds(1));
 
   // Verify that maintenance has run.
   EXPECT_EQ(storage->GetLastMaintenanceTimeForTesting(), next_maintenance_time);
diff --git a/content/browser/interest_group/restricted_interest_group_store_impl_unittest.cc b/content/browser/interest_group/restricted_interest_group_store_impl_unittest.cc
index 655c0739..13e1371 100644
--- a/content/browser/interest_group/restricted_interest_group_store_impl_unittest.cc
+++ b/content/browser/interest_group/restricted_interest_group_store_impl_unittest.cc
@@ -304,8 +304,7 @@
   // URLs are nullopt.
   blink::InterestGroup CreateInterestGroup() {
     blink::InterestGroup interest_group;
-    interest_group.expiry =
-        base::Time::Now() + base::TimeDelta::FromSeconds(300);
+    interest_group.expiry = base::Time::Now() + base::Seconds(300);
     interest_group.name = kInterestGroupName;
     interest_group.owner = kOriginA;
     return interest_group;
@@ -1318,8 +1317,8 @@
   // has not. Time order:
   // (*NOW*, group expiration, db maintenance).
   const base::TimeDelta kExpiryDelta =
-      InterestGroupStorage::kIdlePeriod - base::TimeDelta::FromSeconds(2);
-  ASSERT_GT(kExpiryDelta, base::TimeDelta::FromSeconds(0));
+      InterestGroupStorage::kIdlePeriod - base::Seconds(2);
+  ASSERT_GT(kExpiryDelta, base::Seconds(0));
   blink::InterestGroup interest_group = CreateInterestGroup();
   interest_group.expiry = base::Time::Now() + kExpiryDelta;
   interest_group.update_url = kUrlA.Resolve(kDailyUpdateUrlPath);
@@ -1340,8 +1339,7 @@
   // Start an interest group update and then advance time to ensure the interest
   // group expires before a response is returned.
   UpdateInterestGroupNoFlush();
-  task_environment()->FastForwardBy(kExpiryDelta +
-                                    base::TimeDelta::FromSeconds(1));
+  task_environment()->FastForwardBy(kExpiryDelta + base::Seconds(1));
   task_environment()->RunUntilIdle();
   EXPECT_EQ(0, GetJoinCount(kOriginA, kInterestGroupName));
   EXPECT_EQ(0u, GetInterestGroupsForOwner(kOriginA).size());
@@ -1368,8 +1366,7 @@
   // bring it back -- also, advance past the rate limit window to ensure the
   // update actually happens.
   task_environment()->FastForwardBy(
-      InterestGroupStorage::kUpdateSucceededBackoffPeriod +
-      base::TimeDelta::FromSeconds(1));
+      InterestGroupStorage::kUpdateSucceededBackoffPeriod + base::Seconds(1));
   update_responder_->RegisterUpdateResponse(kDailyUpdateUrlPath,
                                             kServerResponse);
   UpdateInterestGroupNoFlush();
@@ -1402,8 +1399,8 @@
   // (*NOW*, group expiration, db maintenance).
   const base::Time now = base::Time::Now();
   const base::TimeDelta kExpiryDelta =
-      InterestGroupStorage::kIdlePeriod - base::TimeDelta::FromSeconds(1);
-  ASSERT_GT(kExpiryDelta, base::TimeDelta::FromSeconds(0));
+      InterestGroupStorage::kIdlePeriod - base::Seconds(1);
+  ASSERT_GT(kExpiryDelta, base::Seconds(0));
   const base::Time next_maintenance_time =
       now + InterestGroupStorage::kIdlePeriod;
   blink::InterestGroup interest_group = CreateInterestGroup();
@@ -1428,7 +1425,7 @@
   // is returned.
   UpdateInterestGroupNoFlush();
   task_environment()->FastForwardBy(InterestGroupStorage::kIdlePeriod +
-                                    base::TimeDelta::FromSeconds(1));
+                                    base::Seconds(1));
   task_environment()->RunUntilIdle();
   EXPECT_EQ(0, GetJoinCount(kOriginA, kInterestGroupName));
   EXPECT_EQ(0u, GetInterestGroupsForOwner(kOriginA).size());
@@ -1455,8 +1452,7 @@
   // bring it back -- also, advance past the rate limit window to ensure the
   // update actually happens.
   task_environment()->FastForwardBy(
-      InterestGroupStorage::kUpdateSucceededBackoffPeriod +
-      base::TimeDelta::FromSeconds(1));
+      InterestGroupStorage::kUpdateSucceededBackoffPeriod + base::Seconds(1));
   update_responder_->RegisterUpdateResponse(kDailyUpdateUrlPath,
                                             kServerResponse);
   UpdateInterestGroupNoFlush();
@@ -1595,7 +1591,7 @@
   blink::InterestGroup interest_group = CreateInterestGroup();
   // Set a long expiration delta so that we can advance to the next rate limit
   // period without the interest group expiring.
-  interest_group.expiry = base::Time::Now() + base::TimeDelta::FromDays(30);
+  interest_group.expiry = base::Time::Now() + base::Days(30);
   interest_group.update_url = kUrlA.Resolve(kDailyUpdateUrlPath);
   interest_group.ads.emplace();
   blink::InterestGroup::Ad ad;
@@ -1644,8 +1640,7 @@
   // Advance time to just before end of rate limit period. Update should still
   // do nothing due to rate limiting.
   task_environment()->FastForwardBy(
-      InterestGroupStorage::kUpdateSucceededBackoffPeriod -
-      base::TimeDelta::FromSeconds(1));
+      InterestGroupStorage::kUpdateSucceededBackoffPeriod - base::Seconds(1));
 
   UpdateInterestGroupNoFlush();
   task_environment()->RunUntilIdle();
@@ -1663,7 +1658,7 @@
 
   // Advance time to just after end of rate limit period. Update should now
   // succeed.
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_environment()->FastForwardBy(base::Seconds(2));
 
   UpdateInterestGroupNoFlush();
   task_environment()->RunUntilIdle();
@@ -1698,7 +1693,7 @@
   blink::InterestGroup interest_group = CreateInterestGroup();
   // Set a long expiration delta so that we can advance to the next rate limit
   // period without the interest group expiring.
-  interest_group.expiry = base::Time::Now() + base::TimeDelta::FromDays(30);
+  interest_group.expiry = base::Time::Now() + base::Days(30);
   interest_group.update_url = kUrlA.Resolve(kDailyUpdateUrlPath);
   interest_group.ads.emplace();
   blink::InterestGroup::Ad ad;
@@ -1750,8 +1745,7 @@
   // do nothing due to rate limiting. Invalid responses use the longer
   // "successful" backoff period.
   task_environment()->FastForwardBy(
-      InterestGroupStorage::kUpdateSucceededBackoffPeriod -
-      base::TimeDelta::FromSeconds(1));
+      InterestGroupStorage::kUpdateSucceededBackoffPeriod - base::Seconds(1));
 
   UpdateInterestGroupNoFlush();
   task_environment()->RunUntilIdle();
@@ -1770,7 +1764,7 @@
 
   // Advance time to just after end of rate limit period. Update should now
   // succeed.
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_environment()->FastForwardBy(base::Seconds(2));
 
   UpdateInterestGroupNoFlush();
   task_environment()->RunUntilIdle();
@@ -1803,7 +1797,7 @@
   blink::InterestGroup interest_group = CreateInterestGroup();
   // Set a long expiration delta so that we can advance to the next rate limit
   // period without the interest group expiring.
-  interest_group.expiry = base::Time::Now() + base::TimeDelta::FromDays(30);
+  interest_group.expiry = base::Time::Now() + base::Days(30);
   interest_group.update_url = kUrlA.Resolve(kDailyUpdateUrlPath);
   interest_group.ads.emplace();
   blink::InterestGroup::Ad ad;
@@ -1854,8 +1848,7 @@
   // Advance time to just before end of rate limit period. Update should still
   // do nothing due to rate limiting.
   task_environment()->FastForwardBy(
-      InterestGroupStorage::kUpdateFailedBackoffPeriod -
-      base::TimeDelta::FromSeconds(1));
+      InterestGroupStorage::kUpdateFailedBackoffPeriod - base::Seconds(1));
 
   UpdateInterestGroupNoFlush();
   task_environment()->RunUntilIdle();
@@ -1874,7 +1867,7 @@
 
   // Advance time to just after end of rate limit period. Update should now
   // succeed.
-  task_environment()->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_environment()->FastForwardBy(base::Seconds(2));
 
   UpdateInterestGroupNoFlush();
   task_environment()->RunUntilIdle();
@@ -1907,7 +1900,7 @@
   blink::InterestGroup interest_group = CreateInterestGroup();
   // Set a long expiration delta so that we can advance to the next rate limit
   // period without the interest group expiring.
-  interest_group.expiry = base::Time::Now() + base::TimeDelta::FromDays(30);
+  interest_group.expiry = base::Time::Now() + base::Days(30);
   interest_group.update_url = kUrlA.Resolve(kDailyUpdateUrlPath);
   interest_group.ads.emplace();
   blink::InterestGroup::Ad ad;
@@ -1970,7 +1963,7 @@
   blink::InterestGroup interest_group = CreateInterestGroup();
   // Set a long expiration delta so that we can advance to the next rate limit
   // period without the interest group expiring.
-  interest_group.expiry = base::Time::Now() + base::TimeDelta::FromDays(30);
+  interest_group.expiry = base::Time::Now() + base::Days(30);
   interest_group.update_url = kUrlA.Resolve(kDailyUpdateUrlPath);
   interest_group.ads.emplace();
   blink::InterestGroup::Ad ad;
diff --git a/content/browser/loader/navigation_url_loader_unittest.cc b/content/browser/loader/navigation_url_loader_unittest.cc
index b594e34..30a3baf 100644
--- a/content/browser/loader/navigation_url_loader_unittest.cc
+++ b/content/browser/loader/navigation_url_loader_unittest.cc
@@ -162,7 +162,7 @@
   GURL url = https_server.GetURL("/");
 
   // Set HSTS for the test domain in order to make SSL errors fatal.
-  base::Time expiry = base::Time::Now() + base::TimeDelta::FromDays(1000);
+  base::Time expiry = base::Time::Now() + base::Days(1000);
   bool include_subdomains = false;
   auto* storage_partition = browser_context_->GetDefaultStoragePartition();
   base::RunLoop run_loop;
diff --git a/content/browser/media/audible_metrics_unittest.cc b/content/browser/media/audible_metrics_unittest.cc
index c5205f2..c8d74dddd 100644
--- a/content/browser/media/audible_metrics_unittest.cc
+++ b/content/browser/media/audible_metrics_unittest.cc
@@ -36,7 +36,7 @@
 
     // Set the clock to a value different than 0 so the time it gives is
     // recognized as initialized.
-    clock_.Advance(base::TimeDelta::FromMilliseconds(1));
+    clock_.Advance(base::Milliseconds(1));
     audible_metrics_->SetClockForTest(&clock_);
   }
 
@@ -348,7 +348,7 @@
   audible_metrics()->UpdateAudibleWebContentsState(web_contents_0.get(), true);
   audible_metrics()->UpdateAudibleWebContentsState(web_contents_1.get(), true);
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(1000));
+  clock()->Advance(base::Milliseconds(1000));
 
   // No record because concurrent audible tabs still running.
   EXPECT_EQ(0, GetHistogramSamplesSinceTestStart(
@@ -381,11 +381,11 @@
   audible_metrics()->UpdateAudibleWebContentsState(web_contents_0.get(), true);
   audible_metrics()->UpdateAudibleWebContentsState(web_contents_1.get(), true);
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(1000));
+  clock()->Advance(base::Milliseconds(1000));
 
   audible_metrics()->UpdateAudibleWebContentsState(web_contents_2.get(), true);
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(500));
+  clock()->Advance(base::Milliseconds(500));
 
   // Mutes one of the three audible tabs.
   audible_metrics()->UpdateAudibleWebContentsState(web_contents_1.get(), false);
diff --git a/content/browser/media/audio_stream_monitor.cc b/content/browser/media/audio_stream_monitor.cc
index 0665bf0..b768def 100644
--- a/content/browser/media/audio_stream_monitor.cc
+++ b/content/browser/media/audio_stream_monitor.cc
@@ -232,8 +232,7 @@
 
 void AudioStreamMonitor::MaybeToggle() {
   const base::TimeTicks off_time =
-      last_became_silent_time_ +
-      base::TimeDelta::FromMilliseconds(kHoldOnMilliseconds);
+      last_became_silent_time_ + base::Milliseconds(kHoldOnMilliseconds);
   const base::TimeTicks now = clock_->NowTicks();
   const bool should_stop_timer = is_audible_ || now >= off_time;
   const bool should_indicator_be_on = is_audible_ || !should_stop_timer;
diff --git a/content/browser/media/audio_stream_monitor_unittest.cc b/content/browser/media/audio_stream_monitor_unittest.cc
index efaaaf49..f1eb446 100644
--- a/content/browser/media/audio_stream_monitor_unittest.cc
+++ b/content/browser/media/audio_stream_monitor_unittest.cc
@@ -51,7 +51,7 @@
  public:
   AudioStreamMonitorTest() {
     // Start |clock_| at non-zero.
-    clock_.Advance(base::TimeDelta::FromSeconds(1000000));
+    clock_.Advance(base::Seconds(1000000));
   }
 
   void SetUp() override {
@@ -125,13 +125,10 @@
   }
 
   // A small time step useful for testing the passage of time.
-  static base::TimeDelta one_time_step() {
-    return base::TimeDelta::FromSeconds(1) / 15;
-  }
+  static base::TimeDelta one_time_step() { return base::Seconds(1) / 15; }
 
   static base::TimeDelta holding_period() {
-    return base::TimeDelta::FromMilliseconds(
-        AudioStreamMonitor::kHoldOnMilliseconds);
+    return base::Milliseconds(AudioStreamMonitor::kHoldOnMilliseconds);
   }
 
   void StartMonitoring(int render_process_id,
diff --git a/content/browser/media/capture/aura_window_video_capture_device_browsertest.cc b/content/browser/media/capture/aura_window_video_capture_device_browsertest.cc
index 2eff036e..1eeb6c6 100644
--- a/content/browser/media/capture/aura_window_video_capture_device_browsertest.cc
+++ b/content/browser/media/capture/aura_window_video_capture_device_browsertest.cc
@@ -271,7 +271,7 @@
   ChangePageContentColor(SK_ColorGREEN);
   base::RunLoop run_loop;
   GetUIThreadTaskRunner({})->PostDelayedTask(FROM_HERE, run_loop.QuitClosure(),
-                                             base::TimeDelta::FromSeconds(5));
+                                             base::Seconds(5));
   run_loop.Run();
   EXPECT_FALSE(HasCapturedFramesInQueue());
 
diff --git a/content/browser/media/capture/content_capture_device_browsertest_base.cc b/content/browser/media/capture/content_capture_device_browsertest_base.cc
index 6f34743..1cb1439 100644
--- a/content/browser/media/capture/content_capture_device_browsertest_base.cc
+++ b/content/browser/media/capture/content_capture_device_browsertest_base.cc
@@ -103,7 +103,7 @@
 }
 
 base::TimeDelta ContentCaptureDeviceBrowserTestBase::GetMinCapturePeriod() {
-  return base::TimeDelta::FromMicroseconds(
+  return base::Microseconds(
       base::Time::kMicrosecondsPerSecond /
       device_->capture_params().requested_format.frame_rate);
 }
diff --git a/content/browser/media/capture/desktop_capture_device.cc b/content/browser/media/capture/desktop_capture_device.cc
index 01da3a8..a30e05a 100644
--- a/content/browser/media/capture/desktop_capture_device.cc
+++ b/content/browser/media/capture/desktop_capture_device.cc
@@ -249,11 +249,10 @@
 
   client_ = std::move(client);
   requested_frame_rate_ = params.requested_format.frame_rate;
-  requested_frame_duration_ =
-      base::TimeDelta::FromMicroseconds(static_cast<int64_t>(
-          static_cast<double>(base::Time::kMicrosecondsPerSecond) /
-              requested_frame_rate_ +
-          0.5 /* round to nearest int */));
+  requested_frame_duration_ = base::Microseconds(static_cast<int64_t>(
+      static_cast<double>(base::Time::kMicrosecondsPerSecond) /
+          requested_frame_rate_ +
+      0.5 /* round to nearest int */));
 
   // Pass the min/max resolution and fixed aspect ratio settings from |params|
   // to the CaptureResolutionChooser.
@@ -329,8 +328,7 @@
   }
   DCHECK(frame);
 
-  base::TimeDelta capture_time(
-      base::TimeDelta::FromMilliseconds(frame->capture_time_ms()));
+  base::TimeDelta capture_time(base::Milliseconds(frame->capture_time_ms()));
 
   // The two UMA_ blocks must be put in its own scope since it creates a static
   // variable which expected constant histogram name.
diff --git a/content/browser/media/capture/desktop_capture_device_mac.cc b/content/browser/media/capture/desktop_capture_device_mac.cc
index 56762f4..e68189a 100644
--- a/content/browser/media/capture/desktop_capture_device_mac.cc
+++ b/content/browser/media/capture/desktop_capture_device_mac.cc
@@ -164,7 +164,7 @@
     if (!min_frame_rate_enforcement_timer_) {
       min_frame_rate_enforcement_timer_ =
           std::make_unique<base::RepeatingTimer>(
-              FROM_HERE, base::TimeDelta::FromSecondsD(1 / min_frame_rate_),
+              FROM_HERE, base::Seconds(1 / min_frame_rate_),
               base::BindRepeating(
                   &DesktopCaptureDeviceMac::SendLastReceivedIOSurfaceToClient,
                   weak_factory_.GetWeakPtr()));
diff --git a/content/browser/media/capture/desktop_capture_device_unittest.cc b/content/browser/media/capture/desktop_capture_device_unittest.cc
index af2ad99..d678f575 100644
--- a/content/browser/media/capture/desktop_capture_device_unittest.cc
+++ b/content/browser/media/capture/desktop_capture_device_unittest.cc
@@ -53,8 +53,7 @@
 
 const int kFrameRate = 30;
 
-constexpr base::TimeDelta kVirtualTestDurationSeconds =
-    base::TimeDelta::FromSeconds(100);
+constexpr base::TimeDelta kVirtualTestDurationSeconds = base::Seconds(100);
 
 // The value of the padding bytes in unpacked frames.
 const uint8_t kFramePaddingValue = 0;
@@ -611,7 +610,7 @@
               // here in OnIncomingCapturedData is take into account for
               // the capture duration
               const base::TimeDelta device_capture_duration =
-                  base::TimeDelta::FromMicroseconds(static_cast<int64_t>(
+                  base::Microseconds(static_cast<int64_t>(
                       static_cast<double>(base::Time::kMicrosecondsPerSecond) /
                           kFrameRate +
                       0.5 /* round to nearest int */));
diff --git a/content/browser/media/capture/desktop_streams_registry_impl.cc b/content/browser/media/capture/desktop_streams_registry_impl.cc
index 7b00b61..497f0b16 100644
--- a/content/browser/media/capture/desktop_streams_registry_impl.cc
+++ b/content/browser/media/capture/desktop_streams_registry_impl.cc
@@ -70,7 +70,7 @@
       FROM_HERE,
       base::BindOnce(&DesktopStreamsRegistryImpl::CleanupStream,
                      base::Unretained(this), id),
-      base::TimeDelta::FromSeconds(kApprovedStreamTimeToLiveSeconds));
+      base::Seconds(kApprovedStreamTimeToLiveSeconds));
 
   return id;
 }
diff --git a/content/browser/media/capture/frame_sink_video_capture_device.cc b/content/browser/media/capture/frame_sink_video_capture_device.cc
index 9a3e526..cde36f51 100644
--- a/content/browser/media/capture/frame_sink_video_capture_device.cc
+++ b/content/browser/media/capture/frame_sink_video_capture_device.cc
@@ -112,7 +112,7 @@
   capturer_->SetFormat(capture_params_.requested_format.pixel_format,
                        gfx::ColorSpace::CreateREC709());
   capturer_->SetMinCapturePeriod(
-      base::TimeDelta::FromMicroseconds(base::saturated_cast<int64_t>(
+      base::Microseconds(base::saturated_cast<int64_t>(
           base::Time::kMicrosecondsPerSecond /
           capture_params_.requested_format.frame_rate)));
   const auto& constraints = capture_params_.SuggestConstraints();
diff --git a/content/browser/media/capture/frame_sink_video_capture_device_unittest.cc b/content/browser/media/capture/frame_sink_video_capture_device_unittest.cc
index 85539e4..ce998c9 100644
--- a/content/browser/media/capture/frame_sink_video_capture_device_unittest.cc
+++ b/content/browser/media/capture/frame_sink_video_capture_device_unittest.cc
@@ -71,8 +71,8 @@
 // Capture parameters.
 constexpr gfx::Size kResolution = gfx::Size(320, 180);
 constexpr int kMaxFrameRate = 25;  // It evenly divides 1 million usec.
-constexpr base::TimeDelta kMinCapturePeriod = base::TimeDelta::FromMicroseconds(
-    base::Time::kMicrosecondsPerSecond / kMaxFrameRate);
+constexpr base::TimeDelta kMinCapturePeriod =
+    base::Microseconds(base::Time::kMicrosecondsPerSecond / kMaxFrameRate);
 constexpr media::VideoPixelFormat kFormat = media::PIXEL_FORMAT_I420;
 
 // Video buffer parameters.
diff --git a/content/browser/media/capture/mouse_cursor_overlay_controller.h b/content/browser/media/capture/mouse_cursor_overlay_controller.h
index 96d0414..7f5e6fd8 100644
--- a/content/browser/media/capture/mouse_cursor_overlay_controller.h
+++ b/content/browser/media/capture/mouse_cursor_overlay_controller.h
@@ -173,8 +173,7 @@
 
   // Amount of time to elapse with no mouse activity before the cursor should
   // stop showing.
-  static constexpr base::TimeDelta kIdleTimeout =
-      base::TimeDelta::FromSeconds(2);
+  static constexpr base::TimeDelta kIdleTimeout = base::Seconds(2);
 };
 
 }  // namespace content
diff --git a/content/browser/media/capture/slow_window_capturer_chromeos.h b/content/browser/media/capture/slow_window_capturer_chromeos.h
index b32a5864..cecb10b 100644
--- a/content/browser/media/capture/slow_window_capturer_chromeos.h
+++ b/content/browser/media/capture/slow_window_capturer_chromeos.h
@@ -149,7 +149,7 @@
   // Enforce a very low maximum frame rate (5 FPS), due to the lack of
   // design optimizations. See top-level class comments.
   static constexpr base::TimeDelta kAbsoluteMinCapturePeriod =
-      base::TimeDelta::FromMilliseconds(200);
+      base::Milliseconds(200);
 
   // The maximum number of frames in-flight at any one time.
   static constexpr int kMaxFramesInFlight = 3;
diff --git a/content/browser/media/capture/web_contents_video_capture_device_browsertest.cc b/content/browser/media/capture/web_contents_video_capture_device_browsertest.cc
index 9432a26..cf96d1c 100644
--- a/content/browser/media/capture/web_contents_video_capture_device_browsertest.cc
+++ b/content/browser/media/capture/web_contents_video_capture_device_browsertest.cc
@@ -324,7 +324,7 @@
   ChangePageContentColor(SK_ColorGREEN);
   base::RunLoop run_loop;
   GetUIThreadTaskRunner({})->PostDelayedTask(FROM_HERE, run_loop.QuitClosure(),
-                                             base::TimeDelta::FromSeconds(5));
+                                             base::Seconds(5));
   run_loop.Run();
   EXPECT_FALSE(HasCapturedFramesInQueue());
 
diff --git a/content/browser/media/flinging_renderer_unittest.cc b/content/browser/media/flinging_renderer_unittest.cc
index b63e45e..053e6803 100644
--- a/content/browser/media/flinging_renderer_unittest.cc
+++ b/content/browser/media/flinging_renderer_unittest.cc
@@ -68,7 +68,7 @@
 };
 
 TEST_F(FlingingRendererTest, StartPlayingFromTime) {
-  base::TimeDelta seek_time = base::TimeDelta::FromSeconds(10);
+  base::TimeDelta seek_time = base::Seconds(10);
   EXPECT_CALL(*media_controller_, Seek(seek_time));
 
   renderer_->StartPlayingFrom(seek_time);
diff --git a/content/browser/media/media_interface_proxy.cc b/content/browser/media/media_interface_proxy.cc
index 53c0f98..88c47eb 100644
--- a/content/browser/media/media_interface_proxy.cc
+++ b/content/browser/media/media_interface_proxy.cc
@@ -101,8 +101,7 @@
 // The amount of time to allow the secondary Media Service instance to idle
 // before tearing it down. Only used if the Content embedder defines how to
 // launch a secondary Media Service instance.
-constexpr base::TimeDelta kSecondaryInstanceIdleTimeout =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kSecondaryInstanceIdleTimeout = base::Seconds(5);
 
 void MaybeLaunchSecondaryMediaService(
     mojo::Remote<media::mojom::MediaService>* remote) {
diff --git a/content/browser/media/service_factory.cc b/content/browser/media/service_factory.cc
index 95950f6..de456f1 100644
--- a/content/browser/media/service_factory.cc
+++ b/content/browser/media/service_factory.cc
@@ -98,7 +98,7 @@
 
 // How long an instance of the service is allowed to sit idle before we
 // disconnect and effectively kill it.
-constexpr auto kServiceIdleTimeout = base::TimeDelta::FromSeconds(5);
+constexpr auto kServiceIdleTimeout = base::Seconds(5);
 
 // Services are keyed on CDM type, user profile and site URL. Note that site
 // is not normal URL nor origin. See chrome/browser/site_isolation for details.
diff --git a/content/browser/media/session/audio_focus_delegate_android_browsertest.cc b/content/browser/media/session/audio_focus_delegate_android_browsertest.cc
index e2619b8e..26bd3e7 100644
--- a/content/browser/media/session/audio_focus_delegate_android_browsertest.cc
+++ b/content/browser/media/session/audio_focus_delegate_android_browsertest.cc
@@ -64,7 +64,7 @@
   {
     base::RunLoop run_loop;
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-        FROM_HERE, run_loop.QuitClosure(), base::TimeDelta::FromSeconds(1));
+        FROM_HERE, run_loop.QuitClosure(), base::Seconds(1));
     run_loop.Run();
   }
 }
diff --git a/content/browser/media/session/media_session_android.cc b/content/browser/media/session/media_session_android.cc
index 8ce73f1..2b28e5c 100644
--- a/content/browser/media/session/media_session_android.cc
+++ b/content/browser/media/session/media_session_android.cc
@@ -201,7 +201,7 @@
   DCHECK(media_session_);
   DCHECK_NE(millis, 0)
       << "Attempted to seek by a missing number of milliseconds";
-  media_session_->Seek(base::TimeDelta::FromMilliseconds(millis));
+  media_session_->Seek(base::Milliseconds(millis));
 }
 
 void MediaSessionAndroid::SeekTo(
@@ -210,7 +210,7 @@
     const jlong millis) {
   DCHECK(media_session_);
   DCHECK_GE(millis, 0) << "Attempted to seek to a negative position";
-  media_session_->SeekTo(base::TimeDelta::FromMilliseconds(millis));
+  media_session_->SeekTo(base::Milliseconds(millis));
 }
 
 void MediaSessionAndroid::DidReceiveAction(JNIEnv* env,
diff --git a/content/browser/media/session/media_session_controller_unittest.cc b/content/browser/media/session/media_session_controller_unittest.cc
index 75c92ab..7debe8b 100644
--- a/content/browser/media/session/media_session_controller_unittest.cc
+++ b/content/browser/media/session/media_session_controller_unittest.cc
@@ -328,13 +328,13 @@
   EXPECT_TRUE(ReceivedMessagePlay());
 
   // ...as well as the seek behavior.
-  const base::TimeDelta kTestSeekForwardTime = base::TimeDelta::FromSeconds(1);
+  const base::TimeDelta kTestSeekForwardTime = base::Seconds(1);
   SeekForward(kTestSeekForwardTime);
   EXPECT_TRUE(ReceivedMessageSeekForward(kTestSeekForwardTime));
-  const base::TimeDelta kTestSeekBackwardTime = base::TimeDelta::FromSeconds(2);
+  const base::TimeDelta kTestSeekBackwardTime = base::Seconds(2);
   SeekBackward(kTestSeekBackwardTime);
   EXPECT_TRUE(ReceivedMessageSeekBackward(kTestSeekBackwardTime));
-  const base::TimeDelta kTestSeekToTime = base::TimeDelta::FromSeconds(3);
+  const base::TimeDelta kTestSeekToTime = base::Seconds(3);
   SeekTo(kTestSeekToTime);
   EXPECT_TRUE(ReceivedMessageSeekTo(kTestSeekToTime));
 
@@ -407,7 +407,7 @@
 
 TEST_F(MediaSessionControllerTest, PositionState) {
   media_session::MediaPosition expected_position(
-      /*playback_rate=*/0.0, /*duration=*/base::TimeDelta::FromSeconds(10),
+      /*playback_rate=*/0.0, /*duration=*/base::Seconds(10),
       /*position=*/base::TimeDelta(), /*end_of_media=*/false);
 
   controller_->OnMediaPositionStateChanged(expected_position);
diff --git a/content/browser/media/session/media_session_controllers_manager_unittest.cc b/content/browser/media/session/media_session_controllers_manager_unittest.cc
index 192ee9e..f75ec7a 100644
--- a/content/browser/media/session/media_session_controllers_manager_unittest.cc
+++ b/content/browser/media/session/media_session_controllers_manager_unittest.cc
@@ -206,7 +206,7 @@
             *media_session());
 
     media_session::MediaPosition expected_position(
-        /*playback_rate=*/0.0, /*duration=*/base::TimeDelta::FromSeconds(10),
+        /*playback_rate=*/0.0, /*duration=*/base::Seconds(10),
         /*position=*/base::TimeDelta(), /*end_of_media=*/false);
 
     manager_->OnMediaPositionStateChanged(media_player_id_, expected_position);
@@ -241,7 +241,7 @@
       /*playback_rate=*/1.0, /*duration=*/base::TimeDelta(),
       /*position=*/base::TimeDelta(), /*end_of_media=*/false);
   media_session::MediaPosition expected_position2(
-      /*playback_rate=*/0.0, /*duration=*/base::TimeDelta::FromSeconds(10),
+      /*playback_rate=*/0.0, /*duration=*/base::Seconds(10),
       /*position=*/base::TimeDelta(), /*end_of_media=*/false);
 
   media_session::test::MockMediaSessionMojoObserver observer(*media_session());
@@ -260,7 +260,7 @@
 
   // Change the position of the second player.
   media_session::MediaPosition new_position(
-      /*playback_rate=*/0.0, /*duration=*/base::TimeDelta::FromSeconds(20),
+      /*playback_rate=*/0.0, /*duration=*/base::Seconds(20),
       /*position=*/base::TimeDelta(), /*end_of_media=*/false);
   manager_->OnMediaPositionStateChanged(media_player_id2_, new_position);
 
diff --git a/content/browser/media/session/media_session_impl.h b/content/browser/media/session/media_session_impl.h
index 731d8ad..e3a75ea5 100644
--- a/content/browser/media/session/media_session_impl.h
+++ b/content/browser/media/session/media_session_impl.h
@@ -467,8 +467,7 @@
   // between two updates is greater than 20 seconds.
   CONTENT_EXPORT static constexpr int kDurationUpdateMaxAllowance = 3;
   CONTENT_EXPORT static constexpr base::TimeDelta
-      kDurationUpdateAllowanceIncreaseInterval =
-          base::TimeDelta::FromSeconds(20);
+      kDurationUpdateAllowanceIncreaseInterval = base::Seconds(20);
 
   // A set of actions supported by |routed_service_| and the current media
   // session.
diff --git a/content/browser/media/session/media_session_impl_browsertest.cc b/content/browser/media/session/media_session_impl_browsertest.cc
index 0a2fea2..5bf4aa9 100644
--- a/content/browser/media/session/media_session_impl_browsertest.cc
+++ b/content/browser/media/session/media_session_impl_browsertest.cc
@@ -218,19 +218,13 @@
                                           : MediaSessionImpl::State::INACTIVE);
   }
 
-  void UISeekForward() {
-    media_session_->Seek(base::TimeDelta::FromSeconds(1));
-  }
+  void UISeekForward() { media_session_->Seek(base::Seconds(1)); }
 
-  void UISeekBackward() {
-    media_session_->Seek(base::TimeDelta::FromSeconds(-1));
-  }
+  void UISeekBackward() { media_session_->Seek(base::Seconds(-1)); }
 
-  void UISeekTo() { media_session_->SeekTo(base::TimeDelta::FromSeconds(10)); }
+  void UISeekTo() { media_session_->SeekTo(base::Seconds(10)); }
 
-  void UIScrubTo() {
-    media_session_->ScrubTo(base::TimeDelta::FromSeconds(10));
-  }
+  void UIScrubTo() { media_session_->ScrubTo(base::Seconds(10)); }
 
   void UISetAudioSink(const std::string& sink_id) {
     media_session_->SetAudioSinkId(sink_id);
@@ -2200,7 +2194,7 @@
   StartNewPlayer(player_observer.get());
   ResolveAudioFocusSuccess();
 
-  clock.Advance(base::TimeDelta::FromMilliseconds(1000));
+  clock.Advance(base::Milliseconds(1000));
   media_session_->Stop(MediaSession::SuspendType::kUI);
 
   std::unique_ptr<base::HistogramSamples> samples(
@@ -2223,14 +2217,14 @@
   StartNewPlayer(player_observer.get());
   ResolveAudioFocusSuccess();
 
-  clock.Advance(base::TimeDelta::FromMilliseconds(1000));
+  clock.Advance(base::Milliseconds(1000));
   UISuspend();
 
-  clock.Advance(base::TimeDelta::FromMilliseconds(2000));
+  clock.Advance(base::Milliseconds(2000));
   UIResume();
   ResolveAudioFocusSuccess();
 
-  clock.Advance(base::TimeDelta::FromMilliseconds(1000));
+  clock.Advance(base::Milliseconds(1000));
   media_session_->Stop(MediaSession::SuspendType::kUI);
 
   std::unique_ptr<base::HistogramSamples> samples(
@@ -2253,13 +2247,13 @@
   StartNewPlayer(player_observer.get());
   ResolveAudioFocusSuccess();
 
-  clock.Advance(base::TimeDelta::FromMilliseconds(1000));
+  clock.Advance(base::Milliseconds(1000));
   SystemSuspend(true);
 
-  clock.Advance(base::TimeDelta::FromMilliseconds(2000));
+  clock.Advance(base::Milliseconds(2000));
   SystemResume();
 
-  clock.Advance(base::TimeDelta::FromMilliseconds(1000));
+  clock.Advance(base::Milliseconds(1000));
   media_session_->Stop(MediaSession::SuspendType::kUI);
 
   std::unique_ptr<base::HistogramSamples> samples(
@@ -2281,7 +2275,7 @@
 
   StartNewPlayer(player_observer.get());
   ResolveAudioFocusSuccess();
-  clock.Advance(base::TimeDelta::FromMilliseconds(500));
+  clock.Advance(base::Milliseconds(500));
   SystemSuspend(true);
 
   {
@@ -2291,7 +2285,7 @@
   }
 
   SystemResume();
-  clock.Advance(base::TimeDelta::FromMilliseconds(5000));
+  clock.Advance(base::Milliseconds(5000));
   UISuspend();
 
   {
@@ -2314,13 +2308,13 @@
 
   StartNewPlayer(player_observer.get());
   ResolveAudioFocusSuccess();
-  clock.Advance(base::TimeDelta::FromMilliseconds(500));
+  clock.Advance(base::Milliseconds(500));
   SystemSuspend(true);
   media_session_->Stop(MediaSession::SuspendType::kUI);
 
   StartNewPlayer(player_observer.get());
   ResolveAudioFocusSuccess();
-  clock.Advance(base::TimeDelta::FromMilliseconds(5000));
+  clock.Advance(base::Milliseconds(5000));
   SystemResume();
   media_session_->Stop(MediaSession::SuspendType::kUI);
 
@@ -2344,12 +2338,12 @@
 
   StartNewPlayer(player_observer.get());
   ResolveAudioFocusSuccess();
-  clock.Advance(base::TimeDelta::FromMilliseconds(10000));
+  clock.Advance(base::Milliseconds(10000));
   RemovePlayer(player_observer.get(), 0);
 
   StartNewPlayer(player_observer.get());
   ResolveAudioFocusSuccess();
-  clock.Advance(base::TimeDelta::FromMilliseconds(1000));
+  clock.Advance(base::Milliseconds(1000));
   media_session_->Stop(MediaSession::SuspendType::kUI);
 
   std::unique_ptr<base::HistogramSamples> samples(
@@ -2843,7 +2837,7 @@
 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
                        PositionStateRouteWithTwoPlayers) {
   media_session::MediaPosition expected_position(
-      /*playback_rate=*/0.0, /*duration=*/base::TimeDelta::FromSeconds(10),
+      /*playback_rate=*/0.0, /*duration=*/base::Seconds(10),
       /*position=*/base::TimeDelta(), /*end_of_media=*/false);
 
   auto player_observer = std::make_unique<MockMediaSessionPlayerObserver>(
@@ -2878,7 +2872,7 @@
 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
                        PositionStateWithOneShotPlayer) {
   media_session::MediaPosition expected_position(
-      /*playback_rate=*/0.0, /*duration=*/base::TimeDelta::FromSeconds(10),
+      /*playback_rate=*/0.0, /*duration=*/base::Seconds(10),
       /*position=*/base::TimeDelta(), /*end_of_media=*/false);
 
   auto player_observer = std::make_unique<MockMediaSessionPlayerObserver>(
@@ -2895,7 +2889,7 @@
 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
                        PositionStateWithPepperPlayer) {
   media_session::MediaPosition expected_position(
-      /*playback_rate=*/0.0, /*duration=*/base::TimeDelta::FromSeconds(10),
+      /*playback_rate=*/0.0, /*duration=*/base::Seconds(10),
       /*position=*/base::TimeDelta(), /*end_of_media=*/false);
 
   auto player_observer = std::make_unique<MockMediaSessionPlayerObserver>(
@@ -2912,7 +2906,7 @@
 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
                        PositionStateRouteWithTwoPlayers_OneShot) {
   media_session::MediaPosition expected_position(
-      /*playback_rate=*/0.0, /*duration=*/base::TimeDelta::FromSeconds(10),
+      /*playback_rate=*/0.0, /*duration=*/base::Seconds(10),
       /*position=*/base::TimeDelta(), /*end_of_media=*/false);
 
   auto player_observer = std::make_unique<MockMediaSessionPlayerObserver>(
@@ -2939,7 +2933,7 @@
 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
                        PositionStateRouteWithTwoPlayers_Pepper) {
   media_session::MediaPosition expected_position(
-      /*playback_rate=*/0.0, /*duration=*/base::TimeDelta::FromSeconds(10),
+      /*playback_rate=*/0.0, /*duration=*/base::Seconds(10),
       /*position=*/base::TimeDelta(), /*end_of_media=*/false);
 
   auto player_observer = std::make_unique<MockMediaSessionPlayerObserver>(
@@ -2977,7 +2971,7 @@
                                               "/media/session/position.html")));
 
   auto* main_frame = shell()->web_contents()->GetMainFrame();
-  const base::TimeDelta duration = base::TimeDelta::FromMilliseconds(6060);
+  const base::TimeDelta duration = base::Milliseconds(6060);
 
   {
     // By default we should have an empty position.
@@ -3007,7 +3001,7 @@
     // has already progressed a bit.
     observer.WaitForExpectedPositionAtLeast(media_session::MediaPosition(
         /*playback_rate=*/1.0, duration,
-        /*position=*/base::TimeDelta::FromSeconds(1), /*end_of_media=*/false));
+        /*position=*/base::Seconds(1), /*end_of_media=*/false));
   }
 
   base::TimeDelta paused_position;
@@ -3021,7 +3015,7 @@
     paused_position =
         observer.WaitForExpectedPositionAtLeast(media_session::MediaPosition(
             /*playback_rate=*/0.0, duration,
-            /*position=*/base::TimeDelta::FromSeconds(1),
+            /*position=*/base::Seconds(1),
             /*end_of_media=*/false));
   }
 
diff --git a/content/browser/media/session/media_session_impl_service_routing_unittest.cc b/content/browser/media/session/media_session_impl_service_routing_unittest.cc
index b8633a5e..5b904642 100644
--- a/content/browser/media/session/media_session_impl_service_routing_unittest.cc
+++ b/content/browser/media/session/media_session_impl_service_routing_unittest.cc
@@ -35,7 +35,7 @@
 namespace {
 
 constexpr base::TimeDelta kDefaultSeekTime =
-    base::TimeDelta::FromSeconds(media_session::mojom::kDefaultSeekTimeSeconds);
+    base::Seconds(media_session::mojom::kDefaultSeekTimeSeconds);
 
 static const int kPlayerId = 0;
 
@@ -635,7 +635,7 @@
 
   CreateServiceForFrame(main_frame_);
 
-  base::TimeDelta seek_time = base::TimeDelta::FromSeconds(10);
+  base::TimeDelta seek_time = base::Seconds(10);
 
   EXPECT_CALL(*GetClientForFrame(main_frame_),
               DidReceiveAction(MediaSessionAction::kSeekTo, _))
@@ -660,7 +660,7 @@
 
   CreateServiceForFrame(main_frame_);
 
-  base::TimeDelta seek_time = base::TimeDelta::FromSeconds(10);
+  base::TimeDelta seek_time = base::Seconds(10);
 
   EXPECT_CALL(*GetClientForFrame(main_frame_),
               DidReceiveAction(MediaSessionAction::kSeekTo, _))
@@ -1013,7 +1013,7 @@
   StartPlayerForFrame(main_frame_);
 
   media_session::MediaPosition player_position(
-      /*playback_rate=*/0.0, /*duration=*/base::TimeDelta::FromSeconds(20),
+      /*playback_rate=*/0.0, /*duration=*/base::Seconds(20),
       /*position=*/base::TimeDelta(), /*end_of_media=*/false);
 
   media_session::test::MockMediaSessionMojoObserver observer(
@@ -1027,7 +1027,7 @@
   EXPECT_EQ(services_[main_frame_].get(), ComputeServiceForRouting());
 
   media_session::MediaPosition expected_position(
-      /*playback_rate=*/0.0, /*duration=*/base::TimeDelta::FromSeconds(10),
+      /*playback_rate=*/0.0, /*duration=*/base::Seconds(10),
       /*position=*/base::TimeDelta(), /*end_of_media=*/false);
 
   services_[main_frame_]->SetPositionState(expected_position);
@@ -1046,7 +1046,7 @@
   StartPlayerForFrame(main_frame_);
 
   media_session::MediaPosition player_position(
-      /*playback_rate=*/0.0, /*duration=*/base::TimeDelta::FromSeconds(20),
+      /*playback_rate=*/0.0, /*duration=*/base::Seconds(20),
       /*position=*/base::TimeDelta(), /*end_of_media=*/false);
 
   media_session::test::MockMediaSessionMojoObserver observer(
@@ -1060,7 +1060,7 @@
   EXPECT_EQ(services_[main_frame_].get(), ComputeServiceForRouting());
 
   media_session::MediaPosition expected_position(
-      /*playback_rate=*/0.0, /*duration=*/base::TimeDelta::FromSeconds(10),
+      /*playback_rate=*/0.0, /*duration=*/base::Seconds(10),
       /*position=*/base::TimeDelta(), /*end_of_media=*/false);
 
   services_[main_frame_]->SetPositionState(expected_position);
@@ -1210,7 +1210,7 @@
        ++duration) {
     media_session::MediaPosition expected_position(
         /*playback_rate=*/0.0,
-        /*duration=*/base::TimeDelta::FromSeconds(duration),
+        /*duration=*/base::Seconds(duration),
         /*position=*/base::TimeDelta(), /*end_of_media=*/false);
 
     services_[main_frame_]->SetPositionState(expected_position);
diff --git a/content/browser/media/session/media_session_impl_unittest.cc b/content/browser/media/session/media_session_impl_unittest.cc
index a4806a88..6dd4f26e 100644
--- a/content/browser/media/session/media_session_impl_unittest.cc
+++ b/content/browser/media/session/media_session_impl_unittest.cc
@@ -780,7 +780,7 @@
        ++duration) {
     pos = media_session::MediaPosition(
         /*playback_rate=*/0.0,
-        /*duration=*/base::TimeDelta::FromSeconds(duration),
+        /*duration=*/base::Seconds(duration),
         /*position=*/base::TimeDelta(), /*end_of_media=*/false);
 
     player_observer_->SetPosition(player_id, pos);
@@ -818,7 +818,7 @@
 
     pos = media_session::MediaPosition(
         /*playback_rate=*/0.0,
-        /*duration=*/base::TimeDelta::FromSeconds(duration),
+        /*duration=*/base::Seconds(duration),
         /*position=*/base::TimeDelta(), /*end_of_media=*/false);
 
     player_observer_->SetPosition(player_id, pos);
diff --git a/content/browser/media/session/media_session_impl_visibility_browsertest.cc b/content/browser/media/session/media_session_impl_visibility_browsertest.cc
index de008e03..4fa0090 100644
--- a/content/browser/media/session/media_session_impl_visibility_browsertest.cc
+++ b/content/browser/media/session/media_session_impl_visibility_browsertest.cc
@@ -137,7 +137,7 @@
         GetVisibilityTestData().session_state_after_hide;
 
     if (state_before_hide == state_after_hide) {
-      Wait(base::TimeDelta::FromSeconds(1));
+      Wait(base::Seconds(1));
       ASSERT_EQ(state_after_hide,
                 media_session_->GetMediaSessionInfoSync()->state);
     } else {
diff --git a/content/browser/media/session/media_session_uma_helper_unittest.cc b/content/browser/media/session/media_session_uma_helper_unittest.cc
index 51068f28..698e8b9 100644
--- a/content/browser/media/session/media_session_uma_helper_unittest.cc
+++ b/content/browser/media/session/media_session_uma_helper_unittest.cc
@@ -115,7 +115,7 @@
 
 TEST_F(MediaSessionUmaHelperTest, ActivationNotTerminatedDoesNotCommit) {
   media_session_uma_helper().OnSessionActive();
-  clock()->Advance(base::TimeDelta::FromMilliseconds(1000));
+  clock()->Advance(base::Milliseconds(1000));
 
   std::unique_ptr<base::HistogramSamples> samples(
       GetHistogramSamplesSinceTestStart("Media.Session.ActiveTime"));
@@ -125,7 +125,7 @@
 TEST_F(MediaSessionUmaHelperTest, SuspendActivationNotTerminatedDoesNotCommit) {
   media_session_uma_helper().OnSessionActive();
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(1000));
+  clock()->Advance(base::Milliseconds(1000));
   media_session_uma_helper().OnSessionSuspended();
 
   std::unique_ptr<base::HistogramSamples> samples(
@@ -136,7 +136,7 @@
 TEST_F(MediaSessionUmaHelperTest, FullActivation) {
   media_session_uma_helper().OnSessionActive();
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(1000));
+  clock()->Advance(base::Milliseconds(1000));
   media_session_uma_helper().OnSessionInactive();
 
   std::unique_ptr<base::HistogramSamples> samples(
@@ -148,13 +148,13 @@
 TEST_F(MediaSessionUmaHelperTest, ActivationCycleWithSuspend) {
   media_session_uma_helper().OnSessionActive();
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(1000));
+  clock()->Advance(base::Milliseconds(1000));
   media_session_uma_helper().OnSessionSuspended();
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(2000));
+  clock()->Advance(base::Milliseconds(2000));
   media_session_uma_helper().OnSessionActive();
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(1000));
+  clock()->Advance(base::Milliseconds(1000));
   media_session_uma_helper().OnSessionInactive();
 
   std::unique_ptr<base::HistogramSamples> samples(
@@ -166,19 +166,19 @@
 TEST_F(MediaSessionUmaHelperTest, ActivationCycleWithMultipleSuspend) {
   media_session_uma_helper().OnSessionActive();
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(1000));
+  clock()->Advance(base::Milliseconds(1000));
   media_session_uma_helper().OnSessionSuspended();
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(2000));
+  clock()->Advance(base::Milliseconds(2000));
   media_session_uma_helper().OnSessionActive();
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(1000));
+  clock()->Advance(base::Milliseconds(1000));
   media_session_uma_helper().OnSessionSuspended();
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(2000));
+  clock()->Advance(base::Milliseconds(2000));
   media_session_uma_helper().OnSessionActive();
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(1000));
+  clock()->Advance(base::Milliseconds(1000));
   media_session_uma_helper().OnSessionInactive();
 
   std::unique_ptr<base::HistogramSamples> samples(
@@ -190,30 +190,30 @@
 TEST_F(MediaSessionUmaHelperTest, MultipleActivations) {
   media_session_uma_helper().OnSessionActive();
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(1000));
+  clock()->Advance(base::Milliseconds(1000));
   media_session_uma_helper().OnSessionSuspended();
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(2000));
+  clock()->Advance(base::Milliseconds(2000));
   media_session_uma_helper().OnSessionActive();
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(1000));
+  clock()->Advance(base::Milliseconds(1000));
   media_session_uma_helper().OnSessionInactive();
 
   media_session_uma_helper().OnSessionActive();
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(1000));
+  clock()->Advance(base::Milliseconds(1000));
   media_session_uma_helper().OnSessionSuspended();
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(2000));
+  clock()->Advance(base::Milliseconds(2000));
   media_session_uma_helper().OnSessionActive();
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(1000));
+  clock()->Advance(base::Milliseconds(1000));
   media_session_uma_helper().OnSessionSuspended();
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(2000));
+  clock()->Advance(base::Milliseconds(2000));
   media_session_uma_helper().OnSessionActive();
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(1000));
+  clock()->Advance(base::Milliseconds(1000));
   media_session_uma_helper().OnSessionInactive();
 
   std::unique_ptr<base::HistogramSamples> samples(
@@ -226,13 +226,13 @@
 TEST_F(MediaSessionUmaHelperTest, MultipleActivationCalls) {
   media_session_uma_helper().OnSessionActive();
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(1000));
+  clock()->Advance(base::Milliseconds(1000));
   media_session_uma_helper().OnSessionActive();
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(2000));
+  clock()->Advance(base::Milliseconds(2000));
   media_session_uma_helper().OnSessionActive();
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(500));
+  clock()->Advance(base::Milliseconds(500));
   media_session_uma_helper().OnSessionInactive();
 
   // Calling OnSessionActive() multiple times reset the start time of the
@@ -246,13 +246,13 @@
 TEST_F(MediaSessionUmaHelperTest, MultipleSuspendCalls_WhileSuspended) {
   media_session_uma_helper().OnSessionActive();
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(1000));
+  clock()->Advance(base::Milliseconds(1000));
   media_session_uma_helper().OnSessionSuspended();
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(2000));
+  clock()->Advance(base::Milliseconds(2000));
   media_session_uma_helper().OnSessionSuspended();
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(500));
+  clock()->Advance(base::Milliseconds(500));
   media_session_uma_helper().OnSessionSuspended();
 
   media_session_uma_helper().OnSessionInactive();
@@ -268,13 +268,13 @@
 TEST_F(MediaSessionUmaHelperTest, MultipleSuspendCalls_WhileInactive) {
   media_session_uma_helper().OnSessionActive();
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(1000));
+  clock()->Advance(base::Milliseconds(1000));
   media_session_uma_helper().OnSessionInactive();
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(2000));
+  clock()->Advance(base::Milliseconds(2000));
   media_session_uma_helper().OnSessionSuspended();
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(500));
+  clock()->Advance(base::Milliseconds(500));
   media_session_uma_helper().OnSessionSuspended();
 
   media_session_uma_helper().OnSessionInactive();
@@ -290,13 +290,13 @@
 TEST_F(MediaSessionUmaHelperTest, MultipleInactiveCalls) {
   media_session_uma_helper().OnSessionActive();
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(3000));
+  clock()->Advance(base::Milliseconds(3000));
   media_session_uma_helper().OnSessionInactive();
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(2000));
+  clock()->Advance(base::Milliseconds(2000));
   media_session_uma_helper().OnSessionInactive();
 
-  clock()->Advance(base::TimeDelta::FromMilliseconds(500));
+  clock()->Advance(base::Milliseconds(500));
   media_session_uma_helper().OnSessionInactive();
 
   // If the session is already inactive, OnSessionInactive() calls are ignored.
diff --git a/content/browser/media/system_media_controls_notifier.cc b/content/browser/media/system_media_controls_notifier.cc
index 4f07d9f..73c2a53 100644
--- a/content/browser/media/system_media_controls_notifier.cc
+++ b/content/browser/media/system_media_controls_notifier.cc
@@ -31,11 +31,9 @@
 const int kDesiredImageSize = 150;
 
 #if defined(OS_WIN)
-constexpr base::TimeDelta kScreenLockPollInterval =
-    base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kScreenLockPollInterval = base::Seconds(1);
 constexpr int kHideSmtcDelaySeconds = 5;
-constexpr base::TimeDelta kHideSmtcDelay =
-    base::TimeDelta::FromSeconds(kHideSmtcDelaySeconds);
+constexpr base::TimeDelta kHideSmtcDelay = base::Seconds(kHideSmtcDelaySeconds);
 #endif  // defined(OS_WIN)
 
 SystemMediaControlsNotifier::SystemMediaControlsNotifier(
diff --git a/content/browser/media/webaudio/audio_context_manager_impl_unittest.cc b/content/browser/media/webaudio/audio_context_manager_impl_unittest.cc
index ee79917..b1ac4ba6 100644
--- a/content/browser/media/webaudio/audio_context_manager_impl_unittest.cc
+++ b/content/browser/media/webaudio/audio_context_manager_impl_unittest.cc
@@ -48,17 +48,17 @@
 TEST_F(AudioContextManagerImplTest, TimeBelow10SecondsIsRaw) {
   // Entry for 42 milliseconds.
   audio_context_manager()->AudioContextAudiblePlaybackStarted(0);
-  clock().Advance(base::TimeDelta::FromMilliseconds(42));
+  clock().Advance(base::Milliseconds(42));
   audio_context_manager()->AudioContextAudiblePlaybackStopped(0);
 
   // Entry for 4242 milliseconds.
   audio_context_manager()->AudioContextAudiblePlaybackStarted(0);
-  clock().Advance(base::TimeDelta::FromMilliseconds(4242));
+  clock().Advance(base::Milliseconds(4242));
   audio_context_manager()->AudioContextAudiblePlaybackStopped(0);
 
   // Entry for 9999 milliseconds.
   audio_context_manager()->AudioContextAudiblePlaybackStarted(0);
-  clock().Advance(base::TimeDelta::FromMilliseconds(9999));
+  clock().Advance(base::Milliseconds(9999));
   audio_context_manager()->AudioContextAudiblePlaybackStopped(0);
 
   auto ukm_entries = test_ukm_recorder().GetEntriesByName(UkmEntry::kEntryName);
@@ -74,22 +74,22 @@
 TEST_F(AudioContextManagerImplTest, TimeGreater10SecondsIsRoundedDown) {
   // Entry for 42 seconds.
   audio_context_manager()->AudioContextAudiblePlaybackStarted(0);
-  clock().Advance(base::TimeDelta::FromSeconds(42));
+  clock().Advance(base::Seconds(42));
   audio_context_manager()->AudioContextAudiblePlaybackStopped(0);
 
   // Entry for 42.42 seconds.
   audio_context_manager()->AudioContextAudiblePlaybackStarted(0);
-  clock().Advance(base::TimeDelta::FromSecondsD(42.42));
+  clock().Advance(base::Seconds(42.42));
   audio_context_manager()->AudioContextAudiblePlaybackStopped(0);
 
   // Entry for 10.01 seconds.
   audio_context_manager()->AudioContextAudiblePlaybackStarted(0);
-  clock().Advance(base::TimeDelta::FromSecondsD(10.01));
+  clock().Advance(base::Seconds(10.01));
   audio_context_manager()->AudioContextAudiblePlaybackStopped(0);
 
   // Entry for 10.99 seconds.
   audio_context_manager()->AudioContextAudiblePlaybackStarted(0);
-  clock().Advance(base::TimeDelta::FromSecondsD(10.99));
+  clock().Advance(base::Seconds(10.99));
   audio_context_manager()->AudioContextAudiblePlaybackStopped(0);
 
   auto ukm_entries = test_ukm_recorder().GetEntriesByName(UkmEntry::kEntryName);
diff --git a/content/browser/memory/swap_metrics_driver_impl_unittest.cc b/content/browser/memory/swap_metrics_driver_impl_unittest.cc
index 116b8fa..401c0ae9 100644
--- a/content/browser/memory/swap_metrics_driver_impl_unittest.cc
+++ b/content/browser/memory/swap_metrics_driver_impl_unittest.cc
@@ -105,7 +105,7 @@
 
 // The time delta between updates must non-zero for the delegate callbacks to be
 // invoked.
-constexpr base::TimeDelta kUpdateDelay = base::TimeDelta::FromMilliseconds(50);
+constexpr base::TimeDelta kUpdateDelay = base::Milliseconds(50);
 
 }  // namespace
 
@@ -156,7 +156,7 @@
 
 TEST_F(TestSwapMetricsDriver, TimerStartSuccess) {
   std::unique_ptr<SwapMetricsDriver> driver =
-      CreateDriver(base::TimeDelta::FromSeconds(60), false);
+      CreateDriver(base::Seconds(60), false);
   auto result = driver->Start();
   EXPECT_EQ(
       SwapMetricsDriver::SwapMetricsUpdateResult::kSwapMetricsUpdateSuccess,
@@ -165,7 +165,7 @@
 
 TEST_F(TestSwapMetricsDriver, TimerStartFail) {
   std::unique_ptr<SwapMetricsDriver> driver =
-      CreateDriver(base::TimeDelta::FromSeconds(60), true);
+      CreateDriver(base::Seconds(60), true);
   auto result = driver->Start();
   EXPECT_EQ(
       SwapMetricsDriver::SwapMetricsUpdateResult::kSwapMetricsUpdateFailed,
@@ -174,7 +174,7 @@
 
 TEST_F(TestSwapMetricsDriver, UpdateMetricsFail) {
   std::unique_ptr<SwapMetricsDriver> driver =
-      CreateDriver(base::TimeDelta::FromSeconds(60), true);
+      CreateDriver(base::Seconds(60), true);
   auto result = driver->InitializeMetrics();
   EXPECT_EQ(
       SwapMetricsDriver::SwapMetricsUpdateResult::kSwapMetricsUpdateFailed,
diff --git a/content/browser/metrics/histogram_synchronizer.cc b/content/browser/metrics/histogram_synchronizer.cc
index 657613c..0f3c1965 100644
--- a/content/browser/metrics/histogram_synchronizer.cc
+++ b/content/browser/metrics/histogram_synchronizer.cc
@@ -191,7 +191,7 @@
     return;
 
   current_synchronizer->RegisterAndNotifyAllProcesses(
-      HistogramSynchronizer::UNKNOWN, base::TimeDelta::FromMinutes(1));
+      HistogramSynchronizer::UNKNOWN, base::Minutes(1));
 }
 
 void FetchHistogramsAsynchronously(scoped_refptr<base::TaskRunner> task_runner,
diff --git a/content/browser/net/network_quality_observer_impl_unittest.cc b/content/browser/net/network_quality_observer_impl_unittest.cc
index 8a61c40..331fbb2 100644
--- a/content/browser/net/network_quality_observer_impl_unittest.cc
+++ b/content/browser/net/network_quality_observer_impl_unittest.cc
@@ -24,27 +24,27 @@
   NetworkQualityObserverImpl impl(&test_network_quality_tracker);
 
   test_network_quality_tracker.ReportRTTsAndThroughputForTesting(
-      base::TimeDelta::FromMilliseconds(1), 100);
+      base::Milliseconds(1), 100);
 
   base::RunLoop().RunUntilIdle();
 
   base::HistogramTester histogram_tester;
 
   test_network_quality_tracker.ReportRTTsAndThroughputForTesting(
-      base::TimeDelta::FromMilliseconds(500), 100);
+      base::Milliseconds(500), 100);
 
   // RTT changed from 1 msec to 500 msec.
   histogram_tester.ExpectBucketCount(
       "NQE.ContentObserver.NetworkQualityMeaningfullyChanged", 1, 1);
 
   test_network_quality_tracker.ReportRTTsAndThroughputForTesting(
-      base::TimeDelta::FromMilliseconds(625), 100);
+      base::Milliseconds(625), 100);
   // RTT changed from 500 msec to 625 msec.
   histogram_tester.ExpectBucketCount(
       "NQE.ContentObserver.NetworkQualityMeaningfullyChanged", 1, 2);
 
   test_network_quality_tracker.ReportRTTsAndThroughputForTesting(
-      base::TimeDelta::FromMilliseconds(626), 100);
+      base::Milliseconds(626), 100);
   // RTT changed from 625 msec to 626 msec which is not a meaningful change.
   histogram_tester.ExpectBucketCount(
       "NQE.ContentObserver.NetworkQualityMeaningfullyChanged", 1, 2);
diff --git a/content/browser/net_info_browsertest.cc b/content/browser/net_info_browsertest.cc
index 518c3070..040904e 100644
--- a/content/browser/net_info_browsertest.cc
+++ b/content/browser/net_info_browsertest.cc
@@ -42,8 +42,8 @@
   EXPECT_EQ(0, got_rtt_milliseconds % 50)
       << " got_rtt_milliseconds=" << got_rtt_milliseconds;
 
-  if (expected_rtt > base::TimeDelta::FromMilliseconds(3000))
-    expected_rtt = base::TimeDelta::FromMilliseconds(3000);
+  if (expected_rtt > base::Milliseconds(3000))
+    expected_rtt = base::Milliseconds(3000);
 
   // The difference between the actual and the estimate value should be within
   // 10%. Add 50 (bucket size used in Blink) to account for the cases when the
@@ -262,7 +262,7 @@
   base::HistogramTester histogram_tester;
   NetworkQualityObserverImpl impl(GetNetworkQualityTracker());
 
-  base::TimeDelta http_rtt(base::TimeDelta::FromMilliseconds(1000));
+  base::TimeDelta http_rtt(base::Milliseconds(1000));
   int32_t downstream_throughput_kbps = 300;
   GetNetworkQualityTracker()->ReportRTTsAndThroughputForTesting(
       http_rtt, downstream_throughput_kbps);
@@ -300,7 +300,7 @@
   base::HistogramTester histogram_tester;
   NetworkQualityObserverImpl impl(GetNetworkQualityTracker());
 
-  base::TimeDelta http_rtt(base::TimeDelta::FromMilliseconds(1000));
+  base::TimeDelta http_rtt(base::Milliseconds(1000));
   int32_t downstream_throughput_kbps = 300;
 
   GetNetworkQualityTracker()->ReportRTTsAndThroughputForTesting(
@@ -319,7 +319,7 @@
                      RunScriptExtractDouble("getDownlink()") * 1000);
 
   // Verify that the network quality change is accessible via Javascript API.
-  http_rtt = base::TimeDelta::FromSeconds(10);
+  http_rtt = base::Seconds(10);
   downstream_throughput_kbps = 3000;
   GetNetworkQualityTracker()->ReportRTTsAndThroughputForTesting(
       http_rtt, downstream_throughput_kbps);
@@ -336,7 +336,7 @@
   NetworkQualityObserverImpl impl(GetNetworkQualityTracker());
 
   // Verify that the network quality is rounded properly.
-  base::TimeDelta http_rtt(base::TimeDelta::FromMilliseconds(103));
+  base::TimeDelta http_rtt(base::Milliseconds(103));
   int32_t downstream_throughput_kbps = 8303;
   GetNetworkQualityTracker()->ReportRTTsAndThroughputForTesting(
       http_rtt, downstream_throughput_kbps);
@@ -348,7 +348,7 @@
   VerifyDownlinkKbps(downstream_throughput_kbps,
                      RunScriptExtractDouble("getDownlink()") * 1000);
 
-  http_rtt = base::TimeDelta::FromMilliseconds(1103);
+  http_rtt = base::Milliseconds(1103);
   downstream_throughput_kbps = 1307;
   GetNetworkQualityTracker()->ReportRTTsAndThroughputForTesting(
       http_rtt, downstream_throughput_kbps);
@@ -357,7 +357,7 @@
   VerifyDownlinkKbps(downstream_throughput_kbps,
                      RunScriptExtractDouble("getDownlink()") * 1000);
 
-  http_rtt = base::TimeDelta::FromMilliseconds(2112);
+  http_rtt = base::Milliseconds(2112);
   downstream_throughput_kbps = 2112;
   GetNetworkQualityTracker()->ReportRTTsAndThroughputForTesting(
       http_rtt, downstream_throughput_kbps);
@@ -373,7 +373,7 @@
   base::HistogramTester histogram_tester;
   NetworkQualityObserverImpl impl(GetNetworkQualityTracker());
 
-  base::TimeDelta http_rtt(base::TimeDelta::FromMilliseconds(12003));
+  base::TimeDelta http_rtt(base::Milliseconds(12003));
   int32_t downstream_throughput_kbps = 30300;
 
   GetNetworkQualityTracker()->ReportRTTsAndThroughputForTesting(
@@ -392,7 +392,7 @@
   base::HistogramTester histogram_tester;
   NetworkQualityObserverImpl impl(GetNetworkQualityTracker());
 
-  base::TimeDelta http_rtt(base::TimeDelta::FromMilliseconds(2000));
+  base::TimeDelta http_rtt(base::Milliseconds(2000));
   int32_t downstream_throughput_kbps = 3000;
 
   GetNetworkQualityTracker()->ReportRTTsAndThroughputForTesting(
@@ -452,7 +452,7 @@
   NetworkQualityObserverImpl impl(GetNetworkQualityTracker());
 
   // Verify that the network quality is rounded properly.
-  base::TimeDelta http_rtt(base::TimeDelta::FromMilliseconds(1123));
+  base::TimeDelta http_rtt(base::Milliseconds(1123));
   int32_t downstream_throughput_kbps = 1303;
   GetNetworkQualityTracker()->ReportRTTsAndThroughputForTesting(
       http_rtt, downstream_throughput_kbps);
@@ -466,24 +466,22 @@
 
   // All the 3 metrics change by less than 10%. So, the observers are not
   // notified.
-  http_rtt = base::TimeDelta::FromMilliseconds(1223);
+  http_rtt = base::Milliseconds(1223);
   downstream_throughput_kbps = 1403;
   GetNetworkQualityTracker()->ReportRTTsAndThroughputForTesting(
       http_rtt, downstream_throughput_kbps);
   base::RunLoop().RunUntilIdle();
-  VerifyRtt(base::TimeDelta::FromMilliseconds(1100),
-            RunScriptExtractInt("getRtt()"));
+  VerifyRtt(base::Milliseconds(1100), RunScriptExtractInt("getRtt()"));
   VerifyDownlinkKbps(1300, RunScriptExtractDouble("getDownlink()") * 1000);
 
   // HTTP RTT has changed by more than 10% from the last notified value of
   // |network_quality_1|. The observers should be notified.
-  http_rtt = base::TimeDelta::FromMilliseconds(2223);
+  http_rtt = base::Milliseconds(2223);
   downstream_throughput_kbps = 1403;
   GetNetworkQualityTracker()->ReportRTTsAndThroughputForTesting(
       http_rtt, downstream_throughput_kbps);
   base::RunLoop().RunUntilIdle();
-  VerifyRtt(base::TimeDelta::FromMilliseconds(2200),
-            RunScriptExtractInt("getRtt()"));
+  VerifyRtt(base::Milliseconds(2200), RunScriptExtractInt("getRtt()"));
   VerifyDownlinkKbps(1400, RunScriptExtractDouble("getDownlink()") * 1000);
 }
 
diff --git a/content/browser/network_service_browsertest.cc b/content/browser/network_service_browsertest.cc
index 280a740..e9ea8c9 100644
--- a/content/browser/network_service_browsertest.cc
+++ b/content/browser/network_service_browsertest.cc
@@ -84,10 +84,10 @@
     const mojo::Remote<network::mojom::CookieManager>& cookie_manager) {
   base::Time t = base::Time::Now();
   auto cookie = net::CanonicalCookie::CreateUnsafeCookieForTesting(
-      kCookieName, kCookieValue, "example.test", "/", t,
-      t + base::TimeDelta::FromDays(1), base::Time(), true /* secure */,
-      false /* http-only*/, net::CookieSameSite::NO_RESTRICTION,
-      net::COOKIE_PRIORITY_DEFAULT, false /* same_party */);
+      kCookieName, kCookieValue, "example.test", "/", t, t + base::Days(1),
+      base::Time(), true /* secure */, false /* http-only*/,
+      net::CookieSameSite::NO_RESTRICTION, net::COOKIE_PRIORITY_DEFAULT,
+      false /* same_party */);
   base::RunLoop run_loop;
   cookie_manager->SetCanonicalCookie(
       *cookie, net::cookie_util::SimulatedCookieSource(*cookie, "https"),
diff --git a/content/browser/notifications/blink_notification_service_impl_unittest.cc b/content/browser/notifications/blink_notification_service_impl_unittest.cc
index 153bd2b6..e1fe936d 100644
--- a/content/browser/notifications/blink_notification_service_impl_unittest.cc
+++ b/content/browser/notifications/blink_notification_service_impl_unittest.cc
@@ -778,7 +778,7 @@
   scoped_refptr<ServiceWorkerRegistration> registration;
   RegisterServiceWorker(&registration);
 
-  base::Time timestamp = base::Time::Now() + base::TimeDelta::FromSeconds(10);
+  base::Time timestamp = base::Time::Now() + base::Seconds(10);
   blink::PlatformNotificationData platform_notification_data;
   platform_notification_data.tag = "tagA";
   platform_notification_data.show_trigger_timestamp = timestamp;
@@ -818,7 +818,7 @@
   scoped_refptr<ServiceWorkerRegistration> registration;
   RegisterServiceWorker(&registration);
 
-  base::Time timestamp = base::Time::Now() + base::TimeDelta::FromSeconds(10);
+  base::Time timestamp = base::Time::Now() + base::Seconds(10);
   blink::PlatformNotificationData scheduled_notification_data;
   scheduled_notification_data.tag = "tagA";
   scheduled_notification_data.show_trigger_timestamp = timestamp;
@@ -869,7 +869,7 @@
   scoped_refptr<ServiceWorkerRegistration> registration;
   RegisterServiceWorker(&registration);
 
-  base::Time timestamp = base::Time::Now() + base::TimeDelta::FromSeconds(10);
+  base::Time timestamp = base::Time::Now() + base::Seconds(10);
   blink::PlatformNotificationData scheduled_notification_data;
   scheduled_notification_data.show_trigger_timestamp = timestamp;
   blink::NotificationResources resources;
@@ -896,7 +896,7 @@
 
   base::Time timestamp = base::Time::Now() +
                          blink::kMaxNotificationShowTriggerDelay +
-                         base::TimeDelta::FromDays(1);
+                         base::Days(1);
 
   blink::PlatformNotificationData scheduled_notification_data;
   scheduled_notification_data.show_trigger_timestamp = timestamp;
diff --git a/content/browser/notifications/notification_database_conversions.cc b/content/browser/notifications/notification_database_conversions.cc
index 85e19bc..d562057 100644
--- a/content/browser/notifications/notification_database_conversions.cc
+++ b/content/browser/notifications/notification_database_conversions.cc
@@ -63,23 +63,23 @@
   output->num_clicks = message.num_clicks();
   output->num_action_button_clicks = message.num_action_button_clicks();
   output->creation_time_millis = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(message.creation_time_millis()));
+      base::Microseconds(message.creation_time_millis()));
 
   if (message.has_time_until_close_millis()) {
     output->time_until_close_millis =
-        base::TimeDelta::FromMilliseconds(message.time_until_close_millis());
+        base::Milliseconds(message.time_until_close_millis());
   } else {
     output->time_until_close_millis = absl::nullopt;
   }
   if (message.has_time_until_first_click_millis()) {
-    output->time_until_first_click_millis = base::TimeDelta::FromMilliseconds(
-        message.time_until_first_click_millis());
+    output->time_until_first_click_millis =
+        base::Milliseconds(message.time_until_first_click_millis());
   } else {
     output->time_until_first_click_millis = absl::nullopt;
   }
   if (message.has_time_until_last_click_millis()) {
-    output->time_until_last_click_millis = base::TimeDelta::FromMilliseconds(
-        message.time_until_last_click_millis());
+    output->time_until_last_click_millis =
+        base::Milliseconds(message.time_until_last_click_millis());
   } else {
     output->time_until_last_click_millis = absl::nullopt;
   }
@@ -132,7 +132,7 @@
   }
 
   notification_data->timestamp = base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(payload.timestamp()));
+      base::Microseconds(payload.timestamp()));
 
   notification_data->renotify = payload.renotify();
   notification_data->silent = payload.silent();
@@ -173,8 +173,7 @@
   if (payload.has_show_trigger_timestamp()) {
     notification_data->show_trigger_timestamp =
         base::Time::FromDeltaSinceWindowsEpoch(
-            base::TimeDelta::FromMicroseconds(
-                payload.show_trigger_timestamp()));
+            base::Microseconds(payload.show_trigger_timestamp()));
   } else {
     notification_data->show_trigger_timestamp = absl::nullopt;
   }
diff --git a/content/browser/notifications/notification_database_conversions_unittest.cc b/content/browser/notifications/notification_database_conversions_unittest.cc
index d70be51..8813e51 100644
--- a/content/browser/notifications/notification_database_conversions_unittest.cc
+++ b/content/browser/notifications/notification_database_conversions_unittest.cc
@@ -109,11 +109,11 @@
   database_data.num_action_button_clicks = kNumActionButtonClicks;
   database_data.creation_time_millis = base::Time::FromDoubleT(kInitTimeMillis);
   database_data.time_until_first_click_millis =
-      base::TimeDelta::FromMilliseconds(kTimeUntilFirstClickMillis);
+      base::Milliseconds(kTimeUntilFirstClickMillis);
   database_data.time_until_last_click_millis =
-      base::TimeDelta::FromMilliseconds(kTimeUntilLastClickMillis);
+      base::Milliseconds(kTimeUntilLastClickMillis);
   database_data.time_until_close_millis =
-      base::TimeDelta::FromMilliseconds(kTimeUntilCloseMillis);
+      base::Milliseconds(kTimeUntilCloseMillis);
   database_data.closed_reason = NotificationDatabaseData::ClosedReason::USER;
   database_data.has_triggered = kHasTriggered;
   database_data.is_shown_by_browser = true;
@@ -348,11 +348,9 @@
   NotificationDatabaseData data_without_fields;
   NotificationDatabaseData data_with_fields;
 
-  data_with_fields.time_until_close_millis = base::TimeDelta::FromSeconds(1);
-  data_with_fields.time_until_first_click_millis =
-      base::TimeDelta::FromSeconds(2);
-  data_with_fields.time_until_last_click_millis =
-      base::TimeDelta::FromSeconds(3);
+  data_with_fields.time_until_close_millis = base::Seconds(1);
+  data_with_fields.time_until_first_click_millis = base::Seconds(2);
+  data_with_fields.time_until_last_click_millis = base::Seconds(3);
   data_with_fields.notification_resources = blink::NotificationResources();
 
   std::string serialized_data;
@@ -365,11 +363,10 @@
   ASSERT_TRUE(DeserializeNotificationDatabaseData(serialized_data,
                                                   &copied_database_data));
 
-  EXPECT_EQ(base::TimeDelta::FromSeconds(1),
-            copied_database_data.time_until_close_millis);
-  EXPECT_EQ(base::TimeDelta::FromSeconds(2),
+  EXPECT_EQ(base::Seconds(1), copied_database_data.time_until_close_millis);
+  EXPECT_EQ(base::Seconds(2),
             copied_database_data.time_until_first_click_millis);
-  EXPECT_EQ(base::TimeDelta::FromSeconds(3),
+  EXPECT_EQ(base::Seconds(3),
             copied_database_data.time_until_last_click_millis);
   EXPECT_FALSE(copied_database_data.notification_resources.has_value());
 
diff --git a/content/browser/notifications/platform_notification_context_impl.cc b/content/browser/notifications/platform_notification_context_impl.cc
index 32f66cf..883cfb8 100644
--- a/content/browser/notifications/platform_notification_context_impl.cc
+++ b/content/browser/notifications/platform_notification_context_impl.cc
@@ -40,8 +40,7 @@
 
 // Max age of a displayed notification before we consider it stale and remove it
 // from the database and ask the platform to close it.
-constexpr base::TimeDelta kMaxDisplayedNotificationAge =
-    base::TimeDelta::FromDays(7);
+constexpr base::TimeDelta kMaxDisplayedNotificationAge = base::Days(7);
 
 // Checks if this notification can trigger in the future.
 bool CanTrigger(const NotificationDatabaseData& data) {
@@ -70,7 +69,7 @@
 
   base::UmaHistogramCustomCounts(
       "Notifications.Database.OldestNotificationTimeInMinutes",
-      delta.InMinutes(), 0, base::TimeDelta::FromDays(150).InMinutes(), 50);
+      delta.InMinutes(), 0, base::Days(150).InMinutes(), 50);
 }
 
 // Returns if the notification described by |data| is currently visible.
diff --git a/content/browser/notifications/platform_notification_context_unittest.cc b/content/browser/notifications/platform_notification_context_unittest.cc
index 9209c11..78b17a1b 100644
--- a/content/browser/notifications/platform_notification_context_unittest.cc
+++ b/content/browser/notifications/platform_notification_context_unittest.cc
@@ -807,7 +807,7 @@
 
   // Let some time pass so the stored notification is not considered new anymore
   // and gets deleted in the next synchronize pass.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
 
   // Delete the notification from the display service without removing it from
   // the database. It should automatically synchronize on the next read.
@@ -847,7 +847,7 @@
   WriteNotificationDataSync(context.get(), origin, data);
 
   // Let some time pass but not enough to delete the notification yet.
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(5));
+  task_environment_.FastForwardBy(base::Days(5));
   context->TriggerNotifications();
   // Allow for closing notifications on the UI thread.
   base::RunLoop().RunUntilIdle();
@@ -864,7 +864,7 @@
 
   // Let some more time pass so the first notification is not considered new
   // anymore and should get closed while the second one should stay.
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(2));
+  task_environment_.FastForwardBy(base::Days(2));
   context->TriggerNotifications();
   // Allow for closing notifications on the UI thread.
   base::RunLoop().RunUntilIdle();
@@ -957,7 +957,7 @@
   NotificationDatabaseData data1;
   data1.notification_resources = blink::NotificationResources();
   data1.notification_data.show_trigger_timestamp =
-      base::Time::Now() + base::TimeDelta::FromDays(10);
+      base::Time::Now() + base::Days(10);
   WriteNotificationDataSync(context.get(), origin, data1);
   // 1 notification with stored resources.
   NotificationDatabaseData data2;
@@ -1020,7 +1020,7 @@
       WriteNotificationDataSync(context.get(), origin, data);
   // Scheduled notification won't be visible.
   data.notification_data.show_trigger_timestamp =
-      base::Time::Now() + base::TimeDelta::FromDays(10);
+      base::Time::Now() + base::Days(10);
   WriteNotificationDataSync(context.get(), origin, data);
 
   // Expect to see three notifications.
@@ -1153,7 +1153,7 @@
 
     // This is done to simulate a change in time to have notifications from
     // different times and days.
-    task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+    task_environment_.FastForwardBy(base::Days(1));
   }
 
   // Verify that the 5 notifications are present.
diff --git a/content/browser/portal/portal_navigation_throttle_browsertest.cc b/content/browser/portal/portal_navigation_throttle_browsertest.cc
index 5b0f86e..134fefe 100644
--- a/content/browser/portal/portal_navigation_throttle_browsertest.cc
+++ b/content/browser/portal/portal_navigation_throttle_browsertest.cc
@@ -376,7 +376,7 @@
     console_observer.Wait();
     EXPECT_THAT(console_observer.GetMessageAt(0u),
                 ::testing::HasSubstr("data"));
-    SleepWithRunLoop(base::TimeDelta::FromSeconds(3), FROM_HERE);
+    SleepWithRunLoop(base::Seconds(3), FROM_HERE);
     EXPECT_EQ(portal->GetPortalContents()->GetLastCommittedURL(), referrer_url);
   }
 
@@ -387,7 +387,7 @@
                        "location.href = 'ftp://user:pass@example.com/';"));
     console_observer.Wait();
     EXPECT_THAT(console_observer.GetMessageAt(0u), ::testing::HasSubstr("ftp"));
-    SleepWithRunLoop(base::TimeDelta::FromSeconds(3), FROM_HERE);
+    SleepWithRunLoop(base::Seconds(3), FROM_HERE);
     EXPECT_EQ(portal->GetPortalContents()->GetLastCommittedURL(), referrer_url);
   }
 }
diff --git a/content/browser/prerender/prerender_browsertest.cc b/content/browser/prerender/prerender_browsertest.cc
index c2d625c..37a6b9e 100644
--- a/content/browser/prerender/prerender_browsertest.cc
+++ b/content/browser/prerender/prerender_browsertest.cc
@@ -3467,7 +3467,7 @@
   const GURL kPrerenderingUrl = GetUrl("/simple_page.html");
 
   web_contents_impl()->set_minimum_delay_between_loading_updates_for_testing(
-      base::TimeDelta::FromMilliseconds(0));
+      base::Milliseconds(0));
 
   // Navigate to an initial page.
   ASSERT_TRUE(NavigateToURL(shell(), kInitialUrl));
diff --git a/content/browser/prerender/prerender_host_unittest.cc b/content/browser/prerender/prerender_host_unittest.cc
index 91b6c94..94d5538 100644
--- a/content/browser/prerender/prerender_host_unittest.cc
+++ b/content/browser/prerender/prerender_host_unittest.cc
@@ -327,7 +327,7 @@
       static_cast<WebContentsImpl*>(web_contents.get());
 
   web_contents_impl->set_minimum_delay_between_loading_updates_for_testing(
-      base::TimeDelta::FromMilliseconds(0));
+      base::Milliseconds(0));
 
   // Initialize a MockWebContentsObserver and ensure that LoadProgressChanged is
   // not invoked while prerendering.
diff --git a/content/browser/prerender/prerender_origin_trial_browsertest.cc b/content/browser/prerender/prerender_origin_trial_browsertest.cc
index dbf9f52..2a9fd04 100644
--- a/content/browser/prerender/prerender_origin_trial_browsertest.cc
+++ b/content/browser/prerender/prerender_origin_trial_browsertest.cc
@@ -234,8 +234,7 @@
     EXPECT_TRUE(BrowserThread::CurrentlyOn(content::BrowserThread::UI));
     base::RunLoop run_loop;
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-        FROM_HERE, run_loop.QuitClosure(),
-        base::TimeDelta::FromMilliseconds(100));
+        FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(100));
     run_loop.Run();
     EXPECT_FALSE(prerender_requested_);
   }
diff --git a/content/browser/push_messaging/push_messaging_router.cc b/content/browser/push_messaging/push_messaging_router.cc
index 183b50d..08e3007c 100644
--- a/content/browser/push_messaging/push_messaging_router.cc
+++ b/content/browser/push_messaging/push_messaging_router.cc
@@ -163,7 +163,7 @@
       base::BindOnce(&PushMessagingRouter::DeliverMessageEnd, service_worker,
                      devtools_context, message_id,
                      std::move(deliver_message_callback)),
-      base::TimeDelta::FromSeconds(blink::mojom::kPushEventTimeoutSeconds),
+      base::Seconds(blink::mojom::kPushEventTimeoutSeconds),
       ServiceWorkerVersion::KILL_ON_TIMEOUT);
 
   service_worker->endpoint()->DispatchPushEvent(
@@ -298,7 +298,7 @@
       ServiceWorkerMetrics::EventType::PUSH_SUBSCRIPTION_CHANGE,
       base::BindOnce(&PushMessagingRouter::FireSubscriptionChangeEventEnd,
                      service_worker, std::move(subscription_change_callback)),
-      base::TimeDelta::FromSeconds(blink::mojom::kPushEventTimeoutSeconds),
+      base::Seconds(blink::mojom::kPushEventTimeoutSeconds),
       ServiceWorkerVersion::KILL_ON_TIMEOUT);
 
   service_worker->endpoint()->DispatchPushSubscriptionChangeEvent(
diff --git a/content/browser/quota/quota_change_dispatcher.cc b/content/browser/quota/quota_change_dispatcher.cc
index 62fb289..65feb42 100644
--- a/content/browser/quota/quota_change_dispatcher.cc
+++ b/content/browser/quota/quota_change_dispatcher.cc
@@ -24,12 +24,12 @@
 
 // The minimum delay between successive storage pressure events.
 constexpr base::TimeDelta kDefaultQuotaChangeIntervalSeconds =
-    base::TimeDelta::FromSeconds(60);
+    base::Seconds(60);
 
 base::TimeDelta GetRandomDelay() {
   int64_t delay_micros = static_cast<int64_t>(
       base::RandInt(0, 2 * base::Time::kMicrosecondsPerSecond));
-  return base::TimeDelta::FromMicroseconds(delay_micros);
+  return base::Microseconds(delay_micros);
 }
 
 }  // namespace
@@ -130,7 +130,7 @@
 
       int int_value;
       if (base::StringToInt(string_value, &int_value) && int_value >= 0) {
-        return base::TimeDelta::FromSeconds(int_value);
+        return base::Seconds(int_value);
       }
     } else {
       quota_change_event_interval_ = kDefaultQuotaChangeIntervalSeconds;
diff --git a/content/browser/renderer_host/back_forward_cache_impl.cc b/content/browser/renderer_host/back_forward_cache_impl.cc
index 39afcec..ce81b2ca 100644
--- a/content/browser/renderer_host/back_forward_cache_impl.cc
+++ b/content/browser/renderer_host/back_forward_cache_impl.cc
@@ -530,7 +530,7 @@
     return base::TimeDelta::Max();
   }
 
-  return base::TimeDelta::FromSeconds(base::GetFieldTrialParamByFeatureAsInt(
+  return base::Seconds(base::GetFieldTrialParamByFeatureAsInt(
       features::kBackForwardCache, "TimeToLiveInBackForwardCacheInSeconds",
       kDefaultTimeToLiveInBackForwardCacheInSeconds));
 }
diff --git a/content/browser/renderer_host/back_forward_cache_metrics.cc b/content/browser/renderer_host/back_forward_cache_metrics.cc
index 4d348da..4eaceb2 100644
--- a/content/browser/renderer_host/back_forward_cache_metrics.cc
+++ b/content/browser/renderer_host/back_forward_cache_metrics.cc
@@ -33,13 +33,13 @@
 
 // Reduce the resolution of the longer intervals due to privacy considerations.
 base::TimeDelta ClampTime(base::TimeDelta time) {
-  if (time < base::TimeDelta::FromSeconds(5))
-    return base::TimeDelta::FromMilliseconds(time.InMilliseconds());
-  if (time < base::TimeDelta::FromMinutes(3))
-    return base::TimeDelta::FromSeconds(time.InSeconds());
-  if (time < base::TimeDelta::FromHours(3))
-    return base::TimeDelta::FromMinutes(time.InMinutes());
-  return base::TimeDelta::FromHours(time.InHours());
+  if (time < base::Seconds(5))
+    return base::Milliseconds(time.InMilliseconds());
+  if (time < base::Minutes(3))
+    return base::Seconds(time.InSeconds());
+  if (time < base::Hours(3))
+    return base::Minutes(time.InMinutes());
+  return base::Hours(time.InHours());
 }
 
 base::TimeTicks Now() {
diff --git a/content/browser/renderer_host/back_forward_cache_metrics_browsertest.cc b/content/browser/renderer_host/back_forward_cache_metrics_browsertest.cc
index 3ca332a0..57123a3 100644
--- a/content/browser/renderer_host/back_forward_cache_metrics_browsertest.cc
+++ b/content/browser/renderer_host/back_forward_cache_metrics_browsertest.cc
@@ -88,8 +88,7 @@
   void GiveItSomeTime() {
     base::RunLoop run_loop;
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-        FROM_HERE, run_loop.QuitClosure(),
-        base::TimeDelta::FromMilliseconds(200));
+        FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(200));
     run_loop.Run();
   }
 
diff --git a/content/browser/renderer_host/back_forward_cache_metrics_unittest.cc b/content/browser/renderer_host/back_forward_cache_metrics_unittest.cc
index 6915362e..9164212 100644
--- a/content/browser/renderer_host/back_forward_cache_metrics_unittest.cc
+++ b/content/browser/renderer_host/back_forward_cache_metrics_unittest.cc
@@ -41,7 +41,7 @@
     web_contents->SetDelegate(&web_contents_delegate_);
 
     // Ensure that the time is non-null.
-    clock_.Advance(base::TimeDelta::FromMilliseconds(5));
+    clock_.Advance(base::Milliseconds(5));
     BackForwardCacheMetrics::OverrideTimeForTesting(&clock_);
   }
 
@@ -80,15 +80,15 @@
   // to ensure that each pair is easily distinguished.
 
   NavigationSimulator::NavigateAndCommitFromDocument(url1, main_test_rfh());
-  clock_.Advance(base::TimeDelta::FromMilliseconds(0b1));
+  clock_.Advance(base::Milliseconds(0b1));
   NavigationSimulator::NavigateAndCommitFromDocument(url2, main_test_rfh());
-  clock_.Advance(base::TimeDelta::FromMilliseconds(0b10));
+  clock_.Advance(base::Milliseconds(0b10));
   NavigationSimulator::NavigateAndCommitFromDocument(url3, main_test_rfh());
-  clock_.Advance(base::TimeDelta::FromMilliseconds(0b100));
+  clock_.Advance(base::Milliseconds(0b100));
   NavigationSimulator::GoBack(contents());
-  clock_.Advance(base::TimeDelta::FromMilliseconds(0b1000));
+  clock_.Advance(base::Milliseconds(0b1000));
   NavigationSimulator::GoBack(contents());
-  clock_.Advance(base::TimeDelta::FromMilliseconds(0b10000));
+  clock_.Advance(base::Milliseconds(0b10000));
   NavigationSimulator::GoForward(contents());
 
   ASSERT_EQ(navigation_ids_.size(), static_cast<size_t>(6));
@@ -120,8 +120,7 @@
 
   NavigationSimulator::NavigateAndCommitFromDocument(url1, main_test_rfh());
   NavigationSimulator::NavigateAndCommitFromDocument(url2, main_test_rfh());
-  clock_.Advance(base::TimeDelta::FromHours(5) +
-                 base::TimeDelta::FromMilliseconds(50));
+  clock_.Advance(base::Hours(5) + base::Milliseconds(50));
   NavigationSimulator::GoBack(contents());
 
   ASSERT_EQ(navigation_ids_.size(), static_cast<size_t>(3));
@@ -130,10 +129,9 @@
   std::string time_away = "TimeSinceNavigatedAwayFromDocument";
 
   // The original interval of 5h + 50ms is clamped to just 5h.
-  EXPECT_THAT(
-      recorder_.GetEntries("HistoryNavigation", {time_away}),
-      testing::ElementsAre(UkmEntry{
-          id3, {{time_away, base::TimeDelta::FromHours(5).InMilliseconds()}}}));
+  EXPECT_THAT(recorder_.GetEntries("HistoryNavigation", {time_away}),
+              testing::ElementsAre(UkmEntry{
+                  id3, {{time_away, base::Hours(5).InMilliseconds()}}}));
 }
 
 TEST_F(BackForwardCacheMetricsTest, TimeRecordedAtStart) {
@@ -147,27 +145,27 @@
     auto simulator =
         NavigationSimulator::CreateRendererInitiated(url1, main_test_rfh());
     simulator->Start();
-    clock_.Advance(base::TimeDelta::FromMilliseconds(0b1));
+    clock_.Advance(base::Milliseconds(0b1));
     simulator->Commit();
   }
 
-  clock_.Advance(base::TimeDelta::FromMilliseconds(0b10));
+  clock_.Advance(base::Milliseconds(0b10));
 
   {
     auto simulator =
         NavigationSimulator::CreateRendererInitiated(url2, main_test_rfh());
     simulator->Start();
-    clock_.Advance(base::TimeDelta::FromMilliseconds(0b100));
+    clock_.Advance(base::Milliseconds(0b100));
     simulator->Commit();
   }
 
-  clock_.Advance(base::TimeDelta::FromMilliseconds(0b1000));
+  clock_.Advance(base::Milliseconds(0b1000));
 
   {
     auto simulator = NavigationSimulator::CreateHistoryNavigation(
         -1, contents(), false /* is_renderer_initiated */);
     simulator->Start();
-    clock_.Advance(base::TimeDelta::FromMilliseconds(0b10000));
+    clock_.Advance(base::Milliseconds(0b10000));
     simulator->Commit();
   }
 
@@ -195,20 +193,20 @@
 
   // Go to foo1.
   NavigationSimulator::NavigateAndCommitFromDocument(url1, main_test_rfh());
-  clock_.Advance(base::TimeDelta::FromMilliseconds(0b1));
+  clock_.Advance(base::Milliseconds(0b1));
   TestRenderFrameHost* old_main_frame_host = main_test_rfh();
 
   // Go to foo2. Foo1 will be in the back-forward cache.
   NavigationSimulator::NavigateAndCommitFromDocument(url2, main_test_rfh());
-  clock_.Advance(base::TimeDelta::FromMilliseconds(0b10));
+  clock_.Advance(base::Milliseconds(0b10));
 
   // Kill the renderer.
   old_main_frame_host->GetProcess()->SimulateRenderProcessExit(
       base::TERMINATION_STATUS_PROCESS_WAS_KILLED, 1);
-  clock_.Advance(base::TimeDelta::FromMilliseconds(0b100));
+  clock_.Advance(base::Milliseconds(0b100));
 
   NavigationSimulator::GoBack(contents());
-  clock_.Advance(base::TimeDelta::FromMilliseconds(0b1000));
+  clock_.Advance(base::Milliseconds(0b1000));
 
   const char kTimeUntilProcessKilled[] =
       "BackForwardCache.Eviction.TimeUntilProcessKilled";
diff --git a/content/browser/renderer_host/clipboard_host_impl.cc b/content/browser/renderer_host/clipboard_host_impl.cc
index c34d02c..d7e7fab 100644
--- a/content/browser/renderer_host/clipboard_host_impl.cc
+++ b/content/browser/renderer_host/clipboard_host_impl.cc
@@ -63,7 +63,7 @@
 //  - Scans that succeed will apply their verdicts without the risk that their
 //    associated IsPasteContentAllowedRequest is already too old.
 const base::TimeDelta ClipboardHostImpl::kIsPasteContentAllowedRequestTooOld =
-    base::TimeDelta::FromMinutes(5);
+    base::Minutes(5);
 
 ClipboardHostImpl::IsPasteContentAllowedRequest::
     IsPasteContentAllowedRequest() = default;
diff --git a/content/browser/renderer_host/clipboard_host_impl_unittest.cc b/content/browser/renderer_host/clipboard_host_impl_unittest.cc
index 051a7c1..a18ca0b 100644
--- a/content/browser/renderer_host/clipboard_host_impl_unittest.cc
+++ b/content/browser/renderer_host/clipboard_host_impl_unittest.cc
@@ -235,14 +235,14 @@
   request.AddCallback(base::DoNothing());
   EXPECT_FALSE(request.IsObsolete(
       request.time() + ClipboardHostImpl::kIsPasteContentAllowedRequestTooOld +
-      base::TimeDelta::FromMicroseconds(1)));
+      base::Microseconds(1)));
 
   // A request is obsolete once it is too old and has no callbacks.
   // Whether paste is allowed or not is not important.
   request.Complete(ClipboardHostImpl::ClipboardPasteContentAllowed(true));
   EXPECT_TRUE(request.IsObsolete(
       request.time() + ClipboardHostImpl::kIsPasteContentAllowedRequestTooOld +
-      base::TimeDelta::FromMicroseconds(1)));
+      base::Microseconds(1)));
 }
 
 TEST_F(ClipboardHostImplTest, ReadAvailableTypes_TextUriList) {
@@ -377,7 +377,7 @@
   // It should be cleaned up.
   task_environment()->FastForwardBy(
       FakeClipboardHostImpl::kIsPasteContentAllowedRequestTooOld +
-      base::TimeDelta::FromMicroseconds(1));
+      base::Microseconds(1));
   clipboard_host_impl()->CleanupObsoleteRequests();
   EXPECT_EQ(
       0u,
diff --git a/content/browser/renderer_host/compositor_dependencies_android.cc b/content/browser/renderer_host/compositor_dependencies_android.cc
index 6a9cc86..c356bb3 100644
--- a/content/browser/renderer_host/compositor_dependencies_android.cc
+++ b/content/browser/renderer_host/compositor_dependencies_android.cc
@@ -155,7 +155,7 @@
         base::Unretained(this)));
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
         FROM_HERE, low_end_background_cleanup_task_.callback(),
-        base::TimeDelta::FromSeconds(5));
+        base::Seconds(5));
   }
 }
 
diff --git a/content/browser/renderer_host/compositor_impl_android_browsertest.cc b/content/browser/renderer_host/compositor_impl_android_browsertest.cc
index ecb05823..b2f1632 100644
--- a/content/browser/renderer_host/compositor_impl_android_browsertest.cc
+++ b/content/browser/renderer_host/compositor_impl_android_browsertest.cc
@@ -145,7 +145,7 @@
         FROM_HERE,
         base::BindOnce(&ContextLostRunLoop::CheckForContextLoss,
                        base::Unretained(this)),
-        base::TimeDelta::FromSeconds(1));
+        base::Seconds(1));
   }
 
  private:
diff --git a/content/browser/renderer_host/debug_urls.cc b/content/browser/renderer_host/debug_urls.cc
index 481cf0f1..69209b3 100644
--- a/content/browser/renderer_host/debug_urls.cc
+++ b/content/browser/renderer_host/debug_urls.cc
@@ -166,8 +166,7 @@
     // Webdriver-safe url to hang the ui thread. Webdriver waits for the onload
     // event in javascript which needs a little more time to fire.
     GetUIThreadTaskRunner({})->PostDelayedTask(
-        FROM_HERE, base::BindOnce(&HangCurrentThread),
-        base::TimeDelta::FromSeconds(2));
+        FROM_HERE, base::BindOnce(&HangCurrentThread), base::Seconds(2));
     return true;
   }
 
diff --git a/content/browser/renderer_host/dwrite_font_lookup_table_builder_win.cc b/content/browser/renderer_host/dwrite_font_lookup_table_builder_win.cc
index 77c241c..ca42d51 100644
--- a/content/browser/renderer_host/dwrite_font_lookup_table_builder_win.cc
+++ b/content/browser/renderer_host/dwrite_font_lookup_table_builder_win.cc
@@ -53,8 +53,7 @@
 // local lookup table is cleared. Font scanning and lookup table construction is
 // only needed pre Windows 10. If the timeout is hit, no local font matching
 // will be performed on this particular pre Win 10 system.
-constexpr base::TimeDelta kFontIndexingTimeoutDefault =
-    base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kFontIndexingTimeoutDefault = base::Minutes(5);
 
 // In timeout test case, slow down indexing of one font file to this percentage
 // of the timeout value. Assuming that at least two fonts are indexed, the
diff --git a/content/browser/renderer_host/dwrite_font_lookup_table_builder_win_unittest.cc b/content/browser/renderer_host/dwrite_font_lookup_table_builder_win_unittest.cc
index 90489b2..bf0127a 100644
--- a/content/browser/renderer_host/dwrite_font_lookup_table_builder_win_unittest.cc
+++ b/content/browser/renderer_host/dwrite_font_lookup_table_builder_win_unittest.cc
@@ -33,7 +33,7 @@
                                                   {u8"NSimSun", 1},
                                                   {u8"calibri-bolditalic", 0}};
 
-constexpr base::TimeDelta kTestingTimeout = base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kTestingTimeout = base::Seconds(10);
 
 class DWriteFontLookupTableBuilderTest : public testing::Test {
  public:
diff --git a/content/browser/renderer_host/input/fling_browsertest.cc b/content/browser/renderer_host/input/fling_browsertest.cc
index 24d1c0e..020261b 100644
--- a/content/browser/renderer_host/input/fling_browsertest.cc
+++ b/content/browser/renderer_host/input/fling_browsertest.cc
@@ -264,8 +264,7 @@
   void GiveItSomeTime(int64_t time_delta_ms = 10) {
     base::RunLoop run_loop;
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-        FROM_HERE, run_loop.QuitClosure(),
-        base::TimeDelta::FromMilliseconds(time_delta_ms));
+        FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(time_delta_ms));
     run_loop.Run();
   }
 
diff --git a/content/browser/renderer_host/input/fling_controller.cc b/content/browser/renderer_host/input/fling_controller.cc
index 7ee1404..9f34a5f 100644
--- a/content/browser/renderer_host/input/fling_controller.cc
+++ b/content/browser/renderer_host/input/fling_controller.cc
@@ -16,15 +16,14 @@
 using blink::WebGestureEvent;
 
 namespace {
-constexpr base::TimeDelta kFrameDelta =
-    base::TimeDelta::FromSecondsD(1.0 / 60.0);
+constexpr base::TimeDelta kFrameDelta = base::Seconds(1.0 / 60.0);
 
 // Maximum time between a fling event's timestamp and the first |Progress| call
 // for the fling curve to use the fling timestamp as the initial animation time.
 // Two frames allows a minor delay between event creation and the first
 // progress.
 constexpr base::TimeDelta kMaxMicrosecondsFromFlingTimestampToFirstProgress =
-    base::TimeDelta::FromSecondsD(2.0 / 60.0);
+    base::Seconds(2.0 / 60.0);
 
 // Since the progress fling is called in ProcessGestureFlingStart right after
 // processing the GFS, it is possible to have a very small delta for the first
diff --git a/content/browser/renderer_host/input/fling_controller_unittest.cc b/content/browser/renderer_host/input/fling_controller_unittest.cc
index 353d2f0..1d68e4e3 100644
--- a/content/browser/renderer_host/input/fling_controller_unittest.cc
+++ b/content/browser/renderer_host/input/fling_controller_unittest.cc
@@ -170,7 +170,7 @@
   bool FlingInProgress() { return fling_controller_->fling_in_progress(); }
 
   void AdvanceTime(double time_delta_ms = kFrameDelta) {
-    mock_clock_.Advance(base::TimeDelta::FromMillisecondsD(time_delta_ms));
+    mock_clock_.Advance(base::Milliseconds(time_delta_ms));
   }
 
   base::TimeTicks NowTicks() const { return mock_clock_.NowTicks(); }
diff --git a/content/browser/renderer_host/input/fling_scheduler_unittest.cc b/content/browser/renderer_host/input/fling_scheduler_unittest.cc
index d345dcf2..02e1042 100644
--- a/content/browser/renderer_host/input/fling_scheduler_unittest.cc
+++ b/content/browser/renderer_host/input/fling_scheduler_unittest.cc
@@ -149,7 +149,7 @@
   EXPECT_EQ(fling_scheduler_->compositor(),
             fling_scheduler_->observed_compositor());
 
-  progress_time += base::TimeDelta::FromMilliseconds(17);
+  progress_time += base::Milliseconds(17);
   fling_controller_->ProgressFling(progress_time);
   EXPECT_TRUE(fling_scheduler_->fling_in_progress());
 }
diff --git a/content/browser/renderer_host/input/gesture_event_queue.h b/content/browser/renderer_host/input/gesture_event_queue.h
index 683480b7..963db57b 100644
--- a/content/browser/renderer_host/input/gesture_event_queue.h
+++ b/content/browser/renderer_host/input/gesture_event_queue.h
@@ -123,7 +123,7 @@
   gfx::Vector2dF CurrentFlingVelocity() const;
 
   void set_debounce_interval_time_ms_for_testing(int interval_ms) {
-    debounce_interval_ = base::TimeDelta::FromMilliseconds(interval_ms);
+    debounce_interval_ = base::Milliseconds(interval_ms);
   }
 
   // TODO(nburris): Wheel event acks shouldn't really go through the gesture
diff --git a/content/browser/renderer_host/input/gesture_event_queue_unittest.cc b/content/browser/renderer_host/input/gesture_event_queue_unittest.cc
index f28a71cf..c063597e 100644
--- a/content/browser/renderer_host/input/gesture_event_queue_unittest.cc
+++ b/content/browser/renderer_host/input/gesture_event_queue_unittest.cc
@@ -67,7 +67,7 @@
         true;
     gesture_config.fling_config.touchscreen_tap_suppression_config
         .max_cancel_to_down_time =
-        base::TimeDelta::FromMilliseconds(max_cancel_to_down_time_ms);
+        base::Milliseconds(max_cancel_to_down_time_ms);
     queue_ =
         std::make_unique<GestureEventQueue>(this, this, this, gesture_config);
   }
@@ -314,7 +314,7 @@
   EXPECT_EQ(2U, GestureEventQueueSize());
   EXPECT_EQ(2U, GestureEventDebouncingQueueSize());
 
-  FastForwardBy(base::TimeDelta::FromMilliseconds(5));
+  FastForwardBy(base::Milliseconds(5));
 
   // The deferred events are correctly queued in coalescing queue.
   EXPECT_EQ(2U, GetAndResetSentGestureEventCount());
diff --git a/content/browser/renderer_host/input/input_router_config_helper.cc b/content/browser/renderer_host/input/input_router_config_helper.cc
index 6028f64..676aefb2 100644
--- a/content/browser/renderer_host/input/input_router_config_helper.cc
+++ b/content/browser/renderer_host/input/input_router_config_helper.cc
@@ -23,9 +23,9 @@
   PassthroughTouchEventQueue::Config config;
 
   config.desktop_touch_ack_timeout_delay =
-      base::TimeDelta::FromMilliseconds(kDesktopTouchAckTimeoutDelayMs);
+      base::Milliseconds(kDesktopTouchAckTimeoutDelayMs);
   config.mobile_touch_ack_timeout_delay =
-      base::TimeDelta::FromMilliseconds(kMobileTouchAckTimeoutDelayMs);
+      base::Milliseconds(kMobileTouchAckTimeoutDelayMs);
 
 #if defined(OS_ANDROID)
   // For historical reasons only Android enables the touch ack timeout.
@@ -41,20 +41,19 @@
   GestureEventQueue::Config config;
   ui::GestureConfiguration* gesture_config =
       ui::GestureConfiguration::GetInstance();
-  config.debounce_interval = base::TimeDelta::FromMilliseconds(
-      gesture_config->scroll_debounce_interval_in_ms());
+  config.debounce_interval =
+      base::Milliseconds(gesture_config->scroll_debounce_interval_in_ms());
 
   config.fling_config.touchscreen_tap_suppression_config.enabled =
       gesture_config->fling_touchscreen_tap_suppression_enabled();
   config.fling_config.touchscreen_tap_suppression_config
-      .max_cancel_to_down_time = base::TimeDelta::FromMilliseconds(
-      gesture_config->fling_max_cancel_to_down_time_in_ms());
+      .max_cancel_to_down_time =
+      base::Milliseconds(gesture_config->fling_max_cancel_to_down_time_in_ms());
 
   config.fling_config.touchpad_tap_suppression_config.enabled =
       gesture_config->fling_touchpad_tap_suppression_enabled();
   config.fling_config.touchpad_tap_suppression_config.max_cancel_to_down_time =
-      base::TimeDelta::FromMilliseconds(
-          gesture_config->fling_max_cancel_to_down_time_in_ms());
+      base::Milliseconds(gesture_config->fling_max_cancel_to_down_time_in_ms());
 
   return config;
 }
diff --git a/content/browser/renderer_host/input/input_router_impl_unittest.cc b/content/browser/renderer_host/input/input_router_impl_unittest.cc
index 2c1cdb6a..792fba7 100644
--- a/content/browser/renderer_host/input/input_router_impl_unittest.cc
+++ b/content/browser/renderer_host/input/input_router_impl_unittest.cc
@@ -252,9 +252,9 @@
   void SetUpForTouchAckTimeoutTest(int desktop_timeout_ms,
                                    int mobile_timeout_ms) {
     config_.touch_config.desktop_touch_ack_timeout_delay =
-        base::TimeDelta::FromMilliseconds(desktop_timeout_ms);
+        base::Milliseconds(desktop_timeout_ms);
     config_.touch_config.mobile_touch_ack_timeout_delay =
-        base::TimeDelta::FromMilliseconds(mobile_timeout_ms);
+        base::Milliseconds(mobile_timeout_ms);
     config_.touch_config.touch_ack_timeout_supported = true;
     TearDown();
     SetUp();
@@ -1288,7 +1288,7 @@
   DispatchedMessages dispatched_messages = GetAndResetDispatchedMessages();
   ASSERT_EQ(1U, dispatched_messages.size());
   ASSERT_TRUE(dispatched_messages[0]->ToEvent());
-  RunTasksAndWait(base::TimeDelta::FromMilliseconds(kDesktopTimeoutMs + 1));
+  RunTasksAndWait(base::Milliseconds(kDesktopTimeoutMs + 1));
 
   // The timed-out event should have been ack'ed.
   EXPECT_EQ(1U, disposition_handler_->GetAndResetAckCount());
@@ -1398,7 +1398,7 @@
   EXPECT_EQ(1U, dispatched_messages.size());
 
   // Delay the move ack. The timeout should not fire.
-  RunTasksAndWait(base::TimeDelta::FromMilliseconds(kDesktopTimeoutMs + 1));
+  RunTasksAndWait(base::Milliseconds(kDesktopTimeoutMs + 1));
   EXPECT_EQ(0U, disposition_handler_->GetAndResetAckCount());
   EXPECT_EQ(0U, GetAndResetDispatchedMessages().size());
   dispatched_messages[0]->ToEvent()->CallCallback(
@@ -1426,7 +1426,7 @@
   EXPECT_EQ(0U, disposition_handler_->GetAndResetAckCount());
 
   // Wait for the touch ack timeout to fire.
-  RunTasksAndWait(base::TimeDelta::FromMilliseconds(kDesktopTimeoutMs + 1));
+  RunTasksAndWait(base::Milliseconds(kDesktopTimeoutMs + 1));
   EXPECT_EQ(1U, disposition_handler_->GetAndResetAckCount());
 }
 
diff --git a/content/browser/renderer_host/input/mouse_wheel_phase_handler.h b/content/browser/renderer_host/input/mouse_wheel_phase_handler.h
index 7334a2a..c9e905a 100644
--- a/content/browser/renderer_host/input/mouse_wheel_phase_handler.h
+++ b/content/browser/renderer_host/input/mouse_wheel_phase_handler.h
@@ -17,7 +17,7 @@
 // The duration after which a synthetic wheel with zero deltas and
 // phase = |kPhaseEnded| will be sent after the last wheel event.
 constexpr base::TimeDelta kDefaultMouseWheelLatchingTransaction =
-    base::TimeDelta::FromMilliseconds(500);
+    base::Milliseconds(500);
 
 // Maximum allowed difference between coordinates of two mouse wheel events in
 // the same scroll sequence.
@@ -131,7 +131,7 @@
   // momentum_phase = kPhaseBegan before sending its previous wheel event with
   // phase = kPhaseEnded.
   base::TimeDelta max_time_between_phase_ended_and_momentum_phase_began_ =
-      base::TimeDelta::FromMilliseconds(100);
+      base::Milliseconds(100);
 };
 
 }  // namespace content
diff --git a/content/browser/renderer_host/input/passthrough_touch_event_queue.h b/content/browser/renderer_host/input/passthrough_touch_event_queue.h
index 960d362..8ad6225 100644
--- a/content/browser/renderer_host/input/passthrough_touch_event_queue.h
+++ b/content/browser/renderer_host/input/passthrough_touch_event_queue.h
@@ -61,10 +61,8 @@
  public:
   struct CONTENT_EXPORT Config {
     Config()
-        : desktop_touch_ack_timeout_delay(
-              base::TimeDelta::FromMilliseconds(200)),
-          mobile_touch_ack_timeout_delay(
-              base::TimeDelta::FromMilliseconds(1000)),
+        : desktop_touch_ack_timeout_delay(base::Milliseconds(200)),
+          mobile_touch_ack_timeout_delay(base::Milliseconds(1000)),
           touch_ack_timeout_supported(false),
           skip_touch_filter(base::FeatureList::IsEnabled(
               blink::features::kSkipTouchEventFilter)),
diff --git a/content/browser/renderer_host/input/passthrough_touch_event_queue_unittest.cc b/content/browser/renderer_host/input/passthrough_touch_event_queue_unittest.cc
index 18b9e05..bee8f081 100644
--- a/content/browser/renderer_host/input/passthrough_touch_event_queue_unittest.cc
+++ b/content/browser/renderer_host/input/passthrough_touch_event_queue_unittest.cc
@@ -41,7 +41,7 @@
 const float kHalfSlopLengthDips = kSlopLengthDips / 2;
 
 base::TimeDelta DefaultTouchTimeoutDelay() {
-  return base::TimeDelta::FromMilliseconds(1);
+  return base::Milliseconds(1);
 }
 }  // namespace
 
@@ -255,7 +255,7 @@
 
   void AdvanceTouchTime(double seconds) {
     touch_event_.SetTimeStamp(touch_event_.TimeStamp() +
-                              base::TimeDelta::FromSecondsD(seconds));
+                              base::Seconds(seconds));
   }
 
   size_t GetAndResetAckedEventCount() {
diff --git a/content/browser/renderer_host/input/render_widget_host_latency_tracker_unittest.cc b/content/browser/renderer_host/input/render_widget_host_latency_tracker_unittest.cc
index 87bd94f..58269f85 100644
--- a/content/browser/renderer_host/input/render_widget_host_latency_tracker_unittest.cc
+++ b/content/browser/renderer_host/input/render_widget_host_latency_tracker_unittest.cc
@@ -171,27 +171,26 @@
 
   latency_info.AddLatencyNumberWithTimestamp(
       ui::INPUT_EVENT_LATENCY_FIRST_SCROLL_UPDATE_ORIGINAL_COMPONENT,
-      now + base::TimeDelta::FromMilliseconds(60));
+      now + base::Milliseconds(60));
 
   latency_info.AddLatencyNumberWithTimestamp(
       ui::INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_IMPL_COMPONENT,
-      now + base::TimeDelta::FromMilliseconds(50));
+      now + base::Milliseconds(50));
 
   latency_info.AddLatencyNumberWithTimestamp(
       ui::INPUT_EVENT_LATENCY_RENDERER_SWAP_COMPONENT,
-      now + base::TimeDelta::FromMilliseconds(40));
+      now + base::Milliseconds(40));
 
   latency_info.AddLatencyNumberWithTimestamp(
       ui::DISPLAY_COMPOSITOR_RECEIVED_FRAME_COMPONENT,
-      now + base::TimeDelta::FromMilliseconds(30));
+      now + base::Milliseconds(30));
 
   latency_info.AddLatencyNumberWithTimestamp(
       ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT,
-      now + base::TimeDelta::FromMilliseconds(20));
+      now + base::Milliseconds(20));
 
   latency_info.AddLatencyNumberWithTimestamp(
-      ui::INPUT_EVENT_GPU_SWAP_BUFFER_COMPONENT,
-      now + base::TimeDelta::FromMilliseconds(10));
+      ui::INPUT_EVENT_GPU_SWAP_BUFFER_COMPONENT, now + base::Milliseconds(10));
 
   latency_info.AddLatencyNumberWithTimestamp(
       ui::INPUT_EVENT_LATENCY_FRAME_SWAP_COMPONENT, now);
@@ -969,23 +968,19 @@
   latency_info.set_source_event_type(ui::SourceEventType::KEY_PRESS);
   latency_info.AddLatencyNumberWithTimestamp(
       ui::INPUT_EVENT_LATENCY_ORIGINAL_COMPONENT,
-      base::TimeTicks() +
-          base::TimeDelta::FromMicroseconds(event_timestamps_microseconds[0]));
+      base::TimeTicks() + base::Microseconds(event_timestamps_microseconds[0]));
 
   latency_info.AddLatencyNumberWithTimestamp(
       ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT,
-      base::TimeTicks() +
-          base::TimeDelta::FromMicroseconds(event_timestamps_microseconds[0]));
+      base::TimeTicks() + base::Microseconds(event_timestamps_microseconds[0]));
 
   latency_info.AddLatencyNumberWithTimestamp(
       ui::INPUT_EVENT_GPU_SWAP_BUFFER_COMPONENT,
-      base::TimeTicks() +
-          base::TimeDelta::FromMicroseconds(event_timestamps_microseconds[1]));
+      base::TimeTicks() + base::Microseconds(event_timestamps_microseconds[1]));
 
   latency_info.AddLatencyNumberWithTimestamp(
       ui::INPUT_EVENT_LATENCY_FRAME_SWAP_COMPONENT,
-      base::TimeTicks() +
-          base::TimeDelta::FromMicroseconds(event_timestamps_microseconds[1]));
+      base::TimeTicks() + base::Microseconds(event_timestamps_microseconds[1]));
 
   viz_tracker()->OnGpuSwapBuffersCompleted({latency_info});
 
@@ -1002,13 +997,12 @@
   latency.set_source_event_type(ui::SourceEventType::TOUCHPAD);
   latency.AddLatencyNumberWithTimestamp(
       ui::INPUT_EVENT_LATENCY_ORIGINAL_COMPONENT,
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(1));
+      base::TimeTicks() + base::Milliseconds(1));
   latency.AddLatencyNumberWithTimestamp(
       ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT,
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(3));
-  AddFakeComponentsWithTimeStamp(
-      *tracker(), &latency,
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(5));
+      base::TimeTicks() + base::Milliseconds(3));
+  AddFakeComponentsWithTimeStamp(*tracker(), &latency,
+                                 base::TimeTicks() + base::Milliseconds(5));
   viz_tracker()->OnGpuSwapBuffersCompleted({latency});
 
   EXPECT_TRUE(HistogramSizeEq("Event.Latency.EventToRender.TouchpadPinch", 1));
diff --git a/content/browser/renderer_host/input/scroll_latency_browsertest.cc b/content/browser/renderer_host/input/scroll_latency_browsertest.cc
index bffffa5..f3117e1 100644
--- a/content/browser/renderer_host/input/scroll_latency_browsertest.cc
+++ b/content/browser/renderer_host/input/scroll_latency_browsertest.cc
@@ -94,8 +94,7 @@
   void GiveItSomeTime() {
     base::RunLoop run_loop;
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-        FROM_HERE, run_loop.QuitClosure(),
-        base::TimeDelta::FromMillisecondsD(10));
+        FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(10));
     run_loop.Run();
   }
 
diff --git a/content/browser/renderer_host/input/stylus_text_selector_unittest.cc b/content/browser/renderer_host/input/stylus_text_selector_unittest.cc
index a4a2cfd06..d2cc9ba6 100644
--- a/content/browser/renderer_host/input/stylus_text_selector_unittest.cc
+++ b/content/browser/renderer_host/input/stylus_text_selector_unittest.cc
@@ -140,7 +140,7 @@
   const float x3 = 150.0f;
   const float y3 = 150.0f;
   // 1. Action::DOWN with stylus + button
-  event_time += base::TimeDelta::FromMilliseconds(10);
+  event_time += base::Milliseconds(10);
   MockMotionEvent action_down(MotionEvent::Action::DOWN, event_time, x1, y1);
   action_down.SetToolType(0, MotionEvent::ToolType::STYLUS);
   action_down.set_button_state(MotionEvent::BUTTON_SECONDARY);
@@ -148,7 +148,7 @@
   EXPECT_TRUE(event_log_.empty());
 
   // 2. Action::MOVE
-  event_time += base::TimeDelta::FromMilliseconds(10);
+  event_time += base::Milliseconds(10);
   MockMotionEvent action_move(MotionEvent::Action::MOVE, event_time, x2, y2);
   action_move.SetToolType(0, MotionEvent::ToolType::STYLUS);
   action_move.set_button_state(MotionEvent::BUTTON_SECONDARY);
@@ -156,7 +156,7 @@
   ASSERT_EQ(1u, event_log_.size());
   EXPECT_STREQ("Begin(50, 30, 100, 90)", event_log_.back().c_str());
 
-  event_time += base::TimeDelta::FromMilliseconds(10);
+  event_time += base::Milliseconds(10);
   action_move = MockMotionEvent(MotionEvent::Action::MOVE, event_time, x3, y3);
   action_move.SetToolType(0, MotionEvent::ToolType::STYLUS);
   action_move.set_button_state(MotionEvent::BUTTON_SECONDARY);
@@ -165,7 +165,7 @@
   EXPECT_STREQ("Update(150, 150)", event_log_.back().c_str());
 
   // 3. Action::UP
-  event_time += base::TimeDelta::FromMilliseconds(10);
+  event_time += base::Milliseconds(10);
   MockMotionEvent action_up(MotionEvent::Action::UP, event_time, x3, y3);
   action_up.SetToolType(0, MotionEvent::ToolType::STYLUS);
   action_up.set_button_state(0);
@@ -180,7 +180,7 @@
   float y = 30.0f;
 
   // 1. Action::DOWN with stylus + button
-  event_time += base::TimeDelta::FromMilliseconds(10);
+  event_time += base::Milliseconds(10);
   MockMotionEvent action_down(MotionEvent::Action::DOWN, event_time, x, y);
   action_down.SetToolType(0, MotionEvent::ToolType::STYLUS);
   action_down.set_button_state(MotionEvent::BUTTON_SECONDARY);
@@ -188,7 +188,7 @@
   EXPECT_TRUE(event_log_.empty());
 
   // 2. Action::MOVE
-  event_time += base::TimeDelta::FromMilliseconds(10);
+  event_time += base::Milliseconds(10);
   x += 20;  // 70
   y += 20;  // 50
   MockMotionEvent action_move(MotionEvent::Action::MOVE, event_time, x, y);
@@ -199,7 +199,7 @@
   EXPECT_STREQ("Begin(50, 30, 70, 50)", event_log_.back().c_str());
 
   // 3. Action::MOVE with stylus + no button
-  event_time += base::TimeDelta::FromMilliseconds(10);
+  event_time += base::Milliseconds(10);
   x += 20;  // 90
   y += 20;  // 70
   action_move = MockMotionEvent(MotionEvent::Action::MOVE, event_time, x, y);
@@ -210,7 +210,7 @@
 
   // 4. Action::MOVE with stylus + button pressed again
   //    Note that the end action is deferred until the stylus is lifted.
-  event_time += base::TimeDelta::FromMilliseconds(10);
+  event_time += base::Milliseconds(10);
   x += 20;  // 110
   y += 20;  // 90
   action_move = MockMotionEvent(MotionEvent::Action::MOVE, event_time, x, y);
@@ -221,7 +221,7 @@
   EXPECT_STREQ("Begin(90, 70, 110, 90)", event_log_.back().c_str());
 
   // 5. Action::MOVE with stylus + no button
-  event_time += base::TimeDelta::FromMilliseconds(10);
+  event_time += base::Milliseconds(10);
   x += 20;  // 130
   y += 20;  // 110
   action_move = MockMotionEvent(MotionEvent::Action::MOVE, event_time, x, y);
@@ -230,7 +230,7 @@
   EXPECT_EQ(2u, event_log_.size());  // NO CHANGE
 
   // 5. Action::UP
-  event_time += base::TimeDelta::FromMilliseconds(10);
+  event_time += base::Milliseconds(10);
   MockMotionEvent action_up(MotionEvent::Action::UP, event_time, x, y);
   action_up.SetToolType(0, MotionEvent::ToolType::STYLUS);
   action_up.set_button_state(0);
@@ -246,7 +246,7 @@
   const float x2 = 51.0f;
   const float y2 = 31.0f;
   // 1. Action::DOWN with stylus + button
-  event_time += base::TimeDelta::FromMilliseconds(1);
+  event_time += base::Milliseconds(1);
   MockMotionEvent action_down(MotionEvent::Action::DOWN, event_time, x1, y1);
   action_down.SetToolType(0, MotionEvent::ToolType::STYLUS);
   action_down.set_button_state(MotionEvent::BUTTON_SECONDARY);
@@ -254,7 +254,7 @@
   EXPECT_TRUE(event_log_.empty());
 
   // 2. Action::MOVE
-  event_time += base::TimeDelta::FromMilliseconds(1);
+  event_time += base::Milliseconds(1);
   MockMotionEvent action_move(MotionEvent::Action::MOVE, event_time, x2, y2);
   action_move.SetToolType(0, MotionEvent::ToolType::STYLUS);
   action_move.set_button_state(MotionEvent::BUTTON_SECONDARY);
@@ -262,7 +262,7 @@
   EXPECT_TRUE(event_log_.empty());
 
   // 3. Action::UP
-  event_time += base::TimeDelta::FromMilliseconds(1);
+  event_time += base::Milliseconds(1);
   MockMotionEvent action_up(MotionEvent::Action::UP, event_time, x2, y2);
   action_up.SetToolType(0, MotionEvent::ToolType::STYLUS);
   action_up.set_button_state(0);
@@ -283,7 +283,7 @@
   const float x3 = 150.0f;
   const float y3 = 150.0f;
   // 1. Action::DOWN with stylus + button
-  event_time += base::TimeDelta::FromMilliseconds(10);
+  event_time += base::Milliseconds(10);
   MockMotionEvent action_down(MotionEvent::Action::DOWN, event_time, x1, y1);
   action_down.SetToolType(0, MotionEvent::ToolType::STYLUS);
   action_down.set_button_state(MotionEvent::BUTTON_STYLUS_PRIMARY);
@@ -291,7 +291,7 @@
   EXPECT_TRUE(event_log_.empty());
 
   // 2. Action::MOVE
-  event_time += base::TimeDelta::FromMilliseconds(10);
+  event_time += base::Milliseconds(10);
   MockMotionEvent action_move(MotionEvent::Action::MOVE, event_time, x2, y2);
   action_move.SetToolType(0, MotionEvent::ToolType::STYLUS);
   action_move.set_button_state(MotionEvent::BUTTON_STYLUS_PRIMARY);
@@ -299,7 +299,7 @@
   ASSERT_EQ(1u, event_log_.size());
   EXPECT_STREQ("Begin(50, 30, 100, 90)", event_log_.back().c_str());
 
-  event_time += base::TimeDelta::FromMilliseconds(10);
+  event_time += base::Milliseconds(10);
   action_move = MockMotionEvent(MotionEvent::Action::MOVE, event_time, x3, y3);
   action_move.SetToolType(0, MotionEvent::ToolType::STYLUS);
   action_move.set_button_state(MotionEvent::BUTTON_STYLUS_PRIMARY);
@@ -308,7 +308,7 @@
   EXPECT_STREQ("Update(150, 150)", event_log_.back().c_str());
 
   // 3. Action::UP
-  event_time += base::TimeDelta::FromMilliseconds(10);
+  event_time += base::Milliseconds(10);
   MockMotionEvent action_up(MotionEvent::Action::UP, event_time, x3, y3);
   action_up.SetToolType(0, MotionEvent::ToolType::STYLUS);
   action_up.set_button_state(0);
@@ -323,7 +323,7 @@
   float y = 30.0f;
 
   // 1. Action::DOWN with stylus + button
-  event_time += base::TimeDelta::FromMilliseconds(10);
+  event_time += base::Milliseconds(10);
   MockMotionEvent action_down(MotionEvent::Action::DOWN, event_time, x, y);
   action_down.SetToolType(0, MotionEvent::ToolType::STYLUS);
   action_down.set_button_state(MotionEvent::BUTTON_STYLUS_PRIMARY);
@@ -331,7 +331,7 @@
   EXPECT_TRUE(event_log_.empty());
 
   // 2. Action::MOVE
-  event_time += base::TimeDelta::FromMilliseconds(10);
+  event_time += base::Milliseconds(10);
   x += 20;  // 70
   y += 20;  // 50
   MockMotionEvent action_move(MotionEvent::Action::MOVE, event_time, x, y);
@@ -342,7 +342,7 @@
   EXPECT_STREQ("Begin(50, 30, 70, 50)", event_log_.back().c_str());
 
   // 3. Action::MOVE with stylus + no button
-  event_time += base::TimeDelta::FromMilliseconds(10);
+  event_time += base::Milliseconds(10);
   x += 20;  // 90
   y += 20;  // 70
   action_move = MockMotionEvent(MotionEvent::Action::MOVE, event_time, x, y);
@@ -353,7 +353,7 @@
 
   // 4. Action::MOVE with stylus + button pressed again
   //    Note that the end action is deferred until the stylus is lifted.
-  event_time += base::TimeDelta::FromMilliseconds(10);
+  event_time += base::Milliseconds(10);
   x += 20;  // 110
   y += 20;  // 90
   action_move = MockMotionEvent(MotionEvent::Action::MOVE, event_time, x, y);
@@ -364,7 +364,7 @@
   EXPECT_STREQ("Begin(90, 70, 110, 90)", event_log_.back().c_str());
 
   // 5. Action::MOVE with stylus + no button
-  event_time += base::TimeDelta::FromMilliseconds(10);
+  event_time += base::Milliseconds(10);
   x += 20;  // 130
   y += 20;  // 110
   action_move = MockMotionEvent(MotionEvent::Action::MOVE, event_time, x, y);
@@ -373,7 +373,7 @@
   EXPECT_EQ(2u, event_log_.size());  // NO CHANGE
 
   // 5. Action::UP
-  event_time += base::TimeDelta::FromMilliseconds(10);
+  event_time += base::Milliseconds(10);
   MockMotionEvent action_up(MotionEvent::Action::UP, event_time, x, y);
   action_up.SetToolType(0, MotionEvent::ToolType::STYLUS);
   action_up.set_button_state(0);
@@ -389,7 +389,7 @@
   const float x2 = 51.0f;
   const float y2 = 31.0f;
   // 1. Action::DOWN with stylus + button
-  event_time += base::TimeDelta::FromMilliseconds(1);
+  event_time += base::Milliseconds(1);
   MockMotionEvent action_down(MotionEvent::Action::DOWN, event_time, x1, y1);
   action_down.SetToolType(0, MotionEvent::ToolType::STYLUS);
   action_down.set_button_state(MotionEvent::BUTTON_STYLUS_PRIMARY);
@@ -397,7 +397,7 @@
   EXPECT_TRUE(event_log_.empty());
 
   // 2. Action::MOVE
-  event_time += base::TimeDelta::FromMilliseconds(1);
+  event_time += base::Milliseconds(1);
   MockMotionEvent action_move(MotionEvent::Action::MOVE, event_time, x2, y2);
   action_move.SetToolType(0, MotionEvent::ToolType::STYLUS);
   action_move.set_button_state(MotionEvent::BUTTON_STYLUS_PRIMARY);
@@ -405,7 +405,7 @@
   EXPECT_TRUE(event_log_.empty());
 
   // 3. Action::UP
-  event_time += base::TimeDelta::FromMilliseconds(1);
+  event_time += base::Milliseconds(1);
   MockMotionEvent action_up(MotionEvent::Action::UP, event_time, x2, y2);
   action_up.SetToolType(0, MotionEvent::ToolType::STYLUS);
   action_up.set_button_state(0);
diff --git a/content/browser/renderer_host/input/synthetic_gesture_controller.cc b/content/browser/renderer_host/input/synthetic_gesture_controller.cc
index 4c44a5f..b8caa3f 100644
--- a/content/browser/renderer_host/input/synthetic_gesture_controller.cc
+++ b/content/browser/renderer_host/input/synthetic_gesture_controller.cc
@@ -90,8 +90,7 @@
 
 void SyntheticGestureController::StartTimer(bool high_frequency) {
   dispatch_timer_.Start(
-      FROM_HERE,
-      base::TimeDelta::FromMicroseconds(high_frequency ? 8333 : 16666),
+      FROM_HERE, base::Microseconds(high_frequency ? 8333 : 16666),
       base::BindRepeating(
           [](base::WeakPtr<SyntheticGestureController> weak_ptr) {
             if (weak_ptr)
diff --git a/content/browser/renderer_host/input/synthetic_gesture_controller_unittest.cc b/content/browser/renderer_host/input/synthetic_gesture_controller_unittest.cc
index e82fd57..e949c9c 100644
--- a/content/browser/renderer_host/input/synthetic_gesture_controller_unittest.cc
+++ b/content/browser/renderer_host/input/synthetic_gesture_controller_unittest.cc
@@ -167,7 +167,7 @@
   }
 
   base::TimeDelta PointerAssumedStoppedTime() const override {
-    return base::TimeDelta::FromMilliseconds(pointer_assumed_stopped_time_ms_);
+    return base::Milliseconds(pointer_assumed_stopped_time_ms_);
   }
 
   void set_pointer_assumed_stopped_time_ms(int time_ms) {
@@ -789,10 +789,10 @@
   void FlushInputUntilComplete() {
     // Start and stop the timer explicitly here, since the test does not need to
     // wait for begin-frame to start the timer.
-    controller_->dispatch_timer_.Start(
-        FROM_HERE, base::TimeDelta::FromSeconds(1), base::DoNothing());
+    controller_->dispatch_timer_.Start(FROM_HERE, base::Seconds(1),
+                                       base::DoNothing());
     do
-      time_ += base::TimeDelta::FromMilliseconds(kFlushInputRateInMs);
+      time_ += base::Milliseconds(kFlushInputRateInMs);
     while (controller_->DispatchNextEvent(time_));
     controller_->dispatch_timer_.Stop();
   }
@@ -1756,8 +1756,7 @@
   EXPECT_TRUE(tap_target->GestureFinished());
   EXPECT_EQ(tap_target->position(), params.position);
   EXPECT_EQ(tap_target->GetDuration().InMilliseconds(), params.duration_ms);
-  EXPECT_GE(GetTotalTime(),
-            base::TimeDelta::FromMilliseconds(params.duration_ms));
+  EXPECT_GE(GetTotalTime(), base::Milliseconds(params.duration_ms));
 }
 
 TEST_F(SyntheticGestureControllerTest, TapGestureMouse) {
@@ -1779,8 +1778,7 @@
   EXPECT_TRUE(tap_target->GestureFinished());
   EXPECT_EQ(tap_target->position(), params.position);
   EXPECT_EQ(tap_target->GetDuration().InMilliseconds(), params.duration_ms);
-  EXPECT_GE(GetTotalTime(),
-            base::TimeDelta::FromMilliseconds(params.duration_ms));
+  EXPECT_GE(GetTotalTime(), base::Milliseconds(params.duration_ms));
 }
 
 TEST_F(SyntheticGestureControllerTest, PointerTouchAction) {
diff --git a/content/browser/renderer_host/input/synthetic_gesture_target_base.cc b/content/browser/renderer_host/input/synthetic_gesture_target_base.cc
index eb998b3..f21e23b 100644
--- a/content/browser/renderer_host/input/synthetic_gesture_target_base.cc
+++ b/content/browser/renderer_host/input/synthetic_gesture_target_base.cc
@@ -130,7 +130,7 @@
 
 base::TimeDelta SyntheticGestureTargetBase::PointerAssumedStoppedTime()
     const {
-  return base::TimeDelta::FromMilliseconds(kPointerAssumedStoppedTimeMs);
+  return base::Milliseconds(kPointerAssumedStoppedTimeMs);
 }
 
 float SyntheticGestureTargetBase::GetSpanSlopInDips() const {
diff --git a/content/browser/renderer_host/input/synthetic_pointer_action_unittest.cc b/content/browser/renderer_host/input/synthetic_pointer_action_unittest.cc
index fb0e116..d4aa3cc 100644
--- a/content/browser/renderer_host/input/synthetic_pointer_action_unittest.cc
+++ b/content/browser/renderer_host/input/synthetic_pointer_action_unittest.cc
@@ -887,7 +887,7 @@
       SyntheticPointerActionParams::PointerActionType::MOVE);
   param1.set_position(gfx::PointF(189, 62));
   param1.set_position(gfx::PointF(189, 62));
-  param1.set_timestamp(timestamp + base::TimeDelta::FromSeconds(1));
+  param1.set_timestamp(timestamp + base::Seconds(1));
   params_.PushPointerActionParams(param1);
 
   // Move the mouse while alt and control keys are pressed.
@@ -895,7 +895,7 @@
       SyntheticPointerActionParams::PointerActionType::MOVE);
   param2.set_position(gfx::PointF(139, 98));
   param2.set_key_modifiers(6);
-  param2.set_timestamp(timestamp + base::TimeDelta::FromSeconds(2));
+  param2.set_timestamp(timestamp + base::Seconds(2));
   params_.PushPointerActionParams(param2);
 
   // Send a mouse down with left button while alt and control keys are pressed.
@@ -904,7 +904,7 @@
   param3.set_position(gfx::PointF(139, 98));
   param3.set_button(SyntheticPointerActionParams::Button::LEFT);
   param3.set_key_modifiers(6);
-  param3.set_timestamp(timestamp + base::TimeDelta::FromSeconds(3));
+  param3.set_timestamp(timestamp + base::Seconds(3));
   params_.PushPointerActionParams(param3);
   pointer_action_ = std::make_unique<SyntheticPointerAction>(params_);
 
diff --git a/content/browser/renderer_host/input/synthetic_smooth_move_gesture.cc b/content/browser/renderer_host/input/synthetic_smooth_move_gesture.cc
index 55fb58a8..86985b0 100644
--- a/content/browser/renderer_host/input/synthetic_smooth_move_gesture.cc
+++ b/content/browser/renderer_host/input/synthetic_smooth_move_gesture.cc
@@ -356,9 +356,8 @@
                params_.speed_in_pixels_s));
     DCHECK_GT(total_duration_in_us, 0);
     current_move_segment_start_time_ = current_move_segment_stop_time_;
-    current_move_segment_stop_time_ =
-        current_move_segment_start_time_ +
-        base::TimeDelta::FromMicroseconds(total_duration_in_us);
+    current_move_segment_stop_time_ = current_move_segment_start_time_ +
+                                      base::Microseconds(total_duration_in_us);
   }
 }
 
diff --git a/content/browser/renderer_host/input/synthetic_tap_gesture.cc b/content/browser/renderer_host/input/synthetic_tap_gesture.cc
index 40a28054..1cd58ac 100644
--- a/content/browser/renderer_host/input/synthetic_tap_gesture.cc
+++ b/content/browser/renderer_host/input/synthetic_tap_gesture.cc
@@ -99,7 +99,7 @@
 }
 
 base::TimeDelta SyntheticTapGesture::GetDuration() const {
-  return base::TimeDelta::FromMilliseconds(params_.duration_ms);
+  return base::Milliseconds(params_.duration_ms);
 }
 
 }  // namespace content
diff --git a/content/browser/renderer_host/input/synthetic_touchpad_pinch_gesture.cc b/content/browser/renderer_host/input/synthetic_touchpad_pinch_gesture.cc
index 7c5cedcdf..0faed79 100644
--- a/content/browser/renderer_host/input/synthetic_touchpad_pinch_gesture.cc
+++ b/content/browser/renderer_host/input/synthetic_touchpad_pinch_gesture.cc
@@ -151,7 +151,7 @@
   float scale_factor_delta =
       (scale_factor - 1.0f) * kPixelsNeededToDoubleOrHalve;
 
-  const base::TimeDelta total_duration = base::TimeDelta::FromSecondsD(
+  const base::TimeDelta total_duration = base::Seconds(
       scale_factor_delta / params_.relative_pointer_speed_in_pixels_s);
   DCHECK_GT(total_duration, base::TimeDelta());
   stop_time_ = start_time_ + total_duration;
diff --git a/content/browser/renderer_host/input/synthetic_touchscreen_pinch_gesture.cc b/content/browser/renderer_host/input/synthetic_touchscreen_pinch_gesture.cc
index 6cc565c..c440c59 100644
--- a/content/browser/renderer_host/input/synthetic_touchscreen_pinch_gesture.cc
+++ b/content/browser/renderer_host/input/synthetic_touchscreen_pinch_gesture.cc
@@ -159,8 +159,7 @@
       1e6 * (static_cast<double>(std::abs(2 * max_pointer_delta_0_)) /
              params_.relative_pointer_speed_in_pixels_s));
   DCHECK_GT(total_duration_in_us, 0);
-  stop_time_ =
-      start_time_ + base::TimeDelta::FromMicroseconds(total_duration_in_us);
+  stop_time_ = start_time_ + base::Microseconds(total_duration_in_us);
 }
 
 float SyntheticTouchscreenPinchGesture::GetDeltaForPointer0AtTime(
diff --git a/content/browser/renderer_host/input/tap_suppression_controller.cc b/content/browser/renderer_host/input/tap_suppression_controller.cc
index 034e7e68..3a131e6a 100644
--- a/content/browser/renderer_host/input/tap_suppression_controller.cc
+++ b/content/browser/renderer_host/input/tap_suppression_controller.cc
@@ -11,9 +11,7 @@
 namespace content {
 
 TapSuppressionController::Config::Config()
-    : enabled(false),
-      max_cancel_to_down_time(base::TimeDelta::FromMilliseconds(180)) {
-}
+    : enabled(false), max_cancel_to_down_time(base::Milliseconds(180)) {}
 
 TapSuppressionController::TapSuppressionController(const Config& config)
     : state_(config.enabled ? NOTHING : DISABLED),
diff --git a/content/browser/renderer_host/input/tap_suppression_controller_unittest.cc b/content/browser/renderer_host/input/tap_suppression_controller_unittest.cc
index 3867bd1..2d0f319 100644
--- a/content/browser/renderer_host/input/tap_suppression_controller_unittest.cc
+++ b/content/browser/renderer_host/input/tap_suppression_controller_unittest.cc
@@ -99,7 +99,7 @@
   static TapSuppressionController::Config GetConfig() {
     TapSuppressionController::Config config;
     config.enabled = true;
-    config.max_cancel_to_down_time = base::TimeDelta::FromMilliseconds(10);
+    config.max_cancel_to_down_time = base::Milliseconds(10);
     return config;
   }
 
@@ -143,8 +143,7 @@
 
   // Wait less than allowed delay between GestureFlingCancel and TapDown, so the
   // TapDown is still considered associated with the GestureFlingCancel.
-  tap_suppression_controller_->AdvanceTime(
-      base::TimeDelta::FromMilliseconds(7));
+  tap_suppression_controller_->AdvanceTime(base::Milliseconds(7));
   EXPECT_EQ(MockTapSuppressionController::NONE,
             tap_suppression_controller_->last_actions());
   EXPECT_EQ(MockTapSuppressionController::LAST_CANCEL_STOPPED_FLING,
@@ -177,8 +176,7 @@
 
   // Wait more than allowed delay between GestureFlingCancel and TapDown, so the
   // TapDown is not considered associated with the GestureFlingCancel.
-  tap_suppression_controller_->AdvanceTime(
-      base::TimeDelta::FromMilliseconds(13));
+  tap_suppression_controller_->AdvanceTime(base::Milliseconds(13));
   EXPECT_EQ(MockTapSuppressionController::NONE,
             tap_suppression_controller_->last_actions());
   EXPECT_EQ(MockTapSuppressionController::LAST_CANCEL_STOPPED_FLING,
diff --git a/content/browser/renderer_host/input/touch_action_browsertest.cc b/content/browser/renderer_host/input/touch_action_browsertest.cc
index 0fabb4e3..e7680e2e 100644
--- a/content/browser/renderer_host/input/touch_action_browsertest.cc
+++ b/content/browser/renderer_host/input/touch_action_browsertest.cc
@@ -123,17 +123,15 @@
 void GiveItSomeTime(int t) {
   base::RunLoop run_loop;
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(), base::TimeDelta::FromMilliseconds(t));
+      FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(t));
   run_loop.Run();
 }
 
-constexpr base::TimeDelta kNoJankTime = base::TimeDelta::FromMilliseconds(0);
-constexpr base::TimeDelta kShortJankTime =
-    base::TimeDelta::FromMilliseconds(100);
+constexpr base::TimeDelta kNoJankTime = base::Milliseconds(0);
+constexpr base::TimeDelta kShortJankTime = base::Milliseconds(100);
 // 1200ms is larger than both desktop / mobile_touch_ack_timeout_delay in the
 // PassthroughTouchEventQueue, which ensures timeout to be triggered.
-constexpr base::TimeDelta kLongJankTime =
-    base::TimeDelta::FromMilliseconds(1200);
+constexpr base::TimeDelta kLongJankTime = base::Milliseconds(1200);
 }  // namespace
 
 namespace content {
@@ -333,7 +331,7 @@
         base::BindOnce(&TouchActionBrowserTest::OnSyntheticGestureCompleted,
                        base::Unretained(this)));
 
-    if (jank_time > base::TimeDelta::FromMilliseconds(0))
+    if (jank_time > base::Milliseconds(0))
       JankMainThread(jank_time);
 
     // Runs until we get the OnSyntheticGestureCompleted callback
diff --git a/content/browser/renderer_host/input/touch_emulator.cc b/content/browser/renderer_host/input/touch_emulator.cc
index d8c9ced..c81e406 100644
--- a/content/browser/renderer_host/input/touch_emulator.cc
+++ b/content/browser/renderer_host/input/touch_emulator.cc
@@ -62,8 +62,7 @@
 
 // Time between two consecutive mouse moves, during which second mouse move
 // is not converted to touch.
-constexpr base::TimeDelta kMouseMoveDropInterval =
-    base::TimeDelta::FromMilliseconds(5);
+constexpr base::TimeDelta kMouseMoveDropInterval = base::Milliseconds(5);
 
 } // namespace
 
diff --git a/content/browser/renderer_host/input/touch_emulator_unittest.cc b/content/browser/renderer_host/input/touch_emulator_unittest.cc
index cf19008..50a04bb 100644
--- a/content/browser/renderer_host/input/touch_emulator_unittest.cc
+++ b/content/browser/renderer_host/input/touch_emulator_unittest.cc
@@ -36,7 +36,7 @@
       : task_environment_(
             base::test::SingleThreadTaskEnvironment::MainThreadType::UI),
         last_event_time_(base::TimeTicks::Now()),
-        event_time_delta_(base::TimeDelta::FromMilliseconds(100)),
+        event_time_delta_(base::Milliseconds(100)),
         shift_pressed_(false),
         mouse_pressed_(false),
         ack_touches_synchronously_(true),
@@ -447,7 +447,7 @@
   EXPECT_EQ("TouchStart GestureTapDown", ExpectedEvents());
 
   // Mouse move after mouse down is never dropped.
-  set_event_time_delta(base::TimeDelta::FromMilliseconds(1));
+  set_event_time_delta(base::Milliseconds(1));
   MouseDrag(200, 200);
   EXPECT_EQ(
       "TouchMove GestureTapCancel GestureScrollBegin GestureScrollUpdate",
@@ -460,7 +460,7 @@
   EXPECT_EQ("", ExpectedEvents());
 
   // Dispatching again.
-  set_event_time_delta(base::TimeDelta::FromMilliseconds(100));
+  set_event_time_delta(base::Milliseconds(100));
   MouseDrag(400, 200);
   EXPECT_EQ(
       "TouchMove GestureScrollUpdate",
diff --git a/content/browser/renderer_host/input/touch_selection_controller_client_aura.cc b/content/browser/renderer_host/input/touch_selection_controller_client_aura.cc
index 87c854e..9cc84e7 100644
--- a/content/browser/renderer_host/input/touch_selection_controller_client_aura.cc
+++ b/content/browser/renderer_host/input/touch_selection_controller_client_aura.cc
@@ -111,7 +111,7 @@
       active_client_(&internal_client_),
       active_menu_client_(this),
       quick_menu_timer_(FROM_HERE,
-                        base::TimeDelta::FromMilliseconds(kQuickMenuDelayInMs),
+                        base::Milliseconds(kQuickMenuDelayInMs),
                         base::BindRepeating(
                             &TouchSelectionControllerClientAura::ShowQuickMenu,
                             base::Unretained(this))),
diff --git a/content/browser/renderer_host/input/web_input_event_builders_android_unittest.cc b/content/browser/renderer_host/input/web_input_event_builders_android_unittest.cc
index 7dee79af..375b99752f 100644
--- a/content/browser/renderer_host/input/web_input_event_builders_android_unittest.cc
+++ b/content/browser/renderer_host/input/web_input_event_builders_android_unittest.cc
@@ -201,7 +201,7 @@
 TEST(WebInputEventBuilderAndroidTest, WebMouseEventCoordinates) {
   constexpr int kEventTimeMs = 5;
   const base::TimeTicks event_time =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(kEventTimeMs);
+      base::TimeTicks() + base::Milliseconds(kEventTimeMs);
 
   ui::test::ScopedEventTestTickClock clock;
   clock.SetNowTicks(event_time);
diff --git a/content/browser/renderer_host/input/web_input_event_builders_mac.mm b/content/browser/renderer_host/input/web_input_event_builders_mac.mm
index 3bcf245..37615b2 100644
--- a/content/browser/renderer_host/input/web_input_event_builders_mac.mm
+++ b/content/browser/renderer_host/input/web_input_event_builders_mac.mm
@@ -265,8 +265,7 @@
       base::TimeDelta diff = (now - hardware_timestamp).magnitude();
       UMA_HISTOGRAM_CUSTOM_TIMES(
           "Event.Latency.OS_NO_VALIDATION.POSITIVE.KEY_PRESSED", diff,
-          base::TimeDelta::FromMilliseconds(1),
-          base::TimeDelta::FromSeconds(60), 50);
+          base::Milliseconds(1), base::Seconds(60), 50);
     }
   }
 
@@ -335,8 +334,7 @@
     base::TimeDelta diff = (now - hardware_timestamp).magnitude();
     UMA_HISTOGRAM_CUSTOM_TIMES(
         "Event.Latency.OS_NO_VALIDATION.POSITIVE.MOUSE_PRESSED", diff,
-        base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromSeconds(60),
-        50);
+        base::Milliseconds(1), base::Seconds(60), 50);
   }
   blink::WebInputEvent::Type event_type =
       blink::WebInputEvent::Type::kUndefined;
@@ -462,8 +460,7 @@
   base::TimeDelta diff = (now - hardware_timestamp).magnitude();
   UMA_HISTOGRAM_CUSTOM_TIMES(
       "Event.Latency.OS_NO_VALIDATION.POSITIVE.MOUSE_WHEEL", diff,
-      base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromSeconds(60),
-      50);
+      base::Milliseconds(1), base::Seconds(60), 50);
   blink::WebMouseWheelEvent result(
       blink::WebInputEvent::Type::kMouseWheel, ModifiersFromEvent(event),
       ui::EventTimeStampFromSeconds([event timestamp]));
@@ -701,9 +698,8 @@
         ui::EventTimeStampFromSeconds([event timestamp]);
     UMA_HISTOGRAM_CUSTOM_TIMES(
         "Event.Latency.OS.NO_VALIDATION.POSITIVE.TOUCH_PRESSED",
-        (now - hardware_timestamp).magnitude(),
-        base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromSeconds(60),
-        50);
+        (now - hardware_timestamp).magnitude(), base::Milliseconds(1),
+        base::Seconds(60), 50);
   }
   ui::ComputeEventLatencyOS(event);
   result.hovering = event_type == blink::WebInputEvent::Type::kTouchEnd;
diff --git a/content/browser/renderer_host/input/wheel_scroll_latching_browsertest.cc b/content/browser/renderer_host/input/wheel_scroll_latching_browsertest.cc
index d567b6c..c724ca7 100644
--- a/content/browser/renderer_host/input/wheel_scroll_latching_browsertest.cc
+++ b/content/browser/renderer_host/input/wheel_scroll_latching_browsertest.cc
@@ -29,7 +29,7 @@
 void GiveItSomeTime() {
   base::RunLoop run_loop;
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(), base::TimeDelta::FromMilliseconds(20));
+      FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(20));
   run_loop.Run();
 }
 
diff --git a/content/browser/renderer_host/media/audio_output_authorization_handler.cc b/content/browser/renderer_host/media/audio_output_authorization_handler.cc
index 152f809..db487ab 100644
--- a/content/browser/renderer_host/media/audio_output_authorization_handler.cc
+++ b/content/browser/renderer_host/media/audio_output_authorization_handler.cc
@@ -220,8 +220,8 @@
     base::TimeTicks auth_start_time) {
   UMA_HISTOGRAM_CUSTOM_TIMES("Media.Audio.OutputDeviceAuthorizationTime",
                              base::TimeTicks::Now() - auth_start_time,
-                             base::TimeDelta::FromMilliseconds(1),
-                             base::TimeDelta::FromMilliseconds(5000), 50);
+                             base::Milliseconds(1), base::Milliseconds(5000),
+                             50);
 }
 
 void AudioOutputAuthorizationHandler::HashDeviceId(
diff --git a/content/browser/renderer_host/media/media_stream_manager.cc b/content/browser/renderer_host/media/media_stream_manager.cc
index 3b00e3c..618d08a9 100644
--- a/content/browser/renderer_host/media/media_stream_manager.cc
+++ b/content/browser/renderer_host/media/media_stream_manager.cc
@@ -464,7 +464,7 @@
   if (!custom_window.empty()) {
     int64_t ms;
     if (base::StringToInt64(custom_window, &ms) && ms >= 0) {
-      return base::TimeDelta::FromMilliseconds(ms);
+      return base::Milliseconds(ms);
     } else {
       LOG(ERROR) << "Could not parse custom conditional focus window.";
     }
@@ -472,7 +472,7 @@
 
   // If this value is changed, some of the histograms associated with
   // Conditional Focus should also change.
-  return base::TimeDelta::FromSeconds(1);
+  return base::Seconds(1);
 }
 #endif
 }  // namespace
diff --git a/content/browser/renderer_host/media/media_stream_track_metrics_host.cc b/content/browser/renderer_host/media/media_stream_track_metrics_host.cc
index 88c4a16..8ab6ef0 100644
--- a/content/browser/renderer_host/media/media_stream_track_metrics_host.cc
+++ b/content/browser/renderer_host/media/media_stream_track_metrics_host.cc
@@ -8,11 +8,9 @@
 
 // We use a histogram with a maximum bucket of 16 hours to infinity
 // for track durations.
-#define UMA_HISTOGRAM_TIMES_16H(name, sample)                        \
-  UMA_HISTOGRAM_CUSTOM_TIMES(name, sample,                           \
-                             base::TimeDelta::FromMilliseconds(100), \
-                             base::TimeDelta::FromHours(16),         \
-                             50);
+#define UMA_HISTOGRAM_TIMES_16H(name, sample)                       \
+  UMA_HISTOGRAM_CUSTOM_TIMES(name, sample, base::Milliseconds(100), \
+                             base::Hours(16), 50);
 
 namespace content {
 
diff --git a/content/browser/renderer_host/media/video_capture_manager.h b/content/browser/renderer_host/media/video_capture_manager.h
index a25840f6..840b888 100644
--- a/content/browser/renderer_host/media/video_capture_manager.h
+++ b/content/browser/renderer_host/media/video_capture_manager.h
@@ -325,7 +325,7 @@
 
   // Closes video device capture sessions after a timeout. Idle timeout value
   // chosen based on UMA metrics. See https://crbug.com/1163105#c28
-  base::TimeDelta idle_close_timeout_ = base::TimeDelta::FromSeconds(15);
+  base::TimeDelta idle_close_timeout_ = base::Seconds(15);
   base::OneShotTimer idle_close_timer_;
 
   DISALLOW_COPY_AND_ASSIGN(VideoCaptureManager);
diff --git a/content/browser/renderer_host/media/video_capture_unittest.cc b/content/browser/renderer_host/media/video_capture_unittest.cc
index 7f2d70e..c62cc92 100644
--- a/content/browser/renderer_host/media/video_capture_unittest.cc
+++ b/content/browser/renderer_host/media/video_capture_unittest.cc
@@ -350,7 +350,7 @@
   StartCapture();
   WaitForOneCapturedBuffer();
   SimulateError();
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(200));
+  base::PlatformThread::Sleep(base::Milliseconds(200));
 }
 
 TEST_F(VideoCaptureTest, StartAndPauseAndResumeAndStop) {
diff --git a/content/browser/renderer_host/navigation_controller_impl.cc b/content/browser/renderer_host/navigation_controller_impl.cc
index 20700ae..7b76c14 100644
--- a/content/browser/renderer_host/navigation_controller_impl.cc
+++ b/content/browser/renderer_host/navigation_controller_impl.cc
@@ -599,7 +599,7 @@
   // or just getting out of it, so increase the high-water mark to get
   // a time that probably hasn't been used before and return it.
   if (low_water_mark_ <= t && t <= high_water_mark_) {
-    high_water_mark_ += base::TimeDelta::FromMicroseconds(1);
+    high_water_mark_ += base::Microseconds(1);
     return high_water_mark_;
   }
 
diff --git a/content/browser/renderer_host/navigation_controller_impl_browsertest.cc b/content/browser/renderer_host/navigation_controller_impl_browsertest.cc
index 869ce08..15aa23e 100644
--- a/content/browser/renderer_host/navigation_controller_impl_browsertest.cc
+++ b/content/browser/renderer_host/navigation_controller_impl_browsertest.cc
@@ -12046,8 +12046,7 @@
   HistoryNavigationBeforeCommitInjector trigger(web_contents, cross_origin_url);
 
   // Trigger OnCommitTimeout by setting commit timeout to 1 microsecond.
-  NavigationRequest::SetCommitTimeoutForTesting(
-      base::TimeDelta::FromMicroseconds(1));
+  NavigationRequest::SetCommitTimeoutForTesting(base::Microseconds(1));
 
   // Navigate cross-origin, waiting for the commit to occur.
   UrlCommitObserver cross_origin_commit_observer(root, cross_origin_url);
diff --git a/content/browser/renderer_host/navigation_controller_impl_unittest.cc b/content/browser/renderer_host/navigation_controller_impl_unittest.cc
index 04da514..562af09c 100644
--- a/content/browser/renderer_host/navigation_controller_impl_unittest.cc
+++ b/content/browser/renderer_host/navigation_controller_impl_unittest.cc
@@ -70,8 +70,7 @@
 namespace {
 
 base::Time InMicrosecondsSinceEpoch(int64_t us) {
-  return base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(us));
+  return base::Time::FromDeltaSinceWindowsEpoch(base::Microseconds(us));
 }
 
 // Creates an image with a 1x1 SkBitmap of the specified |color|.
diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc
index 14452870..0a0f4df 100644
--- a/content/browser/renderer_host/navigation_request.cc
+++ b/content/browser/renderer_host/navigation_request.cc
@@ -159,8 +159,7 @@
 // Default timeout for the READY_TO_COMMIT -> COMMIT transition. Chosen
 // initially based on the Navigation.ReadyToCommitUntilCommit UMA, and then
 // refined based on feedback based on CrashExitCodes.Renderer/RESULT_CODE_HUNG.
-constexpr base::TimeDelta kDefaultCommitTimeout =
-    base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kDefaultCommitTimeout = base::Seconds(30);
 
 // Timeout for the READY_TO_COMMIT -> COMMIT transition.
 // Overrideable via SetCommitTimeoutForTesting.
@@ -437,8 +436,8 @@
 #define LOG_NAVIGATION_TIMING_HISTOGRAM(histogram, transition, is_background, \
                                         duration)                             \
   do {                                                                        \
-    const base::TimeDelta kMinTime = base::TimeDelta::FromMilliseconds(1);    \
-    const base::TimeDelta kMaxTime = base::TimeDelta::FromMinutes(3);         \
+    const base::TimeDelta kMinTime = base::Milliseconds(1);                   \
+    const base::TimeDelta kMaxTime = base::Minutes(3);                        \
     const int kBuckets = 50;                                                  \
     UMA_HISTOGRAM_CUSTOM_TIMES("Navigation." histogram, duration, kMinTime,   \
                                kMaxTime, kBuckets);                           \
diff --git a/content/browser/renderer_host/overscroll_configuration.cc b/content/browser/renderer_host/overscroll_configuration.cc
index 11930dd..b6a8ab5b 100644
--- a/content/browser/renderer_host/overscroll_configuration.cc
+++ b/content/browser/renderer_host/overscroll_configuration.cc
@@ -82,7 +82,7 @@
 // static
 base::TimeDelta
 OverscrollConfig::MaxInertialEventsBeforeOverscrollCancellation() {
-  return base::TimeDelta::FromMilliseconds(
+  return base::Milliseconds(
       g_max_inertial_events_before_overscroll_cancellation_in_ms);
 }
 
diff --git a/content/browser/renderer_host/overscroll_controller.cc b/content/browser/renderer_host/overscroll_controller.cc
index 7e5305f..90c7094b 100644
--- a/content/browser/renderer_host/overscroll_controller.cc
+++ b/content/browser/renderer_host/overscroll_controller.cc
@@ -21,8 +21,7 @@
 
 // Minimum amount of time after an actual scroll after which a pull-to-refresh
 // can start.
-constexpr base::TimeDelta kPullToRefreshCoolOffDelay =
-    base::TimeDelta::FromMilliseconds(600);
+constexpr base::TimeDelta kPullToRefreshCoolOffDelay = base::Milliseconds(600);
 
 bool IsGestureEventFromTouchpad(const blink::WebInputEvent& event) {
   DCHECK(blink::WebInputEvent::IsGestureEventType(event.GetType()));
diff --git a/content/browser/renderer_host/overscroll_controller_unittest.cc b/content/browser/renderer_host/overscroll_controller_unittest.cc
index e9e0a5b..f1c7984 100644
--- a/content/browser/renderer_host/overscroll_controller_unittest.cc
+++ b/content/browser/renderer_host/overscroll_controller_unittest.cc
@@ -237,7 +237,7 @@
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->completed_mode());
 
   // First inertial.
-  timestamp += base::TimeDelta::FromSeconds(1);
+  timestamp += base::Seconds(1);
   EXPECT_TRUE(SimulateGestureScrollUpdate(
       1, 0, blink::WebGestureDevice::kTouchpad, timestamp, true));
   SimulateAck(true);
@@ -247,7 +247,7 @@
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->completed_mode());
 
   // Not cancel in 10ms.
-  timestamp += base::TimeDelta::FromMilliseconds(10);
+  timestamp += base::Milliseconds(10);
   EXPECT_TRUE(SimulateGestureScrollUpdate(
       1, 0, blink::WebGestureDevice::kTouchpad, timestamp, true));
   SimulateAck(true);
@@ -257,7 +257,7 @@
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->completed_mode());
 
   // Cancel after 300ms.
-  timestamp += base::TimeDelta::FromMilliseconds(291);
+  timestamp += base::Milliseconds(291);
   EXPECT_TRUE(SimulateGestureScrollUpdate(
       1, 0, blink::WebGestureDevice::kTouchpad, timestamp, true));
   SimulateAck(true);
@@ -267,7 +267,7 @@
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->completed_mode());
 
   // Next event should be ignored.
-  timestamp += base::TimeDelta::FromMilliseconds(100);
+  timestamp += base::Milliseconds(100);
   EXPECT_TRUE(SimulateGestureScrollUpdate(
       1, 0, blink::WebGestureDevice::kTouchpad, timestamp, true));
 }
@@ -297,7 +297,7 @@
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->current_mode());
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->completed_mode());
 
-  timestamp += base::TimeDelta::FromSeconds(1);
+  timestamp += base::Seconds(1);
 
   // Simulate a touchpad zero-velocity fling-start which would normally end
   // pull-to-refresh, and ACK it as not processed. Nothing should happen.
@@ -309,7 +309,7 @@
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->current_mode());
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->completed_mode());
 
-  timestamp += base::TimeDelta::FromSeconds(1);
+  timestamp += base::Seconds(1);
 
   EXPECT_FALSE(
       SimulateGestureEvent(blink::WebInputEvent::Type::kGestureScrollBegin,
@@ -327,7 +327,7 @@
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->current_mode());
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->completed_mode());
 
-  timestamp += base::TimeDelta::FromSeconds(1);
+  timestamp += base::Seconds(1);
 
   // Simulate a touchscreen gesture scroll-end which would normally end
   // pull-to-refresh, and ACK it as not processed. Nothing should happen.
@@ -365,7 +365,7 @@
   EXPECT_EQ(OVERSCROLL_SOUTH, delegate()->current_mode());
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->completed_mode());
 
-  timestamp += base::TimeDelta::FromSeconds(1);
+  timestamp += base::Seconds(1);
 
   // Simulate a touchpad zero-velocity fling-start and ACK it as not processed..
   // It should abort pull-to-refresh.
@@ -377,7 +377,7 @@
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->current_mode());
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->completed_mode());
 
-  timestamp += base::TimeDelta::FromSeconds(1);
+  timestamp += base::Seconds(1);
 
   EXPECT_FALSE(
       SimulateGestureEvent(blink::WebInputEvent::Type::kGestureScrollBegin,
@@ -394,7 +394,7 @@
   EXPECT_EQ(OVERSCROLL_SOUTH, delegate()->current_mode());
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->completed_mode());
 
-  timestamp += base::TimeDelta::FromSeconds(1);
+  timestamp += base::Seconds(1);
 
   // Simulate a touchscreen gesture scroll-end and ACK it as not processed. It
   // should abort pull-to-refresh.
@@ -433,7 +433,7 @@
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->current_mode());
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->completed_mode());
 
-  timestamp += base::TimeDelta::FromSeconds(1);
+  timestamp += base::Seconds(1);
 
   // Simulate a touchpad zero-velocity fling-start which would normally end
   // pull-to-refresh, and ACK it as not processed. Nothing should happen.
@@ -445,7 +445,7 @@
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->current_mode());
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->completed_mode());
 
-  timestamp += base::TimeDelta::FromSeconds(1);
+  timestamp += base::Seconds(1);
 
   EXPECT_FALSE(
       SimulateGestureEvent(blink::WebInputEvent::Type::kGestureScrollBegin,
@@ -462,7 +462,7 @@
   EXPECT_EQ(OVERSCROLL_SOUTH, delegate()->current_mode());
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->completed_mode());
 
-  timestamp += base::TimeDelta::FromSeconds(1);
+  timestamp += base::Seconds(1);
 
   // Simulate a touchscreen gesture scroll-end and ACK it as not processed. It
   // should abort pull-to-refresh.
@@ -528,7 +528,7 @@
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->current_mode());
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->completed_mode());
 
-  timestamp += base::TimeDelta::FromSeconds(1);
+  timestamp += base::Seconds(1);
 
   // Simulate a touchscreen gesture scroll-end which would normally end
   // pull-to-refresh, and ACK it as not processed. Nothing should happen.
@@ -542,7 +542,7 @@
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->completed_mode());
 
   // 2) Scroll before cool off -> PTR not triggered.
-  timestamp += base::TimeDelta::FromMilliseconds(500);
+  timestamp += base::Milliseconds(500);
 
   EXPECT_FALSE(
       SimulateGestureEvent(blink::WebInputEvent::Type::kGestureScrollBegin,
@@ -560,7 +560,7 @@
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->current_mode());
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->completed_mode());
 
-  timestamp += base::TimeDelta::FromSeconds(1);
+  timestamp += base::Seconds(1);
 
   // Simulate a touchscreen gesture scroll-end which would normally end
   // pull-to-refresh, and ACK it as not processed. Nothing should happen.
@@ -574,7 +574,7 @@
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->completed_mode());
 
   // 3) Scroll before cool off -> PTR not triggered.
-  timestamp += base::TimeDelta::FromMilliseconds(500);
+  timestamp += base::Milliseconds(500);
 
   EXPECT_FALSE(
       SimulateGestureEvent(blink::WebInputEvent::Type::kGestureScrollBegin,
@@ -592,7 +592,7 @@
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->current_mode());
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->completed_mode());
 
-  timestamp += base::TimeDelta::FromSeconds(1);
+  timestamp += base::Seconds(1);
 
   // Simulate a touchscreen gesture scroll-end which would normally end
   // pull-to-refresh, and ACK it as not processed. Nothing should happen.
@@ -606,7 +606,7 @@
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->completed_mode());
 
   // 4) Scroll after cool off -> PTR triggered.
-  timestamp += base::TimeDelta::FromSeconds(1);
+  timestamp += base::Seconds(1);
 
   EXPECT_FALSE(
       SimulateGestureEvent(blink::WebInputEvent::Type::kGestureScrollBegin,
@@ -623,7 +623,7 @@
   EXPECT_EQ(OVERSCROLL_SOUTH, delegate()->current_mode());
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->completed_mode());
 
-  timestamp += base::TimeDelta::FromSeconds(1);
+  timestamp += base::Seconds(1);
 
   // Simulate a touchscreen gesture scroll-end which will end pull-to-refresh,
   // and ACK it as not processed. Pull-to-refresh should be aborted.
@@ -637,7 +637,7 @@
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->completed_mode());
 
   // 5) Scroll before cool off -> PTR triggered.
-  timestamp += base::TimeDelta::FromMilliseconds(500);
+  timestamp += base::Milliseconds(500);
 
   EXPECT_FALSE(
       SimulateGestureEvent(blink::WebInputEvent::Type::kGestureScrollBegin,
@@ -654,7 +654,7 @@
   EXPECT_EQ(OVERSCROLL_SOUTH, delegate()->current_mode());
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->completed_mode());
 
-  timestamp += base::TimeDelta::FromSeconds(1);
+  timestamp += base::Seconds(1);
 
   // Simulate a touchscreen gesture scroll-end which will end pull-to-refresh,
   // and ACK it as not processed. Pull-to-refresh should be aborted.
@@ -697,7 +697,7 @@
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->current_mode());
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->completed_mode());
 
-  timestamp += base::TimeDelta::FromSeconds(1);
+  timestamp += base::Seconds(1);
 
   // Simulate a touchscreen gesture scroll-end which would normally end
   // pull-to-refresh, and ACK it as not processed. Nothing should happen.
@@ -711,7 +711,7 @@
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->completed_mode());
 
   // 2) Scroll after cool off -> PTR triggered.
-  timestamp += base::TimeDelta::FromSeconds(1);
+  timestamp += base::Seconds(1);
 
   EXPECT_FALSE(
       SimulateGestureEvent(blink::WebInputEvent::Type::kGestureScrollBegin,
@@ -728,7 +728,7 @@
   EXPECT_EQ(OVERSCROLL_SOUTH, delegate()->current_mode());
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->completed_mode());
 
-  timestamp += base::TimeDelta::FromSeconds(1);
+  timestamp += base::Seconds(1);
 
   // Simulate a touchscreen gesture scroll-end which will end pull-to-refresh,
   // and ACK it as not processed. Pull-to-refresh should be aborted.
@@ -742,7 +742,7 @@
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->completed_mode());
 
   // 3) Scroll before cool off -> PTR triggered.
-  timestamp += base::TimeDelta::FromMilliseconds(500);
+  timestamp += base::Milliseconds(500);
 
   EXPECT_FALSE(
       SimulateGestureEvent(blink::WebInputEvent::Type::kGestureScrollBegin,
@@ -759,7 +759,7 @@
   EXPECT_EQ(OVERSCROLL_SOUTH, delegate()->current_mode());
   EXPECT_EQ(OVERSCROLL_NONE, delegate()->completed_mode());
 
-  timestamp += base::TimeDelta::FromSeconds(1);
+  timestamp += base::Seconds(1);
 
   // Simulate a touchscreen gesture scroll-end which will end pull-to-refresh,
   // and ACK it as not processed. Pull-to-refresh should be aborted.
diff --git a/content/browser/renderer_host/page_lifecycle_state_manager.cc b/content/browser/renderer_host/page_lifecycle_state_manager.cc
index c256fb9..57fc4cd 100644
--- a/content/browser/renderer_host/page_lifecycle_state_manager.cc
+++ b/content/browser/renderer_host/page_lifecycle_state_manager.cc
@@ -13,8 +13,7 @@
 #include "third_party/blink/public/common/frame/event_page_show_persisted.h"
 
 namespace {
-constexpr base::TimeDelta kBackForwardCacheTimeoutInSeconds =
-    base::TimeDelta::FromSeconds(3);
+constexpr base::TimeDelta kBackForwardCacheTimeoutInSeconds = base::Seconds(3);
 }
 
 namespace content {
diff --git a/content/browser/renderer_host/plugin_registry_impl.cc b/content/browser/renderer_host/plugin_registry_impl.cc
index 68ccb16a..54a561c 100644
--- a/content/browser/renderer_host/plugin_registry_impl.cc
+++ b/content/browser/renderer_host/plugin_registry_impl.cc
@@ -16,7 +16,7 @@
 namespace content {
 
 namespace {
-constexpr auto kPluginRefreshThreshold = base::TimeDelta::FromSeconds(3);
+constexpr auto kPluginRefreshThreshold = base::Seconds(3);
 }  // namespace
 
 PluginRegistryImpl::PluginRegistryImpl(int render_process_id)
diff --git a/content/browser/renderer_host/recently_destroyed_hosts.cc b/content/browser/renderer_host/recently_destroyed_hosts.cc
index 4cd25f74..d24dd7e 100644
--- a/content/browser/renderer_host/recently_destroyed_hosts.cc
+++ b/content/browser/renderer_host/recently_destroyed_hosts.cc
@@ -22,14 +22,13 @@
 // Sentinel value indicating that no recently destroyed process matches the
 // host currently seeking a process. Changing this invalidates the histogram.
 constexpr base::TimeDelta kRecentlyDestroyedNotFoundSentinel =
-    base::TimeDelta::FromSeconds(20);
+    base::Seconds(20);
 
 void RecordMetric(base::TimeDelta value) {
   UMA_HISTOGRAM_CUSTOM_TIMES(
       "SiteIsolation.ReusePendingOrCommittedSite."
       "TimeSinceReusableProcessDestroyed",
-      value, base::TimeDelta::FromMilliseconds(1),
-      kRecentlyDestroyedNotFoundSentinel, 50);
+      value, base::Milliseconds(1), kRecentlyDestroyedNotFoundSentinel, 50);
 }
 
 }  // namespace
diff --git a/content/browser/renderer_host/recently_destroyed_hosts.h b/content/browser/renderer_host/recently_destroyed_hosts.h
index 0e7c31d..df565b0 100644
--- a/content/browser/renderer_host/recently_destroyed_hosts.h
+++ b/content/browser/renderer_host/recently_destroyed_hosts.h
@@ -37,7 +37,7 @@
   // opportunity. This also serves as the maximum reuse interval that can be
   // returned by GetPercentileReuseInterval().
   static constexpr base::TimeDelta kRecentlyDestroyedStorageTimeout =
-      base::TimeDelta::FromSeconds(15);
+      base::Seconds(15);
 
   ~RecentlyDestroyedHosts() override;
   RecentlyDestroyedHosts(const RecentlyDestroyedHosts& other) = delete;
diff --git a/content/browser/renderer_host/recently_destroyed_hosts_unittest.cc b/content/browser/renderer_host/recently_destroyed_hosts_unittest.cc
index bcd31a3..37caea2 100644
--- a/content/browser/renderer_host/recently_destroyed_hosts_unittest.cc
+++ b/content/browser/renderer_host/recently_destroyed_hosts_unittest.cc
@@ -30,7 +30,7 @@
 
   void AddReuseInterval(base::TimeDelta interval) {
     instance_->AddReuseInterval(interval);
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_environment_.FastForwardBy(base::Seconds(1));
   }
 
   void ClearReuseIntervals() { instance_->reuse_intervals_.clear(); }
@@ -69,7 +69,7 @@
   RecentlyDestroyedHosts::RecordMetricIfReusableHostRecentlyDestroyed(
       base::TimeTicks::Now(), process_lock, &browser_context_);
   constexpr base::TimeDelta kRecentlyDestroyedNotFoundSentinel =
-      base::TimeDelta::FromSeconds(20);
+      base::Seconds(20);
   histogram_tester->ExpectUniqueTimeSample(
       kHistogramName, kRecentlyDestroyedNotFoundSentinel, 1);
 
@@ -92,11 +92,11 @@
   // expires.
   task_environment_.FastForwardBy(
       RecentlyDestroyedHosts::kRecentlyDestroyedStorageTimeout -
-      base::TimeDelta::FromSeconds(1));
+      base::Seconds(1));
   RecentlyDestroyedHosts::Add(
       &host, /*time_spent_running_unload_handlers=*/base::TimeDelta(),
       &browser_context_);
-  constexpr base::TimeDelta kReuseInterval = base::TimeDelta::FromSeconds(5);
+  constexpr base::TimeDelta kReuseInterval = base::Seconds(5);
   task_environment_.FastForwardBy(kReuseInterval);
   histogram_tester = std::make_unique<base::HistogramTester>();
   RecentlyDestroyedHosts::RecordMetricIfReusableHostRecentlyDestroyed(
@@ -117,12 +117,12 @@
 }
 
 TEST_F(RecentlyDestroyedHostsTest, AddReuseInterval) {
-  const base::TimeDelta t1 = base::TimeDelta::FromSeconds(4);
-  const base::TimeDelta t2 = base::TimeDelta::FromSeconds(5);
-  const base::TimeDelta t3 = base::TimeDelta::FromSecondsD(6.7);
-  const base::TimeDelta t4 = base::TimeDelta::FromSecondsD(8.2);
-  const base::TimeDelta t5 = base::TimeDelta::FromSeconds(10);
-  const base::TimeDelta t6 = base::TimeDelta::FromSeconds(11);
+  const base::TimeDelta t1 = base::Seconds(4);
+  const base::TimeDelta t2 = base::Seconds(5);
+  const base::TimeDelta t3 = base::Seconds(6.7);
+  const base::TimeDelta t4 = base::Seconds(8.2);
+  const base::TimeDelta t5 = base::Seconds(10);
+  const base::TimeDelta t6 = base::Seconds(11);
 
   AddReuseInterval(t2);
   EXPECT_THAT(GetReuseIntervals(), testing::ElementsAre(t2));
@@ -162,21 +162,21 @@
 
   for (auto& test_case : kPercentileReuseIntervalTestCases) {
     for (auto& interval : test_case.reuse_interval_seconds) {
-      AddReuseInterval(base::TimeDelta::FromSecondsD(interval));
+      AddReuseInterval(base::Seconds(interval));
     }
-    EXPECT_EQ(base::TimeDelta::FromSecondsD(test_case.percentile_0),
+    EXPECT_EQ(base::Seconds(test_case.percentile_0),
               RecentlyDestroyedHosts::GetPercentileReuseInterval(
                   0, &browser_context_));
-    EXPECT_EQ(base::TimeDelta::FromSecondsD(test_case.percentile_33),
+    EXPECT_EQ(base::Seconds(test_case.percentile_33),
               RecentlyDestroyedHosts::GetPercentileReuseInterval(
                   33, &browser_context_));
-    EXPECT_EQ(base::TimeDelta::FromSecondsD(test_case.percentile_50),
+    EXPECT_EQ(base::Seconds(test_case.percentile_50),
               RecentlyDestroyedHosts::GetPercentileReuseInterval(
                   50, &browser_context_));
-    EXPECT_EQ(base::TimeDelta::FromSecondsD(test_case.percentile_75),
+    EXPECT_EQ(base::Seconds(test_case.percentile_75),
               RecentlyDestroyedHosts::GetPercentileReuseInterval(
                   75, &browser_context_));
-    EXPECT_EQ(base::TimeDelta::FromSecondsD(test_case.percentile_100),
+    EXPECT_EQ(base::Seconds(test_case.percentile_100),
               RecentlyDestroyedHosts::GetPercentileReuseInterval(
                   100, &browser_context_));
     ClearReuseIntervals();
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
index 6ecd77e..83d3b330 100644
--- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -883,15 +883,12 @@
     return kZeroDelay;
   }
 
-  static constexpr base::TimeDelta kShortDelay =
-      base::TimeDelta::FromSeconds(2);
+  static constexpr base::TimeDelta kShortDelay = base::Seconds(2);
   static constexpr base::TimeDelta kLongDelay =
-      base::TimeDelta::FromMilliseconds(
-          kSubframeProcessShutdownLongDelayInMSec);
+      base::Milliseconds(kSubframeProcessShutdownLongDelayInMSec);
   // Added to delay if based on recent performance (i.e., |kHistoryBased| and
   // |kHistoryBasedLong|) to account for small variations in timing.
-  static constexpr base::TimeDelta kDelayBuffer =
-      base::TimeDelta::FromSeconds(1);
+  static constexpr base::TimeDelta kDelayBuffer = base::Seconds(1);
 
   switch (features::kSubframeShutdownDelayTypeParam.Get()) {
     case features::SubframeShutdownDelayType::kConstant: {
@@ -5831,8 +5828,7 @@
 }
 
 bool RenderFrameHostImpl::HasSeenRecentXrOverlaySetup() {
-  static constexpr base::TimeDelta kMaxInterval =
-      base::TimeDelta::FromSeconds(1);
+  static constexpr base::TimeDelta kMaxInterval = base::Seconds(1);
   base::TimeDelta delta = base::TimeTicks::Now() - last_xr_overlay_setup_time_;
   DVLOG(2) << __func__ << ": return " << (delta <= kMaxInterval);
   return delta <= kMaxInterval;
diff --git a/content/browser/renderer_host/render_frame_host_impl_browsertest.cc b/content/browser/renderer_host/render_frame_host_impl_browsertest.cc
index 01dda0fb8..40e47e1 100644
--- a/content/browser/renderer_host/render_frame_host_impl_browsertest.cc
+++ b/content/browser/renderer_host/render_frame_host_impl_browsertest.cc
@@ -1217,8 +1217,7 @@
   // PrepContentsForBeforeUnloadTest(), as that clears the timer altogether,
   // and this test needs the timer to be valid, to see whether it gets paused
   // and not restarted correctly.
-  main_frame->SetBeforeUnloadTimeoutDelayForTesting(
-      base::TimeDelta::FromSeconds(30));
+  main_frame->SetBeforeUnloadTimeoutDelayForTesting(base::Seconds(30));
 
   // Start a navigation in the main frame.
   GURL new_url(embedded_test_server()->GetURL("c.com", "/title1.html"));
@@ -3508,8 +3507,8 @@
   static_assert(net::IsolationInfo::kPartyContextMaxSize == 20,
                 "kPartyContextMaxSize should have value 20.");
 
-  base::test::ScopedRunLoopTimeout increased_timeout(
-      FROM_HERE, base::TimeDelta::FromSeconds(60));
+  base::test::ScopedRunLoopTimeout increased_timeout(FROM_HERE,
+                                                     base::Seconds(60));
   EXPECT_TRUE(NavigateToURL(shell(), url));
 
   GURL b_url = embedded_test_server()->GetURL("b.com", "/");
@@ -4250,7 +4249,7 @@
   main_frame->DisableUnloadTimerForTesting();
   child_rfh->SuddenTerminationDisablerChanged(
       true, blink::mojom::SuddenTerminationDisablerType::kUnloadHandler);
-  child_rfh->SetSubframeUnloadTimeoutForTesting(base::TimeDelta::FromDays(7));
+  child_rfh->SetSubframeUnloadTimeoutForTesting(base::Days(7));
   child_rfh->DoNotDeleteForTesting();
 
   // Open a popup on a.com to keep the process alive.
@@ -5470,7 +5469,7 @@
 
   // Delay process shutdown twice from the same site info.
   const SiteInfo site_info = rfh->GetSiteInstance()->GetSiteInfo();
-  const base::TimeDelta delay = base::TimeDelta::FromSeconds(5);
+  const base::TimeDelta delay = base::Seconds(5);
   process->DelayProcessShutdown(delay, base::TimeDelta(), site_info);
   EXPECT_TRUE(process->IsProcessShutdownDelayedForTesting());
   process->DelayProcessShutdown(delay, base::TimeDelta(), site_info);
diff --git a/content/browser/renderer_host/render_frame_host_manager_browsertest.cc b/content/browser/renderer_host/render_frame_host_manager_browsertest.cc
index b37166b..b425a0f 100644
--- a/content/browser/renderer_host/render_frame_host_manager_browsertest.cc
+++ b/content/browser/renderer_host/render_frame_host_manager_browsertest.cc
@@ -7847,7 +7847,7 @@
   // processing to prevent any test flakiness.  This is the time that the ping
   // request will have to make it from the renderer to the test server.
   void ExtendSubframeUnloadTimeoutForTerminationPing(RenderFrameHostImpl* rfh) {
-    rfh->SetSubframeUnloadTimeoutForTesting(base::TimeDelta::FromSeconds(30));
+    rfh->SetSubframeUnloadTimeoutForTesting(base::Seconds(30));
   }
 
  protected:
@@ -8171,7 +8171,7 @@
         base::BindOnce(&AssertForegroundHelper::AssertForegroundAndRepost,
                        weak_ptr_factory_.GetWeakPtr(),
                        std::cref(renderer_process), port_provider),
-        base::TimeDelta::FromMilliseconds(1));
+        base::Milliseconds(1));
   }
 #else   // defined(OS_MAC)
   // Same as above without the Mac specific base::PortProvider.
@@ -8182,7 +8182,7 @@
         base::BindOnce(&AssertForegroundHelper::AssertForegroundAndRepost,
                        weak_ptr_factory_.GetWeakPtr(),
                        std::cref(renderer_process)),
-        base::TimeDelta::FromMilliseconds(1));
+        base::Milliseconds(1));
   }
 #endif  // defined(OS_MAC)
 
diff --git a/content/browser/renderer_host/render_process_host_browsertest.cc b/content/browser/renderer_host/render_process_host_browsertest.cc
index 5b093b4d..98a2198 100644
--- a/content/browser/renderer_host/render_process_host_browsertest.cc
+++ b/content/browser/renderer_host/render_process_host_browsertest.cc
@@ -1062,7 +1062,7 @@
   host_destructions_ = 0;
   process_exits_ = 0;
   Observe(rph);
-  rfh->SetKeepAliveTimeoutForTesting(base::TimeDelta::FromSeconds(30));
+  rfh->SetKeepAliveTimeoutForTesting(base::Seconds(30));
 
   // Navigate to a site that will be in a different process.
   base::TimeTicks start = base::TimeTicks::Now();
@@ -1071,7 +1071,7 @@
 
   WaitUntilProcessExits(1);
 
-  EXPECT_LT(base::TimeTicks::Now() - start, base::TimeDelta::FromSeconds(30));
+  EXPECT_LT(base::TimeTicks::Now() - start, base::Seconds(30));
 }
 
 IN_PROC_BROWSER_TEST_F(RenderProcessHostTest,
@@ -1150,14 +1150,14 @@
   host_destructions_ = 0;
   process_exits_ = 0;
   Observe(rph);
-  rfh->SetKeepAliveTimeoutForTesting(base::TimeDelta::FromSeconds(1));
+  rfh->SetKeepAliveTimeoutForTesting(base::Seconds(1));
 
   base::TimeTicks start = base::TimeTicks::Now();
   EXPECT_TRUE(NavigateToURL(shell(), GURL("data:text/html,<p>hello</p>")));
 
   WaitUntilProcessExits(1);
 
-  EXPECT_GE(base::TimeTicks::Now() - start, base::TimeDelta::FromSeconds(1));
+  EXPECT_GE(base::TimeTicks::Now() - start, base::Seconds(1));
 }
 
 // Test is flaky on Android builders: https://crbug.com/875179
@@ -1208,14 +1208,14 @@
   host_destructions_ = 0;
   process_exits_ = 0;
   Observe(rph);
-  rfh->SetKeepAliveTimeoutForTesting(base::TimeDelta::FromSeconds(1));
+  rfh->SetKeepAliveTimeoutForTesting(base::Seconds(1));
 
   base::TimeTicks start = base::TimeTicks::Now();
   EXPECT_TRUE(NavigateToURL(shell(), GURL("data:text/html,<p>hello</p>")));
 
   WaitUntilProcessExits(1);
 
-  EXPECT_GE(base::TimeTicks::Now() - start, base::TimeDelta::FromSeconds(1));
+  EXPECT_GE(base::TimeTicks::Now() - start, base::Seconds(1));
 }
 
 IN_PROC_BROWSER_TEST_F(RenderProcessHostTest, ManyKeepaliveRequests) {
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
index 3dd3663..6d03d92a 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -1660,7 +1660,7 @@
 
 // static
 const base::TimeDelta RenderProcessHostImpl::kKeepAliveHandleFactoryTimeout =
-    base::TimeDelta::FromMilliseconds(kKeepAliveHandleFactoryTimeoutInMSec);
+    base::Milliseconds(kKeepAliveHandleFactoryTimeoutInMSec);
 
 RenderProcessHostImpl::RenderProcessHostImpl(
     BrowserContext* browser_context,
diff --git a/content/browser/renderer_host/render_view_host_impl.h b/content/browser/renderer_host/render_view_host_impl.h
index 861b539..9760b765 100644
--- a/content/browser/renderer_host/render_view_host_impl.h
+++ b/content/browser/renderer_host/render_view_host_impl.h
@@ -363,7 +363,7 @@
   // Delay to wait on closing the WebContents for a beforeunload/unload handler
   // to fire.
   static constexpr base::TimeDelta kUnloadTimeout =
-      base::TimeDelta::FromMilliseconds(kUnloadTimeoutInMSec);
+      base::Milliseconds(kUnloadTimeoutInMSec);
 
   // The RenderWidgetHost.
   const std::unique_ptr<RenderWidgetHostImpl> render_widget_host_;
diff --git a/content/browser/renderer_host/render_widget_host_browsertest.cc b/content/browser/renderer_host/render_widget_host_browsertest.cc
index 616febc..7119106 100644
--- a/content/browser/renderer_host/render_widget_host_browsertest.cc
+++ b/content/browser/renderer_host/render_widget_host_browsertest.cc
@@ -169,7 +169,7 @@
         host_(nullptr),
         router_(nullptr),
         last_simulated_event_time_(ui::EventTimeForNow()),
-        simulated_event_time_delta_(base::TimeDelta::FromMilliseconds(100)) {}
+        simulated_event_time_delta_(base::Milliseconds(100)) {}
 
   void SetUpOnMainThread() override {
     ContentBrowserTest::SetUpOnMainThread();
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc
index 8f25334..9e8e41b 100644
--- a/content/browser/renderer_host/render_widget_host_impl.cc
+++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -164,8 +164,7 @@
 
 // How long to wait for newly loaded content to send a compositor frame
 // before clearing previously displayed graphics.
-constexpr base::TimeDelta kNewContentRenderingDelay =
-    base::TimeDelta::FromSeconds(4);
+constexpr base::TimeDelta kNewContentRenderingDelay = base::Seconds(4);
 
 bool g_check_for_pending_visual_properties_ack = true;
 
@@ -590,7 +589,7 @@
 
 // static
 const base::TimeDelta RenderWidgetHostImpl::kActivationNotificationExpireTime =
-    base::TimeDelta::FromMilliseconds(300);
+    base::Milliseconds(300);
 
 RenderProcessHost* RenderWidgetHostImpl::GetProcess() {
   return agent_scheduling_group_.GetProcess();
@@ -3307,7 +3306,7 @@
       FROM_HERE,
       base::BindOnce(&RenderWidgetHostImpl::WindowSnapshotReachedScreen,
                      weak_factory_.GetWeakPtr(), snapshot_id),
-      base::TimeDelta::FromSecondsD(1. / 6));
+      base::Seconds(1. / 6));
 #else
   WindowSnapshotReachedScreen(snapshot_id);
 #endif
diff --git a/content/browser/renderer_host/render_widget_host_unittest.cc b/content/browser/renderer_host/render_widget_host_unittest.cc
index f2f86af8..759e90c 100644
--- a/content/browser/renderer_host/render_widget_host_unittest.cc
+++ b/content/browser/renderer_host/render_widget_host_unittest.cc
@@ -1676,8 +1676,7 @@
   host_->StartInputEventAckTimeout();
 
   // Wait long enough for first timeout and see if it fired.
-  task_environment_.FastForwardBy(kHungRendererDelay +
-                                  base::TimeDelta::FromMilliseconds(10));
+  task_environment_.FastForwardBy(kHungRendererDelay + base::Milliseconds(10));
   EXPECT_TRUE(delegate_->unresponsive_timer_fired());
 }
 
@@ -1691,21 +1690,18 @@
 
   // The timeout should not fire.
   EXPECT_FALSE(delegate_->unresponsive_timer_fired());
-  task_environment_.FastForwardBy(kHungRendererDelay +
-                                  base::TimeDelta::FromMilliseconds(10));
+  task_environment_.FastForwardBy(kHungRendererDelay + base::Milliseconds(10));
   EXPECT_FALSE(delegate_->unresponsive_timer_fired());
 
   // The timeout should never reactivate while hidden.
   SimulateMouseEvent(WebInputEvent::Type::kMouseMove, 10, 10, 0, false);
-  task_environment_.FastForwardBy(kHungRendererDelay +
-                                  base::TimeDelta::FromMilliseconds(10));
+  task_environment_.FastForwardBy(kHungRendererDelay + base::Milliseconds(10));
   EXPECT_FALSE(delegate_->unresponsive_timer_fired());
 
   // Showing the widget should restore the timeout, as the events have
   // not yet been ack'ed.
   host_->WasShown({} /* record_tab_switch_time_request */);
-  task_environment_.FastForwardBy(kHungRendererDelay +
-                                  base::TimeDelta::FromMilliseconds(10));
+  task_environment_.FastForwardBy(kHungRendererDelay + base::Milliseconds(10));
   EXPECT_TRUE(delegate_->unresponsive_timer_fired());
 }
 
@@ -1728,8 +1724,7 @@
       blink::mojom::InputEventResultState::kConsumed);
 
   // Wait long enough for second timeout and see if it fired.
-  task_environment_.FastForwardBy(kHungRendererDelay +
-                                  base::TimeDelta::FromMilliseconds(10));
+  task_environment_.FastForwardBy(kHungRendererDelay + base::Milliseconds(10));
   EXPECT_TRUE(delegate_->unresponsive_timer_fired());
 }
 
diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc
index 1ea59c8..f3df4e6 100644
--- a/content/browser/renderer_host/render_widget_host_view_android.cc
+++ b/content/browser/renderer_host/render_widget_host_view_android.cc
@@ -108,8 +108,7 @@
 namespace {
 
 static const char kAsyncReadBackString[] = "Compositing.CopyFromSurfaceTime";
-static const base::TimeDelta kClickCountInterval =
-    base::TimeDelta::FromSecondsD(0.5);
+static const base::TimeDelta kClickCountInterval = base::Seconds(0.5);
 static const float kClickCountRadiusSquaredDIP = 25;
 
 std::unique_ptr<ui::TouchSelectionController> CreateSelectionController(
@@ -118,8 +117,8 @@
   DCHECK(client);
   DCHECK(has_view_tree);
   ui::TouchSelectionController::Config config;
-  config.max_tap_duration = base::TimeDelta::FromMilliseconds(
-      gfx::ViewConfiguration::GetLongPressTimeoutInMs());
+  config.max_tap_duration =
+      base::Milliseconds(gfx::ViewConfiguration::GetLongPressTimeoutInMs());
   config.tap_slop = gfx::ViewConfiguration::GetTouchSlopInDips();
   config.enable_adaptive_handle_orientation =
       base::CommandLine::ForCurrentProcess()->HasSwitch(
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc
index e59e4bc..cd966ad 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -2525,7 +2525,7 @@
 
 void RenderWidgetHostViewAura::CreateSelectionController() {
   ui::TouchSelectionController::Config tsc_config;
-  tsc_config.max_tap_duration = base::TimeDelta::FromMilliseconds(
+  tsc_config.max_tap_duration = base::Milliseconds(
       ui::GestureConfiguration::GetInstance()->long_press_time_in_ms());
   tsc_config.tap_slop = ui::GestureConfiguration::GetInstance()
                             ->max_touch_move_in_pixels_for_click();
diff --git a/content/browser/renderer_host/render_widget_host_view_aura_browsertest.cc b/content/browser/renderer_host/render_widget_host_view_aura_browsertest.cc
index 01fa011..48bf24a8 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura_browsertest.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura_browsertest.cc
@@ -41,8 +41,7 @@
 void GiveItSomeTime() {
   base::RunLoop run_loop;
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(),
-      base::TimeDelta::FromMilliseconds(250));
+      FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(250));
   run_loop.Run();
 }
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
index 07097e7..2d70a1f 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
@@ -570,7 +570,7 @@
 
     // Set the mouse_wheel_phase_handler_ timer timeout to 100ms.
     view_->event_handler()->set_mouse_wheel_wheel_phase_handler_timeout(
-        base::TimeDelta::FromMilliseconds(100));
+        base::Milliseconds(100));
   }
 
   void InitViewForPopup(RenderWidgetHostViewAura* parent_view,
@@ -1780,7 +1780,7 @@
 
   // Let the MouseWheelPhaseHandler::mouse_wheel_end_dispatch_timer_ fire. A
   // synthetic wheel event with zero deltas and kPhaseEnded will be sent.
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(100));
+  base::PlatformThread::Sleep(base::Milliseconds(100));
   base::RunLoop().RunUntilIdle();
 
   events = GetAndResetDispatchedMessages();
@@ -2090,8 +2090,7 @@
   // the user hasn't lifted their fingers, yet.
   base::RunLoop run_loop;
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(),
-      base::TimeDelta::FromMilliseconds(200));
+      FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(200));
   run_loop.Run();
   ui::ScrollEvent scroll1(ui::ET_SCROLL, gfx::Point(2, 2),
                           ui::EventTimeForNow(), 0, 0, 15, 0, 15, 2);
@@ -3797,11 +3796,11 @@
   }
 
   base::TimeTicks progress_time =
-      base::TimeTicks::Now() + base::TimeDelta::FromMilliseconds(17);
+      base::TimeTicks::Now() + base::Milliseconds(17);
   // Overscroll mode will get reset at the end of the fling progress.
   while (overscroll_mode() != OVERSCROLL_NONE) {
     widget_host_->ProgressFlingIfNeeded(progress_time);
-    progress_time += base::TimeDelta::FromMilliseconds(17);
+    progress_time += base::Milliseconds(17);
   }
   EXPECT_EQ(OverscrollSource::NONE, overscroll_source());
 }
@@ -3961,7 +3960,7 @@
     // The overscrolling mode will reset after the first GSU from fling
     // progress.
     base::TimeTicks progress_time =
-        base::TimeTicks::Now() + base::TimeDelta::FromMilliseconds(17);
+        base::TimeTicks::Now() + base::Milliseconds(17);
     widget_host_->ProgressFlingIfNeeded(progress_time);
     EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode());
     ReleaseAndResetDispatchedMessages();
@@ -4257,7 +4256,7 @@
   // enough overscroll to complete the gesture, the overscroll controller
   // will reset the state. The scroll-end should therefore be dispatched to the
   // renderer, and the gesture-event-filter should await an ACK for it.
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(10));
+  base::PlatformThread::Sleep(base::Milliseconds(10));
   base::RunLoop().RunUntilIdle();
   events = GetAndResetDispatchedMessages();
   EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode());
@@ -4382,7 +4381,7 @@
 
   SimulateGestureEvent(blink::WebInputEvent::Type::kGestureScrollEnd,
                        blink::WebGestureDevice::kTouchscreen);
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(10));
+  base::PlatformThread::Sleep(base::Milliseconds(10));
   base::RunLoop().RunUntilIdle();
   events = GetAndResetDispatchedMessages();
   EXPECT_EQ("GestureScrollEnd", GetMessageNames(events));
@@ -4439,7 +4438,7 @@
                        blink::WebGestureDevice::kTouchscreen);
   events = GetAndResetDispatchedMessages();
   EXPECT_EQ(0U, events.size());
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(10));
+  base::PlatformThread::Sleep(base::Milliseconds(10));
   base::RunLoop().RunUntilIdle();
   EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode());
   EXPECT_EQ(OverscrollSource::NONE, overscroll_source());
@@ -4483,7 +4482,7 @@
                        blink::WebGestureDevice::kTouchscreen);
   events = GetAndResetDispatchedMessages();
   EXPECT_EQ(0U, events.size());
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(10));
+  base::PlatformThread::Sleep(base::Milliseconds(10));
   base::RunLoop().RunUntilIdle();
   EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode());
   EXPECT_EQ(OverscrollSource::NONE, overscroll_source());
@@ -5244,11 +5243,11 @@
   EXPECT_EQ(0U, events.size());
 
   base::TimeTicks progress_time =
-      base::TimeTicks::Now() + base::TimeDelta::FromMilliseconds(17);
+      base::TimeTicks::Now() + base::Milliseconds(17);
   // Overscroll delta will get reset at the end of the fling progress.
   while (overscroll_delta_y() != 0.f) {
     widget_host_->ProgressFlingIfNeeded(progress_time);
-    progress_time += base::TimeDelta::FromMilliseconds(17);
+    progress_time += base::Milliseconds(17);
   }
 }
 
@@ -5584,7 +5583,7 @@
 #define MAYBE_NewContentRenderingTimeout NewContentRenderingTimeout
 #endif
 TEST_F(RenderWidgetHostViewAuraTest, MAYBE_NewContentRenderingTimeout) {
-  constexpr base::TimeDelta kTimeout = base::TimeDelta::FromMicroseconds(10);
+  constexpr base::TimeDelta kTimeout = base::Microseconds(10);
 
   InitViewForFrame(nullptr);
   aura::client::ParentWindowWithContext(
diff --git a/content/browser/renderer_host/render_widget_host_view_browsertest.cc b/content/browser/renderer_host/render_widget_host_view_browsertest.cc
index 37be31a..ce324b0 100644
--- a/content/browser/renderer_host/render_widget_host_view_browsertest.cc
+++ b/content/browser/renderer_host/render_widget_host_view_browsertest.cc
@@ -139,8 +139,7 @@
   static void GiveItSomeTime() {
     base::RunLoop run_loop;
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-        FROM_HERE, run_loop.QuitClosure(),
-        base::TimeDelta::FromMilliseconds(250));
+        FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(250));
     run_loop.Run();
   }
 
diff --git a/content/browser/renderer_host/render_widget_host_view_child_frame.cc b/content/browser/renderer_host/render_widget_host_view_child_frame.cc
index d25859c..c31ecb41 100644
--- a/content/browser/renderer_host/render_widget_host_view_child_frame.cc
+++ b/content/browser/renderer_host/render_widget_host_view_child_frame.cc
@@ -687,8 +687,8 @@
 
 bool RenderWidgetHostViewChildFrame::ScreenRectIsUnstableFor(
     const blink::WebInputEvent& event) {
-  if (event.TimeStamp() - base::TimeDelta::FromMilliseconds(
-                              blink::mojom::kMinScreenRectStableTimeMs) <
+  if (event.TimeStamp() -
+          base::Milliseconds(blink::mojom::kMinScreenRectStableTimeMs) <
       screen_rect_stable_since_) {
     return true;
   }
diff --git a/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm b/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm
index bafb30d..0108328a 100644
--- a/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm
+++ b/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm
@@ -479,7 +479,7 @@
   }
 
   void SetUp() override {
-    mock_clock_.Advance(base::TimeDelta::FromMilliseconds(100));
+    mock_clock_.Advance(base::Milliseconds(100));
     ui::SetEventTickClockForTesting(&mock_clock_);
     RenderViewHostImplTestHarness::SetUp();
 
@@ -1196,7 +1196,7 @@
 // generated from this type of devices.
 TEST_F(RenderWidgetHostViewMacTest, TimerBasedPhaseInfo) {
   rwhv_mac_->set_mouse_wheel_wheel_phase_handler_timeout(
-      base::TimeDelta::FromMilliseconds(100));
+      base::Milliseconds(100));
 
   // Send a wheel event without phase information for scrolling by 3 lines.
   NSEvent* wheelEvent = MockScrollWheelEventWithoutPhase(3);
@@ -1220,8 +1220,7 @@
   // event gets dispatched.
   base::RunLoop run_loop;
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitWhenIdleClosure(),
-      base::TimeDelta::FromMilliseconds(100));
+      FROM_HERE, run_loop.QuitWhenIdleClosure(), base::Milliseconds(100));
   run_loop.Run();
 
   events = host_->GetAndResetDispatchedMessages();
diff --git a/content/browser/renderer_host/render_widget_targeter.cc b/content/browser/renderer_host/render_widget_targeter.cc
index 1758206e..1da17c8 100644
--- a/content/browser/renderer_host/render_widget_targeter.cc
+++ b/content/browser/renderer_host/render_widget_targeter.cc
@@ -47,8 +47,7 @@
 
 constexpr const char kTracingCategory[] = "input,latency";
 
-constexpr base::TimeDelta kAsyncHitTestTimeout =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kAsyncHitTestTimeout = base::Seconds(5);
 
 }  // namespace
 
diff --git a/content/browser/renderer_host/text_input_client_mac.h b/content/browser/renderer_host/text_input_client_mac.h
index a44186d4..67236887 100644
--- a/content/browser/renderer_host/text_input_client_mac.h
+++ b/content/browser/renderer_host/text_input_client_mac.h
@@ -129,7 +129,7 @@
   // the renderer.
   // TODO(rsesek): Using the histogram data, find the best upper-bound for this
   // value.
-  base::TimeDelta wait_timeout_ = base::TimeDelta::FromMilliseconds(1500);
+  base::TimeDelta wait_timeout_ = base::Milliseconds(1500);
 
   DISALLOW_COPY_AND_ASSIGN(TextInputClientMac);
 };
diff --git a/content/browser/renderer_host/text_input_client_mac_unittest.mm b/content/browser/renderer_host/text_input_client_mac_unittest.mm
index 734f64e..fd187216 100644
--- a/content/browser/renderer_host/text_input_client_mac_unittest.mm
+++ b/content/browser/renderer_host/text_input_client_mac_unittest.mm
@@ -92,7 +92,7 @@
   // a short delay.
   void PostTask(base::Location from_here, base::OnceClosure task) {
     PostTask(std::move(from_here), std::move(task),
-             base::TimeDelta::FromMilliseconds(kTaskDelayMs));
+             base::Milliseconds(kTaskDelayMs));
   }
 
   void PostTask(base::Location from_here,
@@ -178,7 +178,7 @@
   PostTask(FROM_HERE,
            base::BindOnce(&TextInputClientMac::SetCharacterIndexAndSignal,
                           base::Unretained(service()), UINT32_MAX),
-           base::TimeDelta::FromMilliseconds(kTaskDelayMs) * 2);
+           base::Milliseconds(kTaskDelayMs) * 2);
 
   base::RunLoop run_loop1;
   local_frame()->SetCallback(run_loop1.QuitClosure());
@@ -214,7 +214,7 @@
   local_frame()->SetCallback(run_loop.QuitClosure());
 
   base::TimeDelta old_timeout = service()->wait_timeout_for_tests();
-  service()->set_wait_timeout_for_tests(base::TimeDelta::FromMilliseconds(300));
+  service()->set_wait_timeout_for_tests(base::Milliseconds(300));
 
   gfx::Rect rect =
       service()->GetFirstRectForRange(widget(), gfx::Range(NSMakeRange(0, 32)));
diff --git a/content/browser/scheduler/browser_task_executor_unittest.cc b/content/browser/scheduler/browser_task_executor_unittest.cc
index a848e05..663cd19 100644
--- a/content/browser/scheduler/browser_task_executor_unittest.cc
+++ b/content/browser/scheduler/browser_task_executor_unittest.cc
@@ -245,11 +245,10 @@
   StrictMockTask best_effort;
 
   ui_best_effort_runner->PostTask(FROM_HERE, best_effort.Get());
-  ui_best_effort_runner->PostDelayedTask(
-      FROM_HERE, best_effort.Get(), base::TimeDelta::FromMilliseconds(100));
+  ui_best_effort_runner->PostDelayedTask(FROM_HERE, best_effort.Get(),
+                                         base::Milliseconds(100));
   GetUIThreadTaskRunner({base::TaskPriority::BEST_EFFORT})
-      ->PostDelayedTask(FROM_HERE, best_effort.Get(),
-                        base::TimeDelta::FromMilliseconds(100));
+      ->PostDelayedTask(FROM_HERE, best_effort.Get(), base::Milliseconds(100));
   GetUIThreadTaskRunner({base::TaskPriority::BEST_EFFORT})
       ->PostTask(FROM_HERE,
 
@@ -258,7 +257,7 @@
 
   BrowserTaskExecutor::EnableAllQueues();
   EXPECT_CALL(best_effort, Run).Times(4);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  task_environment_.FastForwardBy(base::Milliseconds(100));
 }
 
 }  // namespace content
diff --git a/content/browser/scheduler/responsiveness/calculator.cc b/content/browser/scheduler/responsiveness/calculator.cc
index c1791f2..676ec1e8 100644
--- a/content/browser/scheduler/responsiveness/calculator.cc
+++ b/content/browser/scheduler/responsiveness/calculator.cc
@@ -21,15 +21,15 @@
 // We divide the measurement interval into discretized time slices.
 // Each slice is marked as janky if it contained a janky task. A janky task is
 // one whose execution latency is greater than kJankThreshold.
-constexpr auto kMeasurementInterval = base::TimeDelta::FromSeconds(30);
+constexpr auto kMeasurementInterval = base::Seconds(30);
 
 // A task or event longer than kJankThreshold is considered janky.
-constexpr auto kJankThreshold = base::TimeDelta::FromMilliseconds(100);
+constexpr auto kJankThreshold = base::Milliseconds(100);
 
 // If there have been no events/tasks on the UI thread for a significant period
 // of time, it's likely because Chrome was suspended.
 // This value is copied from queueing_time_estimator.cc:kInvalidPeriodThreshold.
-constexpr auto kSuspendInterval = base::TimeDelta::FromSeconds(30);
+constexpr auto kSuspendInterval = base::Seconds(30);
 
 constexpr char kLatencyEventCategory[] = "latency";
 
diff --git a/content/browser/scheduler/responsiveness/calculator_unittest.cc b/content/browser/scheduler/responsiveness/calculator_unittest.cc
index d38a7a8..f540a7a 100644
--- a/content/browser/scheduler/responsiveness/calculator_unittest.cc
+++ b/content/browser/scheduler/responsiveness/calculator_unittest.cc
@@ -58,24 +58,20 @@
                   int execution_start_time_in_ms,
                   int execution_finish_time_in_ms) {
     calculator_->TaskOrEventFinishedOnUIThread(
+        last_calculation_time_ + base::Milliseconds(queue_time_in_ms),
+        last_calculation_time_ + base::Milliseconds(execution_start_time_in_ms),
         last_calculation_time_ +
-            base::TimeDelta::FromMilliseconds(queue_time_in_ms),
-        last_calculation_time_ +
-            base::TimeDelta::FromMilliseconds(execution_start_time_in_ms),
-        last_calculation_time_ +
-            base::TimeDelta::FromMilliseconds(execution_finish_time_in_ms));
+            base::Milliseconds(execution_finish_time_in_ms));
   }
 
   void AddEventIO(int queue_time_in_ms,
                   int execution_start_time_in_ms,
                   int execution_finish_time_in_ms) {
     calculator_->TaskOrEventFinishedOnIOThread(
+        last_calculation_time_ + base::Milliseconds(queue_time_in_ms),
+        last_calculation_time_ + base::Milliseconds(execution_start_time_in_ms),
         last_calculation_time_ +
-            base::TimeDelta::FromMilliseconds(queue_time_in_ms),
-        last_calculation_time_ +
-            base::TimeDelta::FromMilliseconds(execution_start_time_in_ms),
-        last_calculation_time_ +
-            base::TimeDelta::FromMilliseconds(execution_finish_time_in_ms));
+            base::Milliseconds(execution_finish_time_in_ms));
   }
 
   void TriggerCalculation() {
@@ -535,7 +531,7 @@
 TEST_F(ResponsivenessCalculatorTest, EmitResponsivenessTraceEventsEmpty) {
   constexpr base::TimeTicks kStartTime = base::TimeTicks();
   constexpr base::TimeTicks kFinishTime =
-      kStartTime + base::TimeDelta::FromMilliseconds(kMeasurementIntervalInMs);
+      kStartTime + base::Milliseconds(kMeasurementIntervalInMs);
   const std::set<int> janky_slices;
 
   EXPECT_CALL(*calculator_, EmitJankyIntervalsMeasurementTraceEvent(_, _, _))
@@ -548,7 +544,7 @@
 TEST_F(ResponsivenessCalculatorTest, EmitResponsivenessTraceEventsWrongMetric) {
   constexpr base::TimeTicks kStartTime = base::TimeTicks();
   constexpr base::TimeTicks kFinishTime =
-      kStartTime + base::TimeDelta::FromMilliseconds(kMeasurementIntervalInMs);
+      kStartTime + base::Milliseconds(kMeasurementIntervalInMs);
   const std::set<int> janky_slices = {1};
 
   EXPECT_CALL(*calculator_, EmitJankyIntervalsMeasurementTraceEvent(_, _, _))
@@ -560,10 +556,10 @@
 
 TEST_F(ResponsivenessCalculatorTest, EmitResponsivenessTraceEvents) {
   constexpr base::TimeDelta kSliceInterval =
-      base::TimeDelta::FromMilliseconds(kJankThresholdInMs);
+      base::Milliseconds(kJankThresholdInMs);
   constexpr base::TimeTicks kStartTime = base::TimeTicks();
   constexpr base::TimeTicks kFinishTime =
-      kStartTime + base::TimeDelta::FromMilliseconds(kMeasurementIntervalInMs);
+      kStartTime + base::Milliseconds(kMeasurementIntervalInMs);
 
   const std::set<int> janky_slices = {3, 4, 5, 12, 15};
 
diff --git a/content/browser/scheduler/responsiveness/jank_monitor_impl.cc b/content/browser/scheduler/responsiveness/jank_monitor_impl.cc
index aaee26a..24a0ad0 100644
--- a/content/browser/scheduler/responsiveness/jank_monitor_impl.cc
+++ b/content/browser/scheduler/responsiveness/jank_monitor_impl.cc
@@ -185,7 +185,7 @@
     return;
 
   static base::TimeDelta monitor_check_interval =
-      base::TimeDelta::FromMilliseconds(kMonitorCheckIntervalMs);
+      base::Milliseconds(kMonitorCheckIntervalMs);
   // RepeatingClosure bound to the timer doesn't hold a ref to |this| because
   // the ref will only be released on timer destruction.
   timer_->Start(FROM_HERE, monitor_check_interval,
@@ -298,8 +298,7 @@
   DCHECK_CALLED_ON_VALID_SEQUENCE(monitor_sequence_checker_);
 
   base::TimeTicks now = base::TimeTicks::Now();
-  static base::TimeDelta jank_threshold =
-      base::TimeDelta::FromMilliseconds(kJankThresholdMs);
+  static base::TimeDelta jank_threshold = base::Milliseconds(kJankThresholdMs);
 
   base::AutoLock lock(lock_);
   if (LIKELY(task_execution_metadata_.empty() ||
diff --git a/content/browser/scheduler/responsiveness/jank_monitor_impl_unittest.cc b/content/browser/scheduler/responsiveness/jank_monitor_impl_unittest.cc
index 8daaf6b..587c0c7b 100644
--- a/content/browser/scheduler/responsiveness/jank_monitor_impl_unittest.cc
+++ b/content/browser/scheduler/responsiveness/jank_monitor_impl_unittest.cc
@@ -139,7 +139,7 @@
     VALIDATE_TEST_OBSERVER_CALLS();
     // This is a janky task that runs for 1.5 seconds.
     expected_jank_started_++;
-    task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1500));
+    task_environment_.FastForwardBy(base::Milliseconds(1500));
 
     // Monitor should observe that the jank has started.
     VALIDATE_TEST_OBSERVER_CALLS();
@@ -173,7 +173,7 @@
 
     // This is a janky task that runs for 1.5 seconds.
     expected_jank_started_++;
-    task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1500));
+    task_environment_.FastForwardBy(base::Milliseconds(1500));
 
     // Monitor should observe that the jank has started.
     VALIDATE_TEST_OBSERVER_CALLS();
@@ -197,14 +197,14 @@
 
     // This is a janky task that runs for 1.5 seconds.
     expected_jank_started_++;
-    task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1500));
+    task_environment_.FastForwardBy(base::Milliseconds(1500));
 
     // Monitor should observe that the jank has started.
     VALIDATE_TEST_OBSERVER_CALLS();
 
     auto nested_janky_task = [&]() {
       // This also janks the current thread.
-      task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1500));
+      task_environment_.FastForwardBy(base::Milliseconds(1500));
 
       // The callback shouldn't be called.
       VALIDATE_TEST_OBSERVER_CALLS();
@@ -231,7 +231,7 @@
     // Run 5 responsive tasks in the inner runloop.
     for (int i = 0; i < 5; i++) {
       auto nested_responsive_task = [&]() {
-        task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(999));
+        task_environment_.FastForwardBy(base::Milliseconds(999));
 
         // The callback shouldn't be called. |expected_jank_started_| and
         // |expected_jank_stopped_| should be 0.
@@ -259,7 +259,7 @@
   auto enclosing_task = [&]() {
     // Run 1 responsive tasks in the inner runloop.
     auto nested_responsive_task = [&]() {
-      task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(999));
+      task_environment_.FastForwardBy(base::Milliseconds(999));
 
       // The callback shouldn't be called. |expected_jank_started_| should be 0.
       VALIDATE_TEST_OBSERVER_CALLS();
@@ -271,7 +271,7 @@
 
     // Then run 1 responsive tasks in the inner runloop.
     auto nested_janky_task = [&]() {
-      task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1500));
+      task_environment_.FastForwardBy(base::Milliseconds(1500));
 
       // We should detect one jank.
       expected_jank_started_++;
@@ -304,14 +304,14 @@
 
     // This should trigger the monitor. TestJankMonitor::OnJankStarted() should
     // be called once.
-    task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1500));
+    task_environment_.FastForwardBy(base::Milliseconds(1500));
     VALIDATE_TEST_OBSERVER_CALLS();
 
     // The IO thread is also janky.
     auto janky_task_io = [&]() {
       // This is a janky task that runs for 1.5 seconds, but shouldn't trigger
       // the monitor.
-      task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1500));
+      task_environment_.FastForwardBy(base::Milliseconds(1500));
       VALIDATE_TEST_OBSERVER_CALLS();
 
       // Monitor should observe that the jank has started.
@@ -322,7 +322,7 @@
     // TestJankMonitor::OnJankStopped() shouldn't be called.
     VALIDATE_TEST_OBSERVER_CALLS();
 
-    task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(500));
+    task_environment_.FastForwardBy(base::Milliseconds(500));
     expected_jank_stopped_++;
   };
   content::GetUIThreadTaskRunner({})->PostTask(
@@ -341,7 +341,7 @@
   EXPECT_TRUE(monitor_->timer_running());
 
   // 11 seconds passed with no activity - timer should be stopped.
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(11 * 1000));
+  task_environment_.FastForwardBy(base::Milliseconds(11 * 1000));
   EXPECT_FALSE(monitor_->timer_running());
 
   // Activity on IO thread - timer should be restarted.
@@ -350,7 +350,7 @@
   EXPECT_TRUE(monitor_->timer_running());
 
   // 11 seconds passed with no activity - timer should be stopped.
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(11 * 1000));
+  task_environment_.FastForwardBy(base::Milliseconds(11 * 1000));
   EXPECT_FALSE(monitor_->timer_running());
 }
 
@@ -443,7 +443,7 @@
   void FinishDestroyMetricSource() override {
     // Forward by 1 ms to trigger the monitor timer. This shouldn't crash even
     // after MetricSource is destroyed.
-    task_environment_->FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+    task_environment_->FastForwardBy(base::Milliseconds(1));
 
     JankMonitorImpl::FinishDestroyMetricSource();
   }
@@ -471,10 +471,8 @@
   task_environment.RunUntilIdle();
 
   // Fast-forward by 499 ms. This shouldn't trigger the monitor timer.
-  static constexpr base::TimeDelta kCheckInterval =
-      base::TimeDelta::FromMilliseconds(500);
-  task_environment.FastForwardBy(kCheckInterval -
-                                 base::TimeDelta::FromMilliseconds(1));
+  static constexpr base::TimeDelta kCheckInterval = base::Milliseconds(500);
+  task_environment.FastForwardBy(kCheckInterval - base::Milliseconds(1));
 
   EXPECT_FALSE(jank_monitor->monitor_timer_fired());
 
diff --git a/content/browser/scheduler/responsiveness/watcher_unittest.cc b/content/browser/scheduler/responsiveness/watcher_unittest.cc
index 5c36372..79a481885 100644
--- a/content/browser/scheduler/responsiveness/watcher_unittest.cc
+++ b/content/browser/scheduler/responsiveness/watcher_unittest.cc
@@ -186,7 +186,7 @@
   base::PendingTask task2(FROM_HERE, base::OnceClosure(),
                           /*queue_time=*/base::TimeTicks::Now(),
                           /*delayed_run_time=*/base::TimeTicks());
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_environment_.FastForwardBy(base::Milliseconds(1));
   base::PendingTask task3(FROM_HERE, base::OnceClosure(),
                           /*queue_time=*/base::TimeTicks::Now(),
                           /*delayed_run_time=*/base::TimeTicks());
@@ -197,17 +197,17 @@
   watcher_->WillRunTaskOnUIThread(&task2,
                                   /* was_blocked_or_low_priority= */ false);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_environment_.FastForwardBy(base::Milliseconds(1));
   const base::TimeTicks task_3_execution_start_time = base::TimeTicks::Now();
-  EXPECT_EQ(task_1_execution_start_time + base::TimeDelta::FromMilliseconds(1),
+  EXPECT_EQ(task_1_execution_start_time + base::Milliseconds(1),
             task_3_execution_start_time);
   watcher_->WillRunTaskOnUIThread(&task3,
                                   /* was_blocked_or_low_priority= */ false);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_environment_.FastForwardBy(base::Milliseconds(1));
   const base::TimeTicks task_3_execution_finish_time = base::TimeTicks::Now();
   watcher_->DidRunTaskOnUIThread(&task3);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_environment_.FastForwardBy(base::Milliseconds(1));
   watcher_->DidRunTaskOnUIThread(&task2);
   watcher_->DidRunTaskOnUIThread(&task1);
 
@@ -230,7 +230,7 @@
   void* opaque_identifier = reinterpret_cast<void*>(0x1234);
   watcher_->WillRunEventOnUIThread(opaque_identifier);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_environment_.FastForwardBy(base::Milliseconds(1));
   const base::TimeTicks finish_time = base::TimeTicks::Now();
   watcher_->DidRunEventOnUIThread(opaque_identifier);
 
@@ -248,12 +248,12 @@
   base::PendingTask task(FROM_HERE, base::OnceClosure(),
                          /*queue_time=*/base::TimeTicks::Now(),
                          /*delayed_run_time=*/base::TimeTicks());
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
 
   const base::TimeTicks execution_start_time = base::TimeTicks::Now();
   watcher_->WillRunTaskOnUIThread(&task,
                                   /* was_blocked_or_low_priority= */ true);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_environment_.FastForwardBy(base::Milliseconds(1));
   const base::TimeTicks execution_finish_time = base::TimeTicks::Now();
   watcher_->DidRunTaskOnUIThread(&task);
 
@@ -274,12 +274,12 @@
   base::PendingTask task(FROM_HERE, base::OnceClosure(),
                          /*queue_time=*/base::TimeTicks(),
                          /*delayed_run_time=*/base::TimeTicks::Now());
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
 
   const base::TimeTicks execution_start_time = base::TimeTicks::Now();
   watcher_->WillRunTaskOnUIThread(&task,
                                   /* was_blocked_or_low_priority= */ false);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_environment_.FastForwardBy(base::Milliseconds(1));
   const base::TimeTicks execution_finish_time = base::TimeTicks::Now();
   watcher_->DidRunTaskOnUIThread(&task);
 
diff --git a/content/browser/service_process_host_browsertest.cc b/content/browser/service_process_host_browsertest.cc
index a8a7d8b..f1d17ba 100644
--- a/content/browser/service_process_host_browsertest.cc
+++ b/content/browser/service_process_host_browsertest.cc
@@ -139,7 +139,7 @@
   auto echo_service = ServiceProcessHost::Launch<echo::mojom::EchoService>();
 
   base::RunLoop wait_for_idle_loop;
-  constexpr auto kTimeout = base::TimeDelta::FromSeconds(1);
+  constexpr auto kTimeout = base::Seconds(1);
   echo_service.set_idle_handler(kTimeout, base::BindLambdaForTesting([&] {
                                   wait_for_idle_loop.Quit();
                                   echo_service.reset();
diff --git a/content/browser/service_worker/service_worker_browsertest.cc b/content/browser/service_worker/service_worker_browsertest.cc
index 2b0f059..228ad3e6 100644
--- a/content/browser/service_worker/service_worker_browsertest.cc
+++ b/content/browser/service_worker/service_worker_browsertest.cc
@@ -782,7 +782,7 @@
   // In production code, WakeUp() as the result of
   // RequestTermination() doesn't happen when the idle timer delay is
   // set to zero. Instead, activating a new worker will be triggered.
-  version->endpoint()->SetIdleDelay(base::TimeDelta::FromSeconds(0));
+  version->endpoint()->SetIdleDelay(base::Seconds(0));
 
   // Trigger another sub resource request. The sub resource request will
   // directly go to the worker thread and be queued because the worker is
diff --git a/content/browser/service_worker/service_worker_consts.h b/content/browser/service_worker/service_worker_consts.h
index 95f080e..8852d823 100644
--- a/content/browser/service_worker/service_worker_consts.h
+++ b/content/browser/service_worker/service_worker_consts.h
@@ -51,7 +51,7 @@
   // The HTTP cache is bypassed for Service Worker scripts if the last network
   // fetch occurred over 24 hours ago.
   static constexpr base::TimeDelta kServiceWorkerScriptMaxCacheAge =
-      base::TimeDelta::FromHours(24);
+      base::Hours(24);
 };
 
 }  // namespace content
diff --git a/content/browser/service_worker/service_worker_fetch_dispatcher_browsertest.cc b/content/browser/service_worker/service_worker_fetch_dispatcher_browsertest.cc
index dd1377c..611c2fc 100644
--- a/content/browser/service_worker/service_worker_fetch_dispatcher_browsertest.cc
+++ b/content/browser/service_worker/service_worker_fetch_dispatcher_browsertest.cc
@@ -198,8 +198,8 @@
     // idle state on the renderer and it has no work on the browser. The default
     // delay to become an idle is 30 seconds
     // (kServiceWorkerDefaultIdleDelayInSeconds).
-    base::test::ScopedRunLoopTimeout specific_timeout(
-        FROM_HERE, base::TimeDelta::FromSeconds(35));
+    base::test::ScopedRunLoopTimeout specific_timeout(FROM_HERE,
+                                                      base::Seconds(35));
     base::RunLoop run_loop;
     NoWorkObserver observer(run_loop.QuitClosure());
     version->AddObserver(&observer);
diff --git a/content/browser/service_worker/service_worker_job_unittest.cc b/content/browser/service_worker/service_worker_job_unittest.cc
index 6486f80..da1f4e62 100644
--- a/content/browser/service_worker/service_worker_job_unittest.cc
+++ b/content/browser/service_worker/service_worker_job_unittest.cc
@@ -1599,8 +1599,7 @@
 
 TEST_F(ServiceWorkerUpdateJobTest, Update_BumpLastUpdateCheckTime) {
   const base::Time kToday = base::Time::Now();
-  const base::Time kYesterday =
-      kToday - base::TimeDelta::FromDays(1) - base::TimeDelta::FromHours(1);
+  const base::Time kYesterday = kToday - base::Days(1) - base::Hours(1);
   const GURL kNewVersionOrigin("https://newversion/");
 
   scoped_refptr<ServiceWorkerRegistration> registration =
@@ -2108,8 +2107,7 @@
 )";
 
   const base::Time kToday = base::Time::Now();
-  const base::Time kYesterday =
-      kToday - base::TimeDelta::FromDays(1) - base::TimeDelta::FromHours(1);
+  const base::Time kYesterday = kToday - base::Days(1) - base::Hours(1);
 
   scoped_refptr<ServiceWorkerRegistration> registration =
       update_helper_->SetupInitialRegistration(kNewVersionOrigin);
@@ -2212,7 +2210,7 @@
       SaveRegistration(blink::ServiceWorkerStatusCode::kErrorTimeout,
                        &registration1, loop1.QuitClosure()));
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_environment_.FastForwardBy(base::Minutes(1));
 
   // Make a job that gets stuck due to a worker that doesn't finish the install
   // event. The callback is called with kOk, but the job will be stuck until
@@ -2228,7 +2226,7 @@
       SaveRegistration(blink::ServiceWorkerStatusCode::kOk, &registration2,
                        loop2.QuitClosure()));
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_environment_.FastForwardBy(base::Minutes(1));
 
   // Make a normal job.
   base::RunLoop loop3;
@@ -2240,10 +2238,10 @@
       SaveRegistration(blink::ServiceWorkerStatusCode::kOk, &registration3,
                        loop3.QuitClosure()));
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_environment_.FastForwardBy(base::Minutes(1));
 
   // Timeout the first job.
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(2));
+  task_environment_.FastForwardBy(base::Minutes(2));
   loop1.Run();
 
   // Let the second job run until the install event is dispatched, then
@@ -2253,7 +2251,7 @@
       registration2->installing_version();
   ASSERT_TRUE(version);
   EXPECT_EQ(ServiceWorkerVersion::INSTALLING, version->status());
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(5));
+  task_environment_.FastForwardBy(base::Minutes(5));
   EXPECT_EQ(ServiceWorkerVersion::REDUNDANT, version->status());
 
   // Let the third job finish successfully. It might have already been
diff --git a/content/browser/service_worker/service_worker_main_resource_loader_unittest.cc b/content/browser/service_worker/service_worker_main_resource_loader_unittest.cc
index 2de93c2..e70fd072 100644
--- a/content/browser/service_worker/service_worker_main_resource_loader_unittest.cc
+++ b/content/browser/service_worker/service_worker_main_resource_loader_unittest.cc
@@ -267,7 +267,7 @@
             std::move(finish_callback));
         break;
       case ResponseMode::kDispatchAfter1sDelay:
-        task_environment_->AdvanceClock(base::TimeDelta::FromSeconds(1));
+        task_environment_->AdvanceClock(base::Seconds(1));
         FakeServiceWorker::DispatchFetchEventForMainResource(
             std::move(params), response_callback.Unbind(),
             std::move(finish_callback));
@@ -1125,13 +1125,11 @@
   auto& info = client_.response_head();
   EXPECT_EQ(200, info->headers->response_code());
   ExpectResponseInfo(*info, *CreateResponseInfoFromServiceWorker());
-  EXPECT_EQ(base::TimeDelta::FromSeconds(1),
-            info->load_timing.service_worker_ready_time -
-                info->load_timing.service_worker_start_time);
-  EXPECT_EQ(base::TimeDelta::FromSeconds(1),
-            info->load_timing.service_worker_fetch_start -
-                info->load_timing.service_worker_start_time);
-  EXPECT_EQ(base::TimeDelta::FromSeconds(1),
+  EXPECT_EQ(base::Seconds(1), info->load_timing.service_worker_ready_time -
+                                  info->load_timing.service_worker_start_time);
+  EXPECT_EQ(base::Seconds(1), info->load_timing.service_worker_fetch_start -
+                                  info->load_timing.service_worker_start_time);
+  EXPECT_EQ(base::Seconds(1),
             info->load_timing.service_worker_respond_with_settled -
                 info->load_timing.service_worker_start_time);
 }
diff --git a/content/browser/service_worker/service_worker_metrics_unittest.cc b/content/browser/service_worker/service_worker_metrics_unittest.cc
index 9ec4f4c..3e61a67 100644
--- a/content/browser/service_worker/service_worker_metrics_unittest.cc
+++ b/content/browser/service_worker/service_worker_metrics_unittest.cc
@@ -14,7 +14,7 @@
 namespace {
 
 base::TimeTicks AdvanceTime(base::TimeTicks* time, int milliseconds) {
-  *time += base::TimeDelta::FromMilliseconds(milliseconds);
+  *time += base::Milliseconds(milliseconds);
   return *time;
 }
 
diff --git a/content/browser/service_worker/service_worker_object_host.cc b/content/browser/service_worker/service_worker_object_host.cc
index dc9ff81..8b0e2d5 100644
--- a/content/browser/service_worker/service_worker_object_host.cc
+++ b/content/browser/service_worker/service_worker_object_host.cc
@@ -69,7 +69,7 @@
     PrepareExtendableMessageEventCallback prepare_callback) {
   // If not enough time is left to actually process the event don't even
   // bother starting the worker and sending the event.
-  if (timeout && *timeout < base::TimeDelta::FromMilliseconds(100)) {
+  if (timeout && *timeout < base::Milliseconds(100)) {
     std::move(callback).Run(blink::ServiceWorkerStatusCode::kErrorTimeout);
     return;
   }
diff --git a/content/browser/service_worker/service_worker_object_host_unittest.cc b/content/browser/service_worker/service_worker_object_host_unittest.cc
index 7ed7a603..3476e243 100644
--- a/content/browser/service_worker/service_worker_object_host_unittest.cc
+++ b/content/browser/service_worker/service_worker_object_host_unittest.cc
@@ -292,8 +292,8 @@
   ASSERT_EQ(blink::ServiceWorkerStatusCode::kOk,
             StartServiceWorker(version_.get()));
 
-  const base::TimeDelta kRequestTimeout = base::TimeDelta::FromMinutes(5);
-  const base::TimeDelta kFourSeconds = base::TimeDelta::FromSeconds(4);
+  const base::TimeDelta kRequestTimeout = base::Minutes(5);
+  const base::TimeDelta kFourSeconds = base::Seconds(4);
 
   // After startup, the remaining timeout is expected to be kRequestTimeout.
   EXPECT_EQ(kRequestTimeout, version_->remaining_timeout());
diff --git a/content/browser/service_worker/service_worker_ping_controller.cc b/content/browser/service_worker/service_worker_ping_controller.cc
index 2f9425a5..c158050 100644
--- a/content/browser/service_worker/service_worker_ping_controller.cc
+++ b/content/browser/service_worker/service_worker_ping_controller.cc
@@ -10,7 +10,7 @@
 
 namespace {
 // Timeout for waiting for a response to a ping.
-constexpr base::TimeDelta kPingTimeout = base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kPingTimeout = base::Seconds(30);
 }  // namespace
 
 ServiceWorkerPingController::ServiceWorkerPingController(
diff --git a/content/browser/service_worker/service_worker_registration.cc b/content/browser/service_worker/service_worker_registration.cc
index 644668a..8ef5bd9 100644
--- a/content/browser/service_worker/service_worker_registration.cc
+++ b/content/browser/service_worker/service_worker_registration.cc
@@ -33,7 +33,7 @@
 // this time ago, or the outgoing worker has had no controllees for a continuous
 // period of time exceeding this time, the outgoing worker will be removed even
 // if it has ongoing requests.
-constexpr base::TimeDelta kMaxLameDuckTime = base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kMaxLameDuckTime = base::Minutes(5);
 
 ServiceWorkerVersionInfo GetVersionInfo(ServiceWorkerVersion* version) {
   if (!version)
@@ -528,7 +528,7 @@
         FROM_HERE,
         base::BindOnce(&ServiceWorkerRegistration::ContinueActivation, this,
                        activating_version),
-        base::TimeDelta::FromSeconds(1));
+        base::Seconds(1));
   } else {
     ContinueActivation(std::move(activating_version));
   }
diff --git a/content/browser/service_worker/service_worker_registration_object_host.cc b/content/browser/service_worker/service_worker_registration_object_host.cc
index b1d4f08..22f99b4f 100644
--- a/content/browser/service_worker/service_worker_registration_object_host.cc
+++ b/content/browser/service_worker/service_worker_registration_object_host.cc
@@ -24,8 +24,8 @@
 
 namespace {
 
-constexpr base::TimeDelta kSelfUpdateDelay = base::TimeDelta::FromSeconds(30);
-constexpr base::TimeDelta kMaxSelfUpdateDelay = base::TimeDelta::FromMinutes(3);
+constexpr base::TimeDelta kSelfUpdateDelay = base::Seconds(30);
+constexpr base::TimeDelta kMaxSelfUpdateDelay = base::Minutes(3);
 
 // Returns an object info to send over Mojo. The info must be sent immediately.
 // See ServiceWorkerObjectHost::CreateCompleteObjectInfoToSend() for details.
diff --git a/content/browser/service_worker/service_worker_registration_unittest.cc b/content/browser/service_worker/service_worker_registration_unittest.cc
index d55df2c..1fc68b4 100644
--- a/content/browser/service_worker/service_worker_registration_unittest.cc
+++ b/content/browser/service_worker/service_worker_registration_unittest.cc
@@ -61,7 +61,7 @@
 namespace {
 
 // From service_worker_registration.cc.
-constexpr base::TimeDelta kMaxLameDuckTime = base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kMaxLameDuckTime = base::Minutes(5);
 
 int CreateInflightRequest(ServiceWorkerVersion* version) {
   EXPECT_EQ(blink::ServiceWorkerStatusCode::kOk, StartServiceWorker(version));
@@ -580,8 +580,7 @@
   EXPECT_EQ(version_1.get(), reg->active_version());
   // The idle timer living in the renderer is requested to notify the idle state
   // to the browser ASAP.
-  EXPECT_EQ(base::TimeDelta::FromSeconds(0),
-            version_1_service_worker()->idle_delay().value());
+  EXPECT_EQ(base::Seconds(0), version_1_service_worker()->idle_delay().value());
 
   // Finish the request. Activation should happen.
   version_1->FinishRequest(inflight_request_id(), /*was_handled=*/true);
@@ -607,8 +606,7 @@
                                   skip_waiting_loop.QuitClosure());
   EXPECT_FALSE(result.has_value());
   EXPECT_EQ(version_1.get(), reg->active_version());
-  EXPECT_EQ(base::TimeDelta::FromSeconds(0),
-            version_1_service_worker()->idle_delay().value());
+  EXPECT_EQ(base::Seconds(0), version_1_service_worker()->idle_delay().value());
 
   // Finish the request. FinishRequest() doesn't immediately make the worker
   // reach the "no work" state. It needs to be notfied of the idle state by
@@ -644,8 +642,7 @@
   SimulateSkipWaitingWithCallback(version_2.get(), &result,
                                   skip_waiting_loop.QuitClosure());
 
-  EXPECT_EQ(base::TimeDelta::FromSeconds(0),
-            version_1_service_worker()->idle_delay().value());
+  EXPECT_EQ(base::Seconds(0), version_1_service_worker()->idle_delay().value());
   EXPECT_FALSE(result.has_value());
   EXPECT_EQ(version_1.get(), reg->active_version());
   RequestTermination(&version_1_client()->host());
@@ -675,21 +672,21 @@
   SimulateSkipWaiting(version.get(), &result);
   EXPECT_TRUE(result.has_value());
   EXPECT_TRUE(*result);
-  clock.Advance(base::TimeDelta::FromSeconds(11));
+  clock.Advance(base::Seconds(11));
   EXPECT_EQ(base::TimeDelta(), version->TimeSinceSkipWaiting());
 
   // Install the version. Now the skip waiting time starts ticking.
   version->SetStatus(ServiceWorkerVersion::INSTALLED);
   reg->SetWaitingVersion(version);
   base::RunLoop().RunUntilIdle();
-  clock.Advance(base::TimeDelta::FromSeconds(33));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(33), version->TimeSinceSkipWaiting());
+  clock.Advance(base::Seconds(33));
+  EXPECT_EQ(base::Seconds(33), version->TimeSinceSkipWaiting());
 
   result.reset();
   // Call skipWaiting() again. It doesn't reset the time.
   SimulateSkipWaiting(version.get(), &result);
   EXPECT_FALSE(result.has_value());
-  EXPECT_EQ(base::TimeDelta::FromSeconds(33), version->TimeSinceSkipWaiting());
+  EXPECT_EQ(base::Seconds(33), version->TimeSinceSkipWaiting());
 }
 
 // Test lame duck timer triggered by skip waiting.
@@ -714,7 +711,7 @@
   EXPECT_TRUE(IsLameDuckTimerRunning());
 
   // Move forward by lame duck time.
-  clock_2.Advance(kMaxLameDuckTime + base::TimeDelta::FromSeconds(1));
+  clock_2.Advance(kMaxLameDuckTime + base::Seconds(1));
 
   // Activation should happen by the lame duck timer.
   RunLameDuckTimer();
@@ -752,7 +749,7 @@
   EXPECT_TRUE(IsLameDuckTimerRunning());
 
   // Move clock forward by a little bit.
-  constexpr base::TimeDelta kLittleBit = base::TimeDelta::FromMinutes(1);
+  constexpr base::TimeDelta kLittleBit = base::Minutes(1);
   clock_1.Advance(kLittleBit);
 
   // Add a controllee again to reset the lame duck period.
@@ -766,8 +763,7 @@
   EXPECT_TRUE(IsLameDuckTimerRunning());
 
   // Move clock forward to the next lame duck timer tick.
-  clock_1.Advance(kMaxLameDuckTime - kLittleBit +
-                  base::TimeDelta::FromSeconds(1));
+  clock_1.Advance(kMaxLameDuckTime - kLittleBit + base::Seconds(1));
 
   // Run the lame duck timer. Activation should not yet happen
   // since the lame duck period has not expired.
@@ -777,7 +773,7 @@
   EXPECT_TRUE(IsLameDuckTimerRunning());
 
   // Continue on to the next lame duck timer tick.
-  clock_1.Advance(kMaxLameDuckTime + base::TimeDelta::FromSeconds(1));
+  clock_1.Advance(kMaxLameDuckTime + base::Seconds(1));
 
   // Activation should happen by the lame duck timer.
   RunLameDuckTimer();
@@ -1134,12 +1130,12 @@
   // eventually.
 
   // Set |self_update_delay| to a time so that update() will reject immediately.
-  registration->set_self_update_delay(base::TimeDelta::FromMinutes(5));
+  registration->set_self_update_delay(base::Minutes(5));
   EXPECT_EQ(blink::ServiceWorkerStatusCode::kErrorTimeout,
             CallDelayUpdate(
                 blink::mojom::ServiceWorkerContainerType::kForServiceWorker,
                 registration.get(), version.get()));
-  EXPECT_LE(base::TimeDelta::FromMinutes(5), registration->self_update_delay());
+  EXPECT_LE(base::Minutes(5), registration->self_update_delay());
 }
 
 TEST_P(ServiceWorkerRegistrationObjectHostUpdateTest,
@@ -1175,12 +1171,12 @@
 
   // Set |self_update_delay| to a time so that update() will reject immediately
   // if the worker doesn't have at least one controlee.
-  registration->set_self_update_delay(base::TimeDelta::FromMinutes(5));
+  registration->set_self_update_delay(base::Minutes(5));
   EXPECT_EQ(blink::ServiceWorkerStatusCode::kOk,
             CallDelayUpdate(
                 blink::mojom::ServiceWorkerContainerType::kForServiceWorker,
                 registration.get(), version.get()));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(5), registration->self_update_delay());
+  EXPECT_EQ(base::Minutes(5), registration->self_update_delay());
 }
 
 TEST_F(ServiceWorkerRegistrationObjectHostTest, Unregister_Success) {
diff --git a/content/browser/service_worker/service_worker_registry_unittest.cc b/content/browser/service_worker/service_worker_registry_unittest.cc
index a49a0f9..a3c8901 100644
--- a/content/browser/service_worker/service_worker_registry_unittest.cc
+++ b/content/browser/service_worker/service_worker_registry_unittest.cc
@@ -616,7 +616,7 @@
   const int64_t kRegistrationId = 0;
   const int64_t kVersionId = 0;
   const base::Time kToday = base::Time::Now();
-  const base::Time kYesterday = kToday - base::TimeDelta::FromDays(1);
+  const base::Time kYesterday = kToday - base::Days(1);
   std::set<blink::mojom::WebFeature> used_features = {
       blink::mojom::WebFeature::kServiceWorkerControlledPage,
       blink::mojom::WebFeature::kReferrerPolicyHeader,
diff --git a/content/browser/service_worker/service_worker_single_script_update_checker_unittest.cc b/content/browser/service_worker/service_worker_single_script_update_checker_unittest.cc
index ebc11631..f28a971 100644
--- a/content/browser/service_worker/service_worker_single_script_update_checker_unittest.cc
+++ b/content/browser/service_worker/service_worker_single_script_update_checker_unittest.cc
@@ -1092,7 +1092,7 @@
           kScriptURL, kScriptURL, GURL(kScope), false /* force_bypass_cache */,
           blink::mojom::ScriptType::kClassic,
           blink::mojom::ServiceWorkerUpdateViaCache::kAll,
-          base::TimeDelta::FromDays(1) + base::TimeDelta::FromHours(1),
+          base::Days(1) + base::Hours(1),
           std::make_unique<MockServiceWorkerResourceReader>(),
           std::make_unique<MockServiceWorkerResourceReader>(),
           std::make_unique<MockServiceWorkerResourceWriter>(),
@@ -1107,7 +1107,7 @@
       kImportedScriptURL, kScriptURL, GURL(kScope),
       false /* force_bypass_cache */, blink::mojom::ScriptType::kClassic,
       blink::mojom::ServiceWorkerUpdateViaCache::kAll,
-      base::TimeDelta::FromDays(1) + base::TimeDelta::FromHours(1),
+      base::Days(1) + base::Hours(1),
       std::make_unique<MockServiceWorkerResourceReader>(),
       std::make_unique<MockServiceWorkerResourceReader>(),
       std::make_unique<MockServiceWorkerResourceWriter>(), loader_factory.get(),
diff --git a/content/browser/service_worker/service_worker_version.cc b/content/browser/service_worker/service_worker_version.cc
index 76132e5..a1253e6 100644
--- a/content/browser/service_worker/service_worker_version.cc
+++ b/content/browser/service_worker/service_worker_version.cc
@@ -61,11 +61,10 @@
 namespace {
 
 // Timeout for an installed worker to start.
-constexpr base::TimeDelta kStartInstalledWorkerTimeout =
-    base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kStartInstalledWorkerTimeout = base::Seconds(60);
 
 // Timeout for a request to be handled.
-constexpr base::TimeDelta kRequestTimeout = base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kRequestTimeout = base::Minutes(5);
 
 const base::FeatureParam<int> kUpdateDelayParam{
     &blink::features::kServiceWorkerUpdateDelay, "update_delay_in_ms", 1000};
@@ -196,7 +195,7 @@
 }
 
 base::TimeDelta GetUpdateDelay() {
-  return base::TimeDelta::FromMilliseconds(kUpdateDelayParam.Get());
+  return base::Milliseconds(kUpdateDelayParam.Get());
 }
 
 }  // namespace
@@ -511,7 +510,7 @@
 
 void ServiceWorkerVersion::TriggerIdleTerminationAsap() {
   needs_to_be_terminated_asap_ = true;
-  endpoint()->SetIdleDelay(base::TimeDelta::FromSeconds(0));
+  endpoint()->SetIdleDelay(base::Seconds(0));
 }
 
 bool ServiceWorkerVersion::OnRequestTermination() {
@@ -538,8 +537,8 @@
       // necessarily being kept alive due to an inflight request, and will only
       // send a RequestTermination() once that request settles (which is the
       // intended behavior).
-      endpoint()->SetIdleDelay(base::TimeDelta::FromSeconds(
-          blink::mojom::kServiceWorkerDefaultIdleDelayInSeconds));
+      endpoint()->SetIdleDelay(
+          base::Seconds(blink::mojom::kServiceWorkerDefaultIdleDelayInSeconds));
     }
   }
 
@@ -773,8 +772,8 @@
   // Set the idle timeout to the default value if there's no controllee and the
   // worker is running because the worker's idle delay has been set to a shorter
   // value when all controllee are gone.
-  MaybeUpdateIdleDelayForTerminationOnNoControllee(base::TimeDelta::FromSeconds(
-      blink::mojom::kServiceWorkerDefaultIdleDelayInSeconds));
+  MaybeUpdateIdleDelayForTerminationOnNoControllee(
+      base::Seconds(blink::mojom::kServiceWorkerDefaultIdleDelayInSeconds));
 
   controllee_map_[uuid] = container_host;
   embedded_worker_->UpdateForegroundPriority();
@@ -821,7 +820,7 @@
   // When a new controllee checks in before the delay passes, the idle delay
   // is set to the default in AddControllee().
   MaybeUpdateIdleDelayForTerminationOnNoControllee(
-      base::TimeDelta::FromMilliseconds(kTerminationDelayParam.Get()));
+      base::Milliseconds(kTerminationDelayParam.Get()));
 }
 
 void ServiceWorkerVersion::OnControlleeNavigationCommitted(
@@ -1228,7 +1227,7 @@
   }
 
   MaybeUpdateIdleDelayForTerminationOnNoControllee(
-      base::TimeDelta::FromMilliseconds(kTerminationDelayParam.Get()));
+      base::Milliseconds(kTerminationDelayParam.Get()));
 }
 
 void ServiceWorkerVersion::OnStopping() {
diff --git a/content/browser/service_worker/service_worker_version.h b/content/browser/service_worker/service_worker_version.h
index 3295e88b..c1292c1 100644
--- a/content/browser/service_worker/service_worker_version.h
+++ b/content/browser/service_worker/service_worker_version.h
@@ -747,14 +747,11 @@
   };
 
   // The timeout timer interval.
-  static constexpr base::TimeDelta kTimeoutTimerDelay =
-      base::TimeDelta::FromSeconds(30);
+  static constexpr base::TimeDelta kTimeoutTimerDelay = base::Seconds(30);
   // Timeout for a new worker to start.
-  static constexpr base::TimeDelta kStartNewWorkerTimeout =
-      base::TimeDelta::FromMinutes(5);
+  static constexpr base::TimeDelta kStartNewWorkerTimeout = base::Minutes(5);
   // Timeout for the worker to stop.
-  static constexpr base::TimeDelta kStopWorkerTimeout =
-      base::TimeDelta::FromSeconds(5);
+  static constexpr base::TimeDelta kStopWorkerTimeout = base::Seconds(5);
 
   ~ServiceWorkerVersion() override;
 
diff --git a/content/browser/service_worker/service_worker_version_browsertest.cc b/content/browser/service_worker/service_worker_version_browsertest.cc
index fd18436..3537c2308 100644
--- a/content/browser/service_worker/service_worker_version_browsertest.cc
+++ b/content/browser/service_worker/service_worker_version_browsertest.cc
@@ -1071,7 +1071,7 @@
   // Simulate execution timeout. Use a delay to prevent killing the worker
   // before it's started execution.
   RunWithDelay(base::BindOnce(&self::TimeoutWorker, base::Unretained(this)),
-               base::TimeDelta::FromMilliseconds(100));
+               base::Milliseconds(100));
   start_run_loop.Run();
 
   EXPECT_EQ(blink::ServiceWorkerStatusCode::kErrorTimeout, status.value());
@@ -1096,7 +1096,7 @@
   // Simulate execution timeout. Use a delay to prevent killing the worker
   // before it's started execution.
   RunWithDelay(base::BindOnce(&self::TimeoutWorker, base::Unretained(this)),
-               base::TimeDelta::FromMilliseconds(100));
+               base::Milliseconds(100));
   install_run_loop.Run();
 
   // Terminating a worker, even one in an infinite loop, is treated as if
@@ -1280,7 +1280,7 @@
 
   // Set the last update time far in the past.
   {
-    last_update_time = base::Time::Now() - base::TimeDelta::FromHours(24);
+    last_update_time = base::Time::Now() - base::Hours(24);
     SetLastUpdateCheck(registration_id, last_update_time);
   }
 
diff --git a/content/browser/service_worker/service_worker_version_unittest.cc b/content/browser/service_worker/service_worker_version_unittest.cc
index b58575d4..7e567d7 100644
--- a/content/browser/service_worker/service_worker_version_unittest.cc
+++ b/content/browser/service_worker/service_worker_version_unittest.cc
@@ -69,8 +69,7 @@
 }
 
 base::Time GetYesterday() {
-  return base::Time::Now() - base::TimeDelta::FromDays(1) -
-         base::TimeDelta::FromSeconds(1);
+  return base::Time::Now() - base::Days(1) - base::Seconds(1);
 }
 
 class ServiceWorkerVersionTest : public testing::Test {
@@ -578,7 +577,7 @@
   // scheduled.
   version_->stale_time_ = base::TimeTicks::Now() -
                           ServiceWorkerVersion::kStartNewWorkerTimeout -
-                          base::TimeDelta::FromMinutes(1);
+                          base::Minutes(1);
   version_->OnTimeoutTimer();
   EXPECT_TRUE(version_->stale_time_.is_null());
   EXPECT_TRUE(version_->update_timer_.IsRunning());
@@ -592,7 +591,7 @@
   registration_->set_last_update_check(GetYesterday());
   base::TimeTicks stale_time = base::TimeTicks::Now() -
                                ServiceWorkerVersion::kStartNewWorkerTimeout -
-                               base::TimeDelta::FromMinutes(1);
+                               base::Minutes(1);
   version_->stale_time_ = stale_time;
 
   // Stale time is not deferred.
@@ -631,7 +630,7 @@
 // Tests the delay mechanism for self-updating service workers, to prevent
 // them from running forever (see https://crbug.com/805496).
 TEST_F(ServiceWorkerVersionTest, ResetUpdateDelay) {
-  const base::TimeDelta kMinute = base::TimeDelta::FromMinutes(1);
+  const base::TimeDelta kMinute = base::Minutes(1);
   const base::TimeDelta kNoDelay = base::TimeDelta();
 
   // Initialize the delay.
@@ -878,13 +877,13 @@
   int first_request_id = version_->StartRequestWithCustomTimeout(
       ServiceWorkerMetrics::EventType::SYNC,
       ReceiveServiceWorkerStatus(&first_status, first_run_loop.QuitClosure()),
-      base::TimeDelta::FromSeconds(2 * timeout_seconds),
+      base::Seconds(2 * timeout_seconds),
       ServiceWorkerVersion::KILL_ON_TIMEOUT);
 
   int second_request_id = version_->StartRequestWithCustomTimeout(
       ServiceWorkerMetrics::EventType::SYNC,
       ReceiveServiceWorkerStatus(&second_status, second_run_loop.QuitClosure()),
-      base::TimeDelta::FromSeconds(timeout_seconds),
+      base::Seconds(timeout_seconds),
       ServiceWorkerVersion::CONTINUE_ON_TIMEOUT);
 
   // The status should not have changed since neither task has timed out yet.
@@ -896,7 +895,7 @@
   EXPECT_FALSE(second_status);
 
   // Now advance time until the second task timeout should expire.
-  tick_clock.Advance(base::TimeDelta::FromSeconds(timeout_seconds + 1));
+  tick_clock.Advance(base::Seconds(timeout_seconds + 1));
   version_->timeout_timer_.user_task().Run();
   second_run_loop.Run();
   EXPECT_FALSE(first_status);
@@ -907,7 +906,7 @@
   EXPECT_EQ(EmbeddedWorkerStatus::RUNNING, version_->running_status());
 
   // Now advance time until both tasks should be expired.
-  tick_clock.Advance(base::TimeDelta::FromSeconds(timeout_seconds + 1));
+  tick_clock.Advance(base::Seconds(timeout_seconds + 1));
   version_->timeout_timer_.user_task().Run();
   first_run_loop.Run();
   EXPECT_EQ(blink::ServiceWorkerStatusCode::kErrorTimeout,
@@ -1020,7 +1019,7 @@
   EXPECT_TRUE(version_->timeout_timer_.IsRunning());
   version_->start_time_ = base::TimeTicks::Now() -
                           ServiceWorkerVersion::kStartNewWorkerTimeout -
-                          base::TimeDelta::FromMinutes(1);
+                          base::Minutes(1);
   version_->timeout_timer_.user_task().Run();
   run_loop.Run();
   EXPECT_EQ(blink::ServiceWorkerStatusCode::kErrorTimeout, status.value());
@@ -1053,7 +1052,7 @@
   // Simulate timeout.
   version_->stop_time_ = base::TimeTicks::Now() -
                          ServiceWorkerVersion::kStopWorkerTimeout -
-                         base::TimeDelta::FromSeconds(1);
+                         base::Seconds(1);
   version_->timeout_timer_.user_task().Run();
   run_loop.Run();
   EXPECT_TRUE(has_stopped);
@@ -1095,7 +1094,7 @@
   EXPECT_TRUE(version_->timeout_timer_.IsRunning());
   version_->stop_time_ = base::TimeTicks::Now() -
                          ServiceWorkerVersion::kStopWorkerTimeout -
-                         base::TimeDelta::FromSeconds(1);
+                         base::Seconds(1);
   version_->timeout_timer_.user_task().Run();
   run_loop.Run();
   EXPECT_TRUE(has_stopped);
@@ -1567,12 +1566,10 @@
 
  protected:
   // The value should be the same with the number set in the constructor.
-  static constexpr base::TimeDelta kTerminationDelay =
-      base::TimeDelta::FromMilliseconds(5000);
+  static constexpr base::TimeDelta kTerminationDelay = base::Milliseconds(5000);
 
   static constexpr base::TimeDelta kDefaultIdleDelay =
-      base::TimeDelta::FromSeconds(
-          blink::mojom::kServiceWorkerDefaultIdleDelayInSeconds);
+      base::Seconds(blink::mojom::kServiceWorkerDefaultIdleDelayInSeconds);
 
  private:
   base::test::ScopedFeatureList feature_list_;
diff --git a/content/browser/site_per_process_browsertest.cc b/content/browser/site_per_process_browsertest.cc
index 113fa97..e061a79 100644
--- a/content/browser/site_per_process_browsertest.cc
+++ b/content/browser/site_per_process_browsertest.cc
@@ -10221,7 +10221,7 @@
     SendTouch(main_view, ui::MotionEvent::Action::DOWN, point);
     // action_timeout() is far longer than needed for a LongPress, so we use
     // a custom timeout here.
-    DelayBy(base::TimeDelta::FromMilliseconds(2000));
+    DelayBy(base::Milliseconds(2000));
     SendTouch(main_view, ui::MotionEvent::Action::UP, point);
   }
 
@@ -10232,7 +10232,7 @@
     SendTouch(main_view, ui::MotionEvent::Action::DOWN, point);
     // tiny_timeout() is way shorter than a reasonable user-created tap gesture,
     // so we use a custom timeout here.
-    DelayBy(base::TimeDelta::FromMilliseconds(300));
+    DelayBy(base::Milliseconds(300));
     SendTouch(main_view, ui::MotionEvent::Action::UP, point);
   }
 
@@ -10344,7 +10344,7 @@
                            end_in_x_range && has_end_handle;
       }
       if (!handles_in_place)
-        DelayBy(base::TimeDelta::FromMilliseconds(100));
+        DelayBy(base::Milliseconds(100));
     }
   }
 
@@ -10446,7 +10446,7 @@
 
   // Let's wait for the previous events to clear the round-trip to the renders
   // and back.
-  DelayBy(base::TimeDelta::FromMilliseconds(2000));
+  DelayBy(base::Milliseconds(2000));
 
   // Initiate selection with a sequence of events that go through the targeting
   // system. Repeat of above but this time we'l cancel the selection by
@@ -13689,8 +13689,7 @@
 
   // Attempt to navigate the second tab to a.com.  This will attempt to reuse
   // the hung process.
-  NavigationRequest::SetCommitTimeoutForTesting(
-      base::TimeDelta::FromMilliseconds(100));
+  NavigationRequest::SetCommitTimeoutForTesting(base::Milliseconds(100));
   GURL hung_url(embedded_test_server()->GetURL("a.com", "/title3.html"));
   UnresponsiveRendererObserver unresponsive_renderer_observer(new_contents);
   EXPECT_TRUE(
@@ -13747,7 +13746,7 @@
 
   // Attempt to navigate the second tab to a.com.  This will attempt to reuse
   // the hung process.
-  base::TimeDelta kTimeout = base::TimeDelta::FromMilliseconds(100);
+  base::TimeDelta kTimeout = base::Milliseconds(100);
   NavigationRequest::SetCommitTimeoutForTesting(kTimeout);
   GURL hung_url(embedded_test_server()->GetURL("a.com", "/title3.html"));
   UnresponsiveRendererObserver unresponsive_renderer_observer(new_contents);
@@ -14062,8 +14061,7 @@
   auto allow_time_for_rafs = []() {
     base::RunLoop run_loop;
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-        FROM_HERE, run_loop.QuitClosure(),
-        base::TimeDelta::FromMilliseconds(1000));
+        FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(1000));
     run_loop.Run();
   };
 
diff --git a/content/browser/site_per_process_scroll_browsertest.cc b/content/browser/site_per_process_scroll_browsertest.cc
index eeb9340..afc17cc5 100644
--- a/content/browser/site_per_process_scroll_browsertest.cc
+++ b/content/browser/site_per_process_scroll_browsertest.cc
@@ -104,8 +104,7 @@
     // https://crbug.com/897520
     base::RunLoop run_loop;
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-        FROM_HERE, run_loop.QuitClosure(),
-        base::TimeDelta::FromMilliseconds(3000));
+        FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(3000));
     run_loop.Run();
   }
 
diff --git a/content/browser/site_per_process_unload_browsertest.cc b/content/browser/site_per_process_unload_browsertest.cc
index 7ea7a6d..c56abc4 100644
--- a/content/browser/site_per_process_unload_browsertest.cc
+++ b/content/browser/site_per_process_unload_browsertest.cc
@@ -365,7 +365,7 @@
 
   // Attempt to navigate the second tab to a.com.  This will attempt to reuse
   // the hung process.
-  base::TimeDelta kTimeout = base::TimeDelta::FromMilliseconds(100);
+  base::TimeDelta kTimeout = base::Milliseconds(100);
   NavigationRequest::SetCommitTimeoutForTesting(kTimeout);
   GURL hung_url(embedded_test_server()->GetURL("a.com", "/title3.html"));
   UnresponsiveRendererObserver unresponsive_renderer_observer(new_contents);
@@ -608,7 +608,7 @@
   RenderFrameHostImpl* rfh_d = rfh_b->child_at(0)->current_frame_host();
   // Set an arbitrarily long timeout to ensure the subframe unload timer doesn't
   // fire before we call OnDetach().
-  rfh_d->SetSubframeUnloadTimeoutForTesting(base::TimeDelta::FromSeconds(30));
+  rfh_d->SetSubframeUnloadTimeoutForTesting(base::Seconds(30));
 
   RenderFrameDeletedObserver delete_d(rfh_d);
 
@@ -677,7 +677,7 @@
   a1->DisableUnloadTimerForTesting();
   // Set an arbitrarily long timeout to ensure the subframe unload timer doesn't
   // fire before we call OnDetach().
-  b1->SetSubframeUnloadTimeoutForTesting(base::TimeDelta::FromSeconds(30));
+  b1->SetSubframeUnloadTimeoutForTesting(base::Seconds(30));
 
   // Add unload handler on A2, but not on the other frames.
   UnloadPrint(a2->frame_tree_node(), "A2");
@@ -1215,7 +1215,7 @@
   EXPECT_EQ(B2->frame_tree_node(), frame_tree->GetFocusedFrame());
 
   // 2.2 Unload B2. Drop detach message to simulate a long unloading.
-  B2->SetSubframeUnloadTimeoutForTesting(base::TimeDelta::FromSeconds(30));
+  B2->SetSubframeUnloadTimeoutForTesting(base::Seconds(30));
 
   EXPECT_FALSE(B2->GetSuddenTerminationDisablerState(
       blink::mojom::SuddenTerminationDisablerType::kUnloadHandler));
@@ -1451,7 +1451,7 @@
   // Increase Unload timeout to prevent the previous document from
   // being deleleted before it has finished running B2 unload handler.
   A1->DisableUnloadTimerForTesting();
-  B2->SetSubframeUnloadTimeoutForTesting(base::TimeDelta::FromSeconds(30));
+  B2->SetSubframeUnloadTimeoutForTesting(base::Seconds(30));
 
   // Add an unload handler to the subframe and try in that handler to preserve
   // state that we will try to recover later.
@@ -1556,8 +1556,8 @@
   // Increase Unload timeout to prevent the previous document from
   // being deleleted before it has finished running C3 unload handler.
   A1->DisableUnloadTimerForTesting();
-  B2->SetSubframeUnloadTimeoutForTesting(base::TimeDelta::FromSeconds(30));
-  C3->SetSubframeUnloadTimeoutForTesting(base::TimeDelta::FromSeconds(30));
+  B2->SetSubframeUnloadTimeoutForTesting(base::Seconds(30));
+  C3->SetSubframeUnloadTimeoutForTesting(base::Seconds(30));
 
   // Add an unload handler to the subframe and try in that handler to preserve
   // state that we will try to recover later.
diff --git a/content/browser/starscan_load_observer.cc b/content/browser/starscan_load_observer.cc
index 66adea4..d51402f9 100644
--- a/content/browser/starscan_load_observer.cc
+++ b/content/browser/starscan_load_observer.cc
@@ -38,8 +38,7 @@
   ++g_loading_webcontents_;
 
   // Set timer as a fallback if loading is too slow.
-  constexpr base::TimeDelta kReenableStarScanDelta =
-      base::TimeDelta::FromSeconds(10);
+  constexpr base::TimeDelta kReenableStarScanDelta = base::Seconds(10);
   timer_.Start(FROM_HERE, kReenableStarScanDelta, this,
                &StarScanLoadObserver::DidStopLoading);
 }
diff --git a/content/browser/startup_task_runner_unittest.cc b/content/browser/startup_task_runner_unittest.cc
index 8973333..3e7c503 100644
--- a/content/browser/startup_task_runner_unittest.cc
+++ b/content/browser/startup_task_runner_unittest.cc
@@ -224,8 +224,7 @@
   scoped_refptr<TaskRunnerProxy> proxy = new TaskRunnerProxy(&mock_runner);
 
   EXPECT_CALL(mock_runner, PostDelayedTask(_, _)).Times(0);
-  EXPECT_CALL(mock_runner, PostNonNestableDelayedTask(
-                               _, base::TimeDelta::FromMilliseconds(0)))
+  EXPECT_CALL(mock_runner, PostNonNestableDelayedTask(_, base::Milliseconds(0)))
       .Times(testing::Between(2, 3))
       .WillRepeatedly(testing::Return(true));
 
@@ -270,8 +269,7 @@
   scoped_refptr<TaskRunnerProxy> proxy = new TaskRunnerProxy(&mock_runner);
 
   EXPECT_CALL(mock_runner, PostDelayedTask(_, _)).Times(0);
-  EXPECT_CALL(mock_runner, PostNonNestableDelayedTask(
-                               _, base::TimeDelta::FromMilliseconds(0)))
+  EXPECT_CALL(mock_runner, PostNonNestableDelayedTask(_, base::Milliseconds(0)))
       .Times(testing::Between(1, 2))
       .WillRepeatedly(testing::Return(true));
 
diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc
index 249fdd6..b594bf1e 100644
--- a/content/browser/storage_partition_impl.cc
+++ b/content/browser/storage_partition_impl.cc
@@ -141,7 +141,7 @@
 // Timeout after which the
 // History.ClearBrowsingData.Duration.SlowTasks180sStoragePartition histogram is
 // recorded.
-const base::TimeDelta kSlowTaskTimeout = base::TimeDelta::FromSeconds(180);
+const base::TimeDelta kSlowTaskTimeout = base::Seconds(180);
 
 // If true, Storage Service instances will always be started in-process.
 bool g_force_in_process_storage_service = false;
diff --git a/content/browser/storage_partition_impl_unittest.cc b/content/browser/storage_partition_impl_unittest.cc
index 302ff7bb..3073c4b 100644
--- a/content/browser/storage_partition_impl_unittest.cc
+++ b/content/browser/storage_partition_impl_unittest.cc
@@ -233,7 +233,7 @@
     blink::InterestGroup group;
     group.owner = origin;
     group.name = "Name";
-    group.expiry = base::Time::Now() + base::TimeDelta::FromDays(30);
+    group.expiry = base::Time::Now() + base::Days(30);
     storage_partition_->GetInterestGroupManager()->JoinInterestGroup(
         group, origin.GetURL());
   }
@@ -335,7 +335,7 @@
             .ok());
     ASSERT_TRUE(db.Put(CreateDataKey(origin1), {}).ok());
 
-    base::Time one_day_ago = now - base::TimeDelta::FromDays(1);
+    base::Time one_day_ago = now - base::Days(1);
     data.set_last_modified(one_day_ago.ToInternalValue());
     ASSERT_TRUE(
         db.Put(CreateMetaDataKey(origin2),
@@ -343,7 +343,7 @@
             .ok());
     ASSERT_TRUE(db.Put(CreateDataKey(origin2), {}).ok());
 
-    base::Time sixty_days_ago = now - base::TimeDelta::FromDays(60);
+    base::Time sixty_days_ago = now - base::Days(60);
     data.set_last_modified(sixty_days_ago.ToInternalValue());
     ASSERT_TRUE(
         db.Put(CreateMetaDataKey(origin3),
@@ -517,8 +517,8 @@
   //   url2 - Widevine - 2 files - timestamps now and 60 days ago
   void AddPluginPrivateTestData(const GURL& url1, const GURL& url2) {
     base::Time now = base::Time::Now();
-    base::Time ten_days_ago = now - base::TimeDelta::FromDays(10);
-    base::Time sixty_days_ago = now - base::TimeDelta::FromDays(60);
+    base::Time ten_days_ago = now - base::Days(10);
+    base::Time sixty_days_ago = now - base::Days(60);
 
     // Create a PluginPrivateFileSystem for ClearKey and add a single file
     // with a timestamp of 1 day ago.
@@ -1160,7 +1160,7 @@
       GetMockManager(), kStorageKey2, "perm_bucket_now", kPersistent, now);
 
   // Buckets modified a day ago.
-  base::Time yesterday = now - base::TimeDelta::FromDays(1);
+  base::Time yesterday = now - base::Days(1);
   storage::BucketInfo host1_temp_bucket_yesterday =
       AddQuotaManagedBucket(GetMockManager(), kStorageKey1,
                             "temp_bucket_yesterday", kTemporary, yesterday);
@@ -1182,10 +1182,8 @@
 
   base::RunLoop run_loop;
   base::ThreadTaskRunnerHandle::Get()->PostTask(
-      FROM_HERE,
-      base::BindOnce(&ClearQuotaDataForOrigin, partition, GURL(),
-                     base::Time::Now() - base::TimeDelta::FromHours(1),
-                     &run_loop));
+      FROM_HERE, base::BindOnce(&ClearQuotaDataForOrigin, partition, GURL(),
+                                base::Time::Now() - base::Hours(1), &run_loop));
   run_loop.Run();
 
   EXPECT_EQ(GetMockManager()->BucketDataCount(kClientFile), 4);
@@ -1214,7 +1212,7 @@
 
   // Buckets modified yesterday.
   base::Time now = base::Time::Now();
-  base::Time yesterday = now - base::TimeDelta::FromDays(1);
+  base::Time yesterday = now - base::Days(1);
   storage::BucketInfo temp_bucket_yesterday =
       AddQuotaManagedBucket(GetMockManager(), kStorageKey,
                             "temp_bucket_yesterday", kTemporary, yesterday);
@@ -1223,7 +1221,7 @@
                             "perm_bucket_yesterday", kPersistent, yesterday);
 
   // Buckets modified 10 days ago.
-  base::Time ten_days_ago = now - base::TimeDelta::FromDays(10);
+  base::Time ten_days_ago = now - base::Days(10);
   storage::BucketInfo temp_bucket_ten_days_ago = AddQuotaManagedBucket(
       GetMockManager(), kStorageKey, "temp_bucket_ten_days_ago", kTemporary,
       ten_days_ago);
@@ -1239,10 +1237,8 @@
   partition->OverrideQuotaManagerForTesting(GetMockManager());
 
   base::ThreadTaskRunnerHandle::Get()->PostTask(
-      FROM_HERE,
-      base::BindOnce(&ClearQuotaDataForNonPersistent, partition,
-                     base::Time::Now() - base::TimeDelta::FromDays(7),
-                     &run_loop));
+      FROM_HERE, base::BindOnce(&ClearQuotaDataForNonPersistent, partition,
+                                base::Time::Now() - base::Days(7), &run_loop));
   run_loop.Run();
 
   EXPECT_EQ(GetMockManager()->BucketDataCount(kClientFile), 3);
@@ -1393,7 +1389,7 @@
   tester.AddCookie(kOrigin);
   ASSERT_TRUE(tester.ContainsCookie(kOrigin));
 
-  base::Time an_hour_ago = base::Time::Now() - base::TimeDelta::FromHours(1);
+  base::Time an_hour_ago = base::Time::Now() - base::Hours(1);
 
   base::RunLoop run_loop;
   base::ThreadTaskRunnerHandle::Get()->PostTask(
@@ -1525,7 +1521,7 @@
 
   StoragePartitionImpl* partition = static_cast<StoragePartitionImpl*>(
       browser_context()->GetDefaultStoragePartition());
-  base::Time a_week_ago = base::Time::Now() - base::TimeDelta::FromDays(7);
+  base::Time a_week_ago = base::Time::Now() - base::Days(7);
 
   base::RunLoop run_loop;
   base::ThreadTaskRunnerHandle::Get()->PostTask(
@@ -1636,9 +1632,9 @@
   RemoveCodeCacheTester tester(partition->GetGeneratedCodeCacheContext());
 
   base::Time current_time = base::Time::NowFromSystemTime();
-  base::Time out_of_range_time = current_time - base::TimeDelta::FromHours(3);
-  base::Time begin_time = current_time - base::TimeDelta::FromHours(2);
-  base::Time in_range_time = current_time - base::TimeDelta::FromHours(1);
+  base::Time out_of_range_time = current_time - base::Hours(3);
+  base::Time begin_time = current_time - base::Hours(2);
+  base::Time in_range_time = current_time - base::Hours(1);
 
   GURL origin = GURL("http://host1:1/");
   std::string data("SomeData");
@@ -1807,7 +1803,7 @@
 
   StoragePartitionImpl* partition = static_cast<StoragePartitionImpl*>(
       browser_context()->GetDefaultStoragePartition());
-  base::Time a_week_ago = base::Time::Now() - base::TimeDelta::FromDays(7);
+  base::Time a_week_ago = base::Time::Now() - base::Days(7);
 
   RemovePluginPrivateDataTester tester(partition->GetFileSystemContext());
   tester.AddPluginPrivateTestData(kOrigin1.GetURL(), kOrigin2.GetURL());
@@ -1925,8 +1921,7 @@
   ConversionManagerImpl* conversion_manager = partition->GetConversionManager();
 
   base::Time now = base::Time::Now();
-  auto impression =
-      ImpressionBuilder(now).SetExpiry(base::TimeDelta::FromDays(2)).Build();
+  auto impression = ImpressionBuilder(now).SetExpiry(base::Days(2)).Build();
   conversion_manager->HandleImpression(impression);
   conversion_manager->HandleConversion(DefaultConversion());
 
@@ -1948,8 +1943,7 @@
   ConversionManagerImpl* conversion_manager = partition->GetConversionManager();
 
   base::Time now = base::Time::Now();
-  auto impression =
-      ImpressionBuilder(now).SetExpiry(base::TimeDelta::FromDays(2)).Build();
+  auto impression = ImpressionBuilder(now).SetExpiry(base::Days(2)).Build();
   conversion_manager->HandleImpression(impression);
   conversion_manager->HandleConversion(DefaultConversion());
 
@@ -1979,7 +1973,7 @@
     auto origin = url::Origin::Create(
         GURL(base::StringPrintf("https://www.%d.test/", i)));
     auto impression = ImpressionBuilder(now)
-                          .SetExpiry(base::TimeDelta::FromDays(2))
+                          .SetExpiry(base::Days(2))
                           .SetImpressionOrigin(origin)
                           .SetReportingOrigin(origin)
                           .SetConversionOrigin(origin)
@@ -2010,13 +2004,12 @@
         GURL(base::StringPrintf("https://reporter-%d.com/", i)));
     auto conv = url::Origin::Create(
         GURL(base::StringPrintf("https://conv-%d.com/", i)));
-    conversion_manager->HandleImpression(
-        ImpressionBuilder(now)
-            .SetImpressionOrigin(impression)
-            .SetReportingOrigin(reporter)
-            .SetConversionOrigin(conv)
-            .SetExpiry(base::TimeDelta::FromDays(2))
-            .Build());
+    conversion_manager->HandleImpression(ImpressionBuilder(now)
+                                             .SetImpressionOrigin(impression)
+                                             .SetReportingOrigin(reporter)
+                                             .SetConversionOrigin(conv)
+                                             .SetExpiry(base::Days(2))
+                                             .Build());
     conversion_manager->HandleConversion(
         StorableTrigger(123, net::SchemefulSite(conv), reporter,
                         /*event_source_trigger_data=*/0,
@@ -2051,8 +2044,8 @@
       content::StoragePartition::REMOVE_DATA_MASK_WEBSQL;
   const uint32_t kTestQuotaClearMask = 0;
   const auto kTestOrigin = GURL("https://example.com");
-  const auto kBeginTime = base::Time() + base::TimeDelta::FromHours(1);
-  const auto kEndTime = base::Time() + base::TimeDelta::FromHours(2);
+  const auto kBeginTime = base::Time() + base::Hours(1);
+  const auto kEndTime = base::Time() + base::Hours(2);
   const auto origin_callback_valid =
       [&](base::RepeatingCallback<bool(const url::Origin&)> callback) {
         return callback.Run(url::Origin::Create(kTestOrigin));
diff --git a/content/browser/storage_service_restart_browsertest.cc b/content/browser/storage_service_restart_browsertest.cc
index 100b61b..aed2b80b 100644
--- a/content/browser/storage_service_restart_browsertest.cc
+++ b/content/browser/storage_service_restart_browsertest.cc
@@ -54,7 +54,7 @@
               base::BindOnce(&StorageServiceRestartBrowserTest::
                                  WaitForAnyLocalStorageDataAsync,
                              base::Unretained(test), std::move(callback)),
-              base::TimeDelta::FromMilliseconds(50));
+              base::Milliseconds(50));
         },
         this, std::move(callback)));
   }
diff --git a/content/browser/storage_service_sandbox_browsertest.cc b/content/browser/storage_service_sandbox_browsertest.cc
index f3fdcd20..6ff2c40 100644
--- a/content/browser/storage_service_sandbox_browsertest.cc
+++ b/content/browser/storage_service_sandbox_browsertest.cc
@@ -56,7 +56,7 @@
               base::BindOnce(&StorageServiceSandboxBrowserTest::
                                  WaitForAnyLocalStorageDataAsync,
                              base::Unretained(test), std::move(callback)),
-              base::TimeDelta::FromMilliseconds(50));
+              base::Milliseconds(50));
         },
         this, std::move(callback)));
   }
diff --git a/content/browser/tracing/background_tracing_active_scenario.cc b/content/browser/tracing/background_tracing_active_scenario.cc
index 32f4046..7db305f 100644
--- a/content/browser/tracing/background_tracing_active_scenario.cc
+++ b/content/browser/tracing/background_tracing_active_scenario.cc
@@ -45,7 +45,7 @@
   ~TracingTimer() = default;
 
   void StartTimer(int seconds) {
-    tracing_timer_.Start(FROM_HERE, base::TimeDelta::FromSeconds(seconds), this,
+    tracing_timer_.Start(FROM_HERE, base::Seconds(seconds), this,
                          &TracingTimer::TracingTimerFired);
   }
   void CancelTimer() { tracing_timer_.Stop(); }
diff --git a/content/browser/tracing/background_tracing_manager_browsertest.cc b/content/browser/tracing/background_tracing_manager_browsertest.cc
index d3dfb11..bedcb21 100644
--- a/content/browser/tracing/background_tracing_manager_browsertest.cc
+++ b/content/browser/tracing/background_tracing_manager_browsertest.cc
@@ -136,7 +136,7 @@
 // Wait until |condition| returns true.
 void WaitForCondition(base::RepeatingCallback<bool()> condition,
                       const std::string& description) {
-  const base::TimeDelta kTimeout = base::TimeDelta::FromSeconds(30);
+  const base::TimeDelta kTimeout = base::Seconds(30);
   const base::TimeTicks start_time = base::TimeTicks::Now();
   while (!condition.Run() && (base::TimeTicks::Now() - start_time < kTimeout)) {
     base::RunLoop run_loop;
diff --git a/content/browser/tracing/background_tracing_rule.cc b/content/browser/tracing/background_tracing_rule.cc
index 7420e2c..d805654 100644
--- a/content/browser/tracing/background_tracing_rule.cc
+++ b/content/browser/tracing/background_tracing_rule.cc
@@ -398,10 +398,10 @@
           NOTREACHED();  // Handled above.
           break;
         case Units::kMilliseconds:
-          delta = base::TimeDelta::FromMilliseconds(actual_value);
+          delta = base::Milliseconds(actual_value);
           break;
         case Units::kMicroseconds:
-          delta = base::TimeDelta::FromMicroseconds(actual_value);
+          delta = base::Microseconds(actual_value);
           break;
       }
       TRACE_EVENT_BEGIN("toplevel", "HistogramSampleTrigger", track,
@@ -548,7 +548,7 @@
     int time_to_wait = base::RandInt(kReactiveTraceRandomStartTimeMin,
                                      kReactiveTraceRandomStartTimeMax);
     trigger_timer_.Start(
-        FROM_HERE, base::TimeDelta::FromSeconds(time_to_wait),
+        FROM_HERE, base::Seconds(time_to_wait),
         base::BindOnce(&TraceAtRandomIntervalsRule::OnTriggerTimer,
                        base::Unretained(this)));
   }
diff --git a/content/browser/video_capture_service.cc b/content/browser/video_capture_service.cc
index 81320990c..55d86845 100644
--- a/content/browser/video_capture_service.cc
+++ b/content/browser/video_capture_service.cc
@@ -129,7 +129,7 @@
       // and re-querying these can take several seconds on certain Android
       // devices.
       remote.set_idle_handler(
-          base::TimeDelta::FromSeconds(5),
+          base::Seconds(5),
           base::BindRepeating(
               [](mojo::Remote<video_capture::mojom::VideoCaptureService>*
                      remote) {
diff --git a/content/browser/web_contents/aura/gesture_nav_simple.cc b/content/browser/web_contents/aura/gesture_nav_simple.cc
index 04807c9c..51ccc9c1 100644
--- a/content/browser/web_contents/aura/gesture_nav_simple.cc
+++ b/content/browser/web_contents/aura/gesture_nav_simple.cc
@@ -59,8 +59,7 @@
 constexpr int kMaxRippleBurstRadius = 48;
 constexpr gfx::Tween::Type kBurstAnimationTweenType =
     gfx::Tween::FAST_OUT_SLOW_IN;
-constexpr auto kRippleBurstAnimationDuration =
-    base::TimeDelta::FromMilliseconds(200);
+constexpr auto kRippleBurstAnimationDuration = base::Milliseconds(200);
 
 // Offset of the affordance when it is at the activation threshold. Since the
 // affordance is initially out of content bounds, this is the offset of the
@@ -80,7 +79,7 @@
 // Parameters defining animation when the affordance is aborted.
 constexpr gfx::Tween::Type kAbortAnimationTweenType =
     gfx::Tween::FAST_OUT_SLOW_IN;
-constexpr auto kAbortAnimationDuration = base::TimeDelta::FromMilliseconds(300);
+constexpr auto kAbortAnimationDuration = base::Milliseconds(300);
 
 bool ShouldNavigateForward(NavigationController* controller,
                            OverscrollMode mode) {
diff --git a/content/browser/web_contents/web_contents_android.cc b/content/browser/web_contents/web_contents_android.cc
index bb97328..844e9673 100644
--- a/content/browser/web_contents/web_contents_android.cc
+++ b/content/browser/web_contents/web_contents_android.cc
@@ -734,7 +734,7 @@
           ui::AXMode(ui::kAXModeComplete.mode() | ui::AXMode::kHTMLMetadata),
           /* exclude_offscreen= */ false,
           /* max_nodes= */ 5000,
-          /* timeout= */ base::TimeDelta::FromSeconds(2));
+          /* timeout= */ base::Seconds(2));
 }
 
 ScopedJavaLocalRef<jstring> WebContentsAndroid::GetEncoding(
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index c307d50..2d9160d 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -196,8 +196,7 @@
 namespace {
 
 // The window which we dobounce load info updates in.
-constexpr auto kUpdateLoadStatesInterval =
-    base::TimeDelta::FromMilliseconds(250);
+constexpr auto kUpdateLoadStatesInterval = base::Milliseconds(250);
 
 using LifecycleState = RenderFrameHost::LifecycleState;
 using LifecycleStateImpl = RenderFrameHostImpl::LifecycleStateImpl;
@@ -2179,8 +2178,7 @@
 }
 
 bool WebContentsImpl::HasRecentInteractiveInputEvent() {
-  static constexpr base::TimeDelta kMaxInterval =
-      base::TimeDelta::FromSeconds(5);
+  static constexpr base::TimeDelta kMaxInterval = base::Seconds(5);
   base::TimeDelta delta =
       ui::EventTimeForNow() - last_interactive_input_event_time_;
   // Note: the expectation is that the caller is typically expecting an input
@@ -7256,7 +7254,7 @@
   if (loading_weak_factory_.HasWeakPtrs())
     return;
 
-  if (min_delay == base::TimeDelta::FromMilliseconds(0)) {
+  if (min_delay == base::Milliseconds(0)) {
     SendChangeLoadProgress();
   } else {
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
@@ -8661,8 +8659,7 @@
 }
 
 bool WebContentsImpl::HasSeenRecentScreenOrientationChange() {
-  static constexpr base::TimeDelta kMaxInterval =
-      base::TimeDelta::FromSeconds(1);
+  static constexpr base::TimeDelta kMaxInterval = base::Seconds(1);
   base::TimeDelta delta =
       ui::EventTimeForNow() - last_screen_orientation_change_time_;
   // Return whether a screen orientation change happened in the last 1 second.
diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h
index a56e094..26d9b42 100644
--- a/content/browser/web_contents/web_contents_impl.h
+++ b/content/browser/web_contents/web_contents_impl.h
@@ -1882,7 +1882,7 @@
 
   // Default value is set to 100ms between LoadProgressChanged events.
   base::TimeDelta minimum_delay_between_loading_updates_ms_ =
-      base::TimeDelta::FromMilliseconds(100);
+      base::Milliseconds(100);
 
   // Upload progress, for displaying in the status bar.
   // Set to zero when there is no significant upload happening.
diff --git a/content/browser/web_contents/web_contents_view_aura_browsertest.cc b/content/browser/web_contents/web_contents_view_aura_browsertest.cc
index 482180a..0a6e1bd 100644
--- a/content/browser/web_contents/web_contents_view_aura_browsertest.cc
+++ b/content/browser/web_contents/web_contents_view_aura_browsertest.cc
@@ -67,8 +67,7 @@
 void GiveItSomeTime() {
   base::RunLoop run_loop;
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(),
-      base::TimeDelta::FromMillisecondsD(10));
+      FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(10));
   run_loop.Run();
 }
 
@@ -171,8 +170,7 @@
       generator.GestureScrollSequence(
           gfx::Point(bounds.x() + 2, bounds.y() + 10),
           gfx::Point(bounds.right() - 10, bounds.y() + 10),
-          base::TimeDelta::FromMilliseconds(kScrollDurationMs),
-          kScrollSteps);
+          base::Milliseconds(kScrollDurationMs), kScrollSteps);
       std::u16string actual_title = title_watcher.WaitAndGetTitle();
       EXPECT_EQ(expected_title, actual_title);
       value = ExecuteScriptAndGetValue(main_frame, "get_current()");
@@ -189,8 +187,7 @@
       generator.GestureScrollSequence(
           gfx::Point(bounds.x() + 2, bounds.y() + 10),
           gfx::Point(bounds.right() - 10, bounds.y() + 10),
-          base::TimeDelta::FromMilliseconds(kScrollDurationMs),
-          kScrollSteps);
+          base::Milliseconds(kScrollDurationMs), kScrollSteps);
       std::u16string actual_title = title_watcher.WaitAndGetTitle();
       EXPECT_EQ(expected_title, actual_title);
       value = ExecuteScriptAndGetValue(main_frame, "get_current()");
@@ -207,8 +204,7 @@
       generator.GestureScrollSequence(
           gfx::Point(bounds.right() - 10, bounds.y() + 10),
           gfx::Point(bounds.x() + 2, bounds.y() + 10),
-          base::TimeDelta::FromMilliseconds(kScrollDurationMs),
-          kScrollSteps);
+          base::Milliseconds(kScrollDurationMs), kScrollSteps);
       std::u16string actual_title = title_watcher.WaitAndGetTitle();
       EXPECT_EQ(expected_title, actual_title);
       value = ExecuteScriptAndGetValue(main_frame, "get_current()");
@@ -482,7 +478,7 @@
   ASSERT_FALSE(details.dispatcher_destroyed);
   EXPECT_EQ(1, GetCurrentIndex());
 
-  timestamp += base::TimeDelta::FromMilliseconds(10);
+  timestamp += base::Milliseconds(10);
   ui::TouchEvent move1(
       ui::ET_TOUCH_MOVED, gfx::Point(bounds.right() - 10, bounds.y() + 5),
       timestamp, ui::PointerDetails(ui::EventPointerType::kTouch, 0));
@@ -494,7 +490,7 @@
   // edge.
 
   for (int x = bounds.right() - 10; x >= bounds.x() + 10; x-= 10) {
-    timestamp += base::TimeDelta::FromMilliseconds(10);
+    timestamp += base::Milliseconds(10);
     ui::TouchEvent inc(ui::ET_TOUCH_MOVED, gfx::Point(x, bounds.y() + 5),
                        timestamp,
                        ui::PointerDetails(ui::EventPointerType::kTouch, 0));
@@ -504,7 +500,7 @@
   }
 
   for (int x = bounds.x() + 10; x <= bounds.width() - 10; x+= 10) {
-    timestamp += base::TimeDelta::FromMilliseconds(10);
+    timestamp += base::Milliseconds(10);
     ui::TouchEvent inc(ui::ET_TOUCH_MOVED, gfx::Point(x, bounds.y() + 5),
                        timestamp,
                        ui::PointerDetails(ui::EventPointerType::kTouch, 0));
@@ -514,7 +510,7 @@
   }
 
   for (int x = bounds.width() - 10; x >= bounds.x() + 10; x-= 10) {
-    timestamp += base::TimeDelta::FromMilliseconds(10);
+    timestamp += base::Milliseconds(10);
     ui::TouchEvent inc(ui::ET_TOUCH_MOVED, gfx::Point(x, bounds.y() + 5),
                        timestamp,
                        ui::PointerDetails(ui::EventPointerType::kTouch, 0));
@@ -551,8 +547,7 @@
   ui::test::EventGenerator generator(content->GetRootWindow(), content);
   generator.GestureScrollSequence(
       gfx::Point(bounds.x() + 2, bounds.y() + 10),
-      gfx::Point(bounds.right() - 10, bounds.y() + 10),
-      base::TimeDelta::FromMilliseconds(20),
+      gfx::Point(bounds.right() - 10, bounds.y() + 10), base::Milliseconds(20),
       1);
 
   window->AddChild(shell()->web_contents()->GetContentNativeView());
@@ -753,8 +748,7 @@
   ui::test::EventGenerator generator(content->GetRootWindow(), content);
   generator.GestureScrollSequence(
       gfx::Point(bounds.x() + 2, bounds.y() + 10),
-      gfx::Point(bounds.right() - 10, bounds.y() + 10),
-      base::TimeDelta::FromMilliseconds(20),
+      gfx::Point(bounds.right() - 10, bounds.y() + 10), base::Milliseconds(20),
       1);
 
   delete web_contents->GetContentNativeView();
@@ -808,16 +802,14 @@
 
   generator.GestureScrollSequence(
       gfx::Point(bounds.right() - 10, bounds.y() + 10),
-      gfx::Point(bounds.x() + 2, bounds.y() + 10),
-      base::TimeDelta::FromMilliseconds(2000),
+      gfx::Point(bounds.x() + 2, bounds.y() + 10), base::Milliseconds(2000),
       10);
   nav_watcher.WaitForNavigationFinished();
 
   generator.GestureScrollSequence(
       gfx::Point(bounds.x() + 2, bounds.y() + 10),
       gfx::Point(bounds.right() - 10, bounds.y() + 10),
-      base::TimeDelta::FromMilliseconds(2000),
-      10);
+      base::Milliseconds(2000), 10);
   std::u16string actual_title = title_watcher.WaitAndGetTitle();
   EXPECT_EQ(expected_title, actual_title);
 
diff --git a/content/browser/web_database/web_database_host_impl.cc b/content/browser/web_database/web_database_host_impl.cc
index 01c2457..346e8cd3 100644
--- a/content/browser/web_database/web_database_host_impl.cc
+++ b/content/browser/web_database/web_database_host_impl.cc
@@ -322,7 +322,7 @@
           base::BindOnce(&WebDatabaseHostImpl::DatabaseDeleteFile,
                          weak_ptr_factory_.GetWeakPtr(), vfs_file_name,
                          sync_dir, std::move(callback), reschedule_count - 1),
-          base::TimeDelta::FromMilliseconds(kDelayDeleteRetryMs));
+          base::Milliseconds(kDelayDeleteRetryMs));
       return;
     }
   }
diff --git a/content/browser/web_package/mock_signed_exchange_handler.cc b/content/browser/web_package/mock_signed_exchange_handler.cc
index 663ea2f..cff2787 100644
--- a/content/browser/web_package/mock_signed_exchange_handler.cc
+++ b/content/browser/web_package/mock_signed_exchange_handler.cc
@@ -31,8 +31,7 @@
       response_headers(std::move(response_headers)),
       header_integrity(header_integrity),
       signature_expire_time(signature_expire_time.is_null()
-                                ? base::Time::Now() +
-                                      base::TimeDelta::FromDays(1)
+                                ? base::Time::Now() + base::Days(1)
                                 : signature_expire_time) {}
 
 MockSignedExchangeHandlerParams::MockSignedExchangeHandlerParams(
diff --git a/content/browser/web_package/prefetched_signed_exchange_cache.cc b/content/browser/web_package/prefetched_signed_exchange_cache.cc
index 28c4bcf..a288eb9 100644
--- a/content/browser/web_package/prefetched_signed_exchange_cache.cc
+++ b/content/browser/web_package/prefetched_signed_exchange_cache.cc
@@ -605,7 +605,7 @@
   if (outer_response->headers->GetCurrentAge(outer_response->request_time,
                                              outer_response->response_time,
                                              verification_time) <
-      base::TimeDelta::FromMinutes(net::HttpCache::kPrefetchReuseMins)) {
+      base::Minutes(net::HttpCache::kPrefetchReuseMins)) {
     return true;
   }
   // We use the prefetched entry when we don't need the validation.
diff --git a/content/browser/web_package/signed_exchange_handler.cc b/content/browser/web_package/signed_exchange_handler.cc
index fe7fd4d..b2cc1de 100644
--- a/content/browser/web_package/signed_exchange_handler.cc
+++ b/content/browser/web_package/signed_exchange_handler.cc
@@ -555,7 +555,7 @@
   // extension that have a Validity Period longer than 90 days. [spec text]
   base::TimeDelta validity_period =
       verified_cert->valid_expiry() - verified_cert->valid_start();
-  if (validity_period > base::TimeDelta::FromDays(90) &&
+  if (validity_period > base::Days(90) &&
       !unverified_cert_chain_->ShouldIgnoreErrors() &&
       !g_should_ignore_cert_validity_period_error) {
     signed_exchange_utils::ReportErrorAndTraceEvent(
@@ -754,9 +754,8 @@
     return false;
   entry.SetHeaderIntegrity(std::make_unique<net::SHA256HashValue>(
       envelope_->ComputeHeaderIntegrity()));
-  entry.SetSignatureExpireTime(
-      base::Time::UnixEpoch() +
-      base::TimeDelta::FromSeconds(envelope_->signature().expires));
+  entry.SetSignatureExpireTime(base::Time::UnixEpoch() +
+                               base::Seconds(envelope_->signature().expires));
   entry.SetCertUrl(envelope_->signature().cert_url);
   entry.SetCertServerIPAddress(cert_server_ip_address_);
   return true;
diff --git a/content/browser/web_package/signed_exchange_handler_unittest.cc b/content/browser/web_package/signed_exchange_handler_unittest.cc
index 663758e..393ef1a 100644
--- a/content/browser/web_package/signed_exchange_handler_unittest.cc
+++ b/content/browser/web_package/signed_exchange_handler_unittest.cc
@@ -217,8 +217,7 @@
   void SetUp() override {
     original_client_ = SetBrowserClientForTesting(&browser_client_);
     signed_exchange_utils::SetVerificationTimeForTesting(
-        base::Time::UnixEpoch() +
-        base::TimeDelta::FromSeconds(kSignatureHeaderDate));
+        base::Time::UnixEpoch() + base::Seconds(kSignatureHeaderDate));
     feature_list_.InitAndEnableFeature(features::kSignedHTTPExchange);
 
     source_stream_ = std::make_unique<net::MockSourceStream>();
@@ -634,7 +633,7 @@
 
   signed_exchange_utils::SetVerificationTimeForTesting(
       base::Time::UnixEpoch() +
-      base::TimeDelta::FromSeconds(kCertValidityPeriodEnforcementDate));
+      base::Seconds(kCertValidityPeriodEnforcementDate));
   mock_cert_fetcher_factory_->ExpectFetch(
       GURL("https://cert.example.org/cert.msg"),
       GetTestFileContents("test.example.org.public.pem.cbor"));
@@ -935,8 +934,7 @@
   std::unique_ptr<net::TestURLRequestContext> url_request_context =
       CreateTestURLRequestContext();
   url_request_context->transport_security_state()->AddExpectCT(
-      "test.example.org",
-      base::Time::Now() + base::TimeDelta::FromDays(1) /* expiry */,
+      "test.example.org", base::Time::Now() + base::Days(1) /* expiry */,
       false /* include_subdomains */, kReportUri, kNetworkIsolationKey);
   MockExpectCTReporter expect_ct_reporter;
   url_request_context->transport_security_state()->SetExpectCTReporter(
diff --git a/content/browser/web_package/signed_exchange_prefetch_metric_recorder.cc b/content/browser/web_package/signed_exchange_prefetch_metric_recorder.cc
index 109c4e4..6aa127c3 100644
--- a/content/browser/web_package/signed_exchange_prefetch_metric_recorder.cc
+++ b/content/browser/web_package/signed_exchange_prefetch_metric_recorder.cc
@@ -14,12 +14,10 @@
 
 // SignedExchangePrefetchMetricRecorder will not associate prefetch
 // to a navigation if they are older than |kPrefetchExpireTimeDelta|.
-constexpr base::TimeDelta kPrefetchExpireTimeDelta =
-    base::TimeDelta::FromMilliseconds(30000);
+constexpr base::TimeDelta kPrefetchExpireTimeDelta = base::Milliseconds(30000);
 // SignedExchangePrefetchMetricRecorder flushes expired prefetch entries once
 // per |kFlushTimeoutTimeDelta|.
-constexpr base::TimeDelta kFlushTimeoutTimeDelta =
-    base::TimeDelta::FromMilliseconds(30100);
+constexpr base::TimeDelta kFlushTimeoutTimeDelta = base::Milliseconds(30100);
 
 constexpr char kPrecisionHistogram[] =
     "SignedExchange.Prefetch.Precision.30Seconds";
diff --git a/content/browser/web_package/signed_exchange_prefetch_metric_recorder_unittest.cc b/content/browser/web_package/signed_exchange_prefetch_metric_recorder_unittest.cc
index 6f15021..d306c022 100644
--- a/content/browser/web_package/signed_exchange_prefetch_metric_recorder_unittest.cc
+++ b/content/browser/web_package/signed_exchange_prefetch_metric_recorder_unittest.cc
@@ -42,13 +42,13 @@
   metric_recorder_->OnSignedExchangePrefetchFinished(
       GURL("https://example.org/success.sxg"), response_time);
 
-  FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  FastForwardBy(base::Milliseconds(100));
 
   const base::Time response_time2 = test_clock_.Now();
   metric_recorder_->OnSignedExchangePrefetchFinished(
       GURL("https://example.org/prefetch_unused.sxg"), response_time2);
 
-  FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  FastForwardBy(base::Milliseconds(100));
 
   histogram_tester_.ExpectTotalCount(
       "SignedExchange.Prefetch.Precision.30Seconds", 0);
@@ -72,7 +72,7 @@
   histogram_tester_.ExpectBucketCount(
       "SignedExchange.Prefetch.Recall.30Seconds", false, 1);
 
-  FastForwardBy(base::TimeDelta::FromMilliseconds(35000));
+  FastForwardBy(base::Milliseconds(35000));
 
   histogram_tester_.ExpectBucketCount(
       "SignedExchange.Prefetch.Precision.30Seconds", true, 1);
@@ -86,15 +86,15 @@
 
   metric_recorder_->OnSignedExchangePrefetchFinished(url, response_time);
 
-  FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  FastForwardBy(base::Milliseconds(100));
 
   metric_recorder_->OnSignedExchangePrefetchFinished(url, response_time);
 
-  FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  FastForwardBy(base::Milliseconds(100));
 
   metric_recorder_->OnSignedExchangeNonPrefetch(url, response_time);
 
-  FastForwardBy(base::TimeDelta::FromMilliseconds(35000));
+  FastForwardBy(base::Milliseconds(35000));
 
   histogram_tester_.ExpectUniqueSample(
       "SignedExchange.Prefetch.Precision.30Seconds", true, 1);
diff --git a/content/browser/web_package/signed_exchange_request_handler_browsertest.cc b/content/browser/web_package/signed_exchange_request_handler_browsertest.cc
index a551d0a..539bac6a 100644
--- a/content/browser/web_package/signed_exchange_request_handler_browsertest.cc
+++ b/content/browser/web_package/signed_exchange_request_handler_browsertest.cc
@@ -521,8 +521,8 @@
 IN_PROC_BROWSER_TEST_P(SignedExchangeRequestHandlerBrowserTest, Expired) {
   signed_exchange_utils::SetVerificationTimeForTesting(
       base::Time::UnixEpoch() +
-      base::TimeDelta::FromSeconds(
-          SignedExchangeBrowserTestHelper::kSignatureHeaderExpires + 1));
+      base::Seconds(SignedExchangeBrowserTestHelper::kSignatureHeaderExpires +
+                    1));
 
   InstallMockCertChainInterceptor();
   InstallUrlInterceptor(GURL("https://test.example.org/test/"),
@@ -1446,7 +1446,7 @@
             ->GetDefaultStoragePartition()
             ->GetNetworkContext();
     network_context->AddExpectCT(
-        domain, base::Time::Now() + base::TimeDelta::FromDays(1) /* expiry */,
+        domain, base::Time::Now() + base::Days(1) /* expiry */,
         true /* enforce */, report_uri, network_isolation_key,
         base::BindLambdaForTesting([&](bool success) {
           EXPECT_TRUE(success);
diff --git a/content/browser/web_package/signed_exchange_signature_verifier.cc b/content/browser/web_package/signed_exchange_signature_verifier.cc
index 083f2160..f927253d 100644
--- a/content/browser/web_package/signed_exchange_signature_verifier.cc
+++ b/content/browser/web_package/signed_exchange_signature_verifier.cc
@@ -50,8 +50,8 @@
     // 5.3. "A single 0 byte which serves as a separator." [spec text]
     "HTTP Exchange 1 b3";
 
-constexpr base::TimeDelta kOneWeek = base::TimeDelta::FromDays(7);
-constexpr base::TimeDelta kFourWeeks = base::TimeDelta::FromDays(4 * 7);
+constexpr base::TimeDelta kOneWeek = base::Days(7);
+constexpr base::TimeDelta kFourWeeks = base::Days(4 * 7);
 
 absl::optional<crypto::SignatureVerifier::SignatureAlgorithm>
 GetSignatureAlgorithm(scoped_refptr<net::X509Certificate> cert,
@@ -190,7 +190,7 @@
 }
 
 base::Time TimeFromSignedExchangeUnixTime(uint64_t t) {
-  return base::Time::UnixEpoch() + base::TimeDelta::FromSeconds(t);
+  return base::Time::UnixEpoch() + base::Seconds(t);
 }
 
 SignedExchangeSignatureVerifier::Result VerifyValidityPeriod(
diff --git a/content/browser/web_package/signed_exchange_signature_verifier_unittest.cc b/content/browser/web_package/signed_exchange_signature_verifier_unittest.cc
index eb81cd3b..7f4b4dd 100644
--- a/content/browser/web_package/signed_exchange_signature_verifier_unittest.cc
+++ b/content/browser/web_package/signed_exchange_signature_verifier_unittest.cc
@@ -78,8 +78,7 @@
   SignedExchangeSignatureVerifierTest() {}
 
   const base::Time VerificationTime() {
-    return base::Time::UnixEpoch() +
-           base::TimeDelta::FromSeconds(kSignatureHeaderDate);
+    return base::Time::UnixEpoch() + base::Seconds(kSignatureHeaderDate);
   }
 
   void TestVerifierGivenValidInput(
@@ -103,13 +102,13 @@
     }
     {
       base::HistogramTester histogram_tester;
-      EXPECT_EQ(SignedExchangeSignatureVerifier::Result::kErrFutureDate,
-                SignedExchangeSignatureVerifier::Verify(
-                    GetParam(), envelope, &cert_chain,
-                    base::Time::UnixEpoch() +
-                        base::TimeDelta::FromSeconds(kSignatureHeaderDate - 1),
-                    nullptr /* devtools_proxy */
-                    ));
+      EXPECT_EQ(
+          SignedExchangeSignatureVerifier::Result::kErrFutureDate,
+          SignedExchangeSignatureVerifier::Verify(
+              GetParam(), envelope, &cert_chain,
+              base::Time::UnixEpoch() + base::Seconds(kSignatureHeaderDate - 1),
+              nullptr /* devtools_proxy */
+              ));
       histogram_tester.ExpectTotalCount("SignedExchange.TimeUntilExpiration",
                                         0);
       histogram_tester.ExpectUniqueSample(
@@ -120,13 +119,13 @@
 
     {
       base::HistogramTester histogram_tester;
-      EXPECT_EQ(SignedExchangeSignatureVerifier::Result::kSuccess,
-                SignedExchangeSignatureVerifier::Verify(
-                    GetParam(), envelope, &cert_chain,
-                    base::Time::UnixEpoch() +
-                        base::TimeDelta::FromSeconds(kSignatureHeaderExpires),
-                    nullptr /* devtools_proxy */
-                    ));
+      EXPECT_EQ(
+          SignedExchangeSignatureVerifier::Result::kSuccess,
+          SignedExchangeSignatureVerifier::Verify(
+              GetParam(), envelope, &cert_chain,
+              base::Time::UnixEpoch() + base::Seconds(kSignatureHeaderExpires),
+              nullptr /* devtools_proxy */
+              ));
       histogram_tester.ExpectUniqueSample("SignedExchange.TimeUntilExpiration",
                                           0, 1);
       histogram_tester.ExpectTotalCount(
@@ -139,8 +138,8 @@
       EXPECT_EQ(SignedExchangeSignatureVerifier::Result::kErrExpired,
                 SignedExchangeSignatureVerifier::Verify(
                     GetParam(), envelope, &cert_chain,
-                    base::Time::UnixEpoch() + base::TimeDelta::FromSeconds(
-                                                  kSignatureHeaderExpires + 1),
+                    base::Time::UnixEpoch() +
+                        base::Seconds(kSignatureHeaderExpires + 1),
                     nullptr /* devtools_proxy */
                     ));
       histogram_tester.ExpectTotalCount("SignedExchange.TimeUntilExpiration",
diff --git a/content/browser/web_package/signed_exchange_subresource_prefetch_browsertest.cc b/content/browser/web_package/signed_exchange_subresource_prefetch_browsertest.cc
index 5e5ca2ee..ec784fb 100644
--- a/content/browser/web_package/signed_exchange_subresource_prefetch_browsertest.cc
+++ b/content/browser/web_package/signed_exchange_subresource_prefetch_browsertest.cc
@@ -589,8 +589,8 @@
   EXPECT_EQ(IsSignedExchangeSubresourcePrefetchEnabled() ? 1u : 0u,
             GetCachedExchanges(shell()).size());
 
-  MockClock::Get().Advance(base::TimeDelta::FromSeconds(
-      net::HttpCache::kPrefetchReuseMins * 60 + 1));
+  MockClock::Get().Advance(
+      base::Seconds(net::HttpCache::kPrefetchReuseMins * 60 + 1));
 
   // Need to setup MockSignedExchangeHandlerFactory because the SXG is loaded
   // from the server again.
@@ -634,8 +634,8 @@
   EXPECT_EQ(IsSignedExchangeSubresourcePrefetchEnabled() ? 1u : 0u,
             GetCachedExchanges(shell()).size());
 
-  MockClock::Get().Advance(base::TimeDelta::FromSeconds(
-      net::HttpCache::kPrefetchReuseMins * 2 * 60));
+  MockClock::Get().Advance(
+      base::Seconds(net::HttpCache::kPrefetchReuseMins * 2 * 60));
 
   if (IsSignedExchangeSubresourcePrefetchEnabled()) {
     NavigateToURLAndWaitTitle(sxg_url, "Prefetch Target (SXG)");
@@ -682,8 +682,8 @@
   EXPECT_EQ(IsSignedExchangeSubresourcePrefetchEnabled() ? 1u : 0u,
             GetCachedExchanges(shell()).size());
 
-  MockClock::Get().Advance(base::TimeDelta::FromSeconds(
-      net::HttpCache::kPrefetchReuseMins * 3 * 60 + 1));
+  MockClock::Get().Advance(
+      base::Seconds(net::HttpCache::kPrefetchReuseMins * 3 * 60 + 1));
 
   // Need to setup MockSignedExchangeHandlerFactory because the SXG is loaded
   // from the server again.
@@ -723,7 +723,7 @@
       net::SHA256HashValue({{0x01}}) /* header_integrity */, content,
       {} /* sxg_outer_headers */, {} /* sxg_inner_headers */,
       base::Time::Now() +
-          base::TimeDelta::FromMinutes(net::HttpCache::kPrefetchReuseMins * 2));
+          base::Minutes(net::HttpCache::kPrefetchReuseMins * 2));
   EXPECT_EQ(1, sxg_request_counter->GetRequestCount());
 
   const GURL sxg_url = embedded_test_server()->GetURL(hostname, sxg_path);
@@ -734,7 +734,7 @@
             GetCachedExchanges(shell()).size());
 
   MockClock::Get().Advance(
-      base::TimeDelta::FromMinutes(net::HttpCache::kPrefetchReuseMins * 3));
+      base::Minutes(net::HttpCache::kPrefetchReuseMins * 3));
 
   // Setup MockSignedExchangeHandlerFactory which triggers signature
   // verificvation error fallback.
@@ -979,8 +979,7 @@
                 *script_it->second->header_integrity());
     }
 
-    MockClock::Get().Advance(
-        base::TimeDelta::FromSeconds(elapsed_time_after_prefetch));
+    MockClock::Get().Advance(base::Seconds(elapsed_time_after_prefetch));
 
     // Subsequent navigation to the target URL wouldn't hit the network for
     // the target URL. The target content should still be read correctly.
diff --git a/content/browser/webauth/authenticator_common.cc b/content/browser/webauth/authenticator_common.cc
index 93eeb17..bd2d728 100644
--- a/content/browser/webauth/authenticator_common.cc
+++ b/content/browser/webauth/authenticator_common.cc
@@ -317,10 +317,8 @@
 base::TimeDelta AdjustTimeout(absl::optional<base::TimeDelta> timeout,
                               RenderFrameHost* render_frame_host) {
   // Time to wait for an authenticator to successfully complete an operation.
-  static constexpr base::TimeDelta kAdjustedTimeoutLower =
-      base::TimeDelta::FromSeconds(10);
-  static constexpr base::TimeDelta kAdjustedTimeoutUpper =
-      base::TimeDelta::FromMinutes(10);
+  static constexpr base::TimeDelta kAdjustedTimeoutLower = base::Seconds(10);
+  static constexpr base::TimeDelta kAdjustedTimeoutUpper = base::Minutes(10);
 
   if (!timeout) {
     return kAdjustedTimeoutUpper;
diff --git a/content/browser/webauth/authenticator_impl_unittest.cc b/content/browser/webauth/authenticator_impl_unittest.cc
index 467b2fa1..0b6eeb4cb 100644
--- a/content/browser/webauth/authenticator_impl_unittest.cc
+++ b/content/browser/webauth/authenticator_impl_unittest.cc
@@ -139,7 +139,7 @@
 using FailureReasonCallbackReceiver =
     ::device::test::TestCallbackReceiver<InterestingFailureReason>;
 
-constexpr base::TimeDelta kTestTimeout = base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kTestTimeout = base::Minutes(1);
 
 // The size of credential IDs returned by GetTestCredentials().
 constexpr size_t kTestCredentialIdLength = 32u;
@@ -379,7 +379,7 @@
   options->public_key_parameters = GetTestPublicKeyCredentialParameters(
       static_cast<int32_t>(device::CoseAlgorithmIdentifier::kEs256));
   options->challenge.assign(32, 0x0A);
-  options->timeout = base::TimeDelta::FromMinutes(1);
+  options->timeout = base::Minutes(1);
   options->authenticator_selection = GetTestAuthenticatorSelectionCriteria();
   return options;
 }
@@ -389,7 +389,7 @@
   auto options = PublicKeyCredentialRequestOptions::New();
   options->relying_party_id = std::string(kTestRelyingPartyId);
   options->challenge.assign(32, 0x0A);
-  options->timeout = base::TimeDelta::FromMinutes(1);
+  options->timeout = base::Minutes(1);
   options->user_verification = device::UserVerificationRequirement::kPreferred;
   options->allow_credentials = GetTestCredentials();
   return options;
@@ -1971,7 +1971,7 @@
       PublicKeyCredentialCreationOptionsPtr options =
           GetTestPublicKeyCredentialCreationOptions();
       options->relying_party.id = "example.com";
-      options->timeout = base::TimeDelta::FromSeconds(1);
+      options->timeout = base::Seconds(1);
       options->attestation =
           ConvertAttestationConveyancePreference(test.attestation_requested);
 
@@ -5455,7 +5455,7 @@
         !test_case.fingerprints_enrolled &&
         test_case.uv == device::UserVerificationRequirement::kRequired;
     if (should_timeout) {
-      options->timeout = base::TimeDelta::FromMilliseconds(100);
+      options->timeout = base::Milliseconds(100);
     }
 
     MakeCredentialResult result =
diff --git a/content/browser/webauth/webauth_browsertest.cc b/content/browser/webauth/webauth_browsertest.cc
index fc190ca2..dc5623b 100644
--- a/content/browser/webauth/webauth_browsertest.cc
+++ b/content/browser/webauth/webauth_browsertest.cc
@@ -556,7 +556,7 @@
 
     std::vector<uint8_t> kTestChallenge{0, 0, 0};
     auto mojo_options = blink::mojom::PublicKeyCredentialCreationOptions::New(
-        rp, user, kTestChallenge, parameters, base::TimeDelta::FromSeconds(30),
+        rp, user, kTestChallenge, parameters, base::Seconds(30),
         std::vector<device::PublicKeyCredentialDescriptor>(),
         device::AuthenticatorSelectionCriteria(),
         device::AttestationConveyancePreference::kNone,
@@ -585,10 +585,9 @@
 
     std::vector<uint8_t> kTestChallenge{0, 0, 0};
     auto mojo_options = blink::mojom::PublicKeyCredentialRequestOptions::New(
-        /*is_conditional=*/false, kTestChallenge,
-        base::TimeDelta::FromSeconds(30), "acme.com", std::move(credentials),
-        device::UserVerificationRequirement::kPreferred, absl::nullopt,
-        std::vector<device::CableDiscoveryData>(), /*prf=*/false,
+        /*is_conditional=*/false, kTestChallenge, base::Seconds(30), "acme.com",
+        std::move(credentials), device::UserVerificationRequirement::kPreferred,
+        absl::nullopt, std::vector<device::CableDiscoveryData>(), /*prf=*/false,
         /*prf_inputs=*/std::vector<blink::mojom::PRFValuesPtr>(),
         /*large_blob_read=*/false, /*large_blob_write=*/absl::nullopt,
         /*get_cred_blob=*/false);
diff --git a/content/browser/webrtc/webrtc_audio_debug_recordings_browsertest.cc b/content/browser/webrtc/webrtc_audio_debug_recordings_browsertest.cc
index eb556f39..52244d8 100644
--- a/content/browser/webrtc/webrtc_audio_debug_recordings_browsertest.cc
+++ b/content/browser/webrtc/webrtc_audio_debug_recordings_browsertest.cc
@@ -66,7 +66,7 @@
   if (base::DeleteFile(path))
     return true;
 
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(100));
+  base::PlatformThread::Sleep(base::Milliseconds(100));
   return base::DeleteFile(path);
 }
 
diff --git a/content/browser/webrtc/webrtc_internals.cc b/content/browser/webrtc/webrtc_internals.cc
index 3bb73a1..ffb356d 100644
--- a/content/browser/webrtc/webrtc_internals.cc
+++ b/content/browser/webrtc/webrtc_internals.cc
@@ -464,7 +464,7 @@
         FROM_HERE,
         base::BindOnce(&WebRTCInternals::ProcessPendingUpdates,
                        weak_factory_.GetWeakPtr()),
-        base::TimeDelta::FromMilliseconds(aggregate_updates_ms_));
+        base::Milliseconds(aggregate_updates_ms_));
   }
 }
 
diff --git a/content/browser/webrtc/webrtc_video_capture_service_browsertest.cc b/content/browser/webrtc/webrtc_video_capture_service_browsertest.cc
index 5aece22..fe4cf3a5 100644
--- a/content/browser/webrtc/webrtc_video_capture_service_browsertest.cc
+++ b/content/browser/webrtc/webrtc_video_capture_service_browsertest.cc
@@ -473,7 +473,7 @@
         base::BindOnce(&WebRtcVideoCaptureServiceBrowserTest::
                            PushDummyFrameAndScheduleNextPush,
                        weak_factory_.GetWeakPtr(), device_exerciser),
-        base::TimeDelta::FromMilliseconds(1000 / kDummyFrameRate));
+        base::Milliseconds(1000 / kDummyFrameRate));
   }
 
   void ShutDownVirtualDeviceAndContinue(
diff --git a/content/browser/webui/web_ui_browsertest.cc b/content/browser/webui/web_ui_browsertest.cc
index 6a66cfb..72210a6 100644
--- a/content/browser/webui/web_ui_browsertest.cc
+++ b/content/browser/webui/web_ui_browsertest.cc
@@ -386,12 +386,12 @@
   EXPECT_EQ(1, test_handler()->message_requiring_gesture_count());
 
   // Now+5 seconds should be allowed.
-  AdvanceClock(base::TimeDelta::FromSeconds(5));
+  AdvanceClock(base::Seconds(5));
   SendMessageAndWaitForFinish();
   EXPECT_EQ(2, test_handler()->message_requiring_gesture_count());
 
   // Anything after that should be disallowed though.
-  AdvanceClock(base::TimeDelta::FromMicroseconds(1));
+  AdvanceClock(base::Microseconds(1));
   SendMessageAndWaitForFinish();
   EXPECT_EQ(2, test_handler()->message_requiring_gesture_count());
 }
diff --git a/content/browser/xr/metrics/session_metrics_helper.cc b/content/browser/xr/metrics/session_metrics_helper.cc
index 1421464..320ed72 100644
--- a/content/browser/xr/metrics/session_metrics_helper.cc
+++ b/content/browser/xr/metrics/session_metrics_helper.cc
@@ -21,15 +21,11 @@
 
 // minimum duration: 7 seconds for video, no minimum for headset/vr modes
 // maximum gap: 7 seconds between videos.  no gap for headset/vr-modes
-constexpr base::TimeDelta kMinimumVideoSessionDuration(
-    base::TimeDelta::FromSecondsD(7));
-constexpr base::TimeDelta kMaximumVideoSessionGap(
-    base::TimeDelta::FromSecondsD(7));
+constexpr base::TimeDelta kMinimumVideoSessionDuration(base::Seconds(7));
+constexpr base::TimeDelta kMaximumVideoSessionGap(base::Seconds(7));
 
-constexpr base::TimeDelta kMinimumHeadsetSessionDuration(
-    base::TimeDelta::FromSecondsD(0));
-constexpr base::TimeDelta kMaximumHeadsetSessionGap(
-    base::TimeDelta::FromSecondsD(0));
+constexpr base::TimeDelta kMinimumHeadsetSessionDuration(base::Seconds(0));
+constexpr base::TimeDelta kMaximumHeadsetSessionGap(base::Seconds(0));
 
 // Handles the lifetime of the helper which is attached to a WebContents.
 class SessionMetricsHelperData : public base::SupportsUserData::Data {
diff --git a/content/browser/xr/metrics/session_timer.cc b/content/browser/xr/metrics/session_timer.cc
index 1ab2475..769657e 100644
--- a/content/browser/xr/metrics/session_timer.cc
+++ b/content/browser/xr/metrics/session_timer.cc
@@ -61,8 +61,7 @@
 void SessionTimer::SendAccumulatedSessionTime() {
   if (!accumulated_time_.is_zero()) {
     base::UmaHistogramCustomTimes(histogram_name_, accumulated_time_,
-                                  base::TimeDelta(),
-                                  base::TimeDelta::FromHours(5), 100);
+                                  base::TimeDelta(), base::Hours(5), 100);
   }
 }
 
diff --git a/content/browser/xr/metrics/session_tracker_unittest.cc b/content/browser/xr/metrics/session_tracker_unittest.cc
index 8c9088d..d024bdb 100644
--- a/content/browser/xr/metrics/session_tracker_unittest.cc
+++ b/content/browser/xr/metrics/session_tracker_unittest.cc
@@ -21,19 +21,19 @@
   SessionTracker<FakeUkmEvent> tracker(std::make_unique<FakeUkmEvent>());
   base::Time now = base::Time::Now();
 
-  tracker.SetSessionEnd(now + base::TimeDelta::FromSeconds(8));
+  tracker.SetSessionEnd(now + base::Seconds(8));
   EXPECT_EQ(tracker.GetRoundedDurationInSeconds(), 8);
 
   // 3 min and 7 seconds, round down to nearest minute
-  tracker.SetSessionEnd(now + base::TimeDelta::FromSeconds(187));
+  tracker.SetSessionEnd(now + base::Seconds(187));
   EXPECT_EQ(tracker.GetRoundedDurationInSeconds(), 180);
 
   // 22 minutes 34 seconds, rounds down to nearest 10 minutes
-  tracker.SetSessionEnd(now + base::TimeDelta::FromSeconds(1254));
+  tracker.SetSessionEnd(now + base::Seconds(1254));
   EXPECT_EQ(tracker.GetRoundedDurationInSeconds(), 1200);
 
   // 2 hours, 10 minutes, 22 seconds, rounds down nearest hour
-  tracker.SetSessionEnd(now + base::TimeDelta::FromSeconds(7822));
+  tracker.SetSessionEnd(now + base::Seconds(7822));
   EXPECT_EQ(tracker.GetRoundedDurationInSeconds(), 7200);
 }
 
diff --git a/content/browser/xr/service/xr_device_service.cc b/content/browser/xr/service/xr_device_service.cc
index ee1501f..c766f7c0 100644
--- a/content/browser/xr/service/xr_device_service.cc
+++ b/content/browser/xr/service/xr_device_service.cc
@@ -58,7 +58,7 @@
     // one -- then we will reset |remote|, causing the service process to be
     // terminated if it isn't already.
     remote->reset_on_disconnect();
-    remote->reset_on_idle_timeout(base::TimeDelta::FromSeconds(5));
+    remote->reset_on_idle_timeout(base::Seconds(5));
 
     auto& startup_callback = GetStartupCallback();
     if (startup_callback)
diff --git a/content/child/child_thread_impl.cc b/content/child/child_thread_impl.cc
index a33af34..1d02e11 100644
--- a/content/child/child_thread_impl.cc
+++ b/content/child/child_thread_impl.cc
@@ -181,7 +181,7 @@
   // Some sanitizer tools rely on exit handlers (e.g. to run leak detection,
   // or dump code coverage data to disk). Instead of exiting the process
   // immediately, we give it 60 seconds to run exit handlers.
-  CHECK(CreateWaitAndExitThread(base::TimeDelta::FromSeconds(60)));
+  CHECK(CreateWaitAndExitThread(base::Seconds(60)));
 #if defined(LEAK_SANITIZER)
   // Invoke LeakSanitizer early to avoid detecting shutdown-only leaks. If
   // leaks are found, the process will exit here.
@@ -712,7 +712,7 @@
       FROM_HERE,
       base::BindOnce(&ChildThreadImpl::EnsureConnected,
                      channel_connected_factory_->GetWeakPtr()),
-      base::TimeDelta::FromSeconds(connection_timeout));
+      base::Seconds(connection_timeout));
 
   // In single-process mode, there is no need to synchronize trials to the
   // browser process (because it's the same process).
diff --git a/content/common/android/cpu_time_metrics_unittest.cc b/content/common/android/cpu_time_metrics_unittest.cc
index 7eb11b6f..7af293b 100644
--- a/content/common/android/cpu_time_metrics_unittest.cc
+++ b/content/common/android/cpu_time_metrics_unittest.cc
@@ -20,8 +20,7 @@
 void WorkForOneCpuSec(base::WaitableEvent* event) {
   auto initial_ticks = base::ThreadTicks::Now();
   while (!event->IsSignaled()) {
-    if (base::ThreadTicks::Now() >
-        initial_ticks + base::TimeDelta::FromSeconds(1)) {
+    if (base::ThreadTicks::Now() > initial_ticks + base::Seconds(1)) {
       event->Signal();
     }
   }
diff --git a/content/common/content_constants_internal.h b/content/common/content_constants_internal.h
index 945217e..2d41664 100644
--- a/content/common/content_constants_internal.h
+++ b/content/common/content_constants_internal.h
@@ -17,12 +17,12 @@
 #if defined(OS_ANDROID)
 // The mobile hang timer is shorter than the desktop hang timer because the
 // screen is smaller and more intimate, and therefore requires more nimbleness.
-constexpr base::TimeDelta kHungRendererDelay = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kHungRendererDelay = base::Seconds(5);
 #else
 // It would be nice to lower the desktop delay, but going any further with the
 // modal dialog UI would be disruptive, and while new gentle UI indicating that
 // a page is hung would be great, that UI isn't going to happen any time soon.
-constexpr base::TimeDelta kHungRendererDelay = base::TimeDelta::FromSeconds(15);
+constexpr base::TimeDelta kHungRendererDelay = base::Seconds(15);
 #endif
 
 // The maximum length of string as data url.
diff --git a/content/common/input/actions_parser.cc b/content/common/input/actions_parser.cc
index 558181d..51adedb1b7 100644
--- a/content/common/input/actions_parser.cc
+++ b/content/common/input/actions_parser.cc
@@ -672,7 +672,7 @@
       action_param.set_key_modifiers(key_modifiers);
       break;
     case PointerActionType::IDLE:
-      action_param.set_duration(base::TimeDelta::FromMilliseconds(duration));
+      action_param.set_duration(base::Milliseconds(duration));
       break;
     case PointerActionType::CANCEL:
     case PointerActionType::LEAVE:
@@ -701,7 +701,7 @@
 
   SyntheticPointerActionParams action_param(pointer_action_type);
   action_param.set_pointer_id(0);
-  action_param.set_duration(base::TimeDelta::FromMilliseconds(duration));
+  action_param.set_duration(base::Milliseconds(duration));
   param_list.push_back(action_param);
   return true;
 }
diff --git a/content/common/input/event_with_latency_info_unittest.cc b/content/common/input/event_with_latency_info_unittest.cc
index c676918c..35e6e09d 100644
--- a/content/common/input/event_with_latency_info_unittest.cc
+++ b/content/common/input/event_with_latency_info_unittest.cc
@@ -25,20 +25,18 @@
 TouchEventWithLatencyInfo CreateTouchEvent(WebInputEvent::Type type,
                                            double timestamp,
                                            unsigned touch_count = 1) {
-  TouchEventWithLatencyInfo touch(
-      type, WebInputEvent::kNoModifiers,
-      base::TimeTicks() + base::TimeDelta::FromSecondsD(timestamp),
-      ui::LatencyInfo());
+  TouchEventWithLatencyInfo touch(type, WebInputEvent::kNoModifiers,
+                                  base::TimeTicks() + base::Seconds(timestamp),
+                                  ui::LatencyInfo());
   touch.event.touches_length = touch_count;
   return touch;
 }
 
 MouseEventWithLatencyInfo CreateMouseEvent(WebInputEvent::Type type,
                                            double timestamp) {
-  return MouseEventWithLatencyInfo(
-      type, WebInputEvent::kNoModifiers,
-      base::TimeTicks() + base::TimeDelta::FromSecondsD(timestamp),
-      ui::LatencyInfo());
+  return MouseEventWithLatencyInfo(type, WebInputEvent::kNoModifiers,
+                                   base::TimeTicks() + base::Seconds(timestamp),
+                                   ui::LatencyInfo());
 }
 
 MouseWheelEventWithLatencyInfo CreateMouseWheelEvent(
@@ -48,8 +46,7 @@
     int modifiers = WebInputEvent::kNoModifiers) {
   MouseWheelEventWithLatencyInfo mouse_wheel(
       WebInputEvent::Type::kMouseWheel, modifiers,
-      base::TimeTicks() + base::TimeDelta::FromSecondsD(timestamp),
-      ui::LatencyInfo());
+      base::TimeTicks() + base::Seconds(timestamp), ui::LatencyInfo());
   mouse_wheel.event.delta_x = deltaX;
   mouse_wheel.event.delta_y = deltaY;
   return mouse_wheel;
@@ -61,8 +58,7 @@
                                                float y = 0.0f) {
   GestureEventWithLatencyInfo gesture(
       type, WebInputEvent::kNoModifiers,
-      base::TimeTicks() + base::TimeDelta::FromSecondsD(timestamp),
-      ui::LatencyInfo());
+      base::TimeTicks() + base::Seconds(timestamp), ui::LatencyInfo());
   gesture.event.SetPositionInWidget(gfx::PointF(x, y));
   return gesture;
 }
diff --git a/content/ppapi_plugin/plugin_process_dispatcher.cc b/content/ppapi_plugin/plugin_process_dispatcher.cc
index 772be26..deca7f18 100644
--- a/content/ppapi_plugin/plugin_process_dispatcher.cc
+++ b/content/ppapi_plugin/plugin_process_dispatcher.cc
@@ -31,8 +31,7 @@
   // plugin. This is the case for common plugins where they may be used on a
   // source and destination page of a navigation. We don't want to tear down
   // and re-start processes each time in these cases.
-  process_ref_.ReleaseWithDelay(
-      base::TimeDelta::FromSeconds(kPluginReleaseTimeSeconds));
+  process_ref_.ReleaseWithDelay(base::Seconds(kPluginReleaseTimeSeconds));
 }
 
 }  // namespace content
diff --git a/content/ppapi_plugin/ppapi_thread.cc b/content/ppapi_plugin/ppapi_thread.cc
index 4e7967a9..f0845e5 100644
--- a/content/ppapi_plugin/ppapi_thread.cc
+++ b/content/ppapi_plugin/ppapi_thread.cc
@@ -370,7 +370,7 @@
 void PpapiThread::OnHang() {
   // Intentionally hang upon the request of the browser.
   for (;;)
-    base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(1));
+    base::PlatformThread::Sleep(base::Seconds(1));
 }
 
 bool PpapiThread::SetupChannel(base::ProcessId renderer_pid,
diff --git a/content/public/browser/background_sync_parameters.cc b/content/public/browser/background_sync_parameters.cc
index cdcab7ee..80310ca9 100644
--- a/content/public/browser/background_sync_parameters.cc
+++ b/content/public/browser/background_sync_parameters.cc
@@ -9,13 +9,10 @@
 namespace {
 const int kMaxSyncAttempts = 3;
 const int kRetryDelayFactor = 3;
-constexpr base::TimeDelta kInitialRetryDelay = base::TimeDelta::FromMinutes(5);
-constexpr base::TimeDelta kMaxSyncEventDuration =
-    base::TimeDelta::FromMinutes(3);
-constexpr base::TimeDelta kMinSyncRecoveryTime =
-    base::TimeDelta::FromMinutes(6);
-constexpr base::TimeDelta kMinPeriodicSyncEventsInterval =
-    base::TimeDelta::FromHours(12);
+constexpr base::TimeDelta kInitialRetryDelay = base::Minutes(5);
+constexpr base::TimeDelta kMaxSyncEventDuration = base::Minutes(3);
+constexpr base::TimeDelta kMinSyncRecoveryTime = base::Minutes(6);
+constexpr base::TimeDelta kMinPeriodicSyncEventsInterval = base::Hours(12);
 }
 
 BackgroundSyncParameters::BackgroundSyncParameters()
diff --git a/content/public/browser/service_process_host.h b/content/public/browser/service_process_host.h
index e47334c3..11c2c6f 100644
--- a/content/public/browser/service_process_host.h
+++ b/content/public/browser/service_process_host.h
@@ -49,7 +49,7 @@
 //
 // Typical usage might look something like:
 //
-//   constexpr auto kFooServiceIdleTimeout = base::TimeDelta::FromSeconds(5);
+//   constexpr auto kFooServiceIdleTimeout = base::Seconds(5);
 //   auto foo_service = ServiceProcessHost::Launch<foo::mojom::FooService>(
 //       ServiceProcessHost::Options()
 //           .WithDisplayName(IDS_FOO_SERVICE_DISPLAY_NAME)
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
index 7285166f..94a6349d 100644
--- a/content/public/common/content_features.cc
+++ b/content/public/common/content_features.cc
@@ -778,7 +778,7 @@
 const base::FeatureParam<base::TimeDelta>
     kSiteIsolationForCrossOriginOpenerPolicyExpirationTimeoutParam{
         &kSiteIsolationForCrossOriginOpenerPolicy, "expiration_timeout",
-        base::TimeDelta::FromDays(7)};
+        base::Days(7)};
 // When enabled, OOPIFs will not try to reuse compatible processes from
 // unrelated tabs.
 const base::Feature kDisableProcessReuse{"DisableProcessReuse",
diff --git a/content/public/common/profiling.cc b/content/public/common/profiling.cc
index b304b3a..8d70f85 100644
--- a/content/public/common/profiling.cc
+++ b/content/public/common/profiling.cc
@@ -66,7 +66,7 @@
   }
   thread->task_runner()->PostDelayedTask(
       FROM_HERE, base::BindOnce(&FlushProfilingData, thread),
-      base::TimeDelta::FromSeconds(flush_seconds));
+      base::Seconds(flush_seconds));
 }
 
 class ProfilingThreadControl {
diff --git a/content/public/test/browser_task_environment_unittest.cc b/content/public/test/browser_task_environment_unittest.cc
index 4c6b47c5..130e5df 100644
--- a/content/public/test/browser_task_environment_unittest.cc
+++ b/content/public/test/browser_task_environment_unittest.cc
@@ -159,7 +159,7 @@
   GetIOThreadTaskRunner({})->PostTask(
       FROM_HERE, base::BindOnce(&base::WaitableEvent::Signal,
                                 Unretained(&signaled_on_real_io_thread)));
-  signaled_on_real_io_thread.TimedWait(base::TimeDelta::FromSeconds(5));
+  signaled_on_real_io_thread.TimedWait(base::Seconds(5));
   EXPECT_TRUE(signaled_on_real_io_thread.IsSignaled());
 
   // Tasks posted via ThreadPool::PostTask don't run in
@@ -169,7 +169,7 @@
       FROM_HERE, BindOnce([](base::AtomicFlag* task_ran) { task_ran->Set(); },
                           Unretained(&task_ran)));
 
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(100));
+  base::PlatformThread::Sleep(base::Milliseconds(100));
   EXPECT_FALSE(task_ran.IsSet());
 
   task_environment.RunUntilIdle();
diff --git a/content/public/test/browser_test_base.cc b/content/public/test/browser_test_base.cc
index 04eea709..f9ab34e 100644
--- a/content/public/test/browser_test_base.cc
+++ b/content/public/test/browser_test_base.cc
@@ -772,7 +772,7 @@
     return;
   }
 
-  base::TimeDelta retry_interval = base::TimeDelta::FromMilliseconds(100);
+  base::TimeDelta retry_interval = base::Milliseconds(100);
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&BrowserTestBase::WaitUntilJavaIsReady,
diff --git a/content/public/test/mock_render_process_host.cc b/content/public/test/mock_render_process_host.cc
index 53a9d77..11cb74e 100644
--- a/content/public/test/mock_render_process_host.cc
+++ b/content/public/test/mock_render_process_host.cc
@@ -361,7 +361,7 @@
 }
 
 base::TimeDelta MockRenderProcessHost::GetChildProcessIdleTime() {
-  return base::TimeDelta::FromMilliseconds(0);
+  return base::Milliseconds(0);
 }
 
 void MockRenderProcessHost::BindReceiver(
diff --git a/content/public/test/signed_exchange_browser_test_helper.cc b/content/public/test/signed_exchange_browser_test_helper.cc
index c2a77ed1..95bcd6d4 100644
--- a/content/public/test/signed_exchange_browser_test_helper.cc
+++ b/content/public/test/signed_exchange_browser_test_helper.cc
@@ -35,8 +35,7 @@
 
 void SignedExchangeBrowserTestHelper::SetUp() {
   signed_exchange_utils::SetVerificationTimeForTesting(
-      base::Time::UnixEpoch() +
-      base::TimeDelta::FromSeconds(kSignatureHeaderDate));
+      base::Time::UnixEpoch() + base::Seconds(kSignatureHeaderDate));
 }
 
 void SignedExchangeBrowserTestHelper::TearDownOnMainThread() {
diff --git a/content/public/test/test_utils_unittest.cc b/content/public/test/test_utils_unittest.cc
index 446efcb..ae236ac 100644
--- a/content/public/test/test_utils_unittest.cc
+++ b/content/public/test/test_utils_unittest.cc
@@ -21,7 +21,7 @@
   bool thread_pool_task_completed = false;
   base::ThreadPool::PostTask(
       FROM_HERE, {}, base::BindLambdaForTesting([&]() {
-        base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(100));
+        base::PlatformThread::Sleep(base::Milliseconds(100));
         thread_pool_task_completed = true;
       }));
 
@@ -47,7 +47,7 @@
   bool io_task_completed = false;
   content::GetIOThreadTaskRunner({})->PostTask(
       FROM_HERE, base::BindLambdaForTesting([&]() {
-        base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(100));
+        base::PlatformThread::Sleep(base::Milliseconds(100));
         io_task_completed = true;
       }));
 
@@ -62,7 +62,7 @@
   bool io_task_completed = false;
   content::GetIOThreadTaskRunner({})->PostTask(
       FROM_HERE, base::BindLambdaForTesting([&]() {
-        base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(100));
+        base::PlatformThread::Sleep(base::Milliseconds(100));
         io_task_completed = true;
       }));
 
@@ -85,11 +85,10 @@
 
   bool io_task_completed = false;
   content::GetIOThreadTaskRunner({base::TaskPriority::BEST_EFFORT})
-      ->PostTask(
-          FROM_HERE, base::BindLambdaForTesting([&]() {
-            base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(100));
-            io_task_completed = true;
-          }));
+      ->PostTask(FROM_HERE, base::BindLambdaForTesting([&]() {
+                   base::PlatformThread::Sleep(base::Milliseconds(100));
+                   io_task_completed = true;
+                 }));
 
   content::RunAllPendingInMessageLoop(content::BrowserThread::IO);
   EXPECT_TRUE(io_task_completed);
@@ -103,11 +102,10 @@
 
   bool io_task_completed = false;
   content::GetIOThreadTaskRunner({base::TaskPriority::BEST_EFFORT})
-      ->PostTask(
-          FROM_HERE, base::BindLambdaForTesting([&]() {
-            base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(100));
-            io_task_completed = true;
-          }));
+      ->PostTask(FROM_HERE, base::BindLambdaForTesting([&]() {
+                   base::PlatformThread::Sleep(base::Milliseconds(100));
+                   io_task_completed = true;
+                 }));
 
   content::RunAllPendingInMessageLoop(content::BrowserThread::IO);
   EXPECT_TRUE(io_task_completed);
@@ -118,11 +116,10 @@
 
   bool ui_task_completed = false;
   content::GetUIThreadTaskRunner({base::TaskPriority::BEST_EFFORT})
-      ->PostTask(
-          FROM_HERE, base::BindLambdaForTesting([&]() {
-            base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(100));
-            ui_task_completed = true;
-          }));
+      ->PostTask(FROM_HERE, base::BindLambdaForTesting([&]() {
+                   base::PlatformThread::Sleep(base::Milliseconds(100));
+                   ui_task_completed = true;
+                 }));
 
   content::RunAllPendingInMessageLoop(content::BrowserThread::UI);
   EXPECT_TRUE(ui_task_completed);
diff --git a/content/renderer/accessibility/render_accessibility_impl.cc b/content/renderer/accessibility/render_accessibility_impl.cc
index 839079b..67abe62 100644
--- a/content/renderer/accessibility/render_accessibility_impl.cc
+++ b/content/renderer/accessibility/render_accessibility_impl.cc
@@ -65,13 +65,12 @@
 
 // The minimum amount of time that should be spent in serializing code in order
 // to report the elapsed time as a URL-keyed metric.
-constexpr base::TimeDelta kMinSerializationTimeToSend =
-    base::TimeDelta::FromMilliseconds(100);
+constexpr base::TimeDelta kMinSerializationTimeToSend = base::Milliseconds(100);
 
 // When URL-keyed metrics for the amount of time spent in serializing code
 // are sent, the minimum amount of time to wait, in seconds, before
 // sending metrics. Metrics may also be sent once per page transition.
-constexpr base::TimeDelta kMinUKMDelay = base::TimeDelta::FromSeconds(300);
+constexpr base::TimeDelta kMinUKMDelay = base::Seconds(300);
 
 void SetAccessibilityCrashKey(ui::AXMode mode) {
   // Add a crash key with the ax_mode, to enable searching for top crashes that
@@ -416,7 +415,7 @@
       break;
     case ax::mojom::Action::kSignalEndOfTest:
       // Wait for 100ms to allow pending events to come in
-      base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(100));
+      base::PlatformThread::Sleep(base::Milliseconds(100));
 
       HandleAXEvent(ui::AXEvent(root.AxID(), ax::mojom::Event::kEndOfTest));
       break;
@@ -707,7 +706,7 @@
       // Where the user is not currently navigating or typing,
       // process changes on a delay so that they occur in larger batches,
       // improving efficiency of repetitive mutations.
-      delay = base::TimeDelta::FromMilliseconds(GetDeferredEventsDelay());
+      delay = base::Milliseconds(GetDeferredEventsDelay());
       break;
     case EventScheduleMode::kProcessEventsImmediately:
       // This set of events needed to be processed immediately because of a
diff --git a/content/renderer/accessibility/render_accessibility_impl_browsertest.cc b/content/renderer/accessibility/render_accessibility_impl_browsertest.cc
index ef62b6a5..1c5c6090 100644
--- a/content/renderer/accessibility/render_accessibility_impl_browsertest.cc
+++ b/content/renderer/accessibility/render_accessibility_impl_browsertest.cc
@@ -1413,8 +1413,7 @@
                      ui::AXNodeData* out_data) const override {
     BlinkAXTreeSource::SerializeNode(node, out_data);
     if (time_delay_ms_) {
-      task_environment_->FastForwardBy(
-          base::TimeDelta::FromMilliseconds(time_delay_ms_));
+      task_environment_->FastForwardBy(base::Milliseconds(time_delay_ms_));
       time_delay_ms_ = 0;
     }
   }
@@ -1491,7 +1490,7 @@
 
   // After 1000 seconds have passed, the next time we send an event we should
   // send URL-keyed metrics.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1000));
+  task_environment_.FastForwardBy(base::Seconds(1000));
   GetRenderAccessibilityImpl()->HandleAXEvent(
       ui::AXEvent(root_obj.AxID(), ax::mojom::Event::kChildrenChanged));
   SendPendingAccessibilityEvents();
diff --git a/content/renderer/browser_exposed_renderer_interfaces.cc b/content/renderer/browser_exposed_renderer_interfaces.cc
index b21df57..f2b5257 100644
--- a/content/renderer/browser_exposed_renderer_interfaces.cc
+++ b/content/renderer/browser_exposed_renderer_interfaces.cc
@@ -121,7 +121,7 @@
           FROM_HERE,
           base::BindOnce(&ResourceUsageReporterImpl::SendResults,
                          weak_factory_.GetWeakPtr()),
-          base::TimeDelta::FromMilliseconds(kWaitForWorkersStatsTimeoutMS));
+          base::Milliseconds(kWaitForWorkersStatsTimeoutMS));
     } else {
       // No worker threads so just send out the main thread data right away.
       SendResults();
diff --git a/content/renderer/categorized_worker_pool_unittest.cc b/content/renderer/categorized_worker_pool_unittest.cc
index 6c3eb26..422fa8f 100644
--- a/content/renderer/categorized_worker_pool_unittest.cc
+++ b/content/renderer/categorized_worker_pool_unittest.cc
@@ -138,7 +138,7 @@
           // shouldn't if only one background task runs at a time.
           EXPECT_FALSE(is_running_task);
           is_running_task = true;
-          base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(10));
+          base::PlatformThread::Sleep(base::Milliseconds(10));
           is_running_task = false;
         })));
 
diff --git a/content/renderer/media/batching_media_log.cc b/content/renderer/media/batching_media_log.cc
index 8d8c5cb2..79e6df9 100644
--- a/content/renderer/media/batching_media_log.cc
+++ b/content/renderer/media/batching_media_log.cc
@@ -130,8 +130,8 @@
       return;
 
     ipc_send_pending_ = true;
-    delay_for_next_ipc_send = base::TimeDelta::FromSeconds(1) -
-                              (tick_clock_->NowTicks() - last_ipc_send_time_);
+    delay_for_next_ipc_send =
+        base::Seconds(1) - (tick_clock_->NowTicks() - last_ipc_send_time_);
   }
 
   if (delay_for_next_ipc_send > base::TimeDelta()) {
diff --git a/content/renderer/media/batching_media_log_unittest.cc b/content/renderer/media/batching_media_log_unittest.cc
index 6a4e4d77..b3640245 100644
--- a/content/renderer/media/batching_media_log_unittest.cc
+++ b/content/renderer/media/batching_media_log_unittest.cc
@@ -102,12 +102,12 @@
   EXPECT_EQ(0, message_count());
 
   // Still shouldn't send anything.
-  Advance(base::TimeDelta::FromMilliseconds(500));
+  Advance(base::Milliseconds(500));
   AddEvent<media::MediaLogEvent::kPause>();
   EXPECT_EQ(0, message_count());
 
   // Now we should expect an IPC.
-  Advance(base::TimeDelta::FromMilliseconds(500));
+  Advance(base::Milliseconds(500));
   EXPECT_EQ(1, message_count());
 
   // Verify contents.
@@ -128,18 +128,18 @@
     AddEvent<media::MediaLogEvent::kPause>();
   }
 
-  Advance(base::TimeDelta::FromMilliseconds(1100));
+  Advance(base::Milliseconds(1100));
   EXPECT_EQ(media::MediaLog::kLogLimit + 1, GetMediaLogRecords().size());
 }
 
 TEST_F(BatchingMediaLogTest, EventSentWithoutDelayAfterIpcInterval) {
   AddEvent<media::MediaLogEvent::kPlay>();
-  Advance(base::TimeDelta::FromMilliseconds(1000));
+  Advance(base::Milliseconds(1000));
   EXPECT_EQ(1, message_count());
 
   // After the ipc send interval passes, the next event should be sent
   // right away.
-  Advance(base::TimeDelta::FromMilliseconds(2000));
+  Advance(base::Milliseconds(2000));
   AddEvent<media::MediaLogEvent::kPlay>();
   EXPECT_EQ(2, message_count());
 }
@@ -150,15 +150,12 @@
 
   // This event is handled separately and should always appear last regardless
   // of how many times we see it.
-  AddEvent<media::MediaLogEvent::kDurationChanged>(
-      base::TimeDelta::FromMilliseconds(1));
-  AddEvent<media::MediaLogEvent::kDurationChanged>(
-      base::TimeDelta::FromMilliseconds(2));
-  AddEvent<media::MediaLogEvent::kDurationChanged>(
-      base::TimeDelta::FromMilliseconds(3));
+  AddEvent<media::MediaLogEvent::kDurationChanged>(base::Milliseconds(1));
+  AddEvent<media::MediaLogEvent::kDurationChanged>(base::Milliseconds(2));
+  AddEvent<media::MediaLogEvent::kDurationChanged>(base::Milliseconds(3));
 
   EXPECT_EQ(0, message_count());
-  Advance(base::TimeDelta::FromMilliseconds(1000));
+  Advance(base::Milliseconds(1000));
   EXPECT_EQ(1, message_count());
 
   // Verify contents. There should only be a single buffered extents changed
@@ -193,7 +190,7 @@
           false});
 
   EXPECT_EQ(0, message_count());
-  Advance(base::TimeDelta::FromMilliseconds(1000));
+  Advance(base::Milliseconds(1000));
   EXPECT_EQ(1, message_count());
 
   // Verify contents. There should only be a single buffered extents changed
diff --git a/content/renderer/media/media_factory.cc b/content/renderer/media/media_factory.cc
index 5456976..ea71d2a 100644
--- a/content/renderer/media/media_factory.cc
+++ b/content/renderer/media/media_factory.cc
@@ -235,9 +235,8 @@
       measurement.frame_size.height() > 700) {
     base::UmaHistogramCustomTimes(
         base::JoinString({kRoughnessHistogramName, suffix}, "."),
-        base::TimeDelta::FromMillisecondsD(measurement.roughness),
-        base::TimeDelta::FromMilliseconds(1),
-        base::TimeDelta::FromMilliseconds(99), 100);
+        base::Milliseconds(measurement.roughness), base::Milliseconds(1),
+        base::Milliseconds(99), 100);
     // TODO(liberato): Record freezing, once we're sure that we're computing the
     // score we want.  For now, don't record anything so we don't have a mis-
     // match of UMA values.
diff --git a/content/renderer/media/renderer_webaudiodevice_impl.cc b/content/renderer/media/renderer_webaudiodevice_impl.cc
index 637d248..1b1e5276 100644
--- a/content/renderer/media/renderer_webaudiodevice_impl.cc
+++ b/content/renderer/media/renderer_webaudiodevice_impl.cc
@@ -77,8 +77,8 @@
           hardware_params.sample_rate(), hardware_params.frames_per_buffer());
     case media::AudioLatency::LATENCY_EXACT_MS:
       return media::AudioLatency::GetExactBufferSize(
-          base::TimeDelta::FromSecondsD(latency_hint.Seconds()),
-          hardware_params.sample_rate(), hardware_params.frames_per_buffer(),
+          base::Seconds(latency_hint.Seconds()), hardware_params.sample_rate(),
+          hardware_params.frames_per_buffer(),
           hardware_capabilities.min_frames_per_buffer,
           hardware_capabilities.max_frames_per_buffer,
           media::limits::kMaxWebAudioBufferSize);
@@ -196,8 +196,7 @@
   // since it has special connotations for Blink and garbage collection. Timeout
   // value chosen to be highly unlikely in the normal case.
   webaudio_suspender_ = std::make_unique<media::SilentSinkSuspender>(
-      this, base::TimeDelta::FromSeconds(30), sink_params_, sink_,
-      GetSuspenderTaskRunner());
+      this, base::Seconds(30), sink_params_, sink_, GetSuspenderTaskRunner());
   sink_->Initialize(sink_params_, webaudio_suspender_.get());
 
   sink_->Start();
diff --git a/content/renderer/media/renderer_webmediaplayer_delegate.cc b/content/renderer/media/renderer_webmediaplayer_delegate.cc
index c914c8b6..afa65f45 100644
--- a/content/renderer/media/renderer_webmediaplayer_delegate.cc
+++ b/content/renderer/media/renderer_webmediaplayer_delegate.cc
@@ -36,8 +36,8 @@
       allow_idle_cleanup_(
           content::GetContentClient()->renderer()->IsIdleMediaSuspendEnabled()),
       tick_clock_(base::DefaultTickClock::GetInstance()) {
-  idle_cleanup_interval_ = base::TimeDelta::FromSeconds(5);
-  idle_timeout_ = base::TimeDelta::FromSeconds(15);
+  idle_cleanup_interval_ = base::Seconds(5);
+  idle_timeout_ = base::Seconds(15);
 
   is_low_end_ = base::SysInfo::IsLowEndDevice();
   idle_cleanup_timer_.SetTaskRunner(
diff --git a/content/renderer/media/renderer_webmediaplayer_delegate_browsertest.cc b/content/renderer/media/renderer_webmediaplayer_delegate_browsertest.cc
index 0761236..a94fdb39 100644
--- a/content/renderer/media/renderer_webmediaplayer_delegate_browsertest.cc
+++ b/content/renderer/media/renderer_webmediaplayer_delegate_browsertest.cc
@@ -30,7 +30,7 @@
 namespace media {
 
 namespace {
-constexpr base::TimeDelta kIdleTimeout = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kIdleTimeout = base::Seconds(1);
 }
 
 class MockWebMediaPlayerDelegateObserver
@@ -59,7 +59,7 @@
   void SetUp() override {
     RenderViewTest::SetUp();
     // Start the tick clock off at a non-null value.
-    tick_clock_.Advance(base::TimeDelta::FromSeconds(1234));
+    tick_clock_.Advance(base::Seconds(1234));
     delegate_manager_ =
         std::make_unique<RendererWebMediaPlayerDelegate>(GetMainRenderFrame());
     delegate_manager_->SetIdleCleanupParamsForTesting(
@@ -81,7 +81,7 @@
 
   void SetNonZeroIdleTimeout() {
     delegate_manager_->SetIdleCleanupParamsForTesting(
-        kIdleTimeout, base::TimeDelta::FromSeconds(1), &tick_clock_, true);
+        kIdleTimeout, base::Seconds(1), &tick_clock_, true);
   }
 
   void RunLoopOnce() {
@@ -132,7 +132,7 @@
       delegate_id_1, true, true, media::MediaContentType::Persistent);
   delegate_manager_->DidPlay(delegate_id_1);
   delegate_manager_->SetIdle(delegate_id_1, false);
-  tick_clock_.Advance(base::TimeDelta::FromMicroseconds(1));
+  tick_clock_.Advance(base::Microseconds(1));
   RunLoopOnce();
 }
 
@@ -151,7 +151,7 @@
   int delegate_id_3 = delegate_manager_->AddObserver(&observer_3_);
   delegate_manager_->SetIdle(delegate_id_3, true);
   EXPECT_CALL(observer_3_, OnIdleTimeout());
-  tick_clock_.Advance(base::TimeDelta::FromMicroseconds(1));
+  tick_clock_.Advance(base::Microseconds(1));
   RunLoopOnce();
 }
 
@@ -160,7 +160,7 @@
   int delegate_id_1 = delegate_manager_->AddObserver(&observer_1_);
   delegate_manager_->SetIdle(delegate_id_1, true);
   EXPECT_CALL(observer_1_, OnIdleTimeout());
-  tick_clock_.Advance(kIdleTimeout + base::TimeDelta::FromMicroseconds(1));
+  tick_clock_.Advance(kIdleTimeout + base::Microseconds(1));
   base::RunLoop().RunUntilIdle();
 }
 
@@ -170,7 +170,7 @@
   int delegate_id_1 = delegate_manager_->AddObserver(&observer_1_);
   delegate_manager_->SetIdle(delegate_id_1, true);
   EXPECT_CALL(observer_1_, OnIdleTimeout());
-  tick_clock_.Advance(kIdleTimeout + base::TimeDelta::FromMicroseconds(1));
+  tick_clock_.Advance(kIdleTimeout + base::Microseconds(1));
   base::RunLoop().RunUntilIdle();
   delegate_manager_->ClearStaleFlag(delegate_id_1);
   ASSERT_TRUE(delegate_manager_->IsIdleCleanupTimerRunningForTesting());
@@ -188,7 +188,7 @@
   // kept alive.
   {
     EXPECT_CALL(observer_2_, OnIdleTimeout());
-    tick_clock_.Advance(kIdleTimeout + base::TimeDelta::FromMicroseconds(1));
+    tick_clock_.Advance(kIdleTimeout + base::Microseconds(1));
     RunLoopOnce();
   }
 
@@ -196,7 +196,7 @@
   delegate_manager_->SetIdle(delegate_id_1, true);
   {
     EXPECT_CALL(observer_1_, OnIdleTimeout());
-    tick_clock_.Advance(kIdleTimeout + base::TimeDelta::FromMicroseconds(1));
+    tick_clock_.Advance(kIdleTimeout + base::Microseconds(1));
     RunLoopOnce();
   }
 }
diff --git a/content/renderer/pepper/event_conversion.cc b/content/renderer/pepper/event_conversion.cc
index 35c210c..fe4aa3e6 100644
--- a/content/renderer/pepper/event_conversion.cc
+++ b/content/renderer/pepper/event_conversion.cc
@@ -400,8 +400,7 @@
       NOTREACHED();
   }
   WebTouchEventTraits::ResetType(
-      type,
-      base::TimeTicks() + base::TimeDelta::FromSecondsD(event.event_time_stamp),
+      type, base::TimeTicks() + base::Seconds(event.event_time_stamp),
       web_event);
   web_event->touches_length = 0;
 
@@ -433,8 +432,7 @@
   }
   WebKeyboardEvent* key_event = new WebKeyboardEvent(
       type, event.event_modifiers,
-      base::TimeTicks() +
-          base::TimeDelta::FromSecondsD(event.event_time_stamp));
+      base::TimeTicks() + base::Seconds(event.event_time_stamp));
   key_event->windows_key_code = event.key_code;
   return key_event;
 }
@@ -442,8 +440,7 @@
 WebKeyboardEvent* BuildCharEvent(const InputEventData& event) {
   WebKeyboardEvent* key_event = new WebKeyboardEvent(
       WebInputEvent::Type::kChar, event.event_modifiers,
-      base::TimeTicks() +
-          base::TimeDelta::FromSecondsD(event.event_time_stamp));
+      base::TimeTicks() + base::Seconds(event.event_time_stamp));
 
   // Make sure to not read beyond the buffer in case some bad code doesn't
   // NULL-terminate it (this is called from plugins).
@@ -483,8 +480,7 @@
   }
   WebMouseEvent* mouse_event = new WebMouseEvent(
       type, event.event_modifiers,
-      base::TimeTicks() +
-          base::TimeDelta::FromSecondsD(event.event_time_stamp));
+      base::TimeTicks() + base::Seconds(event.event_time_stamp));
   mouse_event->pointer_type = blink::WebPointerProperties::PointerType::kMouse;
   mouse_event->button = static_cast<WebMouseEvent::Button>(event.mouse_button);
   if (mouse_event->GetType() == WebInputEvent::Type::kMouseMove) {
@@ -506,8 +502,7 @@
 WebMouseWheelEvent* BuildMouseWheelEvent(const InputEventData& event) {
   WebMouseWheelEvent* mouse_wheel_event = new WebMouseWheelEvent(
       WebInputEvent::Type::kMouseWheel, event.event_modifiers,
-      base::TimeTicks() +
-          base::TimeDelta::FromSecondsD(event.event_time_stamp));
+      base::TimeTicks() + base::Seconds(event.event_time_stamp));
   mouse_wheel_event->delta_x = event.wheel_delta.x;
   mouse_wheel_event->delta_y = event.wheel_delta.y;
   mouse_wheel_event->wheel_ticks_x = event.wheel_ticks.x;
diff --git a/content/renderer/pepper/pepper_graphics_2d_host.cc b/content/renderer/pepper/pepper_graphics_2d_host.cc
index abb8896a..6c1dbfe4 100644
--- a/content/renderer/pepper/pepper_graphics_2d_host.cc
+++ b/content/renderer/pepper/pepper_graphics_2d_host.cc
@@ -960,7 +960,7 @@
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&PepperGraphics2DHost::SendOffscreenFlushAck, AsWeakPtr()),
-      base::TimeDelta::FromMilliseconds(kOffscreenCallbackDelayMs));
+      base::Milliseconds(kOffscreenCallbackDelayMs));
 }
 
 bool PepperGraphics2DHost::HasPendingFlush() const {
diff --git a/content/renderer/pepper/pepper_hung_plugin_filter.cc b/content/renderer/pepper/pepper_hung_plugin_filter.cc
index 9cec206e..dc9eaf9 100644
--- a/content/renderer/pepper/pepper_hung_plugin_filter.cc
+++ b/content/renderer/pepper/pepper_hung_plugin_filter.cc
@@ -97,7 +97,7 @@
   timer_task_pending_ = true;
   io_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&PepperHungPluginFilter::OnHangTimer, this),
-      base::TimeDelta::FromSeconds(kHungThresholdSec));
+      base::Seconds(kHungThresholdSec));
 }
 
 void PepperHungPluginFilter::MayHaveBecomeUnhung() {
@@ -118,12 +118,11 @@
 
   // Always considered hung at the hard threshold.
   base::TimeTicks hard_time =
-      began_blocking_time_ +
-      base::TimeDelta::FromSeconds(kBlockedHardThresholdSec);
+      began_blocking_time_ + base::Seconds(kBlockedHardThresholdSec);
 
   // Hung after a soft threshold from last message of any sort.
   base::TimeTicks soft_time =
-      last_message_received_ + base::TimeDelta::FromSeconds(kHungThresholdSec);
+      last_message_received_ + base::Seconds(kHungThresholdSec);
 
   return std::min(soft_time, hard_time);
 }
diff --git a/content/renderer/pepper/pepper_media_stream_audio_track_host.cc b/content/renderer/pepper/pepper_media_stream_audio_track_host.cc
index 5a8bc7d..da01ae6 100644
--- a/content/renderer/pepper/pepper_media_stream_audio_track_host.cc
+++ b/content/renderer/pepper/pepper_media_stream_audio_track_host.cc
@@ -237,9 +237,9 @@
       // The active buffer is new, so initialise the header and metadata fields.
       buffer->header.size = host_->buffer_manager()->buffer_size();
       buffer->header.type = ppapi::MediaStreamBuffer::TYPE_AUDIO;
-      const base::TimeTicks time_at_offset = estimated_capture_time +
-          frame_offset * base::TimeDelta::FromSeconds(1) /
-              audio_params_.sample_rate();
+      const base::TimeTicks time_at_offset =
+          estimated_capture_time +
+          frame_offset * base::Seconds(1) / audio_params_.sample_rate();
       buffer->timestamp =
           (time_at_offset - first_frame_capture_time_).InSecondsF();
       buffer->sample_rate =
diff --git a/content/renderer/pepper/pepper_media_stream_video_track_host.cc b/content/renderer/pepper/pepper_media_stream_video_track_host.cc
index 81c0d992..9867137 100644
--- a/content/renderer/pepper/pepper_media_stream_video_track_host.cc
+++ b/content/renderer/pepper/pepper_media_stream_video_track_host.cc
@@ -325,17 +325,9 @@
     int64_t ts_ms = static_cast<int64_t>(pp_frame->timestamp *
                                          base::Time::kMillisecondsPerSecond);
     scoped_refptr<VideoFrame> frame = media::VideoFrame::WrapExternalYuvData(
-        FromPpapiFormat(plugin_frame_format_),
-        plugin_frame_size_,
-        gfx::Rect(plugin_frame_size_),
-        plugin_frame_size_,
-        y_stride,
-        uv_stride,
-        uv_stride,
-        y_data,
-        u_data,
-        v_data,
-        base::TimeDelta::FromMilliseconds(ts_ms));
+        FromPpapiFormat(plugin_frame_format_), plugin_frame_size_,
+        gfx::Rect(plugin_frame_size_), plugin_frame_size_, y_stride, uv_stride,
+        uv_stride, y_data, u_data, v_data, base::Milliseconds(ts_ms));
     if (!frame)
       return PP_ERROR_FAILED;
 
diff --git a/content/renderer/pepper/pepper_platform_audio_output_dev.cc b/content/renderer/pepper/pepper_platform_audio_output_dev.cc
index 308beca..e26c51f 100644
--- a/content/renderer/pepper/pepper_platform_audio_output_dev.cc
+++ b/content/renderer/pepper/pepper_platform_audio_output_dev.cc
@@ -27,8 +27,7 @@
 
 namespace {
 #if defined(OS_WIN) || defined(OS_MAC)
-constexpr base::TimeDelta kMaxAuthorizationTimeout =
-    base::TimeDelta::FromSeconds(4);
+constexpr base::TimeDelta kMaxAuthorizationTimeout = base::Seconds(4);
 #else
 constexpr base::TimeDelta kMaxAuthorizationTimeout;  // No timeout.
 #endif
diff --git a/content/renderer/pepper/pepper_plugin_instance_impl.cc b/content/renderer/pepper/pepper_plugin_instance_impl.cc
index aa08fda..33254ff1 100644
--- a/content/renderer/pepper/pepper_plugin_instance_impl.cc
+++ b/content/renderer/pepper/pepper_plugin_instance_impl.cc
@@ -657,9 +657,7 @@
     original_instance_interface_->DidDestroy(pp_instance());
     UMA_HISTOGRAM_CUSTOM_TIMES("NaCl.Perf.ShutdownTime.Total",
                                base::TimeTicks::Now() - start,
-                               base::TimeDelta::FromMilliseconds(1),
-                               base::TimeDelta::FromSeconds(20),
-                               100);
+                               base::Milliseconds(1), base::Seconds(20), 100);
   } else {
     instance_interface_->DidDestroy(pp_instance());
   }
diff --git a/content/renderer/pepper/plugin_module.cc b/content/renderer/pepper/plugin_module.cc
index ee46849..11a285d1 100644
--- a/content/renderer/pepper/plugin_module.cc
+++ b/content/renderer/pepper/plugin_module.cc
@@ -190,7 +190,7 @@
   if (callback.func) {
     PpapiGlobals::Get()->GetMainThreadMessageLoop()->PostDelayedTask(
         FROM_HERE, base::BindOnce(callback.func, callback.user_data, result),
-        base::TimeDelta::FromMilliseconds(delay_in_msec));
+        base::Milliseconds(delay_in_msec));
   }
 }
 
diff --git a/content/renderer/pepper/video_encoder_shim.cc b/content/renderer/pepper/video_encoder_shim.cc
index 7995499..b3dc15f 100644
--- a/content/renderer/pepper/video_encoder_shim.cc
+++ b/content/renderer/pepper/video_encoder_shim.cc
@@ -315,8 +315,7 @@
     if (frame.force_keyframe)
       flags = VPX_EFLAG_FORCE_KF;
 
-    const base::TimeDelta frame_duration =
-        base::TimeDelta::FromSecondsD(1.0 / framerate_);
+    const base::TimeDelta frame_duration = base::Seconds(1.0 / framerate_);
     if (vpx_codec_encode(&encoder_, &vpx_image, 0,
                          frame_duration.InMicroseconds(), flags,
                          VPX_DL_REALTIME) != VPX_CODEC_OK) {
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index 41da3c8..8eac4a5 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -308,9 +308,8 @@
 // content state is modified and not sent to session restore, but this is
 // better than having to wake up all renderers during shutdown.
 constexpr base::TimeDelta kDelaySecondsForContentStateSyncHidden =
-    base::TimeDelta::FromSeconds(5);
-constexpr base::TimeDelta kDelaySecondsForContentStateSync =
-    base::TimeDelta::FromSeconds(1);
+    base::Seconds(5);
+constexpr base::TimeDelta kDelaySecondsForContentStateSync = base::Seconds(1);
 
 const blink::PreviewsState kDisabledPreviewsBits =
     blink::PreviewsTypes::PREVIEWS_OFF |
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
index f2f616f..1546f527 100644
--- a/content/renderer/render_thread_impl.cc
+++ b/content/renderer/render_thread_impl.cc
@@ -1573,21 +1573,21 @@
           &RenderThreadImpl::
               OnRecordMetricsForBackgroundedRendererPurgeTimerExpired,
           base::Unretained(this), "30min", process_foregrounded_count_),
-      base::TimeDelta::FromMinutes(30));
+      base::Minutes(30));
   GetWebMainThreadScheduler()->DefaultTaskRunner()->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(
           &RenderThreadImpl::
               OnRecordMetricsForBackgroundedRendererPurgeTimerExpired,
           base::Unretained(this), "60min", process_foregrounded_count_),
-      base::TimeDelta::FromMinutes(60));
+      base::Minutes(60));
   GetWebMainThreadScheduler()->DefaultTaskRunner()->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(
           &RenderThreadImpl::
               OnRecordMetricsForBackgroundedRendererPurgeTimerExpired,
           base::Unretained(this), "90min", process_foregrounded_count_),
-      base::TimeDelta::FromMinutes(90));
+      base::Minutes(90));
 }
 
 void RenderThreadImpl::CompositingModeFallbackToSoftware() {
@@ -1905,19 +1905,19 @@
       base::BindOnce(&RenderThreadImpl::RecordMemoryUsageAfterBackgrounded,
                      base::Unretained(this), "5min",
                      process_foregrounded_count_),
-      base::TimeDelta::FromMinutes(5));
+      base::Minutes(5));
   GetWebMainThreadScheduler()->DefaultTaskRunner()->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&RenderThreadImpl::RecordMemoryUsageAfterBackgrounded,
                      base::Unretained(this), "10min",
                      process_foregrounded_count_),
-      base::TimeDelta::FromMinutes(10));
+      base::Minutes(10));
   GetWebMainThreadScheduler()->DefaultTaskRunner()->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&RenderThreadImpl::RecordMemoryUsageAfterBackgrounded,
                      base::Unretained(this), "15min",
                      process_foregrounded_count_),
-      base::TimeDelta::FromMinutes(15));
+      base::Minutes(15));
 }
 
 void RenderThreadImpl::OnRendererForegrounded() {
diff --git a/content/renderer/render_thread_impl_discardable_memory_browsertest.cc b/content/renderer/render_thread_impl_discardable_memory_browsertest.cc
index 221beaa..c278e6c4 100644
--- a/content/renderer/render_thread_impl_discardable_memory_browsertest.cc
+++ b/content/renderer/render_thread_impl_discardable_memory_browsertest.cc
@@ -173,8 +173,7 @@
       ->ReleaseFreeMemory();
 
   // Busy wait for host memory usage to be reduced.
-  base::TimeTicks end =
-      base::TimeTicks::Now() + base::TimeDelta::FromSeconds(5);
+  base::TimeTicks end = base::TimeTicks::Now() + base::Seconds(5);
   while (base::TimeTicks::Now() < end) {
     if (!discardable_memory::DiscardableSharedMemoryManager::Get()
              ->GetBytesAllocated())
diff --git a/content/renderer/render_view_browsertest.cc b/content/renderer/render_view_browsertest.cc
index e1ddded..16efb332 100644
--- a/content/renderer/render_view_browsertest.cc
+++ b/content/renderer/render_view_browsertest.cc
@@ -2729,8 +2729,7 @@
 
   frame()->Navigate(late_common_params.Clone(), DummyCommitNavigationParams());
   base::RunLoop().RunUntilIdle();
-  base::Time after_navigation =
-      base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time after_navigation = base::Time::Now() + base::Days(1);
 
   base::Time late_nav_reported_start =
       base::Time::FromDoubleT(GetMainFrame()->Performance().NavigationStart());
diff --git a/content/services/auction_worklet/auction_v8_helper.cc b/content/services/auction_worklet/auction_v8_helper.cc
index fd4897ab..584b2f2 100644
--- a/content/services/auction_worklet/auction_v8_helper.cc
+++ b/content/services/auction_worklet/auction_v8_helper.cc
@@ -205,7 +205,7 @@
 }  // namespace
 
 constexpr base::TimeDelta AuctionV8Helper::kScriptTimeout =
-    base::TimeDelta::FromMilliseconds(50);
+    base::Milliseconds(50);
 
 const int AuctionV8Helper::kNoDebugContextGroupId;
 
diff --git a/content/services/auction_worklet/auction_v8_helper_unittest.cc b/content/services/auction_worklet/auction_v8_helper_unittest.cc
index b0716ff..26927b2 100644
--- a/content/services/auction_worklet/auction_v8_helper_unittest.cc
+++ b/content/services/auction_worklet/auction_v8_helper_unittest.cc
@@ -168,7 +168,7 @@
        true}};
 
   // Use a sorter timeout so test runs faster.
-  const base::TimeDelta kScriptTimeout = base::TimeDelta::FromMilliseconds(20);
+  const base::TimeDelta kScriptTimeout = base::Milliseconds(20);
   helper_->set_script_timeout_for_testing(kScriptTimeout);
 
   for (const HangingScript& hanging_script : kHangingScripts) {
@@ -201,7 +201,7 @@
     // mostly serves to make sure the script timed out, instead of immediately
     // terminating.
     EXPECT_GE(base::TimeTicks::Now() - start_time,
-              kScriptTimeout - base::TimeDelta::FromMilliseconds(10));
+              kScriptTimeout - base::Milliseconds(10));
   }
 
   // Make sure it's still possible to run a script with the isolate after the
diff --git a/content/services/auction_worklet/bidder_worklet_unittest.cc b/content/services/auction_worklet/bidder_worklet_unittest.cc
index eabeb94df..a361d47c 100644
--- a/content/services/auction_worklet/bidder_worklet_unittest.cc
+++ b/content/services/auction_worklet/bidder_worklet_unittest.cc
@@ -1140,8 +1140,8 @@
 }
 
 TEST_F(BidderWorkletTest, GenerateBidPrevWins) {
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(100);
-  base::TimeDelta tiny_delta = base::TimeDelta::FromMilliseconds(500);
+  base::TimeDelta delta = base::Seconds(100);
+  base::TimeDelta tiny_delta = base::Milliseconds(500);
 
   base::Time time1 = auction_start_time_ - delta - delta;
   base::Time time2 = auction_start_time_ - delta - tiny_delta;
diff --git a/content/services/isolated_xr_device/xr_runtime_provider.cc b/content/services/isolated_xr_device/xr_runtime_provider.cc
index a64a198..1626107 100644
--- a/content/services/isolated_xr_device/xr_runtime_provider.cc
+++ b/content/services/isolated_xr_device/xr_runtime_provider.cc
@@ -26,8 +26,7 @@
 
 namespace {
 // Poll for device add/remove every 5 seconds.
-constexpr base::TimeDelta kTimeBetweenPollingEvents =
-    base::TimeDelta::FromSecondsD(5);
+constexpr base::TimeDelta kTimeBetweenPollingEvents = base::Seconds(5);
 
 template <typename VrDeviceT>
 std::unique_ptr<VrDeviceT> CreateDevice() {
diff --git a/content/shell/browser/shell_content_browser_client.h b/content/shell/browser/shell_content_browser_client.h
index b9357a5..a859c4d2 100644
--- a/content/shell/browser/shell_content_browser_client.h
+++ b/content/shell/browser/shell_content_browser_client.h
@@ -219,7 +219,7 @@
 
 // The delay for sending reports when running with --run-web-tests
 constexpr base::TimeDelta kReportingDeliveryIntervalTimeForWebTests =
-    base::TimeDelta::FromMilliseconds(100);
+    base::Milliseconds(100);
 
 }  // namespace content
 
diff --git a/content/test/mock_background_sync_controller.cc b/content/test/mock_background_sync_controller.cc
index 16174c61..0b46e01a2c 100644
--- a/content/test/mock_background_sync_controller.cc
+++ b/content/test/mock_background_sync_controller.cc
@@ -70,7 +70,7 @@
     if (base::StringToInt(field_params[kMinPeriodicSyncEventsInterval],
                           &min_periodic_sync_events_interval_sec)) {
       background_sync_parameters_.min_periodic_sync_events_interval =
-          base::TimeDelta::FromSeconds(min_periodic_sync_events_interval_sec);
+          base::Seconds(min_periodic_sync_events_interval_sec);
     }
   }
 }
@@ -100,7 +100,7 @@
       case blink::mojom::BackgroundSyncType::PERIODIC:
         int64_t effective_gap_ms =
             parameters->min_periodic_sync_events_interval.InMilliseconds();
-        return base::TimeDelta::FromMilliseconds(
+        return base::Milliseconds(
             std::max(registration.options()->min_interval, effective_gap_ms));
     }
   }
diff --git a/content/web_test/browser/web_test_push_messaging_service.cc b/content/web_test/browser/web_test_push_messaging_service.cc
index eddcc20..0d68b9a 100644
--- a/content/web_test/browser/web_test_push_messaging_service.cc
+++ b/content/web_test/browser/web_test_push_messaging_service.cc
@@ -43,8 +43,7 @@
 const int64_t kTestExpirationWindowInDays = 90;
 
 base::Time GetFutureTime() {
-  return base::Time::Now() +
-         base::TimeDelta::FromDays(kTestExpirationWindowInDays);
+  return base::Time::Now() + base::Days(kTestExpirationWindowInDays);
 }
 
 }  // anonymous namespace
diff --git a/content/web_test/renderer/event_sender.cc b/content/web_test/renderer/event_sender.cc
index d846820..27ee883 100644
--- a/content/web_test/renderer/event_sender.cc
+++ b/content/web_test/renderer/event_sender.cc
@@ -396,7 +396,7 @@
 
 // Maximum distance (in space and time) for a mouse click to register as a
 // double or triple click.
-constexpr base::TimeDelta kMultipleClickTime = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kMultipleClickTime = base::Seconds(1);
 const int kMultipleClickRadiusPixels = 5;
 const char kSubMenuDepthIdentifier[] = "_";
 const char kSubMenuIdentifier[] = " >";
@@ -2166,7 +2166,7 @@
 }
 
 void EventSender::DoLeapForward(int milliseconds) {
-  time_offset_ += base::TimeDelta::FromMilliseconds(milliseconds);
+  time_offset_ += base::Milliseconds(milliseconds);
 }
 
 uint32_t EventSender::GetUniqueTouchEventId(gin::Arguments* args) {
diff --git a/content/web_test/renderer/test_websocket_handshake_throttle_provider.cc b/content/web_test/renderer/test_websocket_handshake_throttle_provider.cc
index 9f2662f4..6e8e932bc 100644
--- a/content/web_test/renderer/test_websocket_handshake_throttle_provider.cc
+++ b/content/web_test/renderer/test_websocket_handshake_throttle_provider.cc
@@ -40,7 +40,7 @@
     if (!base::StringToInt(value_piece, &value_int) || value_int < 0)
       return base::TimeDelta();
 
-    return base::TimeDelta::FromMilliseconds(value_int);
+    return base::Milliseconds(value_int);
   }
 
   // Parameter was not found.
diff --git a/dbus/bus.cc b/dbus/bus.cc
index 2c1f60a0..585a566 100644
--- a/dbus/bus.cc
+++ b/dbus/bus.cc
@@ -133,8 +133,7 @@
   void StopMonitoring() { weak_ptr_factory_.InvalidateWeakPtrs(); }
 
   base::TimeDelta GetInterval() {
-    return base::TimeDelta::FromMilliseconds(
-        dbus_timeout_get_interval(raw_timeout_));
+    return base::Milliseconds(dbus_timeout_get_interval(raw_timeout_));
   }
 
  private:
@@ -505,7 +504,7 @@
   // Wait until the shutdown is complete on the D-Bus thread.
   // The shutdown should not hang, but set timeout just in case.
   const int kTimeoutSecs = 3;
-  const base::TimeDelta timeout(base::TimeDelta::FromSeconds(kTimeoutSecs));
+  const base::TimeDelta timeout(base::Seconds(kTimeoutSecs));
   const bool signaled = on_shutdown_.TimedWait(timeout);
   LOG_IF(ERROR, !signaled) << "Failed to shutdown the bus";
 }
@@ -635,7 +634,7 @@
   DBusMessage* reply = dbus_connection_send_with_reply_and_block(
       connection_, request, timeout_ms, error);
 
-  constexpr base::TimeDelta kLongCall = base::TimeDelta::FromSeconds(1);
+  constexpr base::TimeDelta kLongCall = base::Seconds(1);
   LOG_IF(WARNING, elapsed.Elapsed() >= kLongCall)
       << "Bus::SendWithReplyAndBlock took "
       << elapsed.Elapsed().InMilliseconds() << "ms to process message: "
diff --git a/dbus/object_manager_unittest.cc b/dbus/object_manager_unittest.cc
index 0d0e197..93cd77de 100644
--- a/dbus/object_manager_unittest.cc
+++ b/dbus/object_manager_unittest.cc
@@ -411,7 +411,7 @@
       FROM_HERE,
       base::BindOnce(&ObjectManagerTest::PropertiesChangedTestTimeout,
                      base::Unretained(this)),
-      base::TimeDelta::FromSeconds(2));
+      base::Seconds(2));
 
   while (last_name_value_ != "ChangedTestServiceName" && !timeout_expired_) {
     run_loop_ = std::make_unique<base::RunLoop>();
diff --git a/device/bluetooth/bluetooth_adapter.cc b/device/bluetooth/bluetooth_adapter.cc
index 90711823..c1dba8cf 100644
--- a/device/bluetooth/bluetooth_adapter.cc
+++ b/device/bluetooth/bluetooth_adapter.cc
@@ -671,7 +671,6 @@
 }
 
 // static
-constexpr base::TimeDelta BluetoothAdapter::timeoutSec =
-    base::TimeDelta::FromSeconds(180);
+constexpr base::TimeDelta BluetoothAdapter::timeoutSec = base::Seconds(180);
 
 }  // namespace device
diff --git a/device/bluetooth/bluetooth_adapter_android.cc b/device/bluetooth/bluetooth_adapter_android.cc
index db15e822..2e6f567 100644
--- a/device/bluetooth/bluetooth_adapter_android.cc
+++ b/device/bluetooth/bluetooth_adapter_android.cc
@@ -291,13 +291,13 @@
         FROM_HERE,
         base::BindOnce(&BluetoothAdapterAndroid::PurgeTimedOutDevices,
                        weak_ptr_factory_.GetWeakPtr()),
-        base::TimeDelta::FromMilliseconds(kActivePollInterval));
+        base::Milliseconds(kActivePollInterval));
   } else {
     ui_task_runner_->PostDelayedTask(
         FROM_HERE,
         base::BindOnce(&BluetoothAdapterAndroid::RemoveTimedOutDevices,
                        weak_ptr_factory_.GetWeakPtr()),
-        base::TimeDelta::FromMilliseconds(kPassivePollInterval));
+        base::Milliseconds(kPassivePollInterval));
   }
 }
 
@@ -384,7 +384,7 @@
           FROM_HERE,
           base::BindOnce(&BluetoothAdapterAndroid::PurgeTimedOutDevices,
                          weak_ptr_factory_.GetWeakPtr()),
-          base::TimeDelta::FromMilliseconds(kPurgeDelay));
+          base::Milliseconds(kPurgeDelay));
     }
   } else {
     DVLOG(1) << "StartScanWithFilter: Fails: !isPowered";
diff --git a/device/bluetooth/bluetooth_adapter_mac.mm b/device/bluetooth/bluetooth_adapter_mac.mm
index 54d9024..91ed4a8 100644
--- a/device/bluetooth/bluetooth_adapter_mac.mm
+++ b/device/bluetooth/bluetooth_adapter_mac.mm
@@ -599,7 +599,7 @@
       FROM_HERE,
       base::BindOnce(&BluetoothAdapterMac::PollAdapter,
                      weak_ptr_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(kPollIntervalMs));
+      base::Milliseconds(kPollIntervalMs));
 }
 
 void BluetoothAdapterMac::ClassicDeviceAdded(IOBluetoothDevice* device) {
diff --git a/device/bluetooth/bluetooth_device.cc b/device/bluetooth/bluetooth_device.cc
index 9d5fbe12..99c4d9411 100644
--- a/device/bluetooth/bluetooth_device.cc
+++ b/device/bluetooth/bluetooth_device.cc
@@ -547,9 +547,8 @@
 }
 
 void BluetoothDevice::SetAsExpiredForTesting() {
-  last_update_time_ =
-      base::Time::NowFromSystemTime() -
-      (BluetoothAdapter::timeoutSec + base::TimeDelta::FromSeconds(1));
+  last_update_time_ = base::Time::NowFromSystemTime() -
+                      (BluetoothAdapter::timeoutSec + base::Seconds(1));
 }
 
 void BluetoothDevice::Pair(PairingDelegate* pairing_delegate,
diff --git a/device/bluetooth/bluetooth_low_energy_scan_filter.cc b/device/bluetooth/bluetooth_low_energy_scan_filter.cc
index 5028ff3..7ab01500 100644
--- a/device/bluetooth/bluetooth_low_energy_scan_filter.cc
+++ b/device/bluetooth/bluetooth_low_energy_scan_filter.cc
@@ -13,8 +13,8 @@
 // Description": //third_party/bluez/current/doc/advertisement-monitor-api.txt
 constexpr int16_t kRSSIThresholdMin = -127;
 constexpr int16_t kRSSIThresholdMax = 20;
-constexpr base::TimeDelta kTimeoutMin = base::TimeDelta::FromSeconds(1);
-constexpr base::TimeDelta kTimeoutMax = base::TimeDelta::FromSeconds(300);
+constexpr base::TimeDelta kTimeoutMin = base::Seconds(1);
+constexpr base::TimeDelta kTimeoutMax = base::Seconds(300);
 constexpr uint8_t kPatternValueMaxLength = 31;
 
 // These values are based on real-world testing with the goal that they will be
diff --git a/device/bluetooth/bluetooth_low_energy_scan_filter_unittest.cc b/device/bluetooth/bluetooth_low_energy_scan_filter_unittest.cc
index d935b88d..31895946 100644
--- a/device/bluetooth/bluetooth_low_energy_scan_filter_unittest.cc
+++ b/device/bluetooth/bluetooth_low_energy_scan_filter_unittest.cc
@@ -13,8 +13,8 @@
 // Values for a valid filter configuration.
 constexpr int16_t kDeviceFoundRSSIThreshold = -80;
 constexpr int16_t kDeviceLostRSSIThreshold = -100;
-constexpr base::TimeDelta kDeviceFoundTimeout = base::TimeDelta::FromSeconds(1);
-constexpr base::TimeDelta kDeviceLostTimeout = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kDeviceFoundTimeout = base::Seconds(1);
+constexpr base::TimeDelta kDeviceLostTimeout = base::Seconds(5);
 const std::vector<uint8_t> kPatternValue = {0xff};
 
 device::BluetoothLowEnergyScanFilter::Pattern GetPattern() {
@@ -56,12 +56,12 @@
 TEST(BluetoothLowEnergyScanFilterTest, InvalidBadTimeout) {
   auto filter = device::BluetoothLowEnergyScanFilter::Create(
       kDeviceFoundRSSIThreshold, kDeviceLostRSSIThreshold, kDeviceFoundTimeout,
-      base::TimeDelta::FromSeconds(0), {GetPattern()});
+      base::Seconds(0), {GetPattern()});
   EXPECT_FALSE(filter);
 
   filter = device::BluetoothLowEnergyScanFilter::Create(
       kDeviceFoundRSSIThreshold, kDeviceLostRSSIThreshold, kDeviceFoundTimeout,
-      base::TimeDelta::FromSeconds(301), {GetPattern()});
+      base::Seconds(301), {GetPattern()});
   EXPECT_FALSE(filter);
 }
 
diff --git a/device/bluetooth/bluetooth_task_manager_win.cc b/device/bluetooth/bluetooth_task_manager_win.cc
index 10c778f..8b2f013 100644
--- a/device/bluetooth/bluetooth_task_manager_win.cc
+++ b/device/bluetooth/bluetooth_task_manager_win.cc
@@ -343,7 +343,7 @@
   // Check if we need to discard this message
   if (!current_logging_batch_ticks_.is_null()) {
     if (base::TimeTicks::Now() - current_logging_batch_ticks_ <=
-        base::TimeDelta::FromMilliseconds(kLogPeriodInMilliseconds)) {
+        base::Milliseconds(kLogPeriodInMilliseconds)) {
       if (current_logging_batch_count_ >= kMaxMessagesPerLogPeriod)
         return;
     } else {
@@ -413,7 +413,7 @@
   // Re-poll.
   bluetooth_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&BluetoothTaskManagerWin::PollAdapter, this),
-      base::TimeDelta::FromMilliseconds(kPollIntervalMs));
+      base::Milliseconds(kPollIntervalMs));
 }
 
 void BluetoothTaskManagerWin::PostAdapterStateToUi() {
diff --git a/device/bluetooth/bluez/bluetooth_bluez_unittest.cc b/device/bluetooth/bluez/bluetooth_bluez_unittest.cc
index 76330b3..a0d55fc 100644
--- a/device/bluetooth/bluez/bluetooth_bluez_unittest.cc
+++ b/device/bluetooth/bluez/bluetooth_bluez_unittest.cc
@@ -76,9 +76,9 @@
 constexpr int16_t kBackgroundScanningDeviceFoundRSSIThreshold = -80;
 constexpr int16_t kBackgroundScanningDeviceLostRSSIThreshold = -100;
 constexpr base::TimeDelta kBackgroundScanningDeviceFoundTimeout =
-    base::TimeDelta::FromSeconds(1);
+    base::Seconds(1);
 constexpr base::TimeDelta kBackgroundScanningDeviceLostTimeout =
-    base::TimeDelta::FromSeconds(5);
+    base::Seconds(5);
 // This pattern value encodes the Fast Initiation service ID of 0xfe2c and the
 // model ID of 0xfc128e.
 constexpr uint8_t kBackgroundScanningFilterPatternValue[] = {0x2c, 0xfe, 0xfc,
diff --git a/device/bluetooth/chromeos/bluetooth_utils.cc b/device/bluetooth/chromeos/bluetooth_utils.cc
index c2eec4e..1db0233 100644
--- a/device/bluetooth/chromeos/bluetooth_utils.cc
+++ b/device/bluetooth/chromeos/bluetooth_utils.cc
@@ -29,8 +29,7 @@
 // https://www.bluetooth.com/specifications/assigned-numbers/16-bit-uuids-for-sdos.
 const char kSecurityKeyServiceUUID[] = "FFFD";
 
-constexpr base::TimeDelta kMaxDeviceSelectionDuration =
-    base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kMaxDeviceSelectionDuration = base::Seconds(30);
 
 // This enum is tied directly to a UMA enum defined in
 // //tools/metrics/histograms/enums.xml, and should always reflect it (do not
@@ -145,9 +144,8 @@
 void RecordPairingDuration(const std::string& histogram_name,
                            base::TimeDelta pairing_duration) {
   base::UmaHistogramCustomTimes(histogram_name, pairing_duration,
-                                base::TimeDelta::FromMilliseconds(1) /* min */,
-                                base::TimeDelta::FromSeconds(30) /* max */,
-                                50 /* buckets */);
+                                base::Milliseconds(1) /* min */,
+                                base::Seconds(30) /* max */, 50 /* buckets */);
 }
 
 void RecordPairingTransport(BluetoothTransport transport) {
@@ -177,7 +175,7 @@
 void RecordDeviceSelectionDuration(const std::string& histogram_name,
                                    base::TimeDelta duration) {
   base::UmaHistogramCustomTimes(
-      histogram_name, duration, base::TimeDelta::FromMilliseconds(1) /* min */,
+      histogram_name, duration, base::Milliseconds(1) /* min */,
       kMaxDeviceSelectionDuration /* max */, 50 /* buckets */);
 }
 
diff --git a/device/bluetooth/chromeos/bluetooth_utils_unittest.cc b/device/bluetooth/chromeos/bluetooth_utils_unittest.cc
index 055bc0a..dd1b78c 100644
--- a/device/bluetooth/chromeos/bluetooth_utils_unittest.cc
+++ b/device/bluetooth/chromeos/bluetooth_utils_unittest.cc
@@ -252,7 +252,7 @@
   RecordUserInitiatedReconnectionAttemptDuration(
       device::ConnectionFailureReason::kFailed,
       device::BluetoothTransport::BLUETOOTH_TRANSPORT_CLASSIC,
-      base::TimeDelta::FromSeconds(2));
+      base::Seconds(2));
 
   histogram_tester.ExpectBucketCount(
       "Bluetooth.ChromeOS.UserInitiatedReconnectionAttempt.Duration.Failure",
diff --git a/device/bluetooth/dbus/bluetooth_advertisement_monitor_application_service_provider_unittest.cc b/device/bluetooth/dbus/bluetooth_advertisement_monitor_application_service_provider_unittest.cc
index 8ebaca2d..21b0086 100644
--- a/device/bluetooth/dbus/bluetooth_advertisement_monitor_application_service_provider_unittest.cc
+++ b/device/bluetooth/dbus/bluetooth_advertisement_monitor_application_service_provider_unittest.cc
@@ -150,8 +150,8 @@
 ]
 )";
 
-constexpr base::TimeDelta kDeviceFoundTimeout = base::TimeDelta::FromSeconds(1);
-constexpr base::TimeDelta kDeviceLostTimeout = base::TimeDelta::FromSeconds(3);
+constexpr base::TimeDelta kDeviceFoundTimeout = base::Seconds(1);
+constexpr base::TimeDelta kDeviceLostTimeout = base::Seconds(3);
 // Used to verify the filter pattern value provided by the scanner.
 constexpr uint8_t kPatternValue[] = {0x2c, 0xfe, 0xfc, 0x12, 0x8e};
 
diff --git a/device/bluetooth/dbus/fake_bluetooth_adapter_client.cc b/device/bluetooth/dbus/fake_bluetooth_adapter_client.cc
index 0c132509..c0391747 100644
--- a/device/bluetooth/dbus/fake_bluetooth_adapter_client.cc
+++ b/device/bluetooth/dbus/fake_bluetooth_adapter_client.cc
@@ -372,7 +372,7 @@
 void FakeBluetoothAdapterClient::PostDelayedTask(base::OnceClosure callback) {
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE, std::move(callback),
-      base::TimeDelta::FromMilliseconds(simulation_interval_ms_));
+      base::Milliseconds(simulation_interval_ms_));
 }
 
 }  // namespace bluez
diff --git a/device/bluetooth/dbus/fake_bluetooth_device_client.cc b/device/bluetooth/dbus/fake_bluetooth_device_client.cc
index f787e26..151e9af 100644
--- a/device/bluetooth/dbus/fake_bluetooth_device_client.cc
+++ b/device/bluetooth/dbus/fake_bluetooth_device_client.cc
@@ -692,7 +692,7 @@
       FROM_HERE,
       base::BindOnce(&FakeBluetoothDeviceClient::DiscoverySimulationTimer,
                      base::Unretained(this)),
-      base::TimeDelta::FromMilliseconds(delay));
+      base::Milliseconds(delay));
 }
 
 void FakeBluetoothDeviceClient::EndDiscoverySimulation(
@@ -712,9 +712,8 @@
       FROM_HERE,
       base::BindOnce(&FakeBluetoothDeviceClient::IncomingPairingSimulationTimer,
                      base::Unretained(this)),
-      base::TimeDelta::FromMilliseconds(
-          kIncomingSimulationStartPairTimeMultiplier *
-          simulation_interval_ms_));
+      base::Milliseconds(kIncomingSimulationStartPairTimeMultiplier *
+                         simulation_interval_ms_));
 }
 
 void FakeBluetoothDeviceClient::EndIncomingPairingSimulation(
@@ -1260,7 +1259,7 @@
       FROM_HERE,
       base::BindOnce(&FakeBluetoothDeviceClient::DiscoverySimulationTimer,
                      base::Unretained(this)),
-      base::TimeDelta::FromMilliseconds(simulation_interval_ms_));
+      base::Milliseconds(simulation_interval_ms_));
 }
 
 void FakeBluetoothDeviceClient::IncomingPairingSimulationTimer() {
@@ -1315,8 +1314,8 @@
       FROM_HERE,
       base::BindOnce(&FakeBluetoothDeviceClient::IncomingPairingSimulationTimer,
                      base::Unretained(this)),
-      base::TimeDelta::FromMilliseconds(kIncomingSimulationPairTimeMultiplier *
-                                        simulation_interval_ms_));
+      base::Milliseconds(kIncomingSimulationPairTimeMultiplier *
+                         simulation_interval_ms_));
 }
 
 void FakeBluetoothDeviceClient::SimulatePairing(
@@ -1347,7 +1346,7 @@
           base::BindOnce(&FakeBluetoothDeviceClient::FailSimulatedPairing,
                          base::Unretained(this), object_path,
                          std::move(error_callback)),
-          base::TimeDelta::FromMilliseconds(simulation_interval_ms_));
+          base::Milliseconds(simulation_interval_ms_));
     } else if (iter->second->pairing_method == kPairingMethodNone ||
                iter->second->pairing_method.empty()) {
       if (!iter->second->incoming) {
@@ -1357,8 +1356,8 @@
             base::BindOnce(&FakeBluetoothDeviceClient::CompleteSimulatedPairing,
                            base::Unretained(this), object_path,
                            std::move(callback), std::move(error_callback)),
-            base::TimeDelta::FromMilliseconds(
-                kSimulateNormalPairTimeMultiplier * simulation_interval_ms_));
+            base::Milliseconds(kSimulateNormalPairTimeMultiplier *
+                               simulation_interval_ms_));
       } else {
         agent_service_provider->RequestAuthorization(
             object_path,
@@ -1378,8 +1377,8 @@
             base::BindOnce(&FakeBluetoothDeviceClient::CompleteSimulatedPairing,
                            base::Unretained(this), object_path,
                            std::move(callback), std::move(error_callback)),
-            base::TimeDelta::FromMilliseconds(kPinCodeDevicePairTimeMultiplier *
-                                              simulation_interval_ms_));
+            base::Milliseconds(kPinCodeDevicePairTimeMultiplier *
+                               simulation_interval_ms_));
       } else if (iter->second->pairing_action == kPairingActionRequest) {
         // Request a pin code.
         agent_service_provider->RequestPinCode(
@@ -1403,7 +1402,7 @@
             base::BindOnce(&FakeBluetoothDeviceClient::SimulateKeypress,
                            base::Unretained(this), 1, object_path,
                            std::move(callback), std::move(error_callback)),
-            base::TimeDelta::FromMilliseconds(simulation_interval_ms_));
+            base::Milliseconds(simulation_interval_ms_));
       } else if (iter->second->pairing_action == kPairingActionRequest) {
         agent_service_provider->RequestPasskey(
             object_path,
@@ -1430,8 +1429,8 @@
           base::BindOnce(&FakeBluetoothDeviceClient::CompleteSimulatedPairing,
                          base::Unretained(this), object_path,
                          std::move(callback), std::move(error_callback)),
-          base::TimeDelta::FromMilliseconds(kSimulateNormalPairTimeMultiplier *
-                                            simulation_interval_ms_));
+          base::Milliseconds(kSimulateNormalPairTimeMultiplier *
+                             simulation_interval_ms_));
 
     } else if (object_path == dbus::ObjectPath(kDisplayPinCodePath)) {
       // Display a Pincode, and wait before acting as if the other end accepted
@@ -1443,8 +1442,8 @@
           base::BindOnce(&FakeBluetoothDeviceClient::CompleteSimulatedPairing,
                          base::Unretained(this), object_path,
                          std::move(callback), std::move(error_callback)),
-          base::TimeDelta::FromMilliseconds(kPinCodeDevicePairTimeMultiplier *
-                                            simulation_interval_ms_));
+          base::Milliseconds(kPinCodeDevicePairTimeMultiplier *
+                             simulation_interval_ms_));
 
     } else if (object_path == dbus::ObjectPath(kVanishingDevicePath)) {
       // The vanishing device simulates being too far away, and thus times out.
@@ -1453,8 +1452,8 @@
           base::BindOnce(&FakeBluetoothDeviceClient::TimeoutSimulatedPairing,
                          base::Unretained(this), object_path,
                          std::move(error_callback)),
-          base::TimeDelta::FromMilliseconds(kVanishingDevicePairTimeMultiplier *
-                                            simulation_interval_ms_));
+          base::Milliseconds(kVanishingDevicePairTimeMultiplier *
+                             simulation_interval_ms_));
 
     } else if (object_path == dbus::ObjectPath(kDisplayPasskeyPath)) {
       // Display a passkey, and each interval act as if another key was entered
@@ -1466,7 +1465,7 @@
           base::BindOnce(&FakeBluetoothDeviceClient::SimulateKeypress,
                          base::Unretained(this), 1, object_path,
                          std::move(callback), std::move(error_callback)),
-          base::TimeDelta::FromMilliseconds(simulation_interval_ms_));
+          base::Milliseconds(simulation_interval_ms_));
 
     } else if (object_path == dbus::ObjectPath(kRequestPinCodePath)) {
       // Request a Pincode.
@@ -1501,7 +1500,7 @@
           base::BindOnce(&FakeBluetoothDeviceClient::FailSimulatedPairing,
                          base::Unretained(this), object_path,
                          std::move(error_callback)),
-          base::TimeDelta::FromMilliseconds(simulation_interval_ms_));
+          base::Milliseconds(simulation_interval_ms_));
 
     } else if (object_path == dbus::ObjectPath(kJustWorksPath)) {
       if (incoming_request) {
@@ -1519,8 +1518,8 @@
             base::BindOnce(&FakeBluetoothDeviceClient::CompleteSimulatedPairing,
                            base::Unretained(this), object_path,
                            std::move(callback), std::move(error_callback)),
-            base::TimeDelta::FromMilliseconds(
-                kSimulateNormalPairTimeMultiplier * simulation_interval_ms_));
+            base::Milliseconds(kSimulateNormalPairTimeMultiplier *
+                               simulation_interval_ms_));
       }
 
     } else {
@@ -1711,15 +1710,15 @@
           base::BindOnce(&FakeBluetoothDeviceClient::CompleteSimulatedPairing,
                          base::Unretained(this), object_path,
                          std::move(callback), std::move(error_callback)),
-          base::TimeDelta::FromMilliseconds(kSimulateNormalPairTimeMultiplier *
-                                            simulation_interval_ms_));
+          base::Milliseconds(kSimulateNormalPairTimeMultiplier *
+                             simulation_interval_ms_));
     } else {
       base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
           FROM_HERE,
           base::BindOnce(&FakeBluetoothDeviceClient::RejectSimulatedPairing,
                          base::Unretained(this), object_path,
                          std::move(error_callback)),
-          base::TimeDelta::FromMilliseconds(simulation_interval_ms_));
+          base::Milliseconds(simulation_interval_ms_));
     }
 
   } else if (status == BluetoothAgentServiceProvider::Delegate::CANCELLED) {
@@ -1728,7 +1727,7 @@
         base::BindOnce(&FakeBluetoothDeviceClient::CancelSimulatedPairing,
                        base::Unretained(this), object_path,
                        std::move(error_callback)),
-        base::TimeDelta::FromMilliseconds(simulation_interval_ms_));
+        base::Milliseconds(simulation_interval_ms_));
 
   } else if (status == BluetoothAgentServiceProvider::Delegate::REJECTED) {
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
@@ -1736,7 +1735,7 @@
         base::BindOnce(&FakeBluetoothDeviceClient::RejectSimulatedPairing,
                        base::Unretained(this), object_path,
                        std::move(error_callback)),
-        base::TimeDelta::FromMilliseconds(simulation_interval_ms_));
+        base::Milliseconds(simulation_interval_ms_));
   }
 }
 
@@ -1764,15 +1763,15 @@
           base::BindOnce(&FakeBluetoothDeviceClient::CompleteSimulatedPairing,
                          base::Unretained(this), object_path,
                          std::move(callback), std::move(error_callback)),
-          base::TimeDelta::FromMilliseconds(kSimulateNormalPairTimeMultiplier *
-                                            simulation_interval_ms_));
+          base::Milliseconds(kSimulateNormalPairTimeMultiplier *
+                             simulation_interval_ms_));
     } else {
       base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
           FROM_HERE,
           base::BindOnce(&FakeBluetoothDeviceClient::RejectSimulatedPairing,
                          base::Unretained(this), object_path,
                          std::move(error_callback)),
-          base::TimeDelta::FromMilliseconds(simulation_interval_ms_));
+          base::Milliseconds(simulation_interval_ms_));
     }
 
   } else if (status == BluetoothAgentServiceProvider::Delegate::CANCELLED) {
@@ -1781,7 +1780,7 @@
         base::BindOnce(&FakeBluetoothDeviceClient::CancelSimulatedPairing,
                        base::Unretained(this), object_path,
                        std::move(error_callback)),
-        base::TimeDelta::FromMilliseconds(simulation_interval_ms_));
+        base::Milliseconds(simulation_interval_ms_));
 
   } else if (status == BluetoothAgentServiceProvider::Delegate::REJECTED) {
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
@@ -1789,7 +1788,7 @@
         base::BindOnce(&FakeBluetoothDeviceClient::RejectSimulatedPairing,
                        base::Unretained(this), object_path,
                        std::move(error_callback)),
-        base::TimeDelta::FromMilliseconds(simulation_interval_ms_));
+        base::Milliseconds(simulation_interval_ms_));
   }
 }
 
@@ -1806,8 +1805,8 @@
         base::BindOnce(&FakeBluetoothDeviceClient::CompleteSimulatedPairing,
                        base::Unretained(this), object_path, std::move(callback),
                        std::move(error_callback)),
-        base::TimeDelta::FromMilliseconds(kSimulateNormalPairTimeMultiplier *
-                                          simulation_interval_ms_));
+        base::Milliseconds(kSimulateNormalPairTimeMultiplier *
+                           simulation_interval_ms_));
 
   } else if (status == BluetoothAgentServiceProvider::Delegate::CANCELLED) {
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
@@ -1815,7 +1814,7 @@
         base::BindOnce(&FakeBluetoothDeviceClient::CancelSimulatedPairing,
                        base::Unretained(this), object_path,
                        std::move(error_callback)),
-        base::TimeDelta::FromMilliseconds(simulation_interval_ms_));
+        base::Milliseconds(simulation_interval_ms_));
 
   } else if (status == BluetoothAgentServiceProvider::Delegate::REJECTED) {
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
@@ -1823,7 +1822,7 @@
         base::BindOnce(&FakeBluetoothDeviceClient::RejectSimulatedPairing,
                        base::Unretained(this), object_path,
                        std::move(error_callback)),
-        base::TimeDelta::FromMilliseconds(simulation_interval_ms_));
+        base::Milliseconds(simulation_interval_ms_));
   }
 }
 
@@ -1853,7 +1852,7 @@
         base::BindOnce(&FakeBluetoothDeviceClient::SimulateKeypress,
                        base::Unretained(this), entered + 1, object_path,
                        std::move(callback), std::move(error_callback)),
-        base::TimeDelta::FromMilliseconds(simulation_interval_ms_));
+        base::Milliseconds(simulation_interval_ms_));
 
   } else {
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
@@ -1861,7 +1860,7 @@
         base::BindOnce(&FakeBluetoothDeviceClient::CompleteSimulatedPairing,
                        base::Unretained(this), object_path, std::move(callback),
                        std::move(error_callback)),
-        base::TimeDelta::FromMilliseconds(simulation_interval_ms_));
+        base::Milliseconds(simulation_interval_ms_));
   }
 }
 
diff --git a/device/bluetooth/dbus/fake_bluetooth_gatt_characteristic_client.cc b/device/bluetooth/dbus/fake_bluetooth_gatt_characteristic_client.cc
index 42c9541..42936356 100644
--- a/device/bluetooth/dbus/fake_bluetooth_gatt_characteristic_client.cc
+++ b/device/bluetooth/dbus/fake_bluetooth_gatt_characteristic_client.cc
@@ -359,7 +359,7 @@
   // Respond asynchronously.
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE, std::move(callback),
-      base::TimeDelta::FromMilliseconds(kStartNotifyResponseIntervalMs));
+      base::Milliseconds(kStartNotifyResponseIntervalMs));
 }
 
 void FakeBluetoothGattCharacteristicClient::StopNotify(
@@ -563,8 +563,7 @@
       base::BindOnce(&FakeBluetoothGattCharacteristicClient::
                          ScheduleHeartRateMeasurementValueChange,
                      weak_ptr_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(
-          kHeartRateMeasurementNotificationIntervalMs));
+      base::Milliseconds(kHeartRateMeasurementNotificationIntervalMs));
 }
 
 void FakeBluetoothGattCharacteristicClient::DelayedReadValueCallback(
diff --git a/device/bluetooth/test/mock_bluetooth_gatt_notify_session.cc b/device/bluetooth/test/mock_bluetooth_gatt_notify_session.cc
index 1c4fe85..736610f 100644
--- a/device/bluetooth/test/mock_bluetooth_gatt_notify_session.cc
+++ b/device/bluetooth/test/mock_bluetooth_gatt_notify_session.cc
@@ -24,7 +24,7 @@
     MockBluetoothGattCharacteristic* characteristic,
     const std::vector<uint8_t>& value) {
   test_notifications_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(10),
+      FROM_HERE, base::Milliseconds(10),
       base::BindRepeating(&MockBluetoothGattNotifySession::DoNotify,
                           // base::Timer guarantees it won't call back after its
                           // destructor starts.
diff --git a/device/fido/cable/fido_cable_discovery.cc b/device/fido/cable/fido_cable_discovery.cc
index 32cc44d8..f63c7d7 100644
--- a/device/fido/cable/fido_cable_discovery.cc
+++ b/device/fido/cable/fido_cable_discovery.cc
@@ -345,7 +345,7 @@
       FROM_HERE,
       base::BindOnce(&FidoCableDiscovery::StartCableDiscovery,
                      weak_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(500));
+      base::Milliseconds(500));
 #else
   StartCableDiscovery();
 #endif  // defined(OS_WIN)
@@ -405,7 +405,7 @@
       FROM_HERE,
       base::BindOnce(&FidoCableDiscovery::StartAdvertisement,
                      weak_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(500));
+      base::Milliseconds(500));
 }
 
 void FidoCableDiscovery::OnStartDiscoverySessionError() {
diff --git a/device/fido/fido_constants.cc b/device/fido/fido_constants.cc
index db46dbd..d147702 100644
--- a/device/fido/fido_constants.cc
+++ b/device/fido/fido_constants.cc
@@ -40,8 +40,8 @@
 const char kAlwaysUvKey[] = "alwaysUv";
 const char kMakeCredUvNotRqdKey[] = "makeCredUvNotRqd";
 
-const base::TimeDelta kDeviceTimeout = base::TimeDelta::FromSeconds(20);
-const base::TimeDelta kU2fRetryDelay = base::TimeDelta::FromMilliseconds(200);
+const base::TimeDelta kDeviceTimeout = base::Seconds(20);
+const base::TimeDelta kU2fRetryDelay = base::Milliseconds(200);
 
 const char kFormatKey[] = "fmt";
 const char kAttestationStatementKey[] = "attStmt";
@@ -76,7 +76,6 @@
 const char kExtensionLargeBlobKey[] = "largeBlobKey";
 const char kExtensionCredBlob[] = "credBlob";
 
-const base::TimeDelta kBleDevicePairingModeWaitingInterval =
-    base::TimeDelta::FromSeconds(2);
+const base::TimeDelta kBleDevicePairingModeWaitingInterval = base::Seconds(2);
 
 }  // namespace device
diff --git a/device/fido/fido_request_handler_base.h b/device/fido/fido_request_handler_base.h
index fa1533d..3055831 100644
--- a/device/fido/fido_request_handler_base.h
+++ b/device/fido/fido_request_handler_base.h
@@ -252,7 +252,7 @@
   // Authenticators that return a response in less than this time are likely to
   // have done so without interaction from the user.
   static constexpr base::TimeDelta kMinExpectedAuthenticatorResponseTime =
-      base::TimeDelta::FromMilliseconds(300);
+      base::Milliseconds(300);
 
   // Subclasses implement this method to dispatch their request onto the given
   // FidoAuthenticator. The FidoAuthenticator is owned by this
diff --git a/device/fido/fido_request_handler_unittest.cc b/device/fido/fido_request_handler_unittest.cc
index 1f26312..98537c6 100644
--- a/device/fido/fido_request_handler_unittest.cc
+++ b/device/fido/fido_request_handler_unittest.cc
@@ -414,7 +414,7 @@
   EXPECT_CALL(*device0, GetId()).WillRepeatedly(testing::Return("device0"));
   device0->ExpectRequestAndRespondWith(std::vector<uint8_t>(),
                                        CreateFakeSuccessDeviceResponse(),
-                                       base::TimeDelta::FromMicroseconds(1));
+                                       base::Microseconds(1));
 
   // Represents a device that returns a success response after a longer time
   // delay.
@@ -425,7 +425,7 @@
   EXPECT_CALL(*device1, GetId()).WillRepeatedly(testing::Return("device1"));
   device1->ExpectRequestAndRespondWith(std::vector<uint8_t>(),
                                        CreateFakeSuccessDeviceResponse(),
-                                       base::TimeDelta::FromMicroseconds(10));
+                                       base::Microseconds(10));
   // Cancel command is invoked after receiving response from |device0|.
   EXPECT_CALL(*device1, Cancel(_));
 
@@ -470,7 +470,7 @@
       .WillRepeatedly(testing::Return(std::string()));
   device1->ExpectRequestAndRespondWith(std::vector<uint8_t>(),
                                        CreateFakeUserPresenceVerifiedError(),
-                                       base::TimeDelta::FromMicroseconds(1));
+                                       base::Microseconds(1));
 
   // Represents a device that returns an UP verified failure response after a
   // big time delay.
@@ -483,7 +483,7 @@
       .WillRepeatedly(testing::Return(std::string()));
   device2->ExpectRequestAndRespondWith(std::vector<uint8_t>(),
                                        CreateFakeDeviceProcesssingError(),
-                                       base::TimeDelta::FromMicroseconds(10));
+                                       base::Microseconds(10));
   EXPECT_CALL(*device2, Cancel(_));
 
   discovery()->AddDevice(std::move(device0));
@@ -508,7 +508,7 @@
   device0->SetDeviceTransport(FidoTransportProtocol::kInternal);
   device0->ExpectRequestAndRespondWith(std::vector<uint8_t>(),
                                        CreateFakeOperationDeniedError(),
-                                       base::TimeDelta::FromMicroseconds(10));
+                                       base::Microseconds(10));
 
   ForgeNextHidDiscovery();
   auto* platform_discovery =
diff --git a/device/fido/get_assertion_handler_unittest.cc b/device/fido/get_assertion_handler_unittest.cc
index e9f87d5..f214a51 100644
--- a/device/fido/get_assertion_handler_unittest.cc
+++ b/device/fido/get_assertion_handler_unittest.cc
@@ -617,8 +617,7 @@
   platform_device->SetDeviceTransport(FidoTransportProtocol::kInternal);
   platform_device->ExpectCtap2CommandAndRespondWithError(
       CtapRequestCommand::kAuthenticatorGetAssertion,
-      CtapDeviceResponseCode::kCtap2ErrOperationDenied,
-      base::TimeDelta::FromMicroseconds(10));
+      CtapDeviceResponseCode::kCtap2ErrOperationDenied, base::Microseconds(10));
   platform_discovery()->WaitForCallToStartAndSimulateSuccess();
   platform_discovery()->AddDevice(std::move(platform_device));
 
diff --git a/device/fido/hid/fido_hid_device.cc b/device/fido/hid/fido_hid_device.cc
index 2189c45..5f9ea0be 100644
--- a/device/fido/hid/fido_hid_device.cc
+++ b/device/fido/hid/fido_hid_device.cc
@@ -492,7 +492,7 @@
             FROM_HERE,
             base::BindOnce(&FidoHidDevice::RetryAfterChannelBusy,
                            weak_factory_.GetWeakPtr()),
-            base::TimeDelta::FromMilliseconds(100));
+            base::Milliseconds(100));
         break;
       default:
         FIDO_LOG(DEBUG) << "Invalid CTAPHID_ERROR "
diff --git a/device/fido/hid/fido_hid_device_unittest.cc b/device/fido/hid/fido_hid_device_unittest.cc
index 866a1db..5eb9c9c1 100644
--- a/device/fido/hid/fido_hid_device_unittest.cc
+++ b/device/fido/hid/fido_hid_device_unittest.cc
@@ -390,8 +390,7 @@
       // Repeated Read() invocation due to keep alive message. Sends a dummy
       // response that corresponds to U2F version response.
       .WillOnce(Invoke([&](device::mojom::HidConnection::ReadCallback* cb) {
-        auto almost_time_out =
-            kDeviceTimeout - base::TimeDelta::FromMicroseconds(1);
+        auto almost_time_out = kDeviceTimeout - base::Microseconds(1);
         task_environment_.FastForwardBy(almost_time_out);
 
         std::move(*cb).Run(true, 0,
@@ -603,7 +602,7 @@
       .InSequence(sequence)
       // Device response with a significant delay.
       .WillOnce(Invoke([&](device::mojom::HidConnection::ReadCallback* cb) {
-        auto delay = base::TimeDelta::FromSeconds(2);
+        auto delay = base::Seconds(2);
         base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
             FROM_HERE,
             base::BindOnce(std::move(*cb), true, 0,
@@ -626,7 +625,7 @@
   device->set_supported_protocol(ProtocolVersion::kCtap2);
   TestDeviceCallbackReceiver cb;
   auto token = device->DeviceTransact(GetMockDeviceRequest(), cb.callback());
-  auto delay_before_cancel = base::TimeDelta::FromSeconds(1);
+  auto delay_before_cancel = base::Seconds(1);
   auto cancel_callback = base::BindOnce(
       &FidoHidDevice::Cancel, device->weak_factory_.GetWeakPtr(), token);
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
@@ -841,7 +840,7 @@
       .InSequence(sequence)
       // Device response with a significant delay.
       .WillOnce(Invoke([&](device::mojom::HidConnection::ReadCallback* cb) {
-        auto delay = base::TimeDelta::FromSeconds(2);
+        auto delay = base::Seconds(2);
         base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
             FROM_HERE,
             base::BindOnce(std::move(*cb), true, 0,
@@ -881,7 +880,7 @@
       .InSequence(sequence)
       // Device response with a significant delay.
       .WillOnce(Invoke([&](device::mojom::HidConnection::ReadCallback* cb) {
-        auto delay = base::TimeDelta::FromSeconds(2);
+        auto delay = base::Seconds(2);
         base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
             FROM_HERE,
             base::BindOnce(std::move(*cb), true, 0,
diff --git a/device/fido/mac/util_unittest.cc b/device/fido/mac/util_unittest.cc
index 9837d20..34329e0 100644
--- a/device/fido/mac/util_unittest.cc
+++ b/device/fido/mac/util_unittest.cc
@@ -43,10 +43,10 @@
       MakeAuthenticatorData(rp_id, std::move(opt_attested_cred_data));
   EXPECT_THAT(auth_data.counter(), ElementsAre(0x00, 0x00, 0x00, 0x00));
   // Time counter increments in seconds.
-  g_fake_now += base::TimeDelta::FromSeconds(1);
+  g_fake_now += base::Seconds(1);
   auth_data = MakeAuthenticatorData(rp_id, absl::nullopt);
   EXPECT_THAT(auth_data.counter(), ElementsAre(0x00, 0x00, 0x00, 0x01));
-  g_fake_now += base::TimeDelta::FromSeconds(1024);
+  g_fake_now += base::Seconds(1024);
   auth_data = MakeAuthenticatorData(rp_id, absl::nullopt);
   EXPECT_THAT(auth_data.counter(), ElementsAre(0x00, 0x00, 0x04, 0x01));
   ASSERT_TRUE(base::Time::FromUTCExploded({2106, 1, 0, 1}, &g_fake_now));
diff --git a/device/fido/virtual_fido_device.cc b/device/fido/virtual_fido_device.cc
index 3c525e5..de5545d 100644
--- a/device/fido/virtual_fido_device.cc
+++ b/device/fido/virtual_fido_device.cc
@@ -564,8 +564,7 @@
 
   // https://w3c.github.io/webauthn/#sctn-packed-attestation-cert-requirements
   // Make the certificate expire about 20 years from now.
-  base::Time expiry_date =
-      base::Time::Now() + base::TimeDelta::FromDays(365 * 20);
+  base::Time expiry_date = base::Time::Now() + base::Days(365 * 20);
   std::string attestation_cert;
   if (!net::x509_util::CreateSelfSignedCert(
           attestation_private_key->key(), net::x509_util::DIGEST_SHA256,
diff --git a/device/gamepad/abstract_haptic_gamepad.cc b/device/gamepad/abstract_haptic_gamepad.cc
index caeefed..fc324f8c 100644
--- a/device/gamepad/abstract_haptic_gamepad.cc
+++ b/device/gamepad/abstract_haptic_gamepad.cc
@@ -122,7 +122,7 @@
       FROM_HERE,
       base::BindOnce(&AbstractHapticGamepad::StartVibration, GetWeakPtr(),
                      sequence_id, duration, strong_magnitude, weak_magnitude),
-      base::TimeDelta::FromMillisecondsD(start_delay));
+      base::Milliseconds(start_delay));
 }
 
 void AbstractHapticGamepad::StartVibration(int sequence_id,
@@ -144,13 +144,13 @@
         base::BindOnce(&AbstractHapticGamepad::StartVibration, GetWeakPtr(),
                        sequence_id, remaining_duration, strong_magnitude,
                        weak_magnitude),
-        base::TimeDelta::FromMillisecondsD(max_duration));
+        base::Milliseconds(max_duration));
   } else {
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
         FROM_HERE,
         base::BindOnce(&AbstractHapticGamepad::FinishEffect, GetWeakPtr(),
                        sequence_id),
-        base::TimeDelta::FromMillisecondsD(duration));
+        base::Milliseconds(duration));
   }
 }
 
diff --git a/device/gamepad/abstract_haptic_gamepad_unittest.cc b/device/gamepad/abstract_haptic_gamepad_unittest.cc
index b86cf38..092cabc 100644
--- a/device/gamepad/abstract_haptic_gamepad_unittest.cc
+++ b/device/gamepad/abstract_haptic_gamepad_unittest.cc
@@ -30,7 +30,7 @@
 constexpr double kWeakMagnitude = 0.5;    // 50% intensity
 
 constexpr base::TimeDelta kPendingTaskDuration =
-    base::TimeDelta::FromMillisecondsD(kDurationMillis);
+    base::Milliseconds(kDurationMillis);
 
 // An implementation of AbstractHapticGamepad that records how many times its
 // SetVibration and SetZeroVibration methods have been called.
diff --git a/device/gamepad/dualshock4_controller_unittest.cc b/device/gamepad/dualshock4_controller_unittest.cc
index bf64c33..4be5ae1 100644
--- a/device/gamepad/dualshock4_controller_unittest.cc
+++ b/device/gamepad/dualshock4_controller_unittest.cc
@@ -89,7 +89,7 @@
 constexpr double kWeakMagnitude = 0.5;    // 50% intensity
 
 constexpr base::TimeDelta kPendingTaskDuration =
-    base::TimeDelta::FromMillisecondsD(kDurationMillis);
+    base::Milliseconds(kDurationMillis);
 
 class FakeHidWriter : public HidWriter {
  public:
diff --git a/device/gamepad/gamepad_provider.cc b/device/gamepad/gamepad_provider.cc
index 214836b7..11756e80f 100644
--- a/device/gamepad/gamepad_provider.cc
+++ b/device/gamepad/gamepad_provider.cc
@@ -208,8 +208,7 @@
 }
 
 void GamepadProvider::Initialize(std::unique_ptr<GamepadDataFetcher> fetcher) {
-  sampling_interval_delta_ =
-      base::TimeDelta::FromMilliseconds(kPollingIntervalMilliseconds);
+  sampling_interval_delta_ = base::Milliseconds(kPollingIntervalMilliseconds);
 
   base::SystemMonitor* monitor = base::SystemMonitor::Get();
   if (monitor)
diff --git a/device/gamepad/gamepad_provider_unittest.cc b/device/gamepad/gamepad_provider_unittest.cc
index 74d0e5b..d8d216cd 100644
--- a/device/gamepad/gamepad_provider_unittest.cc
+++ b/device/gamepad/gamepad_provider_unittest.cc
@@ -65,7 +65,7 @@
     // to ensure no changes come in.
     if (num_changes == 0) {
       num_changes_left_ = 0;
-      base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(20));
+      base::PlatformThread::Sleep(base::Milliseconds(20));
       base::RunLoop().RunUntilIdle();
       return;
     }
@@ -107,7 +107,7 @@
     const base::subtle::Atomic32 initial_version = buffer->seqlock.ReadBegin();
     base::subtle::Atomic32 current_version;
     do {
-      base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(10));
+      base::PlatformThread::Sleep(base::Milliseconds(10));
       current_version = buffer->seqlock.ReadBegin();
     } while (current_version % 2 || current_version == initial_version);
   }
diff --git a/device/gamepad/hid_haptic_gamepad_unittest.cc b/device/gamepad/hid_haptic_gamepad_unittest.cc
index cd58341..6867a8b5 100644
--- a/device/gamepad/hid_haptic_gamepad_unittest.cc
+++ b/device/gamepad/hid_haptic_gamepad_unittest.cc
@@ -50,7 +50,7 @@
 constexpr double kZeroMagnitude = 0.0;
 
 constexpr base::TimeDelta kPendingTaskDuration =
-    base::TimeDelta::FromMillisecondsD(kDurationMillis);
+    base::Milliseconds(kDurationMillis);
 
 class FakeHidWriter : public HidWriter {
  public:
diff --git a/device/gamepad/nintendo_controller.cc b/device/gamepad/nintendo_controller.cc
index 778d89a..c089e69 100644
--- a/device/gamepad/nintendo_controller.cc
+++ b/device/gamepad/nintendo_controller.cc
@@ -81,8 +81,7 @@
 // The timeout duration was chosen through experimentation. A shorter duration
 // (~1 second) works for Pro controllers, but Joy-Cons sometimes fail to
 // initialize correctly.
-const base::TimeDelta kTimeoutDuration =
-    base::TimeDelta::FromMilliseconds(3000);
+const base::TimeDelta kTimeoutDuration = base::Milliseconds(3000);
 const size_t kMaxRetryCount = 3;
 
 const size_t kMaxVibrationEffectDurationMillis = 100;
diff --git a/device/gamepad/xbox_hid_controller_unittest.cc b/device/gamepad/xbox_hid_controller_unittest.cc
index c3362c0..d3704971 100644
--- a/device/gamepad/xbox_hid_controller_unittest.cc
+++ b/device/gamepad/xbox_hid_controller_unittest.cc
@@ -50,7 +50,7 @@
 constexpr double kWeakMagnitude = 0.5;    // 50% intensity
 
 constexpr base::TimeDelta kPendingTaskDuration =
-    base::TimeDelta::FromMillisecondsD(kDurationMillis);
+    base::Milliseconds(kDurationMillis);
 
 class FakeHidWriter : public HidWriter {
  public:
diff --git a/device/vr/android/arcore/arcore_gl.cc b/device/vr/android/arcore/arcore_gl.cc
index 8120b76..27980018 100644
--- a/device/vr/android/arcore/arcore_gl.cc
+++ b/device/vr/android/arcore/arcore_gl.cc
@@ -854,10 +854,8 @@
   DCHECK_GE(range.max, range.min);
 
   // The min frame time corresponds to the max frame rate and vice versa.
-  base::TimeDelta min_frametime =
-      base::TimeDelta::FromSecondsD(1.0f / range.max);
-  base::TimeDelta max_frametime =
-      base::TimeDelta::FromSecondsD(1.0f / range.min);
+  base::TimeDelta min_frametime = base::Seconds(1.0f / range.max);
+  base::TimeDelta max_frametime = base::Seconds(1.0f / range.min);
 
   base::TimeDelta frametime =
       average_camera_frametime_.GetAverageOrDefault(min_frametime);
diff --git a/device/vr/android/arcore/arcore_impl.cc b/device/vr/android/arcore/arcore_impl.cc
index 54a5609..3dc51e6 100644
--- a/device/vr/android/arcore/arcore_impl.cc
+++ b/device/vr/android/arcore/arcore_impl.cc
@@ -39,7 +39,7 @@
 // Anchor creation requests that are older than 3 seconds are considered
 // outdated and should be failed.
 constexpr base::TimeDelta kOutdatedAnchorCreationRequestThreshold =
-    base::TimeDelta::FromSeconds(3);
+    base::Seconds(3);
 
 // Helper, returns new VRPosePtr with position and orientation set to match the
 // position and orientation of passed in |pose|.
@@ -1054,7 +1054,7 @@
   int64_t out_timestamp_ns;
   ArFrame_getTimestamp(arcore_session_.get(), arcore_frame_.get(),
                        &out_timestamp_ns);
-  return base::TimeDelta::FromNanoseconds(out_timestamp_ns);
+  return base::Nanoseconds(out_timestamp_ns);
 }
 
 mojom::XRPlaneDetectionDataPtr ArCoreImpl::GetDetectedPlanesData() {
@@ -1856,7 +1856,7 @@
 
   int64_t timestamp_ns;
   ArImage_getTimestamp(arcore_session_.get(), ar_image.get(), &timestamp_ns);
-  base::TimeDelta time_delta = base::TimeDelta::FromNanoseconds(timestamp_ns);
+  base::TimeDelta time_delta = base::Nanoseconds(timestamp_ns);
   DVLOG(3) << __func__ << ": depth image time_delta=" << time_delta;
 
   // The image returned from ArFrame_acquireDepthImage() is documented to have
diff --git a/device/vr/openxr/openxr_api_wrapper.cc b/device/vr/openxr/openxr_api_wrapper.cc
index 48a15f3..f9b6ab4 100644
--- a/device/vr/openxr/openxr_api_wrapper.cc
+++ b/device/vr/openxr/openxr_api_wrapper.cc
@@ -42,8 +42,7 @@
 // occasionally polled, a timer loop run every kTimeBetweenPollingEvents to poll
 // events if significant time has elapsed since the last time events were
 // polled.
-constexpr base::TimeDelta kTimeBetweenPollingEvents =
-    base::TimeDelta::FromSecondsD(1);
+constexpr base::TimeDelta kTimeBetweenPollingEvents = base::Seconds(1);
 
 }  // namespace
 
diff --git a/device/vr/openxr/openxr_render_loop.cc b/device/vr/openxr/openxr_render_loop.cc
index e45127c..4bf7e74 100644
--- a/device/vr/openxr/openxr_render_loop.cc
+++ b/device/vr/openxr/openxr_render_loop.cc
@@ -64,7 +64,7 @@
   }
 
   frame_data->time_delta =
-      base::TimeDelta::FromNanoseconds(openxr_->GetPredictedDisplayTime());
+      base::Nanoseconds(openxr_->GetPredictedDisplayTime());
   frame_data->views = openxr_->GetViews();
   frame_data->input_state = openxr_->GetInputState(
       IsFeatureEnabled(device::mojom::XRSessionFeature::HAND_INPUT));
diff --git a/device/vr/util/fps_meter_unittest.cc b/device/vr/util/fps_meter_unittest.cc
index e1c52efb..61195024 100644
--- a/device/vr/util/fps_meter_unittest.cc
+++ b/device/vr/util/fps_meter_unittest.cc
@@ -14,7 +14,7 @@
 static constexpr double kTolerance = 0.01;
 
 base::TimeTicks MicrosecondsToTicks(uint64_t us) {
-  return base::TimeDelta::FromMicroseconds(us) + base::TimeTicks();
+  return base::Microseconds(us) + base::TimeTicks();
 }
 
 }  // namespace
@@ -39,7 +39,7 @@
   EXPECT_FLOAT_EQ(0.0, meter.GetFPS());
 
   base::TimeTicks now = MicrosecondsToTicks(1);
-  base::TimeDelta frame_time = base::TimeDelta::FromMicroseconds(16666);
+  base::TimeDelta frame_time = base::Microseconds(16666);
 
   meter.AddFrame(now);
   EXPECT_FALSE(meter.CanComputeFPS());
@@ -59,7 +59,7 @@
   EXPECT_FLOAT_EQ(0.0, meter.GetFPS());
 
   base::TimeTicks now = MicrosecondsToTicks(1);
-  base::TimeDelta frame_time = base::TimeDelta::FromSecondsD(1.0 / 90.0);
+  base::TimeDelta frame_time = base::Seconds(1.0 / 90.0);
 
   meter.AddFrame(now);
   EXPECT_FALSE(meter.CanComputeFPS());
diff --git a/device/vr/util/sliding_average.cc b/device/vr/util/sliding_average.cc
index 43346d2..b8c3438 100644
--- a/device/vr/util/sliding_average.cc
+++ b/device/vr/util/sliding_average.cc
@@ -31,7 +31,7 @@
 
 base::TimeDelta SlidingTimeDeltaAverage::GetAverageOrDefault(
     base::TimeDelta default_value) const {
-  return base::TimeDelta::FromMicroseconds(
+  return base::Microseconds(
       sample_microseconds_.GetAverageOrDefault(default_value.InMicroseconds()));
 }
 
diff --git a/device/vr/util/sliding_average_unittest.cc b/device/vr/util/sliding_average_unittest.cc
index 4fd9aa0..3bb89d4 100644
--- a/device/vr/util/sliding_average_unittest.cc
+++ b/device/vr/util/sliding_average_unittest.cc
@@ -44,17 +44,15 @@
 TEST(SlidingTimeDeltaAverage, Basics) {
   SlidingTimeDeltaAverage meter(5);
 
-  EXPECT_EQ(base::TimeDelta::FromSeconds(42),
-            meter.GetAverageOrDefault(base::TimeDelta::FromSeconds(42)));
+  EXPECT_EQ(base::Seconds(42), meter.GetAverageOrDefault(base::Seconds(42)));
   EXPECT_EQ(base::TimeDelta(), meter.GetAverage());
 
-  meter.AddSample(base::TimeDelta::FromSeconds(100));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(100),
-            meter.GetAverageOrDefault(base::TimeDelta::FromSeconds(42)));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(100), meter.GetAverage());
+  meter.AddSample(base::Seconds(100));
+  EXPECT_EQ(base::Seconds(100), meter.GetAverageOrDefault(base::Seconds(42)));
+  EXPECT_EQ(base::Seconds(100), meter.GetAverage());
 
-  meter.AddSample(base::TimeDelta::FromMilliseconds(200000));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(150), meter.GetAverage());
+  meter.AddSample(base::Milliseconds(200000));
+  EXPECT_EQ(base::Seconds(150), meter.GetAverage());
 }
 
 }  // namespace device
diff --git a/docs/threading_and_tasks.md b/docs/threading_and_tasks.md
index a80fe85..d40baca 100644
--- a/docs/threading_and_tasks.md
+++ b/docs/threading_and_tasks.md
@@ -546,13 +546,13 @@
 ```cpp
 base::ThreadPool::PostDelayedTask(
   FROM_HERE, {base::TaskPriority::BEST_EFFORT}, base::BindOnce(&Task),
-  base::TimeDelta::FromHours(1));
+  base::Hours(1));
 
 scoped_refptr<base::SequencedTaskRunner> task_runner =
     base::ThreadPool::CreateSequencedTaskRunner(
         {base::TaskPriority::BEST_EFFORT});
 task_runner->PostDelayedTask(
-    FROM_HERE, base::BindOnce(&Task), base::TimeDelta::FromHours(1));
+    FROM_HERE, base::BindOnce(&Task), base::Hours(1));
 ```
 
 *** note
diff --git a/docs/threading_and_tasks_testing.md b/docs/threading_and_tasks_testing.md
index d8a3603a..ab084fa 100644
--- a/docs/threading_and_tasks_testing.md
+++ b/docs/threading_and_tasks_testing.md
@@ -214,7 +214,7 @@
 class FooStorage {
  public:
   static constexpr base::TimeDelta::kFlushInterval =
-      base::TimeDelta::FromSeconds(30);
+      base::Seconds(30);
 
   // Sets |key| to |value|. Flushed to disk on the next flush interval.
   void Set(base::StringPiece key, base::StringPiece value);
diff --git a/docs/ui/animation_builder/animation_builder.md b/docs/ui/animation_builder/animation_builder.md
index 8321b84..49158fc 100644
--- a/docs/ui/animation_builder/animation_builder.md
+++ b/docs/ui/animation_builder/animation_builder.md
@@ -28,24 +28,24 @@
   secondary_sequence->set_is_repeating(true);
 
   primary_sequence->AddElement(ui::LayerAnimationElement::CreatePauseElement(
-      ui::LayerAnimationElement::OPACITY, base::TimeDelta::FromSeconds(2)));
+      ui::LayerAnimationElement::OPACITY, base::Seconds(2)));
   primary_sequence->AddElement(ui::LayerAnimationElement::CreateOpacityElement(
-      0.0f, base::TimeDelta::FromSeconds(1)));
+      0.0f, base::Seconds(1)));
   primary_sequence->AddElement(ui::LayerAnimationElement::CreatePauseElement(
-      ui::LayerAnimationElement::OPACITY, base::TimeDelta::FromSeconds(2)));
+      ui::LayerAnimationElement::OPACITY, base::Seconds(2)));
   primary_sequence->AddElement(ui::LayerAnimationElement::CreateOpacityElement(
-      1.0f, base::TimeDelta::FromSeconds(1)));
+      1.0f, base::Seconds(1)));
 
   secondary_sequence->AddElement(ui::LayerAnimationElement::CreatePauseElement(
-      ui::LayerAnimationElement::OPACITY, base::TimeDelta::FromSeconds(2)));
+      ui::LayerAnimationElement::OPACITY, base::Seconds(2)));
   secondary_sequence->AddElement(
       ui::LayerAnimationElement::CreateOpacityElement(
-          1.0f, base::TimeDelta::FromSeconds(1)));
+          1.0f, base::Seconds(1)));
   secondary_sequence->AddElement(ui::LayerAnimationElement::CreatePauseElement(
-      ui::LayerAnimationElement::OPACITY, base::TimeDelta::FromSeconds(2)));
+      ui::LayerAnimationElement::OPACITY, base::Seconds(2)));
   secondary_sequence->AddElement(
       ui::LayerAnimationElement::CreateOpacityElement(
-          0.0f, base::TimeDelta::FromSeconds(1)));
+          0.0f, base::Seconds(1)));
 
   primary_view_->layer()->GetAnimator()->StartAnimation(
       primary_sequence.release());
@@ -60,12 +60,12 @@
 ``` cpp
   AnimationBuilder()
       .Repeatedly()
-      .Offset(base::TimeDelta::FromSeconds(2))
-      .SetDuration(base::TimeDelta::FromSeconds(1))
+      .Offset(base::Seconds(2))
+      .SetDuration(base::Seconds(1))
       .SetOpacity(primary_view_, 0.0f)
       .SetOpacity(secondary_view_, 1.0f)
-      .Offset(base::TimeDelta::FromSeconds(2))
-      .SetDuration(base::TimeDelta::FromSeconds(1))
+      .Offset(base::Seconds(2))
+      .SetDuration(base::Seconds(1))
       .SetOpacity(primary_view_, 1.0f)
       .SetOpacity(secondary_view_, 0.0f);
 ```
diff --git a/extensions/browser/api/alarms/alarm_manager.cc b/extensions/browser/api/alarms/alarm_manager.cc
index b80d4bea..d379742 100644
--- a/extensions/browser/api/alarms/alarm_manager.cc
+++ b/extensions/browser/api/alarms/alarm_manager.cc
@@ -39,7 +39,7 @@
 
 // The minimum period between polling for alarms to run.
 const base::TimeDelta kDefaultMinPollPeriod() {
-  return base::TimeDelta::FromDays(1);
+  return base::Days(1);
 }
 
 class DefaultAlarmDelegate : public AlarmManager::Delegate {
@@ -64,8 +64,8 @@
 
 // Creates a TimeDelta from a delay as specified in the API.
 base::TimeDelta TimeDeltaFromDelay(double delay_in_minutes) {
-  return base::TimeDelta::FromMicroseconds(delay_in_minutes *
-                                           base::Time::kMicrosecondsPerMinute);
+  return base::Microseconds(delay_in_minutes *
+                            base::Time::kMicrosecondsPerMinute);
 }
 
 AlarmManager::AlarmList AlarmsFromValue(const std::string extension_id,
@@ -84,7 +84,7 @@
         // No else branch. It's okay to ignore the failure since we have
         // minimum granularity.
       }
-      alarm->minimum_granularity = base::TimeDelta::FromSecondsD(
+      alarm->minimum_granularity = base::Seconds(
           (is_unpacked ? alarms_api_constants::kDevDelayMinimum
                        : alarms_api_constants::kReleaseDelayMinimum) *
           kSecondsPerMinute);
@@ -349,8 +349,7 @@
 
 void AlarmManager::SetNextPollTime(const base::Time& time) {
   next_poll_time_ = time;
-  timer_.Start(FROM_HERE,
-               std::max(base::TimeDelta::FromSeconds(0), time - clock_->Now()),
+  timer_.Start(FROM_HERE, std::max(base::Seconds(0), time - clock_->Now()),
                this, &AlarmManager::PollAlarms);
 }
 
diff --git a/extensions/browser/api/alarms/alarms_api.cc b/extensions/browser/api/alarms/alarms_api.cc
index c87c0e9..8e7ba2e 100644
--- a/extensions/browser/api/alarms/alarms_api.cc
+++ b/extensions/browser/api/alarms/alarms_api.cc
@@ -107,10 +107,9 @@
 
   const int kSecondsPerMinute = 60;
   base::TimeDelta granularity =
-      base::TimeDelta::FromSecondsD(
-          (Manifest::IsUnpackedLocation(extension()->location())
-               ? alarms_api_constants::kDevDelayMinimum
-               : alarms_api_constants::kReleaseDelayMinimum)) *
+      base::Seconds((Manifest::IsUnpackedLocation(extension()->location())
+                         ? alarms_api_constants::kDevDelayMinimum
+                         : alarms_api_constants::kReleaseDelayMinimum)) *
       kSecondsPerMinute;
 
   std::unique_ptr<Alarm> alarm(
diff --git a/extensions/browser/api/alarms/alarms_api_unittest.cc b/extensions/browser/api/alarms/alarms_api_unittest.cc
index d57dc8e..3604dc3 100644
--- a/extensions/browser/api/alarms/alarms_api_unittest.cc
+++ b/extensions/browser/api/alarms/alarms_api_unittest.cc
@@ -158,12 +158,12 @@
   EXPECT_THAT(alarm->js_alarm->period_in_minutes,
               testing::Pointee(testing::DoubleEq(0.001)));
 
-  test->test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test->test_clock_.Advance(base::Seconds(1));
   // Now wait for the alarm to fire. Our test delegate will quit the
   // MessageLoop when that happens.
   base::RunLoop().Run();
 
-  test->test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test->test_clock_.Advance(base::Seconds(1));
   // Wait again, and ensure the alarm fires again.
   RunScheduleNextPoll(test->alarm_manager_);
   base::RunLoop().Run();
@@ -416,7 +416,7 @@
 
   // Now wait for the alarms to fire, and ensure the cancelled alarms don't
   // fire.
-  test->test_clock_.Advance(base::TimeDelta::FromMilliseconds(60));
+  test->test_clock_.Advance(base::Milliseconds(60));
   RunScheduleNextPoll(test->alarm_manager_);
   base::RunLoop().Run();
 
@@ -560,9 +560,8 @@
     alarm->js_alarm->period_in_minutes = std::make_unique<double>(3);
     alarm_manager_->AddAlarmImpl(extension()->id(), std::move(alarm));
     base::RunLoop().Run();
-    EXPECT_EQ(
-        base::Time::FromJsTime(3 * 60000) + base::TimeDelta::FromMinutes(3),
-        alarm_manager_->next_poll_time_);
+    EXPECT_EQ(base::Time::FromJsTime(3 * 60000) + base::Minutes(3),
+              alarm_manager_->next_poll_time_);
     RemoveAllAlarms();
   }
   {
@@ -580,9 +579,8 @@
     alarm3->js_alarm->period_in_minutes = std::make_unique<double>(25);
     alarm_manager_->AddAlarmImpl(extension()->id(), std::move(alarm3));
     base::RunLoop().Run();
-    EXPECT_EQ(
-        base::Time::FromJsTime(4 * 60000) + base::TimeDelta::FromMinutes(4),
-        alarm_manager_->next_poll_time_);
+    EXPECT_EQ(base::Time::FromJsTime(4 * 60000) + base::Minutes(4),
+              alarm_manager_->next_poll_time_);
     RemoveAllAlarms();
   }
 }
@@ -604,16 +602,16 @@
   // minute, which makes AddAlarm schedule the next poll after the
   // extension requested.
   alarm_manager_->ScheduleNextPoll();
-  EXPECT_DOUBLE_EQ((alarm_manager_->last_poll_time_ +
-                    base::TimeDelta::FromMinutes(1)).ToJsTime(),
-                   alarm_manager_->next_poll_time_.ToJsTime());
+  EXPECT_DOUBLE_EQ(
+      (alarm_manager_->last_poll_time_ + base::Minutes(1)).ToJsTime(),
+      alarm_manager_->next_poll_time_.ToJsTime());
 }
 
 TEST_F(ExtensionAlarmsSchedulingTest, TimerRunning) {
   EXPECT_FALSE(alarm_manager_->timer_.IsRunning());
   CreateAlarm("[\"a\", {\"delayInMinutes\": 0.001}]");
   EXPECT_TRUE(alarm_manager_->timer_.IsRunning());
-  test_clock_.Advance(base::TimeDelta::FromMilliseconds(60));
+  test_clock_.Advance(base::Milliseconds(60));
   base::RunLoop().Run();
   EXPECT_FALSE(alarm_manager_->timer_.IsRunning());
   CreateAlarm("[\"bb\", {\"delayInMinutes\": 10}]");
@@ -628,18 +626,18 @@
                     .Build());
   test_clock_.SetNow(base::Time::FromJsTime(0));
   CreateAlarm("[\"a\", {\"periodInMinutes\": 2}]");
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
   CreateAlarm("[\"b\", {\"periodInMinutes\": 2}]");
-  test_clock_.Advance(base::TimeDelta::FromMinutes(2));
+  test_clock_.Advance(base::Minutes(2));
 
   alarm_manager_->last_poll_time_ = base::Time::FromJsTime(2 * 60000);
   // In released extensions, we set the granularity to at least 1
   // minute, which makes scheduler set it to 1 minute, rather than
   // 1 second later (when b is supposed to go off).
   alarm_manager_->ScheduleNextPoll();
-  EXPECT_DOUBLE_EQ((alarm_manager_->last_poll_time_ +
-                    base::TimeDelta::FromMinutes(1)).ToJsTime(),
-                   alarm_manager_->next_poll_time_.ToJsTime());
+  EXPECT_DOUBLE_EQ(
+      (alarm_manager_->last_poll_time_ + base::Minutes(1)).ToJsTime(),
+      alarm_manager_->next_poll_time_.ToJsTime());
 }
 
 TEST_F(ExtensionAlarmsSchedulingTest, DifferentMinimumGranularities) {
@@ -663,9 +661,9 @@
 
   // The next poll time should be 12 seconds from now - the time at which the
   // first alarm should go off.
-  EXPECT_DOUBLE_EQ((alarm_manager_->last_poll_time_ +
-                    base::TimeDelta::FromSeconds(12)).ToJsTime(),
-                   alarm_manager_->next_poll_time_.ToJsTime());
+  EXPECT_DOUBLE_EQ(
+      (alarm_manager_->last_poll_time_ + base::Seconds(12)).ToJsTime(),
+      alarm_manager_->next_poll_time_.ToJsTime());
 }
 
 void FrequencyTestGetAlarmsCallback(ExtensionAlarmsTest* test, Alarm* alarm) {
@@ -675,7 +673,7 @@
   EXPECT_THAT(alarm->js_alarm->period_in_minutes,
               testing::Pointee(testing::DoubleEq(0.0001)));
 
-  test->test_clock_.Advance(base::TimeDelta::FromMilliseconds(10));
+  test->test_clock_.Advance(base::Milliseconds(10));
   // Now wait for the alarm to fire. Our test delegate will quit the
   // MessageLoop when that happens.
   base::RunLoop().Run();
@@ -716,13 +714,12 @@
     // alarms_api_constants::kReleaseDelayMinimum). Make sure
     // our next poll time corresponds to our allowed minimum and not to the
     // StateStore specified "periodInMinutes".
-    EXPECT_GE(
-        alarm_manager_->next_poll_time_,
-        // 10s initial clock.
-        base::Time::FromJsTime(10000) +
-            // 10ms in FrequencyTestGetAlarmsCallback.
-            base::TimeDelta::FromMilliseconds(10) +
-            base::TimeDelta::FromSecondsD(test_data[i].delay_minimum * 60));
+    EXPECT_GE(alarm_manager_->next_poll_time_,
+              // 10s initial clock.
+              base::Time::FromJsTime(10000) +
+                  // 10ms in FrequencyTestGetAlarmsCallback.
+                  base::Milliseconds(10) +
+                  base::Seconds(test_data[i].delay_minimum * 60));
     RemoveAlarm("hello");
   }
 }
@@ -737,12 +734,12 @@
   alarm_manager_->ScheduleNextPoll();
 
   // We expect the first poll to happen two minutes from the start.
-  EXPECT_DOUBLE_EQ((alarm_manager_->last_poll_time_ +
-                    base::TimeDelta::FromSeconds(120)).ToJsTime(),
-                   alarm_manager_->next_poll_time_.ToJsTime());
+  EXPECT_DOUBLE_EQ(
+      (alarm_manager_->last_poll_time_ + base::Seconds(120)).ToJsTime(),
+      alarm_manager_->next_poll_time_.ToJsTime());
 
   // Poll more than two minutes later.
-  test_clock_.Advance(base::TimeDelta::FromSeconds(125));
+  test_clock_.Advance(base::Seconds(125));
   alarm_manager_->PollAlarms();
 
   // The alarm should have triggered once.
@@ -751,12 +748,12 @@
   // The next poll should still be scheduled for four minutes from the start,
   // even though this is less than two minutes since the last alarm.
   // Last poll was at 125 seconds; next poll should be at 240 seconds.
-  EXPECT_DOUBLE_EQ((alarm_manager_->last_poll_time_ +
-                    base::TimeDelta::FromSeconds(115)).ToJsTime(),
-                   alarm_manager_->next_poll_time_.ToJsTime());
+  EXPECT_DOUBLE_EQ(
+      (alarm_manager_->last_poll_time_ + base::Seconds(115)).ToJsTime(),
+      alarm_manager_->next_poll_time_.ToJsTime());
 
   // Completely miss a scheduled trigger.
-  test_clock_.Advance(base::TimeDelta::FromSeconds(255));  // Total Time: 380s
+  test_clock_.Advance(base::Seconds(255));  // Total Time: 380s
   alarm_manager_->PollAlarms();
 
   // The alarm should have triggered again at this last poll.
@@ -765,9 +762,9 @@
   // The next poll should be the first poll that hasn't happened and is in-line
   // with the original scheduling.
   // Last poll was at 380 seconds; next poll should be at 480 seconds.
-  EXPECT_DOUBLE_EQ((alarm_manager_->last_poll_time_ +
-                    base::TimeDelta::FromSeconds(100)).ToJsTime(),
-                   alarm_manager_->next_poll_time_.ToJsTime());
+  EXPECT_DOUBLE_EQ(
+      (alarm_manager_->last_poll_time_ + base::Seconds(100)).ToJsTime(),
+      alarm_manager_->next_poll_time_.ToJsTime());
 }
 
 }  // namespace extensions
diff --git a/extensions/browser/api/bluetooth/bluetooth_private_api.cc b/extensions/browser/api/bluetooth/bluetooth_private_api.cc
index 1524c50b..5e62ed8 100644
--- a/extensions/browser/api/bluetooth/bluetooth_private_api.cc
+++ b/extensions/browser/api/bluetooth/bluetooth_private_api.cc
@@ -675,7 +675,7 @@
     device::RecordPairingResult(
         success ? absl::nullopt : GetConnectionFailureReason(result),
         GetBluetoothTransport(params_->transport),
-        base::TimeDelta::FromMilliseconds(params_->pairing_duration_ms));
+        base::Milliseconds(params_->pairing_duration_ms));
   }
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
 
@@ -729,7 +729,7 @@
     scoped_refptr<device::BluetoothAdapter> adapter) {
 #if BUILDFLAG(IS_CHROMEOS_ASH)
   device::RecordDeviceSelectionDuration(
-      base::TimeDelta::FromMilliseconds(params_->selection_duration_ms),
+      base::Milliseconds(params_->selection_duration_ms),
       device::DeviceSelectionUISurfaces::kSettings, params_->was_paired,
       GetBluetoothTransport(params_->transport));
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/extensions/browser/api/bluetooth_low_energy/bluetooth_low_energy_api.cc b/extensions/browser/api/bluetooth_low_energy/bluetooth_low_energy_api.cc
index 1dea6d4..169712a 100644
--- a/extensions/browser/api/bluetooth_low_energy/bluetooth_low_energy_api.cc
+++ b/extensions/browser/api/bluetooth_low_energy/bluetooth_low_energy_api.cc
@@ -1286,8 +1286,8 @@
   BluetoothLowEnergyEventRouter* event_router =
       GetEventRouter(browser_context());
   event_router->adapter()->SetAdvertisingInterval(
-      base::TimeDelta::FromMilliseconds(params_->min_interval),
-      base::TimeDelta::FromMilliseconds(params_->max_interval),
+      base::Milliseconds(params_->min_interval),
+      base::Milliseconds(params_->max_interval),
       base::BindOnce(
           &BluetoothLowEnergySetAdvertisingIntervalFunction::SuccessCallback,
           this),
diff --git a/extensions/browser/api/declarative_net_request/action_tracker.h b/extensions/browser/api/declarative_net_request/action_tracker.h
index 57a71fc..e812aee 100644
--- a/extensions/browser/api/declarative_net_request/action_tracker.h
+++ b/extensions/browser/api/declarative_net_request/action_tracker.h
@@ -37,8 +37,7 @@
  public:
   // The lifespan of matched rules in |rules_matched_| not associated with an
   // active document,
-  static constexpr base::TimeDelta kNonActiveTabRuleLifespan =
-      base::TimeDelta::FromMinutes(5);
+  static constexpr base::TimeDelta kNonActiveTabRuleLifespan = base::Minutes(5);
 
   explicit ActionTracker(content::BrowserContext* browser_context);
   ~ActionTracker();
diff --git a/extensions/browser/api/declarative_net_request/composite_matcher.cc b/extensions/browser/api/declarative_net_request/composite_matcher.cc
index 9d36eabd..ed48042 100644
--- a/extensions/browser/api/declarative_net_request/composite_matcher.cc
+++ b/extensions/browser/api/declarative_net_request/composite_matcher.cc
@@ -48,8 +48,7 @@
     UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
         "Extensions.DeclarativeNetRequest.EvaluateBeforeRequestTime."
         "SingleExtension2",
-        timer_.Elapsed(), base::TimeDelta::FromMicroseconds(1),
-        base::TimeDelta::FromMilliseconds(50), 50);
+        timer_.Elapsed(), base::Microseconds(1), base::Milliseconds(50), 50);
   }
 
  private:
diff --git a/extensions/browser/api/declarative_net_request/declarative_net_request_api.cc b/extensions/browser/api/declarative_net_request/declarative_net_request_api.cc
index ec360d1..71d3964 100644
--- a/extensions/browser/api/declarative_net_request/declarative_net_request_api.cc
+++ b/extensions/browser/api/declarative_net_request/declarative_net_request_api.cc
@@ -393,7 +393,7 @@
     QuotaLimitHeuristics* heuristics) const {
   QuotaLimitHeuristic::Config limit = {
       dnr_api::MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL,
-      base::TimeDelta::FromMinutes(dnr_api::GETMATCHEDRULES_QUOTA_INTERVAL)};
+      base::Minutes(dnr_api::GETMATCHEDRULES_QUOTA_INTERVAL)};
 
   heuristics->push_back(std::make_unique<QuotaService::TimedLimit>(
       limit, std::make_unique<QuotaLimitHeuristic::SingletonBucketMapper>(),
diff --git a/extensions/browser/api/declarative_net_request/ruleset_manager.cc b/extensions/browser/api/declarative_net_request/ruleset_manager.cc
index 93e9cc18..2444f69 100644
--- a/extensions/browser/api/declarative_net_request/ruleset_manager.cc
+++ b/extensions/browser/api/declarative_net_request/ruleset_manager.cc
@@ -54,8 +54,7 @@
   ~ScopedEvaluateRequestTimer() {
     UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
         "Extensions.DeclarativeNetRequest.EvaluateRequestTime.AllExtensions3",
-        timer_.Elapsed(), base::TimeDelta::FromMicroseconds(1),
-        base::TimeDelta::FromMilliseconds(50), 50);
+        timer_.Elapsed(), base::Microseconds(1), base::Milliseconds(50), 50);
   }
 
  private:
diff --git a/extensions/browser/api/feedback_private/access_rate_limiter_chromeos_unittest.cc b/extensions/browser/api/feedback_private/access_rate_limiter_chromeos_unittest.cc
index 2796a13..1443dc8 100644
--- a/extensions/browser/api/feedback_private/access_rate_limiter_chromeos_unittest.cc
+++ b/extensions/browser/api/feedback_private/access_rate_limiter_chromeos_unittest.cc
@@ -15,7 +15,7 @@
   AccessRateLimiterTest() {
     // |test_clock_| must start out at something other than 0, which is
     // interpreted as an invalid value.
-    test_clock_.Advance(base::TimeDelta::FromMilliseconds(100));
+    test_clock_.Advance(base::Milliseconds(100));
   }
 
   AccessRateLimiterTest(const AccessRateLimiterTest&) = delete;
@@ -33,7 +33,7 @@
 
 TEST_F(AccessRateLimiterTest, MaxAccessCountOfZero) {
   limiter_ = std::make_unique<extensions::AccessRateLimiter>(
-      0, base::TimeDelta::FromMilliseconds(100), &test_clock_);
+      0, base::Milliseconds(100), &test_clock_);
 
   EXPECT_FALSE(limiter_->AttemptAccess());
   EXPECT_FALSE(limiter_->AttemptAccess());
@@ -44,7 +44,7 @@
 
 TEST_F(AccessRateLimiterTest, NormalRepeatedAccess) {
   limiter_ = std::make_unique<extensions::AccessRateLimiter>(
-      5, base::TimeDelta::FromMilliseconds(100), &test_clock_);
+      5, base::Milliseconds(100), &test_clock_);
 
   EXPECT_TRUE(limiter_->AttemptAccess());
   EXPECT_TRUE(limiter_->AttemptAccess());
@@ -60,7 +60,7 @@
 
 TEST_F(AccessRateLimiterTest, RechargeWhenDry) {
   limiter_ = std::make_unique<extensions::AccessRateLimiter>(
-      5, base::TimeDelta::FromMilliseconds(100), &test_clock_);
+      5, base::Milliseconds(100), &test_clock_);
 
   EXPECT_TRUE(limiter_->AttemptAccess());
   EXPECT_TRUE(limiter_->AttemptAccess());
@@ -69,11 +69,11 @@
   EXPECT_TRUE(limiter_->AttemptAccess());
   EXPECT_FALSE(limiter_->AttemptAccess());
 
-  test_clock_.Advance(base::TimeDelta::FromMilliseconds(100));
+  test_clock_.Advance(base::Milliseconds(100));
   EXPECT_TRUE(limiter_->AttemptAccess());
   EXPECT_FALSE(limiter_->AttemptAccess());
 
-  test_clock_.Advance(base::TimeDelta::FromMilliseconds(500));
+  test_clock_.Advance(base::Milliseconds(500));
   EXPECT_TRUE(limiter_->AttemptAccess());
   EXPECT_TRUE(limiter_->AttemptAccess());
   EXPECT_TRUE(limiter_->AttemptAccess());
@@ -84,19 +84,19 @@
 
 TEST_F(AccessRateLimiterTest, RechargeTimeOfZero) {
   limiter_ = std::make_unique<extensions::AccessRateLimiter>(
-      5, base::TimeDelta::FromMilliseconds(0), &test_clock_);
+      5, base::Milliseconds(0), &test_clock_);
 
   // Unlimited number of accesses.
   for (int i = 0; i < 100; ++i)
     EXPECT_TRUE(limiter_->AttemptAccess()) << i;
 
   // Advancing should not make a difference.
-  test_clock_.Advance(base::TimeDelta::FromMilliseconds(100));
+  test_clock_.Advance(base::Milliseconds(100));
   EXPECT_TRUE(limiter_->AttemptAccess());
   EXPECT_TRUE(limiter_->AttemptAccess());
   EXPECT_TRUE(limiter_->AttemptAccess());
 
-  test_clock_.Advance(base::TimeDelta::FromMilliseconds(500));
+  test_clock_.Advance(base::Milliseconds(500));
   EXPECT_TRUE(limiter_->AttemptAccess());
   EXPECT_TRUE(limiter_->AttemptAccess());
   EXPECT_TRUE(limiter_->AttemptAccess());
@@ -104,7 +104,7 @@
 
 TEST_F(AccessRateLimiterTest, RechargeToMax) {
   limiter_ = std::make_unique<extensions::AccessRateLimiter>(
-      5, base::TimeDelta::FromMilliseconds(100), &test_clock_);
+      5, base::Milliseconds(100), &test_clock_);
 
   EXPECT_TRUE(limiter_->AttemptAccess());
   EXPECT_TRUE(limiter_->AttemptAccess());
@@ -114,7 +114,7 @@
   EXPECT_FALSE(limiter_->AttemptAccess());
 
   // Should not exceed the max number of accesses.
-  test_clock_.Advance(base::TimeDelta::FromMilliseconds(1000));
+  test_clock_.Advance(base::Milliseconds(1000));
   EXPECT_TRUE(limiter_->AttemptAccess());
   EXPECT_TRUE(limiter_->AttemptAccess());
   EXPECT_TRUE(limiter_->AttemptAccess());
@@ -125,7 +125,7 @@
 
 TEST_F(AccessRateLimiterTest, IncrementalRecharge) {
   limiter_ = std::make_unique<extensions::AccessRateLimiter>(
-      5, base::TimeDelta::FromMilliseconds(100), &test_clock_);
+      5, base::Milliseconds(100), &test_clock_);
 
   EXPECT_TRUE(limiter_->AttemptAccess());
   EXPECT_TRUE(limiter_->AttemptAccess());
@@ -135,22 +135,22 @@
   EXPECT_FALSE(limiter_->AttemptAccess());
 
   // Has not yet hit the full recharge period.
-  test_clock_.Advance(base::TimeDelta::FromMilliseconds(50));
+  test_clock_.Advance(base::Milliseconds(50));
   EXPECT_FALSE(limiter_->AttemptAccess());
 
   // Has finally hit the full recharge period.
-  test_clock_.Advance(base::TimeDelta::FromMilliseconds(50));
+  test_clock_.Advance(base::Milliseconds(50));
   EXPECT_TRUE(limiter_->AttemptAccess());
   EXPECT_FALSE(limiter_->AttemptAccess());
 
   // This only recharges two full periods.
-  test_clock_.Advance(base::TimeDelta::FromMilliseconds(250));
+  test_clock_.Advance(base::Milliseconds(250));
   EXPECT_TRUE(limiter_->AttemptAccess());
   EXPECT_TRUE(limiter_->AttemptAccess());
   EXPECT_FALSE(limiter_->AttemptAccess());
 
   // This finishes recharging three full periods.
-  test_clock_.Advance(base::TimeDelta::FromMilliseconds(250));
+  test_clock_.Advance(base::Milliseconds(250));
   EXPECT_TRUE(limiter_->AttemptAccess());
   EXPECT_TRUE(limiter_->AttemptAccess());
   EXPECT_TRUE(limiter_->AttemptAccess());
@@ -159,7 +159,7 @@
 
 TEST_F(AccessRateLimiterTest, IncrementalRechargeToMax) {
   limiter_ = std::make_unique<extensions::AccessRateLimiter>(
-      5, base::TimeDelta::FromMilliseconds(100), &test_clock_);
+      5, base::Milliseconds(100), &test_clock_);
 
   EXPECT_TRUE(limiter_->AttemptAccess());
   EXPECT_TRUE(limiter_->AttemptAccess());
@@ -169,10 +169,10 @@
   EXPECT_FALSE(limiter_->AttemptAccess());
 
   // This only recharges two full periods.
-  test_clock_.Advance(base::TimeDelta::FromMilliseconds(250));
+  test_clock_.Advance(base::Milliseconds(250));
   // This finishes recharging three full periods, but will not recharge over the
   // additional periods.
-  test_clock_.Advance(base::TimeDelta::FromMilliseconds(450));
+  test_clock_.Advance(base::Milliseconds(450));
   EXPECT_TRUE(limiter_->AttemptAccess());
   EXPECT_TRUE(limiter_->AttemptAccess());
   EXPECT_TRUE(limiter_->AttemptAccess());
diff --git a/extensions/browser/api/feedback_private/feedback_private_api.cc b/extensions/browser/api/feedback_private/feedback_private_api.cc
index f73cdf8..6c1fc6b8 100644
--- a/extensions/browser/api/feedback_private/feedback_private_api.cc
+++ b/extensions/browser/api/feedback_private/feedback_private_api.cc
@@ -406,9 +406,8 @@
   bool load_system_info =
       (params->load_system_info && *params->load_system_info);
   if (params->form_open_time) {
-    const auto form_open_time =
-        base::TimeTicks::UnixEpoch() +
-        base::TimeDelta::FromMilliseconds(*params->form_open_time);
+    const auto form_open_time = base::TimeTicks::UnixEpoch() +
+                                base::Milliseconds(*params->form_open_time);
     base::UmaHistogramLongTimes("Feedback.Duration.FormOpenToSubmit",
                                 base::TimeTicks::Now() - form_open_time);
   }
diff --git a/extensions/browser/api/feedback_private/log_source_access_manager.cc b/extensions/browser/api/feedback_private/log_source_access_manager.cc
index ca25f93f..8219d7b 100644
--- a/extensions/browser/api/feedback_private/log_source_access_manager.cc
+++ b/extensions/browser/api/feedback_private/log_source_access_manager.cc
@@ -33,7 +33,7 @@
 // The minimum time between consecutive reads of a log source by a particular
 // extension.
 constexpr base::TimeDelta kDefaultRateLimitingTimeout =
-    base::TimeDelta::FromMilliseconds(1000);
+    base::Milliseconds(1000);
 
 // The maximum number of accesses on a single log source that can be allowed
 // before the next recharge increment. See access_rate_limiter.h for more info.
diff --git a/extensions/browser/api/feedback_private/log_source_access_manager_chromeos_unittest.cc b/extensions/browser/api/feedback_private/log_source_access_manager_chromeos_unittest.cc
index 16494ca7..a46d719 100644
--- a/extensions/browser/api/feedback_private/log_source_access_manager_chromeos_unittest.cc
+++ b/extensions/browser/api/feedback_private/log_source_access_manager_chromeos_unittest.cc
@@ -28,7 +28,7 @@
 using LogSourceAccessManagerTest = FeedbackPrivateApiUnittestBase;
 
 TEST_F(LogSourceAccessManagerTest, MaxNumberOfOpenLogSourcesSameExtension) {
-  const base::TimeDelta timeout(base::TimeDelta::FromMilliseconds(0));
+  const base::TimeDelta timeout(base::Milliseconds(0));
   LogSourceAccessManager::SetRateLimitingTimeoutForTesting(&timeout);
 
   LogSourceAccessManager manager(browser_context());
@@ -75,7 +75,7 @@
 
 TEST_F(LogSourceAccessManagerTest,
        MaxNumberOfOpenLogSourcesDifferentExtensions) {
-  const base::TimeDelta timeout(base::TimeDelta::FromMilliseconds(0));
+  const base::TimeDelta timeout(base::Milliseconds(0));
   LogSourceAccessManager::SetRateLimitingTimeoutForTesting(&timeout);
 
   LogSourceAccessManager manager(browser_context());
diff --git a/extensions/browser/api/guest_view/web_view/web_view_internal_api.cc b/extensions/browser/api/guest_view/web_view/web_view_internal_api.cc
index 6c78cdaf..cda7ea0b 100644
--- a/extensions/browser/api/guest_view/web_view/web_view_internal_api.cc
+++ b/extensions/browser/api/guest_view/web_view/web_view_internal_api.cc
@@ -334,7 +334,7 @@
 
 void WebViewInternalCaptureVisibleRegionFunction::GetQuotaLimitHeuristics(
     QuotaLimitHeuristics* heuristics) const {
-  constexpr base::TimeDelta kSecond = base::TimeDelta::FromSeconds(1);
+  constexpr base::TimeDelta kSecond = base::Seconds(1);
   QuotaLimitHeuristic::Config limit = {
       web_view_internal::MAX_CAPTURE_VISIBLE_REGION_CALLS_PER_SECOND, kSecond};
 
diff --git a/extensions/browser/api/idle/idle_manager.cc b/extensions/browser/api/idle/idle_manager.cc
index 82c918a..bca478e 100644
--- a/extensions/browser/api/idle/idle_manager.cc
+++ b/extensions/browser/api/idle/idle_manager.cc
@@ -234,8 +234,8 @@
 void IdleManager::StartPolling() {
   DCHECK(thread_checker_.CalledOnValidThread());
   if (!poll_timer_.IsRunning()) {
-    poll_timer_.Start(FROM_HERE, base::TimeDelta::FromSeconds(kPollInterval),
-                      this, &IdleManager::UpdateIdleState);
+    poll_timer_.Start(FROM_HERE, base::Seconds(kPollInterval), this,
+                      &IdleManager::UpdateIdleState);
   }
 }
 
diff --git a/extensions/browser/api/media_perception_private/media_perception_api_manager.cc b/extensions/browser/api/media_perception_private/media_perception_api_manager.cc
index 72730f0..b0e8a4ca 100644
--- a/extensions/browser/api/media_perception_private/media_perception_api_manager.cc
+++ b/extensions/browser/api/media_perception_private/media_perception_api_manager.cc
@@ -393,7 +393,7 @@
       FROM_HERE,
       base::BindOnce(&MediaPerceptionAPIManager::SendMojoInvitation,
                      weak_ptr_factory_.GetWeakPtr(), std::move(callback)),
-      base::TimeDelta::FromMilliseconds(kStartupDelayMs));
+      base::Milliseconds(kStartupDelayMs));
 }
 
 void MediaPerceptionAPIManager::SendMojoInvitation(
diff --git a/extensions/browser/api/metrics_private/metrics_private_api.cc b/extensions/browser/api/metrics_private/metrics_private_api.cc
index c01ad18..e9404f9 100644
--- a/extensions/browser/api/metrics_private/metrics_private_api.cc
+++ b/extensions/browser/api/metrics_private/metrics_private_api.cc
@@ -48,8 +48,7 @@
                                    // and would cause crazy memory usage
 
 // Amount of time to give other processes to report their histograms.
-constexpr base::TimeDelta kHistogramsRefreshTimeout =
-    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kHistogramsRefreshTimeout = base::Seconds(10);
 
 }  // namespace
 
diff --git a/extensions/browser/api/printer_provider/printer_provider_api.cc b/extensions/browser/api/printer_provider/printer_provider_api.cc
index c738ce7..9a40128 100644
--- a/extensions/browser/api/printer_provider/printer_provider_api.cc
+++ b/extensions/browser/api/printer_provider/printer_provider_api.cc
@@ -159,8 +159,7 @@
 // requests for an extension.
 class PendingGetCapabilityRequests {
  public:
-  static constexpr base::TimeDelta kGetCapabilityTimeout =
-      base::TimeDelta::FromSeconds(20);
+  static constexpr base::TimeDelta kGetCapabilityTimeout = base::Seconds(20);
 
   PendingGetCapabilityRequests();
   ~PendingGetCapabilityRequests();
diff --git a/extensions/browser/api/runtime/restart_after_delay_api_unittest.cc b/extensions/browser/api/runtime/restart_after_delay_api_unittest.cc
index 5e20e98..b7e49b7 100644
--- a/extensions/browser/api/runtime/restart_after_delay_api_unittest.cc
+++ b/extensions/browser/api/runtime/restart_after_delay_api_unittest.cc
@@ -127,7 +127,7 @@
     RuntimeAPI* runtime_api =
         RuntimeAPI::GetFactoryInstance()->Get(browser_context());
     runtime_api->set_min_duration_between_restarts_for_testing(
-        base::TimeDelta::FromSeconds(2));
+        base::Seconds(2));
     runtime_api->AllowNonKioskAppsInRestartAfterDelayForTesting();
 
     RuntimeAPI::RegisterPrefs(
@@ -198,14 +198,14 @@
   base::TimeTicks now = base::TimeTicks::Now();
   RunRestartAfterDelayFunction("[3]", "");
   ASSERT_TRUE(IsDelayedRestartTimerRunning());
-  ASSERT_GE(desired_restart_time() - now, base::TimeDelta::FromSeconds(3));
+  ASSERT_GE(desired_restart_time() - now, base::Seconds(3));
 
   // Request another restart after 4 seconds. It should reschedule the previous
   // request.
   now = base::TimeTicks::Now();
   RunRestartAfterDelayFunction("[4]", "");
   ASSERT_TRUE(IsDelayedRestartTimerRunning());
-  ASSERT_GE(desired_restart_time() - now, base::TimeDelta::FromSeconds(4));
+  ASSERT_GE(desired_restart_time() - now, base::Seconds(4));
 
   // Create another extension and make it attempt to use the api, and expect a
   // failure.
@@ -224,10 +224,10 @@
   now = base::TimeTicks::Now();
   RunRestartAfterDelayFunction("[1]", "");
   ASSERT_TRUE(IsDelayedRestartTimerRunning());
-  ASSERT_GE(desired_restart_time() - now, base::TimeDelta::FromSeconds(1));
+  ASSERT_GE(desired_restart_time() - now, base::Seconds(1));
   base::TimeTicks last_restart_time = WaitForSuccessfulRestart();
   ASSERT_FALSE(IsDelayedRestartTimerRunning());
-  ASSERT_GE(base::TimeTicks::Now() - now, base::TimeDelta::FromSeconds(1));
+  ASSERT_GE(base::TimeTicks::Now() - now, base::Seconds(1));
 
   // This is a restart request that will be throttled, because it happens too
   // soon after a successful restart.
@@ -237,7 +237,7 @@
   // Restart will happen 2 seconds later, even though the request was just one
   // second.
   ASSERT_NEAR((desired_restart_time() - last_restart_time).InSecondsF(),
-              base::TimeDelta::FromSeconds(2).InSecondsF(), 0.5);
+              base::Seconds(2).InSecondsF(), 0.5);
 
   // Calling chrome.runtime.restart() will not clear the throttle, and any
   // subsequent calls to chrome.runtime.restartAfterDelay will still be
@@ -251,7 +251,7 @@
   // Restart will happen 2 seconds later, even though the request was just one
   // second.
   ASSERT_NEAR((desired_restart_time() - last_restart_time).InSecondsF(),
-              base::TimeDelta::FromSeconds(2).InSecondsF(), 0.5);
+              base::Seconds(2).InSecondsF(), 0.5);
 }
 
 }  // namespace extensions
diff --git a/extensions/browser/api/runtime/runtime_api.cc b/extensions/browser/api/runtime/runtime_api.cc
index ae60d89d..4be94b3 100644
--- a/extensions/browser/api/runtime/runtime_api.cc
+++ b/extensions/browser/api/runtime/runtime_api.cc
@@ -182,8 +182,8 @@
 
 RuntimeAPI::RuntimeAPI(content::BrowserContext* context)
     : browser_context_(context),
-      minimum_duration_between_restarts_(base::TimeDelta::FromHours(
-          kMinDurationBetweenSuccessiveRestartsHours)),
+      minimum_duration_between_restarts_(
+          base::Hours(kMinDurationBetweenSuccessiveRestartsHours)),
       dispatch_chrome_updated_event_(false),
       did_read_delayed_restart_preferences_(false),
       was_last_restart_due_to_delayed_restart_api_(false) {
@@ -361,8 +361,7 @@
 RuntimeAPI::RestartAfterDelayStatus RuntimeAPI::ScheduleDelayedRestart(
     const base::Time& now,
     int seconds_from_now) {
-  base::TimeDelta delay_till_restart =
-      base::TimeDelta::FromSeconds(seconds_from_now);
+  base::TimeDelta delay_till_restart = base::Seconds(seconds_from_now);
 
   // Throttle restart requests that are received too soon successively, only if
   // the previous restart was due to this API.
diff --git a/extensions/browser/api/serial/serial_connection.cc b/extensions/browser/api/serial/serial_connection.cc
index be24a63d8..2876482 100644
--- a/extensions/browser/api/serial/serial_connection.cc
+++ b/extensions/browser/api/serial/serial_connection.cc
@@ -427,7 +427,7 @@
                                             weak_factory_.GetWeakPtr()));
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
         FROM_HERE, send_timeout_task_.callback(),
-        base::TimeDelta::FromMilliseconds(send_timeout_));
+        base::Milliseconds(send_timeout_));
   }
 }
 
@@ -538,7 +538,7 @@
         &SerialConnection::OnReceiveTimeout, weak_factory_.GetWeakPtr()));
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
         FROM_HERE, receive_timeout_task_.callback(),
-        base::TimeDelta::FromMilliseconds(receive_timeout_));
+        base::Milliseconds(receive_timeout_));
   }
 }
 
diff --git a/extensions/browser/api/storage/storage_api.cc b/extensions/browser/api/storage/storage_api.cc
index 1268e56..7a02cd7 100644
--- a/extensions/browser/api/storage/storage_api.cc
+++ b/extensions/browser/api/storage/storage_api.cc
@@ -74,11 +74,9 @@
 void GetModificationQuotaLimitHeuristics(QuotaLimitHeuristics* heuristics) {
   // See storage.json for the current value of these limits.
   QuotaLimitHeuristic::Config short_limit_config = {
-      api::storage::sync::MAX_WRITE_OPERATIONS_PER_MINUTE,
-      base::TimeDelta::FromMinutes(1)};
+      api::storage::sync::MAX_WRITE_OPERATIONS_PER_MINUTE, base::Minutes(1)};
   QuotaLimitHeuristic::Config long_limit_config = {
-      api::storage::sync::MAX_WRITE_OPERATIONS_PER_HOUR,
-      base::TimeDelta::FromHours(1)};
+      api::storage::sync::MAX_WRITE_OPERATIONS_PER_HOUR, base::Hours(1)};
   heuristics->push_back(std::make_unique<QuotaService::TimedLimit>(
       short_limit_config,
       std::make_unique<QuotaLimitHeuristic::SingletonBucketMapper>(),
diff --git a/extensions/browser/api/web_request/web_request_api.cc b/extensions/browser/api/web_request/web_request_api.cc
index 407e745..fcaed5e3 100644
--- a/extensions/browser/api/web_request/web_request_api.cc
+++ b/extensions/browser/api/web_request/web_request_api.cc
@@ -2842,7 +2842,7 @@
   QuotaLimitHeuristic::Config config = {
       // See web_request.json for current value.
       web_request::MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES,
-      base::TimeDelta::FromMinutes(10)};
+      base::Minutes(10)};
   heuristics->push_back(std::make_unique<ClearCacheQuotaHeuristic>(
       config, std::make_unique<QuotaLimitHeuristic::SingletonBucketMapper>()));
 }
diff --git a/extensions/browser/api/web_request/web_request_time_tracker.cc b/extensions/browser/api/web_request/web_request_time_tracker.cc
index 1ab7771..f0e797e 100644
--- a/extensions/browser/api/web_request/web_request_time_tracker.cc
+++ b/extensions/browser/api/web_request/web_request_time_tracker.cc
@@ -64,7 +64,7 @@
 
   // Ignore really short requests. Time spent on these is negligible, and any
   // extra delay the extension adds is likely to be noise.
-  constexpr auto kMinRequestTimeToCare = base::TimeDelta::FromMilliseconds(10);
+  constexpr auto kMinRequestTimeToCare = base::Milliseconds(10);
   if (request_duration >= kMinRequestTimeToCare) {
     const int percentage =
         base::ClampRound(log.block_duration / request_duration * 100);
diff --git a/extensions/browser/api/web_request/web_request_time_tracker_unittest.cc b/extensions/browser/api/web_request/web_request_time_tracker_unittest.cc
index 6d65cef..2f5ad6f 100644
--- a/extensions/browser/api/web_request/web_request_time_tracker_unittest.cc
+++ b/extensions/browser/api/web_request/web_request_time_tracker_unittest.cc
@@ -11,12 +11,11 @@
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace {
-const base::TimeDelta kRequestDelta = base::TimeDelta::FromMilliseconds(100);
-const base::TimeDelta kLongRequestDelta =
-    base::TimeDelta::FromMilliseconds(200);
-const base::TimeDelta kTinyDelay = base::TimeDelta::FromMilliseconds(1);
-const base::TimeDelta kModerateDelay = base::TimeDelta::FromMilliseconds(25);
-const base::TimeDelta kExcessiveDelay = base::TimeDelta::FromMilliseconds(75);
+const base::TimeDelta kRequestDelta = base::Milliseconds(100);
+const base::TimeDelta kLongRequestDelta = base::Milliseconds(200);
+const base::TimeDelta kTinyDelay = base::Milliseconds(1);
+const base::TimeDelta kModerateDelay = base::Milliseconds(25);
+const base::TimeDelta kExcessiveDelay = base::Milliseconds(75);
 }  // namespace
 
 // Test the basis recording of histograms.
diff --git a/extensions/browser/app_window/app_window_geometry_cache.cc b/extensions/browser/app_window/app_window_geometry_cache.cc
index f1db729..34d3bb2e 100644
--- a/extensions/browser/app_window/app_window_geometry_cache.cc
+++ b/extensions/browser/app_window/app_window_geometry_cache.cc
@@ -29,8 +29,7 @@
 
 AppWindowGeometryCache::AppWindowGeometryCache(content::BrowserContext* context,
                                                ExtensionPrefs* prefs)
-    : prefs_(prefs),
-      sync_delay_(base::TimeDelta::FromMilliseconds(kSyncTimeoutMilliseconds)) {
+    : prefs_(prefs), sync_delay_(base::Milliseconds(kSyncTimeoutMilliseconds)) {
   extension_registry_observation_.Observe(ExtensionRegistry::Get(context));
 }
 
@@ -195,7 +194,7 @@
 }
 
 void AppWindowGeometryCache::SetSyncDelayForTests(int timeout_ms) {
-  sync_delay_ = base::TimeDelta::FromMilliseconds(timeout_ms);
+  sync_delay_ = base::Milliseconds(timeout_ms);
 }
 
 void AppWindowGeometryCache::LoadGeometryFromStorage(
diff --git a/extensions/browser/extension_function.cc b/extensions/browser/extension_function.cc
index ab940fd6..8bcf0a5 100644
--- a/extensions/browser/extension_function.cc
+++ b/extensions/browser/extension_function.cc
@@ -148,13 +148,13 @@
   // anything waiting on user action. As such, we can't always assume that a
   // long execution time equates to a poorly-performing function.
   if (success) {
-    if (elapsed_time < base::TimeDelta::FromMilliseconds(1)) {
+    if (elapsed_time < base::Milliseconds(1)) {
       base::UmaHistogramSparse("Extensions.Functions.SucceededTime.LessThan1ms",
                                histogram_value);
-    } else if (elapsed_time < base::TimeDelta::FromMilliseconds(5)) {
+    } else if (elapsed_time < base::Milliseconds(5)) {
       base::UmaHistogramSparse("Extensions.Functions.SucceededTime.1msTo5ms",
                                histogram_value);
-    } else if (elapsed_time < base::TimeDelta::FromMilliseconds(10)) {
+    } else if (elapsed_time < base::Milliseconds(10)) {
       base::UmaHistogramSparse("Extensions.Functions.SucceededTime.5msTo10ms",
                                histogram_value);
     } else {
@@ -164,13 +164,13 @@
     UMA_HISTOGRAM_TIMES("Extensions.Functions.SucceededTotalExecutionTime",
                         elapsed_time);
   } else {
-    if (elapsed_time < base::TimeDelta::FromMilliseconds(1)) {
+    if (elapsed_time < base::Milliseconds(1)) {
       base::UmaHistogramSparse("Extensions.Functions.FailedTime.LessThan1ms",
                                histogram_value);
-    } else if (elapsed_time < base::TimeDelta::FromMilliseconds(5)) {
+    } else if (elapsed_time < base::Milliseconds(5)) {
       base::UmaHistogramSparse("Extensions.Functions.FailedTime.1msTo5ms",
                                histogram_value);
-    } else if (elapsed_time < base::TimeDelta::FromMilliseconds(10)) {
+    } else if (elapsed_time < base::Milliseconds(10)) {
       base::UmaHistogramSparse("Extensions.Functions.FailedTime.5msTo10ms",
                                histogram_value);
     } else {
diff --git a/extensions/browser/extension_protocols.cc b/extensions/browser/extension_protocols.cc
index 108ff1e7..7f6dcd30 100644
--- a/extensions/browser/extension_protocols.cc
+++ b/extensions/browser/extension_protocols.cc
@@ -237,12 +237,12 @@
   int64_t delta_seconds = (*last_modified_time - dir_creation_time).InSeconds();
   if (delta_seconds >= 0) {
     UMA_HISTOGRAM_CUSTOM_COUNTS("Extensions.ResourceLastModifiedDelta",
-                                delta_seconds, 1,
-                                base::TimeDelta::FromDays(30).InSeconds(), 50);
+                                delta_seconds, 1, base::Days(30).InSeconds(),
+                                50);
   } else {
     UMA_HISTOGRAM_CUSTOM_COUNTS("Extensions.ResourceLastModifiedNegativeDelta",
-                                -delta_seconds, 1,
-                                base::TimeDelta::FromDays(30).InSeconds(), 50);
+                                -delta_seconds, 1, base::Days(30).InSeconds(),
+                                50);
   }
 }
 
diff --git a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_interactive_uitest.cc b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_interactive_uitest.cc
index f815c73..8cd6cbef 100644
--- a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_interactive_uitest.cc
+++ b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_interactive_uitest.cc
@@ -137,8 +137,7 @@
   // Wait for Mac OS fullscreen animation.
   base::RunLoop run_loop;
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(),
-      base::TimeDelta::FromMilliseconds(delay_in_ms));
+      FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(delay_in_ms));
   run_loop.Run();
 }
 
diff --git a/extensions/browser/guest_view/mime_handler_view/test_mime_handler_view_guest.cc b/extensions/browser/guest_view/mime_handler_view/test_mime_handler_view_guest.cc
index f67c024..052fc12 100644
--- a/extensions/browser/guest_view/mime_handler_view/test_mime_handler_view_guest.cc
+++ b/extensions/browser/guest_view/mime_handler_view/test_mime_handler_view_guest.cc
@@ -43,7 +43,7 @@
     WebContentsCreatedCallback callback) {
   // Delay the creation of the guest's WebContents if |delay_| is set.
   if (delay_) {
-    auto delta = base::TimeDelta::FromMilliseconds(delay_);
+    auto delta = base::Milliseconds(delay_);
     content::GetUIThreadTaskRunner({})->PostDelayedTask(
         FROM_HERE,
         base::BindOnce(&TestMimeHandlerViewGuest::CallBaseCreateWebContents,
diff --git a/extensions/browser/image_sanitizer_unittest.cc b/extensions/browser/image_sanitizer_unittest.cc
index 3682b7d..58dab69 100644
--- a/extensions/browser/image_sanitizer_unittest.cc
+++ b/extensions/browser/image_sanitizer_unittest.cc
@@ -302,8 +302,7 @@
   // Wait a bit and ensure no callback has been called.
   base::RunLoop run_loop;
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(),
-      base::TimeDelta::FromMilliseconds(200));
+      FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(200));
   run_loop.Run();
   EXPECT_FALSE(done_callback_called());
   EXPECT_FALSE(decoded_image_callback_called());
diff --git a/extensions/browser/process_manager.cc b/extensions/browser/process_manager.cc
index d07a4c80..4f33f58 100644
--- a/extensions/browser/process_manager.cc
+++ b/extensions/browser/process_manager.cc
@@ -90,10 +90,9 @@
 // ShouldSuspend message, taking into account experiments and testing overrides.
 base::TimeDelta GetEventPageSuspendDelay() {
   if (g_event_page_suspend_delay_ms_for_testing != kInvalidSuspendDelay) {
-    return base::TimeDelta::FromMilliseconds(
-        g_event_page_suspend_delay_ms_for_testing);
+    return base::Milliseconds(g_event_page_suspend_delay_ms_for_testing);
   }
-  return base::TimeDelta::FromMilliseconds(kEventPageSuspendDelayMs.Get());
+  return base::Milliseconds(kEventPageSuspendDelayMs.Get());
 }
 
 std::string GetExtensionIdForSiteInstance(
@@ -570,7 +569,7 @@
       FROM_HERE,
       base::BindOnce(&ProcessManager::CloseLazyBackgroundPageNow,
                      weak_ptr_factory_.GetWeakPtr(), extension_id, sequence_id),
-      base::TimeDelta::FromMilliseconds(g_event_page_suspending_time_msec));
+      base::Milliseconds(g_event_page_suspending_time_msec));
 }
 
 void ProcessManager::NetworkRequestStarted(
diff --git a/extensions/browser/quota_service.cc b/extensions/browser/quota_service.cc
index 8f6a3705..4c69da7 100644
--- a/extensions/browser/quota_service.cc
+++ b/extensions/browser/quota_service.cc
@@ -25,9 +25,7 @@
 
 QuotaService::QuotaService() {
   if (!g_purge_disabled_for_testing && base::ThreadTaskRunnerHandle::IsSet()) {
-    purge_timer_.Start(FROM_HERE,
-                       base::TimeDelta::FromDays(kPurgeIntervalInDays),
-                       this,
+    purge_timer_.Start(FROM_HERE, base::Days(kPurgeIntervalInDays), this,
                        &QuotaService::Purge);
   }
 }
diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/browser/updater/extension_downloader.cc
index 09b0da21..528d8c2 100644
--- a/extensions/browser/updater/extension_downloader.cc
+++ b/extensions/browser/updater/extension_downloader.cc
@@ -1281,7 +1281,7 @@
       extension_loader_->ResponseInfo()->headers) {
     response_code = extension_loader_->ResponseInfo()->headers->response_code();
   }
-  const base::TimeDelta& backoff_delay = base::TimeDelta::FromMilliseconds(0);
+  const base::TimeDelta& backoff_delay = base::Milliseconds(0);
 
   ExtensionFetch& active_request = *extensions_queue_.active_request();
   const ExtensionId& id = active_request.id;
diff --git a/extensions/common/extensions_client.cc b/extensions/common/extensions_client.cc
index 833154b6..7fb9e421 100644
--- a/extensions/common/extensions_client.cc
+++ b/extensions/common/extensions_client.cc
@@ -127,8 +127,7 @@
 
   UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
       "Extensions.ChromeExtensionsClientInitTime2", timer.Elapsed(),
-      base::TimeDelta::FromMicroseconds(1), base::TimeDelta::FromSeconds(10),
-      50);
+      base::Microseconds(1), base::Seconds(10), 50);
 }
 
 }  // namespace extensions
diff --git a/extensions/common/image_util.cc b/extensions/common/image_util.cc
index 4da7d69..4308e649 100644
--- a/extensions/common/image_util.cc
+++ b/extensions/common/image_util.cc
@@ -218,8 +218,7 @@
   ~ScopedUmaMicrosecondHistogramTimer() {
     UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
         "Extensions.IsRenderedIconSufficientlyVisibleTime", timer.Elapsed(),
-        base::TimeDelta::FromMicroseconds(1), base::TimeDelta::FromSeconds(5),
-        50);
+        base::Microseconds(1), base::Seconds(5), 50);
   }
 
   const base::ElapsedTimer timer;
diff --git a/extensions/renderer/extension_throttle_entry.cc b/extensions/renderer/extension_throttle_entry.cc
index 18cb5299..c7fbc6b 100644
--- a/extensions/renderer/extension_throttle_entry.cc
+++ b/extensions/renderer/extension_throttle_entry.cc
@@ -43,8 +43,7 @@
 const int ExtensionThrottleEntry::kDefaultEntryLifetimeMs = 2 * 60 * 1000;
 
 ExtensionThrottleEntry::ExtensionThrottleEntry(const std::string& url_id)
-    : sliding_window_period_(
-          base::TimeDelta::FromMilliseconds(kDefaultSlidingWindowPeriodMs)),
+    : sliding_window_period_(base::Milliseconds(kDefaultSlidingWindowPeriodMs)),
       max_send_threshold_(kDefaultMaxSendThreshold),
       is_backoff_disabled_(false),
       backoff_entry_(&backoff_policy_),
@@ -55,8 +54,7 @@
 ExtensionThrottleEntry::ExtensionThrottleEntry(
     const std::string& url_id,
     const net::BackoffEntry::Policy* backoff_policy)
-    : sliding_window_period_(
-          base::TimeDelta::FromMilliseconds(kDefaultSlidingWindowPeriodMs)),
+    : sliding_window_period_(base::Milliseconds(kDefaultSlidingWindowPeriodMs)),
       max_send_threshold_(kDefaultMaxSendThreshold),
       is_backoff_disabled_(false),
       backoff_entry_(&backoff_policy_),
diff --git a/extensions/renderer/extension_throttle_simulation_unittest.cc b/extensions/renderer/extension_throttle_simulation_unittest.cc
index 18f6f5bd..4a9c79fe 100644
--- a/extensions/renderer/extension_throttle_simulation_unittest.cc
+++ b/extensions/renderer/extension_throttle_simulation_unittest.cc
@@ -637,10 +637,9 @@
     Stats stats;
 
     void PrintTrialDescription() {
-      const double duration_minutes =
-          duration / base::TimeDelta::FromMinutes(1);
+      const double duration_minutes = duration / base::Minutes(1);
       const double interval_minutes =
-          average_client_interval / base::TimeDelta::FromMinutes(1);
+          average_client_interval / base::Minutes(1);
       VerboseOut("Trial with %.2f min downtime, avg. interval %.2f min.\n",
                  duration_minutes, interval_minutes);
     }
diff --git a/extensions/renderer/script_injection_manager.cc b/extensions/renderer/script_injection_manager.cc
index bad476e..161b6391 100644
--- a/extensions/renderer/script_injection_manager.cc
+++ b/extensions/renderer/script_injection_manager.cc
@@ -188,7 +188,7 @@
           FROM_HERE,
           base::BindOnce(&ScriptInjectionManager::RFOHelper::RunIdle,
                          weak_factory_.GetWeakPtr()),
-          base::TimeDelta::FromMilliseconds(kScriptIdleTimeoutInMs));
+          base::Milliseconds(kScriptIdleTimeoutInMs));
 
   ExtensionFrameHelper::Get(render_frame())
       ->ScheduleAtDocumentIdle(
diff --git a/extensions/shell/browser/shell_desktop_controller_aura_browsertest.cc b/extensions/shell/browser/shell_desktop_controller_aura_browsertest.cc
index 4a05744f..96b5bc7 100644
--- a/extensions/shell/browser/shell_desktop_controller_aura_browsertest.cc
+++ b/extensions/shell/browser/shell_desktop_controller_aura_browsertest.cc
@@ -145,7 +145,7 @@
             // closing the last window. If DesktopController::Run() finishes
             // before we close the last window and update |test_succeeded|, the
             // test fails.
-            base::TimeDelta::FromMilliseconds(500));
+            base::Milliseconds(500));
       }));
 
   RunDesktopController();
@@ -185,7 +185,7 @@
               app_window->OnNativeClose();
               test_succeeded = true;
             }),
-            base::TimeDelta::FromMilliseconds(500));
+            base::Milliseconds(500));
       }));
 
   RunDesktopController();
diff --git a/extensions/shell/browser/shell_network_controller_chromeos.cc b/extensions/shell/browser/shell_network_controller_chromeos.cc
index 548cf1d..0d84b836 100644
--- a/extensions/shell/browser/shell_network_controller_chromeos.cc
+++ b/extensions/shell/browser/shell_network_controller_chromeos.cc
@@ -128,9 +128,7 @@
   VLOG(1) << (enabled ? "Starting" : "Stopping") << " scanning";
   if (enabled) {
     RequestScan();
-    scan_timer_.Start(FROM_HERE,
-                      base::TimeDelta::FromSeconds(kScanIntervalSec),
-                      this,
+    scan_timer_.Start(FROM_HERE, base::Seconds(kScanIntervalSec), this,
                       &ShellNetworkController::RequestScan);
   } else {
     scan_timer_.Stop();
diff --git a/fuchsia/base/legacymetrics_client.cc b/fuchsia/base/legacymetrics_client.cc
index f79d4af..e9822f6ae 100644
--- a/fuchsia/base/legacymetrics_client.cc
+++ b/fuchsia/base/legacymetrics_client.cc
@@ -66,7 +66,7 @@
 
 void LegacyMetricsClient::Start(base::TimeDelta report_interval) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  DCHECK_GT(report_interval, base::TimeDelta::FromSeconds(0));
+  DCHECK_GT(report_interval, base::Seconds(0));
 
   // Start recording user events.
   user_events_recorder_ = std::make_unique<LegacyMetricsUserActionRecorder>();
diff --git a/fuchsia/base/legacymetrics_client.h b/fuchsia/base/legacymetrics_client.h
index 3ed2f2f..b222b94 100644
--- a/fuchsia/base/legacymetrics_client.h
+++ b/fuchsia/base/legacymetrics_client.h
@@ -31,10 +31,8 @@
   static constexpr size_t kMaxBatchSize = 50;
 
   // Constants for FIDL reconnection with exponential backoff.
-  static constexpr base::TimeDelta kInitialReconnectDelay =
-      base::TimeDelta::FromSeconds(1);
-  static constexpr base::TimeDelta kMaxReconnectDelay =
-      base::TimeDelta::FromHours(1);
+  static constexpr base::TimeDelta kInitialReconnectDelay = base::Seconds(1);
+  static constexpr base::TimeDelta kMaxReconnectDelay = base::Hours(1);
   static constexpr size_t kReconnectBackoffFactor = 2;
 
   using ReportAdditionalMetricsCallback = base::RepeatingCallback<void(
diff --git a/fuchsia/base/legacymetrics_client_unittest.cc b/fuchsia/base/legacymetrics_client_unittest.cc
index a3a3cdf..5bda838 100644
--- a/fuchsia/base/legacymetrics_client_unittest.cc
+++ b/fuchsia/base/legacymetrics_client_unittest.cc
@@ -28,8 +28,8 @@
 using ::testing::Property;
 using ::testing::UnorderedElementsAreArray;
 
-constexpr base::TimeDelta kReportInterval = base::TimeDelta::FromMinutes(1);
-constexpr base::TimeDelta kShortDuration = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kReportInterval = base::Minutes(1);
+constexpr base::TimeDelta kShortDuration = base::Seconds(1);
 
 class TestMetricsRecorder
     : public fuchsia::legacymetrics::testing::MetricsRecorder_TestBase {
@@ -158,11 +158,10 @@
 TEST_F(LegacyMetricsClientTest, ReportIntervalBoundary) {
   client_.Start(kReportInterval);
 
-  task_environment_.FastForwardBy(kReportInterval -
-                                  base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(kReportInterval - base::Seconds(1));
   EXPECT_FALSE(test_recorder_.IsRecordInFlight());
   UMA_HISTOGRAM_COUNTS_1M("foo", 20);
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   EXPECT_TRUE(test_recorder_.IsRecordInFlight());
 }
 
diff --git a/fuchsia/engine/browser/media_player_impl.cc b/fuchsia/engine/browser/media_player_impl.cc
index d4284f2..fd3dc36 100644
--- a/fuchsia/engine/browser/media_player_impl.cc
+++ b/fuchsia/engine/browser/media_player_impl.cc
@@ -141,13 +141,13 @@
 }
 
 void MediaPlayerImpl::SkipForward() {
-  media_session_->Seek(base::TimeDelta::FromSeconds(
-      media_session::mojom::kDefaultSeekTimeSeconds));
+  media_session_->Seek(
+      base::Seconds(media_session::mojom::kDefaultSeekTimeSeconds));
 }
 
 void MediaPlayerImpl::SkipReverse() {
-  media_session_->Seek(-base::TimeDelta::FromSeconds(
-      media_session::mojom::kDefaultSeekTimeSeconds));
+  media_session_->Seek(
+      -base::Seconds(media_session::mojom::kDefaultSeekTimeSeconds));
 }
 
 void MediaPlayerImpl::NextItem() {
diff --git a/fuchsia/engine/browser/navigation_policy_browsertest.cc b/fuchsia/engine/browser/navigation_policy_browsertest.cc
index 3b3bad13..dbf8c714 100644
--- a/fuchsia/engine/browser/navigation_policy_browsertest.cc
+++ b/fuchsia/engine/browser/navigation_policy_browsertest.cc
@@ -90,8 +90,7 @@
       page_url.spec()));
   base::RunLoop run_loop;
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(),
-      base::TimeDelta::FromMilliseconds(200));
+      FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(200));
   run_loop.Run();
 
   // Make sure an up to date NavigationState is used.
diff --git a/fuchsia/engine/browser/web_engine_browser_main_parts.cc b/fuchsia/engine/browser/web_engine_browser_main_parts.cc
index d0ac7d7..ebecc8b63 100644
--- a/fuchsia/engine/browser/web_engine_browser_main_parts.cc
+++ b/fuchsia/engine/browser/web_engine_browser_main_parts.cc
@@ -54,11 +54,10 @@
 base::NoDestructor<fidl::InterfaceRequest<fuchsia::web::Context>>
     g_test_request;
 
-constexpr base::TimeDelta kMetricsReportingInterval =
-    base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kMetricsReportingInterval = base::Minutes(1);
 
 constexpr base::TimeDelta kChildProcessHistogramFetchTimeout =
-    base::TimeDelta::FromSeconds(10);
+    base::Seconds(10);
 
 // Merge child process' histogram deltas into the browser process' histograms.
 void FetchHistogramsFromChildProcesses(
diff --git a/fuchsia/engine/web_engine_integration_test.cc b/fuchsia/engine/web_engine_integration_test.cc
index 55a893a..79eb6781 100644
--- a/fuchsia/engine/web_engine_integration_test.cc
+++ b/fuchsia/engine/web_engine_integration_test.cc
@@ -354,8 +354,8 @@
   ASSERT_EQ(fake_audio_consumer_service_.num_instances(), 1U);
 
   auto pos = fake_audio_consumer_service_.instance(0)->GetMediaPosition();
-  EXPECT_GT(pos, base::TimeDelta::FromSecondsD(2.0));
-  EXPECT_LT(pos, base::TimeDelta::FromSecondsD(2.5));
+  EXPECT_GT(pos, base::Seconds(2.0));
+  EXPECT_LT(pos, base::Seconds(2.5));
 
   EXPECT_EQ(fake_audio_consumer_service_.instance(0)->session_id(),
             kTestMediaSessionId);
diff --git a/gin/v8_foreground_task_runner.cc b/gin/v8_foreground_task_runner.cc
index 4d93e27..0a40b8e 100644
--- a/gin/v8_foreground_task_runner.cc
+++ b/gin/v8_foreground_task_runner.cc
@@ -32,9 +32,9 @@
 
 void V8ForegroundTaskRunner::PostDelayedTask(std::unique_ptr<v8::Task> task,
                                              double delay_in_seconds) {
-  task_runner_->PostDelayedTask(
-      FROM_HERE, base::BindOnce(&v8::Task::Run, std::move(task)),
-      base::TimeDelta::FromSecondsD(delay_in_seconds));
+  task_runner_->PostDelayedTask(FROM_HERE,
+                                base::BindOnce(&v8::Task::Run, std::move(task)),
+                                base::Seconds(delay_in_seconds));
 }
 
 void V8ForegroundTaskRunner::PostNonNestableDelayedTask(
@@ -42,7 +42,7 @@
     double delay_in_seconds) {
   task_runner_->PostNonNestableDelayedTask(
       FROM_HERE, base::BindOnce(&v8::Task::Run, std::move(task)),
-      base::TimeDelta::FromSecondsD(delay_in_seconds));
+      base::Seconds(delay_in_seconds));
 }
 
 void V8ForegroundTaskRunner::PostIdleTask(std::unique_ptr<v8::IdleTask> task) {
diff --git a/gin/v8_foreground_task_runner_with_locker.cc b/gin/v8_foreground_task_runner_with_locker.cc
index a0b8934..a769c81 100644
--- a/gin/v8_foreground_task_runner_with_locker.cc
+++ b/gin/v8_foreground_task_runner_with_locker.cc
@@ -70,7 +70,7 @@
       FROM_HERE,
       base::BindOnce(RunWithLocker, base::Unretained(isolate_),
                      std::move(task)),
-      base::TimeDelta::FromSecondsD(delay_in_seconds));
+      base::Seconds(delay_in_seconds));
 }
 
 void V8ForegroundTaskRunnerWithLocker::PostIdleTask(
diff --git a/gin/v8_initializer.cc b/gin/v8_initializer.cc
index 4b1bf58..6b13260 100644
--- a/gin/v8_initializer.cc
+++ b/gin/v8_initializer.cc
@@ -179,8 +179,7 @@
       result = OpenV8FileResult::FAILED_OTHER;
       break;
     } else if (kMaxOpenAttempts - 1 != attempt) {
-      base::PlatformThread::Sleep(
-          base::TimeDelta::FromMilliseconds(kOpenRetryDelayMillis));
+      base::PlatformThread::Sleep(base::Milliseconds(kOpenRetryDelayMillis));
     }
   }
 #endif  // defined(OS_ANDROID)
diff --git a/gin/v8_platform.cc b/gin/v8_platform.cc
index 44f8ffed..aa9d5e0 100644
--- a/gin/v8_platform.cc
+++ b/gin/v8_platform.cc
@@ -329,8 +329,7 @@
         arg_convertables);
     DCHECK_LE(num_args, 2);
     base::TimeTicks timestamp =
-        base::TimeTicks() +
-        base::TimeDelta::FromMicroseconds(timestampMicroseconds);
+        base::TimeTicks() + base::Microseconds(timestampMicroseconds);
     base::trace_event::TraceEventHandle handle =
         TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP(
             phase, category_enabled_flag, name, scope, id, bind_id,
@@ -419,7 +418,7 @@
   base::ThreadPool::PostDelayedTask(
       FROM_HERE, kDefaultTaskTraits,
       base::BindOnce(&v8::Task::Run, std::move(task)),
-      base::TimeDelta::FromSecondsD(delay_in_seconds));
+      base::Seconds(delay_in_seconds));
 }
 
 std::unique_ptr<v8::JobHandle> V8Platform::PostJob(
diff --git a/gpu/command_buffer/client/cmd_buffer_helper.cc b/gpu/command_buffer/client/cmd_buffer_helper.cc
index 620fa65..8813dac 100644
--- a/gpu/command_buffer/client/cmd_buffer_helper.cc
+++ b/gpu/command_buffer/client/cmd_buffer_helper.cc
@@ -208,7 +208,7 @@
 void CommandBufferHelper::PeriodicFlushCheck() {
   base::TimeTicks current_time = base::TimeTicks::Now();
   if (current_time - last_flush_time_ >
-      base::TimeDelta::FromMicroseconds(kPeriodicFlushDelayInMicroseconds)) {
+      base::Microseconds(kPeriodicFlushDelayInMicroseconds)) {
     Flush();
   }
 }
diff --git a/gpu/command_buffer/service/dawn_platform.cc b/gpu/command_buffer/service/dawn_platform.cc
index 30143aa..773b3d3 100644
--- a/gpu/command_buffer/service/dawn_platform.cc
+++ b/gpu/command_buffer/service/dawn_platform.cc
@@ -104,8 +104,7 @@
     const unsigned char* arg_types,
     const uint64_t* arg_values,
     unsigned char flags) {
-  base::TimeTicks timestamp_tt =
-      base::TimeTicks() + base::TimeDelta::FromSecondsD(timestamp);
+  base::TimeTicks timestamp_tt = base::TimeTicks() + base::Seconds(timestamp);
 
   base::trace_event::TraceArguments args(
       num_args, arg_names, arg_types,
diff --git a/gpu/command_buffer/service/external_vk_image_factory_unittest.cc b/gpu/command_buffer/service/external_vk_image_factory_unittest.cc
index 5ef0a57..20e4c0b 100644
--- a/gpu/command_buffer/service/external_vk_image_factory_unittest.cc
+++ b/gpu/command_buffer/service/external_vk_image_factory_unittest.cc
@@ -383,7 +383,7 @@
         &done);
 
     while (!done) {
-      base::PlatformThread::Sleep(base::TimeDelta::FromMicroseconds(100));
+      base::PlatformThread::Sleep(base::Microseconds(100));
       dawn_device_.Tick();
     }
 
diff --git a/gpu/command_buffer/service/gr_cache_controller.cc b/gpu/command_buffer/service/gr_cache_controller.cc
index a5db158..42a57340 100644
--- a/gpu/command_buffer/service/gr_cache_controller.cc
+++ b/gpu/command_buffer/service/gr_cache_controller.cc
@@ -50,9 +50,8 @@
   purge_gr_cache_cb_.Reset(base::BindOnce(&GrCacheController::PurgeGrCache,
                                           base::Unretained(this),
                                           current_idle_id_));
-  task_runner_->PostDelayedTask(
-      FROM_HERE, purge_gr_cache_cb_.callback(),
-      base::TimeDelta::FromSeconds(kIdleCleanupDelaySeconds));
+  task_runner_->PostDelayedTask(FROM_HERE, purge_gr_cache_cb_.callback(),
+                                base::Seconds(kIdleCleanupDelaySeconds));
 }
 
 void GrCacheController::PurgeGrCache(uint64_t idle_id) {
diff --git a/gpu/command_buffer/service/gr_cache_controller_unittest.cc b/gpu/command_buffer/service/gr_cache_controller_unittest.cc
index b583392f..3276a0f 100644
--- a/gpu/command_buffer/service/gr_cache_controller_unittest.cc
+++ b/gpu/command_buffer/service/gr_cache_controller_unittest.cc
@@ -82,7 +82,7 @@
   EXPECT_TRUE(task_runner_->HasPendingTask());
 
   // Fast forward by a second, the task runs and the cache is cleared.
-  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_EQ(gr_context()->getResourceCachePurgeableBytes(), 0u);
 }
 
@@ -109,12 +109,12 @@
 
   // Fast forward by a second, the task runs but since the context was used
   // since the task was posted, the cache is not cleared.
-  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_GT(gr_context()->getResourceCachePurgeableBytes(), 0u);
 
   // Fast forward by another second. Since there is no activity, the cache is
   // cleared.
-  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_EQ(gr_context()->getResourceCachePurgeableBytes(), 0u);
 }
 
diff --git a/gpu/command_buffer/service/gr_shader_cache.cc b/gpu/command_buffer/service/gr_shader_cache.cc
index 5a9912e..bc445ec 100644
--- a/gpu/command_buffer/service/gr_shader_cache.cc
+++ b/gpu/command_buffer/service/gr_shader_cache.cc
@@ -296,8 +296,8 @@
           [](base::Time time) {
             UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
                 "GPU.Vulkan.PipelineCache.StoreDuration",
-                base::Time::Now() - time, base::TimeDelta::FromMicroseconds(1),
-                base::TimeDelta::FromMicroseconds(5000), 50);
+                base::Time::Now() - time, base::Microseconds(1),
+                base::Microseconds(5000), 50);
           },
           base::Time::Now()));
 
diff --git a/gpu/command_buffer/service/scheduler.cc b/gpu/command_buffer/service/scheduler.cc
index 2d8cae1..5d66fb37 100644
--- a/gpu/command_buffer/service/scheduler.cc
+++ b/gpu/command_buffer/service/scheduler.cc
@@ -616,9 +616,8 @@
   base::AutoLock auto_lock(lock_);
   UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
       "GPU.Scheduler.ThreadSuspendedTime",
-      base::TimeTicks::Now() - run_next_task_scheduled_,
-      base::TimeDelta::FromMicroseconds(10), base::TimeDelta::FromSeconds(30),
-      100);
+      base::TimeTicks::Now() - run_next_task_scheduled_, base::Microseconds(10),
+      base::Seconds(30), 100);
   auto* task_runner = base::ThreadTaskRunnerHandle::Get().get();
 
   SchedulingState state;
@@ -645,15 +644,13 @@
 
   UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
       "GPU.Scheduler.TaskDependencyTime",
-      sequence->FrontTaskWaitingDependencyDelta(),
-      base::TimeDelta::FromMicroseconds(10), base::TimeDelta::FromSeconds(30),
-      100);
+      sequence->FrontTaskWaitingDependencyDelta(), base::Microseconds(10),
+      base::Seconds(30), 100);
 
   UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
       "GPU.Scheduler.TaskSchedulingDelayTime",
-      sequence->FrontTaskSchedulingDelay(),
-      base::TimeDelta::FromMicroseconds(10), base::TimeDelta::FromSeconds(30),
-      100);
+      sequence->FrontTaskSchedulingDelay(), base::Microseconds(10),
+      base::Seconds(30), 100);
 
   base::OnceClosure closure;
   uint32_t order_num = sequence->BeginTask(&closure);
@@ -708,9 +705,8 @@
   }
 
   UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
-      "GPU.Scheduler.RunTaskTime", task_timer.Elapsed(),
-      base::TimeDelta::FromMicroseconds(10), base::TimeDelta::FromSeconds(30),
-      100);
+      "GPU.Scheduler.RunTaskTime", task_timer.Elapsed(), base::Microseconds(10),
+      base::Seconds(30), 100);
 
   // Avoid scheduling another RunNextTask if we're done with all tasks.
   auto& scheduling_queue = RebuildSchedulingQueueIfNeeded(task_runner);
diff --git a/gpu/command_buffer/service/shared_context_state.cc b/gpu/command_buffer/service/shared_context_state.cc
index a4c3808..a747f133 100644
--- a/gpu/command_buffer/service/shared_context_state.cc
+++ b/gpu/command_buffer/service/shared_context_state.cc
@@ -820,8 +820,7 @@
   }
   // Checking the reset status is expensive on some OS/drivers
   // (https://crbug.com/1090232). Rate limit it.
-  constexpr base::TimeDelta kMinCheckDelay =
-      base::TimeDelta::FromMilliseconds(5);
+  constexpr base::TimeDelta kMinCheckDelay = base::Milliseconds(5);
   base::Time now = base::Time::Now();
   if (!disable_check_reset_status_throttling_for_test_ &&
       now < last_gl_check_graphics_reset_status_ + kMinCheckDelay) {
diff --git a/gpu/command_buffer/service/shared_image_manager.cc b/gpu/command_buffer/service/shared_image_manager.cc
index d02ec31..d0018c3 100644
--- a/gpu/command_buffer/service/shared_image_manager.cc
+++ b/gpu/command_buffer/service/shared_image_manager.cc
@@ -61,9 +61,8 @@
     if (manager->is_thread_safe()) {
       UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
           "GPU.SharedImageManager.TimeToAcquireLock",
-          base::TimeTicks::Now() - start_time_,
-          base::TimeDelta::FromMicroseconds(1), base::TimeDelta::FromSeconds(1),
-          50);
+          base::TimeTicks::Now() - start_time_, base::Microseconds(1),
+          base::Seconds(1), 50);
     }
   }
 
diff --git a/gpu/command_buffer/tests/decoder_perftest.cc b/gpu/command_buffer/tests/decoder_perftest.cc
index 97ded0c..d3f3ebe 100644
--- a/gpu/command_buffer/tests/decoder_perftest.cc
+++ b/gpu/command_buffer/tests/decoder_perftest.cc
@@ -384,7 +384,7 @@
     if (warmup_) {
       warmup_ = false;
       if (for_linux_perf_)
-        base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(1));
+        base::PlatformThread::Sleep(base::Seconds(1));
       else
         time = base::TimeTicks::Now();
     } else if (!for_linux_perf_) {
diff --git a/gpu/command_buffer/tests/gl_helper_benchmark.cc b/gpu/command_buffer/tests/gl_helper_benchmark.cc
index 86325de..e1d65d3 100644
--- a/gpu/command_buffer/tests/gl_helper_benchmark.cc
+++ b/gpu/command_buffer/tests/gl_helper_benchmark.cc
@@ -192,7 +192,7 @@
           if (iterations > 2000) {
             break;
           }
-          if ((end_time - start_time) > base::TimeDelta::FromSeconds(1)) {
+          if ((end_time - start_time) > base::Seconds(1)) {
             break;
           }
         }
diff --git a/gpu/command_buffer/tests/gl_query_unittest.cc b/gpu/command_buffer/tests/gl_query_unittest.cc
index d3c5793..11529c5 100644
--- a/gpu/command_buffer/tests/gl_query_unittest.cc
+++ b/gpu/command_buffer/tests/gl_query_unittest.cc
@@ -117,8 +117,7 @@
   glBeginQueryEXT(GL_LATENCY_QUERY_CHROMIUM, query);
   // Usually, we want to measure gpu-side latency, but we fake it by
   // adding client side latency for our test because it's easier.
-  base::PlatformThread::Sleep(
-      base::TimeDelta::FromMicroseconds(kExpectedLatencyMicroseconds));
+  base::PlatformThread::Sleep(base::Microseconds(kExpectedLatencyMicroseconds));
   glEndQueryEXT(GL_LATENCY_QUERY_CHROMIUM);
 
   glFinish();
diff --git a/gpu/command_buffer/tests/gl_readback_unittest.cc b/gpu/command_buffer/tests/gl_readback_unittest.cc
index af4c4c421..7320a81 100644
--- a/gpu/command_buffer/tests/gl_readback_unittest.cc
+++ b/gpu/command_buffer/tests/gl_readback_unittest.cc
@@ -41,7 +41,7 @@
           FROM_HERE,
           base::BindOnce(&GLReadbackTest::WaitForQueryCallback,
                          base::Unretained(this), q, std::move(cb)),
-          base::TimeDelta::FromMilliseconds(3));
+          base::Milliseconds(3));
     }
   }
 
diff --git a/gpu/ipc/client/command_buffer_proxy_impl.cc b/gpu/ipc/client/command_buffer_proxy_impl.cc
index 5721b40..58aea88d8 100644
--- a/gpu/ipc/client/command_buffer_proxy_impl.cc
+++ b/gpu/ipc/client/command_buffer_proxy_impl.cc
@@ -481,9 +481,8 @@
       elapsed_timer.Elapsed().InMicroseconds());
 
   UMA_HISTOGRAM_CUSTOM_TIMES("GPU.EnsureWorkVisibleDurationLowRes",
-                             elapsed_timer.Elapsed(),
-                             base::TimeDelta::FromMilliseconds(1),
-                             base::TimeDelta::FromSeconds(5), 100);
+                             elapsed_timer.Elapsed(), base::Milliseconds(1),
+                             base::Seconds(5), 100);
 }
 
 gpu::CommandBufferNamespace CommandBufferProxyImpl::GetNamespaceID() const {
diff --git a/gpu/ipc/common/gpu_watchdog_timeout.h b/gpu/ipc/common/gpu_watchdog_timeout.h
index 53b41c1..01a80fa 100644
--- a/gpu/ipc/common/gpu_watchdog_timeout.h
+++ b/gpu/ipc/common/gpu_watchdog_timeout.h
@@ -15,17 +15,13 @@
 // launched.
 
 #if defined(CYGPROFILE_INSTRUMENTATION)
-constexpr base::TimeDelta kGpuWatchdogTimeout =
-    base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kGpuWatchdogTimeout = base::Seconds(30);
 #elif defined(OS_MAC)
-constexpr base::TimeDelta kGpuWatchdogTimeout =
-    base::TimeDelta::FromSeconds(25);
+constexpr base::TimeDelta kGpuWatchdogTimeout = base::Seconds(25);
 #elif defined(OS_WIN)
-constexpr base::TimeDelta kGpuWatchdogTimeout =
-    base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kGpuWatchdogTimeout = base::Seconds(30);
 #else
-constexpr base::TimeDelta kGpuWatchdogTimeout =
-    base::TimeDelta::FromSeconds(15);
+constexpr base::TimeDelta kGpuWatchdogTimeout = base::Seconds(15);
 #endif
 
 // It usually takes longer to finish a GPU task when the system just resumes
diff --git a/gpu/ipc/gpu_in_process_thread_service.cc b/gpu/ipc/gpu_in_process_thread_service.cc
index 2d71838..faa4464c4 100644
--- a/gpu/ipc/gpu_in_process_thread_service.cc
+++ b/gpu/ipc/gpu_in_process_thread_service.cc
@@ -62,7 +62,7 @@
 
 void GpuInProcessThreadService::ScheduleDelayedWork(base::OnceClosure task) {
   task_runner_->PostDelayedTask(FROM_HERE, std::move(task),
-                                base::TimeDelta::FromMilliseconds(2));
+                                base::Milliseconds(2));
 }
 
 void GpuInProcessThreadService::PostNonNestableToClient(
diff --git a/gpu/ipc/service/command_buffer_stub.cc b/gpu/ipc/service/command_buffer_stub.cc
index 37eb5ffd..47ebdec 100644
--- a/gpu/ipc/service/command_buffer_stub.cc
+++ b/gpu/ipc/service/command_buffer_stub.cc
@@ -208,7 +208,7 @@
       base::TimeDelta time_since_idle =
           base::TimeTicks::Now() - last_idle_time_;
       base::TimeDelta max_time_since_idle =
-          base::TimeDelta::FromMilliseconds(kMaxTimeSinceIdleMs);
+          base::Milliseconds(kMaxTimeSinceIdleMs);
 
       // Force idle when it's been too long since last time we were idle.
       if (time_since_idle > max_time_since_idle)
@@ -224,8 +224,7 @@
     decoder_context_->PerformPollingWork();
   }
 
-  ScheduleDelayedWork(
-      base::TimeDelta::FromMilliseconds(kHandleMoreWorkPeriodBusyMs));
+  ScheduleDelayedWork(base::Milliseconds(kHandleMoreWorkPeriodBusyMs));
 }
 
 bool CommandBufferStub::HasUnprocessedCommands() {
@@ -767,8 +766,7 @@
   if (have_context_) {
     if (stub_.decoder_context_)
       stub_.decoder_context_->ProcessPendingQueries(/*did_finish=*/false);
-    stub_.ScheduleDelayedWork(
-        base::TimeDelta::FromMilliseconds(kHandleMoreWorkPeriodMs));
+    stub_.ScheduleDelayedWork(base::Milliseconds(kHandleMoreWorkPeriodMs));
   }
 }
 
diff --git a/gpu/ipc/service/dcomp_texture_win.cc b/gpu/ipc/service/dcomp_texture_win.cc
index d352212..49db2447 100644
--- a/gpu/ipc/service/dcomp_texture_win.cc
+++ b/gpu/ipc/service/dcomp_texture_win.cc
@@ -30,7 +30,7 @@
 namespace {
 
 constexpr base::TimeDelta kParentWindowPosPollingPeriod =
-    base::TimeDelta::FromMilliseconds(1000);
+    base::Milliseconds(1000);
 
 std::unique_ptr<ui::ScopedMakeCurrent> MakeCurrent(
     SharedContextState* context_state) {
diff --git a/gpu/ipc/service/gpu_channel_manager.cc b/gpu/ipc/service/gpu_channel_manager.cc
index f05a265..be039dbc 100644
--- a/gpu/ipc/service/gpu_channel_manager.cc
+++ b/gpu/ipc/service/gpu_channel_manager.cc
@@ -646,11 +646,9 @@
   TRACE_EVENT2("gpu", "GpuChannelManager::ScheduleWakeUp", "idle_time",
                (now - last_gpu_access_time_).InMilliseconds(),
                "keep_awake_time", (now - begin_wake_up_time_).InMilliseconds());
-  if (now - last_gpu_access_time_ <
-      base::TimeDelta::FromMilliseconds(kMaxGpuIdleTimeMs))
+  if (now - last_gpu_access_time_ < base::Milliseconds(kMaxGpuIdleTimeMs))
     return;
-  if (now - begin_wake_up_time_ >
-      base::TimeDelta::FromMilliseconds(kMaxKeepAliveTimeMs))
+  if (now - begin_wake_up_time_ > base::Milliseconds(kMaxKeepAliveTimeMs))
     return;
 
   DoWakeUpGpu();
@@ -659,7 +657,7 @@
       FROM_HERE,
       base::BindOnce(&GpuChannelManager::ScheduleWakeUpGpu,
                      weak_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(kMaxGpuIdleTimeMs));
+      base::Milliseconds(kMaxGpuIdleTimeMs));
 }
 
 void GpuChannelManager::DoWakeUpGpu() {
diff --git a/gpu/ipc/service/gpu_watchdog_thread.cc b/gpu/ipc/service/gpu_watchdog_thread.cc
index 80ecb5b..9fb58abe 100644
--- a/gpu/ipc/service/gpu_watchdog_thread.cc
+++ b/gpu/ipc/service/gpu_watchdog_thread.cc
@@ -47,7 +47,7 @@
   if (!timeout_str.empty()) {
     size_t timeout_seconds;
     if (base::StringToSizeT(timeout_str, &timeout_seconds))
-      return base::TimeDelta::FromSeconds(timeout_seconds);
+      return base::Seconds(timeout_seconds);
 
     LOG(WARNING) << "Invalid --" << switches::kGpuWatchdogTimeoutSeconds << ": "
                  << timeout_str;
@@ -57,9 +57,9 @@
   if (base::win::GetVersion() >= base::win::Version::WIN10) {
     int num_of_processors = base::SysInfo::NumberOfProcessors();
     if (num_of_processors > 8)
-      return (kGpuWatchdogTimeout - base::TimeDelta::FromSeconds(10));
+      return (kGpuWatchdogTimeout - base::Seconds(10));
     else if (num_of_processors <= 4)
-      return kGpuWatchdogTimeout + base::TimeDelta::FromSeconds(5);
+      return kGpuWatchdogTimeout + base::Seconds(5);
   }
 #endif
 
@@ -183,7 +183,7 @@
       FROM_HERE,
       base::BindOnce(&GpuWatchdogThread::AddPowerObserver,
                      base::Unretained(this)),
-      base::TimeDelta::FromMilliseconds(kDelayForAddPowerObserverInMs));
+      base::Milliseconds(kDelayForAddPowerObserverInMs));
 }
 
 // Called from the gpu thread in viz::GpuServiceImpl::~GpuServiceImpl().
@@ -314,7 +314,7 @@
     task_runner()->PostDelayedTask(
         FROM_HERE,
         base::BindOnce(&GpuWatchdogThread::AddPowerObserver, weak_ptr_),
-        base::TimeDelta::FromMilliseconds(100));
+        base::Milliseconds(100));
   }
 }
 
@@ -513,8 +513,7 @@
   // OnWatchdogTimeout() calls, the system is considered slow and it's not a GPU
   // hang.
   bool slow_watchdog_thread =
-      (base::Time::Now() - next_on_watchdog_timeout_time_) >=
-      base::TimeDelta::FromSeconds(15);
+      (base::Time::Now() - next_on_watchdog_timeout_time_) >= base::Seconds(15);
 
   // Record this case only when a GPU hang is detected and the thread is slow.
   if (slow_watchdog_thread)
@@ -597,7 +596,7 @@
     int64_t kernel_time_us = bit_cast<int64_t, FILETIME>(kernel_time) / 10;
 
     return base::ThreadTicks() +
-           base::TimeDelta::FromMicroseconds(user_time_us + kernel_time_us);
+           base::Microseconds(user_time_us + kernel_time_us);
   }
 }
 #endif
@@ -732,14 +731,12 @@
 #endif
 
 bool GpuWatchdogThread::WithinOneMinFromPowerResumed() {
-  size_t count = base::ClampFloor<size_t>(base::TimeDelta::FromMinutes(1) /
-                                          watchdog_timeout_);
+  size_t count = base::ClampFloor<size_t>(base::Minutes(1) / watchdog_timeout_);
   return power_resumed_event_ && num_of_timeout_after_power_resume_ <= count;
 }
 
 bool GpuWatchdogThread::WithinOneMinFromForegrounded() {
-  size_t count = base::ClampFloor<size_t>(base::TimeDelta::FromMinutes(1) /
-                                          watchdog_timeout_);
+  size_t count = base::ClampFloor<size_t>(base::Minutes(1) / watchdog_timeout_);
   return foregrounded_event_ && num_of_timeout_after_foregrounded_ <= count;
 }
 
@@ -792,7 +789,7 @@
   task_runner()->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&base::WaitableEvent::Signal, base::Unretained(&event)),
-      base::TimeDelta::FromMilliseconds(kDelayForAddPowerObserverInMs));
+      base::Milliseconds(kDelayForAddPowerObserverInMs));
   event.Wait();
 }
 
diff --git a/gpu/ipc/service/gpu_watchdog_thread_unittest.cc b/gpu/ipc/service/gpu_watchdog_thread_unittest.cc
index ca2006a4..15bcaff 100644
--- a/gpu/ipc/service/gpu_watchdog_thread_unittest.cc
+++ b/gpu/ipc/service/gpu_watchdog_thread_unittest.cc
@@ -17,8 +17,7 @@
 namespace gpu {
 
 namespace {
-constexpr auto kGpuWatchdogTimeoutForTesting =
-    base::TimeDelta::FromMilliseconds(1000);
+constexpr auto kGpuWatchdogTimeoutForTesting = base::Milliseconds(1000);
 
 // This task will run for duration_ms milliseconds.
 void SimpleTask(base::TimeDelta duration) {
@@ -134,13 +133,13 @@
 TEST_F(GpuWatchdogTest, GpuInitializationHang) {
   // GPU init takes longer than timeout.
 #if defined(OS_WIN)
-  SimpleTask(
-      kGpuWatchdogTimeoutForTesting * kInitFactor +
-      kGpuWatchdogTimeoutForTesting * kMaxCountOfMoreGpuThreadTimeAllowed +
-      base::TimeDelta::FromMilliseconds(3000));
+  SimpleTask(kGpuWatchdogTimeoutForTesting * kInitFactor +
+             kGpuWatchdogTimeoutForTesting *
+                 kMaxCountOfMoreGpuThreadTimeAllowed +
+             base::Milliseconds(3000));
 #else
   SimpleTask(kGpuWatchdogTimeoutForTesting * kInitFactor +
-             base::TimeDelta::FromMilliseconds(3000));
+             base::Milliseconds(3000));
 #endif
 
   // Gpu hangs. OnInitComplete() is not called
@@ -152,26 +151,24 @@
 // Normal GPU Initialization and Running Task
 TEST_F(GpuWatchdogTest, GpuInitializationAndRunningTasks) {
   // Assume GPU initialization takes 300 milliseconds.
-  SimpleTask(base::TimeDelta::FromMilliseconds(300));
+  SimpleTask(base::Milliseconds(300));
   watchdog_thread_->OnInitComplete();
 
   // Start running GPU tasks. Watchdog function WillProcessTask(),
   // DidProcessTask() and ReportProgress() are tested.
   task_environment_.GetMainThreadTaskRunner()->PostTask(
-      FROM_HERE,
-      base::BindOnce(&SimpleTask, base::TimeDelta::FromMilliseconds(500)));
+      FROM_HERE, base::BindOnce(&SimpleTask, base::Milliseconds(500)));
   task_environment_.GetMainThreadTaskRunner()->PostTask(
-      FROM_HERE,
-      base::BindOnce(&SimpleTask, base::TimeDelta::FromMilliseconds(500)));
+      FROM_HERE, base::BindOnce(&SimpleTask, base::Milliseconds(500)));
 
   // This long task takes 3000 milliseconds to finish, longer than timeout.
   // But it reports progress every 500 milliseconds
   task_environment_.GetMainThreadTaskRunner()->PostTask(
-      FROM_HERE, base::BindOnce(&GpuWatchdogTest::LongTaskWithReportProgress,
-                                base::Unretained(this),
-                                kGpuWatchdogTimeoutForTesting +
-                                    base::TimeDelta::FromMilliseconds(2000),
-                                base::TimeDelta::FromMilliseconds(500)));
+      FROM_HERE,
+      base::BindOnce(&GpuWatchdogTest::LongTaskWithReportProgress,
+                     base::Unretained(this),
+                     kGpuWatchdogTimeoutForTesting + base::Milliseconds(2000),
+                     base::Milliseconds(500)));
 
   task_environment_.GetMainThreadTaskRunner()->PostTask(FROM_HERE,
                                                         run_loop.QuitClosure());
@@ -194,12 +191,11 @@
       base::BindOnce(&SimpleTask, kGpuWatchdogTimeoutForTesting * 2 +
                                       kGpuWatchdogTimeoutForTesting *
                                           kMaxCountOfMoreGpuThreadTimeAllowed +
-                                      base::TimeDelta::FromMilliseconds(4000)));
+                                      base::Milliseconds(4000)));
 #else
   task_environment_.GetMainThreadTaskRunner()->PostTask(
-      FROM_HERE,
-      base::BindOnce(&SimpleTask, kGpuWatchdogTimeoutForTesting * 2 +
-                                      base::TimeDelta::FromMilliseconds(4000)));
+      FROM_HERE, base::BindOnce(&SimpleTask, kGpuWatchdogTimeoutForTesting * 2 +
+                                                 base::Milliseconds(4000)));
 #endif
 
   task_environment_.GetMainThreadTaskRunner()->PostTask(FROM_HERE,
@@ -217,16 +213,15 @@
 
   // Gpu init (3000 ms) takes longer than timeout (2000 ms).
   SimpleTask(kGpuWatchdogTimeoutForTesting * kInitFactor +
-             base::TimeDelta::FromMilliseconds(1000));
+             base::Milliseconds(1000));
 
   // Report GPU init complete.
   watchdog_thread_->OnInitComplete();
 
   // Run a task that takes longer (3000 milliseconds) than timeout.
   task_environment_.GetMainThreadTaskRunner()->PostTask(
-      FROM_HERE,
-      base::BindOnce(&SimpleTask, kGpuWatchdogTimeoutForTesting * 2 +
-                                      base::TimeDelta::FromMilliseconds(1000)));
+      FROM_HERE, base::BindOnce(&SimpleTask, kGpuWatchdogTimeoutForTesting * 2 +
+                                                 base::Milliseconds(1000)));
   task_environment_.GetMainThreadTaskRunner()->PostTask(FROM_HERE,
                                                         run_loop.QuitClosure());
   run_loop.Run();
@@ -251,18 +246,18 @@
                      /*duration*/ kGpuWatchdogTimeoutForTesting * 2 +
                          kGpuWatchdogTimeoutForTesting *
                              kMaxCountOfMoreGpuThreadTimeAllowed +
-                         base::TimeDelta::FromMilliseconds(4200),
+                         base::Milliseconds(4200),
                      /*time_to_switch_to_foreground*/
-                     base::TimeDelta::FromMilliseconds(200)));
+                     base::Milliseconds(200)));
 #else
   task_environment_.GetMainThreadTaskRunner()->PostTask(
       FROM_HERE,
       base::BindOnce(&GpuWatchdogTest::LongTaskFromBackgroundToForeground,
                      base::Unretained(this),
                      /*duration*/ kGpuWatchdogTimeoutForTesting * 2 +
-                         base::TimeDelta::FromMilliseconds(4200),
+                         base::Milliseconds(4200),
                      /*time_to_switch_to_foreground*/
-                     base::TimeDelta::FromMilliseconds(200)));
+                     base::Milliseconds(200)));
 #endif
 
   task_environment_.GetMainThreadTaskRunner()->PostTask(FROM_HERE,
@@ -277,12 +272,12 @@
 
 TEST_F(GpuWatchdogTest, GpuInitializationPause) {
   // Running for 100 ms in the beginning of GPU init.
-  SimpleTask(base::TimeDelta::FromMilliseconds(100));
+  SimpleTask(base::Milliseconds(100));
   watchdog_thread_->PauseWatchdog();
 
   // The Gpu init continues for another (init timeout + 1000) ms after the pause
   SimpleTask(kGpuWatchdogTimeoutForTesting * kInitFactor +
-             base::TimeDelta::FromMilliseconds(1000));
+             base::Milliseconds(1000));
 
   // No GPU hang is detected when the watchdog is paused.
   bool result = watchdog_thread_->IsGpuHangDetectedForTesting();
@@ -292,13 +287,13 @@
   watchdog_thread_->ResumeWatchdog();
   // The Gpu init continues for (init timeout + 4000) ms.
 #if defined(OS_WIN)
-  SimpleTask(
-      kGpuWatchdogTimeoutForTesting * kInitFactor +
-      kGpuWatchdogTimeoutForTesting * kMaxCountOfMoreGpuThreadTimeAllowed +
-      base::TimeDelta::FromMilliseconds(4000));
+  SimpleTask(kGpuWatchdogTimeoutForTesting * kInitFactor +
+             kGpuWatchdogTimeoutForTesting *
+                 kMaxCountOfMoreGpuThreadTimeAllowed +
+             base::Milliseconds(4000));
 #else
   SimpleTask(kGpuWatchdogTimeoutForTesting * kInitFactor +
-             base::TimeDelta::FromMilliseconds(4000));
+             base::Milliseconds(4000));
 #endif
 
   // A GPU hang should be detected.
@@ -314,9 +309,8 @@
 
   // Run a task that takes longer (5000 milliseconds) than timeout.
   task_environment_.GetMainThreadTaskRunner()->PostTask(
-      FROM_HERE,
-      base::BindOnce(&SimpleTask, kGpuWatchdogTimeoutForTesting * 2 +
-                                      base::TimeDelta::FromMilliseconds(3000)));
+      FROM_HERE, base::BindOnce(&SimpleTask, kGpuWatchdogTimeoutForTesting * 2 +
+                                                 base::Milliseconds(3000)));
   task_environment_.GetMainThreadTaskRunner()->PostTask(FROM_HERE,
                                                         run_loop.QuitClosure());
   run_loop.Run();
@@ -341,18 +335,18 @@
           /*duration*/ kGpuWatchdogTimeoutForTesting * kRestartFactor +
               kGpuWatchdogTimeoutForTesting *
                   kMaxCountOfMoreGpuThreadTimeAllowed +
-              base::TimeDelta::FromMilliseconds(4200),
+              base::Milliseconds(4200),
           /*time_to_power_resume*/
-          base::TimeDelta::FromMilliseconds(200)));
+          base::Milliseconds(200)));
 #else
   task_environment_.GetMainThreadTaskRunner()->PostTask(
       FROM_HERE,
       base::BindOnce(
           &GpuWatchdogPowerTest::LongTaskOnResume, base::Unretained(this),
           /*duration*/ kGpuWatchdogTimeoutForTesting * kRestartFactor +
-              base::TimeDelta::FromMilliseconds(4200),
+              base::Milliseconds(4200),
           /*time_to_power_resume*/
-          base::TimeDelta::FromMilliseconds(200)));
+          base::Milliseconds(200)));
 #endif
 
   task_environment_.GetMainThreadTaskRunner()->PostTask(FROM_HERE,
diff --git a/gpu/ipc/service/image_transport_surface_overlay_mac.mm b/gpu/ipc/service/image_transport_surface_overlay_mac.mm
index 741c16e..c3a7044 100644
--- a/gpu/ipc/service/image_transport_surface_overlay_mac.mm
+++ b/gpu/ipc/service/image_transport_surface_overlay_mac.mm
@@ -189,8 +189,7 @@
       base::Time::kMicrosecondsPerSecond / 60;
   gfx::PresentationFeedback feedback(
       base::TimeTicks::Now(),
-      base::TimeDelta::FromMicroseconds(kRefreshIntervalInMicroseconds),
-      0 /* flags */);
+      base::Microseconds(kRefreshIntervalInMicroseconds), 0 /* flags */);
   base::ThreadTaskRunnerHandle::Get()->PostTask(
       FROM_HERE,
       base::BindOnce(
diff --git a/gpu/ipc/service/pass_through_image_transport_surface.cc b/gpu/ipc/service/pass_through_image_transport_surface.cc
index 8dd5c96..a05d004 100644
--- a/gpu/ipc/service/pass_through_image_transport_surface.cc
+++ b/gpu/ipc/service/pass_through_image_transport_surface.cc
@@ -239,9 +239,9 @@
 
     if (!multiple_surfaces_swapped_) {
       static constexpr base::TimeDelta kTimingMetricsHistogramMin =
-          base::TimeDelta::FromMicroseconds(5);
+          base::Microseconds(5);
       static constexpr base::TimeDelta kTimingMetricsHistogramMax =
-          base::TimeDelta::FromMilliseconds(500);
+          base::Milliseconds(500);
       static constexpr uint32_t kTimingMetricsHistogramBuckets = 50;
 
       base::TimeDelta delta =
diff --git a/gpu/perftests/measurements.cc b/gpu/perftests/measurements.cc
index 1ec3622..0694765 100644
--- a/gpu/perftests/measurements.cc
+++ b/gpu/perftests/measurements.cc
@@ -87,14 +87,14 @@
             wall_time_);  // At least wall_time_ has been set.
 
   if (!base::ThreadTicks::IsSupported()) {
-    cpu_time_ = base::TimeDelta::FromMicroseconds(-1);
+    cpu_time_ = base::Microseconds(-1);
   }
   int64_t gpu_time = -1;
   if (gpu_timer_.get() != nullptr && gpu_timer_->IsAvailable()) {
     gpu_time = gpu_timer_->GetDeltaElapsed();
   }
   return Measurement(metric_basename, wall_time_, cpu_time_,
-                     base::TimeDelta::FromMicroseconds(gpu_time));
+                     base::Microseconds(gpu_time));
 }
 
 MeasurementTimers::~MeasurementTimers() {
diff --git a/gpu/vulkan/vulkan_util.cc b/gpu/vulkan/vulkan_util.cc
index ba94ba50..75b50cc644 100644
--- a/gpu/vulkan/vulkan_util.cc
+++ b/gpu/vulkan/vulkan_util.cc
@@ -128,8 +128,8 @@
       [](base::Time time) {
         UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
             "GPU.Vulkan.PipelineCache.vkCreateGraphicsPipelines",
-            base::Time::Now() - time, base::TimeDelta::FromMicroseconds(100),
-            base::TimeDelta::FromMicroseconds(50000), 50);
+            base::Time::Now() - time, base::Microseconds(100),
+            base::Microseconds(50000), 50);
       },
       base::Time::Now()));
   return vkCreateGraphicsPipelines(device, pipelineCache, createInfoCount,
diff --git a/headless/app/headless_shell.cc b/headless/app/headless_shell.cc
index 866cf2d0..cd69c54f 100644
--- a/headless/app/headless_shell.cc
+++ b/headless/app/headless_shell.cc
@@ -398,7 +398,7 @@
         FROM_HERE,
         base::BindOnce(&HeadlessShell::FetchTimeout,
                        weak_factory_.GetWeakPtr()),
-        base::TimeDelta::FromMilliseconds(timeout_ms));
+        base::Milliseconds(timeout_ms));
   }
   // TODO(skyostil): Implement more features to demonstrate the devtools API.
 }
diff --git a/headless/lib/browser/protocol/headless_handler.cc b/headless/lib/browser/protocol/headless_handler.cc
index bdc42f0..1433e6d 100644
--- a/headless/lib/browser/protocol/headless_handler.cc
+++ b/headless/lib/browser/protocol/headless_handler.cc
@@ -121,8 +121,8 @@
   bool no_display_updates = in_no_display_updates.fromMaybe(false);
 
   if (in_frame_time_ticks.isJust()) {
-    frame_time_ticks = base::TimeTicks() + base::TimeDelta::FromMillisecondsD(
-                                               in_frame_time_ticks.fromJust());
+    frame_time_ticks =
+        base::TimeTicks() + base::Milliseconds(in_frame_time_ticks.fromJust());
   } else {
     frame_time_ticks = base::TimeTicks::Now();
   }
@@ -134,7 +134,7 @@
           Response::InvalidParams("interval has to be greater than 0"));
       return;
     }
-    interval = base::TimeDelta::FromMillisecondsD(interval_double);
+    interval = base::Milliseconds(interval_double);
   } else {
     interval = viz::BeginFrameArgs::DefaultInterval();
   }
diff --git a/ios/chrome/app/app_metrics_app_state_agent.mm b/ios/chrome/app/app_metrics_app_state_agent.mm
index ce7a7df..3bbdb89 100644
--- a/ios/chrome/app/app_metrics_app_state_agent.mm
+++ b/ios/chrome/app/app_metrics_app_state_agent.mm
@@ -114,8 +114,7 @@
 
   UMA_HISTOGRAM_LONG_TIMES("Session.TotalDuration", duration);
   UMA_HISTOGRAM_CUSTOM_TIMES("Session.TotalDurationMax1Day", duration,
-                             base::TimeDelta::FromMilliseconds(1),
-                             base::TimeDelta::FromHours(24), 50);
+                             base::Milliseconds(1), base::Hours(24), 50);
 
   IOSProfileSessionDurationsService* psdService = [self psdService];
   if (psdService) {
diff --git a/ios/chrome/app/application_delegate/app_state.mm b/ios/chrome/app/application_delegate/app_state.mm
index 38f9150..042f2de 100644
--- a/ios/chrome/app/application_delegate/app_state.mm
+++ b/ios/chrome/app/application_delegate/app_state.mm
@@ -373,8 +373,7 @@
   if (EnableSyntheticCrashReportsForUte()) {
     [[PreviousSessionInfo sharedInstance]
         startRecordingMemoryFootprintWithInterval:
-            base::TimeDelta::FromSeconds(
-                kMemoryFootprintRecordingTimeInterval)];
+            base::Seconds(kMemoryFootprintRecordingTimeInterval)];
   }
 }
 
@@ -609,8 +608,7 @@
     // startUpBrowserToStage: method called above.
     [[PreviousSessionInfo sharedInstance]
         startRecordingMemoryFootprintWithInterval:
-            base::TimeDelta::FromSeconds(
-                kMemoryFootprintRecordingTimeInterval)];
+            base::Seconds(kMemoryFootprintRecordingTimeInterval)];
   }
 }
 
diff --git a/ios/chrome/app/application_delegate/metric_kit_subscriber.mm b/ios/chrome/app/application_delegate/metric_kit_subscriber.mm
index 0b060b4..76b8d5c 100644
--- a/ios/chrome/app/application_delegate/metric_kit_subscriber.mm
+++ b/ios/chrome/app/application_delegate/metric_kit_subscriber.mm
@@ -67,10 +67,9 @@
   double value =
       [measurement measurementByConvertingToUnit:NSUnitDuration.seconds]
           .doubleValue;
-  base::UmaHistogramCustomTimes(
-      histogram_name, base::TimeDelta::FromSecondsD(value),
-      base::TimeDelta::FromSeconds(1),
-      base::TimeDelta::FromSeconds(86400 /* secs per day */), 50);
+  base::UmaHistogramCustomTimes(histogram_name, base::Seconds(value),
+                                base::Seconds(1),
+                                base::Seconds(86400 /* secs per day */), 50);
 }
 
 void ReportMemory(const char* histogram_name, NSMeasurement* measurement) {
@@ -246,8 +245,7 @@
   // It should take less than 1 minute to startup.
   // Histogram is defined in millisecond granularity.
   base::HistogramBase* histogramUMA = base::Histogram::FactoryTimeGet(
-      histogramUMAName, base::TimeDelta::FromMilliseconds(1),
-      base::TimeDelta::FromMinutes(1), 50,
+      histogramUMAName, base::Milliseconds(1), base::Minutes(1), 50,
       base::HistogramBase::kUmaTargetedHistogramFlag);
   MXHistogramBucket* bucket;
   NSEnumerator* enumerator = [histogram bucketEnumerator];
diff --git a/ios/chrome/app/application_delegate/metric_kit_subscriber_unittest.mm b/ios/chrome/app/application_delegate/metric_kit_subscriber_unittest.mm
index a6f05876..8c04ea6 100644
--- a/ios/chrome/app/application_delegate/metric_kit_subscriber_unittest.mm
+++ b/ios/chrome/app/application_delegate/metric_kit_subscriber_unittest.mm
@@ -99,9 +99,9 @@
   NSArray* array = @[ mock_report ];
   [[MetricKitSubscriber sharedInstance] didReceiveMetricPayloads:array];
   tester.ExpectUniqueTimeSample("IOS.MetricKit.ForegroundTimePerDay",
-                                base::TimeDelta::FromSeconds(1), 1);
+                                base::Seconds(1), 1);
   tester.ExpectUniqueTimeSample("IOS.MetricKit.BackgroundTimePerDay",
-                                base::TimeDelta::FromSeconds(2), 1);
+                                base::Seconds(2), 1);
   tester.ExpectUniqueSample("IOS.MetricKit.PeakMemoryUsage", 3, 1);
   tester.ExpectUniqueSample("IOS.MetricKit.AverageSuspendedMemory", 4, 1);
 
diff --git a/ios/chrome/app/application_delegate/metrics_mediator.mm b/ios/chrome/app/application_delegate/metrics_mediator.mm
index 6c304d12..df736b76 100644
--- a/ios/chrome/app/application_delegate/metrics_mediator.mm
+++ b/ios/chrome/app/application_delegate/metrics_mediator.mm
@@ -81,7 +81,7 @@
   const NSTimeInterval time_since_1970 =
       time.tv_sec + (time.tv_usec / (double)USEC_PER_SEC);
   NSDate* date = [NSDate dateWithTimeIntervalSince1970:time_since_1970];
-  return base::TimeDelta::FromSecondsD(-date.timeIntervalSinceNow);
+  return base::Seconds(-date.timeIntervalSinceNow);
 }
 }  // namespace
 
diff --git a/ios/chrome/app/main_controller.mm b/ios/chrome/app/main_controller.mm
index 2bb80c5..4d8afe5 100644
--- a/ios/chrome/app/main_controller.mm
+++ b/ios/chrome/app/main_controller.mm
@@ -724,7 +724,7 @@
 
 - (void)activateFirstUserActionRecorderWithBackgroundTime:
     (NSTimeInterval)backgroundTime {
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(backgroundTime);
+  base::TimeDelta delta = base::Seconds(backgroundTime);
   _firstUserActionRecorder.reset(new FirstUserActionRecorder(delta));
 }
 
@@ -1080,9 +1080,8 @@
     // performance.
     ExternalFileRemoverFactory::GetForBrowserState(
         self.appState.mainBrowserState)
-        ->RemoveAfterDelay(
-            base::TimeDelta::FromSeconds(kExternalFilesCleanupDelaySeconds),
-            base::OnceClosure());
+        ->RemoveAfterDelay(base::Seconds(kExternalFilesCleanupDelaySeconds),
+                           base::OnceClosure());
   }
 }
 
diff --git a/ios/chrome/app/memory_monitor.mm b/ios/chrome/app/memory_monitor.mm
index e4edcdc..fec4714 100644
--- a/ios/chrome/app/memory_monitor.mm
+++ b/ios/chrome/app/memory_monitor.mm
@@ -60,7 +60,7 @@
   base::ThreadPool::PostDelayedTask(
       FROM_HERE, {base::MayBlock(), base::TaskPriority::BEST_EFFORT},
       base::BindOnce(&AsynchronousFreeMemoryMonitor),
-      base::TimeDelta::FromSeconds(kMemoryMonitorDelayInSeconds));
+      base::Seconds(kMemoryMonitorDelayInSeconds));
 }
 }  // namespace
 
diff --git a/ios/chrome/app/spotlight/bookmarks_spotlight_manager.mm b/ios/chrome/app/spotlight/bookmarks_spotlight_manager.mm
index a761ef2..2528d9f 100644
--- a/ios/chrome/app/spotlight/bookmarks_spotlight_manager.mm
+++ b/ios/chrome/app/spotlight/bookmarks_spotlight_manager.mm
@@ -333,9 +333,8 @@
   NSDate* endOfReindexing = [NSDate date];
   NSTimeInterval indexingDuration =
       [endOfReindexing timeIntervalSinceDate:startOfReindexing];
-  UMA_HISTOGRAM_TIMES(
-      "IOS.Spotlight.BookmarksIndexingDuration",
-      base::TimeDelta::FromMillisecondsD(1000 * indexingDuration));
+  UMA_HISTOGRAM_TIMES("IOS.Spotlight.BookmarksIndexingDuration",
+                      base::Milliseconds(1000 * indexingDuration));
   UMA_HISTOGRAM_COUNTS_1000("IOS.Spotlight.BookmarksInitialIndexSize",
                             [self pendingLargeIconTasksCount]);
   [[NSUserDefaults standardUserDefaults]
diff --git a/ios/chrome/browser/app_launcher/app_launching_state_unittest.mm b/ios/chrome/browser/app_launcher/app_launching_state_unittest.mm
index 137a69d5..6d9c564 100644
--- a/ios/chrome/browser/app_launcher/app_launching_state_unittest.mm
+++ b/ios/chrome/browser/app_launcher/app_launching_state_unittest.mm
@@ -34,7 +34,7 @@
   EXPECT_EQ(3, state.consecutiveLaunchesCount);
   // Wait for more than |maxSecondsBetweenLaunches|.
   base::test::ios::SpinRunLoopWithMinDelay(
-      base::TimeDelta::FromSecondsD(maxSecondsBetweenLaunches + 0.1));
+      base::Seconds(maxSecondsBetweenLaunches + 0.1));
   // consecutiveLaunchesCount should reset.
   [state updateWithLaunchRequest];
   EXPECT_EQ(1, state.consecutiveLaunchesCount);
diff --git a/ios/chrome/browser/autofill/form_input_egtest.mm b/ios/chrome/browser/autofill/form_input_egtest.mm
index 66945fa..8a8a2154 100644
--- a/ios/chrome/browser/autofill/form_input_egtest.mm
+++ b/ios/chrome/browser/autofill/form_input_egtest.mm
@@ -108,7 +108,7 @@
     };
     GREYAssert(WaitUntilConditionOrTimeout(kWaitForUIElementTimeout, condition),
                description);
-    base::test::ios::SpinRunLoopWithMinDelay(base::TimeDelta::FromSeconds(1));
+    base::test::ios::SpinRunLoopWithMinDelay(base::Seconds(1));
 
     // Verifies that the taped element is focused.
     AssertElementIsFocused(kFormElementId1);
diff --git a/ios/chrome/browser/autofill/manual_fill/passwords_fetcher_unittest.mm b/ios/chrome/browser/autofill/manual_fill/passwords_fetcher_unittest.mm
index cad2925c..fff93b1 100644
--- a/ios/chrome/browser/autofill/manual_fill/passwords_fetcher_unittest.mm
+++ b/ios/chrome/browser/autofill/manual_fill/passwords_fetcher_unittest.mm
@@ -162,7 +162,7 @@
       ^bool {
         return passwordFetcherDelegate.passwordNumber > 0;
       },
-      true, base::TimeDelta::FromSeconds(1000));
+      true, base::Seconds(1000));
 
   EXPECT_EQ(passwordFetcherDelegate.passwordNumber, 1u);
   EXPECT_TRUE(passwordFetcher);
@@ -185,7 +185,7 @@
       ^bool {
         return passwordFetcherDelegate.passwordNumber > 0;
       },
-      true, base::TimeDelta::FromSeconds(1000));
+      true, base::Seconds(1000));
 
   EXPECT_EQ(passwordFetcherDelegate.passwordNumber, 2u);
   EXPECT_TRUE(passwordFetcher);
@@ -208,7 +208,7 @@
       ^bool {
         return passwordFetcherDelegate.passwordNumber > 0;
       },
-      true, base::TimeDelta::FromSeconds(1000));
+      true, base::Seconds(1000));
 
   EXPECT_EQ(passwordFetcherDelegate.passwordNumber, 1u);
   EXPECT_TRUE(passwordFetcher);
@@ -233,7 +233,7 @@
       ^bool {
         return passwordFetcherDelegate.passwordNumber > 0;
       },
-      true, base::TimeDelta::FromSeconds(1000));
+      true, base::Seconds(1000));
 
   EXPECT_EQ(passwordFetcherDelegate.passwordNumber, 1u);
   EXPECT_TRUE(passwordFetcher);
@@ -255,7 +255,7 @@
       ^bool {
         return passwordFetcherDelegate.passwordNumber > 0;
       },
-      true, base::TimeDelta::FromSeconds(1000));
+      true, base::Seconds(1000));
   EXPECT_EQ(passwordFetcherDelegate.passwordNumber, 1u);
 
   GetPasswordStore()->RemoveLogin(Form1());
@@ -264,7 +264,7 @@
       ^bool {
         return passwordFetcherDelegate.passwordNumber == 0;
       },
-      true, base::TimeDelta::FromSeconds(1000));
+      true, base::Seconds(1000));
   EXPECT_EQ(passwordFetcherDelegate.passwordNumber, 0u);
   EXPECT_TRUE(passwordFetcher);
 }
@@ -286,7 +286,7 @@
       ^bool {
         return passwordFetcherDelegate.passwordNumber > 0;
       },
-      true, base::TimeDelta::FromSeconds(1000));
+      true, base::Seconds(1000));
 
   EXPECT_EQ(passwordFetcherDelegate.passwordNumber, 1u);
   EXPECT_TRUE(passwordFetcher);
diff --git a/ios/chrome/browser/browser_state/chrome_browser_state_manager_impl.cc b/ios/chrome/browser/browser_state/chrome_browser_state_manager_impl.cc
index 637a120a..ed5c0f0 100644
--- a/ios/chrome/browser/browser_state/chrome_browser_state_manager_impl.cc
+++ b/ios/chrome/browser/browser_state/chrome_browser_state_manager_impl.cc
@@ -193,8 +193,7 @@
       FROM_HERE,
       {base::MayBlock(), base::TaskPriority::BEST_EFFORT,
        base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN},
-      base::BindOnce(&BrowserStateSizeTask, path),
-      base::TimeDelta::FromSeconds(112));
+      base::BindOnce(&BrowserStateSizeTask, path), base::Seconds(112));
 
   LogNumberOfBrowserStates(
       GetApplicationContext()->GetChromeBrowserStateManager());
diff --git a/ios/chrome/browser/browser_state/off_the_record_chrome_browser_state_impl.cc b/ios/chrome/browser/browser_state/off_the_record_chrome_browser_state_impl.cc
index c526d118..259db2f6 100644
--- a/ios/chrome/browser/browser_state/off_the_record_chrome_browser_state_impl.cc
+++ b/ios/chrome/browser/browser_state/off_the_record_chrome_browser_state_impl.cc
@@ -48,9 +48,9 @@
     pref_proxy_config_tracker_->DetachFromPrefService();
 
   const base::TimeDelta duration = base::Time::Now() - start_time_;
-  base::UmaHistogramCustomCounts(
-      "Profile.Incognito.Lifetime", duration.InMinutes(), 1,
-      base::TimeDelta::FromDays(28).InMinutes(), 100);
+  base::UmaHistogramCustomCounts("Profile.Incognito.Lifetime",
+                                 duration.InMinutes(), 1,
+                                 base::Days(28).InMinutes(), 100);
 
   // Clears any data the network stack contains that may be related to the
   // OTR session.
diff --git a/ios/chrome/browser/browsing_data/browsing_data_remover_impl.mm b/ios/chrome/browser/browsing_data/browsing_data_remover_impl.mm
index 49041c7..8f2a451 100644
--- a/ios/chrome/browser/browsing_data/browsing_data_remover_impl.mm
+++ b/ios/chrome/browser/browsing_data/browsing_data_remover_impl.mm
@@ -484,8 +484,7 @@
         ExternalFileRemoverFactory::GetForBrowserState(browser_state_);
     if (external_file_remover) {
       external_file_remover->RemoveAfterDelay(
-          base::TimeDelta::FromSeconds(0),
-          CreatePendingTaskCompletionClosure());
+          base::Seconds(0), CreatePendingTaskCompletionClosure());
     }
   }
 
diff --git a/ios/chrome/browser/crash_report/breadcrumbs/breadcrumb_persistent_storage_manager_unittest.mm b/ios/chrome/browser/crash_report/breadcrumbs/breadcrumb_persistent_storage_manager_unittest.mm
index e7bddd9..0a50a3ff 100644
--- a/ios/chrome/browser/crash_report/breadcrumbs/breadcrumb_persistent_storage_manager_unittest.mm
+++ b/ios/chrome/browser/crash_report/breadcrumbs/breadcrumb_persistent_storage_manager_unittest.mm
@@ -131,7 +131,7 @@
   breadcrumb_manager_service_->AddEvent("event");
 
   // Advance clock to trigger writing final events.
-  task_env_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_env_.FastForwardBy(base::Minutes(1));
 
   __block bool events_received = false;
   persistent_storage_->GetStoredEvents(
@@ -155,13 +155,13 @@
   while (event_count < kEventCountTooManyForPersisting) {
     event = base::StringPrintf("event %lu", event_count);
     breadcrumb_manager_service_->AddEvent(event);
-    task_env_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+    task_env_.FastForwardBy(base::Milliseconds(1));
 
     event_count++;
   }
 
   // Advance clock to trigger writing final events.
-  task_env_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_env_.FastForwardBy(base::Minutes(1));
 
   __block bool events_received = false;
   persistent_storage_->GetStoredEvents(
@@ -186,13 +186,13 @@
   while (event_count < kEventCountTooManyForPersisting) {
     event = base::StringPrintf("event %lu", event_count);
     breadcrumb_manager_service_->AddEvent(event);
-    task_env_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    task_env_.FastForwardBy(base::Seconds(1));
 
     event_count++;
   }
 
   // Advance clock to trigger writing final events.
-  task_env_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_env_.FastForwardBy(base::Minutes(1));
 
   __block bool events_received = false;
   persistent_storage_->GetStoredEvents(
@@ -224,12 +224,12 @@
     event_counter++;
 
     if (event_counter % kNumEventsPerBucket == 0) {
-      task_env_.FastForwardBy(base::TimeDelta::FromHours(1));
+      task_env_.FastForwardBy(base::Hours(1));
     }
   }
 
   // Advance clock to trigger writing final events.
-  task_env_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+  task_env_.FastForwardBy(base::Minutes(1));
 
   __block bool events_received = false;
   persistent_storage_->GetStoredEvents(
diff --git a/ios/chrome/browser/crash_report/main_thread_freeze_detector.mm b/ios/chrome/browser/crash_report/main_thread_freeze_detector.mm
index 472d4a5..59cb59fd 100644
--- a/ios/chrome/browser/crash_report/main_thread_freeze_detector.mm
+++ b/ios/chrome/browser/crash_report/main_thread_freeze_detector.mm
@@ -153,7 +153,7 @@
   static dispatch_once_t onceToken;
   dispatch_once(&onceToken, ^{
     if (_lastSessionEndedFrozen) {
-      LogRecoveryTime(base::TimeDelta::FromSeconds(0));
+      LogRecoveryTime(base::Seconds(0));
     }
   });
   _enabled = enabled;
@@ -191,7 +191,7 @@
     // Remove information about the last session info.
     [[NSUserDefaults standardUserDefaults]
         removeObjectForKey:@(kNsUserDefaultKeyLastSessionInfo)];
-    LogRecoveryTime(base::TimeDelta::FromSecondsD(
+    LogRecoveryTime(base::Seconds(
         [[NSDate date] timeIntervalSinceDate:oldLastSeenMainThread]));
     // Restart the freeze detection.
     dispatch_async(_freezeDetectionQueue, ^{
diff --git a/ios/chrome/browser/crash_report/main_thread_freeze_detector_unittest.mm b/ios/chrome/browser/crash_report/main_thread_freeze_detector_unittest.mm
index 38128b0f..20de277 100644
--- a/ios/chrome/browser/crash_report/main_thread_freeze_detector_unittest.mm
+++ b/ios/chrome/browser/crash_report/main_thread_freeze_detector_unittest.mm
@@ -34,8 +34,7 @@
       objectForKey:NSFileModificationDate];
   // Spin the run loop so, if the move below uses an updated modification date,
   // |date2| will not match (which would be a test failure).
-  base::test::ios::SpinRunLoopWithMinDelay(
-      base::TimeDelta::FromMilliseconds(40));
+  base::test::ios::SpinRunLoopWithMinDelay(base::Milliseconds(40));
   ASSERT_TRUE([file_manager moveItemAtPath:original_file
                                     toPath:new_file
                                      error:nil]);
diff --git a/ios/chrome/browser/external_files/external_file_remover_impl.mm b/ios/chrome/browser/external_files/external_file_remover_impl.mm
index ef0bc8e..748a23e 100644
--- a/ios/chrome/browser/external_files/external_file_remover_impl.mm
+++ b/ios/chrome/browser/external_files/external_file_remover_impl.mm
@@ -162,7 +162,7 @@
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   base::ScopedClosureRunner closure_runner =
       base::ScopedClosureRunner(std::move(callback));
-  bool remove_all_files = delay == base::TimeDelta::FromSeconds(0);
+  bool remove_all_files = delay == base::Seconds(0);
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&ExternalFileRemoverImpl::RemoveFiles,
diff --git a/ios/chrome/browser/infobars/confirm_infobar_metrics_recorder.mm b/ios/chrome/browser/infobars/confirm_infobar_metrics_recorder.mm
index fff8619..7ab5d2c7 100644
--- a/ios/chrome/browser/infobars/confirm_infobar_metrics_recorder.mm
+++ b/ios/chrome/browser/infobars/confirm_infobar_metrics_recorder.mm
@@ -36,7 +36,7 @@
 
 + (void)recordConfirmAcceptTime:(NSTimeInterval)duration
           forInfobarConfirmType:(InfobarConfirmType)infobarConfirmType {
-  base::TimeDelta timeDelta = base::TimeDelta::FromSecondsD(duration);
+  base::TimeDelta timeDelta = base::Seconds(duration);
   switch (infobarConfirmType) {
     case InfobarConfirmType::kInfobarConfirmTypeRestore:
       UMA_HISTOGRAM_MEDIUM_TIMES(kInfobarTypeRestoreAcceptTimeHistogram,
diff --git a/ios/chrome/browser/infobars/infobar_metrics_recorder.mm b/ios/chrome/browser/infobars/infobar_metrics_recorder.mm
index a913dccb..a8fd0a4 100644
--- a/ios/chrome/browser/infobars/infobar_metrics_recorder.mm
+++ b/ios/chrome/browser/infobars/infobar_metrics_recorder.mm
@@ -194,7 +194,7 @@
 }
 
 - (void)recordBannerOnScreenDuration:(double)duration {
-  base::TimeDelta timeDelta = base::TimeDelta::FromSecondsD(duration);
+  base::TimeDelta timeDelta = base::Seconds(duration);
   UMA_HISTOGRAM_MEDIUM_TIMES("Mobile.Messages.Banner.OnScreenTime", timeDelta);
 }
 
diff --git a/ios/chrome/browser/install_time_util_unittest.mm b/ios/chrome/browser/install_time_util_unittest.mm
index 945d154..6b9b5e88 100644
--- a/ios/chrome/browser/install_time_util_unittest.mm
+++ b/ios/chrome/browser/install_time_util_unittest.mm
@@ -16,7 +16,7 @@
 TEST_F(InstallTimeUtilTest, ComputeInstallationTime) {
   const base::Time null_time = base::Time();
   const base::Time now = base::Time::Now();
-  const base::Time one_month_ago = now - base::TimeDelta::FromDays(30);
+  const base::Time one_month_ago = now - base::Days(30);
   const base::Time sentinel =
       base::Time::FromTimeT(install_time_util::kUnknownInstallDate);
 
diff --git a/ios/chrome/browser/ios_chrome_main_parts.mm b/ios/chrome/browser/ios_chrome_main_parts.mm
index d82bee5..a8529bd 100644
--- a/ios/chrome/browser/ios_chrome_main_parts.mm
+++ b/ios/chrome/browser/ios_chrome_main_parts.mm
@@ -302,7 +302,7 @@
   rlz::RLZTracker::SetRlzDelegate(base::WrapUnique(new RLZTrackerDelegateImpl));
   rlz::RLZTracker::InitRlzDelayed(
       FirstRun::IsChromeFirstRun(), ping_delay < 0,
-      base::TimeDelta::FromMilliseconds(abs(ping_delay)),
+      base::Milliseconds(abs(ping_delay)),
       RLZTrackerDelegateImpl::IsGoogleDefaultSearch(last_used_browser_state),
       RLZTrackerDelegateImpl::IsGoogleHomepage(last_used_browser_state),
       RLZTrackerDelegateImpl::IsGoogleInStartpages(last_used_browser_state));
diff --git a/ios/chrome/browser/ios_thread_profiler.cc b/ios/chrome/browser/ios_thread_profiler.cc
index 741ed10..c1a16f31 100644
--- a/ios/chrome/browser/ios_thread_profiler.cc
+++ b/ios/chrome/browser/ios_thread_profiler.cc
@@ -179,9 +179,9 @@
 base::StackSamplingProfiler::SamplingParams
 IOSThreadProfiler::GetSamplingParams() {
   base::StackSamplingProfiler::SamplingParams params;
-  params.initial_delay = base::TimeDelta::FromMilliseconds(0);
-  const base::TimeDelta duration = base::TimeDelta::FromSeconds(30);
-  params.sampling_interval = base::TimeDelta::FromMilliseconds(100);
+  params.initial_delay = base::Milliseconds(0);
+  const base::TimeDelta duration = base::Seconds(30);
+  params.sampling_interval = base::Milliseconds(100);
   params.samples_per_profile = duration / params.sampling_interval;
 
   return params;
diff --git a/ios/chrome/browser/link_to_text/link_to_text_tab_helper.mm b/ios/chrome/browser/link_to_text/link_to_text_tab_helper.mm
index a111d75..16f62b65 100644
--- a/ios/chrome/browser/link_to_text/link_to_text_tab_helper.mm
+++ b/ios/chrome/browser/link_to_text/link_to_text_tab_helper.mm
@@ -153,8 +153,7 @@
           weak_ptr->OnJavaScriptResponseReceived(callback, response);
         }
       }),
-      base::TimeDelta::FromMilliseconds(
-          link_to_text::kLinkGenerationTimeoutInMs));
+      base::Milliseconds(link_to_text::kLinkGenerationTimeoutInMs));
 }
 
 void LinkToTextTabHelper::OnJavaScriptResponseReceived(
diff --git a/ios/chrome/browser/link_to_text/link_to_text_utils_unittest.mm b/ios/chrome/browser/link_to_text/link_to_text_utils_unittest.mm
index ba5a4545..edf89eb 100644
--- a/ios/chrome/browser/link_to_text/link_to_text_utils_unittest.mm
+++ b/ios/chrome/browser/link_to_text/link_to_text_utils_unittest.mm
@@ -96,12 +96,12 @@
 // Tests that IsLinkGenerationTimeout returns the right values based on
 // different input values.
 TEST_F(LinkToTextUtilsTest, IsLinkGenerationTimeout) {
+  EXPECT_TRUE(
+      IsLinkGenerationTimeout(base::Milliseconds(kLinkGenerationTimeoutInMs)));
   EXPECT_TRUE(IsLinkGenerationTimeout(
-      base::TimeDelta::FromMilliseconds(kLinkGenerationTimeoutInMs)));
-  EXPECT_TRUE(IsLinkGenerationTimeout(
-      base::TimeDelta::FromMilliseconds(kLinkGenerationTimeoutInMs + 1)));
+      base::Milliseconds(kLinkGenerationTimeoutInMs + 1)));
   EXPECT_FALSE(IsLinkGenerationTimeout(
-      base::TimeDelta::FromMilliseconds(kLinkGenerationTimeoutInMs - 1)));
+      base::Milliseconds(kLinkGenerationTimeoutInMs - 1)));
 }
 
 }  // namespace link_to_text
diff --git a/ios/chrome/browser/metrics/chrome_browser_state_client_unittest.mm b/ios/chrome/browser/metrics/chrome_browser_state_client_unittest.mm
index dd35e1e..aa2862f0 100644
--- a/ios/chrome/browser/metrics/chrome_browser_state_client_unittest.mm
+++ b/ios/chrome/browser/metrics/chrome_browser_state_client_unittest.mm
@@ -39,8 +39,8 @@
 
 TEST_F(ChromeBrowserStateClientTest, GetNetworkTime) {
   // Set initial time of the network clock.
-  base::TimeDelta resolution = base::TimeDelta::FromMilliseconds(17);
-  base::TimeDelta latency = base::TimeDelta::FromMilliseconds(50);
+  base::TimeDelta resolution = base::Milliseconds(17);
+  base::TimeDelta latency = base::Milliseconds(50);
   base::DefaultClock clock;
   base::DefaultTickClock tick_clock;
   GetApplicationContext()->GetNetworkTimeTracker()->UpdateNetworkTime(
diff --git a/ios/chrome/browser/metrics/first_user_action_recorder_unittest.cc b/ios/chrome/browser/metrics/first_user_action_recorder_unittest.cc
index 0e7c857e..d08a2954 100644
--- a/ios/chrome/browser/metrics/first_user_action_recorder_unittest.cc
+++ b/ios/chrome/browser/metrics/first_user_action_recorder_unittest.cc
@@ -20,7 +20,7 @@
 class FirstUserActionRecorderTest : public PlatformTest {
  protected:
   void SetUp() override {
-    base::TimeDelta delta = base::TimeDelta::FromSeconds(60);
+    base::TimeDelta delta = base::Seconds(60);
     recorder_.reset(new FirstUserActionRecorder(delta));
 
     histogram_tester_.reset(new base::HistogramTester());
diff --git a/ios/chrome/browser/metrics/incognito_usage_app_state_agent.mm b/ios/chrome/browser/metrics/incognito_usage_app_state_agent.mm
index ae1cf28..d6e8fba 100644
--- a/ios/chrome/browser/metrics/incognito_usage_app_state_agent.mm
+++ b/ios/chrome/browser/metrics/incognito_usage_app_state_agent.mm
@@ -61,9 +61,9 @@
   if (duration.InSecondsF() < kMinimumDelayInSeconds) {
     return;
   }
-  base::UmaHistogramCustomTimes(
-      "IOS.Incognito.TimeSpent", duration, base::TimeDelta::FromSeconds(1),
-      base::TimeDelta::FromSeconds(86400 /* secs per day */), 50);
+  base::UmaHistogramCustomTimes("IOS.Incognito.TimeSpent", duration,
+                                base::Seconds(1),
+                                base::Seconds(86400 /* secs per day */), 50);
   self.incognitoUsageStart = base::TimeTicks();
   self.incognitoUsageEnd = base::TimeTicks();
 }
diff --git a/ios/chrome/browser/metrics/incognito_usage_app_state_agent_unittest.mm b/ios/chrome/browser/metrics/incognito_usage_app_state_agent_unittest.mm
index 43c6f4e4..4273121 100644
--- a/ios/chrome/browser/metrics/incognito_usage_app_state_agent_unittest.mm
+++ b/ios/chrome/browser/metrics/incognito_usage_app_state_agent_unittest.mm
@@ -114,13 +114,13 @@
   EXPECT_FALSE(incognito_agent_.incognitoContentVisible);
   histogram_tester_.ExpectTotalCount("IOS.Incognito.TimeSpent", 0);
 
-  AdvanceClock(base::TimeDelta::FromMinutes(1));
+  AdvanceClock(base::Minutes(1));
 
   // Display one incognito for 1 minute
   SetScene1DisplaysIncognito(YES);
   EXPECT_TRUE(incognito_agent_.incognitoContentVisible);
   histogram_tester_.ExpectTotalCount("IOS.Incognito.TimeSpent", 0);
-  AdvanceClock(base::TimeDelta::FromMinutes(1));
+  AdvanceClock(base::Minutes(1));
 
   // Back to normal
   SetScene1DisplaysIncognito(NO);
@@ -129,12 +129,12 @@
   histogram_tester_.ExpectTotalCount("IOS.Incognito.TimeSpent", 0);
 
   // Back to incognito
-  AdvanceClock(base::TimeDelta::FromMinutes(1));
+  AdvanceClock(base::Minutes(1));
   SetScene1DisplaysIncognito(YES);
   EXPECT_TRUE(incognito_agent_.incognitoContentVisible);
   // Metrics from previous time should be logged.
   histogram_tester_.ExpectUniqueTimeSample("IOS.Incognito.TimeSpent",
-                                           base::TimeDelta::FromMinutes(1), 1);
+                                           base::Minutes(1), 1);
 }
 
 // Tests metrics that a session of 5 seconds is not recorded
@@ -145,13 +145,13 @@
   EXPECT_FALSE(incognito_agent_.incognitoContentVisible);
   histogram_tester_.ExpectTotalCount("IOS.Incognito.TimeSpent", 0);
 
-  AdvanceClock(base::TimeDelta::FromMinutes(1));
+  AdvanceClock(base::Minutes(1));
 
   // Display one incognito for 5 seconds
   SetScene1DisplaysIncognito(YES);
   EXPECT_TRUE(incognito_agent_.incognitoContentVisible);
   histogram_tester_.ExpectTotalCount("IOS.Incognito.TimeSpent", 0);
-  AdvanceClock(base::TimeDelta::FromSeconds(5));
+  AdvanceClock(base::Seconds(5));
 
   // Back to normal
   SetScene1DisplaysIncognito(NO);
@@ -160,7 +160,7 @@
   histogram_tester_.ExpectTotalCount("IOS.Incognito.TimeSpent", 0);
 
   // Back to incognito
-  AdvanceClock(base::TimeDelta::FromMinutes(1));
+  AdvanceClock(base::Minutes(1));
   SetScene1DisplaysIncognito(YES);
   EXPECT_TRUE(incognito_agent_.incognitoContentVisible);
   // Metrics from previous time should not be logged.
@@ -175,13 +175,13 @@
   EXPECT_FALSE(incognito_agent_.incognitoContentVisible);
   histogram_tester_.ExpectTotalCount("IOS.Incognito.TimeSpent", 0);
 
-  AdvanceClock(base::TimeDelta::FromMinutes(1));
+  AdvanceClock(base::Minutes(1));
 
   // Display one incognito for 1 minute
   SetScene1DisplaysIncognito(YES);
   EXPECT_TRUE(incognito_agent_.incognitoContentVisible);
   histogram_tester_.ExpectTotalCount("IOS.Incognito.TimeSpent", 0);
-  AdvanceClock(base::TimeDelta::FromMinutes(1));
+  AdvanceClock(base::Minutes(1));
 
   // Back to normal
   SetScene1DisplaysIncognito(NO);
@@ -190,24 +190,24 @@
   histogram_tester_.ExpectTotalCount("IOS.Incognito.TimeSpent", 0);
 
   // Back to incognito
-  AdvanceClock(base::TimeDelta::FromSeconds(5));
+  AdvanceClock(base::Seconds(5));
   SetScene1DisplaysIncognito(YES);
   EXPECT_TRUE(incognito_agent_.incognitoContentVisible);
   // Nothing logged yet
   histogram_tester_.ExpectTotalCount("IOS.Incognito.TimeSpent", 0);
 
-  AdvanceClock(base::TimeDelta::FromSeconds(55));
+  AdvanceClock(base::Seconds(55));
   SetScene1DisplaysIncognito(NO);
   EXPECT_FALSE(incognito_agent_.incognitoContentVisible);
   // Metrics is still not logged.
   histogram_tester_.ExpectTotalCount("IOS.Incognito.TimeSpent", 0);
 
-  AdvanceClock(base::TimeDelta::FromMinutes(1));
+  AdvanceClock(base::Minutes(1));
   SetScene1DisplaysIncognito(YES);
   EXPECT_TRUE(incognito_agent_.incognitoContentVisible);
   // Metrics from previous time should be logged.
   histogram_tester_.ExpectUniqueTimeSample("IOS.Incognito.TimeSpent",
-                                           base::TimeDelta::FromMinutes(2), 1);
+                                           base::Minutes(2), 1);
 }
 
 // Tests metrics that the current incognito life time is reported.
@@ -218,17 +218,17 @@
   EXPECT_FALSE(incognito_agent_.incognitoContentVisible);
   histogram_tester_.ExpectTotalCount("IOS.Incognito.TimeSpent", 0);
 
-  AdvanceClock(base::TimeDelta::FromMinutes(1));
+  AdvanceClock(base::Minutes(1));
   // Display one incognito for 1 minute
   SetScene1DisplaysIncognito(YES);
   EXPECT_TRUE(incognito_agent_.incognitoContentVisible);
   histogram_tester_.ExpectTotalCount("IOS.Incognito.TimeSpent", 0);
-  AdvanceClock(base::TimeDelta::FromMinutes(1));
+  AdvanceClock(base::Minutes(1));
 
   [incognito_agent_ applicationWillTerminate];
   // Metrics from previous time should be logged.
   histogram_tester_.ExpectUniqueTimeSample("IOS.Incognito.TimeSpent",
-                                           base::TimeDelta::FromMinutes(1), 1);
+                                           base::Minutes(1), 1);
 }
 
 // Tests metrics that the last incognito life time is reported.
@@ -239,12 +239,12 @@
   EXPECT_FALSE(incognito_agent_.incognitoContentVisible);
   histogram_tester_.ExpectTotalCount("IOS.Incognito.TimeSpent", 0);
 
-  AdvanceClock(base::TimeDelta::FromMinutes(1));
+  AdvanceClock(base::Minutes(1));
   // Display one incognito for 1 minute
   SetScene1DisplaysIncognito(YES);
   EXPECT_TRUE(incognito_agent_.incognitoContentVisible);
   histogram_tester_.ExpectTotalCount("IOS.Incognito.TimeSpent", 0);
-  AdvanceClock(base::TimeDelta::FromMinutes(1));
+  AdvanceClock(base::Minutes(1));
   SetScene1DisplaysIncognito(NO);
   EXPECT_FALSE(incognito_agent_.incognitoContentVisible);
   histogram_tester_.ExpectTotalCount("IOS.Incognito.TimeSpent", 0);
@@ -252,7 +252,7 @@
   [incognito_agent_ applicationWillTerminate];
   // Metrics from previous time should be logged.
   histogram_tester_.ExpectUniqueTimeSample("IOS.Incognito.TimeSpent",
-                                           base::TimeDelta::FromMinutes(1), 1);
+                                           base::Minutes(1), 1);
 }
 
 // Tests incognitoContentVisible in various scenarios.
diff --git a/ios/chrome/browser/metrics/mobile_session_shutdown_metrics_provider.mm b/ios/chrome/browser/metrics/mobile_session_shutdown_metrics_provider.mm
index 2819281..14ef556 100644
--- a/ios/chrome/browser/metrics/mobile_session_shutdown_metrics_provider.mm
+++ b/ios/chrome/browser/metrics/mobile_session_shutdown_metrics_provider.mm
@@ -210,7 +210,7 @@
       [[NSDate date] timeIntervalSinceDate:session_end_time];
   UMA_STABILITY_HISTOGRAM_LONG_TIMES(
       "Stability.iOS.UTE.TimeBetweenUTEAndNextLaunch",
-      base::TimeDelta::FromSeconds(background_time));
+      base::Seconds(background_time));
 }
 
 // Logs the device |battery_level| as a UTE stability metric.
diff --git a/ios/chrome/browser/metrics/tab_usage_recorder_browser_agent.mm b/ios/chrome/browser/metrics/tab_usage_recorder_browser_agent.mm
index 9442617..ee4cf99 100644
--- a/ios/chrome/browser/metrics/tab_usage_recorder_browser_agent.mm
+++ b/ios/chrome/browser/metrics/tab_usage_recorder_browser_agent.mm
@@ -314,8 +314,8 @@
 
   // Clear |termination_timestamps_| of timestamps older than
   // |kSecondsBeforeRendererTermination| ago.
-  base::TimeDelta seconds_before = base::TimeDelta::FromSeconds(
-      tab_usage_recorder::kSecondsBeforeRendererTermination);
+  base::TimeDelta seconds_before =
+      base::Seconds(tab_usage_recorder::kSecondsBeforeRendererTermination);
   base::TimeTicks timestamp_boundary = now - seconds_before;
   while (termination_timestamps_.front() < timestamp_boundary) {
     termination_timestamps_.pop_front();
diff --git a/ios/chrome/browser/metrics/tab_usage_recorder_browser_agent_unittest.mm b/ios/chrome/browser/metrics/tab_usage_recorder_browser_agent_unittest.mm
index 9ef1abd..a8c33ed 100644
--- a/ios/chrome/browser/metrics/tab_usage_recorder_browser_agent_unittest.mm
+++ b/ios/chrome/browser/metrics/tab_usage_recorder_browser_agent_unittest.mm
@@ -345,12 +345,11 @@
   for (int seconds = kExpiredTimesAddedCount; seconds > 0; seconds--) {
     int expired_time_delta =
         tab_usage_recorder::kSecondsBeforeRendererTermination + seconds;
-    AddTimeToDequeInTabUsageRecorder(
-        now - base::TimeDelta::FromSeconds(expired_time_delta));
+    AddTimeToDequeInTabUsageRecorder(now - base::Seconds(expired_time_delta));
   }
   base::TimeTicks recent_time =
-      now - base::TimeDelta::FromSeconds(
-                tab_usage_recorder::kSecondsBeforeRendererTermination / 2);
+      now -
+      base::Seconds(tab_usage_recorder::kSecondsBeforeRendererTermination / 2);
   AddTimeToDequeInTabUsageRecorder(recent_time);
 
   mock_tab_a->OnRenderProcessGone();
diff --git a/ios/chrome/browser/metrics/tab_usage_recorder_egtest.mm b/ios/chrome/browser/metrics/tab_usage_recorder_egtest.mm
index ba75d21..5ef035b 100644
--- a/ios/chrome/browser/metrics/tab_usage_recorder_egtest.mm
+++ b/ios/chrome/browser/metrics/tab_usage_recorder_egtest.mm
@@ -881,8 +881,7 @@
   // is for zero metrics recorded, it adds no flakiness.  However, this pause
   // makes the step more likely to fail in failure cases.  I.e. without it, this
   // test would sometimes pass even when it should fail.
-  base::test::ios::SpinRunLoopWithMaxDelay(
-      base::TimeDelta::FromMilliseconds(500));
+  base::test::ios::SpinRunLoopWithMaxDelay(base::Milliseconds(500));
 
   // Verify that zero Tab.StatusWhenSwitchedBackToForeground metrics were
   // recorded.  Tabs created at the time the user switches to them should not
diff --git a/ios/chrome/browser/metrics/window_configuration_recorder.mm b/ios/chrome/browser/metrics/window_configuration_recorder.mm
index 7fc678e5e..fcea5deb 100644
--- a/ios/chrome/browser/metrics/window_configuration_recorder.mm
+++ b/ios/chrome/browser/metrics/window_configuration_recorder.mm
@@ -24,8 +24,7 @@
 namespace {
 
 // Delay between a recording of a new configuration.
-static constexpr base::TimeDelta kRecordDelay =
-    base::TimeDelta::FromSeconds(20);
+static constexpr base::TimeDelta kRecordDelay = base::Seconds(20);
 
 // Timer callback for recording configuration after a delay.
 void RecordWindowGeometryMetrics(WindowConfigurationRecorder* recorder) {
diff --git a/ios/chrome/browser/notification_promo.cc b/ios/chrome/browser/notification_promo.cc
index 1b9ada0..4a71cde 100644
--- a/ios/chrome/browser/notification_promo.cc
+++ b/ios/chrome/browser/notification_promo.cc
@@ -212,8 +212,8 @@
   if (max_seconds_ == 0 || first_view_time_ == 0)
     return false;
 
-  const base::Time last_view_time = base::Time::FromDoubleT(first_view_time_) +
-                                    base::TimeDelta::FromSeconds(max_seconds_);
+  const base::Time last_view_time =
+      base::Time::FromDoubleT(first_view_time_) + base::Seconds(max_seconds_);
   return last_view_time < base::Time::Now();
 }
 
diff --git a/ios/chrome/browser/notification_promo_unittest.cc b/ios/chrome/browser/notification_promo_unittest.cc
index f24d3e5..27f0b8d 100644
--- a/ios/chrome/browser/notification_promo_unittest.cc
+++ b/ios/chrome/browser/notification_promo_unittest.cc
@@ -29,7 +29,7 @@
 const char kDateFormat[] = "dd MMM yyyy HH:mm:ss zzzz";
 
 bool YearFromNow(double* date_epoch, std::string* date_string) {
-  *date_epoch = (base::Time::Now() + base::TimeDelta::FromDays(365)).ToTimeT();
+  *date_epoch = (base::Time::Now() + base::Days(365)).ToTimeT();
 
   UErrorCode status = U_ZERO_ERROR;
   icu::SimpleDateFormat simple_formatter(icu::UnicodeString(kDateFormat),
diff --git a/ios/chrome/browser/ntp/new_tab_page_tab_helper.mm b/ios/chrome/browser/ntp/new_tab_page_tab_helper.mm
index df1fa8e..5dd91bc 100644
--- a/ios/chrome/browser/ntp/new_tab_page_tab_helper.mm
+++ b/ios/chrome/browser/ntp/new_tab_page_tab_helper.mm
@@ -91,7 +91,7 @@
   // it's safe to use Unretained here.
   ignore_load_requests_timer_.reset(new base::OneShotTimer());
   ignore_load_requests_timer_->Start(
-      FROM_HERE, base::TimeDelta::FromSeconds(kMaximumIgnoreLoadRequestsTime),
+      FROM_HERE, base::Seconds(kMaximumIgnoreLoadRequestsTime),
       base::BindOnce(&NewTabPageTabHelper::DisableIgnoreLoadRequests,
                      base::Unretained(this)));
 }
diff --git a/ios/chrome/browser/omaha/omaha_service.mm b/ios/chrome/browser/omaha/omaha_service.mm
index 89b568d..f68048a 100644
--- a/ios/chrome/browser/omaha/omaha_service.mm
+++ b/ios/chrome/browser/omaha/omaha_service.mm
@@ -468,17 +468,15 @@
   // If the |next_tries_time_| is more than kHoursBetweenRequests hours away,
   // there is a possibility that the clock has been tampered with. Reschedule
   // the ping to be the usual interval after the last successful one.
-  if (next_tries_time_ - now >
-      base::TimeDelta::FromHours(kHoursBetweenRequests)) {
-    next_tries_time_ =
-        last_sent_time_ + base::TimeDelta::FromHours(kHoursBetweenRequests);
+  if (next_tries_time_ - now > base::Hours(kHoursBetweenRequests)) {
+    next_tries_time_ = last_sent_time_ + base::Hours(kHoursBetweenRequests);
     persist_again = true;
   }
 
   // Fire a ping as early as possible if the version changed.
   const base::Version& current_version = version_info::GetVersion();
   if (last_sent_version_ < current_version) {
-    next_tries_time_ = base::Time::Now() - base::TimeDelta::FromSeconds(1);
+    next_tries_time_ = base::Time::Now() - base::Seconds(1);
     number_of_tries_ = 0;
     persist_again = true;
   }
@@ -756,10 +754,10 @@
   number_of_tries_ = 0;
   // Schedule the next request. If requset that just finished was an install
   // notification, send an active ping immediately.
-  next_tries_time_ = sending_install_event_
-                         ? base::Time::Now()
-                         : base::Time::Now() + base::TimeDelta::FromHours(
-                                                   kHoursBetweenRequests);
+  next_tries_time_ =
+      sending_install_event_
+          ? base::Time::Now()
+          : base::Time::Now() + base::Hours(kHoursBetweenRequests);
   current_ping_time_ = next_tries_time_;
   last_sent_time_ = base::Time::Now();
   last_sent_version_ = version_info::GetVersion();
diff --git a/ios/chrome/browser/omaha/omaha_service_unittest.mm b/ios/chrome/browser/omaha/omaha_service_unittest.mm
index 5591e3b6..dd9231b4 100644
--- a/ios/chrome/browser/omaha/omaha_service_unittest.mm
+++ b/ios/chrome/browser/omaha/omaha_service_unittest.mm
@@ -252,8 +252,8 @@
 
   EXPECT_EQ(1, service.number_of_tries_);
   EXPECT_TRUE(service.current_ping_time_.is_null());
-  EXPECT_GE(service.next_tries_time_, now + base::TimeDelta::FromMinutes(54));
-  EXPECT_LE(service.next_tries_time_, now + base::TimeDelta::FromHours(7));
+  EXPECT_GE(service.next_tries_time_, now + base::Minutes(54));
+  EXPECT_LE(service.next_tries_time_, now + base::Hours(7));
 
   auto* pending_request = test_url_loader_factory_.GetPendingRequest(0);
   test_url_loader_factory_.SimulateResponseForPendingRequest(
@@ -343,8 +343,8 @@
 
   EXPECT_EQ(1, service.number_of_tries_);
   EXPECT_TRUE(service.current_ping_time_.is_null());
-  EXPECT_GE(service.next_tries_time_, now + base::TimeDelta::FromMinutes(54));
-  EXPECT_LE(service.next_tries_time_, now + base::TimeDelta::FromHours(7));
+  EXPECT_GE(service.next_tries_time_, now + base::Minutes(54));
+  EXPECT_LE(service.next_tries_time_, now + base::Hours(7));
 
   std::string response =
       std::string(
@@ -381,8 +381,8 @@
 
   EXPECT_EQ(1, service.number_of_tries_);
   EXPECT_TRUE(service.current_ping_time_.is_null());
-  EXPECT_GE(service.next_tries_time_, now + base::TimeDelta::FromMinutes(54));
-  EXPECT_LE(service.next_tries_time_, now + base::TimeDelta::FromHours(7));
+  EXPECT_GE(service.next_tries_time_, now + base::Minutes(54));
+  EXPECT_LE(service.next_tries_time_, now + base::Hours(7));
 
   auto* pending_request = test_url_loader_factory_.GetPendingRequest(0);
   test_url_loader_factory_.SimulateResponseForPendingRequest(
@@ -411,8 +411,8 @@
 
   EXPECT_EQ(1, service.number_of_tries_);
   EXPECT_TRUE(service.current_ping_time_.is_null());
-  EXPECT_GE(service.next_tries_time_, now + base::TimeDelta::FromMinutes(54));
-  EXPECT_LE(service.next_tries_time_, now + base::TimeDelta::FromHours(7));
+  EXPECT_GE(service.next_tries_time_, now + base::Minutes(54));
+  EXPECT_LE(service.next_tries_time_, now + base::Hours(7));
 
   // One off callback set during ongoing ping, it should now be used for
   // response.
@@ -453,8 +453,8 @@
 
   EXPECT_EQ(1, service.number_of_tries_);
   EXPECT_TRUE(service.current_ping_time_.is_null());
-  EXPECT_GE(service.next_tries_time_, now + base::TimeDelta::FromMinutes(54));
-  EXPECT_LE(service.next_tries_time_, now + base::TimeDelta::FromHours(7));
+  EXPECT_GE(service.next_tries_time_, now + base::Minutes(54));
+  EXPECT_LE(service.next_tries_time_, now + base::Hours(7));
 
   auto* pending_request = test_url_loader_factory_.GetPendingRequest(0);
   test_url_loader_factory_.SimulateResponseForPendingRequest(
@@ -497,16 +497,16 @@
 
   EXPECT_EQ(1, service.number_of_tries_);
   EXPECT_TRUE(service.current_ping_time_.is_null());
-  EXPECT_GE(service.next_tries_time_, now + base::TimeDelta::FromMinutes(54));
-  EXPECT_LE(service.next_tries_time_, now + base::TimeDelta::FromHours(7));
+  EXPECT_GE(service.next_tries_time_, now + base::Minutes(54));
+  EXPECT_LE(service.next_tries_time_, now + base::Hours(7));
 
   service.SendPing();
 
   // Ping during one-off should be dropped, nothing should change.
   EXPECT_EQ(1, service.number_of_tries_);
   EXPECT_TRUE(service.current_ping_time_.is_null());
-  EXPECT_GE(service.next_tries_time_, now + base::TimeDelta::FromMinutes(54));
-  EXPECT_LE(service.next_tries_time_, now + base::TimeDelta::FromHours(7));
+  EXPECT_GE(service.next_tries_time_, now + base::Minutes(54));
+  EXPECT_LE(service.next_tries_time_, now + base::Hours(7));
 
   auto* pending_request = test_url_loader_factory_.GetPendingRequest(0);
   test_url_loader_factory_.SimulateResponseForPendingRequest(
@@ -575,8 +575,8 @@
 
   EXPECT_EQ(1, service.number_of_tries_);
   EXPECT_TRUE(service.current_ping_time_.is_null());
-  EXPECT_GE(service.next_tries_time_, now + base::TimeDelta::FromMinutes(54));
-  EXPECT_LE(service.next_tries_time_, now + base::TimeDelta::FromHours(7));
+  EXPECT_GE(service.next_tries_time_, now + base::Minutes(54));
+  EXPECT_LE(service.next_tries_time_, now + base::Hours(7));
 
   std::string response =
       std::string(
@@ -610,8 +610,8 @@
 
   EXPECT_EQ(1, service.number_of_tries_);
   EXPECT_TRUE(service.current_ping_time_.is_null());
-  EXPECT_GE(service.next_tries_time_, now + base::TimeDelta::FromMinutes(54));
-  EXPECT_LE(service.next_tries_time_, now + base::TimeDelta::FromHours(7));
+  EXPECT_GE(service.next_tries_time_, now + base::Minutes(54));
+  EXPECT_LE(service.next_tries_time_, now + base::Hours(7));
 
   std::string response =
       std::string(
@@ -658,8 +658,8 @@
   // Tries with a non 200 result.
   EXPECT_EQ(1, service.number_of_tries_);
   EXPECT_TRUE(service.current_ping_time_.is_null());
-  EXPECT_GE(service.next_tries_time_, now + base::TimeDelta::FromMinutes(54));
-  EXPECT_LE(service.next_tries_time_, now + base::TimeDelta::FromHours(7));
+  EXPECT_GE(service.next_tries_time_, now + base::Minutes(54));
+  EXPECT_LE(service.next_tries_time_, now + base::Hours(7));
   base::Time next_tries_time = service.next_tries_time_;
 
   auto* pending_request = test_url_loader_factory_.GetPendingRequest(0);
@@ -680,8 +680,8 @@
 
   EXPECT_EQ(2, service.number_of_tries_);
   EXPECT_TRUE(service.current_ping_time_.is_null());
-  EXPECT_GE(service.next_tries_time_, now + base::TimeDelta::FromMinutes(54));
-  EXPECT_LE(service.next_tries_time_, now + base::TimeDelta::FromHours(7));
+  EXPECT_GE(service.next_tries_time_, now + base::Minutes(54));
+  EXPECT_LE(service.next_tries_time_, now + base::Hours(7));
   next_tries_time = service.next_tries_time_;
 
   pending_request = test_url_loader_factory_.GetPendingRequest(0);
@@ -704,9 +704,9 @@
   service.set_upgrade_recommended_callback(base::BindRepeating(
       &OmahaServiceTest::OnNeedUpdate, base::Unretained(this)));
   service.number_of_tries_ = 5;
-  service.last_sent_time_ = now - base::TimeDelta::FromSeconds(1);
-  service.next_tries_time_ = now + base::TimeDelta::FromSeconds(2);
-  service.current_ping_time_ = now + base::TimeDelta::FromSeconds(3);
+  service.last_sent_time_ = now - base::Seconds(1);
+  service.next_tries_time_ = now + base::Seconds(2);
+  service.current_ping_time_ = now + base::Seconds(3);
   service.last_sent_version_ = base::Version(version_string);
   service.PersistStates();
 
@@ -714,9 +714,9 @@
   service2.StartInternal();
 
   EXPECT_EQ(service.number_of_tries_, 5);
-  EXPECT_EQ(service2.last_sent_time_, now - base::TimeDelta::FromSeconds(1));
-  EXPECT_EQ(service2.next_tries_time_, now + base::TimeDelta::FromSeconds(2));
-  EXPECT_EQ(service2.current_ping_time_, now + base::TimeDelta::FromSeconds(3));
+  EXPECT_EQ(service2.last_sent_time_, now - base::Seconds(1));
+  EXPECT_EQ(service2.next_tries_time_, now + base::Seconds(2));
+  EXPECT_EQ(service2.current_ping_time_, now + base::Seconds(3));
   EXPECT_EQ(service.last_sent_version_.GetString(), version_string);
 }
 
@@ -747,8 +747,8 @@
 
   EXPECT_EQ(1, service.number_of_tries_);
   EXPECT_TRUE(service.current_ping_time_.is_null());
-  EXPECT_GE(service.next_tries_time_, now + base::TimeDelta::FromMinutes(54));
-  EXPECT_LE(service.next_tries_time_, now + base::TimeDelta::FromHours(7));
+  EXPECT_GE(service.next_tries_time_, now + base::Minutes(54));
+  EXPECT_LE(service.next_tries_time_, now + base::Hours(7));
 
   std::string response =
       std::string(
@@ -764,7 +764,7 @@
       pending_request->request.url.spec(), response);
 
   EXPECT_EQ(1, service.number_of_tries_);
-  EXPECT_LT(service.current_ping_time_ - now, base::TimeDelta::FromMinutes(1));
+  EXPECT_LT(service.current_ping_time_ - now, base::Minutes(1));
   EXPECT_GT(service.next_tries_time_, service.current_ping_time_);
   EXPECT_FALSE(NeedUpdate());
 }
@@ -784,8 +784,8 @@
 
   EXPECT_EQ(1, service.number_of_tries_);
   EXPECT_TRUE(service.current_ping_time_.is_null());
-  EXPECT_GE(service.next_tries_time_, now + base::TimeDelta::FromMinutes(54));
-  EXPECT_LE(service.next_tries_time_, now + base::TimeDelta::FromHours(7));
+  EXPECT_GE(service.next_tries_time_, now + base::Minutes(54));
+  EXPECT_LE(service.next_tries_time_, now + base::Hours(7));
 
   std::string response =
       std::string(
@@ -801,7 +801,7 @@
 
   EXPECT_EQ(0, service.number_of_tries_);
   EXPECT_FALSE(service.current_ping_time_.is_null());
-  EXPECT_GE(service.next_tries_time_ - now, base::TimeDelta::FromHours(2));
+  EXPECT_GE(service.next_tries_time_ - now, base::Hours(2));
   EXPECT_GT(service.last_sent_time_, now);
   EXPECT_FALSE(NeedUpdate());
 }
diff --git a/ios/chrome/browser/optimization_guide/tab_url_provider_impl_unittest.mm b/ios/chrome/browser/optimization_guide/tab_url_provider_impl_unittest.mm
index 7a93872..825df553 100644
--- a/ios/chrome/browser/optimization_guide/tab_url_provider_impl_unittest.mm
+++ b/ios/chrome/browser/optimization_guide/tab_url_provider_impl_unittest.mm
@@ -29,9 +29,9 @@
 const char kURL0[] = "https://www.example.com/0000";
 const char kURL1[] = "https://www.example.com/1111";
 const char kURL2[] = "https://www.example.com/2222";
-const base::TimeDelta kOneSecond = base::TimeDelta::FromSeconds(1);
-const base::TimeDelta kOneMinute = base::TimeDelta::FromSeconds(60);
-const base::TimeDelta kOneHour = base::TimeDelta::FromHours(1);
+const base::TimeDelta kOneSecond = base::Seconds(1);
+const base::TimeDelta kOneMinute = base::Seconds(60);
+const base::TimeDelta kOneHour = base::Hours(1);
 
 // Test fixture for TabUrlProviderImpl.
 class TabUrlProviderImplTest : public PlatformTest {
diff --git a/ios/chrome/browser/overscroll_actions/overscroll_actions_tab_helper_unittest.mm b/ios/chrome/browser/overscroll_actions/overscroll_actions_tab_helper_unittest.mm
index 8ebf5e0..b43d49f9 100644
--- a/ios/chrome/browser/overscroll_actions/overscroll_actions_tab_helper_unittest.mm
+++ b/ios/chrome/browser/overscroll_actions/overscroll_actions_tab_helper_unittest.mm
@@ -58,8 +58,8 @@
     [ui_scroll_view_.delegate scrollViewWillBeginDragging:ui_scroll_view_];
     // Wait until scroll action is allowed. There is no condition to wait, just
     // a time period.
-    base::test::ios::SpinRunLoopWithMinDelay(base::TimeDelta::FromSecondsD(
-        kMinimumPullDurationToTransitionToReadyInSeconds));
+    base::test::ios::SpinRunLoopWithMinDelay(
+        base::Seconds(kMinimumPullDurationToTransitionToReadyInSeconds));
     [ui_scroll_view_.delegate scrollViewDidScroll:ui_scroll_view_];
     // Scroll to content offset below action threshold to cancel bounce
     // animation.
diff --git a/ios/chrome/browser/passwords/ios_chrome_password_check_manager.mm b/ios/chrome/browser/passwords/ios_chrome_password_check_manager.mm
index db9b399..8c7055fe 100644
--- a/ios/chrome/browser/passwords/ios_chrome_password_check_manager.mm
+++ b/ios/chrome/browser/passwords/ios_chrome_password_check_manager.mm
@@ -27,7 +27,7 @@
 // Key used to attach UserData to a LeakCheckCredential.
 constexpr char kPasswordCheckDataKey[] = "password-check-manager-data-key";
 // Minimum time the check should be running.
-constexpr base::TimeDelta kDelay = base::TimeDelta::FromSeconds(3);
+constexpr base::TimeDelta kDelay = base::Seconds(3);
 
 // Class which ensures that IOSChromePasswordCheckManager will stay alive
 // until password check is completed even if class what initially created
diff --git a/ios/chrome/browser/passwords/ios_chrome_password_check_manager_unittest.mm b/ios/chrome/browser/passwords/ios_chrome_password_check_manager_unittest.mm
index dd8fc5db..e57df4ce 100644
--- a/ios/chrome/browser/passwords/ios_chrome_password_check_manager_unittest.mm
+++ b/ios/chrome/browser/passwords/ios_chrome_password_check_manager_unittest.mm
@@ -196,14 +196,13 @@
 // credential. Verifies that the result is matching expectation.
 TEST_F(IOSChromePasswordCheckManagerTest, GetCompromisedCredentials) {
   PasswordForm form = MakeSavedPassword(kExampleCom, kUsername116);
-  AddIssueToForm(&form, InsecureType::kLeaked, base::TimeDelta::FromMinutes(1));
+  AddIssueToForm(&form, InsecureType::kLeaked, base::Minutes(1));
   store().AddLogin(form);
   RunUntilIdle();
 
   EXPECT_THAT(manager().GetCompromisedCredentials(),
               ElementsAre(ExpectCompromisedCredential(
-                  kExampleCom, kUsername116, kPassword116,
-                  base::TimeDelta::FromMinutes(1),
+                  kExampleCom, kUsername116, kPassword116, base::Minutes(1),
                   InsecureCredentialTypeFlags::kCredentialLeaked)));
 }
 
@@ -234,8 +233,7 @@
 
   EXPECT_THAT(manager().GetCompromisedCredentials(),
               ElementsAre(ExpectCompromisedCredential(
-                  kExampleCom, kUsername116, kPassword116,
-                  base::TimeDelta::FromMinutes(0),
+                  kExampleCom, kUsername116, kPassword116, base::Minutes(0),
                   InsecureCredentialTypeFlags::kCredentialLeaked)));
 }
 
@@ -289,18 +287,16 @@
   EXPECT_CALL(
       observer,
       CompromisedCredentialsChanged(ElementsAre(ExpectCompromisedCredential(
-          kExampleCom, kUsername116, kPassword116,
-          base::TimeDelta::FromMinutes(1),
+          kExampleCom, kUsername116, kPassword116, base::Minutes(1),
           InsecureCredentialTypeFlags::kCredentialLeaked))));
-  AddIssueToForm(&form, InsecureType::kLeaked, base::TimeDelta::FromMinutes(1));
+  AddIssueToForm(&form, InsecureType::kLeaked, base::Minutes(1));
   store().UpdateLogin(form);
   RunUntilIdle();
 
   // After an observer is removed it should no longer receive notifications.
   manager().RemoveObserver(&observer);
   EXPECT_CALL(observer, CompromisedCredentialsChanged).Times(0);
-  AddIssueToForm(&form, InsecureType::kPhished,
-                 base::TimeDelta::FromMinutes(1));
+  AddIssueToForm(&form, InsecureType::kPhished, base::Minutes(1));
   store().UpdateLogin(form);
   RunUntilIdle();
 }
@@ -331,14 +327,13 @@
 // Tests password deleted.
 TEST_F(IOSChromePasswordCheckManagerTest, DeletePassword) {
   PasswordForm form = MakeSavedPassword(kExampleCom, kUsername116);
-  AddIssueToForm(&form, InsecureType::kLeaked, base::TimeDelta::FromMinutes(1));
+  AddIssueToForm(&form, InsecureType::kLeaked, base::Minutes(1));
   store().AddLogin(form);
   RunUntilIdle();
 
   EXPECT_THAT(manager().GetCompromisedCredentials(),
               ElementsAre(ExpectCompromisedCredential(
-                  kExampleCom, kUsername116, kPassword116,
-                  base::TimeDelta::FromMinutes(1),
+                  kExampleCom, kUsername116, kPassword116, base::Minutes(1),
                   InsecureCredentialTypeFlags::kCredentialLeaked)));
 
   manager().DeleteCompromisedPasswordForm(form);
@@ -411,7 +406,7 @@
 // Tests compromised password value is updated properly.
 TEST_F(IOSChromePasswordCheckManagerTest, EditCompromisedPassword) {
   PasswordForm form = MakeSavedPassword(kExampleCom, kUsername116);
-  AddIssueToForm(&form, InsecureType::kLeaked, base::TimeDelta::FromMinutes(1));
+  AddIssueToForm(&form, InsecureType::kLeaked, base::Minutes(1));
   store().AddLogin(form);
   RunUntilIdle();
 
@@ -436,14 +431,14 @@
       .Times(0);
   static_cast<BulkLeakCheckServiceInterface::Observer*>(&manager())
       ->OnStateChanged(BulkLeakCheckServiceInterface::State::kIdle);
-  FastForwardBy(base::TimeDelta::FromSeconds(1));
+  FastForwardBy(base::Seconds(1));
 
   EXPECT_CALL(observer, PasswordCheckStatusChanged(PasswordCheckState::kIdle))
       .Times(0);
-  FastForwardBy(base::TimeDelta::FromSeconds(1));
+  FastForwardBy(base::Seconds(1));
 
   EXPECT_CALL(observer, PasswordCheckStatusChanged(PasswordCheckState::kIdle))
       .Times(1);
-  FastForwardBy(base::TimeDelta::FromSeconds(1));
+  FastForwardBy(base::Seconds(1));
   manager().RemoveObserver(&observer);
 }
diff --git a/ios/chrome/browser/passwords/ios_chrome_password_store_factory.cc b/ios/chrome/browser/passwords/ios_chrome_password_store_factory.cc
index 6870a62..838829cc 100644
--- a/ios/chrome/browser/passwords/ios_chrome_password_store_factory.cc
+++ b/ios/chrome/browser/passwords/ios_chrome_password_store_factory.cc
@@ -108,7 +108,7 @@
   password_manager_util::RemoveUselessCredentials(
       CredentialsCleanerRunnerFactory::GetForBrowserState(context), store,
       ChromeBrowserState::FromBrowserState(context)->GetPrefs(),
-      base::TimeDelta::FromSeconds(60), base::NullCallback());
+      base::Seconds(60), base::NullCallback());
 
   if (base::FeatureList::IsEnabled(
           password_manager::features::kFillingAcrossAffiliatedWebsites)) {
diff --git a/ios/chrome/browser/passwords/ios_password_store_utils.mm b/ios/chrome/browser/passwords/ios_password_store_utils.mm
index f4986dc5..e3aa24a 100644
--- a/ios/chrome/browser/passwords/ios_password_store_utils.mm
+++ b/ios/chrome/browser/passwords/ios_password_store_utils.mm
@@ -36,7 +36,7 @@
         FROM_HERE,
         base::BindOnce(&StoreMetricReporterHelper::StartMetricsReporting,
                        weak_ptr_factory_.GetWeakPtr()),
-        base::TimeDelta::FromSeconds(30));
+        base::Seconds(30));
   }
   ~StoreMetricReporterHelper() override = default;
 
diff --git a/ios/chrome/browser/passwords/password_controller.mm b/ios/chrome/browser/passwords/password_controller.mm
index ffc9744..bb3a266 100644
--- a/ios/chrome/browser/passwords/password_controller.mm
+++ b/ios/chrome/browser/passwords/password_controller.mm
@@ -335,11 +335,11 @@
 
   // Hides notification after 3 seconds.
   __weak PasswordController* weakSelf = self;
-  _notifyAutoSigninTimer.Start(
-      FROM_HERE, base::TimeDelta::FromSeconds(kNotifyAutoSigninDuration),
-      base::BindRepeating(^{
-        [weakSelf hideAutosigninNotification];
-      }));
+  _notifyAutoSigninTimer.Start(FROM_HERE,
+                               base::Seconds(kNotifyAutoSigninDuration),
+                               base::BindRepeating(^{
+                                 [weakSelf hideAutosigninNotification];
+                               }));
 }
 
 - (void)showPasswordBreachForLeakType:(CredentialLeakType)leakType
diff --git a/ios/chrome/browser/policy/reporting/report_scheduler_ios_unittest.mm b/ios/chrome/browser/policy/reporting/report_scheduler_ios_unittest.mm
index 2ad45ba..a085053 100644
--- a/ios/chrome/browser/policy/reporting/report_scheduler_ios_unittest.mm
+++ b/ios/chrome/browser/policy/reporting/report_scheduler_ios_unittest.mm
@@ -37,8 +37,7 @@
 
 constexpr char kDMToken[] = "dm_token";
 constexpr char kClientId[] = "client_id";
-constexpr base::TimeDelta kDefaultUploadInterval =
-    base::TimeDelta::FromHours(24);
+constexpr base::TimeDelta kDefaultUploadInterval = base::Hours(24);
 
 }  // namespace
 
@@ -283,7 +282,7 @@
 }
 
 TEST_F(ReportSchedulerIOSTest, TimerDelayWithLastUploadTimestamp) {
-  const base::TimeDelta gap = base::TimeDelta::FromHours(10);
+  const base::TimeDelta gap = base::Hours(10);
   SetLastUploadInHour(gap);
 
   EXPECT_CALL_SetupRegistration();
@@ -296,10 +295,9 @@
   EXPECT_TRUE(scheduler_->IsNextReportScheduledForTesting());
 
   base::TimeDelta next_report_delay = kDefaultUploadInterval - gap;
-  task_environment_.FastForwardBy(next_report_delay -
-                                  base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(next_report_delay - base::Seconds(1));
   ExpectLastUploadTimestampUpdated(false);
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   ExpectLastUploadTimestampUpdated(true);
 
   ::testing::Mock::VerifyAndClearExpectations(client_);
diff --git a/ios/chrome/browser/prerender/preload_controller.mm b/ios/chrome/browser/prerender/preload_controller.mm
index dbc29bd..cfd7e75 100644
--- a/ios/chrome/browser/prerender/preload_controller.mm
+++ b/ios/chrome/browser/prerender/preload_controller.mm
@@ -191,9 +191,8 @@
     reset_timer.reset();
   };
 
-  reset_timer->Start(
-      FROM_HERE, base::TimeDelta::FromSeconds(kMaximumCancelledWebStateDelay),
-      base::BindOnce(reset_block));
+  reset_timer->Start(FROM_HERE, base::Seconds(kMaximumCancelledWebStateDelay),
+                     base::BindOnce(reset_block));
 
   block_web_state->GetNavigationManager()->AddRestoreCompletionCallback(
       base::BindOnce(^{
diff --git a/ios/chrome/browser/reading_list/offline_page_tab_helper.mm b/ios/chrome/browser/reading_list/offline_page_tab_helper.mm
index 4aa0c48..3058c71 100644
--- a/ios/chrome/browser/reading_list/offline_page_tab_helper.mm
+++ b/ios/chrome/browser/reading_list/offline_page_tab_helper.mm
@@ -373,7 +373,7 @@
 
   try_number_ = 0;
   timer_.reset(new base::RepeatingTimer());
-  timer_->Start(FROM_HERE, base::TimeDelta::FromMilliseconds(1500),
+  timer_->Start(FROM_HERE, base::Milliseconds(1500),
                 base::BindRepeating(&OfflinePageTabHelper::CheckLoadingProgress,
                                     base::Unretained(this), url));
 }
diff --git a/ios/chrome/browser/reading_list/reading_list_distiller_page.mm b/ios/chrome/browser/reading_list/reading_list_distiller_page.mm
index bc2ea636..0d849bf 100644
--- a/ios/chrome/browser/reading_list/reading_list_distiller_page.mm
+++ b/ios/chrome/browser/reading_list/reading_list_distiller_page.mm
@@ -178,7 +178,7 @@
       FROM_HERE,
       base::BindOnce(&ReadingListDistillerPage::DelayedOnLoadURLDone, weak_this,
                      delayed_task_id_),
-      base::TimeDelta::FromSeconds(kPageLoadDelayInSeconds));
+      base::Seconds(kPageLoadDelayInSeconds));
 }
 
 void ReadingListDistillerPage::DelayedOnLoadURLDone(int delayed_task_id) {
diff --git a/ios/chrome/browser/reading_list/reading_list_web_state_observer.mm b/ios/chrome/browser/reading_list/reading_list_web_state_observer.mm
index 0417eefb..f16291b 100644
--- a/ios/chrome/browser/reading_list/reading_list_web_state_observer.mm
+++ b/ios/chrome/browser/reading_list/reading_list_web_state_observer.mm
@@ -159,7 +159,7 @@
   try_number_ = 0;
   timer_.reset(new base::RepeatingTimer());
   const base::TimeDelta kDelayUntilLoadingProgressIsChecked =
-      base::TimeDelta::FromMilliseconds(1500);
+      base::Milliseconds(1500);
   timer_->Start(
       FROM_HERE, kDelayUntilLoadingProgressIsChecked,
       base::BindRepeating(
diff --git a/ios/chrome/browser/safe_browsing/safe_browsing_egtest.mm b/ios/chrome/browser/safe_browsing/safe_browsing_egtest.mm
index 40686da..adc37065 100644
--- a/ios/chrome/browser/safe_browsing/safe_browsing_egtest.mm
+++ b/ios/chrome/browser/safe_browsing/safe_browsing_egtest.mm
@@ -469,14 +469,14 @@
   [ChromeEarlGrey waitForWebStateContainingText:_safeContent2];
   // TODO(crbug.com/1153261): Adding a delay to avoid never-ending load on the
   // last navigation forward. Should be fixed in newer iOS version.
-  base::test::ios::SpinRunLoopWithMinDelay(base::TimeDelta::FromSecondsD(1));
+  base::test::ios::SpinRunLoopWithMinDelay(base::Seconds(1));
 
   [ChromeEarlGrey goBack];
   [ChromeEarlGrey waitForWebStateContainingText:l10n_util::GetStringUTF8(
                                                     IDS_MALWARE_V3_HEADING)];
   // TODO(crbug.com/1153261): Adding a delay to avoid never-ending load on the
   // last navigation forward. Should be fixed in newer iOS version.
-  base::test::ios::SpinRunLoopWithMinDelay(base::TimeDelta::FromSecondsD(1));
+  base::test::ios::SpinRunLoopWithMinDelay(base::Seconds(1));
 
   [ChromeEarlGrey goForward];
   [ChromeEarlGrey waitForWebStateContainingText:_safeContent2];
diff --git a/ios/chrome/browser/sessions/session_service_ios_unittest.mm b/ios/chrome/browser/sessions/session_service_ios_unittest.mm
index ac2fb7e..fbe5659 100644
--- a/ios/chrome/browser/sessions/session_service_ios_unittest.mm
+++ b/ios/chrome/browser/sessions/session_service_ios_unittest.mm
@@ -187,7 +187,7 @@
   factory = nil;
   // Make sure that the delay for saving a session has passed (at least 2.5
   // seconds)
-  base::test::ios::SpinRunLoopWithMinDelay(base::TimeDelta::FromSecondsD(2.5));
+  base::test::ios::SpinRunLoopWithMinDelay(base::Seconds(2.5));
   base::RunLoop().RunUntilIdle();
 
   SessionIOS* session =
diff --git a/ios/chrome/browser/share_extension/share_extension_item_receiver.mm b/ios/chrome/browser/share_extension/share_extension_item_receiver.mm
index 38de4c98..5105db7 100644
--- a/ios/chrome/browser/share_extension/share_extension_item_receiver.mm
+++ b/ios/chrome/browser/share_extension/share_extension_item_receiver.mm
@@ -250,9 +250,9 @@
     return NO;
   }
 
-  UMA_HISTOGRAM_TIMES("IOS.ShareExtension.ReceivedEntryDelay",
-                      base::TimeDelta::FromSecondsD(
-                          [[NSDate date] timeIntervalSinceDate:entryDate]));
+  UMA_HISTOGRAM_TIMES(
+      "IOS.ShareExtension.ReceivedEntryDelay",
+      base::Seconds([[NSDate date] timeIntervalSinceDate:entryDate]));
 
   UMA_HISTOGRAM_ENUMERATION("IOS.ShareExtension.Source",
                             SourceIDFromSource(entrySource),
diff --git a/ios/chrome/browser/snapshots/snapshot_browser_agent.mm b/ios/chrome/browser/snapshots/snapshot_browser_agent.mm
index 16635eb6..a71e64b1e 100644
--- a/ios/chrome/browser/snapshots/snapshot_browser_agent.mm
+++ b/ios/chrome/browser/snapshots/snapshot_browser_agent.mm
@@ -119,8 +119,7 @@
   NSSet<NSString*>* snapshot_ids = GetTabIDs();
   // Keep snapshots that are less than one minute old, to prevent a concurrency
   // issue if they are created while the purge is running.
-  const base::Time one_minute_ago =
-      base::Time::Now() - base::TimeDelta::FromMinutes(1);
+  const base::Time one_minute_ago = base::Time::Now() - base::Minutes(1);
   [snapshot_cache_ purgeCacheOlderThan:one_minute_ago keeping:snapshot_ids];
 }
 
diff --git a/ios/chrome/browser/snapshots/snapshot_cache_unittest.mm b/ios/chrome/browser/snapshots/snapshot_cache_unittest.mm
index a6e80a1..e4ea8f4 100644
--- a/ios/chrome/browser/snapshots/snapshot_cache_unittest.mm
+++ b/ios/chrome/browser/snapshots/snapshot_cache_unittest.mm
@@ -396,7 +396,7 @@
   [liveSnapshotIDs addObject:[snapshotIDs_ objectAtIndex:0]];
 
   // Purge the cache.
-  [cache purgeCacheOlderThan:(base::Time::Now() - base::TimeDelta::FromHours(1))
+  [cache purgeCacheOlderThan:(base::Time::Now() - base::Hours(1))
                      keeping:liveSnapshotIDs];
   FlushRunLoops();
 
diff --git a/ios/chrome/browser/snapshots/snapshot_tab_helper.mm b/ios/chrome/browser/snapshots/snapshot_tab_helper.mm
index ec80531b..b6d3db3 100644
--- a/ios/chrome/browser/snapshots/snapshot_tab_helper.mm
+++ b/ios/chrome/browser/snapshots/snapshot_tab_helper.mm
@@ -164,7 +164,7 @@
                 UMA_HISTOGRAM_ENUMERATION("IOS.PageLoadedSnapshotResult",
                                           snapshotResult);
               }),
-          base::TimeDelta::FromSeconds(1));
+          base::Seconds(1));
       break;
   }
   ignore_next_load_ = false;
diff --git a/ios/chrome/browser/ssl/ios_ssl_error_handler.mm b/ios/chrome/browser/ssl/ios_ssl_error_handler.mm
index e43f55b0..e9942c5 100644
--- a/ios/chrome/browser/ssl/ios_ssl_error_handler.mm
+++ b/ios/chrome/browser/ssl/ios_ssl_error_handler.mm
@@ -112,9 +112,8 @@
 
   // Default to presenting the SSL interstitial if Captive Portal detection
   // takes too long.
-  timer_.Start(FROM_HERE,
-               base::TimeDelta::FromSeconds(kSSLInterstitialDelayInSeconds),
-               this, &IOSSSLErrorHandler::ShowSSLInterstitial);
+  timer_.Start(FROM_HERE, base::Seconds(kSSLInterstitialDelayInSeconds), this,
+               &IOSSSLErrorHandler::ShowSSLInterstitial);
 }
 
 void IOSSSLErrorHandler::HandleCaptivePortalDetectionResult(
diff --git a/ios/chrome/browser/translate/translate_infobar_metrics_recorder.mm b/ios/chrome/browser/translate/translate_infobar_metrics_recorder.mm
index b10385a..714d8534 100644
--- a/ios/chrome/browser/translate/translate_infobar_metrics_recorder.mm
+++ b/ios/chrome/browser/translate/translate_infobar_metrics_recorder.mm
@@ -31,7 +31,7 @@
 }
 
 + (void)recordUnusedLegacyInfobarScreenDuration:(NSTimeInterval)duration {
-  base::TimeDelta timeDelta = base::TimeDelta::FromSecondsD(duration);
+  base::TimeDelta timeDelta = base::Seconds(duration);
   // TODO(crbug.com/1025440): Use function version of macros.
   UMA_HISTOGRAM_MEDIUM_TIMES("Mobile.Legacy.Translate.Unused.Duration",
                              timeDelta);
@@ -43,7 +43,7 @@
 }
 
 + (void)recordLegacyInfobarToggleDelay:(NSTimeInterval)delay {
-  base::TimeDelta timeDelta = base::TimeDelta::FromSecondsD(delay);
+  base::TimeDelta timeDelta = base::Seconds(delay);
   // TODO(crbug.com/1025440): Use function version of macros.
   UMA_HISTOGRAM_MEDIUM_TIMES("Mobile.Legacy.Translate.Toggle.Delay", timeDelta);
 }
diff --git a/ios/chrome/browser/ui/authentication/authentication_flow_performer.mm b/ios/chrome/browser/ui/authentication/authentication_flow_performer.mm
index dc34032..6db6de7 100644
--- a/ios/chrome/browser/ui/authentication/authentication_flow_performer.mm
+++ b/ios/chrome/browser/ui/authentication/authentication_flow_performer.mm
@@ -120,10 +120,9 @@
     [strongSelf->_delegate didFailFetchManagedStatus:error];
   };
   _watchdogTimer.reset(new base::OneShotTimer());
-  _watchdogTimer->Start(
-      FROM_HERE,
-      base::TimeDelta::FromSeconds(kAuthenticationFlowTimeoutSeconds),
-      base::BindOnce(onTimeout));
+  _watchdogTimer->Start(FROM_HERE,
+                        base::Seconds(kAuthenticationFlowTimeoutSeconds),
+                        base::BindOnce(onTimeout));
 }
 
 - (BOOL)stopWatchdogTimer {
diff --git a/ios/chrome/browser/ui/authentication/signin/signin_utils.mm b/ios/chrome/browser/ui/authentication/signin/signin_utils.mm
index 34f092b..d9377d06 100644
--- a/ios/chrome/browser/ui/authentication/signin/signin_utils.mm
+++ b/ios/chrome/browser/ui/authentication/signin/signin_utils.mm
@@ -42,7 +42,7 @@
 // than the delay, then the promo is suppressed - it may be shown on the next
 // start-up.
 constexpr base::TimeDelta kShowSigninUpgradePromoMaxDelay =
-    base::TimeDelta::FromMilliseconds(200);
+    base::Milliseconds(200);
 
 // Converts an array of identities to a set of gaia ids.
 NSSet<NSString*>* GaiaIdSetWithIdentities(
@@ -88,7 +88,7 @@
         signin::kWaitThresholdMillisecondsForCapabilitiesApi);
     int commandLineDelay = 0;
     if (base::StringToInt(delayString, &commandLineDelay)) {
-      return base::TimeDelta::FromMilliseconds(commandLineDelay);
+      return base::Milliseconds(commandLineDelay);
     }
   }
   return kShowSigninUpgradePromoMaxDelay;
diff --git a/ios/chrome/browser/ui/authentication/signin/user_signin/upgrade_signin_promo_egtest.mm b/ios/chrome/browser/ui/authentication/signin/user_signin/upgrade_signin_promo_egtest.mm
index 61cbf1c..9e51ca8 100644
--- a/ios/chrome/browser/ui/authentication/signin/user_signin/upgrade_signin_promo_egtest.mm
+++ b/ios/chrome/browser/ui/authentication/signin/user_signin/upgrade_signin_promo_egtest.mm
@@ -85,7 +85,7 @@
 // Tests that the sign-in promo is not visible at start-up with no identity.
 - (void)testNoSigninPromoWithNoIdentity {
   [[AppLaunchManager sharedManager] backgroundAndForegroundApp];
-  base::test::ios::SpinRunLoopWithMinDelay(base::TimeDelta::FromSeconds(5));
+  base::test::ios::SpinRunLoopWithMinDelay(base::Seconds(5));
 
   [[EarlGrey
       selectElementWithMatcher:chrome_test_util::UpgradeSigninPromoMatcher()]
@@ -120,7 +120,7 @@
                           ios::ChromeIdentityCapabilityResult::kFalse)
           forIdentity:fakeIdentity];
   [[AppLaunchManager sharedManager] backgroundAndForegroundApp];
-  base::test::ios::SpinRunLoopWithMinDelay(base::TimeDelta::FromSeconds(5));
+  base::test::ios::SpinRunLoopWithMinDelay(base::Seconds(5));
 
   [[EarlGrey
       selectElementWithMatcher:chrome_test_util::UpgradeSigninPromoMatcher()]
diff --git a/ios/chrome/browser/ui/autofill/autofill_app_interface.mm b/ios/chrome/browser/ui/autofill/autofill_app_interface.mm
index c6b7fbf..441d3f8 100644
--- a/ios/chrome/browser/ui/autofill/autofill_app_interface.mm
+++ b/ios/chrome/browser/ui/autofill/autofill_app_interface.mm
@@ -170,7 +170,7 @@
   };
   base::test::ios::TimeUntilCondition(
       nil, conditionBlock, false,
-      base::TimeDelta::FromSeconds(base::test::ios::kWaitForActionTimeout));
+      base::Seconds(base::test::ios::kWaitForActionTimeout));
 }
 
 }  // namespace
@@ -376,7 +376,7 @@
   };
   base::test::ios::TimeUntilCondition(
       nil, conditionBlock, false,
-      base::TimeDelta::FromSeconds(base::test::ios::kWaitForActionTimeout));
+      base::Seconds(base::test::ios::kWaitForActionTimeout));
 
   autofill::prefs::SetAutofillProfileEnabled(browserState->GetPrefs(), YES);
 }
@@ -416,8 +416,7 @@
   };
   base::test::ios::TimeUntilCondition(
       nil, conditionBlock, false,
-      base::TimeDelta::FromSeconds(
-          base::test::ios::kWaitForFileOperationTimeout));
+      base::Seconds(base::test::ios::kWaitForFileOperationTimeout));
   personalDataManager->NotifyPersonalDataObserver();
   return base::SysUTF16ToNSString(card.NetworkAndLastFourDigits());
 }
diff --git a/ios/chrome/browser/ui/autofill/manual_fill/fallback_coordinator_egtest.mm b/ios/chrome/browser/ui/autofill/manual_fill/fallback_coordinator_egtest.mm
index 83d5705..56447f3 100644
--- a/ios/chrome/browser/ui/autofill/manual_fill/fallback_coordinator_egtest.mm
+++ b/ios/chrome/browser/ui/autofill/manual_fill/fallback_coordinator_egtest.mm
@@ -212,7 +212,7 @@
     // keyboard on iOS15. This may be because the state element is still
     // focused. Instead, wait a moment for the focus to be dismissed.
     if (base::ios::IsRunningOnIOS15OrLater()) {
-      base::test::ios::SpinRunLoopWithMinDelay(base::TimeDelta::FromSeconds(1));
+      base::test::ios::SpinRunLoopWithMinDelay(base::Seconds(1));
     }
   }
 
diff --git a/ios/chrome/browser/ui/autofill/manual_fill/full_card_requester_unittest.mm b/ios/chrome/browser/ui/autofill/manual_fill/full_card_requester_unittest.mm
index 88c9517..48a02b6 100644
--- a/ios/chrome/browser/ui/autofill/manual_fill/full_card_requester_unittest.mm
+++ b/ios/chrome/browser/ui/autofill/manual_fill/full_card_requester_unittest.mm
@@ -160,7 +160,7 @@
                                   fake_result_delegate->GetWeakPtr());
 
   // Spin the run loop to trigger the animation.
-  base::test::ios::SpinRunLoopWithMaxDelay(base::TimeDelta::FromSecondsD(1.0));
+  base::test::ios::SpinRunLoopWithMaxDelay(base::Seconds(1.0));
   EXPECT_TRUE([base_view_controller.presentedViewController
       isMemberOfClass:[CardUnmaskPromptViewController class]]);
 
@@ -173,6 +173,6 @@
       ^bool {
         return !base_view_controller.presentedViewController;
       },
-      true, base::TimeDelta::FromSeconds(10));
+      true, base::Seconds(10));
   EXPECT_EQ(nil, base_view_controller.presentedViewController);
 }
diff --git a/ios/chrome/browser/ui/bookmarks/bookmark_utils_ios_unittest.mm b/ios/chrome/browser/ui/bookmarks/bookmark_utils_ios_unittest.mm
index fcccdde..583c335 100644
--- a/ios/chrome/browser/ui/bookmarks/bookmark_utils_ios_unittest.mm
+++ b/ios/chrome/browser/ui/bookmarks/bookmark_utils_ios_unittest.mm
@@ -28,8 +28,7 @@
 class BookmarkIOSUtilsUnitTest : public BookmarkIOSUnitTest {
  protected:
   base::Time timeFromEpoch(int days, int hours) {
-    return base::Time::UnixEpoch() + base::TimeDelta::FromDays(days) +
-           base::TimeDelta::FromHours(hours);
+    return base::Time::UnixEpoch() + base::Days(days) + base::Hours(hours);
   }
 };
 
diff --git a/ios/chrome/browser/ui/browser_view/browser_view_controller.mm b/ios/chrome/browser/ui/browser_view/browser_view_controller.mm
index 867b72d9..18c8d20f 100644
--- a/ios/chrome/browser/ui/browser_view/browser_view_controller.mm
+++ b/ios/chrome/browser/ui/browser_view/browser_view_controller.mm
@@ -1069,7 +1069,7 @@
       oldForegroundTabWasAddedCompletionBlock();
     }
     double duration = [NSDate timeIntervalSinceReferenceDate] - startTime;
-    base::TimeDelta timeDelta = base::TimeDelta::FromSecondsD(duration);
+    base::TimeDelta timeDelta = base::Seconds(duration);
     if (offTheRecord) {
       UMA_HISTOGRAM_TIMES("Toolbar.Menu.NewIncognitoTabPresentationDuration",
                           timeDelta);
diff --git a/ios/chrome/browser/ui/content_suggestions/discover_feed_metrics_recorder.mm b/ios/chrome/browser/ui/content_suggestions/discover_feed_metrics_recorder.mm
index 6695184..0c2d985 100644
--- a/ios/chrome/browser/ui/content_suggestions/discover_feed_metrics_recorder.mm
+++ b/ios/chrome/browser/ui/content_suggestions/discover_feed_metrics_recorder.mm
@@ -374,10 +374,10 @@
                                          success:(BOOL)success {
   if (success) {
     UMA_HISTOGRAM_MEDIUM_TIMES(kDiscoverFeedArticlesFetchNetworkDurationSuccess,
-                               base::TimeDelta::FromSeconds(durationInSeconds));
+                               base::Seconds(durationInSeconds));
   } else {
     UMA_HISTOGRAM_MEDIUM_TIMES(kDiscoverFeedArticlesFetchNetworkDurationFailure,
-                               base::TimeDelta::FromSeconds(durationInSeconds));
+                               base::Seconds(durationInSeconds));
   }
   [self recordNetworkRequestDurationInSeconds:durationInSeconds];
 }
@@ -388,11 +388,11 @@
   if (success) {
     UMA_HISTOGRAM_MEDIUM_TIMES(
         kDiscoverFeedMoreArticlesFetchNetworkDurationSuccess,
-        base::TimeDelta::FromSeconds(durationInSeconds));
+        base::Seconds(durationInSeconds));
   } else {
     UMA_HISTOGRAM_MEDIUM_TIMES(
         kDiscoverFeedMoreArticlesFetchNetworkDurationFailure,
-        base::TimeDelta::FromSeconds(durationInSeconds));
+        base::Seconds(durationInSeconds));
   }
   [self recordNetworkRequestDurationInSeconds:durationInSeconds];
 }
@@ -402,10 +402,10 @@
                                          success:(BOOL)success {
   if (success) {
     UMA_HISTOGRAM_MEDIUM_TIMES(kDiscoverFeedUploadActionsNetworkDurationSuccess,
-                               base::TimeDelta::FromSeconds(durationInSeconds));
+                               base::Seconds(durationInSeconds));
   } else {
     UMA_HISTOGRAM_MEDIUM_TIMES(kDiscoverFeedUploadActionsNetworkDurationFailure,
-                               base::TimeDelta::FromSeconds(durationInSeconds));
+                               base::Seconds(durationInSeconds));
   }
   [self recordNetworkRequestDurationInSeconds:durationInSeconds];
 }
@@ -457,8 +457,7 @@
 
   // Determine if this interaction is part of a new 'session'.
   base::Time now = base::Time::Now();
-  base::TimeDelta visitTimeout =
-      base::TimeDelta::FromMinutes(kMinutesBetweenSessions);
+  base::TimeDelta visitTimeout = base::Minutes(kMinutesBetweenSessions);
   if (now - self.sessionStartTime > visitTimeout) {
     [self finalizeSession];
   }
@@ -511,7 +510,7 @@
 - (void)recordNetworkRequestDurationInSeconds:
     (NSTimeInterval)durationInSeconds {
   UMA_HISTOGRAM_MEDIUM_TIMES(kDiscoverFeedNetworkDuration,
-                             base::TimeDelta::FromSeconds(durationInSeconds));
+                             base::Seconds(durationInSeconds));
 }
 
 // Records that a URL was opened regardless of the target surface (e.g. New Tab,
diff --git a/ios/chrome/browser/ui/default_promo/default_browser_promo_non_modal_scheduler.mm b/ios/chrome/browser/ui/default_promo/default_browser_promo_non_modal_scheduler.mm
index d61590d..eba2d79 100644
--- a/ios/chrome/browser/ui/default_promo/default_browser_promo_non_modal_scheduler.mm
+++ b/ios/chrome/browser/ui/default_promo/default_browser_promo_non_modal_scheduler.mm
@@ -362,8 +362,7 @@
 
   __weak __typeof(self) weakSelf = self;
   _showPromoTimer = std::make_unique<base::OneShotTimer>();
-  _showPromoTimer->Start(FROM_HERE,
-                         base::TimeDelta::FromSeconds(promoTimeInterval),
+  _showPromoTimer->Start(FROM_HERE, base::Seconds(promoTimeInterval),
                          base::BindOnce(^{
                            [weakSelf showPromoTimerFinished];
                          }));
@@ -399,10 +398,10 @@
 
   __weak __typeof(self) weakSelf = self;
   _dismissPromoTimer = std::make_unique<base::OneShotTimer>();
-  _dismissPromoTimer->Start(
-      FROM_HERE, base::TimeDelta::FromSeconds(kPromoTimeout), base::BindOnce(^{
-        [weakSelf dismissPromoTimerFinished];
-      }));
+  _dismissPromoTimer->Start(FROM_HERE, base::Seconds(kPromoTimeout),
+                            base::BindOnce(^{
+                              [weakSelf dismissPromoTimerFinished];
+                            }));
 }
 
 - (void)cancelDismissPromoTimer {
diff --git a/ios/chrome/browser/ui/default_promo/default_browser_promo_non_modal_scheduler_unittest.mm b/ios/chrome/browser/ui/default_promo/default_browser_promo_non_modal_scheduler_unittest.mm
index 87335d8..f7d71900 100644
--- a/ios/chrome/browser/ui/default_promo/default_browser_promo_non_modal_scheduler_unittest.mm
+++ b/ios/chrome/browser/ui/default_promo/default_browser_promo_non_modal_scheduler_unittest.mm
@@ -136,12 +136,12 @@
 
   // First advance the timer by a small delay. This should not trigger the
   // promo.
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_env_.FastForwardBy(base::Seconds(1));
 
   // Then advance the timer by the remaining post-load delay. This should
   // trigger the promo.
   [[promo_commands_handler_ expect] showDefaultBrowserNonModalPromo];
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_env_.FastForwardBy(base::Seconds(2));
 
   [promo_commands_handler_ verify];
 }
@@ -160,12 +160,12 @@
 
   // First advance the timer by a small delay. This should not trigger the
   // promo.
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_env_.FastForwardBy(base::Seconds(1));
 
   // Then advance the timer by the remaining post-load delay. This should
   // trigger the promo.
   [[promo_commands_handler_ expect] showDefaultBrowserNonModalPromo];
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_env_.FastForwardBy(base::Seconds(2));
 
   [promo_commands_handler_ verify];
 }
@@ -182,7 +182,7 @@
 
   // Advance the timer by the post-share delay. This should trigger the promo.
   [[promo_commands_handler_ expect] showDefaultBrowserNonModalPromo];
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_env_.FastForwardBy(base::Seconds(1));
 
   [promo_commands_handler_ verify];
 }
@@ -200,7 +200,7 @@
 
   // Advance the timer by the post-load delay. This should trigger the promo.
   [[promo_commands_handler_ expect] showDefaultBrowserNonModalPromo];
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(3));
+  task_env_.FastForwardBy(base::Seconds(3));
 
   [promo_commands_handler_ verify];
 
@@ -208,7 +208,7 @@
   // promo.
   [[promo_commands_handler_ expect]
       dismissDefaultBrowserNonModalPromoAnimated:YES];
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(60));
+  task_env_.FastForwardBy(base::Seconds(60));
   [promo_commands_handler_ verify];
 
   // Check that NSUserDefaults has been updated.
@@ -227,7 +227,7 @@
 
   // Advance the timer by the post-load delay. This should trigger the promo.
   [[promo_commands_handler_ expect] showDefaultBrowserNonModalPromo];
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(3));
+  task_env_.FastForwardBy(base::Seconds(3));
 
   [promo_commands_handler_ verify];
 
@@ -262,7 +262,7 @@
       1, std::move(web_state), WebStateList::INSERT_ACTIVATE, WebStateOpener());
 
   // Advance the timer and the mock handler should not have any interactions.
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(60));
+  task_env_.FastForwardBy(base::Seconds(60));
 }
 
 // Tests that if a message is triggered on page load, the promo is not shown.
@@ -297,7 +297,7 @@
   [promo_commands_handler_ verify];
 
   // Advance the timer and the mock handler not have any interaction.
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(60));
+  task_env_.FastForwardBy(base::Seconds(60));
 }
 
 // Tests that backgrounding the app with the promo showing hides the promo but
@@ -314,7 +314,7 @@
 
   // Advance the timer by the post-load delay. This should trigger the promo.
   [[promo_commands_handler_ expect] showDefaultBrowserNonModalPromo];
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(3));
+  task_env_.FastForwardBy(base::Seconds(3));
 
   [promo_commands_handler_ verify];
 
@@ -342,7 +342,7 @@
 
   // Advance the timer by the post-load delay. This should trigger the promo.
   [[promo_commands_handler_ expect] showDefaultBrowserNonModalPromo];
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(3));
+  task_env_.FastForwardBy(base::Seconds(3));
 
   [promo_commands_handler_ verify];
 
@@ -395,7 +395,7 @@
 
   // Advance the timer by the post-load delay. This should trigger the promo.
   [[promo_commands_handler_ expect] showDefaultBrowserNonModalPromo];
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(3));
+  task_env_.FastForwardBy(base::Seconds(3));
   [promo_commands_handler_ verify];
 
   [[promo_commands_handler_ expect]
@@ -427,13 +427,13 @@
 
   // Advance the timer by the post-load delay. This should trigger the promo.
   [[promo_commands_handler_ expect] showDefaultBrowserNonModalPromo];
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(3));
+  task_env_.FastForwardBy(base::Seconds(3));
   [promo_commands_handler_ verify];
 
   [[promo_commands_handler_ expect]
       dismissDefaultBrowserNonModalPromoAnimated:YES];
 
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(100));
+  task_env_.FastForwardBy(base::Seconds(100));
 
   [[promo_commands_handler_ expect]
       dismissDefaultBrowserNonModalPromoAnimated:NO];
@@ -470,10 +470,10 @@
 
   // Advance the timer by the post-load delay. This should not trigger the
   // promo.
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(3));
+  task_env_.FastForwardBy(base::Seconds(3));
   // Advance the timer by the post-load delay. This should not dismiss the
   // promo.
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(100));
+  task_env_.FastForwardBy(base::Seconds(100));
 
   [[promo_commands_handler_ expect]
       dismissDefaultBrowserNonModalPromoAnimated:NO];
@@ -503,7 +503,7 @@
   test_web_state_->SetLoading(false);
 
   // Advance the timer and the mock handler should not have any interactions.
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(60));
+  task_env_.FastForwardBy(base::Seconds(60));
 }
 
 // Tests that if the promo can't be shown, the state is cleaned up, so a
@@ -529,7 +529,7 @@
 
   // Advance the timer and the mock handler should not have any interactions and
   // there should be no DCHECK.
-  task_env_.FastForwardBy(base::TimeDelta::FromSeconds(60));
+  task_env_.FastForwardBy(base::Seconds(60));
 }
 
 }  // namespace
diff --git a/ios/chrome/browser/ui/gestures/view_revealing_vertical_pan_handler_unittest.mm b/ios/chrome/browser/ui/gestures/view_revealing_vertical_pan_handler_unittest.mm
index f8211533..52bacc2 100644
--- a/ios/chrome/browser/ui/gestures/view_revealing_vertical_pan_handler_unittest.mm
+++ b/ios/chrome/browser/ui/gestures/view_revealing_vertical_pan_handler_unittest.mm
@@ -153,8 +153,7 @@
   // The runloop needs to be spun between the end of a gesture and the begining
   // of another one, because the current state of the pan_handler needs to be
   // updated to its next state before starting a new transition.
-  base::test::ios::SpinRunLoopWithMinDelay(
-      base::TimeDelta::FromMilliseconds(kAnimationDelay));
+  base::test::ios::SpinRunLoopWithMinDelay(base::Milliseconds(kAnimationDelay));
 }
 
 // Simulates 4 transitions of state in a ViewRevealingVerticalPanHandler (Hidden
@@ -290,8 +289,7 @@
   // The runloop needs to be spun between the end of a gesture and the begining
   // of another one, because the current state of the pan_handler needs to be
   // updated to its next state before starting a new transition.
-  base::test::ios::SpinRunLoopWithMinDelay(
-      base::TimeDelta::FromMilliseconds(kAnimationDelay));
+  base::test::ios::SpinRunLoopWithMinDelay(base::Milliseconds(kAnimationDelay));
 
   EXPECT_NE(ViewRevealState::Revealed, fake_animatee.state);
 }
diff --git a/ios/chrome/browser/ui/history/history_entry_inserter_unittest.mm b/ios/chrome/browser/ui/history/history_entry_inserter_unittest.mm
index 63f53bd..3debe78e 100644
--- a/ios/chrome/browser/ui/history/history_entry_inserter_unittest.mm
+++ b/ios/chrome/browser/ui/history/history_entry_inserter_unittest.mm
@@ -65,9 +65,8 @@
 // Tests that history entry items added to ListModel are sorted by
 // timestamp.
 TEST_F(HistoryEntryInserterTest, AddItems) {
-  base::Time today =
-      base::Time::Now().LocalMidnight() + base::TimeDelta::FromHours(1);
-  base::TimeDelta minute = base::TimeDelta::FromMinutes(1);
+  base::Time today = base::Time::Now().LocalMidnight() + base::Hours(1);
+  base::TimeDelta minute = base::Minutes(1);
   HistoryEntryItem* entry1 = TestHistoryEntryItem(today, "entry1");
   HistoryEntryItem* entry2 = TestHistoryEntryItem(today - minute, "entry2");
   HistoryEntryItem* entry3 =
@@ -110,10 +109,9 @@
 // Tests that items from different dates are added in correctly ordered
 // sections.
 TEST_F(HistoryEntryInserterTest, AddSections) {
-  base::Time today =
-      base::Time::Now().LocalMidnight() + base::TimeDelta::FromHours(12);
-  base::TimeDelta day = base::TimeDelta::FromDays(1);
-  base::TimeDelta minute = base::TimeDelta::FromMinutes(1);
+  base::Time today = base::Time::Now().LocalMidnight() + base::Hours(12);
+  base::TimeDelta day = base::Days(1);
+  base::TimeDelta minute = base::Minutes(1);
   HistoryEntryItem* day1 = TestHistoryEntryItem(today, "day1");
   HistoryEntryItem* day2_entry1 =
       TestHistoryEntryItem(today - day, "day2_entry1");
@@ -233,9 +231,8 @@
 
 // Tests that removing a section invokes the appropriate delegate callback.
 TEST_F(HistoryEntryInserterTest, RemoveSection) {
-  base::Time today =
-      base::Time::Now().LocalMidnight() + base::TimeDelta::FromHours(1);
-  base::TimeDelta day = base::TimeDelta::FromDays(1);
+  base::Time today = base::Time::Now().LocalMidnight() + base::Hours(1);
+  base::TimeDelta day = base::Days(1);
   HistoryEntryItem* day1 = TestHistoryEntryItem(today, "day1");
   HistoryEntryItem* day2 = TestHistoryEntryItem(today - day, "day2");
 
diff --git a/ios/chrome/browser/ui/image_util/image_copier.mm b/ios/chrome/browser/ui/image_util/image_copier.mm
index a65db4e..21b51f0 100644
--- a/ios/chrome/browser/ui/image_util/image_copier.mm
+++ b/ios/chrome/browser/ui/image_util/image_copier.mm
@@ -152,7 +152,7 @@
           [weakSelf recordCopyImageUMA:ContextMenuCopyImage::kAlertPopUp];
         }
       }),
-      base::TimeDelta::FromMilliseconds(kAlertDelayInMs));
+      base::Milliseconds(kAlertDelayInMs));
 
   [self recordCopyImageUMA:ContextMenuCopyImage::kInvoked];
 }
diff --git a/ios/chrome/browser/ui/integration_tests/pdf_egtest.mm b/ios/chrome/browser/ui/integration_tests/pdf_egtest.mm
index ef47d583..e6edec9 100644
--- a/ios/chrome/browser/ui/integration_tests/pdf_egtest.mm
+++ b/ios/chrome/browser/ui/integration_tests/pdf_egtest.mm
@@ -116,7 +116,7 @@
   [[EarlGrey selectElementWithMatcher:chrome_test_util::ShowTabsButton()]
       performAction:grey_tap()];
 
-  base::test::ios::SpinRunLoopWithMinDelay(base::TimeDelta::FromSeconds(5));
+  base::test::ios::SpinRunLoopWithMinDelay(base::Seconds(5));
 
   // Leave the tab grid.
   [[EarlGrey selectElementWithMatcher:chrome_test_util::TabGridDoneButton()]
diff --git a/ios/chrome/browser/ui/link_to_text/link_to_text_mediator_unittest.mm b/ios/chrome/browser/ui/link_to_text/link_to_text_mediator_unittest.mm
index e5352ab..fa22c55e 100644
--- a/ios/chrome/browser/ui/link_to_text/link_to_text_mediator_unittest.mm
+++ b/ios/chrome/browser/ui/link_to_text/link_to_text_mediator_unittest.mm
@@ -489,8 +489,8 @@
   [mediator_ handleLinkToTextSelection];
 
   // Advance time to skip waiting for the timeout.
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(
-      link_to_text::kLinkGenerationTimeoutInMs + 10));
+  task_environment_.FastForwardBy(
+      base::Milliseconds(link_to_text::kLinkGenerationTimeoutInMs + 10));
 
   ASSERT_TRUE(WaitUntilConditionOrTimeout(kWaitForJSCompletionTimeout, ^BOOL {
     base::RunLoop().RunUntilIdle();
diff --git a/ios/chrome/browser/ui/ntp/notification_promo_whats_new.mm b/ios/chrome/browser/ui/ntp/notification_promo_whats_new.mm
index 4a5a37bf..ad2d915 100644
--- a/ios/chrome/browser/ui/ntp/notification_promo_whats_new.mm
+++ b/ios/chrome/browser/ui/ntp/notification_promo_whats_new.mm
@@ -174,9 +174,8 @@
     // Do not show the promo if the app's installation did not occur more than
     // |seconds_since_install_| seconds ago.
     int64_t install_date = local_state_->GetInt64(metrics::prefs::kInstallDate);
-    const base::Time first_view_time =
-        base::Time::FromTimeT(install_date) +
-        base::TimeDelta::FromSeconds(seconds_since_install_);
+    const base::Time first_view_time = base::Time::FromTimeT(install_date) +
+                                       base::Seconds(seconds_since_install_);
     if (first_view_time > base::Time::Now()) {
       return false;
     }
@@ -186,9 +185,8 @@
     // Do not show the promo if the app's installation occurred more than
     // |max_seconds_since_install_| seconds ago.
     int64_t install_date = local_state_->GetInt64(metrics::prefs::kInstallDate);
-    const base::Time last_view_time =
-        base::Time::FromTimeT(install_date) +
-        base::TimeDelta::FromSeconds(max_seconds_since_install_);
+    const base::Time last_view_time = base::Time::FromTimeT(install_date) +
+                                      base::Seconds(max_seconds_since_install_);
     if (last_view_time < base::Time::Now()) {
       return false;
     }
diff --git a/ios/chrome/browser/ui/ntp/notification_promo_whats_new_unittest.mm b/ios/chrome/browser/ui/ntp/notification_promo_whats_new_unittest.mm
index 7fee66d..fedde55 100644
--- a/ios/chrome/browser/ui/ntp/notification_promo_whats_new_unittest.mm
+++ b/ios/chrome/browser/ui/ntp/notification_promo_whats_new_unittest.mm
@@ -195,8 +195,7 @@
        "testWhatsNewCommand", "0", "chrome_command", "", kTestWhatsNewCommand,
        "TestWhatsNewMetric", "logo", "0", "172800");
   // Set install date to one day before now.
-  base::Time one_day_before_now_time =
-      base::Time::Now() - base::TimeDelta::FromDays(1);
+  base::Time one_day_before_now_time = base::Time::Now() - base::Days(1);
   int64_t one_day_before_now = one_day_before_now_time.ToTimeT();
   local_state_.SetInt64(metrics::prefs::kInstallDate, one_day_before_now);
   // Expect the promo to show since install date was one day ago, and the promo
@@ -212,8 +211,7 @@
        "testWhatsNewCommand", "0", "chrome_command", "", kTestWhatsNewCommand,
        "TestWhatsNewMetric", "logo", "0", "172800");
   // Set install date to three days before now.
-  base::Time three_days_before_now_time =
-      base::Time::Now() - base::TimeDelta::FromDays(3);
+  base::Time three_days_before_now_time = base::Time::Now() - base::Days(3);
   int64_t three_days_before_now = three_days_before_now_time.ToTimeT();
   local_state_.SetInt64(metrics::prefs::kInstallDate, three_days_before_now);
   // Expect the promo not to show since install date was three days ago, and
@@ -228,8 +226,7 @@
        "testWhatsNewCommand", "0", "chrome_command", "", kTestWhatsNewCommand,
        "TestWhatsNewMetric", "logo", "172800", "0");
   // Set install date to three days before now.
-  base::Time three_days_before_now_time =
-      base::Time::Now() - base::TimeDelta::FromDays(3);
+  base::Time three_days_before_now_time = base::Time::Now() - base::Days(3);
   int64_t three_days_before_now = three_days_before_now_time.ToTimeT();
   local_state_.SetInt64(metrics::prefs::kInstallDate, three_days_before_now);
   // Expect the promo to show since install date was three days ago, and the
@@ -245,8 +242,7 @@
        "testWhatsNewCommand", "0", "chrome_command", "", kTestWhatsNewCommand,
        "TestWhatsNewMetric", "logo", "172800", "0");
   // Set install date to one day before now.
-  base::Time one_day_before_now_time =
-      base::Time::Now() - base::TimeDelta::FromDays(1);
+  base::Time one_day_before_now_time = base::Time::Now() - base::Days(1);
   int64_t one_day_before_now = one_day_before_now_time.ToTimeT();
   local_state_.SetInt64(metrics::prefs::kInstallDate, one_day_before_now);
   // Expect the promo not to show since install date was one day ago, and
diff --git a/ios/chrome/browser/ui/popup_menu/popup_menu_coordinator.mm b/ios/chrome/browser/ui/popup_menu/popup_menu_coordinator.mm
index 7705d42..805bc57 100644
--- a/ios/chrome/browser/ui/popup_menu/popup_menu_coordinator.mm
+++ b/ios/chrome/browser/ui/popup_menu/popup_menu_coordinator.mm
@@ -163,7 +163,7 @@
     return;
 
   if (self.requestStartTime != 0) {
-    base::TimeDelta elapsed = base::TimeDelta::FromSecondsD(
+    base::TimeDelta elapsed = base::Seconds(
         [NSDate timeIntervalSinceReferenceDate] - self.requestStartTime);
     UMA_HISTOGRAM_TIMES("Toolbar.ShowToolsMenuResponsiveness", elapsed);
     // Reset the start time to ensure that whatever happens, we only record
diff --git a/ios/chrome/browser/ui/reading_list/ios_add_to_reading_list_infobar_delegate.mm b/ios/chrome/browser/ui/reading_list/ios_add_to_reading_list_infobar_delegate.mm
index fd90285..bfea7cba 100644
--- a/ios/chrome/browser/ui/reading_list/ios_add_to_reading_list_infobar_delegate.mm
+++ b/ios/chrome/browser/ui/reading_list/ios_add_to_reading_list_infobar_delegate.mm
@@ -60,7 +60,7 @@
 bool IOSAddToReadingListInfobarDelegate::Accept() {
   model_->AddEntry(url_, base::UTF16ToUTF8(title_),
                    reading_list::ADDED_VIA_CURRENT_APP,
-                   base::TimeDelta::FromMinutes(estimated_read_time_));
+                   base::Minutes(estimated_read_time_));
   ukm::SourceId sourceID = ukm::GetSourceIdForWebStateDocument(web_state_);
   if (sourceID != ukm::kInvalidSourceId) {
     ukm::builders::IOS_PageAddedToReadingList(sourceID)
diff --git a/ios/chrome/browser/ui/reading_list/reading_list_egtest.mm b/ios/chrome/browser/ui/reading_list/reading_list_egtest.mm
index 32b6a998..612e9cc 100644
--- a/ios/chrome/browser/ui/reading_list/reading_list_egtest.mm
+++ b/ios/chrome/browser/ui/reading_list/reading_list_egtest.mm
@@ -376,7 +376,7 @@
         /*headers=*/"", /*contents=*/"");
   }
   auto response = std::make_unique<net::test_server::DelayedHttpResponse>(
-      base::TimeDelta::FromSeconds(delay));
+      base::Seconds(delay));
 
   if (base::StartsWith(request.relative_url, kDistillableURL)) {
     response->set_content_type("text/html");
@@ -570,7 +570,7 @@
 
   TapContextMenuButtonWithA11yLabelID(offlineStringId);
   [ChromeEarlGrey waitForPageToFinishLoading];
-  base::test::ios::SpinRunLoopWithMinDelay(base::TimeDelta::FromSecondsD(1));
+  base::test::ios::SpinRunLoopWithMinDelay(base::Seconds(1));
   AssertIsShowingDistillablePage(false, distillablePageURL);
 
   // Navigate to http://beans
@@ -581,7 +581,7 @@
 
   // Check that the offline version is still displayed.
   [ChromeEarlGrey waitForPageToFinishLoading];
-  base::test::ios::SpinRunLoopWithMinDelay(base::TimeDelta::FromSecondsD(1));
+  base::test::ios::SpinRunLoopWithMinDelay(base::Seconds(1));
   AssertIsShowingDistillablePage(false, distillablePageURL);
 
   // Check that a new navigation wasn't created.
@@ -626,7 +626,7 @@
 
   TapContextMenuButtonWithA11yLabelID(offlineStringId);
   [ChromeEarlGrey waitForPageToFinishLoading];
-  base::test::ios::SpinRunLoopWithMinDelay(base::TimeDelta::FromSecondsD(1));
+  base::test::ios::SpinRunLoopWithMinDelay(base::Seconds(1));
   AssertIsShowingDistillablePage(false, distillablePageURL);
 
   // Tap the Omnibox' Info Bubble to open the Page Info.
@@ -712,7 +712,7 @@
   // Stop server to reload offline.
   self.serverRespondsWithContent = NO;
   base::test::ios::SpinRunLoopWithMinDelay(
-      base::TimeDelta::FromSecondsD(kServerOperationDelay));
+      base::Seconds(kServerOperationDelay));
 
   [ChromeEarlGreyAppInterface startReloading];
   AssertIsShowingDistillablePage(false, distillableURL);
@@ -742,7 +742,7 @@
   // Stop server to generate error.
   self.serverRespondsWithContent = NO;
   base::test::ios::SpinRunLoopWithMinDelay(
-      base::TimeDelta::FromSecondsD(kServerOperationDelay));
+      base::Seconds(kServerOperationDelay));
   // Long press the entry, and open it offline.
   TapEntry(kDistillableTitle);
   AssertIsShowingDistillablePage(false, distillableURL);
@@ -758,7 +758,7 @@
   // Start server to reload online error.
   self.serverRespondsWithContent = YES;
   base::test::ios::SpinRunLoopWithMinDelay(
-      base::TimeDelta::FromSecondsD(kServerOperationDelay));
+      base::Seconds(kServerOperationDelay));
 
   [ChromeEarlGreyAppInterface startReloading];
   AssertIsShowingDistillablePage(true, distillableURL);
@@ -793,7 +793,7 @@
 
   [ChromeEarlGrey goBack];
   [ChromeEarlGrey goForward];
-  base::test::ios::SpinRunLoopWithMinDelay(base::TimeDelta::FromSecondsD(1));
+  base::test::ios::SpinRunLoopWithMinDelay(base::Seconds(1));
   AssertIsShowingDistillablePage(false, distillableURL);
 
   // Reload should load online page.
diff --git a/ios/chrome/browser/ui/reading_list/reading_list_javascript_feature.mm b/ios/chrome/browser/ui/reading_list/reading_list_javascript_feature.mm
index f07b4d7..4181645f 100644
--- a/ios/chrome/browser/ui/reading_list/reading_list_javascript_feature.mm
+++ b/ios/chrome/browser/ui/reading_list/reading_list_javascript_feature.mm
@@ -118,7 +118,7 @@
   absl::optional<double> time = message.body()->FindDoubleKey("time");
   if (time.has_value()) {
     UMA_HISTOGRAM_TIMES("IOS.ReadingList.Javascript.ExecutionTime",
-                        base::TimeDelta::FromMillisecondsD(time.value()));
+                        base::Milliseconds(time.value()));
   }
 
   std::vector<double> result = dom_distiller::CalculateDerivedFeatures(
@@ -186,8 +186,8 @@
       // Either way, return early to not show a Messages banner for an existing
       // Reading List entry.
       if (entry->EstimatedReadTime().is_zero()) {
-        model->SetEstimatedReadTime(
-            url.value(), base::TimeDelta::FromMinutes(estimated_read_time));
+        model->SetEstimatedReadTime(url.value(),
+                                    base::Minutes(estimated_read_time));
       }
       return;
     }
diff --git a/ios/chrome/browser/ui/reading_list/reading_list_list_item_util.mm b/ios/chrome/browser/ui/reading_list/reading_list_list_item_util.mm
index 9d15fdc..d942043 100644
--- a/ios/chrome/browser/ui/reading_list/reading_list_list_item_util.mm
+++ b/ios/chrome/browser/ui/reading_list/reading_list_list_item_util.mm
@@ -54,7 +54,7 @@
   } else {
     return base::SysUTF16ToNSString(ui::TimeFormat::SimpleWithMonthAndYear(
         ui::TimeFormat::FORMAT_ELAPSED, ui::TimeFormat::LENGTH_LONG,
-        base::TimeDelta::FromMicroseconds(elapsed), true));
+        base::Microseconds(elapsed), true));
   }
 }
 
diff --git a/ios/chrome/browser/ui/reading_list/reading_list_mediator_unittest.mm b/ios/chrome/browser/ui/reading_list/reading_list_mediator_unittest.mm
index aa2f575..0c0d1cc 100644
--- a/ios/chrome/browser/ui/reading_list/reading_list_mediator_unittest.mm
+++ b/ios/chrome/browser/ui/reading_list/reading_list_mediator_unittest.mm
@@ -67,10 +67,10 @@
     model_->SetReadStatus(GURL("http://chromium.org/read1"), true);
     model_->AddEntry(GURL("http://chromium.org/unread2"), "unread2",
                      reading_list::ADDED_VIA_CURRENT_APP);
-    clock_.Advance(base::TimeDelta::FromMilliseconds(10));
+    clock_.Advance(base::Milliseconds(10));
     model_->AddEntry(no_title_entry_url_, "",
                      reading_list::ADDED_VIA_CURRENT_APP);
-    clock_.Advance(base::TimeDelta::FromMilliseconds(10));
+    clock_.Advance(base::Milliseconds(10));
     model_->AddEntry(GURL("http://chromium.org/read2"), "read2",
                      reading_list::ADDED_VIA_CURRENT_APP);
     model_->SetReadStatus(GURL("http://chromium.org/read2"), true);
diff --git a/ios/chrome/browser/ui/settings/clear_browsing_data/clear_browsing_data_manager_unittest.mm b/ios/chrome/browser/ui/settings/clear_browsing_data/clear_browsing_data_manager_unittest.mm
index f30a2a50..0cf2c9ff 100644
--- a/ios/chrome/browser/ui/settings/clear_browsing_data/clear_browsing_data_manager_unittest.mm
+++ b/ios/chrome/browser/ui/settings/clear_browsing_data/clear_browsing_data_manager_unittest.mm
@@ -417,11 +417,11 @@
   const std::string kEngineC1Name = "custom-1";
   const GURL kEngineC1Url = GURL("https://c1.com?q={searchTerms}");
 
-  AddCustomSearchEngine(/* short_name */ kEngineC1Name,
-                        /* searchable_url */ kEngineC1Url,
-                        /* last_visited_time */ base::Time::Now() -
-                            base::TimeDelta::FromSeconds(10),
-                        /* set_default */ true);
+  AddCustomSearchEngine(
+      /* short_name */ kEngineC1Name,
+      /* searchable_url */ kEngineC1Url,
+      /* last_visited_time */ base::Time::Now() - base::Seconds(10),
+      /* set_default */ true);
 
   [manager_ loadModel:model_];
 
@@ -455,11 +455,11 @@
   const std::string kEngineC1Name = "custom-1";
   const GURL kEngineC1Url = GURL("https://c1.com?q={searchTerms}");
 
-  AddCustomSearchEngine(/* short_name */ kEngineC1Name,
-                        /* searchable_url */ kEngineC1Url,
-                        /* last_visited_time */ base::Time::Now() -
-                            base::TimeDelta::FromSeconds(10),
-                        /* set_default */ true);
+  AddCustomSearchEngine(
+      /* short_name */ kEngineC1Name,
+      /* searchable_url */ kEngineC1Url,
+      /* last_visited_time */ base::Time::Now() - base::Seconds(10),
+      /* set_default */ true);
 
   [manager_ loadModel:model_];
 
diff --git a/ios/chrome/browser/ui/settings/password/passwords_mediator.mm b/ios/chrome/browser/ui/settings/password/passwords_mediator.mm
index 559105d..9c9c5e36 100644
--- a/ios/chrome/browser/ui/settings/password/passwords_mediator.mm
+++ b/ios/chrome/browser/ui/settings/password/passwords_mediator.mm
@@ -31,8 +31,7 @@
 
 namespace {
 // Amount of time after which timestamp is shown instead of "just now".
-constexpr base::TimeDelta kJustCheckedTimeThresholdInMinutes =
-    base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kJustCheckedTimeThresholdInMinutes = base::Minutes(1);
 }  // namespace
 
 @interface PasswordsMediator () <PasswordCheckObserver,
diff --git a/ios/chrome/browser/ui/settings/password/passwords_mediator_unittest.mm b/ios/chrome/browser/ui/settings/password/passwords_mediator_unittest.mm
index bf3ee9c..41e7079 100644
--- a/ios/chrome/browser/ui/settings/password/passwords_mediator_unittest.mm
+++ b/ios/chrome/browser/ui/settings/password/passwords_mediator_unittest.mm
@@ -147,7 +147,7 @@
   EXPECT_NSEQ(@"Check never run.",
               [mediator() formatElapsedTimeSinceLastCheck]);
 
-  base::Time expected1 = base::Time::Now() - base::TimeDelta::FromSeconds(10);
+  base::Time expected1 = base::Time::Now() - base::Seconds(10);
   browserState()->GetPrefs()->SetDouble(
       password_manager::prefs::kLastTimePasswordCheckCompleted,
       expected1.ToDoubleT());
@@ -155,7 +155,7 @@
   EXPECT_NSEQ(@"Last checked just now.",
               [mediator() formatElapsedTimeSinceLastCheck]);
 
-  base::Time expected2 = base::Time::Now() - base::TimeDelta::FromMinutes(5);
+  base::Time expected2 = base::Time::Now() - base::Minutes(5);
   browserState()->GetPrefs()->SetDouble(
       password_manager::prefs::kLastTimePasswordCheckCompleted,
       expected2.ToDoubleT());
diff --git a/ios/chrome/browser/ui/settings/safety_check/safety_check_mediator.mm b/ios/chrome/browser/ui/settings/safety_check/safety_check_mediator.mm
index cb61baf8..1df8ccd 100644
--- a/ios/chrome/browser/ui/settings/safety_check/safety_check_mediator.mm
+++ b/ios/chrome/browser/ui/settings/safety_check/safety_check_mediator.mm
@@ -1182,7 +1182,7 @@
 
   std::u16string timestamp;
   // If check found issues less than 1 minuete ago.
-  if (elapsedTime < base::TimeDelta::FromMinutes(1)) {
+  if (elapsedTime < base::Minutes(1)) {
     timestamp = l10n_util::GetStringUTF16(IDS_IOS_CHECK_FINISHED_JUST_NOW);
   } else {
     timestamp = ui::TimeFormat::SimpleWithMonthAndYear(
diff --git a/ios/chrome/browser/ui/settings/safety_check/safety_check_mediator_unittest.mm b/ios/chrome/browser/ui/settings/safety_check/safety_check_mediator_unittest.mm
index 037f04d..bf34ee2 100644
--- a/ios/chrome/browser/ui/settings/safety_check/safety_check_mediator_unittest.mm
+++ b/ios/chrome/browser/ui/settings/safety_check/safety_check_mediator_unittest.mm
@@ -278,10 +278,8 @@
   base::Time lastCompletedCheck =
       base::Time::FromDoubleT([[NSUserDefaults standardUserDefaults]
           doubleForKey:kTimestampOfLastIssueFoundKey]);
-  EXPECT_GE(lastCompletedCheck,
-            base::Time::Now() - base::TimeDelta::FromSeconds(1));
-  EXPECT_LE(lastCompletedCheck,
-            base::Time::Now() + base::TimeDelta::FromSeconds(1));
+  EXPECT_GE(lastCompletedCheck, base::Time::Now() - base::Seconds(1));
+  EXPECT_LE(lastCompletedCheck, base::Time::Now() + base::Seconds(1));
 
   resetNSUserDefaultsForTesting();
 }
@@ -294,10 +292,8 @@
   base::Time lastCompletedCheck =
       base::Time::FromDoubleT([[NSUserDefaults standardUserDefaults]
           doubleForKey:kTimestampOfLastIssueFoundKey]);
-  EXPECT_GE(lastCompletedCheck,
-            base::Time::Now() - base::TimeDelta::FromSeconds(1));
-  EXPECT_LE(lastCompletedCheck,
-            base::Time::Now() + base::TimeDelta::FromSeconds(1));
+  EXPECT_GE(lastCompletedCheck, base::Time::Now() - base::Seconds(1));
+  EXPECT_LE(lastCompletedCheck, base::Time::Now() + base::Seconds(1));
 
   mediator_.checkDidRun = true;
   mediator_.passwordCheckRowState = PasswordCheckRowStateSafe;
diff --git a/ios/chrome/browser/ui/settings/search_engine_table_view_controller.mm b/ios/chrome/browser/ui/settings/search_engine_table_view_controller.mm
index edddff28..e5e6ed18 100644
--- a/ios/chrome/browser/ui/settings/search_engine_table_view_controller.mm
+++ b/ios/chrome/browser/ui/settings/search_engine_table_view_controller.mm
@@ -47,7 +47,7 @@
 const CGFloat kTableViewSeparatorLeadingInset = 56;
 const int kFaviconDesiredSizeInPoint = 32;
 const int kFaviconMinSizeInPoint = 16;
-constexpr base::TimeDelta kMaxVisitAge = base::TimeDelta::FromDays(2);
+constexpr base::TimeDelta kMaxVisitAge = base::Days(2);
 const size_t kMaxcustomSearchEngines = 3;
 const char kUmaSelectDefaultSearchEngine[] =
     "Search.iOS.SelectDefaultSearchEngine";
diff --git a/ios/chrome/browser/ui/settings/search_engine_table_view_controller_unittest.mm b/ios/chrome/browser/ui/settings/search_engine_table_view_controller_unittest.mm
index db1c7c4..978f626c 100644
--- a/ios/chrome/browser/ui/settings/search_engine_table_view_controller_unittest.mm
+++ b/ios/chrome/browser/ui/settings/search_engine_table_view_controller_unittest.mm
@@ -252,17 +252,13 @@
   AddPriorSearchEngine(kEngineP2Name, kEngineP2Url, 1002, true);
 
   AddCustomSearchEngine(kEngineC4Name, kEngineC4Url,
-                        base::Time::Now() - base::TimeDelta::FromDays(10),
-                        false);
+                        base::Time::Now() - base::Days(10), false);
   AddCustomSearchEngine(kEngineC1Name, kEngineC1Url,
-                        base::Time::Now() - base::TimeDelta::FromSeconds(10),
-                        false);
+                        base::Time::Now() - base::Seconds(10), false);
   AddCustomSearchEngine(kEngineC3Name, kEngineC3Url,
-                        base::Time::Now() - base::TimeDelta::FromHours(10),
-                        false);
+                        base::Time::Now() - base::Hours(10), false);
   AddCustomSearchEngine(kEngineC2Name, kEngineC2Url,
-                        base::Time::Now() - base::TimeDelta::FromMinutes(10),
-                        false);
+                        base::Time::Now() - base::Minutes(10), false);
 
   CreateController();
   CheckController();
@@ -304,17 +300,13 @@
   AddPriorSearchEngine(kEngineP2Name, kEngineP2Url, 1002, false);
 
   AddCustomSearchEngine(kEngineC4Name, kEngineC4Url,
-                        base::Time::Now() - base::TimeDelta::FromDays(10),
-                        false);
+                        base::Time::Now() - base::Days(10), false);
   AddCustomSearchEngine(kEngineC1Name, kEngineC1Url,
-                        base::Time::Now() - base::TimeDelta::FromSeconds(10),
-                        false);
+                        base::Time::Now() - base::Seconds(10), false);
   AddCustomSearchEngine(kEngineC3Name, kEngineC3Url,
-                        base::Time::Now() - base::TimeDelta::FromHours(10),
-                        false);
+                        base::Time::Now() - base::Hours(10), false);
   AddCustomSearchEngine(kEngineC2Name, kEngineC2Url,
-                        base::Time::Now() - base::TimeDelta::FromMinutes(10),
-                        true);
+                        base::Time::Now() - base::Minutes(10), true);
 
   CreateController();
   CheckController();
@@ -402,8 +394,7 @@
   TemplateURL* url_c1 = AddCustomSearchEngine(kEngineC1Name, kEngineC1Url,
                                               base::Time::Now(), false);
   AddCustomSearchEngine(kEngineC2Name, kEngineC2Url,
-                        base::Time::Now() - base::TimeDelta::FromSeconds(10),
-                        false);
+                        base::Time::Now() - base::Seconds(10), false);
 
   CreateController();
   CheckController();
@@ -516,11 +507,9 @@
   EXPECT_TRUE([searchEngineController shouldHideToolbar]);
 
   AddCustomSearchEngine(kEngineC2Name, kEngineC2Url,
-                        base::Time::Now() - base::TimeDelta::FromMinutes(10),
-                        false);
+                        base::Time::Now() - base::Minutes(10), false);
   AddCustomSearchEngine(kEngineC1Name, kEngineC1Url,
-                        base::Time::Now() - base::TimeDelta::FromSeconds(10),
-                        false);
+                        base::Time::Now() - base::Seconds(10), false);
 
   EXPECT_TRUE([searchEngineController editButtonEnabled]);
   EXPECT_TRUE([searchEngineController shouldHideToolbar]);
@@ -591,17 +580,14 @@
   AddPriorSearchEngine(kEngineP2Name, kEngineP2Url, 1002, false);
 
   AddCustomSearchEngine(kEngineC4Name, kEngineC4Url,
-                        base::Time::Now() - base::TimeDelta::FromDays(1),
-                        false);
+                        base::Time::Now() - base::Days(1), false);
   AddCustomSearchEngine(kEngineC1Name, kEngineC1Url,
-                        base::Time::Now() - base::TimeDelta::FromSeconds(10),
-                        false);
+                        base::Time::Now() - base::Seconds(10), false);
   AddCustomSearchEngine(kEngineC3Name, kEngineC3Url,
-                        base::Time::Now() - base::TimeDelta::FromHours(10),
-                        true);
-  TemplateURL* url_c2 = AddCustomSearchEngine(
-      kEngineC2Name, kEngineC2Url,
-      base::Time::Now() - base::TimeDelta::FromMinutes(10), false);
+                        base::Time::Now() - base::Hours(10), true);
+  TemplateURL* url_c2 =
+      AddCustomSearchEngine(kEngineC2Name, kEngineC2Url,
+                            base::Time::Now() - base::Minutes(10), false);
 
   CreateController();
   CheckController();
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_coordinator_unittest.mm b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_coordinator_unittest.mm
index 2980182..1e4adbb 100644
--- a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_coordinator_unittest.mm
+++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_coordinator_unittest.mm
@@ -309,15 +309,15 @@
 // Tests that the time spent in the tab grid is correctly logged.
 TEST_F(TabGridCoordinatorTest, TimeSpentInTabGrid) {
   histogram_tester_.ExpectTotalCount("IOS.TabSwitcher.TimeSpent", 0);
-  scoped_clock_.Advance(base::TimeDelta::FromMinutes(1));
+  scoped_clock_.Advance(base::Minutes(1));
   [coordinator_ showTabGrid];
   histogram_tester_.ExpectTotalCount("IOS.TabSwitcher.TimeSpent", 0);
-  scoped_clock_.Advance(base::TimeDelta::FromSeconds(20));
+  scoped_clock_.Advance(base::Seconds(20));
   [coordinator_ showTabViewController:normal_tab_view_controller_
                    shouldCloseTabGrid:YES
                            completion:nil];
   histogram_tester_.ExpectUniqueTimeSample("IOS.TabSwitcher.TimeSpent",
-                                           base::TimeDelta::FromSeconds(20), 1);
+                                           base::Seconds(20), 1);
   histogram_tester_.ExpectTotalCount("IOS.TabSwitcher.TimeSpent", 1);
 }
 
diff --git a/ios/chrome/browser/ui/toolbar/adaptive_toolbar_view_controller_unittest.mm b/ios/chrome/browser/ui/toolbar/adaptive_toolbar_view_controller_unittest.mm
index d0ca47a..2758c340 100644
--- a/ios/chrome/browser/ui/toolbar/adaptive_toolbar_view_controller_unittest.mm
+++ b/ios/chrome/browser/ui/toolbar/adaptive_toolbar_view_controller_unittest.mm
@@ -92,7 +92,7 @@
   OCMStub([touch force]).andReturn(currentForce);
   [gestureRecognizer touchesMoved:[NSSet setWithObject:touch] withEvent:event];
 
-  base::test::ios::SpinRunLoopWithMinDelay(base::TimeDelta::FromSecondsD(0.05));
+  base::test::ios::SpinRunLoopWithMinDelay(base::Seconds(0.05));
 
   EXPECT_OCMOCK_VERIFY(dispatcher);
 
@@ -106,7 +106,7 @@
   OCMStub([touch force]).andReturn(currentForce);
   [gestureRecognizer touchesMoved:[NSSet setWithObject:touch] withEvent:event];
 
-  base::test::ios::SpinRunLoopWithMinDelay(base::TimeDelta::FromSecondsD(0.05));
+  base::test::ios::SpinRunLoopWithMinDelay(base::Seconds(0.05));
 
   EXPECT_OCMOCK_VERIFY(longPressDelegate);
 
@@ -114,7 +114,7 @@
   // working on unit test (the state is cancelled).
   gestureRecognizer.state = UIGestureRecognizerStateEnded;
 
-  base::test::ios::SpinRunLoopWithMinDelay(base::TimeDelta::FromSecondsD(0.05));
+  base::test::ios::SpinRunLoopWithMinDelay(base::Seconds(0.05));
 
   EXPECT_OCMOCK_VERIFY(longPressDelegate);
 }
diff --git a/ios/chrome/browser/ui/webui/interstitials/interstitial_ui_util.mm b/ios/chrome/browser/ui/webui/interstitials/interstitial_ui_util.mm
index 704e6b8..e10fb4a 100644
--- a/ios/chrome/browser/ui/webui/interstitials/interstitial_ui_util.mm
+++ b/ios/chrome/browser/ui/webui/interstitials/interstitial_ui_util.mm
@@ -50,9 +50,8 @@
   std::string cert_der;
   if (!net::x509_util::CreateKeyAndSelfSignedCert(
           "CN=Error", static_cast<uint32_t>(serial_number.GetNext()),
-          base::Time::Now() - base::TimeDelta::FromMinutes(5),
-          base::Time::Now() + base::TimeDelta::FromMinutes(5), &unused_key,
-          &cert_der)) {
+          base::Time::Now() - base::Minutes(5),
+          base::Time::Now() + base::Minutes(5), &unused_key, &cert_der)) {
     return nullptr;
   }
 
diff --git a/ios/chrome/browser/web/child_window_open_by_dom_egtest.mm b/ios/chrome/browser/web/child_window_open_by_dom_egtest.mm
index aa8c2db0..b679b3a 100644
--- a/ios/chrome/browser/web/child_window_open_by_dom_egtest.mm
+++ b/ios/chrome/browser/web/child_window_open_by_dom_egtest.mm
@@ -57,7 +57,7 @@
     const net::test_server::HttpRequest& request) {
   auto slow_http_response =
       std::make_unique<net::test_server::DelayedHttpResponse>(
-          base::TimeDelta::FromSeconds(kSlowPathDelay));
+          base::Seconds(kSlowPathDelay));
   slow_http_response->set_content_type("text/html");
   slow_http_response->set_content(kSlowPathContent);
   return std::move(slow_http_response);
diff --git a/ios/chrome/browser/web/error_page_egtest.mm b/ios/chrome/browser/web/error_page_egtest.mm
index a567c63..39e40106 100644
--- a/ios/chrome/browser/web/error_page_egtest.mm
+++ b/ios/chrome/browser/web/error_page_egtest.mm
@@ -90,24 +90,24 @@
   [ChromeEarlGrey waitForWebStateContainingText:errorText];
   // Add some delay otherwise the back/forward navigations are occurring too
   // fast.
-  base::test::ios::SpinRunLoopWithMinDelay(base::TimeDelta::FromSecondsD(0.2));
+  base::test::ios::SpinRunLoopWithMinDelay(base::Seconds(0.2));
 
   // Navigate to a page which responds.
   [ChromeEarlGrey loadURL:self.testServer->GetURL("/echo-query?bar")];
   [ChromeEarlGrey waitForWebStateContainingText:"bar"];
-  base::test::ios::SpinRunLoopWithMinDelay(base::TimeDelta::FromSecondsD(0.2));
+  base::test::ios::SpinRunLoopWithMinDelay(base::Seconds(0.2));
 
   [ChromeEarlGrey goBack];
   [ChromeEarlGrey waitForWebStateContainingText:errorText];
-  base::test::ios::SpinRunLoopWithMinDelay(base::TimeDelta::FromSecondsD(0.2));
+  base::test::ios::SpinRunLoopWithMinDelay(base::Seconds(0.2));
 
   [ChromeEarlGrey goForward];
   [ChromeEarlGrey waitForWebStateContainingText:"bar"];
-  base::test::ios::SpinRunLoopWithMinDelay(base::TimeDelta::FromSecondsD(0.2));
+  base::test::ios::SpinRunLoopWithMinDelay(base::Seconds(0.2));
 
   [ChromeEarlGrey goBack];
   [ChromeEarlGrey waitForWebStateContainingText:errorText];
-  base::test::ios::SpinRunLoopWithMinDelay(base::TimeDelta::FromSecondsD(0.2));
+  base::test::ios::SpinRunLoopWithMinDelay(base::Seconds(0.2));
 
   [ChromeEarlGrey goForward];
   [ChromeEarlGrey waitForWebStateContainingText:"bar"];
diff --git a/ios/chrome/browser/web/font_size/font_size_tab_helper_unittest.mm b/ios/chrome/browser/web/font_size/font_size_tab_helper_unittest.mm
index 6923089a..122a22e 100644
--- a/ios/chrome/browser/web/font_size/font_size_tab_helper_unittest.mm
+++ b/ios/chrome/browser/web/font_size/font_size_tab_helper_unittest.mm
@@ -109,7 +109,7 @@
                     userInfo:nil];
 
     base::test::ios::SpinRunLoopWithMinDelay(
-        base::TimeDelta::FromSecondsD(base::test::ios::kSpinDelaySeconds));
+        base::Seconds(base::test::ios::kSpinDelaySeconds));
   }
 
   std::string ZoomMultiplierPrefKey(UIContentSizeCategory category, GURL url) {
@@ -135,7 +135,7 @@
     LoadHtml(@"<html><body>Content</body></html>", url);
 
     base::test::ios::SpinRunLoopWithMinDelay(
-        base::TimeDelta::FromSecondsD(base::test::ios::kSpinDelaySeconds));
+        base::Seconds(base::test::ios::kSpinDelaySeconds));
   }
 
   // Returns the current value of the WebKit text size adjustment style.
@@ -352,7 +352,7 @@
       FontSizeTabHelper::FromWebState(web_state());
   font_size_tab_helper->UserZoom(ZOOM_IN);
   base::test::ios::SpinRunLoopWithMinDelay(
-      base::TimeDelta::FromSecondsD(base::test::ios::kSpinDelaySeconds));
+      base::Seconds(base::test::ios::kSpinDelaySeconds));
 
   // Make sure the first value is stored in the pref store.
   const base::Value* pref =
diff --git a/ios/chrome/browser/web/forms_egtest.mm b/ios/chrome/browser/web/forms_egtest.mm
index 9ca44fd..ec23226 100644
--- a/ios/chrome/browser/web/forms_egtest.mm
+++ b/ios/chrome/browser/web/forms_egtest.mm
@@ -230,8 +230,7 @@
         std::make_unique<ScopedSynchronizationDisabler>();
     // TODO(crbug.com/989615): Investigate why this is necessary even with a
     // visible check below.
-    base::test::ios::SpinRunLoopWithMinDelay(
-        base::TimeDelta::FromSecondsD(0.5));
+    base::test::ios::SpinRunLoopWithMinDelay(base::Seconds(0.5));
 
     [ChromeEarlGrey
         waitForSufficientlyVisibleElementWithMatcher:ResendPostButtonMatcher()];
@@ -275,8 +274,7 @@
         std::make_unique<ScopedSynchronizationDisabler>();
       // TODO(crbug.com/989615): Investigate why this is necessary even with a
       // visible check below.
-      base::test::ios::SpinRunLoopWithMinDelay(
-          base::TimeDelta::FromSecondsD(0.5));
+    base::test::ios::SpinRunLoopWithMinDelay(base::Seconds(0.5));
 
     [ChromeEarlGrey
         waitForSufficientlyVisibleElementWithMatcher:ResendPostButtonMatcher()];
@@ -319,8 +317,7 @@
         std::make_unique<ScopedSynchronizationDisabler>();
       // TODO(crbug.com/989615): Investigate why this is necessary even with a
       // visible check below.
-      base::test::ios::SpinRunLoopWithMinDelay(
-          base::TimeDelta::FromSecondsD(0.5));
+    base::test::ios::SpinRunLoopWithMinDelay(base::Seconds(0.5));
 
     [ChromeEarlGrey
         waitForSufficientlyVisibleElementWithMatcher:ResendPostButtonMatcher()];
diff --git a/ios/chrome/browser/web/http_auth_egtest.mm b/ios/chrome/browser/web/http_auth_egtest.mm
index 73d4c055f..4ea704c4 100644
--- a/ios/chrome/browser/web/http_auth_egtest.mm
+++ b/ios/chrome/browser/web/http_auth_egtest.mm
@@ -136,7 +136,7 @@
         performAction:grey_tap()];
 
     // Ensure first dialog is dismissed before waiting for the second one.
-    base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(1));
+    base::PlatformThread::Sleep(base::Seconds(1));
     // Verifies that authentication was requested again.
     WaitForHttpAuthDialog();
     [[EarlGrey selectElementWithMatcher:chrome_test_util::CancelButton()]
diff --git a/ios/chrome/browser/web/image_fetch/image_fetch_java_script_feature_unittest.mm b/ios/chrome/browser/web/image_fetch/image_fetch_java_script_feature_unittest.mm
index 603fbe06..3ebfb79d 100644
--- a/ios/chrome/browser/web/image_fetch/image_fetch_java_script_feature_unittest.mm
+++ b/ios/chrome/browser/web/image_fetch/image_fetch_java_script_feature_unittest.mm
@@ -62,7 +62,7 @@
   }
   if (request.GetURL().path() == "/image_delayed") {
     auto result = std::make_unique<net::test_server::DelayedHttpResponse>(
-        base::TimeDelta::FromMilliseconds(kImageDelayInMs));
+        base::Milliseconds(kImageDelayInMs));
     result->set_content_type("image/png");
     result->set_content(image_binary);
     result->AddCustomHeader("Access-Control-Allow-Origin", "*");
diff --git a/ios/chrome/browser/web/image_fetch/image_fetch_tab_helper.mm b/ios/chrome/browser/web/image_fetch/image_fetch_tab_helper.mm
index f0e1830..c7daa2d 100644
--- a/ios/chrome/browser/web/image_fetch/image_fetch_tab_helper.mm
+++ b/ios/chrome/browser/web/image_fetch/image_fetch_tab_helper.mm
@@ -94,7 +94,7 @@
   // |this| is captured into the callback of GetImageDataByJs, which will always
   // be invoked before the |this| is destroyed, so it's safe.
   GetImageDataByJs(
-      url, base::TimeDelta::FromMilliseconds(kGetImageDataByJsTimeout),
+      url, base::Milliseconds(kGetImageDataByJsTimeout),
       base::BindOnce(&ImageFetchTabHelper::JsCallbackOfGetImageData,
                      base::Unretained(this), url, referrer, callback));
 }
diff --git a/ios/chrome/browser/web/page_placeholder_tab_helper.mm b/ios/chrome/browser/web/page_placeholder_tab_helper.mm
index c8e7c42..bf849158 100644
--- a/ios/chrome/browser/web/page_placeholder_tab_helper.mm
+++ b/ios/chrome/browser/web/page_placeholder_tab_helper.mm
@@ -113,7 +113,7 @@
       FROM_HERE,
       base::BindOnce(&PagePlaceholderTabHelper::RemovePlaceholder,
                      weak_factory_.GetWeakPtr()),
-      base::TimeDelta::FromSecondsD(kPlaceholderMaxDisplayTimeInSeconds));
+      base::Seconds(kPlaceholderMaxDisplayTimeInSeconds));
 }
 
 void PagePlaceholderTabHelper::DisplaySnapshotImage(UIImage* snapshot) {
diff --git a/ios/chrome/browser/web/progress_indicator_egtest.mm b/ios/chrome/browser/web/progress_indicator_egtest.mm
index e723d1f..997f5a10 100644
--- a/ios/chrome/browser/web/progress_indicator_egtest.mm
+++ b/ios/chrome/browser/web/progress_indicator_egtest.mm
@@ -87,7 +87,7 @@
           base::AutoLock auto_lock(lock_);
           return terminated_.load(std::memory_order_acquire);
         },
-        false, base::TimeDelta::FromSeconds(10));
+        false, base::Seconds(10));
   }
 
   // HtmlResponseProvider overrides:
diff --git a/ios/chrome/browser/web/session_state/web_session_state_tab_helper_unittest.mm b/ios/chrome/browser/web/session_state/web_session_state_tab_helper_unittest.mm
index 18c58710..f6f7d56 100644
--- a/ios/chrome/browser/web/session_state/web_session_state_tab_helper_unittest.mm
+++ b/ios/chrome/browser/web/session_state/web_session_state_tab_helper_unittest.mm
@@ -114,7 +114,7 @@
   // early, WebKit returns a non-nil data object that it won't restore properly.
   // This is OK, since it will fall back to  legacy session restore when
   // necessary.
-  base::test::ios::SpinRunLoopWithMinDelay(base::TimeDelta::FromSeconds(2));
+  base::test::ios::SpinRunLoopWithMinDelay(base::Seconds(2));
 
   // File should not be saved yet.
   NSString* sessionID =
diff --git a/ios/chrome/browser/web/stop_loading_egtest.mm b/ios/chrome/browser/web/stop_loading_egtest.mm
index 31eee077..8436b91 100644
--- a/ios/chrome/browser/web/stop_loading_egtest.mm
+++ b/ios/chrome/browser/web/stop_loading_egtest.mm
@@ -54,7 +54,7 @@
           base::StringPrintf("<p>%s</p><img src='%s'/>", kPageText,
                              GetInfinitePendingResponseUrl().spec().c_str());
     } else if (request.url == GetInfinitePendingResponseUrl()) {
-      base::PlatformThread::Sleep(base::TimeDelta::FromDays(1));
+      base::PlatformThread::Sleep(base::Days(1));
     } else {
       NOTREACHED();
     }
@@ -115,7 +115,7 @@
     [ChromeEarlGreyUI openToolsMenu];
   }
   // Sleep for UI change because synchronization is disabled.
-  base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(1));
+  base::PlatformThread::Sleep(base::Seconds(1));
 
   // Wait and verify that stop button is visible and reload button is hidden.
   WaitForMatcherVisible(chrome_test_util::StopButton(), @"stop button");
@@ -126,7 +126,7 @@
   [[EarlGrey selectElementWithMatcher:chrome_test_util::StopButton()]
       performAction:grey_tap()];
   // Sleep for UI change because synchronization is disabled.
-  base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(1));
+  base::PlatformThread::Sleep(base::Seconds(1));
   if (![ChromeEarlGrey isIPadIdiom]) {
     // On iPhone Stop/Reload button is a part of tools menu, so open it.
     [ChromeEarlGreyUI openToolsMenu];
diff --git a/ios/chrome/browser/web/window_open_by_dom_egtest.mm b/ios/chrome/browser/web/window_open_by_dom_egtest.mm
index 9d0d370..ac52218 100644
--- a/ios/chrome/browser/web/window_open_by_dom_egtest.mm
+++ b/ios/chrome/browser/web/window_open_by_dom_egtest.mm
@@ -163,7 +163,7 @@
   [ChromeEarlGrey
       tapWebStateElementWithID:@"webScenarioWindowOpenWithDelayedClose"];
   [ChromeEarlGrey waitForMainTabCount:2];
-  base::test::ios::SpinRunLoopWithMinDelay(base::TimeDelta::FromSecondsD(5));
+  base::test::ios::SpinRunLoopWithMinDelay(base::Seconds(5));
   [ChromeEarlGrey waitForMainTabCount:1];
 }
 
diff --git a/ios/chrome/test/app/browsing_data_test_util.mm b/ios/chrome/test/app/browsing_data_test_util.mm
index 35965c8..2450ab5c 100644
--- a/ios/chrome/test/app/browsing_data_test_util.mm
+++ b/ios/chrome/test/app/browsing_data_test_util.mm
@@ -124,8 +124,7 @@
   NSDate* deadline = [NSDate dateWithTimeIntervalSinceNow:4.0];
   while (!history_service_callback_called &&
          [[NSDate date] compare:deadline] != NSOrderedDescending) {
-    base::test::ios::SpinRunLoopWithMaxDelay(
-        base::TimeDelta::FromSecondsD(0.1));
+    base::test::ios::SpinRunLoopWithMaxDelay(base::Seconds(0.1));
   }
 
   NSString* error_message = nil;
diff --git a/ios/chrome/test/app/sync_test_util.mm b/ios/chrome/test/app/sync_test_util.mm
index 6ecebf99..0efaedd 100644
--- a/ios/chrome/test/app/sync_test_util.mm
+++ b/ios/chrome/test/app/sync_test_util.mm
@@ -364,8 +364,7 @@
   NSDate* deadline = [NSDate dateWithTimeIntervalSinceNow:4.0];
   while (!history_service_callback_called &&
          [[NSDate date] compare:deadline] != NSOrderedDescending) {
-    base::test::ios::SpinRunLoopWithMaxDelay(
-        base::TimeDelta::FromSecondsD(0.1));
+    base::test::ios::SpinRunLoopWithMaxDelay(base::Seconds(0.1));
   }
 
   NSString* error_message = nil;
diff --git a/ios/chrome/test/earl_grey/chrome_earl_grey.mm b/ios/chrome/test/earl_grey/chrome_earl_grey.mm
index a3c176ba..bba48ad 100644
--- a/ios/chrome/test/earl_grey/chrome_earl_grey.mm
+++ b/ios/chrome/test/earl_grey/chrome_earl_grey.mm
@@ -254,7 +254,7 @@
 
   // Saving is always performed on a separate thread, so spin the run loop a
   // bit to ensure save.
-  base::test::ios::SpinRunLoopWithMaxDelay(base::TimeDelta::FromSeconds(1));
+  base::test::ios::SpinRunLoopWithMaxDelay(base::Seconds(1));
 }
 
 - (void)setCurrentTabsToBeColdStartTabs {
diff --git a/ios/chrome/test/wpt/cwt_request_handler.mm b/ios/chrome/test/wpt/cwt_request_handler.mm
index d1bcfa5a..194caa2 100644
--- a/ios/chrome/test/wpt/cwt_request_handler.mm
+++ b/ios/chrome/test/wpt/cwt_request_handler.mm
@@ -400,7 +400,7 @@
                                   kChromeInvalidExtraWaitMessage);
         }
         base::test::ios::SpinRunLoopWithMinDelay(
-            base::TimeDelta::FromSeconds(extra_wait->GetInt()));
+            base::Seconds(extra_wait->GetInt()));
       }
     }
 
diff --git a/ios/net/cookies/cookie_creation_time_manager_unittest.mm b/ios/net/cookies/cookie_creation_time_manager_unittest.mm
index dc5c49e..ba6b517 100644
--- a/ios/net/cookies/cookie_creation_time_manager_unittest.mm
+++ b/ios/net/cookies/cookie_creation_time_manager_unittest.mm
@@ -82,8 +82,8 @@
   creation_time_manager_.SetCreationTime(GetCookie(@"C=D"), creation_time);
   // Override |C| with a cookie that has a different time, to make |now|
   // available again.
-  creation_time_manager_.SetCreationTime(
-      GetCookie(@"C=E"), now - base::TimeDelta::FromMilliseconds(1));
+  creation_time_manager_.SetCreationTime(GetCookie(@"C=E"),
+                                         now - base::Milliseconds(1));
   // |now| is available again because |C| was overriden.
   creation_time = creation_time_manager_.MakeUniqueCreationTime(now);
   EXPECT_EQ(now, creation_time);
diff --git a/ios/net/cookies/cookie_store_ios.mm b/ios/net/cookies/cookie_store_ios.mm
index 3d0c96b..cba6b0d5 100644
--- a/ios/net/cookies/cookie_store_ios.mm
+++ b/ios/net/cookies/cookie_store_ios.mm
@@ -551,7 +551,7 @@
                                       weak_factory_.GetWeakPtr(),
                                       base::OnceClosure()));
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, flush_closure_.callback(), base::TimeDelta::FromSeconds(10));
+      FROM_HERE, flush_closure_.callback(), base::Seconds(10));
 }
 
 CookieChangeDispatcher& CookieStoreIOS::GetChangeDispatcher() {
diff --git a/ios/net/cookies/cookie_store_ios_unittest.mm b/ios/net/cookies/cookie_store_ios_unittest.mm
index ded5cca..20242407 100644
--- a/ios/net/cookies/cookie_store_ios_unittest.mm
+++ b/ios/net/cookies/cookie_store_ios_unittest.mm
@@ -244,7 +244,7 @@
   SetCookie("abc=def");
 
   // Time is different, though.
-  base::Time not_now = base::Time::Now() - base::TimeDelta::FromDays(30);
+  base::Time not_now = base::Time::Now() - base::Days(30);
 
   // Semantics for CookieMonster::DeleteCanonicalCookieAsync don't match deletes
   // for same key if cookie value changed.  Document CookieStoreIOS compat.
diff --git a/ios/net/cookies/system_cookie_util_unittest.mm b/ios/net/cookies/system_cookie_util_unittest.mm
index 4f91b59..85ce992 100644
--- a/ios/net/cookies/system_cookie_util_unittest.mm
+++ b/ios/net/cookies/system_cookie_util_unittest.mm
@@ -66,10 +66,8 @@
   // Allow 1 second difference as iOS rounds expiry time to the nearest second.
   base::Time system_cookie_expire_date = base::Time::FromDoubleT(
       [[system_cookie expiresDate] timeIntervalSince1970]);
-  EXPECT_LE(expires - base::TimeDelta::FromSeconds(1),
-            system_cookie_expire_date);
-  EXPECT_GE(expires + base::TimeDelta::FromSeconds(1),
-            system_cookie_expire_date);
+  EXPECT_LE(expires - base::Seconds(1), system_cookie_expire_date);
+  EXPECT_GE(expires + base::Seconds(1), system_cookie_expire_date);
 }
 
 void VerifyGetCookiesResultHistogram(
@@ -86,7 +84,7 @@
 
 TEST_F(CookieUtil, CanonicalCookieFromSystemCookie) {
   base::Time creation_time = base::Time::Now();
-  base::Time expire_date = creation_time + base::TimeDelta::FromHours(2);
+  base::Time expire_date = creation_time + base::Hours(2);
   NSDate* system_expire_date =
       [NSDate dateWithTimeIntervalSince1970:expire_date.ToDoubleT()];
   NSMutableDictionary* properties =
@@ -117,10 +115,8 @@
   EXPECT_TRUE(chrome_cookie->LastAccessDate().is_null());
   EXPECT_TRUE(chrome_cookie->IsPersistent());
   // Allow 1 second difference as iOS rounds expiry time to the nearest second.
-  EXPECT_LE(expire_date - base::TimeDelta::FromSeconds(1),
-            chrome_cookie->ExpiryDate());
-  EXPECT_GE(expire_date + base::TimeDelta::FromSeconds(1),
-            chrome_cookie->ExpiryDate());
+  EXPECT_LE(expire_date - base::Seconds(1), chrome_cookie->ExpiryDate());
+  EXPECT_GE(expire_date + base::Seconds(1), chrome_cookie->ExpiryDate());
   EXPECT_FALSE(chrome_cookie->IsSecure());
   EXPECT_TRUE(chrome_cookie->IsHttpOnly());
   EXPECT_EQ(net::COOKIE_PRIORITY_DEFAULT, chrome_cookie->Priority());
@@ -185,7 +181,7 @@
 }
 
 TEST_F(CookieUtil, SystemCookieFromCanonicalCookie) {
-  base::Time expire_date = base::Time::Now() + base::TimeDelta::FromHours(2);
+  base::Time expire_date = base::Time::Now() + base::Hours(2);
 
   // Test various combinations of session, secure and httponly attributes.
   CheckSystemCookie(expire_date, false, false);
@@ -213,7 +209,7 @@
 }
 
 TEST_F(CookieUtil, SystemCookiesFromCanonicalCookieList) {
-  base::Time expire_date = base::Time::Now() + base::TimeDelta::FromHours(2);
+  base::Time expire_date = base::Time::Now() + base::Hours(2);
   net::CookieList cookie_list = {
       *net::CanonicalCookie::CreateUnsafeCookieForTesting(
           "name1", "value1", "domain1", "path1/",
diff --git a/ios/public/provider/chrome/browser/signin/chrome_identity_service_unittest.mm b/ios/public/provider/chrome/browser/signin/chrome_identity_service_unittest.mm
index feb129d09..360739a8 100644
--- a/ios/public/provider/chrome/browser/signin/chrome_identity_service_unittest.mm
+++ b/ios/public/provider/chrome/browser/signin/chrome_identity_service_unittest.mm
@@ -190,13 +190,13 @@
   base::HistogramTester histogramTester;
   base::ScopedMockClockOverride clock;
   service_.CanOfferExtendedSyncPromos(identity_, /*callback=*/nil);
-  clock.Advance(base::TimeDelta::FromMinutes(1));
+  clock.Advance(base::Minutes(1));
   service_.RunFinishCapabilitiesCompletion(
       @{@(kCanOfferExtendedChromeSyncPromosCapabilityName) : @0},
       /*error=*/nil);
   histogramTester.ExpectUniqueTimeSample(
       "Signin.AccountCapabilities.GetFromSystemLibraryDuration",
-      base::TimeDelta::FromMinutes(1),
+      base::Minutes(1),
       /*expected_bucket_count=*/1);
 }
 
diff --git a/ios/testing/embedded_test_server_handlers.cc b/ios/testing/embedded_test_server_handlers.cc
index e815e1c8..204a0de9 100644
--- a/ios/testing/embedded_test_server_handlers.cc
+++ b/ios/testing/embedded_test_server_handlers.cc
@@ -71,7 +71,7 @@
         FROM_HERE,
         base::BindOnce(&net::test_server::HttpResponseDelegate::SendContents,
                        delegate, content_block, std::move(next_send)),
-        base::TimeDelta::FromMilliseconds(100));
+        base::Milliseconds(100));
   }
 
   int length_ = 0;
diff --git a/ios/web/browsing_data/browsing_data_remover_unittest.mm b/ios/web/browsing_data/browsing_data_remover_unittest.mm
index 2a6cabc..e10f872 100644
--- a/ios/web/browsing_data/browsing_data_remover_unittest.mm
+++ b/ios/web/browsing_data/browsing_data_remover_unittest.mm
@@ -94,9 +94,8 @@
   base::OnceClosure closure = base::BindOnce(^{
     closure_called = true;
   });
-  remover->ClearBrowsingData(
-      types, base::Time::Now() - base::TimeDelta::FromMinutes(1),
-      std::move(closure));
+  remover->ClearBrowsingData(types, base::Time::Now() - base::Minutes(1),
+                             std::move(closure));
 
   return WaitUntilConditionOrTimeout(kWaitForCookiesTimeout, ^bool {
     return closure_called;
diff --git a/ios/web/download/download_task_impl_unittest.mm b/ios/web/download/download_task_impl_unittest.mm
index 0c061f0..326631c7 100644
--- a/ios/web/download/download_task_impl_unittest.mm
+++ b/ios/web/download/download_task_impl_unittest.mm
@@ -545,7 +545,7 @@
       net::CanonicalCookie::CreateUnsafeCookieForTesting(
           "name", "value", cookie_url.host(), cookie_url.path(),
           /*creation=*/now,
-          /*expire_date=*/now + base::TimeDelta::FromHours(2),
+          /*expire_date=*/now + base::Hours(2),
           /*last_access=*/now,
           /*secure=*/false,
           /*httponly=*/false, net::CookieSameSite::UNSPECIFIED,
diff --git a/ios/web/find_in_page/find_in_page_java_script_feature.mm b/ios/web/find_in_page/find_in_page_java_script_feature.mm
index 5656be2ae..f481e34 100644
--- a/ios/web/find_in_page/find_in_page_java_script_feature.mm
+++ b/ios/web/find_in_page/find_in_page_java_script_feature.mm
@@ -69,7 +69,7 @@
       frame, kFindInPageSearch, params,
       base::BindOnce(&FindInPageJavaScriptFeature::ProcessSearchResult,
                      base::Unretained(GetInstance()), std::move(callback)),
-      base::TimeDelta::FromMilliseconds(kJavaScriptFunctionCallTimeout));
+      base::Milliseconds(kJavaScriptFunctionCallTimeout));
 }
 
 void FindInPageJavaScriptFeature::Pump(
@@ -81,7 +81,7 @@
       frame, kFindInPagePump, params,
       base::BindOnce(&FindInPageJavaScriptFeature::ProcessSearchResult,
                      base::Unretained(GetInstance()), std::move(callback)),
-      base::TimeDelta::FromMilliseconds(kJavaScriptFunctionCallTimeout));
+      base::Milliseconds(kJavaScriptFunctionCallTimeout));
 }
 
 void FindInPageJavaScriptFeature::SelectMatch(
@@ -90,9 +90,9 @@
     base::OnceCallback<void(const base::Value*)> callback) {
   std::vector<base::Value> params;
   params.push_back(base::Value(index));
-  CallJavaScriptFunction(
-      frame, kFindInPageSelectAndScrollToMatch, params, std::move(callback),
-      base::TimeDelta::FromMilliseconds(kJavaScriptFunctionCallTimeout));
+  CallJavaScriptFunction(frame, kFindInPageSelectAndScrollToMatch, params,
+                         std::move(callback),
+                         base::Milliseconds(kJavaScriptFunctionCallTimeout));
 }
 
 void FindInPageJavaScriptFeature::Stop(WebFrame* frame) {
diff --git a/ios/web/find_in_page/find_in_page_js_unittest.mm b/ios/web/find_in_page/find_in_page_js_unittest.mm
index b3afe4e..d211a7a 100644
--- a/ios/web/find_in_page/find_in_page_js_unittest.mm
+++ b/ios/web/find_in_page/find_in_page_js_unittest.mm
@@ -94,7 +94,7 @@
   ASSERT_TRUE(WaitForWebFramesCount(1));
 
   const base::TimeDelta kCallJavascriptFunctionTimeout =
-      base::TimeDelta::FromSeconds(kWaitForJSCompletionTimeout);
+      base::Seconds(kWaitForJSCompletionTimeout);
   __block bool message_received = false;
   std::vector<base::Value> params;
   params.push_back(base::Value(kFindStringFoo));
@@ -122,7 +122,7 @@
   ASSERT_TRUE(WaitForWebFramesCount(1));
 
   const base::TimeDelta kCallJavascriptFunctionTimeout =
-      base::TimeDelta::FromSeconds(kWaitForJSCompletionTimeout);
+      base::Seconds(kWaitForJSCompletionTimeout);
   __block bool message_received = false;
   std::vector<base::Value> params;
   params.push_back(base::Value(kFindStringFoo));
@@ -151,7 +151,7 @@
   ASSERT_TRUE(WaitForWebFramesCount(2));
 
   const base::TimeDelta kCallJavascriptFunctionTimeout =
-      base::TimeDelta::FromSeconds(kWaitForJSCompletionTimeout);
+      base::Seconds(kWaitForJSCompletionTimeout);
   std::set<WebFrameImpl*> all_frames = all_web_frames();
   __block bool message_received = false;
   WebFrameInternal* child_frame = nullptr;
@@ -186,7 +186,7 @@
   ASSERT_TRUE(WaitForWebFramesCount(1));
 
   const base::TimeDelta kCallJavascriptFunctionTimeout =
-      base::TimeDelta::FromSeconds(kWaitForJSCompletionTimeout);
+      base::Seconds(kWaitForJSCompletionTimeout);
   __block bool message_received = false;
   std::vector<base::Value> params;
   params.push_back(base::Value(" "));
@@ -213,7 +213,7 @@
   ASSERT_TRUE(WaitForWebFramesCount(1));
 
   const base::TimeDelta kCallJavascriptFunctionTimeout =
-      base::TimeDelta::FromSeconds(kWaitForJSCompletionTimeout);
+      base::Seconds(kWaitForJSCompletionTimeout);
   __block bool message_received = false;
   std::vector<base::Value> params;
   params.push_back(base::Value(kFindString12345));
@@ -240,7 +240,7 @@
   ASSERT_TRUE(WaitForWebFramesCount(1));
 
   const base::TimeDelta kCallJavascriptFunctionTimeout =
-      base::TimeDelta::FromSeconds(kWaitForJSCompletionTimeout);
+      base::Seconds(kWaitForJSCompletionTimeout);
   __block bool message_received = false;
   std::vector<base::Value> params;
   params.push_back(base::Value(kFindStringFoo));
@@ -288,7 +288,7 @@
   ASSERT_TRUE(WaitForWebFramesCount(1));
 
   const base::TimeDelta kCallJavascriptFunctionTimeout =
-      base::TimeDelta::FromSeconds(kWaitForJSCompletionTimeout);
+      base::Seconds(kWaitForJSCompletionTimeout);
   __block bool message_received = false;
   std::vector<base::Value> params;
   params.push_back(base::Value(kFindStringFoo));
@@ -360,7 +360,7 @@
   ASSERT_TRUE(WaitForWebFramesCount(1));
 
   const base::TimeDelta kCallJavascriptFunctionTimeout =
-      base::TimeDelta::FromSeconds(kWaitForJSCompletionTimeout);
+      base::Seconds(kWaitForJSCompletionTimeout);
   __block bool message_received = false;
   std::vector<base::Value> params;
   params.push_back(base::Value(kFindStringFoo));
@@ -404,7 +404,7 @@
   ASSERT_TRUE(WaitForWebFramesCount(1));
 
   const base::TimeDelta kCallJavascriptFunctionTimeout =
-      base::TimeDelta::FromSeconds(kWaitForJSCompletionTimeout);
+      base::Seconds(kWaitForJSCompletionTimeout);
   __block bool message_received = false;
   std::vector<base::Value> params;
   params.push_back(base::Value("école"));
@@ -437,7 +437,7 @@
   ASSERT_TRUE(WaitForWebFramesCount(1));
 
   const base::TimeDelta kCallJavascriptFunctionTimeout =
-      base::TimeDelta::FromSeconds(kWaitForJSCompletionTimeout);
+      base::Seconds(kWaitForJSCompletionTimeout);
   __block bool message_received = false;
   std::vector<base::Value> params;
   params.push_back(base::Value("foo"));
@@ -486,7 +486,7 @@
   ASSERT_TRUE(WaitForWebFramesCount(1));
 
   const base::TimeDelta kCallJavascriptFunctionTimeout =
-      base::TimeDelta::FromSeconds(kWaitForJSCompletionTimeout);
+      base::Seconds(kWaitForJSCompletionTimeout);
   // Do a search to ensure match highlighting is cleared properly.
   __block bool message_received = false;
   std::vector<base::Value> params;
@@ -544,7 +544,7 @@
   ASSERT_TRUE(WaitForWebFramesCount(1));
 
   const base::TimeDelta kCallJavascriptFunctionTimeout =
-      base::TimeDelta::FromSeconds(kWaitForJSCompletionTimeout);
+      base::Seconds(kWaitForJSCompletionTimeout);
   __block bool message_received = false;
   std::vector<base::Value> params;
   params.push_back(base::Value(kFindStringFoo));
@@ -595,7 +595,7 @@
   ASSERT_TRUE(WaitForWebFramesCount(1));
 
   const base::TimeDelta kCallJavascriptFunctionTimeout =
-      base::TimeDelta::FromSeconds(kWaitForJSCompletionTimeout);
+      base::Seconds(kWaitForJSCompletionTimeout);
   __block bool message_received = false;
   std::vector<base::Value> params;
   params.push_back(base::Value(kFindStringFoo));
@@ -648,7 +648,7 @@
   ASSERT_TRUE(WaitForWebFramesCount(1));
 
   const base::TimeDelta kCallJavascriptFunctionTimeout =
-      base::TimeDelta::FromSeconds(kWaitForJSCompletionTimeout);
+      base::Seconds(kWaitForJSCompletionTimeout);
   __block bool message_received = false;
   std::vector<base::Value> params;
   params.push_back(base::Value(kFindStringFoo));
diff --git a/ios/web/js_messaging/web_frame_impl_inttest.mm b/ios/web/js_messaging/web_frame_impl_inttest.mm
index 3f19bd03..48be4ec5 100644
--- a/ios/web/js_messaging/web_frame_impl_inttest.mm
+++ b/ios/web/js_messaging/web_frame_impl_inttest.mm
@@ -65,7 +65,7 @@
         called = true;
       }),
       // Increase feature timeout in order to fail on test specific timeout.
-      base::TimeDelta::FromSeconds(2 * js_timeout));
+      base::Seconds(2 * js_timeout));
 
   EXPECT_TRUE(WaitUntilConditionOrTimeout(js_timeout, ^bool {
     return called;
@@ -94,7 +94,7 @@
         called = true;
       }),
       // Increase feature timeout in order to fail on test specific timeout.
-      base::TimeDelta::FromSeconds(2 * js_timeout));
+      base::Seconds(2 * js_timeout));
 
   EXPECT_TRUE(WaitUntilConditionOrTimeout(js_timeout, ^bool {
     return called;
@@ -124,7 +124,7 @@
       // case tests the timeout, it will take at least this long to execute.
       // This value should be very small to avoid increasing test suite
       // execution time, but long enough to avoid flake.
-      base::TimeDelta::FromMilliseconds(5));
+      base::Milliseconds(5));
 
   EXPECT_TRUE(WaitUntilConditionOrTimeout(kWaitForJSCompletionTimeout, ^bool {
     base::RunLoop().RunUntilIdle();
@@ -182,7 +182,7 @@
         called = true;
       }),
       // Increase feature timeout in order to fail on test specific timeout.
-      base::TimeDelta::FromSeconds(2 * js_timeout));
+      base::Seconds(2 * js_timeout));
 
   EXPECT_TRUE(WaitUntilConditionOrTimeout(js_timeout, ^bool {
     return called;
@@ -292,7 +292,7 @@
           called = true;
         }),
         // Increase feature timeout in order to fail on test specific timeout.
-        base::TimeDelta::FromSeconds(2 * js_timeout)));
+        base::Seconds(2 * js_timeout)));
   }
 
   EXPECT_TRUE(WaitUntilConditionOrTimeout(js_timeout, ^bool {
@@ -338,7 +338,7 @@
           called = true;
         }),
         // Increase feature timeout in order to fail on test specific timeout.
-        base::TimeDelta::FromSeconds(2 * js_timeout)));
+        base::Seconds(2 * js_timeout)));
   }
 
   EXPECT_TRUE(WaitUntilConditionOrTimeout(js_timeout, ^bool {
diff --git a/ios/web/js_messaging/web_frame_impl_unittest.mm b/ios/web/js_messaging/web_frame_impl_unittest.mm
index 413da2f..3764b60 100644
--- a/ios/web/js_messaging/web_frame_impl_unittest.mm
+++ b/ios/web/js_messaging/web_frame_impl_unittest.mm
@@ -360,7 +360,7 @@
       "functionName", function_params,
       base::BindOnce(^(const base::Value* value){
       }),
-      base::TimeDelta::FromSeconds(5)));
+      base::Seconds(5)));
 
   NSString* last_script =
       base::SysUTF16ToNSString(fake_web_state.GetLastExecutedJavascript());
diff --git a/ios/web/navigation/time_smoother.cc b/ios/web/navigation/time_smoother.cc
index b8aaec68..1026fd9 100644
--- a/ios/web/navigation/time_smoother.cc
+++ b/ios/web/navigation/time_smoother.cc
@@ -12,7 +12,7 @@
   // or just getting out of it, so increase the high-water mark to get
   // a time that probably hasn't been used before and return it.
   if (low_water_mark_ <= t && t <= high_water_mark_) {
-    high_water_mark_ += base::TimeDelta::FromMicroseconds(1);
+    high_water_mark_ += base::Microseconds(1);
     return high_water_mark_;
   }
 
diff --git a/ios/web/public/test/earl_grey/js_test_util.mm b/ios/web/public/test/earl_grey/js_test_util.mm
index 5237c86..cf1c802 100644
--- a/ios/web/public/test/earl_grey/js_test_util.mm
+++ b/ios/web/public/test/earl_grey/js_test_util.mm
@@ -53,8 +53,7 @@
   bool is_unrecoverable_error = false;
 
   base::ElapsedTimer timer;
-  base::TimeDelta timeout =
-      base::TimeDelta::FromSeconds(kWaitForJSCompletionTimeout);
+  base::TimeDelta timeout = base::Seconds(kWaitForJSCompletionTimeout);
 
   // Keep polling until either the JavaScript execution returns with expected
   // value (indicating that Window ID is set), the timeout occurs, or an
diff --git a/ios/web/public/test/http_server/delayed_response_provider.mm b/ios/web/public/test/http_server/delayed_response_provider.mm
index d6befcff..f689eb3d 100644
--- a/ios/web/public/test/http_server/delayed_response_provider.mm
+++ b/ios/web/public/test/http_server/delayed_response_provider.mm
@@ -34,7 +34,7 @@
 DelayedResponseProvider::GetEmbeddedTestServerResponse(const Request& request) {
   std::unique_ptr<net::test_server::BasicHttpResponse> http_response(
       std::make_unique<net::test_server::DelayedHttpResponse>(
-          base::TimeDelta::FromSecondsD(delay_)));
+          base::Seconds(delay_)));
   http_response->set_content_type("text/html");
   http_response->set_content("Slow Page");
   return std::move(http_response);
diff --git a/ios/web/public/test/js_test_storage_util.mm b/ios/web/public/test/js_test_storage_util.mm
index 1bb9b624..2ca1563a 100644
--- a/ios/web/public/test/js_test_storage_util.mm
+++ b/ios/web/public/test/js_test_storage_util.mm
@@ -56,11 +56,10 @@
 bool ExecuteJavaScriptInFrame(WebFrame* web_frame,
                               const std::string& name,
                               const std::vector<base::Value>& parameters) {
-  return ExecuteJavaScriptInFrame(
-      web_frame, name, parameters,
-      base::BindOnce(^(const base::Value*){
-      }),
-      base::TimeDelta::FromSeconds(kWaitForJSCompletionTimeout));
+  return ExecuteJavaScriptInFrame(web_frame, name, parameters,
+                                  base::BindOnce(^(const base::Value*){
+                                  }),
+                                  base::Seconds(kWaitForJSCompletionTimeout));
 }
 
 // Saves |key|, |value| to a Javascript storage type in |web_frame| using the
@@ -87,7 +86,7 @@
           set_success = true;
         }
       }),
-      base::TimeDelta::FromSeconds(kWaitForJSCompletionTimeout));
+      base::Seconds(kWaitForJSCompletionTimeout));
   if (error_message) {
     *error_message = block_error_message;
   }
@@ -122,7 +121,7 @@
           lookup_success = false;
         }
       }),
-      base::TimeDelta::FromSeconds(kWaitForJSCompletionTimeout));
+      base::Seconds(kWaitForJSCompletionTimeout));
 
   if (error_message) {
     *error_message = block_error_message;
@@ -269,7 +268,7 @@
         ASSERT_TRUE(value->is_string());
         result = base::SysUTF8ToNSString(value->GetString());
       }),
-      base::TimeDelta::FromSeconds(kWaitForJSCompletionTimeout));
+      base::Seconds(kWaitForJSCompletionTimeout));
   if (cookies) {
     *cookies = result;
   }
diff --git a/ios/web/public/test/web_test_with_web_state.mm b/ios/web/public/test/web_test_with_web_state.mm
index 11d2638f..1c642ef 100644
--- a/ios/web/public/test/web_test_with_web_state.mm
+++ b/ios/web/public/test/web_test_with_web_state.mm
@@ -199,8 +199,7 @@
 }
 
 void WebTestWithWebState::WaitForCondition(ConditionBlock condition) {
-  base::test::ios::WaitUntilCondition(condition, true,
-                                      base::TimeDelta::FromSeconds(1000));
+  base::test::ios::WaitUntilCondition(condition, true, base::Seconds(1000));
 }
 
 bool WebTestWithWebState::WaitUntilLoaded() {
diff --git a/ios/web/public/test/web_view_interaction_test_util.mm b/ios/web/public/test/web_view_interaction_test_util.mm
index 3c36f79..a13691ee 100644
--- a/ios/web/public/test/web_view_interaction_test_util.mm
+++ b/ios/web/public/test/web_view_interaction_test_util.mm
@@ -118,7 +118,7 @@
           result = value->CreateDeepCopy();
         did_finish = true;
       }),
-      base::TimeDelta::FromSecondsD(kWaitForJSCompletionTimeout));
+      base::Seconds(kWaitForJSCompletionTimeout));
 
   if (!function_call_successful) {
     DLOG(ERROR) << "JavaScript failed to be called on WebFrame.";
@@ -159,7 +159,7 @@
   // As of iOS 13.1, devices need additional time to stabalize the page before
   // getting the element location. Without this wait, the element's bounding
   // rect will be incorrect.
-  base::test::ios::SpinRunLoopWithMinDelay(base::TimeDelta::FromSecondsD(0.5));
+  base::test::ios::SpinRunLoopWithMinDelay(base::Seconds(0.5));
 #endif
 
   std::string selector_script =
diff --git a/ios/web/security/wk_web_view_security_util_unittest.mm b/ios/web/security/wk_web_view_security_util_unittest.mm
index 6aed6f2..b036677 100644
--- a/ios/web/security/wk_web_view_security_util_unittest.mm
+++ b/ios/web/security/wk_web_view_security_util_unittest.mm
@@ -38,9 +38,8 @@
   std::unique_ptr<crypto::RSAPrivateKey> private_key;
   std::string der_cert;
   net::x509_util::CreateKeyAndSelfSignedCert(
-      "CN=" + subject, 1, base::Time::Now(),
-      base::Time::Now() + base::TimeDelta::FromDays(1), &private_key,
-      &der_cert);
+      "CN=" + subject, 1, base::Time::Now(), base::Time::Now() + base::Days(1),
+      &private_key, &der_cert);
 
   base::ScopedCFTypeRef<SecCertificateRef> cert(
       net::x509_util::CreateSecCertificateFromBytes(
diff --git a/ios/web/test/fakes/fake_java_script_feature.mm b/ios/web/test/fakes/fake_java_script_feature.mm
index 27e3d83..e09ee4dd 100644
--- a/ios/web/test/fakes/fake_java_script_feature.mm
+++ b/ios/web/test/fakes/fake_java_script_feature.mm
@@ -77,7 +77,7 @@
     WebFrame* web_frame,
     base::OnceCallback<void(const base::Value*)> callback) {
   CallJavaScriptFunction(web_frame, kGetErrorCount, {}, std::move(callback),
-                         base::TimeDelta::FromSeconds(kGetErrorCountTimeout));
+                         base::Seconds(kGetErrorCountTimeout));
 }
 
 absl::optional<std::string> FakeJavaScriptFeature::GetScriptMessageHandlerName()
diff --git a/ios/web/web_state/ui/crw_context_menu_element_fetcher_inttest.mm b/ios/web/web_state/ui/crw_context_menu_element_fetcher_inttest.mm
index 58f4690..16d4de8 100644
--- a/ios/web/web_state/ui/crw_context_menu_element_fetcher_inttest.mm
+++ b/ios/web/web_state/ui/crw_context_menu_element_fetcher_inttest.mm
@@ -73,8 +73,7 @@
     if (element_present) {
       // If the element is present, we still need a small delay to let all the
       // scripts be injected in the page.
-      base::test::ios::SpinRunLoopWithMinDelay(
-          base::TimeDelta::FromSecondsD(0.5));
+      base::test::ios::SpinRunLoopWithMinDelay(base::Seconds(0.5));
     }
     return element_present;
   }
diff --git a/ios/web/web_state/web_state_unittest.mm b/ios/web/web_state/web_state_unittest.mm
index f702891..e3130cf 100644
--- a/ios/web/web_state/web_state_unittest.mm
+++ b/ios/web/web_state/web_state_unittest.mm
@@ -187,7 +187,7 @@
   // The subview is added but not immediately painted, so a small delay is
   // necessary.
   CGRect rect = [web_state()->GetView() bounds];
-  base::test::ios::SpinRunLoopWithMinDelay(base::TimeDelta::FromSecondsD(0.2));
+  base::test::ios::SpinRunLoopWithMinDelay(base::Seconds(0.2));
   web_state()->TakeSnapshot(
       gfx::RectF(rect), base::BindRepeating(^(const gfx::Image& snapshot) {
         ASSERT_FALSE(snapshot.IsEmpty());
diff --git a/ipc/ipc_cpu_perftest.cc b/ipc/ipc_cpu_perftest.cc
index d1e886c..59b56642 100644
--- a/ipc/ipc_cpu_perftest.cc
+++ b/ipc/ipc_cpu_perftest.cc
@@ -59,7 +59,7 @@
 }
 
 base::TimeDelta GetFrameTime(size_t frames_per_second) {
-  return base::TimeDelta::FromSecondsD(1.0 / frames_per_second);
+  return base::Seconds(1.0 / frames_per_second);
 }
 
 class PerfCpuLogger {
diff --git a/ipc/ipc_logging.cc b/ipc/ipc_logging.cc
index 4d8c556..19b293d 100644
--- a/ipc/ipc_logging.cc
+++ b/ipc/ipc_logging.cc
@@ -236,7 +236,7 @@
         base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
             FROM_HERE,
             base::BindOnce(&Logging::OnSendLogs, base::Unretained(this)),
-            base::TimeDelta::FromMilliseconds(kLogSendDelayMs));
+            base::Milliseconds(kLogSendDelayMs));
       }
     }
   }
diff --git a/jingle/glue/thread_wrapper.cc b/jingle/glue/thread_wrapper.cc
index b7c645a..382a157 100644
--- a/jingle/glue/thread_wrapper.cc
+++ b/jingle/glue/thread_wrapper.cc
@@ -23,8 +23,7 @@
 
 namespace jingle_glue {
 namespace {
-constexpr base::TimeDelta kTaskLatencySampleDuration =
-    base::TimeDelta::FromSeconds(3);
+constexpr base::TimeDelta kTaskLatencySampleDuration = base::Seconds(3);
 }
 
 // Class intended to conditionally live for the duration of JingleThreadWrapper
@@ -322,7 +321,7 @@
     task_runner_->PostDelayedTask(
         FROM_HERE,
         base::BindOnce(&JingleThreadWrapper::RunTask, weak_ptr_, task_id),
-        base::TimeDelta::FromMilliseconds(delay_ms));
+        base::Milliseconds(delay_ms));
   }
 }
 
@@ -339,7 +338,7 @@
       FROM_HERE,
       base::BindOnce(&JingleThreadWrapper::RunTaskQueueTask, weak_ptr_,
                      std::move(task)),
-      base::TimeDelta::FromMilliseconds(milliseconds));
+      base::Milliseconds(milliseconds));
 }
 
 absl::optional<base::TimeTicks> JingleThreadWrapper::PrepareRunTask() {
diff --git a/jingle/glue/thread_wrapper_unittest.cc b/jingle/glue/thread_wrapper_unittest.cc
index 5e7f58c..f6e02e4 100644
--- a/jingle/glue/thread_wrapper_unittest.cc
+++ b/jingle/glue/thread_wrapper_unittest.cc
@@ -155,8 +155,7 @@
 
   base::RunLoop run_loop;
   task_environment_.GetMainThreadTaskRunner()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(),
-      base::TimeDelta::FromMilliseconds(kMaxTestDelay));
+      FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(kMaxTestDelay));
   run_loop.Run();
 }
 
@@ -211,8 +210,7 @@
 
   base::RunLoop run_loop;
   task_environment_.GetMainThreadTaskRunner()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(),
-      base::TimeDelta::FromMilliseconds(kMaxTestDelay));
+      FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(kMaxTestDelay));
   run_loop.Run();
 }
 
diff --git a/jingle/notifier/communicator/login.cc b/jingle/notifier/communicator/login.cc
index 9b6ae0b..972ec93 100644
--- a/jingle/notifier/communicator/login.cc
+++ b/jingle/notifier/communicator/login.cc
@@ -112,13 +112,13 @@
 void Login::OnNetworkEvent() {
   // Reconnect in 1 to 9 seconds (vary the time a little to try to
   // avoid spikey behavior on network hiccups).
-  reconnect_interval_ = base::TimeDelta::FromSeconds(base::RandInt(1, 9));
+  reconnect_interval_ = base::Seconds(base::RandInt(1, 9));
   TryReconnect();
   delegate_->OnTransientDisconnection();
 }
 
 void Login::ResetReconnectState() {
-  reconnect_interval_ = base::TimeDelta::FromSeconds(base::RandInt(5, 25));
+  reconnect_interval_ = base::Seconds(base::RandInt(5, 25));
   reconnect_timer_.Stop();
 }
 
@@ -134,8 +134,7 @@
 
 void Login::DoReconnect() {
   // Double reconnect time up to 30 minutes.
-  const base::TimeDelta kMaxReconnectInterval =
-      base::TimeDelta::FromMinutes(30);
+  const base::TimeDelta kMaxReconnectInterval = base::Minutes(30);
   reconnect_interval_ *= 2;
   if (reconnect_interval_ > kMaxReconnectInterval)
     reconnect_interval_ = kMaxReconnectInterval;
diff --git a/jingle/notifier/communicator/login_settings.cc b/jingle/notifier/communicator/login_settings.cc
index 87b969fce..b9e2012 100644
--- a/jingle/notifier/communicator/login_settings.cc
+++ b/jingle/notifier/communicator/login_settings.cc
@@ -54,8 +54,7 @@
     const ServerInformation& redirect_server) {
   redirect_server_ = redirect_server;
   redirect_expiration_ =
-      base::Time::Now() +
-      base::TimeDelta::FromMinutes(kRedirectExpirationTimeMinutes);
+      base::Time::Now() + base::Minutes(kRedirectExpirationTimeMinutes);
 }
 
 ServerList LoginSettings::GetServersForTimeForTest(base::Time now) const {
diff --git a/jingle/notifier/communicator/login_settings_unittest.cc b/jingle/notifier/communicator/login_settings_unittest.cc
index 5de7c85..c37ac1c1 100644
--- a/jingle/notifier/communicator/login_settings_unittest.cc
+++ b/jingle/notifier/communicator/login_settings_unittest.cc
@@ -55,10 +55,8 @@
   login_settings.SetRedirectServer(redirect_server);
 
   {
-    const ServerList& servers =
-        login_settings.GetServersForTimeForTest(
-            login_settings.GetRedirectExpirationForTest() -
-            base::TimeDelta::FromMilliseconds(1));
+    const ServerList& servers = login_settings.GetServersForTimeForTest(
+        login_settings.GetRedirectExpirationForTest() - base::Milliseconds(1));
     ASSERT_EQ(servers_.size(), 1u);
     EXPECT_TRUE(servers[0].Equals(redirect_server));
   }
diff --git a/media/audio/agc_audio_stream.h b/media/audio/agc_audio_stream.h
index 1d387f4..41448c55 100644
--- a/media/audio/agc_audio_stream.h
+++ b/media/audio/agc_audio_stream.h
@@ -101,9 +101,8 @@
     // volume from 0.
     QueryAndStoreNewMicrophoneVolume();
 
-    timer_.Start(FROM_HERE,
-        base::TimeDelta::FromMilliseconds(kIntervalBetweenVolumeUpdatesMs),
-        this, &AgcAudioStream::QueryAndStoreNewMicrophoneVolume);
+    timer_.Start(FROM_HERE, base::Milliseconds(kIntervalBetweenVolumeUpdatesMs),
+                 this, &AgcAudioStream::QueryAndStoreNewMicrophoneVolume);
   }
 
   // Stops the periodic timer which periodically checks and updates the
diff --git a/media/audio/alive_checker_unittest.cc b/media/audio/alive_checker_unittest.cc
index a2f13bd..729cf86 100644
--- a/media/audio/alive_checker_unittest.cc
+++ b/media/audio/alive_checker_unittest.cc
@@ -182,8 +182,7 @@
       alive_checker_ = std::make_unique<AliveChecker>(
           base::BindRepeating(&AliveCheckerTest::OnDetectedDead,
                               base::Unretained(this)),
-          base::TimeDelta::FromMilliseconds(kCheckIntervalMs),
-          base::TimeDelta::FromMilliseconds(kTimeoutMs),
+          base::Milliseconds(kCheckIntervalMs), base::Milliseconds(kTimeoutMs),
           stop_at_first_alive_notification,
           base::BindOnce(&AliveCheckerTest::CreatePowerObserverHelper,
                          base::Unretained(this)));
@@ -191,8 +190,7 @@
       alive_checker_ = std::make_unique<AliveChecker>(
           base::BindRepeating(&AliveCheckerTest::OnDetectedDead,
                               base::Unretained(this)),
-          base::TimeDelta::FromMilliseconds(kCheckIntervalMs),
-          base::TimeDelta::FromMilliseconds(kTimeoutMs),
+          base::Milliseconds(kCheckIntervalMs), base::Milliseconds(kTimeoutMs),
           stop_at_first_alive_notification, false);
     }
 
@@ -233,7 +231,7 @@
   // It can take up to the timeout + the check interval until detection. Add a
   // margin to this.
   EXPECT_FALSE(WaitUntilDetectedDeadWithTimeout(
-      base::TimeDelta::FromMilliseconds(kTimeoutMs + kCheckIntervalMs + 10)));
+      base::Milliseconds(kTimeoutMs + kCheckIntervalMs + 10)));
   EXPECT_FALSE(GetDetectedDead());
 }
 
@@ -253,7 +251,7 @@
   // margin to this. The detect state should still be that we have detected
   // dead.
   EXPECT_FALSE(WaitUntilDetectedDeadWithTimeout(
-      base::TimeDelta::FromMilliseconds(kTimeoutMs + kCheckIntervalMs + 10)));
+      base::Milliseconds(kTimeoutMs + kCheckIntervalMs + 10)));
   EXPECT_TRUE(GetDetectedDead());
 
   // Start again, the detect state should be reset.
@@ -274,8 +272,7 @@
   StartAliveChecker();
   EXPECT_FALSE(GetDetectedDead());
 
-  NotifyAliveMultipleTimes(
-      10, base::TimeDelta::FromMilliseconds(kNotifyIntervalMs));
+  NotifyAliveMultipleTimes(10, base::Milliseconds(kNotifyIntervalMs));
   EXPECT_FALSE(GetDetectedDead());
 
   StopAliveChecker();
@@ -284,7 +281,7 @@
   // It can take up to the timeout + the check interval until detection. Add a
   // margin to this.
   EXPECT_FALSE(WaitUntilDetectedDeadWithTimeout(
-      base::TimeDelta::FromMilliseconds(kTimeoutMs + kCheckIntervalMs + 10)));
+      base::Milliseconds(kTimeoutMs + kCheckIntervalMs + 10)));
   EXPECT_FALSE(GetDetectedDead());
 }
 
@@ -296,15 +293,13 @@
   CreateAliveChecker(false, false);
 
   StartAliveChecker();
-  NotifyAliveMultipleTimes(
-      10, base::TimeDelta::FromMilliseconds(kNotifyIntervalMs));
+  NotifyAliveMultipleTimes(10, base::Milliseconds(kNotifyIntervalMs));
   WaitUntilDetectedDead();
   EXPECT_TRUE(GetDetectedDead());
 
   StartAliveChecker();
   EXPECT_FALSE(GetDetectedDead());
-  NotifyAliveMultipleTimes(
-      10, base::TimeDelta::FromMilliseconds(kNotifyIntervalMs));
+  NotifyAliveMultipleTimes(10, base::Milliseconds(kNotifyIntervalMs));
   EXPECT_FALSE(GetDetectedDead());
   WaitUntilDetectedDead();
   EXPECT_TRUE(GetDetectedDead());
@@ -321,7 +316,7 @@
   // It can take up to the timeout + the check interval until detection. Add a
   // margin to this.
   EXPECT_FALSE(WaitUntilDetectedDeadWithTimeout(
-      base::TimeDelta::FromMilliseconds(kTimeoutMs + kCheckIntervalMs + 10)));
+      base::Milliseconds(kTimeoutMs + kCheckIntervalMs + 10)));
   EXPECT_FALSE(GetDetectedDead());
 }
 
@@ -351,8 +346,7 @@
   StartAliveChecker();
   EXPECT_FALSE(GetDetectedDead());
 
-  NotifyAliveMultipleTimes(
-      10, base::TimeDelta::FromMilliseconds(kNotifyIntervalMs));
+  NotifyAliveMultipleTimes(10, base::Milliseconds(kNotifyIntervalMs));
 
   alive_checker_thread_.task_runner()->PostTask(
       FROM_HERE, base::BindOnce(&MockPowerObserverHelper::Suspend,
@@ -361,7 +355,7 @@
   // It can take up to the timeout + the check interval until detection. Add a
   // margin to this.
   EXPECT_FALSE(WaitUntilDetectedDeadWithTimeout(
-      base::TimeDelta::FromMilliseconds(kTimeoutMs + kCheckIntervalMs + 10)));
+      base::Milliseconds(kTimeoutMs + kCheckIntervalMs + 10)));
   EXPECT_FALSE(GetDetectedDead());
 
   alive_checker_thread_.task_runner()->PostTask(
@@ -389,7 +383,7 @@
   // It can take up to the timeout + the check interval until detection. Add a
   // margin to this.
   EXPECT_FALSE(WaitUntilDetectedDeadWithTimeout(
-      base::TimeDelta::FromMilliseconds(kTimeoutMs + kCheckIntervalMs + 10)));
+      base::Milliseconds(kTimeoutMs + kCheckIntervalMs + 10)));
   EXPECT_FALSE(GetDetectedDead());
 
   alive_checker_thread_.task_runner()->PostTask(
@@ -414,7 +408,7 @@
   // It can take up to the timeout + the check interval until detection. Add a
   // margin to this.
   EXPECT_FALSE(WaitUntilDetectedDeadWithTimeout(
-      base::TimeDelta::FromMilliseconds(kTimeoutMs + kCheckIntervalMs + 10)));
+      base::Milliseconds(kTimeoutMs + kCheckIntervalMs + 10)));
   EXPECT_FALSE(GetDetectedDead());
 
   alive_checker_thread_.task_runner()->PostTask(
@@ -422,7 +416,7 @@
                                 base::Unretained(mock_power_observer_helper_)));
 
   EXPECT_FALSE(WaitUntilDetectedDeadWithTimeout(
-      base::TimeDelta::FromMilliseconds(kTimeoutMs + kCheckIntervalMs + 10)));
+      base::Milliseconds(kTimeoutMs + kCheckIntervalMs + 10)));
   EXPECT_FALSE(GetDetectedDead());
 
   alive_checker_thread_.task_runner()->PostTask(
@@ -430,7 +424,7 @@
                                 base::Unretained(mock_power_observer_helper_)));
 
   EXPECT_FALSE(WaitUntilDetectedDeadWithTimeout(
-      base::TimeDelta::FromMilliseconds(kTimeoutMs + kCheckIntervalMs + 10)));
+      base::Milliseconds(kTimeoutMs + kCheckIntervalMs + 10)));
   EXPECT_FALSE(GetDetectedDead());
 }
 
@@ -449,7 +443,7 @@
   // It can take up to the timeout + the check interval until detection. Add a
   // margin to this.
   EXPECT_FALSE(WaitUntilDetectedDeadWithTimeout(
-      base::TimeDelta::FromMilliseconds(kTimeoutMs + kCheckIntervalMs + 10)));
+      base::Milliseconds(kTimeoutMs + kCheckIntervalMs + 10)));
   EXPECT_FALSE(GetDetectedDead());
 
   StartAliveChecker();
@@ -460,7 +454,7 @@
                                 base::Unretained(mock_power_observer_helper_)));
 
   EXPECT_FALSE(WaitUntilDetectedDeadWithTimeout(
-      base::TimeDelta::FromMilliseconds(kTimeoutMs + kCheckIntervalMs + 10)));
+      base::Milliseconds(kTimeoutMs + kCheckIntervalMs + 10)));
   EXPECT_FALSE(GetDetectedDead());
 
   alive_checker_thread_.task_runner()->PostTask(
@@ -490,7 +484,7 @@
   // It can take up to the timeout + the check interval until detection. Add a
   // margin to this.
   EXPECT_FALSE(WaitUntilDetectedDeadWithTimeout(
-      base::TimeDelta::FromMilliseconds(kTimeoutMs + kCheckIntervalMs + 10)));
+      base::Milliseconds(kTimeoutMs + kCheckIntervalMs + 10)));
   EXPECT_FALSE(GetDetectedDead());
 
   alive_checker_thread_.task_runner()->PostTask(
@@ -498,7 +492,7 @@
                                 base::Unretained(mock_power_observer_helper_)));
 
   EXPECT_FALSE(WaitUntilDetectedDeadWithTimeout(
-      base::TimeDelta::FromMilliseconds(kTimeoutMs + kCheckIntervalMs + 10)));
+      base::Milliseconds(kTimeoutMs + kCheckIntervalMs + 10)));
   EXPECT_FALSE(GetDetectedDead());
 }
 
@@ -524,7 +518,7 @@
   // It can take up to the timeout + the check interval until detection. Add a
   // margin to this.
   EXPECT_FALSE(WaitUntilDetectedDeadWithTimeout(
-      base::TimeDelta::FromMilliseconds(kTimeoutMs + kCheckIntervalMs + 10)));
+      base::Milliseconds(kTimeoutMs + kCheckIntervalMs + 10)));
   EXPECT_FALSE(GetDetectedDead());
 }
 
@@ -544,7 +538,7 @@
   // It can take up to the timeout + the check interval until detection. Add a
   // margin to this.
   EXPECT_FALSE(WaitUntilDetectedDeadWithTimeout(
-      base::TimeDelta::FromMilliseconds(kTimeoutMs + kCheckIntervalMs + 10)));
+      base::Milliseconds(kTimeoutMs + kCheckIntervalMs + 10)));
   EXPECT_FALSE(GetDetectedDead());
 
   alive_checker_thread_.task_runner()->PostTask(
diff --git a/media/audio/alsa/alsa_input.cc b/media/audio/alsa/alsa_input.cc
index a635cb5..e4eaa0b 100644
--- a/media/audio/alsa/alsa_input.cc
+++ b/media/audio/alsa/alsa_input.cc
@@ -38,7 +38,7 @@
       params_(params),
       bytes_per_buffer_(params.GetBytesPerBuffer(kSampleFormat)),
       wrapper_(wrapper),
-      buffer_duration_(base::TimeDelta::FromMicroseconds(
+      buffer_duration_(base::Microseconds(
           params.frames_per_buffer() * base::Time::kMicrosecondsPerSecond /
           static_cast<float>(params.sample_rate()))),
       callback_(nullptr),
@@ -220,7 +220,7 @@
                      << wrapper_->StrError(avail_frames);
         avail_frames = 0;  // Error getting number of avail frames, set it to 0
       }
-      base::TimeDelta hardware_delay = base::TimeDelta::FromSecondsD(
+      base::TimeDelta hardware_delay = base::Seconds(
           avail_frames / static_cast<double>(params_.sample_rate()));
 
       callback_->OnData(audio_bus_.get(),
diff --git a/media/audio/alsa/alsa_output.cc b/media/audio/alsa/alsa_output.cc
index a3e8dbd..a05f60d 100644
--- a/media/audio/alsa/alsa_output.cc
+++ b/media/audio/alsa/alsa_output.cc
@@ -156,7 +156,7 @@
       bytes_per_frame_(params.GetBytesPerFrame(kSampleFormat)),
       packet_size_(params.GetBytesPerBuffer(kSampleFormat)),
       latency_(std::max(
-          base::TimeDelta::FromMicroseconds(kMinLatencyMicros),
+          base::Microseconds(kMinLatencyMicros),
           AudioTimestampHelper::FramesToTime(params.frames_per_buffer() * 2,
                                              sample_rate_))),
       bytes_per_output_frame_(bytes_per_frame_),
@@ -525,7 +525,7 @@
     // Polling in this manner allows us to ensure a more consistent callback
     // schedule.  In testing this yields a variance of +/- 5ms versus the non-
     // polling strategy which is around +/- 30ms and bimodal.
-    next_fill_time = base::TimeDelta::FromMilliseconds(5);
+    next_fill_time = base::Milliseconds(5);
   } else if (available_frames < kTargetFramesAvailable) {
     // Schedule the next write for the moment when the available buffer of the
     // sound card hits |kTargetFramesAvailable|.
@@ -538,7 +538,7 @@
   } else {
     // The sound card has frames available, but our source is exhausted, so
     // avoid busy looping by delaying a bit.
-    next_fill_time = base::TimeDelta::FromMilliseconds(10);
+    next_fill_time = base::Milliseconds(10);
   }
 
   task_runner_->PostDelayedTask(FROM_HERE,
diff --git a/media/audio/android/aaudio_output.cc b/media/audio/android/aaudio_output.cc
index 13742484..d06a6b8 100644
--- a/media/audio/android/aaudio_output.cc
+++ b/media/audio/android/aaudio_output.cc
@@ -138,7 +138,7 @@
       FROM_HERE,
       base::BindOnce([](std::unique_ptr<AAudioDestructionHelper>) {},
                      std::move(destruction_helper_)),
-      base::TimeDelta::FromSeconds(1));
+      base::Seconds(1));
 }
 
 void AAudioOutputStream::Flush() {}
@@ -288,8 +288,8 @@
       AAudioStream_getFramesWritten(aaudio_stream_) - existing_frame_index;
 
   // Calculate the time which the next frame will be presented.
-  const base::TimeDelta next_frame_pts = base::TimeDelta::FromNanosecondsD(
-      existing_frame_pts + frame_index_delta * ns_per_frame_);
+  const base::TimeDelta next_frame_pts =
+      base::Nanoseconds(existing_frame_pts + frame_index_delta * ns_per_frame_);
 
   // Calculate the latency between write time and presentation time. At startup
   // we may end up with negative values here.
diff --git a/media/audio/android/audio_android_unittest.cc b/media/audio/android/audio_android_unittest.cc
index c4ca31a..f95b6a50 100644
--- a/media/audio/android/audio_android_unittest.cc
+++ b/media/audio/android/audio_android_unittest.cc
@@ -84,9 +84,10 @@
 }
 
 double ExpectedTimeBetweenCallbacks(AudioParameters params) {
-  return (base::TimeDelta::FromMicroseconds(
-              params.frames_per_buffer() * base::Time::kMicrosecondsPerSecond /
-              static_cast<double>(params.sample_rate()))).InMillisecondsF();
+  return (base::Microseconds(params.frames_per_buffer() *
+                             base::Time::kMicrosecondsPerSecond /
+                             static_cast<double>(params.sample_rate())))
+      .InMillisecondsF();
 }
 
 // Helper method which verifies that the device list starts with a valid
@@ -405,9 +406,9 @@
   // audio parameters.
   double BytesToMilliseconds(int bytes) const {
     const int frames = bytes / params_.GetBytesPerFrame(kSampleFormat);
-    return (base::TimeDelta::FromMicroseconds(
-                frames * base::Time::kMicrosecondsPerSecond /
-                static_cast<double>(params_.sample_rate()))).InMillisecondsF();
+    return (base::Microseconds(frames * base::Time::kMicrosecondsPerSecond /
+                               static_cast<double>(params_.sample_rate())))
+        .InMillisecondsF();
   }
 
   AudioParameters params_;
@@ -924,7 +925,7 @@
            << "once per second during this test.";
   DVLOG(0) << ">> Speak into the mic and listen to the audio in loopback...";
   fflush(stdout);
-  base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(20));
+  base::PlatformThread::Sleep(base::Seconds(20));
   printf("\n");
   StopAndCloseAudioOutputStreamOnAudioThread();
   StopAndCloseAudioInputStreamOnAudioThread();
diff --git a/media/audio/android/audio_manager_android.cc b/media/audio/android/audio_manager_android.cc
index 5cbcd50..7008e59 100644
--- a/media/audio/android/audio_manager_android.cc
+++ b/media/audio/android/audio_manager_android.cc
@@ -348,7 +348,7 @@
 base::TimeDelta AudioManagerAndroid::GetOutputLatency() {
   DCHECK(GetTaskRunner()->BelongsToCurrentThread());
   JNIEnv* env = AttachCurrentThread();
-  return base::TimeDelta::FromMilliseconds(
+  return base::Milliseconds(
       Java_AudioManagerAndroid_getOutputLatency(env, GetJavaAudioManager()));
 }
 
diff --git a/media/audio/android/opensles_input.cc b/media/audio/android/opensles_input.cc
index 73f45797..ca104730 100644
--- a/media/audio/android/opensles_input.cc
+++ b/media/audio/android/opensles_input.cc
@@ -47,8 +47,8 @@
   format_.channelMask = ChannelCountToSLESChannelMask(params.channels());
 
   buffer_size_bytes_ = params.GetBytesPerBuffer(kSampleFormat);
-  hardware_delay_ = base::TimeDelta::FromSecondsD(
-      params.frames_per_buffer() / static_cast<double>(params.sample_rate()));
+  hardware_delay_ = base::Seconds(params.frames_per_buffer() /
+                                  static_cast<double>(params.sample_rate()));
 
   memset(&audio_data_, 0, sizeof(audio_data_));
 }
diff --git a/media/audio/android/opensles_output.cc b/media/audio/android/opensles_output.cc
index cfe2178..a15692a 100644
--- a/media/audio/android/opensles_output.cc
+++ b/media/audio/android/opensles_output.cc
@@ -161,8 +161,7 @@
   // we're continuing on from this previous position.
   uint32_t position_in_ms = 0;
   LOG_ON_FAILURE_AND_RETURN((*player_)->GetPosition(player_, &position_in_ms));
-  delay_calculator_.SetBaseTimestamp(
-      base::TimeDelta::FromMilliseconds(position_in_ms));
+  delay_calculator_.SetBaseTimestamp(base::Milliseconds(position_in_ms));
   delay_calculator_.AddFrames(audio_bus_->frames());
 
   started_ = true;
@@ -498,10 +497,10 @@
 
 base::TimeDelta OpenSLESOutputStream::AdjustPositionForHardwareLatency(
     uint32_t position_in_ms) {
-  base::TimeDelta position = base::TimeDelta::FromMilliseconds(position_in_ms);
+  base::TimeDelta position = base::Milliseconds(position_in_ms);
 
   if (position <= hardware_latency_)
-    return base::TimeDelta::FromMilliseconds(0);
+    return base::Milliseconds(0);
 
   return position - hardware_latency_;
 }
diff --git a/media/audio/audio_encoders_unittest.cc b/media/audio/audio_encoders_unittest.cc
index d81a672..0be36ca 100644
--- a/media/audio/audio_encoders_unittest.cc
+++ b/media/audio/audio_encoders_unittest.cc
@@ -28,8 +28,7 @@
 
 // This is the preferred opus buffer duration (60 ms), which corresponds to a
 // value of 2880 frames per buffer (|kOpusFramesPerBuffer|).
-constexpr base::TimeDelta kOpusBufferDuration =
-    base::TimeDelta::FromMilliseconds(60);
+constexpr base::TimeDelta kOpusBufferDuration = base::Milliseconds(60);
 constexpr int kOpusFramesPerBuffer = kOpusBufferDuration.InMicroseconds() *
                                      kAudioSampleRate /
                                      base::Time::kMicrosecondsPerSecond;
@@ -130,7 +129,7 @@
   // by ProduceAudioAndEncode().
   std::unique_ptr<AudioBus> current_audio_bus_;
 
-  base::TimeDelta buffer_duration_ = base::TimeDelta::FromMilliseconds(10);
+  base::TimeDelta buffer_duration_ = base::Milliseconds(10);
 };
 
 TEST_P(AudioEncodersTest, OpusTimestamps) {
@@ -169,7 +168,7 @@
     current_timestamp = base::TimeTicks();
     for (auto& ts : timestamps) {
       auto drift = (current_timestamp - ts).magnitude();
-      EXPECT_LE(drift, base::TimeDelta::FromMicroseconds(1));
+      EXPECT_LE(drift, base::Microseconds(1));
       current_timestamp += kOpusBufferDuration;
     }
   }
@@ -216,7 +215,7 @@
 //   2. timestamps of buffers coming immediately after Flush() calls.
 TEST_P(AudioEncodersTest, OpusTimeContinuityBreak) {
   base::TimeTicks current_timestamp = base::TimeTicks::Now();
-  base::TimeDelta gap = base::TimeDelta::FromMicroseconds(1500);
+  base::TimeDelta gap = base::Microseconds(1500);
   buffer_duration_ = kOpusBufferDuration;
   std::vector<base::TimeTicks> timestamps;
 
diff --git a/media/audio/audio_input_device.cc b/media/audio/audio_input_device.cc
index 5f410257..8b238c34 100644
--- a/media/audio/audio_input_device.cc
+++ b/media/audio/audio_input_device.cc
@@ -262,11 +262,11 @@
   const bool stop_at_first_alive_notification = false;
   const bool pause_check_during_suspend = true;
 #endif
-  alive_checker_ = std::make_unique<AliveChecker>(
-      base::BindRepeating(&AudioInputDevice::DetectedDeadInputStream, this),
-      base::TimeDelta::FromSeconds(kCheckMissingCallbacksIntervalSeconds),
-      base::TimeDelta::FromSeconds(kMissingCallbacksTimeBeforeErrorSeconds),
-      stop_at_first_alive_notification, pause_check_during_suspend);
+    alive_checker_ = std::make_unique<AliveChecker>(
+        base::BindRepeating(&AudioInputDevice::DetectedDeadInputStream, this),
+        base::Seconds(kCheckMissingCallbacksIntervalSeconds),
+        base::Seconds(kMissingCallbacksTimeBeforeErrorSeconds),
+        stop_at_first_alive_notification, pause_check_during_suspend);
   }
 
   // Unretained is safe since |alive_checker_| outlives |audio_callback_|.
@@ -464,8 +464,7 @@
   // the audio delay measurement.
   // TODO(olka, tommi): Take advantage of |capture_time| in the renderer.
   const base::TimeTicks capture_time =
-      base::TimeTicks() +
-      base::TimeDelta::FromMicroseconds(buffer->params.capture_time_us);
+      base::TimeTicks() + base::Microseconds(buffer->params.capture_time_us);
   const base::TimeTicks now_time = base::TimeTicks::Now();
   DCHECK_GE(now_time, capture_time);
 
diff --git a/media/audio/audio_manager_base.cc b/media/audio/audio_manager_base.cc
index f7d31c9c..5400e09 100644
--- a/media/audio/audio_manager_base.cc
+++ b/media/audio/audio_manager_base.cc
@@ -428,8 +428,7 @@
   if (it != output_dispatchers_.end())
     return (*it)->dispatcher->CreateStreamProxy();
 
-  const base::TimeDelta kCloseDelay =
-      base::TimeDelta::FromSeconds(kStreamCloseDelaySeconds);
+  const base::TimeDelta kCloseDelay = base::Seconds(kStreamCloseDelaySeconds);
   std::unique_ptr<AudioOutputDispatcher> dispatcher;
   if (output_params.format() != AudioParameters::AUDIO_FAKE &&
       !output_params.IsBitstreamFormat()) {
diff --git a/media/audio/audio_output_device_thread_callback.cc b/media/audio/audio_output_device_thread_callback.cc
index c6f8b16..d64d1c1 100644
--- a/media/audio/audio_output_device_thread_callback.cc
+++ b/media/audio/audio_output_device_thread_callback.cc
@@ -57,12 +57,10 @@
                      "callback_num", callback_num_, "frames skipped",
                      frames_skipped);
 
-  base::TimeDelta delay =
-      base::TimeDelta::FromMicroseconds(buffer->params.delay_us);
+  base::TimeDelta delay = base::Microseconds(buffer->params.delay_us);
 
   base::TimeTicks delay_timestamp =
-      base::TimeTicks() +
-      base::TimeDelta::FromMicroseconds(buffer->params.delay_timestamp_us);
+      base::TimeTicks() + base::Microseconds(buffer->params.delay_timestamp_us);
 
   DVLOG(4) << __func__ << " delay:" << delay << " delay_timestamp:" << delay
            << " frames_skipped:" << frames_skipped;
diff --git a/media/audio/audio_output_device_unittest.cc b/media/audio/audio_output_device_unittest.cc
index 4dae4ed..0f7db33e 100644
--- a/media/audio/audio_output_device_unittest.cc
+++ b/media/audio/audio_output_device_unittest.cc
@@ -46,8 +46,7 @@
 constexpr char kDefaultDeviceId[] = "";
 constexpr char kNonDefaultDeviceId[] = "valid-nondefault-device-id";
 constexpr char kUnauthorizedDeviceId[] = "unauthorized-device-id";
-constexpr base::TimeDelta kAuthTimeout =
-    base::TimeDelta::FromMilliseconds(10000);
+constexpr base::TimeDelta kAuthTimeout = base::Milliseconds(10000);
 
 class MockRenderCallback : public AudioRendererSink::RenderCallback {
  public:
diff --git a/media/audio/audio_output_proxy_unittest.cc b/media/audio/audio_output_proxy_unittest.cc
index b3cc8e1..2ec7ae3a 100644
--- a/media/audio/audio_output_proxy_unittest.cc
+++ b/media/audio/audio_output_proxy_unittest.cc
@@ -174,7 +174,7 @@
     // RunUntilIdle() will never terminate.
     params_ = AudioParameters(AudioParameters::AUDIO_PCM_LINEAR,
                               CHANNEL_LAYOUT_STEREO, 8000, 2048);
-    InitDispatcher(base::TimeDelta::FromMilliseconds(kTestCloseDelayMs));
+    InitDispatcher(base::Milliseconds(kTestCloseDelayMs));
   }
 
   void TearDown() override {
@@ -512,8 +512,7 @@
     // Let Start() run for a bit.
     base::RunLoop run_loop;
     task_environment_.GetMainThreadTaskRunner()->PostDelayedTask(
-        FROM_HERE, run_loop.QuitClosure(),
-        base::TimeDelta::FromMilliseconds(kStartRunTimeMs));
+        FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(kStartRunTimeMs));
     run_loop.Run();
   }
 
@@ -642,7 +641,7 @@
 
 TEST_F(AudioOutputProxyTest, DispatcherDeviceChangeClosesIdleStreams) {
   // Set close delay so long that it triggers a test timeout if relied upon.
-  InitDispatcher(base::TimeDelta::FromSeconds(1000));
+  InitDispatcher(base::Seconds(1000));
 
   MockAudioOutputStream stream(&manager_, params_);
 
@@ -852,7 +851,7 @@
   base::RunLoop run_loop;
   task_environment_.GetMainThreadTaskRunner()->PostDelayedTask(
       FROM_HERE, run_loop.QuitClosure(),
-      base::TimeDelta::FromMilliseconds(2 * kTestCloseDelayMs));
+      base::Milliseconds(2 * kTestCloseDelayMs));
   run_loop.Run();
 
   // Verify a non-fake stream can be created.
diff --git a/media/audio/audio_thread_hang_monitor.cc b/media/audio/audio_thread_hang_monitor.cc
index 6131b53..f69a79b 100644
--- a/media/audio/audio_thread_hang_monitor.cc
+++ b/media/audio/audio_thread_hang_monitor.cc
@@ -33,8 +33,7 @@
 constexpr int kMaxFailedPingsCount = 3;
 
 // The default deadline after which we consider the audio thread hung.
-constexpr base::TimeDelta kDefaultHangDeadline =
-    base::TimeDelta::FromMinutes(3);
+constexpr base::TimeDelta kDefaultHangDeadline = base::Minutes(3);
 
 }  // namespace
 
@@ -125,7 +124,7 @@
   // An unexpected |time_since_last_check| may indicate that the system has been
   // in sleep mode, in which case the audio thread may have had insufficient
   // time to respond to the ping. In such a case, skip the check for now.
-  if (time_since_last_check > ping_interval_ + base::TimeDelta::FromSeconds(1))
+  if (time_since_last_check > ping_interval_ + base::Seconds(1))
     return;
 
   const bool audio_thread_responded_to_last_ping = alive_flag_->flag_;
diff --git a/media/audio/audio_thread_hang_monitor_unittest.cc b/media/audio/audio_thread_hang_monitor_unittest.cc
index 5ed9585f..0412cfb 100644
--- a/media/audio/audio_thread_hang_monitor_unittest.cc
+++ b/media/audio/audio_thread_hang_monitor_unittest.cc
@@ -30,8 +30,8 @@
 constexpr int kRecovered =
     static_cast<int>(AudioThreadHangMonitor::ThreadStatus::kRecovered);
 
-constexpr base::TimeDelta kShortHangDeadline = base::TimeDelta::FromSeconds(5);
-constexpr base::TimeDelta kLongHangDeadline = base::TimeDelta::FromMinutes(30);
+constexpr base::TimeDelta kShortHangDeadline = base::Seconds(5);
+constexpr base::TimeDelta kLongHangDeadline = base::Minutes(30);
 
 }  // namespace
 
@@ -107,7 +107,7 @@
     // Flush the audio thread, then advance the clock. The audio thread should
     // register as "alive" every time.
     FlushAudioThread();
-    task_env_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+    task_env_.FastForwardBy(base::Minutes(1));
   }
 
   EXPECT_THAT(histograms_.GetAllSamples("Media.AudioThreadStatus"),
@@ -118,7 +118,7 @@
   RunUntilIdle();
 
   BlockAudioThreadUntilEvent();
-  task_env_.FastForwardBy(base::TimeDelta::FromMinutes(10));
+  task_env_.FastForwardBy(base::Minutes(10));
   event_.Signal();
 
   EXPECT_THAT(histograms_.GetAllSamples("Media.AudioThreadStatus"),
@@ -200,14 +200,14 @@
     // Flush the audio thread, then advance the clock. The audio thread should
     // register as "alive" every time.
     FlushAudioThread();
-    task_env_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+    task_env_.FastForwardBy(base::Minutes(1));
   }
 
   EXPECT_THAT(histograms_.GetAllSamples("Media.AudioThreadStatus"),
               ElementsAre(base::Bucket(kStarted, 2)));
 
   BlockAudioThreadUntilEvent();
-  task_env_.FastForwardBy(base::TimeDelta::FromMinutes(10));
+  task_env_.FastForwardBy(base::Minutes(10));
   event_.Signal();
 
   EXPECT_THAT(histograms_.GetAllSamples("Media.AudioThreadStatus"),
@@ -219,14 +219,14 @@
   RunUntilIdle();
 
   BlockAudioThreadUntilEvent();
-  task_env_.FastForwardBy(base::TimeDelta::FromMinutes(10));
+  task_env_.FastForwardBy(base::Minutes(10));
   event_.Signal();
 
   for (int i = 0; i < 10; ++i) {
     // Flush the audio thread, then advance the clock. The audio thread should
     // register as "alive" every time.
     FlushAudioThread();
-    task_env_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+    task_env_.FastForwardBy(base::Minutes(1));
   }
 
   EXPECT_THAT(histograms_.GetAllSamples("Media.AudioThreadStatus"),
@@ -242,7 +242,7 @@
     // Flush the audio thread, then advance the clock. The audio thread should
     // register as "alive" every time.
     FlushAudioThread();
-    task_env_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+    task_env_.FastForwardBy(base::Minutes(1));
   }
 
   EXPECT_THAT(histograms_.GetAllSamples("Media.AudioThreadStatus"),
@@ -259,7 +259,7 @@
   EXPECT_CALL(*this, HangActionDump).Times(1);
 
   BlockAudioThreadUntilEvent();
-  task_env_.FastForwardBy(base::TimeDelta::FromMinutes(10));
+  task_env_.FastForwardBy(base::Minutes(10));
   event_.Signal();
 
   EXPECT_THAT(histograms_.GetAllSamples("Media.AudioThreadStatus"),
@@ -277,7 +277,7 @@
   EXPECT_CALL(*this, HangActionTerminate).Times(1);
 
   BlockAudioThreadUntilEvent();
-  task_env_.FastForwardBy(base::TimeDelta::FromMinutes(10));
+  task_env_.FastForwardBy(base::Minutes(10));
   event_.Signal();
 
   EXPECT_THAT(histograms_.GetAllSamples("Media.AudioThreadStatus"),
@@ -297,7 +297,7 @@
   EXPECT_CALL(*this, HangActionTerminate).Times(1);
 
   BlockAudioThreadUntilEvent();
-  task_env_.FastForwardBy(base::TimeDelta::FromMinutes(10));
+  task_env_.FastForwardBy(base::Minutes(10));
   event_.Signal();
 
   EXPECT_THAT(histograms_.GetAllSamples("Media.AudioThreadStatus"),
diff --git a/media/audio/fuchsia/audio_output_stream_fuchsia.cc b/media/audio/fuchsia/audio_output_stream_fuchsia.cc
index 4fed2f5..d872b08 100644
--- a/media/audio/fuchsia/audio_output_stream_fuchsia.cc
+++ b/media/audio/fuchsia/audio_output_stream_fuchsia.cc
@@ -174,7 +174,7 @@
 void AudioOutputStreamFuchsia::OnMinLeadTimeChanged(int64_t min_lead_time) {
   bool min_lead_time_was_unknown = !min_lead_time_.has_value();
 
-  min_lead_time_ = base::TimeDelta::FromNanoseconds(min_lead_time);
+  min_lead_time_ = base::Nanoseconds(min_lead_time);
 
   // When min_lead_time_ increases we may need to reallocate |payload_buffer_|.
   // Code below just unmaps the current buffer. The new buffer will be allocated
diff --git a/media/audio/mac/audio_auhal_mac.cc b/media/audio/mac/audio_auhal_mac.cc
index b7660d6..0c7c8d3 100644
--- a/media/audio/mac/audio_auhal_mac.cc
+++ b/media/audio/mac/audio_auhal_mac.cc
@@ -254,8 +254,7 @@
         base::BindOnce(&AUHALStream::Start, base::Unretained(this), callback));
     manager_->GetTaskRunner()->PostDelayedTask(
         FROM_HERE, deferred_start_cb_.callback(),
-        base::TimeDelta::FromSeconds(
-            AudioManagerMac::kStartDelayInSecsForPowerEvents));
+        base::Seconds(AudioManagerMac::kStartDelayInSecsForPowerEvents));
     return;
   }
 
diff --git a/media/audio/mac/audio_input_mac.cc b/media/audio/mac/audio_input_mac.cc
index 3151f4e..275d2849 100644
--- a/media/audio/mac/audio_input_mac.cc
+++ b/media/audio/mac/audio_input_mac.cc
@@ -95,10 +95,8 @@
     deferred_start_cb_.Reset(base::BindOnce(&PCMQueueInAudioInputStream::Start,
                                             base::Unretained(this), callback));
     manager_->GetTaskRunner()->PostDelayedTask(
-        FROM_HERE,
-        deferred_start_cb_.callback(),
-        base::TimeDelta::FromSeconds(
-            AudioManagerMac::kStartDelayInSecsForPowerEvents));
+        FROM_HERE, deferred_start_cb_.callback(),
+        base::Seconds(AudioManagerMac::kStartDelayInSecsForPowerEvents));
     return;
   }
 
@@ -116,8 +114,7 @@
   // true when the timer expires.
   input_callback_timer_ = std::make_unique<base::OneShotTimer>();
   input_callback_timer_->Start(
-      FROM_HERE,
-      base::TimeDelta::FromSeconds(kInputCallbackStartTimeoutInSeconds), this,
+      FROM_HERE, base::Seconds(kInputCallbackStartTimeoutInSeconds), this,
       &PCMQueueInAudioInputStream::CheckInputStartupSuccess);
   DCHECK(input_callback_timer_->IsRunning());
 }
@@ -267,7 +264,7 @@
     // TODO(dalecurtis): Delete all this. It shouldn't be necessary now that we
     // have a ring buffer and FIFO on the actual shared memory.
     base::TimeDelta elapsed = base::TimeTicks::Now() - last_fill_;
-    const base::TimeDelta kMinDelay = base::TimeDelta::FromMilliseconds(5);
+    const base::TimeDelta kMinDelay = base::Milliseconds(5);
     if (elapsed < kMinDelay) {
       TRACE_EVENT0("audio",
                    "PCMQueueInAudioInputStream::HandleInputBuffer sleep");
diff --git a/media/audio/mac/audio_low_latency_input_mac.cc b/media/audio/mac/audio_low_latency_input_mac.cc
index eb39b38..e28d3743 100644
--- a/media/audio/mac/audio_low_latency_input_mac.cc
+++ b/media/audio/mac/audio_low_latency_input_mac.cc
@@ -687,8 +687,7 @@
                                             base::Unretained(this), callback));
     manager_->GetTaskRunner()->PostDelayedTask(
         FROM_HERE, deferred_start_cb_.callback(),
-        base::TimeDelta::FromSeconds(
-            AudioManagerMac::kStartDelayInSecsForPowerEvents));
+        base::Seconds(AudioManagerMac::kStartDelayInSecsForPowerEvents));
     return;
   }
 
@@ -719,8 +718,7 @@
   // true when the timer expires.
   input_callback_timer_ = std::make_unique<base::OneShotTimer>();
   input_callback_timer_->Start(
-      FROM_HERE,
-      base::TimeDelta::FromSeconds(kInputCallbackStartTimeoutInSeconds), this,
+      FROM_HERE, base::Seconds(kInputCallbackStartTimeoutInSeconds), this,
       &AUAudioInputStream::CheckInputStartupSuccess);
   DCHECK(input_callback_timer_->IsRunning());
 }
@@ -1123,7 +1121,7 @@
       base::TimeDelta time_since_last_success =
           base::TimeTicks::Now() - last_success_time_;
       if ((time_since_last_success >
-           base::TimeDelta::FromSeconds(kMaxErrorTimeoutInSeconds))) {
+           base::Seconds(kMaxErrorTimeoutInSeconds))) {
         const char* err = (result == kAudioUnitErr_TooManyFramesToProcess)
                               ? "kAudioUnitErr_TooManyFramesToProcess"
                               : "kAudioUnitErr_CannotDoInCurrentContext";
@@ -1430,14 +1428,12 @@
 
   if (glitches_detected_ != 0) {
     UMA_HISTOGRAM_LONG_TIMES("Media.Audio.Capture.LostFramesInMs",
-                             base::TimeDelta::FromMilliseconds(lost_frames_ms));
+                             base::Milliseconds(lost_frames_ms));
     auto largest_glitch_ms =
         (largest_glitch_frames_ * 1000) / format_.mSampleRate;
-    UMA_HISTOGRAM_CUSTOM_TIMES(
-        "Media.Audio.Capture.LargestGlitchMs",
-        base::TimeDelta::FromMilliseconds(largest_glitch_ms),
-        base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromMinutes(1),
-        50);
+    UMA_HISTOGRAM_CUSTOM_TIMES("Media.Audio.Capture.LargestGlitchMs",
+                               base::Milliseconds(largest_glitch_ms),
+                               base::Milliseconds(1), base::Minutes(1), 50);
     DLOG(WARNING) << log_message;
   }
 
diff --git a/media/audio/mac/audio_manager_mac.cc b/media/audio/mac/audio_manager_mac.cc
index e6bdfaea..2066a12b 100644
--- a/media/audio/mac/audio_manager_mac.cc
+++ b/media/audio/mac/audio_manager_mac.cc
@@ -495,8 +495,8 @@
     DVLOG(1) << "OnResume";
     ++num_resume_notifications_;
     is_suspending_ = false;
-    earliest_start_time_ = base::TimeTicks::Now() +
-        base::TimeDelta::FromSeconds(kStartDelayInSecsForPowerEvents);
+    earliest_start_time_ =
+        base::TimeTicks::Now() + base::Seconds(kStartDelayInSecsForPowerEvents);
   }
 
   bool is_suspending_;
@@ -1126,7 +1126,7 @@
         << "Could not get audio device stream ids size.";
   }
 
-  return base::TimeDelta::FromSecondsD(audio_unit_latency_sec) +
+  return base::Seconds(audio_unit_latency_sec) +
          AudioTimestampHelper::FramesToTime(
              device_latency_frames + stream_latency_frames, sample_rate);
 }
diff --git a/media/audio/pulse/pulse_input.cc b/media/audio/pulse/pulse_input.cc
index 59b288ed..1f7cca73 100644
--- a/media/audio/pulse/pulse_input.cc
+++ b/media/audio/pulse/pulse_input.cc
@@ -371,7 +371,7 @@
     // TODO(dalecurtis): Delete all this. It shouldn't be necessary now that we
     // have a ring buffer and FIFO on the actual shared memory.,
     if (fifo_.available_blocks())
-      base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(5));
+      base::PlatformThread::Sleep(base::Milliseconds(5));
   }
 
   pa_threaded_mainloop_signal(pa_mainloop_, 0);
diff --git a/media/audio/pulse/pulse_util.cc b/media/audio/pulse/pulse_util.cc
index 2c5a356..9d8eb23 100644
--- a/media/audio/pulse/pulse_util.cc
+++ b/media/audio/pulse/pulse_util.cc
@@ -262,7 +262,7 @@
   // browser startup (other times it's during audio process startup). In the
   // normal case, this should only take ~50ms, but we've seen some test bots
   // hang indefinitely when the pulse daemon can't be started.
-  constexpr base::TimeDelta kStartupTimeout = base::TimeDelta::FromSeconds(5);
+  constexpr base::TimeDelta kStartupTimeout = base::Seconds(5);
   const bool was_signaled = context_wait.TimedWait(kStartupTimeout);
 
   // Require the mainloop lock before checking the context state.
@@ -387,7 +387,7 @@
   if (negative)
     return base::TimeDelta();
 
-  return base::TimeDelta::FromMicroseconds(latency_micros);
+  return base::Microseconds(latency_micros);
 }
 
 // Helper macro for CreateInput/OutputStream() to avoid code spam and
diff --git a/media/audio/simple_sources.cc b/media/audio/simple_sources.cc
index ebcdb175..004df99 100644
--- a/media/audio/simple_sources.cc
+++ b/media/audio/simple_sources.cc
@@ -274,7 +274,7 @@
   BeepContext* beep_context = GetBeepContext();
   if (beep_context->automatic_beep()) {
     base::TimeDelta delta = interval_from_last_beep_ -
-        base::TimeDelta::FromMilliseconds(kAutomaticBeepIntervalInMs);
+                            base::Milliseconds(kAutomaticBeepIntervalInMs);
     if (delta > base::TimeDelta()) {
       should_beep = true;
       interval_from_last_beep_ = delta;
diff --git a/media/audio/wav_audio_handler.cc b/media/audio/wav_audio_handler.cc
index 99e8a73a..ee2395e 100644
--- a/media/audio/wav_audio_handler.cc
+++ b/media/audio/wav_audio_handler.cc
@@ -304,8 +304,7 @@
 }
 
 base::TimeDelta WavAudioHandler::GetDuration() const {
-  return base::TimeDelta::FromSecondsD(total_frames_ /
-                                       static_cast<double>(sample_rate_));
+  return base::Seconds(total_frames_ / static_cast<double>(sample_rate_));
 }
 
 }  // namespace media
diff --git a/media/audio/win/audio_device_listener_win.h b/media/audio/win/audio_device_listener_win.h
index 94bf0f7e..42bcfbe 100644
--- a/media/audio/win/audio_device_listener_win.h
+++ b/media/audio/win/audio_device_listener_win.h
@@ -45,8 +45,7 @@
   friend class AudioDeviceListenerWinTest;
 
   // Minimum allowed time between device change notifications.
-  static constexpr base::TimeDelta kDeviceChangeLimit =
-      base::TimeDelta::FromMilliseconds(250);
+  static constexpr base::TimeDelta kDeviceChangeLimit = base::Milliseconds(250);
 
   // IMMNotificationClient implementation.
   IFACEMETHODIMP_(ULONG) AddRef() override;
diff --git a/media/audio/win/audio_device_listener_win_unittest.cc b/media/audio/win/audio_device_listener_win_unittest.cc
index c434ced..f0333c5c 100644
--- a/media/audio/win/audio_device_listener_win_unittest.cc
+++ b/media/audio/win/audio_device_listener_win_unittest.cc
@@ -43,7 +43,7 @@
         base::BindRepeating(&AudioDeviceListenerWinTest::OnDeviceChange,
                             base::Unretained(this)));
 
-    tick_clock_.Advance(base::TimeDelta::FromSeconds(12345));
+    tick_clock_.Advance(base::Seconds(12345));
     output_device_listener_->tick_clock_ = &tick_clock_;
   }
 
@@ -57,7 +57,7 @@
 
   void AdvanceLastDeviceChangeTime() {
     tick_clock_.Advance(AudioDeviceListenerWin::kDeviceChangeLimit +
-                        base::TimeDelta::FromMilliseconds(1));
+                        base::Milliseconds(1));
   }
 
   // Simulate a device change where no output devices are available.
diff --git a/media/audio/win/audio_low_latency_input_win.cc b/media/audio/win/audio_low_latency_input_win.cc
index 4f36d69..54faba8 100644
--- a/media/audio/win/audio_low_latency_input_win.cc
+++ b/media/audio/win/audio_low_latency_input_win.cc
@@ -888,13 +888,12 @@
     base::TimeTicks capture_time;
     if (!timestamp_error_was_detected) {
       // Use the latest |capture_time_100ns| since it is marked as valid.
-      capture_time +=
-          base::TimeDelta::FromMicroseconds(capture_time_100ns / 10.0);
+      capture_time += base::Microseconds(capture_time_100ns / 10.0);
     }
     if (capture_time <= last_capture_time_) {
       // Latest |capture_time_100ns| can't be trusted. Ensure a monotonic time-
       // stamp sequence by adding one microsecond to the latest timestamp.
-      capture_time = last_capture_time_ + base::TimeDelta::FromMicroseconds(1);
+      capture_time = last_capture_time_ + base::Microseconds(1);
     }
 
     // Keep track of max and min time difference between two successive time-
@@ -1622,14 +1621,12 @@
       __func__, total_glitches_, total_lost_frames_, lost_frames_ms);
   if (total_glitches_ != 0) {
     UMA_HISTOGRAM_LONG_TIMES("Media.Audio.Capture.LostFramesInMs",
-                             base::TimeDelta::FromMilliseconds(lost_frames_ms));
+                             base::Milliseconds(lost_frames_ms));
     int64_t largest_glitch_ms =
         (largest_glitch_frames_ * 1000) / input_format_.Format.nSamplesPerSec;
-    UMA_HISTOGRAM_CUSTOM_TIMES(
-        "Media.Audio.Capture.LargestGlitchMs",
-        base::TimeDelta::FromMilliseconds(largest_glitch_ms),
-        base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromMinutes(1),
-        50);
+    UMA_HISTOGRAM_CUSTOM_TIMES("Media.Audio.Capture.LargestGlitchMs",
+                               base::Milliseconds(largest_glitch_ms),
+                               base::Milliseconds(1), base::Minutes(1), 50);
   }
 
   // TODO(https://crbug.com/825744): It can be possible to replace
diff --git a/media/audio/win/audio_low_latency_output_win.cc b/media/audio/win/audio_low_latency_output_win.cc
index 039bde4..68a9652 100644
--- a/media/audio/win/audio_low_latency_output_win.cc
+++ b/media/audio/win/audio_low_latency_output_win.cc
@@ -678,8 +678,8 @@
         if (qpc_position_diff_us - position_diff_us > buffer_duration_us / 2) {
           ++num_glitches_detected_;
 
-          base::TimeDelta glitch_duration = base::TimeDelta::FromMicroseconds(
-              qpc_position_diff_us - position_diff_us);
+          base::TimeDelta glitch_duration =
+              base::Microseconds(qpc_position_diff_us - position_diff_us);
 
           if (glitch_duration > largest_glitch_)
             largest_glitch_ = glitch_duration;
@@ -696,13 +696,13 @@
       const uint64_t delay_frames = num_written_frames_ - played_out_frames;
 
       // Convert the delay from frames to time.
-      delay = base::TimeDelta::FromMicroseconds(
-          delay_frames * base::Time::kMicrosecondsPerSecond /
-          format_.Format.nSamplesPerSec);
+      delay =
+          base::Microseconds(delay_frames * base::Time::kMicrosecondsPerSecond /
+                             format_.Format.nSamplesPerSec);
       // Note: the obtained |qpc_position| value is in 100ns intervals and from
       // the same time origin as QPC. We can simply convert it into us dividing
       // by 10.0 since 10x100ns = 1us.
-      delay_timestamp += base::TimeDelta::FromMicroseconds(qpc_position * 0.1);
+      delay_timestamp += base::Microseconds(qpc_position * 0.1);
     } else {
       RecordAudioFailure(kRenderFailureHistogram, hr);
       LOG(ERROR) << "WAOS::" << __func__
diff --git a/media/audio/win/audio_low_latency_output_win_unittest.cc b/media/audio/win/audio_low_latency_output_win_unittest.cc
index 177bf469..a1683a2 100644
--- a/media/audio/win/audio_low_latency_output_win_unittest.cc
+++ b/media/audio/win/audio_low_latency_output_win_unittest.cc
@@ -369,7 +369,7 @@
   EXPECT_TRUE(aos->Open());
 
   // Derive the expected duration of each packet.
-  base::TimeDelta packet_duration = base::TimeDelta::FromSecondsD(
+  base::TimeDelta packet_duration = base::Seconds(
       static_cast<double>(aosw.samples_per_packet()) / aosw.sample_rate());
 
   // Wait for the first callback and verify its parameters.  Ignore any
@@ -510,7 +510,7 @@
   EXPECT_TRUE(aos->Open());
 
   // Derive the expected size in bytes of each packet.
-  base::TimeDelta packet_duration = base::TimeDelta::FromSecondsD(
+  base::TimeDelta packet_duration = base::Seconds(
       static_cast<double>(aosw.samples_per_packet()) / aosw.sample_rate());
 
   // Wait for the first callback and verify its parameters.
@@ -544,7 +544,7 @@
   EXPECT_TRUE(aos->Open());
 
   // Derive the expected size in bytes of each packet.
-  base::TimeDelta packet_duration = base::TimeDelta::FromSecondsD(
+  base::TimeDelta packet_duration = base::Seconds(
       static_cast<double>(aosw.samples_per_packet()) / aosw.sample_rate());
 
   // Wait for the first callback and verify its parameters.
diff --git a/media/audio/win/audio_output_win_unittest.cc b/media/audio/win/audio_output_win_unittest.cc
index 346cfde..bd44314 100644
--- a/media/audio/win/audio_output_win_unittest.cc
+++ b/media/audio/win/audio_output_win_unittest.cc
@@ -434,8 +434,8 @@
   NiceMock<MockAudioSourceCallback> source;
   EXPECT_TRUE(oas->Open());
 
-  const base::TimeDelta delay_100_ms = base::TimeDelta::FromMilliseconds(100);
-  const base::TimeDelta delay_200_ms = base::TimeDelta::FromMilliseconds(200);
+  const base::TimeDelta delay_100_ms = base::Milliseconds(100);
+  const base::TimeDelta delay_200_ms = base::Milliseconds(200);
 
   // Audio output stream has either a double or triple buffer scheme. We expect
   // the delay to reach up to 200 ms depending on the number of buffers used.
@@ -569,11 +569,10 @@
     // blocking call and will not proceed until we receive the signal.
     if (ctx.socket->Receive(&control_signal, sizeof(control_signal)) == 0)
       break;
-    base::TimeDelta delay =
-        base::TimeDelta::FromMicroseconds(ctx.buffer->params.delay_us);
+    base::TimeDelta delay = base::Microseconds(ctx.buffer->params.delay_us);
     base::TimeTicks delay_timestamp =
-        base::TimeTicks() + base::TimeDelta::FromMicroseconds(
-                                ctx.buffer->params.delay_timestamp_us);
+        base::TimeTicks() +
+        base::Microseconds(ctx.buffer->params.delay_timestamp_us);
     sine.OnMoreData(delay, delay_timestamp, 0, audio_bus.get());
 
     // Send the audio data to the Audio Stream.
diff --git a/media/audio/win/core_audio_util_win.cc b/media/audio/win/core_audio_util_win.cc
index 0281167..bb8498e 100644
--- a/media/audio/win/core_audio_util_win.cc
+++ b/media/audio/win/core_audio_util_win.cc
@@ -718,7 +718,7 @@
 
 base::TimeDelta CoreAudioUtil::ReferenceTimeToTimeDelta(REFERENCE_TIME time) {
   // Each unit of reference time is 100 nanoseconds <=> 0.1 microsecond.
-  return base::TimeDelta::FromMicroseconds(0.1 * time + 0.5);
+  return base::Microseconds(0.1 * time + 0.5);
 }
 
 uint32_t CoreAudioUtil::GetIAudioClientVersion() {
diff --git a/media/audio/win/waveout_output_win.cc b/media/audio/win/waveout_output_win.cc
index c2c96fc..67a732a 100644
--- a/media/audio/win/waveout_output_win.cc
+++ b/media/audio/win/waveout_output_win.cc
@@ -332,9 +332,9 @@
   // TODO(fbarchard): Handle used 0 by queueing more.
 
   // TODO(sergeyu): Specify correct hardware delay for |delay|.
-  const base::TimeDelta delay = base::TimeDelta::FromMicroseconds(
-      pending_bytes_ * base::Time::kMicrosecondsPerSecond /
-      format_.Format.nAvgBytesPerSec);
+  const base::TimeDelta delay =
+      base::Microseconds(pending_bytes_ * base::Time::kMicrosecondsPerSecond /
+                         format_.Format.nAvgBytesPerSec);
   int frames_filled =
       callback_->OnMoreData(delay, base::TimeTicks::Now(), 0, audio_bus_.get());
   uint32_t used = frames_filled * audio_bus_->channels() *
diff --git a/media/base/android/media_codec_bridge_impl.cc b/media/base/android/media_codec_bridge_impl.cc
index 0470083..6e65daa 100644
--- a/media/base/android/media_codec_bridge_impl.cc
+++ b/media/base/android/media_codec_bridge_impl.cc
@@ -493,7 +493,7 @@
   *size = base::checked_cast<size_t>(
       Java_DequeueOutputResult_numBytes(env, result));
   if (presentation_time) {
-    *presentation_time = base::TimeDelta::FromMicroseconds(
+    *presentation_time = base::Microseconds(
         Java_DequeueOutputResult_presentationTimeMicroseconds(env, result));
   }
   int flags = Java_DequeueOutputResult_flags(env, result);
diff --git a/media/base/android/media_codec_bridge_impl_unittest.cc b/media/base/android/media_codec_bridge_impl_unittest.cc
index 8115b6f..47ad1c2 100644
--- a/media/base/android/media_codec_bridge_impl_unittest.cc
+++ b/media/base/android/media_codec_bridge_impl_unittest.cc
@@ -131,7 +131,7 @@
 static const int kMaxInputPts = kPresentationTimeBase + 2;
 
 static inline const base::TimeDelta InfiniteTimeOut() {
-  return base::TimeDelta::FromMicroseconds(-1);
+  return base::Microseconds(-1);
 }
 
 void DecodeMediaFrame(MediaCodecBridge* media_codec,
@@ -164,7 +164,7 @@
     }
     // Output time stamp should not be smaller than old timestamp.
     ASSERT_TRUE(new_timestamp >= timestamp);
-    input_pts += base::TimeDelta::FromMicroseconds(33000);
+    input_pts += base::Microseconds(33000);
     timestamp = new_timestamp;
   }
 }
@@ -313,11 +313,11 @@
 
   int64_t input_pts = kPresentationTimeBase;
   media_codec->QueueInputBuffer(input_buf_index, test_mp3, sizeof(test_mp3),
-                                base::TimeDelta::FromMicroseconds(++input_pts));
+                                base::Microseconds(++input_pts));
 
   status = media_codec->DequeueInputBuffer(InfiniteTimeOut(), &input_buf_index);
   media_codec->QueueInputBuffer(input_buf_index, test_mp3, sizeof(test_mp3),
-                                base::TimeDelta::FromMicroseconds(++input_pts));
+                                base::Microseconds(++input_pts));
 
   status = media_codec->DequeueInputBuffer(InfiniteTimeOut(), &input_buf_index);
   media_codec->QueueEOS(input_buf_index);
@@ -389,7 +389,7 @@
   // Seek Preroll is < 0.
   ASSERT_THAT(MediaCodecBridgeImpl::CreateAudioDecoder(
                   NewAudioConfig(AudioCodec::kOpus, dummy_extra_data,
-                                 base::TimeDelta::FromMicroseconds(-1)),
+                                 base::Microseconds(-1)),
                   nullptr),
               IsNull());
 }
@@ -418,14 +418,12 @@
                buffer->data() + buffer->data_size());
   media_codec->Flush();
   DecodeMediaFrame(media_codec.get(), &chunk[0], chunk.size(),
-                   base::TimeDelta::FromMicroseconds(10000000),
-                   base::TimeDelta::FromMicroseconds(9900000));
+                   base::Microseconds(10000000), base::Microseconds(9900000));
 
   // Simulate a seek to 5 seconds.
   media_codec->Flush();
   DecodeMediaFrame(media_codec.get(), &chunk[0], chunk.size(),
-                   base::TimeDelta::FromMicroseconds(5000000),
-                   base::TimeDelta::FromMicroseconds(4900000));
+                   base::Microseconds(5000000), base::Microseconds(4900000));
 }
 
 TEST(MediaCodecBridgeTest, CreateUnsupportedCodec) {
@@ -493,8 +491,8 @@
 
   // Src_file contains 1 frames. Encode it 3 times.
   for (int frame = 0; frame < num_frames && frame < 3; frame++) {
-    input_timestamp += base::TimeDelta::FromMicroseconds(
-        base::Time::kMicrosecondsPerSecond / frame_rate);
+    input_timestamp +=
+        base::Microseconds(base::Time::kMicrosecondsPerSecond / frame_rate);
     EncodeMediaFrame(media_codec.get(), frame_data.get(), frame_size, width,
                      height, input_timestamp);
   }
@@ -503,8 +501,8 @@
   // also contain SPS/PPS NALUs.
   media_codec->RequestKeyFrameSoon();
   for (int frame = 0; frame < num_frames && frame < 3; frame++) {
-    input_timestamp += base::TimeDelta::FromMicroseconds(
-        base::Time::kMicrosecondsPerSecond / frame_rate);
+    input_timestamp +=
+        base::Microseconds(base::Time::kMicrosecondsPerSecond / frame_rate);
     EncodeMediaFrame(media_codec.get(), frame_data.get(), frame_size, width,
                      height, input_timestamp);
   }
diff --git a/media/base/android/media_codec_loop.cc b/media/base/android/media_codec_loop.cc
index 5722736..7e09e38 100644
--- a/media/base/android/media_codec_loop.cc
+++ b/media/base/android/media_codec_loop.cc
@@ -15,10 +15,9 @@
 namespace media {
 namespace {
 
-constexpr base::TimeDelta kDecodePollDelay =
-    base::TimeDelta::FromMilliseconds(10);
-constexpr base::TimeDelta kNoWaitTimeout = base::TimeDelta::FromMicroseconds(0);
-constexpr base::TimeDelta kIdleTimerTimeout = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kDecodePollDelay = base::Milliseconds(10);
+constexpr base::TimeDelta kNoWaitTimeout = base::Microseconds(0);
+constexpr base::TimeDelta kIdleTimerTimeout = base::Seconds(1);
 
 }  // namespace
 
diff --git a/media/base/android/media_codec_loop_unittest.cc b/media/base/android/media_codec_loop_unittest.cc
index 0bf706b..c7df7a22f 100644
--- a/media/base/android/media_codec_loop_unittest.cc
+++ b/media/base/android/media_codec_loop_unittest.cc
@@ -88,7 +88,7 @@
 
     // TODO(liberato): assume that MCL doesn't retry for 30 seconds.  Note
     // that this doesn't actually wall-clock wait.
-    mock_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(30));
+    mock_task_runner_->FastForwardBy(base::Seconds(30));
   }
 
   void ConstructCodecLoop(int sdk_int = base::android::SDK_VERSION_LOLLIPOP) {
@@ -142,7 +142,7 @@
     MediaCodecLoop::InputData data;
     data.memory = reinterpret_cast<const uint8_t*>("big buck bunny");
     data.length = 14;
-    data.presentation_time = base::TimeDelta::FromSeconds(1);
+    data.presentation_time = base::Seconds(1);
     return data;
   }
 
@@ -150,7 +150,7 @@
     int index = 1;
     size_t offset = 0;
     size_t size = 1024;
-    base::TimeDelta pts = base::TimeDelta::FromSeconds(1);
+    base::TimeDelta pts = base::Seconds(1);
     bool eos = false;
     bool key_frame = true;
   };
@@ -404,7 +404,7 @@
     OutputBuffer buffer;
     buffer.index = i;
     buffer.size += i;
-    buffer.pts = base::TimeDelta::FromSeconds(i + 1);
+    buffer.pts = base::Seconds(i + 1);
     ExpectDequeueOutputBuffer(buffer);
     ExpectOnDecodedFrame(buffer);
   }
diff --git a/media/base/android/media_player_bridge.cc b/media/base/android/media_player_bridge.cc
index 1f06c8f7..3e08054 100644
--- a/media/base/android/media_player_bridge.cc
+++ b/media/base/android/media_player_bridge.cc
@@ -384,7 +384,7 @@
   if (!prepared_)
     return pending_seek_;
   JNIEnv* env = base::android::AttachCurrentThread();
-  return base::TimeDelta::FromMilliseconds(
+  return base::Milliseconds(
       Java_MediaPlayerBridge_getCurrentPosition(env, j_media_player_bridge_));
 }
 
@@ -395,7 +395,7 @@
   const int duration_ms =
       Java_MediaPlayerBridge_getDuration(env, j_media_player_bridge_);
   return duration_ms < 0 ? media::kInfiniteDuration
-                         : base::TimeDelta::FromMilliseconds(duration_ms);
+                         : base::Milliseconds(duration_ms);
 }
 
 void MediaPlayerBridge::Release() {
@@ -477,7 +477,7 @@
   // events.
   if (should_seek_on_prepare_) {
     SeekInternal(pending_seek_);
-    pending_seek_ = base::TimeDelta::FromMilliseconds(0);
+    pending_seek_ = base::Milliseconds(0);
     should_seek_on_prepare_ = false;
   }
 
diff --git a/media/base/android/media_player_bridge_unittest.cc b/media/base/android/media_player_bridge_unittest.cc
index 36cf5c8..2fc4439d 100644
--- a/media/base/android/media_player_bridge_unittest.cc
+++ b/media/base/android/media_player_bridge_unittest.cc
@@ -63,7 +63,7 @@
 };
 
 TEST_F(MediaPlayerBridgeTest, Client_OnMediaMetadataChanged) {
-  const base::TimeDelta kDuration = base::TimeDelta::FromSeconds(20);
+  const base::TimeDelta kDuration = base::Seconds(20);
 
   EXPECT_CALL(client_, OnMediaDurationChanged(kDuration));
 
diff --git a/media/base/android/media_service_throttler.cc b/media/base/android/media_service_throttler.cc
index d950218..603e554 100644
--- a/media/base/android/media_service_throttler.cc
+++ b/media/base/android/media_service_throttler.cc
@@ -19,32 +19,31 @@
 // Period of inactivity after which we stop listening for MediaServer crashes.
 // NOTE: Server crashes don't count as activity. Only calls to
 // GetDelayForClientCreation() do.
-constexpr auto kReleaseInactivityDelay = base::TimeDelta::FromMinutes(1);
+constexpr auto kReleaseInactivityDelay = base::Minutes(1);
 
 // Elapsed time between crashes needed to completely reset the media server
 // crash count.
-constexpr auto kTimeUntilCrashReset = base::TimeDelta::FromMinutes(1);
+constexpr auto kTimeUntilCrashReset = base::Minutes(1);
 
 // Elapsed time between schedule calls needed to completely reset the
 // scheduling clock.
-constexpr auto kTimeUntilScheduleReset = base::TimeDelta::FromMinutes(1);
+constexpr auto kTimeUntilScheduleReset = base::Minutes(1);
 
 // Rate at which client creations will be exponentially throttled based on the
 // number of media server crashes.
 // NOTE: Since our exponential delay formula is 2^(server crashes), 0 server
 // crashes still result in this delay being added once.
-constexpr auto kBaseExponentialDelay = base::TimeDelta::FromMilliseconds(120);
+constexpr auto kBaseExponentialDelay = base::Milliseconds(120);
 
 // Base rate at which we schedule client creations.
 // The minimal delay is |kLinearThrottlingDelay| + |kBaseExponentialDelay|.
 constexpr auto kLinearThrottlingDelay =
-    base::TimeDelta::FromSecondsD(0.2) - kBaseExponentialDelay;
+    base::Seconds(0.2) - kBaseExponentialDelay;
 
 // Max exponential throttling rate from media server crashes.
 // The max delay will still be |kLinearThrottlingDelay| +
 // |kMaxExponentialDelay|.
-constexpr auto kMaxExponentialDelay =
-    base::TimeDelta::FromSeconds(3) - kLinearThrottlingDelay;
+constexpr auto kMaxExponentialDelay = base::Seconds(3) - kLinearThrottlingDelay;
 
 // Max number of clients to schedule immediately (e.g when loading a new page).
 const uint32_t kMaxBurstClients = 10;
@@ -172,8 +171,8 @@
     current_crashes_ = 0.0;
   } else {
     // Decay at the rate of 1 crash/minute otherwise.
-    const double decay = (now - last_current_crash_update_time_) /
-                         base::TimeDelta::FromMinutes(1);
+    const double decay =
+        (now - last_current_crash_update_time_) / base::Minutes(1);
     current_crashes_ = std::max(0.0, current_crashes_ - decay);
   }
 
diff --git a/media/base/android/media_service_throttler_unittest.cc b/media/base/android/media_service_throttler_unittest.cc
index af3b45a3..554142b2 100644
--- a/media/base/android/media_service_throttler_unittest.cc
+++ b/media/base/android/media_service_throttler_unittest.cc
@@ -140,11 +140,10 @@
 // reset.
 TEST_F(MediaServiceThrottlerTest, NoCrash_LongInactivity_ShouldReset) {
   // Schedule two minutes' worth of clients.
-  SimulateClientCreations(
-      base::ClampFloor(base::TimeDelta::FromMinutes(2) / base_delay_));
+  SimulateClientCreations(base::ClampFloor(base::Minutes(2) / base_delay_));
 
   // Advance the time so the scheduler perceived a full minute of inactivity.
-  clock_.Advance(base::TimeDelta::FromSeconds(61));
+  clock_.Advance(base::Seconds(61));
 
   // Make sure new clients are burst scheduled.
   EXPECT_EQ(base::TimeDelta(), throttler_->GetDelayForClientCreation());
@@ -172,7 +171,7 @@
   SimulateClientCreations(kMaxBurstClients);
 
   SimulateCrashes(1);
-  clock_.Advance(base::TimeDelta::FromMilliseconds(1));
+  clock_.Advance(base::Milliseconds(1));
 
   // Because we use the floor function when calculating crashes, a small time
   // advance should nullify a single crash.
@@ -185,7 +184,7 @@
   SimulateClientCreations(kMaxBurstClients);
 
   SimulateCrashes(2);
-  clock_.Advance(base::TimeDelta::FromMilliseconds(1));
+  clock_.Advance(base::Milliseconds(1));
 
   // The delay after crashes should be greater than the base delay.
   EXPECT_LT(base_delay_, GetCurrentDelayBetweenClients());
@@ -238,7 +237,7 @@
 
   // The effective server crash count should be reset because it has been over
   // a minute since the last crash.
-  clock_.Advance(base::TimeDelta::FromSeconds(61));
+  clock_.Advance(base::Seconds(61));
 
   SimulateClientCreations(kMaxBurstClients);
 
@@ -250,9 +249,9 @@
   SimulateCrashes(9);
 
   // The effective server crash count should not be reset.
-  clock_.Advance(base::TimeDelta::FromSeconds(59));
+  clock_.Advance(base::Seconds(59));
   SimulateCrashes(1);
-  clock_.Advance(base::TimeDelta::FromSeconds(2));
+  clock_.Advance(base::Seconds(2));
 
   SimulateClientCreations(kMaxBurstClients);
 
@@ -265,11 +264,10 @@
   // Schedule many minutes worth of clients. This is to prove that the
   // MediaServerCrashListener's clean up happens after lack of requests, as
   // opposed to lack of actually scheduled clients.
-  SimulateClientCreations(
-      base::ClampFloor(base::TimeDelta::FromMinutes(3) / base_delay_));
+  SimulateClientCreations(base::ClampFloor(base::Minutes(3) / base_delay_));
 
   // The MediaServerCrashListener should be alive, with 1s second to spare.
-  clock_.Advance(base::TimeDelta::FromSeconds(59));
+  clock_.Advance(base::Seconds(59));
   test_task_runner_->RunTasks();
   EXPECT_TRUE(throttler_->IsCrashListenerAliveForTesting());
 
@@ -278,12 +276,12 @@
   throttler_->GetDelayForClientCreation();
 
   // The MediaServerCrashListener should be alive, with 58s second to spare.
-  clock_.Advance(base::TimeDelta::FromSeconds(2));
+  clock_.Advance(base::Seconds(2));
   test_task_runner_->RunTasks();
   EXPECT_TRUE(throttler_->IsCrashListenerAliveForTesting());
 
   // The MediaServerCrashListener should be dead.
-  clock_.Advance(base::TimeDelta::FromSeconds(59));
+  clock_.Advance(base::Seconds(59));
   test_task_runner_->RunTasks();
   EXPECT_FALSE(throttler_->IsCrashListenerAliveForTesting());
 }
@@ -295,11 +293,10 @@
   // Schedule many minutes worth of clients. This is to prove that the
   // MediaServerCrashListener's clean up happens after lack of requests, as
   // opposed to lack of actually scheduled clients.
-  SimulateClientCreations(
-      base::ClampFloor(base::TimeDelta::FromMinutes(3) / base_delay_));
+  SimulateClientCreations(base::ClampFloor(base::Minutes(3) / base_delay_));
 
   // The MediaServerCrashListener should be alive, with 1s second to spare.
-  clock_.Advance(base::TimeDelta::FromSeconds(59));
+  clock_.Advance(base::Seconds(59));
   test_task_runner_->RunTasks();
   EXPECT_TRUE(throttler_->IsCrashListenerAliveForTesting());
 
@@ -307,7 +304,7 @@
   SimulateCrashes(1);
 
   // The MediaServerCrashListener should be dead.
-  clock_.Advance(base::TimeDelta::FromSeconds(2));
+  clock_.Advance(base::Seconds(2));
   test_task_runner_->RunTasks();
   EXPECT_FALSE(throttler_->IsCrashListenerAliveForTesting());
 }
diff --git a/media/base/audio_buffer.cc b/media/base/audio_buffer.cc
index 436c6164..cd50f60c 100644
--- a/media/base/audio_buffer.cc
+++ b/media/base/audio_buffer.cc
@@ -39,8 +39,8 @@
 
 static base::TimeDelta CalculateDuration(int frames, double sample_rate) {
   DCHECK_GT(sample_rate, 0);
-  return base::TimeDelta::FromMicroseconds(
-      frames * base::Time::kMicrosecondsPerSecond / sample_rate);
+  return base::Microseconds(frames * base::Time::kMicrosecondsPerSecond /
+                            sample_rate);
 }
 
 AudioBufferMemoryPool::AudioBufferMemoryPool() = default;
diff --git a/media/base/audio_buffer_converter_unittest.cc b/media/base/audio_buffer_converter_unittest.cc
index 64d8e45..a72a170 100644
--- a/media/base/audio_buffer_converter_unittest.cc
+++ b/media/base/audio_buffer_converter_unittest.cc
@@ -28,7 +28,7 @@
                                                  int frames) {
   return MakeAudioBuffer<uint8_t>(kSampleFormatU8, channel_layout,
                                   channel_count, sample_rate, 0, 1, frames,
-                                  base::TimeDelta::FromSeconds(0));
+                                  base::Seconds(0));
 }
 
 class AudioBufferConverterTest : public ::testing::Test {
diff --git a/media/base/audio_buffer_unittest.cc b/media/base/audio_buffer_unittest.cc
index bb4128bb..7a11dcf 100644
--- a/media/base/audio_buffer_unittest.cc
+++ b/media/base/audio_buffer_unittest.cc
@@ -58,7 +58,7 @@
   const int channels = ChannelLayoutToChannelCount(channel_layout);
   const int frames = kSampleRate / 10;
   const base::TimeDelta timestamp = base::TimeDelta();
-  const base::TimeDelta duration = base::TimeDelta::FromMilliseconds(100);
+  const base::TimeDelta duration = base::Milliseconds(100);
   scoped_refptr<AudioBuffer> buffer = MakeAudioBuffer<float>(sample_format,
                                                              channel_layout,
                                                              channels,
@@ -80,7 +80,7 @@
   // Trim 10ms of frames from the middle of the buffer.
   int trim_start = frames / 2;
   const int trim_length = kSampleRate / 100;
-  const base::TimeDelta trim_duration = base::TimeDelta::FromMilliseconds(10);
+  const base::TimeDelta trim_duration = base::Milliseconds(10);
   buffer->TrimRange(trim_start, trim_start + trim_length);
   EXPECT_EQ(frames - trim_length, buffer->frame_count());
   EXPECT_EQ(timestamp, buffer->timestamp());
@@ -187,7 +187,7 @@
   auto audio_bus = media::AudioBus::Create(kChannelCount, kFrameCount);
   temp_buffer->ReadFrames(kFrameCount, 0, 0, audio_bus.get());
 
-  const base::TimeDelta kTimestamp = base::TimeDelta::FromMilliseconds(123);
+  const base::TimeDelta kTimestamp = base::Milliseconds(123);
 
   auto audio_buffer_from_bus =
       media::AudioBuffer::CopyFrom(kSampleRate, kTimestamp, audio_bus.get());
@@ -219,7 +219,7 @@
   const uint8_t kTestData[] = {0,  1,  2,  3,  4,  5,  6,  7,  8,  9,  10,
                                11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
                                22, 23, 24, 25, 26, 27, 28, 29, 30, 31};
-  const base::TimeDelta kTimestamp = base::TimeDelta::FromMicroseconds(1337);
+  const base::TimeDelta kTimestamp = base::Microseconds(1337);
   const uint8_t* const data[] = {kTestData};
 
   scoped_refptr<AudioBuffer> buffer = AudioBuffer::CopyBitstreamFrom(
@@ -263,7 +263,7 @@
   const uint8_t kTestData[] = {0,  1,  2,  3,  4,  5,  6,  7,  8,  9,  10,
                                11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
                                22, 23, 24, 25, 26, 27, 28, 29, 30, 31};
-  const base::TimeDelta kTimestamp = base::TimeDelta::FromMicroseconds(1337);
+  const base::TimeDelta kTimestamp = base::Microseconds(1337);
 
   const uint8_t* const data[] = {kTestData};
   scoped_refptr<AudioBuffer> buffer =
@@ -548,7 +548,7 @@
       channel_layout, channels, kSampleRate, frames, start_time);
   EXPECT_EQ(frames, buffer->frame_count());
   EXPECT_EQ(start_time, buffer->timestamp());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(10), buffer->duration());
+  EXPECT_EQ(base::Milliseconds(10), buffer->duration());
   EXPECT_FALSE(buffer->end_of_stream());
 
   // Read all frames from the buffer. All data should be 0.
@@ -567,7 +567,7 @@
   const int channels = ChannelLayoutToChannelCount(channel_layout);
   const int frames = kSampleRate / 10;
   const base::TimeDelta start_time;
-  const base::TimeDelta duration = base::TimeDelta::FromMilliseconds(100);
+  const base::TimeDelta duration = base::Milliseconds(100);
   scoped_refptr<AudioBuffer> buffer = AudioBuffer::CreateEmptyBuffer(
       channel_layout, channels, kSampleRate, frames, start_time);
   EXPECT_EQ(frames, buffer->frame_count());
@@ -583,7 +583,7 @@
   // Trim 10ms of frames from the middle of the buffer.
   int trim_start = frames / 2;
   const int trim_length = kSampleRate / 100;
-  const base::TimeDelta trim_duration = base::TimeDelta::FromMilliseconds(10);
+  const base::TimeDelta trim_duration = base::Milliseconds(10);
   buffer->TrimRange(trim_start, trim_start + trim_length);
   EXPECT_EQ(frames - trim_length, buffer->frame_count());
   EXPECT_EQ(start_time, buffer->timestamp());
@@ -598,7 +598,7 @@
   const int channels = ChannelLayoutToChannelCount(channel_layout);
   const int frames = kSampleRate / 10;
   const base::TimeDelta start_time;
-  const base::TimeDelta duration = base::TimeDelta::FromMilliseconds(100);
+  const base::TimeDelta duration = base::Milliseconds(100);
   scoped_refptr<AudioBuffer> buffer =
       MakeAudioBuffer<float>(kSampleFormatPlanarF32,
                              channel_layout,
@@ -613,7 +613,7 @@
   EXPECT_EQ(duration, buffer->duration());
 
   const int ten_ms_of_frames = kSampleRate / 100;
-  const base::TimeDelta ten_ms = base::TimeDelta::FromMilliseconds(10);
+  const base::TimeDelta ten_ms = base::Milliseconds(10);
 
   std::unique_ptr<AudioBus> bus = AudioBus::Create(channels, frames);
   buffer->ReadFrames(buffer->frame_count(), 0, 0, bus.get());
diff --git a/media/base/audio_discard_helper_unittest.cc b/media/base/audio_discard_helper_unittest.cc
index 9300fea..b934b05 100644
--- a/media/base/audio_discard_helper_unittest.cc
+++ b/media/base/audio_discard_helper_unittest.cc
@@ -47,24 +47,21 @@
   AudioDiscardHelper discard_helper(kSampleRate, 0, false);
 
   EXPECT_EQ(0u, discard_helper.TimeDeltaToFrames(base::TimeDelta()));
-  EXPECT_EQ(
-      kSampleRate / 100,
-      discard_helper.TimeDeltaToFrames(base::TimeDelta::FromMilliseconds(10)));
+  EXPECT_EQ(kSampleRate / 100,
+            discard_helper.TimeDeltaToFrames(base::Milliseconds(10)));
 
   // Ensure partial frames are rounded down correctly.  The equation below
   // calculates a frame count with a fractional part < 0.5.
   const int small_remainder =
       base::Time::kMicrosecondsPerSecond * (kSampleRate - 0.9) / kSampleRate;
-  EXPECT_EQ(kSampleRate - 1,
-            discard_helper.TimeDeltaToFrames(
-                base::TimeDelta::FromMicroseconds(small_remainder)));
+  EXPECT_EQ(kSampleRate - 1, discard_helper.TimeDeltaToFrames(
+                                 base::Microseconds(small_remainder)));
 
   // Ditto, but rounded up using a fractional part > 0.5.
   const int large_remainder =
       base::Time::kMicrosecondsPerSecond * (kSampleRate - 0.4) / kSampleRate;
-  EXPECT_EQ(kSampleRate,
-            discard_helper.TimeDeltaToFrames(
-                base::TimeDelta::FromMicroseconds(large_remainder)));
+  EXPECT_EQ(kSampleRate, discard_helper.TimeDeltaToFrames(
+                             base::Microseconds(large_remainder)));
 }
 
 TEST(AudioDiscardHelperTest, BasicProcessBuffers) {
@@ -75,9 +72,8 @@
 
   // Use an estimated duration which doesn't match the number of decoded frames
   // to ensure the helper is correctly setting durations based on output frames.
-  const base::TimeDelta kEstimatedDuration =
-      base::TimeDelta::FromMilliseconds(9);
-  const base::TimeDelta kActualDuration = base::TimeDelta::FromMilliseconds(10);
+  const base::TimeDelta kEstimatedDuration = base::Milliseconds(9);
+  const base::TimeDelta kActualDuration = base::Milliseconds(10);
   const int kTestFrames = discard_helper.TimeDeltaToFrames(kActualDuration);
 
   scoped_refptr<DecoderBuffer> encoded_buffer =
@@ -104,8 +100,8 @@
   AudioDiscardHelper discard_helper(kSampleRate, 0, false);
   ASSERT_FALSE(discard_helper.initialized());
 
-  const base::TimeDelta kTimestamp = -base::TimeDelta::FromSeconds(1);
-  const base::TimeDelta kDuration = base::TimeDelta::FromMilliseconds(10);
+  const base::TimeDelta kTimestamp = -base::Seconds(1);
+  const base::TimeDelta kDuration = base::Milliseconds(10);
   const int kTestFrames = discard_helper.TimeDeltaToFrames(kDuration);
 
   scoped_refptr<DecoderBuffer> encoded_buffer =
@@ -126,7 +122,7 @@
   ASSERT_FALSE(discard_helper.initialized());
 
   const base::TimeDelta kTimestamp = base::TimeDelta();
-  const base::TimeDelta kDuration = base::TimeDelta::FromMilliseconds(10);
+  const base::TimeDelta kDuration = base::Milliseconds(10);
   const int kTestFrames = discard_helper.TimeDeltaToFrames(kDuration);
 
   // Tell the helper we want to discard half of the initial frames.
@@ -153,7 +149,7 @@
   ASSERT_FALSE(discard_helper.initialized());
 
   const base::TimeDelta kTimestamp = base::TimeDelta();
-  const base::TimeDelta kDuration = base::TimeDelta::FromMilliseconds(10);
+  const base::TimeDelta kDuration = base::Milliseconds(10);
   const int kTestFrames = discard_helper.TimeDeltaToFrames(kDuration);
 
   // Tell the helper we want to discard 1.5 buffers worth of frames.
@@ -188,7 +184,7 @@
   ASSERT_FALSE(discard_helper.initialized());
 
   const base::TimeDelta kTimestamp = base::TimeDelta();
-  const base::TimeDelta kDuration = base::TimeDelta::FromMilliseconds(10);
+  const base::TimeDelta kDuration = base::Milliseconds(10);
   const int kTestFrames = discard_helper.TimeDeltaToFrames(kDuration);
 
   scoped_refptr<DecoderBuffer> encoded_buffer =
@@ -216,7 +212,7 @@
   ASSERT_FALSE(discard_helper.initialized());
 
   const base::TimeDelta kTimestamp = base::TimeDelta();
-  const base::TimeDelta kDuration = base::TimeDelta::FromMilliseconds(10);
+  const base::TimeDelta kDuration = base::Milliseconds(10);
   const int kTestFrames = discard_helper.TimeDeltaToFrames(kDuration);
 
   scoped_refptr<DecoderBuffer> encoded_buffer =
@@ -240,7 +236,7 @@
   ASSERT_FALSE(discard_helper.initialized());
 
   const base::TimeDelta kTimestamp = base::TimeDelta();
-  const base::TimeDelta kDuration = base::TimeDelta::FromMilliseconds(10);
+  const base::TimeDelta kDuration = base::Milliseconds(10);
   const int kTestFrames = discard_helper.TimeDeltaToFrames(kDuration);
 
   scoped_refptr<DecoderBuffer> encoded_buffer =
@@ -262,7 +258,7 @@
   ASSERT_FALSE(discard_helper.initialized());
 
   const base::TimeDelta kTimestamp = base::TimeDelta();
-  const base::TimeDelta kDuration = base::TimeDelta::FromMilliseconds(10);
+  const base::TimeDelta kDuration = base::Milliseconds(10);
   const int kTestFrames = discard_helper.TimeDeltaToFrames(kDuration);
 
   scoped_refptr<DecoderBuffer> encoded_buffer =
@@ -292,7 +288,7 @@
   ASSERT_FALSE(discard_helper.initialized());
 
   const base::TimeDelta kTimestamp = base::TimeDelta();
-  const base::TimeDelta kDuration = base::TimeDelta::FromMilliseconds(10);
+  const base::TimeDelta kDuration = base::Milliseconds(10);
   const int kTestFrames = discard_helper.TimeDeltaToFrames(kDuration);
 
   scoped_refptr<DecoderBuffer> encoded_buffer =
@@ -323,7 +319,7 @@
   discard_helper.Reset(kDecoderDelay);
 
   const base::TimeDelta kTimestamp = base::TimeDelta();
-  const base::TimeDelta kDuration = base::TimeDelta::FromMilliseconds(10);
+  const base::TimeDelta kDuration = base::Milliseconds(10);
   const int kTestFrames = discard_helper.TimeDeltaToFrames(kDuration);
 
   scoped_refptr<DecoderBuffer> encoded_buffer =
@@ -434,7 +430,7 @@
   ASSERT_FALSE(discard_helper.initialized());
 
   const base::TimeDelta kTimestamp = base::TimeDelta();
-  const base::TimeDelta kDuration = base::TimeDelta::FromMilliseconds(10);
+  const base::TimeDelta kDuration = base::Milliseconds(10);
   const int kTestFrames = discard_helper.TimeDeltaToFrames(kDuration);
 
   scoped_refptr<DecoderBuffer> encoded_buffer =
@@ -470,7 +466,7 @@
   ASSERT_FALSE(discard_helper.initialized());
 
   const base::TimeDelta kTimestamp = base::TimeDelta();
-  const base::TimeDelta kDuration = base::TimeDelta::FromMilliseconds(10);
+  const base::TimeDelta kDuration = base::Milliseconds(10);
   const int kTestFrames = discard_helper.TimeDeltaToFrames(kDuration);
   discard_helper.Reset(0);
 
@@ -502,7 +498,7 @@
   ASSERT_FALSE(discard_helper.initialized());
 
   const base::TimeDelta kTimestamp = base::TimeDelta();
-  const base::TimeDelta kDuration = base::TimeDelta::FromMilliseconds(10);
+  const base::TimeDelta kDuration = base::Milliseconds(10);
   const int kTestFrames = discard_helper.TimeDeltaToFrames(kDuration);
   discard_helper.Reset(0);
 
@@ -541,7 +537,7 @@
   discard_helper.Reset(kDecoderDelay);
 
   const base::TimeDelta kTimestamp = base::TimeDelta();
-  const base::TimeDelta kDuration = base::TimeDelta::FromMilliseconds(10);
+  const base::TimeDelta kDuration = base::Milliseconds(10);
   const int kTestFrames = discard_helper.TimeDeltaToFrames(kDuration);
 
   scoped_refptr<DecoderBuffer> encoded_buffer =
diff --git a/media/base/audio_latency_unittest.cc b/media/base/audio_latency_unittest.cc
index aa9ac66..d772292 100644
--- a/media/base/audio_latency_unittest.cc
+++ b/media/base/audio_latency_unittest.cc
@@ -46,63 +46,57 @@
                   max_buffer_size
             : (limits::kMaxWebAudioBufferSize / multiplier) * multiplier;
 
-    EXPECT_EQ(platform_min_buffer_size,
-              media::AudioLatency::GetExactBufferSize(
-                  base::TimeDelta::FromSecondsD(0.0), hardware_sample_rate,
-                  hardware_buffer_size, min_buffer_size, max_buffer_size,
-                  limits::kMaxWebAudioBufferSize));
     EXPECT_EQ(
         platform_min_buffer_size,
         media::AudioLatency::GetExactBufferSize(
-            base::TimeDelta::FromSecondsD(
-                min_buffer_size / static_cast<double>(hardware_sample_rate)),
-            hardware_sample_rate, hardware_buffer_size, min_buffer_size,
-            max_buffer_size, limits::kMaxWebAudioBufferSize));
-    EXPECT_EQ(
-        multiplier * 2,
-        media::AudioLatency::GetExactBufferSize(
-            base::TimeDelta::FromSecondsD(
-                (multiplier * 2) / static_cast<double>(hardware_sample_rate)),
-            hardware_sample_rate, hardware_buffer_size, min_buffer_size,
-            max_buffer_size, limits::kMaxWebAudioBufferSize));
-    EXPECT_EQ(
-        multiplier * 2,
-        media::AudioLatency::GetExactBufferSize(
-            base::TimeDelta::FromSecondsD(
-                (multiplier * 1.1) / static_cast<double>(hardware_sample_rate)),
-            hardware_sample_rate, hardware_buffer_size, min_buffer_size,
-            max_buffer_size, limits::kMaxWebAudioBufferSize));
-    EXPECT_EQ(platform_max_buffer_size,
+            base::Seconds(0.0), hardware_sample_rate, hardware_buffer_size,
+            min_buffer_size, max_buffer_size, limits::kMaxWebAudioBufferSize));
+    EXPECT_EQ(platform_min_buffer_size,
               media::AudioLatency::GetExactBufferSize(
-                  base::TimeDelta::FromSecondsD(10.0), hardware_sample_rate,
-                  hardware_buffer_size, min_buffer_size, max_buffer_size,
-                  limits::kMaxWebAudioBufferSize));
+                  base::Seconds(min_buffer_size /
+                                static_cast<double>(hardware_sample_rate)),
+                  hardware_sample_rate, hardware_buffer_size, min_buffer_size,
+                  max_buffer_size, limits::kMaxWebAudioBufferSize));
+    EXPECT_EQ(multiplier * 2,
+              media::AudioLatency::GetExactBufferSize(
+                  base::Seconds((multiplier * 2) /
+                                static_cast<double>(hardware_sample_rate)),
+                  hardware_sample_rate, hardware_buffer_size, min_buffer_size,
+                  max_buffer_size, limits::kMaxWebAudioBufferSize));
+    EXPECT_EQ(multiplier * 2,
+              media::AudioLatency::GetExactBufferSize(
+                  base::Seconds((multiplier * 1.1) /
+                                static_cast<double>(hardware_sample_rate)),
+                  hardware_sample_rate, hardware_buffer_size, min_buffer_size,
+                  max_buffer_size, limits::kMaxWebAudioBufferSize));
+    EXPECT_EQ(
+        platform_max_buffer_size,
+        media::AudioLatency::GetExactBufferSize(
+            base::Seconds(10.0), hardware_sample_rate, hardware_buffer_size,
+            min_buffer_size, max_buffer_size, limits::kMaxWebAudioBufferSize));
     if (max_buffer_size) {
-      EXPECT_EQ(
-          max_buffer_size,
-          media::AudioLatency::GetExactBufferSize(
-              base::TimeDelta::FromSecondsD(
-                  max_buffer_size / static_cast<double>(hardware_sample_rate)),
-              hardware_sample_rate, hardware_buffer_size, min_buffer_size,
-              max_buffer_size, limits::kMaxWebAudioBufferSize));
+      EXPECT_EQ(max_buffer_size,
+                media::AudioLatency::GetExactBufferSize(
+                    base::Seconds(max_buffer_size /
+                                  static_cast<double>(hardware_sample_rate)),
+                    hardware_sample_rate, hardware_buffer_size, min_buffer_size,
+                    max_buffer_size, limits::kMaxWebAudioBufferSize));
     }
 
 #if defined(OS_WIN)
     if (min_buffer_size && min_buffer_size < hardware_buffer_size) {
       EXPECT_EQ(hardware_buffer_size,
                 media::AudioLatency::GetExactBufferSize(
-                    base::TimeDelta::FromSecondsD(
-                        (min_buffer_size * 1.1) /
-                        static_cast<double>(hardware_sample_rate)),
+                    base::Seconds((min_buffer_size * 1.1) /
+                                  static_cast<double>(hardware_sample_rate)),
                     hardware_sample_rate, hardware_buffer_size, min_buffer_size,
                     max_buffer_size, limits::kMaxWebAudioBufferSize));
     }
 #elif defined(OS_MAC)
     EXPECT_EQ(limits::kMaxWebAudioBufferSize,
               media::AudioLatency::GetExactBufferSize(
-                  base::TimeDelta::FromSecondsD(
-                      (limits::kMaxAudioBufferSize * 1.1) /
-                      static_cast<double>(hardware_sample_rate)),
+                  base::Seconds((limits::kMaxAudioBufferSize * 1.1) /
+                                static_cast<double>(hardware_sample_rate)),
                   hardware_sample_rate, hardware_buffer_size, min_buffer_size,
                   max_buffer_size, limits::kMaxWebAudioBufferSize));
 #endif
@@ -110,9 +104,8 @@
     int previous_buffer_size = 0;
     for (int i = 0; i < 1000; i++) {
       int buffer_size = media::AudioLatency::GetExactBufferSize(
-          base::TimeDelta::FromSecondsD(i / 1000.0), hardware_sample_rate,
-          hardware_buffer_size, min_buffer_size, max_buffer_size,
-          limits::kMaxWebAudioBufferSize);
+          base::Seconds(i / 1000.0), hardware_sample_rate, hardware_buffer_size,
+          min_buffer_size, max_buffer_size, limits::kMaxWebAudioBufferSize);
       EXPECT_GE(buffer_size, previous_buffer_size);
 #if defined(OS_WIN)
       EXPECT_TRUE(buffer_size == min_buffer_size ||
diff --git a/media/base/audio_parameters.cc b/media/base/audio_parameters.cc
index b3b07180..73660ae 100644
--- a/media/base/audio_parameters.cc
+++ b/media/base/audio_parameters.cc
@@ -162,7 +162,7 @@
 }
 
 base::TimeDelta AudioParameters::GetBufferDuration() const {
-  return base::TimeDelta::FromMicroseconds(static_cast<int64_t>(
+  return base::Microseconds(static_cast<int64_t>(
       frames_per_buffer_ * base::Time::kMicrosecondsPerSecond /
       static_cast<float>(sample_rate_)));
 }
diff --git a/media/base/audio_power_monitor_unittest.cc b/media/base/audio_power_monitor_unittest.cc
index 7ce16e0..6b01f582 100644
--- a/media/base/audio_power_monitor_unittest.cc
+++ b/media/base/audio_power_monitor_unittest.cc
@@ -146,9 +146,7 @@
 class AudioPowerMonitorTest : public ::testing::TestWithParam<TestScenario> {
  public:
   AudioPowerMonitorTest()
-      : power_monitor_(kSampleRate,
-                       base::TimeDelta::FromMilliseconds(kTimeConstantMillis)) {
-  }
+      : power_monitor_(kSampleRate, base::Milliseconds(kTimeConstantMillis)) {}
 
   void FeedAndCheckExpectedPowerIsMeasured(const AudioBus& bus,
                                            float power,
diff --git a/media/base/audio_renderer_mixer.cc b/media/base/audio_renderer_mixer.cc
index 604a9ec..1c4cc331 100644
--- a/media/base/audio_renderer_mixer.cc
+++ b/media/base/audio_renderer_mixer.cc
@@ -15,7 +15,7 @@
 
 namespace media {
 
-constexpr base::TimeDelta kPauseDelay = base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kPauseDelay = base::Seconds(10);
 
 AudioRendererMixer::AudioRendererMixer(const AudioParameters& output_params,
                                        scoped_refptr<AudioRendererSink> sink)
diff --git a/media/base/audio_renderer_mixer_unittest.cc b/media/base/audio_renderer_mixer_unittest.cc
index bec6fd5e..3e6c86b 100644
--- a/media/base/audio_renderer_mixer_unittest.cc
+++ b/media/base/audio_renderer_mixer_unittest.cc
@@ -479,7 +479,7 @@
 // Ensure the physical stream is paused after a certain amount of time with no
 // inputs playing.  The test will hang if the behavior is incorrect.
 TEST_P(AudioRendererMixerBehavioralTest, MixerPausesStream) {
-  const base::TimeDelta kPauseTime = base::TimeDelta::FromMilliseconds(500);
+  const base::TimeDelta kPauseTime = base::Milliseconds(500);
   // This value can't be too low or valgrind, tsan will timeout on the bots.
   const base::TimeDelta kTestTimeout = 10 * kPauseTime;
   mixer_->SetPauseDelayForTesting(kPauseTime);
@@ -492,7 +492,7 @@
   InitializeInputs(1);
 
   // Ensure never playing the input results in a sink pause.
-  const base::TimeDelta kSleepTime = base::TimeDelta::FromMilliseconds(100);
+  const base::TimeDelta kSleepTime = base::Milliseconds(100);
   base::TimeTicks start_time = base::TimeTicks::Now();
   while (!pause_event.IsSignaled()) {
     mixer_callback_->Render(base::TimeDelta(), base::TimeTicks::Now(), 0,
diff --git a/media/base/audio_shifter.cc b/media/base/audio_shifter.cc
index 90c4161..462fdf7 100644
--- a/media/base/audio_shifter.cc
+++ b/media/base/audio_shifter.cc
@@ -108,8 +108,7 @@
                (playout_time - base::TimeTicks()).InMillisecondsF());
   if (!queue_.empty()) {
     playout_time = input_clock_smoother_->Smooth(
-        playout_time,
-        base::TimeDelta::FromSecondsD(queue_.back().audio->frames() / rate_));
+        playout_time, base::Seconds(queue_.back().audio->frames() / rate_));
   }
   queue_.push_back(AudioQueueEntry(playout_time, std::move(input)));
   while (!queue_.empty() &&
@@ -128,11 +127,9 @@
   // Add the kernel size since we incur some internal delay in resampling. All
   // resamplers incur some delay, and for the SincResampler (used by
   // MultiChannelResampler), this is (currently) kKernelSize / 2 frames.
-  playout_time +=
-      base::TimeDelta::FromSecondsD(SincResampler::kKernelSize / 2 / rate_);
+  playout_time += base::Seconds(SincResampler::kKernelSize / 2 / rate_);
   playout_time = output_clock_smoother_->Smooth(
-      playout_time,
-      base::TimeDelta::FromSecondsD(previous_requested_samples_ / rate_));
+      playout_time, base::Seconds(previous_requested_samples_ / rate_));
   previous_requested_samples_ = output->frames();
 
   base::TimeTicks stream_time;
@@ -145,21 +142,19 @@
     stream_time = queue_.front().target_playout_time;
     buffer_end_time = queue_.back().target_playout_time;
   }
-  stream_time += base::TimeDelta::FromSecondsD(
-      (position_ - resampler_.BufferedFrames()) / rate_);
+  stream_time +=
+      base::Seconds((position_ - resampler_.BufferedFrames()) / rate_);
 
-  if (!running_ && base::TimeDelta::FromSecondsD(output->frames() * 2 / rate_) +
-                           clock_accuracy_ >
-                       buffer_end_time - stream_time) {
+  if (!running_ &&
+      base::Seconds(output->frames() * 2 / rate_) + clock_accuracy_ >
+          buffer_end_time - stream_time) {
     // We're not running right now, and we don't really have enough data
     // to satisfy output reliably. Wait.
     Zero(output);
     return;
   }
-  if (playout_time <
-      stream_time -
-          base::TimeDelta::FromSecondsD(output->frames() / rate_ / 2) -
-          (running_ ? clock_accuracy_ : base::TimeDelta())) {
+  if (playout_time < stream_time - base::Seconds(output->frames() / rate_ / 2) -
+                         (running_ ? clock_accuracy_ : base::TimeDelta())) {
     // |playout_time| is too far before the earliest known audio sample.
     Zero(output);
     return;
@@ -172,7 +167,7 @@
     // bias to avoid buffer underruns in the future.
     if (bias_.is_zero()) {
       bias_ = playout_time - stream_time + clock_accuracy_ +
-              base::TimeDelta::FromSecondsD(output->frames() / rate_);
+              base::Seconds(output->frames() / rate_);
     }
     stream_time += bias_;
   } else {
@@ -207,7 +202,7 @@
   double slow_ratio = steady_ratio + time_difference / adjustment_time_;
   slow_ratio = base::clamp(slow_ratio, 0.9, 1.1);
   const base::TimeDelta adjustment_time =
-      base::TimeDelta::FromSecondsD(output->frames() / rate_);
+      base::Seconds(output->frames() / rate_);
   // This is ratio we we'd need get perfect sync at the end of the
   // current output audiobus.
   double fast_ratio = steady_ratio + time_difference / adjustment_time;
@@ -260,7 +255,7 @@
     if (position_ >= static_cast<size_t>(queue_.front().audio->frames())) {
       end_of_last_consumed_audiobus_ =
           queue_.front().target_playout_time +
-          base::TimeDelta::FromSecondsD(queue_.front().audio->frames() / rate_);
+          base::Seconds(queue_.front().audio->frames() / rate_);
       position_ -= queue_.front().audio->frames();
       queue_.pop_front();
     }
diff --git a/media/base/audio_shifter_unittest.cc b/media/base/audio_shifter_unittest.cc
index 42a0e05..0d651f9 100644
--- a/media/base/audio_shifter_unittest.cc
+++ b/media/base/audio_shifter_unittest.cc
@@ -22,18 +22,17 @@
       public ::testing::TestWithParam<::testing::tuple<int, int, int, bool> > {
  public:
   AudioShifterTest()
-      : shifter_(base::TimeDelta::FromMilliseconds(2000),
-                 base::TimeDelta::FromMilliseconds(3),
-                 base::TimeDelta::FromMilliseconds(100),
+      : shifter_(base::Milliseconds(2000),
+                 base::Milliseconds(3),
+                 base::Milliseconds(100),
                  kSampleRate,
                  2),
-        end2end_latency_(base::TimeDelta::FromMilliseconds(30)),
-        playback_latency_(base::TimeDelta::FromMilliseconds(10)),
+        end2end_latency_(base::Milliseconds(30)),
+        playback_latency_(base::Milliseconds(10)),
         tag_input_(false),
         expect_smooth_output_(true),
         input_sample_n_(0),
-        output_sample_(0) {
-  }
+        output_sample_(0) {}
 
   void SetupInput(int size, base::TimeDelta rate) {
     input_size_ = size;
@@ -62,12 +61,10 @@
   void SetUp() override {
     SetupInput(
         kInputPacketSize + ::testing::get<0>(GetParam()) - 1,
-        base::TimeDelta::FromMicroseconds(
-            1000 + ::testing::get<1>(GetParam()) * 5 - 5));
+        base::Microseconds(1000 + ::testing::get<1>(GetParam()) * 5 - 5));
     SetupOutput(
         kOutputPacketSize,
-        base::TimeDelta::FromMicroseconds(
-            500 + ::testing::get<2>(GetParam()) * 3 - 3));
+        base::Microseconds(500 + ::testing::get<2>(GetParam()) * 3 - 3));
     if (::testing::get<3>(GetParam())) {
       end2end_latency_ = -end2end_latency_;
     }
@@ -89,9 +86,8 @@
           if (test_output_->channel(0)[j] != 0.0) {
             silence = false;
             if (test_output_->channel(0)[j] > 3000000.0) {
-              marker_outputs_.push_back(
-                now_ + playback_latency_ +
-                base::TimeDelta::FromSeconds(j) / kSampleRate);
+              marker_outputs_.push_back(now_ + playback_latency_ +
+                                        base::Seconds(j) / kSampleRate);
              } else {
                // We don't expect smooth output once we insert a tag,
                // or in the very beginning.
@@ -128,8 +124,8 @@
     if (end2end_latency_ > base::TimeDelta()) {
       CHECK(!marker_outputs_.empty());
       base::TimeDelta actual_offset = marker_outputs_[0] - expected_mark_time;
-      EXPECT_LT(actual_offset, base::TimeDelta::FromMicroseconds(100));
-      EXPECT_GT(actual_offset, base::TimeDelta::FromMicroseconds(-100));
+      EXPECT_LT(actual_offset, base::Microseconds(100));
+      EXPECT_GT(actual_offset, base::Microseconds(-100));
     } else {
       EXPECT_GT(marker_outputs_.size(), 0UL);
     }
@@ -174,8 +170,7 @@
   expect_smooth_output_ = false;
   Run(100);
   for (int i = 0; i < 100; i++) {
-    shifter_.Pull(test_output_.get(),
-                  now_ + base::TimeDelta::FromMilliseconds(i));
+    shifter_.Pull(test_output_.get(), now_ + base::Milliseconds(i));
   }
   RunAndCheckSync(1000);
   EXPECT_LE(skip_outputs_.size(), 1UL);
@@ -185,12 +180,10 @@
   expect_smooth_output_ = false;
   SetupInput(
       kInputPacketSize + ::testing::get<0>(GetParam()) * 10 - 10,
-      base::TimeDelta::FromMicroseconds(
-          1000 + ::testing::get<1>(GetParam()) * 100 - 100));
+      base::Microseconds(1000 + ::testing::get<1>(GetParam()) * 100 - 100));
   SetupOutput(
       kOutputPacketSize,
-      base::TimeDelta::FromMicroseconds(
-          500 + ::testing::get<2>(GetParam()) * 50 - 50));
+      base::Microseconds(500 + ::testing::get<2>(GetParam()) * 50 - 50));
   // Sane output is not expected, but let's make sure we don't crash.
   Run(1000);
 }
diff --git a/media/base/audio_timestamp_helper.cc b/media/base/audio_timestamp_helper.cc
index ee87ed2..01ec6be2 100644
--- a/media/base/audio_timestamp_helper.cc
+++ b/media/base/audio_timestamp_helper.cc
@@ -13,8 +13,8 @@
 base::TimeDelta AudioTimestampHelper::FramesToTime(int64_t frames,
                                                    int samples_per_second) {
   DCHECK_GT(samples_per_second, 0);
-  return base::TimeDelta::FromMicroseconds(
-      frames * base::Time::kMicrosecondsPerSecond / samples_per_second);
+  return base::Microseconds(frames * base::Time::kMicrosecondsPerSecond /
+                            samples_per_second);
 }
 
 // static
@@ -82,7 +82,7 @@
   DCHECK_GE(frame_count, 0);
   DCHECK(base_timestamp_ != kNoTimestamp);
   double frames_us = microseconds_per_frame_ * frame_count;
-  return base_timestamp_ + base::TimeDelta::FromMicroseconds(frames_us);
+  return base_timestamp_ + base::Microseconds(frames_us);
 }
 
 }  // namespace media
diff --git a/media/base/audio_timestamp_helper_unittest.cc b/media/base/audio_timestamp_helper_unittest.cc
index 272e9f72..1a70066e 100644
--- a/media/base/audio_timestamp_helper_unittest.cc
+++ b/media/base/audio_timestamp_helper_unittest.cc
@@ -35,7 +35,7 @@
 
   int64_t FramesToTarget(int target_in_microseconds) {
     return helper_.GetFramesToTarget(
-        base::TimeDelta::FromMicroseconds(target_in_microseconds));
+        base::Microseconds(target_in_microseconds));
   }
 
   void TestGetFramesToTargetRange(int frame_count, int start, int end) {
@@ -54,49 +54,49 @@
 
 TEST_F(AudioTimestampHelperTest, FramesToTime) {
   // Negative value.
-  EXPECT_EQ(base::TimeDelta::FromSeconds(-1),
+  EXPECT_EQ(base::Seconds(-1),
             AudioTimestampHelper::FramesToTime(-48000, k48kHz));
   // Zero.
-  EXPECT_EQ(base::TimeDelta::FromMicroseconds(0),
+  EXPECT_EQ(base::Microseconds(0),
             AudioTimestampHelper::FramesToTime(0, k48kHz));
   // One frame.
-  EXPECT_EQ(base::TimeDelta::FromMicroseconds(20),
+  EXPECT_EQ(base::Microseconds(20),
             AudioTimestampHelper::FramesToTime(1, k48kHz));
   // Exact value with maximum precision of TimeDelta.
-  EXPECT_EQ(base::TimeDelta::FromMicroseconds(15625),
+  EXPECT_EQ(base::Microseconds(15625),
             AudioTimestampHelper::FramesToTime(750, k48kHz));
   // One second.
-  EXPECT_EQ(base::TimeDelta::FromSeconds(1),
+  EXPECT_EQ(base::Seconds(1),
             AudioTimestampHelper::FramesToTime(48000, k48kHz));
   // Argument and return value exceeding 32 bits.
-  EXPECT_EQ(base::TimeDelta::FromSeconds(1000000),
+  EXPECT_EQ(base::Seconds(1000000),
             AudioTimestampHelper::FramesToTime(48000000000, k48kHz));
 }
 
 TEST_F(AudioTimestampHelperTest, TimeToFrames) {
   // Negative value.
-  EXPECT_EQ(-48000, AudioTimestampHelper::TimeToFrames(
-                        base::TimeDelta::FromSeconds(-1), k48kHz));
+  EXPECT_EQ(-48000,
+            AudioTimestampHelper::TimeToFrames(base::Seconds(-1), k48kHz));
   // Zero.
-  EXPECT_EQ(0, AudioTimestampHelper::TimeToFrames(
-                   base::TimeDelta::FromMicroseconds(0), k48kHz));
+  EXPECT_EQ(0,
+            AudioTimestampHelper::TimeToFrames(base::Microseconds(0), k48kHz));
   // Duration of each frame is 20.833 microseconds. The result is rounded to
   // integral.
-  EXPECT_EQ(0, AudioTimestampHelper::TimeToFrames(
-                   base::TimeDelta::FromMicroseconds(10), k48kHz));
-  EXPECT_EQ(1, AudioTimestampHelper::TimeToFrames(
-                   base::TimeDelta::FromMicroseconds(20), k48kHz));
-  EXPECT_EQ(1, AudioTimestampHelper::TimeToFrames(
-                   base::TimeDelta::FromMicroseconds(21), k48kHz));
+  EXPECT_EQ(0,
+            AudioTimestampHelper::TimeToFrames(base::Microseconds(10), k48kHz));
+  EXPECT_EQ(1,
+            AudioTimestampHelper::TimeToFrames(base::Microseconds(20), k48kHz));
+  EXPECT_EQ(1,
+            AudioTimestampHelper::TimeToFrames(base::Microseconds(21), k48kHz));
   // Exact value with maximum precision of TimeDelta.
-  EXPECT_EQ(750, AudioTimestampHelper::TimeToFrames(
-                     base::TimeDelta::FromMicroseconds(15625), k48kHz));
+  EXPECT_EQ(750, AudioTimestampHelper::TimeToFrames(base::Microseconds(15625),
+                                                    k48kHz));
   // One second.
-  EXPECT_EQ(48000, AudioTimestampHelper::TimeToFrames(
-                       base::TimeDelta::FromSeconds(1), k48kHz));
+  EXPECT_EQ(48000,
+            AudioTimestampHelper::TimeToFrames(base::Seconds(1), k48kHz));
   // Argument and return value exceeding 32 bits.
-  EXPECT_EQ(48000000000, AudioTimestampHelper::TimeToFrames(
-                             base::TimeDelta::FromSeconds(1000000), k48kHz));
+  EXPECT_EQ(48000000000,
+            AudioTimestampHelper::TimeToFrames(base::Seconds(1000000), k48kHz));
 }
 
 TEST_F(AudioTimestampHelperTest, Basic) {
@@ -128,7 +128,7 @@
 
 
 TEST_F(AudioTimestampHelperTest, GetDuration) {
-  helper_.SetBaseTimestamp(base::TimeDelta::FromMicroseconds(100));
+  helper_.SetBaseTimestamp(base::Microseconds(100));
 
   int frame_count = 5;
   int64_t expected_durations[] = {113, 113, 114, 113, 113, 114};
diff --git a/media/base/data_buffer_unittest.cc b/media/base/data_buffer_unittest.cc
index 5b9e5ac..e4f5304 100644
--- a/media/base/data_buffer_unittest.cc
+++ b/media/base/data_buffer_unittest.cc
@@ -69,8 +69,8 @@
 
 TEST(DataBufferTest, Timestamp) {
   const base::TimeDelta kZero;
-  const base::TimeDelta kTimestampA = base::TimeDelta::FromMicroseconds(1337);
-  const base::TimeDelta kTimestampB = base::TimeDelta::FromMicroseconds(1234);
+  const base::TimeDelta kTimestampA = base::Microseconds(1337);
+  const base::TimeDelta kTimestampB = base::Microseconds(1234);
 
   scoped_refptr<DataBuffer> buffer = new DataBuffer(0);
   EXPECT_TRUE(buffer->timestamp() == kZero);
@@ -84,8 +84,8 @@
 
 TEST(DataBufferTest, Duration) {
   const base::TimeDelta kZero;
-  const base::TimeDelta kDurationA = base::TimeDelta::FromMicroseconds(1337);
-  const base::TimeDelta kDurationB = base::TimeDelta::FromMicroseconds(1234);
+  const base::TimeDelta kDurationA = base::Microseconds(1337);
+  const base::TimeDelta kDurationB = base::Microseconds(1234);
 
   scoped_refptr<DataBuffer> buffer = new DataBuffer(0);
   EXPECT_TRUE(buffer->duration() == kZero);
diff --git a/media/base/decoder_buffer_queue_unittest.cc b/media/base/decoder_buffer_queue_unittest.cc
index be2a4b2b..ce233a1 100644
--- a/media/base/decoder_buffer_queue_unittest.cc
+++ b/media/base/decoder_buffer_queue_unittest.cc
@@ -12,7 +12,7 @@
 static base::TimeDelta ToTimeDelta(int seconds) {
   if (seconds < 0)
     return kNoTimestamp;
-  return base::TimeDelta::FromSeconds(seconds);
+  return base::Seconds(seconds);
 }
 
 // Helper to create buffers with specified timestamp in seconds.
diff --git a/media/base/fake_audio_worker_unittest.cc b/media/base/fake_audio_worker_unittest.cc
index a1c751b..e2e6e2d 100644
--- a/media/base/fake_audio_worker_unittest.cc
+++ b/media/base/fake_audio_worker_unittest.cc
@@ -35,7 +35,7 @@
   FakeAudioWorkerTest()
       : params_(AudioParameters::AUDIO_FAKE, CHANNEL_LAYOUT_STEREO, 44100, 128),
         fake_worker_(task_environment_.GetMainThreadTaskRunner(), params_) {
-    time_between_callbacks_ = base::TimeDelta::FromMicroseconds(
+    time_between_callbacks_ = base::Microseconds(
         params_.frames_per_buffer() * base::Time::kMicrosecondsPerSecond /
         static_cast<float>(params_.sample_rate()));
   }
@@ -181,7 +181,7 @@
         fake_worker_(task_runner_, params_) {
     DCHECK(!global_clock_);
     global_clock_ = task_runner_->GetMockTickClock();
-    time_between_callbacks_ = base::TimeDelta::FromMicroseconds(
+    time_between_callbacks_ = base::Microseconds(
         params_.frames_per_buffer() * base::Time::kMicrosecondsPerSecond /
         static_cast<float>(params_.sample_rate()));
     clock_overrides_ = std::make_unique<base::subtle::ScopedTimeClockOverrides>(
diff --git a/media/base/fake_demuxer_stream.cc b/media/base/fake_demuxer_stream.cc
index 7a9fadd..3577c27 100644
--- a/media/base/fake_demuxer_stream.cc
+++ b/media/base/fake_demuxer_stream.cc
@@ -75,8 +75,8 @@
   num_configs_left_ = num_configs_;
   num_buffers_left_in_current_config_ = num_buffers_in_one_config_;
   num_buffers_returned_ = 0;
-  current_timestamp_ = base::TimeDelta::FromMilliseconds(kStartTimestampMs);
-  duration_ = base::TimeDelta::FromMilliseconds(kDurationMs);
+  current_timestamp_ = base::Milliseconds(kStartTimestampMs);
+  duration_ = base::Milliseconds(kDurationMs);
   next_size_ = start_coded_size_;
   next_read_num_ = 0;
 }
diff --git a/media/base/fake_single_thread_task_runner.cc b/media/base/fake_single_thread_task_runner.cc
index f2dcd5f..c050d5ba 100644
--- a/media/base/fake_single_thread_task_runner.cc
+++ b/media/base/fake_single_thread_task_runner.cc
@@ -36,8 +36,8 @@
   // scheduling delayed tasks to be run via base::MessageLoop in a
   // multi-threaded application.
   if (!tasks_.empty()) {
-    const auto after_it = tasks_.lower_bound(
-        TaskKey(run_time + base::TimeDelta::FromMicroseconds(1), 0));
+    const auto after_it =
+        tasks_.lower_bound(TaskKey(run_time + base::Microseconds(1), 0));
     if (after_it != tasks_.begin()) {
       auto it = after_it;
       --it;
diff --git a/media/base/feedback_signal_accumulator_unittest.cc b/media/base/feedback_signal_accumulator_unittest.cc
index 2a28fe7d..d6c11a9 100644
--- a/media/base/feedback_signal_accumulator_unittest.cc
+++ b/media/base/feedback_signal_accumulator_unittest.cc
@@ -11,9 +11,9 @@
 class FeedbackSignalAccumulatorTest : public ::testing::Test {
  public:
   FeedbackSignalAccumulatorTest()
-      : half_life_(base::TimeDelta::FromSeconds(1)),
+      : half_life_(base::Seconds(1)),
         acc_(half_life_),
-        t_(base::TimeTicks() + base::TimeDelta::FromSeconds(120)) {
+        t_(base::TimeTicks() + base::Seconds(120)) {
     acc_.Reset(0.0, t_);
   }
 
@@ -45,14 +45,12 @@
   ASSERT_EQ(0.0, acc_.current());
   ASSERT_EQ(t_, acc_.update_time());
 
-  const base::TimeTicks one_usec_before =
-      t_ - base::TimeDelta::FromMicroseconds(1);
+  const base::TimeTicks one_usec_before = t_ - base::Microseconds(1);
   ASSERT_FALSE(acc_.Update(1.0, one_usec_before));
   ASSERT_EQ(0.0, acc_.current());
   ASSERT_EQ(t_, acc_.update_time());
 
-  const base::TimeTicks one_usec_after =
-      t_ + base::TimeDelta::FromMicroseconds(1);
+  const base::TimeTicks one_usec_after = t_ + base::Microseconds(1);
   ASSERT_TRUE(acc_.Update(1.0, one_usec_after));
   ASSERT_LT(0.0, acc_.current());
   ASSERT_EQ(one_usec_after, acc_.update_time());
diff --git a/media/base/frame_rate_estimator_unittest.cc b/media/base/frame_rate_estimator_unittest.cc
index 4701c3bd..2ba25e6a 100644
--- a/media/base/frame_rate_estimator_unittest.cc
+++ b/media/base/frame_rate_estimator_unittest.cc
@@ -26,9 +26,7 @@
   int low_fps() const { return std::get<0>(GetParam()); }
   int high_fps() const { return std::get<1>(GetParam()); }
 
-  base::TimeDelta duration(int fps) {
-    return base::TimeDelta::FromSecondsD(1.0 / fps);
-  }
+  base::TimeDelta duration(int fps) { return base::Seconds(1.0 / fps); }
 
   FrameRateEstimator estimator_;
 };
diff --git a/media/base/mac/video_frame_mac_unittests.cc b/media/base/mac/video_frame_mac_unittests.cc
index f0b6de5..1122f44 100644
--- a/media/base/mac/video_frame_mac_unittests.cc
+++ b/media/base/mac/video_frame_mac_unittests.cc
@@ -21,7 +21,7 @@
 const int kWidth = 64;
 const int kHeight = 48;
 const int kVisibleRectOffset = 8;
-const base::TimeDelta kTimestamp = base::TimeDelta::FromMicroseconds(1337);
+const base::TimeDelta kTimestamp = base::Microseconds(1337);
 
 struct FormatPair {
   VideoPixelFormat chrome;
diff --git a/media/base/media_content_type.cc b/media/base/media_content_type.cc
index 3fc666b1..2d3ca0b 100644
--- a/media/base/media_content_type.cc
+++ b/media/base/media_content_type.cc
@@ -14,7 +14,7 @@
   // A zero duration indicates that the duration is unknown. "Persistent" type
   // should be used in this case.
   return (duration.is_zero() ||
-          duration > base::TimeDelta::FromSeconds(kMinimumContentDurationSecs))
+          duration > base::Seconds(kMinimumContentDurationSecs))
              ? MediaContentType::Persistent
              : MediaContentType::Transient;
 }
diff --git a/media/base/moving_average.cc b/media/base/moving_average.cc
index 124e0b5..0779ab6ee 100644
--- a/media/base/moving_average.cc
+++ b/media/base/moving_average.cc
@@ -45,7 +45,7 @@
   }
 
   deviation_secs /= size;
-  return base::TimeDelta::FromSecondsD(std::sqrt(deviation_secs));
+  return base::Seconds(std::sqrt(deviation_secs));
 }
 
 void MovingAverage::Reset() {
diff --git a/media/base/moving_average_unittest.cc b/media/base/moving_average_unittest.cc
index a195985..f3d06d8 100644
--- a/media/base/moving_average_unittest.cc
+++ b/media/base/moving_average_unittest.cc
@@ -11,25 +11,23 @@
 TEST(MovingAverageTest, AverageAndDeviation) {
   const int kSamples = 5;
   MovingAverage moving_average(kSamples);
-  moving_average.AddSample(base::TimeDelta::FromSeconds(1));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(1), moving_average.Average());
+  moving_average.AddSample(base::Seconds(1));
+  EXPECT_EQ(base::Seconds(1), moving_average.Average());
   EXPECT_EQ(base::TimeDelta(), moving_average.Deviation());
 
   for (int i = 0; i < kSamples - 1; ++i)
-    moving_average.AddSample(base::TimeDelta::FromSeconds(1));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(1), moving_average.Average());
+    moving_average.AddSample(base::Seconds(1));
+  EXPECT_EQ(base::Seconds(1), moving_average.Average());
   EXPECT_EQ(base::TimeDelta(), moving_average.Deviation());
 
   base::TimeDelta expect_deviation[] = {
-      base::TimeDelta::FromMicroseconds(200000),
-      base::TimeDelta::FromMicroseconds(244948),
-      base::TimeDelta::FromMicroseconds(244948),
-      base::TimeDelta::FromMicroseconds(200000),
-      base::TimeDelta::FromMilliseconds(0),
+      base::Microseconds(200000), base::Microseconds(244948),
+      base::Microseconds(244948), base::Microseconds(200000),
+      base::Milliseconds(0),
   };
   for (int i = 0; i < kSamples; ++i) {
-    moving_average.AddSample(base::TimeDelta::FromMilliseconds(500));
-    EXPECT_EQ(base::TimeDelta::FromMilliseconds(1000 - (i + 1) * 100),
+    moving_average.AddSample(base::Milliseconds(500));
+    EXPECT_EQ(base::Milliseconds(1000 - (i + 1) * 100),
               moving_average.Average());
     EXPECT_EQ(expect_deviation[i], moving_average.Deviation());
   }
@@ -37,8 +35,8 @@
 
 TEST(MovingAverageTest, Reset) {
   MovingAverage moving_average(2);
-  moving_average.AddSample(base::TimeDelta::FromSeconds(1));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(1), moving_average.Average());
+  moving_average.AddSample(base::Seconds(1));
+  EXPECT_EQ(base::Seconds(1), moving_average.Average());
   moving_average.Reset();
   moving_average.AddSample(base::TimeDelta());
   EXPECT_EQ(base::TimeDelta(), moving_average.Average());
@@ -47,9 +45,9 @@
 
 TEST(MovingAverageTest, MinAndMax) {
   MovingAverage moving_average(5);
-  base::TimeDelta min = base::TimeDelta::FromSeconds(1);
-  base::TimeDelta med = base::TimeDelta::FromSeconds(50);
-  base::TimeDelta max = base::TimeDelta::FromSeconds(100);
+  base::TimeDelta min = base::Seconds(1);
+  base::TimeDelta med = base::Seconds(50);
+  base::TimeDelta max = base::Seconds(100);
   moving_average.AddSample(min);
   moving_average.AddSample(med);
   moving_average.AddSample(med);
diff --git a/media/base/null_video_sink_unittest.cc b/media/base/null_video_sink_unittest.cc
index 5537ad29..9b52924 100644
--- a/media/base/null_video_sink_unittest.cc
+++ b/media/base/null_video_sink_unittest.cc
@@ -30,7 +30,7 @@
  public:
   NullVideoSinkTest() {
     // Never use null TimeTicks since they have special connotations.
-    tick_clock_.Advance(base::TimeDelta::FromMicroseconds(12345));
+    tick_clock_.Advance(base::Microseconds(12345));
   }
 
   NullVideoSinkTest(const NullVideoSinkTest&) = delete;
@@ -74,7 +74,7 @@
 };
 
 TEST_F(NullVideoSinkTest, BasicFunctionality) {
-  const base::TimeDelta kInterval = base::TimeDelta::FromMilliseconds(25);
+  const base::TimeDelta kInterval = base::Milliseconds(25);
 
   std::unique_ptr<NullVideoSink> sink = ConstructSink(false, kInterval);
   scoped_refptr<VideoFrame> test_frame = CreateFrame(base::TimeDelta());
@@ -127,7 +127,7 @@
 
 TEST_F(NullVideoSinkTest, ClocklessFunctionality) {
   // Construct the sink with a huge interval, it should still complete quickly.
-  const base::TimeDelta interval = base::TimeDelta::FromSeconds(10);
+  const base::TimeDelta interval = base::Seconds(10);
   std::unique_ptr<NullVideoSink> sink = ConstructSink(true, interval);
 
   scoped_refptr<VideoFrame> test_frame = CreateFrame(base::TimeDelta());
diff --git a/media/base/pipeline_impl_unittest.cc b/media/base/pipeline_impl_unittest.cc
index 3c9a70d4..c5fc84f 100644
--- a/media/base/pipeline_impl_unittest.cc
+++ b/media/base/pipeline_impl_unittest.cc
@@ -161,7 +161,7 @@
 
   void SetDemuxerExpectations() {
     // Initialize with a default non-zero duration.
-    SetDemuxerExpectations(base::TimeDelta::FromSeconds(10));
+    SetDemuxerExpectations(base::Seconds(10));
   }
 
   std::unique_ptr<StrictMock<MockDemuxerStream>> CreateStream(
@@ -438,7 +438,7 @@
 
 TEST_F(PipelineImplTest, StartSuspendedAndResumeAudioOnly) {
   CreateAudioStream();
-  SetDemuxerExpectations(base::TimeDelta::FromSeconds(3000));
+  SetDemuxerExpectations(base::Seconds(3000));
 
   StartPipelineAndExpect(PIPELINE_OK,
                          Pipeline::StartType::kSuspendAfterMetadataForAudioOnly,
@@ -446,14 +446,14 @@
   ASSERT_TRUE(pipeline_->IsSuspended());
 
   ResetRenderer();
-  base::TimeDelta expected = base::TimeDelta::FromSeconds(2000);
+  base::TimeDelta expected = base::Seconds(2000);
   ExpectResume(expected);
   DoResume(expected);
 }
 
 TEST_F(PipelineImplTest, StartSuspendedAndResumeAudioVideo) {
   CreateAudioAndVideoStream();
-  SetDemuxerExpectations(base::TimeDelta::FromSeconds(3000));
+  SetDemuxerExpectations(base::Seconds(3000));
 
   StartPipelineAndExpect(PIPELINE_OK,
                          Pipeline::StartType::kSuspendAfterMetadata,
@@ -461,14 +461,14 @@
   ASSERT_TRUE(pipeline_->IsSuspended());
 
   ResetRenderer();
-  base::TimeDelta expected = base::TimeDelta::FromSeconds(2000);
+  base::TimeDelta expected = base::Seconds(2000);
   ExpectResume(expected);
   DoResume(expected);
 }
 
 TEST_F(PipelineImplTest, StartSuspendedFailsOnVideoWithAudioOnlyExpectation) {
   CreateAudioAndVideoStream();
-  SetDemuxerExpectations(base::TimeDelta::FromSeconds(3000));
+  SetDemuxerExpectations(base::Seconds(3000));
 
   // StartType kSuspendAfterMetadataForAudioOnly only applies to AudioOnly.
   // Since this playback has video, renderer will be initialized and the
@@ -559,20 +559,20 @@
 
 TEST_F(PipelineImplTest, Seek) {
   CreateAudioAndVideoStream();
-  SetDemuxerExpectations(base::TimeDelta::FromSeconds(3000));
+  SetDemuxerExpectations(base::Seconds(3000));
 
   // Initialize then seek!
   StartPipelineAndExpect(PIPELINE_OK);
 
   // Every filter should receive a call to Seek().
-  base::TimeDelta expected = base::TimeDelta::FromSeconds(2000);
+  base::TimeDelta expected = base::Seconds(2000);
   ExpectSeek(expected, false);
   DoSeek(expected);
 }
 
 TEST_F(PipelineImplTest, SeekAfterError) {
   CreateAudioStream();
-  SetDemuxerExpectations(base::TimeDelta::FromSeconds(3000));
+  SetDemuxerExpectations(base::Seconds(3000));
 
   // Initialize then seek!
   StartPipelineAndExpect(PIPELINE_OK);
@@ -585,14 +585,14 @@
 
   EXPECT_CALL(callbacks_, OnSeek(PIPELINE_ERROR_INVALID_STATE));
   pipeline_->Seek(
-      base::TimeDelta::FromMilliseconds(100),
+      base::Milliseconds(100),
       base::BindOnce(&CallbackHelper::OnSeek, base::Unretained(&callbacks_)));
   base::RunLoop().RunUntilIdle();
 }
 
 TEST_F(PipelineImplTest, SuspendResume) {
   CreateAudioAndVideoStream();
-  SetDemuxerExpectations(base::TimeDelta::FromSeconds(3000));
+  SetDemuxerExpectations(base::Seconds(3000));
 
   StartPipelineAndExpect(PIPELINE_OK);
 
@@ -618,7 +618,7 @@
   EXPECT_EQ(0, pipeline_->GetStatistics().audio_memory_usage);
   EXPECT_EQ(0, pipeline_->GetStatistics().video_memory_usage);
 
-  base::TimeDelta expected = base::TimeDelta::FromSeconds(2000);
+  base::TimeDelta expected = base::Seconds(2000);
   ExpectResume(expected);
   EXPECT_CALL(*renderer_, SetPreservesPitch(false)).Times(1);
 
@@ -680,7 +680,7 @@
 
 TEST_F(PipelineImplTest, Properties) {
   CreateVideoStream();
-  const auto kDuration = base::TimeDelta::FromSeconds(100);
+  const auto kDuration = base::Seconds(100);
   SetDemuxerExpectations(kDuration);
 
   StartPipelineAndExpect(PIPELINE_OK);
@@ -691,7 +691,7 @@
 
 TEST_F(PipelineImplTest, GetBufferedTimeRanges) {
   CreateVideoStream();
-  const auto kDuration = base::TimeDelta::FromSeconds(100);
+  const auto kDuration = base::Seconds(100);
   SetDemuxerExpectations(kDuration);
 
   StartPipelineAndExpect(PIPELINE_OK);
@@ -715,7 +715,7 @@
   base::RunLoop().RunUntilIdle();
 
   pipeline_->Stop();
-  RunBufferedTimeRangesTest(base::TimeDelta::FromSeconds(5));
+  RunBufferedTimeRangesTest(base::Seconds(5));
 }
 
 TEST_F(PipelineImplTest, OnStatisticsUpdate) {
@@ -780,7 +780,7 @@
   pipeline_->SetPlaybackRate(playback_rate);
   base::RunLoop().RunUntilIdle();
 
-  base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5);
+  base::TimeDelta seek_time = base::Seconds(5);
 
   EXPECT_CALL(*renderer_, OnFlush(_)).WillOnce(RunOnceClosure<0>());
 
@@ -801,7 +801,7 @@
   SetDemuxerExpectations();
   StartPipelineAndExpect(PIPELINE_OK);
 
-  base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5);
+  base::TimeDelta seek_time = base::Seconds(5);
 
   // Set expectations for seek.
   EXPECT_CALL(*renderer_, OnFlush(_)).WillOnce(RunOnceClosure<0>());
@@ -821,7 +821,7 @@
 
 TEST_F(PipelineImplTest, PipelineErrorDuringSuspend) {
   CreateAudioAndVideoStream();
-  SetDemuxerExpectations(base::TimeDelta::FromSeconds(3000));
+  SetDemuxerExpectations(base::Seconds(3000));
   StartPipelineAndExpect(PIPELINE_OK);
 
   // Set expectations for suspend.
@@ -862,13 +862,13 @@
   base::RunLoop().RunUntilIdle();
 
   // Seek while underflowed.
-  base::TimeDelta expected = base::TimeDelta::FromSeconds(5);
+  base::TimeDelta expected = base::Seconds(5);
   ExpectSeek(expected, true);
   DoSeek(expected);
 }
 
 TEST_F(PipelineImplTest, PositiveStartTime) {
-  start_time_ = base::TimeDelta::FromSeconds(1);
+  start_time_ = base::Seconds(1);
   EXPECT_CALL(*demuxer_, GetStartTime()).WillRepeatedly(Return(start_time_));
   CreateAudioStream();
   SetDemuxerExpectations();
@@ -884,14 +884,14 @@
   StartPipelineAndExpect(PIPELINE_OK);
 
   // Pipeline should report the same media time returned by the renderer.
-  base::TimeDelta kMediaTime = base::TimeDelta::FromSeconds(2);
+  base::TimeDelta kMediaTime = base::Seconds(2);
   EXPECT_CALL(*renderer_, GetMediaTime()).WillRepeatedly(Return(kMediaTime));
   EXPECT_EQ(kMediaTime, pipeline_->GetMediaTime());
 
   // Media time should not go backwards even if the renderer returns an
   // errorneous value. PipelineImpl should clamp it to last reported value.
   EXPECT_CALL(*renderer_, GetMediaTime())
-      .WillRepeatedly(Return(base::TimeDelta::FromSeconds(1)));
+      .WillRepeatedly(Return(base::Seconds(1)));
   EXPECT_EQ(kMediaTime, pipeline_->GetMediaTime());
 }
 
@@ -905,13 +905,13 @@
   StartPipelineAndExpect(PIPELINE_OK);
 
   // Pipeline should report the same media time returned by the renderer.
-  base::TimeDelta kMediaTime = base::TimeDelta::FromSeconds(2);
+  base::TimeDelta kMediaTime = base::Seconds(2);
   EXPECT_CALL(*renderer_, GetMediaTime()).WillRepeatedly(Return(kMediaTime));
   EXPECT_EQ(kMediaTime, pipeline_->GetMediaTime());
 
   // Seek backward 1 second. Do not run RunLoop to ensure renderer is not yet
   // notified of the seek (via media thread).
-  base::TimeDelta kSeekTime = kMediaTime - base::TimeDelta::FromSeconds(1);
+  base::TimeDelta kSeekTime = kMediaTime - base::Seconds(1);
   ExpectSeek(kSeekTime, false);
   pipeline_->Seek(kSeekTime, base::BindOnce(&CallbackHelper::OnSeek,
                                             base::Unretained(&callbacks_)));
@@ -1046,7 +1046,7 @@
 
     CreateAudioStream();
     CreateVideoStream();
-    SetDemuxerExpectations(base::TimeDelta::FromSeconds(3000));
+    SetDemuxerExpectations(base::Seconds(3000));
     EXPECT_CALL(*renderer_, SetVolume(1.0f));
 
     if (state == kInitRenderer) {
@@ -1091,7 +1091,7 @@
     EXPECT_CALL(*demuxer_, Stop());
 
     pipeline_->Seek(
-        base::TimeDelta::FromSeconds(10),
+        base::Seconds(10),
         base::BindOnce(&CallbackHelper::OnSeek, base::Unretained(&callbacks_)));
     base::RunLoop().RunUntilIdle();
   }
diff --git a/media/base/seekable_buffer.cc b/media/base/seekable_buffer.cc
index 9e8faf6..a3766bcc 100644
--- a/media/base/seekable_buffer.cc
+++ b/media/base/seekable_buffer.cc
@@ -269,8 +269,7 @@
     int64_t time_offset = ((*buffer)->duration().InMicroseconds() * offset) /
                           (*buffer)->data_size();
 
-    current_time_ = (*buffer)->timestamp() +
-                    base::TimeDelta::FromMicroseconds(time_offset);
+    current_time_ = (*buffer)->timestamp() + base::Microseconds(time_offset);
   }
 }
 
diff --git a/media/base/seekable_buffer_unittest.cc b/media/base/seekable_buffer_unittest.cc
index 3746874..d1df6a3 100644
--- a/media/base/seekable_buffer_unittest.cc
+++ b/media/base/seekable_buffer_unittest.cc
@@ -338,10 +338,8 @@
   scoped_refptr<DataBuffer> buffer = DataBuffer::CopyFrom(data_, kWriteSize);
 
   for (size_t i = 0; i < base::size(tests); ++i) {
-    buffer->set_timestamp(base::TimeDelta::FromMicroseconds(
-        tests[i].first_time_useconds));
-    buffer->set_duration(base::TimeDelta::FromMicroseconds(
-        tests[i].duration_useconds));
+    buffer->set_timestamp(base::Microseconds(tests[i].first_time_useconds));
+    buffer->set_duration(base::Microseconds(tests[i].duration_useconds));
     buffer_.Append(buffer.get());
     EXPECT_TRUE(buffer_.Seek(tests[i].consume_bytes));
 
diff --git a/media/base/silent_sink_suspender_unittest.cc b/media/base/silent_sink_suspender_unittest.cc
index 11378fc..e9a69e3b 100644
--- a/media/base/silent_sink_suspender_unittest.cc
+++ b/media/base/silent_sink_suspender_unittest.cc
@@ -19,16 +19,13 @@
 class SilentSinkSuspenderTest : public testing::Test {
  public:
   SilentSinkSuspenderTest()
-      : params_(AudioParameters::AUDIO_FAKE,
-                CHANNEL_LAYOUT_MONO,
-                44100,
-                128),
+      : params_(AudioParameters::AUDIO_FAKE, CHANNEL_LAYOUT_MONO, 44100, 128),
         mock_sink_(new testing::StrictMock<MockAudioRendererSink>()),
         fake_callback_(0.1, params_.sample_rate()),
         temp_bus_(AudioBus::Create(params_)),
         // Set a negative timeout so any silence will suspend immediately.
         suspender_(&fake_callback_,
-                   base::TimeDelta::FromSeconds(-1),
+                   base::Seconds(-1),
                    params_,
                    mock_sink_,
                    test_loop_.task_runner()) {}
@@ -49,7 +46,7 @@
 
 TEST_F(SilentSinkSuspenderTest, BasicPassthough) {
   temp_bus_->Zero();
-  auto delay = base::TimeDelta::FromMilliseconds(20);
+  auto delay = base::Milliseconds(20);
   EXPECT_EQ(temp_bus_->frames(),
             suspender_.Render(delay, base::TimeTicks(), 0, temp_bus_.get()));
 
diff --git a/media/base/simple_watch_timer.cc b/media/base/simple_watch_timer.cc
index 83668df..16869b3 100644
--- a/media/base/simple_watch_timer.cc
+++ b/media/base/simple_watch_timer.cc
@@ -11,8 +11,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kQueryInterval =
-    base::TimeDelta::FromMilliseconds(750);
+constexpr base::TimeDelta kQueryInterval = base::Milliseconds(750);
 
 }  // namespace
 
diff --git a/media/base/stream_parser_buffer.h b/media/base/stream_parser_buffer.h
index 55b2fbe..0999d8e 100644
--- a/media/base/stream_parser_buffer.h
+++ b/media/base/stream_parser_buffer.h
@@ -66,15 +66,15 @@
   int64_t IntDiv(base::TimeDelta rhs) const { return ts_.IntDiv(rhs); }
 
   static DecodeTimestamp FromSecondsD(double seconds) {
-    return DecodeTimestamp(base::TimeDelta::FromSecondsD(seconds));
+    return DecodeTimestamp(base::Seconds(seconds));
   }
 
   static DecodeTimestamp FromMilliseconds(int64_t milliseconds) {
-    return DecodeTimestamp(base::TimeDelta::FromMilliseconds(milliseconds));
+    return DecodeTimestamp(base::Milliseconds(milliseconds));
   }
 
   static DecodeTimestamp FromMicroseconds(int64_t microseconds) {
-    return DecodeTimestamp(base::TimeDelta::FromMicroseconds(microseconds));
+    return DecodeTimestamp(base::Microseconds(microseconds));
   }
 
   // This method is used to explicitly call out when presentation timestamps
diff --git a/media/base/text_ranges_unittest.cc b/media/base/text_ranges_unittest.cc
index 69cf2e3..979ec2d 100644
--- a/media/base/text_ranges_unittest.cc
+++ b/media/base/text_ranges_unittest.cc
@@ -13,9 +13,7 @@
 
 class TextRangesTest : public ::testing::Test {
  protected:
-  bool AddCue(int seconds) {
-    return ranges_.AddCue(base::TimeDelta::FromSeconds(seconds));
-  }
+  bool AddCue(int seconds) { return ranges_.AddCue(base::Seconds(seconds)); }
 
   void Reset() {
     ranges_.Reset();
diff --git a/media/base/text_renderer_unittest.cc b/media/base/text_renderer_unittest.cc
index a9448913..2e25c2a 100644
--- a/media/base/text_renderer_unittest.cc
+++ b/media/base/text_renderer_unittest.cc
@@ -146,7 +146,7 @@
     FakeTextTrackStream* const text_stream = text_track_streams_[idx].get();
 
     const base::TimeDelta start;
-    const base::TimeDelta duration = base::TimeDelta::FromSeconds(42);
+    const base::TimeDelta duration = base::Seconds(42);
     const std::string id = "id";
     const std::string content = "subtitle";
     const std::string settings;
diff --git a/media/base/time_delta_interpolator.cc b/media/base/time_delta_interpolator.cc
index 33e06a6..a6eb4bf 100644
--- a/media/base/time_delta_interpolator.cc
+++ b/media/base/time_delta_interpolator.cc
@@ -69,8 +69,7 @@
 
   int64_t now_us = (tick_clock_->NowTicks() - reference_).InMicroseconds();
   now_us = static_cast<int64_t>(now_us * playback_rate_);
-  base::TimeDelta interpolated_time =
-      lower_bound_ + base::TimeDelta::FromMicroseconds(now_us);
+  base::TimeDelta interpolated_time = lower_bound_ + base::Microseconds(now_us);
 
   if (upper_bound_ == kNoTimestamp)
     return interpolated_time;
diff --git a/media/base/time_delta_interpolator_unittest.cc b/media/base/time_delta_interpolator_unittest.cc
index 540768e..ed8b35c 100644
--- a/media/base/time_delta_interpolator_unittest.cc
+++ b/media/base/time_delta_interpolator_unittest.cc
@@ -24,13 +24,13 @@
 };
 
 TEST_F(TimeDeltaInterpolatorTest, Created) {
-  const base::TimeDelta kExpected = base::TimeDelta::FromSeconds(0);
+  const base::TimeDelta kExpected = base::Seconds(0);
   EXPECT_EQ(kExpected, interpolator_.GetInterpolatedTime());
 }
 
 TEST_F(TimeDeltaInterpolatorTest, StartInterpolating_NormalSpeed) {
   const base::TimeDelta kZero;
-  const base::TimeDelta kTimeToAdvance = base::TimeDelta::FromSeconds(2);
+  const base::TimeDelta kTimeToAdvance = base::Seconds(2);
 
   EXPECT_EQ(kZero, interpolator_.StartInterpolating());
   AdvanceSystemTime(kTimeToAdvance);
@@ -39,7 +39,7 @@
 
 TEST_F(TimeDeltaInterpolatorTest, StartInterpolating_DoubleSpeed) {
   const base::TimeDelta kZero;
-  const base::TimeDelta kTimeToAdvance = base::TimeDelta::FromSeconds(5);
+  const base::TimeDelta kTimeToAdvance = base::Seconds(5);
 
   interpolator_.SetPlaybackRate(2.0);
   EXPECT_EQ(kZero, interpolator_.StartInterpolating());
@@ -49,7 +49,7 @@
 
 TEST_F(TimeDeltaInterpolatorTest, StartInterpolating_HalfSpeed) {
   const base::TimeDelta kZero;
-  const base::TimeDelta kTimeToAdvance = base::TimeDelta::FromSeconds(4);
+  const base::TimeDelta kTimeToAdvance = base::Seconds(4);
 
   interpolator_.SetPlaybackRate(0.5);
   EXPECT_EQ(kZero, interpolator_.StartInterpolating());
@@ -61,9 +61,9 @@
   // We'll play for 2 seconds at normal speed, 4 seconds at zero speed, and 8
   // seconds at normal speed.
   const base::TimeDelta kZero;
-  const base::TimeDelta kPlayDuration1 = base::TimeDelta::FromSeconds(2);
-  const base::TimeDelta kPlayDuration2 = base::TimeDelta::FromSeconds(4);
-  const base::TimeDelta kPlayDuration3 = base::TimeDelta::FromSeconds(8);
+  const base::TimeDelta kPlayDuration1 = base::Seconds(2);
+  const base::TimeDelta kPlayDuration2 = base::Seconds(4);
+  const base::TimeDelta kPlayDuration3 = base::Seconds(8);
   const base::TimeDelta kExpected = kPlayDuration1 + kPlayDuration3;
 
   EXPECT_EQ(kZero, interpolator_.StartInterpolating());
@@ -81,9 +81,9 @@
   // We'll play for 2 seconds at half speed, 4 seconds at normal speed, and 8
   // seconds at double speed.
   const base::TimeDelta kZero;
-  const base::TimeDelta kPlayDuration1 = base::TimeDelta::FromSeconds(2);
-  const base::TimeDelta kPlayDuration2 = base::TimeDelta::FromSeconds(4);
-  const base::TimeDelta kPlayDuration3 = base::TimeDelta::FromSeconds(8);
+  const base::TimeDelta kPlayDuration1 = base::Seconds(2);
+  const base::TimeDelta kPlayDuration2 = base::Seconds(4);
+  const base::TimeDelta kPlayDuration3 = base::Seconds(8);
   const base::TimeDelta kExpected =
       kPlayDuration1 / 2 + kPlayDuration2 + 2 * kPlayDuration3;
 
@@ -101,8 +101,8 @@
 
 TEST_F(TimeDeltaInterpolatorTest, StopInterpolating) {
   const base::TimeDelta kZero;
-  const base::TimeDelta kPlayDuration = base::TimeDelta::FromSeconds(4);
-  const base::TimeDelta kPauseDuration = base::TimeDelta::FromSeconds(20);
+  const base::TimeDelta kPlayDuration = base::Seconds(4);
+  const base::TimeDelta kPauseDuration = base::Seconds(20);
   const base::TimeDelta kExpectedFirstPause = kPlayDuration;
   const base::TimeDelta kExpectedSecondPause = 2 * kPlayDuration;
 
@@ -124,9 +124,9 @@
 }
 
 TEST_F(TimeDeltaInterpolatorTest, SetBounds_Stopped) {
-  const base::TimeDelta kFirstTime = base::TimeDelta::FromSeconds(4);
-  const base::TimeDelta kSecondTime = base::TimeDelta::FromSeconds(16);
-  const base::TimeDelta kArbitraryMaxTime = base::TimeDelta::FromSeconds(100);
+  const base::TimeDelta kFirstTime = base::Seconds(4);
+  const base::TimeDelta kSecondTime = base::Seconds(16);
+  const base::TimeDelta kArbitraryMaxTime = base::Seconds(100);
 
   interpolator_.SetBounds(kFirstTime, kArbitraryMaxTime,
                           test_tick_clock_.NowTicks());
@@ -140,9 +140,9 @@
   // We'll play for 4 seconds, then set the time to 12, then play for 4 more
   // seconds.
   const base::TimeDelta kZero;
-  const base::TimeDelta kPlayDuration = base::TimeDelta::FromSeconds(4);
-  const base::TimeDelta kUpdatedTime = base::TimeDelta::FromSeconds(12);
-  const base::TimeDelta kArbitraryMaxTime = base::TimeDelta::FromSeconds(100);
+  const base::TimeDelta kPlayDuration = base::Seconds(4);
+  const base::TimeDelta kUpdatedTime = base::Seconds(12);
+  const base::TimeDelta kArbitraryMaxTime = base::Seconds(100);
   const base::TimeDelta kExpected = kUpdatedTime + kPlayDuration;
 
   EXPECT_EQ(kZero, interpolator_.StartInterpolating());
@@ -156,8 +156,8 @@
 
 TEST_F(TimeDeltaInterpolatorTest, SetUpperBound) {
   const base::TimeDelta kZero;
-  const base::TimeDelta kTimeInterval = base::TimeDelta::FromSeconds(4);
-  const base::TimeDelta kMaxTime = base::TimeDelta::FromSeconds(6);
+  const base::TimeDelta kTimeInterval = base::Seconds(4);
+  const base::TimeDelta kMaxTime = base::Seconds(6);
 
   EXPECT_EQ(kZero, interpolator_.StartInterpolating());
   interpolator_.SetUpperBound(kMaxTime);
@@ -173,10 +173,10 @@
 
 TEST_F(TimeDeltaInterpolatorTest, SetUpperBound_MultipleTimes) {
   const base::TimeDelta kZero;
-  const base::TimeDelta kTimeInterval = base::TimeDelta::FromSeconds(4);
-  const base::TimeDelta kMaxTime0 = base::TimeDelta::FromSeconds(120);
-  const base::TimeDelta kMaxTime1 = base::TimeDelta::FromSeconds(6);
-  const base::TimeDelta kMaxTime2 = base::TimeDelta::FromSeconds(12);
+  const base::TimeDelta kTimeInterval = base::Seconds(4);
+  const base::TimeDelta kMaxTime0 = base::Seconds(120);
+  const base::TimeDelta kMaxTime1 = base::Seconds(6);
+  const base::TimeDelta kMaxTime2 = base::Seconds(12);
 
   EXPECT_EQ(kZero, interpolator_.StartInterpolating());
   interpolator_.SetUpperBound(kMaxTime0);
diff --git a/media/base/tuneable.cc b/media/base/tuneable.cc
index d82e68e..0b71e94d 100644
--- a/media/base/tuneable.cc
+++ b/media/base/tuneable.cc
@@ -43,9 +43,9 @@
                                           base::TimeDelta minimum_value,
                                           base::TimeDelta default_value,
                                           base::TimeDelta maximum_value) {
-  return base::TimeDelta::FromMilliseconds(GetParam<int>(
-      name, minimum_value.InMilliseconds(), default_value.InMilliseconds(),
-      maximum_value.InMilliseconds()));
+  return base::Milliseconds(GetParam<int>(name, minimum_value.InMilliseconds(),
+                                          default_value.InMilliseconds(),
+                                          maximum_value.InMilliseconds()));
 }
 
 }  // namespace
diff --git a/media/base/tuneable_unittest.cc b/media/base/tuneable_unittest.cc
index 1ea34fa..813c904 100644
--- a/media/base/tuneable_unittest.cc
+++ b/media/base/tuneable_unittest.cc
@@ -105,9 +105,9 @@
 TEST_F(TuneableTest, OtherSpecializationsCompile) {
   // Since it's all templated, just be happy if it compiles and does something
   // somewhat sane.
-  constexpr base::TimeDelta min_value = base::TimeDelta::FromSeconds(0);
-  constexpr base::TimeDelta default_value = base::TimeDelta::FromSeconds(5);
-  constexpr base::TimeDelta max_value = base::TimeDelta::FromSeconds(10);
+  constexpr base::TimeDelta min_value = base::Seconds(0);
+  constexpr base::TimeDelta default_value = base::Seconds(5);
+  constexpr base::TimeDelta max_value = base::Seconds(10);
   Tuneable<base::TimeDelta> time_delta_tuneable("whatever", min_value,
                                                 default_value, max_value);
   // Since the tuneable is not provided in the finch parameters, it should
@@ -122,11 +122,11 @@
   // Since the finch params are constructed with the assumption that the value
   // will be interpreted as milliseconds, make sure that the Tuneable actually
   // does interpret it that way.
-  constexpr base::TimeDelta min_value = base::TimeDelta::FromSeconds(0);
-  constexpr base::TimeDelta max_value = base::TimeDelta::FromSeconds(100);
+  constexpr base::TimeDelta min_value = base::Seconds(0);
+  constexpr base::TimeDelta max_value = base::Seconds(100);
   Tuneable<base::TimeDelta> t(kTuneableTimeDeltaFiveSeconds, min_value,
                               min_value, max_value);
-  EXPECT_EQ(t.value(), base::TimeDelta::FromSeconds(5));
+  EXPECT_EQ(t.value(), base::Seconds(5));
 }
 
 }  // namespace media
diff --git a/media/base/user_input_monitor_mac.cc b/media/base/user_input_monitor_mac.cc
index 00b5279..92d3c01 100644
--- a/media/base/user_input_monitor_mac.cc
+++ b/media/base/user_input_monitor_mac.cc
@@ -18,7 +18,7 @@
 // Update key press count in shared memory twice as frequent as
 // AudioInputController::AudioCallback::OnData() callback for WebRTC.
 constexpr base::TimeDelta kUpdateKeyPressCountIntervalMs =
-    base::TimeDelta::FromMilliseconds(5);
+    base::Milliseconds(5);
 
 class UserInputMonitorMac : public UserInputMonitorBase {
  public:
diff --git a/media/base/video_frame_pool.cc b/media/base/video_frame_pool.cc
index b5db2c3f..52d82da5 100644
--- a/media/base/video_frame_pool.cc
+++ b/media/base/video_frame_pool.cc
@@ -132,7 +132,7 @@
   // After this loop, |stale_index| is the index of the oldest non-stale frame.
   // Such an index must exist because |frame| is never stale.
   int stale_index = -1;
-  constexpr base::TimeDelta kStaleFrameLimit = base::TimeDelta::FromSeconds(10);
+  constexpr base::TimeDelta kStaleFrameLimit = base::Seconds(10);
   while (now - frames_[++stale_index].last_use_time > kStaleFrameLimit) {
     // Last frame should never be included since we just added it.
     DCHECK_LE(static_cast<size_t>(stale_index), frames_.size());
diff --git a/media/base/video_frame_pool_unittest.cc b/media/base/video_frame_pool_unittest.cc
index 019111d..a52ba7e 100644
--- a/media/base/video_frame_pool_unittest.cc
+++ b/media/base/video_frame_pool_unittest.cc
@@ -20,7 +20,7 @@
   VideoFramePoolTest() : pool_(new VideoFramePool()) {
     // Seed test clock with some dummy non-zero value to avoid confusion with
     // empty base::TimeTicks values.
-    test_clock_.Advance(base::TimeDelta::FromSeconds(1234));
+    test_clock_.Advance(base::Seconds(1234));
     pool_->SetTickClockForTesting(&test_clock_);
   }
 
@@ -31,12 +31,10 @@
     gfx::Size natural_size(coded_size);
 
     scoped_refptr<VideoFrame> frame =
-        pool_->CreateFrame(
-            format, coded_size, visible_rect, natural_size,
-            base::TimeDelta::FromMilliseconds(timestamp_ms));
+        pool_->CreateFrame(format, coded_size, visible_rect, natural_size,
+                           base::Milliseconds(timestamp_ms));
     EXPECT_EQ(format, frame->format());
-    EXPECT_EQ(base::TimeDelta::FromMilliseconds(timestamp_ms),
-              frame->timestamp());
+    EXPECT_EQ(base::Milliseconds(timestamp_ms), frame->timestamp());
     if (format == PIXEL_FORMAT_ARGB) {
       EXPECT_EQ(coded_size, frame->coded_size());
     } else {
@@ -140,7 +138,7 @@
 
   // Advance clock far enough to hit stale timer; ensure only frame_1 has its
   // resources released.
-  test_clock_.Advance(base::TimeDelta::FromMinutes(1));
+  test_clock_.Advance(base::Minutes(1));
   frame_2 = nullptr;
   CheckPoolSize(1u);
 }
diff --git a/media/base/video_frame_unittest.cc b/media/base/video_frame_unittest.cc
index e1445be..7d9fac9 100644
--- a/media/base/video_frame_unittest.cc
+++ b/media/base/video_frame_unittest.cc
@@ -90,17 +90,17 @@
 
   // base::TimeTicks
   base::TimeTicks now = base::TimeTicks::Now();
-  metadata.receive_time = now + base::TimeDelta::FromMilliseconds(10);
-  metadata.capture_begin_time = now + base::TimeDelta::FromMilliseconds(20);
-  metadata.capture_end_time = now + base::TimeDelta::FromMilliseconds(30);
-  metadata.decode_begin_time = now + base::TimeDelta::FromMilliseconds(40);
-  metadata.decode_end_time = now + base::TimeDelta::FromMilliseconds(50);
-  metadata.reference_time = now + base::TimeDelta::FromMilliseconds(60);
+  metadata.receive_time = now + base::Milliseconds(10);
+  metadata.capture_begin_time = now + base::Milliseconds(20);
+  metadata.capture_end_time = now + base::Milliseconds(30);
+  metadata.decode_begin_time = now + base::Milliseconds(40);
+  metadata.decode_end_time = now + base::Milliseconds(50);
+  metadata.reference_time = now + base::Milliseconds(60);
 
   // base::TimeDeltas
-  metadata.processing_time = base::TimeDelta::FromMilliseconds(500);
-  metadata.frame_duration = base::TimeDelta::FromMilliseconds(16);
-  metadata.wallclock_frame_duration = base::TimeDelta::FromMilliseconds(17);
+  metadata.processing_time = base::Milliseconds(500);
+  metadata.frame_duration = base::Milliseconds(16);
+  metadata.wallclock_frame_duration = base::Milliseconds(17);
 
   return metadata;
 }
@@ -215,7 +215,7 @@
   const unsigned char kFillByte = 0x80;
   const int kWidth = 61;
   const int kHeight = 31;
-  const base::TimeDelta kTimestamp = base::TimeDelta::FromMicroseconds(1337);
+  const base::TimeDelta kTimestamp = base::Microseconds(1337);
 
   gfx::Size size(kWidth, kHeight);
   scoped_refptr<VideoFrame> frame = VideoFrame::CreateFrame(
@@ -246,7 +246,7 @@
 TEST(VideoFrame, CreateFrame) {
   const int kWidth = 64;
   const int kHeight = 48;
-  const base::TimeDelta kTimestamp = base::TimeDelta::FromMicroseconds(1337);
+  const base::TimeDelta kTimestamp = base::Microseconds(1337);
 
   // Create a YV12 Video Frame.
   gfx::Size size(kWidth, kHeight);
@@ -301,7 +301,7 @@
 TEST(VideoFrame, CreateZeroInitializedFrame) {
   const int kWidth = 2;
   const int kHeight = 2;
-  const base::TimeDelta kTimestamp = base::TimeDelta::FromMicroseconds(1337);
+  const base::TimeDelta kTimestamp = base::Microseconds(1337);
 
   // Create a YV12 Video Frame.
   gfx::Size size(kWidth, kHeight);
@@ -361,7 +361,7 @@
 TEST(VideoFrame, WrapVideoFrame) {
   const int kWidth = 4;
   const int kHeight = 4;
-  const base::TimeDelta kFrameDuration = base::TimeDelta::FromMicroseconds(42);
+  const base::TimeDelta kFrameDuration = base::Microseconds(42);
 
   scoped_refptr<VideoFrame> frame, frame2;
   bool base_frame_done_callback_was_run = false;
@@ -429,7 +429,7 @@
   gfx::Size coded_size(256, 256);
   gfx::Rect visible_rect(coded_size);
   CreateTestY16Frame(coded_size, visible_rect, memory);
-  auto timestamp = base::TimeDelta::FromMilliseconds(1);
+  auto timestamp = base::Milliseconds(1);
   auto frame = VideoFrame::WrapExternalData(PIXEL_FORMAT_Y16, coded_size,
                                             visible_rect, visible_rect.size(),
                                             memory, sizeof(memory), timestamp);
@@ -451,7 +451,7 @@
   gfx::Size coded_size(256, 256);
   gfx::Rect visible_rect(coded_size);
   CreateTestY16Frame(coded_size, visible_rect, mapping.memory());
-  auto timestamp = base::TimeDelta::FromMilliseconds(1);
+  auto timestamp = base::Milliseconds(1);
   auto frame = VideoFrame::WrapExternalData(
       PIXEL_FORMAT_Y16, coded_size, visible_rect, visible_rect.size(),
       mapping.GetMemoryAsSpan<uint8_t>().data(), kDataSize, timestamp);
@@ -466,7 +466,7 @@
 TEST(VideoFrame, WrapExternalGpuMemoryBuffer) {
   gfx::Size coded_size = gfx::Size(256, 256);
   gfx::Rect visible_rect(coded_size);
-  auto timestamp = base::TimeDelta::FromMilliseconds(1);
+  auto timestamp = base::Milliseconds(1);
 #if defined(OS_LINUX) || defined(OS_CHROMEOS)
   const uint64_t modifier = 0x001234567890abcdULL;
 #else
@@ -517,7 +517,7 @@
     planes[i].offset = offsets[i];
     planes[i].size = sizes[i];
   }
-  auto timestamp = base::TimeDelta::FromMilliseconds(1);
+  auto timestamp = base::Milliseconds(1);
   auto layout =
       VideoFrameLayout::CreateWithPlanes(PIXEL_FORMAT_I420, coded_size, planes);
   ASSERT_TRUE(layout);
@@ -781,9 +781,8 @@
   VideoFrameMetadata full_metadata = GetFullVideoFrameMetadata();
 
   const gfx::Rect kTempRect{100, 200, 300, 400};
-  const base::TimeTicks kTempTicks =
-      base::TimeTicks::Now() + base::TimeDelta::FromSeconds(2);
-  const base::TimeDelta kTempDelta = base::TimeDelta::FromMilliseconds(31415);
+  const base::TimeTicks kTempTicks = base::TimeTicks::Now() + base::Seconds(2);
+  const base::TimeDelta kTempDelta = base::Milliseconds(31415);
 
   VideoFrameMetadata partial_metadata;
   partial_metadata.capture_update_rect = kTempRect;
diff --git a/media/base/video_util_unittest.cc b/media/base/video_util_unittest.cc
index 6e3972ed..e82e3ca 100644
--- a/media/base/video_util_unittest.cc
+++ b/media/base/video_util_unittest.cc
@@ -563,9 +563,8 @@
 
 TEST_F(VideoUtilTest, WrapAsI420VideoFrame) {
   gfx::Size size(640, 480);
-  scoped_refptr<VideoFrame> src_frame =
-      VideoFrame::CreateFrame(PIXEL_FORMAT_I420A, size, gfx::Rect(size), size,
-                              base::TimeDelta::FromDays(1));
+  scoped_refptr<VideoFrame> src_frame = VideoFrame::CreateFrame(
+      PIXEL_FORMAT_I420A, size, gfx::Rect(size), size, base::Days(1));
 
   scoped_refptr<VideoFrame> dst_frame = WrapAsI420VideoFrame(src_frame);
   EXPECT_EQ(dst_frame->format(), PIXEL_FORMAT_I420);
diff --git a/media/base/wall_clock_time_source.cc b/media/base/wall_clock_time_source.cc
index 9ddf51eb..cdfcc68 100644
--- a/media/base/wall_clock_time_source.cc
+++ b/media/base/wall_clock_time_source.cc
@@ -94,8 +94,8 @@
 
   base::TimeTicks now = tick_clock_->NowTicks();
   return base_timestamp_ +
-         base::TimeDelta::FromMicroseconds(
-             (now - reference_time_).InMicroseconds() * playback_rate_);
+         base::Microseconds((now - reference_time_).InMicroseconds() *
+                            playback_rate_);
 }
 
 }  // namespace media
diff --git a/media/base/wall_clock_time_source_unittest.cc b/media/base/wall_clock_time_source_unittest.cc
index 05cc9ea..b643a6a 100644
--- a/media/base/wall_clock_time_source_unittest.cc
+++ b/media/base/wall_clock_time_source_unittest.cc
@@ -24,7 +24,7 @@
   ~WallClockTimeSourceTest() override = default;
 
   void AdvanceTimeInSeconds(int seconds) {
-    tick_clock_->Advance(base::TimeDelta::FromSeconds(seconds));
+    tick_clock_->Advance(base::Seconds(seconds));
   }
 
   int CurrentMediaTimeInSeconds() {
@@ -32,7 +32,7 @@
   }
 
   void SetMediaTimeInSeconds(int seconds) {
-    return time_source_.SetMediaTime(base::TimeDelta::FromSeconds(seconds));
+    return time_source_.SetMediaTime(base::Seconds(seconds));
   }
 
   base::TimeTicks ConvertMediaTime(base::TimeDelta timestamp,
@@ -46,14 +46,13 @@
   bool IsWallClockNowForMediaTimeInSeconds(int seconds) {
     bool is_time_moving = false;
     return tick_clock_->NowTicks() ==
-           ConvertMediaTime(base::TimeDelta::FromSeconds(seconds),
-                            &is_time_moving);
+           ConvertMediaTime(base::Seconds(seconds), &is_time_moving);
   }
 
   bool IsTimeStopped() {
     bool is_time_moving = false;
     // Convert any random value, it shouldn't matter for this call.
-    ConvertMediaTime(base::TimeDelta::FromSeconds(1), &is_time_moving);
+    ConvertMediaTime(base::Seconds(1), &is_time_moving);
     return !is_time_moving;
   }
 
@@ -132,7 +131,7 @@
 }
 
 TEST_F(WallClockTimeSourceTest, ConvertsTimestampsWhenStopped) {
-  const base::TimeDelta kOneSecond = base::TimeDelta::FromSeconds(1);
+  const base::TimeDelta kOneSecond = base::Seconds(1);
   bool is_time_moving = false;
   EXPECT_EQ(base::TimeTicks(),
             ConvertMediaTime(base::TimeDelta(), &is_time_moving));
diff --git a/media/capabilities/video_decode_stats_db_impl.cc b/media/capabilities/video_decode_stats_db_impl.cc
index c0b676a2..fc8f11b5 100644
--- a/media/capabilities/video_decode_stats_db_impl.cc
+++ b/media/capabilities/video_decode_stats_db_impl.cc
@@ -33,8 +33,7 @@
 
 // Timeout threshold for DB operations. See OnOperationTimeout().
 // NOTE: Used by UmaHistogramOpTime. Change the name if you change the time.
-static constexpr base::TimeDelta kPendingOpTimeout =
-    base::TimeDelta::FromSeconds(30);
+static constexpr base::TimeDelta kPendingOpTimeout = base::Seconds(30);
 
 const int kMaxFramesPerBufferDefault = 2500;
 
@@ -45,7 +44,7 @@
 void UmaHistogramOpTime(const std::string& op_name, base::TimeDelta duration) {
   base::UmaHistogramCustomMicrosecondsTimes(
       "Media.VideoDecodeStatsDB.OpTiming." + op_name, duration,
-      base::TimeDelta::FromMilliseconds(1), kPendingOpTimeout, 50);
+      base::Milliseconds(1), kPendingOpTimeout, 50);
 }
 
 }  // namespace
@@ -309,7 +308,7 @@
   DCHECK_GT(kMaxDaysToKeepStats, 0);
 
   return wall_clock_->Now() - base::Time::FromJsTime(last_write_date) <=
-         base::TimeDelta::FromDays(kMaxDaysToKeepStats);
+         base::Days(kMaxDaysToKeepStats);
 }
 
 void VideoDecodeStatsDBImpl::WriteUpdatedEntry(
diff --git a/media/capabilities/video_decode_stats_db_impl_unittest.cc b/media/capabilities/video_decode_stats_db_impl_unittest.cc
index 9d27c05..a1a93294 100644
--- a/media/capabilities/video_decode_stats_db_impl_unittest.cc
+++ b/media/capabilities/video_decode_stats_db_impl_unittest.cc
@@ -214,7 +214,7 @@
 
   // Move time forward enough to trigger timeout.
   EXPECT_CALL(*this, OnInitialize(_)).Times(0);
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(100));
+  task_environment_.FastForwardBy(base::Seconds(100));
   task_environment_.RunUntilIdle();
 
   // Verify we didn't get an init callback and task is no longer considered
@@ -337,15 +337,15 @@
       new_max_days_to_keep_stats - half_days_to_keep_stats;
 
   // Advance time half way through grace period. Verify stats not expired.
-  clock.Advance(base::TimeDelta::FromDays(half_days_to_keep_stats));
+  clock.Advance(base::Days(half_days_to_keep_stats));
   VerifyReadStats(kStatsKeyVp9, DecodeStatsEntry(200, 20, 2));
 
   // Advance time 1 day beyond grace period, verify stats are expired.
-  clock.Advance(base::TimeDelta::FromDays((remaining_days_to_keep_stats) + 1));
+  clock.Advance(base::Days((remaining_days_to_keep_stats) + 1));
   VerifyEmptyStats(kStatsKeyVp9);
 
   // Advance the clock 100 extra days. Verify stats still expired.
-  clock.Advance(base::TimeDelta::FromDays(100));
+  clock.Advance(base::Days(100));
   VerifyEmptyStats(kStatsKeyVp9);
 }
 
@@ -539,20 +539,18 @@
   // don't want to immediately expire all the existing data).
   base::SimpleTestClock clock;
   SetDBClock(&clock);
-  clock.SetNow(kDefaultWriteTime - base::TimeDelta::FromDays(10));
+  clock.SetNow(kDefaultWriteTime - base::Days(10));
   // Verify the stats are readable (not expired).
   VerifyReadStats(kStatsKeyVp9, DecodeStatsEntry(100, 10, 1));
 
   // Set "now" to be in the middle of the grace period. Verify stats are still
   // readable (not expired).
-  clock.SetNow(kDefaultWriteTime +
-               base::TimeDelta::FromDays(GetMaxDaysToKeepStats() / 2));
+  clock.SetNow(kDefaultWriteTime + base::Days(GetMaxDaysToKeepStats() / 2));
   VerifyReadStats(kStatsKeyVp9, DecodeStatsEntry(100, 10, 1));
 
   // Set the clock 1 day beyond the expiry date. Verify stats are no longer
   // readable due to expiration.
-  clock.SetNow(kDefaultWriteTime +
-               base::TimeDelta::FromDays(GetMaxDaysToKeepStats() + 1));
+  clock.SetNow(kDefaultWriteTime + base::Days(GetMaxDaysToKeepStats() + 1));
   VerifyEmptyStats(kStatsKeyVp9);
 
   // Write some stats to the entry. Verify we get back exactly what's written
@@ -577,7 +575,7 @@
   // don't want to immediately expire all the existing data).
   base::SimpleTestClock clock;
   SetDBClock(&clock);
-  clock.SetNow(kDefaultWriteTime - base::TimeDelta::FromDays(10));
+  clock.SetNow(kDefaultWriteTime - base::Days(10));
   // Verify the stats are readable (not expired).
   VerifyReadStats(kStatsKeyVp9, DecodeStatsEntry(100, 10, 1));
 
@@ -588,14 +586,12 @@
 
   // Set "now" to be in the middle of the grace period. Verify stats are still
   // readable (not expired).
-  clock.SetNow(kDefaultWriteTime +
-               base::TimeDelta::FromDays(GetMaxDaysToKeepStats() / 2));
+  clock.SetNow(kDefaultWriteTime + base::Days(GetMaxDaysToKeepStats() / 2));
   VerifyReadStats(kStatsKeyVp9, DecodeStatsEntry(300, 30, 3));
 
   // Set the clock 1 day beyond the expiry date. Verify stats are no longer
   // readable due to expiration.
-  clock.SetNow(kDefaultWriteTime +
-               base::TimeDelta::FromDays(GetMaxDaysToKeepStats() + 1));
+  clock.SetNow(kDefaultWriteTime + base::Days(GetMaxDaysToKeepStats() + 1));
   VerifyEmptyStats(kStatsKeyVp9);
 }
 
@@ -612,15 +608,15 @@
   VerifyReadStats(kStatsKeyVp9, DecodeStatsEntry(200, 20, 2));
 
   // Advance time half way through grace period. Verify stats not expired.
-  clock.Advance(base::TimeDelta::FromDays(GetMaxDaysToKeepStats() / 2));
+  clock.Advance(base::Days(GetMaxDaysToKeepStats() / 2));
   VerifyReadStats(kStatsKeyVp9, DecodeStatsEntry(200, 20, 2));
 
   // Advance time 1 day beyond grace period, verify stats are expired.
-  clock.Advance(base::TimeDelta::FromDays((GetMaxDaysToKeepStats() / 2) + 1));
+  clock.Advance(base::Days((GetMaxDaysToKeepStats() / 2) + 1));
   VerifyEmptyStats(kStatsKeyVp9);
 
   // Advance the clock 100 days. Verify stats still expired.
-  clock.Advance(base::TimeDelta::FromDays(100));
+  clock.Advance(base::Days(100));
   VerifyEmptyStats(kStatsKeyVp9);
 }
 
@@ -773,8 +769,7 @@
 
   // Make an invalid  proto with a last write date in the future.
   DecodeStatsProto protoG(protoA);
-  protoG.set_last_write_date(
-      (clock.Now() + base::TimeDelta::FromDays(1)).ToJsTime());
+  protoG.set_last_write_date((clock.Now() + base::Days(1)).ToJsTime());
   AppendToProtoDB(keyG, &protoG);
   VerifyEmptyStats(keyG);
 }
diff --git a/media/capture/content/android/screen_capture_machine_android.cc b/media/capture/content/android/screen_capture_machine_android.cc
index 18f0ec6..9d6a08c6 100644
--- a/media/capture/content/android/screen_capture_machine_android.cc
+++ b/media/capture/content/android/screen_capture_machine_android.cc
@@ -47,7 +47,7 @@
   const uint64_t absolute_micro =
       timestamp / base::Time::kNanosecondsPerMicrosecond;
   const base::TimeTicks start_time =
-      base::TimeTicks() + base::TimeDelta::FromMicroseconds(absolute_micro);
+      base::TimeTicks() + base::Microseconds(absolute_micro);
   scoped_refptr<VideoFrame> frame;
   ThreadSafeCaptureOracle::CaptureFrameCallback capture_frame_cb;
 
@@ -122,7 +122,7 @@
   const uint64_t absolute_micro =
       timestamp / base::Time::kNanosecondsPerMicrosecond;
   const base::TimeTicks start_time =
-      base::TimeTicks() + base::TimeDelta::FromMicroseconds(absolute_micro);
+      base::TimeTicks() + base::Microseconds(absolute_micro);
   scoped_refptr<VideoFrame> frame;
   ThreadSafeCaptureOracle::CaptureFrameCallback capture_frame_cb;
 
diff --git a/media/capture/content/android/thread_safe_capture_oracle.cc b/media/capture/content/android/thread_safe_capture_oracle.cc
index e1d3788..d485610ed 100644
--- a/media/capture/content/android/thread_safe_capture_oracle.cc
+++ b/media/capture/content/android/thread_safe_capture_oracle.cc
@@ -46,7 +46,7 @@
     const VideoCaptureParams& params)
     : client_(std::move(client)), oracle_(false), params_(params) {
   DCHECK_GE(params.requested_format.frame_rate, 1e-6f);
-  oracle_.SetMinCapturePeriod(base::TimeDelta::FromMicroseconds(
+  oracle_.SetMinCapturePeriod(base::Microseconds(
       static_cast<int64_t>(1000000.0 / params.requested_format.frame_rate +
                            0.5 /* to round to nearest int */)));
   const auto constraints = params.SuggestConstraints();
diff --git a/media/capture/content/animated_content_sampler.cc b/media/capture/content/animated_content_sampler.cc
index c533123..2391d99 100644
--- a/media/capture/content/animated_content_sampler.cc
+++ b/media/capture/content/animated_content_sampler.cc
@@ -22,23 +22,23 @@
 // These values were established by experimenting with a wide variety of
 // scenarios, including 24/25/30 FPS videos, 60 FPS WebGL demos, and the
 // transitions between static and animated content.
-constexpr auto kMinObservationWindow = base::TimeDelta::FromSeconds(1);
-constexpr auto kMaxObservationWindow = base::TimeDelta::FromSeconds(2);
+constexpr auto kMinObservationWindow = base::Seconds(1);
+constexpr auto kMaxObservationWindow = base::Seconds(2);
 
 // The maximum amount of time that can elapse before declaring two subsequent
 // events as "not animating."  This is the same value found in
 // cc::FrameRateCounter.
-constexpr auto kNonAnimatingThreshold = base::TimeDelta::FromSeconds(1) / 4;
+constexpr auto kNonAnimatingThreshold = base::Seconds(1) / 4;
 
 // The slowest that content can be animating in order for AnimatedContentSampler
 // to lock-in.  This is the threshold at which the "smoothness" problem is no
 // longer relevant.
-constexpr auto kMaxLockInPeriod = base::TimeDelta::FromSeconds(1) / 12;
+constexpr auto kMaxLockInPeriod = base::Seconds(1) / 12;
 
 // The amount of time over which to fully correct the drift of the rewritten
 // frame timestamps from the presentation event timestamps.  The lower the
 // value, the higher the variance in frame timestamps.
-constexpr auto kDriftCorrection = base::TimeDelta::FromSeconds(2);
+constexpr auto kDriftCorrection = base::Seconds(2);
 
 }  // anonymous namespace
 
diff --git a/media/capture/content/animated_content_sampler_unittest.cc b/media/capture/content/animated_content_sampler_unittest.cc
index c85643c..48b02cd 100644
--- a/media/capture/content/animated_content_sampler_unittest.cc
+++ b/media/capture/content/animated_content_sampler_unittest.cc
@@ -23,11 +23,11 @@
 namespace {
 
 base::TimeTicks InitialTestTimeTicks() {
-  return base::TimeTicks() + base::TimeDelta::FromSeconds(1);
+  return base::TimeTicks() + base::Seconds(1);
 }
 
 base::TimeDelta FpsAsPeriod(int frame_rate) {
-  return base::TimeDelta::FromSeconds(1) / frame_rate;
+  return base::Seconds(1) / frame_rate;
 }
 
 }  // namespace
@@ -46,7 +46,7 @@
  protected:
   // Overridden by subclass for parameterized tests.
   virtual base::TimeDelta GetMinCapturePeriod() const {
-    return base::TimeDelta::FromSeconds(1) / 30;
+    return base::Seconds(1) / 30;
   }
 
   AnimatedContentSampler* sampler() const { return sampler_.get(); }
@@ -430,18 +430,18 @@
   base::TimeTicks begin = InitialTestTimeTicks();
 
   // Provide random events and expect no lock-in.
-  RunEventSequence(
-      GenerateEventSequence(begin, begin + base::TimeDelta::FromSeconds(5),
-                            false, true, &begin),
-      false, false, false, "Provide random events and expect no lock-in.");
+  RunEventSequence(GenerateEventSequence(begin, begin + base::Seconds(5), false,
+                                         true, &begin),
+                   false, false, false,
+                   "Provide random events and expect no lock-in.");
   if (HasFailure())
     return;
 
   // Provide content frame events with some random events mixed-in, and expect
   // the sampler to lock-in.
   RunEventSequence(
-      GenerateEventSequence(begin, begin + base::TimeDelta::FromSeconds(5),
-                            true, true, &begin),
+      GenerateEventSequence(begin, begin + base::Seconds(5), true, true,
+                            &begin),
       false, true, false,
       "Provide content frame events with some random events mixed-in, and "
       "expect the sampler to lock-in.");
@@ -451,8 +451,8 @@
   // Continue providing content frame events without the random events mixed-in
   // and expect the lock-in to hold.
   RunEventSequence(
-      GenerateEventSequence(begin, begin + base::TimeDelta::FromSeconds(5),
-                            true, false, &begin),
+      GenerateEventSequence(begin, begin + base::Seconds(5), true, false,
+                            &begin),
       true, true, false,
       "Continue providing content frame events without the random events "
       "mixed-in and expect the lock-in to hold.");
@@ -462,8 +462,8 @@
   // Continue providing just content frame events and expect the lock-in to
   // hold.  Also simulate the capture pipeline experiencing back pressure.
   RunEventSequence(
-      GenerateEventSequence(begin, begin + base::TimeDelta::FromSeconds(20),
-                            true, false, &begin),
+      GenerateEventSequence(begin, begin + base::Seconds(20), true, false,
+                            &begin),
       true, true, true,
       "Continue providing just content frame events and expect the lock-in to "
       "hold.  Also simulate the capture pipeline experiencing back pressure.");
@@ -473,9 +473,8 @@
   // Provide a half-second of random events only, and expect the lock-in to be
   // broken.
   RunEventSequence(
-      GenerateEventSequence(begin,
-                            begin + base::TimeDelta::FromMilliseconds(500),
-                            false, true, &begin),
+      GenerateEventSequence(begin, begin + base::Milliseconds(500), false, true,
+                            &begin),
       true, false, false,
       "Provide a half-second of random events only, and expect the lock-in to "
       "be broken.");
@@ -485,8 +484,8 @@
   // Now, go back to providing content frame events, and expect the sampler to
   // lock-in once again.
   RunEventSequence(
-      GenerateEventSequence(begin, begin + base::TimeDelta::FromSeconds(5),
-                            true, false, &begin),
+      GenerateEventSequence(begin, begin + base::Seconds(5), true, false,
+                            &begin),
       false, true, false,
       "Now, go back to providing content frame events, and expect the sampler "
       "to lock-in once again.");
@@ -507,8 +506,8 @@
   // lock-in.
   base::TimeTicks begin = InitialTestTimeTicks();
   RunEventSequence(
-      GenerateEventSequence(begin, begin + base::TimeDelta::FromSeconds(5),
-                            true, false, &begin),
+      GenerateEventSequence(begin, begin + base::Seconds(5), true, false,
+                            &begin),
       false, true, false,
       "Start the first animation and run for a bit, and expect the sampler to "
       "lock-in.");
@@ -520,7 +519,7 @@
   // the sampler to enter an "undetected" state since it's unclear which
   // animation should be locked into.
   std::vector<Event> first_animation_events = GenerateEventSequence(
-      begin, begin + base::TimeDelta::FromSeconds(20), true, false, &begin);
+      begin, begin + base::Seconds(20), true, false, &begin);
   gfx::Rect second_animation_rect(
       gfx::Point(0, GetContentDamageRect().height()),
       GetContentDamageRect().size());
@@ -542,8 +541,8 @@
   // Now, run just the first animation, and expect the sampler to lock-in once
   // again.
   RunEventSequence(
-      GenerateEventSequence(begin, begin + base::TimeDelta::FromSeconds(5),
-                            true, false, &begin),
+      GenerateEventSequence(begin, begin + base::Seconds(5), true, false,
+                            &begin),
       false, true, false,
       "Now, run just the first animation, and expect the sampler to lock-in "
       "once again.");
@@ -555,7 +554,7 @@
   // cause the sampler to enter an "undetected" state again.  This tests that
   // pixel-weighting is being accounted for in the sampler's logic.
   first_animation_events = GenerateEventSequence(
-      begin, begin + base::TimeDelta::FromSeconds(20), true, false, &begin);
+      begin, begin + base::Seconds(20), true, false, &begin);
   second_animation_rect.set_width(second_animation_rect.width() * 2);
   both_animations_events.clear();
   bool include_second_animation_frame = true;
@@ -583,7 +582,7 @@
   // once lock-in is continuous.
   const base::TimeTicks begin = InitialTestTimeTicks();
   std::vector<Event> events = GenerateEventSequence(
-      begin, begin + base::TimeDelta::FromSeconds(20), true, false, nullptr);
+      begin, begin + base::Seconds(20), true, false, nullptr);
   typedef std::vector<base::TimeTicks> Timestamps;
   Timestamps frame_timestamps;
   for (std::vector<Event>::const_iterator i = events.begin(); i != events.end();
@@ -666,7 +665,7 @@
   // Generate a full minute of events.
   const base::TimeTicks begin = InitialTestTimeTicks();
   std::vector<Event> events = GenerateEventSequence(
-      begin, begin + base::TimeDelta::FromMinutes(1), true, false, nullptr);
+      begin, begin + base::Minutes(1), true, false, nullptr);
 
   // Modify the event sequence so that 1-3 ms of additional drift is suddenly
   // present every 100 events.  This is meant to simulate that, external to
@@ -675,7 +674,7 @@
   base::TimeDelta accumulated_drift;
   for (size_t i = 1; i < events.size(); ++i) {
     if (i % 100 == 0) {
-      accumulated_drift += base::TimeDelta::FromMilliseconds(
+      accumulated_drift += base::Milliseconds(
           GetRandomInRange(1, max_drift_increment_millis + 1));
     }
     events[i].second += accumulated_drift;
@@ -697,7 +696,7 @@
       events.back().second - last_frame_timestamp;
   const base::TimeDelta max_acceptable_error =
       GetParam().min_capture_period +
-      base::TimeDelta::FromMilliseconds(max_drift_increment_millis);
+      base::Milliseconds(max_drift_increment_millis);
   EXPECT_NEAR(0.0, total_error.InMicroseconds(),
               max_acceptable_error.InMicroseconds());
 }
diff --git a/media/capture/content/smooth_event_sampler_unittest.cc b/media/capture/content/smooth_event_sampler_unittest.cc
index 33642f3..fcc94b6 100644
--- a/media/capture/content/smooth_event_sampler_unittest.cc
+++ b/media/capture/content/smooth_event_sampler_unittest.cc
@@ -40,7 +40,7 @@
 }
 
 base::TimeTicks InitialTestTimeTicks() {
-  return base::TimeTicks() + base::TimeDelta::FromSeconds(1);
+  return base::TimeTicks() + base::Seconds(1);
 }
 
 
@@ -49,8 +49,8 @@
 // 60Hz sampled at 30Hz should produce 30Hz.  In addition, this test contains
 // much more comprehensive before/after/edge-case scenarios than the others.
 TEST(SmoothEventSamplerTest, Sample60HertzAt30Hertz) {
-  const base::TimeDelta capture_period = base::TimeDelta::FromSeconds(1) / 30;
-  const base::TimeDelta vsync = base::TimeDelta::FromSeconds(1) / 60;
+  const base::TimeDelta capture_period = base::Seconds(1) / 30;
+  const base::TimeDelta vsync = base::Seconds(1) / 60;
 
   SmoothEventSampler sampler(capture_period);
   base::TimeTicks t = InitialTestTimeTicks();
@@ -82,8 +82,8 @@
 
 // 50Hz sampled at 30Hz should produce a sequence where some frames are skipped.
 TEST(SmoothEventSamplerTest, Sample50HertzAt30Hertz) {
-  const base::TimeDelta capture_period = base::TimeDelta::FromSeconds(1) / 30;
-  const base::TimeDelta vsync = base::TimeDelta::FromSeconds(1) / 50;
+  const base::TimeDelta capture_period = base::Seconds(1) / 30;
+  const base::TimeDelta vsync = base::Seconds(1) / 50;
 
   SmoothEventSampler sampler(capture_period);
   base::TimeTicks t = InitialTestTimeTicks();
@@ -121,8 +121,8 @@
 
 // 75Hz sampled at 30Hz should produce a sequence where some frames are skipped.
 TEST(SmoothEventSamplerTest, Sample75HertzAt30Hertz) {
-  const base::TimeDelta capture_period = base::TimeDelta::FromSeconds(1) / 30;
-  const base::TimeDelta vsync = base::TimeDelta::FromSeconds(1) / 75;
+  const base::TimeDelta capture_period = base::Seconds(1) / 30;
+  const base::TimeDelta vsync = base::Seconds(1) / 75;
 
   SmoothEventSampler sampler(capture_period);
   base::TimeTicks t = InitialTestTimeTicks();
@@ -164,8 +164,8 @@
 
 // 30Hz sampled at 30Hz should produce 30Hz.
 TEST(SmoothEventSamplerTest, Sample30HertzAt30Hertz) {
-  const base::TimeDelta capture_period = base::TimeDelta::FromSeconds(1) / 30;
-  const base::TimeDelta vsync = base::TimeDelta::FromSeconds(1) / 30;
+  const base::TimeDelta capture_period = base::Seconds(1) / 30;
+  const base::TimeDelta vsync = base::Seconds(1) / 30;
 
   SmoothEventSampler sampler(capture_period);
   base::TimeTicks t = InitialTestTimeTicks();
@@ -193,8 +193,8 @@
 
 // 24Hz sampled at 30Hz should produce 24Hz.
 TEST(SmoothEventSamplerTest, Sample24HertzAt30Hertz) {
-  const base::TimeDelta capture_period = base::TimeDelta::FromSeconds(1) / 30;
-  const base::TimeDelta vsync = base::TimeDelta::FromSeconds(1) / 24;
+  const base::TimeDelta capture_period = base::Seconds(1) / 30;
+  const base::TimeDelta vsync = base::Seconds(1) / 24;
 
   SmoothEventSampler sampler(capture_period);
   base::TimeTicks t = InitialTestTimeTicks();
@@ -223,11 +223,10 @@
 // Tests that changing the minimum capture period during usage results in the
 // desired behavior.
 TEST(SmoothEventSamplerTest, Sample60HertzWithVariedCapturePeriods) {
-  const base::TimeDelta vsync = base::TimeDelta::FromSeconds(1) / 60;
+  const base::TimeDelta vsync = base::Seconds(1) / 60;
   const base::TimeDelta one_to_one_period = vsync;
   const base::TimeDelta two_to_one_period = vsync * 2;
-  const base::TimeDelta two_and_three_to_one_period =
-      base::TimeDelta::FromSeconds(1) / 24;
+  const base::TimeDelta two_and_three_to_one_period = base::Seconds(1) / 24;
 
   SmoothEventSampler sampler(one_to_one_period);
   base::TimeTicks t = InitialTestTimeTicks();
@@ -280,7 +279,7 @@
                                     SmoothEventSampler* sampler) {
   base::TimeTicks t = InitialTestTimeTicks();
   for (size_t i = 0; i < num_data_points; ++i) {
-    t += base::TimeDelta::FromMicroseconds(
+    t += base::Microseconds(
         static_cast<int64_t>(data_points[i].increment_ms * 1000));
     ASSERT_EQ(data_points[i].should_capture,
               AddEventAndConsiderSampling(sampler, t))
@@ -368,7 +367,7 @@
                                           {true, 33.44},
                                           {false, 0}};
 
-  SmoothEventSampler sampler(base::TimeDelta::FromSeconds(1) / 30);
+  SmoothEventSampler sampler(base::Seconds(1) / 30);
   ReplayCheckingSamplerDecisions(data_points, base::size(data_points),
                                  &sampler);
 }
@@ -478,7 +477,7 @@
                                           {true, 33.44},
                                           {true, 33.44}};
 
-  SmoothEventSampler sampler(base::TimeDelta::FromSeconds(1) / 30);
+  SmoothEventSampler sampler(base::Seconds(1) / 30);
   ReplayCheckingSamplerDecisions(data_points, base::size(data_points),
                                  &sampler);
 }
@@ -612,7 +611,7 @@
                                           {true, 16.72},
                                           {true, 50.16}};
 
-  SmoothEventSampler sampler(base::TimeDelta::FromSeconds(1) / 30);
+  SmoothEventSampler sampler(base::Seconds(1) / 30);
   ReplayCheckingSamplerDecisions(data_points, base::size(data_points),
                                  &sampler);
 }
diff --git a/media/capture/content/video_capture_oracle.cc b/media/capture/content/video_capture_oracle.cc
index 246e456..eeac59a 100644
--- a/media/capture/content/video_capture_oracle.cc
+++ b/media/capture/content/video_capture_oracle.cc
@@ -42,8 +42,7 @@
 // longer, and currently-accumulated feedback is not considered recent enough to
 // base decisions off of.  This prevents changes to the capture size when there
 // is an unexpected pause in events.
-const base::TimeDelta kMaxTimeSinceLastFeedbackUpdate =
-    base::TimeDelta::FromSeconds(1);
+const base::TimeDelta kMaxTimeSinceLastFeedbackUpdate = base::Seconds(1);
 
 // The amount of additional time, since content animation was last detected, to
 // continue being extra-careful about increasing the capture size.  This is used
@@ -59,8 +58,7 @@
 // time between frames at |frame_rate| and return the fractional difference.
 double FractionFromExpectedFrameRate(base::TimeDelta delta, int frame_rate) {
   DCHECK_GT(frame_rate, 0);
-  const base::TimeDelta expected_delta =
-      base::TimeDelta::FromSeconds(1) / frame_rate;
+  const base::TimeDelta expected_delta = base::Seconds(1) / frame_rate;
   return (delta - expected_delta) / expected_delta;
 }
 
@@ -68,7 +66,7 @@
 // TODO(miu): Patch FeedbackSignalAccumulator reset behavior and remove this
 // hack.
 base::TimeTicks JustAfter(base::TimeTicks t) {
-  return t + base::TimeDelta::FromMicroseconds(1);
+  return t + base::Microseconds(1);
 }
 
 }  // anonymous namespace
@@ -89,10 +87,10 @@
       smoothing_sampler_(kDefaultMinCapturePeriod),
       content_sampler_(kDefaultMinCapturePeriod),
       min_capture_period_(kDefaultMinCapturePeriod),
-      buffer_pool_utilization_(base::TimeDelta::FromMicroseconds(
-          kBufferUtilizationEvaluationMicros)),
-      estimated_capable_area_(base::TimeDelta::FromMicroseconds(
-          kConsumerCapabilityEvaluationMicros)) {
+      buffer_pool_utilization_(
+          base::Microseconds(kBufferUtilizationEvaluationMicros)),
+      estimated_capable_area_(
+          base::Microseconds(kConsumerCapabilityEvaluationMicros)) {
   VLOG(1) << "Capture size auto-throttling is now "
           << (enable_auto_throttling ? "enabled." : "disabled.");
 }
@@ -205,7 +203,7 @@
           event_time - GetFrameTimestamp(next_frame_number_ - 1);
     }
     const base::TimeDelta upper_bound =
-        base::TimeDelta::FromMilliseconds(kUpperBoundDurationEstimateMicros);
+        base::Milliseconds(kUpperBoundDurationEstimateMicros);
     duration_of_next_frame_ = std::max(
         std::min(duration_of_next_frame_, upper_bound), min_capture_period());
   }
@@ -345,8 +343,8 @@
   base::TimeDelta period;
   if (std::isfinite(feedback.max_framerate_fps) &&
       feedback.max_framerate_fps > 0.0) {
-    period = std::max(min_capture_period_,
-                      base::TimeDelta::FromHz(feedback.max_framerate_fps));
+    period =
+        std::max(min_capture_period_, base::Hertz(feedback.max_framerate_fps));
   } else {
     period = min_capture_period_;
   }
diff --git a/media/capture/content/video_capture_oracle.h b/media/capture/content/video_capture_oracle.h
index f83e91c..4ed6901c 100644
--- a/media/capture/content/video_capture_oracle.h
+++ b/media/capture/content/video_capture_oracle.h
@@ -139,11 +139,11 @@
   // Clients are expected to set a better minimum capture period after
   // VideoCaptureOracle is constructed.
   static constexpr base::TimeDelta kDefaultMinCapturePeriod =
-      base::TimeDelta::FromMicroseconds(1000000 / 5);  // 5 FPS
+      base::Microseconds(1000000 / 5);  // 5 FPS
 
   // Default minimum size change period if SetMinSizeChangePeriod is not called.
   static constexpr base::TimeDelta kDefaultMinSizeChangePeriod =
-      base::TimeDelta::FromSeconds(3);
+      base::Seconds(3);
 
   void SetLogCallback(
       base::RepeatingCallback<void(const std::string&)> emit_log_cb);
diff --git a/media/capture/content/video_capture_oracle_unittest.cc b/media/capture/content/video_capture_oracle_unittest.cc
index b2356223..06dc6735 100644
--- a/media/capture/content/video_capture_oracle_unittest.cc
+++ b/media/capture/content/video_capture_oracle_unittest.cc
@@ -12,8 +12,8 @@
 namespace {
 
 constexpr base::TimeTicks kInitialTestTimeTicks =
-    base::TimeTicks() + base::TimeDelta::FromSeconds(1);
-constexpr base::TimeDelta k30HzPeriod = base::TimeDelta::FromSeconds(1) / 30;
+    base::TimeTicks() + base::Seconds(1);
+constexpr base::TimeDelta k30HzPeriod = base::Seconds(1) / 30;
 constexpr gfx::Size k1080pSize = gfx::Size(1920, 1080);
 constexpr gfx::Size k720pSize = gfx::Size(1280, 720);
 constexpr gfx::Size k360pSize = gfx::Size(640, 360);
@@ -197,9 +197,8 @@
 // Tests that VideoCaptureOracle prevents refresh request events from initiating
 // simultaneous captures.
 TEST(VideoCaptureOracleTest, SamplesAtCorrectTimesAroundRefreshRequests) {
-  const base::TimeDelta vsync_interval = base::TimeDelta::FromSeconds(1) / 60;
-  const base::TimeDelta refresh_interval =
-      base::TimeDelta::FromMilliseconds(125);  // 8 FPS
+  const base::TimeDelta vsync_interval = base::Seconds(1) / 60;
+  const base::TimeDelta refresh_interval = base::Milliseconds(125);  // 8 FPS
 
   VideoCaptureOracle oracle(false);
   oracle.SetMinCapturePeriod(k30HzPeriod);
@@ -303,7 +302,7 @@
   // Run 30 seconds of frame captures without any source size changes.
   base::TimeTicks t = kInitialTestTimeTicks;
   const base::TimeDelta event_increment = k30HzPeriod * 2;
-  base::TimeTicks end_t = t + base::TimeDelta::FromSeconds(30);
+  base::TimeTicks end_t = t + base::Seconds(30);
   for (; t < end_t; t += event_increment) {
     ASSERT_TRUE(oracle.ObserveEventAndDecideCapture(
         VideoCaptureOracle::kCompositorUpdate, gfx::Rect(), t));
@@ -323,7 +322,7 @@
   gfx::Size source_size = oracle.capture_size();
   base::TimeTicks time_of_last_size_change = kInitialTestTimeTicks;
   gfx::Size last_capture_size = oracle.capture_size();
-  end_t = t + base::TimeDelta::FromSeconds(30);
+  end_t = t + base::Seconds(30);
   for (; t < end_t; t += event_increment) {
     // Change the source size every frame to a random non-empty size.
     const gfx::Size last_source_size = source_size;
@@ -336,7 +335,7 @@
         VideoCaptureOracle::kCompositorUpdate, gfx::Rect(), t));
 
     if (oracle.capture_size() != last_capture_size) {
-      ASSERT_GE(t - time_of_last_size_change, base::TimeDelta::FromSeconds(1));
+      ASSERT_GE(t - time_of_last_size_change, base::Seconds(1));
       time_of_last_size_change = t;
       last_capture_size = oracle.capture_size();
     }
@@ -363,7 +362,7 @@
   // changes. The capture size should be different every time.
   base::TimeTicks t = kInitialTestTimeTicks;
   const base::TimeDelta event_increment = k30HzPeriod * 2;
-  base::TimeTicks end_t = t + base::TimeDelta::FromSeconds(30);
+  base::TimeTicks end_t = t + base::Seconds(30);
   gfx::Size source_size = oracle.capture_size();
   gfx::Size last_capture_size = oracle.capture_size();
   for (; t < end_t; t += event_increment) {
@@ -415,7 +414,7 @@
   base::TimeTicks t = kInitialTestTimeTicks;
   base::TimeTicks time_of_last_size_change = t;
   const base::TimeDelta event_increment = k30HzPeriod * 2;
-  base::TimeTicks end_t = t + base::TimeDelta::FromSeconds(10);
+  base::TimeTicks end_t = t + base::Seconds(10);
   for (; t < end_t; t += event_increment) {
     ASSERT_TRUE(oracle.ObserveEventAndDecideCapture(
         VideoCaptureOracle::kCompositorUpdate,
@@ -448,7 +447,7 @@
                                       << ", i=" << i);
 
     gfx::Size stepped_down_size;
-    end_t = t + base::TimeDelta::FromSeconds(10);
+    end_t = t + base::Seconds(10);
     for (; t < end_t; t += event_increment) {
       ASSERT_TRUE(oracle.ObserveEventAndDecideCapture(
           VideoCaptureOracle::kCompositorUpdate,
@@ -486,7 +485,7 @@
                                       << ", i=" << i);
 
     gfx::Size stepped_up_size;
-    end_t = t + base::TimeDelta::FromSeconds(is_content_animating ? 90 : 10);
+    end_t = t + base::Seconds(is_content_animating ? 90 : 10);
     for (; t < end_t; t += event_increment) {
       ASSERT_TRUE(oracle.ObserveEventAndDecideCapture(
           VideoCaptureOracle::kCompositorUpdate,
@@ -496,7 +495,7 @@
         if (oracle.capture_size() != starting_size) {
           // When content is animating, a much longer amount of time must pass
           // before the capture size will step up.
-          ASSERT_LT(base::TimeDelta::FromSeconds(is_content_animating ? 15 : 1),
+          ASSERT_LT(base::Seconds(is_content_animating ? 15 : 1),
                     t - time_of_last_size_change);
           time_of_last_size_change = t;
           stepped_up_size = oracle.capture_size();
@@ -547,7 +546,7 @@
   // size changes.
   base::TimeTicks t = kInitialTestTimeTicks;
   const base::TimeDelta event_increment = k30HzPeriod * 2;
-  base::TimeTicks end_t = t + base::TimeDelta::FromSeconds(10);
+  base::TimeTicks end_t = t + base::Seconds(10);
   for (; t < end_t; t += event_increment) {
     ASSERT_TRUE(oracle.ObserveEventAndDecideCapture(
         VideoCaptureOracle::kCompositorUpdate, gfx::Rect(k720pSize), t));
@@ -562,7 +561,7 @@
   // Increase utilization to 1000%, but expect no capture size change because
   // there has never been any consumer feedback.
   const gfx::Size starting_size = oracle.capture_size();
-  end_t = t + base::TimeDelta::FromSeconds(10);
+  end_t = t + base::Seconds(10);
   for (; t < end_t; t += event_increment) {
     ASSERT_TRUE(oracle.ObserveEventAndDecideCapture(
         VideoCaptureOracle::kCompositorUpdate, gfx::Rect(k720pSize), t));
@@ -591,7 +590,7 @@
   // machine that can do more, but won't because the source size is small.
   base::TimeTicks t = kInitialTestTimeTicks;
   const base::TimeDelta event_increment = k30HzPeriod * 2;
-  base::TimeTicks end_t = t + base::TimeDelta::FromSeconds(10);
+  base::TimeTicks end_t = t + base::Seconds(10);
   for (; t < end_t; t += event_increment) {
     if (!oracle.ObserveEventAndDecideCapture(
             VideoCaptureOracle::kCompositorUpdate, gfx::Rect(k360pSize), t)) {
@@ -611,7 +610,7 @@
   // seconds.
   oracle.SetSourceSize(k720pSize);
   gfx::Size last_capture_size = oracle.capture_size();
-  end_t = t + base::TimeDelta::FromSeconds(15);
+  end_t = t + base::Seconds(15);
   for (; t < end_t; t += event_increment) {
     if (!oracle.ObserveEventAndDecideCapture(
             VideoCaptureOracle::kCompositorUpdate, gfx::Rect(k720pSize), t)) {
@@ -634,7 +633,7 @@
   // utilization to achieve a steady-state.
   oracle.SetSourceSize(k1080pSize);
   gfx::Size stepped_down_size;
-  end_t = t + base::TimeDelta::FromSeconds(10);
+  end_t = t + base::Seconds(10);
   for (; t < end_t; t += event_increment) {
     if (!oracle.ObserveEventAndDecideCapture(
             VideoCaptureOracle::kCompositorUpdate, gfx::Rect(k1080pSize), t)) {
@@ -664,10 +663,9 @@
   // Now, if we report under-utilization again (without any source size change),
   // there should be a long "proving period" before there is any increase in
   // capture size made by the oracle.
-  const base::TimeTicks proving_period_end_time =
-      t + base::TimeDelta::FromSeconds(15);
+  const base::TimeTicks proving_period_end_time = t + base::Seconds(15);
   gfx::Size stepped_up_size;
-  end_t = t + base::TimeDelta::FromSeconds(60);
+  end_t = t + base::Seconds(60);
   for (; t < end_t; t += event_increment) {
     if (!oracle.ObserveEventAndDecideCapture(
             VideoCaptureOracle::kCompositorUpdate, gfx::Rect(k1080pSize), t)) {
@@ -708,7 +706,7 @@
   // size changes.
   base::TimeTicks t = kInitialTestTimeTicks;
   const base::TimeDelta event_increment = k30HzPeriod * 2;
-  base::TimeTicks end_t = t + base::TimeDelta::FromSeconds(10);
+  base::TimeTicks end_t = t + base::Seconds(10);
   for (; t < end_t; t += event_increment) {
     ASSERT_TRUE(oracle.ObserveEventAndDecideCapture(
         VideoCaptureOracle::kCompositorUpdate, gfx::Rect(), t));
@@ -723,7 +721,7 @@
 
   // Now run 10 seconds with overload indicated.  Still, expect no capture size
   // changes.
-  end_t = t + base::TimeDelta::FromSeconds(10);
+  end_t = t + base::Seconds(10);
   for (; t < end_t; t += event_increment) {
     ASSERT_TRUE(oracle.ObserveEventAndDecideCapture(
         VideoCaptureOracle::kCompositorUpdate, gfx::Rect(), t));
@@ -747,7 +745,7 @@
   // Run 1 second with no feedback and expect no capture size changes.
   base::TimeTicks t = kInitialTestTimeTicks;
   const base::TimeDelta event_increment = k30HzPeriod * 2;
-  base::TimeTicks end_t = t + base::TimeDelta::FromSeconds(1);
+  base::TimeTicks end_t = t + base::Seconds(1);
   for (; t < end_t; t += event_increment) {
     ASSERT_TRUE(oracle.ObserveEventAndDecideCapture(
         VideoCaptureOracle::kCompositorUpdate, gfx::Rect(), t));
@@ -814,7 +812,7 @@
   // Run 1 second with no feedback and expect no capture size changes.
   base::TimeTicks t = kInitialTestTimeTicks;
   const base::TimeDelta event_increment = k30HzPeriod * 2;
-  base::TimeTicks end_t = t + base::TimeDelta::FromSeconds(1);
+  base::TimeTicks end_t = t + base::Seconds(1);
   for (; t < end_t; t += event_increment) {
     ASSERT_TRUE(oracle.ObserveEventAndDecideCapture(
         VideoCaptureOracle::kCompositorUpdate, gfx::Rect(), t));
@@ -861,10 +859,9 @@
 // Tests that VideoCaptureOracle respects the max framerate requested by the
 // consumer.
 TEST(VideoCaptureOracleTest, RespectsMaxFrameRateFeedback) {
-  constexpr base::TimeDelta vsync_interval = base::TimeDelta::FromHz(60);
-  constexpr base::TimeDelta k5HzPeriod = base::TimeDelta::FromHz(5);
-  constexpr base::TimeDelta kAllowedError =
-      base::TimeDelta::FromMilliseconds(1);
+  constexpr base::TimeDelta vsync_interval = base::Hertz(60);
+  constexpr base::TimeDelta k5HzPeriod = base::Hertz(5);
+  constexpr base::TimeDelta kAllowedError = base::Milliseconds(1);
   constexpr float k5Fps = 5.0;
   constexpr float kNoResourceUtilization = -1.0;
   constexpr float kNoFpsLimit = std::numeric_limits<float>::infinity();
diff --git a/media/capture/video/android/video_capture_device_android.cc b/media/capture/video/android/video_capture_device_android.cc
index e9a555e..2e5f448 100644
--- a/media/capture/video/android/video_capture_device_android.cc
+++ b/media/capture/video/android/video_capture_device_android.cc
@@ -162,7 +162,7 @@
   CHECK(!(capture_format_.frame_size.height() % 2));
 
   if (capture_format_.frame_rate > 0) {
-    frame_interval_ = base::TimeDelta::FromMicroseconds(
+    frame_interval_ = base::Microseconds(
         (base::Time::kMicrosecondsPerSecond + capture_format_.frame_rate - 1) /
         capture_format_.frame_rate);
   }
@@ -326,8 +326,7 @@
     return;
   const int64_t absolute_micro =
       timestamp / base::Time::kNanosecondsPerMicrosecond;
-  const base::TimeDelta capture_time =
-      base::TimeDelta::FromMicroseconds(absolute_micro);
+  const base::TimeDelta capture_time = base::Microseconds(absolute_micro);
 
   const base::TimeTicks current_time = base::TimeTicks::Now();
   ProcessFirstFrameAvailable(current_time);
diff --git a/media/capture/video/chromeos/camera_3a_controller.cc b/media/capture/video/chromeos/camera_3a_controller.cc
index e1781872..a73bd4d 100644
--- a/media/capture/video/chromeos/camera_3a_controller.cc
+++ b/media/capture/video/chromeos/camera_3a_controller.cc
@@ -222,7 +222,7 @@
   }
 
   Set3aStabilizedCallback(std::move(on_3a_stabilized_callback),
-                          base::TimeDelta::FromSeconds(2));
+                          base::Seconds(2));
 
   if (af_mode_ !=
       cros::mojom::AndroidControlAfMode::ANDROID_CONTROL_AF_MODE_OFF) {
@@ -256,9 +256,8 @@
     // metadata from zero-shutter-lag request may be out of order compared to
     // previous regular requests.
     // https://developer.android.com/reference/android/hardware/camera2/CaptureResult#CONTROL_ENABLE_ZSL
-    latest_sensor_timestamp_ =
-        std::max(latest_sensor_timestamp_,
-                 base::TimeDelta::FromNanoseconds(sensor_timestamp[0]));
+    latest_sensor_timestamp_ = std::max(latest_sensor_timestamp_,
+                                        base::Nanoseconds(sensor_timestamp[0]));
   }
 
   if (!af_mode_set_) {
@@ -571,7 +570,7 @@
   Set3aStabilizedCallback(
       base::BindOnce(&Camera3AController::SetPointOfInterestOn3AStabilized,
                      GetWeakPtr()),
-      base::TimeDelta::FromSeconds(2));
+      base::Seconds(2));
   SetCaptureMetadata(
       cros::mojom::CameraMetadataTag::ANDROID_CONTROL_AF_TRIGGER,
       cros::mojom::AndroidControlAfTrigger::ANDROID_CONTROL_AF_TRIGGER_START);
@@ -590,9 +589,8 @@
   delayed_ae_unlock_callback_.Reset(base::BindOnce(
       &Camera3AController::SetPointOfInterestUnlockAe, GetWeakPtr()));
   // TODO(shik): Apply different delays for image capture / video recording.
-  task_runner_->PostDelayedTask(FROM_HERE,
-                                delayed_ae_unlock_callback_.callback(),
-                                base::TimeDelta::FromSeconds(4));
+  task_runner_->PostDelayedTask(
+      FROM_HERE, delayed_ae_unlock_callback_.callback(), base::Seconds(4));
 }
 
 void Camera3AController::SetPointOfInterestUnlockAe() {
diff --git a/media/capture/video/chromeos/camera_device_delegate_unittest.cc b/media/capture/video/chromeos/camera_device_delegate_unittest.cc
index 8626250..1c3b7a1 100644
--- a/media/capture/video/chromeos/camera_device_delegate_unittest.cc
+++ b/media/capture/video/chromeos/camera_device_delegate_unittest.cc
@@ -465,7 +465,7 @@
                                         device_closed->Signal();
                                       },
                                       base::Unretained(&device_closed))));
-    base::TimeDelta kWaitTimeoutSecs = base::TimeDelta::FromSeconds(3);
+    base::TimeDelta kWaitTimeoutSecs = base::Seconds(3);
     EXPECT_TRUE(device_closed.TimedWait(kWaitTimeoutSecs));
     EXPECT_EQ(CameraDeviceContext::State::kStopped, GetState());
   }
@@ -616,7 +616,7 @@
                      base::BindOnce(&base::WaitableEvent::Signal,
                                     base::Unretained(&device_closed))));
   stop_posted.Signal();
-  EXPECT_TRUE(device_closed.TimedWait(base::TimeDelta::FromSeconds(3)));
+  EXPECT_TRUE(device_closed.TimedWait(base::Seconds(3)));
   EXPECT_EQ(CameraDeviceContext::State::kStopped, GetState());
 
   ResetDevice();
diff --git a/media/capture/video/chromeos/camera_hal_delegate.cc b/media/capture/video/chromeos/camera_hal_delegate.cc
index 9b83d4c..57ec134 100644
--- a/media/capture/video/chromeos/camera_hal_delegate.cc
+++ b/media/capture/video/chromeos/camera_hal_delegate.cc
@@ -36,8 +36,7 @@
 constexpr int32_t kDefaultFps = 30;
 constexpr char kVirtualPrefix[] = "VIRTUAL_";
 
-constexpr base::TimeDelta kEventWaitTimeoutSecs =
-    base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kEventWaitTimeoutSecs = base::Seconds(1);
 
 class LocalCameraClientObserver : public CameraClientObserver {
  public:
diff --git a/media/capture/video/chromeos/request_manager.cc b/media/capture/video/chromeos/request_manager.cc
index 71e0b03..f27b8b46 100644
--- a/media/capture/video/chromeos/request_manager.cc
+++ b/media/capture/video/chromeos/request_manager.cc
@@ -775,8 +775,7 @@
     pending_result.shutter_timestamp = shutter_time;
     // Shutter timestamp is in ns.
     base::TimeTicks reference_time =
-        base::TimeTicks() +
-        base::TimeDelta::FromMicroseconds(shutter_time / 1000);
+        base::TimeTicks() + base::Microseconds(shutter_time / 1000);
     pending_result.reference_time = reference_time;
     if (first_frame_shutter_time_.is_null()) {
       // Record the shutter time of the first frame for calculating the
diff --git a/media/capture/video/chromeos/video_capture_device_chromeos_delegate.cc b/media/capture/video/chromeos/video_capture_device_chromeos_delegate.cc
index 3ced3bb..607a3a04 100644
--- a/media/capture/video/chromeos/video_capture_device_chromeos_delegate.cc
+++ b/media/capture/video/chromeos/video_capture_device_chromeos_delegate.cc
@@ -286,7 +286,7 @@
                                       device_closed->Signal();
                                     },
                                     base::Unretained(&device_closed_))));
-  base::TimeDelta kWaitTimeoutSecs = base::TimeDelta::FromSeconds(3);
+  base::TimeDelta kWaitTimeoutSecs = base::Seconds(3);
   device_closed_.TimedWait(kWaitTimeoutSecs);
   if (!unblock_suspend_token.is_empty())
     power_manager_client_proxy_->UnblockSuspend(unblock_suspend_token);
diff --git a/media/capture/video/fake_video_capture_device.cc b/media/capture/video/fake_video_capture_device.cc
index 19ab430..608f286 100644
--- a/media/capture/video/fake_video_capture_device.cc
+++ b/media/capture/video/fake_video_capture_device.cc
@@ -859,10 +859,9 @@
 void FakeVideoCaptureDevice::BeepAndScheduleNextCapture(
     base::TimeTicks expected_execution_time) {
   DCHECK(thread_checker_.CalledOnValidThread());
-  const base::TimeDelta beep_interval =
-      base::TimeDelta::FromMilliseconds(kBeepInterval);
+  const base::TimeDelta beep_interval = base::Milliseconds(kBeepInterval);
   const base::TimeDelta frame_interval =
-      base::TimeDelta::FromMicroseconds(1e6 / device_state_->format.frame_rate);
+      base::Microseconds(1e6 / device_state_->format.frame_rate);
   beep_time_ += frame_interval;
   elapsed_time_ += frame_interval;
 
diff --git a/media/capture/video/file_video_capture_device.cc b/media/capture/video/file_video_capture_device.cc
index 715a1b5..f91e851 100644
--- a/media/capture/video/file_video_capture_device.cc
+++ b/media/capture/video/file_video_capture_device.cc
@@ -718,7 +718,7 @@
 
   // Reschedule next CaptureTask.
   const base::TimeDelta frame_interval =
-      base::TimeDelta::FromMicroseconds(1E6 / capture_format_.frame_rate);
+      base::Microseconds(1E6 / capture_format_.frame_rate);
   if (next_frame_time_.is_null()) {
     next_frame_time_ = current_time + frame_interval;
   } else {
diff --git a/media/capture/video/file_video_capture_device_unittest.cc b/media/capture/video/file_video_capture_device_unittest.cc
index a92f572..5712cbc 100644
--- a/media/capture/video/file_video_capture_device_unittest.cc
+++ b/media/capture/video/file_video_capture_device_unittest.cc
@@ -26,7 +26,7 @@
 
 namespace {
 
-const base::TimeDelta kWaitTimeoutSecs = base::TimeDelta::FromSeconds(3);
+const base::TimeDelta kWaitTimeoutSecs = base::Seconds(3);
 
 class MockImageCaptureClient {
  public:
diff --git a/media/capture/video/fuchsia/video_capture_device_fuchsia_test.cc b/media/capture/video/fuchsia/video_capture_device_fuchsia_test.cc
index ab0c857..6348448 100644
--- a/media/capture/video/fuchsia/video_capture_device_fuchsia_test.cc
+++ b/media/capture/video/fuchsia/video_capture_device_fuchsia_test.cc
@@ -313,8 +313,7 @@
   for (size_t i = 0; i < 10; ++i) {
     ASSERT_TRUE(stream->WaitFreeBuffer());
 
-    auto frame_timestamp =
-        start_timestamp + base::TimeDelta::FromMilliseconds(i * 16);
+    auto frame_timestamp = start_timestamp + base::Milliseconds(i * 16);
     stream->ProduceFrame(frame_timestamp, i);
     client_->WaitFrame();
 
diff --git a/media/capture/video/linux/fake_v4l2_impl.cc b/media/capture/video/linux/fake_v4l2_impl.cc
index f2936a91..245d11a 100644
--- a/media/capture/video/linux/fake_v4l2_impl.cc
+++ b/media/capture/video/linux/fake_v4l2_impl.cc
@@ -100,7 +100,7 @@
       }
     }
     return wait_for_outgoing_queue_event_.TimedWait(
-        base::TimeDelta::FromMilliseconds(timeout_in_milliseconds));
+        base::Milliseconds(timeout_in_milliseconds));
   }
 
   int enum_fmt(v4l2_fmtdesc* fmtdesc) {
@@ -342,7 +342,7 @@
       // Sleep for a bit.
       // We ignore the requested frame rate here, and just sleep for a fixed
       // duration.
-      base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(100));
+      base::PlatformThread::Sleep(base::Milliseconds(100));
     }
   }
 
diff --git a/media/capture/video/mac/video_capture_device_avfoundation_mac.mm b/media/capture/video/mac/video_capture_device_avfoundation_mac.mm
index 81f81e30c..7a0e506 100644
--- a/media/capture/video/mac/video_capture_device_avfoundation_mac.mm
+++ b/media/capture/video/mac/video_capture_device_avfoundation_mac.mm
@@ -53,7 +53,7 @@
       CMSampleBufferGetPresentationTimeStamp(sampleBuffer);
   const base::TimeDelta timestamp =
       CMTIME_IS_VALID(cm_timestamp)
-          ? base::TimeDelta::FromSecondsD(CMTimeGetSeconds(cm_timestamp))
+          ? base::Seconds(CMTimeGetSeconds(cm_timestamp))
           : media::kNoTimestamp;
   return timestamp;
 }
@@ -489,7 +489,7 @@
               [weakSelf.get() takePhotoInternal];
             },
             _weakPtrFactoryForTakePhoto->GetWeakPtr()),
-        base::TimeDelta::FromSeconds(3));
+        base::Seconds(3));
   }
 }
 
@@ -580,8 +580,7 @@
             [strongSelf stopStillImageOutput];
           },
           _weakPtrFactoryForTakePhoto->GetWeakPtr(), _takePhotoStartedCount),
-      base::TimeDelta::FromSeconds(
-          kTimeToWaitBeforeStoppingStillImageCaptureInSeconds));
+      base::Seconds(kTimeToWaitBeforeStoppingStillImageCaptureInSeconds));
 }
 
 - (void)stopStillImageOutput {
@@ -868,8 +867,7 @@
       _weakPtrFactoryForStallCheck = std::make_unique<
           base::WeakPtrFactory<VideoCaptureDeviceAVFoundation>>(self);
     }
-    constexpr base::TimeDelta kStallCheckInterval =
-        base::TimeDelta::FromSeconds(1);
+    constexpr base::TimeDelta kStallCheckInterval = base::Seconds(1);
     auto callback_lambda =
         [](base::WeakPtr<VideoCaptureDeviceAVFoundation> weakSelf,
            int failedCheckCount) {
diff --git a/media/capture/video/mac/video_capture_device_decklink_mac.mm b/media/capture/video/mac/video_capture_device_decklink_mac.mm
index 6b64c48..8354e8b8 100644
--- a/media/capture/video/mac/video_capture_device_decklink_mac.mm
+++ b/media/capture/video/mac/video_capture_device_decklink_mac.mm
@@ -289,7 +289,7 @@
     base::TimeDelta timestamp;
     if (SUCCEEDED(video_frame->GetStreamTime(&frame_time, &frame_duration,
                                              micros_time_scale))) {
-      timestamp = base::TimeDelta::FromMicroseconds(frame_time);
+      timestamp = base::Microseconds(frame_time);
     } else {
       timestamp = now - first_ref_time_;
     }
diff --git a/media/capture/video/win/sink_input_pin_win.cc b/media/capture/video/win/sink_input_pin_win.cc
index 11c19d2b..2c80ba4 100644
--- a/media/capture/video/win/sink_input_pin_win.cc
+++ b/media/capture/video/win/sink_input_pin_win.cc
@@ -231,7 +231,7 @@
   base::TimeDelta timestamp = kNoTimestamp;
   if (SUCCEEDED(sample->GetTime(&start_time, &end_time))) {
     DCHECK(start_time <= end_time);
-    timestamp = base::TimeDelta::FromMicroseconds(start_time / 10);
+    timestamp = base::Microseconds(start_time / 10);
   }
 
   observer_->FrameReceived(buffer, length, resulting_format_, timestamp,
diff --git a/media/capture/video/win/video_capture_device_mf_win.cc b/media/capture/video/win/video_capture_device_mf_win.cc
index 6449299..e279ade 100644
--- a/media/capture/video/win/video_capture_device_mf_win.cc
+++ b/media/capture/video/win/video_capture_device_mf_win.cc
@@ -658,8 +658,7 @@
     base::TimeTicks reference_time(base::TimeTicks::Now());
     LONGLONG raw_time_stamp = 0;
     sample->GetSampleTime(&raw_time_stamp);
-    base::TimeDelta timestamp =
-        base::TimeDelta::FromMicroseconds(raw_time_stamp / 10);
+    base::TimeDelta timestamp = base::Microseconds(raw_time_stamp / 10);
 
     DWORD count = 0;
     sample->GetBufferCount(&count);
@@ -754,8 +753,7 @@
   do {
     hr = callback.Run();
     if (FAILED(hr))
-      base::PlatformThread::Sleep(
-          base::TimeDelta::FromMilliseconds(retry_delay_in_ms_));
+      base::PlatformThread::Sleep(base::Milliseconds(retry_delay_in_ms_));
 
     // Give up after some amount of time
   } while (hr == MF_E_INVALIDREQUEST && retry_count++ < max_retry_count_);
diff --git a/media/capture/video/win/video_capture_device_mf_win_unittest.cc b/media/capture/video/win/video_capture_device_mf_win_unittest.cc
index 2211494..1c0eefb 100644
--- a/media/capture/video/win/video_capture_device_mf_win_unittest.cc
+++ b/media/capture/video/win/video_capture_device_mf_win_unittest.cc
@@ -544,7 +544,7 @@
         .WillByDefault(Return(MF_CAPTURE_ENGINE_INITIALIZED));
     // HW Cameras usually add about 500ms latency on init
     ON_CALL(*this, InitEventDelay)
-        .WillByDefault(Return(base::TimeDelta::FromMilliseconds(500)));
+        .WillByDefault(Return(base::Milliseconds(500)));
 
     base::TimeDelta event_delay = InitEventDelay();
 
@@ -554,8 +554,8 @@
                        OnInitEventGuid(), OnInitStatus()),
         event_delay);
     // if zero is passed ensure event fires before wait starts
-    if (event_delay == base::TimeDelta::FromMilliseconds(0)) {
-      base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(200));
+    if (event_delay == base::Milliseconds(0)) {
+      base::PlatformThread::Sleep(base::Milliseconds(200));
     }
 
     return S_OK;
@@ -1363,7 +1363,7 @@
     return MF_CAPTURE_ENGINE_INITIALIZED;
   });
   EXPECT_CALL(*(engine.Get()), InitEventDelay).WillOnce([]() {
-    return base::TimeDelta::FromMilliseconds(0);
+    return base::Milliseconds(0);
   });
 
   EXPECT_CALL(*(engine.Get()), OnCorrectInitializeQueued());
diff --git a/media/cast/cast_config.cc b/media/cast/cast_config.cc
index 30e6c41..0087e23 100644
--- a/media/cast/cast_config.cc
+++ b/media/cast/cast_config.cc
@@ -29,8 +29,7 @@
       // All three delays are set to the same value due to adaptive latency
       // being disabled in Chrome. This will be fixed as part of the migration
       // to libcast.
-      min_playout_delay(
-          base::TimeDelta::FromMilliseconds(kDefaultRtpMaxDelayMs)),
+      min_playout_delay(base::Milliseconds(kDefaultRtpMaxDelayMs)),
       max_playout_delay(min_playout_delay),
       animated_playout_delay(min_playout_delay),
       rtp_payload_type(RtpPayloadType::UNKNOWN),
diff --git a/media/cast/common/clock_drift_smoother.cc b/media/cast/common/clock_drift_smoother.cc
index 97eec39..f1cd0bb 100644
--- a/media/cast/common/clock_drift_smoother.cc
+++ b/media/cast/common/clock_drift_smoother.cc
@@ -23,8 +23,7 @@
 
 base::TimeDelta ClockDriftSmoother::Current() const {
   DCHECK(!last_update_time_.is_null());
-  return base::TimeDelta::FromMicroseconds(
-      base::ClampRound<int64_t>(estimate_us_));
+  return base::Microseconds(base::ClampRound<int64_t>(estimate_us_));
 }
 
 void ClockDriftSmoother::Reset(base::TimeTicks now,
@@ -52,7 +51,7 @@
 
 // static
 base::TimeDelta ClockDriftSmoother::GetDefaultTimeConstant() {
-  return base::TimeDelta::FromSeconds(30);
+  return base::Seconds(30);
 }
 
 }  // namespace cast
diff --git a/media/cast/common/rtp_time.cc b/media/cast/common/rtp_time.cc
index 1fb1b9b7..28fc3a0 100644
--- a/media/cast/common/rtp_time.cc
+++ b/media/cast/common/rtp_time.cc
@@ -20,7 +20,7 @@
                             base::Time::kMicrosecondsPerSecond +
                                 0.5 /* rounding */;
   DCHECK_LT(micros, static_cast<double>(std::numeric_limits<int64_t>::max()));
-  return base::TimeDelta::FromMicroseconds(static_cast<int64_t>(micros));
+  return base::Microseconds(static_cast<int64_t>(micros));
 }
 
 // Returns the tick count in the given timebase nearest to the base::TimeDelta.
diff --git a/media/cast/common/rtp_time_unittest.cc b/media/cast/common/rtp_time_unittest.cc
index cdbd10f9ce..3841215 100644
--- a/media/cast/common/rtp_time_unittest.cc
+++ b/media/cast/common/rtp_time_unittest.cc
@@ -23,48 +23,45 @@
 
   // Conversions that are exact (i.e., do not require rounding).
   ASSERT_EQ(RtpTimeDelta::FromTicks(480),
-            RtpTimeDelta::FromTimeDelta(base::TimeDelta::FromMilliseconds(10),
-                                        kTimebase));
-  ASSERT_EQ(
-      RtpTimeDelta::FromTicks(96000),
-      RtpTimeDelta::FromTimeDelta(base::TimeDelta::FromSeconds(2), kTimebase));
-  ASSERT_EQ(base::TimeDelta::FromMilliseconds(10),
+            RtpTimeDelta::FromTimeDelta(base::Milliseconds(10), kTimebase));
+  ASSERT_EQ(RtpTimeDelta::FromTicks(96000),
+            RtpTimeDelta::FromTimeDelta(base::Seconds(2), kTimebase));
+  ASSERT_EQ(base::Milliseconds(10),
             RtpTimeDelta::FromTicks(480).ToTimeDelta(kTimebase));
-  ASSERT_EQ(base::TimeDelta::FromSeconds(2),
+  ASSERT_EQ(base::Seconds(2),
             RtpTimeDelta::FromTicks(96000).ToTimeDelta(kTimebase));
 
   // Conversions that are approximate (i.e., are rounded).
   for (int error_us = -3; error_us <= +3; ++error_us) {
     ASSERT_EQ(RtpTimeDelta::FromTicks(0),
-              RtpTimeDelta::FromTimeDelta(
-                  base::TimeDelta::FromMicroseconds(0 + error_us), kTimebase));
+              RtpTimeDelta::FromTimeDelta(base::Microseconds(0 + error_us),
+                                          kTimebase));
     ASSERT_EQ(RtpTimeDelta::FromTicks(1),
-              RtpTimeDelta::FromTimeDelta(
-                  base::TimeDelta::FromMicroseconds(21 + error_us), kTimebase));
+              RtpTimeDelta::FromTimeDelta(base::Microseconds(21 + error_us),
+                                          kTimebase));
     ASSERT_EQ(RtpTimeDelta::FromTicks(2),
-              RtpTimeDelta::FromTimeDelta(
-                  base::TimeDelta::FromMicroseconds(42 + error_us), kTimebase));
+              RtpTimeDelta::FromTimeDelta(base::Microseconds(42 + error_us),
+                                          kTimebase));
     ASSERT_EQ(RtpTimeDelta::FromTicks(3),
-              RtpTimeDelta::FromTimeDelta(
-                  base::TimeDelta::FromMicroseconds(63 + error_us), kTimebase));
+              RtpTimeDelta::FromTimeDelta(base::Microseconds(63 + error_us),
+                                          kTimebase));
     ASSERT_EQ(RtpTimeDelta::FromTicks(4),
+              RtpTimeDelta::FromTimeDelta(base::Microseconds(83 + error_us),
+                                          kTimebase));
+    ASSERT_EQ(RtpTimeDelta::FromTicks(11200000000000),
               RtpTimeDelta::FromTimeDelta(
-                  base::TimeDelta::FromMicroseconds(83 + error_us), kTimebase));
-    ASSERT_EQ(
-        RtpTimeDelta::FromTicks(11200000000000),
-        RtpTimeDelta::FromTimeDelta(base::TimeDelta::FromMicroseconds(
-                                        INT64_C(233333333333333) + error_us),
-                                    kTimebase));
+                  base::Microseconds(INT64_C(233333333333333) + error_us),
+                  kTimebase));
   }
-  ASSERT_EQ(base::TimeDelta::FromMicroseconds(21),
+  ASSERT_EQ(base::Microseconds(21),
             RtpTimeDelta::FromTicks(1).ToTimeDelta(kTimebase));
-  ASSERT_EQ(base::TimeDelta::FromMicroseconds(42),
+  ASSERT_EQ(base::Microseconds(42),
             RtpTimeDelta::FromTicks(2).ToTimeDelta(kTimebase));
-  ASSERT_EQ(base::TimeDelta::FromMicroseconds(63),
+  ASSERT_EQ(base::Microseconds(63),
             RtpTimeDelta::FromTicks(3).ToTimeDelta(kTimebase));
-  ASSERT_EQ(base::TimeDelta::FromMicroseconds(83),
+  ASSERT_EQ(base::Microseconds(83),
             RtpTimeDelta::FromTicks(4).ToTimeDelta(kTimebase));
-  ASSERT_EQ(base::TimeDelta::FromMicroseconds(INT64_C(233333333333333)),
+  ASSERT_EQ(base::Microseconds(INT64_C(233333333333333)),
             RtpTimeDelta::FromTicks(11200000000000).ToTimeDelta(kTimebase));
 }
 
diff --git a/media/cast/logging/encoding_event_subscriber_unittest.cc b/media/cast/logging/encoding_event_subscriber_unittest.cc
index 8334ff96..427d0eb 100644
--- a/media/cast/logging/encoding_event_subscriber_unittest.cc
+++ b/media/cast/logging/encoding_event_subscriber_unittest.cc
@@ -283,7 +283,7 @@
   playout_event->media_type = AUDIO_EVENT;
   playout_event->rtp_timestamp = rtp_timestamp;
   playout_event->frame_id = FrameId::first();
-  playout_event->delay_delta = base::TimeDelta::FromMilliseconds(delay_ms);
+  playout_event->delay_delta = base::Milliseconds(delay_ms);
   cast_environment_->logger()->DispatchFrameEvent(std::move(playout_event));
 
   GetEventsAndReset();
@@ -365,10 +365,10 @@
   playout_event->media_type = AUDIO_EVENT;
   playout_event->rtp_timestamp = rtp_timestamp1;
   playout_event->frame_id = FrameId::first();
-  playout_event->delay_delta = base::TimeDelta::FromMilliseconds(100);
+  playout_event->delay_delta = base::Milliseconds(100);
   cast_environment_->logger()->DispatchFrameEvent(std::move(playout_event));
 
-  task_runner_->Sleep(base::TimeDelta::FromMilliseconds(20));
+  task_runner_->Sleep(base::Milliseconds(20));
   base::TimeTicks now2(testing_clock_.NowTicks());
   std::unique_ptr<FrameEvent> encode_event(new FrameEvent());
   encode_event->timestamp = now2;
@@ -381,7 +381,7 @@
   encode_event->idealized_bitrate_utilization = 0.55;
   cast_environment_->logger()->DispatchFrameEvent(std::move(encode_event));
 
-  task_runner_->Sleep(base::TimeDelta::FromMilliseconds(20));
+  task_runner_->Sleep(base::Milliseconds(20));
   base::TimeTicks now3(testing_clock_.NowTicks());
   std::unique_ptr<FrameEvent> decode_event(new FrameEvent());
   decode_event->timestamp = now3;
@@ -493,7 +493,7 @@
   send_event->size = size;
   cast_environment_->logger()->DispatchPacketEvent(std::move(send_event));
 
-  task_runner_->Sleep(base::TimeDelta::FromMilliseconds(20));
+  task_runner_->Sleep(base::Milliseconds(20));
   base::TimeTicks now2(testing_clock_.NowTicks());
   std::unique_ptr<PacketEvent> retransmit_event(new PacketEvent());
   retransmit_event->timestamp = now2;
@@ -548,7 +548,7 @@
   send_event->size = size;
   cast_environment_->logger()->DispatchPacketEvent(std::move(send_event));
 
-  task_runner_->Sleep(base::TimeDelta::FromMilliseconds(20));
+  task_runner_->Sleep(base::Milliseconds(20));
   base::TimeTicks now2(testing_clock_.NowTicks());
   std::unique_ptr<PacketEvent> retransmit_event(new PacketEvent());
   retransmit_event->timestamp = now2;
@@ -609,7 +609,7 @@
   send_event->size = size;
   cast_environment_->logger()->DispatchPacketEvent(std::move(send_event));
 
-  task_runner_->Sleep(base::TimeDelta::FromMilliseconds(20));
+  task_runner_->Sleep(base::Milliseconds(20));
   base::TimeTicks now2(testing_clock_.NowTicks());
   std::unique_ptr<PacketEvent> retransmit_event(new PacketEvent());
   retransmit_event->timestamp = now2;
@@ -764,7 +764,7 @@
     ack_event->frame_id = FrameId::first();
     cast_environment_->logger()->DispatchFrameEvent(std::move(ack_event));
 
-    task_runner_->Sleep(base::TimeDelta::FromMilliseconds(30));
+    task_runner_->Sleep(base::Milliseconds(30));
   }
 
   GetEventsAndReset();
@@ -789,7 +789,7 @@
     send_event->size = 123;
     cast_environment_->logger()->DispatchPacketEvent(std::move(send_event));
 
-    task_runner_->Sleep(base::TimeDelta::FromMilliseconds(30));
+    task_runner_->Sleep(base::Milliseconds(30));
   }
 
   GetEventsAndReset();
@@ -823,7 +823,7 @@
     send_event->size = 123;
     cast_environment_->logger()->DispatchPacketEvent(std::move(send_event));
 
-    task_runner_->Sleep(base::TimeDelta::FromMilliseconds(30));
+    task_runner_->Sleep(base::Milliseconds(30));
   }
 
   GetEventsAndReset();
diff --git a/media/cast/logging/receiver_time_offset_estimator_impl_unittest.cc b/media/cast/logging/receiver_time_offset_estimator_impl_unittest.cc
index c90a1f3..8bd7476c 100644
--- a/media/cast/logging/receiver_time_offset_estimator_impl_unittest.cc
+++ b/media/cast/logging/receiver_time_offset_estimator_impl_unittest.cc
@@ -54,7 +54,7 @@
 // Then the bound after all 3 events have arrived is [130-60=70, 130-20=110].
 TEST_F(ReceiverTimeOffsetEstimatorImplTest, EstimateOffset) {
   int64_t true_offset_ms = 100;
-  receiver_clock_.Advance(base::TimeDelta::FromMilliseconds(true_offset_ms));
+  receiver_clock_.Advance(base::Milliseconds(true_offset_ms));
 
   base::TimeDelta lower_bound;
   base::TimeDelta upper_bound;
@@ -64,7 +64,7 @@
   const RtpTimeTicks rtp_timestamp;
   FrameId frame_id = FrameId::first();
 
-  AdvanceClocks(base::TimeDelta::FromMilliseconds(20));
+  AdvanceClocks(base::Milliseconds(20));
 
   std::unique_ptr<FrameEvent> encode_event(new FrameEvent());
   encode_event->timestamp = sender_clock_.NowTicks();
@@ -92,7 +92,7 @@
 
   EXPECT_FALSE(estimator_.GetReceiverOffsetBounds(&lower_bound, &upper_bound));
 
-  AdvanceClocks(base::TimeDelta::FromMilliseconds(10));
+  AdvanceClocks(base::Milliseconds(10));
   std::unique_ptr<FrameEvent> ack_sent_event(new FrameEvent());
   ack_sent_event->timestamp = receiver_clock_.NowTicks();
   ack_sent_event->type = FRAME_ACK_SENT;
@@ -114,7 +114,7 @@
 
   EXPECT_FALSE(estimator_.GetReceiverOffsetBounds(&lower_bound, &upper_bound));
 
-  AdvanceClocks(base::TimeDelta::FromMilliseconds(30));
+  AdvanceClocks(base::Milliseconds(30));
   std::unique_ptr<FrameEvent> ack_event(new FrameEvent());
   ack_event->timestamp = sender_clock_.NowTicks();
   ack_event->type = FRAME_ACK_RECEIVED;
@@ -137,7 +137,7 @@
 // event C occurred before event B.
 TEST_F(ReceiverTimeOffsetEstimatorImplTest, EventCArrivesBeforeEventB) {
   int64_t true_offset_ms = 100;
-  receiver_clock_.Advance(base::TimeDelta::FromMilliseconds(true_offset_ms));
+  receiver_clock_.Advance(base::Milliseconds(true_offset_ms));
 
   base::TimeDelta lower_bound;
   base::TimeDelta upper_bound;
@@ -147,7 +147,7 @@
   const RtpTimeTicks rtp_timestamp;
   FrameId frame_id = FrameId::first();
 
-  AdvanceClocks(base::TimeDelta::FromMilliseconds(20));
+  AdvanceClocks(base::Milliseconds(20));
 
   std::unique_ptr<FrameEvent> encode_event(new FrameEvent());
   encode_event->timestamp = sender_clock_.NowTicks();
@@ -175,9 +175,9 @@
 
   EXPECT_FALSE(estimator_.GetReceiverOffsetBounds(&lower_bound, &upper_bound));
 
-  AdvanceClocks(base::TimeDelta::FromMilliseconds(10));
+  AdvanceClocks(base::Milliseconds(10));
   base::TimeTicks event_b_time = receiver_clock_.NowTicks();
-  AdvanceClocks(base::TimeDelta::FromMilliseconds(30));
+  AdvanceClocks(base::Milliseconds(30));
   base::TimeTicks event_c_time = sender_clock_.NowTicks();
 
   std::unique_ptr<FrameEvent> ack_event(new FrameEvent());
@@ -221,7 +221,7 @@
 
 TEST_F(ReceiverTimeOffsetEstimatorImplTest, MultipleIterations) {
   int64_t true_offset_ms = 100;
-  receiver_clock_.Advance(base::TimeDelta::FromMilliseconds(true_offset_ms));
+  receiver_clock_.Advance(base::Milliseconds(true_offset_ms));
 
   base::TimeDelta lower_bound;
   base::TimeDelta upper_bound;
@@ -240,7 +240,7 @@
   // Frame 3 times: [77, 80+100, 110]
   // Bound should end up at [95, 103]
   // Events times in chronological order: 20, 30 x2, 50, 55, 60, 77, 80, 110
-  AdvanceClocks(base::TimeDelta::FromMilliseconds(20));
+  AdvanceClocks(base::Milliseconds(20));
   std::unique_ptr<FrameEvent> encode_event(new FrameEvent());
   encode_event->timestamp = sender_clock_.NowTicks();
   encode_event->type = FRAME_ENCODED;
@@ -265,7 +265,7 @@
   send_event->size = 1500;
   cast_environment_->logger()->DispatchPacketEvent(std::move(send_event));
 
-  AdvanceClocks(base::TimeDelta::FromMilliseconds(10));
+  AdvanceClocks(base::Milliseconds(10));
   encode_event = std::make_unique<FrameEvent>();
   encode_event->timestamp = sender_clock_.NowTicks();
   encode_event->type = FRAME_ENCODED;
@@ -298,7 +298,7 @@
   ack_sent_event->frame_id = frame_id_a;
   cast_environment_->logger()->DispatchFrameEvent(std::move(ack_sent_event));
 
-  AdvanceClocks(base::TimeDelta::FromMilliseconds(20));
+  AdvanceClocks(base::Milliseconds(20));
 
   std::unique_ptr<PacketEvent> receive_event(new PacketEvent());
   receive_event->timestamp = receiver_clock_.NowTicks();
@@ -319,7 +319,7 @@
   ack_sent_event->frame_id = frame_id_b;
   cast_environment_->logger()->DispatchFrameEvent(std::move(ack_sent_event));
 
-  AdvanceClocks(base::TimeDelta::FromMilliseconds(5));
+  AdvanceClocks(base::Milliseconds(5));
   std::unique_ptr<FrameEvent> ack_event(new FrameEvent());
   ack_event->timestamp = sender_clock_.NowTicks();
   ack_event->type = FRAME_ACK_RECEIVED;
@@ -328,7 +328,7 @@
   ack_event->frame_id = frame_id_b;
   cast_environment_->logger()->DispatchFrameEvent(std::move(ack_event));
 
-  AdvanceClocks(base::TimeDelta::FromMilliseconds(5));
+  AdvanceClocks(base::Milliseconds(5));
   ack_event = std::make_unique<FrameEvent>();
   ack_event->timestamp = sender_clock_.NowTicks();
   ack_event->type = FRAME_ACK_RECEIVED;
@@ -337,7 +337,7 @@
   ack_event->frame_id = frame_id_a;
   cast_environment_->logger()->DispatchFrameEvent(std::move(ack_event));
 
-  AdvanceClocks(base::TimeDelta::FromMilliseconds(17));
+  AdvanceClocks(base::Milliseconds(17));
   encode_event = std::make_unique<FrameEvent>();
   encode_event->timestamp = sender_clock_.NowTicks();
   encode_event->type = FRAME_ENCODED;
@@ -362,7 +362,7 @@
   send_event->size = 1500;
   cast_environment_->logger()->DispatchPacketEvent(std::move(send_event));
 
-  AdvanceClocks(base::TimeDelta::FromMilliseconds(3));
+  AdvanceClocks(base::Milliseconds(3));
   receive_event = std::make_unique<PacketEvent>();
   receive_event->timestamp = receiver_clock_.NowTicks();
   receive_event->type = PACKET_RECEIVED;
@@ -382,7 +382,7 @@
   ack_sent_event->frame_id = frame_id_c;
   cast_environment_->logger()->DispatchFrameEvent(std::move(ack_sent_event));
 
-  AdvanceClocks(base::TimeDelta::FromMilliseconds(30));
+  AdvanceClocks(base::Milliseconds(30));
   ack_event = std::make_unique<FrameEvent>();
   ack_event->timestamp = sender_clock_.NowTicks();
   ack_event->type = FRAME_ACK_RECEIVED;
diff --git a/media/cast/logging/simple_event_subscriber_unittest.cc b/media/cast/logging/simple_event_subscriber_unittest.cc
index cee6f65..a637b96 100644
--- a/media/cast/logging/simple_event_subscriber_unittest.cc
+++ b/media/cast/logging/simple_event_subscriber_unittest.cc
@@ -60,7 +60,7 @@
   playout_event->media_type = AUDIO_EVENT;
   playout_event->rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(100));
   playout_event->frame_id = FrameId::first();
-  playout_event->delay_delta = base::TimeDelta::FromMilliseconds(100);
+  playout_event->delay_delta = base::Milliseconds(100);
   cast_environment_->logger()->DispatchFrameEvent(std::move(playout_event));
 
   std::unique_ptr<FrameEvent> decode_event(new FrameEvent());
diff --git a/media/cast/logging/stats_event_subscriber_unittest.cc b/media/cast/logging/stats_event_subscriber_unittest.cc
index 903f640..dd699921 100644
--- a/media/cast/logging/stats_event_subscriber_unittest.cc
+++ b/media/cast/logging/stats_event_subscriber_unittest.cc
@@ -36,9 +36,8 @@
                                               task_runner_,
                                               task_runner_,
                                               task_runner_)),
-        fake_offset_estimator_(
-            base::TimeDelta::FromSeconds(kReceiverOffsetSecs)) {
-    receiver_clock_.Advance(base::TimeDelta::FromSeconds(kReceiverOffsetSecs));
+        fake_offset_estimator_(base::Seconds(kReceiverOffsetSecs)) {
+    receiver_clock_.Advance(base::Seconds(kReceiverOffsetSecs));
     cast_environment_->logger()->Subscribe(&fake_offset_estimator_);
   }
 
@@ -89,7 +88,7 @@
     cast_environment_->logger()->DispatchFrameEvent(
         std::move(capture_begin_event));
 
-    AdvanceClocks(base::TimeDelta::FromMicroseconds(10));
+    AdvanceClocks(base::Microseconds(10));
     std::unique_ptr<FrameEvent> capture_end_event(new FrameEvent());
     capture_end_event->timestamp = sender_clock_.NowTicks();
     capture_end_event->type = FRAME_CAPTURE_END;
@@ -99,7 +98,7 @@
         std::move(capture_end_event));
 
     if (i % 2 == 0) {
-      AdvanceClocks(base::TimeDelta::FromMicroseconds(10));
+      AdvanceClocks(base::Microseconds(10));
       std::unique_ptr<FrameEvent> encode_event(new FrameEvent());
       encode_event->timestamp = sender_clock_.NowTicks();
       encode_event->type = FRAME_ENCODED;
@@ -115,7 +114,7 @@
     } else if (i < extra_frames) {
       dropped_frames++;
     }
-    AdvanceClocks(base::TimeDelta::FromMicroseconds(34567));
+    AdvanceClocks(base::Microseconds(34567));
     rtp_timestamp += RtpTimeDelta::FromTicks(90);
     frame_id++;
   }
@@ -154,7 +153,7 @@
   FrameId frame_id = FrameId::first();
   int num_frames = 10;
   base::TimeTicks start_time = sender_clock_.NowTicks();
-  AdvanceClocks(base::TimeDelta::FromMicroseconds(35678));
+  AdvanceClocks(base::Microseconds(35678));
   base::TimeTicks first_event_time = sender_clock_.NowTicks();
   base::TimeTicks last_event_time;
   int total_size = 0;
@@ -175,7 +174,7 @@
     cast_environment_->logger()->DispatchFrameEvent(std::move(encode_event));
     last_event_time = sender_clock_.NowTicks();
 
-    AdvanceClocks(base::TimeDelta::FromMicroseconds(35678));
+    AdvanceClocks(base::Microseconds(35678));
     rtp_timestamp += RtpTimeDelta::FromTicks(90);
     frame_id++;
   }
@@ -227,7 +226,7 @@
     decode_event->frame_id = frame_id;
     cast_environment_->logger()->DispatchFrameEvent(std::move(decode_event));
 
-    AdvanceClocks(base::TimeDelta::FromMicroseconds(36789));
+    AdvanceClocks(base::Microseconds(36789));
     rtp_timestamp += RtpTimeDelta::FromTicks(90);
     frame_id++;
   }
@@ -252,7 +251,7 @@
   int num_frames = 10;
   int late_frames = 0;
   for (int i = 0, delay_ms = -50; i < num_frames; i++, delay_ms += 10) {
-    base::TimeDelta delay = base::TimeDelta::FromMilliseconds(delay_ms);
+    base::TimeDelta delay = base::Milliseconds(delay_ms);
     if (delay_ms > 0)
       late_frames++;
     std::unique_ptr<FrameEvent> playout_event(new FrameEvent());
@@ -264,7 +263,7 @@
     playout_event->delay_delta = delay;
     cast_environment_->logger()->DispatchFrameEvent(std::move(playout_event));
 
-    AdvanceClocks(base::TimeDelta::FromMicroseconds(37890));
+    AdvanceClocks(base::Microseconds(37890));
     rtp_timestamp += RtpTimeDelta::FromTicks(90);
     frame_id++;
   }
@@ -295,11 +294,11 @@
         std::move(capture_begin_event));
 
     int latency_micros = 100000 + base::RandInt(-5000, 50000);
-    base::TimeDelta latency = base::TimeDelta::FromMicroseconds(latency_micros);
+    base::TimeDelta latency = base::Microseconds(latency_micros);
     AdvanceClocks(latency);
 
     int delay_micros = base::RandInt(-50000, 50000);
-    base::TimeDelta delay = base::TimeDelta::FromMilliseconds(delay_micros);
+    base::TimeDelta delay = base::Milliseconds(delay_micros);
     total_latency += latency;
 
     std::unique_ptr<FrameEvent> playout_event(new FrameEvent());
@@ -373,7 +372,7 @@
     total_queueing_latency += sender_clock_.NowTicks() - sender_encoded_time;
 
     int latency_micros = 20000 + base::RandInt(-10000, 10000);
-    base::TimeDelta latency = base::TimeDelta::FromMicroseconds(latency_micros);
+    base::TimeDelta latency = base::Microseconds(latency_micros);
     // Latency is only recorded for packets that aren't retransmitted.
     if (i % 2 != 0) {
       total_network_latency += latency;
@@ -387,7 +386,7 @@
     base::TimeTicks received_time = receiver_clock_.NowTicks();
 
     // Retransmission 1.
-    AdvanceClocks(base::TimeDelta::FromMicroseconds(12345));
+    AdvanceClocks(base::Microseconds(12345));
     if (i % 2 == 0) {
       std::unique_ptr<PacketEvent> retransmit_event(new PacketEvent());
       retransmit_event->timestamp = receiver_clock_.NowTicks();
@@ -407,7 +406,7 @@
     }
 
     // Retransmission 2.
-    AdvanceClocks(base::TimeDelta::FromMicroseconds(13456));
+    AdvanceClocks(base::Microseconds(13456));
     if (i % 4 == 0) {
       std::unique_ptr<PacketEvent> retransmit_event(new PacketEvent());
       retransmit_event->timestamp = receiver_clock_.NowTicks();
@@ -427,7 +426,7 @@
     }
 
     // Retransmission 3.
-    AdvanceClocks(base::TimeDelta::FromMicroseconds(14567));
+    AdvanceClocks(base::Microseconds(14567));
     if (i % 8 == 0) {
       std::unique_ptr<PacketEvent> retransmit_event(new PacketEvent());
       retransmit_event->timestamp = receiver_clock_.NowTicks();
@@ -549,7 +548,7 @@
 
 TEST_F(StatsEventSubscriberTest, Histograms) {
   Init(VIDEO_EVENT);
-  AdvanceClocks(base::TimeDelta::FromMilliseconds(123));
+  AdvanceClocks(base::Milliseconds(123));
 
   RtpTimeTicks rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(123));
   FrameId frame_id = FrameId::first();
@@ -568,7 +567,7 @@
     cast_environment_->logger()->DispatchFrameEvent(
         std::move(capture_begin_event));
 
-    AdvanceClocks(base::TimeDelta::FromMilliseconds(10));
+    AdvanceClocks(base::Milliseconds(10));
     std::unique_ptr<FrameEvent> capture_end_event(new FrameEvent());
     capture_end_event->timestamp = sender_clock_.NowTicks();
     capture_end_event->type = FRAME_CAPTURE_END;
@@ -577,7 +576,7 @@
     cast_environment_->logger()->DispatchFrameEvent(
         std::move(capture_end_event));
 
-    AdvanceClocks(base::TimeDelta::FromMilliseconds(15));
+    AdvanceClocks(base::Milliseconds(15));
     std::unique_ptr<FrameEvent> encode_event(new FrameEvent());
     encode_event->timestamp = sender_clock_.NowTicks();
     encode_event->type = FRAME_ENCODED;
@@ -595,7 +594,7 @@
   // Send 3 packets for the last frame.
   // Queueing latencies are 100ms, 200ms and 300ms.
   for (int i = 0; i < 3; ++i) {
-    AdvanceClocks(base::TimeDelta::FromMilliseconds(100));
+    AdvanceClocks(base::Milliseconds(100));
     std::unique_ptr<PacketEvent> send_event(new PacketEvent());
     send_event->timestamp = sender_clock_.NowTicks();
     send_event->type = PACKET_SENT_TO_NETWORK;
@@ -611,7 +610,7 @@
   // Receive 3 packets for the last frame.
   // Network latencies are 100ms, 200ms and 300ms.
   // Packet latencies are 400ms.
-  AdvanceClocks(base::TimeDelta::FromMilliseconds(100));
+  AdvanceClocks(base::Milliseconds(100));
   for (int i = 0; i < 3; ++i) {
     std::unique_ptr<PacketEvent> receive_event(new PacketEvent());
     receive_event->timestamp = receiver_clock_.NowTicks();
@@ -631,7 +630,7 @@
   playout_event->media_type = VIDEO_EVENT;
   playout_event->rtp_timestamp = rtp_timestamp;
   playout_event->frame_id = frame_id;
-  playout_event->delay_delta = base::TimeDelta::FromMilliseconds(100);
+  playout_event->delay_delta = base::Milliseconds(100);
   cast_environment_->logger()->DispatchFrameEvent(std::move(playout_event));
 
   StatsEventSubscriber::SimpleHistogram* histogram;
diff --git a/media/cast/net/cast_transport_impl_unittest.cc b/media/cast/net/cast_transport_impl_unittest.cc
index 32c1e5c..b38905a 100644
--- a/media/cast/net/cast_transport_impl_unittest.cc
+++ b/media/cast/net/cast_transport_impl_unittest.cc
@@ -90,8 +90,7 @@
 
  protected:
   CastTransportImplTest() : num_times_logging_callback_called_(0) {
-    testing_clock_.Advance(
-        base::TimeDelta::FromMilliseconds(kStartMillisecond));
+    testing_clock_.Advance(base::Milliseconds(kStartMillisecond));
     task_runner_ = new FakeSingleThreadTaskRunner(&testing_clock_);
   }
 
@@ -178,7 +177,7 @@
 void CastTransportImplTest::InitWithLogging() {
   transport_ = new FakePacketSender();
   transport_sender_ = std::make_unique<CastTransportImpl>(
-      &testing_clock_, base::TimeDelta::FromMilliseconds(10),
+      &testing_clock_, base::Milliseconds(10),
       std::make_unique<TransportClient>(this), base::WrapUnique(transport_),
       task_runner_);
   task_runner_->RunTasks();
@@ -186,20 +185,20 @@
 
 TEST_F(CastTransportImplTest, InitWithoutLogging) {
   InitWithoutLogging();
-  task_runner_->Sleep(base::TimeDelta::FromMilliseconds(50));
+  task_runner_->Sleep(base::Milliseconds(50));
   EXPECT_EQ(0, num_times_logging_callback_called_);
 }
 
 TEST_F(CastTransportImplTest, InitWithOptions) {
   InitWithOptions();
-  task_runner_->Sleep(base::TimeDelta::FromMilliseconds(50));
+  task_runner_->Sleep(base::Milliseconds(50));
   EXPECT_EQ(0, num_times_logging_callback_called_);
 }
 
 TEST_F(CastTransportImplTest, NacksCancelRetransmits) {
   InitWithLogging();
   InitializeVideo();
-  task_runner_->Sleep(base::TimeDelta::FromMilliseconds(50));
+  task_runner_->Sleep(base::Milliseconds(50));
   EXPECT_EQ(0, num_times_logging_callback_called_);
 
   // A fake frame that will be decomposed into 4 packets.
@@ -211,7 +210,7 @@
   fake_frame.data.resize(5000, ' ');
 
   transport_sender_->InsertFrame(kVideoSsrc, fake_frame);
-  task_runner_->Sleep(base::TimeDelta::FromMilliseconds(10));
+  task_runner_->Sleep(base::Milliseconds(10));
   EXPECT_EQ(4, transport_->packets_sent());
   EXPECT_EQ(1, num_times_logging_callback_called_);
 
@@ -223,11 +222,11 @@
 
   transport_->SetPaused(true);
   DedupInfo dedup_info;
-  dedup_info.resend_interval = base::TimeDelta::FromMilliseconds(10);
+  dedup_info.resend_interval = base::Milliseconds(10);
   transport_sender_->ResendPackets(kVideoSsrc, missing_packets, true,
                                    dedup_info);
 
-  task_runner_->Sleep(base::TimeDelta::FromMilliseconds(10));
+  task_runner_->Sleep(base::Milliseconds(10));
   EXPECT_EQ(2, num_times_logging_callback_called_);
 
   RtcpCastMessage cast_message;
@@ -236,7 +235,7 @@
   cast_message.missing_frames_and_packets[fake_frame.frame_id].insert(3);
   transport_sender_->OnReceivedCastMessage(kVideoSsrc, cast_message);
   transport_->SetPaused(false);
-  task_runner_->Sleep(base::TimeDelta::FromMilliseconds(10));
+  task_runner_->Sleep(base::Milliseconds(10));
   EXPECT_EQ(3, num_times_logging_callback_called_);
 
   // Resend one packet in the socket when unpaused.
@@ -247,7 +246,7 @@
 TEST_F(CastTransportImplTest, CancelRetransmits) {
   InitWithLogging();
   InitializeVideo();
-  task_runner_->Sleep(base::TimeDelta::FromMilliseconds(50));
+  task_runner_->Sleep(base::Milliseconds(50));
   EXPECT_EQ(0, num_times_logging_callback_called_);
 
   // A fake frame that will be decomposed into 4 packets.
@@ -259,7 +258,7 @@
   fake_frame.data.resize(5000, ' ');
 
   transport_sender_->InsertFrame(kVideoSsrc, fake_frame);
-  task_runner_->Sleep(base::TimeDelta::FromMilliseconds(10));
+  task_runner_->Sleep(base::Milliseconds(10));
   EXPECT_EQ(4, transport_->packets_sent());
   EXPECT_EQ(1, num_times_logging_callback_called_);
 
@@ -269,18 +268,18 @@
 
   transport_->SetPaused(true);
   DedupInfo dedup_info;
-  dedup_info.resend_interval = base::TimeDelta::FromMilliseconds(10);
+  dedup_info.resend_interval = base::Milliseconds(10);
   transport_sender_->ResendPackets(kVideoSsrc, missing_packets, true,
                                    dedup_info);
 
-  task_runner_->Sleep(base::TimeDelta::FromMilliseconds(10));
+  task_runner_->Sleep(base::Milliseconds(10));
   EXPECT_EQ(2, num_times_logging_callback_called_);
 
   std::vector<FrameId> cancel_sending_frames;
   cancel_sending_frames.push_back(fake_frame.frame_id);
   transport_sender_->CancelSendingFrames(kVideoSsrc, cancel_sending_frames);
   transport_->SetPaused(false);
-  task_runner_->Sleep(base::TimeDelta::FromMilliseconds(10));
+  task_runner_->Sleep(base::Milliseconds(10));
   EXPECT_EQ(2, num_times_logging_callback_called_);
 
   // Resend one packet in the socket when unpaused.
@@ -290,7 +289,7 @@
 TEST_F(CastTransportImplTest, Kickstart) {
   InitWithLogging();
   InitializeVideo();
-  task_runner_->Sleep(base::TimeDelta::FromMilliseconds(50));
+  task_runner_->Sleep(base::Milliseconds(50));
   EXPECT_EQ(0, num_times_logging_callback_called_);
 
   // A fake frame that will be decomposed into 4 packets.
@@ -305,7 +304,7 @@
   transport_sender_->InsertFrame(kVideoSsrc, fake_frame);
   transport_sender_->ResendFrameForKickstart(kVideoSsrc, fake_frame.frame_id);
   transport_->SetPaused(false);
-  task_runner_->Sleep(base::TimeDelta::FromMilliseconds(10));
+  task_runner_->Sleep(base::Milliseconds(10));
   EXPECT_EQ(4, transport_->packets_sent());
   EXPECT_EQ(1, num_times_logging_callback_called_);
 
@@ -316,12 +315,12 @@
 
   transport_->SetPaused(true);
   DedupInfo dedup_info;
-  dedup_info.resend_interval = base::TimeDelta::FromMilliseconds(10);
+  dedup_info.resend_interval = base::Milliseconds(10);
   transport_sender_->ResendPackets(kVideoSsrc, missing_packets, true,
                                    dedup_info);
   transport_sender_->ResendFrameForKickstart(kVideoSsrc, fake_frame.frame_id);
   transport_->SetPaused(false);
-  task_runner_->Sleep(base::TimeDelta::FromMilliseconds(10));
+  task_runner_->Sleep(base::Milliseconds(10));
   EXPECT_EQ(2, num_times_logging_callback_called_);
 
   // Resend one packet in the socket when unpaused.
@@ -333,7 +332,7 @@
   InitWithLogging();
   InitializeAudio();
   InitializeVideo();
-  task_runner_->Sleep(base::TimeDelta::FromMilliseconds(50));
+  task_runner_->Sleep(base::Milliseconds(50));
   EXPECT_EQ(0, num_times_logging_callback_called_);
 
   // Send two audio frames.
@@ -344,11 +343,11 @@
   fake_audio.dependency = EncodedFrame::KEY;
   fake_audio.data.resize(100, ' ');
   transport_sender_->InsertFrame(kAudioSsrc, fake_audio);
-  task_runner_->Sleep(base::TimeDelta::FromMilliseconds(2));
+  task_runner_->Sleep(base::Milliseconds(2));
   fake_audio.frame_id = FrameId::first() + 2;
   fake_audio.reference_time = testing_clock_.NowTicks();
   transport_sender_->InsertFrame(kAudioSsrc, fake_audio);
-  task_runner_->Sleep(base::TimeDelta::FromMilliseconds(2));
+  task_runner_->Sleep(base::Milliseconds(2));
   EXPECT_EQ(2, transport_->packets_sent());
 
   // Ack the first audio frame.
@@ -375,7 +374,7 @@
   cast_message.remote_ssrc = kVideoSsrc;
   cast_message.ack_frame_id = FrameId::first();
   cast_message.missing_frames_and_packets[fake_video.frame_id].insert(3);
-  task_runner_->Sleep(base::TimeDelta::FromMilliseconds(10));
+  task_runner_->Sleep(base::Milliseconds(10));
   transport_sender_->OnReceivedCastMessage(kVideoSsrc, cast_message);
   task_runner_->RunTasks();
   EXPECT_EQ(6, transport_->packets_sent());
@@ -385,7 +384,7 @@
   cast_message.remote_ssrc = kAudioSsrc;
   cast_message.ack_frame_id = FrameId::first() + 2;
   cast_message.missing_frames_and_packets.clear();
-  task_runner_->Sleep(base::TimeDelta::FromMilliseconds(2));
+  task_runner_->Sleep(base::Milliseconds(2));
   transport_sender_->OnReceivedCastMessage(kAudioSsrc, cast_message);
   task_runner_->RunTasks();
   EXPECT_EQ(6, transport_->packets_sent());
@@ -395,13 +394,13 @@
   cast_message.remote_ssrc = kVideoSsrc;
   cast_message.ack_frame_id = FrameId::first() + 1;
   cast_message.missing_frames_and_packets[fake_video.frame_id].insert(3);
-  task_runner_->Sleep(base::TimeDelta::FromMilliseconds(2));
+  task_runner_->Sleep(base::Milliseconds(2));
   transport_sender_->OnReceivedCastMessage(kVideoSsrc, cast_message);
   task_runner_->RunTasks();
   EXPECT_EQ(7, transport_->packets_sent());
   EXPECT_EQ(1, num_times_logging_callback_called_);  // Only 8 ms since last.
 
-  task_runner_->Sleep(base::TimeDelta::FromMilliseconds(2));
+  task_runner_->Sleep(base::Milliseconds(2));
   EXPECT_EQ(2, num_times_logging_callback_called_);
 }
 
diff --git a/media/cast/net/pacing/paced_sender.cc b/media/cast/net/pacing/paced_sender.cc
index 62317fc0..09a815c 100644
--- a/media/cast/net/pacing/paced_sender.cc
+++ b/media/cast/net/pacing/paced_sender.cc
@@ -334,7 +334,7 @@
   if (now >= burst_end_ || previous_state == State_BurstFull) {
     // Start a new burst.
     current_burst_size_ = 0;
-    burst_end_ = now + base::TimeDelta::FromMilliseconds(kPacingIntervalMs);
+    burst_end_ = now + base::Milliseconds(kPacingIntervalMs);
 
     // The goal here is to try to send out the queued packets over the next
     // three bursts, while trying to keep the burst size below 10 if possible.
diff --git a/media/cast/net/pacing/paced_sender_unittest.cc b/media/cast/net/pacing/paced_sender_unittest.cc
index 84cb6f62..ad1fc80 100644
--- a/media/cast/net/pacing/paced_sender_unittest.cc
+++ b/media/cast/net/pacing/paced_sender_unittest.cc
@@ -93,8 +93,7 @@
 class PacedSenderTest : public ::testing::Test {
  protected:
   PacedSenderTest() {
-    testing_clock_.Advance(
-        base::TimeDelta::FromMilliseconds(kStartMillisecond));
+    testing_clock_.Advance(base::Milliseconds(kStartMillisecond));
     task_runner_ = new FakeSingleThreadTaskRunner(&testing_clock_);
     paced_sender_ = std::make_unique<PacedSender>(
         kTargetBurstSize, kMaxBurstSize, &testing_clock_, &packet_events_,
@@ -115,7 +114,7 @@
     base::TimeTicks frame_tick = testing_clock_.NowTicks();
     // Advance the clock so that we don't get the same |frame_tick|
     // next time this function is called.
-    testing_clock_.Advance(base::TimeDelta::FromMilliseconds(1));
+    testing_clock_.Advance(base::Milliseconds(1));
     for (int i = 0; i < num_of_packets_in_frame; ++i) {
       PacketKey key(frame_tick, audio ? kAudioSsrc : kVideoSsrc,
                     FrameId::first(), i);
@@ -146,7 +145,7 @@
           packets.begin() + i,
           packets.begin() + i + std::min(packets.size() - i, kBatchSize));
       ASSERT_TRUE(paced_sender_->SendPackets(next_batch));
-      testing_clock_.Advance(base::TimeDelta::FromMilliseconds(10));
+      testing_clock_.Advance(base::Milliseconds(10));
       task_runner_->RunTasks();
     }
   }
@@ -155,7 +154,7 @@
   // to test the pacing implementation details.
   bool RunUntilEmpty(int max_tries) {
     for (int i = 0; i < max_tries; i++) {
-      testing_clock_.Advance(base::TimeDelta::FromMilliseconds(10));
+      testing_clock_.Advance(base::Milliseconds(10));
       task_runner_->RunTasks();
       if (mock_transport_.expecting_nothing_else())
         return true;
@@ -201,12 +200,12 @@
   // Check that we get the next burst.
   mock_transport_.AddExpectedSizesAndPacketIds(kSize1, UINT16_C(10), 10);
 
-  base::TimeDelta timeout = base::TimeDelta::FromMilliseconds(10);
+  base::TimeDelta timeout = base::Milliseconds(10);
   testing_clock_.Advance(timeout);
   task_runner_->RunTasks();
 
   // If we call process too early make sure we don't send any packets.
-  timeout = base::TimeDelta::FromMilliseconds(5);
+  timeout = base::Milliseconds(5);
   testing_clock_.Advance(timeout);
   task_runner_->RunTasks();
 
@@ -258,7 +257,7 @@
 
   // Check that we get the first NACK burst.
   mock_transport_.AddExpectedSizesAndPacketIds(kNackSize, UINT16_C(0), 10);
-  base::TimeDelta timeout = base::TimeDelta::FromMilliseconds(10);
+  base::TimeDelta timeout = base::Milliseconds(10);
   testing_clock_.Advance(timeout);
   task_runner_->RunTasks();
 
@@ -338,7 +337,7 @@
   SendPacketVector fourth_frame_packets =
       CreateSendPacketVector(kSize4, num_of_packets_in_frame, false);
 
-  base::TimeDelta timeout_10ms = base::TimeDelta::FromMilliseconds(10);
+  base::TimeDelta timeout_10ms = base::Milliseconds(10);
 
   // Check that the first burst of the frame go out on the wire.
   mock_transport_.AddExpectedSizesAndPacketIds(kSize1, UINT16_C(0), 10);
@@ -348,12 +347,12 @@
   testing_clock_.Advance(timeout_10ms);
   task_runner_->RunTasks();
 
-  testing_clock_.Advance(base::TimeDelta::FromMilliseconds(6));
+  testing_clock_.Advance(base::Milliseconds(6));
 
   // Add second frame, after 16 ms.
   mock_transport_.AddExpectedSizesAndPacketIds(kSize2, UINT16_C(0), 3);
   EXPECT_TRUE(paced_sender_->SendPackets(second_frame_packets));
-  testing_clock_.Advance(base::TimeDelta::FromMilliseconds(4));
+  testing_clock_.Advance(base::Milliseconds(4));
 
   mock_transport_.AddExpectedSizesAndPacketIds(kSize2, UINT16_C(3), 10);
   testing_clock_.Advance(timeout_10ms);
@@ -363,14 +362,14 @@
   testing_clock_.Advance(timeout_10ms);
   task_runner_->RunTasks();
 
-  testing_clock_.Advance(base::TimeDelta::FromMilliseconds(3));
+  testing_clock_.Advance(base::Milliseconds(3));
 
   // Add third frame, after 33 ms.
   mock_transport_.AddExpectedSizesAndPacketIds(kSize3, UINT16_C(0), 6);
   EXPECT_TRUE(paced_sender_->SendPackets(third_frame_packets));
 
   mock_transport_.AddExpectedSizesAndPacketIds(kSize3, UINT16_C(6), 10);
-  testing_clock_.Advance(base::TimeDelta::FromMilliseconds(7));
+  testing_clock_.Advance(base::Milliseconds(7));
   task_runner_->RunTasks();
 
   // Add fourth frame, after 50 ms.
@@ -412,14 +411,14 @@
 
   // Retransmission packets with the earlier timestamp.
   SendPacketVector resend_packets = CreateSendPacketVector(kSize4, 10, false);
-  testing_clock_.Advance(base::TimeDelta::FromMilliseconds(10));
+  testing_clock_.Advance(base::Milliseconds(10));
 
   // Send 20 normal video packets. Only 10 will be sent in this
   // call, the rest will be sitting in the queue waiting for pacing.
   EXPECT_TRUE(
       paced_sender_->SendPackets(CreateSendPacketVector(kSize2, 20, false)));
 
-  testing_clock_.Advance(base::TimeDelta::FromMilliseconds(10));
+  testing_clock_.Advance(base::Milliseconds(10));
 
   // Send normal audio packet. This is queued and will be sent
   // earlier than video packets.
@@ -487,16 +486,16 @@
   SendPacketVector packets = CreateSendPacketVector(kSize1, 1, true);
   mock_transport_.AddExpectedSizesAndPacketIds(kSize1, UINT16_C(0), 1);
   EXPECT_TRUE(paced_sender_->SendPackets(packets));
-  testing_clock_.Advance(base::TimeDelta::FromMilliseconds(10));
+  testing_clock_.Advance(base::Milliseconds(10));
 
   DedupInfo dedup_info;
-  dedup_info.resend_interval = base::TimeDelta::FromMilliseconds(20);
+  dedup_info.resend_interval = base::Milliseconds(20);
 
   // This packet will not be sent.
   EXPECT_TRUE(paced_sender_->ResendPackets(packets, dedup_info));
   EXPECT_EQ(static_cast<int64_t>(kSize1), mock_transport_.GetBytesSent());
 
-  dedup_info.resend_interval = base::TimeDelta::FromMilliseconds(5);
+  dedup_info.resend_interval = base::Milliseconds(5);
   mock_transport_.AddExpectedSizesAndPacketIds(kSize1, UINT16_C(0), 1);
   EXPECT_TRUE(paced_sender_->ResendPackets(packets, dedup_info));
   EXPECT_EQ(static_cast<int64_t>(2 * kSize1), mock_transport_.GetBytesSent());
diff --git a/media/cast/net/rtcp/receiver_rtcp_event_subscriber_unittest.cc b/media/cast/net/rtcp/receiver_rtcp_event_subscriber_unittest.cc
index 9345660..dfc4cbe 100644
--- a/media/cast/net/rtcp/receiver_rtcp_event_subscriber_unittest.cc
+++ b/media/cast/net/rtcp/receiver_rtcp_event_subscriber_unittest.cc
@@ -60,7 +60,7 @@
     playout_event->media_type = VIDEO_EVENT;
     playout_event->rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(100));
     playout_event->frame_id = FrameId::first() + 2;
-    playout_event->delay_delta = base::TimeDelta::FromMilliseconds(kDelayMs);
+    playout_event->delay_delta = base::Milliseconds(kDelayMs);
     cast_environment_->logger()->DispatchFrameEvent(std::move(playout_event));
 
     std::unique_ptr<FrameEvent> decode_event(new FrameEvent());
@@ -89,7 +89,7 @@
     playout_event->media_type = AUDIO_EVENT;
     playout_event->rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(300));
     playout_event->frame_id = FrameId::first() + 4;
-    playout_event->delay_delta = base::TimeDelta::FromMilliseconds(kDelayMs);
+    playout_event->delay_delta = base::Milliseconds(kDelayMs);
     cast_environment_->logger()->DispatchFrameEvent(std::move(playout_event));
 
     decode_event = std::make_unique<FrameEvent>();
diff --git a/media/cast/net/rtcp/receiver_rtcp_session.cc b/media/cast/net/rtcp/receiver_rtcp_session.cc
index 3544cbd8..547a1e7 100644
--- a/media/cast/net/rtcp/receiver_rtcp_session.cc
+++ b/media/cast/net/rtcp/receiver_rtcp_session.cc
@@ -109,8 +109,7 @@
       local_clock_ahead_by_.Current();
 
   // Sanity-check: Getting regular lip sync updates?
-  DCHECK((clock_->NowTicks() - local_reference_time) <
-         base::TimeDelta::FromMinutes(1));
+  DCHECK((clock_->NowTicks() - local_reference_time) < base::Minutes(1));
 
   *rtp_timestamp = lip_sync_rtp_timestamp_;
   *reference_time = local_reference_time;
diff --git a/media/cast/net/rtcp/rtcp_builder_unittest.cc b/media/cast/net/rtcp/rtcp_builder_unittest.cc
index 7162d65a..a75410c 100644
--- a/media/cast/net/rtcp/rtcp_builder_unittest.cc
+++ b/media/cast/net/rtcp/rtcp_builder_unittest.cc
@@ -26,8 +26,7 @@
 namespace {
 static const uint32_t kSendingSsrc = 0x12345678;
 static const uint32_t kMediaSsrc = 0x87654321;
-static const base::TimeDelta kDefaultDelay =
-    base::TimeDelta::FromMilliseconds(100);
+static const base::TimeDelta kDefaultDelay = base::Milliseconds(100);
 
 RtcpReportBlock GetReportBlock() {
   RtcpReportBlock report_block;
@@ -227,7 +226,7 @@
                                        nullptr, &rtcp_events, kDefaultDelay));
 
   base::SimpleTestTickClock testing_clock;
-  testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs));
+  testing_clock.Advance(base::Milliseconds(kTimeBaseMs));
 
   p.AddReceiverLog(kSendingSsrc);
   p.AddReceiverFrameLog(test_rtp_timestamp().lower_32_bits(), 2, kTimeBaseMs);
@@ -240,7 +239,7 @@
   frame_event.media_type = VIDEO_EVENT;
   frame_event.timestamp = testing_clock.NowTicks();
   event_subscriber.OnReceiveFrameEvent(frame_event);
-  testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs));
+  testing_clock.Advance(base::Milliseconds(kTimeDelayMs));
 
   PacketEvent packet_event;
   packet_event.rtp_timestamp = test_rtp_timestamp();
@@ -268,7 +267,7 @@
   RtcpReportBlock report_block = GetReportBlock();
 
   base::SimpleTestTickClock testing_clock;
-  testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs));
+  testing_clock.Advance(base::Milliseconds(kTimeBaseMs));
 
   p.AddReceiverLog(kSendingSsrc);
 
@@ -296,7 +295,7 @@
     packet_event.timestamp = testing_clock.NowTicks();
     packet_event.packet_id = kLostPacketId1;
     event_subscriber.OnReceivePacketEvent(packet_event);
-    testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs));
+    testing_clock.Advance(base::Milliseconds(kTimeDelayMs));
   }
 
   ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events;
@@ -318,7 +317,7 @@
   RtcpReportBlock report_block = GetReportBlock();
 
   base::SimpleTestTickClock testing_clock;
-  testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs));
+  testing_clock.Advance(base::Milliseconds(kTimeBaseMs));
 
   p.AddReceiverLog(kSendingSsrc);
 
@@ -341,7 +340,7 @@
     frame_event.media_type = VIDEO_EVENT;
     frame_event.timestamp = testing_clock.NowTicks();
     event_subscriber.OnReceiveFrameEvent(frame_event);
-    testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs));
+    testing_clock.Advance(base::Milliseconds(kTimeDelayMs));
   }
 
   ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events;
@@ -362,7 +361,7 @@
   RtcpReportBlock report_block = GetReportBlock();
 
   base::SimpleTestTickClock testing_clock;
-  testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs));
+  testing_clock.Advance(base::Milliseconds(kTimeBaseMs));
 
   p.AddReceiverLog(kSendingSsrc);
 
@@ -384,8 +383,7 @@
     frame_event.media_type = VIDEO_EVENT;
     frame_event.timestamp = testing_clock.NowTicks();
     event_subscriber.OnReceiveFrameEvent(frame_event);
-    testing_clock.Advance(
-        base::TimeDelta::FromMilliseconds(kTimeBetweenEventsMs));
+    testing_clock.Advance(base::Milliseconds(kTimeBetweenEventsMs));
   }
 
   ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events;
@@ -403,7 +401,7 @@
   RtcpReportBlock report_block = GetReportBlock();
 
   base::SimpleTestTickClock testing_clock;
-  testing_clock.Advance(base::TimeDelta::FromMilliseconds(time_base_ms));
+  testing_clock.Advance(base::Milliseconds(time_base_ms));
 
   ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT);
   size_t packet_count = kNumResends * kResendDelay + 10;
@@ -439,8 +437,7 @@
                    BuildRtcpFromReceiver(&report_block, nullptr, nullptr,
                                          nullptr, &rtcp_events, kDefaultDelay));
 
-    testing_clock.Advance(
-        base::TimeDelta::FromMilliseconds(kTimeBetweenEventsMs));
+    testing_clock.Advance(base::Milliseconds(kTimeBetweenEventsMs));
     time_base_ms += kTimeBetweenEventsMs;
   }
 }
diff --git a/media/cast/net/rtcp/rtcp_unittest.cc b/media/cast/net/rtcp/rtcp_unittest.cc
index ed2fab8..db53457c3 100644
--- a/media/cast/net/rtcp/rtcp_unittest.cc
+++ b/media/cast/net/rtcp/rtcp_unittest.cc
@@ -41,7 +41,7 @@
 class FakeRtcpTransport : public PacedPacketSender {
  public:
   explicit FakeRtcpTransport(base::SimpleTestTickClock* clock)
-      : clock_(clock), packet_delay_(base::TimeDelta::FromMilliseconds(42)) {}
+      : clock_(clock), packet_delay_(base::Milliseconds(42)) {}
 
   void set_rtcp_destination(RtcpSession* rtcp_session) {
     rtcp_session_ = rtcp_session;
@@ -92,9 +92,8 @@
                               kSenderSsrc),
         received_pli_(false) {
     sender_clock_->Advance(base::TimeTicks::Now() - base::TimeTicks());
-    receiver_clock_->SetSkew(
-        1.0,  // No skew.
-        base::TimeDelta::FromSeconds(kInitialReceiverClockOffsetSeconds));
+    receiver_clock_->SetSkew(1.0,  // No skew.
+                             base::Seconds(kInitialReceiverClockOffsetSeconds));
 
     rtp_sender_pacer_.set_rtcp_destination(&rtcp_at_rtp_receiver_);
     rtp_receiver_pacer_.set_rtcp_destination(&rtcp_at_rtp_sender_);
@@ -215,7 +214,7 @@
   const base::TimeTicks rolled_back_time =
       (reference_time -
        // Roll-back relative clock offset:
-       base::TimeDelta::FromSeconds(kInitialReceiverClockOffsetSeconds) -
+       base::Seconds(kInitialReceiverClockOffsetSeconds) -
        // Roll-back packet transmission time (because RTT is not yet known):
        rtp_sender_pacer_.packet_delay());
   EXPECT_NEAR(0, (reference_time_sent - rolled_back_time).InMicroseconds(), 5);
@@ -233,7 +232,7 @@
   base::TimeDelta expected_rtt_according_to_sender;
   for (int i = 0; i < iterations; ++i) {
     const base::TimeDelta one_way_trip_time =
-        base::TimeDelta::FromMilliseconds(static_cast<int64_t>(1) << i);
+        base::Milliseconds(static_cast<int64_t>(1) << i);
     rtp_sender_pacer_.set_packet_delay(one_way_trip_time);
     rtp_receiver_pacer_.set_packet_delay(one_way_trip_time);
 
@@ -282,7 +281,7 @@
       rtcp_at_rtp_receiver_.local_ssrc(),
       BuildRtcpPacketFromRtpReceiver(
           CreateRtcpTimeData(base::TimeTicks()), &cast_message, nullptr,
-          base::TimeDelta::FromMilliseconds(kTargetDelayMs), nullptr, nullptr));
+          base::Milliseconds(kTargetDelayMs), nullptr, nullptr));
 
   EXPECT_EQ(last_cast_message_.ack_frame_id, cast_message.ack_frame_id);
   EXPECT_EQ(last_cast_message_.target_delay_ms, kTargetDelayMs);
@@ -315,8 +314,7 @@
       rtcp_at_rtp_receiver_.local_ssrc(),
       BuildRtcpPacketFromRtpReceiver(
           CreateRtcpTimeData(receiver_clock_->NowTicks()), &cast_message,
-          nullptr, base::TimeDelta::FromMilliseconds(kTargetDelayMs), nullptr,
-          nullptr));
+          nullptr, base::Milliseconds(kTargetDelayMs), nullptr, nullptr));
 
   // Receiver ACKs first+2, but with a too-old timestamp.
   RtcpCastMessage late_cast_message(kSenderSsrc);
@@ -324,8 +322,7 @@
   rtp_receiver_pacer_.SendRtcpPacket(
       rtcp_at_rtp_receiver_.local_ssrc(),
       BuildRtcpPacketFromRtpReceiver(
-          CreateRtcpTimeData(receiver_clock_->NowTicks() -
-                             base::TimeDelta::FromSeconds(10)),
+          CreateRtcpTimeData(receiver_clock_->NowTicks() - base::Seconds(10)),
           &late_cast_message, nullptr, base::TimeDelta(), nullptr, nullptr));
 
   // Validate data from second packet is dropped.
@@ -347,7 +344,7 @@
   const RtpTimeTicks kRtpTimeStamp =
       media::cast::RtpTimeTicks().Expand(UINT32_C(100));
   const base::TimeTicks kEventTimestamp = receiver_clock_->NowTicks();
-  const base::TimeDelta kDelayDelta = base::TimeDelta::FromMilliseconds(100);
+  const base::TimeDelta kDelayDelta = base::Milliseconds(100);
 
   RtcpEvent event;
   event.type = FRAME_ACK_SENT;
diff --git a/media/cast/net/rtcp/rtcp_utility.cc b/media/cast/net/rtcp/rtcp_utility.cc
index 2cc8ca5..98ead3d 100644
--- a/media/cast/net/rtcp/rtcp_utility.cc
+++ b/media/cast/net/rtcp/rtcp_utility.cc
@@ -252,8 +252,8 @@
       return false;
 
     // We have 24 LSB of the event timestamp base on the wire.
-    base::TimeTicks event_timestamp_base = base::TimeTicks() +
-        base::TimeDelta::FromMilliseconds(data & 0xffffff);
+    base::TimeTicks event_timestamp_base =
+        base::TimeTicks() + base::Milliseconds(data & 0xffffff);
 
     size_t num_events = 1 + static_cast<uint8_t>(data >> 24);
 
@@ -272,13 +272,12 @@
           static_cast<uint8_t>(event_type_and_timestamp_delta >> 12));
       event_log.event_timestamp =
           event_timestamp_base +
-          base::TimeDelta::FromMilliseconds(
-              event_type_and_timestamp_delta & 0xfff);
+          base::Milliseconds(event_type_and_timestamp_delta & 0xfff);
       if (event_log.type == PACKET_RECEIVED) {
         event_log.packet_id = delay_delta_or_packet_id;
       } else {
-        event_log.delay_delta = base::TimeDelta::FromMilliseconds(
-            static_cast<int16_t>(delay_delta_or_packet_id));
+        event_log.delay_delta =
+            base::Milliseconds(static_cast<int16_t>(delay_delta_or_packet_id));
       }
       frame_log.event_log_messages_.push_back(event_log);
     }
@@ -526,9 +525,9 @@
       ntp_seconds * base::Time::kMicrosecondsPerSecond +
       static_cast<int64_t>(std::ceil(ntp_fractions / kMagicFractionalUnit));
 
-  base::TimeDelta elapsed_since_unix_epoch = base::TimeDelta::FromMicroseconds(
-      ntp_time_us -
-      (kUnixEpochInNtpSeconds * base::Time::kMicrosecondsPerSecond));
+  base::TimeDelta elapsed_since_unix_epoch =
+      base::Microseconds(ntp_time_us - (kUnixEpochInNtpSeconds *
+                                        base::Time::kMicrosecondsPerSecond));
   return base::TimeTicks::UnixEpoch() + elapsed_since_unix_epoch;
 }
 
diff --git a/media/cast/net/rtcp/rtcp_utility_unittest.cc b/media/cast/net/rtcp/rtcp_utility_unittest.cc
index 915ff3c..f4d3d08 100644
--- a/media/cast/net/rtcp/rtcp_utility_unittest.cc
+++ b/media/cast/net/rtcp/rtcp_utility_unittest.cc
@@ -22,8 +22,7 @@
 static const uint32_t kRemoteSsrc = 0x10203;
 static const uint32_t kLocalSsrc = 0x40506;
 static const uint32_t kUnknownSsrc = 0xDEAD;
-static const base::TimeDelta kTargetDelay =
-    base::TimeDelta::FromMilliseconds(100);
+static const base::TimeDelta kTargetDelay = base::Milliseconds(100);
 
 class RtcpParserTest : public ::testing::Test {
  protected:
@@ -434,7 +433,7 @@
   static const uint32_t kTimeDelayMs = 10;
   static const uint32_t kDelayDeltaMs = 123;
   base::SimpleTestTickClock testing_clock;
-  testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs));
+  testing_clock.Advance(base::Milliseconds(kTimeBaseMs));
 
   RtcpReceiverLogMessage receiver_log;
   RtcpReceiverFrameLogMessage frame_log(RtpTimeTicks().Expand(kRtpTimestamp));
@@ -442,10 +441,10 @@
 
   event_log.type = FRAME_ACK_SENT;
   event_log.event_timestamp = testing_clock.NowTicks();
-  event_log.delay_delta = base::TimeDelta::FromMilliseconds(kDelayDeltaMs);
+  event_log.delay_delta = base::Milliseconds(kDelayDeltaMs);
   frame_log.event_log_messages_.push_back(event_log);
 
-  testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs));
+  testing_clock.Advance(base::Milliseconds(kTimeDelayMs));
   event_log.type = PACKET_RECEIVED;
   event_log.event_timestamp = testing_clock.NowTicks();
   event_log.packet_id = kLostPacketId1;
@@ -477,7 +476,7 @@
   static const uint32_t kTimeDelayMs = 10;
   static const int kDelayDeltaMs = 123;  // To be varied for every frame.
   base::SimpleTestTickClock testing_clock;
-  testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs));
+  testing_clock.Advance(base::Milliseconds(kTimeBaseMs));
 
   RtcpReceiverLogMessage receiver_log;
 
@@ -486,11 +485,10 @@
     RtcpReceiverEventLogMessage event_log;
     event_log.type = FRAME_ACK_SENT;
     event_log.event_timestamp = testing_clock.NowTicks();
-    event_log.delay_delta =
-        base::TimeDelta::FromMilliseconds((j - 50) * kDelayDeltaMs);
+    event_log.delay_delta = base::Milliseconds((j - 50) * kDelayDeltaMs);
     frame_log.event_log_messages_.push_back(event_log);
     receiver_log.push_back(frame_log);
-    testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs));
+    testing_clock.Advance(base::Milliseconds(kTimeDelayMs));
   }
 
   TestRtcpPacketBuilder p;
@@ -524,7 +522,7 @@
   base::TimeTicks out_1 = ConvertNtpToTimeTicks(ntp_seconds_1, ntp_fraction_1);
   EXPECT_EQ(input_time, out_1);  // Verify inverse.
 
-  base::TimeDelta time_delta = base::TimeDelta::FromMilliseconds(1000);
+  base::TimeDelta time_delta = base::Milliseconds(1000);
   input_time += time_delta;
 
   uint32_t ntp_seconds_2 = 0;
@@ -539,7 +537,7 @@
   EXPECT_EQ((ntp_seconds_2 - ntp_seconds_1), UINT32_C(1));
   EXPECT_NEAR(ntp_fraction_2, ntp_fraction_1, 1);
 
-  time_delta = base::TimeDelta::FromMilliseconds(500);
+  time_delta = base::Milliseconds(500);
   input_time += time_delta;
 
   uint32_t ntp_seconds_3 = 0;
diff --git a/media/cast/net/rtcp/sender_rtcp_session.cc b/media/cast/net/rtcp/sender_rtcp_session.cc
index dba16791..3d974af 100644
--- a/media/cast/net/rtcp/sender_rtcp_session.cc
+++ b/media/cast/net/rtcp/sender_rtcp_session.cc
@@ -39,7 +39,7 @@
   delay_us >>= 16;
   delay_us +=
       ((ntp_delay & 0xffff0000) >> 16) * base::Time::kMicrosecondsPerSecond;
-  return base::TimeDelta::FromMicroseconds(delay_us);
+  return base::Microseconds(delay_us);
 }
 
 // A receiver frame event is identified by frame RTP timestamp, event timestamp
@@ -159,7 +159,7 @@
   // such a level of precision cannot be measured with our approach; and 1 ms is
   // good enough to represent "under 1 ms" for our use cases.
   current_round_trip_time_ =
-      std::max(current_round_trip_time_, base::TimeDelta::FromMilliseconds(1));
+      std::max(current_round_trip_time_, base::Milliseconds(1));
 
   rtcp_observer_->OnReceivedRtt(current_round_trip_time_);
 }
@@ -178,7 +178,7 @@
   last_reports_sent_queue_.push(std::make_pair(last_report, now));
 
   const base::TimeTicks timeout =
-      now - base::TimeDelta::FromMilliseconds(kStatsHistoryWindowMs);
+      now - base::Milliseconds(kStatsHistoryWindowMs);
 
   // Cleanup old statistics older than |timeout|.
   while (!last_reports_sent_queue_.empty()) {
diff --git a/media/cast/net/rtp/rtp_packetizer_unittest.cc b/media/cast/net/rtp/rtp_packetizer_unittest.cc
index 090f137..c0af7df 100644
--- a/media/cast/net/rtp/rtp_packetizer_unittest.cc
+++ b/media/cast/net/rtp/rtp_packetizer_unittest.cc
@@ -134,7 +134,7 @@
   void RunTasks(int during_ms) {
     for (int i = 0; i < during_ms; ++i) {
       // Call process the timers every 1 ms.
-      testing_clock_.Advance(base::TimeDelta::FromMilliseconds(1));
+      testing_clock_.Advance(base::Milliseconds(1));
       task_runner_->RunTasks();
     }
   }
@@ -157,7 +157,7 @@
   transport_->set_expected_number_of_packets(expected_num_of_packets);
   transport_->set_rtp_timestamp(video_frame_.rtp_timestamp);
 
-  testing_clock_.Advance(base::TimeDelta::FromMilliseconds(kTimestampMs));
+  testing_clock_.Advance(base::Milliseconds(kTimestampMs));
   video_frame_.reference_time = testing_clock_.NowTicks();
   rtp_packetizer_->SendFrameAsPackets(video_frame_);
   RunTasks(33 + 1);
@@ -169,7 +169,7 @@
   transport_->set_expected_number_of_packets(expected_num_of_packets);
   transport_->set_rtp_timestamp(video_frame_.rtp_timestamp);
 
-  testing_clock_.Advance(base::TimeDelta::FromMilliseconds(kTimestampMs));
+  testing_clock_.Advance(base::Milliseconds(kTimestampMs));
   video_frame_.reference_time = testing_clock_.NowTicks();
   video_frame_.new_playout_delay_ms = 500;
   rtp_packetizer_->SendFrameAsPackets(video_frame_);
@@ -185,7 +185,7 @@
   transport_->set_expected_number_of_packets(expected_num_of_packets);
   transport_->set_rtp_timestamp(video_frame_.rtp_timestamp);
 
-  testing_clock_.Advance(base::TimeDelta::FromMilliseconds(kTimestampMs));
+  testing_clock_.Advance(base::Milliseconds(kTimestampMs));
   video_frame_.reference_time = testing_clock_.NowTicks();
   rtp_packetizer_->SendFrameAsPackets(video_frame_);
   RunTasks(33 + 1);
diff --git a/media/cast/sender/audio_encoder.cc b/media/cast/sender/audio_encoder.cc
index 5b1cb671..550e19f 100644
--- a/media/cast/sender/audio_encoder.cc
+++ b/media/cast/sender/audio_encoder.cc
@@ -63,8 +63,8 @@
         samples_per_frame_(samples_per_frame),
         callback_(std::move(callback)),
         operational_status_(STATUS_UNINITIALIZED),
-        frame_duration_(base::TimeDelta::FromSecondsD(
-            static_cast<double>(samples_per_frame_) / sampling_rate)),
+        frame_duration_(base::Seconds(static_cast<double>(samples_per_frame_) /
+                                      sampling_rate)),
         buffer_fill_end_(0),
         frame_id_(FrameId::first()),
         samples_dropped_from_buffer_(0) {
@@ -305,12 +305,12 @@
 
   static bool IsValidFrameDuration(base::TimeDelta duration) {
     // See https://tools.ietf.org/html/rfc6716#section-2.1.4
-    return duration == base::TimeDelta::FromMicroseconds(2500) ||
-           duration == base::TimeDelta::FromMilliseconds(5) ||
-           duration == base::TimeDelta::FromMilliseconds(10) ||
-           duration == base::TimeDelta::FromMilliseconds(20) ||
-           duration == base::TimeDelta::FromMilliseconds(40) ||
-           duration == base::TimeDelta::FromMilliseconds(60);
+    return duration == base::Microseconds(2500) ||
+           duration == base::Milliseconds(5) ||
+           duration == base::Milliseconds(10) ||
+           duration == base::Milliseconds(20) ||
+           duration == base::Milliseconds(40) ||
+           duration == base::Milliseconds(60);
   }
 
   const std::unique_ptr<uint8_t[]> encoder_memory_;
diff --git a/media/cast/sender/audio_encoder_unittest.cc b/media/cast/sender/audio_encoder_unittest.cc
index e7e5b51..5c6ba55 100644
--- a/media/cast/sender/audio_encoder_unittest.cc
+++ b/media/cast/sender/audio_encoder_unittest.cc
@@ -133,8 +133,8 @@
 
     for (size_t i = 0; i < scenario.num_durations; ++i) {
       const bool simulate_missing_data = scenario.durations_in_ms[i] < 0;
-      const base::TimeDelta duration = base::TimeDelta::FromMilliseconds(
-          std::abs(scenario.durations_in_ms[i]));
+      const base::TimeDelta duration =
+          base::Milliseconds(std::abs(scenario.durations_in_ms[i]));
       receiver_->SetCaptureTimeBounds(
           testing_clock_.NowTicks() - frame_duration,
           testing_clock_.NowTicks() + duration);
diff --git a/media/cast/sender/audio_sender_unittest.cc b/media/cast/sender/audio_sender_unittest.cc
index e80e304..9bba25c 100644
--- a/media/cast/sender/audio_sender_unittest.cc
+++ b/media/cast/sender/audio_sender_unittest.cc
@@ -131,7 +131,7 @@
 };
 
 TEST_F(AudioSenderTest, Encode20ms) {
-  const base::TimeDelta kDuration = base::TimeDelta::FromMilliseconds(20);
+  const base::TimeDelta kDuration = base::Milliseconds(20);
   std::unique_ptr<AudioBus> bus(
       TestAudioBusFactory(audio_config_.channels, audio_config_.rtp_timebase,
                           TestAudioBusFactory::kMiddleANoteFreq, 0.5f)
@@ -144,7 +144,7 @@
 }
 
 TEST_F(AudioSenderTest, RtcpTimer) {
-  const base::TimeDelta kDuration = base::TimeDelta::FromMilliseconds(20);
+  const base::TimeDelta kDuration = base::Milliseconds(20);
   std::unique_ptr<AudioBus> bus(
       TestAudioBusFactory(audio_config_.channels, audio_config_.rtp_timebase,
                           TestAudioBusFactory::kMiddleANoteFreq, 0.5f)
@@ -155,7 +155,7 @@
 
   // Make sure that we send at least one RTCP packet.
   base::TimeDelta max_rtcp_timeout =
-      base::TimeDelta::FromMilliseconds(1 + kRtcpReportIntervalMs * 3 / 2);
+      base::Milliseconds(1 + kRtcpReportIntervalMs * 3 / 2);
   testing_clock_.Advance(max_rtcp_timeout);
   task_runner_->RunTasks();
   EXPECT_LE(1, transport_->number_of_rtp_packets());
diff --git a/media/cast/sender/av1_encoder.cc b/media/cast/sender/av1_encoder.cc
index d75afb4..f60707db 100644
--- a/media/cast/sender/av1_encoder.cc
+++ b/media/cast/sender/av1_encoder.cc
@@ -67,8 +67,7 @@
       key_frame_requested_(true),
       bitrate_kbit_(cast_config_.start_bitrate / 1000),
       next_frame_id_(FrameId::first()),
-      encoding_speed_acc_(
-          base::TimeDelta::FromMicroseconds(kEncodingSpeedAccHalfLife)),
+      encoding_speed_acc_(base::Microseconds(kEncodingSpeedAccHalfLife)),
       encoding_speed_(kHighestEncodingSpeed) {
   config_.g_timebase.den = 0;  // Not initialized.
   DCHECK_LE(cast_config_.video_codec_params.min_qp,
@@ -214,8 +213,8 @@
   // intervals.  Bound the prediction to account for the fact that the frame
   // rate can be highly variable, including long pauses in the video stream.
   const base::TimeDelta minimum_frame_duration =
-      base::TimeDelta::FromSecondsD(1.0 / cast_config_.max_frame_rate);
-  const base::TimeDelta maximum_frame_duration = base::TimeDelta::FromSecondsD(
+      base::Seconds(1.0 / cast_config_.max_frame_rate);
+  const base::TimeDelta maximum_frame_duration = base::Seconds(
       static_cast<double>(kRestartFramePeriods) / cast_config_.max_frame_rate);
   base::TimeDelta predicted_frame_duration =
       video_frame->metadata().frame_duration.value_or(base::TimeDelta());
diff --git a/media/cast/sender/congestion_control.cc b/media/cast/sender/congestion_control.cc
index 1de3fed..3609f73 100644
--- a/media/cast/sender/congestion_control.cc
+++ b/media/cast/sender/congestion_control.cc
@@ -221,7 +221,7 @@
   if (acked_bits_in_history_ == 0 || transmit_time <= base::TimeDelta()) {
     return min_bitrate_configured_;
   }
-  transmit_time = std::max(transmit_time, base::TimeDelta::FromMilliseconds(1));
+  transmit_time = std::max(transmit_time, base::Milliseconds(1));
   return acked_bits_in_history_ / transmit_time.InSecondsF();
 }
 
@@ -362,8 +362,8 @@
     // ~RTT/2 amount of time to travel to the receiver.  Finally, the ACK from
     // the receiver is sent and this takes another ~RTT/2 amount of time to
     // reach the sender.
-    const base::TimeDelta frame_transmit_time = base::TimeDelta::FromSecondsD(
-        stats->frame_size_in_bits / estimated_bitrate);
+    const base::TimeDelta frame_transmit_time =
+        base::Seconds(stats->frame_size_in_bits / estimated_bitrate);
     estimated_ack_time = std::max(estimated_sending_time, stats->enqueue_time) +
                          frame_transmit_time + rtt_;
 
diff --git a/media/cast/sender/congestion_control_unittest.cc b/media/cast/sender/congestion_control_unittest.cc
index 2352fb9..ae88b26 100644
--- a/media/cast/sender/congestion_control_unittest.cc
+++ b/media/cast/sender/congestion_control_unittest.cc
@@ -29,15 +29,13 @@
  protected:
   CongestionControlTest()
       : task_runner_(new FakeSingleThreadTaskRunner(&testing_clock_)) {
-    testing_clock_.Advance(
-        base::TimeDelta::FromMilliseconds(kStartMillisecond));
+    testing_clock_.Advance(base::Milliseconds(kStartMillisecond));
     congestion_control_.reset(NewAdaptiveCongestionControl(
         &testing_clock_, kMaxBitrateConfigured, kMinBitrateConfigured,
         kMaxFrameRate));
     const int max_unacked_frames = 10;
     const base::TimeDelta target_playout_delay =
-        (max_unacked_frames - 1) * base::TimeDelta::FromSeconds(1) /
-        kMaxFrameRate;
+        (max_unacked_frames - 1) * base::Seconds(1) / kMaxFrameRate;
     congestion_control_->UpdateTargetPlayoutDelay(target_playout_delay);
   }
 
@@ -77,31 +75,28 @@
 // "target buffer fill" model).
 TEST_F(CongestionControlTest, SimpleRun) {
   uint32_t frame_size = 10000 * 8;
-  Run(500,
-      frame_size,
-      base::TimeDelta::FromMilliseconds(10),
-      base::TimeDelta::FromMilliseconds(kFrameDelayMs),
-      base::TimeDelta::FromMilliseconds(45));
+  Run(500, frame_size, base::Milliseconds(10),
+      base::Milliseconds(kFrameDelayMs), base::Milliseconds(45));
   // Empty the buffer.
-  task_runner_->Sleep(base::TimeDelta::FromMilliseconds(100));
+  task_runner_->Sleep(base::Milliseconds(100));
 
   uint32_t safe_bitrate = frame_size * 1000 / kFrameDelayMs;
   uint32_t bitrate = congestion_control_->GetBitrate(
-      testing_clock_.NowTicks() + base::TimeDelta::FromMilliseconds(300),
-      base::TimeDelta::FromMilliseconds(300));
+      testing_clock_.NowTicks() + base::Milliseconds(300),
+      base::Milliseconds(300));
   EXPECT_NEAR(
       safe_bitrate / kTargetEmptyBufferFraction, bitrate, safe_bitrate * 0.05);
 
   bitrate = congestion_control_->GetBitrate(
-      testing_clock_.NowTicks() + base::TimeDelta::FromMilliseconds(200),
-      base::TimeDelta::FromMilliseconds(300));
+      testing_clock_.NowTicks() + base::Milliseconds(200),
+      base::Milliseconds(300));
   EXPECT_NEAR(safe_bitrate / kTargetEmptyBufferFraction * 2 / 3,
               bitrate,
               safe_bitrate * 0.05);
 
   bitrate = congestion_control_->GetBitrate(
-      testing_clock_.NowTicks() + base::TimeDelta::FromMilliseconds(100),
-      base::TimeDelta::FromMilliseconds(300));
+      testing_clock_.NowTicks() + base::Milliseconds(100),
+      base::Milliseconds(300));
   EXPECT_NEAR(safe_bitrate / kTargetEmptyBufferFraction * 1 / 3,
               bitrate,
               safe_bitrate * 0.05);
@@ -112,8 +107,8 @@
 
   // Results should show that we have ~200ms to send.
   bitrate = congestion_control_->GetBitrate(
-      testing_clock_.NowTicks() + base::TimeDelta::FromMilliseconds(300),
-      base::TimeDelta::FromMilliseconds(300));
+      testing_clock_.NowTicks() + base::Milliseconds(300),
+      base::Milliseconds(300));
   EXPECT_NEAR(safe_bitrate / kTargetEmptyBufferFraction * 2 / 3,
               bitrate,
               safe_bitrate * 0.05);
@@ -124,8 +119,8 @@
 
   // Results should show that we have ~100ms to send.
   bitrate = congestion_control_->GetBitrate(
-      testing_clock_.NowTicks() + base::TimeDelta::FromMilliseconds(300),
-      base::TimeDelta::FromMilliseconds(300));
+      testing_clock_.NowTicks() + base::Milliseconds(300),
+      base::Milliseconds(300));
   EXPECT_NEAR(safe_bitrate / kTargetEmptyBufferFraction * 1 / 3,
               bitrate,
               safe_bitrate * 0.05);
@@ -138,8 +133,8 @@
 
   // Results should show that we have ~200ms to send.
   bitrate = congestion_control_->GetBitrate(
-      testing_clock_.NowTicks() + base::TimeDelta::FromMilliseconds(300),
-      base::TimeDelta::FromMilliseconds(300));
+      testing_clock_.NowTicks() + base::Milliseconds(300),
+      base::Milliseconds(300));
   EXPECT_NEAR(safe_bitrate / kTargetEmptyBufferFraction * 2 / 3, bitrate,
               safe_bitrate * 0.05);
 }
@@ -148,8 +143,7 @@
 // history is maintained in AdaptiveCongestionControl to avoid invalid
 // indexing offsets. This test is successful if it does not crash the process.
 TEST_F(CongestionControlTest, RetainsSufficientHistory) {
-  constexpr base::TimeDelta kFakePlayoutDelay =
-      base::TimeDelta::FromMilliseconds(400);
+  constexpr base::TimeDelta kFakePlayoutDelay = base::Milliseconds(400);
 
   // Sanity-check: With no data, GetBitrate() returns an in-range value.
   int bitrate = congestion_control_->GetBitrate(
@@ -170,7 +164,7 @@
     ASSERT_GE(bitrate, kMinBitrateConfigured);
     ASSERT_LE(bitrate, kMaxBitrateConfigured);
 
-    task_runner_->Sleep(base::TimeDelta::FromMilliseconds(kFrameDelayMs));
+    task_runner_->Sleep(base::Milliseconds(kFrameDelayMs));
     ++frame_id;
   }
 
@@ -185,7 +179,7 @@
     ASSERT_GE(bitrate, kMinBitrateConfigured);
     ASSERT_LE(bitrate, kMaxBitrateConfigured);
 
-    task_runner_->Sleep(base::TimeDelta::FromMilliseconds(kFrameDelayMs));
+    task_runner_->Sleep(base::Milliseconds(kFrameDelayMs));
     ++frame_id;
   }
 }
diff --git a/media/cast/sender/frame_sender.cc b/media/cast/sender/frame_sender.cc
index 79c13d3..97840aa 100644
--- a/media/cast/sender/frame_sender.cc
+++ b/media/cast/sender/frame_sender.cc
@@ -23,10 +23,8 @@
 namespace {
 
 constexpr int kNumAggressiveReportsSentAtStart = 100;
-constexpr base::TimeDelta kMinSchedulingDelay =
-    base::TimeDelta::FromMilliseconds(1);
-constexpr base::TimeDelta kReceiverProcessTime =
-    base::TimeDelta::FromMilliseconds(250);
+constexpr base::TimeDelta kMinSchedulingDelay = base::Milliseconds(1);
+constexpr base::TimeDelta kReceiverProcessTime = base::Milliseconds(250);
 
 // The additional number of frames that can be in-flight when input exceeds the
 // maximum frame rate.
@@ -113,7 +111,7 @@
       CastEnvironment::MAIN, FROM_HERE,
       base::BindOnce(&FrameSender::SendRtcpReport, weak_factory_.GetWeakPtr(),
                      true),
-      base::TimeDelta::FromMilliseconds(kRtcpReportIntervalMs));
+      base::Milliseconds(kRtcpReportIntervalMs));
 }
 
 void FrameSender::SendRtcpReport(bool schedule_future_reports) {
diff --git a/media/cast/sender/h264_vt_encoder_unittest.cc b/media/cast/sender/h264_vt_encoder_unittest.cc
index e78b72d6..ea53faf7 100644
--- a/media/cast/sender/h264_vt_encoder_unittest.cc
+++ b/media/cast/sender/h264_vt_encoder_unittest.cc
@@ -232,9 +232,8 @@
   }
 
   void AdvanceClockAndVideoFrameTimestamp() {
-    clock_.Advance(base::TimeDelta::FromMilliseconds(33));
-    frame_->set_timestamp(frame_->timestamp() +
-                          base::TimeDelta::FromMilliseconds(33));
+    clock_.Advance(base::Milliseconds(33));
+    frame_->set_timestamp(frame_->timestamp() + base::Milliseconds(33));
   }
 
   static void SetUpTestCase() {
diff --git a/media/cast/sender/performance_metrics_overlay.cc b/media/cast/sender/performance_metrics_overlay.cc
index 0bc1e97..2ff30e9 100644
--- a/media/cast/sender/performance_metrics_overlay.cc
+++ b/media/cast/sender/performance_metrics_overlay.cc
@@ -290,9 +290,9 @@
   }
   base::TimeDelta rem = frame->timestamp();
   const int minutes = rem.InMinutes();
-  rem -= base::TimeDelta::FromMinutes(minutes);
+  rem -= base::Minutes(minutes);
   const int seconds = static_cast<int>(rem.InSeconds());
-  rem -= base::TimeDelta::FromSeconds(seconds);
+  rem -= base::Seconds(seconds);
   const int hundredth_seconds = static_cast<int>(rem.InMilliseconds() / 10);
   RenderLineOfText(
       base::StringPrintf("%d.%01d %dx%d %d:%02d.%02d", frame_duration_ms,
diff --git a/media/cast/sender/video_encoder_unittest.cc b/media/cast/sender/video_encoder_unittest.cc
index a8c54b7..033a846 100644
--- a/media/cast/sender/video_encoder_unittest.cc
+++ b/media/cast/sender/video_encoder_unittest.cc
@@ -122,8 +122,8 @@
 
   void RunTasksAndAdvanceClock() {
     DCHECK_GT(video_config_.max_frame_rate, 0);
-    const base::TimeDelta frame_duration = base::TimeDelta::FromMicroseconds(
-        1000000.0 / video_config_.max_frame_rate);
+    const base::TimeDelta frame_duration =
+        base::Microseconds(1000000.0 / video_config_.max_frame_rate);
 #if defined(OS_MAC)
     if (is_testing_video_toolbox_encoder()) {
       // The H264VideoToolboxEncoder (on MAC_OSX and IOS) is not a faked
diff --git a/media/cast/sender/video_sender.cc b/media/cast/sender/video_sender.cc
index 490449c..f1976eb 100644
--- a/media/cast/sender/video_sender.cc
+++ b/media/cast/sender/video_sender.cc
@@ -188,15 +188,16 @@
   // based on the configured |max_frame_rate_|.  Any error introduced by this
   // guess will be eliminated when |duration_in_encoder_| is updated in
   // OnEncodedVideoFrame().
-  const base::TimeDelta duration_added_by_next_frame = frames_in_encoder_ > 0 ?
-      reference_time - last_enqueued_frame_reference_time_ :
-      base::TimeDelta::FromSecondsD(1.0 / max_frame_rate_);
+  const base::TimeDelta duration_added_by_next_frame =
+      frames_in_encoder_ > 0
+          ? reference_time - last_enqueued_frame_reference_time_
+          : base::Seconds(1.0 / max_frame_rate_);
 
   if (ShouldDropNextFrame(duration_added_by_next_frame)) {
-    base::TimeDelta new_target_delay = std::min(
-        current_round_trip_time_ * kRoundTripsNeeded +
-        base::TimeDelta::FromMilliseconds(kConstantTimeMs),
-        max_playout_delay_);
+    base::TimeDelta new_target_delay =
+        std::min(current_round_trip_time_ * kRoundTripsNeeded +
+                     base::Milliseconds(kConstantTimeMs),
+                 max_playout_delay_);
     // In case of low latency mode, we prefer frame drops over increasing
     // playout time.
     if (!low_latency_mode_ && new_target_delay > target_playout_delay_) {
diff --git a/media/cast/sender/video_sender_unittest.cc b/media/cast/sender/video_sender_unittest.cc
index 08d60012..dd7570ae 100644
--- a/media/cast/sender/video_sender_unittest.cc
+++ b/media/cast/sender/video_sender_unittest.cc
@@ -230,7 +230,7 @@
   }
 
   void RunTasks(int during_ms) {
-    task_runner_->Sleep(base::TimeDelta::FromMilliseconds(during_ms));
+    task_runner_->Sleep(base::Milliseconds(during_ms));
   }
 
   base::SimpleTestTickClock testing_clock_;
@@ -327,7 +327,7 @@
 
   // Make sure that we send at least one RTCP packet.
   base::TimeDelta max_rtcp_timeout =
-      base::TimeDelta::FromMilliseconds(1 + kRtcpReportIntervalMs * 3 / 2);
+      base::Milliseconds(1 + kRtcpReportIntervalMs * 3 / 2);
 
   RunTasks(max_rtcp_timeout.InMilliseconds());
   EXPECT_LE(1, transport_->number_of_rtp_packets());
@@ -360,7 +360,7 @@
   video_sender_->InsertRawVideoFrame(video_frame, reference_time);
 
   base::TimeDelta max_resend_timeout =
-      base::TimeDelta::FromMilliseconds(1 + kDefaultRtpMaxDelayMs);
+      base::Milliseconds(1 + kDefaultRtpMaxDelayMs);
 
   // Make sure that we do a re-send.
   RunTasks(max_resend_timeout.InMilliseconds());
@@ -626,8 +626,7 @@
   video_sender_->OnReceivedPli();
   video_frame = GetNewVideoFrame();
   video_sender_->InsertRawVideoFrame(
-      video_frame,
-      testing_clock_.NowTicks() + base::TimeDelta::FromMilliseconds(1000));
+      video_frame, testing_clock_.NowTicks() + base::Milliseconds(1000));
   RunTasks(33);
   transport_->SetPause(false);
   RunTasks(33);
diff --git a/media/cast/sender/vpx_encoder.cc b/media/cast/sender/vpx_encoder.cc
index d6d6c82..7777d57a 100644
--- a/media/cast/sender/vpx_encoder.cc
+++ b/media/cast/sender/vpx_encoder.cc
@@ -70,8 +70,7 @@
       key_frame_requested_(true),
       bitrate_kbit_(cast_config_.start_bitrate / 1000),
       next_frame_id_(FrameId::first()),
-      encoding_speed_acc_(
-          base::TimeDelta::FromMicroseconds(kEncodingSpeedAccHalfLife)),
+      encoding_speed_acc_(base::Microseconds(kEncodingSpeedAccHalfLife)),
       encoding_speed_(kHighestEncodingSpeed) {
   config_.g_timebase.den = 0;  // Not initialized.
   DCHECK_LE(cast_config_.video_codec_params.min_qp,
@@ -253,8 +252,8 @@
   // intervals.  Bound the prediction to account for the fact that the frame
   // rate can be highly variable, including long pauses in the video stream.
   const base::TimeDelta minimum_frame_duration =
-      base::TimeDelta::FromSecondsD(1.0 / cast_config_.max_frame_rate);
-  const base::TimeDelta maximum_frame_duration = base::TimeDelta::FromSecondsD(
+      base::Seconds(1.0 / cast_config_.max_frame_rate);
+  const base::TimeDelta maximum_frame_duration = base::Seconds(
       static_cast<double>(kRestartFramePeriods) / cast_config_.max_frame_rate);
   base::TimeDelta predicted_frame_duration =
       video_frame->metadata().frame_duration.value_or(base::TimeDelta());
diff --git a/media/cast/sender/vpx_quantizer_parser_unittest.cc b/media/cast/sender/vpx_quantizer_parser_unittest.cc
index 17590db5..24602ac 100644
--- a/media/cast/sender/vpx_quantizer_parser_unittest.cc
+++ b/media/cast/sender/vpx_quantizer_parser_unittest.cc
@@ -51,7 +51,7 @@
         next_frame_timestamp_);
     const base::TimeTicks reference_time =
         base::TimeTicks::UnixEpoch() + next_frame_timestamp_;
-    next_frame_timestamp_ += base::TimeDelta::FromSeconds(1) / kFrameRate;
+    next_frame_timestamp_ += base::Seconds(1) / kFrameRate;
     PopulateVideoFrameWithNoise(video_frame.get());
     vp8_encoder_->Encode(video_frame, reference_time, encoded_frame);
   }
diff --git a/media/cast/test/cast_benchmarks.cc b/media/cast/test/cast_benchmarks.cc
index bfdf5d0..2b2cec3 100644
--- a/media/cast/test/cast_benchmarks.cc
+++ b/media/cast/test/cast_benchmarks.cc
@@ -224,8 +224,7 @@
         video_bytes_encoded_(0),
         audio_bytes_encoded_(0),
         frames_sent_(0) {
-    testing_clock_.Advance(
-        base::TimeDelta::FromMilliseconds(kStartMillisecond));
+    testing_clock_.Advance(base::Milliseconds(kStartMillisecond));
   }
 
   void Configure(Codec video_codec,
@@ -233,7 +232,7 @@
     audio_sender_config_ = GetDefaultAudioSenderConfig();
     audio_sender_config_.min_playout_delay =
         audio_sender_config_.max_playout_delay =
-            base::TimeDelta::FromMilliseconds(kTargetPlayoutDelayMs);
+            base::Milliseconds(kTargetPlayoutDelayMs);
     audio_sender_config_.codec = audio_codec;
 
     audio_receiver_config_ = GetDefaultAudioReceiverConfig();
@@ -244,7 +243,7 @@
     video_sender_config_ = GetDefaultVideoSenderConfig();
     video_sender_config_.min_playout_delay =
         video_sender_config_.max_playout_delay =
-            base::TimeDelta::FromMilliseconds(kTargetPlayoutDelayMs);
+            base::Milliseconds(kTargetPlayoutDelayMs);
     video_sender_config_.max_bitrate = 4000000;
     video_sender_config_.min_bitrate = 4000000;
     video_sender_config_.start_bitrate = 4000000;
@@ -255,8 +254,7 @@
     video_receiver_config_.codec = video_codec;
 
     DCHECK_GT(video_sender_config_.max_frame_rate, 0);
-    frame_duration_ = base::TimeDelta::FromSecondsD(
-        1.0 / video_sender_config_.max_frame_rate);
+    frame_duration_ = base::Seconds(1.0 / video_sender_config_.max_frame_rate);
   }
 
   void SetSenderClockSkew(double skew, base::TimeDelta offset) {
@@ -282,8 +280,8 @@
   }
 
   base::TimeDelta VideoTimestamp(int frame_number) {
-    return frame_number * base::TimeDelta::FromSecondsD(
-                              1.0 / video_sender_config_.max_frame_rate);
+    return frame_number *
+           base::Seconds(1.0 / video_sender_config_.max_frame_rate);
   }
 
   void SendFakeVideoFrame() {
@@ -472,15 +470,15 @@
 void RunOneBenchmark::Create(const MeasuringPoint& p) {
   sender_to_receiver_ = new LoopBackTransport(cast_environment_sender_);
   transport_sender_.Init(
-      new CastTransportImpl(
-          &testing_clock_sender_, base::TimeDelta::FromSeconds(1),
-          std::make_unique<TransportClient>(nullptr),
-          base::WrapUnique(sender_to_receiver_), task_runner_sender_),
+      new CastTransportImpl(&testing_clock_sender_, base::Seconds(1),
+                            std::make_unique<TransportClient>(nullptr),
+                            base::WrapUnique(sender_to_receiver_),
+                            task_runner_sender_),
       &video_bytes_encoded_, &audio_bytes_encoded_);
 
   receiver_to_sender_ = new LoopBackTransport(cast_environment_receiver_);
   transport_receiver_ = std::make_unique<CastTransportImpl>(
-      &testing_clock_receiver_, base::TimeDelta::FromSeconds(1),
+      &testing_clock_receiver_, base::Seconds(1),
       std::make_unique<TransportClient>(this),
       base::WrapUnique(receiver_to_sender_), task_runner_receiver_);
 
diff --git a/media/cast/test/end2end_unittest.cc b/media/cast/test/end2end_unittest.cc
index ad89225..a5ffb81 100644
--- a/media/cast/test/end2end_unittest.cc
+++ b/media/cast/test/end2end_unittest.cc
@@ -421,8 +421,7 @@
         sender_to_receiver_(new LoopBackTransport(cast_environment_sender_)),
         test_receiver_audio_callback_(new TestReceiverAudioCallback()),
         test_receiver_video_callback_(new TestReceiverVideoCallback()) {
-    testing_clock_.Advance(
-        base::TimeDelta::FromMilliseconds(kStartMillisecond));
+    testing_clock_.Advance(base::Milliseconds(kStartMillisecond));
     cast_environment_sender_->logger()->Subscribe(&event_subscriber_sender_);
   }
 
@@ -430,7 +429,7 @@
     audio_sender_config_.sender_ssrc = 1;
     audio_sender_config_.receiver_ssrc = 2;
     audio_sender_config_.max_playout_delay =
-        base::TimeDelta::FromMilliseconds(kTargetPlayoutDelayMs);
+        base::Milliseconds(kTargetPlayoutDelayMs);
     audio_sender_config_.rtp_payload_type = RtpPayloadType::AUDIO_OPUS;
     audio_sender_config_.use_external_encoder = false;
     audio_sender_config_.rtp_timebase = kDefaultAudioSamplingRate;
@@ -460,7 +459,7 @@
     video_sender_config_.sender_ssrc = 3;
     video_sender_config_.receiver_ssrc = 4;
     video_sender_config_.max_playout_delay =
-        base::TimeDelta::FromMilliseconds(kTargetPlayoutDelayMs);
+        base::Milliseconds(kTargetPlayoutDelayMs);
     video_sender_config_.rtp_payload_type = RtpPayloadType::VIDEO_VP8;
     video_sender_config_.use_external_encoder = false;
     video_sender_config_.rtp_timebase = kVideoFrequency;
@@ -509,14 +508,14 @@
   void FeedAudioFrames(int count, bool will_be_checked) {
     for (int i = 0; i < count; ++i) {
       std::unique_ptr<AudioBus> audio_bus(audio_bus_factory_->NextAudioBus(
-          base::TimeDelta::FromMilliseconds(kAudioFrameDurationMs)));
+          base::Milliseconds(kAudioFrameDurationMs)));
       const base::TimeTicks reference_time =
           testing_clock_sender_.NowTicks() +
-          i * base::TimeDelta::FromMilliseconds(kAudioFrameDurationMs);
+          i * base::Milliseconds(kAudioFrameDurationMs);
       if (will_be_checked) {
         test_receiver_audio_callback_->AddExpectedResult(
-            *audio_bus, reference_time + base::TimeDelta::FromMilliseconds(
-                                             kTargetPlayoutDelayMs));
+            *audio_bus,
+            reference_time + base::Milliseconds(kTargetPlayoutDelayMs));
       }
       audio_frame_input_->InsertAudio(std::move(audio_bus), reference_time);
     }
@@ -525,14 +524,13 @@
   void FeedAudioFramesWithExpectedDelay(int count, base::TimeDelta delay) {
     for (int i = 0; i < count; ++i) {
       std::unique_ptr<AudioBus> audio_bus(audio_bus_factory_->NextAudioBus(
-          base::TimeDelta::FromMilliseconds(kAudioFrameDurationMs)));
+          base::Milliseconds(kAudioFrameDurationMs)));
       const base::TimeTicks reference_time =
           testing_clock_sender_.NowTicks() +
-          i * base::TimeDelta::FromMilliseconds(kAudioFrameDurationMs);
+          i * base::Milliseconds(kAudioFrameDurationMs);
       test_receiver_audio_callback_->AddExpectedResult(
           *audio_bus,
-          reference_time + delay +
-              base::TimeDelta::FromMilliseconds(kTargetPlayoutDelayMs));
+          reference_time + delay + base::Milliseconds(kTargetPlayoutDelayMs));
       audio_frame_input_->InsertAudio(std::move(audio_bus), reference_time);
     }
   }
@@ -583,9 +581,7 @@
     video_frame_input_->InsertRawVideoFrame(video_frame, reference_time);
   }
 
-  void RunTasks(int ms) {
-    task_runner_->Sleep(base::TimeDelta::FromMilliseconds(ms));
-  }
+  void RunTasks(int ms) { task_runner_->Sleep(base::Milliseconds(ms)); }
 
   // Send and receive audio and video frames for the given |duration|.  Returns
   // the total number of audio and video frames sent.
@@ -608,11 +604,11 @@
           testing_clock_.NowTicks() >= next_video_frame_at;
       if (send_and_receive_a_video_frame) {
         video_reference_time = next_video_frame_at;
-        next_video_frame_at += base::TimeDelta::FromMilliseconds(kFrameTimerMs);
+        next_video_frame_at += base::Milliseconds(kFrameTimerMs);
         test_receiver_video_callback_->AddExpectedResult(
             video_frames_sent, GetTestVideoFrameSize(),
             testing_clock_.NowTicks() +
-                base::TimeDelta::FromMilliseconds(kTargetPlayoutDelayMs),
+                base::Milliseconds(kTargetPlayoutDelayMs),
             true);
         SendVideoFrame(video_frames_sent, video_reference_time);
         ++video_frames_sent;
@@ -910,13 +906,13 @@
 
 void End2EndTest::Create() {
   transport_sender_ = std::make_unique<CastTransportImpl>(
-      &testing_clock_sender_, base::TimeDelta::FromMilliseconds(1),
+      &testing_clock_sender_, base::Milliseconds(1),
       std::make_unique<TransportClient>(cast_environment_sender_->logger(),
                                         nullptr),
       base::WrapUnique(sender_to_receiver_), task_runner_sender_);
 
   transport_receiver_ = std::make_unique<CastTransportImpl>(
-      &testing_clock_sender_, base::TimeDelta::FromMilliseconds(1),
+      &testing_clock_sender_, base::Milliseconds(1),
       std::make_unique<TransportClient>(cast_environment_receiver_->logger(),
                                         this),
       base::WrapUnique(receiver_to_sender_), task_runner_sender_);
@@ -955,7 +951,7 @@
   Configure(CODEC_VIDEO_FAKE, CODEC_AUDIO_PCM16);
   Create();
 
-  const auto frames_sent = RunAudioVideoLoop(base::TimeDelta::FromSeconds(3));
+  const auto frames_sent = RunAudioVideoLoop(base::Seconds(3));
 
   // Make sure that we send a RTCP message containing receiver log data, then
   // verify the accumulated logging data.
@@ -967,7 +963,7 @@
   Configure(CODEC_VIDEO_VP8, CODEC_AUDIO_OPUS);
   Create();
 
-  const auto frames_sent = RunAudioVideoLoop(base::TimeDelta::FromSeconds(1));
+  const auto frames_sent = RunAudioVideoLoop(base::Seconds(1));
 
   // Run tasks for 750 ms to ensure RTCP messages containing log data from the
   // receiver are sent and processed by the sender.  Then, verify the expected
@@ -998,7 +994,7 @@
   const int kNumVideoFramesBeforeReceiverStarted = 2;
   const base::TimeTicks initial_send_time = testing_clock_sender_.NowTicks();
   const base::TimeDelta expected_delay =
-      base::TimeDelta::FromMilliseconds(test_delay_ms + kFrameTimerMs);
+      base::Milliseconds(test_delay_ms + kFrameTimerMs);
   for (int i = 0; i < kNumVideoFramesBeforeReceiverStarted; ++i) {
     const int num_audio_frames = audio_diff / kAudioFrameDurationMs;
     audio_diff -= num_audio_frames * kAudioFrameDurationMs;
@@ -1012,7 +1008,7 @@
     test_receiver_video_callback_->AddExpectedResult(
         frame_number, GetTestVideoFrameSize(),
         initial_send_time + expected_delay +
-            base::TimeDelta::FromMilliseconds(kTargetPlayoutDelayMs),
+            base::Milliseconds(kTargetPlayoutDelayMs),
         true);
     SendVideoFrame(frame_number++, testing_clock_sender_.NowTicks());
 
@@ -1039,7 +1035,7 @@
     test_receiver_video_callback_->AddExpectedResult(
         frame_number, GetTestVideoFrameSize(),
         testing_clock_sender_.NowTicks() +
-            base::TimeDelta::FromMilliseconds(kTargetPlayoutDelayMs),
+            base::Milliseconds(kTargetPlayoutDelayMs),
         true);
     SendVideoFrame(frame_number++, testing_clock_sender_.NowTicks());
 
@@ -1069,13 +1065,13 @@
   Configure(CODEC_VIDEO_FAKE, CODEC_AUDIO_PCM16);
   Create();
   StartBasicPlayer();
-  SetReceiverSkew(1.0, base::TimeDelta::FromMilliseconds(1));
+  SetReceiverSkew(1.0, base::Milliseconds(1));
 
   // Expect very smooth playout when there is no clock skew.
   SetExpectedVideoPlayoutSmoothness(
-      base::TimeDelta::FromMilliseconds(kFrameTimerMs) * 99 / 100,
-      base::TimeDelta::FromMilliseconds(kFrameTimerMs) * 101 / 100,
-      base::TimeDelta::FromMilliseconds(kFrameTimerMs) / 100);
+      base::Milliseconds(kFrameTimerMs) * 99 / 100,
+      base::Milliseconds(kFrameTimerMs) * 101 / 100,
+      base::Milliseconds(kFrameTimerMs) / 100);
 
   int frames_counter = 0;
   for (; frames_counter < 30; ++frames_counter) {
@@ -1104,7 +1100,7 @@
   Configure(CODEC_VIDEO_FAKE, CODEC_AUDIO_PCM16);
   Create();
   StartBasicPlayer();
-  SetReceiverSkew(2.0, base::TimeDelta::FromMicroseconds(1234567));
+  SetReceiverSkew(2.0, base::Microseconds(1234567));
 
   for (int frames_counter = 0; frames_counter < kLongTestIterations;
        ++frames_counter) {
@@ -1119,7 +1115,7 @@
   Configure(CODEC_VIDEO_FAKE, CODEC_AUDIO_PCM16);
   Create();
   StartBasicPlayer();
-  SetReceiverSkew(0.5, base::TimeDelta::FromMicroseconds(-765432));
+  SetReceiverSkew(0.5, base::Microseconds(-765432));
 
   for (int frames_counter = 0; frames_counter < kLongTestIterations;
        ++frames_counter) {
@@ -1134,13 +1130,13 @@
   Configure(CODEC_VIDEO_FAKE, CODEC_AUDIO_PCM16);
   Create();
   StartBasicPlayer();
-  SetReceiverSkew(1.05, base::TimeDelta::FromMilliseconds(-42));
+  SetReceiverSkew(1.05, base::Milliseconds(-42));
 
   // Expect smooth playout when there is 5% skew.
   SetExpectedVideoPlayoutSmoothness(
-      base::TimeDelta::FromMilliseconds(kFrameTimerMs) * 90 / 100,
-      base::TimeDelta::FromMilliseconds(kFrameTimerMs) * 110 / 100,
-      base::TimeDelta::FromMilliseconds(kFrameTimerMs) / 10);
+      base::Milliseconds(kFrameTimerMs) * 90 / 100,
+      base::Milliseconds(kFrameTimerMs) * 110 / 100,
+      base::Milliseconds(kFrameTimerMs) / 10);
 
   for (int frames_counter = 0; frames_counter < kLongTestIterations;
        ++frames_counter) {
@@ -1220,9 +1216,9 @@
   StartBasicPlayer();
 
   SetExpectedVideoPlayoutSmoothness(
-      base::TimeDelta::FromMilliseconds(kFrameTimerMs) * 90 / 100,
-      base::TimeDelta::FromMilliseconds(kFrameTimerMs) * 110 / 100,
-      base::TimeDelta::FromMilliseconds(kFrameTimerMs) / 10);
+      base::Milliseconds(kFrameTimerMs) * 90 / 100,
+      base::Milliseconds(kFrameTimerMs) * 110 / 100,
+      base::Milliseconds(kFrameTimerMs) / 10);
 
   for (int frames_counter = 0; frames_counter < kLongTestIterations;
        ++frames_counter) {
@@ -1240,8 +1236,8 @@
       video_sender_config_.max_playout_delay;
   audio_sender_config_.min_playout_delay =
       audio_sender_config_.max_playout_delay;
-  video_sender_config_.max_playout_delay = base::TimeDelta::FromSeconds(1);
-  audio_sender_config_.max_playout_delay = base::TimeDelta::FromSeconds(1);
+  video_sender_config_.max_playout_delay = base::Seconds(1);
+  audio_sender_config_.max_playout_delay = base::Seconds(1);
   Create();
   StartBasicPlayer();
   const int kNewDelay = 600;
@@ -1251,8 +1247,7 @@
     SendVideoFrame(frames_counter, testing_clock_sender_.NowTicks());
     RunTasks(kFrameTimerMs);
   }
-  cast_sender_->SetTargetPlayoutDelay(
-      base::TimeDelta::FromMilliseconds(kNewDelay));
+  cast_sender_->SetTargetPlayoutDelay(base::Milliseconds(kNewDelay));
   for (; frames_counter < 100; ++frames_counter) {
     SendVideoFrame(frames_counter, testing_clock_sender_.NowTicks());
     RunTasks(kFrameTimerMs);
diff --git a/media/cast/test/fake_media_source.cc b/media/cast/test/fake_media_source.cc
index 66fc26bd..050253f 100644
--- a/media/cast/test/fake_media_source.cc
+++ b/media/cast/test/fake_media_source.cc
@@ -58,7 +58,7 @@
 }
 
 base::TimeDelta PtsToTimeDelta(int64_t pts, const AVRational& time_base) {
-  return pts * base::TimeDelta::FromSeconds(1) * time_base.num / time_base.den;
+  return pts * base::Seconds(1) * time_base.num / time_base.den;
 }
 
 int64_t TimeDeltaToPts(base::TimeDelta delta, const AVRational& time_base) {
@@ -293,8 +293,7 @@
       audio_frame_input_->InsertAudio(std::move(bus), start_time_ + audio_time);
     } else {
       audio_frame_input_->InsertAudio(
-          audio_bus_factory_->NextAudioBus(
-              base::TimeDelta::FromMilliseconds(kAudioFrameMs)),
+          audio_bus_factory_->NextAudioBus(base::Milliseconds(kAudioFrameMs)),
           start_time_ + audio_time);
     }
     audio_time = AudioFrameTime(++audio_frame_count_);
@@ -332,9 +331,9 @@
     }
 
     if (update_size_change_time) {
-      next_frame_size_change_time_ = clock_->NowTicks() +
-          base::TimeDelta::FromMillisecondsD(
-              base::RandDouble() * kMaxFrameSizeChangeMillis);
+      next_frame_size_change_time_ =
+          clock_->NowTicks() +
+          base::Milliseconds(base::RandDouble() * kMaxFrameSizeChangeMillis);
     }
   } else {
     current_frame_size_ = gfx::Size(kStartingFakeFrameWidth,
@@ -407,16 +406,15 @@
   }
 
   // Send next send.
-  task_runner_->PostDelayedTask(
-      FROM_HERE,
-      base::BindOnce(&FakeMediaSource::SendNextFrame,
-                     weak_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(kAudioFrameMs));
+  task_runner_->PostDelayedTask(FROM_HERE,
+                                base::BindOnce(&FakeMediaSource::SendNextFrame,
+                                               weak_factory_.GetWeakPtr()),
+                                base::Milliseconds(kAudioFrameMs));
 }
 
 base::TimeDelta FakeMediaSource::VideoFrameTime(int frame_number) {
-  return frame_number * base::TimeDelta::FromSeconds(1) *
-      video_frame_rate_denominator_ / video_frame_rate_numerator_;
+  return frame_number * base::Seconds(1) * video_frame_rate_denominator_ /
+         video_frame_rate_numerator_;
 }
 
 base::TimeDelta FakeMediaSource::ScaleTimestamp(base::TimeDelta timestamp) {
@@ -424,7 +422,7 @@
 }
 
 base::TimeDelta FakeMediaSource::AudioFrameTime(int frame_number) {
-  return frame_number * base::TimeDelta::FromMilliseconds(kAudioFrameMs);
+  return frame_number * base::Milliseconds(kAudioFrameMs);
 }
 
 void FakeMediaSource::Rewind() {
@@ -541,8 +539,8 @@
   if (timestamp < last_video_frame_timestamp_) {
     // Stream has rewound.  Rebase |video_first_pts_|.
     const AVRational& frame_rate = av_video_stream()->r_frame_rate;
-    timestamp = last_video_frame_timestamp_ + (base::TimeDelta::FromSeconds(1) *
-                                               frame_rate.den / frame_rate.num);
+    timestamp = last_video_frame_timestamp_ +
+                (base::Seconds(1) * frame_rate.den / frame_rate.num);
     const int64_t adjustment_pts = TimeDeltaToPts(timestamp, time_base);
     video_first_pts_ = frame->pts - adjustment_pts;
   }
diff --git a/media/cast/test/receiver/audio_decoder_unittest.cc b/media/cast/test/receiver/audio_decoder_unittest.cc
index de3ce01..987fbbcc 100644
--- a/media/cast/test/receiver/audio_decoder_unittest.cc
+++ b/media/cast/test/receiver/audio_decoder_unittest.cc
@@ -174,8 +174,8 @@
 
     // Signal the main test thread that more audio was decoded.
     base::AutoLock auto_lock(lock_);
-    total_audio_decoded_ += base::TimeDelta::FromSeconds(1) *
-                            audio_bus->frames() / GetParam().sampling_rate;
+    total_audio_decoded_ +=
+        base::Seconds(1) * audio_bus->frames() / GetParam().sampling_rate;
     cond_.Signal();
   }
 
@@ -193,8 +193,7 @@
 };
 
 TEST_P(AudioDecoderTest, DecodesFramesWithSameDuration) {
-  const base::TimeDelta kTenMilliseconds =
-      base::TimeDelta::FromMilliseconds(10);
+  const base::TimeDelta kTenMilliseconds = base::Milliseconds(10);
   const int kNumFrames = 10;
   for (int i = 0; i < kNumFrames; ++i)
     FeedMoreAudio(kTenMilliseconds, 0);
@@ -208,13 +207,12 @@
   const int kNumFrames = 10;
   for (size_t i = 0; i < base::size(kFrameDurationMs); ++i)
     for (int j = 0; j < kNumFrames; ++j)
-      FeedMoreAudio(base::TimeDelta::FromMilliseconds(kFrameDurationMs[i]), 0);
+      FeedMoreAudio(base::Milliseconds(kFrameDurationMs[i]), 0);
   WaitForAllAudioToBeDecoded();
 }
 
 TEST_P(AudioDecoderTest, RecoversFromDroppedFrames) {
-  const base::TimeDelta kTenMilliseconds =
-      base::TimeDelta::FromMilliseconds(10);
+  const base::TimeDelta kTenMilliseconds = base::Milliseconds(10);
   const int kNumFrames = 100;
   int next_drop_at = 3;
   int next_num_dropped = 1;
diff --git a/media/cast/test/receiver/cast_message_builder.cc b/media/cast/test/receiver/cast_message_builder.cc
index 49d4d969..f1611d2 100644
--- a/media/cast/test/receiver/cast_message_builder.cc
+++ b/media/cast/test/receiver/cast_message_builder.cc
@@ -117,8 +117,8 @@
   if (last_update_time_.is_null() && framer_->Empty())
     return false;
 
-  *time_to_send = last_update_time_ + base::TimeDelta::FromMilliseconds(
-                                          kCastMessageUpdateIntervalMs);
+  *time_to_send =
+      last_update_time_ + base::Milliseconds(kCastMessageUpdateIntervalMs);
   return true;
 }
 
@@ -143,7 +143,7 @@
   // Is it time to update the cast message?
   base::TimeTicks now = clock_->NowTicks();
   if (now - last_update_time_ <
-      base::TimeDelta::FromMilliseconds(kCastMessageUpdateIntervalMs)) {
+      base::Milliseconds(kCastMessageUpdateIntervalMs)) {
     return false;
   }
   last_update_time_ = now;
@@ -174,8 +174,7 @@
     if (it != time_last_nacked_map_.end()) {
       // We have sent a NACK in this frame before, make sure enough time have
       // passed.
-      if (now - it->second <
-          base::TimeDelta::FromMilliseconds(kNackRepeatIntervalMs)) {
+      if (now - it->second < base::Milliseconds(kNackRepeatIntervalMs)) {
         continue;
       }
     }
diff --git a/media/cast/test/receiver/cast_message_builder_unittest.cc b/media/cast/test/receiver/cast_message_builder_unittest.cc
index a4efd25..6842646 100644
--- a/media/cast/test/receiver/cast_message_builder_unittest.cc
+++ b/media/cast/test/receiver/cast_message_builder_unittest.cc
@@ -94,8 +94,7 @@
                                                  0)) {
     rtp_header_.sender_ssrc = kSsrc;
     rtp_header_.is_key_frame = false;
-    testing_clock_.Advance(
-        base::TimeDelta::FromMilliseconds(kStartMillisecond));
+    testing_clock_.Advance(base::Milliseconds(kStartMillisecond));
   }
 
   ~CastMessageBuilderTest() override = default;
@@ -143,11 +142,9 @@
   SetPacketId(4);
   SetMaxPacketId(10);
   InsertPacket();
-  testing_clock_.Advance(
-      base::TimeDelta::FromMilliseconds(kShortTimeIncrementMs));
+  testing_clock_.Advance(base::Milliseconds(kShortTimeIncrementMs));
   EXPECT_FALSE(feedback_.triggered());
-  testing_clock_.Advance(
-      base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
+  testing_clock_.Advance(base::Milliseconds(kLongTimeIncrementMs));
   SetPacketId(5);
   InsertPacket();
   EXPECT_TRUE(feedback_.triggered());
@@ -159,8 +156,7 @@
   SetPacketId(2);
   SetMaxPacketId(5);
   InsertPacket();
-  testing_clock_.Advance(
-      base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
+  testing_clock_.Advance(base::Milliseconds(kLongTimeIncrementMs));
   SetFrameIds(FrameId::first() + 2, FrameId::first() + 1);
   SetPacketId(2);
   SetMaxPacketId(5);
@@ -176,44 +172,38 @@
   SetMaxPacketId(1);
   InsertPacket();
   EXPECT_FALSE(feedback_.triggered());
-  testing_clock_.Advance(
-      base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
+  testing_clock_.Advance(base::Milliseconds(kLongTimeIncrementMs));
   SetFrameIds(FrameId::first() + 2, FrameId::first() + 1);
   SetPacketId(0);
   SetMaxPacketId(0);
   InsertPacket();
   EXPECT_TRUE(feedback_.triggered());
-  testing_clock_.Advance(
-      base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
+  testing_clock_.Advance(base::Milliseconds(kLongTimeIncrementMs));
   SetFrameIds(FrameId::first() + 3, FrameId::first() + 2);
   SetPacketId(0);
   SetMaxPacketId(5);
   InsertPacket();
   EXPECT_TRUE(feedback_.triggered());
   EXPECT_EQ(FrameId::first() + 2, feedback_.last_frame_acked());
-  testing_clock_.Advance(
-      base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
+  testing_clock_.Advance(base::Milliseconds(kLongTimeIncrementMs));
   SetFrameIds(FrameId::first() + 5, FrameId::first() + 5);
   SetPacketId(0);
   SetMaxPacketId(0);
   SetKeyFrame(true);
   InsertPacket();
-  testing_clock_.Advance(
-      base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
+  testing_clock_.Advance(base::Milliseconds(kLongTimeIncrementMs));
   // Simulate 5 being pulled for rendering.
   framer_.ReleaseFrame(FrameId::first() + 5);
   cast_msg_builder_->UpdateCastMessage();
   EXPECT_TRUE(feedback_.triggered());
   EXPECT_EQ(FrameId::first() + 5, feedback_.last_frame_acked());
-  testing_clock_.Advance(
-      base::TimeDelta::FromMilliseconds(kShortTimeIncrementMs));
+  testing_clock_.Advance(base::Milliseconds(kShortTimeIncrementMs));
   SetFrameIds(FrameId::first() + 1, FrameId::first());
   SetPacketId(1);
   SetMaxPacketId(1);
   InsertPacket();
   EXPECT_FALSE(feedback_.triggered());
-  testing_clock_.Advance(
-      base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
+  testing_clock_.Advance(base::Milliseconds(kLongTimeIncrementMs));
   InsertPacket();
   EXPECT_TRUE(feedback_.triggered());
   EXPECT_EQ(FrameId::first() + 5, feedback_.last_frame_acked());
@@ -225,8 +215,7 @@
   SetMaxPacketId(20);
   SetKeyFrame(true);
   InsertPacket();
-  testing_clock_.Advance(
-      base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
+  testing_clock_.Advance(base::Milliseconds(kLongTimeIncrementMs));
   SetPacketId(5);
   InsertPacket();
   EXPECT_TRUE(feedback_.triggered());
@@ -239,12 +228,10 @@
   SetMaxPacketId(20);
   SetKeyFrame(true);
   InsertPacket();
-  testing_clock_.Advance(
-      base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
+  testing_clock_.Advance(base::Milliseconds(kLongTimeIncrementMs));
   SetPacketId(5);
   InsertPacket();
-  testing_clock_.Advance(
-      base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
+  testing_clock_.Advance(base::Milliseconds(kLongTimeIncrementMs));
   EXPECT_TRUE(feedback_.triggered());
   EXPECT_EQ(4u, feedback_.num_missing_packets(FrameId::first()));
   SetFrameIds(FrameId::first() + 1, FrameId::first());
@@ -252,8 +239,7 @@
   SetPacketId(0);
   SetKeyFrame(false);
   InsertPacket();
-  testing_clock_.Advance(
-      base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
+  testing_clock_.Advance(base::Milliseconds(kLongTimeIncrementMs));
   EXPECT_TRUE(feedback_.triggered());
   EXPECT_EQ(19u, feedback_.num_missing_packets(FrameId::first()));
 }
@@ -264,12 +250,10 @@
   SetMaxPacketId(20);
   SetKeyFrame(true);
   InsertPacket();
-  testing_clock_.Advance(
-      base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
+  testing_clock_.Advance(base::Milliseconds(kLongTimeIncrementMs));
   SetPacketId(5);
   InsertPacket();
-  testing_clock_.Advance(
-      base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
+  testing_clock_.Advance(base::Milliseconds(kLongTimeIncrementMs));
   EXPECT_TRUE(feedback_.triggered());
   EXPECT_EQ(4u, feedback_.num_missing_packets(FrameId::first()));
   SetFrameIds(FrameId::first() + 1, FrameId::first() + 1);
@@ -277,8 +261,7 @@
   SetPacketId(0);
   SetKeyFrame(true);
   InsertPacket();
-  testing_clock_.Advance(
-      base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
+  testing_clock_.Advance(base::Milliseconds(kLongTimeIncrementMs));
   EXPECT_TRUE(feedback_.triggered());
   EXPECT_EQ(0u, feedback_.num_missing_packets(FrameId::first()));
 }
@@ -289,8 +272,7 @@
   SetMaxPacketId(0);
   SetKeyFrame(true);
   InsertPacket();
-  testing_clock_.Advance(
-      base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
+  testing_clock_.Advance(base::Milliseconds(kLongTimeIncrementMs));
   EXPECT_TRUE(feedback_.triggered());
   EXPECT_EQ(FrameId::first(), feedback_.last_frame_acked());
   SetFrameIds(FrameId::first() + 3, FrameId::first());
@@ -298,8 +280,7 @@
   InsertPacket();
   EXPECT_TRUE(feedback_.triggered());
   EXPECT_EQ(FrameId::first() + 3, feedback_.last_frame_acked());
-  testing_clock_.Advance(
-      base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
+  testing_clock_.Advance(base::Milliseconds(kLongTimeIncrementMs));
   // Simulate 3 being pulled for rendering.
   framer_.ReleaseFrame(FrameId::first() + 3);
   cast_msg_builder_->UpdateCastMessage();
@@ -314,8 +295,7 @@
   SetMaxPacketId(0);
   SetKeyFrame(true);
   InsertPacket();
-  testing_clock_.Advance(
-      base::TimeDelta::FromMilliseconds(kShortTimeIncrementMs));
+  testing_clock_.Advance(base::Milliseconds(kShortTimeIncrementMs));
   EXPECT_TRUE(feedback_.triggered());
   EXPECT_EQ(FrameId::first(), feedback_.last_frame_acked());
   SetFrameIds(FrameId::first() + 1, FrameId::first());
@@ -323,20 +303,17 @@
   SetMaxPacketId(1);
   SetKeyFrame(false);
   InsertPacket();
-  testing_clock_.Advance(
-      base::TimeDelta::FromMilliseconds(kShortTimeIncrementMs));
+  testing_clock_.Advance(base::Milliseconds(kShortTimeIncrementMs));
   EXPECT_FALSE(feedback_.triggered());
   SetFrameIds(FrameId::first() + 3, FrameId::first());
   SetPacketId(0);
   SetMaxPacketId(0);
   SetKeyFrame(false);
   InsertPacket();
-  testing_clock_.Advance(
-      base::TimeDelta::FromMilliseconds(kShortTimeIncrementMs));
+  testing_clock_.Advance(base::Milliseconds(kShortTimeIncrementMs));
   // Simulate 3 being pulled for rendering.
   framer_.ReleaseFrame(FrameId::first() + 3);
-  testing_clock_.Advance(
-      base::TimeDelta::FromMilliseconds(kShortTimeIncrementMs));
+  testing_clock_.Advance(base::Milliseconds(kShortTimeIncrementMs));
   cast_msg_builder_->UpdateCastMessage();
   EXPECT_TRUE(feedback_.triggered());
   EXPECT_EQ(FrameId::first() + 3, feedback_.last_frame_acked());
@@ -346,8 +323,7 @@
   SetMaxPacketId(1);
   SetKeyFrame(false);
   InsertPacket();
-  testing_clock_.Advance(
-      base::TimeDelta::FromMilliseconds(kShortTimeIncrementMs));
+  testing_clock_.Advance(base::Milliseconds(kShortTimeIncrementMs));
   EXPECT_FALSE(feedback_.triggered());
   EXPECT_EQ(FrameId::first() + 3, feedback_.last_frame_acked());
 }
@@ -361,8 +337,7 @@
   InsertPacket();
 
   FrameId frame_id;
-  testing_clock_.Advance(
-      base::TimeDelta::FromMilliseconds(kShortTimeIncrementMs));
+  testing_clock_.Advance(base::Milliseconds(kShortTimeIncrementMs));
   SetKeyFrame(false);
   for (frame_id = FrameId::first() + 1; frame_id < FrameId::first() + 3;
        ++frame_id) {
@@ -370,8 +345,7 @@
     EXPECT_EQ(frame_id - 1, feedback_.last_frame_acked());
     SetFrameIds(frame_id, frame_id - 1);
     InsertPacket();
-    testing_clock_.Advance(
-        base::TimeDelta::FromMilliseconds(kShortTimeIncrementMs));
+    testing_clock_.Advance(base::Milliseconds(kShortTimeIncrementMs));
   }
   // We should now have entered the slowdown ACK state.
   FrameId expected_frame_id = FrameId::first() + 1;
@@ -385,8 +359,7 @@
     EXPECT_EQ(expected_frame_id, feedback_.last_frame_acked());
     SetFrameIds(frame_id, frame_id - 1);
     InsertPacket();
-    testing_clock_.Advance(
-        base::TimeDelta::FromMilliseconds(kShortTimeIncrementMs));
+    testing_clock_.Advance(base::Milliseconds(kShortTimeIncrementMs));
   }
   EXPECT_FALSE(feedback_.triggered());
   EXPECT_EQ(expected_frame_id, feedback_.last_frame_acked());
@@ -397,8 +370,7 @@
   ++frame_id;
   SetFrameIds(frame_id, frame_id - 1);
   InsertPacket();
-  testing_clock_.Advance(
-      base::TimeDelta::FromMilliseconds(kShortTimeIncrementMs));
+  testing_clock_.Advance(base::Milliseconds(kShortTimeIncrementMs));
   EXPECT_TRUE(feedback_.triggered());
   EXPECT_EQ(frame_id, feedback_.last_frame_acked());
 }
diff --git a/media/cast/test/receiver/frame_receiver.cc b/media/cast/test/receiver/frame_receiver.cc
index fb92f460..0bf6712 100644
--- a/media/cast/test/receiver/frame_receiver.cc
+++ b/media/cast/test/receiver/frame_receiver.cc
@@ -47,10 +47,8 @@
       event_media_type_(event_media_type),
       event_subscriber_(kReceiverRtcpEventHistorySize, event_media_type),
       rtp_timebase_(config.rtp_timebase),
-      target_playout_delay_(
-          base::TimeDelta::FromMilliseconds(config.rtp_max_delay_ms)),
-      expected_frame_duration_(
-          base::TimeDelta::FromSecondsD(1.0 / config.target_frame_rate)),
+      target_playout_delay_(base::Milliseconds(config.rtp_max_delay_ms)),
+      expected_frame_duration_(base::Seconds(1.0 / config.target_frame_rate)),
       reports_are_scheduled_(false),
       framer_(cast_environment->Clock(),
               this,
@@ -273,8 +271,8 @@
     encoded_frame->reference_time = playout_time;
     framer_.ReleaseFrame(encoded_frame->frame_id);
     if (encoded_frame->new_playout_delay_ms) {
-      target_playout_delay_ = base::TimeDelta::FromMilliseconds(
-          encoded_frame->new_playout_delay_ms);
+      target_playout_delay_ =
+          base::Milliseconds(encoded_frame->new_playout_delay_ms);
     }
     cast_environment_->PostTask(
         CastEnvironment::MAIN, FROM_HERE,
@@ -303,8 +301,7 @@
 base::TimeTicks FrameReceiver::GetPlayoutTime(const EncodedFrame& frame) const {
   base::TimeDelta target_playout_delay = target_playout_delay_;
   if (frame.new_playout_delay_ms) {
-    target_playout_delay =
-        base::TimeDelta::FromMilliseconds(frame.new_playout_delay_ms);
+    target_playout_delay = base::Milliseconds(frame.new_playout_delay_ms);
   }
   return lip_sync_reference_time_ + lip_sync_drift_.Current() +
          (frame.rtp_timestamp - lip_sync_rtp_timestamp_)
@@ -318,8 +315,8 @@
   framer_.TimeToSendNextCastMessage(&send_time);
   base::TimeDelta time_to_send =
       send_time - cast_environment_->Clock()->NowTicks();
-  time_to_send = std::max(
-      time_to_send, base::TimeDelta::FromMilliseconds(kMinSchedulingDelayMs));
+  time_to_send =
+      std::max(time_to_send, base::Milliseconds(kMinSchedulingDelayMs));
   cast_environment_->PostDelayedTask(
       CastEnvironment::MAIN, FROM_HERE,
       base::BindOnce(&FrameReceiver::SendNextCastMessage, AsWeakPtr()),
@@ -338,7 +335,7 @@
   cast_environment_->PostDelayedTask(
       CastEnvironment::MAIN, FROM_HERE,
       base::BindOnce(&FrameReceiver::SendNextRtcpReport, AsWeakPtr()),
-      base::TimeDelta::FromMilliseconds(kRtcpReportIntervalMs));
+      base::Milliseconds(kRtcpReportIntervalMs));
 }
 
 void FrameReceiver::SendNextRtcpReport() {
diff --git a/media/cast/test/receiver/frame_receiver_unittest.cc b/media/cast/test/receiver/frame_receiver_unittest.cc
index 69857c50..c6c028d 100644
--- a/media/cast/test/receiver/frame_receiver_unittest.cc
+++ b/media/cast/test/receiver/frame_receiver_unittest.cc
@@ -206,7 +206,7 @@
 
   // Deliver one frame to the receiver and expect to get one frame back.
   const base::TimeDelta target_playout_delay =
-      base::TimeDelta::FromMilliseconds(kPlayoutDelayMillis);
+      base::Milliseconds(kPlayoutDelayMillis);
   frame_client_.AddExpectedResult(
       GetFirstTestFrameId(), testing_clock_.NowTicks() + target_playout_delay);
   FeedOneFrameIntoReceiver();
@@ -244,7 +244,7 @@
       .WillRepeatedly(testing::Return());
 
   const base::TimeDelta time_advance_per_frame =
-      base::TimeDelta::FromSeconds(1) / config_.target_frame_rate;
+      base::Seconds(1) / config_.target_frame_rate;
   const RtpTimeDelta rtp_advance_per_frame =
       RtpTimeDelta::FromTimeDelta(time_advance_per_frame, config_.rtp_timebase);
 
@@ -261,7 +261,7 @@
 
   // Receive one frame and expect to see the first request satisfied.
   const base::TimeDelta target_playout_delay =
-      base::TimeDelta::FromMilliseconds(kPlayoutDelayMillis);
+      base::Milliseconds(kPlayoutDelayMillis);
   frame_client_.AddExpectedResult(
       GetFirstTestFrameId(), first_frame_capture_time + target_playout_delay);
   rtp_header_.rtp_timestamp = RtpTimeTicks();
@@ -358,7 +358,7 @@
       .WillRepeatedly(testing::Return());
 
   const base::TimeDelta time_advance_per_frame =
-      base::TimeDelta::FromSeconds(1) / config_.target_frame_rate;
+      base::Seconds(1) / config_.target_frame_rate;
   const RtpTimeDelta rtp_advance_per_frame =
       RtpTimeDelta::FromTimeDelta(time_advance_per_frame, config_.rtp_timebase);
 
@@ -375,7 +375,7 @@
 
   // Receive one frame and expect to see the first request satisfied.
   const base::TimeDelta target_playout_delay =
-      base::TimeDelta::FromMilliseconds(kPlayoutDelayMillis);
+      base::Milliseconds(kPlayoutDelayMillis);
   frame_client_.AddExpectedResult(
       GetFirstTestFrameId(), first_frame_capture_time + target_playout_delay);
   rtp_header_.rtp_timestamp = RtpTimeTicks();
diff --git a/media/cast/test/receiver/receiver_stats_unittest.cc b/media/cast/test/receiver/receiver_stats_unittest.cc
index 462292a2..5f225ef 100644
--- a/media/cast/test/receiver/receiver_stats_unittest.cc
+++ b/media/cast/test/receiver/receiver_stats_unittest.cc
@@ -22,10 +22,9 @@
 class ReceiverStatsTest : public ::testing::Test {
  protected:
   ReceiverStatsTest() : stats_(&testing_clock_) {
-    testing_clock_.Advance(
-        base::TimeDelta::FromMilliseconds(kStartMillisecond));
+    testing_clock_.Advance(base::Milliseconds(kStartMillisecond));
     start_time_ = testing_clock_.NowTicks();
-    delta_increments_ = base::TimeDelta::FromMilliseconds(kStdTimeIncrementMs);
+    delta_increments_ = base::Milliseconds(kStdTimeIncrementMs);
   }
   ~ReceiverStatsTest() override = default;
 
@@ -63,8 +62,8 @@
     if (i % 4)
       stats_.UpdateStatistics(rtp_header_, kVideoFrequency);
     if (i % 3) {
-      rtp_header_.rtp_timestamp += RtpTimeDelta::FromTimeDelta(
-          base::TimeDelta::FromMilliseconds(33), kVideoFrequency);
+      rtp_header_.rtp_timestamp +=
+          RtpTimeDelta::FromTimeDelta(base::Milliseconds(33), kVideoFrequency);
     }
     ++rtp_header_.sequence_number;
     testing_clock_.Advance(delta_increments_);
@@ -82,8 +81,8 @@
   for (int i = 0; i < 300; ++i) {
     stats_.UpdateStatistics(rtp_header_, kVideoFrequency);
     if (i % 3) {
-      rtp_header_.rtp_timestamp += RtpTimeDelta::FromTimeDelta(
-          base::TimeDelta::FromMilliseconds(33), kVideoFrequency);
+      rtp_header_.rtp_timestamp +=
+          RtpTimeDelta::FromTimeDelta(base::Milliseconds(33), kVideoFrequency);
     }
     ++rtp_header_.sequence_number;
     testing_clock_.Advance(delta_increments_);
@@ -119,8 +118,8 @@
   for (int i = 0; i < 300; ++i) {
     stats_.UpdateStatistics(rtp_header_, kVideoFrequency);
     ++rtp_header_.sequence_number;
-    rtp_header_.rtp_timestamp += RtpTimeDelta::FromTimeDelta(
-        base::TimeDelta::FromMilliseconds(33), kVideoFrequency);
+    rtp_header_.rtp_timestamp +=
+        RtpTimeDelta::FromTimeDelta(base::Milliseconds(33), kVideoFrequency);
     testing_clock_.Advance(delta_increments_);
   }
   RtpReceiverStatistics s = stats_.GetStatistics();
@@ -137,10 +136,9 @@
   for (int i = 0; i < 300; ++i) {
     stats_.UpdateStatistics(rtp_header_, kVideoFrequency);
     ++rtp_header_.sequence_number;
-    rtp_header_.rtp_timestamp += RtpTimeDelta::FromTimeDelta(
-        base::TimeDelta::FromMilliseconds(33), kVideoFrequency);
-    base::TimeDelta additional_delta =
-        base::TimeDelta::FromMilliseconds(kAdditionalIncrement);
+    rtp_header_.rtp_timestamp +=
+        RtpTimeDelta::FromTimeDelta(base::Milliseconds(33), kVideoFrequency);
+    base::TimeDelta additional_delta = base::Milliseconds(kAdditionalIncrement);
     testing_clock_.Advance(delta_increments_ + additional_delta);
   }
   RtpReceiverStatistics s = stats_.GetStatistics();
diff --git a/media/cast/test/receiver/video_decoder_unittest.cc b/media/cast/test/receiver/video_decoder_unittest.cc
index 577134d..928f2cf 100644
--- a/media/cast/test/receiver/video_decoder_unittest.cc
+++ b/media/cast/test/receiver/video_decoder_unittest.cc
@@ -86,7 +86,7 @@
         next_frame_size_, next_frame_timestamp_);
     const base::TimeTicks reference_time =
         base::TimeTicks::UnixEpoch() + next_frame_timestamp_;
-    next_frame_timestamp_ += base::TimeDelta::FromSeconds(1) / kFrameRate;
+    next_frame_timestamp_ += base::Seconds(1) / kFrameRate;
     PopulateVideoFrame(video_frame.get(), 0);
 
     // Encode |frame| into |encoded_frame->data|.
diff --git a/media/cast/test/sender.cc b/media/cast/test/sender.cc
index d8ad38a..3e50c7b 100644
--- a/media/cast/test/sender.cc
+++ b/media/cast/test/sender.cc
@@ -218,7 +218,7 @@
   // CastTransport initialization.
   std::unique_ptr<media::cast::CastTransport> transport_sender =
       media::cast::CastTransport::Create(
-          cast_environment->Clock(), base::TimeDelta::FromSeconds(1),
+          cast_environment->Clock(), base::Seconds(1),
           std::make_unique<TransportClient>(cast_environment->logger()),
           std::make_unique<media::cast::UdpTransportImpl>(
               io_task_executor.task_runner(), net::IPEndPoint(),
@@ -275,7 +275,7 @@
                      std::move(video_event_subscriber),
                      std::move(audio_event_subscriber),
                      std::move(video_log_file), std::move(audio_log_file)),
-      base::TimeDelta::FromSeconds(logging_duration_seconds));
+      base::Seconds(logging_duration_seconds));
 
   io_task_executor.task_runner()->PostDelayedTask(
       FROM_HERE,
@@ -283,7 +283,7 @@
                      std::move(video_stats_subscriber),
                      std::move(audio_stats_subscriber),
                      std::move(offset_estimator)),
-      base::TimeDelta::FromSeconds(logging_duration_seconds));
+      base::Seconds(logging_duration_seconds));
 
   // CastSender initialization.
   std::unique_ptr<media::cast::CastSender> cast_sender =
diff --git a/media/cast/test/simulator.cc b/media/cast/test/simulator.cc
index a8ba880..99d0a59d 100644
--- a/media/cast/test/simulator.cc
+++ b/media/cast/test/simulator.cc
@@ -303,7 +303,7 @@
                    const NetworkSimulationModel& model) {
   // Fake clock. Make sure start time is non zero.
   base::SimpleTestTickClock testing_clock;
-  testing_clock.Advance(base::TimeDelta::FromSeconds(1));
+  testing_clock.Advance(base::Seconds(1));
 
   // Task runner.
   scoped_refptr<FakeSingleThreadTaskRunner> task_runner =
@@ -329,8 +329,8 @@
   // Audio sender config.
   FrameSenderConfig audio_sender_config = GetDefaultAudioSenderConfig();
   audio_sender_config.min_playout_delay =
-      audio_sender_config.max_playout_delay = base::TimeDelta::FromMilliseconds(
-          GetIntegerSwitchValue(kTargetDelay, 400));
+      audio_sender_config.max_playout_delay =
+          base::Milliseconds(GetIntegerSwitchValue(kTargetDelay, 400));
 
   // Audio receiver config.
   FrameReceiverConfig audio_receiver_config =
@@ -362,7 +362,7 @@
 
   // Cast receiver.
   std::unique_ptr<CastTransport> transport_receiver(new CastTransportImpl(
-      &testing_clock, base::TimeDelta::FromSeconds(1),
+      &testing_clock, base::Seconds(1),
       std::make_unique<TransportClient>(receiver_env->logger(), &packet_proxy),
       base::WrapUnique(receiver_to_sender), task_runner));
   std::unique_ptr<CastReceiver> cast_receiver(
@@ -373,7 +373,7 @@
 
   // Cast sender and transport sender.
   std::unique_ptr<CastTransport> transport_sender(new CastTransportImpl(
-      &testing_clock, base::TimeDelta::FromSeconds(1),
+      &testing_clock, base::Seconds(1),
       std::make_unique<TransportClient>(sender_env->logger(), nullptr),
       base::WrapUnique(sender_to_receiver), task_runner));
   std::unique_ptr<CastSender> cast_sender(
@@ -471,10 +471,10 @@
   // by using --run-time= flag.
   base::TimeDelta elapsed_time;
   const base::TimeDelta desired_run_time =
-      base::TimeDelta::FromSeconds(GetIntegerSwitchValue(kRunTime, 180));
+      base::Seconds(GetIntegerSwitchValue(kRunTime, 180));
   while (elapsed_time < desired_run_time) {
     // Each step is 100us.
-    base::TimeDelta step = base::TimeDelta::FromMicroseconds(100);
+    base::TimeDelta step = base::Microseconds(100);
     task_runner->Sleep(step);
     elapsed_time += step;
   }
diff --git a/media/cast/test/skewed_single_thread_task_runner.cc b/media/cast/test/skewed_single_thread_task_runner.cc
index 836b3cb..806bc32 100644
--- a/media/cast/test/skewed_single_thread_task_runner.cc
+++ b/media/cast/test/skewed_single_thread_task_runner.cc
@@ -31,7 +31,7 @@
     base::TimeDelta delay) {
   return task_runner_->PostDelayedTask(
       from_here, std::move(task),
-      base::TimeDelta::FromMicroseconds(delay.InMicroseconds() * skew_));
+      base::Microseconds(delay.InMicroseconds() * skew_));
 }
 
 bool SkewedSingleThreadTaskRunner::RunsTasksInCurrentSequence() const {
@@ -44,7 +44,7 @@
     base::TimeDelta delay) {
   return task_runner_->PostNonNestableDelayedTask(
       from_here, std::move(task),
-      base::TimeDelta::FromMicroseconds(delay.InMicroseconds() * skew_));
+      base::Microseconds(delay.InMicroseconds() * skew_));
 }
 
 }  // namespace test
diff --git a/media/cast/test/skewed_tick_clock.cc b/media/cast/test/skewed_tick_clock.cc
index 4a69a4d..b0c1e69 100644
--- a/media/cast/test/skewed_tick_clock.cc
+++ b/media/cast/test/skewed_tick_clock.cc
@@ -17,9 +17,9 @@
       skew_clock_at_last_set_(last_skew_set_time_) {}
 
 base::TimeTicks SkewedTickClock::SkewTicks(base::TimeTicks now) const {
-  return base::TimeDelta::FromMicroseconds(
-      (now - last_skew_set_time_).InMicroseconds() * skew_) +
-      skew_clock_at_last_set_;
+  return base::Microseconds((now - last_skew_set_time_).InMicroseconds() *
+                            skew_) +
+         skew_clock_at_last_set_;
 }
 
 void SkewedTickClock::SetSkew(double skew, base::TimeDelta offset) {
diff --git a/media/cast/test/utility/tap_proxy.cc b/media/cast/test/utility/tap_proxy.cc
index e6be7f6..b48e0fb0 100644
--- a/media/cast/test/utility/tap_proxy.cc
+++ b/media/cast/test/utility/tap_proxy.cc
@@ -211,8 +211,7 @@
     last_printout = now;
   }
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, base::BindOnce(&CheckByteCounters),
-      base::TimeDelta::FromMilliseconds(100));
+      FROM_HERE, base::BindOnce(&CheckByteCounters), base::Milliseconds(100));
 }
 
 int tun_alloc(char *dev, int flags) {
diff --git a/media/cast/test/utility/udp_proxy.cc b/media/cast/test/utility/udp_proxy.cc
index d88f1b5..3294d77 100644
--- a/media/cast/test/utility/udp_proxy.cc
+++ b/media/cast/test/utility/udp_proxy.cc
@@ -84,7 +84,7 @@
     task_runner_->PostDelayedTask(
         FROM_HERE,
         base::BindOnce(&Buffer::ProcessBuffer, weak_factory_.GetWeakPtr()),
-        base::TimeDelta::FromMicroseconds(microseconds));
+        base::Microseconds(microseconds));
   }
 
   void ProcessBuffer() {
@@ -150,7 +150,7 @@
         FROM_HERE,
         base::BindOnce(&SimpleDelayBase::SendInternal,
                        weak_factory_.GetWeakPtr(), std::move(packet)),
-        base::TimeDelta::FromMicroseconds(static_cast<int64_t>(seconds * 1E6)));
+        base::Microseconds(static_cast<int64_t>(seconds * 1E6)));
   }
  protected:
   virtual double GetDelay() = 0;
@@ -226,10 +226,10 @@
   void Send(std::unique_ptr<Packet> packet) final {
     buffer_.push_back(std::move(packet));
     if (buffer_.size() == 1) {
-      next_send_ = std::max(
-          clock_->NowTicks() +
-          base::TimeDelta::FromSecondsD(base::RandDouble() * random_delay_),
-          next_send_);
+      next_send_ =
+          std::max(clock_->NowTicks() +
+                       base::Seconds(base::RandDouble() * random_delay_),
+                   next_send_);
       ProcessBuffer();
     }
   }
@@ -250,13 +250,13 @@
         FROM_HERE,
         base::BindOnce(&RandomSortedDelay::CauseExtraDelay,
                        weak_factory_.GetWeakPtr()),
-        base::TimeDelta::FromMicroseconds(microseconds));
+        base::Microseconds(microseconds));
   }
 
   void CauseExtraDelay() {
     next_send_ = std::max<base::TimeTicks>(
-        clock_->NowTicks() + base::TimeDelta::FromMicroseconds(
-                                 static_cast<int64_t>(extra_delay_ * 1E6)),
+        clock_->NowTicks() +
+            base::Microseconds(static_cast<int64_t>(extra_delay_ * 1E6)),
         next_send_);
     // An extra delay just happened, wait up to seconds_between_extra_delay_*2
     // before scheduling another one to make the average equal to
@@ -271,8 +271,7 @@
       pipe_->Send(std::move(packet));
       buffer_.pop_front();
 
-      next_send_ += base::TimeDelta::FromSecondsD(
-          base::RandDouble() * random_delay_);
+      next_send_ += base::Seconds(base::RandDouble() * random_delay_);
     }
 
     if (!buffer_.empty()) {
@@ -330,7 +329,7 @@
     task_runner_->PostDelayedTask(
         FROM_HERE,
         base::BindOnce(&NetworkGlitchPipe::Flip, weak_factory_.GetWeakPtr()),
-        base::TimeDelta::FromMicroseconds(microseconds));
+        base::Microseconds(microseconds));
   }
 
   bool works_;
@@ -448,8 +447,7 @@
   // Rate is per milliseconds.
   // The time until next event is exponentially distributed to the
   // inverse of |rate|.
-  return base::TimeDelta::FromMillisecondsD(
-      fabs(-log(1.0 - RandDouble()) / rate));
+  return base::Milliseconds(fabs(-log(1.0 - RandDouble()) / rate));
 }
 
 double InterruptedPoissonProcess::RandDouble() {
@@ -481,7 +479,7 @@
       FROM_HERE,
       base::BindOnce(&InterruptedPoissonProcess::UpdateRates,
                      weak_factory_.GetWeakPtr()),
-      base::TimeDelta::FromSeconds(1));
+      base::Seconds(1));
 }
 
 void InterruptedPoissonProcess::SwitchOff() {
diff --git a/media/cast/test/utility/udp_proxy_main.cc b/media/cast/test/utility/udp_proxy_main.cc
index d0da3bb..11f4b5d 100644
--- a/media/cast/test/utility/udp_proxy_main.cc
+++ b/media/cast/test/utility/udp_proxy_main.cc
@@ -126,8 +126,7 @@
     counter->last_printout = now;
   }
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, base::BindOnce(&CheckByteCounters),
-      base::TimeDelta::FromMilliseconds(100));
+      FROM_HERE, base::BindOnce(&CheckByteCounters), base::Milliseconds(100));
 }
 
 int main(int argc, char** argv) {
diff --git a/media/cdm/cbcs_decryptor_unittest.cc b/media/cdm/cbcs_decryptor_unittest.cc
index 06acb23..b37fb3f6 100644
--- a/media/cdm/cbcs_decryptor_unittest.cc
+++ b/media/cdm/cbcs_decryptor_unittest.cc
@@ -166,8 +166,8 @@
 
   auto encrypted_buffer = CreateEncryptedBuffer(
       encrypted_block, iv_, subsamples, EncryptionPattern(1, 9));
-  encrypted_buffer->set_timestamp(base::TimeDelta::FromDays(2));
-  encrypted_buffer->set_duration(base::TimeDelta::FromMinutes(5));
+  encrypted_buffer->set_timestamp(base::Days(2));
+  encrypted_buffer->set_duration(base::Minutes(5));
   encrypted_buffer->set_is_key_frame(true);
   encrypted_buffer->CopySideDataFrom(encrypted_block.data(),
                                      encrypted_block.size());
diff --git a/media/cdm/cdm_adapter.cc b/media/cdm/cdm_adapter.cc
index 7a0f374..bc3183b3 100644
--- a/media/cdm/cdm_adapter.cc
+++ b/media/cdm/cdm_adapter.cc
@@ -447,7 +447,7 @@
       DecoderBuffer::CopyFrom(decrypted_block->DecryptedBuffer()->Data(),
                               decrypted_block->DecryptedBuffer()->Size()));
   decrypted_buffer->set_timestamp(
-      base::TimeDelta::FromMicroseconds(decrypted_block->Timestamp()));
+      base::Microseconds(decrypted_block->Timestamp()));
   std::move(decrypt_cb).Run(Decryptor::kSuccess, std::move(decrypted_buffer));
 }
 
@@ -656,7 +656,7 @@
 void CdmAdapter::SetTimer(int64_t delay_ms, void* context) {
   DCHECK(task_runner_->BelongsToCurrentThread());
 
-  auto delay = base::TimeDelta::FromMilliseconds(delay_ms);
+  auto delay = base::Milliseconds(delay_ms);
   DVLOG(3) << __func__ << ": delay = " << delay << ", context = " << context;
   TRACE_EVENT2("media", "CdmAdapter::SetTimer", "delay_ms", delay_ms, "context",
                context);
@@ -1079,7 +1079,7 @@
     scoped_refptr<media::AudioBuffer> frame = media::AudioBuffer::CopyFrom(
         sample_format, audio_channel_layout_, audio_channel_count,
         audio_samples_per_second_, frame_count, &channel_ptrs[0],
-        base::TimeDelta::FromMicroseconds(timestamp), pool_);
+        base::Microseconds(timestamp), pool_);
     result_frames->push_back(frame);
 
     data += frame_size;
diff --git a/media/cdm/cenc_decryptor_unittest.cc b/media/cdm/cenc_decryptor_unittest.cc
index 5b57e68..8e484f6d 100644
--- a/media/cdm/cenc_decryptor_unittest.cc
+++ b/media/cdm/cenc_decryptor_unittest.cc
@@ -148,8 +148,8 @@
 
   auto encrypted_buffer =
       CreateEncryptedBuffer(encrypted_block, iv_, subsamples);
-  encrypted_buffer->set_timestamp(base::TimeDelta::FromDays(2));
-  encrypted_buffer->set_duration(base::TimeDelta::FromMinutes(5));
+  encrypted_buffer->set_timestamp(base::Days(2));
+  encrypted_buffer->set_duration(base::Minutes(5));
   encrypted_buffer->set_is_key_frame(true);
   encrypted_buffer->CopySideDataFrom(encrypted_block.data(),
                                      encrypted_block.size());
diff --git a/media/cdm/library_cdm/clear_key_cdm/clear_key_cdm.cc b/media/cdm/library_cdm/clear_key_cdm/clear_key_cdm.cc
index 4bbaa85..df837cf 100644
--- a/media/cdm/library_cdm/clear_key_cdm/clear_key_cdm.cc
+++ b/media/cdm/library_cdm/clear_key_cdm/clear_key_cdm.cc
@@ -91,8 +91,7 @@
   // TODO(xhwang): Get rid of this copy.
   scoped_refptr<media::DecoderBuffer> output_buffer =
       media::DecoderBuffer::CopyFrom(input_buffer.data, input_buffer.data_size);
-  output_buffer->set_timestamp(
-      base::TimeDelta::FromMicroseconds(input_buffer.timestamp));
+  output_buffer->set_timestamp(base::Microseconds(input_buffer.timestamp));
 
   if (input_buffer.encryption_scheme == cdm::EncryptionScheme::kUnencrypted)
     return output_buffer;
@@ -457,7 +456,7 @@
 
     if (!has_set_timer_) {
       // Make sure the CDM can get time and sleep if necessary.
-      constexpr auto kSleepDuration = base::TimeDelta::FromSeconds(1);
+      constexpr auto kSleepDuration = base::Seconds(1);
       auto start_time = base::Time::Now();
       base::PlatformThread::Sleep(kSleepDuration);
       auto time_elapsed = base::Time::Now() - start_time;
diff --git a/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc b/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc
index e0a868f..8a78682 100644
--- a/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc
+++ b/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc
@@ -217,8 +217,7 @@
     cdm::AudioFrames* decoded_frames) {
   DVLOG(1) << "DecodeBuffer()";
   const bool is_end_of_stream = !compressed_buffer;
-  base::TimeDelta timestamp =
-      base::TimeDelta::FromMicroseconds(input_timestamp);
+  base::TimeDelta timestamp = base::Microseconds(input_timestamp);
 
   if (!is_end_of_stream && timestamp != kNoTimestamp) {
     if (last_input_timestamp_ != kNoTimestamp &&
diff --git a/media/cdm/simple_cdm_allocator.cc b/media/cdm/simple_cdm_allocator.cc
index 4e700ea..854ad8c 100644
--- a/media/cdm/simple_cdm_allocator.cc
+++ b/media/cdm/simple_cdm_allocator.cc
@@ -40,7 +40,7 @@
             buffer->Data() + PlaneOffset(cdm::kYPlane),
             buffer->Data() + PlaneOffset(cdm::kUPlane),
             buffer->Data() + PlaneOffset(cdm::kVPlane),
-            base::TimeDelta::FromMicroseconds(Timestamp()));
+            base::Microseconds(Timestamp()));
 
     frame->set_color_space(MediaColorSpace().ToGfxColorSpace());
 
diff --git a/media/ffmpeg/ffmpeg_common.cc b/media/ffmpeg/ffmpeg_common.cc
index d103767..0e1bf87 100644
--- a/media/ffmpeg/ffmpeg_common.cc
+++ b/media/ffmpeg/ffmpeg_common.cc
@@ -73,7 +73,7 @@
 base::TimeDelta ConvertFromTimeBase(const AVRational& time_base,
                                     int64_t timestamp) {
   int64_t microseconds = av_rescale_q(timestamp, time_base, kMicrosBase);
-  return base::TimeDelta::FromMicroseconds(microseconds);
+  return base::Microseconds(microseconds);
 }
 
 int64_t ConvertToTimeBase(const AVRational& time_base,
@@ -374,8 +374,8 @@
 
   base::TimeDelta seek_preroll;
   if (codec_context->seek_preroll > 0) {
-    seek_preroll = base::TimeDelta::FromMicroseconds(
-        codec_context->seek_preroll * 1000000.0 / codec_context->sample_rate);
+    seek_preroll = base::Microseconds(codec_context->seek_preroll * 1000000.0 /
+                                      codec_context->sample_rate);
   }
 
   // AVStream occasionally has invalid extra data. See http://crbug.com/517163
diff --git a/media/ffmpeg/ffmpeg_regression_tests.cc b/media/ffmpeg/ffmpeg_regression_tests.cc
index a450eb82..74fb3ac 100644
--- a/media/ffmpeg/ffmpeg_regression_tests.cc
+++ b/media/ffmpeg/ffmpeg_regression_tests.cc
@@ -223,7 +223,7 @@
                          "security/666770.mp4",
                          PIPELINE_ERROR_DECODE,
                          PIPELINE_ERROR_DECODE,
-                         base::TimeDelta::FromSecondsD(0.0843));
+                         base::Seconds(0.0843));
 FFMPEG_TEST_CASE(Cr666874,
                  "security/666874.mp3",
                  DEMUXER_ERROR_COULD_NOT_OPEN,
diff --git a/media/filters/audio_clock.cc b/media/filters/audio_clock.cc
index 30576e3..73d6806e 100644
--- a/media/filters/audio_clock.cc
+++ b/media/filters/audio_clock.cc
@@ -120,7 +120,7 @@
     frames_until_timestamp += buffered_[i].frames;
   }
 
-  return base::TimeDelta::FromMicroseconds(
+  return base::Microseconds(
       std::round(frames_until_timestamp * microseconds_per_frame_));
 }
 
@@ -146,10 +146,9 @@
       scaled_frames_at_same_rate = scaled_frames;
   }
 
-  *total = base::TimeDelta::FromMicroseconds(scaled_frames *
-                                             microseconds_per_frame_);
-  *same_rate_total = base::TimeDelta::FromMicroseconds(
-      scaled_frames_at_same_rate * microseconds_per_frame_);
+  *total = base::Microseconds(scaled_frames * microseconds_per_frame_);
+  *same_rate_total =
+      base::Microseconds(scaled_frames_at_same_rate * microseconds_per_frame_);
 }
 
 AudioClock::AudioData::AudioData(int64_t frames, double playback_rate)
diff --git a/media/filters/audio_clock.h b/media/filters/audio_clock.h
index 134f299b..286f355 100644
--- a/media/filters/audio_clock.h
+++ b/media/filters/audio_clock.h
@@ -95,12 +95,10 @@
   // media data has been played yet.             by AudioClock, which would be
   //                                             1000 + 500 + 250 = 1750 ms.
   base::TimeDelta front_timestamp() const {
-    return base::TimeDelta::FromMicroseconds(
-        std::round(front_timestamp_micros_));
+    return base::Microseconds(std::round(front_timestamp_micros_));
   }
   base::TimeDelta back_timestamp() const {
-    return base::TimeDelta::FromMicroseconds(
-        std::round(back_timestamp_micros_));
+    return base::Microseconds(std::round(back_timestamp_micros_));
   }
 
   // Returns the amount of wall time until |timestamp| will be played by the
diff --git a/media/filters/audio_clock_unittest.cc b/media/filters/audio_clock_unittest.cc
index dc48da47..65c0e844 100644
--- a/media/filters/audio_clock_unittest.cc
+++ b/media/filters/audio_clock_unittest.cc
@@ -45,8 +45,7 @@
   }
 
   int TimeUntilPlaybackInMilliseconds(int timestamp_ms) {
-    return clock_
-        ->TimeUntilPlayback(base::TimeDelta::FromMilliseconds(timestamp_ms))
+    return clock_->TimeUntilPlayback(base::Milliseconds(timestamp_ms))
         .InMilliseconds();
   }
 
@@ -73,14 +72,14 @@
 };
 
 TEST_F(AudioClockTest, FrontTimestampStartsAtStartTimestamp) {
-  base::TimeDelta expected = base::TimeDelta::FromSeconds(123);
+  base::TimeDelta expected = base::Seconds(123);
   AudioClock clock(expected, sample_rate_);
 
   EXPECT_EQ(expected, clock.front_timestamp());
 }
 
 TEST_F(AudioClockTest, BackTimestampStartsAtStartTimestamp) {
-  base::TimeDelta expected = base::TimeDelta::FromSeconds(123);
+  base::TimeDelta expected = base::Seconds(123);
   AudioClock clock(expected, sample_rate_);
 
   EXPECT_EQ(expected, clock.back_timestamp());
@@ -307,7 +306,7 @@
   // Use number of frames that would be likely to overflow 32-bit integer math.
   const int huge_amount_of_frames = std::numeric_limits<int>::max();
   const base::TimeDelta huge =
-      base::TimeDelta::FromSeconds(huge_amount_of_frames / sample_rate_);
+      base::Seconds(huge_amount_of_frames / sample_rate_);
   EXPECT_EQ(2485, huge.InDays());  // Just to give some context on how big...
 
   // Use zero delay to test calculation of current timestamp.
@@ -345,8 +344,7 @@
   // Elapsing frames less than we have buffered should do nothing.
   const int kDelayFrames = 2;
   for (int i = 1000; i <= kBaseTimeMs; i += 1000) {
-    clock_->CompensateForSuspendedWrites(base::TimeDelta::FromMilliseconds(i),
-                                         kDelayFrames);
+    clock_->CompensateForSuspendedWrites(base::Milliseconds(i), kDelayFrames);
     EXPECT_EQ(kBaseTimeMs - (i - 1000), TimeUntilPlaybackInMilliseconds(0));
 
     // Write silence to simulate maintaining a 7s output buffer.
@@ -355,8 +353,7 @@
 
   // Exhausting all frames should advance timestamps and prime the buffer with
   // our delay frames value.
-  clock_->CompensateForSuspendedWrites(base::TimeDelta::FromMilliseconds(7000),
-                                       kDelayFrames);
+  clock_->CompensateForSuspendedWrites(base::Milliseconds(7000), kDelayFrames);
   EXPECT_EQ(kDelayFrames * 100, TimeUntilPlaybackInMilliseconds(1000));
 }
 
@@ -367,7 +364,7 @@
 
   // Write ~2 hours of data to clock to give any error a significant chance to
   // accumulate.
-  while (clock_->back_timestamp() <= base::TimeDelta::FromHours(2)) {
+  while (clock_->back_timestamp() <= base::Hours(2)) {
     frames_written += 1024;
     WroteAudio(1024, 1024, 0, 1);
   }
diff --git a/media/filters/audio_decoder_stream_unittest.cc b/media/filters/audio_decoder_stream_unittest.cc
index 9a5ffce..c0a3402 100644
--- a/media/filters/audio_decoder_stream_unittest.cc
+++ b/media/filters/audio_decoder_stream_unittest.cc
@@ -84,7 +84,7 @@
   void ProduceDecoderOutput(scoped_refptr<DecoderBuffer> buffer,
                             AudioDecoder::DecodeCB decode_cb) {
     // Make sure successive AudioBuffers have increasing timestamps.
-    last_timestamp_ += base::TimeDelta::FromMilliseconds(27);
+    last_timestamp_ += base::Milliseconds(27);
     const auto& config = demuxer_stream_.audio_decoder_config();
     base::SequencedTaskRunnerHandle::Get()->PostTask(
         FROM_HERE,
diff --git a/media/filters/audio_decoder_unittest.cc b/media/filters/audio_decoder_unittest.cc
index 66ebdb85..b4724be 100644
--- a/media/filters/audio_decoder_unittest.cc
+++ b/media/filters/audio_decoder_unittest.cc
@@ -115,10 +115,10 @@
           packet, AV_PKT_DATA_SKIP_SAMPLES, &skip_samples_size));
   if (skip_samples_size < 4)
     return;
-  buffer->set_discard_padding(std::make_pair(
-      base::TimeDelta::FromSecondsD(base::ByteSwapToLE32(*skip_samples_ptr) /
-                                    samples_per_second),
-      base::TimeDelta()));
+  buffer->set_discard_padding(
+      std::make_pair(base::Seconds(base::ByteSwapToLE32(*skip_samples_ptr) /
+                                   samples_per_second),
+                     base::TimeDelta()));
 }
 
 }  // namespace
diff --git a/media/filters/audio_file_reader.cc b/media/filters/audio_file_reader.cc
index b7cdd31c..976aa35 100644
--- a/media/filters/audio_file_reader.cc
+++ b/media/filters/audio_file_reader.cc
@@ -246,8 +246,8 @@
     const base::TimeDelta pkt_duration = ConvertFromTimeBase(
         glue_->format_context()->streams[stream_index_]->time_base,
         frame->pkt_duration + std::min(static_cast<int64_t>(0), frame->pts));
-    const base::TimeDelta frame_duration = base::TimeDelta::FromSecondsD(
-        frames_read / static_cast<double>(sample_rate_));
+    const base::TimeDelta frame_duration =
+        base::Seconds(frames_read / static_cast<double>(sample_rate_));
 
     if (pkt_duration < frame_duration && pkt_duration > base::TimeDelta()) {
       const int new_frames_read =
diff --git a/media/filters/audio_file_reader_unittest.cc b/media/filters/audio_file_reader_unittest.cc
index f33c3aae..fc295d8 100644
--- a/media/filters/audio_file_reader_unittest.cc
+++ b/media/filters/audio_file_reader_unittest.cc
@@ -156,42 +156,42 @@
 
 TEST_F(AudioFileReaderTest, UnknownDuration) {
   RunTest("bear-320x240-live.webm", "-3.59,-2.06,-0.43,2.15,0.77,-0.95,", 2,
-          44100, base::TimeDelta::FromMicroseconds(-1), -1, 121024);
+          44100, base::Microseconds(-1), -1, 121024);
 }
 
 TEST_F(AudioFileReaderTest, WithVideo) {
   RunTest("bear.ogv", "-0.73,0.92,0.48,-0.07,-0.92,-0.88,", 2, 44100,
-          base::TimeDelta::FromMicroseconds(1011520), 44609, 45632);
+          base::Microseconds(1011520), 44609, 45632);
 }
 
 TEST_F(AudioFileReaderTest, Vorbis) {
   RunTest("sfx.ogg", "2.17,3.31,5.15,6.33,5.97,4.35,", 1, 44100,
-          base::TimeDelta::FromMicroseconds(350001), 15436, 15936);
+          base::Microseconds(350001), 15436, 15936);
 }
 
 TEST_F(AudioFileReaderTest, WaveU8) {
   RunTest("sfx_u8.wav", "-1.23,-1.57,-1.14,-0.91,-0.87,-0.07,", 1, 44100,
-          base::TimeDelta::FromMicroseconds(288414), 12720, 12719);
+          base::Microseconds(288414), 12720, 12719);
 }
 
 TEST_F(AudioFileReaderTest, WaveS16LE) {
   RunTest("sfx_s16le.wav", "3.05,2.87,3.00,3.32,3.58,4.08,", 1, 44100,
-          base::TimeDelta::FromMicroseconds(288414), 12720, 12719);
+          base::Microseconds(288414), 12720, 12719);
 }
 
 TEST_F(AudioFileReaderTest, WaveS24LE) {
   RunTest("sfx_s24le.wav", "3.03,2.86,2.99,3.31,3.57,4.06,", 1, 44100,
-          base::TimeDelta::FromMicroseconds(288414), 12720, 12719);
+          base::Microseconds(288414), 12720, 12719);
 }
 
 TEST_F(AudioFileReaderTest, WaveF32LE) {
   RunTest("sfx_f32le.wav", "3.03,2.86,2.99,3.31,3.57,4.06,", 1, 44100,
-          base::TimeDelta::FromMicroseconds(288414), 12720, 12719);
+          base::Microseconds(288414), 12720, 12719);
 }
 
 TEST_F(AudioFileReaderTest, MP3) {
   RunTest("sfx.mp3", "1.30,2.72,4.56,5.08,3.74,2.03,", 1, 44100,
-          base::TimeDelta::FromMicroseconds(313470), 13825, 11025);
+          base::Microseconds(313470), 13825, 11025);
 }
 
 TEST_F(AudioFileReaderTest, CorruptMP3) {
@@ -199,23 +199,23 @@
   // make any guarantees on packet consistency in this case.
   disable_packet_verification();
   RunTest("corrupt.mp3", "-4.95,-2.95,-0.44,1.16,0.31,-2.21,", 1, 44100,
-          base::TimeDelta::FromMicroseconds(1018801), 44930, 44928);
+          base::Microseconds(1018801), 44930, 44928);
 }
 
 #if BUILDFLAG(USE_PROPRIETARY_CODECS)
 TEST_F(AudioFileReaderTest, AAC) {
   RunTest("sfx.m4a", "0.79,2.31,4.15,4.92,4.04,1.44,", 1, 44100,
-          base::TimeDelta::FromMicroseconds(371660), 16391, 12701);
+          base::Microseconds(371660), 16391, 12701);
 }
 
 TEST_F(AudioFileReaderTest, AAC_SinglePacket) {
   RunTest("440hz-10ms.m4a", "3.77,4.53,4.75,3.48,3.67,3.76,", 1, 44100,
-          base::TimeDelta::FromMicroseconds(69660), 3073, 441);
+          base::Microseconds(69660), 3073, 441);
 }
 
 TEST_F(AudioFileReaderTest, AAC_ADTS) {
   RunTest("sfx.adts", "1.80,1.66,2.31,3.26,4.46,3.36,", 1, 44100,
-          base::TimeDelta::FromMicroseconds(384733), 16967, 13312);
+          base::Microseconds(384733), 16967, 13312);
 }
 
 TEST_F(AudioFileReaderTest, MidStreamConfigChangesFail) {
@@ -229,7 +229,7 @@
 
 TEST_F(AudioFileReaderTest, WaveValidFourChannelLayout) {
   RunTest("4ch.wav", "131.71,38.02,130.31,44.89,135.98,42.52,", 4, 44100,
-          base::TimeDelta::FromMicroseconds(100001), 4411, 4410);
+          base::Microseconds(100001), 4411, 4410);
 }
 
 TEST_F(AudioFileReaderTest, ReadPartialMP3) {
diff --git a/media/filters/audio_renderer_algorithm.cc b/media/filters/audio_renderer_algorithm.cc
index d3e1e1f..1219552 100644
--- a/media/filters/audio_renderer_algorithm.cc
+++ b/media/filters/audio_renderer_algorithm.cc
@@ -47,21 +47,18 @@
 //        |search_block_center_offset_|.
 
 // Overlap-and-add window size in milliseconds.
-constexpr base::TimeDelta kOlaWindowSize =
-    base::TimeDelta::FromMilliseconds(20);
+constexpr base::TimeDelta kOlaWindowSize = base::Milliseconds(20);
 
 // Size of search interval in milliseconds. The search interval is
 // [-delta delta] around |output_index_| * |playback_rate|. So the search
 // interval is 2 * delta.
-constexpr base::TimeDelta kWsolaSearchInterval =
-    base::TimeDelta::FromMilliseconds(30);
+constexpr base::TimeDelta kWsolaSearchInterval = base::Milliseconds(30);
 
 // The maximum size for the |audio_buffer_|. Arbitrarily determined.
-constexpr base::TimeDelta kMaxCapacity = base::TimeDelta::FromSeconds(3);
+constexpr base::TimeDelta kMaxCapacity = base::Seconds(3);
 
 // The minimum size for the |audio_buffer_|. Arbitrarily determined.
-constexpr base::TimeDelta kStartingCapacity =
-    base::TimeDelta::FromMilliseconds(200);
+constexpr base::TimeDelta kStartingCapacity = base::Milliseconds(200);
 
 // The minimum size for the |audio_buffer_| for encrypted streams.
 // Set this to be larger than |kStartingCapacity| because the performance of
@@ -69,7 +66,7 @@
 // potentially IPC overhead. For the context, see https://crbug.com/403462,
 // https://crbug.com/718161 and https://crbug.com/879970.
 constexpr base::TimeDelta kStartingCapacityForEncrypted =
-    base::TimeDelta::FromMilliseconds(500);
+    base::Milliseconds(500);
 
 AudioRendererAlgorithm::AudioRendererAlgorithm(MediaLog* media_log)
     : AudioRendererAlgorithm(
diff --git a/media/filters/audio_renderer_algorithm_unittest.cc b/media/filters/audio_renderer_algorithm_unittest.cc
index 465b4cd..13e19712 100644
--- a/media/filters/audio_renderer_algorithm_unittest.cc
+++ b/media/filters/audio_renderer_algorithm_unittest.cc
@@ -964,7 +964,7 @@
   EXPECT_FALSE(algorithm_.IsQueueFull());
 
   // Set a new *slightly higher* hint. Verify we're no longer "adequate".
-  low_latency_hint += base::TimeDelta::FromMilliseconds(10);
+  low_latency_hint += base::Milliseconds(10);
   algorithm_.SetLatencyHint(low_latency_hint);
   EXPECT_FALSE(algorithm_.IsQueueAdequateForPlayback());
 
@@ -1070,9 +1070,9 @@
   algorithm_.FlushBuffers();
 
   // Set a crazy high latency hint.
-  algorithm_.SetLatencyHint(base::TimeDelta::FromSeconds(100));
+  algorithm_.SetLatencyHint(base::Seconds(100));
 
-  const base::TimeDelta kDefaultMax = base::TimeDelta::FromSeconds(3);
+  const base::TimeDelta kDefaultMax = base::Seconds(3);
   // Verify "full" and "adequate" thresholds increased, but to a known max well
   // bellow the hinted value.
   EXPECT_GT(algorithm_.QueueCapacity(), default_capacity);
@@ -1083,7 +1083,7 @@
   algorithm_.FlushBuffers();
 
   // Set an impossibly low latency hint.
-  algorithm_.SetLatencyHint(base::TimeDelta::FromSeconds(0));
+  algorithm_.SetLatencyHint(base::Seconds(0));
 
   // Verify "full" and "adequate" thresholds decreased, but to a known minimum
   // well above the hinted value.
diff --git a/media/filters/audio_timestamp_validator_unittest.cc b/media/filters/audio_timestamp_validator_unittest.cc
index a391a2e..17ca4a7 100644
--- a/media/filters/audio_timestamp_validator_unittest.cc
+++ b/media/filters/audio_timestamp_validator_unittest.cc
@@ -23,8 +23,7 @@
 static const SampleFormat kSampleFormat = kSampleFormatPlanarF32;
 static const base::TimeDelta kSeekPreroll;
 static const int kSamplesPerSecond = 10000;
-static const base::TimeDelta kBufferDuration =
-    base::TimeDelta::FromMilliseconds(20);
+static const base::TimeDelta kBufferDuration = base::Milliseconds(20);
 static const ChannelLayout kChannelLayout = CHANNEL_LAYOUT_STEREO;
 static const int kChannelCount = 2;
 static const int kChannels = ChannelLayoutToChannelCount(kChannelLayout);
@@ -78,9 +77,8 @@
 
   AudioTimestampValidator validator(decoder_config, &media_log_);
 
-  const base::TimeDelta kRandomOffsets[] = {
-      base::TimeDelta::FromMilliseconds(100),
-      base::TimeDelta::FromMilliseconds(350)};
+  const base::TimeDelta kRandomOffsets[] = {base::Milliseconds(100),
+                                            base::Milliseconds(350)};
 
   for (int i = 0; i < 100; ++i) {
     // Each buffer's timestamp is kBufferDuration from the previous buffer.
@@ -168,7 +166,7 @@
     // Halfway through the stream, introduce sudden gap of 50 milliseconds.
     base::TimeDelta offset;
     if (i >= 50)
-      offset = base::TimeDelta::FromMilliseconds(100);
+      offset = base::Milliseconds(100);
 
     // This gap never widens, so expect only a single warning when its first
     // introduced.
@@ -220,7 +218,7 @@
     // iteration.
     base::TimeDelta offset;
     if (i >= output_delay_ + 2)
-      offset = i * base::TimeDelta::FromMilliseconds(1);
+      offset = i * base::Milliseconds(1);
 
     scoped_refptr<DecoderBuffer> encoded_buffer = new DecoderBuffer(0);
     encoded_buffer->set_timestamp((i * kBufferDuration) + offset);
@@ -228,7 +226,7 @@
     // Expect gap warnings to start when drift hits 50 milliseconds. Warnings
     // should continue as the gap widens until log limit is hit.
 
-    if (offset > base::TimeDelta::FromMilliseconds(50)) {
+    if (offset > base::Milliseconds(50)) {
       EXPECT_LIMITED_MEDIA_LOG(HasSubstr("timestamp gap detected"),
                                num_timestamp_gap_warnings,
                                kMaxTimestampGapWarnings);
@@ -253,10 +251,9 @@
 INSTANTIATE_TEST_SUITE_P(
     All,
     AudioTimestampValidatorTest,
-    ::testing::Combine(
-        ::testing::Values(0, 10),             // output delay
-        ::testing::Values(0, 512),            // codec delay
-        ::testing::Values(base::TimeDelta(),  // front discard
-                          base::TimeDelta::FromMilliseconds(65))));
+    ::testing::Combine(::testing::Values(0, 10),             // output delay
+                       ::testing::Values(0, 512),            // codec delay
+                       ::testing::Values(base::TimeDelta(),  // front discard
+                                         base::Milliseconds(65))));
 
 }  // namespace media
diff --git a/media/filters/chunk_demuxer_unittest.cc b/media/filters/chunk_demuxer_unittest.cc
index 80766b1..a1b29204 100644
--- a/media/filters/chunk_demuxer_unittest.cc
+++ b/media/filters/chunk_demuxer_unittest.cc
@@ -104,7 +104,7 @@
 const int kDefaultSecondClusterEndTimestamp = 132;
 
 base::TimeDelta kDefaultDuration() {
-  return base::TimeDelta::FromMilliseconds(201224);
+  return base::Milliseconds(201224);
 }
 
 // Write an integer into buffer in the form of vint that spans 8 bytes.
@@ -802,8 +802,7 @@
     ExpectInitMediaLogs(HAS_AUDIO | HAS_VIDEO);
     EXPECT_CALL(*this, InitSegmentReceivedMock(_));
     demuxer_->Initialize(
-        &host_, CreateInitDoneCallback(base::TimeDelta::FromMilliseconds(2744),
-                                       PIPELINE_OK));
+        &host_, CreateInitDoneCallback(base::Milliseconds(2744), PIPELINE_OK));
 
     if (AddId(kSourceId, HAS_AUDIO | HAS_VIDEO) != ChunkDemuxer::kOk)
       return false;
@@ -812,7 +811,7 @@
     EXPECT_MEDIA_LOG(WebMSimpleBlockDurationEstimated(2)).Times(7);
     // Expect duration adjustment since actual duration differs slightly from
     // duration in the init segment.
-    EXPECT_CALL(host_, SetDuration(base::TimeDelta::FromMilliseconds(2768)));
+    EXPECT_CALL(host_, SetDuration(base::Milliseconds(2768)));
     EXPECT_TRUE(AppendData(bear1->data(), bear1->data_size()));
     // Last audio frame has timestamp 2721 and duration 24 (estimated from max
     // seen so far for audio track).
@@ -1195,16 +1194,14 @@
 
       if (timestamps[i].audio_time_ms != kSkip) {
         ReadAudio(base::BindOnce(
-            &OnReadDone,
-            base::TimeDelta::FromMilliseconds(timestamps[i].audio_time_ms),
+            &OnReadDone, base::Milliseconds(timestamps[i].audio_time_ms),
             &audio_read_done));
         EXPECT_TRUE(audio_read_done);
       }
 
       if (timestamps[i].video_time_ms != kSkip) {
         ReadVideo(base::BindOnce(
-            &OnReadDone,
-            base::TimeDelta::FromMilliseconds(timestamps[i].video_time_ms),
+            &OnReadDone, base::Milliseconds(timestamps[i].video_time_ms),
             &video_read_done));
         EXPECT_TRUE(video_read_done);
       }
@@ -1477,7 +1474,7 @@
 
   EXPECT_CALL(*this, Checkpoint(1));
 
-  Seek(base::TimeDelta::FromMilliseconds(46));
+  Seek(base::Milliseconds(46));
 
   EXPECT_CALL(*this, Checkpoint(2));
 
@@ -1521,7 +1518,7 @@
   ExpectRead(DemuxerStream::VIDEO, 0);
   ExpectRead(DemuxerStream::AUDIO, kAudioBlockDuration);
 
-  Seek(base::TimeDelta::FromSeconds(5));
+  Seek(base::Seconds(5));
 
   // Append the rest of the cluster.
   ASSERT_TRUE(
@@ -1553,10 +1550,10 @@
 
   bool audio_read_done = false;
   bool video_read_done = false;
-  ReadAudio(base::BindOnce(&OnReadDone, base::TimeDelta::FromMilliseconds(0),
-                           &audio_read_done));
-  ReadVideo(base::BindOnce(&OnReadDone, base::TimeDelta::FromMilliseconds(0),
-                           &video_read_done));
+  ReadAudio(
+      base::BindOnce(&OnReadDone, base::Milliseconds(0), &audio_read_done));
+  ReadVideo(
+      base::BindOnce(&OnReadDone, base::Milliseconds(0), &video_read_done));
 
   EXPECT_TRUE(audio_read_done);
   EXPECT_TRUE(video_read_done);
@@ -1593,7 +1590,7 @@
       kSourceId, cluster_c->data(), cluster_c->size(),
       append_window_start_for_next_append_, append_window_end_for_next_append_,
       &timestamp_offset_map_[kSourceId]));
-  Seek(base::TimeDelta::FromMilliseconds(45));
+  Seek(base::Milliseconds(45));
   CheckExpectedBuffers(audio_stream, "45K");
   CheckExpectedBuffers(video_stream, "45K");
 }
@@ -1830,10 +1827,10 @@
   EndOfStreamHelper end_of_stream_helper_1(audio_stream, video_stream);
   EndOfStreamHelper end_of_stream_helper_2(audio_stream, video_stream);
 
-  ReadAudio(base::BindOnce(&OnReadDone, base::TimeDelta::FromMilliseconds(0),
-                           &audio_read_done_1));
-  ReadVideo(base::BindOnce(&OnReadDone, base::TimeDelta::FromMilliseconds(0),
-                           &video_read_done_1));
+  ReadAudio(
+      base::BindOnce(&OnReadDone, base::Milliseconds(0), &audio_read_done_1));
+  ReadVideo(
+      base::BindOnce(&OnReadDone, base::Milliseconds(0), &video_read_done_1));
   base::RunLoop().RunUntilIdle();
 
   EXPECT_TRUE(audio_read_done_1);
@@ -1841,8 +1838,7 @@
 
   end_of_stream_helper_1.RequestReads();
 
-  EXPECT_CALL(host_, SetDuration(
-      base::TimeDelta::FromMilliseconds(kVideoBlockDuration)));
+  EXPECT_CALL(host_, SetDuration(base::Milliseconds(kVideoBlockDuration)));
   MarkEndOfStream(PIPELINE_OK);
 
   end_of_stream_helper_1.CheckIfReadDonesWereCalled(true);
@@ -1866,10 +1862,10 @@
   EndOfStreamHelper end_of_stream_helper_2(audio_stream, video_stream);
   EndOfStreamHelper end_of_stream_helper_3(audio_stream, video_stream);
 
-  ReadAudio(base::BindOnce(&OnReadDone, base::TimeDelta::FromMilliseconds(0),
-                           &audio_read_done_1));
-  ReadVideo(base::BindOnce(&OnReadDone, base::TimeDelta::FromMilliseconds(0),
-                           &video_read_done_1));
+  ReadAudio(
+      base::BindOnce(&OnReadDone, base::Milliseconds(0), &audio_read_done_1));
+  ReadVideo(
+      base::BindOnce(&OnReadDone, base::Milliseconds(0), &video_read_done_1));
 
   end_of_stream_helper_1.RequestReads();
 
@@ -1877,8 +1873,7 @@
   EXPECT_TRUE(video_read_done_1);
   end_of_stream_helper_1.CheckIfReadDonesWereCalled(false);
 
-  EXPECT_CALL(host_, SetDuration(
-      base::TimeDelta::FromMilliseconds(kVideoBlockDuration)));
+  EXPECT_CALL(host_, SetDuration(base::Milliseconds(kVideoBlockDuration)));
   MarkEndOfStream(PIPELINE_OK);
 
   end_of_stream_helper_1.CheckIfReadDonesWereCalled(true);
@@ -1896,15 +1891,15 @@
   ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
 
   ASSERT_TRUE(AppendCluster(0, 10));
-  EXPECT_CALL(host_, SetDuration(base::TimeDelta::FromMilliseconds(138)));
+  EXPECT_CALL(host_, SetDuration(base::Milliseconds(138)));
   MarkEndOfStream(PIPELINE_OK);
 
   // Start the first seek.
-  Seek(base::TimeDelta::FromMilliseconds(20));
+  Seek(base::Milliseconds(20));
 
   // Simulate another seek being requested before the first
   // seek has finished prerolling.
-  base::TimeDelta seek_time2 = base::TimeDelta::FromMilliseconds(30);
+  base::TimeDelta seek_time2 = base::Milliseconds(30);
   demuxer_->CancelPendingSeek(seek_time2);
 
   // Finish second seek.
@@ -1931,7 +1926,7 @@
 
   CheckExpectedRanges("{ [0,46) }");
 
-  EXPECT_CALL(host_, SetDuration(base::TimeDelta::FromMilliseconds(66)));
+  EXPECT_CALL(host_, SetDuration(base::Milliseconds(66)));
   MarkEndOfStream(PIPELINE_OK);
 
   CheckExpectedRanges("{ [0,66) }");
@@ -1989,10 +1984,10 @@
 
   // Expect duration adjustment since actual duration differs slightly from
   // duration in the init segment.
-  EXPECT_CALL(host_, SetDuration(base::TimeDelta::FromMilliseconds(2768)));
+  EXPECT_CALL(host_, SetDuration(base::Milliseconds(2768)));
 
   ASSERT_TRUE(ParseWebMFile("bear-320x240.webm", buffer_timestamps,
-                            base::TimeDelta::FromMilliseconds(2744)));
+                            base::Milliseconds(2744)));
   EXPECT_EQ(212949, demuxer_->GetMemoryUsage());
 }
 
@@ -2033,11 +2028,10 @@
 
   // Expect duration adjustment since actual duration differs slightly from
   // duration in the init segment.
-  EXPECT_CALL(host_, SetDuration(base::TimeDelta::FromMilliseconds(2768)));
+  EXPECT_CALL(host_, SetDuration(base::Milliseconds(2768)));
 
   ASSERT_TRUE(ParseWebMFile("bear-320x240-audio-only.webm", buffer_timestamps,
-                            base::TimeDelta::FromMilliseconds(2744),
-                            HAS_AUDIO));
+                            base::Milliseconds(2744), HAS_AUDIO));
   EXPECT_EQ(18624, demuxer_->GetMemoryUsage());
 }
 
@@ -2055,11 +2049,10 @@
 
   // Expect duration adjustment since actual duration differs slightly from
   // duration in the init segment.
-  EXPECT_CALL(host_, SetDuration(base::TimeDelta::FromMilliseconds(2736)));
+  EXPECT_CALL(host_, SetDuration(base::Milliseconds(2736)));
 
   ASSERT_TRUE(ParseWebMFile("bear-320x240-video-only.webm", buffer_timestamps,
-                            base::TimeDelta::FromMilliseconds(2703),
-                            HAS_VIDEO));
+                            base::Milliseconds(2703), HAS_VIDEO));
   EXPECT_EQ(194325, demuxer_->GetMemoryUsage());
 }
 
@@ -2075,12 +2068,12 @@
 
   // Expect duration adjustment since actual duration differs slightly from
   // duration in the init segment.
-  EXPECT_CALL(host_, SetDuration(base::TimeDelta::FromMilliseconds(2768)));
+  EXPECT_CALL(host_, SetDuration(base::Milliseconds(2768)));
 
   ExpectInitMediaLogs(HAS_AUDIO | HAS_VIDEO);
   EXPECT_MEDIA_LOG(WebMSimpleBlockDurationEstimated(2));
   ASSERT_TRUE(ParseWebMFile("bear-320x240-altref.webm", buffer_timestamps,
-                            base::TimeDelta::FromMilliseconds(2767)));
+                            base::Milliseconds(2767)));
 }
 
 // Verify that we output buffers before the entire cluster has been parsed.
@@ -2091,10 +2084,10 @@
 
   bool audio_read_done = false;
   bool video_read_done = false;
-  ReadAudio(base::BindOnce(&OnReadDone, base::TimeDelta::FromMilliseconds(0),
-                           &audio_read_done));
-  ReadVideo(base::BindOnce(&OnReadDone, base::TimeDelta::FromMilliseconds(0),
-                           &video_read_done));
+  ReadAudio(
+      base::BindOnce(&OnReadDone, base::Milliseconds(0), &audio_read_done));
+  ReadVideo(
+      base::BindOnce(&OnReadDone, base::Milliseconds(0), &video_read_done));
 
   // Make sure the reads haven't completed yet.
   EXPECT_FALSE(audio_read_done);
@@ -2113,10 +2106,10 @@
 
   audio_read_done = false;
   video_read_done = false;
-  ReadAudio(base::BindOnce(&OnReadDone, base::TimeDelta::FromMilliseconds(23),
-                           &audio_read_done));
-  ReadVideo(base::BindOnce(&OnReadDone, base::TimeDelta::FromMilliseconds(33),
-                           &video_read_done));
+  ReadAudio(
+      base::BindOnce(&OnReadDone, base::Milliseconds(23), &audio_read_done));
+  ReadVideo(
+      base::BindOnce(&OnReadDone, base::Milliseconds(33), &video_read_done));
 
   // Make sure the reads haven't completed yet.
   EXPECT_FALSE(audio_read_done);
@@ -2327,7 +2320,7 @@
   ASSERT_TRUE(AppendCluster(GenerateCluster(0, 4)));
 
   // Seek to an unbuffered region.
-  Seek(base::TimeDelta::FromSeconds(50));
+  Seek(base::Seconds(50));
 
   // Attempt to read in unbuffered area; should not fulfill the read.
   bool audio_read_done = false;
@@ -2339,7 +2332,7 @@
 
   // Now cancel the pending seek, which should flush the reads with empty
   // buffers.
-  base::TimeDelta seek_time = base::TimeDelta::FromSeconds(0);
+  base::TimeDelta seek_time = base::Seconds(0);
   demuxer_->CancelPendingSeek(seek_time);
   base::RunLoop().RunUntilIdle();
   EXPECT_TRUE(audio_read_done);
@@ -2357,8 +2350,8 @@
   ASSERT_TRUE(AppendCluster(GenerateCluster(0, 4)));
 
   // Start waiting for a seek.
-  base::TimeDelta seek_time1 = base::TimeDelta::FromSeconds(50);
-  base::TimeDelta seek_time2 = base::TimeDelta::FromSeconds(0);
+  base::TimeDelta seek_time1 = base::Seconds(50);
+  base::TimeDelta seek_time2 = base::Seconds(0);
   demuxer_->StartWaitingForSeek(seek_time1);
 
   // Now cancel the upcoming seek to an unbuffered region.
@@ -2394,22 +2387,20 @@
   // Read() should return buffers at 0.
   bool audio_read_done = false;
   bool video_read_done = false;
-  ReadAudio(base::BindOnce(&OnReadDone, base::TimeDelta::FromMilliseconds(0),
-                           &audio_read_done));
-  ReadVideo(base::BindOnce(&OnReadDone, base::TimeDelta::FromMilliseconds(0),
-                           &video_read_done));
+  ReadAudio(
+      base::BindOnce(&OnReadDone, base::Milliseconds(0), &audio_read_done));
+  ReadVideo(
+      base::BindOnce(&OnReadDone, base::Milliseconds(0), &video_read_done));
   EXPECT_TRUE(audio_read_done);
   EXPECT_TRUE(video_read_done);
 
   // Seek to 3 (an unbuffered region).
-  Seek(base::TimeDelta::FromSeconds(3));
+  Seek(base::Seconds(3));
 
   audio_read_done = false;
   video_read_done = false;
-  ReadAudio(base::BindOnce(&OnReadDone, base::TimeDelta::FromSeconds(3),
-                           &audio_read_done));
-  ReadVideo(base::BindOnce(&OnReadDone, base::TimeDelta::FromSeconds(3),
-                           &video_read_done));
+  ReadAudio(base::BindOnce(&OnReadDone, base::Seconds(3), &audio_read_done));
+  ReadVideo(base::BindOnce(&OnReadDone, base::Seconds(3), &video_read_done));
   // Read()s should not return until after data is appended at the Seek point.
   EXPECT_FALSE(audio_read_done);
   EXPECT_FALSE(video_read_done);
@@ -2444,7 +2435,7 @@
   // Seeking past the end of video.
   // Note: audio data is available for that seek point.
   bool seek_cb_was_called = false;
-  base::TimeDelta seek_time = base::TimeDelta::FromMilliseconds(110);
+  base::TimeDelta seek_time = base::Milliseconds(110);
   demuxer_->StartWaitingForSeek(seek_time);
   demuxer_->Seek(seek_time,
                  base::BindOnce(OnSeekDone_OKExpected, &seek_cb_was_called));
@@ -2452,8 +2443,7 @@
 
   EXPECT_FALSE(seek_cb_was_called);
 
-  EXPECT_CALL(host_, SetDuration(
-      base::TimeDelta::FromMilliseconds(120)));
+  EXPECT_CALL(host_, SetDuration(base::Milliseconds(120)));
   MarkEndOfStream(PIPELINE_OK);
   CheckExpectedRanges("{ [0,120) }");
   base::RunLoop().RunUntilIdle();
@@ -2478,7 +2468,7 @@
       MuxedStreamInfo(kVideoTrackNum, "200K 220K 240K 260K 280K", 20));
 
   bool seek_cb_was_called = false;
-  base::TimeDelta seek_time = base::TimeDelta::FromMilliseconds(160);
+  base::TimeDelta seek_time = base::Milliseconds(160);
   demuxer_->StartWaitingForSeek(seek_time);
   demuxer_->Seek(seek_time,
                  base::BindOnce(OnSeekDone_OKExpected, &seek_cb_was_called));
@@ -2486,7 +2476,7 @@
 
   EXPECT_FALSE(seek_cb_was_called);
 
-  EXPECT_CALL(host_, SetDuration(base::TimeDelta::FromMilliseconds(300)));
+  EXPECT_CALL(host_, SetDuration(base::Milliseconds(300)));
   MarkEndOfStream(PIPELINE_OK);
   base::RunLoop().RunUntilIdle();
 
@@ -2727,7 +2717,7 @@
 
   CheckExpectedRanges("{ [0,46) }");
 
-  EXPECT_CALL(host_, SetDuration(base::TimeDelta::FromMilliseconds(66)));
+  EXPECT_CALL(host_, SetDuration(base::Milliseconds(66)));
   MarkEndOfStream(PIPELINE_OK);
 
   // Verify that the range extends to the end of the video data.
@@ -2739,7 +2729,7 @@
   CheckExpectedRanges("{ [0,46) }");
 
   // Append and remove data so that the 2 streams' end ranges do not overlap.
-  EXPECT_CALL(host_, SetDuration(base::TimeDelta::FromMilliseconds(398)));
+  EXPECT_CALL(host_, SetDuration(base::Milliseconds(398)));
   AppendMuxedCluster(
       MuxedStreamInfo(kAudioTrackNum, "200K 223K", 23),
       MuxedStreamInfo(kVideoTrackNum, "200K 233 266 299 332K 365", 33));
@@ -2749,8 +2739,7 @@
   // Video: [0,66) [200,398)
   CheckExpectedRanges("{ [0,46) [200,246) }");
 
-  demuxer_->Remove(kSourceId, base::TimeDelta::FromMilliseconds(200),
-                   base::TimeDelta::FromMilliseconds(300));
+  demuxer_->Remove(kSourceId, base::Milliseconds(200), base::Milliseconds(300));
 
   // At this point, the per-stream ranges are as follows:
   // Audio: [0,46)
@@ -2781,11 +2770,11 @@
   // Create a cluster where the video timecode begins 25ms after the audio.
   ASSERT_TRUE(AppendCluster(GenerateCluster(0, 25, 8)));
 
-  Seek(base::TimeDelta::FromSeconds(0));
+  Seek(base::Seconds(0));
   GenerateExpectedReads(0, 25, 8);
 
   // Seek to 5 seconds.
-  Seek(base::TimeDelta::FromSeconds(5));
+  Seek(base::Seconds(5));
 
   // Generate a cluster to fulfill this seek, where audio timecode begins 25ms
   // after the video.
@@ -2810,7 +2799,7 @@
                                   kVideoTrackNum, kVideoBlockDuration)));
 
   // Both streams should be able to fulfill a seek to 25.
-  Seek(base::TimeDelta::FromMilliseconds(25));
+  Seek(base::Milliseconds(25));
   GenerateAudioStreamExpectedReads(25, 4);
   GenerateVideoStreamExpectedReads(30, 4);
 }
@@ -2832,7 +2821,7 @@
                                   kVideoTrackNum, kVideoBlockDuration)));
 
   // Should not be able to fulfill a seek to 0.
-  base::TimeDelta seek_time = base::TimeDelta::FromMilliseconds(0);
+  base::TimeDelta seek_time = base::Milliseconds(0);
   demuxer_->StartWaitingForSeek(seek_time);
   demuxer_->Seek(seek_time,
                  NewExpectedStatusCB(PIPELINE_ERROR_ABORT));
@@ -2900,8 +2889,8 @@
   EXPECT_CALL(host_, SetDuration(_))
       .Times(AnyNumber());
 
-  base::TimeDelta kLastAudioTimestamp = base::TimeDelta::FromMilliseconds(92);
-  base::TimeDelta kLastVideoTimestamp = base::TimeDelta::FromMilliseconds(99);
+  base::TimeDelta kLastAudioTimestamp = base::Milliseconds(92);
+  base::TimeDelta kLastVideoTimestamp = base::Milliseconds(99);
 
   ASSERT_TRUE(AppendCluster(kDefaultFirstCluster()));
   ASSERT_TRUE(AppendCluster(kDefaultSecondCluster()));
@@ -2920,7 +2909,7 @@
   EXPECT_EQ(kLastVideoTimestamp, last_timestamp);
 
   // Seek back to 0 and verify that we can read to the end again..
-  Seek(base::TimeDelta::FromMilliseconds(0));
+  Seek(base::Milliseconds(0));
 
   ReadUntilNotOkOrEndOfStream(DemuxerStream::AUDIO, &status, &last_timestamp);
   EXPECT_EQ(DemuxerStream::kOk, status);
@@ -2952,12 +2941,13 @@
 
   ASSERT_TRUE(AppendCluster(kDefaultFirstCluster()));
 
-  base::TimeDelta seek_time = base::TimeDelta::FromSeconds(0);
+  base::TimeDelta seek_time = base::Seconds(0);
   demuxer_->StartWaitingForSeek(seek_time);
 
   ASSERT_TRUE(AppendCluster(kDefaultSecondCluster()));
-  EXPECT_CALL(host_, SetDuration(
-      base::TimeDelta::FromMilliseconds(kDefaultSecondClusterEndTimestamp)));
+  EXPECT_CALL(
+      host_,
+      SetDuration(base::Milliseconds(kDefaultSecondClusterEndTimestamp)));
   MarkEndOfStream(PIPELINE_OK);
 
   demuxer_->Seek(seek_time, NewExpectedStatusCB(PIPELINE_OK));
@@ -3077,7 +3067,7 @@
   ExpectRead(DemuxerStream::VIDEO, 0);
 
   // Seek to a location with a different config.
-  Seek(base::TimeDelta::FromMilliseconds(527));
+  Seek(base::Milliseconds(527));
 
   // Verify that the config change is signalled.
   ExpectConfigChanged(DemuxerStream::VIDEO);
@@ -3092,7 +3082,7 @@
   ExpectRead(DemuxerStream::VIDEO, 527);
 
   // Seek back to the beginning and verify we get another config change.
-  Seek(base::TimeDelta::FromMilliseconds(0));
+  Seek(base::Milliseconds(0));
   ExpectConfigChanged(DemuxerStream::VIDEO);
   ASSERT_TRUE(video_config_1.Matches(video->video_decoder_config()));
   ExpectRead(DemuxerStream::VIDEO, 0);
@@ -3100,8 +3090,8 @@
   // Seek to a location that requires a config change and then
   // seek to a new location that has the same configuration as
   // the start of the file without a Read() in the middle.
-  Seek(base::TimeDelta::FromMilliseconds(527));
-  Seek(base::TimeDelta::FromMilliseconds(801));
+  Seek(base::Milliseconds(527));
+  Seek(base::Milliseconds(801));
 
   // Verify that no config change is signalled.
   ExpectRead(DemuxerStream::VIDEO, 801);
@@ -3111,10 +3101,10 @@
 TEST_F(ChunkDemuxerTest, TimestampPositiveOffset) {
   ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
 
-  ASSERT_TRUE(SetTimestampOffset(kSourceId, base::TimeDelta::FromSeconds(30)));
+  ASSERT_TRUE(SetTimestampOffset(kSourceId, base::Seconds(30)));
   ASSERT_TRUE(AppendCluster(GenerateCluster(0, 2)));
 
-  Seek(base::TimeDelta::FromMilliseconds(30000));
+  Seek(base::Milliseconds(30000));
 
   GenerateExpectedReads(30000, 2);
 }
@@ -3122,7 +3112,7 @@
 TEST_F(ChunkDemuxerTest, TimestampNegativeOffset) {
   ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
 
-  ASSERT_TRUE(SetTimestampOffset(kSourceId, base::TimeDelta::FromSeconds(-1)));
+  ASSERT_TRUE(SetTimestampOffset(kSourceId, base::Seconds(-1)));
   ASSERT_TRUE(AppendCluster(GenerateCluster(1000, 2)));
 
   GenerateExpectedReads(0, 2);
@@ -3133,10 +3123,8 @@
   std::string video_id = "video1";
   ASSERT_TRUE(InitDemuxerAudioAndVideoSources(audio_id, video_id));
 
-  ASSERT_TRUE(SetTimestampOffset(
-      audio_id, base::TimeDelta::FromMilliseconds(-2500)));
-  ASSERT_TRUE(SetTimestampOffset(
-      video_id, base::TimeDelta::FromMilliseconds(-2500)));
+  ASSERT_TRUE(SetTimestampOffset(audio_id, base::Milliseconds(-2500)));
+  ASSERT_TRUE(SetTimestampOffset(video_id, base::Milliseconds(-2500)));
   ASSERT_TRUE(AppendCluster(
       audio_id,
       GenerateSingleStreamCluster(2500, 2500 + kAudioBlockDuration * 4,
@@ -3148,12 +3136,10 @@
   GenerateAudioStreamExpectedReads(0, 4);
   GenerateVideoStreamExpectedReads(0, 4);
 
-  Seek(base::TimeDelta::FromMilliseconds(27300));
+  Seek(base::Milliseconds(27300));
 
-  ASSERT_TRUE(SetTimestampOffset(
-      audio_id, base::TimeDelta::FromMilliseconds(27300)));
-  ASSERT_TRUE(SetTimestampOffset(
-      video_id, base::TimeDelta::FromMilliseconds(27300)));
+  ASSERT_TRUE(SetTimestampOffset(audio_id, base::Milliseconds(27300)));
+  ASSERT_TRUE(SetTimestampOffset(video_id, base::Milliseconds(27300)));
   ASSERT_TRUE(AppendCluster(
       audio_id,
       GenerateSingleStreamCluster(0, kAudioBlockDuration * 4, kAudioTrackNum,
@@ -3306,7 +3292,7 @@
 
   // Seek to a time corresponding to buffers that will be emitted during the
   // abort.
-  Seek(base::TimeDelta::FromMilliseconds(4110));
+  Seek(base::Milliseconds(4110));
 
   // ResetParserState on the Mpeg2 TS parser triggers the emission of the last
   // video buffer which is pending in the stream parser.
@@ -3413,8 +3399,7 @@
   // to be signaled. Note that the last video block will have a higher end
   // timestamp than the last audio block.
   const int kNewStreamDurationVideo = kStreamDuration + kVideoBlockDuration;
-  EXPECT_CALL(host_, SetDuration(
-      base::TimeDelta::FromMilliseconds(kNewStreamDurationVideo)));
+  EXPECT_CALL(host_, SetDuration(base::Milliseconds(kNewStreamDurationVideo)));
   ASSERT_TRUE(
       AppendCluster(GenerateCluster(kDefaultDuration().InMilliseconds(), 2)));
 
@@ -3423,8 +3408,7 @@
   // Add more data to the end of each media type. Note that the last audio block
   // will have a higher end timestamp than the last video block.
   const int kFinalStreamDuration = kStreamDuration + kAudioBlockDuration * 3;
-  EXPECT_CALL(host_, SetDuration(
-      base::TimeDelta::FromMilliseconds(kFinalStreamDuration)));
+  EXPECT_CALL(host_, SetDuration(base::Milliseconds(kFinalStreamDuration)));
   ASSERT_TRUE(
       AppendCluster(GenerateCluster(kStreamDuration + kAudioBlockDuration,
                                     kStreamDuration + kVideoBlockDuration, 3)));
@@ -3437,9 +3421,8 @@
 TEST_F(ChunkDemuxerTest, DurationChangeTimestampOffset) {
   ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
   ASSERT_TRUE(SetTimestampOffset(kSourceId, kDefaultDuration()));
-  EXPECT_CALL(host_, SetDuration(
-      kDefaultDuration() + base::TimeDelta::FromMilliseconds(
-          kVideoBlockDuration * 2)));
+  EXPECT_CALL(host_, SetDuration(kDefaultDuration() +
+                                 base::Milliseconds(kVideoBlockDuration * 2)));
   ASSERT_TRUE(AppendCluster(GenerateCluster(0, 4)));
 }
 
@@ -3448,8 +3431,8 @@
 
   ASSERT_TRUE(AppendCluster(kDefaultFirstCluster()));
 
-  EXPECT_CALL(host_, SetDuration(
-      base::TimeDelta::FromMilliseconds(kDefaultFirstClusterEndTimestamp)));
+  EXPECT_CALL(
+      host_, SetDuration(base::Milliseconds(kDefaultFirstClusterEndTimestamp)));
   MarkEndOfStream(PIPELINE_OK);
 }
 
@@ -3496,16 +3479,16 @@
 
   bool audio_read_done = false;
   bool video_read_done = false;
-  ReadAudio(base::BindOnce(&OnReadDone, base::TimeDelta::FromMilliseconds(138),
-                           &audio_read_done));
-  ReadVideo(base::BindOnce(&OnReadDone, base::TimeDelta::FromMilliseconds(138),
-                           &video_read_done));
+  ReadAudio(
+      base::BindOnce(&OnReadDone, base::Milliseconds(138), &audio_read_done));
+  ReadVideo(
+      base::BindOnce(&OnReadDone, base::Milliseconds(138), &video_read_done));
 
   // Verify that the reads didn't complete
   EXPECT_FALSE(audio_read_done);
   EXPECT_FALSE(video_read_done);
 
-  EXPECT_CALL(host_, SetDuration(base::TimeDelta::FromMilliseconds(438)));
+  EXPECT_CALL(host_, SetDuration(base::Milliseconds(438)));
   MarkEndOfStream(PIPELINE_OK);
 
   // Verify that the reads still haven't completed.
@@ -3537,7 +3520,7 @@
   EXPECT_FALSE(audio_read_done);
   EXPECT_FALSE(video_read_done);
 
-  EXPECT_CALL(host_, SetDuration(base::TimeDelta::FromMilliseconds(437)));
+  EXPECT_CALL(host_, SetDuration(base::Milliseconds(437)));
   MarkEndOfStream(PIPELINE_OK);
 
   EXPECT_TRUE(audio_read_done);
@@ -3548,7 +3531,7 @@
   ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
 
   // Cancel preroll.
-  base::TimeDelta seek_time = base::TimeDelta::FromMilliseconds(200);
+  base::TimeDelta seek_time = base::Milliseconds(200);
   demuxer_->CancelPendingSeek(seek_time);
 
   // Initiate the seek to the new location.
@@ -3565,7 +3548,7 @@
   demuxer_->SetMemoryLimitsForTest(DemuxerStream::AUDIO, 10 * block_size_);
   demuxer_->SetMemoryLimitsForTest(DemuxerStream::VIDEO, 5 * block_size_ + 1);
 
-  base::TimeDelta seek_time = base::TimeDelta::FromMilliseconds(1000);
+  base::TimeDelta seek_time = base::Milliseconds(1000);
 
   // Append data at the start that can be garbage collected:
   AppendMuxedCluster(
@@ -3574,8 +3557,7 @@
       MuxedStreamInfo(kVideoTrackNum, "0K 33K 66K 99K 132K", 33));
 
   // We should be right at buffer limit, should pass
-  EXPECT_TRUE(demuxer_->EvictCodedFrames(
-      kSourceId, base::TimeDelta::FromMilliseconds(0), 0));
+  EXPECT_TRUE(demuxer_->EvictCodedFrames(kSourceId, base::Milliseconds(0), 0));
 
   CheckExpectedRanges(DemuxerStream::AUDIO, "{ [0,230) }");
   CheckExpectedRanges(DemuxerStream::VIDEO, "{ [0,165) }");
@@ -3607,7 +3589,7 @@
 
   // GC should be able to evict frames in the currently buffered range, since
   // those frames are earlier than the seek target position.
-  base::TimeDelta seek_time = base::TimeDelta::FromMilliseconds(2000);
+  base::TimeDelta seek_time = base::Milliseconds(2000);
   Seek(seek_time);
   EXPECT_TRUE(
       demuxer_->EvictCodedFrames(kSourceId, seek_time, 5 * block_size_));
@@ -3647,7 +3629,7 @@
 
   // GC should be able to evict frames in the currently buffered ranges, since
   // those frames are earlier than the seek target position.
-  base::TimeDelta seek_time = base::TimeDelta::FromMilliseconds(3000);
+  base::TimeDelta seek_time = base::Milliseconds(3000);
   Seek(seek_time);
   EXPECT_TRUE(
       demuxer_->EvictCodedFrames(kSourceId, seek_time, 8 * block_size_));
@@ -3673,7 +3655,7 @@
   // recently appended data, so then GC starts removing data from the front of
   // the remaining buffered range (2000ms) to ensure we free up enough space for
   // the upcoming append and allow seek to proceed.
-  base::TimeDelta seek_time = base::TimeDelta::FromMilliseconds(1500);
+  base::TimeDelta seek_time = base::Milliseconds(1500);
   Seek(seek_time);
   EXPECT_TRUE(
       demuxer_->EvictCodedFrames(kSourceId, seek_time, 8 * block_size_));
@@ -3697,7 +3679,7 @@
   // Now try performing garbage collection without announcing seek first, i.e.
   // without calling Seek(), the GC algorithm should try to preserve data in the
   // first range, since that is most recently appended data.
-  base::TimeDelta seek_time = base::TimeDelta::FromMilliseconds(2030);
+  base::TimeDelta seek_time = base::Milliseconds(2030);
   EXPECT_TRUE(
       demuxer_->EvictCodedFrames(kSourceId, seek_time, 5 * block_size_));
 
@@ -3730,8 +3712,8 @@
 
   demuxer_->SetMemoryLimitsForTest(DemuxerStream::AUDIO, 5 * block_size_);
 
-  base::TimeDelta seek_time1 = base::TimeDelta::FromMilliseconds(1000);
-  base::TimeDelta seek_time2 = base::TimeDelta::FromMilliseconds(500);
+  base::TimeDelta seek_time1 = base::Milliseconds(1000);
+  base::TimeDelta seek_time2 = base::Milliseconds(500);
 
   // Initiate a seek to |seek_time1|.
   Seek(seek_time1);
@@ -3782,25 +3764,24 @@
   // We expect garbage collection to fail, as we don't want to spontaneously
   // create gaps in source buffer stream. Gaps could break playback for many
   // clients, who don't bother to check ranges after append.
-  EXPECT_FALSE(demuxer_->EvictCodedFrames(
-      kSourceId, base::TimeDelta::FromMilliseconds(0), 0));
+  EXPECT_FALSE(demuxer_->EvictCodedFrames(kSourceId, base::Milliseconds(0), 0));
   CheckExpectedRanges("{ [0,230) }");
 
   // Increase media_time a bit, this will allow some data to be collected, but
   // we are still over memory usage limit.
-  base::TimeDelta seek_time1 = base::TimeDelta::FromMilliseconds(23*2);
+  base::TimeDelta seek_time1 = base::Milliseconds(23 * 2);
   Seek(seek_time1);
   EXPECT_FALSE(demuxer_->EvictCodedFrames(kSourceId, seek_time1, 0));
   CheckExpectedRanges("{ [46,230) }");
 
-  base::TimeDelta seek_time2 = base::TimeDelta::FromMilliseconds(23*4);
+  base::TimeDelta seek_time2 = base::Milliseconds(23 * 4);
   Seek(seek_time2);
   EXPECT_FALSE(demuxer_->EvictCodedFrames(kSourceId, seek_time2, 0));
   CheckExpectedRanges("{ [92,230) }");
 
   // media_time has progressed to a point where we can collect enough data to
   // be under memory limit, so Evict should return true.
-  base::TimeDelta seek_time3 = base::TimeDelta::FromMilliseconds(23*6);
+  base::TimeDelta seek_time3 = base::Milliseconds(23 * 6);
   Seek(seek_time3);
   EXPECT_TRUE(demuxer_->EvictCodedFrames(kSourceId, seek_time3, 0));
   // Strictly speaking the current playback time is 23*6==138ms, so we could
@@ -3814,8 +3795,8 @@
   DemuxerStream* stream = GetStream(DemuxerStream::VIDEO);
 
   // Set the append window to [50,280).
-  append_window_start_for_next_append_ = base::TimeDelta::FromMilliseconds(50);
-  append_window_end_for_next_append_ = base::TimeDelta::FromMilliseconds(280);
+  append_window_start_for_next_append_ = base::Milliseconds(50);
+  append_window_end_for_next_append_ = base::Milliseconds(280);
 
   // Append a cluster that starts before and ends after the append window.
   EXPECT_MEDIA_LOG(DroppedFrame("video", 0));
@@ -3834,7 +3815,7 @@
   CheckExpectedBuffers(stream, "120K 150 180 210 240K");
 
   // Extend the append window to [50,650).
-  append_window_end_for_next_append_ = base::TimeDelta::FromMilliseconds(650);
+  append_window_end_for_next_append_ = base::Milliseconds(650);
 
   // Append more data and verify that adding buffers start at the next
   // key frame.
@@ -3850,8 +3831,8 @@
   DemuxerStream* stream = GetStream(DemuxerStream::AUDIO);
 
   // Set the append window to [50,280).
-  append_window_start_for_next_append_ = base::TimeDelta::FromMilliseconds(50);
-  append_window_end_for_next_append_ = base::TimeDelta::FromMilliseconds(280);
+  append_window_start_for_next_append_ = base::Milliseconds(50);
+  append_window_end_for_next_append_ = base::Milliseconds(280);
 
   // Append a cluster that starts before and ends after the append window.
   EXPECT_MEDIA_LOG(DroppedFrame("audio", 0));
@@ -3877,7 +3858,7 @@
   CheckExpectedBuffers(stream, "50KP 50K 60K 90K 120K 150K 180K 210K 240K");
 
   // Extend the append window to [50,650).
-  append_window_end_for_next_append_ = base::TimeDelta::FromMilliseconds(650);
+  append_window_end_for_next_append_ = base::Milliseconds(650);
 
   // Append more data and verify that a new range is created.
   EXPECT_MEDIA_LOG(TruncatedFrame(630000, 660000, "end", 650000));
@@ -3892,8 +3873,8 @@
   ASSERT_TRUE(InitDemuxer(HAS_AUDIO));
 
   // Set the append window to [10,20).
-  append_window_start_for_next_append_ = base::TimeDelta::FromMilliseconds(10);
-  append_window_end_for_next_append_ = base::TimeDelta::FromMilliseconds(20);
+  append_window_start_for_next_append_ = base::Milliseconds(10);
+  append_window_end_for_next_append_ = base::Milliseconds(20);
 
   EXPECT_MEDIA_LOG(
       TruncatedFrame(0, kAudioBlockDuration * 1000, "start", 10000));
@@ -3912,13 +3893,12 @@
 TEST_F(ChunkDemuxerTest, AppendWindow_WebMFile_AudioOnly) {
   EXPECT_CALL(*this, DemuxerOpened());
   demuxer_->Initialize(
-      &host_, CreateInitDoneCallback(base::TimeDelta::FromMilliseconds(2744),
-                                     PIPELINE_OK));
+      &host_, CreateInitDoneCallback(base::Milliseconds(2744), PIPELINE_OK));
   ASSERT_EQ(ChunkDemuxer::kOk, AddId(kSourceId, HAS_AUDIO));
 
   // Set the append window to [50,150).
-  append_window_start_for_next_append_ = base::TimeDelta::FromMilliseconds(50);
-  append_window_end_for_next_append_ = base::TimeDelta::FromMilliseconds(150);
+  append_window_start_for_next_append_ = base::Milliseconds(50);
+  append_window_end_for_next_append_ = base::Milliseconds(150);
 
   EXPECT_MEDIA_LOG(DroppedFrameCheckAppendWindow(
                        "audio",
@@ -3945,15 +3925,14 @@
 TEST_F(ChunkDemuxerTest, AppendWindow_AudioConfigUpdateRemovesPreroll) {
   EXPECT_CALL(*this, DemuxerOpened());
   demuxer_->Initialize(
-      &host_, CreateInitDoneCallback(base::TimeDelta::FromMilliseconds(2744),
-                                     PIPELINE_OK));
+      &host_, CreateInitDoneCallback(base::Milliseconds(2744), PIPELINE_OK));
   ASSERT_EQ(ChunkDemuxer::kOk, AddId(kSourceId, HAS_AUDIO));
 
   // Set the append window such that the first file is completely before the
   // append window.
   // Expect duration adjustment since actual duration differs slightly from
   // duration in the init segment.
-  const base::TimeDelta duration_1 = base::TimeDelta::FromMilliseconds(2768);
+  const base::TimeDelta duration_1 = base::Milliseconds(2768);
   append_window_start_for_next_append_ = duration_1;
 
   EXPECT_MEDIA_LOG(DroppedFrameCheckAppendWindow(
@@ -3995,7 +3974,7 @@
   EXPECT_MEDIA_LOG(StreamParsingFailed());
   EXPECT_CALL(host_, OnDemuxerError(CHUNK_DEMUXER_ERROR_APPEND_FAILED));
   AppendGarbage();
-  base::TimeDelta seek_time = base::TimeDelta::FromSeconds(50);
+  base::TimeDelta seek_time = base::Seconds(50);
   demuxer_->StartWaitingForSeek(seek_time);
 }
 
@@ -4013,8 +3992,7 @@
   CheckExpectedBuffers(video_stream, "0K 30 60 90 120K 150 180");
 
   // Remove the buffers that were added.
-  demuxer_->Remove(kSourceId, base::TimeDelta(),
-                   base::TimeDelta::FromMilliseconds(300));
+  demuxer_->Remove(kSourceId, base::TimeDelta(), base::Milliseconds(300));
 
   // Verify that all the appended data has been removed.
   CheckExpectedRanges("{ }");
@@ -4036,20 +4014,17 @@
 
   // Set the duration to something small so that the append that
   // follows updates the duration to reflect the end of the appended data.
-  EXPECT_CALL(host_, SetDuration(
-      base::TimeDelta::FromMilliseconds(1)));
+  EXPECT_CALL(host_, SetDuration(base::Milliseconds(1)));
   demuxer_->SetDuration(0.001);
 
-  EXPECT_CALL(host_, SetDuration(
-      base::TimeDelta::FromMilliseconds(160)));
+  EXPECT_CALL(host_, SetDuration(base::Milliseconds(160)));
   AppendSingleStreamCluster(kSourceId, kAudioTrackNum,
                             "0K 20K 40K 60K 80K 100K 120K 140D20K");
 
   CheckExpectedRanges("{ [0,160) }");
   CheckExpectedBuffers(audio_stream, "0K 20K 40K 60K 80K 100K 120K 140K");
 
-  demuxer_->Remove(kSourceId,
-                   base::TimeDelta::FromSecondsD(demuxer_->GetDuration()),
+  demuxer_->Remove(kSourceId, base::Seconds(demuxer_->GetDuration()),
                    kInfiniteDuration);
 
   Seek(base::TimeDelta());
@@ -4066,7 +4041,7 @@
   DemuxerStream* audio_stream = GetStream(DemuxerStream::AUDIO);
   DemuxerStream* video_stream = GetStream(DemuxerStream::VIDEO);
 
-  base::TimeDelta seek_time = base::TimeDelta::FromMilliseconds(120);
+  base::TimeDelta seek_time = base::Milliseconds(120);
   bool seek_cb_was_called = false;
   demuxer_->StartWaitingForSeek(seek_time);
   demuxer_->Seek(seek_time,
@@ -4154,21 +4129,19 @@
   // If we want to append 80 more blocks of muxed a+v data and the current
   // position is 0, that will fail, because EvictCodedFrames won't remove the
   // data after the current playback position.
-  ASSERT_FALSE(demuxer_->EvictCodedFrames(kSourceId,
-                                          base::TimeDelta::FromMilliseconds(0),
-                                          80));
+  ASSERT_FALSE(
+      demuxer_->EvictCodedFrames(kSourceId, base::Milliseconds(0), 80));
   // EvictCodedFrames has failed, so data should be unchanged.
-  Seek(base::TimeDelta::FromMilliseconds(0));
+  Seek(base::Milliseconds(0));
   CheckExpectedBuffers(audio_stream, kAudioStreamInfo);
   CheckExpectedBuffers(video_stream, kVideoStreamInfo);
 
   // But if we pretend that playback position has moved to 120ms, that allows
   // EvictCodedFrames to garbage-collect enough data to succeed.
-  ASSERT_TRUE(demuxer_->EvictCodedFrames(kSourceId,
-                                         base::TimeDelta::FromMilliseconds(120),
-                                         80));
+  ASSERT_TRUE(
+      demuxer_->EvictCodedFrames(kSourceId, base::Milliseconds(120), 80));
 
-  Seek(base::TimeDelta::FromMilliseconds(0));
+  Seek(base::Milliseconds(0));
   // Audio stream had 8 buffers, video stream had 15. We told EvictCodedFrames
   // that the new data size is 8 blocks muxed, i.e. 80 bytes. Given the current
   // ratio of video to the total data size (15 : (8+15) ~= 0.65) the estimated
@@ -4251,8 +4224,7 @@
 
   EXPECT_MEDIA_LOG(WebMSimpleBlockDurationEstimated(10)).Times(3);
   AppendSingleStreamCluster(kSourceId, kVideoTrackNum, "0K 10 20");
-  demuxer_->Remove(kSourceId, base::TimeDelta(),
-                   base::TimeDelta::FromMilliseconds(30));
+  demuxer_->Remove(kSourceId, base::TimeDelta(), base::Milliseconds(30));
   AppendSingleStreamCluster(kSourceId, kVideoTrackNum, "30 40 50");
   AppendSingleStreamCluster(kSourceId, kVideoTrackNum, "60 70K 80");
   CheckExpectedRanges("{ [70,90) }");
@@ -4270,8 +4242,7 @@
   AppendSingleStreamCluster(kSourceId, kVideoTrackNum, "0K 10 20");
   AppendSingleStreamCluster(kSourceId, kVideoTrackNum, "30 40 50");
   AppendSingleStreamCluster(kSourceId, kVideoTrackNum, "60 70K 80");
-  demuxer_->Remove(kSourceId, base::TimeDelta(),
-                   base::TimeDelta::FromMilliseconds(10));
+  demuxer_->Remove(kSourceId, base::TimeDelta(), base::Milliseconds(10));
   CheckExpectedRanges("{ [70,90) }");
   CheckExpectedBuffers(video_stream, "70K 80");
 }
@@ -4287,11 +4258,10 @@
   AppendSingleStreamCluster(kSourceId, kVideoTrackNum, "0K 10 20");
   AppendSingleStreamCluster(kSourceId, kVideoTrackNum, "30 40 50");
   AppendSingleStreamCluster(kSourceId, kVideoTrackNum, "60 70K 80");
-  demuxer_->Remove(kSourceId, base::TimeDelta::FromMilliseconds(50),
-                   base::TimeDelta::FromMilliseconds(60));
+  demuxer_->Remove(kSourceId, base::Milliseconds(50), base::Milliseconds(60));
   CheckExpectedRanges("{ [0,50) [70,90) }");
   CheckExpectedBuffers(video_stream, "0K 10 20 30 40");
-  Seek(base::TimeDelta::FromMilliseconds(70));
+  Seek(base::Milliseconds(70));
   CheckExpectedBuffers(video_stream, "70K 80");
 }
 
@@ -4313,8 +4283,7 @@
 
   AppendMuxedCluster(MuxedStreamInfo(kAudioTrackNum, "0K 10K 20D10K"),
                      MuxedStreamInfo(kVideoTrackNum, "0K 10 20", 10));
-  demuxer_->Remove(kSourceId, base::TimeDelta(),
-                   base::TimeDelta::FromMilliseconds(30));
+  demuxer_->Remove(kSourceId, base::TimeDelta(), base::Milliseconds(30));
   AppendMuxedCluster(MuxedStreamInfo(kAudioTrackNum, "30K 40K 50D10K"),
                      MuxedStreamInfo(kVideoTrackNum, "30 40 50", 10));
   AppendMuxedCluster(MuxedStreamInfo(kAudioTrackNum, "60K 70K 80D10K"),
@@ -4348,8 +4317,7 @@
   EXPECT_MEDIA_LOG(SegmentMissingFrames("1"));
   AppendMuxedCluster(MuxedStreamInfo(kAudioTrackNum, "0K 10K 20D10K"),
                      MuxedStreamInfo(kVideoTrackNum, ""));
-  demuxer_->Remove(kSourceId, base::TimeDelta(),
-                   base::TimeDelta::FromMilliseconds(30));
+  demuxer_->Remove(kSourceId, base::TimeDelta(), base::Milliseconds(30));
   AppendMuxedCluster(MuxedStreamInfo(kAudioTrackNum, "30K 40K 50D10K"),
                      MuxedStreamInfo(kVideoTrackNum, "30 40 50", 10));
   AppendMuxedCluster(MuxedStreamInfo(kAudioTrackNum, "60K 70K 80D10K"),
@@ -4409,8 +4377,7 @@
   CheckExpectedRanges(DemuxerStream::AUDIO, "{ [0,30) }");
   CheckExpectedRanges(DemuxerStream::VIDEO, "{ }");
 
-  demuxer_->Remove(kSourceId, base::TimeDelta(),
-                   base::TimeDelta::FromMilliseconds(30));
+  demuxer_->Remove(kSourceId, base::TimeDelta(), base::Milliseconds(30));
 
   // Append the remainder of the cluster
   ASSERT_TRUE(AppendData(kSourceId, cluster->data() + video_start,
@@ -4670,7 +4637,7 @@
     // ensure we read back precisely the expected buffers.
     ASSERT_GT(block_size_, 0U);
     AppendSingleStreamCluster(kSourceId, c.track_number, "0K 10K 20K 30D10K");
-    EXPECT_CALL(host_, SetDuration(base::TimeDelta::FromMilliseconds(40)));
+    EXPECT_CALL(host_, SetDuration(base::Milliseconds(40)));
     MarkEndOfStream(PIPELINE_OK);
     CheckExpectedRanges("{ [0,40) }");
     CheckExpectedBuffers(stream, "0K 10K 20K 30K");
@@ -4683,18 +4650,18 @@
     block_size_ = 0;
     AppendSingleStreamCluster(kSourceId, c.track_number, "40D10K");
     MarkEndOfStream(PIPELINE_OK);
-    Seek(base::TimeDelta::FromMilliseconds(0));
+    Seek(base::Milliseconds(0));
     CheckExpectedRanges("{ [0,40) }");
     CheckExpectedBuffers(stream, "0K 10K 20K 30K");
     ExpectEndOfStream(c.stream_type);
 
     // Append a cluster containing a nonzero-sized frame. Verify it is buffered.
     demuxer_->UnmarkEndOfStream();
-    EXPECT_CALL(host_, SetDuration(base::TimeDelta::FromMilliseconds(50)));
+    EXPECT_CALL(host_, SetDuration(base::Milliseconds(50)));
     block_size_ = kBlockSize;
     AppendSingleStreamCluster(kSourceId, c.track_number, "40D10K");
     MarkEndOfStream(PIPELINE_OK);
-    Seek(base::TimeDelta::FromMilliseconds(0));
+    Seek(base::Milliseconds(0));
     CheckExpectedRanges("{ [0,50) }");
     CheckExpectedBuffers(stream, "0K 10K 20K 30K 40K");
     ExpectEndOfStream(c.stream_type);
diff --git a/media/filters/dav1d_video_decoder.cc b/media/filters/dav1d_video_decoder.cc
index d08c8393..6b69299 100644
--- a/media/filters/dav1d_video_decoder.cc
+++ b/media/filters/dav1d_video_decoder.cc
@@ -444,7 +444,7 @@
       config_.aspect_ratio().GetNaturalSize(gfx::Rect(visible_size)),
       pic->stride[0], uv_plane_stride, uv_plane_stride,
       static_cast<uint8_t*>(pic->data[0]), u_plane, v_plane,
-      base::TimeDelta::FromMicroseconds(pic->m.timestamp));
+      base::Microseconds(pic->m.timestamp));
   if (!frame)
     return nullptr;
 
diff --git a/media/filters/fake_video_decoder_unittest.cc b/media/filters/fake_video_decoder_unittest.cc
index f8839d4..68ccdb91 100644
--- a/media/filters/fake_video_decoder_unittest.cc
+++ b/media/filters/fake_video_decoder_unittest.cc
@@ -138,9 +138,8 @@
 
     if (num_input_buffers_ < kTotalBuffers) {
       buffer = CreateFakeVideoBufferForTest(
-          current_config_,
-          base::TimeDelta::FromMilliseconds(kDurationMs * num_input_buffers_),
-          base::TimeDelta::FromMilliseconds(kDurationMs));
+          current_config_, base::Milliseconds(kDurationMs * num_input_buffers_),
+          base::Milliseconds(kDurationMs));
       total_bytes_in_buffers_ += buffer->data_size();
     } else {
       buffer = DecoderBuffer::CreateEOSBuffer();
diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
index 00777584..026c0f8e 100644
--- a/media/filters/ffmpeg_demuxer.cc
+++ b/media/filters/ffmpeg_demuxer.cc
@@ -92,8 +92,8 @@
 }
 
 static base::TimeDelta FramesToTimeDelta(int frames, double sample_rate) {
-  return base::TimeDelta::FromMicroseconds(
-      frames * base::Time::kMicrosecondsPerSecond / sample_rate);
+  return base::Microseconds(frames * base::Time::kMicrosecondsPerSecond /
+                            sample_rate);
 }
 
 static base::TimeDelta ExtractStartTime(AVStream* stream) {
@@ -563,8 +563,7 @@
     // correctly give them unique timestamps.
     buffer->set_timestamp(last_packet_timestamp_ == kNoTimestamp
                               ? base::TimeDelta()
-                              : last_packet_timestamp_ +
-                                    base::TimeDelta::FromMicroseconds(1));
+                              : last_packet_timestamp_ + base::Microseconds(1));
   }
 
   // Fixup negative timestamps where the before-zero portion is completely
@@ -574,7 +573,7 @@
     auto fixed_ts = buffer->discard_padding().first + buffer->timestamp();
 
     // Allow for rounding error in the discard padding calculations.
-    if (fixed_ts == base::TimeDelta::FromMicroseconds(-1))
+    if (fixed_ts == base::Microseconds(-1))
       fixed_ts = base::TimeDelta();
 
     if (fixed_ts >= base::TimeDelta())
@@ -636,7 +635,7 @@
       buffer->set_timestamp(last_packet_timestamp_ +
                             (last_packet_duration_ != kNoTimestamp
                                  ? last_packet_duration_
-                                 : base::TimeDelta::FromMicroseconds(1)));
+                                 : base::Microseconds(1)));
     }
 
     // The demuxer should always output positive timestamps.
@@ -882,7 +881,7 @@
 
 bool FFmpegDemuxerStream::HasAvailableCapacity() {
   // Try to have two second's worth of encoded data per stream.
-  const base::TimeDelta kCapacity = base::TimeDelta::FromSeconds(2);
+  const base::TimeDelta kCapacity = base::Seconds(2);
   return buffer_queue_.IsEmpty() || buffer_queue_.Duration() < kCapacity;
 }
 
diff --git a/media/filters/ffmpeg_demuxer_unittest.cc b/media/filters/ffmpeg_demuxer_unittest.cc
index 6837152..fbf9152 100644
--- a/media/filters/ffmpeg_demuxer_unittest.cc
+++ b/media/filters/ffmpeg_demuxer_unittest.cc
@@ -572,10 +572,8 @@
   FFmpegDemuxerStream* audio =
       static_cast<FFmpegDemuxerStream*>(GetStream(DemuxerStream::AUDIO));
 
-  const base::TimeDelta video_start_time =
-      base::TimeDelta::FromMicroseconds(400000);
-  const base::TimeDelta audio_start_time =
-      base::TimeDelta::FromMicroseconds(396000);
+  const base::TimeDelta video_start_time = base::Microseconds(400000);
+  const base::TimeDelta audio_start_time = base::Microseconds(396000);
 
   // Seeking to a position lower than the start time of either stream should
   // prefer video stream for seeking.
@@ -619,10 +617,8 @@
   DemuxerStream* video = GetStream(DemuxerStream::VIDEO);
   DemuxerStream* audio = GetStream(DemuxerStream::AUDIO);
 
-  const base::TimeDelta video_start_time =
-      base::TimeDelta::FromMicroseconds(400000);
-  const base::TimeDelta audio_start_time =
-      base::TimeDelta::FromMicroseconds(396000);
+  const base::TimeDelta video_start_time = base::Microseconds(400000);
+  const base::TimeDelta audio_start_time = base::Microseconds(396000);
 
   // Run the test twice with a seek in between.
   for (int i = 0; i < 2; ++i) {
@@ -684,11 +680,10 @@
     Read(audio, FROM_HERE, 41, 2903, true, DemuxerStream::Status::kOk,
          kInfiniteDuration);
     Read(audio, FROM_HERE, 173, 5805, true, DemuxerStream::Status::kOk,
-         base::TimeDelta::FromMicroseconds(10159));
+         base::Microseconds(10159));
 
     Read(audio, FROM_HERE, 148, 18866, true);
-    EXPECT_EQ(base::TimeDelta::FromMicroseconds(-15964),
-              demuxer_->start_time());
+    EXPECT_EQ(base::Microseconds(-15964), demuxer_->start_time());
 
     Read(video, FROM_HERE, 5751, 0, true);
     Read(video, FROM_HERE, 846, 33367, false);
@@ -717,9 +712,9 @@
   // Run the test twice with a seek in between.
   for (int i = 0; i < 2; ++i) {
     Read(audio, FROM_HERE, 1, 0, true, DemuxerStream::Status::kOk,
-         base::TimeDelta::FromMicroseconds(2902));
+         base::Microseconds(2902));
     Read(audio, FROM_HERE, 1, 2902, true);
-    EXPECT_EQ(base::TimeDelta::FromMicroseconds(-2902), demuxer_->start_time());
+    EXPECT_EQ(base::Microseconds(-2902), demuxer_->start_time());
 
     // Though the internal start time may be below zero, the exposed media time
     // must always be >= zero.
@@ -817,7 +812,7 @@
   // Run the test twice with a seek in between.
   for (int i = 0; i < 2; ++i) {
     Read(audio, FROM_HERE, 408, 0, true, DemuxerStream::Status::kOk,
-         base::TimeDelta::FromMicroseconds(6500));
+         base::Microseconds(6500));
 
     for (size_t j = 0; j < base::size(kTestExpectations); ++j) {
       Read(audio, FROM_HERE, kTestExpectations[j][0], kTestExpectations[j][1],
@@ -859,7 +854,7 @@
     // has the same sequence, but doesn't have a different discard padding
     // after seeking to the start. Why is this test different?
     Read(audio, FROM_HERE, 314, 0, true, DemuxerStream::Status::kOk,
-         i == 0 ? base::TimeDelta::FromMicroseconds(6500) : base::TimeDelta());
+         i == 0 ? base::Microseconds(6500) : base::TimeDelta());
     Read(audio, FROM_HERE, 244, 20000, true);
 
     // Though the internal start time may be below zero, the exposed media time
@@ -885,7 +880,7 @@
   // earliest position guaranteed to give us key frames for all enabled streams.
   // But when the video stream is disabled, FFmpeg can start reading from 1.987s
   // which is earliest audio key frame before the 2.0s |seek_target|.
-  const base::TimeDelta seek_target = base::TimeDelta::FromMilliseconds(2000);
+  const base::TimeDelta seek_target = base::Milliseconds(2000);
 
   CreateDemuxer("bear-vp8-webvtt.webm");
   InitializeDemuxer();
@@ -914,7 +909,7 @@
   CreateDemuxer("bear-320x240.webm");
   InitializeDemuxer();
   SetDurationKnown(false);
-  EXPECT_CALL(host_, SetDuration(base::TimeDelta::FromMilliseconds(2744)));
+  EXPECT_CALL(host_, SetDuration(base::Milliseconds(2744)));
   ReadUntilEndOfStream(GetStream(DemuxerStream::AUDIO));
   ReadUntilEndOfStream(GetStream(DemuxerStream::VIDEO));
 }
@@ -924,7 +919,7 @@
   CreateDemuxer("bear-320x240-video-only.webm");
   InitializeDemuxer();
   SetDurationKnown(false);
-  EXPECT_CALL(host_, SetDuration(base::TimeDelta::FromMilliseconds(2703)));
+  EXPECT_CALL(host_, SetDuration(base::Milliseconds(2703)));
   ReadUntilEndOfStream(GetStream(DemuxerStream::VIDEO));
 }
 
@@ -933,7 +928,7 @@
   CreateDemuxer("bear-320x240-audio-only.webm");
   InitializeDemuxer();
   SetDurationKnown(false);
-  EXPECT_CALL(host_, SetDuration(base::TimeDelta::FromMilliseconds(2744)));
+  EXPECT_CALL(host_, SetDuration(base::Milliseconds(2744)));
   ReadUntilEndOfStream(GetStream(DemuxerStream::AUDIO));
 }
 
@@ -943,7 +938,7 @@
   CreateDemuxer("vorbis_audio_wmv_video.mkv");
   InitializeDemuxer();
   SetDurationKnown(false);
-  EXPECT_CALL(host_, SetDuration(base::TimeDelta::FromMilliseconds(991)));
+  EXPECT_CALL(host_, SetDuration(base::Milliseconds(991)));
   ReadUntilEndOfStream(GetStream(DemuxerStream::AUDIO));
 }
 
@@ -964,8 +959,7 @@
 
   // Issue a simple forward seek, which should discard queued packets.
   WaitableMessageLoopEvent event;
-  demuxer_->Seek(base::TimeDelta::FromMicroseconds(1000000),
-                 event.GetPipelineStatusCB());
+  demuxer_->Seek(base::Microseconds(1000000), event.GetPipelineStatusCB());
   event.RunAndWaitForStatus(PIPELINE_OK);
 
   // Audio read #1.
@@ -996,10 +990,9 @@
 
   // Issue a simple forward seek, which should discard queued packets.
   WaitableMessageLoopEvent event;
-  demuxer_->Seek(base::TimeDelta::FromMicroseconds(1000000),
-                 event.GetPipelineStatusCB());
+  demuxer_->Seek(base::Microseconds(1000000), event.GetPipelineStatusCB());
   // FFmpegDemuxer does not care what the previous seek time was when canceling.
-  demuxer_->CancelPendingSeek(base::TimeDelta::FromSeconds(12345));
+  demuxer_->CancelPendingSeek(base::Seconds(12345));
   event.RunAndWaitForStatus(PIPELINE_OK);
 }
 
@@ -1044,8 +1037,7 @@
 
   // Issue a simple forward seek, which should discard queued packets.
   WaitableMessageLoopEvent event;
-  demuxer_->Seek(base::TimeDelta::FromMicroseconds(2500000),
-                 event.GetPipelineStatusCB());
+  demuxer_->Seek(base::Microseconds(2500000), event.GetPipelineStatusCB());
   event.RunAndWaitForStatus(PIPELINE_OK);
 
   // Audio read #1.
diff --git a/media/filters/ffmpeg_video_decoder.cc b/media/filters/ffmpeg_video_decoder.cc
index 9df0427..3bca735 100644
--- a/media/filters/ffmpeg_video_decoder.cc
+++ b/media/filters/ffmpeg_video_decoder.cc
@@ -393,8 +393,7 @@
 
   scoped_refptr<VideoFrame> video_frame =
       reinterpret_cast<VideoFrame*>(av_buffer_get_opaque(frame->buf[0]));
-  video_frame->set_timestamp(
-      base::TimeDelta::FromMicroseconds(frame->reordered_opaque));
+  video_frame->set_timestamp(base::Microseconds(frame->reordered_opaque));
   video_frame->metadata().power_efficient = false;
   output_cb_.Run(video_frame);
   return true;
diff --git a/media/filters/frame_buffer_pool.cc b/media/filters/frame_buffer_pool.cc
index 3b0ef84..255256f8 100644
--- a/media/filters/frame_buffer_pool.cc
+++ b/media/filters/frame_buffer_pool.cc
@@ -227,8 +227,7 @@
 
   base::EraseIf(frame_buffers_, [now](const std::unique_ptr<FrameBuffer>& buf) {
     return !IsUsed(buf.get()) &&
-           now - buf->last_use_time >
-               base::TimeDelta::FromSeconds(kStaleFrameLimitSecs);
+           now - buf->last_use_time > base::Seconds(kStaleFrameLimitSecs);
   });
 }
 
diff --git a/media/filters/frame_buffer_pool_unittest.cc b/media/filters/frame_buffer_pool_unittest.cc
index 0cdf4d0..a06039c0 100644
--- a/media/filters/frame_buffer_pool_unittest.cc
+++ b/media/filters/frame_buffer_pool_unittest.cc
@@ -92,8 +92,7 @@
   EXPECT_EQ(3u, pool->get_pool_size_for_testing());
 
   // Advance some time, but not enough to trigger expiration.
-  test_clock.Advance(
-      base::TimeDelta::FromSeconds(FrameBufferPool::kStaleFrameLimitSecs / 2));
+  test_clock.Advance(base::Seconds(FrameBufferPool::kStaleFrameLimitSecs / 2));
 
   // We should still have 3 frame buffers in the pool at this point.
   frame_release_cb = pool->CreateFrameCallback(priv2);
@@ -102,8 +101,7 @@
   std::move(frame_release_cb).Run();
   EXPECT_EQ(3u, pool->get_pool_size_for_testing());
 
-  test_clock.Advance(
-      base::TimeDelta::FromSeconds(FrameBufferPool::kStaleFrameLimitSecs + 1));
+  test_clock.Advance(base::Seconds(FrameBufferPool::kStaleFrameLimitSecs + 1));
 
   // All but this most recently released frame should remain now.
   frame_release_cb = pool->CreateFrameCallback(priv3);
diff --git a/media/filters/frame_processor.cc b/media/filters/frame_processor.cc
index ba54746..0e8399a 100644
--- a/media/filters/frame_processor.cc
+++ b/media/filters/frame_processor.cc
@@ -564,8 +564,8 @@
     return;
 
   current_audio_config_ = config;
-  sample_duration_ = base::TimeDelta::FromSecondsD(
-      1.0 / current_audio_config_.samples_per_second());
+  sample_duration_ =
+      base::Seconds(1.0 / current_audio_config_.samples_per_second());
   has_dependent_audio_frames_ =
       current_audio_config_.profile() == AudioCodecProfile::kXHE_AAC;
   last_audio_pts_for_nonkeyframe_monotonicity_check_ = kNoTimestamp;
diff --git a/media/filters/frame_processor_unittest.cc b/media/filters/frame_processor_unittest.cc
index bbc3f18..bd1c325 100644
--- a/media/filters/frame_processor_unittest.cc
+++ b/media/filters/frame_processor_unittest.cc
@@ -35,10 +35,10 @@
 
 namespace {
 
-// Helper to shorten "base::TimeDelta::FromMilliseconds(...)" in these test
+// Helper to shorten "base::Milliseconds(...)" in these test
 // cases for integer milliseconds.
 constexpr base::TimeDelta Milliseconds(int64_t milliseconds) {
-  return base::TimeDelta::FromMilliseconds(milliseconds);
+  return base::Milliseconds(milliseconds);
 }
 
 }  // namespace
@@ -172,10 +172,10 @@
       scoped_refptr<StreamParserBuffer> buffer =
           StreamParserBuffer::CopyFrom(timestamp_as_data, sizeof(time_in_ms),
                                        is_keyframe, type, track_id);
-      buffer->set_timestamp(base::TimeDelta::FromMillisecondsD(time_in_ms));
+      buffer->set_timestamp(base::Milliseconds(time_in_ms));
       if (time_in_ms != decode_time_in_ms) {
         buffer->SetDecodeTimestamp(DecodeTimestamp::FromPresentationTime(
-            base::TimeDelta::FromMillisecondsD(decode_time_in_ms)));
+            base::Milliseconds(decode_time_in_ms)));
       }
 
       buffer->set_duration(frame_duration_);
@@ -928,8 +928,7 @@
     EXPECT_CALL(callbacks_, PossibleDurationIncrease(Milliseconds(0)));
   EXPECT_TRUE(ProcessFrames("0K", ""));
 
-  EXPECT_CALL(callbacks_, PossibleDurationIncrease(
-                              base::TimeDelta::FromMicroseconds(10250)));
+  EXPECT_CALL(callbacks_, PossibleDurationIncrease(base::Microseconds(10250)));
   EXPECT_TRUE(ProcessFrames("10.25K", ""));
 
   EXPECT_MEDIA_LOG(SkippingSpliceTooLittleOverlap(10000, 250));
@@ -1888,7 +1887,7 @@
   if (use_sequence_mode_)
     frame_processor_->SetSequenceMode(true);
 
-  frame_duration_ = base::TimeDelta::FromMicroseconds(4999);
+  frame_duration_ = base::Microseconds(4999);
 
   EXPECT_CALL(callbacks_, OnGroupStart(DemuxerStream::AUDIO, DecodeTimestamp(),
                                        base::TimeDelta()));
@@ -1917,8 +1916,7 @@
                    Milliseconds(20) + frame_duration_));
   EXPECT_CALL(callbacks_, OnAppend(DemuxerStream::AUDIO, _));
 
-  EXPECT_CALL(callbacks_, PossibleDurationIncrease(
-                              base::TimeDelta::FromMicroseconds(34999)));
+  EXPECT_CALL(callbacks_, PossibleDurationIncrease(base::Microseconds(34999)));
   EXPECT_TRUE(ProcessFrames("0K 10|5K 20|10K 30|15K", ""));
   EXPECT_EQ(Milliseconds(0), timestamp_offset_);
 
@@ -2242,14 +2240,14 @@
   if (use_sequence_mode_)
     frame_processor_->SetSequenceMode(true);
 
-  frame_duration_ = base::TimeDelta::FromMicroseconds(9750);
+  frame_duration_ = base::Microseconds(9750);
   EXPECT_CALL(callbacks_, PossibleDurationIncrease(frame_duration_));
   EXPECT_TRUE(ProcessFrames("0K", ""));
 
   // As with all-keyframe streams, a slight jump forward should not trigger any
   // splicing logic, though accumulations of these may result in loss of A/V
   // sync.
-  frame_duration_ = base::TimeDelta::FromMicroseconds(10250);
+  frame_duration_ = base::Microseconds(10250);
   EXPECT_CALL(callbacks_,
               PossibleDurationIncrease(Milliseconds(10) + frame_duration_));
   EXPECT_TRUE(ProcessFrames("10", ""));
@@ -2269,7 +2267,7 @@
   // frame. Accumulations of these could rapidly lead to loss of A/V sync.
   // Nonkeyframe timestamp & duration metadata sequences need to be correctly
   // muxed to avoid this.
-  frame_duration_ = base::TimeDelta::FromMicroseconds(10250);
+  frame_duration_ = base::Microseconds(10250);
   EXPECT_CALL(callbacks_,
               PossibleDurationIncrease(Milliseconds(22) + frame_duration_));
   EXPECT_TRUE(ProcessFrames("22", ""));
diff --git a/media/filters/gav1_video_decoder.cc b/media/filters/gav1_video_decoder.cc
index b79bb7171..a52bf678 100644
--- a/media/filters/gav1_video_decoder.cc
+++ b/media/filters/gav1_video_decoder.cc
@@ -208,8 +208,7 @@
     const VideoColorSpace& container_color_space) {
   scoped_refptr<VideoFrame> frame =
       static_cast<VideoFrame*>(buffer.buffer_private_data);
-  frame->set_timestamp(
-      base::TimeDelta::FromMicroseconds(buffer.user_private_data));
+  frame->set_timestamp(base::Microseconds(buffer.user_private_data));
 
   // AV1 color space defines match ISO 23001-8:2016 via ISO/IEC 23091-4/ITU-T
   // H.273. https://aomediacodec.github.io/av1-spec/#color-config-semantics
diff --git a/media/filters/media_file_checker.cc b/media/filters/media_file_checker.cc
index 12e78e3..db67fb7 100644
--- a/media/filters/media_file_checker.cc
+++ b/media/filters/media_file_checker.cc
@@ -86,8 +86,7 @@
   auto do_nothing_cb = base::BindRepeating([](AVFrame*) { return true; });
   const base::TimeTicks deadline =
       base::TimeTicks::Now() +
-      std::min(check_time,
-               base::TimeDelta::FromSeconds(kMaxCheckTimeInSeconds));
+      std::min(check_time, base::Seconds(kMaxCheckTimeInSeconds));
   do {
     result = av_read_frame(glue.format_context(), &packet);
     if (result < 0)
diff --git a/media/filters/media_file_checker_unittest.cc b/media/filters/media_file_checker_unittest.cc
index 38047fd8..b8d52aa 100644
--- a/media/filters/media_file_checker_unittest.cc
+++ b/media/filters/media_file_checker_unittest.cc
@@ -20,7 +20,7 @@
   ASSERT_TRUE(file.IsValid());
 
   MediaFileChecker checker(std::move(file));
-  const base::TimeDelta check_time = base::TimeDelta::FromMilliseconds(100);
+  const base::TimeDelta check_time = base::Milliseconds(100);
   bool result = checker.Start(check_time);
   EXPECT_EQ(expectation, result);
 }
diff --git a/media/filters/pipeline_controller_unittest.cc b/media/filters/pipeline_controller_unittest.cc
index d842b598..982dfe7 100644
--- a/media/filters/pipeline_controller_unittest.cc
+++ b/media/filters/pipeline_controller_unittest.cc
@@ -192,7 +192,7 @@
   Mock::VerifyAndClear(pipeline_);
 
   // Initiate a seek before the pipeline completes suspended startup.
-  base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5);
+  base::TimeDelta seek_time = base::Seconds(5);
   EXPECT_CALL(demuxer_, StartWaitingForSeek(seek_time));
   pipeline_controller_.Seek(seek_time, true);
   base::RunLoop().RunUntilIdle();
@@ -283,7 +283,7 @@
   Complete(StartPipeline());
   was_seeked_ = false;
 
-  base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5);
+  base::TimeDelta seek_time = base::Seconds(5);
   EXPECT_CALL(demuxer_, StartWaitingForSeek(seek_time));
   PipelineStatusCallback seek_cb = SeekPipeline(seek_time);
   base::RunLoop().RunUntilIdle();
@@ -298,7 +298,7 @@
 TEST_F(PipelineControllerTest, DecoderStateLost) {
   Complete(StartPipeline());
 
-  constexpr auto kCurrentMediaTime = base::TimeDelta::FromSeconds(7);
+  constexpr auto kCurrentMediaTime = base::Seconds(7);
   EXPECT_CALL(*pipeline_, GetMediaTime())
       .WillRepeatedly(Return(kCurrentMediaTime));
 
@@ -314,7 +314,7 @@
   Complete(StartPipeline());
 
   // Create a pending seek.
-  base::TimeDelta kSeekTime = base::TimeDelta::FromSeconds(5);
+  base::TimeDelta kSeekTime = base::Seconds(5);
   EXPECT_CALL(demuxer_, StartWaitingForSeek(kSeekTime));
   PipelineStatusCallback seek_cb = SeekPipeline(kSeekTime);
   base::RunLoop().RunUntilIdle();
@@ -332,7 +332,7 @@
   Complete(StartPipeline());
   Complete(SuspendPipeline());
 
-  base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5);
+  base::TimeDelta seek_time = base::Seconds(5);
   pipeline_controller_.Seek(seek_time, true);
   base::RunLoop().RunUntilIdle();
 
@@ -344,7 +344,7 @@
   Complete(StartPipeline_WithStreamingData());
   Complete(SuspendPipeline());
 
-  base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5);
+  base::TimeDelta seek_time = base::Seconds(5);
   pipeline_controller_.Seek(seek_time, true);
   base::RunLoop().RunUntilIdle();
 
@@ -356,14 +356,14 @@
   Complete(StartPipeline());
 
   // Create a first pending seek.
-  base::TimeDelta seek_time_1 = base::TimeDelta::FromSeconds(5);
+  base::TimeDelta seek_time_1 = base::Seconds(5);
   EXPECT_CALL(demuxer_, StartWaitingForSeek(seek_time_1));
   PipelineStatusCallback seek_cb_1 = SeekPipeline(seek_time_1);
   base::RunLoop().RunUntilIdle();
   Mock::VerifyAndClear(&demuxer_);
 
   // Create a second seek; the first should be aborted.
-  base::TimeDelta seek_time_2 = base::TimeDelta::FromSeconds(10);
+  base::TimeDelta seek_time_2 = base::Seconds(10);
   EXPECT_CALL(demuxer_, CancelPendingSeek(seek_time_2));
   pipeline_controller_.Seek(seek_time_2, true);
   base::RunLoop().RunUntilIdle();
@@ -378,7 +378,7 @@
 TEST_F(PipelineControllerTest, PendingSuspend) {
   Complete(StartPipeline());
 
-  base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5);
+  base::TimeDelta seek_time = base::Seconds(5);
   PipelineStatusCallback seek_cb = SeekPipeline(seek_time);
   base::RunLoop().RunUntilIdle();
 
@@ -402,7 +402,7 @@
 
   // Request a seek while suspended.
   // It will be a mock failure if pipeline_.Seek() is called.
-  base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5);
+  base::TimeDelta seek_time = base::Seconds(5);
   pipeline_controller_.Seek(seek_time, true);
   base::RunLoop().RunUntilIdle();
   EXPECT_FALSE(was_seeked_);
@@ -416,17 +416,17 @@
 TEST_F(PipelineControllerTest, SeekMergesWithSeek) {
   Complete(StartPipeline());
 
-  base::TimeDelta seek_time_1 = base::TimeDelta::FromSeconds(5);
+  base::TimeDelta seek_time_1 = base::Seconds(5);
   PipelineStatusCallback seek_cb_1 = SeekPipeline(seek_time_1);
   base::RunLoop().RunUntilIdle();
 
   // Request another seek while the first is ongoing.
-  base::TimeDelta seek_time_2 = base::TimeDelta::FromSeconds(10);
+  base::TimeDelta seek_time_2 = base::Seconds(10);
   pipeline_controller_.Seek(seek_time_2, true);
   base::RunLoop().RunUntilIdle();
 
   // Request a third seek. (It should replace the second.)
-  base::TimeDelta seek_time_3 = base::TimeDelta::FromSeconds(15);
+  base::TimeDelta seek_time_3 = base::Seconds(15);
   pipeline_controller_.Seek(seek_time_3, true);
   base::RunLoop().RunUntilIdle();
 
@@ -438,7 +438,7 @@
 TEST_F(PipelineControllerTest, SeekToSeekTimeElided) {
   Complete(StartPipeline());
 
-  base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5);
+  base::TimeDelta seek_time = base::Seconds(5);
   PipelineStatusCallback seek_cb_1 = SeekPipeline(seek_time);
   base::RunLoop().RunUntilIdle();
 
@@ -455,7 +455,7 @@
 TEST_F(PipelineControllerTest, SeekToSeekTimeNotElided) {
   Complete(StartPipeline_WithDynamicData());
 
-  base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5);
+  base::TimeDelta seek_time = base::Seconds(5);
   PipelineStatusCallback seek_cb_1 = SeekPipeline(seek_time);
   base::RunLoop().RunUntilIdle();
 
diff --git a/media/filters/source_buffer_range.cc b/media/filters/source_buffer_range.cc
index 80f7764..dcc13354 100644
--- a/media/filters/source_buffer_range.cc
+++ b/media/filters/source_buffer_range.cc
@@ -537,7 +537,7 @@
   // report 1 microsecond for the last buffer's duration if it is a 0 duration
   // buffer.
   if (duration.is_zero())
-    duration = base::TimeDelta::FromMicroseconds(1);
+    duration = base::Microseconds(1);
 
   return GetEndTimestamp() + duration;
 }
diff --git a/media/filters/source_buffer_stream.cc b/media/filters/source_buffer_stream.cc
index d54c6cb..509e2df 100644
--- a/media/filters/source_buffer_stream.cc
+++ b/media/filters/source_buffer_stream.cc
@@ -65,7 +65,7 @@
 // The amount of time the beginning of the buffered data can differ from the
 // start time in order to still be considered the start of stream.
 base::TimeDelta kSeekToStartFudgeRoom() {
-  return base::TimeDelta::FromMilliseconds(1000);
+  return base::Milliseconds(1000);
 }
 
 // Helper method for logging.
@@ -164,7 +164,7 @@
       range_for_next_append_(ranges_.end()),
       highest_output_buffer_timestamp_(kNoTimestamp),
       max_interbuffer_distance_(
-          base::TimeDelta::FromMilliseconds(kMinimumInterbufferDistanceInMs)),
+          base::Milliseconds(kMinimumInterbufferDistanceInMs)),
       memory_limit_(GetDemuxerStreamAudioMemoryLimit(&audio_config)) {
   DCHECK(audio_config.IsValidConfig());
   audio_configs_.push_back(audio_config);
@@ -179,7 +179,7 @@
       range_for_next_append_(ranges_.end()),
       highest_output_buffer_timestamp_(kNoTimestamp),
       max_interbuffer_distance_(
-          base::TimeDelta::FromMilliseconds(kMinimumInterbufferDistanceInMs)),
+          base::Milliseconds(kMinimumInterbufferDistanceInMs)),
       memory_limit_(
           GetDemuxerStreamVideoMemoryLimit(Demuxer::DemuxerTypes::kChunkDemuxer,
                                            &video_config)) {
@@ -197,7 +197,7 @@
       range_for_next_append_(ranges_.end()),
       highest_output_buffer_timestamp_(kNoTimestamp),
       max_interbuffer_distance_(
-          base::TimeDelta::FromMilliseconds(kMinimumInterbufferDistanceInMs)),
+          base::Milliseconds(kMinimumInterbufferDistanceInMs)),
       memory_limit_(
           GetDemuxerStreamAudioMemoryLimit(nullptr /*audio_config*/)) {}
 
@@ -241,7 +241,7 @@
         // Exclude removal of that earlier frame during later Append
         // processing by adjusting the removal range slightly forward.
         coded_frame_group_start_pts_ =
-            adjusted_start_time + base::TimeDelta::FromMicroseconds(1);
+            adjusted_start_time + base::Microseconds(1);
       }
     }
   } else if (last_range != ranges_.end()) {
@@ -736,7 +736,7 @@
     }
 
     DCHECK(max_interbuffer_distance_ >=
-           base::TimeDelta::FromMilliseconds(kMinimumInterbufferDistanceInMs));
+           base::Milliseconds(kMinimumInterbufferDistanceInMs));
     max_interbuffer_distance_ =
         std::max(max_interbuffer_distance_, interbuffer_distance);
     prev_dts = current_dts;
@@ -1146,8 +1146,7 @@
 
   // Search for overlapped buffer needs exclusive end value. Choosing smallest
   // possible value.
-  const base::TimeDelta end_pts =
-      splice_timestamp + base::TimeDelta::FromMicroseconds(1);
+  const base::TimeDelta end_pts = splice_timestamp + base::Microseconds(1);
 
   // Find if new buffer's start would overlap an existing buffer. Note that
   // overlapped audio buffers might be nonkeyframes, but if so, FrameProcessor
@@ -1209,7 +1208,7 @@
 
   // Don't trim for overlaps of less than one millisecond (which is frequently
   // the extent of timestamp resolution for poorly encoded media).
-  if (overlap_duration < base::TimeDelta::FromMilliseconds(1)) {
+  if (overlap_duration < base::Milliseconds(1)) {
     std::stringstream log_string;
     log_string << "Skipping audio splice trimming at PTS="
                << splice_timestamp.InMicroseconds() << "us. Found only "
@@ -1370,7 +1369,7 @@
     } else {
       // TODO(chcunningham): Emit warning when 0ms durations are not expected.
       // http://crbug.com/312836
-      timestamp += base::TimeDelta::FromMicroseconds(1);
+      timestamp += base::Microseconds(1);
     }
     end_pts = std::max(timestamp, end_pts);
   }
@@ -1896,8 +1895,7 @@
       return;
     }
 
-    start_timestamp =
-        highest_output_buffer_timestamp_ + base::TimeDelta::FromMicroseconds(1);
+    start_timestamp = highest_output_buffer_timestamp_ + base::Microseconds(1);
   }
 
   base::TimeDelta seek_timestamp =
diff --git a/media/filters/source_buffer_stream_unittest.cc b/media/filters/source_buffer_stream_unittest.cc
index 9842e4d..f0768427 100644
--- a/media/filters/source_buffer_stream_unittest.cc
+++ b/media/filters/source_buffer_stream_unittest.cc
@@ -165,7 +165,7 @@
   void Seek(int position) { stream_->Seek(position * frame_duration_); }
 
   void SeekToTimestampMs(int64_t timestamp_ms) {
-    stream_->Seek(base::TimeDelta::FromMilliseconds(timestamp_ms));
+    stream_->Seek(base::Milliseconds(timestamp_ms));
   }
 
   bool GarbageCollect(base::TimeDelta media_time, int new_data_size) {
@@ -178,9 +178,8 @@
   }
 
   void RemoveInMs(int start, int end, int duration) {
-    Remove(base::TimeDelta::FromMilliseconds(start),
-           base::TimeDelta::FromMilliseconds(end),
-           base::TimeDelta::FromMilliseconds(duration));
+    Remove(base::Milliseconds(start), base::Milliseconds(end),
+           base::Milliseconds(duration));
   }
 
   void Remove(base::TimeDelta start, base::TimeDelta end,
@@ -194,12 +193,10 @@
 
   int GetRemovalRangeInMs(int start, int end, int bytes_to_free,
                           int* removal_end) {
-    base::TimeDelta removal_end_timestamp =
-        base::TimeDelta::FromMilliseconds(*removal_end);
-    int bytes_removed =
-        stream_->GetRemovalRange(base::TimeDelta::FromMilliseconds(start),
-                                 base::TimeDelta::FromMilliseconds(end),
-                                 bytes_to_free, &removal_end_timestamp);
+    base::TimeDelta removal_end_timestamp = base::Milliseconds(*removal_end);
+    int bytes_removed = stream_->GetRemovalRange(
+        base::Milliseconds(start), base::Milliseconds(end), bytes_to_free,
+        &removal_end_timestamp);
     *removal_end = removal_end_timestamp.InMilliseconds();
     return bytes_removed;
   }
@@ -255,7 +252,7 @@
     ASSERT_GE(stream_->ranges_.size(), 1u);
     const auto& range_ptr = *(stream_->ranges_.begin());
     EXPECT_EQ(expectation, range_ptr->IsNextInPresentationSequence(
-                               base::TimeDelta::FromMilliseconds(pts_in_ms)));
+                               base::Milliseconds(pts_in_ms)));
   }
 
   void CheckExpectedBuffers(
@@ -453,7 +450,7 @@
   }
 
   base::TimeDelta ConvertToFrameDuration(int frames_per_second) {
-    return base::TimeDelta::FromSeconds(1) / frames_per_second;
+    return base::Seconds(1) / frames_per_second;
   }
 
   void AppendBuffers(int starting_position,
@@ -623,7 +620,7 @@
         if (!is_us)
           us *= base::Time::kMicrosecondsPerMillisecond;
 
-        buffer_timestamps.push_back(base::TimeDelta::FromMicroseconds(us));
+        buffer_timestamps.push_back(base::Microseconds(us));
       }
 
       // Create buffer. Track ID is meaningless to these tests
@@ -639,7 +636,7 @@
       }
 
       if (duration_in_us >= 0)
-        buffer->set_duration(base::TimeDelta::FromMicroseconds(duration_in_us));
+        buffer->set_duration(base::Microseconds(duration_in_us));
 
       // Simulate preroll buffers by just generating another buffer and sticking
       // it as the preroll.
@@ -779,8 +776,7 @@
   // Append a coded frame group with a start timestamp of 0, but the first
   // buffer starts at 30ms. This can happen in muxed content where the
   // audio starts before the first frame.
-  NewCodedFrameGroupAppend(base::TimeDelta::FromMilliseconds(0),
-                           "30K 60K 90K 120K");
+  NewCodedFrameGroupAppend(base::Milliseconds(0), "30K 60K 90K 120K");
 
   CheckExpectedRangesByTimestamp("{ [0,150) }");
 
@@ -2600,7 +2596,7 @@
   // GOP in that first range. Neither can it collect the last appended GOP
   // (which is the entire second range), so GC should return false since it
   // couldn't collect enough.
-  EXPECT_FALSE(GarbageCollect(base::TimeDelta::FromMilliseconds(95), 7));
+  EXPECT_FALSE(GarbageCollect(base::Milliseconds(95), 7));
   CheckExpectedRangesByTimestamp("{ [50,100) [1000,1050) }");
 }
 
@@ -2750,7 +2746,7 @@
   // So the ranges before GC are "{ [100,280) [310,400) [490,670) }".
   NewCodedFrameGroupAppend("100K 130 160 190K 220 250K");
 
-  EXPECT_TRUE(GarbageCollect(base::TimeDelta::FromMilliseconds(580), 0));
+  EXPECT_TRUE(GarbageCollect(base::Milliseconds(580), 0));
 
   // Should save the newly appended GOPs.
   CheckExpectedRangesByTimestamp("{ [100,280) [580,670) }");
@@ -2770,7 +2766,7 @@
   // range.  So the range before GC is "{ [220,670) }".
   NewCodedFrameGroupAppend("220K 250 280 310K 340 370");
 
-  EXPECT_TRUE(GarbageCollect(base::TimeDelta::FromMilliseconds(580), 0));
+  EXPECT_TRUE(GarbageCollect(base::Milliseconds(580), 0));
 
   // Should save the newly appended GOPs.
   CheckExpectedRangesByTimestamp("{ [220,400) [580,670) }");
@@ -2950,44 +2946,44 @@
   CheckExpectedRanges("{ [0,299) }");
 
   // Playback position at 0, all data must be preserved.
-  EXPECT_FALSE(GarbageCollect(base::TimeDelta::FromMilliseconds(0), 0));
+  EXPECT_FALSE(GarbageCollect(base::Milliseconds(0), 0));
   CheckExpectedRanges("{ [0,299) }");
 
   // Playback position at 1 sec, the first second of data [0,29) should be
   // collected, since we are way over memory limit.
-  EXPECT_FALSE(GarbageCollect(base::TimeDelta::FromMilliseconds(1000), 0));
+  EXPECT_FALSE(GarbageCollect(base::Milliseconds(1000), 0));
   CheckExpectedRanges("{ [30,299) }");
 
   // Playback position at 1.1 sec, no new data can be collected, since the
   // playback position is still in the first GOP of buffered data.
-  EXPECT_FALSE(GarbageCollect(base::TimeDelta::FromMilliseconds(1100), 0));
+  EXPECT_FALSE(GarbageCollect(base::Milliseconds(1100), 0));
   CheckExpectedRanges("{ [30,299) }");
 
   // Playback position at 5.166 sec, just at the very end of GOP corresponding
   // to buffer range 150-155, which should be preserved.
-  EXPECT_FALSE(GarbageCollect(base::TimeDelta::FromMilliseconds(5166), 0));
+  EXPECT_FALSE(GarbageCollect(base::Milliseconds(5166), 0));
   CheckExpectedRanges("{ [150,299) }");
 
   // Playback position at 5.167 sec, just past the end of GOP corresponding to
   // buffer range 150-155, it should be garbage collected now.
-  EXPECT_FALSE(GarbageCollect(base::TimeDelta::FromMilliseconds(5167), 0));
+  EXPECT_FALSE(GarbageCollect(base::Milliseconds(5167), 0));
   CheckExpectedRanges("{ [155,299) }");
 
   // Playback at 9.0 sec, we can now successfully collect all data except the
   // last second and we are back under memory limit of 30 buffers, so GCIfNeeded
   // should return true.
-  EXPECT_TRUE(GarbageCollect(base::TimeDelta::FromMilliseconds(9000), 0));
+  EXPECT_TRUE(GarbageCollect(base::Milliseconds(9000), 0));
   CheckExpectedRanges("{ [270,299) }");
 
   // Playback at 9.999 sec, GC succeeds, since we are under memory limit even
   // without removing any data.
-  EXPECT_TRUE(GarbageCollect(base::TimeDelta::FromMilliseconds(9999), 0));
+  EXPECT_TRUE(GarbageCollect(base::Milliseconds(9999), 0));
   CheckExpectedRanges("{ [270,299) }");
 
   // Playback at 15 sec, this should never happen during regular playback in
   // browser, since this position has no data buffered, but it should still
   // cause no problems to GC algorithm, so test it just in case.
-  EXPECT_TRUE(GarbageCollect(base::TimeDelta::FromMilliseconds(15000), 0));
+  EXPECT_TRUE(GarbageCollect(base::Milliseconds(15000), 0));
   CheckExpectedRanges("{ [270,299) }");
 }
 
@@ -3017,14 +3013,14 @@
   // GC. Because it is after 290ms, this tests that the GOP is saved when
   // deleting from the back.
   NewCodedFrameGroupAppend("500K 530 560 590");
-  EXPECT_FALSE(GarbageCollect(base::TimeDelta::FromMilliseconds(290), 0));
+  EXPECT_FALSE(GarbageCollect(base::Milliseconds(290), 0));
 
   // Should save GOPs between 290ms and the last GOP appended.
   CheckExpectedRangesByTimestamp("{ [290,380) [500,620) }");
 
   // Continue appending to this GOP after GC.
   AppendBuffers("620D30");
-  EXPECT_FALSE(GarbageCollect(base::TimeDelta::FromMilliseconds(290), 0));
+  EXPECT_FALSE(GarbageCollect(base::Milliseconds(290), 0));
   CheckExpectedRangesByTimestamp("{ [290,380) [500,650) }");
 }
 
@@ -3042,11 +3038,11 @@
 
   // This whole GOP should be saved after GC, which will fail due to GOP being
   // larger than 1 buffer
-  EXPECT_FALSE(GarbageCollect(base::TimeDelta::FromMilliseconds(80), 0));
+  EXPECT_FALSE(GarbageCollect(base::Milliseconds(80), 0));
   CheckExpectedRangesByTimestamp("{ [80,170) }");
   // We should still be able to continue appending data to GOP
   AppendBuffers("170D30");
-  EXPECT_FALSE(GarbageCollect(base::TimeDelta::FromMilliseconds(80), 0));
+  EXPECT_FALSE(GarbageCollect(base::Milliseconds(80), 0));
   CheckExpectedRangesByTimestamp("{ [80,200) }");
 
   // Append a 2nd range after this range, without triggering GC.
@@ -3060,14 +3056,14 @@
   // it is after the selected range, this tests that the GOP is saved when
   // deleting from the back.
   NewCodedFrameGroupAppend("500K 530 560 590");
-  EXPECT_FALSE(GarbageCollect(base::TimeDelta::FromMilliseconds(80), 0));
+  EXPECT_FALSE(GarbageCollect(base::Milliseconds(80), 0));
 
   // Should save the GOPs between the seek point and GOP that was last appended
   CheckExpectedRangesByTimestamp("{ [80,200) [400,620) }");
 
   // Continue appending to this GOP after GC.
   AppendBuffers("620D30");
-  EXPECT_FALSE(GarbageCollect(base::TimeDelta::FromMilliseconds(80), 0));
+  EXPECT_FALSE(GarbageCollect(base::Milliseconds(80), 0));
   CheckExpectedRangesByTimestamp("{ [80,200) [400,650) }");
 }
 
@@ -3087,7 +3083,7 @@
 
   // GC should save the GOP at 0ms and 90ms, and will fail since GOP larger
   // than 1 buffer
-  EXPECT_FALSE(GarbageCollect(base::TimeDelta::FromMilliseconds(90), 0));
+  EXPECT_FALSE(GarbageCollect(base::Milliseconds(90), 0));
   CheckExpectedRangesByTimestamp("{ [0,180) }");
 
   // Seek to 0 and check all buffers.
@@ -3100,7 +3096,7 @@
   NewCodedFrameGroupAppend("180K 210 240");
 
   // Should save the GOP at 90ms and the GOP at 180ms.
-  EXPECT_FALSE(GarbageCollect(base::TimeDelta::FromMilliseconds(90), 0));
+  EXPECT_FALSE(GarbageCollect(base::Milliseconds(90), 0));
   CheckExpectedRangesByTimestamp("{ [90,270) }");
   CheckExpectedBuffers("90K 120 150 180K 210 240");
   CheckNoNextBuffer();
@@ -3123,7 +3119,7 @@
 
   // GC will save data in the range where the most recent append has happened
   // [0; 180) and the range where the next read position is [270;360)
-  EXPECT_FALSE(GarbageCollect(base::TimeDelta::FromMilliseconds(270), 0));
+  EXPECT_FALSE(GarbageCollect(base::Milliseconds(270), 0));
   CheckExpectedRangesByTimestamp("{ [0,180) [270,360) }");
 
   // Add 3 GOPs to the end of the selected range at 360ms, 450ms, and 540ms.
@@ -3133,7 +3129,7 @@
   // Overlap the GOP at 450ms and garbage collect to test deleting from the
   // back.
   NewCodedFrameGroupAppend("450K 480 510");
-  EXPECT_FALSE(GarbageCollect(base::TimeDelta::FromMilliseconds(270), 0));
+  EXPECT_FALSE(GarbageCollect(base::Milliseconds(270), 0));
 
   // Should save GOPs from GOP at 270ms to GOP at 450ms.
   CheckExpectedRangesByTimestamp("{ [270,540) }");
@@ -3156,7 +3152,7 @@
 
   // GC should save the newly appended GOP, which is also the next GOP that
   // will be returned from the seek request.
-  EXPECT_FALSE(GarbageCollect(base::TimeDelta::FromMilliseconds(0), 0));
+  EXPECT_FALSE(GarbageCollect(base::Milliseconds(0), 0));
   CheckExpectedRangesByTimestamp("{ [0,60) }");
 
   // Check the buffers in the range.
@@ -3168,7 +3164,7 @@
 
   // GC should still save the rest of this GOP and should be able to fulfill
   // the read.
-  EXPECT_FALSE(GarbageCollect(base::TimeDelta::FromMilliseconds(0), 0));
+  EXPECT_FALSE(GarbageCollect(base::Milliseconds(0), 0));
   CheckExpectedRangesByTimestamp("{ [0,120) }");
   CheckExpectedBuffers("60 90");
   CheckNoNextBuffer();
@@ -3207,7 +3203,7 @@
   // the last appended buffer (330), but still within buffered ranges, taking
   // into account the duration of the last frame (timestamp of the last frame is
   // 330, duration is 30, so the latest valid buffered position is 330+30=360).
-  EXPECT_TRUE(GarbageCollect(base::TimeDelta::FromMilliseconds(360), 0));
+  EXPECT_TRUE(GarbageCollect(base::Milliseconds(360), 0));
 
   // GC should collect one GOP from the front to bring us back under memory
   // limit of 10 buffers.
@@ -3234,7 +3230,7 @@
   // return a media_time that is slightly outside of video buffered range). In
   // those cases the GC algorithm should clamp the media_time value to the
   // buffered ranges to work correctly (see crbug.com/563292).
-  EXPECT_TRUE(GarbageCollect(base::TimeDelta::FromMilliseconds(361), 0));
+  EXPECT_TRUE(GarbageCollect(base::Milliseconds(361), 0));
 
   // GC should collect one GOP from the front to bring us back under memory
   // limit of 10 buffers.
@@ -3458,7 +3454,7 @@
   CheckExpectedRangesByTimestamp("{ [50,100) [150,200) [250,300) }");
 
   // Set duration to be 80ms. Truncates the buffered data after 80ms.
-  stream_->OnSetDuration(base::TimeDelta::FromMilliseconds(80));
+  stream_->OnSetDuration(base::Milliseconds(80));
 
   // The simulated P-frame at PTS 90ms should have been
   // removed by the duration truncation. Only the frame at PTS 50ms should
@@ -3500,7 +3496,7 @@
 
   // Trim off last 2 buffers, totaling 8 ms. Notably less than the current fudge
   // room of 10 ms.
-  stream_->OnSetDuration(base::TimeDelta::FromMilliseconds(5));
+  stream_->OnSetDuration(base::Milliseconds(5));
 
   // Verify truncation.
   CheckExpectedRangesByTimestamp("{ [0,5) }");
@@ -3548,7 +3544,7 @@
   // Check expected ranges.
   CheckExpectedRangesByTimestamp("{ [0,50) [100,200) [250,300) }");
 
-  stream_->OnSetDuration(base::TimeDelta::FromMilliseconds(140));
+  stream_->OnSetDuration(base::Milliseconds(140));
 
   // The B-frames at PTS 110-130 were in the GOP in decode order after
   // the simulated P-frame at PTS 140 which was truncated, so those B-frames
@@ -3567,7 +3563,7 @@
   SeekToTimestampMs(150);
 
   // Set duration to 50ms.
-  stream_->OnSetDuration(base::TimeDelta::FromMilliseconds(50));
+  stream_->OnSetDuration(base::Milliseconds(50));
 
   // Expect everything to be deleted, and should not have next buffer anymore.
   CheckNoNextBuffer();
@@ -3627,7 +3623,7 @@
   CheckExpectedBuffers("0K 30");
 
   // Set duration to be right before buffer 1.
-  stream_->OnSetDuration(base::TimeDelta::FromMilliseconds(60));
+  stream_->OnSetDuration(base::Milliseconds(60));
 
   // Verify that there is no next buffer.
   CheckNoNextBuffer();
@@ -3645,14 +3641,13 @@
   // Append a coded frame group with a start timestamp of 200, but the first
   // buffer starts at 230ms. This can happen in muxed content where the
   // audio starts before the first frame.
-  NewCodedFrameGroupAppend(base::TimeDelta::FromMilliseconds(200),
-                           "230K 260K 290K 320K");
+  NewCodedFrameGroupAppend(base::Milliseconds(200), "230K 260K 290K 320K");
 
   NewCodedFrameGroupAppend("400K 430K 460K");
 
   CheckExpectedRangesByTimestamp("{ [0,90) [200,350) [400,490) }");
 
-  stream_->OnSetDuration(base::TimeDelta::FromMilliseconds(120));
+  stream_->OnSetDuration(base::Milliseconds(120));
 
   // Verify that the buffered ranges are updated properly and we don't crash.
   CheckExpectedRangesByTimestamp("{ [0,90) }");
@@ -3671,7 +3666,7 @@
   // Set duration to be before the seeked to position.
   // This will result in truncation of the selected range and a reset
   // of NextBufferPosition.
-  stream_->OnSetDuration(base::TimeDelta::FromMilliseconds(40));
+  stream_->OnSetDuration(base::Milliseconds(40));
 
   // The P-frame at PTS 40ms was removed, so its dependent B-frames at PTS 10-30
   // were also removed.
@@ -3698,7 +3693,7 @@
   // Set duration to be before the seeked to position.
   // This will result in truncation of the selected range and a reset
   // of NextBufferPosition.
-  stream_->OnSetDuration(base::TimeDelta::FromMilliseconds(40));
+  stream_->OnSetDuration(base::Milliseconds(40));
 
   // The P-frame at PTS 40ms was removed, so its dependent B-frames at PTS 10-30
   // were also removed.
@@ -4191,8 +4186,7 @@
   Seek(0);
 
   // Append a coded frame group that has a gap at the beginning of it.
-  NewCodedFrameGroupAppend(base::TimeDelta::FromMilliseconds(0),
-                           "30K 60 90 120K 150");
+  NewCodedFrameGroupAppend(base::Milliseconds(0), "30K 60 90 120K 150");
   CheckExpectedRangesByTimestamp("{ [0,180) }");
 
   // Remove the gap that doesn't contain any buffers.
@@ -4370,8 +4364,8 @@
     // Verify buffer timestamps and durations are preserved and no buffers have
     // discard padding (indicating no splice trimming).
     EXPECT_STATUS_FOR_STREAM_OP(kSuccess, GetNextBuffer(&buffer));
-    EXPECT_EQ(base::TimeDelta::FromMilliseconds(i * 2), buffer->timestamp());
-    EXPECT_EQ(base::TimeDelta::FromMilliseconds(2), buffer->duration());
+    EXPECT_EQ(base::Milliseconds(i * 2), buffer->timestamp());
+    EXPECT_EQ(base::Milliseconds(2), buffer->duration());
     EXPECT_EQ(kEmptyDiscardPadding, buffer->discard_padding());
   }
 
@@ -4425,7 +4419,7 @@
 }
 
 TEST_F(SourceBufferStreamTest, Audio_SpliceTrimming_ExistingTrimming) {
-  const base::TimeDelta kDuration = base::TimeDelta::FromMilliseconds(4);
+  const base::TimeDelta kDuration = base::Milliseconds(4);
   const base::TimeDelta kNoDiscard = base::TimeDelta();
   const bool is_keyframe = true;
 
@@ -4442,7 +4436,7 @@
   // Buffer A1: PTS = 0, front discard = 2ms, duration = 2ms.
   scoped_refptr<StreamParserBuffer> bufferA1 = StreamParserBuffer::CopyFrom(
       &kDataA, kDataSize, is_keyframe, DemuxerStream::AUDIO, 0);
-  bufferA1->set_timestamp(base::TimeDelta::FromMilliseconds(0));
+  bufferA1->set_timestamp(base::Milliseconds(0));
   bufferA1->set_duration(kDuration / 2);
   const DecoderBuffer::DiscardPadding discardA1 =
       std::make_pair(kDuration / 2, kNoDiscard);
@@ -4452,7 +4446,7 @@
   // Buffer A2: PTS = 2, end discard = 2ms, duration = 2ms.
   scoped_refptr<StreamParserBuffer> bufferA2 = StreamParserBuffer::CopyFrom(
       &kDataA, kDataSize, is_keyframe, DemuxerStream::AUDIO, 0);
-  bufferA2->set_timestamp(base::TimeDelta::FromMilliseconds(2));
+  bufferA2->set_timestamp(base::Milliseconds(2));
   bufferA2->set_duration(kDuration / 2);
   const DecoderBuffer::DiscardPadding discardA2 =
       std::make_pair(kNoDiscard, kDuration / 2);
@@ -4462,7 +4456,7 @@
   // Buffer B1: PTS = 3, front discard = 2ms, duration = 2ms.
   scoped_refptr<StreamParserBuffer> bufferB1 = StreamParserBuffer::CopyFrom(
       &kDataA, kDataSize, is_keyframe, DemuxerStream::AUDIO, 0);
-  bufferB1->set_timestamp(base::TimeDelta::FromMilliseconds(3));
+  bufferB1->set_timestamp(base::Milliseconds(3));
   bufferB1->set_duration(kDuration / 2);
   const DecoderBuffer::DiscardPadding discardB1 =
       std::make_pair(kDuration / 2, kNoDiscard);
@@ -4472,7 +4466,7 @@
   // Buffer B2: PTS = 5, no discard padding, duration = 4ms.
   scoped_refptr<StreamParserBuffer> bufferB2 = StreamParserBuffer::CopyFrom(
       &kDataA, kDataSize, is_keyframe, DemuxerStream::AUDIO, 0);
-  bufferB2->set_timestamp(base::TimeDelta::FromMilliseconds(5));
+  bufferB2->set_timestamp(base::Milliseconds(5));
   bufferB2->set_duration(kDuration);
   B_buffers.push_back(bufferB2);
 
@@ -4487,15 +4481,15 @@
 
   // Buffer A1 was not spliced, should be unchanged.
   EXPECT_STATUS_FOR_STREAM_OP(kSuccess, GetNextBuffer(&read_buffer));
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(0), read_buffer->timestamp());
+  EXPECT_EQ(base::Milliseconds(0), read_buffer->timestamp());
   EXPECT_EQ(kDuration / 2, read_buffer->duration());
   EXPECT_EQ(discardA1, read_buffer->discard_padding());
 
   // Buffer A2 was overlapped by buffer B1 1ms. Splice trimming should trim A2's
   // duration and increase its discard padding by 1ms.
-  const base::TimeDelta overlap = base::TimeDelta::FromMilliseconds(1);
+  const base::TimeDelta overlap = base::Milliseconds(1);
   EXPECT_STATUS_FOR_STREAM_OP(kSuccess, GetNextBuffer(&read_buffer));
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(2), read_buffer->timestamp());
+  EXPECT_EQ(base::Milliseconds(2), read_buffer->timestamp());
   EXPECT_EQ((kDuration / 2) - overlap, read_buffer->duration());
   const DecoderBuffer::DiscardPadding overlap_discard =
       std::make_pair(discardA2.first, discardA2.second + overlap);
@@ -4504,13 +4498,13 @@
   // Buffer B1 is overlapping A2, but B1 should be unchanged - splice trimming
   // only modifies the earlier buffer (A1).
   EXPECT_STATUS_FOR_STREAM_OP(kSuccess, GetNextBuffer(&read_buffer));
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(3), read_buffer->timestamp());
+  EXPECT_EQ(base::Milliseconds(3), read_buffer->timestamp());
   EXPECT_EQ(kDuration / 2, read_buffer->duration());
   EXPECT_EQ(discardB1, read_buffer->discard_padding());
 
   // Buffer B2 is not spliced, should be unchanged.
   EXPECT_STATUS_FOR_STREAM_OP(kSuccess, GetNextBuffer(&read_buffer));
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(5), read_buffer->timestamp());
+  EXPECT_EQ(base::Milliseconds(5), read_buffer->timestamp());
   EXPECT_EQ(kDuration, read_buffer->duration());
   EXPECT_EQ(std::make_pair(kNoDiscard, kNoDiscard),
             read_buffer->discard_padding());
@@ -4537,8 +4531,7 @@
   // Overlap the range [0, 2) with [1.25, 2); this results in an overlap of
   // 0.25ms between the original buffer at time 1.0 and the new buffer at time
   // 1.25.
-  NewCodedFrameGroupAppend_OffsetFirstBuffer(
-      2, 2, base::TimeDelta::FromMillisecondsD(0.25));
+  NewCodedFrameGroupAppend_OffsetFirstBuffer(2, 2, base::Milliseconds(0.25));
   CheckExpectedRangesByTimestamp("{ [0,2) }");
 
   // A splice frame should not be generated since it requires at least 1ms of
@@ -4603,7 +4596,7 @@
   audio_config_.Initialize(AudioCodec::kOpus, kSampleFormatPlanarF32,
                            CHANNEL_LAYOUT_STEREO, 1000, EmptyExtraData(),
                            EncryptionScheme::kUnencrypted,
-                           base::TimeDelta::FromMilliseconds(10), 0);
+                           base::Milliseconds(10), 0);
   ResetStream<>(audio_config_);
 
   // Equivalent to 1s per frame.
@@ -4976,7 +4969,7 @@
   NewCodedFrameGroupAppend("0K 10 20");
   CheckExpectedRangesByTimestamp("{ [0,30) [1000,1090) }");
 
-  SignalStartOfCodedFrameGroup(base::TimeDelta::FromMilliseconds(1070));
+  SignalStartOfCodedFrameGroup(base::Milliseconds(1070));
   CheckExpectedRangesByTimestamp("{ [0,30) [1000,1090) }");
 
   RemoveInMs(1030, 1050, 1090);
@@ -4999,7 +4992,7 @@
 TEST_F(SourceBufferStreamTest,
        StartCodedFrameGroup_InExisting_AppendMuchLater) {
   NewCodedFrameGroupAppend("0K 10 20 30K 40 50");
-  SignalStartOfCodedFrameGroup(base::TimeDelta::FromMilliseconds(45));
+  SignalStartOfCodedFrameGroup(base::Milliseconds(45));
   CheckExpectedRangesByTimestamp("{ [0,60) }");
 
   AppendBuffers("2000K 2010");
@@ -5012,7 +5005,7 @@
 TEST_F(SourceBufferStreamTest,
        StartCodedFrameGroup_InExisting_RemoveGOP_ThenAppend_1) {
   NewCodedFrameGroupAppend("0K 10 20 30K 40 50");
-  SignalStartOfCodedFrameGroup(base::TimeDelta::FromMilliseconds(30));
+  SignalStartOfCodedFrameGroup(base::Milliseconds(30));
   RemoveInMs(30, 60, 60);
   CheckExpectedRangesByTimestamp("{ [0,30) }");
 
@@ -5030,7 +5023,7 @@
   // to be 40.001ms (which is just beyond the highest buffered timestamp at or
   // before 45ms) to help prevent potential discontinuity across the front of
   // the overlapping append.
-  SignalStartOfCodedFrameGroup(base::TimeDelta::FromMilliseconds(45));
+  SignalStartOfCodedFrameGroup(base::Milliseconds(45));
   RemoveInMs(30, 60, 60);
   CheckExpectedRangesByTimestamp("{ [0,30) }");
 
@@ -5050,7 +5043,7 @@
 TEST_F(SourceBufferStreamTest,
        StartCodedFrameGroup_InExisting_RemoveMostRecentAppend_ThenAppend_1) {
   NewCodedFrameGroupAppend("0K 10 20 30K 40 50");
-  SignalStartOfCodedFrameGroup(base::TimeDelta::FromMilliseconds(45));
+  SignalStartOfCodedFrameGroup(base::Milliseconds(45));
   RemoveInMs(50, 60, 60);
   CheckExpectedRangesByTimestamp("{ [0,50) }");
 
@@ -5064,7 +5057,7 @@
 TEST_F(SourceBufferStreamTest,
        StartCodedFrameGroup_InExisting_RemoveMostRecentAppend_ThenAppend_2) {
   NewCodedFrameGroupAppend("0K 10 20 30K 40 50");
-  SignalStartOfCodedFrameGroup(base::TimeDelta::FromMilliseconds(50));
+  SignalStartOfCodedFrameGroup(base::Milliseconds(50));
   RemoveInMs(50, 60, 60);
   CheckExpectedRangesByTimestamp("{ [0,50) }");
 
@@ -5079,19 +5072,16 @@
   EXPECT_EQ(base::TimeDelta(), stream_->GetHighestPresentationTimestamp());
 
   NewCodedFrameGroupAppend("0K 10K");
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(10),
-            stream_->GetHighestPresentationTimestamp());
+  EXPECT_EQ(base::Milliseconds(10), stream_->GetHighestPresentationTimestamp());
 
   RemoveInMs(0, 10, 20);
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(10),
-            stream_->GetHighestPresentationTimestamp());
+  EXPECT_EQ(base::Milliseconds(10), stream_->GetHighestPresentationTimestamp());
 
   RemoveInMs(10, 20, 20);
   EXPECT_EQ(base::TimeDelta(), stream_->GetHighestPresentationTimestamp());
 
   NewCodedFrameGroupAppend("0K 10K");
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(10),
-            stream_->GetHighestPresentationTimestamp());
+  EXPECT_EQ(base::Milliseconds(10), stream_->GetHighestPresentationTimestamp());
 
   RemoveInMs(10, 20, 20);
   EXPECT_EQ(base::TimeDelta(), stream_->GetHighestPresentationTimestamp());
@@ -5106,9 +5096,9 @@
   // notification takes no effect and the memory limits and won't remove
   // anything from buffered ranges, since we are under the limit of 20 bytes.
   stream_->OnMemoryPressure(
-      base::TimeDelta::FromMilliseconds(0),
+      base::Milliseconds(0),
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE, false);
-  EXPECT_TRUE(GarbageCollect(base::TimeDelta::FromMilliseconds(8), 0));
+  EXPECT_TRUE(GarbageCollect(base::Milliseconds(8), 0));
   CheckExpectedRangesByTimestamp("{ [0,16) }");
 
   // Now enable the feature (on top of any overrides already in
@@ -5118,26 +5108,26 @@
 
   // Verify that effective MSE memory limit is reduced under memory pressure.
   stream_->OnMemoryPressure(
-      base::TimeDelta::FromMilliseconds(0),
+      base::Milliseconds(0),
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE, false);
 
   // Effective memory limit is now 8 buffers, but we still will not collect any
   // data between the current playback position 3 and last append position 15.
-  EXPECT_TRUE(GarbageCollect(base::TimeDelta::FromMilliseconds(4), 0));
+  EXPECT_TRUE(GarbageCollect(base::Milliseconds(4), 0));
   CheckExpectedRangesByTimestamp("{ [3,16) }");
 
   // As playback proceeds further to time 9 we should be able to collect
   // enough data to bring us back under memory limit of 8 buffers.
-  EXPECT_TRUE(GarbageCollect(base::TimeDelta::FromMilliseconds(9), 0));
+  EXPECT_TRUE(GarbageCollect(base::Milliseconds(9), 0));
   CheckExpectedRangesByTimestamp("{ [9,16) }");
 
   // If memory pressure becomes critical, the garbage collection algorithm
   // becomes even more aggressive and collects everything up to the current
   // playback position.
   stream_->OnMemoryPressure(
-      base::TimeDelta::FromMilliseconds(0),
+      base::Milliseconds(0),
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL, false);
-  EXPECT_TRUE(GarbageCollect(base::TimeDelta::FromMilliseconds(13), 0));
+  EXPECT_TRUE(GarbageCollect(base::Milliseconds(13), 0));
   CheckExpectedRangesByTimestamp("{ [12,16) }");
 
   // But even under critical memory pressure the MSE memory limit imposed by the
@@ -5145,7 +5135,7 @@
   // successfully up to the hard limit of 16 bytes.
   NewCodedFrameGroupAppend("16K 17 18 19 20 21 22 23 24 25 26 27");
   CheckExpectedRangesByTimestamp("{ [12,28) }");
-  EXPECT_TRUE(GarbageCollect(base::TimeDelta::FromMilliseconds(13), 0));
+  EXPECT_TRUE(GarbageCollect(base::Milliseconds(13), 0));
   CheckExpectedRangesByTimestamp("{ [12,28) }");
 }
 
@@ -5162,11 +5152,11 @@
   base::test::ScopedFeatureList scoped_feature_list;
   scoped_feature_list.InitAndEnableFeature(kMemoryPressureBasedSourceBufferGC);
   stream_->OnMemoryPressure(
-      base::TimeDelta::FromMilliseconds(7),
+      base::Milliseconds(7),
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL, true);
   CheckExpectedRangesByTimestamp("{ [6,16) }");
   stream_->OnMemoryPressure(
-      base::TimeDelta::FromMilliseconds(9),
+      base::Milliseconds(9),
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL, true);
   CheckExpectedRangesByTimestamp("{ [9,16) }");
 }
@@ -5189,7 +5179,7 @@
   // Seek to the second GOP's keyframe to allow GC to collect all of the first
   // GOP (ostensibly increasing SourceBufferRange's |keyframe_map_index_base_|).
   SeekToTimestampMs(50);
-  GarbageCollect(base::TimeDelta::FromMilliseconds(50), 0);
+  GarbageCollect(base::Milliseconds(50), 0);
   CheckExpectedRangesByTimestamp("{ [50,150) }");
 
   // Remove from the middle of the first remaining GOP to the end of the range.
@@ -5201,7 +5191,7 @@
   // Simulates B-frame content where MP4 edit lists are not used to shift PTS so
   // it matches DTS. From acolwell@chromium.org in https://crbug.com/398130
   Seek(0);
-  NewCodedFrameGroupAppend(base::TimeDelta::FromMilliseconds(60),
+  NewCodedFrameGroupAppend(base::Milliseconds(60),
                            "60|0K 180|30 90|60 120|90 150|120");
   CheckExpectedRangesByTimestamp("{ [60,210) }");
   CheckExpectedBuffers("60|0K 180|30 90|60 120|90 150|120");
@@ -5489,7 +5479,7 @@
   // incrementally append more frames of that preceding GOP to fill in the
   // timeline to abut the first appended GOP's keyframe timestamp and observe no
   // further buffered range change or discontinuity.
-  NewCodedFrameGroupAppend(base::TimeDelta::FromMilliseconds(100), "150K 160");
+  NewCodedFrameGroupAppend(base::Milliseconds(100), "150K 160");
   SeekToTimestampMs(100);
   CheckExpectedRangesByTimestamp("{ [100,170) }");
   CheckExpectedRangeEndTimes("{ <160,170> }");
diff --git a/media/filters/video_cadence_estimator.cc b/media/filters/video_cadence_estimator.cc
index 44d1ed5..cbbd110 100644
--- a/media/filters/video_cadence_estimator.cc
+++ b/media/filters/video_cadence_estimator.cc
@@ -77,7 +77,7 @@
 VideoCadenceEstimator::VideoCadenceEstimator(
     base::TimeDelta minimum_time_until_max_drift)
     : cadence_hysteresis_threshold_(
-          base::TimeDelta::FromMilliseconds(kMinimumCadenceDurationMs)),
+          base::Milliseconds(kMinimumCadenceDurationMs)),
       minimum_time_until_max_drift_(minimum_time_until_max_drift),
       is_variable_frame_rate_(false) {
   Reset();
diff --git a/media/filters/video_cadence_estimator_unittest.cc b/media/filters/video_cadence_estimator_unittest.cc
index f914a23..7d1ce93 100644
--- a/media/filters/video_cadence_estimator_unittest.cc
+++ b/media/filters/video_cadence_estimator_unittest.cc
@@ -20,8 +20,7 @@
 namespace media {
 
 // See VideoCadenceEstimator header for more details.
-constexpr auto kMinimumAcceptableTimeBetweenGlitches =
-    base::TimeDelta::FromSeconds(8);
+constexpr auto kMinimumAcceptableTimeBetweenGlitches = base::Seconds(8);
 
 // Slows down the given |fps| according to NTSC field reduction standards; see
 // http://en.wikipedia.org/wiki/Frame_rate#Digital_video_and_television
@@ -30,7 +29,7 @@
 }
 
 static base::TimeDelta Interval(double hertz) {
-  return base::TimeDelta::FromSecondsD(1.0 / hertz);
+  return base::Seconds(1.0 / hertz);
 }
 
 std::vector<int> CreateCadenceFromString(const std::string& cadence) {
@@ -176,7 +175,7 @@
   VideoCadenceEstimator estimator(kMinimumAcceptableTimeBetweenGlitches);
   estimator.set_cadence_hysteresis_threshold_for_testing(base::TimeDelta());
 
-  base::TimeDelta drift = base::TimeDelta::FromHours(1);
+  base::TimeDelta drift = base::Hours(1);
   VerifyCadenceVectorWithCustomDrift(&estimator, 1, NTSC(60), drift, "[60]");
 
   VerifyCadenceVectorWithCustomDrift(&estimator, 30, 60, drift, "[2]");
@@ -199,7 +198,7 @@
   VideoCadenceEstimator estimator(kMinimumAcceptableTimeBetweenGlitches);
   estimator.set_cadence_hysteresis_threshold_for_testing(base::TimeDelta());
 
-  const base::TimeDelta deviation = base::TimeDelta::FromMilliseconds(30);
+  const base::TimeDelta deviation = base::Milliseconds(30);
   VerifyCadenceVectorWithCustomDeviation(&estimator, 1, 60, deviation, "[]");
   VerifyCadenceVectorWithCustomDeviation(&estimator, 30, 60, deviation, "[]");
   VerifyCadenceVectorWithCustomDeviation(&estimator, 25, 60, deviation, "[]");
@@ -307,7 +306,7 @@
   const base::TimeDelta frame_interval = Interval(frame_rate);
   const base::TimeDelta acceptable_drift =
       frame_interval < render_interval ? render_interval : frame_interval;
-  const base::TimeDelta test_runtime = base::TimeDelta::FromSeconds(10 * 60);
+  const base::TimeDelta test_runtime = base::Seconds(10 * 60);
   const int test_frames = base::ClampFloor(test_runtime / frame_interval);
 
   estimator->Reset();
@@ -334,7 +333,7 @@
 TEST(VideoCadenceEstimatorTest, BresenhamCadencePatterns) {
   base::test::ScopedFeatureList scoped_feature_list;
   scoped_feature_list.InitAndEnableFeature(media::kBresenhamCadence);
-  VideoCadenceEstimator estimator(base::TimeDelta::FromSeconds(1));
+  VideoCadenceEstimator estimator(base::Seconds(1));
   estimator.set_cadence_hysteresis_threshold_for_testing(base::TimeDelta());
 
   VerifyCadenceSequence(&estimator, 30, 60,
@@ -366,8 +365,7 @@
 
   // Frame rate deviation is too high, refuse to provide cadence.
   EXPECT_TRUE(estimator.UpdateCadenceEstimate(
-      Interval(60), Interval(30), base::TimeDelta::FromMilliseconds(20),
-      base::TimeDelta::FromSeconds(100)));
+      Interval(60), Interval(30), base::Milliseconds(20), base::Seconds(100)));
   EXPECT_FALSE(estimator.has_cadence());
 
   // No cadence change for neglegable rate changes
@@ -381,7 +379,7 @@
 TEST(VideoCadenceEstimatorTest, BresenhamCadenceChange) {
   base::test::ScopedFeatureList scoped_feature_list;
   scoped_feature_list.InitAndEnableFeature(media::kBresenhamCadence);
-  VideoCadenceEstimator estimator(base::TimeDelta::FromSeconds(1));
+  VideoCadenceEstimator estimator(base::Seconds(1));
   estimator.set_cadence_hysteresis_threshold_for_testing(base::TimeDelta());
 
   base::TimeDelta render_interval = Interval(60);
@@ -394,7 +392,7 @@
   for (double t = 0.0; t < 10.0; t += 0.1) {
     // +-100us drift of the rendering interval, a totally realistic thing.
     base::TimeDelta new_render_interval =
-        render_interval + base::TimeDelta::FromMicrosecondsD(std::sin(t) * 100);
+        render_interval + base::Microseconds(std::sin(t) * 100);
 
     EXPECT_FALSE(
         estimator.UpdateCadenceEstimate(new_render_interval, frame_duration,
diff --git a/media/filters/video_decoder_stream_unittest.cc b/media/filters/video_decoder_stream_unittest.cc
index 850e47fe..76dbc41 100644
--- a/media/filters/video_decoder_stream_unittest.cc
+++ b/media/filters/video_decoder_stream_unittest.cc
@@ -49,7 +49,7 @@
 namespace {
 const int kNumConfigs = 4;
 const int kNumBuffersInOneConfig = 5;
-constexpr base::TimeDelta kPrepareDelay = base::TimeDelta::FromMilliseconds(5);
+constexpr base::TimeDelta kPrepareDelay = base::Milliseconds(5);
 
 static int GetDecoderId(int i) {
   return i;
@@ -689,8 +689,7 @@
                             base::Unretained(this)));
   }
 
-  constexpr base::TimeDelta kDecodeDelay =
-      base::TimeDelta::FromMilliseconds(10);
+  constexpr base::TimeDelta kDecodeDelay = base::Milliseconds(10);
 
   Initialize();
 
diff --git a/media/filters/video_renderer_algorithm.cc b/media/filters/video_renderer_algorithm.cc
index 863359f..5b6be2af 100644
--- a/media/filters/video_renderer_algorithm.cc
+++ b/media/filters/video_renderer_algorithm.cc
@@ -35,8 +35,8 @@
     const TimeSource::WallClockTimeCB& wall_clock_time_cb,
     MediaLog* media_log)
     : media_log_(media_log),
-      cadence_estimator_(base::TimeDelta::FromSeconds(
-          kMinimumAcceptableTimeBetweenGlitchesSecs)),
+      cadence_estimator_(
+          base::Seconds(kMinimumAcceptableTimeBetweenGlitchesSecs)),
       wall_clock_time_cb_(wall_clock_time_cb),
       frame_duration_calculator_(kMovingAverageSamples),
       frame_dropping_disabled_(false) {
@@ -313,7 +313,7 @@
 
   // Default to ATSC IS/191 recommendations for maximum acceptable drift before
   // we have enough frames to base the maximum on frame duration.
-  max_acceptable_drift_ = base::TimeDelta::FromMilliseconds(15);
+  max_acceptable_drift_ = base::Milliseconds(15);
 }
 
 int64_t VideoRendererAlgorithm::GetMemoryUsage() const {
@@ -364,7 +364,7 @@
       new_frame_index > 0
           ? timestamp - frame_queue_[new_frame_index - 1].frame->timestamp()
           : base::TimeDelta::Max());
-  if (delta < base::TimeDelta::FromMilliseconds(1)) {
+  if (delta < base::Milliseconds(1)) {
     DVLOG(2) << "Dropping frame too close to an already enqueued frame: "
              << delta.InMicroseconds() << " us";
     ++frames_dropped_during_enqueue_;
@@ -559,8 +559,8 @@
   // We'll always allow at least 16.66ms of drift since literature suggests it's
   // well below the floor of detection and is high enough to ensure stability
   // for 60fps content.
-  max_acceptable_drift_ = std::max(average_frame_duration_ / 2,
-                                   base::TimeDelta::FromSecondsD(1.0 / 60));
+  max_acceptable_drift_ =
+      std::max(average_frame_duration_ / 2, base::Seconds(1.0 / 60));
 
   // If we were called via RemoveExpiredFrames() and Render() was never called,
   // we may not have a render interval yet.
@@ -670,8 +670,7 @@
   // ensure proper coverage calculation for 24fps in 60Hz where +/- 100us of
   // jitter is present within the |render_interval_|. At 60Hz this works out to
   // an allowed jitter of 3%.
-  const base::TimeDelta kAllowableJitter =
-      base::TimeDelta::FromMicroseconds(500);
+  const base::TimeDelta kAllowableJitter = base::Microseconds(500);
   if (*second_best >= 0 && best_frame_by_coverage > *second_best &&
       (best_coverage - coverage[*second_best]).magnitude() <=
           kAllowableJitter) {
diff --git a/media/filters/video_renderer_algorithm_unittest.cc b/media/filters/video_renderer_algorithm_unittest.cc
index 4950318..483fcedd 100644
--- a/media/filters/video_renderer_algorithm_unittest.cc
+++ b/media/filters/video_renderer_algorithm_unittest.cc
@@ -40,8 +40,7 @@
         base_time_(base_timestamp) {}
 
   base::TimeDelta interval(int tick_count) const {
-    return base::TimeDelta::FromMicroseconds(tick_count *
-                                             microseconds_per_tick_);
+    return base::Microseconds(tick_count * microseconds_per_tick_);
   }
 
   base::TimeTicks current() const { return base_time_ + interval(tick_count_); }
@@ -78,7 +77,7 @@
                    &media_log_) {
     // Always start the TickClock at a non-zero value since null values have
     // special connotations.
-    tick_clock_->Advance(base::TimeDelta::FromMicroseconds(10000));
+    tick_clock_->Advance(base::Microseconds(10000));
     time_source_.SetTickClockForTesting(tick_clock_.get());
   }
 
@@ -96,7 +95,7 @@
   }
 
   base::TimeDelta minimum_glitch_time() const {
-    return base::TimeDelta::FromSeconds(
+    return base::Seconds(
         VideoRendererAlgorithm::kMinimumAcceptableTimeBetweenGlitchesSecs);
   }
 
@@ -1009,16 +1008,14 @@
 
   // 49/51 coverage for frame 0 and frame 1 should be within tolerance such that
   // the earlier frame should still be chosen.
-  deadline_min = tg.current() + tg.interval(1) / 2 +
-                 base::TimeDelta::FromMicroseconds(250);
+  deadline_min = tg.current() + tg.interval(1) / 2 + base::Microseconds(250);
   deadline_max = deadline_min + tg.interval(1);
   EXPECT_EQ(0,
             FindBestFrameByCoverage(deadline_min, deadline_max, &second_best));
   EXPECT_EQ(1, second_best);
 
   // 48/52 coverage should result in the second frame being chosen.
-  deadline_min = tg.current() + tg.interval(1) / 2 +
-                 base::TimeDelta::FromMicroseconds(500);
+  deadline_min = tg.current() + tg.interval(1) / 2 + base::Microseconds(500);
   deadline_max = deadline_min + tg.interval(1);
   EXPECT_EQ(1,
             FindBestFrameByCoverage(deadline_min, deadline_max, &second_best));
@@ -1454,7 +1451,7 @@
   for (size_t i = 0; i < base::size(kBadTimestampsMs) * 2; ++i) {
     while (EffectiveFramesQueued() < 3) {
       algorithm_.EnqueueFrame(CreateFrame(timestamp));
-      timestamp += base::TimeDelta::FromMilliseconds(
+      timestamp += base::Milliseconds(
           kBadTimestampsMs[i % base::size(kBadTimestampsMs)]);
     }
 
@@ -1489,7 +1486,7 @@
   for (size_t i = 0; i < base::size(kBadTimestampsMs);) {
     while (EffectiveFramesQueued() < 3) {
       algorithm_.EnqueueFrame(CreateFrame(timestamp));
-      timestamp += base::TimeDelta::FromMilliseconds(
+      timestamp += base::Milliseconds(
           kBadTimestampsMs[i % base::size(kBadTimestampsMs)]);
       ++i;
     }
@@ -1553,7 +1550,7 @@
   EXPECT_EQ(2, GetCurrentFrameDisplayCount());
 
   // Trying to add a frame < 1 ms after the last frame should drop the frame.
-  algorithm_.EnqueueFrame(CreateFrame(base::TimeDelta::FromMicroseconds(999)));
+  algorithm_.EnqueueFrame(CreateFrame(base::Microseconds(999)));
   rendered_frame = RenderAndStep(&tg, &frames_dropped);
   EXPECT_EQ(1u, frames_queued());
   EXPECT_EQ(frame_1, rendered_frame);
@@ -1566,7 +1563,7 @@
 
   // Trying to add a frame < 1 ms before the last frame should drop the frame.
   algorithm_.EnqueueFrame(
-      CreateFrame(tg.interval(1) - base::TimeDelta::FromMicroseconds(999)));
+      CreateFrame(tg.interval(1) - base::Microseconds(999)));
   rendered_frame = RenderAndStep(&tg, &frames_dropped);
   EXPECT_EQ(1u, frames_queued());
   EXPECT_EQ(frame_3, rendered_frame);
@@ -1597,7 +1594,7 @@
 
   // Add some noise to the tick generator so it our first frame
   // doesn't line up evenly on a deadline.
-  tg.Reset(tg.current() + base::TimeDelta::FromMilliseconds(5));
+  tg.Reset(tg.current() + base::Milliseconds(5));
 
   // We're now at the first frame, cadence should be one, so
   // it should only be displayed once.
@@ -1647,7 +1644,7 @@
   EXPECT_EQ(tg.interval(1), algorithm_.average_frame_duration());
 
   // Add a bunch of normal frames and then one with a 3s duration.
-  constexpr base::TimeDelta kLongDuration = base::TimeDelta::FromSeconds(3);
+  constexpr base::TimeDelta kLongDuration = base::Seconds(3);
   for (int i = 1; i < 4; ++i) {
     frame = CreateFrame(tg.interval(i));
     frame->metadata().frame_duration = i == 3 ? kLongDuration : tg.interval(1);
diff --git a/media/formats/mp2t/es_adapter_video.cc b/media/formats/mp2t/es_adapter_video.cc
index 88bdecc6..eb181aa3 100644
--- a/media/formats/mp2t/es_adapter_video.cc
+++ b/media/formats/mp2t/es_adapter_video.cc
@@ -32,8 +32,7 @@
       emit_buffer_cb_(std::move(emit_buffer_cb)),
       has_valid_config_(false),
       has_valid_frame_(false),
-      last_frame_duration_(
-          base::TimeDelta::FromMilliseconds(kDefaultFrameDurationMs)),
+      last_frame_duration_(base::Milliseconds(kDefaultFrameDurationMs)),
       buffer_index_(0),
       has_valid_initial_timestamp_(false),
       discarded_frame_count_(0) {}
@@ -49,8 +48,7 @@
   has_valid_config_ = false;
   has_valid_frame_ = false;
 
-  last_frame_duration_ =
-      base::TimeDelta::FromMilliseconds(kDefaultFrameDurationMs);
+  last_frame_duration_ = base::Milliseconds(kDefaultFrameDurationMs);
 
   config_list_.clear();
   buffer_index_ = 0;
diff --git a/media/formats/mp2t/es_adapter_video_unittest.cc b/media/formats/mp2t/es_adapter_video_unittest.cc
index f5e896b..30fe18c 100644
--- a/media/formats/mp2t/es_adapter_video_unittest.cc
+++ b/media/formats/mp2t/es_adapter_video_unittest.cc
@@ -51,8 +51,7 @@
     if (frame_pts_ms[k] < 0) {
       buffers[k]->set_timestamp(kNoTimestamp);
     } else {
-      buffers[k]->set_timestamp(
-          base::TimeDelta::FromMilliseconds(frame_pts_ms[k]));
+      buffers[k]->set_timestamp(base::Milliseconds(frame_pts_ms[k]));
     }
   }
   return buffers;
diff --git a/media/formats/mp2t/es_parser_adts_unittest.cc b/media/formats/mp2t/es_parser_adts_unittest.cc
index 5dbc2642..b542b25 100644
--- a/media/formats/mp2t/es_parser_adts_unittest.cc
+++ b/media/formats/mp2t/es_parser_adts_unittest.cc
@@ -60,7 +60,7 @@
   LoadStream("bear.adts");
 
   std::vector<Packet> pes_packets = GenerateFixedSizePesPacket(512);
-  pes_packets.front().pts = base::TimeDelta::FromSeconds(10);
+  pes_packets.front().pts = base::Seconds(10);
 
   EXPECT_TRUE(Process(pes_packets, false /* sbr_in_mimetype */));
   EXPECT_EQ(1u, config_count_);
@@ -70,7 +70,7 @@
 TEST_F(EsParserAdtsTest, AacLcAdts) {
   LoadStream("sfx.adts");
   std::vector<Packet> pes_packets = GenerateFixedSizePesPacket(512);
-  pes_packets.front().pts = base::TimeDelta::FromSeconds(1);
+  pes_packets.front().pts = base::Seconds(1);
   EXPECT_TRUE(Process(pes_packets, false /* sbr_in_mimetype */));
   EXPECT_EQ(1u, config_count_);
   EXPECT_EQ(14u, buffer_count_);
@@ -80,7 +80,7 @@
   std::vector<Packet> pes_packets =
       LoadPacketsFromFiles("aac-44100-packet-%d", 4);
 
-  pes_packets.front().pts = base::TimeDelta::FromSeconds(0);
+  pes_packets.front().pts = base::Seconds(0);
   EXPECT_TRUE(Process(pes_packets, true /* sbr_in_mimetype */));
   EXPECT_EQ(4u, buffer_count_);
   EXPECT_EQ(kAac44100PacketTimestamp, buffer_timestamps_);
diff --git a/media/formats/mp2t/es_parser_h264_unittest.cc b/media/formats/mp2t/es_parser_h264_unittest.cc
index 05f5775..b84ac5d4 100644
--- a/media/formats/mp2t/es_parser_h264_unittest.cc
+++ b/media/formats/mp2t/es_parser_h264_unittest.cc
@@ -64,7 +64,7 @@
 
   // Generate some timestamps based on a 25fps stream.
   for (size_t k = 0; k < access_units_.size(); k++)
-    access_units_[k].pts = base::TimeDelta::FromMilliseconds(k * 40u);
+    access_units_[k].pts = base::Milliseconds(k * 40u);
 }
 
 void EsParserH264Test::GetAccessUnits() {
@@ -143,7 +143,7 @@
   // a special meaning in EsParserH264. The negative timestamps should be
   // ultimately discarded by the H264 parser since not relevant.
   for (size_t k = 0; k < pes_packets.size(); k++) {
-    (*pes_packets_ptr)[k].pts = base::TimeDelta::FromMilliseconds(-1);
+    (*pes_packets_ptr)[k].pts = base::Milliseconds(-1);
   }
 
   // Set a valid timestamp for PES packets which include the start
diff --git a/media/formats/mp2t/es_parser_mpeg1audio_unittest.cc b/media/formats/mp2t/es_parser_mpeg1audio_unittest.cc
index 46477bf..9965396 100644
--- a/media/formats/mp2t/es_parser_mpeg1audio_unittest.cc
+++ b/media/formats/mp2t/es_parser_mpeg1audio_unittest.cc
@@ -50,7 +50,7 @@
   LoadStream("sfx.mp3");
 
   std::vector<Packet> pes_packets = GenerateFixedSizePesPacket(512);
-  pes_packets.front().pts = base::TimeDelta::FromSeconds(10);
+  pes_packets.front().pts = base::Seconds(10);
 
   // Note: there is no parsing of metadata as part of Mpeg2 TS,
   // so the tag starting at 0x80d with 0x54 0x41 0x47 (ascii for "TAG")
diff --git a/media/formats/mp2t/mp2t_stream_parser_unittest.cc b/media/formats/mp2t/mp2t_stream_parser_unittest.cc
index 89ae102..368b86e 100644
--- a/media/formats/mp2t/mp2t_stream_parser_unittest.cc
+++ b/media/formats/mp2t/mp2t_stream_parser_unittest.cc
@@ -55,7 +55,7 @@
 }
 
 bool IsAlmostEqual(DecodeTimestamp t0, DecodeTimestamp t1) {
-  base::TimeDelta kMaxDeviation = base::TimeDelta::FromMilliseconds(5);
+  base::TimeDelta kMaxDeviation = base::Milliseconds(5);
   base::TimeDelta diff = t1 - t0;
   return (diff >= -kMaxDeviation && diff <= kMaxDeviation);
 }
diff --git a/media/formats/mp2t/ts_section_pes.cc b/media/formats/mp2t/ts_section_pes.cc
index 9cd704e..e2012da 100644
--- a/media/formats/mp2t/ts_section_pes.cc
+++ b/media/formats/mp2t/ts_section_pes.cc
@@ -227,7 +227,7 @@
   if (is_pts_valid) {
     int64_t pts = timestamp_unroller_->GetUnrolledTimestamp(
         ConvertTimestampSectionToTimestamp(pts_section));
-    media_pts = base::TimeDelta::FromMicroseconds((1000 * pts) / 90);
+    media_pts = base::Microseconds((1000 * pts) / 90);
   }
   if (is_dts_valid) {
     int64_t dts = timestamp_unroller_->GetUnrolledTimestamp(
diff --git a/media/formats/mp4/box_definitions.cc b/media/formats/mp4/box_definitions.cc
index 918a02b..069f22b 100644
--- a/media/formats/mp4/box_definitions.cc
+++ b/media/formats/mp4/box_definitions.cc
@@ -1386,8 +1386,7 @@
 }
 
 OpusSpecificBox::OpusSpecificBox()
-    : seek_preroll(base::TimeDelta::FromMilliseconds(80)),
-      codec_delay_in_frames(0) {}
+    : seek_preroll(base::Milliseconds(80)), codec_delay_in_frames(0) {}
 
 OpusSpecificBox::OpusSpecificBox(const OpusSpecificBox& other) = default;
 
diff --git a/media/formats/mp4/mp4_stream_parser_unittest.cc b/media/formats/mp4/mp4_stream_parser_unittest.cc
index acc67bb..068c2412 100644
--- a/media/formats/mp4/mp4_stream_parser_unittest.cc
+++ b/media/formats/mp4/mp4_stream_parser_unittest.cc
@@ -274,7 +274,7 @@
 TEST_F(MP4StreamParserTest, DidNotUseShakaPackager) {
   // Encrypted files have non-zero duration and are treated as recorded streams.
   auto params = GetDefaultInitParametersExpectations();
-  params.duration = base::TimeDelta::FromMicroseconds(2736066);
+  params.duration = base::Microseconds(2736066);
   params.liveness = DemuxerStream::LIVENESS_RECORDED;
   params.detected_audio_track_count = 0;
   InitializeParserWithInitParametersExpectations(params);
@@ -288,7 +288,7 @@
 
 TEST_F(MP4StreamParserTest, UsedShakaPackager) {
   auto params = GetDefaultInitParametersExpectations();
-  params.duration = base::TimeDelta::FromMicroseconds(2736000);
+  params.duration = base::Microseconds(2736000);
   params.liveness = DemuxerStream::LIVENESS_RECORDED;
   params.detected_audio_track_count = 0;
   InitializeParserWithInitParametersExpectations(params);
@@ -462,7 +462,7 @@
   // Encrypted test mp4 files have non-zero duration and are treated as
   // recorded streams.
   auto params = GetDefaultInitParametersExpectations();
-  params.duration = base::TimeDelta::FromMicroseconds(23219);
+  params.duration = base::Microseconds(23219);
   params.liveness = DemuxerStream::LIVENESS_RECORDED;
   params.detected_video_track_count = 0;
   InitializeParserWithInitParametersExpectations(params);
@@ -490,7 +490,7 @@
   EXPECT_MEDIA_LOG(ErrorLog("Unsupported VisualSampleEntry type hev1"));
 #endif
   auto params = GetDefaultInitParametersExpectations();
-  params.duration = base::TimeDelta::FromMicroseconds(1002000);
+  params.duration = base::Microseconds(1002000);
   params.liveness = DemuxerStream::LIVENESS_RECORDED;
   params.detected_audio_track_count = 0;
   InitializeParserWithInitParametersExpectations(params);
@@ -569,7 +569,7 @@
   // Encrypted test mp4 files have non-zero duration and are treated as
   // recorded streams.
   auto params = GetDefaultInitParametersExpectations();
-  params.duration = base::TimeDelta::FromMicroseconds(2736066);
+  params.duration = base::Microseconds(2736066);
   params.liveness = DemuxerStream::LIVENESS_RECORDED;
   params.detected_audio_track_count = 0;
   InitializeParserWithInitParametersExpectations(params);
@@ -583,7 +583,7 @@
   // Encrypted test mp4 files have non-zero duration and are treated as
   // recorded streams.
   auto params = GetDefaultInitParametersExpectations();
-  params.duration = base::TimeDelta::FromMicroseconds(2736066);
+  params.duration = base::Microseconds(2736066);
   params.liveness = DemuxerStream::LIVENESS_RECORDED;
   params.detected_audio_track_count = 0;
   InitializeParserWithInitParametersExpectations(params);
@@ -595,7 +595,7 @@
 
 TEST_F(MP4StreamParserTest, NaturalSizeWithoutPASP) {
   auto params = GetDefaultInitParametersExpectations();
-  params.duration = base::TimeDelta::FromMicroseconds(1000966);
+  params.duration = base::Microseconds(1000966);
   params.liveness = DemuxerStream::LIVENESS_RECORDED;
   params.detected_audio_track_count = 0;
   InitializeParserWithInitParametersExpectations(params);
@@ -609,7 +609,7 @@
 
 TEST_F(MP4StreamParserTest, NaturalSizeWithPASP) {
   auto params = GetDefaultInitParametersExpectations();
-  params.duration = base::TimeDelta::FromMicroseconds(1000966);
+  params.duration = base::Microseconds(1000966);
   params.liveness = DemuxerStream::LIVENESS_RECORDED;
   params.detected_audio_track_count = 0;
   InitializeParserWithInitParametersExpectations(params);
@@ -634,7 +634,7 @@
 #endif
 
   auto params = GetDefaultInitParametersExpectations();
-  params.duration = base::TimeDelta::FromMicroseconds(1045000);
+  params.duration = base::Microseconds(1045000);
   params.liveness = DemuxerStream::LIVENESS_RECORDED;
   params.detected_video_track_count = 0;
   InitializeParserWithInitParametersExpectations(params);
@@ -658,7 +658,7 @@
 #endif
 
   auto params = GetDefaultInitParametersExpectations();
-  params.duration = base::TimeDelta::FromMicroseconds(1045000);
+  params.duration = base::Microseconds(1045000);
   params.liveness = DemuxerStream::LIVENESS_RECORDED;
   params.detected_video_track_count = 0;
   InitializeParserWithInitParametersExpectations(params);
@@ -787,7 +787,7 @@
 
 TEST_F(MP4StreamParserTest, MultiTrackFile) {
   auto params = GetDefaultInitParametersExpectations();
-  params.duration = base::TimeDelta::FromMilliseconds(4248);
+  params.duration = base::Milliseconds(4248);
   params.liveness = DemuxerStream::LIVENESS_RECORDED;
   params.detected_audio_track_count = 2;
   params.detected_video_track_count = 2;
diff --git a/media/formats/mp4/track_run_iterator.cc b/media/formats/mp4/track_run_iterator.cc
index 2c8cdc1..18ebdae84 100644
--- a/media/formats/mp4/track_run_iterator.cc
+++ b/media/formats/mp4/track_run_iterator.cc
@@ -115,7 +115,7 @@
 
   const int64_t total_microseconds =
       base::Time::kMicrosecondsPerSecond * result_seconds + result_microseconds;
-  return base::TimeDelta::FromMicroseconds(total_microseconds);
+  return base::Microseconds(total_microseconds);
 }
 
 DecodeTimestamp DecodeTimestampFromRational(int64_t numer, int64_t denom) {
diff --git a/media/formats/mp4/track_run_iterator_unittest.cc b/media/formats/mp4/track_run_iterator_unittest.cc
index f22f865..a2e8080 100644
--- a/media/formats/mp4/track_run_iterator_unittest.cc
+++ b/media/formats/mp4/track_run_iterator_unittest.cc
@@ -148,7 +148,7 @@
 
 TEST(TimeDeltaFromRationalTest, RoundsTowardZero) {
   // In each case, 1.5us should round to 1us.
-  base::TimeDelta expected = base::TimeDelta::FromMicroseconds(1);
+  base::TimeDelta expected = base::Microseconds(1);
   EXPECT_EQ(TimeDeltaFromRational(3, 2000000), expected);
   EXPECT_EQ(TimeDeltaFromRational(-3, 2000000), -expected);
 }
@@ -160,7 +160,7 @@
   // Note: kNoTimestamp is printed as "9.22337e+12 s", which is visually
   // indistinguishable from |expected|.
   int64_t seconds = max_seconds - 1;
-  base::TimeDelta expected = base::TimeDelta::FromSeconds(seconds);
+  base::TimeDelta expected = base::Seconds(seconds);
   EXPECT_EQ(TimeDeltaFromRational(seconds, 1), expected);
   EXPECT_EQ(TimeDeltaFromRational(-seconds, 1), -expected);
 }
diff --git a/media/formats/webm/webm_audio_client.cc b/media/formats/webm/webm_audio_client.cc
index b245845c..6c49c6d 100644
--- a/media/formats/webm/webm_audio_client.cc
+++ b/media/formats/webm/webm_audio_client.cc
@@ -77,11 +77,11 @@
                               base::Time::kNanosecondsPerSecond);
   }
 
-  config->Initialize(audio_codec, sample_format, channel_layout,
-                     samples_per_second, codec_private, encryption_scheme,
-                     base::TimeDelta::FromMicroseconds(
-                         (seek_preroll != -1 ? seek_preroll : 0) / 1000),
-                     codec_delay_in_frames);
+  config->Initialize(
+      audio_codec, sample_format, channel_layout, samples_per_second,
+      codec_private, encryption_scheme,
+      base::Microseconds((seek_preroll != -1 ? seek_preroll : 0) / 1000),
+      codec_delay_in_frames);
   config->SetChannelsForDiscrete(channels_);
   return config->IsValidConfig();
 }
diff --git a/media/formats/webm/webm_cluster_parser.cc b/media/formats/webm/webm_cluster_parser.cc
index eb40d29..9327632 100644
--- a/media/formats/webm/webm_cluster_parser.cc
+++ b/media/formats/webm/webm_cluster_parser.cc
@@ -108,8 +108,8 @@
       if (cluster_timecode_ < 0)
         return -1;
 
-      cluster_start_time_ = base::TimeDelta::FromMicroseconds(
-          cluster_timecode_ * timecode_multiplier_);
+      cluster_start_time_ =
+          base::Microseconds(cluster_timecode_ * timecode_multiplier_);
     }
 
     // Reset the parser if we're done parsing so that
@@ -189,8 +189,7 @@
   static const uint8_t kTocConfigMask = 0xf8;
   static const uint8_t kTocFrameCountCodeMask = 0x03;
   static const uint8_t kFrameCountMask = 0x3f;
-  static const base::TimeDelta kPacketDurationMax =
-      base::TimeDelta::FromMilliseconds(120);
+  static const base::TimeDelta kPacketDurationMax = base::Milliseconds(120);
 
   if (size < 1) {
     LIMITED_MEDIA_LOG(DEBUG, media_log_, num_duration_errors_,
@@ -246,8 +245,8 @@
   CHECK_LT(opusConfig, static_cast<int>(base::size(kOpusFrameDurationsMu)));
 
   DCHECK_GT(frame_count, 0);
-  base::TimeDelta duration = base::TimeDelta::FromMicroseconds(
-      kOpusFrameDurationsMu[opusConfig] * frame_count);
+  base::TimeDelta duration =
+      base::Microseconds(kOpusFrameDurationsMu[opusConfig] * frame_count);
 
   if (duration > kPacketDurationMax) {
     // Intentionally allowing packet to pass through for now. Decoder should
@@ -503,7 +502,7 @@
     return false;
   }
 
-  base::TimeDelta timestamp = base::TimeDelta::FromMicroseconds(microseconds);
+  base::TimeDelta timestamp = base::Microseconds(microseconds);
 
   if (timestamp == kNoTimestamp || timestamp == kInfiniteDuration) {
     MEDIA_LOG(ERROR, media_log_) << "Invalid block timestamp.";
@@ -562,8 +561,8 @@
 
   base::TimeDelta block_duration_time_delta = kNoTimestamp;
   if (block_duration >= 0) {
-    block_duration_time_delta = base::TimeDelta::FromMicroseconds(
-        block_duration * timecode_multiplier_);
+    block_duration_time_delta =
+        base::Microseconds(block_duration * timecode_multiplier_);
   }
 
   // Prefer encoded duration over BlockGroup->BlockDuration or
@@ -590,7 +589,7 @@
           block_duration_time_delta - encoded_duration;
 
       const auto kWarnDurationDiff =
-          base::TimeDelta::FromMicroseconds(timecode_multiplier_ * 2);
+          base::Microseconds(timecode_multiplier_ * 2);
       if (duration_difference.magnitude() > kWarnDurationDiff) {
         LIMITED_MEDIA_LOG(DEBUG, media_log_, num_duration_errors_,
                           kMaxDurationErrorLogs)
@@ -610,8 +609,7 @@
   // https://crbug.com/969195.
   if (discard_padding != 0) {
     buffer->set_discard_padding(std::make_pair(
-        base::TimeDelta(),
-        base::TimeDelta::FromMicroseconds(discard_padding / 1000)));
+        base::TimeDelta(), base::Microseconds(discard_padding / 1000)));
   }
 
   return track->AddBuffer(std::move(buffer));
@@ -790,12 +788,10 @@
   if (max_frame_duration_ == kNoTimestamp) {
     DVLOG(3) << __func__ << " : using hardcoded default duration";
     if (track_type_ == TrackType::AUDIO) {
-      duration =
-          base::TimeDelta::FromMilliseconds(kDefaultAudioBufferDurationInMs);
+      duration = base::Milliseconds(kDefaultAudioBufferDurationInMs);
     } else {
       // Text and video tracks can both use the larger video default duration.
-      duration =
-          base::TimeDelta::FromMilliseconds(kDefaultVideoBufferDurationInMs);
+      duration = base::Milliseconds(kDefaultVideoBufferDurationInMs);
     }
   } else {
     // Use max duration to minimize the risk of introducing gaps in the buffered
diff --git a/media/formats/webm/webm_cluster_parser_unittest.cc b/media/formats/webm/webm_cluster_parser_unittest.cc
index 6fa912a..9edb409 100644
--- a/media/formats/webm/webm_cluster_parser_unittest.cc
+++ b/media/formats/webm/webm_cluster_parser_unittest.cc
@@ -293,9 +293,9 @@
  protected:
   void ResetParserToHaveDefaultDurations() {
     base::TimeDelta default_audio_duration =
-        base::TimeDelta::FromMillisecondsD(kTestAudioFrameDefaultDurationInMs);
+        base::Milliseconds(kTestAudioFrameDefaultDurationInMs);
     base::TimeDelta default_video_duration =
-        base::TimeDelta::FromMillisecondsD(kTestVideoFrameDefaultDurationInMs);
+        base::Milliseconds(kTestVideoFrameDefaultDurationInMs);
     ASSERT_GE(default_audio_duration, base::TimeDelta());
     ASSERT_GE(default_video_duration, base::TimeDelta());
     ASSERT_NE(kNoTimestamp, default_audio_duration);
@@ -378,7 +378,7 @@
                                     TextTrackConfig(kTextSubtitles, "", "",
                                                     "")));
   base::TimeDelta default_audio_duration =
-      base::TimeDelta::FromMillisecondsD(kTestAudioFrameDefaultDurationInMs);
+      base::Milliseconds(kTestAudioFrameDefaultDurationInMs);
   ASSERT_GE(default_audio_duration, base::TimeDelta());
   ASSERT_NE(kNoTimestamp, default_audio_duration);
   parser_.reset(CreateParserWithDefaultDurationsAndOptionalTextTracks(
diff --git a/media/formats/webm/webm_info_parser.cc b/media/formats/webm/webm_info_parser.cc
index 3e5eede..831a585 100644
--- a/media/formats/webm/webm_info_parser.cc
+++ b/media/formats/webm/webm_info_parser.cc
@@ -96,8 +96,7 @@
     base::Time out_time;
     if (!base::Time::FromUTCExploded(exploded_epoch, &out_time))
       return false;
-    date_utc_ = out_time +
-                base::TimeDelta::FromMicroseconds(date_in_nanoseconds / 1000);
+    date_utc_ = out_time + base::Microseconds(date_in_nanoseconds / 1000);
   }
   return true;
 }
diff --git a/media/formats/webm/webm_stream_parser.cc b/media/formats/webm/webm_stream_parser.cc
index bc63222..951cba0 100644
--- a/media/formats/webm/webm_stream_parser.cc
+++ b/media/formats/webm/webm_stream_parser.cc
@@ -205,7 +205,7 @@
 
   if (info_parser.duration() > 0) {
     int64_t duration_in_us = info_parser.duration() * timecode_scale_in_us;
-    params.duration = base::TimeDelta::FromMicroseconds(duration_in_us);
+    params.duration = base::Microseconds(duration_in_us);
   }
 
   params.timeline_offset = info_parser.date_utc();
diff --git a/media/formats/webm/webm_tracks_parser.cc b/media/formats/webm/webm_tracks_parser.cc
index 99ee1ac..b8d4480 100644
--- a/media/formats/webm/webm_tracks_parser.cc
+++ b/media/formats/webm/webm_tracks_parser.cc
@@ -57,7 +57,7 @@
   if (result_us == 0)
     return kNoTimestamp;
 
-  return base::TimeDelta::FromMicroseconds(result_us);
+  return base::Microseconds(result_us);
 }
 
 void WebMTracksParser::Reset() {
diff --git a/media/formats/webm/webm_tracks_parser_unittest.cc b/media/formats/webm/webm_tracks_parser_unittest.cc
index 66d2a6a..ed6c2fc 100644
--- a/media/formats/webm/webm_tracks_parser_unittest.cc
+++ b/media/formats/webm/webm_tracks_parser_unittest.cc
@@ -181,14 +181,14 @@
   EXPECT_LE(0, result);
   EXPECT_EQ(static_cast<int>(buf.size()), result);
 
-  EXPECT_EQ(base::TimeDelta::FromMicroseconds(12000),
+  EXPECT_EQ(base::Microseconds(12000),
             parser->GetAudioDefaultDuration(kOneMsInNs));
-  EXPECT_EQ(base::TimeDelta::FromMicroseconds(985000),
+  EXPECT_EQ(base::Microseconds(985000),
             parser->GetVideoDefaultDuration(5000000));  // 5 ms resolution
   EXPECT_EQ(kNoTimestamp, parser->GetAudioDefaultDuration(12346000));
-  EXPECT_EQ(base::TimeDelta::FromMicroseconds(12345),
+  EXPECT_EQ(base::Microseconds(12345),
             parser->GetAudioDefaultDuration(12345000));
-  EXPECT_EQ(base::TimeDelta::FromMicroseconds(12003),
+  EXPECT_EQ(base::Microseconds(12003),
             parser->GetAudioDefaultDuration(1000300));  // 1.0003 ms resolution
 }
 
@@ -262,10 +262,10 @@
       {kOneMsInNs, 0, kNoTimestamp},
       {kOneMsInNs, 1, kNoTimestamp},
       {kOneMsInNs, 999999, kNoTimestamp},
-      {kOneMsInNs, 1000000, base::TimeDelta::FromMilliseconds(1)},
-      {kOneMsInNs, 1000001, base::TimeDelta::FromMilliseconds(1)},
-      {kOneMsInNs, 1999999, base::TimeDelta::FromMilliseconds(1)},
-      {kOneMsInNs, 2000000, base::TimeDelta::FromMilliseconds(2)},
+      {kOneMsInNs, 1000000, base::Milliseconds(1)},
+      {kOneMsInNs, 1000001, base::Milliseconds(1)},
+      {kOneMsInNs, 1999999, base::Milliseconds(1)},
+      {kOneMsInNs, 2000000, base::Milliseconds(2)},
       {1, -1, kNoTimestamp},
       {1, 0, kNoTimestamp},
 
@@ -273,11 +273,11 @@
       {1, 1, kNoTimestamp},
       {1, 999, kNoTimestamp},
 
-      {1, 1000, base::TimeDelta::FromMicroseconds(1)},
-      {1, 1999, base::TimeDelta::FromMicroseconds(1)},
-      {1, 2000, base::TimeDelta::FromMicroseconds(2)},
+      {1, 1000, base::Microseconds(1)},
+      {1, 1999, base::Microseconds(1)},
+      {1, 2000, base::Microseconds(2)},
 
-      {64, 1792, base::TimeDelta::FromMicroseconds(1)},
+      {64, 1792, base::Microseconds(1)},
   };
 
   std::unique_ptr<WebMTracksParser> parser(
diff --git a/media/fuchsia/audio/fake_audio_consumer.cc b/media/fuchsia/audio/fake_audio_consumer.cc
index 3babfc3..c4e59e9 100644
--- a/media/fuchsia/audio/fake_audio_consumer.cc
+++ b/media/fuchsia/audio/fake_audio_consumer.cc
@@ -11,10 +11,8 @@
 
 namespace media {
 
-const base::TimeDelta FakeAudioConsumer::kMinLeadTime =
-    base::TimeDelta::FromMilliseconds(100);
-const base::TimeDelta FakeAudioConsumer::kMaxLeadTime =
-    base::TimeDelta::FromMilliseconds(500);
+const base::TimeDelta FakeAudioConsumer::kMinLeadTime = base::Milliseconds(100);
+const base::TimeDelta FakeAudioConsumer::kMaxLeadTime = base::Milliseconds(500);
 
 FakeAudioConsumer::FakeAudioConsumer(
     uint64_t session_id,
diff --git a/media/fuchsia/audio/fuchsia_audio_capturer_source_test.cc b/media/fuchsia/audio/fuchsia_audio_capturer_source_test.cc
index bd1c4ea..783b070 100644
--- a/media/fuchsia/audio/fuchsia_audio_capturer_source_test.cc
+++ b/media/fuchsia/audio/fuchsia_audio_capturer_source_test.cc
@@ -298,8 +298,7 @@
 
   base::TimeTicks ts = base::TimeTicks::FromZxTime(100);
   test_capturer_->SendData(ts, samples1.data());
-  test_capturer_->SendData(ts + base::TimeDelta::FromMilliseconds(10),
-                           samples2.data());
+  test_capturer_->SendData(ts + base::Milliseconds(10), samples2.data());
   base::RunLoop().RunUntilIdle();
 
   // Verify that both packets were received.
diff --git a/media/fuchsia/audio/fuchsia_audio_output_device.cc b/media/fuchsia/audio/fuchsia_audio_output_device.cc
index 5c2fc9d..d84b381 100644
--- a/media/fuchsia/audio/fuchsia_audio_output_device.cc
+++ b/media/fuchsia/audio/fuchsia_audio_output_device.cc
@@ -30,8 +30,7 @@
 // TODO(crbug.com/1153909): It may be possible to reduce this value to reduce
 // total latency, but that requires that an elevated scheduling profile is
 // applied to this thread.
-constexpr base::TimeDelta kLeadTimeExtra =
-    base::TimeDelta::FromMilliseconds(20);
+constexpr base::TimeDelta kLeadTimeExtra = base::Milliseconds(20);
 
 class DefaultAudioThread {
  public:
@@ -337,13 +336,13 @@
     return;
   }
 
-  min_lead_time_ = base::TimeDelta::FromNanoseconds(status.min_lead_time());
+  min_lead_time_ = base::Nanoseconds(status.min_lead_time());
 
   if (status.has_presentation_timeline()) {
     timeline_reference_time_ = base::TimeTicks::FromZxTime(
         status.presentation_timeline().reference_time);
-    timeline_subject_time_ = base::TimeDelta::FromNanoseconds(
-        status.presentation_timeline().subject_time);
+    timeline_subject_time_ =
+        base::Nanoseconds(status.presentation_timeline().subject_time);
     timeline_reference_delta_ = status.presentation_timeline().reference_delta;
     timeline_subject_delta_ = status.presentation_timeline().subject_delta;
   } else {
diff --git a/media/fuchsia/audio/fuchsia_audio_output_device_test.cc b/media/fuchsia/audio/fuchsia_audio_output_device_test.cc
index 1b8c6eb..727c7133 100644
--- a/media/fuchsia/audio/fuchsia_audio_output_device_test.cc
+++ b/media/fuchsia/audio/fuchsia_audio_output_device_test.cc
@@ -20,7 +20,7 @@
 constexpr ChannelLayout kChannelLayout = CHANNEL_LAYOUT_STEREO;
 constexpr int kNumChannels = 2;
 constexpr uint64_t kTestSessionId = 42;
-constexpr base::TimeDelta kPeriod = base::TimeDelta::FromMilliseconds(10);
+constexpr base::TimeDelta kPeriod = base::Milliseconds(10);
 constexpr int kFramesPerPeriod = 441;
 
 class TestRenderer : public AudioRendererSink::RenderCallback {
@@ -99,7 +99,7 @@
 
   void CallPumpSamples() {
     output_device_->PumpSamples(base::TimeTicks::Now() +
-                                base::TimeDelta::FromMilliseconds(200));
+                                base::Milliseconds(200));
   }
 
   void ValidatePresentationTime() {
@@ -110,8 +110,8 @@
     auto lead_time =
         renderer_.last_presentation_time() - base::TimeTicks::Now();
     EXPECT_GT(lead_time, FakeAudioConsumer::kMinLeadTime);
-    EXPECT_LT(lead_time, FakeAudioConsumer::kMinLeadTime +
-                             base::TimeDelta::FromMilliseconds(30));
+    EXPECT_LT(lead_time,
+              FakeAudioConsumer::kMinLeadTime + base::Milliseconds(30));
   }
 
   base::test::SingleThreadTaskEnvironment task_environment_{
@@ -127,7 +127,7 @@
   Initialize();
 
   // Verify that playback doesn't start before Start().
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_environment_.FastForwardBy(base::Seconds(2));
   EXPECT_EQ(renderer_.frames_rendered(), 0);
 
   // Rendering should start after Start().
@@ -167,7 +167,7 @@
 
   // Render() should not be called while paused.
   output_device_->Pause();
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
   EXPECT_EQ(renderer_.frames_rendered(), 0);
 
   // Unpause the stream and verify that Render() is being called now.
diff --git a/media/fuchsia/audio/fuchsia_audio_renderer.h b/media/fuchsia/audio/fuchsia_audio_renderer.h
index 83c7260..e192eb6 100644
--- a/media/fuchsia/audio/fuchsia_audio_renderer.h
+++ b/media/fuchsia/audio/fuchsia_audio_renderer.h
@@ -201,8 +201,8 @@
 
   // Lead time range requested by the |audio_consumer_|. Initialized to  the
   // [100ms, 500ms] until the initial AudioConsumerStatus is received.
-  base::TimeDelta min_lead_time_ = base::TimeDelta::FromMilliseconds(100);
-  base::TimeDelta max_lead_time_ = base::TimeDelta::FromMilliseconds(500);
+  base::TimeDelta min_lead_time_ = base::Milliseconds(100);
+  base::TimeDelta max_lead_time_ = base::Milliseconds(500);
 
   // Set to true after we've received end-of-stream from the |demuxer_stream_|.
   // The renderer may be restarted after Flush().
diff --git a/media/fuchsia/audio/fuchsia_audio_renderer_test.cc b/media/fuchsia/audio/fuchsia_audio_renderer_test.cc
index b5003fd..6ee12d1 100644
--- a/media/fuchsia/audio/fuchsia_audio_renderer_test.cc
+++ b/media/fuchsia/audio/fuchsia_audio_renderer_test.cc
@@ -28,11 +28,10 @@
 namespace {
 
 constexpr int kDefaultSampleRate = 48000;
-constexpr base::TimeDelta kPacketDuration =
-    base::TimeDelta::FromMilliseconds(20);
-constexpr base::TimeDelta kMinLeadTime = base::TimeDelta::FromMilliseconds(100);
-constexpr base::TimeDelta kMaxLeadTime = base::TimeDelta::FromMilliseconds(500);
-const base::TimeDelta kTimeStep = base::TimeDelta::FromMilliseconds(2);
+constexpr base::TimeDelta kPacketDuration = base::Milliseconds(20);
+constexpr base::TimeDelta kMinLeadTime = base::Milliseconds(100);
+constexpr base::TimeDelta kMaxLeadTime = base::Milliseconds(500);
+const base::TimeDelta kTimeStep = base::Milliseconds(2);
 
 class TestDemuxerStream : public DemuxerStream {
  public:
@@ -660,7 +659,7 @@
                          base::TimeTicks::Now() + kTimeStep, false);
 
   // MediaTime will start moving once AudioConsumer updates timeline.
-  const base::TimeDelta kStartDelay = base::TimeDelta::FromMilliseconds(3);
+  const base::TimeDelta kStartDelay = base::Milliseconds(3);
   base::TimeTicks start_wall_clock = base::TimeTicks::Now() + kStartDelay;
   audio_consumer_->UpdateStatus(start_wall_clock, start_time);
   task_environment_.RunUntilIdle();
@@ -697,7 +696,7 @@
 
   // Extra packets should be sent to AudioConsumer immediately.
   stream_sink_->received_packets()->clear();
-  ProduceDemuxerPacket(base::TimeDelta::FromMilliseconds(10));
+  ProduceDemuxerPacket(base::Milliseconds(10));
   task_environment_.RunUntilIdle();
   EXPECT_EQ(stream_sink_->received_packets()->size(), 1U);
 }
@@ -708,7 +707,7 @@
   // Start playing immediately after initialization. The renderer should wait
   // for buffers to be allocated before it starts reading from the demuxer.
   audio_renderer_->StartPlaying();
-  ProduceDemuxerPacket(base::TimeDelta::FromMilliseconds(10));
+  ProduceDemuxerPacket(base::Milliseconds(10));
   task_environment_.RunUntilIdle();
 
   stream_sink_ = audio_consumer_->WaitStreamSinkConnected();
@@ -719,21 +718,21 @@
 TEST_P(FuchsiaAudioRendererTest, StartTicking) {
   ASSERT_NO_FATAL_FAILURE(CreateAndInitializeRenderer());
   ASSERT_NO_FATAL_FAILURE(StartPlaybackAndVerifyClock(
-      /*start_pos=*/base::TimeDelta::FromMilliseconds(123),
+      /*start_pos=*/base::Milliseconds(123),
       /*playback_rate=*/1.0));
 }
 
 TEST_P(FuchsiaAudioRendererTest, StartTickingRate1_5) {
   ASSERT_NO_FATAL_FAILURE(CreateAndInitializeRenderer());
   ASSERT_NO_FATAL_FAILURE(StartPlaybackAndVerifyClock(
-      /*start_pos=*/base::TimeDelta::FromMilliseconds(123),
+      /*start_pos=*/base::Milliseconds(123),
       /*playback_rate=*/1.5));
 }
 
 TEST_P(FuchsiaAudioRendererTest, StartTickingRate0_5) {
   ASSERT_NO_FATAL_FAILURE(CreateAndInitializeRenderer());
   ASSERT_NO_FATAL_FAILURE(StartPlaybackAndVerifyClock(
-      /*start_pos=*/base::TimeDelta::FromMilliseconds(123),
+      /*start_pos=*/base::Milliseconds(123),
       /*playback_rate=*/0.5));
 }
 
@@ -774,7 +773,7 @@
   run_loop.Run();
 
   // Restart playback from a new position.
-  const base::TimeDelta kSeekPos = base::TimeDelta::FromMilliseconds(123);
+  const base::TimeDelta kSeekPos = base::Milliseconds(123);
   ASSERT_NO_FATAL_FAILURE(StartPlaybackAndVerifyClock(kSeekPos,
                                                       /*playback_rate=*/1.0));
 
@@ -791,7 +790,7 @@
   ASSERT_NO_FATAL_FAILURE(CreateAndInitializeRenderer());
   ASSERT_NO_FATAL_FAILURE(StartPlayback());
 
-  const auto kConfigChangePos = base::TimeDelta::FromSeconds(1);
+  const auto kConfigChangePos = base::Seconds(1);
 
   // Queue packets up to kConfigChangePos.
   FillDemuxerStream(kConfigChangePos);
@@ -838,13 +837,13 @@
   ASSERT_NO_FATAL_FAILURE(CreateAndInitializeRenderer());
   ASSERT_NO_FATAL_FAILURE(StartPlayback());
 
-  FillDemuxerStream(base::TimeDelta::FromSeconds(2));
+  FillDemuxerStream(base::Seconds(2));
 
-  const auto kTimelineChangePos = base::TimeDelta::FromSeconds(1);
+  const auto kTimelineChangePos = base::Seconds(1);
   task_environment_.FastForwardBy(kTimelineChangePos);
 
   // Shift the timeline by 2ms.
-  const auto kMediaDelta = base::TimeDelta::FromMilliseconds(2);
+  const auto kMediaDelta = base::Milliseconds(2);
   audio_consumer_->UpdateStatus(base::TimeTicks::Now(),
                                 kTimelineChangePos + kMediaDelta);
   task_environment_.RunUntilIdle();
@@ -859,8 +858,8 @@
   ASSERT_NO_FATAL_FAILURE(CreateAndInitializeRenderer());
   ASSERT_NO_FATAL_FAILURE(StartPlayback());
 
-  const auto kPauseTimestamp = base::TimeDelta::FromSeconds(1);
-  const auto kStreamLength = base::TimeDelta::FromSeconds(2);
+  const auto kPauseTimestamp = base::Seconds(1);
+  const auto kStreamLength = base::Seconds(2);
 
   FillDemuxerStream(kStreamLength);
 
@@ -882,7 +881,7 @@
 
   // Keep the stream paused for 10 seconds. The Renderer should not be sending
   // new packets
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment_.FastForwardBy(base::Seconds(10));
   EXPECT_EQ(stream_sink_->received_packets()->size(), kExpectedQueuedPackets);
   EXPECT_EQ(time_source_->CurrentMediaTime(), kPauseTimestamp);
 
@@ -909,7 +908,7 @@
   ASSERT_NO_FATAL_FAILURE(CreateAndInitializeRenderer());
   ASSERT_NO_FATAL_FAILURE(StartPlayback());
 
-  const auto kStreamLength = base::TimeDelta::FromSeconds(1);
+  const auto kStreamLength = base::Seconds(1);
   FillDemuxerStream(kStreamLength);
   demuxer_stream_->QueueReadResult(
       TestDemuxerStream::ReadResult(DecoderBuffer::CreateEOSBuffer()));
@@ -993,7 +992,7 @@
 // only after CreateStreamSink(). See crbug.com/1219147 .
 TEST_P(FuchsiaAudioRendererTest, PlaybackBeforeSinkCreation) {
   CreateTestDemuxerStream();
-  const auto kStreamLength = base::TimeDelta::FromMilliseconds(100);
+  const auto kStreamLength = base::Milliseconds(100);
   FillDemuxerStream(kStreamLength);
   demuxer_stream_->QueueReadResult(
       TestDemuxerStream::ReadResult(DecoderBuffer::CreateEOSBuffer()));
diff --git a/media/fuchsia/cdm/service/fuchsia_cdm_manager_unittest.cc b/media/fuchsia/cdm/service/fuchsia_cdm_manager_unittest.cc
index 346b2c3..a47ff82 100644
--- a/media/fuchsia/cdm/service/fuchsia_cdm_manager_unittest.cc
+++ b/media/fuchsia/cdm/service/fuchsia_cdm_manager_unittest.cc
@@ -326,7 +326,7 @@
                           kEmptyKeySystemDirectory, 0);
 
   // Sleep to account for coarse-grained filesystem timestamps.
-  base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(1));
+  base::PlatformThread::Sleep(base::Seconds(1));
 
   // Create the recently-used directories.
   CreateDummyCdmDirectory(temp_path, kOriginDirectory1, kKeySystemDirectory2,
@@ -389,7 +389,7 @@
                           kKeySystemDirectory2, kTestQuotaBytes / 2);
 
   // Sleep to account for coarse-grained filesystem timestamps.
-  base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(1));
+  base::PlatformThread::Sleep(base::Seconds(1));
 
   // Create dummy data for a recently-used, active origin.
   CreateDummyCdmDirectory(temp_path, kActiveOriginDirectory,
diff --git a/media/fuchsia/common/stream_processor_helper.cc b/media/fuchsia/common/stream_processor_helper.cc
index 0ca556a..b4f71511 100644
--- a/media/fuchsia/common/stream_processor_helper.cc
+++ b/media/fuchsia/common/stream_processor_helper.cc
@@ -266,7 +266,7 @@
   auto packet_index = output_packet.header().packet_index();
   base::TimeDelta timestamp =
       output_packet.has_timestamp_ish()
-          ? base::TimeDelta::FromNanoseconds(output_packet.timestamp_ish())
+          ? base::Nanoseconds(output_packet.timestamp_ish())
           : kNoTimestamp;
 
   client_->OnStreamProcessorOutputPacket(IoPacket(
diff --git a/media/gpu/android/android_video_encode_accelerator.cc b/media/gpu/android/android_video_encode_accelerator.cc
index cd6d379..8ed24c3 100644
--- a/media/gpu/android/android_video_encode_accelerator.cc
+++ b/media/gpu/android/android_video_encode_accelerator.cc
@@ -70,11 +70,11 @@
   // pictures have been fed to saturate any internal buffering).  This is
   // speculative and it's unclear that this would be a win (nor that there's a
   // reasonably device-agnostic way to fill in the "believes" above).
-  return base::TimeDelta::FromMilliseconds(10);
+  return base::Milliseconds(10);
 }
 
 static inline const base::TimeDelta NoWaitTimeOut() {
-  return base::TimeDelta::FromMicroseconds(0);
+  return base::Microseconds(0);
 }
 
 static bool GetSupportedColorFormatForMime(const std::string& mime,
@@ -369,7 +369,7 @@
   // mapping to the generated |presentation_timestamp_|, and will read them out
   // after encoding. Then encoder can work happily always and we can preserve
   // the timestamps in captured frames for other purpose.
-  presentation_timestamp_ += base::TimeDelta::FromMicroseconds(
+  presentation_timestamp_ += base::Microseconds(
       base::Time::kMicrosecondsPerSecond / INITIAL_FRAMERATE);
   DCHECK(frame_timestamp_map_.find(presentation_timestamp_) ==
          frame_timestamp_map_.end());
diff --git a/media/gpu/android/android_video_surface_chooser_impl.cc b/media/gpu/android/android_video_surface_chooser_impl.cc
index 4b87ad9..110fad5 100644
--- a/media/gpu/android/android_video_surface_chooser_impl.cc
+++ b/media/gpu/android/android_video_surface_chooser_impl.cc
@@ -12,8 +12,7 @@
 
 // Minimum time that we require after a failed overlay attempt before we'll try
 // again for an overlay.
-constexpr base::TimeDelta MinimumDelayAfterFailedOverlay =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta MinimumDelayAfterFailedOverlay = base::Seconds(5);
 
 AndroidVideoSurfaceChooserImpl::AndroidVideoSurfaceChooserImpl(
     bool allow_dynamic,
diff --git a/media/gpu/android/android_video_surface_chooser_impl_unittest.cc b/media/gpu/android/android_video_surface_chooser_impl_unittest.cc
index 920988c..47d814a3 100644
--- a/media/gpu/android/android_video_surface_chooser_impl_unittest.cc
+++ b/media/gpu/android/android_video_surface_chooser_impl_unittest.cc
@@ -109,7 +109,7 @@
     overlay_ = std::make_unique<MockAndroidOverlay>();
 
     // Advance the clock just so we're not at 0.
-    tick_clock_.Advance(base::TimeDelta::FromSeconds(10));
+    tick_clock_.Advance(base::Seconds(10));
 
     // Don't prevent promotions because of the compositor.
     chooser_state_.is_compositor_promotable = true;
@@ -258,7 +258,7 @@
   testing::Mock::VerifyAndClearExpectations(this);
 
   // Try to get it to choose again, which shouldn't do anything.
-  tick_clock_.Advance(base::TimeDelta::FromSeconds(2));
+  tick_clock_.Advance(base::Seconds(2));
   EXPECT_CALL(*this, MockOnOverlayCreated()).Times(0);
   chooser_->UpdateState(FactoryFor(nullptr), chooser_state_);
   testing::Mock::VerifyAndClearExpectations(&client_);
@@ -266,7 +266,7 @@
 
   // Advance some more and try again.  This time, it should request an overlay
   // from the factory.
-  tick_clock_.Advance(base::TimeDelta::FromSeconds(100));
+  tick_clock_.Advance(base::Seconds(100));
   EXPECT_CALL(*this, MockOnOverlayCreated()).Times(1);
   chooser_->UpdateState(FactoryFor(nullptr), chooser_state_);
   testing::Mock::VerifyAndClearExpectations(&client_);
diff --git a/media/gpu/android/codec_allocator.cc b/media/gpu/android/codec_allocator.cc
index 6e2547d..dc23a57 100644
--- a/media/gpu/android/codec_allocator.cc
+++ b/media/gpu/android/codec_allocator.cc
@@ -193,8 +193,7 @@
   // typically take 100-200ms on a N5, so 800ms is expected to very rarely
   // result in false positives. Also, false positives have low impact because we
   // resume using the thread when the task completes.
-  constexpr base::TimeDelta kHungTaskDetectionTimeout =
-      base::TimeDelta::FromMilliseconds(800);
+  constexpr base::TimeDelta kHungTaskDetectionTimeout = base::Milliseconds(800);
 
   return !pending_operations_.empty() &&
          tick_clock_->NowTicks() - *pending_operations_.begin() >
diff --git a/media/gpu/android/codec_allocator_unittest.cc b/media/gpu/android/codec_allocator_unittest.cc
index ab8e34f..451b4df1 100644
--- a/media/gpu/android/codec_allocator_unittest.cc
+++ b/media/gpu/android/codec_allocator_unittest.cc
@@ -33,7 +33,7 @@
  public:
   CodecAllocatorTest() : allocator_thread_("AllocatorThread") {
     // Don't start the clock at null.
-    tick_clock_.Advance(base::TimeDelta::FromSeconds(1));
+    tick_clock_.Advance(base::Seconds(1));
     allocator_ = new CodecAllocator(
         base::BindRepeating(&MockMediaCodecBridge::CreateVideoDecoder),
         base::SequencedTaskRunnerHandle::Get());
@@ -184,7 +184,7 @@
 
   // Advance some time, but not enough to trigger hang detection.
   ASSERT_FALSE(IsPrimaryTaskRunnerLikelyHung());
-  tick_clock_.Advance(base::TimeDelta::FromMilliseconds(400));
+  tick_clock_.Advance(base::Milliseconds(400));
   ASSERT_FALSE(IsPrimaryTaskRunnerLikelyHung());
 
   auto config_secure = CreateConfig();
@@ -213,7 +213,7 @@
 
   // Advance some time, but not enough to trigger hang detection.
   ASSERT_FALSE(IsPrimaryTaskRunnerLikelyHung());
-  tick_clock_.Advance(base::TimeDelta::FromMilliseconds(400));
+  tick_clock_.Advance(base::Milliseconds(400));
   ASSERT_FALSE(IsPrimaryTaskRunnerLikelyHung());
 
   allocator_->ReleaseMediaCodec(
@@ -233,7 +233,7 @@
   // Release null codec, but don't pump message loop.
   allocator_->ReleaseMediaCodec(std::make_unique<MockMediaCodecBridge>(),
                                 base::DoNothing());
-  tick_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  tick_clock_.Advance(base::Seconds(1));
   ASSERT_TRUE(IsPrimaryTaskRunnerLikelyHung());
 }
 
@@ -244,7 +244,7 @@
   auto config = CreateConfig();
   config->codec_type = CodecType::kSecure;
   allocator_->CreateMediaCodecAsync(base::DoNothing(), std::move(config));
-  tick_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  tick_clock_.Advance(base::Seconds(1));
   ASSERT_TRUE(IsPrimaryTaskRunnerLikelyHung());
 }
 
@@ -254,7 +254,7 @@
   // Release null codec, but don't pump message loop.
   allocator_->ReleaseMediaCodec(std::make_unique<MockMediaCodecBridge>(),
                                 base::DoNothing());
-  tick_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  tick_clock_.Advance(base::Seconds(1));
   ASSERT_TRUE(IsPrimaryTaskRunnerLikelyHung());
 
   // Secure creation should fail since we're now using software codecs.
@@ -286,7 +286,7 @@
   // Release null codec, but don't pump message loop.
   allocator_->ReleaseMediaCodec(std::make_unique<MockMediaCodecBridge>(),
                                 base::DoNothing());
-  tick_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  tick_clock_.Advance(base::Seconds(1));
   ASSERT_TRUE(IsPrimaryTaskRunnerLikelyHung());
 
   // Creation should fall back to software.
@@ -316,7 +316,7 @@
   // Release null codec, but don't pump message loop.
   allocator_->ReleaseMediaCodec(std::make_unique<MockMediaCodecBridge>(),
                                 base::DoNothing());
-  tick_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  tick_clock_.Advance(base::Seconds(1));
   ASSERT_TRUE(IsPrimaryTaskRunnerLikelyHung());
 
   // Release software codec, ensure it runs on secondary task runner.
diff --git a/media/gpu/android/codec_buffer_wait_coordinator.h b/media/gpu/android/codec_buffer_wait_coordinator.h
index 5a4a560..7c3f882 100644
--- a/media/gpu/android/codec_buffer_wait_coordinator.h
+++ b/media/gpu/android/codec_buffer_wait_coordinator.h
@@ -68,10 +68,9 @@
 
   // 5msec covers >99.9% of cases, so just wait for up to that much before
   // giving up. If an error occurs, we might not ever get a notification.
-  Tuneable<base::TimeDelta> max_wait_ = {"MediaCodecOutputBufferMaxWaitTime",
-                                         base::TimeDelta::FromMilliseconds(0),
-                                         base::TimeDelta::FromMilliseconds(5),
-                                         base::TimeDelta::FromMilliseconds(20)};
+  Tuneable<base::TimeDelta> max_wait_ = {
+      "MediaCodecOutputBufferMaxWaitTime", base::Milliseconds(0),
+      base::Milliseconds(5), base::Milliseconds(20)};
 
   DISALLOW_COPY_AND_ASSIGN(CodecBufferWaitCoordinator);
 };
diff --git a/media/gpu/android/media_codec_video_decoder.cc b/media/gpu/android/media_codec_video_decoder.cc
index d7a2223..577bdd3 100644
--- a/media/gpu/android/media_codec_video_decoder.cc
+++ b/media/gpu/android/media_codec_video_decoder.cc
@@ -821,7 +821,7 @@
   // TODO: Experiment with this number to save power. Since we already pump the
   // codec in response to receiving a decode and output buffer release, polling
   // at this frequency is likely overkill in the steady state.
-  const auto kPollingPeriod = base::TimeDelta::FromMilliseconds(10);
+  const auto kPollingPeriod = base::Milliseconds(10);
   if (!pump_codec_timer_.IsRunning()) {
     pump_codec_timer_.Start(
         FROM_HERE, kPollingPeriod,
@@ -835,7 +835,7 @@
   DCHECK(!using_async_api_);
 
   // Stop the timer if we've been idle for one second. Chosen arbitrarily.
-  const auto kTimeout = base::TimeDelta::FromSeconds(1);
+  const auto kTimeout = base::Seconds(1);
   if (idle_timer_.Elapsed() > kTimeout) {
     DVLOG(2) << "Stopping timer; idle timeout hit";
     pump_codec_timer_.Stop();
@@ -1053,8 +1053,8 @@
   // Record how long this frame was pending.
   const base::TimeDelta duration = base::TimeTicks::Now() - started_at;
   UMA_HISTOGRAM_CUSTOM_TIMES("Media.MCVD.ForwardVideoFrameTiming", duration,
-                             base::TimeDelta::FromMilliseconds(1),
-                             base::TimeDelta::FromMilliseconds(100), 25);
+                             base::Milliseconds(1), base::Milliseconds(100),
+                             25);
 
   // No |frame| indicates an error creating it.
   if (!frame) {
diff --git a/media/gpu/android/promotion_hint_aggregator_impl.cc b/media/gpu/android/promotion_hint_aggregator_impl.cc
index cf98994..2e9c0d8 100644
--- a/media/gpu/android/promotion_hint_aggregator_impl.cc
+++ b/media/gpu/android/promotion_hint_aggregator_impl.cc
@@ -15,8 +15,7 @@
 // idea is to prevent promoting on paused / background rendering.  Note that
 // this time is only enforced when transitioning from unpromotable to promotable
 // frames.  We don't unpromote later because of this.
-constexpr base::TimeDelta MaximumInterFrameTime =
-    base::TimeDelta::FromMilliseconds(100);
+constexpr base::TimeDelta MaximumInterFrameTime = base::Milliseconds(100);
 
 // Minimum number of consecutive promotable frames before we actually start
 // promoting frames.
@@ -25,7 +24,7 @@
 // Minimum time since the last unpromotable frame that we require before we will
 // promote new ones.
 constexpr base::TimeDelta MinimumUnpromotableFrameTime =
-    base::TimeDelta::FromMilliseconds(2000);
+    base::Milliseconds(2000);
 
 PromotionHintAggregatorImpl::PromotionHintAggregatorImpl(
     const base::TickClock* tick_clock) {
diff --git a/media/gpu/android/surface_chooser_helper.cc b/media/gpu/android/surface_chooser_helper.cc
index 68dffb7..9aa4c12 100644
--- a/media/gpu/android/surface_chooser_helper.cc
+++ b/media/gpu/android/surface_chooser_helper.cc
@@ -25,7 +25,7 @@
 // there's plenty of state that we don't know about (e.g., power efficiency,
 // memory pressure => cancelling an old overlay, etc.).  We just let the chooser
 // retry every once in a while for those things.
-constexpr base::TimeDelta RetryChooserTimeout = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta RetryChooserTimeout = base::Seconds(5);
 
 }  // namespace
 
diff --git a/media/gpu/android/surface_chooser_helper_unittest.cc b/media/gpu/android/surface_chooser_helper_unittest.cc
index b01f632..12b9926 100644
--- a/media/gpu/android/surface_chooser_helper_unittest.cc
+++ b/media/gpu/android/surface_chooser_helper_unittest.cc
@@ -241,7 +241,7 @@
   helper_->NotifyPromotionHintAndUpdateChooser(hint, false);
 
   // Advancing the time and using an overlay should not send a hint.
-  tick_clock_.Advance(base::TimeDelta::FromSeconds(10));
+  tick_clock_.Advance(base::Seconds(10));
   EXPECT_CALL(*chooser_, MockUpdateState()).Times(0);
   helper_->NotifyPromotionHintAndUpdateChooser(hint, true);
 
diff --git a/media/gpu/chromeos/platform_video_frame_pool_unittest.cc b/media/gpu/chromeos/platform_video_frame_pool_unittest.cc
index 247dd72..e5cf8ef 100644
--- a/media/gpu/chromeos/platform_video_frame_pool_unittest.cc
+++ b/media/gpu/chromeos/platform_video_frame_pool_unittest.cc
@@ -80,7 +80,7 @@
 
   scoped_refptr<VideoFrame> GetFrame(int timestamp_ms) {
     scoped_refptr<VideoFrame> frame = pool_->GetFrame();
-    frame->set_timestamp(base::TimeDelta::FromMilliseconds(timestamp_ms));
+    frame->set_timestamp(base::Milliseconds(timestamp_ms));
 
     EXPECT_EQ(layout_->modifier(), frame->layout().modifier());
     EXPECT_EQ(layout_->fourcc(),
diff --git a/media/gpu/chromeos/platform_video_frame_utils_unittest.cc b/media/gpu/chromeos/platform_video_frame_utils_unittest.cc
index 32aae28..f525ad9 100644
--- a/media/gpu/chromeos/platform_video_frame_utils_unittest.cc
+++ b/media/gpu/chromeos/platform_video_frame_utils_unittest.cc
@@ -164,7 +164,7 @@
   constexpr gfx::Size kCodedSize(320, 240);
   constexpr gfx::Rect kVisibleRect(kCodedSize);
   constexpr gfx::Size kNaturalSize(kCodedSize);
-  constexpr auto kTimeStamp = base::TimeDelta::FromMilliseconds(1234);
+  constexpr auto kTimeStamp = base::Milliseconds(1234);
   constexpr gfx::BufferUsage kBufferUsage =
       gfx::BufferUsage::VEA_READ_CAMERA_AND_CPU_READ_WRITE;
 
diff --git a/media/gpu/chromeos/vd_video_decode_accelerator.cc b/media/gpu/chromeos/vd_video_decode_accelerator.cc
index 3231199..981e011 100644
--- a/media/gpu/chromeos/vd_video_decode_accelerator.cc
+++ b/media/gpu/chromeos/vd_video_decode_accelerator.cc
@@ -31,7 +31,7 @@
 // timestamp field. These two functions are used for converting between
 // bitstream ID and fake timestamp.
 base::TimeDelta BitstreamIdToFakeTimestamp(int32_t bitstream_id) {
-  return base::TimeDelta::FromMilliseconds(bitstream_id);
+  return base::Milliseconds(bitstream_id);
 }
 
 int32_t FakeTimestampToBitstreamId(base::TimeDelta timestamp) {
diff --git a/media/gpu/test/image_processor/image_processor_client.h b/media/gpu/test/image_processor/image_processor_client.h
index d9a277a..b111450 100644
--- a/media/gpu/test/image_processor/image_processor_client.h
+++ b/media/gpu/test/image_processor/image_processor_client.h
@@ -67,9 +67,8 @@
 
   // Wait until |num_processed| frames are processed. Returns false if
   // |max_wait| is exceeded.
-  bool WaitUntilNumImageProcessed(
-      size_t num_processed,
-      base::TimeDelta max_wait = base::TimeDelta::FromSeconds(5));
+  bool WaitUntilNumImageProcessed(size_t num_processed,
+                                  base::TimeDelta max_wait = base::Seconds(5));
 
   // Get the number of processed VideoFrames.
   size_t GetNumOfProcessedImages() const;
diff --git a/media/gpu/test/video.cc b/media/gpu/test/video.cc
index b2763d0..bb9d23a7 100644
--- a/media/gpu/test/video.cc
+++ b/media/gpu/test/video.cc
@@ -326,8 +326,8 @@
 }
 
 base::TimeDelta Video::GetDuration() const {
-  return base::TimeDelta::FromSecondsD(static_cast<double>(num_frames_) /
-                                       static_cast<double>(frame_rate_));
+  return base::Seconds(static_cast<double>(num_frames_) /
+                       static_cast<double>(frame_rate_));
 }
 
 const std::vector<std::string>& Video::FrameChecksums() const {
diff --git a/media/gpu/test/video_encoder/video_encoder.cc b/media/gpu/test/video_encoder/video_encoder.cc
index d4394c8..8f9b00f 100644
--- a/media/gpu/test/video_encoder/video_encoder.cc
+++ b/media/gpu/test/video_encoder/video_encoder.cc
@@ -39,8 +39,7 @@
 }
 
 // Default timeout used when waiting for events.
-constexpr base::TimeDelta kDefaultEventWaitTimeout =
-    base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kDefaultEventWaitTimeout = base::Seconds(30);
 
 // Default initial size used for |video_encoder_events_|.
 constexpr size_t kDefaultEventListSize = 512;
diff --git a/media/gpu/test/video_encoder/video_encoder_client.cc b/media/gpu/test/video_encoder/video_encoder_client.cc
index bbd8a96..1d78f28 100644
--- a/media/gpu/test/video_encoder/video_encoder_client.cc
+++ b/media/gpu/test/video_encoder/video_encoder_client.cc
@@ -352,8 +352,7 @@
       0u /* offset */, metadata.payload_size_bytes);
   if (!decoder_buffer)
     return nullptr;
-  decoder_buffer->set_timestamp(
-      base::TimeDelta::FromMicroseconds(frame_index_));
+  decoder_buffer->set_timestamp(base::Microseconds(frame_index_));
 
   return BitstreamProcessor::BitstreamRef::Create(
       std::move(decoder_buffer), metadata, bitstream_buffer_id,
diff --git a/media/gpu/test/video_player/video_player.h b/media/gpu/test/video_player/video_player.h
index c97070a8..6a343f4 100644
--- a/media/gpu/test/video_player/video_player.h
+++ b/media/gpu/test/video_player/video_player.h
@@ -32,8 +32,7 @@
 struct VideoDecoderClientConfig;
 
 // Default timeout used when waiting for events.
-constexpr base::TimeDelta kDefaultEventWaitTimeout =
-    base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kDefaultEventWaitTimeout = base::Seconds(30);
 
 enum class VideoPlayerState : size_t {
   kUninitialized = 0,
diff --git a/media/gpu/test/video_test_helpers.cc b/media/gpu/test/video_test_helpers.cc
index 2f08936..3c40231 100644
--- a/media/gpu/test/video_test_helpers.cc
+++ b/media/gpu/test/video_test_helpers.cc
@@ -418,8 +418,8 @@
       gpu_memory_buffer_factory_(gpu_memory_buffer_factory),
       visible_rect_(visible_rect),
       natural_size_(natural_size),
-      time_stamp_interval_(base::TimeDelta::FromSeconds(/*secs=*/0u)),
-      elapsed_frame_time_(base::TimeDelta::FromSeconds(/*secs=*/0u)) {
+      time_stamp_interval_(base::Seconds(/*secs=*/0u)),
+      elapsed_frame_time_(base::Seconds(/*secs=*/0u)) {
   // If the frame_rate is passed in, then use that timing information
   // to generate timestamps that increment according the frame_rate.
   // Otherwise timestamps will be generated when GetNextFrame() is called
@@ -454,10 +454,9 @@
 
 void AlignedDataHelper::UpdateFrameRate(uint32_t frame_rate) {
   if (frame_rate == 0) {
-    time_stamp_interval_ = base::TimeDelta::FromSeconds(/*secs=*/0u);
+    time_stamp_interval_ = base::Seconds(/*secs=*/0u);
   } else {
-    time_stamp_interval_ =
-        base::TimeDelta::FromSeconds(/*secs=*/1u) / frame_rate;
+    time_stamp_interval_ = base::Seconds(/*secs=*/1u) / frame_rate;
   }
 }
 
diff --git a/media/gpu/v4l2/v4l2_framerate_control.cc b/media/gpu/v4l2/v4l2_framerate_control.cc
index 28d0bd19..2158c329 100644
--- a/media/gpu/v4l2/v4l2_framerate_control.cc
+++ b/media/gpu/v4l2/v4l2_framerate_control.cc
@@ -64,9 +64,9 @@
 
 static constexpr int kMovingAverageWindowSize = 32;
 static constexpr base::TimeDelta kFrameIntervalFor120fps =
-    base::TimeDelta::FromMilliseconds(8);
+    base::Milliseconds(8);
 static constexpr base::TimeDelta kFrameIntervalFor24fps =
-    base::TimeDelta::FromMilliseconds(41);
+    base::Milliseconds(41);
 
 V4L2FrameRateControl::V4L2FrameRateControl(
     scoped_refptr<V4L2Device> device,
@@ -128,8 +128,7 @@
 
 void V4L2FrameRateControl::RecordFrameDuration() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  constexpr base::TimeDelta kMaxFrameInterval =
-      base::TimeDelta::FromMilliseconds(500);
+  constexpr base::TimeDelta kMaxFrameInterval = base::Milliseconds(500);
   const base::TimeTicks frame_display_time = base::TimeTicks::Now();
   const base::TimeDelta duration =
       frame_display_time - last_frame_display_time_;
diff --git a/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.cc b/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.cc
index 53aa2d6..aa471155 100644
--- a/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.cc
+++ b/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.cc
@@ -2067,7 +2067,7 @@
         FROM_HERE,
         base::BindOnce(&V4L2SliceVideoDecodeAccelerator::DecodeBufferTask,
                        base::Unretained(this)),
-        base::TimeDelta::FromMilliseconds(kRescheduleDelayMs));
+        base::Milliseconds(kRescheduleDelayMs));
   }
 }
 
diff --git a/media/gpu/v4l2/v4l2_video_decode_accelerator.cc b/media/gpu/v4l2/v4l2_video_decode_accelerator.cc
index ccb3054..0fe49ce 100644
--- a/media/gpu/v4l2/v4l2_video_decode_accelerator.cc
+++ b/media/gpu/v4l2/v4l2_video_decode_accelerator.cc
@@ -1287,7 +1287,7 @@
             FROM_HERE,
             base::BindOnce(&V4L2VideoDecodeAccelerator::Enqueue,
                            base::Unretained(this)),
-            base::TimeDelta::FromMilliseconds(resched_delay));
+            base::Milliseconds(resched_delay));
       }
       break;
     }
diff --git a/media/gpu/v4l2/v4l2_video_encode_accelerator.cc b/media/gpu/v4l2/v4l2_video_encode_accelerator.cc
index 0941c88..b238069 100644
--- a/media/gpu/v4l2/v4l2_video_encode_accelerator.cc
+++ b/media/gpu/v4l2/v4l2_video_encode_accelerator.cc
@@ -1191,13 +1191,13 @@
                 << ", key_frame=" << output_buf->IsKeyframe();
       child_task_runner_->PostTask(
           FROM_HERE,
-          base::BindOnce(&Client::BitstreamBufferReady, client_, buffer_id,
-                         BitstreamBufferMetadata(
-                             output_data_size, output_buf->IsKeyframe(),
-                             base::TimeDelta::FromMicroseconds(
-                                 output_buf->GetTimeStamp().tv_usec +
-                                 output_buf->GetTimeStamp().tv_sec *
-                                     base::Time::kMicrosecondsPerSecond))));
+          base::BindOnce(
+              &Client::BitstreamBufferReady, client_, buffer_id,
+              BitstreamBufferMetadata(
+                  output_data_size, output_buf->IsKeyframe(),
+                  base::Microseconds(output_buf->GetTimeStamp().tv_usec +
+                                     output_buf->GetTimeStamp().tv_sec *
+                                         base::Time::kMicrosecondsPerSecond))));
     }
 
     if ((encoder_state_ == kFlushing) && output_buf->IsLast()) {
diff --git a/media/gpu/vaapi/vaapi_video_decoder_delegate.cc b/media/gpu/vaapi/vaapi_video_decoder_delegate.cc
index a3d3d237..bc7da98f 100644
--- a/media/gpu/vaapi/vaapi_video_decoder_delegate.cc
+++ b/media/gpu/vaapi/vaapi_video_decoder_delegate.cc
@@ -22,8 +22,7 @@
 namespace {
 // During playback of protected content, we need to request the keys at an
 // interval no greater than this. This allows updating of key usage data.
-constexpr base::TimeDelta kKeyRetrievalMaxPeriod =
-    base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kKeyRetrievalMaxPeriod = base::Minutes(1);
 // This increments the lower 64 bit counter of an 128 bit IV.
 void ctr128_inc64(uint8_t* counter) {
   uint32_t n = 16;
diff --git a/media/gpu/video_decode_accelerator_perf_tests.cc b/media/gpu/video_decode_accelerator_perf_tests.cc
index 3c4d08b..c7b14ab3 100644
--- a/media/gpu/video_decode_accelerator_perf_tests.cc
+++ b/media/gpu/video_decode_accelerator_perf_tests.cc
@@ -308,8 +308,8 @@
     base::TimeDelta frame_duration;
     base::TimeDelta vsync_interval_duration;
     if (render_frame_rate > 0) {
-      frame_duration = base::TimeDelta::FromSeconds(1) / render_frame_rate;
-      vsync_interval_duration = base::TimeDelta::FromSeconds(1) / vsync_rate;
+      frame_duration = base::Seconds(1) / render_frame_rate;
+      vsync_interval_duration = base::Seconds(1) / vsync_rate;
     }
     auto frame_renderer =
         FrameRendererDummy::Create(frame_duration, vsync_interval_duration);
diff --git a/media/gpu/video_encode_accelerator_perf_tests.cc b/media/gpu/video_encode_accelerator_perf_tests.cc
index 2f4b198..38d3d30a 100644
--- a/media/gpu/video_encode_accelerator_perf_tests.cc
+++ b/media/gpu/video_encode_accelerator_perf_tests.cc
@@ -87,7 +87,7 @@
 
 // The event timeout used in perf tests because encoding 2160p
 // |kNumFramesToEncodeForPerformance| frames take much time.
-constexpr base::TimeDelta kPerfEventTimeout = base::TimeDelta::FromSeconds(180);
+constexpr base::TimeDelta kPerfEventTimeout = base::Seconds(180);
 
 // Default output folder used to store performance metrics.
 constexpr const base::FilePath::CharType* kDefaultOutputFolder =
@@ -479,8 +479,7 @@
         VideoEncodeAccelerator::Config::StorageType::kGpuMemoryBuffer;
     config.num_frames_to_encode = kNumFramesToEncodeForPerformance;
     if (encode_rate) {
-      config.encode_interval =
-          base::TimeDelta::FromSeconds(1u) / encode_rate.value();
+      config.encode_interval = base::Seconds(1u) / encode_rate.value();
     }
 
     auto video_encoder =
diff --git a/media/gpu/video_encode_accelerator_tests.cc b/media/gpu/video_encode_accelerator_tests.cc
index 93899d89..f71209d 100644
--- a/media/gpu/video_encode_accelerator_tests.cc
+++ b/media/gpu/video_encode_accelerator_tests.cc
@@ -101,8 +101,7 @@
 constexpr double kBitrateTolerance = 0.1;
 // The event timeout used in bitrate check tests because encoding 2160p and
 // validating |kNumFramesToEncodeBitrateCheck| frames take much time.
-constexpr base::TimeDelta kBitrateCheckEventTimeout =
-    base::TimeDelta::FromSeconds(180);
+constexpr base::TimeDelta kBitrateCheckEventTimeout = base::Seconds(180);
 
 media::test::VideoEncoderTestEnvironment* g_env;
 
diff --git a/media/gpu/windows/dxva_video_decode_accelerator_win.cc b/media/gpu/windows/dxva_video_decode_accelerator_win.cc
index 09780496..3ba3af3 100644
--- a/media/gpu/windows/dxva_video_decode_accelerator_win.cc
+++ b/media/gpu/windows/dxva_video_decode_accelerator_win.cc
@@ -1283,7 +1283,7 @@
         FROM_HERE,
         base::BindOnce(&DXVAVideoDecodeAccelerator::WaitForOutputBuffer,
                        weak_ptr_, picture_buffer_id, count + 1),
-        base::TimeDelta::FromMilliseconds(kFlushDecoderSurfaceTimeoutMs));
+        base::Milliseconds(kFlushDecoderSurfaceTimeoutMs));
     return;
   }
   RETURN_AND_NOTIFY_ON_FAILURE(picture_buffer->ReusePictureBuffer(),
@@ -2641,7 +2641,7 @@
                      base::Unretained(this), 0, base::Unretained(src_surface),
                      base::Unretained(dest_surface), picture_buffer_id,
                      input_buffer_id),
-      base::TimeDelta::FromMilliseconds(kFlushDecoderSurfaceTimeoutMs));
+      base::Milliseconds(kFlushDecoderSurfaceTimeoutMs));
 }
 
 void DXVAVideoDecodeAccelerator::CopySurfaceComplete(
@@ -2977,7 +2977,7 @@
         base::BindOnce(&DXVAVideoDecodeAccelerator::FlushDecoder,
                        base::Unretained(this), 0, nullptr, nullptr,
                        picture_buffer_id, input_buffer_id),
-        base::TimeDelta::FromMilliseconds(kFlushDecoderSurfaceTimeoutMs));
+        base::Milliseconds(kFlushDecoderSurfaceTimeoutMs));
   }
 }
 
@@ -3021,7 +3021,7 @@
             &DXVAVideoDecodeAccelerator::FlushDecoder, base::Unretained(this),
             iterations, base::Unretained(src_surface),
             base::Unretained(dest_surface), picture_buffer_id, input_buffer_id),
-        base::TimeDelta::FromMilliseconds(kFlushDecoderSurfaceTimeoutMs));
+        base::Milliseconds(kFlushDecoderSurfaceTimeoutMs));
     return;
   }
 
diff --git a/media/gpu/windows/media_foundation_video_encode_accelerator_win.cc b/media/gpu/windows/media_foundation_video_encode_accelerator_win.cc
index 8ce0965..be5aed0 100644
--- a/media/gpu/windows/media_foundation_video_encode_accelerator_win.cc
+++ b/media/gpu/windows/media_foundation_video_encode_accelerator_win.cc
@@ -1100,8 +1100,8 @@
   LONGLONG sample_time;
   hr = output_data_buffer.pSample->GetSampleTime(&sample_time);
   if (SUCCEEDED(hr)) {
-    timestamp = base::TimeDelta::FromMicroseconds(
-        sample_time / kOneMicrosecondInMFSampleTimeUnits);
+    timestamp =
+        base::Microseconds(sample_time / kOneMicrosecondInMFSampleTimeUnits);
   }
 
   const bool keyframe = MFGetAttributeUINT32(
@@ -1186,8 +1186,8 @@
   LONGLONG sample_time;
   hr = output_sample_->GetSampleTime(&sample_time);
   if (SUCCEEDED(hr)) {
-    timestamp = base::TimeDelta::FromMicroseconds(
-        sample_time / kOneMicrosecondInMFSampleTimeUnits);
+    timestamp =
+        base::Microseconds(sample_time / kOneMicrosecondInMFSampleTimeUnits);
   }
 
   const bool keyframe = MFGetAttributeUINT32(
diff --git a/media/midi/midi_manager_mac.cc b/media/midi/midi_manager_mac.cc
index 6041adc..525d53a 100644
--- a/media/midi/midi_manager_mac.cc
+++ b/media/midi/midi_manager_mac.cc
@@ -102,7 +102,7 @@
 
 base::TimeTicks MIDITimeStampToTimeTicks(MIDITimeStamp timestamp) {
   UInt64 nanoseconds = AudioConvertHostTimeToNanos(timestamp);
-  return base::TimeTicks() + base::TimeDelta::FromNanoseconds(nanoseconds);
+  return base::TimeTicks() + base::Nanoseconds(nanoseconds);
 }
 
 MIDITimeStamp TimeTicksToMIDITimeStamp(base::TimeTicks ticks) {
diff --git a/media/midi/midi_manager_win.cc b/media/midi/midi_manager_win.cc
index 4fd33120..ae9ac0c 100644
--- a/media/midi/midi_manager_win.cc
+++ b/media/midi/midi_manager_win.cc
@@ -392,7 +392,7 @@
   }
 
   base::TimeTicks CalculateInEventTime(uint32_t elapsed_ms) const {
-    return start_time_ + base::TimeDelta::FromMilliseconds(elapsed_ms);
+    return start_time_ + base::Milliseconds(elapsed_ms);
   }
 
   void RestoreBuffer() {
diff --git a/media/midi/task_service_unittest.cc b/media/midi/task_service_unittest.cc
index f2bc8fb3..e76eeba4 100644
--- a/media/midi/task_service_unittest.cc
+++ b/media/midi/task_service_unittest.cc
@@ -84,7 +84,7 @@
     task_service()->PostBoundDelayedTask(
         runner_id,
         base::BindOnce(&TaskServiceClient::SignalEvent, base::Unretained(this)),
-        base::TimeDelta::FromMilliseconds(100));
+        base::Milliseconds(100));
   }
 
   void WaitTask() { wait_task_event_->Wait(); }
diff --git a/media/mojo/clients/mojo_decryptor_unittest.cc b/media/mojo/clients/mojo_decryptor_unittest.cc
index cee23a18..32b4a15 100644
--- a/media/mojo/clients/mojo_decryptor_unittest.cc
+++ b/media/mojo/clients/mojo_decryptor_unittest.cc
@@ -76,8 +76,7 @@
     // We don't care about the encrypted data, just create a simple VideoFrame.
     scoped_refptr<VideoFrame> frame(
         MojoSharedBufferVideoFrame::CreateDefaultForTesting(
-            PIXEL_FORMAT_I420, gfx::Size(100, 100),
-            base::TimeDelta::FromSeconds(100)));
+            PIXEL_FORMAT_I420, gfx::Size(100, 100), base::Seconds(100)));
     frame->AddDestructionObserver(base::BindOnce(
         &MojoDecryptorTest::OnFrameDestroyed, base::Unretained(this)));
 
@@ -91,7 +90,7 @@
                          Decryptor::AudioDecodeCB audio_decode_cb) {
     const ChannelLayout kChannelLayout = CHANNEL_LAYOUT_4_0;
     const int kSampleRate = 48000;
-    const base::TimeDelta start_time = base::TimeDelta::FromSecondsD(1000.0);
+    const base::TimeDelta start_time = base::Seconds(1000.0);
     auto audio_buffer = MakeAudioBuffer<float>(
         kSampleFormatPlanarF32, kChannelLayout,
         ChannelLayoutToChannelCount(kChannelLayout), kSampleRate, 0.0f, 1.0f,
diff --git a/media/mojo/clients/mojo_renderer_unittest.cc b/media/mojo/clients/mojo_renderer_unittest.cc
index 23ec7afd..e80ef31 100644
--- a/media/mojo/clients/mojo_renderer_unittest.cc
+++ b/media/mojo/clients/mojo_renderer_unittest.cc
@@ -195,9 +195,7 @@
     base::RunLoop().RunUntilIdle();
   }
 
-  void Play() {
-    StartPlayingFrom(base::TimeDelta::FromMilliseconds(kStartPlayingTimeInMs));
-  }
+  void Play() { StartPlayingFrom(base::Milliseconds(kStartPlayingTimeInMs)); }
 
   // Fixture members.
   base::TestMessageLoop message_loop_;
@@ -375,9 +373,8 @@
   Initialize();
   EXPECT_EQ(base::TimeDelta(), mojo_renderer_->GetMediaTime());
 
-  const base::TimeDelta kSleepTime = base::TimeDelta::FromMilliseconds(500);
-  const base::TimeDelta kStartTime =
-      base::TimeDelta::FromMilliseconds(kStartPlayingTimeInMs);
+  const base::TimeDelta kSleepTime = base::Milliseconds(500);
+  const base::TimeDelta kStartTime = base::Milliseconds(kStartPlayingTimeInMs);
 
   // Media time should not advance since playback rate is 0.
   EXPECT_CALL(*mock_renderer_, SetPlaybackRate(0));
diff --git a/media/mojo/common/media_type_converters_unittest.cc b/media/mojo/common/media_type_converters_unittest.cc
index 3ef5ba0..bf8c04a 100644
--- a/media/mojo/common/media_type_converters_unittest.cc
+++ b/media/mojo/common/media_type_converters_unittest.cc
@@ -68,11 +68,10 @@
   scoped_refptr<DecoderBuffer> buffer(DecoderBuffer::CopyFrom(
       reinterpret_cast<const uint8_t*>(&kData), kDataSize,
       reinterpret_cast<const uint8_t*>(&kSideData), kSideDataSize));
-  buffer->set_timestamp(base::TimeDelta::FromMilliseconds(123));
-  buffer->set_duration(base::TimeDelta::FromMilliseconds(456));
-  buffer->set_discard_padding(
-      DecoderBuffer::DiscardPadding(base::TimeDelta::FromMilliseconds(5),
-                                    base::TimeDelta::FromMilliseconds(6)));
+  buffer->set_timestamp(base::Milliseconds(123));
+  buffer->set_duration(base::Milliseconds(456));
+  buffer->set_discard_padding(DecoderBuffer::DiscardPadding(
+      base::Milliseconds(5), base::Milliseconds(6)));
 
   // Convert from and back.
   mojom::DecoderBufferPtr ptr(mojom::DecoderBuffer::From(*buffer));
@@ -234,7 +233,7 @@
   // Original.
   const ChannelLayout kChannelLayout = CHANNEL_LAYOUT_4_0;
   const int kSampleRate = 48000;
-  const base::TimeDelta start_time = base::TimeDelta::FromSecondsD(1000.0);
+  const base::TimeDelta start_time = base::Seconds(1000.0);
   scoped_refptr<AudioBuffer> buffer = MakeAudioBuffer<float>(
       kSampleFormatPlanarF32, kChannelLayout,
       ChannelLayoutToChannelCount(kChannelLayout), kSampleRate, 0.0f, 1.0f,
diff --git a/media/mojo/common/mojo_decoder_buffer_converter_unittest.cc b/media/mojo/common/mojo_decoder_buffer_converter_unittest.cc
index 5b70eb2..f454665 100644
--- a/media/mojo/common/mojo_decoder_buffer_converter_unittest.cc
+++ b/media/mojo/common/mojo_decoder_buffer_converter_unittest.cc
@@ -70,11 +70,10 @@
   scoped_refptr<DecoderBuffer> buffer(DecoderBuffer::CopyFrom(
       reinterpret_cast<const uint8_t*>(&kData), kDataSize,
       reinterpret_cast<const uint8_t*>(&kSideData), kSideDataSize));
-  buffer->set_timestamp(base::TimeDelta::FromMilliseconds(123));
-  buffer->set_duration(base::TimeDelta::FromMilliseconds(456));
-  buffer->set_discard_padding(
-      DecoderBuffer::DiscardPadding(base::TimeDelta::FromMilliseconds(5),
-                                    base::TimeDelta::FromMilliseconds(6)));
+  buffer->set_timestamp(base::Milliseconds(123));
+  buffer->set_duration(base::Milliseconds(456));
+  buffer->set_discard_padding(DecoderBuffer::DiscardPadding(
+      base::Milliseconds(5), base::Milliseconds(6)));
 
   MojoDecoderBufferConverter converter;
   converter.ConvertAndVerify(buffer);
diff --git a/media/mojo/common/mojo_shared_buffer_video_frame_unittest.cc b/media/mojo/common/mojo_shared_buffer_video_frame_unittest.cc
index 3c10e4f..7b24ef7 100644
--- a/media/mojo/common/mojo_shared_buffer_video_frame_unittest.cc
+++ b/media/mojo/common/mojo_shared_buffer_video_frame_unittest.cc
@@ -39,7 +39,7 @@
 TEST(MojoSharedBufferVideoFrameTest, CreateFrameWithSharedMemoryI420) {
   const int kWidth = 16;
   const int kHeight = 9;
-  const base::TimeDelta kTimestamp = base::TimeDelta::FromMicroseconds(1337);
+  const base::TimeDelta kTimestamp = base::Microseconds(1337);
 
   // Create a MojoSharedBufferVideoFrame which will allocate enough space
   // to hold a 16x9 video frame.
@@ -71,7 +71,7 @@
 TEST(MojoSharedBufferVideoFrameTest, CreateFrameWithSharedMemoryNV12) {
   const int kWidth = 16;
   const int kHeight = 9;
-  const base::TimeDelta kTimestamp = base::TimeDelta::FromMicroseconds(1337);
+  const base::TimeDelta kTimestamp = base::Microseconds(1337);
 
   // Create a MojoSharedBufferVideoFrame which will allocate enough space
   // to hold a 16x9 video frame.
@@ -100,7 +100,7 @@
 TEST(MojoSharedBufferVideoFrameTest, CreateFrameAndPassSharedMemoryI420) {
   const int kWidth = 32;
   const int kHeight = 18;
-  const base::TimeDelta kTimestamp = base::TimeDelta::FromMicroseconds(1338);
+  const base::TimeDelta kTimestamp = base::Microseconds(1338);
 
   // Some random values to use. Since we actually don't use the data inside the
   // frame, random values are fine (as long as the offsets are within the
@@ -150,7 +150,7 @@
 TEST(MojoSharedBufferVideoFrameTest, CreateFrameAndPassSharedMemoryNV12) {
   const int kWidth = 32;
   const int kHeight = 18;
-  const base::TimeDelta kTimestamp = base::TimeDelta::FromMicroseconds(1338);
+  const base::TimeDelta kTimestamp = base::Microseconds(1338);
 
   // Some random values to use. Since we actually don't use the data inside the
   // frame, random values are fine (as long as the offsets are within the
@@ -194,7 +194,7 @@
 TEST(MojoSharedBufferVideoFrameTest, CreateFrameOddWidth) {
   const int kWidth = 15;
   const int kHeight = 9;
-  const base::TimeDelta kTimestamp = base::TimeDelta::FromMicroseconds(1337);
+  const base::TimeDelta kTimestamp = base::Microseconds(1337);
 
   VideoPixelFormat formats[] = {PIXEL_FORMAT_I420, PIXEL_FORMAT_NV12};
   for (auto format : formats) {
@@ -219,7 +219,7 @@
   const VideoPixelFormat format = PIXEL_FORMAT_I420;
   const int kWidth = 32;
   const int kHeight = 18;
-  const base::TimeDelta kTimestamp = base::TimeDelta::FromMicroseconds(1338);
+  const base::TimeDelta kTimestamp = base::Microseconds(1338);
 
   // Allocate some shared memory.
   gfx::Size size(kWidth, kHeight);
@@ -257,7 +257,7 @@
   const VideoPixelFormat format = PIXEL_FORMAT_I420;
   const int kWidth = 32;
   const int kHeight = 18;
-  const base::TimeDelta kTimestamp = base::TimeDelta::FromMicroseconds(1338);
+  const base::TimeDelta kTimestamp = base::Microseconds(1338);
   gfx::Size size(kWidth, kHeight);
   gfx::Rect visible_rect(size);
 
diff --git a/media/mojo/mojom/speech_recognition_result_mojom_traits.cc b/media/mojo/mojom/speech_recognition_result_mojom_traits.cc
index e5205a39..62308339 100644
--- a/media/mojo/mojom/speech_recognition_result_mojom_traits.cc
+++ b/media/mojo/mojom/speech_recognition_result_mojom_traits.cc
@@ -8,7 +8,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kZeroTime = base::TimeDelta::FromSeconds(0);
+constexpr base::TimeDelta kZeroTime = base::Seconds(0);
 
 }  // namespace
 
diff --git a/media/mojo/mojom/speech_recognition_result_mojom_traits_unittest.cc b/media/mojo/mojom/speech_recognition_result_mojom_traits_unittest.cc
index 42a83fb..cf52fb7 100644
--- a/media/mojo/mojom/speech_recognition_result_mojom_traits_unittest.cc
+++ b/media/mojo/mojom/speech_recognition_result_mojom_traits_unittest.cc
@@ -14,8 +14,7 @@
 
 namespace {
 
-base::TimeDelta kZeroTime = base::TimeDelta::FromSeconds(0);
-
+base::TimeDelta kZeroTime = base::Seconds(0);
 }
 
 TEST(SpeechRecognitionResultStructTraitsTest, NoTimingInformation) {
@@ -32,8 +31,7 @@
   media::SpeechRecognitionResult invalid_result("hello world", true);
   invalid_result.timing_information = media::TimingInformation();
   invalid_result.timing_information->audio_start_time = kZeroTime;
-  invalid_result.timing_information->audio_end_time =
-      base::TimeDelta::FromSeconds(-1);
+  invalid_result.timing_information->audio_end_time = base::Seconds(-1);
   std::vector<uint8_t> data =
       media::mojom::SpeechRecognitionResult::Serialize(&invalid_result);
   media::SpeechRecognitionResult output;
@@ -43,8 +41,7 @@
   media::SpeechRecognitionResult valid_result("hello world", true);
   valid_result.timing_information = media::TimingInformation();
   valid_result.timing_information->audio_start_time = kZeroTime;
-  valid_result.timing_information->audio_end_time =
-      base::TimeDelta::FromSeconds(1);
+  valid_result.timing_information->audio_end_time = base::Seconds(1);
   std::vector<uint8_t> valid_data =
       media::mojom::SpeechRecognitionResult::Serialize(&valid_result);
   media::SpeechRecognitionResult valid_output;
@@ -58,8 +55,7 @@
   media::SpeechRecognitionResult invalid_result("hello world", false);
   invalid_result.timing_information = media::TimingInformation();
   invalid_result.timing_information->audio_start_time = kZeroTime;
-  invalid_result.timing_information->audio_end_time =
-      base::TimeDelta::FromSeconds(1);
+  invalid_result.timing_information->audio_end_time = base::Seconds(1);
   std::vector<uint8_t> invalid_data =
       media::mojom::SpeechRecognitionResult::Serialize(&invalid_result);
   media::SpeechRecognitionResult invalid_output;
@@ -73,16 +69,15 @@
   media::SpeechRecognitionResult invalid_result("hello world", true);
   invalid_result.timing_information = media::TimingInformation();
   invalid_result.timing_information->audio_start_time = kZeroTime;
-  invalid_result.timing_information->audio_end_time =
-      base::TimeDelta::FromSeconds(1);
+  invalid_result.timing_information->audio_end_time = base::Seconds(1);
   invalid_result.timing_information->hypothesis_parts =
       std::vector<media::HypothesisParts>();
   auto& hypothesis_parts =
       invalid_result.timing_information->hypothesis_parts.value();
   hypothesis_parts.emplace_back(std::vector<std::string>({"hello"}),
-                                base::TimeDelta::FromSeconds(-1));
+                                base::Seconds(-1));
   hypothesis_parts.emplace_back(std::vector<std::string>({"world"}),
-                                base::TimeDelta::FromSeconds(1));
+                                base::Seconds(1));
   std::vector<uint8_t> data =
       media::mojom::SpeechRecognitionResult::Serialize(&invalid_result);
   media::SpeechRecognitionResult output;
@@ -94,16 +89,15 @@
   media::SpeechRecognitionResult valid_result("hello world", true);
   valid_result.timing_information = media::TimingInformation();
   valid_result.timing_information->audio_start_time = kZeroTime;
-  valid_result.timing_information->audio_end_time =
-      base::TimeDelta::FromSeconds(2);
+  valid_result.timing_information->audio_end_time = base::Seconds(2);
   valid_result.timing_information->hypothesis_parts =
       std::vector<media::HypothesisParts>();
   auto& hypothesis_parts =
       valid_result.timing_information->hypothesis_parts.value();
   hypothesis_parts.emplace_back(std::vector<std::string>({"hello"}),
-                                base::TimeDelta::FromSeconds(0));
+                                base::Seconds(0));
   hypothesis_parts.emplace_back(std::vector<std::string>({"world"}),
-                                base::TimeDelta::FromSeconds(1));
+                                base::Seconds(1));
   std::vector<uint8_t> data =
       media::mojom::SpeechRecognitionResult::Serialize(&valid_result);
   media::SpeechRecognitionResult output;
diff --git a/media/mojo/mojom/video_encode_accelerator_mojom_traits_unittest.cc b/media/mojo/mojom/video_encode_accelerator_mojom_traits_unittest.cc
index de2ebd3..efa11e9 100644
--- a/media/mojo/mojom/video_encode_accelerator_mojom_traits_unittest.cc
+++ b/media/mojo/mojom/video_encode_accelerator_mojom_traits_unittest.cc
@@ -120,7 +120,7 @@
   ::media::BitstreamBufferMetadata input_metadata;
   input_metadata.payload_size_bytes = 1234;
   input_metadata.key_frame = true;
-  input_metadata.timestamp = base::TimeDelta::FromMilliseconds(123456);
+  input_metadata.timestamp = base::Milliseconds(123456);
   ::media::BitstreamBufferMetadata output_metadata;
   ASSERT_TRUE(
       mojo::test::SerializeAndDeserialize<mojom::BitstreamBufferMetadata>(
diff --git a/media/mojo/mojom/video_frame_metadata_mojom_traits_unittest.cc b/media/mojo/mojom/video_frame_metadata_mojom_traits_unittest.cc
index f84a39b..cbd4659a 100644
--- a/media/mojo/mojom/video_frame_metadata_mojom_traits_unittest.cc
+++ b/media/mojo/mojom/video_frame_metadata_mojom_traits_unittest.cc
@@ -136,17 +136,17 @@
 
   // base::TimeTicks
   base::TimeTicks now = base::TimeTicks::Now();
-  metadata_in.receive_time = now + base::TimeDelta::FromMilliseconds(10);
-  metadata_in.capture_begin_time = now + base::TimeDelta::FromMilliseconds(20);
-  metadata_in.capture_end_time = now + base::TimeDelta::FromMilliseconds(30);
-  metadata_in.decode_begin_time = now + base::TimeDelta::FromMilliseconds(40);
-  metadata_in.decode_end_time = now + base::TimeDelta::FromMilliseconds(50);
-  metadata_in.reference_time = now + base::TimeDelta::FromMilliseconds(60);
+  metadata_in.receive_time = now + base::Milliseconds(10);
+  metadata_in.capture_begin_time = now + base::Milliseconds(20);
+  metadata_in.capture_end_time = now + base::Milliseconds(30);
+  metadata_in.decode_begin_time = now + base::Milliseconds(40);
+  metadata_in.decode_end_time = now + base::Milliseconds(50);
+  metadata_in.reference_time = now + base::Milliseconds(60);
 
   // base::TimeDeltas
-  metadata_in.processing_time = base::TimeDelta::FromMilliseconds(500);
-  metadata_in.frame_duration = base::TimeDelta::FromMilliseconds(16);
-  metadata_in.wallclock_frame_duration = base::TimeDelta::FromMilliseconds(17);
+  metadata_in.processing_time = base::Milliseconds(500);
+  metadata_in.frame_duration = base::Milliseconds(16);
+  metadata_in.wallclock_frame_duration = base::Milliseconds(17);
 
   VideoFrameMetadata metadata_out;
 
diff --git a/media/mojo/mojom/video_frame_mojom_traits_unittest.cc b/media/mojo/mojom/video_frame_mojom_traits_unittest.cc
index 32197b7..3d2bb8f 100644
--- a/media/mojo/mojom/video_frame_mojom_traits_unittest.cc
+++ b/media/mojo/mojom/video_frame_mojom_traits_unittest.cc
@@ -80,7 +80,7 @@
   for (auto format : formats) {
     scoped_refptr<VideoFrame> frame =
         MojoSharedBufferVideoFrame::CreateDefaultForTesting(
-            format, gfx::Size(100, 100), base::TimeDelta::FromSeconds(100));
+            format, gfx::Size(100, 100), base::Seconds(100));
     frame->metadata().frame_rate = 42.0;
 
     ASSERT_TRUE(RoundTrip(&frame));
@@ -88,7 +88,7 @@
     EXPECT_FALSE(frame->metadata().end_of_stream);
     EXPECT_EQ(*frame->metadata().frame_rate, 42.0);
     EXPECT_EQ(frame->coded_size(), gfx::Size(100, 100));
-    EXPECT_EQ(frame->timestamp(), base::TimeDelta::FromSeconds(100));
+    EXPECT_EQ(frame->timestamp(), base::Seconds(100));
 
     ASSERT_EQ(frame->storage_type(), VideoFrame::STORAGE_MOJO_SHARED_BUFFER);
     MojoSharedBufferVideoFrame* mojo_shared_buffer_frame =
@@ -104,7 +104,7 @@
   scoped_refptr<VideoFrame> frame = VideoFrame::WrapNativeTextures(
       PIXEL_FORMAT_ARGB, mailbox_holder, VideoFrame::ReleaseMailboxCB(),
       gfx::Size(100, 100), gfx::Rect(10, 10, 80, 80), gfx::Size(200, 100),
-      base::TimeDelta::FromSeconds(100));
+      base::Seconds(100));
 
   ASSERT_TRUE(RoundTrip(&frame));
   ASSERT_TRUE(frame);
@@ -113,7 +113,7 @@
   EXPECT_EQ(frame->coded_size(), gfx::Size(100, 100));
   EXPECT_EQ(frame->visible_rect(), gfx::Rect(10, 10, 80, 80));
   EXPECT_EQ(frame->natural_size(), gfx::Size(200, 100));
-  EXPECT_EQ(frame->timestamp(), base::TimeDelta::FromSeconds(100));
+  EXPECT_EQ(frame->timestamp(), base::Seconds(100));
   ASSERT_TRUE(frame->HasTextures());
   ASSERT_EQ(frame->mailbox_holder(0).mailbox, mailbox);
 }
@@ -126,7 +126,7 @@
 TEST_F(VideoFrameStructTraitsTest, GpuMemoryBufferVideoFrame) {
   gfx::Size coded_size = gfx::Size(256, 256);
   gfx::Rect visible_rect(coded_size);
-  auto timestamp = base::TimeDelta::FromMilliseconds(1);
+  auto timestamp = base::Milliseconds(1);
   std::unique_ptr<gfx::GpuMemoryBuffer> gmb =
       std::make_unique<FakeGpuMemoryBuffer>(
           coded_size, gfx::BufferFormat::YUV_420_BIPLANAR);
diff --git a/media/mojo/services/media_metrics_provider_unittest.cc b/media/mojo/services/media_metrics_provider_unittest.cc
index 0e1cfcf..8d390d4a 100644
--- a/media/mojo/services/media_metrics_provider_unittest.cc
+++ b/media/mojo/services/media_metrics_provider_unittest.cc
@@ -120,9 +120,9 @@
   // Now try one with different values and optional parameters set.
   const std::string kTestOrigin2 = "https://test2.google.com/";
   const std::string kClearKeyKeySystem = "org.w3.clearkey";
-  const base::TimeDelta kMetadataTime = base::TimeDelta::FromSeconds(1);
-  const base::TimeDelta kFirstFrameTime = base::TimeDelta::FromSeconds(2);
-  const base::TimeDelta kPlayReadyTime = base::TimeDelta::FromSeconds(3);
+  const base::TimeDelta kMetadataTime = base::Seconds(1);
+  const base::TimeDelta kFirstFrameTime = base::Seconds(2);
+  const base::TimeDelta kPlayReadyTime = base::Seconds(3);
 
   ResetMetricRecorders();
   Initialize(false, false, false, kTestOrigin2, mojom::MediaURLScheme::kHttps);
@@ -184,9 +184,9 @@
 
   // Now try one with different values and optional parameters set.
   const std::string kTestOrigin2 = "https://test2.google.com/";
-  const base::TimeDelta kMetadataTime = base::TimeDelta::FromSeconds(1);
-  const base::TimeDelta kFirstFrameTime = base::TimeDelta::FromSeconds(2);
-  const base::TimeDelta kPlayReadyTime = base::TimeDelta::FromSeconds(3);
+  const base::TimeDelta kMetadataTime = base::Seconds(1);
+  const base::TimeDelta kFirstFrameTime = base::Seconds(2);
+  const base::TimeDelta kPlayReadyTime = base::Seconds(3);
 
   ResetMetricRecorders();
   Initialize(false, false, false, kTestOrigin2, mojom::MediaURLScheme::kMissing,
diff --git a/media/mojo/services/mojo_cdm_allocator.cc b/media/mojo/services/mojo_cdm_allocator.cc
index 3b21eb2..387396f 100644
--- a/media/mojo/services/mojo_cdm_allocator.cc
+++ b/media/mojo/services/mojo_cdm_allocator.cc
@@ -148,7 +148,7 @@
             {static_cast<int32_t>(Stride(cdm::kYPlane)),
              static_cast<int32_t>(Stride(cdm::kUPlane)),
              static_cast<int32_t>(Stride(cdm::kVPlane))},
-            base::TimeDelta::FromMicroseconds(Timestamp()));
+            base::Microseconds(Timestamp()));
 
     // |frame| could fail to be created if the memory can't be mapped into
     // this address space.
diff --git a/media/mojo/services/mojo_renderer_service.cc b/media/mojo/services/mojo_renderer_service.cc
index 3196728..468d2cb 100644
--- a/media/mojo/services/mojo_renderer_service.cc
+++ b/media/mojo/services/mojo_renderer_service.cc
@@ -243,7 +243,7 @@
   base::TimeDelta max_time = media_time;
   // Allow some slop to account for delays in scheduling time update tasks.
   if (time_update_timer_.IsRunning() && (playback_rate_ > 0))
-    max_time += base::TimeDelta::FromMilliseconds(2 * kTimeUpdateIntervalMs);
+    max_time += base::Milliseconds(2 * kTimeUpdateIntervalMs);
 
   client_->OnTimeUpdate(media_time, max_time, base::TimeTicks::Now());
   last_media_time_ = media_time;
@@ -261,7 +261,7 @@
 
   UpdateMediaTime(true);
   time_update_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(kTimeUpdateIntervalMs),
+      FROM_HERE, base::Milliseconds(kTimeUpdateIntervalMs),
       base::BindRepeating(&MojoRendererService::UpdateMediaTime, weak_this_,
                           false));
 }
diff --git a/media/mojo/services/playback_events_recorder.cc b/media/mojo/services/playback_events_recorder.cc
index 6080dca..061a96c 100644
--- a/media/mojo/services/playback_events_recorder.cc
+++ b/media/mojo/services/playback_events_recorder.cc
@@ -26,8 +26,7 @@
   RecordEventWithValueAt(name, value, base::TimeTicks::Now());
 }
 
-constexpr base::TimeDelta kBitrateReportPeriod =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kBitrateReportPeriod = base::Seconds(5);
 
 }  // namespace
 
diff --git a/media/mojo/services/playback_events_recorder_test.cc b/media/mojo/services/playback_events_recorder_test.cc
index 5d41dc2..3325aa8c 100644
--- a/media/mojo/services/playback_events_recorder_test.cc
+++ b/media/mojo/services/playback_events_recorder_test.cc
@@ -11,7 +11,7 @@
 
 namespace media {
 
-constexpr base::TimeDelta kSecond = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kSecond = base::Seconds(1);
 
 class PlaybackEventsRecorderTest : public testing::Test {
  public:
diff --git a/media/mojo/services/test_mojo_media_client.cc b/media/mojo/services/test_mojo_media_client.cc
index 8a9a71f4..b3f71b4 100644
--- a/media/mojo/services/test_mojo_media_client.cc
+++ b/media/mojo/services/test_mojo_media_client.cc
@@ -76,8 +76,7 @@
   // RendererImpls. Thus create one for each Renderer creation.
   auto audio_sink = base::MakeRefCounted<AudioOutputStreamSink>();
   auto video_sink = std::make_unique<NullVideoSink>(
-      false, base::TimeDelta::FromSecondsD(1.0 / 60),
-      NullVideoSink::NewFrameCB(), task_runner);
+      false, base::Seconds(1.0 / 60), NullVideoSink::NewFrameCB(), task_runner);
   auto* video_sink_ptr = video_sink.get();
 
   // Hold created sinks since DefaultRendererFactory only takes raw pointers to
diff --git a/media/mojo/services/watch_time_recorder.cc b/media/mojo/services/watch_time_recorder.cc
index c630537..77a26777 100644
--- a/media/mojo/services/watch_time_recorder.cc
+++ b/media/mojo/services/watch_time_recorder.cc
@@ -24,7 +24,7 @@
 // The minimum amount of media playback which can elapse before we'll report
 // watch time metrics for a playback.
 constexpr base::TimeDelta kMinimumElapsedWatchTime =
-    base::TimeDelta::FromSeconds(limits::kMinimumElapsedWatchTimeSecs);
+    base::Seconds(limits::kMinimumElapsedWatchTimeSecs);
 
 static void RecordWatchTimeInternal(
     base::StringPiece key,
@@ -32,7 +32,7 @@
     base::TimeDelta minimum = kMinimumElapsedWatchTime) {
   DCHECK(!key.empty());
   base::UmaHistogramCustomTimes(std::string(key), value, minimum,
-                                base::TimeDelta::FromHours(10), 50);
+                                base::Hours(10), 50);
 }
 
 static void RecordMeanTimeBetweenRebuffers(base::StringPiece key,
@@ -41,7 +41,7 @@
 
   // There are a maximum of 5 underflow events possible in a given 7s watch time
   // period, so the minimum value is 1.4s.
-  RecordWatchTimeInternal(key, value, base::TimeDelta::FromSecondsD(1.4));
+  RecordWatchTimeInternal(key, value, base::Seconds(1.4));
 }
 
 static void RecordDiscardedWatchTime(base::StringPiece key,
@@ -331,7 +331,7 @@
   absl::optional<uint64_t> clamped_duration_ms;
   if (duration_ != kNoTimestamp && duration_ != kInfiniteDuration) {
     clamped_duration_ms = duration_.InMilliseconds();
-    if (duration_ > base::TimeDelta::FromSeconds(1)) {
+    if (duration_ > base::Seconds(1)) {
       // Turns 54321 => 10000.
       const uint64_t base =
           std::pow(10, static_cast<uint64_t>(std::log10(*clamped_duration_ms)));
diff --git a/media/mojo/services/watch_time_recorder_unittest.cc b/media/mojo/services/watch_time_recorder_unittest.cc
index 807e2aa..3eb2fddb 100644
--- a/media/mojo/services/watch_time_recorder_unittest.cc
+++ b/media/mojo/services/watch_time_recorder_unittest.cc
@@ -215,8 +215,8 @@
 };
 
 TEST_F(WatchTimeRecorderTest, TestBasicReporting) {
-  constexpr base::TimeDelta kWatchTime1 = base::TimeDelta::FromSeconds(25);
-  constexpr base::TimeDelta kWatchTime2 = base::TimeDelta::FromSeconds(50);
+  constexpr base::TimeDelta kWatchTime1 = base::Seconds(25);
+  constexpr base::TimeDelta kWatchTime2 = base::Seconds(50);
 
   for (int i = 0; i <= static_cast<int>(WatchTimeKey::kWatchTimeKeyMax); ++i) {
     const WatchTimeKey key = static_cast<WatchTimeKey>(i);
@@ -366,8 +366,8 @@
 }
 
 TEST_F(WatchTimeRecorderTest, TestBasicReportingMediaStream) {
-  constexpr base::TimeDelta kWatchTime1 = base::TimeDelta::FromSeconds(25);
-  constexpr base::TimeDelta kWatchTime2 = base::TimeDelta::FromSeconds(50);
+  constexpr base::TimeDelta kWatchTime1 = base::Seconds(25);
+  constexpr base::TimeDelta kWatchTime2 = base::Seconds(50);
 
   for (int i = 0; i <= static_cast<int>(WatchTimeKey::kWatchTimeKeyMax); ++i) {
     const WatchTimeKey key = static_cast<WatchTimeKey>(i);
@@ -519,7 +519,7 @@
 TEST_F(WatchTimeRecorderTest, TestRebufferingMetrics) {
   Initialize(true, false, true, true);
 
-  constexpr base::TimeDelta kWatchTime = base::TimeDelta::FromSeconds(50);
+  constexpr base::TimeDelta kWatchTime = base::Seconds(50);
   for (auto key : computation_keys_)
     wtr_->RecordWatchTime(key, kWatchTime);
   wtr_->UpdateUnderflowCount(1);
@@ -545,7 +545,7 @@
   // Now rerun the test with a small amount of watch time and ensure rebuffering
   // isn't recorded because we haven't met the watch time requirements.
   ResetMetricRecorders();
-  constexpr base::TimeDelta kWatchTimeShort = base::TimeDelta::FromSeconds(5);
+  constexpr base::TimeDelta kWatchTimeShort = base::Seconds(5);
   for (auto key : computation_keys_)
     wtr_->RecordWatchTime(key, kWatchTimeShort);
   wtr_->UpdateUnderflowCount(1);
@@ -563,7 +563,7 @@
   Initialize(true, false, true, true,
              mojom::MediaStreamType::kLocalDeviceCapture);
 
-  constexpr base::TimeDelta kWatchTime = base::TimeDelta::FromSeconds(50);
+  constexpr base::TimeDelta kWatchTime = base::Seconds(50);
   for (auto key : computation_keys_)
     wtr_->RecordWatchTime(key, kWatchTime);
   wtr_->UpdateUnderflowCount(1);
@@ -591,7 +591,7 @@
   Initialize(true, false, true, true);
   wtr_->UpdateSecondaryProperties(CreateSecondaryProperties());
 
-  constexpr base::TimeDelta kWatchTime = base::TimeDelta::FromSeconds(5);
+  constexpr base::TimeDelta kWatchTime = base::Seconds(5);
   for (auto key : computation_keys_)
     wtr_->RecordWatchTime(key, kWatchTime);
 
@@ -617,7 +617,7 @@
              mojom::MediaStreamType::kLocalDeviceCapture);
   wtr_->UpdateSecondaryProperties(CreateSecondaryProperties());
 
-  constexpr base::TimeDelta kWatchTime = base::TimeDelta::FromSeconds(5);
+  constexpr base::TimeDelta kWatchTime = base::Seconds(5);
   for (auto key : computation_keys_)
     wtr_->RecordWatchTime(key, kWatchTime);
 
@@ -652,7 +652,7 @@
   wtr_->UpdateSecondaryProperties(secondary_properties.Clone());
 
   // Verify that UKM is reported along with the watch time.
-  constexpr base::TimeDelta kWatchTime = base::TimeDelta::FromSeconds(4);
+  constexpr base::TimeDelta kWatchTime = base::Seconds(4);
   wtr_->RecordWatchTime(WatchTimeKey::kAudioVideoAll, kWatchTime);
 
   // Finalize everything. UKM is only recorded at destruction, so this should do
@@ -822,7 +822,7 @@
   Initialize(properties.Clone());
   wtr_->UpdateSecondaryProperties(secondary_properties.Clone());
 
-  constexpr base::TimeDelta kWatchTime = base::TimeDelta::FromSeconds(4);
+  constexpr base::TimeDelta kWatchTime = base::Seconds(4);
   wtr_->RecordWatchTime(WatchTimeKey::kAudioVideoAll, kWatchTime);
   wtr_.reset();
   base::RunLoop().RunUntilIdle();
@@ -895,7 +895,7 @@
   Initialize(properties.Clone());
   wtr_->UpdateSecondaryProperties(secondary_properties.Clone());
 
-  constexpr base::TimeDelta kWatchTime = base::TimeDelta::FromSeconds(54);
+  constexpr base::TimeDelta kWatchTime = base::Seconds(54);
   const base::TimeDelta kWatchTime2 = kWatchTime * 2;
   const base::TimeDelta kWatchTime3 = kWatchTime / 3;
   wtr_->RecordWatchTime(WatchTimeKey::kAudioVideoAll, kWatchTime2);
@@ -915,8 +915,7 @@
   wtr_->RecordWatchTime(WatchTimeKey::kAudioVideoDisplayPictureInPicture,
                         kWatchTime3);
   wtr_->UpdateUnderflowCount(3);
-  constexpr base::TimeDelta kUnderflowDuration =
-      base::TimeDelta::FromMilliseconds(500);
+  constexpr base::TimeDelta kUnderflowDuration = base::Milliseconds(500);
   wtr_->UpdateUnderflowDuration(2, kUnderflowDuration);
   wtr_->UpdateVideoDecodeStats(10, 2);
   wtr_->OnError(PIPELINE_ERROR_DECODE);
@@ -927,7 +926,7 @@
 
   wtr_->SetAutoplayInitiated(true);
 
-  wtr_->OnDurationChanged(base::TimeDelta::FromSeconds(9500));
+  wtr_->OnDurationChanged(base::Seconds(9500));
 
   wtr_.reset();
   base::RunLoop().RunUntilIdle();
@@ -1006,7 +1005,7 @@
   Initialize(properties.Clone());
   wtr_->UpdateSecondaryProperties(secondary_properties.Clone());
 
-  constexpr base::TimeDelta kWatchTime = base::TimeDelta::FromSeconds(54);
+  constexpr base::TimeDelta kWatchTime = base::Seconds(54);
   wtr_->RecordWatchTime(WatchTimeKey::kAudioVideoBackgroundAll, kWatchTime);
   wtr_.reset();
   base::RunLoop().RunUntilIdle();
@@ -1078,7 +1077,7 @@
   Initialize(properties.Clone());
   wtr_->UpdateSecondaryProperties(secondary_properties.Clone());
 
-  wtr_->OnDurationChanged(base::TimeDelta::FromSeconds(12345));
+  wtr_->OnDurationChanged(base::Seconds(12345));
   wtr_.reset();
   base::RunLoop().RunUntilIdle();
 
@@ -1230,7 +1229,7 @@
     Initialize(properties.Clone());
     wtr_->UpdateSecondaryProperties(CreateSecondaryProperties());
 
-    constexpr base::TimeDelta kWatchTime = base::TimeDelta::FromSeconds(1);
+    constexpr base::TimeDelta kWatchTime = base::Seconds(1);
     wtr_->RecordWatchTime(WatchTimeKey::kAudioVideoAll, kWatchTime);
     wtr_.reset();
     base::RunLoop().RunUntilIdle();
@@ -1255,7 +1254,7 @@
                                      false, mojom::MediaStreamType::kNone);
   Initialize(properties.Clone());
 
-  constexpr base::TimeDelta kWatchTime = base::TimeDelta::FromSeconds(54);
+  constexpr base::TimeDelta kWatchTime = base::Seconds(54);
   wtr_->RecordWatchTime(WatchTimeKey::kAudioVideoAll, kWatchTime);
   wtr_.reset();
   base::RunLoop().RunUntilIdle();
@@ -1277,7 +1276,7 @@
   Initialize(properties.Clone());
   wtr_->UpdateSecondaryProperties(secondary_properties1.Clone());
 
-  constexpr base::TimeDelta kWatchTime = base::TimeDelta::FromSeconds(54);
+  constexpr base::TimeDelta kWatchTime = base::Seconds(54);
   wtr_->RecordWatchTime(WatchTimeKey::kAudioVideoAll, kWatchTime);
 
   mojom::SecondaryPlaybackPropertiesPtr secondary_properties2 =
@@ -1350,9 +1349,8 @@
   Initialize(properties.Clone());
   wtr_->UpdateSecondaryProperties(secondary_properties1.Clone());
 
-  constexpr base::TimeDelta kUnderflowDuration =
-      base::TimeDelta::FromMilliseconds(250);
-  constexpr base::TimeDelta kWatchTime1 = base::TimeDelta::FromSeconds(54);
+  constexpr base::TimeDelta kUnderflowDuration = base::Milliseconds(250);
+  constexpr base::TimeDelta kWatchTime1 = base::Seconds(54);
   const int kUnderflowCount1 = 2;
   wtr_->RecordWatchTime(WatchTimeKey::kAudioVideoAll, kWatchTime1);
   wtr_->UpdateUnderflowCount(kUnderflowCount1);
@@ -1370,7 +1368,7 @@
           EncryptionScheme::kCenc, gfx::Size(800, 600));
   wtr_->UpdateSecondaryProperties(secondary_properties2.Clone());
 
-  constexpr base::TimeDelta kWatchTime2 = base::TimeDelta::FromSeconds(25);
+  constexpr base::TimeDelta kWatchTime2 = base::Seconds(25);
   const int kUnderflowCount2 = 3;
 
   // Watch time and underflow counts continue to accumulate during property
@@ -1379,7 +1377,7 @@
                         kWatchTime1 + kWatchTime2);
   wtr_->UpdateUnderflowCount(kUnderflowCount1 + kUnderflowCount2);
   wtr_->OnError(PIPELINE_ERROR_DECODE);
-  wtr_->OnDurationChanged(base::TimeDelta::FromSeconds(5125));
+  wtr_->OnDurationChanged(base::Seconds(5125));
 
   constexpr int kDecodedFrameCount2 = 20;
   constexpr int kDroppedFrameCount2 = 10;
@@ -1488,9 +1486,8 @@
   Initialize(properties.Clone());
   wtr_->UpdateSecondaryProperties(secondary_properties1.Clone());
 
-  constexpr base::TimeDelta kUnderflowDuration =
-      base::TimeDelta::FromMilliseconds(250);
-  constexpr base::TimeDelta kWatchTime1 = base::TimeDelta::FromSeconds(54);
+  constexpr base::TimeDelta kUnderflowDuration = base::Milliseconds(250);
+  constexpr base::TimeDelta kWatchTime1 = base::Seconds(54);
   const int kUnderflowCount1 = 2;
   wtr_->RecordWatchTime(WatchTimeKey::kAudioVideoAll, kWatchTime1);
   wtr_->UpdateUnderflowCount(kUnderflowCount1);
@@ -1608,9 +1605,8 @@
   Initialize(properties.Clone());
   wtr_->UpdateSecondaryProperties(secondary_properties1.Clone());
 
-  constexpr base::TimeDelta kUnderflowDuration =
-      base::TimeDelta::FromMilliseconds(250);
-  constexpr base::TimeDelta kWatchTime1 = base::TimeDelta::FromSeconds(54);
+  constexpr base::TimeDelta kUnderflowDuration = base::Milliseconds(250);
+  constexpr base::TimeDelta kWatchTime1 = base::Seconds(54);
   const int kUnderflowCount1 = 2;
   wtr_->RecordWatchTime(WatchTimeKey::kAudioVideoAll, kWatchTime1);
   wtr_->UpdateUnderflowCount(kUnderflowCount1);
@@ -1632,7 +1628,7 @@
           EncryptionScheme::kUnencrypted, gfx::Size(800, 600));
   wtr_->UpdateSecondaryProperties(secondary_properties2.Clone());
 
-  constexpr base::TimeDelta kWatchTime2 = base::TimeDelta::FromSeconds(25);
+  constexpr base::TimeDelta kWatchTime2 = base::Seconds(25);
   const int kUnderflowCount2 = 3;
 
   wtr_->RecordWatchTime(WatchTimeKey::kAudioVideoAll, kWatchTime2);
@@ -1740,9 +1736,8 @@
   Initialize(properties.Clone());
   wtr_->UpdateSecondaryProperties(secondary_properties1.Clone());
 
-  constexpr base::TimeDelta kUnderflowDuration =
-      base::TimeDelta::FromMilliseconds(250);
-  constexpr base::TimeDelta kWatchTime1 = base::TimeDelta::FromSeconds(54);
+  constexpr base::TimeDelta kUnderflowDuration = base::Milliseconds(250);
+  constexpr base::TimeDelta kWatchTime1 = base::Seconds(54);
   const int kUnderflowCount1 = 2;
   wtr_->RecordWatchTime(WatchTimeKey::kAudioVideoAll, kWatchTime1);
   wtr_->UpdateUnderflowCount(kUnderflowCount1);
@@ -1758,7 +1753,7 @@
           EncryptionScheme::kUnencrypted, gfx::Size(800, 600));
   wtr_->UpdateSecondaryProperties(secondary_properties2.Clone());
 
-  constexpr base::TimeDelta kWatchTime2 = base::TimeDelta::FromSeconds(25);
+  constexpr base::TimeDelta kWatchTime2 = base::Seconds(25);
   const int kUnderflowCount2 = 3;
 
   // Watch time and underflow counts continue to accumulate during property
@@ -1773,7 +1768,7 @@
   wtr_->UpdateUnderflowDuration(kUnderflowCount1, kUnderflowDuration * 1.5);
 
   wtr_->OnError(PIPELINE_ERROR_DECODE);
-  wtr_->OnDurationChanged(base::TimeDelta::FromSeconds(5125));
+  wtr_->OnDurationChanged(base::Seconds(5125));
 
   wtr_.reset();
   base::RunLoop().RunUntilIdle();
diff --git a/media/mojo/test/mojo_video_decoder_integration_test.cc b/media/mojo/test/mojo_video_decoder_integration_test.cc
index ae2821e6..244b5e0 100644
--- a/media/mojo/test/mojo_video_decoder_integration_test.cc
+++ b/media/mojo/test/mojo_video_decoder_integration_test.cc
@@ -283,8 +283,8 @@
     scoped_refptr<DecoderBuffer> buffer =
         DecoderBuffer::CopyFrom(data.data(), data.size());
 
-    buffer->set_timestamp(base::TimeDelta::FromMilliseconds(timestamp_ms));
-    buffer->set_duration(base::TimeDelta::FromMilliseconds(10));
+    buffer->set_timestamp(base::Milliseconds(timestamp_ms));
+    buffer->set_duration(base::Milliseconds(10));
     buffer->set_is_key_frame(true);
 
     return buffer;
@@ -296,8 +296,8 @@
     scoped_refptr<DecoderBuffer> buffer =
         DecoderBuffer::CopyFrom(data.data(), data.size());
 
-    buffer->set_timestamp(base::TimeDelta::FromMilliseconds(timestamp_ms));
-    buffer->set_duration(base::TimeDelta::FromMilliseconds(10));
+    buffer->set_timestamp(base::Milliseconds(timestamp_ms));
+    buffer->set_duration(base::Milliseconds(10));
     buffer->set_is_key_frame(true);
 
     return buffer;
diff --git a/media/muxers/webm_muxer.cc b/media/muxers/webm_muxer.cc
index dd53bfb1e..d95e6e5 100644
--- a/media/muxers/webm_muxer.cc
+++ b/media/muxers/webm_muxer.cc
@@ -54,7 +54,7 @@
 
 // Force new clusters at a maximum rate of 10 Hz.
 constexpr base::TimeDelta kMinimumForcedClusterDuration =
-    base::TimeDelta::FromMilliseconds(100);
+    base::Milliseconds(100);
 
 void WriteOpusHeader(const media::AudioParameters& params, uint8_t* header) {
   // See https://wiki.xiph.org/OggOpus#ID_Header.
diff --git a/media/muxers/webm_muxer_unittest.cc b/media/muxers/webm_muxer_unittest.cc
index 2879923c..fa993b8 100644
--- a/media/muxers/webm_muxer_unittest.cc
+++ b/media/muxers/webm_muxer_unittest.cc
@@ -146,7 +146,7 @@
   bool video_success =
       !GetParam().num_video_tracks ||
       webm_muxer_->OnEncodedVideo(video_params, encoded_data, std::string(),
-                                  now + base::TimeDelta::FromMilliseconds(1),
+                                  now + base::Milliseconds(1),
                                   /*is_key_frame=*/true);
   EXPECT_FALSE(audio_success && video_success);
 }
@@ -166,7 +166,7 @@
   bool video_success =
       !GetParam().num_video_tracks ||
       webm_muxer_->OnEncodedVideo(video_params, encoded_data, std::string(),
-                                  now + base::TimeDelta::FromMilliseconds(1),
+                                  now + base::Milliseconds(1),
                                   /*is_key_frame=*/true);
   bool audio_success =
       !GetParam().num_audio_tracks ||
@@ -388,14 +388,12 @@
   // Timestamp: video origin + X
   webm_muxer_->OnEncodedVideo(
       GetVideoParameters(video_frame), encoded_video, std::string(),
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(1),
-      false /* keyframe */);
+      base::TimeTicks() + base::Milliseconds(1), false /* keyframe */);
 
   // Timestamp: video origin + X + Y
   webm_muxer_->OnEncodedVideo(
       GetVideoParameters(video_frame), encoded_video, std::string(),
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(2),
-      false /* keyframe */);
+      base::TimeTicks() + base::Milliseconds(2), false /* keyframe */);
 
   const int sample_rate = 48000;
   const int frames_per_buffer = 480;
@@ -418,9 +416,8 @@
       .Times(AnyNumber());
 
   // Timestamp: 0 (audio origin)
-  webm_muxer_->OnEncodedAudio(
-      audio_params, encoded_audio,
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(3));
+  webm_muxer_->OnEncodedAudio(audio_params, encoded_audio,
+                              base::TimeTicks() + base::Milliseconds(3));
   webm_muxer_.reset();
 }
 
@@ -489,8 +486,7 @@
         gfx::Size(1, 1), 0, media::VideoCodec::kVP8, gfx::ColorSpace());
     webm_muxer_->OnEncodedVideo(
         params, "video_at_offset", "",
-        base::TimeTicks() +
-            base::TimeDelta::FromMilliseconds(system_timestamp_offset_ms),
+        base::TimeTicks() + base::Milliseconds(system_timestamp_offset_ms),
         is_key_frame);
     got_video_ = true;
   }
@@ -504,8 +500,7 @@
         media::CHANNEL_LAYOUT_MONO, frame_rate_hz, frames_per_buffer);
     webm_muxer_->OnEncodedAudio(
         audio_params, "audio_at_offset",
-        base::TimeTicks() +
-            base::TimeDelta::FromMilliseconds(system_timestamp_offset_ms));
+        base::TimeTicks() + base::Milliseconds(system_timestamp_offset_ms));
   }
 
   MOCK_METHOD(void, OnWrite, ());
@@ -558,7 +553,7 @@
 TEST_F(WebmMuxerTestUnparametrized, MuxerCompensatesForPausedTimeWithVideo) {
   AddVideoAtOffset(123, /*is_key_frame=*/true);
   webm_muxer_->Pause();
-  environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(200));
+  environment_.FastForwardBy(base::Milliseconds(200));
   webm_muxer_->Resume();
   AddVideoAtOffset(123 + 266, /*is_key_frame=*/false);
   EXPECT_TRUE(Parse());
@@ -569,7 +564,7 @@
 TEST_F(WebmMuxerTestUnparametrized, MuxerCompensatesForPausedTimeWithAudio) {
   AddAudioAtOffsetWithDuration(234, 10);
   webm_muxer_->Pause();
-  environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(666));
+  environment_.FastForwardBy(base::Milliseconds(666));
   webm_muxer_->Resume();
   AddAudioAtOffsetWithDuration(234 + 686, 10);
   EXPECT_TRUE(Parse());
@@ -582,7 +577,7 @@
   AddAudioAtOffsetWithDuration(234, 10);
   AddVideoAtOffset(234 + 1, /*is_key_frame=*/true);
   webm_muxer_->Pause();
-  environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(300));
+  environment_.FastForwardBy(base::Milliseconds(300));
   webm_muxer_->Resume();
   AddAudioAtOffsetWithDuration(234 + 321, 10);
   AddVideoAtOffset(234 + 315, /*is_key_frame=*/false);
@@ -596,7 +591,7 @@
 TEST_F(WebmMuxerTestUnparametrized,
        MuxerCompensatesForPausedTimeBeforeAudioVideo) {
   webm_muxer_->Pause();
-  environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  environment_.FastForwardBy(base::Milliseconds(100));
   webm_muxer_->Resume();
   AddAudioAtOffsetWithDuration(50, 10);
   AddVideoAtOffset(65, /*is_key_frame=*/true);
@@ -609,8 +604,7 @@
 }
 
 TEST_F(WebmMuxerTestUnparametrized, HoldsDataUntilDurationExpiry) {
-  webm_muxer_->SetMaximumDurationToForceDataOutput(
-      base::TimeDelta::FromMilliseconds(200));
+  webm_muxer_->SetMaximumDurationToForceDataOutput(base::Milliseconds(200));
   AddVideoAtOffset(0, /*is_key_frame=*/true);
   AddAudioAtOffsetWithDuration(0, 10);
   // Mute video. The muxer will hold on to audio data after this until the max
@@ -623,7 +617,7 @@
   AddAudioAtOffsetWithDuration(30, 10);
   AddAudioAtOffsetWithDuration(40, 10);
   Mock::VerifyAndClearExpectations(this);
-  environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(200));
+  environment_.FastForwardBy(base::Milliseconds(200));
   EXPECT_CALL(*this, OnWrite).Times(AtLeast(1));
   AddAudioAtOffsetWithDuration(50, 10);
   Mock::VerifyAndClearExpectations(this);
@@ -632,9 +626,8 @@
 }
 
 TEST_F(WebmMuxerTestUnparametrized, DurationExpiryLimitedByMaxFrequency) {
-  webm_muxer_->SetMaximumDurationToForceDataOutput(
-      base::TimeDelta::FromMilliseconds(
-          50));  // This value is below the minimum limit of 100 ms.
+  webm_muxer_->SetMaximumDurationToForceDataOutput(base::Milliseconds(
+      50));  // This value is below the minimum limit of 100 ms.
   AddVideoAtOffset(0, /*is_key_frame=*/true);
   AddAudioAtOffsetWithDuration(0, 10);
   // Mute video. The muxer will hold on to audio data after this until the max
@@ -647,7 +640,7 @@
   AddAudioAtOffsetWithDuration(30, 10);
   AddAudioAtOffsetWithDuration(40, 10);
   Mock::VerifyAndClearExpectations(this);
-  environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  environment_.FastForwardBy(base::Milliseconds(100));
   EXPECT_CALL(*this, OnWrite).Times(AtLeast(1));
   AddAudioAtOffsetWithDuration(50, 10);
   Mock::VerifyAndClearExpectations(this);
diff --git a/media/remoting/courier_renderer.cc b/media/remoting/courier_renderer.cc
index 4523287..b7e1f7e 100644
--- a/media/remoting/courier_renderer.cc
+++ b/media/remoting/courier_renderer.cc
@@ -35,13 +35,13 @@
 namespace {
 
 // The moving time window to track the media time and statistics updates.
-constexpr base::TimeDelta kTrackingWindow = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kTrackingWindow = base::Seconds(5);
 
 // The allowed delay for the remoting playback. When continuously exceeds this
 // limit for |kPlaybackDelayCountThreshold| times, the user experience is likely
 // poor and the controller is notified.
 constexpr base::TimeDelta kMediaPlaybackDelayThreshold =
-    base::TimeDelta::FromMilliseconds(750);
+    base::Milliseconds(750);
 constexpr int kPlaybackDelayCountThreshold = 10;
 
 // The allowed percentage of the number of video frames dropped vs. the number
@@ -51,13 +51,11 @@
 
 // The time period to allow receiver get stable after playback rate change or
 // Flush().
-constexpr base::TimeDelta kStabilizationPeriod =
-    base::TimeDelta::FromSeconds(2);
+constexpr base::TimeDelta kStabilizationPeriod = base::Seconds(2);
 
 // The amount of time between polling the DemuxerStreamAdapters to measure their
 // data flow rates for metrics.
-constexpr base::TimeDelta kDataFlowPollPeriod =
-    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kDataFlowPollPeriod = base::Seconds(10);
 
 }  // namespace
 
@@ -517,8 +515,8 @@
   {
     // Updates current time information.
     base::AutoLock auto_lock(time_lock_);
-    current_media_time_ = base::TimeDelta::FromMicroseconds(time_usec);
-    current_max_time_ = base::TimeDelta::FromMicroseconds(max_time_usec);
+    current_media_time_ = base::Microseconds(time_usec);
+    current_max_time_ = base::Microseconds(max_time_usec);
   }
 
   metrics_recorder_.OnEvidenceOfPlayoutAtReceiver();
diff --git a/media/remoting/courier_renderer_unittest.cc b/media/remoting/courier_renderer_unittest.cc
index 824821b..c27a481 100644
--- a/media/remoting/courier_renderer_unittest.cc
+++ b/media/remoting/courier_renderer_unittest.cc
@@ -365,7 +365,7 @@
         std::make_unique<CourierRenderer>(base::ThreadTaskRunnerHandle::Get(),
                                           controller_->GetWeakPtr(), nullptr);
     renderer_->clock_ = &clock_;
-    clock_.Advance(base::TimeDelta::FromSeconds(1));
+    clock_.Advance(base::Seconds(1));
 
     RunPendingTasks();
   }
@@ -412,9 +412,8 @@
                                   int end_serial_number) {
     for (int i = start_serial_number; i < end_serial_number; ++i) {
       ASSERT_FALSE(DidEncounterFatalError());
-      IssueTimeUpdateRpc(base::TimeDelta::FromMilliseconds(100 + i * 800),
-                         base::TimeDelta::FromSeconds(100));
-      clock_.Advance(base::TimeDelta::FromSeconds(1));
+      IssueTimeUpdateRpc(base::Milliseconds(100 + i * 800), base::Seconds(100));
+      clock_.Advance(base::Seconds(1));
       RunPendingTasks();
     }
   }
@@ -533,7 +532,7 @@
   RunPendingTasks();
   ASSERT_EQ(0, ReceivedRpcMessageCount());
 
-  base::TimeDelta seek = base::TimeDelta::FromMicroseconds(100);
+  base::TimeDelta seek = base::Microseconds(100);
   renderer_->StartPlayingFrom(seek);
   RunPendingTasks();
   ASSERT_EQ(0, ReceivedRpcMessageCount());
@@ -575,7 +574,7 @@
   ASSERT_EQ(render_client_->status(), PIPELINE_OK);
 
   // StartPlaying from
-  base::TimeDelta seek = base::TimeDelta::FromMicroseconds(100);
+  base::TimeDelta seek = base::Microseconds(100);
   renderer_->StartPlayingFrom(seek);
   RunPendingTasks();
 
@@ -625,14 +624,14 @@
 }
 
 TEST_F(CourierRendererTest, OnTimeUpdate) {
-  base::TimeDelta media_time = base::TimeDelta::FromMicroseconds(100);
-  base::TimeDelta max_media_time = base::TimeDelta::FromMicroseconds(500);
+  base::TimeDelta media_time = base::Microseconds(100);
+  base::TimeDelta max_media_time = base::Microseconds(500);
   IssueTimeUpdateRpc(media_time, max_media_time);
   ValidateCurrentTime(media_time, max_media_time);
 
   // Issues RPC_RC_ONTIMEUPDATE RPC message with invalid time
-  base::TimeDelta media_time2 = base::TimeDelta::FromMicroseconds(-100);
-  base::TimeDelta max_media_time2 = base::TimeDelta::FromMicroseconds(500);
+  base::TimeDelta media_time2 = base::Microseconds(-100);
+  base::TimeDelta max_media_time2 = base::Microseconds(500);
   IssueTimeUpdateRpc(media_time2, max_media_time2);
   // Because of invalid value, the time will not be updated and remain the same.
   ValidateCurrentTime(media_time, max_media_time);
@@ -767,7 +766,7 @@
   EXPECT_CALL(*render_client_, OnBufferingStateChange(BUFFERING_HAVE_ENOUGH, _))
       .Times(1);
   IssuesBufferingStateRpc(BufferingState::BUFFERING_HAVE_ENOUGH);
-  clock_.Advance(base::TimeDelta::FromSeconds(3));
+  clock_.Advance(base::Seconds(3));
   VerifyAndReportTimeUpdates(0, 15);
   ASSERT_FALSE(DidEncounterFatalError());
 
@@ -775,7 +774,7 @@
   // playback was continuously delayed for 10 times.
   renderer_->SetPlaybackRate(1);
   RunPendingTasks();
-  clock_.Advance(base::TimeDelta::FromSeconds(3));
+  clock_.Advance(base::Seconds(3));
   VerifyAndReportTimeUpdates(15, 30);
   ASSERT_TRUE(DidEncounterFatalError());
 }
@@ -786,7 +785,7 @@
   for (int i = 0; i < 7; ++i) {
     ASSERT_FALSE(DidEncounterFatalError());  // Not enough measurements.
     IssueStatisticsUpdateRpc();
-    clock_.Advance(base::TimeDelta::FromSeconds(1));
+    clock_.Advance(base::Seconds(1));
     RunPendingTasks();
   }
   ASSERT_TRUE(DidEncounterFatalError());
diff --git a/media/remoting/fake_media_resource.cc b/media/remoting/fake_media_resource.cc
index ff153b7..3229328 100644
--- a/media/remoting/fake_media_resource.cc
+++ b/media/remoting/fake_media_resource.cc
@@ -79,7 +79,7 @@
   for (size_t i = 0; i < size; ++i) {
     buffer[i] = static_cast<uint8_t>(i & 0xFF);
   }
-  base::TimeDelta pts = base::TimeDelta::FromMilliseconds(pts_ms);
+  base::TimeDelta pts = base::Milliseconds(pts_ms);
 
   // To DecoderBuffer
   scoped_refptr<DecoderBuffer> input_buffer =
diff --git a/media/remoting/integration_test.cc b/media/remoting/integration_test.cc
index 805a425..d50888e 100644
--- a/media/remoting/integration_test.cc
+++ b/media/remoting/integration_test.cc
@@ -60,7 +60,7 @@
   EXPECT_CALL(*this, OnVideoNaturalSizeChange(gfx::Size(640, 360))).Times(1);
   scoped_refptr<DecoderBuffer> second_file =
       ReadTestDataFile("bear-640x360.webm");
-  ASSERT_TRUE(source.AppendAtTime(base::TimeDelta::FromSeconds(kAppendTimeSec),
+  ASSERT_TRUE(source.AppendAtTime(base::Seconds(kAppendTimeSec),
                                   second_file->data(),
                                   second_file->data_size()));
   source.EndOfStream();
diff --git a/media/remoting/metrics.cc b/media/remoting/metrics.cc
index 10fb3e9..b744f29 100644
--- a/media/remoting/metrics.cc
+++ b/media/remoting/metrics.cc
@@ -77,33 +77,31 @@
   // Record the session duration.
   const base::TimeDelta session_duration = base::TimeTicks::Now() - start_time_;
   UMA_HISTOGRAM_CUSTOM_TIMES("Media.Remoting.SessionDuration", session_duration,
-                             base::TimeDelta::FromSeconds(15),
-                             base::TimeDelta::FromHours(12), 50);
+                             base::Seconds(15), base::Hours(12), 50);
 
-  if (session_duration <= base::TimeDelta::FromSeconds(15)) {
+  if (session_duration <= base::Seconds(15)) {
     // Record the session duration in finer scale for short sessions
     UMA_HISTOGRAM_CUSTOM_TIMES("Media.Remoting.ShortSessionDuration",
-                               session_duration,
-                               base::TimeDelta::FromSecondsD(0.1),
-                               base::TimeDelta::FromSeconds(15), 60);
+                               session_duration, base::Seconds(0.1),
+                               base::Seconds(15), 60);
 
-    if (session_duration <= base::TimeDelta::FromSecondsD(0.1)) {
+    if (session_duration <= base::Seconds(0.1)) {
       UMA_HISTOGRAM_ENUMERATION(
           "Media.Remoting.SessionStopTrigger.Duration0To100MilliSec", trigger,
           STOP_TRIGGER_MAX + 1);
-    } else if (session_duration <= base::TimeDelta::FromSeconds(1)) {
+    } else if (session_duration <= base::Seconds(1)) {
       UMA_HISTOGRAM_ENUMERATION(
           "Media.Remoting.SessionStopTrigger.Duration100MilliSecTo1Sec",
           trigger, STOP_TRIGGER_MAX + 1);
-    } else if (session_duration <= base::TimeDelta::FromSeconds(3)) {
+    } else if (session_duration <= base::Seconds(3)) {
       UMA_HISTOGRAM_ENUMERATION(
           "Media.Remoting.SessionStopTrigger.Duration1To3Sec", trigger,
           STOP_TRIGGER_MAX + 1);
-    } else if (session_duration <= base::TimeDelta::FromSeconds(5)) {
+    } else if (session_duration <= base::Seconds(5)) {
       UMA_HISTOGRAM_ENUMERATION(
           "Media.Remoting.SessionStopTrigger.Duration3To5Sec", trigger,
           STOP_TRIGGER_MAX + 1);
-    } else if (session_duration <= base::TimeDelta::FromSeconds(10)) {
+    } else if (session_duration <= base::Seconds(10)) {
       UMA_HISTOGRAM_ENUMERATION(
           "Media.Remoting.SessionStopTrigger.Duration5To10Sec", trigger,
           STOP_TRIGGER_MAX + 1);
@@ -243,9 +241,8 @@
   const base::TimeDelta elapsed_since_start =
       base::TimeTicks::Now() - start_time_;
   UMA_HISTOGRAM_CUSTOM_TIMES("Media.Remoting.TimeUntilRemoteInitialized",
-                             elapsed_since_start,
-                             base::TimeDelta::FromMilliseconds(10),
-                             base::TimeDelta::FromSeconds(30), 50);
+                             elapsed_since_start, base::Milliseconds(10),
+                             base::Seconds(30), 50);
 }
 
 void RendererMetricsRecorder::OnEvidenceOfPlayoutAtReceiver() {
@@ -254,9 +251,8 @@
   const base::TimeDelta elapsed_since_start =
       base::TimeTicks::Now() - start_time_;
   UMA_HISTOGRAM_CUSTOM_TIMES("Media.Remoting.TimeUntilFirstPlayout",
-                             elapsed_since_start,
-                             base::TimeDelta::FromMilliseconds(10),
-                             base::TimeDelta::FromSeconds(30), 50);
+                             elapsed_since_start, base::Milliseconds(10),
+                             base::Seconds(30), 50);
   did_record_first_playout_ = true;
 }
 
diff --git a/media/remoting/proto_utils.cc b/media/remoting/proto_utils.cc
index 753d225..a482132 100644
--- a/media/remoting/proto_utils.cc
+++ b/media/remoting/proto_utils.cc
@@ -32,13 +32,11 @@
   }
 
   if (buffer_message.has_timestamp_usec()) {
-    buffer->set_timestamp(
-        base::TimeDelta::FromMicroseconds(buffer_message.timestamp_usec()));
+    buffer->set_timestamp(base::Microseconds(buffer_message.timestamp_usec()));
   }
 
   if (buffer_message.has_duration_usec()) {
-    buffer->set_duration(
-        base::TimeDelta::FromMicroseconds(buffer_message.duration_usec()));
+    buffer->set_duration(base::Microseconds(buffer_message.duration_usec()));
   }
   VLOG(3) << "timestamp:" << buffer_message.timestamp_usec()
           << " duration:" << buffer_message.duration_usec();
@@ -50,14 +48,12 @@
   base::TimeDelta front_discard;
   if (buffer_message.has_front_discard_usec()) {
     has_discard = true;
-    front_discard =
-        base::TimeDelta::FromMicroseconds(buffer_message.front_discard_usec());
+    front_discard = base::Microseconds(buffer_message.front_discard_usec());
   }
   base::TimeDelta back_discard;
   if (buffer_message.has_back_discard_usec()) {
     has_discard = true;
-    back_discard =
-        base::TimeDelta::FromMicroseconds(buffer_message.back_discard_usec());
+    back_discard = base::Microseconds(buffer_message.back_discard_usec());
   }
 
   if (has_discard) {
@@ -198,7 +194,7 @@
       std::vector<uint8_t>(audio_message.extra_data().begin(),
                            audio_message.extra_data().end()),
       EncryptionScheme::kUnencrypted,
-      base::TimeDelta::FromMicroseconds(audio_message.seek_preroll_usec()),
+      base::Microseconds(audio_message.seek_preroll_usec()),
       audio_message.codec_delay());
   return audio_config->IsValidConfig();
 }
@@ -335,8 +331,8 @@
     stats->video_pipeline_info.encryption_type = EncryptionType::kClear;
   }
   if (stats_message.has_video_frame_duration_average_usec()) {
-    stats->video_frame_duration_average = base::TimeDelta::FromMicroseconds(
-        stats_message.video_frame_duration_average_usec());
+    stats->video_frame_duration_average =
+        base::Microseconds(stats_message.video_frame_duration_average_usec());
   }
 }
 
diff --git a/media/remoting/proto_utils_unittest.cc b/media/remoting/proto_utils_unittest.cc
index 6c9c297..2d643f1 100644
--- a/media/remoting/proto_utils_unittest.cc
+++ b/media/remoting/proto_utils_unittest.cc
@@ -65,7 +65,7 @@
   size_t buffer_size = sizeof(buffer) / sizeof(uint8_t);
   const uint8_t side_buffer[] = "XX";
   size_t side_buffer_size = sizeof(side_buffer) / sizeof(uint8_t);
-  base::TimeDelta pts = base::TimeDelta::FromMilliseconds(5);
+  base::TimeDelta pts = base::Milliseconds(5);
 
   // 1. To DecoderBuffer
   scoped_refptr<DecoderBuffer> input_buffer = DecoderBuffer::CopyFrom(
diff --git a/media/remoting/receiver.cc b/media/remoting/receiver.cc
index e28db91..d7944c6 100644
--- a/media/remoting/receiver.cc
+++ b/media/remoting/receiver.cc
@@ -27,8 +27,7 @@
 
 // The period to send the TimeUpdate RPC message to update the media time on
 // sender side.
-constexpr base::TimeDelta kTimeUpdateInterval =
-    base::TimeDelta::FromMilliseconds(250);
+constexpr base::TimeDelta kTimeUpdateInterval = base::Milliseconds(250);
 
 }  // namespace
 
@@ -241,8 +240,7 @@
     std::unique_ptr<openscreen::cast::RpcMessage> message) {
   DCHECK(media_task_runner_->BelongsToCurrentThread());
 
-  base::TimeDelta time =
-      base::TimeDelta::FromMicroseconds(message->integer64_value());
+  base::TimeDelta time = base::Microseconds(message->integer64_value());
   renderer_->StartPlayingFrom(time);
   ScheduleMediaTimeUpdates();
 }
diff --git a/media/remoting/receiver_unittest.cc b/media/remoting/receiver_unittest.cc
index 08dda505..bc149ab 100644
--- a/media/remoting/receiver_unittest.cc
+++ b/media/remoting/receiver_unittest.cc
@@ -395,7 +395,7 @@
   EXPECT_EQ(flush_video_count, mock_remotee_->flush_video_count());
 
   // StartPlayingFrom
-  const base::TimeDelta time = base::TimeDelta::FromSeconds(100);
+  const base::TimeDelta time = base::Seconds(100);
   EXPECT_CALL(*mock_renderer_, StartPlayingFrom(time)).Times(1);
   mock_sender_->SendRpcStartPlayingFrom(time);
   task_environment_.RunUntilIdle();
diff --git a/media/remoting/renderer_controller.cc b/media/remoting/renderer_controller.cc
index f137141..a5ab09a 100644
--- a/media/remoting/renderer_controller.cc
+++ b/media/remoting/renderer_controller.cc
@@ -26,7 +26,7 @@
 
 // The duration to delay the start of media remoting to ensure all preconditions
 // are held stable before switching to media remoting.
-constexpr base::TimeDelta kDelayedStart = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kDelayedStart = base::Seconds(5);
 
 constexpr int kPixelsPerSec4k = 3840 * 2160 * 30;  // 4k 30fps.
 constexpr int kPixelsPerSec2k = 1920 * 1080 * 30;  // 1080p 30fps.
diff --git a/media/remoting/renderer_controller_unittest.cc b/media/remoting/renderer_controller_unittest.cc
index 3c5091c..2d1acb2 100644
--- a/media/remoting/renderer_controller_unittest.cc
+++ b/media/remoting/renderer_controller_unittest.cc
@@ -52,8 +52,7 @@
   return metadata;
 }
 
-constexpr base::TimeDelta kDelayedStartDuration =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kDelayedStartDuration = base::Seconds(5);
 
 }  // namespace
 
@@ -100,7 +99,7 @@
     EXPECT_FALSE(is_rendering_remotely_);
     EXPECT_TRUE(sink_name_.empty());
     controller_->clock_ = &clock_;
-    clock_.Advance(base::TimeDelta::FromSeconds(1));
+    clock_.Advance(base::Seconds(1));
     controller_->SetClient(this);
     RunUntilIdle();
     EXPECT_FALSE(is_rendering_remotely_);
diff --git a/media/renderers/audio_renderer_impl_unittest.cc b/media/renderers/audio_renderer_impl_unittest.cc
index 5ca643fca..628c950 100644
--- a/media/renderers/audio_renderer_impl_unittest.cc
+++ b/media/renderers/audio_renderer_impl_unittest.cc
@@ -136,7 +136,7 @@
                             base::Unretained(this)),
         &media_log_, nullptr);
     renderer_->tick_clock_ = &tick_clock_;
-    tick_clock_.Advance(base::TimeDelta::FromSeconds(1));
+    tick_clock_.Advance(base::Seconds(1));
   }
 
   AudioRendererImplTest(const AudioRendererImplTest&) = delete;
@@ -978,8 +978,7 @@
   FlushDuringPendingRead();
 
   // Preroll again to a different timestamp and verify it completed normally.
-  const base::TimeDelta seek_timestamp =
-      base::TimeDelta::FromMilliseconds(1000);
+  const base::TimeDelta seek_timestamp = base::Milliseconds(1000);
   Preroll(seek_timestamp, seek_timestamp, PIPELINE_OK);
 }
 
@@ -1097,8 +1096,8 @@
   // through the desired output buffer; this allows for maximum test coverage.
   const double kBuffers = 4.5;
   const base::TimeDelta first_timestamp =
-      base::TimeDelta::FromSecondsD(hardware_params_.frames_per_buffer() *
-                                    kBuffers / hardware_params_.sample_rate());
+      base::Seconds(hardware_params_.frames_per_buffer() * kBuffers /
+                    hardware_params_.sample_rate());
 
   Preroll(base::TimeDelta(), first_timestamp, PIPELINE_OK);
   StartTicking();
@@ -1280,8 +1279,7 @@
 
   // Consume some more audio data.
   frames_to_consume = frames_buffered();
-  tick_clock_.Advance(
-      base::TimeDelta::FromSecondsD(1.0 / kOutputSamplesPerSecond));
+  tick_clock_.Advance(base::Seconds(1.0 / kOutputSamplesPerSecond));
   EXPECT_TRUE(ConsumeBufferedData(frames_to_consume));
 
   // Time should change now that the audio hardware has called back.
@@ -1316,7 +1314,7 @@
 
   // Advancing once more will exceed the amount of played out frames finally.
   const base::TimeDelta kOneSample =
-      base::TimeDelta::FromSecondsD(1.0 / kOutputSamplesPerSecond);
+      base::Seconds(1.0 / kOutputSamplesPerSecond);
   base::TimeTicks current_time = tick_clock_.NowTicks();
   tick_clock_.Advance(kOneSample);
   EXPECT_EQ(current_time, CurrentMediaWallClockTime(&is_time_moving));
@@ -1326,7 +1324,7 @@
   DeliverRemainingAudio();
 
   // Elapse a lot of time between StopTicking() and the next Render() call.
-  const base::TimeDelta kOneSecond = base::TimeDelta::FromSeconds(1);
+  const base::TimeDelta kOneSecond = base::Seconds(1);
   tick_clock_.Advance(kOneSecond);
   StartTicking();
 
@@ -1336,8 +1334,8 @@
 
   // Consume some buffered data with a small delay.
   uint32_t delay_frames = 500;
-  base::TimeDelta delay_time = base::TimeDelta::FromMicroseconds(
-      std::round(delay_frames * kOutputMicrosPerFrame));
+  base::TimeDelta delay_time =
+      base::Microseconds(std::round(delay_frames * kOutputMicrosPerFrame));
 
   frames_to_consume.value = frames_buffered().value / 16;
   EXPECT_TRUE(ConsumeBufferedData(frames_to_consume, delay_time));
diff --git a/media/renderers/paint_canvas_video_renderer.cc b/media/renderers/paint_canvas_video_renderer.cc
index 01ba48c7..dfa822a 100644
--- a/media/renderers/paint_canvas_video_renderer.cc
+++ b/media/renderers/paint_canvas_video_renderer.cc
@@ -783,11 +783,10 @@
 };
 
 PaintCanvasVideoRenderer::PaintCanvasVideoRenderer()
-    : cache_deleting_timer_(
-          FROM_HERE,
-          base::TimeDelta::FromSeconds(kTemporaryResourceDeletionDelay),
-          this,
-          &PaintCanvasVideoRenderer::ResetCache),
+    : cache_deleting_timer_(FROM_HERE,
+                            base::Seconds(kTemporaryResourceDeletionDelay),
+                            this,
+                            &PaintCanvasVideoRenderer::ResetCache),
       renderer_stable_id_(cc::PaintImage::GetNextId()) {}
 
 PaintCanvasVideoRenderer::~PaintCanvasVideoRenderer() = default;
diff --git a/media/renderers/paint_canvas_video_renderer_unittest.cc b/media/renderers/paint_canvas_video_renderer_unittest.cc
index b23348c..ebd8b5c 100644
--- a/media/renderers/paint_canvas_video_renderer_unittest.cc
+++ b/media/renderers/paint_canvas_video_renderer_unittest.cc
@@ -167,7 +167,7 @@
 static scoped_refptr<VideoFrame> CreateCroppedFrame() {
   scoped_refptr<VideoFrame> cropped_frame = VideoFrame::CreateFrame(
       PIXEL_FORMAT_I420, gfx::Size(16, 16), gfx::Rect(6, 6, 8, 6),
-      gfx::Size(8, 6), base::TimeDelta::FromMilliseconds(4));
+      gfx::Size(8, 6), base::Milliseconds(4));
   // Make sure the cropped video frame's aspect ratio matches the output device.
   // Update cropped_frame_'s crop dimensions if this is not the case.
   EXPECT_EQ(cropped_frame->visible_rect().width() * kHeight,
@@ -259,9 +259,9 @@
       bitmap_(AllocBitmap(kWidth, kHeight)),
       target_canvas_(bitmap_) {
   // Give each frame a unique timestamp.
-  natural_frame_->set_timestamp(base::TimeDelta::FromMilliseconds(1));
-  larger_frame_->set_timestamp(base::TimeDelta::FromMilliseconds(2));
-  smaller_frame_->set_timestamp(base::TimeDelta::FromMilliseconds(3));
+  natural_frame_->set_timestamp(base::Milliseconds(1));
+  larger_frame_->set_timestamp(base::Milliseconds(2));
+  smaller_frame_->set_timestamp(base::Milliseconds(3));
 }
 
 PaintCanvasVideoRendererTest::~PaintCanvasVideoRendererTest() = default;
@@ -832,8 +832,7 @@
 
   auto video_frame = media::VideoFrame::WrapExternalData(
       media::PIXEL_FORMAT_Y16, coded_size, gfx::Rect(visible_size),
-      visible_size, &memory[0], fWidth * fHeight * 2,
-      base::TimeDelta::FromMilliseconds(4));
+      visible_size, &memory[0], fWidth * fHeight * 2, base::Milliseconds(4));
 
   gfx::RectF visible_rect(visible_size.width(), visible_size.height());
   cc::PaintFlags flags;
diff --git a/media/renderers/renderer_impl.h b/media/renderers/renderer_impl.h
index 270ac69..e48a4b3 100644
--- a/media/renderers/renderer_impl.h
+++ b/media/renderers/renderer_impl.h
@@ -259,9 +259,8 @@
   // The amount of time to wait before declaring underflow if the video renderer
   // runs out of data but the audio renderer still has enough.
   Tuneable<base::TimeDelta> video_underflow_threshold_ = {
-      "MediaVideoUnderflowThreshold", base::TimeDelta::FromMilliseconds(1000),
-      base::TimeDelta::FromMilliseconds(3000),
-      base::TimeDelta::FromMilliseconds(8000)};
+      "MediaVideoUnderflowThreshold", base::Milliseconds(1000),
+      base::Milliseconds(3000), base::Milliseconds(8000)};
 
   // Lock used to protect access to the |restarting_audio_| flag and
   // |restarting_audio_time_|.
diff --git a/media/renderers/renderer_impl_unittest.cc b/media/renderers/renderer_impl_unittest.cc
index 5affa55..7d16cc8 100644
--- a/media/renderers/renderer_impl_unittest.cc
+++ b/media/renderers/renderer_impl_unittest.cc
@@ -248,8 +248,7 @@
                 OnBufferingStateChange(BUFFERING_HAVE_ENOUGH,
                                        BUFFERING_CHANGE_REASON_UNKNOWN));
 
-    base::TimeDelta start_time(
-        base::TimeDelta::FromMilliseconds(kStartPlayingTimeInMs));
+    base::TimeDelta start_time(base::Milliseconds(kStartPlayingTimeInMs));
     EXPECT_CALL(time_source_, SetMediaTime(start_time));
     EXPECT_CALL(time_source_, StartTicking());
 
@@ -299,8 +298,7 @@
     int64_t start_time_ms = GetMediaTimeMs();
     const int64_t time_to_advance_ms = 100;
 
-    test_tick_clock_.Advance(
-        base::TimeDelta::FromMilliseconds(time_to_advance_ms));
+    test_tick_clock_.Advance(base::Milliseconds(time_to_advance_ms));
 
     if (GetMediaTimeMs() == start_time_ms + time_to_advance_ms * playback_rate)
       return true;
@@ -816,8 +814,7 @@
   Play();
 
   // Set a massive threshold such that it shouldn't fire within this test.
-  renderer_impl_->set_video_underflow_threshold_for_testing(
-      base::TimeDelta::FromSeconds(100));
+  renderer_impl_->set_video_underflow_threshold_for_testing(base::Seconds(100));
 
   // Simulate the cases where audio underflows and then video underflows.
   EXPECT_CALL(time_source_, StopTicking());
diff --git a/media/renderers/shared_image_video_frame_test_utils.cc b/media/renderers/shared_image_video_frame_test_utils.cc
index 9b36170..9431cae 100644
--- a/media/renderers/shared_image_video_frame_test_utils.cc
+++ b/media/renderers/shared_image_video_frame_test_utils.cc
@@ -122,8 +122,7 @@
   return CreateSharedImageFrame(
       std::move(context_provider), VideoPixelFormat::PIXEL_FORMAT_ABGR,
       {mailbox}, sync_token, GL_TEXTURE_2D, coded_size, visible_rect,
-      visible_rect.size(), base::TimeDelta::FromSeconds(1),
-      std::move(destroyed_callback));
+      visible_rect.size(), base::Seconds(1), std::move(destroyed_callback));
 }
 
 scoped_refptr<VideoFrame> CreateSharedImageI420Frame(
@@ -186,7 +185,7 @@
   return CreateSharedImageFrame(
       std::move(context_provider), VideoPixelFormat::PIXEL_FORMAT_I420,
       {y_mailbox, u_mailbox, v_mailbox}, sync_token, GL_TEXTURE_2D, coded_size,
-      visible_rect, visible_rect.size(), base::TimeDelta::FromSeconds(1),
+      visible_rect, visible_rect.size(), base::Seconds(1),
       std::move(destroyed_callback));
 }
 
@@ -247,7 +246,7 @@
   return CreateSharedImageFrame(
       std::move(context_provider), VideoPixelFormat::PIXEL_FORMAT_NV12,
       {y_mailbox, uv_mailbox}, sync_token, GL_TEXTURE_2D, coded_size,
-      visible_rect, visible_rect.size(), base::TimeDelta::FromSeconds(1),
+      visible_rect, visible_rect.size(), base::Seconds(1),
       std::move(destroyed_callback));
 }
 
diff --git a/media/renderers/video_renderer_impl.cc b/media/renderers/video_renderer_impl.cc
index ad1e16b..7186f6c2 100644
--- a/media/renderers/video_renderer_impl.cc
+++ b/media/renderers/video_renderer_impl.cc
@@ -657,8 +657,7 @@
 
   // Update average frame duration.
   base::TimeDelta frame_duration = algorithm_->average_frame_duration();
-  if (frame_duration != kNoTimestamp &&
-      frame_duration != base::TimeDelta::FromSeconds(0)) {
+  if (frame_duration != kNoTimestamp && frame_duration != base::Seconds(0)) {
     fps_estimator_.AddSample(frame_duration);
   } else {
     fps_estimator_.Reset();
diff --git a/media/renderers/video_renderer_impl_unittest.cc b/media/renderers/video_renderer_impl_unittest.cc
index e1e4780..9afe177 100644
--- a/media/renderers/video_renderer_impl_unittest.cc
+++ b/media/renderers/video_renderer_impl_unittest.cc
@@ -86,7 +86,7 @@
         simulate_decode_delay_(false),
         expect_init_success_(true) {
     null_video_sink_ = std::make_unique<NullVideoSink>(
-        false, base::TimeDelta::FromSecondsD(1.0 / 60),
+        false, base::Seconds(1.0 / 60),
         base::BindRepeating(&MockCB::FrameReceived,
                             base::Unretained(&mock_cb_)),
         base::ThreadTaskRunnerHandle::Get());
@@ -155,8 +155,7 @@
 
   void StartPlayingFrom(int milliseconds) {
     SCOPED_TRACE(base::StringPrintf("StartPlayingFrom(%d)", milliseconds));
-    const base::TimeDelta media_time =
-        base::TimeDelta::FromMilliseconds(milliseconds);
+    const base::TimeDelta media_time = base::Milliseconds(milliseconds);
     time_source_.SetMediaTime(media_time);
     renderer_->StartPlayingFrom(media_time);
     base::RunLoop().RunUntilIdle();
@@ -236,7 +235,7 @@
         gfx::Size natural_size = TestVideoConfig::NormalCodedSize();
         scoped_refptr<VideoFrame> frame = VideoFrame::CreateFrame(
             PIXEL_FORMAT_I420, natural_size, gfx::Rect(natural_size),
-            natural_size, base::TimeDelta::FromMilliseconds(timestamp_in_ms));
+            natural_size, base::Milliseconds(timestamp_in_ms));
         QueueFrame(DecodeStatus::OK, frame);
         continue;
       }
@@ -327,14 +326,14 @@
     EXPECT_TRUE(
         task_environment_.GetMainThreadTaskRunner()->BelongsToCurrentThread());
     base::AutoLock l(lock_);
-    tick_clock_.Advance(base::TimeDelta::FromMilliseconds(time_ms));
+    tick_clock_.Advance(base::Milliseconds(time_ms));
   }
 
   void AdvanceTimeInMs(int time_ms) {
     EXPECT_TRUE(
         task_environment_.GetMainThreadTaskRunner()->BelongsToCurrentThread());
     base::AutoLock l(lock_);
-    time_ += base::TimeDelta::FromMilliseconds(time_ms);
+    time_ += base::Milliseconds(time_ms);
     time_source_.StopTicking();
     time_source_.SetMediaTime(time_);
     time_source_.StartTicking();
@@ -560,7 +559,7 @@
                                               VideoRenderer* renderer,
                                               base::OnceClosure success_cb) {
   test->QueueFrames("0 10 20 30");
-  renderer->StartPlayingFrom(base::TimeDelta::FromSeconds(0));
+  renderer->StartPlayingFrom(base::Seconds(0));
   std::move(success_cb).Run();
 }
 
@@ -1019,19 +1018,19 @@
   QueueFrame(DecodeStatus::OK,
              VideoFrame::CreateFrame(PIXEL_FORMAT_I420, initial_size,
                                      gfx::Rect(initial_size), initial_size,
-                                     base::TimeDelta::FromMilliseconds(0)));
+                                     base::Milliseconds(0)));
   QueueFrame(DecodeStatus::OK,
              VideoFrame::CreateFrame(PIXEL_FORMAT_I420, larger_size,
                                      gfx::Rect(larger_size), larger_size,
-                                     base::TimeDelta::FromMilliseconds(10)));
+                                     base::Milliseconds(10)));
   QueueFrame(DecodeStatus::OK,
              VideoFrame::CreateFrame(PIXEL_FORMAT_I420, larger_size,
                                      gfx::Rect(larger_size), larger_size,
-                                     base::TimeDelta::FromMilliseconds(20)));
+                                     base::Milliseconds(20)));
   QueueFrame(DecodeStatus::OK,
              VideoFrame::CreateFrame(PIXEL_FORMAT_I420, initial_size,
                                      gfx::Rect(initial_size), initial_size,
-                                     base::TimeDelta::FromMilliseconds(30)));
+                                     base::Milliseconds(30)));
 
   EXPECT_CALL(mock_cb_, OnBufferingStateChange(BUFFERING_HAVE_ENOUGH, _));
   EXPECT_CALL(mock_cb_, OnStatisticsUpdate(_)).Times(AnyNumber());
@@ -1085,19 +1084,19 @@
   QueueFrame(DecodeStatus::OK,
              VideoFrame::CreateFrame(non_opaque_format, frame_size,
                                      gfx::Rect(frame_size), frame_size,
-                                     base::TimeDelta::FromMilliseconds(0)));
+                                     base::Milliseconds(0)));
   QueueFrame(DecodeStatus::OK,
              VideoFrame::CreateFrame(non_opaque_format, frame_size,
                                      gfx::Rect(frame_size), frame_size,
-                                     base::TimeDelta::FromMilliseconds(10)));
-  QueueFrame(DecodeStatus::OK,
-             VideoFrame::CreateFrame(opaque_format, frame_size,
-                                     gfx::Rect(frame_size), frame_size,
-                                     base::TimeDelta::FromMilliseconds(20)));
-  QueueFrame(DecodeStatus::OK,
-             VideoFrame::CreateFrame(opaque_format, frame_size,
-                                     gfx::Rect(frame_size), frame_size,
-                                     base::TimeDelta::FromMilliseconds(30)));
+                                     base::Milliseconds(10)));
+  QueueFrame(
+      DecodeStatus::OK,
+      VideoFrame::CreateFrame(opaque_format, frame_size, gfx::Rect(frame_size),
+                              frame_size, base::Milliseconds(20)));
+  QueueFrame(
+      DecodeStatus::OK,
+      VideoFrame::CreateFrame(opaque_format, frame_size, gfx::Rect(frame_size),
+                              frame_size, base::Milliseconds(30)));
 
   EXPECT_CALL(mock_cb_, OnBufferingStateChange(BUFFERING_HAVE_ENOUGH, _));
   EXPECT_CALL(mock_cb_, OnStatisticsUpdate(_)).Times(AnyNumber());
@@ -1167,7 +1166,7 @@
     AdvanceTimeInMs(20);
     AdvanceWallclockTimeInMs(20);
     // This runs the sink callbacks to consume frames.
-    task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(20));
+    task_environment_.FastForwardBy(base::Milliseconds(20));
     base::RunLoop().RunUntilIdle();
   }
 
@@ -1499,10 +1498,10 @@
   // We must provide a |buffer_duration_| for the latencyHint to take effect
   // immediately. The VideoRendererAlgorithm will eventually provide a PTS-delta
   // duration, but not until after we've started rendering.
-  buffer_duration_ = base::TimeDelta::FromMilliseconds(30);
+  buffer_duration_ = base::Milliseconds(30);
 
   // Set latencyHint to a large value.
-  renderer_->SetLatencyHint(base::TimeDelta::FromMilliseconds(400));
+  renderer_->SetLatencyHint(base::Milliseconds(400));
 
   // NOTE: other tests will SetLatencyHint after Initialize(). Either way should
   // work. Initializing later is especially interesting for "high" hints because
@@ -1560,10 +1559,10 @@
   // We must provide a |buffer_duration_| for the latencyHint to take effect
   // immediately. The VideoRendererAlgorithm will eventually provide a PTS-delta
   // duration, but not until after we've started rendering.
-  buffer_duration_ = base::TimeDelta::FromMilliseconds(30);
+  buffer_duration_ = base::Milliseconds(30);
 
   // Set latency hint to a medium value.
-  renderer_->SetLatencyHint(base::TimeDelta::FromMilliseconds(200));
+  renderer_->SetLatencyHint(base::Milliseconds(200));
 
   // Stall the demuxer after 7 frames.
   simulate_demuxer_stall_after_n_reads_ = 7;
@@ -1619,10 +1618,10 @@
   // We must provide a |buffer_duration_| for the latencyHint to take effect
   // immediately. The VideoRendererAlgorithm will eventually provide a PTS-delta
   // duration, but not until after we've started rendering.
-  buffer_duration_ = base::TimeDelta::FromMilliseconds(30);
+  buffer_duration_ = base::Milliseconds(30);
 
   // Set latency hint to a medium value.
-  renderer_->SetLatencyHint(base::TimeDelta::FromMilliseconds(200));
+  renderer_->SetLatencyHint(base::Milliseconds(200));
 
   // Initial frames should trigger various callbacks.
   EXPECT_CALL(mock_cb_, FrameReceived(HasTimestampMatcher(0)));
@@ -1679,11 +1678,11 @@
   // We must provide a |buffer_duration_| for the latencyHint to take effect
   // immediately. The VideoRendererAlgorithm will eventually provide a PTS-delta
   // duration, but not until after we've started rendering.
-  buffer_duration_ = base::TimeDelta::FromMilliseconds(30);
+  buffer_duration_ = base::Milliseconds(30);
 
   // Set latency hint to a medium value. At a spacing of 30ms this would set
   // the HAVE_ENOUGH threshold to 4 frames.
-  renderer_->SetLatencyHint(base::TimeDelta::FromMilliseconds(200));
+  renderer_->SetLatencyHint(base::Milliseconds(200));
 
   // Initial frames should trigger various callbacks.
   EXPECT_CALL(mock_cb_, FrameReceived(HasTimestampMatcher(0)));
diff --git a/media/renderers/video_resource_updater_unittest.cc b/media/renderers/video_resource_updater_unittest.cc
index 32dee8d7e..6e8d7c7 100644
--- a/media/renderers/video_resource_updater_unittest.cc
+++ b/media/renderers/video_resource_updater_unittest.cc
@@ -383,7 +383,7 @@
 TEST_F(VideoResourceUpdaterTest, ReuseResource) {
   std::unique_ptr<VideoResourceUpdater> updater = CreateUpdaterForHardware();
   scoped_refptr<VideoFrame> video_frame = CreateTestYUVVideoFrame();
-  video_frame->set_timestamp(base::TimeDelta::FromSeconds(1234));
+  video_frame->set_timestamp(base::Seconds(1234));
 
   // Allocate the resources for a YUV video frame.
   gl_->ResetUploadCount();
@@ -413,7 +413,7 @@
 TEST_F(VideoResourceUpdaterTest, ReuseResourceNoDelete) {
   std::unique_ptr<VideoResourceUpdater> updater = CreateUpdaterForHardware();
   scoped_refptr<VideoFrame> video_frame = CreateTestYUVVideoFrame();
-  video_frame->set_timestamp(base::TimeDelta::FromSeconds(1234));
+  video_frame->set_timestamp(base::Seconds(1234));
 
   // Allocate the resources for a YUV video frame.
   gl_->ResetUploadCount();
@@ -458,7 +458,7 @@
 TEST_F(VideoResourceUpdaterTest, ReuseResourceSoftwareCompositor) {
   std::unique_ptr<VideoResourceUpdater> updater = CreateUpdaterForSoftware();
   scoped_refptr<VideoFrame> video_frame = CreateTestYUVVideoFrame();
-  video_frame->set_timestamp(base::TimeDelta::FromSeconds(1234));
+  video_frame->set_timestamp(base::Seconds(1234));
 
   // Allocate the resources for a software video frame.
   VideoFrameExternalResources resources =
@@ -487,7 +487,7 @@
 TEST_F(VideoResourceUpdaterTest, ReuseResourceNoDeleteSoftwareCompositor) {
   std::unique_ptr<VideoResourceUpdater> updater = CreateUpdaterForSoftware();
   scoped_refptr<VideoFrame> video_frame = CreateTestYUVVideoFrame();
-  video_frame->set_timestamp(base::TimeDelta::FromSeconds(1234));
+  video_frame->set_timestamp(base::Seconds(1234));
 
   // Allocate the resources for a software video frame.
   VideoFrameExternalResources resources =
diff --git a/media/renderers/win/media_foundation_protection_manager.cc b/media/renderers/win/media_foundation_protection_manager.cc
index e19382e..d9c7b08 100644
--- a/media/renderers/win/media_foundation_protection_manager.cc
+++ b/media/renderers/win/media_foundation_protection_manager.cc
@@ -203,7 +203,7 @@
 
   // If EnableContent takes too long, report waiting for key status. Choose a
   // timeout of 500ms to be on the safe side, e.g. on slower machines.
-  const auto kWaitingForKeyTimeOut = base::TimeDelta::FromMilliseconds(500);
+  const auto kWaitingForKeyTimeOut = base::Milliseconds(500);
 
   waiting_for_key_time_out_cb_.Reset(
       base::BindOnce(&MediaFoundationProtectionManager::OnWaitingForKeyTimeOut,
diff --git a/media/renderers/win/media_foundation_renderer.cc b/media/renderers/win/media_foundation_renderer.cc
index 72d1757e..5a7c89a 100644
--- a/media/renderers/win/media_foundation_renderer.cc
+++ b/media/renderers/win/media_foundation_renderer.cc
@@ -541,8 +541,7 @@
 
 void MediaFoundationRenderer::StartSendingStatistics() {
   DVLOG_FUNC(2);
-  const auto kPipelineStatsPollingPeriod =
-      base::TimeDelta::FromMilliseconds(500);
+  const auto kPipelineStatsPollingPeriod = base::Milliseconds(500);
   statistics_timer_.Start(FROM_HERE, kPipelineStatsPollingPeriod, this,
                           &MediaFoundationRenderer::SendStatistics);
 }
@@ -568,7 +567,7 @@
   double current_time = mf_media_engine_->GetCurrentTime();
 // Restore macro definition.
 #define GetCurrentTime() GetTickCount()
-  auto media_time = base::TimeDelta::FromSecondsD(current_time);
+  auto media_time = base::Seconds(current_time);
   DVLOG_FUNC(3) << "media_time=" << media_time;
   return media_time;
 }
diff --git a/media/test/pipeline_integration_fuzzertest.cc b/media/test/pipeline_integration_fuzzertest.cc
index af88e24..75caa34 100644
--- a/media/test/pipeline_integration_fuzzertest.cc
+++ b/media/test/pipeline_integration_fuzzertest.cc
@@ -118,7 +118,7 @@
 
 // Limit the amount of initial (or post-seek) audio silence padding allowed in
 // rendering of fuzzed input.
-constexpr base::TimeDelta kMaxPlayDelay = base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kMaxPlayDelay = base::Seconds(10);
 
 void OnEncryptedMediaInitData(media::PipelineIntegrationTestBase* test,
                               media::EmeInitDataType /* type */,
diff --git a/media/test/pipeline_integration_test.cc b/media/test/pipeline_integration_test.cc
index 18f47ef..7b5fa2dc 100644
--- a/media/test/pipeline_integration_test.cc
+++ b/media/test/pipeline_integration_test.cc
@@ -145,7 +145,7 @@
   base::Time timeline_offset;
   EXPECT_TRUE(base::Time::FromUTCExploded(exploded_time, &timeline_offset));
 
-  timeline_offset += base::TimeDelta::FromMicroseconds(123);
+  timeline_offset += base::Microseconds(123);
 
   return timeline_offset;
 }
@@ -732,7 +732,7 @@
 }
 
 base::TimeDelta TimestampMs(int milliseconds) {
-  return base::TimeDelta::FromMilliseconds(milliseconds);
+  return base::Milliseconds(milliseconds);
 }
 
 TEST_F(PipelineIntegrationTest, WaveLayoutChange) {
@@ -1003,14 +1003,14 @@
   EXPECT_HASH_EQ(kOpusEndTrimmingHash_1, GetAudioHash());
 
   // Seek within the pre-skip section, this should not cause a beep.
-  ASSERT_TRUE(Seek(base::TimeDelta::FromSeconds(1)));
+  ASSERT_TRUE(Seek(base::Seconds(1)));
   Play();
   ASSERT_TRUE(WaitUntilOnEnded());
   EXPECT_HASH_EQ(kOpusEndTrimmingHash_2, GetAudioHash());
 
   // Seek somewhere outside of the pre-skip / end-trim section, demuxer should
   // correctly preroll enough to accurately decode this segment.
-  ASSERT_TRUE(Seek(base::TimeDelta::FromMilliseconds(6360)));
+  ASSERT_TRUE(Seek(base::Milliseconds(6360)));
   Play();
   ASSERT_TRUE(WaitUntilOnEnded());
   EXPECT_HASH_EQ(kOpusEndTrimmingHash_3, GetAudioHash());
@@ -1025,14 +1025,14 @@
   EXPECT_HASH_EQ(kOpusEndTrimmingHash_1, GetAudioHash());
 
   // Seek within the pre-skip section, this should not cause a beep.
-  ASSERT_TRUE(Seek(base::TimeDelta::FromSeconds(1)));
+  ASSERT_TRUE(Seek(base::Seconds(1)));
   Play();
   ASSERT_TRUE(WaitUntilOnEnded());
   EXPECT_HASH_EQ(kOpusEndTrimmingHash_2, GetAudioHash());
 
   // Seek somewhere outside of the pre-skip / end-trim section, demuxer should
   // correctly preroll enough to accurately decode this segment.
-  ASSERT_TRUE(Seek(base::TimeDelta::FromMilliseconds(6360)));
+  ASSERT_TRUE(Seek(base::Milliseconds(6360)));
   Play();
   ASSERT_TRUE(WaitUntilOnEnded());
   EXPECT_HASH_EQ(kOpusEndTrimmingHash_3, GetAudioHash());
@@ -1051,14 +1051,14 @@
   // EXPECT_HASH_EQ(kOpusEndTrimmingHash_1, GetAudioHash());
 
   // Seek within the pre-skip section, this should not cause a beep.
-  ASSERT_TRUE(Seek(base::TimeDelta::FromSeconds(1)));
+  ASSERT_TRUE(Seek(base::Seconds(1)));
   Play();
   ASSERT_TRUE(WaitUntilOnEnded());
   // EXPECT_HASH_EQ(kOpusEndTrimmingHash_2, GetAudioHash());
 
   // Seek somewhere outside of the pre-skip / end-trim section, demuxer should
   // correctly preroll enough to accurately decode this segment.
-  ASSERT_TRUE(Seek(base::TimeDelta::FromMilliseconds(6360)));
+  ASSERT_TRUE(Seek(base::Milliseconds(6360)));
   Play();
   ASSERT_TRUE(WaitUntilOnEnded());
   // EXPECT_HASH_EQ(kOpusEndTrimmingHash_3, GetAudioHash());
@@ -1076,7 +1076,7 @@
   EXPECT_HASH_EQ(kOpusEndTrimmingHash_1, GetAudioHash());
 
   // Seek within the pre-skip section, this should not cause a beep.
-  base::TimeDelta seek_time = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta seek_time = base::Seconds(1);
   source.Seek(seek_time);
   ASSERT_TRUE(Seek(seek_time));
   Play();
@@ -1085,7 +1085,7 @@
 
   // Seek somewhere outside of the pre-skip / end-trim section, demuxer should
   // correctly preroll enough to accurately decode this segment.
-  seek_time = base::TimeDelta::FromMilliseconds(6360);
+  seek_time = base::Milliseconds(6360);
   source.Seek(seek_time);
   ASSERT_TRUE(Seek(seek_time));
   Play();
@@ -1104,7 +1104,7 @@
   // achieve correctness either. Delete this comment and remove the manual
   // SetAppendWindow() if/when https://crbug.com/876544 is fixed.
   source.SetAppendWindow(base::TimeDelta(), base::TimeDelta(),
-                         base::TimeDelta::FromMicroseconds(12720021));
+                         base::Microseconds(12720021));
 
   EXPECT_EQ(PIPELINE_OK,
             StartPipelineWithMediaSource(&source, kHashed, nullptr));
@@ -1116,7 +1116,7 @@
   EXPECT_HASH_EQ(kOpusEndTrimmingHash_1, GetAudioHash());
 
   // Seek within the pre-skip section, this should not cause a beep.
-  base::TimeDelta seek_time = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta seek_time = base::Seconds(1);
   source.Seek(seek_time);
   ASSERT_TRUE(Seek(seek_time));
   Play();
@@ -1125,7 +1125,7 @@
 
   // Seek somewhere outside of the pre-skip / end-trim section, demuxer should
   // correctly preroll enough to accurately decode this segment.
-  seek_time = base::TimeDelta::FromMilliseconds(6360);
+  seek_time = base::Milliseconds(6360);
   source.Seek(seek_time);
   ASSERT_TRUE(Seek(seek_time));
   Play();
@@ -1161,7 +1161,7 @@
 
   // Verify that this file's preroll is not eclipsed by the codec delay so we
   // can detect when preroll is not properly performed.
-  base::TimeDelta codec_delay = base::TimeDelta::FromSecondsD(
+  base::TimeDelta codec_delay = base::Seconds(
       static_cast<double>(config.codec_delay()) / config.samples_per_second());
   ASSERT_GT(config.seek_preroll(), codec_delay);
 
@@ -1170,7 +1170,7 @@
   EXPECT_HASH_EQ(kOpusSmallCodecDelayHash_1, GetAudioHash());
 
   // Seek halfway through the file to invoke seek preroll.
-  ASSERT_TRUE(Seek(base::TimeDelta::FromSecondsD(1.414)));
+  ASSERT_TRUE(Seek(base::Seconds(1.414)));
   Play();
   ASSERT_TRUE(WaitUntilOnEnded());
   EXPECT_HASH_EQ(kOpusSmallCodecDelayHash_2, GetAudioHash());
@@ -1184,7 +1184,7 @@
 
   // Verify that this file's preroll is not eclipsed by the codec delay so we
   // can detect when preroll is not properly performed.
-  base::TimeDelta codec_delay = base::TimeDelta::FromSecondsD(
+  base::TimeDelta codec_delay = base::Seconds(
       static_cast<double>(config.codec_delay()) / config.samples_per_second());
   ASSERT_GT(config.seek_preroll(), codec_delay);
 
@@ -1197,7 +1197,7 @@
   // EXPECT_HASH_EQ(kOpusSmallCodecDelayHash_1, GetAudioHash());
 
   // Seek halfway through the file to invoke seek preroll.
-  ASSERT_TRUE(Seek(base::TimeDelta::FromSecondsD(1.414)));
+  ASSERT_TRUE(Seek(base::Seconds(1.414)));
   Play();
   ASSERT_TRUE(WaitUntilOnEnded());
   // EXPECT_HASH_EQ(kOpusSmallCodecDelayHash_2, GetAudioHash());
@@ -1214,7 +1214,7 @@
 
   // Verify that this file's preroll is not eclipsed by the codec delay so we
   // can detect when preroll is not properly performed.
-  base::TimeDelta codec_delay = base::TimeDelta::FromSecondsD(
+  base::TimeDelta codec_delay = base::Seconds(
       static_cast<double>(config.codec_delay()) / config.samples_per_second());
   ASSERT_GT(config.seek_preroll(), codec_delay);
 
@@ -1223,7 +1223,7 @@
   EXPECT_HASH_EQ(kOpusSmallCodecDelayHash_1, GetAudioHash());
 
   // Seek halfway through the file to invoke seek preroll.
-  base::TimeDelta seek_time = base::TimeDelta::FromSecondsD(1.414);
+  base::TimeDelta seek_time = base::Seconds(1.414);
   source.Seek(seek_time);
   ASSERT_TRUE(Seek(seek_time));
   Play();
@@ -1243,7 +1243,7 @@
   // achieve correctness either. Delete this comment and remove the manual
   // SetAppendWindow() if/when https://crbug.com/876544 is fixed.
   source.SetAppendWindow(base::TimeDelta(), base::TimeDelta(),
-                         base::TimeDelta::FromMicroseconds(2740834));
+                         base::Microseconds(2740834));
 
   EXPECT_EQ(PIPELINE_OK,
             StartPipelineWithMediaSource(&source, kHashed, nullptr));
@@ -1254,7 +1254,7 @@
 
   // Verify that this file's preroll is not eclipsed by the codec delay so we
   // can detect when preroll is not properly performed.
-  base::TimeDelta codec_delay = base::TimeDelta::FromSecondsD(
+  base::TimeDelta codec_delay = base::Seconds(
       static_cast<double>(config.codec_delay()) / config.samples_per_second());
   ASSERT_GT(config.seek_preroll(), codec_delay);
 
@@ -1263,7 +1263,7 @@
   EXPECT_HASH_EQ(kOpusSmallCodecDelayHash_1, GetAudioHash());
 
   // Seek halfway through the file to invoke seek preroll.
-  base::TimeDelta seek_time = base::TimeDelta::FromSecondsD(1.414);
+  base::TimeDelta seek_time = base::Seconds(1.414);
   source.Seek(seek_time);
   ASSERT_TRUE(Seek(seek_time));
   Play();
@@ -1489,8 +1489,8 @@
   EXPECT_CALL(*this, OnVideoNaturalSizeChange(kNewSize)).Times(1);
   scoped_refptr<DecoderBuffer> second_file =
       ReadTestDataFile("bear-av1-640x480.webm");
-  source.AppendAtTime(base::TimeDelta::FromSeconds(kAppendTimeSec),
-                      second_file->data(), second_file->data_size());
+  source.AppendAtTime(base::Seconds(kAppendTimeSec), second_file->data(),
+                      second_file->data_size());
   source.EndOfStream();
 
   Play();
@@ -1517,8 +1517,8 @@
   EXPECT_CALL(*this, OnVideoNaturalSizeChange(kNewSize)).Times(1);
   scoped_refptr<DecoderBuffer> second_file =
       ReadTestDataFile("bear-640x360.webm");
-  source.AppendAtTime(base::TimeDelta::FromSeconds(kAppendTimeSec),
-                      second_file->data(), second_file->data_size());
+  source.AppendAtTime(base::Seconds(kAppendTimeSec), second_file->data(),
+                      second_file->data_size());
   source.EndOfStream();
 
   Play();
@@ -1551,7 +1551,7 @@
 
   scoped_refptr<DecoderBuffer> second_file =
       ReadTestDataFile("bear-320x240-audio-only-48khz.webm");
-  ASSERT_TRUE(source.AppendAtTime(base::TimeDelta::FromSeconds(kAppendTimeSec),
+  ASSERT_TRUE(source.AppendAtTime(base::Seconds(kAppendTimeSec),
                                   second_file->data(),
                                   second_file->data_size()));
   source.EndOfStream();
@@ -1576,8 +1576,8 @@
   EXPECT_EQ(0, buffered_ranges.start(0).InMilliseconds());
   EXPECT_EQ(k320WebMFileDurationMs, buffered_ranges.end(0).InMilliseconds());
 
-  source.RemoveRange(base::TimeDelta::FromMilliseconds(1000),
-                     base::TimeDelta::FromMilliseconds(k320WebMFileDurationMs));
+  source.RemoveRange(base::Milliseconds(1000),
+                     base::Milliseconds(k320WebMFileDurationMs));
   task_environment_.RunUntilIdle();
 
   buffered_ranges = pipeline_->GetBufferedTimeRanges();
@@ -1617,7 +1617,7 @@
 
     buffered_ranges = pipeline_->GetBufferedTimeRanges();
   } while (buffered_ranges.size() == 1 &&
-           buffered_ranges.start(0) == base::TimeDelta::FromSeconds(0));
+           buffered_ranges.start(0) == base::Seconds(0));
 
   EXPECT_EQ(1u, buffered_ranges.size());
   source.Shutdown();
@@ -1642,7 +1642,7 @@
 
   // Wait until audio playback advances past 2 seconds and call MSE GC algorithm
   // to prepare for more data to be appended.
-  base::TimeDelta media_time = base::TimeDelta::FromSeconds(2);
+  base::TimeDelta media_time = base::Seconds(2);
   ASSERT_TRUE(WaitUntilCurrentTimeIsAfter(media_time));
   // At this point the video SourceBuffer is over the memory limit (see the
   // SetMemoryLimits comment above), but MSE GC should be able to remove some
@@ -1669,8 +1669,8 @@
   scoped_refptr<DecoderBuffer> second_file =
       ReadTestDataFile("bear-640x360-av_enc-av.webm");
 
-  source.AppendAtTime(base::TimeDelta::FromSeconds(kAppendTimeSec),
-                      second_file->data(), second_file->data_size());
+  source.AppendAtTime(base::Seconds(kAppendTimeSec), second_file->data(),
+                      second_file->data_size());
   source.EndOfStream();
 
   Play();
@@ -1699,8 +1699,8 @@
   scoped_refptr<DecoderBuffer> second_file =
       ReadTestDataFile("bear-640x360-av_enc-av.webm");
 
-  source.AppendAtTime(base::TimeDelta::FromSeconds(kAppendTimeSec),
-                      second_file->data(), second_file->data_size());
+  source.AppendAtTime(base::Seconds(kAppendTimeSec), second_file->data(),
+                      second_file->data_size());
   source.EndOfStream();
 
   Play();
@@ -1732,8 +1732,8 @@
   scoped_refptr<DecoderBuffer> second_file =
       ReadTestDataFile("bear-640x360.webm");
 
-  source.AppendAtTime(base::TimeDelta::FromSeconds(kAppendTimeSec),
-                      second_file->data(), second_file->data_size());
+  source.AppendAtTime(base::Seconds(kAppendTimeSec), second_file->data(),
+                      second_file->data_size());
   source.EndOfStream();
 
   Play();
@@ -1967,8 +1967,7 @@
 
   // There are 576 silent frames at the start of this mp3.  The second append
   // should trim them off.
-  const base::TimeDelta mp3_preroll_duration =
-      base::TimeDelta::FromSecondsD(576.0 / 44100);
+  const base::TimeDelta mp3_preroll_duration = base::Seconds(576.0 / 44100);
   const base::TimeDelta append_time =
       source.last_timestamp_offset() - mp3_preroll_duration;
 
@@ -2026,7 +2025,7 @@
   // Trim off multiple frames off the beginning of the segment which will cause
   // the first decoded frame to be incorrect if preroll isn't implemented.
   const base::TimeDelta adts_preroll_duration =
-      base::TimeDelta::FromSecondsD(2.5 * 1024 / 44100);
+      base::Seconds(2.5 * 1024 / 44100);
   const base::TimeDelta append_time =
       source.last_timestamp_offset() - adts_preroll_duration;
 
@@ -2116,8 +2115,8 @@
   EXPECT_CALL(*this, OnVideoNaturalSizeChange(kNewSize)).Times(1);
   scoped_refptr<DecoderBuffer> second_file =
       ReadTestDataFile("bear-1280x720-av_frag.mp4");
-  source.AppendAtTime(base::TimeDelta::FromSeconds(kAppendTimeSec),
-                      second_file->data(), second_file->data_size());
+  source.AppendAtTime(base::Seconds(kAppendTimeSec), second_file->data(),
+                      second_file->data_size());
   source.EndOfStream();
 
   Play();
@@ -2145,8 +2144,8 @@
   EXPECT_CALL(*this, OnVideoNaturalSizeChange(kNewSize)).Times(1);
   scoped_refptr<DecoderBuffer> second_file =
       ReadTestDataFile("bear-1280x720-v_frag-cenc.mp4");
-  source.AppendAtTime(base::TimeDelta::FromSeconds(kAppendTimeSec),
-                      second_file->data(), second_file->data_size());
+  source.AppendAtTime(base::Seconds(kAppendTimeSec), second_file->data(),
+                      second_file->data_size());
   source.EndOfStream();
 
   Play();
@@ -2172,8 +2171,8 @@
   EXPECT_CALL(*this, OnVideoNaturalSizeChange(gfx::Size(1280, 720))).Times(1);
   scoped_refptr<DecoderBuffer> second_file =
       ReadTestDataFile("bear-1280x720-v_frag-cenc-key_rotation.mp4");
-  source.AppendAtTime(base::TimeDelta::FromSeconds(kAppendTimeSec),
-                      second_file->data(), second_file->data_size());
+  source.AppendAtTime(base::Seconds(kAppendTimeSec), second_file->data(),
+                      second_file->data_size());
   source.EndOfStream();
 
   Play();
@@ -2199,8 +2198,8 @@
       ReadTestDataFile("bear-1280x720-v_frag-cenc.mp4");
   source.set_expected_append_result(
       TestMediaSource::ExpectedAppendResult::kFailure);
-  source.AppendAtTime(base::TimeDelta::FromSeconds(kAppendTimeSec),
-                      second_file->data(), second_file->data_size());
+  source.AppendAtTime(base::Seconds(kAppendTimeSec), second_file->data(),
+                      second_file->data_size());
 
   source.EndOfStream();
 
@@ -2227,8 +2226,8 @@
 
   source.set_expected_append_result(
       TestMediaSource::ExpectedAppendResult::kFailure);
-  source.AppendAtTime(base::TimeDelta::FromSeconds(kAppendTimeSec),
-                      second_file->data(), second_file->data_size());
+  source.AppendAtTime(base::Seconds(kAppendTimeSec), second_file->data(),
+                      second_file->data_size());
 
   source.EndOfStream();
 
@@ -2748,17 +2747,15 @@
 // Verify audio decoder & renderer can handle aborted demuxer reads.
 TEST_F(PipelineIntegrationTest, MSE_ChunkDemuxerAbortRead_AudioOnly) {
   ASSERT_TRUE(TestSeekDuringRead("bear-320x240-audio-only.webm", 16384,
-                                 base::TimeDelta::FromMilliseconds(464),
-                                 base::TimeDelta::FromMilliseconds(617), 0x10CA,
-                                 19730));
+                                 base::Milliseconds(464),
+                                 base::Milliseconds(617), 0x10CA, 19730));
 }
 
 // Verify video decoder & renderer can handle aborted demuxer reads.
 TEST_F(PipelineIntegrationTest, MSE_ChunkDemuxerAbortRead_VideoOnly) {
   ASSERT_TRUE(TestSeekDuringRead("bear-320x240-video-only.webm", 32768,
-                                 base::TimeDelta::FromMilliseconds(167),
-                                 base::TimeDelta::FromMilliseconds(1668),
-                                 0x1C896, 65536));
+                                 base::Milliseconds(167),
+                                 base::Milliseconds(1668), 0x1C896, 65536));
 }
 
 TEST_F(PipelineIntegrationTest,
@@ -2956,8 +2953,7 @@
   ASSERT_EQ(PIPELINE_OK, Start("nonzero-start-time.webm"));
   Play();
   ASSERT_TRUE(WaitUntilOnEnded());
-  ASSERT_EQ(base::TimeDelta::FromMicroseconds(396000),
-            demuxer_->GetStartTime());
+  ASSERT_EQ(base::Microseconds(396000), demuxer_->GetStartTime());
 }
 
 }  // namespace media
diff --git a/media/test/pipeline_integration_test_base.cc b/media/test/pipeline_integration_test_base.cc
index fe502ba3..21d4909 100644
--- a/media/test/pipeline_integration_test_base.cc
+++ b/media/test/pipeline_integration_test_base.cc
@@ -424,7 +424,7 @@
       base::BindOnce(&PipelineIntegrationTestBase::QuitAfterCurrentTimeTask,
                      base::Unretained(this), quit_time,
                      std::move(quit_closure)),
-      base::TimeDelta::FromMilliseconds(10));
+      base::Milliseconds(10));
 }
 
 bool PipelineIntegrationTestBase::WaitUntilCurrentTimeIsAfter(
@@ -438,7 +438,7 @@
       FROM_HERE,
       base::BindOnce(&PipelineIntegrationTestBase::QuitAfterCurrentTimeTask,
                      base::Unretained(this), wait_time, run_loop.QuitClosure()),
-      base::TimeDelta::FromMilliseconds(10));
+      base::Milliseconds(10));
 
   RunUntilQuitOrEndedOrError(&run_loop);
 
@@ -479,7 +479,7 @@
 
   // Simulate a 60Hz rendering sink.
   video_sink_ = std::make_unique<NullVideoSink>(
-      clockless_playback_, base::TimeDelta::FromSecondsD(1.0 / 60),
+      clockless_playback_, base::Seconds(1.0 / 60),
       base::BindRepeating(&PipelineIntegrationTestBase::OnVideoFramePaint,
                           base::Unretained(this)),
       task_environment_.GetMainThreadTaskRunner());
diff --git a/media/video/gpu_memory_buffer_video_frame_pool.cc b/media/video/gpu_memory_buffer_video_frame_pool.cc
index 97327c8e..774ef975 100644
--- a/media/video/gpu_memory_buffer_video_frame_pool.cc
+++ b/media/video/gpu_memory_buffer_video_frame_pool.cc
@@ -1334,8 +1334,7 @@
   while (it != resources_pool_.end()) {
     FrameResources* resources = *it;
 
-    constexpr base::TimeDelta kStaleFrameLimit =
-        base::TimeDelta::FromSeconds(10);
+    constexpr base::TimeDelta kStaleFrameLimit = base::Seconds(10);
     if (!resources->is_used() &&
         now - resources->last_use_time() > kStaleFrameLimit) {
       resources_pool_.erase(it++);
diff --git a/media/video/gpu_memory_buffer_video_frame_pool_unittest.cc b/media/video/gpu_memory_buffer_video_frame_pool_unittest.cc
index 134d7f06..d94cd64b 100644
--- a/media/video/gpu_memory_buffer_video_frame_pool_unittest.cc
+++ b/media/video/gpu_memory_buffer_video_frame_pool_unittest.cc
@@ -29,7 +29,7 @@
   void SetUp() override {
     // Seed test clock with some dummy non-zero value to avoid confusion with
     // empty base::TimeTicks values.
-    test_clock_.Advance(base::TimeDelta::FromSeconds(1234));
+    test_clock_.Advance(base::Seconds(1234));
 
     sii_ = std::make_unique<viz::TestSharedImageInterface>();
     media_task_runner_ = base::MakeRefCounted<base::TestSimpleTaskRunner>();
@@ -491,7 +491,7 @@
   scoped_refptr<VideoFrame> software_frame = CreateTestYUVVideoFrame(10);
   software_frame->metadata().end_of_stream = true;
   base::TimeTicks kTestReferenceTime =
-      base::TimeDelta::FromMilliseconds(12345) + base::TimeTicks();
+      base::Milliseconds(12345) + base::TimeTicks();
   software_frame->metadata().reference_time = kTestReferenceTime;
   scoped_refptr<VideoFrame> frame;
   gpu_memory_buffer_pool_->MaybeCreateHardwareFrame(
@@ -596,7 +596,7 @@
 
   // Advance clock far enough to hit stale timer; ensure only frame_1 has its
   // resources released.
-  test_clock_.Advance(base::TimeDelta::FromMinutes(1));
+  test_clock_.Advance(base::Minutes(1));
   frame_2 = nullptr;
   RunUntilIdle();
   EXPECT_EQ(3u, sii_->shared_image_count());
diff --git a/media/video/software_video_encoder_test.cc b/media/video/software_video_encoder_test.cc
index beeb070..6684399 100644
--- a/media/video/software_video_encoder_test.cc
+++ b/media/video/software_video_encoder_test.cc
@@ -271,7 +271,7 @@
   int frames = 10;
   VideoEncoder::Options options;
   options.frame_size = gfx::Size(640, 480);
-  auto frame_duration = base::TimeDelta::FromSecondsD(1.0 / 60);
+  auto frame_duration = base::Seconds(1.0 / 60);
 
   VideoEncoder::OutputCB output_cb = base::BindLambdaForTesting(
       [&](VideoEncoderOutput output,
@@ -299,7 +299,7 @@
   int outputs_count = 0;
   VideoEncoder::Options options;
   options.frame_size = gfx::Size(640, 480);
-  auto sec = base::TimeDelta::FromSeconds(1);
+  auto sec = base::Seconds(1);
 
   VideoEncoder::OutputCB output_cb = base::BindLambdaForTesting(
       [&](VideoEncoderOutput output,
@@ -333,8 +333,7 @@
       options.framerate.value() * 10;  // total duration 20s
   int outputs_count = 0;
 
-  auto frame_duration =
-      base::TimeDelta::FromSecondsD(1.0 / options.framerate.value());
+  auto frame_duration = base::Seconds(1.0 / options.framerate.value());
 
   VideoEncoder::OutputCB output_cb = base::BindLambdaForTesting(
       [&](VideoEncoderOutput output,
@@ -377,8 +376,7 @@
   int total_frames_count =
       options.framerate.value() * 10;  // total duration 10s
 
-  auto frame_duration =
-      base::TimeDelta::FromSecondsD(1.0 / options.framerate.value());
+  auto frame_duration = base::Seconds(1.0 / options.framerate.value());
 
   VideoEncoder::OutputCB encoder_output_cb = base::BindLambdaForTesting(
       [&, this](VideoEncoderOutput output,
@@ -442,8 +440,7 @@
   size_t total_frames_count = 80;
 
   // Encoder all frames with 3 temporal layers and put all outputs in |chunks|
-  auto frame_duration =
-      base::TimeDelta::FromSecondsD(1.0 / options.framerate.value());
+  auto frame_duration = base::Seconds(1.0 / options.framerate.value());
 
   VideoEncoder::OutputCB encoder_output_cb = base::BindLambdaForTesting(
       [&](VideoEncoderOutput output,
@@ -524,7 +521,7 @@
   int outputs_count = 0;
   VideoEncoder::Options options;
   options.frame_size = gfx::Size(640, 480);
-  auto sec = base::TimeDelta::FromSeconds(1);
+  auto sec = base::Seconds(1);
 
   VideoEncoder::OutputCB output_cb = base::BindLambdaForTesting(
       [&](VideoEncoderOutput output,
@@ -569,7 +566,7 @@
   VideoEncoder::Options options;
   options.frame_size = gfx::Size(640, 480);
   options.avc.produce_annexb = true;
-  auto sec = base::TimeDelta::FromSeconds(1);
+  auto sec = base::Seconds(1);
 
   VideoEncoder::OutputCB output_cb = base::BindLambdaForTesting(
       [&](VideoEncoderOutput output,
@@ -621,8 +618,7 @@
   std::vector<scoped_refptr<VideoFrame>> decoded_frames;
   std::vector<ChunkWithConfig> chunks;
   size_t total_frames_count = 30;
-  auto frame_duration =
-      base::TimeDelta::FromSecondsD(1.0 / options.framerate.value());
+  auto frame_duration = base::Seconds(1.0 / options.framerate.value());
 
   VideoEncoder::OutputCB encoder_output_cb = base::BindLambdaForTesting(
       [&](VideoEncoderOutput output,
diff --git a/media/video/video_encode_accelerator_adapter_test.cc b/media/video/video_encode_accelerator_adapter_test.cc
index c4f0fb58..e4e578b 100644
--- a/media/video/video_encode_accelerator_adapter_test.cc
+++ b/media/video/video_encode_accelerator_adapter_test.cc
@@ -207,8 +207,8 @@
   adapter()->Initialize(profile_, options, std::move(output_cb),
                         ValidatingStatusCB());
 
-  auto frame = CreateGreenFrame(options.frame_size, pixel_format,
-                                base::TimeDelta::FromMilliseconds(1));
+  auto frame =
+      CreateGreenFrame(options.frame_size, pixel_format, base::Milliseconds(1));
   adapter()->Encode(frame, true, ValidatingStatusCB());
   RunUntilIdle();
   EXPECT_EQ(outputs_count, 1);
@@ -223,9 +223,9 @@
   VideoEncoder::OutputCB output_cb = base::BindLambdaForTesting(
       [&](VideoEncoderOutput output,
           absl::optional<VideoEncoder::CodecDescription>) {
-        if (output.timestamp == base::TimeDelta::FromMilliseconds(1))
+        if (output.timestamp == base::Milliseconds(1))
           EXPECT_EQ(output.temporal_id, 1);
-        else if (output.timestamp == base::TimeDelta::FromMilliseconds(2))
+        else if (output.timestamp == base::Milliseconds(2))
           EXPECT_EQ(output.temporal_id, 1);
         else
           EXPECT_EQ(output.temporal_id, 2);
@@ -235,10 +235,10 @@
   vea()->SetEncodingCallback(base::BindLambdaForTesting(
       [&](BitstreamBuffer&, bool keyframe, scoped_refptr<VideoFrame> frame) {
         BitstreamBufferMetadata result(1, keyframe, frame->timestamp());
-        if (frame->timestamp() == base::TimeDelta::FromMilliseconds(1)) {
+        if (frame->timestamp() == base::Milliseconds(1)) {
           result.h264 = H264Metadata();
           result.h264->temporal_idx = 1;
-        } else if (frame->timestamp() == base::TimeDelta::FromMilliseconds(2)) {
+        } else if (frame->timestamp() == base::Milliseconds(2)) {
           result.vp8 = Vp8Metadata();
           result.vp8->temporal_idx = 1;
         } else {
@@ -250,12 +250,12 @@
   adapter()->Initialize(profile_, options, std::move(output_cb),
                         ValidatingStatusCB());
 
-  auto frame1 = CreateGreenFrame(options.frame_size, pixel_format,
-                                 base::TimeDelta::FromMilliseconds(1));
-  auto frame2 = CreateGreenFrame(options.frame_size, pixel_format,
-                                 base::TimeDelta::FromMilliseconds(2));
-  auto frame3 = CreateGreenFrame(options.frame_size, pixel_format,
-                                 base::TimeDelta::FromMilliseconds(3));
+  auto frame1 =
+      CreateGreenFrame(options.frame_size, pixel_format, base::Milliseconds(1));
+  auto frame2 =
+      CreateGreenFrame(options.frame_size, pixel_format, base::Milliseconds(2));
+  auto frame3 =
+      CreateGreenFrame(options.frame_size, pixel_format, base::Milliseconds(3));
   adapter()->Encode(frame1, true, ValidatingStatusCB());
   RunUntilIdle();
   adapter()->Encode(frame2, true, ValidatingStatusCB());
@@ -285,8 +285,8 @@
   adapter()->Initialize(profile_, options, std::move(output_cb),
                         ValidatingStatusCB());
 
-  auto frame = CreateGreenFrame(options.frame_size, pixel_format,
-                                base::TimeDelta::FromMilliseconds(1));
+  auto frame =
+      CreateGreenFrame(options.frame_size, pixel_format, base::Milliseconds(1));
   adapter()->Encode(frame, true, ValidatingStatusCB());
   adapter()->Flush(base::BindLambdaForTesting([&](Status s) {
     EXPECT_TRUE(s.is_ok());
@@ -316,8 +316,8 @@
   adapter()->Initialize(VIDEO_CODEC_PROFILE_UNKNOWN, options,
                         std::move(output_cb), ValidatingStatusCB());
 
-  auto frame = CreateGreenFrame(options.frame_size, pixel_format,
-                                base::TimeDelta::FromMilliseconds(1));
+  auto frame =
+      CreateGreenFrame(options.frame_size, pixel_format, base::Milliseconds(1));
   adapter()->Encode(frame, true, std::move(expect_error_done_cb));
   RunUntilIdle();
   EXPECT_EQ(outputs_count, 0);
@@ -350,10 +350,10 @@
   adapter()->Initialize(profile_, options, std::move(output_cb),
                         ValidatingStatusCB());
 
-  auto small_frame = CreateGreenFrame(small_size, pixel_format,
-                                      base::TimeDelta::FromMilliseconds(1));
-  auto large_frame = CreateGreenFrame(large_size, pixel_format,
-                                      base::TimeDelta::FromMilliseconds(2));
+  auto small_frame =
+      CreateGreenFrame(small_size, pixel_format, base::Milliseconds(1));
+  auto large_frame =
+      CreateGreenFrame(large_size, pixel_format, base::Milliseconds(2));
   adapter()->Encode(small_frame, true, ValidatingStatusCB());
   adapter()->Encode(large_frame, false, ValidatingStatusCB());
   RunUntilIdle();
@@ -380,10 +380,10 @@
   adapter()->Initialize(profile_, options, std::move(output_cb),
                         ValidatingStatusCB());
 
-  auto frame1 = CreateGreenFrame(small_size, pixel_format,
-                                 base::TimeDelta::FromMilliseconds(1));
-  auto frame2 = CreateGreenFrame(small_size, pixel_format,
-                                 base::TimeDelta::FromMilliseconds(2));
+  auto frame1 =
+      CreateGreenFrame(small_size, pixel_format, base::Milliseconds(1));
+  auto frame2 =
+      CreateGreenFrame(small_size, pixel_format, base::Milliseconds(2));
   adapter()->Encode(frame1, true, ValidatingStatusCB());
   adapter()->Encode(frame2, false, ValidatingStatusCB());
   RunUntilIdle();
@@ -437,8 +437,8 @@
     else if (rem < 8)
       format = PIXEL_FORMAT_NV12;
     bool key = frame_index % 9 == 0;
-    auto frame = CreateGreenFrame(
-        size, format, base::TimeDelta::FromMilliseconds(frame_index));
+    auto frame =
+        CreateGreenFrame(size, format, base::Milliseconds(frame_index));
     adapter()->Encode(frame, key, ValidatingStatusCB());
   }
 
diff --git a/media/video/video_encoder_fallback_test.cc b/media/video/video_encoder_fallback_test.cc
index c2a33be..29c14a74 100644
--- a/media/video/video_encoder_fallback_test.cc
+++ b/media/video/video_encoder_fallback_test.cc
@@ -119,7 +119,7 @@
   for (int i = 0; i < kFrameCount; i++) {
     auto frame = VideoFrame::CreateFrame(PIXEL_FORMAT_I420, kFrameSize,
                                          gfx::Rect(kFrameSize), kFrameSize,
-                                         base::TimeDelta::FromSeconds(i));
+                                         base::Seconds(i));
     fallback_encoder_->Encode(frame, true, ValidatingStatusCB());
   }
   RunLoop();
@@ -177,7 +177,7 @@
   for (int i = 0; i < kFrameCount; i++) {
     auto frame = VideoFrame::CreateFrame(PIXEL_FORMAT_I420, kFrameSize,
                                          gfx::Rect(kFrameSize), kFrameSize,
-                                         base::TimeDelta::FromSeconds(i));
+                                         base::Seconds(i));
     fallback_encoder_->Encode(frame, true, ValidatingStatusCB());
   }
   RunLoop();
@@ -218,7 +218,7 @@
         RunStatusCallbackAync(std::move(done_cb));
       }));
 
-  auto encoder_switch_time = base::TimeDelta::FromSeconds(kFrameCount / 2);
+  auto encoder_switch_time = base::Seconds(kFrameCount / 2);
 
   // Start failing encodes after half of the frames.
   EXPECT_CALL(*main_video_encoder_, Encode(_, _, _))
@@ -259,7 +259,7 @@
   for (int i = 0; i < kFrameCount; i++) {
     auto frame = VideoFrame::CreateFrame(PIXEL_FORMAT_I420, kFrameSize,
                                          gfx::Rect(kFrameSize), kFrameSize,
-                                         base::TimeDelta::FromSeconds(i));
+                                         base::Seconds(i));
     fallback_encoder_->Encode(frame, true, ValidatingStatusCB());
   }
   RunLoop();
diff --git a/media/video/vpx_video_encoder.cc b/media/video/vpx_video_encoder.cc
index f9400b3..af76a3f8 100644
--- a/media/video/vpx_video_encoder.cc
+++ b/media/video/vpx_video_encoder.cc
@@ -594,12 +594,12 @@
 
   // Options have framerate specified, use it.
   if (options_.framerate.has_value())
-    return base::TimeDelta::FromSecondsD(1.0 / options_.framerate.value());
+    return base::Seconds(1.0 / options_.framerate.value());
 
   // No real way to figure out duration, use time passed since the last frame
   // as an educated guess, but clamp it within a reasonable limits.
-  constexpr auto min_duration = base::TimeDelta::FromSecondsD(1.0 / 60.0);
-  constexpr auto max_duration = base::TimeDelta::FromSecondsD(1.0 / 24.0);
+  constexpr auto min_duration = base::Seconds(1.0 / 60.0);
+  constexpr auto max_duration = base::Seconds(1.0 / 24.0);
   auto duration = frame.timestamp() - last_frame_timestamp_;
   return base::clamp(duration, min_duration, max_duration);
 }
diff --git a/media/webrtc/audio_delay_stats_reporter.cc b/media/webrtc/audio_delay_stats_reporter.cc
index 6d9b93cb..a807275 100644
--- a/media/webrtc/audio_delay_stats_reporter.cc
+++ b/media/webrtc/audio_delay_stats_reporter.cc
@@ -35,8 +35,8 @@
 
 AudioDelayStatsReporter::AudioDelayStatsReporter(int variance_window_size)
     : variance_window_size_(variance_window_size),
-      delay_histogram_min_(base::TimeDelta::FromMilliseconds(1)),
-      delay_histogram_max_(base::TimeDelta::FromMilliseconds(500)) {
+      delay_histogram_min_(base::Milliseconds(1)),
+      delay_histogram_max_(base::Milliseconds(500)) {
   DCHECK_GT(variance_window_size_, 1);
   capture_delays_ms_.reserve(variance_window_size_);
   render_delays_ms_.reserve(variance_window_size_);
diff --git a/mojo/core/core_unittest.cc b/mojo/core/core_unittest.cc
index 546aba0..b6b52df 100644
--- a/mojo/core/core_unittest.cc
+++ b/mojo/core/core_unittest.cc
@@ -35,7 +35,7 @@
   const MojoTimeTicks start = core()->GetTimeTicksNow();
   ASSERT_NE(static_cast<MojoTimeTicks>(0), start)
       << "GetTimeTicksNow should return nonzero value";
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(15));
+  base::PlatformThread::Sleep(base::Milliseconds(15));
   const MojoTimeTicks finish = core()->GetTimeTicksNow();
   // Allow for some fuzz in sleep.
   ASSERT_GE((finish - start), static_cast<MojoTimeTicks>(8000))
diff --git a/mojo/core/data_pipe_unittest.cc b/mojo/core/data_pipe_unittest.cc
index adbcffe..4308c0d 100644
--- a/mojo/core/data_pipe_unittest.cc
+++ b/mojo/core/data_pipe_unittest.cc
@@ -63,7 +63,7 @@
 #else
   const int64_t deadline = (tiny_timeout * 2) / 10;
 #endif
-  return base::TimeDelta::FromMicroseconds(deadline);
+  return base::Microseconds(deadline);
 }
 
 // TODO(rockot): There are many uses of ASSERT where EXPECT would be more
diff --git a/mojo/core/trap_unittest.cc b/mojo/core/trap_unittest.cc
index a2abcef..4d755622 100644
--- a/mojo/core/trap_unittest.cc
+++ b/mojo/core/trap_unittest.cc
@@ -1375,7 +1375,7 @@
         // Give the other thread sufficient time to race with the completion
         // of this callback. There should be no race, since the cancellation
         // notification must be mutually exclusive to this notification.
-        base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(1));
+        base::PlatformThread::Sleep(base::Seconds(1));
 
         callback_done = true;
       },
diff --git a/mojo/public/cpp/base/time_mojom_traits.cc b/mojo/public/cpp/base/time_mojom_traits.cc
index 1fc25d8..164bec8 100644
--- a/mojo/public/cpp/base/time_mojom_traits.cc
+++ b/mojo/public/cpp/base/time_mojom_traits.cc
@@ -14,8 +14,7 @@
 bool StructTraits<mojo_base::mojom::TimeDataView, base::Time>::Read(
     mojo_base::mojom::TimeDataView data,
     base::Time* time) {
-  *time =
-      base::Time() + base::TimeDelta::FromMicroseconds(data.internal_value());
+  *time = base::Time() + base::Microseconds(data.internal_value());
   return true;
 }
 
@@ -28,7 +27,7 @@
 bool StructTraits<mojo_base::mojom::TimeDeltaDataView, base::TimeDelta>::Read(
     mojo_base::mojom::TimeDeltaDataView data,
     base::TimeDelta* delta) {
-  *delta = base::TimeDelta::FromMicroseconds(data.microseconds());
+  *delta = base::Microseconds(data.microseconds());
   return true;
 }
 
@@ -41,8 +40,7 @@
 bool StructTraits<mojo_base::mojom::TimeTicksDataView, base::TimeTicks>::Read(
     mojo_base::mojom::TimeTicksDataView data,
     base::TimeTicks* time) {
-  *time = base::TimeTicks() +
-          base::TimeDelta::FromMicroseconds(data.internal_value());
+  *time = base::TimeTicks() + base::Microseconds(data.internal_value());
   return true;
 }
 
diff --git a/mojo/public/cpp/base/time_unittest.cc b/mojo/public/cpp/base/time_unittest.cc
index fd1d230c..f2ba5e8c 100644
--- a/mojo/public/cpp/base/time_unittest.cc
+++ b/mojo/public/cpp/base/time_unittest.cc
@@ -19,7 +19,7 @@
 }
 
 TEST(TimeTest, TimeDelta) {
-  base::TimeDelta in = base::TimeDelta::FromDays(123);
+  base::TimeDelta in = base::Days(123);
   base::TimeDelta out;
 
   ASSERT_TRUE(mojo::test::SerializeAndDeserialize<mojom::TimeDelta>(in, out));
diff --git a/mojo/public/cpp/bindings/lib/control_message_handler.cc b/mojo/public/cpp/bindings/lib/control_message_handler.cc
index 3cbf6007..36e7b380 100644
--- a/mojo/public/cpp/bindings/lib/control_message_handler.cc
+++ b/mojo/public/cpp/bindings/lib/control_message_handler.cc
@@ -140,7 +140,7 @@
   if (input.is_require_version())
     return interface_version_ >= input.get_require_version()->version;
   if (input.is_enable_idle_tracking()) {
-    return owner_->AcceptEnableIdleTracking(base::TimeDelta::FromMicroseconds(
+    return owner_->AcceptEnableIdleTracking(base::Microseconds(
         input.get_enable_idle_tracking()->timeout_in_microseconds));
   }
   if (input.is_message_ack())
diff --git a/mojo/public/cpp/bindings/lib/message_quota_checker.h b/mojo/public/cpp/bindings/lib/message_quota_checker.h
index 40cb6c0..61e9aea 100644
--- a/mojo/public/cpp/bindings/lib/message_quota_checker.h
+++ b/mojo/public/cpp/bindings/lib/message_quota_checker.h
@@ -56,8 +56,7 @@
     double GetDecayedRateAverage(base::TimeTicks when) const;
 
     // The length of a sampling interval in seconds.
-    static constexpr base::TimeDelta kSamplingInterval =
-        base::TimeDelta::FromSeconds(5);
+    static constexpr base::TimeDelta kSamplingInterval = base::Seconds(5);
 
     // Returns the start of the sampling interval after the interval that
     // |when| falls into.
diff --git a/mojo/public/cpp/bindings/lib/test_random_mojo_delays.cc b/mojo/public/cpp/bindings/lib/test_random_mojo_delays.cc
index 55afb41..9d75fa290 100644
--- a/mojo/public/cpp/bindings/lib/test_random_mojo_delays.cc
+++ b/mojo/public/cpp/bindings/lib/test_random_mojo_delays.cc
@@ -25,10 +25,8 @@
 namespace {
 constexpr int kInverseProbabilityOfDelay = 8;
 constexpr int kInverseProbabilityOfNotResuming = 10;
-constexpr base::TimeDelta kMillisecondsToResume =
-    base::TimeDelta::FromMilliseconds(2);
-constexpr base::TimeDelta kPauseBindingsFrequency =
-    base::TimeDelta::FromMilliseconds(7);
+constexpr base::TimeDelta kMillisecondsToResume = base::Milliseconds(2);
+constexpr base::TimeDelta kPauseBindingsFrequency = base::Milliseconds(7);
 }  // namespace
 
 // TODO(mpdenton) This only adds random delays on method call processing. This
diff --git a/mojo/public/cpp/bindings/tests/idle_tracking_unittest.cc b/mojo/public/cpp/bindings/tests/idle_tracking_unittest.cc
index 823f4624..74f0110 100644
--- a/mojo/public/cpp/bindings/tests/idle_tracking_unittest.cc
+++ b/mojo/public/cpp/bindings/tests/idle_tracking_unittest.cc
@@ -192,7 +192,7 @@
   Remote<mojom::TestService> remote;
   TestServiceImpl impl(remote.BindNewPipeAndPassReceiver());
 
-  constexpr auto kTimeout = base::TimeDelta::FromMilliseconds(500);
+  constexpr auto kTimeout = base::Milliseconds(500);
   base::ElapsedTimer timer;
   base::RunLoop loop;
   remote.set_idle_handler(kTimeout, base::BindLambdaForTesting([&] {
diff --git a/mojo/public/cpp/bindings/tests/sync_method_unittest.cc b/mojo/public/cpp/bindings/tests/sync_method_unittest.cc
index 429dd35e..cab1f3e 100644
--- a/mojo/public/cpp/bindings/tests/sync_method_unittest.cc
+++ b/mojo/public/cpp/bindings/tests/sync_method_unittest.cc
@@ -1337,7 +1337,7 @@
     pong_sender_.AsyncCall(&PongSender::SendPong).WithArgs(barrier);
     same_pipe_pong_sender_.AsyncCall(&PongSender::SendPong).WithArgs(barrier);
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-        FROM_HERE, barrier, base::TimeDelta::FromMilliseconds(10));
+        FROM_HERE, barrier, base::Milliseconds(10));
     wait_to_reply.Run();
   }
 
diff --git a/mojo/public/cpp/system/README.md b/mojo/public/cpp/system/README.md
index 20e73df..9a77597 100644
--- a/mojo/public/cpp/system/README.md
+++ b/mojo/public/cpp/system/README.md
@@ -369,7 +369,7 @@
 
 // Ensure the Wait() lasts no more than 5 seconds.
 bg_thread->task_runner()->PostDelayedTask(FROM_HERE, base::BindOnce([](base::WaitableEvent* e) { e->Signal(); }, &timeout_event);
-    base::TimeDelta::FromSeconds(5));
+    base::Seconds(5));
 
 base::WaitableEvent* ready_event = nullptr;
 size_t num_ready_handles = 1;
diff --git a/mojo/public/cpp/system/tests/wait_set_unittest.cc b/mojo/public/cpp/system/tests/wait_set_unittest.cc
index 6d1e487..4bcab5a 100644
--- a/mojo/public/cpp/system/tests/wait_set_unittest.cc
+++ b/mojo/public/cpp/system/tests/wait_set_unittest.cc
@@ -167,7 +167,7 @@
   ThreadedRunner close_after_delay(base::BindOnce(
       [](ScopedMessagePipeHandle* handle) {
         // Wait a little while, then close the handle.
-        base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(200));
+        base::PlatformThread::Sleep(base::Milliseconds(200));
         handle->reset();
       },
       &p.handle0));
@@ -244,7 +244,7 @@
   ThreadedRunner write_after_delay(base::BindOnce(
       [](ScopedMessagePipeHandle* handle) {
         // Wait a little while, then write a message.
-        base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(200));
+        base::PlatformThread::Sleep(base::Milliseconds(200));
         WriteMessage(*handle, "wakey wakey");
       },
       &p.handle1));
@@ -300,7 +300,7 @@
   ThreadedRunner signal_after_delay(base::BindOnce(
       [](base::WaitableEvent* event) {
         // Wait a little while, then close the handle.
-        base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(200));
+        base::PlatformThread::Sleep(base::Milliseconds(200));
         event->Signal();
       },
       &event));
diff --git a/mojo/public/cpp/system/tests/wait_unittest.cc b/mojo/public/cpp/system/tests/wait_unittest.cc
index 8c11846..8c7c07ca 100644
--- a/mojo/public/cpp/system/tests/wait_unittest.cc
+++ b/mojo/public/cpp/system/tests/wait_unittest.cc
@@ -130,7 +130,7 @@
   ThreadedRunner write_after_delay(base::BindOnce(
       [](ScopedMessagePipeHandle* handle) {
         // Wait a little while, then write a message.
-        base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(200));
+        base::PlatformThread::Sleep(base::Milliseconds(200));
         WriteMessage(*handle, "wakey wakey");
       },
       &p.handle0));
@@ -150,7 +150,7 @@
   ThreadedRunner close_after_delay(base::BindOnce(
       [](ScopedMessagePipeHandle* handle) {
         // Wait a little while, then close the handle.
-        base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(200));
+        base::PlatformThread::Sleep(base::Milliseconds(200));
         handle->reset();
       },
       &p.handle0));
@@ -168,7 +168,7 @@
   MessagePipe p;
   ThreadedRunner close_after_delay(base::BindOnce(
       [](ScopedMessagePipeHandle* handle) {
-        base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(200));
+        base::PlatformThread::Sleep(base::Milliseconds(200));
         handle->reset();
       },
       &p.handle0));
@@ -238,7 +238,7 @@
 
   ThreadedRunner close_after_delay(base::BindOnce(
       [](ScopedMessagePipeHandle* handle) {
-        base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(200));
+        base::PlatformThread::Sleep(base::Milliseconds(200));
         handle->reset();
       },
       &p.handle1));
@@ -256,7 +256,7 @@
   ThreadedRunner write_after_delay(base::BindOnce(
       [](ScopedMessagePipeHandle* handle) {
         // Wait a little while, then write a message.
-        base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(200));
+        base::PlatformThread::Sleep(base::Milliseconds(200));
         WriteMessage(*handle, "wakey wakey");
       },
       &p.handle0));
@@ -283,7 +283,7 @@
   ThreadedRunner close_after_delay(base::BindOnce(
       [](ScopedMessagePipeHandle* handle) {
         // Wait a little while, then close the handle.
-        base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(200));
+        base::PlatformThread::Sleep(base::Milliseconds(200));
         handle->reset();
       },
       &p.handle0));
diff --git a/mojo/public/java/system/base_run_loop.cc b/mojo/public/java/system/base_run_loop.cc
index aa625cfa..8f0d6252 100644
--- a/mojo/public/java/system/base_run_loop.cc
+++ b/mojo/public/java/system/base_run_loop.cc
@@ -61,7 +61,7 @@
       ->task_runner()
       ->PostDelayedTask(FROM_HERE,
                         base::BindOnce(&RunJavaRunnable, runnable_ref),
-                        base::TimeDelta::FromMicroseconds(delay));
+                        base::Microseconds(delay));
 }
 
 static void JNI_BaseRunLoop_DeleteMessageLoop(
diff --git a/mojo/public/java/system/javatests/mojo_test_rule.cc b/mojo/public/java/system/javatests/mojo_test_rule.cc
index 77498ed..e439007 100644
--- a/mojo/public/java/system/javatests/mojo_test_rule.cc
+++ b/mojo/public/java/system/javatests/mojo_test_rule.cc
@@ -60,7 +60,7 @@
   if (timeout_ms) {
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
         FROM_HERE, run_loop.QuitWhenIdleClosure(),
-        base::TimeDelta::FromMilliseconds(timeout_ms));
+        base::Milliseconds(timeout_ms));
     run_loop.Run();
   } else {
     run_loop.RunUntilIdle();
diff --git a/net/android/network_change_notifier_android.cc b/net/android/network_change_notifier_android.cc
index 4c0e70e..68c5188 100644
--- a/net/android/network_change_notifier_android.cc
+++ b/net/android/network_change_notifier_android.cc
@@ -238,10 +238,10 @@
   // IPAddressChanged is produced immediately prior to ConnectionTypeChanged
   // so delay IPAddressChanged so they get merged with the following
   // ConnectionTypeChanged signal.
-  params.ip_address_offline_delay_ = base::TimeDelta::FromSeconds(1);
-  params.ip_address_online_delay_ = base::TimeDelta::FromSeconds(1);
-  params.connection_type_offline_delay_ = base::TimeDelta::FromSeconds(0);
-  params.connection_type_online_delay_ = base::TimeDelta::FromSeconds(0);
+  params.ip_address_offline_delay_ = base::Seconds(1);
+  params.ip_address_online_delay_ = base::Seconds(1);
+  params.connection_type_offline_delay_ = base::Seconds(0);
+  params.connection_type_online_delay_ = base::Seconds(0);
   return params;
 }
 
diff --git a/net/base/address_tracker_linux_unittest.cc b/net/base/address_tracker_linux_unittest.cc
index 9d85388..c5f0898 100644
--- a/net/base/address_tracker_linux_unittest.cc
+++ b/net/base/address_tracker_linux_unittest.cc
@@ -728,7 +728,7 @@
   }
 
   void VerifyCompletes() {
-    EXPECT_TRUE(done_.TimedWait(base::TimeDelta::FromSeconds(5)));
+    EXPECT_TRUE(done_.TimedWait(base::Seconds(5)));
     thread_.Join();
   }
 
diff --git a/net/base/backoff_entry.cc b/net/base/backoff_entry.cc
index 59da340..400a405 100644
--- a/net/base/backoff_entry.cc
+++ b/net/base/backoff_entry.cc
@@ -56,7 +56,7 @@
     // failures.
     base::TimeDelta delay;
     if (policy_->always_use_initial_delay)
-      delay = base::TimeDelta::FromMilliseconds(policy_->initial_delay_ms);
+      delay = base::Milliseconds(policy_->initial_delay_ms);
     exponential_backoff_release_time_ = std::max(
         GetTimeTicksNow() + delay, exponential_backoff_release_time_);
   }
@@ -181,7 +181,7 @@
                                      maximum_release_time_us.ValueOrDefault(
                                          std::numeric_limits<int64_t>::max()));
 
-  return base::TimeTicks() + base::TimeDelta::FromMicroseconds(release_time_us);
+  return base::TimeTicks() + base::Microseconds(release_time_us);
 }
 
 }  // namespace net
diff --git a/net/base/backoff_entry_serializer.cc b/net/base/backoff_entry_serializer.cc
index a99cd0f..3c975580 100644
--- a/net/base/backoff_entry_serializer.cc
+++ b/net/base/backoff_entry_serializer.cc
@@ -28,7 +28,7 @@
 // latest version.
 bool BackoffDurationSafeToSerialize(const base::TimeDelta& duration) {
   return !duration.is_inf() &&
-         !base::TimeDelta::FromMicroseconds(duration.InMicroseconds()).is_inf();
+         !base::Microseconds(duration.InMicroseconds()).is_inf();
 }
 }  // namespace
 
@@ -105,7 +105,7 @@
         return nullptr;
       double original_backoff_duration_double = list_view[2].GetDouble();
       original_backoff_duration =
-          base::TimeDelta::FromSecondsD(original_backoff_duration_double);
+          base::Seconds(original_backoff_duration_double);
       break;
     }
     case kVersion2: {
@@ -118,7 +118,7 @@
         return nullptr;
       }
       original_backoff_duration =
-          base::TimeDelta::FromMicroseconds(original_backoff_duration_us);
+          base::Microseconds(original_backoff_duration_us);
       break;
     }
     default:
diff --git a/net/base/backoff_entry_serializer_fuzzer.cc b/net/base/backoff_entry_serializer_fuzzer.cc
index 0ec77af2..04a3d1f 100644
--- a/net/base/backoff_entry_serializer_fuzzer.cc
+++ b/net/base/backoff_entry_serializer_fuzzer.cc
@@ -35,20 +35,16 @@
     return PolicyFromProto(input_.policy());
   }
   base::Time parse_time() const {
-    return base::Time() +
-           base::TimeDelta::FromMicroseconds(input_.parse_time());
+    return base::Time() + base::Microseconds(input_.parse_time());
   }
   base::TimeTicks parse_time_ticks() const {
-    return base::TimeTicks() +
-           base::TimeDelta::FromMicroseconds(input_.parse_time());
+    return base::TimeTicks() + base::Microseconds(input_.parse_time());
   }
   base::Time serialize_time() const {
-    return base::Time() +
-           base::TimeDelta::FromMicroseconds(input_.serialize_time());
+    return base::Time() + base::Microseconds(input_.serialize_time());
   }
   base::TimeTicks now_ticks() const {
-    return base::TimeTicks() +
-           base::TimeDelta::FromMicroseconds(input_.now_ticks());
+    return base::TimeTicks() + base::Microseconds(input_.now_ticks());
   }
   absl::optional<base::Value> serialized_entry() const {
     json_proto::JsonProtoConverter converter;
diff --git a/net/base/backoff_entry_serializer_unittest.cc b/net/base/backoff_entry_serializer_unittest.cc
index 625489d..edc64dc7 100644
--- a/net/base/backoff_entry_serializer_unittest.cc
+++ b/net/base/backoff_entry_serializer_unittest.cc
@@ -64,14 +64,14 @@
   TestCase test_cases[] = {
       // Non-overflowing subtraction works as expected.
       {
-          .release_time = kZeroTicks + base::TimeDelta::FromMicroseconds(100),
-          .timeticks_now = kZeroTicks + base::TimeDelta::FromMicroseconds(75),
-          .expected_backoff_duration = base::TimeDelta::FromMicroseconds(25),
+          .release_time = kZeroTicks + base::Microseconds(100),
+          .timeticks_now = kZeroTicks + base::Microseconds(75),
+          .expected_backoff_duration = base::Microseconds(25),
       },
       {
-          .release_time = kZeroTicks + base::TimeDelta::FromMicroseconds(25),
-          .timeticks_now = kZeroTicks + base::TimeDelta::FromMicroseconds(100),
-          .expected_backoff_duration = base::TimeDelta::FromMicroseconds(-75),
+          .release_time = kZeroTicks + base::Microseconds(25),
+          .timeticks_now = kZeroTicks + base::Microseconds(100),
+          .expected_backoff_duration = base::Microseconds(-75),
       },
       // Defaults to zero when one of the operands is +/- infinity.
       {
@@ -118,9 +118,8 @@
       // Defaults to zero when the subtraction overflows, even when neither
       // operand is infinity.
       {
-          .release_time =
-              base::TimeTicks::Max() - base::TimeDelta::FromMicroseconds(1),
-          .timeticks_now = kZeroTicks + base::TimeDelta::FromMicroseconds(-1),
+          .release_time = base::TimeTicks::Max() - base::Microseconds(1),
+          .timeticks_now = kZeroTicks + base::Microseconds(-1),
           .expected_backoff_duration = base::TimeDelta(),
       },
   };
@@ -147,7 +146,7 @@
                                     &serialized_backoff_duration_us));
 
     base::TimeDelta serialized_backoff_duration =
-        base::TimeDelta::FromMicroseconds(serialized_backoff_duration_us);
+        base::Microseconds(serialized_backoff_duration_us);
     EXPECT_EQ(serialized_backoff_duration, test_case.expected_backoff_duration);
   }
 }
diff --git a/net/base/elements_upload_data_stream_unittest.cc b/net/base/elements_upload_data_stream_unittest.cc
index 3e2f716..95b64462 100644
--- a/net/base/elements_upload_data_stream_unittest.cc
+++ b/net/base/elements_upload_data_stream_unittest.cc
@@ -583,8 +583,7 @@
   FileChangedHelper(temp_file_path, file_info.last_modified, false);
 
   // Test file changed.
-  FileChangedHelper(temp_file_path,
-                    file_info.last_modified - base::TimeDelta::FromSeconds(1),
+  FileChangedHelper(temp_file_path, file_info.last_modified - base::Seconds(1),
                     true);
 }
 
diff --git a/net/base/expiring_cache.h b/net/base/expiring_cache.h
index c64c768..95d5fb2 100644
--- a/net/base/expiring_cache.h
+++ b/net/base/expiring_cache.h
@@ -48,10 +48,10 @@
 //                 std::less<base::TimeTicks> > cache(0);
 //   // Add a value that expires in 5 minutes
 //   cache.Put("key1", "value1", base::TimeTicks::Now(),
-//             base::TimeTicks::Now() + base::TimeDelta::FromMinutes(5));
+//             base::TimeTicks::Now() + base::Minutes(5));
 //   // Add another value that expires in 10 minutes.
 //   cache.Put("key2", "value2", base::TimeTicks::Now(),
-//             base::TimeTicks::Now() + base::TimeDelta::FromMinutes(10));
+//             base::TimeTicks::Now() + base::Minutes(10));
 //
 // Alternatively, there may be some more complex expiration criteria, at which
 // point a custom functor may be used:
diff --git a/net/base/expiring_cache_unittest.cc b/net/base/expiring_cache_unittest.cc
index 536b954..640ddc23 100644
--- a/net/base/expiring_cache_unittest.cc
+++ b/net/base/expiring_cache_unittest.cc
@@ -34,7 +34,7 @@
 }  // namespace
 
 TEST(ExpiringCacheTest, Basic) {
-  const base::TimeDelta kTTL = base::TimeDelta::FromSeconds(10);
+  const base::TimeDelta kTTL = base::Seconds(10);
 
   Cache cache(kMaxCacheEntries);
 
@@ -49,7 +49,7 @@
   EXPECT_EQ(1U, cache.size());
 
   // Advance to t=5.
-  now += base::TimeDelta::FromSeconds(5);
+  now += base::Seconds(5);
 
   // Add an entry at t=5.
   EXPECT_FALSE(cache.Get("entry2", now));
@@ -58,14 +58,14 @@
   EXPECT_EQ(2U, cache.size());
 
   // Advance to t=9.
-  now += base::TimeDelta::FromSeconds(4);
+  now += base::Seconds(4);
 
   // Verify that the entries added are still retrievable and usable.
   EXPECT_THAT(cache.Get("entry1", now), Pointee(StrEq("test1")));
   EXPECT_THAT(cache.Get("entry2", now), Pointee(StrEq("test2")));
 
   // Advance to t=10; entry1 is now expired.
-  now += base::TimeDelta::FromSeconds(1);
+  now += base::Seconds(1);
 
   EXPECT_FALSE(cache.Get("entry1", now));
   EXPECT_THAT(cache.Get("entry2", now), Pointee(StrEq("test2")));
@@ -82,14 +82,14 @@
   EXPECT_THAT(cache.Get("entry2", now), Pointee(StrEq("test2")));
 
   // Advance to t=20; both entries are now expired.
-  now += base::TimeDelta::FromSeconds(10);
+  now += base::Seconds(10);
 
   EXPECT_FALSE(cache.Get("entry1", now));
   EXPECT_FALSE(cache.Get("entry2", now));
 }
 
 TEST(ExpiringCacheTest, Compact) {
-  const base::TimeDelta kTTL = base::TimeDelta::FromSeconds(10);
+  const base::TimeDelta kTTL = base::Seconds(10);
 
   Cache cache(kMaxCacheEntries);
 
@@ -156,7 +156,7 @@
 
 // Add entries while the cache is at capacity, causing evictions.
 TEST(ExpiringCacheTest, SetWithCompact) {
-  const base::TimeDelta kTTL = base::TimeDelta::FromSeconds(10);
+  const base::TimeDelta kTTL = base::Seconds(10);
 
   Cache cache(3);
 
@@ -193,7 +193,7 @@
 }
 
 TEST(ExpiringCacheTest, Clear) {
-  const base::TimeDelta kTTL = base::TimeDelta::FromSeconds(10);
+  const base::TimeDelta kTTL = base::Seconds(10);
 
   Cache cache(kMaxCacheEntries);
 
@@ -213,7 +213,7 @@
 }
 
 TEST(ExpiringCacheTest, GetTruncatesExpiredEntries) {
-  const base::TimeDelta kTTL = base::TimeDelta::FromSeconds(10);
+  const base::TimeDelta kTTL = base::Seconds(10);
 
   Cache cache(kMaxCacheEntries);
 
diff --git a/net/base/features.cc b/net/base/features.cc
index 2701fee79..549f376 100644
--- a/net/base/features.cc
+++ b/net/base/features.cc
@@ -32,7 +32,7 @@
 
 const base::FeatureParam<base::TimeDelta> kDnsMinTransactionTimeout{
     &kDnsTransactionDynamicTimeouts, "DnsMinTransactionTimeout",
-    base::TimeDelta::FromSeconds(12)};
+    base::Seconds(12)};
 
 const base::Feature kDnsHttpssvc{"DnsHttpssvc",
                                  base::FEATURE_DISABLED_BY_DEFAULT};
@@ -64,7 +64,7 @@
 namespace dns_httpssvc_experiment {
 base::TimeDelta GetExtraTimeAbsolute() {
   DCHECK(base::FeatureList::IsEnabled(features::kDnsHttpssvc));
-  return base::TimeDelta::FromMilliseconds(kDnsHttpssvcExtraTimeMs.Get());
+  return base::Milliseconds(kDnsHttpssvcExtraTimeMs.Get());
 }
 }  // namespace dns_httpssvc_experiment
 
@@ -227,12 +227,12 @@
 extern const base::FeatureParam<base::TimeDelta> kTimeoutTcpConnectAttemptMin(
     &kTimeoutTcpConnectAttempt,
     "TimeoutTcpConnectAttemptMin",
-    base::TimeDelta::FromSeconds(8));
+    base::Seconds(8));
 
 extern const base::FeatureParam<base::TimeDelta> kTimeoutTcpConnectAttemptMax(
     &kTimeoutTcpConnectAttempt,
     "TimeoutTcpConnectAttemptMax",
-    base::TimeDelta::FromSeconds(30));
+    base::Seconds(30));
 
 constexpr base::Feature kFirstPartySets{"FirstPartySets",
                                         base::FEATURE_DISABLED_BY_DEFAULT};
diff --git a/net/base/interval_test.cc b/net/base/interval_test.cc
index 25ff71a..c24350da 100644
--- a/net/base/interval_test.cc
+++ b/net/base/interval_test.cc
@@ -244,15 +244,14 @@
   const Interval<int> empty1;
   const Interval<int> empty2(1, 1);
   const Interval<int> empty3(1, 0);
-  const Interval<base::TimeDelta> empty4(
-      base::TimeDelta() + base::TimeDelta::FromSeconds(1), base::TimeDelta());
+  const Interval<base::TimeDelta> empty4(base::TimeDelta() + base::Seconds(1),
+                                         base::TimeDelta());
   const Interval<int> d1(1, 2);
   const Interval<int> d2(0, 50);
-  const Interval<base::TimeDelta> d3(
-      base::TimeDelta(), base::TimeDelta() + base::TimeDelta::FromSeconds(1));
-  const Interval<base::TimeDelta> d4(
-      base::TimeDelta() + base::TimeDelta::FromHours(1),
-      base::TimeDelta() + base::TimeDelta::FromMinutes(90));
+  const Interval<base::TimeDelta> d3(base::TimeDelta(),
+                                     base::TimeDelta() + base::Seconds(1));
+  const Interval<base::TimeDelta> d4(base::TimeDelta() + base::Hours(1),
+                                     base::TimeDelta() + base::Minutes(90));
 
   EXPECT_EQ(0, empty1.Length());
   EXPECT_EQ(0, empty2.Length());
@@ -260,8 +259,8 @@
   EXPECT_EQ(base::TimeDelta(), empty4.Length());
   EXPECT_EQ(1, d1.Length());
   EXPECT_EQ(50, d2.Length());
-  EXPECT_EQ(base::TimeDelta::FromSeconds(1), d3.Length());
-  EXPECT_EQ(base::TimeDelta::FromMinutes(30), d4.Length());
+  EXPECT_EQ(base::Seconds(1), d3.Length());
+  EXPECT_EQ(base::Minutes(30), d4.Length());
 }
 
 TEST_F(IntervalTest, IntervalOfTypeWithNoOperatorMinus) {
diff --git a/net/base/network_change_notifier_linux.cc b/net/base/network_change_notifier_linux.cc
index cf30c4b2e..f60c8be 100644
--- a/net/base/network_change_notifier_linux.cc
+++ b/net/base/network_change_notifier_linux.cc
@@ -115,11 +115,10 @@
   NetworkChangeCalculatorParams params;
   // Delay values arrived at by simple experimentation and adjusted so as to
   // produce a single signal when switching between network connections.
-  params.ip_address_offline_delay_ = base::TimeDelta::FromMilliseconds(2000);
-  params.ip_address_online_delay_ = base::TimeDelta::FromMilliseconds(2000);
-  params.connection_type_offline_delay_ =
-      base::TimeDelta::FromMilliseconds(1500);
-  params.connection_type_online_delay_ = base::TimeDelta::FromMilliseconds(500);
+  params.ip_address_offline_delay_ = base::Milliseconds(2000);
+  params.ip_address_online_delay_ = base::Milliseconds(2000);
+  params.connection_type_offline_delay_ = base::Milliseconds(1500);
+  params.connection_type_online_delay_ = base::Milliseconds(500);
   return params;
 }
 
diff --git a/net/base/network_change_notifier_mac.mm b/net/base/network_change_notifier_mac.mm
index 70b13f4..2bfc5b28 100644
--- a/net/base/network_change_notifier_mac.mm
+++ b/net/base/network_change_notifier_mac.mm
@@ -65,11 +65,10 @@
   NetworkChangeCalculatorParams params;
   // Delay values arrived at by simple experimentation and adjusted so as to
   // produce a single signal when switching between network connections.
-  params.ip_address_offline_delay_ = base::TimeDelta::FromMilliseconds(500);
-  params.ip_address_online_delay_ = base::TimeDelta::FromMilliseconds(500);
-  params.connection_type_offline_delay_ =
-      base::TimeDelta::FromMilliseconds(1000);
-  params.connection_type_online_delay_ = base::TimeDelta::FromMilliseconds(500);
+  params.ip_address_offline_delay_ = base::Milliseconds(500);
+  params.ip_address_online_delay_ = base::Milliseconds(500);
+  params.connection_type_offline_delay_ = base::Milliseconds(1000);
+  params.connection_type_online_delay_ = base::Milliseconds(500);
   return params;
 }
 
@@ -93,7 +92,7 @@
   // called repeatedly until either the timeout is reached or the connection
   // type has been determined.
   base::TimeDelta remaining_time =
-      base::TimeDelta::FromSecondsD(kMaxWaitForConnectionTypeInSeconds);
+      base::Seconds(kMaxWaitForConnectionTypeInSeconds);
   base::TimeTicks end_time = base::TimeTicks::Now() + remaining_time;
   while (remaining_time > base::TimeDelta()) {
     initial_connection_type_cv_.TimedWait(remaining_time);
diff --git a/net/base/network_change_notifier_posix.cc b/net/base/network_change_notifier_posix.cc
index 45328dc..5d4eac8 100644
--- a/net/base/network_change_notifier_posix.cc
+++ b/net/base/network_change_notifier_posix.cc
@@ -96,11 +96,10 @@
 #if BUILDFLAG(IS_CHROMEOS_ASH)
   // Delay values arrived at by simple experimentation and adjusted so as to
   // produce a single signal when switching between network connections.
-  params.ip_address_offline_delay_ = base::TimeDelta::FromMilliseconds(4000);
-  params.ip_address_online_delay_ = base::TimeDelta::FromMilliseconds(1000);
-  params.connection_type_offline_delay_ =
-      base::TimeDelta::FromMilliseconds(500);
-  params.connection_type_online_delay_ = base::TimeDelta::FromMilliseconds(500);
+  params.ip_address_offline_delay_ = base::Milliseconds(4000);
+  params.ip_address_online_delay_ = base::Milliseconds(1000);
+  params.connection_type_offline_delay_ = base::Milliseconds(500);
+  params.connection_type_online_delay_ = base::Milliseconds(500);
 #elif defined(OS_ANDROID)
   params =
       net::NetworkChangeNotifierAndroid::NetworkChangeCalculatorParamsAndroid();
diff --git a/net/base/network_change_notifier_win.cc b/net/base/network_change_notifier_win.cc
index 22c3f7e..08ade63 100644
--- a/net/base/network_change_notifier_win.cc
+++ b/net/base/network_change_notifier_win.cc
@@ -151,11 +151,10 @@
   NetworkChangeCalculatorParams params;
   // Delay values arrived at by simple experimentation and adjusted so as to
   // produce a single signal when switching between network connections.
-  params.ip_address_offline_delay_ = base::TimeDelta::FromMilliseconds(1500);
-  params.ip_address_online_delay_ = base::TimeDelta::FromMilliseconds(1500);
-  params.connection_type_offline_delay_ =
-      base::TimeDelta::FromMilliseconds(1500);
-  params.connection_type_online_delay_ = base::TimeDelta::FromMilliseconds(500);
+  params.ip_address_offline_delay_ = base::Milliseconds(1500);
+  params.ip_address_online_delay_ = base::Milliseconds(1500);
+  params.connection_type_offline_delay_ = base::Milliseconds(1500);
+  params.connection_type_online_delay_ = base::Milliseconds(500);
   return params;
 }
 
@@ -434,7 +433,7 @@
   // If after one second we determine we are still offline, we will
   // delay again.
   offline_polls_ = 0;
-  timer_.Start(FROM_HERE, base::TimeDelta::FromSeconds(1), this,
+  timer_.Start(FROM_HERE, base::Seconds(1), this,
                &NetworkChangeNotifierWin::NotifyParentOfConnectionTypeChange);
 }
 
@@ -452,8 +451,7 @@
         FROM_HERE,
         base::BindOnce(&NetworkChangeNotifierWin::WatchForAddressChange,
                        weak_factory_.GetWeakPtr()),
-        base::TimeDelta::FromMilliseconds(
-            kWatchForAddressChangeRetryIntervalMs));
+        base::Milliseconds(kWatchForAddressChangeRetryIntervalMs));
     return;
   }
 
@@ -499,7 +497,7 @@
   // we may not detect the transition to online state after 1 second but within
   // 20 seconds we generally do.
   if (last_announced_offline_ && current_offline && offline_polls_ <= 20) {
-    timer_.Start(FROM_HERE, base::TimeDelta::FromSeconds(1), this,
+    timer_.Start(FROM_HERE, base::Seconds(1), this,
                  &NetworkChangeNotifierWin::NotifyParentOfConnectionTypeChange);
     return;
   }
diff --git a/net/base/network_config_watcher_mac.cc b/net/base/network_config_watcher_mac.cc
index 8502020..b4e7f478 100644
--- a/net/base/network_config_watcher_mac.cc
+++ b/net/base/network_config_watcher_mac.cc
@@ -23,7 +23,7 @@
 
 // SCDynamicStore API does not exist on iOS.
 #if !defined(OS_IOS)
-const base::TimeDelta kRetryInterval = base::TimeDelta::FromSeconds(1);
+const base::TimeDelta kRetryInterval = base::Seconds(1);
 const int kMaxRetry = 5;
 
 // Maps SCError to an enum for UMA logging. These values are persisted to logs,
@@ -168,7 +168,7 @@
 
   // TODO(willchan): Look to see if there's a better signal for when it's ok to
   // initialize this, rather than just delaying it by a fixed time.
-  const base::TimeDelta kInitializationDelay = base::TimeDelta::FromSeconds(1);
+  const base::TimeDelta kInitializationDelay = base::Seconds(1);
   task_runner()->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&NetworkConfigWatcherMacThread::InitNotifications,
diff --git a/net/base/upload_file_element_reader_unittest.cc b/net/base/upload_file_element_reader_unittest.cc
index 1a75d59..15c6a7e7 100644
--- a/net/base/upload_file_element_reader_unittest.cc
+++ b/net/base/upload_file_element_reader_unittest.cc
@@ -296,7 +296,7 @@
 
   // Expect one second before the actual modification time to simulate change.
   const base::Time expected_modification_time =
-      info.last_modified - base::TimeDelta::FromSeconds(1);
+      info.last_modified - base::Seconds(1);
   reader_ = CreateReader(0, std::numeric_limits<uint64_t>::max(),
                          expected_modification_time);
   TestCompletionCallback init_callback;
@@ -309,7 +309,7 @@
   ASSERT_TRUE(base::GetFileInfo(temp_file_path_, &info));
 
   const base::Time expected_modification_time =
-      info.last_modified - base::TimeDelta::FromMilliseconds(900);
+      info.last_modified - base::Milliseconds(900);
   reader_ = CreateReader(0, std::numeric_limits<uint64_t>::max(),
                          expected_modification_time);
   TestCompletionCallback init_callback;
diff --git a/net/cert/caching_cert_verifier.cc b/net/cert/caching_cert_verifier.cc
index b03ed53..ee2ec1d9 100644
--- a/net/cert/caching_cert_verifier.cc
+++ b/net/cert/caching_cert_verifier.cc
@@ -170,8 +170,7 @@
   cached_result.result = verify_result;
   cache_.Put(
       params, cached_result, CacheValidityPeriod(start_time),
-      CacheValidityPeriod(start_time,
-                          start_time + base::TimeDelta::FromSeconds(kTTLSecs)));
+      CacheValidityPeriod(start_time, start_time + base::Seconds(kTTLSecs)));
 }
 
 void CachingCertVerifier::OnCertDBChanged() {
diff --git a/net/cert/cert_verify_proc.cc b/net/cert/cert_verify_proc.cc
index 1175e4b..a64586d 100644
--- a/net/cert/cert_verify_proc.cc
+++ b/net/cert/cert_verify_proc.cc
@@ -203,14 +203,14 @@
   // Certificates issued on/after 2017-12-01 00:00:00 UTC are no longer
   // trusted.
   const base::Time kSymantecDeprecationDate =
-      base::Time::UnixEpoch() + base::TimeDelta::FromSeconds(1512086400);
+      base::Time::UnixEpoch() + base::Seconds(1512086400);
   if (start >= kSymantecDeprecationDate)
     return true;
 
   // Certificates issued prior to 2016-06-01 00:00:00 UTC are no longer
   // trusted.
   const base::Time kFirstAcceptedCertDate =
-      base::Time::UnixEpoch() + base::TimeDelta::FromSeconds(1464739200);
+      base::Time::UnixEpoch() + base::Seconds(1464739200);
   if (start < kFirstAcceptedCertDate)
     return true;
 
@@ -895,29 +895,27 @@
   // These dates are derived from the transitions noted in Section 1.2.2
   // (Relevant Dates) of the Baseline Requirements.
   const base::Time time_2012_07_01 =
-      base::Time::UnixEpoch() + base::TimeDelta::FromSeconds(1341100800);
+      base::Time::UnixEpoch() + base::Seconds(1341100800);
   const base::Time time_2015_04_01 =
-      base::Time::UnixEpoch() + base::TimeDelta::FromSeconds(1427846400);
+      base::Time::UnixEpoch() + base::Seconds(1427846400);
   const base::Time time_2018_03_01 =
-      base::Time::UnixEpoch() + base::TimeDelta::FromSeconds(1519862400);
+      base::Time::UnixEpoch() + base::Seconds(1519862400);
   const base::Time time_2019_07_01 =
-      base::Time::UnixEpoch() + base::TimeDelta::FromSeconds(1561939200);
+      base::Time::UnixEpoch() + base::Seconds(1561939200);
   // From Chrome Root Certificate Policy
   const base::Time time_2020_09_01 =
-      base::Time::UnixEpoch() + base::TimeDelta::FromSeconds(1598918400);
+      base::Time::UnixEpoch() + base::Seconds(1598918400);
 
   // Compute the maximally permissive interpretations, accounting for leap
   // years.
   // 10 years - two possible leap years.
-  constexpr base::TimeDelta kTenYears =
-      base::TimeDelta::FromDays((365 * 8) + (366 * 2));
+  constexpr base::TimeDelta kTenYears = base::Days((365 * 8) + (366 * 2));
   // 5 years - two possible leap years (year 0/year 4 or year 1/year 5).
-  constexpr base::TimeDelta kSixtyMonths =
-      base::TimeDelta::FromDays((365 * 3) + (366 * 2));
+  constexpr base::TimeDelta kSixtyMonths = base::Days((365 * 3) + (366 * 2));
   // 39 months - one possible leap year, two at 365 days, and the longest
   // monthly sequence of 31/31/30 days (June/July/August).
   constexpr base::TimeDelta kThirtyNineMonths =
-      base::TimeDelta::FromDays(366 + 365 + 365 + 31 + 31 + 30);
+      base::Days(366 + 365 + 365 + 31 + 31 + 30);
 
   base::TimeDelta validity_duration = cert.valid_expiry() - cert.valid_start();
 
@@ -937,14 +935,12 @@
     return true;
 
   // For certificates issued on-or-after 1 March 2018: 825 days.
-  if (start >= time_2018_03_01 &&
-      validity_duration > base::TimeDelta::FromDays(825)) {
+  if (start >= time_2018_03_01 && validity_duration > base::Days(825)) {
     return true;
   }
 
   // For certificates issued on-or-after 1 September 2020: 398 days.
-  if (start >= time_2020_09_01 &&
-      validity_duration > base::TimeDelta::FromDays(398)) {
+  if (start >= time_2020_09_01 && validity_duration > base::Days(398)) {
     return true;
   }
 
diff --git a/net/cert/cert_verify_proc_builtin.cc b/net/cert/cert_verify_proc_builtin.cc
index 948b774..c37b9a5 100644
--- a/net/cert/cert_verify_proc_builtin.cc
+++ b/net/cert/cert_verify_proc_builtin.cc
@@ -45,11 +45,10 @@
 // TODO(https://crbug.com/634470): Make this smaller.
 constexpr uint32_t kPathBuilderIterationLimit = 25000;
 
-constexpr base::TimeDelta kMaxVerificationTime =
-    base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kMaxVerificationTime = base::Seconds(60);
 
 constexpr base::TimeDelta kPerAttemptMinVerificationTimeLimit =
-    base::TimeDelta::FromSeconds(5);
+    base::Seconds(5);
 
 DEFINE_CERT_ERROR_ID(kPathLacksEVPolicy, "Path does not have an EV policy");
 
diff --git a/net/cert/cert_verify_proc_builtin_unittest.cc b/net/cert/cert_verify_proc_builtin_unittest.cc
index 1861eb95..cb1e228 100644
--- a/net/cert/cert_verify_proc_builtin_unittest.cc
+++ b/net/cert/cert_verify_proc_builtin_unittest.cc
@@ -122,8 +122,8 @@
     ASSERT_TRUE(*out_leaf && *out_intermediate && *out_root);
     // This test uses MOCK_TIME, so need to set the cert validity dates based
     // on whatever the mock time happens to start at.
-    base::Time not_before = base::Time::Now() - base::TimeDelta::FromDays(1);
-    base::Time not_after = base::Time::Now() + base::TimeDelta::FromDays(10);
+    base::Time not_before = base::Time::Now() - base::Days(1);
+    base::Time not_after = base::Time::Now() + base::Days(10);
     (*out_leaf)->SetValidity(not_before, not_after);
     (*out_intermediate)->SetValidity(not_before, not_after);
     (*out_root)->SetValidity(not_before, not_after);
@@ -169,7 +169,7 @@
 
   const base::TimeDelta timeout_increment =
       CertNetFetcherURLRequest::GetDefaultTimeoutForTesting() +
-      base::TimeDelta::FromMilliseconds(1);
+      base::Milliseconds(1);
   const int expected_request_count =
       base::ClampFloor(GetCertVerifyProcBuiltinTimeLimitForTesting() /
                        timeout_increment) +
@@ -242,7 +242,7 @@
 
   const base::TimeDelta timeout_increment =
       CertNetFetcherURLRequest::GetDefaultTimeoutForTesting() +
-      base::TimeDelta::FromMilliseconds(1);
+      base::Milliseconds(1);
   const int expected_request_count =
       base::ClampFloor(GetCertVerifyProcBuiltinTimeLimitForTesting() /
                        timeout_increment) +
@@ -321,7 +321,7 @@
 
   const base::TimeDelta timeout_increment =
       CertNetFetcherURLRequest::GetDefaultTimeoutForTesting() +
-      base::TimeDelta::FromMilliseconds(1);
+      base::Milliseconds(1);
   const int expected_request_count =
       base::ClampFloor(GetCertVerifyProcBuiltinTimeLimitForTesting() /
                        timeout_increment) +
diff --git a/net/cert/cert_verify_proc_unittest.cc b/net/cert/cert_verify_proc_unittest.cc
index a316794e..3462c938 100644
--- a/net/cert/cert_verify_proc_unittest.cc
+++ b/net/cert/cert_verify_proc_unittest.cc
@@ -2581,9 +2581,8 @@
   std::unique_ptr<CertBuilder> leaf, intermediate, root;
   CertBuilder::CreateSimpleChain(&leaf, &intermediate, &root);
   ASSERT_TRUE(leaf && intermediate && root);
-  base::Time not_before = base::Time::Now() + base::TimeDelta::FromDays(1) +
-                          base::TimeDelta::FromMinutes(5);
-  base::Time not_after = base::Time::Now() + base::TimeDelta::FromDays(30);
+  base::Time not_before = base::Time::Now() + base::Days(1) + base::Minutes(5);
+  base::Time not_after = base::Time::Now() + base::Days(30);
   leaf->SetValidity(not_before, not_after);
 
   // Trust the root and build a chain to verify that includes the intermediate.
@@ -2605,8 +2604,8 @@
   std::unique_ptr<CertBuilder> leaf, intermediate, root;
   CertBuilder::CreateSimpleChain(&leaf, &intermediate, &root);
   ASSERT_TRUE(leaf && intermediate && root);
-  base::Time not_before = base::Time::Now() + base::TimeDelta::FromDays(1);
-  base::Time not_after = base::Time::Now() + base::TimeDelta::FromDays(30);
+  base::Time not_before = base::Time::Now() + base::Days(1);
+  base::Time not_after = base::Time::Now() + base::Days(30);
   leaf->SetValidity(not_before, not_after);
 
   // Trust the root and build a chain to verify that includes the intermediate.
@@ -2628,8 +2627,8 @@
   std::unique_ptr<CertBuilder> leaf, intermediate, root;
   CertBuilder::CreateSimpleChain(&leaf, &intermediate, &root);
   ASSERT_TRUE(leaf && intermediate && root);
-  base::Time not_before = base::Time::Now() + base::TimeDelta::FromMinutes(5);
-  base::Time not_after = base::Time::Now() + base::TimeDelta::FromDays(30);
+  base::Time not_before = base::Time::Now() + base::Minutes(5);
+  base::Time not_after = base::Time::Now() + base::Days(30);
   leaf->SetValidity(not_before, not_after);
 
   // Trust the root and build a chain to verify that includes the intermediate.
@@ -2651,8 +2650,8 @@
   std::unique_ptr<CertBuilder> leaf, intermediate, root;
   CertBuilder::CreateSimpleChain(&leaf, &intermediate, &root);
   ASSERT_TRUE(leaf && intermediate && root);
-  base::Time not_before = base::Time::Now() - base::TimeDelta::FromSeconds(1);
-  base::Time not_after = base::Time::Now() + base::TimeDelta::FromDays(30);
+  base::Time not_before = base::Time::Now() - base::Seconds(1);
+  base::Time not_after = base::Time::Now() + base::Days(30);
   leaf->SetValidity(not_before, not_after);
 
   // Trust the root and build a chain to verify that includes the intermediate.
@@ -2674,8 +2673,8 @@
   std::unique_ptr<CertBuilder> leaf, intermediate, root;
   CertBuilder::CreateSimpleChain(&leaf, &intermediate, &root);
   ASSERT_TRUE(leaf && intermediate && root);
-  base::Time not_before = base::Time::Now() - base::TimeDelta::FromDays(30);
-  base::Time not_after = base::Time::Now() + base::TimeDelta::FromMinutes(5);
+  base::Time not_before = base::Time::Now() - base::Days(30);
+  base::Time not_after = base::Time::Now() + base::Minutes(5);
   leaf->SetValidity(not_before, not_after);
 
   // Trust the root and build a chain to verify that includes the intermediate.
@@ -2697,8 +2696,8 @@
   std::unique_ptr<CertBuilder> leaf, intermediate, root;
   CertBuilder::CreateSimpleChain(&leaf, &intermediate, &root);
   ASSERT_TRUE(leaf && intermediate && root);
-  base::Time not_before = base::Time::Now() - base::TimeDelta::FromDays(30);
-  base::Time not_after = base::Time::Now() - base::TimeDelta::FromSeconds(1);
+  base::Time not_before = base::Time::Now() - base::Days(30);
+  base::Time not_after = base::Time::Now() - base::Seconds(1);
   leaf->SetValidity(not_before, not_after);
 
   // Trust the root and build a chain to verify that includes the intermediate.
diff --git a/net/cert/coalescing_cert_verifier.cc b/net/cert/coalescing_cert_verifier.cc
index 4bd65c7..c898bd0 100644
--- a/net/cert/coalescing_cert_verifier.cc
+++ b/net/cert/coalescing_cert_verifier.cc
@@ -319,12 +319,10 @@
 void CoalescingCertVerifier::Job::LogMetrics() {
   base::TimeDelta latency = base::TimeTicks::Now() - start_time_;
   UMA_HISTOGRAM_CUSTOM_TIMES("Net.CertVerifier_Job_Latency", latency,
-                             base::TimeDelta::FromMilliseconds(1),
-                             base::TimeDelta::FromMinutes(10), 100);
+                             base::Milliseconds(1), base::Minutes(10), 100);
   if (is_first_job_) {
     UMA_HISTOGRAM_CUSTOM_TIMES("Net.CertVerifier_First_Job_Latency", latency,
-                               base::TimeDelta::FromMilliseconds(1),
-                               base::TimeDelta::FromMinutes(10), 100);
+                               base::Milliseconds(1), base::Minutes(10), 100);
   }
 }
 
diff --git a/net/cert/ct_log_response_parser_unittest.cc b/net/cert/ct_log_response_parser_unittest.cc
index d7c7e6c8..b3ed665 100644
--- a/net/cert/ct_log_response_parser_unittest.cc
+++ b/net/cert/ct_log_response_parser_unittest.cc
@@ -100,8 +100,7 @@
   ASSERT_TRUE(FillSignedTreeHead(*large_timestamp_json, &tree_head));
 
   base::Time expected_time =
-      base::Time::UnixEpoch() +
-      base::TimeDelta::FromMilliseconds(INT64_C(1) << 34);
+      base::Time::UnixEpoch() + base::Milliseconds(INT64_C(1) << 34);
 
   EXPECT_EQ(tree_head.timestamp, expected_time);
 }
diff --git a/net/cert/ct_objects_extractor_unittest.cc b/net/cert/ct_objects_extractor_unittest.cc
index b5cec727..aee5b06 100644
--- a/net/cert/ct_objects_extractor_unittest.cc
+++ b/net/cert/ct_objects_extractor_unittest.cc
@@ -64,8 +64,7 @@
   EXPECT_EQ(ct::GetTestPublicKeyId(), sct->log_id);
 
   base::Time expected_timestamp =
-      base::Time::UnixEpoch() +
-      base::TimeDelta::FromMilliseconds(1365181456275);
+      base::Time::UnixEpoch() + base::Milliseconds(1365181456275);
   EXPECT_EQ(expected_timestamp, sct->timestamp);
 }
 
@@ -84,8 +83,7 @@
   EXPECT_EQ(ct::GetTestPublicKeyId(), sct->log_id);
 
   base::Time expected_timestamp =
-      base::Time::UnixEpoch() +
-      base::TimeDelta::FromMilliseconds(1365181456275);
+      base::Time::UnixEpoch() + base::Milliseconds(1365181456275);
   EXPECT_EQ(expected_timestamp, sct->timestamp);
 }
 
diff --git a/net/cert/ct_serialization_unittest.cc b/net/cert/ct_serialization_unittest.cc
index 9241a4e..e70d473 100644
--- a/net/cert/ct_serialization_unittest.cc
+++ b/net/cert/ct_serialization_unittest.cc
@@ -113,8 +113,8 @@
 }
 
 TEST_F(CtSerializationTest, EncodesV1SCTSignedData) {
-  base::Time timestamp = base::Time::UnixEpoch() +
-      base::TimeDelta::FromMilliseconds(1348589665525);
+  base::Time timestamp =
+      base::Time::UnixEpoch() + base::Milliseconds(1348589665525);
   std::string dummy_entry("abc");
   std::string empty_extensions;
   // For now, no known failure cases.
@@ -173,8 +173,8 @@
   ASSERT_TRUE(ct::DecodeSignedCertificateTimestamp(&encoded_sct, &sct));
   EXPECT_EQ(0, sct->version);
   EXPECT_EQ(ct::GetTestPublicKeyId(), sct->log_id);
-  base::Time expected_time = base::Time::UnixEpoch() +
-      base::TimeDelta::FromMilliseconds(1365181456089);
+  base::Time expected_time =
+      base::Time::UnixEpoch() + base::Milliseconds(1365181456089);
   EXPECT_EQ(expected_time, sct->timestamp);
   // Subtracting 4 bytes for signature data (hash & sig algs),
   // actual signature data should be 71 bytes.
diff --git a/net/cert/internal/crl_unittest.cc b/net/cert/internal/crl_unittest.cc
index cefd09d..e90a5dd 100644
--- a/net/cert/internal/crl_unittest.cc
+++ b/net/cert/internal/crl_unittest.cc
@@ -16,7 +16,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kAgeOneWeek = base::TimeDelta::FromDays(7);
+constexpr base::TimeDelta kAgeOneWeek = base::Days(7);
 
 std::string GetFilePath(base::StringPiece file_name) {
   return std::string("net/data/crl_unittest/") + std::string(file_name);
@@ -172,8 +172,7 @@
   ASSERT_TRUE(cert_dp);
 
   // Mar 9 00:00:00 2017 GMT
-  base::Time kVerifyTime =
-      base::Time::UnixEpoch() + base::TimeDelta::FromSeconds(1489017600);
+  base::Time kVerifyTime = base::Time::UnixEpoch() + base::Seconds(1489017600);
 
   CRLRevocationStatus expected_revocation_status = CRLRevocationStatus::UNKNOWN;
   if (base::StartsWith(file_name, "good"))
diff --git a/net/cert/internal/ocsp_unittest.cc b/net/cert/internal/ocsp_unittest.cc
index 411eca842..5a7d0141 100644
--- a/net/cert/internal/ocsp_unittest.cc
+++ b/net/cert/internal/ocsp_unittest.cc
@@ -17,7 +17,7 @@
 
 namespace {
 
-const base::TimeDelta kOCSPAgeOneWeek = base::TimeDelta::FromDays(7);
+const base::TimeDelta kOCSPAgeOneWeek = base::Days(7);
 
 std::string GetFilePath(const std::string& file_name) {
   return std::string("net/data/ocsp_unittest/") + file_name;
@@ -153,8 +153,7 @@
   ASSERT_TRUE(ReadTestDataFromPemFile(GetFilePath(params.file_name), mappings));
 
   // Mar 5 00:00:00 2017 GMT
-  base::Time kVerifyTime =
-      base::Time::UnixEpoch() + base::TimeDelta::FromSeconds(1488672000);
+  base::Time kVerifyTime = base::Time::UnixEpoch() + base::Seconds(1488672000);
 
   // Test that CheckOCSP() works.
   OCSPVerifyResult::ResponseStatus response_status;
diff --git a/net/cert/internal/path_builder_pkits_unittest.cc b/net/cert/internal/path_builder_pkits_unittest.cc
index b6daaaf..2fa6b35c 100644
--- a/net/cert/internal/path_builder_pkits_unittest.cc
+++ b/net/cert/internal/path_builder_pkits_unittest.cc
@@ -144,8 +144,8 @@
     base::Time verify_time;
     ASSERT_TRUE(der::GeneralizedTimeToTime(info.time, &verify_time));
     CrlCheckingPathBuilderDelegate path_builder_delegate(
-        crl_ders, verify_time, /*max_age=*/base::TimeDelta::FromDays(365 * 2),
-        1024, SimplePathBuilderDelegate::DigestPolicy::kWeakAllowSha1);
+        crl_ders, verify_time, /*max_age=*/base::Days(365 * 2), 1024,
+        SimplePathBuilderDelegate::DigestPolicy::kWeakAllowSha1);
 
     base::StringPiece test_number = info.test_number;
     if (test_number == "4.4.19" || test_number == "4.5.3" ||
diff --git a/net/cert/internal/path_builder_unittest.cc b/net/cert/internal/path_builder_unittest.cc
index c080a2b1..e6738ba 100644
--- a/net/cert/internal/path_builder_unittest.cc
+++ b/net/cert/internal/path_builder_unittest.cc
@@ -565,12 +565,12 @@
     if (insufficient_limit) {
       // Set a deadline one millisecond in the past. Path building should fail
       // since the deadline is already past.
-      deadline = base::TimeTicks::Now() - base::TimeDelta::FromMilliseconds(1);
+      deadline = base::TimeTicks::Now() - base::Milliseconds(1);
     } else {
       // The other tests in this file exercise the case that |SetDeadline|
       // isn't called. Therefore set a sufficient limit for the path to be
       // found.
-      deadline = base::TimeTicks::Now() + base::TimeDelta::FromDays(1);
+      deadline = base::TimeTicks::Now() + base::Days(1);
     }
     path_builder.SetDeadline(deadline);
 
diff --git a/net/cert/internal/revocation_checker.h b/net/cert/internal/revocation_checker.h
index 7472da6..6da6b1700 100644
--- a/net/cert/internal/revocation_checker.h
+++ b/net/cert/internal/revocation_checker.h
@@ -31,8 +31,7 @@
 //
 // Use 7 days as the max allowable leaf revocation status age, which is
 // sufficient for both CRL and OCSP, and which aligns with Microsoft policies.
-constexpr base::TimeDelta kMaxRevocationLeafUpdateAge =
-    base::TimeDelta::FromDays(7);
+constexpr base::TimeDelta kMaxRevocationLeafUpdateAge = base::Days(7);
 
 // Baseline Requirements 1.6.5, section 4.9.7:
 //     For the status of Subordinate CA Certificates: The CA SHALL update and
@@ -49,8 +48,7 @@
 //
 // Use 366 days to allow for leap years, though it is overly permissive in
 // other years.
-constexpr base::TimeDelta kMaxRevocationIntermediateUpdateAge =
-    base::TimeDelta::FromDays(366);
+constexpr base::TimeDelta kMaxRevocationIntermediateUpdateAge = base::Days(366);
 
 // RevocationPolicy describes how revocation should be carried out for a
 // particular chain.
diff --git a/net/cert/internal/revocation_util_unittest.cc b/net/cert/internal/revocation_util_unittest.cc
index 40a1f02..ead9c9a 100644
--- a/net/cert/internal/revocation_util_unittest.cc
+++ b/net/cert/internal/revocation_util_unittest.cc
@@ -13,20 +13,20 @@
 
 namespace {
 
-constexpr base::TimeDelta kOneWeek = base::TimeDelta::FromDays(7);
+constexpr base::TimeDelta kOneWeek = base::Days(7);
 
 }  // namespace
 
 TEST(CheckRevocationDateTest, Valid) {
   base::Time now = base::Time::Now();
-  base::Time this_update = now - base::TimeDelta::FromHours(1);
+  base::Time this_update = now - base::Hours(1);
   der::GeneralizedTime encoded_this_update;
   ASSERT_TRUE(
       der::EncodeTimeAsGeneralizedTime(this_update, &encoded_this_update));
   EXPECT_TRUE(
       CheckRevocationDateValid(encoded_this_update, nullptr, now, kOneWeek));
 
-  base::Time next_update = this_update + base::TimeDelta::FromDays(7);
+  base::Time next_update = this_update + base::Days(7);
   der::GeneralizedTime encoded_next_update;
   ASSERT_TRUE(
       der::EncodeTimeAsGeneralizedTime(next_update, &encoded_next_update));
@@ -36,14 +36,14 @@
 
 TEST(CheckRevocationDateTest, ThisUpdateInTheFuture) {
   base::Time now = base::Time::Now();
-  base::Time this_update = now + base::TimeDelta::FromHours(1);
+  base::Time this_update = now + base::Hours(1);
   der::GeneralizedTime encoded_this_update;
   ASSERT_TRUE(
       der::EncodeTimeAsGeneralizedTime(this_update, &encoded_this_update));
   EXPECT_FALSE(
       CheckRevocationDateValid(encoded_this_update, nullptr, now, kOneWeek));
 
-  base::Time next_update = this_update + base::TimeDelta::FromDays(7);
+  base::Time next_update = this_update + base::Days(7);
   der::GeneralizedTime encoded_next_update;
   ASSERT_TRUE(
       der::EncodeTimeAsGeneralizedTime(next_update, &encoded_next_update));
@@ -53,14 +53,14 @@
 
 TEST(CheckRevocationDateTest, NextUpdatePassed) {
   base::Time now = base::Time::Now();
-  base::Time this_update = now - base::TimeDelta::FromDays(6);
+  base::Time this_update = now - base::Days(6);
   der::GeneralizedTime encoded_this_update;
   ASSERT_TRUE(
       der::EncodeTimeAsGeneralizedTime(this_update, &encoded_this_update));
   EXPECT_TRUE(
       CheckRevocationDateValid(encoded_this_update, nullptr, now, kOneWeek));
 
-  base::Time next_update = now - base::TimeDelta::FromHours(1);
+  base::Time next_update = now - base::Hours(1);
   der::GeneralizedTime encoded_next_update;
   ASSERT_TRUE(
       der::EncodeTimeAsGeneralizedTime(next_update, &encoded_next_update));
@@ -70,14 +70,14 @@
 
 TEST(CheckRevocationDateTest, NextUpdateBeforeThisUpdate) {
   base::Time now = base::Time::Now();
-  base::Time this_update = now - base::TimeDelta::FromDays(1);
+  base::Time this_update = now - base::Days(1);
   der::GeneralizedTime encoded_this_update;
   ASSERT_TRUE(
       der::EncodeTimeAsGeneralizedTime(this_update, &encoded_this_update));
   EXPECT_TRUE(
       CheckRevocationDateValid(encoded_this_update, nullptr, now, kOneWeek));
 
-  base::Time next_update = this_update - base::TimeDelta::FromDays(1);
+  base::Time next_update = this_update - base::Days(1);
   der::GeneralizedTime encoded_next_update;
   ASSERT_TRUE(
       der::EncodeTimeAsGeneralizedTime(next_update, &encoded_next_update));
@@ -94,15 +94,15 @@
   EXPECT_TRUE(
       CheckRevocationDateValid(encoded_this_update, nullptr, now, kOneWeek));
 
-  base::Time next_update = now + base::TimeDelta::FromHours(1);
+  base::Time next_update = now + base::Hours(1);
   der::GeneralizedTime encoded_next_update;
   ASSERT_TRUE(
       der::EncodeTimeAsGeneralizedTime(next_update, &encoded_next_update));
   EXPECT_TRUE(CheckRevocationDateValid(encoded_this_update,
                                        &encoded_next_update, now, kOneWeek));
 
-  ASSERT_TRUE(der::EncodeTimeAsGeneralizedTime(
-      this_update - base::TimeDelta::FromSeconds(1), &encoded_this_update));
+  ASSERT_TRUE(der::EncodeTimeAsGeneralizedTime(this_update - base::Seconds(1),
+                                               &encoded_this_update));
   EXPECT_FALSE(
       CheckRevocationDateValid(encoded_this_update, nullptr, now, kOneWeek));
   EXPECT_FALSE(CheckRevocationDateValid(encoded_this_update,
@@ -111,10 +111,10 @@
 
 TEST(CheckRevocationDateTest, VerifyTimeFromBeforeWindowsEpoch) {
   base::Time windows_epoch;
-  base::Time verify_time = windows_epoch - base::TimeDelta::FromDays(1);
+  base::Time verify_time = windows_epoch - base::Days(1);
 
   base::Time now = base::Time::Now();
-  base::Time this_update = now - base::TimeDelta::FromHours(1);
+  base::Time this_update = now - base::Hours(1);
   der::GeneralizedTime encoded_this_update;
   ASSERT_TRUE(
       der::EncodeTimeAsGeneralizedTime(this_update, &encoded_this_update));
@@ -131,7 +131,7 @@
 
 TEST(CheckRevocationDateTest, VerifyTimeMinusAgeFromBeforeWindowsEpoch) {
   base::Time windows_epoch;
-  base::Time verify_time = windows_epoch + base::TimeDelta::FromDays(1);
+  base::Time verify_time = windows_epoch + base::Days(1);
 
   base::Time this_update = windows_epoch;
   der::GeneralizedTime encoded_this_update;
diff --git a/net/cert/multi_log_ct_verifier.cc b/net/cert/multi_log_ct_verifier.cc
index bd503cf..dee8965e 100644
--- a/net/cert/multi_log_ct_verifier.cc
+++ b/net/cert/multi_log_ct_verifier.cc
@@ -147,8 +147,7 @@
     base::TimeDelta verify_time = base::TimeTicks::Now() - start;
     UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
         "Net.CertificateTransparency.SCT.VerificationTime", verify_time,
-        base::TimeDelta::FromMicroseconds(1),
-        base::TimeDelta::FromMilliseconds(100), 50);
+        base::Microseconds(1), base::Milliseconds(100), 50);
   }
 
   net_log.AddEvent(NetLogEventType::SIGNED_CERTIFICATE_TIMESTAMPS_CHECKED, [&] {
@@ -188,8 +187,7 @@
     base::TimeDelta verify_time = base::TimeTicks::Now() - start;
     UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
         "Net.CertificateTransparency.SCT.SingleVerificationTime", verify_time,
-        base::TimeDelta::FromMicroseconds(1),
-        base::TimeDelta::FromMilliseconds(100), 50);
+        base::Microseconds(1), base::Milliseconds(100), 50);
   }
 }
 
diff --git a/net/cert/trial_comparison_cert_verifier.cc b/net/cert/trial_comparison_cert_verifier.cc
index fdbf820..7727dce 100644
--- a/net/cert/trial_comparison_cert_verifier.cc
+++ b/net/cert/trial_comparison_cert_verifier.cc
@@ -432,9 +432,8 @@
   // that TrialSecondary histograms will be recorded for, in order to get a
   // direct comparison.
   UMA_HISTOGRAM_CUSTOM_TIMES("Net.CertVerifier_Job_Latency_TrialPrimary",
-                             primary_latency,
-                             base::TimeDelta::FromMilliseconds(1),
-                             base::TimeDelta::FromMinutes(10), 100);
+                             primary_latency, base::Milliseconds(1),
+                             base::Minutes(10), 100);
 
   trial_start_ = base::TimeTicks::Now();
   int rv = parent_->trial_verifier()->Verify(
@@ -453,8 +452,8 @@
   trial_error_ = result;
 
   UMA_HISTOGRAM_CUSTOM_TIMES("Net.CertVerifier_Job_Latency_TrialSecondary",
-                             latency, base::TimeDelta::FromMilliseconds(1),
-                             base::TimeDelta::FromMinutes(10), 100);
+                             latency, base::Milliseconds(1), base::Minutes(10),
+                             100);
 
   bool errors_equal = trial_error_ == primary_error_;
   bool details_equal = CertVerifyResultEqual(trial_result_, primary_result_);
diff --git a/net/cert/x509_util_unittest.cc b/net/cert/x509_util_unittest.cc
index 0029d38..d89ff50 100644
--- a/net/cert/x509_util_unittest.cc
+++ b/net/cert/x509_util_unittest.cc
@@ -31,8 +31,7 @@
   std::string der_cert;
   ASSERT_TRUE(x509_util::CreateKeyAndSelfSignedCert(
       "CN=subject, OU=org unit, O=org, C=CA", 1, base::Time::Now(),
-      base::Time::Now() + base::TimeDelta::FromDays(1), &private_key,
-      &der_cert));
+      base::Time::Now() + base::Days(1), &private_key, &der_cert));
 
   ASSERT_TRUE(private_key.get());
 
@@ -143,8 +142,7 @@
   std::string der_cert;
   ASSERT_TRUE(x509_util::CreateSelfSignedCert(
       private_key->key(), x509_util::DIGEST_SHA256, "CN=subject", 1,
-      base::Time::Now(), base::Time::Now() + base::TimeDelta::FromDays(1), {},
-      &der_cert));
+      base::Time::Now(), base::Time::Now() + base::Days(1), {}, &der_cert));
 
   scoped_refptr<X509Certificate> cert = X509Certificate::CreateFromBytes(
       base::as_bytes(base::make_span(der_cert)));
diff --git a/net/cert_net/cert_net_fetcher_url_request.cc b/net/cert_net/cert_net_fetcher_url_request.cc
index 50f98e68..6558c01 100644
--- a/net/cert_net/cert_net_fetcher_url_request.cc
+++ b/net/cert_net/cert_net_fetcher_url_request.cc
@@ -181,8 +181,8 @@
 
 base::TimeDelta GetTimeout(int timeout_milliseconds) {
   if (timeout_milliseconds == CertNetFetcher::DEFAULT)
-    return base::TimeDelta::FromSeconds(kTimeoutSeconds);
-  return base::TimeDelta::FromMilliseconds(timeout_milliseconds);
+    return base::Seconds(kTimeoutSeconds);
+  return base::Milliseconds(timeout_milliseconds);
 }
 
 size_t GetMaxResponseBytes(int max_response_bytes,
diff --git a/net/cookies/canonical_cookie_unittest.cc b/net/cookies/canonical_cookie_unittest.cc
index c34c87fb8..d2e84a1 100644
--- a/net/cookies/canonical_cookie_unittest.cc
+++ b/net/cookies/canonical_cookie_unittest.cc
@@ -521,8 +521,7 @@
   EXPECT_TRUE(cookie.get());
   EXPECT_TRUE(cookie->IsPersistent());
   EXPECT_FALSE(cookie->IsExpired(creation_time));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(60) + creation_time,
-            cookie->ExpiryDate());
+  EXPECT_EQ(base::Seconds(60) + creation_time, cookie->ExpiryDate());
 
   // Max-age with expires (max-age should take precedence).
   cookie = CanonicalCookie::Create(
@@ -531,8 +530,7 @@
   EXPECT_TRUE(cookie.get());
   EXPECT_TRUE(cookie->IsPersistent());
   EXPECT_FALSE(cookie->IsExpired(creation_time));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(60) + creation_time,
-            cookie->ExpiryDate());
+  EXPECT_EQ(base::Seconds(60) + creation_time, cookie->ExpiryDate());
 
   // Max-age=0 should create an expired cookie with expiry equal to the earliest
   // representable time.
@@ -561,8 +559,7 @@
   EXPECT_TRUE(cookie.get());
   EXPECT_TRUE(cookie->IsPersistent());
   EXPECT_FALSE(cookie->IsExpired(creation_time));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(60) + creation_time,
-            cookie->ExpiryDate());
+  EXPECT_EQ(base::Seconds(60) + creation_time, cookie->ExpiryDate());
 
   // Max-age with non-integer should be ignored.
   cookie = CanonicalCookie::Create(url, "A=1; max-age=abcd", creation_time,
@@ -615,7 +612,7 @@
   EXPECT_EQ(base::Time(), cookie->ExpiryDate());
 
   // With a stale server time
-  server_time = creation_time - base::TimeDelta::FromHours(1);
+  server_time = creation_time - base::Hours(1);
   cookie = CanonicalCookie::Create(url, cookie_line, creation_time, server_time,
                                    absl::nullopt /* cookie_partition_key */);
   EXPECT_TRUE(cookie.get());
@@ -624,7 +621,7 @@
   EXPECT_EQ(base::Time(), cookie->ExpiryDate());
 
   // With a future server time
-  server_time = creation_time + base::TimeDelta::FromHours(1);
+  server_time = creation_time + base::Hours(1);
   cookie = CanonicalCookie::Create(url, cookie_line, creation_time, server_time,
                                    absl::nullopt /* cookie_partition_key */);
   EXPECT_TRUE(cookie.get());
@@ -640,7 +637,7 @@
   std::string cookie_domain = ".www.example.com";
   std::string cookie_path = "/path";
   base::Time creation_time = base::Time::Now();
-  base::Time expiration_time = creation_time + base::TimeDelta::FromDays(2);
+  base::Time expiration_time = creation_time + base::Days(2);
   bool secure = false;
   bool httponly = false;
   CookieSameSite same_site = CookieSameSite::NO_RESTRICTION;
@@ -672,8 +669,7 @@
   EXPECT_TRUE(cookie->IsEquivalentForSecureCookieMatching(*other_cookie));
   EXPECT_TRUE(other_cookie->IsEquivalentForSecureCookieMatching(*cookie));
 
-  base::Time other_creation_time =
-      creation_time + base::TimeDelta::FromMinutes(2);
+  base::Time other_creation_time = creation_time + base::Minutes(2);
   other_cookie = CanonicalCookie::CreateUnsafeCookieForTesting(
       cookie_name, "2", cookie_domain, cookie_path, other_creation_time,
       expiration_time, base::Time(), secure, httponly, same_site,
@@ -2687,14 +2683,14 @@
       url, "D=E", now, server_time, absl::nullopt /* cookie_partition_key */));
   MatchCookieLineToVector("A=B; C; D=E", cookies);
   // BuildCookieLine doesn't reorder the list, it relies on the caller to do so.
-  cookies.push_back(CanonicalCookie::Create(
-      url, "F=G", now - base::TimeDelta::FromSeconds(1), server_time,
-      absl::nullopt /* cookie_partition_key */));
+  cookies.push_back(
+      CanonicalCookie::Create(url, "F=G", now - base::Seconds(1), server_time,
+                              absl::nullopt /* cookie_partition_key */));
   MatchCookieLineToVector("A=B; C; D=E; F=G", cookies);
   // BuildCookieLine doesn't deduplicate.
-  cookies.push_back(CanonicalCookie::Create(
-      url, "D=E", now - base::TimeDelta::FromSeconds(2), server_time,
-      absl::nullopt /* cookie_partition_key */));
+  cookies.push_back(
+      CanonicalCookie::Create(url, "D=E", now - base::Seconds(2), server_time,
+                              absl::nullopt /* cookie_partition_key */));
   MatchCookieLineToVector("A=B; C; D=E; F=G; D=E", cookies);
   // BuildCookieLine should match the spec in the case of an empty name with a
   // value containing an equal sign (even if it currently produces "invalid"
@@ -2706,10 +2702,9 @@
 
 // Confirm that input arguments are reflected in the output cookie.
 TEST(CanonicalCookieTest, CreateSanitizedCookie_Inputs) {
-  base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2);
-  base::Time one_hour_ago = base::Time::Now() - base::TimeDelta::FromHours(1);
-  base::Time one_hour_from_now =
-      base::Time::Now() + base::TimeDelta::FromHours(1);
+  base::Time two_hours_ago = base::Time::Now() - base::Hours(2);
+  base::Time one_hour_ago = base::Time::Now() - base::Hours(1);
+  base::Time one_hour_from_now = base::Time::Now() + base::Hours(1);
   CookieInclusionStatus status;
   std::unique_ptr<CanonicalCookie> cc;
 
@@ -2848,10 +2843,9 @@
 
 // Make sure sanitization and blocking of cookies works correctly.
 TEST(CanonicalCookieTest, CreateSanitizedCookie_Logic) {
-  base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2);
-  base::Time one_hour_ago = base::Time::Now() - base::TimeDelta::FromHours(1);
-  base::Time one_hour_from_now =
-      base::Time::Now() + base::TimeDelta::FromHours(1);
+  base::Time two_hours_ago = base::Time::Now() - base::Hours(2);
+  base::Time one_hour_ago = base::Time::Now() - base::Hours(1);
+  base::Time one_hour_from_now = base::Time::Now() + base::Hours(1);
   CookieInclusionStatus status;
 
   // Simple path and domain variations.
@@ -3585,10 +3579,9 @@
 }
 
 TEST(CanonicalCookieTest, FromStorage) {
-  base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2);
-  base::Time one_hour_ago = base::Time::Now() - base::TimeDelta::FromHours(1);
-  base::Time one_hour_from_now =
-      base::Time::Now() + base::TimeDelta::FromHours(1);
+  base::Time two_hours_ago = base::Time::Now() - base::Hours(2);
+  base::Time one_hour_ago = base::Time::Now() - base::Hours(1);
+  base::Time one_hour_from_now = base::Time::Now() + base::Hours(1);
 
   std::unique_ptr<CanonicalCookie> cc = CanonicalCookie::FromStorage(
       "A", "B", "www.foo.com", "/bar", two_hours_ago, one_hour_from_now,
@@ -4757,10 +4750,9 @@
   const base::HistogramBase::Sample kInValid = 0;
   const base::HistogramBase::Sample kValid = 1;
 
-  base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2);
-  base::Time one_hour_ago = base::Time::Now() - base::TimeDelta::FromHours(1);
-  base::Time one_hour_from_now =
-      base::Time::Now() + base::TimeDelta::FromHours(1);
+  base::Time two_hours_ago = base::Time::Now() - base::Hours(2);
+  base::Time one_hour_ago = base::Time::Now() - base::Hours(1);
+  base::Time one_hour_from_now = base::Time::Now() + base::Hours(1);
 
   // Test a cookie that is canonical and valid size
   EXPECT_TRUE(CanonicalCookie::FromStorage(
diff --git a/net/cookies/cookie_constants.cc b/net/cookies/cookie_constants.cc
index acb6142e..a443d13 100644
--- a/net/cookies/cookie_constants.cc
+++ b/net/cookies/cookie_constants.cc
@@ -12,9 +12,8 @@
 
 namespace net {
 
-const base::TimeDelta kLaxAllowUnsafeMaxAge = base::TimeDelta::FromMinutes(2);
-const base::TimeDelta kShortLaxAllowUnsafeMaxAge =
-    base::TimeDelta::FromSeconds(10);
+const base::TimeDelta kLaxAllowUnsafeMaxAge = base::Minutes(2);
+const base::TimeDelta kShortLaxAllowUnsafeMaxAge = base::Seconds(10);
 
 namespace {
 
diff --git a/net/cookies/cookie_monster.cc b/net/cookies/cookie_monster.cc
index 85c6aa5b..96adfc34 100644
--- a/net/cookies/cookie_monster.cc
+++ b/net/cookies/cookie_monster.cc
@@ -323,10 +323,9 @@
 
 CookieMonster::CookieMonster(scoped_refptr<PersistentCookieStore> store,
                              NetLog* net_log)
-    : CookieMonster(
-          std::move(store),
-          base::TimeDelta::FromSeconds(kDefaultAccessUpdateThresholdSeconds),
-          net_log) {}
+    : CookieMonster(std::move(store),
+                    base::Seconds(kDefaultAccessUpdateThresholdSeconds),
+                    net_log) {}
 
 CookieMonster::CookieMonster(scoped_refptr<PersistentCookieStore> store,
                              base::TimeDelta last_access_threshold,
@@ -2176,7 +2175,7 @@
   DCHECK(thread_checker_.CalledOnValidThread());
 
   const base::TimeDelta kRecordStatisticsIntervalTime(
-      base::TimeDelta::FromSeconds(kRecordStatisticsIntervalSeconds));
+      base::Seconds(kRecordStatisticsIntervalSeconds));
 
   // If we've taken statistics recently, return.
   if (current_time - last_statistic_record_time_ <=
diff --git a/net/cookies/cookie_monster_store_test.cc b/net/cookies/cookie_monster_store_test.cc
index 63e85b3e..78603956 100644
--- a/net/cookies/cookie_monster_store_test.cc
+++ b/net/cookies/cookie_monster_store_test.cc
@@ -205,7 +205,7 @@
     int num_old_non_secure_cookies,
     int days_old) {
   base::Time current(base::Time::Now());
-  base::Time past_creation(base::Time::Now() - base::TimeDelta::FromDays(1000));
+  base::Time past_creation(base::Time::Now() - base::Days(1000));
   scoped_refptr<MockSimplePersistentCookieStore> store(
       new MockSimplePersistentCookieStore);
   int total_cookies = num_secure_cookies + num_non_secure_cookies;
@@ -222,13 +222,11 @@
       num_old_cookies = num_old_non_secure_cookies;
       secure = false;
     }
-    base::Time creation_time =
-        past_creation + base::TimeDelta::FromMicroseconds(i);
-    base::Time expiration_time = current + base::TimeDelta::FromDays(30);
-    base::Time last_access_time =
-        ((i - base) < num_old_cookies)
-            ? current - base::TimeDelta::FromDays(days_old)
-            : current;
+    base::Time creation_time = past_creation + base::Microseconds(i);
+    base::Time expiration_time = current + base::Days(30);
+    base::Time last_access_time = ((i - base) < num_old_cookies)
+                                      ? current - base::Days(days_old)
+                                      : current;
 
     // The URL must be HTTPS since |secure| can be true or false, and because
     // strict secure cookies are enforced, the cookie will fail to be created if
diff --git a/net/cookies/cookie_monster_unittest.cc b/net/cookies/cookie_monster_unittest.cc
index 27bdff6..40e42cb3 100644
--- a/net/cookies/cookie_monster_unittest.cc
+++ b/net/cookies/cookie_monster_unittest.cc
@@ -341,7 +341,7 @@
     }
 
     EXPECT_EQ(cookies.size(), this->GetAllCookies(cm).size());
-    return now + base::TimeDelta::FromMilliseconds(100);
+    return now + base::Milliseconds(100);
   }
 
   Time GetFirstCookieAccessDate(CookieMonster* cm) {
@@ -1720,10 +1720,9 @@
   EXPECT_TRUE(GetAllCookies(cm.get()).empty());
 }
 
-static const base::TimeDelta kLastAccessThreshold =
-    base::TimeDelta::FromMilliseconds(200);
+static const base::TimeDelta kLastAccessThreshold = base::Milliseconds(200);
 static const base::TimeDelta kAccessDelay =
-    kLastAccessThreshold + base::TimeDelta::FromMilliseconds(20);
+    kLastAccessThreshold + base::Milliseconds(20);
 
 TEST_F(CookieMonsterTest, TestLastAccess) {
   std::unique_ptr<CookieMonster> cm(
@@ -2097,7 +2096,7 @@
         "A=A1; path=/", "A=A2; path=/foo", "A=A3; path=/foo/bar"}) {
     EXPECT_TRUE(SetCookieWithSystemTime(cm.get(), http_www_foo_.url(),
                                         cookie_line, system_time));
-    system_time += base::TimeDelta::FromMilliseconds(100);
+    system_time += base::Milliseconds(100);
   }
 
   // Re-set cookie which should not change sort order, as the creation date
@@ -2118,8 +2117,7 @@
 TEST_F(CookieMonsterTest, InheritCreationDate) {
   auto cm = std::make_unique<CookieMonster>(nullptr, &net_log_);
 
-  base::Time the_not_so_distant_past(base::Time::Now() -
-                                     base::TimeDelta::FromSeconds(1000));
+  base::Time the_not_so_distant_past(base::Time::Now() - base::Seconds(1000));
   EXPECT_TRUE(SetCookieWithCreationTime(cm.get(), http_www_foo_.url(),
                                         "Name=Value; path=/",
                                         the_not_so_distant_past));
@@ -2470,7 +2468,7 @@
   base::Time current(base::Time::Now());
   scoped_refptr<MockSimplePersistentCookieStore> store(
       new MockSimplePersistentCookieStore);
-  base::Time expires(base::Time::Now() + base::TimeDelta::FromSeconds(100));
+  base::Time expires(base::Time::Now() + base::Seconds(100));
 
   const CookiesInputInfo input_info[] = {
       {GURL("https://a.b.foo.com"), "a", "1", "a.b.foo.com", "/path/to/cookie",
@@ -2480,7 +2478,7 @@
        expires + TimeDelta::FromSeconds(10), true, true,
        CookieSameSite::NO_RESTRICTION, COOKIE_PRIORITY_DEFAULT, true},
       {GURL("https://foo.com"), "c", "3", "foo.com", "/another/path/to/cookie",
-       base::Time::Now() + base::TimeDelta::FromSeconds(100), false, false,
+       base::Time::Now() + base::Seconds(100), false, false,
        CookieSameSite::STRICT_MODE, COOKIE_PRIORITY_DEFAULT, false}};
   const int INPUT_DELETE = 1;
 
@@ -3053,8 +3051,8 @@
       expired_histogram->SnapshotSamples());
   auto cookie = CanonicalCookie::CreateUnsafeCookieForTesting(
       "a", "b", "a.url", "/", base::Time(),
-      base::Time::Now() + base::TimeDelta::FromMinutes(59), base::Time(), true,
-      false, CookieSameSite::NO_RESTRICTION, COOKIE_PRIORITY_DEFAULT, false);
+      base::Time::Now() + base::Minutes(59), base::Time(), true, false,
+      CookieSameSite::NO_RESTRICTION, COOKIE_PRIORITY_DEFAULT, false);
   GURL source_url = cookie_util::SimulatedCookieSource(*cookie, "https");
   ASSERT_TRUE(SetCanonicalCookie(cm.get(), std::move(cookie), source_url,
                                  true /*modify_httponly*/));
@@ -4401,7 +4399,7 @@
 
 TEST_F(CookieMonsterTest, DeleteCookieWithInheritedTimestamps) {
   Time t1 = Time::Now();
-  Time t2 = t1 + base::TimeDelta::FromSeconds(1);
+  Time t2 = t1 + base::Seconds(1);
   GURL url("http://www.example.com");
   std::string cookie_line = "foo=bar";
   CookieOptions options = CookieOptions::MakeAllInclusive();
@@ -4659,7 +4657,7 @@
       url, "Y=1; path=/", base::Time::Now(), absl::nullopt /* server_time */,
       absl::nullopt /* cookie_partition_key */));
   initial_cookies.push_back(CanonicalCookie::Create(
-      url, "Y=2; path=/", base::Time::Now() + base::TimeDelta::FromDays(1),
+      url, "Y=2; path=/", base::Time::Now() + base::Days(1),
       absl::nullopt /* server_time */,
       absl::nullopt /* cookie_partition_key */));
 
diff --git a/net/cookies/cookie_store_test_helpers.cc b/net/cookies/cookie_store_test_helpers.cc
index d9cfa9c..56e1ae0 100644
--- a/net/cookies/cookie_store_test_helpers.cc
+++ b/net/cookies/cookie_store_test_helpers.cc
@@ -104,7 +104,7 @@
       FROM_HERE,
       base::BindOnce(&DelayedCookieMonster::InvokeSetCookiesCallback,
                      base::Unretained(this), std::move(callback)),
-      base::TimeDelta::FromMilliseconds(kDelayedTime));
+      base::Milliseconds(kDelayedTime));
 }
 
 void DelayedCookieMonster::GetCookieListWithOptionsAsync(
@@ -123,7 +123,7 @@
       FROM_HERE,
       base::BindOnce(&DelayedCookieMonster::InvokeGetCookieListCallback,
                      base::Unretained(this), std::move(callback)),
-      base::TimeDelta::FromMilliseconds(kDelayedTime));
+      base::Milliseconds(kDelayedTime));
 }
 
 void DelayedCookieMonster::GetAllCookiesAsync(GetAllCookiesCallback callback) {
diff --git a/net/cookies/cookie_store_unittest.h b/net/cookies/cookie_store_unittest.h
index d20f3b8..e4f0dd0 100644
--- a/net/cookies/cookie_store_unittest.h
+++ b/net/cookies/cookie_store_unittest.h
@@ -408,12 +408,13 @@
                                   const std::string& line) {
     std::string cookies = GetCookies(cs, url);
     bool matched = (TokenizeCookieLine(line) == TokenizeCookieLine(cookies));
-    base::Time polling_end_date = base::Time::Now() +
-        base::TimeDelta::FromMilliseconds(
+    base::Time polling_end_date =
+        base::Time::Now() +
+        base::Milliseconds(
             CookieStoreTestTraits::creation_time_granularity_in_ms);
 
     while (!matched &&  base::Time::Now() <= polling_end_date) {
-      base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(10));
+      base::PlatformThread::Sleep(base::Milliseconds(10));
       cookies = GetCookies(cs, url);
       matched = (TokenizeCookieLine(line) == TokenizeCookieLine(cookies));
     }
@@ -454,10 +455,9 @@
 TYPED_TEST_P(CookieStoreTest, FilterTest) {
   CookieStore* cs = this->GetCookieStore();
 
-  base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2);
-  base::Time one_hour_ago = base::Time::Now() - base::TimeDelta::FromHours(1);
-  base::Time one_hour_from_now =
-      base::Time::Now() + base::TimeDelta::FromHours(1);
+  base::Time two_hours_ago = base::Time::Now() - base::Hours(2);
+  base::Time one_hour_ago = base::Time::Now() - base::Hours(1);
+  base::Time one_hour_from_now = base::Time::Now() + base::Hours(1);
 
   std::unique_ptr<CanonicalCookie> cc(CanonicalCookie::CreateSanitizedCookie(
       this->www_foo_foo_.url(), "A", "B", std::string(), "/foo", one_hour_ago,
@@ -581,10 +581,9 @@
 TYPED_TEST_P(CookieStoreTest, SetCanonicalCookieTest) {
   CookieStore* cs = this->GetCookieStore();
 
-  base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2);
-  base::Time one_hour_ago = base::Time::Now() - base::TimeDelta::FromHours(1);
-  base::Time one_hour_from_now =
-      base::Time::Now() + base::TimeDelta::FromHours(1);
+  base::Time two_hours_ago = base::Time::Now() - base::Hours(2);
+  base::Time one_hour_ago = base::Time::Now() - base::Hours(1);
+  base::Time one_hour_from_now = base::Time::Now() + base::Hours(1);
 
   std::string foo_foo_host(this->www_foo_foo_.url().host());
   std::string foo_bar_domain(this->www_foo_bar_.domain());
@@ -1297,12 +1296,12 @@
                          this->GetCookiesWithOptions(cs, url, options));
 
   absl::optional<base::Time> server_time =
-      absl::make_optional(base::Time::Now() - base::TimeDelta::FromHours(1));
+      absl::make_optional(base::Time::Now() - base::Hours(1));
   this->CreateAndSetCookie(cs, url, set_cookie_line, options, server_time);
   this->MatchCookieLines(cookie_line,
                          this->GetCookiesWithOptions(cs, url, options));
 
-  server_time = base::Time::Now() + base::TimeDelta::FromHours(1);
+  server_time = base::Time::Now() + base::Hours(1);
   this->CreateAndSetCookie(cs, url, set_cookie_line, options, server_time);
   this->MatchCookieLines(cookie_line,
                          this->GetCookiesWithOptions(cs, url, options));
@@ -1453,14 +1452,10 @@
 
 TYPED_TEST_P(CookieStoreTest, TestDeleteAllCreatedInTimeRange) {
   CookieStore* cs = this->GetCookieStore();
-  const base::Time last_month = base::Time::Now() -
-                                base::TimeDelta::FromDays(30);
-  const base::Time last_minute = base::Time::Now() -
-                                 base::TimeDelta::FromMinutes(1);
-  const base::Time next_minute = base::Time::Now() +
-                                 base::TimeDelta::FromMinutes(1);
-  const base::Time next_month = base::Time::Now() +
-                                base::TimeDelta::FromDays(30);
+  const base::Time last_month = base::Time::Now() - base::Days(30);
+  const base::Time last_minute = base::Time::Now() - base::Minutes(1);
+  const base::Time next_minute = base::Time::Now() + base::Minutes(1);
+  const base::Time next_month = base::Time::Now() + base::Days(30);
 
   // Add a cookie.
   EXPECT_TRUE(this->SetCookie(cs, this->http_www_foo_.url(), "A=B"));
@@ -1501,8 +1496,8 @@
 TYPED_TEST_P(CookieStoreTest, TestDeleteAllWithInfo) {
   CookieStore* cs = this->GetCookieStore();
   base::Time now = base::Time::Now();
-  base::Time last_month = base::Time::Now() - base::TimeDelta::FromDays(30);
-  base::Time last_minute = base::Time::Now() - base::TimeDelta::FromMinutes(1);
+  base::Time last_month = base::Time::Now() - base::Days(30);
+  base::Time last_minute = base::Time::Now() - base::Minutes(1);
 
   // These 3 cookies match the time range and host.
   EXPECT_TRUE(this->SetCookie(cs, this->http_www_foo_.url(), "A=B"));
@@ -1686,12 +1681,12 @@
       this->SetCookie(cs, GURL("http://d.c.b.a.foo.com/aa/x.html"), "c=1"));
   EXPECT_TRUE(this->SetCookie(cs, GURL("http://b.a.foo.com/aa/bb/cc/x.html"),
                               "d=1; domain=b.a.foo.com"));
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(
-      TypeParam::creation_time_granularity_in_ms));
+  base::PlatformThread::Sleep(
+      base::Milliseconds(TypeParam::creation_time_granularity_in_ms));
   EXPECT_TRUE(this->SetCookie(cs, GURL("http://b.a.foo.com/aa/bb/cc/x.html"),
                               "a=4; domain=b.a.foo.com"));
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(
-      TypeParam::creation_time_granularity_in_ms));
+  base::PlatformThread::Sleep(
+      base::Milliseconds(TypeParam::creation_time_granularity_in_ms));
   EXPECT_TRUE(this->SetCookie(cs, GURL("http://c.b.a.foo.com/aa/bb/cc/x.html"),
                               "e=1; domain=c.b.a.foo.com"));
   EXPECT_TRUE(
diff --git a/net/cookies/cookie_util_unittest.cc b/net/cookies/cookie_util_unittest.cc
index 91d5558b..2cedc33 100644
--- a/net/cookies/cookie_util_unittest.cc
+++ b/net/cookies/cookie_util_unittest.cc
@@ -168,8 +168,7 @@
 
     // It should either have an exact value, or be base::Time::Max(). For
     // simplicity just check that it is greater than an arbitray date.
-    base::Time almost_jan_2038 =
-        base::Time::UnixEpoch() + base::TimeDelta::FromDays(365 * 68);
+    base::Time almost_jan_2038 = base::Time::UnixEpoch() + base::Days(365 * 68);
     EXPECT_LT(almost_jan_2038, parsed_time);
   }
 }
diff --git a/net/der/encode_values_unittest.cc b/net/der/encode_values_unittest.cc
index fd964ef..ed929a8 100644
--- a/net/der/encode_values_unittest.cc
+++ b/net/der/encode_values_unittest.cc
@@ -24,8 +24,7 @@
 
 TEST(EncodeValuesTest, EncodeTimeAsGeneralizedTime) {
   // Fri, 24 Jun 2016 17:04:54 GMT
-  base::Time time =
-      base::Time::UnixEpoch() + base::TimeDelta::FromSeconds(1466787894);
+  base::Time time = base::Time::UnixEpoch() + base::Seconds(1466787894);
   GeneralizedTime generalized_time;
   ASSERT_TRUE(EncodeTimeAsGeneralizedTime(time, &generalized_time));
   EXPECT_EQ(2016, generalized_time.year);
@@ -52,8 +51,7 @@
   constexpr int kDaysPerYear = 365;
   constexpr int kExtraLeapDaysOverThoseYears = 8;
   constexpr base::Time kStartOfYear1570 =
-      base::Time() -
-      base::TimeDelta::FromDays(kYearsBeforeWindowsEpoch * kDaysPerYear +
+      base::Time() - base::Days(kYearsBeforeWindowsEpoch * kDaysPerYear +
                                 kExtraLeapDaysOverThoseYears);
 
   GeneralizedTime generalized_time;
@@ -105,8 +103,7 @@
   generalized_time.seconds = 54;
   base::Time time;
   ASSERT_TRUE(GeneralizedTimeToTime(generalized_time, &time));
-  EXPECT_EQ(base::Time::UnixEpoch() + base::TimeDelta::FromSeconds(1466787894),
-            time);
+  EXPECT_EQ(base::Time::UnixEpoch() + base::Seconds(1466787894), time);
 }
 
 TEST(EncodeValuesTest, GeneralizedTimeToTimeBeforeWindowsEpoch) {
diff --git a/net/disk_cache/backend_unittest.cc b/net/disk_cache/backend_unittest.cc
index a538758..5e8b5841 100644
--- a/net/disk_cache/backend_unittest.cc
+++ b/net/disk_cache/backend_unittest.cc
@@ -4583,8 +4583,8 @@
   // Don't want AddDelay since it sleep 1s(!) for SimpleCache, and we don't
   // care about reduced precision in index here.
   while (base::Time::NowFromSystemTime() <=
-         (entry1_timestamp + base::TimeDelta::FromMilliseconds(10))) {
-    base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(1));
+         (entry1_timestamp + base::Milliseconds(10))) {
+    base::PlatformThread::Sleep(base::Milliseconds(1));
   }
 
   disk_cache::Entry* entry2;
@@ -5372,7 +5372,7 @@
   EXPECT_EQ(kBufSize, WriteData(entry, 0, 0, buffer.get(), kBufSize, false));
   entry->Close();
 
-  clock.Advance(-base::TimeDelta::FromHours(1));
+  clock.Advance(-base::Hours(1));
 
   ASSERT_THAT(CreateEntry("key2", &entry), IsOk());
   EXPECT_EQ(kBufSize, WriteData(entry, 0, 0, buffer.get(), kBufSize, false));
diff --git a/net/disk_cache/blockfile/eviction.cc b/net/disk_cache/blockfile/eviction.cc
index 58975d0..9344ba7 100644
--- a/net/disk_cache/blockfile/eviction.cc
+++ b/net/disk_cache/blockfile/eviction.cc
@@ -221,7 +221,7 @@
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&Eviction::DelayedTrim, ptr_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(1000));
+      base::Milliseconds(1000));
 }
 
 void Eviction::DelayedTrim() {
diff --git a/net/disk_cache/blockfile/file_win.cc b/net/disk_cache/blockfile/file_win.cc
index 0649b13..908e7de 100644
--- a/net/disk_cache/blockfile/file_win.cc
+++ b/net/disk_cache/blockfile/file_win.cc
@@ -280,7 +280,7 @@
 // Static.
 void File::WaitForPendingIOForTesting(int* num_pending_io) {
   // Spin on the burn-down count until the file IO completes.
-  constexpr base::TimeDelta kMillisecond = base::TimeDelta::FromMilliseconds(1);
+  constexpr base::TimeDelta kMillisecond = base::Milliseconds(1);
   for (; *num_pending_io; base::PlatformThread::Sleep(kMillisecond)) {
     // This waits for callbacks running on worker threads.
     base::ThreadPoolInstance::Get()->FlushForTesting();  // IN-TEST
diff --git a/net/disk_cache/blockfile/histogram_macros.h b/net/disk_cache/blockfile/histogram_macros.h
index f709e2d0..f5e09f4 100644
--- a/net/disk_cache/blockfile/histogram_macros.h
+++ b/net/disk_cache/blockfile/histogram_macros.h
@@ -43,9 +43,9 @@
       counter->AddTime(sample); \
     } while (0)
 
-#define CACHE_HISTOGRAM_TIMES(name, sample) CACHE_HISTOGRAM_CUSTOM_TIMES( \
-    name, sample, base::TimeDelta::FromMilliseconds(1), \
-    base::TimeDelta::FromSeconds(10), 50)
+#define CACHE_HISTOGRAM_TIMES(name, sample)                         \
+  CACHE_HISTOGRAM_CUSTOM_TIMES(name, sample, base::Milliseconds(1), \
+                               base::Seconds(10), 50)
 
 #define CACHE_HISTOGRAM_ENUMERATION(name, sample, boundary_value) do { \
     base::HistogramBase* counter = base::LinearHistogram::FactoryGet( \
diff --git a/net/disk_cache/disk_cache_fuzzer.cc b/net/disk_cache/disk_cache_fuzzer.cc
index b2618c8..45896db3 100644
--- a/net/disk_cache/disk_cache_fuzzer.cc
+++ b/net/disk_cache/disk_cache_fuzzer.cc
@@ -861,9 +861,9 @@
         break;
       }
       case disk_cache_fuzzer::FuzzCommand::kFastForwardBy: {
-        base::TimeDelta to_wait = base::TimeDelta::FromMilliseconds(
-            command.fast_forward_by().capped_num_millis() %
-            kMaxNumMillisToWait);
+        base::TimeDelta to_wait =
+            base::Milliseconds(command.fast_forward_by().capped_num_millis() %
+                               kMaxNumMillisToWait);
         MAYBE_PRINT << "FastForwardBy(" << to_wait << ")" << std::endl;
         init_globals->task_environment_->FastForwardBy(to_wait);
 
@@ -1113,7 +1113,7 @@
           continue;
 
         MAYBE_PRINT << "AddRealDelay(1ms)" << std::endl;
-        base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(1));
+        base::PlatformThread::Sleep(base::Milliseconds(1));
         break;
       }
       case disk_cache_fuzzer::FuzzCommand::FUZZ_COMMAND_ONEOF_NOT_SET: {
diff --git a/net/disk_cache/disk_cache_perftest.cc b/net/disk_cache/disk_cache_perftest.cc
index 37446ea..6cae628 100644
--- a/net/disk_cache/disk_cache_perftest.cc
+++ b/net/disk_cache/disk_cache_perftest.cc
@@ -671,8 +671,7 @@
 
     for (int i = 0; i < kEntries; ++i) {
       index.InsertEntryForTesting(
-          i, disk_cache::EntryMetadata(start + base::TimeDelta::FromSeconds(i),
-                                       1u));
+          i, disk_cache::EntryMetadata(start + base::Seconds(i), 1u));
     }
 
     // Trigger an eviction.
diff --git a/net/disk_cache/disk_cache_test_base.cc b/net/disk_cache/disk_cache_test_base.cc
index f7467ec..7e2a885 100644
--- a/net/disk_cache/disk_cache_test_base.cc
+++ b/net/disk_cache/disk_cache_test_base.cc
@@ -338,13 +338,12 @@
     const base::Time initial_time = base::Time::Now();
     do {
       base::PlatformThread::YieldCurrentThread();
-    } while (base::Time::Now() - initial_time <
-             base::TimeDelta::FromSeconds(1));
+    } while (base::Time::Now() - initial_time < base::Seconds(1));
   }
 
   base::Time initial = base::Time::Now();
   while (base::Time::Now() <= initial) {
-    base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(1));
+    base::PlatformThread::Sleep(base::Milliseconds(1));
   };
 }
 
diff --git a/net/disk_cache/entry_unittest.cc b/net/disk_cache/entry_unittest.cc
index 1cedffd..caae926 100644
--- a/net/disk_cache/entry_unittest.cc
+++ b/net/disk_cache/entry_unittest.cc
@@ -2262,7 +2262,7 @@
       // Most likely we are waiting for the result of reading the sparse info
       // (it's always async on Posix so it is easy to miss). Unfortunately we
       // don't have any signal to watch for so we can only wait.
-      base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(500));
+      base::PlatformThread::Sleep(base::Milliseconds(500));
       base::RunLoop().RunUntilIdle();
     }
     EXPECT_EQ(0, cache_->GetEntryCount());
@@ -5291,8 +5291,7 @@
   disk_cache::Entry* entry1 = nullptr;
   ASSERT_THAT(CreateEntry(kKey, &entry1), IsOk());
   ASSERT_TRUE(nullptr != entry1);
-  base::Time modified_last_used =
-      entry1->GetLastUsed() - base::TimeDelta::FromMinutes(5);
+  base::Time modified_last_used = entry1->GetLastUsed() - base::Minutes(5);
   entry1->SetLastUsedTimeForTest(modified_last_used);
   entry1->Close();
 
@@ -5301,8 +5300,8 @@
   ASSERT_TRUE(nullptr != entry2);
 
   base::TimeDelta diff = modified_last_used - entry2->GetLastUsed();
-  EXPECT_LT(diff, base::TimeDelta::FromSeconds(2));
-  EXPECT_GT(diff, -base::TimeDelta::FromSeconds(2));
+  EXPECT_LT(diff, base::Seconds(2));
+  EXPECT_GT(diff, -base::Seconds(2));
   entry2->Close();
 }
 
diff --git a/net/disk_cache/simple/simple_index.cc b/net/disk_cache/simple/simple_index.cc
index 9ca0046..118669b 100644
--- a/net/disk_cache/simple/simple_index.cc
+++ b/net/disk_cache/simple/simple_index.cc
@@ -86,7 +86,7 @@
     return base::Time();
 
   return base::Time::UnixEpoch() +
-      base::TimeDelta::FromSeconds(last_used_time_seconds_since_epoch_);
+         base::Seconds(last_used_time_seconds_since_epoch_);
 }
 
 void EntryMetadata::SetLastUsedTime(const base::Time& last_used_time) {
@@ -519,8 +519,8 @@
   const int delay = app_on_background_ ? kWriteToDiskOnBackgroundDelayMSecs
                                        : kWriteToDiskDelayMSecs;
   // If the timer is already active, Start() will just Reset it, postponing it.
-  write_to_disk_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(delay), write_to_disk_cb_);
+  write_to_disk_timer_.Start(FROM_HERE, base::Milliseconds(delay),
+                             write_to_disk_cb_);
 }
 
 bool SimpleIndex::UpdateEntryIteratorSize(
diff --git a/net/disk_cache/simple/simple_index.h b/net/disk_cache/simple/simple_index.h
index ba55465a..17d79a1 100644
--- a/net/disk_cache/simple/simple_index.h
+++ b/net/disk_cache/simple/simple_index.h
@@ -76,7 +76,7 @@
                    bool app_cache_has_trailer_prefetch_size);
 
   static base::TimeDelta GetLowerEpsilonForTimeComparisons() {
-    return base::TimeDelta::FromSeconds(1);
+    return base::Seconds(1);
   }
   static base::TimeDelta GetUpperEpsilonForTimeComparisons() {
     return base::TimeDelta();
diff --git a/net/disk_cache/simple/simple_index_file_unittest.cc b/net/disk_cache/simple/simple_index_file_unittest.cc
index a01f096e..268ab47 100644
--- a/net/disk_cache/simple/simple_index_file_unittest.cc
+++ b/net/disk_cache/simple/simple_index_file_unittest.cc
@@ -431,14 +431,13 @@
   EXPECT_FALSE(
       WrappedSimpleIndexFile::LegacyIsIndexFileStale(cache_mtime, index_path));
 
-  const base::Time past_time = base::Time::Now() -
-      base::TimeDelta::FromSeconds(10);
+  const base::Time past_time = base::Time::Now() - base::Seconds(10);
   EXPECT_TRUE(base::TouchFile(index_path, past_time, past_time));
   EXPECT_TRUE(base::TouchFile(cache_path, past_time, past_time));
   ASSERT_TRUE(simple_util::GetMTime(cache_path, &cache_mtime));
   EXPECT_FALSE(
       WrappedSimpleIndexFile::LegacyIsIndexFileStale(cache_mtime, index_path));
-  const base::Time even_older = past_time - base::TimeDelta::FromSeconds(10);
+  const base::Time even_older = past_time - base::Seconds(10);
   EXPECT_TRUE(base::TouchFile(index_path, even_older, even_older));
   EXPECT_TRUE(
       WrappedSimpleIndexFile::LegacyIsIndexFileStale(cache_mtime, index_path));
diff --git a/net/disk_cache/simple/simple_index_unittest.cc b/net/disk_cache/simple/simple_index_unittest.cc
index 4707e032..9c5f41b9 100644
--- a/net/disk_cache/simple/simple_index_unittest.cc
+++ b/net/disk_cache/simple/simple_index_unittest.cc
@@ -30,8 +30,7 @@
 namespace disk_cache {
 namespace {
 
-const base::Time kTestLastUsedTime =
-    base::Time::UnixEpoch() + base::TimeDelta::FromDays(20);
+const base::Time kTestLastUsedTime = base::Time::UnixEpoch() + base::Days(20);
 const uint32_t kTestEntrySize = 789;
 const uint8_t kTestEntryMemoryData = 123;
 
@@ -50,9 +49,9 @@
   }
 
   void CheckEntryMetadataValues(const EntryMetadata& entry_metadata) {
-    EXPECT_LT(kTestLastUsedTime - base::TimeDelta::FromSeconds(2),
+    EXPECT_LT(kTestLastUsedTime - base::Seconds(2),
               entry_metadata.GetLastUsedTime());
-    EXPECT_GT(kTestLastUsedTime + base::TimeDelta::FromSeconds(2),
+    EXPECT_GT(kTestLastUsedTime + base::Seconds(2),
               entry_metadata.GetLastUsedTime());
     EXPECT_EQ(RoundSize(kTestEntrySize), entry_metadata.GetEntrySize());
     EXPECT_EQ(kTestEntryMemoryData, entry_metadata.GetInMemoryData());
@@ -125,8 +124,7 @@
     const base::Time initial_time = base::Time::Now();
     do {
       base::PlatformThread::YieldCurrentThread();
-    } while (base::Time::Now() -
-             initial_time < base::TimeDelta::FromSeconds(1));
+    } while (base::Time::Now() - initial_time < base::Seconds(1));
   }
 
   // From SimpleIndexDelegate:
@@ -203,10 +201,8 @@
   const base::Time new_time = base::Time::Now();
   entry_metadata.SetLastUsedTime(new_time);
 
-  EXPECT_LT(new_time - base::TimeDelta::FromSeconds(2),
-            entry_metadata.GetLastUsedTime());
-  EXPECT_GT(new_time + base::TimeDelta::FromSeconds(2),
-            entry_metadata.GetLastUsedTime());
+  EXPECT_LT(new_time - base::Seconds(2), entry_metadata.GetLastUsedTime());
+  EXPECT_GT(new_time + base::Seconds(2), entry_metadata.GetLastUsedTime());
 }
 
 // Tests that setting an unusually small/large last used time results in
@@ -224,7 +220,7 @@
   // 1970).
   entry_metadata.SetLastUsedTime(
       base::Time::FromInternalValue(7u));  // This is a date in 1601.
-  EXPECT_EQ(base::Time::UnixEpoch() + base::TimeDelta::FromSeconds(1),
+  EXPECT_EQ(base::Time::UnixEpoch() + base::Seconds(1),
             entry_metadata.GetLastUsedTime());
 }
 
@@ -293,8 +289,8 @@
   index()->Insert(hashes_.at<1>());
   ASSERT_TRUE(GetEntryForTesting(hashes_.at<1>(), &metadata));
   base::Time now(base::Time::Now());
-  EXPECT_LT(now - base::TimeDelta::FromMinutes(1), metadata.GetLastUsedTime());
-  EXPECT_GT(now + base::TimeDelta::FromMinutes(1), metadata.GetLastUsedTime());
+  EXPECT_LT(now - base::Minutes(1), metadata.GetLastUsedTime());
+  EXPECT_GT(now + base::Minutes(1), metadata.GetLastUsedTime());
   EXPECT_EQ(0U, metadata.GetEntrySize());
 
   // Confirm state after remove.
@@ -375,17 +371,13 @@
   index()->SetMaxSize(1000);
 
   const uint64_t kHash1 = hashes_.at<1>();
-  InsertIntoIndexFileReturn(kHash1, now - base::TimeDelta::FromDays(2), 475);
+  InsertIntoIndexFileReturn(kHash1, now - base::Days(2), 475);
   ReturnIndexFile();
 
   EntryMetadata metadata;
   EXPECT_TRUE(GetEntryForTesting(kHash1, &metadata));
-  EXPECT_LT(
-      now - base::TimeDelta::FromDays(2) - base::TimeDelta::FromSeconds(1),
-      metadata.GetLastUsedTime());
-  EXPECT_GT(
-      now - base::TimeDelta::FromDays(2) + base::TimeDelta::FromSeconds(1),
-      metadata.GetLastUsedTime());
+  EXPECT_LT(now - base::Days(2) - base::Seconds(1), metadata.GetLastUsedTime());
+  EXPECT_GT(now - base::Days(2) + base::Seconds(1), metadata.GetLastUsedTime());
   EXPECT_EQ(RoundSize(475u), metadata.GetEntrySize());
 
   index()->UpdateEntrySize(kHash1, 600u);
@@ -422,11 +414,8 @@
 TEST_F(SimpleIndexTest, BasicInit) {
   base::Time now(base::Time::Now());
 
-  InsertIntoIndexFileReturn(hashes_.at<1>(),
-                            now - base::TimeDelta::FromDays(2),
-                            10u);
-  InsertIntoIndexFileReturn(hashes_.at<2>(), now - base::TimeDelta::FromDays(3),
-                            1000u);
+  InsertIntoIndexFileReturn(hashes_.at<1>(), now - base::Days(2), 10u);
+  InsertIntoIndexFileReturn(hashes_.at<2>(), now - base::Days(3), 1000u);
 
   ReturnIndexFile();
 
@@ -434,22 +423,14 @@
   EXPECT_TRUE(GetEntryForTesting(hashes_.at<1>(), &metadata));
   EXPECT_EQ(metadata.GetLastUsedTime(),
             index()->GetLastUsedTime(hashes_.at<1>()));
-  EXPECT_LT(
-      now - base::TimeDelta::FromDays(2) - base::TimeDelta::FromSeconds(1),
-      metadata.GetLastUsedTime());
-  EXPECT_GT(
-      now - base::TimeDelta::FromDays(2) + base::TimeDelta::FromSeconds(1),
-      metadata.GetLastUsedTime());
+  EXPECT_LT(now - base::Days(2) - base::Seconds(1), metadata.GetLastUsedTime());
+  EXPECT_GT(now - base::Days(2) + base::Seconds(1), metadata.GetLastUsedTime());
   EXPECT_EQ(RoundSize(10u), metadata.GetEntrySize());
   EXPECT_TRUE(GetEntryForTesting(hashes_.at<2>(), &metadata));
   EXPECT_EQ(metadata.GetLastUsedTime(),
             index()->GetLastUsedTime(hashes_.at<2>()));
-  EXPECT_LT(
-      now - base::TimeDelta::FromDays(3) - base::TimeDelta::FromSeconds(1),
-      metadata.GetLastUsedTime());
-  EXPECT_GT(
-      now - base::TimeDelta::FromDays(3) + base::TimeDelta::FromSeconds(1),
-      metadata.GetLastUsedTime());
+  EXPECT_LT(now - base::Days(3) - base::Seconds(1), metadata.GetLastUsedTime());
+  EXPECT_GT(now - base::Days(3) + base::Seconds(1), metadata.GetLastUsedTime());
   EXPECT_EQ(RoundSize(1000u), metadata.GetEntrySize());
   EXPECT_EQ(base::Time(), index()->GetLastUsedTime(hashes_.at<3>()));
 }
@@ -459,9 +440,7 @@
   const uint64_t kHash1 = hashes_.at<1>();
   index()->Remove(kHash1);
 
-  InsertIntoIndexFileReturn(kHash1,
-                            base::Time::Now() - base::TimeDelta::FromDays(2),
-                            10u);
+  InsertIntoIndexFileReturn(kHash1, base::Time::Now() - base::Days(2), 10u);
   ReturnIndexFile();
 
   EXPECT_FALSE(index()->Has(kHash1));
@@ -473,16 +452,14 @@
   const uint64_t kHash1 = hashes_.at<1>();
   index()->Insert(kHash1);
 
-  InsertIntoIndexFileReturn(kHash1,
-                            base::Time::Now() - base::TimeDelta::FromDays(2),
-                            10u);
+  InsertIntoIndexFileReturn(kHash1, base::Time::Now() - base::Days(2), 10u);
   ReturnIndexFile();
 
   EntryMetadata metadata;
   EXPECT_TRUE(GetEntryForTesting(kHash1, &metadata));
   base::Time now(base::Time::Now());
-  EXPECT_LT(now - base::TimeDelta::FromMinutes(1), metadata.GetLastUsedTime());
-  EXPECT_GT(now + base::TimeDelta::FromMinutes(1), metadata.GetLastUsedTime());
+  EXPECT_LT(now - base::Minutes(1), metadata.GetLastUsedTime());
+  EXPECT_GT(now + base::Minutes(1), metadata.GetLastUsedTime());
   EXPECT_EQ(0U, metadata.GetEntrySize());
 }
 
@@ -492,9 +469,7 @@
   index()->Insert(kHash1);
   index()->Remove(kHash1);
 
-  InsertIntoIndexFileReturn(kHash1,
-                            base::Time::Now() - base::TimeDelta::FromDays(2),
-                            10u);
+  InsertIntoIndexFileReturn(kHash1, base::Time::Now() - base::Days(2), 10u);
   ReturnIndexFile();
 
   EXPECT_FALSE(index()->Has(kHash1));
@@ -506,16 +481,14 @@
   index()->Remove(kHash1);
   index()->Insert(kHash1);
 
-  InsertIntoIndexFileReturn(kHash1,
-                            base::Time::Now() - base::TimeDelta::FromDays(2),
-                            10u);
+  InsertIntoIndexFileReturn(kHash1, base::Time::Now() - base::Days(2), 10u);
   ReturnIndexFile();
 
   EntryMetadata metadata;
   EXPECT_TRUE(GetEntryForTesting(kHash1, &metadata));
   base::Time now(base::Time::Now());
-  EXPECT_LT(now - base::TimeDelta::FromMinutes(1), metadata.GetLastUsedTime());
-  EXPECT_GT(now + base::TimeDelta::FromMinutes(1), metadata.GetLastUsedTime());
+  EXPECT_LT(now - base::Minutes(1), metadata.GetLastUsedTime());
+  EXPECT_GT(now + base::Minutes(1), metadata.GetLastUsedTime());
   EXPECT_EQ(0U, metadata.GetEntrySize());
 }
 
@@ -525,26 +498,16 @@
   base::Time now(base::Time::Now());
 
   index()->Remove(hashes_.at<1>());
-  InsertIntoIndexFileReturn(hashes_.at<1>(),
-                            now - base::TimeDelta::FromDays(2),
-                            10u);
+  InsertIntoIndexFileReturn(hashes_.at<1>(), now - base::Days(2), 10u);
   index()->Insert(hashes_.at<2>());
-  InsertIntoIndexFileReturn(hashes_.at<2>(),
-                            now - base::TimeDelta::FromDays(3),
-                            100u);
+  InsertIntoIndexFileReturn(hashes_.at<2>(), now - base::Days(3), 100u);
   index()->Insert(hashes_.at<3>());
   index()->Remove(hashes_.at<3>());
-  InsertIntoIndexFileReturn(hashes_.at<3>(),
-                            now - base::TimeDelta::FromDays(4),
-                            1000u);
+  InsertIntoIndexFileReturn(hashes_.at<3>(), now - base::Days(4), 1000u);
   index()->Remove(hashes_.at<4>());
   index()->Insert(hashes_.at<4>());
-  InsertIntoIndexFileReturn(hashes_.at<4>(),
-                            now - base::TimeDelta::FromDays(5),
-                            10000u);
-  InsertIntoIndexFileReturn(hashes_.at<5>(),
-                            now - base::TimeDelta::FromDays(6),
-                            100000u);
+  InsertIntoIndexFileReturn(hashes_.at<4>(), now - base::Days(5), 10000u);
+  InsertIntoIndexFileReturn(hashes_.at<5>(), now - base::Days(6), 100000u);
 
   ReturnIndexFile();
 
@@ -552,25 +515,21 @@
 
   EntryMetadata metadata;
   EXPECT_TRUE(GetEntryForTesting(hashes_.at<2>(), &metadata));
-  EXPECT_LT(now - base::TimeDelta::FromMinutes(1), metadata.GetLastUsedTime());
-  EXPECT_GT(now + base::TimeDelta::FromMinutes(1), metadata.GetLastUsedTime());
+  EXPECT_LT(now - base::Minutes(1), metadata.GetLastUsedTime());
+  EXPECT_GT(now + base::Minutes(1), metadata.GetLastUsedTime());
   EXPECT_EQ(0U, metadata.GetEntrySize());
 
   EXPECT_FALSE(index()->Has(hashes_.at<3>()));
 
   EXPECT_TRUE(GetEntryForTesting(hashes_.at<4>(), &metadata));
-  EXPECT_LT(now - base::TimeDelta::FromMinutes(1), metadata.GetLastUsedTime());
-  EXPECT_GT(now + base::TimeDelta::FromMinutes(1), metadata.GetLastUsedTime());
+  EXPECT_LT(now - base::Minutes(1), metadata.GetLastUsedTime());
+  EXPECT_GT(now + base::Minutes(1), metadata.GetLastUsedTime());
   EXPECT_EQ(0U, metadata.GetEntrySize());
 
   EXPECT_TRUE(GetEntryForTesting(hashes_.at<5>(), &metadata));
 
-  EXPECT_GT(
-      now - base::TimeDelta::FromDays(6) + base::TimeDelta::FromSeconds(1),
-      metadata.GetLastUsedTime());
-  EXPECT_LT(
-      now - base::TimeDelta::FromDays(6) - base::TimeDelta::FromSeconds(1),
-      metadata.GetLastUsedTime());
+  EXPECT_GT(now - base::Days(6) + base::Seconds(1), metadata.GetLastUsedTime());
+  EXPECT_LT(now - base::Days(6) - base::Seconds(1), metadata.GetLastUsedTime());
 
   EXPECT_EQ(RoundSize(100000u), metadata.GetEntrySize());
 }
@@ -578,9 +537,7 @@
 TEST_F(SimpleIndexTest, BasicEviction) {
   base::Time now(base::Time::Now());
   index()->SetMaxSize(1000);
-  InsertIntoIndexFileReturn(hashes_.at<1>(),
-                            now - base::TimeDelta::FromDays(2),
-                            475u);
+  InsertIntoIndexFileReturn(hashes_.at<1>(), now - base::Days(2), 475u);
   index()->Insert(hashes_.at<2>());
   index()->UpdateEntrySize(hashes_.at<2>(), 475u);
   ReturnIndexFile();
@@ -611,10 +568,8 @@
 TEST_F(SimpleIndexTest, EvictBySize) {
   base::Time now(base::Time::Now());
   index()->SetMaxSize(50000);
-  InsertIntoIndexFileReturn(hashes_.at<1>(), now - base::TimeDelta::FromDays(2),
-                            475u);
-  InsertIntoIndexFileReturn(hashes_.at<2>(), now - base::TimeDelta::FromDays(1),
-                            40000u);
+  InsertIntoIndexFileReturn(hashes_.at<1>(), now - base::Days(2), 475u);
+  InsertIntoIndexFileReturn(hashes_.at<2>(), now - base::Days(1), 40000u);
   ReturnIndexFile();
   WaitForTimeChange();
 
@@ -642,10 +597,8 @@
 TEST_F(SimpleIndexCodeCacheTest, DisableEvictBySize) {
   base::Time now(base::Time::Now());
   index()->SetMaxSize(50000);
-  InsertIntoIndexFileReturn(hashes_.at<1>(), now - base::TimeDelta::FromDays(2),
-                            475u);
-  InsertIntoIndexFileReturn(hashes_.at<2>(), now - base::TimeDelta::FromDays(1),
-                            40000u);
+  InsertIntoIndexFileReturn(hashes_.at<1>(), now - base::Days(2), 475u);
+  InsertIntoIndexFileReturn(hashes_.at<2>(), now - base::Days(1), 40000u);
   ReturnIndexFile();
   WaitForTimeChange();
 
@@ -674,10 +627,8 @@
 TEST_F(SimpleIndexTest, EvictBySize2) {
   base::Time now(base::Time::Now());
   index()->SetMaxSize(50000);
-  InsertIntoIndexFileReturn(hashes_.at<1>(),
-                            now - base::TimeDelta::FromDays(200), 475u);
-  InsertIntoIndexFileReturn(hashes_.at<2>(), now - base::TimeDelta::FromDays(1),
-                            40000u);
+  InsertIntoIndexFileReturn(hashes_.at<1>(), now - base::Days(200), 475u);
+  InsertIntoIndexFileReturn(hashes_.at<2>(), now - base::Days(1), 40000u);
   ReturnIndexFile();
   WaitForTimeChange();
 
@@ -764,8 +715,8 @@
   ASSERT_EQ(1u, entry_set.size());
   EXPECT_EQ(hash_key, entry_set.begin()->first);
   const EntryMetadata& entry1(entry_set.begin()->second);
-  EXPECT_LT(now - base::TimeDelta::FromMinutes(1), entry1.GetLastUsedTime());
-  EXPECT_GT(now + base::TimeDelta::FromMinutes(1), entry1.GetLastUsedTime());
+  EXPECT_LT(now - base::Minutes(1), entry1.GetLastUsedTime());
+  EXPECT_GT(now + base::Minutes(1), entry1.GetLastUsedTime());
   EXPECT_EQ(RoundSize(20u), entry1.GetEntrySize());
 }
 
diff --git a/net/dns/context_host_resolver_unittest.cc b/net/dns/context_host_resolver_unittest.cc
index 245f765..397d3fee 100644
--- a/net/dns/context_host_resolver_unittest.cc
+++ b/net/dns/context_host_resolver_unittest.cc
@@ -654,15 +654,15 @@
   // registering into the HostResolverManager initializes and invalidates the
   // cache.
   base::SimpleTestTickClock clock;
-  clock.Advance(base::TimeDelta::FromDays(62));  // Arbitrary non-zero time.
+  clock.Advance(base::Days(62));  // Arbitrary non-zero time.
   AddressList expected(kEndpoint);
   host_cache->Set(
       HostCache::Key("example.com", DnsQueryType::UNSPECIFIED,
                      0 /* host_resolver_flags */, HostResolverSource::ANY,
                      NetworkIsolationKey()),
       HostCache::Entry(OK, expected, HostCache::Entry::SOURCE_DNS,
-                       base::TimeDelta::FromDays(1)),
-      clock.NowTicks(), base::TimeDelta::FromDays(1));
+                       base::Days(1)),
+      clock.NowTicks(), base::Days(1));
   resolver->SetTickClockForTesting(&clock);
 
   // Allow stale results and then confirm the result is not stale in order to
diff --git a/net/dns/dns_config.h b/net/dns/dns_config.h
index 1e41f771..7151cc6 100644
--- a/net/dns/dns_config.h
+++ b/net/dns/dns_config.h
@@ -22,8 +22,7 @@
 
 namespace net {
 
-constexpr base::TimeDelta kDnsDefaultFallbackPeriod =
-    base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kDnsDefaultFallbackPeriod = base::Seconds(1);
 
 // DnsConfig stores configuration of the system resolver.
 struct NET_EXPORT DnsConfig {
diff --git a/net/dns/dns_config_service.cc b/net/dns/dns_config_service.cc
index 9b21f6a8..f33451fe 100644
--- a/net/dns/dns_config_service.cc
+++ b/net/dns/dns_config_service.cc
@@ -25,7 +25,7 @@
 
 // static
 const base::TimeDelta DnsConfigService::kInvalidationTimeout =
-    base::TimeDelta::FromMilliseconds(150);
+    base::Milliseconds(150);
 
 DnsConfigService::DnsConfigService(
     base::FilePath::StringPieceType hosts_file_path,
diff --git a/net/dns/dns_config_service.h b/net/dns/dns_config_service.h
index 54b3efd..4cf67ad 100644
--- a/net/dns/dns_config_service.h
+++ b/net/dns/dns_config_service.h
@@ -47,10 +47,9 @@
   // triggering refreshes. Will trigger refreshes synchronously on nullopt.
   // Useful for platforms where multiple changes may be made and detected before
   // the config is stabilized and ready to be read.
-  explicit DnsConfigService(
-      base::FilePath::StringPieceType hosts_file_path,
-      absl::optional<base::TimeDelta> config_change_delay =
-          base::TimeDelta::FromMilliseconds(50));
+  explicit DnsConfigService(base::FilePath::StringPieceType hosts_file_path,
+                            absl::optional<base::TimeDelta>
+                                config_change_delay = base::Milliseconds(50));
 
   DnsConfigService(const DnsConfigService&) = delete;
   DnsConfigService& operator=(const DnsConfigService&) = delete;
diff --git a/net/dns/dns_config_service_android.h b/net/dns/dns_config_service_android.h
index 78488e7..e99300f6 100644
--- a/net/dns/dns_config_service_android.h
+++ b/net/dns/dns_config_service_android.h
@@ -24,8 +24,7 @@
 // constructed on a different sequence than which it's later called on.
 class NET_EXPORT_PRIVATE DnsConfigServiceAndroid : public DnsConfigService {
  public:
-  static constexpr base::TimeDelta kConfigChangeDelay =
-      base::TimeDelta::FromMilliseconds(50);
+  static constexpr base::TimeDelta kConfigChangeDelay = base::Milliseconds(50);
 
   DnsConfigServiceAndroid();
   ~DnsConfigServiceAndroid() override;
diff --git a/net/dns/dns_config_service_linux.cc b/net/dns/dns_config_service_linux.cc
index 93bda26..ffb2c21 100644
--- a/net/dns/dns_config_service_linux.cc
+++ b/net/dns/dns_config_service_linux.cc
@@ -77,7 +77,7 @@
   }
 
   dns_config.ndots = res.ndots;
-  dns_config.fallback_period = base::TimeDelta::FromSeconds(res.retrans);
+  dns_config.fallback_period = base::Seconds(res.retrans);
   dns_config.attempts = res.retry;
 #if defined(RES_ROTATE)
   dns_config.rotate = res.options & RES_ROTATE;
diff --git a/net/dns/dns_config_service_posix.cc b/net/dns/dns_config_service_posix.cc
index b18f1232..a88fa461 100644
--- a/net/dns/dns_config_service_posix.cc
+++ b/net/dns/dns_config_service_posix.cc
@@ -309,7 +309,7 @@
   }
 
   dns_config.ndots = res.ndots;
-  dns_config.fallback_period = base::TimeDelta::FromSeconds(res.retrans);
+  dns_config.fallback_period = base::Seconds(res.retrans);
   dns_config.attempts = res.retry;
 #if defined(RES_ROTATE)
   dns_config.rotate = res.options & RES_ROTATE;
diff --git a/net/dns/dns_config_service_posix_unittest.cc b/net/dns/dns_config_service_posix_unittest.cc
index ca08ee6..11350305 100644
--- a/net/dns/dns_config_service_posix_unittest.cc
+++ b/net/dns/dns_config_service_posix_unittest.cc
@@ -117,7 +117,7 @@
 
 void InitializeExpectedConfig(DnsConfig* config) {
   config->ndots = 2;
-  config->fallback_period = base::TimeDelta::FromSeconds(4);
+  config->fallback_period = base::Seconds(4);
   config->attempts = 7;
   config->rotate = true;
   config->append_to_multi_label_name = true;
diff --git a/net/dns/dns_config_service_unittest.cc b/net/dns/dns_config_service_unittest.cc
index f673f92..3443715 100644
--- a/net/dns/dns_config_service_unittest.cc
+++ b/net/dns/dns_config_service_unittest.cc
@@ -113,8 +113,7 @@
   DnsConfig bad_config = last_config_ = MakeConfig(0xBAD);
   service_->InvalidateConfig();
   // We don't expect an update. This should time out.
-  WaitForConfig(base::TimeDelta::FromMilliseconds(100) +
-                TestTimeouts::tiny_timeout());
+  WaitForConfig(base::Milliseconds(100) + TestTimeouts::tiny_timeout());
   EXPECT_TRUE(last_config_.Equals(bad_config)) << "Unexpected change";
 
   last_config_ = DnsConfig();
diff --git a/net/dns/dns_config_service_win.cc b/net/dns/dns_config_service_win.cc
index b8bccb6a..151cdab 100644
--- a/net/dns/dns_config_service_win.cc
+++ b/net/dns/dns_config_service_win.cc
@@ -511,7 +511,7 @@
       // Try again in a while in case DnsConfigWatcher missed the signal.
       base::SequencedTaskRunnerHandle::Get()->PostDelayedTask(
           FROM_HERE, base::BindOnce(&ConfigReader::WorkNow, this),
-          base::TimeDelta::FromSeconds(kRetryIntervalSeconds));
+          base::Seconds(kRetryIntervalSeconds));
     }
   }
 
diff --git a/net/dns/dns_response_result_extractor.cc b/net/dns/dns_response_result_extractor.cc
index 8e82202..eae438c 100644
--- a/net/dns/dns_response_result_extractor.cc
+++ b/net/dns/dns_response_result_extractor.cc
@@ -214,7 +214,7 @@
       if (!cname_data)
         return ExtractionError::kMalformedCname;
 
-      base::TimeDelta ttl = base::TimeDelta::FromSeconds(record->ttl());
+      base::TimeDelta ttl = base::Seconds(record->ttl());
       response_ttl =
           std::min(response_ttl.value_or(base::TimeDelta::Max()), ttl);
 
@@ -222,7 +222,7 @@
       DCHECK(added);
     } else if (record->klass() == dns_protocol::kClassIN &&
                record->type() == result_qtype) {
-      base::TimeDelta ttl = base::TimeDelta::FromSeconds(record->ttl());
+      base::TimeDelta ttl = base::Seconds(record->ttl());
       response_ttl =
           std::min(response_ttl.value_or(base::TimeDelta::Max()), ttl);
 
@@ -246,7 +246,7 @@
       DnsResourceRecord record;
       if (parser.ReadRecord(&record) && record.type == dns_protocol::kTypeSOA) {
         soa_found = true;
-        base::TimeDelta ttl = base::TimeDelta::FromSeconds(record.ttl);
+        base::TimeDelta ttl = base::Seconds(record.ttl);
         response_ttl =
             std::min(response_ttl.value_or(base::TimeDelta::Max()), ttl);
       }
diff --git a/net/dns/dns_response_result_extractor_unittest.cc b/net/dns/dns_response_result_extractor_unittest.cc
index c411950..dcf38fd4 100644
--- a/net/dns/dns_response_result_extractor_unittest.cc
+++ b/net/dns/dns_response_result_extractor_unittest.cc
@@ -126,7 +126,7 @@
 }
 
 TEST(DnsResponseResultExtractorTest, ExtractsNxdomainAResponses) {
-  constexpr auto kTtl = base::TimeDelta::FromHours(2);
+  constexpr auto kTtl = base::Hours(2);
 
   DnsResponse response = BuildTestDnsResponse(
       "address.test", dns_protocol::kTypeA, /*answers=*/{},
@@ -151,7 +151,7 @@
 }
 
 TEST(DnsResponseResultExtractorTest, ExtractsNodataAResponses) {
-  constexpr auto kTtl = base::TimeDelta::FromMinutes(15);
+  constexpr auto kTtl = base::Minutes(15);
 
   DnsResponse response = BuildTestDnsResponse(
       "address.test", dns_protocol::kTypeA, /*answers=*/{},
@@ -223,13 +223,12 @@
 TEST(DnsResponseResultExtractorTest, IgnoresWrongTypeRecordsMixedWithARecords) {
   constexpr char kName[] = "address.test";
   const IPAddress kExpected(8, 8, 8, 8);
-  constexpr auto kTtl = base::TimeDelta::FromDays(3);
+  constexpr auto kTtl = base::Days(3);
 
-  DnsResponse response =
-      BuildTestDnsResponse(kName, dns_protocol::kTypeA,
-                           {BuildTestTextRecord(kName, /*text_strings=*/{"foo"},
-                                                base::TimeDelta::FromHours(2)),
-                            BuildTestAddressRecord(kName, kExpected, kTtl)});
+  DnsResponse response = BuildTestDnsResponse(
+      kName, dns_protocol::kTypeA,
+      {BuildTestTextRecord(kName, /*text_strings=*/{"foo"}, base::Hours(2)),
+       BuildTestAddressRecord(kName, kExpected, kTtl)});
   DnsResponseResultExtractor extractor(&response);
 
   HostCache::Entry results(ERR_FAILED, HostCache::Entry::SOURCE_UNKNOWN);
@@ -251,15 +250,14 @@
 
 TEST(DnsResponseResultExtractorTest, ExtractsMinATtl) {
   constexpr char kName[] = "name.test";
-  constexpr base::TimeDelta kMinTtl = base::TimeDelta::FromMinutes(4);
+  constexpr base::TimeDelta kMinTtl = base::Minutes(4);
 
   DnsResponse response = BuildTestDnsResponse(
       kName, dns_protocol::kTypeA,
-      {BuildTestAddressRecord(kName, IPAddress(1, 2, 3, 4),
-                              base::TimeDelta::FromHours(3)),
+      {BuildTestAddressRecord(kName, IPAddress(1, 2, 3, 4), base::Hours(3)),
        BuildTestAddressRecord(kName, IPAddress(2, 3, 4, 5), kMinTtl),
        BuildTestAddressRecord(kName, IPAddress(3, 4, 5, 6),
-                              base::TimeDelta::FromMinutes(15))});
+                              base::Minutes(15))});
   DnsResponseResultExtractor extractor(&response);
 
   HostCache::Entry results(ERR_FAILED, HostCache::Entry::SOURCE_UNKNOWN);
@@ -302,7 +300,7 @@
 }
 
 TEST(DnsResponseResultExtractorTest, ExtractsNxdomainTxtResponses) {
-  constexpr auto kTtl = base::TimeDelta::FromDays(4);
+  constexpr auto kTtl = base::Days(4);
 
   DnsResponse response = BuildTestDnsResponse(
       "name.test", dns_protocol::kTypeTXT, /*answers=*/{},
@@ -324,7 +322,7 @@
 }
 
 TEST(DnsResponseResultExtractorTest, ExtractsNodataTxtResponses) {
-  constexpr auto kTtl = base::TimeDelta::FromMinutes(42);
+  constexpr auto kTtl = base::Minutes(42);
 
   DnsResponse response = BuildTestDnsResponse(
       "name.test", dns_protocol::kTypeTXT,
@@ -389,13 +387,13 @@
 
 TEST(DnsResponseResultExtractorTest, ExtractsMinTxtTtl) {
   constexpr char kName[] = "name.test";
-  constexpr base::TimeDelta kMinTtl = base::TimeDelta::FromMinutes(4);
+  constexpr base::TimeDelta kMinTtl = base::Minutes(4);
 
   DnsResponse response = BuildTestDnsResponse(
       kName, dns_protocol::kTypeTXT,
-      {BuildTestTextRecord(kName, {"foo"}, base::TimeDelta::FromHours(3)),
+      {BuildTestTextRecord(kName, {"foo"}, base::Hours(3)),
        BuildTestTextRecord(kName, {"bar"}, kMinTtl),
-       BuildTestTextRecord(kName, {"baz"}, base::TimeDelta::FromMinutes(15))});
+       BuildTestTextRecord(kName, {"baz"}, base::Minutes(15))});
   DnsResponseResultExtractor extractor(&response);
 
   HostCache::Entry results(ERR_FAILED, HostCache::Entry::SOURCE_UNKNOWN);
@@ -424,7 +422,7 @@
 }
 
 TEST(DnsResponseResultExtractorTest, ExtractsNxdomainPtrResponses) {
-  constexpr auto kTtl = base::TimeDelta::FromHours(5);
+  constexpr auto kTtl = base::Hours(5);
 
   DnsResponse response = BuildTestDnsResponse(
       "name.test", dns_protocol::kTypePTR, /*answers=*/{},
@@ -446,7 +444,7 @@
 }
 
 TEST(DnsResponseResultExtractorTest, ExtractsNodataPtrResponses) {
-  constexpr auto kTtl = base::TimeDelta::FromMinutes(50);
+  constexpr auto kTtl = base::Minutes(50);
 
   DnsResponse response = BuildTestDnsResponse(
       "name.test", dns_protocol::kTypePTR, /*answers=*/{},
@@ -567,7 +565,7 @@
 }
 
 TEST(DnsResponseResultExtractorTest, ExtractsNxdomainSrvResponses) {
-  constexpr auto kTtl = base::TimeDelta::FromDays(7);
+  constexpr auto kTtl = base::Days(7);
 
   DnsResponse response = BuildTestDnsResponse(
       "name.test", dns_protocol::kTypeSRV, /*answers=*/{},
@@ -589,7 +587,7 @@
 }
 
 TEST(DnsResponseResultExtractorTest, ExtractsNodataSrvResponses) {
-  constexpr auto kTtl = base::TimeDelta::FromHours(12);
+  constexpr auto kTtl = base::Hours(12);
 
   DnsResponse response = BuildTestDnsResponse(
       "name.test", dns_protocol::kTypeSRV, /*answers=*/{},
@@ -654,7 +652,7 @@
 }
 
 TEST(DnsResponseResultExtractorTest, ExtractsExperimentalHttpsResponses) {
-  constexpr auto kTtl = base::TimeDelta::FromMinutes(31);
+  constexpr auto kTtl = base::Minutes(31);
 
   DnsResponse response = BuildTestDnsResponse(
       "https.test", dns_protocol::kTypeHttps,
@@ -676,7 +674,7 @@
 
 TEST(DnsResponseResultExtractorTest,
      ExtractsNxdomainExperimentalHttpsResponses) {
-  constexpr auto kTtl = base::TimeDelta::FromHours(8);
+  constexpr auto kTtl = base::Hours(8);
 
   DnsResponse response = BuildTestDnsResponse(
       "https.test", dns_protocol::kTypeHttps, /*answers=*/{},
@@ -700,7 +698,7 @@
 }
 
 TEST(DnsResponseResultExtractorTest, ExtractsNodataExperimentalHttpsResponses) {
-  constexpr auto kTtl = base::TimeDelta::FromDays(3);
+  constexpr auto kTtl = base::Days(3);
 
   DnsResponse response = BuildTestDnsResponse(
       "https.test", dns_protocol::kTypeHttps, /*answers=*/{},
@@ -777,7 +775,7 @@
 
 TEST(DnsResponseResultExtractorTest,
      IgnoresAdditionalExperimentalHttpsRecords) {
-  constexpr auto kTtl = base::TimeDelta::FromDays(3);
+  constexpr auto kTtl = base::Days(3);
 
   DnsResponse response = BuildTestDnsResponse(
       "https.test", dns_protocol::kTypeHttps,
@@ -785,9 +783,9 @@
       /*authority=*/{},
       /*additional=*/
       {BuildTestHttpsServiceRecord("https.test", 3u, "service1.test", {},
-                                   base::TimeDelta::FromMinutes(44)),
+                                   base::Minutes(44)),
        BuildTestHttpsServiceRecord("https.test", 2u, "service2.test", {},
-                                   base::TimeDelta::FromMinutes(30))});
+                                   base::Minutes(30))});
   DnsResponseResultExtractor extractor(&response);
 
   HostCache::Entry results(ERR_FAILED, HostCache::Entry::SOURCE_UNKNOWN);
@@ -804,7 +802,7 @@
 }
 
 TEST(DnsResponseResultExtractorTest, ExtractsHttpsResponses) {
-  constexpr auto kTtl = base::TimeDelta::FromHours(12);
+  constexpr auto kTtl = base::Hours(12);
 
   DnsResponse response = BuildTestDnsResponse(
       "https.test", dns_protocol::kTypeHttps,
@@ -825,7 +823,7 @@
 }
 
 TEST(DnsResponseResultExtractorTest, ExtractsNxdomainHttpsResponses) {
-  constexpr auto kTtl = base::TimeDelta::FromMinutes(45);
+  constexpr auto kTtl = base::Minutes(45);
 
   DnsResponse response = BuildTestDnsResponse(
       "https.test", dns_protocol::kTypeHttps, /*answers=*/{},
@@ -848,7 +846,7 @@
 }
 
 TEST(DnsResponseResultExtractorTest, ExtractsNodataHttpsResponses) {
-  constexpr auto kTtl = base::TimeDelta::FromHours(36);
+  constexpr auto kTtl = base::Hours(36);
 
   DnsResponse response = BuildTestDnsResponse(
       "https.test", dns_protocol::kTypeHttps, /*answers=*/{},
@@ -914,7 +912,7 @@
 }
 
 TEST(DnsResponseResultExtractorTest, IgnoresAdditionalHttpsRecords) {
-  constexpr auto kTtl = base::TimeDelta::FromDays(5);
+  constexpr auto kTtl = base::Days(5);
 
   DnsResponse response = BuildTestDnsResponse(
       "https.test", dns_protocol::kTypeHttps,
@@ -922,9 +920,9 @@
       /*authority=*/{},
       /*additional=*/
       {BuildTestHttpsServiceRecord("https.test", 3u, "service1.test", {},
-                                   base::TimeDelta::FromMinutes(30)),
+                                   base::Minutes(30)),
        BuildTestHttpsServiceRecord("https.test", 2u, "service2.test", {},
-                                   base::TimeDelta::FromMinutes(45))});
+                                   base::Minutes(45))});
   DnsResponseResultExtractor extractor(&response);
 
   HostCache::Entry results(ERR_FAILED, HostCache::Entry::SOURCE_UNKNOWN);
@@ -1310,15 +1308,14 @@
 
 TEST(DnsResponseResultExtractorTest, IgnoresTtlFromNonResultType) {
   constexpr char kName[] = "name.test";
-  constexpr base::TimeDelta kMinTtl = base::TimeDelta::FromMinutes(4);
+  constexpr base::TimeDelta kMinTtl = base::Minutes(4);
 
   DnsResponse response = BuildTestDnsResponse(
       kName, dns_protocol::kTypeTXT,
-      {BuildTestTextRecord(kName, {"foo"}, base::TimeDelta::FromHours(3)),
+      {BuildTestTextRecord(kName, {"foo"}, base::Hours(3)),
        BuildTestTextRecord(kName, {"bar"}, kMinTtl),
-       BuildTestAddressRecord(kName, IPAddress(1, 2, 3, 4),
-                              base::TimeDelta::FromSeconds(2)),
-       BuildTestTextRecord(kName, {"baz"}, base::TimeDelta::FromMinutes(15))});
+       BuildTestAddressRecord(kName, IPAddress(1, 2, 3, 4), base::Seconds(2)),
+       BuildTestTextRecord(kName, {"baz"}, base::Minutes(15))});
   DnsResponseResultExtractor extractor(&response);
 
   HostCache::Entry results(ERR_FAILED, HostCache::Entry::SOURCE_UNKNOWN);
@@ -1331,13 +1328,13 @@
 
 TEST(DnsResponseResultExtractorTest, ExtractsTtlFromCname) {
   constexpr char kAlias[] = "alias.test";
-  constexpr base::TimeDelta kMinTtl = base::TimeDelta::FromMinutes(4);
+  constexpr base::TimeDelta kMinTtl = base::Minutes(4);
 
   DnsResponse response = BuildTestDnsResponse(
       "name.test", dns_protocol::kTypeTXT,
-      {BuildTestTextRecord(kAlias, {"foo"}, base::TimeDelta::FromHours(3)),
-       BuildTestTextRecord(kAlias, {"bar"}, base::TimeDelta::FromHours(2)),
-       BuildTestTextRecord(kAlias, {"baz"}, base::TimeDelta::FromMinutes(15)),
+      {BuildTestTextRecord(kAlias, {"foo"}, base::Hours(3)),
+       BuildTestTextRecord(kAlias, {"bar"}, base::Hours(2)),
+       BuildTestTextRecord(kAlias, {"baz"}, base::Minutes(15)),
        BuildTestCnameRecord("name.test", kAlias, kMinTtl)});
   DnsResponseResultExtractor extractor(&response);
 
diff --git a/net/dns/dns_test_util.cc b/net/dns/dns_test_util.cc
index dd1cf156..5e701113 100644
--- a/net/dns/dns_test_util.cc
+++ b/net/dns/dns_test_util.cc
@@ -306,8 +306,7 @@
     rdata += dns_name;
 
     answers.push_back(BuildTestDnsRecord(answer_name, dns_protocol::kTypeSRV,
-                                         std::move(rdata),
-                                         base::TimeDelta::FromHours(5)));
+                                         std::move(rdata), base::Hours(5)));
   }
 
   return BuildTestDnsResponse(std::move(name), dns_protocol::kTypeSRV, answers);
diff --git a/net/dns/dns_test_util.h b/net/dns/dns_test_util.h
index c19b955..87a2bb9 100644
--- a/net/dns/dns_test_util.h
+++ b/net/dns/dns_test_util.h
@@ -60,7 +60,7 @@
   "74.125.226.177", "74.125.226.178"
 };
 static const char kT0CanonName[] = "www.l.google.com";
-static const base::TimeDelta kT0Ttl = base::TimeDelta::FromSeconds(0x000000e4);
+static const base::TimeDelta kT0Ttl = base::Seconds(0x000000e4);
 // +1 for the CNAME record.
 static const unsigned kT0RecordCount = base::size(kT0IpAddresses) + 1;
 
@@ -90,7 +90,7 @@
   "64.233.169.121"
 };
 static const char kT1CanonName[] = "ghs.l.google.com";
-static const base::TimeDelta kT1Ttl = base::TimeDelta::FromSeconds(0x0000010b);
+static const base::TimeDelta kT1Ttl = base::Seconds(0x0000010b);
 // +1 for the CNAME record.
 static const unsigned kT1RecordCount = base::size(kT1IpAddresses) + 1;
 
@@ -119,7 +119,7 @@
   "129.10.116.81"
 };
 static const char kT2CanonName[] = "vulcan.ccs.neu.edu";
-static const base::TimeDelta kT2Ttl = base::TimeDelta::FromSeconds(0x0000012c);
+static const base::TimeDelta kT2Ttl = base::Seconds(0x0000012c);
 // +1 for the CNAME record.
 static const unsigned kT2RecordCount = base::size(kT2IpAddresses) + 1;
 
@@ -161,7 +161,7 @@
   "74.125.226.176", "74.125.226.177"
 };
 static const char kT3CanonName[] = "www.l.google.com";
-static const base::TimeDelta kT3Ttl = base::TimeDelta::FromSeconds(0x00000015);
+static const base::TimeDelta kT3Ttl = base::Seconds(0x00000015);
 // +2 for the CNAME records, +1 for TXT record.
 static const unsigned kT3RecordCount = base::size(kT3IpAddresses) + 3;
 
@@ -182,7 +182,7 @@
     0x00, 0x01, 0x2b, 0x00, 0x04, 0xac, 0xd9, 0x06, 0xc3};
 
 static const char* const kT4IpAddresses[] = {"172.217.6.195"};
-static const base::TimeDelta kT4Ttl = base::TimeDelta::FromSeconds(0x0000012b);
+static const base::TimeDelta kT4Ttl = base::Seconds(0x0000012b);
 static const unsigned kT4RecordCount = base::size(kT0IpAddresses);
 
 class AddressSorter;
@@ -192,31 +192,27 @@
 class ResolveContext;
 class URLRequestContext;
 
-DnsResourceRecord BuildTestDnsRecord(
-    std::string name,
-    uint16_t type,
-    std::string rdata,
-    base::TimeDelta ttl = base::TimeDelta::FromDays(1));
+DnsResourceRecord BuildTestDnsRecord(std::string name,
+                                     uint16_t type,
+                                     std::string rdata,
+                                     base::TimeDelta ttl = base::Days(1));
 
-DnsResourceRecord BuildTestCnameRecord(
-    std::string name,
-    base::StringPiece canonical_name,
-    base::TimeDelta ttl = base::TimeDelta::FromDays(1));
+DnsResourceRecord BuildTestCnameRecord(std::string name,
+                                       base::StringPiece canonical_name,
+                                       base::TimeDelta ttl = base::Days(1));
 
-DnsResourceRecord BuildTestAddressRecord(
-    std::string name,
-    const IPAddress& ip,
-    base::TimeDelta ttl = base::TimeDelta::FromDays(1));
+DnsResourceRecord BuildTestAddressRecord(std::string name,
+                                         const IPAddress& ip,
+                                         base::TimeDelta ttl = base::Days(1));
 
-DnsResourceRecord BuildTestTextRecord(
-    std::string name,
-    std::vector<std::string> text_strings,
-    base::TimeDelta ttl = base::TimeDelta::FromDays(1));
+DnsResourceRecord BuildTestTextRecord(std::string name,
+                                      std::vector<std::string> text_strings,
+                                      base::TimeDelta ttl = base::Days(1));
 
 DnsResourceRecord BuildTestHttpsAliasRecord(
     std::string name,
     base::StringPiece alias_name,
-    base::TimeDelta ttl = base::TimeDelta::FromDays(1));
+    base::TimeDelta ttl = base::Days(1));
 
 // `params` is a mapping from service param keys to a string containing the
 // encoded bytes of a service param value (without the value length prefix which
@@ -226,7 +222,7 @@
     uint16_t priority,
     base::StringPiece service_name,
     const std::map<uint16_t, std::string>& params,
-    base::TimeDelta ttl = base::TimeDelta::FromDays(1));
+    base::TimeDelta ttl = base::Days(1));
 
 DnsResponse BuildTestDnsResponse(
     std::string name,
diff --git a/net/dns/dns_transaction_unittest.cc b/net/dns/dns_transaction_unittest.cc
index 26752aa..d916bd7 100644
--- a/net/dns/dns_transaction_unittest.cc
+++ b/net/dns/dns_transaction_unittest.cc
@@ -67,7 +67,7 @@
 
 namespace {
 
-base::TimeDelta kFallbackPeriod = base::TimeDelta::FromSeconds(1);
+base::TimeDelta kFallbackPeriod = base::Seconds(1);
 
 const char kMockHostname[] = "mock.http";
 
@@ -2737,7 +2737,7 @@
   ASSERT_FALSE(helper.has_completed());
 
   // Stop a tiny bit short to ensure transaction doesn't finish early.
-  const base::TimeDelta kTimeHoldback = base::TimeDelta::FromMilliseconds(5);
+  const base::TimeDelta kTimeHoldback = base::Milliseconds(5);
   base::TimeDelta timeout = resolve_context_->SecureTransactionTimeout(
       SecureDnsMode::kSecure, session_.get());
   ASSERT_LT(kTimeHoldback, timeout);
@@ -2797,7 +2797,7 @@
   timeout_remainder -= fallback_period;
 
   // Stop a tiny bit short to ensure transaction doesn't finish early.
-  const base::TimeDelta kTimeHoldback = base::TimeDelta::FromMilliseconds(5);
+  const base::TimeDelta kTimeHoldback = base::Milliseconds(5);
   ASSERT_LT(kTimeHoldback, timeout_remainder);
   FastForwardBy(timeout_remainder - kTimeHoldback);
   EXPECT_FALSE(helper.has_completed());
@@ -2926,7 +2926,7 @@
   base::TimeDelta timeout_remainder = timeout - fallback_period;
 
   // Stop a tiny bit short to ensure transaction doesn't finish early.
-  const base::TimeDelta kTimeHoldback = base::TimeDelta::FromMilliseconds(5);
+  const base::TimeDelta kTimeHoldback = base::Milliseconds(5);
   ASSERT_LT(kTimeHoldback, timeout_remainder);
   FastForwardBy(timeout_remainder - kTimeHoldback);
   EXPECT_FALSE(helper.has_completed());
diff --git a/net/dns/dns_udp_tracker.h b/net/dns/dns_udp_tracker.h
index 597f03620..74ed741 100644
--- a/net/dns/dns_udp_tracker.h
+++ b/net/dns/dns_udp_tracker.h
@@ -26,13 +26,12 @@
 // conclusions about it.
 class NET_EXPORT_PRIVATE DnsUdpTracker {
  public:
-  static constexpr base::TimeDelta kMaxAge = base::TimeDelta::FromMinutes(10);
+  static constexpr base::TimeDelta kMaxAge = base::Minutes(10);
   static constexpr size_t kMaxRecordedQueries = 256;
 
   // How recently an ID needs to be recorded in a recent query to be considered
   // "recognized".
-  static constexpr base::TimeDelta kMaxRecognizedIdAge =
-      base::TimeDelta::FromSeconds(15);
+  static constexpr base::TimeDelta kMaxRecognizedIdAge = base::Seconds(15);
 
   // Numbers of ID mismatches required to set the |low_entropy_| flag. Also
   // serves as the max number of mismatches to be recorded, as no more entries
diff --git a/net/dns/dns_udp_tracker_unittest.cc b/net/dns/dns_udp_tracker_unittest.cc
index 8ed77b6..0c79ff8 100644
--- a/net/dns/dns_udp_tracker_unittest.cc
+++ b/net/dns/dns_udp_tracker_unittest.cc
@@ -52,8 +52,7 @@
   static const uint16_t kOldId = 786;
   tracker_.RecordQuery(123 /* port */, kOldId);
 
-  test_tick_clock_.Advance(DnsUdpTracker::kMaxAge +
-                           base::TimeDelta::FromMilliseconds(1));
+  test_tick_clock_.Advance(DnsUdpTracker::kMaxAge + base::Milliseconds(1));
 
   uint16_t port = 3889;
   uint16_t id = 3456;
@@ -76,7 +75,7 @@
   tracker_.RecordQuery(123 /* port */, kOldId);
 
   test_tick_clock_.Advance(DnsUdpTracker::kMaxRecognizedIdAge +
-                           base::TimeDelta::FromMilliseconds(1));
+                           base::Milliseconds(1));
 
   uint16_t port = 3889;
   uint16_t id = 3456;
@@ -140,8 +139,7 @@
   static const uint16_t kPort = 2135;
   tracker_.RecordQuery(kPort, 579 /* query_id */);
 
-  test_tick_clock_.Advance(DnsUdpTracker::kMaxAge +
-                           base::TimeDelta::FromMilliseconds(1));
+  test_tick_clock_.Advance(DnsUdpTracker::kMaxAge + base::Milliseconds(1));
 
   EXPECT_FALSE(tracker_.low_entropy());
 
diff --git a/net/dns/dns_util.cc b/net/dns/dns_util.cc
index 8b1a025f..f1009b2 100644
--- a/net/dns/dns_util.cc
+++ b/net/dns/dns_util.cc
@@ -222,7 +222,7 @@
   int64_t ms;
   if (!base::StringToInt64(group_parts[type_size], &ms))
     return false;
-  *out = base::TimeDelta::FromMilliseconds(ms);
+  *out = base::Milliseconds(ms);
   return true;
 }
 
diff --git a/net/dns/fuzzed_host_resolver_util.cc b/net/dns/fuzzed_host_resolver_util.cc
index 8a8328b..43ab85d 100644
--- a/net/dns/fuzzed_host_resolver_util.cc
+++ b/net/dns/fuzzed_host_resolver_util.cc
@@ -135,7 +135,7 @@
   // Fallback periods don't really work for fuzzing. Even a period of 0
   // milliseconds will be increased after the first expiration, resulting in
   // inconsistent behavior.
-  config.fallback_period = base::TimeDelta::FromDays(10);
+  config.fallback_period = base::Days(10);
 
   config.rotate = data_provider->ConsumeBool();
 
diff --git a/net/dns/host_cache.cc b/net/dns/host_cache.cc
index ca349f7f..f9ea4fa 100644
--- a/net/dns/host_cache.cc
+++ b/net/dns/host_cache.cc
@@ -170,9 +170,7 @@
 HostCache::Entry::Entry(int error,
                         Source source,
                         absl::optional<base::TimeDelta> ttl)
-    : error_(error),
-      source_(source),
-      ttl_(ttl.value_or(base::TimeDelta::FromSeconds(-1))) {
+    : error_(error), source_(source), ttl_(ttl.value_or(base::Seconds(-1))) {
   // If |ttl| has a value, must not be negative.
   DCHECK_GE(ttl.value_or(base::TimeDelta()), base::TimeDelta());
   DCHECK_NE(OK, error_);
@@ -455,8 +453,8 @@
 }
 
 // static
-const HostCache::EntryStaleness HostCache::kNotStale = {
-    base::TimeDelta::FromSeconds(-1), 0, 0};
+const HostCache::EntryStaleness HostCache::kNotStale = {base::Seconds(-1), 0,
+                                                        0};
 
 HostCache::HostCache(size_t max_entries)
     : max_entries_(max_entries),
diff --git a/net/dns/host_cache.h b/net/dns/host_cache.h
index 0b6e432..3285cf7 100644
--- a/net/dns/host_cache.h
+++ b/net/dns/host_cache.h
@@ -126,7 +126,7 @@
           absl::optional<base::TimeDelta> ttl)
         : error_(error),
           source_(source),
-          ttl_(ttl ? ttl.value() : base::TimeDelta::FromSeconds(-1)) {
+          ttl_(ttl ? ttl.value() : base::Seconds(-1)) {
       DCHECK(!ttl || ttl.value() >= base::TimeDelta());
       SetResult(std::forward<T>(results));
     }
@@ -281,7 +281,7 @@
     // If this flag is null, HostCache will set it to false for simplicity.
     absl::optional<bool> pinning_;
     // TTL obtained from the nameserver. Negative if unknown.
-    base::TimeDelta ttl_ = base::TimeDelta::FromSeconds(-1);
+    base::TimeDelta ttl_ = base::Seconds(-1);
 
     base::TimeTicks expires_;
     // Copied from the cache's network_changes_ when the entry is set; can
diff --git a/net/dns/host_cache_unittest.cc b/net/dns/host_cache_unittest.cc
index 45a4b62..e6a48363 100644
--- a/net/dns/host_cache_unittest.cc
+++ b/net/dns/host_cache_unittest.cc
@@ -64,7 +64,7 @@
 }  // namespace
 
 TEST(HostCacheTest, Basic) {
-  const base::TimeDelta kTTL = base::TimeDelta::FromSeconds(10);
+  const base::TimeDelta kTTL = base::Seconds(10);
 
   HostCache cache(kMaxCacheEntries);
 
@@ -87,7 +87,7 @@
   EXPECT_EQ(1U, cache.size());
 
   // Advance to t=5.
-  now += base::TimeDelta::FromSeconds(5);
+  now += base::Seconds(5);
 
   // Add an entry for "foobar2.com" at t=5.
   EXPECT_FALSE(cache.Lookup(key2, now));
@@ -96,7 +96,7 @@
   EXPECT_EQ(2U, cache.size());
 
   // Advance to t=9
-  now += base::TimeDelta::FromSeconds(4);
+  now += base::Seconds(4);
 
   // Verify that the entries we added are still retrievable, and usable.
   EXPECT_TRUE(cache.Lookup(key1, now));
@@ -104,7 +104,7 @@
   EXPECT_NE(cache.Lookup(key1, now), cache.Lookup(key2, now));
 
   // Advance to t=10; key is now expired.
-  now += base::TimeDelta::FromSeconds(1);
+  now += base::Seconds(1);
 
   EXPECT_FALSE(cache.Lookup(key1, now));
   EXPECT_TRUE(cache.Lookup(key2, now));
@@ -119,7 +119,7 @@
   EXPECT_TRUE(cache.Lookup(key2, now));
 
   // Advance to t=20; both entries are now expired.
-  now += base::TimeDelta::FromSeconds(10);
+  now += base::Seconds(10);
 
   EXPECT_FALSE(cache.Lookup(key1, now));
   EXPECT_FALSE(cache.Lookup(key2, now));
@@ -128,7 +128,7 @@
 // Test that Keys without scheme are allowed and treated as completely different
 // from similar Keys with scheme.
 TEST(HostCacheTest, HandlesKeysWithoutScheme) {
-  const base::TimeDelta kTTL = base::TimeDelta::FromSeconds(10);
+  const base::TimeDelta kTTL = base::Seconds(10);
 
   HostCache cache(kMaxCacheEntries);
 
@@ -183,7 +183,7 @@
 // Make sure NetworkIsolationKey is respected.
 TEST(HostCacheTest, NetworkIsolationKey) {
   const url::SchemeHostPort kHost(url::kHttpsScheme, "hostname.test", 443);
-  const base::TimeDelta kTTL = base::TimeDelta::FromSeconds(10);
+  const base::TimeDelta kTTL = base::Seconds(10);
 
   const SchemefulSite kSite1(GURL("https://site1.test/"));
   const NetworkIsolationKey kNetworkIsolationKey1(kSite1, kSite1);
@@ -242,8 +242,8 @@
 // Try caching entries for a failed resolve attempt -- since we set the TTL of
 // such entries to 0 it won't store, but it will kick out the previous result.
 TEST(HostCacheTest, NoCacheZeroTTL) {
-  const base::TimeDelta kSuccessEntryTTL = base::TimeDelta::FromSeconds(10);
-  const base::TimeDelta kFailureEntryTTL = base::TimeDelta::FromSeconds(0);
+  const base::TimeDelta kSuccessEntryTTL = base::Seconds(10);
+  const base::TimeDelta kFailureEntryTTL = base::Seconds(0);
 
   HostCache cache(kMaxCacheEntries);
 
@@ -272,7 +272,7 @@
 
 // Try caching entries for a failed resolves for 10 seconds.
 TEST(HostCacheTest, CacheNegativeEntry) {
-  const base::TimeDelta kFailureEntryTTL = base::TimeDelta::FromSeconds(10);
+  const base::TimeDelta kFailureEntryTTL = base::Seconds(10);
 
   HostCache cache(kMaxCacheEntries);
 
@@ -293,7 +293,7 @@
   EXPECT_EQ(1U, cache.size());
 
   // Advance to t=5.
-  now += base::TimeDelta::FromSeconds(5);
+  now += base::Seconds(5);
 
   // Add an entry for "foobar2.com" at t=5.
   EXPECT_FALSE(cache.Lookup(key2, now));
@@ -302,14 +302,14 @@
   EXPECT_EQ(2U, cache.size());
 
   // Advance to t=9
-  now += base::TimeDelta::FromSeconds(4);
+  now += base::Seconds(4);
 
   // Verify that the entries we added are still retrievable, and usable.
   EXPECT_TRUE(cache.Lookup(key1, now));
   EXPECT_TRUE(cache.Lookup(key2, now));
 
   // Advance to t=10; key1 is now expired.
-  now += base::TimeDelta::FromSeconds(1);
+  now += base::Seconds(1);
 
   EXPECT_FALSE(cache.Lookup(key1, now));
   EXPECT_TRUE(cache.Lookup(key2, now));
@@ -325,7 +325,7 @@
   EXPECT_TRUE(cache.Lookup(key2, now));
 
   // Advance to t=20; both entries are now expired.
-  now += base::TimeDelta::FromSeconds(10);
+  now += base::Seconds(10);
 
   EXPECT_FALSE(cache.Lookup(key1, now));
   EXPECT_FALSE(cache.Lookup(key2, now));
@@ -334,7 +334,7 @@
 // Tests that the same hostname can be duplicated in the cache, so long as
 // the query type differs.
 TEST(HostCacheTest, DnsQueryTypeIsPartOfKey) {
-  const base::TimeDelta kSuccessEntryTTL = base::TimeDelta::FromSeconds(10);
+  const base::TimeDelta kSuccessEntryTTL = base::Seconds(10);
 
   HostCache cache(kMaxCacheEntries);
 
@@ -373,7 +373,7 @@
 // the HostResolverFlags differ.
 TEST(HostCacheTest, HostResolverFlagsArePartOfKey) {
   const url::SchemeHostPort kHost(url::kHttpsScheme, "foobar.test", 443);
-  const base::TimeDelta kTTL = base::TimeDelta::FromSeconds(10);
+  const base::TimeDelta kTTL = base::Seconds(10);
 
   HostCache cache(kMaxCacheEntries);
 
@@ -420,7 +420,7 @@
 // the HostResolverSource differs.
 TEST(HostCacheTest, HostResolverSourceIsPartOfKey) {
   const url::SchemeHostPort kHost(url::kHttpsScheme, "foobar.test", 443);
-  const base::TimeDelta kSuccessEntryTTL = base::TimeDelta::FromSeconds(10);
+  const base::TimeDelta kSuccessEntryTTL = base::Seconds(10);
 
   HostCache cache(kMaxCacheEntries);
 
@@ -457,7 +457,7 @@
 // the secure field in the key differs.
 TEST(HostCacheTest, SecureIsPartOfKey) {
   const url::SchemeHostPort kHost(url::kHttpsScheme, "foobar.test", 443);
-  const base::TimeDelta kSuccessEntryTTL = base::TimeDelta::FromSeconds(10);
+  const base::TimeDelta kSuccessEntryTTL = base::Seconds(10);
 
   HostCache cache(kMaxCacheEntries);
 
@@ -503,7 +503,7 @@
 
 TEST(HostCacheTest, PreferLessStaleMoreSecure) {
   const url::SchemeHostPort kHost(url::kHttpsScheme, "foobar.test", 443);
-  const base::TimeDelta kSuccessEntryTTL = base::TimeDelta::FromSeconds(10);
+  const base::TimeDelta kSuccessEntryTTL = base::Seconds(10);
 
   HostCache cache(kMaxCacheEntries);
 
@@ -548,11 +548,11 @@
 
   // Add both insecure and secure entries to a cleared cache, still at t=0.
   cache.clear();
-  cache.Set(insecure_key, entry, now, base::TimeDelta::FromSeconds(20));
+  cache.Set(insecure_key, entry, now, base::Seconds(20));
   cache.Set(secure_key, entry, now, kSuccessEntryTTL);
 
   // Advance to t=15 to expire the secure entry only.
-  now += base::TimeDelta::FromSeconds(15);
+  now += base::Seconds(15);
   EXPECT_EQ(insecure_key, cache.Lookup(insecure_key, now)->first);
   EXPECT_FALSE(cache.Lookup(secure_key, now));
   EXPECT_EQ(secure_key, cache.LookupStale(secure_key, now, &stale)->first);
@@ -564,7 +564,7 @@
 }
 
 TEST(HostCacheTest, NoCache) {
-  const base::TimeDelta kTTL = base::TimeDelta::FromSeconds(10);
+  const base::TimeDelta kTTL = base::Seconds(10);
 
   // Disable caching.
   HostCache cache(0);
@@ -585,7 +585,7 @@
 }
 
 TEST(HostCacheTest, Clear) {
-  const base::TimeDelta kTTL = base::TimeDelta::FromSeconds(10);
+  const base::TimeDelta kTTL = base::Seconds(10);
 
   HostCache cache(kMaxCacheEntries);
 
@@ -610,7 +610,7 @@
 }
 
 TEST(HostCacheTest, ClearForHosts) {
-  const base::TimeDelta kTTL = base::TimeDelta::FromSeconds(10);
+  const base::TimeDelta kTTL = base::Seconds(10);
 
   HostCache cache(kMaxCacheEntries);
 
@@ -663,15 +663,15 @@
   EXPECT_FALSE(cache.Lookup(key3, now));
 
   // |key1| expires in 10 seconds, but |key2| in just 5.
-  cache.Set(key1, entry, now, base::TimeDelta::FromSeconds(10));
-  cache.Set(key2, entry, now, base::TimeDelta::FromSeconds(5));
+  cache.Set(key1, entry, now, base::Seconds(10));
+  cache.Set(key2, entry, now, base::Seconds(5));
   EXPECT_EQ(2u, cache.size());
   EXPECT_TRUE(cache.Lookup(key1, now));
   EXPECT_TRUE(cache.Lookup(key2, now));
   EXPECT_FALSE(cache.Lookup(key3, now));
 
   // |key2| should be chosen for eviction, since it expires sooner.
-  cache.Set(key3, entry, now, base::TimeDelta::FromSeconds(10));
+  cache.Set(key3, entry, now, base::Seconds(10));
   EXPECT_EQ(2u, cache.size());
   EXPECT_TRUE(cache.Lookup(key1, now));
   EXPECT_FALSE(cache.Lookup(key2, now));
@@ -681,7 +681,7 @@
 // Try to retrieve stale entries from the cache. They should be returned by
 // |LookupStale()| but not |Lookup()|, with correct |EntryStaleness| data.
 TEST(HostCacheTest, Stale) {
-  const base::TimeDelta kTTL = base::TimeDelta::FromSeconds(10);
+  const base::TimeDelta kTTL = base::Seconds(10);
 
   HostCache cache(kMaxCacheEntries);
 
@@ -707,7 +707,7 @@
   EXPECT_EQ(1U, cache.size());
 
   // Advance to t=5.
-  now += base::TimeDelta::FromSeconds(5);
+  now += base::Seconds(5);
 
   EXPECT_TRUE(cache.Lookup(key, now));
   EXPECT_TRUE(cache.LookupStale(key, now, &stale));
@@ -715,22 +715,22 @@
   EXPECT_EQ(0, stale.stale_hits);
 
   // Advance to t=15.
-  now += base::TimeDelta::FromSeconds(10);
+  now += base::Seconds(10);
 
   EXPECT_FALSE(cache.Lookup(key, now));
   EXPECT_TRUE(cache.LookupStale(key, now, &stale));
   EXPECT_TRUE(stale.is_stale());
-  EXPECT_EQ(base::TimeDelta::FromSeconds(5), stale.expired_by);
+  EXPECT_EQ(base::Seconds(5), stale.expired_by);
   EXPECT_EQ(0, stale.network_changes);
   EXPECT_EQ(1, stale.stale_hits);
 
   // Advance to t=20.
-  now += base::TimeDelta::FromSeconds(5);
+  now += base::Seconds(5);
 
   EXPECT_FALSE(cache.Lookup(key, now));
   EXPECT_TRUE(cache.LookupStale(key, now, &stale));
   EXPECT_TRUE(stale.is_stale());
-  EXPECT_EQ(base::TimeDelta::FromSeconds(10), stale.expired_by);
+  EXPECT_EQ(base::Seconds(10), stale.expired_by);
   EXPECT_EQ(0, stale.network_changes);
   EXPECT_EQ(2, stale.stale_hits);
 
@@ -740,7 +740,7 @@
   EXPECT_FALSE(cache.Lookup(key, now));
   EXPECT_TRUE(cache.LookupStale(key, now, &stale));
   EXPECT_TRUE(stale.is_stale());
-  EXPECT_EQ(base::TimeDelta::FromSeconds(10), stale.expired_by);
+  EXPECT_EQ(base::Seconds(10), stale.expired_by);
   EXPECT_EQ(1, stale.network_changes);
   EXPECT_EQ(3, stale.stale_hits);
 }
@@ -763,7 +763,7 @@
   EXPECT_FALSE(cache.Lookup(key3, now));
 
   // |key1| expires in 10 seconds.
-  cache.Set(key1, entry, now, base::TimeDelta::FromSeconds(10));
+  cache.Set(key1, entry, now, base::Seconds(10));
   EXPECT_EQ(1u, cache.size());
   EXPECT_TRUE(cache.Lookup(key1, now));
   EXPECT_FALSE(cache.Lookup(key2, now));
@@ -778,10 +778,10 @@
   EXPECT_EQ(1, stale.network_changes);
 
   // Advance to t=1.
-  now += base::TimeDelta::FromSeconds(1);
+  now += base::Seconds(1);
 
   // |key2| expires before |key1| would originally have expired.
-  cache.Set(key2, entry, now, base::TimeDelta::FromSeconds(5));
+  cache.Set(key2, entry, now, base::Seconds(5));
   EXPECT_EQ(2u, cache.size());
   EXPECT_FALSE(cache.Lookup(key1, now));
   EXPECT_TRUE(cache.LookupStale(key1, now, &stale));
@@ -789,7 +789,7 @@
   EXPECT_FALSE(cache.Lookup(key3, now));
 
   // |key1| should be chosen for eviction, since it is stale.
-  cache.Set(key3, entry, now, base::TimeDelta::FromSeconds(1));
+  cache.Set(key3, entry, now, base::Seconds(1));
   EXPECT_EQ(2u, cache.size());
   EXPECT_FALSE(cache.Lookup(key1, now));
   EXPECT_FALSE(cache.LookupStale(key1, now, &stale));
@@ -797,10 +797,10 @@
   EXPECT_TRUE(cache.Lookup(key3, now));
 
   // Advance to t=6.
-  now += base::TimeDelta::FromSeconds(5);
+  now += base::Seconds(5);
 
   // Insert |key1| again. |key3| should be evicted.
-  cache.Set(key1, entry, now, base::TimeDelta::FromSeconds(10));
+  cache.Set(key1, entry, now, base::Seconds(10));
   EXPECT_EQ(2u, cache.size());
   EXPECT_TRUE(cache.Lookup(key1, now));
   EXPECT_FALSE(cache.Lookup(key2, now));
@@ -823,11 +823,11 @@
       HostCache::Entry(OK, AddressList(), HostCache::Entry::SOURCE_UNKNOWN);
   entry.set_pinning(true);
 
-  cache.Set(key1, entry, now, base::TimeDelta::FromSeconds(5));
-  now += base::TimeDelta::FromSeconds(10);
-  cache.Set(key2, entry, now, base::TimeDelta::FromSeconds(5));
-  now += base::TimeDelta::FromSeconds(10);
-  cache.Set(key3, entry, now, base::TimeDelta::FromSeconds(5));
+  cache.Set(key1, entry, now, base::Seconds(5));
+  now += base::Seconds(10);
+  cache.Set(key2, entry, now, base::Seconds(5));
+  now += base::Seconds(10);
+  cache.Set(key3, entry, now, base::Seconds(5));
 
   // There are 3 entries in this cache whose nominal max size is 2.
   EXPECT_EQ(3u, cache.size());
@@ -851,9 +851,9 @@
   entry.set_pinning(true);
 
   // |key2| should be preserved, since it expires later.
-  cache.Set(key1, entry, now, base::TimeDelta::FromSeconds(5));
-  cache.Set(key2, entry, now, base::TimeDelta::FromSeconds(10));
-  cache.Set(key3, entry, now, base::TimeDelta::FromSeconds(5));
+  cache.Set(key1, entry, now, base::Seconds(5));
+  cache.Set(key2, entry, now, base::Seconds(10));
+  cache.Set(key3, entry, now, base::Seconds(5));
   // There are 3 entries in this cache whose nominal max size is 2.
   EXPECT_EQ(3u, cache.size());
 
@@ -863,7 +863,7 @@
 
   // |Set()| triggers an eviction, leaving only |key2| in cache,
   // before adding |key4|
-  cache.Set(key4, entry, now, base::TimeDelta::FromSeconds(2));
+  cache.Set(key4, entry, now, base::Seconds(2));
   EXPECT_EQ(2u, cache.size());
   EXPECT_FALSE(cache.LookupStale(key1, now, nullptr));
   EXPECT_TRUE(cache.LookupStale(key2, now, nullptr));
@@ -893,7 +893,7 @@
 
   // Insert entry1, and verify that it can be retrieved with the
   // correct IP and |pinning()| == true.
-  cache.Set(key, entry1, now, base::TimeDelta::FromSeconds(10));
+  cache.Set(key, entry1, now, base::Seconds(10));
   const auto* pair1 = cache.Lookup(key, now);
   ASSERT_TRUE(pair1);
   const HostCache::Entry& result1 = pair1->second;
@@ -902,7 +902,7 @@
 
   // Insert |entry2|, and verify that it when it is retrieved, it
   // has the new IP, and the "pinned" flag copied from |entry1|.
-  cache.Set(key, entry2, now, base::TimeDelta::FromSeconds(10));
+  cache.Set(key, entry2, now, base::Seconds(10));
   const auto* pair2 = cache.Lookup(key, now);
   ASSERT_TRUE(pair2);
   const HostCache::Entry& result2 = pair2->second;
@@ -931,7 +931,7 @@
 
   // Insert entry1, and verify that it can be retrieved with the
   // correct IP and |pinning()| == true.
-  cache.Set(key, entry1, now, base::TimeDelta::FromSeconds(10));
+  cache.Set(key, entry1, now, base::Seconds(10));
   const auto* pair1 = cache.Lookup(key, now);
   ASSERT_TRUE(pair1);
   const HostCache::Entry& result1 = pair1->second;
@@ -943,7 +943,7 @@
 
   // Insert |entry2|, and verify that it when it is retrieved, it
   // has the new IP, and the "pinned" flag is not copied from |entry1|.
-  cache.Set(key, entry2, now, base::TimeDelta::FromSeconds(10));
+  cache.Set(key, entry2, now, base::Seconds(10));
   const auto* pair2 = cache.Lookup(key, now);
   ASSERT_TRUE(pair2);
   const HostCache::Entry& result2 = pair2->second;
@@ -974,7 +974,7 @@
 
   // Insert entry1, and verify that it can be retrieved with the
   // correct IP and |pinning()| == true.
-  cache.Set(key, entry1, now, base::TimeDelta::FromSeconds(10));
+  cache.Set(key, entry1, now, base::Seconds(10));
   const auto* pair1 = cache.Lookup(key, now);
   ASSERT_TRUE(pair1);
   const HostCache::Entry& result1 = pair1->second;
@@ -983,7 +983,7 @@
 
   // Insert |entry2|, and verify that it when it is retrieved, it
   // has the new IP, and the "pinned" flag is now false.
-  cache.Set(key, entry2, now, base::TimeDelta::FromSeconds(10));
+  cache.Set(key, entry2, now, base::Seconds(10));
   const auto* pair2 = cache.Lookup(key, now);
   ASSERT_TRUE(pair2);
   const HostCache::Entry& result2 = pair2->second;
@@ -1146,7 +1146,7 @@
 }
 
 TEST(HostCacheTest, SerializeAndDeserialize) {
-  const base::TimeDelta kTTL = base::TimeDelta::FromSeconds(10);
+  const base::TimeDelta kTTL = base::Seconds(10);
 
   HostCache cache(kMaxCacheEntries);
 
@@ -1186,7 +1186,7 @@
   EXPECT_EQ(1u, cache.size());
 
   // Advance to t=5.
-  now += base::TimeDelta::FromSeconds(5);
+  now += base::Seconds(5);
 
   // Add entries for "foobar2.com" and "foobar3.com" at t=5.
   EXPECT_FALSE(cache.Lookup(key2, now));
@@ -1202,7 +1202,7 @@
   EXPECT_EQ(0u, cache.last_restore_size());
 
   // Advance to t=12, ansd serialize the cache.
-  now += base::TimeDelta::FromSeconds(7);
+  now += base::Seconds(7);
 
   base::ListValue serialized_cache;
   cache.GetAsListValue(&serialized_cache, false /* include_staleness */,
@@ -1243,8 +1243,8 @@
   EXPECT_EQ(1, stale.network_changes);
   // Time to TimeTicks conversion is fuzzy, so just check that expected and
   // actual expiration times are close.
-  EXPECT_GT(base::TimeDelta::FromMilliseconds(100),
-            (base::TimeDelta::FromSeconds(2) - stale.expired_by).magnitude());
+  EXPECT_GT(base::Milliseconds(100),
+            (base::Seconds(2) - stale.expired_by).magnitude());
 
   // The "foobar2.com" entry is stale only due to network changes.
   EXPECT_FALSE(restored_cache.Lookup(key2, now));
@@ -1258,8 +1258,8 @@
             result2->second.addresses().value().front().address());
   EXPECT_EQ(address_ipv4, result2->second.addresses().value().back().address());
   EXPECT_EQ(1, stale.network_changes);
-  EXPECT_GT(base::TimeDelta::FromMilliseconds(100),
-            (base::TimeDelta::FromSeconds(-3) - stale.expired_by).magnitude());
+  EXPECT_GT(base::Milliseconds(100),
+            (base::Seconds(-3) - stale.expired_by).magnitude());
 
   // The "foobar3.com" entry is the new one, not the restored one.
   const std::pair<const HostCache::Key, HostCache::Entry>* result3 =
@@ -1283,7 +1283,7 @@
 }
 
 TEST(HostCacheTest, SerializeAndDeserializeEntryWithoutScheme) {
-  const base::TimeDelta kTTL = base::TimeDelta::FromSeconds(10);
+  const base::TimeDelta kTTL = base::Seconds(10);
 
   HostCache::Key key("host.test", DnsQueryType::UNSPECIFIED, 0,
                      HostResolverSource::ANY, NetworkIsolationKey());
@@ -1312,7 +1312,7 @@
 TEST(HostCacheTest, SerializeAndDeserializeWithNetworkIsolationKey) {
   const url::SchemeHostPort kHost =
       url::SchemeHostPort(url::kHttpsScheme, "hostname.test", 443);
-  const base::TimeDelta kTTL = base::TimeDelta::FromSeconds(10);
+  const base::TimeDelta kTTL = base::Seconds(10);
   const SchemefulSite kSite(GURL("https://site.test/"));
   const NetworkIsolationKey kNetworkIsolationKey(kSite, kSite);
   const SchemefulSite kOpaqueSite;
@@ -1363,7 +1363,7 @@
 
 TEST(HostCacheTest, SerializeForDebugging) {
   const url::SchemeHostPort kHost(url::kHttpsScheme, "hostname.test", 443);
-  const base::TimeDelta kTTL = base::TimeDelta::FromSeconds(10);
+  const base::TimeDelta kTTL = base::Seconds(10);
   const NetworkIsolationKey kNetworkIsolationKey =
       NetworkIsolationKey::CreateTransient();
 
@@ -1401,7 +1401,7 @@
 TEST(HostCacheTest, SerializeAndDeserialize_Text) {
   base::TimeTicks now;
 
-  base::TimeDelta ttl = base::TimeDelta::FromSeconds(99);
+  base::TimeDelta ttl = base::Seconds(99);
   std::vector<std::string> text_records({"foo", "bar"});
   HostCache::Key key(url::SchemeHostPort(url::kHttpsScheme, "example.com", 443),
                      DnsQueryType::A, 0, HostResolverSource::DNS,
@@ -1436,7 +1436,7 @@
 TEST(HostCacheTest, SerializeAndDeserialize_Hostname) {
   base::TimeTicks now;
 
-  base::TimeDelta ttl = base::TimeDelta::FromSeconds(99);
+  base::TimeDelta ttl = base::Seconds(99);
   std::vector<HostPortPair> hostnames(
       {HostPortPair("example.com", 95), HostPortPair("chromium.org", 122)});
   HostCache::Key key(url::SchemeHostPort(url::kHttpsScheme, "example.com", 443),
@@ -1468,7 +1468,7 @@
 }
 
 TEST(HostCacheTest, PersistenceDelegate) {
-  const base::TimeDelta kTTL = base::TimeDelta::FromSeconds(10);
+  const base::TimeDelta kTTL = base::Seconds(10);
   HostCache cache(kMaxCacheEntries);
   MockPersistenceDelegate delegate;
   cache.set_persistence_delegate(&delegate);
@@ -1510,7 +1510,7 @@
   EXPECT_EQ(2, delegate.num_changes());
 
   // Advance to t=5.
-  now += base::TimeDelta::FromSeconds(5);
+  now += base::Seconds(5);
 
   // Changes that shouldn't trigger a write:
   // Add an entry for "foobar.com" with different expiration time.
@@ -1522,7 +1522,7 @@
 
   // Add an entry for "foobar.com" with different TTL.
   EXPECT_TRUE(cache.Lookup(key1, now));
-  cache.Set(key1, entry1, now, kTTL - base::TimeDelta::FromSeconds(5));
+  cache.Set(key1, entry1, now, kTTL - base::Seconds(5));
   EXPECT_TRUE(cache.Lookup(key1, now));
   EXPECT_EQ(2u, cache.size());
   EXPECT_EQ(2, delegate.num_changes());
@@ -1674,8 +1674,7 @@
   const IPEndPoint kEndpointBack(kAddressBack, 0);
   std::vector<std::string> aliases_back({"alias1", "alias2", "alias3"});
   HostCache::Entry back(OK, AddressList(kEndpointBack, std::move(aliases_back)),
-                        HostCache::Entry::SOURCE_DNS,
-                        base::TimeDelta::FromHours(4));
+                        HostCache::Entry::SOURCE_DNS, base::Hours(4));
   back.set_text_records(std::vector<std::string>{"text2"});
   const HostPortPair kHostnameBack("host", 2);
   back.set_hostnames(std::vector<HostPortPair>{kHostnameBack});
@@ -1692,7 +1691,7 @@
   EXPECT_THAT(result.text_records(), Optional(ElementsAre("text2")));
   EXPECT_THAT(result.hostnames(), Optional(ElementsAre(kHostnameBack)));
 
-  EXPECT_EQ(base::TimeDelta::FromHours(4), result.ttl());
+  EXPECT_EQ(base::Hours(4), result.ttl());
 
   ASSERT_TRUE(result.addresses());
   EXPECT_THAT(result.addresses().value().dns_aliases(),
@@ -1703,9 +1702,9 @@
   const IPAddress kAddressFront(1, 2, 3, 4);
   const IPEndPoint kEndpointFront(kAddressFront, 0);
   std::vector<std::string> aliases_front({"alias1", "alias2", "alias3"});
-  HostCache::Entry front(
-      OK, AddressList(kEndpointFront, std::move(aliases_front)),
-      HostCache::Entry::SOURCE_DNS, base::TimeDelta::FromMinutes(5));
+  HostCache::Entry front(OK,
+                         AddressList(kEndpointFront, std::move(aliases_front)),
+                         HostCache::Entry::SOURCE_DNS, base::Minutes(5));
   front.set_text_records(std::vector<std::string>{"text1"});
   const HostPortPair kHostnameFront("host", 1);
   front.set_hostnames(std::vector<HostPortPair>{kHostnameFront});
@@ -1724,7 +1723,7 @@
   EXPECT_THAT(result.text_records(), Optional(ElementsAre("text1")));
   EXPECT_THAT(result.hostnames(), Optional(ElementsAre(kHostnameFront)));
 
-  EXPECT_EQ(base::TimeDelta::FromMinutes(5), result.ttl());
+  EXPECT_EQ(base::Minutes(5), result.ttl());
 
   ASSERT_TRUE(result.addresses());
   EXPECT_THAT(result.addresses().value().dns_aliases(),
@@ -1759,8 +1758,7 @@
   const IPEndPoint kEndpointBack(kAddressBack, 0);
   std::vector<std::string> aliases_back({"alias1", "alias2", "alias3"});
   HostCache::Entry back(OK, AddressList(kEndpointBack, std::move(aliases_back)),
-                        HostCache::Entry::SOURCE_DNS,
-                        base::TimeDelta::FromHours(4));
+                        HostCache::Entry::SOURCE_DNS, base::Hours(4));
 
   HostCache::Entry result =
       HostCache::Entry::MergeEntries(std::move(front), std::move(back));
@@ -1772,7 +1770,7 @@
   EXPECT_THAT(result.addresses().value().endpoints(),
               ElementsAre(kEndpointBack));
 
-  EXPECT_EQ(base::TimeDelta::FromHours(4), result.ttl());
+  EXPECT_EQ(base::Hours(4), result.ttl());
 
   ASSERT_TRUE(result.addresses());
   EXPECT_THAT(result.addresses().value().dns_aliases(),
@@ -1791,9 +1789,9 @@
                                 0);
   const IPEndPoint kEndpointFront(kAddressFront, 0);
   std::vector<std::string> aliases_front({"alias0", "alias1", "alias2"});
-  HostCache::Entry front(
-      OK, AddressList(kEndpointFront, std::move(aliases_front)),
-      HostCache::Entry::SOURCE_DNS, base::TimeDelta::FromHours(4));
+  HostCache::Entry front(OK,
+                         AddressList(kEndpointFront, std::move(aliases_front)),
+                         HostCache::Entry::SOURCE_DNS, base::Hours(4));
 
   HostCache::Entry result =
       HostCache::Entry::MergeEntries(std::move(front), std::move(back));
@@ -1805,7 +1803,7 @@
   EXPECT_THAT(result.addresses().value().endpoints(),
               ElementsAre(kEndpointFront));
 
-  EXPECT_EQ(base::TimeDelta::FromHours(4), result.ttl());
+  EXPECT_EQ(base::Hours(4), result.ttl());
 
   ASSERT_TRUE(result.addresses());
   EXPECT_THAT(result.addresses().value().dns_aliases(),
@@ -1816,16 +1814,14 @@
   const IPAddress kAddressFront(1, 2, 3, 4);
   const IPEndPoint kEndpointFront(kAddressFront, 0);
   HostCache::Entry front(OK, AddressList(kEndpointFront),
-                         HostCache::Entry::SOURCE_DNS,
-                         base::TimeDelta::FromHours(4));
+                         HostCache::Entry::SOURCE_DNS, base::Hours(4));
 
   const IPAddress kAddressBack(0x20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                                0);
   const IPEndPoint kEndpointBack(kAddressBack, 0);
   std::vector<std::string> aliases_back({"alias1", "alias2", "alias3"});
   HostCache::Entry back(OK, AddressList(kEndpointBack, std::move(aliases_back)),
-                        HostCache::Entry::SOURCE_DNS,
-                        base::TimeDelta::FromHours(4));
+                        HostCache::Entry::SOURCE_DNS, base::Hours(4));
 
   HostCache::Entry result =
       HostCache::Entry::MergeEntries(std::move(front), std::move(back));
@@ -1837,7 +1833,7 @@
   EXPECT_THAT(result.addresses().value().endpoints(),
               ElementsAre(kEndpointBack, kEndpointFront));
 
-  EXPECT_EQ(base::TimeDelta::FromHours(4), result.ttl());
+  EXPECT_EQ(base::Hours(4), result.ttl());
 
   ASSERT_TRUE(result.addresses());
   EXPECT_THAT(result.addresses().value().dns_aliases(),
@@ -1848,16 +1844,15 @@
   const IPAddress kAddressFront(1, 2, 3, 4);
   const IPEndPoint kEndpointFront(kAddressFront, 0);
   std::vector<std::string> aliases_front({"alias1", "alias2", "alias3"});
-  HostCache::Entry front(
-      OK, AddressList(kEndpointFront, std::move(aliases_front)),
-      HostCache::Entry::SOURCE_DNS, base::TimeDelta::FromHours(4));
+  HostCache::Entry front(OK,
+                         AddressList(kEndpointFront, std::move(aliases_front)),
+                         HostCache::Entry::SOURCE_DNS, base::Hours(4));
 
   const IPAddress kAddressBack(0x20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                                0);
   const IPEndPoint kEndpointBack(kAddressBack, 0);
   HostCache::Entry back(OK, AddressList(kEndpointBack),
-                        HostCache::Entry::SOURCE_DNS,
-                        base::TimeDelta::FromHours(4));
+                        HostCache::Entry::SOURCE_DNS, base::Hours(4));
 
   HostCache::Entry result =
       HostCache::Entry::MergeEntries(std::move(front), std::move(back));
@@ -1869,7 +1864,7 @@
   EXPECT_THAT(result.addresses().value().endpoints(),
               ElementsAre(kEndpointBack, kEndpointFront));
 
-  EXPECT_EQ(base::TimeDelta::FromHours(4), result.ttl());
+  EXPECT_EQ(base::Hours(4), result.ttl());
 
   ASSERT_TRUE(result.addresses());
   EXPECT_THAT(result.addresses().value().dns_aliases(),
@@ -1878,14 +1873,14 @@
 
 TEST(HostCacheTest, MergeEntries_differentTtl) {
   HostCache::Entry front(ERR_NAME_NOT_RESOLVED, HostCache::Entry::SOURCE_DNS,
-                         base::TimeDelta::FromDays(12));
+                         base::Days(12));
   HostCache::Entry back(ERR_NAME_NOT_RESOLVED, HostCache::Entry::SOURCE_DNS,
-                        base::TimeDelta::FromSeconds(42));
+                        base::Seconds(42));
 
   HostCache::Entry result =
       HostCache::Entry::MergeEntries(std::move(front), std::move(back));
 
-  EXPECT_EQ(base::TimeDelta::FromSeconds(42), result.ttl());
+  EXPECT_EQ(base::Seconds(42), result.ttl());
 }
 
 TEST(HostCacheTest, MergeEntries_FrontCannonnamePreserved) {
diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
index 05a769b3..b641edf 100644
--- a/net/dns/host_resolver_manager.cc
+++ b/net/dns/host_resolver_manager.cc
@@ -1835,8 +1835,7 @@
       base::TimeDelta relative_timeout =
           total_time_for_other_transactions * extra_time_percent / 100;
       // Use at least 1ms to ensure timeout doesn't occur immediately in tests.
-      relative_timeout =
-          std::max(relative_timeout, base::TimeDelta::FromMilliseconds(1));
+      relative_timeout = std::max(relative_timeout, base::Milliseconds(1));
 
       if (timeout.is_zero()) {
         timeout = relative_timeout;
@@ -2388,10 +2387,9 @@
     if (ContainsIcannNameCollisionIp(addr_list))
       net_error = ERR_ICANN_NAME_COLLISION;
 
-    base::TimeDelta ttl =
-        base::TimeDelta::FromSeconds(kNegativeCacheEntryTTLSeconds);
+    base::TimeDelta ttl = base::Seconds(kNegativeCacheEntryTTLSeconds);
     if (net_error == OK)
-      ttl = base::TimeDelta::FromSeconds(kCacheEntryTTLSeconds);
+      ttl = base::Seconds(kCacheEntryTTLSeconds);
 
     // Source unknown because the system resolver could have gotten it from a
     // hosts file, its own cache, a DNS lookup or somewhere else.
@@ -2481,9 +2479,8 @@
 
     // If one of the fallback tasks doesn't complete the request, store a result
     // to use during request completion.
-    base::TimeDelta ttl = failure_results.has_ttl()
-                              ? failure_results.ttl()
-                              : base::TimeDelta::FromSeconds(0);
+    base::TimeDelta ttl =
+        failure_results.has_ttl() ? failure_results.ttl() : base::Seconds(0);
     completion_results_.push_back({failure_results, ttl, secure});
 
     dns_task_error_ = failure_results.error();
@@ -2522,8 +2519,8 @@
     if (!secure)
       resolver_->dns_client_->ClearInsecureFallbackFailures();
 
-    base::TimeDelta bounded_ttl = std::max(
-        results.ttl(), base::TimeDelta::FromSeconds(kMinimumTTLSeconds));
+    base::TimeDelta bounded_ttl =
+        std::max(results.ttl(), base::Seconds(kMinimumTTLSeconds));
 
     if (results.addresses() &&
         ContainsIcannNameCollisionIp(results.addresses().value())) {
@@ -2655,7 +2652,7 @@
 
     if (category == RESOLVE_FAIL ||
         (start_time_ != base::TimeTicks() && category == RESOLVE_ABORT)) {
-      if (duration < base::TimeDelta::FromMilliseconds(10))
+      if (duration < base::Milliseconds(10))
         base::UmaHistogramSparse("Net.DNS.ResolveError.Fast", std::abs(error));
       else
         base::UmaHistogramSparse("Net.DNS.ResolveError.Slow", std::abs(error));
diff --git a/net/dns/host_resolver_manager_unittest.cc b/net/dns/host_resolver_manager_unittest.cc
index 55d3e7e0..4e8fe8b 100644
--- a/net/dns/host_resolver_manager_unittest.cc
+++ b/net/dns/host_resolver_manager_unittest.cc
@@ -613,7 +613,7 @@
     resolver_->CacheResult(resolve_context_->host_cache(), key,
                            HostCache::Entry(OK, AddressList(endpoint),
                                             HostCache::Entry::SOURCE_UNKNOWN),
-                           base::TimeDelta::FromSeconds(1));
+                           base::Seconds(1));
   }
 
   const std::pair<const HostCache::Key, HostCache::Entry>* GetCacheHit(
@@ -2302,7 +2302,7 @@
   // Add a little bit of extra fudge to the delay to allow reasonable
   // flexibility for time > vs >= etc.  We don't need to fail the test if we
   // retry at t=6001 instead of t=6000.
-  base::TimeDelta kSleepFudgeFactor = base::TimeDelta::FromMilliseconds(1);
+  base::TimeDelta kSleepFudgeFactor = base::Milliseconds(1);
 
   scoped_refptr<LookupAttemptHostResolverProc> resolver_proc(
       new LookupAttemptHostResolverProc(nullptr, kAttemptNumberToResolve,
@@ -2395,7 +2395,7 @@
   // time. Because none of the attempts posted to worker pool can complete, this
   // should cause all of the retry attempts to get posted, according to the
   // exponential backoff schedule.
-  test_task_runner->FastForwardBy(base::TimeDelta::FromMinutes(20));
+  test_task_runner->FastForwardBy(base::Minutes(20));
 
   // Unblock the resolver proc, then wait for all the worker pool and main
   // thread tasks to complete. Note that the call to SetResolvedAttemptNumber(1)
@@ -3094,7 +3094,7 @@
   // Add a little bit of extra fudge to the delay to allow reasonable
   // flexibility for time > vs >= etc.  We don't need to fail the test if we
   // timeout at t=6001 instead of t=6000.
-  base::TimeDelta kSleepFudgeFactor = base::TimeDelta::FromMilliseconds(1);
+  base::TimeDelta kSleepFudgeFactor = base::Milliseconds(1);
 
   // Override the current thread task runner, so we can simulate the passage of
   // time to trigger the timeout.
@@ -3133,7 +3133,7 @@
   // Add a little bit of extra fudge to the delay to allow reasonable
   // flexibility for time > vs >= etc.  We don't need to fail the test if we
   // timeout at t=6001 instead of t=6000.
-  base::TimeDelta kSleepFudgeFactor = base::TimeDelta::FromMilliseconds(1);
+  base::TimeDelta kSleepFudgeFactor = base::Milliseconds(1);
 
   // Override the current thread task runner, so we can simulate the passage of
   // time to trigger the timeout.
@@ -3179,7 +3179,7 @@
   // Add a little bit of extra fudge to the delay to allow reasonable
   // flexibility for time > vs >= etc.  We don't need to fail the test if we
   // timeout at t=6001 instead of t=6000.
-  base::TimeDelta kSleepFudgeFactor = base::TimeDelta::FromMilliseconds(1);
+  base::TimeDelta kSleepFudgeFactor = base::Milliseconds(1);
 
   // Override the current thread task runner, so we can simulate the passage of
   // time to trigger the timeout.
@@ -3373,7 +3373,7 @@
 
   // Per RFC6762 section 10.1, removals take effect 1 second after receiving the
   // goodbye message.
-  clock.Advance(base::TimeDelta::FromSeconds(1));
+  clock.Advance(base::Seconds(1));
   cache_cleanup_timer_ptr->Fire();
 
   // Expect 1 record adding "1.2.3.4", another changing to "5.6.7.8", and a
@@ -3439,7 +3439,7 @@
           MdnsListenerUpdateType::kAdded, DnsQueryType::A,
           CreateExpected("1.2.3.4", 100))));
 
-  clock.Advance(base::TimeDelta::FromSeconds(16));
+  clock.Advance(base::Seconds(16));
   cache_cleanup_timer_ptr->Fire();
 
   EXPECT_THAT(delegate.address_results(),
@@ -3753,7 +3753,7 @@
         HostCache::Entry(OK, AddressList::CreateFromIPAddress(address, 80),
                          HostCache::Entry::SOURCE_UNKNOWN);
     resolve_context_->host_cache()->Set(key, entry, base::TimeTicks::Now(),
-                                        base::TimeDelta::FromDays(1));
+                                        base::Days(1));
   }
 
   for (bool split_cache_by_network_isolation_key : {false, true}) {
@@ -6779,7 +6779,7 @@
                                              false /* ignore_secure */);
   EXPECT_TRUE(!!cache_result);
   EXPECT_TRUE(cache_result->second.has_ttl());
-  EXPECT_THAT(cache_result->second.ttl(), base::TimeDelta::FromSeconds(86400));
+  EXPECT_THAT(cache_result->second.ttl(), base::Seconds(86400));
 
   // NXDOMAIN
   ResolveHostResponseHelper no_domain_response(resolver_->CreateRequest(
@@ -6794,7 +6794,7 @@
       nxkey, base::TimeTicks::Now(), false /* ignore_secure */);
   EXPECT_TRUE(!!cache_result);
   EXPECT_TRUE(cache_result->second.has_ttl());
-  EXPECT_THAT(cache_result->second.ttl(), base::TimeDelta::FromSeconds(86400));
+  EXPECT_THAT(cache_result->second.ttl(), base::Seconds(86400));
 }
 
 TEST_F(HostResolverManagerDnsTest, CachedError) {
@@ -7569,7 +7569,7 @@
   overrides.append_to_multi_label_name = false;
   const int ndots = 5;
   overrides.ndots = ndots;
-  const base::TimeDelta fallback_period = base::TimeDelta::FromSeconds(10);
+  const base::TimeDelta fallback_period = base::Seconds(10);
   overrides.fallback_period = fallback_period;
   const int attempts = 20;
   overrides.attempts = attempts;
@@ -11189,7 +11189,7 @@
   // Wait an absurd amount of time (1 hour) and expect the request to not
   // complete because it is waiting on the transaction, where the mock is
   // delaying completion.
-  FastForwardBy(base::TimeDelta::FromHours(1));
+  FastForwardBy(base::Hours(1));
   RunUntilIdle();
   EXPECT_FALSE(response.complete());
 
@@ -11241,13 +11241,12 @@
   EXPECT_FALSE(response.complete());
 
   // Wait until 1 second before expected timeout.
-  FastForwardBy(base::TimeDelta::FromMinutes(10) -
-                base::TimeDelta::FromSeconds(1));
+  FastForwardBy(base::Minutes(10) - base::Seconds(1));
   RunUntilIdle();
   EXPECT_FALSE(response.complete());
 
   // Exceed expected timeout.
-  FastForwardBy(base::TimeDelta::FromSeconds(2));
+  FastForwardBy(base::Seconds(2));
 
   EXPECT_THAT(response.result_error(), IsOk());
   EXPECT_TRUE(response.request()->GetAddressResults());
@@ -11296,21 +11295,21 @@
   EXPECT_FALSE(response.complete());
 
   // Complete final address transaction after 100 seconds total.
-  FastForwardBy(base::TimeDelta::FromSeconds(50));
+  FastForwardBy(base::Seconds(50));
   ASSERT_TRUE(
       dns_client_->CompleteOneDelayedTransactionOfType(DnsQueryType::A));
-  FastForwardBy(base::TimeDelta::FromSeconds(50));
+  FastForwardBy(base::Seconds(50));
   ASSERT_TRUE(
       dns_client_->CompleteOneDelayedTransactionOfType(DnsQueryType::AAAA));
   RunUntilIdle();
   EXPECT_FALSE(response.complete());
 
   // Expect timeout at additional 10 seconds.
-  FastForwardBy(base::TimeDelta::FromSeconds(9));
+  FastForwardBy(base::Seconds(9));
   RunUntilIdle();
   EXPECT_FALSE(response.complete());
 
-  FastForwardBy(base::TimeDelta::FromSeconds(2));
+  FastForwardBy(base::Seconds(2));
   EXPECT_THAT(response.result_error(), IsOk());
   EXPECT_TRUE(response.request()->GetAddressResults());
   EXPECT_FALSE(response.request()->GetTextResults());
@@ -11359,22 +11358,22 @@
   EXPECT_FALSE(response.complete());
 
   // Complete final address transaction after 4 minutes total.
-  FastForwardBy(base::TimeDelta::FromMinutes(2));
+  FastForwardBy(base::Minutes(2));
   ASSERT_TRUE(
       dns_client_->CompleteOneDelayedTransactionOfType(DnsQueryType::A));
-  FastForwardBy(base::TimeDelta::FromMinutes(2));
+  FastForwardBy(base::Minutes(2));
   ASSERT_TRUE(
       dns_client_->CompleteOneDelayedTransactionOfType(DnsQueryType::AAAA));
   RunUntilIdle();
   EXPECT_FALSE(response.complete());
 
   // Wait until 1 second before expected timeout (from the absolute timeout).
-  FastForwardBy(base::TimeDelta::FromSeconds(29));
+  FastForwardBy(base::Seconds(29));
   RunUntilIdle();
   EXPECT_FALSE(response.complete());
 
   // Exceed expected timeout.
-  FastForwardBy(base::TimeDelta::FromSeconds(2));
+  FastForwardBy(base::Seconds(2));
 
   EXPECT_THAT(response.result_error(), IsOk());
   EXPECT_TRUE(response.request()->GetAddressResults());
@@ -11424,21 +11423,21 @@
   EXPECT_FALSE(response.complete());
 
   // Complete final address transaction after 100 seconds total.
-  FastForwardBy(base::TimeDelta::FromSeconds(50));
+  FastForwardBy(base::Seconds(50));
   ASSERT_TRUE(
       dns_client_->CompleteOneDelayedTransactionOfType(DnsQueryType::A));
-  FastForwardBy(base::TimeDelta::FromSeconds(50));
+  FastForwardBy(base::Seconds(50));
   ASSERT_TRUE(
       dns_client_->CompleteOneDelayedTransactionOfType(DnsQueryType::AAAA));
   RunUntilIdle();
   EXPECT_FALSE(response.complete());
 
   // Expect timeout at additional 10 seconds (from the relative timeout).
-  FastForwardBy(base::TimeDelta::FromSeconds(9));
+  FastForwardBy(base::Seconds(9));
   RunUntilIdle();
   EXPECT_FALSE(response.complete());
 
-  FastForwardBy(base::TimeDelta::FromSeconds(2));
+  FastForwardBy(base::Seconds(2));
   EXPECT_THAT(response.result_error(), IsOk());
   EXPECT_TRUE(response.request()->GetAddressResults());
   EXPECT_FALSE(response.request()->GetTextResults());
@@ -11492,7 +11491,7 @@
   // Wait an absurd amount of time (1 hour) and expect the request to not
   // complete because it is waiting on the transaction, where the mock is
   // delaying completion.
-  FastForwardBy(base::TimeDelta::FromHours(1));
+  FastForwardBy(base::Hours(1));
   RunUntilIdle();
   EXPECT_FALSE(response.complete());
 
@@ -11546,12 +11545,11 @@
   EXPECT_FALSE(response.complete());
 
   // Wait until 1s before expected timeout.
-  FastForwardBy(base::TimeDelta::FromMinutes(20) -
-                base::TimeDelta::FromSeconds(1));
+  FastForwardBy(base::Minutes(20) - base::Seconds(1));
   RunUntilIdle();
   EXPECT_FALSE(response.complete());
 
-  FastForwardBy(base::TimeDelta::FromSeconds(2));
+  FastForwardBy(base::Seconds(2));
   EXPECT_THAT(response.result_error(), IsOk());
   EXPECT_TRUE(response.request()->GetAddressResults());
   EXPECT_FALSE(response.request()->GetTextResults());
@@ -12279,7 +12277,7 @@
 TEST_F(HostResolverManagerDnsTest,
        ExperimentalHttpsInAddressQuery_ExperimentalTimeout) {
   const char kName[] = "combined.test";
-  const base::TimeDelta kTimeout = base::TimeDelta::FromSeconds(2);
+  const base::TimeDelta kTimeout = base::Seconds(2);
 
   base::test::ScopedFeatureList features;
   features.InitAndEnableFeatureWithParameters(
@@ -12372,7 +12370,7 @@
 
 TEST_F(HostResolverManagerDnsTest, MultipleExperimentalQueries_Timeout) {
   const char kName[] = "combined.test";
-  const base::TimeDelta kTimeout = base::TimeDelta::FromSeconds(2);
+  const base::TimeDelta kTimeout = base::Seconds(2);
 
   base::test::ScopedFeatureList features;
   features.InitAndEnableFeatureWithParameters(
@@ -12623,7 +12621,7 @@
   std::unique_ptr<ResolveHostResponseHelper> response =
       DoIntegrityQuery(true /* use_secure */);
 
-  constexpr base::TimeDelta kQuantum = base::TimeDelta::FromMilliseconds(1);
+  constexpr base::TimeDelta kQuantum = base::Milliseconds(1);
 
   FastForwardBy(100 * kQuantum);
 
@@ -12731,7 +12729,7 @@
   std::unique_ptr<ResolveHostResponseHelper> response =
       DoIntegrityQuery(true /* use_secure */);
 
-  constexpr base::TimeDelta kQuantum = base::TimeDelta::FromMilliseconds(10);
+  constexpr base::TimeDelta kQuantum = base::Milliseconds(10);
 
   FastForwardBy(kQuantum);
 
@@ -12773,7 +12771,7 @@
   std::unique_ptr<ResolveHostResponseHelper> response =
       DoIntegrityQuery(true /* use_secure */);
 
-  constexpr base::TimeDelta kQuantum = base::TimeDelta::FromMilliseconds(1);
+  constexpr base::TimeDelta kQuantum = base::Milliseconds(1);
 
   FastForwardBy(100 * kQuantum);
 
@@ -12815,7 +12813,7 @@
   std::unique_ptr<ResolveHostResponseHelper> response =
       DoIntegrityQuery(true /* use_secure */);
 
-  constexpr base::TimeDelta kQuantum = base::TimeDelta::FromMilliseconds(10);
+  constexpr base::TimeDelta kQuantum = base::Milliseconds(10);
 
   FastForwardBy(kQuantum);
 
@@ -12854,7 +12852,7 @@
   std::unique_ptr<ResolveHostResponseHelper> response =
       DoIntegrityQuery(true /* use_secure */);
 
-  constexpr base::TimeDelta kQuantum = base::TimeDelta::FromMilliseconds(1);
+  constexpr base::TimeDelta kQuantum = base::Milliseconds(1);
 
   FastForwardBy(100 * kQuantum);
 
@@ -12892,7 +12890,7 @@
   std::unique_ptr<ResolveHostResponseHelper> response =
       DoIntegrityQuery(true /* use_secure */);
 
-  constexpr base::TimeDelta kQuantum = base::TimeDelta::FromMilliseconds(10);
+  constexpr base::TimeDelta kQuantum = base::Milliseconds(10);
 
   FastForwardBy(kQuantum);
 
@@ -12974,8 +12972,8 @@
   // relative_timeout < absolute_timeout. For larger values, absolute_timeout >
   // relative_timeout.
 
-  base::TimeDelta absolute_timeout = base::TimeDelta::FromMilliseconds(
-      features::kDnsHttpssvcExtraTimeMs.Get());
+  base::TimeDelta absolute_timeout =
+      base::Milliseconds(features::kDnsHttpssvcExtraTimeMs.Get());
   base::TimeDelta intersection =
       100 * absolute_timeout / features::kDnsHttpssvcExtraTimePercent.Get();
 
@@ -13011,7 +13009,7 @@
   EXPECT_FALSE(response->request()->GetExperimentalResultsForTesting());
 
   // Out of paranoia, pass some more time to ensure no crashes occur.
-  FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  FastForwardBy(base::Milliseconds(100));
 }
 
 TEST_F(HostResolverManagerDnsTestIntegrity, RespectsRelativeTimeout) {
@@ -13025,8 +13023,8 @@
   std::unique_ptr<ResolveHostResponseHelper> response =
       DoIntegrityQuery(true /* use_secure */);
 
-  base::TimeDelta absolute_timeout = base::TimeDelta::FromMilliseconds(
-      features::kDnsHttpssvcExtraTimeMs.Get());
+  base::TimeDelta absolute_timeout =
+      base::Milliseconds(features::kDnsHttpssvcExtraTimeMs.Get());
   base::TimeDelta intersection =
       100 * absolute_timeout / features::kDnsHttpssvcExtraTimePercent.Get();
 
@@ -13063,7 +13061,7 @@
                                             CreateExpected("::1", 108)));
 
   // Out of paranoia, pass some more time to ensure no crashes occur.
-  FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  FastForwardBy(base::Milliseconds(100));
 }
 
 TEST_F(HostResolverManagerDnsTest, DohProbeRequest) {
diff --git a/net/dns/host_resolver_proc.cc b/net/dns/host_resolver_proc.cc
index eca5fce0..cee70a0 100644
--- a/net/dns/host_resolver_proc.cc
+++ b/net/dns/host_resolver_proc.cc
@@ -231,7 +231,7 @@
 SystemHostResolverProc::~SystemHostResolverProc() = default;
 
 const base::TimeDelta ProcTaskParams::kDnsDefaultUnresponsiveDelay =
-    base::TimeDelta::FromSeconds(6);
+    base::Seconds(6);
 
 ProcTaskParams::ProcTaskParams(HostResolverProc* resolver_proc,
                                size_t in_max_retry_attempts)
diff --git a/net/dns/httpssvc_metrics_unittest.cc b/net/dns/httpssvc_metrics_unittest.cc
index b55681a..2e1b397 100644
--- a/net/dns/httpssvc_metrics_unittest.cc
+++ b/net/dns/httpssvc_metrics_unittest.cc
@@ -382,7 +382,7 @@
 
 // Only record metrics for a non-integrity query.
 TEST_P(HttpssvcMetricsTest, AddressAndExperimentalMissing) {
-  const base::TimeDelta kResolveTime = base::TimeDelta::FromMilliseconds(10);
+  const base::TimeDelta kResolveTime = base::Milliseconds(10);
   absl::optional<HttpssvcMetrics> metrics(querying_experimental_);
   metrics->SaveForAddressQuery(absl::nullopt, kResolveTime,
                                HttpssvcDnsRcode::kNoError);
@@ -396,9 +396,8 @@
 }
 
 TEST_P(HttpssvcMetricsTest, AddressAndIntegrityIntact) {
-  const base::TimeDelta kResolveTime = base::TimeDelta::FromMilliseconds(10);
-  const base::TimeDelta kResolveTimeIntegrity =
-      base::TimeDelta::FromMilliseconds(15);
+  const base::TimeDelta kResolveTime = base::Milliseconds(10);
+  const base::TimeDelta kResolveTimeIntegrity = base::Milliseconds(15);
   absl::optional<HttpssvcMetrics> metrics(querying_experimental_);
   metrics->SaveForIntegrity(absl::nullopt, HttpssvcDnsRcode::kNoError, {true},
                             kResolveTimeIntegrity);
@@ -432,9 +431,8 @@
 }
 
 TEST_P(HttpssvcMetricsTest, AddressAndHttpsParsable) {
-  const base::TimeDelta kResolveTime = base::TimeDelta::FromMilliseconds(10);
-  const base::TimeDelta kResolveTimeHttps =
-      base::TimeDelta::FromMilliseconds(15);
+  const base::TimeDelta kResolveTime = base::Milliseconds(10);
+  const base::TimeDelta kResolveTimeHttps = base::Milliseconds(15);
   absl::optional<HttpssvcMetrics> metrics(querying_experimental_);
   metrics->SaveForHttps(absl::nullopt, HttpssvcDnsRcode::kNoError, {true},
                         kResolveTimeHttps);
@@ -469,11 +467,9 @@
 }
 
 TEST_P(HttpssvcMetricsTest, AddressAndIntegrityIntactAndHttpsParsable) {
-  const base::TimeDelta kResolveTime = base::TimeDelta::FromMilliseconds(10);
-  const base::TimeDelta kResolveTimeIntegrity =
-      base::TimeDelta::FromMilliseconds(15);
-  const base::TimeDelta kResolveTimeHttps =
-      base::TimeDelta::FromMilliseconds(20);
+  const base::TimeDelta kResolveTime = base::Milliseconds(10);
+  const base::TimeDelta kResolveTimeIntegrity = base::Milliseconds(15);
+  const base::TimeDelta kResolveTimeHttps = base::Milliseconds(20);
   absl::optional<HttpssvcMetrics> metrics(querying_experimental_);
   metrics->SaveForIntegrity(absl::nullopt, HttpssvcDnsRcode::kNoError, {true},
                             kResolveTimeIntegrity);
@@ -520,9 +516,8 @@
 // This test simulates an INTEGRITY response that includes no INTEGRITY records,
 // but does have an error value for the RCODE.
 TEST_P(HttpssvcMetricsTest, AddressAndIntegrityMissingWithRcode) {
-  const base::TimeDelta kResolveTime = base::TimeDelta::FromMilliseconds(10);
-  const base::TimeDelta kResolveTimeIntegrity =
-      base::TimeDelta::FromMilliseconds(15);
+  const base::TimeDelta kResolveTime = base::Milliseconds(10);
+  const base::TimeDelta kResolveTimeIntegrity = base::Milliseconds(15);
 
   absl::optional<HttpssvcMetrics> metrics(querying_experimental_);
   metrics->SaveForIntegrity(absl::nullopt, HttpssvcDnsRcode::kNxDomain, {},
@@ -560,9 +555,8 @@
 // This test simulates an HTTPS response that includes no HTTPS records,
 // but does have an error value for the RCODE.
 TEST_P(HttpssvcMetricsTest, AddressAndHttpsMissingWithRcode) {
-  const base::TimeDelta kResolveTime = base::TimeDelta::FromMilliseconds(10);
-  const base::TimeDelta kResolveTimeHttps =
-      base::TimeDelta::FromMilliseconds(15);
+  const base::TimeDelta kResolveTime = base::Milliseconds(10);
+  const base::TimeDelta kResolveTimeHttps = base::Milliseconds(15);
 
   absl::optional<HttpssvcMetrics> metrics(querying_experimental_);
   metrics->SaveForHttps(absl::nullopt, HttpssvcDnsRcode::kNxDomain, {},
@@ -600,9 +594,8 @@
 // This test simulates an INTEGRITY response that includes an intact INTEGRITY
 // record, but also has an error RCODE.
 TEST_P(HttpssvcMetricsTest, AddressAndIntegrityIntactWithRcode) {
-  const base::TimeDelta kResolveTime = base::TimeDelta::FromMilliseconds(10);
-  const base::TimeDelta kResolveTimeIntegrity =
-      base::TimeDelta::FromMilliseconds(15);
+  const base::TimeDelta kResolveTime = base::Milliseconds(10);
+  const base::TimeDelta kResolveTimeIntegrity = base::Milliseconds(15);
 
   absl::optional<HttpssvcMetrics> metrics(querying_experimental_);
   metrics->SaveForIntegrity(absl::nullopt, HttpssvcDnsRcode::kNxDomain, {true},
@@ -641,9 +634,8 @@
 // This test simulates an HTTPS response that includes a parsable HTTPS
 // record, but also has an error RCODE.
 TEST_P(HttpssvcMetricsTest, AddressAndHttpsParsableWithRcode) {
-  const base::TimeDelta kResolveTime = base::TimeDelta::FromMilliseconds(10);
-  const base::TimeDelta kResolveTimeHttps =
-      base::TimeDelta::FromMilliseconds(15);
+  const base::TimeDelta kResolveTime = base::Milliseconds(10);
+  const base::TimeDelta kResolveTimeHttps = base::Milliseconds(15);
 
   absl::optional<HttpssvcMetrics> metrics(querying_experimental_);
   metrics->SaveForHttps(absl::nullopt, HttpssvcDnsRcode::kNxDomain, {true},
@@ -684,9 +676,8 @@
 // This test simulates an INTEGRITY response that includes a mangled INTEGRITY
 // record *and* has an error RCODE.
 TEST_P(HttpssvcMetricsTest, AddressAndIntegrityMangledWithRcode) {
-  const base::TimeDelta kResolveTime = base::TimeDelta::FromMilliseconds(10);
-  const base::TimeDelta kResolveTimeIntegrity =
-      base::TimeDelta::FromMilliseconds(15);
+  const base::TimeDelta kResolveTime = base::Milliseconds(10);
+  const base::TimeDelta kResolveTimeIntegrity = base::Milliseconds(15);
   absl::optional<HttpssvcMetrics> metrics(querying_experimental_);
   metrics->SaveForIntegrity(absl::nullopt, HttpssvcDnsRcode::kNxDomain, {false},
                             kResolveTimeIntegrity);
@@ -724,9 +715,8 @@
 // This test simulates an HTTPS response that includes a mangled HTTPS
 // record *and* has an error RCODE.
 TEST_P(HttpssvcMetricsTest, AddressAndHttpsMangledWithRcode) {
-  const base::TimeDelta kResolveTime = base::TimeDelta::FromMilliseconds(10);
-  const base::TimeDelta kResolveTimeHttps =
-      base::TimeDelta::FromMilliseconds(15);
+  const base::TimeDelta kResolveTime = base::Milliseconds(10);
+  const base::TimeDelta kResolveTimeHttps = base::Milliseconds(15);
   absl::optional<HttpssvcMetrics> metrics(querying_experimental_);
   metrics->SaveForHttps(absl::nullopt, HttpssvcDnsRcode::kNxDomain, {false},
                         kResolveTimeHttps);
@@ -766,9 +756,8 @@
 // This test simulates successful address queries and an INTEGRITY query that
 // timed out.
 TEST_P(HttpssvcMetricsTest, AddressAndIntegrityTimedOut) {
-  const base::TimeDelta kResolveTime = base::TimeDelta::FromMilliseconds(10);
-  const base::TimeDelta kResolveTimeIntegrity =
-      base::TimeDelta::FromMilliseconds(15);
+  const base::TimeDelta kResolveTime = base::Milliseconds(10);
+  const base::TimeDelta kResolveTimeIntegrity = base::Milliseconds(15);
   absl::optional<HttpssvcMetrics> metrics(querying_experimental_);
   metrics->SaveForIntegrity(absl::nullopt, HttpssvcDnsRcode::kTimedOut, {},
                             kResolveTimeIntegrity);
@@ -806,9 +795,8 @@
 // This test simulates successful address queries and an HTTPS query that
 // timed out.
 TEST_P(HttpssvcMetricsTest, AddressAndHttpsTimedOut) {
-  const base::TimeDelta kResolveTime = base::TimeDelta::FromMilliseconds(10);
-  const base::TimeDelta kResolveTimeHttps =
-      base::TimeDelta::FromMilliseconds(15);
+  const base::TimeDelta kResolveTime = base::Milliseconds(10);
+  const base::TimeDelta kResolveTimeHttps = base::Milliseconds(15);
   absl::optional<HttpssvcMetrics> metrics(querying_experimental_);
   metrics->SaveForHttps(absl::nullopt, HttpssvcDnsRcode::kTimedOut, {},
                         kResolveTimeHttps);
diff --git a/net/dns/mdns_cache.cc b/net/dns/mdns_cache.cc
index 96a9f0d..b9981d5 100644
--- a/net/dns/mdns_cache.cc
+++ b/net/dns/mdns_cache.cc
@@ -189,9 +189,9 @@
   base::TimeDelta ttl;
 
   if (record->ttl()) {
-    ttl = base::TimeDelta::FromSeconds(record->ttl());
+    ttl = base::Seconds(record->ttl());
   } else {
-    ttl = base::TimeDelta::FromSeconds(kZeroTTLSeconds);
+    ttl = base::Seconds(kZeroTTLSeconds);
   }
 
   return record->time_created() + ttl;
diff --git a/net/dns/mdns_cache_unittest.cc b/net/dns/mdns_cache_unittest.cc
index 92813e2..2daf8fe 100644
--- a/net/dns/mdns_cache_unittest.cc
+++ b/net/dns/mdns_cache_unittest.cc
@@ -184,10 +184,10 @@
   const RecordParsed* record_to_be_deleted;
 
   record1 = RecordParsed::CreateFrom(&parser, default_time_);
-  base::TimeDelta ttl1 = base::TimeDelta::FromSeconds(record1->ttl());
+  base::TimeDelta ttl1 = base::Seconds(record1->ttl());
 
   record2 = RecordParsed::CreateFrom(&parser, default_time_);
-  base::TimeDelta ttl2 = base::TimeDelta::FromSeconds(record2->ttl());
+  base::TimeDelta ttl2 = base::Seconds(record2->ttl());
   record_to_be_deleted = record2.get();
 
   EXPECT_EQ(MDnsCache::RecordAdded, cache_.UpdateDnsRecord(std::move(record1)));
@@ -254,8 +254,7 @@
   std::vector<const RecordParsed*> results;
 
   record1 = RecordParsed::CreateFrom(&parser, default_time_);
-  record2 = RecordParsed::CreateFrom(&parser, default_time_ +
-                                     base::TimeDelta::FromSeconds(1));
+  record2 = RecordParsed::CreateFrom(&parser, default_time_ + base::Seconds(1));
 
   EXPECT_EQ(MDnsCache::RecordAdded, cache_.UpdateDnsRecord(std::move(record1)));
   EXPECT_EQ(MDnsCache::NoChange, cache_.UpdateDnsRecord(std::move(record2)));
@@ -274,8 +273,8 @@
 
   record1 = RecordParsed::CreateFrom(&parser, default_time_);
   record2 = RecordParsed::CreateFrom(&parser, default_time_);
-  base::TimeDelta ttl1 = base::TimeDelta::FromSeconds(record1->ttl());
-  base::TimeDelta ttl2 = base::TimeDelta::FromSeconds(record2->ttl());
+  base::TimeDelta ttl1 = base::Seconds(record1->ttl());
+  base::TimeDelta ttl2 = base::Seconds(record2->ttl());
 
   EXPECT_EQ(base::Time(), cache_.next_expiration());
   EXPECT_EQ(MDnsCache::RecordAdded, cache_.UpdateDnsRecord(std::move(record2)));
@@ -304,7 +303,7 @@
                            /*num_records=*/2);
   record_goodbye2 = RecordParsed::CreateFrom(&parser, default_time_);
 
-  base::TimeDelta ttl = base::TimeDelta::FromSeconds(record_hello->ttl());
+  base::TimeDelta ttl = base::Seconds(record_hello->ttl());
 
   EXPECT_EQ(base::Time(), cache_.next_expiration());
   EXPECT_EQ(MDnsCache::NoChange,
@@ -315,8 +314,7 @@
   EXPECT_EQ(default_time_ + ttl, cache_.next_expiration());
   EXPECT_EQ(MDnsCache::NoChange,
             cache_.UpdateDnsRecord(std::move(record_goodbye2)));
-  EXPECT_EQ(default_time_ + base::TimeDelta::FromSeconds(1),
-            cache_.next_expiration());
+  EXPECT_EQ(default_time_ + base::Seconds(1), cache_.next_expiration());
 }
 
 TEST_F(MDnsCacheTest, AnyRRType) {
diff --git a/net/dns/mdns_client.cc b/net/dns/mdns_client.cc
index 7b17874..ed06f64 100644
--- a/net/dns/mdns_client.cc
+++ b/net/dns/mdns_client.cc
@@ -32,8 +32,7 @@
 
 }  // namespace
 
-const base::TimeDelta MDnsTransaction::kTransactionTimeout =
-    base::TimeDelta::FromSeconds(3);
+const base::TimeDelta MDnsTransaction::kTransactionTimeout = base::Seconds(3);
 
 // static
 std::unique_ptr<MDnsSocketFactory> MDnsSocketFactory::CreateDefault() {
diff --git a/net/dns/mdns_client_impl.cc b/net/dns/mdns_client_impl.cc
index d43f425a..61d5f69 100644
--- a/net/dns/mdns_client_impl.cc
+++ b/net/dns/mdns_client_impl.cc
@@ -596,13 +596,15 @@
   // Schedule refreshes at both 85% and 95% of the original TTL. These will both
   // be canceled and rescheduled if the record's TTL is updated due to a
   // response being received.
-  base::Time next_refresh1 = last_update_ + base::TimeDelta::FromMilliseconds(
-      static_cast<int>(base::Time::kMillisecondsPerSecond *
-                       kListenerRefreshRatio1 * ttl_));
+  base::Time next_refresh1 =
+      last_update_ +
+      base::Milliseconds(static_cast<int>(base::Time::kMillisecondsPerSecond *
+                                          kListenerRefreshRatio1 * ttl_));
 
-  base::Time next_refresh2 = last_update_ + base::TimeDelta::FromMilliseconds(
-      static_cast<int>(base::Time::kMillisecondsPerSecond *
-                       kListenerRefreshRatio2 * ttl_));
+  base::Time next_refresh2 =
+      last_update_ +
+      base::Milliseconds(static_cast<int>(base::Time::kMillisecondsPerSecond *
+                                          kListenerRefreshRatio2 * ttl_));
 
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE, next_refresh_.callback(), next_refresh1 - clock_->Now());
diff --git a/net/dns/mdns_client_unittest.cc b/net/dns/mdns_client_unittest.cc
index 261ee99..3191158 100644
--- a/net/dns/mdns_client_unittest.cc
+++ b/net/dns/mdns_client_unittest.cc
@@ -641,7 +641,7 @@
                       Invoke(&record_privet2,
                              &PtrRecordCopyContainer::SaveWithDummyArg)));
 
-  RunFor(base::TimeDelta::FromSeconds(record_privet.ttl() + 1));
+  RunFor(base::Seconds(record_privet.ttl() + 1));
 
   EXPECT_TRUE(record_privet2.IsRecordWith("_privet._tcp.local",
                                           "hello._privet._tcp.local"));
@@ -652,7 +652,7 @@
 // cleanup dispatcher.
 TEST_F(MDnsTest, CacheCleanupWithShortTTL) {
   // Use a nonzero starting time as a base.
-  base::Time start_time = base::Time() + base::TimeDelta::FromSeconds(1);
+  base::Time start_time = base::Time() + base::Seconds(1);
 
   MockClock clock;
   MockTimer* timer = new MockTimer;
@@ -698,10 +698,10 @@
   // the printer. The mock clock will change Now() mid-execution from 2s to 4s.
   // Note: expectations are FILO-ordered -- t+2 seconds is returned, then t+4.
   EXPECT_CALL(clock, Now())
-      .WillOnce(Return(start_time + base::TimeDelta::FromSeconds(4)))
+      .WillOnce(Return(start_time + base::Seconds(4)))
       .RetiresOnSaturation();
   EXPECT_CALL(clock, Now())
-      .WillOnce(Return(start_time + base::TimeDelta::FromSeconds(2)))
+      .WillOnce(Return(start_time + base::Seconds(2)))
       .RetiresOnSaturation();
 
   EXPECT_CALL(*timer, StartObserver(_, base::TimeDelta()));
@@ -719,7 +719,7 @@
 TEST_F(MDnsTest, StopListening_CacheCleanupScheduled) {
   base::SimpleTestClock clock;
   // Use a nonzero starting time as a base.
-  clock.SetNow(base::Time() + base::TimeDelta::FromSeconds(1));
+  clock.SetNow(base::Time() + base::Seconds(1));
   auto cleanup_timer = std::make_unique<base::MockOneShotTimer>();
   base::OneShotTimer* cleanup_timer_ptr = cleanup_timer.get();
 
@@ -914,7 +914,7 @@
       .Times(Exactly(1))
       .WillOnce(InvokeWithoutArgs(this, &MDnsTest::Stop));
 
-  RunFor(base::TimeDelta::FromSeconds(4));
+  RunFor(base::Seconds(4));
 }
 
 TEST_F(MDnsTest, TransactionMultipleRecords) {
@@ -951,7 +951,7 @@
   EXPECT_CALL(*this, MockableRecordCallback(MDnsTransaction::RESULT_DONE, NULL))
       .WillOnce(InvokeWithoutArgs(this, &MDnsTest::Stop));
 
-  RunFor(base::TimeDelta::FromSeconds(4));
+  RunFor(base::Seconds(4));
 }
 
 TEST_F(MDnsTest, TransactionReentrantDelete) {
@@ -972,7 +972,7 @@
       .WillOnce(DoAll(InvokeWithoutArgs(this, &MDnsTest::DeleteTransaction),
                       InvokeWithoutArgs(this, &MDnsTest::Stop)));
 
-  RunFor(base::TimeDelta::FromSeconds(4));
+  RunFor(base::Seconds(4));
 
   EXPECT_EQ(NULL, transaction_.get());
 }
@@ -1044,7 +1044,7 @@
 
   SimulatePacketReceive(kSamplePacketGoodbye, sizeof(kSamplePacketGoodbye));
 
-  RunFor(base::TimeDelta::FromSeconds(2));
+  RunFor(base::Seconds(2));
 }
 
 TEST_F(MDnsTest, GoodbyePacketRemoval) {
@@ -1064,7 +1064,7 @@
   EXPECT_CALL(delegate_privet, OnRecordUpdate(MDnsListener::RECORD_REMOVED, _))
       .Times(Exactly(1));
 
-  RunFor(base::TimeDelta::FromSeconds(2));
+  RunFor(base::Seconds(2));
 }
 
 // In order to reliably test reentrant listener deletes, we create two listeners
@@ -1250,7 +1250,7 @@
 
   EXPECT_CALL(delegate_privet, OnRecordUpdate(MDnsListener::RECORD_REMOVED, _));
 
-  RunFor(base::TimeDelta::FromSeconds(6));
+  RunFor(base::Seconds(6));
 }
 
 // MDnsSocketFactory implementation that creates a single socket that will
diff --git a/net/dns/mock_host_resolver.cc b/net/dns/mock_host_resolver.cc
index 496b6b6..3bf814f 100644
--- a/net/dns/mock_host_resolver.cc
+++ b/net/dns/mock_host_resolver.cc
@@ -738,7 +738,7 @@
     // Storing a failure with TTL 0 so that it overwrites previous value.
     base::TimeDelta ttl;
     if (rv == OK) {
-      ttl = base::TimeDelta::FromSeconds(kCacheEntryTTLSeconds);
+      ttl = base::Seconds(kCacheEntryTTLSeconds);
       if (initial_cache_invalidation_num_ > 0)
         cache_invalidation_nums_[key] = initial_cache_invalidation_num_;
     }
@@ -974,8 +974,7 @@
     if (matches_flags && matches_address_family &&
         base::MatchPattern(host, r->host_pattern)) {
       if (r->latency_ms != 0) {
-        base::PlatformThread::Sleep(
-            base::TimeDelta::FromMilliseconds(r->latency_ms));
+        base::PlatformThread::Sleep(base::Milliseconds(r->latency_ms));
       }
 
       // Remap to a new host.
diff --git a/net/dns/resolve_context.cc b/net/dns/resolve_context.cc
index 70f240c..aee7aa37 100644
--- a/net/dns/resolve_context.cc
+++ b/net/dns/resolve_context.cc
@@ -35,16 +35,14 @@
 
 // Min fallback period between queries, in case we are talking to a local DNS
 // proxy.
-const base::TimeDelta kMinFallbackPeriod =
-    base::TimeDelta::FromMilliseconds(10);
+const base::TimeDelta kMinFallbackPeriod = base::Milliseconds(10);
 
 // Default maximum fallback period between queries, even with exponential
 // backoff. (Can be overridden by field trial.)
-const base::TimeDelta kDefaultMaxFallbackPeriod =
-    base::TimeDelta::FromSeconds(5);
+const base::TimeDelta kDefaultMaxFallbackPeriod = base::Seconds(5);
 
 // Maximum RTT that will fit in the RTT histograms.
-const base::TimeDelta kRttMax = base::TimeDelta::FromSeconds(30);
+const base::TimeDelta kRttMax = base::Seconds(30);
 // Number of buckets in the histogram of observed RTTs.
 const size_t kRttBucketCount = 350;
 // Target percentile in the RTT histogram used for fallback period.
@@ -443,7 +441,7 @@
   }
 
   base::TimeDelta fallback_period =
-      base::TimeDelta::FromMilliseconds(GetRttBuckets()->range(index));
+      base::Milliseconds(GetRttBuckets()->range(index));
 
   fallback_period = std::max(fallback_period, kMinFallbackPeriod);
 
diff --git a/net/dns/resolve_context_unittest.cc b/net/dns/resolve_context_unittest.cc
index 579361b3..39a8db8 100644
--- a/net/dns/resolve_context_unittest.cc
+++ b/net/dns/resolve_context_unittest.cc
@@ -333,7 +333,7 @@
   context.host_cache()->Set(
       key,
       HostCache::Entry(OK, AddressList(), HostCache::Entry::SOURCE_UNKNOWN),
-      now, base::TimeDelta::FromSeconds(10));
+      now, base::Seconds(10));
   ASSERT_TRUE(context.host_cache()->Lookup(key, now));
 
   DnsConfig config =
@@ -348,7 +348,7 @@
   context.host_cache()->Set(
       key,
       HostCache::Entry(OK, AddressList(), HostCache::Entry::SOURCE_UNKNOWN),
-      now, base::TimeDelta::FromSeconds(10));
+      now, base::Seconds(10));
   context.RecordServerSuccess(0u /* server_index */, true /* is_doh_server */,
                               session.get());
   ASSERT_TRUE(context.host_cache()->Lookup(key, now));
@@ -384,7 +384,7 @@
   context.host_cache()->Set(
       key,
       HostCache::Entry(OK, AddressList(), HostCache::Entry::SOURCE_UNKNOWN),
-      now, base::TimeDelta::FromSeconds(10));
+      now, base::Seconds(10));
   context.RecordServerSuccess(0u /* server_index */, true /* is_doh_server */,
                               session.get());
   ASSERT_TRUE(context.host_cache()->Lookup(key, now));
@@ -883,11 +883,11 @@
       context.NextClassicFallbackPeriod(0 /* server_index */, 0 /* attempt */,
                                         session.get()) -
       config.fallback_period;
-  EXPECT_LE(delta, base::TimeDelta::FromMilliseconds(10));
+  EXPECT_LE(delta, base::Milliseconds(10));
   delta =
       context.NextDohFallbackPeriod(0 /* doh_server_index */, session.get()) -
       config.fallback_period;
-  EXPECT_LE(delta, base::TimeDelta::FromMilliseconds(10));
+  EXPECT_LE(delta, base::Milliseconds(10));
 }
 
 // Expect short calculated fallback period to be within 10ms of
@@ -897,7 +897,7 @@
                          false /* enable_caching */);
   DnsConfig config =
       CreateDnsConfig(2 /* num_servers */, 2 /* num_doh_servers */);
-  config.fallback_period = base::TimeDelta::FromMilliseconds(15);
+  config.fallback_period = base::Milliseconds(15);
   scoped_refptr<DnsSession> session = CreateDnsSession(config);
   context.InvalidateCachesAndPerSessionData(session.get(),
                                             false /* network_change */);
@@ -906,11 +906,11 @@
       context.NextClassicFallbackPeriod(0 /* server_index */, 0 /* attempt */,
                                         session.get()) -
       config.fallback_period;
-  EXPECT_LE(delta, base::TimeDelta::FromMilliseconds(10));
+  EXPECT_LE(delta, base::Milliseconds(10));
   delta =
       context.NextDohFallbackPeriod(0 /* doh_server_index */, session.get()) -
       config.fallback_period;
-  EXPECT_LE(delta, base::TimeDelta::FromMilliseconds(10));
+  EXPECT_LE(delta, base::Milliseconds(10));
 }
 
 // Expect long calculated fallback period to be equal to
@@ -922,7 +922,7 @@
                          false /* enable_caching */);
   DnsConfig config =
       CreateDnsConfig(2 /* num_servers */, 2 /* num_doh_servers */);
-  config.fallback_period = base::TimeDelta::FromSeconds(15);
+  config.fallback_period = base::Seconds(15);
   scoped_refptr<DnsSession> session = CreateDnsSession(config);
   context.InvalidateCachesAndPerSessionData(session.get(),
                                             false /* network_change */);
@@ -947,9 +947,9 @@
 
   for (int i = 0; i < 50; ++i) {
     context.RecordRtt(0u /* server_index */, false /* is_doh_server */,
-                      base::TimeDelta::FromMinutes(10), OK, session.get());
+                      base::Minutes(10), OK, session.get());
     context.RecordRtt(1u /* server_index */, true /* is_doh_server */,
-                      base::TimeDelta::FromMinutes(10), OK, session.get());
+                      base::Minutes(10), OK, session.get());
   }
 
   // Expect servers with high recorded RTT to have increased fallback periods
@@ -958,20 +958,20 @@
       context.NextClassicFallbackPeriod(0u /* server_index */, 0 /* attempt */,
                                         session.get()) -
       config.fallback_period;
-  EXPECT_GT(delta, base::TimeDelta::FromMilliseconds(10));
+  EXPECT_GT(delta, base::Milliseconds(10));
   delta =
       context.NextDohFallbackPeriod(1u, session.get()) - config.fallback_period;
-  EXPECT_GT(delta, base::TimeDelta::FromMilliseconds(10));
+  EXPECT_GT(delta, base::Milliseconds(10));
 
   // Servers without recorded RTT expected to remain the same (<=10ms).
   delta = context.NextClassicFallbackPeriod(1u /* server_index */,
                                             0 /* attempt */, session.get()) -
           config.fallback_period;
-  EXPECT_LE(delta, base::TimeDelta::FromMilliseconds(10));
+  EXPECT_LE(delta, base::Milliseconds(10));
   delta =
       context.NextDohFallbackPeriod(0u /* doh_server_index */, session.get()) -
       config.fallback_period;
-  EXPECT_LE(delta, base::TimeDelta::FromMilliseconds(10));
+  EXPECT_LE(delta, base::Milliseconds(10));
 }
 
 // Expect recording round-trip times to have no affect on fallback period
@@ -985,20 +985,20 @@
 
   for (int i = 0; i < 50; ++i) {
     context.RecordRtt(0u /* server_index */, false /* is_doh_server */,
-                      base::TimeDelta::FromMinutes(10), OK, session.get());
+                      base::Minutes(10), OK, session.get());
     context.RecordRtt(1u /* server_index */, true /* is_doh_server */,
-                      base::TimeDelta::FromMinutes(10), OK, session.get());
+                      base::Minutes(10), OK, session.get());
   }
 
   base::TimeDelta delta =
       context.NextClassicFallbackPeriod(0u /* server_index */, 0 /* attempt */,
                                         session.get()) -
       config.fallback_period;
-  EXPECT_LE(delta, base::TimeDelta::FromMilliseconds(10));
+  EXPECT_LE(delta, base::Milliseconds(10));
   delta =
       context.NextDohFallbackPeriod(1u /* doh_server_index */, session.get()) -
       config.fallback_period;
-  EXPECT_LE(delta, base::TimeDelta::FromMilliseconds(10));
+  EXPECT_LE(delta, base::Milliseconds(10));
 }
 
 // Expect recording round-trip times to have no affect on fallback periods
@@ -1020,9 +1020,9 @@
   // Record RTT's to increase fallback periods for current session.
   for (int i = 0; i < 50; ++i) {
     context.RecordRtt(0u /* server_index */, false /* is_doh_server */,
-                      base::TimeDelta::FromMinutes(10), OK, session2.get());
+                      base::Minutes(10), OK, session2.get());
     context.RecordRtt(1u /* server_index */, true /* is_doh_server */,
-                      base::TimeDelta::FromMinutes(10), OK, session2.get());
+                      base::Minutes(10), OK, session2.get());
   }
 
   // Expect normal short fallback periods for other session.
@@ -1030,11 +1030,11 @@
       context.NextClassicFallbackPeriod(0u /* server_index */, 0 /* attempt */,
                                         session1.get()) -
       config1.fallback_period;
-  EXPECT_LE(delta, base::TimeDelta::FromMilliseconds(10));
+  EXPECT_LE(delta, base::Milliseconds(10));
   delta =
       context.NextDohFallbackPeriod(0u /* doh_server_index */, session1.get()) -
       config1.fallback_period;
-  EXPECT_LE(delta, base::TimeDelta::FromMilliseconds(10));
+  EXPECT_LE(delta, base::Milliseconds(10));
 
   // Recording RTT's for other session should have no effect on current session
   // fallback periods.
@@ -1042,7 +1042,7 @@
       0u /* server_index */, 0 /* attempt */, session2.get());
   for (int i = 0; i < 50; ++i) {
     context.RecordRtt(0u /* server_index */, false /* is_doh_server */,
-                      base::TimeDelta::FromMilliseconds(1), OK, session1.get());
+                      base::Milliseconds(1), OK, session1.get());
   }
   EXPECT_EQ(fallback_period,
             context.NextClassicFallbackPeriod(0u /* server_index */,
@@ -1070,7 +1070,7 @@
 TEST_F(ResolveContextTest, SecureTransactionTimeout_LongFallbackPeriod) {
   ResolveContext context(nullptr /* url_request_context */,
                          false /* enable_caching */);
-  const base::TimeDelta kFallbackPeriod = base::TimeDelta::FromMinutes(5);
+  const base::TimeDelta kFallbackPeriod = base::Minutes(5);
   DnsConfig config =
       CreateDnsConfig(0 /* num_servers */, 1 /* num_doh_servers */);
   config.fallback_period = kFallbackPeriod;
@@ -1100,7 +1100,7 @@
   // Record long RTTs for only 1 server.
   for (int i = 0; i < 50; ++i) {
     context.RecordRtt(1u /* server_index */, true /* is_doh_server */,
-                      base::TimeDelta::FromMinutes(10), OK, session.get());
+                      base::Minutes(10), OK, session.get());
   }
 
   // No expected change from recording RTT to single server because lowest
@@ -1112,7 +1112,7 @@
   // Record long RTTs for remaining server.
   for (int i = 0; i < 50; ++i) {
     context.RecordRtt(0u /* server_index */, true /* is_doh_server */,
-                      base::TimeDelta::FromMinutes(10), OK, session.get());
+                      base::Minutes(10), OK, session.get());
   }
 
   // Expect longer timeouts.
@@ -1122,7 +1122,7 @@
 }
 
 TEST_F(ResolveContextTest, SecureTransactionTimeout_DifferentSession) {
-  const base::TimeDelta kFallbackPeriod = base::TimeDelta::FromMinutes(5);
+  const base::TimeDelta kFallbackPeriod = base::Minutes(5);
   DnsConfig config1 =
       CreateDnsConfig(0 /* num_servers */, 1 /* num_doh_servers */);
   config1.fallback_period = kFallbackPeriod;
@@ -1169,7 +1169,7 @@
 TEST_F(ResolveContextTest, ClassicTransactionTimeout_LongFallbackPeriod) {
   ResolveContext context(nullptr /* url_request_context */,
                          false /* enable_caching */);
-  const base::TimeDelta kFallbackPeriod = base::TimeDelta::FromMinutes(5);
+  const base::TimeDelta kFallbackPeriod = base::Minutes(5);
   DnsConfig config =
       CreateDnsConfig(1 /* num_servers */, 0 /* num_doh_servers */);
   config.fallback_period = kFallbackPeriod;
@@ -1197,7 +1197,7 @@
   // Record long RTTs for only 1 server.
   for (int i = 0; i < 50; ++i) {
     context.RecordRtt(1u /* server_index */, false /* is_doh_server */,
-                      base::TimeDelta::FromMinutes(10), OK, session.get());
+                      base::Minutes(10), OK, session.get());
   }
 
   // No expected change from recording RTT to single server because lowest
@@ -1208,7 +1208,7 @@
   // Record long RTTs for remaining server.
   for (int i = 0; i < 50; ++i) {
     context.RecordRtt(0u /* server_index */, false /* is_doh_server */,
-                      base::TimeDelta::FromMinutes(10), OK, session.get());
+                      base::Minutes(10), OK, session.get());
   }
 
   // Expect longer timeouts.
@@ -1217,7 +1217,7 @@
 }
 
 TEST_F(ResolveContextTest, ClassicTransactionTimeout_DifferentSession) {
-  const base::TimeDelta kFallbackPeriod = base::TimeDelta::FromMinutes(5);
+  const base::TimeDelta kFallbackPeriod = base::Minutes(5);
   DnsConfig config1 =
       CreateDnsConfig(1 /* num_servers */, 0 /* num_doh_servers */);
   config1.fallback_period = kFallbackPeriod;
@@ -1258,11 +1258,9 @@
                                             false /* network_change */);
 
   context.RecordRtt(0 /* server_index */, false /* is_doh_server */,
-                    base::TimeDelta::FromMilliseconds(-1), OK /* rv */,
-                    session.get());
+                    base::Milliseconds(-1), OK /* rv */, session.get());
   context.RecordRtt(0 /* server_index */, true /* is_doh_server */,
-                    base::TimeDelta::FromMilliseconds(-1), OK /* rv */,
-                    session.get());
+                    base::Milliseconds(-1), OK /* rv */, session.get());
 }
 
 TEST_F(ResolveContextTest, SessionChange) {
diff --git a/net/extras/sqlite/sqlite_persistent_cookie_store.cc b/net/extras/sqlite/sqlite_persistent_cookie_store.cc
index 86f89e0..be256e63 100644
--- a/net/extras/sqlite/sqlite_persistent_cookie_store.cc
+++ b/net/extras/sqlite/sqlite_persistent_cookie_store.cc
@@ -721,8 +721,7 @@
 
   UMA_HISTOGRAM_CUSTOM_TIMES("Cookie.TimeLoadDBQueueWait",
                              base::Time::Now() - posted_at,
-                             base::TimeDelta::FromMilliseconds(1),
-                             base::TimeDelta::FromMinutes(1), 50);
+                             base::Milliseconds(1), base::Minutes(1), 50);
 
   if (!InitializeDatabase()) {
     PostClientTask(FROM_HERE,
@@ -742,8 +741,7 @@
 
   UMA_HISTOGRAM_CUSTOM_TIMES("Cookie.TimeKeyLoadDBQueueWait",
                              base::Time::Now() - posted_at,
-                             base::TimeDelta::FromMilliseconds(1),
-                             base::TimeDelta::FromMinutes(1), 50);
+                             base::Milliseconds(1), base::Minutes(1), 50);
 
   bool success = false;
   if (InitializeDatabase()) {
@@ -771,8 +769,7 @@
 
   UMA_HISTOGRAM_CUSTOM_TIMES("Cookie.TimeKeyLoadTotalWait",
                              base::Time::Now() - requested_at,
-                             base::TimeDelta::FromMilliseconds(1),
-                             base::TimeDelta::FromMinutes(1), 50);
+                             base::Milliseconds(1), base::Minutes(1), 50);
 
   Notify(std::move(loaded_callback), load_success);
 
@@ -788,8 +785,7 @@
 
 void SQLitePersistentCookieStore::Backend::ReportMetricsInBackground() {
   UMA_HISTOGRAM_CUSTOM_TIMES("Cookie.TimeLoad", cookie_load_duration_,
-                             base::TimeDelta::FromMilliseconds(1),
-                             base::TimeDelta::FromMinutes(1), 50);
+                             base::Milliseconds(1), base::Minutes(1), 50);
 }
 
 void SQLitePersistentCookieStore::Backend::ReportMetrics() {
@@ -802,9 +798,8 @@
   {
     base::AutoLock locked(metrics_lock_);
     UMA_HISTOGRAM_CUSTOM_TIMES("Cookie.PriorityBlockingTime",
-                               priority_wait_duration_,
-                               base::TimeDelta::FromMilliseconds(1),
-                               base::TimeDelta::FromMinutes(1), 50);
+                               priority_wait_duration_, base::Milliseconds(1),
+                               base::Minutes(1), 50);
 
     UMA_HISTOGRAM_COUNTS_100("Cookie.PriorityLoadCount",
                              total_priority_requests_);
@@ -897,7 +892,7 @@
         FROM_HERE,
         base::BindOnce(&Backend::ChainLoadCookies, this,
                        std::move(loaded_callback)),
-        base::TimeDelta::FromMilliseconds(kLoadDelayMilliseconds));
+        base::Milliseconds(kLoadDelayMilliseconds));
     if (!success) {
       LOG(WARNING) << "Failed to post task from " << FROM_HERE.ToString()
                    << " to background_task_runner().";
@@ -1418,7 +1413,7 @@
     // We've gotten our first entry for this batch, fire off the timer.
     if (!background_task_runner()->PostDelayedTask(
             FROM_HERE, base::BindOnce(&Backend::Commit, this),
-            base::TimeDelta::FromMilliseconds(kCommitIntervalMs))) {
+            base::Milliseconds(kCommitIntervalMs))) {
       NOTREACHED() << "background_task_runner() is not running.";
     }
   } else if (num_pending == kCommitAfterBatchSize) {
diff --git a/net/extras/sqlite/sqlite_persistent_cookie_store_perftest.cc b/net/extras/sqlite/sqlite_persistent_cookie_store_perftest.cc
index fdc7ed7..865652b2 100644
--- a/net/extras/sqlite/sqlite_persistent_cookie_store_perftest.cc
+++ b/net/extras/sqlite/sqlite_persistent_cookie_store_perftest.cc
@@ -83,9 +83,9 @@
   }
 
   CanonicalCookie CookieFromIndices(int domain_num, int cookie_num) {
-    base::Time t(test_start_ +
-                 base::TimeDelta::FromMicroseconds(
-                     domain_num * kCookiesPerDomain + cookie_num));
+    base::Time t(
+        test_start_ +
+        base::Microseconds(domain_num * kCookiesPerDomain + cookie_num));
     std::string domain_name(base::StringPrintf(".domain_%d.com", domain_num));
     return *CanonicalCookie::CreateUnsafeCookieForTesting(
         base::StringPrintf("Cookie_%d", cookie_num), "1", domain_name, "/", t,
diff --git a/net/extras/sqlite/sqlite_persistent_cookie_store_unittest.cc b/net/extras/sqlite/sqlite_persistent_cookie_store_unittest.cc
index 5971d5ca..7e4301e3 100644
--- a/net/extras/sqlite/sqlite_persistent_cookie_store_unittest.cc
+++ b/net/extras/sqlite/sqlite_persistent_cookie_store_unittest.cc
@@ -301,21 +301,21 @@
   // Add persistent cookies.
   base::Time t = base::Time::Now();
   AddCookie("A", "B", "a1.com", "/", t);
-  t += base::TimeDelta::FromMicroseconds(10);
+  t += base::Microseconds(10);
   AddCookie("A", "B", "a2.com", "/", t);
-  t += base::TimeDelta::FromMicroseconds(10);
+  t += base::Microseconds(10);
   AddCookie("A", "B", "a3.com", "/", t);
 
   // Add transient cookies.
-  t += base::TimeDelta::FromMicroseconds(10);
+  t += base::Microseconds(10);
   AddCookieWithExpiration("A", "B", "b1.com", "/", t, base::Time());
-  t += base::TimeDelta::FromMicroseconds(10);
+  t += base::Microseconds(10);
   AddCookieWithExpiration("A", "B", "b2.com", "/", t, base::Time());
-  t += base::TimeDelta::FromMicroseconds(10);
+  t += base::Microseconds(10);
   AddCookieWithExpiration("A", "B", "b3.com", "/", t, base::Time());
-  t += base::TimeDelta::FromMicroseconds(10);
+  t += base::Microseconds(10);
   AddCookieWithExpiration("A", "B", "b4.com", "/", t, base::Time());
-  t += base::TimeDelta::FromMicroseconds(10);
+  t += base::Microseconds(10);
   AddCookieWithExpiration("A", "B", "b5.com", "/", t, base::Time());
   DestroyStore();
 
@@ -333,7 +333,7 @@
   store_->Load(base::BindOnce(&SQLitePersistentCookieStoreTest::OnLoaded,
                               base::Unretained(this)),
                NetLogWithSource());
-  t += base::TimeDelta::FromMicroseconds(10);
+  t += base::Microseconds(10);
   AddCookieWithExpiration("A", "B", "c.com", "/", t, base::Time());
   base::WaitableEvent event(base::WaitableEvent::ResetPolicy::AUTOMATIC,
                             base::WaitableEvent::InitialState::NOT_SIGNALED);
@@ -373,11 +373,11 @@
   InitializeStore(false, false);
   base::Time t = base::Time::Now();
   AddCookie("A", "B", "foo.bar", "/", t);
-  t += base::TimeDelta::FromMicroseconds(10);
+  t += base::Microseconds(10);
   AddCookie("A", "B", "www.aaa.com", "/", t);
-  t += base::TimeDelta::FromMicroseconds(10);
+  t += base::Microseconds(10);
   AddCookie("A", "B", "travel.aaa.com", "/", t);
-  t += base::TimeDelta::FromMicroseconds(10);
+  t += base::Microseconds(10);
   AddCookie("A", "B", "www.bbb.com", "/", t);
   DestroyStore();
 
@@ -491,7 +491,7 @@
   // flushes its store.
   for (int i = 0; i < 512; i++) {
     // Each cookie needs a unique timestamp for creation_utc (see DB schema).
-    base::Time t = base::Time::Now() + base::TimeDelta::FromMicroseconds(i);
+    base::Time t = base::Time::Now() + base::Microseconds(i);
     AddCookie(base::StringPrintf("%d", i), "foo", "example.com", "/", t);
   }
 
@@ -514,7 +514,7 @@
   // Write some large cookies, so the DB will have to expand by several KB.
   for (char c = 'a'; c < 'z'; ++c) {
     // Each cookie needs a unique timestamp for creation_utc (see DB schema).
-    base::Time t = base::Time::Now() + base::TimeDelta::FromMicroseconds(c);
+    base::Time t = base::Time::Now() + base::Microseconds(c);
     std::string name(1, c);
     std::string value(1000, c);
     AddCookie(name, value, "foo.bar", "/", t);
@@ -675,9 +675,9 @@
   // Add a persistent cookie.
   store_->AddCookie(*CanonicalCookie::CreateUnsafeCookieForTesting(
       kPersistentName, "val", "sessioncookie.com", "/",
-      base::Time::Now() - base::TimeDelta::FromDays(1),
-      base::Time::Now() + base::TimeDelta::FromDays(1), base::Time(), false,
-      false, CookieSameSite::NO_RESTRICTION, COOKIE_PRIORITY_DEFAULT, false));
+      base::Time::Now() - base::Days(1), base::Time::Now() + base::Days(1),
+      base::Time(), false, false, CookieSameSite::NO_RESTRICTION,
+      COOKIE_PRIORITY_DEFAULT, false));
 
   // Force the store to write its data to the disk.
   DestroyStore();
@@ -716,23 +716,23 @@
   // Add a low-priority persistent cookie.
   store_->AddCookie(*CanonicalCookie::CreateUnsafeCookieForTesting(
       kLowName, kCookieValue, kDomain, kCookiePath,
-      base::Time::Now() - base::TimeDelta::FromMinutes(1),
-      base::Time::Now() + base::TimeDelta::FromDays(1), base::Time(), false,
-      false, CookieSameSite::NO_RESTRICTION, COOKIE_PRIORITY_LOW, false));
+      base::Time::Now() - base::Minutes(1), base::Time::Now() + base::Days(1),
+      base::Time(), false, false, CookieSameSite::NO_RESTRICTION,
+      COOKIE_PRIORITY_LOW, false));
 
   // Add a medium-priority persistent cookie.
   store_->AddCookie(*CanonicalCookie::CreateUnsafeCookieForTesting(
       kMediumName, kCookieValue, kDomain, kCookiePath,
-      base::Time::Now() - base::TimeDelta::FromMinutes(2),
-      base::Time::Now() + base::TimeDelta::FromDays(1), base::Time(), false,
-      false, CookieSameSite::NO_RESTRICTION, COOKIE_PRIORITY_MEDIUM, false));
+      base::Time::Now() - base::Minutes(2), base::Time::Now() + base::Days(1),
+      base::Time(), false, false, CookieSameSite::NO_RESTRICTION,
+      COOKIE_PRIORITY_MEDIUM, false));
 
   // Add a high-priority persistent cookie.
   store_->AddCookie(*CanonicalCookie::CreateUnsafeCookieForTesting(
       kHighName, kCookieValue, kDomain, kCookiePath,
-      base::Time::Now() - base::TimeDelta::FromMinutes(3),
-      base::Time::Now() + base::TimeDelta::FromDays(1), base::Time(), false,
-      false, CookieSameSite::NO_RESTRICTION, COOKIE_PRIORITY_HIGH, false));
+      base::Time::Now() - base::Minutes(3), base::Time::Now() + base::Days(1),
+      base::Time(), false, false, CookieSameSite::NO_RESTRICTION,
+      COOKIE_PRIORITY_HIGH, false));
 
   // Force the store to write its data to the disk.
   DestroyStore();
@@ -777,23 +777,23 @@
   // Add a non-samesite persistent cookie.
   store_->AddCookie(*CanonicalCookie::CreateUnsafeCookieForTesting(
       kNoneName, kCookieValue, kDomain, kCookiePath,
-      base::Time::Now() - base::TimeDelta::FromMinutes(1),
-      base::Time::Now() + base::TimeDelta::FromDays(1), base::Time(), false,
-      false, CookieSameSite::NO_RESTRICTION, COOKIE_PRIORITY_DEFAULT, false));
+      base::Time::Now() - base::Minutes(1), base::Time::Now() + base::Days(1),
+      base::Time(), false, false, CookieSameSite::NO_RESTRICTION,
+      COOKIE_PRIORITY_DEFAULT, false));
 
   // Add a lax-samesite persistent cookie.
   store_->AddCookie(*CanonicalCookie::CreateUnsafeCookieForTesting(
       kLaxName, kCookieValue, kDomain, kCookiePath,
-      base::Time::Now() - base::TimeDelta::FromMinutes(2),
-      base::Time::Now() + base::TimeDelta::FromDays(1), base::Time(), false,
-      false, CookieSameSite::LAX_MODE, COOKIE_PRIORITY_DEFAULT, false));
+      base::Time::Now() - base::Minutes(2), base::Time::Now() + base::Days(1),
+      base::Time(), false, false, CookieSameSite::LAX_MODE,
+      COOKIE_PRIORITY_DEFAULT, false));
 
   // Add a strict-samesite persistent cookie.
   store_->AddCookie(*CanonicalCookie::CreateUnsafeCookieForTesting(
       kStrictName, kCookieValue, kDomain, kCookiePath,
-      base::Time::Now() - base::TimeDelta::FromMinutes(3),
-      base::Time::Now() + base::TimeDelta::FromDays(1), base::Time(), false,
-      false, CookieSameSite::STRICT_MODE, COOKIE_PRIORITY_DEFAULT, false));
+      base::Time::Now() - base::Minutes(3), base::Time::Now() + base::Days(1),
+      base::Time(), false, false, CookieSameSite::STRICT_MODE,
+      COOKIE_PRIORITY_DEFAULT, false));
 
   // Force the store to write its data to the disk.
   DestroyStore();
@@ -833,9 +833,9 @@
   // direct SQL DB access.
   store_->AddCookie(*CanonicalCookie::CreateUnsafeCookieForTesting(
       kExtendedName, kCookieValue, kDomain, kCookiePath,
-      base::Time::Now() - base::TimeDelta::FromMinutes(1),
-      base::Time::Now() + base::TimeDelta::FromDays(1), base::Time(), false,
-      false, CookieSameSite::STRICT_MODE, COOKIE_PRIORITY_DEFAULT, false));
+      base::Time::Now() - base::Minutes(1), base::Time::Now() + base::Days(1),
+      base::Time(), false, false, CookieSameSite::STRICT_MODE,
+      COOKIE_PRIORITY_DEFAULT, false));
 
   // Force the store to write its data to the disk.
   DestroyStore();
@@ -873,16 +873,16 @@
   // Add a non-SameParty persistent cookie.
   store_->AddCookie(*CanonicalCookie::CreateUnsafeCookieForTesting(
       kNonSamePartyCookieName, kCookieValue, kDomain, kCookiePath,
-      base::Time::Now() - base::TimeDelta::FromMinutes(1),
-      base::Time::Now() + base::TimeDelta::FromDays(1), base::Time(),
+      base::Time::Now() - base::Minutes(1), base::Time::Now() + base::Days(1),
+      base::Time(),
       /*secure=*/true, false, CookieSameSite::LAX_MODE, COOKIE_PRIORITY_DEFAULT,
       /*same_party=*/false));
 
   // Add a SameParty persistent cookie.
   store_->AddCookie(*CanonicalCookie::CreateUnsafeCookieForTesting(
       kSamePartyCookieName, kCookieValue, kDomain, kCookiePath,
-      base::Time::Now() - base::TimeDelta::FromMinutes(1),
-      base::Time::Now() + base::TimeDelta::FromDays(1), base::Time(),
+      base::Time::Now() - base::Minutes(1), base::Time::Now() + base::Days(1),
+      base::Time(),
       /*secure=*/true, false, CookieSameSite::LAX_MODE, COOKIE_PRIORITY_DEFAULT,
       /*same_party=*/true));
 
@@ -931,8 +931,8 @@
     // Add some persistent cookies.
     store_->AddCookie(*CanonicalCookie::CreateUnsafeCookieForTesting(
         input.name, kCookieValue, kDomain, kCookiePath,
-        base::Time::Now() - base::TimeDelta::FromMinutes(1),
-        base::Time::Now() + base::TimeDelta::FromDays(1), base::Time(),
+        base::Time::Now() - base::Minutes(1), base::Time::Now() + base::Days(1),
+        base::Time(),
         /*secure=*/true, false, CookieSameSite::LAX_MODE,
         COOKIE_PRIORITY_DEFAULT,
         /*same_party=*/false,
@@ -987,7 +987,7 @@
   store_->DeleteCookie(*(cookies[0]));
   AddCookie("name", "encrypted_value123XYZ", "foo.bar", "/", base::Time::Now());
   AddCookie("other", "something456ABC", "foo.bar", "/",
-            base::Time::Now() + base::TimeDelta::FromMicroseconds(10));
+            base::Time::Now() + base::Microseconds(10));
   DestroyStore();
   cookies.clear();
   CreateAndLoad(true, false, &cookies);
@@ -1057,7 +1057,7 @@
   store_->DeleteCookie(*(cookies[0]));
   AddCookie("name", "plaintext_value123XYZ", "foo.bar", "/", base::Time::Now());
   AddCookie("other", "something456ABC", "foo.bar", "/",
-            base::Time::Now() + base::TimeDelta::FromMicroseconds(10));
+            base::Time::Now() + base::Microseconds(10));
   DestroyStore();
   cookies.clear();
   CreateAndLoad(true, false, &cookies);
@@ -1134,32 +1134,32 @@
       "A", "B", "example.com", "/", cookie_time, cookie_time, cookie_time,
       false, false, CookieSameSite::NO_RESTRICTION, COOKIE_PRIORITY_DEFAULT,
       false));
-  cookie_time += base::TimeDelta::FromMicroseconds(1);
+  cookie_time += base::Microseconds(1);
   cookies.push_back(*CanonicalCookie::CreateUnsafeCookieForTesting(
       "C", "B", "example.com", "/", cookie_time, cookie_time, cookie_time,
       false, false, CookieSameSite::NO_RESTRICTION, COOKIE_PRIORITY_DEFAULT,
       false));
-  cookie_time += base::TimeDelta::FromMicroseconds(1);
+  cookie_time += base::Microseconds(1);
   cookies.push_back(*CanonicalCookie::CreateUnsafeCookieForTesting(
       "A", "B", "example2.com", "/", cookie_time, cookie_time, cookie_time,
       false, false, CookieSameSite::NO_RESTRICTION, COOKIE_PRIORITY_DEFAULT,
       false));
-  cookie_time += base::TimeDelta::FromMicroseconds(1);
+  cookie_time += base::Microseconds(1);
   cookies.push_back(*CanonicalCookie::CreateUnsafeCookieForTesting(
       "C", "B", "example2.com", "/", cookie_time, cookie_time, cookie_time,
       false, false, CookieSameSite::NO_RESTRICTION, COOKIE_PRIORITY_DEFAULT,
       false));
-  cookie_time += base::TimeDelta::FromMicroseconds(1);
+  cookie_time += base::Microseconds(1);
   cookies.push_back(*CanonicalCookie::CreateUnsafeCookieForTesting(
       "A", "B", "example.com", "/path", cookie_time, cookie_time, cookie_time,
       false, false, CookieSameSite::NO_RESTRICTION, COOKIE_PRIORITY_DEFAULT,
       false));
-  cookie_time += base::TimeDelta::FromMicroseconds(1);
+  cookie_time += base::Microseconds(1);
   cookies.push_back(*CanonicalCookie::CreateUnsafeCookieForTesting(
       "C", "B", "example.com", "/path", cookie_time, cookie_time, cookie_time,
       false, false, CookieSameSite::NO_RESTRICTION, COOKIE_PRIORITY_DEFAULT,
       false));
-  cookie_time += base::TimeDelta::FromMicroseconds(1);
+  cookie_time += base::Microseconds(1);
   return AddV9CookiesToDBImpl(db, cookies);
 }
 
@@ -1278,8 +1278,8 @@
 
   ASSERT_TRUE(CreateV9Schema(&connection));
 
-  base::Time old_time = base::Time::Now() - base::TimeDelta::FromMinutes(90);
-  base::Time old_time2 = base::Time::Now() - base::TimeDelta::FromMinutes(91);
+  base::Time old_time = base::Time::Now() - base::Minutes(90);
+  base::Time old_time2 = base::Time::Now() - base::Minutes(91);
   auto old_cookie1 = CanonicalCookie::CreateUnsafeCookieForTesting(
       "A", "old_value", "example.com", "/", old_time, old_time, old_time, false,
       false, CookieSameSite::NO_RESTRICTION, COOKIE_PRIORITY_DEFAULT, false);
@@ -1310,7 +1310,7 @@
 TEST_F(SQLitePersistentCookieStoreTest, IdenticalCreationTimes) {
   InitializeStore(false, false);
   base::Time cookie_time(base::Time::Now());
-  base::Time cookie_expiry(cookie_time + base::TimeDelta::FromDays(1));
+  base::Time cookie_expiry(cookie_time + base::Days(1));
   AddCookieWithExpiration("A", "B", "example.com", "/", cookie_time,
                           cookie_expiry);
   AddCookieWithExpiration("C", "B", "example.com", "/", cookie_time,
@@ -2260,10 +2260,9 @@
 
   store_->AddCookie(*CanonicalCookie::CreateUnsafeCookieForTesting(
       "__Host-foo", "bar", GURL("https://example.com/").host(), "/",
-      base::Time::Now(), base::Time::Now() + base::TimeDelta::FromDays(1),
-      base::Time::Now(), true /* secure */, false /* httponly */,
-      CookieSameSite::UNSPECIFIED, COOKIE_PRIORITY_DEFAULT,
-      false /* sameparty */,
+      base::Time::Now(), base::Time::Now() + base::Days(1), base::Time::Now(),
+      true /* secure */, false /* httponly */, CookieSameSite::UNSPECIFIED,
+      COOKIE_PRIORITY_DEFAULT, false /* sameparty */,
       CookiePartitionKey::FromURLForTesting(GURL("https://toplevelsite.com"))));
   Flush();
 
@@ -2293,7 +2292,7 @@
   ASSERT_TRUE(stmt.is_valid());
 
   base::Time creation(base::Time::Now());
-  base::Time expiration(creation + base::TimeDelta::FromDays(1));
+  base::Time expiration(creation + base::Days(1));
   base::Time last_access(base::Time::Now());
 
   stmt.BindTime(0, creation);
diff --git a/net/extras/sqlite/sqlite_persistent_reporting_and_nel_store.cc b/net/extras/sqlite/sqlite_persistent_reporting_and_nel_store.cc
index 6f39cc4..43b294b 100644
--- a/net/extras/sqlite/sqlite_persistent_reporting_and_nel_store.cc
+++ b/net/extras/sqlite/sqlite_persistent_reporting_and_nel_store.cc
@@ -1283,7 +1283,7 @@
     // We've gotten our first entry for this batch, fire off the timer.
     if (!background_task_runner()->PostDelayedTask(
             FROM_HERE, base::BindOnce(&Backend::Commit, this),
-            base::TimeDelta::FromMilliseconds(kCommitIntervalMs))) {
+            base::Milliseconds(kCommitIntervalMs))) {
       NOTREACHED() << "background_task_runner_ is not running.";
     }
   } else if (num_pending >= kCommitAfterBatchSize) {
@@ -1341,12 +1341,12 @@
       policy.received_ip_address = IPAddress();
     policy.report_to = smt.ColumnString(5);
     policy.expires = base::Time::FromDeltaSinceWindowsEpoch(
-        base::TimeDelta::FromMicroseconds(smt.ColumnInt64(6)));
+        base::Microseconds(smt.ColumnInt64(6)));
     policy.success_fraction = smt.ColumnDouble(7);
     policy.failure_fraction = smt.ColumnDouble(8);
     policy.include_subdomains = smt.ColumnBool(9);
     policy.last_used = base::Time::FromDeltaSinceWindowsEpoch(
-        base::TimeDelta::FromMicroseconds(smt.ColumnInt64(10)));
+        base::Microseconds(smt.ColumnInt64(10)));
 
     loaded_policies.push_back(std::move(policy));
   }
@@ -1453,11 +1453,9 @@
         endpoint_groups_statement.ColumnBool(5) ? OriginSubdomains::INCLUDE
                                                 : OriginSubdomains::EXCLUDE;
     base::Time expires = base::Time::FromDeltaSinceWindowsEpoch(
-        base::TimeDelta::FromMicroseconds(
-            endpoint_groups_statement.ColumnInt64(6)));
+        base::Microseconds(endpoint_groups_statement.ColumnInt64(6)));
     base::Time last_used = base::Time::FromDeltaSinceWindowsEpoch(
-        base::TimeDelta::FromMicroseconds(
-            endpoint_groups_statement.ColumnInt64(7)));
+        base::Microseconds(endpoint_groups_statement.ColumnInt64(7)));
 
     loaded_endpoint_groups.emplace_back(std::move(group_key),
                                         include_subdomains, expires, last_used);
diff --git a/net/extras/sqlite/sqlite_persistent_reporting_and_nel_store_unittest.cc b/net/extras/sqlite/sqlite_persistent_reporting_and_nel_store_unittest.cc
index da409b5f..258eea72 100644
--- a/net/extras/sqlite/sqlite_persistent_reporting_and_nel_store_unittest.cc
+++ b/net/extras/sqlite/sqlite_persistent_reporting_and_nel_store_unittest.cc
@@ -42,7 +42,7 @@
 const std::string kHeaderMaxAge0 = "{\"report_to\":\"group\",\"max_age\":0}";
 const std::string kGroupName1 = "group1";
 const std::string kGroupName2 = "group2";
-const base::Time kExpires = base::Time::Now() + base::TimeDelta::FromDays(7);
+const base::Time kExpires = base::Time::Now() + base::Days(7);
 
 enum class Op { kAdd, kDelete, kUpdate, kUpdateDetails };
 
@@ -171,7 +171,7 @@
 
   bool WithinOneMicrosecond(base::Time t1, base::Time t2) {
     base::TimeDelta delta = t1 - t2;
-    return delta.magnitude() < base::TimeDelta::FromMicroseconds(1);
+    return delta.magnitude() < base::Microseconds(1);
   }
 
   void WaitOnEvent(base::WaitableEvent* event) {
@@ -377,7 +377,7 @@
       kNik1_, url::Origin::Create(GURL("https://www.foo.test")), now);
   store_->AddNelPolicy(policy);
 
-  policy.last_used = now + base::TimeDelta::FromDays(1);
+  policy.last_used = now + base::Days(1);
   store_->UpdateNelPolicyAccessTime(policy);
 
   // Close and reopen the database.
@@ -436,7 +436,7 @@
   CreateStore();
   InitializeStore();
   base::Time now = base::Time::Now();
-  base::Time later = now + base::TimeDelta::FromDays(1);
+  base::Time later = now + base::Days(1);
 
   // Add 3 entries, 2 identical except for NIK, 2 identical except for origin.
   // Entries should not conflict with each other. These are added in lexical
@@ -708,7 +708,7 @@
     details.server_ip = kServerIP;
     details.method = "GET";
     details.status_code = 0;
-    details.elapsed_time = base::TimeDelta::FromSeconds(1);
+    details.elapsed_time = base::Seconds(1);
     details.type = error_type;
     details.reporting_upload_depth = 0;
 
@@ -775,7 +775,7 @@
   RunUntilIdle();
 
   // Makes the policy we just added expired.
-  clock_.Advance(base::TimeDelta::FromSeconds(86401));
+  clock_.Advance(base::Seconds(86401));
 
   SimulateRestart();
 
@@ -806,7 +806,7 @@
   SimulateRestart();
 
   // Update the access time by sending a request.
-  clock_.Advance(base::TimeDelta::FromSeconds(100));
+  clock_.Advance(base::Seconds(100));
   service_->OnRequest(MakeRequestDetails(kNik1_, kUrl, ERR_INVALID_RESPONSE));
   RunUntilIdle();
 
@@ -960,7 +960,7 @@
 
   store_->AddReportingEndpointGroup(group);
 
-  group.last_used = now + base::TimeDelta::FromDays(1);
+  group.last_used = now + base::Days(1);
   store_->UpdateReportingEndpointGroupAccessTime(group);
 
   // Close and reopen the database.
@@ -1020,8 +1020,8 @@
 
   store_->AddReportingEndpointGroup(group);
 
-  group.last_used = now + base::TimeDelta::FromDays(1);
-  group.expires = kExpires + base::TimeDelta::FromDays(1);
+  group.last_used = now + base::Days(1);
+  group.expires = kExpires + base::Days(1);
   group.include_subdomains = OriginSubdomains::INCLUDE;
   store_->UpdateReportingEndpointGroupDetails(group);
 
@@ -1191,7 +1191,7 @@
   InitializeStore();
 
   base::Time now = base::Time::Now();
-  base::Time later = now + base::TimeDelta::FromDays(7);
+  base::Time later = now + base::Days(7);
 
   // Add 3 entries, 2 identical except for NIK, 2 identical except for origin.
   // Entries should not conflict with each other. These are added in lexical
diff --git a/net/extras/sqlite/sqlite_persistent_store_backend_base.cc b/net/extras/sqlite/sqlite_persistent_store_backend_base.cc
index ab58d3f..7c3eb964 100644
--- a/net/extras/sqlite/sqlite_persistent_store_backend_base.cc
+++ b/net/extras/sqlite/sqlite_persistent_store_backend_base.cc
@@ -112,8 +112,7 @@
 
   base::UmaHistogramCustomTimes(histogram_tag_ + ".TimeInitializeDB",
                                 base::Time::Now() - start,
-                                base::TimeDelta::FromMilliseconds(1),
-                                base::TimeDelta::FromMinutes(1), 50);
+                                base::Milliseconds(1), base::Minutes(1), 50);
 
   initialized_ = DoInitializeDatabase();
 
diff --git a/net/http/alternative_service.cc b/net/http/alternative_service.cc
index f9d75fe..415f49b9 100644
--- a/net/http/alternative_service.cc
+++ b/net/http/alternative_service.cc
@@ -189,7 +189,7 @@
                                            alternative_service_entry.port);
     base::Time expiration =
         base::Time::Now() +
-        base::TimeDelta::FromSeconds(alternative_service_entry.max_age_seconds);
+        base::Seconds(alternative_service_entry.max_age_seconds);
     AlternativeServiceInfo alternative_service_info;
     if (protocol == kProtoQUIC) {
       alternative_service_info =
diff --git a/net/http/broken_alternative_services.cc b/net/http/broken_alternative_services.cc
index 05258d6..1ba4d393 100644
--- a/net/http/broken_alternative_services.cc
+++ b/net/http/broken_alternative_services.cc
@@ -25,7 +25,7 @@
   DCHECK_GE(broken_count, 0);
   if (broken_count > kBrokenDelayMaxShift)
     broken_count = kBrokenDelayMaxShift;
-  return base::TimeDelta::FromSeconds(kBrokenAlternativeProtocolDelaySecs) *
+  return base::Seconds(kBrokenAlternativeProtocolDelaySecs) *
          (1 << broken_count);
 }
 
diff --git a/net/http/broken_alternative_services_unittest.cc b/net/http/broken_alternative_services_unittest.cc
index 851a3c5..a36b3b6 100644
--- a/net/http/broken_alternative_services_unittest.cc
+++ b/net/http/broken_alternative_services_unittest.cc
@@ -254,15 +254,14 @@
 
   // Advance time until one second before |alternative_service1|'s brokenness
   // expires.
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(5) -
-                                   base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Minutes(5) - base::Seconds(1));
   // |alternative_service1| should still be considered as currently broken and
   // recently broken.
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service1));
   EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service1));
 
   // Advance another second and |alternative_service1|'s brokenness expires.
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service1));
   EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service1));
 
@@ -317,8 +316,7 @@
 
   // Advance time until one time quantum before |alternative_service1|'s
   // brokenness expires.
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(5) -
-                                   base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Minutes(5) - base::Seconds(1));
 
   // Ensure |alternative_service| is still marked broken.
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service));
@@ -326,7 +324,7 @@
   EXPECT_EQ(1u, test_task_runner_->GetPendingTaskCount());
 
   // Advance time by one time quantum.
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
 
   // Ensure |alternative_service| brokenness has expired but is still
   // considered recently broken.
@@ -353,8 +351,7 @@
 
   // Advance time until one time quantum before |alternative_service1|'s
   // brokenness expires
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(5) -
-                                   base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Minutes(5) - base::Seconds(1));
 
   // Ensure |alternative_service| is still marked broken.
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service));
@@ -362,7 +359,7 @@
   EXPECT_EQ(1u, test_task_runner_->GetPendingTaskCount());
 
   // Advance time by one time quantum.
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
 
   // Ensure |alternative_service| brokenness has expired but is still
   // considered recently broken
@@ -391,12 +388,11 @@
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service));
   EXPECT_TRUE(
       broken_services_.IsBroken(alternative_service, &brokenness_expiration));
-  EXPECT_EQ(
-      broken_services_clock_->NowTicks() + base::TimeDelta::FromMinutes(5),
-      brokenness_expiration);
+  EXPECT_EQ(broken_services_clock_->NowTicks() + base::Minutes(5),
+            brokenness_expiration);
 
   // Fast forward time until |alternative_service|'s brokenness expires.
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(5));
+  test_task_runner_->FastForwardBy(base::Minutes(5));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service));
   EXPECT_FALSE(
       broken_services_.IsBroken(alternative_service, &brokenness_expiration));
@@ -405,9 +401,8 @@
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service));
   EXPECT_TRUE(
       broken_services_.IsBroken(alternative_service, &brokenness_expiration));
-  EXPECT_EQ(
-      broken_services_clock_->NowTicks() + base::TimeDelta::FromMinutes(10),
-      brokenness_expiration);
+  EXPECT_EQ(broken_services_clock_->NowTicks() + base::Minutes(10),
+            brokenness_expiration);
 
   broken_services_.Confirm(alternative_service);
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service));
@@ -434,12 +429,11 @@
   EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service));
 
   test_task_runner_->FastForwardBy(
-      base::TimeDelta::FromSeconds(kBrokenAlternativeProtocolDelaySecs) -
-      base::TimeDelta::FromSeconds(1));
+      base::Seconds(kBrokenAlternativeProtocolDelaySecs) - base::Seconds(1));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service));
   EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service));
   // Expire the brokenness after the initial delay.
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service));
   EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service));
 
@@ -450,8 +444,8 @@
 
   // Verify that the expiration delay has been doubled.
   test_task_runner_->FastForwardBy(
-      base::TimeDelta::FromSeconds(kBrokenAlternativeProtocolDelaySecs * 2) -
-      base::TimeDelta::FromSeconds(1));
+      base::Seconds(kBrokenAlternativeProtocolDelaySecs * 2) -
+      base::Seconds(1));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service));
   EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service));
 
@@ -461,7 +455,7 @@
   EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service));
 
   // Advance one more second so that the second expiration delay is reached.
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service));
   EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service));
 }
@@ -485,12 +479,11 @@
   EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service));
 
   test_task_runner_->FastForwardBy(
-      base::TimeDelta::FromSeconds(kBrokenAlternativeProtocolDelaySecs) -
-      base::TimeDelta::FromSeconds(1));
+      base::Seconds(kBrokenAlternativeProtocolDelaySecs) - base::Seconds(1));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service));
   EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service));
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service));
   EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service));
 
@@ -498,12 +491,12 @@
   broken_services_.MarkBrokenUntilDefaultNetworkChanges(alternative_service);
   // Verify the expiration delay has been doubled.
   test_task_runner_->FastForwardBy(
-      base::TimeDelta::FromSeconds(kBrokenAlternativeProtocolDelaySecs * 2) -
-      base::TimeDelta::FromSeconds(1));
+      base::Seconds(kBrokenAlternativeProtocolDelaySecs * 2) -
+      base::Seconds(1));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service));
   EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service));
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service));
   EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service));
 
@@ -528,15 +521,14 @@
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service));
   EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service));
   EXPECT_EQ(1u, test_task_runner_->GetPendingTaskCount());
-  EXPECT_EQ(base::TimeDelta::FromSeconds(kBrokenAlternativeProtocolDelaySecs),
+  EXPECT_EQ(base::Seconds(kBrokenAlternativeProtocolDelaySecs),
             test_task_runner_->NextPendingTaskDelay());
   // Expire the brokenness for the 1st time.
   test_task_runner_->FastForwardBy(
-      base::TimeDelta::FromSeconds(kBrokenAlternativeProtocolDelaySecs) -
-      base::TimeDelta::FromSeconds(1));
+      base::Seconds(kBrokenAlternativeProtocolDelaySecs) - base::Seconds(1));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service));
   EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service));
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service));
   EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service));
 
@@ -545,17 +537,16 @@
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service));
   EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service));
   EXPECT_EQ(1u, test_task_runner_->GetPendingTaskCount());
-  EXPECT_EQ(
-      base::TimeDelta::FromSeconds(kBrokenAlternativeProtocolDelaySecs * 2),
-      test_task_runner_->NextPendingTaskDelay());
+  EXPECT_EQ(base::Seconds(kBrokenAlternativeProtocolDelaySecs * 2),
+            test_task_runner_->NextPendingTaskDelay());
 
   // Expire the brokenness for the 2nd time.
   test_task_runner_->FastForwardBy(
-      base::TimeDelta::FromSeconds(kBrokenAlternativeProtocolDelaySecs * 2) -
-      base::TimeDelta::FromSeconds(1));
+      base::Seconds(kBrokenAlternativeProtocolDelaySecs * 2) -
+      base::Seconds(1));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service));
   EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service));
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service));
   EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service));
 
@@ -571,7 +562,7 @@
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service));
   EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service));
   EXPECT_EQ(1u, test_task_runner_->GetPendingTaskCount());
-  EXPECT_EQ(base::TimeDelta::FromSeconds(kBrokenAlternativeProtocolDelaySecs),
+  EXPECT_EQ(base::Seconds(kBrokenAlternativeProtocolDelaySecs),
             test_task_runner_->NextPendingTaskDelay());
 }
 
@@ -586,82 +577,71 @@
       true /* use_network_isolation_key */);
 
   broken_services_.MarkBroken(alternative_service);
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(5) -
-                                   base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Minutes(5) - base::Seconds(1));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service));
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service));
 
   broken_services_.MarkBroken(alternative_service);
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(10) -
-                                   base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Minutes(10) - base::Seconds(1));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service));
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service));
 
   broken_services_.MarkBroken(alternative_service);
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(20) -
-                                   base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Minutes(20) - base::Seconds(1));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service));
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service));
 
   broken_services_.MarkBroken(alternative_service);
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(40) -
-                                   base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Minutes(40) - base::Seconds(1));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service));
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service));
 
   broken_services_.MarkBroken(alternative_service);
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(80) -
-                                   base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Minutes(80) - base::Seconds(1));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service));
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service));
 
   broken_services_.MarkBroken(alternative_service);
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(160) -
-                                   base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Minutes(160) - base::Seconds(1));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service));
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service));
 
   broken_services_.MarkBroken(alternative_service);
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(320) -
-                                   base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Minutes(320) - base::Seconds(1));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service));
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service));
 
   broken_services_.MarkBroken(alternative_service);
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(640) -
-                                   base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Minutes(640) - base::Seconds(1));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service));
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service));
 
   broken_services_.MarkBroken(alternative_service);
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(1280) -
-                                   base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Minutes(1280) - base::Seconds(1));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service));
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service));
 
   broken_services_.MarkBroken(alternative_service);
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(2560) -
-                                   base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Minutes(2560) - base::Seconds(1));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service));
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service));
 
   // Max expiration delay has been reached; subsequent expiration delays from
   // this point forward should not increase further.
   broken_services_.MarkBroken(alternative_service);
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(2560) -
-                                   base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Minutes(2560) - base::Seconds(1));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service));
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service));
 }
 
@@ -686,7 +666,7 @@
 
   broken_services_.MarkBroken(alternative_service1);
   EXPECT_EQ(1u, test_task_runner_->GetPendingTaskCount());
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(5));
+  test_task_runner_->FastForwardBy(base::Minutes(5));
   EXPECT_EQ(1u, expired_alt_svcs_.size());
   EXPECT_EQ(alternative_service1.alternative_service,
             expired_alt_svcs_.back().alternative_service);
@@ -695,7 +675,7 @@
 
   broken_services_.MarkBroken(alternative_service1);
   EXPECT_EQ(1u, test_task_runner_->GetPendingTaskCount());
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(10));
+  test_task_runner_->FastForwardBy(base::Minutes(10));
   EXPECT_EQ(2u, expired_alt_svcs_.size());
   EXPECT_EQ(alternative_service1.alternative_service,
             expired_alt_svcs_.back().alternative_service);
@@ -704,7 +684,7 @@
 
   broken_services_.MarkBroken(alternative_service1);
   EXPECT_EQ(1u, test_task_runner_->GetPendingTaskCount());
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(20));
+  test_task_runner_->FastForwardBy(base::Minutes(20));
   EXPECT_EQ(3u, expired_alt_svcs_.size());
   EXPECT_EQ(alternative_service1.alternative_service,
             expired_alt_svcs_.back().alternative_service);
@@ -724,8 +704,7 @@
 
   // Advance time until one time quantum before |alternative_service2|'s
   // brokenness expires.
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(5) -
-                                   base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Minutes(5) - base::Seconds(1));
 
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service1));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service2));
@@ -733,7 +712,7 @@
 
   // Advance time by one time quantum. |alternative_service2| should no longer
   // be broken.
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
 
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service1));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service2));
@@ -745,9 +724,8 @@
 
   // Advance time until one time quantum before |alternative_service1|'s
   // brokenness expires
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(40) -
-                                   base::TimeDelta::FromMinutes(5) -
-                                   base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Minutes(40) - base::Minutes(5) -
+                                   base::Seconds(1));
 
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service1));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service2));
@@ -759,7 +737,7 @@
 
   // Advance time by one time quantum.  |alternative_service1| should no longer
   // be broken.
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
 
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service1));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service2));
@@ -790,7 +768,7 @@
 
   broken_services_.MarkBroken(alternative_service1);
   EXPECT_EQ(1u, test_task_runner_->GetPendingTaskCount());
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(5));
+  test_task_runner_->FastForwardBy(base::Minutes(5));
   EXPECT_EQ(1u, expired_alt_svcs_.size());
   EXPECT_EQ(alternative_service1.alternative_service,
             expired_alt_svcs_.back().alternative_service);
@@ -799,7 +777,7 @@
 
   broken_services_.MarkBroken(alternative_service1);
   EXPECT_EQ(1u, test_task_runner_->GetPendingTaskCount());
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(10));
+  test_task_runner_->FastForwardBy(base::Minutes(10));
   EXPECT_EQ(2u, expired_alt_svcs_.size());
   EXPECT_EQ(alternative_service1.alternative_service,
             expired_alt_svcs_.back().alternative_service);
@@ -808,7 +786,7 @@
 
   broken_services_.MarkBroken(alternative_service1);
   EXPECT_EQ(1u, test_task_runner_->GetPendingTaskCount());
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(20));
+  test_task_runner_->FastForwardBy(base::Minutes(20));
   EXPECT_EQ(3u, expired_alt_svcs_.size());
   EXPECT_EQ(alternative_service1.alternative_service,
             expired_alt_svcs_.back().alternative_service);
@@ -828,8 +806,7 @@
 
   // Advance time until one time quantum before |alternative_service2|'s
   // brokenness expires.
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(5) -
-                                   base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Minutes(5) - base::Seconds(1));
 
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service1));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service2));
@@ -837,7 +814,7 @@
 
   // Advance time by one time quantum. |alternative_service2| should no longer
   // be broken.
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
 
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service1));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service2));
@@ -849,9 +826,8 @@
 
   // Advance time until one time quantum before |alternative_service1|'s
   // brokenness expires
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(40) -
-                                   base::TimeDelta::FromMinutes(5) -
-                                   base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Minutes(40) - base::Minutes(5) -
+                                   base::Seconds(1));
 
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service1));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service2));
@@ -863,7 +839,7 @@
 
   // Advance time by one time quantum.  |alternative_service1| should no longer
   // be broken.
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
 
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service1));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service2));
@@ -886,7 +862,7 @@
       AlternativeService(kProtoQUIC, "foo2", 443), NetworkIsolationKey(),
       true /* use_network_isolation_key */);
 
-  base::TimeDelta delay1 = base::TimeDelta::FromMinutes(1);
+  base::TimeDelta delay1 = base::Minutes(1);
 
   std::unique_ptr<BrokenAlternativeServiceList> broken_list =
       std::make_unique<BrokenAlternativeServiceList>();
@@ -908,10 +884,10 @@
   EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service2));
 
   // Make sure |alternative_service1| expires after the delay in |broken_list|.
-  test_task_runner_->FastForwardBy(delay1 - base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(delay1 - base::Seconds(1));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service1));
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service1));
 
   // Make sure the broken counts in |recently_broken_map| translate to the
@@ -919,22 +895,20 @@
   broken_services_.MarkBroken(alternative_service2);
   broken_services_.MarkBroken(alternative_service1);
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(10) -
-                                   base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Minutes(10) - base::Seconds(1));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service1));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service2));
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service1));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service2));
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(20) -
-                                   base::TimeDelta::FromMinutes(10) -
-                                   base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Minutes(20) - base::Minutes(10) -
+                                   base::Seconds(1));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service1));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service2));
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service1));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service2));
 }
@@ -955,10 +929,10 @@
       std::make_unique<BrokenAlternativeServiceList>();
   broken_list->push_back(
       {alternative_service1,
-       broken_services_clock_->NowTicks() + base::TimeDelta::FromMinutes(3)});
+       broken_services_clock_->NowTicks() + base::Minutes(3)});
   broken_list->push_back(
       {alternative_service3,
-       broken_services_clock_->NowTicks() + base::TimeDelta::FromMinutes(1)});
+       broken_services_clock_->NowTicks() + base::Minutes(1)});
 
   std::unique_ptr<RecentlyBrokenAlternativeServices> recently_broken_map =
       std::make_unique<RecentlyBrokenAlternativeServices>(10);
@@ -981,37 +955,34 @@
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service3));
 
   // Make sure |alternative_service3|'s brokenness expires in 1 minute.
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(1) -
-                                   base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Minutes(1) - base::Seconds(1));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service1));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service2));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service3));
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service1));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service2));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service3));
 
   // Make sure |alternative_service1|'s brokenness expires in 2 more minutes.
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(2) -
-                                   base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Minutes(2) - base::Seconds(1));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service1));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service2));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service3));
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service1));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service2));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service3));
 
   // Make sure |alternative_service2|'s brokenness expires in 2 more minutes.
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(2) -
-                                   base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Minutes(2) - base::Seconds(1));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service1));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service2));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service3));
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service1));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service2));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service3));
@@ -1053,7 +1024,7 @@
   // Mark |alternative_service1| broken and let brokenness expire. This will
   // increase its expiration delay the next time it's marked broken.
   broken_services_.MarkBroken(alternative_service1);
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(5));
+  test_task_runner_->FastForwardBy(base::Minutes(5));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service1));
   EXPECT_FALSE(test_task_runner_->HasPendingTask());
 
@@ -1062,7 +1033,7 @@
   broken_services_.MarkBroken(alternative_service1);
   broken_services_.MarkBroken(alternative_service2);
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(5));
+  test_task_runner_->FastForwardBy(base::Minutes(5));
   EXPECT_FALSE(broken_services_.IsBroken(alternative_service2));
   EXPECT_TRUE(broken_services_.IsBroken(alternative_service1));
 
@@ -1096,7 +1067,7 @@
       std::make_unique<BrokenAlternativeServiceList>();
   broken_list->push_back(
       {alternative_service1,
-       broken_services_clock_->NowTicks() + base::TimeDelta::FromMinutes(1)});
+       broken_services_clock_->NowTicks() + base::Minutes(1)});
 
   std::unique_ptr<RecentlyBrokenAlternativeServices> recently_broken_map =
       std::make_unique<RecentlyBrokenAlternativeServices>(10);
diff --git a/net/http/http_auth_cache_unittest.cc b/net/http/http_auth_cache_unittest.cc
index 8ce81d6..38d1155 100644
--- a/net/http/http_auth_cache_unittest.cc
+++ b/net/http/http_auth_cache_unittest.cc
@@ -712,7 +712,7 @@
             NetworkIsolationKey(), "basic realm=Realm2",
             AuthCredentials(kRoot, kWileCoyote), "/");
 
-  test_clock.Advance(base::TimeDelta::FromSeconds(10));  // Time now 12:00:10
+  test_clock.Advance(base::Seconds(10));  // Time now 12:00:10
   cache.Add(origin, HttpAuth::AUTH_SERVER, kRealm3, HttpAuth::AUTH_SCHEME_BASIC,
             NetworkIsolationKey(), "basic realm=Realm3",
             AuthCredentials(kAlice2, k1234), "/");
@@ -724,7 +724,7 @@
             NetworkIsolationKey(), "basic realm=Realm2",
             AuthCredentials(kAdmin, kPassword), "/baz/");
 
-  test_clock.Advance(base::TimeDelta::FromSeconds(10));  // Time now 12:00:20
+  test_clock.Advance(base::Seconds(10));  // Time now 12:00:20
   cache.Add(origin, HttpAuth::AUTH_SERVER, kRealm5, HttpAuth::AUTH_SCHEME_BASIC,
             NetworkIsolationKey(), "basic realm=Realm5",
             AuthCredentials(kAlice3, k12345), "/");
@@ -761,7 +761,7 @@
             cache.Lookup(origin, HttpAuth::AUTH_SERVER, kRealm4,
                          HttpAuth::AUTH_SCHEME_BASIC, NetworkIsolationKey()));
 
-  cache.ClearEntriesAddedBetween(start_time - base::TimeDelta::FromSeconds(1),
+  cache.ClearEntriesAddedBetween(start_time - base::Seconds(1),
                                  base::Time::Max());
   EXPECT_EQ(nullptr,
             cache.Lookup(origin, HttpAuth::AUTH_SERVER, kRealm1,
@@ -789,7 +789,7 @@
             NetworkIsolationKey(), "basic realm=Realm2",
             AuthCredentials(kRoot, kWileCoyote), "/");
 
-  test_clock.Advance(base::TimeDelta::FromSeconds(10));
+  test_clock.Advance(base::Seconds(10));
   cache.Add(origin, HttpAuth::AUTH_SERVER, kRealm3, HttpAuth::AUTH_SCHEME_BASIC,
             NetworkIsolationKey(), "basic realm=Realm3",
             AuthCredentials(kAlice2, k1234), "/");
@@ -836,7 +836,7 @@
             NetworkIsolationKey(), "basic realm=Realm2",
             AuthCredentials(kRoot, kWileCoyote), "/");
 
-  test_clock.Advance(base::TimeDelta::FromSeconds(10));
+  test_clock.Advance(base::Seconds(10));
   cache.Add(origin, HttpAuth::AUTH_SERVER, kRealm3, HttpAuth::AUTH_SCHEME_BASIC,
             NetworkIsolationKey(), "basic realm=Realm3",
             AuthCredentials(kAlice2, k1234), "/");
@@ -848,7 +848,7 @@
             NetworkIsolationKey(), "basic realm=Realm2",
             AuthCredentials(kAdmin, kPassword), "/baz/");
 
-  test_clock.Advance(base::TimeDelta::FromSeconds(55));
+  test_clock.Advance(base::Seconds(55));
   cache.ClearAllEntries();
 
   // All entries should be cleared.
@@ -1072,27 +1072,27 @@
 
   for (int i = 0; i < kMaxRealms; ++i) {
     AddRealm(i);
-    test_clock.Advance(base::TimeDelta::FromSeconds(1));
+    test_clock.Advance(base::Seconds(1));
   }
 
   for (int i = 0; i < kMaxRealms; ++i) {
     CheckRealmExistence(i, true);
-    test_clock.Advance(base::TimeDelta::FromSeconds(1));
+    test_clock.Advance(base::Seconds(1));
   }
 
   for (int i = 0; i < 3; ++i) {
     AddRealm(i + kMaxRealms);
-    test_clock.Advance(base::TimeDelta::FromSeconds(1));
+    test_clock.Advance(base::Seconds(1));
   }
 
   for (int i = 0; i < 3; ++i) {
     CheckRealmExistence(i, false);
-    test_clock.Advance(base::TimeDelta::FromSeconds(1));
+    test_clock.Advance(base::Seconds(1));
   }
 
   for (int i = 0; i < kMaxRealms; ++i) {
     CheckRealmExistence(i + 3, true);
-    test_clock.Advance(base::TimeDelta::FromSeconds(1));
+    test_clock.Advance(base::Seconds(1));
   }
 }
 
diff --git a/net/http/http_cache_unittest.cc b/net/http/http_cache_unittest.cc
index d10f70f0..066b5cd 100644
--- a/net/http/http_cache_unittest.cc
+++ b/net/http/http_cache_unittest.cc
@@ -10446,8 +10446,8 @@
 
   kNetResponse2.AssignTo(&mock_network_response);
 
-  base::Time request_time = base::Time() + base::TimeDelta::FromHours(1234);
-  base::Time response_time = base::Time() + base::TimeDelta::FromHours(1235);
+  base::Time request_time = base::Time() + base::Hours(1234);
+  base::Time response_time = base::Time() + base::Hours(1235);
 
   mock_network_response.request_time = request_time;
   mock_network_response.response_time = response_time;
@@ -10966,7 +10966,7 @@
   RunTransactionTest(cache.http_cache(), transaction);
 
   // Move forward in time such that the cached response is no longer valid.
-  clock.Advance(base::TimeDelta::FromSeconds(101));
+  clock.Advance(base::Seconds(101));
 
   // Skipping cache validation should still return a response.
   transaction.load_flags = LOAD_ONLY_FROM_CACHE | LOAD_SKIP_CACHE_VALIDATION;
@@ -11797,9 +11797,7 @@
     return pre_transaction_count != transaction_count();
   }
 
-  void AdvanceTime(int seconds) {
-    clock_.Advance(base::TimeDelta::FromSeconds(seconds));
-  }
+  void AdvanceTime(int seconds) { clock_.Advance(base::Seconds(seconds)); }
 
   int prefetch_reuse_mins() { return HttpCache::kPrefetchReuseMins; }
 
@@ -11915,7 +11913,7 @@
   base::SimpleTestClock clock;
   cache.http_cache()->SetClockForTesting(&clock);
   cache.network_layer()->SetClock(&clock);
-  clock.Advance(base::TimeDelta::FromSeconds(10));
+  clock.Advance(base::Seconds(10));
 
   ScopedMockTransaction stale_while_revalidate_transaction(
       kSimpleGET_Transaction);
@@ -11942,7 +11940,7 @@
 
   // Move forward in time such that the stale response is no longer valid.
   clock.SetNow(response_info.stale_revalidate_timeout);
-  clock.Advance(base::TimeDelta::FromSeconds(1));
+  clock.Advance(base::Seconds(1));
 
   RunTransactionTestWithResponseInfo(
       cache.http_cache(), stale_while_revalidate_transaction, &response_info);
@@ -11956,7 +11954,7 @@
   base::SimpleTestClock clock;
   cache.http_cache()->SetClockForTesting(&clock);
   cache.network_layer()->SetClock(&clock);
-  clock.Advance(base::TimeDelta::FromSeconds(10));
+  clock.Advance(base::Seconds(10));
 
   ScopedMockTransaction stale_while_revalidate_transaction(
       kSimpleGET_Transaction);
@@ -11981,7 +11979,7 @@
   EXPECT_TRUE(response_info.async_revalidation_requested);
   EXPECT_FALSE(response_info.stale_revalidate_timeout.is_null());
   base::Time revalidation_timeout = response_info.stale_revalidate_timeout;
-  clock.Advance(base::TimeDelta::FromSeconds(1));
+  clock.Advance(base::Seconds(1));
   EXPECT_TRUE(clock.Now() < revalidation_timeout);
 
   // Fetch the resource again inside the revalidation timeout window.
@@ -12038,7 +12036,7 @@
   base::SimpleTestClock clock;
   cache.http_cache()->SetClockForTesting(&clock);
   cache.network_layer()->SetClock(&clock);
-  clock.Advance(base::TimeDelta::FromSeconds(10));
+  clock.Advance(base::Seconds(10));
 
   ScopedMockTransaction stale_while_revalidate_transaction(
       kSimpleGET_Transaction);
diff --git a/net/http/http_network_transaction_unittest.cc b/net/http/http_network_transaction_unittest.cc
index 938a3b4..20acb7e 100644
--- a/net/http/http_network_transaction_unittest.cc
+++ b/net/http/http_network_transaction_unittest.cc
@@ -467,7 +467,7 @@
     base::RunLoop().RunUntilIdle();
     // Set an initial delay to ensure that the first call to TimeTicks::Now()
     // before incrementing the counter does not return a null value.
-    FastForwardBy(base::TimeDelta::FromSeconds(1));
+    FastForwardBy(base::Seconds(1));
   }
 
   void TearDown() override {
@@ -1647,8 +1647,7 @@
 }
 
 TEST_F(HttpNetworkTransactionTest, LoadTimingMeasuresTimeToFirstByteForHttp) {
-  static const base::TimeDelta kDelayAfterFirstByte =
-      base::TimeDelta::FromMilliseconds(10);
+  static const base::TimeDelta kDelayAfterFirstByte = base::Milliseconds(10);
 
   HttpRequestInfo request;
   request.method = "GET";
@@ -1718,8 +1717,7 @@
 // Tests that the time-to-first-byte reported in a transaction's load timing
 // info uses the first response, even if 1XX/informational.
 void HttpNetworkTransactionTest::Check100ResponseTiming(bool use_spdy) {
-  static const base::TimeDelta kDelayAfter100Response =
-      base::TimeDelta::FromMilliseconds(10);
+  static const base::TimeDelta kDelayAfter100Response = base::Milliseconds(10);
 
   HttpRequestInfo request;
   request.method = "GET";
@@ -11327,7 +11325,7 @@
   RecordingTestNetLog net_log;
   session_deps_.net_log = &net_log;
 
-  const base::TimeDelta kTimeIncrement = base::TimeDelta::FromSeconds(4);
+  const base::TimeDelta kTimeIncrement = base::Seconds(4);
   session_deps_.host_resolver->set_ondemand_mode(true);
 
   HttpRequestInfo request;
@@ -11491,7 +11489,7 @@
   RecordingTestNetLog net_log;
   session_deps_.net_log = &net_log;
 
-  const base::TimeDelta kTimeIncrement = base::TimeDelta::FromSeconds(4);
+  const base::TimeDelta kTimeIncrement = base::Seconds(4);
   session_deps_.host_resolver->set_ondemand_mode(true);
 
   HttpRequestInfo request;
@@ -12637,7 +12635,7 @@
   HttpServerProperties* http_server_properties =
       session->http_server_properties();
   AlternativeService alternative_service(kProtoHTTP2, "", 444);
-  base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = base::Time::Now() + base::Days(1);
   http_server_properties->SetHttp2AlternativeService(
       url::SchemeHostPort("https", "host.with.alternate", 443),
       NetworkIsolationKey(), alternative_service, expiration);
@@ -13734,7 +13732,7 @@
       session->http_server_properties();
   AlternativeService alternative_service(kProtoHTTP2, "different.example.org",
                                          444);
-  base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = base::Time::Now() + base::Days(1);
   http_server_properties->SetHttp2AlternativeService(
       url::SchemeHostPort(request.url), NetworkIsolationKey(),
       alternative_service, expiration);
@@ -13775,7 +13773,7 @@
   HttpServerProperties* http_server_properties =
       session->http_server_properties();
   AlternativeService alternative_service(kProtoHTTP2, "", 444);
-  base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = base::Time::Now() + base::Days(1);
   http_server_properties->SetHttp2AlternativeService(
       url::SchemeHostPort(request.url), NetworkIsolationKey(),
       alternative_service, expiration);
@@ -13795,7 +13793,7 @@
       session->http_server_properties();
   url::SchemeHostPort test_server("https", "www.example.org", 443);
   AlternativeService alternative_service(kProtoQUIC, "", 80);
-  base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = base::Time::Now() + base::Days(1);
   http_server_properties->SetQuicAlternativeService(
       test_server, NetworkIsolationKey(), alternative_service, expiration,
       session->context().quic_context->params()->supported_versions);
@@ -13954,7 +13952,7 @@
   HttpServerProperties* http_server_properties =
       session->http_server_properties();
   AlternativeService alternative_service(kProtoQUIC, alternative);
-  base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = base::Time::Now() + base::Days(1);
   http_server_properties->SetQuicAlternativeService(
       server, NetworkIsolationKey(), alternative_service, expiration,
       DefaultSupportedQuicVersions());
@@ -14017,7 +14015,7 @@
 
   // Set up two QUIC alternative services for server.
   AlternativeServiceInfoVector alternative_service_info_vector;
-  base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = base::Time::Now() + base::Days(1);
 
   AlternativeService alternative_service1(kProtoQUIC, alternative1);
   alternative_service_info_vector.push_back(
@@ -14089,7 +14087,7 @@
   // Port is ignored by MockConnect anyway.
   const AlternativeService alternative_service(kProtoHTTP2, "www.example.org",
                                                666);
-  base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = base::Time::Now() + base::Days(1);
   http_server_properties->SetHttp2AlternativeService(
       server, NetworkIsolationKey(), alternative_service, expiration);
 
@@ -14154,7 +14152,7 @@
   const int kUnrestrictedAlternatePort = 1024;
   AlternativeService alternative_service(kProtoHTTP2, "www.example.org",
                                          kUnrestrictedAlternatePort);
-  base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = base::Time::Now() + base::Days(1);
   http_server_properties->SetHttp2AlternativeService(
       url::SchemeHostPort(restricted_port_request.url), NetworkIsolationKey(),
       alternative_service, expiration);
@@ -14205,7 +14203,7 @@
   const int kUnrestrictedAlternatePort = 1024;
   AlternativeService alternative_service(kProtoHTTP2, "www.example.org",
                                          kUnrestrictedAlternatePort);
-  base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = base::Time::Now() + base::Days(1);
   http_server_properties->SetHttp2AlternativeService(
       url::SchemeHostPort(restricted_port_request.url), NetworkIsolationKey(),
       alternative_service, expiration);
@@ -14255,7 +14253,7 @@
   const int kRestrictedAlternatePort = 80;
   AlternativeService alternative_service(kProtoHTTP2, "www.example.org",
                                          kRestrictedAlternatePort);
-  base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = base::Time::Now() + base::Days(1);
   http_server_properties->SetHttp2AlternativeService(
       url::SchemeHostPort(restricted_port_request.url), NetworkIsolationKey(),
       alternative_service, expiration);
@@ -14305,7 +14303,7 @@
   const int kRestrictedAlternatePort = 80;
   AlternativeService alternative_service(kProtoHTTP2, "www.example.org",
                                          kRestrictedAlternatePort);
-  base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = base::Time::Now() + base::Days(1);
   http_server_properties->SetHttp2AlternativeService(
       url::SchemeHostPort(unrestricted_port_request.url), NetworkIsolationKey(),
       alternative_service, expiration);
@@ -14355,7 +14353,7 @@
   const int kUnrestrictedAlternatePort = 1025;
   AlternativeService alternative_service(kProtoHTTP2, "www.example.org",
                                          kUnrestrictedAlternatePort);
-  base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = base::Time::Now() + base::Days(1);
   http_server_properties->SetHttp2AlternativeService(
       url::SchemeHostPort(unrestricted_port_request.url), NetworkIsolationKey(),
       alternative_service, expiration);
@@ -14397,7 +14395,7 @@
   const int kUnsafePort = 7;
   AlternativeService alternative_service(kProtoHTTP2, "www.example.org",
                                          kUnsafePort);
-  base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = base::Time::Now() + base::Days(1);
   http_server_properties->SetHttp2AlternativeService(
       url::SchemeHostPort(request.url), NetworkIsolationKey(),
       alternative_service, expiration);
@@ -14728,7 +14726,7 @@
   url::SchemeHostPort server("https", "www.example.org", 443);
   HostPortPair alternative("www.example.com", 443);
   AlternativeService alternative_service(kProtoHTTP2, alternative);
-  base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = base::Time::Now() + base::Days(1);
   http_server_properties->SetHttp2AlternativeService(
       server, NetworkIsolationKey(), alternative_service, expiration);
 
@@ -15966,10 +15964,10 @@
   CommonConnectJobParams common_connect_job_params(
       session->CreateCommonConnectJobParams());
   TransportClientSocketPool* transport_pool = new TransportClientSocketPool(
-      50,                                // Max sockets for pool
-      1,                                 // Max sockets per group
-      base::TimeDelta::FromSeconds(10),  // unused_idle_socket_timeout
-      ProxyServer::Direct(), false,      // is_for_websockets
+      50,                            // Max sockets for pool
+      1,                             // Max sockets per group
+      base::Seconds(10),             // unused_idle_socket_timeout
+      ProxyServer::Direct(), false,  // is_for_websockets
       &common_connect_job_params);
   auto mock_pool_manager = std::make_unique<MockClientSocketPoolManager>();
   mock_pool_manager->SetSocketPool(ProxyServer::Direct(),
@@ -17760,7 +17758,7 @@
   HttpServerProperties* http_server_properties =
       session->http_server_properties();
   AlternativeService alternative_service(kProtoHTTP2, alternative);
-  base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = base::Time::Now() + base::Days(1);
   http_server_properties->SetHttp2AlternativeService(
       server, NetworkIsolationKey(), alternative_service, expiration);
 
@@ -17828,7 +17826,7 @@
   HttpServerProperties* http_server_properties =
       session->http_server_properties();
   AlternativeService alternative_service(kProtoHTTP2, alternative);
-  base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = base::Time::Now() + base::Days(1);
   http_server_properties->SetHttp2AlternativeService(
       server, NetworkIsolationKey(), alternative_service, expiration);
 
@@ -17938,7 +17936,7 @@
   HttpServerProperties* http_server_properties =
       session->http_server_properties();
   AlternativeService alternative_service(kProtoHTTP2, alternative);
-  base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = base::Time::Now() + base::Days(1);
   http_server_properties->SetHttp2AlternativeService(
       server, NetworkIsolationKey(), alternative_service, expiration);
 
@@ -20417,8 +20415,7 @@
 TEST_F(HttpNetworkTransactionNetworkErrorLoggingTest,
        CreateReportRestartWithAuth) {
   std::string extra_header_string = extra_headers_.ToString();
-  static const base::TimeDelta kSleepDuration =
-      base::TimeDelta::FromMilliseconds(10);
+  static const base::TimeDelta kSleepDuration = base::Milliseconds(10);
 
   MockWrite data_writes1[] = {
       MockWrite("GET / HTTP/1.1\r\n"
@@ -20521,8 +20518,7 @@
 TEST_F(HttpNetworkTransactionNetworkErrorLoggingTest,
        CreateReportRestartWithAuthAsync) {
   std::string extra_header_string = extra_headers_.ToString();
-  static const base::TimeDelta kSleepDuration =
-      base::TimeDelta::FromMilliseconds(10);
+  static const base::TimeDelta kSleepDuration = base::Milliseconds(10);
 
   MockWrite data_writes1[] = {
       MockWrite("GET / HTTP/1.1\r\n"
@@ -21184,8 +21180,7 @@
 
 TEST_F(HttpNetworkTransactionNetworkErrorLoggingTest, ReportElapsedTime) {
   std::string extra_header_string = extra_headers_.ToString();
-  static const base::TimeDelta kSleepDuration =
-      base::TimeDelta::FromMilliseconds(10);
+  static const base::TimeDelta kSleepDuration = base::Milliseconds(10);
 
   std::vector<MockWrite> data_writes = {
       MockWrite(ASYNC, 0,
@@ -21262,7 +21257,7 @@
 }
 
 TEST_F(HttpNetworkTransactionTest, ZeroRTTDoesntConfirm) {
-  static const base::TimeDelta kDelay = base::TimeDelta::FromMilliseconds(10);
+  static const base::TimeDelta kDelay = base::Milliseconds(10);
   HttpRequestInfo request;
   request.method = "GET";
   request.url = GURL("https://www.example.org/");
@@ -21328,7 +21323,7 @@
 }
 
 TEST_F(HttpNetworkTransactionTest, ZeroRTTSyncConfirmSyncWrite) {
-  static const base::TimeDelta kDelay = base::TimeDelta::FromMilliseconds(10);
+  static const base::TimeDelta kDelay = base::Milliseconds(10);
   HttpRequestInfo request;
   request.method = "POST";
   request.url = GURL("https://www.example.org/");
@@ -21451,7 +21446,7 @@
 }
 
 TEST_F(HttpNetworkTransactionTest, ZeroRTTAsyncConfirmSyncWrite) {
-  static const base::TimeDelta kDelay = base::TimeDelta::FromMilliseconds(10);
+  static const base::TimeDelta kDelay = base::Milliseconds(10);
   HttpRequestInfo request;
   request.method = "POST";
   request.url = GURL("https://www.example.org/");
diff --git a/net/http/http_proxy_connect_job.cc b/net/http/http_proxy_connect_job.cc
index a2596b7..7431f1b6 100644
--- a/net/http/http_proxy_connect_job.cc
+++ b/net/http/http_proxy_connect_job.cc
@@ -50,11 +50,9 @@
 // HttpProxyConnectJobs will time out after this many seconds.  Note this is in
 // addition to the timeout for the transport socket.
 #if defined(OS_ANDROID) || defined(OS_IOS)
-constexpr base::TimeDelta kHttpProxyConnectJobTunnelTimeout =
-    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kHttpProxyConnectJobTunnelTimeout = base::Seconds(10);
 #else
-constexpr base::TimeDelta kHttpProxyConnectJobTunnelTimeout =
-    base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kHttpProxyConnectJobTunnelTimeout = base::Seconds(30);
 #endif
 
 class HttpProxyTimeoutExperiments {
@@ -65,14 +63,14 @@
 
   void Init() {
 #if defined(OS_ANDROID) || defined(OS_IOS)
-    min_proxy_connection_timeout_ = base::TimeDelta::FromSeconds(
-        GetInt32Param("min_proxy_connection_timeout_seconds", 8));
-    max_proxy_connection_timeout_ = base::TimeDelta::FromSeconds(
+    min_proxy_connection_timeout_ =
+        base::Seconds(GetInt32Param("min_proxy_connection_timeout_seconds", 8));
+    max_proxy_connection_timeout_ = base::Seconds(
         GetInt32Param("max_proxy_connection_timeout_seconds", 30));
 #else
-    min_proxy_connection_timeout_ = base::TimeDelta::FromSeconds(
+    min_proxy_connection_timeout_ = base::Seconds(
         GetInt32Param("min_proxy_connection_timeout_seconds", 30));
-    max_proxy_connection_timeout_ = base::TimeDelta::FromSeconds(
+    max_proxy_connection_timeout_ = base::Seconds(
         GetInt32Param("max_proxy_connection_timeout_seconds", 60));
 #endif
     ssl_http_rtt_multiplier_ = GetInt32Param("ssl_http_rtt_multiplier", 10);
diff --git a/net/http/http_proxy_connect_job_unittest.cc b/net/http/http_proxy_connect_job_unittest.cc
index 040c738c..e5dce794 100644
--- a/net/http/http_proxy_connect_job_unittest.cc
+++ b/net/http/http_proxy_connect_job_unittest.cc
@@ -1278,7 +1278,7 @@
 // Test timeouts in the case of an auth challenge and response.
 TEST_P(HttpProxyConnectJobTest, TestTimeoutsAuthChallenge) {
   // Wait until this amount of time before something times out.
-  const base::TimeDelta kTinyTime = base::TimeDelta::FromMicroseconds(1);
+  const base::TimeDelta kTinyTime = base::Microseconds(1);
 
   enum class TimeoutPhase {
     CONNECT,
@@ -1429,7 +1429,7 @@
     EXPECT_FALSE(test_delegate.has_result());
 
     // ConnectJobs cannot timeout while showing an auth dialog.
-    FastForwardBy(base::TimeDelta::FromDays(1));
+    FastForwardBy(base::Days(1));
     EXPECT_FALSE(test_delegate.has_result());
 
     // Send credentials
@@ -1477,7 +1477,7 @@
   };
 
   // Wait until this amount of time before something times out.
-  const base::TimeDelta kTinyTime = base::TimeDelta::FromMicroseconds(1);
+  const base::TimeDelta kTinyTime = base::Microseconds(1);
 
   session_deps_.host_resolver->set_ondemand_mode(true);
 
@@ -1566,7 +1566,7 @@
     EXPECT_FALSE(test_delegate.has_result());
 
     // ConnectJobs cannot timeout while showing an auth dialog.
-    FastForwardBy(base::TimeDelta::FromDays(1));
+    FastForwardBy(base::Days(1));
     EXPECT_FALSE(test_delegate.has_result());
 
     // Send credentials
@@ -1634,7 +1634,7 @@
 #if defined(OS_ANDROID) || defined(OS_IOS)
   // On Android and iOS, when there's no NQE, there's a hard-coded alternate
   // proxy timeout.
-  EXPECT_EQ(base::TimeDelta::FromSeconds(10), alternate_connection_timeout);
+  EXPECT_EQ(base::Seconds(10), alternate_connection_timeout);
 #else
   // On other platforms, there is not.
   EXPECT_EQ(base::TimeDelta(), alternate_connection_timeout);
@@ -1643,35 +1643,35 @@
 
 TEST_P(HttpProxyConnectJobTest, ConnectionTimeoutMin) {
   // Set RTT estimate to a low value.
-  base::TimeDelta rtt_estimate = base::TimeDelta::FromMilliseconds(1);
+  base::TimeDelta rtt_estimate = base::Milliseconds(1);
   network_quality_estimator_->SetStartTimeNullHttpRtt(rtt_estimate);
 
   EXPECT_LE(base::TimeDelta(), GetNestedConnectionTimeout());
 
   // Test against a large value.
-  EXPECT_GE(base::TimeDelta::FromMinutes(10), GetNestedConnectionTimeout());
+  EXPECT_GE(base::Minutes(10), GetNestedConnectionTimeout());
 
 #if (defined(OS_ANDROID) || defined(OS_IOS))
-  EXPECT_EQ(base::TimeDelta::FromSeconds(8), GetNestedConnectionTimeout());
+  EXPECT_EQ(base::Seconds(8), GetNestedConnectionTimeout());
 #else
-  EXPECT_EQ(base::TimeDelta::FromSeconds(30), GetNestedConnectionTimeout());
+  EXPECT_EQ(base::Seconds(30), GetNestedConnectionTimeout());
 #endif
 }
 
 TEST_P(HttpProxyConnectJobTest, ConnectionTimeoutMax) {
   // Set RTT estimate to a high value.
-  base::TimeDelta rtt_estimate = base::TimeDelta::FromSeconds(100);
+  base::TimeDelta rtt_estimate = base::Seconds(100);
   network_quality_estimator_->SetStartTimeNullHttpRtt(rtt_estimate);
 
   EXPECT_LE(base::TimeDelta(), GetNestedConnectionTimeout());
 
   // Test against a large value.
-  EXPECT_GE(base::TimeDelta::FromMinutes(10), GetNestedConnectionTimeout());
+  EXPECT_GE(base::Minutes(10), GetNestedConnectionTimeout());
 
 #if (defined(OS_ANDROID) || defined(OS_IOS))
-  EXPECT_EQ(base::TimeDelta::FromSeconds(30), GetNestedConnectionTimeout());
+  EXPECT_EQ(base::Seconds(30), GetNestedConnectionTimeout());
 #else
-  EXPECT_EQ(base::TimeDelta::FromSeconds(60), GetNestedConnectionTimeout());
+  EXPECT_EQ(base::Seconds(60), GetNestedConnectionTimeout());
 #endif
 }
 
@@ -1680,25 +1680,25 @@
 TEST_P(HttpProxyConnectJobTest, ConnectionTimeoutWithExperiment) {
   // Timeout should be kMultiplier times the HTTP RTT estimate.
   const int kMultiplier = 4;
-  const base::TimeDelta kMinTimeout = base::TimeDelta::FromSeconds(8);
-  const base::TimeDelta kMaxTimeout = base::TimeDelta::FromSeconds(20);
+  const base::TimeDelta kMinTimeout = base::Seconds(8);
+  const base::TimeDelta kMaxTimeout = base::Seconds(20);
 
   InitAdaptiveTimeoutFieldTrialWithParams(false, kMultiplier, kMultiplier,
                                           kMinTimeout, kMaxTimeout);
   EXPECT_LE(base::TimeDelta(), GetNestedConnectionTimeout());
 
-  base::TimeDelta rtt_estimate = base::TimeDelta::FromSeconds(4);
+  base::TimeDelta rtt_estimate = base::Seconds(4);
   network_quality_estimator_->SetStartTimeNullHttpRtt(rtt_estimate);
   base::TimeDelta expected_connection_timeout = kMultiplier * rtt_estimate;
   EXPECT_EQ(expected_connection_timeout, GetNestedConnectionTimeout());
 
   // Connection timeout should not exceed kMaxTimeout.
-  rtt_estimate = base::TimeDelta::FromSeconds(25);
+  rtt_estimate = base::Seconds(25);
   network_quality_estimator_->SetStartTimeNullHttpRtt(rtt_estimate);
   EXPECT_EQ(kMaxTimeout, GetNestedConnectionTimeout());
 
   // Connection timeout should not be less than kMinTimeout.
-  rtt_estimate = base::TimeDelta::FromSeconds(0);
+  rtt_estimate = base::Seconds(0);
   network_quality_estimator_->SetStartTimeNullHttpRtt(rtt_estimate);
   EXPECT_EQ(kMinTimeout, GetNestedConnectionTimeout());
 }
@@ -1708,29 +1708,29 @@
 TEST_P(HttpProxyConnectJobTest, ConnectionTimeoutExperimentDifferentParams) {
   // Timeout should be kMultiplier times the HTTP RTT estimate.
   const int kMultiplier = 3;
-  const base::TimeDelta kMinTimeout = base::TimeDelta::FromSeconds(2);
-  const base::TimeDelta kMaxTimeout = base::TimeDelta::FromSeconds(30);
+  const base::TimeDelta kMinTimeout = base::Seconds(2);
+  const base::TimeDelta kMaxTimeout = base::Seconds(30);
 
   InitAdaptiveTimeoutFieldTrialWithParams(false, kMultiplier, kMultiplier,
                                           kMinTimeout, kMaxTimeout);
   EXPECT_LE(base::TimeDelta(), GetNestedConnectionTimeout());
 
-  base::TimeDelta rtt_estimate = base::TimeDelta::FromSeconds(2);
+  base::TimeDelta rtt_estimate = base::Seconds(2);
   network_quality_estimator_->SetStartTimeNullHttpRtt(rtt_estimate);
   EXPECT_EQ(kMultiplier * rtt_estimate, GetNestedConnectionTimeout());
 
   // A change in RTT estimate should also change the connection timeout.
-  rtt_estimate = base::TimeDelta::FromSeconds(7);
+  rtt_estimate = base::Seconds(7);
   network_quality_estimator_->SetStartTimeNullHttpRtt(rtt_estimate);
   EXPECT_EQ(kMultiplier * rtt_estimate, GetNestedConnectionTimeout());
 
   // Connection timeout should not exceed kMaxTimeout.
-  rtt_estimate = base::TimeDelta::FromSeconds(35);
+  rtt_estimate = base::Seconds(35);
   network_quality_estimator_->SetStartTimeNullHttpRtt(rtt_estimate);
   EXPECT_EQ(kMaxTimeout, GetNestedConnectionTimeout());
 
   // Connection timeout should not be less than kMinTimeout.
-  rtt_estimate = base::TimeDelta::FromSeconds(0);
+  rtt_estimate = base::Seconds(0);
   network_quality_estimator_->SetStartTimeNullHttpRtt(rtt_estimate);
   EXPECT_EQ(kMinTimeout, GetNestedConnectionTimeout());
 }
@@ -1738,13 +1738,13 @@
 TEST_P(HttpProxyConnectJobTest, ConnectionTimeoutWithConnectionProperty) {
   const int kSecureMultiplier = 3;
   const int kNonSecureMultiplier = 5;
-  const base::TimeDelta kMinTimeout = base::TimeDelta::FromSeconds(2);
-  const base::TimeDelta kMaxTimeout = base::TimeDelta::FromSeconds(30);
+  const base::TimeDelta kMinTimeout = base::Seconds(2);
+  const base::TimeDelta kMaxTimeout = base::Seconds(30);
 
   InitAdaptiveTimeoutFieldTrialWithParams(
       false, kSecureMultiplier, kNonSecureMultiplier, kMinTimeout, kMaxTimeout);
 
-  const base::TimeDelta kRttEstimate = base::TimeDelta::FromSeconds(2);
+  const base::TimeDelta kRttEstimate = base::Seconds(2);
   network_quality_estimator_->SetStartTimeNullHttpRtt(kRttEstimate);
   // By default, connection timeout should return the timeout for secure
   // proxies.
@@ -1765,24 +1765,24 @@
 
   // Timeout should be |http_rtt_multiplier| times the HTTP RTT
   // estimate.
-  base::TimeDelta rtt_estimate = base::TimeDelta::FromMilliseconds(10);
+  base::TimeDelta rtt_estimate = base::Milliseconds(10);
   network_quality_estimator_->SetStartTimeNullHttpRtt(rtt_estimate);
   // Connection timeout should not be less than the HTTP RTT estimate.
   EXPECT_LE(rtt_estimate, GetNestedConnectionTimeout());
 
   // A change in RTT estimate should also change the connection timeout.
-  rtt_estimate = base::TimeDelta::FromSeconds(10);
+  rtt_estimate = base::Seconds(10);
   network_quality_estimator_->SetStartTimeNullHttpRtt(rtt_estimate);
   // Connection timeout should not be less than the HTTP RTT estimate.
   EXPECT_LE(rtt_estimate, GetNestedConnectionTimeout());
 
   // Set RTT to a very large value.
-  rtt_estimate = base::TimeDelta::FromMinutes(60);
+  rtt_estimate = base::Minutes(60);
   network_quality_estimator_->SetStartTimeNullHttpRtt(rtt_estimate);
   EXPECT_GT(rtt_estimate, GetNestedConnectionTimeout());
 
   // Set RTT to a very small value.
-  rtt_estimate = base::TimeDelta::FromSeconds(0);
+  rtt_estimate = base::Seconds(0);
   network_quality_estimator_->SetStartTimeNullHttpRtt(rtt_estimate);
   EXPECT_LT(rtt_estimate, GetNestedConnectionTimeout());
 }
diff --git a/net/http/http_response_body_drainer.cc b/net/http/http_response_body_drainer.cc
index ee4f870..bca2f5f 100644
--- a/net/http/http_response_body_drainer.cc
+++ b/net/http/http_response_body_drainer.cc
@@ -33,9 +33,7 @@
   int rv = DoLoop(OK);
 
   if (rv == ERR_IO_PENDING) {
-    timer_.Start(FROM_HERE,
-                 base::TimeDelta::FromSeconds(kTimeoutInSeconds),
-                 this,
+    timer_.Start(FROM_HERE, base::Seconds(kTimeoutInSeconds), this,
                  &HttpResponseBodyDrainer::OnTimerFired);
     session_ = session;
     session->AddResponseDrainer(base::WrapUnique(this));
diff --git a/net/http/http_response_info.cc b/net/http/http_response_info.cc
index 9ae30aa..3b20745 100644
--- a/net/http/http_response_info.cc
+++ b/net/http/http_response_info.cc
@@ -340,8 +340,7 @@
   if (flags & RESPONSE_INFO_HAS_STALENESS) {
     if (!iter.ReadInt64(&time_val))
       return false;
-    stale_revalidate_timeout =
-        base::Time() + base::TimeDelta::FromMicroseconds(time_val);
+    stale_revalidate_timeout = base::Time() + base::Microseconds(time_val);
   }
 
   was_fetched_via_spdy = (flags & RESPONSE_INFO_WAS_SPDY) != 0;
diff --git a/net/http/http_security_headers.cc b/net/http/http_security_headers.cc
index 08233567..39eb8191 100644
--- a/net/http/http_security_headers.cc
+++ b/net/http/http_security_headers.cc
@@ -162,7 +162,7 @@
     case AFTER_MAX_AGE:
     case AFTER_INCLUDE_SUBDOMAINS:
     case AFTER_UNKNOWN_LABEL:
-      *max_age = base::TimeDelta::FromSeconds(max_age_candidate);
+      *max_age = base::Seconds(max_age_candidate);
       *include_subdomains = include_subdomains_candidate;
       return true;
     case START:
@@ -237,7 +237,7 @@
   if (!parsed_max_age)
     return false;
 
-  *max_age = base::TimeDelta::FromSeconds(max_age_candidate);
+  *max_age = base::Seconds(max_age_candidate);
   *enforce = enforce_candidate;
   *report_uri = parsed_report_uri;
   return true;
diff --git a/net/http/http_security_headers_unittest.cc b/net/http/http_security_headers_unittest.cc
index acd84f8..63223ba9e 100644
--- a/net/http/http_security_headers_unittest.cc
+++ b/net/http/http_security_headers_unittest.cc
@@ -130,7 +130,7 @@
 
   EXPECT_TRUE(ParseHSTSHeader("max-age=243", &max_age,
                               &include_subdomains));
-  expect_max_age = base::TimeDelta::FromSeconds(243);
+  expect_max_age = base::Seconds(243);
   EXPECT_EQ(expect_max_age, max_age);
   EXPECT_FALSE(include_subdomains);
 
@@ -139,143 +139,135 @@
 
   EXPECT_TRUE(ParseHSTSHeader("  Max-agE    = 567", &max_age,
                               &include_subdomains));
-  expect_max_age = base::TimeDelta::FromSeconds(567);
+  expect_max_age = base::Seconds(567);
   EXPECT_EQ(expect_max_age, max_age);
   EXPECT_FALSE(include_subdomains);
 
   EXPECT_TRUE(ParseHSTSHeader("  mAx-aGe    = 890      ", &max_age,
                               &include_subdomains));
-  expect_max_age = base::TimeDelta::FromSeconds(890);
+  expect_max_age = base::Seconds(890);
   EXPECT_EQ(expect_max_age, max_age);
   EXPECT_FALSE(include_subdomains);
 
   EXPECT_TRUE(ParseHSTSHeader("max-age=123;incLudesUbdOmains", &max_age,
                               &include_subdomains));
-  expect_max_age = base::TimeDelta::FromSeconds(123);
+  expect_max_age = base::Seconds(123);
   EXPECT_EQ(expect_max_age, max_age);
   EXPECT_TRUE(include_subdomains);
 
   EXPECT_TRUE(ParseHSTSHeader("incLudesUbdOmains; max-age=123", &max_age,
                               &include_subdomains));
-  expect_max_age = base::TimeDelta::FromSeconds(123);
+  expect_max_age = base::Seconds(123);
   EXPECT_EQ(expect_max_age, max_age);
   EXPECT_TRUE(include_subdomains);
 
   EXPECT_TRUE(ParseHSTSHeader("   incLudesUbdOmains; max-age=123",
                               &max_age, &include_subdomains));
-  expect_max_age = base::TimeDelta::FromSeconds(123);
+  expect_max_age = base::Seconds(123);
   EXPECT_EQ(expect_max_age, max_age);
   EXPECT_TRUE(include_subdomains);
 
   EXPECT_TRUE(ParseHSTSHeader(
       "   incLudesUbdOmains; max-age=123; pumpkin=kitten", &max_age,
                                    &include_subdomains));
-  expect_max_age = base::TimeDelta::FromSeconds(123);
+  expect_max_age = base::Seconds(123);
   EXPECT_EQ(expect_max_age, max_age);
   EXPECT_TRUE(include_subdomains);
 
   EXPECT_TRUE(ParseHSTSHeader(
       "   pumpkin=894; incLudesUbdOmains; max-age=123  ", &max_age,
                                    &include_subdomains));
-  expect_max_age = base::TimeDelta::FromSeconds(123);
+  expect_max_age = base::Seconds(123);
   EXPECT_EQ(expect_max_age, max_age);
   EXPECT_TRUE(include_subdomains);
 
   EXPECT_TRUE(ParseHSTSHeader(
       "   pumpkin; incLudesUbdOmains; max-age=123  ", &max_age,
                                    &include_subdomains));
-  expect_max_age = base::TimeDelta::FromSeconds(123);
+  expect_max_age = base::Seconds(123);
   EXPECT_EQ(expect_max_age, max_age);
   EXPECT_TRUE(include_subdomains);
 
   EXPECT_TRUE(ParseHSTSHeader(
       "   pumpkin; incLudesUbdOmains; max-age=\"123\"  ", &max_age,
                                    &include_subdomains));
-  expect_max_age = base::TimeDelta::FromSeconds(123);
+  expect_max_age = base::Seconds(123);
   EXPECT_EQ(expect_max_age, max_age);
   EXPECT_TRUE(include_subdomains);
 
   EXPECT_TRUE(ParseHSTSHeader(
       "animal=\"squirrel; distinguished\"; incLudesUbdOmains; max-age=123",
                                    &max_age, &include_subdomains));
-  expect_max_age = base::TimeDelta::FromSeconds(123);
+  expect_max_age = base::Seconds(123);
   EXPECT_EQ(expect_max_age, max_age);
   EXPECT_TRUE(include_subdomains);
 
   EXPECT_TRUE(ParseHSTSHeader("max-age=394082;  incLudesUbdOmains",
                               &max_age, &include_subdomains));
-  expect_max_age = base::TimeDelta::FromSeconds(394082);
+  expect_max_age = base::Seconds(394082);
   EXPECT_EQ(expect_max_age, max_age);
   EXPECT_TRUE(include_subdomains);
 
   EXPECT_TRUE(ParseHSTSHeader(
       "max-age=39408299  ;incLudesUbdOmains", &max_age,
       &include_subdomains));
-  expect_max_age =
-      base::TimeDelta::FromSeconds(std::min(kMaxHSTSAgeSecs, 39408299u));
+  expect_max_age = base::Seconds(std::min(kMaxHSTSAgeSecs, 39408299u));
   EXPECT_EQ(expect_max_age, max_age);
   EXPECT_TRUE(include_subdomains);
 
   EXPECT_TRUE(ParseHSTSHeader(
       "max-age=394082038  ; incLudesUbdOmains", &max_age,
       &include_subdomains));
-  expect_max_age =
-      base::TimeDelta::FromSeconds(std::min(kMaxHSTSAgeSecs, 394082038u));
+  expect_max_age = base::Seconds(std::min(kMaxHSTSAgeSecs, 394082038u));
   EXPECT_EQ(expect_max_age, max_age);
   EXPECT_TRUE(include_subdomains);
 
   EXPECT_TRUE(ParseHSTSHeader(
       "max-age=394082038  ; incLudesUbdOmains;", &max_age,
       &include_subdomains));
-  expect_max_age =
-      base::TimeDelta::FromSeconds(std::min(kMaxHSTSAgeSecs, 394082038u));
+  expect_max_age = base::Seconds(std::min(kMaxHSTSAgeSecs, 394082038u));
   EXPECT_EQ(expect_max_age, max_age);
   EXPECT_TRUE(include_subdomains);
 
   EXPECT_TRUE(ParseHSTSHeader(
       ";; max-age=394082038  ; incLudesUbdOmains; ;", &max_age,
       &include_subdomains));
-  expect_max_age =
-      base::TimeDelta::FromSeconds(std::min(kMaxHSTSAgeSecs, 394082038u));
+  expect_max_age = base::Seconds(std::min(kMaxHSTSAgeSecs, 394082038u));
   EXPECT_EQ(expect_max_age, max_age);
   EXPECT_TRUE(include_subdomains);
 
   EXPECT_TRUE(ParseHSTSHeader(
       ";; max-age=394082038  ;", &max_age,
       &include_subdomains));
-  expect_max_age =
-      base::TimeDelta::FromSeconds(std::min(kMaxHSTSAgeSecs, 394082038u));
+  expect_max_age = base::Seconds(std::min(kMaxHSTSAgeSecs, 394082038u));
   EXPECT_EQ(expect_max_age, max_age);
   EXPECT_FALSE(include_subdomains);
 
   EXPECT_TRUE(ParseHSTSHeader(
       ";;    ; ; max-age=394082038;;; includeSubdomains     ;;  ;", &max_age,
       &include_subdomains));
-  expect_max_age =
-      base::TimeDelta::FromSeconds(std::min(kMaxHSTSAgeSecs, 394082038u));
+  expect_max_age = base::Seconds(std::min(kMaxHSTSAgeSecs, 394082038u));
   EXPECT_EQ(expect_max_age, max_age);
   EXPECT_TRUE(include_subdomains);
 
   EXPECT_TRUE(ParseHSTSHeader(
       "incLudesUbdOmains   ; max-age=394082038 ;;", &max_age,
       &include_subdomains));
-  expect_max_age =
-      base::TimeDelta::FromSeconds(std::min(kMaxHSTSAgeSecs, 394082038u));
+  expect_max_age = base::Seconds(std::min(kMaxHSTSAgeSecs, 394082038u));
   EXPECT_EQ(expect_max_age, max_age);
   EXPECT_TRUE(include_subdomains);
 
   EXPECT_TRUE(ParseHSTSHeader(
       "  max-age=0  ;  incLudesUbdOmains   ", &max_age,
       &include_subdomains));
-  expect_max_age = base::TimeDelta::FromSeconds(0);
+  expect_max_age = base::Seconds(0);
   EXPECT_EQ(expect_max_age, max_age);
   EXPECT_TRUE(include_subdomains);
 
   EXPECT_TRUE(ParseHSTSHeader(
       "  max-age=999999999999999999999999999999999999999999999  ;"
       "  incLudesUbdOmains   ", &max_age, &include_subdomains));
-  expect_max_age = base::TimeDelta::FromSeconds(
-      kMaxHSTSAgeSecs);
+  expect_max_age = base::Seconds(kMaxHSTSAgeSecs);
   EXPECT_EQ(expect_max_age, max_age);
   EXPECT_TRUE(include_subdomains);
 }
@@ -405,39 +397,39 @@
 
   EXPECT_TRUE(
       ParseExpectCTHeader("max-age=243", &max_age, &enforce, &report_uri));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(243), max_age);
+  EXPECT_EQ(base::Seconds(243), max_age);
   EXPECT_FALSE(enforce);
   EXPECT_TRUE(report_uri.is_empty());
 
   EXPECT_TRUE(ParseExpectCTHeader("  Max-agE    = 567", &max_age, &enforce,
                                   &report_uri));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(567), max_age);
+  EXPECT_EQ(base::Seconds(567), max_age);
   EXPECT_FALSE(enforce);
   EXPECT_TRUE(report_uri.is_empty());
 
   EXPECT_TRUE(ParseExpectCTHeader("  mAx-aGe    = 890      ", &max_age,
                                   &enforce, &report_uri));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(890), max_age);
+  EXPECT_EQ(base::Seconds(890), max_age);
   EXPECT_FALSE(enforce);
   EXPECT_TRUE(report_uri.is_empty());
 
   EXPECT_TRUE(ParseExpectCTHeader("max-age=123,enFoRce", &max_age, &enforce,
                                   &report_uri));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(123), max_age);
+  EXPECT_EQ(base::Seconds(123), max_age);
   EXPECT_TRUE(enforce);
   EXPECT_TRUE(report_uri.is_empty());
 
   enforce = false;
   EXPECT_TRUE(ParseExpectCTHeader("enFoRCE, max-age=123", &max_age, &enforce,
                                   &report_uri));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(123), max_age);
+  EXPECT_EQ(base::Seconds(123), max_age);
   EXPECT_TRUE(enforce);
   EXPECT_TRUE(report_uri.is_empty());
 
   enforce = false;
   EXPECT_TRUE(ParseExpectCTHeader("   enFORce, max-age=123", &max_age, &enforce,
                                   &report_uri));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(123), max_age);
+  EXPECT_EQ(base::Seconds(123), max_age);
   EXPECT_TRUE(enforce);
   EXPECT_TRUE(report_uri.is_empty());
 
@@ -445,7 +437,7 @@
   EXPECT_TRUE(ParseExpectCTHeader(
       "report-uri=\"https://foo.test\",   enFORce, max-age=123", &max_age,
       &enforce, &report_uri));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(123), max_age);
+  EXPECT_EQ(base::Seconds(123), max_age);
   EXPECT_TRUE(enforce);
   EXPECT_EQ(GURL("https://foo.test"), report_uri);
 
@@ -454,7 +446,7 @@
   EXPECT_TRUE(
       ParseExpectCTHeader("enforce,report-uri=\"https://foo.test\",max-age=123",
                           &max_age, &enforce, &report_uri));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(123), max_age);
+  EXPECT_EQ(base::Seconds(123), max_age);
   EXPECT_TRUE(enforce);
   EXPECT_EQ(GURL("https://foo.test"), report_uri);
 
@@ -463,7 +455,7 @@
   EXPECT_TRUE(
       ParseExpectCTHeader("enforce,report-uri=https://foo.test,max-age=123",
                           &max_age, &enforce, &report_uri));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(123), max_age);
+  EXPECT_EQ(base::Seconds(123), max_age);
   EXPECT_TRUE(enforce);
   EXPECT_EQ(GURL("https://foo.test"), report_uri);
 
@@ -471,14 +463,14 @@
   enforce = false;
   EXPECT_TRUE(ParseExpectCTHeader("report-uri=\"https://foo.test\",max-age=123",
                                   &max_age, &enforce, &report_uri));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(123), max_age);
+  EXPECT_EQ(base::Seconds(123), max_age);
   EXPECT_FALSE(enforce);
   EXPECT_EQ(GURL("https://foo.test"), report_uri);
 
   report_uri = GURL();
   EXPECT_TRUE(ParseExpectCTHeader("   enFORcE, max-age=123, pumpkin=kitten",
                                   &max_age, &enforce, &report_uri));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(123), max_age);
+  EXPECT_EQ(base::Seconds(123), max_age);
   EXPECT_TRUE(enforce);
   EXPECT_TRUE(report_uri.is_empty());
 
@@ -486,7 +478,7 @@
   EXPECT_TRUE(ParseExpectCTHeader(
       "   pumpkin=894, report-uri=     \"https://bar\", enFORce, max-age=123  ",
       &max_age, &enforce, &report_uri));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(123), max_age);
+  EXPECT_EQ(base::Seconds(123), max_age);
   EXPECT_TRUE(enforce);
   EXPECT_EQ(GURL("https://bar"), report_uri);
 
@@ -494,14 +486,14 @@
   report_uri = GURL();
   EXPECT_TRUE(ParseExpectCTHeader("   pumpkin, enFoRcE, max-age=123  ",
                                   &max_age, &enforce, &report_uri));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(123), max_age);
+  EXPECT_EQ(base::Seconds(123), max_age);
   EXPECT_TRUE(enforce);
   EXPECT_TRUE(report_uri.is_empty());
 
   enforce = false;
   EXPECT_TRUE(ParseExpectCTHeader("   pumpkin, enforce, max-age=\"123\"  ",
                                   &max_age, &enforce, &report_uri));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(123), max_age);
+  EXPECT_EQ(base::Seconds(123), max_age);
   EXPECT_TRUE(enforce);
   EXPECT_TRUE(report_uri.is_empty());
 
@@ -509,21 +501,21 @@
   EXPECT_TRUE(ParseExpectCTHeader(
       "animal=\"squirrel, distinguished\", enFoRce, max-age=123", &max_age,
       &enforce, &report_uri));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(123), max_age);
+  EXPECT_EQ(base::Seconds(123), max_age);
   EXPECT_TRUE(enforce);
   EXPECT_TRUE(report_uri.is_empty());
 
   enforce = false;
   EXPECT_TRUE(ParseExpectCTHeader("max-age=394082,  enforce", &max_age,
                                   &enforce, &report_uri));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(394082), max_age);
+  EXPECT_EQ(base::Seconds(394082), max_age);
   EXPECT_TRUE(enforce);
   EXPECT_TRUE(report_uri.is_empty());
 
   enforce = false;
   EXPECT_TRUE(ParseExpectCTHeader("max-age=39408299  ,enforce", &max_age,
                                   &enforce, &report_uri));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(kMaxExpectCTAgeSecs), max_age);
+  EXPECT_EQ(base::Seconds(kMaxExpectCTAgeSecs), max_age);
   EXPECT_TRUE(enforce);
   EXPECT_TRUE(report_uri.is_empty());
 
@@ -532,35 +524,35 @@
   enforce = false;
   EXPECT_TRUE(ParseExpectCTHeader(",, max-age=394082038  , enfoRce, ,",
                                   &max_age, &enforce, &report_uri));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(kMaxExpectCTAgeSecs), max_age);
+  EXPECT_EQ(base::Seconds(kMaxExpectCTAgeSecs), max_age);
   EXPECT_TRUE(enforce);
   EXPECT_TRUE(report_uri.is_empty());
 
   enforce = false;
   EXPECT_TRUE(ParseExpectCTHeader(",, max-age=394082038  ,", &max_age, &enforce,
                                   &report_uri));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(kMaxExpectCTAgeSecs), max_age);
+  EXPECT_EQ(base::Seconds(kMaxExpectCTAgeSecs), max_age);
   EXPECT_FALSE(enforce);
   EXPECT_TRUE(report_uri.is_empty());
 
   EXPECT_TRUE(
       ParseExpectCTHeader(",,    , , max-age=394082038,,, enforce     ,,  ,",
                           &max_age, &enforce, &report_uri));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(kMaxExpectCTAgeSecs), max_age);
+  EXPECT_EQ(base::Seconds(kMaxExpectCTAgeSecs), max_age);
   EXPECT_TRUE(enforce);
   EXPECT_TRUE(report_uri.is_empty());
 
   enforce = false;
   EXPECT_TRUE(ParseExpectCTHeader("enfORce   , max-age=394082038 ,,", &max_age,
                                   &enforce, &report_uri));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(kMaxExpectCTAgeSecs), max_age);
+  EXPECT_EQ(base::Seconds(kMaxExpectCTAgeSecs), max_age);
   EXPECT_TRUE(enforce);
   EXPECT_TRUE(report_uri.is_empty());
 
   enforce = false;
   EXPECT_TRUE(ParseExpectCTHeader("  max-age=0  ,  enforce   ", &max_age,
                                   &enforce, &report_uri));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(0), max_age);
+  EXPECT_EQ(base::Seconds(0), max_age);
   EXPECT_TRUE(enforce);
   EXPECT_TRUE(report_uri.is_empty());
 
@@ -569,7 +561,7 @@
       "  max-age=999999999999999999999999999999999999999999999  ,"
       "  enforce   ",
       &max_age, &enforce, &report_uri));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(kMaxExpectCTAgeSecs), max_age);
+  EXPECT_EQ(base::Seconds(kMaxExpectCTAgeSecs), max_age);
   EXPECT_TRUE(enforce);
   EXPECT_TRUE(report_uri.is_empty());
 }
diff --git a/net/http/http_server_properties.cc b/net/http/http_server_properties.cc
index 5f17eddbd..678af9e 100644
--- a/net/http/http_server_properties.cc
+++ b/net/http/http_server_properties.cc
@@ -31,7 +31,7 @@
 // Time to wait before starting an update the preferences from the
 // http_server_properties_impl_ cache. Scheduling another update during this
 // period will be a no-op.
-constexpr base::TimeDelta kUpdatePrefsDelay = base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kUpdatePrefsDelay = base::Seconds(60);
 
 url::SchemeHostPort NormalizeSchemeHostPort(
     const url::SchemeHostPort& scheme_host_port) {
diff --git a/net/http/http_server_properties_manager.cc b/net/http/http_server_properties_manager.cc
index 09534af..bcbf0ddb 100644
--- a/net/http/http_server_properties_manager.cc
+++ b/net/http/http_server_properties_manager.cc
@@ -510,8 +510,7 @@
 
   // Expiration is optional, defaults to one day.
   if (!dict.FindKey(kExpirationKey)) {
-    alternative_service_info->set_expiration(base::Time::Now() +
-                                             base::TimeDelta::FromDays(1));
+    alternative_service_info->set_expiration(base::Time::Now() + base::Days(1));
   } else {
     const std::string* expiration_string = dict.FindStringKey(kExpirationKey);
     if (expiration_string) {
@@ -637,8 +636,7 @@
     return;
   }
   ServerNetworkStats server_network_stats;
-  server_network_stats.srtt =
-      base::TimeDelta::FromMicroseconds(maybe_srtt.value());
+  server_network_stats.srtt = base::Microseconds(maybe_srtt.value());
   // TODO(rtenneti): When QUIC starts using bandwidth_estimate, then persist
   // bandwidth_estimate.
   server_info->server_network_stats = server_network_stats;
diff --git a/net/http/http_server_properties_manager_unittest.cc b/net/http/http_server_properties_manager_unittest.cc
index 6257fcc..3745437 100644
--- a/net/http/http_server_properties_manager_unittest.cc
+++ b/net/http/http_server_properties_manager_unittest.cc
@@ -215,7 +215,7 @@
             base::test::TaskEnvironment::TimeSource::MOCK_TIME) {}
 
   void SetUp() override {
-    one_day_from_now_ = base::Time::Now() + base::TimeDelta::FromDays(1);
+    one_day_from_now_ = base::Time::Now() + base::Days(1);
     advertised_versions_ = DefaultSupportedQuicVersions();
     pref_delegate_ = new MockPrefDelegate;
 
@@ -421,7 +421,7 @@
 
   // Move forward the task runner short by 20ms.
   FastForwardBy(HttpServerProperties::GetUpdatePrefsDelayForTesting() -
-                base::TimeDelta::FromMilliseconds(20));
+                base::Milliseconds(20));
 
   // Set another spdy server to trigger another call to
   // ScheduleUpdatePrefs. There should be no new update posted.
@@ -432,7 +432,7 @@
 
   // Move forward the extra 20ms. The pref update should be executed.
   EXPECT_EQ(0, pref_delegate_->GetAndClearNumPrefUpdates());
-  FastForwardBy(base::TimeDelta::FromMilliseconds(20));
+  FastForwardBy(base::Milliseconds(20));
   EXPECT_EQ(1, pref_delegate_->GetAndClearNumPrefUpdates());
   EXPECT_EQ(0u, GetPendingMainThreadTaskCount());
 
@@ -622,7 +622,7 @@
   // prefs.
   http_server_props_->SetHttp2AlternativeService(
       spdy_server_mail, NetworkIsolationKey(), alternative_service,
-      one_day_from_now_ + base::TimeDelta::FromDays(2));
+      one_day_from_now_ + base::Days(2));
   EXPECT_EQ(0, pref_delegate_->GetAndClearNumPrefUpdates());
   EXPECT_EQ(1u, GetPendingMainThreadTaskCount());
   FastForwardUntilNoTasksRemain();
@@ -874,7 +874,7 @@
       mail_server, NetworkIsolationKey());
   EXPECT_EQ(nullptr, stats);
   ServerNetworkStats stats1;
-  stats1.srtt = base::TimeDelta::FromMicroseconds(10);
+  stats1.srtt = base::Microseconds(10);
   http_server_props_->SetServerNetworkStats(mail_server, NetworkIsolationKey(),
                                             stats1);
   // Another task should not be scheduled.
@@ -966,7 +966,7 @@
   http_server_props_->SetSupportsSpdy(spdy_server, NetworkIsolationKey(), true);
   http_server_props_->SetLastLocalAddressWhenQuicWorked(actual_address);
   ServerNetworkStats stats;
-  stats.srtt = base::TimeDelta::FromMicroseconds(10);
+  stats.srtt = base::Microseconds(10);
   http_server_props_->SetServerNetworkStats(spdy_server, NetworkIsolationKey(),
                                             stats);
 
@@ -1184,8 +1184,7 @@
   int64_t expiration_int64;
   ASSERT_TRUE(base::StringToInt64(expiration_string, &expiration_int64));
   base::TimeDelta expiration_delta =
-      base::TimeDelta::FromMinutes(5) -
-      HttpServerProperties::GetUpdatePrefsDelayForTesting();
+      base::Minutes(5) - HttpServerProperties::GetUpdatePrefsDelayForTesting();
   time_t time_t_of_prefs_update = static_cast<time_t>(expiration_int64);
   EXPECT_LE((time_before_prefs_update + expiration_delta).ToTimeT(),
             time_t_of_prefs_update);
@@ -1256,8 +1255,8 @@
   // Expiration defaults to one day from now, testing with tolerance.
   const base::Time now = base::Time::Now();
   const base::Time expiration = alternative_service_info_vector[0].expiration();
-  EXPECT_LE(now + base::TimeDelta::FromHours(23), expiration);
-  EXPECT_GE(now + base::TimeDelta::FromDays(1), expiration);
+  EXPECT_LE(now + base::Hours(23), expiration);
+  EXPECT_GE(now + base::Days(1), expiration);
 
   EXPECT_EQ(kProtoQUIC,
             alternative_service_info_vector[1].alternative_service().protocol);
@@ -1308,8 +1307,7 @@
 
   const AlternativeService broken_alternative_service(
       kProtoHTTP2, "broken.example.com", 443);
-  const base::Time time_one_day_later =
-      base::Time::Now() + base::TimeDelta::FromDays(1);
+  const base::Time time_one_day_later = base::Time::Now() + base::Days(1);
   alternative_service_info_vector.push_back(
       AlternativeServiceInfo::CreateHttp2AlternativeServiceInfo(
           broken_alternative_service, time_one_day_later));
@@ -1319,8 +1317,7 @@
 
   const AlternativeService expired_alternative_service(
       kProtoHTTP2, "expired.example.com", 443);
-  const base::Time time_one_day_ago =
-      base::Time::Now() - base::TimeDelta::FromDays(1);
+  const base::Time time_one_day_ago = base::Time::Now() - base::Days(1);
   alternative_service_info_vector.push_back(
       AlternativeServiceInfo::CreateHttp2AlternativeServiceInfo(
           expired_alternative_service, time_one_day_ago));
@@ -1393,8 +1390,7 @@
   expired_dict.SetStringKey("protocol_str", "h2");
   expired_dict.SetStringKey("host", "expired.example.com");
   expired_dict.SetIntKey("port", 443);
-  base::Time time_one_day_ago =
-      base::Time::Now() - base::TimeDelta::FromDays(1);
+  base::Time time_one_day_ago = base::Time::Now() - base::Days(1);
   expired_dict.SetStringKey(
       "expiration", base::NumberToString(time_one_day_ago.ToInternalValue()));
   alternative_service_list.Append(std::move(expired_dict));
@@ -1566,8 +1562,8 @@
   // Expiration defaults to one day from now, testing with tolerance.
   const base::Time now = base::Time::Now();
   const base::Time expiration = alternative_service_info_vector[0].expiration();
-  EXPECT_LE(now + base::TimeDelta::FromHours(23), expiration);
-  EXPECT_GE(now + base::TimeDelta::FromDays(1), expiration);
+  EXPECT_LE(now + base::Hours(23), expiration);
+  EXPECT_GE(now + base::Days(1), expiration);
   EXPECT_TRUE(alternative_service_info_vector[0].advertised_versions().empty());
 
   // Verify the second alterntaive service with two advertised versions.
@@ -1870,7 +1866,7 @@
   // expiration time should still be 5 minutes due to being marked broken.
   // |prefs_broken_service|'s expiration time should be approximately 1 day from
   // now which comes from the prefs.
-  FastForwardBy(base::TimeDelta::FromMinutes(5) -
+  FastForwardBy(base::Minutes(5) -
                 HttpServerProperties::GetUpdatePrefsDelayForTesting());
   EXPECT_TRUE(http_server_props_->IsAlternativeServiceBroken(
       cached_broken_service, NetworkIsolationKey()));
@@ -1878,7 +1874,7 @@
       cached_broken_service2, NetworkIsolationKey()));
   EXPECT_TRUE(http_server_props_->IsAlternativeServiceBroken(
       prefs_broken_service, NetworkIsolationKey()));
-  FastForwardBy(base::TimeDelta::FromDays(1));
+  FastForwardBy(base::Days(1));
   EXPECT_FALSE(http_server_props_->IsAlternativeServiceBroken(
       cached_broken_service, NetworkIsolationKey()));
   EXPECT_FALSE(http_server_props_->IsAlternativeServiceBroken(
@@ -1922,8 +1918,7 @@
                                                    NetworkIsolationKey());
   EXPECT_EQ(0, pref_delegate_->GetAndClearNumPrefUpdates());
   EXPECT_NE(0u, GetPendingMainThreadTaskCount());
-  FastForwardBy(base::TimeDelta::FromMinutes(10) -
-                base::TimeDelta::FromInternalValue(1));
+  FastForwardBy(base::Minutes(10) - base::TimeDelta::FromInternalValue(1));
   EXPECT_TRUE(http_server_props_->IsAlternativeServiceBroken(
       prefs_broken_service, NetworkIsolationKey()));
   FastForwardBy(base::TimeDelta::FromInternalValue(1));
@@ -1934,8 +1929,7 @@
   http_server_props_->MarkAlternativeServiceBroken(
       cached_recently_broken_service, NetworkIsolationKey());
   EXPECT_NE(0u, GetPendingMainThreadTaskCount());
-  FastForwardBy(base::TimeDelta::FromMinutes(40) -
-                base::TimeDelta::FromInternalValue(1));
+  FastForwardBy(base::Minutes(40) - base::TimeDelta::FromInternalValue(1));
   EXPECT_TRUE(http_server_props_->IsAlternativeServiceBroken(
       cached_recently_broken_service, NetworkIsolationKey()));
   FastForwardBy(base::TimeDelta::FromInternalValue(1));
@@ -1946,8 +1940,7 @@
   http_server_props_->MarkAlternativeServiceBroken(cached_broken_service,
                                                    NetworkIsolationKey());
   EXPECT_NE(0u, GetPendingMainThreadTaskCount());
-  FastForwardBy(base::TimeDelta::FromMinutes(20) -
-                base::TimeDelta::FromInternalValue(1));
+  FastForwardBy(base::Minutes(20) - base::TimeDelta::FromInternalValue(1));
   EXPECT_TRUE(http_server_props_->IsAlternativeServiceBroken(
       cached_broken_service, NetworkIsolationKey()));
   FastForwardBy(base::TimeDelta::FromInternalValue(1));
@@ -1958,8 +1951,7 @@
   http_server_props_->MarkAlternativeServiceBroken(cached_broken_service2,
                                                    NetworkIsolationKey());
   EXPECT_NE(0u, GetPendingMainThreadTaskCount());
-  FastForwardBy(base::TimeDelta::FromMinutes(10) -
-                base::TimeDelta::FromInternalValue(1));
+  FastForwardBy(base::Minutes(10) - base::TimeDelta::FromInternalValue(1));
   EXPECT_TRUE(http_server_props_->IsAlternativeServiceBroken(
       cached_broken_service2, NetworkIsolationKey()));
   FastForwardBy(base::TimeDelta::FromInternalValue(1));
@@ -2261,7 +2253,7 @@
       features::kPartitionHttpServerPropertiesByNetworkIsolationKey);
 
   // Create three alt service vectors of different lengths.
-  base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = base::Time::Now() + base::Days(1);
   AlternativeServiceInfo alt_service1 =
       AlternativeServiceInfo::CreateQuicAlternativeServiceInfo(
           AlternativeService(kProtoQUIC, "foopy.c.youtube.com", 1234),
diff --git a/net/http/http_server_properties_unittest.cc b/net/http/http_server_properties_unittest.cc
index 924b464..e3bd3dc6 100644
--- a/net/http/http_server_properties_unittest.cc
+++ b/net/http/http_server_properties_unittest.cc
@@ -29,11 +29,10 @@
 namespace net {
 
 const base::TimeDelta BROKEN_ALT_SVC_EXPIRE_DELAYS[10] = {
-    base::TimeDelta::FromSeconds(300),   base::TimeDelta::FromSeconds(600),
-    base::TimeDelta::FromSeconds(1200),  base::TimeDelta::FromSeconds(2400),
-    base::TimeDelta::FromSeconds(4800),  base::TimeDelta::FromSeconds(9600),
-    base::TimeDelta::FromSeconds(19200), base::TimeDelta::FromSeconds(38400),
-    base::TimeDelta::FromSeconds(76800), base::TimeDelta::FromSeconds(153600),
+    base::Seconds(300),    base::Seconds(600),   base::Seconds(1200),
+    base::Seconds(2400),   base::Seconds(4800),  base::Seconds(9600),
+    base::Seconds(19200),  base::Seconds(38400), base::Seconds(76800),
+    base::Seconds(153600),
 };
 
 class HttpServerPropertiesPeer {
@@ -90,7 +89,7 @@
               test_tick_clock_,
               &test_clock_) {
     // Set |test_clock_| to some random time.
-    test_clock_.Advance(base::TimeDelta::FromSeconds(12345));
+    test_clock_.Advance(base::Seconds(12345));
 
     SchemefulSite site1(GURL("https://foo.test/"));
     network_isolation_key1_ = NetworkIsolationKey(site1, site1);
@@ -118,8 +117,7 @@
 
   void SetAlternativeService(const url::SchemeHostPort& origin,
                              const AlternativeService& alternative_service) {
-    const base::Time expiration =
-        test_clock_.Now() + base::TimeDelta::FromDays(1);
+    const base::Time expiration = test_clock_.Now() + base::Days(1);
     if (alternative_service.protocol == kProtoQUIC) {
       impl_.SetQuicAlternativeService(origin, NetworkIsolationKey(),
                                       alternative_service, expiration,
@@ -564,7 +562,7 @@
 
 TEST_F(AlternateProtocolServerPropertiesTest, ExcludeOrigin) {
   AlternativeServiceInfoVector alternative_service_info_vector;
-  base::Time expiration = test_clock_.Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = test_clock_.Now() + base::Days(1);
   // Same hostname, same port, TCP: should be ignored.
   AlternativeServiceInfo alternative_service_info1 =
       AlternativeServiceInfo::CreateHttp2AlternativeServiceInfo(
@@ -607,7 +605,7 @@
   url::SchemeHostPort test_server1("http", "foo1", 80);
   const AlternativeService alternative_service1(kProtoHTTP2, "bar1", 443);
   const base::Time now = test_clock_.Now();
-  base::Time expiration1 = now + base::TimeDelta::FromDays(1);
+  base::Time expiration1 = now + base::Days(1);
   // 1st entry in the memory.
   impl_.SetHttp2AlternativeService(test_server1, NetworkIsolationKey(),
                                    alternative_service1, expiration1);
@@ -617,7 +615,7 @@
   // |server_info_map| has an entry for |test_server2|.
   AlternativeServiceInfoVector alternative_service_info_vector;
   const AlternativeService alternative_service2(kProtoHTTP2, "bar2", 443);
-  base::Time expiration2 = now + base::TimeDelta::FromDays(2);
+  base::Time expiration2 = now + base::Days(2);
   alternative_service_info_vector.push_back(
       AlternativeServiceInfo::CreateHttp2AlternativeServiceInfo(
           alternative_service2, expiration2));
@@ -630,7 +628,7 @@
   std::unique_ptr<HttpServerProperties::ServerInfoMap> server_info_map =
       std::make_unique<HttpServerProperties::ServerInfoMap>();
   const AlternativeService alternative_service3(kProtoHTTP2, "bar3", 123);
-  base::Time expiration3 = now + base::TimeDelta::FromDays(3);
+  base::Time expiration3 = now + base::Days(3);
   const AlternativeServiceInfo alternative_service_info1 =
       AlternativeServiceInfo::CreateHttp2AlternativeServiceInfo(
           alternative_service3, expiration3);
@@ -641,7 +639,7 @@
 
   url::SchemeHostPort test_server3("http", "foo3", 80);
   const AlternativeService alternative_service4(kProtoHTTP2, "bar4", 1234);
-  base::Time expiration4 = now + base::TimeDelta::FromDays(4);
+  base::Time expiration4 = now + base::Days(4);
   const AlternativeServiceInfo alternative_service_info2 =
       AlternativeServiceInfo::CreateHttp2AlternativeServiceInfo(
           alternative_service4, expiration4);
@@ -775,7 +773,7 @@
   const AlternativeServiceInfoVector kAlternativeServices(
       {AlternativeServiceInfo::CreateHttp2AlternativeServiceInfo(
           AlternativeService(kProtoHTTP2, "foo", 443),
-          base::Time::Now() + base::TimeDelta::FromDays(1) /* expiration */)});
+          base::Time::Now() + base::Days(1) /* expiration */)});
 
   EXPECT_TRUE(impl_.GetAlternativeServiceInfos(kServer, network_isolation_key1_)
                   .empty());
@@ -879,7 +877,7 @@
 TEST_F(AlternateProtocolServerPropertiesTest, EmptyVector) {
   url::SchemeHostPort server("https", "foo", 443);
   const AlternativeService alternative_service(kProtoHTTP2, "bar", 443);
-  base::Time expiration = test_clock_.Now() - base::TimeDelta::FromDays(1);
+  base::Time expiration = test_clock_.Now() - base::Days(1);
   const AlternativeServiceInfo alternative_service_info =
       AlternativeServiceInfo::CreateHttp2AlternativeServiceInfo(
           alternative_service, expiration);
@@ -915,7 +913,7 @@
   url::SchemeHostPort server("https", "foo.c.youtube.com", 443);
   url::SchemeHostPort canonical_server("https", "bar.c.youtube.com", 443);
   const AlternativeService alternative_service(kProtoHTTP2, "", 443);
-  base::Time expiration = test_clock_.Now() - base::TimeDelta::FromDays(1);
+  base::Time expiration = test_clock_.Now() - base::Days(1);
   const AlternativeServiceInfo alternative_service_info =
       AlternativeServiceInfo::CreateHttp2AlternativeServiceInfo(
           alternative_service, expiration);
@@ -953,7 +951,7 @@
   url::SchemeHostPort server("https", "foo.c.youtube.com", 443);
   url::SchemeHostPort canonical_server("https", "bar.c.youtube.com", 443);
   const AlternativeService alternative_service(kProtoQUIC, "", 443);
-  base::Time expiration = test_clock_.Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = test_clock_.Now() + base::Days(1);
   const AlternativeServiceInfo alternative_service_info =
       AlternativeServiceInfo::CreateQuicAlternativeServiceInfo(
           alternative_service, expiration, DefaultSupportedQuicVersions());
@@ -1040,7 +1038,7 @@
 
   // SetAlternativeServices should add a broken alternative service to the map.
   AlternativeServiceInfoVector alternative_service_info_vector2;
-  base::Time expiration = test_clock_.Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = test_clock_.Now() + base::Days(1);
   alternative_service_info_vector2.push_back(
       AlternativeServiceInfo::CreateHttp2AlternativeServiceInfo(
           alternative_service1, expiration));
@@ -1100,7 +1098,7 @@
 
   // SetAlternativeServices should add a broken alternative service to the map.
   AlternativeServiceInfoVector alternative_service_info_vector2;
-  base::Time expiration = test_clock_.Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = test_clock_.Now() + base::Days(1);
   alternative_service_info_vector2.push_back(
       AlternativeServiceInfo::CreateHttp2AlternativeServiceInfo(
           alternative_service1, expiration));
@@ -1136,7 +1134,7 @@
 TEST_F(AlternateProtocolServerPropertiesTest, MaxAge) {
   AlternativeServiceInfoVector alternative_service_info_vector;
   base::Time now = test_clock_.Now();
-  base::TimeDelta one_day = base::TimeDelta::FromDays(1);
+  base::TimeDelta one_day = base::Days(1);
 
   // First alternative service expired one day ago, should not be returned by
   // GetAlternativeServiceInfos().
@@ -1166,7 +1164,7 @@
 TEST_F(AlternateProtocolServerPropertiesTest, MaxAgeCanonical) {
   AlternativeServiceInfoVector alternative_service_info_vector;
   base::Time now = test_clock_.Now();
-  base::TimeDelta one_day = base::TimeDelta::FromDays(1);
+  base::TimeDelta one_day = base::Days(1);
 
   // First alternative service expired one day ago, should not be returned by
   // GetAlternativeServiceInfos().
@@ -1197,7 +1195,7 @@
 TEST_F(AlternateProtocolServerPropertiesTest, AlternativeServiceWithScheme) {
   AlternativeServiceInfoVector alternative_service_info_vector;
   const AlternativeService alternative_service1(kProtoHTTP2, "foo", 443);
-  base::Time expiration = test_clock_.Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = test_clock_.Now() + base::Days(1);
   alternative_service_info_vector.push_back(
       AlternativeServiceInfo::CreateHttp2AlternativeServiceInfo(
           alternative_service1, expiration));
@@ -1253,7 +1251,7 @@
 TEST_F(AlternateProtocolServerPropertiesTest, ClearAlternativeServices) {
   AlternativeServiceInfoVector alternative_service_info_vector;
   const AlternativeService alternative_service1(kProtoHTTP2, "foo", 443);
-  base::Time expiration = test_clock_.Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = test_clock_.Now() + base::Days(1);
   alternative_service_info_vector.push_back(
       AlternativeServiceInfo::CreateHttp2AlternativeServiceInfo(
           alternative_service1, expiration));
@@ -1335,8 +1333,7 @@
        MarkBrokenWithNetworkIsolationKey) {
   url::SchemeHostPort server("http", "foo", 80);
   const AlternativeService alternative_service(kProtoHTTP2, "foo", 443);
-  const base::Time expiration =
-      test_clock_.Now() + base::TimeDelta::FromDays(1);
+  const base::Time expiration = test_clock_.Now() + base::Days(1);
 
   // Without NetworkIsolationKeys enabled, the NetworkIsolationKey parameter
   // should be ignored.
@@ -1468,8 +1465,7 @@
        MarkRecentlyBrokenWithNetworkIsolationKey) {
   url::SchemeHostPort server("http", "foo", 80);
   const AlternativeService alternative_service(kProtoHTTP2, "foo", 443);
-  const base::Time expiration =
-      test_clock_.Now() + base::TimeDelta::FromDays(1);
+  const base::Time expiration = test_clock_.Now() + base::Days(1);
 
   // Without NetworkIsolationKeys enabled, the NetworkIsolationKey parameter
   // should be ignored.
@@ -1601,8 +1597,7 @@
        MarkBrokenUntilDefaultNetworkChangesWithNetworkIsolationKey) {
   url::SchemeHostPort server("http", "foo", 80);
   const AlternativeService alternative_service(kProtoHTTP2, "foo", 443);
-  const base::Time expiration =
-      test_clock_.Now() + base::TimeDelta::FromDays(1);
+  const base::Time expiration = test_clock_.Now() + base::Days(1);
 
   // Without NetworkIsolationKeys enabled, the NetworkIsolationKey parameter
   // should be ignored.
@@ -1784,8 +1779,7 @@
                                   nullptr /* net_log */, test_tick_clock_,
                                   &test_clock_);
 
-  const base::Time expiration =
-      test_clock_.Now() + base::TimeDelta::FromDays(1);
+  const base::Time expiration = test_clock_.Now() + base::Days(1);
   properties.SetHttp2AlternativeService(server, network_isolation_key1_,
                                         alternative_service, expiration);
   properties.SetHttp2AlternativeService(server, network_isolation_key2_,
@@ -1835,7 +1829,7 @@
   AlternativeServiceInfoVector alternative_service_info_vector;
   const AlternativeService canonical_alternative_service1(
       kProtoQUIC, "bar.c.youtube.com", 1234);
-  base::Time expiration = test_clock_.Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = test_clock_.Now() + base::Days(1);
   alternative_service_info_vector.push_back(
       AlternativeServiceInfo::CreateQuicAlternativeServiceInfo(
           canonical_alternative_service1, expiration,
@@ -1905,7 +1899,7 @@
   AlternativeServiceInfoVector alternative_service_info_vector;
   const AlternativeService canonical_alternative_service1(
       kProtoQUIC, "bar.c.youtube.com", 1234);
-  base::Time expiration = test_clock_.Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = test_clock_.Now() + base::Days(1);
   alternative_service_info_vector.push_back(
       AlternativeServiceInfo::CreateQuicAlternativeServiceInfo(
           canonical_alternative_service1, expiration,
@@ -2046,8 +2040,7 @@
   EXPECT_FALSE(impl_.WasAlternativeServiceRecentlyBroken(
       alternative_service, NetworkIsolationKey()));
 
-  base::TimeTicks past =
-      test_tick_clock_->NowTicks() - base::TimeDelta::FromSeconds(42);
+  base::TimeTicks past = test_tick_clock_->NowTicks() - base::Seconds(42);
   HttpServerPropertiesPeer::AddBrokenAlternativeServiceWithExpirationTime(
       &impl_, alternative_service, past);
   EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service,
@@ -2067,12 +2060,9 @@
        ExpireBrokenAlternateProtocolMappingsWithNetworkIsolationKey) {
   url::SchemeHostPort server("https", "foo", 443);
   AlternativeService alternative_service(kProtoHTTP2, "foo", 444);
-  base::TimeTicks past =
-      test_tick_clock_->NowTicks() - base::TimeDelta::FromSeconds(42);
-  base::TimeTicks future =
-      test_tick_clock_->NowTicks() + base::TimeDelta::FromSeconds(42);
-  const base::Time alt_service_expiration =
-      test_clock_.Now() + base::TimeDelta::FromDays(1);
+  base::TimeTicks past = test_tick_clock_->NowTicks() - base::Seconds(42);
+  base::TimeTicks future = test_tick_clock_->NowTicks() + base::Seconds(42);
+  const base::Time alt_service_expiration = test_clock_.Now() + base::Days(1);
 
   base::test::ScopedFeatureList feature_list;
   feature_list.InitAndEnableFeature(
@@ -2167,8 +2157,7 @@
   EXPECT_TRUE(HasAlternativeService(bar_server2, NetworkIsolationKey()));
 
   // Mark "bar:443" as broken.
-  base::TimeTicks past =
-      test_tick_clock_->NowTicks() - base::TimeDelta::FromSeconds(42);
+  base::TimeTicks past = test_tick_clock_->NowTicks() - base::Seconds(42);
   HttpServerPropertiesPeer::AddBrokenAlternativeServiceWithExpirationTime(
       &impl_, bar_alternative_service, past);
 
@@ -2271,8 +2260,7 @@
   impl_.SetSupportsSpdy(kServer2, NetworkIsolationKey(), false);
 
   // Mark kAltService as broken.
-  base::TimeTicks past =
-      test_tick_clock_->NowTicks() - base::TimeDelta::FromSeconds(42);
+  base::TimeTicks past = test_tick_clock_->NowTicks() - base::Seconds(42);
   HttpServerPropertiesPeer::AddBrokenAlternativeServiceWithExpirationTime(
       &impl_, kAltService, past);
 
@@ -2301,16 +2289,15 @@
   AlternativeServiceInfoVector alternative_service_info_vector;
   alternative_service_info_vector.push_back(
       AlternativeServiceInfo::CreateHttp2AlternativeServiceInfo(
-          AlternativeService(kProtoHTTP2, "foo", 443),
-          now + base::TimeDelta::FromMinutes(1)));
+          AlternativeService(kProtoHTTP2, "foo", 443), now + base::Minutes(1)));
   alternative_service_info_vector.push_back(
       AlternativeServiceInfo::CreateQuicAlternativeServiceInfo(
-          AlternativeService(kProtoQUIC, "bar", 443),
-          now + base::TimeDelta::FromHours(1), DefaultSupportedQuicVersions()));
+          AlternativeService(kProtoQUIC, "bar", 443), now + base::Hours(1),
+          DefaultSupportedQuicVersions()));
   alternative_service_info_vector.push_back(
       AlternativeServiceInfo::CreateQuicAlternativeServiceInfo(
-          AlternativeService(kProtoQUIC, "baz", 443),
-          now + base::TimeDelta::FromHours(1), DefaultSupportedQuicVersions()));
+          AlternativeService(kProtoQUIC, "baz", 443), now + base::Hours(1),
+          DefaultSupportedQuicVersions()));
 
   impl_.SetAlternativeServices(url::SchemeHostPort("https", "youtube.com", 443),
                                NetworkIsolationKey(),
@@ -2325,8 +2312,7 @@
   alternative_service_info_vector.clear();
   alternative_service_info_vector.push_back(
       AlternativeServiceInfo::CreateHttp2AlternativeServiceInfo(
-          AlternativeService(kProtoHTTP2, "foo2", 443),
-          now + base::TimeDelta::FromDays(1)));
+          AlternativeService(kProtoHTTP2, "foo2", 443), now + base::Days(1)));
   impl_.SetAlternativeServices(url::SchemeHostPort("http", "test.com", 80),
                                NetworkIsolationKey(),
                                alternative_service_info_vector);
@@ -2452,7 +2438,7 @@
 
   // Check by initializing with www.google.com:443.
   ServerNetworkStats stats_google;
-  stats_google.srtt = base::TimeDelta::FromMicroseconds(10);
+  stats_google.srtt = base::Microseconds(10);
   stats_google.bandwidth_estimate = quic::QuicBandwidth::FromBitsPerSecond(100);
   load_server_info_map =
       std::make_unique<HttpServerProperties::ServerInfoMap>();
@@ -2472,7 +2458,7 @@
   // entry for |docs_server|.
   url::SchemeHostPort docs_server("https", "docs.google.com", 443);
   ServerNetworkStats stats_docs;
-  stats_docs.srtt = base::TimeDelta::FromMicroseconds(20);
+  stats_docs.srtt = base::Microseconds(20);
   stats_docs.bandwidth_estimate = quic::QuicBandwidth::FromBitsPerSecond(200);
   // Recency order will be |docs_server| and |google_server|.
   impl_.SetServerNetworkStats(docs_server, NetworkIsolationKey(), stats_docs);
@@ -2483,7 +2469,7 @@
 
   // Change the values for |docs_server|.
   ServerNetworkStats new_stats_docs;
-  new_stats_docs.srtt = base::TimeDelta::FromMicroseconds(25);
+  new_stats_docs.srtt = base::Microseconds(25);
   new_stats_docs.bandwidth_estimate =
       quic::QuicBandwidth::FromBitsPerSecond(250);
   server_info_map->GetOrPut(CreateSimpleKey(docs_server))
@@ -2491,7 +2477,7 @@
   // Add data for mail.google.com:443.
   url::SchemeHostPort mail_server("https", "mail.google.com", 443);
   ServerNetworkStats stats_mail;
-  stats_mail.srtt = base::TimeDelta::FromMicroseconds(30);
+  stats_mail.srtt = base::Microseconds(30);
   stats_mail.bandwidth_estimate = quic::QuicBandwidth::FromBitsPerSecond(300);
   server_info_map->GetOrPut(CreateSimpleKey(mail_server))
       ->second.server_network_stats = stats_mail;
@@ -2529,7 +2515,7 @@
                                                  NetworkIsolationKey()));
 
   ServerNetworkStats stats1;
-  stats1.srtt = base::TimeDelta::FromMicroseconds(10);
+  stats1.srtt = base::Microseconds(10);
   stats1.bandwidth_estimate = quic::QuicBandwidth::FromBitsPerSecond(100);
   impl_.SetServerNetworkStats(foo_http_server, NetworkIsolationKey(), stats1);
 
@@ -2550,7 +2536,7 @@
 
 TEST_F(HttpServerPropertiesTest, ClearServerNetworkStats) {
   ServerNetworkStats stats;
-  stats.srtt = base::TimeDelta::FromMicroseconds(10);
+  stats.srtt = base::Microseconds(10);
   stats.bandwidth_estimate = quic::QuicBandwidth::FromBitsPerSecond(100);
   url::SchemeHostPort foo_https_server("https", "foo", 443);
   impl_.SetServerNetworkStats(foo_https_server, NetworkIsolationKey(), stats);
diff --git a/net/http/http_stream_factory_job.cc b/net/http/http_stream_factory_job.cc
index 938c1bd6..5572016 100644
--- a/net/http/http_stream_factory_job.cc
+++ b/net/http/http_stream_factory_job.cc
@@ -760,8 +760,7 @@
           net_log_.AddEvent(NetLogEventType::HTTP_STREAM_JOB_THROTTLED);
           next_state_ = STATE_INIT_CONNECTION;
           base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-              FROM_HERE, resume_callback,
-              base::TimeDelta::FromMilliseconds(kHTTP2ThrottleMs));
+              FROM_HERE, resume_callback, base::Milliseconds(kHTTP2ThrottleMs));
           return ERR_IO_PENDING;
         }
       } else if (enable_ip_based_pooling_) {
diff --git a/net/http/http_stream_factory_job_controller.cc b/net/http/http_stream_factory_job_controller.cc
index 3f0eb5b..38a8b9e 100644
--- a/net/http/http_stream_factory_job_controller.cc
+++ b/net/http/http_stream_factory_job_controller.cc
@@ -583,8 +583,8 @@
 void HttpStreamFactory::JobController::MaybeSetWaitTimeForMainJob(
     const base::TimeDelta& delay) {
   if (main_job_is_blocked_) {
-    main_job_wait_time_ = std::min(
-        delay, base::TimeDelta::FromSeconds(kMaxDelayTimeForMainJobSecs));
+    main_job_wait_time_ =
+        std::min(delay, base::Seconds(kMaxDelayTimeForMainJobSecs));
   }
 }
 
diff --git a/net/http/http_stream_factory_job_controller_unittest.cc b/net/http/http_stream_factory_job_controller_unittest.cc
index f6e4bdc9..66bc49a 100644
--- a/net/http/http_stream_factory_job_controller_unittest.cc
+++ b/net/http/http_stream_factory_job_controller_unittest.cc
@@ -282,7 +282,7 @@
   void SetAlternativeService(const HttpRequestInfo& request_info,
                              AlternativeService alternative_service) {
     url::SchemeHostPort server(request_info.url);
-    base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+    base::Time expiration = base::Time::Now() + base::Days(1);
     if (alternative_service.protocol == kProtoQUIC) {
       session_->http_server_properties()->SetQuicAlternativeService(
           server, NetworkIsolationKey(), alternative_service, expiration,
@@ -775,7 +775,7 @@
   Initialize(request_info);
   url::SchemeHostPort server(request_info.url);
   AlternativeService alternative_service(kProtoQUIC, server.host(), 443);
-  base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = base::Time::Now() + base::Days(1);
   session_->http_server_properties()->SetQuicAlternativeService(
       server, NetworkIsolationKey(), alternative_service, expiration,
       {quic::ParsedQuicVersion::Unsupported()});
@@ -807,7 +807,7 @@
   Initialize(request_info);
   url::SchemeHostPort server(request_info.url);
   AlternativeService alternative_service(kProtoQUIC, server.host(), 443);
-  base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = base::Time::Now() + base::Days(1);
   session_->http_server_properties()->SetQuicAlternativeService(
       server, NetworkIsolationKey(), alternative_service, expiration,
       quic_context_.params()->supported_versions);
@@ -865,7 +865,7 @@
   Initialize(request_info);
   url::SchemeHostPort server(request_info.url);
   AlternativeService alternative_service(kProtoQUIC, server.host(), 443);
-  base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = base::Time::Now() + base::Days(1);
   session_->http_server_properties()->SetQuicAlternativeService(
       server, NetworkIsolationKey(), alternative_service, expiration,
       quic_context_.params()->supported_versions);
@@ -1776,7 +1776,7 @@
   QuicStreamFactory* quic_stream_factory = session_->quic_stream_factory();
   quic_stream_factory->set_is_quic_known_to_work_on_current_network(true);
   ServerNetworkStats stats1;
-  stats1.srtt = base::TimeDelta::FromMicroseconds(10);
+  stats1.srtt = base::Microseconds(10);
   session_->http_server_properties()->SetServerNetworkStats(
       url::SchemeHostPort(GURL("https://www.google.com")),
       NetworkIsolationKey(), stats1);
@@ -1800,7 +1800,7 @@
   // Since the alt job has not finished host resolution, there should be no
   // delayed task posted to resume the main job.
   EXPECT_CALL(*job_factory_.main_job(), Resume()).Times(0);
-  FastForwardBy(base::TimeDelta::FromMicroseconds(50));
+  FastForwardBy(base::Microseconds(50));
   EXPECT_TRUE(JobControllerPeer::main_job_is_blocked(job_controller_));
 
   // Allow alt job host resolution to complete.
@@ -1809,9 +1809,9 @@
   // Task to resume main job in 15 microseconds should be posted.
   EXPECT_NE(0u, GetPendingMainThreadTaskCount());
   EXPECT_CALL(*job_factory_.main_job(), Resume()).Times(0);
-  FastForwardBy(base::TimeDelta::FromMicroseconds(14));
+  FastForwardBy(base::Microseconds(14));
   EXPECT_CALL(*job_factory_.main_job(), Resume()).Times(1);
-  FastForwardBy(base::TimeDelta::FromMicroseconds(1));
+  FastForwardBy(base::Microseconds(1));
 
   EXPECT_TRUE(job_controller_->main_job());
   EXPECT_TRUE(job_controller_->alternative_job());
@@ -1849,7 +1849,7 @@
   QuicStreamFactory* quic_stream_factory = session_->quic_stream_factory();
   quic_stream_factory->set_is_quic_known_to_work_on_current_network(true);
   ServerNetworkStats stats1;
-  stats1.srtt = base::TimeDelta::FromMicroseconds(10);
+  stats1.srtt = base::Microseconds(10);
   session_->http_server_properties()->SetServerNetworkStats(
       url::SchemeHostPort(GURL("https://www.google.com")),
       NetworkIsolationKey(), stats1);
@@ -1876,9 +1876,9 @@
   // Task to resume main job in 15us should be posted.
   EXPECT_NE(0u, GetPendingMainThreadTaskCount());
   EXPECT_CALL(*job_factory_.main_job(), Resume()).Times(0);
-  FastForwardBy(base::TimeDelta::FromMicroseconds(14));
+  FastForwardBy(base::Microseconds(14));
   EXPECT_CALL(*job_factory_.main_job(), Resume()).Times(1);
-  FastForwardBy(base::TimeDelta::FromMicroseconds(1));
+  FastForwardBy(base::Microseconds(1));
 
   EXPECT_TRUE(job_controller_->main_job());
   EXPECT_TRUE(job_controller_->alternative_job());
@@ -1913,7 +1913,7 @@
   QuicStreamFactory* quic_stream_factory = session_->quic_stream_factory();
   quic_stream_factory->set_is_quic_known_to_work_on_current_network(true);
   ServerNetworkStats stats1;
-  stats1.srtt = base::TimeDelta::FromMicroseconds(10);
+  stats1.srtt = base::Microseconds(10);
   session_->http_server_properties()->SetServerNetworkStats(
       url::SchemeHostPort(GURL("https://www.google.com")),
       NetworkIsolationKey(), stats1);
@@ -1936,7 +1936,7 @@
       .WillOnce(Invoke([&run_loop]() { run_loop.Quit(); }));
   job_controller_->OnStreamFailed(job_factory_.alternative_job(),
                                   ERR_QUIC_PROTOCOL_ERROR, SSLConfig());
-  FastForwardBy(base::TimeDelta::FromMicroseconds(0));
+  FastForwardBy(base::Microseconds(0));
   run_loop.Run();
   EXPECT_FALSE(job_controller_->alternative_job());
 
@@ -1960,7 +1960,7 @@
   // There shouldn't be any ResumeMainJobLater() delayed tasks.
   // This EXPECT_CALL will fail before crbug.com/789560 fix.
   EXPECT_CALL(*job_factory_.main_job(), Resume()).Times(0);
-  FastForwardBy(base::TimeDelta::FromMicroseconds(15));
+  FastForwardBy(base::Microseconds(15));
 
   EXPECT_TRUE(job_controller_->main_job());
   request_.reset();
@@ -1972,7 +1972,7 @@
 // delayed tcp case.
 TEST_F(HttpStreamFactoryJobControllerTest, DelayedTCPWithLargeSrtt) {
   // The max delay time should be in sync with .cc file.
-  base::TimeDelta kMaxDelayTimeForMainJob = base::TimeDelta::FromSeconds(3);
+  base::TimeDelta kMaxDelayTimeForMainJob = base::Seconds(3);
 
   HttpRequestInfo request_info;
   request_info.method = "GET";
@@ -1991,7 +1991,7 @@
   QuicStreamFactory* quic_stream_factory = session_->quic_stream_factory();
   quic_stream_factory->set_is_quic_known_to_work_on_current_network(true);
   ServerNetworkStats stats1;
-  stats1.srtt = base::TimeDelta::FromSeconds(100);
+  stats1.srtt = base::Seconds(100);
   session_->http_server_properties()->SetServerNetworkStats(
       url::SchemeHostPort(GURL("https://www.google.com")),
       NetworkIsolationKey(), stats1);
@@ -2017,9 +2017,9 @@
   // Task to resume main job in 3 seconds should be posted.
   EXPECT_NE(0u, GetPendingMainThreadTaskCount());
   EXPECT_CALL(*job_factory_.main_job(), Resume()).Times(0);
-  FastForwardBy(kMaxDelayTimeForMainJob - base::TimeDelta::FromMicroseconds(1));
+  FastForwardBy(kMaxDelayTimeForMainJob - base::Microseconds(1));
   EXPECT_CALL(*job_factory_.main_job(), Resume()).Times(1);
-  FastForwardBy(base::TimeDelta::FromMicroseconds(1));
+  FastForwardBy(base::Microseconds(1));
 
   EXPECT_TRUE(job_controller_->main_job());
   EXPECT_TRUE(job_controller_->alternative_job());
@@ -2053,7 +2053,7 @@
   QuicStreamFactory* quic_stream_factory = session_->quic_stream_factory();
   quic_stream_factory->set_is_quic_known_to_work_on_current_network(true);
   ServerNetworkStats stats1;
-  stats1.srtt = base::TimeDelta::FromMicroseconds(10);
+  stats1.srtt = base::Microseconds(10);
   session_->http_server_properties()->SetServerNetworkStats(
       url::SchemeHostPort(GURL("https://www.google.com")),
       NetworkIsolationKey(), stats1);
@@ -2081,7 +2081,7 @@
   EXPECT_NE(0u, GetPendingMainThreadTaskCount());
 
   EXPECT_CALL(*job_factory_.main_job(), Resume()).Times(0);
-  FastForwardBy(base::TimeDelta::FromMicroseconds(1));
+  FastForwardBy(base::Microseconds(1));
 
   // Now unpause the mock quic data to fail the alt job. This should immediately
   // resume the main job.
@@ -2097,7 +2097,7 @@
   // not call Resume() on the main job as main job has been resumed.
   EXPECT_NE(0u, GetPendingMainThreadTaskCount());
   EXPECT_CALL(*job_factory_.main_job(), Resume()).Times(0);
-  FastForwardBy(base::TimeDelta::FromMicroseconds(15));
+  FastForwardBy(base::Microseconds(15));
 
   FastForwardUntilNoTasksRemain();
 }
@@ -2532,8 +2532,7 @@
   }
 
   EXPECT_GT(GetPendingMainThreadTaskCount(), 0u);
-  FastForwardBy(base::TimeDelta::FromMilliseconds(
-      HttpStreamFactory::Job::kHTTP2ThrottleMs));
+  FastForwardBy(base::Milliseconds(HttpStreamFactory::Job::kHTTP2ThrottleMs));
   base::RunLoop().RunUntilIdle();
 
   EXPECT_FALSE(HttpStreamFactoryPeer::IsJobControllerDeleted(factory_));
@@ -2909,7 +2908,7 @@
   Initialize(request_info);
   url::SchemeHostPort server(request_info.url);
   AlternativeService alternative_service(kProtoQUIC, server.host(), 443);
-  base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = base::Time::Now() + base::Days(1);
 
   // Set alternative service with no advertised version.
   session_->http_server_properties()->SetQuicAlternativeService(
@@ -3101,7 +3100,7 @@
 
   // Set alternative service for www.google.com to be www.example.com over QUIC.
   url::SchemeHostPort server(request_info.url);
-  base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = base::Time::Now() + base::Days(1);
   quic::ParsedQuicVersionVector supported_versions =
       quic_context_.params()->supported_versions;
   session_->http_server_properties()->SetQuicAlternativeService(
diff --git a/net/http/http_stream_factory_unittest.cc b/net/http/http_stream_factory_unittest.cc
index 5486b105e..859f838 100644
--- a/net/http/http_stream_factory_unittest.cc
+++ b/net/http/http_stream_factory_unittest.cc
@@ -998,7 +998,7 @@
     HttpServerProperties http_server_properties;
     const AlternativeService alternative_service(kProtoQUIC, url.host().c_str(),
                                                  url.IntPort());
-    base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+    base::Time expiration = base::Time::Now() + base::Days(1);
     HostPortPair host_port_pair(alternative_service.host_port_pair());
     url::SchemeHostPort server("https", host_port_pair.host(),
                                host_port_pair.port());
@@ -2047,7 +2047,7 @@
                                  const std::string& alternative_destination) {
     const AlternativeService alternative_service(kProtoQUIC,
                                                  alternative_destination, 443);
-    base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+    base::Time expiration = base::Time::Now() + base::Days(1);
     http_server_properties_.SetQuicAlternativeService(
         request_url, NetworkIsolationKey(), alternative_service, expiration,
         session_->context().quic_context->params()->supported_versions);
@@ -3567,8 +3567,7 @@
   http_server_properties_.SetAlternativeServices(
       origin, network_isolation_key,
       {AlternativeServiceInfo::CreateQuicAlternativeServiceInfo(
-          {kProtoQUIC, "", 443},
-          base::Time::Now() + base::TimeDelta::FromSeconds(30),
+          {kProtoQUIC, "", 443}, base::Time::Now() + base::Seconds(30),
           quic::AllSupportedVersions())});
 
   EXPECT_FALSE(http_server_properties_
diff --git a/net/http/http_stream_parser_unittest.cc b/net/http/http_stream_parser_unittest.cc
index 545b9f1..8d96ce71 100644
--- a/net/http/http_stream_parser_unittest.cc
+++ b/net/http/http_stream_parser_unittest.cc
@@ -1700,13 +1700,13 @@
 
   EXPECT_THAT(parser.ReadResponseHeaders(callback.callback()),
               IsError(ERR_IO_PENDING));
-  task_environment.AdvanceClock(base::TimeDelta::FromSeconds(1));
+  task_environment.AdvanceClock(base::Seconds(1));
 
   // [seq=1 --> seq=2] The parser reads the first fragment of the response
   // headers and then pauses to advance the mock clock.
   base::TimeTicks first_response_start_time = task_environment.NowTicks();
   sequenced_socket_data.RunUntilPaused();
-  task_environment.AdvanceClock(base::TimeDelta::FromSeconds(1));
+  task_environment.AdvanceClock(base::Seconds(1));
 
   // [seq=3] The parser reads the second fragment of the response headers.
   sequenced_socket_data.Resume();
@@ -1797,7 +1797,7 @@
   // response headers and then pauses to advance the mock clock.
   base::TimeTicks first_response_start_time = task_environment.NowTicks();
   sequenced_socket_data.RunUntilPaused();
-  task_environment.AdvanceClock(base::TimeDelta::FromSeconds(1));
+  task_environment.AdvanceClock(base::Seconds(1));
 
   // [seq=3] The parser reads the second fragment of the informational response
   // headers.
@@ -1813,7 +1813,7 @@
 
   // [seq=4] The parser pauses to advance the clock.
   sequenced_socket_data.RunUntilPaused();
-  task_environment.AdvanceClock(base::TimeDelta::FromSeconds(1));
+  task_environment.AdvanceClock(base::Seconds(1));
 
   // [seq=5 --> seq=6] The parser reads the first fragment of the
   // non-informational response headers and then pauses to advance the mock
@@ -1822,13 +1822,13 @@
       task_environment.NowTicks();
   sequenced_socket_data.Resume();
   sequenced_socket_data.RunUntilPaused();
-  task_environment.AdvanceClock(base::TimeDelta::FromSeconds(1));
+  task_environment.AdvanceClock(base::Seconds(1));
 
   // [seq=7] The parser reads the second fragment of the non-informational
   // response headers.
   sequenced_socket_data.Resume();
   EXPECT_THAT(callback.WaitForResult(), IsOk());
-  task_environment.AdvanceClock(base::TimeDelta::FromSeconds(1));
+  task_environment.AdvanceClock(base::Seconds(1));
 
   // Check the received headers.
   EXPECT_EQ(200, response.headers->response_code());
@@ -1930,13 +1930,13 @@
   // response headers and then pauses to advance the mock clock.
   base::TimeTicks first_response_start_time = task_environment.NowTicks();
   sequenced_socket_data.RunUntilPaused();
-  task_environment.AdvanceClock(base::TimeDelta::FromSeconds(1));
+  task_environment.AdvanceClock(base::Seconds(1));
 
   // [seq=3 --> seq=4] The parser reads the second fragment of the informational
   // response headers and then pauses to advance the mock clock.
   sequenced_socket_data.Resume();
   sequenced_socket_data.RunUntilPaused();
-  task_environment.AdvanceClock(base::TimeDelta::FromSeconds(1));
+  task_environment.AdvanceClock(base::Seconds(1));
 
   // [seq=5] The parser reads the third fragment of the informational response
   // headers.
@@ -1952,7 +1952,7 @@
 
   // [seq=6] The parser pauses to advance the clock.
   sequenced_socket_data.RunUntilPaused();
-  task_environment.AdvanceClock(base::TimeDelta::FromSeconds(1));
+  task_environment.AdvanceClock(base::Seconds(1));
 
   // [seq=7 --> seq=8] The parser reads the first fragment of the
   // non-informational response headers and then pauses to advance the mock
@@ -1961,13 +1961,13 @@
       task_environment.NowTicks();
   sequenced_socket_data.Resume();
   sequenced_socket_data.RunUntilPaused();
-  task_environment.AdvanceClock(base::TimeDelta::FromSeconds(1));
+  task_environment.AdvanceClock(base::Seconds(1));
 
   // [seq=9] The parser reads the second fragment of the non-informational
   // response headers.
   sequenced_socket_data.Resume();
   EXPECT_THAT(callback.WaitForResult(), IsOk());
-  task_environment.AdvanceClock(base::TimeDelta::FromSeconds(1));
+  task_environment.AdvanceClock(base::Seconds(1));
 
   // Check the received headers.
   EXPECT_EQ(200, response.headers->response_code());
@@ -2061,7 +2061,7 @@
   // response headers and then pauses to advance the mock clock.
   base::TimeTicks first_response_start_time = task_environment.NowTicks();
   sequenced_socket_data.RunUntilPaused();
-  task_environment.AdvanceClock(base::TimeDelta::FromSeconds(1));
+  task_environment.AdvanceClock(base::Seconds(1));
 
   // [seq=3] The parser reads the second fragment of the informational response
   // headers.
@@ -2081,7 +2081,7 @@
   base::TimeTicks non_informational_response_start_time =
       task_environment.NowTicks();
   sequenced_socket_data.RunUntilPaused();
-  task_environment.AdvanceClock(base::TimeDelta::FromSeconds(1));
+  task_environment.AdvanceClock(base::Seconds(1));
 
   // [seq=5] The parser reads the second fragment of the non-informational
   // response headers.
diff --git a/net/http/http_util.cc b/net/http/http_util.cc
index 8a32b30..32948a3b 100644
--- a/net/http/http_util.cc
+++ b/net/http/http_util.cc
@@ -267,14 +267,14 @@
   base::TimeDelta interval;
 
   if (net::ParseUint32(retry_after_string, &seconds)) {
-    interval = base::TimeDelta::FromSeconds(seconds);
+    interval = base::Seconds(seconds);
   } else if (base::Time::FromUTCString(retry_after_string.c_str(), &time)) {
     interval = time - now;
   } else {
     return false;
   }
 
-  if (interval < base::TimeDelta::FromSeconds(0))
+  if (interval < base::Seconds(0))
     return false;
 
   *retry_after = interval;
diff --git a/net/http/http_util_unittest.cc b/net/http/http_util_unittest.cc
index 5b7b6a18..7ba495f 100644
--- a/net/http/http_util_unittest.cc
+++ b/net/http/http_util_unittest.cc
@@ -1087,13 +1087,13 @@
                {"-1", false, base::TimeDelta()},
                {"+0", false, base::TimeDelta()},
                {"+1", false, base::TimeDelta()},
-               {"0", true, base::TimeDelta::FromSeconds(0)},
-               {"1", true, base::TimeDelta::FromSeconds(1)},
-               {"2", true, base::TimeDelta::FromSeconds(2)},
-               {"3", true, base::TimeDelta::FromSeconds(3)},
-               {"60", true, base::TimeDelta::FromSeconds(60)},
-               {"3600", true, base::TimeDelta::FromSeconds(3600)},
-               {"86400", true, base::TimeDelta::FromSeconds(86400)},
+               {"0", true, base::Seconds(0)},
+               {"1", true, base::Seconds(1)},
+               {"2", true, base::Seconds(2)},
+               {"3", true, base::Seconds(3)},
+               {"60", true, base::Seconds(60)},
+               {"3600", true, base::Seconds(3600)},
+               {"86400", true, base::Seconds(86400)},
                {"Thu, 1 Jan 2015 12:34:56 GMT", true, later - now},
                {"Mon, 1 Jan 1900 12:34:56 GMT", false, base::TimeDelta()}};
 
diff --git a/net/http/transport_security_persister_unittest.cc b/net/http/transport_security_persister_unittest.cc
index a1f2ec3e..0789ae4e 100644
--- a/net/http/transport_security_persister_unittest.cc
+++ b/net/http/transport_security_persister_unittest.cc
@@ -44,7 +44,7 @@
     // Mock out time so that entries with hard-coded json data can be
     // successfully loaded. Use a large enough value that dynamically created
     // entries have at least somewhat interesting expiration times.
-    FastForwardBy(base::TimeDelta::FromDays(3660));
+    FastForwardBy(base::Days(3660));
   }
 
   ~TransportSecurityPersisterTest() override {
@@ -96,7 +96,7 @@
   TransportSecurityState::STSState sts_state;
   TransportSecurityState::ExpectCTState expect_ct_state;
   const base::Time current_time(base::Time::Now());
-  const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = current_time + base::Seconds(1000);
   static const char kYahooDomain[] = "yahoo.com";
 
   EXPECT_FALSE(state_->GetDynamicSTSState(kYahooDomain, &sts_state));
@@ -132,7 +132,7 @@
 TEST_P(TransportSecurityPersisterTest, SerializeData2) {
   TransportSecurityState::STSState sts_state;
   const base::Time current_time(base::Time::Now());
-  const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = current_time + base::Seconds(1000);
   static const char kYahooDomain[] = "yahoo.com";
 
   EXPECT_FALSE(state_->GetDynamicSTSState(kYahooDomain, &sts_state));
@@ -164,16 +164,14 @@
       TransportSecurityState::kDynamicExpectCTFeature);
   const GURL report_uri(kReportUri);
   // Add an entry.
-  base::Time expiry =
-      base::Time::Now() + base::TimeDelta::FromSeconds(1000);
+  base::Time expiry = base::Time::Now() + base::Seconds(1000);
   bool include_subdomains = false;
   state_->AddHSTS("www.example.com", expiry, include_subdomains);
   state_->AddExpectCT("www.example.com", expiry, true /* enforce */, GURL(),
                       NetworkIsolationKey());
 
   // Add another entry.
-  expiry =
-      base::Time::Now() + base::TimeDelta::FromSeconds(3000);
+  expiry = base::Time::Now() + base::Seconds(3000);
   state_->AddHSTS("www.example.net", expiry, include_subdomains);
   state_->AddExpectCT("www.example.net", expiry, false /* enforce */,
                       report_uri, NetworkIsolationKey());
@@ -321,7 +319,7 @@
       kTestDomain, NetworkIsolationKey(), &expect_ct_state));
 
   const base::Time current_time(base::Time::Now());
-  const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = current_time + base::Seconds(1000);
   state_->AddExpectCT(kTestDomain, expiry, true /* enforce */, GURL(),
                       NetworkIsolationKey());
   std::string serialized;
@@ -364,7 +362,7 @@
       kTestDomain, NetworkIsolationKey(), &expect_ct_state));
 
   const base::Time current_time(base::Time::Now());
-  const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = current_time + base::Seconds(1000);
   state_->AddHSTS(kTestDomain, expiry, false /* include subdomains */);
   state_->AddExpectCT(kTestDomain, expiry, true /* enforce */, GURL(),
                       NetworkIsolationKey());
@@ -402,7 +400,7 @@
       kTestDomain, NetworkIsolationKey(), &expect_ct_state));
 
   const base::Time current_time(base::Time::Now());
-  const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = current_time + base::Seconds(1000);
   state_->AddExpectCT(kTestDomain, expiry, true /* enforce */, GURL(),
                       NetworkIsolationKey());
   std::string serialized;
@@ -432,9 +430,9 @@
       NetworkIsolationKey::CreateTransient();
 
   const base::Time current_time(base::Time::Now());
-  const base::Time expiry1 = current_time + base::TimeDelta::FromSeconds(1000);
-  const base::Time expiry2 = current_time + base::TimeDelta::FromSeconds(2000);
-  const base::Time expiry3 = current_time + base::TimeDelta::FromSeconds(3000);
+  const base::Time expiry1 = current_time + base::Seconds(1000);
+  const base::Time expiry2 = current_time + base::Seconds(2000);
+  const base::Time expiry3 = current_time + base::Seconds(3000);
 
   // Serialize data with kPartitionExpectCTStateByNetworkIsolationKey enabled,
   // and then revert the feature to its previous value.
@@ -519,8 +517,8 @@
   const NetworkIsolationKey network_isolation_key(kSite /* top_frame_site */,
                                                   kSite /* frame_site */);
   const base::Time current_time(base::Time::Now());
-  const base::Time expiry1 = current_time + base::TimeDelta::FromSeconds(1000);
-  const base::Time expiry2 = current_time + base::TimeDelta::FromSeconds(2000);
+  const base::Time expiry1 = current_time + base::Seconds(1000);
+  const base::Time expiry2 = current_time + base::Seconds(2000);
 
   // Serialize data.
   std::string serialized;
diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_state.cc
index 2e9761fb..a23f756 100644
--- a/net/http/transport_security_state.cc
+++ b/net/http/transport_security_state.cc
@@ -767,8 +767,7 @@
     return PKPStatus::VIOLATED;
   sent_hpkp_reports_cache_.Put(
       report_cache_key, true, base::TimeTicks::Now(),
-      base::TimeTicks::Now() +
-          base::TimeDelta::FromMinutes(kTimeToRememberReportsMins));
+      base::TimeTicks::Now() + base::Minutes(kTimeToRememberReportsMins));
 
   report_sender_->Send(pkp_state.report_uri, "application/json; charset=utf-8",
                        serialized_report, network_isolation_key,
@@ -818,8 +817,7 @@
   }
   sent_expect_ct_reports_cache_.Put(
       report_cache_key, true, base::TimeTicks::Now(),
-      base::TimeTicks::Now() +
-          base::TimeDelta::FromMinutes(kTimeToRememberReportsMins));
+      base::TimeTicks::Now() + base::Minutes(kTimeToRememberReportsMins));
 
   expect_ct_reporter_->OnExpectCTFailed(
       host_port_pair, report_uri, expiration, validated_certificate_chain,
@@ -1424,12 +1422,10 @@
     return;
 
   earliest_next_prune_expect_ct_time_ =
-      now +
-      base::TimeDelta::FromSeconds(features::kExpectCTPruneDelaySecs.Get());
+      now + base::Seconds(features::kExpectCTPruneDelaySecs.Get());
 
   base::Time last_prunable_observation_time =
-      now -
-      base::TimeDelta::FromDays(features::kExpectCTSafeFromPruneDays.Get());
+      now - base::Days(features::kExpectCTSafeFromPruneDays.Get());
 
   // Cache this locally, so don't have to repeatedly query the value.
   size_t expect_ct_prune_min = features::kExpectCTPruneMin.Get();
diff --git a/net/http/transport_security_state_ct_policies.inc b/net/http/transport_security_state_ct_policies.inc
index f7ea8e5..75f25ab 100644
--- a/net/http/transport_security_state_ct_policies.inc
+++ b/net/http/transport_security_state_ct_policies.inc
@@ -42,7 +42,7 @@
       {
           kSymantecRoots, kSymantecRootsLength,
           // 1 June 2016, 00:00:00 GMT.
-          base::TimeDelta::FromSeconds(1464739200),
+          base::Seconds(1464739200),
           kSymantecExceptions, kSymantecExceptionsLength,
       },
       {
diff --git a/net/http/transport_security_state_unittest.cc b/net/http/transport_security_state_unittest.cc
index 5d3fe56..0fccae7 100644
--- a/net/http/transport_security_state_unittest.cc
+++ b/net/http/transport_security_state_unittest.cc
@@ -363,7 +363,7 @@
     SetTransportSecurityStateSourceForTesting(&test_default::kHSTSSource);
     // Need mocked out time for pruning tests. Don't start with a
     // time of 0, as code doesn't generally expect it.
-    FastForwardBy(base::TimeDelta::FromDays(1));
+    FastForwardBy(base::Days(1));
   }
 
   ~TransportSecurityStateTest() override {
@@ -416,7 +416,7 @@
 TEST_F(TransportSecurityStateTest, DomainNameOddities) {
   TransportSecurityState state;
   const base::Time current_time(base::Time::Now());
-  const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = current_time + base::Seconds(1000);
 
   // DNS suffix search tests. Some DNS resolvers allow a terminal "." to
   // indicate not perform DNS suffix searching. Ensure that regardless
@@ -474,7 +474,7 @@
 TEST_F(TransportSecurityStateTest, SimpleMatches) {
   TransportSecurityState state;
   const base::Time current_time(base::Time::Now());
-  const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = current_time + base::Seconds(1000);
 
   EXPECT_FALSE(state.ShouldUpgradeToSSL("example.com"));
   bool include_subdomains = false;
@@ -488,7 +488,7 @@
 TEST_F(TransportSecurityStateTest, MatchesCase1) {
   TransportSecurityState state;
   const base::Time current_time(base::Time::Now());
-  const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = current_time + base::Seconds(1000);
 
   EXPECT_FALSE(state.ShouldUpgradeToSSL("example.com"));
   bool include_subdomains = false;
@@ -499,7 +499,7 @@
 TEST_F(TransportSecurityStateTest, MatchesCase2) {
   TransportSecurityState state;
   const base::Time current_time(base::Time::Now());
-  const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = current_time + base::Seconds(1000);
 
   // Check dynamic entries
   EXPECT_FALSE(state.ShouldUpgradeToSSL("EXample.coM"));
@@ -516,7 +516,7 @@
 TEST_F(TransportSecurityStateTest, SubdomainMatches) {
   TransportSecurityState state;
   const base::Time current_time(base::Time::Now());
-  const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = current_time + base::Seconds(1000);
 
   EXPECT_FALSE(state.ShouldUpgradeToSSL("example.test"));
   bool include_subdomains = true;
@@ -536,8 +536,8 @@
   const GURL report_uri(kReportUri);
   TransportSecurityState state;
   const base::Time current_time(base::Time::Now());
-  const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000);
-  const base::Time older = current_time - base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = current_time + base::Seconds(1000);
+  const base::Time older = current_time - base::Seconds(1000);
 
   state.AddHSTS("example.test", expiry, true);
   state.AddHSTS("foo.example.test", expiry, false);
@@ -566,8 +566,8 @@
   const GURL report_uri(kReportUri);
   TransportSecurityState state;
   const base::Time current_time(base::Time::Now());
-  const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000);
-  const base::Time older = current_time - base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = current_time + base::Seconds(1000);
+  const base::Time older = current_time - base::Seconds(1000);
 
   state.AddHPKP("example.test", expiry, true, GetSampleSPKIHashes(),
                 report_uri);
@@ -594,7 +594,7 @@
   const GURL report_uri(kReportUri);
   TransportSecurityState state;
   const base::Time current_time(base::Time::Now());
-  const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = current_time + base::Seconds(1000);
 
   state.AddHSTS("example1.test", expiry, false);
   state.AddHPKP("example2.test", expiry, false, GetSampleSPKIHashes(),
@@ -611,8 +611,8 @@
   const GURL report_uri(kReportUri);
   TransportSecurityState state;
   const base::Time current_time(base::Time::Now());
-  const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000);
-  const base::Time older = current_time - base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = current_time + base::Seconds(1000);
+  const base::Time older = current_time - base::Seconds(1000);
 
   // Note: this test assumes that inserting an entry with an expiration time in
   // the past works and is pruned on query.
@@ -660,7 +660,7 @@
   const GURL report_uri(kReportUri);
   TransportSecurityState state;
   const base::Time current_time(base::Time::Now());
-  const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = current_time + base::Seconds(1000);
 
   state.AddHSTS("example1.test", expiry, true);
   state.AddHPKP("example1.test", expiry, false, GetSampleSPKIHashes(),
@@ -681,7 +681,7 @@
   const GURL report_uri(kReportUri);
   TransportSecurityState state;
   const base::Time current_time(base::Time::Now());
-  const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = current_time + base::Seconds(1000);
 
   // Place an includeSubdomains HSTS entry below a normal HPKP entry.
   state.AddHSTS("example1.test", expiry, true);
@@ -721,8 +721,8 @@
   const GURL report_uri(kReportUri);
   TransportSecurityState state;
   const base::Time current_time(base::Time::Now());
-  const base::Time expiry1 = current_time + base::TimeDelta::FromSeconds(1000);
-  const base::Time expiry2 = current_time + base::TimeDelta::FromSeconds(2000);
+  const base::Time expiry1 = current_time + base::Seconds(1000);
+  const base::Time expiry2 = current_time + base::Seconds(2000);
 
   state.AddHSTS("example.com", expiry1, true);
   state.AddHPKP("foo.example.com", expiry2, false, GetSampleSPKIHashes(),
@@ -749,7 +749,7 @@
   TransportSecurityState state;
   TransportSecurityState::PKPState pkp_state;
   const base::Time current_time(base::Time::Now());
-  const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = current_time + base::Seconds(1000);
   HashValue hash1(HASH_VALUE_SHA256);
   memset(hash1.data(), 0x01, hash1.size());
   HashValue hash2(HASH_VALUE_SHA256);
@@ -787,8 +787,8 @@
 
   TransportSecurityState state;
   const base::Time current_time(base::Time::Now());
-  const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000);
-  const base::Time older = current_time - base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = current_time + base::Seconds(1000);
+  const base::Time older = current_time - base::Seconds(1000);
 
   EXPECT_FALSE(state.ShouldUpgradeToSSL("example.com"));
   EXPECT_FALSE(state.HasPublicKeyPins("example.com"));
@@ -840,7 +840,7 @@
       {});
   TransportSecurityState state;
   const base::Time current_time(base::Time::Now());
-  const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = current_time + base::Seconds(1000);
   bool include_subdomains = false;
 
   NetworkIsolationKey network_isolation_key =
@@ -994,7 +994,7 @@
   state.SetReportSender(&mock_report_sender);
 
   const base::Time current_time = base::Time::Now();
-  const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = current_time + base::Seconds(1000);
   HashValueVector good_hashes;
   for (size_t i = 0; kGoodPath[i]; i++)
     EXPECT_TRUE(AddHash(kGoodPath[i], &good_hashes));
@@ -1821,17 +1821,15 @@
   // Change the last updated time to a value greater than 10 weeks.
   // We use a close value (70 days + 1 hour ago) to ensure rounding behavior is
   // working properly.
-  state.SetCTLogListUpdateTime(
-      base::Time::Now() -
-      (base::TimeDelta::FromDays(70) + base::TimeDelta::FromHours(1)));
+  state.SetCTLogListUpdateTime(base::Time::Now() -
+                               (base::Days(70) + base::Hours(1)));
   // CT should no longer be required.
   EXPECT_FALSE(
       GetExpectCTState(&state, kExpectCTStaticHostname, &expect_ct_state));
 
   // CT should once again be required after the log list is newer than 70 days.
-  state.SetCTLogListUpdateTime(
-      base::Time::Now() -
-      (base::TimeDelta::FromDays(70) - base::TimeDelta::FromHours(1)));
+  state.SetCTLogListUpdateTime(base::Time::Now() -
+                               (base::Days(70) - base::Hours(1)));
   EXPECT_TRUE(
       GetExpectCTState(&state, kExpectCTStaticHostname, &expect_ct_state));
 }
@@ -2053,7 +2051,7 @@
   TransportSecurityState state;
   TransportSecurityState::ExpectCTState expect_ct_state;
   const base::Time current_time = base::Time::Now();
-  const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = current_time + base::Seconds(1000);
 
   state.AddExpectCT(host, expiry, true, GURL(), NetworkIsolationKey());
   EXPECT_TRUE(state.GetDynamicExpectCTState(host, NetworkIsolationKey(),
@@ -2076,7 +2074,7 @@
   TransportSecurityState state;
   TransportSecurityState::ExpectCTState expect_ct_state;
   const base::Time current_time = base::Time::Now();
-  const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = current_time + base::Seconds(1000);
 
   // Test that Expect-CT state can be added and retrieved.
   state.AddExpectCT(host, expiry, true, GURL(), NetworkIsolationKey());
@@ -2097,8 +2095,8 @@
   EXPECT_EQ(expiry, expect_ct_state.expiry);
 
   // Test that Expect-CT state is discarded when expired.
-  state.AddExpectCT(host, current_time - base::TimeDelta::FromSeconds(1000),
-                    true, report_uri, NetworkIsolationKey());
+  state.AddExpectCT(host, current_time - base::Seconds(1000), true, report_uri,
+                    NetworkIsolationKey());
   EXPECT_FALSE(state.GetDynamicExpectCTState(host, NetworkIsolationKey(),
                                              &expect_ct_state));
 }
@@ -2242,7 +2240,7 @@
   TransportSecurityState state;
   TransportSecurityState::ExpectCTState expect_ct_state;
   const base::Time current_time = base::Time::Now();
-  const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = current_time + base::Seconds(1000);
 
   state.AddExpectCT(host, expiry, true, GURL(), NetworkIsolationKey());
   EXPECT_FALSE(state.GetDynamicExpectCTState(host, NetworkIsolationKey(),
@@ -2401,7 +2399,7 @@
 // to a host violates an Expect-CT header, and that it reports violations.
 TEST_F(TransportSecurityStateTest, CheckCTRequirementsWithExpectCT) {
   const base::Time current_time(base::Time::Now());
-  const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = current_time + base::Seconds(1000);
   scoped_refptr<X509Certificate> cert1 =
       ImportCertFromFile(GetTestCertsDirectory(), "ok_cert.pem");
   ASSERT_TRUE(cert1);
@@ -2544,7 +2542,7 @@
       TransportSecurityState::RequireCTDelegate::CTRequirementLevel;
 
   const base::Time current_time(base::Time::Now());
-  const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = current_time + base::Seconds(1000);
   scoped_refptr<X509Certificate> cert1 =
       ImportCertFromFile(GetTestCertsDirectory(), "ok_cert.pem");
   ASSERT_TRUE(cert1);
@@ -2604,7 +2602,7 @@
       TransportSecurityState::RequireCTDelegate::CTRequirementLevel;
 
   const base::Time current_time(base::Time::Now());
-  const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = current_time + base::Seconds(1000);
   scoped_refptr<X509Certificate> cert1 =
       ImportCertFromFile(GetTestCertsDirectory(), "ok_cert.pem");
   ASSERT_TRUE(cert1);
@@ -3195,7 +3193,7 @@
 
   TransportSecurityState state;
   const base::Time current_time(base::Time::Now());
-  const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = current_time + base::Seconds(1000);
   state.AddHSTS("www.google.com", expiry, true);
 
   EXPECT_TRUE(state.ShouldUpgradeToSSL("www.google.com"));
@@ -3424,8 +3422,7 @@
   feature_list.InitAndEnableFeature(
       TransportSecurityState::kDynamicExpectCTFeature);
 
-  const base::Time expiry =
-      base::Time::Now() + base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = base::Time::Now() + base::Seconds(1000);
 
   // Dummy cert to use as the validation chain. The contents do not matter.
   scoped_refptr<X509Certificate> cert =
@@ -3680,13 +3677,12 @@
     // the future than that.
     base::Time unexpired_expiry_time =
         base::Time::Now() +
-        base::TimeDelta::FromDays(
-            2 * features::kExpectCTSafeFromPruneDays.Get() + 1);
+        base::Days(2 * features::kExpectCTSafeFromPruneDays.Get() + 1);
 
     // Always add entries unexpired.
     base::Time first_group_expiry =
         test_case.first_group_is_expired
-            ? base::Time::Now() + base::TimeDelta::FromMilliseconds(1)
+            ? base::Time::Now() + base::Milliseconds(1)
             : unexpired_expiry_time;
 
     TransportSecurityState state;
@@ -3702,20 +3698,19 @@
 
     // Skip forward in time slightly, so the first group is always older than
     // the first.
-    FastForwardBy(base::TimeDelta::FromSeconds(1));
+    FastForwardBy(base::Seconds(1));
 
     // If only the first group should be old enough to be pruned, wait until
     // enough time for the group to be prunable has passed.
     if (test_case.groups_old_enough_to_be_pruned ==
         GroupsOldEnoughToBePruned::kFirstGroupOnly) {
-      FastForwardBy(base::TimeDelta::FromDays(
-          features::kExpectCTSafeFromPruneDays.Get() + 1));
+      FastForwardBy(base::Days(features::kExpectCTSafeFromPruneDays.Get() + 1));
     }
 
     // Always add entries unexpired.
     base::Time second_group_expiry =
         test_case.second_group_is_expired
-            ? base::Time::Now() + base::TimeDelta::FromMilliseconds(1)
+            ? base::Time::Now() + base::Milliseconds(1)
             : unexpired_expiry_time;
 
     base::Time second_group_observation_time = base::Time::Now();
@@ -3730,20 +3725,18 @@
     // Skip forward in time slightly, so the first group is always older than
     // the first. This needs to be long enough so that if
     // |second_group_is_expired| is true, the entry will expire.
-    FastForwardBy(base::TimeDelta::FromSeconds(1));
+    FastForwardBy(base::Seconds(1));
 
     // If both the first and second groups should be old enough to be pruned,
     // wait until enough time has passed for both groups to prunable.
     if (test_case.groups_old_enough_to_be_pruned ==
         GroupsOldEnoughToBePruned::kFirstAndSecondGroups) {
-      FastForwardBy(base::TimeDelta::FromDays(
-          features::kExpectCTSafeFromPruneDays.Get() + 1));
+      FastForwardBy(base::Days(features::kExpectCTSafeFromPruneDays.Get() + 1));
     }
 
     for (size_t i = 0; i < kThirdGroupSize; ++i) {
       state.AddExpectCT(
-          CreateUniqueHostName(),
-          base::Time::Now() + base::TimeDelta::FromSeconds(1),
+          CreateUniqueHostName(), base::Time::Now() + base::Seconds(1),
           true /* enforce */, report_uri,
           CreateUniqueNetworkIsolationKey(false /* is_transient */));
     }
@@ -3784,7 +3777,7 @@
       TransportSecurityState::kDynamicExpectCTFeature);
 
   TransportSecurityState state;
-  base::Time expiry = base::Time::Now() + base::TimeDelta::FromDays(10);
+  base::Time expiry = base::Time::Now() + base::Days(10);
   // Add prunable entries until pruning is triggered.
   for (int i = 0; i < features::kExpectCTPruneMax.Get(); ++i) {
     state.AddExpectCT(CreateUniqueHostName(), expiry, false /* enforce */,
@@ -3808,8 +3801,7 @@
       static_cast<int>(state.num_expect_ct_entries_for_testing()));
 
   // Time passes, which does not trigger pruning.
-  FastForwardBy(
-      base::TimeDelta::FromSeconds(features::kExpectCTPruneDelaySecs.Get()));
+  FastForwardBy(base::Seconds(features::kExpectCTPruneDelaySecs.Get()));
   EXPECT_EQ(
       features::kExpectCTPruneMax.Get() + features::kExpectCTPruneMin.Get(),
       static_cast<int>(state.num_expect_ct_entries_for_testing()));
@@ -3823,8 +3815,7 @@
             static_cast<int>(state.num_expect_ct_entries_for_testing()));
 
   // More time passes.
-  FastForwardBy(base::TimeDelta::FromSeconds(
-      10 * features::kExpectCTPruneDelaySecs.Get()));
+  FastForwardBy(base::Seconds(10 * features::kExpectCTPruneDelaySecs.Get()));
   EXPECT_EQ(features::kExpectCTPruneMin.Get(),
             static_cast<int>(state.num_expect_ct_entries_for_testing()));
 
@@ -3858,9 +3849,9 @@
 
   // Three different expiration times, which are used to distinguish entries
   // added by each loop. No entries actually expire in this test.
-  base::Time expiry1 = base::Time::Now() + base::TimeDelta::FromDays(10);
-  base::Time expiry2 = expiry1 + base::TimeDelta::FromDays(10);
-  base::Time expiry3 = expiry2 + base::TimeDelta::FromDays(10);
+  base::Time expiry1 = base::Time::Now() + base::Days(10);
+  base::Time expiry2 = expiry1 + base::Days(10);
+  base::Time expiry3 = expiry2 + base::Days(10);
 
   // Add non-prunable entries using different non-transient NIKs. They should
   // not be pruned because they are recently-observed enforce entries.
@@ -3877,8 +3868,7 @@
   NetworkIsolationKey network_isolation_key =
       CreateUniqueNetworkIsolationKey(false /* is_transient */);
   for (int i = 0; i < features::kExpectCTMaxEntriesPerNik.Get(); ++i) {
-    FastForwardBy(
-        base::TimeDelta::FromSeconds(features::kExpectCTPruneDelaySecs.Get()));
+    FastForwardBy(base::Seconds(features::kExpectCTPruneDelaySecs.Get()));
     state.AddExpectCT(CreateUniqueHostName(), expiry2, true /* enforce */,
                       report_uri, network_isolation_key);
     EXPECT_EQ(features::kExpectCTPruneMax.Get() + i + 1,
@@ -3889,8 +3879,7 @@
   // before, allowing pruning to run each time. Each time, a single entry should
   // be removed, resulting in the same total number of entries as before.
   for (int i = 0; i < features::kExpectCTMaxEntriesPerNik.Get(); ++i) {
-    FastForwardBy(
-        base::TimeDelta::FromSeconds(features::kExpectCTPruneDelaySecs.Get()));
+    FastForwardBy(base::Seconds(features::kExpectCTPruneDelaySecs.Get()));
     state.AddExpectCT(CreateUniqueHostName(), expiry3, true /* enforce */,
                       report_uri, network_isolation_key);
     EXPECT_EQ(features::kExpectCTPruneMax.Get() +
diff --git a/net/log/net_log_unittest.cc b/net/log/net_log_unittest.cc
index 008b0ac6..9267f9f 100644
--- a/net/log/net_log_unittest.cc
+++ b/net/log/net_log_unittest.cc
@@ -43,18 +43,18 @@
   auto entries = net_log.GetEntries();
   EXPECT_EQ(0u, entries.size());
 
-  task_environment.FastForwardBy(base::TimeDelta::FromSeconds(1234));
+  task_environment.FastForwardBy(base::Seconds(1234));
   base::TimeTicks ticks0 = base::TimeTicks::Now();
 
   net_log.AddGlobalEntry(NetLogEventType::CANCELLED);
 
-  task_environment.FastForwardBy(base::TimeDelta::FromSeconds(5678));
+  task_environment.FastForwardBy(base::Seconds(5678));
   base::TimeTicks ticks1 = base::TimeTicks::Now();
   EXPECT_LE(ticks0, ticks1);
 
   net_log.AddGlobalEntry(NetLogEventType::FAILED);
 
-  task_environment.FastForwardBy(base::TimeDelta::FromSeconds(91011));
+  task_environment.FastForwardBy(base::Seconds(91011));
   EXPECT_LE(ticks1, base::TimeTicks::Now());
 
   entries = net_log.GetEntries();
@@ -85,32 +85,32 @@
   auto entries = net_log.GetEntries();
   EXPECT_EQ(0u, entries.size());
 
-  task_environment.FastForwardBy(base::TimeDelta::FromSeconds(9876));
+  task_environment.FastForwardBy(base::Seconds(9876));
   base::TimeTicks source0_start_ticks = base::TimeTicks::Now();
 
   NetLogWithSource source0 =
       NetLogWithSource::Make(&net_log, NetLogSourceType::URL_REQUEST);
-  task_environment.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment.FastForwardBy(base::Seconds(1));
   base::TimeTicks source0_event0_ticks = base::TimeTicks::Now();
   source0.BeginEvent(NetLogEventType::REQUEST_ALIVE);
 
-  task_environment.FastForwardBy(base::TimeDelta::FromSeconds(5432));
+  task_environment.FastForwardBy(base::Seconds(5432));
   base::TimeTicks source1_start_ticks = base::TimeTicks::Now();
 
   NetLogWithSource source1 =
       NetLogWithSource::Make(&net_log, NetLogSourceType::SOCKET);
-  task_environment.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment.FastForwardBy(base::Seconds(1));
   base::TimeTicks source1_event0_ticks = base::TimeTicks::Now();
   source1.BeginEvent(NetLogEventType::SOCKET_ALIVE);
-  task_environment.FastForwardBy(base::TimeDelta::FromSeconds(10));
+  task_environment.FastForwardBy(base::Seconds(10));
   base::TimeTicks source1_event1_ticks = base::TimeTicks::Now();
   source1.EndEvent(NetLogEventType::SOCKET_ALIVE);
 
-  task_environment.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment.FastForwardBy(base::Seconds(1));
   base::TimeTicks source0_event1_ticks = base::TimeTicks::Now();
   source0.EndEvent(NetLogEventType::REQUEST_ALIVE);
 
-  task_environment.FastForwardBy(base::TimeDelta::FromSeconds(123));
+  task_environment.FastForwardBy(base::Seconds(123));
 
   entries = net_log.GetEntries();
   ASSERT_EQ(4u, entries.size());
diff --git a/net/network_error_logging/network_error_logging_service.cc b/net/network_error_logging/network_error_logging_service.cc
index a47ebbed..85b40b4 100644
--- a/net/network_error_logging/network_error_logging_service.cc
+++ b/net/network_error_logging/network_error_logging_service.cc
@@ -633,9 +633,8 @@
     policy_out->include_subdomains = include_subdomains;
     policy_out->success_fraction = success_fraction;
     policy_out->failure_fraction = failure_fraction;
-    policy_out->expires = max_age_sec > 0
-                              ? now + base::TimeDelta::FromSeconds(max_age_sec)
-                              : base::Time();
+    policy_out->expires =
+        max_age_sec > 0 ? now + base::Seconds(max_age_sec) : base::Time();
     return true;
   }
 
diff --git a/net/network_error_logging/network_error_logging_service_unittest.cc b/net/network_error_logging/network_error_logging_service_unittest.cc
index b898df6b..237518d 100644
--- a/net/network_error_logging/network_error_logging_service_unittest.cc
+++ b/net/network_error_logging/network_error_logging_service_unittest.cc
@@ -78,7 +78,7 @@
     details.server_ip = server_ip.IsValid() ? server_ip : kServerIP_;
     details.method = std::move(method);
     details.status_code = status_code;
-    details.elapsed_time = base::TimeDelta::FromSeconds(1);
+    details.elapsed_time = base::Seconds(1);
     details.type = error_type;
     details.reporting_upload_depth = 0;
 
@@ -106,7 +106,7 @@
     details.protocol = "http/1.1";
     details.method = "GET";
     details.status_code = 200;
-    details.elapsed_time = base::TimeDelta::FromMilliseconds(1234);
+    details.elapsed_time = base::Milliseconds(1234);
     details.user_agent = kUserAgent_;
     return details;
   }
@@ -1376,7 +1376,7 @@
   FinishLoading(true /* load_success */);
 
   EXPECT_EQ(100u, PolicyCount());
-  clock.Advance(base::TimeDelta::FromSeconds(86401));  // max_age is 86400 sec
+  clock.Advance(base::Seconds(86401));  // max_age is 86400 sec
   // Expired policies are allowed to linger before hitting the policy limit.
   EXPECT_EQ(100u, PolicyCount());
 
@@ -1400,7 +1400,7 @@
   for (size_t i = 0; i < NetworkErrorLoggingService::kMaxPolicies; ++i) {
     service()->OnHeader(MakeNetworkIsolationKey(i), MakeOrigin(i), kServerIP_,
                         kHeader_);
-    clock.Advance(base::TimeDelta::FromSeconds(1));
+    clock.Advance(base::Seconds(1));
   }
   // Make the rest of the test run synchronously.
   FinishLoading(true /* load_success */);
@@ -1411,7 +1411,7 @@
   // expired, so the least recently used (i.e. least recently added) policy
   // should be evicted.
   service()->OnHeader(kNik_, kOrigin_, kServerIP_, kHeader_);
-  clock.Advance(base::TimeDelta::FromSeconds(1));
+  clock.Advance(base::Seconds(1));
   EXPECT_EQ(PolicyCount(), NetworkErrorLoggingService::kMaxPolicies);
 
   EXPECT_FALSE(
@@ -1429,12 +1429,12 @@
   // identified correctly.
   service()->OnRequest(
       MakeRequestDetails(kNik_, kOrigin_.GetURL(), ERR_CONNECTION_REFUSED));
-  clock.Advance(base::TimeDelta::FromSeconds(1));
+  clock.Advance(base::Seconds(1));
   for (size_t i = NetworkErrorLoggingService::kMaxPolicies - 1; i >= 1; --i) {
     service()->OnRequest(MakeRequestDetails(MakeNetworkIsolationKey(i),
                                             MakeOrigin(i).GetURL(),
                                             ERR_CONNECTION_REFUSED));
-    clock.Advance(base::TimeDelta::FromSeconds(1));
+    clock.Advance(base::Seconds(1));
   }
   service()->OnHeader(kNik_, kOriginSubdomain_, kServerIP_, kHeader_);
   EXPECT_EQ(PolicyCount(), NetworkErrorLoggingService::kMaxPolicies);
diff --git a/net/nqe/connectivity_monitor.cc b/net/nqe/connectivity_monitor.cc
index db330c7..3731d64 100644
--- a/net/nqe/connectivity_monitor.cc
+++ b/net/nqe/connectivity_monitor.cc
@@ -35,8 +35,7 @@
 // refrain from doing so again until either a network change has occurred or
 // a specified time interval has elapsed. This is the default time interval for
 // that behavior.
-constexpr base::TimeDelta kDefaultMinFailureLoggingInterval{
-    base::TimeDelta::FromSeconds(45)};
+constexpr base::TimeDelta kDefaultMinFailureLoggingInterval{base::Seconds(45)};
 
 #if defined(OS_ANDROID)
 // NOTE: This corresponds to the NQE.ConnectivityMonitor.NetworkChangeType
@@ -54,9 +53,9 @@
 }  // namespace
 
 ConnectivityMonitor::ConnectivityMonitor()
-    : ConnectivityMonitor(base::TimeDelta::FromMilliseconds(
-                              kDefaultInactivityThresholdMs.Get()),
-                          kDefaultMinFailureLoggingInterval) {}
+    : ConnectivityMonitor(
+          base::Milliseconds(kDefaultInactivityThresholdMs.Get()),
+          kDefaultMinFailureLoggingInterval) {}
 
 ConnectivityMonitor::ConnectivityMonitor(
     base::TimeDelta inactivity_threshold,
diff --git a/net/nqe/connectivity_monitor_unittest.cc b/net/nqe/connectivity_monitor_unittest.cc
index d603be7..dadd8ae3 100644
--- a/net/nqe/connectivity_monitor_unittest.cc
+++ b/net/nqe/connectivity_monitor_unittest.cc
@@ -26,11 +26,9 @@
 namespace net {
 namespace {
 
-constexpr base::TimeDelta kInactivityThreshold{base::TimeDelta::FromSeconds(1)};
-constexpr base::TimeDelta kUpdateInterval{
-    base::TimeDelta::FromMilliseconds(100)};
-constexpr base::TimeDelta kMinFailureLoggingInterval{
-    base::TimeDelta::FromSeconds(45)};
+constexpr base::TimeDelta kInactivityThreshold{base::Seconds(1)};
+constexpr base::TimeDelta kUpdateInterval{base::Milliseconds(100)};
+constexpr base::TimeDelta kMinFailureLoggingInterval{base::Seconds(45)};
 
 class ConnectivityMonitorTest
     : public testing::Test,
@@ -139,7 +137,7 @@
   FastForwardTimeBy(kInactivityThreshold);
   EXPECT_EQ(base::TimeDelta(), monitor().GetTimeSinceLastFailureForTesting());
 
-  FastForwardTimeBy(base::TimeDelta::FromDays(42));
+  FastForwardTimeBy(base::Days(42));
   SimulateSwitchToMobileNetwork();
   EXPECT_EQ(0u, monitor().num_active_requests_for_testing());
   EXPECT_EQ(absl::nullopt, monitor().GetTimeSinceLastFailureForTesting());
@@ -221,7 +219,7 @@
 
   // Now trigger a network change after a long delay. This should log a
   // histogram sample conveying the time since the failure was first detected.
-  constexpr base::TimeDelta kArbitraryDelay{base::TimeDelta::FromSeconds(60)};
+  constexpr base::TimeDelta kArbitraryDelay{base::Seconds(60)};
   FastForwardTimeBy(kArbitraryDelay);
   SimulateSwitchToMobileNetwork();
   histograms.ExpectTotalCount(kHistogramName, 1);
diff --git a/net/nqe/event_creator_unittest.cc b/net/nqe/event_creator_unittest.cc
index cc0af6b..7721500 100644
--- a/net/nqe/event_creator_unittest.cc
+++ b/net/nqe/event_creator_unittest.cc
@@ -32,9 +32,8 @@
 
   EventCreator event_creator(net_log.bound());
 
-  NetworkQuality network_quality_100(base::TimeDelta::FromMilliseconds(100),
-                                     base::TimeDelta::FromMilliseconds(100),
-                                     100);
+  NetworkQuality network_quality_100(base::Milliseconds(100),
+                                     base::Milliseconds(100), 100);
 
   event_creator.MaybeAddNetworkQualityChangedEventToNetLog(
       EFFECTIVE_CONNECTION_TYPE_2G, network_quality_100);
@@ -52,33 +51,29 @@
 
   // A new entry should not be created since HTTP RTT has not changed
   // meaningfully.
-  NetworkQuality network_quality_http_rtt_110(
-      base::TimeDelta::FromMilliseconds(110),
-      base::TimeDelta::FromMilliseconds(100), 100);
+  NetworkQuality network_quality_http_rtt_110(base::Milliseconds(110),
+                                              base::Milliseconds(100), 100);
   event_creator.MaybeAddNetworkQualityChangedEventToNetLog(
       EFFECTIVE_CONNECTION_TYPE_3G, network_quality_http_rtt_110);
   EXPECT_EQ(2, GetNetworkQualityChangedEntriesCount(&net_log));
 
   // A new entry should be created since HTTP RTT has changed meaningfully.
-  NetworkQuality network_quality_http_rtt_300(
-      base::TimeDelta::FromMilliseconds(300),
-      base::TimeDelta::FromMilliseconds(100), 100);
+  NetworkQuality network_quality_http_rtt_300(base::Milliseconds(300),
+                                              base::Milliseconds(100), 100);
   event_creator.MaybeAddNetworkQualityChangedEventToNetLog(
       EFFECTIVE_CONNECTION_TYPE_3G, network_quality_http_rtt_300);
   EXPECT_EQ(3, GetNetworkQualityChangedEntriesCount(&net_log));
 
   // A new entry should be created since transport RTT has changed meaningfully.
   NetworkQuality network_quality_transport_rtt_300(
-      base::TimeDelta::FromMilliseconds(300),
-      base::TimeDelta::FromMilliseconds(300), 100);
+      base::Milliseconds(300), base::Milliseconds(300), 100);
   event_creator.MaybeAddNetworkQualityChangedEventToNetLog(
       EFFECTIVE_CONNECTION_TYPE_3G, network_quality_transport_rtt_300);
   EXPECT_EQ(4, GetNetworkQualityChangedEntriesCount(&net_log));
 
   // A new entry should be created since bandwidth has changed meaningfully.
-  NetworkQuality network_quality_kbps_300(
-      base::TimeDelta::FromMilliseconds(300),
-      base::TimeDelta::FromMilliseconds(300), 300);
+  NetworkQuality network_quality_kbps_300(base::Milliseconds(300),
+                                          base::Milliseconds(300), 300);
   event_creator.MaybeAddNetworkQualityChangedEventToNetLog(
       EFFECTIVE_CONNECTION_TYPE_3G, network_quality_kbps_300);
   EXPECT_EQ(5, GetNetworkQualityChangedEntriesCount(&net_log));
@@ -90,18 +85,16 @@
   EXPECT_EQ(5, GetNetworkQualityChangedEntriesCount(&net_log));
 
   // A new entry should be created since bandwidth has changed meaningfully.
-  NetworkQuality network_quality_kbps_2000(
-      base::TimeDelta::FromMilliseconds(300),
-      base::TimeDelta::FromMilliseconds(300), 2000);
+  NetworkQuality network_quality_kbps_2000(base::Milliseconds(300),
+                                           base::Milliseconds(300), 2000);
   event_creator.MaybeAddNetworkQualityChangedEventToNetLog(
       EFFECTIVE_CONNECTION_TYPE_3G, network_quality_kbps_2000);
   EXPECT_EQ(6, GetNetworkQualityChangedEntriesCount(&net_log));
 
   // A new entry should not be created since bandwidth has not changed by more
   // than 20%.
-  NetworkQuality network_quality_kbps_2200(
-      base::TimeDelta::FromMilliseconds(300),
-      base::TimeDelta::FromMilliseconds(300), 2200);
+  NetworkQuality network_quality_kbps_2200(base::Milliseconds(300),
+                                           base::Milliseconds(300), 2200);
   event_creator.MaybeAddNetworkQualityChangedEventToNetLog(
       EFFECTIVE_CONNECTION_TYPE_3G, network_quality_kbps_2200);
   EXPECT_EQ(6, GetNetworkQualityChangedEntriesCount(&net_log));
diff --git a/net/nqe/network_quality.cc b/net/nqe/network_quality.cc
index d9f23182..8e0cb68 100644
--- a/net/nqe/network_quality.cc
+++ b/net/nqe/network_quality.cc
@@ -9,7 +9,7 @@
 namespace internal {
 
 base::TimeDelta InvalidRTT() {
-  return base::TimeDelta::FromMilliseconds(INVALID_RTT_THROUGHPUT);
+  return base::Milliseconds(INVALID_RTT_THROUGHPUT);
 }
 
 NetworkQuality::NetworkQuality()
diff --git a/net/nqe/network_quality_estimator.cc b/net/nqe/network_quality_estimator.cc
index c13c17f..a0e76ce8 100644
--- a/net/nqe/network_quality_estimator.cc
+++ b/net/nqe/network_quality_estimator.cc
@@ -131,8 +131,7 @@
               1.0 /*params_->weight_multiplier_per_signal_strength_level()*/)},
       effective_connection_type_at_last_main_frame_(
           EFFECTIVE_CONNECTION_TYPE_UNKNOWN),
-      effective_connection_type_recomputation_interval_(
-          base::TimeDelta::FromSeconds(10)),
+      effective_connection_type_recomputation_interval_(base::Seconds(10)),
       rtt_observations_size_at_last_ect_computation_(0),
       throughput_observations_size_at_last_ect_computation_(0),
       transport_rtt_observation_count_last_ect_computation_(0),
@@ -279,7 +278,7 @@
           params_->http_rtt_transport_rtt_min_count() &&
       (observed_http_rtt <
        params_->hanging_request_http_rtt_upper_bound_transport_rtt_multiplier() *
-           GetTransportRTT().value_or(base::TimeDelta::FromSeconds(10)))) {
+           GetTransportRTT().value_or(base::Seconds(10)))) {
     // If there are sufficient number of transport RTT samples available, use
     // the transport RTT estimate to determine if the request is hanging.
     return false;
@@ -290,7 +289,7 @@
 
   if (observed_http_rtt <
       params_->hanging_request_http_rtt_upper_bound_http_rtt_multiplier() *
-          GetHttpRTT().value_or(base::TimeDelta::FromSeconds(10))) {
+          GetHttpRTT().value_or(base::Seconds(10))) {
     // Use the HTTP RTT estimate to determine if the request is hanging.
     return false;
   }
@@ -728,7 +727,7 @@
   base::TimeDelta time_since_connection_change =
       tick_clock_->NowTicks() - last_connection_change_;
   if (cached_estimate_applied_ &&
-      time_since_connection_change <= base::TimeDelta::FromMinutes(1)) {
+      time_since_connection_change <= base::Minutes(1)) {
     UMA_HISTOGRAM_TIMES("NQE.HttpRttReduction.BasedOnRTTCounts",
                         base::TimeDelta());
     return;
@@ -1010,7 +1009,7 @@
     case nqe::internal::OBSERVATION_CATEGORY_HTTP:
     case nqe::internal::OBSERVATION_CATEGORY_TRANSPORT:
     case nqe::internal::OBSERVATION_CATEGORY_END_TO_END:
-      return base::TimeDelta::FromMilliseconds(
+      return base::Milliseconds(
           rtt_ms_observations_[observation_category]
               .GetPercentile(start_time, current_network_id_.signal_strength,
                              percentile, observations_count)
@@ -1152,7 +1151,7 @@
     const Observation& observation) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK_NE(nqe::internal::InvalidRTT(),
-            base::TimeDelta::FromMilliseconds(observation.value()));
+            base::Milliseconds(observation.value()));
   DCHECK_GT(NETWORK_QUALITY_OBSERVATION_SOURCE_MAX, observation.source());
 
   if (!ShouldAddObservation(observation))
@@ -1529,8 +1528,7 @@
     base::TimeDelta duration = tick_clock_->NowTicks() -
                                p2p_connections_count_active_timestamp_.value();
     LOCAL_HISTOGRAM_CUSTOM_TIMES("NQE.PeerToPeerConnectionsDuration", duration,
-                                 base::TimeDelta::FromMilliseconds(1),
-                                 base::TimeDelta::FromHours(1), 50);
+                                 base::Milliseconds(1), base::Hours(1), 50);
     p2p_connections_count_active_timestamp_ = absl::nullopt;
   }
 
diff --git a/net/nqe/network_quality_estimator_params.cc b/net/nqe/network_quality_estimator_params.cc
index c9d1782..5f8d556d 100644
--- a/net/nqe/network_quality_estimator_params.cc
+++ b/net/nqe/network_quality_estimator_params.cc
@@ -15,12 +15,9 @@
 const char kEffectiveConnectionTypeSlow2GOnCellular[] = "Slow-2G-On-Cellular";
 const base::TimeDelta
     kHttpRttEffectiveConnectionTypeThresholds[EFFECTIVE_CONNECTION_TYPE_LAST] =
-        {base::TimeDelta::FromMilliseconds(0),
-         base::TimeDelta::FromMilliseconds(0),
-         base::TimeDelta::FromMilliseconds(2010),
-         base::TimeDelta::FromMilliseconds(1420),
-         base::TimeDelta::FromMilliseconds(272),
-         base::TimeDelta::FromMilliseconds(0)};
+        {base::Milliseconds(0),    base::Milliseconds(0),
+         base::Milliseconds(2010), base::Milliseconds(1420),
+         base::Milliseconds(272),  base::Milliseconds(0)};
 
 namespace {
 
@@ -104,7 +101,7 @@
 base::TimeDelta GetMinSocketWatcherNotificationInterval(
     const std::map<std::string, std::string>& params) {
   // Use 1000 milliseconds as the default value.
-  return base::TimeDelta::FromMilliseconds(GetValueForVariationParam(
+  return base::Milliseconds(GetValueForVariationParam(
       params, "min_socket_watcher_notification_interval_msec", 1000));
 }
 
@@ -155,43 +152,36 @@
   // variations params. The default observation for a connection type
   // corresponds to typical network quality for that connection type.
   default_observations[NetworkChangeNotifier::CONNECTION_UNKNOWN] =
-      nqe::internal::NetworkQuality(base::TimeDelta::FromMilliseconds(115),
-                                    base::TimeDelta::FromMilliseconds(55),
-                                    1961);
+      nqe::internal::NetworkQuality(base::Milliseconds(115),
+                                    base::Milliseconds(55), 1961);
 
   default_observations[NetworkChangeNotifier::CONNECTION_ETHERNET] =
-      nqe::internal::NetworkQuality(base::TimeDelta::FromMilliseconds(90),
-                                    base::TimeDelta::FromMilliseconds(33),
-                                    1456);
+      nqe::internal::NetworkQuality(base::Milliseconds(90),
+                                    base::Milliseconds(33), 1456);
 
   default_observations[NetworkChangeNotifier::CONNECTION_WIFI] =
-      nqe::internal::NetworkQuality(base::TimeDelta::FromMilliseconds(116),
-                                    base::TimeDelta::FromMilliseconds(66),
-                                    2658);
+      nqe::internal::NetworkQuality(base::Milliseconds(116),
+                                    base::Milliseconds(66), 2658);
 
   default_observations[NetworkChangeNotifier::CONNECTION_2G] =
-      nqe::internal::NetworkQuality(base::TimeDelta::FromMilliseconds(1726),
-                                    base::TimeDelta::FromMilliseconds(1531),
-                                    74);
+      nqe::internal::NetworkQuality(base::Milliseconds(1726),
+                                    base::Milliseconds(1531), 74);
 
   default_observations[NetworkChangeNotifier::CONNECTION_3G] =
-      nqe::internal::NetworkQuality(base::TimeDelta::FromMilliseconds(273),
-                                    base::TimeDelta::FromMilliseconds(209),
-                                    749);
+      nqe::internal::NetworkQuality(base::Milliseconds(273),
+                                    base::Milliseconds(209), 749);
 
   default_observations[NetworkChangeNotifier::CONNECTION_4G] =
-      nqe::internal::NetworkQuality(base::TimeDelta::FromMilliseconds(137),
-                                    base::TimeDelta::FromMilliseconds(80),
-                                    1708);
+      nqe::internal::NetworkQuality(base::Milliseconds(137),
+                                    base::Milliseconds(80), 1708);
 
   default_observations[NetworkChangeNotifier::CONNECTION_NONE] =
-      nqe::internal::NetworkQuality(base::TimeDelta::FromMilliseconds(163),
-                                    base::TimeDelta::FromMilliseconds(83), 575);
+      nqe::internal::NetworkQuality(base::Milliseconds(163),
+                                    base::Milliseconds(83), 575);
 
   default_observations[NetworkChangeNotifier::CONNECTION_BLUETOOTH] =
-      nqe::internal::NetworkQuality(base::TimeDelta::FromMilliseconds(385),
-                                    base::TimeDelta::FromMilliseconds(318),
-                                    476);
+      nqe::internal::NetworkQuality(base::Milliseconds(385),
+                                    base::Milliseconds(318), 476);
 
   // Override using the values provided via variation params.
   for (size_t i = 0; i <= NetworkChangeNotifier::CONNECTION_LAST; ++i) {
@@ -207,7 +197,7 @@
         base::StringToInt(it->second, &variations_value) &&
         variations_value >= kMinimumRTTVariationParameterMsec) {
       default_observations[i] = nqe::internal::NetworkQuality(
-          base::TimeDelta::FromMilliseconds(variations_value),
+          base::Milliseconds(variations_value),
           default_observations[i].transport_rtt(),
           default_observations[i].downstream_throughput_kbps());
     }
@@ -221,7 +211,7 @@
         variations_value >= kMinimumRTTVariationParameterMsec) {
       default_observations[i] = nqe::internal::NetworkQuality(
           default_observations[i].http_rtt(),
-          base::TimeDelta::FromMilliseconds(variations_value),
+          base::Milliseconds(variations_value),
           default_observations[i].downstream_throughput_kbps());
     }
 
@@ -245,12 +235,9 @@
 // https://cs.chromium.org/chromium/src/net/nqe/network_quality_estimator_params.cc.
 const base::TimeDelta kTypicalHttpRttEffectiveConnectionType
     [net::EFFECTIVE_CONNECTION_TYPE_LAST] = {
-        base::TimeDelta::FromMilliseconds(0),
-        base::TimeDelta::FromMilliseconds(0),
-        base::TimeDelta::FromMilliseconds(3600),
-        base::TimeDelta::FromMilliseconds(1800),
-        base::TimeDelta::FromMilliseconds(450),
-        base::TimeDelta::FromMilliseconds(175)};
+        base::Milliseconds(0),    base::Milliseconds(0),
+        base::Milliseconds(3600), base::Milliseconds(1800),
+        base::Milliseconds(450),  base::Milliseconds(175)};
 
 // Typical downlink throughput (in Mbps) value corresponding to a given
 // WebEffectiveConnectionType value. Taken from
@@ -279,7 +266,7 @@
           // connection type is Slow 2G.
           kTypicalHttpRttEffectiveConnectionType
               [EFFECTIVE_CONNECTION_TYPE_SLOW_2G],
-          base::TimeDelta::FromMilliseconds(3000),
+          base::Milliseconds(3000),
           kTypicalDownlinkKbpsEffectiveConnectionType
               [EFFECTIVE_CONNECTION_TYPE_SLOW_2G]);
 
@@ -289,7 +276,7 @@
           // corresponds to the median RTT observation when effective connection
           // type is 2G.
           kTypicalHttpRttEffectiveConnectionType[EFFECTIVE_CONNECTION_TYPE_2G],
-          base::TimeDelta::FromMilliseconds(1500),
+          base::Milliseconds(1500),
           kTypicalDownlinkKbpsEffectiveConnectionType
               [EFFECTIVE_CONNECTION_TYPE_2G]);
 
@@ -299,7 +286,7 @@
           // corresponds to the median RTT observation when effective connection
           // type is 3G.
           kTypicalHttpRttEffectiveConnectionType[EFFECTIVE_CONNECTION_TYPE_3G],
-          base::TimeDelta::FromMilliseconds(400),
+          base::Milliseconds(400),
           kTypicalDownlinkKbpsEffectiveConnectionType
               [EFFECTIVE_CONNECTION_TYPE_3G]);
 
@@ -307,7 +294,7 @@
   typical_network_quality[EFFECTIVE_CONNECTION_TYPE_4G] =
       nqe::internal::NetworkQuality(
           kTypicalHttpRttEffectiveConnectionType[EFFECTIVE_CONNECTION_TYPE_4G],
-          base::TimeDelta::FromMilliseconds(125),
+          base::Milliseconds(125),
           kTypicalDownlinkKbpsEffectiveConnectionType
               [EFFECTIVE_CONNECTION_TYPE_4G]);
 
@@ -377,7 +364,7 @@
         DeprecatedGetNameForEffectiveConnectionType(effective_connection_type));
 
     connection_thresholds[i].set_http_rtt(
-        base::TimeDelta::FromMilliseconds(GetValueForVariationParam(
+        base::Milliseconds(GetValueForVariationParam(
             params, connection_type_name + ".ThresholdMedianHttpRTTMsec",
             default_effective_connection_type_thresholds[i]
                 .http_rtt()
@@ -460,25 +447,23 @@
               params_,
               "hanging_request_http_rtt_upper_bound_http_rtt_multiplier",
               6)),
-      hanging_request_upper_bound_min_http_rtt_(
-          base::TimeDelta::FromMilliseconds(500)),
+      hanging_request_upper_bound_min_http_rtt_(base::Milliseconds(500)),
       http_rtt_transport_rtt_min_count_(
           GetValueForVariationParam(params_,
                                     "http_rtt_transport_rtt_min_count",
                                     5)),
       increase_in_transport_rtt_logging_interval_(
-          base::TimeDelta::FromMillisecondsD(
-              GetDoubleValueForVariationParamWithDefaultValue(
-                  params_,
-                  "increase_in_transport_rtt_logging_interval",
-                  10000))),
-      recent_time_threshold_(base::TimeDelta::FromMillisecondsD(
-          GetDoubleValueForVariationParamWithDefaultValue(
+          base::Milliseconds(GetDoubleValueForVariationParamWithDefaultValue(
+              params_,
+              "increase_in_transport_rtt_logging_interval",
+              10000))),
+      recent_time_threshold_(
+          base::Milliseconds(GetDoubleValueForVariationParamWithDefaultValue(
               params_,
               "recent_time_threshold",
               5000))),
-      historical_time_threshold_(base::TimeDelta::FromMillisecondsD(
-          GetDoubleValueForVariationParamWithDefaultValue(
+      historical_time_threshold_(
+          base::Milliseconds(GetDoubleValueForVariationParamWithDefaultValue(
               params_,
               "historical_time_threshold",
               60000))),
@@ -486,14 +471,14 @@
           params_,
           "hanging_request_duration_http_rtt_multiplier",
           5)),
-      hanging_request_min_duration_(base::TimeDelta::FromMilliseconds(3000)),
+      hanging_request_min_duration_(base::Milliseconds(3000)),
       add_default_platform_observations_(
           GetStringValueForVariationParamWithDefaultValue(
               params_,
               "add_default_platform_observations",
               "true") == "true"),
       socket_watchers_min_notification_interval_(
-          base::TimeDelta::FromMilliseconds(GetValueForVariationParam(
+          base::Milliseconds(GetValueForVariationParam(
               params_,
               "socket_watchers_min_notification_interval_msec",
               200))),
diff --git a/net/nqe/network_quality_estimator_unittest.cc b/net/nqe/network_quality_estimator_unittest.cc
index c664408..2077d04 100644
--- a/net/nqe/network_quality_estimator_unittest.cc
+++ b/net/nqe/network_quality_estimator_unittest.cc
@@ -167,7 +167,7 @@
     for (auto i = observations_.rbegin(); i != observations_.rend(); ++i) {
       Observation observation = *i;
       if (observation.source == source)
-        return base::TimeDelta::FromMilliseconds(observation.rtt_ms);
+        return base::Milliseconds(observation.rtt_ms);
     }
     return nqe::internal::InvalidRTT();
   }
@@ -549,11 +549,11 @@
   variation_params["add_default_platform_observations"] = "false";
   TestNetworkQualityEstimator estimator(variation_params);
   estimator.OnUpdatedTransportRTTAvailable(
-      SocketPerformanceWatcherFactory::PROTOCOL_TCP,
-      base::TimeDelta::FromMilliseconds(10), absl::nullopt);
+      SocketPerformanceWatcherFactory::PROTOCOL_TCP, base::Milliseconds(10),
+      absl::nullopt);
   estimator.OnUpdatedTransportRTTAvailable(
-      SocketPerformanceWatcherFactory::PROTOCOL_QUIC,
-      base::TimeDelta::FromMilliseconds(10), absl::nullopt);
+      SocketPerformanceWatcherFactory::PROTOCOL_QUIC, base::Milliseconds(10),
+      absl::nullopt);
   histogram_tester.ExpectBucketCount("NQE.RTT.ObservationSource",
                                      NETWORK_QUALITY_OBSERVATION_SOURCE_TCP, 1);
   histogram_tester.ExpectBucketCount(
@@ -563,7 +563,7 @@
 
   // Verify that the QUIC RTT samples are used when computing transport RTT
   // estimate.
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(10), estimator.GetTransportRTT());
+  EXPECT_EQ(base::Milliseconds(10), estimator.GetTransportRTT());
   EXPECT_FALSE(estimator.GetHttpRTT().has_value());
 }
 
@@ -576,14 +576,14 @@
   variation_params["add_default_platform_observations"] = "false";
   TestNetworkQualityEstimator estimator(variation_params);
   estimator.OnUpdatedTransportRTTAvailable(
-      SocketPerformanceWatcherFactory::PROTOCOL_QUIC,
-      base::TimeDelta::FromMilliseconds(10), absl::nullopt);
+      SocketPerformanceWatcherFactory::PROTOCOL_QUIC, base::Milliseconds(10),
+      absl::nullopt);
   histogram_tester.ExpectBucketCount(
       "NQE.RTT.ObservationSource", NETWORK_QUALITY_OBSERVATION_SOURCE_QUIC, 1);
   histogram_tester.ExpectTotalCount("NQE.EndToEndRTT.OnECTComputation", 1);
   histogram_tester.ExpectTotalCount("NQE.RTT.ObservationSource", 1);
 
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(10), estimator.GetTransportRTT());
+  EXPECT_EQ(base::Milliseconds(10), estimator.GetTransportRTT());
   EXPECT_FALSE(estimator.GetHttpRTT().has_value());
 }
 
@@ -597,14 +597,14 @@
   TestNetworkQualityEstimator estimator(variation_params);
   estimator.RecordSpdyPingLatency(
       net::HostPortPair::FromString("www.test.com:443"),
-      base::TimeDelta::FromMilliseconds(10));
+      base::Milliseconds(10));
   histogram_tester.ExpectBucketCount(
       "NQE.RTT.ObservationSource", NETWORK_QUALITY_OBSERVATION_SOURCE_H2_PINGS,
       1);
   histogram_tester.ExpectTotalCount("NQE.EndToEndRTT.OnECTComputation", 1);
   histogram_tester.ExpectTotalCount("NQE.RTT.ObservationSource", 1);
 
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(10), estimator.GetTransportRTT());
+  EXPECT_EQ(base::Milliseconds(10), estimator.GetTransportRTT());
   EXPECT_FALSE(estimator.GetHttpRTT().has_value());
 }
 
@@ -758,12 +758,12 @@
   // Default estimates should be available.
   EXPECT_TRUE(estimator.GetRecentRTT(nqe::internal::OBSERVATION_CATEGORY_HTTP,
                                      base::TimeTicks(), &rtt, nullptr));
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(115), rtt);
+  EXPECT_EQ(base::Milliseconds(115), rtt);
   EXPECT_EQ(rtt, estimator.GetHttpRTT().value());
   EXPECT_TRUE(
       estimator.GetRecentRTT(nqe::internal::OBSERVATION_CATEGORY_TRANSPORT,
                              base::TimeTicks(), &rtt, nullptr));
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(55), rtt);
+  EXPECT_EQ(base::Milliseconds(55), rtt);
   EXPECT_EQ(rtt, estimator.GetTransportRTT().value());
   EXPECT_TRUE(
       estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps));
@@ -783,12 +783,12 @@
   EXPECT_TRUE(estimator.GetRecentRTT(nqe::internal::OBSERVATION_CATEGORY_HTTP,
                                      base::TimeTicks(), &rtt, nullptr));
   // Taken from network_quality_estimator_params.cc.
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(273), rtt);
+  EXPECT_EQ(base::Milliseconds(273), rtt);
   EXPECT_EQ(rtt, estimator.GetHttpRTT().value());
   EXPECT_TRUE(
       estimator.GetRecentRTT(nqe::internal::OBSERVATION_CATEGORY_TRANSPORT,
                              base::TimeTicks(), &rtt, nullptr));
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(209), rtt);
+  EXPECT_EQ(base::Milliseconds(209), rtt);
   EXPECT_EQ(rtt, estimator.GetTransportRTT());
   EXPECT_TRUE(
       estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps));
@@ -814,9 +814,9 @@
           "effective_connection_type"));
 
   EXPECT_EQ(4, rtt_throughput_estimates_observer.notifications_received());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(273),
+  EXPECT_EQ(base::Milliseconds(273),
             rtt_throughput_estimates_observer.http_rtt());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(209),
+  EXPECT_EQ(base::Milliseconds(209),
             rtt_throughput_estimates_observer.transport_rtt());
   EXPECT_EQ(749,
             rtt_throughput_estimates_observer.downstream_throughput_kbps());
@@ -865,12 +865,12 @@
 
   EXPECT_TRUE(estimator.GetRecentRTT(nqe::internal::OBSERVATION_CATEGORY_HTTP,
                                      base::TimeTicks(), &rtt, nullptr));
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1000), rtt);
+  EXPECT_EQ(base::Milliseconds(1000), rtt);
   EXPECT_EQ(rtt, estimator.GetHttpRTT().value());
   EXPECT_TRUE(
       estimator.GetRecentRTT(nqe::internal::OBSERVATION_CATEGORY_TRANSPORT,
                              base::TimeTicks(), &rtt, nullptr));
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(500), rtt);
+  EXPECT_EQ(base::Milliseconds(500), rtt);
   EXPECT_EQ(rtt, estimator.GetTransportRTT().value());
   EXPECT_TRUE(
       estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps));
@@ -882,12 +882,12 @@
       NetworkChangeNotifier::ConnectionType::CONNECTION_WIFI, "test-1");
   EXPECT_TRUE(estimator.GetRecentRTT(nqe::internal::OBSERVATION_CATEGORY_HTTP,
                                      base::TimeTicks(), &rtt, nullptr));
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(2000), rtt);
+  EXPECT_EQ(base::Milliseconds(2000), rtt);
   EXPECT_EQ(rtt, estimator.GetHttpRTT().value());
   EXPECT_TRUE(
       estimator.GetRecentRTT(nqe::internal::OBSERVATION_CATEGORY_TRANSPORT,
                              base::TimeTicks(), &rtt, nullptr));
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1000), rtt);
+  EXPECT_EQ(base::Milliseconds(1000), rtt);
   EXPECT_EQ(rtt, estimator.GetTransportRTT().value());
   EXPECT_TRUE(
       estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps));
@@ -901,12 +901,12 @@
   EXPECT_TRUE(estimator.GetRecentRTT(nqe::internal::OBSERVATION_CATEGORY_HTTP,
                                      base::TimeTicks(), &rtt, nullptr));
   // Taken from network_quality_estimator_params.cc.
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1726), rtt);
+  EXPECT_EQ(base::Milliseconds(1726), rtt);
   EXPECT_EQ(rtt, estimator.GetHttpRTT().value());
   EXPECT_TRUE(
       estimator.GetRecentRTT(nqe::internal::OBSERVATION_CATEGORY_TRANSPORT,
                              base::TimeTicks(), &rtt, nullptr));
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1531), rtt);
+  EXPECT_EQ(base::Milliseconds(1531), rtt);
   EXPECT_EQ(rtt, estimator.GetTransportRTT().value());
   EXPECT_TRUE(
       estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps));
@@ -918,12 +918,12 @@
       NetworkChangeNotifier::ConnectionType::CONNECTION_3G, "test-3");
   EXPECT_TRUE(estimator.GetRecentRTT(nqe::internal::OBSERVATION_CATEGORY_HTTP,
                                      base::TimeTicks(), &rtt, nullptr));
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(273), rtt);
+  EXPECT_EQ(base::Milliseconds(273), rtt);
   EXPECT_EQ(rtt, estimator.GetHttpRTT().value());
   EXPECT_TRUE(
       estimator.GetRecentRTT(nqe::internal::OBSERVATION_CATEGORY_TRANSPORT,
                              base::TimeTicks(), &rtt, nullptr));
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(209), rtt);
+  EXPECT_EQ(base::Milliseconds(209), rtt);
   EXPECT_EQ(rtt, estimator.GetTransportRTT().value());
   EXPECT_TRUE(
       estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps));
@@ -992,12 +992,10 @@
   };
 
   for (const auto& test : tests) {
-    estimator.set_recent_http_rtt(
-        base::TimeDelta::FromMilliseconds(test.rtt_msec));
+    estimator.set_recent_http_rtt(base::Milliseconds(test.rtt_msec));
     estimator.set_start_time_null_downlink_throughput_kbps(INT32_MAX);
     estimator.set_recent_downlink_throughput_kbps(INT32_MAX);
-    estimator.SetStartTimeNullHttpRtt(
-        base::TimeDelta::FromMilliseconds(test.rtt_msec));
+    estimator.SetStartTimeNullHttpRtt(base::Milliseconds(test.rtt_msec));
     EXPECT_EQ(test.expected_ect, estimator.GetEffectiveConnectionType());
   }
 }
@@ -1060,14 +1058,12 @@
     estimator.SimulateNetworkChange(NetworkChangeNotifier::CONNECTION_WIFI,
                                     "test");
 
-    estimator.set_recent_http_rtt(
-        base::TimeDelta::FromMilliseconds(test.set_rtt_msec));
+    estimator.set_recent_http_rtt(base::Milliseconds(test.set_rtt_msec));
     estimator.set_start_time_null_downlink_throughput_kbps(INT32_MAX);
     estimator.set_recent_downlink_throughput_kbps(test.set_downstream_kbps);
     estimator.set_start_time_null_downlink_throughput_kbps(
         test.set_downstream_kbps);
-    estimator.SetStartTimeNullHttpRtt(
-        base::TimeDelta::FromMilliseconds(test.set_rtt_msec));
+    estimator.SetStartTimeNullHttpRtt(base::Milliseconds(test.set_rtt_msec));
     EXPECT_EQ(test.expected_ect, estimator.GetEffectiveConnectionType());
     EXPECT_EQ(test.expected_downstream_throughput,
               estimator.GetDownstreamThroughputKbps().value());
@@ -1117,10 +1113,8 @@
     estimator.SimulateNetworkChange(NetworkChangeNotifier::CONNECTION_WIFI,
                                     "test");
 
-    estimator.SetStartTimeNullHttpRtt(
-        base::TimeDelta::FromMilliseconds(test.http_rtt_msec));
-    estimator.set_recent_http_rtt(
-        base::TimeDelta::FromMilliseconds(test.http_rtt_msec));
+    estimator.SetStartTimeNullHttpRtt(base::Milliseconds(test.http_rtt_msec));
+    estimator.set_recent_http_rtt(base::Milliseconds(test.http_rtt_msec));
     estimator.set_start_time_null_downlink_throughput_kbps(INT32_MAX);
     estimator.set_recent_downlink_throughput_kbps(INT32_MAX);
     EXPECT_EQ(test.expected_ect, estimator.GetEffectiveConnectionType());
@@ -1156,10 +1150,8 @@
   };
 
   for (const auto& test : tests) {
-    estimator.SetStartTimeNullHttpRtt(
-        base::TimeDelta::FromMilliseconds(test.rtt_msec));
-    estimator.set_recent_http_rtt(
-        base::TimeDelta::FromMilliseconds(test.rtt_msec));
+    estimator.SetStartTimeNullHttpRtt(base::Milliseconds(test.rtt_msec));
+    estimator.set_recent_http_rtt(base::Milliseconds(test.rtt_msec));
     estimator.set_start_time_null_downlink_throughput_kbps(
         test.downlink_throughput_kbps);
     estimator.set_recent_downlink_throughput_kbps(
@@ -1174,9 +1166,8 @@
 TEST_F(NetworkQualityEstimatorTest, TestGetMetricsSince) {
   std::map<std::string, std::string> variation_params;
 
-  const base::TimeDelta rtt_threshold_3g =
-      base::TimeDelta::FromMilliseconds(30);
-  const base::TimeDelta rtt_threshold_4g = base::TimeDelta::FromMilliseconds(1);
+  const base::TimeDelta rtt_threshold_3g = base::Milliseconds(30);
+  const base::TimeDelta rtt_threshold_4g = base::Milliseconds(1);
 
   variation_params["3G.ThresholdMedianHttpRTTMsec"] =
       base::NumberToString(rtt_threshold_3g.InMilliseconds());
@@ -1185,15 +1176,15 @@
 
   TestNetworkQualityEstimator estimator(variation_params);
   base::TimeTicks now = base::TimeTicks::Now();
-  base::TimeTicks old = now - base::TimeDelta::FromMilliseconds(1);
+  base::TimeTicks old = now - base::Milliseconds(1);
   ASSERT_NE(old, now);
 
   estimator.SimulateNetworkChange(
       NetworkChangeNotifier::ConnectionType::CONNECTION_WIFI, "test");
 
   const int32_t old_downlink_kbps = 1;
-  const base::TimeDelta old_url_rtt = base::TimeDelta::FromMilliseconds(1);
-  const base::TimeDelta old_tcp_rtt = base::TimeDelta::FromMilliseconds(10);
+  const base::TimeDelta old_url_rtt = base::Milliseconds(1);
+  const base::TimeDelta old_tcp_rtt = base::Milliseconds(10);
 
   DCHECK_LT(old_url_rtt, rtt_threshold_3g);
   DCHECK_LT(old_tcp_rtt, rtt_threshold_3g);
@@ -1216,8 +1207,8 @@
   }
 
   const int32_t new_downlink_kbps = 100;
-  const base::TimeDelta new_url_rtt = base::TimeDelta::FromMilliseconds(100);
-  const base::TimeDelta new_tcp_rtt = base::TimeDelta::FromMilliseconds(1000);
+  const base::TimeDelta new_url_rtt = base::Milliseconds(100);
+  const base::TimeDelta new_tcp_rtt = base::Milliseconds(1000);
 
   DCHECK_NE(old_downlink_kbps, new_downlink_kbps);
   DCHECK_NE(old_url_rtt, new_url_rtt);
@@ -1248,13 +1239,12 @@
     int32_t expected_downstream_throughput;
     EffectiveConnectionType expected_effective_connection_type;
   } tests[] = {
-      {now + base::TimeDelta::FromSeconds(10), false,
-       base::TimeDelta::FromMilliseconds(0),
-       base::TimeDelta::FromMilliseconds(0), 0, EFFECTIVE_CONNECTION_TYPE_4G},
+      {now + base::Seconds(10), false, base::Milliseconds(0),
+       base::Milliseconds(0), 0, EFFECTIVE_CONNECTION_TYPE_4G},
       {now, true, new_url_rtt, new_tcp_rtt, new_downlink_kbps,
        EFFECTIVE_CONNECTION_TYPE_3G},
-      {old - base::TimeDelta::FromMicroseconds(500), true, old_url_rtt,
-       old_tcp_rtt, old_downlink_kbps, EFFECTIVE_CONNECTION_TYPE_4G},
+      {old - base::Microseconds(500), true, old_url_rtt, old_tcp_rtt,
+       old_downlink_kbps, EFFECTIVE_CONNECTION_TYPE_4G},
 
   };
   for (const auto& test : tests) {
@@ -1377,10 +1367,10 @@
 
   EXPECT_EQ(0U, observer.effective_connection_types().size());
 
-  estimator.SetStartTimeNullHttpRtt(base::TimeDelta::FromMilliseconds(1500));
+  estimator.SetStartTimeNullHttpRtt(base::Milliseconds(1500));
   estimator.set_start_time_null_downlink_throughput_kbps(164);
 
-  tick_clock.Advance(base::TimeDelta::FromMinutes(60));
+  tick_clock.Advance(base::Minutes(60));
 
   std::unique_ptr<URLRequest> request(
       context.CreateRequest(estimator.GetEchoURL(), DEFAULT_PRIORITY,
@@ -1420,7 +1410,7 @@
   EXPECT_EQ(1U, observer.effective_connection_types().size());
 
   // Change in connection type should send out notification to the observers.
-  estimator.SetStartTimeNullHttpRtt(base::TimeDelta::FromMilliseconds(500));
+  estimator.SetStartTimeNullHttpRtt(base::Milliseconds(500));
   estimator.SimulateNetworkChange(NetworkChangeNotifier::CONNECTION_WIFI,
                                   "test");
   EXPECT_EQ(3U, observer.effective_connection_types().size());
@@ -1428,7 +1418,7 @@
   // A change in effective connection type does not trigger notification to the
   // observers, since it is not accompanied by any new observation or a network
   // change event.
-  estimator.SetStartTimeNullHttpRtt(base::TimeDelta::FromMilliseconds(100));
+  estimator.SetStartTimeNullHttpRtt(base::Milliseconds(100));
   EXPECT_EQ(4U, observer.effective_connection_types().size());
 
   TestEffectiveConnectionTypeObserver observer_2;
@@ -1457,19 +1447,21 @@
     EffectiveConnectionType expected_type;
   } tests[] = {
       {
-          base::TimeDelta::FromMilliseconds(200),
-          base::TimeDelta::FromMilliseconds(100),
-          base::TimeDelta::FromMilliseconds(200), EFFECTIVE_CONNECTION_TYPE_4G,
+          base::Milliseconds(200),
+          base::Milliseconds(100),
+          base::Milliseconds(200),
+          EFFECTIVE_CONNECTION_TYPE_4G,
       },
       {
-          base::TimeDelta::FromMilliseconds(100),
-          base::TimeDelta::FromMilliseconds(200),
-          base::TimeDelta::FromMilliseconds(200), EFFECTIVE_CONNECTION_TYPE_4G,
+          base::Milliseconds(100),
+          base::Milliseconds(200),
+          base::Milliseconds(200),
+          EFFECTIVE_CONNECTION_TYPE_4G,
       },
       {
-          base::TimeDelta::FromMilliseconds(100),
-          base::TimeDelta::FromMilliseconds(4000),
-          base::TimeDelta::FromMilliseconds(4000),
+          base::Milliseconds(100),
+          base::Milliseconds(4000),
+          base::Milliseconds(4000),
           EFFECTIVE_CONNECTION_TYPE_SLOW_2G,
       },
   };
@@ -1480,7 +1472,7 @@
     TestNetworkQualityEstimator estimator(variation_params);
 
     base::SimpleTestTickClock tick_clock;
-    tick_clock.Advance(base::TimeDelta::FromSeconds(1));
+    tick_clock.Advance(base::Seconds(1));
     estimator.SetTickClockForTesting(&tick_clock);
 
     estimator.SetStartTimeNullHttpRtt(test.http_rtt);
@@ -1513,42 +1505,52 @@
     EffectiveConnectionType expected_type;
   } tests[] = {
       {
-          base::TimeDelta::FromMilliseconds(200),
-          base::TimeDelta::FromMilliseconds(100), true,
-          base::TimeDelta::FromMilliseconds(200), EFFECTIVE_CONNECTION_TYPE_4G,
+          base::Milliseconds(200),
+          base::Milliseconds(100),
+          true,
+          base::Milliseconds(200),
+          EFFECTIVE_CONNECTION_TYPE_4G,
       },
       {
           // |http_rtt| is lower than |end_to_end_rtt|. The HTTP RTT estimate
           // should be set to |end_to_end_rtt|.
-          base::TimeDelta::FromMilliseconds(100),
-          base::TimeDelta::FromMilliseconds(200), true,
-          base::TimeDelta::FromMilliseconds(200), EFFECTIVE_CONNECTION_TYPE_4G,
+          base::Milliseconds(100),
+          base::Milliseconds(200),
+          true,
+          base::Milliseconds(200),
+          EFFECTIVE_CONNECTION_TYPE_4G,
       },
       {
           // Not enough samples. End to End RTT should not be used.
-          base::TimeDelta::FromMilliseconds(100),
-          base::TimeDelta::FromMilliseconds(200), false,
-          base::TimeDelta::FromMilliseconds(100), EFFECTIVE_CONNECTION_TYPE_4G,
+          base::Milliseconds(100),
+          base::Milliseconds(200),
+          false,
+          base::Milliseconds(100),
+          EFFECTIVE_CONNECTION_TYPE_4G,
       },
       {
-          base::TimeDelta::FromMilliseconds(100),
-          base::TimeDelta::FromMilliseconds(4000), true,
-          base::TimeDelta::FromMilliseconds(4000),
+          base::Milliseconds(100),
+          base::Milliseconds(4000),
+          true,
+          base::Milliseconds(4000),
           EFFECTIVE_CONNECTION_TYPE_SLOW_2G,
       },
       {
           // Verify end to end RTT places an upper bound on HTTP RTT when enough
           // samples are present.
-          base::TimeDelta::FromMilliseconds(3000),
-          base::TimeDelta::FromMilliseconds(100), true,
-          base::TimeDelta::FromMilliseconds(300), EFFECTIVE_CONNECTION_TYPE_3G,
+          base::Milliseconds(3000),
+          base::Milliseconds(100),
+          true,
+          base::Milliseconds(300),
+          EFFECTIVE_CONNECTION_TYPE_3G,
       },
       {
           // Verify end to end RTT does not place an upper bound on HTTP RTT
           // when enough samples are not present.
-          base::TimeDelta::FromMilliseconds(3000),
-          base::TimeDelta::FromMilliseconds(100), false,
-          base::TimeDelta::FromMilliseconds(3000),
+          base::Milliseconds(3000),
+          base::Milliseconds(100),
+          false,
+          base::Milliseconds(3000),
           EFFECTIVE_CONNECTION_TYPE_SLOW_2G,
       },
   };
@@ -1560,7 +1562,7 @@
     TestNetworkQualityEstimator estimator(variation_params);
 
     base::SimpleTestTickClock tick_clock;
-    tick_clock.Advance(base::TimeDelta::FromSeconds(1));
+    tick_clock.Advance(base::Seconds(1));
     estimator.SetTickClockForTesting(&tick_clock);
 
     estimator.SetStartTimeNullHttpRtt(test.http_rtt);
@@ -1609,14 +1611,14 @@
   int notifications_received = observer.notifications_received();
   EXPECT_EQ(0, notifications_received);
 
-  base::TimeDelta http_rtt(base::TimeDelta::FromMilliseconds(100));
-  base::TimeDelta transport_rtt(base::TimeDelta::FromMilliseconds(200));
+  base::TimeDelta http_rtt(base::Milliseconds(100));
+  base::TimeDelta transport_rtt(base::Milliseconds(200));
   int32_t downstream_throughput_kbps(300);
   estimator.SetStartTimeNullHttpRtt(http_rtt);
   estimator.SetStartTimeNullTransportRtt(transport_rtt);
   estimator.set_start_time_null_downlink_throughput_kbps(
       downstream_throughput_kbps);
-  tick_clock.Advance(base::TimeDelta::FromMinutes(60));
+  tick_clock.Advance(base::Minutes(60));
 
   std::unique_ptr<URLRequest> request(
       context.CreateRequest(estimator.GetEchoURL(), DEFAULT_PRIORITY,
@@ -1652,8 +1654,8 @@
   // A change in effective connection type does not trigger notification to the
   // observers, since it is not accompanied by any new observation or a network
   // change event.
-  estimator.SetStartTimeNullHttpRtt(base::TimeDelta::FromMilliseconds(10000));
-  estimator.SetStartTimeNullHttpRtt(base::TimeDelta::FromMilliseconds(1));
+  estimator.SetStartTimeNullHttpRtt(base::Milliseconds(10000));
+  estimator.SetStartTimeNullHttpRtt(base::Milliseconds(1));
   EXPECT_EQ(2, observer.notifications_received() - notifications_received);
 
   TestRTTAndThroughputEstimatesObserver observer_2;
@@ -1695,7 +1697,7 @@
   TestNetworkQualityEstimator estimator(variation_params);
   estimator.SetTickClockForTesting(&tick_clock);
   estimator.AddEffectiveConnectionTypeObserver(&observer);
-  tick_clock.Advance(base::TimeDelta::FromMinutes(60));
+  tick_clock.Advance(base::Minutes(60));
 
   size_t expected_effective_connection_type_notifications = 0;
   estimator.set_recent_effective_connection_type(
@@ -1755,7 +1757,7 @@
   EXPECT_EQ(0U, observer.effective_connection_types().size());
 
   estimator.set_recent_effective_connection_type(EFFECTIVE_CONNECTION_TYPE_2G);
-  tick_clock.Advance(base::TimeDelta::FromMinutes(60));
+  tick_clock.Advance(base::Minutes(60));
 
   std::unique_ptr<URLRequest> request(
       context.CreateRequest(estimator.GetEchoURL(), DEFAULT_PRIORITY,
@@ -1891,8 +1893,8 @@
                              base::TimeTicks(), &rtt, nullptr));
 
   // Verify that observations from TCP and QUIC are passed on to the observers.
-  base::TimeDelta tcp_rtt(base::TimeDelta::FromMilliseconds(1));
-  base::TimeDelta quic_rtt(base::TimeDelta::FromMilliseconds(2));
+  base::TimeDelta tcp_rtt(base::Milliseconds(1));
+  base::TimeDelta quic_rtt(base::Milliseconds(2));
 
   // Use a public IP address so that the socket watcher runs the RTT callback.
   IPAddressList ip_list;
@@ -1944,7 +1946,7 @@
 
 TEST_F(NetworkQualityEstimatorTest, TestGlobalSocketWatcherThrottle) {
   base::SimpleTestTickClock tick_clock;
-  tick_clock.Advance(base::TimeDelta::FromSeconds(1));
+  tick_clock.Advance(base::Seconds(1));
 
   std::map<std::string, std::string> variation_params;
   variation_params["add_default_platform_observations"] = "false";
@@ -1954,7 +1956,7 @@
   TestRTTObserver rtt_observer;
   estimator.AddRTTObserver(&rtt_observer);
 
-  const base::TimeDelta tcp_rtt(base::TimeDelta::FromMilliseconds(1));
+  const base::TimeDelta tcp_rtt(base::Milliseconds(1));
 
   TestDelegate test_delegate;
   TestURLRequestContext context(true);
@@ -2019,7 +2021,7 @@
 // which in turn notifies registered RTT observers.
 TEST_F(NetworkQualityEstimatorTest, MAYBE_TestTCPSocketRTT) {
   base::SimpleTestTickClock tick_clock;
-  tick_clock.Advance(base::TimeDelta::FromSeconds(1));
+  tick_clock.Advance(base::Seconds(1));
 
   base::HistogramTester histogram_tester;
   TestRTTObserver rtt_observer;
@@ -2444,17 +2446,15 @@
                                       1);
 
   // Taken from network_quality_estimator_params.cc.
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1800),
+  EXPECT_EQ(base::Milliseconds(1800),
             rtt_observer.last_rtt(
                 NETWORK_QUALITY_OBSERVATION_SOURCE_HTTP_CACHED_ESTIMATE));
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1500),
+  EXPECT_EQ(base::Milliseconds(1500),
             rtt_observer.last_rtt(
                 NETWORK_QUALITY_OBSERVATION_SOURCE_TRANSPORT_CACHED_ESTIMATE));
   EXPECT_EQ(1u, throughput_observer.observations().size());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1800),
-            rtt_throughput_observer.http_rtt());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1500),
-            rtt_throughput_observer.transport_rtt());
+  EXPECT_EQ(base::Milliseconds(1800), rtt_throughput_observer.http_rtt());
+  EXPECT_EQ(base::Milliseconds(1500), rtt_throughput_observer.transport_rtt());
   EXPECT_EQ(75, rtt_throughput_observer.downstream_throughput_kbps());
   EXPECT_LE(
       1u,
@@ -2472,17 +2472,15 @@
   estimator.SimulateNetworkChange(
       NetworkChangeNotifier::ConnectionType::CONNECTION_WIFI, network_name);
 
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(3600),
+  EXPECT_EQ(base::Milliseconds(3600),
             rtt_observer.last_rtt(
                 NETWORK_QUALITY_OBSERVATION_SOURCE_HTTP_CACHED_ESTIMATE));
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(3000),
+  EXPECT_EQ(base::Milliseconds(3000),
             rtt_observer.last_rtt(
                 NETWORK_QUALITY_OBSERVATION_SOURCE_TRANSPORT_CACHED_ESTIMATE));
   EXPECT_EQ(2U, throughput_observer.observations().size());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(3600),
-            rtt_throughput_observer.http_rtt());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(3000),
-            rtt_throughput_observer.transport_rtt());
+  EXPECT_EQ(base::Milliseconds(3600), rtt_throughput_observer.http_rtt());
+  EXPECT_EQ(base::Milliseconds(3000), rtt_throughput_observer.transport_rtt());
   EXPECT_EQ(40, rtt_throughput_observer.downstream_throughput_kbps());
   EXPECT_LE(
       2u,
@@ -2647,10 +2645,10 @@
                                       1);
 
   // Taken from network_quality_estimator_params.cc.
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1800),
+  EXPECT_EQ(base::Milliseconds(1800),
             rtt_observer.last_rtt(
                 NETWORK_QUALITY_OBSERVATION_SOURCE_HTTP_CACHED_ESTIMATE));
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1500),
+  EXPECT_EQ(base::Milliseconds(1500),
             rtt_observer.last_rtt(
                 NETWORK_QUALITY_OBSERVATION_SOURCE_TRANSPORT_CACHED_ESTIMATE));
   EXPECT_EQ(2u, rtt_observer.observations().size());
@@ -2730,7 +2728,7 @@
 // received.
 TEST_F(NetworkQualityEstimatorTest, MaybeComputeECTAfterNSamples) {
   base::SimpleTestTickClock tick_clock;
-  tick_clock.Advance(base::TimeDelta::FromMinutes(1));
+  tick_clock.Advance(base::Minutes(1));
 
   std::map<std::string, std::string> variation_params;
   variation_params["add_default_platform_observations"] = "false";
@@ -2740,9 +2738,9 @@
   estimator.SetTickClockForTesting(&tick_clock);
   estimator.SimulateNetworkChange(
       NetworkChangeNotifier::ConnectionType::CONNECTION_UNKNOWN, "test");
-  tick_clock.Advance(base::TimeDelta::FromMinutes(1));
+  tick_clock.Advance(base::Minutes(1));
 
-  const base::TimeDelta rtt = base::TimeDelta::FromSeconds(1);
+  const base::TimeDelta rtt = base::Seconds(1);
   uint64_t host = 1u;
 
   // Fill the observation buffer so that ECT computations are not triggered due
@@ -2753,9 +2751,9 @@
         NETWORK_QUALITY_OBSERVATION_SOURCE_HTTP, host));
   }
   EXPECT_EQ(rtt, estimator.GetHttpRTT().value());
-  tick_clock.Advance(base::TimeDelta::FromMinutes(60));
+  tick_clock.Advance(base::Minutes(60));
 
-  const base::TimeDelta rtt_new = base::TimeDelta::FromSeconds(3);
+  const base::TimeDelta rtt_new = base::Seconds(3);
   for (size_t i = 0;
        i < estimator.params()->count_new_observations_received_compute_ect();
        ++i) {
@@ -2782,7 +2780,7 @@
           ->hanging_request_upper_bound_min_http_rtt()
           .InMilliseconds();
 
-  estimator.SetStartTimeNullHttpRtt(base::TimeDelta::FromMilliseconds(5));
+  estimator.SetStartTimeNullHttpRtt(base::Milliseconds(5));
   base::RunLoop().RunUntilIdle();
   estimator.SimulateNetworkChange(
       NetworkChangeNotifier::ConnectionType::CONNECTION_UNKNOWN, "test");
@@ -2790,11 +2788,11 @@
   const struct {
     base::TimeDelta observed_http_rtt;
   } tests[] = {
-      {base::TimeDelta::FromMilliseconds(10)},
-      {base::TimeDelta::FromMilliseconds(100)},
-      {base::TimeDelta::FromMilliseconds(hanging_request_threshold - 1)},
-      {base::TimeDelta::FromMilliseconds(hanging_request_threshold + 1)},
-      {base::TimeDelta::FromMilliseconds(1000)},
+      {base::Milliseconds(10)},
+      {base::Milliseconds(100)},
+      {base::Milliseconds(hanging_request_threshold - 1)},
+      {base::Milliseconds(hanging_request_threshold + 1)},
+      {base::Milliseconds(1000)},
   };
 
   for (const auto& test : tests) {
@@ -2817,11 +2815,11 @@
   int hanging_request_http_rtt_upper_bound_transport_rtt_multiplier = 8;
 
   TestNetworkQualityEstimator estimator(variation_params);
-  estimator.SetStartTimeNullHttpRtt(base::TimeDelta::FromMilliseconds(10));
+  estimator.SetStartTimeNullHttpRtt(base::Milliseconds(10));
 
   base::RunLoop().RunUntilIdle();
   estimator.set_start_time_null_end_to_end_rtt(
-      base::TimeDelta::FromMilliseconds(end_to_end_rtt_milliseconds));
+      base::Milliseconds(end_to_end_rtt_milliseconds));
   estimator.SimulateNetworkChange(
       NetworkChangeNotifier::ConnectionType::CONNECTION_UNKNOWN, "test");
 
@@ -2830,26 +2828,26 @@
     bool is_end_to_end_rtt_sample_count_enough;
     bool expect_hanging_request;
   } tests[] = {
-      {base::TimeDelta::FromMilliseconds(10), true, false},
-      {base::TimeDelta::FromMilliseconds(10), false, false},
-      {base::TimeDelta::FromMilliseconds(100), true, false},
+      {base::Milliseconds(10), true, false},
+      {base::Milliseconds(10), false, false},
+      {base::Milliseconds(100), true, false},
       // |observed_http_rtt| is not large enough. Request is expected to be
       // classified as not hanging.
-      {base::TimeDelta::FromMilliseconds(
+      {base::Milliseconds(
            (end_to_end_rtt_milliseconds *
             hanging_request_http_rtt_upper_bound_transport_rtt_multiplier) -
            1),
        true, false},
       // |observed_http_rtt| is large. Request is expected to be classified as
       // hanging.
-      {base::TimeDelta::FromMilliseconds(
+      {base::Milliseconds(
            (end_to_end_rtt_milliseconds *
             hanging_request_http_rtt_upper_bound_transport_rtt_multiplier) +
            1),
        true, true},
       // Not enough end-to-end RTT samples. Request is expected to be classified
       // as hanging.
-      {base::TimeDelta::FromMilliseconds(
+      {base::Milliseconds(
            end_to_end_rtt_milliseconds *
                hanging_request_http_rtt_upper_bound_transport_rtt_multiplier -
            1),
@@ -2878,7 +2876,7 @@
       "6";
   variation_params["hanging_request_upper_bound_min_http_rtt_msec"] = "500";
 
-  const base::TimeDelta transport_rtt = base::TimeDelta::FromMilliseconds(100);
+  const base::TimeDelta transport_rtt = base::Milliseconds(100);
 
   TestNetworkQualityEstimator estimator(variation_params);
 
@@ -2889,7 +2887,7 @@
           ->hanging_request_http_rtt_upper_bound_transport_rtt_multiplier();
 
   estimator.DisableOfflineCheckForTesting(true);
-  estimator.SetStartTimeNullHttpRtt(base::TimeDelta::FromMilliseconds(5));
+  estimator.SetStartTimeNullHttpRtt(base::Milliseconds(5));
 
   for (size_t i = 0; i < 100; ++i) {
     // Throw enough transport RTT samples so that transport RTT estimate is
@@ -2905,11 +2903,11 @@
   const struct {
     base::TimeDelta observed_http_rtt;
   } tests[] = {
-      {base::TimeDelta::FromMilliseconds(100)},
-      {base::TimeDelta::FromMilliseconds(500)},
-      {base::TimeDelta::FromMilliseconds(hanging_request_threshold - 1)},
-      {base::TimeDelta::FromMilliseconds(hanging_request_threshold + 1)},
-      {base::TimeDelta::FromMilliseconds(1000)},
+      {base::Milliseconds(100)},
+      {base::Milliseconds(500)},
+      {base::Milliseconds(hanging_request_threshold - 1)},
+      {base::Milliseconds(hanging_request_threshold + 1)},
+      {base::Milliseconds(1000)},
   };
 
   for (const auto& test : tests) {
@@ -2926,12 +2924,12 @@
   base::HistogramTester histogram_tester;
 
   estimator.OnPeerToPeerConnectionsCountChange(3u);
-  base::TimeDelta advance_1 = base::TimeDelta::FromMinutes(4);
+  base::TimeDelta advance_1 = base::Minutes(4);
   tick_clock.Advance(advance_1);
   histogram_tester.ExpectTotalCount("NQE.PeerToPeerConnectionsDuration", 0);
 
   estimator.OnPeerToPeerConnectionsCountChange(1u);
-  base::TimeDelta advance_2 = base::TimeDelta::FromMinutes(6);
+  base::TimeDelta advance_2 = base::Minutes(6);
   tick_clock.Advance(advance_2);
   histogram_tester.ExpectTotalCount("NQE.PeerToPeerConnectionsDuration", 0);
 
@@ -2969,7 +2967,7 @@
 TEST_F(NetworkQualityEstimatorTest, AdjustHttpRttBasedOnRttCounts) {
   for (const bool adjust_rtt_based_on_rtt_counts : {false, true}) {
     base::SimpleTestTickClock tick_clock;
-    tick_clock.Advance(base::TimeDelta::FromMinutes(1));
+    tick_clock.Advance(base::Minutes(1));
 
     std::map<std::string, std::string> variation_params;
     variation_params["add_default_platform_observations"] = "false";
@@ -2990,9 +2988,9 @@
     estimator.SetTickClockForTesting(&tick_clock);
     estimator.SimulateNetworkChange(
         NetworkChangeNotifier::ConnectionType::CONNECTION_UNKNOWN, "test");
-    tick_clock.Advance(base::TimeDelta::FromMinutes(1));
+    tick_clock.Advance(base::Minutes(1));
 
-    const base::TimeDelta rtt = base::TimeDelta::FromSeconds(1);
+    const base::TimeDelta rtt = base::Seconds(1);
     uint64_t host = 1u;
 
     // Fill the observation buffer so that ECT computations are not triggered
@@ -3007,9 +3005,9 @@
     // based only on the RTT of the observations added to the buffer.
     EXPECT_EQ(adjust_rtt_based_on_rtt_counts ? typical_http_rtt_4g : rtt,
               estimator.GetHttpRTT().value());
-    tick_clock.Advance(base::TimeDelta::FromMinutes(60));
+    tick_clock.Advance(base::Minutes(60));
 
-    const base::TimeDelta rtt_new = base::TimeDelta::FromSeconds(3);
+    const base::TimeDelta rtt_new = base::Seconds(3);
     for (size_t i = 0;
          i < estimator.params()->count_new_observations_received_compute_ect();
          ++i) {
diff --git a/net/nqe/network_quality_store_unittest.cc b/net/nqe/network_quality_store_unittest.cc
index 49b6f567..3383a13 100644
--- a/net/nqe/network_quality_store_unittest.cc
+++ b/net/nqe/network_quality_store_unittest.cc
@@ -24,16 +24,14 @@
   // Cached network quality for network with NetworkID (2G, "test1").
   const nqe::internal::CachedNetworkQuality cached_network_quality_2g_test1(
       tick_clock.NowTicks(),
-      nqe::internal::NetworkQuality(base::TimeDelta::FromSeconds(1),
-                                    base::TimeDelta::FromSeconds(1), 1),
+      nqe::internal::NetworkQuality(base::Seconds(1), base::Seconds(1), 1),
       EFFECTIVE_CONNECTION_TYPE_2G);
 
   {
     // When ECT is UNKNOWN, then the network quality is not cached.
     nqe::internal::CachedNetworkQuality cached_network_quality_unknown(
         tick_clock.NowTicks(),
-        nqe::internal::NetworkQuality(base::TimeDelta::FromSeconds(1),
-                                      base::TimeDelta::FromSeconds(1), 1),
+        nqe::internal::NetworkQuality(base::Seconds(1), base::Seconds(1), 1),
         EFFECTIVE_CONNECTION_TYPE_UNKNOWN);
 
     // Entry should not be added.
@@ -64,8 +62,7 @@
     nqe::internal::CachedNetworkQuality read_network_quality;
     nqe::internal::CachedNetworkQuality cached_network_quality(
         tick_clock.NowTicks(),
-        nqe::internal::NetworkQuality(base::TimeDelta::FromSeconds(2),
-                                      base::TimeDelta::FromSeconds(2), 2),
+        nqe::internal::NetworkQuality(base::Seconds(2), base::Seconds(2), 2),
         EFFECTIVE_CONNECTION_TYPE_2G);
     network_quality_store.Add(network_id, cached_network_quality);
     EXPECT_TRUE(
@@ -81,8 +78,7 @@
     nqe::internal::CachedNetworkQuality read_network_quality;
     nqe::internal::CachedNetworkQuality cached_network_quality(
         tick_clock.NowTicks(),
-        nqe::internal::NetworkQuality(base::TimeDelta::FromSeconds(3),
-                                      base::TimeDelta::FromSeconds(3), 3),
+        nqe::internal::NetworkQuality(base::Seconds(3), base::Seconds(3), 3),
         EFFECTIVE_CONNECTION_TYPE_3G);
     network_quality_store.Add(network_id, cached_network_quality);
     EXPECT_TRUE(
@@ -98,8 +94,7 @@
     nqe::internal::CachedNetworkQuality read_network_quality;
     nqe::internal::CachedNetworkQuality set_network_quality(
         tick_clock.NowTicks(),
-        nqe::internal::NetworkQuality(base::TimeDelta::FromSeconds(4),
-                                      base::TimeDelta::FromSeconds(4), 4),
+        nqe::internal::NetworkQuality(base::Seconds(4), base::Seconds(4), 4),
         EFFECTIVE_CONNECTION_TYPE_4G);
     network_quality_store.Add(network_id, set_network_quality);
     EXPECT_TRUE(
@@ -124,8 +119,7 @@
     nqe::internal::CachedNetworkQuality read_network_quality;
     const nqe::internal::CachedNetworkQuality cached_network_quality(
         tick_clock.NowTicks(),
-        nqe::internal::NetworkQuality(base::TimeDelta::FromSeconds(5),
-                                      base::TimeDelta::FromSeconds(5), 5),
+        nqe::internal::NetworkQuality(base::Seconds(5), base::Seconds(5), 5),
         EFFECTIVE_CONNECTION_TYPE_4G);
     network_quality_store.Add(network_id, cached_network_quality);
     EXPECT_TRUE(
@@ -151,14 +145,12 @@
   // Cached network quality for network with NetworkID (2G, "test1").
   const nqe::internal::CachedNetworkQuality cached_network_quality_strength_1(
       tick_clock.NowTicks(),
-      nqe::internal::NetworkQuality(base::TimeDelta::FromSeconds(1),
-                                    base::TimeDelta::FromSeconds(1), 1),
+      nqe::internal::NetworkQuality(base::Seconds(1), base::Seconds(1), 1),
       EFFECTIVE_CONNECTION_TYPE_2G);
 
   const nqe::internal::CachedNetworkQuality cached_network_quality_strength_3(
       tick_clock.NowTicks(),
-      nqe::internal::NetworkQuality(base::TimeDelta::FromSeconds(3),
-                                    base::TimeDelta::FromSeconds(3), 3),
+      nqe::internal::NetworkQuality(base::Seconds(3), base::Seconds(3), 3),
       EFFECTIVE_CONNECTION_TYPE_2G);
 
   {
@@ -237,14 +229,12 @@
   const nqe::internal::CachedNetworkQuality
       cached_network_quality_strength_unknown(
           tick_clock.NowTicks(),
-          nqe::internal::NetworkQuality(base::TimeDelta::FromSeconds(1),
-                                        base::TimeDelta::FromSeconds(1), 1),
+          nqe::internal::NetworkQuality(base::Seconds(1), base::Seconds(1), 1),
           EFFECTIVE_CONNECTION_TYPE_2G);
 
   const nqe::internal::CachedNetworkQuality cached_network_quality_strength_3(
       tick_clock.NowTicks(),
-      nqe::internal::NetworkQuality(base::TimeDelta::FromSeconds(3),
-                                    base::TimeDelta::FromSeconds(3), 3),
+      nqe::internal::NetworkQuality(base::Seconds(3), base::Seconds(3), 3),
       EFFECTIVE_CONNECTION_TYPE_2G);
 
   {
@@ -318,8 +308,7 @@
 
   nqe::internal::CachedNetworkQuality read_network_quality(
       tick_clock.NowTicks(),
-      nqe::internal::NetworkQuality(base::TimeDelta::FromSeconds(0),
-                                    base::TimeDelta::FromSeconds(0), 0),
+      nqe::internal::NetworkQuality(base::Seconds(0), base::Seconds(0), 0),
       EFFECTIVE_CONNECTION_TYPE_2G);
 
   for (size_t i = 0; i < network_count; ++i) {
@@ -328,11 +317,10 @@
 
     const nqe::internal::CachedNetworkQuality network_quality(
         tick_clock.NowTicks(),
-        nqe::internal::NetworkQuality(base::TimeDelta::FromSeconds(1),
-                                      base::TimeDelta::FromSeconds(1), 1),
+        nqe::internal::NetworkQuality(base::Seconds(1), base::Seconds(1), 1),
         EFFECTIVE_CONNECTION_TYPE_2G);
     network_quality_store.Add(network_id, network_quality);
-    tick_clock.Advance(base::TimeDelta::FromSeconds(1));
+    tick_clock.Advance(base::Seconds(1));
   }
 
   base::TimeTicks earliest_last_update_time = tick_clock.NowTicks();
@@ -343,8 +331,7 @@
 
     nqe::internal::CachedNetworkQuality network_quality(
         tick_clock.NowTicks(),
-        nqe::internal::NetworkQuality(base::TimeDelta::FromSeconds(0),
-                                      base::TimeDelta::FromSeconds(0), 0),
+        nqe::internal::NetworkQuality(base::Seconds(0), base::Seconds(0), 0),
         EFFECTIVE_CONNECTION_TYPE_2G);
     if (network_quality_store.GetById(network_id, &network_quality)) {
       cache_match_count++;
@@ -359,9 +346,8 @@
 
   // Ensure that only LRU entries are cached by comparing the
   // |earliest_last_update_time|.
-  EXPECT_EQ(
-      tick_clock.NowTicks() - base::TimeDelta::FromSeconds(cache_match_count),
-      earliest_last_update_time);
+  EXPECT_EQ(tick_clock.NowTicks() - base::Seconds(cache_match_count),
+            earliest_last_update_time);
 }
 
 }  // namespace
diff --git a/net/nqe/observation_buffer_unittest.cc b/net/nqe/observation_buffer_unittest.cc
index c0c3afc5..afc3bed8 100644
--- a/net/nqe/observation_buffer_unittest.cc
+++ b/net/nqe/observation_buffer_unittest.cc
@@ -32,10 +32,9 @@
   std::map<std::string, std::string> variation_params;
   NetworkQualityEstimatorParams params(variation_params);
   base::SimpleTestTickClock tick_clock;
-  tick_clock.Advance(base::TimeDelta::FromMinutes(1));
+  tick_clock.Advance(base::Minutes(1));
   ObservationBuffer observation_buffer(&params, &tick_clock, 1.0, 1.0);
-  const base::TimeTicks now =
-      base::TimeTicks() + base::TimeDelta::FromSeconds(1);
+  const base::TimeTicks now = base::TimeTicks() + base::Seconds(1);
   for (int i = 1; i <= 1000; ++i) {
     observation_buffer.AddObservation(
         Observation(i, now, INT32_MIN, NETWORK_QUALITY_OBSERVATION_SOURCE_TCP));
@@ -50,12 +49,12 @@
   std::map<std::string, std::string> variation_params;
   NetworkQualityEstimatorParams params(variation_params);
   base::SimpleTestTickClock tick_clock;
-  tick_clock.Advance(base::TimeDelta::FromMinutes(1));
+  tick_clock.Advance(base::Minutes(1));
 
   ObservationBuffer observation_buffer(&params, &tick_clock, 0.98, 1.0);
   const base::TimeTicks now = tick_clock.NowTicks();
   for (int i = 1; i <= 100; ++i) {
-    tick_clock.Advance(base::TimeDelta::FromSeconds(1));
+    tick_clock.Advance(base::Seconds(1));
     observation_buffer.AddObservation(
         Observation(i, tick_clock.NowTicks(), INT32_MIN,
                     NETWORK_QUALITY_OBSERVATION_SOURCE_TCP));
@@ -92,7 +91,7 @@
   std::map<std::string, std::string> variation_params;
   NetworkQualityEstimatorParams params(variation_params);
   base::SimpleTestTickClock tick_clock;
-  tick_clock.Advance(base::TimeDelta::FromMinutes(1));
+  tick_clock.Advance(base::Minutes(1));
   ObservationBuffer buffer(&params, &tick_clock, 0.5, 1.0);
   ASSERT_EQ(0u, buffer.Size());
   ASSERT_LT(0u, buffer.Capacity());
@@ -140,11 +139,10 @@
     EXPECT_NEAR(result.value(), i, 1.0);
   }
 
-  EXPECT_FALSE(
-      buffer
-          .GetPercentile(now + base::TimeDelta::FromSeconds(1), INT32_MIN, 50,
-                         &observations_count)
-          .has_value());
+  EXPECT_FALSE(buffer
+                   .GetPercentile(now + base::Seconds(1), INT32_MIN, 50,
+                                  &observations_count)
+                   .has_value());
   EXPECT_EQ(0u, observations_count);
 
   // Percentiles should be unavailable when no observations are available.
@@ -165,10 +163,10 @@
   std::map<std::string, std::string> variation_params;
   NetworkQualityEstimatorParams params(variation_params);
   base::SimpleTestTickClock tick_clock;
-  tick_clock.Advance(base::TimeDelta::FromMinutes(1));
+  tick_clock.Advance(base::Minutes(1));
   ObservationBuffer buffer(&params, &tick_clock, 0.5, 1.0);
   const base::TimeTicks now = tick_clock.NowTicks();
-  const base::TimeTicks very_old = now - base::TimeDelta::FromDays(7);
+  const base::TimeTicks very_old = now - base::Days(7);
 
   size_t observations_count;
 
@@ -206,8 +204,8 @@
     EXPECT_EQ(100u, observations_count);
   }
 
-  EXPECT_FALSE(buffer.GetPercentile(now + base::TimeDelta::FromSeconds(1),
-                                    INT32_MIN, 50, &observations_count));
+  EXPECT_FALSE(buffer.GetPercentile(now + base::Seconds(1), INT32_MIN, 50,
+                                    &observations_count));
   EXPECT_EQ(0u, observations_count);
 }
 
@@ -219,7 +217,7 @@
   std::map<std::string, std::string> variation_params;
   NetworkQualityEstimatorParams params(variation_params);
   base::SimpleTestTickClock tick_clock;
-  tick_clock.Advance(base::TimeDelta::FromMinutes(1));
+  tick_clock.Advance(base::Minutes(1));
   ObservationBuffer buffer(&params, &tick_clock, 1.0, 0.25);
   const base::TimeTicks now = tick_clock.NowTicks();
   int32_t high_rssi = 4;
@@ -266,7 +264,7 @@
   std::map<std::string, std::string> variation_params;
   NetworkQualityEstimatorParams params(variation_params);
   base::SimpleTestTickClock tick_clock;
-  tick_clock.Advance(base::TimeDelta::FromMinutes(1));
+  tick_clock.Advance(base::Minutes(1));
 
   ObservationBuffer buffer(&params, &tick_clock, 0.5, 1.0);
   const base::TimeTicks now = tick_clock.NowTicks();
@@ -329,10 +327,10 @@
   std::map<std::string, std::string> variation_params;
   NetworkQualityEstimatorParams params(variation_params);
   base::SimpleTestTickClock tick_clock;
-  tick_clock.Advance(base::TimeDelta::FromMinutes(1));
+  tick_clock.Advance(base::Minutes(1));
   ObservationBuffer buffer(&params, &tick_clock, 0.5, 1.0);
   base::TimeTicks now = tick_clock.NowTicks();
-  base::TimeTicks old = now - base::TimeDelta::FromMilliseconds(1);
+  base::TimeTicks old = now - base::Milliseconds(1);
   ASSERT_NE(old, now);
 
   // First sample has very old timestamp.
@@ -347,11 +345,9 @@
     bool expect_network_quality_available;
     base::TimeDelta expected_url_request_rtt;
   } tests[] = {
-      {now + base::TimeDelta::FromSeconds(10), false,
-       base::TimeDelta::FromMilliseconds(0)},
-      {now, true, base::TimeDelta::FromMilliseconds(100)},
-      {now - base::TimeDelta::FromMicroseconds(500), true,
-       base::TimeDelta::FromMilliseconds(100)},
+      {now + base::Seconds(10), false, base::Milliseconds(0)},
+      {now, true, base::Milliseconds(100)},
+      {now - base::Microseconds(500), true, base::Milliseconds(100)},
 
   };
 
diff --git a/net/nqe/socket_watcher.cc b/net/nqe/socket_watcher.cc
index 129f1d34..de705e9 100644
--- a/net/nqe/socket_watcher.cc
+++ b/net/nqe/socket_watcher.cc
@@ -109,7 +109,7 @@
   // tcp_socket_posix may sometimes report RTT as 1 microsecond when the RTT was
   // actually invalid. See:
   // https://cs.chromium.org/chromium/src/net/socket/tcp_socket_posix.cc?rcl=7ad660e34f2a996e381a85b2a515263003b0c171&l=106.
-  if (rtt <= base::TimeDelta::FromMicroseconds(1))
+  if (rtt <= base::Microseconds(1))
     return;
 
   if (!first_quic_rtt_notification_received_ &&
diff --git a/net/nqe/socket_watcher_unittest.cc b/net/nqe/socket_watcher_unittest.cc
index ce39ef3c..73638229 100644
--- a/net/nqe/socket_watcher_unittest.cc
+++ b/net/nqe/socket_watcher_unittest.cc
@@ -72,7 +72,7 @@
   }
 
   static void ResetExpectedCallbackParams() {
-    callback_rtt_ = base::TimeDelta::FromMilliseconds(0);
+    callback_rtt_ = base::Milliseconds(0);
     callback_host_ = absl::nullopt;
     callback_executed_ = false;
     should_notify_rtt_callback_ = false;
@@ -90,7 +90,7 @@
 };
 
 base::TimeDelta NetworkQualitySocketWatcherTest::callback_rtt_ =
-    base::TimeDelta::FromMilliseconds(0);
+    base::Milliseconds(0);
 
 absl::optional<IPHash> NetworkQualitySocketWatcherTest::callback_host_ =
     absl::nullopt;
@@ -115,28 +115,27 @@
 
   SocketWatcher socket_watcher(
       SocketPerformanceWatcherFactory::PROTOCOL_TCP, address_list,
-      base::TimeDelta::FromMilliseconds(2000), false,
-      base::ThreadTaskRunnerHandle::Get(),
+      base::Milliseconds(2000), false, base::ThreadTaskRunnerHandle::Get(),
       base::BindRepeating(OnUpdatedRTTAvailable),
       base::BindRepeating(ShouldNotifyRTTCallback), &tick_clock);
 
   EXPECT_TRUE(socket_watcher.ShouldNotifyUpdatedRTT());
-  socket_watcher.OnUpdatedRTTAvailable(base::TimeDelta::FromSeconds(10));
+  socket_watcher.OnUpdatedRTTAvailable(base::Seconds(10));
   base::RunLoop().RunUntilIdle();
   ResetExpectedCallbackParams();
 
   EXPECT_FALSE(socket_watcher.ShouldNotifyUpdatedRTT());
 
-  tick_clock.Advance(base::TimeDelta::FromMilliseconds(1000));
+  tick_clock.Advance(base::Milliseconds(1000));
   // Minimum interval between consecutive notifications is 2000 msec.
   EXPECT_FALSE(socket_watcher.ShouldNotifyUpdatedRTT());
 
   // Advance the clock by 1000 msec more so that the current time is at least
   // 2000 msec more than the last time |socket_watcher| received a notification.
-  tick_clock.Advance(base::TimeDelta::FromMilliseconds(1000));
+  tick_clock.Advance(base::Milliseconds(1000));
   EXPECT_TRUE(socket_watcher.ShouldNotifyUpdatedRTT());
   ResetExpectedCallbackParams();
-  socket_watcher.OnUpdatedRTTAvailable(base::TimeDelta::FromSeconds(10));
+  socket_watcher.OnUpdatedRTTAvailable(base::Seconds(10));
 
   EXPECT_FALSE(socket_watcher.ShouldNotifyUpdatedRTT());
 
@@ -160,13 +159,12 @@
 
   SocketWatcher socket_watcher(
       SocketPerformanceWatcherFactory::PROTOCOL_QUIC, address_list,
-      base::TimeDelta::FromMilliseconds(2000), false,
-      base::ThreadTaskRunnerHandle::Get(),
+      base::Milliseconds(2000), false, base::ThreadTaskRunnerHandle::Get(),
       base::BindRepeating(OnUpdatedRTTAvailableStoreParams),
       base::BindRepeating(ShouldNotifyRTTCallback), &tick_clock);
 
   EXPECT_TRUE(socket_watcher.ShouldNotifyUpdatedRTT());
-  socket_watcher.OnUpdatedRTTAvailable(base::TimeDelta::FromSeconds(10));
+  socket_watcher.OnUpdatedRTTAvailable(base::Seconds(10));
   base::RunLoop().RunUntilIdle();
   // First notification from a QUIC connection should be dropped, and it should
   // be possible to notify the |socket_watcher| again.
@@ -174,21 +172,20 @@
   EXPECT_TRUE(socket_watcher.ShouldNotifyUpdatedRTT());
   ResetExpectedCallbackParams();
 
-  socket_watcher.OnUpdatedRTTAvailable(base::TimeDelta::FromSeconds(2));
+  socket_watcher.OnUpdatedRTTAvailable(base::Seconds(2));
   base::RunLoop().RunUntilIdle();
-  EXPECT_EQ(base::TimeDelta::FromSeconds(2),
-            NetworkQualitySocketWatcherTest::callback_rtt());
+  EXPECT_EQ(base::Seconds(2), NetworkQualitySocketWatcherTest::callback_rtt());
   ResetExpectedCallbackParams();
 
   EXPECT_FALSE(socket_watcher.ShouldNotifyUpdatedRTT());
 
-  tick_clock.Advance(base::TimeDelta::FromMilliseconds(1000));
+  tick_clock.Advance(base::Milliseconds(1000));
   // Minimum interval between consecutive notifications is 2000 msec.
   EXPECT_FALSE(socket_watcher.ShouldNotifyUpdatedRTT());
 
   // Advance the clock by 1000 msec more so that the current time is at least
   // 2000 msec more than the last time |socket_watcher| received a notification.
-  tick_clock.Advance(base::TimeDelta::FromMilliseconds(1000));
+  tick_clock.Advance(base::Milliseconds(1000));
   EXPECT_TRUE(socket_watcher.ShouldNotifyUpdatedRTT());
 }
 
@@ -222,14 +219,13 @@
 
     SocketWatcher socket_watcher(
         SocketPerformanceWatcherFactory::PROTOCOL_TCP, address_list,
-        base::TimeDelta::FromMilliseconds(2000), false,
-        base::ThreadTaskRunnerHandle::Get(),
+        base::Milliseconds(2000), false, base::ThreadTaskRunnerHandle::Get(),
         base::BindRepeating(OnUpdatedRTTAvailable),
         base::BindRepeating(ShouldNotifyRTTCallback), &tick_clock);
 
     EXPECT_EQ(test.expect_should_notify_rtt,
               socket_watcher.ShouldNotifyUpdatedRTT());
-    socket_watcher.OnUpdatedRTTAvailable(base::TimeDelta::FromSeconds(10));
+    socket_watcher.OnUpdatedRTTAvailable(base::Seconds(10));
     base::RunLoop().RunUntilIdle();
     ResetExpectedCallbackParams();
 
@@ -262,14 +258,13 @@
 
     SocketWatcher socket_watcher(
         SocketPerformanceWatcherFactory::PROTOCOL_TCP, address_list,
-        base::TimeDelta::FromMilliseconds(2000), false,
-        base::ThreadTaskRunnerHandle::Get(),
+        base::Milliseconds(2000), false, base::ThreadTaskRunnerHandle::Get(),
         base::BindRepeating(OnUpdatedRTTAvailableStoreParams),
         base::BindRepeating(ShouldNotifyRTTCallback), &tick_clock);
     EXPECT_TRUE(socket_watcher.ShouldNotifyUpdatedRTT());
-    socket_watcher.OnUpdatedRTTAvailable(base::TimeDelta::FromSeconds(10));
+    socket_watcher.OnUpdatedRTTAvailable(base::Seconds(10));
     base::RunLoop().RunUntilIdle();
-    VerifyCallbackParams(base::TimeDelta::FromSeconds(10), test.host);
+    VerifyCallbackParams(base::Seconds(10), test.host);
     EXPECT_FALSE(socket_watcher.ShouldNotifyUpdatedRTT());
   }
 }
diff --git a/net/nqe/throughput_analyzer.cc b/net/nqe/throughput_analyzer.cc
index b2853e2..1453e8ec 100644
--- a/net/nqe/throughput_analyzer.cc
+++ b/net/nqe/throughput_analyzer.cc
@@ -278,9 +278,9 @@
   // Scale the |duration| to one HTTP RTT, and compute the number of bits that
   // would be received over a duration of one HTTP RTT.
   size_t bits_received_over_one_http_rtt =
-      bits_received * (network_quality_estimator_->GetHttpRTT().value_or(
-                           base::TimeDelta::FromSeconds(10)) /
-                       duration);
+      bits_received *
+      (network_quality_estimator_->GetHttpRTT().value_or(base::Seconds(10)) /
+       duration);
 
   // If |is_hanging| is true, it implies that less than
   // kCwndSizeKilobytes were received over a period of 1 HTTP RTT. For a network
@@ -447,8 +447,7 @@
   const base::TimeTicks now = tick_clock_->NowTicks();
 
   const base::TimeDelta http_rtt =
-      network_quality_estimator_->GetHttpRTT().value_or(
-          base::TimeDelta::FromSeconds(60));
+      network_quality_estimator_->GetHttpRTT().value_or(base::Seconds(60));
 
   size_t count_request_erased = 0;
   auto request_it = requests_.find(&request);
@@ -464,7 +463,7 @@
     }
   }
 
-  if (now - last_hanging_request_check_ >= base::TimeDelta::FromSeconds(1)) {
+  if (now - last_hanging_request_check_ >= base::Seconds(1)) {
     // Hanging request check is done at most once per second.
     last_hanging_request_check_ = now;
 
diff --git a/net/nqe/throughput_analyzer_unittest.cc b/net/nqe/throughput_analyzer_unittest.cc
index 3684215..8034898 100644
--- a/net/nqe/throughput_analyzer_unittest.cc
+++ b/net/nqe/throughput_analyzer_unittest.cc
@@ -260,8 +260,7 @@
   // Set HTTP RTT to a large value so that the throughput observation window
   // is not detected as hanging. In practice, this would be provided by
   // |network_quality_estimator| based on the recent observations.
-  network_quality_estimator.SetStartTimeNullHttpRtt(
-      base::TimeDelta::FromSeconds(100));
+  network_quality_estimator.SetStartTimeNullHttpRtt(base::Seconds(100));
 
   for (size_t num_requests = 1;
        num_requests <= params.throughput_min_requests_in_flight() + 1;
@@ -319,38 +318,50 @@
       {
           // |requests_hang_duration| is less than 5 times the HTTP RTT.
           // Requests should not be marked as hanging.
-          5, base::TimeDelta::FromMilliseconds(1000),
-          base::TimeDelta::FromMilliseconds(3000), true,
+          5,
+          base::Milliseconds(1000),
+          base::Milliseconds(3000),
+          true,
       },
       {
           // |requests_hang_duration| is more than 5 times the HTTP RTT.
           // Requests should be marked as hanging.
-          5, base::TimeDelta::FromMilliseconds(200),
-          base::TimeDelta::FromMilliseconds(3000), false,
+          5,
+          base::Milliseconds(200),
+          base::Milliseconds(3000),
+          false,
       },
       {
           // |requests_hang_duration| is less than
           // |hanging_request_min_duration_msec|. Requests should not be marked
           // as hanging.
-          1, base::TimeDelta::FromMilliseconds(100),
-          base::TimeDelta::FromMilliseconds(100), true,
+          1,
+          base::Milliseconds(100),
+          base::Milliseconds(100),
+          true,
       },
       {
           // |requests_hang_duration| is more than
           // |hanging_request_min_duration_msec|. Requests should be marked as
           // hanging.
-          1, base::TimeDelta::FromMilliseconds(2000),
-          base::TimeDelta::FromMilliseconds(3100), false,
+          1,
+          base::Milliseconds(2000),
+          base::Milliseconds(3100),
+          false,
       },
       {
           // |requests_hang_duration| is less than 5 times the HTTP RTT.
           // Requests should not be marked as hanging.
-          5, base::TimeDelta::FromSeconds(2), base::TimeDelta::FromSeconds(1),
+          5,
+          base::Seconds(2),
+          base::Seconds(1),
           true,
       },
       {
           // HTTP RTT is unavailable. Requests should not be marked as hanging.
-          5, base::TimeDelta::FromSeconds(-1), base::TimeDelta::FromSeconds(-1),
+          5,
+          base::Seconds(-1),
+          base::Seconds(-1),
           true,
       },
   };
@@ -435,8 +446,7 @@
   base::SimpleTestTickClock tick_clock;
 
   TestNetworkQualityEstimator network_quality_estimator;
-  network_quality_estimator.SetStartTimeNullHttpRtt(
-      base::TimeDelta::FromSeconds(1));
+  network_quality_estimator.SetStartTimeNullHttpRtt(base::Seconds(1));
   std::map<std::string, std::string> variation_params;
   variation_params["hanging_request_duration_http_rtt_multiplier"] = "5";
   variation_params["hanging_request_min_duration_msec"] = "2000";
@@ -468,17 +478,17 @@
   // request would be marked as hanging at t=6, and the second request at t=7
   // seconds.
   for (size_t i = 0; i < 2; ++i) {
-    tick_clock.Advance(base::TimeDelta::FromMilliseconds(1000));
+    tick_clock.Advance(base::Milliseconds(1000));
     throughput_analyzer.NotifyStartTransaction(*requests_not_local.at(i));
   }
 
   EXPECT_EQ(2u, throughput_analyzer.CountActiveInFlightRequests());
-  tick_clock.Advance(base::TimeDelta::FromMilliseconds(3500));
+  tick_clock.Advance(base::Milliseconds(3500));
   // Current time is t = 5.5 seconds.
   throughput_analyzer.EraseHangingRequests(*some_other_request);
   EXPECT_EQ(2u, throughput_analyzer.CountActiveInFlightRequests());
 
-  tick_clock.Advance(base::TimeDelta::FromMilliseconds(1000));
+  tick_clock.Advance(base::Milliseconds(1000));
   // Current time is t = 6.5 seconds.  One request should be marked as hanging.
   throughput_analyzer.EraseHangingRequests(*some_other_request);
   EXPECT_EQ(1u, throughput_analyzer.CountActiveInFlightRequests());
@@ -488,14 +498,14 @@
   throughput_analyzer.EraseHangingRequests(*some_other_request);
   EXPECT_EQ(1u, throughput_analyzer.CountActiveInFlightRequests());
 
-  tick_clock.Advance(base::TimeDelta::FromMilliseconds(600));
+  tick_clock.Advance(base::Milliseconds(600));
   // Current time is t = 7.1 seconds. Calling NotifyBytesRead again should not
   // run the hanging request checker since the last check was at t=6.5 seconds
   // (less than 1 second ago).
   throughput_analyzer.EraseHangingRequests(*some_other_request);
   EXPECT_EQ(1u, throughput_analyzer.CountActiveInFlightRequests());
 
-  tick_clock.Advance(base::TimeDelta::FromMilliseconds(400));
+  tick_clock.Advance(base::Milliseconds(400));
   // Current time is t = 7.5 seconds. Calling NotifyBytesRead again should run
   // the hanging request checker since the last check was at t=6.5 seconds (at
   // least 1 second ago).
@@ -509,8 +519,7 @@
   base::SimpleTestTickClock tick_clock;
 
   TestNetworkQualityEstimator network_quality_estimator;
-  network_quality_estimator.SetStartTimeNullHttpRtt(
-      base::TimeDelta::FromSeconds(1));
+  network_quality_estimator.SetStartTimeNullHttpRtt(base::Seconds(1));
   std::map<std::string, std::string> variation_params;
   variation_params["hanging_request_duration_http_rtt_multiplier"] = "5";
   variation_params["hanging_request_min_duration_msec"] = "2000";
@@ -538,7 +547,7 @@
   // hanging at t=5 seconds.
   throughput_analyzer.NotifyStartTransaction(*request_not_local);
 
-  tick_clock.Advance(base::TimeDelta::FromMilliseconds(4000));
+  tick_clock.Advance(base::Milliseconds(4000));
   // Current time is t=4.0 seconds.
 
   throughput_analyzer.EraseHangingRequests(*some_other_request);
@@ -546,12 +555,12 @@
 
   //  The request will be marked as hanging at t=9 seconds.
   throughput_analyzer.NotifyBytesRead(*request_not_local);
-  tick_clock.Advance(base::TimeDelta::FromMilliseconds(4000));
+  tick_clock.Advance(base::Milliseconds(4000));
   // Current time is t=8 seconds.
   throughput_analyzer.EraseHangingRequests(*some_other_request);
   EXPECT_EQ(1u, throughput_analyzer.CountActiveInFlightRequests());
 
-  tick_clock.Advance(base::TimeDelta::FromMilliseconds(2000));
+  tick_clock.Advance(base::Milliseconds(2000));
   // Current time is t=10 seconds.
   throughput_analyzer.EraseHangingRequests(*some_other_request);
   EXPECT_EQ(0u, throughput_analyzer.CountActiveInFlightRequests());
@@ -564,8 +573,7 @@
   base::SimpleTestTickClock tick_clock;
 
   TestNetworkQualityEstimator network_quality_estimator;
-  network_quality_estimator.SetStartTimeNullHttpRtt(
-      base::TimeDelta::FromSeconds(1));
+  network_quality_estimator.SetStartTimeNullHttpRtt(base::Seconds(1));
   std::map<std::string, std::string> variation_params;
   variation_params["hanging_request_duration_http_rtt_multiplier"] = "2";
   NetworkQualityEstimatorParams params(variation_params);
@@ -589,7 +597,7 @@
   throughput_analyzer.NotifyStartTransaction(*request_not_local);
   EXPECT_EQ(1u, throughput_analyzer.CountActiveInFlightRequests());
 
-  tick_clock.Advance(base::TimeDelta::FromMilliseconds(2900));
+  tick_clock.Advance(base::Milliseconds(2900));
   // Current time is t=2.9 seconds.
 
   throughput_analyzer.EraseHangingRequests(*request_not_local);
@@ -597,7 +605,7 @@
 
   // |request_not_local| should be deleted since it has been idle for 2.4
   // seconds.
-  tick_clock.Advance(base::TimeDelta::FromMilliseconds(500));
+  tick_clock.Advance(base::Milliseconds(500));
   throughput_analyzer.NotifyBytesRead(*request_not_local);
   EXPECT_EQ(0u, throughput_analyzer.CountActiveInFlightRequests());
 }
@@ -750,8 +758,7 @@
     // Set HTTP RTT to a large value so that the throughput observation window
     // is not detected as hanging. In practice, this would be provided by
     // |network_quality_estimator| based on the recent observations.
-    network_quality_estimator.SetStartTimeNullHttpRtt(
-        base::TimeDelta::FromSeconds(100));
+    network_quality_estimator.SetStartTimeNullHttpRtt(base::Seconds(100));
 
     TestThroughputAnalyzer throughput_analyzer(&network_quality_estimator,
                                                &params, tick_clock);
@@ -818,8 +825,7 @@
   // Set HTTP RTT to a large value so that the throughput observation window
   // is not detected as hanging. In practice, this would be provided by
   // |network_quality_estimator| based on the recent observations.
-  network_quality_estimator.SetStartTimeNullHttpRtt(
-      base::TimeDelta::FromSeconds(100));
+  network_quality_estimator.SetStartTimeNullHttpRtt(base::Seconds(100));
 
   TestThroughputAnalyzer throughput_analyzer(&network_quality_estimator,
                                              &params, tick_clock);
@@ -895,7 +901,7 @@
   TestNetworkQualityEstimator network_quality_estimator;
   int64_t http_rtt_msec = 1000;
   network_quality_estimator.SetStartTimeNullHttpRtt(
-      base::TimeDelta::FromMilliseconds(http_rtt_msec));
+      base::Milliseconds(http_rtt_msec));
   std::map<std::string, std::string> variation_params;
   variation_params["throughput_hanging_requests_cwnd_size_multiplier"] = "1";
   NetworkQualityEstimatorParams params(variation_params);
@@ -908,19 +914,13 @@
     base::TimeDelta window_duration;
     bool expected_hanging;
   } tests[] = {
-      {100, base::TimeDelta::FromMilliseconds(http_rtt_msec), true},
-      {kCwndSizeBits - 1, base::TimeDelta::FromMilliseconds(http_rtt_msec),
-       true},
-      {kCwndSizeBits + 1, base::TimeDelta::FromMilliseconds(http_rtt_msec),
-       false},
-      {2 * (kCwndSizeBits - 1),
-       base::TimeDelta::FromMilliseconds(http_rtt_msec * 2), true},
-      {2 * (kCwndSizeBits + 1),
-       base::TimeDelta::FromMilliseconds(http_rtt_msec * 2), false},
-      {kCwndSizeBits / 2 - 1,
-       base::TimeDelta::FromMilliseconds(http_rtt_msec / 2), true},
-      {kCwndSizeBits / 2 + 1,
-       base::TimeDelta::FromMilliseconds(http_rtt_msec / 2), false},
+      {100, base::Milliseconds(http_rtt_msec), true},
+      {kCwndSizeBits - 1, base::Milliseconds(http_rtt_msec), true},
+      {kCwndSizeBits + 1, base::Milliseconds(http_rtt_msec), false},
+      {2 * (kCwndSizeBits - 1), base::Milliseconds(http_rtt_msec * 2), true},
+      {2 * (kCwndSizeBits + 1), base::Milliseconds(http_rtt_msec * 2), false},
+      {kCwndSizeBits / 2 - 1, base::Milliseconds(http_rtt_msec / 2), true},
+      {kCwndSizeBits / 2 + 1, base::Milliseconds(http_rtt_msec / 2), false},
   };
 
   for (const auto& test : tests) {
diff --git a/net/proxy_resolution/configured_proxy_resolution_service_unittest.cc b/net/proxy_resolution/configured_proxy_resolution_service_unittest.cc
index bc0c754..b15fb3e7 100644
--- a/net/proxy_resolution/configured_proxy_resolution_service_unittest.cc
+++ b/net/proxy_resolution/configured_proxy_resolution_service_unittest.cc
@@ -65,7 +65,7 @@
   Mode GetNextDelay(int error,
                     base::TimeDelta current_delay,
                     base::TimeDelta* next_delay) const override {
-    *next_delay = base::TimeDelta::FromMilliseconds(1);
+    *next_delay = base::Milliseconds(1);
     return MODE_USE_TIMER;
   }
 
@@ -82,7 +82,7 @@
   Mode GetNextDelay(int error,
                     base::TimeDelta current_delay,
                     base::TimeDelta* next_delay) const override {
-    *next_delay = base::TimeDelta::FromDays(60);
+    *next_delay = base::Days(60);
     return MODE_USE_TIMER;
   }
 
@@ -2019,7 +2019,7 @@
   ProxyInfo proxy_info;
   proxy_info.UseProxyList(proxy_list);
   const ProxyRetryInfoMap& retry_info = service.proxy_retry_info();
-  service.MarkProxiesAsBadUntil(proxy_info, base::TimeDelta::FromSeconds(1),
+  service.MarkProxiesAsBadUntil(proxy_info, base::Seconds(1),
                                 additional_bad_proxies, NetLogWithSource());
   ASSERT_EQ(4u, retry_info.size());
   for (const ProxyServer& proxy_server :
@@ -3568,7 +3568,7 @@
 
   int error;
   ConfiguredProxyResolutionService::PacPollPolicy::Mode mode;
-  const base::TimeDelta initial_delay = base::TimeDelta::FromMilliseconds(-1);
+  const base::TimeDelta initial_delay = base::Milliseconds(-1);
   base::TimeDelta delay = initial_delay;
 
   // --------------------------------------------------
@@ -3765,7 +3765,7 @@
   service.SetPacFileFetchers(std::move(fetcher),
                              std::make_unique<DoNothingDhcpPacFileFetcher>());
 
-  const base::TimeDelta kConfigDelay = base::TimeDelta::FromSeconds(5);
+  const base::TimeDelta kConfigDelay = base::Seconds(5);
   service.set_stall_proxy_auto_config_delay(kConfigDelay);
 
   // Initialize by making and completing a proxy request.
@@ -3789,9 +3789,9 @@
 
   // Expect IP address notification to trigger a fetch after wait period.
   NetworkChangeNotifier::NotifyObserversOfIPAddressChangeForTests();
-  FastForwardBy(kConfigDelay - base::TimeDelta::FromMilliseconds(2));
+  FastForwardBy(kConfigDelay - base::Milliseconds(2));
   EXPECT_FALSE(fetcher_ptr->has_pending_request());
-  FastForwardBy(base::TimeDelta::FromMilliseconds(2));
+  FastForwardBy(base::Milliseconds(2));
   EXPECT_TRUE(fetcher_ptr->has_pending_request());
 
   // Leave pending fetch hanging.
diff --git a/net/proxy_resolution/multi_threaded_proxy_resolver_unittest.cc b/net/proxy_resolution/multi_threaded_proxy_resolver_unittest.cc
index 98cdd8d6..fd71114 100644
--- a/net/proxy_resolution/multi_threaded_proxy_resolver_unittest.cc
+++ b/net/proxy_resolution/multi_threaded_proxy_resolver_unittest.cc
@@ -565,8 +565,7 @@
   // of the worker thread. The test will pass regardless, so this race doesn't
   // cause flakiness. However the destruction during execution is a more
   // interesting case to test.
-  factory().resolvers()[0]->SetResolveLatency(
-      base::TimeDelta::FromMilliseconds(100));
+  factory().resolvers()[0]->SetResolveLatency(base::Milliseconds(100));
 
   // Unblock the worker thread and delete the underlying
   // MultiThreadedProxyResolver immediately.
diff --git a/net/proxy_resolution/pac_file_decider.cc b/net/proxy_resolution/pac_file_decider.cc
index 4a4bfbd..d5d4a89 100644
--- a/net/proxy_resolution/pac_file_decider.cc
+++ b/net/proxy_resolution/pac_file_decider.cc
@@ -295,9 +295,8 @@
       &PacFileDecider::OnIOCompletion, base::Unretained(this));
 
   next_state_ = STATE_QUICK_CHECK_COMPLETE;
-  quick_check_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(kQuickCheckDelayMs),
-      base::BindOnce(callback, ERR_NAME_NOT_RESOLVED));
+  quick_check_timer_.Start(FROM_HERE, base::Milliseconds(kQuickCheckDelayMs),
+                           base::BindOnce(callback, ERR_NAME_NOT_RESOLVED));
 
   return resolve_request_->Start(callback);
 }
diff --git a/net/proxy_resolution/pac_file_decider_unittest.cc b/net/proxy_resolution/pac_file_decider_unittest.cc
index bfbc8331..4da2601 100644
--- a/net/proxy_resolution/pac_file_decider_unittest.cc
+++ b/net/proxy_resolution/pac_file_decider_unittest.cc
@@ -657,11 +657,10 @@
   TestCompletionCallback callback;
   RecordingTestNetLog log;
   PacFileDecider decider(&fetcher, &dhcp_fetcher, &log);
-  EXPECT_THAT(
-      decider.Start(
-          ProxyConfigWithAnnotation(config, TRAFFIC_ANNOTATION_FOR_TESTS),
-          base::TimeDelta::FromMilliseconds(1), true, callback.callback()),
-      IsError(ERR_IO_PENDING));
+  EXPECT_THAT(decider.Start(ProxyConfigWithAnnotation(
+                                config, TRAFFIC_ANNOTATION_FOR_TESTS),
+                            base::Milliseconds(1), true, callback.callback()),
+              IsError(ERR_IO_PENDING));
 
   EXPECT_THAT(callback.WaitForResult(), IsError(kFailedDownloading));
   EXPECT_FALSE(decider.script_data().data);
@@ -700,11 +699,10 @@
   TestCompletionCallback callback;
   RecordingTestNetLog log;
   PacFileDecider decider(&fetcher, &dhcp_fetcher, &log);
-  EXPECT_THAT(
-      decider.Start(
-          ProxyConfigWithAnnotation(config, TRAFFIC_ANNOTATION_FOR_TESTS),
-          base::TimeDelta::FromSeconds(-5), true, callback.callback()),
-      IsError(kFailedDownloading));
+  EXPECT_THAT(decider.Start(ProxyConfigWithAnnotation(
+                                config, TRAFFIC_ANNOTATION_FOR_TESTS),
+                            base::Seconds(-5), true, callback.callback()),
+              IsError(kFailedDownloading));
   EXPECT_FALSE(decider.script_data().data);
 
   // Check the NetLog was filled correctly.
diff --git a/net/proxy_resolution/pac_file_fetcher_impl.cc b/net/proxy_resolution/pac_file_fetcher_impl.cc
index 59259447..f39ed29 100644
--- a/net/proxy_resolution/pac_file_fetcher_impl.cc
+++ b/net/proxy_resolution/pac_file_fetcher_impl.cc
@@ -47,8 +47,7 @@
 //
 // 30 seconds is a compromise between those competing goals. This value also
 // appears to match Microsoft Edge (based on testing).
-constexpr base::TimeDelta kDefaultMaxDuration =
-    base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kDefaultMaxDuration = base::Seconds(30);
 
 // Returns true if |mime_type| is one of the known PAC mime type.
 bool IsPacMimeType(const std::string& mime_type) {
diff --git a/net/proxy_resolution/pac_file_fetcher_impl_unittest.cc b/net/proxy_resolution/pac_file_fetcher_impl_unittest.cc
index 4c33a92..9919dfd 100644
--- a/net/proxy_resolution/pac_file_fetcher_impl_unittest.cc
+++ b/net/proxy_resolution/pac_file_fetcher_impl_unittest.cc
@@ -424,7 +424,7 @@
 
   // Set the timeout period to 0.5 seconds.
   base::TimeDelta prev_timeout =
-      pac_fetcher->SetTimeoutConstraint(base::TimeDelta::FromMilliseconds(500));
+      pac_fetcher->SetTimeoutConstraint(base::Milliseconds(500));
 
   // Try fetching a URL which takes 1.2 seconds. We should abort the request
   // after 500 ms, and fail with a timeout error.
diff --git a/net/proxy_resolution/proxy_config_service_ios.cc b/net/proxy_resolution/proxy_config_service_ios.cc
index d9db6aa..250d3f10 100644
--- a/net/proxy_resolution/proxy_config_service_ios.cc
+++ b/net/proxy_resolution/proxy_config_service_ios.cc
@@ -102,7 +102,7 @@
 
 ProxyConfigServiceIOS::ProxyConfigServiceIOS(
     const NetworkTrafficAnnotationTag& traffic_annotation)
-    : PollingProxyConfigService(base::TimeDelta::FromSeconds(kPollIntervalSec),
+    : PollingProxyConfigService(base::Seconds(kPollIntervalSec),
                                 GetCurrentProxyConfig,
                                 traffic_annotation) {}
 
diff --git a/net/proxy_resolution/proxy_config_service_linux.cc b/net/proxy_resolution/proxy_config_service_linux.cc
index 63c369a..c4cb56d 100644
--- a/net/proxy_resolution/proxy_config_service_linux.cc
+++ b/net/proxy_resolution/proxy_config_service_linux.cc
@@ -457,9 +457,9 @@
     // We don't use Reset() because the timer may not yet be running.
     // (In that case Stop() is a no-op.)
     debounce_timer_->Stop();
-    debounce_timer_->Start(FROM_HERE,
-        base::TimeDelta::FromMilliseconds(kDebounceTimeoutMilliseconds),
-        this, &SettingGetterImplGSettings::OnDebouncedNotification);
+    debounce_timer_->Start(
+        FROM_HERE, base::Milliseconds(kDebounceTimeoutMilliseconds), this,
+        &SettingGetterImplGSettings::OnDebouncedNotification);
   }
 
   // gsettings notification callback, dispatched on the default glib main loop.
@@ -977,8 +977,8 @@
       // We don't use Reset() because the timer may not yet be running.
       // (In that case Stop() is a no-op.)
       debounce_timer_->Stop();
-      debounce_timer_->Start(FROM_HERE, base::TimeDelta::FromMilliseconds(
-          kDebounceTimeoutMilliseconds), this,
+      debounce_timer_->Start(
+          FROM_HERE, base::Milliseconds(kDebounceTimeoutMilliseconds), this,
           &SettingGetterImplKDE::OnDebouncedNotification);
     }
   }
diff --git a/net/proxy_resolution/proxy_list_unittest.cc b/net/proxy_resolution/proxy_list_unittest.cc
index ea711d9..deeb732 100644
--- a/net/proxy_resolution/proxy_list_unittest.cc
+++ b/net/proxy_resolution/proxy_list_unittest.cc
@@ -104,8 +104,7 @@
   // Retry info that marks a proxy as being bad for a *very* long time (to avoid
   // the test depending on the current time.)
   ProxyRetryInfo proxy_retry_info;
-  proxy_retry_info.bad_until =
-      base::TimeTicks::Now() + base::TimeDelta::FromDays(1);
+  proxy_retry_info.bad_until = base::TimeTicks::Now() + base::Days(1);
 
   // Call DeprioritizeBadProxies with an empty map -- should have no effect.
   {
@@ -186,9 +185,9 @@
     std::vector<ProxyServer> bad_proxies;
     bad_proxies.push_back(proxy_server);
     list.SetFromPacString("PROXY foopy1:80;PROXY foopy2:80;PROXY foopy3:80");
-    list.UpdateRetryInfoOnFallback(
-        &retry_info_map, base::TimeDelta::FromSeconds(60), true, bad_proxies,
-        ERR_PROXY_CONNECTION_FAILED, net_log);
+    list.UpdateRetryInfoOnFallback(&retry_info_map, base::Seconds(60), true,
+                                   bad_proxies, ERR_PROXY_CONNECTION_FAILED,
+                                   net_log);
     EXPECT_TRUE(retry_info_map.end() != retry_info_map.find("foopy1:80"));
     EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED,
               retry_info_map[ProxyServerToProxyUri(proxy_server)].net_error);
@@ -206,8 +205,7 @@
     std::vector<ProxyServer> bad_proxies;
     bad_proxies.push_back(proxy_server);
     list.SetFromPacString("PROXY foopy1:80;PROXY foopy2:80;PROXY foopy3:80");
-    list.UpdateRetryInfoOnFallback(&retry_info_map,
-                                   base::TimeDelta::FromSeconds(60), true,
+    list.UpdateRetryInfoOnFallback(&retry_info_map, base::Seconds(60), true,
                                    bad_proxies, OK, net_log);
     EXPECT_TRUE(retry_info_map.end() != retry_info_map.find("foopy1:80"));
     EXPECT_THAT(retry_info_map[ProxyServerToProxyUri(proxy_server)].net_error,
@@ -226,9 +224,9 @@
     std::vector<ProxyServer> bad_proxies;
     bad_proxies.push_back(proxy_server);
     list.SetFromPacString("PROXY foopy1:80;PROXY foopy2:80;PROXY foopy3:80");
-    list.UpdateRetryInfoOnFallback(
-        &retry_info_map, base::TimeDelta::FromSeconds(60), true, bad_proxies,
-        ERR_NAME_RESOLUTION_FAILED, net_log);
+    list.UpdateRetryInfoOnFallback(&retry_info_map, base::Seconds(60), true,
+                                   bad_proxies, ERR_NAME_RESOLUTION_FAILED,
+                                   net_log);
     EXPECT_TRUE(retry_info_map.end() != retry_info_map.find("foopy1:80"));
     EXPECT_EQ(ERR_NAME_RESOLUTION_FAILED,
               retry_info_map[ProxyServerToProxyUri(proxy_server)].net_error);
@@ -246,8 +244,7 @@
     std::vector<ProxyServer> bad_proxies;
     bad_proxies.push_back(proxy_server);
     list.SetFromPacString("DIRECT;PROXY foopy2:80;PROXY foopy3:80");
-    list.UpdateRetryInfoOnFallback(&retry_info_map,
-                                   base::TimeDelta::FromSeconds(60), true,
+    list.UpdateRetryInfoOnFallback(&retry_info_map, base::Seconds(60), true,
                                    bad_proxies, OK, net_log);
     EXPECT_TRUE(retry_info_map.end() == retry_info_map.find("foopy2:80"));
     EXPECT_TRUE(retry_info_map.end() == retry_info_map.find("foopy3:80"));
@@ -262,23 +259,21 @@
     list.SetFromPacString("PROXY foopy1:80;PROXY foopy2:80;PROXY foopy3:80");
 
     // First, mark the proxy as bad for 60 seconds.
-    list.UpdateRetryInfoOnFallback(
-        &retry_info_map, base::TimeDelta::FromSeconds(60), true,
-        std::vector<ProxyServer>(), ERR_PROXY_CONNECTION_FAILED, net_log);
+    list.UpdateRetryInfoOnFallback(&retry_info_map, base::Seconds(60), true,
+                                   std::vector<ProxyServer>(),
+                                   ERR_PROXY_CONNECTION_FAILED, net_log);
     // Next, mark the same proxy as bad for 1 second. This call should have no
     // effect, since this would cause the bad proxy to be retried sooner than
     // the existing retry info.
-    list.UpdateRetryInfoOnFallback(&retry_info_map,
-                                   base::TimeDelta::FromSeconds(1), false,
+    list.UpdateRetryInfoOnFallback(&retry_info_map, base::Seconds(1), false,
                                    std::vector<ProxyServer>(), OK, net_log);
     EXPECT_TRUE(retry_info_map.end() != retry_info_map.find("foopy1:80"));
     EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED,
               retry_info_map["foopy1:80"].net_error);
     EXPECT_TRUE(retry_info_map["foopy1:80"].try_while_bad);
-    EXPECT_EQ(base::TimeDelta::FromSeconds(60),
-              retry_info_map["foopy1:80"].current_delay);
+    EXPECT_EQ(base::Seconds(60), retry_info_map["foopy1:80"].current_delay);
     EXPECT_GT(retry_info_map["foopy1:80"].bad_until,
-              base::TimeTicks::Now() + base::TimeDelta::FromSeconds(30));
+              base::TimeTicks::Now() + base::Seconds(30));
     EXPECT_TRUE(retry_info_map.end() == retry_info_map.find("foopy2:80"));
     EXPECT_TRUE(retry_info_map.end() == retry_info_map.find("foopy3:80"));
   }
@@ -292,23 +287,21 @@
     list.SetFromPacString("PROXY foopy1:80;PROXY foopy2:80;PROXY foopy3:80");
 
     // First, mark the proxy as bad for 1 second.
-    list.UpdateRetryInfoOnFallback(&retry_info_map,
-                                   base::TimeDelta::FromSeconds(1), false,
+    list.UpdateRetryInfoOnFallback(&retry_info_map, base::Seconds(1), false,
                                    std::vector<ProxyServer>(), OK, net_log);
     // Next, mark the same proxy as bad for 60 seconds. This call should replace
     // the existing retry info with the new 60 second retry info.
-    list.UpdateRetryInfoOnFallback(
-        &retry_info_map, base::TimeDelta::FromSeconds(60), true,
-        std::vector<ProxyServer>(), ERR_PROXY_CONNECTION_FAILED, net_log);
+    list.UpdateRetryInfoOnFallback(&retry_info_map, base::Seconds(60), true,
+                                   std::vector<ProxyServer>(),
+                                   ERR_PROXY_CONNECTION_FAILED, net_log);
 
     EXPECT_TRUE(retry_info_map.end() != retry_info_map.find("foopy1:80"));
     EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED,
               retry_info_map["foopy1:80"].net_error);
     EXPECT_TRUE(retry_info_map["foopy1:80"].try_while_bad);
-    EXPECT_EQ(base::TimeDelta::FromSeconds(60),
-              retry_info_map["foopy1:80"].current_delay);
+    EXPECT_EQ(base::Seconds(60), retry_info_map["foopy1:80"].current_delay);
     EXPECT_GT(retry_info_map["foopy1:80"].bad_until,
-              base::TimeTicks::Now() + base::TimeDelta::FromSeconds(30));
+              base::TimeTicks::Now() + base::Seconds(30));
     EXPECT_TRUE(retry_info_map.end() == retry_info_map.find("foopy2:80"));
     EXPECT_TRUE(retry_info_map.end() == retry_info_map.find("foopy3:80"));
   }
diff --git a/net/proxy_resolution/win/dhcp_pac_file_adapter_fetcher_win.cc b/net/proxy_resolution/win/dhcp_pac_file_adapter_fetcher_win.cc
index e35787b..e2b72e4 100644
--- a/net/proxy_resolution/win/dhcp_pac_file_adapter_fetcher_win.cc
+++ b/net/proxy_resolution/win/dhcp_pac_file_adapter_fetcher_win.cc
@@ -204,7 +204,7 @@
 }
 
 base::TimeDelta DhcpPacFileAdapterFetcher::ImplGetTimeout() const {
-  return base::TimeDelta::FromMilliseconds(kTimeoutMs);
+  return base::Milliseconds(kTimeoutMs);
 }
 
 // static
diff --git a/net/proxy_resolution/win/dhcp_pac_file_adapter_fetcher_win_unittest.cc b/net/proxy_resolution/win/dhcp_pac_file_adapter_fetcher_win_unittest.cc
index ca2b786..861b1c7 100644
--- a/net/proxy_resolution/win/dhcp_pac_file_adapter_fetcher_win_unittest.cc
+++ b/net/proxy_resolution/win/dhcp_pac_file_adapter_fetcher_win_unittest.cc
@@ -49,7 +49,7 @@
       URLRequestContext* context,
       scoped_refptr<base::TaskRunner> task_runner)
       : DhcpPacFileAdapterFetcher(context, task_runner),
-        dhcp_delay_(base::TimeDelta::FromMilliseconds(1)),
+        dhcp_delay_(base::Milliseconds(1)),
         timeout_(TestTimeouts::action_timeout()),
         configured_url_(kPacUrl),
         fetcher_delay_ms_(1),
@@ -66,9 +66,9 @@
     // the caller.
     fetcher_ = new MockPacFileFetcher();
     if (fetcher_delay_ms_ != -1) {
-      fetcher_timer_.Start(
-          FROM_HERE, base::TimeDelta::FromMilliseconds(fetcher_delay_ms_), this,
-          &MockDhcpPacFileAdapterFetcher::OnFetcherTimer);
+      fetcher_timer_.Start(FROM_HERE, base::Milliseconds(fetcher_delay_ms_),
+                           this,
+                           &MockDhcpPacFileAdapterFetcher::OnFetcherTimer);
     }
     return base::WrapUnique(fetcher_);
   }
@@ -212,7 +212,7 @@
   // of seconds.
   FetcherClient client;
   client.fetcher_->dhcp_delay_ = TestTimeouts::action_max_timeout();
-  client.fetcher_->timeout_ = base::TimeDelta::FromMilliseconds(25);
+  client.fetcher_->timeout_ = base::Milliseconds(25);
 
   base::ElapsedTimer timer;
   client.RunTest();
@@ -252,7 +252,7 @@
   client.RunTest();
   int max_loops = 4;
   while (!client.fetcher_->IsWaitingForFetcher() && max_loops--) {
-    base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(10));
+    base::PlatformThread::Sleep(base::Milliseconds(10));
     base::RunLoop().RunUntilIdle();
   }
   client.fetcher_->Cancel();
diff --git a/net/proxy_resolution/win/dhcp_pac_file_fetcher_win.cc b/net/proxy_resolution/win/dhcp_pac_file_fetcher_win.cc
index 88373a6..909cc9e 100644
--- a/net/proxy_resolution/win/dhcp_pac_file_fetcher_win.cc
+++ b/net/proxy_resolution/win/dhcp_pac_file_fetcher_win.cc
@@ -104,8 +104,7 @@
 // How long to wait at maximum after we get results (a PAC file or
 // knowledge that no PAC file is configured) from whichever network
 // adapter finishes first.
-constexpr base::TimeDelta kMaxWaitAfterFirstResult =
-    base::TimeDelta::FromMilliseconds(400);
+constexpr base::TimeDelta kMaxWaitAfterFirstResult = base::Milliseconds(400);
 
 // A TaskRunner that never schedules more than |kMaxConcurrentDhcpLookupTasks|
 // tasks concurrently.
diff --git a/net/proxy_resolution/win/dhcp_pac_file_fetcher_win_unittest.cc b/net/proxy_resolution/win/dhcp_pac_file_fetcher_win_unittest.cc
index ac99dfd..a42ad8718 100644
--- a/net/proxy_resolution/win/dhcp_pac_file_fetcher_win_unittest.cc
+++ b/net/proxy_resolution/win/dhcp_pac_file_fetcher_win_unittest.cc
@@ -54,8 +54,8 @@
         finished_(false),
         on_completion_is_error_(false) {
     // Make sure the test ends.
-    timeout_.Start(FROM_HERE,
-        base::TimeDelta::FromSeconds(5), this, &RealFetchTester::OnTimeout);
+    timeout_.Start(FROM_HERE, base::Seconds(5), this,
+                   &RealFetchTester::OnTimeout);
   }
 
   void RunTest() {
@@ -76,8 +76,8 @@
     // Put the cancellation into the queue before even running the
     // test to avoid the chance of one of the adapter fetcher worker
     // threads completing before cancellation.  See http://crbug.com/86756.
-    cancel_timer_.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(0),
-                        this, &RealFetchTester::OnCancelTimer);
+    cancel_timer_.Start(FROM_HERE, base::Milliseconds(0), this,
+                        &RealFetchTester::OnCancelTimer);
     RunTest();
   }
 
@@ -111,7 +111,7 @@
   // do something a bit more clever to track worker threads even when the
   // DhcpPacFileFetcherWin state machine has finished.
   void FinishTestAllowCleanup() {
-    base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(30));
+    base::PlatformThread::Sleep(base::Milliseconds(30));
   }
 
   std::unique_ptr<URLRequestContext> context_;
@@ -168,7 +168,7 @@
 
     std::string ImplGetPacURLFromDhcp(
         const std::string& adapter_name) override {
-      base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(20));
+      base::PlatformThread::Sleep(base::Milliseconds(20));
       return DhcpQuery::ImplGetPacURLFromDhcp(adapter_name);
     }
 
@@ -225,8 +225,8 @@
              CompletionOnceCallback callback,
              const NetworkTrafficAnnotationTag traffic_annotation) override {
     callback_ = std::move(callback);
-    timer_.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(fetch_delay_ms_),
-                 this, &DummyDhcpPacFileAdapterFetcher::OnTimer);
+    timer_.Start(FROM_HERE, base::Milliseconds(fetch_delay_ms_), this,
+                 &DummyDhcpPacFileAdapterFetcher::OnTimer);
   }
 
   void Cancel() override {
@@ -409,8 +409,7 @@
 
   void RunMessageLoopUntilWorkerDone() {
     DCHECK(fetcher_.adapter_query_.get());
-    while (!fetcher_.worker_finished_event_.TimedWait(
-        base::TimeDelta::FromMilliseconds(10))) {
+    while (!fetcher_.worker_finished_event_.TimedWait(base::Milliseconds(10))) {
       base::RunLoop().RunUntilIdle();
     }
   }
@@ -462,11 +461,11 @@
 void TestNormalCaseURLConfiguredMultipleAdapters(FetcherClient* client) {
   client->fetcher_.ConfigureAndPushBackAdapter(
       "most_preferred", true, ERR_PAC_NOT_IN_DHCP, std::u16string(),
-      base::TimeDelta::FromMilliseconds(1));
-  client->fetcher_.ConfigureAndPushBackAdapter(
-      "second", true, OK, u"bingo", base::TimeDelta::FromMilliseconds(50));
-  client->fetcher_.ConfigureAndPushBackAdapter(
-      "third", true, OK, u"rocko", base::TimeDelta::FromMilliseconds(1));
+      base::Milliseconds(1));
+  client->fetcher_.ConfigureAndPushBackAdapter("second", true, OK, u"bingo",
+                                               base::Milliseconds(50));
+  client->fetcher_.ConfigureAndPushBackAdapter("third", true, OK, u"rocko",
+                                               base::Milliseconds(1));
   client->RunTest();
   client->RunMessageLoopUntilComplete();
   ASSERT_THAT(client->result_, IsOk());
@@ -484,13 +483,13 @@
     FetcherClient* client) {
   client->fetcher_.ConfigureAndPushBackAdapter(
       "most_preferred", true, ERR_PAC_NOT_IN_DHCP, std::u16string(),
-      base::TimeDelta::FromMilliseconds(1));
+      base::Milliseconds(1));
   // This will time out.
   client->fetcher_.ConfigureAndPushBackAdapter("second", false, ERR_IO_PENDING,
                                                u"bingo",
                                                TestTimeouts::action_timeout());
-  client->fetcher_.ConfigureAndPushBackAdapter(
-      "third", true, OK, u"rocko", base::TimeDelta::FromMilliseconds(1));
+  client->fetcher_.ConfigureAndPushBackAdapter("third", true, OK, u"rocko",
+                                               base::Milliseconds(1));
   client->RunTest();
   client->RunMessageLoopUntilComplete();
   ASSERT_THAT(client->result_, IsOk());
@@ -509,7 +508,7 @@
     FetcherClient* client) {
   client->fetcher_.ConfigureAndPushBackAdapter(
       "most_preferred", true, ERR_PAC_NOT_IN_DHCP, std::u16string(),
-      base::TimeDelta::FromMilliseconds(1));
+      base::Milliseconds(1));
   // This will time out.
   client->fetcher_.ConfigureAndPushBackAdapter("second", false, ERR_IO_PENDING,
                                                u"bingo",
@@ -518,10 +517,10 @@
   // should be chosen.
   client->fetcher_.ConfigureAndPushBackAdapter(
       "third", true, ERR_HTTP_RESPONSE_CODE_FAILURE, std::u16string(),
-      base::TimeDelta::FromMilliseconds(1));
+      base::Milliseconds(1));
   client->fetcher_.ConfigureAndPushBackAdapter(
       "fourth", true, ERR_NOT_IMPLEMENTED, std::u16string(),
-      base::TimeDelta::FromMilliseconds(1));
+      base::Milliseconds(1));
   client->RunTest();
   client->RunMessageLoopUntilComplete();
   ASSERT_THAT(client->result_, IsError(ERR_HTTP_RESPONSE_CODE_FAILURE));
@@ -539,7 +538,7 @@
 void TestFailureCaseNoURLConfigured(FetcherClient* client) {
   client->fetcher_.ConfigureAndPushBackAdapter(
       "most_preferred", true, ERR_PAC_NOT_IN_DHCP, std::u16string(),
-      base::TimeDelta::FromMilliseconds(1));
+      base::Milliseconds(1));
   // This will time out.
   client->fetcher_.ConfigureAndPushBackAdapter("second", false, ERR_IO_PENDING,
                                                u"bingo",
@@ -548,7 +547,7 @@
   // should be chosen.
   client->fetcher_.ConfigureAndPushBackAdapter(
       "third", true, ERR_PAC_NOT_IN_DHCP, std::u16string(),
-      base::TimeDelta::FromMilliseconds(1));
+      base::Milliseconds(1));
   client->RunTest();
   client->RunMessageLoopUntilComplete();
   ASSERT_THAT(client->result_, IsError(ERR_PAC_NOT_IN_DHCP));
@@ -583,10 +582,9 @@
   // time.  Verify that we complete quickly and do not wait for the slow
   // adapters, i.e. we finish before timeout.
   client->fetcher_.ConfigureAndPushBackAdapter(
-      "1", true, ERR_PAC_NOT_IN_DHCP, std::u16string(),
-      base::TimeDelta::FromMilliseconds(1));
-  client->fetcher_.ConfigureAndPushBackAdapter(
-      "2", true, OK, u"bingo", base::TimeDelta::FromMilliseconds(1));
+      "1", true, ERR_PAC_NOT_IN_DHCP, std::u16string(), base::Milliseconds(1));
+  client->fetcher_.ConfigureAndPushBackAdapter("2", true, OK, u"bingo",
+                                               base::Milliseconds(1));
   client->fetcher_.ConfigureAndPushBackAdapter(
       "3", true, OK, u"wrongo", TestTimeouts::action_max_timeout());
 
diff --git a/net/proxy_resolution/win/proxy_config_service_win.cc b/net/proxy_resolution/win/proxy_config_service_win.cc
index d37488a..70fdd50 100644
--- a/net/proxy_resolution/win/proxy_config_service_win.cc
+++ b/net/proxy_resolution/win/proxy_config_service_win.cc
@@ -38,7 +38,7 @@
 
 ProxyConfigServiceWin::ProxyConfigServiceWin(
     const NetworkTrafficAnnotationTag& traffic_annotation)
-    : PollingProxyConfigService(base::TimeDelta::FromSeconds(kPollIntervalSec),
+    : PollingProxyConfigService(base::Seconds(kPollIntervalSec),
                                 &ProxyConfigServiceWin::GetCurrentProxyConfig,
                                 traffic_annotation) {
   NetworkChangeNotifier::AddNetworkChangeObserver(this);
diff --git a/net/quic/bidirectional_stream_quic_impl_unittest.cc b/net/quic/bidirectional_stream_quic_impl_unittest.cc
index 7c95157..e2a5a6c 100644
--- a/net/quic/bidirectional_stream_quic_impl_unittest.cc
+++ b/net/quic/bidirectional_stream_quic_impl_unittest.cc
@@ -551,7 +551,7 @@
           std::make_unique<quic::NullDecrypter>(quic::Perspective::IS_CLIENT));
     }
     base::TimeTicks dns_end = base::TimeTicks::Now();
-    base::TimeTicks dns_start = dns_end - base::TimeDelta::FromMilliseconds(1);
+    base::TimeTicks dns_start = dns_end - base::Milliseconds(1);
 
     session_ = std::make_unique<QuicChromiumClientSession>(
         connection_, std::move(socket),
diff --git a/net/quic/crypto/proof_verifier_chromium_test.cc b/net/quic/crypto/proof_verifier_chromium_test.cc
index 3030ab8..86ba6c2 100644
--- a/net/quic/crypto/proof_verifier_chromium_test.cc
+++ b/net/quic/crypto/proof_verifier_chromium_test.cc
@@ -659,8 +659,7 @@
   dummy_verifier.AddResultForCert(test_cert_.get(), dummy_result_,
                                   ERR_CERT_DATE_INVALID);
 
-  const base::Time expiry =
-      base::Time::Now() + base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = base::Time::Now() + base::Seconds(1000);
   transport_security_state_.AddHSTS(kTestHostname, expiry, true);
 
   ProofVerifierChromium proof_verifier(&dummy_verifier, &ct_policy_enforcer_,
@@ -790,7 +789,7 @@
 
   GURL report_uri("https://foo.test/");
   transport_security_state_.AddHPKP(
-      kCTAndPKPHost, base::Time::Now() + base::TimeDelta::FromDays(1),
+      kCTAndPKPHost, base::Time::Now() + base::Days(1),
       false /* include_subdomains */, spki_hashes, report_uri);
   ScopedTransportSecurityStateSource scoped_security_state_source;
 
diff --git a/net/quic/platform/impl/quic_chromium_clock.cc b/net/quic/platform/impl/quic_chromium_clock.cc
index 92c1860..a721f15 100644
--- a/net/quic/platform/impl/quic_chromium_clock.cc
+++ b/net/quic/platform/impl/quic_chromium_clock.cc
@@ -44,8 +44,7 @@
   // quic::QuicTime::Zero(). See QuicChromiumClock::Now() above.
   QuicTime::Delta offset_from_zero = quic_time - QuicTime::Zero();
   int64_t offset_from_zero_us = offset_from_zero.ToMicroseconds();
-  return base::TimeTicks() +
-         base::TimeDelta::FromMicroseconds(offset_from_zero_us);
+  return base::TimeTicks() + base::Microseconds(offset_from_zero_us);
 }
 
 }  // namespace quic
diff --git a/net/quic/platform/impl/quic_client_stats_impl.h b/net/quic/platform/impl/quic_client_stats_impl.h
index 0b72a7f..f7f03ac8 100644
--- a/net/quic/platform/impl/quic_client_stats_impl.h
+++ b/net/quic/platform/impl/quic_client_stats_impl.h
@@ -22,10 +22,9 @@
 #define QUIC_CLIENT_HISTOGRAM_TIMES_IMPL(name, sample, min, max, bucket_count, \
                                          docstring)                            \
   UMA_HISTOGRAM_CUSTOM_TIMES(                                                  \
-      QUIC_HISTOGRAM_NAME(name),                                               \
-      base::TimeDelta::FromMicroseconds(sample.ToMicroseconds()),              \
-      base::TimeDelta::FromMicroseconds(min.ToMicroseconds()),                 \
-      base::TimeDelta::FromMicroseconds(max.ToMicroseconds()), bucket_count)
+      QUIC_HISTOGRAM_NAME(name), base::Microseconds(sample.ToMicroseconds()),  \
+      base::Microseconds(min.ToMicroseconds()),                                \
+      base::Microseconds(max.ToMicroseconds()), bucket_count)
 
 #define QUIC_CLIENT_HISTOGRAM_COUNTS_IMPL(name, sample, min, max,          \
                                           bucket_count, docstring)         \
diff --git a/net/quic/platform/impl/quic_sleep_impl.h b/net/quic/platform/impl/quic_sleep_impl.h
index a1c194b..14466f0 100644
--- a/net/quic/platform/impl/quic_sleep_impl.h
+++ b/net/quic/platform/impl/quic_sleep_impl.h
@@ -12,8 +12,7 @@
 namespace quic {
 
 inline void QuicSleepImpl(QuicTime::Delta duration) {
-  base::PlatformThread::Sleep(
-      base::TimeDelta::FromMilliseconds(duration.ToMilliseconds()));
+  base::PlatformThread::Sleep(base::Milliseconds(duration.ToMilliseconds()));
 }
 
 }  // namespace quic
diff --git a/net/quic/quic_chromium_alarm_factory.cc b/net/quic/quic_chromium_alarm_factory.cc
index 8b63b75..f469225 100644
--- a/net/quic/quic_chromium_alarm_factory.cc
+++ b/net/quic/quic_chromium_alarm_factory.cc
@@ -35,8 +35,7 @@
   void SetImpl() override {
     DCHECK(deadline().IsInitialized());
     const int64_t delay_us = (deadline() - clock_->Now()).ToMicroseconds();
-    timer_->Start(FROM_HERE, base::TimeDelta::FromMicroseconds(delay_us),
-                  on_alarm_callback_);
+    timer_->Start(FROM_HERE, base::Microseconds(delay_us), on_alarm_callback_);
   }
 
   void CancelImpl() override {
diff --git a/net/quic/quic_chromium_client_session.cc b/net/quic/quic_chromium_client_session.cc
index db1290b..f56a03d 100644
--- a/net/quic/quic_chromium_client_session.cc
+++ b/net/quic/quic_chromium_client_session.cc
@@ -1939,7 +1939,7 @@
         UMA_HISTOGRAM_LONG_TIMES_100(
             "Net.QuicSession."
             "LastInFlightPacketSentTimeFromHandshakeCompletionWithPublicReset",
-            base::TimeDelta::FromMilliseconds(delay.ToMilliseconds()));
+            base::Milliseconds(delay.ToMilliseconds()));
       }
 
       UMA_HISTOGRAM_LONG_TIMES_100(
@@ -2297,7 +2297,7 @@
 
   if (new_network != default_network_) {
     StartMigrateBackToDefaultNetworkTimer(
-        base::TimeDelta::FromSeconds(kMinRetryTimeForDefaultNetworkSecs));
+        base::Seconds(kMinRetryTimeForDefaultNetworkSecs));
   } else {
     CancelMigrateBackToDefaultNetworkTimer();
   }
@@ -2318,7 +2318,7 @@
       FROM_HERE,
       base::BindOnce(&QuicChromiumClientSession::OnMigrationTimeout,
                      weak_factory_.GetWeakPtr(), sockets_.size()),
-      base::TimeDelta::FromSeconds(kWaitTimeForNewNetworkSecs));
+      base::Seconds(kWaitTimeForNewNetworkSecs));
 }
 
 void QuicChromiumClientSession::WriteToNewSocket() {
@@ -2501,7 +2501,7 @@
     // Session gets off the |default_network|, stay on |network| for now but
     // try to migrate back to default network after 1 second.
     StartMigrateBackToDefaultNetworkTimer(
-        base::TimeDelta::FromSeconds(kMinRetryTimeForDefaultNetworkSecs));
+        base::Seconds(kMinRetryTimeForDefaultNetworkSecs));
   }
 }
 
@@ -2552,8 +2552,8 @@
     base::TimeDelta duration =
         tick_clock_->NowTicks() - most_recent_path_degrading_timestamp_;
     UMA_HISTOGRAM_CUSTOM_TIMES("Net.QuicNetworkDegradingDurationTillConnected",
-                               duration, base::TimeDelta::FromMilliseconds(1),
-                               base::TimeDelta::FromMinutes(10), 50);
+                               duration, base::Milliseconds(1),
+                               base::Minutes(10), 50);
   }
   if (!migrate_session_on_network_change_v2_)
     return;
@@ -2745,7 +2745,7 @@
   // We are forced to migrate to |network|, probably |default_network_| is
   // not working, start to migrate back to default network after 1 secs.
   StartMigrateBackToDefaultNetworkTimer(
-      base::TimeDelta::FromSeconds(kMinRetryTimeForDefaultNetworkSecs));
+      base::Seconds(kMinRetryTimeForDefaultNetworkSecs));
 }
 
 void QuicChromiumClientSession::OnWriteError(int error_code) {
@@ -3143,7 +3143,7 @@
   probing_manager_.StartProbing(
       network, peer_address, std::move(probing_socket),
       std::move(probing_writer), std::move(probing_reader),
-      base::TimeDelta::FromMilliseconds(timeout_ms), net_log_);
+      base::Milliseconds(timeout_ms), net_log_);
   return ProbingResult::PENDING;
 }
 
@@ -3203,7 +3203,7 @@
 
 void QuicChromiumClientSession::MaybeRetryMigrateBackToDefaultNetwork() {
   base::TimeDelta retry_migrate_back_timeout =
-      base::TimeDelta::FromSeconds(UINT64_C(1) << retry_migrate_back_count_);
+      base::Seconds(UINT64_C(1) << retry_migrate_back_count_);
   if (default_network_ == GetCurrentNetwork()) {
     // If session has been back on the default already by other direct
     // migration attempt, cancel migrate back now.
@@ -3265,8 +3265,7 @@
         most_recent_path_degrading_timestamp_;
     UMA_HISTOGRAM_CUSTOM_TIMES(
         "Net.QuicNetworkDegradingDurationTillDisconnected", degrading_duration,
-        base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromMinutes(10),
-        100);
+        base::Milliseconds(1), base::Minutes(10), 100);
   }
   if (most_recent_write_error_timestamp_ != base::TimeTicks()) {
     base::TimeDelta write_error_to_disconnection_gap =
@@ -3274,8 +3273,8 @@
         most_recent_write_error_timestamp_;
     UMA_HISTOGRAM_CUSTOM_TIMES(
         "Net.QuicNetworkGapBetweenWriteErrorAndDisconnection",
-        write_error_to_disconnection_gap, base::TimeDelta::FromMilliseconds(1),
-        base::TimeDelta::FromMinutes(10), 100);
+        write_error_to_disconnection_gap, base::Milliseconds(1),
+        base::Minutes(10), 100);
     base::UmaHistogramSparse("Net.QuicSession.WriteError.NetworkDisconnected",
                              -most_recent_write_error_);
     most_recent_write_error_ = 0;
@@ -3294,13 +3293,11 @@
       base::TimeDelta degrading_duration =
           now - most_recent_path_degrading_timestamp_;
       UMA_HISTOGRAM_CUSTOM_TIMES("Net.QuicNetworkDisconnectionDuration",
-                                 disconnection_duration,
-                                 base::TimeDelta::FromMilliseconds(1),
-                                 base::TimeDelta::FromMinutes(10), 100);
+                                 disconnection_duration, base::Milliseconds(1),
+                                 base::Minutes(10), 100);
       UMA_HISTOGRAM_CUSTOM_TIMES(
           "Net.QuicNetworkDegradingDurationTillNewNetworkMadeDefault",
-          degrading_duration, base::TimeDelta::FromMilliseconds(1),
-          base::TimeDelta::FromMinutes(10), 100);
+          degrading_duration, base::Milliseconds(1), base::Minutes(10), 100);
       most_recent_network_disconnected_timestamp_ = base::TimeTicks();
     }
     most_recent_path_degrading_timestamp_ = base::TimeTicks();
@@ -3540,7 +3537,7 @@
       GetCurrentNetwork() != default_network_) {
     current_migration_cause_ = ON_MIGRATE_BACK_TO_DEFAULT_NETWORK;
     StartMigrateBackToDefaultNetworkTimer(
-        base::TimeDelta::FromSeconds(kMinRetryTimeForDefaultNetworkSecs));
+        base::Seconds(kMinRetryTimeForDefaultNetworkSecs));
   }
 }
 
diff --git a/net/quic/quic_chromium_client_session_test.cc b/net/quic/quic_chromium_client_session_test.cc
index 7100a9a..fac8c17 100644
--- a/net/quic/quic_chromium_client_session_test.cc
+++ b/net/quic/quic_chromium_client_session_test.cc
@@ -1710,7 +1710,7 @@
 
   // Adding Expect-CT data for different NetworkIsolationKeys should have no
   // effect.
-  base::Time expiry = base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time expiry = base::Time::Now() + base::Days(1);
   transport_security_state_->AddExpectCT(
       "www.example.org", expiry, true /* enforce */, GURL() /* report_url */,
       NetworkIsolationKey::CreateTransient());
diff --git a/net/quic/quic_chromium_packet_writer.cc b/net/quic/quic_chromium_packet_writer.cc
index e45613b..4f68de0 100644
--- a/net/quic/quic_chromium_packet_writer.cc
+++ b/net/quic/quic_chromium_packet_writer.cc
@@ -242,7 +242,7 @@
   }
 
   retry_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(UINT64_C(1) << retry_count_),
+      FROM_HERE, base::Milliseconds(UINT64_C(1) << retry_count_),
       base::BindOnce(&QuicChromiumPacketWriter::RetryPacketAfterNoBuffers,
                      weak_factory_.GetWeakPtr()));
   retry_count_++;
diff --git a/net/quic/quic_client_session_cache_unittests.cc b/net/quic/quic_client_session_cache_unittests.cc
index 27098da..002d9ae 100644
--- a/net/quic/quic_client_session_cache_unittests.cc
+++ b/net/quic/quic_client_session_cache_unittests.cc
@@ -17,7 +17,7 @@
 
 namespace {
 
-const base::TimeDelta kTimeout = base::TimeDelta::FromSeconds(1000);
+const base::TimeDelta kTimeout = base::Seconds(1000);
 const quic::QuicVersionLabel kFakeVersionLabel = 0x01234567;
 const quic::QuicVersionLabel kFakeVersionLabel2 = 0x89ABCDEF;
 const uint64_t kFakeIdleTimeoutMilliseconds = 12012;
diff --git a/net/quic/quic_clock_skew_detector.cc b/net/quic/quic_clock_skew_detector.cc
index 00860c0..f2ce314 100644
--- a/net/quic/quic_clock_skew_detector.cc
+++ b/net/quic/quic_clock_skew_detector.cc
@@ -18,7 +18,7 @@
   last_wall_time_ = wall_now;
   last_ticks_time_ = ticks_now;
 
-  if (offset < base::TimeDelta::FromSeconds(1))
+  if (offset < base::Seconds(1))
     return false;
 
   return true;
diff --git a/net/quic/quic_clock_skew_detector_test.cc b/net/quic/quic_clock_skew_detector_test.cc
index 137da6e..cb3fa82f 100644
--- a/net/quic/quic_clock_skew_detector_test.cc
+++ b/net/quic/quic_clock_skew_detector_test.cc
@@ -30,36 +30,36 @@
 }
 
 TEST_F(QuicClockSkewDetectorTest, NoOffset) {
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(57);
+  base::TimeDelta delta = base::Seconds(57);
   EXPECT_FALSE(detector_.ClockSkewDetected(start_ticks_time_ + delta,
                                            start_wall_time_ + delta));
 }
 
 TEST_F(QuicClockSkewDetectorTest, SmallOffset) {
-  base::TimeDelta delta = base::TimeDelta::FromMilliseconds(57);
+  base::TimeDelta delta = base::Milliseconds(57);
   EXPECT_FALSE(
       detector_.ClockSkewDetected(start_ticks_time_, start_wall_time_ + delta));
 }
 
 TEST_F(QuicClockSkewDetectorTest, ManySmallOffset) {
   for (int i = 0; i < 10; ++i) {
-    base::TimeDelta delta = base::TimeDelta::FromMilliseconds(500);
+    base::TimeDelta delta = base::Milliseconds(500);
     EXPECT_FALSE(detector_.ClockSkewDetected(start_ticks_time_,
                                              start_wall_time_ + i * delta));
   }
 }
 
 TEST_F(QuicClockSkewDetectorTest, LargeOffset) {
-  base::TimeDelta delta = base::TimeDelta::FromMilliseconds(1001);
+  base::TimeDelta delta = base::Milliseconds(1001);
   EXPECT_TRUE(
       detector_.ClockSkewDetected(start_ticks_time_, start_wall_time_ + delta));
 }
 
 TEST_F(QuicClockSkewDetectorTest, LargeOffsetThenSmallOffset) {
-  base::TimeDelta delta = base::TimeDelta::FromMilliseconds(1001);
+  base::TimeDelta delta = base::Milliseconds(1001);
   EXPECT_TRUE(
       detector_.ClockSkewDetected(start_ticks_time_, start_wall_time_ + delta));
-  base::TimeDelta small_delta = base::TimeDelta::FromMilliseconds(571001);
+  base::TimeDelta small_delta = base::Milliseconds(571001);
   EXPECT_FALSE(detector_.ClockSkewDetected(
       start_ticks_time_ + small_delta, start_wall_time_ + delta + small_delta));
 }
diff --git a/net/quic/quic_connection_logger.cc b/net/quic/quic_connection_logger.cc
index 3c27e67..2eeef64 100644
--- a/net/quic/quic_connection_logger.cc
+++ b/net/quic/quic_connection_logger.cc
@@ -97,9 +97,9 @@
 
   const quic::QuicConnectionStats& stats = session_->connection()->GetStats();
   UMA_HISTOGRAM_TIMES("Net.QuicSession.MinRTT",
-                      base::TimeDelta::FromMicroseconds(stats.min_rtt_us));
+                      base::Microseconds(stats.min_rtt_us));
   UMA_HISTOGRAM_TIMES("Net.QuicSession.SmoothedRTT",
-                      base::TimeDelta::FromMicroseconds(stats.srtt_us));
+                      base::Microseconds(stats.srtt_us));
 
   if (num_frames_received_ > 0) {
     int duplicate_stream_frame_per_thousand =
@@ -577,7 +577,7 @@
   if (microseconds != 0 &&
       socket_performance_watcher_->ShouldNotifyUpdatedRTT()) {
     socket_performance_watcher_->OnUpdatedRTTAvailable(
-        base::TimeDelta::FromMicroseconds(rtt.ToMicroseconds()));
+        base::Microseconds(rtt.ToMicroseconds()));
   }
 }
 
diff --git a/net/quic/quic_connectivity_probing_manager.cc b/net/quic/quic_connectivity_probing_manager.cc
index dd240252..6628f16 100644
--- a/net/quic/quic_connectivity_probing_manager.cc
+++ b/net/quic/quic_connectivity_probing_manager.cc
@@ -275,7 +275,7 @@
     NotifyDelegateProbeFailed();
     return;
   }
-  SendConnectivityProbingPacket(base::TimeDelta::FromMilliseconds(timeout_ms));
+  SendConnectivityProbingPacket(base::Milliseconds(timeout_ms));
 }
 
 }  // namespace net
diff --git a/net/quic/quic_connectivity_probing_manager_test.cc b/net/quic/quic_connectivity_probing_manager_test.cc
index ae75d9d..bd636df 100644
--- a/net/quic/quic_connectivity_probing_manager_test.cc
+++ b/net/quic/quic_connectivity_probing_manager_test.cc
@@ -169,23 +169,20 @@
   probing_manager_.StartProbing(
       testNetworkHandle, testPeerAddress, std::move(socket_),
       std::move(writer_), std::move(reader_),
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms),
-      bound_test_net_log_.bound());
+      base::Milliseconds(initial_timeout_ms), bound_test_net_log_.bound());
 
   // Fast forward initial_timeout_ms, timeout the first connectivity probing
   // packet, cause another probing packet to be sent with timeout set to
   // 2 * initial_timeout_ms.
   EXPECT_CALL(session_, OnSendConnectivityProbingPacket(_, testPeerAddress))
       .WillOnce(Return(true));
-  test_task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms));
+  test_task_runner_->FastForwardBy(base::Milliseconds(initial_timeout_ms));
   testing::Mock::VerifyAndClearExpectations(&session_);
 
   // Fast forward initial_timeout_ms, should be no-op.
   EXPECT_CALL(session_, OnSendConnectivityProbingPacket(_, testPeerAddress))
       .Times(0);
-  test_task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms));
+  test_task_runner_->FastForwardBy(base::Milliseconds(initial_timeout_ms));
   testing::Mock::VerifyAndClearExpectations(&session_);
   EXPECT_FALSE(session_.is_successfully_probed());
 
@@ -204,8 +201,7 @@
   // Verify there's nothing to send.
   EXPECT_CALL(session_, OnSendConnectivityProbingPacket(_, testPeerAddress))
       .Times(0);
-  test_task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms));
+  test_task_runner_->FastForwardBy(base::Milliseconds(initial_timeout_ms));
   testing::Mock::VerifyAndClearExpectations(&session_);
 }
 
@@ -221,23 +217,20 @@
   probing_manager_.StartProbing(
       testNetworkHandle, testPeerAddress, std::move(socket_),
       std::move(writer_), std::move(reader_),
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms),
-      bound_test_net_log_.bound());
+      base::Milliseconds(initial_timeout_ms), bound_test_net_log_.bound());
 
   // Fast forward initial_timeout_ms, timeout the first connectivity probing
   // packet, cause another probing packet to be sent with timeout set to
   // 2 * initial_timeout_ms.
   EXPECT_CALL(session_, OnSendConnectivityProbingPacket(_, testPeerAddress))
       .WillOnce(Return(true));
-  test_task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms));
+  test_task_runner_->FastForwardBy(base::Milliseconds(initial_timeout_ms));
   testing::Mock::VerifyAndClearExpectations(&session_);
 
   // Fast forward initial_timeout_ms, should be no-op.
   EXPECT_CALL(session_, OnSendConnectivityProbingPacket(_, testPeerAddress))
       .Times(0);
-  test_task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms));
+  test_task_runner_->FastForwardBy(base::Milliseconds(initial_timeout_ms));
   testing::Mock::VerifyAndClearExpectations(&session_);
 
   // Notify the manager a connectivity probing packet is received from
@@ -254,8 +247,7 @@
   // sent.
   EXPECT_CALL(session_, OnSendConnectivityProbingPacket(_, testPeerAddress))
       .WillOnce(Return(true));
-  test_task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms));
+  test_task_runner_->FastForwardBy(base::Milliseconds(initial_timeout_ms));
   testing::Mock::VerifyAndClearExpectations(&session_);
 
   // Finally receive the probing response on the same path.
@@ -287,23 +279,20 @@
   probing_manager_.StartProbing(
       NetworkChangeNotifier::kInvalidNetworkHandle, testPeerAddress,
       std::move(socket_), std::move(writer_), std::move(reader_),
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms),
-      bound_test_net_log_.bound());
+      base::Milliseconds(initial_timeout_ms), bound_test_net_log_.bound());
 
   // Fast forward initial_timeout_ms, timeout the first connectivity probing
   // packet, cause another probing packet to be sent with timeout set to
   // 2 * initial_timeout_ms.
   EXPECT_CALL(session_, OnSendConnectivityProbingPacket(_, testPeerAddress))
       .WillOnce(Return(true));
-  test_task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms));
+  test_task_runner_->FastForwardBy(base::Milliseconds(initial_timeout_ms));
   testing::Mock::VerifyAndClearExpectations(&session_);
 
   // Fast forward initial_timeout_ms, should be no-op.
   EXPECT_CALL(session_, OnSendConnectivityProbingPacket(_, testPeerAddress))
       .Times(0);
-  test_task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms));
+  test_task_runner_->FastForwardBy(base::Milliseconds(initial_timeout_ms));
   testing::Mock::VerifyAndClearExpectations(&session_);
 
   // Notify the manager a connectivity probing packet is received from
@@ -324,8 +313,7 @@
   // sent.
   EXPECT_CALL(session_, OnSendConnectivityProbingPacket(_, testPeerAddress))
       .WillOnce(Return(true));
-  test_task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms));
+  test_task_runner_->FastForwardBy(base::Milliseconds(initial_timeout_ms));
   testing::Mock::VerifyAndClearExpectations(&session_);
 
   // Finally receive the probing response on the same self address and peer
@@ -355,8 +343,7 @@
   probing_manager_.StartProbing(
       testNetworkHandle, testPeerAddress, std::move(socket_),
       std::move(writer_), std::move(reader_),
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms),
-      bound_test_net_log_.bound());
+      base::Milliseconds(initial_timeout_ms), bound_test_net_log_.bound());
 
   // For expential backoff, this will try to resend: 100ms, 200ms, 400ms, 800ms,
   // 1600ms.
@@ -364,8 +351,7 @@
     EXPECT_CALL(session_, OnSendConnectivityProbingPacket(_, testPeerAddress))
         .WillOnce(Return(true));
     int timeout_ms = (1 << retry_count) * initial_timeout_ms;
-    test_task_runner_->FastForwardBy(
-        base::TimeDelta::FromMilliseconds(timeout_ms));
+    test_task_runner_->FastForwardBy(base::Milliseconds(timeout_ms));
     testing::Mock::VerifyAndClearExpectations(&session_);
   }
 
@@ -374,8 +360,7 @@
   EXPECT_CALL(session_, OnProbeFailed(testNetworkHandle, testPeerAddress))
       .Times(1);
   int timeout_ms = (1 << 4) * initial_timeout_ms;
-  test_task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(timeout_ms));
+  test_task_runner_->FastForwardBy(base::Milliseconds(timeout_ms));
   testing::Mock::VerifyAndClearExpectations(&session_);
 }
 
@@ -386,23 +371,20 @@
   probing_manager_.StartProbing(
       testNetworkHandle, testPeerAddress, std::move(socket_),
       std::move(writer_), std::move(reader_),
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms),
-      bound_test_net_log_.bound());
+      base::Milliseconds(initial_timeout_ms), bound_test_net_log_.bound());
 
   // Fast forward initial_timeout_ms, timeout the first connectivity probing
   // packet, cause another probing packet to be sent with timeout set to
   // 2 * initial_timeout_ms.
   EXPECT_CALL(session_, OnSendConnectivityProbingPacket(_, testPeerAddress))
       .WillOnce(Return(true));
-  test_task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms));
+  test_task_runner_->FastForwardBy(base::Milliseconds(initial_timeout_ms));
   testing::Mock::VerifyAndClearExpectations(&session_);
 
   // Fast forward initial_timeout_ms, should be no-op.
   EXPECT_CALL(session_, OnSendConnectivityProbingPacket(_, testPeerAddress))
       .Times(0);
-  test_task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms));
+  test_task_runner_->FastForwardBy(base::Milliseconds(initial_timeout_ms));
   testing::Mock::VerifyAndClearExpectations(&session_);
 
   EXPECT_CALL(session_, OnProbeFailed(testNetworkHandle, testPeerAddress))
@@ -425,23 +407,20 @@
   probing_manager_.StartProbing(
       testNetworkHandle, testPeerAddress, std::move(socket_),
       std::move(writer_), std::move(reader_),
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms),
-      bound_test_net_log_.bound());
+      base::Milliseconds(initial_timeout_ms), bound_test_net_log_.bound());
 
   // Fast forward initial_timeout_ms, timeout the first connectivity probing
   // packet, cause another probing packet to be sent with timeout set to
   // 2 * initial_timeout_ms.
   EXPECT_CALL(session_, OnSendConnectivityProbingPacket(_, testPeerAddress))
       .WillOnce(Return(true));
-  test_task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms));
+  test_task_runner_->FastForwardBy(base::Milliseconds(initial_timeout_ms));
   testing::Mock::VerifyAndClearExpectations(&session_);
 
   // Fast forward initial_timeout_ms, should be no-op.
   EXPECT_CALL(session_, OnSendConnectivityProbingPacket(_, testPeerAddress))
       .Times(0);
-  test_task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms));
+  test_task_runner_->FastForwardBy(base::Milliseconds(initial_timeout_ms));
   testing::Mock::VerifyAndClearExpectations(&session_);
 
   // Request cancel probing, manager will no longer send connectivity probes.
@@ -470,23 +449,20 @@
   probing_manager_.StartProbing(
       testNetworkHandle, testPeerAddress, std::move(socket_),
       std::move(writer_), std::move(reader_),
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms),
-      bound_test_net_log_.bound());
+      base::Milliseconds(initial_timeout_ms), bound_test_net_log_.bound());
 
   // Fast forward initial_timeout_ms, timeout the first connectivity probing
   // packet, cause another probing packet to be sent with timeout set to
   // 2 * initial_timeout_ms.
   EXPECT_CALL(session_, OnSendConnectivityProbingPacket(_, testPeerAddress))
       .WillOnce(Return(true));
-  test_task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms));
+  test_task_runner_->FastForwardBy(base::Milliseconds(initial_timeout_ms));
   testing::Mock::VerifyAndClearExpectations(&session_);
 
   // Fast forward initial_timeout_ms, should be no-op.
   EXPECT_CALL(session_, OnSendConnectivityProbingPacket(_, testPeerAddress))
       .Times(0);
-  test_task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms));
+  test_task_runner_->FastForwardBy(base::Milliseconds(initial_timeout_ms));
   testing::Mock::VerifyAndClearExpectations(&session_);
 
   // Request cancel probing, manager will no longer send connectivity probes.
@@ -509,8 +485,7 @@
   probing_manager_.StartProbing(
       testNetworkHandle, testPeerAddress, std::move(socket_),
       std::move(writer_), std::move(reader_),
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms),
-      bound_test_net_log_.bound());
+      base::Milliseconds(initial_timeout_ms), bound_test_net_log_.bound());
 
   // Request cancel probing for |newPeerAddress| on |testNetworkHandle| doesn't
   // affect the existing probing.
@@ -522,8 +497,7 @@
     EXPECT_CALL(session_, OnSendConnectivityProbingPacket(_, testPeerAddress))
         .WillOnce(Return(true));
     int timeout_ms = (1 << retry_count) * initial_timeout_ms;
-    test_task_runner_->FastForwardBy(
-        base::TimeDelta::FromMilliseconds(timeout_ms));
+    test_task_runner_->FastForwardBy(base::Milliseconds(timeout_ms));
     testing::Mock::VerifyAndClearExpectations(&session_);
   }
 
@@ -531,8 +505,7 @@
       .Times(1);
   EXPECT_CALL(session_, OnSendConnectivityProbingPacket(_, _)).Times(0);
   int timeout_ms = (1 << 4) * initial_timeout_ms;
-  test_task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(timeout_ms));
+  test_task_runner_->FastForwardBy(base::Milliseconds(timeout_ms));
   testing::Mock::VerifyAndClearExpectations(&session_);
 }
 
@@ -545,23 +518,20 @@
   probing_manager_.StartProbing(
       testNetworkHandle, testPeerAddress, std::move(socket_),
       std::move(writer_), std::move(reader_),
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms),
-      bound_test_net_log_.bound());
+      base::Milliseconds(initial_timeout_ms), bound_test_net_log_.bound());
 
   // Fast forward initial_timeout_ms, timeout the first connectivity probing
   // packet, cause another probing packet to be sent with timeout set to
   // 2 * initial_timeout_ms.
   EXPECT_CALL(session_, OnSendConnectivityProbingPacket(_, testPeerAddress))
       .WillOnce(Return(true));
-  test_task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms));
+  test_task_runner_->FastForwardBy(base::Milliseconds(initial_timeout_ms));
   testing::Mock::VerifyAndClearExpectations(&session_);
 
   // Fast forward initial_timeout_ms, should be no-op.
   EXPECT_CALL(session_, OnSendConnectivityProbingPacket(_, testPeerAddress))
       .Times(0);
-  test_task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms));
+  test_task_runner_->FastForwardBy(base::Milliseconds(initial_timeout_ms));
   testing::Mock::VerifyAndClearExpectations(&session_);
 
   // Probing packet writer received an write error, notifies manager to handle
@@ -571,8 +541,7 @@
   EXPECT_CALL(session_, OnProbeFailed(testNetworkHandle, testPeerAddress))
       .Times(1);
   writer_ptr->OnWriteComplete(ERR_CONNECTION_CLOSED);
-  test_task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms));
+  test_task_runner_->FastForwardBy(base::Milliseconds(initial_timeout_ms));
   testing::Mock::VerifyAndClearExpectations(&session_);
 }
 
@@ -587,20 +556,17 @@
   probing_manager_.StartProbing(
       NetworkChangeNotifier::kInvalidNetworkHandle, testPeerAddress,
       std::move(socket_), std::move(writer_), std::move(reader_),
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms),
-      bound_test_net_log_.bound());
+      base::Milliseconds(initial_timeout_ms), bound_test_net_log_.bound());
   EXPECT_CALL(session_, OnSendConnectivityProbingPacket(_, testPeerAddress))
       .WillOnce(Return(true));
 
-  test_task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms));
+  test_task_runner_->FastForwardBy(base::Milliseconds(initial_timeout_ms));
   testing::Mock::VerifyAndClearExpectations(&session_);
 
   // Fast forward initial_timeout_ms, should be no-op.
   EXPECT_CALL(session_, OnSendConnectivityProbingPacket(_, testPeerAddress))
       .Times(0);
-  test_task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms));
+  test_task_runner_->FastForwardBy(base::Milliseconds(initial_timeout_ms));
   testing::Mock::VerifyAndClearExpectations(&session_);
 
   // Notify the manager a connectivity probing packet is received from
@@ -620,8 +586,7 @@
 
   EXPECT_CALL(session_, OnSendConnectivityProbingPacket(_, testPeerAddress))
       .Times(0);
-  test_task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms));
+  test_task_runner_->FastForwardBy(base::Milliseconds(initial_timeout_ms));
   testing::Mock::VerifyAndClearExpectations(&session_);
 }
 
@@ -636,20 +601,17 @@
   probing_manager_.StartProbing(
       NetworkChangeNotifier::kInvalidNetworkHandle, testPeerAddress,
       std::move(socket_), std::move(writer_), std::move(reader_),
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms),
-      bound_test_net_log_.bound());
+      base::Milliseconds(initial_timeout_ms), bound_test_net_log_.bound());
 
   EXPECT_CALL(session_, OnSendConnectivityProbingPacket(_, testPeerAddress))
       .WillOnce(Return(true));
-  test_task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms));
+  test_task_runner_->FastForwardBy(base::Milliseconds(initial_timeout_ms));
   testing::Mock::VerifyAndClearExpectations(&session_);
 
   // Fast forward initial_timeout_ms, should be no-op.
   EXPECT_CALL(session_, OnSendConnectivityProbingPacket(_, testPeerAddress))
       .Times(0);
-  test_task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms));
+  test_task_runner_->FastForwardBy(base::Milliseconds(initial_timeout_ms));
   testing::Mock::VerifyAndClearExpectations(&session_);
 
   // Probing packet writer received an write error, notifies manager to handle
@@ -661,8 +623,7 @@
                             testPeerAddress))
       .Times(1);
   writer_ptr->OnWriteComplete(ERR_CONNECTION_CLOSED);
-  test_task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(initial_timeout_ms));
+  test_task_runner_->FastForwardBy(base::Milliseconds(initial_timeout_ms));
   testing::Mock::VerifyAndClearExpectations(&session_);
 }
 
diff --git a/net/quic/quic_context.h b/net/quic/quic_context.h
index 40dab103..88600c4d 100644
--- a/net/quic/quic_context.h
+++ b/net/quic/quic_context.h
@@ -35,24 +35,22 @@
 }
 
 // When a connection is idle for 30 seconds it will be closed.
-constexpr base::TimeDelta kIdleConnectionTimeout =
-    base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kIdleConnectionTimeout = base::Seconds(30);
 
 // Sessions can migrate if they have been idle for less than this period.
 constexpr base::TimeDelta kDefaultIdleSessionMigrationPeriod =
-    base::TimeDelta::FromSeconds(30);
+    base::Seconds(30);
 
 // The default maximum time allowed to have no retransmittable packets on the
 // wire (after sending the first retransmittable packet) if
 // |migrate_session_early_v2_| is true. PING frames will be sent as needed to
 // enforce this.
 constexpr base::TimeDelta kDefaultRetransmittableOnWireTimeout =
-    base::TimeDelta::FromMilliseconds(200);
+    base::Milliseconds(200);
 
 // The default maximum time QUIC session could be on non-default network before
 // migrate back to default network.
-constexpr base::TimeDelta kMaxTimeOnNonDefaultNetwork =
-    base::TimeDelta::FromSeconds(128);
+constexpr base::TimeDelta kMaxTimeOnNonDefaultNetwork = base::Seconds(128);
 
 // The default maximum number of migrations to non default network on write
 // error per network.
@@ -110,8 +108,7 @@
   base::TimeDelta idle_connection_timeout = kIdleConnectionTimeout;
   // Specifies the reduced ping timeout subsequent connections should use when
   // a connection was timed out with open streams.
-  base::TimeDelta reduced_ping_timeout =
-      base::TimeDelta::FromSeconds(quic::kPingTimeoutSecs);
+  base::TimeDelta reduced_ping_timeout = base::Seconds(quic::kPingTimeoutSecs);
   // Maximum time that a session can have no retransmittable packets on the
   // wire. Set to zero if not specified and no retransmittable PING will be
   // sent to peer when the wire has no retransmittable packets.
@@ -119,10 +116,10 @@
   // Maximum time the session can be alive before crypto handshake is
   // finished.
   base::TimeDelta max_time_before_crypto_handshake =
-      base::TimeDelta::FromSeconds(quic::kMaxTimeForCryptoHandshakeSecs);
+      base::Seconds(quic::kMaxTimeForCryptoHandshakeSecs);
   // Maximum idle time before the crypto handshake has completed.
   base::TimeDelta max_idle_time_before_crypto_handshake =
-      base::TimeDelta::FromSeconds(quic::kInitialIdleTimeoutSecs);
+      base::Seconds(quic::kInitialIdleTimeoutSecs);
   // If true, connection migration v2 will be used to migrate existing
   // sessions to network when the platform indicates that the default network
   // is changing.
diff --git a/net/quic/quic_http_stream_test.cc b/net/quic/quic_http_stream_test.cc
index 3b8d346f..76f9e1a 100644
--- a/net/quic/quic_http_stream_test.cc
+++ b/net/quic/quic_http_stream_test.cc
@@ -396,7 +396,7 @@
     crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details_);
 
     base::TimeTicks dns_end = base::TimeTicks::Now();
-    base::TimeTicks dns_start = dns_end - base::TimeDelta::FromMilliseconds(1);
+    base::TimeTicks dns_start = dns_end - base::Milliseconds(1);
     session_ = std::make_unique<QuicChromiumClientSession>(
         connection_, std::move(socket),
         /*stream_factory=*/nullptr, &crypto_client_stream_factory_, &clock_,
diff --git a/net/quic/quic_network_transaction_unittest.cc b/net/quic/quic_network_transaction_unittest.cc
index 17054f1e..f22bc8b2 100644
--- a/net/quic/quic_network_transaction_unittest.cc
+++ b/net/quic/quic_network_transaction_unittest.cc
@@ -786,7 +786,7 @@
     crypto_client_stream_factory_.set_handshake_mode(handshake_mode);
     url::SchemeHostPort server(request_.url);
     AlternativeService alternative_service(kProtoQUIC, server.host(), 443);
-    base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+    base::Time expiration = base::Time::Now() + base::Days(1);
     http_server_properties_->SetQuicAlternativeService(
         server, network_isolation_key, alternative_service, expiration,
         supported_versions_);
@@ -799,7 +799,7 @@
     url::SchemeHostPort server(request_.url);
     AlternativeService alternative_service(kProtoQUIC, alternative.host(),
                                            alternative.port());
-    base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+    base::Time expiration = base::Time::Now() + base::Days(1);
     http_server_properties_->SetQuicAlternativeService(
         server, NetworkIsolationKey(), alternative_service, expiration,
         supported_versions_);
@@ -1726,7 +1726,7 @@
   url::SchemeHostPort server(request_.url);
   AlternativeService alternative_service(kProtoQUIC, kDefaultServerHostName,
                                          443);
-  base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = base::Time::Now() + base::Days(1);
   http_server_properties_->SetQuicAlternativeService(
       server, NetworkIsolationKey(), alternative_service, expiration,
       {unsupported_version});
@@ -1839,7 +1839,7 @@
   url::SchemeHostPort server(request_.url);
   AlternativeService alternative_service(kProtoQUIC, kDefaultServerHostName,
                                          443);
-  base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = base::Time::Now() + base::Days(1);
   http_server_properties_->SetQuicAlternativeService(
       server, NetworkIsolationKey(), alternative_service, expiration,
       supported_versions_);
@@ -3161,7 +3161,7 @@
 // return QUIC_PROTOCOL_ERROR.
 TEST_P(QuicNetworkTransactionTest, TimeoutAfterHandshakeConfirmed) {
   context_.params()->retry_without_alt_svc_on_quic_errors = false;
-  context_.params()->idle_connection_timeout = base::TimeDelta::FromSeconds(5);
+  context_.params()->idle_connection_timeout = base::Seconds(5);
 
   // The request will initially go out over QUIC.
   MockQuicData quic_data(version_);
@@ -3379,7 +3379,7 @@
 // connection times out, then QUIC will be marked as broken and the request
 // retried over TCP.
 TEST_P(QuicNetworkTransactionTest, TimeoutAfterHandshakeConfirmedThenBroken2) {
-  context_.params()->idle_connection_timeout = base::TimeDelta::FromSeconds(5);
+  context_.params()->idle_connection_timeout = base::Seconds(5);
 
   // The request will initially go out over QUIC.
   MockQuicData quic_data(version_);
@@ -3547,7 +3547,7 @@
 // retried over TCP and the QUIC will be marked as broken.
 TEST_P(QuicNetworkTransactionTest,
        ProtocolErrorAfterHandshakeConfirmedThenBroken) {
-  context_.params()->idle_connection_timeout = base::TimeDelta::FromSeconds(5);
+  context_.params()->idle_connection_timeout = base::Seconds(5);
 
   // The request will initially go out over QUIC.
   MockQuicData quic_data(version_);
@@ -3661,7 +3661,7 @@
   // one.
   http_server_properties_ = std::make_unique<HttpServerProperties>();
 
-  context_.params()->idle_connection_timeout = base::TimeDelta::FromSeconds(5);
+  context_.params()->idle_connection_timeout = base::Seconds(5);
 
   // The request will initially go out over QUIC.
   MockQuicData quic_data(version_);
@@ -3927,7 +3927,7 @@
   // Set up alternative service for |origin1|.
   AlternativeService local_alternative(kProtoQUIC, "mail.example.org", 443);
   AlternativeService remote_alternative(kProtoQUIC, "www.example.org", 443);
-  base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = base::Time::Now() + base::Days(1);
   AlternativeServiceInfoVector alternative_services;
   alternative_services.push_back(
       AlternativeServiceInfo::CreateQuicAlternativeServiceInfo(
@@ -3979,7 +3979,7 @@
 
   // Set up alternative service for |origin1|.
   AlternativeService local_alternative(kProtoQUIC, "mail.example.org", 443);
-  base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = base::Time::Now() + base::Days(1);
   AlternativeServiceInfoVector alternative_services;
   alternative_services.push_back(
       AlternativeServiceInfo::CreateQuicAlternativeServiceInfo(
@@ -4111,7 +4111,7 @@
                                                  context_.clock()));
 
   // Set up alternative service for |origin1|.
-  base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = base::Time::Now() + base::Days(1);
   AlternativeService alternative1(kProtoQUIC, origin1.host(), 443);
   http_server_properties_->SetQuicAlternativeService(
       url::SchemeHostPort(origin1), NetworkIsolationKey(), alternative1,
@@ -4316,7 +4316,7 @@
   // Set up alternative service entry to destination1.
   url::SchemeHostPort server(request_.url);
   AlternativeService alternative_service(kProtoQUIC, destination1, 443);
-  base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = base::Time::Now() + base::Days(1);
   http_server_properties_->SetQuicAlternativeService(
       server, NetworkIsolationKey(), alternative_service, expiration,
       supported_versions_);
@@ -4412,7 +4412,7 @@
 
   // Set up alternative service for |origin1|.
   AlternativeService alternative_service1(kProtoQUIC, destination1, 443);
-  base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time expiration = base::Time::Now() + base::Days(1);
   http_server_properties_->SetQuicAlternativeService(
       url::SchemeHostPort(origin1), NetworkIsolationKey(), alternative_service1,
       expiration, supported_versions_);
@@ -7010,7 +7010,7 @@
         break;
     }
     AlternativeService alternative_service(kProtoQUIC, destination);
-    base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+    base::Time expiration = base::Time::Now() + base::Days(1);
     http_server_properties_.SetQuicAlternativeService(
         url::SchemeHostPort("https", origin, 443), NetworkIsolationKey(),
         alternative_service, expiration, supported_versions_);
@@ -9454,7 +9454,7 @@
   AddQuicAlternateProtocolMapping(
       MockCryptoClientStream::COLD_START_WITH_CHLO_SENT);
   ServerNetworkStats stats1;
-  stats1.srtt = base::TimeDelta::FromMicroseconds(10);
+  stats1.srtt = base::Microseconds(10);
   http_server_properties_->SetServerNetworkStats(
       url::SchemeHostPort(request_.url), NetworkIsolationKey(), stats1);
 
diff --git a/net/quic/quic_proxy_client_socket_unittest.cc b/net/quic/quic_proxy_client_socket_unittest.cc
index 8cc57af6..c2eb7a9 100644
--- a/net/quic/quic_proxy_client_socket_unittest.cc
+++ b/net/quic/quic_proxy_client_socket_unittest.cc
@@ -252,7 +252,7 @@
     crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details_);
 
     base::TimeTicks dns_end = base::TimeTicks::Now();
-    base::TimeTicks dns_start = dns_end - base::TimeDelta::FromMilliseconds(1);
+    base::TimeTicks dns_start = dns_end - base::Milliseconds(1);
 
     session_ = std::make_unique<QuicChromiumClientSession>(
         connection, std::move(socket),
diff --git a/net/quic/quic_stream_factory.cc b/net/quic/quic_stream_factory.cc
index ffc0514..c601d2e 100644
--- a/net/quic/quic_stream_factory.cc
+++ b/net/quic/quic_stream_factory.cc
@@ -1647,7 +1647,7 @@
   const int kDefaultRTT = 300 * quic::kNumMicrosPerMilli;
   if (!srtt)
     srtt = kDefaultRTT;
-  return base::TimeDelta::FromMicroseconds(srtt);
+  return base::Microseconds(srtt);
 }
 
 const std::vector<std::string>& QuicStreamFactory::GetDnsAliasesForSessionKey(
@@ -1906,21 +1906,18 @@
   NetworkChangeNotifier::ConnectionType type =
       network_connection_.connection_type();
   if (type == NetworkChangeNotifier::CONNECTION_2G) {
-    SetInitialRttEstimate(base::TimeDelta::FromMilliseconds(1200),
-                          INITIAL_RTT_CACHED, config);
+    SetInitialRttEstimate(base::Milliseconds(1200), INITIAL_RTT_CACHED, config);
     return;
   }
 
   if (type == NetworkChangeNotifier::CONNECTION_3G) {
-    SetInitialRttEstimate(base::TimeDelta::FromMilliseconds(400),
-                          INITIAL_RTT_CACHED, config);
+    SetInitialRttEstimate(base::Milliseconds(400), INITIAL_RTT_CACHED, config);
     return;
   }
 
   if (params_.initial_rtt_for_handshake > base::TimeDelta()) {
     SetInitialRttEstimate(
-        base::TimeDelta::FromMicroseconds(
-            params_.initial_rtt_for_handshake.InMicroseconds()),
+        base::Microseconds(params_.initial_rtt_for_handshake.InMicroseconds()),
         INITIAL_RTT_DEFAULT, config);
     return;
   }
@@ -2085,7 +2082,7 @@
         alternative_service,
         session->quic_session_key().network_isolation_key());
     ServerNetworkStats network_stats;
-    network_stats.srtt = base::TimeDelta::FromMicroseconds(stats.srtt_us);
+    network_stats.srtt = base::Microseconds(stats.srtt_us);
     network_stats.bandwidth_estimate = stats.estimated_bandwidth;
     http_server_properties_->SetServerNetworkStats(
         server, session->quic_session_key().network_isolation_key(),
diff --git a/net/quic/quic_stream_factory_test.cc b/net/quic/quic_stream_factory_test.cc
index a1ca7322..fb5d368 100644
--- a/net/quic/quic_stream_factory_test.cc
+++ b/net/quic/quic_stream_factory_test.cc
@@ -618,7 +618,7 @@
     }
 
     quic_params_->max_server_configs_stored_in_properties = 1;
-    quic_params_->idle_connection_timeout = base::TimeDelta::FromSeconds(500);
+    quic_params_->idle_connection_timeout = base::Seconds(500);
     Initialize();
     factory_->set_is_quic_known_to_work_on_current_network(true);
     ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
@@ -635,7 +635,7 @@
     const AlternativeService alternative_service1(
         kProtoQUIC, scheme_host_port_.host(), scheme_host_port_.port());
     AlternativeServiceInfoVector alternative_service_info_vector;
-    base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+    base::Time expiration = base::Time::Now() + base::Days(1);
     alternative_service_info_vector.push_back(
         AlternativeServiceInfo::CreateQuicAlternativeServiceInfo(
             alternative_service1, expiration, {version_}));
@@ -1263,7 +1263,7 @@
 
 TEST_P(QuicStreamFactoryTest, CachedInitialRtt) {
   ServerNetworkStats stats;
-  stats.srtt = base::TimeDelta::FromMilliseconds(10);
+  stats.srtt = base::Milliseconds(10);
   http_server_properties_->SetServerNetworkStats(url::SchemeHostPort(url_),
                                                  NetworkIsolationKey(), stats);
   quic_params_->estimate_initial_rtt = true;
@@ -1319,7 +1319,7 @@
   http_server_properties_ = std::make_unique<HttpServerProperties>();
 
   ServerNetworkStats stats;
-  stats.srtt = base::TimeDelta::FromMilliseconds(10);
+  stats.srtt = base::Milliseconds(10);
   http_server_properties_->SetServerNetworkStats(url::SchemeHostPort(url_),
                                                  kNetworkIsolationKey1, stats);
   quic_params_->estimate_initial_rtt = true;
@@ -3054,7 +3054,7 @@
     // Next connectivity probe is scheduled to be sent in 2 *
     // kDefaultRTTMilliSecs.
     base::TimeDelta retry_connectivity_probe_delay =
-        base::TimeDelta::FromMilliseconds(2 * kDefaultRTTMilliSecs);
+        base::Milliseconds(2 * kDefaultRTTMilliSecs);
     // Fast forward to send the second connectivity probe. The write will be
     // asynchronous and complete after the read completes.
     task_runner->FastForwardBy(retry_connectivity_probe_delay);
@@ -3157,8 +3157,7 @@
   EXPECT_EQ(true, session->connection()->writer()->IsWriteBlocked());
 
   // Migration will be timed out after kWaitTimeForNewNetwokSecs.
-  task_runner->FastForwardBy(
-      base::TimeDelta::FromSeconds(kWaitTimeForNewNetworkSecs));
+  task_runner->FastForwardBy(base::Seconds(kWaitTimeForNewNetworkSecs));
 
   // The connection should now be closed. A request for response
   // headers should fail.
@@ -4306,8 +4305,7 @@
 
   EXPECT_EQ(0u, QuicStreamFactoryPeer::GetNumDegradingSessions(factory_.get()));
 
-  task_runner->FastForwardBy(
-      base::TimeDelta::FromSeconds(kMinRetryTimeForDefaultNetworkSecs));
+  task_runner->FastForwardBy(base::Seconds(kMinRetryTimeForDefaultNetworkSecs));
 
   // Verify that the session is still alive.
   EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session));
@@ -4473,8 +4471,7 @@
     // kDefaultRTTMilliSecs.
     EXPECT_EQ(1u, task_runner->GetPendingTaskCount());
     next_task_delay = task_runner->NextPendingTaskDelay();
-    EXPECT_EQ(base::TimeDelta::FromMilliseconds(2 * kDefaultRTTMilliSecs),
-              next_task_delay);
+    EXPECT_EQ(base::Milliseconds(2 * kDefaultRTTMilliSecs), next_task_delay);
   }
 
   // The connection should still be alive, and not marked as going away.
@@ -4509,8 +4506,7 @@
 
   EXPECT_EQ(0u, QuicStreamFactoryPeer::GetNumDegradingSessions(factory_.get()));
 
-  task_runner->FastForwardBy(
-      base::TimeDelta::FromSeconds(kMinRetryTimeForDefaultNetworkSecs));
+  task_runner->FastForwardBy(base::Seconds(kMinRetryTimeForDefaultNetworkSecs));
 
   // Verify that the session is still alive.
   EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session));
@@ -4946,8 +4942,7 @@
   // kDefaultRTTMilliSecs.
   EXPECT_EQ(1u, task_runner->GetPendingTaskCount());
   base::TimeDelta next_task_delay = task_runner->NextPendingTaskDelay();
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(2 * kDefaultRTTMilliSecs),
-            next_task_delay);
+  EXPECT_EQ(base::Milliseconds(2 * kDefaultRTTMilliSecs), next_task_delay);
 
   // The connection should still be alive, and not marked as going away.
   EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session));
@@ -5360,8 +5355,7 @@
     // kDefaultRTTMilliSecs.
     EXPECT_EQ(1u, task_runner->GetPendingTaskCount());
     next_task_delay = task_runner->NextPendingTaskDelay();
-    EXPECT_EQ(base::TimeDelta::FromMilliseconds(2 * kDefaultRTTMilliSecs),
-              next_task_delay);
+    EXPECT_EQ(base::Milliseconds(2 * kDefaultRTTMilliSecs), next_task_delay);
   } else {
     // The retry mechanism is internal to path validator.
     EXPECT_EQ(0u, task_runner->GetPendingTaskCount());
@@ -5548,8 +5542,7 @@
     // kDefaultRTTMilliSecs.
     EXPECT_EQ(1u, task_runner->GetPendingTaskCount());
     next_task_delay = task_runner->NextPendingTaskDelay();
-    EXPECT_EQ(base::TimeDelta::FromMilliseconds(2 * kDefaultRTTMilliSecs),
-              next_task_delay);
+    EXPECT_EQ(base::Milliseconds(2 * kDefaultRTTMilliSecs), next_task_delay);
 
     // The connection should still be alive, and not marked as going away.
     EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session));
@@ -5987,8 +5980,7 @@
   scoped_mock_network_change_notifier_->mock_network_change_notifier()
       ->NotifyNetworkMadeDefault(kNewNetworkForTests);
 
-  task_runner->FastForwardBy(
-      base::TimeDelta::FromSeconds(kMinRetryTimeForDefaultNetworkSecs));
+  task_runner->FastForwardBy(base::Seconds(kMinRetryTimeForDefaultNetworkSecs));
 
   // Verify that the session is still alive.
   EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session));
@@ -6171,8 +6163,7 @@
       ->NotifyNetworkMadeDefault(kNewNetworkForTests);
 
   // There's one more task to mgirate back to the default network in 0.4s.
-  task_runner->FastForwardBy(
-      base::TimeDelta::FromSeconds(kMinRetryTimeForDefaultNetworkSecs));
+  task_runner->FastForwardBy(base::Seconds(kMinRetryTimeForDefaultNetworkSecs));
 
   // Verify that the session is still alive.
   EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session));
@@ -6865,7 +6856,7 @@
   // There should be one task posted to migrate back to the default network in
   // kMinRetryTimeForDefaultNetworkSecs.
   EXPECT_EQ(1u, task_runner->GetPendingTaskCount());
-  EXPECT_EQ(base::TimeDelta::FromSeconds(kMinRetryTimeForDefaultNetworkSecs),
+  EXPECT_EQ(base::Seconds(kMinRetryTimeForDefaultNetworkSecs),
             task_runner->NextPendingTaskDelay());
 
   // Verify that response headers on the migrated socket were delivered to the
@@ -7013,7 +7004,7 @@
   // kMinRetryTimeForDefaultNetworkSecs.
   EXPECT_EQ(1u, task_runner->GetPendingTaskCount());
   base::TimeDelta expected_delay =
-      base::TimeDelta::FromSeconds(kMinRetryTimeForDefaultNetworkSecs);
+      base::Seconds(kMinRetryTimeForDefaultNetworkSecs);
   EXPECT_EQ(expected_delay, task_runner->NextPendingTaskDelay());
 
   // Verify that response headers on the migrated socket were delivered to the
@@ -7395,8 +7386,7 @@
   // There should be a new task posted to migrate back to the default network.
   EXPECT_EQ(1u, task_runner->GetPendingTaskCount());
   base::TimeDelta next_task_delay = task_runner->NextPendingTaskDelay();
-  EXPECT_EQ(base::TimeDelta::FromSeconds(kMinRetryTimeForDefaultNetworkSecs),
-            next_task_delay);
+  EXPECT_EQ(base::Seconds(kMinRetryTimeForDefaultNetworkSecs), next_task_delay);
   task_runner->FastForwardBy(next_task_delay);
 
   if (!version_.HasIetfQuicFrames()) {
@@ -7404,8 +7394,7 @@
     // will retry migrate back.
     EXPECT_EQ(2u, task_runner->GetPendingTaskCount());
     next_task_delay = task_runner->NextPendingTaskDelay();
-    EXPECT_EQ(base::TimeDelta::FromMilliseconds(2 * kDefaultRTTMilliSecs),
-              next_task_delay);
+    EXPECT_EQ(base::Milliseconds(2 * kDefaultRTTMilliSecs), next_task_delay);
   }
 
   // Deliver the signal that the default network is disconnected.
@@ -10027,8 +10016,7 @@
 // enabled, and a custom retransmittable on wire timeout is specified, the
 // custom value is used.
 TEST_P(QuicStreamFactoryTest, CustomRetransmittableOnWireTimeoutForMigration) {
-  constexpr base::TimeDelta custom_timeout_value =
-      base::TimeDelta::FromMilliseconds(200);
+  constexpr base::TimeDelta custom_timeout_value = base::Milliseconds(200);
   quic_params_->retransmittable_on_wire_timeout = custom_timeout_value;
   InitializeConnectionMigrationV2Test(
       {kDefaultNetworkForTests, kNewNetworkForTests});
@@ -10202,8 +10190,7 @@
 // retransmittable-on-wire timeout is specified, the ping alarm is set up to
 // send retransmittable pings with the custom value.
 TEST_P(QuicStreamFactoryTest, CustomRetransmittableOnWireTimeout) {
-  constexpr base::TimeDelta custom_timeout_value =
-      base::TimeDelta::FromMilliseconds(200);
+  constexpr base::TimeDelta custom_timeout_value = base::Milliseconds(200);
   quic_params_->retransmittable_on_wire_timeout = custom_timeout_value;
   Initialize();
   ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
@@ -10336,7 +10323,7 @@
   // packet, it will not have the same retransmission timeout as the
   // default value of retransmittable-on-wire-ping timeout.
   ServerNetworkStats stats;
-  stats.srtt = base::TimeDelta::FromMilliseconds(200);
+  stats.srtt = base::Milliseconds(200);
   http_server_properties_->SetServerNetworkStats(url::SchemeHostPort(url_),
                                                  NetworkIsolationKey(), stats);
   quic_params_->estimate_initial_rtt = true;
@@ -10468,8 +10455,7 @@
 // send retransmittable pings to the peer with custom value.
 TEST_P(QuicStreamFactoryTest,
        CustomRetransmittableOnWireTimeoutWithMigrationOnNetworkChangeOnly) {
-  constexpr base::TimeDelta custom_timeout_value =
-      base::TimeDelta::FromMilliseconds(200);
+  constexpr base::TimeDelta custom_timeout_value = base::Milliseconds(200);
   quic_params_->retransmittable_on_wire_timeout = custom_timeout_value;
   quic_params_->migrate_sessions_on_network_change_v2 = true;
   Initialize();
@@ -10604,7 +10590,7 @@
   // packet, it will not have the same retransmission timeout as the
   // default value of retransmittable-on-wire-ping timeout.
   ServerNetworkStats stats;
-  stats.srtt = base::TimeDelta::FromMilliseconds(200);
+  stats.srtt = base::Milliseconds(200);
   http_server_properties_->SetServerNetworkStats(url::SchemeHostPort(url_),
                                                  NetworkIsolationKey(), stats);
   quic_params_->estimate_initial_rtt = true;
@@ -11282,7 +11268,7 @@
   // The migrate back timer will fire. Due to default network
   // being disconnected, no attempt will be exercised to migrate back.
   EXPECT_EQ(1u, task_runner->GetPendingTaskCount());
-  EXPECT_EQ(base::TimeDelta::FromSeconds(kMinRetryTimeForDefaultNetworkSecs),
+  EXPECT_EQ(base::Seconds(kMinRetryTimeForDefaultNetworkSecs),
             task_runner->NextPendingTaskDelay());
   task_runner->FastForwardBy(task_runner->NextPendingTaskDelay());
   EXPECT_EQ(0u, task_runner->GetPendingTaskCount());
@@ -11308,7 +11294,7 @@
     EXPECT_TRUE(HasActiveSession(scheme_host_port_));
     // A task is posted to migrate back to the default network in 2^i seconds.
     EXPECT_EQ(1u, task_runner->GetPendingTaskCount());
-    EXPECT_EQ(base::TimeDelta::FromSeconds(UINT64_C(1) << i),
+    EXPECT_EQ(base::Seconds(UINT64_C(1) << i),
               task_runner->NextPendingTaskDelay());
     task_runner->FastForwardBy(task_runner->NextPendingTaskDelay());
   }
@@ -11322,8 +11308,7 @@
 TEST_P(QuicStreamFactoryTest, CustomIdleMigrationPeriod) {
   // The customized threshold is 15s.
   quic_params_->migrate_idle_sessions = true;
-  quic_params_->idle_session_migration_period =
-      base::TimeDelta::FromSeconds(15);
+  quic_params_->idle_session_migration_period = base::Seconds(15);
   InitializeConnectionMigrationV2Test(
       {kDefaultNetworkForTests, kNewNetworkForTests});
   ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
@@ -11489,7 +11474,7 @@
   // The migrate back timer will fire. Due to default network
   // being disconnected, no attempt will be exercised to migrate back.
   EXPECT_EQ(1u, task_runner->GetPendingTaskCount());
-  EXPECT_EQ(base::TimeDelta::FromSeconds(kMinRetryTimeForDefaultNetworkSecs),
+  EXPECT_EQ(base::Seconds(kMinRetryTimeForDefaultNetworkSecs),
             task_runner->NextPendingTaskDelay());
   task_runner->FastForwardBy(task_runner->NextPendingTaskDelay());
   EXPECT_EQ(0u, task_runner->GetPendingTaskCount());
@@ -11515,7 +11500,7 @@
     EXPECT_TRUE(HasActiveSession(scheme_host_port_));
     // A task is posted to migrate back to the default network in 2^i seconds.
     EXPECT_EQ(1u, task_runner->GetPendingTaskCount());
-    EXPECT_EQ(base::TimeDelta::FromSeconds(UINT64_C(1) << i),
+    EXPECT_EQ(base::Seconds(UINT64_C(1) << i),
               task_runner->NextPendingTaskDelay());
     task_runner->FastForwardBy(task_runner->NextPendingTaskDelay());
   }
@@ -12059,7 +12044,7 @@
 }
 
 TEST_P(QuicStreamFactoryTest, ReducePingTimeoutOnConnectionTimeOutOpenStreams) {
-  quic_params_->reduced_ping_timeout = base::TimeDelta::FromSeconds(10);
+  quic_params_->reduced_ping_timeout = base::Seconds(10);
   Initialize();
   ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
   crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
@@ -12423,7 +12408,7 @@
       kDefaultServerHostName, kDefaultServerPort, PRIVACY_MODE_DISABLED);
 
   quic_params_->max_server_configs_stored_in_properties = 1;
-  quic_params_->idle_connection_timeout = base::TimeDelta::FromSeconds(500);
+  quic_params_->idle_connection_timeout = base::Seconds(500);
   Initialize();
   factory_->set_is_quic_known_to_work_on_current_network(true);
   crypto_client_stream_factory_.set_handshake_mode(
@@ -12442,7 +12427,7 @@
     const AlternativeService alternative_service1(
         kProtoQUIC, scheme_host_port_.host(), scheme_host_port_.port());
     AlternativeServiceInfoVector alternative_service_info_vector;
-    base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+    base::Time expiration = base::Time::Now() + base::Days(1);
     alternative_service_info_vector.push_back(
         AlternativeServiceInfo::CreateQuicAlternativeServiceInfo(
             alternative_service1, expiration, {version_}));
@@ -13574,10 +13559,8 @@
 // |quic_max_idle_time_before_crypto_handshake| to QuicStreamFactory,
 // checks that its internal quic::QuicConfig is correct.
 TEST_P(QuicStreamFactoryTest, ConfigMaxTimeBeforeCryptoHandshake) {
-  quic_params_->max_time_before_crypto_handshake =
-      base::TimeDelta::FromSeconds(11);
-  quic_params_->max_idle_time_before_crypto_handshake =
-      base::TimeDelta::FromSeconds(13);
+  quic_params_->max_time_before_crypto_handshake = base::Seconds(11);
+  quic_params_->max_idle_time_before_crypto_handshake = base::Seconds(13);
   Initialize();
 
   const quic::QuicConfig* config =
@@ -14979,8 +14962,7 @@
     // IETF QUIC uses a different handshake timeout management system.
     return;
   }
-  constexpr base::TimeDelta kInitialRtt =
-      base::TimeDelta::FromMilliseconds(400);
+  constexpr base::TimeDelta kInitialRtt = base::Milliseconds(400);
   quic_params_->initial_rtt_for_handshake = kInitialRtt;
   crypto_client_stream_factory_.set_handshake_mode(
       MockCryptoClientStream::COLD_START_WITH_CHLO_SENT);
diff --git a/net/quic/test_task_runner.cc b/net/quic/test_task_runner.cc
index e7ca259..5b2cc23 100644
--- a/net/quic/test_task_runner.cc
+++ b/net/quic/test_task_runner.cc
@@ -17,7 +17,7 @@
 
 base::TimeTicks NowInTicks(const quic::MockClock& clock) {
   base::TimeTicks ticks;
-  return ticks + base::TimeDelta::FromMicroseconds(
+  return ticks + base::Microseconds(
                      (clock.Now() - quic::QuicTime::Zero()).ToMicroseconds());
 }
 
diff --git a/net/reporting/mock_persistent_reporting_store_unittest.cc b/net/reporting/mock_persistent_reporting_store_unittest.cc
index 04439db..bbf58ba 100644
--- a/net/reporting/mock_persistent_reporting_store_unittest.cc
+++ b/net/reporting/mock_persistent_reporting_store_unittest.cc
@@ -35,8 +35,8 @@
   const ReportingEndpoint kEndpoint(kGroupKey,
                                     {GURL("https://endpoint.test/reports")});
   const CachedReportingEndpointGroup kGroup(
-      kGroupKey, OriginSubdomains::DEFAULT,
-      base::Time::Now() + base::TimeDelta::FromDays(1), base::Time::Now());
+      kGroupKey, OriginSubdomains::DEFAULT, base::Time::Now() + base::Days(1),
+      base::Time::Now());
   return {kEndpoint, kGroup};
 }
 
diff --git a/net/reporting/reporting_browsing_data_remover_unittest.cc b/net/reporting/reporting_browsing_data_remover_unittest.cc
index a340d102..68da7e9 100644
--- a/net/reporting/reporting_browsing_data_remover_unittest.cc
+++ b/net/reporting/reporting_browsing_data_remover_unittest.cc
@@ -53,7 +53,7 @@
   void SetEndpoint(const url::Origin& origin) {
     SetEndpointInCache(
         ReportingEndpointGroupKey(NetworkIsolationKey(), origin, kGroup_),
-        kEndpoint_, base::Time::Now() + base::TimeDelta::FromDays(7));
+        kEndpoint_, base::Time::Now() + base::Days(7));
   }
 
   static bool HostIs(std::string host, const GURL& url) {
diff --git a/net/reporting/reporting_cache_unittest.cc b/net/reporting/reporting_cache_unittest.cc
index 002cdcc..f51b84c 100644
--- a/net/reporting/reporting_cache_unittest.cc
+++ b/net/reporting/reporting_cache_unittest.cc
@@ -71,7 +71,7 @@
     policy.max_report_count = 5;
     policy.max_endpoints_per_origin = 3;
     policy.max_endpoint_count = 5;
-    policy.max_group_staleness = base::TimeDelta::FromDays(3);
+    policy.max_group_staleness = base::Days(3);
     UsePolicy(policy);
 
     if (GetParam())
@@ -199,8 +199,8 @@
   const std::string kType_ = "default";
   const base::TimeTicks kNowTicks_ = tick_clock()->NowTicks();
   const base::Time kNow_ = clock()->Now();
-  const base::Time kExpires1_ = kNow_ + base::TimeDelta::FromDays(7);
-  const base::Time kExpires2_ = kExpires1_ + base::TimeDelta::FromDays(7);
+  const base::Time kExpires1_ = kNow_ + base::Days(7);
+  const base::Time kExpires2_ = kExpires1_ + base::Days(7);
   // There are 2^3 = 8 of these to test the different combinations of matching
   // vs mismatching NIK, origin, and group.
   const ReportingEndpointGroupKey kGroupKey11_ =
@@ -378,11 +378,11 @@
   const ReportingReport* report1 =
       AddAndReturnReport(kNik_, kUrl1_, kUserAgent_, kGroup1_, kType_,
                          std::make_unique<base::DictionaryValue>(), 0,
-                         now + base::TimeDelta::FromSeconds(200), 0);
+                         now + base::Seconds(200), 0);
   const ReportingReport* report2 =
       AddAndReturnReport(kOtherNik_, kUrl1_, kUserAgent_, kGroup2_, kType_,
                          std::make_unique<base::DictionaryValue>(), 0,
-                         now + base::TimeDelta::FromSeconds(100), 1);
+                         now + base::Seconds(100), 1);
   // Mark report1 and report2 as pending.
   EXPECT_THAT(cache()->GetReportsToDeliver(),
               ::testing::UnorderedElementsAre(report1, report2));
@@ -424,11 +424,11 @@
   const ReportingReport* report3 =
       AddAndReturnReport(kNik_, kUrl2_, kUserAgent_, kGroup1_, kType_,
                          std::make_unique<base::DictionaryValue>(), 2,
-                         now + base::TimeDelta::FromSeconds(200), 0);
+                         now + base::Seconds(200), 0);
   const ReportingReport* report4 =
       AddAndReturnReport(kOtherNik_, kUrl1_, kUserAgent_, kGroup1_, kType_,
                          std::make_unique<base::DictionaryValue>(), 0,
-                         now + base::TimeDelta::FromSeconds(300), 0);
+                         now + base::Seconds(300), 0);
   actual = cache()->GetReportsAsValue();
   expected = base::test::ParseJson(base::StringPrintf(
       R"json(
@@ -998,8 +998,7 @@
 
   // These times are bogus but we need a reproducible expiry timestamp for this
   // test case.
-  const base::TimeTicks expires_ticks =
-      base::TimeTicks() + base::TimeDelta::FromDays(7);
+  const base::TimeTicks expires_ticks = base::TimeTicks() + base::Days(7);
   const base::Time expires =
       base::Time::UnixEpoch() + (expires_ticks - base::TimeTicks::UnixEpoch());
   ASSERT_TRUE(SetEndpointInCache(kGroupKey11_, kEndpoint1_, expires,
@@ -1211,7 +1210,7 @@
   ASSERT_TRUE(SetEndpointInCache(kGroupKey21_, kEndpoint1_, kExpires1_));
   ASSERT_TRUE(SetEndpointInCache(kGroupKey22_, kEndpoint2_, kExpires2_));
   // Make kExpires1_ expired but not kExpires2_.
-  clock()->Advance(base::TimeDelta::FromDays(8));
+  clock()->Advance(base::Days(8));
   ASSERT_GT(clock()->Now(), kExpires1_);
   ASSERT_LT(clock()->Now(), kExpires2_);
 
@@ -1399,7 +1398,7 @@
     cache()->AddReport(kReportingSource_, kNik_, kUrl1_, kUserAgent_, kGroup1_,
                        kType_, std::make_unique<base::DictionaryValue>(), 0,
                        tick_clock()->NowTicks(), 0);
-    tick_clock()->Advance(base::TimeDelta::FromMinutes(1));
+    tick_clock()->Advance(base::Minutes(1));
   }
   EXPECT_EQ(max_report_count, report_count());
 
@@ -1432,7 +1431,7 @@
         AddAndReturnReport(kNik_, kUrl1_, kUserAgent_, kGroup1_, kType_,
                            std::make_unique<base::DictionaryValue>(), 0,
                            tick_clock()->NowTicks(), 0));
-    tick_clock()->Advance(base::TimeDelta::FromMinutes(1));
+    tick_clock()->Advance(base::Minutes(1));
   }
   EXPECT_EQ(max_report_count, report_count());
 
@@ -1482,9 +1481,9 @@
   EXPECT_EQ(policy().max_endpoints_per_origin, cache()->GetEndpointCount());
 
   // Make the group expired (but not stale).
-  clock()->SetNow(kExpires1_ - base::TimeDelta::FromMinutes(1));
+  clock()->SetNow(kExpires1_ - base::Minutes(1));
   cache()->GetCandidateEndpointsForDelivery(kGroupKey11_);
-  clock()->SetNow(kExpires1_ + base::TimeDelta::FromMinutes(1));
+  clock()->SetNow(kExpires1_ + base::Minutes(1));
 
   // Insert one more endpoint in a different group (not expired); eviction
   // should be triggered and the expired group should be deleted.
@@ -1533,7 +1532,7 @@
         EndpointGroupExistsInCache(group_key, OriginSubdomains::DEFAULT));
     // Mark group used.
     cache()->GetCandidateEndpointsForDelivery(group_key);
-    clock()->Advance(base::TimeDelta::FromMinutes(1));
+    clock()->Advance(base::Minutes(1));
   }
   EXPECT_EQ(policy().max_endpoints_per_origin, cache()->GetEndpointCount());
 
@@ -1621,7 +1620,7 @@
                                         kGroup1_);
     ASSERT_TRUE(SetEndpointInCache(group_key, MakeURL(i), kExpires1_));
     EXPECT_EQ(i + 1, cache()->GetEndpointCount());
-    clock()->Advance(base::TimeDelta::FromMinutes(1));
+    clock()->Advance(base::Minutes(1));
   }
   EXPECT_EQ(policy().max_endpoint_count, cache()->GetEndpointCount());
 
@@ -1654,13 +1653,13 @@
                          ReportingEndpoint::EndpointInfo{kEndpoint1_});
   std::vector<CachedReportingEndpointGroup> groups;
   groups.emplace_back(kGroupKey21_, OriginSubdomains::DEFAULT,
-                      now + base::TimeDelta::FromMinutes(2) /* expires */,
+                      now + base::Minutes(2) /* expires */,
                       now /* last_used */);
   groups.emplace_back(kGroupKey11_, OriginSubdomains::DEFAULT,
-                      now + base::TimeDelta::FromMinutes(1) /* expires */,
+                      now + base::Minutes(1) /* expires */,
                       now /* last_used */);
   groups.emplace_back(kGroupKey22_, OriginSubdomains::DEFAULT,
-                      now + base::TimeDelta::FromMinutes(3) /* expires */,
+                      now + base::Minutes(3) /* expires */,
                       now /* last_used */);
   store()->SetPrestoredClients(endpoints, groups);
 
@@ -1672,15 +1671,12 @@
   EXPECT_TRUE(EndpointExistsInCache(kGroupKey11_, kEndpoint2_));
   EXPECT_TRUE(EndpointExistsInCache(kGroupKey21_, kEndpoint1_));
   EXPECT_TRUE(EndpointExistsInCache(kGroupKey22_, kEndpoint2_));
-  EXPECT_TRUE(
-      EndpointGroupExistsInCache(kGroupKey11_, OriginSubdomains::DEFAULT,
-                                 now + base::TimeDelta::FromMinutes(1)));
-  EXPECT_TRUE(
-      EndpointGroupExistsInCache(kGroupKey21_, OriginSubdomains::DEFAULT,
-                                 now + base::TimeDelta::FromMinutes(2)));
-  EXPECT_TRUE(
-      EndpointGroupExistsInCache(kGroupKey22_, OriginSubdomains::DEFAULT,
-                                 now + base::TimeDelta::FromMinutes(3)));
+  EXPECT_TRUE(EndpointGroupExistsInCache(
+      kGroupKey11_, OriginSubdomains::DEFAULT, now + base::Minutes(1)));
+  EXPECT_TRUE(EndpointGroupExistsInCache(
+      kGroupKey21_, OriginSubdomains::DEFAULT, now + base::Minutes(2)));
+  EXPECT_TRUE(EndpointGroupExistsInCache(
+      kGroupKey22_, OriginSubdomains::DEFAULT, now + base::Minutes(3)));
   EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin1_));
   EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin2_));
 }
diff --git a/net/reporting/reporting_delivery_agent_unittest.cc b/net/reporting/reporting_delivery_agent_unittest.cc
index 09c7253..6f734a1f 100644
--- a/net/reporting/reporting_delivery_agent_unittest.cc
+++ b/net/reporting/reporting_delivery_agent_unittest.cc
@@ -127,7 +127,7 @@
   const std::string kUserAgent_ = "Mozilla/1.0";
   const std::string kGroup_ = "group";
   const std::string kType_ = "type";
-  const base::Time kExpires_ = base::Time::Now() + base::TimeDelta::FromDays(7);
+  const base::Time kExpires_ = base::Time::Now() + base::Days(7);
   const ReportingEndpointGroupKey kGroupKey_ =
       ReportingEndpointGroupKey(kNik_, kOrigin_, kGroup_);
   const ReportingEndpointGroupKey kDocumentGroupKey_ =
@@ -445,7 +445,7 @@
   ASSERT_TRUE(SetEndpointInCache(kGroupKey_, kEndpoint_, kExpires_));
   AddReport(kEmptyReportingSource_, kNik_, kUrl_, kGroup_);
 
-  tick_clock()->Advance(base::TimeDelta::FromMilliseconds(kAgeMillis));
+  tick_clock()->Advance(base::Milliseconds(kAgeMillis));
 
   EXPECT_TRUE(delivery_timer()->IsRunning());
   delivery_timer()->Fire();
diff --git a/net/reporting/reporting_endpoint_manager_unittest.cc b/net/reporting/reporting_endpoint_manager_unittest.cc
index 6a1d27f..2b5254e 100644
--- a/net/reporting/reporting_endpoint_manager_unittest.cc
+++ b/net/reporting/reporting_endpoint_manager_unittest.cc
@@ -301,8 +301,8 @@
 TEST_F(ReportingEndpointManagerTest, BackedOffEndpoint) {
   ASSERT_EQ(2.0, policy_.endpoint_backoff_policy.multiply_factor);
 
-  base::TimeDelta initial_delay = base::TimeDelta::FromMilliseconds(
-      policy_.endpoint_backoff_policy.initial_delay_ms);
+  base::TimeDelta initial_delay =
+      base::Milliseconds(policy_.endpoint_backoff_policy.initial_delay_ms);
 
   SetEndpoint(kEndpoint);
 
@@ -425,7 +425,7 @@
 
   // Advance the current time far enough to clear out the primary endpoint's
   // backoff clock.  This should bring the primary endpoint back into play.
-  clock_.Advance(base::TimeDelta::FromMinutes(2));
+  clock_.Advance(base::Minutes(2));
   ReportingEndpoint endpoint3 =
       endpoint_manager_->FindEndpointForDelivery(kGroupKey);
   ASSERT_TRUE(endpoint3);
diff --git a/net/reporting/reporting_header_parser.cc b/net/reporting/reporting_header_parser.cc
index f9a36bb..0764197 100644
--- a/net/reporting/reporting_header_parser.cc
+++ b/net/reporting/reporting_header_parser.cc
@@ -144,7 +144,7 @@
     cache->RemoveEndpointGroup(group_key);
     return false;
   }
-  parsed_endpoint_group_out->ttl = base::TimeDelta::FromSeconds(ttl_sec);
+  parsed_endpoint_group_out->ttl = base::Seconds(ttl_sec);
 
   absl::optional<bool> subdomains_bool =
       dict->FindBoolKey(kIncludeSubdomainsKey);
diff --git a/net/reporting/reporting_header_parser_fuzzer.cc b/net/reporting/reporting_header_parser_fuzzer.cc
index ae8064a28..9a7ac99e 100644
--- a/net/reporting/reporting_header_parser_fuzzer.cc
+++ b/net/reporting/reporting_header_parser_fuzzer.cc
@@ -53,17 +53,16 @@
   policy.max_report_count = policy_data.max_report_count();
   policy.max_endpoint_count = policy_data.max_endpoint_count();
   policy.delivery_interval =
-      base::TimeDelta::FromMicroseconds(policy_data.delivery_interval_us());
+      base::Microseconds(policy_data.delivery_interval_us());
   policy.persistence_interval =
-      base::TimeDelta::FromMicroseconds(policy_data.persistence_interval_us());
+      base::Microseconds(policy_data.persistence_interval_us());
   policy.persist_reports_across_restarts =
       policy_data.persist_reports_across_restarts();
   policy.persist_clients_across_restarts =
       policy_data.persist_clients_across_restarts();
-  policy.garbage_collection_interval = base::TimeDelta::FromMicroseconds(
-      policy_data.garbage_collection_interval_us());
-  policy.max_report_age =
-      base::TimeDelta::FromMicroseconds(policy_data.max_report_age_us());
+  policy.garbage_collection_interval =
+      base::Microseconds(policy_data.garbage_collection_interval_us());
+  policy.max_report_age = base::Microseconds(policy_data.max_report_age_us());
   policy.max_report_attempts = policy_data.max_report_attempts();
   policy.persist_reports_across_network_changes =
       policy_data.persist_reports_across_network_changes();
@@ -73,7 +72,7 @@
     policy.max_endpoints_per_origin = policy_data.max_endpoints_per_origin();
   if (policy_data.has_max_group_staleness_us()) {
     policy.max_group_staleness =
-        base::TimeDelta::FromMicroseconds(policy_data.max_report_age_us());
+        base::Microseconds(policy_data.max_report_age_us());
   }
 }
 
diff --git a/net/reporting/reporting_header_parser_unittest.cc b/net/reporting/reporting_header_parser_unittest.cc
index 9c86eb8..2be6544 100644
--- a/net/reporting/reporting_header_parser_unittest.cc
+++ b/net/reporting/reporting_header_parser_unittest.cc
@@ -114,7 +114,7 @@
       const std::string& name,
       const std::vector<ReportingEndpoint::EndpointInfo>& endpoints,
       OriginSubdomains include_subdomains = OriginSubdomains::DEFAULT,
-      base::TimeDelta ttl = base::TimeDelta::FromDays(1),
+      base::TimeDelta ttl = base::Days(1),
       url::Origin origin = url::Origin()) {
     ReportingEndpointGroupKey group_key(kNik_ /* unused */,
                                         url::Origin() /* unused */, name);
@@ -565,7 +565,7 @@
 
 TEST_P(ReportingHeaderParserTest, MaxAge) {
   const int kMaxAgeSecs = 100;
-  base::TimeDelta ttl = base::TimeDelta::FromSeconds(kMaxAgeSecs);
+  base::TimeDelta ttl = base::Seconds(kMaxAgeSecs);
   base::Time expires = clock()->Now() + ttl;
 
   std::vector<ReportingEndpoint::EndpointInfo> endpoints = {{kEndpoint1_}};
@@ -1408,12 +1408,12 @@
   }
 
   // Set another header with max_age: 0 to delete one of the groups.
-  std::string header2 = ConstructHeaderGroupString(MakeEndpointGroup(
-                            kGroup1_, endpoints1, OriginSubdomains::DEFAULT,
-                            base::TimeDelta::FromSeconds(0))) +
-                        ", " +
-                        ConstructHeaderGroupString(MakeEndpointGroup(
-                            kGroup2_, endpoints2));  // Other group stays.
+  std::string header2 =
+      ConstructHeaderGroupString(MakeEndpointGroup(
+          kGroup1_, endpoints1, OriginSubdomains::DEFAULT, base::Seconds(0))) +
+      ", " +
+      ConstructHeaderGroupString(
+          MakeEndpointGroup(kGroup2_, endpoints2));  // Other group stays.
   ParseHeader(kNik_, kUrl1_, header2);
 
   EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin1_));
@@ -1449,7 +1449,7 @@
   // even if the endpoints field is an empty list.)
   std::string header3 = ConstructHeaderGroupString(MakeEndpointGroup(
       kGroup2_, std::vector<ReportingEndpoint::EndpointInfo>(),
-      OriginSubdomains::DEFAULT, base::TimeDelta::FromSeconds(0)));
+      OriginSubdomains::DEFAULT, base::Seconds(0)));
   ParseHeader(kNik_, kUrl1_, header3);
 
   // Deletion of the last remaining group also deletes the client for this
@@ -1543,12 +1543,12 @@
   }
 
   // Set another header with max_age: 0 to delete one of the groups.
-  std::string header2 = ConstructHeaderGroupString(MakeEndpointGroup(
-                            kGroup1_, endpoints1, OriginSubdomains::DEFAULT,
-                            base::TimeDelta::FromSeconds(0))) +
-                        ", " +
-                        ConstructHeaderGroupString(MakeEndpointGroup(
-                            kGroup2_, endpoints2));  // Other group stays.
+  std::string header2 =
+      ConstructHeaderGroupString(MakeEndpointGroup(
+          kGroup1_, endpoints1, OriginSubdomains::DEFAULT, base::Seconds(0))) +
+      ", " +
+      ConstructHeaderGroupString(
+          MakeEndpointGroup(kGroup2_, endpoints2));  // Other group stays.
   ParseHeader(kNik_, kUrl1_, header2);
 
   EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin1_));
@@ -1752,7 +1752,7 @@
     ReportingEndpointGroup group;
     group.group_key = group_key;
     group.include_subdomains = OriginSubdomains::EXCLUDE;
-    group.ttl = base::TimeDelta::FromDays(30);
+    group.ttl = base::Days(30);
     group.endpoints = std::move(endpoints);
     return group;
   }
diff --git a/net/reporting/reporting_network_change_observer_unittest.cc b/net/reporting/reporting_network_change_observer_unittest.cc
index cb7edca..913b4415 100644
--- a/net/reporting/reporting_network_change_observer_unittest.cc
+++ b/net/reporting/reporting_network_change_observer_unittest.cc
@@ -34,9 +34,8 @@
   }
 
   void SetEndpoint() {
-    ASSERT_TRUE(
-        SetEndpointInCache(kGroupKey_, kEndpoint_,
-                           base::Time::Now() + base::TimeDelta::FromDays(7)));
+    ASSERT_TRUE(SetEndpointInCache(kGroupKey_, kEndpoint_,
+                                   base::Time::Now() + base::Days(7)));
   }
 
   size_t report_count() {
diff --git a/net/reporting/reporting_policy.cc b/net/reporting/reporting_policy.cc
index baa8553..9756443 100644
--- a/net/reporting/reporting_policy.cc
+++ b/net/reporting/reporting_policy.cc
@@ -34,13 +34,13 @@
     : max_report_count(100u),
       max_endpoint_count(1000u),
       max_endpoints_per_origin(40u),
-      delivery_interval(base::TimeDelta::FromMinutes(1)),
-      persistence_interval(base::TimeDelta::FromMinutes(1)),
+      delivery_interval(base::Minutes(1)),
+      persistence_interval(base::Minutes(1)),
       persist_reports_across_restarts(false),
       persist_clients_across_restarts(true),
-      garbage_collection_interval(base::TimeDelta::FromMinutes(5)),
-      max_report_age(base::TimeDelta::FromMinutes(15)),
-      max_group_staleness(base::TimeDelta::FromDays(7)),
+      garbage_collection_interval(base::Minutes(5)),
+      max_report_age(base::Minutes(15)),
+      max_group_staleness(base::Days(7)),
       max_report_attempts(5),
       persist_reports_across_network_changes(false),
       persist_clients_across_network_changes(true) {
diff --git a/net/reporting/reporting_test_util.cc b/net/reporting/reporting_test_util.cc
index 970f248..d3a637a 100644
--- a/net/reporting/reporting_test_util.cc
+++ b/net/reporting/reporting_test_util.cc
@@ -291,7 +291,7 @@
 }
 
 base::TimeTicks ReportingTestBase::yesterday() {
-  return tick_clock()->NowTicks() - base::TimeDelta::FromDays(1);
+  return tick_clock()->NowTicks() - base::Days(1);
 }
 
 base::TimeTicks ReportingTestBase::now() {
@@ -299,7 +299,7 @@
 }
 
 base::TimeTicks ReportingTestBase::tomorrow() {
-  return tick_clock()->NowTicks() + base::TimeDelta::FromDays(1);
+  return tick_clock()->NowTicks() + base::Days(1);
 }
 
 TestReportingService::Report::Report() = default;
diff --git a/net/socket/client_socket_pool.cc b/net/socket/client_socket_pool.cc
index 95401b7..d56a35c 100644
--- a/net/socket/client_socket_pool.cc
+++ b/net/socket/client_socket_pool.cc
@@ -133,7 +133,7 @@
 
 // static
 base::TimeDelta ClientSocketPool::used_idle_socket_timeout() {
-  return base::TimeDelta::FromSeconds(g_used_idle_socket_timeout_s);
+  return base::Seconds(g_used_idle_socket_timeout_s);
 }
 
 // static
diff --git a/net/socket/client_socket_pool_base_unittest.cc b/net/socket/client_socket_pool_base_unittest.cc
index bd6b9d8d..ce489a9 100644
--- a/net/socket/client_socket_pool_base_unittest.cc
+++ b/net/socket/client_socket_pool_base_unittest.cc
@@ -80,8 +80,7 @@
 
 const int kDefaultMaxSockets = 4;
 const int kDefaultMaxSocketsPerGroup = 2;
-constexpr base::TimeDelta kUnusedIdleSocketTimeout =
-    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kUnusedIdleSocketTimeout = base::Seconds(10);
 
 ClientSocketPool::GroupId TestGroupId(
     base::StringPiece host,
@@ -408,7 +407,7 @@
             base::BindOnce(base::IgnoreResult(&TestConnectJob::DoConnect),
                            weak_factory_.GetWeakPtr(), true /* successful */,
                            true /* async */, false /* cert_error */),
-            base::TimeDelta::FromMilliseconds(kPendingConnectDelay));
+            base::Milliseconds(kPendingConnectDelay));
         return ERR_IO_PENDING;
       case kMockPendingFailingJob:
         set_load_state(LOAD_STATE_CONNECTING);
@@ -417,7 +416,7 @@
             base::BindOnce(base::IgnoreResult(&TestConnectJob::DoConnect),
                            weak_factory_.GetWeakPtr(), false /* error */,
                            true /* async */, false /* cert_error */),
-            base::TimeDelta::FromMilliseconds(2));
+            base::Milliseconds(2));
         return ERR_IO_PENDING;
       case kMockWaitingJob:
         set_load_state(LOAD_STATE_CONNECTING);
@@ -434,7 +433,7 @@
             base::BindOnce(base::IgnoreResult(&TestConnectJob::DoConnect),
                            weak_factory_.GetWeakPtr(), false /* error */,
                            true /* async */, true /* cert_error */),
-            base::TimeDelta::FromMilliseconds(2));
+            base::Milliseconds(2));
         return ERR_IO_PENDING;
       case kMockAdditionalErrorStateJob:
         store_additional_error_state_ = true;
@@ -448,7 +447,7 @@
             base::BindOnce(base::IgnoreResult(&TestConnectJob::DoConnect),
                            weak_factory_.GetWeakPtr(), false /* error */,
                            true /* async */, false /* cert_error */),
-            base::TimeDelta::FromMilliseconds(2));
+            base::Milliseconds(2));
         return ERR_IO_PENDING;
       case kMockUnreadDataJob: {
         int ret = DoConnect(true /* successful */, false /* sync */,
@@ -1220,7 +1219,7 @@
   // actually become pending until 2ms after they have been created. In order
   // to flush all tasks, we need to wait so that we know there are no
   // soon-to-be-pending tasks waiting.
-  FastForwardBy(base::TimeDelta::FromMilliseconds(10));
+  FastForwardBy(base::Milliseconds(10));
 
   // The next synchronous request should wait for its turn.
   connect_job_factory_->set_job_type(TestConnectJob::kMockJob);
@@ -2588,7 +2587,7 @@
   CreatePoolWithIdleTimeouts(
       kDefaultMaxSockets, kDefaultMaxSocketsPerGroup,
       base::TimeDelta(),  // Time out unused sockets immediately.
-      base::TimeDelta::FromDays(1));  // Don't time out used sockets.
+      base::Days(1));     // Don't time out used sockets.
 
   connect_job_factory_->set_job_type(TestConnectJob::kMockPendingJob);
 
@@ -2686,7 +2685,7 @@
   // actually become pending until 2ms after they have been created. In order
   // to flush all tasks, we need to wait so that we know there are no
   // soon-to-be-pending tasks waiting.
-  FastForwardBy(base::TimeDelta::FromMilliseconds(10));
+  FastForwardBy(base::Milliseconds(10));
 
   // Both sockets should now be idle.
   ASSERT_EQ(2, pool_->IdleSocketCount());
@@ -2721,7 +2720,7 @@
   CreatePoolWithIdleTimeouts(
       kDefaultMaxSockets, kDefaultMaxSocketsPerGroup,
       base::TimeDelta(),  // Time out unused sockets immediately.
-      base::TimeDelta::FromDays(1));  // Don't time out used sockets.
+      base::Days(1));     // Don't time out used sockets.
 
   connect_job_factory_->set_job_type(TestConnectJob::kMockJob);
 
@@ -2779,7 +2778,7 @@
   CreatePoolWithIdleTimeouts(
       4 /* socket limit */, 4 /* socket limit per group */,
       base::TimeDelta(),  // Time out unused sockets immediately.
-      base::TimeDelta::FromDays(1));  // Don't time out used sockets.
+      base::Days(1));     // Don't time out used sockets.
 
   connect_job_factory_->set_job_type(TestConnectJob::kMockJob);
 
@@ -3096,15 +3095,15 @@
   // The backup timer fires but doesn't start a new ConnectJob while resolving
   // the hostname.
   client_socket_factory_.SetJobLoadState(0, LOAD_STATE_RESOLVING_HOST);
-  FastForwardBy(base::TimeDelta::FromMilliseconds(
-      ClientSocketPool::kMaxConnectRetryIntervalMs * 100));
+  FastForwardBy(
+      base::Milliseconds(ClientSocketPool::kMaxConnectRetryIntervalMs * 100));
   EXPECT_EQ(1, client_socket_factory_.allocation_count());
 
   // Once the ConnectJob has finished resolving the hostname, the backup timer
   // will create a ConnectJob when it fires.
   client_socket_factory_.SetJobLoadState(0, LOAD_STATE_CONNECTING);
-  FastForwardBy(base::TimeDelta::FromMilliseconds(
-      ClientSocketPool::kMaxConnectRetryIntervalMs));
+  FastForwardBy(
+      base::Milliseconds(ClientSocketPool::kMaxConnectRetryIntervalMs));
   EXPECT_EQ(2, client_socket_factory_.allocation_count());
 }
 
@@ -3126,14 +3125,14 @@
   // The backup timer fires but doesn't start a new ConnectJob while resolving
   // the hostname.
   client_socket_factory_.SetJobLoadState(0, LOAD_STATE_RESOLVING_HOST);
-  FastForwardBy(base::TimeDelta::FromMilliseconds(
-      ClientSocketPool::kMaxConnectRetryIntervalMs * 100));
+  FastForwardBy(
+      base::Milliseconds(ClientSocketPool::kMaxConnectRetryIntervalMs * 100));
   EXPECT_EQ(1, client_socket_factory_.allocation_count());
 
   client_socket_factory_.SetJobLoadState(0, LOAD_STATE_SSL_HANDSHAKE);
   client_socket_factory_.SetJobHasEstablishedConnection(0);
-  FastForwardBy(base::TimeDelta::FromMilliseconds(
-      ClientSocketPool::kMaxConnectRetryIntervalMs * 100));
+  FastForwardBy(
+      base::Milliseconds(ClientSocketPool::kMaxConnectRetryIntervalMs * 100));
   EXPECT_EQ(1, client_socket_factory_.allocation_count());
 }
 
@@ -3174,8 +3173,8 @@
   handle.Reset();
 
   // Wait for the backup timer to fire (add some slop to ensure it fires)
-  FastForwardBy(base::TimeDelta::FromMilliseconds(
-      ClientSocketPool::kMaxConnectRetryIntervalMs / 2 * 3));
+  FastForwardBy(
+      base::Milliseconds(ClientSocketPool::kMaxConnectRetryIntervalMs / 2 * 3));
 
   EXPECT_EQ(kDefaultMaxSockets, client_socket_factory_.allocation_count());
 }
@@ -3206,8 +3205,8 @@
   // the backup time to see if it indeed got canceled.
   handle.Reset();
   // Wait for the backup timer to fire (add some slop to ensure it fires)
-  FastForwardBy(base::TimeDelta::FromMilliseconds(
-      ClientSocketPool::kMaxConnectRetryIntervalMs / 2 * 3));
+  FastForwardBy(
+      base::Milliseconds(ClientSocketPool::kMaxConnectRetryIntervalMs / 2 * 3));
   ASSERT_TRUE(pool_->HasGroupForTesting(TestGroupId("bar")));
   EXPECT_EQ(1u, pool_->NumConnectJobsInGroupForTesting(TestGroupId("bar")));
 }
@@ -3244,8 +3243,8 @@
   handle.Reset();
   EXPECT_THAT(callback2.WaitForResult(), IsOk());
   // Wait for the backup timer to fire (add some slop to ensure it fires)
-  FastForwardBy(base::TimeDelta::FromMilliseconds(
-      ClientSocketPool::kMaxConnectRetryIntervalMs / 2 * 3));
+  FastForwardBy(
+      base::Milliseconds(ClientSocketPool::kMaxConnectRetryIntervalMs / 2 * 3));
 }
 
 // Test delayed socket binding for the case where we have two connects,
@@ -4220,8 +4219,7 @@
 
   // Make the ConnectJob hang until it times out, shorten the timeout.
   connect_job_factory_->set_job_type(TestConnectJob::kMockWaitingJob);
-  connect_job_factory_->set_timeout_duration(
-      base::TimeDelta::FromMilliseconds(500));
+  connect_job_factory_->set_timeout_duration(base::Milliseconds(500));
   pool_->RequestSockets(TestGroupId("a"), params_, absl::nullopt, 1,
                         NetLogWithSource());
   EXPECT_EQ(1u, pool_->NumConnectJobsInGroupForTesting(TestGroupId("a")));
@@ -4237,7 +4235,7 @@
   base::RunLoop loop;
   connect_job_factory_->set_job_type(TestConnectJob::kMockPendingJob);
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, loop.QuitClosure(), base::TimeDelta::FromSeconds(1));
+      FROM_HERE, loop.QuitClosure(), base::Seconds(1));
   loop.Run();
   EXPECT_FALSE(pool_->HasGroupForTesting(TestGroupId("a")));
 }
diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket_pool_manager.cc
index c8cf594a..f9156b7 100644
--- a/net/socket/client_socket_pool_manager.cc
+++ b/net/socket/client_socket_pool_manager.cc
@@ -215,11 +215,9 @@
 // static
 base::TimeDelta ClientSocketPoolManager::unused_idle_socket_timeout(
     HttpNetworkSession::SocketPoolType pool_type) {
-  return base::TimeDelta::FromSeconds(base::GetFieldTrialParamByFeatureAsInt(
+  return base::Seconds(base::GetFieldTrialParamByFeatureAsInt(
       net::features::kNetUnusedIdleSocketTimeout,
-      "unused_idle_socket_timeout_seconds",
-      60
-      ));
+      "unused_idle_socket_timeout_seconds", 60));
 }
 
 int InitSocketHandleForHttpRequest(
diff --git a/net/socket/connect_job_unittest.cc b/net/socket/connect_job_unittest.cc
index 230396e6..0f94806 100644
--- a/net/socket/connect_job_unittest.cc
+++ b/net/socket/connect_job_unittest.cc
@@ -122,16 +122,15 @@
 // completion.
 TEST_F(ConnectJobTest, NoTimeoutOnSyncCompletion) {
   TestConnectJob job(TestConnectJob::JobType::kSyncSuccess,
-                     base::TimeDelta::FromMicroseconds(1),
-                     &common_connect_job_params_, &delegate_);
+                     base::Microseconds(1), &common_connect_job_params_,
+                     &delegate_);
   EXPECT_THAT(job.Connect(), test::IsOk());
 }
 
 // Even though a timeout is specified, it doesn't time out on an asynchronous
 // completion.
 TEST_F(ConnectJobTest, NoTimeoutOnAsyncCompletion) {
-  TestConnectJob job(TestConnectJob::JobType::kAsyncSuccess,
-                     base::TimeDelta::FromMinutes(1),
+  TestConnectJob job(TestConnectJob::JobType::kAsyncSuccess, base::Minutes(1),
                      &common_connect_job_params_, &delegate_);
   ASSERT_THAT(job.Connect(), test::IsError(ERR_IO_PENDING));
   EXPECT_THAT(delegate_.WaitForResult(), test::IsOk());
@@ -150,8 +149,8 @@
 // subclasses during the SetPriorityInternal call.
 TEST_F(ConnectJobTest, SetPriority) {
   TestConnectJob job(TestConnectJob::JobType::kAsyncSuccess,
-                     base::TimeDelta::FromMicroseconds(1),
-                     &common_connect_job_params_, &delegate_);
+                     base::Microseconds(1), &common_connect_job_params_,
+                     &delegate_);
   ASSERT_THAT(job.Connect(), test::IsError(ERR_IO_PENDING));
 
   job.ChangePriority(HIGHEST);
@@ -166,7 +165,7 @@
 }
 
 TEST_F(ConnectJobTest, TimedOut) {
-  const base::TimeDelta kTimeout = base::TimeDelta::FromHours(1);
+  const base::TimeDelta kTimeout = base::Hours(1);
 
   std::unique_ptr<TestConnectJob> job =
       std::make_unique<TestConnectJob>(TestConnectJob::JobType::kHung, kTimeout,
@@ -174,13 +173,12 @@
   ASSERT_THAT(job->Connect(), test::IsError(ERR_IO_PENDING));
 
   // Nothing should happen before the specified time.
-  task_environment_.FastForwardBy(kTimeout -
-                                  base::TimeDelta::FromMilliseconds(1));
+  task_environment_.FastForwardBy(kTimeout - base::Milliseconds(1));
   base::RunLoop().RunUntilIdle();
   EXPECT_FALSE(delegate_.has_result());
 
   // At which point the job should time out.
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_environment_.FastForwardBy(base::Milliseconds(1));
   EXPECT_THAT(delegate_.WaitForResult(), test::IsError(ERR_TIMED_OUT));
 
   // Have to delete the job for it to log the end event.
@@ -204,26 +202,24 @@
 }
 
 TEST_F(ConnectJobTest, TimedOutWithRestartedTimer) {
-  const base::TimeDelta kTimeout = base::TimeDelta::FromHours(1);
+  const base::TimeDelta kTimeout = base::Hours(1);
 
   TestConnectJob job(TestConnectJob::JobType::kHung, kTimeout,
                      &common_connect_job_params_, &delegate_);
   ASSERT_THAT(job.Connect(), test::IsError(ERR_IO_PENDING));
 
   // Nothing should happen before the specified time.
-  task_environment_.FastForwardBy(kTimeout -
-                                  base::TimeDelta::FromMilliseconds(1));
+  task_environment_.FastForwardBy(kTimeout - base::Milliseconds(1));
   base::RunLoop().RunUntilIdle();
   EXPECT_FALSE(delegate_.has_result());
 
   // Make sure restarting the timer is respected.
   job.ResetTimer(kTimeout);
-  task_environment_.FastForwardBy(kTimeout -
-                                  base::TimeDelta::FromMilliseconds(1));
+  task_environment_.FastForwardBy(kTimeout - base::Milliseconds(1));
   base::RunLoop().RunUntilIdle();
   EXPECT_FALSE(delegate_.has_result());
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_environment_.FastForwardBy(base::Milliseconds(1));
   EXPECT_THAT(delegate_.WaitForResult(), test::IsError(ERR_TIMED_OUT));
 }
 
diff --git a/net/socket/socket_test_util.cc b/net/socket/socket_test_util.cc
index 815490bb..b072d40 100644
--- a/net/socket/socket_test_util.cc
+++ b/net/socket/socket_test_util.cc
@@ -2176,7 +2176,7 @@
     : TransportClientSocketPool(
           max_sockets,
           max_sockets_per_group,
-          base::TimeDelta::FromSeconds(10) /* unused_idle_socket_timeout */,
+          base::Seconds(10) /* unused_idle_socket_timeout */,
           ProxyServer::Direct(),
           false /* is_for_websockets */,
           common_connect_job_params),
diff --git a/net/socket/socks_connect_job.cc b/net/socket/socks_connect_job.cc
index c5824014..2c93200 100644
--- a/net/socket/socks_connect_job.cc
+++ b/net/socket/socks_connect_job.cc
@@ -20,8 +20,7 @@
 namespace net {
 
 // SOCKSConnectJobs will time out if the SOCKS handshake takes longer than this.
-static constexpr base::TimeDelta kSOCKSConnectJobTimeout =
-    base::TimeDelta::FromSeconds(30);
+static constexpr base::TimeDelta kSOCKSConnectJobTimeout = base::Seconds(30);
 
 SOCKSSocketParams::SOCKSSocketParams(
     scoped_refptr<TransportSocketParams> proxy_server_params,
diff --git a/net/socket/socks_connect_job_unittest.cc b/net/socket/socks_connect_job_unittest.cc
index c5c87f51..6945188b 100644
--- a/net/socket/socks_connect_job_unittest.cc
+++ b/net/socket/socks_connect_job_unittest.cc
@@ -38,7 +38,7 @@
 const char kProxyHostName[] = "proxy.test";
 const int kProxyPort = 4321;
 
-constexpr base::TimeDelta kTinyTime = base::TimeDelta::FromMicroseconds(1);
+constexpr base::TimeDelta kTinyTime = base::Microseconds(1);
 
 class SOCKSConnectJobTest : public testing::Test, public WithTaskEnvironment {
  public:
diff --git a/net/socket/ssl_client_socket_unittest.cc b/net/socket/ssl_client_socket_unittest.cc
index d8de55a..03d284b 100644
--- a/net/socket/ssl_client_socket_unittest.cc
+++ b/net/socket/ssl_client_socket_unittest.cc
@@ -2019,7 +2019,7 @@
   int old_write_count = raw_counting_socket->write_count();
   base::RunLoop loop;
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, loop.QuitClosure(), base::TimeDelta::FromMilliseconds(100));
+      FROM_HERE, loop.QuitClosure(), base::Milliseconds(100));
   loop.Run();
   EXPECT_EQ(old_write_count, raw_counting_socket->write_count());
 }
@@ -3121,8 +3121,7 @@
   ASSERT_TRUE(StartEmbeddedTestServer(EmbeddedTestServer::CERT_CHAIN_WRONG_ROOT,
                                       GetServerConfig()));
   int rv;
-  const base::Time expiry =
-      base::Time::Now() + base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = base::Time::Now() + base::Seconds(1000);
   transport_security_state_->AddHSTS(host_port_pair().host(), expiry, true);
   ASSERT_TRUE(CreateAndConnectSSLClientSocket(SSLConfig(), &rv));
   SSLInfo ssl_info;
@@ -4295,7 +4294,7 @@
 
   // Set up the Expect-CT opt-in.
   const base::Time current_time(base::Time::Now());
-  const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = current_time + base::Seconds(1000);
   transport_security_state_->AddExpectCT(
       host_port_pair().host(), expiry, true /* enforce */,
       GURL("https://example-report.test"), NetworkIsolationKey());
@@ -4380,7 +4379,7 @@
 
   // Set up the Expect-CT opt-in.
   const base::Time current_time(base::Time::Now());
-  const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = current_time + base::Seconds(1000);
   transport_security_state_->AddExpectCT(
       host_port_pair().host(), expiry, true /* enforce */,
       GURL("https://example-report.test"), NetworkIsolationKey());
@@ -4476,7 +4475,7 @@
   NetworkIsolationKey network_isolation_key =
       NetworkIsolationKey::CreateTransient();
   const base::Time current_time(base::Time::Now());
-  const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = current_time + base::Seconds(1000);
   transport_security_state_->AddExpectCT(
       host_port_pair().host(), expiry, true /* enforce */,
       GURL("https://example-report.test"), network_isolation_key);
@@ -5972,8 +5971,7 @@
   // Connection should fail with ERR_SSL_OBSOLETE_VERSION and the legacy TLS
   // cert status.
   int rv;
-  const base::Time expiry =
-      base::Time::Now() + base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = base::Time::Now() + base::Seconds(1000);
   transport_security_state_->AddHSTS(host_port_pair().host(), expiry, true);
   ASSERT_TRUE(CreateAndConnectSSLClientSocket(client_config, &rv));
   EXPECT_THAT(rv, IsError(ERR_SSL_OBSOLETE_VERSION));
diff --git a/net/socket/ssl_connect_job.cc b/net/socket/ssl_connect_job.cc
index 18791fc..935e687 100644
--- a/net/socket/ssl_connect_job.cc
+++ b/net/socket/ssl_connect_job.cc
@@ -41,8 +41,7 @@
 namespace {
 
 // Timeout for the SSL handshake portion of the connect.
-constexpr base::TimeDelta kSSLHandshakeTimeout(
-    base::TimeDelta::FromSeconds(30));
+constexpr base::TimeDelta kSSLHandshakeTimeout(base::Seconds(30));
 
 }  // namespace
 
@@ -422,8 +421,7 @@
     base::TimeDelta connect_duration =
         connect_timing_.ssl_end - connect_timing_.ssl_start;
     UMA_HISTOGRAM_CUSTOM_TIMES("Net.SSL_Connection_Latency_2", connect_duration,
-                               base::TimeDelta::FromMilliseconds(1),
-                               base::TimeDelta::FromMinutes(1), 100);
+                               base::Milliseconds(1), base::Minutes(1), 100);
 
     SSLInfo ssl_info;
     bool has_ssl_info = ssl_socket_->GetSSLInfo(&ssl_info);
diff --git a/net/socket/ssl_connect_job_unittest.cc b/net/socket/ssl_connect_job_unittest.cc
index 118df885..b8310ff8 100644
--- a/net/socket/ssl_connect_job_unittest.cc
+++ b/net/socket/ssl_connect_job_unittest.cc
@@ -211,7 +211,7 @@
 }
 
 TEST_F(SSLConnectJobTest, TCPTimeout) {
-  const base::TimeDelta kTinyTime = base::TimeDelta::FromMicroseconds(1);
+  const base::TimeDelta kTinyTime = base::Microseconds(1);
 
   // Make request hang.
   host_resolver_.set_ondemand_mode(true);
@@ -233,7 +233,7 @@
 }
 
 TEST_F(SSLConnectJobTest, SSLTimeoutSyncConnect) {
-  const base::TimeDelta kTinyTime = base::TimeDelta::FromMicroseconds(1);
+  const base::TimeDelta kTinyTime = base::Microseconds(1);
 
   // DNS lookup and transport connect complete synchronously, but SSL
   // negotiation hangs.
@@ -262,7 +262,7 @@
 }
 
 TEST_F(SSLConnectJobTest, SSLTimeoutAsyncTcpConnect) {
-  const base::TimeDelta kTinyTime = base::TimeDelta::FromMicroseconds(1);
+  const base::TimeDelta kTinyTime = base::Microseconds(1);
 
   // DNS lookup is asynchronous, and later SSL negotiation hangs.
   host_resolver_.set_ondemand_mode(true);
@@ -337,7 +337,7 @@
   EXPECT_THAT(ssl_connect_job->Connect(), test::IsError(ERR_IO_PENDING));
   EXPECT_TRUE(host_resolver_.has_pending_requests());
   EXPECT_EQ(MEDIUM, host_resolver_.last_request_priority());
-  FastForwardBy(base::TimeDelta::FromSeconds(5));
+  FastForwardBy(base::Seconds(5));
 
   base::TimeTicks resolve_complete_time = base::TimeTicks::Now();
   host_resolver_.ResolveAllPending();
@@ -959,7 +959,7 @@
 
   // While waiting for auth credentials to be provided, the Job should not time
   // out.
-  FastForwardBy(base::TimeDelta::FromDays(1));
+  FastForwardBy(base::Days(1));
   test_delegate.WaitForAuthChallenge(1);
   EXPECT_FALSE(test_delegate.has_result());
 
diff --git a/net/socket/ssl_server_socket_unittest.cc b/net/socket/ssl_server_socket_unittest.cc
index d98f8f5..5e2e301 100644
--- a/net/socket/ssl_server_socket_unittest.cc
+++ b/net/socket/ssl_server_socket_unittest.cc
@@ -1139,7 +1139,7 @@
 
   base::RunLoop run_loop;
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(), base::TimeDelta::FromMilliseconds(10));
+      FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(10));
   run_loop.Run();
 }
 
diff --git a/net/socket/tcp_client_socket.cc b/net/socket/tcp_client_socket.cc
index 42325cb..1436e07 100644
--- a/net/socket/tcp_client_socket.cc
+++ b/net/socket/tcp_client_socket.cc
@@ -567,8 +567,7 @@
   base::TimeDelta rtt;
   if (socket_->GetEstimatedRoundTripTime(&rtt)) {
     UMA_HISTOGRAM_CUSTOM_TIMES("Net.TcpRtt.AtDisconnect", rtt,
-                               base::TimeDelta::FromMilliseconds(1),
-                               base::TimeDelta::FromMinutes(10), 100);
+                               base::Milliseconds(1), base::Minutes(10), 100);
   }
 }
 
diff --git a/net/socket/tcp_client_socket_unittest.cc b/net/socket/tcp_client_socket_unittest.cc
index 5444c7f5..467544d 100644
--- a/net/socket/tcp_client_socket_unittest.cc
+++ b/net/socket/tcp_client_socket_unittest.cc
@@ -847,7 +847,7 @@
   ASSERT_THAT(rv, IsError(ERR_IO_PENDING));
 
   // After 4 minutes, the socket should still be connecting.
-  task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(4));
+  task_environment_.FastForwardBy(base::Minutes(4));
   EXPECT_FALSE(connect_callback.have_result());
   EXPECT_FALSE(socket.IsConnected());
 
@@ -858,8 +858,8 @@
 // Tests that the maximum timeout is used when there is no estimated
 // RTT.
 TEST_F(TCPClientSocketMockTimeTest, ConnectAttemptTimeoutUsesMaxWhenNoRTT) {
-  OverrideTcpConnectAttemptTimeout override_timeout(
-      1, base::TimeDelta::FromSeconds(4), base::TimeDelta::FromSeconds(10));
+  OverrideTcpConnectAttemptTimeout override_timeout(1, base::Seconds(4),
+                                                    base::Seconds(10));
 
   IPEndPoint server_address(IPAddress::IPv4Localhost(), 80);
 
@@ -875,20 +875,20 @@
 
   // Advance to t=3.1s
   // Should still be pending, as this is before the minimum timeout.
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(3100));
+  task_environment_.FastForwardBy(base::Milliseconds(3100));
   EXPECT_FALSE(connect_callback.have_result());
   EXPECT_FALSE(socket.IsConnected());
 
   // Advance to t=4.1s
   // Should still be pending. This is after the minimum timeout, but before the
   // maximum.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(connect_callback.have_result());
   EXPECT_FALSE(socket.IsConnected());
 
   // Advance to t=10.1s
   // Should now be timed out, as this is after the maximum timeout.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(6));
+  task_environment_.FastForwardBy(base::Seconds(6));
   rv = connect_callback.GetResult(rv);
   ASSERT_THAT(rv, IsError(ERR_TIMED_OUT));
 
@@ -899,13 +899,12 @@
 // Tests that the minimum timeout is used when the adaptive timeout using RTT
 // ends up being too low.
 TEST_F(TCPClientSocketMockTimeTest, ConnectAttemptTimeoutUsesMinWhenRTTLow) {
-  OverrideTcpConnectAttemptTimeout override_timeout(
-      5, base::TimeDelta::FromSeconds(4), base::TimeDelta::FromSeconds(10));
+  OverrideTcpConnectAttemptTimeout override_timeout(5, base::Seconds(4),
+                                                    base::Seconds(10));
 
   // Set the estimated RTT to 1 millisecond.
   TestNetworkQualityEstimator network_quality_estimator;
-  network_quality_estimator.SetStartTimeNullTransportRtt(
-      base::TimeDelta::FromMilliseconds(1));
+  network_quality_estimator.SetStartTimeNullTransportRtt(base::Milliseconds(1));
 
   IPEndPoint server_address(IPAddress::IPv4Localhost(), 80);
 
@@ -921,13 +920,13 @@
   // Advance to t=1.1s
   // Should be pending, since although the adaptive timeout has been reached, it
   // is lower than the minimum timeout.
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1100));
+  task_environment_.FastForwardBy(base::Milliseconds(1100));
   EXPECT_FALSE(connect_callback.have_result());
   EXPECT_FALSE(socket.IsConnected());
 
   // Advance to t=4.1s
   // Should have timed out due to hitting the minimum timeout.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(3));
+  task_environment_.FastForwardBy(base::Seconds(3));
   rv = connect_callback.GetResult(rv);
   ASSERT_THAT(rv, IsError(ERR_TIMED_OUT));
 
@@ -938,13 +937,12 @@
 // Tests that the maximum timeout is used when the adaptive timeout from RTT is
 // too high.
 TEST_F(TCPClientSocketMockTimeTest, ConnectAttemptTimeoutUsesMinWhenRTTHigh) {
-  OverrideTcpConnectAttemptTimeout override_timeout(
-      5, base::TimeDelta::FromSeconds(4), base::TimeDelta::FromSeconds(10));
+  OverrideTcpConnectAttemptTimeout override_timeout(5, base::Seconds(4),
+                                                    base::Seconds(10));
 
   // Set the estimated RTT to 5 seconds.
   TestNetworkQualityEstimator network_quality_estimator;
-  network_quality_estimator.SetStartTimeNullTransportRtt(
-      base::TimeDelta::FromSeconds(5));
+  network_quality_estimator.SetStartTimeNullTransportRtt(base::Seconds(5));
 
   IPEndPoint server_address(IPAddress::IPv4Localhost(), 80);
 
@@ -961,7 +959,7 @@
   // The socket should have timed out due to hitting the maximum timeout. Had
   // the adaptive timeout been used, the socket would instead be timing out at
   // t=25s.
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(10100));
+  task_environment_.FastForwardBy(base::Milliseconds(10100));
   rv = connect_callback.GetResult(rv);
   ASSERT_THAT(rv, IsError(ERR_TIMED_OUT));
 
@@ -972,14 +970,13 @@
 // Tests that an adaptive timeout is used for TCP connection attempts based on
 // the estimated RTT.
 TEST_F(TCPClientSocketMockTimeTest, ConnectAttemptTimeoutUsesRTT) {
-  OverrideTcpConnectAttemptTimeout override_timeout(
-      5, base::TimeDelta::FromSeconds(4), base::TimeDelta::FromSeconds(10));
+  OverrideTcpConnectAttemptTimeout override_timeout(5, base::Seconds(4),
+                                                    base::Seconds(10));
 
   // Set the estimated RTT to 1 second. Since the multiplier is set to 5, the
   // total adaptive timeout will be 5 seconds.
   TestNetworkQualityEstimator network_quality_estimator;
-  network_quality_estimator.SetStartTimeNullTransportRtt(
-      base::TimeDelta::FromSeconds(1));
+  network_quality_estimator.SetStartTimeNullTransportRtt(base::Seconds(1));
 
   IPEndPoint server_address(IPAddress::IPv4Localhost(), 80);
 
@@ -995,13 +992,13 @@
   // Advance to t=4.1s
   // The socket should still be pending. Had the minimum timeout been enforced,
   // it would instead have timed out now.
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(4100));
+  task_environment_.FastForwardBy(base::Milliseconds(4100));
   EXPECT_FALSE(connect_callback.have_result());
   EXPECT_FALSE(socket.IsConnected());
 
   // Advance to t=5.1s
   // The adaptive timeout was at t=5s, so it should now be timed out.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
   rv = connect_callback.GetResult(rv);
   ASSERT_THAT(rv, IsError(ERR_TIMED_OUT));
 
@@ -1012,8 +1009,8 @@
 // Tests that when multiple TCP connect attempts are made, the timeout for each
 // one is applied independently.
 TEST_F(TCPClientSocketMockTimeTest, ConnectAttemptTimeoutIndependent) {
-  OverrideTcpConnectAttemptTimeout override_timeout(
-      5, base::TimeDelta::FromSeconds(4), base::TimeDelta::FromSeconds(10));
+  OverrideTcpConnectAttemptTimeout override_timeout(5, base::Seconds(4),
+                                                    base::Seconds(10));
 
   // This test will attempt connecting to 5 endpoints.
   const size_t kNumIps = 5;
@@ -1032,14 +1029,14 @@
 
   // Advance to t=49s
   // Should still be pending.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(49));
+  task_environment_.FastForwardBy(base::Seconds(49));
   EXPECT_FALSE(connect_callback.have_result());
   EXPECT_FALSE(socket.IsConnected());
 
   // Advance to t=50.1s
   // All attempts should take 50 seconds to complete (5 attempts, 10 seconds
   // each). So by this point the overall connect attempt will have timed out.
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1100));
+  task_environment_.FastForwardBy(base::Milliseconds(1100));
   rv = connect_callback.GetResult(rv);
   ASSERT_THAT(rv, IsError(ERR_TIMED_OUT));
 
diff --git a/net/socket/tcp_socket_posix.cc b/net/socket/tcp_socket_posix.cc
index efe4d56..bd6f087 100644
--- a/net/socket/tcp_socket_posix.cc
+++ b/net/socket/tcp_socket_posix.cc
@@ -124,8 +124,7 @@
     return base::TimeDelta();
   }
 
-  return base::TimeDelta::FromMicroseconds(
-      std::max(info.tcpi_rtt, kMinValidRttMicros));
+  return base::Microseconds(std::max(info.tcpi_rtt, kMinValidRttMicros));
 }
 
 #endif  // defined(TCP_INFO)
diff --git a/net/socket/transport_client_socket_pool.h b/net/socket/transport_client_socket_pool.h
index ab8aa9e4..f3dbb817 100644
--- a/net/socket/transport_client_socket_pool.h
+++ b/net/socket/transport_client_socket_pool.h
@@ -599,7 +599,7 @@
   base::TimeDelta ConnectRetryInterval() const {
     // TODO(mbelshe): Make this tuned dynamically based on measured RTT.
     //                For now, just use the max retry interval.
-    return base::TimeDelta::FromMilliseconds(kMaxConnectRetryIntervalMs);
+    return base::Milliseconds(kMaxConnectRetryIntervalMs);
   }
 
   // TODO(mmenke): de-inline these.
diff --git a/net/socket/transport_client_socket_pool_test_util.cc b/net/socket/transport_client_socket_pool_test_util.cc
index 73c4492..da6b666 100644
--- a/net/socket/transport_client_socket_pool_test_util.cc
+++ b/net/socket/transport_client_socket_pool_test_util.cc
@@ -374,8 +374,8 @@
       client_socket_types_(nullptr),
       client_socket_index_(0),
       client_socket_index_max_(0),
-      delay_(base::TimeDelta::FromMilliseconds(
-          ClientSocketPool::kMaxConnectRetryIntervalMs)) {}
+      delay_(base::Milliseconds(ClientSocketPool::kMaxConnectRetryIntervalMs)) {
+}
 
 MockTransportClientSocketFactory::~MockTransportClientSocketFactory() = default;
 
diff --git a/net/socket/transport_client_socket_pool_unittest.cc b/net/socket/transport_client_socket_pool_unittest.cc
index 979a4f9..9de8147 100644
--- a/net/socket/transport_client_socket_pool_unittest.cc
+++ b/net/socket/transport_client_socket_pool_unittest.cc
@@ -70,8 +70,7 @@
 
 const int kMaxSockets = 32;
 const int kMaxSocketsPerGroup = 6;
-constexpr base::TimeDelta kUnusedIdleSocketTimeout =
-    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kUnusedIdleSocketTimeout = base::Seconds(10);
 const RequestPriority kDefaultPriority = LOW;
 
 class SOCKS5MockData {
@@ -1141,8 +1140,8 @@
     base::RunLoop().RunUntilIdle();
 
     // Wait for the backup socket timer to fire.
-    base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(
-        ClientSocketPool::kMaxConnectRetryIntervalMs + 50));
+    base::PlatformThread::Sleep(
+        base::Milliseconds(ClientSocketPool::kMaxConnectRetryIntervalMs + 50));
 
     // Let the appropriate socket connect.
     base::RunLoop().RunUntilIdle();
@@ -1187,8 +1186,8 @@
 
     if (index == CANCEL_AFTER_WAIT) {
       // Wait for the backup socket timer to fire.
-      base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(
-          ClientSocketPool::kMaxConnectRetryIntervalMs));
+      base::PlatformThread::Sleep(
+          base::Milliseconds(ClientSocketPool::kMaxConnectRetryIntervalMs));
     }
 
     // Let the appropriate socket connect.
@@ -1235,8 +1234,8 @@
   base::RunLoop().RunUntilIdle();
 
   // Wait for the backup socket timer to fire.
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(
-      ClientSocketPool::kMaxConnectRetryIntervalMs));
+  base::PlatformThread::Sleep(
+      base::Milliseconds(ClientSocketPool::kMaxConnectRetryIntervalMs));
 
   // Let the second connect be synchronous. Otherwise, the emulated
   // host resolution takes an extra trip through the message loop.
@@ -1267,7 +1266,7 @@
   };
 
   client_socket_factory_.set_client_socket_types(case_types, 2);
-  client_socket_factory_.set_delay(base::TimeDelta::FromSeconds(5));
+  client_socket_factory_.set_delay(base::Seconds(5));
 
   EXPECT_EQ(0, pool_->IdleSocketCount());
 
@@ -1286,8 +1285,8 @@
   base::RunLoop().RunUntilIdle();
 
   // Wait for the backup socket timer to fire.
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(
-      ClientSocketPool::kMaxConnectRetryIntervalMs));
+  base::PlatformThread::Sleep(
+      base::Milliseconds(ClientSocketPool::kMaxConnectRetryIntervalMs));
 
   // Let the second connect be synchronous. Otherwise, the emulated
   // host resolution takes an extra trip through the message loop.
@@ -2682,7 +2681,7 @@
                      ->IdleSocketCount());
 
     // Moving the clock forward may cause the idle socket to be timedout.
-    FastForwardBy(base::TimeDelta::FromSeconds(test.fast_forward_seconds));
+    FastForwardBy(base::Seconds(test.fast_forward_seconds));
 
     {
       // Request a new socket to trigger cleanup of idle timedout sockets.
diff --git a/net/socket/transport_connect_job.cc b/net/socket/transport_connect_job.cc
index bb3ec6b..36bf77d4d 100644
--- a/net/socket/transport_connect_job.cc
+++ b/net/socket/transport_connect_job.cc
@@ -205,42 +205,36 @@
   base::TimeTicks now = base::TimeTicks::Now();
   base::TimeDelta total_duration = now - connect_timing.dns_start;
   UMA_HISTOGRAM_CUSTOM_TIMES("Net.DNS_Resolution_And_TCP_Connection_Latency2",
-                             total_duration,
-                             base::TimeDelta::FromMilliseconds(1),
-                             base::TimeDelta::FromMinutes(10), 100);
+                             total_duration, base::Milliseconds(1),
+                             base::Minutes(10), 100);
 
   base::TimeDelta connect_duration = now - connect_timing.connect_start;
   UMA_HISTOGRAM_CUSTOM_TIMES("Net.TCP_Connection_Latency", connect_duration,
-                             base::TimeDelta::FromMilliseconds(1),
-                             base::TimeDelta::FromMinutes(10), 100);
+                             base::Milliseconds(1), base::Minutes(10), 100);
 
   switch (race_result) {
     case RACE_IPV4_WINS:
       UMA_HISTOGRAM_CUSTOM_TIMES("Net.TCP_Connection_Latency_IPv4_Wins_Race",
-                                 connect_duration,
-                                 base::TimeDelta::FromMilliseconds(1),
-                                 base::TimeDelta::FromMinutes(10), 100);
+                                 connect_duration, base::Milliseconds(1),
+                                 base::Minutes(10), 100);
       break;
 
     case RACE_IPV4_SOLO:
       UMA_HISTOGRAM_CUSTOM_TIMES("Net.TCP_Connection_Latency_IPv4_No_Race",
-                                 connect_duration,
-                                 base::TimeDelta::FromMilliseconds(1),
-                                 base::TimeDelta::FromMinutes(10), 100);
+                                 connect_duration, base::Milliseconds(1),
+                                 base::Minutes(10), 100);
       break;
 
     case RACE_IPV6_WINS:
       UMA_HISTOGRAM_CUSTOM_TIMES("Net.TCP_Connection_Latency_IPv6_Raceable",
-                                 connect_duration,
-                                 base::TimeDelta::FromMilliseconds(1),
-                                 base::TimeDelta::FromMinutes(10), 100);
+                                 connect_duration, base::Milliseconds(1),
+                                 base::Minutes(10), 100);
       break;
 
     case RACE_IPV6_SOLO:
       UMA_HISTOGRAM_CUSTOM_TIMES("Net.TCP_Connection_Latency_IPv6_Solo",
-                                 connect_duration,
-                                 base::TimeDelta::FromMilliseconds(1),
-                                 base::TimeDelta::FromMinutes(10), 100);
+                                 connect_duration, base::Milliseconds(1),
+                                 base::Minutes(10), 100);
       break;
 
     default:
@@ -251,7 +245,7 @@
 
 // static
 base::TimeDelta TransportConnectJob::ConnectionTimeout() {
-  return base::TimeDelta::FromSeconds(TransportConnectJob::kTimeoutInSeconds);
+  return base::Seconds(TransportConnectJob::kTimeoutInSeconds);
 }
 
 void TransportConnectJob::OnIOComplete(int result) {
@@ -375,9 +369,9 @@
   int rv = transport_socket_->Connect(base::BindOnce(
       &TransportConnectJob::OnIOComplete, base::Unretained(this)));
   if (rv == ERR_IO_PENDING && try_ipv6_connect_with_ipv4_fallback) {
-    fallback_timer_.Start(
-        FROM_HERE, base::TimeDelta::FromMilliseconds(kIPv6FallbackTimerInMs),
-        this, &TransportConnectJob::DoIPv6FallbackTransportConnect);
+    fallback_timer_.Start(FROM_HERE, base::Milliseconds(kIPv6FallbackTimerInMs),
+                          this,
+                          &TransportConnectJob::DoIPv6FallbackTransportConnect);
   }
   return rv;
 }
diff --git a/net/socket/transport_connect_job_unittest.cc b/net/socket/transport_connect_job_unittest.cc
index 66df9f3..67a7165a 100644
--- a/net/socket/transport_connect_job_unittest.cc
+++ b/net/socket/transport_connect_job_unittest.cc
@@ -182,7 +182,7 @@
 }
 
 TEST_F(TransportConnectJobTest, HostResolutionTimeout) {
-  const base::TimeDelta kTinyTime = base::TimeDelta::FromMicroseconds(1);
+  const base::TimeDelta kTinyTime = base::Microseconds(1);
 
   // Make request hang.
   host_resolver_.set_ondemand_mode(true);
@@ -204,7 +204,7 @@
 }
 
 TEST_F(TransportConnectJobTest, ConnectionTimeout) {
-  const base::TimeDelta kTinyTime = base::TimeDelta::FromMicroseconds(1);
+  const base::TimeDelta kTinyTime = base::Microseconds(1);
 
   // Half the timeout time. In the async case, spend half the time waiting on
   // host resolution, half on connecting.
@@ -361,8 +361,8 @@
       MockTransportClientSocketFactory::MOCK_STALLED_FAILING_CLIENT_SOCKET};
 
   client_socket_factory_.set_client_socket_types(case_types, 2);
-  client_socket_factory_.set_delay(base::TimeDelta::FromMilliseconds(
-      TransportConnectJob::kIPv6FallbackTimerInMs + 50));
+  client_socket_factory_.set_delay(
+      base::Milliseconds(TransportConnectJob::kIPv6FallbackTimerInMs + 50));
 
   // Resolve an AddressList with a IPv6 address first and then a IPv4 address.
   host_resolver_.rules()->AddIPLiteralRule(kHostName, "2:abcd::3:4:ff,2.2.2.2",
diff --git a/net/socket/udp_socket_posix.cc b/net/socket/udp_socket_posix.cc
index c34a1e7..1a90794e 100644
--- a/net/socket/udp_socket_posix.cc
+++ b/net/socket/udp_socket_posix.cc
@@ -73,8 +73,7 @@
 const int kPortEnd = 65535;
 const int kActivityMonitorBytesThreshold = 65535;
 const int kActivityMonitorMinimumSamplesForThroughputEstimate = 2;
-const base::TimeDelta kActivityMonitorMsThreshold =
-    base::TimeDelta::FromMilliseconds(100);
+const base::TimeDelta kActivityMonitorMsThreshold = base::Milliseconds(100);
 
 #if defined(OS_MAC)
 
diff --git a/net/socket/udp_socket_posix.h b/net/socket/udp_socket_posix.h
index 5fe0d8c..c9c625cd 100644
--- a/net/socket/udp_socket_posix.h
+++ b/net/socket/udp_socket_posix.h
@@ -66,8 +66,7 @@
 };
 
 // Don't delay writes more than this.
-const base::TimeDelta kWriteAsyncMsThreshold =
-    base::TimeDelta::FromMilliseconds(1);
+const base::TimeDelta kWriteAsyncMsThreshold = base::Milliseconds(1);
 // Prefer local if number of writes is not more than this.
 const int kWriteAsyncMinBuffersThreshold = 2;
 // Don't allow more than this many outstanding async writes.
diff --git a/net/socket/websocket_endpoint_lock_manager.cc b/net/socket/websocket_endpoint_lock_manager.cc
index f1fff37..a405974 100644
--- a/net/socket/websocket_endpoint_lock_manager.cc
+++ b/net/socket/websocket_endpoint_lock_manager.cc
@@ -47,7 +47,7 @@
 }
 
 WebSocketEndpointLockManager::WebSocketEndpointLockManager()
-    : unlock_delay_(base::TimeDelta::FromMilliseconds(kUnlockDelayInMs)),
+    : unlock_delay_(base::Milliseconds(kUnlockDelayInMs)),
       pending_unlock_count_(0) {}
 
 WebSocketEndpointLockManager::~WebSocketEndpointLockManager() {
diff --git a/net/socket/websocket_endpoint_lock_manager_unittest.cc b/net/socket/websocket_endpoint_lock_manager_unittest.cc
index 85d9929b..32022dd1 100644
--- a/net/socket/websocket_endpoint_lock_manager_unittest.cc
+++ b/net/socket/websocket_endpoint_lock_manager_unittest.cc
@@ -266,7 +266,7 @@
   // applied. Instead it just verifies that the whole thing took >=1ms. 1ms is
   // easily enough for normal compiles even on Android, so the fact that there
   // is a delay is still checked on every platform.
-  const base::TimeDelta unlock_delay = base::TimeDelta::FromMilliseconds(1);
+  const base::TimeDelta unlock_delay = base::Milliseconds(1);
   websocket_endpoint_lock_manager_.SetUnlockDelayForTesting(unlock_delay);
   FakeWaiter fake_waiter;
   BlockingWaiter blocking_waiter;
diff --git a/net/socket/websocket_transport_client_socket_pool_unittest.cc b/net/socket/websocket_transport_client_socket_pool_unittest.cc
index 0ed4fe4..cf01a302 100644
--- a/net/socket/websocket_transport_client_socket_pool_unittest.cc
+++ b/net/socket/websocket_transport_client_socket_pool_unittest.cc
@@ -622,8 +622,8 @@
       MockTransportClientSocketFactory::MOCK_STALLED_CLIENT_SOCKET};
 
   client_socket_factory_.set_client_socket_types(case_types, 2);
-  client_socket_factory_.set_delay(base::TimeDelta::FromMilliseconds(
-      TransportConnectJob::kIPv6FallbackTimerInMs + 50));
+  client_socket_factory_.set_delay(
+      base::Milliseconds(TransportConnectJob::kIPv6FallbackTimerInMs + 50));
 
   // Resolve an AddressList with an IPv6 address first and then an IPv4 address.
   host_resolver_->rules()->AddIPLiteralRule(
@@ -769,8 +769,7 @@
   base::TimeTicks start(base::TimeTicks::Now());
   EXPECT_THAT(callback.WaitForResult(), IsOk());
   EXPECT_LT(base::TimeTicks::Now() - start,
-            base::TimeDelta::FromMilliseconds(
-                TransportConnectJob::kIPv6FallbackTimerInMs));
+            base::Milliseconds(TransportConnectJob::kIPv6FallbackTimerInMs));
   ASSERT_TRUE(handle.socket());
 
   IPEndPoint endpoint;
@@ -819,8 +818,8 @@
 TEST_F(WebSocketTransportClientSocketPoolTest, LastFailureWins) {
   client_socket_factory_.set_default_client_socket_type(
       MockTransportClientSocketFactory::MOCK_DELAYED_FAILING_CLIENT_SOCKET);
-  base::TimeDelta delay = base::TimeDelta::FromMilliseconds(
-      TransportConnectJob::kIPv6FallbackTimerInMs / 3);
+  base::TimeDelta delay =
+      base::Milliseconds(TransportConnectJob::kIPv6FallbackTimerInMs / 3);
   client_socket_factory_.set_delay(delay);
 
   // Resolve an AddressList with 4 IPv6 addresses and 2 IPv4 addresses.
@@ -861,8 +860,7 @@
 
   client_socket_factory_.set_default_client_socket_type(
       MockTransportClientSocketFactory::MOCK_DELAYED_FAILING_CLIENT_SOCKET);
-  client_socket_factory_.set_delay(base::TimeDelta::FromSeconds(1) +
-                                   connect_job_timeout / 6);
+  client_socket_factory_.set_delay(base::Seconds(1) + connect_job_timeout / 6);
 
   // Resolve an AddressList with 6 IPv6 addresses and 6 IPv4 addresses.
   host_resolver_->rules()->AddIPLiteralRule("*",
@@ -1053,8 +1051,8 @@
   }
   // Now we have |kMaxSockets| IPv6 sockets stalled in connect. No IPv4 sockets
   // are started yet.
-  RunLoopForTimePeriod(base::TimeDelta::FromMilliseconds(
-      TransportConnectJob::kIPv6FallbackTimerInMs));
+  RunLoopForTimePeriod(
+      base::Milliseconds(TransportConnectJob::kIPv6FallbackTimerInMs));
   // Now we have |kMaxSockets| IPv6 sockets and one IPv4 socket stalled in
   // connect, and |kMaxSockets - 1| IPv4 sockets waiting for the endpoint lock.
   pool_.FlushWithError(ERR_FAILED, "Very good reason");
diff --git a/net/socket/websocket_transport_connect_job.cc b/net/socket/websocket_transport_connect_job.cc
index 485d70a..0f10af6 100644
--- a/net/socket/websocket_transport_connect_job.cc
+++ b/net/socket/websocket_transport_connect_job.cc
@@ -249,8 +249,7 @@
           // owned by this object.
           fallback_timer_.Start(
               FROM_HERE,
-              base::TimeDelta::FromMilliseconds(
-                  TransportConnectJob::kIPv6FallbackTimerInMs),
+              base::Milliseconds(TransportConnectJob::kIPv6FallbackTimerInMs),
               base::BindOnce(&WebSocketTransportConnectJob::StartIPv4JobAsync,
                              base::Unretained(this)));
         }
diff --git a/net/spdy/bidirectional_stream_spdy_impl.cc b/net/spdy/bidirectional_stream_spdy_impl.cc
index 654d9b3..c649cda 100644
--- a/net/spdy/bidirectional_stream_spdy_impl.cc
+++ b/net/spdy/bidirectional_stream_spdy_impl.cc
@@ -363,7 +363,7 @@
   }
 
   more_read_data_pending_ = false;
-  timer_->Start(FROM_HERE, base::TimeDelta::FromMilliseconds(kBufferTimeMs),
+  timer_->Start(FROM_HERE, base::Milliseconds(kBufferTimeMs),
                 base::BindOnce(&BidirectionalStreamSpdyImpl::DoBufferedRead,
                                weak_factory_.GetWeakPtr()));
 }
diff --git a/net/spdy/spdy_http_stream.cc b/net/spdy/spdy_http_stream.cc
index 590f8308..5c1dc5ed 100644
--- a/net/spdy/spdy_http_stream.cc
+++ b/net/spdy/spdy_http_stream.cc
@@ -632,8 +632,8 @@
   // Handing small chunks of data to the caller creates measurable overhead.
   // Wait 1ms to allow handing off multiple chunks of data received within a
   // short time span at once.
-  buffered_read_timer_.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(1),
-                             this, &SpdyHttpStream::DoBufferedReadCallback);
+  buffered_read_timer_.Start(FROM_HERE, base::Milliseconds(1), this,
+                             &SpdyHttpStream::DoBufferedReadCallback);
 }
 
 void SpdyHttpStream::DoBufferedReadCallback() {
diff --git a/net/spdy/spdy_network_transaction_unittest.cc b/net/spdy/spdy_network_transaction_unittest.cc
index 8e04325..3a94d83 100644
--- a/net/spdy/spdy_network_transaction_unittest.cc
+++ b/net/spdy/spdy_network_transaction_unittest.cc
@@ -6623,9 +6623,8 @@
       ssl_provider->ssl_info.is_issued_by_known_root = true;
 
       session_deps->transport_security_state->AddExpectCT(
-          "mail.example.org",
-          base::Time::Now() + base::TimeDelta::FromDays(1) /* expiry */, true,
-          GURL(), request_.network_isolation_key);
+          "mail.example.org", base::Time::Now() + base::Days(1) /* expiry */,
+          true, GURL(), request_.network_isolation_key);
     }
 
     NormalSpdyTransactionHelper helper(request_, DEFAULT_PRIORITY, log_,
@@ -9863,7 +9862,7 @@
 #endif  // BUILDFLAG(ENABLE_WEBSOCKETS)
 
 TEST_F(SpdyNetworkTransactionTest, ZeroRTTDoesntConfirm) {
-  static const base::TimeDelta kDelay = base::TimeDelta::FromMilliseconds(10);
+  static const base::TimeDelta kDelay = base::Milliseconds(10);
   spdy::SpdySerializedFrame req(
       spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST));
   MockWrite writes[] = {CreateMockWrite(req, 0)};
@@ -10234,7 +10233,7 @@
 }
 
 TEST_F(SpdyNetworkTransactionTest, ZeroRTTSyncConfirmSyncWrite) {
-  static const base::TimeDelta kDelay = base::TimeDelta::FromMilliseconds(10);
+  static const base::TimeDelta kDelay = base::Milliseconds(10);
   spdy::SpdySerializedFrame req(spdy_util_.ConstructSpdyPost(
       kDefaultUrl, 1, kUploadDataSize, LOWEST, nullptr, 0));
   spdy::SpdySerializedFrame body(spdy_util_.ConstructSpdyDataFrame(1, true));
@@ -10309,7 +10308,7 @@
 }
 
 TEST_F(SpdyNetworkTransactionTest, ZeroRTTAsyncConfirmSyncWrite) {
-  static const base::TimeDelta kDelay = base::TimeDelta::FromMilliseconds(10);
+  static const base::TimeDelta kDelay = base::Milliseconds(10);
   spdy::SpdySerializedFrame req(spdy_util_.ConstructSpdyPost(
       kDefaultUrl, 1, kUploadDataSize, LOWEST, nullptr, 0));
   spdy::SpdySerializedFrame body(spdy_util_.ConstructSpdyDataFrame(1, true));
diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc
index e558aee..a308363 100644
--- a/net/spdy/spdy_session.cc
+++ b/net/spdy/spdy_session.cc
@@ -1011,8 +1011,8 @@
       enable_push_(IsPushEnabled(initial_settings)),
       support_websocket_(false),
       connection_at_risk_of_loss_time_(
-          base::TimeDelta::FromSeconds(kDefaultConnectionAtRiskOfLossSeconds)),
-      hung_interval_(base::TimeDelta::FromSeconds(kHungIntervalSeconds)),
+          base::Seconds(kDefaultConnectionAtRiskOfLossSeconds)),
+      hung_interval_(base::Seconds(kHungIntervalSeconds)),
       time_func_(time_func),
       network_quality_estimator_(network_quality_estimator) {
   net_log_.BeginEvent(NetLogEventType::HTTP2_SESSION, [&] {
@@ -2145,7 +2145,7 @@
       FROM_HERE,
       base::BindOnce(&SpdySession::CancelPushedStreamIfUnclaimed, GetWeakPtr(),
                      stream_id),
-      base::TimeDelta::FromSeconds(kPushedStreamLifetimeSeconds));
+      base::Seconds(kPushedStreamLifetimeSeconds));
 
   net::NetworkTrafficAnnotationTag traffic_annotation =
       net::DefineNetworkTrafficAnnotation("spdy_push_stream", R"(
@@ -2341,8 +2341,7 @@
 
   int bytes_read_without_yielding = 0;
   const base::TimeTicks yield_after_time =
-      time_func_() +
-      base::TimeDelta::FromMilliseconds(kYieldAfterDurationMilliseconds);
+      time_func_() + base::Milliseconds(kYieldAfterDurationMilliseconds);
 
   // Loop until the session is draining, the read becomes blocked, or
   // the read limit is exceeded.
diff --git a/net/spdy/spdy_session_unittest.cc b/net/spdy/spdy_session_unittest.cc
index 8a1113c..5501d8e2 100644
--- a/net/spdy/spdy_session_unittest.cc
+++ b/net/spdy/spdy_session_unittest.cc
@@ -89,8 +89,7 @@
 }
 
 base::TimeTicks SlowReads() {
-  g_time_delta +=
-      base::TimeDelta::FromMilliseconds(2 * kYieldAfterDurationMilliseconds);
+  g_time_delta += base::Milliseconds(2 * kYieldAfterDurationMilliseconds);
   return base::TimeTicks::Now() + g_time_delta;
 }
 
@@ -1141,7 +1140,7 @@
   base::TimeTicks before_ping_time = base::TimeTicks::Now();
 
   // Negative value means a preface ping will always be sent.
-  set_connection_at_risk_of_loss_time(base::TimeDelta::FromSeconds(-1));
+  set_connection_at_risk_of_loss_time(base::Seconds(-1));
 
   // Send a PING frame.  This posts CheckPingStatus() with delay.
   MaybeSendPrefacePing();
@@ -1254,7 +1253,7 @@
   spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
 
   // Shift time so that a ping will be sent out.
-  g_time_delta = base::TimeDelta::FromSeconds(11);
+  g_time_delta = base::Seconds(11);
 
   base::RunLoop().RunUntilIdle();
   session_->CloseSessionOnError(ERR_ABORTED, "Aborting");
@@ -1883,7 +1882,7 @@
   spdy_stream1->SetDelegate(&delegate);
 
   // Negative value means a preface ping will always be sent.
-  set_connection_at_risk_of_loss_time(base::TimeDelta::FromSeconds(-1));
+  set_connection_at_risk_of_loss_time(base::Seconds(-1));
 
   // Send a PING frame.  This posts CheckPingStatus() with delay.
   MaybeSendPrefacePing();
@@ -1897,7 +1896,7 @@
   EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_));
 
   // Run CheckPingStatus() and make it believe hung_interval has passed.
-  g_time_delta = base::TimeDelta::FromSeconds(15);
+  g_time_delta = base::Seconds(15);
   FastForwardUntilNoTasksRemain();
   base::RunLoop().RunUntilIdle();
 
@@ -1933,7 +1932,7 @@
   CreateSpdySession();
 
   // Negative value means a preface ping will always be sent.
-  set_connection_at_risk_of_loss_time(base::TimeDelta::FromSeconds(-1));
+  set_connection_at_risk_of_loss_time(base::Seconds(-1));
 
   base::WeakPtr<SpdyStream> spdy_stream1 =
       CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, session_, test_url_,
@@ -1961,7 +1960,7 @@
 
   // Fast forward mock time so that normally another ping would be sent out.
   // However, since CheckPingStatus() is still pending, no new ping is sent.
-  g_time_delta = base::TimeDelta::FromSeconds(15);
+  g_time_delta = base::Seconds(15);
   MaybeSendPrefacePing();
 
   EXPECT_FALSE(ping_in_flight());
@@ -2868,7 +2867,7 @@
 
   // Add Expect-CT data for all three hosts that passed the above checks, using
   // different NetworkIsolationKeys.
-  const base::Time expiry = base::Time::Now() + base::TimeDelta::FromDays(1);
+  const base::Time expiry = base::Time::Now() + base::Days(1);
   session_deps_.transport_security_state->AddExpectCT(
       "www.example.org", expiry, true, GURL(), NetworkIsolationKey());
   session_deps_.transport_security_state->AddExpectCT(
@@ -6353,8 +6352,7 @@
   session_deps_.transport_security_state =
       std::make_unique<TransportSecurityState>();
   session_deps_.transport_security_state->AddExpectCT(
-      GURL(origin).host(),
-      base::Time::Now() + base::TimeDelta::FromDays(1) /* expiry */, true,
+      GURL(origin).host(), base::Time::Now() + base::Days(1) /* expiry */, true,
       GURL(), key_.network_isolation_key());
 
   spdy::SpdyAltSvcIR altsvc_ir(/* stream_id = */ 0);
@@ -6856,7 +6854,7 @@
                                    network_isolation_key));
 
   const base::Time current_time(base::Time::Now());
-  const base::Time expiry = current_time + base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = current_time + base::Seconds(1000);
   ssl_info.ct_policy_compliance =
       ct::CTPolicyCompliance::CT_POLICY_NOT_ENOUGH_SCTS;
 
diff --git a/net/spdy/spdy_stream_unittest.cc b/net/spdy/spdy_stream_unittest.cc
index 402e220..1685e97 100644
--- a/net/spdy/spdy_stream_unittest.cc
+++ b/net/spdy/spdy_stream_unittest.cc
@@ -1128,17 +1128,17 @@
       spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
   EXPECT_EQ(ERR_IO_PENDING, stream()->SendRequestHeaders(std::move(headers),
                                                          NO_MORE_DATA_TO_SEND));
-  AdvanceClock(base::TimeDelta::FromSeconds(1));
+  AdvanceClock(base::Seconds(1));
 
   // The receive headers start time should be captured at this time.
   base::TimeTicks expected_receive_headers_start_time = base::TimeTicks::Now();
 
   // Read the first header fragment.
   RunUntilNextPause();
-  AdvanceClock(base::TimeDelta::FromSeconds(1));
+  AdvanceClock(base::Seconds(1));
   // Read the second header fragment.
   RunUntilNextPause();
-  AdvanceClock(base::TimeDelta::FromSeconds(1));
+  AdvanceClock(base::Seconds(1));
   EXPECT_EQ("200", delegate().GetResponseHeaderValue(spdy::kHttp2StatusHeader));
 
   // Read the response body.
@@ -1198,17 +1198,17 @@
       spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
   EXPECT_EQ(ERR_IO_PENDING, stream()->SendRequestHeaders(std::move(headers),
                                                          NO_MORE_DATA_TO_SEND));
-  AdvanceClock(base::TimeDelta::FromSeconds(1));
+  AdvanceClock(base::Seconds(1));
 
   // The receive headers start time should be captured at this time.
   base::TimeTicks expected_receive_headers_start_time = base::TimeTicks::Now();
 
   // Read the first header fragment of the informational response.
   RunUntilNextPause();
-  AdvanceClock(base::TimeDelta::FromSeconds(1));
+  AdvanceClock(base::Seconds(1));
   // Read the second header fragment of the informational response.
   RunUntilNextPause();
-  AdvanceClock(base::TimeDelta::FromSeconds(1));
+  AdvanceClock(base::Seconds(1));
   // We don't check the status code of the informational headers here because
   // SpdyStream doesn't propagate it to the delegate.
 
@@ -1219,7 +1219,7 @@
 
   // Read the non-informational response headers.
   RunUntilNextPause();
-  AdvanceClock(base::TimeDelta::FromSeconds(1));
+  AdvanceClock(base::Seconds(1));
   EXPECT_EQ("200", delegate().GetResponseHeaderValue(spdy::kHttp2StatusHeader));
 
   // Read the response body.
@@ -1306,7 +1306,7 @@
       spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
   EXPECT_EQ(ERR_IO_PENDING, stream()->SendRequestHeaders(std::move(headers),
                                                          NO_MORE_DATA_TO_SEND));
-  AdvanceClock(base::TimeDelta::FromSeconds(1));
+  AdvanceClock(base::Seconds(1));
 
   // The receive headers start time should be captured at this time.
   base::TimeTicks expected_receive_headers_start_time = base::TimeTicks::Now();
@@ -1314,9 +1314,9 @@
   // Read the header fragments of the informational responses.
   for (int i = 0; i < kNumberOfInformationalResponses; ++i) {
     RunUntilNextPause();
-    AdvanceClock(base::TimeDelta::FromSeconds(1));
+    AdvanceClock(base::Seconds(1));
     RunUntilNextPause();
-    AdvanceClock(base::TimeDelta::FromSeconds(1));
+    AdvanceClock(base::Seconds(1));
   }
 
   // Check the callback was called twice with 103 status code.
@@ -1356,7 +1356,7 @@
 
   // Read the non-informational response headers.
   RunUntilNextPause();
-  AdvanceClock(base::TimeDelta::FromSeconds(1));
+  AdvanceClock(base::Seconds(1));
   EXPECT_EQ("200", delegate().GetResponseHeaderValue(spdy::kHttp2StatusHeader));
 
   // Read the response body.
diff --git a/net/ssl/client_cert_identity_unittest.cc b/net/ssl/client_cert_identity_unittest.cc
index 443d296..8c2fe0d 100644
--- a/net/ssl/client_cert_identity_unittest.cc
+++ b/net/ssl/client_cert_identity_unittest.cc
@@ -36,8 +36,7 @@
 
   ASSERT_TRUE(x509_util::CreateSelfSignedCert(
       key->key(), x509_util::DIGEST_SHA256, "CN=not yet valid", 2,
-      now + base::TimeDelta::FromDays(10), now + base::TimeDelta::FromDays(15),
-      {}, &der_cert));
+      now + base::Days(10), now + base::Days(15), {}, &der_cert));
   cert = X509Certificate::CreateFromBytes(
       base::as_bytes(base::make_span(der_cert)));
   ASSERT_TRUE(cert);
@@ -45,8 +44,7 @@
 
   ASSERT_TRUE(x509_util::CreateSelfSignedCert(
       key->key(), x509_util::DIGEST_SHA256, "CN=older cert", 3,
-      now - base::TimeDelta::FromDays(5), now + base::TimeDelta::FromDays(5),
-      {}, &der_cert));
+      now - base::Days(5), now + base::Days(5), {}, &der_cert));
   cert = X509Certificate::CreateFromBytes(
       base::as_bytes(base::make_span(der_cert)));
   ASSERT_TRUE(cert);
@@ -54,8 +52,7 @@
 
   ASSERT_TRUE(x509_util::CreateSelfSignedCert(
       key->key(), x509_util::DIGEST_SHA256, "CN=newer cert", 2,
-      now - base::TimeDelta::FromDays(3), now + base::TimeDelta::FromDays(5),
-      {}, &der_cert));
+      now - base::Days(3), now + base::Days(5), {}, &der_cert));
   cert = X509Certificate::CreateFromBytes(
       base::as_bytes(base::make_span(der_cert)));
   ASSERT_TRUE(cert);
diff --git a/net/ssl/ssl_client_session_cache_unittest.cc b/net/ssl/ssl_client_session_cache_unittest.cc
index e47ce609..af745c6b 100644
--- a/net/ssl/ssl_client_session_cache_unittest.cc
+++ b/net/ssl/ssl_client_session_cache_unittest.cc
@@ -272,7 +272,7 @@
 TEST_F(SSLClientSessionCacheTest, Expiration) {
   const size_t kNumEntries = 20;
   const size_t kExpirationCheckCount = 10;
-  const base::TimeDelta kTimeout = base::TimeDelta::FromSeconds(1000);
+  const base::TimeDelta kTimeout = base::Seconds(1000);
 
   SSLClientSessionCache::Config config;
   config.expiration_check_count = kExpirationCheckCount;
@@ -321,7 +321,7 @@
   // kExpirationCheckCount is set to a suitably large number so the automated
   // pruning never triggers.
   const size_t kExpirationCheckCount = 1000;
-  const base::TimeDelta kTimeout = base::TimeDelta::FromSeconds(1000);
+  const base::TimeDelta kTimeout = base::Seconds(1000);
 
   SSLClientSessionCache::Config config;
   config.expiration_check_count = kExpirationCheckCount;
@@ -359,7 +359,7 @@
   EXPECT_EQ(1u, cache.size());
 
   // Sessions also are treated as expired if the clock rewinds.
-  clock->Advance(base::TimeDelta::FromSeconds(-2));
+  clock->Advance(base::Seconds(-2));
   EXPECT_EQ(nullptr, cache.Lookup(MakeTestKey("key")).get());
   EXPECT_EQ(0u, cache.size());
 }
@@ -371,7 +371,7 @@
   // kExpirationCheckCount is set to a suitably large number so the automated
   // pruning never triggers.
   const size_t kExpirationCheckCount = 1000;
-  const base::TimeDelta kTimeout = base::TimeDelta::FromSeconds(1000);
+  const base::TimeDelta kTimeout = base::Seconds(1000);
 
   SSLClientSessionCache::Config config;
   config.expiration_check_count = kExpirationCheckCount;
diff --git a/net/test/ct_test_util.cc b/net/test/ct_test_util.cc
index c8c68e6..a9fffe8 100644
--- a/net/test/ct_test_util.cc
+++ b/net/test/ct_test_util.cc
@@ -217,8 +217,8 @@
   sct->log_id = HexDecode(kTestKeyId);
   // Time the log issued a SCT for this certificate, which is
   // Fri Apr  5 10:04:16.089 2013
-  sct->timestamp = base::Time::UnixEpoch() +
-      base::TimeDelta::FromMilliseconds(INT64_C(1365181456089));
+  sct->timestamp =
+      base::Time::UnixEpoch() + base::Milliseconds(INT64_C(1365181456089));
   sct->extensions.clear();
 
   sct->signature.hash_algorithm = ct::DigitallySigned::HASH_ALGO_SHA256;
@@ -234,8 +234,8 @@
   sct->log_id = HexDecode(kTestKeyId);
   // Time the log issued a SCT for this Precertificate, which is
   // Fri Apr  5 10:04:16.275 2013
-  sct->timestamp = base::Time::UnixEpoch() +
-    base::TimeDelta::FromMilliseconds(INT64_C(1365181456275));
+  sct->timestamp =
+      base::Time::UnixEpoch() + base::Milliseconds(INT64_C(1365181456275));
   sct->extensions.clear();
 
   sct->signature.hash_algorithm = ct::DigitallySigned::HASH_ALGO_SHA256;
@@ -266,8 +266,7 @@
 // A sample, valid STH
 bool GetSampleSignedTreeHead(SignedTreeHead* sth) {
   sth->version = SignedTreeHead::V1;
-  sth->timestamp = base::Time::UnixEpoch() +
-                   base::TimeDelta::FromMilliseconds(kTestTimestamp);
+  sth->timestamp = base::Time::UnixEpoch() + base::Milliseconds(kTestTimestamp);
   sth->tree_size = kSampleSTHTreeSize;
   std::string sha256_root_hash = GetSampleSTHSHA256RootHash();
   memcpy(sth->sha256_root_hash, sha256_root_hash.c_str(), kSthRootHashLength);
@@ -278,8 +277,8 @@
 
 bool GetSampleEmptySignedTreeHead(SignedTreeHead* sth) {
   sth->version = SignedTreeHead::V1;
-  sth->timestamp = base::Time::UnixEpoch() +
-                   base::TimeDelta::FromMilliseconds(INT64_C(1450443594920));
+  sth->timestamp =
+      base::Time::UnixEpoch() + base::Milliseconds(INT64_C(1450443594920));
   sth->tree_size = 0;
   std::string empty_root_hash = HexDecode(
       "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855");
@@ -296,8 +295,8 @@
 
 bool GetBadEmptySignedTreeHead(SignedTreeHead* sth) {
   sth->version = SignedTreeHead::V1;
-  sth->timestamp = base::Time::UnixEpoch() +
-                   base::TimeDelta::FromMilliseconds(INT64_C(1450870952897));
+  sth->timestamp =
+      base::Time::UnixEpoch() + base::Milliseconds(INT64_C(1450870952897));
   sth->tree_size = 0;
   memset(sth->sha256_root_hash, 'f', kSthRootHashLength);
   sth->log_id = GetTestPublicKeyId();
diff --git a/net/test/embedded_test_server/default_handlers.cc b/net/test/embedded_test_server/default_handlers.cc
index 2e85db0b..8cca1a5 100644
--- a/net/test/embedded_test_server/default_handlers.cc
+++ b/net/test/embedded_test_server/default_handlers.cc
@@ -711,8 +711,8 @@
   if (request_url.has_query())
     delay = std::atof(request_url.query().c_str());
 
-  auto http_response = std::make_unique<DelayedHttpResponse>(
-      base::TimeDelta::FromSecondsD(delay));
+  auto http_response =
+      std::make_unique<DelayedHttpResponse>(base::Seconds(delay));
   http_response->set_content_type("text/plain");
   http_response->set_content(base::StringPrintf("waited %.1f seconds", delay));
   return http_response;
@@ -913,9 +913,9 @@
     CHECK(base::StringToInt(query.GetValue(), &value));
     CHECK_GE(value, 0);
     if (query.GetKey() == "waitBeforeHeaders") {
-      delay_before_headers = base::TimeDelta::FromMilliseconds(value);
+      delay_before_headers = base::Milliseconds(value);
     } else if (query.GetKey() == "waitBetweenChunks") {
-      delay_between_chunks = base::TimeDelta::FromMilliseconds(value);
+      delay_between_chunks = base::Milliseconds(value);
     } else if (query.GetKey() == "chunkSize") {
       // A 0-size chunk indicates completion.
       CHECK_LT(0, value);
diff --git a/net/test/embedded_test_server/embedded_test_server.cc b/net/test/embedded_test_server/embedded_test_server.cc
index 18bdb99..bfd9e6b 100644
--- a/net/test/embedded_test_server/embedded_test_server.cc
+++ b/net/test/embedded_test_server/embedded_test_server.cc
@@ -164,13 +164,13 @@
   using OCSPProduced = EmbeddedTestServer::OCSPConfig::Produced;
   switch (config.produced) {
     case OCSPProduced::kValid:
-      produced_at = now - base::TimeDelta::FromDays(1);
+      produced_at = now - base::Days(1);
       break;
     case OCSPProduced::kBeforeCert:
-      produced_at = target_not_before - base::TimeDelta::FromDays(1);
+      produced_at = target_not_before - base::Days(1);
       break;
     case OCSPProduced::kAfterCert:
-      produced_at = target_not_after + base::TimeDelta::FromDays(1);
+      produced_at = target_not_after + base::Days(1);
       break;
   }
 
@@ -184,34 +184,29 @@
     }
     response.cert_status = config_response.cert_status;
     // |revocation_time| is ignored if |cert_status| is not REVOKED.
-    response.revocation_time = now - base::TimeDelta::FromDays(1000);
+    response.revocation_time = now - base::Days(1000);
 
     using OCSPDate = EmbeddedTestServer::OCSPConfig::SingleResponse::Date;
     switch (config_response.ocsp_date) {
       case OCSPDate::kValid:
-        response.this_update = now - base::TimeDelta::FromDays(1);
-        response.next_update =
-            response.this_update + base::TimeDelta::FromDays(7);
+        response.this_update = now - base::Days(1);
+        response.next_update = response.this_update + base::Days(7);
         break;
       case OCSPDate::kOld:
-        response.this_update = now - base::TimeDelta::FromDays(8);
-        response.next_update =
-            response.this_update + base::TimeDelta::FromDays(7);
+        response.this_update = now - base::Days(8);
+        response.next_update = response.this_update + base::Days(7);
         break;
       case OCSPDate::kEarly:
-        response.this_update = now + base::TimeDelta::FromDays(1);
-        response.next_update =
-            response.this_update + base::TimeDelta::FromDays(7);
+        response.this_update = now + base::Days(1);
+        response.next_update = response.this_update + base::Days(7);
         break;
       case OCSPDate::kLong:
-        response.this_update = now - base::TimeDelta::FromDays(365);
-        response.next_update =
-            response.this_update + base::TimeDelta::FromDays(366);
+        response.this_update = now - base::Days(365);
+        response.next_update = response.this_update + base::Days(366);
         break;
       case OCSPDate::kLonger:
-        response.this_update = now - base::TimeDelta::FromDays(367);
-        response.next_update =
-            response.this_update + base::TimeDelta::FromDays(368);
+        response.this_update = now - base::Days(367);
+        response.next_update = response.this_update + base::Days(368);
         break;
     }
 
diff --git a/net/test/embedded_test_server/embedded_test_server_unittest.cc b/net/test/embedded_test_server/embedded_test_server_unittest.cc
index 465ef26..75c0b9f9 100644
--- a/net/test/embedded_test_server/embedded_test_server_unittest.cc
+++ b/net/test/embedded_test_server/embedded_test_server_unittest.cc
@@ -440,7 +440,7 @@
   void OnResponseStarted(URLRequest* request, int net_error) override {
     TestDelegate::OnResponseStarted(request, net_error);
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-        FROM_HERE, run_loop_.QuitClosure(), base::TimeDelta::FromSeconds(1));
+        FROM_HERE, run_loop_.QuitClosure(), base::Seconds(1));
   }
 
   void WaitUntilDone() { run_loop_.Run(); }
diff --git a/net/test/revocation_builder.cc b/net/test/revocation_builder.cc
index 290131e..057f366 100644
--- a/net/test/revocation_builder.cc
+++ b/net/test/revocation_builder.cc
@@ -451,10 +451,10 @@
       !CBB_add_asn1_uint64(&tbs_cert_list, 1 /* V2 */) ||
       !CBBAddBytes(&tbs_cert_list, signature_algorithm) ||
       !CBBAddBytes(&tbs_cert_list, crl_issuer_subject) ||
-      !x509_util::CBBAddTime(
-          &tbs_cert_list, base::Time::Now() - base::TimeDelta::FromDays(1)) ||
-      !x509_util::CBBAddTime(
-          &tbs_cert_list, base::Time::Now() + base::TimeDelta::FromDays(6))) {
+      !x509_util::CBBAddTime(&tbs_cert_list,
+                             base::Time::Now() - base::Days(1)) ||
+      !x509_util::CBBAddTime(&tbs_cert_list,
+                             base::Time::Now() + base::Days(6))) {
     ADD_FAILURE();
     return std::string();
   }
@@ -469,9 +469,8 @@
       if (!CBB_add_asn1(&revoked_serials_cbb, &revoked_serial_cbb,
                         CBS_ASN1_SEQUENCE) ||
           !CBB_add_asn1_uint64(&revoked_serial_cbb, revoked_serial) ||
-          !x509_util::CBBAddTime(
-              &revoked_serial_cbb,
-              base::Time::Now() - base::TimeDelta::FromDays(1)) ||
+          !x509_util::CBBAddTime(&revoked_serial_cbb,
+                                 base::Time::Now() - base::Days(1)) ||
           !CBB_flush(&revoked_serials_cbb)) {
         ADD_FAILURE();
         return std::string();
diff --git a/net/test/run_all_unittests.cc b/net/test/run_all_unittests.cc
index e8c642c..53f8338 100644
--- a/net/test/run_all_unittests.cc
+++ b/net/test/run_all_unittests.cc
@@ -21,7 +21,7 @@
   // days old. Moreover, operating on the assumption that tests are run against
   // recently compiled builds, this also serves as a sanity check for the
   // system clock, which should be close to the build date.
-  base::TimeDelta kMaxAge = base::TimeDelta::FromDays(70);
+  base::TimeDelta kMaxAge = base::Days(70);
 
   base::Time build_time = base::GetBuildTime();
   base::Time now = base::Time::Now();
diff --git a/net/tools/stress_cache/stress_cache.cc b/net/tools/stress_cache/stress_cache.cc
index 3f9800b..b86ea87 100644
--- a/net/tools/stress_cache/stress_cache.cc
+++ b/net/tools/stress_cache/stress_cache.cc
@@ -363,7 +363,7 @@
 }
 
 void RunSoon(scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
-  const base::TimeDelta kTaskDelay = base::TimeDelta::FromSeconds(10);
+  const base::TimeDelta kTaskDelay = base::Seconds(10);
   task_runner->PostDelayedTask(FROM_HERE, base::BindOnce(&CrashCallback),
                                kTaskDelay);
 }
@@ -416,7 +416,7 @@
 #endif
 
   // Some time for the memory manager to flush stuff.
-  base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(3));
+  base::PlatformThread::Sleep(base::Seconds(3));
   base::SingleThreadTaskExecutor io_task_executor(base::MessagePumpType::IO);
 
   char* end;
diff --git a/net/url_request/url_fetcher_core.cc b/net/url_request/url_fetcher_core.cc
index 112fa7cf..ff48be1 100644
--- a/net/url_request/url_fetcher_core.cc
+++ b/net/url_request/url_fetcher_core.cc
@@ -621,9 +621,7 @@
       //  layer and avoid using timer here.
       upload_progress_checker_timer_ = std::make_unique<base::RepeatingTimer>();
       upload_progress_checker_timer_->Start(
-          FROM_HERE,
-          base::TimeDelta::FromMilliseconds(kUploadProgressTimerInterval),
-          this,
+          FROM_HERE, base::Milliseconds(kUploadProgressTimerInterval), this,
           &URLFetcherCore::InformDelegateUploadProgress);
       break;
     }
@@ -682,7 +680,7 @@
       if (delay != 0) {
         network_task_runner_->PostDelayedTask(
             FROM_HERE, base::BindOnce(&URLFetcherCore::StartURLRequest, this),
-            base::TimeDelta::FromMilliseconds(delay));
+            base::Milliseconds(delay));
         return;
       }
     }
diff --git a/net/url_request/url_fetcher_impl_unittest.cc b/net/url_request/url_fetcher_impl_unittest.cc
index 90ab927..70d97c99 100644
--- a/net/url_request/url_fetcher_impl_unittest.cc
+++ b/net/url_request/url_fetcher_impl_unittest.cc
@@ -1222,7 +1222,7 @@
 
   // 20 requests were sent. Due to throttling, they should have collectively
   // taken over 1 second.
-  EXPECT_GE(Time::Now() - start_time, base::TimeDelta::FromSeconds(1));
+  EXPECT_GE(Time::Now() - start_time, base::Seconds(1));
 }
 
 // If throttling kicks in for a chunked upload, there should be no crash.
@@ -1290,7 +1290,7 @@
   // The request should have been retried 11 times (12 times including the first
   // attempt).  Due to throttling, they should have collectively taken over 1
   // second.
-  EXPECT_GE(Time::Now() - start_time, base::TimeDelta::FromSeconds(1));
+  EXPECT_GE(Time::Now() - start_time, base::Seconds(1));
 }
 
 // Tests overload protection, when responses passed through.
diff --git a/net/url_request/url_request_http_job_unittest.cc b/net/url_request/url_request_http_job_unittest.cc
index 3a092a1..900477f 100644
--- a/net/url_request/url_request_http_job_unittest.cc
+++ b/net/url_request/url_request_http_job_unittest.cc
@@ -1242,8 +1242,7 @@
 TEST_F(URLRequestHttpJobTest, HSTSInternalRedirectTest) {
   // Setup HSTS state.
   context_.transport_security_state()->AddHSTS(
-      "upgrade.test", base::Time::Now() + base::TimeDelta::FromSeconds(10),
-      true);
+      "upgrade.test", base::Time::Now() + base::Seconds(10), true);
   ASSERT_TRUE(
       context_.transport_security_state()->ShouldUpgradeToSSL("upgrade.test"));
   ASSERT_FALSE(context_.transport_security_state()->ShouldUpgradeToSSL(
@@ -1309,7 +1308,7 @@
 
   TestURLRequestContext context;
   context.transport_security_state()->AddHSTS(
-      "127.0.0.1", base::Time::Now() + base::TimeDelta::FromSeconds(10), true);
+      "127.0.0.1", base::Time::Now() + base::Seconds(10), true);
   ASSERT_TRUE(
       context.transport_security_state()->ShouldUpgradeToSSL("127.0.0.1"));
 
diff --git a/net/url_request/url_request_quic_unittest.cc b/net/url_request/url_request_quic_unittest.cc
index 906bdff1..9589b8a 100644
--- a/net/url_request/url_request_quic_unittest.cc
+++ b/net/url_request/url_request_quic_unittest.cc
@@ -482,8 +482,8 @@
   GURL report_uri("https://report.test/");
   IsolationInfo isolation_info = IsolationInfo::CreateTransient();
   transport_security_state()->AddExpectCT(
-      kTestServerHost, base::Time::Now() + base::TimeDelta::FromDays(1),
-      true /* enforce */, report_uri, isolation_info.network_isolation_key());
+      kTestServerHost, base::Time::Now() + base::Days(1), true /* enforce */,
+      report_uri, isolation_info.network_isolation_key());
 
   base::RunLoop run_loop;
   TestDelegate delegate;
diff --git a/net/url_request/url_request_throttler_entry.cc b/net/url_request/url_request_throttler_entry.cc
index c50ed00..ea55370 100644
--- a/net/url_request/url_request_throttler_entry.cc
+++ b/net/url_request/url_request_throttler_entry.cc
@@ -65,8 +65,7 @@
 URLRequestThrottlerEntry::URLRequestThrottlerEntry(
     URLRequestThrottlerManager* manager,
     const std::string& url_id)
-    : sliding_window_period_(
-          base::TimeDelta::FromMilliseconds(kDefaultSlidingWindowPeriodMs)),
+    : sliding_window_period_(base::Milliseconds(kDefaultSlidingWindowPeriodMs)),
       max_send_threshold_(kDefaultMaxSendThreshold),
       is_backoff_disabled_(false),
       backoff_entry_(&backoff_policy_),
@@ -88,8 +87,7 @@
     double multiply_factor,
     double jitter_factor,
     int maximum_backoff_ms)
-    : sliding_window_period_(
-          base::TimeDelta::FromMilliseconds(sliding_window_period_ms)),
+    : sliding_window_period_(base::Milliseconds(sliding_window_period_ms)),
       max_send_threshold_(max_send_threshold),
       is_backoff_disabled_(false),
       backoff_entry_(&backoff_policy_),
diff --git a/net/url_request/url_request_throttler_simulation_unittest.cc b/net/url_request/url_request_throttler_simulation_unittest.cc
index 97b392e..b5170e2 100644
--- a/net/url_request/url_request_throttler_simulation_unittest.cc
+++ b/net/url_request/url_request_throttler_simulation_unittest.cc
@@ -660,10 +660,9 @@
     Stats stats;
 
     void PrintTrialDescription() {
-      const double duration_minutes =
-          duration / base::TimeDelta::FromMinutes(1);
+      const double duration_minutes = duration / base::Minutes(1);
       const double interval_minutes =
-          average_client_interval / base::TimeDelta::FromMinutes(1);
+          average_client_interval / base::Minutes(1);
       VerboseOut("Trial with %.2f min downtime, avg. interval %.2f min.\n",
                  duration_minutes, interval_minutes);
     }
diff --git a/net/url_request/url_request_unittest.cc b/net/url_request/url_request_unittest.cc
index 5fb5d1f..00d1b29 100644
--- a/net/url_request/url_request_unittest.cc
+++ b/net/url_request/url_request_unittest.cc
@@ -1049,26 +1049,26 @@
   load_timing.socket_log_id = 1;
 
   if (used_proxy) {
-    load_timing.proxy_resolve_start = now + base::TimeDelta::FromDays(1);
-    load_timing.proxy_resolve_end = now + base::TimeDelta::FromDays(2);
+    load_timing.proxy_resolve_start = now + base::Days(1);
+    load_timing.proxy_resolve_end = now + base::Days(2);
   }
 
   LoadTimingInfo::ConnectTiming& connect_timing = load_timing.connect_timing;
   if (connect_time_flags & CONNECT_TIMING_HAS_DNS_TIMES) {
-    connect_timing.dns_start = now + base::TimeDelta::FromDays(3);
-    connect_timing.dns_end = now + base::TimeDelta::FromDays(4);
+    connect_timing.dns_start = now + base::Days(3);
+    connect_timing.dns_end = now + base::Days(4);
   }
-  connect_timing.connect_start = now + base::TimeDelta::FromDays(5);
+  connect_timing.connect_start = now + base::Days(5);
   if (connect_time_flags & CONNECT_TIMING_HAS_SSL_TIMES) {
-    connect_timing.ssl_start = now + base::TimeDelta::FromDays(6);
-    connect_timing.ssl_end = now + base::TimeDelta::FromDays(7);
+    connect_timing.ssl_start = now + base::Days(6);
+    connect_timing.ssl_end = now + base::Days(7);
   }
-  connect_timing.connect_end = now + base::TimeDelta::FromDays(8);
+  connect_timing.connect_end = now + base::Days(8);
 
-  load_timing.send_start = now + base::TimeDelta::FromDays(9);
-  load_timing.send_end = now + base::TimeDelta::FromDays(10);
-  load_timing.receive_headers_start = now + base::TimeDelta::FromDays(11);
-  load_timing.receive_headers_end = now + base::TimeDelta::FromDays(12);
+  load_timing.send_start = now + base::Days(9);
+  load_timing.send_end = now + base::Days(10);
+  load_timing.receive_headers_start = now + base::Days(11);
+  load_timing.receive_headers_end = now + base::Days(12);
   return load_timing;
 }
 
@@ -1080,14 +1080,14 @@
   load_timing.socket_reused = true;
 
   if (used_proxy) {
-    load_timing.proxy_resolve_start = now + base::TimeDelta::FromDays(1);
-    load_timing.proxy_resolve_end = now + base::TimeDelta::FromDays(2);
+    load_timing.proxy_resolve_start = now + base::Days(1);
+    load_timing.proxy_resolve_end = now + base::Days(2);
   }
 
-  load_timing.send_start = now + base::TimeDelta::FromDays(9);
-  load_timing.send_end = now + base::TimeDelta::FromDays(10);
-  load_timing.receive_headers_start = now + base::TimeDelta::FromDays(11);
-  load_timing.receive_headers_end = now + base::TimeDelta::FromDays(12);
+  load_timing.send_start = now + base::Days(9);
+  load_timing.send_end = now + base::Days(10);
+  load_timing.receive_headers_start = now + base::Days(11);
+  load_timing.receive_headers_end = now + base::Days(12);
   return load_timing;
 }
 
@@ -1194,14 +1194,12 @@
   base::TimeTicks now = base::TimeTicks::Now();
   LoadTimingInfo job_load_timing =
       NormalLoadTimingInfo(now, CONNECT_TIMING_HAS_DNS_TIMES, true);
-  job_load_timing.proxy_resolve_start = now - base::TimeDelta::FromDays(6);
-  job_load_timing.proxy_resolve_end = now - base::TimeDelta::FromDays(5);
-  job_load_timing.connect_timing.dns_start = now - base::TimeDelta::FromDays(4);
-  job_load_timing.connect_timing.dns_end = now - base::TimeDelta::FromDays(3);
-  job_load_timing.connect_timing.connect_start =
-      now - base::TimeDelta::FromDays(2);
-  job_load_timing.connect_timing.connect_end =
-      now - base::TimeDelta::FromDays(1);
+  job_load_timing.proxy_resolve_start = now - base::Days(6);
+  job_load_timing.proxy_resolve_end = now - base::Days(5);
+  job_load_timing.connect_timing.dns_start = now - base::Days(4);
+  job_load_timing.connect_timing.dns_end = now - base::Days(3);
+  job_load_timing.connect_timing.connect_start = now - base::Days(2);
+  job_load_timing.connect_timing.connect_end = now - base::Days(1);
 
   LoadTimingInfo load_timing_result = RunURLRequestInterceptorLoadTimingTest(
       job_load_timing, default_context(), interceptor());
@@ -1231,8 +1229,8 @@
        InterceptLoadTimingEarlyProxyResolutionReused) {
   base::TimeTicks now = base::TimeTicks::Now();
   LoadTimingInfo job_load_timing = NormalLoadTimingInfoReused(now, true);
-  job_load_timing.proxy_resolve_start = now - base::TimeDelta::FromDays(4);
-  job_load_timing.proxy_resolve_end = now - base::TimeDelta::FromDays(3);
+  job_load_timing.proxy_resolve_start = now - base::Days(4);
+  job_load_timing.proxy_resolve_end = now - base::Days(3);
 
   LoadTimingInfo load_timing_result = RunURLRequestInterceptorLoadTimingTest(
       job_load_timing, default_context(), interceptor());
@@ -1256,12 +1254,10 @@
   base::TimeTicks now = base::TimeTicks::Now();
   LoadTimingInfo job_load_timing =
       NormalLoadTimingInfo(now, CONNECT_TIMING_HAS_SSL_TIMES, false);
-  job_load_timing.connect_timing.connect_start =
-      now - base::TimeDelta::FromDays(1);
-  job_load_timing.connect_timing.ssl_start = now - base::TimeDelta::FromDays(2);
-  job_load_timing.connect_timing.ssl_end = now - base::TimeDelta::FromDays(3);
-  job_load_timing.connect_timing.connect_end =
-      now - base::TimeDelta::FromDays(4);
+  job_load_timing.connect_timing.connect_start = now - base::Days(1);
+  job_load_timing.connect_timing.ssl_start = now - base::Days(2);
+  job_load_timing.connect_timing.ssl_end = now - base::Days(3);
+  job_load_timing.connect_timing.connect_end = now - base::Days(4);
 
   LoadTimingInfo load_timing_result = RunURLRequestInterceptorLoadTimingTest(
       job_load_timing, default_context(), interceptor());
@@ -1290,10 +1286,8 @@
   base::TimeTicks now = base::TimeTicks::Now();
   LoadTimingInfo job_load_timing =
       NormalLoadTimingInfo(now, CONNECT_TIMING_HAS_CONNECT_TIMES_ONLY, true);
-  job_load_timing.connect_timing.connect_start =
-      now - base::TimeDelta::FromDays(1);
-  job_load_timing.connect_timing.connect_end =
-      now - base::TimeDelta::FromDays(2);
+  job_load_timing.connect_timing.connect_start = now - base::Days(1);
+  job_load_timing.connect_timing.connect_end = now - base::Days(2);
 
   LoadTimingInfo load_timing_result = RunURLRequestInterceptorLoadTimingTest(
       job_load_timing, default_context(), interceptor());
@@ -9759,7 +9753,7 @@
 
   // Force https for www.somewhere.com.
   TransportSecurityState transport_security_state;
-  base::Time expiry = base::Time::Now() + base::TimeDelta::FromDays(1000);
+  base::Time expiry = base::Time::Now() + base::Days(1000);
   bool include_subdomains = false;
   transport_security_state.AddHSTS("www.somewhere.com", expiry,
                                    include_subdomains);
@@ -9812,7 +9806,7 @@
   MockHostResolver host_resolver;
 
   TransportSecurityState transport_security_state;
-  base::Time expiry = base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time expiry = base::Time::Now() + base::Days(1);
   bool include_subdomains = false;
   transport_security_state.AddHSTS("example.net", expiry, include_subdomains);
 
diff --git a/net/websockets/websocket_channel.cc b/net/websockets/websocket_channel.cc
index 5107a5a..d5f1e8a 100644
--- a/net/websockets/websocket_channel.cc
+++ b/net/websockets/websocket_channel.cc
@@ -234,9 +234,9 @@
     : event_interface_(std::move(event_interface)),
       url_request_context_(url_request_context),
       closing_handshake_timeout_(
-          base::TimeDelta::FromSeconds(kClosingHandshakeTimeoutSeconds)),
-      underlying_connection_close_timeout_(base::TimeDelta::FromSeconds(
-          kUnderlyingConnectionCloseTimeoutSeconds)),
+          base::Seconds(kClosingHandshakeTimeoutSeconds)),
+      underlying_connection_close_timeout_(
+          base::Seconds(kUnderlyingConnectionCloseTimeoutSeconds)),
       has_received_close_frame_(false),
       received_close_code_(0),
       state_(FRESHLY_CONSTRUCTED),
diff --git a/net/websockets/websocket_stream.cc b/net/websockets/websocket_stream.cc
index 4f02135b..6c9e3c3 100644
--- a/net/websockets/websocket_stream.cc
+++ b/net/websockets/websocket_stream.cc
@@ -161,8 +161,7 @@
 
   void Start(std::unique_ptr<base::OneShotTimer> timer) {
     DCHECK(timer);
-    base::TimeDelta timeout(base::TimeDelta::FromSeconds(
-        kHandshakeTimeoutIntervalInSeconds));
+    base::TimeDelta timeout(base::Seconds(kHandshakeTimeoutIntervalInSeconds));
     timer_ = std::move(timer);
     timer_->Start(FROM_HERE, timeout,
                   base::BindOnce(&WebSocketStreamRequestImpl::OnTimeout,
diff --git a/pdf/pdf_utils/dates.cc b/pdf/pdf_utils/dates.cc
index 6d2f9ba..51265b0 100644
--- a/pdf/pdf_utils/dates.cc
+++ b/pdf/pdf_utils/dates.cc
@@ -80,7 +80,7 @@
   if (!sign.has_value() || (sign.value() != '+' && sign.value() != '-'))
     return offset;
 
-  offset += base::TimeDelta::FromHours(deserializer.PopDigits(2).value_or(0));
+  offset += base::Hours(deserializer.PopDigits(2).value_or(0));
 
   // The spec requires that the hours offset be followed by an apostrophe, but
   // don't be strict about its presence.
@@ -92,7 +92,7 @@
   // following the minutes offset. One reason for the leniency is the apostrophe
   // following the minues, which is only mentioned in earlier versions of the
   // spec.
-  offset += base::TimeDelta::FromMinutes(deserializer.PopDigits(2).value_or(0));
+  offset += base::Minutes(deserializer.PopDigits(2).value_or(0));
 
   return sign.value() == '+' ? offset : -offset;
 }
diff --git a/pdf/pdf_view_plugin_base.cc b/pdf/pdf_view_plugin_base.cc
index 589647e..3e9e6c9 100644
--- a/pdf/pdf_view_plugin_base.cc
+++ b/pdf/pdf_view_plugin_base.cc
@@ -77,11 +77,9 @@
 
 // A delay to wait between each accessibility page to keep the system
 // responsive.
-constexpr base::TimeDelta kAccessibilityPageDelay =
-    base::TimeDelta::FromMilliseconds(100);
+constexpr base::TimeDelta kAccessibilityPageDelay = base::Milliseconds(100);
 
-constexpr base::TimeDelta kFindResultCooldown =
-    base::TimeDelta::FromMilliseconds(100);
+constexpr base::TimeDelta kFindResultCooldown = base::Milliseconds(100);
 
 constexpr char kChromePrintHost[] = "chrome://print/";
 constexpr char kChromeExtensionHost[] =
diff --git a/pdf/pdfium/pdfium_engine.cc b/pdf/pdfium/pdfium_engine.cc
index 8e61827..55e078f 100644
--- a/pdf/pdfium/pdfium_engine.cc
+++ b/pdf/pdfium/pdfium_engine.cc
@@ -109,8 +109,7 @@
 
 constexpr int kMaxPasswordTries = 3;
 
-constexpr base::TimeDelta kTouchLongPressTimeout =
-    base::TimeDelta::FromMilliseconds(300);
+constexpr base::TimeDelta kTouchLongPressTimeout = base::Milliseconds(300);
 
 // Windows has native panning capabilities. No need to use our own.
 #if defined(OS_WIN)
@@ -123,8 +122,7 @@
 
 // The maximum amount of time we'll spend doing a paint before we give back
 // control of the thread.
-constexpr base::TimeDelta kMaxProgressivePaintTime =
-    base::TimeDelta::FromMilliseconds(300);
+constexpr base::TimeDelta kMaxProgressivePaintTime = base::Milliseconds(300);
 
 // The maximum amount of time we'll spend doing the first paint. This is less
 // than the above to keep things smooth if the user is scrolling quickly. This
@@ -138,7 +136,7 @@
 // The scrollbar will always be responsive since it is managed by a separate
 // process.
 constexpr base::TimeDelta kMaxInitialProgressivePaintTime =
-    base::TimeDelta::FromMilliseconds(250);
+    base::Milliseconds(250);
 
 FontMappingMode g_font_mapping_mode = FontMappingMode::kNoMapping;
 
diff --git a/pdf/pdfium/pdfium_form_filler.cc b/pdf/pdfium/pdfium_form_filler.cc
index e16f3c65f..94632a8e 100644
--- a/pdf/pdfium/pdfium_form_filler.cc
+++ b/pdf/pdfium/pdfium_form_filler.cc
@@ -179,8 +179,7 @@
                                     int elapse,
                                     TimerCallback timer_func) {
   auto* form_filler = static_cast<PDFiumFormFiller*>(param);
-  return form_filler->SetTimer(base::TimeDelta::FromMilliseconds(elapse),
-                               timer_func);
+  return form_filler->SetTimer(base::Milliseconds(elapse), timer_func);
 }
 
 // static
diff --git a/pdf/ppapi_migration/input_event_conversions.cc b/pdf/ppapi_migration/input_event_conversions.cc
index 54df257..16cc97a 100644
--- a/pdf/ppapi_migration/input_event_conversions.cc
+++ b/pdf/ppapi_migration/input_event_conversions.cc
@@ -89,7 +89,7 @@
 
   auto mouse_event = std::make_unique<blink::WebMouseEvent>(
       type, event.GetModifiers(),
-      base::TimeTicks() + base::TimeDelta::FromSecondsD(event.GetTimeStamp()));
+      base::TimeTicks() + base::Seconds(event.GetTimeStamp()));
 
   mouse_event->button = GetWebPointerPropertiesButton(event.GetButton());
   mouse_event->click_count = event.GetClickCount();
@@ -107,7 +107,7 @@
 
   auto keyboard_event = std::make_unique<blink::WebKeyboardEvent>(
       type, event.GetModifiers(),
-      base::TimeTicks() + base::TimeDelta::FromSecondsD(event.GetTimeStamp()));
+      base::TimeTicks() + base::Seconds(event.GetTimeStamp()));
 
   keyboard_event->windows_key_code = event.GetKeyCode();
 
@@ -130,7 +130,7 @@
 
   auto touch_event = std::make_unique<blink::WebTouchEvent>(
       type, event.GetModifiers(),
-      base::TimeTicks() + base::TimeDelta::FromSecondsD(event.GetTimeStamp()));
+      base::TimeTicks() + base::Seconds(event.GetTimeStamp()));
 
   // The PDF plugin only cares about the first touch and the number of touches,
   // but copy over all the touches so that `touch_event->touches_length`
diff --git a/pdf/url_loader_wrapper_impl.cc b/pdf/url_loader_wrapper_impl.cc
index 5eb00bc..add261c 100644
--- a/pdf/url_loader_wrapper_impl.cc
+++ b/pdf/url_loader_wrapper_impl.cc
@@ -29,7 +29,7 @@
 namespace {
 
 // We should read with delay to prevent block UI thread, and reduce CPU usage.
-constexpr base::TimeDelta kReadDelayMs = base::TimeDelta::FromMilliseconds(2);
+constexpr base::TimeDelta kReadDelayMs = base::Milliseconds(2);
 
 UrlRequest MakeRangeRequest(const std::string& url,
                             const std::string& referrer_url,
diff --git a/ppapi/proxy/audio_output_resource.cc b/ppapi/proxy/audio_output_resource.cc
index 0daf3f6b..33f7eda 100644
--- a/ppapi/proxy/audio_output_resource.cc
+++ b/ppapi/proxy/audio_output_resource.cc
@@ -247,8 +247,7 @@
       break;
 
     {
-      base::TimeDelta delay =
-          base::TimeDelta::FromMicroseconds(buffer->params.delay_us);
+      base::TimeDelta delay = base::Microseconds(buffer->params.delay_us);
 
       audio_output_callback_(client_buffer_.get(), client_buffer_size_bytes_,
                              delay.InSecondsF(), user_data_);
diff --git a/ppapi/proxy/ppb_core_proxy.cc b/ppapi/proxy/ppb_core_proxy.cc
index b5f8f69e..f0dc3668 100644
--- a/ppapi/proxy/ppb_core_proxy.cc
+++ b/ppapi/proxy/ppb_core_proxy.cc
@@ -75,7 +75,7 @@
   PpapiGlobals::Get()->GetMainThreadMessageLoop()->PostDelayedTask(
       FROM_HERE,
       RunWhileLocked(base::BindOnce(&CallbackWrapper, callback, result)),
-      base::TimeDelta::FromMilliseconds(delay_in_ms));
+      base::Milliseconds(delay_in_ms));
 }
 
 PP_Bool IsMainThread() {
diff --git a/ppapi/proxy/ppb_image_data_proxy.cc b/ppapi/proxy/ppb_image_data_proxy.cc
index b49b57b..03e9b18 100644
--- a/ppapi/proxy/ppb_image_data_proxy.cc
+++ b/ppapi/proxy/ppb_image_data_proxy.cc
@@ -192,7 +192,7 @@
 
 bool ImageDataInstanceCache::ExpireEntries() {
   base::TimeTicks threshold_time =
-      base::TimeTicks::Now() - base::TimeDelta::FromSeconds(kMaxAgeSeconds);
+      base::TimeTicks::Now() - base::Seconds(kMaxAgeSeconds);
 
   bool has_entry = false;
   for (size_t i = 0; i < kCacheSize; i++) {
@@ -289,7 +289,7 @@
       RunWhileLocked(base::BindOnce(&ImageDataCache::OnTimer,
                                     weak_factory_.GetWeakPtr(),
                                     image_data->pp_instance())),
-      base::TimeDelta::FromSeconds(kMaxAgeSeconds));
+      base::Seconds(kMaxAgeSeconds));
 }
 
 void ImageDataCache::ImageDataUsable(ImageData* image_data) {
diff --git a/ppapi/proxy/ppb_message_loop_proxy.cc b/ppapi/proxy/ppb_message_loop_proxy.cc
index 9b9b95a..a42608c 100644
--- a/ppapi/proxy/ppb_message_loop_proxy.cc
+++ b/ppapi/proxy/ppb_message_loop_proxy.cc
@@ -194,7 +194,7 @@
                                       int64_t delay_ms) {
   if (task_runner_.get()) {
     task_runner_->PostDelayedTask(from_here, std::move(closure),
-                                  base::TimeDelta::FromMilliseconds(delay_ms));
+                                  base::Milliseconds(delay_ms));
   } else {
     TaskInfo info;
     info.from_here = FROM_HERE;
diff --git a/ppapi/shared_impl/ppb_audio_shared.cc b/ppapi/shared_impl/ppb_audio_shared.cc
index 78e64a8..5a12962f 100644
--- a/ppapi/shared_impl/ppb_audio_shared.cc
+++ b/ppapi/shared_impl/ppb_audio_shared.cc
@@ -231,8 +231,7 @@
       TRACE_EVENT0("audio", "PPB_Audio_Shared::FireRenderCallback");
       media::AudioOutputBuffer* buffer =
           reinterpret_cast<media::AudioOutputBuffer*>(shared_memory_.memory());
-      base::TimeDelta delay =
-          base::TimeDelta::FromMicroseconds(buffer->params.delay_us);
+      base::TimeDelta delay = base::Microseconds(buffer->params.delay_us);
 
       callback_.Run(client_buffer_.get(), client_buffer_size_bytes_,
                     delay.InSecondsF(), user_data_);
diff --git a/ppapi/shared_impl/time_conversion_unittest.cc b/ppapi/shared_impl/time_conversion_unittest.cc
index 4d8c77e..f8ef135 100644
--- a/ppapi/shared_impl/time_conversion_unittest.cc
+++ b/ppapi/shared_impl/time_conversion_unittest.cc
@@ -28,7 +28,7 @@
             abs(static_cast<int>((converted - now).ToInternalValue())));
 
   // Units should be in seconds.
-  base::Time one_second_from_now = now + base::TimeDelta::FromSeconds(1);
+  base::Time one_second_from_now = now + base::Seconds(1);
   double converted_one_second_from_now =
       ppapi::TimeToPPTime(one_second_from_now) - ppapi::TimeToPPTime(now);
   EXPECT_GE(kTimeSecondsSlop, fabs(converted_one_second_from_now - 1));
@@ -42,7 +42,7 @@
             abs(static_cast<int>((converted - epoch).ToInternalValue())));
 
   // Units should be in seconds.
-  base::Time one_second_from_epoch = epoch + base::TimeDelta::FromSeconds(1);
+  base::Time one_second_from_epoch = epoch + base::Seconds(1);
   double converted_one_second_from_epoch =
       ppapi::TimeToPPTime(one_second_from_epoch) - ppapi::TimeToPPTime(epoch);
   EXPECT_GE(kTimeSecondsSlop, fabs(converted_one_second_from_epoch - 1));
diff --git a/printing/backend/cups_helper.cc b/printing/backend/cups_helper.cc
index 6503ad5..c69e041 100644
--- a/printing/backend/cups_helper.cc
+++ b/printing/backend/cups_helper.cc
@@ -44,7 +44,7 @@
 
 // Timeout for establishing a CUPS connection.  It is expected that cupsd is
 // able to start and respond on all systems within this duration.
-constexpr base::TimeDelta kCupsTimeout = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kCupsTimeout = base::Seconds(5);
 
 // CUPS default max copies value (parsed from kCupsMaxCopies PPD attribute).
 constexpr int32_t kDefaultMaxCopies = 9999;
diff --git a/remoting/base/auto_thread_unittest.cc b/remoting/base/auto_thread_unittest.cc
index e3637969..757bc74 100644
--- a/remoting/base/auto_thread_unittest.cc
+++ b/remoting/base/auto_thread_unittest.cc
@@ -65,7 +65,7 @@
     base::RunLoop run_loop;
     quit_closure_ = run_loop.QuitClosure();
     task_environment_.GetMainThreadTaskRunner()->PostDelayedTask(
-        FROM_HERE, run_loop.QuitClosure(), base::TimeDelta::FromSeconds(5));
+        FROM_HERE, run_loop.QuitClosure(), base::Seconds(5));
     run_loop.Run();
   }
 
diff --git a/remoting/base/constants.h b/remoting/base/constants.h
index 32892c45..984cdba 100644
--- a/remoting/base/constants.h
+++ b/remoting/base/constants.h
@@ -26,7 +26,7 @@
 
 // The default interval for processes to send resource usage to network process.
 constexpr base::TimeDelta kDefaultProcessStatsInterval =
-    base::TimeDelta::FromMilliseconds(2000);
+    base::Milliseconds(2000);
 
 // The video frame rate.
 constexpr int kTargetFrameRate = 30;
diff --git a/remoting/base/leaky_bucket.cc b/remoting/base/leaky_bucket.cc
index 24dbff32..981fb10 100644
--- a/remoting/base/leaky_bucket.cc
+++ b/remoting/base/leaky_bucket.cc
@@ -32,10 +32,10 @@
   // WebrtcFrameSchedulerSimple does not need to handle any overflow isssues
   // caused by returning TimeDelta::Max().
   base::TimeDelta time_to_empty =
-      (rate_ != 0) ? base::TimeDelta::FromMicroseconds(
-                         base::TimeTicks::kMicrosecondsPerSecond *
-                         current_level_ / rate_)
-                   : base::TimeDelta::FromMinutes(1);
+      (rate_ != 0)
+          ? base::Microseconds(base::TimeTicks::kMicrosecondsPerSecond *
+                               current_level_ / rate_)
+          : base::Minutes(1);
   return level_updated_time_ + time_to_empty;
 }
 
diff --git a/remoting/base/leaky_bucket_unittest.cc b/remoting/base/leaky_bucket_unittest.cc
index 1131c25fe..83b780c4 100644
--- a/remoting/base/leaky_bucket_unittest.cc
+++ b/remoting/base/leaky_bucket_unittest.cc
@@ -23,7 +23,7 @@
   // The amount of drainage is 3000 * rate = 3e9, which overflows a signed
   // 32-bit int. This would be subtracted from the current level, under the
   // old implementation.
-  now += base::TimeDelta::FromSeconds(3000);
+  now += base::Seconds(3000);
   bucket.UpdateRate(rate, now);
 
   auto empty_time = bucket.GetEmptyTime();
diff --git a/remoting/base/oauth_token_getter_impl.cc b/remoting/base/oauth_token_getter_impl.cc
index 97b9c998..e71d567b 100644
--- a/remoting/base/oauth_token_getter_impl.cc
+++ b/remoting/base/oauth_token_getter_impl.cc
@@ -26,8 +26,7 @@
 const int kTokenUpdateTimeBeforeExpirySeconds = 120;
 
 // Max time we wait for the response before giving up.
-constexpr base::TimeDelta kResponseTimeoutDuration =
-    base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kResponseTimeoutDuration = base::Seconds(30);
 
 }  // namespace
 
@@ -133,8 +132,8 @@
                                              int expires_seconds) {
   oauth_access_token_ = access_token;
   base::TimeDelta token_expiration =
-      base::TimeDelta::FromSeconds(expires_seconds) -
-      base::TimeDelta::FromSeconds(kTokenUpdateTimeBeforeExpirySeconds);
+      base::Seconds(expires_seconds) -
+      base::Seconds(kTokenUpdateTimeBeforeExpirySeconds);
   access_token_expiry_time_ = base::Time::Now() + token_expiration;
 
   if (refresh_timer_) {
diff --git a/remoting/base/protobuf_http_client_unittest.cc b/remoting/base/protobuf_http_client_unittest.cc
index 01c8932..14a269c 100644
--- a/remoting/base/protobuf_http_client_unittest.cc
+++ b/remoting/base/protobuf_http_client_unittest.cc
@@ -397,14 +397,14 @@
       .WillOnce([&]() { run_loop.Quit(); });
 
   auto request = CreateDefaultTestRequest();
-  request->SetTimeoutDuration(base::TimeDelta::FromSeconds(15));
+  request->SetTimeoutDuration(base::Seconds(15));
   request->SetResponseCallback(response_callback.Get());
   client_.ExecuteRequest(std::move(request));
 
   ASSERT_TRUE(test_url_loader_factory_.IsPending(kTestFullUrl));
   ASSERT_EQ(1, test_url_loader_factory_.NumPending());
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(16));
+  task_environment_.FastForwardBy(base::Seconds(16));
 
   run_loop.Run();
   ASSERT_FALSE(client_.HasPendingRequests());
@@ -665,7 +665,7 @@
 
   task_environment_.FastForwardBy(
       ProtobufHttpStreamRequest::kStreamReadyTimeoutDuration +
-      base::TimeDelta::FromSeconds(1));
+      base::Seconds(1));
   ASSERT_FALSE(client_.HasPendingRequests());
 }
 
diff --git a/remoting/base/protobuf_http_request.h b/remoting/base/protobuf_http_request.h
index b517868..d218aa7 100644
--- a/remoting/base/protobuf_http_request.h
+++ b/remoting/base/protobuf_http_request.h
@@ -64,7 +64,7 @@
   // Parses |response_body| and writes it to |response_message_|.
   ProtobufHttpStatus ParseResponse(std::unique_ptr<std::string> response_body);
 
-  base::TimeDelta timeout_duration_ = base::TimeDelta::FromSeconds(30);
+  base::TimeDelta timeout_duration_ = base::Seconds(30);
 
   // This is owned by |response_callback_|.
   google::protobuf::MessageLite* response_message_;
diff --git a/remoting/base/protobuf_http_request_base.cc b/remoting/base/protobuf_http_request_base.cc
index 366bdbf..feaa9ae 100644
--- a/remoting/base/protobuf_http_request_base.cc
+++ b/remoting/base/protobuf_http_request_base.cc
@@ -65,8 +65,8 @@
   base::TimeDelta timeout_duration = GetRequestTimeoutDuration();
   if (!timeout_duration.is_zero()) {
     // Add a 500ms fuzz to account for task dispatching delay and other stuff.
-    request_deadline_ = base::TimeTicks::Now() + timeout_duration +
-                        base::TimeDelta::FromMilliseconds(500);
+    request_deadline_ =
+        base::TimeTicks::Now() + timeout_duration + base::Milliseconds(500);
   }
 #endif  // DCHECK_IS_ON()
 }
diff --git a/remoting/base/protobuf_http_stream_request.h b/remoting/base/protobuf_http_stream_request.h
index 55b1c52..68051176 100644
--- a/remoting/base/protobuf_http_stream_request.h
+++ b/remoting/base/protobuf_http_stream_request.h
@@ -35,7 +35,7 @@
       base::OnceCallback<void(const ProtobufHttpStatus& status)>;
 
   static constexpr base::TimeDelta kStreamReadyTimeoutDuration =
-      base::TimeDelta::FromSeconds(30);
+      base::Seconds(30);
 
   explicit ProtobufHttpStreamRequest(
       std::unique_ptr<ProtobufHttpRequestConfig> config);
diff --git a/remoting/base/rate_counter_unittest.cc b/remoting/base/rate_counter_unittest.cc
index 90795063..170c27c0 100644
--- a/remoting/base/rate_counter_unittest.cc
+++ b/remoting/base/rate_counter_unittest.cc
@@ -16,14 +16,14 @@
 
 // One second window and one sample per second, so rate equals each sample.
 TEST(RateCounterTest, OneSecondWindow) {
-  RateCounter rate_counter(base::TimeDelta::FromSeconds(1));
+  RateCounter rate_counter(base::Seconds(1));
   EXPECT_EQ(0, rate_counter.Rate());
 
   base::SimpleTestTickClock tick_clock;
   rate_counter.set_tick_clock_for_tests(&tick_clock);
 
   for (size_t i = 0; i < base::size(kTestValues); ++i) {
-    tick_clock.Advance(base::TimeDelta::FromSeconds(1));
+    tick_clock.Advance(base::Seconds(1));
     rate_counter.Record(kTestValues[i]);
     EXPECT_EQ(static_cast<double>(kTestValues[i]), rate_counter.Rate());
   }
@@ -31,7 +31,7 @@
 
 // Record all samples instantaneously, so the rate is the total of the samples.
 TEST(RateCounterTest, OneSecondWindowAllSamples) {
-  RateCounter rate_counter(base::TimeDelta::FromSeconds(1));
+  RateCounter rate_counter(base::Seconds(1));
   EXPECT_EQ(0, rate_counter.Rate());
 
   base::SimpleTestTickClock tick_clock;
@@ -50,14 +50,14 @@
 // rate should be the average of it and the preceding one.  For the first it
 // will be the average of the sample with zero.
 TEST(RateCounterTest, TwoSecondWindow) {
-  RateCounter rate_counter(base::TimeDelta::FromSeconds(2));
+  RateCounter rate_counter(base::Seconds(2));
   EXPECT_EQ(0, rate_counter.Rate());
 
   base::SimpleTestTickClock tick_clock;
   rate_counter.set_tick_clock_for_tests(&tick_clock);
 
   for (size_t i = 0; i < base::size(kTestValues); ++i) {
-    tick_clock.Advance(base::TimeDelta::FromSeconds(1));
+    tick_clock.Advance(base::Seconds(1));
     rate_counter.Record(kTestValues[i]);
     double expected = kTestValues[i];
     if (i > 0)
@@ -72,7 +72,7 @@
 TEST(RateCounterTest, LongWindow) {
   const size_t kWindowSeconds = base::size(kTestValues) - 1;
 
-  RateCounter rate_counter(base::TimeDelta::FromSeconds(kWindowSeconds));
+  RateCounter rate_counter(base::Seconds(kWindowSeconds));
   EXPECT_EQ(0, rate_counter.Rate());
 
   base::SimpleTestTickClock tick_clock;
@@ -80,7 +80,7 @@
 
   double expected = 0.0;
   for (size_t i = 0; i < base::size(kTestValues); ++i) {
-    tick_clock.Advance(base::TimeDelta::FromSeconds(1));
+    tick_clock.Advance(base::Seconds(1));
     rate_counter.Record(kTestValues[i]);
     if (i != 0)
       expected += kTestValues[i];
diff --git a/remoting/base/rsa_key_pair.cc b/remoting/base/rsa_key_pair.cc
index 51a6ffc..6b8b77a 100644
--- a/remoting/base/rsa_key_pair.cc
+++ b/remoting/base/rsa_key_pair.cc
@@ -99,7 +99,7 @@
   net::x509_util::CreateSelfSignedCert(
       key_->key(), net::x509_util::DIGEST_SHA256, "CN=chromoting",
       base::RandInt(1, std::numeric_limits<int>::max()), base::Time::Now(),
-      base::Time::Now() + base::TimeDelta::FromDays(1), {}, &der_cert);
+      base::Time::Now() + base::Days(1), {}, &der_cert);
   return der_cert;
 }
 
diff --git a/remoting/base/telemetry_log_writer_unittest.cc b/remoting/base/telemetry_log_writer_unittest.cc
index 5dae5fd..3e8add7 100644
--- a/remoting/base/telemetry_log_writer_unittest.cc
+++ b/remoting/base/telemetry_log_writer_unittest.cc
@@ -116,7 +116,7 @@
     // Mock clock will auto-fast-forward, so the delay here is somewhat
     // arbitrary.
     timer.Start(
-        FROM_HERE, base::TimeDelta::FromSeconds(1),
+        FROM_HERE, base::Seconds(1),
         base::BindRepeating(
             [](TelemetryLogWriter* log_writer,
                base::RepeatingClosure quit_closure) {
diff --git a/remoting/client/audio/audio_jitter_buffer.cc b/remoting/client/audio/audio_jitter_buffer.cc
index 67259cf..c219524 100644
--- a/remoting/client/audio/audio_jitter_buffer.cc
+++ b/remoting/client/audio/audio_jitter_buffer.cc
@@ -24,12 +24,9 @@
 // Otherwise the total latency can freely fluctuate between 0 and
 // |kMaxQueueLatency|.
 
-constexpr base::TimeDelta kMaxQueueLatency =
-    base::TimeDelta::FromMilliseconds(150);
-constexpr base::TimeDelta kUnderrunRecoveryLatency =
-    base::TimeDelta::FromMilliseconds(60);
-constexpr base::TimeDelta kOverrunRecoveryLatency =
-    base::TimeDelta::FromMilliseconds(90);
+constexpr base::TimeDelta kMaxQueueLatency = base::Milliseconds(150);
+constexpr base::TimeDelta kUnderrunRecoveryLatency = base::Milliseconds(60);
+constexpr base::TimeDelta kOverrunRecoveryLatency = base::Milliseconds(90);
 
 }  // namespace
 
diff --git a/remoting/client/chromoting_session.cc b/remoting/client/chromoting_session.cc
index fb41272..c7243d4f 100644
--- a/remoting/client/chromoting_session.cc
+++ b/remoting/client/chromoting_session.cc
@@ -53,12 +53,11 @@
 const int kMinDimension = 640;
 
 // Interval at which to log performance statistics, if enabled.
-constexpr base::TimeDelta kPerfStatsInterval = base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kPerfStatsInterval = base::Minutes(1);
 
 // Delay to destroy the signal strategy, so that the session-terminate event can
 // still be sent out.
-constexpr base::TimeDelta kDestroySignalingDelay =
-    base::TimeDelta::FromSeconds(2);
+constexpr base::TimeDelta kDestroySignalingDelay = base::Seconds(2);
 
 bool IsClientResolutionValid(int dips_width, int dips_height) {
   // This prevents sending resolution on a portrait mode small phone screen
diff --git a/remoting/client/client_telemetry_logger.cc b/remoting/client/client_telemetry_logger.cc
index d139f8cc..5d292ac2 100644
--- a/remoting/client/client_telemetry_logger.cc
+++ b/remoting/client/client_telemetry_logger.cc
@@ -267,7 +267,7 @@
     return;
   }
 
-  base::TimeDelta max_age = base::TimeDelta::FromDays(kMaxSessionIdAgeDays);
+  base::TimeDelta max_age = base::Days(kMaxSessionIdAgeDays);
   if (base::TimeTicks::Now() - session_id_generation_time_ > max_age) {
     // Log the old session ID.
     ChromotingEvent event = MakeSessionIdOldEvent();
diff --git a/remoting/client/client_telemetry_logger_unittest.cc b/remoting/client/client_telemetry_logger_unittest.cc
index 2d5450d..bfd8c65b 100644
--- a/remoting/client/client_telemetry_logger_unittest.cc
+++ b/remoting/client/client_telemetry_logger_unittest.cc
@@ -154,7 +154,7 @@
   // kMaxSessionIdAgeDays = 1. Fake the generation time to be 2 days ago and
   // force it to expire.
   logger_->SetSessionIdGenerationTimeForTest(base::TimeTicks::Now() -
-                                             base::TimeDelta::FromDays(2));
+                                             base::Days(2));
   protocol::PerformanceTracker perf_tracker;
   logger_->LogStatistics(perf_tracker);
   EXPECT_NE(last_id, logger_->session_id());
diff --git a/remoting/client/ui/fling_animation_unittest.cc b/remoting/client/ui/fling_animation_unittest.cc
index 82741b7..a74f007 100644
--- a/remoting/client/ui/fling_animation_unittest.cc
+++ b/remoting/client/ui/fling_animation_unittest.cc
@@ -74,7 +74,7 @@
   EXPECT_FALSE(fling_animation_.IsAnimationInProgress());
 
   // This should not change the delta.
-  TickAnimation(base::TimeDelta::FromMilliseconds(100));
+  TickAnimation(base::Milliseconds(100));
 }
 
 TEST_F(FlingAnimationTest, TestFlingWillEventuallyStop) {
@@ -82,7 +82,7 @@
 
   EXPECT_TRUE(fling_animation_.IsAnimationInProgress());
 
-  TickAnimation(base::TimeDelta::FromMinutes(1));
+  TickAnimation(base::Minutes(1));
 
   EXPECT_FALSE(fling_animation_.IsAnimationInProgress());
 }
@@ -94,7 +94,7 @@
   float previous_dy = std::numeric_limits<float>::infinity();
 
   while (true) {
-    TickAnimation(base::TimeDelta::FromMilliseconds(16));
+    TickAnimation(base::Milliseconds(16));
     if (!fling_animation_.IsAnimationInProgress()) {
       break;
     }
@@ -115,7 +115,7 @@
   EXPECT_FALSE(fling_animation_.IsAnimationInProgress());
 
   // This should not change the delta.
-  TickAnimation(base::TimeDelta::FromMilliseconds(5));
+  TickAnimation(base::Milliseconds(5));
 }
 
 TEST_F(FlingAnimationTest, TestAbortAnimation) {
@@ -123,7 +123,7 @@
 
   EXPECT_TRUE(fling_animation_.IsAnimationInProgress());
 
-  TickAnimation(base::TimeDelta::FromMilliseconds(16));
+  TickAnimation(base::Milliseconds(16));
   AssertDeltaChanged();
   EXPECT_TRUE(fling_animation_.IsAnimationInProgress());
 
@@ -134,7 +134,7 @@
 TEST_F(FlingAnimationTest, TestResetVelocity) {
   fling_animation_.SetVelocity(1000.f, -1000.f);
   EXPECT_TRUE(fling_animation_.IsAnimationInProgress());
-  TickAnimation(base::TimeDelta::FromMilliseconds(16));
+  TickAnimation(base::Milliseconds(16));
   EXPECT_TRUE(fling_animation_.IsAnimationInProgress());
   AssertDeltaChanged();
   EXPECT_GT(received_dx_, 0);
@@ -142,7 +142,7 @@
 
   fling_animation_.SetVelocity(-1000.f, 1000.f);
   EXPECT_TRUE(fling_animation_.IsAnimationInProgress());
-  TickAnimation(base::TimeDelta::FromMilliseconds(16));
+  TickAnimation(base::Milliseconds(16));
   EXPECT_TRUE(fling_animation_.IsAnimationInProgress());
   AssertDeltaChanged();
   EXPECT_LT(received_dx_, 0);
diff --git a/remoting/codec/frame_processing_time_estimator.cc b/remoting/codec/frame_processing_time_estimator.cc
index bf22be0d..00b2f8c 100644
--- a/remoting/codec/frame_processing_time_estimator.cc
+++ b/remoting/codec/frame_processing_time_estimator.cc
@@ -34,7 +34,7 @@
 static constexpr int kFrameFinishTicksCount = kBandwidthEstimateWindowSize;
 
 base::TimeDelta CalculateEstimatedTransitTime(int size, int kbps) {
-  return base::TimeDelta::FromMicroseconds(size * 1000 * 8 / kbps);
+  return base::Microseconds(size * 1000 * 8 / kbps);
 }
 
 // Uses the |time| to estimate the frame rate, and round the result in ceiling.
@@ -110,11 +110,9 @@
   // Avoid returning 0 if there are no records for delta-frames.
   if ((key_frame && !key_frame_processing_us_.IsEmpty()) ||
       delta_frame_processing_us_.IsEmpty()) {
-    return base::TimeDelta::FromMicroseconds(
-        key_frame_processing_us_.Average());
+    return base::Microseconds(key_frame_processing_us_.Average());
   }
-  return base::TimeDelta::FromMicroseconds(
-      delta_frame_processing_us_.Average());
+  return base::Microseconds(delta_frame_processing_us_.Average());
 }
 
 base::TimeDelta FrameProcessingTimeEstimator::EstimatedTransitTime(
@@ -124,7 +122,7 @@
     // a fairly large value (1 minute) here. So WebrtcFrameSchedulerSimple does
     // not need to handle the overflow issue caused by returning
     // TimeDelta::Max().
-    return base::TimeDelta::FromMinutes(1);
+    return base::Minutes(1);
   }
   // Avoid returning 0 if there are no records for delta-frames.
   if ((key_frame && !key_frame_size_.IsEmpty()) ||
@@ -156,14 +154,14 @@
   }
   double key_frame_rate = key_frame_count_;
   key_frame_rate /= (delta_frame_count_ + key_frame_count_);
-  return base::TimeDelta::FromMicroseconds(
+  return base::Microseconds(
       key_frame_rate * key_frame_processing_us_.Average() +
       (1 - key_frame_rate) * delta_frame_processing_us_.Average());
 }
 
 base::TimeDelta FrameProcessingTimeEstimator::EstimatedTransitTime() const {
   if (bandwidth_kbps_.IsEmpty()) {
-    return base::TimeDelta::FromMinutes(1);
+    return base::Minutes(1);
   }
   return CalculateEstimatedTransitTime(
       EstimatedFrameSize(), AverageBandwidthKbps());
diff --git a/remoting/codec/webrtc_video_encoder_gpu.cc b/remoting/codec/webrtc_video_encoder_gpu.cc
index faeee7a..b3da6cc 100644
--- a/remoting/codec/webrtc_video_encoder_gpu.cc
+++ b/remoting/codec/webrtc_video_encoder_gpu.cc
@@ -184,7 +184,7 @@
   DCHECK(core_);
   DCHECK(frame);
   DCHECK(done);
-  DCHECK_GT(params.duration, base::TimeDelta::FromMilliseconds(0));
+  DCHECK_GT(params.duration, base::Milliseconds(0));
 
   hw_encode_task_runner_->PostTask(
       FROM_HERE,
diff --git a/remoting/host/audio_capturer_win.cc b/remoting/host/audio_capturer_win.cc
index 6c5191fd..417feda 100644
--- a/remoting/host/audio_capturer_win.cc
+++ b/remoting/host/audio_capturer_win.cc
@@ -141,7 +141,7 @@
   // is not a whole number.
   int device_period_in_milliseconds =
       1 + ((device_period - 1) / k100nsPerMillisecond);
-  audio_device_period_ = base::TimeDelta::FromMilliseconds(
+  audio_device_period_ = base::Milliseconds(
       std::max(device_period_in_milliseconds, kMinTimerInterval));
 
   // Get the wave format.
diff --git a/remoting/host/backoff_timer_unittest.cc b/remoting/host/backoff_timer_unittest.cc
index d62361b..a48f7d34 100644
--- a/remoting/host/backoff_timer_unittest.cc
+++ b/remoting/host/backoff_timer_unittest.cc
@@ -36,9 +36,8 @@
   BackoffTimer backoff_timer;
   ASSERT_FALSE(backoff_timer.IsRunning());
 
-  constexpr base::TimeDelta initial_delay =
-      base::TimeDelta::FromMilliseconds(10);
-  constexpr base::TimeDelta max_delay = base::TimeDelta::FromMilliseconds(50);
+  constexpr base::TimeDelta initial_delay = base::Milliseconds(10);
+  constexpr base::TimeDelta max_delay = base::Milliseconds(50);
 
   backoff_timer.Start(FROM_HERE, initial_delay, max_delay,
                       base::BindRepeating(&BackoffTimerTest::IncrementCounter,
diff --git a/remoting/host/basic_desktop_environment.cc b/remoting/host/basic_desktop_environment.cc
index 66cce27..9bcfcdb 100644
--- a/remoting/host/basic_desktop_environment.cc
+++ b/remoting/host/basic_desktop_environment.cc
@@ -43,8 +43,7 @@
 
 // The maximum amount of time we will wait for the IgnoreXServerGrabs() to
 // return before we crash the host.
-constexpr base::TimeDelta kWaitForIgnoreXServerGrabsTimeout =
-    base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kWaitForIgnoreXServerGrabsTimeout = base::Seconds(30);
 
 // Helper class to monitor the call to
 // webrtc::SharedXDisplay::IgnoreXServerGrabs() (on a temporary thread), which
diff --git a/remoting/host/chromeos/clipboard_aura.cc b/remoting/host/chromeos/clipboard_aura.cc
index 54ac1179..d8bbb5b 100644
--- a/remoting/host/chromeos/clipboard_aura.cc
+++ b/remoting/host/chromeos/clipboard_aura.cc
@@ -25,8 +25,7 @@
 namespace remoting {
 
 ClipboardAura::ClipboardAura()
-    : polling_interval_(
-          base::TimeDelta::FromMilliseconds(kClipboardPollingIntervalMs)) {}
+    : polling_interval_(base::Milliseconds(kClipboardPollingIntervalMs)) {}
 
 ClipboardAura::~ClipboardAura() {
   DCHECK(thread_checker_.CalledOnValidThread());
diff --git a/remoting/host/chromeos/clipboard_aura_unittest.cc b/remoting/host/chromeos/clipboard_aura_unittest.cc
index 6f8887a..55f68e9 100644
--- a/remoting/host/chromeos/clipboard_aura_unittest.cc
+++ b/remoting/host/chromeos/clipboard_aura_unittest.cc
@@ -32,8 +32,7 @@
 
 namespace {
 
-const base::TimeDelta kTestOverridePollingInterval =
-    base::TimeDelta::FromMilliseconds(1);
+const base::TimeDelta kTestOverridePollingInterval = base::Milliseconds(1);
 
 class ClientClipboard : public protocol::ClipboardStub {
  public:
diff --git a/remoting/host/clipboard_mac.mm b/remoting/host/clipboard_mac.mm
index 7e1e271..393aac0 100644
--- a/remoting/host/clipboard_mac.mm
+++ b/remoting/host/clipboard_mac.mm
@@ -65,9 +65,9 @@
   // OS X doesn't provide a clipboard-changed notification. The only way to
   // detect clipboard changes is by polling.
   clipboard_polling_timer_ = std::make_unique<base::RepeatingTimer>();
-  clipboard_polling_timer_->Start(FROM_HERE,
-      base::TimeDelta::FromMilliseconds(kClipboardPollingIntervalMs),
-      this, &ClipboardMac::CheckClipboardForChanges);
+  clipboard_polling_timer_->Start(
+      FROM_HERE, base::Milliseconds(kClipboardPollingIntervalMs), this,
+      &ClipboardMac::CheckClipboardForChanges);
 }
 
 void ClipboardMac::InjectClipboardEvent(const protocol::ClipboardEvent& event) {
diff --git a/remoting/host/clipboard_win.cc b/remoting/host/clipboard_win.cc
index 668b47b..6976fea 100644
--- a/remoting/host/clipboard_win.cc
+++ b/remoting/host/clipboard_win.cc
@@ -46,8 +46,7 @@
 
   bool Init(HWND owner) {
     const int kMaxAttemptsToOpenClipboard = 5;
-    const base::TimeDelta kSleepTimeBetweenAttempts =
-        base::TimeDelta::FromMilliseconds(5);
+    const base::TimeDelta kSleepTimeBetweenAttempts = base::Milliseconds(5);
 
     if (opened_) {
       NOTREACHED();
diff --git a/remoting/host/config_file_watcher.cc b/remoting/host/config_file_watcher.cc
index 498a93a..517aacf 100644
--- a/remoting/host/config_file_watcher.cc
+++ b/remoting/host/config_file_watcher.cc
@@ -136,8 +136,7 @@
   // Create the timer that will be used for delayed-reading the configuration
   // file.
   config_updated_timer_ = std::make_unique<base::DelayTimer>(
-      FROM_HERE, base::TimeDelta::FromSeconds(2), this,
-      &ConfigFileWatcherImpl::ReloadConfig);
+      FROM_HERE, base::Seconds(2), this, &ConfigFileWatcherImpl::ReloadConfig);
 
   // Start watching the configuration file.
   config_watcher_ = std::make_unique<base::FilePathWatcher>();
diff --git a/remoting/host/continue_window.cc b/remoting/host/continue_window.cc
index d2cbadd..dd629df 100644
--- a/remoting/host/continue_window.cc
+++ b/remoting/host/continue_window.cc
@@ -9,13 +9,11 @@
 #include "remoting/host/client_session_control.h"
 
 // Minutes before the local user should confirm that the session should go on.
-constexpr base::TimeDelta kSessionExpirationTimeout =
-    base::TimeDelta::FromMinutes(30);
+constexpr base::TimeDelta kSessionExpirationTimeout = base::Minutes(30);
 
 // Minutes before the session will be disconnected (from the moment the Continue
 // window has been shown).
-constexpr base::TimeDelta kSessionDisconnectTimeout =
-    base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kSessionDisconnectTimeout = base::Minutes(5);
 
 namespace remoting {
 
diff --git a/remoting/host/daemon_process.cc b/remoting/host/daemon_process.cc
index 64a5e2f..f360b6e 100644
--- a/remoting/host/daemon_process.cc
+++ b/remoting/host/daemon_process.cc
@@ -368,7 +368,7 @@
 
 void DaemonProcess::StartProcessStatsReport(base::TimeDelta interval) {
   DCHECK(caller_task_runner()->BelongsToCurrentThread());
-  if (interval <= base::TimeDelta::FromSeconds(0)) {
+  if (interval <= base::Seconds(0)) {
     interval = kDefaultProcessStatsInterval;
   }
 
diff --git a/remoting/host/daemon_process_unittest.cc b/remoting/host/daemon_process_unittest.cc
index 15866b8..51e62a9 100644
--- a/remoting/host/daemon_process_unittest.cc
+++ b/remoting/host/daemon_process_unittest.cc
@@ -351,8 +351,7 @@
 TEST_F(DaemonProcessTest, StartProcessStatsReport) {
   EXPECT_CALL(*daemon_process_, Sent(Message(kMessageReportProcessStats)));
   daemon_process_->OnMessageReceived(
-      ChromotingNetworkToAnyMsg_StartProcessStatsReport(
-          base::TimeDelta::FromMilliseconds(1)));
+      ChromotingNetworkToAnyMsg_StartProcessStatsReport(base::Milliseconds(1)));
   base::RunLoop run_loop;
   ON_CALL(*daemon_process_, Sent(Message(kMessageReportProcessStats)))
       .WillByDefault(testing::Invoke(
@@ -367,11 +366,9 @@
       .Times(AnyNumber());
   int received = 0;
   daemon_process_->OnMessageReceived(
-      ChromotingNetworkToAnyMsg_StartProcessStatsReport(
-          base::TimeDelta::FromHours(1)));
+      ChromotingNetworkToAnyMsg_StartProcessStatsReport(base::Hours(1)));
   daemon_process_->OnMessageReceived(
-      ChromotingNetworkToAnyMsg_StartProcessStatsReport(
-          base::TimeDelta::FromMilliseconds(1)));
+      ChromotingNetworkToAnyMsg_StartProcessStatsReport(base::Milliseconds(1)));
   base::RunLoop run_loop;
   ON_CALL(*daemon_process_, Sent(Message(kMessageReportProcessStats)))
       .WillByDefault(testing::Invoke(
@@ -386,8 +383,7 @@
 
 TEST_F(DaemonProcessTest, StopProcessStatsReportWhenTheWorkerProcessDied) {
   daemon_process_->OnMessageReceived(
-      ChromotingNetworkToAnyMsg_StartProcessStatsReport(
-          base::TimeDelta::FromMilliseconds(1)));
+      ChromotingNetworkToAnyMsg_StartProcessStatsReport(base::Milliseconds(1)));
   base::RunLoop run_loop;
   ON_CALL(*daemon_process_, Sent(Message(kMessageReportProcessStats)))
       .WillByDefault(testing::Invoke(
@@ -397,7 +393,7 @@
   static_cast<WorkerProcessIpcDelegate*>(daemon_process_.get())
       ->OnWorkerProcessStopped();
   task_environment_.GetMainThreadTaskRunner()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(), base::TimeDelta::FromMilliseconds(10));
+      FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(10));
   run_loop.Run();
 }
 
diff --git a/remoting/host/desktop_session_agent.cc b/remoting/host/desktop_session_agent.cc
index 7717143..8ce2bcb 100644
--- a/remoting/host/desktop_session_agent.cc
+++ b/remoting/host/desktop_session_agent.cc
@@ -789,7 +789,7 @@
   DCHECK(caller_task_runner_->BelongsToCurrentThread());
   DCHECK(!stats_sender_);
 
-  if (interval <= base::TimeDelta::FromSeconds(0)) {
+  if (interval <= base::Seconds(0)) {
     interval = kDefaultProcessStatsInterval;
   }
 
diff --git a/remoting/host/desktop_session_agent_unittest.cc b/remoting/host/desktop_session_agent_unittest.cc
index ed7e79d6..89da085b 100644
--- a/remoting/host/desktop_session_agent_unittest.cc
+++ b/remoting/host/desktop_session_agent_unittest.cc
@@ -135,7 +135,7 @@
   ASSERT_TRUE(proxy->Send(new ChromotingNetworkDesktopMsg_StartSessionAgent(
       "jid", ScreenResolution(), DesktopEnvironmentOptions())));
   ASSERT_TRUE(proxy->Send(new ChromotingNetworkToAnyMsg_StartProcessStatsReport(
-      base::TimeDelta::FromMilliseconds(1))));
+      base::Milliseconds(1))));
   run_loop_.Run();
 }
 
@@ -150,7 +150,7 @@
   ASSERT_TRUE(proxy->Send(new ChromotingNetworkDesktopMsg_StartSessionAgent(
       "jid", ScreenResolution(), DesktopEnvironmentOptions())));
   ASSERT_TRUE(proxy->Send(new ChromotingNetworkToAnyMsg_StartProcessStatsReport(
-      base::TimeDelta::FromMilliseconds(-1))));
+      base::Milliseconds(-1))));
   ASSERT_TRUE(proxy->Send(
       new ChromotingNetworkToAnyMsg_StopProcessStatsReport()));
   task_runner_->PostDelayedTask(
@@ -165,7 +165,7 @@
           },
           base::Unretained(this), base::Unretained(&delegate),
           base::Unretained(&proxy)),
-      base::TimeDelta::FromMilliseconds(1));
+      base::Milliseconds(1));
   run_loop_.Run();
 }
 
@@ -180,7 +180,7 @@
   ASSERT_TRUE(proxy->Send(new ChromotingNetworkDesktopMsg_StartSessionAgent(
       "jid", ScreenResolution(), DesktopEnvironmentOptions())));
   ASSERT_TRUE(proxy->Send(new ChromotingNetworkToAnyMsg_StartProcessStatsReport(
-      base::TimeDelta::FromMilliseconds(1))));
+      base::Milliseconds(1))));
   ASSERT_TRUE(proxy->Send(
       new ChromotingNetworkToAnyMsg_StopProcessStatsReport()));
   task_runner_->PostDelayedTask(
@@ -195,7 +195,7 @@
           },
           base::Unretained(this), base::Unretained(&delegate),
           base::Unretained(&proxy)),
-      base::TimeDelta::FromMilliseconds(1));
+      base::Milliseconds(1));
   run_loop_.Run();
 }
 
diff --git a/remoting/host/desktop_session_win.cc b/remoting/host/desktop_session_win.cc
index 0d6af364..0ba25b2 100644
--- a/remoting/host/desktop_session_win.cc
+++ b/remoting/host/desktop_session_win.cc
@@ -677,9 +677,9 @@
 
   ReportElapsedTime("started monitoring");
 
-  session_attach_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromSeconds(kSessionAttachTimeoutSeconds),
-      this, &DesktopSessionWin::OnSessionAttachTimeout);
+  session_attach_timer_.Start(FROM_HERE,
+                              base::Seconds(kSessionAttachTimeoutSeconds), this,
+                              &DesktopSessionWin::OnSessionAttachTimeout);
 
   monitoring_notifications_ = true;
   monitor_->AddWtsTerminalObserver(terminal_id, this);
@@ -816,8 +816,8 @@
     ReportElapsedTime("detached");
 
     session_attach_timer_.Start(
-        FROM_HERE, base::TimeDelta::FromSeconds(kSessionAttachTimeoutSeconds),
-        this, &DesktopSessionWin::OnSessionAttachTimeout);
+        FROM_HERE, base::Seconds(kSessionAttachTimeoutSeconds), this,
+        &DesktopSessionWin::OnSessionAttachTimeout);
   }
 }
 
diff --git a/remoting/host/disconnect_window_win.cc b/remoting/host/disconnect_window_win.cc
index 1b5da6f..3e49653 100644
--- a/remoting/host/disconnect_window_win.cc
+++ b/remoting/host/disconnect_window_win.cc
@@ -46,7 +46,7 @@
 constexpr int kWindowTextMargin = 8;
 
 // The amount of time to wait before hiding the disconnect window.
-constexpr base::TimeDelta kAutoHideTimeout = base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kAutoHideTimeout = base::Seconds(10);
 
 // The length of the hide and show animations.
 constexpr DWORD kAnimationDurationMs = 200;
diff --git a/remoting/host/ftl_signaling_connector.cc b/remoting/host/ftl_signaling_connector.cc
index 2c17a527..79ba735 100644
--- a/remoting/host/ftl_signaling_connector.cc
+++ b/remoting/host/ftl_signaling_connector.cc
@@ -19,8 +19,8 @@
 
 namespace {
 
-constexpr base::TimeDelta kBackoffResetDelay = base::TimeDelta::FromSeconds(30);
-constexpr base::TimeDelta kNetworkChangeDelay = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kBackoffResetDelay = base::Seconds(30);
+constexpr base::TimeDelta kNetworkChangeDelay = base::Seconds(5);
 
 const net::BackoffEntry::Policy kBackoffPolicy = {
     // Number of initial errors (in sequence) to ignore before applying
diff --git a/remoting/host/heartbeat_sender.cc b/remoting/host/heartbeat_sender.cc
index bfc08de1..55239969 100644
--- a/remoting/host/heartbeat_sender.cc
+++ b/remoting/host/heartbeat_sender.cc
@@ -72,14 +72,10 @@
             "Not implemented."
         })");
 
-constexpr base::TimeDelta kMinimumHeartbeatInterval =
-    base::TimeDelta::FromMinutes(3);
-constexpr base::TimeDelta kHeartbeatResponseTimeout =
-    base::TimeDelta::FromSeconds(30);
-constexpr base::TimeDelta kResendDelayOnHostNotFound =
-    base::TimeDelta::FromSeconds(10);
-constexpr base::TimeDelta kResendDelayOnUnauthenticated =
-    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kMinimumHeartbeatInterval = base::Minutes(3);
+constexpr base::TimeDelta kHeartbeatResponseTimeout = base::Seconds(30);
+constexpr base::TimeDelta kResendDelayOnHostNotFound = base::Seconds(10);
+constexpr base::TimeDelta kResendDelayOnUnauthenticated = base::Seconds(10);
 
 constexpr int kMaxResendOnHostNotFoundCount =
     12;  // 2 minutes (12 x 10 seconds).
@@ -360,7 +356,7 @@
   base::TimeDelta delay;
   switch (status.error_code()) {
     case ProtobufHttpStatus::Code::OK:
-      delay = base::TimeDelta::FromSeconds(response->set_interval_seconds());
+      delay = base::Seconds(response->set_interval_seconds());
       if (delay < kMinimumHeartbeatInterval) {
         LOG(WARNING) << "Received suspicious set_interval_seconds: " << delay
                      << ". Using minimum interval: "
diff --git a/remoting/host/heartbeat_sender_unittest.cc b/remoting/host/heartbeat_sender_unittest.cc
index 9f928c0..1e9fc9246 100644
--- a/remoting/host/heartbeat_sender_unittest.cc
+++ b/remoting/host/heartbeat_sender_unittest.cc
@@ -50,11 +50,9 @@
 constexpr int32_t kGoodIntervalSeconds = 300;
 
 constexpr base::TimeDelta kWaitForAllStrategiesConnectedTimeout =
-    base::TimeDelta::FromSecondsD(5.5);
-constexpr base::TimeDelta kOfflineReasonTimeout =
-    base::TimeDelta::FromSeconds(123);
-constexpr base::TimeDelta kTestHeartbeatDelay =
-    base::TimeDelta::FromSeconds(350);
+    base::Seconds(5.5);
+constexpr base::TimeDelta kOfflineReasonTimeout = base::Seconds(123);
+constexpr base::TimeDelta kTestHeartbeatDelay = base::Seconds(350);
 
 void ValidateHeartbeat(std::unique_ptr<apis::v1::HeartbeatRequest> request,
                        bool expected_is_initial_heartbeat = false,
diff --git a/remoting/host/input_injector_mac.cc b/remoting/host/input_injector_mac.cc
index e4ebe689..d521e9b 100644
--- a/remoting/host/input_injector_mac.cc
+++ b/remoting/host/input_injector_mac.cc
@@ -402,7 +402,7 @@
 void InputInjectorMac::Core::WakeUpDisplay() {
   base::TimeTicks now = base::TimeTicks::Now();
   if (now - last_time_display_woken_ <
-      base::TimeDelta::FromMilliseconds(kWakeUpDisplayIntervalMs)) {
+      base::Milliseconds(kWakeUpDisplayIntervalMs)) {
     return;
   }
 
diff --git a/remoting/host/input_injector_x11.cc b/remoting/host/input_injector_x11.cc
index 369b4b6..a60f5f1 100644
--- a/remoting/host/input_injector_x11.cc
+++ b/remoting/host/input_injector_x11.cc
@@ -79,8 +79,7 @@
 const float kWheelTicksPerPixel = 3.0f / 160.0f;
 
 // When the user is scrolling, generate at least one tick per time period.
-const base::TimeDelta kContinuousScrollTimeout =
-    base::TimeDelta::FromMilliseconds(500);
+const base::TimeDelta kContinuousScrollTimeout = base::Milliseconds(500);
 
 // A class to generate events on X11.
 class InputInjectorX11 : public InputInjector {
diff --git a/remoting/host/it2me/it2me_confirmation_dialog_linux.cc b/remoting/host/it2me/it2me_confirmation_dialog_linux.cc
index d45e0af..350aac92 100644
--- a/remoting/host/it2me/it2me_confirmation_dialog_linux.cc
+++ b/remoting/host/it2me/it2me_confirmation_dialog_linux.cc
@@ -27,7 +27,7 @@
 namespace {
 
 // Time to wait before closing the dialog and cancelling the connection.
-constexpr base::TimeDelta kDialogTimeout = base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kDialogTimeout = base::Minutes(1);
 
 class It2MeConfirmationDialogLinux : public It2MeConfirmationDialog {
  public:
diff --git a/remoting/host/it2me/it2me_confirmation_dialog_mac.mm b/remoting/host/it2me/it2me_confirmation_dialog_mac.mm
index 4b5ac3e..52024fe 100644
--- a/remoting/host/it2me/it2me_confirmation_dialog_mac.mm
+++ b/remoting/host/it2me/it2me_confirmation_dialog_mac.mm
@@ -44,7 +44,7 @@
 
 namespace {
 // Time to wait before closing the dialog and cancelling the connection.
-constexpr base::TimeDelta kDialogTimeout = base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kDialogTimeout = base::Minutes(1);
 }
 
 // Bridge between C++ and ObjC implementations of It2MeConfirmationDialog.
diff --git a/remoting/host/it2me/it2me_confirmation_dialog_win.cc b/remoting/host/it2me/it2me_confirmation_dialog_win.cc
index 17d6637..95cfd321 100644
--- a/remoting/host/it2me/it2me_confirmation_dialog_win.cc
+++ b/remoting/host/it2me/it2me_confirmation_dialog_win.cc
@@ -27,7 +27,7 @@
 namespace {
 
 // Time to wait before closing the dialog and cancelling the connection.
-constexpr base::TimeDelta kDialogTimeout = base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kDialogTimeout = base::Minutes(1);
 
 class It2MeConfirmationDialogWin : public It2MeConfirmationDialog {
  public:
diff --git a/remoting/host/it2me/it2me_host.cc b/remoting/host/it2me/it2me_host.cc
index 2631a7f..9ee7e8d 100644
--- a/remoting/host/it2me/it2me_host.cc
+++ b/remoting/host/it2me/it2me_host.cc
@@ -61,8 +61,7 @@
 
 // The amount of time to wait before destroying the signal strategy.  This delay
 // ensures there is time for the session-terminate message to be sent.
-constexpr base::TimeDelta kDestroySignalingDelay =
-    base::TimeDelta::FromSeconds(2);
+constexpr base::TimeDelta kDestroySignalingDelay = base::Seconds(2);
 
 }  // namespace
 
diff --git a/remoting/host/it2me/it2me_host_unittest.cc b/remoting/host/it2me/it2me_host_unittest.cc
index 71d126b9..13bb58d 100644
--- a/remoting/host/it2me/it2me_host_unittest.cc
+++ b/remoting/host/it2me/it2me_host_unittest.cc
@@ -300,8 +300,7 @@
 
   protocol::IceConfig ice_config;
   ice_config.stun_servers.push_back(rtc::SocketAddress(kTestStunServer, 100));
-  ice_config.expiration_time =
-      base::Time::Now() + base::TimeDelta::FromHours(2);
+  ice_config.expiration_time = base::Time::Now() + base::Hours(2);
 
   auto fake_signal_strategy =
       std::make_unique<FakeSignalStrategy>(SignalingAddress("fake_local_jid"));
diff --git a/remoting/host/it2me/it2me_native_messaging_host_ash.cc b/remoting/host/it2me/it2me_native_messaging_host_ash.cc
index bd23f3d..697156b 100644
--- a/remoting/host/it2me/it2me_native_messaging_host_ash.cc
+++ b/remoting/host/it2me/it2me_native_messaging_host_ash.cc
@@ -234,8 +234,7 @@
       return;
     }
     remote_->OnHostStateReceivedAccessCode(
-        *access_code,
-        base::TimeDelta::FromSeconds(access_code_lifetime.value()));
+        *access_code, base::Seconds(access_code_lifetime.value()));
   } else if (*new_state == kHostStateConnecting) {
     remote_->OnHostStateConnecting();
   } else if (*new_state == kHostStateConnected) {
diff --git a/remoting/host/it2me/it2me_native_messaging_host_unittest.cc b/remoting/host/it2me/it2me_native_messaging_host_unittest.cc
index af3cff2..d8b9c8e 100644
--- a/remoting/host/it2me/it2me_native_messaging_host_unittest.cc
+++ b/remoting/host/it2me/it2me_native_messaging_host_unittest.cc
@@ -49,8 +49,7 @@
 namespace {
 
 const char kTestAccessCode[] = "888888";
-constexpr base::TimeDelta kTestAccessCodeLifetime =
-    base::TimeDelta::FromSeconds(666);
+constexpr base::TimeDelta kTestAccessCodeLifetime = base::Seconds(666);
 const char kTestClientUsername[] = "some_user@gmail.com";
 const char kTestStunServer[] = "test_relay_server.com";
 
diff --git a/remoting/host/keyboard_layout_monitor_chromeos.cc b/remoting/host/keyboard_layout_monitor_chromeos.cc
index 9d848b3..783b205 100644
--- a/remoting/host/keyboard_layout_monitor_chromeos.cc
+++ b/remoting/host/keyboard_layout_monitor_chromeos.cc
@@ -88,7 +88,7 @@
       FROM_HERE,
       base::BindOnce(&KeyboardLayoutMonitorChromeOs::QueryLayout,
                      weak_ptr_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(500));
+      base::Milliseconds(500));
 }
 
 void KeyboardLayoutMonitorChromeOs::QueryLayout() {
diff --git a/remoting/host/keyboard_layout_monitor_win.cc b/remoting/host/keyboard_layout_monitor_win.cc
index eca0c82..05ed41c0 100644
--- a/remoting/host/keyboard_layout_monitor_win.cc
+++ b/remoting/host/keyboard_layout_monitor_win.cc
@@ -34,8 +34,7 @@
 
 namespace {
 
-constexpr base::TimeDelta POLL_INTERVAL =
-    base::TimeDelta::FromMilliseconds(1000);
+constexpr base::TimeDelta POLL_INTERVAL = base::Milliseconds(1000);
 // If second is equivalent to first (generates the same functions/characters at
 // all shift levels), second will be removed from the map.
 constexpr std::pair<ui::DomCode, ui::DomCode> POSSIBLE_EQUIVALENTS[] = {
diff --git a/remoting/host/linux/audio_pipe_reader.cc b/remoting/host/linux/audio_pipe_reader.cc
index 031179e1..6f5f039 100644
--- a/remoting/host/linux/audio_pipe_reader.cc
+++ b/remoting/host/linux/audio_pipe_reader.cc
@@ -123,8 +123,8 @@
     }
 
     // Read from the pipe twice per buffer length, to avoid starving the stream.
-    capture_period_ = base::TimeDelta::FromSeconds(1) * pipe_buffer_size_ /
-                      kSampleBytesPerSecond / 2;
+    capture_period_ =
+        base::Seconds(1) * pipe_buffer_size_ / kSampleBytesPerSecond / 2;
 
     WaitForPipeReadable();
   }
diff --git a/remoting/host/linux/audio_pipe_reader_unittest.cc b/remoting/host/linux/audio_pipe_reader_unittest.cc
index e003f28..f93bde22 100644
--- a/remoting/host/linux/audio_pipe_reader_unittest.cc
+++ b/remoting/host/linux/audio_pipe_reader_unittest.cc
@@ -117,7 +117,7 @@
   base::TimeDelta time_passed = base::TimeTicks::Now() - start_time;
 
   EXPECT_EQ(test_data, read_data_);
-  EXPECT_GE(time_passed, base::TimeDelta::FromMilliseconds(500));
+  EXPECT_GE(time_passed, base::Milliseconds(500));
 }
 
 }  // namespace remoting
diff --git a/remoting/host/linux/certificate_watcher.cc b/remoting/host/linux/certificate_watcher.cc
index c1bf2b04..725db07 100644
--- a/remoting/host/linux/certificate_watcher.cc
+++ b/remoting/host/linux/certificate_watcher.cc
@@ -177,7 +177,7 @@
     : restart_action_(restart_action),
       caller_task_runner_(base::ThreadTaskRunnerHandle::Get()),
       io_task_runner_(io_task_runner),
-      delay_(base::TimeDelta::FromSeconds(kReadDelayInSeconds)) {
+      delay_(base::Seconds(kReadDelayInSeconds)) {
   if (!base::PathService::Get(base::DIR_HOME, &cert_watch_path_)) {
     LOG(FATAL) << "Failed to get path of the home directory.";
   }
diff --git a/remoting/host/linux/certificate_watcher_unittest.cc b/remoting/host/linux/certificate_watcher_unittest.cc
index 4e5f1e9..e15751df 100644
--- a/remoting/host/linux/certificate_watcher_unittest.cc
+++ b/remoting/host/linux/certificate_watcher_unittest.cc
@@ -34,7 +34,7 @@
         base::BindRepeating(&CertificateWatcherTest::OnRestart,
                             base::Unretained(this)),
         task_runner_);
-    watcher_->SetDelayForTests(base::TimeDelta::FromSeconds(0));
+    watcher_->SetDelayForTests(base::Seconds(0));
     watcher_->SetWatchPathForTests(temp_dir_.GetPath());
   }
 
@@ -99,8 +99,7 @@
   base::ScopedTempDir temp_dir_;
   std::unique_ptr<CertificateWatcher> watcher_;
   int restart_count_ = 0;
-  base::TimeDelta loop_wait_ =
-      base::TimeDelta::FromMilliseconds(kMessageLoopWaitMsecs);
+  base::TimeDelta loop_wait_ = base::Milliseconds(kMessageLoopWaitMsecs);
   base::RepeatingClosure quit_loop_closure_;
 
  private:
diff --git a/remoting/host/linux/x11_character_injector.cc b/remoting/host/linux/x11_character_injector.cc
index 85bd25aa..fffe550 100644
--- a/remoting/host/linux/x11_character_injector.cc
+++ b/remoting/host/linux/x11_character_injector.cc
@@ -11,8 +11,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kMappingExpireDuration =
-    base::TimeDelta::FromMilliseconds(200);
+constexpr base::TimeDelta kMappingExpireDuration = base::Milliseconds(200);
 
 }  // namespace
 
diff --git a/remoting/host/linux/x11_character_injector_unittest.cc b/remoting/host/linux/x11_character_injector_unittest.cc
index 45e97170..84cffc6 100644
--- a/remoting/host/linux/x11_character_injector_unittest.cc
+++ b/remoting/host/linux/x11_character_injector_unittest.cc
@@ -14,8 +14,7 @@
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace {
-  constexpr base::TimeDelta kKeycodeReuseDuration =
-      base::TimeDelta::FromMilliseconds(100);
+constexpr base::TimeDelta kKeycodeReuseDuration = base::Milliseconds(100);
 }
 
 namespace remoting {
diff --git a/remoting/host/linux/x_server_clipboard.cc b/remoting/host/linux/x_server_clipboard.cc
index dc3d823fd..fd00606 100644
--- a/remoting/host/linux/x_server_clipboard.cc
+++ b/remoting/host/linux/x_server_clipboard.cc
@@ -133,8 +133,7 @@
   // A reasonable timeout allows for misbehaving apps that don't respond
   // quickly to our requests.
   if (!get_selections_time_.is_null() &&
-      (base::TimeTicks::Now() - get_selections_time_) <
-          base::TimeDelta::FromSeconds(5)) {
+      (base::TimeTicks::Now() - get_selections_time_) < base::Seconds(5)) {
     // TODO(lambroslambrou): Instead of ignoring this notification, cancel any
     // pending request operations and ignore the resulting events, before
     // dispatching new requests here.
diff --git a/remoting/host/mac/host_service_main.cc b/remoting/host/mac/host_service_main.cc
index 227ec29..490474f8 100644
--- a/remoting/host/mac/host_service_main.cc
+++ b/remoting/host/mac/host_service_main.cc
@@ -48,8 +48,7 @@
 constexpr int kSigtermExitCode = 128 + SIGTERM;
 
 // Constants controlling the host process relaunch throttling.
-constexpr base::TimeDelta kMinimumRelaunchInterval =
-    base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kMinimumRelaunchInterval = base::Minutes(1);
 constexpr int kMaximumHostFailures = 10;
 
 // Exit code 126 is defined by Posix to mean "Command found, but not
diff --git a/remoting/host/mac/permission_wizard.mm b/remoting/host/mac/permission_wizard.mm
index 0004c38..7d2f150 100644
--- a/remoting/host/mac/permission_wizard.mm
+++ b/remoting/host/mac/permission_wizard.mm
@@ -28,7 +28,7 @@
 
 // Interval between permission checks, used to update the UI when the user
 // grants permission.
-constexpr base::TimeDelta kPollingInterval = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kPollingInterval = base::Seconds(1);
 
 // The steps of the wizard.
 enum class WizardPage {
diff --git a/remoting/host/mojo_ipc/mojo_ipc_server_unittest.cc b/remoting/host/mojo_ipc/mojo_ipc_server_unittest.cc
index 8f03ac0..b75e54d 100644
--- a/remoting/host/mojo_ipc/mojo_ipc_server_unittest.cc
+++ b/remoting/host/mojo_ipc/mojo_ipc_server_unittest.cc
@@ -146,7 +146,7 @@
   // For posix, the socket doesn't seem to be closed immediately after the
   // isolated connection is deleted, so we wait for 1s to make sure the socket
   // is really closed.
-  base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(1));
+  base::PlatformThread::Sleep(base::Seconds(1));
 
   auto endpoint = ConnectToTestServer();
   ASSERT_FALSE(endpoint.is_valid());
diff --git a/remoting/host/mouse_shape_pump.cc b/remoting/host/mouse_shape_pump.cc
index 8ca7331..6078a4fd 100644
--- a/remoting/host/mouse_shape_pump.cc
+++ b/remoting/host/mouse_shape_pump.cc
@@ -29,7 +29,7 @@
   mouse_cursor_monitor_->Init(this,
                               webrtc::MouseCursorMonitor::SHAPE_AND_POSITION);
   capture_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(kCursorCaptureIntervalMs),
+      FROM_HERE, base::Milliseconds(kCursorCaptureIntervalMs),
       base::BindRepeating(&MouseShapePump::Capture, base::Unretained(this)));
 }
 
diff --git a/remoting/host/process_stats_sender_unittest.cc b/remoting/host/process_stats_sender_unittest.cc
index 9222630..dae8de09 100644
--- a/remoting/host/process_stats_sender_unittest.cc
+++ b/remoting/host/process_stats_sender_unittest.cc
@@ -120,8 +120,8 @@
       base::BindOnce(
           [](std::unique_ptr<ProcessStatsSender>* stats,
              FakeProcessStatsStub* stub, FakeProcessStatsAgent* agent) -> void {
-            stats->reset(new ProcessStatsSender(
-                stub, base::TimeDelta::FromMilliseconds(1), { agent }));
+            stats->reset(
+                new ProcessStatsSender(stub, base::Milliseconds(1), {agent}));
           },
           base::Unretained(&stats), base::Unretained(&stub),
           base::Unretained(&agent)));
@@ -160,9 +160,8 @@
           [](std::unique_ptr<ProcessStatsSender>* stats,
              FakeProcessStatsStub* stub, FakeProcessStatsAgent* agent1,
              FakeProcessStatsAgent* agent2) -> void {
-            stats->reset(new ProcessStatsSender(
-                stub, base::TimeDelta::FromMilliseconds(1),
-                { agent1, agent2 } ));
+            stats->reset(new ProcessStatsSender(stub, base::Milliseconds(1),
+                                                {agent1, agent2}));
           },
           base::Unretained(&stats), base::Unretained(&stub),
           base::Unretained(&agent1), base::Unretained(&agent2)));
diff --git a/remoting/host/remote_open_url/remote_open_url_client.cc b/remoting/host/remote_open_url/remote_open_url_client.cc
index ae5c776..c26d151b 100644
--- a/remoting/host/remote_open_url/remote_open_url_client.cc
+++ b/remoting/host/remote_open_url/remote_open_url_client.cc
@@ -24,7 +24,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kRequestTimeout = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kRequestTimeout = base::Seconds(5);
 
 std::unique_ptr<RemoteOpenUrlClient::Delegate> CreateDelegate() {
 #if defined(OS_LINUX)
diff --git a/remoting/host/remote_open_url/remote_open_url_client_unittest.cc b/remoting/host/remote_open_url/remote_open_url_client_unittest.cc
index 243022b..63bc782 100644
--- a/remoting/host/remote_open_url/remote_open_url_client_unittest.cc
+++ b/remoting/host/remote_open_url/remote_open_url_client_unittest.cc
@@ -30,8 +30,7 @@
 
 // The IPC channel doesn't work if we use a mock clock, so we just reduce the
 // timeout to shorten the test time.
-constexpr base::TimeDelta kTestRequestTimeout =
-    base::TimeDelta::FromMilliseconds(500);
+constexpr base::TimeDelta kTestRequestTimeout = base::Milliseconds(500);
 
 class MockRemoteOpenUrlClientDelegate : public RemoteOpenUrlClient::Delegate {
  public:
diff --git a/remoting/host/remote_open_url/url_forwarder_configurator_main_win.cc b/remoting/host/remote_open_url/url_forwarder_configurator_main_win.cc
index 6465c372..ec8be11 100644
--- a/remoting/host/remote_open_url/url_forwarder_configurator_main_win.cc
+++ b/remoting/host/remote_open_url/url_forwarder_configurator_main_win.cc
@@ -41,9 +41,8 @@
 
 constexpr wchar_t kProtocolToTestSetup[] = L"http";
 
-constexpr base::TimeDelta kPollingInterval =
-    base::TimeDelta::FromMilliseconds(500);
-constexpr base::TimeDelta kPollingTimeout = base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kPollingInterval = base::Milliseconds(500);
+constexpr base::TimeDelta kPollingTimeout = base::Minutes(1);
 
 // Returns the current default browser's ProgID, or an empty string if failed.
 std::wstring GetDefaultBrowserProgId() {
diff --git a/remoting/host/remote_open_url/url_forwarder_configurator_win.cc b/remoting/host/remote_open_url/url_forwarder_configurator_win.cc
index 341903d..21b52d5 100644
--- a/remoting/host/remote_open_url/url_forwarder_configurator_win.cc
+++ b/remoting/host/remote_open_url/url_forwarder_configurator_win.cc
@@ -38,7 +38,7 @@
 // delay reporting USER_INTERVENTION_REQUIRED so that the client doesn't pop up
 // a toast when it's unnecessary.
 constexpr base::TimeDelta kReportUserInterventionRequiredDelay =
-    base::TimeDelta::FromMilliseconds(500);
+    base::Milliseconds(500);
 
 base::win::ScopedHandle GetCurrentUserToken() {
   HANDLE user_token = nullptr;
diff --git a/remoting/host/remoting_me2me_host.cc b/remoting/host/remoting_me2me_host.cc
index e464af7..c6e0f0cc 100644
--- a/remoting/host/remoting_me2me_host.cc
+++ b/remoting/host/remoting_me2me_host.cc
@@ -1610,7 +1610,7 @@
 
   if (max_session_duration_minutes_ > 0) {
     host_->SetMaximumSessionDuration(
-        base::TimeDelta::FromMinutes(max_session_duration_minutes_));
+        base::Minutes(max_session_duration_minutes_));
   }
 
   host_status_logger_ = std::make_unique<HostStatusLogger>(
@@ -1721,8 +1721,7 @@
 
     HOST_LOG << "SendHostOfflineReason: sending " << host_offline_reason << ".";
     heartbeat_sender_->SetHostOfflineReason(
-        host_offline_reason,
-        base::TimeDelta::FromSeconds(kHostOfflineReasonTimeoutSeconds),
+        host_offline_reason, base::Seconds(kHostOfflineReasonTimeoutSeconds),
         base::BindOnce(&HostProcess::OnHostOfflineReasonAck, this));
     return;  // Shutdown will resume after OnHostOfflineReasonAck.
   }
@@ -1827,8 +1826,7 @@
   // TODO(wez): The HostProcess holds a reference to itself until Shutdown().
   // Remove this hack as part of the multi-process refactoring.
   int exit_code = kSuccessExitCode;
-  ShutdownWatchdog shutdown_watchdog(
-      base::TimeDelta::FromSeconds(kShutdownTimeoutSeconds));
+  ShutdownWatchdog shutdown_watchdog(base::Seconds(kShutdownTimeoutSeconds));
   new HostProcess(std::move(context), &exit_code, &shutdown_watchdog);
 
   // Run the main (also UI) task executor until the host no longer needs it.
diff --git a/remoting/host/remoting_register_support_host_request.cc b/remoting/host/remoting_register_support_host_request.cc
index cfdc8b1..b8b51b56 100644
--- a/remoting/host/remoting_register_support_host_request.cc
+++ b/remoting/host/remoting_register_support_host_request.cc
@@ -199,7 +199,7 @@
   }
   state_ = State::REGISTERED;
   base::TimeDelta lifetime =
-      base::TimeDelta::FromSeconds(response->support_id_lifetime_seconds());
+      base::Seconds(response->support_id_lifetime_seconds());
   RunCallback(response->support_id(), lifetime, protocol::ErrorCode::OK);
 }
 
diff --git a/remoting/host/remoting_register_support_host_request_unittest.cc b/remoting/host/remoting_register_support_host_request_unittest.cc
index 8f628ac7..0d2e4e8a 100644
--- a/remoting/host/remoting_register_support_host_request_unittest.cc
+++ b/remoting/host/remoting_register_support_host_request_unittest.cc
@@ -28,7 +28,7 @@
     std::unique_ptr<apis::v1::RegisterSupportHostResponse>)>;
 
 constexpr char kSupportId[] = "123321456654";
-constexpr base::TimeDelta kSupportIdLifetime = base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kSupportIdLifetime = base::Minutes(5);
 constexpr char kFtlId[] = "fake_user@domain.com/chromoting_ftl_abc123";
 
 void ValidateRegisterHost(const apis::v1::RegisterSupportHostRequest& request) {
diff --git a/remoting/host/resizing_host_observer.cc b/remoting/host/resizing_host_observer.cc
index 1598bfe..ed5cd5d 100644
--- a/remoting/host/resizing_host_observer.cc
+++ b/remoting/host/resizing_host_observer.cc
@@ -146,8 +146,7 @@
   // Resizing the desktop too often is probably not a good idea, so apply a
   // simple rate-limiting scheme.
   base::TimeTicks next_allowed_resize =
-      previous_resize_time_ +
-      base::TimeDelta::FromMilliseconds(kMinimumResizeIntervalMs);
+      previous_resize_time_ + base::Milliseconds(kMinimumResizeIntervalMs);
 
   if (now < next_allowed_resize) {
     deferred_resize_timer_.Start(
diff --git a/remoting/host/resizing_host_observer_unittest.cc b/remoting/host/resizing_host_observer_unittest.cc
index 2a1896e4..ec43e60 100644
--- a/remoting/host/resizing_host_observer_unittest.cc
+++ b/remoting/host/resizing_host_observer_unittest.cc
@@ -116,7 +116,7 @@
   void SetScreenResolution(const ScreenResolution& client_size) {
     resizing_host_observer_->SetScreenResolution(client_size);
     if (auto_advance_clock_)
-      clock_.Advance(base::TimeDelta::FromSeconds(1));
+      clock_.Advance(base::Seconds(1));
   }
 
   ScreenResolution GetBestResolution(const ScreenResolution& client_size) {
@@ -290,13 +290,13 @@
 
   EXPECT_EQ(MakeResolution(100, 100),
             GetBestResolution(MakeResolution(100, 100)));
-  clock_.Advance(base::TimeDelta::FromMilliseconds(900));
+  clock_.Advance(base::Milliseconds(900));
   EXPECT_EQ(MakeResolution(100, 100),
             GetBestResolution(MakeResolution(200, 200)));
-  clock_.Advance(base::TimeDelta::FromMilliseconds(99));
+  clock_.Advance(base::Milliseconds(99));
   EXPECT_EQ(MakeResolution(100, 100),
             GetBestResolution(MakeResolution(300, 300)));
-  clock_.Advance(base::TimeDelta::FromMilliseconds(1));
+  clock_.Advance(base::Milliseconds(1));
 
   // Due to the kMinimumResizeIntervalMs constant in resizing_host_observer.cc,
   // We need to wait a total of 1000ms for the final resize to be processed.
@@ -304,7 +304,7 @@
   // additional 1ms. However, since RunLoop is not guaranteed to process tasks
   // with the same due time in FIFO order, wait an additional 1ms for safety.
   task_environment.GetMainThreadTaskRunner()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(), base::TimeDelta::FromMilliseconds(2));
+      FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(2));
   run_loop.Run();
 
   // If the QuitClosure fired before the final resize, it's a test failure.
diff --git a/remoting/host/security_key/security_key_auth_handler_posix.cc b/remoting/host/security_key/security_key_auth_handler_posix.cc
index 98fb632..c4ae428 100644
--- a/remoting/host/security_key/security_key_auth_handler_posix.cc
+++ b/remoting/host/security_key/security_key_auth_handler_posix.cc
@@ -149,8 +149,7 @@
 SecurityKeyAuthHandlerPosix::SecurityKeyAuthHandlerPosix(
     scoped_refptr<base::SingleThreadTaskRunner> file_task_runner)
     : file_task_runner_(file_task_runner),
-      request_timeout_(
-          base::TimeDelta::FromSeconds(kDefaultRequestTimeoutSeconds)) {}
+      request_timeout_(base::Seconds(kDefaultRequestTimeoutSeconds)) {}
 
 SecurityKeyAuthHandlerPosix::~SecurityKeyAuthHandlerPosix() {
   DCHECK(thread_checker_.CalledOnValidThread());
diff --git a/remoting/host/security_key/security_key_auth_handler_win.cc b/remoting/host/security_key/security_key_auth_handler_win.cc
index c8c7b23..20826d06 100644
--- a/remoting/host/security_key/security_key_auth_handler_win.cc
+++ b/remoting/host/security_key/security_key_auth_handler_win.cc
@@ -33,13 +33,11 @@
 
 // The timeout used to disconnect a client from the IPC Server channel if it
 // forgets to do so.  This ensures the server channel is not blocked forever.
-constexpr base::TimeDelta kInitialRequestTimeout =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kInitialRequestTimeout = base::Seconds(5);
 
 // This value represents the amount of time to wait for a security key request
 // from the client before terminating the connection.
-constexpr base::TimeDelta kSecurityKeyRequestTimeout =
-    base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kSecurityKeyRequestTimeout = base::Seconds(60);
 
 }  // namespace
 
diff --git a/remoting/host/security_key/security_key_extension_session_unittest.cc b/remoting/host/security_key/security_key_extension_session_unittest.cc
index b3836c7..08aa749 100644
--- a/remoting/host/security_key/security_key_extension_session_unittest.cc
+++ b/remoting/host/security_key/security_key_extension_session_unittest.cc
@@ -203,8 +203,7 @@
 SecurityKeyExtensionSessionTest::~SecurityKeyExtensionSessionTest() = default;
 
 void SecurityKeyExtensionSessionTest::WaitForAndVerifyHostMessage() {
-  client_stub_.WaitForDeliverHostMessage(
-      base::TimeDelta::FromMilliseconds(500));
+  client_stub_.WaitForDeliverHostMessage(base::Milliseconds(500));
   base::ListValue expected_data;
 
   // Skip first four bytes.
@@ -462,8 +461,7 @@
   // Inject data into SendMessageCallback to simulate a security key request.
   mock_security_key_auth_handler_->GetSendMessageCallback().Run(42, "test_msg");
 
-  client_stub_.WaitForDeliverHostMessage(
-      base::TimeDelta::FromMilliseconds(500));
+  client_stub_.WaitForDeliverHostMessage(base::Milliseconds(500));
 
   // Expects a JSON array of the ASCII character codes for "test_msg".
   client_stub_.CheckHostDataMessage(42, "[116,101,115,116,95,109,115,103]");
diff --git a/remoting/host/security_key/security_key_ipc_client_unittest.cc b/remoting/host/security_key/security_key_ipc_client_unittest.cc
index 6db51244..70def344 100644
--- a/remoting/host/security_key/security_key_ipc_client_unittest.cc
+++ b/remoting/host/security_key/security_key_ipc_client_unittest.cc
@@ -121,7 +121,7 @@
       fake_ipc_server_(
           kTestConnectionId,
           /*client_session_details=*/nullptr,
-          /*initial_connect_timeout=*/base::TimeDelta::FromMilliseconds(500),
+          /*initial_connect_timeout=*/base::Milliseconds(500),
           base::BindRepeating(&SecurityKeyIpcClientTest::SendMessageToClient,
                               base::Unretained(this)),
           base::BindOnce(&SecurityKeyIpcClientTest::SendConnectionMessage,
@@ -200,7 +200,7 @@
   security_key_ipc_client_.SetIpcChannelHandleForTest(server_name);
   ASSERT_TRUE(fake_ipc_server_.CreateChannel(
       server_name,
-      /*request_timeout=*/base::TimeDelta::FromMilliseconds(500)));
+      /*request_timeout=*/base::Milliseconds(500)));
 
   ASSERT_TRUE(security_key_ipc_client_.CheckForSecurityKeyIpcServerChannel());
 
diff --git a/remoting/host/security_key/security_key_ipc_server_unittest.cc b/remoting/host/security_key/security_key_ipc_server_unittest.cc
index f667021e..4cf3489 100644
--- a/remoting/host/security_key/security_key_ipc_server_unittest.cc
+++ b/remoting/host/security_key/security_key_ipc_server_unittest.cc
@@ -101,8 +101,7 @@
 #endif  // defined(OS_WIN)
 
   security_key_ipc_server_ = remoting::SecurityKeyIpcServer::Create(
-      kTestConnectionId, this,
-      base::TimeDelta::FromMilliseconds(kInitialConnectTimeoutMs),
+      kTestConnectionId, this, base::Milliseconds(kInitialConnectTimeoutMs),
       base::BindRepeating(&SecurityKeyIpcServerTest::SendRequestToClient,
                           base::Unretained(this)),
       base::DoNothing(),
@@ -150,7 +149,7 @@
       GetUniqueTestChannelName();
   ASSERT_TRUE(security_key_ipc_server_->CreateChannel(
       server_name,
-      /*request_timeout=*/base::TimeDelta::FromMilliseconds(500)));
+      /*request_timeout=*/base::Milliseconds(500)));
 
   // Create a fake client and connect to the IPC server channel.
   FakeSecurityKeyIpcClient fake_ipc_client(base::BindRepeating(
@@ -188,7 +187,7 @@
       GetUniqueTestChannelName();
   ASSERT_TRUE(security_key_ipc_server_->CreateChannel(
       server_name,
-      /*request_timeout=*/base::TimeDelta::FromMilliseconds(500)));
+      /*request_timeout=*/base::Milliseconds(500)));
 
   // Create a fake client and connect to the IPC server channel.
   FakeSecurityKeyIpcClient fake_ipc_client(base::BindRepeating(
@@ -226,7 +225,7 @@
       GetUniqueTestChannelName();
   ASSERT_TRUE(security_key_ipc_server_->CreateChannel(
       server_name,
-      /*request_timeout=*/base::TimeDelta::FromMilliseconds(500)));
+      /*request_timeout=*/base::Milliseconds(500)));
 
   // Create a fake client and connect to the IPC server channel.
   FakeSecurityKeyIpcClient fake_ipc_client(base::BindRepeating(
@@ -264,7 +263,7 @@
       GetUniqueTestChannelName();
   ASSERT_TRUE(security_key_ipc_server_->CreateChannel(
       server_name,
-      /*request_timeout=*/base::TimeDelta::FromMilliseconds(500)));
+      /*request_timeout=*/base::Milliseconds(500)));
 
   // Create a fake client and connect to the IPC server channel.
   FakeSecurityKeyIpcClient fake_ipc_client(base::BindRepeating(
@@ -323,7 +322,7 @@
       GetUniqueTestChannelName();
   ASSERT_TRUE(security_key_ipc_server_->CreateChannel(
       server_name,
-      /*request_timeout=*/base::TimeDelta::FromMilliseconds(500)));
+      /*request_timeout=*/base::Milliseconds(500)));
   base::Time start_time(base::Time::NowFromSystemTime());
   mojo::PlatformChannelEndpoint client_endpoint =
       mojo::NamedPlatformChannel::ConnectToServer(server_name);
@@ -344,7 +343,7 @@
       GetUniqueTestChannelName();
   ASSERT_TRUE(security_key_ipc_server_->CreateChannel(
       server_name,
-      /*request_timeout=*/base::TimeDelta::FromMilliseconds(500)));
+      /*request_timeout=*/base::Milliseconds(500)));
   base::Time start_time(base::Time::NowFromSystemTime());
   mojo::IsolatedConnection mojo_connection;
   mojo::ScopedMessagePipeHandle client_pipe = mojo_connection.Connect(
@@ -370,7 +369,7 @@
       GetUniqueTestChannelName();
   ASSERT_TRUE(security_key_ipc_server_->CreateChannel(
       server_name,
-      /*request_timeout=*/base::TimeDelta::FromMilliseconds(500)));
+      /*request_timeout=*/base::Milliseconds(500)));
 
   // Create a fake client and connect to the IPC server channel.
   FakeSecurityKeyIpcClient fake_ipc_client(base::BindRepeating(
@@ -394,7 +393,7 @@
 TEST_F(SecurityKeyIpcServerTest, SecurityKeyResponseTimeout) {
   // Create a channel, connect to it via IPC, and issue a request, but do
   // not send a response.  This simulates a client-side timeout.
-  base::TimeDelta request_timeout(base::TimeDelta::FromMilliseconds(50));
+  base::TimeDelta request_timeout(base::Milliseconds(50));
   mojo::NamedPlatformChannel::ServerName server_name =
       GetUniqueTestChannelName();
   ASSERT_TRUE(
@@ -428,7 +427,7 @@
   // Create a channel, connect to it via IPC, issue a request, and send
   // a response, but do not close the channel after that.  The connection
   // should be terminated after the initial timeout period has elapsed.
-  base::TimeDelta request_timeout(base::TimeDelta::FromMilliseconds(500));
+  base::TimeDelta request_timeout(base::Milliseconds(500));
   mojo::NamedPlatformChannel::ServerName server_name =
       GetUniqueTestChannelName();
   ASSERT_TRUE(
@@ -478,8 +477,7 @@
       GetUniqueTestChannelName();
   for (int i = 0; i < 100; i++) {
     security_key_ipc_server_ = remoting::SecurityKeyIpcServer::Create(
-        kTestConnectionId, this,
-        base::TimeDelta::FromMilliseconds(kInitialConnectTimeoutMs),
+        kTestConnectionId, this, base::Milliseconds(kInitialConnectTimeoutMs),
         base::BindRepeating(&SecurityKeyIpcServerTest::SendRequestToClient,
                             base::Unretained(this)),
         base::DoNothing(),
@@ -487,7 +485,7 @@
                        base::Unretained(this)));
     ASSERT_TRUE(security_key_ipc_server_->CreateChannel(
         server_name,
-        /*request_timeout=*/base::TimeDelta::FromMilliseconds(500)));
+        /*request_timeout=*/base::Milliseconds(500)));
   }
   // The mojo system posts tasks as part of its cleanup, so run them all.
   base::RunLoop().RunUntilIdle();
@@ -529,7 +527,7 @@
   // Change the expected session ID to not match the current session.
   peer_session_id_++;
 
-  base::TimeDelta request_timeout(base::TimeDelta::FromMilliseconds(500));
+  base::TimeDelta request_timeout(base::Milliseconds(500));
   mojo::NamedPlatformChannel::ServerName server_name =
       GetUniqueTestChannelName();
   ASSERT_TRUE(
diff --git a/remoting/host/setup/host_stopper.cc b/remoting/host/setup/host_stopper.cc
index 0cee2dd..44a8d98 100644
--- a/remoting/host/setup/host_stopper.cc
+++ b/remoting/host/setup/host_stopper.cc
@@ -50,7 +50,7 @@
     stopped =
         (daemon_controller_->GetState() == DaemonController::STATE_STOPPED);
     if (!stopped)
-      base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(1));
+      base::PlatformThread::Sleep(base::Seconds(1));
   }
   if (!stopped)
     LOG(WARNING) << "Unable to stop existing host process. Setup will "
diff --git a/remoting/host/setup/me2me_native_messaging_host.cc b/remoting/host/setup/me2me_native_messaging_host.cc
index bc776ea..c062a26 100644
--- a/remoting/host/setup/me2me_native_messaging_host.cc
+++ b/remoting/host/setup/me2me_native_messaging_host.cc
@@ -594,8 +594,8 @@
     elevated_host_ = std::make_unique<ElevatedNativeMessagingHost>(
         base::CommandLine::ForCurrentProcess()->GetProgram(),
         parent_window_handle_,
-        /*elevate_process=*/true,
-        base::TimeDelta::FromSeconds(kElevatedHostTimeoutSeconds), client_);
+        /*elevate_process=*/true, base::Seconds(kElevatedHostTimeoutSeconds),
+        client_);
   }
 
   ProcessLaunchResult result = elevated_host_->EnsureElevatedHostCreated();
diff --git a/remoting/host/token_validator_base_unittest.cc b/remoting/host/token_validator_base_unittest.cc
index 152749d..206acc9 100644
--- a/remoting/host/token_validator_base_unittest.cc
+++ b/remoting/host/token_validator_base_unittest.cc
@@ -120,23 +120,19 @@
   base::Time now = base::Time::Now();
 
   std::unique_ptr<net::FakeClientCertIdentity> cert_expired_5_minutes_ago =
-      CreateFakeCert(now - base::TimeDelta::FromMinutes(10),
-                     now - base::TimeDelta::FromMinutes(5));
+      CreateFakeCert(now - base::Minutes(10), now - base::Minutes(5));
   ASSERT_TRUE(cert_expired_5_minutes_ago);
 
   std::unique_ptr<net::FakeClientCertIdentity> cert_start_5min_expire_5min =
-      CreateFakeCert(now - base::TimeDelta::FromMinutes(5),
-                     now + base::TimeDelta::FromMinutes(5));
+      CreateFakeCert(now - base::Minutes(5), now + base::Minutes(5));
   ASSERT_TRUE(cert_start_5min_expire_5min);
 
   std::unique_ptr<net::FakeClientCertIdentity> cert_start_10min_expire_5min =
-      CreateFakeCert(now - base::TimeDelta::FromMinutes(10),
-                     now + base::TimeDelta::FromMinutes(5));
+      CreateFakeCert(now - base::Minutes(10), now + base::Minutes(5));
   ASSERT_TRUE(cert_start_10min_expire_5min);
 
   std::unique_ptr<net::FakeClientCertIdentity> cert_start_5min_expire_10min =
-      CreateFakeCert(now - base::TimeDelta::FromMinutes(5),
-                     now + base::TimeDelta::FromMinutes(10));
+      CreateFakeCert(now - base::Minutes(5), now + base::Minutes(10));
   ASSERT_TRUE(cert_start_5min_expire_10min);
 
   // No certificate.
diff --git a/remoting/host/win/rdp_client_window.cc b/remoting/host/win/rdp_client_window.cc
index f46ac0d..7366447 100644
--- a/remoting/host/win/rdp_client_window.cc
+++ b/remoting/host/win/rdp_client_window.cc
@@ -38,8 +38,7 @@
 
 constexpr int kKeyboardStateLength = 256;
 
-constexpr base::TimeDelta kReapplyResolutionPeriod =
-    base::TimeDelta::FromMilliseconds(250);
+constexpr base::TimeDelta kReapplyResolutionPeriod = base::Milliseconds(250);
 
 // We want to try to reapply resolution changes for ~5 seconds (20 * 250ms).
 constexpr int kMaxResolutionReapplyAttempts = 20;
diff --git a/remoting/host/win/worker_process_launcher.cc b/remoting/host/win/worker_process_launcher.cc
index dc1234ba..b944178 100644
--- a/remoting/host/win/worker_process_launcher.cc
+++ b/remoting/host/win/worker_process_launcher.cc
@@ -61,8 +61,7 @@
       launcher_delegate_(std::move(launcher_delegate)),
       exit_code_(CONTROL_C_EXIT),
       ipc_enabled_(false),
-      kill_process_timeout_(
-          base::TimeDelta::FromSeconds(kKillProcessTimeoutSeconds)),
+      kill_process_timeout_(base::Seconds(kKillProcessTimeoutSeconds)),
       launch_backoff_(&kDefaultBackoffPolicy) {
   DCHECK(ipc_handler_ != nullptr);
 
@@ -203,9 +202,9 @@
   exit_code_ = CONTROL_C_EXIT;
 
   // Make sure launching a process will not take forever.
-  launch_result_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromSeconds(kLaunchResultTimeoutSeconds),
-      this, &WorkerProcessLauncher::RecordLaunchResult);
+  launch_result_timer_.Start(FROM_HERE,
+                             base::Seconds(kLaunchResultTimeoutSeconds), this,
+                             &WorkerProcessLauncher::RecordLaunchResult);
 
   launcher_delegate_->LaunchProcess(this);
 }
diff --git a/remoting/host/win/worker_process_launcher_unittest.cc b/remoting/host/win/worker_process_launcher_unittest.cc
index 566263e..4da8176 100644
--- a/remoting/host/win/worker_process_launcher_unittest.cc
+++ b/remoting/host/win/worker_process_launcher_unittest.cc
@@ -336,8 +336,7 @@
   launcher_ = std::make_unique<WorkerProcessLauncher>(
       std::move(launcher_delegate_), &server_listener_);
 
-  launcher_->SetKillProcessTimeoutForTest(
-      base::TimeDelta::FromMilliseconds(100));
+  launcher_->SetKillProcessTimeoutForTest(base::Milliseconds(100));
 }
 
 void WorkerProcessLauncherTest::StopWorker() {
diff --git a/remoting/host/xmpp_register_support_host_request.cc b/remoting/host/xmpp_register_support_host_request.cc
index 0ccaab2..6a756d5 100644
--- a/remoting/host/xmpp_register_support_host_request.cc
+++ b/remoting/host/xmpp_register_support_host_request.cc
@@ -94,8 +94,7 @@
       return;
     }
 
-    request_->SetTimeout(
-        base::TimeDelta::FromSeconds(kRegisterRequestTimeoutInSeconds));
+    request_->SetTimeout(base::Seconds(kRegisterRequestTimeoutInSeconds));
 
   } else if (state == SignalStrategy::DISCONNECTED) {
     // We will reach here if signaling fails to connect.
@@ -226,7 +225,7 @@
   }
 
   *support_id = support_id_element->BodyText();
-  *lifetime = base::TimeDelta::FromSeconds(lifetime_int);
+  *lifetime = base::Seconds(lifetime_int);
   return;
 }
 
diff --git a/remoting/host/xmpp_register_support_host_request_unittest.cc b/remoting/host/xmpp_register_support_host_request_unittest.cc
index 8c9b94c4..357f7d4 100644
--- a/remoting/host/xmpp_register_support_host_request_unittest.cc
+++ b/remoting/host/xmpp_register_support_host_request_unittest.cc
@@ -92,10 +92,10 @@
   request->OnSignalStrategyStateChange(SignalStrategy::CONNECTED);
 
   // Generate response and verify that callback is called.
-  EXPECT_CALL(callback_, Run("", base::TimeDelta::FromSeconds(0),
-                             ErrorCode::SIGNALING_TIMEOUT));
+  EXPECT_CALL(callback_,
+              Run("", base::Seconds(0), ErrorCode::SIGNALING_TIMEOUT));
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(15));
+  task_environment_.FastForwardBy(base::Seconds(15));
 }
 
 TEST_F(XmppRegisterSupportHostRequestTest, Send) {
@@ -157,8 +157,7 @@
   EXPECT_EQ(expected_signature, signature->BodyText());
 
   // Generate response and verify that callback is called.
-  EXPECT_CALL(callback_, Run(kSupportId, base::TimeDelta::FromSeconds(300),
-                             ErrorCode::OK));
+  EXPECT_CALL(callback_, Run(kSupportId, base::Seconds(300), ErrorCode::OK));
 
   std::unique_ptr<XmlElement> response(new XmlElement(jingle_xmpp::QN_IQ));
   response->AddAttr(QName(std::string(), "from"), kTestBotJid);
diff --git a/remoting/host/zombie_host_detector.h b/remoting/host/zombie_host_detector.h
index 365d9a4..52e52266 100644
--- a/remoting/host/zombie_host_detector.h
+++ b/remoting/host/zombie_host_detector.h
@@ -20,11 +20,10 @@
                                  public SignalingTracker {
  public:
   static constexpr base::TimeDelta kZombieStateDetectionInterval =
-      base::TimeDelta::FromMinutes(5);
-  static constexpr base::TimeDelta kMaxHeartbeatInterval =
-      base::TimeDelta::FromMinutes(15);
+      base::Minutes(5);
+  static constexpr base::TimeDelta kMaxHeartbeatInterval = base::Minutes(15);
   static constexpr base::TimeDelta kMaxSignalingActiveInterval =
-      base::TimeDelta::FromMinutes(1);
+      base::Minutes(1);
 
   explicit ZombieHostDetector(base::OnceClosure on_zombie_state_detected);
   ~ZombieHostDetector() override;
diff --git a/remoting/host/zombie_host_detector_unittest.cc b/remoting/host/zombie_host_detector_unittest.cc
index 0c58dfe..283f3cd 100644
--- a/remoting/host/zombie_host_detector_unittest.cc
+++ b/remoting/host/zombie_host_detector_unittest.cc
@@ -15,8 +15,7 @@
 namespace {
 
 // Extra time to fast forward to make sure the task gets run.
-static constexpr base::TimeDelta kFastForwardDelta =
-    base::TimeDelta::FromSeconds(1);
+static constexpr base::TimeDelta kFastForwardDelta = base::Seconds(1);
 
 }  // namespace
 
@@ -60,18 +59,18 @@
 };
 
 TEST_F(ZombieHostDetectorTest, NoEvent_Noop) {
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
 }
 
 TEST_F(ZombieHostDetectorTest, AllEventsAreCurrent_Noop) {
   // Fast forward to 5s before detection.
   task_environment_.FastForwardBy(GetNextDetectionDurationSinceNow() -
-                                  base::TimeDelta::FromSeconds(5));
+                                  base::Seconds(5));
 
   zombie_host_detector_.OnHeartbeatSent();
   zombie_host_detector_.OnSignalingActive();
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(6));
+  task_environment_.FastForwardBy(base::Seconds(6));
 }
 
 TEST_F(ZombieHostDetectorTest, HeartbeatNotCurrent_CallbackCalled) {
@@ -102,7 +101,7 @@
   zombie_host_detector_.OnHeartbeatSent();
   zombie_host_detector_.OnSignalingActive();
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
 }
 
 TEST_F(ZombieHostDetectorTest, NeitherIsCurrentWhileNoConnection_Noop) {
@@ -112,20 +111,20 @@
   network_change_notifier_->SetConnectionType(
       net::NetworkChangeNotifier::CONNECTION_NONE);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
 }
 
 TEST_F(ZombieHostDetectorTest, NoEventAfterComingBackOnline_Noop) {
   network_change_notifier_->SetConnectionType(
       net::NetworkChangeNotifier::CONNECTION_NONE);
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
 
   network_change_notifier_->SetConnectionType(
       net::NetworkChangeNotifier::CONNECTION_ETHERNET);
   task_environment_.FastForwardBy(GetNextDetectionDurationSinceNow() +
                                   kFastForwardDelta);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
 }
 
 TEST_F(ZombieHostDetectorTest, NeitherIsCurrentWhenJustComeBackOnline_Noop) {
@@ -134,7 +133,7 @@
 
   network_change_notifier_->SetConnectionType(
       net::NetworkChangeNotifier::CONNECTION_NONE);
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
 
   network_change_notifier_->SetConnectionType(
       net::NetworkChangeNotifier::CONNECTION_ETHERNET);
@@ -148,7 +147,7 @@
 
   network_change_notifier_->SetConnectionType(
       net::NetworkChangeNotifier::CONNECTION_NONE);
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
 
   network_change_notifier_->SetConnectionType(
       net::NetworkChangeNotifier::CONNECTION_ETHERNET);
diff --git a/remoting/ios/app/notification_presenter.mm b/remoting/ios/app/notification_presenter.mm
index 0bf7138..6b6f0348 100644
--- a/remoting/ios/app/notification_presenter.mm
+++ b/remoting/ios/app/notification_presenter.mm
@@ -31,8 +31,7 @@
 // UserStatusPresenter).
 // TODO(yuweih): Chain this class with UserStatusPresenter on the
 // kUserDidUpdate event.
-constexpr base::TimeDelta kFetchNotificationDelay =
-    base::TimeDelta::FromSeconds(2);
+constexpr base::TimeDelta kFetchNotificationDelay = base::Seconds(2);
 
 enum NotificationUiState : unsigned int {
   NOT_SHOWN = 0,
diff --git a/remoting/ios/audio/audio_playback_sink_ios.cc b/remoting/ios/audio/audio_playback_sink_ios.cc
index eb84ed2..40fb25c 100644
--- a/remoting/ios/audio/audio_playback_sink_ios.cc
+++ b/remoting/ios/audio/audio_playback_sink_ios.cc
@@ -24,7 +24,7 @@
 // stop running the audio queue once all buffers have been transferred to the
 // supplier.
 
-constexpr base::TimeDelta kBufferLength = base::TimeDelta::FromMilliseconds(10);
+constexpr base::TimeDelta kBufferLength = base::Milliseconds(10);
 constexpr int kRequiredBufferCountForPlayback = 5;
 
 class AudioQueueGetDataRequest : public AsyncAudioDataSupplier::GetDataRequest {
diff --git a/remoting/ios/audio/audio_playback_sink_ios_unittest.cc b/remoting/ios/audio/audio_playback_sink_ios_unittest.cc
index a531fa9a..ce78a7e 100644
--- a/remoting/ios/audio/audio_playback_sink_ios_unittest.cc
+++ b/remoting/ios/audio/audio_playback_sink_ios_unittest.cc
@@ -17,8 +17,7 @@
 namespace {
 
 constexpr AudioStreamFormat kStreamFormat = {2, 2, 44100};
-constexpr base::TimeDelta kBufferPlaybackTimeout =
-    base::TimeDelta::FromMilliseconds(500);
+constexpr base::TimeDelta kBufferPlaybackTimeout = base::Milliseconds(500);
 
 }  // namespace
 
diff --git a/remoting/ios/domain/host_info.mm b/remoting/ios/domain/host_info.mm
index 6af0d46..a51fb130 100644
--- a/remoting/ios/domain/host_info.mm
+++ b/remoting/ios/domain/host_info.mm
@@ -41,8 +41,7 @@
     _publicKey = base::SysUTF8ToNSString(hostInfo.public_key());
 
     base::Time last_seen_time =
-        base::Time::UnixEpoch() +
-        base::TimeDelta::FromMilliseconds(hostInfo.last_seen_time());
+        base::Time::UnixEpoch() + base::Milliseconds(hostInfo.last_seen_time());
     _updatedTime = base::SysUTF16ToNSString(
         base::TimeFormatShortDateAndTime(last_seen_time));
 
diff --git a/remoting/protocol/capture_scheduler.cc b/remoting/protocol/capture_scheduler.cc
index 5bca946..178cfaa14 100644
--- a/remoting/protocol/capture_scheduler.cc
+++ b/remoting/protocol/capture_scheduler.cc
@@ -49,8 +49,7 @@
     : capture_closure_(capture_closure),
       tick_clock_(base::DefaultTickClock::GetInstance()),
       capture_timer_(new base::OneShotTimer()),
-      minimum_interval_(
-          base::TimeDelta::FromMilliseconds(kDefaultMinimumIntervalMs)),
+      minimum_interval_(base::Milliseconds(kDefaultMinimumIntervalMs)),
       num_of_processors_(base::SysInfo::NumberOfProcessors()),
       capture_time_(kStatisticsWindow),
       encode_time_(kStatisticsWindow),
@@ -158,11 +157,10 @@
   // Delay by an amount chosen such that if capture and encode times
   // continue to follow the averages, then we'll consume the target
   // fraction of CPU across all cores.
-  base::TimeDelta delay =
-      std::max(minimum_interval_,
-               base::TimeDelta::FromMillisecondsD(
-                   (capture_time_.Average() + encode_time_.Average()) /
-                   (kRecordingCpuConsumption * num_of_processors_)));
+  base::TimeDelta delay = std::max(
+      minimum_interval_,
+      base::Milliseconds((capture_time_.Average() + encode_time_.Average()) /
+                         (kRecordingCpuConsumption * num_of_processors_)));
 
   // Account for the time that has passed since the last capture.
   delay = std::max(base::TimeDelta(), delay - (tick_clock_->NowTicks() -
diff --git a/remoting/protocol/capture_scheduler_unittest.cc b/remoting/protocol/capture_scheduler_unittest.cc
index fd63b7c..d7d761e 100644
--- a/remoting/protocol/capture_scheduler_unittest.cc
+++ b/remoting/protocol/capture_scheduler_unittest.cc
@@ -32,7 +32,7 @@
     scheduler_ = std::make_unique<CaptureScheduler>(base::BindRepeating(
         &CaptureSchedulerTest::DoCapture, base::Unretained(this)));
     scheduler_->set_minimum_interval(
-        base::TimeDelta::FromMilliseconds(kMinumumFrameIntervalMs));
+        base::Milliseconds(kMinumumFrameIntervalMs));
     scheduler_->SetTickClockForTest(&tick_clock_);
     capture_timer_ = new base::MockOneShotTimer();
     scheduler_->SetTimerForTest(base::WrapUnique(capture_timer_));
@@ -99,10 +99,9 @@
       InitScheduler();
       scheduler_->SetNumOfProcessorsForTest(1 << i);
 
-      SimulateSingleFrameCapture(
-          base::TimeDelta::FromMilliseconds(kTestInputs[j]),
-          base::TimeDelta::FromMilliseconds(kTestInputs[j]),
-          base::TimeDelta::FromMilliseconds(kTestResults[i][j]));
+      SimulateSingleFrameCapture(base::Milliseconds(kTestInputs[j]),
+                                 base::Milliseconds(kTestInputs[j]),
+                                 base::Milliseconds(kTestResults[i][j]));
     }
   }
 }
@@ -121,10 +120,9 @@
       scheduler_->SetNumOfProcessorsForTest(1 << i);
 
       SimulateSingleFrameCapture(
-          base::TimeDelta::FromMilliseconds(kTestInputs[j]),
-          base::TimeDelta::FromMilliseconds(
-              kTestInputs[base::size(kTestInputs) - 1 - j]),
-          base::TimeDelta::FromMilliseconds(kTestResults[i][j]));
+          base::Milliseconds(kTestInputs[j]),
+          base::Milliseconds(kTestInputs[base::size(kTestInputs) - 1 - j]),
+          base::Milliseconds(kTestResults[i][j]));
     }
   }
 }
@@ -142,10 +140,9 @@
     scheduler_->SetNumOfProcessorsForTest(1 << i);
     for (size_t j = 0; j < base::size(kTestInputs); ++j) {
       SimulateSingleFrameCapture(
-          base::TimeDelta::FromMilliseconds(kTestInputs[j]),
-          base::TimeDelta::FromMilliseconds(
-              kTestInputs[base::size(kTestInputs) - 1 - j]),
-          base::TimeDelta::FromMillisecondsD(kTestResults[i][j]));
+          base::Milliseconds(kTestInputs[j]),
+          base::Milliseconds(kTestInputs[base::size(kTestInputs) - 1 - j]),
+          base::Milliseconds(kTestResults[i][j]));
     }
   }
 }
@@ -156,9 +153,8 @@
 
   // Process the first frame to let the scheduler know that receiver supports
   // ACKs.
-  SimulateSingleFrameCapture(
-      base::TimeDelta(), base::TimeDelta(),
-      base::TimeDelta::FromMilliseconds(kMinumumFrameIntervalMs));
+  SimulateSingleFrameCapture(base::TimeDelta(), base::TimeDelta(),
+                             base::Milliseconds(kMinumumFrameIntervalMs));
 
   capture_timer_->Fire();
   CheckCaptureCalled();
@@ -180,9 +176,8 @@
 
   // Process the first frame to let the scheduler know that receiver supports
   // ACKs.
-  SimulateSingleFrameCapture(
-      base::TimeDelta(), base::TimeDelta(),
-      base::TimeDelta::FromMilliseconds(kMinumumFrameIntervalMs));
+  SimulateSingleFrameCapture(base::TimeDelta(), base::TimeDelta(),
+                             base::Milliseconds(kMinumumFrameIntervalMs));
 
   // Queue some frames until the sender is blocked.
   while (capture_timer_->IsRunning()) {
diff --git a/remoting/protocol/chromium_socket_factory_unittest.cc b/remoting/protocol/chromium_socket_factory_unittest.cc
index 87f63efb..62654da 100644
--- a/remoting/protocol/chromium_socket_factory_unittest.cc
+++ b/remoting/protocol/chromium_socket_factory_unittest.cc
@@ -75,7 +75,7 @@
   void VerifyCanSendAndReceive(rtc::AsyncPacketSocket* sender) {
     // UDP packets may be lost, so we have to retry sending it more than once.
     const int kMaxAttempts = 3;
-    const base::TimeDelta kAttemptPeriod = base::TimeDelta::FromSeconds(1);
+    const base::TimeDelta kAttemptPeriod = base::Seconds(1);
     std::string test_packet("TEST PACKET");
     int attempts = 0;
     rtc::PacketOptions options;
diff --git a/remoting/protocol/connection_unittest.cc b/remoting/protocol/connection_unittest.cc
index 3e786b6..ebae2cd 100644
--- a/remoting/protocol/connection_unittest.cc
+++ b/remoting/protocol/connection_unittest.cc
@@ -127,7 +127,7 @@
     kAudioSampleRate * kAudioPacketDurationMs /
     base::Time::kMillisecondsPerSecond;
 static constexpr base::TimeDelta kAudioPacketDuration =
-    base::TimeDelta::FromMilliseconds(kAudioPacketDurationMs);
+    base::Milliseconds(kAudioPacketDurationMs);
 
 static const int kAudioChannels = 2;
 
@@ -577,8 +577,8 @@
 // connection is being established.
 TEST_P(ConnectionTest, MAYBE_VideoWithSlowSignaling) {
   // Add signaling delay to slow down connection handshake.
-  host_session_->set_signaling_delay(base::TimeDelta::FromMilliseconds(100));
-  client_session_->set_signaling_delay(base::TimeDelta::FromMilliseconds(100));
+  host_session_->set_signaling_delay(base::Milliseconds(100));
+  client_session_->set_signaling_delay(base::Milliseconds(100));
 
   Connect();
 
diff --git a/remoting/protocol/frame_stats.cc b/remoting/protocol/frame_stats.cc
index a221235f..06b80e62 100644
--- a/remoting/protocol/frame_stats.cc
+++ b/remoting/protocol/frame_stats.cc
@@ -29,28 +29,26 @@
         base::TimeTicks::FromInternalValue(packet.latest_event_timestamp());
   }
   if (packet.has_capture_time_ms()) {
-    result.capture_delay =
-        base::TimeDelta::FromMilliseconds(packet.capture_time_ms());
+    result.capture_delay = base::Milliseconds(packet.capture_time_ms());
   }
   if (packet.has_encode_time_ms()) {
-    result.encode_delay =
-        base::TimeDelta::FromMilliseconds(packet.encode_time_ms());
+    result.encode_delay = base::Milliseconds(packet.encode_time_ms());
   }
   if (packet.has_capture_pending_time_ms()) {
     result.capture_pending_delay =
-        base::TimeDelta::FromMilliseconds(packet.capture_pending_time_ms());
+        base::Milliseconds(packet.capture_pending_time_ms());
   }
   if (packet.has_capture_overhead_time_ms()) {
     result.capture_overhead_delay =
-        base::TimeDelta::FromMilliseconds(packet.capture_overhead_time_ms());
+        base::Milliseconds(packet.capture_overhead_time_ms());
   }
   if (packet.has_encode_pending_time_ms()) {
     result.encode_pending_delay =
-        base::TimeDelta::FromMilliseconds(packet.encode_pending_time_ms());
+        base::Milliseconds(packet.encode_pending_time_ms());
   }
   if (packet.has_send_pending_time_ms()) {
     result.send_pending_delay =
-        base::TimeDelta::FromMilliseconds(packet.send_pending_time_ms());
+        base::Milliseconds(packet.send_pending_time_ms());
   }
   return result;
 }
@@ -65,32 +63,29 @@
         base::TimeTicks::FromInternalValue(message.latest_event_timestamp());
   }
   if (message.has_capture_time_ms()) {
-    result.capture_delay =
-        base::TimeDelta::FromMilliseconds(message.capture_time_ms());
+    result.capture_delay = base::Milliseconds(message.capture_time_ms());
   }
   if (message.has_encode_time_ms()) {
-    result.encode_delay =
-        base::TimeDelta::FromMilliseconds(message.encode_time_ms());
+    result.encode_delay = base::Milliseconds(message.encode_time_ms());
   }
   if (message.has_capture_pending_time_ms()) {
     result.capture_pending_delay =
-        base::TimeDelta::FromMilliseconds(message.capture_pending_time_ms());
+        base::Milliseconds(message.capture_pending_time_ms());
   }
   if (message.has_capture_overhead_time_ms()) {
     result.capture_overhead_delay =
-        base::TimeDelta::FromMilliseconds(message.capture_overhead_time_ms());
+        base::Milliseconds(message.capture_overhead_time_ms());
   }
   if (message.has_encode_pending_time_ms()) {
     result.encode_pending_delay =
-        base::TimeDelta::FromMilliseconds(message.encode_pending_time_ms());
+        base::Milliseconds(message.encode_pending_time_ms());
   }
   if (message.has_send_pending_time_ms()) {
     result.send_pending_delay =
-        base::TimeDelta::FromMilliseconds(message.send_pending_time_ms());
+        base::Milliseconds(message.send_pending_time_ms());
   }
   if (message.has_rtt_estimate_ms()) {
-    result.rtt_estimate =
-        base::TimeDelta::FromMilliseconds(message.rtt_estimate_ms());
+    result.rtt_estimate = base::Milliseconds(message.rtt_estimate_ms());
   }
   if (message.has_bandwidth_estimate_kbps()) {
     result.bandwidth_estimate_kbps = message.bandwidth_estimate_kbps();
diff --git a/remoting/protocol/frame_stats_unittest.cc b/remoting/protocol/frame_stats_unittest.cc
index 22a85e1..c3de501 100644
--- a/remoting/protocol/frame_stats_unittest.cc
+++ b/remoting/protocol/frame_stats_unittest.cc
@@ -14,13 +14,13 @@
 TEST_F(FrameStatsTest, ToStatsMessageAndBack_RestoresFrameStats) {
   HostFrameStats stats;
   stats.frame_size = 10;
-  stats.capture_delay = base::TimeDelta::FromSeconds(11);
-  stats.encode_delay = base::TimeDelta::FromSeconds(12);
-  stats.capture_pending_delay = base::TimeDelta::FromSeconds(13);
-  stats.capture_overhead_delay = base::TimeDelta::FromSeconds(14);
-  stats.encode_pending_delay = base::TimeDelta::FromSeconds(15);
-  stats.send_pending_delay = base::TimeDelta::FromSeconds(16);
-  stats.rtt_estimate = base::TimeDelta::FromSeconds(17);
+  stats.capture_delay = base::Seconds(11);
+  stats.encode_delay = base::Seconds(12);
+  stats.capture_pending_delay = base::Seconds(13);
+  stats.capture_overhead_delay = base::Seconds(14);
+  stats.encode_pending_delay = base::Seconds(15);
+  stats.send_pending_delay = base::Seconds(16);
+  stats.rtt_estimate = base::Seconds(17);
   stats.bandwidth_estimate_kbps = 18;
   stats.capturer_id = 19;
   stats.frame_quality = 20;
diff --git a/remoting/protocol/ice_config.cc b/remoting/protocol/ice_config.cc
index 16ed09bb..1d147259 100644
--- a/remoting/protocol/ice_config.cc
+++ b/remoting/protocol/ice_config.cc
@@ -31,7 +31,7 @@
       !base::StringToDouble(string.substr(0, string.size() - 1), &seconds)) {
     return false;
   }
-  *result = base::TimeDelta::FromSecondsD(seconds);
+  *result = base::Seconds(seconds);
   return true;
 }
 
@@ -231,8 +231,8 @@
 
   // Parse lifetimeDuration field.
   base::TimeDelta lifetime =
-      base::TimeDelta::FromSeconds(config.lifetime_duration().seconds()) +
-      base::TimeDelta::FromNanoseconds(config.lifetime_duration().nanos());
+      base::Seconds(config.lifetime_duration().seconds()) +
+      base::Nanoseconds(config.lifetime_duration().nanos());
   ice_config.expiration_time = base::Time::Now() + lifetime;
 
   // Parse iceServers list and store them in |ice_config|.
diff --git a/remoting/protocol/ice_config_unittest.cc b/remoting/protocol/ice_config_unittest.cc
index 8e3d3e5..4ab649c 100644
--- a/remoting/protocol/ice_config_unittest.cc
+++ b/remoting/protocol/ice_config_unittest.cc
@@ -42,11 +42,9 @@
 
   // lifetimeDuration in the config is set to 12 hours. Verify that the
   // resulting expiration time is within 20 seconds before 12 hours after now.
-  EXPECT_TRUE(base::Time::Now() + base::TimeDelta::FromHours(12) -
-                  base::TimeDelta::FromSeconds(20) <
+  EXPECT_TRUE(base::Time::Now() + base::Hours(12) - base::Seconds(20) <
               config.expiration_time);
-  EXPECT_TRUE(config.expiration_time <
-              base::Time::Now() + base::TimeDelta::FromHours(12));
+  EXPECT_TRUE(config.expiration_time < base::Time::Now() + base::Hours(12));
 
   EXPECT_EQ(6U, config.turn_servers.size());
   EXPECT_TRUE(cricket::RelayServerConfig("8.8.8.8", 19234, "123", "abc",
@@ -95,11 +93,9 @@
 
   // lifetimeDuration in the config is set to 12 hours. Verify that the
   // resulting expiration time is within 20 seconds before 12 hours after now.
-  EXPECT_TRUE(base::Time::Now() + base::TimeDelta::FromHours(12) -
-                  base::TimeDelta::FromSeconds(20) <
+  EXPECT_TRUE(base::Time::Now() + base::Hours(12) - base::Seconds(20) <
               config.expiration_time);
-  EXPECT_TRUE(config.expiration_time <
-              base::Time::Now() + base::TimeDelta::FromHours(12));
+  EXPECT_TRUE(config.expiration_time < base::Time::Now() + base::Hours(12));
 
   EXPECT_EQ(6U, config.turn_servers.size());
   EXPECT_TRUE(cricket::RelayServerConfig("8.8.8.8", 19234, "123", "abc",
diff --git a/remoting/protocol/ice_connection_to_host.cc b/remoting/protocol/ice_connection_to_host.cc
index 9adf433..0aaad8a 100644
--- a/remoting/protocol/ice_connection_to_host.cc
+++ b/remoting/protocol/ice_connection_to_host.cc
@@ -126,8 +126,7 @@
       video_renderer_->OnSessionConfig(session_->config());
       monitored_video_stub_ = std::make_unique<MonitoredVideoStub>(
           video_renderer_->GetVideoStub(),
-          base::TimeDelta::FromSeconds(
-              MonitoredVideoStub::kConnectivityCheckDelaySeconds),
+          base::Seconds(MonitoredVideoStub::kConnectivityCheckDelaySeconds),
           base::BindRepeating(&IceConnectionToHost::OnVideoChannelStatus,
                               base::Unretained(this)));
       video_dispatcher_ = std::make_unique<ClientVideoDispatcher>(
diff --git a/remoting/protocol/ice_transport.cc b/remoting/protocol/ice_transport.cc
index 7dd1863..30be726 100644
--- a/remoting/protocol/ice_transport.cc
+++ b/remoting/protocol/ice_transport.cc
@@ -184,9 +184,9 @@
     pending_transport_info_message_ = std::make_unique<IceTransportInfo>();
     // Delay sending the new candidates in case we get more candidates
     // that we can send in one message.
-    transport_info_timer_.Start(
-        FROM_HERE, base::TimeDelta::FromMilliseconds(kTransportInfoSendDelayMs),
-        this, &IceTransport::SendTransportInfo);
+    transport_info_timer_.Start(FROM_HERE,
+                                base::Milliseconds(kTransportInfoSendDelayMs),
+                                this, &IceTransport::SendTransportInfo);
   }
 }
 
diff --git a/remoting/protocol/ice_transport_unittest.cc b/remoting/protocol/ice_transport_unittest.cc
index 8b48036..bad6094 100644
--- a/remoting/protocol/ice_transport_unittest.cc
+++ b/remoting/protocol/ice_transport_unittest.cc
@@ -302,7 +302,7 @@
   // transport unusable. Also reduce connection timeout so the test finishes
   // quickly.
   network_settings_ = NetworkSettings(NetworkSettings::NAT_TRAVERSAL_DISABLED);
-  network_settings_.ice_timeout = base::TimeDelta::FromSeconds(1);
+  network_settings_.ice_timeout = base::Seconds(1);
   network_settings_.ice_reconnect_attempts = 1;
 
   InitializeConnection();
@@ -350,7 +350,7 @@
 // Verify that we can still connect even when there is a delay in signaling
 // messages delivery.
 TEST_F(IceTransportTest, MAYBE_TestDelayedSignaling) {
-  transport_info_delay_ = base::TimeDelta::FromMilliseconds(100);
+  transport_info_delay_ = base::Milliseconds(100);
 
   InitializeConnection();
 
diff --git a/remoting/protocol/jingle_session.cc b/remoting/protocol/jingle_session.cc
index ba7fb2a..5293921 100644
--- a/remoting/protocol/jingle_session.cc
+++ b/remoting/protocol/jingle_session.cc
@@ -355,7 +355,7 @@
       std::move(stanza), base::BindOnce(&JingleSession::OnTransportInfoResponse,
                                         base::Unretained(this)));
   if (request) {
-    request->SetTimeout(base::TimeDelta::FromSeconds(kTransportInfoTimeout));
+    request->SetTimeout(base::Seconds(kTransportInfoTimeout));
     transport_info_requests_.push_back(std::move(request));
   } else {
     LOG(ERROR) << "Failed to send a transport-info message";
@@ -442,7 +442,7 @@
     timeout = kSessionInitiateAndAcceptTimeout;
   }
   if (request) {
-    request->SetTimeout(base::TimeDelta::FromSeconds(timeout));
+    request->SetTimeout(base::Seconds(timeout));
     pending_requests_.push_back(std::move(request));
   } else {
     LOG(ERROR) << "Failed to send a "
diff --git a/remoting/protocol/monitored_video_stub_unittest.cc b/remoting/protocol/monitored_video_stub_unittest.cc
index c3c7cc5..0208838 100644
--- a/remoting/protocol/monitored_video_stub_unittest.cc
+++ b/remoting/protocol/monitored_video_stub_unittest.cc
@@ -34,8 +34,7 @@
   void SetUp() override {
     packet_ = std::make_unique<VideoPacket>();
     monitor_ = std::make_unique<MonitoredVideoStub>(
-        &video_stub_,
-        base::TimeDelta::FromMilliseconds(kTestOverrideDelayMilliseconds),
+        &video_stub_, base::Milliseconds(kTestOverrideDelayMilliseconds),
         base::BindRepeating(&MonitoredVideoStubTest::OnVideoChannelStatus,
                             base::Unretained(this)));
     EXPECT_CALL(video_stub_, ProcessVideoPacketPtr(_, _)).Times(AnyNumber());
diff --git a/remoting/protocol/network_settings.h b/remoting/protocol/network_settings.h
index 3b94ff36..4645efb 100644
--- a/remoting/protocol/network_settings.h
+++ b/remoting/protocol/network_settings.h
@@ -52,7 +52,7 @@
   PortRange port_range;
 
   // ICE Timeout.
-  base::TimeDelta ice_timeout = base::TimeDelta::FromSeconds(15);
+  base::TimeDelta ice_timeout = base::Seconds(15);
 
   // ICE reconnect attempts.
   int ice_reconnect_attempts = 2;
diff --git a/remoting/protocol/performance_tracker.cc b/remoting/protocol/performance_tracker.cc
index 927f3d2..f666871 100644
--- a/remoting/protocol/performance_tracker.cc
+++ b/remoting/protocol/performance_tracker.cc
@@ -78,11 +78,9 @@
 namespace protocol {
 
 PerformanceTracker::PerformanceTracker()
-    : video_bandwidth_(base::TimeDelta::FromSeconds(kStatsUpdatePeriodSeconds)),
-      video_frame_rate_(
-          base::TimeDelta::FromSeconds(kStatsUpdatePeriodSeconds)),
-      video_packet_rate_(
-          base::TimeDelta::FromSeconds(kStatsUpdatePeriodSeconds)),
+    : video_bandwidth_(base::Seconds(kStatsUpdatePeriodSeconds)),
+      video_frame_rate_(base::Seconds(kStatsUpdatePeriodSeconds)),
+      video_packet_rate_(base::Seconds(kStatsUpdatePeriodSeconds)),
       video_capture_ms_(kLatencySampleSize),
       video_encode_ms_(kLatencySampleSize),
       video_decode_ms_(kLatencySampleSize),
@@ -114,7 +112,7 @@
 void PerformanceTracker::OnVideoFrameStats(const FrameStats& stats) {
   if (!is_paused_ && !upload_uma_stats_timer_.IsRunning()) {
     upload_uma_stats_timer_.Start(
-        FROM_HERE, base::TimeDelta::FromSeconds(kStatsUpdatePeriodSeconds),
+        FROM_HERE, base::Seconds(kStatsUpdatePeriodSeconds),
         base::BindRepeating(&PerformanceTracker::UploadRateStatsToUma,
                             base::Unretained(this)));
   }
diff --git a/remoting/protocol/pseudotcp_adapter.cc b/remoting/protocol/pseudotcp_adapter.cc
index 0b26d15..5c434f5c 100644
--- a/remoting/protocol/pseudotcp_adapter.cc
+++ b/remoting/protocol/pseudotcp_adapter.cc
@@ -416,8 +416,7 @@
   long timeout = 0;
   if (pseudo_tcp_.GetNextClock(PseudoTcp::Now(), timeout)) {
     timer_.Stop();
-    timer_.Start(FROM_HERE,
-                 base::TimeDelta::FromMilliseconds(std::max(timeout, 0L)), this,
+    timer_.Start(FROM_HERE, base::Milliseconds(std::max(timeout, 0L)), this,
                  &PseudoTcpAdapter::Core::HandleTcpClock);
   }
 }
diff --git a/remoting/protocol/pseudotcp_adapter_unittest.cc b/remoting/protocol/pseudotcp_adapter_unittest.cc
index 9ec07738..42951da2 100644
--- a/remoting/protocol/pseudotcp_adapter_unittest.cc
+++ b/remoting/protocol/pseudotcp_adapter_unittest.cc
@@ -141,7 +141,7 @@
           base::BindOnce(&FakeSocket::AppendInputPacket,
                          base::Unretained(peer_socket_),
                          std::vector<char>(buf->data(), buf->data() + buf_len)),
-          base::TimeDelta::FromMilliseconds(latency_ms_));
+          base::Milliseconds(latency_ms_));
     }
 
     return buf_len;
diff --git a/remoting/protocol/transport_context.cc b/remoting/protocol/transport_context.cc
index ec6d0d7..210094e 100644
--- a/remoting/protocol/transport_context.cc
+++ b/remoting/protocol/transport_context.cc
@@ -28,8 +28,7 @@
 namespace {
 
 // Use a cooldown period to prevent multiple service requests in case of a bug.
-constexpr base::TimeDelta kIceConfigRequestCooldown =
-    base::TimeDelta::FromMinutes(2);
+constexpr base::TimeDelta kIceConfigRequestCooldown = base::Minutes(2);
 
 void PrintIceConfig(const IceConfig& ice_config) {
   std::stringstream ss;
diff --git a/remoting/protocol/video_frame_pump.cc b/remoting/protocol/video_frame_pump.cc
index e218493..b6717f83 100644
--- a/remoting/protocol/video_frame_pump.cc
+++ b/remoting/protocol/video_frame_pump.cc
@@ -50,7 +50,7 @@
       video_stub_(video_stub),
       keep_alive_timer_(
           FROM_HERE,
-          base::TimeDelta::FromMilliseconds(kKeepAlivePacketIntervalMs),
+          base::Milliseconds(kKeepAlivePacketIntervalMs),
           base::BindRepeating(&VideoFramePump::SendKeepAlivePacket,
                               base::Unretained(this))),
       capture_scheduler_(base::BindRepeating(&VideoFramePump::CaptureNextFrame,
diff --git a/remoting/protocol/webrtc_audio_module.cc b/remoting/protocol/webrtc_audio_module.cc
index 58cc2956..9f2db3cc 100644
--- a/remoting/protocol/webrtc_audio_module.cc
+++ b/remoting/protocol/webrtc_audio_module.cc
@@ -23,7 +23,7 @@
 const int kSamplesPerFrame = kSamplingRate * kFrameLengthMs / 1000;
 
 constexpr base::TimeDelta kPollInterval =
-    base::TimeDelta::FromMilliseconds(5 * kFrameLengthMs);
+    base::Milliseconds(5 * kFrameLengthMs);
 const int kChannels = 2;
 const int kBytesPerSample = 2;
 
diff --git a/remoting/protocol/webrtc_audio_source_adapter.cc b/remoting/protocol/webrtc_audio_source_adapter.cc
index b519419..0fb4594f 100644
--- a/remoting/protocol/webrtc_audio_source_adapter.cc
+++ b/remoting/protocol/webrtc_audio_source_adapter.cc
@@ -21,8 +21,7 @@
 static const int kBytesPerSample = 2;
 
 // Frame size expected by webrtc::AudioTrackSinkInterface.
-static constexpr base::TimeDelta kAudioFrameDuration =
-    base::TimeDelta::FromMilliseconds(10);
+static constexpr base::TimeDelta kAudioFrameDuration = base::Milliseconds(10);
 
 class WebrtcAudioSourceAdapter::Core {
  public:
diff --git a/remoting/protocol/webrtc_audio_source_adapter_unittest.cc b/remoting/protocol/webrtc_audio_source_adapter_unittest.cc
index 9e44a85..3cea914 100644
--- a/remoting/protocol/webrtc_audio_source_adapter_unittest.cc
+++ b/remoting/protocol/webrtc_audio_source_adapter_unittest.cc
@@ -26,7 +26,7 @@
 const int kSampleRate = 48000;
 const int kBytesPerSample = 2;
 const int kChannels = 2;
-constexpr auto kFrameDuration = base::TimeDelta::FromMilliseconds(10);
+constexpr auto kFrameDuration = base::Milliseconds(10);
 
 class FakeAudioSink : public webrtc::AudioTrackSinkInterface{
  public:
diff --git a/remoting/protocol/webrtc_dummy_video_encoder.cc b/remoting/protocol/webrtc_dummy_video_encoder.cc
index a4f8160..f591834 100644
--- a/remoting/protocol/webrtc_dummy_video_encoder.cc
+++ b/remoting/protocol/webrtc_dummy_video_encoder.cc
@@ -101,7 +101,7 @@
   main_task_runner_->PostTask(
       FROM_HERE, base::BindOnce(&VideoChannelStateObserver::OnRttUpdate,
                                 video_channel_state_observer_,
-                                base::TimeDelta::FromMilliseconds(rtt_ms)));
+                                base::Milliseconds(rtt_ms)));
 }
 
 webrtc::EncodedImageCallback::Result WebrtcDummyVideoEncoder::SendEncodedFrame(
diff --git a/remoting/protocol/webrtc_frame_scheduler_simple.cc b/remoting/protocol/webrtc_frame_scheduler_simple.cc
index 0a7178ba..e31bd5b 100644
--- a/remoting/protocol/webrtc_frame_scheduler_simple.cc
+++ b/remoting/protocol/webrtc_frame_scheduler_simple.cc
@@ -24,7 +24,7 @@
 const int kStatsWindow = 5;
 
 constexpr base::TimeDelta kTargetFrameInterval =
-    base::TimeDelta::FromMilliseconds(1000 / kTargetFrameRate);
+    base::Milliseconds(1000 / kTargetFrameRate);
 
 // Target quantizer at which stop the encoding top-off.
 const int kTargetQuantizerForTopOff = 10;
@@ -57,8 +57,7 @@
 // 3-second period. This is effectively a minimum frame-rate, so the value
 // should not be too small, otherwise the client may waste CPU cycles on
 // processing and rendering lots of identical frames.
-constexpr base::TimeDelta kKeepAliveInterval =
-    base::TimeDelta::FromMilliseconds(2000);
+constexpr base::TimeDelta kKeepAliveInterval = base::Milliseconds(2000);
 
 // Baseline bandwidth to use for scheduling captures. This is only used
 // until the next OnTargetBitrateChanged() notification, typically after
@@ -205,10 +204,10 @@
     int expected_frame_size =
         updated_area * kEstimatedBytesPerMegapixel / kPixelsPerMegapixel;
     base::TimeDelta expected_send_delay =
-        pacing_bucket_.rate() ? base::TimeDelta::FromMicroseconds(
-                                    base::Time::kMicrosecondsPerSecond *
-                                    expected_frame_size / pacing_bucket_.rate())
-                              : base::TimeDelta::Max();
+        pacing_bucket_.rate()
+            ? base::Microseconds(base::Time::kMicrosecondsPerSecond *
+                                 expected_frame_size / pacing_bucket_.rate())
+            : base::TimeDelta::Max();
     if (expected_send_delay > kTargetFrameInterval) {
       params_out->vpx_min_quantizer = kMaxQuantizer;
     }
diff --git a/remoting/protocol/webrtc_frame_scheduler_unittest.cc b/remoting/protocol/webrtc_frame_scheduler_unittest.cc
index ff6ca00..be9c4850 100644
--- a/remoting/protocol/webrtc_frame_scheduler_unittest.cc
+++ b/remoting/protocol/webrtc_frame_scheduler_unittest.cc
@@ -96,7 +96,7 @@
   // repeated captures.
   scheduler_->OnKeyFrameRequested();
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
 
   // There should be approximately 30 captures in 1 second.
   EXPECT_LE(29, capture_callback_count_);
@@ -108,10 +108,10 @@
   scheduler_->OnKeyFrameRequested();
   scheduler_->OnTargetBitrateChanged(100);
   frame_.mutable_updated_region()->SetRect(DesktopRect::MakeWH(1, 1));
-  auto rtt = base::TimeDelta::FromMilliseconds(123);
+  auto rtt = base::Milliseconds(123);
   scheduler_->OnRttUpdate(rtt);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_environment_.FastForwardBy(base::Seconds(1));
 
   EXPECT_EQ(rtt, frame_stats_.rtt_estimate);
 }
diff --git a/remoting/protocol/webrtc_transport.cc b/remoting/protocol/webrtc_transport.cc
index ef6a417f..09e2c7e 100644
--- a/remoting/protocol/webrtc_transport.cc
+++ b/remoting/protocol/webrtc_transport.cc
@@ -77,17 +77,15 @@
 // Frequency of polling the event and control data channels for their current
 // state while waiting for them to close.
 constexpr base::TimeDelta kDefaultDataChannelStatePollingInterval =
-    base::TimeDelta::FromMilliseconds(50);
+    base::Milliseconds(50);
 
 // The maximum amount of time we will wait for the data channels to close before
 // closing the PeerConnection.
-constexpr base::TimeDelta kWaitForDataChannelsClosedTimeout =
-    base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kWaitForDataChannelsClosedTimeout = base::Seconds(5);
 
 // The maximum amount of time we will wait for a thread join before we crash the
 // host.
-constexpr base::TimeDelta kWaitForThreadJoinTimeout =
-    base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kWaitForThreadJoinTimeout = base::Seconds(30);
 
 base::TimeDelta data_channel_state_polling_interval =
     kDefaultDataChannelStatePollingInterval;
@@ -1185,9 +1183,9 @@
 
     // Delay sending the new candidates in case we get more candidates
     // that we can send in one message.
-    transport_info_timer_.Start(
-        FROM_HERE, base::TimeDelta::FromMilliseconds(kTransportInfoSendDelayMs),
-        this, &WebrtcTransport::SendTransportInfo);
+    transport_info_timer_.Start(FROM_HERE,
+                                base::Milliseconds(kTransportInfoSendDelayMs),
+                                this, &WebrtcTransport::SendTransportInfo);
   }
 }
 
diff --git a/remoting/protocol/webrtc_transport_unittest.cc b/remoting/protocol/webrtc_transport_unittest.cc
index 7f6a0418..2f7f771 100644
--- a/remoting/protocol/webrtc_transport_unittest.cc
+++ b/remoting/protocol/webrtc_transport_unittest.cc
@@ -41,8 +41,7 @@
 const char kChannelName[] = "test_channel";
 const char kAuthKey[] = "test_auth_key";
 
-constexpr base::TimeDelta kWaitForThreadJoinTimeout =
-    base::TimeDelta::FromMilliseconds(200);
+constexpr base::TimeDelta kWaitForThreadJoinTimeout = base::Milliseconds(200);
 
 class TestTransportEventHandler : public WebrtcTransport::EventHandler {
  public:
diff --git a/remoting/protocol/webrtc_video_encoder_wrapper.cc b/remoting/protocol/webrtc_video_encoder_wrapper.cc
index c71362b1..383a2284 100644
--- a/remoting/protocol/webrtc_video_encoder_wrapper.cc
+++ b/remoting/protocol/webrtc_video_encoder_wrapper.cc
@@ -37,7 +37,7 @@
 namespace {
 
 constexpr base::TimeDelta kTargetFrameInterval =
-    base::TimeDelta::FromMilliseconds(1000 / kTargetFrameRate);
+    base::Milliseconds(1000 / kTargetFrameRate);
 
 // Maximum quantizer at which to encode frames. Lowering this value will
 // improve image quality (in cases of low-bandwidth or large frames) at the
@@ -70,7 +70,7 @@
 // 3-second period. This is effectively a minimum frame-rate, so the value
 // should not be too small, otherwise the client may waste CPU cycles on
 // processing and rendering lots of identical frames.
-constexpr base::TimeDelta kKeepAliveInterval = base::TimeDelta::FromSeconds(2);
+constexpr base::TimeDelta kKeepAliveInterval = base::Seconds(2);
 
 std::string EncodeResultToString(WebrtcVideoEncoder::EncodeResult result) {
   using EncodeResult = WebrtcVideoEncoder::EncodeResult;
@@ -323,7 +323,7 @@
   main_task_runner_->PostTask(
       FROM_HERE, base::BindOnce(&VideoChannelStateObserver::OnRttUpdate,
                                 video_channel_state_observer_,
-                                base::TimeDelta::FromMilliseconds(rtt_ms)));
+                                base::Milliseconds(rtt_ms)));
 }
 
 webrtc::VideoEncoder::EncoderInfo WebrtcVideoEncoderWrapper::GetEncoderInfo()
@@ -497,8 +497,8 @@
   if (updated_area - updated_region_area_.Max() > kBigFrameThresholdPixels) {
     int expected_frame_size =
         updated_area * kEstimatedBytesPerMegapixel / kPixelsPerMegapixel;
-    base::TimeDelta expected_send_delay = base::TimeDelta::FromSecondsD(
-        expected_frame_size * 8 / (bitrate_kbps_ * 1000.0));
+    base::TimeDelta expected_send_delay =
+        base::Seconds(expected_frame_size * 8 / (bitrate_kbps_ * 1000.0));
     if (expected_send_delay > kTargetFrameInterval) {
       should_drop_quality = true;
     }
diff --git a/remoting/protocol/webrtc_video_encoder_wrapper_unittest.cc b/remoting/protocol/webrtc_video_encoder_wrapper_unittest.cc
index 530c306..a4a5599 100644
--- a/remoting/protocol/webrtc_video_encoder_wrapper_unittest.cc
+++ b/remoting/protocol/webrtc_video_encoder_wrapper_unittest.cc
@@ -238,7 +238,7 @@
 }
 
 TEST_F(WebrtcVideoEncoderWrapperTest, NotifiesOnRttUpdate) {
-  EXPECT_CALL(observer_, OnRttUpdate(base::TimeDelta::FromMilliseconds(123)));
+  EXPECT_CALL(observer_, OnRttUpdate(base::Milliseconds(123)));
 
   auto encoder = InitEncoder(GetVp9Format(), GetVp9Codec());
   encoder->OnRttUpdate(123);
diff --git a/remoting/protocol/webrtc_video_stream.cc b/remoting/protocol/webrtc_video_stream.cc
index 6da2247a..e9a37439 100644
--- a/remoting/protocol/webrtc_video_stream.cc
+++ b/remoting/protocol/webrtc_video_stream.cc
@@ -202,7 +202,7 @@
 
   current_frame_stats_->capture_ended_time = base::TimeTicks::Now();
   current_frame_stats_->capture_delay =
-      base::TimeDelta::FromMilliseconds(frame ? frame->capture_time_ms() : 0);
+      base::Milliseconds(frame ? frame->capture_time_ms() : 0);
 
   if (!frame) {
     scheduler_->OnFrameCaptured(nullptr, nullptr);
diff --git a/remoting/signaling/ftl_message_reception_channel.h b/remoting/signaling/ftl_message_reception_channel.h
index c56754b..8def929 100644
--- a/remoting/signaling/ftl_message_reception_channel.h
+++ b/remoting/signaling/ftl_message_reception_channel.h
@@ -22,8 +22,7 @@
 // Handles the lifetime and validity of the messaging stream used for FTL.
 class FtlMessageReceptionChannel final : public MessageReceptionChannel {
  public:
-  static constexpr base::TimeDelta kPongTimeout =
-      base::TimeDelta::FromSeconds(15);
+  static constexpr base::TimeDelta kPongTimeout = base::Seconds(15);
 
   // |signaling_tracker| is nullable.
   explicit FtlMessageReceptionChannel(SignalingTracker* signaling_tracker);
diff --git a/remoting/signaling/ftl_message_reception_channel_unittest.cc b/remoting/signaling/ftl_message_reception_channel_unittest.cc
index 59d8bfb..840b263b6 100644
--- a/remoting/signaling/ftl_message_reception_channel_unittest.cc
+++ b/remoting/signaling/ftl_message_reception_channel_unittest.cc
@@ -476,8 +476,7 @@
                 time_until_retry - FtlServicesContext::kBackoffMaxDelay;
 
             // Adjust for fuzziness.
-            if (max_delay_diff.magnitude() <
-                base::TimeDelta::FromMilliseconds(500)) {
+            if (max_delay_diff.magnitude() < base::Milliseconds(500)) {
               hitting_max_delay_count++;
             }
 
diff --git a/remoting/signaling/ftl_messaging_client.cc b/remoting/signaling/ftl_messaging_client.cc
index 229c58d4..6b576f9e 100644
--- a/remoting/signaling/ftl_messaging_client.cc
+++ b/remoting/signaling/ftl_messaging_client.cc
@@ -106,7 +106,7 @@
         "Not implemented."
     })");
 
-constexpr base::TimeDelta kInboxMessageTtl = base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kInboxMessageTtl = base::Minutes(1);
 
 }  // namespace
 
diff --git a/remoting/signaling/ftl_registration_manager.cc b/remoting/signaling/ftl_registration_manager.cc
index 1be3a4e..fc443b6 100644
--- a/remoting/signaling/ftl_registration_manager.cc
+++ b/remoting/signaling/ftl_registration_manager.cc
@@ -37,7 +37,7 @@
 constexpr size_t kFtlCapabilityCount =
     sizeof(kFtlCapabilities) / sizeof(ftl::FtlCapability::Feature);
 
-constexpr base::TimeDelta kRefreshBufferTime = base::TimeDelta::FromHours(1);
+constexpr base::TimeDelta kRefreshBufferTime = base::Hours(1);
 
 constexpr char kSignInGaiaPath[] = "/v1/registration:signingaia";
 
@@ -216,7 +216,7 @@
   ftl_auth_token_ = response->auth_token().payload();
   VLOG(1) << "Auth token set on FtlClient";
   base::TimeDelta refresh_delay =
-      base::TimeDelta::FromMicroseconds(response->auth_token().expires_in());
+      base::Microseconds(response->auth_token().expires_in());
   if (refresh_delay > kRefreshBufferTime) {
     refresh_delay -= kRefreshBufferTime;
   } else {
diff --git a/remoting/signaling/ftl_registration_manager_unittest.cc b/remoting/signaling/ftl_registration_manager_unittest.cc
index aca096d..eff182997 100644
--- a/remoting/signaling/ftl_registration_manager_unittest.cc
+++ b/remoting/signaling/ftl_registration_manager_unittest.cc
@@ -28,7 +28,7 @@
 constexpr char kAuthToken[] = "auth_token";
 constexpr int64_t kAuthTokenExpiresInMicroseconds = 86400000000;  // = 1 day
 constexpr base::TimeDelta kAuthTokenExpiration =
-    base::TimeDelta::FromMicroseconds(kAuthTokenExpiresInMicroseconds);
+    base::Microseconds(kAuthTokenExpiresInMicroseconds);
 
 MATCHER_P(HasErrorCode, error_code, "") {
   return arg.error_code() == error_code;
diff --git a/remoting/signaling/ftl_services_context.h b/remoting/signaling/ftl_services_context.h
index 93e3e2c..4a7ce84 100644
--- a/remoting/signaling/ftl_services_context.h
+++ b/remoting/signaling/ftl_services_context.h
@@ -18,10 +18,8 @@
 class FtlServicesContext final {
  public:
   // Exposed for testing.
-  static constexpr base::TimeDelta kBackoffInitialDelay =
-      base::TimeDelta::FromSeconds(1);
-  static constexpr base::TimeDelta kBackoffMaxDelay =
-      base::TimeDelta::FromMinutes(1);
+  static constexpr base::TimeDelta kBackoffInitialDelay = base::Seconds(1);
+  static constexpr base::TimeDelta kBackoffMaxDelay = base::Minutes(1);
 
   static const net::BackoffEntry::Policy& GetBackoffPolicy();
   static std::string GetServerEndpoint();
diff --git a/remoting/signaling/iq_sender_unittest.cc b/remoting/signaling/iq_sender_unittest.cc
index 0305af65..2a35ce0 100644
--- a/remoting/signaling/iq_sender_unittest.cc
+++ b/remoting/signaling/iq_sender_unittest.cc
@@ -122,7 +122,7 @@
     SendTestMessage();
   });
 
-  request_->SetTimeout(base::TimeDelta::FromMilliseconds(2));
+  request_->SetTimeout(base::Milliseconds(2));
 
   base::RunLoop run_loop;
   EXPECT_CALL(callback_, Run(request_.get(), nullptr))
diff --git a/remoting/signaling/message_tracker.cc b/remoting/signaling/message_tracker.cc
index 647e54c..d3b82c05 100644
--- a/remoting/signaling/message_tracker.cc
+++ b/remoting/signaling/message_tracker.cc
@@ -9,8 +9,7 @@
 namespace remoting {
 
 // static
-const base::TimeDelta MessageTracker::kCleanupInterval =
-    base::TimeDelta::FromMinutes(2);
+const base::TimeDelta MessageTracker::kCleanupInterval = base::Minutes(2);
 
 MessageTracker::MessageTracker() = default;
 
diff --git a/remoting/test/codec_perftest.cc b/remoting/test/codec_perftest.cc
index 7b9bd54c..32540df 100644
--- a/remoting/test/codec_perftest.cc
+++ b/remoting/test/codec_perftest.cc
@@ -13,7 +13,7 @@
 namespace remoting {
 namespace test {
 
-constexpr auto kIntervalBetweenFrames = base::TimeDelta::FromSeconds(1) / 30;
+constexpr auto kIntervalBetweenFrames = base::Seconds(1) / 30;
 
 struct CodecParams {
   CodecParams(bool use_vp9, bool lossless, bool lossless_color)
diff --git a/remoting/test/cyclic_frame_generator.h b/remoting/test/cyclic_frame_generator.h
index e802c70..842f977 100644
--- a/remoting/test/cyclic_frame_generator.h
+++ b/remoting/test/cyclic_frame_generator.h
@@ -84,10 +84,10 @@
   webrtc::DesktopSize screen_size_;
 
   // By default switch between reference frames every 2 seconds.
-  base::TimeDelta frame_cycle_period_ = base::TimeDelta::FromSeconds(2);
+  base::TimeDelta frame_cycle_period_ = base::Seconds(2);
 
   // By default blink the cursor 4 times per seconds.
-  base::TimeDelta cursor_blink_period_ = base::TimeDelta::FromMilliseconds(250);
+  base::TimeDelta cursor_blink_period_ = base::Milliseconds(250);
 
   // Index of the reference frame used to render the last generated frame.
   int last_reference_frame_ = -1;
diff --git a/remoting/test/fake_socket_factory.cc b/remoting/test/fake_socket_factory.cc
index b4d9457..f2a1988e 100644
--- a/remoting/test/fake_socket_factory.cc
+++ b/remoting/test/fake_socket_factory.cc
@@ -308,9 +308,8 @@
   ++total_packets_received_;
 
   if (latency_average_ > base::TimeDelta()) {
-    delay += base::TimeDelta::FromMillisecondsD(
-        GetNormalRandom(latency_average_.InMillisecondsF(),
-                        latency_stddev_.InMillisecondsF()));
+    delay += base::Milliseconds(GetNormalRandom(
+        latency_average_.InMillisecondsF(), latency_stddev_.InMillisecondsF()));
   }
   if (delay < base::TimeDelta())
     delay = base::TimeDelta();
diff --git a/remoting/test/ftl_signaling_playground.cc b/remoting/test/ftl_signaling_playground.cc
index c99c9ce..d7b89d0a 100644
--- a/remoting/test/ftl_signaling_playground.cc
+++ b/remoting/test/ftl_signaling_playground.cc
@@ -58,7 +58,7 @@
 constexpr char kSwitchNameUseChromotocol[] = "use-chromotocol";
 
 // Delay to allow sending session-terminate before tearing down.
-constexpr base::TimeDelta kTearDownDelay = base::TimeDelta::FromSeconds(2);
+constexpr base::TimeDelta kTearDownDelay = base::Seconds(2);
 
 const char* SignalStrategyErrorToString(SignalStrategy::Error error) {
   switch (error) {
diff --git a/remoting/test/it2me_cli_host.cc b/remoting/test/it2me_cli_host.cc
index 463e676..b596740 100644
--- a/remoting/test/it2me_cli_host.cc
+++ b/remoting/test/it2me_cli_host.cc
@@ -290,8 +290,7 @@
   command_awaiting_crd_access_code_ = false;
 
   // Prints the access code.
-  base::TimeDelta expires_in =
-      base::TimeDelta::FromSeconds(code_lifetime_value->GetInt());
+  base::TimeDelta expires_in = base::Seconds(code_lifetime_value->GetInt());
   HOST_LOG << "It2Me access code is generated: " << code_value->GetString();
   HOST_LOG << "Expires at: " << (base::Time::Now() + expires_in);
 }
diff --git a/remoting/test/it2me_standalone_host.cc b/remoting/test/it2me_standalone_host.cc
index b84284c..d0798d2c 100644
--- a/remoting/test/it2me_standalone_host.cc
+++ b/remoting/test/it2me_standalone_host.cc
@@ -79,7 +79,7 @@
 }
 
 void It2MeStandaloneHost::StartOutputTimer() {
-  timer_.Start(FROM_HERE, base::TimeDelta::FromSeconds(1),
+  timer_.Start(FROM_HERE, base::Seconds(1),
                base::BindRepeating(&OutputFakeConnectionEventLogger,
                                    std::cref(event_logger_)));
 }
diff --git a/remoting/test/protocol_perftest.cc b/remoting/test/protocol_perftest.cc
index 759758d..5b4a460 100644
--- a/remoting/test/protocol_perftest.cc
+++ b/remoting/test/protocol_perftest.cc
@@ -77,11 +77,10 @@
                            double signaling_latency_ms)
       : bandwidth_kbps(bandwidth_kbps),
         max_buffers(buffer_s * bandwidth_kbps * 1000 / 8),
-        latency_average(base::TimeDelta::FromMillisecondsD(latency_average_ms)),
-        latency_stddev(base::TimeDelta::FromMillisecondsD(latency_stddev_ms)),
+        latency_average(base::Milliseconds(latency_average_ms)),
+        latency_stddev(base::Milliseconds(latency_stddev_ms)),
         out_of_order_rate(out_of_order_rate),
-        signaling_latency(
-            base::TimeDelta::FromMillisecondsD(signaling_latency_ms)) {}
+        signaling_latency(base::Milliseconds(signaling_latency_ms)) {}
 
   int bandwidth_kbps;
   int max_buffers;
@@ -494,8 +493,8 @@
 
   int total_frames = 0;
 
-  const base::TimeDelta kWarmUpTime = base::TimeDelta::FromSeconds(2);
-  const base::TimeDelta kTestTime = base::TimeDelta::FromSeconds(5);
+  const base::TimeDelta kWarmUpTime = base::Seconds(2);
+  const base::TimeDelta kTestTime = base::Seconds(5);
 
   base::TimeTicks start_time = base::TimeTicks::Now();
   while ((base::TimeTicks::Now() - start_time) < (kWarmUpTime + kTestTime)) {
@@ -590,8 +589,8 @@
   StartHostAndClient(use_webrtc);
   ASSERT_NO_FATAL_FAILURE(WaitConnected());
 
-  const base::TimeDelta kWarmUpTime = base::TimeDelta::FromSeconds(2);
-  const base::TimeDelta kTestTime = base::TimeDelta::FromSeconds(2);
+  const base::TimeDelta kWarmUpTime = base::Seconds(2);
+  const base::TimeDelta kTestTime = base::Seconds(2);
 
   int num_frames = 0;
   int warm_up_frames = 0;
diff --git a/rlz/lib/financial_ping.cc b/rlz/lib/financial_ping.cc
index c7822b8..dabf1c4 100644
--- a/rlz/lib/financial_ping.cc
+++ b/rlz/lib/financial_ping.cc
@@ -403,7 +403,7 @@
   bool is_signaled;
   {
     base::ScopedAllowBaseSyncPrimitives allow_base_sync_primitives;
-    is_signaled = event->TimedWait(base::TimeDelta::FromMinutes(5));
+    is_signaled = event->TimedWait(base::Minutes(5));
   }
 
   event_ref.reset();
diff --git a/rlz/lib/financial_ping_test.cc b/rlz/lib/financial_ping_test.cc
index bf2296d..b284e941 100644
--- a/rlz/lib/financial_ping_test.cc
+++ b/rlz/lib/financial_ping_test.cc
@@ -339,7 +339,7 @@
   // returns true when the embargo date has already passed.
   base::Time::Exploded exploded;
   base::Time past_rlz_embargo_date =
-      base::Time::NowFromSystemTime() - base::TimeDelta::FromDays(1);
+      base::Time::NowFromSystemTime() - base::Days(1);
   past_rlz_embargo_date.LocalExplode(&exploded);
   std::string past_rlz_embargo_date_value =
       ConvertExplodedToRlzEmbargoDate(exploded);
@@ -354,8 +354,7 @@
   // |IsPingTime| is false.
   base::Time future_rlz_embargo_date =
       base::Time::NowFromSystemTime() +
-      chromeos::system::kEmbargoEndDateGarbageDateThreshold -
-      base::TimeDelta::FromDays(1);
+      chromeos::system::kEmbargoEndDateGarbageDateThreshold - base::Days(1);
   future_rlz_embargo_date.LocalExplode(&exploded);
   std::string future_rlz_embargo_date_value =
       ConvertExplodedToRlzEmbargoDate(exploded);
@@ -370,8 +369,7 @@
   // |IsPingTime| is true.
   future_rlz_embargo_date =
       base::Time::NowFromSystemTime() +
-      chromeos::system::kEmbargoEndDateGarbageDateThreshold +
-      base::TimeDelta::FromDays(1);
+      chromeos::system::kEmbargoEndDateGarbageDateThreshold + base::Days(1);
   future_rlz_embargo_date.LocalExplode(&exploded);
   future_rlz_embargo_date_value = ConvertExplodedToRlzEmbargoDate(exploded);
   statistics_provider_->SetMachineStatistic(
diff --git a/rlz/lib/rlz_lib.cc b/rlz/lib/rlz_lib.cc
index e3cae9da..2a1ae723 100644
--- a/rlz/lib/rlz_lib.cc
+++ b/rlz/lib/rlz_lib.cc
@@ -445,12 +445,10 @@
 #if BUILDFLAG(IS_CHROMEOS_ASH)
   const net::BackoffEntry::Policy policy = {
       0,  // Number of initial errors to ignore.
-      static_cast<int>(
-          base::TimeDelta::FromSeconds(5).InMilliseconds()),  // Initial delay.
+      static_cast<int>(base::Seconds(5).InMilliseconds()),  // Initial delay.
       2,    // Factor to increase delay.
       0.1,  // Delay fuzzing.
-      static_cast<int>(
-          base::TimeDelta::FromMinutes(5).InMilliseconds()),  // Maximum delay.
+      static_cast<int>(base::Minutes(5).InMilliseconds()),  // Maximum delay.
       -1,  // Time to keep entries.  -1 == never discard.
   };
   net::BackoffEntry backoff(&policy);
diff --git a/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc b/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc
index 76c3930..fec9557 100644
--- a/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc
+++ b/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc
@@ -211,7 +211,7 @@
   BPF_ASSERT(getparam_thread.Start());
   getparam_thread.task_runner()->PostTask(
       FROM_HERE, base::BindOnce(&SchedGetParamThread, &thread_run));
-  BPF_ASSERT(thread_run.TimedWait(base::TimeDelta::FromMilliseconds(5000)));
+  BPF_ASSERT(thread_run.TimedWait(base::Milliseconds(5000)));
   getparam_thread.Stop();
 }
 
diff --git a/sandbox/linux/services/libc_interceptor.cc b/sandbox/linux/services/libc_interceptor.cc
index c08a450f..cc2a5291 100644
--- a/sandbox/linux/services/libc_interceptor.cc
+++ b/sandbox/linux/services/libc_interceptor.cc
@@ -145,7 +145,7 @@
 
   base::UmaHistogramCustomMicrosecondsTimes(
       "Linux.ProxyLocaltimeCallToBrowserUs", timer.Elapsed(),
-      base::TimeDelta::FromMicroseconds(1), base::TimeDelta::FromSeconds(1),
+      base::Microseconds(1), base::Seconds(1),
       /*buckets=*/50);
 }
 
diff --git a/sandbox/linux/services/scoped_process_unittest.cc b/sandbox/linux/services/scoped_process_unittest.cc
index 6e2df5f..ffdadb9 100644
--- a/sandbox/linux/services/scoped_process_unittest.cc
+++ b/sandbox/linux/services/scoped_process_unittest.cc
@@ -102,7 +102,7 @@
 }
 
 void SleepInMsAndWriteOneByte(int time_to_sleep, int fd) {
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(time_to_sleep));
+  base::PlatformThread::Sleep(base::Milliseconds(time_to_sleep));
   CHECK(1 == write(fd, "1", 1));
 }
 
diff --git a/sandbox/win/tests/common/controller.cc b/sandbox/win/tests/common/controller.cc
index 9e3e23b..bad5a88 100644
--- a/sandbox/win/tests/common/controller.cc
+++ b/sandbox/win/tests/common/controller.cc
@@ -273,9 +273,8 @@
 }
 
 void TestRunner::SetTimeout(DWORD timeout_ms) {
-  SetTimeout(timeout_ms == INFINITE
-                 ? base::TimeDelta::Max()
-                 : base::TimeDelta::FromMilliseconds(timeout_ms));
+  SetTimeout(timeout_ms == INFINITE ? base::TimeDelta::Max()
+                                    : base::Milliseconds(timeout_ms));
 }
 
 void TestRunner::SetTimeout(base::TimeDelta timeout) {
@@ -283,8 +282,7 @@
   DCHECK(timeout >= base::TimeDelta());
   // We need millisecond DWORDS but also cannot take exactly INFINITE,
   // for that should supply ::Max().
-  DCHECK(timeout.is_inf() ||
-         timeout < base::TimeDelta::FromMilliseconds(UINT_MAX));
+  DCHECK(timeout.is_inf() || timeout < base::Milliseconds(UINT_MAX));
   timeout_ = timeout;
 }
 
diff --git a/services/audio/input_controller.cc b/services/audio/input_controller.cc
index e9c72038..283527a 100644
--- a/services/audio/input_controller.cc
+++ b/services/audio/input_controller.cc
@@ -35,13 +35,11 @@
 using OpenOutcome = media::AudioInputStream::OpenOutcome;
 
 const int kMaxInputChannels = 3;
-constexpr base::TimeDelta kCheckMutedStateInterval =
-    base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kCheckMutedStateInterval = base::Seconds(1);
 
 #if defined(AUDIO_POWER_MONITORING)
 // Time in seconds between two successive measurements of audio power levels.
-constexpr base::TimeDelta kPowerMonitorLogInterval =
-    base::TimeDelta::FromSeconds(15);
+constexpr base::TimeDelta kPowerMonitorLogInterval = base::Seconds(15);
 
 // A warning will be logged when the microphone audio volume is below this
 // threshold.
diff --git a/services/audio/input_controller_unittest.cc b/services/audio/input_controller_unittest.cc
index b1adc06..ded032355 100644
--- a/services/audio/input_controller_unittest.cc
+++ b/services/audio/input_controller_unittest.cc
@@ -44,8 +44,7 @@
 
 // InputController will poll once every second, so wait at most a bit
 // more than that for the callbacks.
-constexpr base::TimeDelta kOnMutePollInterval =
-    base::TimeDelta::FromMilliseconds(1000);
+constexpr base::TimeDelta kOnMutePollInterval = base::Milliseconds(1000);
 
 }  // namespace
 
diff --git a/services/audio/input_sync_writer.cc b/services/audio/input_sync_writer.cc
index 8d122b77..b038cafa 100644
--- a/services/audio/input_sync_writer.cc
+++ b/services/audio/input_sync_writer.cc
@@ -233,8 +233,7 @@
 
 void InputSyncWriter::CheckTimeSinceLastWrite() {
 #if !defined(OS_ANDROID)
-  static const base::TimeDelta kLogDelayThreadhold =
-      base::TimeDelta::FromMilliseconds(500);
+  static const base::TimeDelta kLogDelayThreadhold = base::Milliseconds(500);
 
   base::TimeTicks new_write_time = base::TimeTicks::Now();
   std::ostringstream oss;
diff --git a/services/audio/loopback_stream.cc b/services/audio/loopback_stream.cc
index 077582c..e905c954 100644
--- a/services/audio/loopback_stream.cc
+++ b/services/audio/loopback_stream.cc
@@ -24,8 +24,7 @@
 
 // Start with a conservative, but reasonable capture delay that should work for
 // most platforms (i.e., not needing an increase during a loopback session).
-constexpr base::TimeDelta kInitialCaptureDelay =
-    base::TimeDelta::FromMilliseconds(20);
+constexpr base::TimeDelta kInitialCaptureDelay = base::Milliseconds(20);
 
 }  // namespace
 
@@ -375,9 +374,8 @@
   frames_elapsed_ += frames_per_buffer;
   next_generate_time_ =
       first_generate_time_ +
-      base::TimeDelta::FromMicroseconds(frames_elapsed_ *
-                                        base::Time::kMicrosecondsPerSecond /
-                                        output_params_.sample_rate());
+      base::Microseconds(frames_elapsed_ * base::Time::kMicrosecondsPerSecond /
+                         output_params_.sample_rate());
   const base::TimeTicks now = clock_->NowTicks();
   if (next_generate_time_ < now) {
     TRACE_EVENT_INSTANT1("audio", "GenerateMoreAudio Is Behind",
@@ -393,9 +391,9 @@
         (target_frame_count / frames_per_buffer + 1) * frames_per_buffer;
     next_generate_time_ =
         first_generate_time_ +
-        base::TimeDelta::FromMicroseconds(frames_elapsed_ *
-                                          base::Time::kMicrosecondsPerSecond /
-                                          output_params_.sample_rate());
+        base::Microseconds(frames_elapsed_ *
+                           base::Time::kMicrosecondsPerSecond /
+                           output_params_.sample_rate());
   }
 
   // Note: It's acceptable for |next_generate_time_| to be slightly before |now|
diff --git a/services/audio/loopback_stream_unittest.cc b/services/audio/loopback_stream_unittest.cc
index af54a9e..bc226038 100644
--- a/services/audio/loopback_stream_unittest.cc
+++ b/services/audio/loopback_stream_unittest.cc
@@ -45,17 +45,14 @@
 constexpr double kMiddleCFreq = 261.626;
 
 // Audio buffer duration.
-constexpr base::TimeDelta kBufferDuration =
-    base::TimeDelta::FromMilliseconds(10);
+constexpr base::TimeDelta kBufferDuration = base::Milliseconds(10);
 
 // Local audio output delay.
-constexpr base::TimeDelta kDelayUntilOutput =
-    base::TimeDelta::FromMilliseconds(20);
+constexpr base::TimeDelta kDelayUntilOutput = base::Milliseconds(20);
 
 // The amount of audio signal to record each time PumpAudioAndTakeNewRecording()
 // is called.
-constexpr base::TimeDelta kTestRecordingDuration =
-    base::TimeDelta::FromMilliseconds(250);
+constexpr base::TimeDelta kTestRecordingDuration = base::Milliseconds(250);
 
 const media::AudioParameters& GetLoopbackStreamParams() {
   // 48 kHz, 2-channel audio, with 10 ms buffers.
diff --git a/services/audio/output_controller.cc b/services/audio/output_controller.cc
index 7ff95fcaf..130882b5 100644
--- a/services/audio/output_controller.cc
+++ b/services/audio/output_controller.cc
@@ -33,8 +33,7 @@
 namespace {
 
 // Time in seconds between two successive measurements of audio power levels.
-constexpr base::TimeDelta kPowerMonitorLogInterval =
-    base::TimeDelta::FromSeconds(15);
+constexpr base::TimeDelta kPowerMonitorLogInterval = base::Seconds(15);
 
 const char* StateToString(OutputController::State state) {
   switch (state) {
@@ -492,7 +491,7 @@
   task_runner_->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&OutputController::ReportError, weak_this_for_stream_),
-      base::TimeDelta::FromSeconds(1));
+      base::Seconds(1));
 }
 
 void OutputController::StopCloseAndClearStream() {
diff --git a/services/audio/output_stream.cc b/services/audio/output_stream.cc
index e3031e8f..1ee556b 100644
--- a/services/audio/output_stream.cc
+++ b/services/audio/output_stream.cc
@@ -197,11 +197,9 @@
   if (OutputController::will_monitor_audio_levels()) {
     DCHECK(!poll_timer_.IsRunning());
     // base::Unretained is safe because |this| owns |poll_timer_|.
-    poll_timer_.Start(
-        FROM_HERE,
-        base::TimeDelta::FromSeconds(1) / kPowerMeasurementsPerSecond,
-        base::BindRepeating(&OutputStream::PollAudioLevel,
-                            base::Unretained(this)));
+    poll_timer_.Start(FROM_HERE, base::Seconds(1) / kPowerMeasurementsPerSecond,
+                      base::BindRepeating(&OutputStream::PollAudioLevel,
+                                          base::Unretained(this)));
     return;
   }
 
diff --git a/services/audio/owning_audio_manager_accessor.cc b/services/audio/owning_audio_manager_accessor.cc
index 62701b6..9b1c69fc2 100644
--- a/services/audio/owning_audio_manager_accessor.cc
+++ b/services/audio/owning_audio_manager_accessor.cc
@@ -37,7 +37,7 @@
   int timeout_int = 0;
   if (!base::StringToInt(timeout_string, &timeout_int) || timeout_int == 0)
     return absl::nullopt;
-  return base::TimeDelta::FromSeconds(timeout_int);
+  return base::Seconds(timeout_int);
 }
 
 HangAction GetAudioThreadHangAction() {
diff --git a/services/audio/public/cpp/output_device_unittest.cc b/services/audio/public/cpp/output_device_unittest.cc
index 9ff04e6e..8ccd4a3b 100644
--- a/services/audio/public/cpp/output_device_unittest.cc
+++ b/services/audio/public/cpp/output_device_unittest.cc
@@ -34,13 +34,12 @@
 namespace {
 
 constexpr float kAudioData = 0.618;
-constexpr base::TimeDelta kDelay = base::TimeDelta::FromMicroseconds(123);
+constexpr base::TimeDelta kDelay = base::Microseconds(123);
 constexpr char kDeviceId[] = "testdeviceid";
 constexpr int kFramesSkipped = 456;
 constexpr int kFrames = 789;
 constexpr char kNonDefaultDeviceId[] = "valid-nondefault-device-id";
-constexpr base::TimeDelta kAuthTimeout =
-    base::TimeDelta::FromMilliseconds(10000);
+constexpr base::TimeDelta kAuthTimeout = base::Milliseconds(10000);
 constexpr int kBitstreamFrames = 101;
 constexpr size_t kBitstreamDataSize = 512;
 
@@ -153,8 +152,7 @@
     // TODO(https://crbug.com/838367): Fuchsia bots use nested virtualization,
     // which can result in unusually long scheduling delays, so allow a longer
     // timeout.
-    reader->set_max_wait_timeout_for_test(
-        base::TimeDelta::FromMilliseconds(250));
+    reader->set_max_wait_timeout_for_test(base::Milliseconds(250));
 #endif
   }
 
diff --git a/services/audio/public/cpp/sounds/audio_stream_handler.cc b/services/audio/public/cpp/sounds/audio_stream_handler.cc
index 54978f7..e8e9f52 100644
--- a/services/audio/public/cpp/sounds/audio_stream_handler.cc
+++ b/services/audio/public/cpp/sounds/audio_stream_handler.cc
@@ -129,9 +129,8 @@
       if (delayed_stop_posted_)
         return 0;
       delayed_stop_posted_ = true;
-      task_runner_->PostDelayedTask(
-          FROM_HERE, stop_closure_.callback(),
-          base::TimeDelta::FromMilliseconds(kKeepAliveMs));
+      task_runner_->PostDelayedTask(FROM_HERE, stop_closure_.callback(),
+                                    base::Milliseconds(kKeepAliveMs));
       return 0;
     }
     cursor_ += bytes_written;
diff --git a/services/audio/public/cpp/sounds/audio_stream_handler_unittest.cc b/services/audio/public/cpp/sounds/audio_stream_handler_unittest.cc
index 577e558f..44cf4c3 100644
--- a/services/audio/public/cpp/sounds/audio_stream_handler_unittest.cc
+++ b/services/audio/public/cpp/sounds/audio_stream_handler_unittest.cc
@@ -50,8 +50,7 @@
       std::make_unique<AudioStreamHandler>(base::DoNothing(), data);
 
   ASSERT_TRUE(audio_stream_handler->IsInitialized());
-  EXPECT_EQ(base::TimeDelta::FromMicroseconds(20u),
-            audio_stream_handler->duration());
+  EXPECT_EQ(base::Microseconds(20u), audio_stream_handler->duration());
 
   ASSERT_TRUE(audio_stream_handler->Play());
 
@@ -75,20 +74,19 @@
       std::make_unique<AudioStreamHandler>(base::DoNothing(), data);
 
   ASSERT_TRUE(audio_stream_handler->IsInitialized());
-  EXPECT_EQ(base::TimeDelta::FromMicroseconds(20u),
-            audio_stream_handler->duration());
+  EXPECT_EQ(base::Microseconds(20u), audio_stream_handler->duration());
 
   ASSERT_TRUE(audio_stream_handler->Play());
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(base::IgnoreResult(&AudioStreamHandler::Play),
                      base::Unretained(audio_stream_handler.get())),
-      base::TimeDelta::FromSeconds(1));
+      base::Seconds(1));
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&AudioStreamHandler::Stop,
                      base::Unretained(audio_stream_handler.get())),
-      base::TimeDelta::FromSeconds(2));
+      base::Seconds(2));
 
   run_loop.Run();
 
diff --git a/services/audio/public/cpp/sounds/test_data.cc b/services/audio/public/cpp/sounds/test_data.cc
index 0df4fa8..23814e672 100644
--- a/services/audio/public/cpp/sounds/test_data.cc
+++ b/services/audio/public/cpp/sounds/test_data.cc
@@ -34,8 +34,8 @@
 void TestObserver::Render() {
   if (!is_playing)
     return;
-  if (callback_->Render(base::TimeDelta::FromSeconds(0), base::TimeTicks::Now(),
-                        0, bus_.get())) {
+  if (callback_->Render(base::Seconds(0), base::TimeTicks::Now(), 0,
+                        bus_.get())) {
     task_runner_->PostTask(FROM_HERE, base::BindOnce(&TestObserver::Render,
                                                      base::Unretained(this)));
   }
diff --git a/services/audio/service_metrics.cc b/services/audio/service_metrics.cc
index 9fe802c..5781093 100644
--- a/services/audio/service_metrics.cc
+++ b/services/audio/service_metrics.cc
@@ -30,8 +30,7 @@
   DCHECK_NE(base::TimeTicks(), has_connections_start_);
   UMA_HISTOGRAM_CUSTOM_TIMES("Media.AudioService.HasConnectionsDuration",
                              clock_->NowTicks() - has_connections_start_,
-                             base::TimeDelta(), base::TimeDelta::FromDays(7),
-                             50);
+                             base::TimeDelta(), base::Days(7), 50);
   has_connections_start_ = base::TimeTicks();
 }
 
@@ -44,8 +43,7 @@
 
   UMA_HISTOGRAM_CUSTOM_TIMES("Media.AudioService.HasNoConnectionsDuration",
                              clock_->NowTicks() - has_no_connections_start_,
-                             base::TimeDelta(),
-                             base::TimeDelta::FromMinutes(10), 50);
+                             base::TimeDelta(), base::Minutes(10), 50);
   has_no_connections_start_ = base::TimeTicks();
 }
 
diff --git a/services/audio/service_metrics_unittest.cc b/services/audio/service_metrics_unittest.cc
index 3e9fed0..e7821bc 100644
--- a/services/audio/service_metrics_unittest.cc
+++ b/services/audio/service_metrics_unittest.cc
@@ -20,7 +20,7 @@
   base::HistogramTester histogram_tester;
   std::unique_ptr<ServiceMetrics> metrics =
       std::make_unique<ServiceMetrics>(&test_clock);
-  test_clock.Advance(base::TimeDelta::FromDays(6));
+  test_clock.Advance(base::Days(6));
   metrics.reset();
 }
 
@@ -31,11 +31,10 @@
   base::HistogramTester histogram_tester;
   ServiceMetrics metrics(&test_clock);
   metrics.HasConnections();
-  test_clock.Advance(base::TimeDelta::FromMinutes(42));
+  test_clock.Advance(base::Minutes(42));
   metrics.HasNoConnections();
   histogram_tester.ExpectTimeBucketCount(
-      "Media.AudioService.HasConnectionsDuration",
-      base::TimeDelta::FromMinutes(42), 1);
+      "Media.AudioService.HasConnectionsDuration", base::Minutes(42), 1);
   histogram_tester.ExpectTotalCount("Media.AudioService.HasConnectionsDuration",
                                     1);
 }
@@ -47,13 +46,12 @@
   base::HistogramTester histogram_tester;
   ServiceMetrics metrics(&test_clock);
   metrics.HasConnections();
-  test_clock.Advance(base::TimeDelta::FromMinutes(5));
+  test_clock.Advance(base::Minutes(5));
   metrics.HasNoConnections();
-  test_clock.Advance(base::TimeDelta::FromMilliseconds(10));
+  test_clock.Advance(base::Milliseconds(10));
   metrics.HasConnections();
   histogram_tester.ExpectTimeBucketCount(
-      "Media.AudioService.HasNoConnectionsDuration",
-      base::TimeDelta::FromMilliseconds(10), 1);
+      "Media.AudioService.HasNoConnectionsDuration", base::Milliseconds(10), 1);
   histogram_tester.ExpectTotalCount(
       "Media.AudioService.HasNoConnectionsDuration", 1);
 }
diff --git a/services/audio/snooper_node.cc b/services/audio/snooper_node.cc
index e1544d8..a29aa82d 100644
--- a/services/audio/snooper_node.cc
+++ b/services/audio/snooper_node.cc
@@ -24,8 +24,7 @@
 // indefinitely. In most normal cases, reads will cause the delay buffer to
 // automatically prune its recording down to well under this maximum (e.g.,
 // around 100 milliseconds of audio).
-constexpr base::TimeDelta kDelayBufferSize =
-    base::TimeDelta::FromMilliseconds(1000);
+constexpr base::TimeDelta kDelayBufferSize = base::Milliseconds(1000);
 
 // A frequency at which people cannot discern tones that differ by 1 Hz. This is
 // based on research that shows people can discern tones only when they are more
diff --git a/services/audio/snooper_node_unittest.cc b/services/audio/snooper_node_unittest.cc
index 3a76857..af935e8 100644
--- a/services/audio/snooper_node_unittest.cc
+++ b/services/audio/snooper_node_unittest.cc
@@ -36,13 +36,12 @@
 constexpr double kSourceVolume = 0.5;
 
 // The duration of the audio that flows through the SnooperNode for each test.
-constexpr base::TimeDelta kTestDuration = base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kTestDuration = base::Seconds(10);
 
 // The amount of time in the future where the inbound audio is being recorded.
 // This simulates an audio output stream that has rendered audio that is
 // scheduled to be played out in the near future.
-constexpr base::TimeDelta kInputAdvanceTime =
-    base::TimeDelta::FromMilliseconds(2);
+constexpr base::TimeDelta kInputAdvanceTime = base::Milliseconds(2);
 
 // Command-line switch to request dumping the recorded output to a WAV file for
 // analyzing the recorded output from one of the tests.
@@ -88,8 +87,7 @@
     // be rendered. Use 20 ms as a reasonable baseline--the same as the initial
     // setting in audio::LoopbackStream--which will work for almost all normal
     // use cases.
-    constexpr base::TimeDelta kBaselineOutputDelay =
-        base::TimeDelta::FromMilliseconds(20);
+    constexpr base::TimeDelta kBaselineOutputDelay = base::Milliseconds(20);
     output_delay_ = kBaselineOutputDelay;
 
     // Increase the output delay in special cases...
@@ -130,8 +128,7 @@
     // Initialize a test clock and task runner. The starting TimeTicks value is
     // "huge" to ensure time calculations are being tested for overflow cases.
     task_runner_ = base::MakeRefCounted<base::TestMockTimeTaskRunner>(
-        base::Time(), base::TimeTicks() +
-                          base::TimeDelta::FromMicroseconds(INT64_C(1) << 62));
+        base::Time(), base::TimeTicks() + base::Microseconds(INT64_C(1) << 62));
   }
 
   void TearDown() override {
@@ -249,7 +246,7 @@
     const double time_step = skew / input_params().sample_rate();
     for (int position = 0;; position += input_params().frames_per_buffer()) {
       const base::TimeTicks task_time =
-          start_time + base::TimeDelta::FromSecondsD(position * time_step);
+          start_time + base::Seconds(position * time_step);
       if (task_time >= end_time) {
         break;
       }
@@ -270,7 +267,7 @@
     const double time_step = skew / output_params().sample_rate();
     for (int position = 0;; position += output_params().frames_per_buffer()) {
       const base::TimeTicks task_time =
-          start_time + base::TimeDelta::FromSecondsD(position * time_step);
+          start_time + base::Seconds(position * time_step);
       if (task_time >= end_time) {
         break;
       }
@@ -395,7 +392,7 @@
       next_drop_position += input_frames_in_one_second;
     }
     const base::TimeTicks task_time =
-        start_time + base::TimeDelta::FromSecondsD(position * time_step);
+        start_time + base::Seconds(position * time_step);
     if (task_time >= end_time) {
       break;
     }
@@ -488,7 +485,7 @@
   int position_offset = 0;
   for (int position = 0;; position += input_params().frames_per_buffer()) {
     const base::TimeTicks task_time =
-        start_time + base::TimeDelta::FromSecondsD(position * time_step);
+        start_time + base::Seconds(position * time_step);
     if (task_time >= end_time) {
       break;
     }
@@ -510,7 +507,7 @@
     }
     const base::TimeTicks reference_time =
         start_time + kInputAdvanceTime +
-        base::TimeDelta::FromSecondsD((position + position_offset) * time_step);
+        base::Seconds((position + position_offset) * time_step);
     task_runner()->PostDelayedTask(
         FROM_HERE,
         base::BindOnce(&FakeLoopbackGroupMember::RenderMoreAudio,
@@ -558,8 +555,7 @@
 // Tests that reasonable render times are suggested as audio is feeding into, or
 // not feeding into, the SnooperNode.
 TEST_P(SnooperNodeTest, SuggestsRenderTimes) {
-  constexpr base::TimeDelta kTwentyMilliseconds =
-      base::TimeDelta::FromMilliseconds(20);
+  constexpr base::TimeDelta kTwentyMilliseconds = base::Milliseconds(20);
 
   CreateNewPipeline();
 
@@ -599,9 +595,8 @@
   for (int i = 1; i <= 3; ++i) {
     const base::TimeTicks next_input_time =
         first_input_time +
-        base::TimeDelta::FromSecondsD(
-            i * input_params().frames_per_buffer() /
-            static_cast<double>(input_params().sample_rate()));
+        base::Seconds(i * input_params().frames_per_buffer() /
+                      static_cast<double>(input_params().sample_rate()));
     group_member()->RenderMoreAudio(next_input_time);
     const absl::optional<base::TimeTicks> next_suggestion =
         node()->SuggestLatestRenderTime(output_params().frames_per_buffer());
@@ -634,8 +629,7 @@
 // Tests that the SnooperNode can be asked to seek (forward or backward) its
 // Render() positions, as the needs of the system demand.
 TEST_P(SnooperNodeTest, HandlesSeekedRenderTimes) {
-  constexpr base::TimeDelta kQuarterSecond =
-      base::TimeDelta::FromMilliseconds(250);
+  constexpr base::TimeDelta kQuarterSecond = base::Milliseconds(250);
 
   CreateNewPipeline();
 
@@ -647,7 +641,7 @@
   double time_step = 1.0 / input_params().sample_rate();
   for (int position = 0;; position += input_params().frames_per_buffer()) {
     const base::TimeTicks task_time =
-        start_time + base::TimeDelta::FromSecondsD(position * time_step);
+        start_time + base::Seconds(position * time_step);
     if (task_time >= end_time) {
       break;
     }
@@ -672,7 +666,7 @@
   time_step = 1.0 / output_params().sample_rate();
   for (int position = 0;; position += output_params().frames_per_buffer()) {
     const base::TimeTicks task_time =
-        start_time + base::TimeDelta::FromSecondsD(position * time_step);
+        start_time + base::Seconds(position * time_step);
     if (task_time >= end_time) {
       break;
     }
diff --git a/services/audio/sync_reader.cc b/services/audio/sync_reader.cc
index ab173bb8..9a990353 100644
--- a/services/audio/sync_reader.cc
+++ b/services/audio/sync_reader.cc
@@ -73,7 +73,7 @@
     maximum_wait_time_ =
         params.GetBufferDuration() * kBufferDurationPercent.Get();
   } else {
-    maximum_wait_time_ = base::TimeDelta::FromMilliseconds(20);
+    maximum_wait_time_ = base::Milliseconds(20);
   }
 #endif
 
@@ -292,9 +292,8 @@
 
     base::TimeDelta time_since_start = base::TimeTicks::Now() - start_time;
     UMA_HISTOGRAM_CUSTOM_TIMES("Media.AudioOutputControllerDataNotReady",
-                               time_since_start,
-                               base::TimeDelta::FromMilliseconds(1),
-                               base::TimeDelta::FromMilliseconds(1000), 50);
+                               time_since_start, base::Milliseconds(1),
+                               base::Milliseconds(1000), 50);
     return false;
   }
 
diff --git a/services/audio/test/audio_system_to_service_adapter_test.cc b/services/audio/test/audio_system_to_service_adapter_test.cc
index a0ea8d32..661dc8ad 100644
--- a/services/audio/test/audio_system_to_service_adapter_test.cc
+++ b/services/audio/test/audio_system_to_service_adapter_test.cc
@@ -343,7 +343,7 @@
 
 namespace {
 
-static constexpr auto kResponseDelay = base::TimeDelta::FromMilliseconds(10);
+static constexpr auto kResponseDelay = base::Milliseconds(10);
 static constexpr char kSomeDeviceId[] = "Some device";
 static constexpr char kValidReplyId[] =
     "If you can read it you received the reply";
diff --git a/services/cert_verifier/cert_net_url_loader/cert_net_fetcher_url_loader.cc b/services/cert_verifier/cert_net_url_loader/cert_net_fetcher_url_loader.cc
index c9ab70a..2544b50a 100644
--- a/services/cert_verifier/cert_net_url_loader/cert_net_fetcher_url_loader.cc
+++ b/services/cert_verifier/cert_net_url_loader/cert_net_fetcher_url_loader.cc
@@ -206,8 +206,8 @@
 
 base::TimeDelta GetTimeout(int timeout_milliseconds) {
   if (timeout_milliseconds == net::CertNetFetcher::DEFAULT)
-    return base::TimeDelta::FromSeconds(kTimeoutSeconds);
-  return base::TimeDelta::FromMilliseconds(timeout_milliseconds);
+    return base::Seconds(kTimeoutSeconds);
+  return base::Milliseconds(timeout_milliseconds);
 }
 
 size_t GetMaxResponseBytes(int max_response_bytes,
diff --git a/services/cert_verifier/cert_verifier_service_unittest.cc b/services/cert_verifier/cert_verifier_service_unittest.cc
index 7257dbf..3dc4198 100644
--- a/services/cert_verifier/cert_verifier_service_unittest.cc
+++ b/services/cert_verifier/cert_verifier_service_unittest.cc
@@ -216,8 +216,8 @@
       request_infos.emplace_back(
           std::move(dummy_params),
           static_cast<uint32_t>(net::NetLogSourceType::CERT_VERIFIER_JOB),
-          1234 + i, time_zero + base::TimeDelta::FromSeconds(i),
-          std::move(cv_service_req), std::move(cv_request_receiver));
+          1234 + i, time_zero + base::Seconds(i), std::move(cv_service_req),
+          std::move(cv_request_receiver));
     }
 
     for (RequestInfo& info : request_infos) {
diff --git a/services/data_decoder/public/cpp/data_decoder.cc b/services/data_decoder/public/cpp/data_decoder.cc
index b7cc87b..f0a6cf78 100644
--- a/services/data_decoder/public/cpp/data_decoder.cc
+++ b/services/data_decoder/public/cpp/data_decoder.cc
@@ -33,8 +33,7 @@
 // (if any) may be killed and only restarted once needed again.
 // On platforms (like iOS) or environments (like some unit tests) where
 // out-of-process services are not used, this has no effect.
-constexpr base::TimeDelta kServiceProcessIdleTimeoutDefault{
-    base::TimeDelta::FromSeconds(5)};
+constexpr base::TimeDelta kServiceProcessIdleTimeoutDefault{base::Seconds(5)};
 
 // Encapsulates an in-process data decoder parsing request. This provides shared
 // ownership of the caller's callback so that it may be invoked exactly once by
diff --git a/services/device/battery/battery_status_manager_mac.cc b/services/device/battery/battery_status_manager_mac.cc
index 3f22ecd..efbf817 100644
--- a/services/device/battery/battery_status_manager_mac.cc
+++ b/services/device/battery/battery_status_manager_mac.cc
@@ -85,10 +85,9 @@
 
     // Battery is charging: set the charging time if it's available, otherwise
     // set to +infinity.
-    status->charging_time =
-        charging_time != -1
-            ? base::TimeDelta::FromMinutes(charging_time).InSeconds()
-            : std::numeric_limits<double>::infinity();
+    status->charging_time = charging_time != -1
+                                ? base::Minutes(charging_time).InSeconds()
+                                : std::numeric_limits<double>::infinity();
   } else {
     // Battery is not charging.
     // Set chargingTime to +infinity if the battery is not charged. Otherwise
@@ -102,8 +101,7 @@
       SInt64 discharging_time =
           GetValueAsSInt64(description, CFSTR(kIOPSTimeToEmptyKey), -1);
       if (discharging_time != -1) {
-        status->discharging_time =
-            base::TimeDelta::FromMinutes(discharging_time).InSeconds();
+        status->discharging_time = base::Minutes(discharging_time).InSeconds();
       }
     }
   }
diff --git a/services/device/generic_sensor/platform_sensor_accelerometer_mac.cc b/services/device/generic_sensor/platform_sensor_accelerometer_mac.cc
index 2e93fb5..80477cd5 100644
--- a/services/device/generic_sensor/platform_sensor_accelerometer_mac.cc
+++ b/services/device/generic_sensor/platform_sensor_accelerometer_mac.cc
@@ -109,9 +109,7 @@
 
   timer_.Start(
       FROM_HERE,
-      base::TimeDelta::FromMicroseconds(base::Time::kMicrosecondsPerSecond /
-                                        frequency),
-      this,
+      base::Microseconds(base::Time::kMicrosecondsPerSecond / frequency), this,
       &PlatformSensorAccelerometerMac::BlockingTaskRunnerHelper::PollForData);
 }
 
diff --git a/services/device/generic_sensor/platform_sensor_chromeos.cc b/services/device/generic_sensor/platform_sensor_chromeos.cc
index d0289ae..1ec8145c 100644
--- a/services/device/generic_sensor/platform_sensor_chromeos.cc
+++ b/services/device/generic_sensor/platform_sensor_chromeos.cc
@@ -130,8 +130,7 @@
   }
 
   reading.raw.timestamp =
-      base::TimeDelta::FromNanoseconds(sample.at(channel_indices_.back()))
-          .InSecondsF();
+      base::Nanoseconds(sample.at(channel_indices_.back())).InSecondsF();
 
   UpdateSharedBufferAndNotifyClients(reading);
 }
diff --git a/services/device/generic_sensor/platform_sensor_chromeos_unittest.cc b/services/device/generic_sensor/platform_sensor_chromeos_unittest.cc
index 966a53f3..96944b3 100644
--- a/services/device/generic_sensor/platform_sensor_chromeos_unittest.cc
+++ b/services/device/generic_sensor/platform_sensor_chromeos_unittest.cc
@@ -136,7 +136,7 @@
   void GetRoundedSensorReadingSingle(SensorReadingSingle* reading_single) {
     reading_single->value = kFakeSampleData * kScaleValue;
     reading_single->timestamp =
-        base::TimeDelta::FromNanoseconds(kFakeTimestampData).InSecondsF();
+        base::Nanoseconds(kFakeTimestampData).InSecondsF();
 
     // No need to do rounding for these types of sensors.
   }
@@ -317,8 +317,7 @@
     reading_xyz->x = kFakeAxesSampleData[0] * kScaleValue;
     reading_xyz->y = kFakeAxesSampleData[1] * kScaleValue;
     reading_xyz->z = kFakeAxesSampleData[2] * kScaleValue;
-    reading_xyz->timestamp =
-        base::TimeDelta::FromNanoseconds(kFakeTimestampData).InSecondsF();
+    reading_xyz->timestamp = base::Nanoseconds(kFakeTimestampData).InSecondsF();
 
     switch (GetParam().first) {
       case mojom::SensorType::ACCELEROMETER:
diff --git a/services/device/generic_sensor/platform_sensor_provider_chromeos.cc b/services/device/generic_sensor/platform_sensor_provider_chromeos.cc
index 19f5581..6ada6cfd 100644
--- a/services/device/generic_sensor/platform_sensor_provider_chromeos.cc
+++ b/services/device/generic_sensor/platform_sensor_provider_chromeos.cc
@@ -24,8 +24,7 @@
 namespace device {
 namespace {
 
-constexpr base::TimeDelta kReconnectDelay =
-    base::TimeDelta::FromMilliseconds(1000);
+constexpr base::TimeDelta kReconnectDelay = base::Milliseconds(1000);
 
 absl::optional<mojom::SensorType> ConvertSensorType(
     chromeos::sensors::mojom::DeviceType device_type) {
diff --git a/services/device/generic_sensor/platform_sensor_reader_linux.cc b/services/device/generic_sensor/platform_sensor_reader_linux.cc
index 697b745..e0282ad 100644
--- a/services/device/generic_sensor/platform_sensor_reader_linux.cc
+++ b/services/device/generic_sensor/platform_sensor_reader_linux.cc
@@ -123,11 +123,10 @@
     double frequency) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK(!timer_.IsRunning());
-  timer_.Start(FROM_HERE,
-               base::TimeDelta::FromMicroseconds(
-                   base::Time::kMicrosecondsPerSecond / frequency),
-               this,
-               &PollingSensorReader::BlockingTaskRunnerHelper::PollForData);
+  timer_.Start(
+      FROM_HERE,
+      base::Microseconds(base::Time::kMicrosecondsPerSecond / frequency), this,
+      &PollingSensorReader::BlockingTaskRunnerHelper::PollForData);
 }
 
 void PollingSensorReader::BlockingTaskRunnerHelper::StopPolling() {
diff --git a/services/device/generic_sensor/platform_sensor_reader_win.cc b/services/device/generic_sensor/platform_sensor_reader_win.cc
index f360f69b..8d35f51 100644
--- a/services/device/generic_sensor/platform_sensor_reader_win.cc
+++ b/services/device/generic_sensor/platform_sensor_reader_win.cc
@@ -371,7 +371,7 @@
                                    min_interval.Receive());
   if (SUCCEEDED(hr) && min_interval.get().vt == VT_UI4) {
     params->min_reporting_interval =
-        base::TimeDelta::FromMilliseconds(min_interval.get().ulVal);
+        base::Milliseconds(min_interval.get().ulVal);
   }
 
   GUID interests[] = {SENSOR_EVENT_STATE_CHANGED, SENSOR_EVENT_DATA_UPDATED};
diff --git a/services/device/generic_sensor/platform_sensor_reader_winrt.cc b/services/device/generic_sensor/platform_sensor_reader_winrt.cc
index a134895f..fcc9457f 100644
--- a/services/device/generic_sensor/platform_sensor_reader_winrt.cc
+++ b/services/device/generic_sensor/platform_sensor_reader_winrt.cc
@@ -210,7 +210,7 @@
     return base::TimeDelta();
   }
 
-  return base::TimeDelta::FromMilliseconds(minimum_report_interval_ms);
+  return base::Milliseconds(minimum_report_interval_ms);
 }
 
 template <wchar_t const* runtime_class_id,
diff --git a/services/device/generic_sensor/platform_sensor_reader_winrt_unittests.cc b/services/device/generic_sensor/platform_sensor_reader_winrt_unittests.cc
index da4a7f4..11949b0d 100644
--- a/services/device/generic_sensor/platform_sensor_reader_winrt_unittests.cc
+++ b/services/device/generic_sensor/platform_sensor_reader_winrt_unittests.cc
@@ -675,8 +675,7 @@
   EXPECT_EQ(lastReportedTimestamp, 0);
 
   auto second_timestamp =
-      base::TimeDelta::FromSeconds(expectedTimestampDeltaSecs)
-          .ToWinrtDateTime();
+      base::Seconds(expectedTimestampDeltaSecs).ToWinrtDateTime();
   reading =
       Microsoft::WRL::Make<FakeLightSensorReadingWinrt>(second_timestamp, 0.0f);
   fake_sensor->TriggerFakeSensorReading(reading);
diff --git a/services/device/geolocation/location_arbitrator.cc b/services/device/geolocation/location_arbitrator.cc
index 7fc5167..d5d8494 100644
--- a/services/device/geolocation/location_arbitrator.cc
+++ b/services/device/geolocation/location_arbitrator.cc
@@ -22,7 +22,7 @@
 // To avoid oscillations, set this to twice the expected update interval of a
 // a GPS-type location provider (in case it misses a beat) plus a little.
 const base::TimeDelta LocationArbitrator::kFixStaleTimeoutTimeDelta =
-    base::TimeDelta::FromSeconds(11);
+    base::Seconds(11);
 
 LocationArbitrator::LocationArbitrator(
     const CustomLocationProviderCallback& custom_location_provider_getter,
diff --git a/services/device/geolocation/location_arbitrator_unittest.cc b/services/device/geolocation/location_arbitrator_unittest.cc
index 5340bc0..5a1b8df3 100644
--- a/services/device/geolocation/location_arbitrator_unittest.cc
+++ b/services/device/geolocation/location_arbitrator_unittest.cc
@@ -157,7 +157,7 @@
   base::TimeDelta SwitchOnFreshnessCliff() {
     // Add 1, to ensure it meets any greater-than test.
     return LocationArbitrator::kFixStaleTimeoutTimeDelta +
-           base::TimeDelta::FromMilliseconds(1);
+           base::Milliseconds(1);
   }
 
   FakeLocationProvider* network_location_provider() {
@@ -344,7 +344,7 @@
   arbitrator_->StartProvider(false);
 
   // Advance the time a short while to simulate successive calls.
-  AdvanceTimeNow(base::TimeDelta::FromMilliseconds(5));
+  AdvanceTimeNow(base::Milliseconds(5));
 
   // Update with a less accurate position to verify 240956.
   SetPositionFix(network_location_provider(), 3, 139, 150);
diff --git a/services/device/geolocation/network_location_provider.cc b/services/device/geolocation/network_location_provider.cc
index adae15b..4e381ce1 100644
--- a/services/device/geolocation/network_location_provider.cc
+++ b/services/device/geolocation/network_location_provider.cc
@@ -184,7 +184,7 @@
       FROM_HERE,
       base::BindOnce(&NetworkLocationProvider::RequestPosition,
                      weak_factory_.GetWeakPtr()),
-      base::TimeDelta::FromSeconds(kDataCompleteWaitSeconds));
+      base::Seconds(kDataCompleteWaitSeconds));
 
   OnWifiDataUpdate();
 }
diff --git a/services/device/geolocation/network_location_provider_unittest.cc b/services/device/geolocation/network_location_provider_unittest.cc
index ae5355cf..9cb67fb 100644
--- a/services/device/geolocation/network_location_provider_unittest.cc
+++ b/services/device/geolocation/network_location_provider_unittest.cc
@@ -776,8 +776,7 @@
   // Seed the last position cache with a geoposition value with the timestamp
   // set to 20 minutes ago.
   mojom::Geoposition last_position = CreateReferencePosition(0);
-  last_position.timestamp =
-      base::Time::Now() - base::TimeDelta::FromMinutes(20);
+  last_position.timestamp = base::Time::Now() - base::Minutes(20);
   EXPECT_TRUE(ValidateGeoposition(last_position));
   position_cache_.SetLastUsedNetworkPosition(last_position);
 
diff --git a/services/device/geolocation/position_cache_impl.cc b/services/device/geolocation/position_cache_impl.cc
index 5e5692c..88b980b 100644
--- a/services/device/geolocation/position_cache_impl.cc
+++ b/services/device/geolocation/position_cache_impl.cc
@@ -15,8 +15,7 @@
 // static
 const size_t PositionCacheImpl::kMaximumSize = 10;
 // static
-const base::TimeDelta PositionCacheImpl::kMaximumLifetime =
-    base::TimeDelta::FromDays(1);
+const base::TimeDelta PositionCacheImpl::kMaximumLifetime = base::Days(1);
 
 PositionCacheImpl::CacheEntry::CacheEntry(
     const Hash& hash,
diff --git a/services/device/geolocation/public_ip_address_location_notifier.cc b/services/device/geolocation/public_ip_address_location_notifier.cc
index 5b15817..82b01ed 100644
--- a/services/device/geolocation/public_ip_address_location_notifier.cc
+++ b/services/device/geolocation/public_ip_address_location_notifier.cc
@@ -16,8 +16,7 @@
 namespace {
 // Time to wait before issuing a network geolocation request in response to
 // network change notification. Network changes tend to occur in clusters.
-constexpr base::TimeDelta kNetworkChangeReactionDelay =
-    base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kNetworkChangeReactionDelay = base::Minutes(5);
 }  // namespace
 
 PublicIpAddressLocationNotifier::PublicIpAddressLocationNotifier(
diff --git a/services/device/geolocation/public_ip_address_location_notifier_unittest.cc b/services/device/geolocation/public_ip_address_location_notifier_unittest.cc
index d60399a..ddf51d5c 100644
--- a/services/device/geolocation/public_ip_address_location_notifier_unittest.cc
+++ b/services/device/geolocation/public_ip_address_location_notifier_unittest.cc
@@ -164,7 +164,7 @@
 
   // Second query for an earlier time.
   TestPositionQuery query_2;
-  notifier_.QueryNextPosition(time - base::TimeDelta::FromMinutes(5),
+  notifier_.QueryNextPosition(time - base::Minutes(5),
                               PARTIAL_TRAFFIC_ANNOTATION_FOR_TESTS,
                               query_2.MakeCallback());
   // Expect a cached result, so no new network request.
@@ -230,7 +230,7 @@
   for (int i = 0; i < 10; ++i) {
     network::TestNetworkConnectionTracker::GetInstance()->SetConnectionType(
         network::mojom::ConnectionType::CONNECTION_UNKNOWN);
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(5));
+    task_environment_.FastForwardBy(base::Seconds(5));
   }
   // Expect still no network request or callback.
   EXPECT_EQ(0, test_url_loader_factory_.NumPending());
diff --git a/services/device/geolocation/wifi_data_provider_chromeos.cc b/services/device/geolocation/wifi_data_provider_chromeos.cc
index 5fecd63..6c2c5e81 100644
--- a/services/device/geolocation/wifi_data_provider_chromeos.cc
+++ b/services/device/geolocation/wifi_data_provider_chromeos.cc
@@ -128,7 +128,7 @@
       base::BindOnce(
           &WifiDataProviderChromeOs::DoWifiScanTaskOnNetworkHandlerThread,
           this),
-      base::TimeDelta::FromMilliseconds(interval));
+      base::Milliseconds(interval));
 }
 
 void WifiDataProviderChromeOs::ScheduleStop() {
diff --git a/services/device/geolocation/wifi_data_provider_common.cc b/services/device/geolocation/wifi_data_provider_common.cc
index d0b0787..fb1670d 100644
--- a/services/device/geolocation/wifi_data_provider_common.cc
+++ b/services/device/geolocation/wifi_data_provider_common.cc
@@ -88,7 +88,7 @@
       FROM_HERE,
       base::BindOnce(&WifiDataProviderCommon::DoWifiScanTask,
                      weak_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(interval));
+      base::Milliseconds(interval));
 }
 
 }  // namespace device
diff --git a/services/device/geolocation/wifi_data_provider_lacros.cc b/services/device/geolocation/wifi_data_provider_lacros.cc
index 76761ec0..bb78e33 100644
--- a/services/device/geolocation/wifi_data_provider_lacros.cc
+++ b/services/device/geolocation/wifi_data_provider_lacros.cc
@@ -123,7 +123,7 @@
   if (!IsGeolocationServiceAvailable() || !started_)
     return;
 
-  base::TimeDelta interval = base::TimeDelta::FromMilliseconds(interval_ms);
+  base::TimeDelta interval = base::Milliseconds(interval_ms);
   if (!wifi_scan_timer_.IsRunning() ||
       interval < wifi_scan_timer_.GetCurrentDelay()) {
     wifi_scan_timer_.Start(
@@ -158,9 +158,9 @@
 
   // If the age is significantly longer than our long polling time, assume the
   // data is stale and trigger a faster update.
-  const bool is_data_stale = time_since_last_updated >
-                             base::TimeDelta::FromMilliseconds(
-                                 kTwoNoChangePollingIntervalMilliseconds * 2);
+  const bool is_data_stale =
+      time_since_last_updated >
+      base::Milliseconds(kTwoNoChangePollingIntervalMilliseconds * 2);
   if (!data_available || is_data_stale) {
     ScheduleNextScan(WifiPollingPolicy::Get()->NoWifiInterval());
     return;
diff --git a/services/device/geolocation/wifi_polling_policy.h b/services/device/geolocation/wifi_polling_policy.h
index 08ed9b54..427f4a62 100644
--- a/services/device/geolocation/wifi_polling_policy.h
+++ b/services/device/geolocation/wifi_polling_policy.h
@@ -102,8 +102,7 @@
       // Compute the remaining duration of the current interval. If the interval
       // is not yet complete, we will schedule a scan to occur once it is.
       base::TimeDelta remaining =
-          interval_start_ +
-          base::TimeDelta::FromMilliseconds(interval_duration_) - now;
+          interval_start_ + base::Milliseconds(interval_duration_) - now;
       remaining_millis = remaining.InMilliseconds();
     }
 
diff --git a/services/device/geolocation/win/location_provider_winrt.cc b/services/device/geolocation/win/location_provider_winrt.cc
index 5d62ef6..cc92f56 100644
--- a/services/device/geolocation/win/location_provider_winrt.cc
+++ b/services/device/geolocation/win/location_provider_winrt.cc
@@ -364,9 +364,8 @@
         base::TimeTicks::Now() - position_callback_initialized_time_;
 
     UmaHistogramCustomTimes("Windows.RT.LocationRequest.TimeToFirstPosition",
-                            time_to_first_position,
-                            base::TimeDelta::FromMilliseconds(1),
-                            base::TimeDelta::FromSeconds(10), 100);
+                            time_to_first_position, base::Milliseconds(1),
+                            base::Seconds(10), 100);
     position_received_ = true;
   }
   RecordUmaEvent(WindowsRTLocationRequestEvent::
diff --git a/services/device/serial/serial_io_handler_win.cc b/services/device/serial/serial_io_handler_win.cc
index 602e140..db6ae62 100644
--- a/services/device/serial/serial_io_handler_win.cc
+++ b/services/device/serial/serial_io_handler_win.cc
@@ -172,8 +172,7 @@
   COMMTIMEOUTS timeouts = {0};
   timeouts.ReadIntervalTimeout = MAXDWORD;
   timeouts.ReadTotalTimeoutMultiplier = MAXDWORD;
-  timeouts.ReadTotalTimeoutConstant =
-      base::TimeDelta::FromMinutes(5).InMilliseconds();
+  timeouts.ReadTotalTimeoutConstant = base::Minutes(5).InMilliseconds();
   if (!::SetCommTimeouts(file().GetPlatformFile(), &timeouts)) {
     SERIAL_PLOG(DEBUG) << "Failed to set serial timeouts";
     return false;
diff --git a/services/device/test/usb_test_gadget_impl.cc b/services/device/test/usb_test_gadget_impl.cc
index 9e6cb15..47dcf61d 100644
--- a/services/device/test/usb_test_gadget_impl.cc
+++ b/services/device/test/usb_test_gadget_impl.cc
@@ -242,7 +242,7 @@
           FROM_HERE,
           base::BindOnce(&UsbGadgetFactory::EnumerateDevices,
                          weak_factory_.GetWeakPtr()),
-          base::TimeDelta::FromMilliseconds(kReenumeratePeriod));
+          base::Milliseconds(kReenumeratePeriod));
     }
   }
 
@@ -399,7 +399,7 @@
         FROM_HERE,
         base::BindOnce(&UsbGadgetFactory::EnumerateDevices,
                        weak_factory_.GetWeakPtr()),
-        base::TimeDelta::FromMilliseconds(kReenumeratePeriod));
+        base::Milliseconds(kReenumeratePeriod));
   }
 
   UsbService* usb_service_ = nullptr;
diff --git a/services/device/time_zone_monitor/time_zone_monitor_win.cc b/services/device/time_zone_monitor/time_zone_monitor_win.cc
index 6a3b6f40..ef84550 100644
--- a/services/device/time_zone_monitor/time_zone_monitor_win.cc
+++ b/services/device/time_zone_monitor/time_zone_monitor_win.cc
@@ -44,8 +44,7 @@
       // the observers code while the computer is still suspended. The thread
       // controller is not dispatching delayed tasks uuntil the power resume
       // signal is received.
-      constexpr auto kMinimalPostTaskDelay =
-          base::TimeDelta::FromMilliseconds(1);
+      constexpr auto kMinimalPostTaskDelay = base::Milliseconds(1);
       base::SequencedTaskRunnerHandle::Get()->PostDelayedTask(
           FROM_HERE,
           base::BindOnce(&TimeZoneMonitorWin::OnWmTimechangeReceived,
diff --git a/services/device/usb/mojo/device_impl_unittest.cc b/services/device/usb/mojo/device_impl_unittest.cc
index 16b235896..7dc6b57 100644
--- a/services/device/usb/mojo/device_impl_unittest.cc
+++ b/services/device/usb/mojo/device_impl_unittest.cc
@@ -292,7 +292,7 @@
     // Simulate the asynchronous device opening process.
     base::SequencedTaskRunnerHandle::Get()->PostDelayedTask(
         FROM_HERE, base::BindOnce(std::move(callback), mock_handle_),
-        base::TimeDelta::FromMilliseconds(1));
+        base::Milliseconds(1));
   }
 
   void CloseMockHandle() {
diff --git a/services/device/usb/usb_context_unittest.cc b/services/device/usb/usb_context_unittest.cc
index 0148827e..2b7026a 100644
--- a/services/device/usb/usb_context_unittest.cc
+++ b/services/device/usb/usb_context_unittest.cc
@@ -36,7 +36,7 @@
         new UsbContextForTest(platform_context));
   }
   base::TimeDelta elapse = base::TimeTicks::Now() - start;
-  if (elapse > base::TimeDelta::FromSeconds(2)) {
+  if (elapse > base::Seconds(2)) {
     FAIL();
   }
 }
diff --git a/services/device/usb/usb_device_handle_usbfs.cc b/services/device/usb/usb_device_handle_usbfs.cc
index 801ce81..b086226 100644
--- a/services/device/usb/usb_device_handle_usbfs.cc
+++ b/services/device/usb/usb_device_handle_usbfs.cc
@@ -961,7 +961,7 @@
   transfer->timeout_closure.Reset(
       base::BindOnce(&UsbDeviceHandleUsbfs::OnTimeout, this, transfer));
   task_runner_->PostDelayedTask(FROM_HERE, transfer->timeout_closure.callback(),
-                                base::TimeDelta::FromMilliseconds(timeout));
+                                base::Milliseconds(timeout));
 }
 
 void UsbDeviceHandleUsbfs::OnTimeout(Transfer* transfer) {
diff --git a/services/image_annotation/annotator_unittest.cc b/services/image_annotation/annotator_unittest.cc
index 7fd17ec..bd6f224 100644
--- a/services/image_annotation/annotator_unittest.cc
+++ b/services/image_annotation/annotator_unittest.cc
@@ -225,7 +225,7 @@
   ]
 })";
 
-constexpr base::TimeDelta kThrottle = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kThrottle = base::Seconds(1);
 
 // The minimum dimension required for description annotation.
 constexpr int32_t kDescDim = Annotator::kDescMinDimension;
@@ -452,7 +452,7 @@
     // No request should be sent yet (because service is waiting to batch up
     // multiple requests).
     EXPECT_THAT(test_url_factory.requests(), IsEmpty());
-    test_task_env.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    test_task_env.FastForwardBy(base::Seconds(1));
     test_task_env.RunUntilIdle();
 
     // HTTP request should have been made.
@@ -556,7 +556,7 @@
   // No request should be sent yet (because service is waiting to batch up
   // multiple requests).
   EXPECT_THAT(test_url_factory.requests(), IsEmpty());
-  test_task_env.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_env.FastForwardBy(base::Seconds(1));
   test_task_env.RunUntilIdle();
 
   // HTTP request should have been made.
@@ -664,7 +664,7 @@
   // No request should be sent yet (because service is waiting to batch up
   // multiple requests).
   EXPECT_THAT(test_url_factory.requests(), IsEmpty());
-  test_task_env.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_env.FastForwardBy(base::Seconds(1));
   test_task_env.RunUntilIdle();
 
   // HTTP request should have been made.
@@ -780,7 +780,7 @@
   // No request should be sent yet (because service is waiting to batch up
   // multiple requests).
   EXPECT_THAT(test_url_factory.requests(), IsEmpty());
-  test_task_env.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_env.FastForwardBy(base::Seconds(1));
 
   // HTTP request should have been made.
   test_url_factory.ExpectRequestAndSimulateResponse(
@@ -837,7 +837,7 @@
   // No request should be sent yet (because service is waiting to batch up
   // multiple requests).
   EXPECT_THAT(test_url_factory.requests(), IsEmpty());
-  test_task_env.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_env.FastForwardBy(base::Seconds(1));
 
   // HTTP request should have been made.
   test_url_factory.ExpectRequestAndSimulateResponse(
@@ -921,7 +921,7 @@
   // No request should be sent yet (because service is waiting to batch up
   // multiple requests).
   EXPECT_THAT(test_url_factory.requests(), IsEmpty());
-  test_task_env.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_env.FastForwardBy(base::Seconds(1));
 
   // HTTP request should have been made.
   test_url_factory.ExpectRequestAndSimulateResponse(
@@ -1016,7 +1016,7 @@
   // No request should be sent yet (because service is waiting to batch up
   // multiple requests).
   EXPECT_THAT(test_url_factory.requests(), IsEmpty());
-  test_task_env.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_env.FastForwardBy(base::Seconds(1));
 
   // HTTP request should have been made.
   test_url_factory.ExpectRequestAndSimulateResponse(
@@ -1107,7 +1107,7 @@
   // No request should be sent yet (because service is waiting to batch up
   // multiple requests).
   EXPECT_THAT(test_url_factory.requests(), IsEmpty());
-  test_task_env.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_env.FastForwardBy(base::Seconds(1));
 
   // HTTP request should have been made; respond with nonsense string.
   test_url_factory.ExpectRequestAndSimulateResponse(
@@ -1166,7 +1166,7 @@
   // No request should be sent yet (because service is waiting to batch up
   // multiple requests).
   EXPECT_THAT(test_url_factory.requests(), IsEmpty());
-  test_task_env.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_env.FastForwardBy(base::Seconds(1));
 
   // HTTP request should have been made.
   test_url_factory.ExpectRequestAndSimulateResponse(
@@ -1257,7 +1257,7 @@
   // No request should be sent yet (because service is waiting to batch up
   // multiple requests).
   EXPECT_THAT(test_url_factory.requests(), IsEmpty());
-  test_task_env.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_env.FastForwardBy(base::Seconds(1));
 
   // HTTP request for image 1 should have been made.
   test_url_factory.ExpectRequestAndSimulateResponse(
@@ -1340,7 +1340,7 @@
   // No request should be sent yet (because service is waiting to batch up
   // multiple requests).
   EXPECT_THAT(test_url_factory.requests(), IsEmpty());
-  test_task_env.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_env.FastForwardBy(base::Seconds(1));
 
   // HTTP request for image 1 should have been made.
   test_url_factory.ExpectRequestAndSimulateResponse(
@@ -1407,7 +1407,7 @@
   // No request should be sent yet (because service is waiting to batch up
   // multiple requests).
   EXPECT_THAT(test_url_factory.requests(), IsEmpty());
-  test_task_env.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_env.FastForwardBy(base::Seconds(1));
 
   // HTTP request for image 1 should have been made.
   test_url_factory.ExpectRequestAndSimulateResponse(
@@ -1484,7 +1484,7 @@
   // No request should be sent yet (because service is waiting to batch up
   // multiple requests).
   EXPECT_THAT(test_url_factory.requests(), IsEmpty());
-  test_task_env.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_env.FastForwardBy(base::Seconds(1));
 
   // A single HTTP request for all images should have been sent.
   test_url_factory.ExpectRequestAndSimulateResponse(
@@ -1560,7 +1560,7 @@
   // No request should be sent yet (because service is waiting to batch up
   // multiple requests).
   EXPECT_THAT(test_url_factory.requests(), IsEmpty());
-  test_task_env.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_env.FastForwardBy(base::Seconds(1));
 
   // Request OCR for image 2.
   annotator.AnnotateImage(
@@ -1610,7 +1610,7 @@
       net::HTTP_OK);
   EXPECT_THAT(test_url_factory.requests(), IsEmpty());
 
-  test_task_env.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_env.FastForwardBy(base::Seconds(1));
 
   // Now the HTTP request for image 2 should have been made.
   test_url_factory.ExpectRequestAndSimulateResponse(
@@ -1733,7 +1733,7 @@
 
   // Allow batch HTTP request to be sent off and then request annotation of the
   // image with processor 4.
-  test_task_env.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_env.FastForwardBy(base::Seconds(1));
   EXPECT_THAT(test_url_factory.requests(), SizeIs(1));
   annotator.AnnotateImage(
       kImage1Url, kDescLang, processor[3].GetPendingRemote(),
@@ -1839,7 +1839,7 @@
   // No request should be sent yet (because service is waiting to batch up
   // multiple requests).
   EXPECT_THAT(test_url_factory.requests(), IsEmpty());
-  test_task_env.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_env.FastForwardBy(base::Seconds(1));
 
   // A single HTTP request for all images should have been sent.
   test_url_factory.ExpectRequestAndSimulateResponse(
@@ -2033,7 +2033,7 @@
   // No request should be sent yet (because service is waiting to batch up
   // multiple requests).
   EXPECT_THAT(test_url_factory.requests(), IsEmpty());
-  test_task_env.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_env.FastForwardBy(base::Seconds(1));
 
   // A single HTTP request for all images should have been sent.
   test_url_factory.ExpectRequestAndSimulateResponse(
@@ -2208,7 +2208,7 @@
 
   // Fast-forward time so that server sends batch.
   EXPECT_THAT(test_url_factory.requests(), IsEmpty());
-  test_task_env.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_env.FastForwardBy(base::Seconds(1));
 
   // A single HTTP request for all images should have been sent.
   test_url_factory.ExpectRequestAndSimulateResponse(
@@ -2305,7 +2305,7 @@
     // Send back image data.
     std::move(processor.callbacks()[0]).Run({1, 2, 3}, kDescDim, kDescDim);
     processor.callbacks().pop_back();
-    test_task_env.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    test_task_env.FastForwardBy(base::Seconds(1));
     test_task_env.RunUntilIdle();
 
     // HTTP request should have been made with the API key included.
@@ -2339,7 +2339,7 @@
     // Send back image data.
     std::move(processor.callbacks()[0]).Run({1, 2, 3}, kDescDim, kDescDim);
     processor.callbacks().pop_back();
-    test_task_env.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    test_task_env.FastForwardBy(base::Seconds(1));
     test_task_env.RunUntilIdle();
 
     // HTTP request should have been made without the API key included.
@@ -2370,7 +2370,7 @@
     // Send back image data.
     std::move(processor.callbacks()[0]).Run({1, 2, 3}, kDescDim, kDescDim);
     processor.callbacks().pop_back();
-    test_task_env.FastForwardBy(base::TimeDelta::FromSeconds(1));
+    test_task_env.FastForwardBy(base::Seconds(1));
     test_task_env.RunUntilIdle();
 
     // HTTP request should have been made without the API key included.
diff --git a/services/image_annotation/image_annotation_metrics.cc b/services/image_annotation/image_annotation_metrics.cc
index d9c2e18..a81e2ee 100644
--- a/services/image_annotation/image_annotation_metrics.cc
+++ b/services/image_annotation/image_annotation_metrics.cc
@@ -78,8 +78,7 @@
   // Use a custom time histogram with ~10 buckets per order of magnitude between
   // 1ms and 30sec.
   UMA_HISTOGRAM_CUSTOM_TIMES(metrics_internal::kServerLatency, latency,
-                             base::TimeDelta::FromMilliseconds(1),
-                             base::TimeDelta::FromSeconds(30), 50);
+                             base::Milliseconds(1), base::Seconds(30), 50);
 }
 
 void ReportImageRequestIncludesDesc(const bool includes_desc) {
diff --git a/services/image_annotation/image_annotation_service.cc b/services/image_annotation/image_annotation_service.cc
index fed4227..39be074 100644
--- a/services/image_annotation/image_annotation_service.cc
+++ b/services/image_annotation/image_annotation_service.cc
@@ -34,7 +34,7 @@
       annotator_(GURL(kPixelsServerUrl.Get()),
                  GURL(kLangsServerUrl.Get()),
                  kApiKey.Get().empty() ? std::move(api_key) : kApiKey.Get(),
-                 base::TimeDelta::FromMilliseconds(kThrottleMs.Get()),
+                 base::Milliseconds(kThrottleMs.Get()),
                  kBatchSize.Get(),
                  kMinOcrConfidence.Get(),
                  shared_url_loader_factory,
diff --git a/services/media_session/media_controller_unittest.cc b/services/media_session/media_controller_unittest.cc
index 2a00831..06772ce8 100644
--- a/services/media_session/media_controller_unittest.cc
+++ b/services/media_session/media_controller_unittest.cc
@@ -506,8 +506,7 @@
     EXPECT_EQ(0, media_session.seek_count());
   }
 
-  controller()->Seek(
-      base::TimeDelta::FromSeconds(mojom::kDefaultSeekTimeSeconds));
+  controller()->Seek(base::Seconds(mojom::kDefaultSeekTimeSeconds));
   controller().FlushForTesting();
 
   EXPECT_EQ(1, media_session.seek_count());
@@ -527,8 +526,7 @@
     EXPECT_EQ(0, media_session.seek_to_count());
   }
 
-  controller()->SeekTo(
-      base::TimeDelta::FromSeconds(mojom::kDefaultSeekTimeSeconds));
+  controller()->SeekTo(base::Seconds(mojom::kDefaultSeekTimeSeconds));
   controller().FlushForTesting();
 
   EXPECT_EQ(1, media_session.seek_to_count());
@@ -550,22 +548,19 @@
     EXPECT_EQ(0, media_session.seek_to_count());
   }
 
-  controller()->ScrubTo(
-      base::TimeDelta::FromSeconds(mojom::kDefaultSeekTimeSeconds));
+  controller()->ScrubTo(base::Seconds(mojom::kDefaultSeekTimeSeconds));
   controller().FlushForTesting();
 
   EXPECT_TRUE(media_session.is_scrubbing());
   EXPECT_EQ(0, media_session.seek_to_count());
 
-  controller()->ScrubTo(
-      base::TimeDelta::FromSeconds(mojom::kDefaultSeekTimeSeconds));
+  controller()->ScrubTo(base::Seconds(mojom::kDefaultSeekTimeSeconds));
   controller().FlushForTesting();
 
   EXPECT_TRUE(media_session.is_scrubbing());
   EXPECT_EQ(0, media_session.seek_to_count());
 
-  controller()->SeekTo(
-      base::TimeDelta::FromSeconds(mojom::kDefaultSeekTimeSeconds));
+  controller()->SeekTo(base::Seconds(mojom::kDefaultSeekTimeSeconds));
   controller().FlushForTesting();
 
   EXPECT_FALSE(media_session.is_scrubbing());
@@ -916,8 +911,8 @@
 TEST_F(MediaControllerTest, ActiveController_Position_Observer_WithInfo) {
   MediaPosition position(
       /*playback_rate=*/1,
-      /*duration=*/base::TimeDelta::FromSeconds(600),
-      /*position=*/base::TimeDelta::FromSeconds(300),
+      /*duration=*/base::Seconds(600),
+      /*position=*/base::Seconds(300),
       /*end_of_media=*/false);
 
   test::MockMediaSession media_session;
@@ -961,8 +956,8 @@
 TEST_F(MediaControllerTest, ActiveController_Position_AddObserver_WithInfo) {
   MediaPosition position(
       /*playback_rate=*/1,
-      /*duration=*/base::TimeDelta::FromSeconds(600),
-      /*position=*/base::TimeDelta::FromSeconds(300),
+      /*duration=*/base::Seconds(600),
+      /*position=*/base::Seconds(300),
       /*end_of_media=*/false);
 
   test::MockMediaSession media_session;
@@ -987,8 +982,8 @@
 TEST_F(MediaControllerTest, ActiveController_Position_Observer_Abandoned) {
   MediaPosition position(
       /*playback_rate=*/1,
-      /*duration=*/base::TimeDelta::FromSeconds(600),
-      /*position=*/base::TimeDelta::FromSeconds(300),
+      /*duration=*/base::Seconds(600),
+      /*position=*/base::Seconds(300),
       /*end_of_media=*/false);
 
   test::MockMediaSession media_session;
diff --git a/services/media_session/public/cpp/media_position.cc b/services/media_session/public/cpp/media_position.cc
index bceaf42a..00751b33 100644
--- a/services/media_session/public/cpp/media_position.cc
+++ b/services/media_session/public/cpp/media_position.cc
@@ -19,8 +19,8 @@
       position_(position),
       last_updated_time_(base::TimeTicks::Now()),
       end_of_media_(end_of_media) {
-  DCHECK(duration_ >= base::TimeDelta::FromSeconds(0));
-  DCHECK(position_ >= base::TimeDelta::FromSeconds(0));
+  DCHECK(duration_ >= base::Seconds(0));
+  DCHECK(position_ >= base::Seconds(0));
   DCHECK(position_ <= duration_);
 }
 
@@ -48,7 +48,7 @@
   base::TimeDelta elapsed_time = playback_rate_ * (time - last_updated_time_);
   base::TimeDelta updated_position = position_ + elapsed_time;
 
-  base::TimeDelta start = base::TimeDelta::FromSeconds(0);
+  base::TimeDelta start = base::Seconds(0);
 
   if (updated_position <= start)
     return start;
diff --git a/services/media_session/public/cpp/media_position_unittest.cc b/services/media_session/public/cpp/media_position_unittest.cc
index e2f04ca..5925103 100644
--- a/services/media_session/public/cpp/media_position_unittest.cc
+++ b/services/media_session/public/cpp/media_position_unittest.cc
@@ -12,11 +12,10 @@
 
 TEST_F(MediaPositionTest, TestPositionUpdated) {
   MediaPosition media_position(
-      /*playback_rate=*/1, /*duration=*/base::TimeDelta::FromSeconds(600),
-      /*position=*/base::TimeDelta::FromSeconds(300), /*end_of_media=*/false);
+      /*playback_rate=*/1, /*duration=*/base::Seconds(600),
+      /*position=*/base::Seconds(300), /*end_of_media=*/false);
 
-  base::TimeTicks now =
-      base::TimeTicks::Now() + base::TimeDelta::FromSeconds(100);
+  base::TimeTicks now = base::TimeTicks::Now() + base::Seconds(100);
   base::TimeDelta updated_position = media_position.GetPositionAtTime(now);
 
   EXPECT_EQ(updated_position.InSeconds(), 400);
@@ -24,16 +23,15 @@
 
 TEST_F(MediaPositionTest, TestPositionUpdatedTwice) {
   MediaPosition media_position(
-      /*playback_rate=*/1, /*duration=*/base::TimeDelta::FromSeconds(600),
-      /*position=*/base::TimeDelta::FromSeconds(200), /*end_of_media=*/false);
+      /*playback_rate=*/1, /*duration=*/base::Seconds(600),
+      /*position=*/base::Seconds(200), /*end_of_media=*/false);
 
-  base::TimeTicks now =
-      base::TimeTicks::Now() + base::TimeDelta::FromSeconds(100);
+  base::TimeTicks now = base::TimeTicks::Now() + base::Seconds(100);
   base::TimeDelta updated_position = media_position.GetPositionAtTime(now);
 
   EXPECT_EQ(updated_position.InSeconds(), 300);
 
-  now += base::TimeDelta::FromSeconds(100);
+  now += base::Seconds(100);
   updated_position = media_position.GetPositionAtTime(now);
 
   EXPECT_EQ(updated_position.InSeconds(), 400);
@@ -41,11 +39,10 @@
 
 TEST_F(MediaPositionTest, TestPositionUpdatedPastDuration) {
   MediaPosition media_position(
-      /*playback_rate=*/1, /*duration=*/base::TimeDelta::FromSeconds(600),
-      /*position=*/base::TimeDelta::FromSeconds(300), /*end_of_media=*/false);
+      /*playback_rate=*/1, /*duration=*/base::Seconds(600),
+      /*position=*/base::Seconds(300), /*end_of_media=*/false);
 
-  base::TimeTicks now =
-      base::TimeTicks::Now() + base::TimeDelta::FromSeconds(400);
+  base::TimeTicks now = base::TimeTicks::Now() + base::Seconds(400);
   base::TimeDelta updated_position = media_position.GetPositionAtTime(now);
 
   // Verify that the position has been updated to the end of the total duration.
@@ -54,8 +51,8 @@
 
 TEST_F(MediaPositionTest, TestPositionAtStart) {
   MediaPosition media_position(
-      /*playback_rate=*/1, /*duration=*/base::TimeDelta::FromSeconds(600),
-      /*position=*/base::TimeDelta::FromSeconds(0), /*end_of_media=*/false);
+      /*playback_rate=*/1, /*duration=*/base::Seconds(600),
+      /*position=*/base::Seconds(0), /*end_of_media=*/false);
 
   base::TimeDelta updated_position = media_position.GetPosition();
 
@@ -64,11 +61,10 @@
 
 TEST_F(MediaPositionTest, TestNegativePosition) {
   MediaPosition media_position(
-      /*playback_rate=*/-1, /*duration=*/base::TimeDelta::FromSeconds(600),
-      /*position=*/base::TimeDelta::FromSeconds(300), /*end_of_media=*/false);
+      /*playback_rate=*/-1, /*duration=*/base::Seconds(600),
+      /*position=*/base::Seconds(300), /*end_of_media=*/false);
 
-  base::TimeTicks now =
-      base::TimeTicks::Now() + base::TimeDelta::FromSeconds(400);
+  base::TimeTicks now = base::TimeTicks::Now() + base::Seconds(400);
   base::TimeDelta updated_position = media_position.GetPositionAtTime(now);
 
   // Verify that the position does not go below 0.
@@ -77,8 +73,8 @@
 
 TEST_F(MediaPositionTest, TestPositionUpdatedNoChange) {
   MediaPosition media_position(
-      /*playback_rate=*/1, /*duration=*/base::TimeDelta::FromSeconds(600),
-      /*position=*/base::TimeDelta::FromSeconds(300), /*end_of_media=*/false);
+      /*playback_rate=*/1, /*duration=*/base::Seconds(600),
+      /*position=*/base::Seconds(300), /*end_of_media=*/false);
 
   // Get the updated position without moving forward in time.
   base::TimeDelta updated_position = media_position.GetPosition();
@@ -89,11 +85,10 @@
 
 TEST_F(MediaPositionTest, TestPositionUpdatedFasterPlayback) {
   MediaPosition media_position(
-      /*playback_rate=*/2, /*duration=*/base::TimeDelta::FromSeconds(600),
-      /*position=*/base::TimeDelta::FromSeconds(300), /*end_of_media=*/false);
+      /*playback_rate=*/2, /*duration=*/base::Seconds(600),
+      /*position=*/base::Seconds(300), /*end_of_media=*/false);
 
-  base::TimeTicks now =
-      base::TimeTicks::Now() + base::TimeDelta::FromSeconds(100);
+  base::TimeTicks now = base::TimeTicks::Now() + base::Seconds(100);
   base::TimeDelta updated_position = media_position.GetPositionAtTime(now);
 
   EXPECT_EQ(updated_position.InSeconds(), 500);
@@ -101,37 +96,35 @@
 
 TEST_F(MediaPositionTest, TestPositionUpdatedSlowerPlayback) {
   MediaPosition media_position(
-      /*playback_rate=*/.5, /*duration=*/base::TimeDelta::FromSeconds(600),
-      /*position=*/base::TimeDelta::FromSeconds(300), /*end_of_media=*/false);
+      /*playback_rate=*/.5, /*duration=*/base::Seconds(600),
+      /*position=*/base::Seconds(300), /*end_of_media=*/false);
 
-  base::TimeTicks now =
-      base::TimeTicks::Now() + base::TimeDelta::FromSeconds(200);
+  base::TimeTicks now = base::TimeTicks::Now() + base::Seconds(200);
   base::TimeDelta updated_position = media_position.GetPositionAtTime(now);
 
   EXPECT_EQ(updated_position.InSeconds(), 400);
 }
 
 TEST_F(MediaPositionTest, TestNotEquals_AllDifferent) {
-  EXPECT_NE(
-      MediaPosition(
-          /*playback_rate=*/.5, /*duration=*/base::TimeDelta::FromSeconds(600),
-          /*position=*/base::TimeDelta::FromSeconds(300),
-          /*end_of_media=*/false),
-      MediaPosition(
-          /*playback_rate=*/1, /*duration=*/base::TimeDelta::FromSeconds(800),
-          /*position=*/base::TimeDelta::FromSeconds(100),
-          /*end_of_media=*/true));
+  EXPECT_NE(MediaPosition(
+                /*playback_rate=*/.5, /*duration=*/base::Seconds(600),
+                /*position=*/base::Seconds(300),
+                /*end_of_media=*/false),
+            MediaPosition(
+                /*playback_rate=*/1, /*duration=*/base::Seconds(800),
+                /*position=*/base::Seconds(100),
+                /*end_of_media=*/true));
 }
 
 TEST_F(MediaPositionTest, TestNotEquals_DifferentDuration) {
   MediaPosition position_1(
-      /*playback_rate=*/.5, /*duration=*/base::TimeDelta::FromSeconds(600),
-      /*position=*/base::TimeDelta::FromSeconds(300),
+      /*playback_rate=*/.5, /*duration=*/base::Seconds(600),
+      /*position=*/base::Seconds(300),
       /*end_of_media=*/false);
 
   MediaPosition position_2(
-      /*playback_rate=*/.5, /*duration=*/base::TimeDelta::FromSeconds(1000),
-      /*position=*/base::TimeDelta::FromSeconds(300),
+      /*playback_rate=*/.5, /*duration=*/base::Seconds(1000),
+      /*position=*/base::Seconds(300),
       /*end_of_media=*/false);
 
   position_1.last_updated_time_ = position_2.last_updated_time_;
@@ -141,13 +134,13 @@
 
 TEST_F(MediaPositionTest, TestNotEquals_DifferentPlaybackRate) {
   MediaPosition position_1(
-      /*playback_rate=*/.5, /*duration=*/base::TimeDelta::FromSeconds(600),
-      /*position=*/base::TimeDelta::FromSeconds(300),
+      /*playback_rate=*/.5, /*duration=*/base::Seconds(600),
+      /*position=*/base::Seconds(300),
       /*end_of_media=*/false);
 
   MediaPosition position_2(
-      /*playback_rate=*/1.0, /*duration=*/base::TimeDelta::FromSeconds(600),
-      /*position=*/base::TimeDelta::FromSeconds(300),
+      /*playback_rate=*/1.0, /*duration=*/base::Seconds(600),
+      /*position=*/base::Seconds(300),
       /*end_of_media=*/false);
 
   position_1.last_updated_time_ = position_2.last_updated_time_;
@@ -157,13 +150,13 @@
 
 TEST_F(MediaPositionTest, TestNotEquals_DifferentEndOfMedia) {
   MediaPosition position_1(
-      /*playback_rate=*/.5, /*duration=*/base::TimeDelta::FromSeconds(600),
-      /*position=*/base::TimeDelta::FromSeconds(300),
+      /*playback_rate=*/.5, /*duration=*/base::Seconds(600),
+      /*position=*/base::Seconds(300),
       /*end_of_media=*/false);
 
   MediaPosition position_2(
-      /*playback_rate=*/.5, /*duration=*/base::TimeDelta::FromSeconds(600),
-      /*position=*/base::TimeDelta::FromSeconds(300),
+      /*playback_rate=*/.5, /*duration=*/base::Seconds(600),
+      /*position=*/base::Seconds(300),
       /*end_of_media=*/true);
 
   position_1.last_updated_time_ = position_2.last_updated_time_;
@@ -173,13 +166,13 @@
 
 TEST_F(MediaPositionTest, TestEquals_AllSame) {
   MediaPosition position_1(
-      /*playback_rate=*/.5, /*duration=*/base::TimeDelta::FromSeconds(600),
-      /*position=*/base::TimeDelta::FromSeconds(300),
+      /*playback_rate=*/.5, /*duration=*/base::Seconds(600),
+      /*position=*/base::Seconds(300),
       /*end_of_media=*/false);
 
   MediaPosition position_2(
-      /*playback_rate=*/.5, /*duration=*/base::TimeDelta::FromSeconds(600),
-      /*position=*/base::TimeDelta::FromSeconds(300),
+      /*playback_rate=*/.5, /*duration=*/base::Seconds(600),
+      /*position=*/base::Seconds(300),
       /*end_of_media=*/false);
 
   position_1.last_updated_time_ = position_2.last_updated_time_;
@@ -189,17 +182,17 @@
 
 TEST_F(MediaPositionTest, TestEquals_SameButDifferentTime) {
   MediaPosition position_1(
-      /*playback_rate=*/1.0, /*duration=*/base::TimeDelta::FromSeconds(600),
-      /*position=*/base::TimeDelta::FromSeconds(0),
+      /*playback_rate=*/1.0, /*duration=*/base::Seconds(600),
+      /*position=*/base::Seconds(0),
       /*end_of_media=*/false);
 
   MediaPosition position_2(
-      /*playback_rate=*/1.0, /*duration=*/base::TimeDelta::FromSeconds(600),
-      /*position=*/base::TimeDelta::FromSeconds(10),
+      /*playback_rate=*/1.0, /*duration=*/base::Seconds(600),
+      /*position=*/base::Seconds(10),
       /*end_of_media=*/false);
 
   position_2.last_updated_time_ = position_1.last_updated_time_;
-  position_1.last_updated_time_ -= base::TimeDelta::FromSeconds(10);
+  position_1.last_updated_time_ -= base::Seconds(10);
 
   EXPECT_EQ(position_1, position_2);
 }
diff --git a/services/media_session/public/cpp/util.cc b/services/media_session/public/cpp/util.cc
index 0aba3467..d330f9d 100644
--- a/services/media_session/public/cpp/util.cc
+++ b/services/media_session/public/cpp/util.cc
@@ -9,7 +9,7 @@
 namespace {
 
 constexpr base::TimeDelta kDefaultSeekTime =
-    base::TimeDelta::FromSeconds(media_session::mojom::kDefaultSeekTimeSeconds);
+    base::Seconds(media_session::mojom::kDefaultSeekTimeSeconds);
 
 }  // namespace
 
diff --git a/services/network/cookie_manager_unittest.cc b/services/network/cookie_manager_unittest.cc
index 0d8820b..aaf49e9 100644
--- a/services/network/cookie_manager_unittest.cc
+++ b/services/network/cookie_manager_unittest.cc
@@ -1084,7 +1084,7 @@
                              net::COOKIE_PRIORITY_MEDIUM, /*same_party=*/false),
                          "https", true));
 
-  base::Time yesterday = base::Time::Now() - base::TimeDelta::FromDays(1);
+  base::Time yesterday = base::Time::Now() - base::Days(1);
   EXPECT_TRUE(service_wrapper()->SetCanonicalCookie(
       *net::CanonicalCookie::CreateUnsafeCookieForTesting(
           "A", "E", kCookieDomain, "/", base::Time(), yesterday, base::Time(),
@@ -1328,31 +1328,31 @@
   // Create three cookies and delete the middle one.
   EXPECT_TRUE(SetCanonicalCookie(
       *net::CanonicalCookie::CreateUnsafeCookieForTesting(
-          "A1", "val", kCookieDomain, "/",
-          now - base::TimeDelta::FromMinutes(60), base::Time(), base::Time(),
+          "A1", "val", kCookieDomain, "/", now - base::Minutes(60),
+          base::Time(), base::Time(),
           /*secure=*/false, /*httponly=*/false, net::CookieSameSite::LAX_MODE,
           net::COOKIE_PRIORITY_MEDIUM, /*same_party=*/false),
       "https", true));
 
   EXPECT_TRUE(SetCanonicalCookie(
       *net::CanonicalCookie::CreateUnsafeCookieForTesting(
-          "A2", "val", kCookieDomain, "/",
-          now - base::TimeDelta::FromMinutes(120), base::Time(), base::Time(),
+          "A2", "val", kCookieDomain, "/", now - base::Minutes(120),
+          base::Time(), base::Time(),
           /*secure=*/false, /*httponly=*/false, net::CookieSameSite::LAX_MODE,
           net::COOKIE_PRIORITY_MEDIUM, /*same_party=*/false),
       "https", true));
 
   EXPECT_TRUE(SetCanonicalCookie(
       *net::CanonicalCookie::CreateUnsafeCookieForTesting(
-          "A3", "val", kCookieDomain, "/",
-          now - base::TimeDelta::FromMinutes(180), base::Time(), base::Time(),
+          "A3", "val", kCookieDomain, "/", now - base::Minutes(180),
+          base::Time(), base::Time(),
           /*secure=*/false, /*httponly=*/false, net::CookieSameSite::LAX_MODE,
           net::COOKIE_PRIORITY_MEDIUM, /*same_party=*/false),
       "https", true));
 
   mojom::CookieDeletionFilter filter;
-  filter.created_after_time = now - base::TimeDelta::FromMinutes(150);
-  filter.created_before_time = now - base::TimeDelta::FromMinutes(90);
+  filter.created_after_time = now - base::Minutes(150);
+  filter.created_before_time = now - base::Minutes(90);
   EXPECT_EQ(1u, service_wrapper()->DeleteCookies(filter));
   std::vector<net::CanonicalCookie> cookies =
       service_wrapper()->GetAllCookies();
@@ -1720,17 +1720,15 @@
   // Last_access
   EXPECT_TRUE(SetCanonicalCookie(
       *net::CanonicalCookie::CreateUnsafeCookieForTesting(
-          "A05", "val", "example.com", "/",
-          base::Time::Now() - base::TimeDelta::FromDays(3), base::Time(),
-          base::Time::Now() - base::TimeDelta::FromDays(3), /*secure=*/false,
+          "A05", "val", "example.com", "/", base::Time::Now() - base::Days(3),
+          base::Time(), base::Time::Now() - base::Days(3), /*secure=*/false,
           /*httponly=*/false, net::CookieSameSite::LAX_MODE,
           net::COOKIE_PRIORITY_MEDIUM, /*same_party=*/false),
       "https", true));
   EXPECT_TRUE(SetCanonicalCookie(
       *net::CanonicalCookie::CreateUnsafeCookieForTesting(
-          "A06", "val", "canonical.com", "/",
-          base::Time::Now() - base::TimeDelta::FromDays(3), base::Time(),
-          base::Time::Now() - base::TimeDelta::FromDays(3), /*secure=*/false,
+          "A06", "val", "canonical.com", "/", base::Time::Now() - base::Days(3),
+          base::Time(), base::Time::Now() - base::Days(3), /*secure=*/false,
           /*httponly=*/false, net::CookieSameSite::LAX_MODE,
           net::COOKIE_PRIORITY_MEDIUM, /*same_party=*/false),
       "https", true));
@@ -2080,8 +2078,8 @@
 
   EXPECT_TRUE(SetCanonicalCookie(
       *net::CanonicalCookie::CreateUnsafeCookieForTesting(
-          "A2", "val", kCookieDomain, "/", base::Time(),
-          now + base::TimeDelta::FromDays(1), base::Time(),
+          "A2", "val", kCookieDomain, "/", base::Time(), now + base::Days(1),
+          base::Time(),
           /*secure=*/false, /*httponly=*/false, net::CookieSameSite::LAX_MODE,
           net::COOKIE_PRIORITY_MEDIUM, /*same_party=*/false),
       "https", true));
@@ -2126,8 +2124,8 @@
   // unique by name.
 
   mojom::CookieDeletionFilter filter;
-  filter.created_after_time = now - base::TimeDelta::FromDays(4);
-  filter.created_before_time = now - base::TimeDelta::FromDays(2);
+  filter.created_after_time = now - base::Days(4);
+  filter.created_before_time = now - base::Days(2);
   filter.including_domains = std::vector<std::string>();
   filter.including_domains->push_back("no.com");
   filter.including_domains->push_back("nope.com");
@@ -2141,8 +2139,8 @@
   // Archetypal cookie:
   EXPECT_TRUE(SetCanonicalCookie(
       *net::CanonicalCookie::CreateUnsafeCookieForTesting(
-          "A1", "val0", "nope.com", "/path", now - base::TimeDelta::FromDays(3),
-          now + base::TimeDelta::FromDays(3), base::Time(), /*secure=*/false,
+          "A1", "val0", "nope.com", "/path", now - base::Days(3),
+          now + base::Days(3), base::Time(), /*secure=*/false,
           /*httponly=*/false, net::CookieSameSite::LAX_MODE,
           net::COOKIE_PRIORITY_MEDIUM, /*same_party=*/false),
       "https", true));
@@ -2150,8 +2148,8 @@
   // Too old cookie.
   EXPECT_TRUE(SetCanonicalCookie(
       *net::CanonicalCookie::CreateUnsafeCookieForTesting(
-          "A2", "val1", "nope.com", "/path", now - base::TimeDelta::FromDays(5),
-          now + base::TimeDelta::FromDays(3), base::Time(), /*secure=*/false,
+          "A2", "val1", "nope.com", "/path", now - base::Days(5),
+          now + base::Days(3), base::Time(), /*secure=*/false,
           /*httponly=*/false, net::CookieSameSite::LAX_MODE,
           net::COOKIE_PRIORITY_MEDIUM, /*same_party=*/false),
       "https", true));
@@ -2159,48 +2157,46 @@
   // Too young cookie.
   EXPECT_TRUE(SetCanonicalCookie(
       *net::CanonicalCookie::CreateUnsafeCookieForTesting(
-          "A3", "val2", "nope.com", "/path", now - base::TimeDelta::FromDays(1),
-          now + base::TimeDelta::FromDays(3), base::Time(), /*secure=*/false,
+          "A3", "val2", "nope.com", "/path", now - base::Days(1),
+          now + base::Days(3), base::Time(), /*secure=*/false,
           /*httponly=*/false, net::CookieSameSite::LAX_MODE,
           net::COOKIE_PRIORITY_MEDIUM, /*same_party=*/false),
       "https", true));
 
   // Not in domains_and_ips_to_delete.
-  EXPECT_TRUE(
-      SetCanonicalCookie(*net::CanonicalCookie::CreateUnsafeCookieForTesting(
-                             "A4", "val3", "other.com", "/path",
-                             now - base::TimeDelta::FromDays(3),
-                             now + base::TimeDelta::FromDays(3), base::Time(),
-                             /*secure=*/false,
-                             /*httponly=*/false, net::CookieSameSite::LAX_MODE,
-                             net::COOKIE_PRIORITY_MEDIUM, /*same_party=*/false),
-                         "https", true));
+  EXPECT_TRUE(SetCanonicalCookie(
+      *net::CanonicalCookie::CreateUnsafeCookieForTesting(
+          "A4", "val3", "other.com", "/path", now - base::Days(3),
+          now + base::Days(3), base::Time(),
+          /*secure=*/false,
+          /*httponly=*/false, net::CookieSameSite::LAX_MODE,
+          net::COOKIE_PRIORITY_MEDIUM, /*same_party=*/false),
+      "https", true));
 
   // In domains_and_ips_to_ignore.
   EXPECT_TRUE(SetCanonicalCookie(
       *net::CanonicalCookie::CreateUnsafeCookieForTesting(
-          "A5", "val4", "no.com", "/path", now - base::TimeDelta::FromDays(3),
-          now + base::TimeDelta::FromDays(3), base::Time(), /*secure=*/false,
+          "A5", "val4", "no.com", "/path", now - base::Days(3),
+          now + base::Days(3), base::Time(), /*secure=*/false,
           /*httponly=*/false, net::CookieSameSite::LAX_MODE,
           net::COOKIE_PRIORITY_MEDIUM, /*same_party=*/false),
       "https", true));
 
   // Doesn't match URL (by path).
-  EXPECT_TRUE(
-      SetCanonicalCookie(*net::CanonicalCookie::CreateUnsafeCookieForTesting(
-                             "A6", "val6", "nope.com", "/otherpath",
-                             now - base::TimeDelta::FromDays(3),
-                             now + base::TimeDelta::FromDays(3), base::Time(),
-                             /*secure=*/false,
-                             /*httponly=*/false, net::CookieSameSite::LAX_MODE,
-                             net::COOKIE_PRIORITY_MEDIUM, /*same_party=*/false),
-                         "https", true));
+  EXPECT_TRUE(SetCanonicalCookie(
+      *net::CanonicalCookie::CreateUnsafeCookieForTesting(
+          "A6", "val6", "nope.com", "/otherpath", now - base::Days(3),
+          now + base::Days(3), base::Time(),
+          /*secure=*/false,
+          /*httponly=*/false, net::CookieSameSite::LAX_MODE,
+          net::COOKIE_PRIORITY_MEDIUM, /*same_party=*/false),
+      "https", true));
 
   // Session
   EXPECT_TRUE(SetCanonicalCookie(
       *net::CanonicalCookie::CreateUnsafeCookieForTesting(
-          "A7", "val7", "nope.com", "/path", now - base::TimeDelta::FromDays(3),
-          base::Time(), base::Time(), /*secure=*/false, /*httponly=*/false,
+          "A7", "val7", "nope.com", "/path", now - base::Days(3), base::Time(),
+          base::Time(), /*secure=*/false, /*httponly=*/false,
           net::CookieSameSite::LAX_MODE, net::COOKIE_PRIORITY_MEDIUM,
           /*same_party=*/false),
       "https", true));
@@ -2667,8 +2663,7 @@
   net::CanonicalCookie CreateCookie(const std::string& domain) {
     base::Time t = base::Time::Now();
     return *net::CanonicalCookie::CreateUnsafeCookieForTesting(
-        "A", "B", domain, "/", t, t + base::TimeDelta::FromDays(1),
-        base::Time(),
+        "A", "B", domain, "/", t, t + base::Days(1), base::Time(),
         /*secure=*/false, /*httponly=*/false, net::CookieSameSite::LAX_MODE,
         net::COOKIE_PRIORITY_MEDIUM, /*same_party=*/false);
   }
diff --git a/services/network/cookie_settings_unittest.cc b/services/network/cookie_settings_unittest.cc
index e6ad8e3..4a02932 100644
--- a/services/network/cookie_settings_unittest.cc
+++ b/services/network/cookie_settings_unittest.cc
@@ -284,8 +284,7 @@
       {CreateSetting("*", "*", CONTENT_SETTING_ALLOW)});
   settings.set_block_third_party_cookies(true);
 
-  base::Time expiration_time =
-      base::Time::Now() + base::TimeDelta::FromSeconds(100);
+  base::Time expiration_time = base::Time::Now() + base::Seconds(100);
   settings.set_storage_access_grants(
       {CreateSetting(url.host(), top_level_url.host(), CONTENT_SETTING_ALLOW,
                      expiration_time)});
@@ -298,7 +297,7 @@
 
   // If we fastforward past the expiration of our grant the result should be
   // CONTENT_SETTING_BLOCK now.
-  FastForwardTime(base::TimeDelta::FromSeconds(101));
+  FastForwardTime(base::Seconds(101));
   EXPECT_EQ(settings.GetCookieSetting(url, top_level_url, nullptr),
             CONTENT_SETTING_BLOCK);
 }
diff --git a/services/network/cors/preflight_cache_unittest.cc b/services/network/cors/preflight_cache_unittest.cc
index 92f4d18..7bb828f 100644
--- a/services/network/cors/preflight_cache_unittest.cc
+++ b/services/network/cors/preflight_cache_unittest.cc
@@ -71,9 +71,7 @@
         net::HttpRequestHeaders(), /*is_revalidating=*/false, net_log_);
   }
 
-  void Advance(int seconds) {
-    clock_.Advance(base::TimeDelta::FromSeconds(seconds));
-  }
+  void Advance(int seconds) { clock_.Advance(base::Seconds(seconds)); }
 
  private:
   // testing::Test implementation.
diff --git a/services/network/cors/preflight_result.cc b/services/network/cors/preflight_result.cc
index df84f44..a820cad 100644
--- a/services/network/cors/preflight_result.cc
+++ b/services/network/cors/preflight_result.cc
@@ -32,12 +32,12 @@
 
 // Default cache expiry time for an entry that does not have
 // Access-Control-Max-Age header in its CORS-preflight response.
-constexpr base::TimeDelta kDefaultTimeout = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kDefaultTimeout = base::Seconds(5);
 
 // Maximum cache expiry time. Even if a CORS-preflight response contains
 // Access-Control-Max-Age header that specifies a longer expiry time, this
 // maximum time is applied.
-constexpr base::TimeDelta kMaxTimeout = base::TimeDelta::FromHours(2);
+constexpr base::TimeDelta kMaxTimeout = base::Hours(2);
 
 // Holds TickClock instance to overwrite TimeTicks::Now() for testing.
 const base::TickClock* tick_clock_for_testing = nullptr;
@@ -69,14 +69,13 @@
   }
   // To avoid integer overflow, we compare seconds instead of comparing
   // TimeDeltas.
-  static_assert(
-      kMaxTimeout == base::TimeDelta::FromSeconds(kMaxTimeout.InSeconds()),
-      "`kMaxTimeout` must be a multiple of one second.");
+  static_assert(kMaxTimeout == base::Seconds(kMaxTimeout.InSeconds()),
+                "`kMaxTimeout` must be a multiple of one second.");
   if (seconds >= kMaxTimeout.InSeconds()) {
     return kMaxTimeout;
   }
 
-  return base::TimeDelta::FromSeconds(seconds);
+  return base::Seconds(seconds);
 }
 
 // Parses |string| as a Access-Control-Allow-* header value, storing the result
diff --git a/services/network/cors/preflight_result_unittest.cc b/services/network/cors/preflight_result_unittest.cc
index dde93a2..8ecd765 100644
--- a/services/network/cors/preflight_result_unittest.cc
+++ b/services/network/cors/preflight_result_unittest.cc
@@ -177,7 +177,7 @@
   std::unique_ptr<PreflightResult> result1 =
       PreflightResult::Create(mojom::CredentialsMode::kOmit, absl::nullopt,
                               absl::nullopt, std::string("573"), nullptr);
-  EXPECT_EQ(base::TimeTicks() + base::TimeDelta::FromSeconds(573),
+  EXPECT_EQ(base::TimeTicks() + base::Seconds(573),
             result1->absolute_expiry_time());
 
   std::unique_ptr<PreflightResult> result2 =
diff --git a/services/network/host_resolver_unittest.cc b/services/network/host_resolver_unittest.cc
index 43c5924..f0c822f 100644
--- a/services/network/host_resolver_unittest.cc
+++ b/services/network/host_resolver_unittest.cc
@@ -572,7 +572,7 @@
   // MockHostResolver gives cache entries a 1 min TTL, so simulate a day
   // passing, which is more than long enough for the cached results to become
   // stale.
-  task_environment_.FastForwardBy(base::TimeDelta::FromDays(1));
+  task_environment_.FastForwardBy(base::Days(1));
 
   // Fetching stale results returns the original cached value.
   base::RunLoop cached_run_loop;
diff --git a/services/network/http_cache_data_counter_unittest.cc b/services/network/http_cache_data_counter_unittest.cc
index 7d2c7a6..b4e5a21c 100644
--- a/services/network/http_cache_data_counter_unittest.cc
+++ b/services/network/http_cache_data_counter_unittest.cc
@@ -170,7 +170,7 @@
 
     // The upper bound is "exclusive" but appropriximately so; make it clearly
     // exclusive.
-    end_time -= base::TimeDelta::FromDays(1);
+    end_time -= base::Days(1);
 
     auto result = CountBetween(network_context_.get(), start_time, end_time);
     ASSERT_GE(result.second, 0);
diff --git a/services/network/mdns_responder.cc b/services/network/mdns_responder.cc
index 549a0120..42cd098 100644
--- a/services/network/mdns_responder.cc
+++ b/services/network/mdns_responder.cc
@@ -62,15 +62,12 @@
 //
 // The multicast of responses of the same record on an interface must be at
 // least one second apart on that particular interface.
-const base::TimeDelta kMinIntervalBetweenSameRecord =
-    base::TimeDelta::FromSeconds(1);
+const base::TimeDelta kMinIntervalBetweenSameRecord = base::Seconds(1);
 
-const base::TimeDelta kMinIntervalBetweenMdnsResponses =
-    base::TimeDelta::FromSeconds(1);
+const base::TimeDelta kMinIntervalBetweenMdnsResponses = base::Seconds(1);
 
 // RFC 6762, Section 10.
-const base::TimeDelta kDefaultTtlForRecordWithHostname =
-    base::TimeDelta::FromSeconds(120);
+const base::TimeDelta kDefaultTtlForRecordWithHostname = base::Seconds(120);
 
 // RFC 6762, Section 8.3.
 const int kMinNumAnnouncementsToSend = 2;
@@ -80,7 +77,7 @@
 // The capacity of the send queue for packets blocked by an incomplete send.
 const uint8_t kSendQueueCapacity = 100;
 // Maximum delay allowed for per-response rate-limited responses.
-const base::TimeDelta kMaxScheduledDelay = base::TimeDelta::FromSeconds(10);
+const base::TimeDelta kMaxScheduledDelay = base::Seconds(10);
 
 // The query name of the mDNS name generator service.
 const char kMdnsNameGeneratorServiceInstanceName[] =
@@ -106,10 +103,8 @@
 // shared resource record set, should be delayed uniformly and randomly in the
 // range of 20-120 ms. This delay is applied in addition to the scheduled delay
 // by rate limiting.
-const base::TimeDelta kMinRandDelayForSharedResult =
-    base::TimeDelta::FromMilliseconds(20);
-const base::TimeDelta kMaxRandDelayForSharedResult =
-    base::TimeDelta::FromMilliseconds(120);
+const base::TimeDelta kMinRandDelayForSharedResult = base::Milliseconds(20);
+const base::TimeDelta kMaxRandDelayForSharedResult = base::Milliseconds(120);
 
 class RandomUuidNameGenerator
     : public network::MdnsResponderManager::NameGenerator {
@@ -324,7 +319,7 @@
 base::TimeDelta GetRandTimeDelta(const base::TimeDelta& min,
                                  const base::TimeDelta& max) {
   DCHECK_LE(min, max);
-  return base::TimeDelta::FromMicroseconds(
+  return base::Microseconds(
       base::RandInt(min.InMicroseconds(), max.InMicroseconds()));
 }
 
diff --git a/services/network/mdns_responder.h b/services/network/mdns_responder.h
index 09616601..b9af8da 100644
--- a/services/network/mdns_responder.h
+++ b/services/network/mdns_responder.h
@@ -140,7 +140,7 @@
 
   // Delay between throttled attempts to start the `MdnsResponderManager`.
   constexpr static base::TimeDelta kManagerStartThrottleDelay =
-      base::TimeDelta::FromSeconds(1);
+      base::Seconds(1);
 
   MdnsResponderManager();
   explicit MdnsResponderManager(net::MDnsSocketFactory* socket_factory);
diff --git a/services/network/mdns_responder_unittest.cc b/services/network/mdns_responder_unittest.cc
index 755a592..ad1f7f85 100644
--- a/services/network/mdns_responder_unittest.cc
+++ b/services/network/mdns_responder_unittest.cc
@@ -50,7 +50,7 @@
     net::IPAddress(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16),
     net::IPAddress(16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1)};
 
-const base::TimeDelta kDefaultTtl = base::TimeDelta::FromSeconds(120);
+const base::TimeDelta kDefaultTtl = base::Seconds(120);
 
 const int kNumAnnouncementsPerInterface = 2;
 const int kNumMaxRetriesPerResponse = 2;
@@ -846,7 +846,7 @@
       reinterpret_cast<const uint8_t*>(query.data()), query.size());
   socket_factory_.SimulateReceive(
       reinterpret_cast<const uint8_t*>(query.data()), query.size());
-  RunFor(base::TimeDelta::FromMilliseconds(900));
+  RunFor(base::Milliseconds(900));
 
   // Receive a conflicting response.
   const std::string conflicting_response =
@@ -874,7 +874,7 @@
   EXPECT_CALL(socket_factory_, OnSendTo(expected_response)).Times(1);
   socket_factory_.SimulateReceive(
       reinterpret_cast<const uint8_t*>(query.data()), query.size());
-  RunFor(base::TimeDelta::FromMilliseconds(1000));
+  RunFor(base::Milliseconds(1000));
 
   // Goodbye on both interfaces.
   const std::string expected_goodbye =
@@ -931,7 +931,7 @@
 
   // Little extra fudge around throttle delays as it is not essential for it to
   // be precise, and don't need the test to be too restrictive.
-  const base::TimeDelta kThrottleFudge = base::TimeDelta::FromMilliseconds(2);
+  const base::TimeDelta kThrottleFudge = base::Milliseconds(2);
 
   // Expect socket creation to not be attempted again too soon.
   EXPECT_CALL(failing_socket_factory_, CreateSockets(_)).Times(0);
@@ -1023,13 +1023,13 @@
   client_[0]->CreateNameForAddress(addr1, base::DoNothing());
   client_[0]->CreateNameForAddress(addr2, base::DoNothing());
 
-  RunFor(base::TimeDelta::FromMilliseconds(900));
+  RunFor(base::Milliseconds(900));
   // Second announcement for 0.local.
   EXPECT_CALL(socket_factory_, OnSendTo(expected_announcement1)).Times(2);
-  RunFor(base::TimeDelta::FromSeconds(1));
+  RunFor(base::Seconds(1));
   // First announcement for 1.local.
   EXPECT_CALL(socket_factory_, OnSendTo(expected_announcement2)).Times(2);
-  RunFor(base::TimeDelta::FromSeconds(1));
+  RunFor(base::Seconds(1));
   // Second announcement for 1.local.
   EXPECT_CALL(socket_factory_, OnSendTo(expected_announcement2)).Times(2);
   RunUntilNoTasksRemain();
@@ -1056,7 +1056,7 @@
   RemoveNameForAddressAndExpectDone(0, addr1);
   RemoveNameForAddressAndExpectDone(0, addr2);
 
-  RunFor(base::TimeDelta::FromMilliseconds(900));
+  RunFor(base::Milliseconds(900));
   // Goodbye for 1.local.
   EXPECT_CALL(socket_factory_, OnSendTo(expected_goodbye2)).Times(2);
   RunUntilNoTasksRemain();
@@ -1086,19 +1086,19 @@
   client_[0]->CreateNameForAddress(addr2, base::DoNothing());
   RemoveNameForAddressAndExpectDone(0, addr2);
 
-  RunFor(base::TimeDelta::FromMilliseconds(900));
+  RunFor(base::Milliseconds(900));
   // Second announcement for 0.local.
   EXPECT_CALL(socket_factory_, OnSendTo(expected_announcement1)).Times(2);
-  RunFor(base::TimeDelta::FromSeconds(1));
+  RunFor(base::Seconds(1));
   // Goodbye for 0.local.
   EXPECT_CALL(socket_factory_, OnSendTo(expected_goodbye1)).Times(2);
-  RunFor(base::TimeDelta::FromSeconds(1));
+  RunFor(base::Seconds(1));
   // First announcement for 1.local.
   EXPECT_CALL(socket_factory_, OnSendTo(expected_announcement2)).Times(2);
-  RunFor(base::TimeDelta::FromSeconds(1));
+  RunFor(base::Seconds(1));
   // Second announcement for 1.local.
   EXPECT_CALL(socket_factory_, OnSendTo(expected_announcement2)).Times(2);
-  RunFor(base::TimeDelta::FromSeconds(1));
+  RunFor(base::Seconds(1));
   // Goodbye for 1.local.
   EXPECT_CALL(socket_factory_, OnSendTo(expected_goodbye2)).Times(2);
   RunUntilNoTasksRemain();
@@ -1130,7 +1130,7 @@
 
   // Response to the second received query will be delayed for another one
   // second plus an extra delay of 20-120ms.
-  RunFor(base::TimeDelta::FromMilliseconds(1015));
+  RunFor(base::Milliseconds(1015));
   EXPECT_CALL(socket_factory_, OnSendTo(expected_response)).Times(1);
 
   RunUntilNoTasksRemain();
@@ -1162,7 +1162,7 @@
       reinterpret_cast<const uint8_t*>(query2.data()), query2.size());
   socket_factory_.SimulateReceive(
       reinterpret_cast<const uint8_t*>(query1.data()), query1.size());
-  RunFor(base::TimeDelta::FromMilliseconds(900));
+  RunFor(base::Milliseconds(900));
   // Resolution for name1 for the second query about it.
   EXPECT_CALL(socket_factory_, OnSendTo(expected_response1)).Times(1);
   RunUntilNoTasksRemain();
@@ -1194,7 +1194,7 @@
       reinterpret_cast<const uint8_t*>(query2.data()), query2.size());
   socket_factory_.SimulateReceive(
       reinterpret_cast<const uint8_t*>(query1.data()), query1.size());
-  RunFor(base::TimeDelta::FromMilliseconds(900));
+  RunFor(base::Milliseconds(900));
   // Negative response for name1 for the second query about it.
   EXPECT_CALL(socket_factory_, OnSendTo(expected_response1)).Times(1);
   RunUntilNoTasksRemain();
@@ -1219,7 +1219,7 @@
       reinterpret_cast<const uint8_t*>(query_a.data()), query_a.size());
   socket_factory_.SimulateReceive(
       reinterpret_cast<const uint8_t*>(query_aaaa.data()), query_aaaa.size());
-  RunFor(base::TimeDelta::FromMilliseconds(900));
+  RunFor(base::Milliseconds(900));
 
   EXPECT_CALL(socket_factory_, OnSendTo(expected_negative_resp)).Times(1);
   RunUntilNoTasksRemain();
@@ -1246,7 +1246,7 @@
       reinterpret_cast<const uint8_t*>(query.data()), query.size());
   socket_factory_.SimulateReceive(
       reinterpret_cast<const uint8_t*>(query.data()), query.size());
-  RunFor(base::TimeDelta::FromMilliseconds(500));
+  RunFor(base::Milliseconds(500));
 }
 
 // Test that different rate limit schemes effectively form different queues of
@@ -1304,18 +1304,18 @@
   client_[0]->CreateNameForAddress(
       addr2, base::BindOnce(do_sequence_after_name_created, &socket_factory_,
                             query2_a, query2_aaaa, query2_any));
-  RunFor(base::TimeDelta::FromMilliseconds(900));
+  RunFor(base::Milliseconds(900));
 
   // 2 second announcements for name1 from 2 interfaces, and 1 response to
   // query1_aaaa (per-record limit).
   EXPECT_CALL(socket_factory_, OnSendTo(expected_resolution1)).Times(3);
   // 1 response to query2_aaaa (per-record limit).
   EXPECT_CALL(socket_factory_, OnSendTo(expected_resolution2)).Times(1);
-  RunFor(base::TimeDelta::FromSeconds(1));
+  RunFor(base::Seconds(1));
 
   // 2 first announcements for name2 from 2 interfaces.
   EXPECT_CALL(socket_factory_, OnSendTo(expected_resolution2)).Times(2);
-  RunFor(base::TimeDelta::FromSeconds(1));
+  RunFor(base::Seconds(1));
 
   // 2 second announcements for name2 from 2 interfaces.
   EXPECT_CALL(socket_factory_, OnSendTo(expected_resolution2)).Times(2);
diff --git a/services/network/net_log_proxy_sink_unittest.cc b/services/network/net_log_proxy_sink_unittest.cc
index b9a6c52a..0b7355b 100644
--- a/services/network/net_log_proxy_sink_unittest.cc
+++ b/services/network/net_log_proxy_sink_unittest.cc
@@ -107,9 +107,9 @@
       add_entry_runloop.QuitClosure());
 
   base::TimeTicks source1_start_time =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(10);
+      base::TimeTicks() + base::Milliseconds(10);
   base::TimeTicks source1_event0_time =
-      source1_start_time + base::TimeDelta::FromMilliseconds(1);
+      source1_start_time + base::Milliseconds(1);
   base::Value source1_event0_params(base::Value::Type::DICTIONARY);
   source1_event0_params.SetStringKey("hello", "world");
   proxy_sink_remote->AddEntry(
diff --git a/services/network/network_context_unittest.cc b/services/network/network_context_unittest.cc
index 545ecf2b..6a8f5802 100644
--- a/services/network/network_context_unittest.cc
+++ b/services/network/network_context_unittest.cc
@@ -1049,7 +1049,7 @@
   // Now check that ClearNetworkingHistoryBetween clears the data.
   base::RunLoop run_loop2;
   network_context->ClearNetworkingHistoryBetween(
-      base::Time::Now() - base::TimeDelta::FromHours(1), base::Time::Max(),
+      base::Time::Now() - base::Hours(1), base::Time::Max(),
       run_loop2.QuitClosure());
   run_loop2.Run();
   EXPECT_FALSE(
@@ -1086,7 +1086,7 @@
 
   base::RunLoop run_loop;
   network_context->ClearNetworkingHistoryBetween(
-      base::Time::Now() - base::TimeDelta::FromHours(1), base::Time::Max(),
+      base::Time::Now() - base::Hours(1), base::Time::Max(),
       run_loop.QuitClosure());
   run_loop.Run();
   EXPECT_FALSE(
@@ -1122,7 +1122,7 @@
   base::RunLoop run_loop;
   base::HistogramTester histogram_tester;
   network_context->ClearNetworkingHistoryBetween(
-      base::Time::Now() - base::TimeDelta::FromHours(1), base::Time::Max(),
+      base::Time::Now() - base::Hours(1), base::Time::Max(),
       run_loop.QuitClosure());
   run_loop.Run();
 
@@ -1162,8 +1162,7 @@
     net::TransportSecurityState* state =
         network_context->url_request_context()->transport_security_state();
     EXPECT_FALSE(state->GetDynamicSTSState(kDomain, &sts_state));
-    state->AddHSTS(kDomain,
-                   base::Time::Now() + base::TimeDelta::FromSecondsD(1000),
+    state->AddHSTS(kDomain, base::Time::Now() + base::Seconds(1000),
                    false /* include subdomains */);
     EXPECT_TRUE(state->GetDynamicSTSState(kDomain, &sts_state));
     ASSERT_EQ(kDomain, sts_state.domain);
@@ -1794,7 +1793,7 @@
                               net::NetworkIsolationKey()),
           net::HostCache::Entry(net::OK, net::AddressList(),
                                 net::HostCache::Entry::SOURCE_UNKNOWN),
-          base::TimeTicks::Now(), base::TimeDelta::FromDays(1));
+          base::TimeTicks::Now(), base::Days(1));
       host_cache->Set(
           net::HostCache::Key(
               url::SchemeHostPort(url::kHttpsScheme, domain, 443),
@@ -1802,7 +1801,7 @@
               net::NetworkIsolationKey()),
           net::HostCache::Entry(net::OK, net::AddressList(),
                                 net::HostCache::Entry::SOURCE_UNKNOWN),
-          base::TimeTicks::Now(), base::TimeDelta::FromDays(1));
+          base::TimeTicks::Now(), base::Days(1));
     }
     // Sanity check.
     EXPECT_EQ(base::size(kDomains) * 2, host_cache->entries().size());
@@ -1860,7 +1859,7 @@
              net::HttpAuth::AUTH_SCHEME_BASIC, net::NetworkIsolationKey(),
              "basic realm=Realm1", net::AuthCredentials(user, password), "/");
 
-  test_clock.Advance(base::TimeDelta::FromHours(1));  // Time now 13:00
+  test_clock.Advance(base::Hours(1));  // Time now 13:00
   cache->Add(origin, net::HttpAuth::AUTH_PROXY, "Realm2",
              net::HttpAuth::AUTH_SCHEME_BASIC, net::NetworkIsolationKey(),
              "basic realm=Realm2", net::AuthCredentials(user, password), "/");
@@ -1927,7 +1926,7 @@
              net::HttpAuth::AUTH_SCHEME_BASIC, net::NetworkIsolationKey(),
              "basic realm=Realm1", net::AuthCredentials(user, password), "/");
 
-  test_clock.Advance(base::TimeDelta::FromHours(1));  // Time now 13:00
+  test_clock.Advance(base::Hours(1));  // Time now 13:00
   cache->Add(origin, net::HttpAuth::AUTH_PROXY, "Realm2",
              net::HttpAuth::AUTH_SCHEME_BASIC, net::NetworkIsolationKey(),
              "basic realm=Realm2", net::AuthCredentials(user, password), "/");
@@ -4298,8 +4297,7 @@
     int num_sockets = GetSocketCountForGroup(network_context.get(), group);
     EXPECT_EQ(num_sockets, 1);
 
-    const base::Time expiry =
-        base::Time::Now() + base::TimeDelta::FromSeconds(1000);
+    const base::Time expiry = base::Time::Now() + base::Seconds(1000);
     network_context->url_request_context()->transport_security_state()->AddHSTS(
         server_http_url.host(), expiry, false);
     network_context->PreconnectSockets(1, server_http_url,
@@ -4710,8 +4708,7 @@
       CreateContextWithParams(CreateNetworkContextParamsForTesting());
 
   const char kTestDomain[] = "example.com";
-  const base::Time expiry =
-      base::Time::Now() + base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = base::Time::Now() + base::Seconds(1000);
   const bool enforce = true;
   const GURL report_uri = GURL("https://example.com/foo/bar");
 
@@ -4861,9 +4858,9 @@
   EXPECT_FALSE(result);
 
   base::RunLoop run_loop;
-  network_context->AddHSTS(
-      kTestDomain, base::Time::Now() + base::TimeDelta::FromDays(1000),
-      false /*include_subdomains*/, run_loop.QuitClosure());
+  network_context->AddHSTS(kTestDomain, base::Time::Now() + base::Days(1000),
+                           false /*include_subdomains*/,
+                           run_loop.QuitClosure());
   run_loop.Run();
 
   bool result2 = false, got_result2 = false;
@@ -4878,8 +4875,7 @@
 
 TEST_F(NetworkContextTest, GetHSTSState) {
   const char kTestDomain[] = "example.com";
-  const base::Time expiry =
-      base::Time::Now() + base::TimeDelta::FromSeconds(1000);
+  const base::Time expiry = base::Time::Now() + base::Seconds(1000);
   const GURL report_uri = GURL("https://example.com/foo/bar");
 
   std::unique_ptr<NetworkContext> network_context =
@@ -5006,8 +5002,7 @@
   proxies.push_back(net::ProxyUriToProxyServer("http://foo1.com",
                                                net::ProxyServer::SCHEME_HTTP));
   proxy_resolution_service->MarkProxiesAsBadUntil(
-      proxy_info, base::TimeDelta::FromDays(1), proxies,
-      net::NetLogWithSource());
+      proxy_info, base::Days(1), proxies, net::NetLogWithSource());
   base::RunLoop().RunUntilIdle();
   EXPECT_EQ(1UL, proxy_resolution_service->proxy_retry_info().size());
 
@@ -6118,7 +6113,7 @@
     log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
     log_info->name = std::string(4, 0x41 + static_cast<char>(i));
     log_info->operated_by_google = false;
-    log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
+    log_info->disqualified_at = base::Seconds(i);
 
     log_list_mojo.push_back(std::move(log_info));
   }
@@ -6154,14 +6149,12 @@
       ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
                                             crypto::SHA256HashString("3333"),
                                             crypto::SHA256HashString("5555")}));
-  EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
-              ::testing::UnorderedElementsAre(
-                  ::testing::Pair(crypto::SHA256HashString("AAAA"),
-                                  base::TimeDelta::FromSeconds(0)),
-                  ::testing::Pair(crypto::SHA256HashString("BBBB"),
-                                  base::TimeDelta::FromSeconds(1)),
-                  ::testing::Pair(crypto::SHA256HashString("CCCC"),
-                                  base::TimeDelta::FromSeconds(2))));
+  EXPECT_THAT(
+      policy_enforcer->disqualified_logs_for_testing(),
+      ::testing::UnorderedElementsAre(
+          ::testing::Pair(crypto::SHA256HashString("AAAA"), base::Seconds(0)),
+          ::testing::Pair(crypto::SHA256HashString("BBBB"), base::Seconds(1)),
+          ::testing::Pair(crypto::SHA256HashString("CCCC"), base::Seconds(2))));
 }
 #endif
 
diff --git a/services/network/network_quality_estimator_manager_unittest.cc b/services/network/network_quality_estimator_manager_unittest.cc
index 7a99e26..5d9c36d 100644
--- a/services/network/network_quality_estimator_manager_unittest.cc
+++ b/services/network/network_quality_estimator_manager_unittest.cc
@@ -157,9 +157,9 @@
                     ->num_network_quality_changed());
   // Typical RTT and downlink values when effective connection type is 3G. Taken
   // from net::NetworkQualityEstimatorParams.
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(450),
+  EXPECT_EQ(base::Milliseconds(450),
             network_quality_estimator_manager_client()->http_rtt());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(400),
+  EXPECT_EQ(base::Milliseconds(400),
             network_quality_estimator_manager_client()->transport_rtt());
   EXPECT_EQ(
       400,
@@ -181,9 +181,9 @@
   base::RunLoop().RunUntilIdle();
   // Typical RTT and downlink values when effective connection type is 3G. Taken
   // from net::NetworkQualityEstimatorParams.
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(450),
+  EXPECT_EQ(base::Milliseconds(450),
             network_quality_estimator_manager_client()->http_rtt());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(400),
+  EXPECT_EQ(base::Milliseconds(400),
             network_quality_estimator_manager_client()->transport_rtt());
   EXPECT_EQ(
       400,
@@ -221,9 +221,9 @@
       network_quality_estimator_manager_client2->effective_connection_type());
   // Typical RTT and downlink values when effective connection type is 4G. Taken
   // from net::NetworkQualityEstimatorParams.
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(175),
+  EXPECT_EQ(base::Milliseconds(175),
             network_quality_estimator_manager_client2->http_rtt());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(125),
+  EXPECT_EQ(base::Milliseconds(125),
             network_quality_estimator_manager_client()->transport_rtt());
   EXPECT_EQ(
       1600,
@@ -250,9 +250,9 @@
       network_quality_estimator_manager_client()->effective_connection_type());
   EXPECT_GE(3u, network_quality_estimator_manager_client()
                     ->num_network_quality_changed());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1800),
+  EXPECT_EQ(base::Milliseconds(1800),
             network_quality_estimator_manager_client()->http_rtt());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1500),
+  EXPECT_EQ(base::Milliseconds(1500),
             network_quality_estimator_manager_client()->transport_rtt());
   EXPECT_EQ(
       75,
@@ -272,9 +272,9 @@
   base::RunLoop().RunUntilIdle();
   // Typical RTT and downlink values when effective connection type is 2G. Taken
   // from net::NetworkQualityEstimatorParams.
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1800),
+  EXPECT_EQ(base::Milliseconds(1800),
             network_quality_estimator_manager_client()->http_rtt());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1500),
+  EXPECT_EQ(base::Milliseconds(1500),
             network_quality_estimator_manager_client()->transport_rtt());
   EXPECT_EQ(
       75,
@@ -292,9 +292,9 @@
       network_quality_estimator_manager_client2.effective_connection_type());
   // Typical RTT and downlink values when when effective connection type is 2G.
   // Taken from net::NetworkQualityEstimatorParams.
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1800),
+  EXPECT_EQ(base::Milliseconds(1800),
             network_quality_estimator_manager_client2.http_rtt());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1500),
+  EXPECT_EQ(base::Milliseconds(1500),
             network_quality_estimator_manager_client()->transport_rtt());
   EXPECT_EQ(
       75, network_quality_estimator_manager_client2.downlink_bandwidth_kbps());
diff --git a/services/network/network_service.cc b/services/network/network_service.cc
index c850d695..c326bb9 100644
--- a/services/network/network_service.cc
+++ b/services/network/network_service.cc
@@ -200,7 +200,7 @@
 
 // static
 const base::TimeDelta NetworkService::kInitialDohProbeTimeout =
-    base::TimeDelta::FromSeconds(5);
+    base::Seconds(5);
 
 // Handler of delaying calls to NetworkContext::ActivateDohProbes() until after
 // an initial service startup delay.
diff --git a/services/network/network_service_proxy_delegate_unittest.cc b/services/network/network_service_proxy_delegate_unittest.cc
index 42f54df..6e03813 100644
--- a/services/network/network_service_proxy_delegate_unittest.cc
+++ b/services/network/network_service_proxy_delegate_unittest.cc
@@ -317,7 +317,7 @@
   net::ProxyRetryInfoMap retry_map;
   net::ProxyRetryInfo& info = retry_map["foo:80"];
   info.try_while_bad = false;
-  info.bad_until = base::TimeTicks::Now() + base::TimeDelta::FromDays(2);
+  info.bad_until = base::TimeTicks::Now() + base::Days(2);
   delegate->OnResolveProxy(GURL(kHttpUrl), "GET", retry_map, &result);
 
   net::ProxyList expected_proxy_list;
@@ -336,7 +336,7 @@
   net::ProxyRetryInfoMap retry_map;
   net::ProxyRetryInfo& info = retry_map["foo:80"];
   info.try_while_bad = false;
-  info.bad_until = base::TimeTicks::Now() + base::TimeDelta::FromDays(2);
+  info.bad_until = base::TimeTicks::Now() + base::Days(2);
   delegate->OnResolveProxy(GURL(kHttpUrl), "GET", retry_map, &result);
 
   EXPECT_TRUE(result.is_direct());
diff --git a/services/network/p2p/socket_tcp.cc b/services/network/p2p/socket_tcp.cc
index 9d7d9fd..be573dd 100644
--- a/services/network/p2p/socket_tcp.cc
+++ b/services/network/p2p/socket_tcp.cc
@@ -248,7 +248,7 @@
 
   client_->DataReceived(
       remote_address_.ip_address, data,
-      base::TimeTicks() + base::TimeDelta::FromNanoseconds(rtc::TimeNanos()));
+      base::TimeTicks() + base::Nanoseconds(rtc::TimeNanos()));
 
   delegate_->DumpPacket(
       base::make_span(reinterpret_cast<const uint8_t*>(&data[0]), data.size()),
diff --git a/services/network/p2p/socket_udp.cc b/services/network/p2p/socket_udp.cc
index 5b5ddf8..9e262b0 100644
--- a/services/network/p2p/socket_udp.cc
+++ b/services/network/p2p/socket_udp.cc
@@ -226,7 +226,7 @@
 
     client_->DataReceived(
         recv_address_, data,
-        base::TimeTicks() + base::TimeDelta::FromNanoseconds(rtc::TimeNanos()));
+        base::TimeTicks() + base::Nanoseconds(rtc::TimeNanos()));
 
     delegate_->DumpPacket(
         base::make_span(reinterpret_cast<uint8_t*>(&data[0]), data.size()),
@@ -375,9 +375,8 @@
 
   // UMA to track the histograms from 1ms to 1 sec for how long a packet spends
   // in the browser process.
-  UMA_HISTOGRAM_TIMES(
-      "WebRTC.SystemSendPacketDuration_UDP" /* name */,
-      base::TimeDelta::FromMilliseconds(rtc::TimeMillis() - send_time_ms));
+  UMA_HISTOGRAM_TIMES("WebRTC.SystemSendPacketDuration_UDP" /* name */,
+                      base::Milliseconds(rtc::TimeMillis() - send_time_ms));
 
   client_->SendComplete(
       P2PSendPacketMetrics(packet_id, transport_sequence_number, send_time_ms));
diff --git a/services/network/public/cpp/client_hints.cc b/services/network/public/cpp/client_hints.cc
index 6ce5a2a..d4429c8 100644
--- a/services/network/public/cpp/client_hints.cc
+++ b/services/network/public/cpp/client_hints.cc
@@ -125,7 +125,7 @@
       persist_duration_seconds <= 0)
     return base::TimeDelta();
 
-  return base::TimeDelta::FromSeconds(persist_duration_seconds);
+  return base::Seconds(persist_duration_seconds);
 }
 
 }  // namespace network
diff --git a/services/network/public/cpp/client_hints_unittest.cc b/services/network/public/cpp/client_hints_unittest.cc
index 327c579..c0079225 100644
--- a/services/network/public/cpp/client_hints_unittest.cc
+++ b/services/network/public/cpp/client_hints_unittest.cc
@@ -68,7 +68,7 @@
   EXPECT_EQ(base::TimeDelta(), ParseAcceptCHLifetime("-1000"));
   EXPECT_EQ(base::TimeDelta(), ParseAcceptCHLifetime("1000s"));
   EXPECT_EQ(base::TimeDelta(), ParseAcceptCHLifetime("1000.5"));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(1000), ParseAcceptCHLifetime("1000"));
+  EXPECT_EQ(base::Seconds(1000), ParseAcceptCHLifetime("1000"));
 }
 
 }  // namespace network
diff --git a/services/network/public/cpp/devtools_observer_unittest.cc b/services/network/public/cpp/devtools_observer_unittest.cc
index f40b9ac4..32d1742 100644
--- a/services/network/public/cpp/devtools_observer_unittest.cc
+++ b/services/network/public/cpp/devtools_observer_unittest.cc
@@ -23,12 +23,12 @@
   base::test::SingleThreadTaskEnvironment task_environment;
 
   mojom::URLResponseHead head;
-  head.response_time = base::Time() + base::TimeDelta::FromMicroseconds(10);
+  head.response_time = base::Time() + base::Microseconds(10);
   head.headers =
       base::MakeRefCounted<net::HttpResponseHeaders>("HTTP/1.1 200 OK\0");
   head.mime_type = "mime_type";
   head.load_timing.first_early_hints_time =
-      base::TimeTicks() + base::TimeDelta::FromMicroseconds(11);
+      base::TimeTicks() + base::Microseconds(11);
   head.cert_status = 12;
   head.encoded_data_length = 13;
   head.was_in_prefetch_cache = true;
diff --git a/services/network/public/cpp/host_resolver_mojom_traits_unittest.cc b/services/network/public/cpp/host_resolver_mojom_traits_unittest.cc
index 07abe42..59e01e9 100644
--- a/services/network/public/cpp/host_resolver_mojom_traits_unittest.cc
+++ b/services/network/public/cpp/host_resolver_mojom_traits_unittest.cc
@@ -33,7 +33,7 @@
   original.search.emplace({std::string("str")});
   original.append_to_multi_label_name = true;
   original.ndots = 2;
-  original.fallback_period = base::TimeDelta::FromHours(4);
+  original.fallback_period = base::Hours(4);
   original.attempts = 1;
   original.rotate = true;
   original.use_local_ipv6 = false;
diff --git a/services/network/public/cpp/network_quality_tracker_unittest.cc b/services/network/public/cpp/network_quality_tracker_unittest.cc
index c0cd60df..a7044769 100644
--- a/services/network/public/cpp/network_quality_tracker_unittest.cc
+++ b/services/network/public/cpp/network_quality_tracker_unittest.cc
@@ -237,9 +237,8 @@
             effective_connection_type_observer()->effective_connection_type());
   // Typical RTT and downlink values when effective connection type is 3G. Taken
   // from net::NetworkQualityEstimatorParams.
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(450),
-            network_quality_tracker()->GetHttpRTT());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(400),
+  EXPECT_EQ(base::Milliseconds(450), network_quality_tracker()->GetHttpRTT());
+  EXPECT_EQ(base::Milliseconds(400),
             network_quality_tracker()->GetTransportRTT());
   EXPECT_EQ(400, network_quality_tracker()->GetDownstreamThroughputKbps());
   base::RunLoop().RunUntilIdle();
@@ -252,9 +251,8 @@
             effective_connection_type_observer()->effective_connection_type());
   // Typical RTT and downlink values when effective connection type is 3G. Taken
   // from net::NetworkQualityEstimatorParams.
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1800),
-            network_quality_tracker()->GetHttpRTT());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1500),
+  EXPECT_EQ(base::Milliseconds(1800), network_quality_tracker()->GetHttpRTT());
+  EXPECT_EQ(base::Milliseconds(1500),
             network_quality_tracker()->GetTransportRTT());
   EXPECT_EQ(75, network_quality_tracker()->GetDownstreamThroughputKbps());
   base::RunLoop().RunUntilIdle();
@@ -274,9 +272,8 @@
             effective_connection_type_observer()->effective_connection_type());
   // Typical RTT and downlink values when effective connection type is 3G. Taken
   // from net::NetworkQualityEstimatorParams.
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(450),
-            network_quality_tracker()->GetHttpRTT());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(400),
+  EXPECT_EQ(base::Milliseconds(450), network_quality_tracker()->GetHttpRTT());
+  EXPECT_EQ(base::Milliseconds(400),
             network_quality_tracker()->GetTransportRTT());
   EXPECT_EQ(400, network_quality_tracker()->GetDownstreamThroughputKbps());
   base::RunLoop().RunUntilIdle();
@@ -300,13 +297,11 @@
   EXPECT_EQ(1u, rtt_throughput_observer()->num_notifications());
 
   SimulateEffectiveConnectionTypeChange(net::EFFECTIVE_CONNECTION_TYPE_3G);
-  rtt_throughput_observer()->WaitForNotification(
-      base::TimeDelta::FromMilliseconds(450));
+  rtt_throughput_observer()->WaitForNotification(base::Milliseconds(450));
   // Typical RTT and downlink values when effective connection type is 3G. Taken
   // from net::NetworkQualityEstimatorParams.
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(450),
-            network_quality_tracker()->GetHttpRTT());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(400),
+  EXPECT_EQ(base::Milliseconds(450), network_quality_tracker()->GetHttpRTT());
+  EXPECT_EQ(base::Milliseconds(400),
             network_quality_tracker()->GetTransportRTT());
   EXPECT_EQ(400, network_quality_tracker()->GetDownstreamThroughputKbps());
   rtt_throughput_observer()->VerifyNetworkQualityMatchesWithTracker();
@@ -314,13 +309,11 @@
 
   SimulateEffectiveConnectionTypeChange(net::EFFECTIVE_CONNECTION_TYPE_2G);
   rtt_throughput_observer()->VerifyNetworkQualityMatchesWithTracker();
-  rtt_throughput_observer()->WaitForNotification(
-      base::TimeDelta::FromMilliseconds(1800));
+  rtt_throughput_observer()->WaitForNotification(base::Milliseconds(1800));
   // Typical RTT and downlink values when effective connection type is 3G. Taken
   // from net::NetworkQualityEstimatorParams.
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1800),
-            network_quality_tracker()->GetHttpRTT());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1500),
+  EXPECT_EQ(base::Milliseconds(1800), network_quality_tracker()->GetHttpRTT());
+  EXPECT_EQ(base::Milliseconds(1500),
             network_quality_tracker()->GetTransportRTT());
   EXPECT_EQ(75, network_quality_tracker()->GetDownstreamThroughputKbps());
   EXPECT_EQ(3u, rtt_throughput_observer()->num_notifications());
@@ -337,9 +330,8 @@
             effective_connection_type_observer()->effective_connection_type());
   // Typical RTT and downlink values when effective connection type is 3G. Taken
   // from net::NetworkQualityEstimatorParams.
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(450),
-            network_quality_tracker()->GetHttpRTT());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(400),
+  EXPECT_EQ(base::Milliseconds(450), network_quality_tracker()->GetHttpRTT());
+  EXPECT_EQ(base::Milliseconds(400),
             network_quality_tracker()->GetTransportRTT());
   EXPECT_EQ(400, network_quality_tracker()->GetDownstreamThroughputKbps());
   EXPECT_EQ(1u, effective_connection_type_observer()->num_notifications());
@@ -353,13 +345,11 @@
 
 TEST_F(NetworkQualityTrackerTest, RttThroughputObserverNotifiedOnAddition) {
   SimulateEffectiveConnectionTypeChange(net::EFFECTIVE_CONNECTION_TYPE_3G);
-  rtt_throughput_observer()->WaitForNotification(
-      base::TimeDelta::FromMilliseconds(450));
+  rtt_throughput_observer()->WaitForNotification(base::Milliseconds(450));
   // Typical RTT and downlink values when effective connection type is 3G. Taken
   // from net::NetworkQualityEstimatorParams.
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(450),
-            network_quality_tracker()->GetHttpRTT());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(400),
+  EXPECT_EQ(base::Milliseconds(450), network_quality_tracker()->GetHttpRTT());
+  EXPECT_EQ(base::Milliseconds(400),
             network_quality_tracker()->GetTransportRTT());
   EXPECT_EQ(400, network_quality_tracker()->GetDownstreamThroughputKbps());
   rtt_throughput_observer()->VerifyNetworkQualityMatchesWithTracker();
@@ -374,13 +364,11 @@
   // Simulate a network quality change.
   SimulateEffectiveConnectionTypeChange(net::EFFECTIVE_CONNECTION_TYPE_2G);
 
-  rtt_throughput_observer()->WaitForNotification(
-      base::TimeDelta::FromMilliseconds(1800));
+  rtt_throughput_observer()->WaitForNotification(base::Milliseconds(1800));
   // Typical RTT and downlink values when effective connection type is 2G. Taken
   // from net::NetworkQualityEstimatorParams.
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1800),
-            network_quality_tracker()->GetHttpRTT());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1500),
+  EXPECT_EQ(base::Milliseconds(1800), network_quality_tracker()->GetHttpRTT());
+  EXPECT_EQ(base::Milliseconds(1500),
             network_quality_tracker()->GetTransportRTT());
   EXPECT_EQ(75, network_quality_tracker()->GetDownstreamThroughputKbps());
 
@@ -406,9 +394,8 @@
             effective_connection_type_observer()->effective_connection_type());
   // Typical RTT and downlink values when effective connection type is 3G. Taken
   // from net::NetworkQualityEstimatorParams.
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(450),
-            network_quality_tracker()->GetHttpRTT());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(400),
+  EXPECT_EQ(base::Milliseconds(450), network_quality_tracker()->GetHttpRTT());
+  EXPECT_EQ(base::Milliseconds(400),
             network_quality_tracker()->GetTransportRTT());
   EXPECT_EQ(400, network_quality_tracker()->GetDownstreamThroughputKbps());
 
@@ -420,9 +407,8 @@
       net::EFFECTIVE_CONNECTION_TYPE_2G);
   EXPECT_EQ(net::EFFECTIVE_CONNECTION_TYPE_2G,
             effective_connection_type_observer()->effective_connection_type());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1800),
-            network_quality_tracker()->GetHttpRTT());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1500),
+  EXPECT_EQ(base::Milliseconds(1800), network_quality_tracker()->GetHttpRTT());
+  EXPECT_EQ(base::Milliseconds(1500),
             network_quality_tracker()->GetTransportRTT());
   EXPECT_EQ(75, network_quality_tracker()->GetDownstreamThroughputKbps());
   EXPECT_EQ(2u, effective_connection_type_observer()->num_notifications());
@@ -436,13 +422,11 @@
   // Simulate a network quality change.
   SimulateEffectiveConnectionTypeChange(net::EFFECTIVE_CONNECTION_TYPE_3G);
 
-  rtt_throughput_observer()->WaitForNotification(
-      base::TimeDelta::FromMilliseconds(450));
+  rtt_throughput_observer()->WaitForNotification(base::Milliseconds(450));
   // Typical RTT and downlink values when effective connection type is 3G. Taken
   // from net::NetworkQualityEstimatorParams.
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(450),
-            network_quality_tracker()->GetHttpRTT());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(400),
+  EXPECT_EQ(base::Milliseconds(450), network_quality_tracker()->GetHttpRTT());
+  EXPECT_EQ(base::Milliseconds(400),
             network_quality_tracker()->GetTransportRTT());
   EXPECT_EQ(400, network_quality_tracker()->GetDownstreamThroughputKbps());
   rtt_throughput_observer()->VerifyNetworkQualityMatchesWithTracker();
@@ -455,11 +439,9 @@
 
   // Simulate an another network quality change.
   SimulateEffectiveConnectionTypeChange(net::EFFECTIVE_CONNECTION_TYPE_2G);
-  rtt_throughput_observer()->WaitForNotification(
-      base::TimeDelta::FromMilliseconds(1800));
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1800),
-            network_quality_tracker()->GetHttpRTT());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1500),
+  rtt_throughput_observer()->WaitForNotification(base::Milliseconds(1800));
+  EXPECT_EQ(base::Milliseconds(1800), network_quality_tracker()->GetHttpRTT());
+  EXPECT_EQ(base::Milliseconds(1500),
             network_quality_tracker()->GetTransportRTT());
   EXPECT_EQ(75, network_quality_tracker()->GetDownstreamThroughputKbps());
   rtt_throughput_observer()->VerifyNetworkQualityMatchesWithTracker();
diff --git a/services/network/public/cpp/simple_url_loader_unittest.cc b/services/network/public/cpp/simple_url_loader_unittest.cc
index ad1923ed..cc67adf6 100644
--- a/services/network/public/cpp/simple_url_loader_unittest.cc
+++ b/services/network/public/cpp/simple_url_loader_unittest.cc
@@ -2183,7 +2183,7 @@
           break;
         }
         case TestLoaderEvent::kAdvanceOneSecond: {
-          task_environment_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+          task_environment_->FastForwardBy(base::Seconds(1));
           break;
         }
       }
@@ -3489,8 +3489,7 @@
        TestLoaderEvent::kBodyBufferReceived, TestLoaderEvent::kResponseComplete,
        TestLoaderEvent::kBodyBufferClosed});
   std::unique_ptr<SimpleLoaderTestHelper> test_helper = CreateHelper();
-  test_helper->simple_url_loader()->SetTimeoutDuration(
-      base::TimeDelta::FromSeconds(1));
+  test_helper->simple_url_loader()->SetTimeoutDuration(base::Seconds(1));
 
   loader_factory.RunTest(test_helper.get());
 
@@ -3507,8 +3506,7 @@
        TestLoaderEvent::kBodyDataRead, TestLoaderEvent::kAdvanceOneSecond,
        TestLoaderEvent::kResponseComplete, TestLoaderEvent::kBodyBufferClosed});
   std::unique_ptr<SimpleLoaderTestHelper> test_helper = CreateStreamHelper();
-  test_helper->simple_url_loader()->SetTimeoutDuration(
-      base::TimeDelta::FromSeconds(1));
+  test_helper->simple_url_loader()->SetTimeoutDuration(base::Seconds(1));
   test_helper->set_download_to_stream_capture_resume(true);
 
   loader_factory.RunTest(test_helper.get());
@@ -3533,8 +3531,7 @@
        TestLoaderEvent::kBodyBufferReceived, TestLoaderEvent::kResponseComplete,
        TestLoaderEvent::kBodyBufferClosed});
   std::unique_ptr<SimpleLoaderTestHelper> test_helper = CreateHelper();
-  test_helper->simple_url_loader()->SetTimeoutDuration(
-      base::TimeDelta::FromSeconds(2));
+  test_helper->simple_url_loader()->SetTimeoutDuration(base::Seconds(2));
 
   loader_factory.RunTest(test_helper.get());
 
@@ -3574,8 +3571,7 @@
        TestLoaderEvent::kBodyBufferReceived, TestLoaderEvent::kBodyBufferClosed,
        TestLoaderEvent::kResponseComplete});
   std::unique_ptr<SimpleLoaderTestHelper> test_helper = CreateHelper();
-  test_helper->simple_url_loader()->SetTimeoutDuration(
-      base::TimeDelta::FromSeconds(2));
+  test_helper->simple_url_loader()->SetTimeoutDuration(base::Seconds(2));
 
   loader_factory.RunTest(test_helper.get());
 
@@ -3594,8 +3590,7 @@
        TestLoaderEvent::kBodyBufferReceived, TestLoaderEvent::kBodyBufferClosed,
        TestLoaderEvent::kResponseComplete});
   std::unique_ptr<SimpleLoaderTestHelper> test_helper = CreateHelper();
-  test_helper->simple_url_loader()->SetTimeoutDuration(
-      base::TimeDelta::FromSeconds(2));
+  test_helper->simple_url_loader()->SetTimeoutDuration(base::Seconds(2));
   test_helper->simple_url_loader()->SetRetryOptions(
       1, SimpleURLLoader::RETRY_ON_5XX);
 
@@ -3620,7 +3615,7 @@
        TestLoaderEvent::kResponseComplete});
   std::unique_ptr<SimpleLoaderTestHelper> test_helper = CreateHelper();
   test_helper->simple_url_loader()->SetTimeoutDuration(
-      base::TimeDelta::FromMilliseconds(1900));
+      base::Milliseconds(1900));
   test_helper->simple_url_loader()->SetRetryOptions(
       1, SimpleURLLoader::RETRY_ON_5XX);
 
diff --git a/services/network/public/cpp/url_loader_completion_status_mojom_traits_unittest.cc b/services/network/public/cpp/url_loader_completion_status_mojom_traits_unittest.cc
index fb1f055..057ba82 100644
--- a/services/network/public/cpp/url_loader_completion_status_mojom_traits_unittest.cc
+++ b/services/network/public/cpp/url_loader_completion_status_mojom_traits_unittest.cc
@@ -19,7 +19,7 @@
   original.error_code = 1;
   original.extended_error_code = 2;
   original.exists_in_cache = true;
-  original.completion_time += base::TimeDelta::FromMinutes(3);
+  original.completion_time += base::Minutes(3);
   original.encoded_data_length = 4;
   original.encoded_body_length = 5;
   original.decoded_body_length = 6;
diff --git a/services/network/public/cpp/url_request_mojom_traits_unittest.cc b/services/network/public/cpp/url_request_mojom_traits_unittest.cc
index 5d140eb..15acead 100644
--- a/services/network/public/cpp/url_request_mojom_traits_unittest.cc
+++ b/services/network/public/cpp/url_request_mojom_traits_unittest.cc
@@ -196,9 +196,8 @@
 
 TEST_F(DataElementDeserializationTest, File) {
   const base::FilePath kPath = base::FilePath::FromUTF8Unsafe("foobar");
-  DataElement src(DataElementFile(
-      kPath, /*offset=*/3, /*length=*/8,
-      base::Time::UnixEpoch() + base::TimeDelta::FromMinutes(2)));
+  DataElement src(DataElementFile(kPath, /*offset=*/3, /*length=*/8,
+                                  base::Time::UnixEpoch() + base::Minutes(2)));
   DataElement dest;
   ASSERT_TRUE(
       mojo::test::SerializeAndDeserialize<mojom::DataElement>(src, dest));
diff --git a/services/network/resource_scheduler/resource_scheduler.cc b/services/network/resource_scheduler/resource_scheduler.cc
index 5fc2eac..4eef3f2 100644
--- a/services/network/resource_scheduler/resource_scheduler.cc
+++ b/services/network/resource_scheduler/resource_scheduler.cc
@@ -141,17 +141,16 @@
   // dispatch of the request by a significant amount.
   if (!base::FeatureList::IsEnabled(
           features::kProactivelyThrottleLowPriorityRequests)) {
-    return base::TimeDelta::FromSeconds(5);
+    return base::Seconds(5);
   }
 
   // Choosing 100 milliseconds as the checking interval ensurs that the
   // queue is not checked too frequently. The interval is also not too long, so
   // we do not expect too many requests to go on the network at the
   // same time.
-  return base::TimeDelta::FromMilliseconds(
-      base::GetFieldTrialParamByFeatureAsInt(
-          features::kProactivelyThrottleLowPriorityRequests,
-          "queued_requests_dispatch_periodicity_ms", 100));
+  return base::Milliseconds(base::GetFieldTrialParamByFeatureAsInt(
+      features::kProactivelyThrottleLowPriorityRequests,
+      "queued_requests_dispatch_periodicity_ms", 100));
 }
 
 struct ResourceScheduler::RequestPriorityParams {
@@ -838,8 +837,7 @@
               "ResourceScheduler.NonDelayableLastEndToNonDelayableStart."
               "NonDelayableNotInFlight",
               ticks_now - last_non_delayable_request_end_.value(),
-              base::TimeDelta::FromMilliseconds(10),
-              base::TimeDelta::FromMinutes(3), 50);
+              base::Milliseconds(10), base::Minutes(3), 50);
         }
       }
 
@@ -855,8 +853,7 @@
         LOCAL_HISTOGRAM_CUSTOM_TIMES(
             "ResourceScheduler.NonDelayableLastEndToNonDelayableStart",
             ticks_now - last_non_delayable_request_end_.value(),
-            base::TimeDelta::FromMilliseconds(10),
-            base::TimeDelta::FromMinutes(3), 50);
+            base::Milliseconds(10), base::Minutes(3), 50);
       }
 
       // Record time since last non-delayable request start or end, whichever
@@ -1409,8 +1406,7 @@
     LOCAL_HISTOGRAM_CUSTOM_TIMES(
         "ResourceScheduler.DelayableRequests."
         "WaitTimeToAvoidContentionWithNonDelayableRequest",
-        ideal_duration_to_wait, base::TimeDelta::FromMilliseconds(10),
-        base::TimeDelta::FromMinutes(3), 50);
+        ideal_duration_to_wait, base::Milliseconds(10), base::Minutes(3), 50);
   }
 
   RequestQueue pending_requests_;
diff --git a/services/network/resource_scheduler/resource_scheduler_params_manager.cc b/services/network/resource_scheduler/resource_scheduler_params_manager.cc
index 37e15be..1224bc0 100644
--- a/services/network/resource_scheduler/resource_scheduler_params_manager.cc
+++ b/services/network/resource_scheduler/resource_scheduler_params_manager.cc
@@ -30,7 +30,7 @@
           features::kPauseBrowserInitiatedHeavyTrafficForP2P,
           "max_wait_time_p2p_connections_in_minutes", 60);
 
-  return base::TimeDelta::FromMinutes(max_wait_time_p2p_connections_in_minutes);
+  return base::Minutes(max_wait_time_p2p_connections_in_minutes);
 }
 
 std::set<int32_t> GetThrottledHashes() {
@@ -81,8 +81,7 @@
           features::kPauseLowPriorityBrowserRequestsOnWeakSignal,
           "max_weak_signal_throttling_duration_in_seconds", 600);
 
-  return base::TimeDelta::FromSeconds(
-      max_weak_signal_throttling_duration_in_seconds);
+  return base::Seconds(max_weak_signal_throttling_duration_in_seconds);
 }
 
 absl::optional<base::TimeDelta> GetWeakSignalUnthrottleDuration() {
@@ -96,8 +95,7 @@
           features::kPauseLowPriorityBrowserRequestsOnWeakSignal,
           "weak_signal_unthrottle_duration_in_seconds", 60);
 
-  return base::TimeDelta::FromSeconds(
-      weak_signal_unthrottle_duration_in_seconds);
+  return base::Seconds(weak_signal_unthrottle_duration_in_seconds);
 }
 
 // The maximum number of delayable requests to allow to be in-flight at any
@@ -129,9 +127,9 @@
   static const char kEffectiveConnectionTypeBase[] = "EffectiveConnectionType";
   static const char kNonDelayableWeightBase[] = "NonDelayableWeight";
   static constexpr base::TimeDelta kUpperBoundQueuingDuration =
-      base::TimeDelta::FromSeconds(120);
+      base::Seconds(120);
   static constexpr base::TimeDelta kLowerBoundQueuingDuration =
-      base::TimeDelta::FromSeconds(15);
+      base::Seconds(15);
 
   ResourceSchedulerParamsManager::ParamsForNetworkQualityContainer result;
   // Set the default params for networks with ECT Slow2G and 2G. These params
@@ -385,7 +383,7 @@
     TimeToPauseHeavyBrowserInitiatedRequestsAfterEndOfP2PConnections() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
-  return base::TimeDelta::FromSeconds(base::GetFieldTrialParamByFeatureAsInt(
+  return base::Seconds(base::GetFieldTrialParamByFeatureAsInt(
       features::kPauseBrowserInitiatedHeavyTrafficForP2P,
       "seconds_to_pause_requests_after_end_of_p2p_connections", 60));
 }
diff --git a/services/network/resource_scheduler/resource_scheduler_params_manager_unittest.cc b/services/network/resource_scheduler/resource_scheduler_params_manager_unittest.cc
index 3ebc193..c0e04cd 100644
--- a/services/network/resource_scheduler/resource_scheduler_params_manager_unittest.cc
+++ b/services/network/resource_scheduler/resource_scheduler_params_manager_unittest.cc
@@ -19,10 +19,8 @@
 
 // Should remain synchronized with the values in
 // resouce_scheduler_params_manager.cc.
-constexpr base::TimeDelta kLowerBoundQueuingDuration =
-    base::TimeDelta::FromSeconds(15);
-constexpr base::TimeDelta kUpperBoundQueuingDuration =
-    base::TimeDelta::FromSeconds(120);
+constexpr base::TimeDelta kLowerBoundQueuingDuration = base::Seconds(15);
+constexpr base::TimeDelta kUpperBoundQueuingDuration = base::Seconds(120);
 constexpr int kHttpRttMultiplierForQueuingDuration = 30;
 
 class ResourceSchedulerParamsManagerTest : public testing::Test {
diff --git a/services/network/resource_scheduler/resource_scheduler_unittest.cc b/services/network/resource_scheduler/resource_scheduler_unittest.cc
index c471d3fc..469c76d 100644
--- a/services/network/resource_scheduler/resource_scheduler_unittest.cc
+++ b/services/network/resource_scheduler/resource_scheduler_unittest.cc
@@ -1925,7 +1925,7 @@
 // duration are dispatched to the network.
 TEST_F(ResourceSchedulerTest, MaxQueuingDelaySet) {
   base::HistogramTester histogram_tester;
-  base::TimeDelta max_queuing_time = base::TimeDelta::FromSeconds(15);
+  base::TimeDelta max_queuing_time = base::Seconds(15);
   InitializeMaxQueuingDelayExperiment(max_queuing_time);
   network_quality_estimator_.SetAndNotifyObserversOfEffectiveConnectionType(
       net::EFFECTIVE_CONNECTION_TYPE_SLOW_2G);
@@ -1957,7 +1957,7 @@
 
   // Advance the clock by more than |max_queuing_time|.
   tick_clock_.SetNowTicks(base::DefaultTickClock::GetInstance()->NowTicks() +
-                          max_queuing_time + base::TimeDelta::FromSeconds(1));
+                          max_queuing_time + base::Seconds(1));
 
   // Since the requests have been queued for too long, they should now be
   // dispatched. Trigger the calculation of queuing time by Triggering the
@@ -1990,7 +1990,7 @@
 // Verify that when |max_queuing_time| is not set, requests queued for too long
 // duration are not dispatched to the network.
 TEST_F(ResourceSchedulerTest, MaxQueuingDelayNotSet) {
-  base::TimeDelta max_queuing_time = base::TimeDelta::FromSeconds(15);
+  base::TimeDelta max_queuing_time = base::Seconds(15);
   network_quality_estimator_.SetAndNotifyObserversOfEffectiveConnectionType(
       net::EFFECTIVE_CONNECTION_TYPE_SLOW_2G);
 
@@ -2021,7 +2021,7 @@
 
   // Advance the clock by more than |max_queuing_time|.
   tick_clock_.SetNowTicks(base::DefaultTickClock::GetInstance()->NowTicks() +
-                          max_queuing_time + base::TimeDelta::FromSeconds(1));
+                          max_queuing_time + base::Seconds(1));
 
   // Triggering the finish of a single request should not trigger dispatch of
   // requests that have been queued for too long.
@@ -2038,7 +2038,7 @@
 // Verify that when the timer for dispatching long queued requests is fired,
 // then the long queued requests are dispatched to the network.
 TEST_F(ResourceSchedulerTest, MaxQueuingDelayTimerFires) {
-  base::TimeDelta max_queuing_time = base::TimeDelta::FromSeconds(15);
+  base::TimeDelta max_queuing_time = base::Seconds(15);
   InitializeMaxQueuingDelayExperiment(max_queuing_time);
   network_quality_estimator_.SetAndNotifyObserversOfEffectiveConnectionType(
       net::EFFECTIVE_CONNECTION_TYPE_SLOW_2G);
@@ -2070,7 +2070,7 @@
 
   // Advance the clock by more than |max_queuing_time|.
   tick_clock_.SetNowTicks(base::DefaultTickClock::GetInstance()->NowTicks() +
-                          max_queuing_time + base::TimeDelta::FromSeconds(1));
+                          max_queuing_time + base::Seconds(1));
 
   // Since the requests have been queued for too long, they should now be
   // dispatched. Trigger the calculation of queuing time by calling
@@ -2086,7 +2086,7 @@
 // Verify that when the timer for dispatching long queued requests is not fired,
 // then the long queued requests are not dispatched to the network.
 TEST_F(ResourceSchedulerTest, MaxQueuingDelayTimerNotFired) {
-  base::TimeDelta max_queuing_time = base::TimeDelta::FromSeconds(15);
+  base::TimeDelta max_queuing_time = base::Seconds(15);
   InitializeMaxQueuingDelayExperiment(max_queuing_time);
   network_quality_estimator_.SetAndNotifyObserversOfEffectiveConnectionType(
       net::EFFECTIVE_CONNECTION_TYPE_SLOW_2G);
@@ -2118,7 +2118,7 @@
 
   // Advance the clock by more than |max_queuing_time|.
   tick_clock_.SetNowTicks(base::DefaultTickClock::GetInstance()->NowTicks() +
-                          max_queuing_time + base::TimeDelta::FromSeconds(1));
+                          max_queuing_time + base::Seconds(1));
 
   // Since the requests have been queued for too long, they are now eligible for
   // disptaching. However, since the timer is not fired, the requests would not
@@ -2135,7 +2135,7 @@
 // Verify that the timer to dispatch long queued requests starts only when there
 // are requests in-flight.
 TEST_F(ResourceSchedulerTest, MaxQueuingDelayTimerRunsOnRequestSchedule) {
-  base::TimeDelta max_queuing_time = base::TimeDelta::FromSeconds(15);
+  base::TimeDelta max_queuing_time = base::Seconds(15);
   InitializeMaxQueuingDelayExperiment(max_queuing_time);
   network_quality_estimator_.SetAndNotifyObserversOfEffectiveConnectionType(
       net::EFFECTIVE_CONNECTION_TYPE_SLOW_2G);
@@ -2203,7 +2203,7 @@
 TEST_F(ResourceSchedulerTest, NonDelayableRequestArrivesAfterDelayableStarts) {
   base::HistogramTester histogram_tester;
 
-  base::TimeDelta max_queuing_time = base::TimeDelta::FromSeconds(15);
+  base::TimeDelta max_queuing_time = base::Seconds(15);
   InitializeMaxQueuingDelayExperiment(max_queuing_time);
 
   InitializeScheduler();
@@ -2213,7 +2213,7 @@
   std::unique_ptr<TestRequest> low(NewRequest("http://host/low", net::LOWEST));
   EXPECT_TRUE(low->started());
 
-  const base::TimeDelta delay = base::TimeDelta::FromSeconds(5);
+  const base::TimeDelta delay = base::Seconds(5);
   tick_clock_.SetNowTicks(base::TimeTicks::Now() + delay);
 
   // Start a high priority request before |low| finishes.
@@ -2241,7 +2241,7 @@
 TEST_F(ResourceSchedulerTest, NonDelayableToNonDelayableMetrics) {
   base::HistogramTester histogram_tester_1;
 
-  base::TimeDelta max_queuing_time = base::TimeDelta::FromSeconds(15);
+  base::TimeDelta max_queuing_time = base::Seconds(15);
   InitializeMaxQueuingDelayExperiment(max_queuing_time);
 
   InitializeScheduler();
@@ -2252,8 +2252,7 @@
       NewRequest("http://host/high_1", net::HIGHEST));
   EXPECT_TRUE(high_1->started());
 
-  const base::TimeDelta high1_start_to_high2_start =
-      base::TimeDelta::FromSeconds(5);
+  const base::TimeDelta high1_start_to_high2_start = base::Seconds(5);
   tick_clock_.SetNowTicks(base::TimeTicks::Now() + high1_start_to_high2_start);
 
   // Start a high priority request before |high_1| finishes.
@@ -2281,8 +2280,7 @@
   histogram_tester_1.ExpectTotalCount(
       "ResourceScheduler.NonDelayableLastEndToNonDelayableStart", 0);
 
-  const base::TimeDelta high2_start_to_high2_end =
-      base::TimeDelta::FromSeconds(7);
+  const base::TimeDelta high2_start_to_high2_end = base::Seconds(7);
   tick_clock_.Advance(high2_start_to_high2_end);
 
   high_1.reset();
@@ -2290,8 +2288,7 @@
 
   base::HistogramTester histogram_tester_2;
 
-  const base::TimeDelta high2_end_to_high3_start =
-      base::TimeDelta::FromSeconds(2);
+  const base::TimeDelta high2_end_to_high3_start = base::Seconds(2);
   tick_clock_.Advance(high2_end_to_high3_start);
   // Start a high priority request after |high_1| and |high_2| finishes.
   std::unique_ptr<TestRequest> high_3(
@@ -2338,7 +2335,7 @@
 
   for (const auto& test : tests) {
     double http_rtt_multiplier_for_proactive_throttling = 5;
-    base::TimeDelta http_rtt = base::TimeDelta::FromSeconds(1);
+    base::TimeDelta http_rtt = base::Seconds(1);
 
     if (test.enable_http_rtt_multiplier_for_proactive_throttling) {
       ConfigureProactiveThrottlingExperimentFor2G(
@@ -2368,7 +2365,7 @@
     // |threshold_requests_anticipation| should not cause low priority requests
     // to start.
     tick_clock_.Advance(threshold_requests_anticipation -
-                        base::TimeDelta::FromMilliseconds(1));
+                        base::Milliseconds(1));
     std::unique_ptr<TestRequest> low_2(
         NewRequest("http://host/low_2", net::LOWEST));
     EXPECT_NE(test.enable_http_rtt_multiplier_for_proactive_throttling,
@@ -2376,7 +2373,7 @@
 
     // Advancing the clock by |threshold_requests_anticipation| should cause low
     // priority requests to start.
-    tick_clock_.Advance(base::TimeDelta::FromMilliseconds(100));
+    tick_clock_.Advance(base::Milliseconds(100));
     std::unique_ptr<TestRequest> low_3(
         NewRequest("http://host/low_3", net::LOWEST));
     EXPECT_TRUE(low_3->started());
@@ -2396,7 +2393,7 @@
   ConfigureProactiveThrottlingExperimentFor2G(
       http_rtt_multiplier_for_proactive_throttling);
 
-  base::TimeDelta http_rtt = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta http_rtt = base::Seconds(1);
 
   network_quality_estimator_.SetStartTimeNullHttpRtt(http_rtt);
   base::RunLoop().RunUntilIdle();
@@ -2416,8 +2413,7 @@
   // Advancing the clock by a duration less than
   // |threshold_requests_anticipation| should not cause low priority requests
   // to start.
-  tick_clock_.Advance(threshold_requests_anticipation -
-                      base::TimeDelta::FromMilliseconds(1));
+  tick_clock_.Advance(threshold_requests_anticipation - base::Milliseconds(1));
   std::unique_ptr<TestRequest> low_2(
       NewRequest("http://host/low_2", net::LOWEST));
   EXPECT_FALSE(low_2->started());
@@ -2465,7 +2461,7 @@
   ConfigureProactiveThrottlingExperimentFor2G(
       http_rtt_multiplier_for_proactive_throttling);
 
-  base::TimeDelta http_rtt = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta http_rtt = base::Seconds(1);
 
   network_quality_estimator_.SetStartTimeNullHttpRtt(http_rtt);
   base::RunLoop().RunUntilIdle();
@@ -2485,8 +2481,7 @@
   // Advancing the clock by a duration less than
   // |threshold_requests_anticipation| should not cause low priority requests
   // to start.
-  tick_clock_.Advance(threshold_requests_anticipation +
-                      base::TimeDelta::FromMilliseconds(1));
+  tick_clock_.Advance(threshold_requests_anticipation + base::Milliseconds(1));
 
   // Since the requests have been queued for too long, they should now be
   // dispatched. Trigger the scheduling of the queued requests by calling
diff --git a/services/network/sct_auditing/sct_auditing_cache.cc b/services/network/sct_auditing/sct_auditing_cache.cc
index 4778d356..70c91f2d8 100644
--- a/services/network/sct_auditing/sct_auditing_cache.cc
+++ b/services/network/sct_auditing/sct_auditing_cache.cc
@@ -197,8 +197,7 @@
   url_loader_ = SimpleURLLoader::Create(
       std::move(report_request),
       static_cast<net::NetworkTrafficAnnotationTag>(traffic_annotation_));
-  url_loader_->SetTimeoutDuration(
-      base::TimeDelta::FromSeconds(kSendSCTReportTimeoutSeconds));
+  url_loader_->SetTimeoutDuration(base::Seconds(kSendSCTReportTimeoutSeconds));
   // Retry is handled by SCTAuditingReporter.
   url_loader_->SetRetryOptions(0, SimpleURLLoader::RETRY_NEVER);
 
@@ -443,7 +442,7 @@
   // processes can fail to report metrics during shutdown). The timer should
   // only be running if SCT auditing is enabled.
   if (enabled) {
-    histogram_timer_.Start(FROM_HERE, base::TimeDelta::FromHours(1), this,
+    histogram_timer_.Start(FROM_HERE, base::Hours(1), this,
                            &SCTAuditingCache::ReportHWMMetrics);
   } else {
     histogram_timer_.Stop();
diff --git a/services/network/sct_auditing/sct_auditing_cache_unittest.cc b/services/network/sct_auditing/sct_auditing_cache_unittest.cc
index 6bc420f3..0ae0821 100644
--- a/services/network/sct_auditing/sct_auditing_cache_unittest.cc
+++ b/services/network/sct_auditing/sct_auditing_cache_unittest.cc
@@ -418,7 +418,7 @@
   EXPECT_EQ(2u, cache.GetPendingReportersForTesting()->size());
 
   // High-water-mark metrics are recorded once an hour.
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
 
   // The bucket for a HWM of 2 should have a single sample in each of the HWM
   // histograms.
diff --git a/services/network/session_cleanup_cookie_store_unittest.cc b/services/network/session_cleanup_cookie_store_unittest.cc
index 2a59773..b8db2a4 100644
--- a/services/network/session_cleanup_cookie_store_unittest.cc
+++ b/services/network/session_cleanup_cookie_store_unittest.cc
@@ -98,7 +98,7 @@
 
   base::Time t = base::Time::Now();
   AddCookie("A", "B", "foo.com", "/", t);
-  t += base::TimeDelta::FromDays(10);
+  t += base::Days(10);
   AddCookie("A", "B", "persistent.com", "/", t);
 
   // Replace the store, which forces the current store to flush data to
@@ -191,9 +191,9 @@
 
   base::Time t = base::Time::Now();
   AddCookie("A", "B", "foo.com", "/", t);
-  t += base::TimeDelta::FromDays(10);
+  t += base::Days(10);
   AddCookie("A", "B", "persistent.com", "/", t);
-  t += base::TimeDelta::FromDays(10);
+  t += base::Days(10);
   AddCookie("A", "B", "nonpersistent.com", "/", t);
 
   // Replace the store, which forces the current store to flush data to
@@ -206,7 +206,7 @@
   cookies = CreateAndLoad();
   EXPECT_EQ(3u, cookies.size());
 
-  t += base::TimeDelta::FromDays(10);
+  t += base::Days(10);
   AddCookie("A", "B", "nonpersistent.com", "/second", t);
 
   // Cookies from "nonpersistent.com" should be deleted.
@@ -241,9 +241,9 @@
   cookies = CreateAndLoad();
   EXPECT_EQ(1u, cookies.size());
 
-  t += base::TimeDelta::FromDays(10);
+  t += base::Days(10);
   AddCookie("A", "B", "persistent.com", "/", t);
-  t += base::TimeDelta::FromDays(10);
+  t += base::Days(10);
   AddCookie("A", "B", "nonpersistent.com", "/", t);
 
   store_->SetForceKeepSessionState();
diff --git a/services/network/throttling/throttling_network_interceptor.cc b/services/network/throttling/throttling_network_interceptor.cc
index 55fcee3..e178d7c 100644
--- a/services/network/throttling/throttling_network_interceptor.cc
+++ b/services/network/throttling/throttling_network_interceptor.cc
@@ -21,8 +21,8 @@
 constexpr int64_t kPacketSize = 1500;
 
 base::TimeDelta CalculateTickLength(double throughput) {
-  return throughput ? base::TimeDelta::FromSecondsD(kPacketSize / throughput)
-                    : base::TimeDelta::FromMicroseconds(1);
+  return throughput ? base::Seconds(kPacketSize / throughput)
+                    : base::Microseconds(1);
 }
 
 }  // namespace
@@ -90,7 +90,7 @@
   latency_length_ = base::TimeDelta();
   double latency = conditions_->latency();
   if (latency > 0)
-    latency_length_ = base::TimeDelta::FromMillisecondsD(latency);
+    latency_length_ = base::Milliseconds(latency);
   ArmTimer(now);
 }
 
@@ -209,8 +209,7 @@
   }
   if (suspend_count) {
     base::TimeTicks activation_time =
-        base::TimeTicks() + base::TimeDelta::FromMicroseconds(min_baseline) +
-        latency_length_;
+        base::TimeTicks() + base::Microseconds(min_baseline) + latency_length_;
     if (activation_time < desired_time)
       desired_time = activation_time;
   }
diff --git a/services/network/trust_tokens/test/trust_token_request_handler.cc b/services/network/trust_tokens/test/trust_token_request_handler.cc
index 644d621..ebc8e673 100644
--- a/services/network/trust_tokens/test/trust_token_request_handler.cc
+++ b/services/network/trust_tokens/test/trust_token_request_handler.cc
@@ -333,7 +333,7 @@
 }
 
 constexpr base::TimeDelta TrustTokenRequestHandler::kRrLifetime =
-    base::TimeDelta::FromDays(100);
+    base::Days(100);
 absl::optional<std::string> TrustTokenRequestHandler::Redeem(
     base::StringPiece redemption_request) {
   base::AutoLock lock(mutex_);
diff --git a/services/network/trust_tokens/trust_token_client_data_canonicalization_unittest.cc b/services/network/trust_tokens/trust_token_client_data_canonicalization_unittest.cc
index 7a14d02f..87c06b2d 100644
--- a/services/network/trust_tokens/trust_token_client_data_canonicalization_unittest.cc
+++ b/services/network/trust_tokens/trust_token_client_data_canonicalization_unittest.cc
@@ -18,7 +18,7 @@
 
 TEST(TrustTokenClientDataCanonicalization, TimeBeforeUnixEpoch) {
   EXPECT_FALSE(CanonicalizeTrustTokenClientDataForRedemption(
-      base::Time::UnixEpoch() - base::TimeDelta::FromSeconds(1),
+      base::Time::UnixEpoch() - base::Seconds(1),
       url::Origin::Create(GURL("https://topframe.example")), "public key"));
 }
 
diff --git a/services/network/trust_tokens/trust_token_cryptographers_test.cc b/services/network/trust_tokens/trust_token_cryptographers_test.cc
index bb71f51..b57dd99 100644
--- a/services/network/trust_tokens/trust_token_cryptographers_test.cc
+++ b/services/network/trust_tokens/trust_token_cryptographers_test.cc
@@ -178,7 +178,7 @@
   //  TRUST_TOKEN **out_token, uint8_t **out_client_data,
   //  size_t *out_client_data_len, uint64_t *out_redemption_time,
   //  const uint8_t *request, size_t request_len, uint64_t lifetime);
-  constexpr base::TimeDelta kRrLifetime = base::TimeDelta::FromSeconds(100);
+  constexpr base::TimeDelta kRrLifetime = base::Seconds(100);
   ScopedBoringsslBytes raw_redemption_response;
   TRUST_TOKEN* redeemed_token;
   ScopedBoringsslBytes redeemed_client_data;
diff --git a/services/network/trust_tokens/trust_token_key_commitment_parser.cc b/services/network/trust_tokens/trust_token_key_commitment_parser.cc
index b54a6ae..4ab8b0eb 100644
--- a/services/network/trust_tokens/trust_token_key_commitment_parser.cc
+++ b/services/network/trust_tokens/trust_token_key_commitment_parser.cc
@@ -78,9 +78,8 @@
   if (!base::Base64Decode(*key_body, &out->body))
     return ParseKeyResult::kFail;
 
-  out->expiry =
-      base::Time::UnixEpoch() +
-      base::TimeDelta::FromMicroseconds(expiry_microseconds_since_unix_epoch);
+  out->expiry = base::Time::UnixEpoch() +
+                base::Microseconds(expiry_microseconds_since_unix_epoch);
   if (out->expiry <= base::Time::Now())
     return ParseKeyResult::kIgnore;
 
diff --git a/services/network/trust_tokens/trust_token_key_commitment_parser_unittest.cc b/services/network/trust_tokens/trust_token_key_commitment_parser_unittest.cc
index 5176617f..0f14bfc8 100644
--- a/services/network/trust_tokens/trust_token_key_commitment_parser_unittest.cc
+++ b/services/network/trust_tokens/trust_token_key_commitment_parser_unittest.cc
@@ -103,8 +103,7 @@
   base::test::TaskEnvironment env(
       base::test::TaskEnvironment::TimeSource::MOCK_TIME);
 
-  base::Time one_minute_from_now =
-      base::Time::Now() + base::TimeDelta::FromMinutes(1);
+  base::Time one_minute_from_now = base::Time::Now() + base::Minutes(1);
   int64_t one_minute_from_now_in_micros =
       (one_minute_from_now - base::Time::UnixEpoch()).InMicroseconds();
 
@@ -134,8 +133,7 @@
   base::test::TaskEnvironment env(
       base::test::TaskEnvironment::TimeSource::MOCK_TIME);
 
-  base::Time one_minute_from_now =
-      base::Time::Now() + base::TimeDelta::FromMinutes(1);
+  base::Time one_minute_from_now = base::Time::Now() + base::Minutes(1);
   int64_t one_minute_from_now_in_micros =
       (one_minute_from_now - base::Time::UnixEpoch()).InMicroseconds();
 
@@ -163,8 +161,7 @@
   base::test::TaskEnvironment env(
       base::test::TaskEnvironment::TimeSource::MOCK_TIME);
 
-  base::Time one_minute_from_now =
-      base::Time::Now() + base::TimeDelta::FromMinutes(1);
+  base::Time one_minute_from_now = base::Time::Now() + base::Minutes(1);
   int64_t one_minute_from_now_in_micros =
       (one_minute_from_now - base::Time::UnixEpoch()).InMicroseconds();
 
@@ -192,8 +189,7 @@
   base::test::TaskEnvironment env(
       base::test::TaskEnvironment::TimeSource::MOCK_TIME);
 
-  base::Time one_minute_from_now =
-      base::Time::Now() + base::TimeDelta::FromMinutes(1);
+  base::Time one_minute_from_now = base::Time::Now() + base::Minutes(1);
   int64_t one_minute_from_now_in_micros =
       (one_minute_from_now - base::Time::UnixEpoch()).InMicroseconds();
 
@@ -220,8 +216,7 @@
   base::test::TaskEnvironment env(
       base::test::TaskEnvironment::TimeSource::MOCK_TIME);
 
-  base::Time one_minute_from_now =
-      base::Time::Now() + base::TimeDelta::FromMinutes(1);
+  base::Time one_minute_from_now = base::Time::Now() + base::Minutes(1);
   int64_t one_minute_from_now_in_micros =
       (one_minute_from_now - base::Time::UnixEpoch()).InMicroseconds();
 
@@ -249,13 +244,11 @@
   base::test::TaskEnvironment env(
       base::test::TaskEnvironment::TimeSource::MOCK_TIME);
 
-  base::Time one_minute_from_now =
-      base::Time::Now() + base::TimeDelta::FromMinutes(1);
+  base::Time one_minute_from_now = base::Time::Now() + base::Minutes(1);
   int64_t one_minute_from_now_in_micros =
       (one_minute_from_now - base::Time::UnixEpoch()).InMicroseconds();
 
-  base::Time two_minutes_from_now =
-      base::Time::Now() + base::TimeDelta::FromMinutes(2);
+  base::Time two_minutes_from_now = base::Time::Now() + base::Minutes(2);
   int64_t two_minutes_from_now_in_micros =
       (two_minutes_from_now - base::Time::UnixEpoch()).InMicroseconds();
 
@@ -330,12 +323,10 @@
   // Ensure that "one minute ago" yields a nonnegative number of microseconds
   // past the Unix epoch.
   env.AdvanceClock(std::max<base::TimeDelta>(
-      base::TimeDelta(), base::Time::UnixEpoch() +
-                             base::TimeDelta::FromMinutes(1) -
-                             base::Time::Now()));
+      base::TimeDelta(),
+      base::Time::UnixEpoch() + base::Minutes(1) - base::Time::Now()));
 
-  base::Time one_minute_before_now =
-      base::Time::Now() - base::TimeDelta::FromMinutes(1);
+  base::Time one_minute_before_now = base::Time::Now() - base::Minutes(1);
   int64_t one_minute_before_now_in_micros =
       (one_minute_before_now - base::Time::UnixEpoch()).InMicroseconds();
 
@@ -363,8 +354,7 @@
   base::test::TaskEnvironment env(
       base::test::TaskEnvironment::TimeSource::MOCK_TIME);
 
-  base::Time one_minute_from_now =
-      base::Time::Now() + base::TimeDelta::FromMinutes(1);
+  base::Time one_minute_from_now = base::Time::Now() + base::Minutes(1);
   int64_t one_minute_from_now_in_micros =
       (one_minute_from_now - base::Time::UnixEpoch()).InMicroseconds();
 
diff --git a/services/network/trust_tokens/trust_token_key_commitments_unittest.cc b/services/network/trust_tokens/trust_token_key_commitments_unittest.cc
index f84bebb1..261c262 100644
--- a/services/network/trust_tokens/trust_token_key_commitments_unittest.cc
+++ b/services/network/trust_tokens/trust_token_key_commitments_unittest.cc
@@ -189,21 +189,19 @@
       *SuitableTrustTokenOrigin::Create(GURL("https://an-origin.example"));
   auto commitment_result = mojom::TrustTokenKeyCommitmentResult::New();
   auto expired_key = mojom::TrustTokenVerificationKey::New();
-  expired_key->expiry = base::Time::Now() - base::TimeDelta::FromMinutes(1);
+  expired_key->expiry = base::Time::Now() - base::Minutes(1);
   commitment_result->keys.push_back(std::move(expired_key));
 
   size_t max_keys = TrustTokenMaxKeysForVersion(
       mojom::TrustTokenProtocolVersion::kTrustTokenV3Pmb);
   for (size_t i = 0; i < max_keys; ++i) {
     auto not_expired_key = mojom::TrustTokenVerificationKey::New();
-    not_expired_key->expiry =
-        base::Time::Now() + base::TimeDelta::FromMinutes(1);
+    not_expired_key->expiry = base::Time::Now() + base::Minutes(1);
     commitment_result->keys.push_back(std::move(not_expired_key));
   }
 
   auto late_to_expire_key = mojom::TrustTokenVerificationKey::New();
-  late_to_expire_key->expiry =
-      base::Time::Now() + base::TimeDelta::FromMinutes(2);
+  late_to_expire_key->expiry = base::Time::Now() + base::Minutes(2);
 
   // We expect to get rid of the expired key and the farthest-in-the-future key
   // (since there are more than |max_keys| many keys yet to expire).
@@ -216,8 +214,7 @@
   EXPECT_TRUE(std::all_of(result->keys.begin(), result->keys.end(),
                           [](const mojom::TrustTokenVerificationKeyPtr& key) {
                             return key->expiry ==
-                                   base::Time::Now() +
-                                       base::TimeDelta::FromMinutes(1);
+                                   base::Time::Now() + base::Minutes(1);
                           }));
 }
 
diff --git a/services/network/trust_tokens/trust_token_key_filtering_unittest.cc b/services/network/trust_tokens/trust_token_key_filtering_unittest.cc
index 358206e..782f27d 100644
--- a/services/network/trust_tokens/trust_token_key_filtering_unittest.cc
+++ b/services/network/trust_tokens/trust_token_key_filtering_unittest.cc
@@ -24,7 +24,7 @@
 
   std::vector<mojom::TrustTokenVerificationKeyPtr> keys;
   keys.emplace_back(mojom::TrustTokenVerificationKey::New());
-  keys.front()->expiry = base::Time::Now() + base::TimeDelta::FromMinutes(1);
+  keys.front()->expiry = base::Time::Now() + base::Minutes(1);
 
   // Even though the key's expiry is in the future, passing k=0 should remove
   // the key.
@@ -39,7 +39,7 @@
 
   std::vector<mojom::TrustTokenVerificationKeyPtr> keys;
   keys.emplace_back(mojom::TrustTokenVerificationKey::New());
-  keys.front()->expiry = base::Time::Now() + base::TimeDelta::FromMinutes(1);
+  keys.front()->expiry = base::Time::Now() + base::Minutes(1);
 
   RetainSoonestToExpireTrustTokenKeys(&keys, 1);
   EXPECT_EQ(keys.size(), 1u);
@@ -54,7 +54,7 @@
 
   std::vector<mojom::TrustTokenVerificationKeyPtr> keys;
   keys.emplace_back(mojom::TrustTokenVerificationKey::New());
-  keys.front()->expiry = base::Time::Now() - base::TimeDelta::FromMinutes(1);
+  keys.front()->expiry = base::Time::Now() - base::Minutes(1);
 
   RetainSoonestToExpireTrustTokenKeys(&keys, 1);
 
@@ -82,9 +82,9 @@
       base::test::TaskEnvironment::TimeSource::MOCK_TIME);
 
   auto early_key = mojom::TrustTokenVerificationKey::New();
-  early_key->expiry = base::Time::Now() + base::TimeDelta::FromMinutes(1);
+  early_key->expiry = base::Time::Now() + base::Minutes(1);
   auto late_key = mojom::TrustTokenVerificationKey::New();
-  late_key->expiry = base::Time::Now() + base::TimeDelta::FromMinutes(2);
+  late_key->expiry = base::Time::Now() + base::Minutes(2);
 
   std::vector<mojom::TrustTokenVerificationKeyPtr> keys;
   keys.emplace_back(late_key.Clone());
@@ -101,11 +101,11 @@
       base::test::TaskEnvironment::TimeSource::MOCK_TIME);
 
   auto expired_key = mojom::TrustTokenVerificationKey::New();
-  expired_key->expiry = base::Time::Now() - base::TimeDelta::FromMinutes(1);
+  expired_key->expiry = base::Time::Now() - base::Minutes(1);
   auto early_key = mojom::TrustTokenVerificationKey::New();
-  early_key->expiry = base::Time::Now() + base::TimeDelta::FromMinutes(1);
+  early_key->expiry = base::Time::Now() + base::Minutes(1);
   auto late_key = mojom::TrustTokenVerificationKey::New();
-  late_key->expiry = base::Time::Now() + base::TimeDelta::FromMinutes(2);
+  late_key->expiry = base::Time::Now() + base::Minutes(2);
 
   std::vector<mojom::TrustTokenVerificationKeyPtr> keys;
   keys.emplace_back(late_key.Clone());
@@ -140,13 +140,13 @@
       base::test::TaskEnvironment::TimeSource::MOCK_TIME);
 
   auto early_key = mojom::TrustTokenVerificationKey::New(
-      "early", base::Time::Now() + base::TimeDelta::FromSeconds(45));
+      "early", base::Time::Now() + base::Seconds(45));
   auto a_key = mojom::TrustTokenVerificationKey::New(
-      "a", base::Time::Now() + base::TimeDelta::FromMinutes(1));
+      "a", base::Time::Now() + base::Minutes(1));
   auto b_key = mojom::TrustTokenVerificationKey::New(
-      "b", base::Time::Now() + base::TimeDelta::FromMinutes(1));
+      "b", base::Time::Now() + base::Minutes(1));
   auto c_key = mojom::TrustTokenVerificationKey::New(
-      "c", base::Time::Now() + base::TimeDelta::FromMinutes(1));
+      "c", base::Time::Now() + base::Minutes(1));
 
   std::vector<mojom::TrustTokenVerificationKeyPtr> keys;
   keys.emplace_back(c_key.Clone());
diff --git a/services/network/trust_tokens/trust_token_operation_metrics_recorder_unittest.cc b/services/network/trust_tokens/trust_token_operation_metrics_recorder_unittest.cc
index bca9145..5439e30b 100644
--- a/services/network/trust_tokens/trust_token_operation_metrics_recorder_unittest.cc
+++ b/services/network/trust_tokens/trust_token_operation_metrics_recorder_unittest.cc
@@ -20,40 +20,40 @@
   base::HistogramTester histograms;
 
   recorder.BeginBegin();
-  env.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  env.FastForwardBy(base::Seconds(1));
   recorder.FinishBegin(mojom::TrustTokenOperationStatus::kOk);
 
-  env.FastForwardBy(base::TimeDelta::FromSeconds(2));
+  env.FastForwardBy(base::Seconds(2));
   recorder.BeginFinalize();
-  env.FastForwardBy(base::TimeDelta::FromSeconds(3));
+  env.FastForwardBy(base::Seconds(3));
   recorder.FinishFinalize(mojom::TrustTokenOperationStatus::kOk);
 
   histograms.ExpectUniqueTimeSample(
       base::JoinString({internal::kTrustTokenBeginTimeHistogramNameBase,
                         "Success", "Issuance"},
                        "."),
-      base::TimeDelta::FromSeconds(1),
+      base::Seconds(1),
       /*expected_count=*/1);
 
   histograms.ExpectUniqueTimeSample(
       base::JoinString({internal::kTrustTokenServerTimeHistogramNameBase,
                         "Success", "Issuance"},
                        "."),
-      base::TimeDelta::FromSeconds(2),
+      base::Seconds(2),
       /*expected_count=*/1);
 
   histograms.ExpectUniqueTimeSample(
       base::JoinString({internal::kTrustTokenFinalizeTimeHistogramNameBase,
                         "Success", "Issuance"},
                        "."),
-      base::TimeDelta::FromSeconds(3),
+      base::Seconds(3),
       /*expected_count=*/1);
 
   histograms.ExpectUniqueTimeSample(
       base::JoinString({internal::kTrustTokenTotalTimeHistogramNameBase,
                         "Success", "Issuance"},
                        "."),
-      base::TimeDelta::FromSeconds(1 + 2 + 3),
+      base::Seconds(1 + 2 + 3),
       /*expected_count=*/1);
 }
 
@@ -66,40 +66,40 @@
   base::HistogramTester histograms;
 
   recorder.BeginBegin();
-  env.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  env.FastForwardBy(base::Seconds(1));
   recorder.FinishBegin(mojom::TrustTokenOperationStatus::kOk);
 
-  env.FastForwardBy(base::TimeDelta::FromSeconds(2));
+  env.FastForwardBy(base::Seconds(2));
   recorder.BeginFinalize();
-  env.FastForwardBy(base::TimeDelta::FromSeconds(3));
+  env.FastForwardBy(base::Seconds(3));
   recorder.FinishFinalize(mojom::TrustTokenOperationStatus::kOk);
 
   histograms.ExpectUniqueTimeSample(
       base::JoinString({internal::kTrustTokenBeginTimeHistogramNameBase,
                         "Success", "Issuance", "PlatformProvided"},
                        "."),
-      base::TimeDelta::FromSeconds(1),
+      base::Seconds(1),
       /*expected_count=*/1);
 
   histograms.ExpectUniqueTimeSample(
       base::JoinString({internal::kTrustTokenServerTimeHistogramNameBase,
                         "Success", "Issuance", "PlatformProvided"},
                        "."),
-      base::TimeDelta::FromSeconds(2),
+      base::Seconds(2),
       /*expected_count=*/1);
 
   histograms.ExpectUniqueTimeSample(
       base::JoinString({internal::kTrustTokenFinalizeTimeHistogramNameBase,
                         "Success", "Issuance", "PlatformProvided"},
                        "."),
-      base::TimeDelta::FromSeconds(3),
+      base::Seconds(3),
       /*expected_count=*/1);
 
   histograms.ExpectUniqueTimeSample(
       base::JoinString({internal::kTrustTokenTotalTimeHistogramNameBase,
                         "Success", "Issuance", "PlatformProvided"},
                        "."),
-      base::TimeDelta::FromSeconds(1 + 2 + 3),
+      base::Seconds(1 + 2 + 3),
       /*expected_count=*/1);
 }
 
@@ -111,14 +111,14 @@
   base::HistogramTester histograms;
 
   recorder.BeginBegin();
-  env.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  env.FastForwardBy(base::Seconds(1));
   recorder.FinishBegin(mojom::TrustTokenOperationStatus::kUnknownError);
 
   histograms.ExpectUniqueTimeSample(
       base::JoinString({internal::kTrustTokenBeginTimeHistogramNameBase,
                         "Failure", "Redemption"},
                        "."),
-      base::TimeDelta::FromSeconds(1),
+      base::Seconds(1),
       /*expected_count=*/1);
 }
 
@@ -130,40 +130,40 @@
   base::HistogramTester histograms;
 
   recorder.BeginBegin();
-  env.FastForwardBy(base::TimeDelta::FromSeconds(1));
+  env.FastForwardBy(base::Seconds(1));
   recorder.FinishBegin(mojom::TrustTokenOperationStatus::kOk);
 
-  env.FastForwardBy(base::TimeDelta::FromSeconds(2));
+  env.FastForwardBy(base::Seconds(2));
   recorder.BeginFinalize();
-  env.FastForwardBy(base::TimeDelta::FromSeconds(3));
+  env.FastForwardBy(base::Seconds(3));
   recorder.FinishFinalize(mojom::TrustTokenOperationStatus::kUnknownError);
 
   histograms.ExpectUniqueTimeSample(
       base::JoinString({internal::kTrustTokenBeginTimeHistogramNameBase,
                         "Success", "Signing"},
                        "."),
-      base::TimeDelta::FromSeconds(1),
+      base::Seconds(1),
       /*expected_count=*/1);
 
   histograms.ExpectUniqueTimeSample(
       base::JoinString({internal::kTrustTokenServerTimeHistogramNameBase,
                         "Failure", "Signing"},
                        "."),
-      base::TimeDelta::FromSeconds(2),
+      base::Seconds(2),
       /*expected_count=*/1);
 
   histograms.ExpectUniqueTimeSample(
       base::JoinString({internal::kTrustTokenFinalizeTimeHistogramNameBase,
                         "Failure", "Signing"},
                        "."),
-      base::TimeDelta::FromSeconds(3),
+      base::Seconds(3),
       /*expected_count=*/1);
 
   histograms.ExpectUniqueTimeSample(
       base::JoinString({internal::kTrustTokenTotalTimeHistogramNameBase,
                         "Failure", "Signing"},
                        "."),
-      base::TimeDelta::FromSeconds(1 + 2 + 3),
+      base::Seconds(1 + 2 + 3),
       /*expected_count=*/1);
 }
 
diff --git a/services/network/trust_tokens/trust_token_parameterization.h b/services/network/trust_tokens/trust_token_parameterization.h
index cf90422..9ca0c5c 100644
--- a/services/network/trust_tokens/trust_token_parameterization.h
+++ b/services/network/trust_tokens/trust_token_parameterization.h
@@ -26,8 +26,7 @@
 // The maximum time Trust Tokens backing database writes will be buffered before
 // being committed to disk. Two seconds was chosen fairly arbitrarily as a value
 // close to what the cookie store uses.
-constexpr base::TimeDelta kTrustTokenWriteBufferingWindow =
-    base::TimeDelta::FromSeconds(2);
+constexpr base::TimeDelta kTrustTokenWriteBufferingWindow = base::Seconds(2);
 
 // This is the path relative to the issuer origin where this
 // implementation of the Trust Tokens protocol expects key
diff --git a/services/network/trust_tokens/trust_token_store_unittest.cc b/services/network/trust_tokens/trust_token_store_unittest.cc
index bc6e489..752f5b5 100644
--- a/services/network/trust_tokens/trust_token_store_unittest.cc
+++ b/services/network/trust_tokens/trust_token_store_unittest.cc
@@ -56,7 +56,7 @@
   // since last issuance being correctly returned.
 
   my_store->RecordIssuance(issuer);
-  auto delta = base::TimeDelta::FromSeconds(1);
+  auto delta = base::Seconds(1);
   env.AdvanceClock(delta);
 
   EXPECT_THAT(my_store->TimeSinceLastIssuance(issuer), Optional(delta));
@@ -94,8 +94,7 @@
   auto my_store = TrustTokenStore::CreateForTesting(std::move(my_persister));
   SuitableTrustTokenOrigin issuer =
       *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com"));
-  base::Time later_than_now =
-      base::Time::Now() + base::TimeDelta::FromSeconds(1);
+  base::Time later_than_now = base::Time::Now() + base::Seconds(1);
 
   auto issuer_config_with_future_time =
       std::make_unique<TrustTokenIssuerConfig>();
@@ -128,7 +127,7 @@
   // since last redemption being correctly returned.
 
   my_store->RecordRedemption(issuer, toplevel);
-  auto delta = base::TimeDelta::FromSeconds(1);
+  auto delta = base::Seconds(1);
   env.AdvanceClock(delta);
 
   EXPECT_THAT(my_store->TimeSinceLastRedemption(issuer, toplevel),
@@ -174,8 +173,7 @@
   SuitableTrustTokenOrigin toplevel =
       *SuitableTrustTokenOrigin::Create(GURL("https://toplevel.com"));
 
-  base::Time later_than_now =
-      base::Time::Now() + base::TimeDelta::FromSeconds(1);
+  base::Time later_than_now = base::Time::Now() + base::Seconds(1);
 
   auto config_with_future_time =
       std::make_unique<TrustTokenIssuerToplevelPairConfig>();
diff --git a/services/network/trust_tokens/types_unittest.cc b/services/network/trust_tokens/types_unittest.cc
index 15763df..3e932498 100644
--- a/services/network/trust_tokens/types_unittest.cc
+++ b/services/network/trust_tokens/types_unittest.cc
@@ -18,8 +18,8 @@
 // getting passed to the pertinent //base libraries.
 
 TEST(TrustTokenTypes, TimeToStringRoundtrip) {
-  auto my_time = base::Time::UnixEpoch() + base::TimeDelta::FromMilliseconds(
-                                               373849174829374);  // arbitrary
+  auto my_time = base::Time::UnixEpoch() +
+                 base::Milliseconds(373849174829374);  // arbitrary
   EXPECT_THAT(StringToTime(TimeToString(my_time)), Optional(my_time));
 }
 
diff --git a/services/network/upload_progress_tracker.cc b/services/network/upload_progress_tracker.cc
index ad1eca6a..96aa08a 100644
--- a/services/network/upload_progress_tracker.cc
+++ b/services/network/upload_progress_tracker.cc
@@ -11,8 +11,7 @@
 namespace network {
 namespace {
 // The interval for calls to ReportUploadProgress.
-constexpr base::TimeDelta kUploadProgressInterval =
-    base::TimeDelta::FromMilliseconds(100);
+constexpr base::TimeDelta kUploadProgressInterval = base::Milliseconds(100);
 }  // namespace
 
 UploadProgressTracker::UploadProgressTracker(
@@ -67,7 +66,7 @@
     return;
 
   const uint64_t kHalfPercentIncrements = 200;
-  const base::TimeDelta kOneSecond = base::TimeDelta::FromMilliseconds(1000);
+  const base::TimeDelta kOneSecond = base::Milliseconds(1000);
 
   uint64_t amt_since_last = progress.position() - last_upload_position_;
   base::TimeTicks now = GetCurrentTime();
diff --git a/services/network/upload_progress_tracker_unittest.cc b/services/network/upload_progress_tracker_unittest.cc
index 4aaef91..a463966 100644
--- a/services/network/upload_progress_tracker_unittest.cc
+++ b/services/network/upload_progress_tracker_unittest.cc
@@ -202,7 +202,7 @@
   EXPECT_EQ(1, report_count_);
 
   upload_progress_tracker_.set_current_time(base::TimeTicks::Now() +
-                                            base::TimeDelta::FromSeconds(5));
+                                            base::Seconds(5));
 
   // The third timer task calls ReportUploadProgress since it's been long time
   // from the last report.
@@ -236,7 +236,7 @@
   EXPECT_EQ(1, report_count_);
 
   upload_progress_tracker_.set_current_time(base::TimeTicks::Now() +
-                                            base::TimeDelta::FromSeconds(5));
+                                            base::Seconds(5));
 
   // Even after a good amount of time passed, the rewound progress should not be
   // reported.
diff --git a/services/network/url_loader_factory.cc b/services/network/url_loader_factory.cc
index 06fdde7..331a766 100644
--- a/services/network/url_loader_factory.cc
+++ b/services/network/url_loader_factory.cc
@@ -39,8 +39,7 @@
 namespace {
 
 // The interval to send load updates.
-constexpr auto kUpdateLoadStatesInterval =
-    base::TimeDelta::FromMilliseconds(250);
+constexpr auto kUpdateLoadStatesInterval = base::Milliseconds(250);
 
 }  // namespace
 
diff --git a/services/network/url_loader_unittest.cc b/services/network/url_loader_unittest.cc
index 826ac5e..6e1078d49 100644
--- a/services/network/url_loader_unittest.cc
+++ b/services/network/url_loader_unittest.cc
@@ -1897,8 +1897,7 @@
   // point that it is not writable anymore.)
   base::RunLoop run_loop;
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(),
-      base::TimeDelta::FromMilliseconds(100));
+      FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(100));
   run_loop.Run();
 
   auto response_body = client()->response_body_release();
@@ -1974,8 +1973,7 @@
   // response body from the underlying URLRequest, it is easier to find out.
   base::RunLoop run_loop;
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, run_loop.QuitClosure(),
-      base::TimeDelta::FromMilliseconds(100));
+      FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(100));
   run_loop.Run();
 
   std::string available_data = ReadAvailableBody();
diff --git a/services/network/websocket_throttler.cc b/services/network/websocket_throttler.cc
index c3bde21..16582ee 100644
--- a/services/network/websocket_throttler.cc
+++ b/services/network/websocket_throttler.cc
@@ -49,9 +49,9 @@
   int64_t s =
       num_previous_succeeded_connections_ + num_current_succeeded_connections_;
   int p = num_pending_connections_;
-  return base::TimeDelta::FromMilliseconds(
-      base::RandInt(1000, 5000) *
-      (1 << std::min(p + f / (s + 1), INT64_C(16))) / 65536);
+  return base::Milliseconds(base::RandInt(1000, 5000) *
+                            (1 << std::min(p + f / (s + 1), INT64_C(16))) /
+                            65536);
 }
 
 WebSocketPerProcessThrottler::PendingConnection
@@ -110,8 +110,8 @@
   }
 
   if (!throttling_period_timer_.IsRunning()) {
-    throttling_period_timer_.Start(FROM_HERE, base::TimeDelta::FromMinutes(2),
-                                   this, &WebSocketThrottler::OnTimer);
+    throttling_period_timer_.Start(FROM_HERE, base::Minutes(2), this,
+                                   &WebSocketThrottler::OnTimer);
   }
   return it->second->IssuePendingConnectionTracker();
 }
diff --git a/services/network/websocket_throttler_unittest.cc b/services/network/websocket_throttler_unittest.cc
index 552f1394..653f6c8 100644
--- a/services/network/websocket_throttler_unittest.cc
+++ b/services/network/websocket_throttler_unittest.cc
@@ -213,10 +213,8 @@
   EXPECT_EQ(0, throttler.num_previous_succeeded_connections());
   EXPECT_EQ(0, throttler.num_current_failed_connections());
   EXPECT_EQ(0, throttler.num_previous_failed_connections());
-  EXPECT_LE(base::TimeDelta::FromMilliseconds(1000),
-            throttler.CalculateDelay());
-  EXPECT_LE(throttler.CalculateDelay(),
-            base::TimeDelta::FromMilliseconds(5000));
+  EXPECT_LE(base::Milliseconds(1000), throttler.CalculateDelay());
+  EXPECT_LE(throttler.CalculateDelay(), base::Milliseconds(5000));
 }
 
 TEST(WebSocketPerProcessThrottlerTest, CalculateDelay_3Failure) {
@@ -255,10 +253,8 @@
   EXPECT_EQ(0, throttler.num_previous_succeeded_connections());
   EXPECT_EQ(16, throttler.num_current_failed_connections());
   EXPECT_EQ(0, throttler.num_previous_failed_connections());
-  EXPECT_LE(base::TimeDelta::FromMilliseconds(1000),
-            throttler.CalculateDelay());
-  EXPECT_LE(throttler.CalculateDelay(),
-            base::TimeDelta::FromMilliseconds(5000));
+  EXPECT_LE(base::Milliseconds(1000), throttler.CalculateDelay());
+  EXPECT_LE(throttler.CalculateDelay(), base::Milliseconds(5000));
 }
 
 TEST(WebSocketPerProcessThrottlerTest, MoveTracker) {
diff --git a/services/proxy_resolver/proxy_host_resolver_cache.h b/services/proxy_resolver/proxy_host_resolver_cache.h
index aeacf89..caf523c 100644
--- a/services/proxy_resolver/proxy_host_resolver_cache.h
+++ b/services/proxy_resolver/proxy_host_resolver_cache.h
@@ -21,7 +21,7 @@
 // `kTtl`, and evicts oldest entries when filled past capacity.
 class ProxyHostResolverCache {
  public:
-  static constexpr auto kTtl = base::TimeDelta::FromSeconds(5);
+  static constexpr auto kTtl = base::Seconds(5);
 
   explicit ProxyHostResolverCache(size_t max_entries = 500u);
   ~ProxyHostResolverCache();
diff --git a/services/proxy_resolver/proxy_host_resolver_cache_unittest.cc b/services/proxy_resolver/proxy_host_resolver_cache_unittest.cc
index 635db942d..4746f86 100644
--- a/services/proxy_resolver/proxy_host_resolver_cache_unittest.cc
+++ b/services/proxy_resolver/proxy_host_resolver_cache_unittest.cc
@@ -64,13 +64,13 @@
                     /*is_ex_operation=*/false, {kResult});
 
   task_environment_.FastForwardBy(ProxyHostResolverCache::kTtl -
-                                  base::TimeDelta::FromMilliseconds(5));
+                                  base::Milliseconds(5));
   EXPECT_EQ(cache_.GetSizeForTesting(), 1u);
   ASSERT_THAT(cache_.LookupEntry("host.test", net::NetworkIsolationKey(),
                                  /*is_ex_operation=*/false),
               testing::Pointee(testing::ElementsAre(kResult)));
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(10));
+  task_environment_.FastForwardBy(base::Milliseconds(10));
   EXPECT_FALSE(cache_.LookupEntry("host.test", net::NetworkIsolationKey(),
                                   /*is_ex_operation=*/false));
 
@@ -86,7 +86,7 @@
                    /*is_ex_operation=*/false, /*results=*/{});
 
   // Fill to max capacity
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(5));
+  task_environment_.FastForwardBy(base::Milliseconds(5));
   cache.StoreEntry("other1.test", net::NetworkIsolationKey(),
                    /*is_ex_operation=*/false, /*results=*/{});
   cache.StoreEntry("other2.test", net::NetworkIsolationKey(),
@@ -139,13 +139,13 @@
   // Insert two entries, with "to-be-refreshed.test" as the older one.
   cache.StoreEntry("to-be-refreshed.test", net::NetworkIsolationKey(),
                    /*is_ex_operation=*/false, /*results=*/{});
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(5));
+  task_environment_.FastForwardBy(base::Milliseconds(5));
   cache.StoreEntry("to-be-evicted.test", net::NetworkIsolationKey(),
                    /*is_ex_operation=*/false, /*results=*/{});
   ASSERT_EQ(cache.GetSizeForTesting(), 2u);
 
   // Update "to-be-refreshed.test" to refresh its expiration.
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(5));
+  task_environment_.FastForwardBy(base::Milliseconds(5));
   cache.StoreEntry("to-be-refreshed.test", net::NetworkIsolationKey(),
                    /*is_ex_operation=*/false, /*results=*/{});
   ASSERT_EQ(cache.GetSizeForTesting(), 2u);
@@ -172,13 +172,13 @@
   cache.StoreEntry("host.test", net::NetworkIsolationKey(),
                    /*is_ex_operation=*/false, /*results=*/{});
   ASSERT_EQ(cache.GetSizeForTesting(), 1u);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(5));
+  task_environment_.FastForwardBy(base::Milliseconds(5));
   cache.StoreEntry("host.test", net::NetworkIsolationKey(),
                    /*is_ex_operation=*/false, /*results=*/{});
   ASSERT_EQ(cache.GetSizeForTesting(), 1u);
 
   // Add another entry to force an eviction.
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(5));
+  task_environment_.FastForwardBy(base::Milliseconds(5));
   cache.StoreEntry("evictor.test", net::NetworkIsolationKey(),
                    /*is_ex_operation=*/false, /*results=*/{});
 
diff --git a/services/proxy_resolver/proxy_resolver_v8_tracing_unittest.cc b/services/proxy_resolver/proxy_resolver_v8_tracing_unittest.cc
index 2d7895ef..ad6b1e1d 100644
--- a/services/proxy_resolver/proxy_resolver_v8_tracing_unittest.cc
+++ b/services/proxy_resolver/proxy_resolver_v8_tracing_unittest.cc
@@ -737,7 +737,7 @@
   // Sleep for a little bit. This makes it more likely for the worker
   // thread to have returned from its call, and serves as a regression
   // test for http://crbug.com/173373.
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(30));
+  base::PlatformThread::Sleep(base::Milliseconds(30));
 
   run_loop->Quit();
 }
@@ -785,7 +785,7 @@
   // Wait a bit, so the DNS task has hopefully been posted. The test will
   // work whatever the delay is here, but it is most useful if the delay
   // is large enough to allow a task to be posted back.
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(10));
+  base::PlatformThread::Sleep(base::Milliseconds(10));
   request.reset();
 
   EXPECT_EQ(0u, host_resolver.num_resolve());
diff --git a/services/resource_coordinator/memory_instrumentation/coordinator_impl.cc b/services/resource_coordinator/memory_instrumentation/coordinator_impl.cc
index fc8a89e..6869d2b 100644
--- a/services/resource_coordinator/memory_instrumentation/coordinator_impl.cc
+++ b/services/resource_coordinator/memory_instrumentation/coordinator_impl.cc
@@ -44,7 +44,7 @@
 
 memory_instrumentation::CoordinatorImpl* g_coordinator_impl;
 
-constexpr base::TimeDelta kHeapDumpTimeout = base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kHeapDumpTimeout = base::Seconds(60);
 
 // A wrapper classes that allows a string to be exported as JSON in a trace
 // event.
@@ -63,7 +63,7 @@
 
 CoordinatorImpl::CoordinatorImpl()
     : next_dump_id_(0),
-      client_process_timeout_(base::TimeDelta::FromSeconds(15)),
+      client_process_timeout_(base::Seconds(15)),
       use_proto_writer_(!base::CommandLine::ForCurrentProcess()->HasSwitch(
           switches::kUseMemoryTrackingJsonWriter)),
       write_proto_heap_profile_(
diff --git a/services/resource_coordinator/memory_instrumentation/coordinator_impl_unittest.cc b/services/resource_coordinator/memory_instrumentation/coordinator_impl_unittest.cc
index 005dce1..1731a2cf 100644
--- a/services/resource_coordinator/memory_instrumentation/coordinator_impl_unittest.cc
+++ b/services/resource_coordinator/memory_instrumentation/coordinator_impl_unittest.cc
@@ -133,8 +133,7 @@
   }
 
   void ReduceCoordinatorClientProcessTimeout() {
-    coordinator_->set_client_process_timeout(
-        base::TimeDelta::FromMilliseconds(5));
+    coordinator_->set_client_process_timeout(base::Milliseconds(5));
   }
 
  protected:
@@ -329,8 +328,7 @@
              MockClientProcess::RequestChromeMemoryDumpCallback& callback) {
             // Skip the wall clock time-ticks forward to make sure start_time
             // is strictly increasing.
-            task_environment->FastForwardBy(
-                base::TimeDelta::FromMilliseconds(10));
+            task_environment->FastForwardBy(base::Milliseconds(10));
             MemoryDumpArgs dump_args{MemoryDumpLevelOfDetail::DETAILED};
             auto pmd = std::make_unique<ProcessMemoryDump>(dump_args);
             std::move(callback).Run(true, args.dump_guid, std::move(pmd));
diff --git a/services/resource_coordinator/public/cpp/memory_instrumentation/browser_metrics.cc b/services/resource_coordinator/public/cpp/memory_instrumentation/browser_metrics.cc
index 18429ea..0f29ccb 100644
--- a/services/resource_coordinator/public/cpp/memory_instrumentation/browser_metrics.cc
+++ b/services/resource_coordinator/public/cpp/memory_instrumentation/browser_metrics.cc
@@ -54,9 +54,9 @@
 
 base::TimeDelta GetDelayForNextMemoryLog() {
 #if defined(OS_ANDROID)
-  base::TimeDelta mean_time = base::TimeDelta::FromMinutes(5);
+  base::TimeDelta mean_time = base::Minutes(5);
 #else
-  base::TimeDelta mean_time = base::TimeDelta::FromMinutes(30);
+  base::TimeDelta mean_time = base::Minutes(30);
 #endif
   // Compute the actual delay before sampling using a Poisson process.
   double uniform = base::RandDouble();
diff --git a/services/resource_coordinator/public/cpp/memory_instrumentation/tracing_observer_proto_unittest.cc b/services/resource_coordinator/public/cpp/memory_instrumentation/tracing_observer_proto_unittest.cc
index 17c5c8d..f21f995 100644
--- a/services/resource_coordinator/public/cpp/memory_instrumentation/tracing_observer_proto_unittest.cc
+++ b/services/resource_coordinator/public/cpp/memory_instrumentation/tracing_observer_proto_unittest.cc
@@ -92,7 +92,7 @@
 const uint32_t kSharedFootprintKb = 3;
 
 const base::TimeTicks kTimestamp =
-    base::TimeTicks() + base::TimeDelta::FromMicroseconds(100000);
+    base::TimeTicks() + base::Microseconds(100000);
 const uint64_t kTimestampProto = kTimestamp.since_origin().InNanoseconds();
 
 uint64_t GetFakeAddrForVmRegion(int pid, int region_index) {
diff --git a/services/service_manager/tests/service_manager/service_manager_unittest.cc b/services/service_manager/tests/service_manager/service_manager_unittest.cc
index fe6c35cc..2bae73e 100644
--- a/services/service_manager/tests/service_manager/service_manager_unittest.cc
+++ b/services/service_manager/tests/service_manager/service_manager_unittest.cc
@@ -326,7 +326,7 @@
     if (!expect_service_started) {
       // Wait briefly and test no new service was created.
       base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-          FROM_HERE, loop.QuitClosure(), base::TimeDelta::FromSeconds(1));
+          FROM_HERE, loop.QuitClosure(), base::Seconds(1));
     }
 
     loop.Run();
diff --git a/services/tracing/perfetto/consumer_host.cc b/services/tracing/perfetto/consumer_host.cc
index 1887e57..ce40eef96 100644
--- a/services/tracing/perfetto/consumer_host.cc
+++ b/services/tracing/perfetto/consumer_host.cc
@@ -227,8 +227,8 @@
     // ACK our EnableTracing request eventually, so we'll add a timeout for that
     // case.
     enable_tracing_ack_timer_.Start(
-        FROM_HERE, base::TimeDelta::FromSeconds(kEnableTracingTimeoutSeconds),
-        this, &ConsumerHost::TracingSession::OnEnableTracingTimeout);
+        FROM_HERE, base::Seconds(kEnableTracingTimeoutSeconds), this,
+        &ConsumerHost::TracingSession::OnEnableTracingTimeout);
   }
 }
 
diff --git a/services/tracing/public/cpp/background_tracing/background_tracing_agent_impl.cc b/services/tracing/public/cpp/background_tracing/background_tracing_agent_impl.cc
index 9027557..615774f7 100644
--- a/services/tracing/public/cpp/background_tracing/background_tracing_agent_impl.cc
+++ b/services/tracing/public/cpp/background_tracing/background_tracing_agent_impl.cc
@@ -16,8 +16,7 @@
 namespace tracing {
 namespace {
 
-constexpr base::TimeDelta kMinTimeBetweenHistogramChanges =
-    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kMinTimeBetweenHistogramChanges = base::Seconds(10);
 
 }  // namespace
 
diff --git a/services/tracing/public/cpp/perfetto/perfetto_producer.h b/services/tracing/public/cpp/perfetto/perfetto_producer.h
index 6a244f8..eef0abc 100644
--- a/services/tracing/public/cpp/perfetto/perfetto_producer.h
+++ b/services/tracing/public/cpp/perfetto/perfetto_producer.h
@@ -154,7 +154,7 @@
   // flags, but the tracing session got disabled in the service while it was
   // initializing (in which case, the tracing service will not tell the
   // subprocess to start tracing after it connects).
-  base::TimeDelta startup_tracing_timeout_ = base::TimeDelta::FromSeconds(60);
+  base::TimeDelta startup_tracing_timeout_ = base::Seconds(60);
 
   base::tracing::PerfettoTaskRunner* const task_runner_;
 
diff --git a/services/tracing/public/cpp/perfetto/posix_system_producer.cc b/services/tracing/public/cpp/perfetto/posix_system_producer.cc
index ab245d4..52f3071 100644
--- a/services/tracing/public/cpp/perfetto/posix_system_producer.cc
+++ b/services/tracing/public/cpp/perfetto/posix_system_producer.cc
@@ -554,7 +554,7 @@
             }
           },
           weak_ptr_factory_.GetWeakPtr()),
-      base::TimeDelta::FromMilliseconds(connection_backoff_ms_));
+      base::Milliseconds(connection_backoff_ms_));
 
   connection_backoff_ms_ =
       IncreaseBackoff(connection_backoff_ms_, kMaxConnectionBackoffMs);
diff --git a/services/tracing/public/cpp/perfetto/trace_event_data_source_unittest.cc b/services/tracing/public/cpp/perfetto/trace_event_data_source_unittest.cc
index 6fed047..38677d6 100644
--- a/services/tracing/public/cpp/perfetto/trace_event_data_source_unittest.cc
+++ b/services/tracing/public/cpp/perfetto/trace_event_data_source_unittest.cc
@@ -1046,7 +1046,7 @@
 
   TRACE_EVENT_BEGIN_WITH_ID_TID_AND_TIMESTAMP0(
       kCategoryGroup, "bar", 42, 4242,
-      base::TimeTicks() + base::TimeDelta::FromMicroseconds(424242));
+      base::TimeTicks() + base::Microseconds(424242));
 
   size_t packet_index = ExpectStandardPreamble();
 
@@ -1087,8 +1087,7 @@
   INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP(
       TRACE_EVENT_PHASE_INSTANT, kCategoryGroup, "bar",
       static_cast<uint64_t>(trace_event_internal::kNoId),
-      /*thread_id=*/1,
-      base::TimeTicks() + base::TimeDelta::FromMicroseconds(10),
+      /*thread_id=*/1, base::TimeTicks() + base::Microseconds(10),
       /*/flags=*/TRACE_EVENT_SCOPE_THREAD);
   size_t packet_index = ExpectStandardPreamble();
 
@@ -1431,8 +1430,7 @@
   auto handle = trace_event_internal::AddTraceEventWithThreadIdAndTimestamp(
       TRACE_EVENT_PHASE_COMPLETE, category_group_enabled, kEventName,
       trace_event_trace_id.scope(), trace_event_trace_id.raw_id(),
-      /*thread_id=*/1,
-      base::TimeTicks() + base::TimeDelta::FromMicroseconds(10),
+      /*thread_id=*/1, base::TimeTicks() + base::Microseconds(10),
       trace_event_trace_id.id_flags() | TRACE_EVENT_FLAG_EXPLICIT_TIMESTAMP,
       trace_event_internal::kNoId);
 
@@ -1441,8 +1439,7 @@
   // event names or categories in the proto format.
   base::trace_event::TraceLog::GetInstance()->UpdateTraceEventDurationExplicit(
       category_group_enabled, kEventName, handle, /*thread_id=*/1,
-      /*explicit_timestamps=*/true,
-      base::TimeTicks() + base::TimeDelta::FromMicroseconds(30),
+      /*explicit_timestamps=*/true, base::TimeTicks() + base::Microseconds(30),
       base::ThreadTicks(), base::trace_event::ThreadInstructionCount());
 
   // Updating the duration of an event that wasn't added before tracing begun
@@ -1450,8 +1447,7 @@
   handle.event_index = 0;
   base::trace_event::TraceLog::GetInstance()->UpdateTraceEventDurationExplicit(
       category_group_enabled, "other_event_name", handle, /*thread_id=*/1,
-      /*explicit_timestamps=*/true,
-      base::TimeTicks() + base::TimeDelta::FromMicroseconds(40),
+      /*explicit_timestamps=*/true, base::TimeTicks() + base::Microseconds(40),
       base::ThreadTicks(), base::trace_event::ThreadInstructionCount());
 
   // Complete event for the current thread emits thread time, too.
@@ -1459,7 +1455,7 @@
       TRACE_EVENT_PHASE_COMPLETE, category_group_enabled, kEventName,
       trace_event_trace_id.scope(), trace_event_trace_id.raw_id(),
       base::PlatformThread::CurrentId(),
-      base::TimeTicks() + base::TimeDelta::FromMicroseconds(10),
+      base::TimeTicks() + base::Microseconds(10),
       trace_event_trace_id.id_flags() | TRACE_EVENT_FLAG_EXPLICIT_TIMESTAMP,
       trace_event_internal::kNoId);
 
@@ -1523,9 +1519,8 @@
   trace_event_internal::AddTraceEventWithThreadIdAndTimestamps(
       TRACE_EVENT_PHASE_BEGIN, category_group_enabled, kEventName,
       trace_event_trace_id.scope(), trace_event_trace_id.raw_id(),
-      /*thread_id=*/1,
-      base::TimeTicks() + base::TimeDelta::FromMicroseconds(10),
-      base::ThreadTicks() + base::TimeDelta::FromMicroseconds(20),
+      /*thread_id=*/1, base::TimeTicks() + base::Microseconds(10),
+      base::ThreadTicks() + base::Microseconds(20),
       trace_event_trace_id.id_flags() | TRACE_EVENT_FLAG_EXPLICIT_TIMESTAMP);
 
   size_t packet_index = ExpectStandardPreamble();
@@ -1628,8 +1623,7 @@
 TEST_F(TraceEventDataSourceTest, TrackSupportWithTimestamp) {
   StartTraceEventDataSource();
 
-  auto timestamp =
-      TRACE_TIME_TICKS_NOW() - base::TimeDelta::FromMicroseconds(100);
+  auto timestamp = TRACE_TIME_TICKS_NOW() - base::Microseconds(100);
   auto track = perfetto::Track(1);
 
   TRACE_EVENT_BEGIN("browser", "bar", track, timestamp);
@@ -1656,8 +1650,7 @@
 TEST_F(TraceEventDataSourceTest, TrackSupportWithTimestampAndLambda) {
   StartTraceEventDataSource();
 
-  auto timestamp =
-      TRACE_TIME_TICKS_NOW() - base::TimeDelta::FromMicroseconds(100);
+  auto timestamp = TRACE_TIME_TICKS_NOW() - base::Microseconds(100);
   auto track = perfetto::Track(1);
   bool lambda_called = false;
 
diff --git a/services/tracing/public/cpp/stack_sampling/loader_lock_sampling_thread_win.cc b/services/tracing/public/cpp/stack_sampling/loader_lock_sampling_thread_win.cc
index f004591..da304826 100644
--- a/services/tracing/public/cpp/stack_sampling/loader_lock_sampling_thread_win.cc
+++ b/services/tracing/public/cpp/stack_sampling/loader_lock_sampling_thread_win.cc
@@ -64,8 +64,7 @@
 }
 
 void LoaderLockSamplingThread::LoaderLockTracker::StartSampling() {
-  sample_timer_.Start(FROM_HERE,
-                      base::TimeDelta::FromMilliseconds(kSamplingIntervalMsec),
+  sample_timer_.Start(FROM_HERE, base::Milliseconds(kSamplingIntervalMsec),
                       this, &LoaderLockTracker::SampleLoaderLock);
 }
 
diff --git a/services/tracing/public/cpp/stack_sampling/reached_code_data_source_android_unittest.cc b/services/tracing/public/cpp/stack_sampling/reached_code_data_source_android_unittest.cc
index 87f61fd..7f82abd 100644
--- a/services/tracing/public/cpp/stack_sampling/reached_code_data_source_android_unittest.cc
+++ b/services/tracing/public/cpp/stack_sampling/reached_code_data_source_android_unittest.cc
@@ -78,7 +78,7 @@
 
 TEST_F(ReachedCodeDataSourceTest, ProfilerDisabled) {
   BeginTrace();
-  base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(200));
+  base::PlatformThread::Sleep(base::Milliseconds(200));
   EndTracing();
   EXPECT_EQ(producer()->GetFinalizedPacketCount(), 0u);
 }
@@ -94,7 +94,7 @@
       base::android::PROCESS_BROWSER);
   ASSERT_TRUE(base::android::IsReachedCodeProfilerEnabled());
   BeginTrace();
-  BusyLoopFor(base::TimeDelta::FromSeconds(2));
+  BusyLoopFor(base::Seconds(2));
   EndTracing();
   EXPECT_EQ(producer()->GetFinalizedPacketCount(), 1u);
   const auto* packet = producer()->GetFinalizedPacket();
diff --git a/services/tracing/public/cpp/stack_sampling/stack_unwinder_android_unittest.cc b/services/tracing/public/cpp/stack_sampling/stack_unwinder_android_unittest.cc
index 30294ed2..f088b4d 100644
--- a/services/tracing/public/cpp/stack_sampling/stack_unwinder_android_unittest.cc
+++ b/services/tracing/public/cpp/stack_sampling/stack_unwinder_android_unittest.cc
@@ -128,7 +128,7 @@
       FROM_HERE,
       base::BindOnce(callback, base::Unretained(unwinder()),
                      base::PlatformThread::CurrentId(), GetCurrentPC()),
-      base::TimeDelta::FromMilliseconds(10));
+      base::Milliseconds(10));
   JNIEnv* env = base::android::AttachCurrentThread();
   Java_UnwindTestHelper_blockCurrentThread(env);
 }
diff --git a/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.cc b/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.cc
index 5b6f05c..1c675a7 100644
--- a/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.cc
+++ b/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.cc
@@ -740,7 +740,7 @@
 
   base::StackSamplingProfiler::SamplingParams params;
   params.samples_per_profile = std::numeric_limits<int>::max();
-  params.sampling_interval = base::TimeDelta::FromMilliseconds(50);
+  params.sampling_interval = base::Milliseconds(50);
 
   auto profile_builder = std::make_unique<TracingProfileBuilder>(
       sampled_thread_token_.id, std::move(trace_writer),
diff --git a/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler_unittest.cc b/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler_unittest.cc
index 7910f05..56012df 100644
--- a/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler_unittest.cc
+++ b/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler_unittest.cc
@@ -114,9 +114,7 @@
     TracingSamplerProfiler::StartTracingForTesting(producer_.get());
   }
 
-  void WaitForEvents() {
-    base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(200));
-  }
+  void WaitForEvents() { base::PlatformThread::Sleep(base::Milliseconds(200)); }
 
   void EndTracing() {
     TracingSamplerProfiler::StopTracingForTesting();
diff --git a/services/video_capture/public/uma/video_capture_service_event.cc b/services/video_capture/public/uma/video_capture_service_event.cc
index 4d3096d..a5a8733 100644
--- a/services/video_capture/public/uma/video_capture_service_event.cc
+++ b/services/video_capture/public/uma/video_capture_service_event.cc
@@ -21,7 +21,7 @@
   UMA_HISTOGRAM_CUSTOM_TIMES(
       "Media.VideoCaptureService."
       "DurationFromLastConnectToClosingConnectionAfterEnumerationOnly",
-      duration, base::TimeDelta(), base::TimeDelta::FromMinutes(1), 50);
+      duration, base::TimeDelta(), base::Minutes(1), 50);
   DVLOG(4) << "Logged "
               "DurationFromLastConnectToClosingConnectionAfterEnumerationOnl"
               "y";
@@ -32,28 +32,28 @@
   UMA_HISTOGRAM_CUSTOM_TIMES(
       "Media.VideoCaptureService."
       "DurationFromLastConnectToClosingConnectionAfterCapture",
-      duration, base::TimeDelta(), base::TimeDelta::FromDays(21), 50);
+      duration, base::TimeDelta(), base::Days(21), 50);
   DVLOG(4) << "Logged DurationFromLastConnectToClosingConnectionAfterCapture";
 }
 
 void LogDurationFromLastConnectToConnectionLost(base::TimeDelta duration) {
   UMA_HISTOGRAM_CUSTOM_TIMES(
       "Media.VideoCaptureService.DurationFromLastConnectToConnectionLost",
-      duration, base::TimeDelta(), base::TimeDelta::FromDays(21), 50);
+      duration, base::TimeDelta(), base::Days(21), 50);
   DVLOG(4) << "Logged DurationFromLastConnectToConnectionLost";
 }
 
 void LogDurationUntilReconnectAfterEnumerationOnly(base::TimeDelta duration) {
   UMA_HISTOGRAM_CUSTOM_TIMES(
       "Media.VideoCaptureService.DurationUntilReconnectAfterEnumerationOnly",
-      duration, base::TimeDelta(), base::TimeDelta::FromDays(7), 50);
+      duration, base::TimeDelta(), base::Days(7), 50);
   DVLOG(4) << "Logged DurationUntilReconnectAfterEnumerationOnly";
 }
 
 void LogDurationUntilReconnectAfterCapture(base::TimeDelta duration) {
   UMA_HISTOGRAM_CUSTOM_TIMES(
       "Media.VideoCaptureService.DurationUntilReconnectAfterCapture", duration,
-      base::TimeDelta(), base::TimeDelta::FromDays(7), 50);
+      base::TimeDelta(), base::Days(7), 50);
   DVLOG(4) << "Logged DurationUntilReconnectAfterCapture";
 }
 
diff --git a/services/viz/public/cpp/compositing/mojom_traits_perftest.cc b/services/viz/public/cpp/compositing/mojom_traits_perftest.cc
index 3ebb8957..94678265 100644
--- a/services/viz/public/cpp/compositing/mojom_traits_perftest.cc
+++ b/services/viz/public/cpp/compositing/mojom_traits_perftest.cc
@@ -28,7 +28,7 @@
 namespace viz {
 namespace {
 
-static const auto kTimeLimit = base::TimeDelta::FromSeconds(2);
+static const auto kTimeLimit = base::Seconds(2);
 static const int kNumWarmupRuns = 20;
 static const int kNumRunsPerTimeRecord = 10;
 
diff --git a/services/viz/public/cpp/compositing/mojom_traits_unittest.cc b/services/viz/public/cpp/compositing/mojom_traits_unittest.cc
index 555f6adf..2853fe9 100644
--- a/services/viz/public/cpp/compositing/mojom_traits_unittest.cc
+++ b/services/viz/public/cpp/compositing/mojom_traits_unittest.cc
@@ -77,7 +77,7 @@
 TEST_F(StructTraitsTest, BeginFrameArgs) {
   const base::TimeTicks frame_time = base::TimeTicks::Now();
   const base::TimeTicks deadline = base::TimeTicks::Now();
-  const base::TimeDelta interval = base::TimeDelta::FromMilliseconds(1337);
+  const base::TimeDelta interval = base::Milliseconds(1337);
   const BeginFrameArgs::BeginFrameArgsType type = BeginFrameArgs::NORMAL;
   const bool on_critical_path = true;
   const uint64_t source_id = 5;
diff --git a/sql/database.cc b/sql/database.cc
index 916dae0..f104d45 100644
--- a/sql/database.cc
+++ b/sql/database.cc
@@ -1630,8 +1630,7 @@
     }
   }
 
-  const base::TimeDelta kBusyTimeout =
-      base::TimeDelta::FromSeconds(kBusyTimeoutSeconds);
+  const base::TimeDelta kBusyTimeout = base::Seconds(kBusyTimeoutSeconds);
 
   // Needs to happen before entering WAL mode. Will only work if this the first
   // time the database is being opened in WAL mode.
diff --git a/sql/sandboxed_vfs.cc b/sql/sandboxed_vfs.cc
index 63daf9b..a1e7d7c 100644
--- a/sql/sandboxed_vfs.cc
+++ b/sql/sandboxed_vfs.cc
@@ -215,7 +215,7 @@
 
 int SandboxedVfs::Sleep(int microseconds) {
   DCHECK_GE(microseconds, 0);
-  base::PlatformThread::Sleep(base::TimeDelta::FromMicroseconds(microseconds));
+  base::PlatformThread::Sleep(base::Microseconds(microseconds));
   return SQLITE_OK;
 }
 
diff --git a/sql/statement.cc b/sql/statement.cc
index f188a1d4..df502f3 100644
--- a/sql/statement.cc
+++ b/sql/statement.cc
@@ -444,8 +444,7 @@
       << "Invalid column index";
 
   int64_t int_value = sqlite3_column_int64(ref_->stmt(), column_index);
-  return base::Time::FromDeltaSinceWindowsEpoch(
-      base::TimeDelta::FromMicroseconds(int_value));
+  return base::Time::FromDeltaSinceWindowsEpoch(base::Microseconds(int_value));
 }
 
 std::string Statement::ColumnString(int column_index) {
diff --git a/sql/statement.h b/sql/statement.h
index 4b5754bc..ed0ff1a 100644
--- a/sql/statement.h
+++ b/sql/statement.h
@@ -175,7 +175,7 @@
   // This is equivalent to the following snippets, which should be replaced.
   // * base::Time::FromInternalValue(ColumnInt64(col))
   // * base::Time::FromDeltaSinceWindowsEpoch(
-  //       base::TimeDelta::FromMicroseconds(ColumnInt64(col)))
+  //       base::Microseconds(ColumnInt64(col)))
   //
   // TODO(crbug.com/1195962): Migrate all time serialization to this method, and
   //                          then remove the migration details above.
diff --git a/storage/browser/blob/blob_storage_context_mojo_unittest.cc b/storage/browser/blob/blob_storage_context_mojo_unittest.cc
index b911200..8afd979 100644
--- a/storage/browser/blob/blob_storage_context_mojo_unittest.cc
+++ b/storage/browser/blob/blob_storage_context_mojo_unittest.cc
@@ -170,7 +170,7 @@
 
   // Create a 'last modified' that is different from now.
   base::Time last_modified =
-      TruncateToSeconds(base::Time::Now() - base::TimeDelta::FromDays(1));
+      TruncateToSeconds(base::Time::Now() - base::Days(1));
 
   base::RunLoop loop;
   base::FilePath file_path = temp_dir_.GetPath().AppendASCII("TestFile.txt");
@@ -193,7 +193,7 @@
   // Because Mac rounds file modification time to the nearest second, make sure
   // the difference is within that range.
   base::TimeDelta difference = file_info.last_modified - last_modified;
-  EXPECT_LT(difference.magnitude(), base::TimeDelta::FromSeconds(1));
+  EXPECT_LT(difference.magnitude(), base::Seconds(1));
 
   base::DeleteFile(file_path);
   ASSERT_TRUE(temp_dir_.Delete());
@@ -238,7 +238,7 @@
 
   // Create a 'last modified' that is different from now.
   base::Time last_modified =
-      TruncateToSeconds(base::Time::Now() - base::TimeDelta::FromDays(1));
+      TruncateToSeconds(base::Time::Now() - base::Days(1));
 
   base::RunLoop loop;
   base::FilePath file_path = temp_dir_.GetPath().AppendASCII("TestFile.txt");
@@ -261,7 +261,7 @@
   // Because Mac rounds file modification time to the nearest second, make sure
   // the difference is within that range.
   base::TimeDelta difference = file_info.last_modified - last_modified;
-  EXPECT_LT(difference.magnitude(), base::TimeDelta::FromSeconds(1));
+  EXPECT_LT(difference.magnitude(), base::Seconds(1));
 
   base::DeleteFile(file_path);
   ASSERT_TRUE(temp_dir_.Delete());
@@ -276,7 +276,7 @@
 
   // Create a file to copy from.
   base::Time modification_time =
-      TruncateToSeconds(base::Time::Now() - base::TimeDelta::FromDays(1));
+      TruncateToSeconds(base::Time::Now() - base::Days(1));
   CreateFile(copy_from_file, kData, modification_time);
 
   std::unique_ptr<BlobDataBuilder> builder =
@@ -313,7 +313,7 @@
   // Because Mac rounds file modification time to the nearest second, make sure
   // the difference is within that range.
   base::TimeDelta difference = file_info.last_modified - modification_time;
-  EXPECT_LT(difference.magnitude(), base::TimeDelta::FromSeconds(1));
+  EXPECT_LT(difference.magnitude(), base::Seconds(1));
 
   base::DeleteFile(file_path);
   ASSERT_TRUE(temp_dir_.Delete());
@@ -330,7 +330,7 @@
 
   // Create a file to copy from.
   base::Time modification_time =
-      TruncateToSeconds(base::Time::Now() - base::TimeDelta::FromDays(1));
+      TruncateToSeconds(base::Time::Now() - base::Days(1));
   CreateFile(copy_from_file, kData, modification_time);
 
   std::unique_ptr<BlobDataBuilder> builder =
@@ -366,7 +366,7 @@
   // Because Mac rounds file modification time to the nearest second, make sure
   // the difference is within that range.
   base::TimeDelta difference = file_info.last_modified - modification_time;
-  EXPECT_LT(difference.magnitude(), base::TimeDelta::FromSeconds(1));
+  EXPECT_LT(difference.magnitude(), base::Seconds(1));
 
   base::DeleteFile(file_path);
   ASSERT_TRUE(temp_dir_.Delete());
@@ -381,7 +381,7 @@
 
   // Create a file to copy from.
   base::Time modification_time =
-      TruncateToSeconds(base::Time::Now() - base::TimeDelta::FromDays(1));
+      TruncateToSeconds(base::Time::Now() - base::Days(1));
   CreateFile(copy_from_file, kData, modification_time);
 
   std::unique_ptr<BlobDataBuilder> builder =
@@ -418,7 +418,7 @@
   // Because Mac rounds file modification time to the nearest second, make sure
   // the difference is within that range.
   base::TimeDelta difference = file_info.last_modified - modification_time;
-  EXPECT_LT(difference.magnitude(), base::TimeDelta::FromSeconds(1));
+  EXPECT_LT(difference.magnitude(), base::Seconds(1));
 
   base::DeleteFile(file_path);
   ASSERT_TRUE(temp_dir_.Delete());
@@ -433,7 +433,7 @@
 
   // Create a file to copy from.
   base::Time modification_time =
-      TruncateToSeconds(base::Time::Now() - base::TimeDelta::FromDays(1));
+      TruncateToSeconds(base::Time::Now() - base::Days(1));
   CreateFile(copy_from_file, kData, modification_time);
 
   std::unique_ptr<BlobDataBuilder> builder =
@@ -471,14 +471,14 @@
       temp_dir_.GetPath().AppendASCII("SourceFile.txt");
 
   base::Time file_modified_time =
-      TruncateToSeconds(base::Time::Now() - base::TimeDelta::FromDays(1));
+      TruncateToSeconds(base::Time::Now() - base::Days(1));
   CreateFile(copy_from_file, kData, file_modified_time);
 
   // Create the blob but give it the wrong modification time.
   std::unique_ptr<BlobDataBuilder> builder =
       std::make_unique<BlobDataBuilder>("1234");
   base::Time bad_modified_time =
-      TruncateToSeconds(base::Time::Now() - base::TimeDelta::FromDays(2));
+      TruncateToSeconds(base::Time::Now() - base::Days(2));
   builder->AppendFile(copy_from_file, 0ll, kData.size(), bad_modified_time);
   std::unique_ptr<BlobDataHandle> blob_handle =
       context_->AddFinishedBlob(std::move(builder));
@@ -580,7 +580,7 @@
 
   // Create a 'last modified' that is different from now.
   base::Time last_modified =
-      TruncateToSeconds(base::Time::Now() - base::TimeDelta::FromDays(1));
+      TruncateToSeconds(base::Time::Now() - base::Days(1));
 
   base::RunLoop loop;
   base::FilePath file_path = temp_dir_.GetPath()
diff --git a/storage/browser/database/database_tracker_unittest.cc b/storage/browser/database/database_tracker_unittest.cc
index 6bb3d26..86c10742 100644
--- a/storage/browser/database/database_tracker_unittest.cc
+++ b/storage/browser/database/database_tracker_unittest.cc
@@ -265,14 +265,14 @@
               tracker->GetFullDBFilePath(kOrigin1, kDB1), now, now));
           EXPECT_TRUE(base::TouchFile(
               tracker->GetFullDBFilePath(kOrigin2, kDB2), now, now));
-          base::Time three_days_ago = now - base::TimeDelta::FromDays(3);
+          base::Time three_days_ago = now - base::Days(3);
           EXPECT_TRUE(
               base::TouchFile(tracker->GetFullDBFilePath(kOrigin2, kDB3),
                               three_days_ago, three_days_ago));
 
           // Delete databases modified since yesterday. db2 is whitelisted.
           base::Time yesterday = base::Time::Now();
-          yesterday -= base::TimeDelta::FromDays(1);
+          yesterday -= base::Days(1);
 
           net::TestCompletionCallback delete_data_modified_since_callback;
           tracker->DeleteDataModifiedSince(
diff --git a/storage/browser/file_system/copy_or_move_operation_delegate.cc b/storage/browser/file_system/copy_or_move_operation_delegate.cc
index 9591d4d..d77fcad 100644
--- a/storage/browser/file_system/copy_or_move_operation_delegate.cc
+++ b/storage/browser/file_system/copy_or_move_operation_delegate.cc
@@ -589,7 +589,7 @@
             dest_url_.mount_option().flush_policy(), kReadBufferSize,
             base::BindRepeating(&StreamCopyOrMoveImpl::OnCopyOrMoveFileProgress,
                                 weak_factory_.GetWeakPtr()),
-            base::TimeDelta::FromMilliseconds(
+            base::Milliseconds(
                 kMinProgressCallbackInvocationSpanInMilliseconds));
     copy_helper_->Run(base::BindOnce(&StreamCopyOrMoveImpl::RunAfterStreamCopy,
                                      weak_factory_.GetWeakPtr(),
diff --git a/storage/browser/file_system/file_stream_reader_test.h b/storage/browser/file_system/file_stream_reader_test.h
index e48515b6..d1877e8f 100644
--- a/storage/browser/file_system/file_stream_reader_test.h
+++ b/storage/browser/file_system/file_stream_reader_test.h
@@ -111,8 +111,7 @@
 }
 
 TYPED_TEST_P(FileStreamReaderTypedTest, GetLengthAfterModified) {
-  this->TouchFile(std::string(this->kTestFileName),
-                  base::TimeDelta::FromSeconds(10));
+  this->TouchFile(std::string(this->kTestFileName), base::Seconds(10));
 
   std::unique_ptr<FileStreamReader> reader(
       this->CreateFileReader(std::string(this->kTestFileName), 0,
@@ -159,8 +158,7 @@
   // Touch file so that the file's modification time becomes different
   // from what we expect. Note that the resolution on some filesystems
   // is 1s so we can't test with deltas less than that.
-  this->TouchFile(std::string(this->kTestFileName),
-                  base::TimeDelta::FromSeconds(-1));
+  this->TouchFile(std::string(this->kTestFileName), base::Seconds(-1));
 
   std::unique_ptr<FileStreamReader> reader(
       this->CreateFileReader(std::string(this->kTestFileName), 0,
@@ -176,8 +174,7 @@
   // Due to precision loss converting int64_t->double->int64_t (e.g. through
   // Blink) the expected/actual time may vary by microseconds. With
   // modification time delta < 10us this should work.
-  this->TouchFile(std::string(this->kTestFileName),
-                  base::TimeDelta::FromMicroseconds(1));
+  this->TouchFile(std::string(this->kTestFileName), base::Microseconds(1));
   std::unique_ptr<FileStreamReader> reader(
       this->CreateFileReader(std::string(this->kTestFileName), 0,
                              this->test_file_modification_time()));
@@ -203,8 +200,7 @@
 }
 
 TYPED_TEST_P(FileStreamReaderTypedTest, ReadAfterModifiedWithoutExpectedTime) {
-  this->TouchFile(std::string(this->kTestFileName),
-                  base::TimeDelta::FromSeconds(-1));
+  this->TouchFile(std::string(this->kTestFileName), base::Seconds(-1));
   std::unique_ptr<FileStreamReader> reader(this->CreateFileReader(
       std::string(this->kTestFileName), 0, base::Time()));
   int result = 0;
diff --git a/storage/browser/file_system/file_system_operation_impl_unittest.cc b/storage/browser/file_system/file_system_operation_impl_unittest.cc
index fa230c43..d3c4478 100644
--- a/storage/browser/file_system/file_system_operation_impl_unittest.cc
+++ b/storage/browser/file_system/file_system_operation_impl_unittest.cc
@@ -1128,8 +1128,7 @@
   const base::Time last_accessed = info.last_accessed;
 
   const base::Time new_modified_time = base::Time::UnixEpoch();
-  const base::Time new_accessed_time =
-      new_modified_time + base::TimeDelta::FromHours(77);
+  const base::Time new_accessed_time = new_modified_time + base::Hours(77);
   ASSERT_NE(last_modified, new_modified_time);
   ASSERT_NE(last_accessed, new_accessed_time);
 
diff --git a/storage/browser/file_system/file_system_usage_cache.cc b/storage/browser/file_system/file_system_usage_cache.cc
index 61e4114..5b16535 100644
--- a/storage/browser/file_system/file_system_usage_cache.cc
+++ b/storage/browser/file_system/file_system_usage_cache.cc
@@ -20,7 +20,7 @@
 namespace storage {
 
 namespace {
-constexpr base::TimeDelta kCloseDelay = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kCloseDelay = base::Seconds(5);
 const size_t kMaxHandleCacheSize = 2;
 }  // namespace
 
diff --git a/storage/browser/file_system/local_file_util_unittest.cc b/storage/browser/file_system/local_file_util_unittest.cc
index 669f4b6..76a8cda 100644
--- a/storage/browser/file_system/local_file_util_unittest.cc
+++ b/storage/browser/file_system/local_file_util_unittest.cc
@@ -184,10 +184,8 @@
 
   base::File::Info info;
   ASSERT_TRUE(base::GetFileInfo(LocalPath(file_name), &info));
-  const base::Time new_accessed =
-      info.last_accessed + base::TimeDelta::FromHours(10);
-  const base::Time new_modified =
-      info.last_modified + base::TimeDelta::FromHours(5);
+  const base::Time new_accessed = info.last_accessed + base::Hours(10);
+  const base::Time new_modified = info.last_modified + base::Hours(5);
 
   EXPECT_EQ(base::File::FILE_OK,
             file_util()->Touch(context.get(), CreateURL(file_name),
@@ -208,10 +206,8 @@
 
   base::File::Info info;
   ASSERT_TRUE(base::GetFileInfo(LocalPath(dir_name), &info));
-  const base::Time new_accessed =
-      info.last_accessed + base::TimeDelta::FromHours(10);
-  const base::Time new_modified =
-      info.last_modified + base::TimeDelta::FromHours(5);
+  const base::Time new_accessed = info.last_accessed + base::Hours(10);
+  const base::Time new_modified = info.last_modified + base::Hours(5);
 
   EXPECT_EQ(base::File::FILE_OK,
             file_util()->Touch(context.get(), CreateURL(dir_name), new_accessed,
diff --git a/storage/browser/file_system/native_file_util_unittest.cc b/storage/browser/file_system/native_file_util_unittest.cc
index fb34c10e..9191ab5 100644
--- a/storage/browser/file_system/native_file_util_unittest.cc
+++ b/storage/browser/file_system/native_file_util_unittest.cc
@@ -153,10 +153,8 @@
   ASSERT_EQ(info.last_accessed, native_info.last_accessed);
   ASSERT_EQ(info.creation_time, native_info.creation_time);
 
-  const base::Time new_accessed =
-      info.last_accessed + base::TimeDelta::FromHours(10);
-  const base::Time new_modified =
-      info.last_modified + base::TimeDelta::FromHours(5);
+  const base::Time new_accessed = info.last_accessed + base::Hours(10);
+  const base::Time new_modified = info.last_modified + base::Hours(5);
 
   EXPECT_EQ(base::File::FILE_OK,
             NativeFileUtil::Touch(file_name, new_accessed, new_modified));
diff --git a/storage/browser/file_system/obfuscated_file_util.cc b/storage/browser/file_system/obfuscated_file_util.cc
index 7bf3ceaa..bdf8475 100644
--- a/storage/browser/file_system/obfuscated_file_util.cc
+++ b/storage/browser/file_system/obfuscated_file_util.cc
@@ -1285,8 +1285,8 @@
 void ObfuscatedFileUtil::MarkUsed() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
-  timer_.Start(FROM_HERE, base::TimeDelta::FromSeconds(db_flush_delay_seconds_),
-               this, &ObfuscatedFileUtil::DropDatabases);
+  timer_.Start(FROM_HERE, base::Seconds(db_flush_delay_seconds_), this,
+               &ObfuscatedFileUtil::DropDatabases);
 }
 
 void ObfuscatedFileUtil::DropDatabases() {
diff --git a/storage/browser/file_system/obfuscated_file_util_memory_delegate_unittest.cc b/storage/browser/file_system/obfuscated_file_util_memory_delegate_unittest.cc
index 111fdaf0..711c83b 100644
--- a/storage/browser/file_system/obfuscated_file_util_memory_delegate_unittest.cc
+++ b/storage/browser/file_system/obfuscated_file_util_memory_delegate_unittest.cc
@@ -228,10 +228,8 @@
   ASSERT_EQ(false, info.is_directory);
   ASSERT_EQ(false, info.is_symbolic_link);
 
-  const base::Time new_accessed =
-      info.last_accessed + base::TimeDelta::FromHours(10);
-  const base::Time new_modified =
-      info.last_modified + base::TimeDelta::FromHours(5);
+  const base::Time new_accessed = info.last_accessed + base::Hours(10);
+  const base::Time new_modified = info.last_modified + base::Hours(5);
 
   EXPECT_EQ(base::File::FILE_OK,
             file_util()->Touch(file_name, new_accessed, new_modified));
diff --git a/storage/browser/file_system/obfuscated_file_util_unittest.cc b/storage/browser/file_system/obfuscated_file_util_unittest.cc
index 32967a2b..0bedcb3b 100644
--- a/storage/browser/file_system/obfuscated_file_util_unittest.cc
+++ b/storage/browser/file_system/obfuscated_file_util_unittest.cc
@@ -571,8 +571,8 @@
     EXPECT_EQ(file_info.last_modified.ToTimeT(), last_modified_time.ToTimeT());
 
     context = NewContext(nullptr);
-    last_modified_time += base::TimeDelta::FromHours(1);
-    last_access_time += base::TimeDelta::FromHours(14);
+    last_modified_time += base::Hours(1);
+    last_access_time += base::Hours(14);
     EXPECT_EQ(
         base::File::FILE_OK,
         ofu()->Touch(context.get(), url, last_access_time, last_modified_time));
@@ -2008,8 +2008,7 @@
   context = NewContext(nullptr);
   EXPECT_EQ(base::File::FILE_OK,
             ofu()->Touch(context.get(), url1,
-                         base::Time::Now() + base::TimeDelta::FromHours(1),
-                         base::Time()));
+                         base::Time::Now() + base::Hours(1), base::Time()));
 
   context = NewContext(nullptr);
   std::unique_ptr<FileSystemFileUtil::AbstractFileEnumerator> file_enum =
diff --git a/storage/browser/file_system/sandbox_directory_database.cc b/storage/browser/file_system/sandbox_directory_database.cc
index f097570..2539ab3 100644
--- a/storage/browser/file_system/sandbox_directory_database.cc
+++ b/storage/browser/file_system/sandbox_directory_database.cc
@@ -798,7 +798,7 @@
 void SandboxDirectoryDatabase::ReportInitStatus(const leveldb::Status& status) {
   base::Time now = base::Time::Now();
   const base::TimeDelta minimum_interval =
-      base::TimeDelta::FromHours(kSandboxDirectoryMinimumReportIntervalHours);
+      base::Hours(kSandboxDirectoryMinimumReportIntervalHours);
   if (last_reported_time_ + minimum_interval >= now)
     return;
   last_reported_time_ = now;
diff --git a/storage/browser/file_system/sandbox_file_system_backend_delegate.cc b/storage/browser/file_system/sandbox_file_system_backend_delegate.cc
index 55c15286..cd903262 100644
--- a/storage/browser/file_system/sandbox_file_system_backend_delegate.cc
+++ b/storage/browser/file_system/sandbox_file_system_backend_delegate.cc
@@ -646,7 +646,7 @@
   bool throttled = now < next_release_time_for_open_filesystem_stat_;
   if (!throttled) {
     next_release_time_for_open_filesystem_stat_ =
-        now + base::TimeDelta::FromHours(kMinimumStatsCollectionIntervalHours);
+        now + base::Hours(kMinimumStatsCollectionIntervalHours);
   }
 
 #define REPORT(report_value)                                            \
diff --git a/storage/browser/file_system/sandbox_origin_database.cc b/storage/browser/file_system/sandbox_origin_database.cc
index c00a534..21c8ec8 100644
--- a/storage/browser/file_system/sandbox_origin_database.cc
+++ b/storage/browser/file_system/sandbox_origin_database.cc
@@ -194,7 +194,7 @@
 void SandboxOriginDatabase::ReportInitStatus(const leveldb::Status& status) {
   base::Time now = base::Time::Now();
   base::TimeDelta minimum_interval =
-      base::TimeDelta::FromHours(kSandboxOriginMinimumReportIntervalHours);
+      base::Hours(kSandboxOriginMinimumReportIntervalHours);
   if (last_reported_time_ + minimum_interval >= now)
     return;
   last_reported_time_ = now;
diff --git a/storage/browser/quota/quota_database.cc b/storage/browser/quota/quota_database.cc
index b1f2544..dfd46fb 100644
--- a/storage/browser/quota/quota_database.cc
+++ b/storage/browser/quota/quota_database.cc
@@ -726,8 +726,8 @@
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   if (timer_.IsRunning())
     return;
-  timer_.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(kCommitIntervalMs),
-               this, &QuotaDatabase::Commit);
+  timer_.Start(FROM_HERE, base::Milliseconds(kCommitIntervalMs), this,
+               &QuotaDatabase::Commit);
 }
 
 QuotaError QuotaDatabase::EnsureOpened(EnsureOpenedMode mode) {
diff --git a/storage/browser/quota/quota_manager_impl.cc b/storage/browser/quota/quota_manager_impl.cc
index e3f5fcc..9fb6f99 100644
--- a/storage/browser/quota/quota_manager_impl.cc
+++ b/storage/browser/quota/quota_manager_impl.cc
@@ -68,7 +68,7 @@
 // Limit how frequently QuotaManagerImpl polls for free disk space when
 // only using that information to identify storage pressure.
 constexpr base::TimeDelta kStoragePressureCheckDiskStatsInterval =
-    base::TimeDelta::FromMinutes(5);
+    base::Minutes(5);
 
 // Modifies a given value by a uniformly random amount from
 // -percent to +percent.
@@ -1542,9 +1542,9 @@
       special_storage_policy_.get());
 
   if (!is_incognito_) {
-    histogram_timer_.Start(
-        FROM_HERE, base::TimeDelta::FromMilliseconds(kReportHistogramInterval),
-        this, &QuotaManagerImpl::ReportHistogram);
+    histogram_timer_.Start(FROM_HERE,
+                           base::Milliseconds(kReportHistogramInterval), this,
+                           &QuotaManagerImpl::ReportHistogram);
   }
 
   base::PostTaskAndReplyWithResult(
@@ -2184,7 +2184,7 @@
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   if (!settings) {
     settings = settings_;
-    settings->refresh_interval = base::TimeDelta::FromMinutes(1);
+    settings->refresh_interval = base::Minutes(1);
   }
   SetQuotaSettings(*settings);
   settings_callbacks_.Run(*settings);
diff --git a/storage/browser/quota/quota_settings.cc b/storage/browser/quota/quota_settings.cc
index 4830c83..3a55be13 100644
--- a/storage/browser/quota/quota_settings.cc
+++ b/storage/browser/quota/quota_settings.cc
@@ -147,7 +147,7 @@
       RandomizeByPercent(kMaxSessionOnlyHostQuota, kRandomizedPercentage),
       static_cast<int64_t>(settings.per_host_quota *
                            kSessionOnlyHostQuotaRatio));
-  settings.refresh_interval = base::TimeDelta::FromSeconds(60);
+  settings.refresh_interval = base::Seconds(60);
   return settings;
 }
 
diff --git a/storage/browser/quota/quota_temporary_storage_evictor.cc b/storage/browser/quota/quota_temporary_storage_evictor.cc
index 9aa65c0..d6e4b90f 100644
--- a/storage/browser/quota/quota_temporary_storage_evictor.cc
+++ b/storage/browser/quota/quota_temporary_storage_evictor.cc
@@ -67,9 +67,9 @@
   base::UmaHistogramTimes("Quota.TimeSpentToAEvictionRound",
                           now - round_statistics_.start_time);
   if (!time_of_end_of_last_round_.is_null()) {
-    base::UmaHistogramCustomTimes(
-        "Quota.TimeDeltaOfEvictionRounds", now - time_of_end_of_last_round_,
-        base::TimeDelta::FromMinutes(1), base::TimeDelta::FromDays(1), 50);
+    base::UmaHistogramCustomTimes("Quota.TimeDeltaOfEvictionRounds",
+                                  now - time_of_end_of_last_round_,
+                                  base::Minutes(1), base::Days(1), 50);
   }
   time_of_end_of_last_round_ = now;
 
@@ -128,9 +128,9 @@
   if (histogram_timer_.IsRunning())
     return;
 
-  histogram_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromMinutes(kHistogramReportIntervalMinutes),
-      this, &QuotaTemporaryStorageEvictor::ReportPerHourHistogram);
+  histogram_timer_.Start(FROM_HERE,
+                         base::Minutes(kHistogramReportIntervalMinutes), this,
+                         &QuotaTemporaryStorageEvictor::ReportPerHourHistogram);
 }
 
 void QuotaTemporaryStorageEvictor::StartEvictionTimerWithDelay(
@@ -138,8 +138,8 @@
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   if (eviction_timer_.IsRunning() || timer_disabled_for_testing_)
     return;
-  eviction_timer_.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(delay_ms),
-                        this, &QuotaTemporaryStorageEvictor::ConsiderEviction);
+  eviction_timer_.Start(FROM_HERE, base::Milliseconds(delay_ms), this,
+                        &QuotaTemporaryStorageEvictor::ConsiderEviction);
 }
 
 void QuotaTemporaryStorageEvictor::ConsiderEviction() {
diff --git a/storage/browser/test/mock_quota_manager_unittest.cc b/storage/browser/test/mock_quota_manager_unittest.cc
index 0234efbc..630346b0 100644
--- a/storage/browser/test/mock_quota_manager_unittest.cc
+++ b/storage/browser/test/mock_quota_manager_unittest.cc
@@ -209,8 +209,8 @@
 
   base::Time now = base::Time::Now();
   base::Time then = base::Time();
-  base::TimeDelta an_hour = base::TimeDelta::FromMilliseconds(3600000);
-  base::TimeDelta a_minute = base::TimeDelta::FromMilliseconds(60000);
+  base::TimeDelta an_hour = base::Milliseconds(3600000);
+  base::TimeDelta a_minute = base::Milliseconds(60000);
 
   GetModifiedBuckets(kTemporary, then, base::Time::Max());
   EXPECT_TRUE(buckets().empty());
diff --git a/testing/perf/luci_test_result.cc b/testing/perf/luci_test_result.cc
index 17e894bd..1986f5d 100644
--- a/testing/perf/luci_test_result.cc
+++ b/testing/perf/luci_test_result.cc
@@ -193,7 +193,7 @@
     result.set_start_time(base::Time::FromTimeT(
         static_cast<time_t>(test_info->result()->start_timestamp() / 1000)));
     result.set_duration(
-        base::TimeDelta::FromMilliseconds(test_info->result()->elapsed_time()));
+        base::Milliseconds(test_info->result()->elapsed_time()));
   }
 
   return result;
diff --git a/testing/perf/luci_test_result_unittest.cc b/testing/perf/luci_test_result_unittest.cc
index 731d0d3..30fad71 100644
--- a/testing/perf/luci_test_result_unittest.cc
+++ b/testing/perf/luci_test_result_unittest.cc
@@ -75,7 +75,7 @@
       base::Time::FromUTCExploded({2019, 9, 3, 11, 12, 30, 0}, &start_time));
   result.set_start_time(start_time);
 
-  result.set_duration(base::TimeDelta::FromMilliseconds(1500));
+  result.set_duration(base::Milliseconds(1500));
 
   result.AddOutputArtifactContents("plain", "plain data", "text/plain");
   result.AddOutputArtifactContents("new_line", "first\nsecond", "text/plain");
@@ -173,7 +173,7 @@
       base::Time::FromUTCExploded({2019, 9, 3, 11, 12, 30, 0}, &start_time));
   result.set_start_time(start_time);
 
-  result.set_duration(base::TimeDelta::FromMilliseconds(1500));
+  result.set_duration(base::Milliseconds(1500));
 
   const std::string json_template =
       R"({
@@ -215,7 +215,7 @@
       base::Time::FromUTCExploded({2019, 9, 3, 11, 12, 30, 0}, &start_time));
   result.set_start_time(start_time);
 
-  result.set_duration(base::TimeDelta::FromMilliseconds(1500));
+  result.set_duration(base::Milliseconds(1500));
 
   std::string test_suite_name =
       testing::UnitTest::GetInstance()->current_test_info()->test_suite_name();
diff --git a/third_party/blink/common/chrome_debug_urls.cc b/third_party/blink/common/chrome_debug_urls.cc
index d26ee1e..95a80106 100644
--- a/third_party/blink/common/chrome_debug_urls.cc
+++ b/third_party/blink/common/chrome_debug_urls.cc
@@ -197,12 +197,12 @@
     LOG(ERROR) << "Intentionally hanging ourselves with sleep infinite loop"
                << " because user navigated to " << url.spec();
     for (;;) {
-      base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(1));
+      base::PlatformThread::Sleep(base::Seconds(1));
     }
   } else if (url == kChromeUIShorthangURL) {
     LOG(ERROR) << "Intentionally sleeping renderer for 20 seconds"
                << " because user navigated to " << url.spec();
-    base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(20));
+    base::PlatformThread::Sleep(base::Seconds(20));
   } else if (url == kChromeUIMemoryExhaustURL) {
     LOG(ERROR)
         << "Intentionally exhausting renderer memory because user navigated to "
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
index da8613e..aafde9dbe 100644
--- a/third_party/blink/common/features.cc
+++ b/third_party/blink/common/features.cc
@@ -1036,7 +1036,7 @@
 
 const base::FeatureParam<base::TimeDelta> kHttpRttThreshold{
     &kDelayLowPriorityRequestsAccordingToNetworkState, "HttpRttThreshold",
-    base::TimeDelta::FromMilliseconds(450)};
+    base::Milliseconds(450)};
 
 const base::FeatureParam<double> kCostReductionOfMultiplexedRequests{
     &kDelayLowPriorityRequestsAccordingToNetworkState,
diff --git a/third_party/blink/common/frame/payment_request_token.cc b/third_party/blink/common/frame/payment_request_token.cc
index 3d3e2b4..a63b38b 100644
--- a/third_party/blink/common/frame/payment_request_token.cc
+++ b/third_party/blink/common/frame/payment_request_token.cc
@@ -16,7 +16,7 @@
 // The exact value here came from |TransientAllowFullscreen|.
 //
 // TODO(mustaq): Revisit the value after we have a spec for it.
-constexpr base::TimeDelta kActivationLifespan = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kActivationLifespan = base::Seconds(1);
 
 }  // namespace
 
diff --git a/third_party/blink/common/frame/transient_allow_fullscreen_unittest.cc b/third_party/blink/common/frame/transient_allow_fullscreen_unittest.cc
index 865601b..e206d8d0 100644
--- a/third_party/blink/common/frame/transient_allow_fullscreen_unittest.cc
+++ b/third_party/blink/common/frame/transient_allow_fullscreen_unittest.cc
@@ -25,7 +25,7 @@
   EXPECT_TRUE(transient_allow_fullscreen.IsActive());
 
   // Test the activation state immediately before expiration.
-  const base::TimeDelta kEpsilon = base::TimeDelta::FromMilliseconds(10);
+  const base::TimeDelta kEpsilon = base::Milliseconds(10);
   task_environment.FastForwardBy(TransientAllowFullscreen::kActivationLifespan -
                                  kEpsilon);
   EXPECT_TRUE(transient_allow_fullscreen.IsActive());
diff --git a/third_party/blink/common/frame/user_activation_state.cc b/third_party/blink/common/frame/user_activation_state.cc
index 5ec774f..a666f962 100644
--- a/third_party/blink/common/frame/user_activation_state.cc
+++ b/third_party/blink/common/frame/user_activation_state.cc
@@ -14,7 +14,7 @@
 // The expiry time should be long enough to allow network round trips even in a
 // very slow connection (to support xhr-like calls with user activation), yet
 // not too long to make an "unattended" page feel activated.
-constexpr base::TimeDelta kActivationLifespan = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kActivationLifespan = base::Seconds(5);
 
 UserActivationState::UserActivationState()
     : first_notification_type_(UserActivationNotificationType::kNone),
diff --git a/third_party/blink/common/frame/user_activation_state_unittest.cc b/third_party/blink/common/frame/user_activation_state_unittest.cc
index 8f8e656..a0e10d99 100644
--- a/third_party/blink/common/frame/user_activation_state_unittest.cc
+++ b/third_party/blink/common/frame/user_activation_state_unittest.cc
@@ -17,7 +17,7 @@
   }
 
   static base::TimeTicks Now() {
-    now_ticks_ += base::TimeDelta::FromMilliseconds(1);
+    now_ticks_ += base::Milliseconds(1);
     return now_ticks_;
   }
 
@@ -66,12 +66,12 @@
   user_activation_state.Activate(mojom::UserActivationNotificationType::kTest);
 
   // Right before activation expiry, both bits remain set.
-  AdvanceClock(base::TimeDelta::FromMilliseconds(4995));
+  AdvanceClock(base::Milliseconds(4995));
   EXPECT_TRUE(user_activation_state.HasBeenActive());
   EXPECT_TRUE(user_activation_state.IsActive());
 
   // Right after activation expiry, only the transient bit gets reset.
-  AdvanceClock(base::TimeDelta::FromMilliseconds(10));
+  AdvanceClock(base::Milliseconds(10));
   EXPECT_TRUE(user_activation_state.HasBeenActive());
   EXPECT_FALSE(user_activation_state.IsActive());
 }
@@ -95,17 +95,17 @@
 
   // An activation is consumable before expiry.
   user_activation_state.Activate(mojom::UserActivationNotificationType::kTest);
-  AdvanceClock(base::TimeDelta::FromMilliseconds(900));
+  AdvanceClock(base::Milliseconds(900));
   EXPECT_TRUE(user_activation_state.ConsumeIfActive());
 
   // An activation is not consumable after expiry.
   user_activation_state.Activate(mojom::UserActivationNotificationType::kTest);
-  AdvanceClock(base::TimeDelta::FromSeconds(5));
+  AdvanceClock(base::Seconds(5));
   EXPECT_FALSE(user_activation_state.ConsumeIfActive());
 
   // Consecutive activations within expiry is consumable only once.
   user_activation_state.Activate(mojom::UserActivationNotificationType::kTest);
-  AdvanceClock(base::TimeDelta::FromMilliseconds(900));
+  AdvanceClock(base::Milliseconds(900));
   user_activation_state.Activate(mojom::UserActivationNotificationType::kTest);
   EXPECT_TRUE(user_activation_state.ConsumeIfActive());
   EXPECT_FALSE(user_activation_state.ConsumeIfActive());
@@ -113,7 +113,7 @@
   // Non-consecutive activations within expiry is consumable separately.
   user_activation_state.Activate(mojom::UserActivationNotificationType::kTest);
   EXPECT_TRUE(user_activation_state.ConsumeIfActive());
-  AdvanceClock(base::TimeDelta::FromSeconds(900));
+  AdvanceClock(base::Seconds(900));
   user_activation_state.Activate(mojom::UserActivationNotificationType::kTest);
   EXPECT_TRUE(user_activation_state.ConsumeIfActive());
 }
diff --git a/third_party/blink/common/loader/inter_process_time_ticks_converter_unittest.cc b/third_party/blink/common/loader/inter_process_time_ticks_converter_unittest.cc
index fe4fd41e..29b5ce8 100644
--- a/third_party/blink/common/loader/inter_process_time_ticks_converter_unittest.cc
+++ b/third_party/blink/common/loader/inter_process_time_ticks_converter_unittest.cc
@@ -31,18 +31,18 @@
 };
 
 LocalTimeTicks GetLocalTimeTicks(int64_t value) {
-  return LocalTimeTicks::FromTimeTicks(
-      base::TimeTicks() + base::TimeDelta::FromMicroseconds(value));
+  return LocalTimeTicks::FromTimeTicks(base::TimeTicks() +
+                                       base::Microseconds(value));
 }
 
 RemoteTimeTicks GetRemoteTimeTicks(int64_t value) {
-  return RemoteTimeTicks::FromTimeTicks(
-      base::TimeTicks() + base::TimeDelta::FromMicroseconds(value));
+  return RemoteTimeTicks::FromTimeTicks(base::TimeTicks() +
+                                        base::Microseconds(value));
 }
 
 // Returns a fake TimeTicks based on the given microsecond offset.
 base::TimeTicks TicksFromMicroseconds(int64_t micros) {
-  return base::TimeTicks() + base::TimeDelta::FromMicroseconds(micros);
+  return base::TimeTicks() + base::Microseconds(micros);
 }
 
 TestResults RunTest(const TestParams& params) {
diff --git a/third_party/blink/common/media/watch_time_component_unittest.cc b/third_party/blink/common/media/watch_time_component_unittest.cc
index 2f79ba9c..aa15620c 100644
--- a/third_party/blink/common/media/watch_time_component_unittest.cc
+++ b/third_party/blink/common/media/watch_time_component_unittest.cc
@@ -81,14 +81,14 @@
   EXPECT_EQ(test_component->end_timestamp(), media::kNoTimestamp);
 
   // Notify the start of reporting to set the starting timestamp.
-  const base::TimeDelta kStartTime = base::TimeDelta::FromSeconds(1);
+  const base::TimeDelta kStartTime = base::Seconds(1);
   test_component->OnReportingStarted(kStartTime);
   EXPECT_TRUE(test_component->current_value_for_testing());
   EXPECT_FALSE(test_component->NeedsFinalize());
   EXPECT_EQ(test_component->end_timestamp(), media::kNoTimestamp);
 
   // Simulate a single recording tick.
-  const base::TimeDelta kWatchTime = base::TimeDelta::FromSeconds(2);
+  const base::TimeDelta kWatchTime = base::Seconds(2);
   EXPECT_CALL(recorder_, RecordWatchTime(kTestKey, kWatchTime - kStartTime));
   test_component->RecordWatchTime(kWatchTime);
   EXPECT_TRUE(test_component->current_value_for_testing());
@@ -97,7 +97,7 @@
 
   // Simulate the flag being flipped to false while the timer is running; which
   // should trigger a finalize, but not yet set the current value.
-  const base::TimeDelta kFinalWatchTime = base::TimeDelta::FromSeconds(3);
+  const base::TimeDelta kFinalWatchTime = base::Seconds(3);
   EXPECT_CALL(*this, GetMediaTime()).WillOnce(testing::Return(kFinalWatchTime));
   test_component->SetPendingValue(false);
   EXPECT_TRUE(test_component->current_value_for_testing());
@@ -108,7 +108,7 @@
   // whatever timestamp we provide.
   EXPECT_CALL(recorder_,
               RecordWatchTime(kTestKey, kFinalWatchTime - kStartTime));
-  test_component->RecordWatchTime(base::TimeDelta::FromSeconds(1234));
+  test_component->RecordWatchTime(base::Seconds(1234));
   EXPECT_TRUE(test_component->current_value_for_testing());
   EXPECT_TRUE(test_component->NeedsFinalize());
   EXPECT_EQ(test_component->end_timestamp(), kFinalWatchTime);
@@ -116,7 +116,7 @@
   // Calling it twice or more should not change anything; nor even generate a
   // report since that time has already been recorded.
   for (int i = 0; i < 2; ++i) {
-    test_component->RecordWatchTime(base::TimeDelta::FromSeconds(1234 + i));
+    test_component->RecordWatchTime(base::Seconds(1234 + i));
     EXPECT_TRUE(test_component->current_value_for_testing());
     EXPECT_TRUE(test_component->NeedsFinalize());
     EXPECT_EQ(test_component->end_timestamp(), kFinalWatchTime);
@@ -134,7 +134,7 @@
 
   // The start timestamps should be equal to the previous end timestamp now, so
   // if we call RecordWatchTime again, the value should be relative.
-  const base::TimeDelta kNewWatchTime = base::TimeDelta::FromSeconds(4);
+  const base::TimeDelta kNewWatchTime = base::Seconds(4);
   EXPECT_CALL(recorder_,
               RecordWatchTime(kTestKey, kNewWatchTime - kFinalWatchTime));
   test_component->RecordWatchTime(kNewWatchTime);
@@ -171,7 +171,7 @@
 
   // Simulate the flag being flipped to false while the timer is running; which
   // should trigger a finalize, but not yet set the current value.
-  const base::TimeDelta kWatchTime1 = base::TimeDelta::FromSeconds(3);
+  const base::TimeDelta kWatchTime1 = base::Seconds(3);
   EXPECT_CALL(*this, GetMediaTime()).WillOnce(testing::Return(kWatchTime1));
   test_component->SetPendingValue(false);
   EXPECT_TRUE(test_component->current_value_for_testing());
@@ -181,7 +181,7 @@
   // Now issue a RecordWatchTime() call with a media time before the finalize
   // time. This can happen when the TimeDelta provided to RecordWatchTime has
   // been clamped for some reason (e.g., a superseding finalize).
-  const base::TimeDelta kWatchTime2 = base::TimeDelta::FromSeconds(2);
+  const base::TimeDelta kWatchTime2 = base::Seconds(2);
   EXPECT_CALL(recorder_, RecordWatchTime(kTestKey, kWatchTime2));
   test_component->RecordWatchTime(kWatchTime2);
 }
@@ -194,7 +194,7 @@
   EXPECT_EQ(test_component->end_timestamp(), media::kNoTimestamp);
 
   // A change when running should trigger a finalize.
-  const base::TimeDelta kFinalWatchTime = base::TimeDelta::FromSeconds(1);
+  const base::TimeDelta kFinalWatchTime = base::Seconds(1);
   EXPECT_CALL(*this, GetMediaTime()).WillOnce(testing::Return(kFinalWatchTime));
   test_component->SetPendingValue(false);
   EXPECT_TRUE(test_component->current_value_for_testing());
@@ -239,7 +239,7 @@
   EXPECT_EQ(test_component->end_timestamp(), media::kNoTimestamp);
 
   // Notify the start of reporting to set the starting timestamp.
-  const base::TimeDelta kStartTime = base::TimeDelta::FromSeconds(1);
+  const base::TimeDelta kStartTime = base::Seconds(1);
   test_component->OnReportingStarted(kStartTime);
   EXPECT_EQ(test_component->current_value_for_testing(),
             DisplayType::kFullscreen);
@@ -247,7 +247,7 @@
   EXPECT_EQ(test_component->end_timestamp(), media::kNoTimestamp);
 
   // Record and verify the key recorded too matches the callback provided.
-  const base::TimeDelta kWatchTime1 = base::TimeDelta::FromSeconds(2);
+  const base::TimeDelta kWatchTime1 = base::Seconds(2);
   EXPECT_CALL(recorder_,
               RecordWatchTime(media::WatchTimeKey::kAudioVideoDisplayFullscreen,
                               kWatchTime1 - kStartTime));
@@ -258,7 +258,7 @@
   EXPECT_EQ(test_component->end_timestamp(), media::kNoTimestamp);
 
   // Change property while saying the timer isn't running to avoid finalize.
-  const base::TimeDelta kWatchTime2 = base::TimeDelta::FromSeconds(3);
+  const base::TimeDelta kWatchTime2 = base::Seconds(3);
   test_component->SetCurrentValue(DisplayType::kInline);
   EXPECT_CALL(recorder_,
               RecordWatchTime(media::WatchTimeKey::kAudioVideoDisplayInline,
@@ -269,7 +269,7 @@
   EXPECT_EQ(test_component->end_timestamp(), media::kNoTimestamp);
 
   // Cycle through all three properties...
-  const base::TimeDelta kWatchTime3 = base::TimeDelta::FromSeconds(4);
+  const base::TimeDelta kWatchTime3 = base::Seconds(4);
   test_component->SetCurrentValue(DisplayType::kPictureInPicture);
   EXPECT_CALL(
       recorder_,
@@ -283,7 +283,7 @@
 
   // Verify finalize sends all three keys.
   std::vector<media::WatchTimeKey> actual_finalize_keys;
-  const base::TimeDelta kFinalWatchTime = base::TimeDelta::FromSeconds(5);
+  const base::TimeDelta kFinalWatchTime = base::Seconds(5);
   EXPECT_CALL(*this, GetMediaTime()).WillOnce(testing::Return(kFinalWatchTime));
   test_component->SetPendingValue(DisplayType::kFullscreen);
   test_component->Finalize(&actual_finalize_keys);
diff --git a/third_party/blink/common/media/watch_time_reporter.cc b/third_party/blink/common/media/watch_time_reporter.cc
index 443a53e..e70be4d 100644
--- a/third_party/blink/common/media/watch_time_reporter.cc
+++ b/third_party/blink/common/media/watch_time_reporter.cc
@@ -485,8 +485,7 @@
       // purposes these are considered as timeouts. We want a maximum since
       // rebuffer duration is in real time and not media time, which means if
       // the rebuffer spans a suspend/resume the time can be arbitrarily long.
-      constexpr base::TimeDelta kMaximumRebufferDuration =
-          base::TimeDelta::FromMinutes(1);
+      constexpr base::TimeDelta kMaximumRebufferDuration = base::Minutes(1);
       if (ufe.duration != media::kNoTimestamp &&
           ufe.duration <= kMaximumRebufferDuration) {
         ++total_completed_underflow_count_;
diff --git a/third_party/blink/common/page/content_to_visible_time_reporter.cc b/third_party/blink/common/page/content_to_visible_time_reporter.cc
index 0ecb8f088..7c8b7de 100644
--- a/third_party/blink/common/page/content_to_visible_time_reporter.cc
+++ b/third_party/blink/common/page/content_to_visible_time_reporter.cc
@@ -52,8 +52,7 @@
   // "PageLoad.PaintTiming.NavigationToFirstContentfulPaint" metric.
   base::UmaHistogramCustomTimes(
       "BackForwardCache.Restore.NavigationToFirstPaint", delta,
-      base::TimeDelta::FromMilliseconds(10), base::TimeDelta::FromMinutes(10),
-      100);
+      base::Milliseconds(10), base::Minutes(10), 100);
 }
 
 }  // namespace
diff --git a/third_party/blink/common/page/content_to_visible_time_reporter_unittest.cc b/third_party/blink/common/page/content_to_visible_time_reporter_unittest.cc
index e25e4a89..dbf3f2e31 100644
--- a/third_party/blink/common/page/content_to_visible_time_reporter_unittest.cc
+++ b/third_party/blink/common/page/content_to_visible_time_reporter_unittest.cc
@@ -41,9 +41,8 @@
 constexpr char kBfcacheRestoreHistogram[] =
     "BackForwardCache.Restore.NavigationToFirstPaint";
 
-constexpr base::TimeDelta kDuration = base::TimeDelta::FromMilliseconds(42);
-constexpr base::TimeDelta kOtherDuration =
-    base::TimeDelta::FromMilliseconds(4242);
+constexpr base::TimeDelta kDuration = base::Milliseconds(42);
+constexpr base::TimeDelta kOtherDuration = base::Milliseconds(4242);
 
 class ContentToVisibleTimeReporterTest : public testing::Test {
  protected:
@@ -502,7 +501,7 @@
   base::TimeTicks RandomRequestTimeTicks() const {
     uint16_t number;
     base::RandBytes(&number, sizeof(number));
-    return base::TimeTicks::Now() - base::TimeDelta::FromMilliseconds(number);
+    return base::TimeTicks::Now() - base::Milliseconds(number);
   }
 };
 
diff --git a/third_party/blink/common/privacy_budget/aggregating_sample_collector.h b/third_party/blink/common/privacy_budget/aggregating_sample_collector.h
index 8f55bb66..2788640e 100644
--- a/third_party/blink/common/privacy_budget/aggregating_sample_collector.h
+++ b/third_party/blink/common/privacy_budget/aggregating_sample_collector.h
@@ -75,8 +75,7 @@
 
   // Maximum age of the oldest sample in the unsent collection. Again, the class
   // will flush all samples if this limit overflows.
-  static constexpr base::TimeDelta kMaxUnsentSampleAge =
-      base::TimeDelta::FromSeconds(5);
+  static constexpr base::TimeDelta kMaxUnsentSampleAge = base::Seconds(5);
 
   // Should be the same as the type for ukm::UkmEntry::metrics_
   using UkmMetricsContainerType = decltype(ukm::mojom::UkmEntry::metrics);
diff --git a/third_party/blink/public/common/frame/transient_allow_fullscreen.h b/third_party/blink/public/common/frame/transient_allow_fullscreen.h
index 7cb5dbe3..4252860 100644
--- a/third_party/blink/public/common/frame/transient_allow_fullscreen.h
+++ b/third_party/blink/public/common/frame/transient_allow_fullscreen.h
@@ -18,8 +18,7 @@
   TransientAllowFullscreen();
 
   // The lifespan should be just long enough to allow brief async script calls.
-  static constexpr base::TimeDelta kActivationLifespan =
-      base::TimeDelta::FromSeconds(1);
+  static constexpr base::TimeDelta kActivationLifespan = base::Seconds(1);
 
   // Activate the transient state.
   void Activate();
diff --git a/third_party/blink/public/common/loader/inter_process_time_ticks_converter.h b/third_party/blink/public/common/loader/inter_process_time_ticks_converter.h
index fa34db8..776cc72 100644
--- a/third_party/blink/public/common/loader/inter_process_time_ticks_converter.h
+++ b/third_party/blink/public/common/loader/inter_process_time_ticks_converter.h
@@ -23,7 +23,7 @@
     return SiteSpecificTimeDelta<T>(delta);
   }
   static SiteSpecificTimeDelta<T> FromMicroseconds(int64_t usec) {
-    return SiteSpecificTimeDelta<T>(base::TimeDelta::FromMicroseconds(usec));
+    return SiteSpecificTimeDelta<T>(base::Microseconds(usec));
   }
 
   base::TimeDelta ToTimeDelta() const { return delta_; }
diff --git a/third_party/blink/public/common/media/watch_time_reporter.h b/third_party/blink/public/common/media/watch_time_reporter.h
index 08cdc7c..4bbae5f 100644
--- a/third_party/blink/public/common/media/watch_time_reporter.h
+++ b/third_party/blink/public/common/media/watch_time_reporter.h
@@ -215,7 +215,7 @@
   // The amount of time between each UpdateWatchTime(); this is the frequency by
   // which the watch times are updated. In the event of a process crash or kill
   // this is also the most amount of watch time that we might lose.
-  base::TimeDelta reporting_interval_ = base::TimeDelta::FromSeconds(5);
+  base::TimeDelta reporting_interval_ = base::Seconds(5);
 
   base::RepeatingTimer reporting_timer_;
 
diff --git a/third_party/blink/public/common/notifications/notification_constants.h b/third_party/blink/public/common/notifications/notification_constants.h
index edda92a5..e79b8c8 100644
--- a/third_party/blink/public/common/notifications/notification_constants.h
+++ b/third_party/blink/public/common/notifications/notification_constants.h
@@ -11,8 +11,7 @@
 
 // Maximum allowed time delta into the future for show triggers. Allow a bit
 // more than a year to account for leap years and seconds.
-constexpr base::TimeDelta kMaxNotificationShowTriggerDelay =
-    base::TimeDelta::FromDays(367);
+constexpr base::TimeDelta kMaxNotificationShowTriggerDelay = base::Days(367);
 
 // TODO(johnme): The maximum number of actions is platform-specific and should
 // be indicated by the embedder.
diff --git a/third_party/blink/public/common/sms/webotp_constants.h b/third_party/blink/public/common/sms/webotp_constants.h
index cedf375..aee473f 100644
--- a/third_party/blink/public/common/sms/webotp_constants.h
+++ b/third_party/blink/public/common/sms/webotp_constants.h
@@ -11,8 +11,7 @@
 
 static constexpr int kMaxUniqueOriginInAncestorChainForWebOTP = 2;
 // This is Blink.Sms.Receive.TimeSuccess at > 99.7 percentile.
-static constexpr base::TimeDelta kWebOTPRequestTimeout =
-    base::TimeDelta::FromMinutes(4);
+static constexpr base::TimeDelta kWebOTPRequestTimeout = base::Minutes(4);
 
 }  // namespace blink
 
diff --git a/third_party/blink/public/platform/media/video_frame_compositor.h b/third_party/blink/public/platform/media/video_frame_compositor.h
index 538e987..68b14455 100644
--- a/third_party/blink/public/platform/media/video_frame_compositor.h
+++ b/third_party/blink/public/platform/media/video_frame_compositor.h
@@ -281,7 +281,7 @@
   // Assume 60Hz before the first UpdateCurrentFrame() call.
   // Updated/read by the compositor thread, but also read on the media thread.
   base::TimeDelta last_interval_ GUARDED_BY(callback_lock_) =
-      base::TimeDelta::FromSecondsD(1.0 / 60);
+      base::Seconds(1.0 / 60);
 
   // AutoOpenCloseEvent for begin/end events.
   std::unique_ptr<base::trace_event::AutoOpenCloseEvent<kTracingCategory>>
diff --git a/third_party/blink/renderer/bindings/core/v8/profiler_trace_builder.cc b/third_party/blink/renderer/bindings/core/v8/profiler_trace_builder.cc
index 66f6cca..edcdd04 100644
--- a/third_party/blink/renderer/bindings/core/v8/profiler_trace_builder.cc
+++ b/third_party/blink/renderer/bindings/core/v8/profiler_trace_builder.cc
@@ -28,8 +28,8 @@
   if (profile) {
     for (int i = 0; i < profile->GetSamplesCount(); i++) {
       const auto* node = profile->GetSample(i);
-      auto timestamp = base::TimeTicks() + base::TimeDelta::FromMicroseconds(
-                                               profile->GetSampleTimestamp(i));
+      auto timestamp = base::TimeTicks() +
+                       base::Microseconds(profile->GetSampleTimestamp(i));
       builder->AddSample(node, timestamp);
     }
   }
diff --git a/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_serializer_test.cc b/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_serializer_test.cc
index 3e85f60..642aa31 100644
--- a/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_serializer_test.cc
+++ b/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_serializer_test.cc
@@ -1606,7 +1606,7 @@
   // From v4 to v7, the last modified time is written in seconds.
   // So -0.25 represents 250 ms before the Unix epoch.
   EXPECT_EQ(-250, new_file->lastModified());
-  EXPECT_EQ(base::TimeDelta::FromMillisecondsD(-250.0),
+  EXPECT_EQ(base::Milliseconds(-250.0),
             new_file->LastModifiedTime() - base::Time::UnixEpoch());
 }
 
@@ -1658,7 +1658,7 @@
   EXPECT_EQ(512u, new_file->size());
   // From v8, the last modified time is written in milliseconds.
   // So -0.25 represents 0.25 ms before the Unix epoch.
-  EXPECT_EQ(base::TimeDelta::FromMillisecondsD(-0.25),
+  EXPECT_EQ(base::Milliseconds(-0.25),
             new_file->LastModifiedTime() - base::Time::UnixEpoch());
   // lastModified IDL attribute can't represent -0.25 ms.
   EXPECT_EQ(INT64_C(0), new_file->lastModified());
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_code_cache.cc b/third_party/blink/renderer/bindings/core/v8/v8_code_cache.cc
index a6226b7..64fbffd 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_code_cache.cc
+++ b/third_party/blink/renderer/bindings/core/v8/v8_code_cache.cc
@@ -46,7 +46,7 @@
 
 // Check previously stored timestamp.
 bool IsResourceHotForCaching(const SingleCachedMetadataHandler* cache_handler) {
-  static constexpr base::TimeDelta kHotHours = base::TimeDelta::FromHours(72);
+  static constexpr base::TimeDelta kHotHours = base::Hours(72);
   scoped_refptr<CachedMetadata> cached_metadata =
       cache_handler->GetCachedMetadata(
           V8CodeCache::TagForTimeStamp(cache_handler));
@@ -57,7 +57,7 @@
   DCHECK_EQ(cached_metadata->size(), size);
   memcpy(&time_stamp_ms, cached_metadata->Data(), size);
   base::TimeTicks time_stamp =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(time_stamp_ms);
+      base::TimeTicks() + base::Milliseconds(time_stamp_ms);
   return (base::TimeTicks::Now() - time_stamp) < kHotHours;
 }
 
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_metrics.cc b/third_party/blink/renderer/bindings/core/v8/v8_metrics.cc
index 9f78bd5..be50f70 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_metrics.cc
+++ b/third_party/blink/renderer/bindings/core/v8/v8_metrics.cc
@@ -127,69 +127,67 @@
     ContextId context_id) {
   CheckCppEvents(event);
   // Report throughput metrics:
-  UMA_HISTOGRAM_TIMES("V8.GC.Cycle.Full.Cpp",
-                      base::TimeDelta::FromMicroseconds(
-                          event.total_cpp.mark_wall_clock_duration_in_us +
-                          event.total_cpp.weak_wall_clock_duration_in_us +
-                          event.total_cpp.compact_wall_clock_duration_in_us +
-                          event.total_cpp.sweep_wall_clock_duration_in_us));
-  UMA_HISTOGRAM_TIMES("V8.GC.Cycle.Full.Mark.Cpp",
-                      base::TimeDelta::FromMicroseconds(
-                          event.total_cpp.mark_wall_clock_duration_in_us));
-  UMA_HISTOGRAM_TIMES("V8.GC.Cycle.Full.Weak.Cpp",
-                      base::TimeDelta::FromMicroseconds(
-                          event.total_cpp.weak_wall_clock_duration_in_us));
-  UMA_HISTOGRAM_TIMES("V8.GC.Cycle.Full.Compact.Cpp",
-                      base::TimeDelta::FromMicroseconds(
-                          event.total_cpp.compact_wall_clock_duration_in_us));
-  UMA_HISTOGRAM_TIMES("V8.GC.Cycle.Full.Sweep.Cpp",
-                      base::TimeDelta::FromMicroseconds(
-                          event.total_cpp.sweep_wall_clock_duration_in_us));
+  UMA_HISTOGRAM_TIMES(
+      "V8.GC.Cycle.Full.Cpp",
+      base::Microseconds(event.total_cpp.mark_wall_clock_duration_in_us +
+                         event.total_cpp.weak_wall_clock_duration_in_us +
+                         event.total_cpp.compact_wall_clock_duration_in_us +
+                         event.total_cpp.sweep_wall_clock_duration_in_us));
+  UMA_HISTOGRAM_TIMES(
+      "V8.GC.Cycle.Full.Mark.Cpp",
+      base::Microseconds(event.total_cpp.mark_wall_clock_duration_in_us));
+  UMA_HISTOGRAM_TIMES(
+      "V8.GC.Cycle.Full.Weak.Cpp",
+      base::Microseconds(event.total_cpp.weak_wall_clock_duration_in_us));
+  UMA_HISTOGRAM_TIMES(
+      "V8.GC.Cycle.Full.Compact.Cpp",
+      base::Microseconds(event.total_cpp.compact_wall_clock_duration_in_us));
+  UMA_HISTOGRAM_TIMES(
+      "V8.GC.Cycle.Full.Sweep.Cpp",
+      base::Microseconds(event.total_cpp.sweep_wall_clock_duration_in_us));
 
   UMA_HISTOGRAM_TIMES(
       "V8.GC.Cycle.MainThread.Full.Cpp",
-      base::TimeDelta::FromMicroseconds(
+      base::Microseconds(
           event.main_thread_cpp.mark_wall_clock_duration_in_us +
           event.main_thread_cpp.weak_wall_clock_duration_in_us +
           event.main_thread_cpp.compact_wall_clock_duration_in_us +
           event.main_thread_cpp.sweep_wall_clock_duration_in_us));
   UMA_HISTOGRAM_TIMES(
       "V8.GC.Cycle.MainThread.Full.Mark.Cpp",
-      base::TimeDelta::FromMicroseconds(
-          event.main_thread_cpp.mark_wall_clock_duration_in_us));
+      base::Microseconds(event.main_thread_cpp.mark_wall_clock_duration_in_us));
   UMA_HISTOGRAM_TIMES(
       "V8.GC.Cycle.MainThread.Full.Weak.Cpp",
-      base::TimeDelta::FromMicroseconds(
-          event.main_thread_cpp.weak_wall_clock_duration_in_us));
+      base::Microseconds(event.main_thread_cpp.weak_wall_clock_duration_in_us));
   UMA_HISTOGRAM_TIMES(
       "V8.GC.Cycle.MainThread.Full.Compact.Cpp",
-      base::TimeDelta::FromMicroseconds(
+      base::Microseconds(
           event.main_thread_cpp.compact_wall_clock_duration_in_us));
   UMA_HISTOGRAM_TIMES(
       "V8.GC.Cycle.MainThread.Full.Sweep.Cpp",
-      base::TimeDelta::FromMicroseconds(
+      base::Microseconds(
           event.main_thread_cpp.sweep_wall_clock_duration_in_us));
 
   // Report atomic pause metrics:
   UMA_HISTOGRAM_TIMES(
       "V8.GC.Cycle.MainThread.Full.Atomic.Mark.Cpp",
-      base::TimeDelta::FromMicroseconds(
+      base::Microseconds(
           event.main_thread_atomic_cpp.mark_wall_clock_duration_in_us));
   UMA_HISTOGRAM_TIMES(
       "V8.GC.Cycle.MainThread.Full.Atomic.Weak.Cpp",
-      base::TimeDelta::FromMicroseconds(
+      base::Microseconds(
           event.main_thread_atomic_cpp.weak_wall_clock_duration_in_us));
   UMA_HISTOGRAM_TIMES(
       "V8.GC.Cycle.MainThread.Full.Atomic.Compact.Cpp",
-      base::TimeDelta::FromMicroseconds(
+      base::Microseconds(
           event.main_thread_atomic_cpp.compact_wall_clock_duration_in_us));
   UMA_HISTOGRAM_TIMES(
       "V8.GC.Cycle.MainThread.Full.Atomic.Sweep.Cpp",
-      base::TimeDelta::FromMicroseconds(
+      base::Microseconds(
           event.main_thread_atomic_cpp.sweep_wall_clock_duration_in_us));
   UMA_HISTOGRAM_TIMES(
       "V8.GC.Cycle.MainThread.Full.Atomic.Cpp",
-      base::TimeDelta::FromMicroseconds(
+      base::Microseconds(
           event.main_thread_atomic_cpp.mark_wall_clock_duration_in_us +
           event.main_thread_atomic_cpp.weak_wall_clock_duration_in_us +
           event.main_thread_atomic_cpp.compact_wall_clock_duration_in_us +
@@ -247,7 +245,7 @@
 
 void ReportCppIncrementalLatencyEvent(int64_t duration_us) {
   UMA_HISTOGRAM_TIMES("V8.GC.Event.MainThread.Full.Incremental.Cpp",
-                      base::TimeDelta::FromMicroseconds(duration_us));
+                      base::Microseconds(duration_us));
 }
 
 }  // namespace
@@ -259,7 +257,7 @@
     // This is only a latency event.
     UMA_HISTOGRAM_TIMES(
         "V8.GC.Event.MainThread.Full.Incremental.Mark.Cpp",
-        base::TimeDelta::FromMicroseconds(event.cpp_wall_clock_duration_in_us));
+        base::Microseconds(event.cpp_wall_clock_duration_in_us));
     ReportCppIncrementalLatencyEvent(event.cpp_wall_clock_duration_in_us);
   }
 }
@@ -280,7 +278,7 @@
     // This is only a latency event.
     UMA_HISTOGRAM_TIMES(
         "V8.GC.Event.MainThread.Full.Incremental.Sweep.Cpp",
-        base::TimeDelta::FromMicroseconds(event.cpp_wall_clock_duration_in_us));
+        base::Microseconds(event.cpp_wall_clock_duration_in_us));
     ReportCppIncrementalLatencyEvent(event.cpp_wall_clock_duration_in_us);
   }
 }
diff --git a/third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_serializer_for_modules_test.cc b/third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_serializer_for_modules_test.cc
index f3b9ef4c..761019b 100644
--- a/third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_serializer_for_modules_test.cc
+++ b/third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_serializer_for_modules_test.cc
@@ -1087,7 +1087,7 @@
   const unsigned kChannels = 2;
   const unsigned kSampleRate = 8000;
   const unsigned kFrames = 500;
-  constexpr base::TimeDelta kTimestamp = base::TimeDelta::FromMilliseconds(314);
+  constexpr base::TimeDelta kTimestamp = base::Milliseconds(314);
 
   auto audio_bus = media::AudioBus::Create(kChannels, kFrames);
 
@@ -1118,8 +1118,7 @@
   ASSERT_TRUE(V8AudioData::HasInstance(result, scope.GetIsolate()));
 
   AudioData* new_data = V8AudioData::ToImpl(result.As<v8::Object>());
-  EXPECT_EQ(base::TimeDelta::FromMicroseconds(new_data->timestamp()),
-            kTimestamp);
+  EXPECT_EQ(base::Microseconds(new_data->timestamp()), kTimestamp);
   EXPECT_EQ(new_data->numberOfChannels(), kChannels);
   EXPECT_EQ(new_data->numberOfFrames(), kFrames);
   EXPECT_EQ(new_data->sampleRate(), kSampleRate);
@@ -1158,7 +1157,7 @@
       media::ChannelLayout::CHANNEL_LAYOUT_STEREO,
       /*channel_count=*/2,
       /*sample_rate=*/8000,
-      /*frame_count=*/500, base::TimeDelta::FromMilliseconds(314));
+      /*frame_count=*/500, base::Milliseconds(314));
 
   // Create and close the frame.
   auto* audio_data = MakeGarbageCollected<AudioData>(std::move(audio_buffer));
diff --git a/third_party/blink/renderer/controller/highest_pmf_reporter.cc b/third_party/blink/renderer/controller/highest_pmf_reporter.cc
index c89e4519..08dca7d 100644
--- a/third_party/blink/renderer/controller/highest_pmf_reporter.cc
+++ b/third_party/blink/renderer/controller/highest_pmf_reporter.cc
@@ -43,8 +43,7 @@
     "8to16min"};
 
 constexpr base::TimeDelta HighestPmfReporter::time_to_report[] = {
-    base::TimeDelta::FromMinutes(2), base::TimeDelta::FromMinutes(4),
-    base::TimeDelta::FromMinutes(8), base::TimeDelta::FromMinutes(16)};
+    base::Minutes(2), base::Minutes(4), base::Minutes(8), base::Minutes(16)};
 
 HighestPmfReporter& HighestPmfReporter::Instance() {
   DEFINE_STATIC_LOCAL(HighestPmfReporter, reporter, ());
diff --git a/third_party/blink/renderer/controller/highest_pmf_reporter_test.cc b/third_party/blink/renderer/controller/highest_pmf_reporter_test.cc
index 8c95cfd..90a3927 100644
--- a/third_party/blink/renderer/controller/highest_pmf_reporter_test.cc
+++ b/third_party/blink/renderer/controller/highest_pmf_reporter_test.cc
@@ -175,7 +175,7 @@
   Page::OrdinaryPages().insert(&GetPage());
 
   memory_usage_monitor_->SetPrivateFootprintBytes(1000.0);
-  AdvanceClock(base::TimeDelta::FromMinutes(1));
+  AdvanceClock(base::Minutes(1));
   EXPECT_EQ(0, reporter_->GetReportCount());
   EXPECT_EQ(0U, reporter_->GetReportedHighestPmf().size());
   EXPECT_EQ(0U, reporter_->GetReportedPeakRss().size());
@@ -184,7 +184,7 @@
 TEST_F(HighestPmfReporterTest, ReportMetric) {
   EXPECT_TRUE(memory_usage_monitor_->TimerIsActive());
   Page::OrdinaryPages().insert(&GetPage());
-  AdvanceClock(base::TimeDelta::FromSeconds(1));
+  AdvanceClock(base::Seconds(1));
 
   // PMF, PeakRSS and PageCount at specified TimeSinceNavigation.
   static const struct {
@@ -193,16 +193,16 @@
     double peak_rss;
     unsigned page_count;
   } time_pmf_rss_table[] = {
-      {base::TimeDelta::FromMinutes(0), 1000.0, 1200.0, 1},
-      {base::TimeDelta::FromMinutes(1), 750.0, 900.0, 1},
-      {base::TimeDelta::FromSeconds(80), 750.0, 1000.0, 4},   // t=1min 20sec
-      {base::TimeDelta::FromSeconds(90), 1100.0, 1500.0, 2},  // t=1min 30sec
-      {base::TimeDelta::FromMinutes(2), 900.0, 1000.0, 1},
-      {base::TimeDelta::FromMinutes(4), 900.0, 1000.0, 1},
-      {base::TimeDelta::FromMinutes(5), 1500.0, 2000.0, 3},
-      {base::TimeDelta::FromMinutes(7), 800.0, 900.0, 1},
-      {base::TimeDelta::FromMinutes(8), 900.0, 1000.0, 1},
-      {base::TimeDelta::FromMinutes(16), 900.0, 1000.0, 1},
+      {base::Minutes(0), 1000.0, 1200.0, 1},
+      {base::Minutes(1), 750.0, 900.0, 1},
+      {base::Seconds(80), 750.0, 1000.0, 4},   // t=1min 20sec
+      {base::Seconds(90), 1100.0, 1500.0, 2},  // t=1min 30sec
+      {base::Minutes(2), 900.0, 1000.0, 1},
+      {base::Minutes(4), 900.0, 1000.0, 1},
+      {base::Minutes(5), 1500.0, 2000.0, 3},
+      {base::Minutes(7), 800.0, 900.0, 1},
+      {base::Minutes(8), 900.0, 1000.0, 1},
+      {base::Minutes(16), 900.0, 1000.0, 1},
   };
 
   base::TimeTicks navigation_start_time = NowTicks();
@@ -215,7 +215,7 @@
     memory_usage_monitor_->SetPeakResidentBytes(item.peak_rss);
     memory_usage_monitor_->SetOrdinaryPageCount(item.page_count);
   }
-  AdvanceClockTo(navigation_start_time + base::TimeDelta::FromMinutes(17));
+  AdvanceClockTo(navigation_start_time + base::Minutes(17));
 
   EXPECT_EQ(4, reporter_->GetReportCount());
   EXPECT_EQ(4U, reporter_->GetReportedHighestPmf().size());
@@ -245,33 +245,33 @@
 
   base::TimeTicks navigation_start_time = NowTicks();
   reporter_->NotifyNavigationStart();
-  AdvanceClock(base::TimeDelta::FromSeconds(1));
+  AdvanceClock(base::Seconds(1));
   // Now ReportMetrics task is posted with 2minutes delay.
   // The task will be executed at "navigation_start_time + 2min + 1sec."
 
   EXPECT_EQ(0, reporter_->GetReportCount());
-  AdvanceClockTo(navigation_start_time + base::TimeDelta::FromMinutes(2));
+  AdvanceClockTo(navigation_start_time + base::Minutes(2));
   EXPECT_EQ(0, reporter_->GetReportCount());
   // ReportMetrics task is executed and next ReportMetrics task is posted.
-  AdvanceClock(base::TimeDelta::FromSeconds(1));
+  AdvanceClock(base::Seconds(1));
   EXPECT_EQ(1, reporter_->GetReportCount());
 
-  AdvanceClockTo(navigation_start_time + base::TimeDelta::FromMinutes(4));
+  AdvanceClockTo(navigation_start_time + base::Minutes(4));
   EXPECT_EQ(1, reporter_->GetReportCount());
   // ReportMetrics task is executed and next ReportMetrics task is posted.
-  AdvanceClock(base::TimeDelta::FromSeconds(1));
+  AdvanceClock(base::Seconds(1));
   EXPECT_EQ(2, reporter_->GetReportCount());
 
-  AdvanceClockTo(navigation_start_time + base::TimeDelta::FromMinutes(8));
+  AdvanceClockTo(navigation_start_time + base::Minutes(8));
   EXPECT_EQ(2, reporter_->GetReportCount());
   // ReportMetrics task is executed and next ReportMetrics task is posted.
-  AdvanceClock(base::TimeDelta::FromSeconds(1));
+  AdvanceClock(base::Seconds(1));
   EXPECT_EQ(3, reporter_->GetReportCount());
 
-  AdvanceClockTo(navigation_start_time + base::TimeDelta::FromMinutes(16));
+  AdvanceClockTo(navigation_start_time + base::Minutes(16));
   EXPECT_EQ(3, reporter_->GetReportCount());
   // ReportMetrics task is executed and next ReportMetrics task is posted.
-  AdvanceClock(base::TimeDelta::FromSeconds(1));
+  AdvanceClock(base::Seconds(1));
   EXPECT_EQ(4, reporter_->GetReportCount());
 }
 
diff --git a/third_party/blink/renderer/controller/memory_usage_monitor.cc b/third_party/blink/renderer/controller/memory_usage_monitor.cc
index d78fba9..57d009cd 100644
--- a/third_party/blink/renderer/controller/memory_usage_monitor.cc
+++ b/third_party/blink/renderer/controller/memory_usage_monitor.cc
@@ -12,7 +12,7 @@
 namespace blink {
 
 namespace {
-constexpr base::TimeDelta kPingInterval = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kPingInterval = base::Seconds(1);
 }
 
 MemoryUsageMonitor::MemoryUsageMonitor() {
diff --git a/third_party/blink/renderer/controller/memory_usage_monitor_test.cc b/third_party/blink/renderer/controller/memory_usage_monitor_test.cc
index 9f08eb55..183a0b60 100644
--- a/third_party/blink/renderer/controller/memory_usage_monitor_test.cc
+++ b/third_party/blink/renderer/controller/memory_usage_monitor_test.cc
@@ -47,14 +47,14 @@
   EXPECT_TRUE(MemoryUsageMonitor::Instance().TimerIsActive());
   EXPECT_EQ(0, observer->count());
 
-  test::RunDelayedTasks(base::TimeDelta::FromSeconds(1));
+  test::RunDelayedTasks(base::Seconds(1));
   EXPECT_EQ(1, observer->count());
 
-  test::RunDelayedTasks(base::TimeDelta::FromSeconds(1));
+  test::RunDelayedTasks(base::Seconds(1));
   EXPECT_EQ(2, observer->count());
   MemoryUsageMonitor::Instance().RemoveObserver(observer.get());
 
-  test::RunDelayedTasks(base::TimeDelta::FromSeconds(1));
+  test::RunDelayedTasks(base::Seconds(1));
   EXPECT_EQ(2, observer->count());
   EXPECT_FALSE(MemoryUsageMonitor::Instance().TimerIsActive());
 }
@@ -76,10 +76,10 @@
   MemoryUsageMonitor::Instance().AddObserver(observer2.get());
   EXPECT_EQ(0, observer1->count());
   EXPECT_EQ(0, observer2->count());
-  test::RunDelayedTasks(base::TimeDelta::FromSeconds(1));
+  test::RunDelayedTasks(base::Seconds(1));
   EXPECT_EQ(1, observer1->count());
   EXPECT_EQ(1, observer2->count());
-  test::RunDelayedTasks(base::TimeDelta::FromSeconds(1));
+  test::RunDelayedTasks(base::Seconds(1));
   EXPECT_EQ(1, observer1->count());
   EXPECT_EQ(2, observer2->count());
 }
diff --git a/third_party/blink/renderer/controller/oom_intervention_impl.cc b/third_party/blink/renderer/controller/oom_intervention_impl.cc
index 828ff3f..a6944ad 100644
--- a/third_party/blink/renderer/controller/oom_intervention_impl.cc
+++ b/third_party/blink/renderer/controller/oom_intervention_impl.cc
@@ -205,8 +205,7 @@
     // Report the memory impact of intervention after 10, 20, 30 seconds.
     metrics_at_intervention_ = current_memory;
     number_of_report_needed_ = 3;
-    delayed_report_timer_.StartRepeating(base::TimeDelta::FromSeconds(10),
-                                         FROM_HERE);
+    delayed_report_timer_.StartRepeating(base::Seconds(10), FROM_HERE);
   }
 }
 
diff --git a/third_party/blink/renderer/controller/oom_intervention_impl_test.cc b/third_party/blink/renderer/controller/oom_intervention_impl_test.cc
index 4753070..494a62c 100644
--- a/third_party/blink/renderer/controller/oom_intervention_impl_test.cc
+++ b/third_party/blink/renderer/controller/oom_intervention_impl_test.cc
@@ -117,7 +117,7 @@
     intervention_->StartDetection(std::move(remote_host), std::move(args),
                                   renderer_pause_enabled, navigate_ads_enabled,
                                   purge_v8_memory_enabled);
-    test::RunDelayedTasks(base::TimeDelta::FromSeconds(1));
+    test::RunDelayedTasks(base::Seconds(1));
   }
 
  protected:
@@ -349,7 +349,7 @@
   usage.private_footprint_bytes =
       initial_private_footprint_bytes + 2 * 1024 * 1024;
   intervention_->mock_memory_usage_monitor()->SetMockMemoryUsage(usage);
-  test::RunDelayedTasks(base::TimeDelta::FromSeconds(10));
+  test::RunDelayedTasks(base::Seconds(10));
   histogram_tester.ExpectUniqueSample(
       "Memory.Experimental.OomIntervention.ReducedBlinkUsageAfter10secs2", 2,
       1);
@@ -360,7 +360,7 @@
   usage.v8_bytes = initial_blink_usage_bytes - 1;
   usage.private_footprint_bytes = initial_private_footprint_bytes + 1;
   intervention_->mock_memory_usage_monitor()->SetMockMemoryUsage(usage);
-  test::RunDelayedTasks(base::TimeDelta::FromSeconds(10));
+  test::RunDelayedTasks(base::Seconds(10));
   histogram_tester.ExpectUniqueSample(
       "Memory.Experimental.OomIntervention.ReducedBlinkUsageAfter20secs2", 0,
       1);
@@ -372,7 +372,7 @@
   usage.private_footprint_bytes =
       initial_private_footprint_bytes + 800 * 1024 * 1024;
   intervention_->mock_memory_usage_monitor()->SetMockMemoryUsage(usage);
-  test::RunDelayedTasks(base::TimeDelta::FromSeconds(10));
+  test::RunDelayedTasks(base::Seconds(10));
   histogram_tester.ExpectUniqueSample(
       "Memory.Experimental.OomIntervention.ReducedBlinkUsageAfter30secs2", 500,
       1);
diff --git a/third_party/blink/renderer/controller/performance_manager/v8_worker_memory_reporter.cc b/third_party/blink/renderer/controller/performance_manager/v8_worker_memory_reporter.cc
index b9bf7059..c0c2317b 100644
--- a/third_party/blink/renderer/controller/performance_manager/v8_worker_memory_reporter.cc
+++ b/third_party/blink/renderer/controller/performance_manager/v8_worker_memory_reporter.cc
@@ -35,8 +35,7 @@
 
 namespace blink {
 
-const base::TimeDelta V8WorkerMemoryReporter::kTimeout =
-    base::TimeDelta::FromSeconds(60);
+const base::TimeDelta V8WorkerMemoryReporter::kTimeout = base::Seconds(60);
 
 namespace {
 
diff --git a/third_party/blink/renderer/controller/user_level_memory_pressure_signal_generator.cc b/third_party/blink/renderer/controller/user_level_memory_pressure_signal_generator.cc
index 7053b7bf..8e2ba7b 100644
--- a/third_party/blink/renderer/controller/user_level_memory_pressure_signal_generator.cc
+++ b/third_party/blink/renderer/controller/user_level_memory_pressure_signal_generator.cc
@@ -65,7 +65,7 @@
   static const base::FeatureParam<double> kMinimumIntervalSeconds{
       &blink::features::kUserLevelMemoryPressureSignal, "minimum_interval_s",
       kDefaultMinimumIntervalSeconds};
-  return base::TimeDelta::FromSeconds(kMinimumIntervalSeconds.Get());
+  return base::Seconds(kMinimumIntervalSeconds.Get());
 }
 
 double MemoryThresholdParam() {
@@ -161,8 +161,7 @@
       base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL);
   last_generated_ = clock_->NowTicks();
 
-  delayed_report_timer_.StartOneShot(base::TimeDelta::FromSeconds(10),
-                                     FROM_HERE);
+  delayed_report_timer_.StartOneShot(base::Seconds(10), FROM_HERE);
 }
 
 void UserLevelMemoryPressureSignalGenerator::OnTimerFired(TimerBase*) {
diff --git a/third_party/blink/renderer/controller/user_level_memory_pressure_signal_generator_test.cc b/third_party/blink/renderer/controller/user_level_memory_pressure_signal_generator_test.cc
index 3041ff6..5a51a8ce 100644
--- a/third_party/blink/renderer/controller/user_level_memory_pressure_signal_generator_test.cc
+++ b/third_party/blink/renderer/controller/user_level_memory_pressure_signal_generator_test.cc
@@ -118,8 +118,8 @@
       usage.swap_bytes = 0;
       usage.vm_size_bytes = 0;
       mock_memory_usage_monitor->SetMockMemoryUsage(usage);
-      AdvanceClock(base::TimeDelta::FromSeconds(1));
-      test::RunDelayedTasks(base::TimeDelta::FromSeconds(1));
+      AdvanceClock(base::Seconds(1));
+      test::RunDelayedTasks(base::Seconds(1));
     }
     {
       EXPECT_CALL(generator, Generate(_)).Times(1);
@@ -131,8 +131,8 @@
       usage.swap_bytes = 0;
       usage.vm_size_bytes = 0;
       mock_memory_usage_monitor->SetMockMemoryUsage(usage);
-      AdvanceClock(base::TimeDelta::FromMinutes(10));
-      test::RunDelayedTasks(base::TimeDelta::FromSeconds(1));
+      AdvanceClock(base::Minutes(10));
+      test::RunDelayedTasks(base::Seconds(1));
     }
   }
 }
@@ -162,33 +162,33 @@
       usage.swap_bytes = 0;
       usage.vm_size_bytes = 0;
       mock_memory_usage_monitor->SetMockMemoryUsage(usage);
-      AdvanceClock(base::TimeDelta::FromMinutes(10));
+      AdvanceClock(base::Minutes(10));
       // Generated
       {
         EXPECT_CALL(generator, Generate(_)).Times(1);
-        test::RunDelayedTasks(base::TimeDelta::FromSeconds(1));
+        test::RunDelayedTasks(base::Seconds(1));
       }
 
-      AdvanceClock(base::TimeDelta::FromMinutes(1));
+      AdvanceClock(base::Minutes(1));
       // Not generated because too soon
       {
         EXPECT_CALL(generator, Generate(_)).Times(0);
-        test::RunDelayedTasks(base::TimeDelta::FromSeconds(1));
+        test::RunDelayedTasks(base::Seconds(1));
       }
 
-      AdvanceClock(base::TimeDelta::FromMinutes(10));
+      AdvanceClock(base::Minutes(10));
       generator.OnRAILModeChanged(RAILMode::kLoad);
       // Not generated because loading
       {
         EXPECT_CALL(generator, Generate(_)).Times(0);
-        test::RunDelayedTasks(base::TimeDelta::FromSeconds(1));
+        test::RunDelayedTasks(base::Seconds(1));
       }
 
       generator.OnRAILModeChanged(RAILMode::kAnimation);
       // Generated
       {
         EXPECT_CALL(generator, Generate(_)).Times(1);
-        test::RunDelayedTasks(base::TimeDelta::FromSeconds(1));
+        test::RunDelayedTasks(base::Seconds(1));
       }
     }
   }
diff --git a/third_party/blink/renderer/core/animation/animation.cc b/third_party/blink/renderer/core/animation/animation.cc
index 16d2dbc..ac23191e 100644
--- a/third_party/blink/renderer/core/animation/animation.cc
+++ b/third_party/blink/renderer/core/animation/animation.cc
@@ -2095,7 +2095,7 @@
   double time_offset_s =
       reversed ? EffectEnd().InSecondsF() - current_time.value().InSecondsF()
                : current_time.value().InSecondsF();
-  return base::TimeDelta::FromSecondsD(time_offset_s / fabs(playback_rate));
+  return base::Seconds(time_offset_s / fabs(playback_rate));
 }
 
 void Animation::MarkPendingIfCompositorPropertyAnimationChanges(
@@ -2488,7 +2488,7 @@
     DCHECK(current_time);
     To<KeyframeEffect>(content_.Get())
         ->PauseAnimationForTestingOnCompositor(
-            base::TimeDelta::FromSecondsD(current_time.value().InSecondsF()));
+            base::Seconds(current_time.value().InSecondsF()));
   }
 
   // Do not wait for animation ready to lock in the hold time. Otherwise,
diff --git a/third_party/blink/renderer/core/animation/animation_clock.cc b/third_party/blink/renderer/core/animation/animation_clock.cc
index 22c46bcc..86b254c 100644
--- a/third_party/blink/renderer/core/animation/animation_clock.cc
+++ b/third_party/blink/renderer/core/animation/animation_clock.cc
@@ -37,8 +37,7 @@
 namespace {
 // This is an approximation of time between frames, used when ticking the
 // animation clock outside of animation frame callbacks.
-constexpr base::TimeDelta kApproximateFrameTime =
-    base::TimeDelta::FromSecondsD(1 / 60.0);
+constexpr base::TimeDelta kApproximateFrameTime = base::Seconds(1 / 60.0);
 }  // namespace
 
 unsigned AnimationClock::currently_running_task_ = 0;
diff --git a/third_party/blink/renderer/core/animation/animation_test.cc b/third_party/blink/renderer/core/animation/animation_test.cc
index 7199033..ebfdd92 100644
--- a/third_party/blink/renderer/core/animation/animation_test.cc
+++ b/third_party/blink/renderer/core/animation/animation_test.cc
@@ -202,8 +202,8 @@
     last_frame_time = time_ms;
     const auto* paint_artifact_compositor =
         GetDocument().GetFrame()->View()->GetPaintArtifactCompositor();
-    GetDocument().GetAnimationClock().UpdateTime(
-        base::TimeTicks() + base::TimeDelta::FromMillisecondsD(time_ms));
+    GetDocument().GetAnimationClock().UpdateTime(base::TimeTicks() +
+                                                 base::Milliseconds(time_ms));
     GetDocument().GetPendingAnimations().Update(paint_artifact_compositor,
                                                 false);
     // The timeline does not know about our animation, so we have to explicitly
@@ -219,8 +219,7 @@
 
   void SimulateFrameForScrollAnimations() {
     // Advance time by 100 ms.
-    auto new_time = GetAnimationClock().CurrentTime() +
-                    base::TimeDelta::FromMilliseconds(100);
+    auto new_time = GetAnimationClock().CurrentTime() + base::Milliseconds(100);
     GetPage().Animator().ServiceScriptedAnimations(new_time);
   }
 
@@ -331,8 +330,8 @@
   // FIXME: We should split simulateFrame into a version that doesn't update
   // the animation and one that does, as most of the tests don't require
   // update() to be called.
-  GetDocument().GetAnimationClock().UpdateTime(
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(10000));
+  GetDocument().GetAnimationClock().UpdateTime(base::TimeTicks() +
+                                               base::Milliseconds(10000));
   EXPECT_TIME(10000, GetCurrentTimeMs(animation));
   EXPECT_FALSE(animation->Outdated());
 }
@@ -1821,7 +1820,7 @@
           ->CcAnimation()
           ->GetKeyframeModel(compositor_target_property::OPACITY);
   EXPECT_EQ(keyframe_model->start_time() - base::TimeTicks(),
-            base::TimeDelta::FromSeconds(TEST_START_PERCENT));
+            base::Seconds(TEST_START_PERCENT));
   EXPECT_EQ(keyframe_model->time_offset(), base::TimeDelta());
 }
 
diff --git a/third_party/blink/renderer/core/animation/compositor_animations.cc b/third_party/blink/renderer/core/animation/compositor_animations.cc
index 64d1d977..5b73051 100644
--- a/third_party/blink/renderer/core/animation/compositor_animations.cc
+++ b/third_party/blink/renderer/core/animation/compositor_animations.cc
@@ -729,8 +729,7 @@
                      ? normalized_timing.start_delay.InSecondsF()
                      : 0;
 
-  base::TimeDelta scaled_delay =
-      base::TimeDelta::FromSecondsD(delay / animation_playback_rate);
+  base::TimeDelta scaled_delay = base::Seconds(delay / animation_playback_rate);
 
   // Arithmetic operations involving a value that is effectively +/-infinity
   // result in a value that is +/-infinity or undefined. Check before computing
diff --git a/third_party/blink/renderer/core/animation/compositor_animations_test.cc b/third_party/blink/renderer/core/animation/compositor_animations_test.cc
index fe716b5..bade012 100644
--- a/third_party/blink/renderer/core/animation/compositor_animations_test.cc
+++ b/third_party/blink/renderer/core/animation/compositor_animations_test.cc
@@ -475,8 +475,7 @@
   }
 
   void SimulateFrame(double time) {
-    GetAnimationClock().UpdateTime(base::TimeTicks() +
-                                   base::TimeDelta::FromSecondsD(time));
+    GetAnimationClock().UpdateTime(base::TimeTicks() + base::Seconds(time));
     GetPendingAnimations().Update(nullptr, false);
     timeline_->ServiceAnimations(kTimingUpdateForAnimationFrame);
   }
diff --git a/third_party/blink/renderer/core/animation/css/css_scroll_timeline_test.cc b/third_party/blink/renderer/core/animation/css/css_scroll_timeline_test.cc
index 3c701d4..8ca9af8 100644
--- a/third_party/blink/renderer/core/animation/css/css_scroll_timeline_test.cc
+++ b/third_party/blink/renderer/core/animation/css/css_scroll_timeline_test.cc
@@ -34,8 +34,7 @@
   }
 
   void SimulateFrame() {
-    auto new_time = GetAnimationClock().CurrentTime() +
-                    base::TimeDelta::FromMilliseconds(100);
+    auto new_time = GetAnimationClock().CurrentTime() + base::Milliseconds(100);
     GetPage().Animator().ServiceScriptedAnimations(new_time);
   }
 };
diff --git a/third_party/blink/renderer/core/animation/document_timeline.cc b/third_party/blink/renderer/core/animation/document_timeline.cc
index 7fb6b09..1e9ceb2 100644
--- a/third_party/blink/renderer/core/animation/document_timeline.cc
+++ b/third_party/blink/renderer/core/animation/document_timeline.cc
@@ -70,8 +70,7 @@
     const DocumentTimelineOptions* options) {
   Document* document = To<LocalDOMWindow>(execution_context)->document();
   return MakeGarbageCollected<DocumentTimeline>(
-      document, base::TimeDelta::FromMillisecondsD(options->originTime()),
-      nullptr);
+      document, base::Milliseconds(options->originTime()), nullptr);
 }
 
 DocumentTimeline::DocumentTimeline(Document* document,
@@ -102,7 +101,7 @@
 DocumentTimeline::InitialStartTimeForAnimations() {
   absl::optional<double> current_time_ms = CurrentTimeMilliseconds();
   if (current_time_ms.has_value()) {
-    return base::TimeDelta::FromMillisecondsD(current_time_ms.value());
+    return base::Milliseconds(current_time_ms.value());
   }
   return absl::nullopt;
 }
@@ -129,8 +128,7 @@
   if (next_effect_delay < kMinimumDelay) {
     ScheduleServiceOnNextFrame();
   } else {
-    timing_->WakeAfter(
-        base::TimeDelta::FromSecondsD(next_effect_delay - kMinimumDelay));
+    timing_->WakeAfter(base::Seconds(next_effect_delay - kMinimumDelay));
   }
 }
 
diff --git a/third_party/blink/renderer/core/animation/document_timeline_test.cc b/third_party/blink/renderer/core/animation/document_timeline_test.cc
index 490925a7..4974264 100644
--- a/third_party/blink/renderer/core/animation/document_timeline_test.cc
+++ b/third_party/blink/renderer/core/animation/document_timeline_test.cc
@@ -53,7 +53,7 @@
 
 namespace {
 base::TimeTicks TimeTicksFromMillisecondsD(double seconds) {
-  return base::TimeTicks() + base::TimeDelta::FromMillisecondsD(seconds);
+  return base::TimeTicks() + base::Milliseconds(seconds);
 }
 
 #define EXPECT_TIME_NEAR(expected, value)                              \
@@ -229,7 +229,7 @@
 }
 
 TEST_F(AnimationDocumentTimelineTest, PlaybackRateNormalWithOriginTime) {
-  base::TimeDelta origin_time = base::TimeDelta::FromMilliseconds(-1000);
+  base::TimeDelta origin_time = base::Milliseconds(-1000);
   DocumentTimeline* timeline = MakeGarbageCollected<DocumentTimeline>(
       document.Get(), origin_time, platform_timing);
   timeline->ResetForTesting();
@@ -266,7 +266,7 @@
 }
 
 TEST_F(AnimationDocumentTimelineTest, PlaybackRatePauseWithOriginTime) {
-  base::TimeDelta origin_time = base::TimeDelta::FromMilliseconds(-1000);
+  base::TimeDelta origin_time = base::Milliseconds(-1000);
   DocumentTimeline* timeline = MakeGarbageCollected<DocumentTimeline>(
       document.Get(), origin_time, platform_timing);
   timeline->ResetForTesting();
@@ -331,7 +331,7 @@
 
 TEST_F(AnimationDocumentTimelineTest, PlaybackRateFastWithOriginTime) {
   DocumentTimeline* timeline = MakeGarbageCollected<DocumentTimeline>(
-      document.Get(), base::TimeDelta::FromSeconds(-1000), platform_timing);
+      document.Get(), base::Seconds(-1000), platform_timing);
   timeline->ResetForTesting();
 
   GetAnimationClock().UpdateTime(TimeTicksFromMillisecondsD(100000));
@@ -391,13 +391,13 @@
   // TODO: Put the animation startTime in the future when we add the capability
   // to change animation startTime
   EXPECT_CALL(*platform_timing,
-              WakeAfter(base::TimeDelta::FromSecondsD(
-                  timing.start_delay.InSecondsF() - MinimumDelay())));
+              WakeAfter(base::Seconds(timing.start_delay.InSecondsF() -
+                                      MinimumDelay())));
   UpdateClockAndService(0);
 
   EXPECT_CALL(*platform_timing,
-              WakeAfter(base::TimeDelta::FromSecondsD(
-                  timing.start_delay.InSecondsF() - MinimumDelay() - 1.5)));
+              WakeAfter(base::Seconds(timing.start_delay.InSecondsF() -
+                                      MinimumDelay() - 1.5)));
   UpdateClockAndService(1500);
 
   timeline->ScheduleServiceOnNextFrame();
@@ -441,11 +441,11 @@
   // As long as we are inside the rendering loop, we shouldn't update even
   // across tasks.
   base::TimeTicks before_time = GetAnimationClock().CurrentTime();
-  test_clock.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock.Advance(base::Seconds(1));
   EXPECT_EQ(GetAnimationClock().CurrentTime(), before_time);
 
   AnimationClock::NotifyTaskStart();
-  test_clock.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock.Advance(base::Seconds(1));
   EXPECT_EQ(GetAnimationClock().CurrentTime(), before_time);
 
   // Once we leave the rendering loop, however, it is valid for the time to
@@ -455,7 +455,7 @@
 
   // The clock shouldn't tick again until we change task, however.
   base::TimeTicks current_time = GetAnimationClock().CurrentTime();
-  test_clock.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock.Advance(base::Seconds(1));
   EXPECT_EQ(GetAnimationClock().CurrentTime(), current_time);
   AnimationClock::NotifyTaskStart();
   EXPECT_GT(GetAnimationClock().CurrentTime(), current_time);
@@ -470,7 +470,7 @@
   EXPECT_FALSE(
       document->Loader()->GetTiming().ReferenceMonotonicTime().is_null());
 
-  base::TimeDelta origin_time = base::TimeDelta::FromSeconds(1000);
+  base::TimeDelta origin_time = base::Seconds(1000);
   DocumentTimeline* timeline =
       MakeGarbageCollected<DocumentTimeline>(document.Get(), origin_time);
   timeline->SetPlaybackRate(0.5);
diff --git a/third_party/blink/renderer/core/animation/effect_stack_test.cc b/third_party/blink/renderer/core/animation/effect_stack_test.cc
index 39a32a3..e5aafb3 100644
--- a/third_party/blink/renderer/core/animation/effect_stack_test.cc
+++ b/third_party/blink/renderer/core/animation/effect_stack_test.cc
@@ -191,7 +191,7 @@
   // to keep the ActiveInterpolationsMap in a Persistent.
   Persistent<ActiveInterpolationsMap> interpolations;
 
-  UpdateTimeline(base::TimeDelta::FromSeconds(11));
+  UpdateTimeline(base::Seconds(11));
   ThreadState::Current()->CollectAllGarbageForTesting();
   interpolations = MakeGarbageCollected<ActiveInterpolationsMap>(
       EffectStack::ActiveInterpolations(
@@ -201,7 +201,7 @@
   EXPECT_EQ(GetFontSizeValue(*interpolations), 3);
   EXPECT_EQ(3u, SampledEffectCount());
 
-  UpdateTimeline(base::TimeDelta::FromSeconds(13));
+  UpdateTimeline(base::Seconds(13));
   ThreadState::Current()->CollectAllGarbageForTesting();
   interpolations = MakeGarbageCollected<ActiveInterpolationsMap>(
       EffectStack::ActiveInterpolations(
@@ -211,7 +211,7 @@
   EXPECT_EQ(GetFontSizeValue(*interpolations), 3);
   EXPECT_EQ(3u, SampledEffectCount());
 
-  UpdateTimeline(base::TimeDelta::FromSeconds(15));
+  UpdateTimeline(base::Seconds(15));
   ThreadState::Current()->CollectAllGarbageForTesting();
   interpolations = MakeGarbageCollected<ActiveInterpolationsMap>(
       EffectStack::ActiveInterpolations(
@@ -221,7 +221,7 @@
   EXPECT_EQ(GetFontSizeValue(*interpolations), 3);
   EXPECT_EQ(2u, SampledEffectCount());
 
-  UpdateTimeline(base::TimeDelta::FromSeconds(17));
+  UpdateTimeline(base::Seconds(17));
   ThreadState::Current()->CollectAllGarbageForTesting();
   interpolations = MakeGarbageCollected<ActiveInterpolationsMap>(
       EffectStack::ActiveInterpolations(
diff --git a/third_party/blink/renderer/core/animation/scroll_timeline.cc b/third_party/blink/renderer/core/animation/scroll_timeline.cc
index 4ce5308a..4a07827 100644
--- a/third_party/blink/renderer/core/animation/scroll_timeline.cc
+++ b/third_party/blink/renderer/core/animation/scroll_timeline.cc
@@ -346,8 +346,7 @@
     return {TimelinePhase::kBefore, base::TimeDelta(), resolved_offsets};
   }
 
-  base::TimeDelta duration =
-      base::TimeDelta::FromSecondsD(GetDuration()->InSecondsF());
+  base::TimeDelta duration = base::Seconds(GetDuration()->InSecondsF());
 
   // 3.2 If current scroll offset is greater than or equal to effective end
   // offset:
@@ -367,10 +366,9 @@
   // 3.3.2 The current time is the result of evaluating the following
   // expression:
   //     progress Ă— effective time range
-  absl::optional<base::TimeDelta> calculated_current_time =
-      base::TimeDelta::FromMillisecondsD(scroll_timeline_util::ComputeProgress(
-                                             current_offset, resolved_offsets) *
-                                         duration.InMillisecondsF());
+  absl::optional<base::TimeDelta> calculated_current_time = base::Milliseconds(
+      scroll_timeline_util::ComputeProgress(current_offset, resolved_offsets) *
+      duration.InMillisecondsF());
   return {TimelinePhase::kActive, calculated_current_time, resolved_offsets};
 }
 
diff --git a/third_party/blink/renderer/core/animation/scroll_timeline_test.cc b/third_party/blink/renderer/core/animation/scroll_timeline_test.cc
index 82a33d1..c62aed9 100644
--- a/third_party/blink/renderer/core/animation/scroll_timeline_test.cc
+++ b/third_party/blink/renderer/core/animation/scroll_timeline_test.cc
@@ -78,8 +78,7 @@
  public:
   void SimulateFrame() {
     // Advance time by 100 ms.
-    auto new_time = GetAnimationClock().CurrentTime() +
-                    base::TimeDelta::FromMilliseconds(100);
+    auto new_time = GetAnimationClock().CurrentTime() + base::Milliseconds(100);
     GetPage().Animator().ServiceScriptedAnimations(new_time);
   }
 
diff --git a/third_party/blink/renderer/core/content_capture/content_capture_manager.cc b/third_party/blink/renderer/core/content_capture/content_capture_manager.cc
index 0bafe13..532cb8ed 100644
--- a/third_party/blink/renderer/core/content_capture/content_capture_manager.cc
+++ b/third_party/blink/renderer/core/content_capture/content_capture_manager.cc
@@ -12,8 +12,7 @@
 
 namespace {
 
-static constexpr base::TimeDelta kUserActivationExpiryPeriod =
-    base::TimeDelta::FromSeconds(5);
+static constexpr base::TimeDelta kUserActivationExpiryPeriod = base::Seconds(5);
 
 }  // namespace
 
diff --git a/third_party/blink/renderer/core/content_capture/content_capture_task.cc b/third_party/blink/renderer/core/content_capture/content_capture_task.cc
index f3eff8094..dfb4281b 100644
--- a/third_party/blink/renderer/core/content_capture/content_capture_task.cc
+++ b/third_party/blink/renderer/core/content_capture/content_capture_task.cc
@@ -33,8 +33,8 @@
 }
 
 base::TimeDelta ContentCaptureTask::TaskDelay::GetNextTaskDelay() const {
-  return base::TimeDelta::FromMilliseconds(
-      task_initial_delay_.InMilliseconds() * (1 << delay_exponent_));
+  return base::Milliseconds(task_initial_delay_.InMilliseconds() *
+                            (1 << delay_exponent_));
 }
 
 void ContentCaptureTask::TaskDelay::IncreaseDelayExponent() {
diff --git a/third_party/blink/renderer/core/content_capture/content_capture_task_histogram_reporter.cc b/third_party/blink/renderer/core/content_capture/content_capture_task_histogram_reporter.cc
index 7d2d2316..fd582cd 100644
--- a/third_party/blink/renderer/core/content_capture/content_capture_task_histogram_reporter.cc
+++ b/third_party/blink/renderer/core/content_capture/content_capture_task_histogram_reporter.cc
@@ -40,10 +40,9 @@
 
 void ContentCaptureTaskHistogramReporter::OnTaskRun() {
   if (!task_scheduled_time_.is_null()) {
-    base::UmaHistogramCustomTimes(kTaskDelayInMs,
-                                  base::TimeTicks::Now() - task_scheduled_time_,
-                                  base::TimeDelta::FromMilliseconds(1),
-                                  base::TimeDelta::FromSeconds(128), 100);
+    base::UmaHistogramCustomTimes(
+        kTaskDelayInMs, base::TimeTicks::Now() - task_scheduled_time_,
+        base::Milliseconds(1), base::Seconds(128), 100);
   }
   task_runs_per_capture_++;
 }
@@ -77,10 +76,9 @@
   if (captured_content_change_time_) {
     base::TimeTicks content_change_time = captured_content_change_time_.value();
     captured_content_change_time_.reset();
-    base::UmaHistogramCustomTimes(kCaptureContentDelayTime,
-                                  now - content_change_time,
-                                  base::TimeDelta::FromMilliseconds(500),
-                                  base::TimeDelta::FromSeconds(30), 50);
+    base::UmaHistogramCustomTimes(
+        kCaptureContentDelayTime, now - content_change_time,
+        base::Milliseconds(500), base::Seconds(30), 50);
   }
   if (!sent_content_count)
     return;
diff --git a/third_party/blink/renderer/core/content_capture/content_capture_test.cc b/third_party/blink/renderer/core/content_capture/content_capture_test.cc
index cdbbfbff8..4827951 100644
--- a/third_party/blink/renderer/core/content_capture/content_capture_test.cc
+++ b/third_party/blink/renderer/core/content_capture/content_capture_test.cc
@@ -80,7 +80,7 @@
   ~WebContentCaptureClientTestHelper() override = default;
 
   base::TimeDelta GetTaskInitialDelay() const override {
-    return base::TimeDelta::FromMilliseconds(500);
+    return base::Milliseconds(500);
   }
 
   void DidCaptureContent(const WebVector<WebContentHolder>& data,
@@ -1096,11 +1096,9 @@
 
 TEST_F(ContentCaptureSimTest, UserActivatedDelay) {
   base::TimeDelta expected_delays[] = {
-      base::TimeDelta::FromMilliseconds(500), base::TimeDelta::FromSeconds(1),
-      base::TimeDelta::FromSeconds(2),        base::TimeDelta::FromSeconds(4),
-      base::TimeDelta::FromSeconds(8),        base::TimeDelta::FromSeconds(16),
-      base::TimeDelta::FromSeconds(32),       base::TimeDelta::FromSeconds(64),
-      base::TimeDelta::FromSeconds(128)};
+      base::Milliseconds(500), base::Seconds(1),  base::Seconds(2),
+      base::Seconds(4),        base::Seconds(8),  base::Seconds(16),
+      base::Seconds(32),       base::Seconds(64), base::Seconds(128)};
   size_t expected_delays_size = base::size(expected_delays);
   // The first task has been scheduled but not run yet, the delay will be
   // increased until current task starts to run. Verifies the value is
diff --git a/third_party/blink/renderer/core/css/font_display_auto_lcp_align_test.cc b/third_party/blink/renderer/core/css/font_display_auto_lcp_align_test.cc
index 18ffd73..ca51733 100644
--- a/third_party/blink/renderer/core/css/font_display_auto_lcp_align_test.cc
+++ b/third_party/blink/renderer/core/css/font_display_auto_lcp_align_test.cc
@@ -119,7 +119,7 @@
   EXPECT_TRUE(GetTargetFont().ShouldSkipDrawing());
 
   // Wait until we reach the LCP limit, and the relevant timeout fires.
-  test::RunDelayedTasks(base::TimeDelta::FromMilliseconds(
+  test::RunDelayedTasks(base::Milliseconds(
       features::kAlignFontDisplayAutoTimeoutWithLCPGoalTimeoutParam.Get()));
 
   // After reaching the LCP limit, the web font should enter the failure
@@ -146,7 +146,7 @@
   main_resource.Write("<!doctype html>");
 
   // Wait until we reach the LCP limit, and the relevant timeout fires.
-  test::RunDelayedTasks(base::TimeDelta::FromMilliseconds(
+  test::RunDelayedTasks(base::Milliseconds(
       features::kAlignFontDisplayAutoTimeoutWithLCPGoalTimeoutParam.Get()));
 
   main_resource.Complete(R"HTML(
@@ -188,7 +188,7 @@
   font_resource.Complete(ReadAhemWoff2());
 
   // Wait until we reach the LCP limit, and the relevant timeout fires.
-  test::RunDelayedTasks(base::TimeDelta::FromMilliseconds(
+  test::RunDelayedTasks(base::Milliseconds(
       features::kAlignFontDisplayAutoTimeoutWithLCPGoalTimeoutParam.Get()));
 
   main_resource.Complete(R"HTML(
@@ -241,7 +241,7 @@
 
   // Wait until we reach the LCP limit, and the timeout for the previous
   // document fires. Shouldn't crash here.
-  test::RunDelayedTasks(base::TimeDelta::FromMilliseconds(
+  test::RunDelayedTasks(base::Milliseconds(
       features::kAlignFontDisplayAutoTimeoutWithLCPGoalTimeoutParam.Get()));
 
   next_page_resource.Finish();
@@ -296,7 +296,7 @@
   EXPECT_TRUE(GetFont(non_icon_text).ShouldSkipDrawing());
 
   // Wait until we reach the LCP limit, and the relevant timeout fires.
-  test::RunDelayedTasks(base::TimeDelta::FromMilliseconds(
+  test::RunDelayedTasks(base::Milliseconds(
       features::kAlignFontDisplayAutoTimeoutWithLCPGoalTimeoutParam.Get()));
 
   icon_font_resource.Complete(ReadMaterialIconsWoff2());
@@ -381,7 +381,7 @@
   EXPECT_TRUE(GetTargetFont().ShouldSkipDrawing());
 
   // Wait until we reach the LCP limit, and the relevant timeout fires.
-  test::RunDelayedTasks(base::TimeDelta::FromMilliseconds(
+  test::RunDelayedTasks(base::Milliseconds(
       features::kAlignFontDisplayAutoTimeoutWithLCPGoalTimeoutParam.Get()));
 
   // After reaching the LCP limit, the web font should enter the swap
@@ -407,7 +407,7 @@
   main_resource.Write("<!doctype html>");
 
   // Wait until we reach the LCP limit, and the relevant timeout fires.
-  test::RunDelayedTasks(base::TimeDelta::FromMilliseconds(
+  test::RunDelayedTasks(base::Milliseconds(
       features::kAlignFontDisplayAutoTimeoutWithLCPGoalTimeoutParam.Get()));
 
   main_resource.Complete(R"HTML(
@@ -447,7 +447,7 @@
   font_resource.Complete(ReadAhemWoff2());
 
   // Wait until we reach the LCP limit, and the relevant timeout fires.
-  test::RunDelayedTasks(base::TimeDelta::FromMilliseconds(
+  test::RunDelayedTasks(base::Milliseconds(
       features::kAlignFontDisplayAutoTimeoutWithLCPGoalTimeoutParam.Get()));
 
   main_resource.Complete(R"HTML(
diff --git a/third_party/blink/renderer/core/document_transition/document_transition.cc b/third_party/blink/renderer/core/document_transition/document_transition.cc
index b92826c..29e12fb 100644
--- a/third_party/blink/renderer/core/document_transition/document_transition.cc
+++ b/third_party/blink/renderer/core/document_transition/document_transition.cc
@@ -74,12 +74,11 @@
   DocumentTransition::Request::TransitionConfig transition_config;
 
   if (config.hasDuration()) {
-    transition_config.duration =
-        base::TimeDelta::FromMilliseconds(config.duration());
+    transition_config.duration = base::Milliseconds(config.duration());
   }
 
   if (config.hasDelay()) {
-    transition_config.delay = base::TimeDelta::FromMilliseconds(config.delay());
+    transition_config.delay = base::Milliseconds(config.delay());
   }
 
   return transition_config;
@@ -431,7 +430,7 @@
   // Based on the viz side timeout to hold snapshots for 5 seconds.
   TRACE_EVENT_NESTABLE_ASYNC_BEGIN0(
       "blink", "DocumentTransition::DeferringCommits", this);
-  constexpr base::TimeDelta kTimeout = base::TimeDelta::FromSeconds(4);
+  constexpr base::TimeDelta kTimeout = base::Seconds(4);
   deferring_commits_ =
       document_->GetPage()->GetChromeClient().StartDeferringCommits(
           *document_->GetFrame(), kTimeout,
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
index c7759f3f..97f1bd8 100644
--- a/third_party/blink/renderer/core/dom/document.cc
+++ b/third_party/blink/renderer/core/dom/document.cc
@@ -425,7 +425,7 @@
 // FIXME: For faster machines this value can really be lowered to 200.  250 is
 // adequate, but a little high for dual G5s. :)
 static const base::TimeDelta kCLayoutScheduleThreshold =
-    base::TimeDelta::FromMilliseconds(250);
+    base::Milliseconds(250);
 
 // DOM Level 2 says (letters added):
 //
@@ -6590,8 +6590,7 @@
   // on cache access since that could lead to huge caches being kept alive
   // indefinitely by something innocuous like JS setting .innerHTML repeatedly
   // on a timer.
-  element_data_cache_clear_timer_.StartOneShot(base::TimeDelta::FromSeconds(10),
-                                               FROM_HERE);
+  element_data_cache_clear_timer_.StartOneShot(base::Seconds(10), FROM_HERE);
 
   // Parser should have picked up all preloads by now
   fetcher_->ClearPreloads(ResourceFetcher::kClearSpeculativeMarkupPreloads);
@@ -7406,8 +7405,8 @@
 
   // We add a slight delay because this could be called rapidly.
   if (!did_associate_form_controls_timer_.IsActive()) {
-    did_associate_form_controls_timer_.StartOneShot(
-        base::TimeDelta::FromMilliseconds(300), FROM_HERE);
+    did_associate_form_controls_timer_.StartOneShot(base::Milliseconds(300),
+                                                    FROM_HERE);
   }
 }
 
diff --git a/third_party/blink/renderer/core/dom/idle_deadline_test.cc b/third_party/blink/renderer/core/dom/idle_deadline_test.cc
index 0aa096e8..924d2d9 100644
--- a/third_party/blink/renderer/core/dom/idle_deadline_test.cc
+++ b/third_party/blink/renderer/core/dom/idle_deadline_test.cc
@@ -91,22 +91,22 @@
 
 TEST_F(IdleDeadlineTest, DeadlineInFuture) {
   auto* deadline = MakeGarbageCollected<IdleDeadline>(
-      base::TimeTicks() + base::TimeDelta::FromSecondsD(1.25),
+      base::TimeTicks() + base::Seconds(1.25),
       /*cross_origin_isolated_capability=*/false,
       IdleDeadline::CallbackType::kCalledWhenIdle);
   deadline->SetTickClockForTesting(test_task_runner_->GetMockTickClock());
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   // Note: the deadline is computed with reduced resolution.
   EXPECT_FLOAT_EQ(250.0, deadline->timeRemaining());
 }
 
 TEST_F(IdleDeadlineTest, DeadlineInPast) {
   auto* deadline = MakeGarbageCollected<IdleDeadline>(
-      base::TimeTicks() + base::TimeDelta::FromSecondsD(0.75),
+      base::TimeTicks() + base::Seconds(0.75),
       /*cross_origin_isolated_capability=*/false,
       IdleDeadline::CallbackType::kCalledWhenIdle);
   deadline->SetTickClockForTesting(test_task_runner_->GetMockTickClock());
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_FLOAT_EQ(0, deadline->timeRemaining());
 }
 
@@ -115,11 +115,11 @@
   ScopedSchedulerOverrider scheduler_overrider(&scheduler);
 
   auto* deadline = MakeGarbageCollected<IdleDeadline>(
-      base::TimeTicks() + base::TimeDelta::FromSecondsD(1.25),
+      base::TimeTicks() + base::Seconds(1.25),
       /*cross_origin_isolated_capability=*/false,
       IdleDeadline::CallbackType::kCalledWhenIdle);
   deadline->SetTickClockForTesting(test_task_runner_->GetMockTickClock());
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_FLOAT_EQ(0, deadline->timeRemaining());
 }
 
diff --git a/third_party/blink/renderer/core/dom/scripted_idle_task_controller.cc b/third_party/blink/renderer/core/dom/scripted_idle_task_controller.cc
index 8037f9e..ce70612 100644
--- a/third_party/blink/renderer/core/dom/scripted_idle_task_controller.cc
+++ b/third_party/blink/renderer/core/dom/scripted_idle_task_controller.cc
@@ -146,7 +146,7 @@
             FROM_HERE,
             WTF::Bind(&internal::IdleRequestCallbackWrapper::TimeoutFired,
                       callback_wrapper),
-            base::TimeDelta::FromMilliseconds(timeout_millis));
+            base::Milliseconds(timeout_millis));
   }
 }
 
diff --git a/third_party/blink/renderer/core/dom/scripted_idle_task_controller_test.cc b/third_party/blink/renderer/core/dom/scripted_idle_task_controller_test.cc
index 461b6bf..5a0f15b 100644
--- a/third_party/blink/renderer/core/dom/scripted_idle_task_controller_test.cc
+++ b/third_party/blink/renderer/core/dom/scripted_idle_task_controller_test.cc
@@ -179,7 +179,7 @@
   // run.
   controller->ContextLifecycleStateChanged(mojom::FrameLifecycleState::kPaused);
   EXPECT_CALL(*idle_task, invoke(testing::_)).Times(0);
-  scheduler.AdvanceTimeAndRun(base::TimeDelta::FromMilliseconds(1));
+  scheduler.AdvanceTimeAndRun(base::Milliseconds(1));
   testing::Mock::VerifyAndClearExpectations(idle_task);
 
   // Even if we unpause, no tasks should run immediately.
@@ -190,7 +190,7 @@
 
   // Idle callback should have been scheduled as an asynchronous task.
   EXPECT_CALL(*idle_task, invoke(testing::_)).Times(1);
-  scheduler.AdvanceTimeAndRun(base::TimeDelta::FromMilliseconds(0));
+  scheduler.AdvanceTimeAndRun(base::Milliseconds(0));
   testing::Mock::VerifyAndClearExpectations(idle_task);
 }
 
diff --git a/third_party/blink/renderer/core/editing/finder/async_find_buffer.cc b/third_party/blink/renderer/core/editing/finder/async_find_buffer.cc
index d43d504..4ea74cd 100644
--- a/third_party/blink/renderer/core/editing/finder/async_find_buffer.cc
+++ b/third_party/blink/renderer/core/editing/finder/async_find_buffer.cc
@@ -11,8 +11,7 @@
 
 namespace {
 // Indicates how long FindBuffer task should run before pausing the work.
-constexpr base::TimeDelta kFindBufferTaskTimeoutMs =
-    base::TimeDelta::FromMilliseconds(100);
+constexpr base::TimeDelta kFindBufferTaskTimeoutMs = base::Milliseconds(100);
 }  // namespace
 
 void AsyncFindBuffer::FindMatchInRange(RangeInFlatTree* search_range,
diff --git a/third_party/blink/renderer/core/editing/finder/find_task_controller.cc b/third_party/blink/renderer/core/editing/finder/find_task_controller.cc
index 7ff2cc5..ce76ab38 100644
--- a/third_party/blink/renderer/core/editing/finder/find_task_controller.cc
+++ b/third_party/blink/renderer/core/editing/finder/find_task_controller.cc
@@ -22,8 +22,7 @@
 namespace blink {
 
 namespace {
-constexpr base::TimeDelta kFindTaskTimeAllotment =
-    base::TimeDelta::FromMilliseconds(10);
+constexpr base::TimeDelta kFindTaskTimeAllotment = base::Milliseconds(10);
 
 // Check if we need to yield after this many matches have been found. We start
 // with Start matches and double them every time we yield until we are
diff --git a/third_party/blink/renderer/core/editing/frame_caret_test.cc b/third_party/blink/renderer/core/editing/frame_caret_test.cc
index e0788ed..91cae51 100644
--- a/third_party/blink/renderer/core/editing/frame_caret_test.cc
+++ b/third_party/blink/renderer/core/editing/frame_caret_test.cc
@@ -44,8 +44,7 @@
   task_runner->SetTime(0);
   caret.RecreateCaretBlinkTimerForTesting(task_runner.get());
   const double kInterval = 10;
-  LayoutTheme::GetTheme().SetCaretBlinkInterval(
-      base::TimeDelta::FromSecondsD(kInterval));
+  LayoutTheme::GetTheme().SetCaretBlinkInterval(base::Seconds(kInterval));
   GetDocument().GetPage()->GetFocusController().SetActive(true);
   GetDocument().GetPage()->GetFocusController().SetFocused(true);
   GetDocument().body()->setInnerHTML("<textarea>");
diff --git a/third_party/blink/renderer/core/editing/link_selection_test.cc b/third_party/blink/renderer/core/editing/link_selection_test.cc
index f553917..9c1589b 100644
--- a/third_party/blink/renderer/core/editing/link_selection_test.cc
+++ b/third_party/blink/renderer/core/editing/link_selection_test.cc
@@ -195,7 +195,7 @@
       ->LocalFrameRoot()
       .GetEventHandler()
       .ScheduleCursorUpdate();
-  test::RunDelayedTasks(base::TimeDelta::FromMilliseconds(50));
+  test::RunDelayedTasks(base::Milliseconds(50));
   const auto& cursor =
       main_frame_->GetFrame()->GetChromeClient().LastSetCursorForTesting();
   EXPECT_EQ(ui::mojom::blink::CursorType::kHand, cursor.type());
@@ -207,7 +207,7 @@
       ->LocalFrameRoot()
       .GetEventHandler()
       .ScheduleCursorUpdate();
-  test::RunDelayedTasks(base::TimeDelta::FromMilliseconds(50));
+  test::RunDelayedTasks(base::Milliseconds(50));
   const auto& cursor =
       main_frame_->GetFrame()->GetChromeClient().LastSetCursorForTesting();
   EXPECT_EQ(ui::mojom::blink::CursorType::kPointer, cursor.type());
@@ -220,7 +220,7 @@
       ->LocalFrameRoot()
       .GetEventHandler()
       .ScheduleCursorUpdate();
-  test::RunDelayedTasks(base::TimeDelta::FromMilliseconds(50));
+  test::RunDelayedTasks(base::Milliseconds(50));
   const auto& cursor =
       main_frame_->GetFrame()->GetChromeClient().LastSetCursorForTesting();
   EXPECT_EQ(ui::mojom::blink::CursorType::kIBeam, cursor.type());
@@ -239,7 +239,7 @@
   frame->GetPage()->GetContextMenuController().ClearContextMenu();
 
   frame->LocalFrameRoot().GetEventHandler().ScheduleCursorUpdate();
-  test::RunDelayedTasks(base::TimeDelta::FromMilliseconds(50));
+  test::RunDelayedTasks(base::Milliseconds(50));
   const auto& cursor =
       main_frame_->GetFrame()->GetChromeClient().LastSetCursorForTesting();
   EXPECT_EQ(ui::mojom::blink::CursorType::kHand, cursor.type());
diff --git a/third_party/blink/renderer/core/editing/spellcheck/idle_spell_check_controller.cc b/third_party/blink/renderer/core/editing/spellcheck/idle_spell_check_controller.cc
index abc0625..174cf536 100644
--- a/third_party/blink/renderer/core/editing/spellcheck/idle_spell_check_controller.cc
+++ b/third_party/blink/renderer/core/editing/spellcheck/idle_spell_check_controller.cc
@@ -29,15 +29,13 @@
 
 namespace {
 
-constexpr base::TimeDelta kColdModeTimerInterval =
-    base::TimeDelta::FromMilliseconds(1000);
+constexpr base::TimeDelta kColdModeTimerInterval = base::Milliseconds(1000);
 constexpr base::TimeDelta kConsecutiveColdModeTimerInterval =
-    base::TimeDelta::FromMilliseconds(200);
+    base::Milliseconds(200);
 const int kHotModeRequestTimeoutMS = 200;
 const int kInvalidHandle = -1;
 const int kDummyHandleForForcedInvocation = -2;
-constexpr base::TimeDelta kIdleSpellcheckTestTimeout =
-    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kIdleSpellcheckTestTimeout = base::Seconds(10);
 
 }  // namespace
 
diff --git a/third_party/blink/renderer/core/exported/web_media_player_impl_unittest.cc b/third_party/blink/renderer/core/exported/web_media_player_impl_unittest.cc
index c8bd39acb..f8c3022a 100644
--- a/third_party/blink/renderer/core/exported/web_media_player_impl_unittest.cc
+++ b/third_party/blink/renderer/core/exported/web_media_player_impl_unittest.cc
@@ -107,8 +107,7 @@
 constexpr char kVideoAudioTestFile[] = "bear-320x240-16x9-aspect.webm";
 constexpr char kEncryptedVideoOnlyTestFile[] = "bear-320x240-av_enc-v.webm";
 
-constexpr base::TimeDelta kAudioOnlyTestFileDuration =
-    base::TimeDelta::FromMilliseconds(296);
+constexpr base::TimeDelta kAudioOnlyTestFileDuration = base::Milliseconds(296);
 
 MATCHER(WmpiDestroyed, "") {
   return CONTAINS_STRING(arg, "{\"event\":\"kWebMediaPlayerDestroyed\"}");
@@ -1129,12 +1128,12 @@
        IdleSuspendIsDisabledIfLoadingProgressedRecently) {
   InitializeWebMediaPlayerImpl();
   base::SimpleTestTickClock clock;
-  clock.Advance(base::TimeDelta::FromSeconds(1));
+  clock.Advance(base::Seconds(1));
   SetTickClock(&clock);
   AddBufferedRanges();
   wmpi_->DidLoadingProgress();
   // Advance less than the loading timeout.
-  clock.Advance(base::TimeDelta::FromSeconds(1));
+  clock.Advance(base::Seconds(1));
   EXPECT_FALSE(delegate_.ExpireForTesting());
   base::RunLoop().RunUntilIdle();
   EXPECT_FALSE(IsSuspended());
@@ -1144,12 +1143,12 @@
   InitializeWebMediaPlayerImpl();
   SetNetworkState(WebMediaPlayer::kNetworkStateLoading);
   base::SimpleTestTickClock clock;
-  clock.Advance(base::TimeDelta::FromSeconds(1));
+  clock.Advance(base::Seconds(1));
   SetTickClock(&clock);
   AddBufferedRanges();
   wmpi_->DidLoadingProgress();
   // Advance more than the loading timeout.
-  clock.Advance(base::TimeDelta::FromSeconds(4));
+  clock.Advance(base::Seconds(4));
   EXPECT_TRUE(delegate_.ExpireForTesting());
   base::RunLoop().RunUntilIdle();
   EXPECT_TRUE(IsSuspended());
@@ -1594,19 +1593,17 @@
   Play();
 
   testing::Sequence sequence;
-  EXPECT_CALL(client_,
-              DidPlayerMediaPositionStateChange(
-                  0.0, kAudioOnlyTestFileDuration,
-                  base::TimeDelta::FromSecondsD(0.1), /*end_of_media=*/false))
+  EXPECT_CALL(client_, DidPlayerMediaPositionStateChange(
+                           0.0, kAudioOnlyTestFileDuration, base::Seconds(0.1),
+                           /*end_of_media=*/false))
       .InSequence(sequence);
   wmpi_->Seek(0.1);
   wmpi_->OnTimeUpdate();
 
   // If we load enough data to resume playback the position should be updated.
-  EXPECT_CALL(client_,
-              DidPlayerMediaPositionStateChange(
-                  0.5, kAudioOnlyTestFileDuration,
-                  base::TimeDelta::FromSecondsD(0.1), /*end_of_media=*/false))
+  EXPECT_CALL(client_, DidPlayerMediaPositionStateChange(
+                           0.5, kAudioOnlyTestFileDuration, base::Seconds(0.1),
+                           /*end_of_media=*/false))
       .InSequence(sequence);
   SetReadyState(WebMediaPlayer::kReadyStateHaveFutureData);
   wmpi_->OnTimeUpdate();
@@ -2261,8 +2258,8 @@
     SetLoadType(is_media_source ? WebMediaPlayer::kLoadTypeMediaSource
                                 : WebMediaPlayer::kLoadTypeURL);
     SetVideoKeyframeDistanceAverage(
-        base::TimeDelta::FromSeconds(GetAverageKeyframeDistanceSec()));
-    SetDuration(base::TimeDelta::FromSeconds(GetDurationSec()));
+        base::Seconds(GetAverageKeyframeDistanceSec()));
+    SetDuration(base::Seconds(GetDurationSec()));
 
     if (IsPictureInPictureOn()) {
       EXPECT_CALL(client_, GetDisplayType())
diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc
index c6d0765..f2d60cd 100644
--- a/third_party/blink/renderer/core/exported/web_view_impl.cc
+++ b/third_party/blink/renderer/core/exported/web_view_impl.cc
@@ -204,7 +204,7 @@
 static const float doubleTapZoomContentDefaultMargin = 5;
 static const float doubleTapZoomContentMinimumMargin = 2;
 static constexpr base::TimeDelta kDoubleTapZoomAnimationDuration =
-    base::TimeDelta::FromMilliseconds(250);
+    base::Milliseconds(250);
 static const float doubleTapZoomAlreadyLegibleRatio = 1.2f;
 
 static constexpr base::TimeDelta kFindInPageAnimationDuration;
@@ -215,7 +215,7 @@
 
 // Constants for zooming in on a focused text field.
 static constexpr base::TimeDelta kScrollAndScaleAnimationDuration =
-    base::TimeDelta::FromMicroseconds(200);
+    base::Microseconds(200);
 static const int minReadableCaretHeight = 16;
 static const int minReadableCaretHeightForTextArea = 13;
 static const float minScaleChangeToTriggerZoom = 1.5f;
@@ -3217,7 +3217,7 @@
   blink::SetCaretBlinkInterval(
       renderer_preferences_.caret_blink_interval.has_value()
           ? renderer_preferences_.caret_blink_interval.value()
-          : base::TimeDelta::FromMilliseconds(
+          : base::Milliseconds(
                 mojom::blink::kDefaultCaretBlinkIntervalInMilliseconds));
 
 #if defined(USE_AURA)
diff --git a/third_party/blink/renderer/core/exported/web_view_test.cc b/third_party/blink/renderer/core/exported/web_view_test.cc
index a2044891..3d8513f 100644
--- a/third_party/blink/renderer/core/exported/web_view_test.cc
+++ b/third_party/blink/renderer/core/exported/web_view_test.cc
@@ -229,7 +229,7 @@
   void SetUp() override {
     test_task_runner_ = base::MakeRefCounted<base::TestMockTimeTaskRunner>();
     // Advance clock so time is not 0.
-    test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+    test_task_runner_->FastForwardBy(base::Seconds(1));
     EventTiming::SetTickClockForTesting(test_task_runner_->GetMockTickClock());
   }
 
@@ -5524,7 +5524,7 @@
   ASSERT_NE(nullptr, document);
 
   base::TimeTicks start_time = test_task_runner_->NowTicks();
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(70));
+  test_task_runner_->FastForwardBy(base::Milliseconds(70));
 
   InteractiveDetector* interactive_detector =
       GetTestInteractiveDetector(*document);
@@ -5537,7 +5537,7 @@
   key_event1.dom_key = ui::DomKey::FromCharacter(' ');
   key_event1.windows_key_code = VKEY_SPACE;
   key_event1.SetTimeStamp(test_task_runner_->NowTicks());
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(50));
+  test_task_runner_->FastForwardBy(base::Milliseconds(50));
   web_view->MainFrameWidget()->HandleInputEvent(
       WebCoalescedInputEvent(key_event1, ui::LatencyInfo()));
 
@@ -5554,7 +5554,7 @@
                               WebInputEvent::GetStaticTimeStampForTests());
   key_event2.dom_key = ui::DomKey::FromCharacter(' ');
   key_event2.windows_key_code = VKEY_SPACE;
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(60));
+  test_task_runner_->FastForwardBy(base::Milliseconds(60));
   key_event2.SetTimeStamp(test_task_runner_->NowTicks());
   web_view->MainFrameWidget()->HandleInputEvent(
       WebCoalescedInputEvent(key_event2, ui::LatencyInfo()));
@@ -5579,7 +5579,7 @@
   Document* document = main_frame->GetDocument();
   ASSERT_NE(nullptr, document);
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(70));
+  test_task_runner_->FastForwardBy(base::Milliseconds(70));
 
   InteractiveDetector* interactive_detector =
       GetTestInteractiveDetector(*document);
@@ -5592,7 +5592,7 @@
   key_event1.dom_key = ui::DomKey::FromCharacter(' ');
   key_event1.windows_key_code = VKEY_SPACE;
   key_event1.SetTimeStamp(test_task_runner_->NowTicks());
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(50));
+  test_task_runner_->FastForwardBy(base::Milliseconds(50));
   web_view->MainFrameWidget()->HandleInputEvent(
       WebCoalescedInputEvent(key_event1, ui::LatencyInfo()));
 
@@ -5604,7 +5604,7 @@
   key_event2.dom_key = ui::DomKey::FromCharacter(' ');
   key_event2.windows_key_code = VKEY_SPACE;
   key_event2.SetTimeStamp(longest_input_timestamp);
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  test_task_runner_->FastForwardBy(base::Milliseconds(100));
   web_view->MainFrameWidget()->HandleInputEvent(
       WebCoalescedInputEvent(key_event2, ui::LatencyInfo()));
 
@@ -5614,7 +5614,7 @@
   key_event3.dom_key = ui::DomKey::FromCharacter(' ');
   key_event3.windows_key_code = VKEY_SPACE;
   key_event3.SetTimeStamp(test_task_runner_->NowTicks());
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(70));
+  test_task_runner_->FastForwardBy(base::Milliseconds(70));
   web_view->MainFrameWidget()->HandleInputEvent(
       WebCoalescedInputEvent(key_event3, ui::LatencyInfo()));
 
@@ -5626,7 +5626,7 @@
 }
 
 TEST_F(WebViewTest, InputDelayReported) {
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(50));
+  test_task_runner_->FastForwardBy(base::Milliseconds(50));
 
   WebViewImpl* web_view = web_view_helper_.Initialize();
 
@@ -5641,7 +5641,7 @@
   ASSERT_NE(nullptr, document);
   GetTestInteractiveDetector(*document);
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(70));
+  test_task_runner_->FastForwardBy(base::Milliseconds(70));
 
   HistogramTester histogram_tester;
   WebKeyboardEvent key_event1(WebInputEvent::Type::kRawKeyDown,
@@ -5650,7 +5650,7 @@
   key_event1.dom_key = ui::DomKey::FromCharacter(' ');
   key_event1.windows_key_code = VKEY_SPACE;
   key_event1.SetTimeStamp(test_task_runner_->NowTicks());
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(50));
+  test_task_runner_->FastForwardBy(base::Milliseconds(50));
   web_view->MainFrameWidget()->HandleInputEvent(
       WebCoalescedInputEvent(key_event1, ui::LatencyInfo()));
 
@@ -5660,7 +5660,7 @@
   key_event2.dom_key = ui::DomKey::FromCharacter(' ');
   key_event2.windows_key_code = VKEY_SPACE;
   key_event2.SetTimeStamp(test_task_runner_->NowTicks());
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(50));
+  test_task_runner_->FastForwardBy(base::Milliseconds(50));
   web_view->MainFrameWidget()->HandleInputEvent(
       WebCoalescedInputEvent(key_event2, ui::LatencyInfo()));
 
@@ -5670,7 +5670,7 @@
   key_event3.dom_key = ui::DomKey::FromCharacter(' ');
   key_event3.windows_key_code = VKEY_SPACE;
   key_event3.SetTimeStamp(test_task_runner_->NowTicks());
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(70));
+  test_task_runner_->FastForwardBy(base::Milliseconds(70));
   web_view->MainFrameWidget()->HandleInputEvent(
       WebCoalescedInputEvent(key_event3, ui::LatencyInfo()));
 
@@ -5705,7 +5705,7 @@
   Document* document = main_frame->GetDocument();
   ASSERT_NE(nullptr, document);
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(70));
+  test_task_runner_->FastForwardBy(base::Milliseconds(70));
 
   InteractiveDetector* interactive_detector =
       GetTestInteractiveDetector(*document);
@@ -5719,7 +5719,7 @@
   key_event1.windows_key_code = VKEY_SPACE;
   base::TimeTicks key_event1_time = test_task_runner_->NowTicks();
   key_event1.SetTimeStamp(key_event1_time);
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(50));
+  test_task_runner_->FastForwardBy(base::Milliseconds(50));
   web_view->MainFrameWidget()->HandleInputEvent(
       WebCoalescedInputEvent(key_event1, ui::LatencyInfo()));
 
@@ -5729,13 +5729,13 @@
   key_event2.dom_key = ui::DomKey::FromCharacter(' ');
   key_event2.windows_key_code = VKEY_SPACE;
   key_event2.SetTimeStamp(test_task_runner_->NowTicks());
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  test_task_runner_->FastForwardBy(base::Milliseconds(100));
   web_view->SetVisibilityState(mojom::blink::PageVisibilityState::kHidden,
                                /*initial_state=*/false);
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  test_task_runner_->FastForwardBy(base::Milliseconds(100));
   web_view->SetVisibilityState(mojom::blink::PageVisibilityState::kVisible,
                                /*initial_state=*/false);
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  test_task_runner_->FastForwardBy(base::Milliseconds(100));
   // Total input delay is >300ms.
   web_view->MainFrameWidget()->HandleInputEvent(
       WebCoalescedInputEvent(key_event2, ui::LatencyInfo()));
@@ -5763,7 +5763,7 @@
   Document* document = main_frame->GetDocument();
   ASSERT_NE(nullptr, document);
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(70));
+  test_task_runner_->FastForwardBy(base::Milliseconds(70));
 
   InteractiveDetector* interactive_detector =
       GetTestInteractiveDetector(*document);
@@ -5774,7 +5774,7 @@
   key_event.dom_key = ui::DomKey::FromCharacter(' ');
   key_event.windows_key_code = VKEY_SPACE;
   key_event.SetTimeStamp(test_task_runner_->NowTicks());
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  test_task_runner_->FastForwardBy(base::Milliseconds(100));
   web_view->SetVisibilityState(mojom::blink::PageVisibilityState::kVisible,
                                /*initial_state=*/false);
   web_view->MainFrameWidget()->HandleInputEvent(
@@ -5797,7 +5797,7 @@
   Document* document = main_frame->GetDocument();
   ASSERT_NE(nullptr, document);
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(70));
+  test_task_runner_->FastForwardBy(base::Milliseconds(70));
 
   InteractiveDetector* interactive_detector =
       GetTestInteractiveDetector(*document);
@@ -5806,10 +5806,10 @@
 
   web_view->SetVisibilityState(mojom::blink::PageVisibilityState::kHidden,
                                /*initial_state=*/false);
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  test_task_runner_->FastForwardBy(base::Milliseconds(100));
   web_view->SetVisibilityState(mojom::blink::PageVisibilityState::kVisible,
                                /*initial_state=*/false);
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  test_task_runner_->FastForwardBy(base::Milliseconds(1));
 
   WebKeyboardEvent key_event(WebInputEvent::Type::kRawKeyDown,
                              WebInputEvent::kNoModifiers,
@@ -5818,7 +5818,7 @@
   key_event.windows_key_code = VKEY_SPACE;
   base::TimeTicks key_event_time = test_task_runner_->NowTicks();
   key_event.SetTimeStamp(key_event_time);
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(50));
+  test_task_runner_->FastForwardBy(base::Milliseconds(50));
   web_view->MainFrameWidget()->HandleInputEvent(
       WebCoalescedInputEvent(key_event, ui::LatencyInfo()));
 
@@ -5849,7 +5849,7 @@
   ASSERT_NE(nullptr, document);
 
   base::TimeTicks start_time = test_task_runner_->NowTicks();
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(70));
+  test_task_runner_->FastForwardBy(base::Milliseconds(70));
 
   InteractiveDetector* interactive_detector =
       GetTestInteractiveDetector(*document);
@@ -5861,7 +5861,7 @@
   // Set this to the left button, needed for testing to behave properly.
   pointer_down.SetModifiers(WebInputEvent::kLeftButtonDown);
   pointer_down.button = WebPointerProperties::Button::kLeft;
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(50));
+  test_task_runner_->FastForwardBy(base::Milliseconds(50));
   web_view->MainFrameWidget()->HandleInputEvent(
       WebCoalescedInputEvent(pointer_down, ui::LatencyInfo()));
 
@@ -5873,7 +5873,7 @@
   WebPointerEvent pointer_up(
       WebInputEvent::Type::kPointerUp,
       WebPointerProperties(1, WebPointerProperties::PointerType::kTouch), 5, 5);
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(60));
+  test_task_runner_->FastForwardBy(base::Milliseconds(60));
   pointer_up.SetTimeStamp(test_task_runner_->NowTicks());
   web_view->MainFrameWidget()->HandleInputEvent(
       WebCoalescedInputEvent(pointer_up, ui::LatencyInfo()));
@@ -5911,9 +5911,9 @@
 // Check that the input delay is correctly reported to the document.
 TEST_F(WebViewTest, FirstInputDelayExcludesProcessingTime) {
   // Page load timing logic depends on the time not being zero.
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(1));
-  MockClockAdvancingWebFrameClient frame_client(
-      test_task_runner_, base::TimeDelta::FromMilliseconds(6000));
+  test_task_runner_->FastForwardBy(base::Milliseconds(1));
+  MockClockAdvancingWebFrameClient frame_client(test_task_runner_,
+                                                base::Milliseconds(6000));
   WebViewImpl* web_view = web_view_helper_.Initialize(&frame_client);
   WebURL base_url = url_test_helpers::ToKURL("http://example.com/");
   frame_test_helpers::LoadHTMLString(web_view->MainFrameImpl(),
@@ -5942,7 +5942,7 @@
   key_event.windows_key_code = VKEY_SPACE;
   key_event.SetTimeStamp(test_task_runner_->NowTicks());
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(5000));
+  test_task_runner_->FastForwardBy(base::Milliseconds(5000));
 
   web_view->MainFrameWidget()->HandleInputEvent(
       WebCoalescedInputEvent(key_event, ui::LatencyInfo()));
@@ -5958,9 +5958,9 @@
 // Check that the longest input delay is correctly reported to the document.
 TEST_F(WebViewTest, LongestInputDelayExcludesProcessingTime) {
   // Page load timing logic depends on the time not being zero.
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(1));
-  MockClockAdvancingWebFrameClient frame_client(
-      test_task_runner_, base::TimeDelta::FromMilliseconds(6000));
+  test_task_runner_->FastForwardBy(base::Milliseconds(1));
+  MockClockAdvancingWebFrameClient frame_client(test_task_runner_,
+                                                base::Milliseconds(6000));
   WebViewImpl* web_view = web_view_helper_.Initialize(&frame_client);
   WebURL base_url = url_test_helpers::ToKURL("http://example.com/");
   frame_test_helpers::LoadHTMLString(web_view->MainFrameImpl(),
@@ -5988,7 +5988,7 @@
   key_event.windows_key_code = VKEY_SPACE;
   key_event.SetTimeStamp(test_task_runner_->NowTicks());
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(5000));
+  test_task_runner_->FastForwardBy(base::Milliseconds(5000));
 
   web_view->MainFrameWidget()->HandleInputEvent(
       WebCoalescedInputEvent(key_event, ui::LatencyInfo()));
diff --git a/third_party/blink/renderer/core/fileapi/file.cc b/third_party/blink/renderer/core/fileapi/file.cc
index 7603f3d..844028d 100644
--- a/third_party/blink/renderer/core/fileapi/file.cc
+++ b/third_party/blink/renderer/core/fileapi/file.cc
@@ -136,8 +136,8 @@
     // We don't use base::Time::FromJsTime(double) here because
     // options->lastModified() is a 64-bit integer, and casting it to
     // double is lossy.
-    last_modified = base::Time::UnixEpoch() +
-                    base::TimeDelta::FromMilliseconds(options->lastModified());
+    last_modified =
+        base::Time::UnixEpoch() + base::Milliseconds(options->lastModified());
   } else {
     last_modified = base::Time::Now();
   }
diff --git a/third_party/blink/renderer/core/fileapi/file_reader.cc b/third_party/blink/renderer/core/fileapi/file_reader.cc
index cb0c894..ed351868 100644
--- a/third_party/blink/renderer/core/fileapi/file_reader.cc
+++ b/third_party/blink/renderer/core/fileapi/file_reader.cc
@@ -67,7 +67,7 @@
 // requests (the value is arbitrarily chosen).
 static const size_t kMaxOutstandingRequestsPerThread = 100;
 static const base::TimeDelta kProgressNotificationInterval =
-    base::TimeDelta::FromMilliseconds(50);
+    base::Milliseconds(50);
 
 class FileReader::ThrottlingController final
     : public GarbageCollected<FileReader::ThrottlingController>,
diff --git a/third_party/blink/renderer/core/frame/dom_timer.cc b/third_party/blink/renderer/core/frame/dom_timer.cc
index 5a62264..3ad8dbfe 100644
--- a/third_party/blink/renderer/core/frame/dom_timer.cc
+++ b/third_party/blink/renderer/core/frame/dom_timer.cc
@@ -45,8 +45,7 @@
 // that a timeout less than 4ms is increased to 4ms when the nesting level is
 // greater than 5.
 constexpr int kMaxTimerNestingLevel = 5;
-constexpr base::TimeDelta kMinimumInterval =
-    base::TimeDelta::FromMilliseconds(4);
+constexpr base::TimeDelta kMinimumInterval = base::Milliseconds(4);
 
 }  // namespace
 
@@ -108,7 +107,7 @@
   MoveToNewTaskRunner(context->GetTaskRunner(task_type));
 
   // Clamping up to 1ms for historical reasons crbug.com/402694.
-  timeout = std::max(timeout, base::TimeDelta::FromMilliseconds(1));
+  timeout = std::max(timeout, base::Milliseconds(1));
 
   if (single_shot)
     StartOneShot(timeout, FROM_HERE);
diff --git a/third_party/blink/renderer/core/frame/frame_view.cc b/third_party/blink/renderer/core/frame/frame_view.cc
index 50c5af8..eb2ca57 100644
--- a/third_party/blink/renderer/core/frame/frame_view.cc
+++ b/third_party/blink/renderer/core/frame/frame_view.cc
@@ -276,8 +276,7 @@
 bool FrameView::RectInParentIsStable(
     const base::TimeTicks& event_timestamp) const {
   if (event_timestamp - rect_in_parent_stable_since_ <
-      base::TimeDelta::FromMilliseconds(
-          mojom::blink::kMinScreenRectStableTimeMs)) {
+      base::Milliseconds(mojom::blink::kMinScreenRectStableTimeMs)) {
     return false;
   }
   LocalFrameView* parent = ParentFrameView();
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
index b19c1d9..f759a3ee 100644
--- a/third_party/blink/renderer/core/frame/local_frame.cc
+++ b/third_party/blink/renderer/core/frame/local_frame.cc
@@ -3042,8 +3042,7 @@
   if (num_burst_download_requests_ == 0) {
     burst_download_start_time_ = now;
   } else if (num_burst_download_requests_ >= kBurstDownloadLimit) {
-    static constexpr auto kBurstDownloadLimitResetInterval =
-        base::TimeDelta::FromSeconds(1);
+    static constexpr auto kBurstDownloadLimitResetInterval = base::Seconds(1);
     if (now - burst_download_start_time_ > kBurstDownloadLimitResetInterval) {
       num_burst_download_requests_ = 1;
       burst_download_start_time_ = now;
diff --git a/third_party/blink/renderer/core/frame/local_frame_ukm_aggregator.cc b/third_party/blink/renderer/core/frame/local_frame_ukm_aggregator.cc
index 6d6891eb..82b0f3c8 100644
--- a/third_party/blink/renderer/core/frame/local_frame_ukm_aggregator.cc
+++ b/third_party/blink/renderer/core/frame/local_frame_ukm_aggregator.cc
@@ -196,34 +196,34 @@
   // metrics and would result in double counting.
   std::unique_ptr<cc::BeginMainFrameMetrics> metrics_data =
       std::make_unique<cc::BeginMainFrameMetrics>();
-  metrics_data->handle_input_events = base::TimeDelta::FromMicroseconds(
+  metrics_data->handle_input_events = base::Microseconds(
       absolute_metric_records_[static_cast<unsigned>(
                                    MetricId::kHandleInputEvents)]
           .main_frame_count);
-  metrics_data->animate = base::TimeDelta::FromMicroseconds(
+  metrics_data->animate = base::Microseconds(
       absolute_metric_records_[static_cast<unsigned>(MetricId::kAnimate)]
           .main_frame_count);
-  metrics_data->style_update = base::TimeDelta::FromMicroseconds(
+  metrics_data->style_update = base::Microseconds(
       absolute_metric_records_[static_cast<unsigned>(MetricId::kStyle)]
           .main_frame_count);
-  metrics_data->layout_update = base::TimeDelta::FromMicroseconds(
+  metrics_data->layout_update = base::Microseconds(
       absolute_metric_records_[static_cast<unsigned>(MetricId::kLayout)]
           .main_frame_count);
-  metrics_data->prepaint = base::TimeDelta::FromMicroseconds(
+  metrics_data->prepaint = base::Microseconds(
       absolute_metric_records_[static_cast<unsigned>(MetricId::kPrePaint)]
           .main_frame_count);
-  metrics_data->compositing_assignments = base::TimeDelta::FromMicroseconds(
+  metrics_data->compositing_assignments = base::Microseconds(
       absolute_metric_records_[static_cast<unsigned>(
                                    MetricId::kCompositingAssignments)]
           .main_frame_count);
-  metrics_data->compositing_inputs = base::TimeDelta::FromMicroseconds(
+  metrics_data->compositing_inputs = base::Microseconds(
       absolute_metric_records_[static_cast<unsigned>(
                                    MetricId::kCompositingInputs)]
           .main_frame_count);
-  metrics_data->paint = base::TimeDelta::FromMicroseconds(
+  metrics_data->paint = base::Microseconds(
       absolute_metric_records_[static_cast<unsigned>(MetricId::kPaint)]
           .main_frame_count);
-  metrics_data->composite_commit = base::TimeDelta::FromMicroseconds(
+  metrics_data->composite_commit = base::Microseconds(
       absolute_metric_records_[static_cast<unsigned>(
                                    MetricId::kCompositingCommit)]
           .main_frame_count);
diff --git a/third_party/blink/renderer/core/frame/local_frame_ukm_aggregator_test.cc b/third_party/blink/renderer/core/frame/local_frame_ukm_aggregator_test.cc
index 6851f4c..adf9e82 100644
--- a/third_party/blink/renderer/core/frame/local_frame_ukm_aggregator_test.cc
+++ b/third_party/blink/renderer/core/frame/local_frame_ukm_aggregator_test.cc
@@ -160,7 +160,7 @@
       if (mark_fcp && i == static_cast<int>(LocalFrameUkmAggregator::kPaint))
         aggregator().DidReachFirstContentfulPaint(true);
       test_task_runner_->FastForwardBy(
-          base::TimeDelta::FromMilliseconds(millisecond_per_step));
+          base::Milliseconds(millisecond_per_step));
     }
     aggregator().RecordEndOfFrameMetrics(start_time, Now(), trackers);
   }
@@ -172,7 +172,7 @@
     for (int i = 0; i < LocalFrameUkmAggregator::kForcedStyleAndLayout; ++i) {
       auto timer = aggregator().GetScopedTimer(i);
       test_task_runner_->FastForwardBy(
-          base::TimeDelta::FromMilliseconds(millisecond_per_step));
+          base::Milliseconds(millisecond_per_step));
     }
   }
 
@@ -181,7 +181,7 @@
       LocalFrameUkmAggregator::MetricId target_metric,
       unsigned expected_num_entries) {
     base::TimeTicks start_time = Now();
-    test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(10));
+    test_task_runner_->FastForwardBy(base::Milliseconds(10));
     base::TimeTicks end_time = Now();
 
     aggregator().BeginMainFrame();
@@ -238,7 +238,7 @@
     return;
 
   // There is no BeginMainFrame, so no metrics get recorded.
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(10));
+  test_task_runner_->FastForwardBy(base::Seconds(10));
   ResetAggregator();
 
   EXPECT_EQ(recorder().sources_count(), 0u);
@@ -290,7 +290,7 @@
   // for the initial frame, regardless of the initial interval.
   unsigned millisecond_for_step = 1;
   base::TimeTicks start_time =
-      Now() + base::TimeDelta::FromMilliseconds(millisecond_for_step) *
+      Now() + base::Milliseconds(millisecond_for_step) *
                   LocalFrameUkmAggregator::kForcedStyleAndLayout;
   SimulatePreFrame(millisecond_for_step);
   SimulateFrame(start_time, millisecond_for_step, 12);
@@ -509,8 +509,7 @@
   for (int i = 0; i < LocalFrameUkmAggregator::kForcedStyleAndLayout; ++i) {
     auto timer = aggregator().GetScopedTimer(
         i % LocalFrameUkmAggregator::kForcedStyleAndLayout);
-    test_task_runner_->FastForwardBy(
-        base::TimeDelta::FromMilliseconds(millisecond_for_step));
+    test_task_runner_->FastForwardBy(base::Milliseconds(millisecond_for_step));
   }
 
   std::unique_ptr<cc::BeginMainFrameMetrics> metrics_data =
@@ -559,17 +558,13 @@
   {
     LocalFrameUkmAggregator::IterativeTimer timer(aggregator());
     timer.StartInterval(LocalFrameUkmAggregator::kStyle);
-    test_task_runner_->AdvanceMockTickClock(
-        base::TimeDelta::FromMicroseconds(5));
+    test_task_runner_->AdvanceMockTickClock(base::Microseconds(5));
     timer.StartInterval(LocalFrameUkmAggregator::kLayout);
-    test_task_runner_->AdvanceMockTickClock(
-        base::TimeDelta::FromMicroseconds(7));
+    test_task_runner_->AdvanceMockTickClock(base::Microseconds(7));
     timer.StartInterval(LocalFrameUkmAggregator::kLayout);
-    test_task_runner_->AdvanceMockTickClock(
-        base::TimeDelta::FromMicroseconds(11));
+    test_task_runner_->AdvanceMockTickClock(base::Microseconds(11));
     timer.StartInterval(LocalFrameUkmAggregator::kPrePaint);
-    test_task_runner_->AdvanceMockTickClock(
-        base::TimeDelta::FromMicroseconds(13));
+    test_task_runner_->AdvanceMockTickClock(base::Microseconds(13));
   }
   EXPECT_EQ(GetIntervalCount(LocalFrameUkmAggregator::kStyle), 5);
   EXPECT_EQ(GetIntervalCount(LocalFrameUkmAggregator::kLayout), 18);
diff --git a/third_party/blink/renderer/core/frame/local_frame_view.cc b/third_party/blink/renderer/core/frame/local_frame_view.cc
index 0abec14..88204c717 100644
--- a/third_party/blink/renderer/core/frame/local_frame_view.cc
+++ b/third_party/blink/renderer/core/frame/local_frame_view.cc
@@ -4695,7 +4695,7 @@
   if (WillDoPaintHoldingForFCP()) {
     have_deferred_commits_ = true;
     chrome_client.StartDeferringCommits(
-        GetFrame(), base::TimeDelta::FromMilliseconds(kCommitDelayDefaultInMs),
+        GetFrame(), base::Milliseconds(kCommitDelayDefaultInMs),
         cc::PaintHoldingReason::kFirstContentfulPaint);
   }
 
@@ -5034,7 +5034,7 @@
   auto run_benchmark = [&](PaintBenchmarkMode mode) -> double {
     constexpr int kTimeCheckInterval = 1;
     constexpr int kWarmupRuns = 0;
-    constexpr base::TimeDelta kTimeLimit = base::TimeDelta::FromMilliseconds(1);
+    constexpr base::TimeDelta kTimeLimit = base::Milliseconds(1);
 
     base::TimeDelta min_time = base::TimeDelta::Max();
     for (int i = 0; i < repeat_count; i++) {
diff --git a/third_party/blink/renderer/core/frame/navigation_rate_limiter.cc b/third_party/blink/renderer/core/frame/navigation_rate_limiter.cc
index 6a3d8f7..b858e63 100644
--- a/third_party/blink/renderer/core/frame/navigation_rate_limiter.cc
+++ b/third_party/blink/renderer/core/frame/navigation_rate_limiter.cc
@@ -31,7 +31,7 @@
   // can increase this threshold somewhat.
   static constexpr int kStateUpdateLimit = 200;
   static constexpr base::TimeDelta kStateUpdateLimitResetInterval =
-      base::TimeDelta::FromSeconds(10);
+      base::Seconds(10);
 
   if (++count_ <= kStateUpdateLimit)
     return true;
diff --git a/third_party/blink/renderer/core/frame/overlay_interstitial_ad_detector.cc b/third_party/blink/renderer/core/frame/overlay_interstitial_ad_detector.cc
index 4d7d765..cc9d0e6 100644
--- a/third_party/blink/renderer/core/frame/overlay_interstitial_ad_detector.cc
+++ b/third_party/blink/renderer/core/frame/overlay_interstitial_ad_detector.cc
@@ -20,7 +20,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kFireInterval = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kFireInterval = base::Seconds(1);
 constexpr double kLargeAdSizeToViewportSizeThreshold = 0.1;
 
 // An overlay interstitial element shouldn't move with scrolling and should be
diff --git a/third_party/blink/renderer/core/frame/performance_monitor_test.cc b/third_party/blink/renderer/core/frame/performance_monitor_test.cc
index 28ed6db..79a1fc8 100644
--- a/third_party/blink/renderer/core/frame/performance_monitor_test.cc
+++ b/third_party/blink/renderer/core/frame/performance_monitor_test.cc
@@ -67,7 +67,7 @@
   int NumUniqueFrameContextsSeen();
 
   static base::TimeTicks SecondsToTimeTicks(double seconds) {
-    return base::TimeTicks() + base::TimeDelta::FromSecondsD(seconds);
+    return base::TimeTicks() + base::Seconds(seconds);
   }
 
   Persistent<PerformanceMonitor> monitor_;
diff --git a/third_party/blink/renderer/core/frame/sticky_ad_detector.cc b/third_party/blink/renderer/core/frame/sticky_ad_detector.cc
index ae803ab..82353b1 100644
--- a/third_party/blink/renderer/core/frame/sticky_ad_detector.cc
+++ b/third_party/blink/renderer/core/frame/sticky_ad_detector.cc
@@ -22,7 +22,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kFireInterval = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kFireInterval = base::Seconds(1);
 constexpr double kLargeAdSizeToViewportSizeThreshold = 0.3;
 
 // An sticky element should have a non-default position w.r.t. the viewport. The
diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_test.cc b/third_party/blink/renderer/core/frame/web_frame_widget_test.cc
index 7e16a2c..a752b0d1 100644
--- a/third_party/blink/renderer/core/frame/web_frame_widget_test.cc
+++ b/third_party/blink/renderer/core/frame/web_frame_widget_test.cc
@@ -521,9 +521,8 @@
     // Present and wait for it to complete.
     viz::FrameTimingDetails timing_details;
     if (!swap_to_presentation.is_zero()) {
-      timing_details.presentation_feedback =
-          gfx::PresentationFeedback(swap_time + swap_to_presentation,
-                                    base::TimeDelta::FromMilliseconds(16), 0);
+      timing_details.presentation_feedback = gfx::PresentationFeedback(
+          swap_time + swap_to_presentation, base::Milliseconds(16), 0);
     }
     auto* last_frame_sink = GetWebFrameWidget().LastCreatedFrameSink();
     last_frame_sink->NotifyDidPresentCompositorFrame(1, timing_details);
@@ -534,7 +533,7 @@
 TEST_F(NotifySwapTimesWebFrameWidgetTest, PresentationTimestampValid) {
   base::HistogramTester histograms;
 
-  CompositeAndWaitForPresentation(base::TimeDelta::FromMilliseconds(2));
+  CompositeAndWaitForPresentation(base::Milliseconds(2));
 
   EXPECT_THAT(histograms.GetAllSamples(
                   "PageLoad.Internal.Renderer.PresentationTime.Valid"),
@@ -563,7 +562,7 @@
        PresentationTimestampEarlierThanSwaptime) {
   base::HistogramTester histograms;
 
-  CompositeAndWaitForPresentation(base::TimeDelta::FromMilliseconds(-2));
+  CompositeAndWaitForPresentation(base::Milliseconds(-2));
 
   EXPECT_THAT(histograms.GetAllSamples(
                   "PageLoad.Internal.Renderer.PresentationTime.Valid"),
@@ -579,10 +578,8 @@
 TEST_F(NotifySwapTimesWebFrameWidgetTest, NotifyOnSuccessfulPresentation) {
   base::HistogramTester histograms;
 
-  constexpr base::TimeDelta swap_to_failed =
-      base::TimeDelta::FromMicroseconds(2);
-  constexpr base::TimeDelta failed_to_successful =
-      base::TimeDelta::FromMicroseconds(3);
+  constexpr base::TimeDelta swap_to_failed = base::Microseconds(2);
+  constexpr base::TimeDelta failed_to_successful = base::Microseconds(3);
 
   base::RunLoop swap_run_loop;
   base::RunLoop presentation_run_loop;
@@ -629,7 +626,7 @@
   DCHECK(!failed_presentation_time.is_null());
   viz::FrameTimingDetails failed_timing_details;
   failed_timing_details.presentation_feedback = gfx::PresentationFeedback(
-      failed_presentation_time, base::TimeDelta::FromMilliseconds(16),
+      failed_presentation_time, base::Milliseconds(16),
       gfx::PresentationFeedback::kFailure);
   GetWebFrameWidget().LastCreatedFrameSink()->NotifyDidPresentCompositorFrame(
       1, failed_timing_details);
@@ -638,7 +635,7 @@
   DCHECK(!successful_presentation_time.is_null());
   viz::FrameTimingDetails successful_timing_details;
   successful_timing_details.presentation_feedback = gfx::PresentationFeedback(
-      successful_presentation_time, base::TimeDelta::FromMilliseconds(16), 0);
+      successful_presentation_time, base::Milliseconds(16), 0);
   GetWebFrameWidget().LastCreatedFrameSink()->NotifyDidPresentCompositorFrame(
       2, successful_timing_details);
 
diff --git a/third_party/blink/renderer/core/frame/window_or_worker_global_scope.cc b/third_party/blink/renderer/core/frame/window_or_worker_global_scope.cc
index b02a365..42d4516 100644
--- a/third_party/blink/renderer/core/frame/window_or_worker_global_scope.cc
+++ b/third_party/blink/renderer/core/frame/window_or_worker_global_scope.cc
@@ -152,7 +152,7 @@
   auto* action = MakeGarbageCollected<ScheduledAction>(
       script_state, execution_context, handler, arguments);
   return DOMTimer::Install(execution_context, action,
-                           base::TimeDelta::FromMilliseconds(timeout), true);
+                           base::Milliseconds(timeout), true);
 }
 
 int WindowOrWorkerGlobalScope::setTimeout(ScriptState* script_state,
@@ -170,7 +170,7 @@
   auto* action = MakeGarbageCollected<ScheduledAction>(
       script_state, execution_context, handler);
   return DOMTimer::Install(execution_context, action,
-                           base::TimeDelta::FromMilliseconds(timeout), true);
+                           base::Milliseconds(timeout), true);
 }
 
 int WindowOrWorkerGlobalScope::setInterval(
@@ -185,7 +185,7 @@
   auto* action = MakeGarbageCollected<ScheduledAction>(
       script_state, execution_context, handler, arguments);
   return DOMTimer::Install(execution_context, action,
-                           base::TimeDelta::FromMilliseconds(timeout), false);
+                           base::Milliseconds(timeout), false);
 }
 
 int WindowOrWorkerGlobalScope::setInterval(ScriptState* script_state,
@@ -203,7 +203,7 @@
   auto* action = MakeGarbageCollected<ScheduledAction>(
       script_state, execution_context, handler);
   return DOMTimer::Install(execution_context, action,
-                           base::TimeDelta::FromMilliseconds(timeout), false);
+                           base::Milliseconds(timeout), false);
 }
 
 void WindowOrWorkerGlobalScope::clearTimeout(EventTarget& event_target,
diff --git a/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc b/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc
index b1f21c9..e15d3a23 100644
--- a/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc
+++ b/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc
@@ -38,9 +38,9 @@
 
 // small slack period between deadline and current time for safety
 constexpr base::TimeDelta kCreateBlobSlackBeforeDeadline =
-    base::TimeDelta::FromMilliseconds(1);
+    base::Milliseconds(1);
 constexpr base::TimeDelta kEncodeRowSlackBeforeDeadline =
-    base::TimeDelta::FromMicroseconds(100);
+    base::Microseconds(100);
 
 /* The value is based on user statistics on Nov 2017. */
 #if (defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_MAC) || \
@@ -74,7 +74,7 @@
   int row_encode_time_us = 1000 * (kIdleTaskCompleteTimeoutDelayMs / 4000.0) *
                            (image_width / 4000.0);
   base::TimeDelta row_encode_time_delta =
-      base::TimeDelta::FromMicroseconds(row_encode_time_us);
+      base::Microseconds(row_encode_time_us);
   return base::TimeTicks::Now() >=
          deadline - row_encode_time_delta - kEncodeRowSlackBeforeDeadline;
 }
@@ -638,7 +638,7 @@
     double delay_ms) {
   context_->GetTaskRunner(TaskType::kCanvasBlobSerialization)
       ->PostDelayedTask(location, std::move(task),
-                        base::TimeDelta::FromMillisecondsD(delay_ms));
+                        base::Milliseconds(delay_ms));
 }
 
 void CanvasAsyncBlobCreator::Trace(Visitor* visitor) const {
diff --git a/third_party/blink/renderer/core/html/conversion_measurement_parsing.cc b/third_party/blink/renderer/core/html/conversion_measurement_parsing.cc
index ed158acb..94a7ee8 100644
--- a/third_party/blink/renderer/core/html/conversion_measurement_parsing.cc
+++ b/third_party/blink/renderer/core/html/conversion_measurement_parsing.cc
@@ -153,7 +153,7 @@
 
   absl::optional<base::TimeDelta> expiry;
   if (impression_expiry_milliseconds)
-    expiry = base::TimeDelta::FromMilliseconds(*impression_expiry_milliseconds);
+    expiry = base::Milliseconds(*impression_expiry_milliseconds);
 
   UseCounter::Count(execution_context,
                     mojom::blink::WebFeature::kConversionAPIAll);
diff --git a/third_party/blink/renderer/core/html/forms/search_input_type.cc b/third_party/blink/renderer/core/html/forms/search_input_type.cc
index 914548d..d97eebb 100644
--- a/third_party/blink/renderer/core/html/forms/search_input_type.cc
+++ b/third_party/blink/renderer/core/html/forms/search_input_type.cc
@@ -110,7 +110,7 @@
   // After typing the first key, we wait 500ms.
   // After the second key, 400ms, then 300, then 200 from then on.
   unsigned step = std::min(length, 4u) - 1;
-  base::TimeDelta timeout = base::TimeDelta::FromMilliseconds(500 - 100 * step);
+  base::TimeDelta timeout = base::Milliseconds(500 - 100 * step);
   search_event_timer_.StartOneShot(timeout, FROM_HERE);
 }
 
diff --git a/third_party/blink/renderer/core/html/forms/type_ahead.cc b/third_party/blink/renderer/core/html/forms/type_ahead.cc
index 7f09009..1015f20 100644
--- a/third_party/blink/renderer/core/html/forms/type_ahead.cc
+++ b/third_party/blink/renderer/core/html/forms/type_ahead.cc
@@ -38,7 +38,7 @@
 TypeAhead::TypeAhead(TypeAheadDataSource* data_source)
     : data_source_(data_source), repeating_char_(0) {}
 
-constexpr base::TimeDelta kTypeAheadTimeout = base::TimeDelta::FromSecondsD(1);
+constexpr base::TimeDelta kTypeAheadTimeout = base::Seconds(1);
 
 static String StripLeadingWhiteSpace(const String& string) {
   unsigned length = string.length();
diff --git a/third_party/blink/renderer/core/html/forms/type_ahead_test.cc b/third_party/blink/renderer/core/html/forms/type_ahead_test.cc
index 11f1280..7589c4e 100644
--- a/third_party/blink/renderer/core/html/forms/type_ahead_test.cc
+++ b/third_party/blink/renderer/core/html/forms/type_ahead_test.cc
@@ -47,9 +47,8 @@
 };
 
 TEST_F(TypeAheadTest, HasActiveSessionAtStart) {
-  WebKeyboardEvent web_event(
-      WebInputEvent::Type::kChar, 0,
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(500));
+  WebKeyboardEvent web_event(WebInputEvent::Type::kChar, 0,
+                             base::TimeTicks() + base::Milliseconds(500));
   web_event.text[0] = ' ';
   auto& event = *KeyboardEvent::Create(web_event, nullptr);
 
@@ -58,9 +57,8 @@
 
 TEST_F(TypeAheadTest, HasActiveSessionAfterHandleEvent) {
   {
-    WebKeyboardEvent web_event(
-        WebInputEvent::Type::kChar, 0,
-        base::TimeTicks() + base::TimeDelta::FromMilliseconds(500));
+    WebKeyboardEvent web_event(WebInputEvent::Type::kChar, 0,
+                               base::TimeTicks() + base::Milliseconds(500));
     web_event.text[0] = ' ';
     auto& event = *KeyboardEvent::Create(web_event, nullptr);
     type_ahead_.HandleEvent(
@@ -72,9 +70,8 @@
 
   {
     // Should still be active after 1 second elapses.
-    WebKeyboardEvent web_event(
-        WebInputEvent::Type::kChar, 0,
-        base::TimeTicks() + base::TimeDelta::FromMilliseconds(1500));
+    WebKeyboardEvent web_event(WebInputEvent::Type::kChar, 0,
+                               base::TimeTicks() + base::Milliseconds(1500));
     web_event.text[0] = ' ';
     auto& event = *KeyboardEvent::Create(web_event, nullptr);
     EXPECT_TRUE(type_ahead_.HasActiveSession(event));
@@ -82,9 +79,8 @@
 
   {
     // But more than 1 second should be considered inactive.
-    WebKeyboardEvent web_event(
-        WebInputEvent::Type::kChar, 0,
-        base::TimeTicks() + base::TimeDelta::FromMilliseconds(1501));
+    WebKeyboardEvent web_event(WebInputEvent::Type::kChar, 0,
+                               base::TimeTicks() + base::Milliseconds(1501));
     web_event.text[0] = ' ';
     auto& event = *KeyboardEvent::Create(web_event, nullptr);
     EXPECT_FALSE(type_ahead_.HasActiveSession(event));
@@ -92,9 +88,8 @@
 }
 
 TEST_F(TypeAheadTest, HasActiveSessionAfterResetSession) {
-  WebKeyboardEvent web_event(
-      WebInputEvent::Type::kChar, 0,
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(500));
+  WebKeyboardEvent web_event(WebInputEvent::Type::kChar, 0,
+                             base::TimeTicks() + base::Milliseconds(500));
   web_event.text[0] = ' ';
   auto& event = *KeyboardEvent::Create(web_event, nullptr);
   type_ahead_.HandleEvent(event,
diff --git a/third_party/blink/renderer/core/html/media/autoplay_uma_helper.cc b/third_party/blink/renderer/core/html/media/autoplay_uma_helper.cc
index 9f4e7f14..1113c33d 100644
--- a/third_party/blink/renderer/core/html/media/autoplay_uma_helper.cc
+++ b/third_party/blink/renderer/core/html/media/autoplay_uma_helper.cc
@@ -24,8 +24,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kMaxOffscreenDurationUma =
-    base::TimeDelta::FromHours(1);
+constexpr base::TimeDelta kMaxOffscreenDurationUma = base::Hours(1);
 constexpr int32_t kOffscreenDurationUmaBucketCount = 50;
 
 // Returns a int64_t with the following structure:
@@ -265,9 +264,8 @@
 
   UMA_HISTOGRAM_CUSTOM_TIMES(
       "Media.Video.Autoplay.Muted.PlayMethod.OffscreenDuration",
-      muted_video_autoplay_offscreen_duration_,
-      base::TimeDelta::FromMilliseconds(1), kMaxOffscreenDurationUma,
-      kOffscreenDurationUmaBucketCount);
+      muted_video_autoplay_offscreen_duration_, base::Milliseconds(1),
+      kMaxOffscreenDurationUma, kOffscreenDurationUmaBucketCount);
 
   muted_video_offscreen_duration_intersection_observer_->disconnect();
   muted_video_offscreen_duration_intersection_observer_ = nullptr;
diff --git a/third_party/blink/renderer/core/html/media/html_media_element.cc b/third_party/blink/renderer/core/html/media/html_media_element.cc
index 405a9466..6d13312 100644
--- a/third_party/blink/renderer/core/html/media/html_media_element.cc
+++ b/third_party/blink/renderer/core/html/media/html_media_element.cc
@@ -213,8 +213,7 @@
   UMA_HISTOGRAM_ENUMERATION("Media.ProgressEventTimerState", state);
 }
 
-static const base::TimeDelta kStalledNotificationInterval =
-    base::TimeDelta::FromSeconds(3);
+static const base::TimeDelta kStalledNotificationInterval = base::Seconds(3);
 
 void ReportContentTypeResultToUMA(String content_type,
                                   MIMETypeRegistry::SupportsType result) {
@@ -1661,8 +1660,7 @@
 
   previous_progress_time_ = base::ElapsedTimer();
   // 350ms is not magic, it is in the spec!
-  progress_event_timer_.StartRepeating(base::TimeDelta::FromMilliseconds(350),
-                                       FROM_HERE);
+  progress_event_timer_.StartRepeating(base::Milliseconds(350), FROM_HERE);
 }
 
 void HTMLMediaElement::WaitForSourceChange() {
@@ -2950,7 +2948,7 @@
 // The spec says to fire periodic timeupdate events (those sent while playing)
 // every "15 to 250ms", we choose the slowest frequency
 static const base::TimeDelta kMaxTimeupdateEventFrequency =
-    base::TimeDelta::FromMilliseconds(250);
+    base::Milliseconds(250);
 
 void HTMLMediaElement::StartPlaybackProgressTimer() {
   if (playback_progress_timer_.IsActive())
@@ -4574,8 +4572,7 @@
 void HTMLMediaElement::DidSeek() {
   // Send the seek updates to the browser process only once per second.
   if (last_seek_update_time_.is_null() ||
-      (base::TimeTicks::Now() - last_seek_update_time_ >=
-       base::TimeDelta::FromSeconds(1))) {
+      (base::TimeTicks::Now() - last_seek_update_time_ >= base::Seconds(1))) {
     last_seek_update_time_ = base::TimeTicks::Now();
     for (auto& observer : media_player_observer_remote_set_->Value())
       observer->OnSeek();
diff --git a/third_party/blink/renderer/core/html/media/html_media_element_event_listeners_test.cc b/third_party/blink/renderer/core/html/media/html_media_element_event_listeners_test.cc
index cfbe85a..8192d11 100644
--- a/third_party/blink/renderer/core/html/media/html_media_element_event_listeners_test.cc
+++ b/third_party/blink/renderer/core/html/media/html_media_element_event_listeners_test.cc
@@ -128,7 +128,7 @@
   mutable double current_time_ = 0;
   bool playing_ = false;
   absl::optional<base::TimeDelta> auto_time_increment_delta_ =
-      base::TimeDelta::FromMilliseconds(33);
+      base::Milliseconds(33);
   bool scheduled_time_increment_ = false;
   double last_seek_time_ = -1;
   const double duration_;
@@ -344,8 +344,7 @@
   SimulateReadyState(HTMLMediaElement::kHaveFutureData);
 
   // Simulate advancing playback time.
-  WebMediaPlayer()->SetAutoIncrementTimeDelta(
-      base::TimeDelta::FromMilliseconds(33));
+  WebMediaPlayer()->SetAutoIncrementTimeDelta(base::Milliseconds(33));
   Video()->Play();
 
   // While playing, timeupdate should fire every 250 ms -> 4x per second as long
@@ -398,8 +397,7 @@
   SimulateReadyState(HTMLMediaElement::kHaveFutureData);
 
   // Simulate advancing playback time to enable periodic timeupdates.
-  WebMediaPlayer()->SetAutoIncrementTimeDelta(
-      base::TimeDelta::FromMilliseconds(8));
+  WebMediaPlayer()->SetAutoIncrementTimeDelta(base::Milliseconds(8));
   Video()->Play();
 
   // Advance a full periodic timeupdate interval (250 ms) and expect a single
@@ -468,8 +466,7 @@
   SimulateReadyState(HTMLMediaElement::kHaveEnoughData);
 
   // Simulate advancing playback time to enable periodic timeupdates.
-  WebMediaPlayer()->SetAutoIncrementTimeDelta(
-      base::TimeDelta::FromMilliseconds(8));
+  WebMediaPlayer()->SetAutoIncrementTimeDelta(base::Milliseconds(8));
   Video()->Play();
 
   // Ensure the 'seeking' and 'seeked' events are fired, so we know a loop
@@ -508,8 +505,7 @@
   SimulateReadyState(HTMLMediaElement::kHaveEnoughData);
 
   // Simulate advancing playback time to enable periodic timeupdates.
-  WebMediaPlayer()->SetAutoIncrementTimeDelta(
-      base::TimeDelta::FromMilliseconds(8));
+  WebMediaPlayer()->SetAutoIncrementTimeDelta(base::Milliseconds(8));
   Video()->Play();
 
   // Ensure the 'ended' event is fired
@@ -543,8 +539,7 @@
     {57.110, 61.110, "Get up.\nEmo, it's not safe here."},
     {62.030, 63.570, "Let's go."},
 };
-constexpr base::TimeDelta kTestCueDataLength =
-    base::TimeDelta::FromSecondsD(65);
+constexpr base::TimeDelta kTestCueDataLength = base::Seconds(65);
 
 class CueEventListener final : public NativeEventListener {
  public:
@@ -602,8 +597,7 @@
 
     // Get the start time delta
     double const diff_seconds = media_element->currentTime() - cue->startTime();
-    cue_event_deltas_[cue_index].enter_time_delta =
-        base::TimeDelta::FromSecondsD(diff_seconds);
+    cue_event_deltas_[cue_index].enter_time_delta = base::Seconds(diff_seconds);
   }
 
   void OnCueExit(HTMLMediaElement* media_element, VTTCue* cue) {
@@ -614,8 +608,7 @@
     // Get the end time delta
     double const diff_seconds =
         std::fabs(media_element->currentTime() - cue->endTime());
-    cue_event_deltas_[cue_index].exit_time_delta =
-        base::TimeDelta::FromSecondsD(diff_seconds);
+    cue_event_deltas_[cue_index].exit_time_delta = base::Seconds(diff_seconds);
   }
 
   std::array<CueChangeEventTimeDelta, base::size(kTestCueData)>
@@ -650,8 +643,7 @@
   SimulateReadyState(HTMLMediaElement::kHaveFutureData);
 
   // Simulate advancing playback time to enable periodic timeupdates.
-  WebMediaPlayer()->SetAutoIncrementTimeDelta(
-      base::TimeDelta::FromMilliseconds(8));
+  WebMediaPlayer()->SetAutoIncrementTimeDelta(base::Milliseconds(8));
   Video()->Play();
 
   platform()->RunForPeriod(kTestCueDataLength);
@@ -660,8 +652,7 @@
   // Ensure all cue events fired when expected with a 20ms tolerance
   // As suggested by the spec:
   // https://html.spec.whatwg.org/multipage/media.html#playing-the-media-resource:current-playback-position-13
-  listener->ExpectAllEventsFiredWithinMargin(
-      base::TimeDelta::FromMilliseconds(20));
+  listener->ExpectAllEventsFiredWithinMargin(base::Milliseconds(20));
 }
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/html/media/media_remoting_interstitial.cc b/third_party/blink/renderer/core/html/media/media_remoting_interstitial.cc
index 920ea2e0..cc50744 100644
--- a/third_party/blink/renderer/core/html/media/media_remoting_interstitial.cc
+++ b/third_party/blink/renderer/core/html/media/media_remoting_interstitial.cc
@@ -17,10 +17,9 @@
 namespace {
 
 constexpr base::TimeDelta kStyleChangeTransitionDuration =
-    base::TimeDelta::FromMilliseconds(200);
-constexpr base::TimeDelta kHiddenAnimationDuration =
-    base::TimeDelta::FromMilliseconds(300);
-constexpr base::TimeDelta kShowToastDuration = base::TimeDelta::FromSeconds(5);
+    base::Milliseconds(200);
+constexpr base::TimeDelta kHiddenAnimationDuration = base::Milliseconds(300);
+constexpr base::TimeDelta kShowToastDuration = base::Seconds(5);
 
 }  // namespace
 
diff --git a/third_party/blink/renderer/core/html/media/picture_in_picture_interstitial.cc b/third_party/blink/renderer/core/html/media/picture_in_picture_interstitial.cc
index da2d1fe..81a6ff78 100644
--- a/third_party/blink/renderer/core/html/media/picture_in_picture_interstitial.cc
+++ b/third_party/blink/renderer/core/html/media/picture_in_picture_interstitial.cc
@@ -21,9 +21,9 @@
 namespace {
 
 constexpr base::TimeDelta kPictureInPictureStyleChangeTransitionDuration =
-    base::TimeDelta::FromMilliseconds(200);
+    base::Milliseconds(200);
 constexpr base::TimeDelta kPictureInPictureHiddenAnimationSeconds =
-    base::TimeDelta::FromMilliseconds(300);
+    base::Milliseconds(300);
 
 }  // namespace
 
diff --git a/third_party/blink/renderer/core/html/parser/html_parser_metrics.cc b/third_party/blink/renderer/core/html/parser/html_parser_metrics.cc
index 3b9073e..a8101e0 100644
--- a/third_party/blink/renderer/core/html/parser/html_parser_metrics.cc
+++ b/third_party/blink/renderer/core/html/parser/html_parser_metrics.cc
@@ -52,16 +52,13 @@
   UMA_HISTOGRAM_COUNTS_1000("Blink.HTMLParsing.ChunkCount", chunk_count_);
   UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
       "Blink.HTMLParsing.ParsingTimeMax", max_parsing_time_,
-      base::TimeDelta::FromMicroseconds(1), base::TimeDelta::FromSeconds(100),
-      1000);
-  UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES("Blink.HTMLParsing.ParsingTimeMin",
-                                          min_parsing_time_,
-                                          base::TimeDelta::FromMicroseconds(1),
-                                          base::TimeDelta::FromSeconds(1), 100);
+      base::Microseconds(1), base::Seconds(100), 1000);
+  UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
+      "Blink.HTMLParsing.ParsingTimeMin", min_parsing_time_,
+      base::Microseconds(1), base::Seconds(1), 100);
   UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
       "Blink.HTMLParsing.ParsingTimeTotal", accumulated_parsing_time_,
-      base::TimeDelta::FromMicroseconds(1), base::TimeDelta::FromSeconds(100),
-      1000);
+      base::Microseconds(1), base::Seconds(100), 1000);
   UMA_HISTOGRAM_COUNTS_1M("Blink.HTMLParsing.TokensParsedMax",
                           max_tokens_parsed_);
   UMA_HISTOGRAM_COUNTS_10000("Blink.HTMLParsing.TokensParsedMin",
@@ -75,17 +72,14 @@
   if (max_yield_interval_ != base::TimeDelta()) {
     UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
         "Blink.HTMLParsing.YieldedTimeMax", max_yield_interval_,
-        base::TimeDelta::FromMicroseconds(1), base::TimeDelta::FromSeconds(100),
-        1000);
+        base::Microseconds(1), base::Seconds(100), 1000);
     UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
         "Blink.HTMLParsing.YieldedTimeMin", min_yield_interval_,
-        base::TimeDelta::FromMicroseconds(1), base::TimeDelta::FromSeconds(10),
-        100);
+        base::Microseconds(1), base::Seconds(10), 100);
     UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
         "Blink.HTMLParsing.YieldedTimeAverage",
-        accumulated_yield_intervals_ / yield_count_,
-        base::TimeDelta::FromMicroseconds(1), base::TimeDelta::FromSeconds(10),
-        100);
+        accumulated_yield_intervals_ / yield_count_, base::Microseconds(1),
+        base::Seconds(10), 100);
   }
 }
 
@@ -93,16 +87,13 @@
   UMA_HISTOGRAM_COUNTS_1000("Blink.HTMLParsing.ChunkCount2", chunk_count_);
   UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
       "Blink.HTMLParsing.ParsingTimeMax2", max_parsing_time_,
-      base::TimeDelta::FromMicroseconds(1), base::TimeDelta::FromSeconds(100),
-      1000);
-  UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES("Blink.HTMLParsing.ParsingTimeMin2",
-                                          min_parsing_time_,
-                                          base::TimeDelta::FromMicroseconds(1),
-                                          base::TimeDelta::FromSeconds(1), 100);
+      base::Microseconds(1), base::Seconds(100), 1000);
+  UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
+      "Blink.HTMLParsing.ParsingTimeMin2", min_parsing_time_,
+      base::Microseconds(1), base::Seconds(1), 100);
   UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
       "Blink.HTMLParsing.ParsingTimeTotal2", accumulated_parsing_time_,
-      base::TimeDelta::FromMicroseconds(1), base::TimeDelta::FromSeconds(100),
-      1000);
+      base::Microseconds(1), base::Seconds(100), 1000);
   UMA_HISTOGRAM_COUNTS_1M("Blink.HTMLParsing.TokensParsedMax2",
                           max_tokens_parsed_);
   UMA_HISTOGRAM_COUNTS_10000("Blink.HTMLParsing.TokensParsedMin2",
@@ -116,17 +107,14 @@
   if (max_yield_interval_ != base::TimeDelta()) {
     UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
         "Blink.HTMLParsing.YieldedTimeMax2", max_yield_interval_,
-        base::TimeDelta::FromMicroseconds(1), base::TimeDelta::FromSeconds(100),
-        1000);
+        base::Microseconds(1), base::Seconds(100), 1000);
     UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
         "Blink.HTMLParsing.YieldedTimeMin2", min_yield_interval_,
-        base::TimeDelta::FromMicroseconds(1), base::TimeDelta::FromSeconds(10),
-        100);
+        base::Microseconds(1), base::Seconds(10), 100);
     UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
         "Blink.HTMLParsing.YieldedTimeAverage2",
-        accumulated_yield_intervals_ / yield_count_,
-        base::TimeDelta::FromMicroseconds(1), base::TimeDelta::FromSeconds(10),
-        100);
+        accumulated_yield_intervals_ / yield_count_, base::Microseconds(1),
+        base::Seconds(10), 100);
   }
 
   UMA_HISTOGRAM_COUNTS_10M("Blink.HTMLParsing.InputCharacterCount",
diff --git a/third_party/blink/renderer/core/html/parser/html_parser_metrics_test.cc b/third_party/blink/renderer/core/html/parser/html_parser_metrics_test.cc
index c15a5db3..20ac9995 100644
--- a/third_party/blink/renderer/core/html/parser/html_parser_metrics_test.cc
+++ b/third_party/blink/renderer/core/html/parser/html_parser_metrics_test.cc
@@ -386,14 +386,14 @@
   EXPECT_EQ(entries.size(), 0u);
 
   // Run a fictional sequence of calls
-  base::TimeDelta first_parse_time = base::TimeDelta::FromMicroseconds(20);
-  base::TimeDelta second_parse_time = base::TimeDelta::FromMicroseconds(10);
-  base::TimeDelta third_parse_time = base::TimeDelta::FromMicroseconds(30);
+  base::TimeDelta first_parse_time = base::Microseconds(20);
+  base::TimeDelta second_parse_time = base::Microseconds(10);
+  base::TimeDelta third_parse_time = base::Microseconds(30);
   unsigned first_tokens_parsed = 50u;
   unsigned second_tokens_parsed = 40u;
   unsigned third_tokens_parsed = 60u;
-  base::TimeDelta first_yield_time = base::TimeDelta::FromMicroseconds(80);
-  base::TimeDelta second_yield_time = base::TimeDelta::FromMicroseconds(70);
+  base::TimeDelta first_yield_time = base::Microseconds(80);
+  base::TimeDelta second_yield_time = base::Microseconds(70);
 
   reporter.AddChunk(first_parse_time, first_tokens_parsed);
   reporter.AddYieldInterval(first_yield_time);
diff --git a/third_party/blink/renderer/core/html/parser/html_parser_scheduler.cc b/third_party/blink/renderer/core/html/parser/html_parser_scheduler.cc
index e9ecf38..24c557d 100644
--- a/third_party/blink/renderer/core/html/parser/html_parser_scheduler.cc
+++ b/third_party/blink/renderer/core/html/parser/html_parser_scheduler.cc
@@ -76,8 +76,7 @@
   if (ThreadScheduler::Current()->ShouldYieldForHighPriorityWork())
     return true;
 
-  const base::TimeDelta kParserTimeLimit =
-      base::TimeDelta::FromMilliseconds(500);
+  const base::TimeDelta kParserTimeLimit = base::Milliseconds(500);
   if (session.ElapsedTime() > kParserTimeLimit)
     return true;
 
diff --git a/third_party/blink/renderer/core/html/track/cue_timeline.cc b/third_party/blink/renderer/core/html/track/cue_timeline.cc
index 171ad5b..f19275cc 100644
--- a/third_party/blink/renderer/core/html/track/cue_timeline.cc
+++ b/third_party/blink/renderer/core/html/track/cue_timeline.cc
@@ -33,13 +33,12 @@
   DCHECK_NE(media_element.playbackRate(), 0);
 
   auto const timeout =
-      base::TimeDelta::FromSecondsD((event_time - media_element.currentTime()) /
-                                    media_element.playbackRate());
+      base::Seconds((event_time - media_element.currentTime()) /
+                    media_element.playbackRate());
 
   // Only allow timeouts of multiples of 1ms to prevent "polling-by-timer"
   // and excessive calls to `TimeMarchesOn`.
-  constexpr base::TimeDelta kMinTimeoutInterval =
-      base::TimeDelta::FromMilliseconds(1);
+  constexpr base::TimeDelta kMinTimeoutInterval = base::Milliseconds(1);
   return std::max(timeout.CeilToMultiple(kMinTimeoutInterval),
                   kMinTimeoutInterval);
 }
diff --git a/third_party/blink/renderer/core/html/track/vtt/vtt_region.cc b/third_party/blink/renderer/core/html/track/vtt/vtt_region.cc
index 8ff5c05..8d3612d 100644
--- a/third_party/blink/renderer/core/html/track/vtt/vtt_region.cc
+++ b/third_party/blink/renderer/core/html/track/vtt/vtt_region.cc
@@ -70,7 +70,7 @@
 constexpr float kLineHeight = 5.33;
 
 // Default scrolling animation time period (s).
-constexpr base::TimeDelta kScrollTime = base::TimeDelta::FromMilliseconds(433);
+constexpr base::TimeDelta kScrollTime = base::Milliseconds(433);
 
 bool IsNonPercentage(double value,
                      const char* method,
diff --git a/third_party/blink/renderer/core/input/event_handler.cc b/third_party/blink/renderer/core/input/event_handler.cc
index bbd1a62a..c6c351b4 100644
--- a/third_party/blink/renderer/core/input/event_handler.cc
+++ b/third_party/blink/renderer/core/input/event_handler.cc
@@ -192,8 +192,7 @@
 
 // The amount of time to wait for a cursor update on style and layout changes
 // Set to 50Hz, no need to be faster than common screen refresh rate
-static constexpr base::TimeDelta kCursorUpdateInterval =
-    base::TimeDelta::FromMilliseconds(20);
+static constexpr base::TimeDelta kCursorUpdateInterval = base::Milliseconds(20);
 
 static const int kMaximumCursorSize = 128;
 
@@ -209,8 +208,7 @@
 
 // The minimum amount of time an element stays active after a ShowPress
 // This is roughly 9 frames, which should be long enough to be noticeable.
-constexpr base::TimeDelta kMinimumActiveInterval =
-    base::TimeDelta::FromSecondsD(0.15);
+constexpr base::TimeDelta kMinimumActiveInterval = base::Seconds(0.15);
 
 EventHandler::EventHandler(LocalFrame& frame)
     : frame_(frame),
diff --git a/third_party/blink/renderer/core/input/event_handler_test.cc b/third_party/blink/renderer/core/input/event_handler_test.cc
index dfae25f..3dabd33 100644
--- a/third_party/blink/renderer/core/input/event_handler_test.cc
+++ b/third_party/blink/renderer/core/input/event_handler_test.cc
@@ -1986,7 +1986,7 @@
   EXPECT_TRUE(iframe_doc->GetActiveElement());
 
   // The active will cancel after 15ms.
-  test::RunDelayedTasks(base::TimeDelta::FromSecondsD(0.2));
+  test::RunDelayedTasks(base::Seconds(0.2));
   EXPECT_FALSE(GetDocument().GetActiveElement());
   EXPECT_FALSE(iframe_doc->GetActiveElement());
 }
diff --git a/third_party/blink/renderer/core/input/mouse_event_manager.cc b/third_party/blink/renderer/core/input/mouse_event_manager.cc
index d87869b..40d76b2e 100644
--- a/third_party/blink/renderer/core/input/mouse_event_manager.cc
+++ b/third_party/blink/renderer/core/input/mouse_event_manager.cc
@@ -132,11 +132,11 @@
 #if defined(OS_MAC)
 const int kDragThresholdX = 3;
 const int kDragThresholdY = 3;
-constexpr base::TimeDelta kTextDragDelay = base::TimeDelta::FromSecondsD(0.15);
+constexpr base::TimeDelta kTextDragDelay = base::Seconds(0.15);
 #else
 const int kDragThresholdX = 4;
 const int kDragThresholdY = 4;
-constexpr base::TimeDelta kTextDragDelay = base::TimeDelta::FromSecondsD(0.0);
+constexpr base::TimeDelta kTextDragDelay = base::Seconds(0.0);
 #endif
 
 }  // namespace
diff --git a/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc b/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc
index fcdb078f..dbc8cab 100644
--- a/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc
+++ b/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc
@@ -440,7 +440,7 @@
                                       TRACE_ID_LOCAL(this), "budget",
                                       *new_policy.virtual_time_budget_ms);
     base::TimeDelta budget_amount =
-        base::TimeDelta::FromMillisecondsD(*new_policy.virtual_time_budget_ms);
+        base::Milliseconds(*new_policy.virtual_time_budget_ms);
     web_local_frame_->View()->Scheduler()->GrantVirtualTimeBudget(
         budget_amount,
         WTF::Bind(&InspectorEmulationAgent::VirtualTimeBudgetExpired,
diff --git a/third_party/blink/renderer/core/inspector/inspector_layer_tree_agent.cc b/third_party/blink/renderer/core/inspector/inspector_layer_tree_agent.cc
index 30f7e52d..3eb4c651 100644
--- a/third_party/blink/renderer/core/inspector/inspector_layer_tree_agent.cc
+++ b/third_party/blink/renderer/core/inspector/inspector_layer_tree_agent.cc
@@ -529,10 +529,9 @@
   FloatRect rect;
   if (clip_rect.isJust())
     ParseRect(clip_rect.fromJust(), &rect);
-  auto timings = snapshot->Profile(
-      min_repeat_count.fromMaybe(1),
-      base::TimeDelta::FromSecondsD(min_duration.fromMaybe(0)),
-      clip_rect.isJust() ? &rect : nullptr);
+  auto timings = snapshot->Profile(min_repeat_count.fromMaybe(1),
+                                   base::Seconds(min_duration.fromMaybe(0)),
+                                   clip_rect.isJust() ? &rect : nullptr);
   *out_timings = std::make_unique<Array<Array<double>>>();
   for (const auto& row : timings) {
     auto out_row = std::make_unique<protocol::Array<double>>();
diff --git a/third_party/blink/renderer/core/inspector/inspector_log_agent.cc b/third_party/blink/renderer/core/inspector/inspector_log_agent.cc
index 650cb946..c27a270 100644
--- a/third_party/blink/renderer/core/inspector/inspector_log_agent.cc
+++ b/third_party/blink/renderer/core/inspector/inspector_log_agent.cc
@@ -251,8 +251,8 @@
     PerformanceMonitor::Violation violation = ParseViolation(name);
     if (violation == PerformanceMonitor::kAfterLast)
       continue;
-    performance_monitor_->Subscribe(
-        violation, base::TimeDelta::FromMillisecondsD(threshold), this);
+    performance_monitor_->Subscribe(violation, base::Milliseconds(threshold),
+                                    this);
     violation_thresholds_.Set(name, threshold);
   }
   return Response::Success();
diff --git a/third_party/blink/renderer/core/inspector/inspector_overlay_agent.cc b/third_party/blink/renderer/core/inspector/inspector_overlay_agent.cc
index 700e703..5c46017 100644
--- a/third_party/blink/renderer/core/inspector/inspector_overlay_agent.cc
+++ b/third_party/blink/renderer/core/inspector/inspector_overlay_agent.cc
@@ -1369,7 +1369,7 @@
   SetInspectTool(MakeGarbageCollected<ShowViewSizeTool>(this, GetFrontend()));
   resize_timer_active_ = true;
   resize_timer_.Stop();
-  resize_timer_.StartOneShot(base::TimeDelta::FromSeconds(1), FROM_HERE);
+  resize_timer_.StartOneShot(base::Seconds(1), FROM_HERE);
 }
 
 void InspectorOverlayAgent::Dispatch(const ScriptValue& message,
@@ -1384,7 +1384,7 @@
     // the main page layout to avoid document lifecycle issues caused by
     // Microtask::PerformCheckpoint() called when we rebuild the overlay page.
     resize_timer_.Stop();
-    resize_timer_.StartOneShot(base::TimeDelta::FromSeconds(0), FROM_HERE);
+    resize_timer_.StartOneShot(base::Seconds(0), FROM_HERE);
     return;
   }
   ScheduleUpdate();
diff --git a/third_party/blink/renderer/core/inspector/inspector_performance_agent.cc b/third_party/blink/renderer/core/inspector/inspector_performance_agent.cc
index f5d02c12..4621b31 100644
--- a/third_party/blink/renderer/core/inspector/inspector_performance_agent.cc
+++ b/third_party/blink/renderer/core/inspector/inspector_performance_agent.cc
@@ -146,7 +146,7 @@
 
 base::TimeTicks InspectorPerformanceAgent::GetThreadTimeNow() {
   return base::TimeTicks() +
-         base::TimeDelta::FromMicroseconds(
+         base::Microseconds(
              base::ThreadTicks::Now().since_origin().InMicroseconds());
 }
 
diff --git a/third_party/blink/renderer/core/inspector/thread_debugger.cc b/third_party/blink/renderer/core/inspector/thread_debugger.cc
index 0476d66..ac6a3391 100644
--- a/third_party/blink/renderer/core/inspector/thread_debugger.cc
+++ b/third_party/blink/renderer/core/inspector/thread_debugger.cc
@@ -601,7 +601,7 @@
           &ThreadDebugger::OnTimer);
   TaskRunnerTimer<ThreadDebugger>* timer_ptr = timer.get();
   timers_.push_back(std::move(timer));
-  timer_ptr->StartRepeating(base::TimeDelta::FromSecondsD(interval), FROM_HERE);
+  timer_ptr->StartRepeating(base::Seconds(interval), FROM_HERE);
 }
 
 void ThreadDebugger::cancelTimer(void* data) {
diff --git a/third_party/blink/renderer/core/intersection_observer/intersection_observation.cc b/third_party/blink/renderer/core/intersection_observer/intersection_observation.cc
index 1cc42dc..8b743f5 100644
--- a/third_party/blink/renderer/core/intersection_observer/intersection_observation.cc
+++ b/third_party/blink/renderer/core/intersection_observer/intersection_observation.cc
@@ -162,8 +162,8 @@
     DOMHighResTimeStamp timestamp) {
   if (timestamp == -1)
     return true;
-  base::TimeDelta delay = base::TimeDelta::FromMilliseconds(
-      observer_->GetEffectiveDelay() - (timestamp - last_run_time_));
+  base::TimeDelta delay = base::Milliseconds(observer_->GetEffectiveDelay() -
+                                             (timestamp - last_run_time_));
   if (!(flags & kIgnoreDelay) && delay > base::TimeDelta()) {
     TrackingDocument(this).View()->ScheduleAnimation(delay);
     return true;
diff --git a/third_party/blink/renderer/core/layout/layout_progress.cc b/third_party/blink/renderer/core/layout/layout_progress.cc
index ab8ab6f5..4f05609a 100644
--- a/third_party/blink/renderer/core/layout/layout_progress.cc
+++ b/third_party/blink/renderer/core/layout/layout_progress.cc
@@ -29,8 +29,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kAnimationInterval =
-    base::TimeDelta::FromMilliseconds(125);
+constexpr base::TimeDelta kAnimationInterval = base::Milliseconds(125);
 constexpr base::TimeDelta kAnimationDuration = kAnimationInterval * 20;
 
 }  // namespace
diff --git a/third_party/blink/renderer/core/layout/layout_shift_tracker.cc b/third_party/blink/renderer/core/layout/layout_shift_tracker.cc
index b3ab9bc..5f8a881 100644
--- a/third_party/blink/renderer/core/layout/layout_shift_tracker.cc
+++ b/third_party/blink/renderer/core/layout/layout_shift_tracker.cc
@@ -38,7 +38,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kTimerDelay = base::TimeDelta::FromMilliseconds(500);
+constexpr base::TimeDelta kTimerDelay = base::Milliseconds(500);
 const float kMovementThreshold = 3.0;  // CSS pixels.
 
 // Calculates the physical coordinates of the starting point in the current
diff --git a/third_party/blink/renderer/core/layout/layout_text.cc b/third_party/blink/renderer/core/layout/layout_text.cc
index 617aa67..819f4606 100644
--- a/third_party/blink/renderer/core/layout/layout_text.cc
+++ b/third_party/blink/renderer/core/layout/layout_text.cc
@@ -120,8 +120,7 @@
   void RestartWithNewText(unsigned last_typed_character_offset) {
     last_typed_character_offset_ = last_typed_character_offset;
     if (Settings* settings = layout_text_->GetDocument().GetSettings()) {
-      StartOneShot(base::TimeDelta::FromSecondsD(
-                       settings->GetPasswordEchoDurationInSeconds()),
+      StartOneShot(base::Seconds(settings->GetPasswordEchoDurationInSeconds()),
                    FROM_HERE);
     }
   }
diff --git a/third_party/blink/renderer/core/layout/layout_theme.h b/third_party/blink/renderer/core/layout/layout_theme.h
index bdc3f5d..f5c468e 100644
--- a/third_party/blink/renderer/core/layout/layout_theme.h
+++ b/third_party/blink/renderer/core/layout/layout_theme.h
@@ -255,8 +255,7 @@
 
   Color custom_focus_ring_color_;
   bool has_custom_focus_ring_color_;
-  base::TimeDelta caret_blink_interval_ =
-      base::TimeDelta::FromMilliseconds(500);
+  base::TimeDelta caret_blink_interval_ = base::Milliseconds(500);
 
   bool delegates_menu_list_rendering_ = false;
   bool in_forced_colors_mode_ = false;
diff --git a/third_party/blink/renderer/core/layout/scrollbars_test.cc b/third_party/blink/renderer/core/layout/scrollbars_test.cc
index a985a176..d7d85f3 100644
--- a/third_party/blink/renderer/core/layout/scrollbars_test.cc
+++ b/third_party/blink/renderer/core/layout/scrollbars_test.cc
@@ -1481,8 +1481,7 @@
   ScopedMockOverlayScrollbars mock_overlay_scrollbars(true);
 
   TimeAdvance();
-  constexpr base::TimeDelta kMockOverlayFadeOutDelay =
-      base::TimeDelta::FromSeconds(5);
+  constexpr base::TimeDelta kMockOverlayFadeOutDelay = base::Seconds(5);
 
   ScrollbarTheme& theme = GetScrollbarTheme();
   ASSERT_TRUE(theme.IsMockTheme());
@@ -2783,7 +2782,7 @@
 
   SimRequest request("https://example.com/test.html", "text/html");
   LoadURL("https://example.com/test.html");
-  RunTasksForPeriod(base::TimeDelta::FromMilliseconds(1000));
+  RunTasksForPeriod(base::Milliseconds(1000));
   request.Complete(R"HTML(
     <!DOCTYPE html>
     <style>
@@ -2831,15 +2830,15 @@
   ASSERT_EQ(scrollbar->PressedPart(), ScrollbarPart::kForwardButtonEndPart);
 
   // Wait for 2 delay.
-  RunTasksForPeriod(base::TimeDelta::FromMilliseconds(1000));
-  RunTasksForPeriod(base::TimeDelta::FromMilliseconds(1000));
+  RunTasksForPeriod(base::Milliseconds(1000));
+  RunTasksForPeriod(base::Milliseconds(1000));
   // Change #big size.
   MainFrame().ExecuteScript(WebScriptSource(
       "document.getElementById('big').style.height = '1000px';"));
   Compositor().BeginFrame();
 
-  RunTasksForPeriod(base::TimeDelta::FromMilliseconds(1000));
-  RunTasksForPeriod(base::TimeDelta::FromMilliseconds(1000));
+  RunTasksForPeriod(base::Milliseconds(1000));
+  RunTasksForPeriod(base::Milliseconds(1000));
 
   // Verify that the scrollbar autopress timer requested some scrolls via
   // gestures. The button was pressed for 2 seconds and the timer fires
diff --git a/third_party/blink/renderer/core/loader/document_load_timing.cc b/third_party/blink/renderer/core/loader/document_load_timing.cc
index 95c4c3e0..4438edc 100644
--- a/third_party/blink/renderer/core/loader/document_load_timing.cc
+++ b/third_party/blink/renderer/core/loader/document_load_timing.cc
@@ -73,8 +73,7 @@
 
 void DocumentLoadTiming::EnsureReferenceTimesSet() {
   if (reference_wall_time_.is_zero()) {
-    reference_wall_time_ =
-        base::TimeDelta::FromSecondsD(clock_->Now().ToDoubleT());
+    reference_wall_time_ = base::Seconds(clock_->Now().ToDoubleT());
   }
   if (reference_monotonic_time_.is_null())
     reference_monotonic_time_ = tick_clock_->NowTicks();
@@ -92,8 +91,7 @@
   if (reference_monotonic_time_.is_null())
     return 0;
   base::TimeTicks monotonic_time =
-      reference_monotonic_time_ +
-      base::TimeDelta::FromMillisecondsD(dom_event_time);
+      reference_monotonic_time_ + base::Milliseconds(dom_event_time);
   return monotonic_time.since_origin().InMilliseconds();
 }
 
diff --git a/third_party/blink/renderer/core/loader/document_load_timing_test.cc b/third_party/blink/renderer/core/loader/document_load_timing_test.cc
index a9a1e7af..890494a 100644
--- a/third_party/blink/renderer/core/loader/document_load_timing_test.cc
+++ b/third_party/blink/renderer/core/loader/document_load_timing_test.cc
@@ -21,8 +21,8 @@
   double delta = -1000;
   double embedder_navigation_start =
       base::TimeTicks::Now().since_origin().InSecondsF() + delta;
-  timing.SetNavigationStart(base::TimeTicks() + base::TimeDelta::FromSecondsD(
-                                                    embedder_navigation_start));
+  timing.SetNavigationStart(base::TimeTicks() +
+                            base::Seconds(embedder_navigation_start));
 
   double real_wall_time = base::Time::Now().ToDoubleT();
   base::TimeDelta adjusted_wall_time =
@@ -41,8 +41,8 @@
   double embedder_navigation_start =
       current_monotonic_time + navigation_start_delta;
 
-  timing.SetNavigationStart(base::TimeTicks() + base::TimeDelta::FromSecondsD(
-                                                    embedder_navigation_start));
+  timing.SetNavigationStart(base::TimeTicks() +
+                            base::Seconds(embedder_navigation_start));
 
   // Super quick load! Expect the wall time reported by this event to be
   // dominated by the navigationStartDelta, but similar to currentTime().
@@ -68,8 +68,8 @@
   DocumentLoadTiming timing(*(dummy_page->GetDocument().Loader()));
 
   base::TimeTicks origin;
-  auto t1 = base::TimeDelta::FromSeconds(5);
-  auto t2 = base::TimeDelta::FromSeconds(10);
+  auto t1 = base::Seconds(5);
+  auto t2 = base::Seconds(10);
 
   // Start a navigation to |url_that_redirects|.
   timing.SetNavigationStart(origin);
diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc
index ff70b87..c03795c 100644
--- a/third_party/blink/renderer/core/loader/document_loader.cc
+++ b/third_party/blink/renderer/core/loader/document_loader.cc
@@ -2653,7 +2653,7 @@
   DCHECK(!document_load_timing_.NavigationStart().is_null());
   base::TimeTicks lcp_limit =
       document_load_timing_.NavigationStart() +
-      base::TimeDelta::FromMilliseconds(
+      base::Milliseconds(
           features::kAlignFontDisplayAutoTimeoutWithLCPGoalTimeoutParam.Get());
   base::TimeTicks now = clock_->NowTicks();
   if (now < lcp_limit)
diff --git a/third_party/blink/renderer/core/loader/font_preload_manager.cc b/third_party/blink/renderer/core/loader/font_preload_manager.cc
index 6e46257..cba9b79 100644
--- a/third_party/blink/renderer/core/loader/font_preload_manager.cc
+++ b/third_party/blink/renderer/core/loader/font_preload_manager.cc
@@ -74,7 +74,7 @@
           document.GetTaskRunner(TaskType::kInternalFrameLifecycleControl),
           this,
           &FontPreloadManager::FontPreloadingDelaysRenderingTimerFired),
-      render_delay_timeout_(base::TimeDelta::FromMilliseconds(
+      render_delay_timeout_(base::Milliseconds(
           features::kFontPreloadingDelaysRenderingParam.Get())) {}
 
 bool FontPreloadManager::HasPendingRenderBlockingFonts() const {
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context_test.cc b/third_party/blink/renderer/core/loader/frame_fetch_context_test.cc
index 78e5b5a..089a46e 100644
--- a/third_party/blink/renderer/core/loader/frame_fetch_context_test.cc
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context_test.cc
@@ -1263,10 +1263,10 @@
 }
 
 TEST_F(FrameFetchContextTest, AddResourceTimingWhenDetached) {
-  scoped_refptr<ResourceTimingInfo> info = ResourceTimingInfo::Create(
-      "type", base::TimeTicks() + base::TimeDelta::FromSecondsD(0.3),
-      mojom::blink::RequestContextType::UNSPECIFIED,
-      network::mojom::RequestDestination::kEmpty);
+  scoped_refptr<ResourceTimingInfo> info =
+      ResourceTimingInfo::Create("type", base::TimeTicks() + base::Seconds(0.3),
+                                 mojom::blink::RequestContextType::UNSPECIFIED,
+                                 network::mojom::RequestDestination::kEmpty);
 
   dummy_page_holder = nullptr;
 
diff --git a/third_party/blink/renderer/core/loader/http_refresh_scheduler.cc b/third_party/blink/renderer/core/loader/http_refresh_scheduler.cc
index 973eed5..9244a4f 100644
--- a/third_party/blink/renderer/core/loader/http_refresh_scheduler.cc
+++ b/third_party/blink/renderer/core/loader/http_refresh_scheduler.cc
@@ -45,7 +45,7 @@
 #include "third_party/blink/renderer/platform/scheduler/public/thread_scheduler.h"
 
 static constexpr base::TimeDelta kMaxScheduledDelay =
-    base::TimeDelta::FromSeconds(INT32_MAX / 1000);
+    base::Seconds(INT32_MAX / 1000);
 
 namespace blink {
 
@@ -118,7 +118,7 @@
     request.GetResourceRequest().SetCacheMode(
         mojom::FetchCacheMode::kValidateCache);
     load_type = WebFrameLoadType::kReload;
-  } else if (refresh->delay <= base::TimeDelta::FromSeconds(1)) {
+  } else if (refresh->delay <= base::Seconds(1)) {
     load_type = WebFrameLoadType::kReplaceCurrentItem;
   }
 
diff --git a/third_party/blink/renderer/core/loader/idleness_detector.cc b/third_party/blink/renderer/core/loader/idleness_detector.cc
index 2359f6c..3383250 100644
--- a/third_party/blink/renderer/core/loader/idleness_detector.cc
+++ b/third_party/blink/renderer/core/loader/idleness_detector.cc
@@ -200,8 +200,8 @@
           this,
           &IdlenessDetector::NetworkQuietTimerFired) {
   if (local_frame->GetSettings()) {
-    network_quiet_window_ = base::TimeDelta::FromSecondsD(
-        local_frame->GetSettings()->GetNetworkQuietTimeout());
+    network_quiet_window_ =
+        base::Seconds(local_frame->GetSettings()->GetNetworkQuietTimeout());
   }
 }
 
diff --git a/third_party/blink/renderer/core/loader/idleness_detector.h b/third_party/blink/renderer/core/loader/idleness_detector.h
index 1afefe2f..d7c4702c 100644
--- a/third_party/blink/renderer/core/loader/idleness_detector.h
+++ b/third_party/blink/renderer/core/loader/idleness_detector.h
@@ -51,9 +51,8 @@
   // The page is quiet if there are no more than 2 active network requests for
   // this duration of time.
   static constexpr base::TimeDelta kNetworkQuietWindow =
-      base::TimeDelta::FromMilliseconds(500);
-  static constexpr base::TimeDelta kNetworkQuietWatchdog =
-      base::TimeDelta::FromSeconds(2);
+      base::Milliseconds(500);
+  static constexpr base::TimeDelta kNetworkQuietWatchdog = base::Seconds(2);
   static constexpr int kNetworkQuietMaximumConnections = 2;
 
   // TaskTimeObserver implementation.
diff --git a/third_party/blink/renderer/core/loader/idleness_detector_test.cc b/third_party/blink/renderer/core/loader/idleness_detector_test.cc
index c71a664d..287424f 100644
--- a/third_party/blink/renderer/core/loader/idleness_detector_test.cc
+++ b/third_party/blink/renderer/core/loader/idleness_detector_test.cc
@@ -46,7 +46,7 @@
   }
 
   static base::TimeTicks SecondsToTimeTicks(double seconds) {
-    return base::TimeTicks() + base::TimeDelta::FromSecondsD(seconds);
+    return base::TimeTicks() + base::Seconds(seconds);
   }
 
  private:
diff --git a/third_party/blink/renderer/core/loader/interactive_detector.cc b/third_party/blink/renderer/core/loader/interactive_detector.cc
index f1bdddb..3e00123 100644
--- a/third_party/blink/renderer/core/loader/interactive_detector.cc
+++ b/third_party/blink/renderer/core/loader/interactive_detector.cc
@@ -27,12 +27,12 @@
 // The threshold to emit the "Long Input Delay" trace event is the 99th
 // percentile of the histogram on Windows Stable as of Feb 25, 2020.
 constexpr base::TimeDelta kInputDelayTraceEventThreshold =
-    base::TimeDelta::FromMilliseconds(250);
+    base::Milliseconds(250);
 
 // The threshold to emit the "Long First Input Delay" trace event is the 99th
 // percentile of the histogram on Windows Stable as of Feb 27, 2020.
 constexpr base::TimeDelta kFirstInputDelayTraceEventThreshold =
-    base::TimeDelta::FromMilliseconds(575);
+    base::Milliseconds(575);
 
 }  // namespace
 
@@ -42,7 +42,7 @@
 
 // Required length of main thread and network quiet window for determining
 // Time to Interactive.
-constexpr auto kTimeToInteractiveWindow = base::TimeDelta::FromSeconds(5);
+constexpr auto kTimeToInteractiveWindow = base::Seconds(5);
 // Network is considered "quiet" if there are no more than 2 active network
 // requests for this duration of time.
 constexpr int kNetworkQuietMaximumConnections = 2;
@@ -120,7 +120,7 @@
 
   // We give 1ms extra padding to the timer fire time to prevent floating point
   // arithmetic pitfalls when comparing window sizes.
-  timer_fire_time += base::TimeDelta::FromMilliseconds(1);
+  timer_fire_time += base::Milliseconds(1);
 
   // Return if there is an active timer scheduled to fire later than
   // |timer_fire_time|.
@@ -325,13 +325,11 @@
     GetSupplementable()->Loader()->DidObserveInputDelay(delay);
   }
 
-  UMA_HISTOGRAM_CUSTOM_TIMES(kHistogramInputDelay, delay,
-                             base::TimeDelta::FromMilliseconds(1),
-                             base::TimeDelta::FromSeconds(60), 50);
+  UMA_HISTOGRAM_CUSTOM_TIMES(kHistogramInputDelay, delay, base::Milliseconds(1),
+                             base::Seconds(60), 50);
   UMA_HISTOGRAM_CUSTOM_TIMES(kHistogramInputTimestamp,
                              event_timestamp - page_event_times_.nav_start,
-                             base::TimeDelta::FromMilliseconds(10),
-                             base::TimeDelta::FromMinutes(10), 100);
+                             base::Milliseconds(10), base::Minutes(10), 100);
 
   // Only update longest input delay if page was not backgrounded while the
   // input was queued.
@@ -633,8 +631,8 @@
         std::max(long_task.Low(), page_event_times_.first_contentful_paint);
     base::TimeTicks clipped_end = std::min(long_task.High(), interactive_time_);
     total_blocking_time +=
-        std::max(base::TimeDelta(), clipped_end - clipped_start -
-                                        base::TimeDelta::FromMilliseconds(50));
+        std::max(base::TimeDelta(),
+                 clipped_end - clipped_start - base::Milliseconds(50));
   }
   return total_blocking_time;
 }
diff --git a/third_party/blink/renderer/core/loader/interactive_detector_test.cc b/third_party/blink/renderer/core/loader/interactive_detector_test.cc
index 0e209c8..1268767 100644
--- a/third_party/blink/renderer/core/loader/interactive_detector_test.cc
+++ b/third_party/blink/renderer/core/loader/interactive_detector_test.cc
@@ -92,7 +92,7 @@
   }
 
   void SimulateLongTask(base::TimeTicks start, base::TimeTicks end) {
-    CHECK(end - start >= base::TimeDelta::FromSecondsD(0.05));
+    CHECK(end - start >= base::Seconds(0.05));
     RunTillTimestamp(end);
     detector_->OnLongTaskDetected(start, end);
   }
@@ -179,15 +179,14 @@
   SimulateNavigationStart(t0);
   // Network is forever quiet for this test.
   SetActiveConnections(1);
-  SimulateDOMContentLoadedEnd(t0 + base::TimeDelta::FromSeconds(3));
+  SimulateDOMContentLoadedEnd(t0 + base::Seconds(3));
   SimulateFCPDetected(
-      /* fcp_time */ t0 + base::TimeDelta::FromSeconds(5),
-      /* detection_time */ t0 + base::TimeDelta::FromSeconds(7));
+      /* fcp_time */ t0 + base::Seconds(5),
+      /* detection_time */ t0 + base::Seconds(7));
   // Run until 5 seconds after FCP.
-  RunTillTimestamp((t0 + base::TimeDelta::FromSeconds(5)) +
-                   base::TimeDelta::FromSecondsD(5.0 + 0.1));
+  RunTillTimestamp((t0 + base::Seconds(5)) + base::Seconds(5.0 + 0.1));
   // Reached TTI at FCP.
-  EXPECT_EQ(GetInteractiveTime(), t0 + base::TimeDelta::FromSeconds(5));
+  EXPECT_EQ(GetInteractiveTime(), t0 + base::Seconds(5));
 }
 
 TEST_F(InteractiveDetectorTest, DCL_FCP_FcpDetect) {
@@ -195,15 +194,14 @@
   SimulateNavigationStart(t0);
   // Network is forever quiet for this test.
   SetActiveConnections(1);
-  SimulateDOMContentLoadedEnd(t0 + base::TimeDelta::FromSeconds(5));
+  SimulateDOMContentLoadedEnd(t0 + base::Seconds(5));
   SimulateFCPDetected(
-      /* fcp_time */ t0 + base::TimeDelta::FromSeconds(3),
-      /* detection_time */ t0 + base::TimeDelta::FromSeconds(7));
+      /* fcp_time */ t0 + base::Seconds(3),
+      /* detection_time */ t0 + base::Seconds(7));
   // Run until 5 seconds after FCP.
-  RunTillTimestamp((t0 + base::TimeDelta::FromSeconds(3)) +
-                   base::TimeDelta::FromSecondsD(5.0 + 0.1));
+  RunTillTimestamp((t0 + base::Seconds(3)) + base::Seconds(5.0 + 0.1));
   // Reached TTI at DCL.
-  EXPECT_EQ(GetInteractiveTime(), t0 + base::TimeDelta::FromSeconds(5));
+  EXPECT_EQ(GetInteractiveTime(), t0 + base::Seconds(5));
 }
 
 TEST_F(InteractiveDetectorTest, InstantDetectionAtFcpDetectIfPossible) {
@@ -211,14 +209,14 @@
   SimulateNavigationStart(t0);
   // Network is forever quiet for this test.
   SetActiveConnections(1);
-  SimulateDOMContentLoadedEnd(t0 + base::TimeDelta::FromSeconds(5));
+  SimulateDOMContentLoadedEnd(t0 + base::Seconds(5));
   SimulateFCPDetected(
-      /* fcp_time */ t0 + base::TimeDelta::FromSeconds(3),
-      /* detection_time */ t0 + base::TimeDelta::FromSeconds(10));
+      /* fcp_time */ t0 + base::Seconds(3),
+      /* detection_time */ t0 + base::Seconds(10));
   // Although we just detected FCP, the FCP timestamp is more than
   // kTimeToInteractiveWindowSeconds earlier. We should instantaneously
   // detect that we reached TTI at DCL.
-  EXPECT_EQ(GetInteractiveTime(), t0 + base::TimeDelta::FromSeconds(5));
+  EXPECT_EQ(GetInteractiveTime(), t0 + base::Seconds(5));
 }
 
 TEST_F(InteractiveDetectorTest, FcpDetectFiresAfterLateLongTask) {
@@ -226,15 +224,14 @@
   SimulateNavigationStart(t0);
   // Network is forever quiet for this test.
   SetActiveConnections(1);
-  SimulateDOMContentLoadedEnd(t0 + base::TimeDelta::FromSeconds(3));
-  SimulateLongTask(t0 + base::TimeDelta::FromSeconds(9),
-                   t0 + base::TimeDelta::FromSecondsD(9.1));
+  SimulateDOMContentLoadedEnd(t0 + base::Seconds(3));
+  SimulateLongTask(t0 + base::Seconds(9), t0 + base::Seconds(9.1));
   SimulateFCPDetected(
-      /* fcp_time */ t0 + base::TimeDelta::FromSeconds(3),
-      /* detection_time */ t0 + base::TimeDelta::FromSeconds(10));
+      /* fcp_time */ t0 + base::Seconds(3),
+      /* detection_time */ t0 + base::Seconds(10));
   // There is a 5 second quiet window after fcp_time - the long task is 6s
   // seconds after fcp_time. We should instantly detect we reached TTI at FCP.
-  EXPECT_EQ(GetInteractiveTime(), t0 + base::TimeDelta::FromSeconds(3));
+  EXPECT_EQ(GetInteractiveTime(), t0 + base::Seconds(3));
 }
 
 TEST_F(InteractiveDetectorTest, FCP_FcpDetect_DCL) {
@@ -243,11 +240,11 @@
   // Network is forever quiet for this test.
   SetActiveConnections(1);
   SimulateFCPDetected(
-      /* fcp_time */ t0 + base::TimeDelta::FromSeconds(3),
-      /* detection_time */ t0 + base::TimeDelta::FromSeconds(5));
-  SimulateDOMContentLoadedEnd(t0 + base::TimeDelta::FromSeconds(9));
+      /* fcp_time */ t0 + base::Seconds(3),
+      /* detection_time */ t0 + base::Seconds(5));
+  SimulateDOMContentLoadedEnd(t0 + base::Seconds(9));
   // TTI reached at DCL.
-  EXPECT_EQ(GetInteractiveTime(), t0 + base::TimeDelta::FromSeconds(9));
+  EXPECT_EQ(GetInteractiveTime(), t0 + base::Seconds(9));
 }
 
 TEST_F(InteractiveDetectorTest, LongTaskBeforeFCPDoesNotAffectTTI) {
@@ -255,17 +252,15 @@
   SimulateNavigationStart(t0);
   // Network is forever quiet for this test.
   SetActiveConnections(1);
-  SimulateDOMContentLoadedEnd(t0 + base::TimeDelta::FromSeconds(3));
-  SimulateLongTask(t0 + base::TimeDelta::FromSecondsD(5.1),
-                   t0 + base::TimeDelta::FromSecondsD(5.2));
+  SimulateDOMContentLoadedEnd(t0 + base::Seconds(3));
+  SimulateLongTask(t0 + base::Seconds(5.1), t0 + base::Seconds(5.2));
   SimulateFCPDetected(
-      /* fcp_time */ t0 + base::TimeDelta::FromSeconds(8),
-      /* detection_time */ t0 + base::TimeDelta::FromSeconds(9));
+      /* fcp_time */ t0 + base::Seconds(8),
+      /* detection_time */ t0 + base::Seconds(9));
   // Run till 5 seconds after FCP.
-  RunTillTimestamp((t0 + base::TimeDelta::FromSeconds(8)) +
-                   base::TimeDelta::FromSecondsD(5.0 + 0.1));
+  RunTillTimestamp((t0 + base::Seconds(8)) + base::Seconds(5.0 + 0.1));
   // TTI reached at FCP.
-  EXPECT_EQ(GetInteractiveTime(), t0 + base::TimeDelta::FromSeconds(8));
+  EXPECT_EQ(GetInteractiveTime(), t0 + base::Seconds(8));
 }
 
 TEST_F(InteractiveDetectorTest, DCLDoesNotResetTimer) {
@@ -274,16 +269,14 @@
   // Network is forever quiet for this test.
   SetActiveConnections(1);
   SimulateFCPDetected(
-      /* fcp_time */ t0 + base::TimeDelta::FromSeconds(3),
-      /* detection_time */ t0 + base::TimeDelta::FromSeconds(4));
-  SimulateLongTask(t0 + base::TimeDelta::FromSeconds(5),
-                   t0 + base::TimeDelta::FromSecondsD(5.1));
-  SimulateDOMContentLoadedEnd(t0 + base::TimeDelta::FromSeconds(8));
+      /* fcp_time */ t0 + base::Seconds(3),
+      /* detection_time */ t0 + base::Seconds(4));
+  SimulateLongTask(t0 + base::Seconds(5), t0 + base::Seconds(5.1));
+  SimulateDOMContentLoadedEnd(t0 + base::Seconds(8));
   // Run till 5 seconds after long task end.
-  RunTillTimestamp((t0 + base::TimeDelta::FromSecondsD(5.1)) +
-                   base::TimeDelta::FromSecondsD(5.0 + 0.1));
+  RunTillTimestamp((t0 + base::Seconds(5.1)) + base::Seconds(5.0 + 0.1));
   // TTI Reached at DCL.
-  EXPECT_EQ(GetInteractiveTime(), t0 + base::TimeDelta::FromSeconds(8));
+  EXPECT_EQ(GetInteractiveTime(), t0 + base::Seconds(8));
 }
 
 TEST_F(InteractiveDetectorTest, DCL_FCP_FcpDetect_LT) {
@@ -291,17 +284,15 @@
   SimulateNavigationStart(t0);
   // Network is forever quiet for this test.
   SetActiveConnections(1);
-  SimulateDOMContentLoadedEnd(t0 + base::TimeDelta::FromSeconds(3));
+  SimulateDOMContentLoadedEnd(t0 + base::Seconds(3));
   SimulateFCPDetected(
-      /* fcp_time */ t0 + base::TimeDelta::FromSeconds(4),
-      /* detection_time */ t0 + base::TimeDelta::FromSeconds(5));
-  SimulateLongTask(t0 + base::TimeDelta::FromSeconds(7),
-                   t0 + base::TimeDelta::FromSecondsD(7.1));
+      /* fcp_time */ t0 + base::Seconds(4),
+      /* detection_time */ t0 + base::Seconds(5));
+  SimulateLongTask(t0 + base::Seconds(7), t0 + base::Seconds(7.1));
   // Run till 5 seconds after long task end.
-  RunTillTimestamp((t0 + base::TimeDelta::FromSecondsD(7.1)) +
-                   base::TimeDelta::FromSecondsD(5.0 + 0.1));
+  RunTillTimestamp((t0 + base::Seconds(7.1)) + base::Seconds(5.0 + 0.1));
   // TTI reached at long task end.
-  EXPECT_EQ(GetInteractiveTime(), t0 + base::TimeDelta::FromSecondsD(7.1));
+  EXPECT_EQ(GetInteractiveTime(), t0 + base::Seconds(7.1));
 }
 
 TEST_F(InteractiveDetectorTest, DCL_FCP_LT_FcpDetect) {
@@ -309,17 +300,15 @@
   SimulateNavigationStart(t0);
   // Network is forever quiet for this test.
   SetActiveConnections(1);
-  SimulateDOMContentLoadedEnd(t0 + base::TimeDelta::FromSeconds(3));
-  SimulateLongTask(t0 + base::TimeDelta::FromSeconds(7),
-                   t0 + base::TimeDelta::FromSecondsD(7.1));
+  SimulateDOMContentLoadedEnd(t0 + base::Seconds(3));
+  SimulateLongTask(t0 + base::Seconds(7), t0 + base::Seconds(7.1));
   SimulateFCPDetected(
-      /* fcp_time */ t0 + base::TimeDelta::FromSeconds(3),
-      /* detection_time */ t0 + base::TimeDelta::FromSeconds(5));
+      /* fcp_time */ t0 + base::Seconds(3),
+      /* detection_time */ t0 + base::Seconds(5));
   // Run till 5 seconds after long task end.
-  RunTillTimestamp((t0 + base::TimeDelta::FromSecondsD(7.1)) +
-                   base::TimeDelta::FromSecondsD(5.0 + 0.1));
+  RunTillTimestamp((t0 + base::Seconds(7.1)) + base::Seconds(5.0 + 0.1));
   // TTI reached at long task end.
-  EXPECT_EQ(GetInteractiveTime(), t0 + base::TimeDelta::FromSecondsD(7.1));
+  EXPECT_EQ(GetInteractiveTime(), t0 + base::Seconds(7.1));
 }
 
 TEST_F(InteractiveDetectorTest, FCP_FcpDetect_LT_DCL) {
@@ -328,16 +317,14 @@
   // Network is forever quiet for this test.
   SetActiveConnections(1);
   SimulateFCPDetected(
-      /* fcp_time */ t0 + base::TimeDelta::FromSeconds(3),
-      /* detection_time */ t0 + base::TimeDelta::FromSeconds(4));
-  SimulateLongTask(t0 + base::TimeDelta::FromSeconds(7),
-                   t0 + base::TimeDelta::FromSecondsD(7.1));
-  SimulateDOMContentLoadedEnd(t0 + base::TimeDelta::FromSeconds(8));
+      /* fcp_time */ t0 + base::Seconds(3),
+      /* detection_time */ t0 + base::Seconds(4));
+  SimulateLongTask(t0 + base::Seconds(7), t0 + base::Seconds(7.1));
+  SimulateDOMContentLoadedEnd(t0 + base::Seconds(8));
   // Run till 5 seconds after long task end.
-  RunTillTimestamp((t0 + base::TimeDelta::FromSecondsD(7.1)) +
-                   base::TimeDelta::FromSecondsD(5.0 + 0.1));
+  RunTillTimestamp((t0 + base::Seconds(7.1)) + base::Seconds(5.0 + 0.1));
   // TTI reached at DCL. Note that we do not need to wait for DCL + 5 seconds.
-  EXPECT_EQ(GetInteractiveTime(), t0 + base::TimeDelta::FromSeconds(8));
+  EXPECT_EQ(GetInteractiveTime(), t0 + base::Seconds(8));
 }
 
 TEST_F(InteractiveDetectorTest, DclIsMoreThan5sAfterFCP) {
@@ -346,46 +333,42 @@
   // Network is forever quiet for this test.
   SetActiveConnections(1);
   SimulateFCPDetected(
-      /* fcp_time */ t0 + base::TimeDelta::FromSeconds(3),
-      /* detection_time */ t0 + base::TimeDelta::FromSeconds(4));
-  SimulateLongTask(t0 + base::TimeDelta::FromSeconds(7),
-                   t0 + base::TimeDelta::FromSecondsD(7.1));  // Long task 1.
-  SimulateDOMContentLoadedEnd(t0 + base::TimeDelta::FromSeconds(10));
+      /* fcp_time */ t0 + base::Seconds(3),
+      /* detection_time */ t0 + base::Seconds(4));
+  SimulateLongTask(t0 + base::Seconds(7),
+                   t0 + base::Seconds(7.1));  // Long task 1.
+  SimulateDOMContentLoadedEnd(t0 + base::Seconds(10));
   // Have not reached TTI yet.
   EXPECT_EQ(GetInteractiveTime(), base::TimeTicks());
-  SimulateLongTask(t0 + base::TimeDelta::FromSeconds(11),
-                   t0 + base::TimeDelta::FromSecondsD(11.1));  // Long task 2.
+  SimulateLongTask(t0 + base::Seconds(11),
+                   t0 + base::Seconds(11.1));  // Long task 2.
   // Run till long task 2 end + 5 seconds.
-  RunTillTimestamp((t0 + base::TimeDelta::FromSecondsD(11.1)) +
-                   base::TimeDelta::FromSecondsD(5.0 + 0.1));
+  RunTillTimestamp((t0 + base::Seconds(11.1)) + base::Seconds(5.0 + 0.1));
   // TTI reached at long task 2 end.
-  EXPECT_EQ(GetInteractiveTime(), (t0 + base::TimeDelta::FromSecondsD(11.1)));
+  EXPECT_EQ(GetInteractiveTime(), (t0 + base::Seconds(11.1)));
 }
 
 TEST_F(InteractiveDetectorTest, NetworkBusyBlocksTTIEvenWhenMainThreadQuiet) {
   base::TimeTicks t0 = Now();
   SimulateNavigationStart(t0);
   SetActiveConnections(1);
-  SimulateDOMContentLoadedEnd(t0 + base::TimeDelta::FromSeconds(2));
+  SimulateDOMContentLoadedEnd(t0 + base::Seconds(2));
+  SimulateResourceLoadBegin(t0 + base::Seconds(3.4));  // Request 2 start.
   SimulateResourceLoadBegin(
-      t0 + base::TimeDelta::FromSecondsD(3.4));  // Request 2 start.
-  SimulateResourceLoadBegin(t0 + base::TimeDelta::FromSecondsD(
-                                     3.5));  // Request 3 start. Network busy.
+      t0 + base::Seconds(3.5));  // Request 3 start. Network busy.
   SimulateFCPDetected(
-      /* fcp_time */ t0 + base::TimeDelta::FromSeconds(3),
-      /* detection_time */ t0 + base::TimeDelta::FromSeconds(4));
-  SimulateLongTask(t0 + base::TimeDelta::FromSeconds(7),
-                   t0 + base::TimeDelta::FromSecondsD(7.1));  // Long task 1.
-  SimulateResourceLoadEnd(
-      t0 + base::TimeDelta::FromSecondsD(12.2));  // Network quiet.
+      /* fcp_time */ t0 + base::Seconds(3),
+      /* detection_time */ t0 + base::Seconds(4));
+  SimulateLongTask(t0 + base::Seconds(7),
+                   t0 + base::Seconds(7.1));          // Long task 1.
+  SimulateResourceLoadEnd(t0 + base::Seconds(12.2));  // Network quiet.
   // Network busy kept page from reaching TTI..
   EXPECT_EQ(GetInteractiveTime(), base::TimeTicks());
-  SimulateLongTask(t0 + base::TimeDelta::FromSeconds(13),
-                   t0 + base::TimeDelta::FromSecondsD(13.1));  // Long task 2.
+  SimulateLongTask(t0 + base::Seconds(13),
+                   t0 + base::Seconds(13.1));  // Long task 2.
   // Run till 5 seconds after long task 2 end.
-  RunTillTimestamp((t0 + base::TimeDelta::FromSecondsD(13.1)) +
-                   base::TimeDelta::FromSecondsD(5.0 + 0.1));
-  EXPECT_EQ(GetInteractiveTime(), (t0 + base::TimeDelta::FromSecondsD(13.1)));
+  RunTillTimestamp((t0 + base::Seconds(13.1)) + base::Seconds(5.0 + 0.1));
+  EXPECT_EQ(GetInteractiveTime(), (t0 + base::Seconds(13.1)));
 }
 
 // FCP is a presentation timestamp, which is computed by another process and
@@ -396,102 +379,90 @@
   base::TimeTicks t0 = Now();
   SimulateNavigationStart(t0);
   SetActiveConnections(1);
-  SimulateDOMContentLoadedEnd(t0 + base::TimeDelta::FromSeconds(2));
-  SimulateLongTask(t0 + base::TimeDelta::FromSecondsD(2.1),
-                   t0 + base::TimeDelta::FromSecondsD(2.2));  // Long task 1.
-  SimulateLongTask(t0 + base::TimeDelta::FromSecondsD(8.2),
-                   t0 + base::TimeDelta::FromSecondsD(8.3));  // Long task 2.
+  SimulateDOMContentLoadedEnd(t0 + base::Seconds(2));
+  SimulateLongTask(t0 + base::Seconds(2.1),
+                   t0 + base::Seconds(2.2));  // Long task 1.
+  SimulateLongTask(t0 + base::Seconds(8.2),
+                   t0 + base::Seconds(8.3));           // Long task 2.
+  SimulateResourceLoadBegin(t0 + base::Seconds(8.4));  // Request 2 start.
   SimulateResourceLoadBegin(
-      t0 + base::TimeDelta::FromSecondsD(8.4));  // Request 2 start.
-  SimulateResourceLoadBegin(t0 + base::TimeDelta::FromSecondsD(
-                                     8.5));  // Request 3 start. Network busy.
+      t0 + base::Seconds(8.5));  // Request 3 start. Network busy.
   SimulateFCPDetected(
-      /* fcp_time */ t0 + base::TimeDelta::FromSeconds(3),
-      /* detection_time */ t0 + base::TimeDelta::FromSeconds(10));
+      /* fcp_time */ t0 + base::Seconds(3),
+      /* detection_time */ t0 + base::Seconds(10));
   // Even though network is currently busy and we have long task finishing
   // recently, we should be able to detect that the page already achieved TTI at
   // FCP.
-  EXPECT_EQ(GetInteractiveTime(), t0 + base::TimeDelta::FromSeconds(3));
+  EXPECT_EQ(GetInteractiveTime(), t0 + base::Seconds(3));
 }
 
 TEST_F(InteractiveDetectorTest, NetworkBusyEndIsNotTTI) {
   base::TimeTicks t0 = Now();
   SimulateNavigationStart(t0);
   SetActiveConnections(1);
-  SimulateDOMContentLoadedEnd(t0 + base::TimeDelta::FromSeconds(2));
+  SimulateDOMContentLoadedEnd(t0 + base::Seconds(2));
+  SimulateResourceLoadBegin(t0 + base::Seconds(3.4));  // Request 2 start.
   SimulateResourceLoadBegin(
-      t0 + base::TimeDelta::FromSecondsD(3.4));  // Request 2 start.
-  SimulateResourceLoadBegin(t0 + base::TimeDelta::FromSecondsD(
-                                     3.5));  // Request 3 start. Network busy.
+      t0 + base::Seconds(3.5));  // Request 3 start. Network busy.
   SimulateFCPDetected(
-      /* fcp_time */ t0 + base::TimeDelta::FromSeconds(3),
-      /* detection_time */ t0 + base::TimeDelta::FromSeconds(4));
-  SimulateLongTask(t0 + base::TimeDelta::FromSeconds(7),
-                   t0 + base::TimeDelta::FromSecondsD(7.1));  // Long task 1.
-  SimulateLongTask(t0 + base::TimeDelta::FromSeconds(13),
-                   t0 + base::TimeDelta::FromSecondsD(13.1));  // Long task 2.
-  SimulateResourceLoadEnd(t0 +
-                          base::TimeDelta::FromSeconds(14));  // Network quiet.
+      /* fcp_time */ t0 + base::Seconds(3),
+      /* detection_time */ t0 + base::Seconds(4));
+  SimulateLongTask(t0 + base::Seconds(7),
+                   t0 + base::Seconds(7.1));  // Long task 1.
+  SimulateLongTask(t0 + base::Seconds(13),
+                   t0 + base::Seconds(13.1));       // Long task 2.
+  SimulateResourceLoadEnd(t0 + base::Seconds(14));  // Network quiet.
   // Run till 5 seconds after network busy end.
-  RunTillTimestamp((t0 + base::TimeDelta::FromSeconds(14)) +
-                   base::TimeDelta::FromSecondsD(5.0 + 0.1));
+  RunTillTimestamp((t0 + base::Seconds(14)) + base::Seconds(5.0 + 0.1));
   // TTI reached at long task 2 end, NOT at network busy end.
-  EXPECT_EQ(GetInteractiveTime(), t0 + base::TimeDelta::FromSecondsD(13.1));
+  EXPECT_EQ(GetInteractiveTime(), t0 + base::Seconds(13.1));
 }
 
 TEST_F(InteractiveDetectorTest, LateLongTaskWithLateFCPDetection) {
   base::TimeTicks t0 = Now();
   SimulateNavigationStart(t0);
   SetActiveConnections(1);
-  SimulateDOMContentLoadedEnd(t0 + base::TimeDelta::FromSeconds(2));
+  SimulateDOMContentLoadedEnd(t0 + base::Seconds(2));
+  SimulateResourceLoadBegin(t0 + base::Seconds(3.4));  // Request 2 start.
   SimulateResourceLoadBegin(
-      t0 + base::TimeDelta::FromSecondsD(3.4));  // Request 2 start.
-  SimulateResourceLoadBegin(t0 + base::TimeDelta::FromSecondsD(
-                                     3.5));  // Request 3 start. Network busy.
-  SimulateLongTask(t0 + base::TimeDelta::FromSeconds(7),
-                   t0 + base::TimeDelta::FromSecondsD(7.1));  // Long task 1.
-  SimulateResourceLoadEnd(t0 +
-                          base::TimeDelta::FromSeconds(8));  // Network quiet.
-  SimulateLongTask(t0 + base::TimeDelta::FromSeconds(14),
-                   t0 + base::TimeDelta::FromSecondsD(14.1));  // Long task 2.
+      t0 + base::Seconds(3.5));  // Request 3 start. Network busy.
+  SimulateLongTask(t0 + base::Seconds(7),
+                   t0 + base::Seconds(7.1));       // Long task 1.
+  SimulateResourceLoadEnd(t0 + base::Seconds(8));  // Network quiet.
+  SimulateLongTask(t0 + base::Seconds(14),
+                   t0 + base::Seconds(14.1));  // Long task 2.
   SimulateFCPDetected(
-      /* fcp_time */ t0 + base::TimeDelta::FromSeconds(3),
-      /* detection_time */ t0 + base::TimeDelta::FromSeconds(20));
+      /* fcp_time */ t0 + base::Seconds(3),
+      /* detection_time */ t0 + base::Seconds(20));
   // TTI reached at long task 1 end, NOT at long task 2 end.
-  EXPECT_EQ(GetInteractiveTime(), t0 + base::TimeDelta::FromSecondsD(7.1));
+  EXPECT_EQ(GetInteractiveTime(), t0 + base::Seconds(7.1));
 }
 
 TEST_F(InteractiveDetectorTest, IntermittentNetworkBusyBlocksTTI) {
   base::TimeTicks t0 = Now();
   SimulateNavigationStart(t0);
   SetActiveConnections(1);
-  SimulateDOMContentLoadedEnd(t0 + base::TimeDelta::FromSeconds(2));
+  SimulateDOMContentLoadedEnd(t0 + base::Seconds(2));
   SimulateFCPDetected(
-      /* fcp_time */ t0 + base::TimeDelta::FromSeconds(3),
-      /* detection_time */ t0 + base::TimeDelta::FromSeconds(4));
-  SimulateLongTask(t0 + base::TimeDelta::FromSeconds(7),
-                   t0 + base::TimeDelta::FromSecondsD(7.1));  // Long task 1.
-  SimulateResourceLoadBegin(
-      t0 + base::TimeDelta::FromSecondsD(7.9));  // Active connections: 2
+      /* fcp_time */ t0 + base::Seconds(3),
+      /* detection_time */ t0 + base::Seconds(4));
+  SimulateLongTask(t0 + base::Seconds(7),
+                   t0 + base::Seconds(7.1));           // Long task 1.
+  SimulateResourceLoadBegin(t0 + base::Seconds(7.9));  // Active connections: 2
   // Network busy start.
-  SimulateResourceLoadBegin(
-      t0 + base::TimeDelta::FromSeconds(8));  // Active connections: 3.
+  SimulateResourceLoadBegin(t0 + base::Seconds(8));  // Active connections: 3.
   // Network busy end.
-  SimulateResourceLoadEnd(
-      t0 + base::TimeDelta::FromSecondsD(8.5));  // Active connections: 2.
+  SimulateResourceLoadEnd(t0 + base::Seconds(8.5));  // Active connections: 2.
   // Network busy start.
-  SimulateResourceLoadBegin(
-      t0 + base::TimeDelta::FromSeconds(11));  // Active connections: 3.
+  SimulateResourceLoadBegin(t0 + base::Seconds(11));  // Active connections: 3.
   // Network busy end.
-  SimulateResourceLoadEnd(
-      t0 + base::TimeDelta::FromSeconds(12));  // Active connections: 2.
-  SimulateLongTask(t0 + base::TimeDelta::FromSeconds(14),
-                   t0 + base::TimeDelta::FromSecondsD(14.1));  // Long task 2.
+  SimulateResourceLoadEnd(t0 + base::Seconds(12));  // Active connections: 2.
+  SimulateLongTask(t0 + base::Seconds(14),
+                   t0 + base::Seconds(14.1));  // Long task 2.
   // Run till 5 seconds after long task 2 end.
-  RunTillTimestamp((t0 + base::TimeDelta::FromSecondsD(14.1)) +
-                   base::TimeDelta::FromSecondsD(5.0 + 0.1));
+  RunTillTimestamp((t0 + base::Seconds(14.1)) + base::Seconds(5.0 + 0.1));
   // TTI reached at long task 2 end.
-  EXPECT_EQ(GetInteractiveTime(), t0 + base::TimeDelta::FromSecondsD(14.1));
+  EXPECT_EQ(GetInteractiveTime(), t0 + base::Seconds(14.1));
 }
 
 TEST_F(InteractiveDetectorTest, InvalidatingUserInput) {
@@ -499,29 +470,27 @@
   SimulateNavigationStart(t0);
   // Network is forever quiet for this test.
   SetActiveConnections(1);
-  SimulateDOMContentLoadedEnd(t0 + base::TimeDelta::FromSeconds(2));
+  SimulateDOMContentLoadedEnd(t0 + base::Seconds(2));
   SimulateFCPDetected(
-      /* fcp_time */ t0 + base::TimeDelta::FromSeconds(3),
-      /* detection_time */ t0 + base::TimeDelta::FromSeconds(4));
-  SimulateInteractiveInvalidatingInput(t0 + base::TimeDelta::FromSeconds(5));
-  SimulateLongTask(t0 + base::TimeDelta::FromSeconds(7),
-                   t0 + base::TimeDelta::FromSecondsD(7.1));  // Long task 1.
+      /* fcp_time */ t0 + base::Seconds(3),
+      /* detection_time */ t0 + base::Seconds(4));
+  SimulateInteractiveInvalidatingInput(t0 + base::Seconds(5));
+  SimulateLongTask(t0 + base::Seconds(7),
+                   t0 + base::Seconds(7.1));  // Long task 1.
   // Run till 5 seconds after long task 2 end.
-  RunTillTimestamp((t0 + base::TimeDelta::FromSecondsD(7.1)) +
-                   base::TimeDelta::FromSecondsD(5.0 + 0.1));
+  RunTillTimestamp((t0 + base::Seconds(7.1)) + base::Seconds(5.0 + 0.1));
   // We still detect interactive time on the blink side even if there is an
   // invalidating user input. Page Load Metrics filters out this value in the
   // browser process for UMA reporting.
-  EXPECT_EQ(GetInteractiveTime(), t0 + base::TimeDelta::FromSecondsD(7.1));
+  EXPECT_EQ(GetInteractiveTime(), t0 + base::Seconds(7.1));
 }
 
 TEST_F(InteractiveDetectorTest, TaskLongerThan5sBlocksTTI) {
   base::TimeTicks t0 = Now();
   GetDetector()->SetNavigationStartTime(t0);
 
-  SimulateDOMContentLoadedEnd(t0 + base::TimeDelta::FromSeconds(2));
-  SimulateFCPDetected(t0 + base::TimeDelta::FromSeconds(3),
-                      t0 + base::TimeDelta::FromSeconds(4));
+  SimulateDOMContentLoadedEnd(t0 + base::Seconds(2));
+  SimulateFCPDetected(t0 + base::Seconds(3), t0 + base::Seconds(4));
 
   // Post a task with 6 seconds duration.
   Thread::Current()->GetTaskRunner()->PostTask(
@@ -539,9 +508,8 @@
   base::TimeTicks t0 = Now();
   GetDetector()->SetNavigationStartTime(t0);
 
-  SimulateDOMContentLoadedEnd(t0 + base::TimeDelta::FromSeconds(2));
-  SimulateFCPDetected(t0 + base::TimeDelta::FromSeconds(3),
-                      t0 + base::TimeDelta::FromSeconds(4));
+  SimulateDOMContentLoadedEnd(t0 + base::Seconds(2));
+  SimulateFCPDetected(t0 + base::Seconds(3), t0 + base::Seconds(4));
 
   // Long task 1.
   Thread::Current()->GetTaskRunner()->PostTask(
@@ -582,16 +550,14 @@
   // OnTimeToInteractiveDetected() is not called by accident.
   SetActiveConnections(5);
   SimulateFCPDetected(
-      /* fcp_time */ t0 + base::TimeDelta::FromMilliseconds(100),
-      /* detection_time */ t0 + base::TimeDelta::FromMilliseconds(100));
+      /* fcp_time */ t0 + base::Milliseconds(100),
+      /* detection_time */ t0 + base::Milliseconds(100));
 
   // Longtask of duration 51ms, but only 50ms occur after FCP.
-  SimulateLongTask(t0 + base::TimeDelta::FromMilliseconds(99),
-                   t0 + base::TimeDelta::FromMilliseconds(150));
+  SimulateLongTask(t0 + base::Milliseconds(99), t0 + base::Milliseconds(150));
   // Longtask of duration 59ms, but only 49ms occur before TTI.
-  SimulateLongTask(t0 + base::TimeDelta::FromMilliseconds(201),
-                   t0 + base::TimeDelta::FromMilliseconds(260));
-  SetTimeToInteractive(t0 + base::TimeDelta::FromMilliseconds(250));
+  SimulateLongTask(t0 + base::Milliseconds(201), t0 + base::Milliseconds(260));
+  SetTimeToInteractive(t0 + base::Milliseconds(250));
   EXPECT_EQ(GetTotalBlockingTime(), base::TimeDelta());
 }
 
@@ -602,26 +568,21 @@
   // OnTimeToInteractiveDetected() is not called by accident.
   SetActiveConnections(5);
   SimulateFCPDetected(
-      /* fcp_time */ t0 + base::TimeDelta::FromMilliseconds(100),
-      /* detection_time */ t0 + base::TimeDelta::FromMilliseconds(100));
+      /* fcp_time */ t0 + base::Milliseconds(100),
+      /* detection_time */ t0 + base::Milliseconds(100));
 
   // Longtask fully before FCP.
-  SimulateLongTask(t0 + base::TimeDelta::FromMilliseconds(30),
-                   t0 + base::TimeDelta::FromMilliseconds(89));
+  SimulateLongTask(t0 + base::Milliseconds(30), t0 + base::Milliseconds(89));
   // Longtask of duration 70ms, 60 ms of which occur after FCP. +10ms to TBT.
-  SimulateLongTask(t0 + base::TimeDelta::FromMilliseconds(90),
-                   t0 + base::TimeDelta::FromMilliseconds(160));
+  SimulateLongTask(t0 + base::Milliseconds(90), t0 + base::Milliseconds(160));
   // Longtask of duration 80ms between FCP and TTI. +30ms to TBT.
-  SimulateLongTask(t0 + base::TimeDelta::FromMilliseconds(200),
-                   t0 + base::TimeDelta::FromMilliseconds(280));
+  SimulateLongTask(t0 + base::Milliseconds(200), t0 + base::Milliseconds(280));
   // Longtask of duration 90ms, 70ms of which occur before TTI. +20ms to TBT.
-  SimulateLongTask(t0 + base::TimeDelta::FromMilliseconds(300),
-                   t0 + base::TimeDelta::FromMilliseconds(390));
+  SimulateLongTask(t0 + base::Milliseconds(300), t0 + base::Milliseconds(390));
   // Longtask fully after TTI.
-  SimulateLongTask(t0 + base::TimeDelta::FromMilliseconds(371),
-                   t0 + base::TimeDelta::FromMilliseconds(472));
-  SetTimeToInteractive(t0 + base::TimeDelta::FromMilliseconds(370));
-  EXPECT_EQ(GetTotalBlockingTime(), base::TimeDelta::FromMilliseconds(60));
+  SimulateLongTask(t0 + base::Milliseconds(371), t0 + base::Milliseconds(472));
+  SetTimeToInteractive(t0 + base::Milliseconds(370));
+  EXPECT_EQ(GetTotalBlockingTime(), base::Milliseconds(60));
 }
 
 TEST_F(InteractiveDetectorTest, TotalBlockingSingleTask) {
@@ -631,14 +592,14 @@
   // OnTimeToInteractiveDetected() is not called by accident.
   SetActiveConnections(5);
   SimulateFCPDetected(
-      /* fcp_time */ t0 + base::TimeDelta::FromMilliseconds(100),
-      /* detection_time */ t0 + base::TimeDelta::FromMilliseconds(100));
+      /* fcp_time */ t0 + base::Milliseconds(100),
+      /* detection_time */ t0 + base::Milliseconds(100));
 
   // Longtask of duration 1s, from navigation start.
-  SimulateLongTask(t0, t0 + base::TimeDelta::FromSeconds(1));
-  SetTimeToInteractive(t0 + base::TimeDelta::FromMilliseconds(500));
+  SimulateLongTask(t0, t0 + base::Seconds(1));
+  SetTimeToInteractive(t0 + base::Milliseconds(500));
   // Truncated longtask is of length 400. So TBT is 400 - 50 = 350
-  EXPECT_EQ(GetTotalBlockingTime(), base::TimeDelta::FromMilliseconds(350));
+  EXPECT_EQ(GetTotalBlockingTime(), base::Milliseconds(350));
 }
 
 TEST_F(InteractiveDetectorTest, FirstInputDelayForClickOnMobile) {
@@ -649,21 +610,18 @@
                     MessageEvent::Cancelable::kYes,
                     MessageEvent::ComposedMode::kComposed, t0);
   pointerdown.SetTrusted(true);
-  detector->HandleForInputDelay(pointerdown, t0,
-                                t0 + base::TimeDelta::FromMilliseconds(17));
+  detector->HandleForInputDelay(pointerdown, t0, t0 + base::Milliseconds(17));
   EXPECT_FALSE(detector->GetFirstInputDelay().has_value());
   // Pointerup
   Event pointerup(event_type_names::kPointerup, MessageEvent::Bubbles::kYes,
                   MessageEvent::Cancelable::kYes,
                   MessageEvent::ComposedMode::kComposed,
-                  t0 + base::TimeDelta::FromMilliseconds(20));
+                  t0 + base::Milliseconds(20));
   pointerup.SetTrusted(true);
-  detector->HandleForInputDelay(pointerup,
-                                t0 + base::TimeDelta::FromMilliseconds(20),
-                                t0 + base::TimeDelta::FromMilliseconds(50));
+  detector->HandleForInputDelay(pointerup, t0 + base::Milliseconds(20),
+                                t0 + base::Milliseconds(50));
   EXPECT_TRUE(detector->GetFirstInputDelay().has_value());
-  EXPECT_EQ(detector->GetFirstInputDelay().value(),
-            base::TimeDelta::FromMilliseconds(17));
+  EXPECT_EQ(detector->GetFirstInputDelay().value(), base::Milliseconds(17));
 }
 
 TEST_F(InteractiveDetectorTest,
@@ -677,29 +635,25 @@
                     MessageEvent::Cancelable::kYes,
                     MessageEvent::ComposedMode::kComposed, t0);
   pointerdown.SetTrusted(true);
-  detector->HandleForInputDelay(pointerdown, t0,
-                                t0 + base::TimeDelta::FromMilliseconds(17));
+  detector->HandleForInputDelay(pointerdown, t0, t0 + base::Milliseconds(17));
   EXPECT_FALSE(detector->GetFirstInputDelay().has_value());
   // Mousedown
   Event mousedown(event_type_names::kMousedown, MessageEvent::Bubbles::kYes,
                   MessageEvent::Cancelable::kYes,
                   MessageEvent::ComposedMode::kComposed, t0);
   mousedown.SetTrusted(true);
-  detector->HandleForInputDelay(mousedown, t0,
-                                t0 + base::TimeDelta::FromMilliseconds(13));
+  detector->HandleForInputDelay(mousedown, t0, t0 + base::Milliseconds(13));
   EXPECT_FALSE(detector->GetFirstInputDelay().has_value());
   // Pointerup
   Event pointerup(event_type_names::kPointerup, MessageEvent::Bubbles::kYes,
                   MessageEvent::Cancelable::kYes,
                   MessageEvent::ComposedMode::kComposed,
-                  t0 + base::TimeDelta::FromMilliseconds(20));
+                  t0 + base::Milliseconds(20));
   pointerup.SetTrusted(true);
-  detector->HandleForInputDelay(pointerup,
-                                t0 + base::TimeDelta::FromMilliseconds(20),
-                                t0 + base::TimeDelta::FromMilliseconds(50));
+  detector->HandleForInputDelay(pointerup, t0 + base::Milliseconds(20),
+                                t0 + base::Milliseconds(50));
   EXPECT_TRUE(detector->GetFirstInputDelay().has_value());
-  EXPECT_EQ(detector->GetFirstInputDelay().value(),
-            base::TimeDelta::FromMilliseconds(17));
+  EXPECT_EQ(detector->GetFirstInputDelay().value(), base::Milliseconds(17));
 }
 
 TEST_F(InteractiveDetectorTest,
@@ -713,32 +667,27 @@
                     MessageEvent::Cancelable::kYes,
                     MessageEvent::ComposedMode::kComposed, t0);
   pointerdown.SetTrusted(true);
-  detector->HandleForInputDelay(pointerdown, t0,
-                                t0 + base::TimeDelta::FromMilliseconds(17));
+  detector->HandleForInputDelay(pointerdown, t0, t0 + base::Milliseconds(17));
   EXPECT_FALSE(detector->GetFirstInputDelay().has_value());
   // Mousedown
   Event mousedown(event_type_names::kMousedown, MessageEvent::Bubbles::kYes,
                   MessageEvent::Cancelable::kYes,
                   MessageEvent::ComposedMode::kComposed, t0);
   mousedown.SetTrusted(true);
-  detector->HandleForInputDelay(mousedown, t0,
-                                t0 + base::TimeDelta::FromMilliseconds(13));
+  detector->HandleForInputDelay(mousedown, t0, t0 + base::Milliseconds(13));
   EXPECT_TRUE(detector->GetFirstInputDelay().has_value());
-  EXPECT_EQ(detector->GetFirstInputDelay().value(),
-            base::TimeDelta::FromMilliseconds(13));
+  EXPECT_EQ(detector->GetFirstInputDelay().value(), base::Milliseconds(13));
 
   // Pointerup
   Event pointerup(event_type_names::kPointerup, MessageEvent::Bubbles::kYes,
                   MessageEvent::Cancelable::kYes,
                   MessageEvent::ComposedMode::kComposed,
-                  t0 + base::TimeDelta::FromMilliseconds(20));
+                  t0 + base::Milliseconds(20));
   pointerup.SetTrusted(true);
-  detector->HandleForInputDelay(pointerup,
-                                t0 + base::TimeDelta::FromMilliseconds(20),
-                                t0 + base::TimeDelta::FromMilliseconds(50));
+  detector->HandleForInputDelay(pointerup, t0 + base::Milliseconds(20),
+                                t0 + base::Milliseconds(50));
   EXPECT_TRUE(detector->GetFirstInputDelay().has_value());
-  EXPECT_EQ(detector->GetFirstInputDelay().value(),
-            base::TimeDelta::FromMilliseconds(13));
+  EXPECT_EQ(detector->GetFirstInputDelay().value(), base::Milliseconds(13));
 }
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/loader/long_task_detector.h b/third_party/blink/renderer/core/loader/long_task_detector.h
index 92d891f..241f74b 100644
--- a/third_party/blink/renderer/core/loader/long_task_detector.h
+++ b/third_party/blink/renderer/core/loader/long_task_detector.h
@@ -40,8 +40,7 @@
 
   void Trace(Visitor*) const;
 
-  static constexpr base::TimeDelta kLongTaskThreshold =
-      base::TimeDelta::FromMilliseconds(50);
+  static constexpr base::TimeDelta kLongTaskThreshold = base::Milliseconds(50);
 
  private:
   // scheduler::TaskTimeObserver implementation
diff --git a/third_party/blink/renderer/core/loader/long_task_detector_test.cc b/third_party/blink/renderer/core/loader/long_task_detector_test.cc
index 403ba4523..fb88b59 100644
--- a/third_party/blink/renderer/core/loader/long_task_detector_test.cc
+++ b/third_party/blink/renderer/core/loader/long_task_detector_test.cc
@@ -85,21 +85,18 @@
 TEST_F(LongTaskDetectorTest, DeliversLongTaskNotificationOnlyWhenRegistered) {
   TestLongTaskObserver* long_task_observer =
       MakeGarbageCollected<TestLongTaskObserver>();
-  SimulateTask(LongTaskDetector::kLongTaskThreshold +
-               base::TimeDelta::FromMilliseconds(10));
+  SimulateTask(LongTaskDetector::kLongTaskThreshold + base::Milliseconds(10));
   EXPECT_EQ(long_task_observer->last_long_task_end, base::TimeTicks());
 
   LongTaskDetector::Instance().RegisterObserver(long_task_observer);
-  SimulateTask(LongTaskDetector::kLongTaskThreshold +
-               base::TimeDelta::FromMilliseconds(10));
+  SimulateTask(LongTaskDetector::kLongTaskThreshold + base::Milliseconds(10));
   base::TimeTicks long_task_end_when_registered = DummyTaskEndTime();
   EXPECT_EQ(long_task_observer->last_long_task_start, DummyTaskStartTime());
   EXPECT_EQ(long_task_observer->last_long_task_end,
             long_task_end_when_registered);
 
   LongTaskDetector::Instance().UnregisterObserver(long_task_observer);
-  SimulateTask(LongTaskDetector::kLongTaskThreshold +
-               base::TimeDelta::FromMilliseconds(10));
+  SimulateTask(LongTaskDetector::kLongTaskThreshold + base::Milliseconds(10));
   // Check that we have a long task after unregistering observer.
   ASSERT_FALSE(long_task_end_when_registered == DummyTaskEndTime());
   EXPECT_EQ(long_task_observer->last_long_task_end,
@@ -110,12 +107,10 @@
   TestLongTaskObserver* long_task_observer =
       MakeGarbageCollected<TestLongTaskObserver>();
   LongTaskDetector::Instance().RegisterObserver(long_task_observer);
-  SimulateTask(LongTaskDetector::kLongTaskThreshold -
-               base::TimeDelta::FromMilliseconds(10));
+  SimulateTask(LongTaskDetector::kLongTaskThreshold - base::Milliseconds(10));
   EXPECT_EQ(long_task_observer->last_long_task_end, base::TimeTicks());
 
-  SimulateTask(LongTaskDetector::kLongTaskThreshold +
-               base::TimeDelta::FromMilliseconds(10));
+  SimulateTask(LongTaskDetector::kLongTaskThreshold + base::Milliseconds(10));
   EXPECT_EQ(long_task_observer->last_long_task_end, DummyTaskEndTime());
   LongTaskDetector::Instance().UnregisterObserver(long_task_observer);
 }
@@ -126,8 +121,7 @@
   LongTaskDetector::Instance().RegisterObserver(long_task_observer);
   LongTaskDetector::Instance().RegisterObserver(long_task_observer);
 
-  SimulateTask(LongTaskDetector::kLongTaskThreshold +
-               base::TimeDelta::FromMilliseconds(10));
+  SimulateTask(LongTaskDetector::kLongTaskThreshold + base::Milliseconds(10));
   base::TimeTicks long_task_end_when_registered = DummyTaskEndTime();
   EXPECT_EQ(long_task_observer->last_long_task_start, DummyTaskStartTime());
   EXPECT_EQ(long_task_observer->last_long_task_end,
@@ -136,8 +130,7 @@
   LongTaskDetector::Instance().UnregisterObserver(long_task_observer);
   // Should only need to unregister once even after we called RegisterObserver
   // twice.
-  SimulateTask(LongTaskDetector::kLongTaskThreshold +
-               base::TimeDelta::FromMilliseconds(10));
+  SimulateTask(LongTaskDetector::kLongTaskThreshold + base::Milliseconds(10));
   ASSERT_FALSE(long_task_end_when_registered == DummyTaskEndTime());
   EXPECT_EQ(long_task_observer->last_long_task_end,
             long_task_end_when_registered);
@@ -147,13 +140,11 @@
   auto* observer = MakeGarbageCollected<SelfUnregisteringObserver>();
 
   LongTaskDetector::Instance().RegisterObserver(observer);
-  SimulateTask(LongTaskDetector::kLongTaskThreshold +
-               base::TimeDelta::FromMilliseconds(10));
+  SimulateTask(LongTaskDetector::kLongTaskThreshold + base::Milliseconds(10));
   EXPECT_TRUE(observer->IsCalled());
   observer->Reset();
 
-  SimulateTask(LongTaskDetector::kLongTaskThreshold +
-               base::TimeDelta::FromMilliseconds(10));
+  SimulateTask(LongTaskDetector::kLongTaskThreshold + base::Milliseconds(10));
   EXPECT_FALSE(observer->IsCalled());
 }
 
diff --git a/third_party/blink/renderer/core/loader/resource/font_resource.cc b/third_party/blink/renderer/core/loader/resource/font_resource.cc
index 4ba2bb5..ac2560f 100644
--- a/third_party/blink/renderer/core/loader/resource/font_resource.cc
+++ b/third_party/blink/renderer/core/loader/resource/font_resource.cc
@@ -45,10 +45,8 @@
 // https://tabatkins.github.io/specs/css-font-display/#font-display-desc
 // TODO(toyoshim): Revisit short limit value once cache-aware font display is
 // launched. crbug.com/570205
-constexpr base::TimeDelta kFontLoadWaitShort =
-    base::TimeDelta::FromMilliseconds(100);
-constexpr base::TimeDelta kFontLoadWaitLong =
-    base::TimeDelta::FromMilliseconds(3000);
+constexpr base::TimeDelta kFontLoadWaitShort = base::Milliseconds(100);
+constexpr base::TimeDelta kFontLoadWaitLong = base::Milliseconds(3000);
 
 FontResource* FontResource::Fetch(FetchParameters& params,
                                   ResourceFetcher* fetcher,
diff --git a/third_party/blink/renderer/core/loader/resource/image_resource.cc b/third_party/blink/renderer/core/loader/resource/image_resource.cc
index 2849ca2d5..c162723 100644
--- a/third_party/blink/renderer/core/loader/resource/image_resource.cc
+++ b/third_party/blink/renderer/core/loader/resource/image_resource.cc
@@ -63,7 +63,7 @@
 // The amount of time to wait before informing the clients that the image has
 // been updated (in seconds). This effectively throttles invalidations that
 // result from new data arriving for this image.
-constexpr auto kFlushDelay = base::TimeDelta::FromSeconds(1);
+constexpr auto kFlushDelay = base::Seconds(1);
 
 }  // namespace
 
diff --git a/third_party/blink/renderer/core/mobile_metrics/mobile_friendliness_checker.cc b/third_party/blink/renderer/core/mobile_metrics/mobile_friendliness_checker.cc
index 7ce303c..9ed61a2 100644
--- a/third_party/blink/renderer/core/mobile_metrics/mobile_friendliness_checker.cc
+++ b/third_party/blink/renderer/core/mobile_metrics/mobile_friendliness_checker.cc
@@ -37,7 +37,7 @@
 // Finding bad tap targets may takes too time for big page and should abort if
 // it takes more than 5ms.
 static constexpr base::TimeDelta kTimeBudgetForBadTapTarget =
-    base::TimeDelta::FromMilliseconds(5);
+    base::Milliseconds(5);
 
 MobileFriendlinessChecker::MobileFriendlinessChecker(LocalFrameView& frame_view)
     : frame_view_(&frame_view),
diff --git a/third_party/blink/renderer/core/mobile_metrics/mobile_friendliness_checker_test.cc b/third_party/blink/renderer/core/mobile_metrics/mobile_friendliness_checker_test.cc
index e19969be..074a6ed1 100644
--- a/third_party/blink/renderer/core/mobile_metrics/mobile_friendliness_checker_test.cc
+++ b/third_party/blink/renderer/core/mobile_metrics/mobile_friendliness_checker_test.cc
@@ -985,7 +985,7 @@
       []() {
         // Time::Now() progress 1 ms stride for every check to force timeout.
         static base::Time now = base::subtle::TimeNowIgnoringOverride();
-        now += base::TimeDelta::FromMilliseconds(1);
+        now += base::Milliseconds(1);
         return now;
       },
       nullptr, nullptr);
diff --git a/third_party/blink/renderer/core/origin_trials/origin_trial_context_test.cc b/third_party/blink/renderer/core/origin_trials/origin_trial_context_test.cc
index ef30aa4..31f4d27f 100644
--- a/third_party/blink/renderer/core/origin_trials/origin_trial_context_test.cc
+++ b/third_party/blink/renderer/core/origin_trials/origin_trial_context_test.cc
@@ -483,8 +483,7 @@
   base::Time nowish = base::Time::Now();
   // A non-success response shouldn't affect Frobulate's expiry time.
   TokenValidator()->SetResponse(OriginTrialTokenStatus::kMalformed,
-                                kFrobulateTrialName,
-                                nowish + base::TimeDelta::FromDays(2));
+                                kFrobulateTrialName, nowish + base::Days(2));
   EXPECT_FALSE(IsFeatureEnabled(OriginTrialFeature::kOriginTrialsSampleAPI));
   EXPECT_EQ(base::Time(),
             GetFeatureExpiry(OriginTrialFeature::kOriginTrialsSampleAPI));
@@ -492,14 +491,14 @@
   // A different trial shouldn't affect Frobulate's expiry time.
   TokenValidator()->SetResponse(OriginTrialTokenStatus::kSuccess,
                                 kFrobulateDeprecationTrialName,
-                                nowish + base::TimeDelta::FromDays(3));
+                                nowish + base::Days(3));
   EXPECT_TRUE(
       IsFeatureEnabled(OriginTrialFeature::kOriginTrialsSampleAPIDeprecation));
   EXPECT_EQ(base::Time(),
             GetFeatureExpiry(OriginTrialFeature::kOriginTrialsSampleAPI));
 
   // A valid trial should update the expiry time.
-  base::Time expected_expiry = nowish + base::TimeDelta::FromDays(1);
+  base::Time expected_expiry = nowish + base::Days(1);
   TokenValidator()->SetResponse(OriginTrialTokenStatus::kSuccess,
                                 kFrobulateTrialName, expected_expiry);
   EXPECT_TRUE(IsFeatureEnabled(OriginTrialFeature::kOriginTrialsSampleAPI));
@@ -510,9 +509,9 @@
 TEST_F(OriginTrialContextTest, LastExpiryForFeatureIsUsed) {
   UpdateSecurityOrigin(kFrobulateEnabledOrigin);
 
-  base::Time plusone = base::Time::Now() + base::TimeDelta::FromDays(1);
-  base::Time plustwo = plusone + base::TimeDelta::FromDays(1);
-  base::Time plusthree = plustwo + base::TimeDelta::FromDays(1);
+  base::Time plusone = base::Time::Now() + base::Days(1);
+  base::Time plustwo = plusone + base::Days(1);
+  base::Time plusthree = plustwo + base::Days(1);
 
   TokenValidator()->SetResponse(OriginTrialTokenStatus::kSuccess,
                                 kFrobulateTrialName, plusone);
@@ -536,7 +535,7 @@
 TEST_F(OriginTrialContextTest, ImpliedFeatureExpiryTimesAreUpdated) {
   UpdateSecurityOrigin(kFrobulateEnabledOrigin);
 
-  base::Time tomorrow = base::Time::Now() + base::TimeDelta::FromDays(1);
+  base::Time tomorrow = base::Time::Now() + base::Days(1);
   TokenValidator()->SetResponse(OriginTrialTokenStatus::kSuccess,
                                 kFrobulateTrialName, tomorrow);
   EXPECT_TRUE(IsFeatureEnabled(OriginTrialFeature::kOriginTrialsSampleAPI));
diff --git a/third_party/blink/renderer/core/page/autoscroll_controller.cc b/third_party/blink/renderer/core/page/autoscroll_controller.cc
index ebef6eb..5f7c136 100644
--- a/third_party/blink/renderer/core/page/autoscroll_controller.cc
+++ b/third_party/blink/renderer/core/page/autoscroll_controller.cc
@@ -48,7 +48,7 @@
 
 // Delay time in second for start autoscroll if pointer is in border edge of
 // scrollable element.
-constexpr base::TimeDelta kAutoscrollDelay = base::TimeDelta::FromSecondsD(0.2);
+constexpr base::TimeDelta kAutoscrollDelay = base::Seconds(0.2);
 
 static const int kNoMiddleClickAutoscrollRadius = 15;
 
diff --git a/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor_metrics_test.cc b/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor_metrics_test.cc
index 95db66c..e665fb2 100644
--- a/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor_metrics_test.cc
+++ b/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor_metrics_test.cc
@@ -998,7 +998,7 @@
       "TextFragmentAnchor.Unknown.TimeToScrollToTop", 0);
 
   const int64_t time_to_scroll_to_top = 500;
-  tick_clock.Advance(base::TimeDelta::FromMilliseconds(time_to_scroll_to_top));
+  tick_clock.Advance(base::Milliseconds(time_to_scroll_to_top));
 
   ASSERT_GT(GetDocument().View()->LayoutViewport()->GetScrollOffset().Height(),
             100);
diff --git a/third_party/blink/renderer/core/page/validation_message_client_impl.cc b/third_party/blink/renderer/core/page/validation_message_client_impl.cc
index 6eab1fe..54b873d 100644
--- a/third_party/blink/renderer/core/page/validation_message_client_impl.cc
+++ b/third_party/blink/renderer/core/page/validation_message_client_impl.cc
@@ -67,9 +67,8 @@
   current_anchor_ = &anchor;
   message_ = message;
   page_->GetChromeClient().RegisterPopupOpeningObserver(this);
-  constexpr auto kMinimumTimeToShowValidationMessage =
-      base::TimeDelta::FromSeconds(5);
-  constexpr auto kTimePerCharacter = base::TimeDelta::FromMilliseconds(50);
+  constexpr auto kMinimumTimeToShowValidationMessage = base::Seconds(5);
+  constexpr auto kTimePerCharacter = base::Milliseconds(50);
   finish_time_ =
       base::TimeTicks::Now() +
       std::max(kMinimumTimeToShowValidationMessage,
@@ -114,8 +113,7 @@
       &ValidationMessageClientImpl::Reset);
   // This should be equal to or larger than transition duration of
   // #container.hiding in validation_bubble.css.
-  const base::TimeDelta kHidingAnimationDuration =
-      base::TimeDelta::FromSecondsD(0.13333);
+  const base::TimeDelta kHidingAnimationDuration = base::Seconds(0.13333);
   timer_->Value().StartOneShot(kHidingAnimationDuration, FROM_HERE);
 }
 
diff --git a/third_party/blink/renderer/core/page/validation_message_overlay_delegate_test.cc b/third_party/blink/renderer/core/page/validation_message_overlay_delegate_test.cc
index f07c8fb..a665567d 100644
--- a/third_party/blink/renderer/core/page/validation_message_overlay_delegate_test.cc
+++ b/third_party/blink/renderer/core/page/validation_message_overlay_delegate_test.cc
@@ -123,7 +123,7 @@
   AnimationClock& external_clock = GetPage().Animator().Clock();
   base::TimeTicks current_time = external_clock.CurrentTime();
 
-  base::TimeTicks new_time = current_time + base::TimeDelta::FromSeconds(1);
+  base::TimeTicks new_time = current_time + base::Seconds(1);
   PageWidgetDelegate::Animate(GetPage(), new_time);
 
   // TODO(crbug.com/785940): Until this bug is fixed, this comparison could pass
diff --git a/third_party/blink/renderer/core/paint/first_meaningful_paint_detector_test.cc b/third_party/blink/renderer/core/paint/first_meaningful_paint_detector_test.cc
index 07f86b4..e3b4a22 100644
--- a/third_party/blink/renderer/core/paint/first_meaningful_paint_detector_test.cc
+++ b/third_party/blink/renderer/core/paint/first_meaningful_paint_detector_test.cc
@@ -16,7 +16,7 @@
  protected:
   void SetUp() override {
     EnablePlatform();
-    platform()->AdvanceClock(base::TimeDelta::FromSeconds(1));
+    platform()->AdvanceClock(base::Seconds(1));
     const base::TickClock* test_clock =
         platform()->test_task_runner()->GetMockTickClock();
     FirstMeaningfulPaintDetector::SetTickClockForTesting(test_clock);
@@ -34,7 +34,7 @@
   base::TimeTicks Now() { return platform()->test_task_runner()->NowTicks(); }
 
   base::TimeTicks AdvanceClockAndGetTime() {
-    platform()->AdvanceClock(base::TimeDelta::FromSeconds(1));
+    platform()->AdvanceClock(base::Seconds(1));
     return Now();
   }
 
@@ -44,7 +44,7 @@
   }
 
   void SimulateLayoutAndPaint(int new_elements) {
-    platform()->AdvanceClock(base::TimeDelta::FromMilliseconds(1));
+    platform()->AdvanceClock(base::Milliseconds(1));
     StringBuilder builder;
     for (int i = 0; i < new_elements; i++)
       builder.Append("<span>a</span>");
@@ -61,19 +61,19 @@
   void SimulateUserInput() { Detector().NotifyInputEvent(); }
 
   void ClearFirstPaintPresentationPromise() {
-    platform()->AdvanceClock(base::TimeDelta::FromMilliseconds(1));
+    platform()->AdvanceClock(base::Milliseconds(1));
     GetPaintTiming().ReportPresentationTime(PaintEvent::kFirstPaint,
                                             WebSwapResult::kDidSwap, Now());
   }
 
   void ClearFirstContentfulPaintPresentationPromise() {
-    platform()->AdvanceClock(base::TimeDelta::FromMilliseconds(1));
+    platform()->AdvanceClock(base::Milliseconds(1));
     GetPaintTiming().ReportPresentationTime(PaintEvent::kFirstContentfulPaint,
                                             WebSwapResult::kDidSwap, Now());
   }
 
   void ClearProvisionalFirstMeaningfulPaintPresentationPromise() {
-    platform()->AdvanceClock(base::TimeDelta::FromMilliseconds(1));
+    platform()->AdvanceClock(base::Milliseconds(1));
     ClearProvisionalFirstMeaningfulPaintPresentationPromise(Now());
   }
 
@@ -211,7 +211,7 @@
   SimulateLayoutAndPaint(10);
   EXPECT_EQ(OutstandingDetectorPresentationPromiseCount(), 1U);
   ClearProvisionalFirstMeaningfulPaintPresentationPromise();
-  platform()->AdvanceClock(base::TimeDelta::FromMilliseconds(1));
+  platform()->AdvanceClock(base::Milliseconds(1));
   MarkFirstContentfulPaintAndClearPresentationPromise();
   SimulateNetworkStable();
   EXPECT_GE(GetPaintTiming().FirstMeaningfulPaint(),
@@ -255,7 +255,7 @@
   MarkFirstContentfulPaintAndClearPresentationPromise();
   SimulateLayoutAndPaint(1);
   EXPECT_EQ(OutstandingDetectorPresentationPromiseCount(), 1U);
-  platform()->AdvanceClock(base::TimeDelta::FromMilliseconds(1));
+  platform()->AdvanceClock(base::Milliseconds(1));
   SimulateLayoutAndPaint(10);
   EXPECT_EQ(OutstandingDetectorPresentationPromiseCount(), 2U);
   // Having outstanding presentation promises should defer setting FMP.
@@ -279,7 +279,7 @@
   SimulateLayoutAndPaint(10);
   EXPECT_EQ(OutstandingDetectorPresentationPromiseCount(), 1U);
   ClearProvisionalFirstMeaningfulPaintPresentationPromise();
-  platform()->AdvanceClock(base::TimeDelta::FromMilliseconds(1));
+  platform()->AdvanceClock(base::Milliseconds(1));
   GetPaintTiming().MarkFirstContentfulPaint();
   // FCP > FMP candidate, but still waiting for FCP presentation.
   SimulateNetworkStable();
@@ -300,13 +300,13 @@
 
   // Simulate network stable so provisional FMP will be set on next layout.
   base::TimeTicks pre_stable_timestamp = AdvanceClockAndGetTime();
-  platform()->AdvanceClock(base::TimeDelta::FromMilliseconds(1));
+  platform()->AdvanceClock(base::Milliseconds(1));
   SimulateNetworkStable();
   EXPECT_EQ(GetPaintTiming().FirstMeaningfulPaint(), base::TimeTicks());
 
   // Force another FMP candidate while there is a pending presentation promise
   // and the FMP non-presentation timestamp is set.
-  platform()->AdvanceClock(base::TimeDelta::FromMilliseconds(1));
+  platform()->AdvanceClock(base::Milliseconds(1));
   SimulateLayoutAndPaint(10);
   EXPECT_EQ(OutstandingDetectorPresentationPromiseCount(), 1U);
 
diff --git a/third_party/blink/renderer/core/paint/image_paint_timing_detector_test.cc b/third_party/blink/renderer/core/paint/image_paint_timing_detector_test.cc
index 934779f6..c3df96a 100644
--- a/third_party/blink/renderer/core/paint/image_paint_timing_detector_test.cc
+++ b/third_party/blink/renderer/core/paint/image_paint_timing_detector_test.cc
@@ -183,8 +183,7 @@
     return GetPaintTimingDetector().experimental_largest_image_paint_size_;
   }
 
-  static constexpr base::TimeDelta kQuantumOfTime =
-      base::TimeDelta::FromMilliseconds(10);
+  static constexpr base::TimeDelta kQuantumOfTime = base::Milliseconds(10);
 
   void SimulatePassOfTime() {
     test_task_runner_->FastForwardBy(kQuantumOfTime);
@@ -895,34 +894,32 @@
   image->setAttribute("id", "target");
   GetDocument().getElementById("parent")->AppendChild(image);
   SetImageAndPaint("target", 5, 5);
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSecondsD(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   UpdateAllLifecyclePhasesAndInvokeCallbackIfAny();
   ImageRecord* record;
   record = FindLargestPaintCandidate();
   EXPECT_TRUE(record);
   // UpdateAllLifecyclePhasesAndInvokeCallbackIfAny() moves time forward
   // kQuantumOfTime so we should take that into account.
-  EXPECT_EQ(
-      record->paint_time,
-      base::TimeTicks() + base::TimeDelta::FromSecondsD(1) + kQuantumOfTime);
+  EXPECT_EQ(record->paint_time,
+            base::TimeTicks() + base::Seconds(1) + kQuantumOfTime);
 
   GetDocument().getElementById("parent")->RemoveChild(image);
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSecondsD(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   UpdateAllLifecyclePhasesAndInvokeCallbackIfAny();
   record = FindLargestPaintCandidate();
   EXPECT_FALSE(record);
 
   GetDocument().getElementById("parent")->AppendChild(image);
   SetImageAndPaint("target", 5, 5);
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSecondsD(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   UpdateAllLifecyclePhasesAndInvokeCallbackIfAny();
   record = FindLargestPaintCandidate();
   EXPECT_TRUE(record);
   // UpdateAllLifecyclePhasesAndInvokeCallbackIfAny() moves time forward
   // kQuantumOfTime so we should take that into account.
-  EXPECT_EQ(record->paint_time, base::TimeTicks() +
-                                    base::TimeDelta::FromSecondsD(3) +
-                                    3 * kQuantumOfTime);
+  EXPECT_EQ(record->paint_time,
+            base::TimeTicks() + base::Seconds(3) + 3 * kQuantumOfTime);
 }
 
 // This is to prove that a presentation time is assigned only to nodes of the
diff --git a/third_party/blink/renderer/core/paint/largest_contentful_paint_calculator_test.cc b/third_party/blink/renderer/core/paint/largest_contentful_paint_calculator_test.cc
index 8614bf7..921137a5 100644
--- a/third_party/blink/renderer/core/paint/largest_contentful_paint_calculator_test.cc
+++ b/third_party/blink/renderer/core/paint/largest_contentful_paint_calculator_test.cc
@@ -20,7 +20,7 @@
  public:
   void SetUp() override {
     // Advance the clock so we do not assign null TimeTicks.
-    simulated_clock_.Advance(base::TimeDelta::FromMilliseconds(100));
+    simulated_clock_.Advance(base::Milliseconds(100));
     EnableCompositing();
     RenderingTest::SetUp();
 
diff --git a/third_party/blink/renderer/core/paint/link_highlight_impl.cc b/third_party/blink/renderer/core/paint/link_highlight_impl.cc
index 720398c..6168e08 100644
--- a/third_party/blink/renderer/core/paint/link_highlight_impl.cc
+++ b/third_party/blink/renderer/core/paint/link_highlight_impl.cc
@@ -185,8 +185,8 @@
 
   is_animating_ = true;
   // FIXME: Should duration be configurable?
-  constexpr auto kFadeDuration = base::TimeDelta::FromMilliseconds(100);
-  constexpr auto kMinPreFadeDuration = base::TimeDelta::FromMilliseconds(100);
+  constexpr auto kFadeDuration = base::Milliseconds(100);
+  constexpr auto kMinPreFadeDuration = base::Milliseconds(100);
 
   auto curve = std::make_unique<CompositorFloatAnimationCurve>();
 
diff --git a/third_party/blink/renderer/core/paint/text_paint_timing_detector_test.cc b/third_party/blink/renderer/core/paint/text_paint_timing_detector_test.cc
index dfad1f8..8fff2dc 100644
--- a/third_party/blink/renderer/core/paint/text_paint_timing_detector_test.cc
+++ b/third_party/blink/renderer/core/paint/text_paint_timing_detector_test.cc
@@ -40,7 +40,7 @@
     GetDocument().View()->SetParentVisible(true);
     GetDocument().View()->SetSelfVisible(true);
     // Advance clock so it isn't 0 as rendering code asserts in that case.
-    AdvanceClock(base::TimeDelta::FromMicroseconds(1));
+    AdvanceClock(base::Microseconds(1));
   }
 
  protected:
@@ -175,8 +175,7 @@
     GetDocument().View()->UpdateAllLifecyclePhasesForTest();
   }
 
-  static constexpr base::TimeDelta kQuantumOfTime =
-      base::TimeDelta::FromMilliseconds(10);
+  static constexpr base::TimeDelta kQuantumOfTime = base::Milliseconds(10);
 
   // This only triggers ReportPresentationTime in main frame.
   void UpdateAllLifecyclePhasesAndSimulatePresentationTime() {
@@ -585,20 +584,19 @@
 
 TEST_F(TextPaintTimingDetectorTest, LargestTextPaint_ReportFirstPaintTime) {
   base::TimeTicks start_time = NowTicks();
-  AdvanceClock(base::TimeDelta::FromSecondsD(1));
+  AdvanceClock(base::Seconds(1));
   SetBodyInnerHTML(R"HTML(
   )HTML");
   Element* text = AppendDivElementToBody("text");
   UpdateAllLifecyclePhasesAndSimulatePresentationTime();
-  AdvanceClock(base::TimeDelta::FromSecondsD(1));
+  AdvanceClock(base::Seconds(1));
   text->setAttribute(html_names::kStyleAttr,
                      AtomicString("position:fixed;left:30px"));
   UpdateAllLifecyclePhasesAndSimulatePresentationTime();
-  AdvanceClock(base::TimeDelta::FromSecondsD(1));
+  AdvanceClock(base::Seconds(1));
   TextRecord* record = TextRecordOfLargestTextPaint();
   EXPECT_TRUE(record);
-  EXPECT_EQ(record->paint_time,
-            start_time + base::TimeDelta::FromSecondsD(1) + kQuantumOfTime);
+  EXPECT_EQ(record->paint_time, start_time + base::Seconds(1) + kQuantumOfTime);
   EXPECT_EQ(LargestPaintSize(), ExperimentalLargestPaintSize());
   EXPECT_EQ(LargestPaintTime(), ExperimentalLargestPaintTime());
 }
diff --git a/third_party/blink/renderer/core/scheduler_integration_tests/throttling_test.cc b/third_party/blink/renderer/core/scheduler_integration_tests/throttling_test.cc
index de31c75..7cc181d 100644
--- a/third_party/blink/renderer/core/scheduler_integration_tests/throttling_test.cc
+++ b/third_party/blink/renderer/core/scheduler_integration_tests/throttling_test.cc
@@ -24,8 +24,7 @@
 
 // When a page is backgrounded this is the absolute smallest amount of time
 // that can elapse between timer wake-ups.
-constexpr auto kDefaultThrottledWakeUpInterval =
-    base::TimeDelta::FromSeconds(1);
+constexpr auto kDefaultThrottledWakeUpInterval = base::Seconds(1);
 
 // This test suite relies on messages being posted to the console. In order to
 // be resilient against messages not posted by this specific test suite, a small
@@ -39,10 +38,9 @@
     platform_->SetAutoAdvanceNowToPendingTasks(false);
 
     // Align the time on a 1-minute interval, to simplify expectations.
-    platform_->AdvanceClock(
-        platform_->NowTicks().SnappedToNextTick(
-            base::TimeTicks(), base::TimeDelta::FromMinutes(1)) -
-        platform_->NowTicks());
+    platform_->AdvanceClock(platform_->NowTicks().SnappedToNextTick(
+                                base::TimeTicks(), base::Minutes(1)) -
+                            platform_->NowTicks());
   }
 
   String BuildTimerConsoleMessage(String suffix = String()) {
@@ -105,7 +103,7 @@
 
   // Run delayed tasks for 1 second. All tasks should be completed
   // with throttling disabled.
-  platform_->RunForPeriod(base::TimeDelta::FromSeconds(1));
+  platform_->RunForPeriod(base::Seconds(1));
 
   EXPECT_THAT(FilteredConsoleMessages(),
               ElementsAre(console_message, console_message, console_message,
@@ -134,7 +132,7 @@
   GetDocument().GetPage()->GetPageScheduler()->SetPageVisible(false);
 
   // Make sure that we run no more than one task a second.
-  platform_->RunForPeriod(base::TimeDelta::FromSeconds(3));
+  platform_->RunForPeriod(base::Seconds(3));
   EXPECT_THAT(FilteredConsoleMessages(),
               ElementsAre(console_message, console_message, console_message));
 }
@@ -162,15 +160,15 @@
       timeout_5_message.Utf8().c_str()));
   GetDocument().GetPage()->GetPageScheduler()->SetPageVisible(false);
 
-  platform_->RunForPeriod(base::TimeDelta::FromMilliseconds(1001));
+  platform_->RunForPeriod(base::Milliseconds(1001));
   EXPECT_THAT(FilteredConsoleMessages(),
               ElementsAre(timeout_0_message, timeout_minus_1_message));
 
-  platform_->RunForPeriod(base::TimeDelta::FromMilliseconds(998));
+  platform_->RunForPeriod(base::Milliseconds(998));
   EXPECT_THAT(FilteredConsoleMessages(),
               ElementsAre(timeout_0_message, timeout_minus_1_message));
 
-  platform_->RunForPeriod(base::TimeDelta::FromMilliseconds(1));
+  platform_->RunForPeriod(base::Milliseconds(1));
   EXPECT_THAT(FilteredConsoleMessages(),
               ElementsAre(timeout_0_message, timeout_minus_1_message,
                           timeout_5_message));
@@ -195,17 +193,17 @@
                      console_message.Utf8().c_str()));
   GetDocument().GetPage()->GetPageScheduler()->SetPageVisible(false);
 
-  platform_->RunForPeriod(base::TimeDelta::FromMilliseconds(1));
+  platform_->RunForPeriod(base::Milliseconds(1));
   EXPECT_THAT(FilteredConsoleMessages(), Vector<String>(1, console_message));
-  platform_->RunForPeriod(base::TimeDelta::FromMilliseconds(1));
+  platform_->RunForPeriod(base::Milliseconds(1));
   EXPECT_THAT(FilteredConsoleMessages(), Vector<String>(2, console_message));
-  platform_->RunForPeriod(base::TimeDelta::FromMilliseconds(1));
+  platform_->RunForPeriod(base::Milliseconds(1));
   EXPECT_THAT(FilteredConsoleMessages(), Vector<String>(3, console_message));
-  platform_->RunForPeriod(base::TimeDelta::FromMilliseconds(1));
+  platform_->RunForPeriod(base::Milliseconds(1));
   EXPECT_THAT(FilteredConsoleMessages(), Vector<String>(4, console_message));
-  platform_->RunForPeriod(base::TimeDelta::FromMilliseconds(995));
+  platform_->RunForPeriod(base::Milliseconds(995));
   EXPECT_THAT(FilteredConsoleMessages(), Vector<String>(4, console_message));
-  platform_->RunForPeriod(base::TimeDelta::FromMilliseconds(1));
+  platform_->RunForPeriod(base::Milliseconds(1));
   EXPECT_THAT(FilteredConsoleMessages(), Vector<String>(5, console_message));
 }
 
@@ -229,17 +227,17 @@
                      console_message.Utf8().c_str()));
   GetDocument().GetPage()->GetPageScheduler()->SetPageVisible(false);
 
-  platform_->RunForPeriod(base::TimeDelta::FromMilliseconds(1));
+  platform_->RunForPeriod(base::Milliseconds(1));
   EXPECT_THAT(FilteredConsoleMessages(), Vector<String>(1, console_message));
-  platform_->RunForPeriod(base::TimeDelta::FromMilliseconds(1));
+  platform_->RunForPeriod(base::Milliseconds(1));
   EXPECT_THAT(FilteredConsoleMessages(), Vector<String>(2, console_message));
-  platform_->RunForPeriod(base::TimeDelta::FromMilliseconds(1));
+  platform_->RunForPeriod(base::Milliseconds(1));
   EXPECT_THAT(FilteredConsoleMessages(), Vector<String>(3, console_message));
-  platform_->RunForPeriod(base::TimeDelta::FromMilliseconds(1));
+  platform_->RunForPeriod(base::Milliseconds(1));
   EXPECT_THAT(FilteredConsoleMessages(), Vector<String>(4, console_message));
-  platform_->RunForPeriod(base::TimeDelta::FromMilliseconds(995));
+  platform_->RunForPeriod(base::Milliseconds(995));
   EXPECT_THAT(FilteredConsoleMessages(), Vector<String>(4, console_message));
-  platform_->RunForPeriod(base::TimeDelta::FromMilliseconds(1));
+  platform_->RunForPeriod(base::Milliseconds(1));
   EXPECT_THAT(FilteredConsoleMessages(), Vector<String>(5, console_message));
 }
 
@@ -259,17 +257,17 @@
   void ExpectRepeatingTimerConsoleMessages(int num_1hz_messages) {
     for (int i = 0; i < num_1hz_messages; ++i) {
       ConsoleMessages().clear();
-      platform_->RunForPeriod(base::TimeDelta::FromSeconds(1));
+      platform_->RunForPeriod(base::Seconds(1));
       EXPECT_EQ(FilteredConsoleMessages().size(), 1U);
     }
 
     constexpr int kNumIterations = 3;
     for (int i = 0; i < kNumIterations; ++i) {
       ConsoleMessages().clear();
-      platform_->RunForPeriod(base::TimeDelta::FromSeconds(30));
+      platform_->RunForPeriod(base::Seconds(30));
       // Task shouldn't execute earlier than expected.
       EXPECT_EQ(FilteredConsoleMessages().size(), 0U);
-      platform_->RunForPeriod(base::TimeDelta::FromSeconds(30));
+      platform_->RunForPeriod(base::Seconds(30));
       EXPECT_EQ(FilteredConsoleMessages().size(), 1U);
     }
   }
@@ -277,7 +275,7 @@
   void TestNoIntensiveThrottlingOnTitleOrFaviconUpdate(
       const String& console_message) {
     // The page does not attempt to run onTimer in the first 5 minutes.
-    platform_->RunForPeriod(base::TimeDelta::FromMinutes(5));
+    platform_->RunForPeriod(base::Minutes(5));
     EXPECT_THAT(FilteredConsoleMessages(), ElementsAre());
 
     // onTimer() communicates in background and re-posts itself. The background
@@ -340,8 +338,7 @@
     "</script>";
 
 // A time delta that matches the delay in the above script.
-constexpr base::TimeDelta kLongUnalignedTimerDelay =
-    base::TimeDelta::FromSeconds(342);
+constexpr base::TimeDelta kLongUnalignedTimerDelay = base::Seconds(342);
 
 // Builds a page that waits 5 minutes and then creates a timer that reschedules
 // itself 50 times with 10 ms delay. The timer task logs |console_message| to
@@ -392,7 +389,7 @@
   GetDocument().GetPage()->GetPageScheduler()->SetPageVisible(false);
 
   // No timer is scheduled in the 5 first minutes.
-  platform_->RunForPeriod(base::TimeDelta::FromMinutes(5));
+  platform_->RunForPeriod(base::Minutes(5));
   EXPECT_THAT(FilteredConsoleMessages(), ElementsAre());
 
   // Expected execution:
@@ -461,7 +458,7 @@
   GetDocument().GetPage()->GetPageScheduler()->SetPageVisible(false);
 
   // No timer is scheduled in the 5 first minutes.
-  platform_->RunForPeriod(base::TimeDelta::FromMinutes(5));
+  platform_->RunForPeriod(base::Minutes(5));
   EXPECT_THAT(FilteredConsoleMessages(), ElementsAre());
 
   // Expected execution:
@@ -499,7 +496,7 @@
   GetDocument().GetPage()->GetPageScheduler()->SetPageVisible(false);
 
   // No timer is scheduled in the 5 first minutes.
-  platform_->RunForPeriod(base::TimeDelta::FromMinutes(5));
+  platform_->RunForPeriod(base::Minutes(5));
   EXPECT_THAT(FilteredConsoleMessages(), ElementsAre());
 
   // Expected execution:
@@ -527,11 +524,10 @@
 
   GetDocument().GetPage()->GetPageScheduler()->SetPageVisible(false);
 
-  platform_->RunForPeriod(kLongUnalignedTimerDelay -
-                          base::TimeDelta::FromSeconds(1));
+  platform_->RunForPeriod(kLongUnalignedTimerDelay - base::Seconds(1));
   EXPECT_THAT(FilteredConsoleMessages(), ElementsAre());
 
-  platform_->RunForPeriod(base::TimeDelta::FromSeconds(1));
+  platform_->RunForPeriod(base::Seconds(1));
   EXPECT_THAT(FilteredConsoleMessages(), ElementsAre(console_message));
 }
 
@@ -553,11 +549,10 @@
 
   GetDocument().GetPage()->GetPageScheduler()->SetPageVisible(false);
 
-  platform_->RunForPeriod(kLongUnalignedTimerDelay -
-                          base::TimeDelta::FromSeconds(1));
+  platform_->RunForPeriod(kLongUnalignedTimerDelay - base::Seconds(1));
   EXPECT_THAT(FilteredConsoleMessages(), ElementsAre());
 
-  platform_->RunForPeriod(base::TimeDelta::FromSeconds(1));
+  platform_->RunForPeriod(base::Seconds(1));
   EXPECT_THAT(FilteredConsoleMessages(), ElementsAre(console_message));
 }
 
@@ -582,11 +577,11 @@
 
   GetDocument().GetPage()->GetPageScheduler()->SetPageVisible(false);
 
-  platform_->RunForPeriod(base::TimeDelta::FromSeconds(342));
+  platform_->RunForPeriod(base::Seconds(342));
   EXPECT_THAT(FilteredConsoleMessages(), ElementsAre());
 
   // Fast-forward to the next aligned time.
-  platform_->RunForPeriod(base::TimeDelta::FromSeconds(18));
+  platform_->RunForPeriod(base::Seconds(18));
   EXPECT_THAT(FilteredConsoleMessages(), ElementsAre(console_message));
 }
 
@@ -615,11 +610,11 @@
 
   GetDocument().GetPage()->GetPageScheduler()->SetPageVisible(false);
 
-  platform_->RunForPeriod(base::TimeDelta::FromSeconds(342));
+  platform_->RunForPeriod(base::Seconds(342));
   EXPECT_THAT(FilteredConsoleMessages(), ElementsAre(console_message));
 
   // Fast-forward to the next aligned time.
-  platform_->RunForPeriod(base::TimeDelta::FromSeconds(18));
+  platform_->RunForPeriod(base::Seconds(18));
   EXPECT_THAT(FilteredConsoleMessages(),
               ElementsAre(console_message, console_message));
 }
diff --git a/third_party/blink/renderer/core/scheduler_integration_tests/virtual_time_test.cc b/third_party/blink/renderer/core/scheduler_integration_tests/virtual_time_test.cc
index 8dea1f4..a6a500c5 100644
--- a/third_party/blink/renderer/core/scheduler_integration_tests/virtual_time_test.cc
+++ b/third_party/blink/renderer/core/scheduler_integration_tests/virtual_time_test.cc
@@ -72,7 +72,7 @@
         FROM_HERE,
         WTF::Bind(&VirtualTimeTest::StopVirtualTimeAndExitRunLoop,
                   WTF::Unretained(this)),
-        base::TimeDelta::FromMillisecondsD(delay_ms));
+        base::Milliseconds(delay_ms));
     test::EnterRunLoop();
   }
 };
diff --git a/third_party/blink/renderer/core/scroll/mac_scrollbar_animator_impl.mm b/third_party/blink/renderer/core/scroll/mac_scrollbar_animator_impl.mm
index bbd4417..8cafa68 100644
--- a/third_party/blink/renderer/core/scroll/mac_scrollbar_animator_impl.mm
+++ b/third_party/blink/renderer/core/scroll/mac_scrollbar_animator_impl.mm
@@ -191,7 +191,7 @@
     start_time_ = base::Time::Now().ToDoubleT();
     // Set the framerate of the animation. NSAnimation uses a default
     // framerate of 60 Hz, so use that here.
-    timer_.StartRepeating(base::TimeDelta::FromSecondsD(1.0 / 60.0), FROM_HERE);
+    timer_.StartRepeating(base::Seconds(1.0 / 60.0), FROM_HERE);
   }
 
   void Stop() { timer_.Stop(); }
@@ -822,7 +822,7 @@
       *task_runner_, FROM_HERE,
       WTF::Bind(&MacScrollbarAnimatorImpl::InitialScrollbarPaintTask,
                 WrapWeakPersistent(this)),
-      base::TimeDelta::FromMilliseconds(100));
+      base::Milliseconds(100));
 }
 
 bool MacScrollbarAnimatorImpl::ScrollbarPaintTimerIsActive() const {
diff --git a/third_party/blink/renderer/core/scroll/scroll_animator_test.cc b/third_party/blink/renderer/core/scroll/scroll_animator_test.cc
index d008f9e2..3df2116a 100644
--- a/third_party/blink/renderer/core/scroll/scroll_animator_test.cc
+++ b/third_party/blink/renderer/core/scroll/scroll_animator_test.cc
@@ -216,7 +216,7 @@
                 kWaitingToSendToCompositor);
 
   // RunningOnMainThread
-  task_runner->FastForwardBy(base::TimeDelta::FromMilliseconds(50));
+  task_runner->FastForwardBy(base::Milliseconds(50));
   scroll_animator->UpdateCompositorAnimations();
   EXPECT_EQ(
       scroll_animator->run_state_,
@@ -275,7 +275,7 @@
   EXPECT_TRUE(result.did_scroll_x);
   EXPECT_FLOAT_EQ(0.0, result.unused_scroll_delta_x);
 
-  task_runner->FastForwardBy(base::TimeDelta::FromMilliseconds(50));
+  task_runner->FastForwardBy(base::Milliseconds(50));
   scroll_animator->UpdateCompositorAnimations();
   scroll_animator->TickAnimation(NowTicksInSeconds(task_runner.get()));
 
@@ -289,7 +289,7 @@
                               ScrollableArea::ScrollCallback());
   EXPECT_TRUE(scroll_animator->HasAnimationThatRequiresService());
 
-  task_runner->FastForwardBy(base::TimeDelta::FromMilliseconds(50));
+  task_runner->FastForwardBy(base::Milliseconds(50));
   scroll_animator->UpdateCompositorAnimations();
   scroll_animator->TickAnimation(NowTicksInSeconds(task_runner.get()));
 
@@ -303,7 +303,7 @@
                               ScrollableArea::ScrollCallback());
   EXPECT_TRUE(scroll_animator->HasAnimationThatRequiresService());
 
-  task_runner->FastForwardBy(base::TimeDelta::FromMilliseconds(50));
+  task_runner->FastForwardBy(base::Milliseconds(50));
   scroll_animator->UpdateCompositorAnimations();
   scroll_animator->TickAnimation(NowTicksInSeconds(task_runner.get()));
 
@@ -311,11 +311,11 @@
   EXPECT_NE(0, scroll_animator->CurrentOffset().Width());
   EXPECT_EQ(0, scroll_animator->CurrentOffset().Height());
 
-  task_runner->FastForwardBy(base::TimeDelta::FromSeconds(1.0));
+  task_runner->FastForwardBy(base::Seconds(1.0));
   scroll_animator->UpdateCompositorAnimations();
   scroll_animator->TickAnimation(NowTicksInSeconds(task_runner.get()));
 
-  task_runner->FastForwardBy(base::TimeDelta::FromMilliseconds(50));
+  task_runner->FastForwardBy(base::Milliseconds(50));
   scroll_animator->UpdateCompositorAnimations();
   EXPECT_FALSE(scroll_animator->HasAnimationThatRequiresService());
   EXPECT_EQ(100, scroll_animator->CurrentOffset().Width());
@@ -361,7 +361,7 @@
   EXPECT_FLOAT_EQ(0.0, result.unused_scroll_delta_x);
   EXPECT_TRUE(scroll_animator->HasRunningAnimation());
 
-  task_runner->FastForwardBy(base::TimeDelta::FromMilliseconds(50));
+  task_runner->FastForwardBy(base::Milliseconds(50));
   scroll_animator->UpdateCompositorAnimations();
   scroll_animator->TickAnimation(NowTicksInSeconds(task_runner.get()));
 
@@ -376,7 +376,7 @@
                                        FloatSize(100, 0),
                                        ScrollableArea::ScrollCallback());
   EXPECT_TRUE(result.did_scroll_x);
-  task_runner->FastForwardBy(base::TimeDelta::FromMilliseconds(50));
+  task_runner->FastForwardBy(base::Milliseconds(50));
   scroll_animator->UpdateCompositorAnimations();
   EXPECT_FALSE(scroll_animator->HasRunningAnimation());
   EXPECT_EQ(x + 100, scroll_animator->CurrentOffset().Width());
@@ -417,7 +417,7 @@
   EXPECT_TRUE(scroll_animator->HasRunningAnimation());
 
   // Update compositor animation.
-  task_runner->FastForwardBy(base::TimeDelta::FromMilliseconds(50));
+  task_runner->FastForwardBy(base::Milliseconds(50));
   scroll_animator->SetShouldSendToCompositor(true);
   scroll_animator->UpdateCompositorAnimations();
   EXPECT_EQ(
@@ -515,7 +515,7 @@
                 kWaitingToSendToCompositor);
 
   // RunningOnMainThread
-  task_runner->FastForwardBy(base::TimeDelta::FromMilliseconds(50));
+  task_runner->FastForwardBy(base::Milliseconds(50));
   scroll_animator->UpdateCompositorAnimations();
   EXPECT_EQ(
       scroll_animator->run_state_,
@@ -544,7 +544,7 @@
                 kWaitingToSendToCompositor);
 
   // Finish scroll animation.
-  task_runner->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_runner->FastForwardBy(base::Seconds(1));
   scroll_animator->UpdateCompositorAnimations();
   scroll_animator->TickAnimation(NowTicksInSeconds(task_runner.get()));
   EXPECT_EQ(
@@ -590,7 +590,7 @@
                 kWaitingToSendToCompositor);
 
   // RunningOnMainThread
-  task_runner->FastForwardBy(base::TimeDelta::FromMilliseconds(50));
+  task_runner->FastForwardBy(base::Milliseconds(50));
   scroll_animator->UpdateCompositorAnimations();
   EXPECT_FALSE(finished);
   EXPECT_EQ(
@@ -618,7 +618,7 @@
                 kWaitingToSendToCompositor);
 
   // Finish scroll animation.
-  task_runner->FastForwardBy(base::TimeDelta::FromSeconds(1.0));
+  task_runner->FastForwardBy(base::Seconds(1.0));
   scroll_animator->UpdateCompositorAnimations();
   scroll_animator->TickAnimation(NowTicksInSeconds(task_runner.get()));
   EXPECT_TRUE(finished);
@@ -665,7 +665,7 @@
                 kWaitingToSendToCompositor);
 
   // Update compositor animation.
-  task_runner->FastForwardBy(base::TimeDelta::FromMilliseconds(50));
+  task_runner->FastForwardBy(base::Milliseconds(50));
   scroll_animator->SetShouldSendToCompositor(true);
   scroll_animator->UpdateCompositorAnimations();
   EXPECT_FALSE(finished);
@@ -718,7 +718,7 @@
   EXPECT_EQ(0, scroll_animator->DesiredTargetOffset().Height());
 
   // Update compositor animation.
-  task_runner->FastForwardBy(base::TimeDelta::FromMilliseconds(50));
+  task_runner->FastForwardBy(base::Milliseconds(50));
   scroll_animator->SetShouldSendToCompositor(true);
   scroll_animator->UpdateCompositorAnimations();
   EXPECT_EQ(
@@ -748,7 +748,7 @@
   EXPECT_EQ(0, scroll_animator->DesiredTargetOffset().Height());
 
   // Update compositor animation.
-  task_runner->FastForwardBy(base::TimeDelta::FromMilliseconds(50));
+  task_runner->FastForwardBy(base::Milliseconds(50));
   scroll_animator->UpdateCompositorAnimations();
   EXPECT_EQ(
       scroll_animator->run_state_,
@@ -842,7 +842,7 @@
                        ScrollableArea::ScrollCallback());
 
   // RunningOnMainThread
-  task_runner->FastForwardBy(base::TimeDelta::FromMilliseconds(50));
+  task_runner->FastForwardBy(base::Milliseconds(50));
   animator->UpdateCompositorAnimations();
   animator->TickAnimation(NowTicksInSeconds(task_runner.get()));
   ScrollOffset offset = animator->CurrentOffset();
@@ -857,7 +857,7 @@
   EXPECT_EQ(ScrollOffset(110, 90), animator->DesiredTargetOffset());
 
   // Adjusting after finished animation should do nothing.
-  task_runner->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_runner->FastForwardBy(base::Seconds(1));
   animator->UpdateCompositorAnimations();
   animator->TickAnimation(NowTicksInSeconds(task_runner.get()));
   EXPECT_EQ(
diff --git a/third_party/blink/renderer/core/scroll/scrollable_area.cc b/third_party/blink/renderer/core/scroll/scrollable_area.cc
index ee435db..bb915f7 100644
--- a/third_party/blink/renderer/core/scroll/scrollable_area.cc
+++ b/third_party/blink/renderer/core/scroll/scrollable_area.cc
@@ -686,15 +686,15 @@
 void ScrollableArea::ServiceScrollAnimations(double monotonic_time) {
   bool requires_animation_service = false;
   if (ScrollAnimatorBase* scroll_animator = ExistingScrollAnimator()) {
-    scroll_animator->TickAnimation(
-        base::TimeDelta::FromSecondsD(monotonic_time) + base::TimeTicks());
+    scroll_animator->TickAnimation(base::Seconds(monotonic_time) +
+                                   base::TimeTicks());
     if (scroll_animator->HasAnimationThatRequiresService())
       requires_animation_service = true;
   }
   if (ProgrammaticScrollAnimator* programmatic_scroll_animator =
           ExistingProgrammaticScrollAnimator()) {
-    programmatic_scroll_animator->TickAnimation(
-        base::TimeDelta::FromSecondsD(monotonic_time) + base::TimeTicks());
+    programmatic_scroll_animator->TickAnimation(base::Seconds(monotonic_time) +
+                                                base::TimeTicks());
     if (programmatic_scroll_animator->HasAnimationThatRequiresService())
       requires_animation_service = true;
   }
diff --git a/third_party/blink/renderer/core/scroll/scrollable_area_test.cc b/third_party/blink/renderer/core/scroll/scrollable_area_test.cc
index 1002c4f..ded4c13 100644
--- a/third_party/blink/renderer/core/scroll/scrollable_area_test.cc
+++ b/third_party/blink/renderer/core/scroll/scrollable_area_test.cc
@@ -355,7 +355,7 @@
 
   ScrollbarThemeOverlayMock& theme =
       (ScrollbarThemeOverlayMock&)scrollable_area->GetPageScrollbarTheme();
-  theme.SetOverlayScrollbarFadeOutDelay(base::TimeDelta::FromSeconds(1));
+  theme.SetOverlayScrollbarFadeOutDelay(base::Seconds(1));
   Scrollbar* scrollbar = Scrollbar::CreateForTesting(
       scrollable_area, kHorizontalScrollbar, &theme);
 
diff --git a/third_party/blink/renderer/core/scroll/scrollbar_theme.cc b/third_party/blink/renderer/core/scroll/scrollbar_theme.cc
index 370beb4..a371e86 100644
--- a/third_party/blink/renderer/core/scroll/scrollbar_theme.cc
+++ b/third_party/blink/renderer/core/scroll/scrollbar_theme.cc
@@ -280,7 +280,7 @@
 }
 
 base::TimeDelta ScrollbarTheme::AutoscrollTimerDelay() {
-  return base::TimeDelta::FromSecondsD(1.f / kAutoscrollMultiplier);
+  return base::Seconds(1.f / kAutoscrollMultiplier);
 }
 
 ScrollbarTheme& ScrollbarTheme::GetTheme() {
diff --git a/third_party/blink/renderer/core/scroll/scrollbar_theme_mac.mm b/third_party/blink/renderer/core/scroll/scrollbar_theme_mac.mm
index 4d0bd9dc..f521267 100644
--- a/third_party/blink/renderer/core/scroll/scrollbar_theme_mac.mm
+++ b/third_party/blink/renderer/core/scroll/scrollbar_theme_mac.mm
@@ -188,11 +188,11 @@
 }
 
 base::TimeDelta ScrollbarThemeMac::InitialAutoscrollTimerDelay() {
-  return base::TimeDelta::FromSecondsD(s_initial_button_delay);
+  return base::Seconds(s_initial_button_delay);
 }
 
 base::TimeDelta ScrollbarThemeMac::AutoscrollTimerDelay() {
-  return base::TimeDelta::FromSecondsD(s_autoscroll_button_delay);
+  return base::Seconds(s_autoscroll_button_delay);
 }
 
 bool ScrollbarThemeMac::ShouldDragDocumentInsteadOfThumb(
diff --git a/third_party/blink/renderer/core/svg/animation/smil_time.h b/third_party/blink/renderer/core/svg/animation/smil_time.h
index b8c773d..58b5287 100644
--- a/third_party/blink/renderer/core/svg/animation/smil_time.h
+++ b/third_party/blink/renderer/core/svg/animation/smil_time.h
@@ -61,20 +61,18 @@
 
   static constexpr SMILTime Unresolved() { return base::TimeDelta::Max(); }
   static constexpr SMILTime Indefinite() {
-    return base::TimeDelta::Max() - base::TimeDelta::FromMicroseconds(1);
+    return base::TimeDelta::Max() - base::Microseconds(1);
   }
   static constexpr SMILTime Latest() {
-    return base::TimeDelta::Max() - base::TimeDelta::FromMicroseconds(2);
+    return base::TimeDelta::Max() - base::Microseconds(2);
   }
   static constexpr SMILTime Earliest() { return base::TimeDelta::Min(); }
-  static constexpr SMILTime Epsilon() {
-    return base::TimeDelta::FromMicroseconds(1);
-  }
+  static constexpr SMILTime Epsilon() { return base::Microseconds(1); }
   static constexpr SMILTime FromSecondsD(double seconds) {
-    return std::min(SMILTime(base::TimeDelta::FromSecondsD(seconds)), Latest());
+    return std::min(SMILTime(base::Seconds(seconds)), Latest());
   }
   static constexpr SMILTime FromMicroseconds(int64_t us) {
-    return std::min(SMILTime(base::TimeDelta::FromMicroseconds(us)), Latest());
+    return std::min(SMILTime(base::Microseconds(us)), Latest());
   }
 
   // Used for computing progress. Don't use for anything else.
diff --git a/third_party/blink/renderer/core/svg/animation/smil_time_container.cc b/third_party/blink/renderer/core/svg/animation/smil_time_container.cc
index 5189d17..2b3f775 100644
--- a/third_party/blink/renderer/core/svg/animation/smil_time_container.cc
+++ b/third_party/blink/renderer/core/svg/animation/smil_time_container.cc
@@ -370,7 +370,7 @@
   DCHECK(GetDocument().IsActive());
 
   const base::TimeDelta kLocalMinimumDelay =
-      base::TimeDelta::FromSecondsD(DocumentTimeline::kMinimumDelay);
+      base::Seconds(DocumentTimeline::kMinimumDelay);
   if (delay_time < kLocalMinimumDelay) {
     ServiceOnNextFrame();
   } else {
@@ -486,8 +486,7 @@
     return false;
   SMILTime delay_time = next_progress_time - update.TargetTime();
   DCHECK(delay_time.IsFinite());
-  ScheduleAnimationFrame(
-      base::TimeDelta::FromMicroseconds(delay_time.InMicroseconds()));
+  ScheduleAnimationFrame(base::Microseconds(delay_time.InMicroseconds()));
   return true;
 }
 
diff --git a/third_party/blink/renderer/core/svg/animation/smil_time_container_test.cc b/third_party/blink/renderer/core/svg/animation/smil_time_container_test.cc
index 5800a17..e6be66c 100644
--- a/third_party/blink/renderer/core/svg/animation/smil_time_container_test.cc
+++ b/third_party/blink/renderer/core/svg/animation/smil_time_container_test.cc
@@ -86,7 +86,7 @@
   // The frame callback should have flushed any pending updates.
   EXPECT_EQ(100, rect->height()->CurrentValue()->Value(length_context));
 
-  StepTime(base::TimeDelta::FromMilliseconds(500));
+  StepTime(base::Milliseconds(500));
   EXPECT_EQ(100, rect->height()->CurrentValue()->Value(length_context));
   EXPECT_EQ(SMILTime::FromSecondsD(0.5), time_container->Elapsed());
 }
@@ -169,10 +169,10 @@
   EXPECT_FALSE(time_container->IsPaused());
   EXPECT_EQ(30, rect->height()->CurrentValue()->Value(length_context));
 
-  StepTime(base::TimeDelta::FromMilliseconds(2500));
+  StepTime(base::Milliseconds(2500));
   EXPECT_EQ(100, rect->height()->CurrentValue()->Value(length_context));
 
-  StepTime(base::TimeDelta::FromMilliseconds(500));
+  StepTime(base::Milliseconds(500));
   EXPECT_EQ(30, rect->height()->CurrentValue()->Value(length_context));
   EXPECT_EQ(SMILTime::FromSecondsD(3), time_container->Elapsed());
 }
@@ -201,13 +201,13 @@
   EXPECT_EQ(SMILTime::FromSecondsD(5.5), time_container->Elapsed());
   EXPECT_EQ(100, rect->height()->CurrentValue()->Value(length_context));
 
-  StepTime(base::TimeDelta::FromMilliseconds(2000));
+  StepTime(base::Milliseconds(2000));
   EXPECT_EQ(50, rect->height()->CurrentValue()->Value(length_context));
 
-  StepTime(base::TimeDelta::FromMilliseconds(1000));
+  StepTime(base::Milliseconds(1000));
   EXPECT_EQ(100, rect->height()->CurrentValue()->Value(length_context));
 
-  StepTime(base::TimeDelta::FromMilliseconds(1000));
+  StepTime(base::Milliseconds(1000));
   EXPECT_EQ(100, rect->height()->CurrentValue()->Value(length_context));
   EXPECT_EQ(SMILTime::FromSecondsD(8.5), time_container->Elapsed());
 }
@@ -248,13 +248,13 @@
   EXPECT_EQ(SMILTime::FromSecondsD(5.5), time_container->Elapsed());
   EXPECT_EQ(100, rect->height()->CurrentValue()->Value(length_context));
 
-  StepTime(base::TimeDelta::FromMilliseconds(2000));
+  StepTime(base::Milliseconds(2000));
   EXPECT_EQ(50, rect->height()->CurrentValue()->Value(length_context));
 
-  StepTime(base::TimeDelta::FromMilliseconds(1000));
+  StepTime(base::Milliseconds(1000));
   EXPECT_EQ(100, rect->height()->CurrentValue()->Value(length_context));
 
-  StepTime(base::TimeDelta::FromMilliseconds(1000));
+  StepTime(base::Milliseconds(1000));
   EXPECT_EQ(100, rect->height()->CurrentValue()->Value(length_context));
   EXPECT_EQ(SMILTime::FromSecondsD(8.5), time_container->Elapsed());
 }
@@ -281,7 +281,7 @@
   EXPECT_FALSE(time_container->IsPaused());
   EXPECT_EQ(30, rect->height()->CurrentValue()->Value(length_context));
 
-  StepTime(base::TimeDelta::FromMilliseconds(1500));
+  StepTime(base::Milliseconds(1500));
   EXPECT_EQ(50, rect->height()->CurrentValue()->Value(length_context));
 
   time_container->Pause();
@@ -292,7 +292,7 @@
   EXPECT_FALSE(time_container->IsPaused());
   EXPECT_EQ(SMILTime::FromSecondsD(1.5), time_container->Elapsed());
 
-  StepTime(base::TimeDelta::FromMilliseconds(4000));
+  StepTime(base::Milliseconds(4000));
   EXPECT_EQ(50, rect->height()->CurrentValue()->Value(length_context));
   EXPECT_EQ(SMILTime::FromSecondsD(4.5), time_container->Elapsed());
 }
@@ -333,7 +333,7 @@
   EXPECT_TRUE(time_container->IsPaused());
   EXPECT_EQ(30, rect->height()->CurrentValue()->Value(length_context));
 
-  StepTime(base::TimeDelta::FromMilliseconds(1500));
+  StepTime(base::Milliseconds(1500));
   EXPECT_EQ(SMILTime::FromSecondsD(0), time_container->Elapsed());
   EXPECT_EQ(30, rect->height()->CurrentValue()->Value(length_context));
 
@@ -341,10 +341,10 @@
   EXPECT_FALSE(time_container->IsPaused());
   EXPECT_EQ(SMILTime::FromSecondsD(0), time_container->Elapsed());
 
-  StepTime(base::TimeDelta::FromMilliseconds(1500));
+  StepTime(base::Milliseconds(1500));
   EXPECT_EQ(50, rect->height()->CurrentValue()->Value(length_context));
 
-  StepTime(base::TimeDelta::FromMilliseconds(2500));
+  StepTime(base::Milliseconds(2500));
   EXPECT_EQ(30, rect->height()->CurrentValue()->Value(length_context));
   EXPECT_EQ(SMILTime::FromSecondsD(3), time_container->Elapsed());
 }
@@ -371,7 +371,7 @@
   EXPECT_FALSE(time_container->IsPaused());
   EXPECT_EQ(30, rect->height()->CurrentValue()->Value(length_context));
 
-  StepTime(base::TimeDelta::FromMilliseconds(1500));
+  StepTime(base::Milliseconds(1500));
   EXPECT_EQ(50, rect->height()->CurrentValue()->Value(length_context));
 
   time_container->Pause();
@@ -385,7 +385,7 @@
   EXPECT_FALSE(time_container->IsPaused());
   EXPECT_EQ(SMILTime::FromSecondsD(0.5), time_container->Elapsed());
 
-  StepTime(base::TimeDelta::FromMilliseconds(4000));
+  StepTime(base::Milliseconds(4000));
   EXPECT_EQ(30, rect->height()->CurrentValue()->Value(length_context));
   EXPECT_EQ(SMILTime::FromSecondsD(3.5), time_container->Elapsed());
 }
@@ -430,7 +430,7 @@
   EXPECT_EQ(SMILTime::FromSecondsD(1.5), time_container->Elapsed());
   EXPECT_EQ(50, rect->height()->CurrentValue()->Value(length_context));
 
-  StepTime(base::TimeDelta::FromMilliseconds(1500));
+  StepTime(base::Milliseconds(1500));
   EXPECT_EQ(SMILTime::FromSecondsD(1.5), time_container->Elapsed());
   EXPECT_EQ(50, rect->height()->CurrentValue()->Value(length_context));
 
@@ -438,10 +438,10 @@
   EXPECT_FALSE(time_container->IsPaused());
   EXPECT_EQ(SMILTime::FromSecondsD(1.5), time_container->Elapsed());
 
-  StepTime(base::TimeDelta::FromMilliseconds(2000));
+  StepTime(base::Milliseconds(2000));
   EXPECT_EQ(30, rect->height()->CurrentValue()->Value(length_context));
 
-  StepTime(base::TimeDelta::FromMilliseconds(2000));
+  StepTime(base::Milliseconds(2000));
   EXPECT_EQ(50, rect->height()->CurrentValue()->Value(length_context));
   EXPECT_EQ(SMILTime::FromSecondsD(4.5), time_container->Elapsed());
 }
@@ -484,10 +484,10 @@
   EXPECT_FALSE(time_container->IsPaused());
   EXPECT_EQ(30, rect->height()->CurrentValue()->Value(length_context));
 
-  StepTime(base::TimeDelta::FromMilliseconds(2500));
+  StepTime(base::Milliseconds(2500));
   EXPECT_EQ(100, rect->height()->CurrentValue()->Value(length_context));
 
-  StepTime(base::TimeDelta::FromMilliseconds(500));
+  StepTime(base::Milliseconds(500));
   EXPECT_EQ(30, rect->height()->CurrentValue()->Value(length_context));
   EXPECT_EQ(SMILTime::FromSecondsD(3), time_container->Elapsed());
 }
@@ -515,15 +515,15 @@
   EXPECT_EQ(SMILTime::FromSecondsD(0), time_container->Elapsed());
   EXPECT_EQ(30, rect->height()->CurrentValue()->Value(length_context));
 
-  StepTime(base::TimeDelta::FromMilliseconds(1000));
+  StepTime(base::Milliseconds(1000));
   EXPECT_EQ(SMILTime::FromSecondsD(1.0), time_container->Elapsed());
   EXPECT_EQ(50, rect->height()->CurrentValue()->Value(length_context));
 
-  StepTime(base::TimeDelta::FromMilliseconds(1000));
+  StepTime(base::Milliseconds(1000));
   EXPECT_EQ(SMILTime::FromSecondsD(2.0), time_container->Elapsed());
   EXPECT_EQ(100, rect->height()->CurrentValue()->Value(length_context));
 
-  StepTime(base::TimeDelta::FromMilliseconds(1500));
+  StepTime(base::Milliseconds(1500));
   EXPECT_EQ(SMILTime::FromSecondsD(3.0), time_container->Elapsed());
   EXPECT_EQ(30, rect->height()->CurrentValue()->Value(length_context));
 
@@ -535,15 +535,15 @@
   EXPECT_FALSE(time_container->IsPaused());
   EXPECT_EQ(SMILTime::FromSecondsD(3.0), time_container->Elapsed());
 
-  StepTime(base::TimeDelta::FromMilliseconds(1000));
+  StepTime(base::Milliseconds(1000));
   EXPECT_EQ(SMILTime::FromSecondsD(4.0), time_container->Elapsed());
   EXPECT_EQ(50, rect->height()->CurrentValue()->Value(length_context));
 
-  StepTime(base::TimeDelta::FromMilliseconds(1000));
+  StepTime(base::Milliseconds(1000));
   EXPECT_EQ(SMILTime::FromSecondsD(5.0), time_container->Elapsed());
   EXPECT_EQ(100, rect->height()->CurrentValue()->Value(length_context));
 
-  StepTime(base::TimeDelta::FromMilliseconds(1500));
+  StepTime(base::Milliseconds(1500));
   EXPECT_EQ(30, rect->height()->CurrentValue()->Value(length_context));
   EXPECT_EQ(SMILTime::FromSecondsD(6.0), time_container->Elapsed());
 }
@@ -571,15 +571,15 @@
   EXPECT_EQ(SMILTime::FromSecondsD(0), time_container->Elapsed());
   EXPECT_EQ(30, rect->height()->CurrentValue()->Value(length_context));
 
-  StepTime(base::TimeDelta::FromMilliseconds(1000));
+  StepTime(base::Milliseconds(1000));
   EXPECT_EQ(SMILTime::FromSecondsD(1.0), time_container->Elapsed());
   EXPECT_EQ(50, rect->height()->CurrentValue()->Value(length_context));
 
-  StepTime(base::TimeDelta::FromMilliseconds(1000));
+  StepTime(base::Milliseconds(1000));
   EXPECT_EQ(SMILTime::FromSecondsD(2.0), time_container->Elapsed());
   EXPECT_EQ(100, rect->height()->CurrentValue()->Value(length_context));
 
-  StepTime(base::TimeDelta::FromMilliseconds(1500));
+  StepTime(base::Milliseconds(1500));
   EXPECT_EQ(SMILTime::FromSecondsD(3.0), time_container->Elapsed());
   EXPECT_EQ(30, rect->height()->CurrentValue()->Value(length_context));
 
@@ -588,15 +588,15 @@
   EXPECT_EQ(SMILTime::FromSecondsD(5.5), time_container->Elapsed());
   EXPECT_EQ(100, rect->height()->CurrentValue()->Value(length_context));
 
-  StepTime(base::TimeDelta::FromMilliseconds(1000));
+  StepTime(base::Milliseconds(1000));
   EXPECT_EQ(SMILTime::FromSecondsD(6.5), time_container->Elapsed());
   EXPECT_EQ(30, rect->height()->CurrentValue()->Value(length_context));
 
-  StepTime(base::TimeDelta::FromMilliseconds(1000));
+  StepTime(base::Milliseconds(1000));
   EXPECT_EQ(SMILTime::FromSecondsD(7.5), time_container->Elapsed());
   EXPECT_EQ(50, rect->height()->CurrentValue()->Value(length_context));
 
-  StepTime(base::TimeDelta::FromMilliseconds(1500));
+  StepTime(base::Milliseconds(1500));
   EXPECT_EQ(100, rect->height()->CurrentValue()->Value(length_context));
   EXPECT_EQ(SMILTime::FromSecondsD(8.5), time_container->Elapsed());
 }
diff --git a/third_party/blink/renderer/core/svg/graphics/svg_image.cc b/third_party/blink/renderer/core/svg/graphics/svg_image.cc
index 3367e06..f28133c 100644
--- a/third_party/blink/renderer/core/svg/graphics/svg_image.cc
+++ b/third_party/blink/renderer/core/svg/graphics/svg_image.cc
@@ -727,7 +727,7 @@
       root_element->TimeContainer()->ResetDocumentTime();
     page_->Animator().ServiceScriptedAnimations(
         root_element->GetDocument().Timeline().CalculateZeroTime() +
-        base::TimeDelta::FromSecondsD(root_element->getCurrentTime()));
+        base::Seconds(root_element->getCurrentTime()));
     GetImageObserver()->Changed(this);
     page_->Animator().Clock().ResetTimeForTesting();
     page_->Animator().Clock().UpdateTime(current_animation_time);
diff --git a/third_party/blink/renderer/core/svg/graphics/svg_image_chrome_client.cc b/third_party/blink/renderer/core/svg/graphics/svg_image_chrome_client.cc
index b162496..bf15550 100644
--- a/third_party/blink/renderer/core/svg/graphics/svg_image_chrome_client.cc
+++ b/third_party/blink/renderer/core/svg/graphics/svg_image_chrome_client.cc
@@ -37,8 +37,7 @@
 
 namespace blink {
 
-static constexpr base::TimeDelta kAnimationFrameDelay =
-    base::TimeDelta::FromHz(60);
+static constexpr base::TimeDelta kAnimationFrameDelay = base::Hertz(60);
 
 SVGImageChromeClient::SVGImageChromeClient(SVGImage* image)
     : image_(image),
diff --git a/third_party/blink/renderer/core/svg/graphics/svg_image_test.cc b/third_party/blink/renderer/core/svg/graphics/svg_image_test.cc
index dcb4aa1..30346245 100644
--- a/third_party/blink/renderer/core/svg/graphics/svg_image_test.cc
+++ b/third_party/blink/renderer/core/svg/graphics/svg_image_test.cc
@@ -127,7 +127,7 @@
   // Fire the timer/trigger a frame update. Since the observer always returns
   // true for shouldPauseAnimation, this will result in the timeline being
   // suspended.
-  test::RunDelayedTasks(base::TimeDelta::FromMilliseconds(1) +
+  test::RunDelayedTasks(base::Milliseconds(1) +
                         timer->Value().NextFireInterval());
   EXPECT_TRUE(chrome_client.IsSuspended());
   EXPECT_FALSE(timer->Value().IsActive());
@@ -162,7 +162,7 @@
 
   // Fire the timer/trigger a frame update. The timeline will remain
   // suspended and no frame will be scheduled.
-  test::RunDelayedTasks(base::TimeDelta::FromMillisecondsD(1) +
+  test::RunDelayedTasks(base::Milliseconds(1) +
                         timer->Value().NextFireInterval());
   EXPECT_TRUE(chrome_client.IsSuspended());
   EXPECT_FALSE(timer->Value().IsActive());
@@ -286,8 +286,7 @@
 
   // Wait for the next animation frame to be triggered, and then trigger a new
   // frame. The image animation timeline should be running.
-  test::RunDelayedTasks(base::TimeDelta::FromMilliseconds(1) +
-                        timer.NextFireInterval());
+  test::RunDelayedTasks(base::Milliseconds(1) + timer.NextFireInterval());
   Compositor().BeginFrame();
 
   EXPECT_FALSE(svg_image_chrome_client.IsSuspended());
@@ -297,8 +296,7 @@
   // animation timeline.)
   WebView().SetVisibilityState(mojom::blink::PageVisibilityState::kHidden,
                                /*initial_state=*/false);
-  test::RunDelayedTasks(base::TimeDelta::FromMilliseconds(1) +
-                        timer.NextFireInterval());
+  test::RunDelayedTasks(base::Milliseconds(1) + timer.NextFireInterval());
 
   EXPECT_TRUE(svg_image_chrome_client.IsSuspended());
 
@@ -306,8 +304,7 @@
   // frame and resume the image animation.
   WebView().SetVisibilityState(mojom::blink::PageVisibilityState::kVisible,
                                /*initial_state=*/false);
-  test::RunDelayedTasks(base::TimeDelta::FromMilliseconds(1) +
-                        timer.NextFireInterval());
+  test::RunDelayedTasks(base::Milliseconds(1) + timer.NextFireInterval());
   Compositor().BeginFrame();
 
   EXPECT_FALSE(svg_image_chrome_client.IsSuspended());
diff --git a/third_party/blink/renderer/core/testing/internals.cc b/third_party/blink/renderer/core/testing/internals.cc
index 1ed966d..7e6c9ba 100644
--- a/third_party/blink/renderer/core/testing/internals.cc
+++ b/third_party/blink/renderer/core/testing/internals.cc
@@ -3671,8 +3671,8 @@
     ExceptionState& exception_state) {
   return document_->Loader()
       ->GetTiming()
-      .MonotonicTimeToZeroBasedDocumentTime(
-          base::TimeTicks() + base::TimeDelta::FromSecondsD(platform_time))
+      .MonotonicTimeToZeroBasedDocumentTime(base::TimeTicks() +
+                                            base::Seconds(platform_time))
       .InSecondsF();
 }
 
diff --git a/third_party/blink/renderer/core/testing/sim/sim_compositor.cc b/third_party/blink/renderer/core/testing/sim/sim_compositor.cc
index 071ae735..4d4bf18f 100644
--- a/third_party/blink/renderer/core/testing/sim/sim_compositor.cc
+++ b/third_party/blink/renderer/core/testing/sim/sim_compositor.cc
@@ -42,7 +42,7 @@
   DCHECK(NeedsBeginFrame());
   DCHECK_GT(time_delta_in_seconds, 0);
 
-  last_frame_time_ += base::TimeDelta::FromSecondsD(time_delta_in_seconds);
+  last_frame_time_ += base::Seconds(time_delta_in_seconds);
 
   SimCanvas::Commands commands;
   paint_commands_ = &commands;
diff --git a/third_party/blink/renderer/core/timing/memory_info.cc b/third_party/blink/renderer/core/timing/memory_info.cc
index 99df56a..cdd7107 100644
--- a/third_party/blink/renderer/core/timing/memory_info.cc
+++ b/third_party/blink/renderer/core/timing/memory_info.cc
@@ -42,10 +42,8 @@
 
 namespace blink {
 
-static constexpr base::TimeDelta kTwentyMinutes =
-    base::TimeDelta::FromMinutes(20);
-static constexpr base::TimeDelta kFiftyMs =
-    base::TimeDelta::FromMilliseconds(50);
+static constexpr base::TimeDelta kTwentyMinutes = base::Minutes(20);
+static constexpr base::TimeDelta kFiftyMs = base::Milliseconds(50);
 
 static void GetHeapSize(HeapInfo& info) {
   v8::HeapStatistics heap_statistics;
diff --git a/third_party/blink/renderer/core/timing/memory_info_test.cc b/third_party/blink/renderer/core/timing/memory_info_test.cc
index 0f632e05..53920fc 100644
--- a/third_party/blink/renderer/core/timing/memory_info_test.cc
+++ b/third_party/blink/renderer/core/timing/memory_info_test.cc
@@ -137,7 +137,7 @@
 
   // Advance the clock for a minute. Not enough to make bucketized value
   // recalculate. Also allocate some memory.
-  mock_time.AdvanceClock(base::TimeDelta::FromMinutes(1));
+  mock_time.AdvanceClock(base::Minutes(1));
   objects.push_back(v8::ArrayBuffer::New(isolate, 100));
 
   MemoryInfo* bucketized_memory2 =
@@ -157,7 +157,7 @@
   for (int i = 0; i < 10; i++) {
     // Advance the clock for another thirty minutes, enough to make the
     // bucketized value recalculate.
-    mock_time.AdvanceClock(base::TimeDelta::FromMinutes(30));
+    mock_time.AdvanceClock(base::Minutes(30));
     objects.push_back(v8::ArrayBuffer::New(isolate, 100));
     MemoryInfo* bucketized_memory3 =
         MakeGarbageCollected<MemoryInfo>(MemoryInfo::Precision::Bucketized);
@@ -181,7 +181,7 @@
 
   // Advance the clock for a nanosecond, which should not be enough to make the
   // precise value recalculate.
-  mock_time.AdvanceClock(base::TimeDelta::FromNanoseconds(1));
+  mock_time.AdvanceClock(base::Nanoseconds(1));
   // Allocate an object in heap and keep it in a vector to make sure that it
   // does not get accidentally GC'd. This single ArrayBuffer should be enough to
   // be noticed by the used heap size in the precise MemoryInfo case.
@@ -194,7 +194,7 @@
   for (int i = 0; i < 10; i++) {
     // Advance the clock for another thirty seconds, enough to make the precise
     // values be recalculated. Also allocate another object.
-    mock_time.AdvanceClock(base::TimeDelta::FromSeconds(30));
+    mock_time.AdvanceClock(base::Seconds(30));
     objects.push_back(v8::ArrayBuffer::New(isolate, 100));
 
     MemoryInfo* new_precise_memory =
@@ -243,7 +243,7 @@
   // is very close to 0, we still obtain memory information from the first call
   // to MemoryInfo::Create.
   MemoryInfoTestScopedMockTime mock_time(MemoryInfo::Precision::Precise);
-  mock_time.AdvanceClock(base::TimeDelta::FromMicroseconds(100));
+  mock_time.AdvanceClock(base::Microseconds(100));
   V8TestingScope scope;
   v8::Isolate* isolate = scope.GetIsolate();
   Vector<v8::Local<v8::ArrayBuffer>> objects;
diff --git a/third_party/blink/renderer/core/timing/performance.cc b/third_party/blink/renderer/core/timing/performance.cc
index 49e38f0..1643b96 100644
--- a/third_party/blink/renderer/core/timing/performance.cc
+++ b/third_party/blink/renderer/core/timing/performance.cc
@@ -777,10 +777,9 @@
     UseCounter::Count(execution_context, WebFeature::kLongTaskBufferFull);
   }
   if ((++long_task_counter_ % kLongTaskUkmSampleInterval) == 0) {
-    RecordLongTaskUkm(
-        execution_context,
-        base::TimeDelta::FromMillisecondsD(dom_high_res_start_time),
-        end_time - start_time);
+    RecordLongTaskUkm(execution_context,
+                      base::Milliseconds(dom_high_res_start_time),
+                      end_time - start_time);
   }
   NotifyObserversOfEntry(*entry);
 }
@@ -817,8 +816,8 @@
             ->Loader()
             .GetDocumentLoader()
             ->GetTiming()
-            .SetUserTimingMarkFullyLoaded(base::TimeDelta::FromMillisecondsD(
-                performance_mark->startTime()));
+            .SetUserTimingMarkFullyLoaded(
+                base::Milliseconds(performance_mark->startTime()));
       }
     } else if (mark_name == mark_fully_visible) {
       if (LocalDOMWindow* window = LocalDOMWindow::From(script_state)) {
@@ -826,8 +825,8 @@
             ->Loader()
             .GetDocumentLoader()
             ->GetTiming()
-            .SetUserTimingMarkFullyVisible(base::TimeDelta::FromMillisecondsD(
-                performance_mark->startTime()));
+            .SetUserTimingMarkFullyVisible(
+                base::Milliseconds(performance_mark->startTime()));
       }
     } else if (mark_name == mark_interactive) {
       if (LocalDOMWindow* window = LocalDOMWindow::From(script_state)) {
@@ -835,8 +834,8 @@
             ->Loader()
             .GetDocumentLoader()
             ->GetTiming()
-            .SetUserTimingMarkInteractive(base::TimeDelta::FromMillisecondsD(
-                performance_mark->startTime()));
+            .SetUserTimingMarkInteractive(
+                base::Milliseconds(performance_mark->startTime()));
       }
     }
     NotifyObserversOfEntry(*performance_mark);
@@ -1086,7 +1085,7 @@
     base::TimeTicks monotonic_time,
     bool allow_negative_value,
     bool cross_origin_isolated_capability) {
-  return base::TimeDelta::FromMillisecondsD(MonotonicTimeToDOMHighResTimeStamp(
+  return base::Milliseconds(MonotonicTimeToDOMHighResTimeStamp(
       time_origin, monotonic_time, allow_negative_value,
       cross_origin_isolated_capability));
 }
diff --git a/third_party/blink/renderer/core/timing/performance_mark.cc b/third_party/blink/renderer/core/timing/performance_mark.cc
index 0f72ecb..4fcc64a 100644
--- a/third_party/blink/renderer/core/timing/performance_mark.cc
+++ b/third_party/blink/renderer/core/timing/performance_mark.cc
@@ -58,8 +58,8 @@
       // GetTimeOrigin() returns seconds from the monotonic clock's origin..
       // Trace events timestamps accept seconds (as a double) based on
       // CurrentTime::monotonicallyIncreasingTime().
-      unsafe_start_for_traces = performance->GetTimeOriginInternal() +
-                                base::TimeDelta::FromMillisecondsD(start);
+      unsafe_start_for_traces =
+          performance->GetTimeOriginInternal() + base::Milliseconds(start);
     } else {
       start = performance->now();
       unsafe_start_for_traces = base::TimeTicks::Now();
diff --git a/third_party/blink/renderer/core/timing/performance_test.cc b/third_party/blink/renderer/core/timing/performance_test.cc
index 09efdb6c..c764d438 100644
--- a/third_party/blink/renderer/core/timing/performance_test.cc
+++ b/third_party/blink/renderer/core/timing/performance_test.cc
@@ -132,10 +132,9 @@
   Initialize(scope.GetScriptState());
 
   // Add a long task entry, but no observer registered.
-  base_->AddLongTaskTiming(
-      base::TimeTicks() + base::TimeDelta::FromSecondsD(1234),
-      base::TimeTicks() + base::TimeDelta::FromSecondsD(5678), "window",
-      "same-origin", "www.foo.com/bar", "", "");
+  base_->AddLongTaskTiming(base::TimeTicks() + base::Seconds(1234),
+                           base::TimeTicks() + base::Seconds(5678), "window",
+                           "same-origin", "www.foo.com/bar", "", "");
   EXPECT_FALSE(base_->HasPerformanceObserverFor(PerformanceEntry::kLongTask));
   EXPECT_EQ(0, NumPerformanceEntriesInObserver());  // has no effect
 
@@ -149,10 +148,9 @@
 
   EXPECT_TRUE(base_->HasPerformanceObserverFor(PerformanceEntry::kLongTask));
   // Add a long task entry
-  base_->AddLongTaskTiming(
-      base::TimeTicks() + base::TimeDelta::FromSecondsD(1234),
-      base::TimeTicks() + base::TimeDelta::FromSecondsD(5678), "window",
-      "same-origin", "www.foo.com/bar", "", "");
+  base_->AddLongTaskTiming(base::TimeTicks() + base::Seconds(1234),
+                           base::TimeTicks() + base::Seconds(5678), "window",
+                           "same-origin", "www.foo.com/bar", "", "");
   EXPECT_EQ(1, NumPerformanceEntriesInObserver());  // added an entry
 }
 
diff --git a/third_party/blink/renderer/core/timing/performance_user_timing.cc b/third_party/blink/renderer/core/timing/performance_user_timing.cc
index cce3c24..d3406212 100644
--- a/third_party/blink/renderer/core/timing/performance_user_timing.cc
+++ b/third_party/blink/renderer/core/timing/performance_user_timing.cc
@@ -178,8 +178,7 @@
       return mark->UnsafeTimeForTraces();
     }
   }
-  return performance_->GetTimeOriginInternal() +
-         base::TimeDelta::FromMillisecondsD(start_time);
+  return performance_->GetTimeOriginInternal() + base::Milliseconds(start_time);
 }
 
 PerformanceMeasure* UserTiming::Measure(ScriptState* script_state,
diff --git a/third_party/blink/renderer/core/timing/profiler_group.cc b/third_party/blink/renderer/core/timing/profiler_group.cc
index 090068ee..6638ee3 100644
--- a/third_party/blink/renderer/core/timing/profiler_group.cc
+++ b/third_party/blink/renderer/core/timing/profiler_group.cc
@@ -103,7 +103,7 @@
 }
 
 base::TimeDelta ProfilerGroup::GetBaseSampleInterval() {
-  return base::TimeDelta::FromMilliseconds(kBaseSampleIntervalMs);
+  return base::Milliseconds(kBaseSampleIntervalMs);
 }
 
 ProfilerGroup::ProfilerGroup(v8::Isolate* isolate)
@@ -152,7 +152,7 @@
   DCHECK(init_options.hasSampleInterval());
 
   const base::TimeDelta sample_interval =
-      base::TimeDelta::FromMillisecondsD(init_options.sampleInterval());
+      base::Milliseconds(init_options.sampleInterval());
   const int64_t sample_interval_us = sample_interval.InMicroseconds();
 
   if (sample_interval_us < 0 ||
diff --git a/third_party/blink/renderer/core/timing/profiler_group_test.cc b/third_party/blink/renderer/core/timing/profiler_group_test.cc
index fadab53..7f203a7 100644
--- a/third_party/blink/renderer/core/timing/profiler_group_test.cc
+++ b/third_party/blink/renderer/core/timing/profiler_group_test.cc
@@ -106,9 +106,9 @@
   profiler_group->OnProfilingContextAdded(scope.GetExecutionContext());
 
   ProfilerInitOptions* init_options = ProfilerInitOptions::Create();
-  init_options->setSampleInterval((ProfilerGroup::GetBaseSampleInterval() +
-                                   base::TimeDelta::FromMilliseconds(1))
-                                      .InMilliseconds());
+  init_options->setSampleInterval(
+      (ProfilerGroup::GetBaseSampleInterval() + base::Milliseconds(1))
+          .InMilliseconds());
   Profiler* profiler = profiler_group->CreateProfiler(
       scope.GetScriptState(), *init_options, base::TimeTicks(),
       scope.GetExceptionState());
diff --git a/third_party/blink/renderer/core/timing/time_clamper.cc b/third_party/blink/renderer/core/timing/time_clamper.cc
index 76f8da0..f841a061 100644
--- a/third_party/blink/renderer/core/timing/time_clamper.cc
+++ b/third_party/blink/renderer/core/timing/time_clamper.cc
@@ -62,7 +62,7 @@
   // Flip the number back to being negative if it started that way.
   if (was_negative)
     clamped_time = -clamped_time;
-  return base::TimeDelta::FromMicroseconds(clamped_time);
+  return base::Microseconds(clamped_time);
 }
 
 inline double TimeClamper::ThresholdFor(int64_t clamped_time,
diff --git a/third_party/blink/renderer/core/timing/time_clamper_test.cc b/third_party/blink/renderer/core/timing/time_clamper_test.cc
index da69f91..b342ec4 100644
--- a/third_party/blink/renderer/core/timing/time_clamper_test.cc
+++ b/third_party/blink/renderer/core/timing/time_clamper_test.cc
@@ -21,9 +21,9 @@
       0.f);
   EXPECT_GE(
       clamper
-          .ClampTimeResolution(base::TimeDelta::FromMicroseconds(
-                                   TimeClamper::kFineResolutionMicroseconds),
-                               true)
+          .ClampTimeResolution(
+              base::Microseconds(TimeClamper::kFineResolutionMicroseconds),
+              true)
           .InMicroseconds(),
       0.f);
 }
@@ -36,9 +36,7 @@
        time_microseconds < kIntervalInMicroseconds * 100;
        time_microseconds += 1) {
     int64_t clamped_time =
-        clamper
-            .ClampTimeResolution(
-                base::TimeDelta::FromMicroseconds(time_microseconds), true)
+        clamper.ClampTimeResolution(base::Microseconds(time_microseconds), true)
             .InMicroseconds();
     int64_t delta = clamped_time - prev;
     ASSERT_GE(delta, 0);
@@ -55,14 +53,10 @@
        time_microseconds < kIntervalInMicroseconds * 100;
        time_microseconds += 1) {
     int64_t t1 =
-        clamper
-            .ClampTimeResolution(
-                base::TimeDelta::FromMicroseconds(time_microseconds), true)
+        clamper.ClampTimeResolution(base::Microseconds(time_microseconds), true)
             .InMicroseconds();
     int64_t t2 =
-        clamper
-            .ClampTimeResolution(
-                base::TimeDelta::FromMicroseconds(time_microseconds), true)
+        clamper.ClampTimeResolution(base::Microseconds(time_microseconds), true)
             .InMicroseconds();
     EXPECT_EQ(t1, t2);
   }
@@ -74,14 +68,10 @@
        time_microseconds < kIntervalInMicroseconds * 100;
        time_microseconds += 1) {
     int64_t t1 =
-        clamper
-            .ClampTimeResolution(
-                base::TimeDelta::FromMicroseconds(time_microseconds), true)
+        clamper.ClampTimeResolution(base::Microseconds(time_microseconds), true)
             .InMicroseconds();
     int64_t t2 =
-        clamper
-            .ClampTimeResolution(
-                base::TimeDelta::FromMicroseconds(time_microseconds), true)
+        clamper.ClampTimeResolution(base::Microseconds(time_microseconds), true)
             .InMicroseconds();
     EXPECT_EQ(t1, t2);
   }
@@ -92,15 +82,14 @@
   TimeClamper clamper2;
   int64_t time_microseconds = 0;
   while (true) {
-    if (std::abs(
-            clamper1
-                .ClampTimeResolution(
-                    base::TimeDelta::FromMicroseconds(time_microseconds), true)
-                .InMicroseconds() -
-            clamper2
-                .ClampTimeResolution(
-                    base::TimeDelta::FromMicroseconds(time_microseconds), true)
-                .InMicroseconds()) >= 1) {
+    if (std::abs(clamper1
+                     .ClampTimeResolution(base::Microseconds(time_microseconds),
+                                          true)
+                     .InMicroseconds() -
+                 clamper2
+                     .ClampTimeResolution(base::Microseconds(time_microseconds),
+                                          true)
+                     .InMicroseconds()) >= 1) {
       break;
     }
     time_microseconds += kIntervalInMicroseconds;
@@ -123,18 +112,17 @@
   for (int i = 0; i < kSampleCount; i++) {
     int64_t start =
         clamper
-            .ClampTimeResolution(
-                base::TimeDelta::FromMicroseconds(time_microseconds),
-                cross_origin_isolated_capability)
+            .ClampTimeResolution(base::Microseconds(time_microseconds),
+                                 cross_origin_isolated_capability)
             .InMicroseconds();
     for (int step = 0; step < kBuckets; step++) {
       time_microseconds += kTimeStep;
-      if (std::abs(clamper
-                       .ClampTimeResolution(
-                           base::TimeDelta::FromMicroseconds(time_microseconds),
-                           cross_origin_isolated_capability)
-                       .InMicroseconds() -
-                   start) >= 1) {
+      if (std::abs(
+              clamper
+                  .ClampTimeResolution(base::Microseconds(time_microseconds),
+                                       cross_origin_isolated_capability)
+                  .InMicroseconds() -
+              start) >= 1) {
         histogram[step]++;
         // Skip to the next interval to make sure each measurement is
         // independent.
diff --git a/third_party/blink/renderer/core/timing/window_performance.cc b/third_party/blink/renderer/core/timing/window_performance.cc
index 4a294c9..a3c8b1d 100644
--- a/third_party/blink/renderer/core/timing/window_performance.cc
+++ b/third_party/blink/renderer/core/timing/window_performance.cc
@@ -70,7 +70,7 @@
 #include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h"
 
 static constexpr base::TimeDelta kLongTaskObserverThreshold =
-    base::TimeDelta::FromMilliseconds(50);
+    base::Milliseconds(50);
 
 namespace blink {
 
@@ -452,12 +452,12 @@
     events_data_.pop_front();
 
     int duration_in_ms = std::round((end_time - entry->startTime()) / 8) * 8;
-    base::TimeDelta input_delay = base::TimeDelta::FromMillisecondsD(
-        entry->processingStart() - entry->startTime());
-    base::TimeDelta processing_time = base::TimeDelta::FromMillisecondsD(
-        entry->processingEnd() - entry->processingStart());
+    base::TimeDelta input_delay =
+        base::Milliseconds(entry->processingStart() - entry->startTime());
+    base::TimeDelta processing_time =
+        base::Milliseconds(entry->processingEnd() - entry->processingStart());
     base::TimeDelta time_to_next_paint =
-        base::TimeDelta::FromMillisecondsD(end_time - entry->processingEnd());
+        base::Milliseconds(end_time - entry->processingEnd());
     entry->SetDuration(duration_in_ms);
     ResponsivenessMetrics::EventTimestamps event_timestamps = {
         event_timestamp, presentation_timestamp};
diff --git a/third_party/blink/renderer/core/timing/window_performance_test.cc b/third_party/blink/renderer/core/timing/window_performance_test.cc
index 8eefe6f..18af7de 100644
--- a/third_party/blink/renderer/core/timing/window_performance_test.cc
+++ b/third_party/blink/renderer/core/timing/window_performance_test.cc
@@ -32,11 +32,11 @@
 namespace {
 
 base::TimeTicks GetTimeOrigin() {
-  return base::TimeTicks() + base::TimeDelta::FromSeconds(500);
+  return base::TimeTicks() + base::Seconds(500);
 }
 
 base::TimeTicks GetTimeStamp(int64_t time) {
-  return GetTimeOrigin() + base::TimeDelta::FromMilliseconds(time);
+  return GetTimeOrigin() + base::Milliseconds(time);
 }
 
 }  // namespace
@@ -68,8 +68,8 @@
     auto* monitor = GetFrame()->GetPerformanceMonitor();
     monitor->WillExecuteScript(GetWindow());
     monitor->DidExecuteScript();
-    monitor->DidProcessTask(
-        base::TimeTicks(), base::TimeTicks() + base::TimeDelta::FromSeconds(1));
+    monitor->DidProcessTask(base::TimeTicks(),
+                            base::TimeTicks() + base::Seconds(1));
   }
 
   void SimulateSwapPromise(base::TimeTicks timestamp) {
@@ -240,12 +240,12 @@
   test_task_runner_->FastForwardBy(GetTimeOrigin() - base::TimeTicks());
 
   DummyExceptionStateForTesting exception_state;
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  test_task_runner_->FastForwardBy(base::Seconds(2));
   for (int i = 0; i < 8; i++) {
     performance_->mark(GetScriptState(), AtomicString::Number(i), nullptr,
                        exception_state);
   }
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  test_task_runner_->FastForwardBy(base::Seconds(2));
   for (int i = 8; i < 17; i++) {
     performance_->mark(GetScriptState(), AtomicString::Number(i), nullptr,
                        exception_state);
@@ -265,16 +265,12 @@
 TEST_F(WindowPerformanceTest, EventTimingEntryBuffering) {
   EXPECT_TRUE(page_holder_->GetFrame().Loader().GetDocumentLoader());
 
-  base::TimeTicks start_time =
-      GetTimeOrigin() + base::TimeDelta::FromSecondsD(1.1);
-  base::TimeTicks processing_start =
-      GetTimeOrigin() + base::TimeDelta::FromSecondsD(3.3);
-  base::TimeTicks processing_end =
-      GetTimeOrigin() + base::TimeDelta::FromSecondsD(3.8);
+  base::TimeTicks start_time = GetTimeOrigin() + base::Seconds(1.1);
+  base::TimeTicks processing_start = GetTimeOrigin() + base::Seconds(3.3);
+  base::TimeTicks processing_end = GetTimeOrigin() + base::Seconds(3.8);
   performance_->RegisterEventTiming("click", start_time, processing_start,
                                     processing_end, false, nullptr, 4, 4);
-  base::TimeTicks swap_time =
-      GetTimeOrigin() + base::TimeDelta::FromSecondsD(6.0);
+  base::TimeTicks swap_time = GetTimeOrigin() + base::Seconds(6.0);
   SimulateSwapPromise(swap_time);
   EXPECT_EQ(1u, performance_->getBufferedEntriesByType("event").size());
 
@@ -298,24 +294,19 @@
 }
 
 TEST_F(WindowPerformanceTest, Expose100MsEvents) {
-  base::TimeTicks start_time =
-      GetTimeOrigin() + base::TimeDelta::FromSeconds(1);
-  base::TimeTicks processing_start =
-      start_time + base::TimeDelta::FromMilliseconds(10);
-  base::TimeTicks processing_end =
-      processing_start + base::TimeDelta::FromMilliseconds(10);
+  base::TimeTicks start_time = GetTimeOrigin() + base::Seconds(1);
+  base::TimeTicks processing_start = start_time + base::Milliseconds(10);
+  base::TimeTicks processing_end = processing_start + base::Milliseconds(10);
   performance_->RegisterEventTiming("mousedown", start_time, processing_start,
                                     processing_end, false, nullptr, 4, 4);
 
-  base::TimeTicks start_time2 =
-      start_time + base::TimeDelta::FromMicroseconds(200);
+  base::TimeTicks start_time2 = start_time + base::Microseconds(200);
   performance_->RegisterEventTiming("click", start_time2, processing_start,
                                     processing_end, false, nullptr, 4, 4);
 
   // The swap time is 100.1 ms after |start_time| but only 99.9 ms after
   // |start_time2|.
-  base::TimeTicks swap_time =
-      start_time + base::TimeDelta::FromMicroseconds(100100);
+  base::TimeTicks swap_time = start_time + base::Microseconds(100100);
   SimulateSwapPromise(swap_time);
   // Only the longer event should have been reported.
   const auto& entries = performance_->getBufferedEntriesByType("event");
@@ -324,23 +315,18 @@
 }
 
 TEST_F(WindowPerformanceTest, EventTimingDuration) {
-  base::TimeTicks start_time =
-      GetTimeOrigin() + base::TimeDelta::FromMilliseconds(1000);
-  base::TimeTicks processing_start =
-      GetTimeOrigin() + base::TimeDelta::FromMilliseconds(1001);
-  base::TimeTicks processing_end =
-      GetTimeOrigin() + base::TimeDelta::FromMilliseconds(1002);
+  base::TimeTicks start_time = GetTimeOrigin() + base::Milliseconds(1000);
+  base::TimeTicks processing_start = GetTimeOrigin() + base::Milliseconds(1001);
+  base::TimeTicks processing_end = GetTimeOrigin() + base::Milliseconds(1002);
   performance_->RegisterEventTiming("click", start_time, processing_start,
                                     processing_end, false, nullptr, 4, 4);
-  base::TimeTicks short_swap_time =
-      GetTimeOrigin() + base::TimeDelta::FromMilliseconds(1003);
+  base::TimeTicks short_swap_time = GetTimeOrigin() + base::Milliseconds(1003);
   SimulateSwapPromise(short_swap_time);
   EXPECT_EQ(0u, performance_->getBufferedEntriesByType("event").size());
 
   performance_->RegisterEventTiming("click", start_time, processing_start,
                                     processing_end, true, nullptr, 4, 4);
-  base::TimeTicks long_swap_time =
-      GetTimeOrigin() + base::TimeDelta::FromMilliseconds(2000);
+  base::TimeTicks long_swap_time = GetTimeOrigin() + base::Milliseconds(2000);
   SimulateSwapPromise(long_swap_time);
   EXPECT_EQ(1u, performance_->getBufferedEntriesByType("event").size());
 
@@ -358,18 +344,14 @@
 TEST_F(WindowPerformanceTest, MultipleEventsThenSwap) {
   size_t num_events = 10;
   for (size_t i = 0; i < num_events; ++i) {
-    base::TimeTicks start_time =
-        GetTimeOrigin() + base::TimeDelta::FromSeconds(i);
-    base::TimeTicks processing_start =
-        start_time + base::TimeDelta::FromMilliseconds(100);
-    base::TimeTicks processing_end =
-        start_time + base::TimeDelta::FromMilliseconds(200);
+    base::TimeTicks start_time = GetTimeOrigin() + base::Seconds(i);
+    base::TimeTicks processing_start = start_time + base::Milliseconds(100);
+    base::TimeTicks processing_end = start_time + base::Milliseconds(200);
     performance_->RegisterEventTiming("click", start_time, processing_start,
                                       processing_end, false, nullptr, 4, 4);
     EXPECT_EQ(0u, performance_->getBufferedEntriesByType("event").size());
   }
-  base::TimeTicks swap_time =
-      GetTimeOrigin() + base::TimeDelta::FromSeconds(num_events);
+  base::TimeTicks swap_time = GetTimeOrigin() + base::Seconds(num_events);
   SimulateSwapPromise(swap_time);
   EXPECT_EQ(num_events, performance_->getBufferedEntriesByType("event").size());
 }
@@ -384,12 +366,11 @@
                 {"mousedown", true}, {"mouseover", false}};
   for (const auto& input : inputs) {
     // first-input does not have a |duration| threshold so use close values.
-    performance_->RegisterEventTiming(
-        input.event_type, GetTimeOrigin(),
-        GetTimeOrigin() + base::TimeDelta::FromMilliseconds(1),
-        GetTimeOrigin() + base::TimeDelta::FromMilliseconds(2), false, nullptr,
-        4, 4);
-    SimulateSwapPromise(GetTimeOrigin() + base::TimeDelta::FromMilliseconds(3));
+    performance_->RegisterEventTiming(input.event_type, GetTimeOrigin(),
+                                      GetTimeOrigin() + base::Milliseconds(1),
+                                      GetTimeOrigin() + base::Milliseconds(2),
+                                      false, nullptr, 4, 4);
+    SimulateSwapPromise(GetTimeOrigin() + base::Milliseconds(3));
     PerformanceEntryVector firstInputs =
         performance_->getEntriesByType("first-input");
     EXPECT_GE(1u, firstInputs.size());
@@ -404,11 +385,9 @@
   AtomicString several_events[] = {"mouseover", "mousedown", "pointerup"};
   for (const auto& event : several_events) {
     performance_->RegisterEventTiming(
-        event, GetTimeOrigin(),
-        GetTimeOrigin() + base::TimeDelta::FromMilliseconds(1),
-        GetTimeOrigin() + base::TimeDelta::FromMilliseconds(2), false, nullptr,
-        4, 4);
-    SimulateSwapPromise(GetTimeOrigin() + base::TimeDelta::FromMilliseconds(3));
+        event, GetTimeOrigin(), GetTimeOrigin() + base::Milliseconds(1),
+        GetTimeOrigin() + base::Milliseconds(2), false, nullptr, 4, 4);
+    SimulateSwapPromise(GetTimeOrigin() + base::Milliseconds(3));
   }
   ASSERT_EQ(1u, performance_->getEntriesByType("first-input").size());
   EXPECT_EQ("mousedown",
diff --git a/third_party/blink/renderer/core/web_test/web_test_web_frame_widget_impl.cc b/third_party/blink/renderer/core/web_test/web_test_web_frame_widget_impl.cc
index 520b10b..e0d9176 100644
--- a/third_party/blink/renderer/core/web_test/web_test_web_frame_widget_impl.cc
+++ b/third_party/blink/renderer/core/web_test/web_test_web_frame_widget_impl.cc
@@ -138,7 +138,7 @@
         ->PostDelayedTask(FROM_HERE,
                           WTF::Bind(&WebTestWebFrameWidgetImpl::AnimateNow,
                                     WrapWeakPersistent(this)),
-                          base::TimeDelta::FromMilliseconds(1));
+                          base::Milliseconds(1));
   }
 }
 
diff --git a/third_party/blink/renderer/core/workers/worker_thread.cc b/third_party/blink/renderer/core/workers/worker_thread.cc
index c694aa7..2f43a308 100644
--- a/third_party/blink/renderer/core/workers/worker_thread.cc
+++ b/third_party/blink/renderer/core/workers/worker_thread.cc
@@ -73,8 +73,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kForcibleTerminationDelay =
-    base::TimeDelta::FromSeconds(2);
+constexpr base::TimeDelta kForcibleTerminationDelay = base::Seconds(2);
 
 }  // namespace
 
diff --git a/third_party/blink/renderer/core/workers/worker_thread_test.cc b/third_party/blink/renderer/core/workers/worker_thread_test.cc
index 53385b70..6248d20 100644
--- a/third_party/blink/renderer/core/workers/worker_thread_test.cc
+++ b/third_party/blink/renderer/core/workers/worker_thread_test.cc
@@ -317,7 +317,7 @@
 }
 
 TEST_F(WorkerThreadTest, AsyncTerminate_WhileTaskIsRunning) {
-  constexpr base::TimeDelta kDelay = base::TimeDelta::FromMilliseconds(10);
+  constexpr base::TimeDelta kDelay = base::Milliseconds(10);
   SetForcibleTerminationDelay(kDelay);
 
   ExpectReportingCallsForWorkerForciblyTerminated();
@@ -353,7 +353,7 @@
 
 TEST_F(WorkerThreadTest,
        AsyncTerminateAndThenSyncTerminate_WhileTaskIsRunning) {
-  SetForcibleTerminationDelay(base::TimeDelta::FromMilliseconds(10));
+  SetForcibleTerminationDelay(base::Milliseconds(10));
 
   ExpectReportingCallsForWorkerForciblyTerminated();
   StartWithSourceCodeNotToFinish();
@@ -373,7 +373,7 @@
 }
 
 TEST_F(WorkerThreadTest, Terminate_WhileDebuggerTaskIsRunningOnInitialization) {
-  constexpr base::TimeDelta kDelay = base::TimeDelta::FromMilliseconds(10);
+  constexpr base::TimeDelta kDelay = base::Milliseconds(10);
   SetForcibleTerminationDelay(kDelay);
 
   EXPECT_CALL(*reporting_proxy_, DidCreateWorkerGlobalScope(_)).Times(1);
@@ -445,7 +445,7 @@
 }
 
 TEST_F(WorkerThreadTest, Terminate_WhileDebuggerTaskIsRunning) {
-  constexpr base::TimeDelta kDelay = base::TimeDelta::FromMilliseconds(10);
+  constexpr base::TimeDelta kDelay = base::Milliseconds(10);
   SetForcibleTerminationDelay(kDelay);
 
   ExpectReportingCalls();
@@ -518,7 +518,7 @@
 
 // Tests terminating a worker when debugger is paused.
 TEST_F(WorkerThreadTest, MAYBE_TerminateWhileWorkerPausedByDebugger) {
-  constexpr base::TimeDelta kDelay = base::TimeDelta::FromMilliseconds(10);
+  constexpr base::TimeDelta kDelay = base::Milliseconds(10);
   SetForcibleTerminationDelay(kDelay);
 
   ExpectReportingCallsForWorkerForciblyTerminated();
@@ -539,7 +539,7 @@
 }
 
 TEST_F(WorkerThreadTest, MAYBE_TerminateFrozenScript) {
-  constexpr base::TimeDelta kDelay = base::TimeDelta::FromMilliseconds(10);
+  constexpr base::TimeDelta kDelay = base::Milliseconds(10);
   SetForcibleTerminationDelay(kDelay);
 
   ExpectReportingCallsForWorkerForciblyTerminated();
@@ -567,7 +567,7 @@
 }
 
 TEST_F(WorkerThreadTest, MAYBE_NestedPauseFreeze) {
-  constexpr base::TimeDelta kDelay = base::TimeDelta::FromMilliseconds(10);
+  constexpr base::TimeDelta kDelay = base::Milliseconds(10);
   SetForcibleTerminationDelay(kDelay);
 
   ExpectReportingCallsForWorkerForciblyTerminated();
@@ -606,7 +606,7 @@
 }
 
 TEST_F(WorkerThreadTest, MAYBE_NestedPauseFreezeNoInterrupts) {
-  constexpr base::TimeDelta kDelay = base::TimeDelta::FromMilliseconds(10);
+  constexpr base::TimeDelta kDelay = base::Milliseconds(10);
   SetForcibleTerminationDelay(kDelay);
 
   ExpectReportingCalls();
diff --git a/third_party/blink/renderer/core/xmlhttprequest/xml_http_request.cc b/third_party/blink/renderer/core/xmlhttprequest/xml_http_request.cc
index 16d8790..5fe5670 100644
--- a/third_party/blink/renderer/core/xmlhttprequest/xml_http_request.cc
+++ b/third_party/blink/renderer/core/xmlhttprequest/xml_http_request.cc
@@ -470,7 +470,7 @@
     return;
   }
 
-  timeout_ = base::TimeDelta::FromMilliseconds(timeout);
+  timeout_ = base::Milliseconds(timeout);
 
   // From http://www.w3.org/TR/XMLHttpRequest/#the-timeout-attribute:
   // Note: This implies that the timeout attribute can be set while fetching is
diff --git a/third_party/blink/renderer/core/xmlhttprequest/xml_http_request_progress_event_throttle.cc b/third_party/blink/renderer/core/xmlhttprequest/xml_http_request_progress_event_throttle.cc
index c28bb60..209d414 100644
--- a/third_party/blink/renderer/core/xmlhttprequest/xml_http_request_progress_event_throttle.cc
+++ b/third_party/blink/renderer/core/xmlhttprequest/xml_http_request_progress_event_throttle.cc
@@ -40,7 +40,7 @@
 namespace blink {
 
 static constexpr base::TimeDelta kMinimumProgressEventDispatchingInterval =
-    base::TimeDelta::FromMilliseconds(50);  // 50 ms per specification.
+    base::Milliseconds(50);  // 50 ms per specification.
 
 XMLHttpRequestProgressEventThrottle::DeferredEvent::DeferredEvent() {
   Clear();
diff --git a/third_party/blink/renderer/modules/ad_auction/navigator_auction.cc b/third_party/blink/renderer/modules/ad_auction/navigator_auction.cc
index d07d327..e425cc899 100644
--- a/third_party/blink/renderer/modules/ad_auction/navigator_auction.cc
+++ b/third_party/blink/renderer/modules/ad_auction/navigator_auction.cc
@@ -431,8 +431,7 @@
                                            ExceptionState& exception_state) {
   const ExecutionContext* context = ExecutionContext::From(script_state);
   auto mojo_group = mojom::blink::InterestGroup::New();
-  mojo_group->expiry =
-      base::Time::Now() + base::TimeDelta::FromSecondsD(duration_seconds);
+  mojo_group->expiry = base::Time::Now() + base::Seconds(duration_seconds);
   if (!CopyOwnerFromIdlToMojo(*context, exception_state, *group, *mojo_group))
     return;
   mojo_group->name = group->name();
diff --git a/third_party/blink/renderer/modules/animationworklet/animation_worklet_global_scope_test.cc b/third_party/blink/renderer/modules/animationworklet/animation_worklet_global_scope_test.cc
index f9012b3..9d7f66a9 100644
--- a/third_party/blink/renderer/modules/animationworklet/animation_worklet_global_scope_test.cc
+++ b/third_party/blink/renderer/modules/animationworklet/animation_worklet_global_scope_test.cc
@@ -300,8 +300,7 @@
         ProxyClientMutate(state, global_scope);
 
     EXPECT_EQ(output->animations.size(), 1ul);
-    EXPECT_EQ(output->animations[0].local_times[0],
-              base::TimeDelta::FromMillisecondsD(123));
+    EXPECT_EQ(output->animations[0].local_times[0], base::Milliseconds(123));
 
     waitable_event->Signal();
   }
diff --git a/third_party/blink/renderer/modules/animationworklet/animation_worklet_proxy_client.cc b/third_party/blink/renderer/modules/animationworklet/animation_worklet_proxy_client.cc
index 2968ab0..64c3360f 100644
--- a/third_party/blink/renderer/modules/animationworklet/animation_worklet_proxy_client.cc
+++ b/third_party/blink/renderer/modules/animationworklet/animation_worklet_proxy_client.cc
@@ -178,8 +178,7 @@
 
   UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
       "Animation.AnimationWorklet.MutateDuration", timer.Elapsed(),
-      base::TimeDelta::FromMicroseconds(1), base::TimeDelta::FromSeconds(10),
-      50);
+      base::Microseconds(1), base::Seconds(10), 50);
 
   return output;
 }
diff --git a/third_party/blink/renderer/modules/animationworklet/worklet_animation.cc b/third_party/blink/renderer/modules/animationworklet/worklet_animation.cc
index 366343a0..e89e1dd9 100644
--- a/third_party/blink/renderer/modules/animationworklet/worklet_animation.cc
+++ b/third_party/blink/renderer/modules/animationworklet/worklet_animation.cc
@@ -184,12 +184,12 @@
   // SetPlaybackRateInternal has a DCHECK for that.
   DCHECK_NE(playback_rate, 0);
   if (current_time.is_max())
-    return base::TimeDelta::FromMilliseconds(0);
+    return base::Milliseconds(0);
   if (current_time.is_min())
     return base::TimeDelta::Max();
   absl::optional<double> timeline_current_time_ms =
       timeline.CurrentTimeMilliseconds();
-  return base::TimeDelta::FromMillisecondsD(timeline_current_time_ms.value()) -
+  return base::Milliseconds(timeline_current_time_ms.value()) -
          (current_time / playback_rate);
 }
 
@@ -765,8 +765,7 @@
     return absl::nullopt;
   }
 
-  return (base::TimeDelta::FromMillisecondsD(current_time.value()) -
-          starting_time.value()) *
+  return (base::Milliseconds(current_time.value()) - starting_time.value()) *
          playback_rate_;
 }
 
@@ -826,8 +825,7 @@
   if (!timeline_time_ms)
     return absl::nullopt;
 
-  base::TimeDelta timeline_time =
-      base::TimeDelta::FromMillisecondsD(timeline_time_ms.value());
+  base::TimeDelta timeline_time = base::Milliseconds(timeline_time_ms.value());
   DCHECK(start_time_);
   return (timeline_time - start_time_.value()) * playback_rate_;
 }
diff --git a/third_party/blink/renderer/modules/animationworklet/worklet_animation_effect.cc b/third_party/blink/renderer/modules/animationworklet/worklet_animation_effect.cc
index 14c0a7cc..9c6fbf824 100644
--- a/third_party/blink/renderer/modules/animationworklet/worklet_animation_effect.cc
+++ b/third_party/blink/renderer/modules/animationworklet/worklet_animation_effect.cc
@@ -68,7 +68,7 @@
   // value back provides the actual value we use in further computation which
   // is the least surprising path.
   // [1] https://drafts.csswg.org/web-animations/#precision-of-time-values
-  local_time_ = base::TimeDelta::FromMillisecondsD(time_ms.value());
+  local_time_ = base::Milliseconds(time_ms.value());
 }
 
 absl::optional<base::TimeDelta> WorkletAnimationEffect::local_time() const {
diff --git a/third_party/blink/renderer/modules/animationworklet/worklet_animation_test.cc b/third_party/blink/renderer/modules/animationworklet/worklet_animation_test.cc
index 3c12115..d21ea254 100644
--- a/third_party/blink/renderer/modules/animationworklet/worklet_animation_test.cc
+++ b/third_party/blink/renderer/modules/animationworklet/worklet_animation_test.cc
@@ -83,7 +83,7 @@
 }
 
 base::TimeDelta ToTimeDelta(double milliseconds) {
-  return base::TimeDelta::FromMillisecondsD(milliseconds);
+  return base::Milliseconds(milliseconds);
 }
 
 }  // namespace
diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetch_icon_loader.cc b/third_party/blink/renderer/modules/background_fetch/background_fetch_icon_loader.cc
index e7f19be0..c6a06f0 100644
--- a/third_party/blink/renderer/modules/background_fetch/background_fetch_icon_loader.cc
+++ b/third_party/blink/renderer/modules/background_fetch/background_fetch_icon_loader.cc
@@ -23,7 +23,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kIconFetchTimeout = base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kIconFetchTimeout = base::Seconds(30);
 constexpr int kMinimumIconSizeInPx = 0;
 
 }  // namespace
diff --git a/third_party/blink/renderer/modules/breakout_box/media_stream_audio_track_underlying_source_test.cc b/third_party/blink/renderer/modules/breakout_box/media_stream_audio_track_underlying_source_test.cc
index e987ab0..e002798 100644
--- a/third_party/blink/renderer/modules/breakout_box/media_stream_audio_track_underlying_source_test.cc
+++ b/third_party/blink/renderer/modules/breakout_box/media_stream_audio_track_underlying_source_test.cc
@@ -80,8 +80,7 @@
       const absl::optional<base::TimeDelta>& timestamp = absl::nullopt) {
     auto data = media::AudioBuffer::CreateEmptyBuffer(
         media::ChannelLayout::CHANNEL_LAYOUT_STEREO, /*channel_count=*/2,
-        kSampleRate, kNumFrames,
-        timestamp.value_or(base::TimeDelta::FromSeconds(1)));
+        kSampleRate, kNumFrames, timestamp.value_or(base::Seconds(1)));
     PushableMediaStreamAudioSource* pushable_audio_source =
         static_cast<PushableMediaStreamAudioSource*>(
             MediaStreamAudioSource::From(track->Component()->Source()));
@@ -163,12 +162,12 @@
   };
 
   for (wtf_size_t i = 0; i < buffer_size; ++i) {
-    base::TimeDelta timestamp = base::TimeDelta::FromSeconds(i);
+    base::TimeDelta timestamp = base::Seconds(i);
     push_frame_sync(timestamp);
   }
 
   // Push another frame while the queue is full.
-  push_frame_sync(base::TimeDelta::FromSeconds(buffer_size));
+  push_frame_sync(base::Seconds(buffer_size));
 
   // Since the queue was full, the oldest frame from the queue (timestamp 0)
   // should have been dropped.
@@ -177,8 +176,7 @@
       stream->GetDefaultReaderForTesting(script_state, exception_state);
   for (wtf_size_t i = 1; i <= buffer_size; ++i) {
     AudioData* audio_data = ReadObjectFromStream<AudioData>(v8_scope, reader);
-    EXPECT_EQ(base::TimeDelta::FromMicroseconds(audio_data->timestamp()),
-              base::TimeDelta::FromSeconds(i));
+    EXPECT_EQ(base::Microseconds(audio_data->timestamp()), base::Seconds(i));
   }
 
   // Pulling causes a pending pull since there are no frames available for
diff --git a/third_party/blink/renderer/modules/breakout_box/media_stream_track_processor_test.cc b/third_party/blink/renderer/modules/breakout_box/media_stream_track_processor_test.cc
index 6218b8d..b1bcf004 100644
--- a/third_party/blink/renderer/modules/breakout_box/media_stream_track_processor_test.cc
+++ b/third_party/blink/renderer/modules/breakout_box/media_stream_track_processor_test.cc
@@ -181,7 +181,7 @@
   pushable_source_ptr->PushAudioData(media::AudioBuffer::CreateEmptyBuffer(
       media::ChannelLayout::CHANNEL_LAYOUT_STEREO, /*channel_count=*/2,
       /*sample_rate=*/8000,
-      /*frame_count=*/100, base::TimeDelta::FromSeconds(1)));
+      /*frame_count=*/100, base::Seconds(1)));
 
   ScriptPromiseTester read_tester(script_state,
                                   reader->read(script_state, exception_state));
diff --git a/third_party/blink/renderer/modules/breakout_box/media_stream_video_track_underlying_source_test.cc b/third_party/blink/renderer/modules/breakout_box/media_stream_video_track_underlying_source_test.cc
index 307359f..2a55940 100644
--- a/third_party/blink/renderer/modules/breakout_box/media_stream_video_track_underlying_source_test.cc
+++ b/third_party/blink/renderer/modules/breakout_box/media_stream_video_track_underlying_source_test.cc
@@ -176,13 +176,13 @@
   };
 
   for (wtf_size_t i = 0; i < buffer_size; ++i) {
-    base::TimeDelta timestamp = base::TimeDelta::FromSeconds(i);
+    base::TimeDelta timestamp = base::Seconds(i);
     push_frame_sync(timestamp);
   }
 
   // Push another frame while the queue is full.
   // EXPECT_EQ(queue.size(), buffer_size);
-  push_frame_sync(base::TimeDelta::FromSeconds(buffer_size));
+  push_frame_sync(base::Seconds(buffer_size));
 
   // Since the queue was full, the oldest frame from the queue (timestamp 0)
   // should have been dropped.
@@ -192,8 +192,7 @@
   for (wtf_size_t i = 1; i <= buffer_size; ++i) {
     VideoFrame* video_frame =
         ReadObjectFromStream<VideoFrame>(v8_scope, reader);
-    EXPECT_EQ(base::TimeDelta::FromMicroseconds(*video_frame->timestamp()),
-              base::TimeDelta::FromSeconds(i));
+    EXPECT_EQ(base::Microseconds(*video_frame->timestamp()), base::Seconds(i));
   }
 
   // Pulling causes a pending pull since there are no frames available for
diff --git a/third_party/blink/renderer/modules/breakout_box/pushable_media_stream_audio_source_test.cc b/third_party/blink/renderer/modules/breakout_box/pushable_media_stream_audio_source_test.cc
index 4f11b4b..982ee40 100644
--- a/third_party/blink/renderer/modules/breakout_box/pushable_media_stream_audio_source_test.cc
+++ b/third_party/blink/renderer/modules/breakout_box/pushable_media_stream_audio_source_test.cc
@@ -262,8 +262,7 @@
   constexpr int kChannels = 2;
   constexpr int kSampleRate = 8000;
   constexpr int kFrames = 256;
-  constexpr base::TimeDelta kDefaultTimeStamp =
-      base::TimeDelta::FromMilliseconds(123);
+  constexpr base::TimeDelta kDefaultTimeStamp = base::Milliseconds(123);
 
   auto interleaved_buffer = media::AudioBuffer::CreateBuffer(
       media::SampleFormat::kSampleFormatF32, kChannelLayout, kChannels,
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
index e23a607..a7286f1d 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
@@ -77,8 +77,7 @@
 // restore the context. This wait needs to be long enough to avoid spamming the
 // GPU process with retry attempts and short enough to provide decent UX. It's
 // currently set to 500ms.
-const base::TimeDelta kTryRestoreContextInterval =
-    base::TimeDelta::FromMilliseconds(500);
+const base::TimeDelta kTryRestoreContextInterval = base::Milliseconds(500);
 
 BaseRenderingContext2D::BaseRenderingContext2D()
     : dispatch_context_lost_event_timer_(
diff --git a/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.cc
index b0d0fea..a867ea3 100644
--- a/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.cc
+++ b/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.cc
@@ -333,8 +333,8 @@
     Host()->DiscardResourceProvider();
   }
   uint32_t delay = base::RandInt(1, kMaxIframeContextLoseDelay);
-  dispatch_context_lost_event_timer_.StartOneShot(
-      base::TimeDelta::FromMilliseconds(delay), FROM_HERE);
+  dispatch_context_lost_event_timer_.StartOneShot(base::Milliseconds(delay),
+                                                  FROM_HERE);
 }
 
 bool OffscreenCanvasRenderingContext2D::IsPaintable() const {
diff --git a/third_party/blink/renderer/modules/content_index/content_index_icon_loader.cc b/third_party/blink/renderer/modules/content_index/content_index_icon_loader.cc
index 79f4224..b4d0512 100644
--- a/third_party/blink/renderer/modules/content_index/content_index_icon_loader.cc
+++ b/third_party/blink/renderer/modules/content_index/content_index_icon_loader.cc
@@ -21,7 +21,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kIconFetchTimeout = base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kIconFetchTimeout = base::Seconds(30);
 
 void FetchIcon(ExecutionContext* execution_context,
                const KURL& icon_url,
diff --git a/third_party/blink/renderer/modules/credentialmanager/credential_manager_type_converters.cc b/third_party/blink/renderer/modules/credentialmanager/credential_manager_type_converters.cc
index 284795c..b239869 100644
--- a/third_party/blink/renderer/modules/credentialmanager/credential_manager_type_converters.cc
+++ b/third_party/blink/renderer/modules/credentialmanager/credential_manager_type_converters.cc
@@ -490,8 +490,7 @@
   mojo_options->public_key_parameters = std::move(parameters);
 
   if (options.hasTimeout()) {
-    mojo_options->timeout =
-        base::TimeDelta::FromMilliseconds(options.timeout());
+    mojo_options->timeout = base::Milliseconds(options.timeout());
   }
 
   // Adds the excludeCredentials members
@@ -655,8 +654,7 @@
   mojo_options->challenge = ConvertTo<Vector<uint8_t>>(options.challenge());
 
   if (options.hasTimeout()) {
-    mojo_options->timeout =
-        base::TimeDelta::FromMilliseconds(options.timeout());
+    mojo_options->timeout = base::Milliseconds(options.timeout());
   }
 
   if (options.hasRpId()) {
diff --git a/third_party/blink/renderer/modules/device_orientation/device_motion_event_pump_unittest.cc b/third_party/blink/renderer/modules/device_orientation/device_motion_event_pump_unittest.cc
index 012dd8c..6c6fb597 100644
--- a/third_party/blink/renderer/modules/device_orientation/device_motion_event_pump_unittest.cc
+++ b/third_party/blink/renderer/modules/device_orientation/device_motion_event_pump_unittest.cc
@@ -334,8 +334,7 @@
 
   base::RunLoop loop;
   blink::scheduler::GetSingleThreadTaskRunnerForTesting()->PostDelayedTask(
-      FROM_HERE, loop.QuitWhenIdleClosure(),
-      base::TimeDelta::FromMilliseconds(100));
+      FROM_HERE, loop.QuitWhenIdleClosure(), base::Milliseconds(100));
   loop.Run();
   controller()->UnregisterWithDispatcher();
 
diff --git a/third_party/blink/renderer/modules/device_orientation/device_sensor_event_pump.cc b/third_party/blink/renderer/modules/device_orientation/device_sensor_event_pump.cc
index d2bc8f9..d4ac196c 100644
--- a/third_party/blink/renderer/modules/device_orientation/device_sensor_event_pump.cc
+++ b/third_party/blink/renderer/modules/device_orientation/device_sensor_event_pump.cc
@@ -82,9 +82,8 @@
 
   DCHECK(!timer_.IsActive());
 
-  timer_.StartRepeating(
-      base::TimeDelta::FromMicroseconds(kDefaultPumpDelayMicroseconds),
-      FROM_HERE);
+  timer_.StartRepeating(base::Microseconds(kDefaultPumpDelayMicroseconds),
+                        FROM_HERE);
   state_ = PumpState::RUNNING;
 }
 
diff --git a/third_party/blink/renderer/modules/document_metadata/document_metadata_extractor.cc b/third_party/blink/renderer/modules/document_metadata/document_metadata_extractor.cc
index 7c0dd79..53b3bb2 100644
--- a/third_party/blink/renderer/modules/document_metadata/document_metadata_extractor.cc
+++ b/third_party/blink/renderer/modules/document_metadata/document_metadata_extractor.cc
@@ -312,15 +312,13 @@
 
   if (status != ExtractionStatus::kOK) {
     base::UmaHistogramCustomMicrosecondsTimes(
-        "CopylessPaste.ExtractionFailedUs", elapsed_time,
-        base::TimeDelta::FromMicroseconds(1), base::TimeDelta::FromSeconds(1),
-        50);
+        "CopylessPaste.ExtractionFailedUs", elapsed_time, base::Microseconds(1),
+        base::Seconds(1), 50);
     return nullptr;
   }
-  base::UmaHistogramCustomMicrosecondsTimes(
-      "CopylessPaste.ExtractionUs", elapsed_time,
-      base::TimeDelta::FromMicroseconds(1), base::TimeDelta::FromSeconds(1),
-      50);
+  base::UmaHistogramCustomMicrosecondsTimes("CopylessPaste.ExtractionUs",
+                                            elapsed_time, base::Microseconds(1),
+                                            base::Seconds(1), 50);
 
   page->url = document.Url();
   page->title = document.title();
diff --git a/third_party/blink/renderer/modules/eventsource/event_source.cc b/third_party/blink/renderer/modules/eventsource/event_source.cc
index 74b72fe..64f3783d 100644
--- a/third_party/blink/renderer/modules/eventsource/event_source.cc
+++ b/third_party/blink/renderer/modules/eventsource/event_source.cc
@@ -165,8 +165,7 @@
 
 void EventSource::ScheduleReconnect() {
   state_ = kConnecting;
-  connect_timer_.StartOneShot(
-      base::TimeDelta::FromMilliseconds(reconnect_delay_), FROM_HERE);
+  connect_timer_.StartOneShot(base::Milliseconds(reconnect_delay_), FROM_HERE);
   DispatchEvent(*Event::Create(event_type_names::kError));
 }
 
diff --git a/third_party/blink/renderer/modules/filesystem/file_writer.cc b/third_party/blink/renderer/modules/filesystem/file_writer.cc
index 80240c7..2b15301 100644
--- a/third_party/blink/renderer/modules/filesystem/file_writer.cc
+++ b/third_party/blink/renderer/modules/filesystem/file_writer.cc
@@ -43,7 +43,7 @@
 
 static const int kMaxRecursionDepth = 3;
 static const base::TimeDelta kProgressNotificationInterval =
-    base::TimeDelta::FromMilliseconds(50);
+    base::Milliseconds(50);
 static constexpr uint64_t kMaxTruncateLength =
     std::numeric_limits<uint64_t>::max();
 
diff --git a/third_party/blink/renderer/modules/gamepad/gamepad.cc b/third_party/blink/renderer/modules/gamepad/gamepad.cc
index 523889b..c3fce32 100644
--- a/third_party/blink/renderer/modules/gamepad/gamepad.cc
+++ b/third_party/blink/renderer/modules/gamepad/gamepad.cc
@@ -153,8 +153,7 @@
 void Gamepad::SetTimestamp(const device::Gamepad& device_gamepad,
                            bool cross_origin_isolated_capability) {
   base::TimeTicks last_updated =
-      base::TimeTicks() +
-      base::TimeDelta::FromMicroseconds(device_gamepad.timestamp);
+      base::TimeTicks() + base::Microseconds(device_gamepad.timestamp);
   if (last_updated < time_floor_)
     last_updated = time_floor_;
 
diff --git a/third_party/blink/renderer/modules/gamepad/gamepad_comparisons_test.cc b/third_party/blink/renderer/modules/gamepad/gamepad_comparisons_test.cc
index 5a6ede9..938efc1f5 100644
--- a/third_party/blink/renderer/modules/gamepad/gamepad_comparisons_test.cc
+++ b/third_party/blink/renderer/modules/gamepad/gamepad_comparisons_test.cc
@@ -34,9 +34,9 @@
 
   Gamepad* CreateGamepad() {
     base::TimeTicks dummy_time_origin =
-        base::TimeTicks() + base::TimeDelta::FromMicroseconds(1000);
+        base::TimeTicks() + base::Microseconds(1000);
     base::TimeTicks dummy_time_floor =
-        base::TimeTicks() + base::TimeDelta::FromMicroseconds(2000);
+        base::TimeTicks() + base::Microseconds(2000);
     return MakeGarbageCollected<Gamepad>(nullptr, 0, dummy_time_origin,
                                          dummy_time_floor);
   }
diff --git a/third_party/blink/renderer/modules/geolocation/geo_notifier.cc b/third_party/blink/renderer/modules/geolocation/geo_notifier.cc
index 24e31f9..6f13c59 100644
--- a/third_party/blink/renderer/modules/geolocation/geo_notifier.cc
+++ b/third_party/blink/renderer/modules/geolocation/geo_notifier.cc
@@ -29,11 +29,10 @@
   DCHECK(geolocation_);
   DCHECK(success_callback_);
 
-  base::UmaHistogramCustomTimes(
-      "Geolocation.Timeout",
-      base::TimeDelta::FromMilliseconds(options_->timeout()),
-      base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromMinutes(10),
-      /* buckets = */ 20);
+  base::UmaHistogramCustomTimes("Geolocation.Timeout",
+                                base::Milliseconds(options_->timeout()),
+                                base::Milliseconds(1), base::Minutes(10),
+                                /* buckets = */ 20);
 }
 
 void GeoNotifier::Trace(Visitor* visitor) const {
@@ -73,8 +72,7 @@
 }
 
 void GeoNotifier::StartTimer() {
-  timer_->StartOneShot(base::TimeDelta::FromMilliseconds(options_->timeout()),
-                       FROM_HERE);
+  timer_->StartOneShot(base::Milliseconds(options_->timeout()), FROM_HERE);
 }
 
 void GeoNotifier::StopTimer() {
@@ -137,11 +135,10 @@
                      GeolocationPositionError::kTimeout, "Timeout expired"));
   }
 
-  base::UmaHistogramCustomTimes(
-      "Geolocation.TimeoutExpired",
-      base::TimeDelta::FromMilliseconds(options_->timeout()),
-      base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromMinutes(10),
-      /* buckets = */ 20);
+  base::UmaHistogramCustomTimes("Geolocation.TimeoutExpired",
+                                base::Milliseconds(options_->timeout()),
+                                base::Milliseconds(1), base::Minutes(10),
+                                /* buckets = */ 20);
 
   geolocation_->RequestTimedOut(this);
 }
diff --git a/third_party/blink/renderer/modules/handwriting/handwriting_type_converters.cc b/third_party/blink/renderer/modules/handwriting/handwriting_type_converters.cc
index 54c5964..87cd438 100644
--- a/third_party/blink/renderer/modules/handwriting/handwriting_type_converters.cc
+++ b/third_party/blink/renderer/modules/handwriting/handwriting_type_converters.cc
@@ -44,7 +44,7 @@
   auto output = handwriting::mojom::blink::HandwritingPoint::New();
   output->location = gfx::PointF(input->x(), input->y());
   if (input->hasT()) {
-    output->t = base::TimeDelta::FromMilliseconds(input->t());
+    output->t = base::Milliseconds(input->t());
   }
   return output;
 }
diff --git a/third_party/blink/renderer/modules/handwriting/handwriting_type_converters_unittest.cc b/third_party/blink/renderer/modules/handwriting/handwriting_type_converters_unittest.cc
index c50eed4e..b053abf 100644
--- a/third_party/blink/renderer/modules/handwriting/handwriting_type_converters_unittest.cc
+++ b/third_party/blink/renderer/modules/handwriting/handwriting_type_converters_unittest.cc
@@ -152,7 +152,7 @@
 TEST(HandwritingTypeConvertersTest, MojoHandwritingPointToIdl) {
   auto mojo_point = handwriting::mojom::blink::HandwritingPoint::New();
   mojo_point->location = gfx::PointF(0.3, 0.4);
-  mojo_point->t = base::TimeDelta::FromMilliseconds(123);
+  mojo_point->t = base::Milliseconds(123);
 
   auto* idl_point = mojo::ConvertTo<blink::HandwritingPoint*>(mojo_point);
   ASSERT_NE(idl_point, nullptr);
@@ -177,7 +177,7 @@
   auto mojo_stroke = handwriting::mojom::blink::HandwritingStroke::New();
   auto mojo_point1 = handwriting::mojom::blink::HandwritingPoint::New();
   mojo_point1->location = gfx::PointF(2.1, 2.2);
-  mojo_point1->t = base::TimeDelta::FromMilliseconds(321);
+  mojo_point1->t = base::Milliseconds(321);
   mojo_stroke->points.push_back(std::move(mojo_point1));
   auto mojo_point2 = handwriting::mojom::blink::HandwritingPoint::New();
   mojo_point2->location = gfx::PointF(3.1, 3.2);
diff --git a/third_party/blink/renderer/modules/idle/idle_detector.cc b/third_party/blink/renderer/modules/idle/idle_detector.cc
index 107bbd5..60192cff0 100644
--- a/third_party/blink/renderer/modules/idle/idle_detector.cc
+++ b/third_party/blink/renderer/modules/idle/idle_detector.cc
@@ -31,7 +31,7 @@
     "Access to the feature \"idle-detection\" is disallowed by permissions "
     "policy.";
 
-constexpr base::TimeDelta kMinimumThreshold = base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kMinimumThreshold = base::Seconds(60);
 
 }  // namespace
 
@@ -114,7 +114,7 @@
   }
 
   if (options->hasThreshold()) {
-    auto threshold = base::TimeDelta::FromMilliseconds(options->threshold());
+    auto threshold = base::Milliseconds(options->threshold());
     if (threshold < kMinimumThreshold) {
       exception_state.ThrowTypeError("Minimum threshold is 1 minute.");
       return ScriptPromise();
diff --git a/third_party/blink/renderer/modules/idle/idle_detector.h b/third_party/blink/renderer/modules/idle/idle_detector.h
index 8aa19ee6..48b5581 100644
--- a/third_party/blink/renderer/modules/idle/idle_detector.h
+++ b/third_party/blink/renderer/modules/idle/idle_detector.h
@@ -69,7 +69,7 @@
 
   mojom::blink::IdleStatePtr state_;
 
-  base::TimeDelta threshold_ = base::TimeDelta::FromSeconds(60);
+  base::TimeDelta threshold_ = base::Seconds(60);
   Member<AbortSignal> signal_;
   Member<ScriptPromiseResolver> resolver_;
 
diff --git a/third_party/blink/renderer/modules/media/audio/audio_renderer_sink_cache_test.cc b/third_party/blink/renderer/modules/media/audio/audio_renderer_sink_cache_test.cc
index c94ab5e..216ebc38 100644
--- a/third_party/blink/renderer/modules/media/audio/audio_renderer_sink_cache_test.cc
+++ b/third_party/blink/renderer/modules/media/audio/audio_renderer_sink_cache_test.cc
@@ -25,8 +25,7 @@
 const char kAnotherDeviceId[] = "another-device-id";
 const char kUnhealthyDeviceId[] = "i-am-sick";
 const LocalFrameToken kFrameToken;
-constexpr base::TimeDelta kDeleteTimeout =
-    base::TimeDelta::FromMilliseconds(500);
+constexpr base::TimeDelta kDeleteTimeout = base::Milliseconds(500);
 }  // namespace
 
 class AudioRendererSinkCacheTest : public testing::Test {
@@ -221,8 +220,7 @@
   EXPECT_EQ(1u, sink_count());
 
   // Wait less than garbage collection timeout.
-  base::TimeDelta wait_a_bit =
-      kDeleteTimeout - base::TimeDelta::FromMilliseconds(1);
+  base::TimeDelta wait_a_bit = kDeleteTimeout - base::Milliseconds(1);
   task_runner_->FastForwardBy(wait_a_bit);
 
   // Sink is not deleted yet.
diff --git a/third_party/blink/renderer/modules/media/audio/mojo_audio_output_ipc.cc b/third_party/blink/renderer/modules/media/audio/mojo_audio_output_ipc.cc
index 60e463e..d4ad944 100644
--- a/third_party/blink/renderer/modules/media/audio/mojo_audio_output_ipc.cc
+++ b/third_party/blink/renderer/modules/media/audio/mojo_audio_output_ipc.cc
@@ -218,8 +218,7 @@
   // making it the upper limit.
   UMA_HISTOGRAM_CUSTOM_TIMES("Media.Audio.Render.OutputDeviceAuthorizationTime",
                              base::TimeTicks::Now() - auth_start_time,
-                             base::TimeDelta::FromMilliseconds(1),
-                             base::TimeDelta::FromSeconds(15), 100);
+                             base::Milliseconds(1), base::Seconds(15), 100);
 
   delegate_->OnDeviceAuthorized(static_cast<media::OutputDeviceStatus>(status),
                                 params, device_id.Utf8());
diff --git a/third_party/blink/renderer/modules/media/audio/web_audio_device_factory.cc b/third_party/blink/renderer/modules/media/audio/web_audio_device_factory.cc
index a6b7036..e0c0542 100644
--- a/third_party/blink/renderer/modules/media/audio/web_audio_device_factory.cc
+++ b/third_party/blink/renderer/modules/media/audio/web_audio_device_factory.cc
@@ -40,8 +40,7 @@
 // In this case we will time out, to avoid renderer hang forever waiting for
 // device authorization (http://crbug/615589). This will result in "no audio".
 // There are also cases when authorization takes too long on Mac and Linux.
-constexpr base::TimeDelta kMaxAuthorizationTimeout =
-    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kMaxAuthorizationTimeout = base::Seconds(10);
 #else
 constexpr base::TimeDelta kMaxAuthorizationTimeout;  // No timeout.
 #endif
@@ -190,8 +189,7 @@
     const blink::LocalFrameToken& frame_token,
     const media::AudioSinkParameters& params) {
   DCHECK(IsMainThread()) << __func__ << "() is called on a wrong thread.";
-  constexpr base::TimeDelta kDeleteTimeout =
-      base::TimeDelta::FromMilliseconds(5000);
+  constexpr base::TimeDelta kDeleteTimeout = base::Milliseconds(5000);
 
   // There's one process wide instance that lives on the render thread.
   static base::NoDestructor<AudioRendererSinkCache> cache(
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element.cc b/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element.cc
index a87196b..febab72 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element.cc
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element.cc
@@ -36,7 +36,7 @@
 namespace {
 
 const int kThumbRadius = 6;
-const base::TimeDelta kRenderTimelineInterval = base::TimeDelta::FromSeconds(1);
+const base::TimeDelta kRenderTimelineInterval = base::Seconds(1);
 
 // Only respond to main button of primary pointer(s).
 bool IsValidPointerEvent(const blink::Event& event) {
diff --git a/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc b/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc
index 53c59ad..e0e56d9 100644
--- a/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc
+++ b/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc
@@ -132,16 +132,13 @@
 const char kImmersiveModeCSSClass[] = "immersive-mode";
 
 // The delay between two taps to be recognized as a double tap gesture.
-constexpr base::TimeDelta kDoubleTapDelay =
-    base::TimeDelta::FromMilliseconds(300);
+constexpr base::TimeDelta kDoubleTapDelay = base::Milliseconds(300);
 
 // The time user have to hover on mute button to show volume slider.
 // If this value is changed, you need to change the corresponding value in
 // media_controls_impl_test.cc
-constexpr base::TimeDelta kTimeToShowVolumeSlider =
-    base::TimeDelta::FromMilliseconds(200);
-constexpr base::TimeDelta kTimeToShowVolumeSliderTest =
-    base::TimeDelta::FromMilliseconds(0);
+constexpr base::TimeDelta kTimeToShowVolumeSlider = base::Milliseconds(200);
+constexpr base::TimeDelta kTimeToShowVolumeSliderTest = base::Milliseconds(0);
 
 // The number of seconds to jump when double tapping.
 constexpr int kNumberOfSecondsToJump = 10;
@@ -213,7 +210,7 @@
 // If you change this value, then also update the corresponding value in
 // web_tests/media/media-controls.js.
 constexpr base::TimeDelta kTimeWithoutMouseMovementBeforeHidingMediaControls =
-    base::TimeDelta::FromSecondsD(2.5);
+    base::Seconds(2.5);
 
 base::TimeDelta GetTimeWithoutMouseMovementBeforeHidingMediaControls() {
   return kTimeWithoutMouseMovementBeforeHidingMediaControls;
diff --git a/third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate.h b/third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate.h
index 689bd35..8ff4ce4 100644
--- a/third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate.h
+++ b/third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate.h
@@ -123,7 +123,7 @@
   // Emprically, 200ms is too short, but 250ms avoids glitches. 500ms gives us
   // a 2x margin in case the device is running slow, without being noticeable.
   MODULES_EXPORT static constexpr base::TimeDelta kLockToAnyDelay =
-      base::TimeDelta::FromMilliseconds(500);
+      base::Milliseconds(500);
 
   // Current state of the object. See comment at the top of the file for a
   // detailed description.
diff --git a/third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate_test.cc b/third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate_test.cc
index e794f0b..e0e285f 100644
--- a/third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate_test.cc
+++ b/third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate_test.cc
@@ -1448,8 +1448,7 @@
   // delegate unlocks the screen orientation, so Android changes the screen
   // orientation back to portrait because it hasn't yet processed the device
   // orientation change to landscape.
-  constexpr base::TimeDelta kMinUnlockDelay =
-      base::TimeDelta::FromMilliseconds(249);
+  constexpr base::TimeDelta kMinUnlockDelay = base::Milliseconds(249);
   static_assert(GetUnlockDelay() > kMinUnlockDelay,
                 "GetUnlockDelay() should significantly exceed kMinUnlockDelay");
   test::RunDelayedTasks(kMinUnlockDelay);
diff --git a/third_party/blink/renderer/modules/mediacapturefromelement/html_audio_element_capturer_source.cc b/third_party/blink/renderer/modules/mediacapturefromelement/html_audio_element_capturer_source.cc
index 0781d3e..fae1658d 100644
--- a/third_party/blink/renderer/modules/mediacapturefromelement/html_audio_element_capturer_source.cc
+++ b/third_party/blink/renderer/modules/mediacapturefromelement/html_audio_element_capturer_source.cc
@@ -85,8 +85,8 @@
     int sample_rate) {
   const base::TimeTicks capture_time =
       base::TimeTicks::Now() -
-      base::TimeDelta::FromMicroseconds(base::Time::kMicrosecondsPerSecond *
-                                        frames_delayed / sample_rate);
+      base::Microseconds(base::Time::kMicrosecondsPerSecond * frames_delayed /
+                         sample_rate);
 
   if (sample_rate != last_sample_rate_ ||
       audio_bus->channels() != last_num_channels_ ||
diff --git a/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source.cc b/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source.cc
index 9d34eb8..c3ac2727 100644
--- a/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source.cc
+++ b/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source.cc
@@ -136,7 +136,7 @@
 
   // Calculate the time in the future where the next frame should be created.
   const base::TimeDelta frame_interval =
-      base::TimeDelta::FromMicroseconds(1E6 / capture_frame_rate_);
+      base::Microseconds(1E6 / capture_frame_rate_);
   if (next_capture_time_.is_null()) {
     next_capture_time_ = current_time + frame_interval;
   } else {
diff --git a/third_party/blink/renderer/modules/mediacapturefromelement/timed_canvas_draw_listener.cc b/third_party/blink/renderer/modules/mediacapturefromelement/timed_canvas_draw_listener.cc
index 1588ded..eb01636 100644
--- a/third_party/blink/renderer/modules/mediacapturefromelement/timed_canvas_draw_listener.cc
+++ b/third_party/blink/renderer/modules/mediacapturefromelement/timed_canvas_draw_listener.cc
@@ -17,7 +17,7 @@
     double frame_rate,
     ExecutionContext* context)
     : OnRequestCanvasDrawListener(std::move(handler)),
-      frame_interval_(base::TimeDelta::FromSecondsD(1 / frame_rate)),
+      frame_interval_(base::Seconds(1 / frame_rate)),
       request_frame_timer_(context->GetTaskRunner(TaskType::kInternalMedia),
                            this,
                            &TimedCanvasDrawListener::RequestFrameTimerFired) {}
diff --git a/third_party/blink/renderer/modules/mediarecorder/media_recorder_handler.cc b/third_party/blink/renderer/modules/mediarecorder/media_recorder_handler.cc
index 629b10f..03e82a0c 100644
--- a/third_party/blink/renderer/modules/mediarecorder/media_recorder_handler.cc
+++ b/third_party/blink/renderer/modules/mediarecorder/media_recorder_handler.cc
@@ -264,7 +264,7 @@
 
   invalidated_ = false;
 
-  timeslice_ = base::TimeDelta::FromMilliseconds(timeslice);
+  timeslice_ = base::Milliseconds(timeslice);
   slice_origin_timestamp_ = base::TimeTicks::Now();
 
   video_tracks_ = media_stream_->VideoComponents();
@@ -368,7 +368,7 @@
   invalidated_ = true;
 
   recording_ = false;
-  timeslice_ = base::TimeDelta::FromMilliseconds(0);
+  timeslice_ = base::Milliseconds(0);
   video_recorders_.clear();
   audio_recorders_.clear();
   webm_muxer_.reset();
diff --git a/third_party/blink/renderer/modules/mediarecorder/video_track_recorder_unittest.cc b/third_party/blink/renderer/modules/mediarecorder/video_track_recorder_unittest.cc
index 3dc43ed..68e9b13 100644
--- a/third_party/blink/renderer/modules/mediarecorder/video_track_recorder_unittest.cc
+++ b/third_party/blink/renderer/modules/mediarecorder/video_track_recorder_unittest.cc
@@ -524,7 +524,7 @@
 
   EXPECT_EQ(video_track_recorder_->GetRequiredMinFramesPerSec(), 1);
 
-  test::RunDelayedTasks(base::TimeDelta::FromSeconds(1));
+  test::RunDelayedTasks(base::Seconds(1));
 }
 
 INSTANTIATE_TEST_SUITE_P(All,
diff --git a/third_party/blink/renderer/modules/mediarecorder/vpx_encoder.cc b/third_party/blink/renderer/modules/mediarecorder/vpx_encoder.cc
index f8dc0b0..67adc09 100644
--- a/third_party/blink/renderer/modules/mediarecorder/vpx_encoder.cc
+++ b/third_party/blink/renderer/modules/mediarecorder/vpx_encoder.cc
@@ -362,10 +362,8 @@
       frame.metadata().frame_duration.value_or(predicted_frame_duration);
   last_frame_timestamp_ = frame.timestamp();
   // Make sure |frame_duration| is in a safe range of values.
-  const base::TimeDelta kMaxFrameDuration =
-      base::TimeDelta::FromSecondsD(1.0 / 8);
-  const base::TimeDelta kMinFrameDuration =
-      base::TimeDelta::FromMilliseconds(1);
+  const base::TimeDelta kMaxFrameDuration = base::Seconds(1.0 / 8);
+  const base::TimeDelta kMinFrameDuration = base::Milliseconds(1);
   return std::min(kMaxFrameDuration,
                   std::max(frame_duration, kMinFrameDuration));
 }
diff --git a/third_party/blink/renderer/modules/mediasession/media_session.cc b/third_party/blink/renderer/modules/mediasession/media_session.cc
index dad24d2..65320fc 100644
--- a/third_party/blink/renderer/modules/mediasession/media_session.cc
+++ b/third_party/blink/renderer/modules/mediasession/media_session.cc
@@ -352,7 +352,7 @@
       (now - position_state_->last_updated_time);
   const base::TimeDelta updated_position =
       position_state_->position + elapsed_time;
-  const base::TimeDelta start = base::TimeDelta::FromSeconds(0);
+  const base::TimeDelta start = base::Seconds(0);
 
   if (updated_position <= start)
     return start;
diff --git a/third_party/blink/renderer/modules/mediasession/media_session_test.cc b/third_party/blink/renderer/modules/mediasession/media_session_test.cc
index 18f8a3d..ac24246 100644
--- a/third_party/blink/renderer/modules/mediasession/media_session_test.cc
+++ b/third_party/blink/renderer/modules/mediasession/media_session_test.cc
@@ -107,8 +107,8 @@
   base::RunLoop loop;
   EXPECT_CALL(service(), SetPositionState(_))
       .WillOnce(testing::Invoke([&](auto position_state) {
-        EXPECT_EQ(base::TimeDelta::FromSeconds(10), position_state->duration);
-        EXPECT_EQ(base::TimeDelta::FromSeconds(5), position_state->position);
+        EXPECT_EQ(base::Seconds(10), position_state->duration);
+        EXPECT_EQ(base::Seconds(5), position_state->position);
         EXPECT_EQ(1.0, position_state->playback_rate);
         EXPECT_EQ(clock().NowTicks(), position_state->last_updated_time);
 
@@ -124,8 +124,8 @@
   base::RunLoop loop;
   EXPECT_CALL(service(), SetPositionState(_))
       .WillOnce(testing::Invoke([&](auto position_state) {
-        EXPECT_EQ(base::TimeDelta::FromSeconds(10), position_state->duration);
-        EXPECT_EQ(base::TimeDelta::FromSeconds(5), position_state->position);
+        EXPECT_EQ(base::Seconds(10), position_state->duration);
+        EXPECT_EQ(base::Seconds(5), position_state->position);
         EXPECT_EQ(0.0, position_state->playback_rate);
         EXPECT_EQ(clock().NowTicks(), position_state->last_updated_time);
 
@@ -141,8 +141,8 @@
   base::RunLoop loop;
   EXPECT_CALL(service(), SetPositionState(_))
       .WillOnce(testing::Invoke([&](auto position_state) {
-        EXPECT_EQ(base::TimeDelta::FromSeconds(10), position_state->duration);
-        EXPECT_EQ(base::TimeDelta::FromSeconds(5), position_state->position);
+        EXPECT_EQ(base::Seconds(10), position_state->duration);
+        EXPECT_EQ(base::Seconds(5), position_state->position);
         EXPECT_EQ(1.0, position_state->playback_rate);
         EXPECT_EQ(clock().NowTicks(), position_state->last_updated_time);
 
@@ -159,8 +159,8 @@
     base::RunLoop loop;
     EXPECT_CALL(service(), SetPositionState(_))
         .WillOnce(testing::Invoke([&](auto position_state) {
-          EXPECT_EQ(base::TimeDelta::FromSeconds(10), position_state->duration);
-          EXPECT_EQ(base::TimeDelta::FromSeconds(5), position_state->position);
+          EXPECT_EQ(base::Seconds(10), position_state->duration);
+          EXPECT_EQ(base::Seconds(5), position_state->position);
           EXPECT_EQ(0.0, position_state->playback_rate);
           EXPECT_EQ(clock().NowTicks(), position_state->last_updated_time);
 
@@ -189,8 +189,8 @@
   base::RunLoop loop;
   EXPECT_CALL(service(), SetPositionState(_))
       .WillOnce(testing::Invoke([&](auto position_state) {
-        EXPECT_EQ(base::TimeDelta::FromSeconds(10), position_state->duration);
-        EXPECT_EQ(base::TimeDelta::FromSeconds(5), position_state->position);
+        EXPECT_EQ(base::Seconds(10), position_state->duration);
+        EXPECT_EQ(base::Seconds(5), position_state->position);
         EXPECT_EQ(1.0, position_state->playback_rate);
         EXPECT_EQ(clock().NowTicks(), position_state->last_updated_time);
 
@@ -207,8 +207,8 @@
     base::RunLoop loop;
     EXPECT_CALL(service(), SetPositionState(_))
         .WillOnce(testing::Invoke([&](auto position_state) {
-          EXPECT_EQ(base::TimeDelta::FromMinutes(10), position_state->duration);
-          EXPECT_EQ(base::TimeDelta::FromMinutes(1), position_state->position);
+          EXPECT_EQ(base::Minutes(10), position_state->duration);
+          EXPECT_EQ(base::Minutes(1), position_state->position);
           EXPECT_EQ(1.0, position_state->playback_rate);
           EXPECT_EQ(clock().NowTicks(), position_state->last_updated_time);
 
@@ -219,14 +219,14 @@
     loop.Run();
   }
 
-  clock().Advance(base::TimeDelta::FromMinutes(1));
+  clock().Advance(base::Minutes(1));
 
   {
     base::RunLoop loop;
     EXPECT_CALL(service(), SetPositionState(_))
         .WillOnce(testing::Invoke([&](auto position_state) {
-          EXPECT_EQ(base::TimeDelta::FromMinutes(10), position_state->duration);
-          EXPECT_EQ(base::TimeDelta::FromMinutes(2), position_state->position);
+          EXPECT_EQ(base::Minutes(10), position_state->duration);
+          EXPECT_EQ(base::Minutes(2), position_state->position);
           EXPECT_EQ(0.0, position_state->playback_rate);
           EXPECT_EQ(clock().NowTicks(), position_state->last_updated_time);
 
@@ -237,14 +237,14 @@
     loop.Run();
   }
 
-  clock().Advance(base::TimeDelta::FromMinutes(1));
+  clock().Advance(base::Minutes(1));
 
   {
     base::RunLoop loop;
     EXPECT_CALL(service(), SetPositionState(_))
         .WillOnce(testing::Invoke([&](auto position_state) {
-          EXPECT_EQ(base::TimeDelta::FromMinutes(10), position_state->duration);
-          EXPECT_EQ(base::TimeDelta::FromMinutes(2), position_state->position);
+          EXPECT_EQ(base::Minutes(10), position_state->duration);
+          EXPECT_EQ(base::Minutes(2), position_state->position);
           EXPECT_EQ(1.0, position_state->playback_rate);
           EXPECT_EQ(clock().NowTicks(), position_state->last_updated_time);
 
@@ -261,8 +261,8 @@
     base::RunLoop loop;
     EXPECT_CALL(service(), SetPositionState(_))
         .WillOnce(testing::Invoke([&](auto position_state) {
-          EXPECT_EQ(base::TimeDelta::FromMinutes(10), position_state->duration);
-          EXPECT_EQ(base::TimeDelta::FromMinutes(1), position_state->position);
+          EXPECT_EQ(base::Minutes(10), position_state->duration);
+          EXPECT_EQ(base::Minutes(1), position_state->position);
           EXPECT_EQ(1.0, position_state->playback_rate);
           EXPECT_EQ(clock().NowTicks(), position_state->last_updated_time);
 
@@ -273,14 +273,14 @@
     loop.Run();
   }
 
-  clock().Advance(base::TimeDelta::FromMinutes(1));
+  clock().Advance(base::Minutes(1));
 
   {
     base::RunLoop loop;
     EXPECT_CALL(service(), SetPositionState(_))
         .WillOnce(testing::Invoke([&](auto position_state) {
-          EXPECT_EQ(base::TimeDelta::FromMinutes(10), position_state->duration);
-          EXPECT_EQ(base::TimeDelta::FromMinutes(2), position_state->position);
+          EXPECT_EQ(base::Minutes(10), position_state->duration);
+          EXPECT_EQ(base::Minutes(2), position_state->position);
           EXPECT_EQ(0.0, position_state->playback_rate);
           EXPECT_EQ(clock().NowTicks(), position_state->last_updated_time);
 
@@ -291,14 +291,14 @@
     loop.Run();
   }
 
-  clock().Advance(base::TimeDelta::FromMinutes(1));
+  clock().Advance(base::Minutes(1));
 
   {
     base::RunLoop loop;
     EXPECT_CALL(service(), SetPositionState(_))
         .WillOnce(testing::Invoke([&](auto position_state) {
-          EXPECT_EQ(base::TimeDelta::FromMinutes(10), position_state->duration);
-          EXPECT_EQ(base::TimeDelta::FromMinutes(2), position_state->position);
+          EXPECT_EQ(base::Minutes(10), position_state->duration);
+          EXPECT_EQ(base::Minutes(2), position_state->position);
           EXPECT_EQ(1.0, position_state->playback_rate);
           EXPECT_EQ(clock().NowTicks(), position_state->last_updated_time);
 
@@ -314,8 +314,8 @@
   base::RunLoop loop;
   EXPECT_CALL(service(), SetPositionState(_))
       .WillOnce(testing::Invoke([&](auto position_state) {
-        EXPECT_EQ(base::TimeDelta::FromSeconds(10), position_state->duration);
-        EXPECT_EQ(base::TimeDelta::FromSeconds(5), position_state->position);
+        EXPECT_EQ(base::Seconds(10), position_state->duration);
+        EXPECT_EQ(base::Seconds(5), position_state->position);
         EXPECT_EQ(1.0, position_state->playback_rate);
         EXPECT_EQ(clock().NowTicks(), position_state->last_updated_time);
 
diff --git a/third_party/blink/renderer/modules/mediasession/type_converters.cc b/third_party/blink/renderer/modules/mediasession/type_converters.cc
index efb8491..f19710c 100644
--- a/third_party/blink/renderer/modules/mediasession/type_converters.cc
+++ b/third_party/blink/renderer/modules/mediasession/type_converters.cc
@@ -45,10 +45,9 @@
                                              position) {
   return media_session::mojom::blink::MediaPosition::New(
       position->hasPlaybackRate() ? position->playbackRate() : 1.0,
-      base::TimeDelta::FromSeconds(position->duration()),
-      position->hasPosition()
-          ? base::TimeDelta::FromSeconds(position->position())
-          : base::TimeDelta(),
+      base::Seconds(position->duration()),
+      position->hasPosition() ? base::Seconds(position->position())
+                              : base::TimeDelta(),
       base::TimeTicks::Now());
 }
 
diff --git a/third_party/blink/renderer/modules/mediasource/source_buffer.cc b/third_party/blink/renderer/modules/mediasource/source_buffer.cc
index 157db7c..ea593c41 100644
--- a/third_party/blink/renderer/modules/mediasource/source_buffer.cc
+++ b/third_party/blink/renderer/modules/mediasource/source_buffer.cc
@@ -158,7 +158,7 @@
   // TODO(crbug.com/1144908): Get EncodedAudioChunk to have an optional duration
   // attribute, and require it to be populated for use by MSE-for-WebCodecs,
   // here. For initial prototype, hard-coded 22ms is used as estimated duration.
-  stream_parser_buffer->set_duration(base::TimeDelta::FromMilliseconds(22));
+  stream_parser_buffer->set_duration(base::Milliseconds(22));
   stream_parser_buffer->set_is_duration_estimated(true);
   return stream_parser_buffer;
 }
diff --git a/third_party/blink/renderer/modules/mediastream/low_latency_video_renderer_algorithm.cc b/third_party/blink/renderer/modules/mediastream/low_latency_video_renderer_algorithm.cc
index c7e8c55..1f844ac 100644
--- a/third_party/blink/renderer/modules/mediastream/low_latency_video_renderer_algorithm.cc
+++ b/third_party/blink/renderer/modules/mediastream/low_latency_video_renderer_algorithm.cc
@@ -124,7 +124,7 @@
     // Record stats for every 100 s, corresponding to roughly 6000 frames in
     // normal conditions.
     if (deadline_min - *last_deadline_min_stats_recorded_ >
-        base::TimeDelta::FromSeconds(100)) {
+        base::Seconds(100)) {
       RecordAndResetStats();
       last_deadline_min_stats_recorded_ = deadline_min;
     }
diff --git a/third_party/blink/renderer/modules/mediastream/low_latency_video_renderer_algorithm.h b/third_party/blink/renderer/modules/mediastream/low_latency_video_renderer_algorithm.h
index 6ca8513a..9a75ad8 100644
--- a/third_party/blink/renderer/modules/mediastream/low_latency_video_renderer_algorithm.h
+++ b/third_party/blink/renderer/modules/mediastream/low_latency_video_renderer_algorithm.h
@@ -61,7 +61,7 @@
   // 60fps.
   base::TimeDelta average_frame_duration() const {
     // TODO(crbug.com/1138888): Estimate frame duration from content.
-    return base::TimeDelta::FromMillisecondsD(1000.0 / 60.0);
+    return base::Milliseconds(1000.0 / 60.0);
   }
 
  private:
diff --git a/third_party/blink/renderer/modules/mediastream/low_latency_video_renderer_algorithm_unittest.cc b/third_party/blink/renderer/modules/mediastream/low_latency_video_renderer_algorithm_unittest.cc
index 2913c885..8ff35a38 100644
--- a/third_party/blink/renderer/modules/mediastream/low_latency_video_renderer_algorithm_unittest.cc
+++ b/third_party/blink/renderer/modules/mediastream/low_latency_video_renderer_algorithm_unittest.cc
@@ -14,8 +14,7 @@
  public:
   LowLatencyVideoRendererAlgorithmTest()
       : algorithm_(nullptr),
-        current_render_time_(base::TimeTicks() + base::TimeDelta::FromDays(1)) {
-  }
+        current_render_time_(base::TimeTicks() + base::Days(1)) {}
 
   LowLatencyVideoRendererAlgorithmTest(
       const LowLatencyVideoRendererAlgorithmTest&) = delete;
@@ -47,7 +46,7 @@
 
   scoped_refptr<media::VideoFrame> RenderAndStep(size_t* frames_dropped) {
     constexpr base::TimeDelta kRenderInterval =
-        base::TimeDelta::FromMillisecondsD(1000.0 / 60.0);  // 60fps.
+        base::Milliseconds(1000.0 / 60.0);  // 60fps.
     return RenderAndStep(frames_dropped, kRenderInterval);
   }
 
@@ -81,7 +80,7 @@
 
   base::TimeDelta FrameDuration() const {
     // Assume 60 Hz video content.
-    return base::TimeDelta::FromMillisecondsD(1000.0 / 60.0);
+    return base::Milliseconds(1000.0 / 60.0);
   }
 
  protected:
@@ -116,7 +115,7 @@
 // Half frame rate (30Hz playing back 60Hz video)
 TEST_F(LowLatencyVideoRendererAlgorithmTest, NormalMode30Hz) {
   constexpr base::TimeDelta kRenderInterval =
-      base::TimeDelta::FromMillisecondsD(1000.0 / 30.0);  // 30Hz.
+      base::Milliseconds(1000.0 / 30.0);  // 30Hz.
   constexpr int kMaxCompositionDelayInFrames = 6;
 
   constexpr size_t kNumberOfFrames = 120;
@@ -145,7 +144,7 @@
 // Fractional frame rate (90Hz playing back 60Hz video)
 TEST_F(LowLatencyVideoRendererAlgorithmTest, NormalMode90Hz) {
   constexpr base::TimeDelta kRenderInterval =
-      base::TimeDelta::FromMillisecondsD(1000.0 / 90.0);  // 90Hz.
+      base::Milliseconds(1000.0 / 90.0);  // 90Hz.
   constexpr int kMaxCompositionDelayInFrames = 6;
 
   CreateAndEnqueueFrame(kMaxCompositionDelayInFrames);
@@ -176,7 +175,7 @@
 // Double frame rate (120Hz playing back 60Hz video)
 TEST_F(LowLatencyVideoRendererAlgorithmTest, NormalMode120Hz) {
   constexpr base::TimeDelta kRenderInterval =
-      base::TimeDelta::FromMillisecondsD(1000.0 / 120.0);  // 120Hz.
+      base::Milliseconds(1000.0 / 120.0);  // 120Hz.
   constexpr int kMaxCompositionDelayInFrames = 6;
 
   // Add one initial frame.
@@ -205,7 +204,7 @@
 // Super high display rate (600Hz playing back 60Hz video)
 TEST_F(LowLatencyVideoRendererAlgorithmTest, NormalMode600Hz) {
   constexpr base::TimeDelta kRenderInterval =
-      base::TimeDelta::FromMillisecondsD(1000.0 / 600.0 + 1.0e-3);  // 600Hz.
+      base::Milliseconds(1000.0 / 600.0 + 1.0e-3);  // 600Hz.
   constexpr int kMaxCompositionDelayInFrames = 6;
 
   // Add one initial frame.
@@ -336,7 +335,7 @@
 // Double Rate Drain (120Hz playing back 60Hz video in DRAIN mode)
 TEST_F(LowLatencyVideoRendererAlgorithmTest, EnterDrainMode120Hz) {
   constexpr base::TimeDelta kRenderInterval =
-      base::TimeDelta::FromMillisecondsD(1000.0 / 120.0);  // 120Hz.
+      base::Milliseconds(1000.0 / 120.0);  // 120Hz.
   // Enter drain mode when more than 6 frames are in the queue.
   constexpr int kMaxCompositionDelayInFrames = 6;
 
@@ -421,7 +420,7 @@
 // Fractional rate, steady state queue reduction.
 TEST_F(LowLatencyVideoRendererAlgorithmTest, SteadyStateReduction90Hz) {
   constexpr base::TimeDelta kRenderInterval =
-      base::TimeDelta::FromMillisecondsD(1000.0 / 90.0);  // 90Hz.
+      base::Milliseconds(1000.0 / 90.0);  // 90Hz.
 
   // Create an initial queue of 5 frames.
   constexpr int kMaxCompositionDelayInFrames = 6;
@@ -479,7 +478,7 @@
 TEST_F(LowLatencyVideoRendererAlgorithmTest,
        RenderFrameImmediatelyAfterOutage) {
   constexpr base::TimeDelta kRenderInterval =
-      base::TimeDelta::FromMillisecondsD(1000.0 / 600.0 + 1.0e-3);  // 600Hz.
+      base::Milliseconds(1000.0 / 600.0 + 1.0e-3);  // 600Hz.
   constexpr int kMaxCompositionDelayInFrames = 6;
 
   for (int outage_length = 0; outage_length < 100; ++outage_length) {
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_audio_processor.cc b/third_party/blink/renderer/modules/mediastream/media_stream_audio_processor.cc
index 75b90e5e..3686140 100644
--- a/third_party/blink/renderer/modules/mediastream/media_stream_audio_processor.cc
+++ b/third_party/blink/renderer/modules/mediastream/media_stream_audio_processor.cc
@@ -164,9 +164,8 @@
 
     if (fifo_) {
       CHECK_LT(fifo_->frames(), destination_->bus()->frames());
-      next_audio_delay_ = audio_delay + fifo_->frames() *
-                                            base::TimeDelta::FromSeconds(1) /
-                                            sample_rate_;
+      next_audio_delay_ =
+          audio_delay + fifo_->frames() * base::Seconds(1) / sample_rate_;
       fifo_->Push(source_to_push);
     } else {
       CHECK(!data_available_);
@@ -188,8 +187,8 @@
 
       fifo_->Consume(destination_->bus(), 0, destination_->bus()->frames());
       *audio_delay = next_audio_delay_;
-      next_audio_delay_ -= destination_->bus()->frames() *
-                           base::TimeDelta::FromSeconds(1) / sample_rate_;
+      next_audio_delay_ -=
+          destination_->bus()->frames() * base::Seconds(1) / sample_rate_;
     } else {
       if (!data_available_)
         return false;
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_audio_processor_test.cc b/third_party/blink/renderer/modules/mediastream/media_stream_audio_processor_test.cc
index 07b4a6b..66aab56 100644
--- a/third_party/blink/renderer/modules/mediastream/media_stream_audio_processor_test.cc
+++ b/third_party/blink/renderer/modules/mediastream/media_stream_audio_processor_test.cc
@@ -105,11 +105,10 @@
       data_bus_playout_to_use = data_bus_playout.get();
     }
 
-    const base::TimeDelta input_capture_delay =
-        base::TimeDelta::FromMilliseconds(20);
-    const base::TimeDelta output_buffer_duration =
-        expected_output_buffer_size * base::TimeDelta::FromSeconds(1) /
-        expected_output_sample_rate;
+    const base::TimeDelta input_capture_delay = base::Milliseconds(20);
+    const base::TimeDelta output_buffer_duration = expected_output_buffer_size *
+                                                   base::Seconds(1) /
+                                                   expected_output_sample_rate;
     for (int i = 0; i < kNumberOfPacketsForTest; ++i) {
       data_bus->FromInterleaved<media::SignedInt16SampleTypeTraits>(
           data_ptr, data_bus->frames());
@@ -129,7 +128,7 @@
         }
         audio_processor->OnPlayoutData(data_bus_playout_to_use,
                                        params.sample_rate(),
-                                       base::TimeDelta::FromMilliseconds(10));
+                                       base::Milliseconds(10));
       }
 
       media::AudioBus* processed_data = nullptr;
@@ -379,8 +378,7 @@
     // Run the test consecutively to make sure the stereo channels are not
     // flipped back and forth.
     static const int kNumberOfPacketsForTest = 100;
-    const base::TimeDelta pushed_capture_delay =
-        base::TimeDelta::FromMilliseconds(42);
+    const base::TimeDelta pushed_capture_delay = base::Milliseconds(42);
     media::AudioBus* processed_data = nullptr;
 
     for (int num_preferred_channels = 0; num_preferred_channels <= 5;
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_constraints_util_audio.cc b/third_party/blink/renderer/modules/mediastream/media_stream_constraints_util_audio.cc
index 9fbcc200..b3c00974 100644
--- a/third_party/blink/renderer/modules/mediastream/media_stream_constraints_util_audio.cc
+++ b/third_party/blink/renderer/modules/mediastream/media_stream_constraints_util_audio.cc
@@ -890,7 +890,7 @@
       std::tie(min_buffer_size, max_buffer_size) =
           GetMinMaxBufferSizesForAudioParameters(parameters);
       requested_buffer_size = media::AudioLatency::GetExactBufferSize(
-          base::TimeDelta::FromSecondsD(*latency), parameters.sample_rate(),
+          base::Seconds(*latency), parameters.sample_rate(),
           parameters.frames_per_buffer(), min_buffer_size, max_buffer_size,
           max_buffer_size);
     }
@@ -1648,12 +1648,12 @@
   // AudioParameters::GetBufferDuration() so that values reported to the user
   // are truncated consistently to the microseconds decimal place.
   return std::make_tuple(
-      base::TimeDelta::FromMicroseconds(
+      base::Microseconds(
           static_cast<int64_t>(min_buffer_size *
                                base::Time::kMicrosecondsPerSecond /
                                static_cast<float>(parameters.sample_rate())))
           .InSecondsF(),
-      base::TimeDelta::FromMicroseconds(
+      base::Microseconds(
           static_cast<int64_t>(max_buffer_size *
                                base::Time::kMicrosecondsPerSecond /
                                static_cast<float>(parameters.sample_rate())))
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_video_track.cc b/third_party/blink/renderer/modules/mediastream/media_stream_video_track.cc
index 0454bb5..8fdc888 100644
--- a/third_party/blink/renderer/modules/mediastream/media_stream_video_track.cc
+++ b/third_party/blink/renderer/modules/mediastream/media_stream_video_track.cc
@@ -30,7 +30,7 @@
 
 // A lower-bound for the refresh interval.
 constexpr base::TimeDelta kLowerBoundRefreshInterval =
-    base::TimeDelta::FromHz(media::limits::kMaxFramesPerSecond);
+    base::Hertz(media::limits::kMaxFramesPerSecond);
 
 // This alias mimics the definition of VideoCaptureDeliverFrameCB.
 using VideoCaptureDeliverFrameInternalCallback = WTF::CrossThreadFunction<void(
@@ -52,11 +52,10 @@
   // the maximum frameRate if it happens to be less than the default.
   base::TimeDelta refresh_interval = required_min_refresh_interval;
   if (min_frame_rate.has_value())
-    refresh_interval = base::TimeDelta::FromHz(*min_frame_rate);
+    refresh_interval = base::Hertz(*min_frame_rate);
 
   if (max_frame_rate.has_value()) {
-    refresh_interval =
-        std::max(refresh_interval, base::TimeDelta::FromHz(*max_frame_rate));
+    refresh_interval = std::max(refresh_interval, base::Hertz(*max_frame_rate));
   }
 
   if (refresh_interval < kLowerBoundRefreshInterval)
@@ -797,8 +796,7 @@
   }
 
   base::TimeDelta refresh_interval = ComputeRefreshIntervalFromBounds(
-      base::TimeDelta::FromHz(required_min_fps), min_frame_rate_,
-      max_frame_rate_);
+      base::Hertz(required_min_fps), min_frame_rate_, max_frame_rate_);
 
   if (refresh_interval.is_max()) {
     refresh_timer_.Stop();
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_video_track_test.cc b/third_party/blink/renderer/modules/mediastream/media_stream_video_track_test.cc
index 7ddf1fd0..e8818b9f 100644
--- a/third_party/blink/renderer/modules/mediastream/media_stream_video_track_test.cc
+++ b/third_party/blink/renderer/modules/mediastream/media_stream_video_track_test.cc
@@ -581,7 +581,7 @@
   video_track->SetIsScreencastForTesting(true);
 
   sink.ConnectToTrack(track);
-  test::RunDelayedTasks(base::TimeDelta::FromHz(kMinFrameRate));
+  test::RunDelayedTasks(base::Hertz(kMinFrameRate));
 
   EXPECT_TRUE(video_track->IsRefreshFrameTimerRunningForTesting());
   video_track->StopAndNotify(base::BindOnce([] {}));
@@ -603,7 +603,7 @@
   video_track->SetIsScreencastForTesting(false);
 
   sink.ConnectToTrack(track);
-  test::RunDelayedTasks(base::TimeDelta::FromHz(kMinFrameRate));
+  test::RunDelayedTasks(base::Hertz(kMinFrameRate));
 
   EXPECT_FALSE(video_track->IsRefreshFrameTimerRunningForTesting());
 }
@@ -622,7 +622,7 @@
   video_track->SetIsScreencastForTesting(true);
 
   sink.ConnectToTrack(track);
-  test::RunDelayedTasks(base::TimeDelta::FromSeconds(1));
+  test::RunDelayedTasks(base::Seconds(1));
 }
 
 TEST_F(MediaStreamVideoTrackRefreshFrameTimerTest,
@@ -644,7 +644,7 @@
       blink::scheduler::GetSingleThreadTaskRunnerForTesting());
   EXPECT_EQ(webrtc_sink.GetRequiredMinFramesPerSec(), 1);
 
-  test::RunDelayedTasks(base::TimeDelta::FromSeconds(1));
+  test::RunDelayedTasks(base::Seconds(1));
 }
 
 TEST_F(MediaStreamVideoTrackRefreshFrameTimerTest,
@@ -672,7 +672,7 @@
       blink::scheduler::GetSingleThreadTaskRunnerForTesting());
   EXPECT_EQ(webrtc_sink.GetRequiredMinFramesPerSec(), 1);
 
-  test::RunDelayedTasks(base::TimeDelta::FromSeconds(1));
+  test::RunDelayedTasks(base::Seconds(1));
 }
 
 TEST_F(MediaStreamVideoTrackRefreshFrameTimerTest,
@@ -703,7 +703,7 @@
     EXPECT_EQ(webrtc_sink.GetRequiredMinFramesPerSec(), 1);
   }
 
-  test::RunDelayedTasks(base::TimeDelta::FromSeconds(1));
+  test::RunDelayedTasks(base::Seconds(1));
 }
 
 }  // namespace media_stream_video_track_test
diff --git a/third_party/blink/renderer/modules/mediastream/processed_local_audio_source_test.cc b/third_party/blink/renderer/modules/mediastream/processed_local_audio_source_test.cc
index 7c34cf8..1e1bd20 100644
--- a/third_party/blink/renderer/modules/mediastream/processed_local_audio_source_test.cc
+++ b/third_party/blink/renderer/modules/mediastream/processed_local_audio_source_test.cc
@@ -189,7 +189,7 @@
   bool key_pressed = true;
   double volume = 0.9;
   const base::TimeTicks capture_time =
-      base::TimeTicks::Now() + base::TimeDelta::FromMilliseconds(delay_ms);
+      base::TimeTicks::Now() + base::Milliseconds(delay_ms);
   std::unique_ptr<media::AudioBus> audio_bus =
       media::AudioBus::Create(2, kExpectedSourceBufferSize);
   audio_bus->Zero();
diff --git a/third_party/blink/renderer/modules/mediastream/track_audio_renderer.cc b/third_party/blink/renderer/modules/mediastream/track_audio_renderer.cc
index 9eca039..449a0fc 100644
--- a/third_party/blink/renderer/modules/mediastream/track_audio_renderer.cc
+++ b/third_party/blink/renderer/modules/mediastream/track_audio_renderer.cc
@@ -52,9 +52,8 @@
     int64_t num_samples_rendered,
     int sample_rate) {
   return prior_elapsed_render_time +
-         base::TimeDelta::FromMicroseconds(num_samples_rendered *
-                                           base::Time::kMicrosecondsPerSecond /
-                                           sample_rate);
+         base::Microseconds(num_samples_rendered *
+                            base::Time::kMicrosecondsPerSecond / sample_rate);
 }
 
 WebLocalFrame* ToWebLocalFrame(LocalFrame* frame) {
@@ -406,9 +405,8 @@
   // ~15ms on Windows machines without a working high-resolution clock.  See
   // comments in base/time/time.h for details.
   media::AudioShifter* const new_shifter = new media::AudioShifter(
-      base::TimeDelta::FromSeconds(5), base::TimeDelta::FromMilliseconds(20),
-      base::TimeDelta::FromSeconds(20), source_params_.sample_rate(),
-      source_params_.channels());
+      base::Seconds(5), base::Milliseconds(20), base::Seconds(20),
+      source_params_.sample_rate(), source_params_.channels());
 
   base::AutoLock auto_lock(thread_lock_);
   audio_shifter_.reset(new_shifter);
diff --git a/third_party/blink/renderer/modules/mediastream/video_track_adapter.cc b/third_party/blink/renderer/modules/mediastream/video_track_adapter.cc
index 42c836e5..24b8a6b 100644
--- a/third_party/blink/renderer/modules/mediastream/video_track_adapter.cc
+++ b/third_party/blink/renderer/modules/mediastream/video_track_adapter.cc
@@ -734,8 +734,7 @@
       CrossThreadBindOnce(&VideoTrackAdapter::CheckFramesReceivedOnIO,
                           WrapRefCounted(this), std::move(on_muted_callback),
                           frame_counter_),
-      base::TimeDelta::FromSecondsD(kFirstFrameTimeoutInFrameIntervals /
-                                    source_frame_rate_));
+      base::Seconds(kFirstFrameTimeoutInFrameIntervals / source_frame_rate_));
 }
 
 void VideoTrackAdapter::StopFrameMonitoringOnIO() {
@@ -854,8 +853,7 @@
       CrossThreadBindOnce(&VideoTrackAdapter::CheckFramesReceivedOnIO,
                           WrapRefCounted(this),
                           std::move(set_muted_state_callback), frame_counter_),
-      base::TimeDelta::FromSecondsD(kNormalFrameTimeoutInFrameIntervals /
-                                    source_frame_rate_));
+      base::Seconds(kNormalFrameTimeoutInFrameIntervals / source_frame_rate_));
 }
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/mediastream/webaudio_media_stream_audio_sink_test.cc b/third_party/blink/renderer/modules/mediastream/webaudio_media_stream_audio_sink_test.cc
index dfc4b6eb..1c5e7285 100644
--- a/third_party/blink/renderer/modules/mediastream/webaudio_media_stream_audio_sink_test.cc
+++ b/third_party/blink/renderer/modules/mediastream/webaudio_media_stream_audio_sink_test.cc
@@ -94,9 +94,8 @@
   }
 
   // Make a second data delivery.
-  estimated_capture_time += source_bus->frames() *
-                            base::TimeDelta::FromSeconds(1) /
-                            source_params_.sample_rate();
+  estimated_capture_time +=
+      source_bus->frames() * base::Seconds(1) / source_params_.sample_rate();
   source_provider_->OnData(*source_bus, estimated_capture_time);
 
   // Verify that non-zero data samples are present in the results of the
diff --git a/third_party/blink/renderer/modules/mediastream/webmediaplayer_ms.cc b/third_party/blink/renderer/modules/mediastream/webmediaplayer_ms.cc
index 247ea4b..c5f77ac 100644
--- a/third_party/blink/renderer/modules/mediastream/webmediaplayer_ms.cc
+++ b/third_party/blink/renderer/modules/mediastream/webmediaplayer_ms.cc
@@ -122,8 +122,7 @@
   }
 }
 
-constexpr base::TimeDelta kForceBeginFramesTimeout =
-    base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kForceBeginFramesTimeout = base::Seconds(1);
 }  // namespace
 
 #if defined(OS_WIN)
@@ -1034,7 +1033,7 @@
 }
 
 double WebMediaPlayerMS::MediaTimeForTimeValue(double timeValue) const {
-  return base::TimeDelta::FromSecondsD(timeValue).InSecondsF();
+  return base::Seconds(timeValue).InSecondsF();
 }
 
 unsigned WebMediaPlayerMS::DecodedFrameCount() const {
diff --git a/third_party/blink/renderer/modules/mediastream/webmediaplayer_ms_compositor.cc b/third_party/blink/renderer/modules/mediastream/webmediaplayer_ms_compositor.cc
index 8f9b05c2..4d67147 100644
--- a/third_party/blink/renderer/modules/mediastream/webmediaplayer_ms_compositor.cc
+++ b/third_party/blink/renderer/modules/mediastream/webmediaplayer_ms_compositor.cc
@@ -162,7 +162,7 @@
       player_(player),
       video_frame_provider_client_(nullptr),
       current_frame_rendered_(false),
-      last_render_length_(base::TimeDelta::FromSecondsD(1.0 / 60.0)),
+      last_render_length_(base::Seconds(1.0 / 60.0)),
       total_frame_count_(0),
       dropped_frame_count_(0),
       stopped_(true),
diff --git a/third_party/blink/renderer/modules/mediastream/webmediaplayer_ms_test.cc b/third_party/blink/renderer/modules/mediastream/webmediaplayer_ms_test.cc
index c50d5709..2605a37 100644
--- a/third_party/blink/renderer/modules/mediastream/webmediaplayer_ms_test.cc
+++ b/third_party/blink/renderer/modules/mediastream/webmediaplayer_ms_test.cc
@@ -199,8 +199,7 @@
         task_runner_(task_runner),
         message_loop_controller_(message_loop_controller),
         repaint_cb_(repaint_cb),
-        delay_till_next_generated_frame_(
-            base::TimeDelta::FromSecondsD(1.0 / 30.0)) {}
+        delay_till_next_generated_frame_(base::Seconds(1.0 / 30.0)) {}
 
   // Implementation of WebMediaStreamVideoRenderer
   void Start() override;
@@ -326,7 +325,7 @@
       auto frame = media::VideoFrame::CreateZeroInitializedFrame(
           opaque_frame ? media::PIXEL_FORMAT_I420 : media::PIXEL_FORMAT_I420A,
           frame_size, gfx::Rect(frame_size), frame_size,
-          base::TimeDelta::FromMilliseconds(token));
+          base::Milliseconds(token));
 
       // MediaStreamRemoteVideoSource does not explicitly set the rotation
       // for unrotated frames, so that is not done here either.
@@ -334,7 +333,7 @@
         frame->metadata().transformation = rotation;
 
       frame->metadata().reference_time =
-          base::TimeTicks::Now() + base::TimeDelta::FromMilliseconds(token);
+          base::TimeTicks::Now() + base::Milliseconds(token);
 
       AddFrame(FrameType::NORMAL_FRAME, frame);
       continue;
@@ -781,10 +780,8 @@
     return;
 
   base::TimeTicks now = base::TimeTicks::Now();
-  base::TimeTicks deadline_min =
-      now + base::TimeDelta::FromSecondsD(1.0 / 60.0);
-  base::TimeTicks deadline_max =
-      deadline_min + base::TimeDelta::FromSecondsD(1.0 / 60.0);
+  base::TimeTicks deadline_min = now + base::Seconds(1.0 / 60.0);
+  base::TimeTicks deadline_max = deadline_min + base::Seconds(1.0 / 60.0);
 
   // Background rendering is different from stop rendering. The rendering loop
   // is still running but we do not ask frames from |compositor_|. And
@@ -797,7 +794,7 @@
   scheduler::GetSingleThreadTaskRunnerForTesting()->PostDelayedTask(
       FROM_HERE,
       WTF::Bind(&WebMediaPlayerMSTest::RenderFrame, weak_factory_.GetWeakPtr()),
-      base::TimeDelta::FromSecondsD(1.0 / 60.0));
+      base::Seconds(1.0 / 60.0));
 }
 
 void WebMediaPlayerMSTest::SizeChanged() {
@@ -1462,8 +1459,7 @@
 
   auto frame = media::VideoFrame::CreateZeroInitializedFrame(
       opaque_frame ? media::PIXEL_FORMAT_I420 : media::PIXEL_FORMAT_I420A,
-      frame_size, gfx::Rect(frame_size), frame_size,
-      base::TimeDelta::FromSeconds(10));
+      frame_size, gfx::Rect(frame_size), frame_size, base::Seconds(10));
 
   compositor_->EnqueueFrame(std::move(frame), true);
   base::RunLoop().RunUntilIdle();
@@ -1471,8 +1467,7 @@
 
   frame = media::VideoFrame::CreateZeroInitializedFrame(
       opaque_frame ? media::PIXEL_FORMAT_I420 : media::PIXEL_FORMAT_I420A,
-      frame_size, gfx::Rect(frame_size), frame_size,
-      base::TimeDelta::FromSeconds(1));
+      frame_size, gfx::Rect(frame_size), frame_size, base::Seconds(1));
   compositor_->EnqueueFrame(std::move(frame), true);
   base::RunLoop().RunUntilIdle();
   EXPECT_GE(compositor_->GetPreferredRenderInterval(), base::TimeDelta());
diff --git a/third_party/blink/renderer/modules/notifications/notification_data_test.cc b/third_party/blink/renderer/modules/notifications/notification_data_test.cc
index 7f8f669..ae0359d2 100644
--- a/third_party/blink/renderer/modules/notifications/notification_data_test.cc
+++ b/third_party/blink/renderer/modules/notifications/notification_data_test.cc
@@ -348,9 +348,8 @@
 TEST(NotificationDataTest, RejectsTriggerTimestampOverAYear) {
   V8TestingScope scope;
 
-  base::Time show_timestamp = base::Time::Now() +
-                              kMaxNotificationShowTriggerDelay +
-                              base::TimeDelta::FromDays(1);
+  base::Time show_timestamp =
+      base::Time::Now() + kMaxNotificationShowTriggerDelay + base::Days(1);
   TimestampTrigger* show_trigger =
       TimestampTrigger::Create(show_timestamp.ToJsTime());
 
diff --git a/third_party/blink/renderer/modules/notifications/notification_resources_loader.cc b/third_party/blink/renderer/modules/notifications/notification_resources_loader.cc
index 932f4802..ee5058ca 100644
--- a/third_party/blink/renderer/modules/notifications/notification_resources_loader.cc
+++ b/third_party/blink/renderer/modules/notifications/notification_resources_loader.cc
@@ -20,7 +20,7 @@
 namespace {
 
 // 99.9% of all images were fetched successfully in 90 seconds.
-constexpr base::TimeDelta kImageFetchTimeout = base::TimeDelta::FromSeconds(90);
+constexpr base::TimeDelta kImageFetchTimeout = base::Seconds(90);
 
 enum class NotificationIconType { kImage, kIcon, kBadge, kActionIcon };
 
diff --git a/third_party/blink/renderer/modules/payments/payment_request.cc b/third_party/blink/renderer/modules/payments/payment_request.cc
index 46c316b..9fca706 100644
--- a/third_party/blink/renderer/modules/payments/payment_request.cc
+++ b/third_party/blink/renderer/modules/payments/payment_request.cc
@@ -859,8 +859,7 @@
   if (is_waiting_for_show_promise_to_resolve_) {
     // If the website does not calculate the final shopping cart contents within
     // 10 seconds, abort payment.
-    update_payment_details_timer_.StartOneShot(base::TimeDelta::FromSeconds(10),
-                                               FROM_HERE);
+    update_payment_details_timer_.StartOneShot(base::Seconds(10), FROM_HERE);
     details_promise.Then(
         UpdatePaymentDetailsFunction::CreateFunction(
             script_state, this,
@@ -1467,7 +1466,7 @@
 
   // If the website does not call complete() 60 seconds after show() has been
   // resolved, then behave as if the website called complete("fail").
-  complete_timer_.StartOneShot(base::TimeDelta::FromSeconds(60), FROM_HERE);
+  complete_timer_.StartOneShot(base::Seconds(60), FROM_HERE);
 
   if (retry_resolver_) {
     DCHECK(payment_response_);
@@ -1689,8 +1688,7 @@
 
   // If the website does not calculate the updated shopping cart contents
   // within 60 seconds, abort payment.
-  update_payment_details_timer_.StartOneShot(base::TimeDelta::FromSeconds(60),
-                                             FROM_HERE);
+  update_payment_details_timer_.StartOneShot(base::Seconds(60), FROM_HERE);
 
   event_target->DispatchEvent(*event);
   // Check whether the execution context still exists, because DispatchEvent()
diff --git a/third_party/blink/renderer/modules/payments/secure_payment_confirmation_type_converter.cc b/third_party/blink/renderer/modules/payments/secure_payment_confirmation_type_converter.cc
index 7b5926f..c686c8f 100644
--- a/third_party/blink/renderer/modules/payments/secure_payment_confirmation_type_converter.cc
+++ b/third_party/blink/renderer/modules/payments/secure_payment_confirmation_type_converter.cc
@@ -43,7 +43,7 @@
   // If a timeout was not specified in JavaScript, then pass a null `timeout`
   // through mojo IPC, so the browser can set a default (e.g., 3 minutes).
   if (input->hasTimeout())
-    output->timeout = base::TimeDelta::FromMilliseconds(input->timeout());
+    output->timeout = base::Milliseconds(input->timeout());
 
   output->instrument = blink::mojom::blink::PaymentCredentialInstrument::New(
       input->instrument()->displayName(),
diff --git a/third_party/blink/renderer/modules/peerconnection/media_stream_remote_video_source.cc b/third_party/blink/renderer/modules/peerconnection/media_stream_remote_video_source.cc
index 5c44283..a2218ea 100644
--- a/third_party/blink/renderer/modules/peerconnection/media_stream_remote_video_source.cc
+++ b/third_party/blink/renderer/modules/peerconnection/media_stream_remote_video_source.cc
@@ -147,8 +147,8 @@
   const base::TimeTicks render_time =
       render_immediately
           ? current_time
-          : base::TimeTicks() + base::TimeDelta::FromMicroseconds(
-                                    incoming_frame.timestamp_us());
+          : base::TimeTicks() +
+                base::Microseconds(incoming_frame.timestamp_us());
   if (!start_timestamp_)
     start_timestamp_ = render_time;
   const base::TimeDelta elapsed_timestamp = render_time - *start_timestamp_;
@@ -213,16 +213,16 @@
       static_cast<double>(incoming_frame.timestamp());
 
   if (incoming_frame.processing_time()) {
-    video_frame->metadata().processing_time = base::TimeDelta::FromMicroseconds(
-        incoming_frame.processing_time()->Elapsed().us());
+    video_frame->metadata().processing_time =
+        base::Microseconds(incoming_frame.processing_time()->Elapsed().us());
   }
 
   // Set capture time to the NTP time, which is the estimated capture time
   // converted to the local clock.
   if (incoming_frame.ntp_time_ms() > 0) {
     video_frame->metadata().capture_begin_time =
-        base::TimeTicks() + base::TimeDelta::FromMilliseconds(
-                                incoming_frame.ntp_time_ms() + ntp_offset_);
+        base::TimeTicks() +
+        base::Milliseconds(incoming_frame.ntp_time_ms() + ntp_offset_);
   }
 
   // Set receive time to arrival of last packet.
@@ -236,8 +236,7 @@
             })
             ->receive_time();
     video_frame->metadata().receive_time =
-        base::TimeTicks() +
-        base::TimeDelta::FromMicroseconds(last_packet_arrival.us());
+        base::TimeTicks() + base::Microseconds(last_packet_arrival.us());
   }
 
   // Use our computed render time as estimated capture time. If timestamp_us()
@@ -266,8 +265,7 @@
   const base::TimeTicks render_time =
       render_immediately
           ? current_time
-          : base::TimeTicks() +
-                base::TimeDelta::FromMicroseconds(frame.render_time().us());
+          : base::TimeTicks() + base::Microseconds(frame.render_time().us());
 
   // Use our computed render time as estimated capture time. If render_time()
   // is set by WebRTC, it's based on the RTP timestamps in the frame's packets,
diff --git a/third_party/blink/renderer/modules/peerconnection/media_stream_remote_video_source_test.cc b/third_party/blink/renderer/modules/peerconnection/media_stream_remote_video_source_test.cc
index 4577a834..c1d9b18b 100644
--- a/third_party/blink/renderer/modules/peerconnection/media_stream_remote_video_source_test.cc
+++ b/third_party/blink/renderer/modules/peerconnection/media_stream_remote_video_source_test.cc
@@ -399,7 +399,7 @@
       kCaptureTime + webrtc::TimeDelta::Millis(ntp_offset);
   // Expected capture time.
   base::TimeTicks kExpectedCaptureTime =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(kCaptureTime.ms());
+      base::TimeTicks() + base::Milliseconds(kCaptureTime.ms());
 
   webrtc::RtpPacketInfos::vector_type packet_infos;
   for (int i = 0; i < 4; ++i) {
@@ -409,8 +409,8 @@
   }
   // Expected receive time should be the same as the last arrival time.
   base::TimeTicks kExpectedReceiveTime =
-      base::TimeTicks() + base::TimeDelta::FromMicroseconds(
-                              kProcessingStart.us() - (10000 - 3 * 30));
+      base::TimeTicks() +
+      base::Microseconds(kProcessingStart.us() - (10000 - 3 * 30));
 
   webrtc::VideoFrame input_frame =
       webrtc::VideoFrame::Builder()
@@ -479,18 +479,17 @@
   scoped_refptr<media::VideoFrame> output_frame = sink.last_frame();
   EXPECT_TRUE(output_frame);
 
-  EXPECT_FLOAT_EQ(
-      (*output_frame->metadata().reference_time -
-       (base::TimeTicks() + base::TimeDelta::FromMicroseconds(kTimestampUs)))
-          .InMillisecondsF(),
-      0.0f);
+  EXPECT_FLOAT_EQ((*output_frame->metadata().reference_time -
+                   (base::TimeTicks() + base::Microseconds(kTimestampUs)))
+                      .InMillisecondsF(),
+                  0.0f);
   track->RemoveSink(&sink);
 }
 
 TEST_F(MediaStreamRemoteVideoSourceTest, BaseTimeTicksAndRtcMicrosAreTheSame) {
   base::TimeTicks first_chromium_timestamp = base::TimeTicks::Now();
   base::TimeTicks webrtc_timestamp =
-      base::TimeTicks() + base::TimeDelta::FromMicroseconds(rtc::TimeMicros());
+      base::TimeTicks() + base::Microseconds(rtc::TimeMicros());
   base::TimeTicks second_chromium_timestamp = base::TimeTicks::Now();
 
   // Test that the timestamps are correctly ordered, which they can only be if
diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
index b0405d0..0c114736 100644
--- a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
+++ b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
@@ -219,39 +219,33 @@
  private:
   static void LogTaskLatencyWorker(base::TimeDelta sample) {
     UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
-        "WebRTC.PeerConnection.Latency.Worker", sample,
-        base::TimeDelta::FromMicroseconds(1), base::TimeDelta::FromSeconds(10),
-        50);
+        "WebRTC.PeerConnection.Latency.Worker", sample, base::Microseconds(1),
+        base::Seconds(10), 50);
   }
   static void LogTaskDurationWorker(base::TimeDelta sample) {
     UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
-        "WebRTC.PeerConnection.Duration.Worker", sample,
-        base::TimeDelta::FromMicroseconds(1), base::TimeDelta::FromSeconds(10),
-        50);
+        "WebRTC.PeerConnection.Duration.Worker", sample, base::Microseconds(1),
+        base::Seconds(10), 50);
   }
   static void LogTaskLatencyNetwork(base::TimeDelta sample) {
     UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
-        "WebRTC.PeerConnection.Latency.Network", sample,
-        base::TimeDelta::FromMicroseconds(1), base::TimeDelta::FromSeconds(10),
-        50);
+        "WebRTC.PeerConnection.Latency.Network", sample, base::Microseconds(1),
+        base::Seconds(10), 50);
   }
   static void LogTaskDurationNetwork(base::TimeDelta sample) {
     UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
-        "WebRTC.PeerConnection.Duration.Network", sample,
-        base::TimeDelta::FromMicroseconds(1), base::TimeDelta::FromSeconds(10),
-        50);
+        "WebRTC.PeerConnection.Duration.Network", sample, base::Microseconds(1),
+        base::Seconds(10), 50);
   }
   static void LogTaskLatencySignaling(base::TimeDelta sample) {
     UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
         "WebRTC.PeerConnection.Latency.Signaling", sample,
-        base::TimeDelta::FromMicroseconds(1), base::TimeDelta::FromSeconds(10),
-        50);
+        base::Microseconds(1), base::Seconds(10), 50);
   }
   static void LogTaskDurationSignaling(base::TimeDelta sample) {
     UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
         "WebRTC.PeerConnection.Duration.Signaling", sample,
-        base::TimeDelta::FromMicroseconds(1), base::TimeDelta::FromSeconds(10),
-        50);
+        base::Microseconds(1), base::Seconds(10), 50);
   }
 
   static void InitializeOnThread(
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_dtmf_sender.cc b/third_party/blink/renderer/modules/peerconnection/rtc_dtmf_sender.cc
index 7c57a39..2b2b0074 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_dtmf_sender.cc
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_dtmf_sender.cc
@@ -164,7 +164,7 @@
         ->PostDelayedTask(
             FROM_HERE,
             WTF::Bind(&RTCDTMFSender::PlayoutTask, WrapPersistent(this)),
-            base::TimeDelta::FromMilliseconds(inter_tone_gap_));
+            base::Milliseconds(inter_tone_gap_));
   }
 }
 
diff --git a/third_party/blink/renderer/modules/peerconnection/thermal_resource.cc b/third_party/blink/renderer/modules/peerconnection/thermal_resource.cc
index 8ad426a5..4c5584a 100644
--- a/third_party/blink/renderer/modules/peerconnection/thermal_resource.cc
+++ b/third_party/blink/renderer/modules/peerconnection/thermal_resource.cc
@@ -87,7 +87,7 @@
       FROM_HERE,
       base::BindOnce(&ThermalResource::ReportMeasurement,
                      scoped_refptr<ThermalResource>(this), measurement_id),
-      base::TimeDelta::FromSeconds(kReportIntervalSeconds));
+      base::Seconds(kReportIntervalSeconds));
 }
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/peerconnection/thermal_resource_test.cc b/third_party/blink/renderer/modules/peerconnection/thermal_resource_test.cc
index 4e1dd30..966c526 100644
--- a/third_party/blink/renderer/modules/peerconnection/thermal_resource_test.cc
+++ b/third_party/blink/renderer/modules/peerconnection/thermal_resource_test.cc
@@ -24,8 +24,7 @@
   void TearDown() override {
     // Give in-flight tasks a chance to run before shutdown.
     resource_->SetResourceListener(nullptr);
-    task_runner_->FastForwardBy(
-        base::TimeDelta::FromMilliseconds(kReportIntervalMs));
+    task_runner_->FastForwardBy(base::Milliseconds(kReportIntervalMs));
   }
 
  protected:
@@ -43,8 +42,7 @@
 TEST_F(ThermalResourceTest, NoMeasurementsByDefault) {
   resource_->SetResourceListener(&listener_);
   EXPECT_EQ(0u, listener_.measurement_count());
-  task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(kReportIntervalMs));
+  task_runner_->FastForwardBy(base::Milliseconds(kReportIntervalMs));
   EXPECT_EQ(0u, listener_.measurement_count());
 }
 
@@ -93,31 +91,28 @@
 
   // First Interval.
   // No new measurement if we advance less than the interval.
-  task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(kReportIntervalMs - 1));
+  task_runner_->FastForwardBy(base::Milliseconds(kReportIntervalMs - 1));
   EXPECT_EQ(expected_count, listener_.measurement_count());
   // When the interval is reached, expect a new measurement.
-  task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_runner_->FastForwardBy(base::Milliseconds(1));
   ++expected_count;
   EXPECT_EQ(expected_count, listener_.measurement_count());
 
   // Second Interval.
   // No new measurement if we advance less than the interval.
-  task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(kReportIntervalMs - 1));
+  task_runner_->FastForwardBy(base::Milliseconds(kReportIntervalMs - 1));
   EXPECT_EQ(expected_count, listener_.measurement_count());
   // When the interval is reached, expect a new measurement.
-  task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_runner_->FastForwardBy(base::Milliseconds(1));
   ++expected_count;
   EXPECT_EQ(expected_count, listener_.measurement_count());
 
   // Third Interval.
   // No new measurement if we advance less than the interval.
-  task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(kReportIntervalMs - 1));
+  task_runner_->FastForwardBy(base::Milliseconds(kReportIntervalMs - 1));
   EXPECT_EQ(expected_count, listener_.measurement_count());
   // When the interval is reached, expect a new measurement.
-  task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_runner_->FastForwardBy(base::Milliseconds(1));
   ++expected_count;
   EXPECT_EQ(expected_count, listener_.measurement_count());
 }
@@ -125,16 +120,14 @@
 TEST_F(ThermalResourceTest, NewMeasurementInvalidatesInFlightRepetition) {
   resource_->SetResourceListener(&listener_);
   resource_->OnThermalMeasurement(mojom::blink::DeviceThermalState::kSerious);
-  task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(kReportIntervalMs));
+  task_runner_->FastForwardBy(base::Milliseconds(kReportIntervalMs));
 
   // We are repeatedly kOveruse.
   EXPECT_EQ(2u, listener_.measurement_count());
   EXPECT_EQ(webrtc::ResourceUsageState::kOveruse,
             listener_.latest_measurement());
   // Fast-forward half an interval. The repeated measurement is still in-flight.
-  task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(kReportIntervalMs / 2));
+  task_runner_->FastForwardBy(base::Milliseconds(kReportIntervalMs / 2));
   EXPECT_EQ(2u, listener_.measurement_count());
   EXPECT_EQ(webrtc::ResourceUsageState::kOveruse,
             listener_.latest_measurement());
@@ -145,15 +138,13 @@
             listener_.latest_measurement());
   // Fast-forward another half an interval, giving the previous in-flight task
   // a chance to run. No new measurement is expected.
-  task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(kReportIntervalMs / 2));
+  task_runner_->FastForwardBy(base::Milliseconds(kReportIntervalMs / 2));
   EXPECT_EQ(3u, listener_.measurement_count());
   EXPECT_EQ(webrtc::ResourceUsageState::kUnderuse,
             listener_.latest_measurement());
   // Once more, and the repetition of kUnderuse should be observed (one interval
   // has passed since the OnThermalMeasurement).
-  task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(kReportIntervalMs / 2));
+  task_runner_->FastForwardBy(base::Milliseconds(kReportIntervalMs / 2));
   EXPECT_EQ(4u, listener_.measurement_count());
   EXPECT_EQ(webrtc::ResourceUsageState::kUnderuse,
             listener_.latest_measurement());
@@ -162,14 +153,12 @@
 TEST_F(ThermalResourceTest, UnknownStopsRepeatedMeasurements) {
   resource_->SetResourceListener(&listener_);
   resource_->OnThermalMeasurement(mojom::blink::DeviceThermalState::kSerious);
-  task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(kReportIntervalMs));
+  task_runner_->FastForwardBy(base::Milliseconds(kReportIntervalMs));
   // The measurement is repeating.
   EXPECT_EQ(2u, listener_.measurement_count());
 
   resource_->OnThermalMeasurement(mojom::blink::DeviceThermalState::kUnknown);
-  task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(kReportIntervalMs));
+  task_runner_->FastForwardBy(base::Milliseconds(kReportIntervalMs));
   // No more measurements.
   EXPECT_EQ(2u, listener_.measurement_count());
 }
@@ -177,8 +166,7 @@
 TEST_F(ThermalResourceTest, UnregisteringStopsRepeatedMeasurements) {
   resource_->SetResourceListener(&listener_);
   resource_->OnThermalMeasurement(mojom::blink::DeviceThermalState::kSerious);
-  task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(kReportIntervalMs));
+  task_runner_->FastForwardBy(base::Milliseconds(kReportIntervalMs));
   // The measurement is repeating.
   EXPECT_EQ(2u, listener_.measurement_count());
 
@@ -191,8 +179,7 @@
 
 TEST_F(ThermalResourceTest, RegisteringLateTriggersRepeatedMeasurements) {
   resource_->OnThermalMeasurement(mojom::blink::DeviceThermalState::kSerious);
-  task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(kReportIntervalMs));
+  task_runner_->FastForwardBy(base::Milliseconds(kReportIntervalMs));
   EXPECT_EQ(0u, listener_.measurement_count());
   // Registering triggers kOveruse.
   resource_->SetResourceListener(&listener_);
@@ -200,8 +187,7 @@
   EXPECT_EQ(webrtc::ResourceUsageState::kOveruse,
             listener_.latest_measurement());
   // The measurement is repeating.
-  task_runner_->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(kReportIntervalMs));
+  task_runner_->FastForwardBy(base::Milliseconds(kReportIntervalMs));
   EXPECT_EQ(2u, listener_.measurement_count());
 }
 
diff --git a/third_party/blink/renderer/modules/peerconnection/thermal_uma_listener.cc b/third_party/blink/renderer/modules/peerconnection/thermal_uma_listener.cc
index 5bdc078..4d47c9f 100644
--- a/third_party/blink/renderer/modules/peerconnection/thermal_uma_listener.cc
+++ b/third_party/blink/renderer/modules/peerconnection/thermal_uma_listener.cc
@@ -17,7 +17,7 @@
 
 namespace {
 
-const base::TimeDelta kStatsReportingPeriod = base::TimeDelta::FromMinutes(1);
+const base::TimeDelta kStatsReportingPeriod = base::Minutes(1);
 
 enum class ThermalStateUMA {
   kNominal = 0,
diff --git a/third_party/blink/renderer/modules/peerconnection/thermal_uma_listener_test.cc b/third_party/blink/renderer/modules/peerconnection/thermal_uma_listener_test.cc
index aa144e98..173eb43 100644
--- a/third_party/blink/renderer/modules/peerconnection/thermal_uma_listener_test.cc
+++ b/third_party/blink/renderer/modules/peerconnection/thermal_uma_listener_test.cc
@@ -15,7 +15,7 @@
 
 namespace {
 
-const base::TimeDelta kStatsReportingPeriod = base::TimeDelta::FromMinutes(1);
+const base::TimeDelta kStatsReportingPeriod = base::Minutes(1);
 
 class ThermalUmaListenerTest : public ::testing::Test {
  public:
diff --git a/third_party/blink/renderer/modules/scheduler/dom_scheduler.cc b/third_party/blink/renderer/modules/scheduler/dom_scheduler.cc
index 3714a70..780c122 100644
--- a/third_party/blink/renderer/modules/scheduler/dom_scheduler.cc
+++ b/third_party/blink/renderer/modules/scheduler/dom_scheduler.cc
@@ -106,9 +106,9 @@
                           ->GetTaskRunner()
                           .get();
   auto* resolver = MakeGarbageCollected<ScriptPromiseResolver>(script_state);
-  MakeGarbageCollected<DOMTask>(
-      resolver, callback_function, task_signal, task_runner,
-      base::TimeDelta::FromMilliseconds(options->delay()));
+  MakeGarbageCollected<DOMTask>(resolver, callback_function, task_signal,
+                                task_runner,
+                                base::Milliseconds(options->delay()));
   return resolver->Promise();
 }
 
diff --git a/third_party/blink/renderer/modules/scheduler/dom_task.cc b/third_party/blink/renderer/modules/scheduler/dom_task.cc
index acd4a5d..2902880 100644
--- a/third_party/blink/renderer/modules/scheduler/dom_task.cc
+++ b/third_party/blink/renderer/modules/scheduler/dom_task.cc
@@ -27,10 +27,10 @@
 
 // Same as UMA_HISTOGRAM_TIMES but for a broader view of this metric we end
 // at 1 minute instead of 10 seconds.
-#define QUEUEING_TIME_HISTOGRAM(name, sample)                              \
-  UMA_HISTOGRAM_CUSTOM_TIMES(QUEUEING_TIME_PER_PRIORITY_METRIC_NAME name,  \
-                             sample, base::TimeDelta::FromMilliseconds(1), \
-                             base::TimeDelta::FromMinutes(1), 50)
+#define QUEUEING_TIME_HISTOGRAM(name, sample)                                 \
+  UMA_HISTOGRAM_CUSTOM_TIMES(QUEUEING_TIME_PER_PRIORITY_METRIC_NAME name,     \
+                             sample, base::Milliseconds(1), base::Minutes(1), \
+                             50)
 
 namespace {
 void PostTaskCallbackTraceEventData(perfetto::TracedValue context,
diff --git a/third_party/blink/renderer/modules/sensor/sensor.cc b/third_party/blink/renderer/modules/sensor/sensor.cc
index 44f1cf06..7dfa98c 100644
--- a/third_party/blink/renderer/modules/sensor/sensor.cc
+++ b/third_party/blink/renderer/modules/sensor/sensor.cc
@@ -133,7 +133,7 @@
 
   return performance->MonotonicTimeToDOMHighResTimeStamp(
       base::TimeTicks() +
-      base::TimeDelta::FromSecondsD(sensor_proxy_->GetReading().timestamp()));
+      base::Seconds(sensor_proxy_->GetReading().timestamp()));
 }
 
 void Sensor::Trace(Visitor* visitor) const {
@@ -226,8 +226,7 @@
   } else {
     pending_reading_notification_ = PostDelayedCancellableTask(
         *GetExecutionContext()->GetTaskRunner(TaskType::kSensor), FROM_HERE,
-        std::move(sensor_reading_changed),
-        base::TimeDelta::FromSecondsD(waitingTime));
+        std::move(sensor_reading_changed), base::Seconds(waitingTime));
   }
 }
 
diff --git a/third_party/blink/renderer/modules/sensor/sensor_proxy_impl.cc b/third_party/blink/renderer/modules/sensor/sensor_proxy_impl.cc
index 4cd63ded..73c5001 100644
--- a/third_party/blink/renderer/modules/sensor/sensor_proxy_impl.cc
+++ b/third_party/blink/renderer/modules/sensor/sensor_proxy_impl.cc
@@ -226,9 +226,8 @@
   if (ShouldProcessReadings()) {
     // TODO(crbug/721297) : We need to find out an algorithm for resulting
     // polling frequency.
-    polling_timer_.StartRepeating(
-        base::TimeDelta::FromSecondsD(1 / active_frequencies_.back()),
-        FROM_HERE);
+    polling_timer_.StartRepeating(base::Seconds(1 / active_frequencies_.back()),
+                                  FROM_HERE);
   } else {
     polling_timer_.Stop();
   }
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_event_queue.cc b/third_party/blink/renderer/modules/service_worker/service_worker_event_queue.cc
index b53ee2f..3dae1ae1 100644
--- a/third_party/blink/renderer/modules/service_worker/service_worker_event_queue.cc
+++ b/third_party/blink/renderer/modules/service_worker/service_worker_event_queue.cc
@@ -236,7 +236,7 @@
   base::TimeDelta delta_until_idle =
       new_idle_callback_time - tick_clock_->NowTicks();
 
-  if (delta_until_idle <= base::TimeDelta::FromSeconds(0)) {
+  if (delta_until_idle <= base::Seconds(0)) {
     // The new idle delay is shorter than the previous idle delay, and the idle
     // time has been already passed. Let's run the idle callback immediately.
     TriggerIdleCallback();
@@ -288,7 +288,7 @@
     }
     // Shut down the worker as soon as possible since the worker may have gone
     // into bad state.
-    SetIdleDelay(base::TimeDelta::FromSeconds(0));
+    SetIdleDelay(base::Seconds(0));
   }
 }
 
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_event_queue.h b/third_party/blink/renderer/modules/service_worker/service_worker_event_queue.h
index 617b498..220041a 100644
--- a/third_party/blink/renderer/modules/service_worker/service_worker_event_queue.h
+++ b/third_party/blink/renderer/modules/service_worker/service_worker_event_queue.h
@@ -133,12 +133,10 @@
 
   // Duration of the long standing event timeout since StartEvent() has been
   // called.
-  static constexpr base::TimeDelta kEventTimeout =
-      base::TimeDelta::FromMinutes(5);
+  static constexpr base::TimeDelta kEventTimeout = base::Minutes(5);
   // ServiceWorkerEventQueue periodically updates the timeout state by
   // kUpdateInterval.
-  static constexpr base::TimeDelta kUpdateInterval =
-      base::TimeDelta::FromSeconds(10);
+  static constexpr base::TimeDelta kUpdateInterval = base::Seconds(10);
 
  private:
   // Represents an event dispatch, which can be queued into |queue_|.
@@ -261,8 +259,8 @@
 
   // For idle timeouts. The delay until the worker is identified as idle after
   // all inflight events are completed.
-  base::TimeDelta idle_delay_ = base::TimeDelta::FromSeconds(
-      mojom::blink::kServiceWorkerDefaultIdleDelayInSeconds);
+  base::TimeDelta idle_delay_ =
+      base::Seconds(mojom::blink::kServiceWorkerDefaultIdleDelayInSeconds);
 
   // Set to true once |idle_callback_| has been invoked. Set to false when
   // StartEvent() is called.
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_event_queue_test.cc b/third_party/blink/renderer/modules/service_worker/service_worker_event_queue_test.cc
index ee8ec2d6..2a86bfd 100644
--- a/third_party/blink/renderer/modules/service_worker/service_worker_event_queue_test.cc
+++ b/third_party/blink/renderer/modules/service_worker/service_worker_event_queue_test.cc
@@ -145,8 +145,8 @@
 };
 
 TEST_F(ServiceWorkerEventQueueTest, IdleTimer) {
-  const base::TimeDelta kIdleInterval = base::TimeDelta::FromSeconds(
-      mojom::blink::kServiceWorkerDefaultIdleDelayInSeconds);
+  const base::TimeDelta kIdleInterval =
+      base::Seconds(mojom::blink::kServiceWorkerDefaultIdleDelayInSeconds);
 
   bool is_idle = false;
   ServiceWorkerEventQueue event_queue(
@@ -206,8 +206,8 @@
 }
 
 TEST_F(ServiceWorkerEventQueueTest, InflightEventBeforeStart) {
-  const base::TimeDelta kIdleInterval = base::TimeDelta::FromSeconds(
-      mojom::blink::kServiceWorkerDefaultIdleDelayInSeconds);
+  const base::TimeDelta kIdleInterval =
+      base::Seconds(mojom::blink::kServiceWorkerDefaultIdleDelayInSeconds);
 
   bool is_idle = false;
   ServiceWorkerEventQueue event_queue(
@@ -239,20 +239,19 @@
   // Start and finish an event before starting the timer.
   MockEvent event;
   event.EnqueueTo(&event_queue);
-  task_runner()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_runner()->FastForwardBy(base::Seconds(1));
   event_queue.EndEvent(event.event_id());
 
   // Move the time ticks to almost before |idle_time_| so that |idle_callback|
   // will get called at the first update check.
   task_runner()->FastForwardBy(
-      base::TimeDelta::FromSeconds(
-          mojom::blink::kServiceWorkerDefaultIdleDelayInSeconds) -
-      base::TimeDelta::FromSeconds(1));
+      base::Seconds(mojom::blink::kServiceWorkerDefaultIdleDelayInSeconds) -
+      base::Seconds(1));
 
   event_queue.Start();
 
   // Make sure the timer calls UpdateStatus().
-  task_runner()->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  task_runner()->FastForwardBy(base::Seconds(1));
   // |idle_callback| should be fired because enough time passed since the last
   // event.
   EXPECT_TRUE(is_idle);
@@ -268,13 +267,13 @@
   event1.EnqueueTo(&event_queue);
   event2.EnqueueTo(&event_queue);
   task_runner()->FastForwardBy(ServiceWorkerEventQueue::kUpdateInterval +
-                               base::TimeDelta::FromSeconds(1));
+                               base::Seconds(1));
 
   EXPECT_FALSE(event1.status().has_value());
   EXPECT_FALSE(event2.status().has_value());
   event_queue.EndEvent(event1.event_id());
   task_runner()->FastForwardBy(ServiceWorkerEventQueue::kEventTimeout +
-                               base::TimeDelta::FromSeconds(1));
+                               base::Seconds(1));
 
   EXPECT_FALSE(event1.status().has_value());
   EXPECT_TRUE(event2.status().has_value());
@@ -288,21 +287,21 @@
                                       task_runner()->GetMockTickClock());
   event_queue.Start();
   MockEvent event1, event2;
-  event1.EnqueueWithCustomTimeoutTo(&event_queue,
-                                    ServiceWorkerEventQueue::kUpdateInterval -
-                                        base::TimeDelta::FromSeconds(1));
+  event1.EnqueueWithCustomTimeoutTo(
+      &event_queue,
+      ServiceWorkerEventQueue::kUpdateInterval - base::Seconds(1));
   event2.EnqueueWithCustomTimeoutTo(
-      &event_queue, ServiceWorkerEventQueue::kUpdateInterval * 2 -
-                        base::TimeDelta::FromSeconds(1));
+      &event_queue,
+      ServiceWorkerEventQueue::kUpdateInterval * 2 - base::Seconds(1));
   task_runner()->FastForwardBy(ServiceWorkerEventQueue::kUpdateInterval +
-                               base::TimeDelta::FromSeconds(1));
+                               base::Seconds(1));
 
   EXPECT_TRUE(event1.status().has_value());
   EXPECT_FALSE(event2.status().has_value());
   EXPECT_EQ(mojom::blink::ServiceWorkerEventStatus::TIMEOUT,
             event1.status().value());
   task_runner()->FastForwardBy(ServiceWorkerEventQueue::kUpdateInterval +
-                               base::TimeDelta::FromSeconds(1));
+                               base::Seconds(1));
 
   EXPECT_TRUE(event1.status().has_value());
   EXPECT_TRUE(event2.status().has_value());
@@ -321,7 +320,7 @@
   event.EnqueueTo(&event_queue);
   task_runner()->FastForwardBy(ServiceWorkerEventQueue::kEventTimeout +
                                ServiceWorkerEventQueue::kUpdateInterval +
-                               base::TimeDelta::FromSeconds(1));
+                               base::Seconds(1));
 
   // |event| should have been aborted, and at the same time, the idle timeout
   // should also be fired since there has been an aborted event.
@@ -341,7 +340,7 @@
     event2.EnqueueTo(&event_queue);
 
     task_runner()->FastForwardBy(ServiceWorkerEventQueue::kUpdateInterval +
-                                 base::TimeDelta::FromSeconds(1));
+                                 base::Seconds(1));
 
     EXPECT_FALSE(event1.status().has_value());
     EXPECT_FALSE(event2.status().has_value());
@@ -360,8 +359,8 @@
                                       task_runner(),
                                       task_runner()->GetMockTickClock());
   event_queue.Start();
-  task_runner()->FastForwardBy(base::TimeDelta::FromSeconds(
-      mojom::blink::kServiceWorkerDefaultIdleDelayInSeconds));
+  task_runner()->FastForwardBy(
+      base::Seconds(mojom::blink::kServiceWorkerDefaultIdleDelayInSeconds));
   EXPECT_TRUE(event_queue.did_idle_timeout());
 
   MockEvent pending_event;
@@ -381,8 +380,8 @@
                                       task_runner(),
                                       task_runner()->GetMockTickClock());
   event_queue.Start();
-  task_runner()->FastForwardBy(base::TimeDelta::FromSeconds(
-      mojom::blink::kServiceWorkerDefaultIdleDelayInSeconds));
+  task_runner()->FastForwardBy(
+      base::Seconds(mojom::blink::kServiceWorkerDefaultIdleDelayInSeconds));
   EXPECT_TRUE(event_queue.did_idle_timeout());
 
   MockEvent pending_event;
@@ -408,7 +407,7 @@
                                       task_runner(),
                                       task_runner()->GetMockTickClock());
   event_queue.Start();
-  event_queue.SetIdleDelay(base::TimeDelta::FromSeconds(0));
+  event_queue.SetIdleDelay(base::Seconds(0));
   task_runner()->RunUntilIdle();
   EXPECT_TRUE(event_queue.did_idle_timeout());
 
@@ -439,7 +438,7 @@
     event_queue.Start();
     EXPECT_FALSE(is_idle);
 
-    event_queue.SetIdleDelay(base::TimeDelta::FromSeconds(0));
+    event_queue.SetIdleDelay(base::Seconds(0));
     task_runner()->RunUntilIdle();
     // |idle_callback| should be fired since there is no event.
     EXPECT_TRUE(is_idle);
@@ -453,7 +452,7 @@
     event_queue.Start();
     MockEvent event;
     event.EnqueueTo(&event_queue);
-    event_queue.SetIdleDelay(base::TimeDelta::FromSeconds(0));
+    event_queue.SetIdleDelay(base::Seconds(0));
     task_runner()->RunUntilIdle();
     // Nothing happens since there is an inflight event.
     EXPECT_FALSE(is_idle);
@@ -473,7 +472,7 @@
     MockEvent event1, event2;
     event1.EnqueueTo(&event_queue);
     event2.EnqueueTo(&event_queue);
-    event_queue.SetIdleDelay(base::TimeDelta::FromSeconds(0));
+    event_queue.SetIdleDelay(base::Seconds(0));
     task_runner()->RunUntilIdle();
     // Nothing happens since there are two inflight events.
     EXPECT_FALSE(is_idle);
@@ -500,7 +499,7 @@
         event_queue.CreateStayAwakeToken();
     std::unique_ptr<StayAwakeToken> token_2 =
         event_queue.CreateStayAwakeToken();
-    event_queue.SetIdleDelay(base::TimeDelta::FromSeconds(0));
+    event_queue.SetIdleDelay(base::Seconds(0));
     task_runner()->RunUntilIdle();
     // Nothing happens since there are two living tokens.
     EXPECT_FALSE(is_idle);
@@ -624,8 +623,8 @@
 }
 
 TEST_F(ServiceWorkerEventQueueTest, IdleTimerWithOfflineEvents) {
-  const base::TimeDelta kIdleInterval = base::TimeDelta::FromSeconds(
-      mojom::blink::kServiceWorkerDefaultIdleDelayInSeconds);
+  const base::TimeDelta kIdleInterval =
+      base::Seconds(mojom::blink::kServiceWorkerDefaultIdleDelayInSeconds);
 
   bool is_idle = false;
   ServiceWorkerEventQueue event_queue(
@@ -708,12 +707,12 @@
   event_queue.Start();
 
   MockEvent event1, event2;
-  event1.EnqueueWithCustomTimeoutTo(&event_queue,
-                                    ServiceWorkerEventQueue::kUpdateInterval -
-                                        base::TimeDelta::FromSeconds(1));
+  event1.EnqueueWithCustomTimeoutTo(
+      &event_queue,
+      ServiceWorkerEventQueue::kUpdateInterval - base::Seconds(1));
   event2.EnqueueOfflineWithCustomTimeoutTo(
-      &event_queue, ServiceWorkerEventQueue::kUpdateInterval -
-                        base::TimeDelta::FromSeconds(1));
+      &event_queue,
+      ServiceWorkerEventQueue::kUpdateInterval - base::Seconds(1));
 
   // State:
   // - inflight_events: {1 (normal)}
@@ -722,7 +721,7 @@
   EXPECT_FALSE(event2.Started());
 
   task_runner()->FastForwardBy(ServiceWorkerEventQueue::kUpdateInterval +
-                               base::TimeDelta::FromSeconds(1));
+                               base::Seconds(1));
 
   EXPECT_TRUE(event1.status().has_value());
   EXPECT_EQ(mojom::blink::ServiceWorkerEventStatus::TIMEOUT,
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc
index 7008d08..d48edcd 100644
--- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc
+++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc
@@ -1937,7 +1937,7 @@
                   /*corp_checker=*/nullptr, absl::nullopt),
         WTF::Bind(&ServiceWorkerGlobalScope::AbortCallbackForFetchEvent,
                   WrapWeakPersistent(this)),
-        base::TimeDelta::FromSeconds(kCustomTimeoutForOfflineEvent.Get()));
+        base::Seconds(kCustomTimeoutForOfflineEvent.Get()));
   } else {
     event_queue_->EnqueueNormal(
         event_id,
@@ -2048,7 +2048,7 @@
       WTF::Bind(&ServiceWorkerGlobalScope::StartPushEvent,
                 WrapWeakPersistent(this), std::move(payload)),
       CreateAbortCallback(&push_event_callbacks_),
-      base::TimeDelta::FromSeconds(mojom::blink::kPushEventTimeoutSeconds));
+      base::Seconds(mojom::blink::kPushEventTimeoutSeconds));
 }
 
 void ServiceWorkerGlobalScope::StartPushEvent(
@@ -2082,7 +2082,7 @@
                 WrapWeakPersistent(this), std::move(old_subscription),
                 std::move(new_subscription)),
       CreateAbortCallback(&push_subscription_change_event_callbacks_),
-      base::TimeDelta::FromSeconds(mojom::blink::kPushEventTimeoutSeconds));
+      base::Seconds(mojom::blink::kPushEventTimeoutSeconds));
 }
 
 void ServiceWorkerGlobalScope::StartPushSubscriptionChangeEvent(
diff --git a/third_party/blink/renderer/modules/service_worker/wait_until_observer.cc b/third_party/blink/renderer/modules/service_worker/wait_until_observer.cc
index 2bf4efc4..9e18f8a 100644
--- a/third_party/blink/renderer/modules/service_worker/wait_until_observer.cc
+++ b/third_party/blink/renderer/modules/service_worker/wait_until_observer.cc
@@ -29,9 +29,9 @@
 const unsigned kWindowInteractionTimeoutForTest = 1;
 
 base::TimeDelta WindowInteractionTimeout() {
-  return base::TimeDelta::FromSeconds(WebTestSupport::IsRunningWebTest()
-                                          ? kWindowInteractionTimeoutForTest
-                                          : kWindowInteractionTimeout);
+  return base::Seconds(WebTestSupport::IsRunningWebTest()
+                           ? kWindowInteractionTimeoutForTest
+                           : kWindowInteractionTimeout);
 }
 
 }  // anonymous namespace
diff --git a/third_party/blink/renderer/modules/speech/testing/mojom_speech_synthesis_mock.cc b/third_party/blink/renderer/modules/speech/testing/mojom_speech_synthesis_mock.cc
index 530dcd5..be834a0c 100644
--- a/third_party/blink/renderer/modules/speech/testing/mojom_speech_synthesis_mock.cc
+++ b/third_party/blink/renderer/modules/speech/testing/mojom_speech_synthesis_mock.cc
@@ -147,8 +147,7 @@
 
   // Give the fake speech job some time so that pause and other functions have
   // time to be called.
-  speaking_finished_timer_.StartOneShot(base::TimeDelta::FromMilliseconds(100),
-                                        FROM_HERE);
+  speaking_finished_timer_.StartOneShot(base::Milliseconds(100), FROM_HERE);
 }
 
 void MojomSpeechSynthesisMock::Cancel() {
@@ -159,8 +158,8 @@
   queued_requests_.clear();
 
   speaking_finished_timer_.Stop();
-  speaking_error_occurred_timer_.StartOneShot(
-      base::TimeDelta::FromMilliseconds(100), FROM_HERE);
+  speaking_error_occurred_timer_.StartOneShot(base::Milliseconds(100),
+                                              FROM_HERE);
 }
 
 void MojomSpeechSynthesisMock::Pause() {
diff --git a/third_party/blink/renderer/modules/vibration/vibration_controller.cc b/third_party/blink/renderer/modules/vibration/vibration_controller.cc
index bcab462..f0dea408 100644
--- a/third_party/blink/renderer/modules/vibration/vibration_controller.cc
+++ b/third_party/blink/renderer/modules/vibration/vibration_controller.cc
@@ -255,8 +255,7 @@
     pattern_.EraseAt(0);
   }
 
-  timer_do_vibrate_.StartOneShot(base::TimeDelta::FromMilliseconds(interval),
-                                 FROM_HERE);
+  timer_do_vibrate_.StartOneShot(base::Milliseconds(interval), FROM_HERE);
 }
 
 void VibrationController::Cancel() {
diff --git a/third_party/blink/renderer/modules/video_rvfc/video_frame_callback_requester_impl.cc b/third_party/blink/renderer/modules/video_rvfc/video_frame_callback_requester_impl.cc
index 5917e763..388d88d5 100644
--- a/third_party/blink/renderer/modules/video_rvfc/video_frame_callback_requester_impl.cc
+++ b/third_party/blink/renderer/modules/video_rvfc/video_frame_callback_requester_impl.cc
@@ -317,12 +317,12 @@
 // static
 double VideoFrameCallbackRequesterImpl::GetCoarseClampedTimeInSeconds(
     base::TimeDelta time) {
-  constexpr auto kCoarseResolution = base::TimeDelta::FromMicroseconds(100);
+  constexpr auto kCoarseResolution = base::Microseconds(100);
   // Add this assert, in case TimeClamper's resolution were to change to be
   // stricter.
   static_assert(
-      kCoarseResolution >= base::TimeDelta::FromMicrosecondsD(
-                               TimeClamper::kCoarseResolutionMicroseconds),
+      kCoarseResolution >=
+          base::Microseconds(TimeClamper::kCoarseResolutionMicroseconds),
       "kCoarseResolution should be at least as coarse as other clock "
       "resolutions");
 
diff --git a/third_party/blink/renderer/modules/video_rvfc/video_frame_callback_requester_impl_test.cc b/third_party/blink/renderer/modules/video_rvfc/video_frame_callback_requester_impl_test.cc
index e0240b39..0f2b6673 100644
--- a/third_party/blink/renderer/modules/video_rvfc/video_frame_callback_requester_impl_test.cc
+++ b/third_party/blink/renderer/modules/video_rvfc/video_frame_callback_requester_impl_test.cc
@@ -86,19 +86,14 @@
     // have sub-microsecond resolution for those values.
 
     metadata_.presented_frames = 42;
-    metadata_.presentation_time =
-        now + base::TimeDelta::FromMillisecondsD(10.1234);
-    metadata_.expected_display_time =
-        now + base::TimeDelta::FromMillisecondsD(26.3467);
+    metadata_.presentation_time = now + base::Milliseconds(10.1234);
+    metadata_.expected_display_time = now + base::Milliseconds(26.3467);
     metadata_.width = 320;
     metadata_.height = 480;
-    metadata_.media_time = base::TimeDelta::FromSecondsD(3.14);
-    metadata_.metadata.processing_time =
-        base::TimeDelta::FromMillisecondsD(60.982);
-    metadata_.metadata.capture_begin_time =
-        now + base::TimeDelta::FromMillisecondsD(5.6785);
-    metadata_.metadata.receive_time =
-        now + base::TimeDelta::FromMillisecondsD(17.1234);
+    metadata_.media_time = base::Seconds(3.14);
+    metadata_.metadata.processing_time = base::Milliseconds(60.982);
+    metadata_.metadata.capture_begin_time = now + base::Milliseconds(5.6785);
+    metadata_.metadata.receive_time = now + base::Milliseconds(17.1234);
     metadata_.metadata.rtp_timestamp = 12345;
   }
 
@@ -173,8 +168,7 @@
   }
 
   static double ClampElapsedProcessingTime(base::TimeDelta time) {
-    return time.FloorToMultiple(base::TimeDelta::FromMicroseconds(100))
-        .InSecondsF();
+    return time.FloorToMultiple(base::Microseconds(100)).InSecondsF();
   }
 
   double now_;
diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/third_party/blink/renderer/modules/webaudio/audio_context.cc
index 220e210..1d5178e9 100644
--- a/third_party/blink/renderer/modules/webaudio/audio_context.cc
+++ b/third_party/blink/renderer/modules/webaudio/audio_context.cc
@@ -119,9 +119,8 @@
       latency_hint =
           WebAudioLatencyHint(context_options->latencyHint()->GetAsDouble());
 
-      base::UmaHistogramTimes(
-          "WebAudio.AudioContext.latencyHintMilliSeconds",
-          base::TimeDelta::FromSecondsD(latency_hint.Seconds()));
+      base::UmaHistogramTimes("WebAudio.AudioContext.latencyHintMilliSeconds",
+                              base::Seconds(latency_hint.Seconds()));
   }
 
   base::UmaHistogramEnumeration(
@@ -371,7 +370,7 @@
   }
 
   double performance_time = performance->MonotonicTimeToDOMHighResTimeStamp(
-      base::TimeTicks() + base::TimeDelta::FromSecondsD(position.timestamp));
+      base::TimeTicks() + base::Seconds(position.timestamp));
   if (performance_time < 0.0)
     performance_time = 0.0;
 
diff --git a/third_party/blink/renderer/modules/webaudio/convolver_node.cc b/third_party/blink/renderer/modules/webaudio/convolver_node.cc
index 919c0ba..49e9b6c 100644
--- a/third_party/blink/renderer/modules/webaudio/convolver_node.cc
+++ b/third_party/blink/renderer/modules/webaudio/convolver_node.cc
@@ -145,7 +145,7 @@
   {
     // Get some statistics on the size of the impulse response.
     UMA_HISTOGRAM_LONG_TIMES("WebAudio.ConvolverNode.ImpulseResponseLength",
-                             base::TimeDelta::FromSecondsD(buffer->duration()));
+                             base::Seconds(buffer->duration()));
   }
 
   // Wrap the AudioBuffer by an AudioBus. It's an efficient pointer set and not
diff --git a/third_party/blink/renderer/modules/webcodecs/audio_data.cc b/third_party/blink/renderer/modules/webcodecs/audio_data.cc
index 9fa94f0..82d9ba0 100644
--- a/third_party/blink/renderer/modules/webcodecs/audio_data.cc
+++ b/third_party/blink/renderer/modules/webcodecs/audio_data.cc
@@ -193,7 +193,7 @@
   data_ = media::AudioBuffer::CopyFrom(
       media_format, channel_layout, init->numberOfChannels(), sample_rate,
       init->numberOfFrames(), wrapped_data.data(),
-      base::TimeDelta::FromMicroseconds(timestamp_));
+      base::Microseconds(timestamp_));
 }
 
 AudioData::AudioData(scoped_refptr<media::AudioBuffer> buffer)
diff --git a/third_party/blink/renderer/modules/webcodecs/audio_data_test.cc b/third_party/blink/renderer/modules/webcodecs/audio_data_test.cc
index d7b3f3a4..f4d85ca 100644
--- a/third_party/blink/renderer/modules/webcodecs/audio_data_test.cc
+++ b/third_party/blink/renderer/modules/webcodecs/audio_data_test.cc
@@ -117,7 +117,7 @@
       media::ChannelLayout::CHANNEL_LAYOUT_STEREO;
   const int channels = ChannelLayoutToChannelCount(channel_layout);
   constexpr base::TimeDelta timestamp =
-      base::TimeDelta::FromMicroseconds(kTimestampInMicroSeconds);
+      base::Microseconds(kTimestampInMicroSeconds);
   constexpr int kValueStart = 1;
   constexpr int kValueIncrement = 1;
   scoped_refptr<media::AudioBuffer> media_buffer =
diff --git a/third_party/blink/renderer/modules/webcodecs/encoded_audio_chunk.cc b/third_party/blink/renderer/modules/webcodecs/encoded_audio_chunk.cc
index 1110581..2922bcb 100644
--- a/third_party/blink/renderer/modules/webcodecs/encoded_audio_chunk.cc
+++ b/third_party/blink/renderer/modules/webcodecs/encoded_audio_chunk.cc
@@ -21,7 +21,7 @@
 
   // Clamp within bounds of our internal TimeDelta-based duration. See
   // media/base/timestamp_constants.h
-  auto timestamp = base::TimeDelta::FromMicroseconds(init->timestamp());
+  auto timestamp = base::Microseconds(init->timestamp());
   if (timestamp == media::kNoTimestamp)
     timestamp = base::TimeDelta::FiniteMin();
   else if (timestamp == media::kInfiniteDuration)
@@ -35,7 +35,7 @@
   // handled differently.
   buffer->set_duration(
       init->hasDuration()
-          ? base::TimeDelta::FromMicroseconds(std::min(
+          ? base::Microseconds(std::min(
                 uint64_t{base::TimeDelta::FiniteMax().InMicroseconds()},
                 init->duration()))
           : media::kNoTimestamp);
diff --git a/third_party/blink/renderer/modules/webcodecs/encoded_video_chunk.cc b/third_party/blink/renderer/modules/webcodecs/encoded_video_chunk.cc
index 4bb82cb2..9456b18 100644
--- a/third_party/blink/renderer/modules/webcodecs/encoded_video_chunk.cc
+++ b/third_party/blink/renderer/modules/webcodecs/encoded_video_chunk.cc
@@ -21,7 +21,7 @@
 
   // Clamp within bounds of our internal TimeDelta-based duration. See
   // media/base/timestamp_constants.h
-  auto timestamp = base::TimeDelta::FromMicroseconds(init->timestamp());
+  auto timestamp = base::Microseconds(init->timestamp());
   if (timestamp == media::kNoTimestamp)
     timestamp = base::TimeDelta::FiniteMin();
   else if (timestamp == media::kInfiniteDuration)
@@ -35,7 +35,7 @@
   // handled differently.
   buffer->set_duration(
       init->hasDuration()
-          ? base::TimeDelta::FromMicroseconds(std::min(
+          ? base::Microseconds(std::min(
                 uint64_t{base::TimeDelta::FiniteMax().InMicroseconds()},
                 init->duration()))
           : media::kNoTimestamp);
diff --git a/third_party/blink/renderer/modules/webcodecs/reclaimable_codec.cc b/third_party/blink/renderer/modules/webcodecs/reclaimable_codec.cc
index b6a2003..fbedef5 100644
--- a/third_party/blink/renderer/modules/webcodecs/reclaimable_codec.cc
+++ b/third_party/blink/renderer/modules/webcodecs/reclaimable_codec.cc
@@ -15,10 +15,9 @@
                                               base::FEATURE_ENABLED_BY_DEFAULT};
 
 namespace {
-constexpr base::TimeDelta kInactivityReclamationThreshold =
-    base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kInactivityReclamationThreshold = base::Minutes(1);
 
-constexpr base::TimeDelta kTimerPeriod = base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kTimerPeriod = base::Seconds(30);
 }  // namespace
 
 ReclaimableCodec::ReclaimableCodec()
diff --git a/third_party/blink/renderer/modules/webcodecs/video_decoder_broker_test.cc b/third_party/blink/renderer/modules/webcodecs/video_decoder_broker_test.cc
index ace260c..821582d 100644
--- a/third_party/blink/renderer/modules/webcodecs/video_decoder_broker_test.cc
+++ b/third_party/blink/renderer/modules/webcodecs/video_decoder_broker_test.cc
@@ -416,7 +416,7 @@
   media::VideoDecoderConfig large_config = media::TestVideoConfig::ExtraLarge();
   InitializeDecoder(large_config);
   DecodeBuffer(media::CreateFakeVideoBufferForTest(
-      large_config, base::TimeDelta(), base::TimeDelta::FromMilliseconds(33)));
+      large_config, base::TimeDelta(), base::Milliseconds(33)));
   DecodeBuffer(media::DecoderBuffer::CreateEOSBuffer());
   ASSERT_EQ(2U, output_frames_.size());
 
@@ -426,7 +426,7 @@
   // Use a large frame to force hardware decode.
   InitializeDecoder(large_config);
   DecodeBuffer(media::CreateFakeVideoBufferForTest(
-      large_config, base::TimeDelta(), base::TimeDelta::FromMilliseconds(33)));
+      large_config, base::TimeDelta(), base::Milliseconds(33)));
   DecodeBuffer(media::DecoderBuffer::CreateEOSBuffer());
   ASSERT_EQ(3U, output_frames_.size());
   EXPECT_TRUE(IsPlatformDecoder());
@@ -454,8 +454,8 @@
   InitializeDecoder(config);
   EXPECT_EQ(GetDecoderType(), media::VideoDecoderType::kTesting);
 
-  DecodeBuffer(media::CreateFakeVideoBufferForTest(
-      config, base::TimeDelta(), base::TimeDelta::FromMilliseconds(33)));
+  DecodeBuffer(media::CreateFakeVideoBufferForTest(config, base::TimeDelta(),
+                                                   base::Milliseconds(33)));
   DecodeBuffer(media::DecoderBuffer::CreateEOSBuffer());
   ASSERT_EQ(1U, output_frames_.size());
 
diff --git a/third_party/blink/renderer/modules/webcodecs/video_frame.cc b/third_party/blink/renderer/modules/webcodecs/video_frame.cc
index 9e12316..34c0ff4 100644
--- a/third_party/blink/renderer/modules/webcodecs/video_frame.cc
+++ b/third_party/blink/renderer/modules/webcodecs/video_frame.cc
@@ -168,8 +168,7 @@
 
 // static -- defined out of line to satisfy link time requirements.
 const char CachedVideoFramePool::kSupplementName[] = "CachedVideoFramePool";
-const base::TimeDelta CachedVideoFramePool::kIdleTimeout =
-    base::TimeDelta::FromSeconds(10);
+const base::TimeDelta CachedVideoFramePool::kIdleTimeout = base::Seconds(10);
 
 class CanvasResourceProviderCache
     : public GarbageCollected<CanvasResourceProviderCache>,
@@ -256,7 +255,7 @@
 const char CanvasResourceProviderCache::kSupplementName[] =
     "CanvasResourceProviderCache";
 const base::TimeDelta CanvasResourceProviderCache::kIdleTimeout =
-    base::TimeDelta::FromSeconds(10);
+    base::Seconds(10);
 
 absl::optional<media::VideoPixelFormat> CopyToFormat(
     const media::VideoFrame& frame) {
@@ -465,12 +464,11 @@
 
       wrapped_frame->set_color_space(source_frame->ColorSpace());
       if (init->hasTimestamp()) {
-        wrapped_frame->set_timestamp(
-            base::TimeDelta::FromMicroseconds(init->timestamp()));
+        wrapped_frame->set_timestamp(base::Microseconds(init->timestamp()));
       }
       if (init->hasDuration()) {
         wrapped_frame->metadata().frame_duration =
-            base::TimeDelta::FromMicroseconds(init->duration());
+            base::Microseconds(init->duration());
       }
       source_frame = std::move(wrapped_frame);
     }
@@ -492,7 +490,7 @@
     return nullptr;
   }
 
-  const auto timestamp = base::TimeDelta::FromMicroseconds(
+  const auto timestamp = base::Microseconds(
       (init && init->hasTimestamp()) ? init->timestamp() : 0);
 
   const auto paint_image = image->PaintImageForCurrentFrame();
@@ -590,8 +588,7 @@
 
   frame->set_color_space(gfx_color_space);
   if (init->hasDuration()) {
-    frame->metadata().frame_duration =
-        base::TimeDelta::FromMicroseconds(init->duration());
+    frame->metadata().frame_duration = base::Microseconds(init->duration());
   }
   if (orientation != ImageOrientationEnum::kDefault) {
     frame->metadata().transformation =
@@ -670,7 +667,7 @@
   }
 
   // Create a frame.
-  const auto timestamp = base::TimeDelta::FromMicroseconds(init->timestamp());
+  const auto timestamp = base::Microseconds(init->timestamp());
   auto& frame_pool = CachedVideoFramePool::From(*execution_context);
   auto frame = frame_pool.CreateFrame(media_fmt, coded_size, visible_rect,
                                       display_size, timestamp);
@@ -699,8 +696,7 @@
   }
 
   if (init->hasDuration()) {
-    frame->metadata().frame_duration =
-        base::TimeDelta::FromMicroseconds(init->duration());
+    frame->metadata().frame_duration = base::Microseconds(init->duration());
   }
 
   // Copy planes.
diff --git a/third_party/blink/renderer/modules/webcodecs/video_frame_test.cc b/third_party/blink/renderer/modules/webcodecs/video_frame_test.cc
index 0b1808ff..3315b24 100644
--- a/third_party/blink/renderer/modules/webcodecs/video_frame_test.cc
+++ b/third_party/blink/renderer/modules/webcodecs/video_frame_test.cc
@@ -57,7 +57,7 @@
     return MakeGarbageCollected<VideoFrame>(std::move(handle));
   }
   scoped_refptr<media::VideoFrame> CreateDefaultBlackMediaVideoFrame() {
-    return CreateBlackMediaVideoFrame(base::TimeDelta::FromMicroseconds(1000),
+    return CreateBlackMediaVideoFrame(base::Microseconds(1000),
                                       media::PIXEL_FORMAT_I420,
                                       gfx::Size(112, 208) /* coded_size */,
                                       gfx::Size(100, 200) /* visible_size */);
@@ -85,7 +85,7 @@
   V8TestingScope scope;
 
   scoped_refptr<media::VideoFrame> media_frame = CreateBlackMediaVideoFrame(
-      base::TimeDelta::FromMicroseconds(1000), media::PIXEL_FORMAT_I420,
+      base::Microseconds(1000), media::PIXEL_FORMAT_I420,
       gfx::Size(112, 208) /* coded_size */,
       gfx::Size(100, 200) /* visible_size */);
   VideoFrame* blink_frame =
diff --git a/third_party/blink/renderer/modules/webcodecs/webcodecs_logger.cc b/third_party/blink/renderer/modules/webcodecs/webcodecs_logger.cc
index e70ad64..40edad6 100644
--- a/third_party/blink/renderer/modules/webcodecs/webcodecs_logger.cc
+++ b/third_party/blink/renderer/modules/webcodecs/webcodecs_logger.cc
@@ -9,11 +9,10 @@
 namespace blink {
 
 // How frequently we check for leaks.
-constexpr base::TimeDelta kTimerInterval = base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kTimerInterval = base::Seconds(10);
 
 // How long we wait before stopping the timer when there is no activity.
-constexpr base::TimeDelta kTimerShutdownDelay =
-    base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kTimerShutdownDelay = base::Seconds(60);
 
 void WebCodecsLogger::VideoFrameCloseAuditor::ReportUnclosedFrame() {
   were_frames_not_closed_ = true;
diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
index 9d90368..cb3bc3f 100644
--- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
+++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
@@ -140,8 +140,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kDurationBetweenRestoreAttempts =
-    base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kDurationBetweenRestoreAttempts = base::Seconds(1);
 const int kMaxGLErrorsAllowedToConsole = 256;
 
 Mutex& WebGLContextLimitMutex() {
diff --git a/third_party/blink/renderer/modules/webmidi/midi_output.cc b/third_party/blink/renderer/modules/webmidi/midi_output.cc
index 9a2e3922..a2d312af 100644
--- a/third_party/blink/renderer/modules/webmidi/midi_output.cc
+++ b/third_party/blink/renderer/modules/webmidi/midi_output.cc
@@ -258,8 +258,8 @@
   if (timestamp_in_milliseconds == 0.0) {
     timestamp = base::TimeTicks::Now();
   } else {
-    timestamp = GetTimeOrigin(context) +
-                base::TimeDelta::FromMillisecondsD(timestamp_in_milliseconds);
+    timestamp =
+        GetTimeOrigin(context) + base::Milliseconds(timestamp_in_milliseconds);
   }
   SendInternal(array.Get(), timestamp, exception_state);
 }
diff --git a/third_party/blink/renderer/modules/webrtc/webrtc_audio_device_impl.cc b/third_party/blink/renderer/modules/webrtc/webrtc_audio_device_impl.cc
index c78e07c..210ea1f 100644
--- a/third_party/blink/renderer/modules/webrtc/webrtc_audio_device_impl.cc
+++ b/third_party/blink/renderer/modules/webrtc/webrtc_audio_device_impl.cc
@@ -103,7 +103,7 @@
   TRACE_EVENT_END2("audio", "VoE::PullRenderData", "elapsed_time_ms",
                    elapsed_time_ms, "ntp_time_ms", ntp_time_ms);
   if (elapsed_time_ms >= 0)
-    *current_time = base::TimeDelta::FromMilliseconds(elapsed_time_ms);
+    *current_time = base::Milliseconds(elapsed_time_ms);
 
   // De-interleave each channel and convert to 32-bit floating-point
   // with nominal range -1.0 -> +1.0 to match the callback format.
diff --git a/third_party/blink/renderer/modules/webrtc/webrtc_audio_renderer.cc b/third_party/blink/renderer/modules/webrtc/webrtc_audio_renderer.cc
index fa8a93c..a35fbbf6 100644
--- a/third_party/blink/renderer/modules/webrtc/webrtc_audio_renderer.cc
+++ b/third_party/blink/renderer/modules/webrtc/webrtc_audio_renderer.cc
@@ -58,11 +58,10 @@
 // Time constant for AudioPowerMonitor. See See AudioPowerMonitor ctor comments
 // for details.
 constexpr base::TimeDelta kPowerMeasurementTimeConstant =
-    base::TimeDelta::FromMilliseconds(10);
+    base::Milliseconds(10);
 
 // Time in seconds between two successive measurements of audio power levels.
-constexpr base::TimeDelta kPowerMonitorLogInterval =
-    base::TimeDelta::FromSeconds(15);
+constexpr base::TimeDelta kPowerMonitorLogInterval = base::Seconds(15);
 
 // Used for UMA histograms.
 const int kRenderTimeHistogramMinMicroseconds = 100;
@@ -238,7 +237,7 @@
   // CheckAlive() will look to see if |render_callbacks_started_| is true
   // after the timeout expires and log this. If the stream is paused/closed
   // before the timer fires, a warning is logged instead.
-  check_alive_timer_.StartOneShot(base::TimeDelta::FromSeconds(5), FROM_HERE);
+  check_alive_timer_.StartOneShot(base::Seconds(5), FROM_HERE);
 }
 
 WebRtcAudioRenderer::AudioStreamTracker::~AudioStreamTracker() {
diff --git a/third_party/blink/renderer/modules/websockets/websocket_message_chunk_accumulator.h b/third_party/blink/renderer/modules/websockets/websocket_message_chunk_accumulator.h
index c3c7ee1..6cc74ef 100644
--- a/third_party/blink/renderer/modules/websockets/websocket_message_chunk_accumulator.h
+++ b/third_party/blink/renderer/modules/websockets/websocket_message_chunk_accumulator.h
@@ -53,8 +53,7 @@
   bool IsTimerActiveForTesting() const { return timer_.IsActive(); }
 
   static constexpr size_t kSegmentSize = 16 * 1024;
-  static constexpr base::TimeDelta kFreeDelay =
-      base::TimeDelta::FromMilliseconds(100);
+  static constexpr base::TimeDelta kFreeDelay = base::Milliseconds(100);
 
  private:
   struct SegmentDeleter {
diff --git a/third_party/blink/renderer/modules/webtransport/datagram_duplex_stream_test.cc b/third_party/blink/renderer/modules/webtransport/datagram_duplex_stream_test.cc
index 993ee2bf..d6acfca 100644
--- a/third_party/blink/renderer/modules/webtransport/datagram_duplex_stream_test.cc
+++ b/third_party/blink/renderer/modules/webtransport/datagram_duplex_stream_test.cc
@@ -183,16 +183,14 @@
   test::RunPendingTasks();
   auto expiration_duration = stub->OutgoingDatagramExpirationDurationValue();
   ASSERT_TRUE(expiration_duration.has_value());
-  EXPECT_EQ(expiration_duration.value(),
-            base::TimeDelta::FromMillisecondsD(1.0));
+  EXPECT_EQ(expiration_duration.value(), base::Milliseconds(1.0));
 
   duplex->setOutgoingMaxAge(absl::nullopt);
   ASSERT_FALSE(duplex->outgoingMaxAge().has_value());
   test::RunPendingTasks();
   expiration_duration = stub->OutgoingDatagramExpirationDurationValue();
   ASSERT_TRUE(expiration_duration.has_value());
-  EXPECT_EQ(expiration_duration.value(),
-            base::TimeDelta::FromMillisecondsD(0.0));
+  EXPECT_EQ(expiration_duration.value(), base::Milliseconds(0.0));
 
   duplex->setOutgoingMaxAge(0.5);
   ASSERT_TRUE(duplex->outgoingMaxAge().has_value());
@@ -200,8 +198,7 @@
   test::RunPendingTasks();
   expiration_duration = stub->OutgoingDatagramExpirationDurationValue();
   ASSERT_TRUE(expiration_duration.has_value());
-  EXPECT_EQ(expiration_duration.value(),
-            base::TimeDelta::FromMillisecondsD(0.5));
+  EXPECT_EQ(expiration_duration.value(), base::Milliseconds(0.5));
 
   duplex->setOutgoingMaxAge(0.0);
   ASSERT_TRUE(duplex->outgoingMaxAge().has_value());
@@ -210,7 +207,7 @@
   expiration_duration = stub->OutgoingDatagramExpirationDurationValue();
   ASSERT_TRUE(expiration_duration.has_value());
   EXPECT_EQ(expiration_duration.value(),
-            base::TimeDelta::FromMillisecondsD(0.5));  // Unchanged
+            base::Milliseconds(0.5));  // Unchanged
 
   duplex->setOutgoingMaxAge(-1.0);
   ASSERT_TRUE(duplex->outgoingMaxAge().has_value());
@@ -219,7 +216,7 @@
   expiration_duration = stub->OutgoingDatagramExpirationDurationValue();
   ASSERT_TRUE(expiration_duration.has_value());
   EXPECT_EQ(expiration_duration.value(),
-            base::TimeDelta::FromMillisecondsD(0.5));  // Unchanged
+            base::Milliseconds(0.5));  // Unchanged
 }
 
 TEST(DatagramDuplexStreamTest, SetIncomingHighWaterMark) {
diff --git a/third_party/blink/renderer/modules/webtransport/web_transport.cc b/third_party/blink/renderer/modules/webtransport/web_transport.cc
index 76c8eefe..f59c9e7 100644
--- a/third_party/blink/renderer/modules/webtransport/web_transport.cc
+++ b/third_party/blink/renderer/modules/webtransport/web_transport.cc
@@ -55,8 +55,7 @@
 
 // The incoming max age to to be used when datagrams.incomingMaxAge is set to
 // null.
-constexpr base::TimeDelta kDefaultIncomingMaxAge =
-    base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kDefaultIncomingMaxAge = base::Seconds(60);
 
 // Creates a mojo DataPipe with the options we use for our stream data pipes. On
 // success, returns true. On failure, throws an exception and returns false.
@@ -406,7 +405,7 @@
     bool max_age_is_default = false;
     base::TimeDelta max_age;
     if (optional_max_age.has_value()) {
-      max_age = base::TimeDelta::FromMillisecondsD(optional_max_age.value());
+      max_age = base::Milliseconds(optional_max_age.value());
     } else {
       max_age_is_default = true;
       max_age = kDefaultIncomingMaxAge;
@@ -448,8 +447,8 @@
 
     // To reduce the number of wakeups, don't try to expire any more datagrams
     // for at least a second.
-    if (time_until_next_expiry < base::TimeDelta::FromSeconds(1)) {
-      time_until_next_expiry = base::TimeDelta::FromSeconds(1);
+    if (time_until_next_expiry < base::Seconds(1)) {
+      time_until_next_expiry = base::Seconds(1);
     }
 
     if (expiry_timer_.IsActive() &&
@@ -826,8 +825,7 @@
 }
 
 void WebTransport::setDatagramWritableQueueExpirationDuration(double duration) {
-  outgoing_datagram_expiration_duration_ =
-      base::TimeDelta::FromMillisecondsD(duration);
+  outgoing_datagram_expiration_duration_ = base::Milliseconds(duration);
   if (transport_remote_.is_bound()) {
     transport_remote_->SetOutgoingDatagramExpirationDuration(
         outgoing_datagram_expiration_duration_);
diff --git a/third_party/blink/renderer/modules/webtransport/web_transport_test.cc b/third_party/blink/renderer/modules/webtransport/web_transport_test.cc
index f785ae4..4068e7e 100644
--- a/third_party/blink/renderer/modules/webtransport/web_transport_test.cc
+++ b/third_party/blink/renderer/modules/webtransport/web_transport_test.cc
@@ -1161,7 +1161,7 @@
 
   test::RunPendingTasks();
 
-  constexpr base::TimeDelta kMaxAge = base::TimeDelta::FromMicroseconds(1);
+  constexpr base::TimeDelta kMaxAge = base::Microseconds(1);
   web_transport->datagrams()->setIncomingMaxAge(kMaxAge.InMillisecondsF());
 
   test::RunDelayedTasks(kMaxAge);
@@ -1741,8 +1741,7 @@
       CreateAndConnectSuccessfully(scope, "https://example.com");
 
   constexpr double kDuration = 40;
-  constexpr base::TimeDelta kDurationDelta =
-      base::TimeDelta::FromMillisecondsD(kDuration);
+  constexpr base::TimeDelta kDurationDelta = base::Milliseconds(kDuration);
   EXPECT_CALL(*mock_web_transport_,
               SetOutgoingDatagramExpirationDuration(kDurationDelta));
 
@@ -1758,8 +1757,7 @@
   auto* web_transport = Create(scope, "https://example.com/", EmptyOptions());
 
   constexpr double kDuration = 1000;
-  constexpr base::TimeDelta kDurationDelta =
-      base::TimeDelta::FromMillisecondsD(kDuration);
+  constexpr base::TimeDelta kDurationDelta = base::Milliseconds(kDuration);
 
   web_transport->datagrams()->setOutgoingMaxAge(kDuration);
 
diff --git a/third_party/blink/renderer/platform/animation/compositor_color_animation_curve.cc b/third_party/blink/renderer/platform/animation/compositor_color_animation_curve.cc
index cadf7106..e09b1d0 100644
--- a/third_party/blink/renderer/platform/animation/compositor_color_animation_curve.cc
+++ b/third_party/blink/renderer/platform/animation/compositor_color_animation_curve.cc
@@ -54,7 +54,7 @@
 }
 
 SkColor CompositorColorAnimationCurve::GetValue(double time) const {
-  return curve_->GetValue(base::TimeDelta::FromSecondsD(time));
+  return curve_->GetValue(base::Seconds(time));
 }
 
 std::unique_ptr<gfx::AnimationCurve>
diff --git a/third_party/blink/renderer/platform/animation/compositor_color_keyframe.cc b/third_party/blink/renderer/platform/animation/compositor_color_keyframe.cc
index c1cdc06..b4e5de6 100644
--- a/third_party/blink/renderer/platform/animation/compositor_color_keyframe.cc
+++ b/third_party/blink/renderer/platform/animation/compositor_color_keyframe.cc
@@ -12,10 +12,10 @@
     double time,
     SkColor value,
     const TimingFunction& timing_function)
-    : color_keyframe_(
-          gfx::ColorKeyframe::Create(base::TimeDelta::FromSecondsD(time),
-                                     value,
-                                     timing_function.CloneToCC())) {}
+    : color_keyframe_(gfx::ColorKeyframe::Create(base::Seconds(time),
+                                                 value,
+                                                 timing_function.CloneToCC())) {
+}
 
 CompositorColorKeyframe::CompositorColorKeyframe(
     std::unique_ptr<gfx::ColorKeyframe> color_keyframe)
diff --git a/third_party/blink/renderer/platform/animation/compositor_filter_keyframe.cc b/third_party/blink/renderer/platform/animation/compositor_filter_keyframe.cc
index 981df39..bf9cb67 100644
--- a/third_party/blink/renderer/platform/animation/compositor_filter_keyframe.cc
+++ b/third_party/blink/renderer/platform/animation/compositor_filter_keyframe.cc
@@ -14,7 +14,7 @@
     CompositorFilterOperations value,
     const TimingFunction& timing_function)
     : filter_keyframe_(
-          cc::FilterKeyframe::Create(base::TimeDelta::FromSecondsD(time),
+          cc::FilterKeyframe::Create(base::Seconds(time),
                                      value.ReleaseCcFilterOperations(),
                                      timing_function.CloneToCC())) {}
 
diff --git a/third_party/blink/renderer/platform/animation/compositor_float_animation_curve.cc b/third_party/blink/renderer/platform/animation/compositor_float_animation_curve.cc
index 0948971..aed654aa 100644
--- a/third_party/blink/renderer/platform/animation/compositor_float_animation_curve.cc
+++ b/third_party/blink/renderer/platform/animation/compositor_float_animation_curve.cc
@@ -60,7 +60,7 @@
 }
 
 float CompositorFloatAnimationCurve::GetValue(double time) const {
-  return curve_->GetValue(base::TimeDelta::FromSecondsD(time));
+  return curve_->GetValue(base::Seconds(time));
 }
 
 std::unique_ptr<gfx::AnimationCurve>
diff --git a/third_party/blink/renderer/platform/animation/compositor_float_keyframe.cc b/third_party/blink/renderer/platform/animation/compositor_float_keyframe.cc
index 195e6da..6cd8e96 100644
--- a/third_party/blink/renderer/platform/animation/compositor_float_keyframe.cc
+++ b/third_party/blink/renderer/platform/animation/compositor_float_keyframe.cc
@@ -12,10 +12,10 @@
     double time,
     float value,
     const TimingFunction& timing_function)
-    : float_keyframe_(
-          gfx::FloatKeyframe::Create(base::TimeDelta::FromSecondsD(time),
-                                     value,
-                                     timing_function.CloneToCC())) {}
+    : float_keyframe_(gfx::FloatKeyframe::Create(base::Seconds(time),
+                                                 value,
+                                                 timing_function.CloneToCC())) {
+}
 
 CompositorFloatKeyframe::CompositorFloatKeyframe(
     std::unique_ptr<gfx::FloatKeyframe> float_keyframe)
diff --git a/third_party/blink/renderer/platform/animation/compositor_keyframe_model_test.cc b/third_party/blink/renderer/platform/animation/compositor_keyframe_model_test.cc
index 591bc358..d2c2a08 100644
--- a/third_party/blink/renderer/platform/animation/compositor_keyframe_model_test.cc
+++ b/third_party/blink/renderer/platform/animation/compositor_keyframe_model_test.cc
@@ -32,7 +32,7 @@
           compositor_target_property::OPACITY));
   keyframe_model->SetIterations(2);
   keyframe_model->SetStartTime(2);
-  keyframe_model->SetTimeOffset(base::TimeDelta::FromSeconds(2));
+  keyframe_model->SetTimeOffset(base::Seconds(2));
   keyframe_model->SetDirection(CompositorKeyframeModel::Direction::REVERSE);
 
   EXPECT_EQ(2, keyframe_model->Iterations());
diff --git a/third_party/blink/renderer/platform/animation/compositor_scroll_offset_animation_curve.cc b/third_party/blink/renderer/platform/animation/compositor_scroll_offset_animation_curve.cc
index 18d154df..3d5296c 100644
--- a/third_party/blink/renderer/platform/animation/compositor_scroll_offset_animation_curve.cc
+++ b/third_party/blink/renderer/platform/animation/compositor_scroll_offset_animation_curve.cc
@@ -34,8 +34,7 @@
 }
 
 FloatPoint CompositorScrollOffsetAnimationCurve::GetValue(double time) const {
-  gfx::ScrollOffset value =
-      curve_->GetValue(base::TimeDelta::FromSecondsD(time));
+  gfx::ScrollOffset value = curve_->GetValue(base::Seconds(time));
   return FloatPoint(value.x(), value.y());
 }
 
diff --git a/third_party/blink/renderer/platform/animation/compositor_transform_keyframe.cc b/third_party/blink/renderer/platform/animation/compositor_transform_keyframe.cc
index e266dc0..ce4f519 100644
--- a/third_party/blink/renderer/platform/animation/compositor_transform_keyframe.cc
+++ b/third_party/blink/renderer/platform/animation/compositor_transform_keyframe.cc
@@ -13,7 +13,7 @@
     CompositorTransformOperations value,
     const TimingFunction& timing_function)
     : transform_keyframe_(
-          gfx::TransformKeyframe::Create(base::TimeDelta::FromSecondsD(time),
+          gfx::TransformKeyframe::Create(base::Seconds(time),
                                          value.ReleaseGfxTransformOperations(),
                                          timing_function.CloneToCC())) {}
 
diff --git a/third_party/blink/renderer/platform/audio/audio_callback_metric_reporter.cc b/third_party/blink/renderer/platform/audio/audio_callback_metric_reporter.cc
index 708ee0a..bf4ff6ca 100644
--- a/third_party/blink/renderer/platform/audio/audio_callback_metric_reporter.cc
+++ b/third_party/blink/renderer/platform/audio/audio_callback_metric_reporter.cc
@@ -33,7 +33,7 @@
   if (metric_.number_of_callbacks == 0) {
     previous_callback_start_time_ =
         callback_start_time_ -
-        base::TimeDelta::FromSecondsD(metric_.expected_callback_interval);
+        base::Seconds(metric_.expected_callback_interval);
 
     // Let's assume that the previous render duration is zero.
     previous_render_end_time_ = previous_callback_start_time_;
diff --git a/third_party/blink/renderer/platform/audio/push_pull_fifo_multithread_test.cc b/third_party/blink/renderer/platform/audio/push_pull_fifo_multithread_test.cc
index 4e2ed5e..ea0e6af 100644
--- a/third_party/blink/renderer/platform/audio/push_pull_fifo_multithread_test.cc
+++ b/third_party/blink/renderer/platform/audio/push_pull_fifo_multithread_test.cc
@@ -70,7 +70,7 @@
           *client_thread_->GetTaskRunner(), FROM_HERE,
           CrossThreadBindOnce(&FIFOClient::RunTaskOnOwnThread,
                               CrossThreadUnretained(this)),
-          base::TimeDelta::FromMillisecondsD(interval_with_jitter));
+          base::Milliseconds(interval_with_jitter));
     } else {
       Stop(counter_);
       done_event_->Signal();
diff --git a/third_party/blink/renderer/platform/bindings/parkable_string.cc b/third_party/blink/renderer/platform/bindings/parkable_string.cc
index 068c42e3..e824956 100644
--- a/third_party/blink/renderer/platform/bindings/parkable_string.cc
+++ b/third_party/blink/renderer/platform/bindings/parkable_string.cc
@@ -88,9 +88,9 @@
   base::UmaHistogramCounts1000(size_histogram, size_kb);
   // Size is at least 10kB, and at most ~10MB, and throughput ranges from
   // single-digit MB/s to ~1000MB/s depending on the CPU/disk, hence the ranges.
-  base::UmaHistogramCustomMicrosecondsTimes(
-      latency_histogram, duration, base::TimeDelta::FromMicroseconds(500),
-      base::TimeDelta::FromSeconds(1), 100);
+  base::UmaHistogramCustomMicrosecondsTimes(latency_histogram, duration,
+                                            base::Microseconds(500),
+                                            base::Seconds(1), 100);
   base::UmaHistogramCounts1000(throughput_histogram, throughput_mb_s);
 }
 
diff --git a/third_party/blink/renderer/platform/bindings/parkable_string_manager.cc b/third_party/blink/renderer/platform/bindings/parkable_string_manager.cc
index 748803e..53a37937 100644
--- a/third_party/blink/renderer/platform/bindings/parkable_string_manager.cc
+++ b/third_party/blink/renderer/platform/bindings/parkable_string_manager.cc
@@ -211,7 +211,7 @@
         FROM_HERE,
         base::BindOnce(&ParkableStringManager::RecordStatisticsAfter5Minutes,
                        base::Unretained(this)),
-        base::TimeDelta::FromMinutes(5));
+        base::Minutes(5));
     has_posted_unparking_time_accounting_task_ = true;
   }
 
@@ -391,7 +391,7 @@
       FROM_HERE,
       base::BindOnce(&ParkableStringManager::AgeStringsAndPark,
                      base::Unretained(this)),
-      base::TimeDelta::FromSeconds(kAgingIntervalInSeconds));
+      base::Seconds(kAgingIntervalInSeconds));
   has_pending_aging_task_ = true;
 }
 
diff --git a/third_party/blink/renderer/platform/bindings/parkable_string_test.cc b/third_party/blink/renderer/platform/bindings/parkable_string_test.cc
index a884563..5217311 100644
--- a/third_party/blink/renderer/platform/bindings/parkable_string_test.cc
+++ b/third_party/blink/renderer/platform/bindings/parkable_string_test.cc
@@ -78,8 +78,8 @@
     if (base::FeatureList::IsEnabled(features::kCompressParkableStrings)) {
       EXPECT_GT(task_environment_.GetPendingMainThreadTaskCount(), 0u);
     }
-    task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(
-        ParkableStringManager::kAgingIntervalInSeconds));
+    task_environment_.FastForwardBy(
+        base::Seconds(ParkableStringManager::kAgingIntervalInSeconds));
   }
 
   void WaitForDelayedParking() {
@@ -1147,8 +1147,7 @@
   base::RunLoop run_loop;
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE, run_loop.QuitClosure(),
-      base::TimeDelta::FromSeconds(
-          ParkableStringManager::kAgingIntervalInSeconds));
+      base::Seconds(ParkableStringManager::kAgingIntervalInSeconds));
   run_loop.Run();
 
   // The aging task is rescheduled.
diff --git a/third_party/blink/renderer/platform/bindings/runtime_call_stats_test.cc b/third_party/blink/renderer/platform/bindings/runtime_call_stats_test.cc
index 509efa9b..378844f6 100644
--- a/third_party/blink/renderer/platform/bindings/runtime_call_stats_test.cc
+++ b/third_party/blink/renderer/platform/bindings/runtime_call_stats_test.cc
@@ -24,8 +24,7 @@
   void SetUp() override {
     // Add one millisecond because RuntimeCallTimer uses |start_ticks_| =
     // base::TimeTicks() to represent that the timer is not running.
-    clock_.SetNowTicks(base::TimeTicks() +
-                       base::TimeDelta::FromMilliseconds(1));
+    clock_.SetNowTicks(base::TimeTicks() + base::Milliseconds(1));
   }
 
   void TearDown() override {
@@ -33,7 +32,7 @@
   }
 
   void AdvanceClock(int milliseconds) {
-    clock_.Advance(base::TimeDelta::FromMilliseconds(milliseconds));
+    clock_.Advance(base::Milliseconds(milliseconds));
   }
 
   const base::TickClock* clock() { return &clock_; }
diff --git a/third_party/blink/renderer/platform/blob/blob_data_test.cc b/third_party/blink/renderer/platform/blob/blob_data_test.cc
index 8f1d08e..60a811d1 100644
--- a/third_party/blink/renderer/platform/blob/blob_data_test.cc
+++ b/third_party/blink/renderer/platform/blob/blob_data_test.cc
@@ -361,7 +361,7 @@
 
 TEST_F(BlobDataHandleTest, CreateFromFileAndFileSystemURL) {
   base::Time timestamp1 = base::Time::Now();
-  base::Time timestamp2 = timestamp1 + base::TimeDelta::FromSeconds(1);
+  base::Time timestamp2 = timestamp1 + base::Seconds(1);
   KURL url(NullURL(), "http://example.com/");
   auto data = std::make_unique<BlobData>();
   data->AppendFile("path", 4, 32, timestamp1);
diff --git a/third_party/blink/renderer/platform/fonts/font_matching_metrics.cc b/third_party/blink/renderer/platform/fonts/font_matching_metrics.cc
index bc2a3eb5..b93c2ecb 100644
--- a/third_party/blink/renderer/platform/fonts/font_matching_metrics.cc
+++ b/third_party/blink/renderer/platform/fonts/font_matching_metrics.cc
@@ -353,8 +353,7 @@
 void FontMatchingMetrics::OnFontLookup() {
   DCHECK(IdentifiabilityStudySettings::Get()->IsActive());
   if (!identifiability_metrics_timer_.IsActive()) {
-    identifiability_metrics_timer_.StartOneShot(base::TimeDelta::FromMinutes(1),
-                                                FROM_HERE);
+    identifiability_metrics_timer_.StartOneShot(base::Minutes(1), FROM_HERE);
   }
 }
 
diff --git a/third_party/blink/renderer/platform/graphics/animation_worklet_mutator_dispatcher_impl.cc b/third_party/blink/renderer/platform/graphics/animation_worklet_mutator_dispatcher_impl.cc
index 30ccd9c..f140122e 100644
--- a/third_party/blink/renderer/platform/graphics/animation_worklet_mutator_dispatcher_impl.cc
+++ b/third_party/blink/renderer/platform/graphics/animation_worklet_mutator_dispatcher_impl.cc
@@ -135,8 +135,7 @@
 
   UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
       "Animation.AnimationWorklet.Dispatcher.SynchronousMutateDuration",
-      timer.Elapsed(), base::TimeDelta::FromMicroseconds(1),
-      base::TimeDelta::FromMilliseconds(100), 50);
+      timer.Elapsed(), base::Microseconds(1), base::Milliseconds(100), 50);
 }
 
 base::TimeTicks AnimationWorkletMutatorDispatcherImpl::NowTicks() const {
@@ -242,8 +241,8 @@
   // completion, and thus includes queuing time.
   UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
       "Animation.AnimationWorklet.Dispatcher.AsynchronousMutateDuration",
-      NowTicks() - request_time, base::TimeDelta::FromMicroseconds(1),
-      base::TimeDelta::FromMilliseconds(100), 50);
+      NowTicks() - request_time, base::Microseconds(1), base::Milliseconds(100),
+      50);
 
   std::move(done_callback)
       .Run(update_applied ? MutateStatus::kCompletedWithUpdate
diff --git a/third_party/blink/renderer/platform/graphics/animation_worklet_mutator_dispatcher_impl_test.cc b/third_party/blink/renderer/platform/graphics/animation_worklet_mutator_dispatcher_impl_test.cc
index e5ace413..6cdc58f 100644
--- a/third_party/blink/renderer/platform/graphics/animation_worklet_mutator_dispatcher_impl_test.cc
+++ b/third_party/blink/renderer/platform/graphics/animation_worklet_mutator_dispatcher_impl_test.cc
@@ -784,7 +784,7 @@
   // Block Responses until all requests have been queued.
   mutator->BlockWorkletThread();
 
-  base::TimeDelta time_delta = base::TimeDelta::FromMilliseconds(10);
+  base::TimeDelta time_delta = base::Milliseconds(10);
 
   // Expected Elapsed time is the sum of all clock advancements until unblocked,
   // which totals to 30 ms.
diff --git a/third_party/blink/renderer/platform/graphics/bitmap_image_test.cc b/third_party/blink/renderer/platform/graphics/bitmap_image_test.cc
index 7fd3d44..4ee7539 100644
--- a/third_party/blink/renderer/platform/graphics/bitmap_image_test.cc
+++ b/third_party/blink/renderer/platform/graphics/bitmap_image_test.cc
@@ -643,7 +643,7 @@
   EXPECT_EQ(image.repetition_count(), repetition_count_);
   for (size_t i = 0; i < image.GetFrameMetadata().size(); ++i) {
     const auto& data = image.GetFrameMetadata()[i];
-    EXPECT_EQ(data.duration, base::TimeDelta::FromMilliseconds(100));
+    EXPECT_EQ(data.duration, base::Milliseconds(100));
     if (i == frame_count_ - 1 && !last_frame_complete_)
       EXPECT_FALSE(data.complete);
     else
@@ -651,7 +651,7 @@
   }
 
   // Now the load is finished.
-  duration_ = base::TimeDelta::FromSeconds(1);
+  duration_ = base::Seconds(1);
   repetition_count_ = kAnimationLoopInfinite;
   frame_count_ = 6u;
   last_frame_complete_ = true;
@@ -665,9 +665,9 @@
   for (size_t i = 0; i < image.GetFrameMetadata().size(); ++i) {
     const auto& data = image.GetFrameMetadata()[i];
     if (i < 4u)
-      EXPECT_EQ(data.duration, base::TimeDelta::FromMilliseconds(100));
+      EXPECT_EQ(data.duration, base::Milliseconds(100));
     else
-      EXPECT_EQ(data.duration, base::TimeDelta::FromSeconds(1));
+      EXPECT_EQ(data.duration, base::Seconds(1));
     EXPECT_TRUE(data.complete);
   }
 }
diff --git a/third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge.cc b/third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge.cc
index 5fbfb912..c669b85 100644
--- a/third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge.cc
+++ b/third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge.cc
@@ -437,12 +437,12 @@
     raster_interface->GetQueryObjectuivEXT(it->gl_query_id, GL_QUERY_RESULT_EXT,
                                            &raw_gpu_duration);
     base::TimeDelta gpu_duration_microseconds =
-        base::TimeDelta::FromMicroseconds(raw_gpu_duration);
+        base::Microseconds(raw_gpu_duration);
     base::TimeDelta total_time =
         gpu_duration_microseconds + it->cpu_raster_duration;
 
-    base::TimeDelta min = base::TimeDelta::FromMicroseconds(1);
-    base::TimeDelta max = base::TimeDelta::FromMilliseconds(100);
+    base::TimeDelta min = base::Microseconds(1);
+    base::TimeDelta max = base::Milliseconds(100);
     int num_buckets = 100;
     UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
         "Blink.Canvas.RasterDuration.Accelerated.GPU",
@@ -516,8 +516,7 @@
     } else {
       UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
           "Blink.Canvas.RasterDuration.Unaccelerated", timer->Elapsed(),
-          base::TimeDelta::FromMicroseconds(1),
-          base::TimeDelta::FromMilliseconds(100), 100);
+          base::Microseconds(1), base::Milliseconds(100), 100);
     }
   }
 
diff --git a/third_party/blink/renderer/platform/graphics/deferred_image_decoder.cc b/third_party/blink/renderer/platform/graphics/deferred_image_decoder.cc
index cfcb01c..8f71c9a 100644
--- a/third_party/blink/renderer/platform/graphics/deferred_image_decoder.cc
+++ b/third_party/blink/renderer/platform/graphics/deferred_image_decoder.cc
@@ -354,8 +354,8 @@
   // possible. We follow Firefox's behavior and use a duration of 100 ms for any
   // frames that specify a duration of <= 10 ms. See <rdar://problem/7689300>
   // and <http://webkit.org/b/36082> for more information.
-  if (duration <= base::TimeDelta::FromMilliseconds(10))
-    duration = base::TimeDelta::FromMilliseconds(100);
+  if (duration <= base::Milliseconds(10))
+    duration = base::Milliseconds(100);
 
   return duration;
 }
diff --git a/third_party/blink/renderer/platform/graphics/deferred_image_decoder_test.cc b/third_party/blink/renderer/platform/graphics/deferred_image_decoder_test.cc
index f0526b4..bb4f75d 100644
--- a/third_party/blink/renderer/platform/graphics/deferred_image_decoder_test.cc
+++ b/third_party/blink/renderer/platform/graphics/deferred_image_decoder_test.cc
@@ -303,7 +303,7 @@
 TEST_F(DeferredImageDecoderTest, multiFrameImageLoading) {
   repetition_count_ = 10;
   frame_count_ = 1;
-  frame_duration_ = base::TimeDelta::FromMilliseconds(10);
+  frame_duration_ = base::Milliseconds(10);
   status_ = ImageFrame::kFramePartial;
   lazy_decoder_->SetData(data_, false /* all_data_received */);
 
@@ -311,11 +311,10 @@
   ASSERT_TRUE(image);
   EXPECT_FALSE(lazy_decoder_->FrameIsReceivedAtIndex(0));
   // Anything <= 10ms is clamped to 100ms. See the implementaiton for details.
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(100),
-            lazy_decoder_->FrameDurationAtIndex(0));
+  EXPECT_EQ(base::Milliseconds(100), lazy_decoder_->FrameDurationAtIndex(0));
 
   frame_count_ = 2;
-  frame_duration_ = base::TimeDelta::FromMilliseconds(20);
+  frame_duration_ = base::Milliseconds(20);
   status_ = ImageFrame::kFrameComplete;
   data_->Append(" ", 1u);
   lazy_decoder_->SetData(data_, false /* all_data_received */);
@@ -324,24 +323,20 @@
   ASSERT_TRUE(image);
   EXPECT_TRUE(lazy_decoder_->FrameIsReceivedAtIndex(0));
   EXPECT_TRUE(lazy_decoder_->FrameIsReceivedAtIndex(1));
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(20),
-            lazy_decoder_->FrameDurationAtIndex(1));
+  EXPECT_EQ(base::Milliseconds(20), lazy_decoder_->FrameDurationAtIndex(1));
   EXPECT_TRUE(actual_decoder_);
 
   frame_count_ = 3;
-  frame_duration_ = base::TimeDelta::FromMilliseconds(30);
+  frame_duration_ = base::Milliseconds(30);
   status_ = ImageFrame::kFrameComplete;
   lazy_decoder_->SetData(data_, true /* all_data_received */);
   EXPECT_FALSE(actual_decoder_);
   EXPECT_TRUE(lazy_decoder_->FrameIsReceivedAtIndex(0));
   EXPECT_TRUE(lazy_decoder_->FrameIsReceivedAtIndex(1));
   EXPECT_TRUE(lazy_decoder_->FrameIsReceivedAtIndex(2));
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(100),
-            lazy_decoder_->FrameDurationAtIndex(0));
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(20),
-            lazy_decoder_->FrameDurationAtIndex(1));
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(30),
-            lazy_decoder_->FrameDurationAtIndex(2));
+  EXPECT_EQ(base::Milliseconds(100), lazy_decoder_->FrameDurationAtIndex(0));
+  EXPECT_EQ(base::Milliseconds(20), lazy_decoder_->FrameDurationAtIndex(1));
+  EXPECT_EQ(base::Milliseconds(30), lazy_decoder_->FrameDurationAtIndex(2));
   EXPECT_EQ(10, lazy_decoder_->RepetitionCount());
 }
 
@@ -440,7 +435,7 @@
 
 TEST_F(MultiFrameDeferredImageDecoderTest, PaintImage) {
   frame_count_ = 2;
-  frame_duration_ = base::TimeDelta::FromMilliseconds(20);
+  frame_duration_ = base::Milliseconds(20);
   last_complete_frame_ = 0u;
   lazy_decoder_->SetData(data_, false /* all_data_received */);
 
@@ -492,17 +487,15 @@
 
 TEST_F(MultiFrameDeferredImageDecoderTest, FrameDurationOverride) {
   frame_count_ = 2;
-  frame_duration_ = base::TimeDelta::FromMilliseconds(5);
+  frame_duration_ = base::Milliseconds(5);
   last_complete_frame_ = 1u;
   lazy_decoder_->SetData(data_, true /* all_data_received */);
 
   // If the frame duration is below a threshold, we override it to a constant
   // value of 100 ms.
   PaintImage image = CreatePaintImage();
-  EXPECT_EQ(image.GetFrameMetadata()[0].duration,
-            base::TimeDelta::FromMilliseconds(100));
-  EXPECT_EQ(image.GetFrameMetadata()[1].duration,
-            base::TimeDelta::FromMilliseconds(100));
+  EXPECT_EQ(image.GetFrameMetadata()[0].duration, base::Milliseconds(100));
+  EXPECT_EQ(image.GetFrameMetadata()[1].duration, base::Milliseconds(100));
 }
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/platform/graphics/gpu/webgpu_resource_provider_cache.cc b/third_party/blink/renderer/platform/graphics/gpu/webgpu_resource_provider_cache.cc
index 52695f2..ddbaf69 100644
--- a/third_party/blink/renderer/platform/graphics/gpu/webgpu_resource_provider_cache.cc
+++ b/third_party/blink/renderer/platform/graphics/gpu/webgpu_resource_provider_cache.cc
@@ -214,9 +214,8 @@
 }
 void WebGPURecyclableResourceCache::StartResourceCleanUpTimer() {
   if (unused_providers_.size() > 0 && !timer_is_running_) {
-    task_runner_->PostDelayedTask(
-        FROM_HERE, timer_func_,
-        base::TimeDelta::FromSeconds(kTimerDurationInSeconds));
+    task_runner_->PostDelayedTask(FROM_HERE, timer_func_,
+                                  base::Seconds(kTimerDurationInSeconds));
     timer_is_running_ = true;
   }
 }
diff --git a/third_party/blink/renderer/platform/graphics/parkable_image.cc b/third_party/blink/renderer/platform/graphics/parkable_image.cc
index 3e443e5..6a52b86a 100644
--- a/third_party/blink/renderer/platform/graphics/parkable_image.cc
+++ b/third_party/blink/renderer/platform/graphics/parkable_image.cc
@@ -34,10 +34,9 @@
   // Size is usually >1KiB, and at most ~10MiB, and throughput ranges from
   // single-digit MB/s to ~1000MiB/s depending on the CPU/disk, hence the
   // ranges.
-  base::UmaHistogramCustomMicrosecondsTimes(
-      "Memory.ParkableImage.Read.Latency", duration,
-      base::TimeDelta::FromMicroseconds(500), base::TimeDelta::FromSeconds(1),
-      100);
+  base::UmaHistogramCustomMicrosecondsTimes("Memory.ParkableImage.Read.Latency",
+                                            duration, base::Microseconds(500),
+                                            base::Seconds(1), 100);
   base::UmaHistogramCounts1000("Memory.ParkableImage.Read.Throughput",
                                throughput_mb_s);
 }
@@ -53,9 +52,8 @@
   // single-digit MB/s to ~1000MiB/s depending on the CPU/disk, hence the
   // ranges.
   base::UmaHistogramCustomMicrosecondsTimes(
-      "Memory.ParkableImage.Write.Latency", duration,
-      base::TimeDelta::FromMicroseconds(500), base::TimeDelta::FromSeconds(1),
-      100);
+      "Memory.ParkableImage.Write.Latency", duration, base::Microseconds(500),
+      base::Seconds(1), 100);
   base::UmaHistogramCounts1000("Memory.ParkableImage.Write.Throughput",
                                throughput_mb_s);
 }
diff --git a/third_party/blink/renderer/platform/graphics/parkable_image_manager.cc b/third_party/blink/renderer/platform/graphics/parkable_image_manager.cc
index f50db27..6f8e9d0 100644
--- a/third_party/blink/renderer/platform/graphics/parkable_image_manager.cc
+++ b/third_party/blink/renderer/platform/graphics/parkable_image_manager.cc
@@ -109,7 +109,7 @@
         FROM_HERE,
         base::BindOnce(&ParkableImageManager::RecordStatisticsAfter5Minutes,
                        base::Unretained(this)),
-        base::TimeDelta::FromMinutes(5));
+        base::Minutes(5));
     has_posted_accounting_task_ = true;
   }
 
diff --git a/third_party/blink/renderer/platform/graphics/parkable_image_manager.h b/third_party/blink/renderer/platform/graphics/parkable_image_manager.h
index dd28094..da81a48 100644
--- a/third_party/blink/renderer/platform/graphics/parkable_image_manager.h
+++ b/third_party/blink/renderer/platform/graphics/parkable_image_manager.h
@@ -103,8 +103,7 @@
   }
 
   void ResetForTesting();
-  constexpr static auto kDelayedParkingInterval =
-      base::TimeDelta::FromSeconds(2);
+  constexpr static auto kDelayedParkingInterval = base::Seconds(2);
   constexpr static const char* kAllocatorDumpName = "parkable_images";
 
   mutable Mutex lock_;
diff --git a/third_party/blink/renderer/platform/graphics/parkable_image_test.cc b/third_party/blink/renderer/platform/graphics/parkable_image_test.cc
index 455dfa6..855ecbd 100644
--- a/third_party/blink/renderer/platform/graphics/parkable_image_test.cc
+++ b/third_party/blink/renderer/platform/graphics/parkable_image_test.cc
@@ -60,9 +60,7 @@
 
   // To aid in testing that the "Memory.ParkableImage.*.5min" metrics are
   // correctly recorded.
-  void Wait5MinForStatistics() {
-    task_env_.FastForwardBy(base::TimeDelta::FromMinutes(5));
-  }
+  void Wait5MinForStatistics() { task_env_.FastForwardBy(base::Minutes(5)); }
 
   void DescribeCurrentTasks() { task_env_.DescribeCurrentTasks(); }
 
diff --git a/third_party/blink/renderer/platform/graphics/video_frame_submitter.cc b/third_party/blink/renderer/platform/graphics/video_frame_submitter.cc
index 540bbcf..2a337e2 100644
--- a/third_party/blink/renderer/platform/graphics/video_frame_submitter.cc
+++ b/third_party/blink/renderer/platform/graphics/video_frame_submitter.cc
@@ -437,7 +437,7 @@
     if (!context_provider) {
       // Delay to retry getting the context_provider.
       constexpr base::TimeDelta kGetContextProviderRetryTimeout =
-          base::TimeDelta::FromMilliseconds(150);
+          base::Milliseconds(150);
 
       base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
           FROM_HERE,
@@ -550,7 +550,7 @@
     // If there are any in-flight empty frame requests, this cancels them. We
     // want to wait until any group of state changes stabilizes.
     empty_frame_timer_.Start(
-        FROM_HERE, base::TimeDelta::FromMilliseconds(500),
+        FROM_HERE, base::Milliseconds(500),
         base::BindOnce(&VideoFrameSubmitter::SubmitEmptyFrameIfNeeded,
                        base::Unretained(this)));
   }
diff --git a/third_party/blink/renderer/platform/graphics/video_frame_submitter_test.cc b/third_party/blink/renderer/platform/graphics/video_frame_submitter_test.cc
index ee920aa..89cf313 100644
--- a/third_party/blink/renderer/platform/graphics/video_frame_submitter_test.cc
+++ b/third_party/blink/renderer/platform/graphics/video_frame_submitter_test.cc
@@ -931,7 +931,7 @@
 }
 
 TEST_F(VideoFrameSubmitterTest, PreferredInterval) {
-  video_frame_provider_->preferred_interval = base::TimeDelta::FromSeconds(1);
+  video_frame_provider_->preferred_interval = base::Seconds(1);
 
   EXPECT_CALL(*sink_, SetNeedsBeginFrame(true));
 
@@ -1022,7 +1022,7 @@
 TEST_F(VideoFrameSubmitterTest, ProcessTimingDetails) {
   int fps = 24;
   int reports = 0;
-  base::TimeDelta frame_duration = base::TimeDelta::FromSecondsD(1.0 / fps);
+  base::TimeDelta frame_duration = base::Seconds(1.0 / fps);
   int frames_to_run =
       fps * (cc::VideoPlaybackRoughnessReporter::kMinWindowsBeforeSubmit + 1);
   WTF::HashMap<uint32_t, viz::FrameTimingDetails> timing_details;
diff --git a/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder.cc b/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder.cc
index 748f25c..0dcd843 100644
--- a/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder.cc
+++ b/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder.cc
@@ -536,7 +536,7 @@
   avifImageTiming timing;
   auto ret = avifDecoderNthImageTiming(decoder_.get(), index, &timing);
   DCHECK_EQ(ret, AVIF_RESULT_OK);
-  buffer.SetDuration(base::TimeDelta::FromSecondsD(timing.duration));
+  buffer.SetDuration(base::Seconds(timing.duration));
 }
 
 void AVIFImageDecoder::Decode(wtf_size_t index) {
diff --git a/third_party/blink/renderer/platform/image-decoders/gif/gif_image_decoder.cc b/third_party/blink/renderer/platform/image-decoders/gif/gif_image_decoder.cc
index eb0225a0..f30334c 100644
--- a/third_party/blink/renderer/platform/image-decoders/gif/gif_image_decoder.cc
+++ b/third_party/blink/renderer/platform/image-decoders/gif/gif_image_decoder.cc
@@ -212,7 +212,7 @@
   SkCodec::FrameInfo frame_info;
   bool frame_info_received = codec_->getFrameInfo(index, &frame_info);
   DCHECK(frame_info_received);
-  frame.SetDuration(base::TimeDelta::FromMilliseconds(frame_info.fDuration));
+  frame.SetDuration(base::Milliseconds(frame_info.fDuration));
   wtf_size_t required_previous_frame_index;
   if (frame_info.fRequiredFrame == SkCodec::kNoFrame) {
     required_previous_frame_index = kNotFound;
diff --git a/third_party/blink/renderer/platform/image-decoders/jxl/jxl_image_decoder.cc b/third_party/blink/renderer/platform/image-decoders/jxl/jxl_image_decoder.cc
index b651512..24c88994 100644
--- a/third_party/blink/renderer/platform/image-decoders/jxl/jxl_image_decoder.cc
+++ b/third_party/blink/renderer/platform/image-decoders/jxl/jxl_image_decoder.cc
@@ -510,7 +510,7 @@
 
 base::TimeDelta JXLImageDecoder::FrameDurationAtIndex(wtf_size_t index) const {
   if (index < frame_durations_.size())
-    return base::TimeDelta::FromSecondsD(frame_durations_[index]);
+    return base::Seconds(frame_durations_[index]);
 
   return base::TimeDelta();
 }
diff --git a/third_party/blink/renderer/platform/image-decoders/png/png_image_decoder.cc b/third_party/blink/renderer/platform/image-decoders/png/png_image_decoder.cc
index 9caac48..eb85536 100644
--- a/third_party/blink/renderer/platform/image-decoders/png/png_image_decoder.cc
+++ b/third_party/blink/renderer/platform/image-decoders/png/png_image_decoder.cc
@@ -150,7 +150,7 @@
   DCHECK(IntRect(IntPoint(), Size()).Contains(frame_info.frame_rect));
   buffer.SetOriginalFrameRect(frame_info.frame_rect);
 
-  buffer.SetDuration(base::TimeDelta::FromMilliseconds(frame_info.duration));
+  buffer.SetDuration(base::Milliseconds(frame_info.duration));
   buffer.SetDisposalMethod(frame_info.disposal_method);
   buffer.SetAlphaBlendSource(frame_info.alpha_blend);
 
diff --git a/third_party/blink/renderer/platform/image-decoders/png/png_image_decoder_test.cc b/third_party/blink/renderer/platform/image-decoders/png/png_image_decoder_test.cc
index aa57acd1..09bb55c 100644
--- a/third_party/blink/renderer/platform/image-decoders/png/png_image_decoder_test.cc
+++ b/third_party/blink/renderer/platform/image-decoders/png/png_image_decoder_test.cc
@@ -122,19 +122,19 @@
 // This is the frame data for the following PNG image:
 // web_tests/images/resources/png-animated-idat-part-of-animation.png
 static PublicFrameInfo g_png_animated_frame_info[] = {
-    {base::TimeDelta::FromMilliseconds(500),
+    {base::Milliseconds(500),
      {IntPoint(0, 0), IntSize(5, 5)},
      ImageFrame::kBlendAtopBgcolor,
      ImageFrame::kDisposeKeep},
-    {base::TimeDelta::FromMilliseconds(900),
+    {base::Milliseconds(900),
      {IntPoint(1, 1), IntSize(3, 1)},
      ImageFrame::kBlendAtopBgcolor,
      ImageFrame::kDisposeOverwriteBgcolor},
-    {base::TimeDelta::FromMilliseconds(2000),
+    {base::Milliseconds(2000),
      {IntPoint(1, 2), IntSize(3, 2)},
      ImageFrame::kBlendAtopPreviousFrame,
      ImageFrame::kDisposeKeep},
-    {base::TimeDelta::FromMilliseconds(1500),
+    {base::Milliseconds(1500),
      {IntPoint(1, 2), IntSize(3, 1)},
      ImageFrame::kBlendAtopBgcolor,
      ImageFrame::kDisposeKeep},
diff --git a/third_party/blink/renderer/platform/image-decoders/webp/webp_image_decoder.cc b/third_party/blink/renderer/platform/image-decoders/webp/webp_image_decoder.cc
index ee5e308a..68c968a 100644
--- a/third_party/blink/renderer/platform/image-decoders/webp/webp_image_decoder.cc
+++ b/third_party/blink/renderer/platform/image-decoders/webp/webp_image_decoder.cc
@@ -629,8 +629,7 @@
                      animated_frame.width, animated_frame.height);
   buffer->SetOriginalFrameRect(
       Intersection(frame_rect, IntRect(IntPoint(), Size())));
-  buffer->SetDuration(
-      base::TimeDelta::FromMilliseconds(animated_frame.duration));
+  buffer->SetDuration(base::Milliseconds(animated_frame.duration));
   buffer->SetDisposalMethod(animated_frame.dispose_method ==
                                     WEBP_MUX_DISPOSE_BACKGROUND
                                 ? ImageFrame::kDisposeOverwriteBgcolor
diff --git a/third_party/blink/renderer/platform/image-decoders/webp/webp_image_decoder_test.cc b/third_party/blink/renderer/platform/image-decoders/webp/webp_image_decoder_test.cc
index cc5622a..6d43a32 100644
--- a/third_party/blink/renderer/platform/image-decoders/webp/webp_image_decoder_test.cc
+++ b/third_party/blink/renderer/platform/image-decoders/webp/webp_image_decoder_test.cc
@@ -116,14 +116,11 @@
   const int kCanvasHeight = 29;
   const AnimParam kFrameParameters[] = {
       {0, 0, 11, 29, ImageFrame::kDisposeKeep,
-       ImageFrame::kBlendAtopPreviousFrame,
-       base::TimeDelta::FromMilliseconds(1000), true},
+       ImageFrame::kBlendAtopPreviousFrame, base::Milliseconds(1000), true},
       {2, 10, 7, 17, ImageFrame::kDisposeKeep,
-       ImageFrame::kBlendAtopPreviousFrame,
-       base::TimeDelta::FromMilliseconds(500), true},
+       ImageFrame::kBlendAtopPreviousFrame, base::Milliseconds(500), true},
       {2, 2, 7, 16, ImageFrame::kDisposeKeep,
-       ImageFrame::kBlendAtopPreviousFrame,
-       base::TimeDelta::FromMilliseconds(1000), true},
+       ImageFrame::kBlendAtopPreviousFrame, base::Milliseconds(1000), true},
   };
 
   for (size_t i = 0; i < base::size(kFrameParameters); ++i) {
@@ -160,17 +157,13 @@
   const int kCanvasHeight = 87;
   const AnimParam kFrameParameters[] = {
       {4, 10, 33, 32, ImageFrame::kDisposeOverwriteBgcolor,
-       ImageFrame::kBlendAtopPreviousFrame,
-       base::TimeDelta::FromMilliseconds(1000), true},
+       ImageFrame::kBlendAtopPreviousFrame, base::Milliseconds(1000), true},
       {34, 30, 33, 32, ImageFrame::kDisposeOverwriteBgcolor,
-       ImageFrame::kBlendAtopPreviousFrame,
-       base::TimeDelta::FromMilliseconds(1000), true},
+       ImageFrame::kBlendAtopPreviousFrame, base::Milliseconds(1000), true},
       {62, 50, 32, 32, ImageFrame::kDisposeOverwriteBgcolor,
-       ImageFrame::kBlendAtopPreviousFrame,
-       base::TimeDelta::FromMilliseconds(1000), true},
+       ImageFrame::kBlendAtopPreviousFrame, base::Milliseconds(1000), true},
       {10, 54, 32, 33, ImageFrame::kDisposeOverwriteBgcolor,
-       ImageFrame::kBlendAtopPreviousFrame,
-       base::TimeDelta::FromMilliseconds(1000), true},
+       ImageFrame::kBlendAtopPreviousFrame, base::Milliseconds(1000), true},
   };
 
   for (size_t i = 0; i < base::size(kFrameParameters); ++i) {
@@ -206,17 +199,13 @@
   const int kCanvasHeight = 87;
   const AnimParam kFrameParameters[] = {
       {4, 10, 33, 32, ImageFrame::kDisposeOverwriteBgcolor,
-       ImageFrame::kBlendAtopBgcolor, base::TimeDelta::FromMilliseconds(1000),
-       true},
+       ImageFrame::kBlendAtopBgcolor, base::Milliseconds(1000), true},
       {34, 30, 33, 32, ImageFrame::kDisposeOverwriteBgcolor,
-       ImageFrame::kBlendAtopBgcolor, base::TimeDelta::FromMilliseconds(1000),
-       true},
+       ImageFrame::kBlendAtopBgcolor, base::Milliseconds(1000), true},
       {62, 50, 32, 32, ImageFrame::kDisposeOverwriteBgcolor,
-       ImageFrame::kBlendAtopBgcolor, base::TimeDelta::FromMilliseconds(1000),
-       true},
+       ImageFrame::kBlendAtopBgcolor, base::Milliseconds(1000), true},
       {10, 54, 32, 33, ImageFrame::kDisposeOverwriteBgcolor,
-       ImageFrame::kBlendAtopBgcolor, base::TimeDelta::FromMilliseconds(1000),
-       true},
+       ImageFrame::kBlendAtopBgcolor, base::Milliseconds(1000), true},
   };
 
   for (size_t i = 0; i < base::size(kFrameParameters); ++i) {
@@ -350,23 +339,18 @@
   EXPECT_EQ(2u, decoder->FrameCount());
   EXPECT_FALSE(decoder->Failed());
   EXPECT_TRUE(decoder->FrameIsReceivedAtIndex(0));
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1000),
-            decoder->FrameDurationAtIndex(0));
+  EXPECT_EQ(base::Milliseconds(1000), decoder->FrameDurationAtIndex(0));
   EXPECT_TRUE(decoder->FrameIsReceivedAtIndex(1));
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(500),
-            decoder->FrameDurationAtIndex(1));
+  EXPECT_EQ(base::Milliseconds(500), decoder->FrameDurationAtIndex(1));
 
   decoder->SetData(data_buffer.get(), true);
   EXPECT_EQ(3u, decoder->FrameCount());
   EXPECT_TRUE(decoder->FrameIsReceivedAtIndex(0));
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1000),
-            decoder->FrameDurationAtIndex(0));
+  EXPECT_EQ(base::Milliseconds(1000), decoder->FrameDurationAtIndex(0));
   EXPECT_TRUE(decoder->FrameIsReceivedAtIndex(1));
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(500),
-            decoder->FrameDurationAtIndex(1));
+  EXPECT_EQ(base::Milliseconds(500), decoder->FrameDurationAtIndex(1));
   EXPECT_TRUE(decoder->FrameIsReceivedAtIndex(2));
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1000),
-            decoder->FrameDurationAtIndex(2));
+  EXPECT_EQ(base::Milliseconds(1000), decoder->FrameDurationAtIndex(2));
 }
 
 TEST(AnimatedWebPTests, updateRequiredPreviousFrameAfterFirstDecode) {
diff --git a/third_party/blink/renderer/platform/instrumentation/histogram_test.cc b/third_party/blink/renderer/platform/instrumentation/histogram_test.cc
index 3967ec8..43cbcf8 100644
--- a/third_party/blink/renderer/platform/instrumentation/histogram_test.cc
+++ b/third_party/blink/renderer/platform/instrumentation/histogram_test.cc
@@ -37,7 +37,7 @@
   {
     ScopedUsHistogramTimer timer(scoped_us_counter,
                                  test_task_runner_->GetMockTickClock());
-    test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(500));
+    test_task_runner_->FastForwardBy(base::Milliseconds(500));
   }
   // 500ms == 500000us
   EXPECT_EQ(500000, scoped_us_counter.Histogram()->SnapshotSamples()->sum());
@@ -49,7 +49,7 @@
   {
     ScopedHighResUsHistogramTimer timer(scoped_us_counter,
                                         test_task_runner_->GetMockTickClock());
-    test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(500));
+    test_task_runner_->FastForwardBy(base::Milliseconds(500));
   }
   int64_t expected = base::TimeTicks::IsHighResolution() ? 500000 : 0;
   EXPECT_EQ(expected, scoped_us_counter.Histogram()->SnapshotSamples()->sum());
diff --git a/third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h b/third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h
index 5d28110..dfff1a2 100644
--- a/third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h
+++ b/third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h
@@ -19,7 +19,7 @@
 using EnabledStateObserver = base::trace_event::TraceLog::EnabledStateObserver;
 
 inline base::TimeTicks ToTraceTimestamp(double seconds) {
-  return base::TimeTicks() + base::TimeDelta::FromSecondsD(seconds);
+  return base::TimeTicks() + base::Seconds(seconds);
 }
 
 // This is to avoid error of passing a chromium time internal value.
diff --git a/third_party/blink/renderer/platform/loader/fetch/buffering_bytes_consumer.cc b/third_party/blink/renderer/platform/loader/fetch/buffering_bytes_consumer.cc
index 60743ac..ba9c3bd 100644
--- a/third_party/blink/renderer/platform/loader/fetch/buffering_bytes_consumer.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/buffering_bytes_consumer.cc
@@ -20,8 +20,7 @@
     scoped_refptr<base::SingleThreadTaskRunner> timer_task_runner) {
   return MakeGarbageCollected<BufferingBytesConsumer>(
       base::PassKey<BufferingBytesConsumer>(), bytes_consumer,
-      std::move(timer_task_runner),
-      base::TimeDelta::FromMilliseconds(kDelayMilliseconds));
+      std::move(timer_task_runner), base::Milliseconds(kDelayMilliseconds));
 }
 
 // static
diff --git a/third_party/blink/renderer/platform/loader/fetch/buffering_bytes_consumer_test.cc b/third_party/blink/renderer/platform/loader/fetch/buffering_bytes_consumer_test.cc
index d77b397..613a85b 100644
--- a/third_party/blink/renderer/platform/loader/fetch/buffering_bytes_consumer_test.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/buffering_bytes_consumer_test.cc
@@ -165,7 +165,7 @@
   EXPECT_EQ(PublicState::kReadableOrWaiting,
             replaying_bytes_consumer->GetPublicState());
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(51));
+  task_environment_.FastForwardBy(base::Milliseconds(51));
   task_runner->RunUntilIdle();
 
   // After the delay expires the underlying consumer should be completely read.
@@ -258,7 +258,7 @@
   auto* bytes_consumer = BufferingBytesConsumer::CreateWithDelay(
       data_pipe_consumer, scheduler::GetSingleThreadTaskRunnerForTesting());
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(51));
+  task_environment_.FastForwardBy(base::Milliseconds(51));
 
   EXPECT_EQ(PublicState::kReadableOrWaiting, bytes_consumer->GetPublicState());
   auto drained_consumer_handle = bytes_consumer->DrainAsDataPipe();
diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc b/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc
index e3b6c44..28beac4 100644
--- a/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc
@@ -40,9 +40,8 @@
 
 static const unsigned kCDefaultCacheCapacity = 8192 * 1024;
 static const base::TimeDelta kCMinDelayBeforeLiveDecodedPrune =
-    base::TimeDelta::FromSeconds(1);
-static const base::TimeDelta kCMaxPruneDeferralDelay =
-    base::TimeDelta::FromMilliseconds(500);
+    base::Seconds(1);
+static const base::TimeDelta kCMaxPruneDeferralDelay = base::Milliseconds(500);
 
 // Percentage of capacity toward which we prune, to avoid immediately pruning
 // again.
diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache_correctness_test.cc b/third_party/blink/renderer/platform/loader/fetch/memory_cache_correctness_test.cc
index e647437f..af47c0c 100644
--- a/third_party/blink/renderer/platform/loader/fetch/memory_cache_correctness_test.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/memory_cache_correctness_test.cc
@@ -58,7 +58,7 @@
 constexpr char kOneDayBeforeOriginalRequest[] = "Wed, 24 May 1977 18:30:00 GMT";
 constexpr char kOneDayAfterOriginalRequest[] = "Fri, 26 May 1977 18:30:00 GMT";
 
-constexpr base::TimeDelta kOneDay = base::TimeDelta::FromDays(1);
+constexpr base::TimeDelta kOneDay = base::Days(1);
 
 }  // namespace
 
@@ -163,7 +163,7 @@
 
   // Advance the clock within the implicit freshness period of this resource
   // before we make a request.
-  AdvanceClock(base::TimeDelta::FromSecondsD(600.));
+  AdvanceClock(base::Seconds(600.));
 
   MockResource* fetched = FetchMockResource();
   EXPECT_EQ(fresh200, fetched);
@@ -179,7 +179,7 @@
 
   // Advance the clock within the freshness period of this resource before we
   // make a request.
-  AdvanceClock(kOneDay - base::TimeDelta::FromSecondsD(15.));
+  AdvanceClock(kOneDay - base::Seconds(15.));
 
   MockResource* fetched = FetchMockResource();
   EXPECT_EQ(fresh200, fetched);
@@ -195,7 +195,7 @@
 
   // Advance the clock within the freshness period of this resource before we
   // make a request.
-  AdvanceClock(base::TimeDelta::FromSecondsD(500.));
+  AdvanceClock(base::Seconds(500.));
 
   MockResource* fetched = FetchMockResource();
   EXPECT_EQ(fresh200, fetched);
@@ -233,7 +233,7 @@
 
   // Advance the clock within the expiredness period of this resource before we
   // make a request.
-  AdvanceClock(kOneDay + base::TimeDelta::FromSecondsD(15.));
+  AdvanceClock(kOneDay + base::Seconds(15.));
 
   MockResource* fetched = FetchMockResource();
   EXPECT_NE(expired200, fetched);
@@ -252,7 +252,7 @@
 
   // Advance the clock within the expiredness period of this resource before we
   // make a request.
-  AdvanceClock(kOneDay + base::TimeDelta::FromSecondsD(15.));
+  AdvanceClock(kOneDay + base::Seconds(15.));
 
   MockResource* fetched = FetchMockResource();
   EXPECT_NE(expired200, fetched);
@@ -272,13 +272,13 @@
 
   // Advance the clock within the freshness period, and make a request to add
   // this resource to the document resources.
-  AdvanceClock(base::TimeDelta::FromSecondsD(15.));
+  AdvanceClock(base::Seconds(15.));
   MockResource* first_fetched = FetchMockResource();
   EXPECT_EQ(expired200, first_fetched);
 
   // Advance the clock within the expiredness period of this resource before we
   // make a request.
-  AdvanceClock(kOneDay + base::TimeDelta::FromSecondsD(15.));
+  AdvanceClock(kOneDay + base::Seconds(15.));
 
   MockResource* fetched = FetchMockResource();
   EXPECT_EQ(expired200, fetched);
@@ -294,7 +294,7 @@
 
   // Advance the clock within the expiredness period of this resource before we
   // make a request.
-  AdvanceClock(base::TimeDelta::FromSecondsD(700.));
+  AdvanceClock(base::Seconds(700.));
 
   MockResource* fetched = FetchMockResource();
   EXPECT_NE(expired200, fetched);
@@ -315,7 +315,7 @@
 
   // Advance the clock within the freshness period of this resource before we
   // make a request.
-  AdvanceClock(kOneDay - base::TimeDelta::FromSecondsD(15.));
+  AdvanceClock(kOneDay - base::Seconds(15.));
 
   MockResource* fetched = FetchMockResource();
   EXPECT_NE(fresh200_nocache, fetched);
@@ -346,7 +346,7 @@
 
   // Advance the clock within the freshness period of this resource before we
   // make a request.
-  AdvanceClock(kOneDay - base::TimeDelta::FromSecondsD(15.));
+  AdvanceClock(kOneDay - base::Seconds(15.));
 
   MockResource* fetched = FetchMockResource();
   EXPECT_NE(fresh200_nostore, fetched);
@@ -379,7 +379,7 @@
 
   // Advance the clock within the freshness period of this resource before we
   // make a request.
-  AdvanceClock(kOneDay - base::TimeDelta::FromSecondsD(15.));
+  AdvanceClock(kOneDay - base::Seconds(15.));
 
   MockResource* fetched = FetchMockResource();
   EXPECT_NE(fresh200_must_revalidate, fetched);
@@ -420,7 +420,7 @@
   first_resource->FinishForTest();
   AddResourceToMemoryCache(first_resource);
 
-  AdvanceClock(base::TimeDelta::FromSecondsD(500.));
+  AdvanceClock(base::Seconds(500.));
 
   MockResource* fetched = FetchMockResource();
   EXPECT_EQ(first_resource, fetched);
@@ -459,7 +459,7 @@
   first_resource->FinishForTest();
   AddResourceToMemoryCache(first_resource);
 
-  AdvanceClock(base::TimeDelta::FromSecondsD(500.));
+  AdvanceClock(base::Seconds(500.));
 
   MockResource* fetched = FetchMockResource();
   EXPECT_NE(first_resource, fetched);
@@ -516,7 +516,7 @@
   first_resource->FinishForTest();
   AddResourceToMemoryCache(first_resource);
 
-  AdvanceClock(base::TimeDelta::FromSecondsD(500.));
+  AdvanceClock(base::Seconds(500.));
 
   RawResource* fetched = FetchRawResource();
   EXPECT_NE(first_resource, fetched);
@@ -557,7 +557,7 @@
   first_resource->FinishForTest();
   AddResourceToMemoryCache(first_resource);
 
-  AdvanceClock(base::TimeDelta::FromSecondsD(500.));
+  AdvanceClock(base::Seconds(500.));
 
   MockResource* fetched = FetchMockResource();
   EXPECT_EQ(first_resource, fetched);
@@ -597,7 +597,7 @@
   first_resource->FinishForTest();
   AddResourceToMemoryCache(first_resource);
 
-  AdvanceClock(base::TimeDelta::FromSecondsD(500.));
+  AdvanceClock(base::Seconds(500.));
 
   MockResource* fetched = FetchMockResource();
   EXPECT_EQ(first_resource, fetched);
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc
index e7f7da4..0b7db08 100644
--- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc
@@ -99,12 +99,10 @@
 
 namespace {
 
-constexpr base::TimeDelta kKeepaliveLoadersTimeout =
-    base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kKeepaliveLoadersTimeout = base::Seconds(30);
 
 // Timeout for link preloads to be used after window.onload
-static constexpr base::TimeDelta kUnusedPreloadTimeout =
-    base::TimeDelta::FromSeconds(3);
+static constexpr base::TimeDelta kUnusedPreloadTimeout = base::Seconds(3);
 
 #define RESOURCE_HISTOGRAM_PREFIX "Blink.MemoryCache.RevalidationPolicy."
 
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_load_scheduler.cc b/third_party/blink/renderer/platform/loader/fetch/resource_load_scheduler.cc
index dc9cd977..1261130 100644
--- a/third_party/blink/renderer/platform/loader/fetch/resource_load_scheduler.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/resource_load_scheduler.cc
@@ -405,7 +405,7 @@
   if (is_console_info_shown_ || pending_request_map_.IsEmpty())
     return;
 
-  const base::Time limit = clock_->Now() - base::TimeDelta::FromSeconds(60);
+  const base::Time limit = clock_->Now() - base::Seconds(60);
   if ((pending_queue_update_times_[ThrottleOption::kThrottleable] >= limit ||
        IsPendingRequestEffectivelyEmpty(ThrottleOption::kThrottleable)) &&
       (pending_queue_update_times_[ThrottleOption::kStoppable] >= limit ||
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_load_scheduler_test.cc b/third_party/blink/renderer/platform/loader/fetch/resource_load_scheduler_test.cc
index 9a14839..824866fc 100644
--- a/third_party/blink/renderer/platform/loader/fetch/resource_load_scheduler_test.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/resource_load_scheduler_test.cc
@@ -702,7 +702,7 @@
 
   // Advance current time a little and triggers an life cycle event, but it
   // still won't awake the warning logic.
-  test_task_runner->FastForwardBy(base::TimeDelta::FromSeconds(50));
+  test_task_runner->FastForwardBy(base::Seconds(50));
   Scheduler()->OnLifecycleStateChanged(
       scheduler::SchedulingLifecycleState::kNotThrottled);
   EXPECT_FALSE(GetConsoleLogger()->HasMessage());
@@ -711,7 +711,7 @@
 
   // Modify current time to awake the console warning logic, and the second
   // client should be used for console logging.
-  test_task_runner->FastForwardBy(base::TimeDelta::FromSeconds(15));
+  test_task_runner->FastForwardBy(base::Seconds(15));
   Scheduler()->OnLifecycleStateChanged(
       scheduler::SchedulingLifecycleState::kNotThrottled);
   EXPECT_TRUE(GetConsoleLogger()->HasMessage());
@@ -733,7 +733,7 @@
   Scheduler()->SetOutstandingLimitForTesting(2, 5);
 
   // Sets the RTT.
-  Scheduler()->SetHttpRttForTesting(base::TimeDelta::FromMilliseconds(1000));
+  Scheduler()->SetHttpRttForTesting(base::Milliseconds(1000));
 
   // Push 2 requests, 1 non-multiplexed request and the other is multiplexed.
   MockClient* client1 = MakeGarbageCollected<MockClient>();
@@ -788,7 +788,7 @@
   Scheduler()->SetOutstandingLimitForTesting(2, 1024);
 
   // Sets the RTT as a slow connection.
-  Scheduler()->SetHttpRttForTesting(base::TimeDelta::FromMilliseconds(5000));
+  Scheduler()->SetHttpRttForTesting(base::Milliseconds(5000));
 
   // Push three requests.
   MockClient* client1 = MakeGarbageCollected<MockClient>();
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_response.cc b/third_party/blink/renderer/platform/loader/fetch/resource_response.cc
index 286aaa18..e168056 100644
--- a/third_party/blink/renderer/platform/loader/fetch/resource_response.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/resource_response.cc
@@ -410,7 +410,7 @@
     if (!ok) {
       age_ = absl::nullopt;
     } else {
-      age_ = base::TimeDelta::FromSecondsD(seconds);
+      age_ = base::Seconds(seconds);
     }
     have_parsed_age_header_ = true;
   }
diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/mojo_url_loader_client.cc b/third_party/blink/renderer/platform/loader/fetch/url_loader/mojo_url_loader_client.cc
index 82aa7a9..d61e2f7 100644
--- a/third_party/blink/renderer/platform/loader/fetch/url_loader/mojo_url_loader_client.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/url_loader/mojo_url_loader_client.cc
@@ -33,7 +33,7 @@
 
 constexpr size_t kDefaultMaxBufferedBodyBytesPerRequest = 100 * 1000;
 constexpr base::TimeDelta kGracePeriodToFinishLoadingWhileInBackForwardCache =
-    base::TimeDelta::FromSeconds(60);
+    base::Seconds(60);
 
 }  // namespace
 
@@ -290,7 +290,7 @@
     const GURL& request_url,
     WebBackForwardCacheLoaderHelper back_forward_cache_loader_helper)
     : back_forward_cache_timeout_(
-          base::TimeDelta::FromSeconds(GetLoadingTasksUnfreezableParamAsInt(
+          base::Seconds(GetLoadingTasksUnfreezableParamAsInt(
               "grace_period_to_finish_loading_in_seconds",
               static_cast<int>(
                   kGracePeriodToFinishLoadingWhileInBackForwardCache
diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/sync_load_context_unittest.cc b/third_party/blink/renderer/platform/loader/fetch/url_loader/sync_load_context_unittest.cc
index 461f156..1f96d9c3 100644
--- a/third_party/blink/renderer/platform/loader/fetch/url_loader/sync_load_context_unittest.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/url_loader/sync_load_context_unittest.cc
@@ -110,7 +110,7 @@
             WebVector<std::unique_ptr<URLLoaderThrottle>>(), out_response,
             context_for_redirect, redirect_or_response_event,
             nullptr /* terminate_sync_load_event */,
-            base::TimeDelta::FromSeconds(60) /* timeout */,
+            base::Seconds(60) /* timeout */,
             mojo::NullRemote() /* download_to_blob_registry */,
             WebVector<WebString>() /* cors_exempt_header_list */,
             std::make_unique<ResourceLoadInfoNotifierWrapper>(
@@ -130,7 +130,7 @@
         request, std::make_unique<MockPendingSharedURLLoaderFactory>(),
         response, context_for_redirect, redirect_or_response_event,
         nullptr /* terminate_sync_load_event */,
-        base::TimeDelta::FromSeconds(60) /* timeout */,
+        base::Seconds(60) /* timeout */,
         mojo::NullRemote() /* download_to_blob_registry */, task_runner);
 
     auto mock_resource_request_sender =
diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/web_resource_request_sender_unittest.cc b/third_party/blink/renderer/platform/loader/fetch/url_loader/web_resource_request_sender_unittest.cc
index 2d0c8c0..f8c748cc 100644
--- a/third_party/blink/renderer/platform/loader/fetch/url_loader/web_resource_request_sender_unittest.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/url_loader/web_resource_request_sender_unittest.cc
@@ -67,7 +67,7 @@
 
 // Returns a fake TimeTicks based on the given microsecond offset.
 base::TimeTicks TicksFromMicroseconds(int64_t micros) {
-  return base::TimeTicks() + base::TimeDelta::FromMicroseconds(micros);
+  return base::TimeTicks() + base::Microseconds(micros);
 }
 
 }  // namespace
@@ -490,7 +490,7 @@
     // We need to put something non-null time, otherwise no values will be
     // copied.
     response_head->load_timing.request_start_time =
-        base::Time() + base::TimeDelta::FromSeconds(99);
+        base::Time() + base::Seconds(99);
     client->OnReceiveResponse(std::move(response_head));
 
     mojo::ScopedDataPipeProducerHandle producer_handle;
@@ -507,7 +507,7 @@
 
     const base::TimeTicks until = base::TimeTicks::Now() + delay;
     while (base::TimeTicks::Now() < until)
-      base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(1));
+      base::PlatformThread::Sleep(base::Milliseconds(1));
     base::RunLoop().RunUntilIdle();
     loader_and_clients_.clear();
   }
@@ -523,8 +523,7 @@
 };
 
 TEST_F(CompletionTimeConversionTest, NullCompletionTimestamp) {
-  const auto remote_request_start =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(4);
+  const auto remote_request_start = base::TimeTicks() + base::Milliseconds(4);
 
   PerformTest(remote_request_start, base::TimeTicks(), base::TimeDelta());
 
@@ -534,8 +533,7 @@
 TEST_F(CompletionTimeConversionTest, RemoteRequestStartIsUnavailable) {
   base::TimeTicks begin = base::TimeTicks::Now();
 
-  const auto remote_completion_time =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(8);
+  const auto remote_completion_time = base::TimeTicks() + base::Milliseconds(8);
 
   PerformTest(base::TimeTicks(), remote_completion_time, base::TimeDelta());
 
@@ -545,17 +543,15 @@
 }
 
 TEST_F(CompletionTimeConversionTest, Convert) {
-  const auto remote_request_start =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(4);
+  const auto remote_request_start = base::TimeTicks() + base::Milliseconds(4);
 
   const auto remote_completion_time =
-      remote_request_start + base::TimeDelta::FromMilliseconds(3);
+      remote_request_start + base::Milliseconds(3);
 
   PerformTest(remote_request_start, remote_completion_time,
-              base::TimeDelta::FromMilliseconds(15));
+              base::Milliseconds(15));
 
-  EXPECT_EQ(completion_time(),
-            request_start() + base::TimeDelta::FromMilliseconds(3));
+  EXPECT_EQ(completion_time(), request_start() + base::Milliseconds(3));
 }
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/platform/media/buffered_data_source_host_impl.cc b/third_party/blink/renderer/platform/media/buffered_data_source_host_impl.cc
index c4ea2a8..462f989 100644
--- a/third_party/blink/renderer/platform/media/buffered_data_source_host_impl.cc
+++ b/third_party/blink/renderer/platform/media/buffered_data_source_host_impl.cc
@@ -11,8 +11,7 @@
 // We want a relatively small window for estimating bandwidth,
 // that way we don't need to worry too much about seeks and pause
 // throwing off the estimates.
-constexpr base::TimeDelta kDownloadHistoryWindowSeconds =
-    base::TimeDelta::FromSecondsD(10.0);
+constexpr base::TimeDelta kDownloadHistoryWindowSeconds = base::Seconds(10.0);
 
 // Limit the number of entries in the rate estimator queue.
 // 1024 entries should be more than enough.
@@ -95,7 +94,7 @@
     return base::TimeDelta();
   if (position > 0.99)
     return duration;
-  return base::TimeDelta::FromMilliseconds(
+  return base::Milliseconds(
       static_cast<int64_t>(position * duration.InMilliseconds()));
 }
 
diff --git a/third_party/blink/renderer/platform/media/buffered_data_source_host_impl_unittest.cc b/third_party/blink/renderer/platform/media/buffered_data_source_host_impl_unittest.cc
index 0c49f72..9cfeb541 100644
--- a/third_party/blink/renderer/platform/media/buffered_data_source_host_impl_unittest.cc
+++ b/third_party/blink/renderer/platform/media/buffered_data_source_host_impl_unittest.cc
@@ -22,9 +22,7 @@
   BufferedDataSourceHostImplTest& operator=(
       const BufferedDataSourceHostImplTest&) = delete;
 
-  void Add() {
-    host_.AddBufferedTimeRanges(&ranges_, base::TimeDelta::FromSeconds(10));
-  }
+  void Add() { host_.AddBufferedTimeRanges(&ranges_, base::Seconds(10)); }
 
   void ProgressCallback() { progress_callback_calls_++; }
 
@@ -46,18 +44,18 @@
   host_.SetTotalBytes(100);
   Add();
   EXPECT_EQ(1u, ranges_.size());
-  EXPECT_EQ(base::TimeDelta::FromSeconds(1), ranges_.start(0));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(2), ranges_.end(0));
+  EXPECT_EQ(base::Seconds(1), ranges_.start(0));
+  EXPECT_EQ(base::Seconds(2), ranges_.end(0));
 }
 
 TEST_F(BufferedDataSourceHostImplTest, AddBufferedTimeRanges_Merges) {
-  ranges_.Add(base::TimeDelta::FromSeconds(0), base::TimeDelta::FromSeconds(1));
+  ranges_.Add(base::Seconds(0), base::Seconds(1));
   host_.AddBufferedByteRange(10, 20);
   host_.SetTotalBytes(100);
   Add();
   EXPECT_EQ(1u, ranges_.size());
-  EXPECT_EQ(base::TimeDelta::FromSeconds(0), ranges_.start(0));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(2), ranges_.end(0));
+  EXPECT_EQ(base::Seconds(0), ranges_.start(0));
+  EXPECT_EQ(base::Seconds(2), ranges_.end(0));
 }
 
 TEST_F(BufferedDataSourceHostImplTest, AddBufferedTimeRanges_Snaps) {
@@ -65,8 +63,8 @@
   host_.SetTotalBytes(1000);
   Add();
   EXPECT_EQ(1u, ranges_.size());
-  EXPECT_EQ(base::TimeDelta::FromSeconds(0), ranges_.start(0));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(10), ranges_.end(0));
+  EXPECT_EQ(base::Seconds(0), ranges_.start(0));
+  EXPECT_EQ(base::Seconds(10), ranges_.end(0));
 }
 
 TEST_F(BufferedDataSourceHostImplTest, SetTotalBytes) {
@@ -90,22 +88,22 @@
   EXPECT_EQ(100000,
             host_.UnloadedBytesInInterval(Interval<int64_t>(0, 100000)));
   host_.AddBufferedByteRange(0, 10000);
-  clock_.Advance(base::TimeDelta::FromSeconds(1));
+  clock_.Advance(base::Seconds(1));
   host_.AddBufferedByteRange(10000, 20000);
-  clock_.Advance(base::TimeDelta::FromSeconds(1));
+  clock_.Advance(base::Seconds(1));
   host_.AddBufferedByteRange(20000, 30000);
-  clock_.Advance(base::TimeDelta::FromSeconds(1));
+  clock_.Advance(base::Seconds(1));
   host_.AddBufferedByteRange(30000, 40000);
-  clock_.Advance(base::TimeDelta::FromSeconds(1));
+  clock_.Advance(base::Seconds(1));
   host_.AddBufferedByteRange(40000, 50000);
-  clock_.Advance(base::TimeDelta::FromSeconds(1));
+  clock_.Advance(base::Seconds(1));
   EXPECT_EQ(50000, host_.UnloadedBytesInInterval(Interval<int64_t>(0, 100000)));
   host_.AddBufferedByteRange(50000, 60000);
-  clock_.Advance(base::TimeDelta::FromSeconds(1));
+  clock_.Advance(base::Seconds(1));
   host_.AddBufferedByteRange(60000, 70000);
-  clock_.Advance(base::TimeDelta::FromSeconds(1));
+  clock_.Advance(base::Seconds(1));
   host_.AddBufferedByteRange(70000, 80000);
-  clock_.Advance(base::TimeDelta::FromSeconds(1));
+  clock_.Advance(base::Seconds(1));
   host_.AddBufferedByteRange(80000, 90000);
   // Download rate is allowed to be estimated low, but not high.
   EXPECT_LE(host_.DownloadRate(), 10000.0f);
@@ -113,24 +111,24 @@
   EXPECT_EQ(10000, host_.UnloadedBytesInInterval(Interval<int64_t>(0, 100000)));
   EXPECT_EQ(9, progress_callback_calls_);
   // If the video is 0.1s we can't play through.
-  EXPECT_FALSE(host_.CanPlayThrough(base::TimeDelta(),
-                                    base::TimeDelta::FromSecondsD(0.01), 1.0));
+  EXPECT_FALSE(
+      host_.CanPlayThrough(base::TimeDelta(), base::Seconds(0.01), 1.0));
   // If the video is 1000s we can play through.
-  EXPECT_TRUE(host_.CanPlayThrough(base::TimeDelta(),
-                                   base::TimeDelta::FromSecondsD(1000.0), 1.0));
+  EXPECT_TRUE(
+      host_.CanPlayThrough(base::TimeDelta(), base::Seconds(1000.0), 1.0));
   // No more downloads for 1000 seconds...
-  clock_.Advance(base::TimeDelta::FromSeconds(1000));
+  clock_.Advance(base::Seconds(1000));
   // Can't play through..
-  EXPECT_FALSE(host_.CanPlayThrough(base::TimeDelta(),
-                                    base::TimeDelta::FromSecondsD(100.0), 1.0));
+  EXPECT_FALSE(
+      host_.CanPlayThrough(base::TimeDelta(), base::Seconds(100.0), 1.0));
   host_.AddBufferedByteRange(90000, 100000);
-  clock_.Advance(base::TimeDelta::FromSeconds(1));
+  clock_.Advance(base::Seconds(1));
   EXPECT_EQ(0, host_.UnloadedBytesInInterval(Interval<int64_t>(0, 100000)));
 
   // Media is fully downloaded, so we can certainly play through, even if
   // we only have 0.01 seconds to do it.
-  EXPECT_TRUE(host_.CanPlayThrough(base::TimeDelta(),
-                                   base::TimeDelta::FromSecondsD(0.01), 1.0));
+  EXPECT_TRUE(
+      host_.CanPlayThrough(base::TimeDelta(), base::Seconds(0.01), 1.0));
 }
 
 TEST_F(BufferedDataSourceHostImplTest, CanPlayThroughSmallAdvances) {
@@ -138,7 +136,7 @@
   EXPECT_EQ(20000, host_.UnloadedBytesInInterval(Interval<int64_t>(0, 20000)));
   for (int j = 1; j <= 100; j++) {
     host_.AddBufferedByteRange(0, j * 100);
-    clock_.Advance(base::TimeDelta::FromSecondsD(0.01));
+    clock_.Advance(base::Seconds(0.01));
   }
   // Download rate is allowed to be estimated low, but not high.
   EXPECT_LE(host_.DownloadRate(), 10000.0f);
@@ -146,11 +144,11 @@
   EXPECT_EQ(10000, host_.UnloadedBytesInInterval(Interval<int64_t>(0, 20000)));
   EXPECT_EQ(100, progress_callback_calls_);
   // If the video is 0.1s we can't play through.
-  EXPECT_FALSE(host_.CanPlayThrough(base::TimeDelta(),
-                                    base::TimeDelta::FromSecondsD(0.01), 1.0));
+  EXPECT_FALSE(
+      host_.CanPlayThrough(base::TimeDelta(), base::Seconds(0.01), 1.0));
   // If the video is 1000s we can play through.
-  EXPECT_TRUE(host_.CanPlayThrough(base::TimeDelta(),
-                                   base::TimeDelta::FromSecondsD(1000.0), 1.0));
+  EXPECT_TRUE(
+      host_.CanPlayThrough(base::TimeDelta(), base::Seconds(1000.0), 1.0));
 }
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/platform/media/cache_util.cc b/third_party/blink/renderer/platform/media/cache_util.cc
index ec24b24..0eeee7e 100644
--- a/third_party/blink/renderer/platform/media/cache_util.cc
+++ b/third_party/blink/renderer/platform/media/cache_util.cc
@@ -97,7 +97,7 @@
     return base::TimeDelta();
 
   // Max cache timeout ~= 1 month.
-  base::TimeDelta ret = base::TimeDelta::FromDays(30);
+  base::TimeDelta ret = base::Days(30);
 
   const char kMaxAgePrefix[] = "max-age=";
   const size_t kMaxAgePrefixLen = base::size(kMaxAgePrefix) - 1;
diff --git a/third_party/blink/renderer/platform/media/multi_buffer.cc b/third_party/blink/renderer/platform/media/multi_buffer.cc
index c1ece9e..5f5134a 100644
--- a/third_party/blink/renderer/platform/media/multi_buffer.cc
+++ b/third_party/blink/renderer/platform/media/multi_buffer.cc
@@ -112,7 +112,7 @@
   if (Pruneable() && !background_pruning_pending_) {
     task_runner_->PostDelayedTask(
         FROM_HERE, base::BindOnce(&MultiBuffer::GlobalLRU::PruneTask, this),
-        base::TimeDelta::FromSeconds(kBlockPruneInterval));
+        base::Seconds(kBlockPruneInterval));
     background_pruning_pending_ = true;
   }
 }
diff --git a/third_party/blink/renderer/platform/media/multi_buffer_data_source.cc b/third_party/blink/renderer/platform/media/multi_buffer_data_source.cc
index fa51f3f..fcc1a116 100644
--- a/third_party/blink/renderer/platform/media/multi_buffer_data_source.cc
+++ b/third_party/blink/renderer/platform/media/multi_buffer_data_source.cc
@@ -58,7 +58,7 @@
 const int kUpdateBufferSizeFrequency = 32;
 
 // How long to we delay a seek after a read?
-constexpr base::TimeDelta kSeekDelay = base::TimeDelta::FromMilliseconds(20);
+constexpr base::TimeDelta kSeekDelay = base::Milliseconds(20);
 
 }  // namespace
 
diff --git a/third_party/blink/renderer/platform/media/multi_buffer_unittest.cc b/third_party/blink/renderer/platform/media/multi_buffer_unittest.cc
index c324b5d..c77c4a3 100644
--- a/third_party/blink/renderer/platform/media/multi_buffer_unittest.cc
+++ b/third_party/blink/renderer/platform/media/multi_buffer_unittest.cc
@@ -235,7 +235,7 @@
     // Make sure we have nothing left to prune.
     lru_->Prune(1000000);
     // Run the outstanding callback to make sure everything is freed.
-    task_runner_->Sleep(base::TimeDelta::FromSeconds(30));
+    task_runner_->Sleep(base::Seconds(30));
   }
 
   void Advance() {
@@ -460,12 +460,12 @@
   max_size -= 3;
 
   // There should be no change after 29 seconds.
-  task_runner_->Sleep(base::TimeDelta::FromSeconds(29));
+  task_runner_->Sleep(base::Seconds(29));
   EXPECT_EQ(current_size, lru_->Size());
   EXPECT_TRUE(lru_->Pruneable());
 
   // After 30 seconds, pruning should have happened.
-  task_runner_->Sleep(base::TimeDelta::FromSeconds(30));
+  task_runner_->Sleep(base::Seconds(30));
   current_size -= 3;
   EXPECT_EQ(current_size, lru_->Size());
   EXPECT_FALSE(lru_->Pruneable());
@@ -474,7 +474,7 @@
   lru_->IncrementMaxSize(-max_size);
 
   // After another 30 seconds, everything should be pruned.
-  task_runner_->Sleep(base::TimeDelta::FromSeconds(30));
+  task_runner_->Sleep(base::Seconds(30));
   EXPECT_EQ(0, lru_->Size());
   EXPECT_FALSE(lru_->Pruneable());
 }
diff --git a/third_party/blink/renderer/platform/media/power_status_helper_unittest.cc b/third_party/blink/renderer/platform/media/power_status_helper_unittest.cc
index 6a57f48..d6a77658 100644
--- a/third_party/blink/renderer/platform/media/power_status_helper_unittest.cc
+++ b/third_party/blink/renderer/platform/media/power_status_helper_unittest.cc
@@ -206,7 +206,7 @@
   monitor_.ProvidePowerUpdate(false, baseline_level);
 
   // This should trigger recording.
-  base::TimeDelta time_delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta time_delta = base::Seconds(1);
   FastForward(time_delta);
 
   EXPECT_CALL(monitor_, DidQueryNextStatus()).Times(1);
@@ -245,7 +245,7 @@
   monitor_.ProvidePowerUpdate(false, baseline_level);
 
   // This should trigger recording.
-  base::TimeDelta time_delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta time_delta = base::Seconds(1);
   FastForward(time_delta);
   EXPECT_CALL(monitor_, DidQueryNextStatus()).Times(1);
   monitor_.ProvidePowerUpdate(false, second_level);
@@ -292,7 +292,7 @@
   monitor_.ProvidePowerUpdate(false, baseline_level);
 
   // This should trigger recording.
-  base::TimeDelta time_delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta time_delta = base::Seconds(1);
   FastForward(time_delta);
   EXPECT_CALL(monitor_, DidQueryNextStatus()).Times(1);
   monitor_.ProvidePowerUpdate(false, second_level);
diff --git a/third_party/blink/renderer/platform/media/resource_multi_buffer_data_provider.cc b/third_party/blink/renderer/platform/media/resource_multi_buffer_data_provider.cc
index 27c045a7..a58ca4b 100644
--- a/third_party/blink/renderer/platform/media/resource_multi_buffer_data_provider.cc
+++ b/third_party/blink/renderer/platform/media/resource_multi_buffer_data_provider.cc
@@ -443,7 +443,7 @@
           FROM_HERE,
           base::BindOnce(&ResourceMultiBufferDataProvider::Start,
                          weak_factory_.GetWeakPtr()),
-          base::TimeDelta::FromMilliseconds(kLoaderPartialRetryDelayMs));
+          base::Milliseconds(kLoaderPartialRetryDelayMs));
       return;
     } else {
       url_data_->Fail();
@@ -475,8 +475,8 @@
         FROM_HERE,
         base::BindOnce(&ResourceMultiBufferDataProvider::Start,
                        weak_factory_.GetWeakPtr()),
-        base::TimeDelta::FromMilliseconds(
-            kLoaderFailedRetryDelayMs + kAdditionalDelayPerRetryMs * retries_));
+        base::Milliseconds(kLoaderFailedRetryDelayMs +
+                           kAdditionalDelayPerRetryMs * retries_));
   } else {
     // We don't need to continue loading after failure.
     // Note that calling Fail() will most likely delete this object.
diff --git a/third_party/blink/renderer/platform/media/smoothness_helper.cc b/third_party/blink/renderer/platform/media/smoothness_helper.cc
index f8ede690..c1b412c 100644
--- a/third_party/blink/renderer/platform/media/smoothness_helper.cc
+++ b/third_party/blink/renderer/platform/media/smoothness_helper.cc
@@ -17,12 +17,10 @@
 using ::media::learning::LearningTaskController;
 using ::media::learning::TargetValue;
 
-static constexpr base::TimeDelta kSegmentSize =
-    base::TimeDelta::FromSeconds(5);
+static constexpr base::TimeDelta kSegmentSize = base::Seconds(5);
 
 // Maximum distance between NNRs for them to be consecutive.
-static constexpr base::TimeDelta kMaxNNRDistance =
-    base::TimeDelta::FromSeconds(60);
+static constexpr base::TimeDelta kMaxNNRDistance = base::Seconds(60);
 
 // Max proportion of dropped frames in a window before we call it "not smooth".
 static constexpr float kMaxDroppedFramesPerWindow = 0.2;
diff --git a/third_party/blink/renderer/platform/media/smoothness_helper_unittest.cc b/third_party/blink/renderer/platform/media/smoothness_helper_unittest.cc
index c693c2f..615c076 100644
--- a/third_party/blink/renderer/platform/media/smoothness_helper_unittest.cc
+++ b/third_party/blink/renderer/platform/media/smoothness_helper_unittest.cc
@@ -192,7 +192,7 @@
   // Fast forward by a lot, so that the next NNR isn't consecutive.  Nothing
   // should be reported, because it's less than the current maximum.
   EXPECT_CALL(*nnr_ltc_, UpdateDefaultTarget(_, OPT_TARGET(_))).Times(0);
-  FastForwardBy(base::TimeDelta::FromSeconds(1000));
+  FastForwardBy(base::Seconds(1000));
   helper_->NotifyNNR();
   // It might be okay if this reported 2, since it's a tie.
   helper_->NotifyNNR();
diff --git a/third_party/blink/renderer/platform/media/url_index.cc b/third_party/blink/renderer/platform/media/url_index.cc
index 6d1cc9e..2512ceac 100644
--- a/third_party/blink/renderer/platform/media/url_index.cc
+++ b/third_party/blink/renderer/platform/media/url_index.cc
@@ -184,8 +184,7 @@
   // When ranges are not supported, we cannot re-use cached data.
   if (valid_until_ > now)
     return true;
-  if (now - last_used_ <
-      base::TimeDelta::FromSeconds(kUrlMappingTimeoutSeconds))
+  if (now - last_used_ < base::Seconds(kUrlMappingTimeoutSeconds))
     return true;
   return false;
 }
diff --git a/third_party/blink/renderer/platform/media/url_index_unittest.cc b/third_party/blink/renderer/platform/media/url_index_unittest.cc
index 094f1cd..85c9351 100644
--- a/third_party/blink/renderer/platform/media/url_index_unittest.cc
+++ b/third_party/blink/renderer/platform/media/url_index_unittest.cc
@@ -91,13 +91,13 @@
   EXPECT_TRUE(a->cacheable());
 
   base::Time now = base::Time::Now();
-  base::Time valid_until = now + base::TimeDelta::FromSeconds(500);
+  base::Time valid_until = now + base::Seconds(500);
   a->set_valid_until(valid_until);
   a->set_range_supported();
   EXPECT_EQ(valid_until, a->valid_until());
   EXPECT_TRUE(a->Valid());
 
-  base::Time last_modified = now - base::TimeDelta::FromSeconds(500);
+  base::Time last_modified = now - base::Seconds(500);
   a->set_last_modified(last_modified);
   EXPECT_EQ(last_modified, a->last_modified());
 }
@@ -118,8 +118,8 @@
   EXPECT_NE(a, c);
   EXPECT_FALSE(a->Valid());
   base::Time now = base::Time::Now();
-  base::Time last_modified = now - base::TimeDelta::FromSeconds(500);
-  base::Time valid_until = now + base::TimeDelta::FromSeconds(500);
+  base::Time last_modified = now - base::Seconds(500);
+  base::Time valid_until = now + base::Seconds(500);
 
   // Not sharable yet. (no ranges)
   EXPECT_EQ(a, url_index_.TryInsert(a));
@@ -138,7 +138,7 @@
   EXPECT_EQ(a, GetByUrl(url, UrlData::CORS_UNSPECIFIED));
 
   // |a| becomes expired...
-  a->set_valid_until(now - base::TimeDelta::FromSeconds(100));
+  a->set_valid_until(now - base::Seconds(100));
   EXPECT_FALSE(a->Valid());
   scoped_refptr<UrlData> b = GetByUrl(url, UrlData::CORS_UNSPECIFIED);
   EXPECT_NE(a, b);
diff --git a/third_party/blink/renderer/platform/media/video_decode_stats_reporter.cc b/third_party/blink/renderer/platform/media/video_decode_stats_reporter.cc
index 25a1a1cd..a035002 100644
--- a/third_party/blink/renderer/platform/media/video_decode_stats_reporter.cc
+++ b/third_party/blink/renderer/platform/media/video_decode_stats_reporter.cc
@@ -23,10 +23,8 @@
     absl::optional<media::CdmConfig> cdm_config,
     scoped_refptr<base::SingleThreadTaskRunner> task_runner,
     const base::TickClock* tick_clock)
-    : kRecordingInterval(
-          base::TimeDelta::FromMilliseconds(kRecordingIntervalMs)),
-      kTinyFpsWindowDuration(
-          base::TimeDelta::FromMilliseconds(kTinyFpsWindowMs)),
+    : kRecordingInterval(base::Milliseconds(kRecordingIntervalMs)),
+      kTinyFpsWindowDuration(base::Milliseconds(kTinyFpsWindowMs)),
       recorder_remote_(std::move(recorder_remote)),
       get_pipeline_stats_cb_(std::move(get_pipeline_stats_cb)),
       codec_profile_(codec_profile),
diff --git a/third_party/blink/renderer/platform/media/video_decode_stats_reporter_unittest.cc b/third_party/blink/renderer/platform/media/video_decode_stats_reporter_unittest.cc
index b0250a13..b767393 100644
--- a/third_party/blink/renderer/platform/media/video_decode_stats_reporter_unittest.cc
+++ b/third_party/blink/renderer/platform/media/video_decode_stats_reporter_unittest.cc
@@ -66,7 +66,7 @@
   stats.video_frames_decoded = frames_decoded;
   stats.video_frames_dropped = frames_dropped;
   stats.video_frames_decoded_power_efficient = power_efficient_decoded_frames;
-  stats.video_frame_duration_average = base::TimeDelta::FromSecondsD(1.0 / fps);
+  stats.video_frame_duration_average = base::Seconds(1.0 / fps);
   return stats;
 }
 
@@ -286,7 +286,7 @@
         // Generally FPS is stabilized with a timer of ~3x the average frame
         // duration.
         base::TimeDelta frame_druation =
-            base::TimeDelta::FromSecondsD(1.0 / pipeline_framerate_);
+            base::Seconds(1.0 / pipeline_framerate_);
         EXPECT_EQ(CurrentStatsCbInterval(), frame_druation * 3);
       } else {
         // If the playback is struggling we will do it more slowly to avoid
@@ -381,11 +381,9 @@
 };
 
 const base::TimeDelta VideoDecodeStatsReporterTest::kRecordingInterval =
-    base::TimeDelta::FromMilliseconds(
-        VideoDecodeStatsReporter::kRecordingIntervalMs);
+    base::Milliseconds(VideoDecodeStatsReporter::kRecordingIntervalMs);
 const base::TimeDelta VideoDecodeStatsReporterTest::kTinyFpsWindowDuration =
-    base::TimeDelta::FromMilliseconds(
-        VideoDecodeStatsReporter::kTinyFpsWindowMs);
+    base::Milliseconds(VideoDecodeStatsReporter::kTinyFpsWindowMs);
 
 TEST_F(VideoDecodeStatsReporterTest, RecordWhilePlaying) {
   StartPlayingAndStabilizeFramerate();
@@ -671,8 +669,7 @@
   int stable_fps_samples = 1;
 
   // Now advance time to make it half way through framerate stabilization.
-  base::TimeDelta frame_duration =
-      base::TimeDelta::FromSecondsD(1.0 / pipeline_framerate_);
+  base::TimeDelta frame_duration = base::Seconds(1.0 / pipeline_framerate_);
   for (; stable_fps_samples < kRequiredStableFpsSamples / 2;
        stable_fps_samples++) {
     // The timer runs at 3x the frame duration when detecting framerate to
diff --git a/third_party/blink/renderer/platform/media/video_frame_compositor.cc b/third_party/blink/renderer/platform/media/video_frame_compositor.cc
index 2ccbc4b..87eaed8 100644
--- a/third_party/blink/renderer/platform/media/video_frame_compositor.cc
+++ b/third_party/blink/renderer/platform/media/video_frame_compositor.cc
@@ -36,13 +36,13 @@
       tick_clock_(base::DefaultTickClock::GetInstance()),
       background_rendering_timer_(
           FROM_HERE,
-          base::TimeDelta::FromMilliseconds(kBackgroundRenderingTimeoutMs),
+          base::Milliseconds(kBackgroundRenderingTimeoutMs),
           base::BindRepeating(&VideoFrameCompositor::BackgroundRender,
                               base::Unretained(this),
                               RenderingMode::kBackground)),
       force_begin_frames_timer_(
           FROM_HERE,
-          base::TimeDelta::FromMilliseconds(kForceBeginFramesTimeoutMs),
+          base::Milliseconds(kForceBeginFramesTimeoutMs),
           base::BindRepeating(&VideoFrameCompositor::StopForceBeginFrames,
                               base::Unretained(this))),
       submitter_(std::move(submitter)) {
@@ -272,7 +272,7 @@
   const base::TimeDelta interval = now - last_background_render_;
 
   // Cap updates to 250Hz which should be more than enough for everyone.
-  if (interval < base::TimeDelta::FromMilliseconds(4))
+  if (interval < base::Milliseconds(4))
     return;
 
   {
diff --git a/third_party/blink/renderer/platform/media/video_frame_compositor_unittest.cc b/third_party/blink/renderer/platform/media/video_frame_compositor_unittest.cc
index 1056847e..6269a62 100644
--- a/third_party/blink/renderer/platform/media/video_frame_compositor_unittest.cc
+++ b/third_party/blink/renderer/platform/media/video_frame_compositor_unittest.cc
@@ -218,7 +218,7 @@
 TEST_F(VideoFrameCompositorTest, RenderFiresPresentationCallback) {
   // Advance the clock so we can differentiate between base::TimeTicks::Now()
   // and base::TimeTicks().
-  tick_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  tick_clock_.Advance(base::Seconds(1));
 
   scoped_refptr<media::VideoFrame> opaque_frame = CreateOpaqueFrame();
   EXPECT_CALL(*this, Render(_, _, RenderingMode::kStartup))
@@ -254,7 +254,7 @@
 TEST_F(VideoFrameCompositorTest, MultiplePresentationCallbacks) {
   // Advance the clock so we can differentiate between base::TimeTicks::Now()
   // and base::TimeTicks().
-  tick_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  tick_clock_.Advance(base::Seconds(1));
 
   // Create frames of different sizes so we can differentiate them.
   constexpr int kSize1 = 8;
@@ -406,7 +406,7 @@
 
   // Since we have a client, this call should not call background render, even
   // if a lot of time has elapsed between calls.
-  tick_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  tick_clock_.Advance(base::Seconds(1));
   EXPECT_CALL(*this, Render(_, _, _)).Times(0);
   compositor()->UpdateCurrentFrameIfStale();
 
@@ -430,7 +430,7 @@
   EXPECT_EQ(opaque_frame_2, compositor()->GetCurrentFrame());
 
   // Advancing the tick clock should allow a new frame to be requested.
-  tick_clock_.Advance(base::TimeDelta::FromMilliseconds(10));
+  tick_clock_.Advance(base::Milliseconds(10));
   EXPECT_CALL(*this, Render(_, _, RenderingMode::kBackground))
       .WillOnce(Return(opaque_frame_1));
   compositor()->UpdateCurrentFrameIfStale();
@@ -441,7 +441,7 @@
   compositor()->SetVideoFrameProviderClient(nullptr);
 
   // Advancing the tick clock should allow a new frame to be requested.
-  tick_clock_.Advance(base::TimeDelta::FromMilliseconds(10));
+  tick_clock_.Advance(base::Milliseconds(10));
   EXPECT_CALL(*this, Render(_, _, RenderingMode::kBackground))
       .WillOnce(Return(opaque_frame_2));
   compositor()->UpdateCurrentFrameIfStale();
@@ -462,7 +462,7 @@
 
   // Move the clock forward. Otherwise, the current time will be 0, will appear
   // null, and will cause DCHECKs.
-  tick_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  tick_clock_.Advance(base::Seconds(1));
 
   // Starting the video renderer should return a single frame.
   EXPECT_CALL(*this, Render(_, _, RenderingMode::kStartup))
@@ -472,7 +472,7 @@
 
   // This call should return true even if we have a client that is driving frame
   // updates.
-  tick_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  tick_clock_.Advance(base::Seconds(1));
   EXPECT_CALL(*this, Render(_, _, _)).WillOnce(Return(opaque_frame_2));
   compositor()->UpdateCurrentFrameIfStale(
       VideoFrameCompositor::UpdateType::kBypassClient);
@@ -482,7 +482,7 @@
 }
 
 TEST_F(VideoFrameCompositorTest, PreferredRenderInterval) {
-  preferred_render_interval_ = base::TimeDelta::FromSeconds(1);
+  preferred_render_interval_ = base::Seconds(1);
   compositor_->Start(this);
   EXPECT_EQ(compositor_->GetPreferredRenderInterval(),
             preferred_render_interval_);
diff --git a/third_party/blink/renderer/platform/media/watch_time_reporter_unittest.cc b/third_party/blink/renderer/platform/media/watch_time_reporter_unittest.cc
index 7c1afe20..13491dd 100644
--- a/third_party/blink/renderer/platform/media/watch_time_reporter_unittest.cc
+++ b/third_party/blink/renderer/platform/media/watch_time_reporter_unittest.cc
@@ -448,10 +448,10 @@
     // InSequence macro for ease of use, but we don't want the watch time
     // expectations to be in sequence (or expectations would depend on sorted
     // order of histogram names).
-    constexpr base::TimeDelta kWatchTime1 = base::TimeDelta::FromSeconds(10);
-    constexpr base::TimeDelta kWatchTime2 = base::TimeDelta::FromSeconds(12);
-    constexpr base::TimeDelta kWatchTime3 = base::TimeDelta::FromSeconds(15);
-    constexpr base::TimeDelta kWatchTime4 = base::TimeDelta::FromSeconds(30);
+    constexpr base::TimeDelta kWatchTime1 = base::Seconds(10);
+    constexpr base::TimeDelta kWatchTime2 = base::Seconds(12);
+    constexpr base::TimeDelta kWatchTime3 = base::Seconds(15);
+    constexpr base::TimeDelta kWatchTime4 = base::Seconds(30);
     {
       testing::InSequence s;
 
@@ -707,8 +707,8 @@
 }
 
 TEST_P(WatchTimeReporterTest, WatchTimeReporterBasic) {
-  constexpr base::TimeDelta kWatchTimeEarly = base::TimeDelta::FromSeconds(5);
-  constexpr base::TimeDelta kWatchTimeLate = base::TimeDelta::FromSeconds(10);
+  constexpr base::TimeDelta kWatchTimeEarly = base::Seconds(5);
+  constexpr base::TimeDelta kWatchTimeLate = base::Seconds(10);
   EXPECT_CALL(*this, GetCurrentMediaTime())
       .WillOnce(testing::Return(base::TimeDelta()))
       .WillOnce(testing::Return(kWatchTimeEarly))
@@ -738,8 +738,7 @@
   CycleReportingTimer();
 
   wtr_->OnUnderflow();
-  constexpr base::TimeDelta kUnderflowDuration =
-      base::TimeDelta::FromMilliseconds(250);
+  constexpr base::TimeDelta kUnderflowDuration = base::Milliseconds(250);
   wtr_->OnUnderflowComplete(kUnderflowDuration);
   wtr_->OnUnderflow();
   EXPECT_WATCH_TIME(Ac, kWatchTimeLate);
@@ -757,8 +756,8 @@
 }
 
 TEST_P(WatchTimeReporterTest, WatchTimeReporterStatsOffsetCorrectly) {
-  constexpr base::TimeDelta kWatchTimeEarly = base::TimeDelta::FromSeconds(5);
-  constexpr base::TimeDelta kWatchTimeLate = base::TimeDelta::FromSeconds(10);
+  constexpr base::TimeDelta kWatchTimeEarly = base::Seconds(5);
+  constexpr base::TimeDelta kWatchTimeLate = base::Seconds(10);
   EXPECT_CALL(*this, GetCurrentMediaTime())
       .WillOnce(testing::Return(base::TimeDelta()))
       .WillOnce(testing::Return(kWatchTimeEarly))
@@ -795,8 +794,7 @@
   CycleReportingTimer();
 
   wtr_->OnUnderflow();
-  constexpr base::TimeDelta kUnderflowDuration =
-      base::TimeDelta::FromMilliseconds(250);
+  constexpr base::TimeDelta kUnderflowDuration = base::Milliseconds(250);
   wtr_->OnUnderflowComplete(kUnderflowDuration);
   wtr_->OnUnderflow();
   EXPECT_WATCH_TIME(Ac, kWatchTimeLate);
@@ -814,8 +812,8 @@
 }
 
 TEST_P(WatchTimeReporterTest, WatchTimeReporterDuration) {
-  constexpr base::TimeDelta kDuration1 = base::TimeDelta::FromSeconds(5);
-  constexpr base::TimeDelta kDuration2 = base::TimeDelta::FromSeconds(10);
+  constexpr base::TimeDelta kDuration1 = base::Seconds(5);
+  constexpr base::TimeDelta kDuration2 = base::Seconds(10);
   Initialize(true, true, kSizeJustRight);
 
   EXPECT_CALL(*this, OnDurationChanged(kDuration1))
@@ -831,9 +829,9 @@
 }
 
 TEST_P(WatchTimeReporterTest, WatchTimeReporterUnderflow) {
-  constexpr base::TimeDelta kWatchTimeFirst = base::TimeDelta::FromSeconds(5);
-  constexpr base::TimeDelta kWatchTimeEarly = base::TimeDelta::FromSeconds(10);
-  constexpr base::TimeDelta kWatchTimeLate = base::TimeDelta::FromSeconds(15);
+  constexpr base::TimeDelta kWatchTimeFirst = base::Seconds(5);
+  constexpr base::TimeDelta kWatchTimeEarly = base::Seconds(10);
+  constexpr base::TimeDelta kWatchTimeLate = base::Seconds(15);
   if (has_audio_ && has_video_) {
     EXPECT_CALL(*this, GetCurrentMediaTime())
         .WillOnce(testing::Return(base::TimeDelta()))
@@ -866,8 +864,7 @@
   wtr_->OnUnderflow();
   wtr_->OnVolumeChange(0);
 
-  constexpr base::TimeDelta kUnderflowDuration =
-      base::TimeDelta::FromMilliseconds(250);
+  constexpr base::TimeDelta kUnderflowDuration = base::Milliseconds(250);
   wtr_->OnUnderflowComplete(kUnderflowDuration);
 
   // This underflow call should be ignored since it happens after the finalize.
@@ -905,9 +902,9 @@
 }
 
 TEST_P(WatchTimeReporterTest, WatchTimeReporterUnderflowSpansFinalize) {
-  constexpr base::TimeDelta kWatchTimeFirst = base::TimeDelta::FromSeconds(5);
-  constexpr base::TimeDelta kWatchTimeEarly = base::TimeDelta::FromSeconds(10);
-  constexpr base::TimeDelta kWatchTimeLate = base::TimeDelta::FromSeconds(15);
+  constexpr base::TimeDelta kWatchTimeFirst = base::Seconds(5);
+  constexpr base::TimeDelta kWatchTimeEarly = base::Seconds(10);
+  constexpr base::TimeDelta kWatchTimeLate = base::Seconds(15);
   if (has_audio_ && has_video_) {
     EXPECT_CALL(*this, GetCurrentMediaTime())
         .WillOnce(testing::Return(base::TimeDelta()))
@@ -965,16 +962,15 @@
 
   // This underflow completion should be dropped since we've lost the original
   // underflow it corresponded to in the finalize.
-  constexpr base::TimeDelta kUnderflowDuration =
-      base::TimeDelta::FromMilliseconds(250);
+  constexpr base::TimeDelta kUnderflowDuration = base::Milliseconds(250);
   wtr_->OnUnderflowComplete(kUnderflowDuration);
   wtr_.reset();
 }
 
 TEST_P(WatchTimeReporterTest, WatchTimeReporterUnderflowTooLong) {
-  constexpr base::TimeDelta kWatchTimeFirst = base::TimeDelta::FromSeconds(5);
-  constexpr base::TimeDelta kWatchTimeEarly = base::TimeDelta::FromSeconds(10);
-  constexpr base::TimeDelta kWatchTimeLate = base::TimeDelta::FromSeconds(15);
+  constexpr base::TimeDelta kWatchTimeFirst = base::Seconds(5);
+  constexpr base::TimeDelta kWatchTimeEarly = base::Seconds(10);
+  constexpr base::TimeDelta kWatchTimeLate = base::Seconds(15);
   if (has_audio_ && has_video_) {
     EXPECT_CALL(*this, GetCurrentMediaTime())
         .WillOnce(testing::Return(base::TimeDelta()))
@@ -1008,8 +1004,7 @@
   wtr_->OnVolumeChange(0);
 
   // This underflow took too long to complete so is dropped.
-  constexpr base::TimeDelta kUnderflowDuration =
-      base::TimeDelta::FromMinutes(2);
+  constexpr base::TimeDelta kUnderflowDuration = base::Minutes(2);
   wtr_->OnUnderflowComplete(kUnderflowDuration);
 
   EXPECT_WATCH_TIME(Ac, kWatchTimeEarly);
@@ -1038,9 +1033,9 @@
 }
 
 TEST_P(WatchTimeReporterTest, WatchTimeReporterNoUnderflowDoubleReport) {
-  constexpr base::TimeDelta kWatchTimeFirst = base::TimeDelta::FromSeconds(5);
-  constexpr base::TimeDelta kWatchTimeEarly = base::TimeDelta::FromSeconds(10);
-  constexpr base::TimeDelta kWatchTimeLate = base::TimeDelta::FromSeconds(15);
+  constexpr base::TimeDelta kWatchTimeFirst = base::Seconds(5);
+  constexpr base::TimeDelta kWatchTimeEarly = base::Seconds(10);
+  constexpr base::TimeDelta kWatchTimeLate = base::Seconds(15);
   if (has_audio_ && has_video_) {
     EXPECT_CALL(*this, GetCurrentMediaTime())
         .WillOnce(testing::Return(base::TimeDelta()))
@@ -1082,8 +1077,7 @@
   // This cycle should not report another underflow.
   CycleReportingTimer();
 
-  constexpr base::TimeDelta kUnderflowDuration =
-      base::TimeDelta::FromMilliseconds(250);
+  constexpr base::TimeDelta kUnderflowDuration = base::Milliseconds(250);
   wtr_->OnUnderflowComplete(kUnderflowDuration);
   EXPECT_CALL(*this, OnUnderflowDurationUpdate(1, kUnderflowDuration));
 
@@ -1190,8 +1184,8 @@
 }
 
 TEST_P(WatchTimeReporterTest, WatchTimeReporterShownHidden) {
-  constexpr base::TimeDelta kWatchTimeEarly = base::TimeDelta::FromSeconds(8);
-  constexpr base::TimeDelta kWatchTimeLate = base::TimeDelta::FromSeconds(25);
+  constexpr base::TimeDelta kWatchTimeEarly = base::Seconds(8);
+  constexpr base::TimeDelta kWatchTimeLate = base::Seconds(25);
   EXPECT_CALL(*this, GetCurrentMediaTime())
       .WillOnce(testing::Return(base::TimeDelta()))
       .WillOnce(testing::Return(kWatchTimeEarly))
@@ -1227,8 +1221,8 @@
 }
 
 TEST_P(WatchTimeReporterTest, WatchTimeReporterBackgroundHysteresis) {
-  constexpr base::TimeDelta kWatchTimeEarly = base::TimeDelta::FromSeconds(8);
-  constexpr base::TimeDelta kWatchTimeLate = base::TimeDelta::FromSeconds(10);
+  constexpr base::TimeDelta kWatchTimeEarly = base::Seconds(8);
+  constexpr base::TimeDelta kWatchTimeLate = base::Seconds(10);
   EXPECT_CALL(*this, GetCurrentMediaTime())
       .WillOnce(testing::Return(base::TimeDelta()))  // 2x for playing
       .WillOnce(testing::Return(base::TimeDelta()))
@@ -1269,8 +1263,8 @@
 }
 
 TEST_P(WatchTimeReporterTest, WatchTimeReporterShownHiddenBackground) {
-  constexpr base::TimeDelta kWatchTimeEarly = base::TimeDelta::FromSeconds(8);
-  constexpr base::TimeDelta kWatchTimeLate = base::TimeDelta::FromSeconds(10);
+  constexpr base::TimeDelta kWatchTimeEarly = base::Seconds(8);
+  constexpr base::TimeDelta kWatchTimeLate = base::Seconds(10);
   EXPECT_CALL(*this, GetCurrentMediaTime())
       .WillOnce(testing::Return(base::TimeDelta()))
       .WillOnce(testing::Return(base::TimeDelta()))
@@ -1308,7 +1302,7 @@
 }
 
 TEST_P(WatchTimeReporterTest, WatchTimeReporterHiddenPausedBackground) {
-  constexpr base::TimeDelta kWatchTime = base::TimeDelta::FromSeconds(8);
+  constexpr base::TimeDelta kWatchTime = base::Seconds(8);
   EXPECT_CALL(*this, GetCurrentMediaTime())
       .WillOnce(testing::Return(base::TimeDelta()))
       .WillOnce(testing::Return(base::TimeDelta()))
@@ -1333,7 +1327,7 @@
 }
 
 TEST_P(WatchTimeReporterTest, WatchTimeReporterHiddenSeekedBackground) {
-  constexpr base::TimeDelta kWatchTime = base::TimeDelta::FromSeconds(8);
+  constexpr base::TimeDelta kWatchTime = base::Seconds(8);
   EXPECT_CALL(*this, GetCurrentMediaTime())
       .WillOnce(testing::Return(base::TimeDelta()))
       .WillOnce(testing::Return(base::TimeDelta()))
@@ -1357,8 +1351,8 @@
 }
 
 TEST_P(WatchTimeReporterTest, WatchTimeReporterHiddenPowerBackground) {
-  constexpr base::TimeDelta kWatchTime1 = base::TimeDelta::FromSeconds(8);
-  constexpr base::TimeDelta kWatchTime2 = base::TimeDelta::FromSeconds(16);
+  constexpr base::TimeDelta kWatchTime1 = base::Seconds(8);
+  constexpr base::TimeDelta kWatchTime2 = base::Seconds(16);
   EXPECT_CALL(*this, GetCurrentMediaTime())
       .WillOnce(testing::Return(base::TimeDelta()))
       .WillOnce(testing::Return(base::TimeDelta()))
@@ -1393,8 +1387,8 @@
 }
 
 TEST_P(WatchTimeReporterTest, WatchTimeReporterHiddenControlsBackground) {
-  constexpr base::TimeDelta kWatchTime1 = base::TimeDelta::FromSeconds(8);
-  constexpr base::TimeDelta kWatchTime2 = base::TimeDelta::FromSeconds(16);
+  constexpr base::TimeDelta kWatchTime1 = base::Seconds(8);
+  constexpr base::TimeDelta kWatchTime2 = base::Seconds(16);
   EXPECT_CALL(*this, GetCurrentMediaTime())
       .WillOnce(testing::Return(base::TimeDelta()))
       .WillOnce(testing::Return(base::TimeDelta()))
@@ -1429,8 +1423,8 @@
 
 TEST_P(DisplayTypeWatchTimeReporterTest,
        WatchTimeReporterHiddenDisplayTypeBackground) {
-  constexpr base::TimeDelta kWatchTime1 = base::TimeDelta::FromSeconds(8);
-  constexpr base::TimeDelta kWatchTime2 = base::TimeDelta::FromSeconds(16);
+  constexpr base::TimeDelta kWatchTime1 = base::Seconds(8);
+  constexpr base::TimeDelta kWatchTime2 = base::Seconds(16);
   EXPECT_CALL(*this, GetCurrentMediaTime())
       .WillOnce(testing::Return(base::TimeDelta()))
       .WillOnce(testing::Return(base::TimeDelta()))
@@ -1464,8 +1458,8 @@
 }
 
 TEST_P(WatchTimeReporterTest, WatchTimeReporterHiddenMuted) {
-  constexpr base::TimeDelta kWatchTime1 = base::TimeDelta::FromSeconds(8);
-  constexpr base::TimeDelta kWatchTime2 = base::TimeDelta::FromSeconds(25);
+  constexpr base::TimeDelta kWatchTime1 = base::Seconds(8);
+  constexpr base::TimeDelta kWatchTime2 = base::Seconds(25);
 
   // Expectations for when muted watch time is recorded and when it isn't.
   if (has_audio_ && has_video_) {
@@ -1522,8 +1516,8 @@
 }
 
 TEST_P(WatchTimeReporterTest, WatchTimeReporterMultiplePartialFinalize) {
-  constexpr base::TimeDelta kWatchTime1 = base::TimeDelta::FromSeconds(8);
-  constexpr base::TimeDelta kWatchTime2 = base::TimeDelta::FromSeconds(16);
+  constexpr base::TimeDelta kWatchTime1 = base::Seconds(8);
+  constexpr base::TimeDelta kWatchTime2 = base::Seconds(16);
 
   // Transition controls and battery.
   {
@@ -1649,8 +1643,8 @@
 
 // Tests that starting from a non-zero base works.
 TEST_P(WatchTimeReporterTest, WatchTimeReporterNonZeroStart) {
-  constexpr base::TimeDelta kWatchTime1 = base::TimeDelta::FromSeconds(5);
-  constexpr base::TimeDelta kWatchTime2 = base::TimeDelta::FromSeconds(15);
+  constexpr base::TimeDelta kWatchTime1 = base::Seconds(5);
+  constexpr base::TimeDelta kWatchTime2 = base::Seconds(15);
   EXPECT_CALL(*this, GetCurrentMediaTime())
       .WillOnce(testing::Return(kWatchTime1))
       .WillRepeatedly(testing::Return(kWatchTime2));
@@ -1673,7 +1667,7 @@
 
 // Tests that seeking causes an immediate finalization.
 TEST_P(WatchTimeReporterTest, SeekFinalizes) {
-  constexpr base::TimeDelta kWatchTime = base::TimeDelta::FromSeconds(10);
+  constexpr base::TimeDelta kWatchTime = base::Seconds(10);
   EXPECT_CALL(*this, GetCurrentMediaTime())
       .WillOnce(testing::Return(base::TimeDelta()))
       .WillOnce(testing::Return(kWatchTime));
@@ -1693,7 +1687,7 @@
 
 // Tests that seeking can't be undone by anything other than OnPlaying().
 TEST_P(WatchTimeReporterTest, SeekOnlyClearedByPlaying) {
-  constexpr base::TimeDelta kWatchTime = base::TimeDelta::FromSeconds(10);
+  constexpr base::TimeDelta kWatchTime = base::Seconds(10);
   EXPECT_CALL(*this, GetCurrentMediaTime())
       .WillOnce(testing::Return(base::TimeDelta()))
       .WillRepeatedly(testing::Return(kWatchTime));
@@ -1732,7 +1726,7 @@
 // Tests that seeking causes an immediate finalization, but does not trample a
 // previously set finalize time.
 TEST_P(WatchTimeReporterTest, SeekFinalizeDoesNotTramplePreviousFinalize) {
-  constexpr base::TimeDelta kWatchTime = base::TimeDelta::FromSeconds(10);
+  constexpr base::TimeDelta kWatchTime = base::Seconds(10);
   EXPECT_CALL(*this, GetCurrentMediaTime())
       .WillOnce(testing::Return(base::TimeDelta()))
       .WillOnce(testing::Return(kWatchTime));
@@ -1753,7 +1747,7 @@
 
 // Tests that watch time is finalized upon destruction.
 TEST_P(WatchTimeReporterTest, WatchTimeReporterFinalizeOnDestruction) {
-  constexpr base::TimeDelta kWatchTime = base::TimeDelta::FromSeconds(10);
+  constexpr base::TimeDelta kWatchTime = base::Seconds(10);
   EXPECT_CALL(*this, GetCurrentMediaTime())
       .WillOnce(testing::Return(base::TimeDelta()))
       .WillOnce(testing::Return(kWatchTime));
@@ -1774,7 +1768,7 @@
 
 // Tests that watch time categories are mapped correctly.
 TEST_P(WatchTimeReporterTest, WatchTimeCategoryMapping) {
-  constexpr base::TimeDelta kWatchTime = base::TimeDelta::FromSeconds(10);
+  constexpr base::TimeDelta kWatchTime = base::Seconds(10);
 
   // Verify ac, all, src, non-native controls
   EXPECT_CALL(*this, GetCurrentMediaTime())
@@ -2107,8 +2101,8 @@
 class MutedWatchTimeReporterTest : public WatchTimeReporterTest {};
 
 TEST_P(MutedWatchTimeReporterTest, MutedHysteresis) {
-  constexpr base::TimeDelta kWatchTimeEarly = base::TimeDelta::FromSeconds(8);
-  constexpr base::TimeDelta kWatchTimeLate = base::TimeDelta::FromSeconds(10);
+  constexpr base::TimeDelta kWatchTimeEarly = base::Seconds(8);
+  constexpr base::TimeDelta kWatchTimeLate = base::Seconds(10);
   EXPECT_CALL(*this, GetCurrentMediaTime())
       .WillOnce(testing::Return(base::TimeDelta()))  // 2x for playing
       .WillOnce(testing::Return(base::TimeDelta()))
@@ -2154,8 +2148,8 @@
 }
 
 TEST_P(MutedWatchTimeReporterTest, MuteUnmute) {
-  constexpr base::TimeDelta kWatchTimeEarly = base::TimeDelta::FromSeconds(8);
-  constexpr base::TimeDelta kWatchTimeLate = base::TimeDelta::FromSeconds(10);
+  constexpr base::TimeDelta kWatchTimeEarly = base::Seconds(8);
+  constexpr base::TimeDelta kWatchTimeLate = base::Seconds(10);
   EXPECT_CALL(*this, GetCurrentMediaTime())
       .WillOnce(testing::Return(base::TimeDelta()))
       .WillOnce(testing::Return(base::TimeDelta()))
@@ -2195,7 +2189,7 @@
 }
 
 TEST_P(MutedWatchTimeReporterTest, MutedPaused) {
-  constexpr base::TimeDelta kWatchTime = base::TimeDelta::FromSeconds(8);
+  constexpr base::TimeDelta kWatchTime = base::Seconds(8);
   EXPECT_CALL(*this, GetCurrentMediaTime())
       .WillOnce(testing::Return(base::TimeDelta()))
       .WillOnce(testing::Return(base::TimeDelta()))
@@ -2222,7 +2216,7 @@
 }
 
 TEST_P(MutedWatchTimeReporterTest, MutedSeeked) {
-  constexpr base::TimeDelta kWatchTime = base::TimeDelta::FromSeconds(8);
+  constexpr base::TimeDelta kWatchTime = base::Seconds(8);
   EXPECT_CALL(*this, GetCurrentMediaTime())
       .WillOnce(testing::Return(base::TimeDelta()))
       .WillOnce(testing::Return(base::TimeDelta()))
@@ -2248,8 +2242,8 @@
 }
 
 TEST_P(MutedWatchTimeReporterTest, MutedPower) {
-  constexpr base::TimeDelta kWatchTime1 = base::TimeDelta::FromSeconds(8);
-  constexpr base::TimeDelta kWatchTime2 = base::TimeDelta::FromSeconds(16);
+  constexpr base::TimeDelta kWatchTime1 = base::Seconds(8);
+  constexpr base::TimeDelta kWatchTime2 = base::Seconds(16);
   EXPECT_CALL(*this, GetCurrentMediaTime())
       .WillOnce(testing::Return(base::TimeDelta()))
       .WillOnce(testing::Return(base::TimeDelta()))
@@ -2288,8 +2282,8 @@
 }
 
 TEST_P(MutedWatchTimeReporterTest, MutedControls) {
-  constexpr base::TimeDelta kWatchTime1 = base::TimeDelta::FromSeconds(8);
-  constexpr base::TimeDelta kWatchTime2 = base::TimeDelta::FromSeconds(16);
+  constexpr base::TimeDelta kWatchTime1 = base::Seconds(8);
+  constexpr base::TimeDelta kWatchTime2 = base::Seconds(16);
   EXPECT_CALL(*this, GetCurrentMediaTime())
       .WillOnce(testing::Return(base::TimeDelta()))
       .WillOnce(testing::Return(base::TimeDelta()))
@@ -2329,8 +2323,8 @@
 }
 
 TEST_P(MutedWatchTimeReporterTest, MutedDisplayType) {
-  constexpr base::TimeDelta kWatchTime1 = base::TimeDelta::FromSeconds(8);
-  constexpr base::TimeDelta kWatchTime2 = base::TimeDelta::FromSeconds(16);
+  constexpr base::TimeDelta kWatchTime1 = base::Seconds(8);
+  constexpr base::TimeDelta kWatchTime2 = base::Seconds(16);
   EXPECT_CALL(*this, GetCurrentMediaTime())
       .WillOnce(testing::Return(base::TimeDelta()))
       .WillOnce(testing::Return(base::TimeDelta()))
diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc b/third_party/blink/renderer/platform/media/web_media_player_impl.cc
index ee4bc411..698178d1 100644
--- a/third_party/blink/renderer/platform/media/web_media_player_impl.cc
+++ b/third_party/blink/renderer/platform/media/web_media_player_impl.cc
@@ -150,8 +150,7 @@
 
 // How much time must have elapsed since loading last progressed before we
 // assume that the decoder will have had time to complete preroll.
-constexpr base::TimeDelta kPrerollAttemptTimeout =
-    base::TimeDelta::FromSeconds(3);
+constexpr base::TimeDelta kPrerollAttemptTimeout = base::Seconds(3);
 
 // Maximum number, per-WMPI, of media logs of playback rate changes.
 constexpr int kMaxNumPlaybackRateLogs = 10;
@@ -313,7 +312,7 @@
   // perceptible difference.
   const auto drift =
       (old_position.GetPosition() - new_position.GetPosition()).magnitude();
-  return drift > base::TimeDelta::FromMilliseconds(100);
+  return drift > base::Milliseconds(100);
 }
 
 // Returns whether the player uses AudioService. This is needed to enable
@@ -942,7 +941,7 @@
   DVLOG(1) << __func__ << "(" << seconds << "s)";
   DCHECK(main_task_runner_->BelongsToCurrentThread());
   media_log_->AddEvent<MediaLogEvent::kSeek>(seconds);
-  DoSeek(base::TimeDelta::FromSecondsD(seconds), true);
+  DoSeek(base::Seconds(seconds), true);
 }
 
 void WebMediaPlayerImpl::DoSeek(base::TimeDelta time, bool time_updated) {
@@ -963,8 +962,7 @@
   //      Because the buffers may have changed between seeks, MSE seeks are
   //      never elided.
   if (paused_ && pipeline_controller_->IsStable() &&
-      (paused_time_ == time ||
-       (ended_ && time == base::TimeDelta::FromSecondsD(Duration()))) &&
+      (paused_time_ == time || (ended_ && time == base::Seconds(Duration()))) &&
       !chunk_demuxer_) {
     // If the ready state was high enough before, we can indicate that the seek
     // completed just by restoring it. Otherwise we will just wait for the real
@@ -1053,7 +1051,7 @@
   absl::optional<base::TimeDelta> latency_hint;
   if (std::isfinite(seconds)) {
     DCHECK_GE(seconds, 0);
-    latency_hint = base::TimeDelta::FromSecondsD(seconds);
+    latency_hint = base::Seconds(seconds);
   }
   pipeline_controller_->SetLatencyHint(latency_hint);
 }
@@ -1404,7 +1402,7 @@
 }
 
 double WebMediaPlayerImpl::MediaTimeForTimeValue(double timeValue) const {
-  return base::TimeDelta::FromSecondsD(timeValue).InSecondsF();
+  return base::Seconds(timeValue).InSecondsF();
 }
 
 unsigned WebMediaPlayerImpl::DecodedFrameCount() const {
@@ -1673,7 +1671,7 @@
                          base::Unretained(mb_data_source_), true));
       main_task_runner_->PostDelayedTask(
           FROM_HERE, have_enough_after_lazy_load_cb_.callback(),
-          base::TimeDelta::FromMilliseconds(250));
+          base::Milliseconds(250));
     } else {
       have_enough_after_lazy_load_cb_.Cancel();
       mb_data_source_->OnBufferingHaveEnough(true);
@@ -1759,7 +1757,7 @@
   media_task_runner_->PostTask(
       FROM_HERE, base::BindOnce(&media::ChunkDemuxer::OnMemoryPressure,
                                 base::Unretained(chunk_demuxer_),
-                                base::TimeDelta::FromSecondsD(CurrentTime()),
+                                base::Seconds(CurrentTime()),
                                 memory_pressure_level, force_instant_gc));
 }
 
@@ -2113,8 +2111,7 @@
   if (network_state_ == WebMediaPlayer::kNetworkStateIdle)
     return true;
   return buffered_data_source_host_->CanPlayThrough(
-      base::TimeDelta::FromSecondsD(CurrentTime()),
-      base::TimeDelta::FromSecondsD(Duration()),
+      base::Seconds(CurrentTime()), base::Seconds(Duration()),
       playback_rate_ == 0.0 ? 1.0 : playback_rate_);
 }
 
@@ -2228,8 +2225,7 @@
 
   if (frame_->IsAdSubframe()) {
     UMA_HISTOGRAM_CUSTOM_TIMES("Ads.Media.Duration", GetPipelineMediaDuration(),
-                               base::TimeDelta::FromMilliseconds(1),
-                               base::TimeDelta::FromDays(1),
+                               base::Milliseconds(1), base::Days(1),
                                50 /* bucket_count */);
   }
 
@@ -3025,8 +3021,7 @@
   }
 
   if (is_memory_reporting_enabled) {
-    memory_usage_reporting_timer_.Start(FROM_HERE,
-                                        base::TimeDelta::FromSeconds(2), this,
+    memory_usage_reporting_timer_.Start(FROM_HERE, base::Seconds(2), this,
                                         &WebMediaPlayerImpl::ReportMemoryUsage);
   } else {
     memory_usage_reporting_timer_.Stop();
@@ -3318,8 +3313,8 @@
 #endif
 
   // Idle timeout chosen arbitrarily.
-  background_pause_timer_.Start(FROM_HERE, base::TimeDelta::FromSeconds(5),
-                                client_, &WebMediaPlayerClient::PausePlayback);
+  background_pause_timer_.Start(FROM_HERE, base::Seconds(5), client_,
+                                &WebMediaPlayerClient::PausePlayback);
 }
 
 void WebMediaPlayerImpl::CreateWatchTimeReporter() {
@@ -3561,8 +3556,7 @@
   base::TimeDelta duration = GetPipelineMediaDuration();
 
   constexpr base::TimeDelta kMaxKeyframeDistanceToDisableBackgroundVideo =
-      base::TimeDelta::FromMilliseconds(
-          kMaxKeyframeDistanceToDisableBackgroundVideoMs);
+      base::Milliseconds(kMaxKeyframeDistanceToDisableBackgroundVideoMs);
   if (duration < kMaxKeyframeDistanceToDisableBackgroundVideo)
     return true;
 
@@ -3589,7 +3583,7 @@
       // may also cause AV sync issues if disable/enable happens too fast.
       main_task_runner_->PostDelayedTask(
           FROM_HERE, update_background_status_cb_.callback(),
-          base::TimeDelta::FromSeconds(10));
+          base::Seconds(10));
     }
   } else {
     update_background_status_cb_.Cancel();
@@ -3906,8 +3900,7 @@
 
 bool WebMediaPlayerImpl::IsVideoBeingCaptured() const {
   // 5 seconds chosen arbitrarily since most videos are never captured.
-  return tick_clock_->NowTicks() - last_frame_request_time_ <
-         base::TimeDelta::FromSeconds(5);
+  return tick_clock_->NowTicks() - last_frame_request_time_ < base::Seconds(5);
 }
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/platform/media/web_source_buffer_impl.cc b/third_party/blink/renderer/platform/media/web_source_buffer_impl.cc
index d5792123..24f4868 100644
--- a/third_party/blink/renderer/platform/media/web_source_buffer_impl.cc
+++ b/third_party/blink/renderer/platform/media/web_source_buffer_impl.cc
@@ -55,8 +55,7 @@
   if (time >= max_time_in_seconds)
     return base::TimeDelta::FiniteMax();
 
-  return base::TimeDelta::FromMicroseconds(
-      time * base::Time::kMicrosecondsPerSecond);
+  return base::Microseconds(time * base::Time::kMicrosecondsPerSecond);
 }
 
 WebSourceBufferImpl::WebSourceBufferImpl(const std::string& id,
@@ -119,10 +118,8 @@
 
 bool WebSourceBufferImpl::EvictCodedFrames(double currentPlaybackTime,
                                            size_t newDataSize) {
-  return demuxer_->EvictCodedFrames(
-      id_,
-      base::TimeDelta::FromSecondsD(currentPlaybackTime),
-      newDataSize);
+  return demuxer_->EvictCodedFrames(id_, base::Seconds(currentPlaybackTime),
+                                    newDataSize);
 }
 
 bool WebSourceBufferImpl::Append(const unsigned char* data,
diff --git a/third_party/blink/renderer/platform/mediastream/media_stream_audio_test.cc b/third_party/blink/renderer/platform/mediastream/media_stream_audio_test.cc
index 54e23b0..7fd8cc1 100644
--- a/third_party/blink/renderer/platform/mediastream/media_stream_audio_test.cc
+++ b/third_party/blink/renderer/platform/mediastream/media_stream_audio_test.cc
@@ -113,7 +113,7 @@
                                                   base::TimeTicks::Now());
 
       // Sleep before producing the next chunk of audio.
-      base::PlatformThread::Sleep(base::TimeDelta::FromMicroseconds(
+      base::PlatformThread::Sleep(base::Microseconds(
           base::Time::kMicrosecondsPerSecond * buffer_size / kSampleRate));
     }
   }
diff --git a/third_party/blink/renderer/platform/mediastream/webaudio_media_stream_source.cc b/third_party/blink/renderer/platform/mediastream/webaudio_media_stream_source.cc
index 61a966d..4f3001d 100644
--- a/third_party/blink/renderer/platform/mediastream/webaudio_media_stream_source.cc
+++ b/third_party/blink/renderer/platform/mediastream/webaudio_media_stream_source.cc
@@ -115,7 +115,7 @@
                audio_bus.frames());
   const base::TimeTicks reference_time =
       current_reference_time_ +
-      base::TimeDelta::FromMicroseconds(
+      base::Microseconds(
           frame_delay * base::Time::kMicrosecondsPerSecond /
           MediaStreamAudioSource::GetAudioParameters().sample_rate());
   MediaStreamAudioSource::DeliverDataToTracks(audio_bus, reference_time);
diff --git a/third_party/blink/renderer/platform/network/http_parsers.cc b/third_party/blink/renderer/platform/network/http_parsers.cc
index f90b3ab..02fdb7a3 100644
--- a/third_party/blink/renderer/platform/network/http_parsers.cc
+++ b/third_party/blink/renderer/platform/network/http_parsers.cc
@@ -328,7 +328,7 @@
   double time = source.Left(number_end).ToDouble(&ok);
   if (!ok)
     return false;
-  delay = base::TimeDelta::FromSecondsD(time);
+  delay = base::Seconds(time);
   return true;
 }
 
@@ -638,7 +638,7 @@
         bool ok;
         double max_age = directives[i].second.ToDouble(&ok);
         if (ok)
-          cache_control_header.max_age = base::TimeDelta::FromSecondsD(max_age);
+          cache_control_header.max_age = base::Seconds(max_age);
       } else if (EqualIgnoringASCIICase(directives[i].first,
                                         kStaleWhileRevalidateDirective)) {
         if (cache_control_header.stale_while_revalidate) {
@@ -650,7 +650,7 @@
         double stale_while_revalidate = directives[i].second.ToDouble(&ok);
         if (ok) {
           cache_control_header.stale_while_revalidate =
-              base::TimeDelta::FromSecondsD(stale_while_revalidate);
+              base::Seconds(stale_while_revalidate);
         }
       }
     }
diff --git a/third_party/blink/renderer/platform/network/http_parsers_test.cc b/third_party/blink/renderer/platform/network/http_parsers_test.cc
index 53ddf77..d1d3133 100644
--- a/third_party/blink/renderer/platform/network/http_parsers_test.cc
+++ b/third_party/blink/renderer/platform/network/http_parsers_test.cc
@@ -255,40 +255,40 @@
   EXPECT_FALSE(ParseHTTPRefresh("1e1 url=foo", nullptr, delay, url));
 
   EXPECT_TRUE(ParseHTTPRefresh("123 ", nullptr, delay, url));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(123), delay);
+  EXPECT_EQ(base::Seconds(123), delay);
   EXPECT_TRUE(url.IsEmpty());
 
   EXPECT_TRUE(ParseHTTPRefresh("1 ; url=dest", nullptr, delay, url));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(1), delay);
+  EXPECT_EQ(base::Seconds(1), delay);
   EXPECT_EQ("dest", url);
   EXPECT_TRUE(
       ParseHTTPRefresh("1 ;\nurl=dest", IsASCIISpace<UChar>, delay, url));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(1), delay);
+  EXPECT_EQ(base::Seconds(1), delay);
   EXPECT_EQ("dest", url);
   EXPECT_TRUE(ParseHTTPRefresh("1 ;\nurl=dest", nullptr, delay, url));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(1), delay);
+  EXPECT_EQ(base::Seconds(1), delay);
   EXPECT_EQ("url=dest", url);
 
   EXPECT_TRUE(ParseHTTPRefresh("1 url=dest", nullptr, delay, url));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(1), delay);
+  EXPECT_EQ(base::Seconds(1), delay);
   EXPECT_EQ("dest", url);
 
   EXPECT_TRUE(
       ParseHTTPRefresh("10\nurl=dest", IsASCIISpace<UChar>, delay, url));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(10), delay);
+  EXPECT_EQ(base::Seconds(10), delay);
   EXPECT_EQ("dest", url);
 
   EXPECT_TRUE(
       ParseHTTPRefresh("1.5; url=dest", IsASCIISpace<UChar>, delay, url));
-  EXPECT_EQ(base::TimeDelta::FromSecondsD(1.5), delay);
+  EXPECT_EQ(base::Seconds(1.5), delay);
   EXPECT_EQ("dest", url);
   EXPECT_TRUE(
       ParseHTTPRefresh("1.5.9; url=dest", IsASCIISpace<UChar>, delay, url));
-  EXPECT_EQ(base::TimeDelta::FromSecondsD(1.5), delay);
+  EXPECT_EQ(base::Seconds(1.5), delay);
   EXPECT_EQ("dest", url);
   EXPECT_TRUE(
       ParseHTTPRefresh("7..; url=dest", IsASCIISpace<UChar>, delay, url));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(7), delay);
+  EXPECT_EQ(base::Seconds(7), delay);
   EXPECT_EQ("dest", url);
 }
 
diff --git a/third_party/blink/renderer/platform/network/network_state_notifier.cc b/third_party/blink/renderer/platform/network/network_state_notifier.cc
index f2e27de..27f677ed 100644
--- a/third_party/blink/renderer/platform/network/network_state_notifier.cc
+++ b/third_party/blink/renderer/platform/network/network_state_notifier.cc
@@ -50,12 +50,9 @@
 // https://cs.chromium.org/chromium/src/net/nqe/network_quality_estimator_params.cc.
 const base::TimeDelta kTypicalHttpRttEffectiveConnectionType
     [static_cast<size_t>(WebEffectiveConnectionType::kMaxValue) + 1] = {
-        base::TimeDelta::FromMilliseconds(0),
-        base::TimeDelta::FromMilliseconds(0),
-        base::TimeDelta::FromMilliseconds(3600),
-        base::TimeDelta::FromMilliseconds(1800),
-        base::TimeDelta::FromMilliseconds(450),
-        base::TimeDelta::FromMilliseconds(175)};
+        base::Milliseconds(0),    base::Milliseconds(0),
+        base::Milliseconds(3600), base::Milliseconds(1800),
+        base::Milliseconds(450),  base::Milliseconds(175)};
 
 // Typical downlink throughput (in Mbps) value corresponding to a given
 // WebEffectiveConnectionType value. Taken from
@@ -222,8 +219,7 @@
     override_.max_bandwidth_mbps = max_bandwidth_mbps;
 
     if (!effective_type && http_rtt_msec > 0) {
-      base::TimeDelta http_rtt(
-          base::TimeDelta::FromMilliseconds(http_rtt_msec));
+      base::TimeDelta http_rtt(base::Milliseconds(http_rtt_msec));
       // Threshold values taken from
       // net/nqe/network_quality_estimator_params.cc.
       if (http_rtt >=
@@ -247,7 +243,7 @@
     override_.effective_type = effective_type
                                    ? effective_type.value()
                                    : WebEffectiveConnectionType::kTypeUnknown;
-    override_.http_rtt = base::TimeDelta::FromMilliseconds(http_rtt_msec);
+    override_.http_rtt = base::Milliseconds(http_rtt_msec);
     override_.downlink_throughput_mbps = max_bandwidth_mbps;
   }
 }
@@ -451,8 +447,8 @@
 
   // Limit the maximum reported value and the granularity to reduce
   // fingerprinting.
-  constexpr auto kMaxRtt = base::TimeDelta::FromSeconds(3);
-  constexpr auto kGranularity = base::TimeDelta::FromMilliseconds(50);
+  constexpr auto kMaxRtt = base::Seconds(3);
+  constexpr auto kGranularity = base::Milliseconds(50);
 
   const base::TimeDelta modified_rtt =
       std::min(rtt.value() * GetRandomMultiplier(host), kMaxRtt);
diff --git a/third_party/blink/renderer/platform/network/network_state_notifier_test.cc b/third_party/blink/renderer/platform/network/network_state_notifier_test.cc
index 084af37..9c4887a 100644
--- a/third_party/blink/renderer/platform/network/network_state_notifier_test.cc
+++ b/third_party/blink/renderer/platform/network/network_state_notifier_test.cc
@@ -50,10 +50,9 @@
 const double kNoneMaxBandwidthMbps = 0.0;
 const double kBluetoothMaxBandwidthMbps = 1.0;
 const double kEthernetMaxBandwidthMbps = 2.0;
-const absl::optional<base::TimeDelta> kEthernetHttpRtt(
-    base::TimeDelta::FromMilliseconds(50));
+const absl::optional<base::TimeDelta> kEthernetHttpRtt(base::Milliseconds(50));
 const absl::optional<base::TimeDelta> kEthernetTransportRtt(
-    base::TimeDelta::FromMilliseconds(25));
+    base::Milliseconds(25));
 const absl::optional<double> kEthernetThroughputMbps(75.0);
 const absl::optional<base::TimeDelta> kUnknownRtt;
 const absl::optional<double> kUnknownThroughputMbps;
@@ -202,10 +201,9 @@
     notifier_.SetWebConnection(type, max_bandwidth_mbps);
     notifier_.SetNetworkQuality(
         effective_type,
-        http_rtt.has_value() ? http_rtt.value()
-                             : base::TimeDelta::FromMilliseconds(-1),
+        http_rtt.has_value() ? http_rtt.value() : base::Milliseconds(-1),
         transport_rtt.has_value() ? transport_rtt.value()
-                                  : base::TimeDelta::FromMilliseconds(-1),
+                                  : base::Milliseconds(-1),
         downlink_throughput_mbps.has_value()
             ? downlink_throughput_mbps.value() * 1000
             : -1);
@@ -1051,14 +1049,10 @@
     absl::optional<base::TimeDelta> rtt;
     WebEffectiveConnectionType expected_effective_connection_type;
   } tests[] = {
-      {base::TimeDelta::FromMilliseconds(100),
-       WebEffectiveConnectionType::kType4G},
-      {base::TimeDelta::FromMilliseconds(600),
-       WebEffectiveConnectionType::kType3G},
-      {base::TimeDelta::FromMilliseconds(1600),
-       WebEffectiveConnectionType::kType2G},
-      {base::TimeDelta::FromMilliseconds(2800),
-       WebEffectiveConnectionType::kTypeSlow2G},
+      {base::Milliseconds(100), WebEffectiveConnectionType::kType4G},
+      {base::Milliseconds(600), WebEffectiveConnectionType::kType3G},
+      {base::Milliseconds(1600), WebEffectiveConnectionType::kType2G},
+      {base::Milliseconds(2800), WebEffectiveConnectionType::kTypeSlow2G},
   };
 
   for (const auto& test : tests) {
@@ -1091,12 +1085,12 @@
   notifier_.SetNetworkQualityWebHoldback(WebEffectiveConnectionType::kType2G);
   VerifyInitialMetricsWithWebHoldbackState(
       kWebConnectionTypeUnknown, kNoneMaxBandwidthMbps,
-      WebEffectiveConnectionType::kType2G,
-      base::TimeDelta::FromMilliseconds(1800), 0.075, SaveData::kOff);
+      WebEffectiveConnectionType::kType2G, base::Milliseconds(1800), 0.075,
+      SaveData::kOff);
 
   EXPECT_EQ(WebEffectiveConnectionType::kType2G,
             notifier_.GetWebHoldbackEffectiveType().value());
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(1800),
+  EXPECT_EQ(base::Milliseconds(1800),
             notifier_.GetWebHoldbackHttpRtt().value());
   EXPECT_EQ(0.075, notifier_.GetWebHoldbackDownlinkThroughputMbps().value());
 }
diff --git a/third_party/blink/renderer/platform/peerconnection/gpu_codec_support_waiter.cc b/third_party/blink/renderer/platform/peerconnection/gpu_codec_support_waiter.cc
index 16c765a6c..19f5c581 100644
--- a/third_party/blink/renderer/platform/peerconnection/gpu_codec_support_waiter.cc
+++ b/third_party/blink/renderer/platform/peerconnection/gpu_codec_support_waiter.cc
@@ -40,7 +40,7 @@
       features::kRTCGpuCodecSupportWaiter,
       features::kRTCGpuCodecSupportWaiterTimeoutParam.name,
       features::kRTCGpuCodecSupportWaiterTimeoutParam.default_value);
-  return base::TimeDelta::FromMilliseconds(timeout_ms);
+  return base::Milliseconds(timeout_ms);
 }
 
 void OnCodecSupportKnown(
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_rtp_source.cc b/third_party/blink/renderer/platform/peerconnection/rtc_rtp_source.cc
index 6d6dfd97..40bef1f 100644
--- a/third_party/blink/renderer/platform/peerconnection/rtc_rtp_source.cc
+++ b/third_party/blink/renderer/platform/peerconnection/rtc_rtp_source.cc
@@ -30,8 +30,7 @@
 }
 
 base::TimeTicks RTCRtpSource::Timestamp() const {
-  return base::TimeTicks() +
-         base::TimeDelta::FromMilliseconds(source_.timestamp_ms());
+  return base::TimeTicks() + base::Milliseconds(source_.timestamp_ms());
 }
 
 uint32_t RTCRtpSource::Source() const {
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_rtp_source_test.cc b/third_party/blink/renderer/platform/peerconnection/rtc_rtp_source_test.cc
index 1c60990..7ca906d 100644
--- a/third_party/blink/renderer/platform/peerconnection/rtc_rtp_source_test.cc
+++ b/third_party/blink/renderer/platform/peerconnection/rtc_rtp_source_test.cc
@@ -44,7 +44,7 @@
 TEST(RtcRtpSource, BaseTimeTicksAndRtcMicrosAreTheSame) {
   base::TimeTicks first_chromium_timestamp = base::TimeTicks::Now();
   base::TimeTicks webrtc_timestamp =
-      base::TimeTicks() + base::TimeDelta::FromMicroseconds(rtc::TimeMicros());
+      base::TimeTicks() + base::Microseconds(rtc::TimeMicros());
   base::TimeTicks second_chromium_timestamp = base::TimeTicks::Now();
 
   // Test that the timestamps are correctly ordered, which they can only be if
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_adapter.cc b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_adapter.cc
index 7f5455ac..8ce8dec 100644
--- a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_adapter.cc
+++ b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_adapter.cc
@@ -215,7 +215,7 @@
                               CrossThreadUnretained(this), config,
                               std::move(init_cb)))) {
     // TODO(crbug.com/1076817) Remove if a root cause is found.
-    if (!waiter.TimedWait(base::TimeDelta::FromSeconds(10))) {
+    if (!waiter.TimedWait(base::Seconds(10))) {
       RecordInitializationLatency(base::TimeTicks::Now() - *start_time_);
       return false;
     }
@@ -337,8 +337,7 @@
     buffer =
         media::DecoderBuffer::CopyFrom(input_image.data(), input_image.size());
   }
-  buffer->set_timestamp(
-      base::TimeDelta::FromMicroseconds(input_image.Timestamp()));
+  buffer->set_timestamp(base::Microseconds(input_image.Timestamp()));
 
   if (ShouldReinitializeForSettingHDRColorSpace(input_image)) {
     config_.set_color_space_info(
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_adapter_test.cc b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_adapter_test.cc
index e37b9e1..f06a4879 100644
--- a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_adapter_test.cc
+++ b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_adapter_test.cc
@@ -214,7 +214,7 @@
             media::PIXEL_FORMAT_ARGB, mailbox_holders,
             media::VideoFrame::ReleaseMailboxCB(), gfx::Size(640, 360),
             gfx::Rect(640, 360), gfx::Size(640, 360),
-            base::TimeDelta::FromMicroseconds(timestamp));
+            base::Microseconds(timestamp));
     output_cb_.Run(std::move(frame));
   }
 
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_stream_adapter.cc b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_stream_adapter.cc
index e0b42ab..e25c9b0 100644
--- a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_stream_adapter.cc
+++ b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_stream_adapter.cc
@@ -448,7 +448,7 @@
         media::DecoderBuffer::CopyFrom(input_image.data(), input_image.size());
   }
   pending_buffer->buffer->set_timestamp(
-      base::TimeDelta::FromMicroseconds(input_image.Timestamp()));
+      base::Microseconds(input_image.Timestamp()));
   pending_buffer->buffer->set_is_key_frame(
       input_image._frameType == webrtc::VideoFrameType::kVideoFrameKey);
 
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_stream_adapter_test.cc b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_stream_adapter_test.cc
index 6ca528e0b..0c092fa 100644
--- a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_stream_adapter_test.cc
+++ b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_stream_adapter_test.cc
@@ -234,7 +234,7 @@
             media::PIXEL_FORMAT_ARGB, mailbox_holders,
             media::VideoFrame::ReleaseMailboxCB(), gfx::Size(640, 360),
             gfx::Rect(640, 360), gfx::Size(640, 360),
-            base::TimeDelta::FromMicroseconds(timestamp));
+            base::Microseconds(timestamp));
     output_cb_.Run(std::move(frame));
   }
 
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder.cc b/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder.cc
index e9ce0c1..4d33a54 100644
--- a/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder.cc
+++ b/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder.cc
@@ -1203,7 +1203,7 @@
   if (requires_copy) {
     const base::TimeDelta timestamp =
         frame ? frame->timestamp()
-              : base::TimeDelta::FromMilliseconds(next_frame->ntp_time_ms());
+              : base::Milliseconds(next_frame->ntp_time_ms());
     // TODO(https://crbug.com/1194500): Android (e.g. android-pie-arm64-rel)
     // and CrOS does not support the optimzed path, perhaps due to not
     // supporting STORAGE_GPU_MEMORY_BUFFER or NV12? When this is fixed, remove
@@ -1338,8 +1338,7 @@
     frame = media::VideoFrame::WrapVideoFrame(
         black_gmb_frame_, black_gmb_frame_->format(),
         black_gmb_frame_->visible_rect(), black_gmb_frame_->natural_size());
-    frame->set_timestamp(
-        base::TimeDelta::FromMilliseconds(next_frame->ntp_time_ms()));
+    frame->set_timestamp(base::Milliseconds(next_frame->ntp_time_ms()));
   } else {
     frame = static_cast<WebRtcVideoFrameAdapter*>(
                 next_frame->video_frame_buffer().get())
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_test.cc b/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_test.cc
index b912867d..37e40337 100644
--- a/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_test.cc
+++ b/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_test.cc
@@ -649,7 +649,7 @@
   // encoder.
   frame = media::VideoFrame::CreateBlackFrame(
       gfx::Size(kInputFrameWidth * 2, kInputFrameHeight * 2));
-  frame->set_timestamp(base::TimeDelta::FromMilliseconds(123456));
+  frame->set_timestamp(base::Milliseconds(123456));
   frame_adapter = new rtc::RefCountedObject<WebRtcVideoFrameAdapter>(
       frame, std::vector<scoped_refptr<media::VideoFrame>>(),
       new WebRtcVideoFrameAdapter::SharedResources(nullptr));
diff --git a/third_party/blink/renderer/platform/peerconnection/webrtc_audio_sink_test.cc b/third_party/blink/renderer/platform/peerconnection/webrtc_audio_sink_test.cc
index 0088ef1..c70eaba 100644
--- a/third_party/blink/renderer/platform/peerconnection/webrtc_audio_sink_test.cc
+++ b/third_party/blink/renderer/platform/peerconnection/webrtc_audio_sink_test.cc
@@ -88,8 +88,7 @@
     ScopedFakeClock clock(kStartRtcTimestampMs);
 
     base::TimeTicks capture_time =
-        base::TimeTicks() +
-        base::TimeDelta::FromMilliseconds(kStartCaptureTimestampMs);
+        base::TimeTicks() + base::Milliseconds(kStartCaptureTimestampMs);
 
     // The first time to the call OnData(), the TimestampAligner should have no
     // effect work. So expected capture timestamp is from fake_clock.
@@ -104,7 +103,7 @@
 
     web_media_stream_audio_sink->OnData(*bus, capture_time);
 
-    capture_time += base::TimeDelta::FromMilliseconds(kCaptureIntervalMs);
+    capture_time += base::Milliseconds(kCaptureIntervalMs);
     clock.AdvanceTimeMilliseconds(kCaptureIntervalMs);
 
     constexpr int64_t kExpectedTimestampMs =
diff --git a/third_party/blink/renderer/platform/scheduler/common/cooperative_scheduling_manager.cc b/third_party/blink/renderer/platform/scheduler/common/cooperative_scheduling_manager.cc
index 3586b8e..dbc51bb 100644
--- a/third_party/blink/renderer/platform/scheduler/common/cooperative_scheduling_manager.cc
+++ b/third_party/blink/renderer/platform/scheduler/common/cooperative_scheduling_manager.cc
@@ -19,8 +19,7 @@
 
 namespace {
 // Minimum time interval between nested loop runs.
-constexpr base::TimeDelta kNestedLoopMinimumInterval =
-    base::TimeDelta::FromMilliseconds(15);
+constexpr base::TimeDelta kNestedLoopMinimumInterval = base::Milliseconds(15);
 }  // namespace
 
 // static
diff --git a/third_party/blink/renderer/platform/scheduler/common/cooperative_scheduling_manager_unittest.cc b/third_party/blink/renderer/platform/scheduler/common/cooperative_scheduling_manager_unittest.cc
index 9b3af52e..e2ba572 100644
--- a/third_party/blink/renderer/platform/scheduler/common/cooperative_scheduling_manager_unittest.cc
+++ b/third_party/blink/renderer/platform/scheduler/common/cooperative_scheduling_manager_unittest.cc
@@ -59,10 +59,10 @@
     EXPECT_CALL(*manager, RunNestedLoop()).Times(2);
     // Should run nested loop
     manager->Safepoint();
-    test_task_runner->FastForwardBy(base::TimeDelta::FromMilliseconds(14));
+    test_task_runner->FastForwardBy(base::Milliseconds(14));
     // Should not run nested loop because called too soon
     manager->Safepoint();
-    test_task_runner->FastForwardBy(base::TimeDelta::FromMilliseconds(2));
+    test_task_runner->FastForwardBy(base::Milliseconds(2));
     // Should run nested loop
     manager->Safepoint();
   }
diff --git a/third_party/blink/renderer/platform/scheduler/common/features.cc b/third_party/blink/renderer/platform/scheduler/common/features.cc
index dc69dfc..20fbb41e 100644
--- a/third_party/blink/renderer/platform/scheduler/common/features.cc
+++ b/third_party/blink/renderer/platform/scheduler/common/features.cc
@@ -77,7 +77,7 @@
       PolicyOverride::NO_OVERRIDE) {
     seconds = kIntensiveWakeUpThrottling_GracePeriodSeconds.Get();
   }
-  return base::TimeDelta::FromSeconds(seconds);
+  return base::Seconds(seconds);
 }
 
 const base::Feature kThrottleForegroundTimers{
@@ -90,7 +90,7 @@
           &kThrottleForegroundTimers,
           "ForegroundTimersThrottledWakeUpIntervalMills",
           kForegroundTimersThrottling_WakeUpIntervalMillis_Default};
-  return base::TimeDelta::FromMilliseconds(
+  return base::Milliseconds(
       kForegroundTimersThrottledWakeUpIntervalMills.Get());
 }
 
diff --git a/third_party/blink/renderer/platform/scheduler/common/idle_helper.cc b/third_party/blink/renderer/platform/scheduler/common/idle_helper.cc
index 2cdfa12..eca610d 100644
--- a/third_party/blink/renderer/platform/scheduler/common/idle_helper.cc
+++ b/third_party/blink/renderer/platform/scheduler/common/idle_helper.cc
@@ -100,7 +100,7 @@
   }
 
   if (long_idle_period_duration >=
-      base::TimeDelta::FromMilliseconds(kMinimumIdlePeriodDurationMillis)) {
+      base::Milliseconds(kMinimumIdlePeriodDurationMillis)) {
     *next_long_idle_period_delay_out = long_idle_period_duration;
     if (!idle_queue_->HasTaskToRunImmediatelyOrReadyDelayedTask())
       return IdlePeriodState::kInLongIdlePeriodPaused;
@@ -109,8 +109,8 @@
     return IdlePeriodState::kInLongIdlePeriod;
   } else {
     // If we can't start the idle period yet then try again after wake-up.
-    *next_long_idle_period_delay_out = base::TimeDelta::FromMilliseconds(
-        kRetryEnableLongIdlePeriodDelayMillis);
+    *next_long_idle_period_delay_out =
+        base::Milliseconds(kRetryEnableLongIdlePeriodDelayMillis);
     return IdlePeriodState::kNotInIdlePeriod;
   }
 }
@@ -176,7 +176,7 @@
 
   base::TimeDelta idle_period_duration(idle_period_deadline - now);
   if (idle_period_duration <
-      base::TimeDelta::FromMilliseconds(kMinimumIdlePeriodDurationMillis)) {
+      base::Milliseconds(kMinimumIdlePeriodDurationMillis)) {
     TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"),
                  "NotStartingIdlePeriodBecauseDeadlineIsTooClose",
                  "idle_period_duration_ms",
diff --git a/third_party/blink/renderer/platform/scheduler/common/idle_helper.h b/third_party/blink/renderer/platform/scheduler/common/idle_helper.h
index fe8e173..7056fff1 100644
--- a/third_party/blink/renderer/platform/scheduler/common/idle_helper.h
+++ b/third_party/blink/renderer/platform/scheduler/common/idle_helper.h
@@ -85,8 +85,7 @@
   };
 
   // The maximum length of an idle period.
-  static constexpr base::TimeDelta kMaximumIdlePeriod =
-      base::TimeDelta::FromMilliseconds(50);
+  static constexpr base::TimeDelta kMaximumIdlePeriod = base::Milliseconds(50);
 
   // |helper| and |delegate| are not owned by IdleHelper object and must
   // outlive it.
diff --git a/third_party/blink/renderer/platform/scheduler/common/idle_helper_unittest.cc b/third_party/blink/renderer/platform/scheduler/common/idle_helper_unittest.cc
index b1c1d0c1..cceb8770 100644
--- a/third_party/blink/renderer/platform/scheduler/common/idle_helper_unittest.cc
+++ b/third_party/blink/renderer/platform/scheduler/common/idle_helper_unittest.cc
@@ -187,8 +187,7 @@
     default_task_queue_ = scheduler_helper_->DefaultNonMainThreadTaskQueue();
     default_task_runner_ = default_task_queue_->CreateTaskRunner(0);
     idle_task_runner_ = idle_helper_->IdleTaskRunner();
-    test_task_runner_->AdvanceMockTickClock(
-        base::TimeDelta::FromMicroseconds(5000));
+    test_task_runner_->AdvanceMockTickClock(base::Microseconds(5000));
   }
 
   BaseIdleHelperTest(const BaseIdleHelperTest&) = delete;
@@ -240,13 +239,12 @@
   }
 
   static base::TimeDelta retry_enable_long_idle_period_delay() {
-    return base::TimeDelta::FromMilliseconds(
+    return base::Milliseconds(
         IdleHelper::kRetryEnableLongIdlePeriodDelayMillis);
   }
 
   static base::TimeDelta minimum_idle_period_duration() {
-    return base::TimeDelta::FromMilliseconds(
-        IdleHelper::kMinimumIdlePeriodDurationMillis);
+    return base::Milliseconds(IdleHelper::kMinimumIdlePeriodDurationMillis);
   }
 
   base::TimeTicks CurrentIdleTaskDeadline() {
@@ -283,11 +281,10 @@
 TEST_F(IdleHelperTest, TestPostIdleTask) {
   int run_count = 0;
   base::TimeTicks expected_deadline =
-      test_task_runner_->NowTicks() + base::TimeDelta::FromMilliseconds(2300);
+      test_task_runner_->NowTicks() + base::Milliseconds(2300);
   base::TimeTicks deadline_in_task;
 
-  test_task_runner_->AdvanceMockTickClock(
-      base::TimeDelta::FromMilliseconds(100));
+  test_task_runner_->AdvanceMockTickClock(base::Milliseconds(100));
   idle_task_runner_->PostIdleTask(
       FROM_HERE, base::BindOnce(&IdleTestTask, &run_count, &deadline_in_task));
 
@@ -306,8 +303,7 @@
   int run_count = 0;
   base::TimeTicks deadline_in_task;
 
-  test_task_runner_->AdvanceMockTickClock(
-      base::TimeDelta::FromMilliseconds(100));
+  test_task_runner_->AdvanceMockTickClock(base::Milliseconds(100));
   idle_task_runner_->PostIdleTask(
       FROM_HERE, base::BindOnce(&IdleTestTask, &run_count, &deadline_in_task));
 
@@ -317,7 +313,7 @@
   idle_helper_->StartIdlePeriod(
       IdleHelper::IdlePeriodState::kInShortIdlePeriod,
       test_task_runner_->NowTicks(),
-      test_task_runner_->NowTicks() + base::TimeDelta::FromMilliseconds(10));
+      test_task_runner_->NowTicks() + base::Milliseconds(10));
   idle_helper_->EndIdlePeriod();
   test_task_runner_->RunUntilIdle();
   EXPECT_EQ(0, run_count);
@@ -335,7 +331,7 @@
   idle_helper_->StartIdlePeriod(
       IdleHelper::IdlePeriodState::kInShortIdlePeriod,
       test_task_runner_->NowTicks(),
-      test_task_runner_->NowTicks() + base::TimeDelta::FromMilliseconds(10));
+      test_task_runner_->NowTicks() + base::Milliseconds(10));
   test_task_runner_->RunUntilIdle();
   EXPECT_EQ(1, run_count);
 
@@ -346,7 +342,7 @@
   idle_helper_->StartIdlePeriod(
       IdleHelper::IdlePeriodState::kInShortIdlePeriod,
       test_task_runner_->NowTicks(),
-      test_task_runner_->NowTicks() + base::TimeDelta::FromMilliseconds(10));
+      test_task_runner_->NowTicks() + base::Milliseconds(10));
   test_task_runner_->RunUntilIdle();
   EXPECT_EQ(2, run_count);
 }
@@ -365,7 +361,7 @@
   idle_helper_->StartIdlePeriod(
       IdleHelper::IdlePeriodState::kInShortIdlePeriod,
       test_task_runner_->NowTicks(),
-      test_task_runner_->NowTicks() + base::TimeDelta::FromMilliseconds(10));
+      test_task_runner_->NowTicks() + base::Milliseconds(10));
   test_task_runner_->RunUntilIdle();
   // Only the first idle task should execute since it's used up the deadline.
   EXPECT_EQ(1, run_count);
@@ -374,7 +370,7 @@
   idle_helper_->StartIdlePeriod(
       IdleHelper::IdlePeriodState::kInShortIdlePeriod,
       test_task_runner_->NowTicks(),
-      test_task_runner_->NowTicks() + base::TimeDelta::FromMilliseconds(10));
+      test_task_runner_->NowTicks() + base::Milliseconds(10));
   test_task_runner_->RunUntilIdle();
   // Second task should be run on the next idle period.
   EXPECT_EQ(2, run_count);
@@ -412,7 +408,7 @@
   idle_helper_->StartIdlePeriod(
       IdleHelper::IdlePeriodState::kInShortIdlePeriod,
       test_task_runner_->NowTicks(),
-      test_task_runner_->NowTicks() + base::TimeDelta::FromMilliseconds(10));
+      test_task_runner_->NowTicks() + base::Milliseconds(10));
 }
 
 TEST_F(IdleHelperTestWithIdlePeriodObserver, TestEnterAndExitIdlePeriod) {
@@ -429,7 +425,7 @@
   idle_helper_->StartIdlePeriod(
       IdleHelper::IdlePeriodState::kInShortIdlePeriod,
       test_task_runner_->NowTicks(),
-      test_task_runner_->NowTicks() + base::TimeDelta::FromMilliseconds(10));
+      test_task_runner_->NowTicks() + base::Milliseconds(10));
   idle_helper_->EndIdlePeriod();
 }
 
@@ -457,7 +453,7 @@
 }
 
 TEST_F(IdleHelperTest, TestLongIdlePeriodWithPendingDelayedTask) {
-  base::TimeDelta pending_task_delay = base::TimeDelta::FromMilliseconds(30);
+  base::TimeDelta pending_task_delay = base::Milliseconds(30);
   base::TimeTicks expected_deadline =
       test_task_runner_->NowTicks() + pending_task_delay;
   base::TimeTicks deadline_in_task;
@@ -475,7 +471,7 @@
 }
 
 TEST_F(IdleHelperTest, TestLongIdlePeriodWithLatePendingDelayedTask) {
-  base::TimeDelta pending_task_delay = base::TimeDelta::FromMilliseconds(10);
+  base::TimeDelta pending_task_delay = base::Milliseconds(10);
   base::TimeTicks deadline_in_task;
   int run_count = 0;
 
@@ -483,8 +479,7 @@
                                         pending_task_delay);
 
   // Advance clock until after delayed task was meant to be run.
-  test_task_runner_->AdvanceMockTickClock(
-      base::TimeDelta::FromMilliseconds(20));
+  test_task_runner_->AdvanceMockTickClock(base::Milliseconds(20));
 
   // Post an idle task and then EnableLongIdlePeriod. Since there is a late
   // pending delayed task this shouldn't actually start an idle period.
@@ -511,7 +506,7 @@
 
   g_max_idle_task_reposts = 3;
   base::TimeTicks clock_before(test_task_runner_->NowTicks());
-  base::TimeDelta idle_task_runtime(base::TimeDelta::FromMilliseconds(10));
+  base::TimeDelta idle_task_runtime(base::Milliseconds(10));
   idle_task_runner_->PostIdleTask(
       FROM_HERE,
       base::BindOnce(&RepostingUpdateClockIdleTestTask,
@@ -545,8 +540,8 @@
 
 TEST_F(IdleHelperTestWithIdlePeriodObserver,
        TestLongIdlePeriodWhenNotCanEnterLongIdlePeriod) {
-  base::TimeDelta delay = base::TimeDelta::FromMilliseconds(1000);
-  base::TimeDelta half_delay = base::TimeDelta::FromMilliseconds(500);
+  base::TimeDelta delay = base::Milliseconds(1000);
+  base::TimeDelta half_delay = base::Milliseconds(500);
   base::TimeTicks delay_over = test_task_runner_->NowTicks() + delay;
   base::TimeTicks deadline_in_task;
   int run_count = 0;
@@ -589,7 +584,7 @@
   int run_count = 0;
 
   base::TimeTicks clock_before(test_task_runner_->NowTicks());
-  base::TimeDelta idle_task_runtime(base::TimeDelta::FromMilliseconds(10));
+  base::TimeDelta idle_task_runtime(base::Milliseconds(10));
 
   // The second idle period should happen immediately after the first the
   // they have max deadlines.
@@ -613,8 +608,8 @@
   base::TimeTicks actual_deadline;
   int run_count = 0;
 
-  base::TimeDelta pending_task_delay(base::TimeDelta::FromMilliseconds(20));
-  base::TimeDelta idle_task_duration(base::TimeDelta::FromMilliseconds(10));
+  base::TimeDelta pending_task_delay(base::Milliseconds(20));
+  base::TimeDelta idle_task_duration(base::Milliseconds(10));
   base::TimeTicks expected_deadline(
       test_task_runner_->NowTicks() + pending_task_delay +
       maximum_idle_period_duration() + retry_enable_long_idle_period_delay());
@@ -668,7 +663,7 @@
   // Posting a task should transition us to the an active state.
   g_max_idle_task_reposts = 2;
   base::TimeTicks clock_before(test_task_runner_->NowTicks());
-  base::TimeDelta idle_task_runtime(base::TimeDelta::FromMilliseconds(10));
+  base::TimeDelta idle_task_runtime(base::Milliseconds(10));
   idle_task_runner_->PostIdleTask(
       FROM_HERE,
       base::BindOnce(&RepostingUpdateClockIdleTestTask,
@@ -732,7 +727,7 @@
   idle_helper_->StartIdlePeriod(
       IdleHelper::IdlePeriodState::kInShortIdlePeriod,
       test_task_runner_->NowTicks(),
-      test_task_runner_->NowTicks() + base::TimeDelta::FromMilliseconds(10));
+      test_task_runner_->NowTicks() + base::Milliseconds(10));
   test_task_runner_->RunUntilIdle();
   EXPECT_EQ(1, run_count);
   EXPECT_FALSE(can_exceed_idle_deadline);
@@ -740,7 +735,7 @@
   // Should return false for a long idle period which is shortened due to a
   // pending delayed task.
   default_task_runner_->PostDelayedTask(FROM_HERE, base::BindOnce(&NullTask),
-                                        base::TimeDelta::FromMilliseconds(10));
+                                        base::Milliseconds(10));
   idle_task_runner_->PostIdleTask(
       FROM_HERE, base::BindOnce(&TestCanExceedIdleDeadlineIfRequiredTask,
                                 idle_helper_.get(), &can_exceed_idle_deadline,
@@ -774,8 +769,7 @@
   };
 
   IdleHelperWithQuiescencePeriodTest()
-      : BaseIdleHelperTest(
-            base::TimeDelta::FromMilliseconds(kQuiescenceDelayMs)) {}
+      : BaseIdleHelperTest(base::Milliseconds(kQuiescenceDelayMs)) {}
 
   ~IdleHelperWithQuiescencePeriodTest() override = default;
 
@@ -863,15 +857,14 @@
   default_task_runner_->PostTask(
       FROM_HERE, base::BindOnce(&RepeatingTask,
                                 base::Unretained(default_task_runner_.get()),
-                                10, base::TimeDelta::FromMilliseconds(40)));
+                                10, base::Milliseconds(40)));
 
   int run_count = 0;
   // In this scenario EnableLongIdlePeriod deems us not to be quiescent 5x in
   // a row.
   base::TimeTicks expected_deadline =
       test_task_runner_->NowTicks() +
-      base::TimeDelta::FromMilliseconds(5 * kQuiescenceDelayMs +
-                                        kLongIdlePeriodMs);
+      base::Milliseconds(5 * kQuiescenceDelayMs + kLongIdlePeriodMs);
   base::TimeTicks deadline_in_task;
   idle_task_runner_->PostIdleTask(
       FROM_HERE, base::BindOnce(&IdleTestTask, &run_count, &deadline_in_task));
@@ -898,7 +891,7 @@
   base::TimeTicks deadline_in_task;
   base::TimeTicks expected_deadline =
       test_task_runner_->NowTicks() +
-      base::TimeDelta::FromMilliseconds(kQuiescenceDelayMs + kLongIdlePeriodMs);
+      base::Milliseconds(kQuiescenceDelayMs + kLongIdlePeriodMs);
   idle_task_runner_->PostIdleTask(
       FROM_HERE, base::BindOnce(&IdleTestTask, &run_count, &deadline_in_task));
   idle_helper_->EnableLongIdlePeriod();
@@ -915,7 +908,7 @@
   idle_task_runner_->PostIdleTask(
       FROM_HERE, base::BindOnce(&IdleTestTask, &run_count, &deadline_in_task));
 
-  base::TimeDelta half_a_ms(base::TimeDelta::FromMicroseconds(50));
+  base::TimeDelta half_a_ms(base::Microseconds(50));
   base::TimeTicks less_than_min_deadline(test_task_runner_->NowTicks() +
                                          minimum_idle_period_duration() -
                                          half_a_ms);
@@ -940,7 +933,7 @@
   int run_count = 0;
   base::TimeTicks deadline_in_task;
 
-  base::TimeDelta half_a_ms(base::TimeDelta::FromMicroseconds(50));
+  base::TimeDelta half_a_ms(base::Microseconds(50));
   base::TimeDelta less_than_min_deadline_duration(
       minimum_idle_period_duration() - half_a_ms);
   base::TimeDelta more_than_min_deadline_duration(
@@ -998,18 +991,17 @@
 TEST_F(IdleHelperTest, TestPostDelayedIdleTask) {
   int run_count = 0;
   base::TimeTicks expected_deadline =
-      test_task_runner_->NowTicks() + base::TimeDelta::FromMilliseconds(2300);
+      test_task_runner_->NowTicks() + base::Milliseconds(2300);
   base::TimeTicks deadline_in_task;
 
   // Posting a delayed idle task should not post anything on the underlying
   // task queue until the delay is up.
   idle_task_runner_->PostDelayedIdleTask(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(200),
+      FROM_HERE, base::Milliseconds(200),
       base::BindOnce(&IdleTestTask, &run_count, &deadline_in_task));
   EXPECT_EQ(0u, idle_queue()->GetNumberOfPendingTasks());
 
-  test_task_runner_->AdvanceMockTickClock(
-      base::TimeDelta::FromMilliseconds(100));
+  test_task_runner_->AdvanceMockTickClock(base::Milliseconds(100));
 
   // It shouldn't run until the delay is over even though we went idle.
   idle_helper_->StartIdlePeriod(IdleHelper::IdlePeriodState::kInShortIdlePeriod,
@@ -1019,8 +1011,7 @@
   test_task_runner_->RunUntilIdle();
   EXPECT_EQ(0, run_count);
 
-  test_task_runner_->AdvanceMockTickClock(
-      base::TimeDelta::FromMilliseconds(100));
+  test_task_runner_->AdvanceMockTickClock(base::Milliseconds(100));
   idle_helper_->StartIdlePeriod(IdleHelper::IdlePeriodState::kInShortIdlePeriod,
                                 test_task_runner_->NowTicks(),
                                 expected_deadline);
@@ -1036,7 +1027,7 @@
 TEST_F(IdleHelperTest, OnPendingTasksChanged) {
   int run_count = 0;
   base::TimeTicks expected_deadline =
-      test_task_runner_->NowTicks() + base::TimeDelta::FromMilliseconds(2300);
+      test_task_runner_->NowTicks() + base::Milliseconds(2300);
   base::TimeTicks deadline_in_task;
 
   {
@@ -1047,8 +1038,7 @@
     EXPECT_CALL(*idle_helper_, OnPendingTasksChanged(false)).Times(1);
   }
 
-  test_task_runner_->AdvanceMockTickClock(
-      base::TimeDelta::FromMilliseconds(100));
+  test_task_runner_->AdvanceMockTickClock(base::Milliseconds(100));
   idle_task_runner_->PostIdleTask(
       FROM_HERE, base::BindOnce(&IdleTestTask, &run_count, &deadline_in_task));
 
@@ -1068,7 +1058,7 @@
 TEST_F(IdleHelperTest, OnPendingTasksChanged_TwoTasksAtTheSameTime) {
   int run_count = 0;
   base::TimeTicks expected_deadline =
-      test_task_runner_->NowTicks() + base::TimeDelta::FromMilliseconds(2300);
+      test_task_runner_->NowTicks() + base::Milliseconds(2300);
   base::TimeTicks deadline_in_task;
 
   {
@@ -1080,8 +1070,7 @@
     EXPECT_CALL(*idle_helper_, OnPendingTasksChanged(false)).Times(1);
   }
 
-  test_task_runner_->AdvanceMockTickClock(
-      base::TimeDelta::FromMilliseconds(100));
+  test_task_runner_->AdvanceMockTickClock(base::Milliseconds(100));
   idle_task_runner_->PostIdleTask(
       FROM_HERE, base::BindOnce(&IdleTestTask, &run_count, &deadline_in_task));
   idle_task_runner_->PostIdleTask(
diff --git a/third_party/blink/renderer/platform/scheduler/common/metrics_helper.cc b/third_party/blink/renderer/platform/scheduler/common/metrics_helper.cc
index 5494aff5..255e5ab 100644
--- a/third_party/blink/renderer/platform/scheduler/common/metrics_helper.cc
+++ b/third_party/blink/renderer/platform/scheduler/common/metrics_helper.cc
@@ -14,8 +14,7 @@
 // Threshold for discarding ultra-long tasks. It is assumed that ultra-long
 // tasks are reporting glitches (e.g. system falling asleep on the middle of the
 // task).
-constexpr base::TimeDelta kLongTaskDiscardingThreshold =
-    base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kLongTaskDiscardingThreshold = base::Seconds(30);
 
 scheduling_metrics::ThreadType ConvertBlinkThreadType(ThreadType thread_type) {
   switch (thread_type) {
diff --git a/third_party/blink/renderer/platform/scheduler/common/metrics_helper_unittest.cc b/third_party/blink/renderer/platform/scheduler/common/metrics_helper_unittest.cc
index e1814ba..e3c9c837 100644
--- a/third_party/blink/renderer/platform/scheduler/common/metrics_helper_unittest.cc
+++ b/third_party/blink/renderer/platform/scheduler/common/metrics_helper_unittest.cc
@@ -31,11 +31,11 @@
 };
 
 base::TimeTicks Seconds(int seconds) {
-  return base::TimeTicks() + base::TimeDelta::FromSeconds(seconds);
+  return base::TimeTicks() + base::Seconds(seconds);
 }
 
 base::ThreadTicks ThreadSeconds(int seconds) {
-  return base::ThreadTicks() + base::TimeDelta::FromSeconds(seconds);
+  return base::ThreadTicks() + base::Seconds(seconds);
 }
 
 }  // namespace
diff --git a/third_party/blink/renderer/platform/scheduler/common/post_cancellable_task_unittest.cc b/third_party/blink/renderer/platform/scheduler/common/post_cancellable_task_unittest.cc
index cf2485bc..8445f828 100644
--- a/third_party/blink/renderer/platform/scheduler/common/post_cancellable_task_unittest.cc
+++ b/third_party/blink/renderer/platform/scheduler/common/post_cancellable_task_unittest.cc
@@ -59,7 +59,7 @@
   count = 0;
   handle = PostDelayedCancellableTask(
       *task_runner, FROM_HERE, WTF::Bind(&Increment, WTF::Unretained(&count)),
-      base::TimeDelta::FromMilliseconds(1));
+      base::Milliseconds(1));
   EXPECT_EQ(0, count);
   EXPECT_TRUE(handle.IsActive());
   task_runner->RunUntilIdle();
@@ -78,7 +78,7 @@
   count = 0;
   handle = PostNonNestableDelayedCancellableTask(
       *task_runner, FROM_HERE, WTF::Bind(&Increment, WTF::Unretained(&count)),
-      base::TimeDelta::FromMilliseconds(1));
+      base::Milliseconds(1));
   EXPECT_EQ(0, count);
   EXPECT_TRUE(handle.IsActive());
   task_runner->RunUntilIdle();
@@ -98,7 +98,7 @@
   count = 0;
   handle = PostDelayedCancellableTask(
       *task_runner, FROM_HERE, WTF::Bind(&Increment, WTF::Unretained(&count)),
-      base::TimeDelta::FromMilliseconds(1));
+      base::Milliseconds(1));
   handle.Cancel();
   EXPECT_EQ(0, count);
   EXPECT_FALSE(handle.IsActive());
@@ -117,7 +117,7 @@
   count = 0;
   handle = PostNonNestableDelayedCancellableTask(
       *task_runner, FROM_HERE, WTF::Bind(&Increment, WTF::Unretained(&count)),
-      base::TimeDelta::FromMilliseconds(1));
+      base::Milliseconds(1));
   handle.Cancel();
   EXPECT_EQ(0, count);
   EXPECT_FALSE(handle.IsActive());
diff --git a/third_party/blink/renderer/platform/scheduler/common/thread_cpu_throttler.cc b/third_party/blink/renderer/platform/scheduler/common/thread_cpu_throttler.cc
index d09e087..db25643 100644
--- a/third_party/blink/renderer/platform/scheduler/common/thread_cpu_throttler.cc
+++ b/third_party/blink/renderer/platform/scheduler/common/thread_cpu_throttler.cc
@@ -138,8 +138,7 @@
       std::min(run_duration.InMicroseconds(), static_cast<int64_t>(1000)));
   uint32_t sleep_duration_us =
       run_duration_us * throttling_rate_percent / 100 - run_duration_us;
-  base::TimeTicks wake_up_time =
-      now + base::TimeDelta::FromMicroseconds(sleep_duration_us);
+  base::TimeTicks wake_up_time = now + base::Microseconds(sleep_duration_us);
   do {
     now = base::TimeTicks::Now();
   } while (now < wake_up_time);
@@ -152,13 +151,13 @@
   const int quant_time_us = 200;
 #ifdef USE_SIGNALS
   pthread_kill(throttled_thread_handle_.platform_handle(), SIGUSR2);
-  Sleep(base::TimeDelta::FromMicroseconds(quant_time_us));
+  Sleep(base::Microseconds(quant_time_us));
 #elif defined(OS_WIN)
   double rate = Acquire_Load(&throttling_rate_percent_) / 100.;
   base::TimeDelta run_duration =
-      base::TimeDelta::FromMicroseconds(static_cast<int>(quant_time_us / rate));
+      base::Microseconds(static_cast<int>(quant_time_us / rate));
   base::TimeDelta sleep_duration =
-      base::TimeDelta::FromMicroseconds(quant_time_us) - run_duration;
+      base::Microseconds(quant_time_us) - run_duration;
   Sleep(run_duration);
   ::SuspendThread(throttled_thread_handle_.platform_handle());
   Sleep(sleep_duration);
diff --git a/third_party/blink/renderer/platform/scheduler/common/thread_load_tracker_unittest.cc b/third_party/blink/renderer/platform/scheduler/common/thread_load_tracker_unittest.cc
index 4b99d92..b627adb2 100644
--- a/third_party/blink/renderer/platform/scheduler/common/thread_load_tracker_unittest.cc
+++ b/third_party/blink/renderer/platform/scheduler/common/thread_load_tracker_unittest.cc
@@ -19,11 +19,11 @@
 }
 
 base::TimeTicks SecondsToTime(int seconds) {
-  return base::TimeTicks() + base::TimeDelta::FromSeconds(seconds);
+  return base::TimeTicks() + base::Seconds(seconds);
 }
 
 base::TimeTicks MillisecondsToTime(int milliseconds) {
-  return base::TimeTicks() + base::TimeDelta::FromMilliseconds(milliseconds);
+  return base::TimeTicks() + base::Milliseconds(milliseconds);
 }
 
 }  // namespace
@@ -34,7 +34,7 @@
   ThreadLoadTracker thread_load_tracker(
       SecondsToTime(1),
       base::BindRepeating(&AddToVector, base::Unretained(&result)),
-      base::TimeDelta::FromSeconds(1));
+      base::Seconds(1));
   thread_load_tracker.Resume(SecondsToTime(1));
 
   thread_load_tracker.RecordTaskTime(SecondsToTime(1), SecondsToTime(3));
@@ -70,7 +70,7 @@
   ThreadLoadTracker thread_load_tracker(
       SecondsToTime(1),
       base::BindRepeating(&AddToVector, base::Unretained(&result)),
-      base::TimeDelta::FromSeconds(1));
+      base::Seconds(1));
   thread_load_tracker.Resume(SecondsToTime(1));
 
   thread_load_tracker.RecordTaskTime(SecondsToTime(2), SecondsToTime(3));
@@ -107,7 +107,7 @@
   ThreadLoadTracker thread_load_tracker(
       SecondsToTime(1),
       base::BindRepeating(&AddToVector, base::Unretained(&result)),
-      base::TimeDelta::FromSeconds(1));
+      base::Seconds(1));
 
   // ThreadLoadTracker should be disabled and these tasks should be
   // ignored.
@@ -127,7 +127,7 @@
   ThreadLoadTracker thread_load_tracker(
       SecondsToTime(1),
       base::BindRepeating(&AddToVector, base::Unretained(&result)),
-      base::TimeDelta::FromSeconds(1));
+      base::Seconds(1));
 
   thread_load_tracker.Resume(SecondsToTime(1));
 
diff --git a/third_party/blink/renderer/platform/scheduler/common/throttling/budget_pool_unittest.cc b/third_party/blink/renderer/platform/scheduler/common/throttling/budget_pool_unittest.cc
index 876f3099..fcc19c55 100644
--- a/third_party/blink/renderer/platform/scheduler/common/throttling/budget_pool_unittest.cc
+++ b/third_party/blink/renderer/platform/scheduler/common/throttling/budget_pool_unittest.cc
@@ -30,17 +30,17 @@
   ~BudgetPoolTest() override = default;
 
   void SetUp() override {
-    clock_.Advance(base::TimeDelta::FromMicroseconds(5000));
+    clock_.Advance(base::Microseconds(5000));
     null_task_runner_ = base::MakeRefCounted<base::NullTaskRunner>();
     start_time_ = clock_.NowTicks();
   }
 
   base::TimeTicks MillisecondsAfterStart(int milliseconds) {
-    return start_time_ + base::TimeDelta::FromMilliseconds(milliseconds);
+    return start_time_ + base::Milliseconds(milliseconds);
   }
 
   base::TimeTicks SecondsAfterStart(int seconds) {
-    return start_time_ + base::TimeDelta::FromSeconds(seconds);
+    return start_time_ + base::Seconds(seconds);
   }
 
  protected:
@@ -81,8 +81,8 @@
   std::unique_ptr<WakeUpBudgetPool> pool =
       std::make_unique<WakeUpBudgetPool>("test");
 
-  pool->SetWakeUpInterval(base::TimeTicks(), base::TimeDelta::FromSeconds(10));
-  pool->SetWakeUpDuration(base::TimeDelta::FromMilliseconds(10));
+  pool->SetWakeUpInterval(base::TimeTicks(), base::Seconds(10));
+  pool->SetWakeUpDuration(base::Milliseconds(10));
 
   // Can't run tasks until a wake-up.
   EXPECT_FALSE(pool->CanRunTasksAt(MillisecondsAfterStart(0)));
@@ -102,7 +102,7 @@
   // GetNextAllowedRunTime should return the desired time when in the
   // wakeup window and return the next wakeup otherwise.
   EXPECT_EQ(start_time_, pool->GetNextAllowedRunTime(start_time_));
-  EXPECT_EQ(base::TimeTicks() + base::TimeDelta::FromSeconds(10),
+  EXPECT_EQ(base::TimeTicks() + base::Seconds(10),
             pool->GetNextAllowedRunTime(MillisecondsAfterStart(15)));
 
   pool->RecordTaskRunTime(MillisecondsAfterStart(5), MillisecondsAfterStart(7));
@@ -114,7 +114,7 @@
   EXPECT_FALSE(pool->CanRunTasksAt(MillisecondsAfterStart(10)));
   EXPECT_FALSE(pool->CanRunTasksAt(MillisecondsAfterStart(11)));
   EXPECT_EQ(start_time_, pool->GetNextAllowedRunTime(start_time_));
-  EXPECT_EQ(base::TimeTicks() + base::TimeDelta::FromSeconds(10),
+  EXPECT_EQ(base::TimeTicks() + base::Seconds(10),
             pool->GetNextAllowedRunTime(MillisecondsAfterStart(15)));
 
   pool->OnWakeUp(MillisecondsAfterStart(12005));
@@ -126,7 +126,7 @@
   EXPECT_TRUE(pool->CanRunTasksAt(MillisecondsAfterStart(12014)));
   EXPECT_FALSE(pool->CanRunTasksAt(MillisecondsAfterStart(12015)));
   EXPECT_FALSE(pool->CanRunTasksAt(MillisecondsAfterStart(12016)));
-  EXPECT_EQ(base::TimeTicks() + base::TimeDelta::FromSeconds(20),
+  EXPECT_EQ(base::TimeTicks() + base::Seconds(20),
             pool->GetNextAllowedRunTime(SecondsAfterStart(13)));
 }
 
diff --git a/third_party/blink/renderer/platform/scheduler/common/throttling/task_queue_throttler_unittest.cc b/third_party/blink/renderer/platform/scheduler/common/throttling/task_queue_throttler_unittest.cc
index 0cad303e..23337fe 100644
--- a/third_party/blink/renderer/platform/scheduler/common/throttling/task_queue_throttler_unittest.cc
+++ b/third_party/blink/renderer/platform/scheduler/common/throttling/task_queue_throttler_unittest.cc
@@ -44,7 +44,7 @@
   if (++(*count) < 10) {
     timer_queue->task_runner()->PostDelayedTask(
         FROM_HERE, base::BindOnce(&RunTenTimesTask, count, timer_queue),
-        base::TimeDelta::FromMilliseconds(1));
+        base::Milliseconds(1));
   }
 }
 
@@ -66,8 +66,7 @@
 
   void SetUp() override {
     // A null clock triggers some assertions.
-    test_task_runner_->AdvanceMockTickClock(
-        base::TimeDelta::FromMilliseconds(5));
+    test_task_runner_->AdvanceMockTickClock(base::Milliseconds(5));
     start_time_ = test_task_runner_->NowTicks();
 
     sequence_manager_ = base::sequence_manager::SequenceManagerForTest::Create(
@@ -76,7 +75,7 @@
         std::make_unique<WakeUpBudgetPool>("Wake Up Budget Pool");
     wake_up_budget_pool_->SetWakeUpDuration(base::TimeDelta());
     wake_up_budget_pool_->SetWakeUpInterval(base::TimeTicks(),
-                                            base::TimeDelta::FromSeconds(1));
+                                            base::Seconds(1));
 
     timer_queue_ = CreateTaskQueue("Timer queue");
     task_queue_throttler_ = CreateThrottlerForTaskQueue(timer_queue_.get());
@@ -120,9 +119,9 @@
     size_t count = 0;
     timer_task_runner_->PostDelayedTask(
         FROM_HERE, base::BindOnce(&RunTenTimesTask, &count, timer_queue),
-        base::TimeDelta::FromMilliseconds(1));
+        base::Milliseconds(1));
 
-    test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(11));
+    test_task_runner_->FastForwardBy(base::Milliseconds(11));
     EXPECT_EQ(count, 0u);
 
     // Make sure the rest of the tasks run or we risk a UAF on |count|.
@@ -134,9 +133,9 @@
     size_t count = 0;
     timer_task_runner_->PostDelayedTask(
         FROM_HERE, base::BindOnce(&RunTenTimesTask, &count, timer_queue),
-        base::TimeDelta::FromMilliseconds(1));
+        base::Milliseconds(1));
 
-    test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(11));
+    test_task_runner_->FastForwardBy(base::Milliseconds(11));
     EXPECT_EQ(count, 10u);
   }
 
@@ -148,8 +147,8 @@
 
   void ForwardTimeToNextMinute() {
     test_task_runner_->FastForwardBy(
-        test_task_runner_->NowTicks().SnappedToNextTick(
-            base::TimeTicks(), base::TimeDelta::FromMinutes(1)) -
+        test_task_runner_->NowTicks().SnappedToNextTick(base::TimeTicks(),
+                                                        base::Minutes(1)) -
         test_task_runner_->NowTicks());
   }
 
@@ -211,8 +210,7 @@
     TaskQueueThrottlerTest::SetUp();
     if (GetParam()) {
       // Will advance the time by this value after running each task.
-      proxy_clock_.SetAutoAdvanceInterval(
-          base::TimeDelta::FromMicroseconds(10));
+      proxy_clock_.SetAutoAdvanceInterval(base::Microseconds(10));
     }
   }
 
@@ -232,7 +230,7 @@
 // Round up time to milliseconds to deal with autoadvancing time.
 // TODO(altimin): round time only when autoadvancing time is enabled.
 base::TimeDelta RoundTimeToMilliseconds(base::TimeDelta time) {
-  return time - time % base::TimeDelta::FromMilliseconds(1);
+  return time - time % base::Milliseconds(1);
 }
 
 base::TimeTicks RoundTimeToMilliseconds(base::TimeTicks time) {
@@ -248,7 +246,7 @@
 void ExpensiveTestTask(Vector<base::TimeTicks>* run_times,
                        scoped_refptr<TestMockTimeTaskRunner> task_runner) {
   run_times->push_back(RoundTimeToMilliseconds(task_runner->NowTicks()));
-  task_runner->AdvanceMockTickClock(base::TimeDelta::FromMilliseconds(250));
+  task_runner->AdvanceMockTickClock(base::Milliseconds(250));
   // FIXME No auto-advancing
 }
 
@@ -263,30 +261,29 @@
   Vector<base::TimeTicks> run_times;
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(200.0));
+      base::Milliseconds(200.0));
 
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(800.0));
+      base::Milliseconds(800.0));
 
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(1200.0));
+      base::Milliseconds(1200.0));
 
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(8300.0));
+      base::Milliseconds(8300.0));
 
   task_queue_throttler_->IncreaseThrottleRefCount();
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
   // Times are aligned to a multiple of 1000 milliseconds.
-  EXPECT_THAT(run_times,
-              ElementsAre(base::TimeTicks() + base::TimeDelta::FromSeconds(1),
-                          base::TimeTicks() + base::TimeDelta::FromSeconds(1),
-                          base::TimeTicks() + base::TimeDelta::FromSeconds(2),
-                          base::TimeTicks() + base::TimeDelta::FromSeconds(9)));
+  EXPECT_THAT(run_times, ElementsAre(base::TimeTicks() + base::Seconds(1),
+                                     base::TimeTicks() + base::Seconds(1),
+                                     base::TimeTicks() + base::Seconds(2),
+                                     base::TimeTicks() + base::Seconds(9)));
 }
 
 TEST_P(TaskQueueThrottlerWithAutoAdvancingTimeTest,
@@ -294,19 +291,19 @@
   Vector<base::TimeTicks> run_times;
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(200.0));
+      base::Milliseconds(200.0));
 
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(800.0));
+      base::Milliseconds(800.0));
 
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(1200.0));
+      base::Milliseconds(1200.0));
 
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(8300.0));
+      base::Milliseconds(8300.0));
 
   task_queue_throttler_->IncreaseThrottleRefCount();
   task_queue_throttler_->DecreaseThrottleRefCount();
@@ -317,14 +314,10 @@
   EXPECT_THAT(
       run_times,
       ElementsAre(
-          RoundTimeToMilliseconds(start_time_ +
-                                  base::TimeDelta::FromMilliseconds(200.0)),
-          RoundTimeToMilliseconds(start_time_ +
-                                  base::TimeDelta::FromMilliseconds(800.0)),
-          RoundTimeToMilliseconds(start_time_ +
-                                  base::TimeDelta::FromMilliseconds(1200.0)),
-          RoundTimeToMilliseconds(start_time_ +
-                                  base::TimeDelta::FromMilliseconds(8300.0))));
+          RoundTimeToMilliseconds(start_time_ + base::Milliseconds(200.0)),
+          RoundTimeToMilliseconds(start_time_ + base::Milliseconds(800.0)),
+          RoundTimeToMilliseconds(start_time_ + base::Milliseconds(1200.0)),
+          RoundTimeToMilliseconds(start_time_ + base::Milliseconds(8300.0))));
 }
 
 TEST_P(TaskQueueThrottlerWithAutoAdvancingTimeTest, Refcount) {
@@ -358,8 +351,7 @@
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
   EXPECT_THAT(run_times,
-              ElementsAre(base::TimeTicks() +
-                          base::TimeDelta::FromMilliseconds(1000.0)));
+              ElementsAre(base::TimeTicks() + base::Milliseconds(1000.0)));
 }
 
 TEST_P(TaskQueueThrottlerWithAutoAdvancingTimeTest, WakeUpForDelayedTask) {
@@ -371,19 +363,18 @@
   // Posting a task should trigger the pump.
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(1200.0));
+      base::Milliseconds(1200.0));
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
   EXPECT_THAT(run_times,
-              ElementsAre(base::TimeTicks() +
-                          base::TimeDelta::FromMilliseconds(2000.0)));
+              ElementsAre(base::TimeTicks() + base::Milliseconds(2000.0)));
 }
 
 TEST_P(TaskQueueThrottlerWithAutoAdvancingTimeTest,
        SingleThrottledTaskPumpedAndRunWithNoExtraneousMessageLoopTasks) {
   task_queue_throttler_->IncreaseThrottleRefCount();
 
-  base::TimeDelta delay(base::TimeDelta::FromMilliseconds(10));
+  base::TimeDelta delay(base::Milliseconds(10));
   timer_task_runner_->PostDelayedTask(FROM_HERE, base::BindOnce(&NopTask),
                                       delay);
   EXPECT_EQ(1u, test_task_runner_->GetPendingTaskCount());
@@ -393,7 +384,7 @@
        SingleFutureThrottledTaskPumpedAndRunWithNoExtraneousMessageLoopTasks) {
   task_queue_throttler_->IncreaseThrottleRefCount();
 
-  base::TimeDelta delay(base::TimeDelta::FromSecondsD(15.5));
+  base::TimeDelta delay(base::Seconds(15.5));
   timer_task_runner_->PostDelayedTask(FROM_HERE, base::BindOnce(&NopTask),
                                       delay);
   EXPECT_EQ(1u, test_task_runner_->GetPendingTaskCount());
@@ -404,12 +395,12 @@
   task_queue_throttler_->IncreaseThrottleRefCount();
   Vector<base::TimeTicks> run_times;
 
-  base::TimeDelta delay(base::TimeDelta::FromSecondsD(15.5));
+  base::TimeDelta delay(base::Seconds(15.5));
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
       delay);
 
-  base::TimeDelta delay2(base::TimeDelta::FromSecondsD(5.5));
+  base::TimeDelta delay2(base::Seconds(5.5));
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
       delay2);
@@ -420,10 +411,8 @@
   test_task_runner_->FastForwardBy(test_task_runner_->NextPendingTaskDelay());
   EXPECT_EQ(0u, test_task_runner_->GetPendingTaskCount());
 
-  EXPECT_THAT(
-      run_times,
-      ElementsAre(base::TimeTicks() + base::TimeDelta::FromSeconds(6),
-                  base::TimeTicks() + base::TimeDelta::FromSeconds(16)));
+  EXPECT_THAT(run_times, ElementsAre(base::TimeTicks() + base::Seconds(6),
+                                     base::TimeTicks() + base::Seconds(16)));
 }
 
 TEST_P(TaskQueueThrottlerWithAutoAdvancingTimeTest,
@@ -435,25 +424,23 @@
   // Post an initial task that should run at the first aligned time period.
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(900.0));
+      base::Milliseconds(900.0));
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
   // Advance realtime.
-  test_task_runner_->AdvanceMockTickClock(
-      base::TimeDelta::FromMilliseconds(250));
+  test_task_runner_->AdvanceMockTickClock(base::Milliseconds(250));
 
   // Post a task that due to real time + delay must run in the third aligned
   // time period.
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(900.0));
+      base::Milliseconds(900.0));
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
-  EXPECT_THAT(run_times,
-              ElementsAre(base::TimeTicks() + base::TimeDelta::FromSeconds(1),
-                          base::TimeTicks() + base::TimeDelta::FromSeconds(3)));
+  EXPECT_THAT(run_times, ElementsAre(base::TimeTicks() + base::Seconds(1),
+                                     base::TimeTicks() + base::Seconds(3)));
 }
 
 TEST_P(TaskQueueThrottlerWithAutoAdvancingTimeTest,
@@ -483,20 +470,18 @@
   timer_task_runner_->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&ExpensiveTestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(200));
+      base::Milliseconds(200));
   timer_task_runner_->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&ExpensiveTestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(200));
+      base::Milliseconds(200));
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
   // The 1st task runs when allowed by the WakeUpBudgetPool. The 2nd task
   // runs when the CPU budget used by the 2nd task has recovered.
-  EXPECT_THAT(
-      run_times,
-      ElementsAre(TimeTicks() + base::TimeDelta::FromSeconds(1),
-                  start_time_ + base::TimeDelta::FromMilliseconds(2500)));
+  EXPECT_THAT(run_times, ElementsAre(TimeTicks() + base::Seconds(1),
+                                     start_time_ + base::Milliseconds(2500)));
 
   pool->RemoveThrottler(test_task_runner_->NowTicks(),
                         task_queue_throttler_.get());
@@ -507,18 +492,16 @@
   timer_task_runner_->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&ExpensiveTestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(200));
+      base::Milliseconds(200));
   timer_task_runner_->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&ExpensiveTestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(200));
+      base::Milliseconds(200));
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
-  EXPECT_THAT(
-      run_times,
-      ElementsAre(TimeTicks() + base::TimeDelta::FromMilliseconds(3000),
-                  TimeTicks() + base::TimeDelta::FromMilliseconds(3250)));
+  EXPECT_THAT(run_times, ElementsAre(TimeTicks() + base::Milliseconds(3000),
+                                     TimeTicks() + base::Milliseconds(3250)));
 
   task_queue_throttler_->DecreaseThrottleRefCount();
 }
@@ -540,12 +523,12 @@
   timer_task_runner_->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&ExpensiveTestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(200));
+      base::Milliseconds(200));
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
-  EXPECT_THAT(run_times, ElementsAre(base::TimeTicks() +
-                                     base::TimeDelta::FromMilliseconds(1000)));
+  EXPECT_THAT(run_times,
+              ElementsAre(base::TimeTicks() + base::Milliseconds(1000)));
   run_times.clear();
 
   LazyNow lazy_now_1(test_task_runner_->GetMockTickClock());
@@ -556,12 +539,12 @@
   timer_task_runner_->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&ExpensiveTestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(200));
+      base::Milliseconds(200));
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
-  EXPECT_THAT(run_times, ElementsAre(base::TimeTicks() +
-                                     base::TimeDelta::FromMilliseconds(2000)));
+  EXPECT_THAT(run_times,
+              ElementsAre(base::TimeTicks() + base::Milliseconds(2000)));
   run_times.clear();
 
   LazyNow lazy_now_2(test_task_runner_->GetMockTickClock());
@@ -573,12 +556,11 @@
   timer_task_runner_->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&ExpensiveTestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(200));
+      base::Milliseconds(200));
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
-  EXPECT_THAT(run_times, ElementsAre(start_time_ +
-                                     base::TimeDelta::FromMilliseconds(3500)));
+  EXPECT_THAT(run_times, ElementsAre(start_time_ + base::Milliseconds(3500)));
   run_times.clear();
 
   task_queue_throttler_->DecreaseThrottleRefCount();
@@ -609,10 +591,9 @@
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
-  EXPECT_THAT(
-      run_times,
-      ElementsAre(base::TimeTicks() + base::TimeDelta::FromMilliseconds(1000),
-                  start_time_ + base::TimeDelta::FromMilliseconds(2500)));
+  EXPECT_THAT(run_times,
+              ElementsAre(base::TimeTicks() + base::Milliseconds(1000),
+                          start_time_ + base::Milliseconds(2500)));
 
   pool->RemoveThrottler(test_task_runner_->NowTicks(),
                         task_queue_throttler_.get());
@@ -629,10 +610,9 @@
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
-  EXPECT_THAT(
-      run_times,
-      ElementsAre(base::TimeTicks() + base::TimeDelta::FromMilliseconds(3000),
-                  base::TimeTicks() + base::TimeDelta::FromMilliseconds(3250)));
+  EXPECT_THAT(run_times,
+              ElementsAre(base::TimeTicks() + base::Milliseconds(3000),
+                          base::TimeTicks() + base::Milliseconds(3250)));
 
   task_queue_throttler_->DecreaseThrottleRefCount();
 }
@@ -668,10 +648,9 @@
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
-  EXPECT_THAT(
-      run_times,
-      ElementsAre(base::TimeTicks() + base::TimeDelta::FromMilliseconds(1000),
-                  start_time_ + base::TimeDelta::FromMilliseconds(2500)));
+  EXPECT_THAT(run_times,
+              ElementsAre(base::TimeTicks() + base::Milliseconds(1000),
+                          start_time_ + base::Milliseconds(2500)));
 
   task_queue_throttler_->DecreaseThrottleRefCount();
   second_queue_throttler->DecreaseThrottleRefCount();
@@ -701,18 +680,17 @@
   timer_task_runner_->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&ExpensiveTestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(100));
+      base::Milliseconds(100));
   timer_task_runner_->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&ExpensiveTestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(100));
+      base::Milliseconds(100));
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
-  EXPECT_THAT(
-      run_times,
-      ElementsAre(base::TimeTicks() + base::TimeDelta::FromMilliseconds(1000),
-                  base::TimeTicks() + base::TimeDelta::FromMilliseconds(1250)));
+  EXPECT_THAT(run_times,
+              ElementsAre(base::TimeTicks() + base::Milliseconds(1000),
+                          base::TimeTicks() + base::Milliseconds(1250)));
 }
 
 TEST_P(TaskQueueThrottlerWithAutoAdvancingTimeTest,
@@ -732,18 +710,16 @@
   timer_task_runner_->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&ExpensiveTestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(100));
+      base::Milliseconds(100));
   timer_task_runner_->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&ExpensiveTestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(100));
+      base::Milliseconds(100));
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
-  EXPECT_THAT(
-      run_times,
-      ElementsAre(start_time_ + base::TimeDelta::FromMilliseconds(100),
-                  start_time_ + base::TimeDelta::FromMilliseconds(350)));
+  EXPECT_THAT(run_times, ElementsAre(start_time_ + base::Milliseconds(100),
+                                     start_time_ + base::Milliseconds(350)));
 }
 
 TEST_P(TaskQueueThrottlerWithAutoAdvancingTimeTest, MaxThrottlingDelay) {
@@ -752,8 +728,7 @@
   std::unique_ptr<CPUTimeBudgetPool> pool = std::make_unique<CPUTimeBudgetPool>(
       "test", &tracing_controller_, test_task_runner_->NowTicks());
 
-  pool->SetMaxThrottlingDelay(base::TimeTicks(),
-                              base::TimeDelta::FromMinutes(1));
+  pool->SetMaxThrottlingDelay(base::TimeTicks(), base::Minutes(1));
 
   pool->SetTimeBudgetRecoveryRate(base::TimeTicks(), 0.001);
   pool->AddThrottler(base::TimeTicks(), task_queue_throttler_.get());
@@ -764,19 +739,17 @@
     timer_task_runner_->PostDelayedTask(
         FROM_HERE,
         base::BindOnce(&ExpensiveTestTask, &run_times, test_task_runner_),
-        base::TimeDelta::FromMilliseconds(200));
+        base::Milliseconds(200));
   }
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
-  EXPECT_THAT(
-      run_times,
-      ElementsAre(
-          base::TimeTicks() + base::TimeDelta::FromMilliseconds(1000),
-          base::TimeTicks() + base::TimeDelta::FromMilliseconds(61250),
-          base::TimeTicks() + base::TimeDelta::FromMilliseconds(121500),
-          base::TimeTicks() + base::TimeDelta::FromMilliseconds(181750),
-          base::TimeTicks() + base::TimeDelta::FromMilliseconds(242000)));
+  EXPECT_THAT(run_times,
+              ElementsAre(base::TimeTicks() + base::Milliseconds(1000),
+                          base::TimeTicks() + base::Milliseconds(61250),
+                          base::TimeTicks() + base::Milliseconds(121500),
+                          base::TimeTicks() + base::Milliseconds(181750),
+                          base::TimeTicks() + base::Milliseconds(242000)));
 }
 
 TEST_P(TaskQueueThrottlerWithAutoAdvancingTimeTest,
@@ -787,24 +760,23 @@
 
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(200));
+      base::Milliseconds(200));
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(300));
+  test_task_runner_->FastForwardBy(base::Milliseconds(300));
 
   // Disable throttling - task should run immediately.
   LazyNow lazy_now_1(test_task_runner_->GetMockTickClock());
   wake_up_budget_pool_->DisableThrottling(&lazy_now_1);
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(200));
+  test_task_runner_->FastForwardBy(base::Milliseconds(200));
 
-  EXPECT_THAT(run_times, ElementsAre(start_time_ +
-                                     base::TimeDelta::FromMilliseconds(300)));
+  EXPECT_THAT(run_times, ElementsAre(start_time_ + base::Milliseconds(300)));
   run_times.clear();
 
   // Schedule a task at 900ms. It should proceed as normal.
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(400));
+      base::Milliseconds(400));
 
   // Schedule a task at 1200ms. It should proceed as normal.
   // PumpThrottledTasks was scheduled at 1000ms, so it needs to be checked
@@ -812,23 +784,21 @@
   // 1s mark and scheduled to run after 1s mark.
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(700));
+      base::Milliseconds(700));
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(800));
+  test_task_runner_->FastForwardBy(base::Milliseconds(800));
 
-  EXPECT_THAT(
-      run_times,
-      ElementsAre(start_time_ + base::TimeDelta::FromMilliseconds(900),
-                  start_time_ + base::TimeDelta::FromMilliseconds(1200)));
+  EXPECT_THAT(run_times, ElementsAre(start_time_ + base::Milliseconds(900),
+                                     start_time_ + base::Milliseconds(1200)));
   run_times.clear();
 
   // Schedule a task at 1500ms. It should be throttled because of enabled
   // throttling.
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(200));
+      base::Milliseconds(200));
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  test_task_runner_->FastForwardBy(base::Milliseconds(100));
 
   // Throttling is enabled and new task should be aligned.
   LazyNow lazy_now_2(test_task_runner_->GetMockTickClock());
@@ -836,8 +806,8 @@
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
-  EXPECT_THAT(run_times, ElementsAre(base::TimeTicks() +
-                                     base::TimeDelta::FromMilliseconds(2000)));
+  EXPECT_THAT(run_times,
+              ElementsAre(base::TimeTicks() + base::Milliseconds(2000)));
 }
 
 TEST_F(TaskQueueThrottlerTest, ReportThrottling) {
@@ -857,28 +827,26 @@
 
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(200));
+      base::Milliseconds(200));
   timer_task_runner_->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&ExpensiveTestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(200));
+      base::Milliseconds(200));
   timer_task_runner_->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&ExpensiveTestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(200));
+      base::Milliseconds(200));
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
-  EXPECT_THAT(
-      run_times,
-      ElementsAre(TimeTicks() + base::TimeDelta::FromSeconds(1),
-                  TimeTicks() + base::TimeDelta::FromSeconds(1),
-                  start_time_ + base::TimeDelta::FromMilliseconds(2500)));
+  EXPECT_THAT(run_times, ElementsAre(TimeTicks() + base::Seconds(1),
+                                     TimeTicks() + base::Seconds(1),
+                                     start_time_ + base::Milliseconds(2500)));
 
-  EXPECT_THAT(reported_throttling_times,
-              ElementsAre((start_time_ - TimeTicks()) +
-                              base::TimeDelta::FromMilliseconds(1250),
-                          base::TimeDelta::FromMilliseconds(2250)));
+  EXPECT_THAT(
+      reported_throttling_times,
+      ElementsAre((start_time_ - TimeTicks()) + base::Milliseconds(1250),
+                  base::Milliseconds(2250)));
 
   pool->RemoveThrottler(test_task_runner_->NowTicks(),
                         task_queue_throttler_.get());
@@ -893,8 +861,7 @@
 
   pool->SetTimeBudgetRecoveryRate(base::TimeTicks(), 0.1);
   pool->AddThrottler(base::TimeTicks(), task_queue_throttler_.get());
-  pool->GrantAdditionalBudget(base::TimeTicks(),
-                              base::TimeDelta::FromMilliseconds(500));
+  pool->GrantAdditionalBudget(base::TimeTicks(), base::Milliseconds(500));
 
   task_queue_throttler_->IncreaseThrottleRefCount();
 
@@ -904,18 +871,16 @@
     timer_task_runner_->PostDelayedTask(
         FROM_HERE,
         base::BindOnce(&ExpensiveTestTask, &run_times, test_task_runner_),
-        base::TimeDelta::FromMilliseconds(200));
+        base::Milliseconds(200));
   }
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
-  EXPECT_THAT(
-      run_times,
-      ElementsAre(TimeTicks() + base::TimeDelta::FromMilliseconds(1000),
-                  TimeTicks() + base::TimeDelta::FromMilliseconds(1250),
-                  TimeTicks() + base::TimeDelta::FromMilliseconds(1500),
-                  start_time_ + base::TimeDelta::FromMilliseconds(2500),
-                  start_time_ + base::TimeDelta::FromMilliseconds(5000)));
+  EXPECT_THAT(run_times, ElementsAre(TimeTicks() + base::Milliseconds(1000),
+                                     TimeTicks() + base::Milliseconds(1250),
+                                     TimeTicks() + base::Milliseconds(1500),
+                                     start_time_ + base::Milliseconds(2500),
+                                     start_time_ + base::Milliseconds(5000)));
 
   pool->RemoveThrottler(test_task_runner_->NowTicks(),
                         task_queue_throttler_.get());
@@ -937,18 +902,17 @@
   pool->DisableThrottling(&lazy_now_1);
   task_queue_throttler_->IncreaseThrottleRefCount();
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  test_task_runner_->FastForwardBy(base::Milliseconds(100));
 
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(200));
+      base::Milliseconds(200));
 
   pool->AddThrottler(base::TimeTicks(), task_queue_throttler_.get());
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
-  EXPECT_THAT(run_times, ElementsAre(start_time_ +
-                                     base::TimeDelta::FromMilliseconds(300)));
+  EXPECT_THAT(run_times, ElementsAre(start_time_ + base::Milliseconds(300)));
 }
 
 TEST_P(TaskQueueThrottlerWithAutoAdvancingTimeTest,
@@ -968,35 +932,32 @@
 
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(100));
+      base::Milliseconds(100));
   second_queue->task_runner()->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(200));
+      base::Milliseconds(200));
 
   std::unique_ptr<TaskQueue::QueueEnabledVoter> voter =
       timer_queue_->CreateQueueEnabledVoter();
   voter->SetVoteToEnable(false);
 
-  test_task_runner_->AdvanceMockTickClock(
-      base::TimeDelta::FromMilliseconds(250));
+  test_task_runner_->AdvanceMockTickClock(base::Milliseconds(250));
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
-  EXPECT_THAT(run_times, ElementsAre(base::TimeTicks() +
-                                     base::TimeDelta::FromMilliseconds(1000)));
+  EXPECT_THAT(run_times,
+              ElementsAre(base::TimeTicks() + base::Milliseconds(1000)));
 
   // Advance time passed the 1-second aligned wake up. The next task will run on
   // the next 1-second aligned wake up.
-  test_task_runner_->AdvanceMockTickClock(
-      base::TimeDelta::FromMilliseconds(10));
+  test_task_runner_->AdvanceMockTickClock(base::Milliseconds(10));
 
   voter->SetVoteToEnable(true);
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
-  EXPECT_THAT(
-      run_times,
-      ElementsAre(base::TimeTicks() + base::TimeDelta::FromMilliseconds(1000),
-                  base::TimeTicks() + base::TimeDelta::FromMilliseconds(2000)));
+  EXPECT_THAT(run_times,
+              ElementsAre(base::TimeTicks() + base::Milliseconds(1000),
+                          base::TimeTicks() + base::Milliseconds(2000)));
 
   wake_up_budget_pool_->RemoveThrottler(base::TimeTicks(),
                                         second_queue_throttler.get());
@@ -1046,12 +1007,11 @@
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
-  EXPECT_THAT(
-      run_times,
-      ElementsAre(base::TimeTicks() + base::TimeDelta::FromMilliseconds(1000),
-                  start_time_ + base::TimeDelta::FromMilliseconds(2500),
-                  start_time_ + base::TimeDelta::FromMilliseconds(5000),
-                  start_time_ + base::TimeDelta::FromMilliseconds(25000)));
+  EXPECT_THAT(run_times,
+              ElementsAre(base::TimeTicks() + base::Milliseconds(1000),
+                          start_time_ + base::Milliseconds(2500),
+                          start_time_ + base::Milliseconds(5000),
+                          start_time_ + base::Milliseconds(25000)));
 
   wake_up_budget_pool_->RemoveThrottler(test_task_runner_->NowTicks(),
                                         second_queue_throttler.get());
@@ -1083,8 +1043,7 @@
 
 TEST_P(TaskQueueThrottlerWithAutoAdvancingTimeTest,
        WakeUpBasedThrottling_ChainedTasks_Instantaneous) {
-  wake_up_budget_pool_->SetWakeUpDuration(
-      base::TimeDelta::FromMilliseconds(10));
+  wake_up_budget_pool_->SetWakeUpDuration(base::Milliseconds(10));
   Vector<base::TimeTicks> run_times;
 
   task_queue_throttler_->IncreaseThrottleRefCount();
@@ -1094,60 +1053,55 @@
       base::BindOnce(&RunChainedTask, MakeTaskDurations(10, base::TimeDelta()),
                      timer_queue_, test_task_runner_, &run_times,
                      base::TimeDelta()),
-      base::TimeDelta::FromMilliseconds(100));
+      base::Milliseconds(100));
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
-  EXPECT_THAT(run_times,
-              ElementsAre(base::TimeTicks() + base::TimeDelta::FromSeconds(1),
-                          base::TimeTicks() + base::TimeDelta::FromSeconds(1),
-                          base::TimeTicks() + base::TimeDelta::FromSeconds(1),
-                          base::TimeTicks() + base::TimeDelta::FromSeconds(1),
-                          base::TimeTicks() + base::TimeDelta::FromSeconds(1),
-                          base::TimeTicks() + base::TimeDelta::FromSeconds(1),
-                          base::TimeTicks() + base::TimeDelta::FromSeconds(1),
-                          base::TimeTicks() + base::TimeDelta::FromSeconds(1),
-                          base::TimeTicks() + base::TimeDelta::FromSeconds(1),
-                          base::TimeTicks() + base::TimeDelta::FromSeconds(1)));
+  EXPECT_THAT(run_times, ElementsAre(base::TimeTicks() + base::Seconds(1),
+                                     base::TimeTicks() + base::Seconds(1),
+                                     base::TimeTicks() + base::Seconds(1),
+                                     base::TimeTicks() + base::Seconds(1),
+                                     base::TimeTicks() + base::Seconds(1),
+                                     base::TimeTicks() + base::Seconds(1),
+                                     base::TimeTicks() + base::Seconds(1),
+                                     base::TimeTicks() + base::Seconds(1),
+                                     base::TimeTicks() + base::Seconds(1),
+                                     base::TimeTicks() + base::Seconds(1)));
 }
 
 TEST_P(TaskQueueThrottlerWithAutoAdvancingTimeTest,
        WakeUpBasedThrottling_ImmediateTasks_Fast) {
-  wake_up_budget_pool_->SetWakeUpDuration(
-      base::TimeDelta::FromMilliseconds(10));
+  wake_up_budget_pool_->SetWakeUpDuration(base::Milliseconds(10));
   Vector<base::TimeTicks> run_times;
 
   task_queue_throttler_->IncreaseThrottleRefCount();
 
   timer_task_runner_->PostDelayedTask(
       FROM_HERE,
-      base::BindOnce(
-          &RunChainedTask,
-          MakeTaskDurations(10, base::TimeDelta::FromMilliseconds(3)),
-          timer_queue_, test_task_runner_, &run_times, base::TimeDelta()),
-      base::TimeDelta::FromMilliseconds(100));
+      base::BindOnce(&RunChainedTask,
+                     MakeTaskDurations(10, base::Milliseconds(3)), timer_queue_,
+                     test_task_runner_, &run_times, base::TimeDelta()),
+      base::Milliseconds(100));
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
   // TODO(altimin): Add fence mechanism to block immediate tasks.
-  EXPECT_THAT(
-      run_times,
-      ElementsAre(base::TimeTicks() + base::TimeDelta::FromMilliseconds(1000),
-                  base::TimeTicks() + base::TimeDelta::FromMilliseconds(1003),
-                  base::TimeTicks() + base::TimeDelta::FromMilliseconds(1006),
-                  base::TimeTicks() + base::TimeDelta::FromMilliseconds(1009),
-                  base::TimeTicks() + base::TimeDelta::FromMilliseconds(2000),
-                  base::TimeTicks() + base::TimeDelta::FromMilliseconds(2003),
-                  base::TimeTicks() + base::TimeDelta::FromMilliseconds(2006),
-                  base::TimeTicks() + base::TimeDelta::FromMilliseconds(2009),
-                  base::TimeTicks() + base::TimeDelta::FromMilliseconds(3000),
-                  base::TimeTicks() + base::TimeDelta::FromMilliseconds(3003)));
+  EXPECT_THAT(run_times,
+              ElementsAre(base::TimeTicks() + base::Milliseconds(1000),
+                          base::TimeTicks() + base::Milliseconds(1003),
+                          base::TimeTicks() + base::Milliseconds(1006),
+                          base::TimeTicks() + base::Milliseconds(1009),
+                          base::TimeTicks() + base::Milliseconds(2000),
+                          base::TimeTicks() + base::Milliseconds(2003),
+                          base::TimeTicks() + base::Milliseconds(2006),
+                          base::TimeTicks() + base::Milliseconds(2009),
+                          base::TimeTicks() + base::Milliseconds(3000),
+                          base::TimeTicks() + base::Milliseconds(3003)));
 }
 
 TEST_P(TaskQueueThrottlerWithAutoAdvancingTimeTest,
        WakeUpBasedThrottling_DelayedTasks) {
-  wake_up_budget_pool_->SetWakeUpDuration(
-      base::TimeDelta::FromMilliseconds(10));
+  wake_up_budget_pool_->SetWakeUpDuration(base::Milliseconds(10));
   Vector<base::TimeTicks> run_times;
 
   task_queue_throttler_->IncreaseThrottleRefCount();
@@ -1156,23 +1110,22 @@
       FROM_HERE,
       base::BindOnce(&RunChainedTask, MakeTaskDurations(10, base::TimeDelta()),
                      timer_queue_, test_task_runner_, &run_times,
-                     base::TimeDelta::FromMilliseconds(3)),
-      base::TimeDelta::FromMilliseconds(100));
+                     base::Milliseconds(3)),
+      base::Milliseconds(100));
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
-  EXPECT_THAT(
-      run_times,
-      ElementsAre(base::TimeTicks() + base::TimeDelta::FromMilliseconds(1000),
-                  base::TimeTicks() + base::TimeDelta::FromMilliseconds(1003),
-                  base::TimeTicks() + base::TimeDelta::FromMilliseconds(1006),
-                  base::TimeTicks() + base::TimeDelta::FromMilliseconds(1009),
-                  base::TimeTicks() + base::TimeDelta::FromMilliseconds(2000),
-                  base::TimeTicks() + base::TimeDelta::FromMilliseconds(2003),
-                  base::TimeTicks() + base::TimeDelta::FromMilliseconds(2006),
-                  base::TimeTicks() + base::TimeDelta::FromMilliseconds(2009),
-                  base::TimeTicks() + base::TimeDelta::FromMilliseconds(3000),
-                  base::TimeTicks() + base::TimeDelta::FromMilliseconds(3003)));
+  EXPECT_THAT(run_times,
+              ElementsAre(base::TimeTicks() + base::Milliseconds(1000),
+                          base::TimeTicks() + base::Milliseconds(1003),
+                          base::TimeTicks() + base::Milliseconds(1006),
+                          base::TimeTicks() + base::Milliseconds(1009),
+                          base::TimeTicks() + base::Milliseconds(2000),
+                          base::TimeTicks() + base::Milliseconds(2003),
+                          base::TimeTicks() + base::Milliseconds(2006),
+                          base::TimeTicks() + base::Milliseconds(2009),
+                          base::TimeTicks() + base::Milliseconds(3000),
+                          base::TimeTicks() + base::Milliseconds(3003)));
 }
 
 TEST_F(TaskQueueThrottlerTest,
@@ -1180,7 +1133,7 @@
   // Have |wake_up_budget_pool_| control |task_queue| with a wake-up inteval
   // of one-minute.
   wake_up_budget_pool_->SetWakeUpInterval(test_task_runner_->NowTicks(),
-                                          base::TimeDelta::FromMinutes(1));
+                                          base::Minutes(1));
   task_queue_throttler_->IncreaseThrottleRefCount();
   WakeUpBudgetPool* one_minute_pool = wake_up_budget_pool_.get();
   scoped_refptr<base::SingleThreadTaskRunner> one_minute_task_runner =
@@ -1192,7 +1145,7 @@
       std::make_unique<WakeUpBudgetPool>("Two Minutes Interval Pool");
   two_minutes_pool->SetWakeUpDuration(base::TimeDelta());
   two_minutes_pool->SetWakeUpInterval(test_task_runner_->NowTicks(),
-                                      base::TimeDelta::FromMinutes(2));
+                                      base::Minutes(2));
   scoped_refptr<base::sequence_manager::TaskQueue> two_minutes_queue =
       sequence_manager_->CreateTaskQueue(
           base::sequence_manager::TaskQueue::Spec("Second queue")
@@ -1206,7 +1159,7 @@
   two_minutes_queue_throttler->IncreaseThrottleRefCount();
 
   // Post a task with a short delay to the first queue.
-  constexpr base::TimeDelta kShortDelay = base::TimeDelta::FromSeconds(1);
+  constexpr base::TimeDelta kShortDelay = base::Seconds(1);
   Vector<base::TimeTicks> run_times;
   one_minute_task_runner->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
@@ -1218,22 +1171,20 @@
 
   // The first task should run after 1 minute, which is the wake up interval of
   // |one_minute_pool|.
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(1));
+  test_task_runner_->FastForwardBy(base::Minutes(1));
   EXPECT_EQ(one_minute_pool->last_wake_up_for_testing(),
-            base::TimeTicks() + base::TimeDelta::FromMinutes(1));
-  EXPECT_THAT(run_times,
-              ElementsAre(base::TimeTicks() + base::TimeDelta::FromMinutes(1)));
+            base::TimeTicks() + base::Minutes(1));
+  EXPECT_THAT(run_times, ElementsAre(base::TimeTicks() + base::Minutes(1)));
 
   // The second pool should not have woken up since it had no tasks.
   EXPECT_EQ(two_minutes_pool->last_wake_up_for_testing(), absl::nullopt);
 
   // No new task execution or wake-ups for the first queue since it did not
   // get new tasks executed.
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(1));
+  test_task_runner_->FastForwardBy(base::Minutes(1));
   EXPECT_EQ(one_minute_pool->last_wake_up_for_testing(),
-            base::TimeTicks() + base::TimeDelta::FromMinutes(1));
-  EXPECT_THAT(run_times,
-              ElementsAre(base::TimeTicks() + base::TimeDelta::FromMinutes(1)));
+            base::TimeTicks() + base::Minutes(1));
+  EXPECT_THAT(run_times, ElementsAre(base::TimeTicks() + base::Minutes(1)));
 
   // The second pool should not have woken up since it had no tasks.
   EXPECT_EQ(two_minutes_pool->last_wake_up_for_testing(), absl::nullopt);
@@ -1241,7 +1192,7 @@
   // Still no new executions so no update on the wake-up for the queues.
   test_task_runner_->FastForwardUntilNoTasksRemain();
   EXPECT_EQ(one_minute_pool->last_wake_up_for_testing(),
-            base::TimeTicks() + base::TimeDelta::FromMinutes(1));
+            base::TimeTicks() + base::Minutes(1));
   EXPECT_EQ(two_minutes_pool->last_wake_up_for_testing(), absl::nullopt);
 
   // Clean up.
@@ -1252,7 +1203,7 @@
 TEST_F(TaskQueueThrottlerTest,
        WakeUpBasedThrottling_MultiplePoolsWithDifferentIntervals) {
   wake_up_budget_pool_->SetWakeUpInterval(test_task_runner_->NowTicks(),
-                                          base::TimeDelta::FromMinutes(1));
+                                          base::Minutes(1));
   task_queue_throttler_->IncreaseThrottleRefCount();
   WakeUpBudgetPool* one_minute_pool = wake_up_budget_pool_.get();
   scoped_refptr<base::SingleThreadTaskRunner> one_minute_task_runner =
@@ -1263,7 +1214,7 @@
       std::make_unique<WakeUpBudgetPool>("Two Minutes Interval Pool");
   two_minutes_pool->SetWakeUpDuration(base::TimeDelta());
   two_minutes_pool->SetWakeUpInterval(test_task_runner_->NowTicks(),
-                                      base::TimeDelta::FromMinutes(2));
+                                      base::Minutes(2));
   scoped_refptr<base::sequence_manager::TaskQueue> two_minutes_queue =
       sequence_manager_->CreateTaskQueue(
           base::sequence_manager::TaskQueue::Spec("Second queue")
@@ -1277,7 +1228,7 @@
   two_minutes_queue_throttler->IncreaseThrottleRefCount();
 
   // Post tasks with a short delay to both queues.
-  constexpr base::TimeDelta kShortDelay = base::TimeDelta::FromSeconds(1);
+  constexpr base::TimeDelta kShortDelay = base::Seconds(1);
 
   Vector<base::TimeTicks> run_times;
   one_minute_task_runner->PostDelayedTask(
@@ -1294,27 +1245,25 @@
   // The first task should run after 1 minute, which is the wake up interval of
   // |one_minute_pool|. The second task should run after 2 minutes, which is the
   // wake up interval of |two_minutes_pool|.
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(1));
+  test_task_runner_->FastForwardBy(base::Minutes(1));
   EXPECT_EQ(one_minute_pool->last_wake_up_for_testing(),
-            base::TimeTicks() + base::TimeDelta::FromMinutes(1));
+            base::TimeTicks() + base::Minutes(1));
   EXPECT_EQ(two_minutes_pool->last_wake_up_for_testing(), absl::nullopt);
-  EXPECT_THAT(run_times,
-              ElementsAre(base::TimeTicks() + base::TimeDelta::FromMinutes(1)));
+  EXPECT_THAT(run_times, ElementsAre(base::TimeTicks() + base::Minutes(1)));
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(1));
+  test_task_runner_->FastForwardBy(base::Minutes(1));
   EXPECT_EQ(one_minute_pool->last_wake_up_for_testing(),
-            base::TimeTicks() + base::TimeDelta::FromMinutes(1));
+            base::TimeTicks() + base::Minutes(1));
   EXPECT_EQ(two_minutes_pool->last_wake_up_for_testing(),
-            base::TimeTicks() + base::TimeDelta::FromMinutes(2));
-  EXPECT_THAT(run_times,
-              ElementsAre(base::TimeTicks() + base::TimeDelta::FromMinutes(1),
-                          base::TimeTicks() + base::TimeDelta::FromMinutes(2)));
+            base::TimeTicks() + base::Minutes(2));
+  EXPECT_THAT(run_times, ElementsAre(base::TimeTicks() + base::Minutes(1),
+                                     base::TimeTicks() + base::Minutes(2)));
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
   EXPECT_EQ(one_minute_pool->last_wake_up_for_testing(),
-            base::TimeTicks() + base::TimeDelta::FromMinutes(1));
+            base::TimeTicks() + base::Minutes(1));
   EXPECT_EQ(two_minutes_pool->last_wake_up_for_testing(),
-            base::TimeTicks() + base::TimeDelta::FromMinutes(2));
+            base::TimeTicks() + base::Minutes(2));
 
   // Clean up.
   two_minutes_pool->RemoveThrottler(test_task_runner_->NowTicks(),
@@ -1328,9 +1277,8 @@
   const base::TimeTicks start_time = test_task_runner_->NowTicks();
 
   wake_up_budget_pool_->SetWakeUpInterval(test_task_runner_->NowTicks(),
-                                          base::TimeDelta::FromMinutes(1));
-  wake_up_budget_pool_->AllowLowerAlignmentIfNoRecentWakeUp(
-      base::TimeDelta::FromSeconds(1));
+                                          base::Minutes(1));
+  wake_up_budget_pool_->AllowLowerAlignmentIfNoRecentWakeUp(base::Seconds(1));
   task_queue_throttler_->IncreaseThrottleRefCount();
   WakeUpBudgetPool* one_minute_pool = wake_up_budget_pool_.get();
   scoped_refptr<base::SingleThreadTaskRunner> one_minute_task_runner =
@@ -1341,9 +1289,8 @@
       std::make_unique<WakeUpBudgetPool>("Two Minutes Interval Pool");
   two_minutes_pool->SetWakeUpDuration(base::TimeDelta());
   two_minutes_pool->SetWakeUpInterval(test_task_runner_->NowTicks(),
-                                      base::TimeDelta::FromMinutes(1));
-  two_minutes_pool->AllowLowerAlignmentIfNoRecentWakeUp(
-      base::TimeDelta::FromSeconds(1));
+                                      base::Minutes(1));
+  two_minutes_pool->AllowLowerAlignmentIfNoRecentWakeUp(base::Seconds(1));
   scoped_refptr<base::sequence_manager::TaskQueue> two_minutes_queue =
       sequence_manager_->CreateTaskQueue(
           base::sequence_manager::TaskQueue::Spec("Second queue")
@@ -1364,26 +1311,24 @@
   Vector<base::TimeTicks> run_times;
   one_minute_task_runner->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromSeconds(2));
+      base::Seconds(2));
   two_minutes_task_runner->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromSeconds(3));
+      base::Seconds(3));
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  test_task_runner_->FastForwardBy(base::Seconds(2));
   EXPECT_EQ(one_minute_pool->last_wake_up_for_testing(),
-            start_time + base::TimeDelta::FromSeconds(2));
+            start_time + base::Seconds(2));
   EXPECT_EQ(two_minutes_pool->last_wake_up_for_testing(), absl::nullopt);
-  EXPECT_THAT(run_times,
-              ElementsAre(start_time + base::TimeDelta::FromSeconds(2)));
+  EXPECT_THAT(run_times, ElementsAre(start_time + base::Seconds(2)));
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_EQ(one_minute_pool->last_wake_up_for_testing(),
-            start_time + base::TimeDelta::FromSeconds(2));
+            start_time + base::Seconds(2));
   EXPECT_EQ(two_minutes_pool->last_wake_up_for_testing(),
-            start_time + base::TimeDelta::FromSeconds(3));
-  EXPECT_THAT(run_times,
-              ElementsAre(start_time + base::TimeDelta::FromSeconds(2),
-                          start_time + base::TimeDelta::FromSeconds(3)));
+            start_time + base::Seconds(3));
+  EXPECT_THAT(run_times, ElementsAre(start_time + base::Seconds(2),
+                                     start_time + base::Seconds(3)));
 
   // Post extra tasks with long unaligned wake ups. They should run unaligned,
   // since their desired run time is more than 1 minute after the last wake up
@@ -1391,40 +1336,38 @@
   run_times.clear();
   one_minute_task_runner->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromSeconds(602));
+      base::Seconds(602));
   two_minutes_task_runner->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromSeconds(603));
+      base::Seconds(603));
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(601));
+  test_task_runner_->FastForwardBy(base::Seconds(601));
   EXPECT_EQ(one_minute_pool->last_wake_up_for_testing(),
-            start_time + base::TimeDelta::FromSeconds(2));
+            start_time + base::Seconds(2));
   EXPECT_EQ(two_minutes_pool->last_wake_up_for_testing(),
-            start_time + base::TimeDelta::FromSeconds(3));
+            start_time + base::Seconds(3));
   EXPECT_THAT(run_times, ElementsAre());
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_EQ(one_minute_pool->last_wake_up_for_testing(),
-            start_time + base::TimeDelta::FromSeconds(605));
+            start_time + base::Seconds(605));
   EXPECT_EQ(two_minutes_pool->last_wake_up_for_testing(),
-            start_time + base::TimeDelta::FromSeconds(3));
-  EXPECT_THAT(run_times,
-              ElementsAre(start_time + base::TimeDelta::FromSeconds(605)));
+            start_time + base::Seconds(3));
+  EXPECT_THAT(run_times, ElementsAre(start_time + base::Seconds(605)));
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_EQ(one_minute_pool->last_wake_up_for_testing(),
-            start_time + base::TimeDelta::FromSeconds(605));
+            start_time + base::Seconds(605));
   EXPECT_EQ(two_minutes_pool->last_wake_up_for_testing(),
-            start_time + base::TimeDelta::FromSeconds(606));
-  EXPECT_THAT(run_times,
-              ElementsAre(start_time + base::TimeDelta::FromSeconds(605),
-                          start_time + base::TimeDelta::FromSeconds(606)));
+            start_time + base::Seconds(606));
+  EXPECT_THAT(run_times, ElementsAre(start_time + base::Seconds(605),
+                                     start_time + base::Seconds(606)));
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
   EXPECT_EQ(one_minute_pool->last_wake_up_for_testing(),
-            start_time + base::TimeDelta::FromSeconds(605));
+            start_time + base::Seconds(605));
   EXPECT_EQ(two_minutes_pool->last_wake_up_for_testing(),
-            start_time + base::TimeDelta::FromSeconds(606));
+            start_time + base::Seconds(606));
 
   // Clean up.
   two_minutes_pool->RemoveThrottler(test_task_runner_->NowTicks(),
@@ -1439,7 +1382,7 @@
 
   // The 1st WakeUpBudgetPool doesn't allow unaligned wake ups.
   wake_up_budget_pool_->SetWakeUpInterval(test_task_runner_->NowTicks(),
-                                          base::TimeDelta::FromMinutes(1));
+                                          base::Minutes(1));
   task_queue_throttler_->IncreaseThrottleRefCount();
   WakeUpBudgetPool* aligned_pool = wake_up_budget_pool_.get();
   scoped_refptr<base::SingleThreadTaskRunner> aligned_task_runner =
@@ -1451,9 +1394,8 @@
       std::make_unique<WakeUpBudgetPool>("Other Wake Up Budget Pool");
   unaligned_pool->SetWakeUpDuration(base::TimeDelta());
   unaligned_pool->SetWakeUpInterval(test_task_runner_->NowTicks(),
-                                    base::TimeDelta::FromMinutes(1));
-  unaligned_pool->AllowLowerAlignmentIfNoRecentWakeUp(
-      base::TimeDelta::FromSeconds(1));
+                                    base::Minutes(1));
+  unaligned_pool->AllowLowerAlignmentIfNoRecentWakeUp(base::Seconds(1));
   scoped_refptr<base::sequence_manager::TaskQueue> unaligned_queue =
       sequence_manager_->CreateTaskQueue(
           base::sequence_manager::TaskQueue::Spec("Second queue")
@@ -1472,71 +1414,67 @@
   Vector<base::TimeTicks> run_times;
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromSeconds(2));
+      base::Seconds(2));
   unaligned_task_runner->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromSeconds(3));
+      base::Seconds(3));
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  test_task_runner_->FastForwardBy(base::Seconds(2));
   EXPECT_EQ(aligned_pool->last_wake_up_for_testing(), absl::nullopt);
   EXPECT_EQ(unaligned_pool->last_wake_up_for_testing(), absl::nullopt);
   EXPECT_THAT(run_times, ElementsAre());
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_EQ(aligned_pool->last_wake_up_for_testing(), absl::nullopt);
   EXPECT_EQ(unaligned_pool->last_wake_up_for_testing(),
-            start_time + base::TimeDelta::FromSeconds(3));
-  EXPECT_THAT(run_times,
-              ElementsAre(start_time + base::TimeDelta::FromSeconds(3)));
+            start_time + base::Seconds(3));
+  EXPECT_THAT(run_times, ElementsAre(start_time + base::Seconds(3)));
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(57));
+  test_task_runner_->FastForwardBy(base::Seconds(57));
   EXPECT_EQ(aligned_pool->last_wake_up_for_testing(),
-            start_time + base::TimeDelta::FromMinutes(1));
+            start_time + base::Minutes(1));
   EXPECT_EQ(unaligned_pool->last_wake_up_for_testing(),
-            start_time + base::TimeDelta::FromSeconds(3));
-  EXPECT_THAT(run_times,
-              ElementsAre(start_time + base::TimeDelta::FromSeconds(3),
-                          start_time + base::TimeDelta::FromMinutes(1)));
+            start_time + base::Seconds(3));
+  EXPECT_THAT(run_times, ElementsAre(start_time + base::Seconds(3),
+                                     start_time + base::Minutes(1)));
 
   // Post extra tasks with long unaligned wake ups. The 1st task should run
   // aligned, while the 2nd task should run unaligned.
   run_times.clear();
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromSeconds(602));
+      base::Seconds(602));
   unaligned_task_runner->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromSeconds(603));
+      base::Seconds(603));
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(601));
+  test_task_runner_->FastForwardBy(base::Seconds(601));
   EXPECT_EQ(aligned_pool->last_wake_up_for_testing(),
-            start_time + base::TimeDelta::FromMinutes(1));
+            start_time + base::Minutes(1));
   EXPECT_EQ(unaligned_pool->last_wake_up_for_testing(),
-            start_time + base::TimeDelta::FromSeconds(3));
+            start_time + base::Seconds(3));
   EXPECT_THAT(run_times, ElementsAre());
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  test_task_runner_->FastForwardBy(base::Seconds(2));
   EXPECT_EQ(aligned_pool->last_wake_up_for_testing(),
-            start_time + base::TimeDelta::FromMinutes(1));
+            start_time + base::Minutes(1));
   EXPECT_EQ(unaligned_pool->last_wake_up_for_testing(),
-            start_time + base::TimeDelta::FromSeconds(663));
-  EXPECT_THAT(run_times,
-              ElementsAre(start_time + base::TimeDelta::FromSeconds(663)));
+            start_time + base::Seconds(663));
+  EXPECT_THAT(run_times, ElementsAre(start_time + base::Seconds(663)));
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(117));
+  test_task_runner_->FastForwardBy(base::Seconds(117));
   EXPECT_EQ(aligned_pool->last_wake_up_for_testing(),
-            start_time + base::TimeDelta::FromMinutes(12));
+            start_time + base::Minutes(12));
   EXPECT_EQ(unaligned_pool->last_wake_up_for_testing(),
-            start_time + base::TimeDelta::FromSeconds(663));
-  EXPECT_THAT(run_times,
-              ElementsAre(start_time + base::TimeDelta::FromSeconds(663),
-                          start_time + base::TimeDelta::FromMinutes(12)));
+            start_time + base::Seconds(663));
+  EXPECT_THAT(run_times, ElementsAre(start_time + base::Seconds(663),
+                                     start_time + base::Minutes(12)));
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
   EXPECT_EQ(aligned_pool->last_wake_up_for_testing(),
-            start_time + base::TimeDelta::FromMinutes(12));
+            start_time + base::Minutes(12));
   EXPECT_EQ(unaligned_pool->last_wake_up_for_testing(),
-            start_time + base::TimeDelta::FromSeconds(663));
+            start_time + base::Seconds(663));
 
   // Clean up.
   unaligned_pool->RemoveThrottler(test_task_runner_->NowTicks(),
@@ -1544,12 +1482,11 @@
 }
 
 TEST_F(TaskQueueThrottlerTest, WakeUpBasedThrottling_EnableDisableThrottling) {
-  constexpr base::TimeDelta kDelay = base::TimeDelta::FromSeconds(10);
-  constexpr base::TimeDelta kTimeBetweenWakeUps =
-      base::TimeDelta::FromMinutes(1);
+  constexpr base::TimeDelta kDelay = base::Seconds(10);
+  constexpr base::TimeDelta kTimeBetweenWakeUps = base::Minutes(1);
   wake_up_budget_pool_->SetWakeUpInterval(base::TimeTicks(),
                                           kTimeBetweenWakeUps);
-  wake_up_budget_pool_->SetWakeUpDuration(base::TimeDelta::FromMilliseconds(1));
+  wake_up_budget_pool_->SetWakeUpDuration(base::Milliseconds(1));
   Vector<base::TimeTicks> run_times;
 
   task_queue_throttler_->IncreaseThrottleRefCount();
@@ -1563,8 +1500,7 @@
   // Throttling is enabled. Only 1 task runs per |kTimeBetweenWakeUps|.
   test_task_runner_->FastForwardBy(kTimeBetweenWakeUps);
 
-  EXPECT_THAT(run_times, ElementsAre(base::TimeTicks() +
-                                     base::TimeDelta::FromSeconds(60)));
+  EXPECT_THAT(run_times, ElementsAre(base::TimeTicks() + base::Seconds(60)));
   run_times.clear();
 
   // Disable throttling. All tasks can run.
@@ -1572,13 +1508,11 @@
   wake_up_budget_pool_->DisableThrottling(&lazy_now_1);
   test_task_runner_->FastForwardBy(5 * kDelay);
 
-  EXPECT_THAT(
-      run_times,
-      ElementsAre(base::TimeTicks() + base::TimeDelta::FromSeconds(70),
-                  base::TimeTicks() + base::TimeDelta::FromSeconds(80),
-                  base::TimeTicks() + base::TimeDelta::FromSeconds(90),
-                  base::TimeTicks() + base::TimeDelta::FromSeconds(100),
-                  base::TimeTicks() + base::TimeDelta::FromSeconds(110)));
+  EXPECT_THAT(run_times, ElementsAre(base::TimeTicks() + base::Seconds(70),
+                                     base::TimeTicks() + base::Seconds(80),
+                                     base::TimeTicks() + base::Seconds(90),
+                                     base::TimeTicks() + base::Seconds(100),
+                                     base::TimeTicks() + base::Seconds(110)));
   run_times.clear();
 
   // Throttling is enabled. Only 1 task runs per |kTimeBetweenWakeUps|.
@@ -1586,12 +1520,10 @@
   wake_up_budget_pool_->EnableThrottling(&lazy_now_2);
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
-  EXPECT_THAT(
-      run_times,
-      ElementsAre(base::TimeTicks() + base::TimeDelta::FromSeconds(120),
-                  base::TimeTicks() + base::TimeDelta::FromSeconds(180),
-                  base::TimeTicks() + base::TimeDelta::FromSeconds(240),
-                  base::TimeTicks() + base::TimeDelta::FromSeconds(300)));
+  EXPECT_THAT(run_times, ElementsAre(base::TimeTicks() + base::Seconds(120),
+                                     base::TimeTicks() + base::Seconds(180),
+                                     base::TimeTicks() + base::Seconds(240),
+                                     base::TimeTicks() + base::Seconds(300)));
 }
 
 TEST_F(TaskQueueThrottlerTest, WakeUpBasedThrottling_LowAlignedWakeUps) {
@@ -1605,18 +1537,16 @@
   task_queue_throttler_->IncreaseThrottleRefCount();
 
   wake_up_budget_pool_->SetWakeUpInterval(test_task_runner_->NowTicks(),
-                                          base::TimeDelta::FromMinutes(1));
-  wake_up_budget_pool_->AllowLowerAlignmentIfNoRecentWakeUp(
-      base::TimeDelta::FromSeconds(10));
+                                          base::Minutes(1));
+  wake_up_budget_pool_->AllowLowerAlignmentIfNoRecentWakeUp(base::Seconds(10));
 
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromSeconds(88));
+      base::Seconds(88));
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
-  EXPECT_THAT(run_times,
-              ElementsAre(start_time + base::TimeDelta::FromSeconds(90)));
+  EXPECT_THAT(run_times, ElementsAre(start_time + base::Seconds(90)));
 }
 
 TEST_F(TaskQueueThrottlerTest,
@@ -1625,9 +1555,8 @@
   ForwardTimeToNextMinute();
   const base::TimeTicks initial_time = test_task_runner_->NowTicks();
   wake_up_budget_pool_->SetWakeUpInterval(test_task_runner_->NowTicks(),
-                                          base::TimeDelta::FromMinutes(1));
-  wake_up_budget_pool_->AllowLowerAlignmentIfNoRecentWakeUp(
-      base::TimeDelta::FromSeconds(1));
+                                          base::Minutes(1));
+  wake_up_budget_pool_->AllowLowerAlignmentIfNoRecentWakeUp(base::Seconds(1));
   Vector<base::TimeTicks> run_times;
   task_queue_throttler_->IncreaseThrottleRefCount();
   // Task delay:        Expected run time:    Reason:
@@ -1639,30 +1568,29 @@
   // 251 seconds        251 seconds           >= 60 seconds after last wake up
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromSeconds(30));
+      base::Seconds(30));
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromSeconds(80));
+      base::Seconds(80));
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromSeconds(95));
+      base::Seconds(95));
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromSeconds(100));
+      base::Seconds(100));
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromSeconds(130));
+      base::Seconds(130));
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromSeconds(251));
+      base::Seconds(251));
   test_task_runner_->FastForwardUntilNoTasksRemain();
-  EXPECT_THAT(run_times,
-              ElementsAre(initial_time + base::TimeDelta::FromSeconds(30),
-                          initial_time + base::TimeDelta::FromSeconds(90),
-                          initial_time + base::TimeDelta::FromSeconds(120),
-                          initial_time + base::TimeDelta::FromSeconds(120),
-                          initial_time + base::TimeDelta::FromSeconds(180),
-                          initial_time + base::TimeDelta::FromSeconds(251)));
+  EXPECT_THAT(run_times, ElementsAre(initial_time + base::Seconds(30),
+                                     initial_time + base::Seconds(90),
+                                     initial_time + base::Seconds(120),
+                                     initial_time + base::Seconds(120),
+                                     initial_time + base::Seconds(180),
+                                     initial_time + base::Seconds(251)));
 }
 
 TEST_F(TaskQueueThrottlerTest,
@@ -1673,23 +1601,22 @@
   // Post 2 delayed tasks when the wake up interval is 1 minute. The delay of
   // the 2nd task is such that it won't be ready when the 1st task completes.
   wake_up_budget_pool_->SetWakeUpInterval(test_task_runner_->NowTicks(),
-                                          base::TimeDelta::FromMinutes(1));
+                                          base::Minutes(1));
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(1));
+      base::Milliseconds(1));
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMinutes(2));
+      base::Minutes(2));
 
   // Update the wake up interval to 1 hour.
   wake_up_budget_pool_->SetWakeUpInterval(test_task_runner_->NowTicks(),
-                                          base::TimeDelta::FromHours(1));
+                                          base::Hours(1));
 
   // Tasks run after 1 hour, which is the most up to date wake up interval.
   test_task_runner_->FastForwardUntilNoTasksRemain();
-  EXPECT_THAT(run_times,
-              ElementsAre(base::TimeTicks() + base::TimeDelta::FromHours(1),
-                          base::TimeTicks() + base::TimeDelta::FromHours(1)));
+  EXPECT_THAT(run_times, ElementsAre(base::TimeTicks() + base::Hours(1),
+                                     base::TimeTicks() + base::Hours(1)));
 }
 
 TEST_F(TaskQueueThrottlerTest,
@@ -1699,33 +1626,31 @@
 
   // Post a delayed task when the wake up interval is 1 hour.
   wake_up_budget_pool_->SetWakeUpInterval(test_task_runner_->NowTicks(),
-                                          base::TimeDelta::FromHours(1));
+                                          base::Hours(1));
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-      base::TimeDelta::FromMilliseconds(1));
+      base::Milliseconds(1));
 
   // Update the wake up interval to 1 minute.
   wake_up_budget_pool_->SetWakeUpInterval(test_task_runner_->NowTicks(),
-                                          base::TimeDelta::FromMinutes(1));
+                                          base::Minutes(1));
 
   // The delayed task should run after 1 minute, which is the most up to date
   // wake up interval.
   test_task_runner_->FastForwardUntilNoTasksRemain();
-  EXPECT_THAT(run_times,
-              ElementsAre(base::TimeTicks() + base::TimeDelta::FromMinutes(1)));
+  EXPECT_THAT(run_times, ElementsAre(base::TimeTicks() + base::Minutes(1)));
 }
 
 TEST_F(TaskQueueThrottlerTest,
        WakeUpBasedThrottling_IncreaseWakeUpIntervalDuringWakeUp) {
-  wake_up_budget_pool_->SetWakeUpDuration(
-      base::TimeDelta::FromMilliseconds(10));
+  wake_up_budget_pool_->SetWakeUpDuration(base::Milliseconds(10));
 
   Vector<base::TimeTicks> run_times;
   task_queue_throttler_->IncreaseThrottleRefCount();
 
   // Post a 1st delayed task when the wake up interval is 1 minute.
   wake_up_budget_pool_->SetWakeUpInterval(test_task_runner_->NowTicks(),
-                                          base::TimeDelta::FromMinutes(1));
+                                          base::Minutes(1));
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindLambdaForTesting([&]() {
         TestTask(&run_times, test_task_runner_);
@@ -1737,34 +1662,32 @@
               timer_task_runner_->PostDelayedTask(
                   FROM_HERE,
                   base::BindOnce(&TestTask, &run_times, test_task_runner_),
-                  base::TimeDelta::FromSeconds(1));
+                  base::Seconds(1));
             }),
-            base::TimeDelta::FromSeconds(1));
+            base::Seconds(1));
         // Increase the wake up interval. This should affect the 2nd and 3rd
         // tasks, which haven't run yet.
         wake_up_budget_pool_->SetWakeUpInterval(test_task_runner_->NowTicks(),
-                                                base::TimeDelta::FromHours(1));
+                                                base::Hours(1));
       }),
-      base::TimeDelta::FromSeconds(1));
+      base::Seconds(1));
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
-  EXPECT_THAT(run_times,
-              ElementsAre(base::TimeTicks() + base::TimeDelta::FromMinutes(1),
-                          base::TimeTicks() + base::TimeDelta::FromHours(1),
-                          base::TimeTicks() + base::TimeDelta::FromHours(2)));
+  EXPECT_THAT(run_times, ElementsAre(base::TimeTicks() + base::Minutes(1),
+                                     base::TimeTicks() + base::Hours(1),
+                                     base::TimeTicks() + base::Hours(2)));
 }
 
 TEST_F(TaskQueueThrottlerTest,
        WakeUpBasedThrottling_DecreaseWakeUpIntervalDuringWakeUp) {
-  wake_up_budget_pool_->SetWakeUpDuration(
-      base::TimeDelta::FromMilliseconds(10));
+  wake_up_budget_pool_->SetWakeUpDuration(base::Milliseconds(10));
 
   Vector<base::TimeTicks> run_times;
   task_queue_throttler_->IncreaseThrottleRefCount();
 
   // Post a 1st delayed task when the wake up interval is 1 hour.
   wake_up_budget_pool_->SetWakeUpInterval(test_task_runner_->NowTicks(),
-                                          base::TimeDelta::FromHours(1));
+                                          base::Hours(1));
   timer_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindLambdaForTesting([&]() {
         TestTask(&run_times, test_task_runner_);
@@ -1776,28 +1699,26 @@
               timer_task_runner_->PostDelayedTask(
                   FROM_HERE,
                   base::BindOnce(&TestTask, &run_times, test_task_runner_),
-                  base::TimeDelta::FromSeconds(1));
+                  base::Seconds(1));
             }),
-            base::TimeDelta::FromSeconds(1));
+            base::Seconds(1));
         // Decrease the wake up interval. This immediately reschedules the wake
         // up for the 2nd task.
-        wake_up_budget_pool_->SetWakeUpInterval(
-            test_task_runner_->NowTicks(), base::TimeDelta::FromMinutes(1));
+        wake_up_budget_pool_->SetWakeUpInterval(test_task_runner_->NowTicks(),
+                                                base::Minutes(1));
       }),
-      base::TimeDelta::FromSeconds(1));
+      base::Seconds(1));
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
-  EXPECT_THAT(run_times,
-              ElementsAre(base::TimeTicks() + base::TimeDelta::FromHours(1),
-                          base::TimeTicks() + base::TimeDelta::FromHours(1) +
-                              base::TimeDelta::FromMinutes(1),
-                          base::TimeTicks() + base::TimeDelta::FromHours(1) +
-                              base::TimeDelta::FromMinutes(2)));
+  EXPECT_THAT(
+      run_times,
+      ElementsAre(base::TimeTicks() + base::Hours(1),
+                  base::TimeTicks() + base::Hours(1) + base::Minutes(1),
+                  base::TimeTicks() + base::Hours(1) + base::Minutes(2)));
 }
 
 TEST_F(TaskQueueThrottlerTest, WakeUpBasedThrottlingWithCPUBudgetThrottling) {
-  wake_up_budget_pool_->SetWakeUpDuration(
-      base::TimeDelta::FromMilliseconds(10));
+  wake_up_budget_pool_->SetWakeUpDuration(base::Milliseconds(10));
 
   std::unique_ptr<CPUTimeBudgetPool> pool = std::make_unique<CPUTimeBudgetPool>(
       "test", &tracing_controller_, test_task_runner_->NowTicks());
@@ -1811,35 +1732,32 @@
 
   Deque<base::TimeDelta> task_durations =
       MakeTaskDurations(9, base::TimeDelta());
-  task_durations[0] = base::TimeDelta::FromMilliseconds(250);
-  task_durations[3] = base::TimeDelta::FromMilliseconds(250);
-  task_durations[6] = base::TimeDelta::FromMilliseconds(250);
+  task_durations[0] = base::Milliseconds(250);
+  task_durations[3] = base::Milliseconds(250);
+  task_durations[6] = base::Milliseconds(250);
 
   timer_task_runner_->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&RunChainedTask, std::move(task_durations), timer_queue_,
                      test_task_runner_, &run_times, base::TimeDelta()),
-      base::TimeDelta::FromMilliseconds(100));
+      base::Milliseconds(100));
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
-  EXPECT_THAT(
-      run_times,
-      ElementsAre(TimeTicks() + base::TimeDelta::FromMilliseconds(1000),
-                  start_time_ + base::TimeDelta::FromMilliseconds(2500),
-                  start_time_ + base::TimeDelta::FromMilliseconds(2500),
-                  start_time_ + base::TimeDelta::FromMilliseconds(2500),
-                  start_time_ + base::TimeDelta::FromMilliseconds(5000),
-                  start_time_ + base::TimeDelta::FromMilliseconds(5000),
-                  start_time_ + base::TimeDelta::FromMilliseconds(5000),
-                  start_time_ + base::TimeDelta::FromMilliseconds(7500),
-                  start_time_ + base::TimeDelta::FromMilliseconds(7500)));
+  EXPECT_THAT(run_times, ElementsAre(TimeTicks() + base::Milliseconds(1000),
+                                     start_time_ + base::Milliseconds(2500),
+                                     start_time_ + base::Milliseconds(2500),
+                                     start_time_ + base::Milliseconds(2500),
+                                     start_time_ + base::Milliseconds(5000),
+                                     start_time_ + base::Milliseconds(5000),
+                                     start_time_ + base::Milliseconds(5000),
+                                     start_time_ + base::Milliseconds(7500),
+                                     start_time_ + base::Milliseconds(7500)));
 }
 
 TEST_F(TaskQueueThrottlerTest,
        WakeUpBasedThrottlingWithCPUBudgetThrottling_OnAndOff) {
-  wake_up_budget_pool_->SetWakeUpDuration(
-      base::TimeDelta::FromMilliseconds(10));
+  wake_up_budget_pool_->SetWakeUpDuration(base::Milliseconds(10));
 
   std::unique_ptr<CPUTimeBudgetPool> pool = std::make_unique<CPUTimeBudgetPool>(
       "test", &tracing_controller_, test_task_runner_->NowTicks());
@@ -1855,10 +1773,10 @@
     timer_task_runner_->PostDelayedTask(
         FROM_HERE,
         base::BindOnce(&ExpensiveTestTask, &run_times, test_task_runner_),
-        base::TimeDelta::FromMilliseconds(200));
+        base::Milliseconds(200));
     timer_task_runner_->PostDelayedTask(
         FROM_HERE, base::BindOnce(&TestTask, &run_times, test_task_runner_),
-        base::TimeDelta::FromMilliseconds(300));
+        base::Milliseconds(300));
 
     if (is_throttled) {
       task_queue_throttler_->DecreaseThrottleRefCount();
@@ -1874,20 +1792,20 @@
   EXPECT_THAT(run_times,
               ElementsAre(
                   // Throttled due to wake-up budget, then cpu budget.
-                  TimeTicks() + base::TimeDelta::FromMilliseconds(1000),
-                  start_time_ + base::TimeDelta::FromMilliseconds(2500),
+                  TimeTicks() + base::Milliseconds(1000),
+                  start_time_ + base::Milliseconds(2500),
                   // Unthrottled.
-                  start_time_ + base::TimeDelta::FromMilliseconds(2700),
-                  start_time_ + base::TimeDelta::FromMilliseconds(2950),
+                  start_time_ + base::Milliseconds(2700),
+                  start_time_ + base::Milliseconds(2950),
                   // Throttled due to wake-up budget.
-                  TimeTicks() + base::TimeDelta::FromMilliseconds(4000),
-                  start_time_ + base::TimeDelta::FromMilliseconds(5000),
+                  TimeTicks() + base::Milliseconds(4000),
+                  start_time_ + base::Milliseconds(5000),
                   // Unthrottled.
-                  start_time_ + base::TimeDelta::FromMilliseconds(5200),
-                  start_time_ + base::TimeDelta::FromMilliseconds(5450),
+                  start_time_ + base::Milliseconds(5200),
+                  start_time_ + base::Milliseconds(5450),
                   // Throttled due to wake-up budget, then cpu budget.
-                  TimeTicks() + base::TimeDelta::FromMilliseconds(6000),
-                  start_time_ + base::TimeDelta::FromMilliseconds(7500)));
+                  TimeTicks() + base::Milliseconds(6000),
+                  start_time_ + base::Milliseconds(7500)));
 }
 
 TEST_F(TaskQueueThrottlerTest,
@@ -1895,8 +1813,7 @@
   // This test checks that a new task should run during the wake-up window
   // when time budget allows that and should be blocked when time budget is
   // exhausted.
-  wake_up_budget_pool_->SetWakeUpDuration(
-      base::TimeDelta::FromMilliseconds(10));
+  wake_up_budget_pool_->SetWakeUpDuration(base::Milliseconds(10));
 
   std::unique_ptr<CPUTimeBudgetPool> pool = std::make_unique<CPUTimeBudgetPool>(
       "test", &tracing_controller_, test_task_runner_->NowTicks());
@@ -1910,30 +1827,29 @@
 
   timer_task_runner_->PostDelayedTask(
       FROM_HERE,
-      base::BindOnce(
-          &RunChainedTask,
-          MakeTaskDurations(10, base::TimeDelta::FromMilliseconds(7)),
-          timer_queue_, test_task_runner_, &run_times, base::TimeDelta()),
-      base::TimeDelta::FromMilliseconds(100));
+      base::BindOnce(&RunChainedTask,
+                     MakeTaskDurations(10, base::Milliseconds(7)), timer_queue_,
+                     test_task_runner_, &run_times, base::TimeDelta()),
+      base::Milliseconds(100));
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
   EXPECT_THAT(run_times,
               ElementsAre(
                   // Time budget is ~10ms and we can run two 7ms tasks.
-                  TimeTicks() + base::TimeDelta::FromMilliseconds(1000),
-                  TimeTicks() + base::TimeDelta::FromMilliseconds(1007),
+                  TimeTicks() + base::Milliseconds(1000),
+                  TimeTicks() + base::Milliseconds(1007),
                   // Time budget is ~6ms and we can run one 7ms task.
-                  TimeTicks() + base::TimeDelta::FromMilliseconds(2000),
+                  TimeTicks() + base::Milliseconds(2000),
                   // Time budget is ~0ms and we can run one 7ms tasks every
                   // 700ms.
-                  start_time_ + base::TimeDelta::FromMilliseconds(2100),
-                  start_time_ + base::TimeDelta::FromMilliseconds(2800),
-                  start_time_ + base::TimeDelta::FromMilliseconds(3500),
-                  start_time_ + base::TimeDelta::FromMilliseconds(4200),
-                  start_time_ + base::TimeDelta::FromMilliseconds(4900),
-                  start_time_ + base::TimeDelta::FromMilliseconds(5600),
-                  start_time_ + base::TimeDelta::FromMilliseconds(6300)));
+                  start_time_ + base::Milliseconds(2100),
+                  start_time_ + base::Milliseconds(2800),
+                  start_time_ + base::Milliseconds(3500),
+                  start_time_ + base::Milliseconds(4200),
+                  start_time_ + base::Milliseconds(4900),
+                  start_time_ + base::Milliseconds(5600),
+                  start_time_ + base::Milliseconds(6300)));
 }
 
 }  // namespace task_queue_throttler_unittest
diff --git a/third_party/blink/renderer/platform/scheduler/common/throttling/wake_up_budget_pool.cc b/third_party/blink/renderer/platform/scheduler/common/throttling/wake_up_budget_pool.cc
index 1ffe393..958647e 100644
--- a/third_party/blink/renderer/platform/scheduler/common/throttling/wake_up_budget_pool.cc
+++ b/third_party/blink/renderer/platform/scheduler/common/throttling/wake_up_budget_pool.cc
@@ -16,7 +16,7 @@
 using base::sequence_manager::TaskQueue;
 
 WakeUpBudgetPool::WakeUpBudgetPool(const char* name)
-    : BudgetPool(name), wake_up_interval_(base::TimeDelta::FromSeconds(1)) {}
+    : BudgetPool(name), wake_up_interval_(base::Seconds(1)) {}
 
 WakeUpBudgetPool::~WakeUpBudgetPool() = default;
 
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/auto_advancing_virtual_time_domain_unittest.cc b/third_party/blink/renderer/platform/scheduler/main_thread/auto_advancing_virtual_time_domain_unittest.cc
index b7f11f9..5bc8de8 100644
--- a/third_party/blink/renderer/platform/scheduler/main_thread/auto_advancing_virtual_time_domain_unittest.cc
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/auto_advancing_virtual_time_domain_unittest.cc
@@ -39,8 +39,7 @@
     scheduler_helper_->AddTaskTimeObserver(&test_task_time_observer_);
     task_queue_ = scheduler_helper_->DefaultNonMainThreadTaskQueue();
     initial_time_ = base::Time::FromJsTime(100000.0);
-    initial_time_ticks_ =
-        base::TimeTicks() + base::TimeDelta::FromMilliseconds(5);
+    initial_time_ticks_ = base::TimeTicks() + base::Milliseconds(5);
     auto_advancing_time_domain_ =
         std::make_unique<AutoAdvancingVirtualTimeDomain>(
             initial_time_, initial_time_ticks_, scheduler_helper_.get());
@@ -97,7 +96,7 @@
   task_queue_->task_runner()->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(DelayedTask, &count, &delayed_task_run_at_count),
-      base::TimeDelta::FromMilliseconds(10));
+      base::Milliseconds(10));
 
   base::RunLoop().RunUntilIdle();
 
@@ -116,7 +115,7 @@
   task_queue_->task_runner()->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(DelayedTask, &count, &delayed_task_run_at_count),
-      base::TimeDelta::FromMilliseconds(10));
+      base::Milliseconds(10));
 
   base::RunLoop().RunUntilIdle();
 
@@ -156,7 +155,7 @@
   EXPECT_EQ(base::Time::Now(), initial_time);
 
   // Make time advance.
-  base::TimeDelta delay = base::TimeDelta::FromMilliseconds(10);
+  base::TimeDelta delay = base::Milliseconds(10);
   bool task_run = false;
   task_queue_->task_runner()->PostDelayedTask(
       FROM_HERE, base::BindOnce(NopTask, &task_run), delay);
@@ -169,7 +168,7 @@
   EXPECT_EQ(base::TimeTicks::Now(), initial_time_ticks_);
 
   // Make time advance.
-  base::TimeDelta delay = base::TimeDelta::FromMilliseconds(20);
+  base::TimeDelta delay = base::Milliseconds(20);
   bool task_run = false;
   task_queue_->task_runner()->PostDelayedTask(
       FROM_HERE, base::BindOnce(NopTask, &task_run), delay);
@@ -183,12 +182,11 @@
   // Post a task for t+10ms.
   bool task_run = false;
   task_queue_->task_runner()->PostDelayedTask(
-      FROM_HERE, base::BindOnce(NopTask, &task_run),
-      base::TimeDelta::FromMilliseconds(10));
+      FROM_HERE, base::BindOnce(NopTask, &task_run), base::Milliseconds(10));
 
   // Advance virtual time past task time to t+100ms.
-  auto_advancing_time_domain_->MaybeAdvanceVirtualTime(
-      initial_time_ticks_ + base::TimeDelta::FromMilliseconds(100));
+  auto_advancing_time_domain_->MaybeAdvanceVirtualTime(initial_time_ticks_ +
+                                                       base::Milliseconds(100));
 
   // Task at t+10ms should be run immediately.
   EXPECT_TRUE(
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/compositor_priority_experiments.cc b/third_party/blink/renderer/platform/scheduler/main_thread/compositor_priority_experiments.cc
index b4c37e0f7..94c1180 100644
--- a/third_party/blink/renderer/platform/scheduler/main_thread/compositor_priority_experiments.cc
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/compositor_priority_experiments.cc
@@ -19,7 +19,7 @@
       experiment_(GetExperimentFromFeatureList()),
       last_compositor_task_time_(scheduler_->GetTickClock()->NowTicks()),
       prioritize_compositing_after_delay_length_(
-          base::TimeDelta::FromMilliseconds(kCompositingDelayLength.Get())),
+          base::Milliseconds(kCompositingDelayLength.Get())),
       stop_signal_(base::FeatureList::IsEnabled(
                        kPrioritizeCompositingUntilBeginMainFrame)
                        ? StopSignalType::kBeginMainFrameTask
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/deadline_task_runner_unittest.cc b/third_party/blink/renderer/platform/scheduler/main_thread/deadline_task_runner_unittest.cc
index 48c1251..d868a84 100644
--- a/third_party/blink/renderer/platform/scheduler/main_thread/deadline_task_runner_unittest.cc
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/deadline_task_runner_unittest.cc
@@ -44,7 +44,7 @@
 
 TEST_F(DeadlineTaskRunnerTest, RunOnce) {
   base::TimeTicks start_time = Now();
-  base::TimeDelta delay = base::TimeDelta::FromMilliseconds(10);
+  base::TimeDelta delay = base::Milliseconds(10);
   deadline_task_runner_->SetDeadline(FROM_HERE, delay, Now());
   task_environment_.FastForwardUntilNoTasksRemain();
 
@@ -52,12 +52,12 @@
 }
 
 TEST_F(DeadlineTaskRunnerTest, RunTwice) {
-  base::TimeDelta delay1 = base::TimeDelta::FromMilliseconds(10);
+  base::TimeDelta delay1 = base::Milliseconds(10);
   base::TimeTicks deadline1 = Now() + delay1;
   deadline_task_runner_->SetDeadline(FROM_HERE, delay1, Now());
   task_environment_.FastForwardUntilNoTasksRemain();
 
-  base::TimeDelta delay2 = base::TimeDelta::FromMilliseconds(100);
+  base::TimeDelta delay2 = base::Milliseconds(100);
   base::TimeTicks deadline2 = Now() + delay2;
   deadline_task_runner_->SetDeadline(FROM_HERE, delay2, Now());
   task_environment_.FastForwardUntilNoTasksRemain();
@@ -67,9 +67,9 @@
 
 TEST_F(DeadlineTaskRunnerTest, EarlierDeadlinesTakePrecidence) {
   base::TimeTicks start_time = Now();
-  base::TimeDelta delay1 = base::TimeDelta::FromMilliseconds(1);
-  base::TimeDelta delay10 = base::TimeDelta::FromMilliseconds(10);
-  base::TimeDelta delay100 = base::TimeDelta::FromMilliseconds(100);
+  base::TimeDelta delay1 = base::Milliseconds(1);
+  base::TimeDelta delay10 = base::Milliseconds(10);
+  base::TimeDelta delay100 = base::Milliseconds(100);
   deadline_task_runner_->SetDeadline(FROM_HERE, delay100, Now());
   deadline_task_runner_->SetDeadline(FROM_HERE, delay10, Now());
   deadline_task_runner_->SetDeadline(FROM_HERE, delay1, Now());
@@ -80,8 +80,8 @@
 
 TEST_F(DeadlineTaskRunnerTest, LaterDeadlinesIgnored) {
   base::TimeTicks start_time = Now();
-  base::TimeDelta delay100 = base::TimeDelta::FromMilliseconds(100);
-  base::TimeDelta delay10000 = base::TimeDelta::FromMilliseconds(10000);
+  base::TimeDelta delay100 = base::Milliseconds(100);
+  base::TimeDelta delay10000 = base::Milliseconds(10000);
   deadline_task_runner_->SetDeadline(FROM_HERE, delay100, Now());
   deadline_task_runner_->SetDeadline(FROM_HERE, delay10000, Now());
   task_environment_.FastForwardUntilNoTasksRemain();
@@ -90,8 +90,7 @@
 }
 
 TEST_F(DeadlineTaskRunnerTest, DeleteDeadlineTaskRunnerAfterPosting) {
-  deadline_task_runner_->SetDeadline(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(10), Now());
+  deadline_task_runner_->SetDeadline(FROM_HERE, base::Milliseconds(10), Now());
 
   // Deleting the pending task should cancel it.
   deadline_task_runner_.reset(nullptr);
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/find_in_page_budget_pool_controller.cc b/third_party/blink/renderer/platform/scheduler/main_thread/find_in_page_budget_pool_controller.cc
index 72d2472..7b014db 100644
--- a/third_party/blink/renderer/platform/scheduler/main_thread/find_in_page_budget_pool_controller.cc
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/find_in_page_budget_pool_controller.cc
@@ -15,8 +15,7 @@
 
 namespace {
 // We will accumulate at most 1000ms for find-in-page budget.
-constexpr base::TimeDelta kFindInPageMaxBudget =
-    base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kFindInPageMaxBudget = base::Seconds(1);
 // At least 25% of the total CPU time will go to find-in-page tasks.
 // TODO(rakina): Experiment with this number to figure out the right percentage
 // for find-in-page. Currently this is following CompositorPriorityExperiments.
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc
index 5141fcd..42ff569 100644
--- a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc
@@ -355,7 +355,7 @@
   // The duration of task time under which AddTaskTime buffers rather than
   // sending the task time update to the delegate.
   constexpr base::TimeDelta kTaskDurationSendThreshold =
-      base::TimeDelta::FromMilliseconds(100);
+      base::Milliseconds(100);
   if (!delegate_)
     return;
   task_time_ += time;
@@ -1333,7 +1333,7 @@
   base::UmaHistogramCustomTimes(
       "BackForwardCache.Experimental.UnexpectedIPCMessagePostedToCachedFrame."
       "TimeUntilIPCReceived",
-      duration, base::TimeDelta(), base::TimeDelta::FromMinutes(5), 100);
+      duration, base::TimeDelta(), base::Minutes(5), 100);
 }
 
 WTF::HashSet<SchedulingPolicy::Feature>
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl_unittest.cc b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl_unittest.cc
index 051e9e3..a4d897f 100644
--- a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl_unittest.cc
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl_unittest.cc
@@ -62,7 +62,7 @@
     PageSchedulerImpl::kDefaultThrottledWakeUpInterval;
 constexpr base::TimeDelta kIntensiveThrottledWakeUpInterval =
     PageSchedulerImpl::kIntensiveThrottledWakeUpInterval;
-constexpr auto kShortDelay = base::TimeDelta::FromMilliseconds(10);
+constexpr auto kShortDelay = base::Milliseconds(10);
 
 // This is a wrapper around MainThreadSchedulerImpl::CreatePageScheduler, that
 // returns the PageScheduler as a PageSchedulerImpl.
@@ -882,8 +882,7 @@
   // Schedule tasks with a short delay, during the intensive wake up throttling
   // grace period.
   int num_remaining_tasks =
-      base::TimeDelta::FromSeconds(
-          kIntensiveWakeUpThrottling_GracePeriodSeconds_Default)
+      base::Seconds(kIntensiveWakeUpThrottling_GracePeriodSeconds_Default)
           .IntDiv(kDefaultThrottledWakeUpInterval);
   task_runner->PostDelayedTask(
       FROM_HERE,
@@ -1012,13 +1011,13 @@
   EXPECT_EQ(0, GetTotalUpdateTaskTimeCalls());
   UnpausableTaskQueue()->GetTaskRunnerWithDefaultTaskType()->PostTask(
       FROM_HERE, base::BindOnce(&RunTaskOfLength, &task_environment_,
-                                base::TimeDelta::FromMilliseconds(10)));
+                                base::Milliseconds(10)));
   base::RunLoop().RunUntilIdle();
   EXPECT_FALSE(GetTaskTime().is_zero());
   EXPECT_EQ(0, GetTotalUpdateTaskTimeCalls());
   UnpausableTaskQueue()->GetTaskRunnerWithDefaultTaskType()->PostTask(
       FROM_HERE, base::BindOnce(&RunTaskOfLength, &task_environment_,
-                                base::TimeDelta::FromMilliseconds(100)));
+                                base::Milliseconds(100)));
   base::RunLoop().RunUntilIdle();
   EXPECT_TRUE(GetTaskTime().is_zero());
   EXPECT_EQ(1, GetTotalUpdateTaskTimeCalls());
@@ -1052,7 +1051,7 @@
     // Check the rest of the values after different types of commit.
     UnpausableTaskQueue()->GetTaskRunnerWithDefaultTaskType()->PostTask(
         FROM_HERE, base::BindOnce(&RunTaskOfLength, &task_environment_,
-                                  base::TimeDelta::FromMilliseconds(60)));
+                                  base::Milliseconds(60)));
     base::RunLoop().RunUntilIdle();
     EXPECT_FALSE(GetTaskTime().is_zero());
     EXPECT_EQ(0, GetTotalUpdateTaskTimeCalls());
@@ -1061,7 +1060,7 @@
 
     UnpausableTaskQueue()->GetTaskRunnerWithDefaultTaskType()->PostTask(
         FROM_HERE, base::BindOnce(&RunTaskOfLength, &task_environment_,
-                                  base::TimeDelta::FromMilliseconds(60)));
+                                  base::Milliseconds(60)));
     base::RunLoop().RunUntilIdle();
     EXPECT_EQ(test_case.expect_task_time_zero, GetTaskTime().is_zero());
     EXPECT_EQ(test_case.expected_total_calls, GetTotalUpdateTaskTimeCalls());
@@ -1137,7 +1136,7 @@
   observer->CheckObserverState(FROM_HERE, not_throttled_count, hidden_count,
                                throttled_count, stopped_count);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(30));
+  task_environment_.FastForwardBy(base::Seconds(30));
 
   // The frame gets throttled after some time in background.
   observer->CheckObserverState(FROM_HERE, not_throttled_count, hidden_count,
@@ -1171,7 +1170,7 @@
   page_scheduler_->SetPageVisible(false);
 
   // Wait 100 secs virtually and run pending tasks just in case.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(100));
+  task_environment_.FastForwardBy(base::Seconds(100));
   base::RunLoop().RunUntilIdle();
 
   observer->CheckObserverState(FROM_HERE, not_throttled_count, hidden_count,
@@ -1283,7 +1282,7 @@
   StorePageInBackForwardCache();
 
   // Run the tasks so that they are recorded in the histogram
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
 
   // Post IPC tasks, accounting for delay for when tracking starts.
   {
@@ -1337,7 +1336,7 @@
   StorePageInBackForwardCache();
 
   // Run the tasks so that they are recorded in the histogram
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
 
   base::ThreadPool::PostTask(
       FROM_HERE,
@@ -2811,12 +2810,11 @@
 TEST_F(WebSchedulingTaskQueueTest, DynamicTaskPriorityOrderDelayedTasks) {
   Vector<String> run_order;
 
-  PostWebSchedulingTestTasks(&run_order, "U1 U2 V1 V2",
-                             base::TimeDelta::FromMilliseconds(5));
+  PostWebSchedulingTestTasks(&run_order, "U1 U2 V1 V2", base::Milliseconds(5));
   task_queues_[static_cast<int>(WebSchedulingPriority::kUserBlockingPriority)]
       ->SetPriority(WebSchedulingPriority::kBackgroundPriority);
 
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(5));
+  task_environment_.FastForwardBy(base::Milliseconds(5));
 
   EXPECT_THAT(run_order, testing::ElementsAre("V1", "V2", "U1", "U2"));
 }
@@ -2831,7 +2829,7 @@
 
   // Snap the time to a multiple of 1 second. Otherwise, the exact run time
   // of throttled tasks after hiding the page will vary.
-  FastForwardToAlignedTime(base::TimeDelta::FromSeconds(1));
+  FastForwardToAlignedTime(base::Seconds(1));
   const base::TimeTicks start = base::TimeTicks::Now();
 
   // Hide the page to start throttling JS Timers.
@@ -2861,36 +2859,35 @@
         FROM_HERE, base::BindOnce(&RecordRunTime, &run_times[task_type]));
     task_runner->PostDelayedTask(
         FROM_HERE, base::BindOnce(&RecordRunTime, &run_times[task_type]),
-        base::TimeDelta::FromMilliseconds(1000));
+        base::Milliseconds(1000));
     task_runner->PostDelayedTask(
         FROM_HERE, base::BindOnce(&RecordRunTime, &run_times[task_type]),
-        base::TimeDelta::FromMilliseconds(1002));
+        base::Milliseconds(1002));
     task_runner->PostDelayedTask(
         FROM_HERE, base::BindOnce(&RecordRunTime, &run_times[task_type]),
-        base::TimeDelta::FromMilliseconds(1004));
+        base::Milliseconds(1004));
     task_runner->PostDelayedTask(
         FROM_HERE, base::BindOnce(&RecordRunTime, &run_times[task_type]),
-        base::TimeDelta::FromMilliseconds(2500));
+        base::Milliseconds(2500));
     task_runner->PostDelayedTask(
         FROM_HERE, base::BindOnce(&RecordRunTime, &run_times[task_type]),
-        base::TimeDelta::FromMilliseconds(6000));
+        base::Milliseconds(6000));
   }
 
   // Make posted tasks run.
-  task_environment_.FastForwardBy(base::TimeDelta::FromHours(1));
+  task_environment_.FastForwardBy(base::Hours(1));
 
   // The effective delay of a throttled task is >= the requested delay, and is
   // within [N * 1000, N * 1000 + 3] ms, where N is an integer. This is because
   // the wake up rate is 1 per second, and the duration of each wake up is 3 ms.
   for (TaskType task_type : kJavaScriptTimerTaskTypes) {
-    EXPECT_THAT(
-        run_times[task_type],
-        testing::ElementsAre(start + base::TimeDelta::FromMilliseconds(0),
-                             start + base::TimeDelta::FromMilliseconds(1000),
-                             start + base::TimeDelta::FromMilliseconds(1002),
-                             start + base::TimeDelta::FromMilliseconds(2000),
-                             start + base::TimeDelta::FromMilliseconds(3000),
-                             start + base::TimeDelta::FromMilliseconds(6000)));
+    EXPECT_THAT(run_times[task_type],
+                testing::ElementsAre(start + base::Milliseconds(0),
+                                     start + base::Milliseconds(1000),
+                                     start + base::Milliseconds(1002),
+                                     start + base::Milliseconds(2000),
+                                     start + base::Milliseconds(3000),
+                                     start + base::Milliseconds(6000)));
   }
 }
 
@@ -3000,7 +2997,7 @@
   // Test that wake ups are 1-second aligned if there is no recent wake up.
   {
     const base::TimeTicks scope_start = base::TimeTicks::Now();
-    EXPECT_EQ(scope_start, test_start + base::TimeDelta::FromMinutes(5));
+    EXPECT_EQ(scope_start, test_start + base::Minutes(5));
     std::vector<base::TimeTicks> run_times;
 
     task_runner->PostDelayedTask(FROM_HERE,
@@ -3008,8 +3005,8 @@
                                  kDefaultThrottledWakeUpInterval);
 
     task_environment_.FastForwardBy(kDefaultThrottledWakeUpInterval);
-    EXPECT_THAT(run_times, testing::ElementsAre(
-                               scope_start + base::TimeDelta::FromSeconds(1)));
+    EXPECT_THAT(run_times,
+                testing::ElementsAre(scope_start + base::Seconds(1)));
   }
 
   // Test that if there is a recent wake up:
@@ -3017,8 +3014,7 @@
   //   Otherwise:                               Wake ups are 1-second aligned
   {
     const base::TimeTicks scope_start = base::TimeTicks::Now();
-    EXPECT_EQ(scope_start, test_start + base::TimeDelta::FromMinutes(5) +
-                               base::TimeDelta::FromSeconds(1));
+    EXPECT_EQ(scope_start, test_start + base::Minutes(5) + base::Seconds(1));
     std::vector<base::TimeTicks> run_times;
 
     for (int i = 0; i < kNumTasks; ++i) {
@@ -3030,19 +3026,17 @@
     FastForwardToAlignedTime(kIntensiveThrottledWakeUpInterval);
 
     if (IsIntensiveThrottlingExpected()) {
-      const base::TimeTicks aligned_time =
-          scope_start + base::TimeDelta::FromSeconds(59);
+      const base::TimeTicks aligned_time = scope_start + base::Seconds(59);
       EXPECT_THAT(run_times,
                   testing::ElementsAre(aligned_time, aligned_time, aligned_time,
                                        aligned_time, aligned_time));
     } else {
-      EXPECT_THAT(
-          run_times,
-          testing::ElementsAre(scope_start + base::TimeDelta::FromSeconds(1),
-                               scope_start + base::TimeDelta::FromSeconds(2),
-                               scope_start + base::TimeDelta::FromSeconds(3),
-                               scope_start + base::TimeDelta::FromSeconds(4),
-                               scope_start + base::TimeDelta::FromSeconds(5)));
+      EXPECT_THAT(run_times,
+                  testing::ElementsAre(scope_start + base::Seconds(1),
+                                       scope_start + base::Seconds(2),
+                                       scope_start + base::Seconds(3),
+                                       scope_start + base::Seconds(4),
+                                       scope_start + base::Seconds(5)));
     }
   }
 
@@ -3051,7 +3045,7 @@
   // otherwise.
   {
     const base::TimeTicks scope_start = base::TimeTicks::Now();
-    EXPECT_EQ(scope_start, test_start + base::TimeDelta::FromMinutes(6));
+    EXPECT_EQ(scope_start, test_start + base::Minutes(6));
     std::vector<base::TimeTicks> run_times;
 
     task_runner->PostDelayedTask(FROM_HERE,
@@ -3070,7 +3064,7 @@
   // minute.
   {
     const base::TimeTicks scope_start = base::TimeTicks::Now();
-    EXPECT_EQ(scope_start, test_start + base::TimeDelta::FromMinutes(7));
+    EXPECT_EQ(scope_start, test_start + base::Minutes(7));
     std::vector<base::TimeTicks> run_times;
 
     const base::TimeDelta kLongDelay =
@@ -3088,8 +3082,8 @@
   // aligned.
   {
     const base::TimeTicks scope_start = base::TimeTicks::Now();
-    EXPECT_EQ(scope_start, test_start + base::TimeDelta::FromMinutes(12) +
-                               kDefaultThrottledWakeUpInterval);
+    EXPECT_EQ(scope_start,
+              test_start + base::Minutes(12) + kDefaultThrottledWakeUpInterval);
     std::vector<base::TimeTicks> run_times;
 
     page_scheduler_->OnTitleOrFaviconUpdated();
@@ -3107,25 +3101,22 @@
     task_environment_.FastForwardUntilNoTasksRemain();
 
     if (IsIntensiveThrottlingExpected()) {
-      EXPECT_THAT(run_times, testing::ElementsAre(
-                                 scope_start + base::TimeDelta::FromSeconds(1),
-                                 scope_start + base::TimeDelta::FromSeconds(2),
-                                 scope_start + base::TimeDelta::FromSeconds(3),
-                                 scope_start - kDefaultThrottledWakeUpInterval +
-                                     base::TimeDelta::FromMinutes(1),
-                                 scope_start - kDefaultThrottledWakeUpInterval +
-                                     base::TimeDelta::FromMinutes(1),
-                                 scope_start - kDefaultThrottledWakeUpInterval +
-                                     base::TimeDelta::FromMinutes(1)));
+      EXPECT_THAT(
+          run_times,
+          testing::ElementsAre(
+              scope_start + base::Seconds(1), scope_start + base::Seconds(2),
+              scope_start + base::Seconds(3),
+              scope_start - kDefaultThrottledWakeUpInterval + base::Minutes(1),
+              scope_start - kDefaultThrottledWakeUpInterval + base::Minutes(1),
+              scope_start - kDefaultThrottledWakeUpInterval +
+                  base::Minutes(1)));
     } else {
       EXPECT_THAT(
           run_times,
-          testing::ElementsAre(scope_start + base::TimeDelta::FromSeconds(1),
-                               scope_start + base::TimeDelta::FromSeconds(2),
-                               scope_start + base::TimeDelta::FromSeconds(3),
-                               scope_start + base::TimeDelta::FromSeconds(4),
-                               scope_start + base::TimeDelta::FromSeconds(5),
-                               scope_start + base::TimeDelta::FromSeconds(6)));
+          testing::ElementsAre(
+              scope_start + base::Seconds(1), scope_start + base::Seconds(2),
+              scope_start + base::Seconds(3), scope_start + base::Seconds(4),
+              scope_start + base::Seconds(5), scope_start + base::Seconds(6)));
     }
   }
 }
@@ -3163,12 +3154,12 @@
     }
 
     task_environment_.FastForwardBy(kGracePeriod);
-    EXPECT_THAT(run_times, testing::ElementsAre(
-                               scope_start + base::TimeDelta::FromSeconds(1),
-                               scope_start + base::TimeDelta::FromSeconds(2),
-                               scope_start + base::TimeDelta::FromSeconds(3),
-                               scope_start + base::TimeDelta::FromSeconds(4),
-                               scope_start + base::TimeDelta::FromSeconds(5)));
+    EXPECT_THAT(run_times,
+                testing::ElementsAre(scope_start + base::Seconds(1),
+                                     scope_start + base::Seconds(2),
+                                     scope_start + base::Seconds(3),
+                                     scope_start + base::Seconds(4),
+                                     scope_start + base::Seconds(5)));
   }
 
   // After the grace period:
@@ -3179,7 +3170,7 @@
   // the last minute). Otherwise, it should be 1-second aligned.
   {
     const base::TimeTicks scope_start = base::TimeTicks::Now();
-    EXPECT_EQ(scope_start, test_start + base::TimeDelta::FromMinutes(5));
+    EXPECT_EQ(scope_start, test_start + base::Minutes(5));
     std::vector<base::TimeTicks> run_times;
 
     task_runner->PostDelayedTask(FROM_HERE,
@@ -3196,7 +3187,7 @@
   // otherwise.
   {
     const base::TimeTicks scope_start = base::TimeTicks::Now();
-    EXPECT_EQ(scope_start, test_start + base::TimeDelta::FromMinutes(6));
+    EXPECT_EQ(scope_start, test_start + base::Minutes(6));
     std::vector<base::TimeTicks> run_times;
 
     for (int i = 0; i < kNumTasks; ++i) {
@@ -3214,13 +3205,12 @@
                   testing::ElementsAre(aligned_time, aligned_time, aligned_time,
                                        aligned_time, aligned_time));
     } else {
-      EXPECT_THAT(
-          run_times,
-          testing::ElementsAre(scope_start + base::TimeDelta::FromSeconds(1),
-                               scope_start + base::TimeDelta::FromSeconds(2),
-                               scope_start + base::TimeDelta::FromSeconds(3),
-                               scope_start + base::TimeDelta::FromSeconds(4),
-                               scope_start + base::TimeDelta::FromSeconds(5)));
+      EXPECT_THAT(run_times,
+                  testing::ElementsAre(scope_start + base::Seconds(1),
+                                       scope_start + base::Seconds(2),
+                                       scope_start + base::Seconds(3),
+                                       scope_start + base::Seconds(4),
+                                       scope_start + base::Seconds(5)));
     }
   }
 
@@ -3229,7 +3219,7 @@
   // otherwise.
   {
     const base::TimeTicks scope_start = base::TimeTicks::Now();
-    EXPECT_EQ(scope_start, test_start + base::TimeDelta::FromMinutes(7));
+    EXPECT_EQ(scope_start, test_start + base::Minutes(7));
     std::vector<base::TimeTicks> run_times;
 
     task_runner->PostDelayedTask(FROM_HERE,
@@ -3248,7 +3238,7 @@
   // should be 1-second aligned.
   {
     const base::TimeTicks scope_start = base::TimeTicks::Now();
-    EXPECT_EQ(scope_start, test_start + base::TimeDelta::FromMinutes(8));
+    EXPECT_EQ(scope_start, test_start + base::Minutes(8));
     std::vector<base::TimeTicks> run_times;
 
     const base::TimeDelta kLongDelay = kIntensiveThrottledWakeUpInterval * 6;
@@ -3266,7 +3256,7 @@
   // or favicon update. Otherwise, they should be 1-second aligned.
   {
     const base::TimeTicks scope_start = base::TimeTicks::Now();
-    EXPECT_EQ(scope_start, test_start + base::TimeDelta::FromMinutes(14));
+    EXPECT_EQ(scope_start, test_start + base::Minutes(14));
     std::vector<base::TimeTicks> run_times;
 
     page_scheduler_->OnTitleOrFaviconUpdated();
@@ -3287,21 +3277,17 @@
     if (IsIntensiveThrottlingExpected()) {
       EXPECT_THAT(
           run_times,
-          testing::ElementsAre(scope_start + base::TimeDelta::FromMinutes(1),
-                               scope_start + base::TimeDelta::FromMinutes(2),
-                               scope_start + base::TimeDelta::FromMinutes(2),
-                               scope_start + base::TimeDelta::FromMinutes(2),
-                               scope_start + base::TimeDelta::FromMinutes(2),
-                               scope_start + base::TimeDelta::FromMinutes(2)));
+          testing::ElementsAre(
+              scope_start + base::Minutes(1), scope_start + base::Minutes(2),
+              scope_start + base::Minutes(2), scope_start + base::Minutes(2),
+              scope_start + base::Minutes(2), scope_start + base::Minutes(2)));
     } else {
       EXPECT_THAT(
           run_times,
-          testing::ElementsAre(scope_start + base::TimeDelta::FromSeconds(1),
-                               scope_start + base::TimeDelta::FromSeconds(2),
-                               scope_start + base::TimeDelta::FromSeconds(3),
-                               scope_start + base::TimeDelta::FromSeconds(4),
-                               scope_start + base::TimeDelta::FromSeconds(5),
-                               scope_start + base::TimeDelta::FromSeconds(6)));
+          testing::ElementsAre(
+              scope_start + base::Seconds(1), scope_start + base::Seconds(2),
+              scope_start + base::Seconds(3), scope_start + base::Seconds(4),
+              scope_start + base::Seconds(5), scope_start + base::Seconds(6)));
     }
   }
 }
@@ -3609,9 +3595,9 @@
   EXPECT_TRUE(IsIntensiveWakeUpThrottlingEnabled());
 
   // The parameters should be the defaults.
-  EXPECT_EQ(base::TimeDelta::FromSeconds(
-                kIntensiveWakeUpThrottling_GracePeriodSeconds_Default),
-            GetIntensiveWakeUpThrottlingGracePeriod());
+  EXPECT_EQ(
+      base::Seconds(kIntensiveWakeUpThrottling_GracePeriodSeconds_Default),
+      GetIntensiveWakeUpThrottlingGracePeriod());
 }
 
 TEST_F(FrameSchedulerImplTestWithIntensiveWakeUpThrottlingPolicyOverride,
@@ -3867,8 +3853,8 @@
   // Make sure we are *not* aligned to a 1 second boundary by aligning to a 1
   // second boundary and moving past it a bit. If we were throttled, even
   // non-delayed tasks will need to wait until the next aligned interval to run.
-  FastForwardToAlignedTime(base::TimeDelta::FromSeconds(1));
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  FastForwardToAlignedTime(base::Seconds(1));
+  task_environment_.FastForwardBy(base::Milliseconds(1));
 
   const base::TimeTicks start = base::TimeTicks::Now();
 
@@ -3902,7 +3888,7 @@
   page_scheduler_->SetPageVisible(true);
 
   // Snap the time to a multiple of 1 second.
-  FastForwardToAlignedTime(base::TimeDelta::FromSeconds(1));
+  FastForwardToAlignedTime(base::Seconds(1));
   const base::TimeTicks start = base::TimeTicks::Now();
 
   std::vector<base::TimeTicks> run_times;
@@ -3913,18 +3899,17 @@
   for (int i = 0; i < 5; i++) {
     task_runner->PostDelayedTask(FROM_HERE,
                                  base::BindOnce(&RecordRunTime, &run_times),
-                                 base::TimeDelta::FromMilliseconds(50) * i);
+                                 base::Milliseconds(50) * i);
   }
 
   // Make posted tasks run.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment_.FastForwardBy(base::Seconds(5));
 
   EXPECT_THAT(run_times,
-              testing::ElementsAre(
-                  start, start + base::TimeDelta::FromMilliseconds(100),
-                  start + base::TimeDelta::FromMilliseconds(100),
-                  start + base::TimeDelta::FromMilliseconds(200),
-                  start + base::TimeDelta::FromMilliseconds(200)));
+              testing::ElementsAre(start, start + base::Milliseconds(100),
+                                   start + base::Milliseconds(100),
+                                   start + base::Milliseconds(200),
+                                   start + base::Milliseconds(200)));
 }
 
 // Make sure the normal throttling (1 wake up per second) is applied when the
@@ -3934,7 +3919,7 @@
   page_scheduler_->SetPageVisible(false);
 
   // Snap the time to a multiple of 1 second.
-  FastForwardToAlignedTime(base::TimeDelta::FromSeconds(1));
+  FastForwardToAlignedTime(base::Seconds(1));
   const base::TimeTicks start = base::TimeTicks::Now();
 
   std::vector<base::TimeTicks> run_times;
@@ -3945,18 +3930,17 @@
   for (int i = 0; i < 5; i++) {
     task_runner->PostDelayedTask(FROM_HERE,
                                  base::BindOnce(&RecordRunTime, &run_times),
-                                 base::TimeDelta::FromMilliseconds(50) * i);
+                                 base::Milliseconds(50) * i);
   }
 
   // Make posted tasks run.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment_.FastForwardBy(base::Seconds(5));
 
   EXPECT_THAT(run_times,
-              testing::ElementsAre(
-                  start, start + base::TimeDelta::FromMilliseconds(1000),
-                  start + base::TimeDelta::FromMilliseconds(1000),
-                  start + base::TimeDelta::FromMilliseconds(1000),
-                  start + base::TimeDelta::FromMilliseconds(1000)));
+              testing::ElementsAre(start, start + base::Milliseconds(1000),
+                                   start + base::Milliseconds(1000),
+                                   start + base::Milliseconds(1000),
+                                   start + base::Milliseconds(1000)));
 }
 
 TEST_F(FrameSchedulerImplThrottleForegroundTimersEnabledTest,
@@ -3965,7 +3949,7 @@
   page_scheduler_->AudioStateChanged(/*is_audio_playing=*/true);
 
   // Snap the time to a multiple of 1 second.
-  FastForwardToAlignedTime(base::TimeDelta::FromSeconds(1));
+  FastForwardToAlignedTime(base::Seconds(1));
   const base::TimeTicks start = base::TimeTicks::Now();
 
   std::vector<base::TimeTicks> run_times;
@@ -3976,18 +3960,17 @@
   for (int i = 0; i < 5; i++) {
     task_runner->PostDelayedTask(FROM_HERE,
                                  base::BindOnce(&RecordRunTime, &run_times),
-                                 base::TimeDelta::FromMilliseconds(50) * i);
+                                 base::Milliseconds(50) * i);
   }
 
   // Make posted tasks run.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment_.FastForwardBy(base::Seconds(5));
 
   EXPECT_THAT(run_times,
-              testing::ElementsAre(
-                  start, start + base::TimeDelta::FromMilliseconds(100),
-                  start + base::TimeDelta::FromMilliseconds(100),
-                  start + base::TimeDelta::FromMilliseconds(200),
-                  start + base::TimeDelta::FromMilliseconds(200)));
+              testing::ElementsAre(start, start + base::Milliseconds(100),
+                                   start + base::Milliseconds(100),
+                                   start + base::Milliseconds(200),
+                                   start + base::Milliseconds(200)));
 }
 
 TEST_F(FrameSchedulerImplThrottleForegroundTimersEnabledTest,
@@ -4004,25 +3987,24 @@
 
   cross_origin_frame_scheduler->SetFrameVisible(true);
   // Snap the time to a multiple of 1 second.
-  FastForwardToAlignedTime(base::TimeDelta::FromSeconds(1));
+  FastForwardToAlignedTime(base::Seconds(1));
   const base::TimeTicks start = base::TimeTicks::Now();
 
   std::vector<base::TimeTicks> run_times;
   for (int i = 0; i < 5; i++) {
     cross_origin_task_runner->PostDelayedTask(
         FROM_HERE, base::BindOnce(&RecordRunTime, &run_times),
-        base::TimeDelta::FromMilliseconds(50) * i);
+        base::Milliseconds(50) * i);
   }
 
   // Make posted tasks run.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment_.FastForwardBy(base::Seconds(5));
 
   EXPECT_THAT(run_times,
-              testing::ElementsAre(
-                  start, start + base::TimeDelta::FromMilliseconds(100),
-                  start + base::TimeDelta::FromMilliseconds(100),
-                  start + base::TimeDelta::FromMilliseconds(200),
-                  start + base::TimeDelta::FromMilliseconds(200)));
+              testing::ElementsAre(start, start + base::Milliseconds(100),
+                                   start + base::Milliseconds(100),
+                                   start + base::Milliseconds(200),
+                                   start + base::Milliseconds(200)));
 }
 
 TEST_F(FrameSchedulerImplThrottleForegroundTimersEnabledTest,
@@ -4039,25 +4021,24 @@
 
   cross_origin_frame_scheduler->SetFrameVisible(false);
   // Snap the time to a multiple of 1 second.
-  FastForwardToAlignedTime(base::TimeDelta::FromSeconds(1));
+  FastForwardToAlignedTime(base::Seconds(1));
   const base::TimeTicks start = base::TimeTicks::Now();
 
   std::vector<base::TimeTicks> run_times;
   for (int i = 0; i < 5; i++) {
     cross_origin_task_runner->PostDelayedTask(
         FROM_HERE, base::BindOnce(&RecordRunTime, &run_times),
-        base::TimeDelta::FromMilliseconds(50) * i);
+        base::Milliseconds(50) * i);
   }
 
   // Make posted tasks run.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(5));
+  task_environment_.FastForwardBy(base::Seconds(5));
 
   EXPECT_THAT(run_times,
-              testing::ElementsAre(
-                  start, start + base::TimeDelta::FromMilliseconds(1000),
-                  start + base::TimeDelta::FromMilliseconds(1000),
-                  start + base::TimeDelta::FromMilliseconds(1000),
-                  start + base::TimeDelta::FromMilliseconds(1000)));
+              testing::ElementsAre(start, start + base::Milliseconds(1000),
+                                   start + base::Milliseconds(1000),
+                                   start + base::Milliseconds(1000),
+                                   start + base::Milliseconds(1000)));
 }
 
 class FrameSchedulerImplDisablePrioritizedPostMessageForwarding
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/idle_time_estimator_unittest.cc b/third_party/blink/renderer/platform/scheduler/main_thread/idle_time_estimator_unittest.cc
index 1023113f..fc6fa049 100644
--- a/third_party/blink/renderer/platform/scheduler/main_thread/idle_time_estimator_unittest.cc
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/idle_time_estimator_unittest.cc
@@ -25,7 +25,7 @@
       : task_environment_(
             base::test::TaskEnvironment::TimeSource::MOCK_TIME,
             base::test::TaskEnvironment::ThreadPoolExecutionMode::QUEUED),
-        frame_length_(base::TimeDelta::FromMilliseconds(16)) {}
+        frame_length_(base::Milliseconds(16)) {}
 
   ~IdleTimeEstimatorTest() override = default;
 
@@ -54,8 +54,7 @@
   }
 
   void SimulateFrameWithOneCompositorTask(int compositor_time) {
-    base::TimeDelta non_idle_time =
-        base::TimeDelta::FromMilliseconds(compositor_time);
+    base::TimeDelta non_idle_time = base::Milliseconds(compositor_time);
     PostTask(compositor_task_runner_1_, compositor_time, /*commit=*/true);
     if (non_idle_time < frame_length_)
       task_environment_.FastForwardBy(frame_length_ - non_idle_time);
@@ -63,10 +62,8 @@
 
   void SimulateFrameWithTwoCompositorTasks(int compositor_time1,
                                            int compositor_time2) {
-    base::TimeDelta non_idle_time1 =
-        base::TimeDelta::FromMilliseconds(compositor_time1);
-    base::TimeDelta non_idle_time2 =
-        base::TimeDelta::FromMilliseconds(compositor_time2);
+    base::TimeDelta non_idle_time1 = base::Milliseconds(compositor_time1);
+    base::TimeDelta non_idle_time2 = base::Milliseconds(compositor_time2);
     PostTask(compositor_task_runner_1_, compositor_time1, /*commit=*/false);
     PostTask(compositor_task_runner_2_, compositor_time2, /*commit=*/true);
     base::TimeDelta idle_time = frame_length_ - non_idle_time1 - non_idle_time2;
@@ -82,7 +79,7 @@
             [](base::test::TaskEnvironment* task_environment,
                IdleTimeEstimator* estimator, int compositor_time, bool commit) {
               base::TimeDelta non_idle_time =
-                  base::TimeDelta::FromMilliseconds(compositor_time);
+                  base::Milliseconds(compositor_time);
               task_environment->FastForwardBy(non_idle_time);
               if (commit)
                 estimator->DidCommitFrameToCompositor();
@@ -110,7 +107,7 @@
   SimulateFrameWithOneCompositorTask(5);
   SimulateFrameWithOneCompositorTask(5);
 
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(11),
+  EXPECT_EQ(base::Milliseconds(11),
             estimator_->GetExpectedIdleDuration(frame_length_));
 }
 
@@ -123,7 +120,7 @@
   SimulateFrameWithOneCompositorTask(8);
 
   // We expect it to return the median.
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(9),
+  EXPECT_EQ(base::Milliseconds(9),
             estimator_->GetExpectedIdleDuration(frame_length_));
 }
 
@@ -131,7 +128,7 @@
   SimulateFrameWithOneCompositorTask(100);
   SimulateFrameWithOneCompositorTask(100);
 
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(0),
+  EXPECT_EQ(base::Milliseconds(0),
             estimator_->GetExpectedIdleDuration(frame_length_));
 }
 
@@ -139,7 +136,7 @@
   SimulateFrameWithOneCompositorTask(5);
   SimulateFrameWithOneCompositorTask(5);
 
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(11),
+  EXPECT_EQ(base::Milliseconds(11),
             estimator_->GetExpectedIdleDuration(frame_length_));
   estimator_->Clear();
 
@@ -150,7 +147,7 @@
   SimulateFrameWithTwoCompositorTasks(1, 4);
   SimulateFrameWithTwoCompositorTasks(1, 4);
 
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(11),
+  EXPECT_EQ(base::Milliseconds(11),
             estimator_->GetExpectedIdleDuration(frame_length_));
 }
 
@@ -160,7 +157,7 @@
   SimulateFrameWithTwoCompositorTasks(1, 4);
   SimulateFrameWithTwoCompositorTasks(1, 4);
 
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(12),
+  EXPECT_EQ(base::Milliseconds(12),
             estimator_->GetExpectedIdleDuration(frame_length_));
 }
 
@@ -177,7 +174,7 @@
   estimator_->DidCommitFrameToCompositor();
   estimator_->DidProcessTask(task);
 
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(11),
+  EXPECT_EQ(base::Milliseconds(11),
             estimator_->GetExpectedIdleDuration(frame_length_));
 }
 
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_metrics_helper.cc b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_metrics_helper.cc
index 0e236e0..9fa73df 100644
--- a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_metrics_helper.cc
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_metrics_helper.cc
@@ -29,9 +29,8 @@
 namespace {
 
 constexpr base::TimeDelta kThreadLoadTrackerReportingInterval =
-    base::TimeDelta::FromSeconds(1);
-constexpr base::TimeDelta kLongIdlePeriodDiscardingThreshold =
-    base::TimeDelta::FromMinutes(3);
+    base::Seconds(1);
+constexpr base::TimeDelta kLongIdlePeriodDiscardingThreshold = base::Minutes(3);
 
 // Main thread load percentage that is considered low.
 constexpr int kMainThreadTaskLoadLowPercentage = 25;
@@ -243,7 +242,7 @@
       base::TimeDelta time_since_foregrounded =
           time - main_thread_scheduler_->main_thread_only()
                      .background_status_changed_at;
-      if (time_since_foregrounded > base::TimeDelta::FromMinutes(1)) {
+      if (time_since_foregrounded > base::Minutes(1)) {
         UMA_HISTOGRAM_PERCENTAGE(MAIN_THREAD_LOAD_METRIC_NAME
                                  ".Foreground.AfterFirstMinute",
                                  load_percentage);
@@ -275,17 +274,17 @@
       base::TimeDelta time_since_backgrounded =
           time - main_thread_scheduler_->main_thread_only()
                      .background_status_changed_at;
-      if (time_since_backgrounded > base::TimeDelta::FromMinutes(1)) {
+      if (time_since_backgrounded > base::Minutes(1)) {
         UMA_HISTOGRAM_PERCENTAGE(MAIN_THREAD_LOAD_METRIC_NAME
                                  ".Background.AfterFirstMinute",
                                  load_percentage);
       }
-      if (time_since_backgrounded > base::TimeDelta::FromMinutes(5)) {
+      if (time_since_backgrounded > base::Minutes(5)) {
         UMA_HISTOGRAM_PERCENTAGE(MAIN_THREAD_LOAD_METRIC_NAME
                                  ".Background.AfterFifthMinute",
                                  load_percentage);
       }
-      if (time_since_backgrounded > base::TimeDelta::FromMinutes(10)) {
+      if (time_since_backgrounded > base::Minutes(10)) {
         UMA_HISTOGRAM_PERCENTAGE(MAIN_THREAD_LOAD_METRIC_NAME
                                  ".Background.AfterTenthMinute",
                                  load_percentage);
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
index e3b4369..c56c618 100644
--- a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
@@ -312,7 +312,7 @@
     // The real uptime of the machine is irrelevant if we're using virtual time
     // we choose an arbitrary initial offset.
     main_thread_only().initial_virtual_time_ticks =
-        base::TimeTicks() + base::TimeDelta::FromSeconds(10);
+        base::TimeTicks() + base::Seconds(10);
     EnableVirtualTime();
     SetVirtualTimePolicy(VirtualTimePolicy::kPause);
   }
@@ -1001,7 +1001,7 @@
     // Ensure that we stop running idle tasks after a few seconds of being
     // hidden.
     base::TimeDelta end_idle_when_hidden_delay =
-        base::TimeDelta::FromMilliseconds(kEndIdleWhenHiddenDelayMillis);
+        base::Milliseconds(kEndIdleWhenHiddenDelayMillis);
     control_task_queue_->GetTaskRunnerWithDefaultTaskType()->PostDelayedTask(
         FROM_HERE, end_renderer_hidden_idle_period_closure_.GetCallback(),
         end_idle_when_hidden_delay);
@@ -1209,8 +1209,7 @@
                "MainThreadSchedulerImpl::DidAnimateForInputOnCompositorThread");
   base::AutoLock lock(any_thread_lock_);
   any_thread().fling_compositor_escalation_deadline =
-      helper_.NowTicks() +
-      base::TimeDelta::FromMilliseconds(kFlingEscalationLimitMillis);
+      helper_.NowTicks() + base::Milliseconds(kFlingEscalationLimitMillis);
 }
 
 void MainThreadSchedulerImpl::DidScheduleBeginMainFrame() {
@@ -1766,7 +1765,7 @@
     case UseCase::kEarlyLoading:
     case UseCase::kLoading:
     case UseCase::kNone:
-      return base::TimeDelta::FromMilliseconds(kRailsResponseTimeMillis);
+      return base::Milliseconds(kRailsResponseTimeMillis);
 
     case UseCase::kMainThreadCustomInputHandling:
     case UseCase::kMainThreadGesture:
@@ -1776,7 +1775,7 @@
 
     default:
       NOTREACHED();
-      return base::TimeDelta::FromMilliseconds(kRailsResponseTimeMillis);
+      return base::Milliseconds(kRailsResponseTimeMillis);
   }
 }
 
@@ -2674,7 +2673,7 @@
     // Trade off for privacy: Round to seconds for times below 10 minutes and
     // minutes afterwards.
     int64_t seconds_since_backgrounded = 0;
-    if (time_since_backgrounded < base::TimeDelta::FromMinutes(10)) {
+    if (time_since_backgrounded < base::Minutes(10)) {
       seconds_since_backgrounded = time_since_backgrounded.InSeconds();
     } else {
       seconds_since_backgrounded =
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl_unittest.cc b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl_unittest.cc
index aa96a3f..faf16a4a 100644
--- a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl_unittest.cc
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl_unittest.cc
@@ -231,7 +231,7 @@
                             base::TimeTicks deadline) {
   scheduler->WillBeginFrame(viz::BeginFrameArgs::Create(
       BEGINFRAME_FROM_HERE, 0, sequence_number, clock->NowTicks(),
-      base::TimeTicks(), base::TimeDelta::FromMilliseconds(1000),
+      base::TimeTicks(), base::Milliseconds(1000),
       viz::BeginFrameArgs::NORMAL));
 }
 
@@ -431,8 +431,7 @@
     test_task_runner_ = base::WrapRefCounted(new base::TestMockTimeTaskRunner(
         base::TestMockTimeTaskRunner::Type::kBoundToThread));
     // A null clock triggers some assertions.
-    test_task_runner_->AdvanceMockTickClock(
-        base::TimeDelta::FromMilliseconds(5));
+    test_task_runner_->AdvanceMockTickClock(base::Milliseconds(5));
   }
 
   void Initialize(std::unique_ptr<MainThreadSchedulerImplForTest> scheduler) {
@@ -558,8 +557,7 @@
   void DoMainFrame() {
     viz::BeginFrameArgs begin_frame_args = viz::BeginFrameArgs::Create(
         BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, Now(),
-        base::TimeTicks(), base::TimeDelta::FromMilliseconds(16),
-        viz::BeginFrameArgs::NORMAL);
+        base::TimeTicks(), base::Milliseconds(16), viz::BeginFrameArgs::NORMAL);
     begin_frame_args.on_critical_path = false;
     scheduler_->WillBeginFrame(begin_frame_args);
     scheduler_->DidCommitFrameToCompositor();
@@ -568,8 +566,7 @@
   void DoMainFrameOnCriticalPath() {
     viz::BeginFrameArgs begin_frame_args = viz::BeginFrameArgs::Create(
         BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, Now(),
-        base::TimeTicks(), base::TimeDelta::FromMilliseconds(16),
-        viz::BeginFrameArgs::NORMAL);
+        base::TimeTicks(), base::Milliseconds(16), viz::BeginFrameArgs::NORMAL);
     begin_frame_args.on_critical_path = true;
     scheduler_->WillBeginFrame(begin_frame_args);
   }
@@ -593,8 +590,7 @@
       task_runner->PostTask(
           FROM_HERE,
           base::BindOnce(&base::TestMockTimeTaskRunner::AdvanceMockTickClock,
-                         test_task_runner_,
-                         base::TimeDelta::FromMilliseconds(500)));
+                         test_task_runner_, base::Milliseconds(500)));
     }
     test_task_runner_->FastForwardUntilNoTasksRemain();
   }
@@ -781,7 +777,7 @@
   }
 
   void AdvanceTimeWithTask(double duration_seconds) {
-    base::TimeDelta duration = base::TimeDelta::FromSecondsD(duration_seconds);
+    base::TimeDelta duration = base::Seconds(duration_seconds);
     RunTask(base::BindOnce(
         [](scoped_refptr<base::TestMockTimeTaskRunner> test_task_runner,
            base::TimeDelta duration) {
@@ -815,7 +811,7 @@
         FROM_HERE,
         base::BindOnce(
             &MainThreadSchedulerImplTest::SimulateMainThreadCompositorTask,
-            base::Unretained(this), base::TimeDelta::FromMilliseconds(1000)));
+            base::Unretained(this), base::Milliseconds(1000)));
     base::RunLoop().RunUntilIdle();
   }
 
@@ -910,13 +906,11 @@
 
  protected:
   static base::TimeDelta priority_escalation_after_input_duration() {
-    return base::TimeDelta::FromMilliseconds(
-        UserModel::kGestureEstimationLimitMillis);
+    return base::Milliseconds(UserModel::kGestureEstimationLimitMillis);
   }
 
   static base::TimeDelta subsequent_input_expected_after_input_duration() {
-    return base::TimeDelta::FromMilliseconds(
-        UserModel::kExpectSubsequentGestureMillis);
+    return base::Milliseconds(UserModel::kExpectSubsequentGestureMillis);
   }
 
   static base::TimeDelta maximum_idle_period_duration() {
@@ -924,12 +918,12 @@
   }
 
   static base::TimeDelta end_idle_when_hidden_delay() {
-    return base::TimeDelta::FromMilliseconds(
+    return base::Milliseconds(
         MainThreadSchedulerImpl::kEndIdleWhenHiddenDelayMillis);
   }
 
   static base::TimeDelta rails_response_time() {
-    return base::TimeDelta::FromMilliseconds(
+    return base::Milliseconds(
         MainThreadSchedulerImpl::kRailsResponseTimeMillis);
   }
 
@@ -1018,12 +1012,10 @@
 
 TEST_F(MainThreadSchedulerImplTest, TestPostIdleTask) {
   int run_count = 0;
-  base::TimeTicks expected_deadline =
-      Now() + base::TimeDelta::FromMilliseconds(2300);
+  base::TimeTicks expected_deadline = Now() + base::Milliseconds(2300);
   base::TimeTicks deadline_in_task;
 
-  test_task_runner_->AdvanceMockTickClock(
-      base::TimeDelta::FromMilliseconds(100));
+  test_task_runner_->AdvanceMockTickClock(base::Milliseconds(100));
   idle_task_runner_->PostIdleTask(
       FROM_HERE, base::BindOnce(&IdleTestTask, &run_count, &deadline_in_task));
 
@@ -1032,23 +1024,21 @@
 
   scheduler_->WillBeginFrame(viz::BeginFrameArgs::Create(
       BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, Now(),
-      base::TimeTicks(), base::TimeDelta::FromMilliseconds(1000),
+      base::TimeTicks(), base::Milliseconds(1000),
       viz::BeginFrameArgs::NORMAL));
   base::RunLoop().RunUntilIdle();
   EXPECT_EQ(0, run_count);  // Shouldn't run as no DidCommitFrameToCompositor.
 
-  test_task_runner_->AdvanceMockTickClock(
-      base::TimeDelta::FromMilliseconds(1200));
+  test_task_runner_->AdvanceMockTickClock(base::Milliseconds(1200));
   scheduler_->DidCommitFrameToCompositor();
   base::RunLoop().RunUntilIdle();
   EXPECT_EQ(0, run_count);  // We missed the deadline.
 
   scheduler_->WillBeginFrame(viz::BeginFrameArgs::Create(
       BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, Now(),
-      base::TimeTicks(), base::TimeDelta::FromMilliseconds(1000),
+      base::TimeTicks(), base::Milliseconds(1000),
       viz::BeginFrameArgs::NORMAL));
-  test_task_runner_->AdvanceMockTickClock(
-      base::TimeDelta::FromMilliseconds(800));
+  test_task_runner_->AdvanceMockTickClock(base::Milliseconds(800));
   scheduler_->DidCommitFrameToCompositor();
   base::RunLoop().RunUntilIdle();
   EXPECT_EQ(1, run_count);
@@ -1108,17 +1098,16 @@
   // Trigger the beginning of an idle period for 1000ms.
   scheduler_->WillBeginFrame(viz::BeginFrameArgs::Create(
       BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, Now(),
-      base::TimeTicks(), base::TimeDelta::FromMilliseconds(1000),
+      base::TimeTicks(), base::Milliseconds(1000),
       viz::BeginFrameArgs::NORMAL));
   DoMainFrame();
 
   // End the idle period early (after 500ms), and send a WillBeginFrame which
   // specifies that the next idle period should end 1000ms from now.
-  test_task_runner_->AdvanceMockTickClock(
-      base::TimeDelta::FromMilliseconds(500));
+  test_task_runner_->AdvanceMockTickClock(base::Milliseconds(500));
   scheduler_->WillBeginFrame(viz::BeginFrameArgs::Create(
       BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, Now(),
-      base::TimeTicks(), base::TimeDelta::FromMilliseconds(1000),
+      base::TimeTicks(), base::Milliseconds(1000),
       viz::BeginFrameArgs::NORMAL));
 
   base::RunLoop().RunUntilIdle();
@@ -1126,15 +1115,14 @@
 
   // Trigger the start of the idle period before the task to end the previous
   // idle period has been triggered.
-  test_task_runner_->AdvanceMockTickClock(
-      base::TimeDelta::FromMilliseconds(400));
+  test_task_runner_->AdvanceMockTickClock(base::Milliseconds(400));
   scheduler_->DidCommitFrameToCompositor();
 
   // Post a task which simulates running until after the previous end idle
   // period delayed task was scheduled for
   scheduler_->DefaultTaskQueue()->GetTaskRunnerWithDefaultTaskType()->PostTask(
       FROM_HERE, base::BindOnce(NullTask));
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(300));
+  test_task_runner_->FastForwardBy(base::Milliseconds(300));
   EXPECT_EQ(1, run_count);  // We should still be in the new idle period.
 }
 
@@ -1217,8 +1205,7 @@
   SimulateCompositorGestureStart(TouchEventPolicy::kSendTouchStart);
 
   base::TimeTicks loop_end_time =
-      Now() + base::TimeDelta::FromMilliseconds(
-                  UserModel::kMedianGestureDurationMillis * 2);
+      Now() + base::Milliseconds(UserModel::kMedianGestureDurationMillis * 2);
 
   // The UseCase::kCompositorGesture usecase initially deprioritizes
   // compositor tasks (see
@@ -1228,8 +1215,7 @@
     scheduler_->DidHandleInputEventOnCompositorThread(
         FakeInputEvent(blink::WebInputEvent::Type::kTouchMove),
         InputEventState::EVENT_CONSUMED_BY_COMPOSITOR);
-    test_task_runner_->AdvanceMockTickClock(
-        base::TimeDelta::FromMilliseconds(16));
+    test_task_runner_->AdvanceMockTickClock(base::Milliseconds(16));
     base::RunLoop().RunUntilIdle();
   }
 
@@ -1526,8 +1512,7 @@
   ON_CALL(*page_scheduler_, IsWaitingForMainFrameMeaningfulPaint)
       .WillByDefault(Return(false));
   scheduler_->OnMainFramePaint();
-  test_task_runner_->AdvanceMockTickClock(
-      base::TimeDelta::FromMilliseconds(150000));
+  test_task_runner_->AdvanceMockTickClock(base::Milliseconds(150000));
   run_order.clear();
   PostTestTasks(&run_order, "I1 D1 C1 T1 L1 D2 C2 T2 L2");
   EnableIdleTasks();
@@ -1814,7 +1799,7 @@
   EXPECT_EQ(UseCase::kCompositorGesture,
             ForceUpdatePolicyAndGetCurrentUseCase());
 
-  test_task_runner_->AdvanceMockTickClock(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->AdvanceMockTickClock(base::Seconds(1));
   EXPECT_EQ(UseCase::kNone, ForceUpdatePolicyAndGetCurrentUseCase());
 }
 
@@ -1826,7 +1811,7 @@
   EXPECT_EQ(UseCase::kMainThreadCustomInputHandling,
             ForceUpdatePolicyAndGetCurrentUseCase());
 
-  test_task_runner_->AdvanceMockTickClock(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->AdvanceMockTickClock(base::Seconds(1));
   EXPECT_EQ(UseCase::kNone, ForceUpdatePolicyAndGetCurrentUseCase());
 }
 
@@ -1841,7 +1826,7 @@
   EXPECT_THAT(run_order, testing::ElementsAre("C1", "C2", "D1", "D2"));
 
   run_order.clear();
-  test_task_runner_->AdvanceMockTickClock(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->AdvanceMockTickClock(base::Seconds(1));
 
   // Don't post any compositor tasks to simulate a very long running event
   // handler.
@@ -2032,8 +2017,7 @@
 }
 
 TEST_F(MainThreadSchedulerImplTest, OnePendingDelayedAndOneUrgentUpdatePolicy) {
-  scheduler_->ScheduleDelayedPolicyUpdate(Now(),
-                                          base::TimeDelta::FromMilliseconds(1));
+  scheduler_->ScheduleDelayedPolicyUpdate(Now(), base::Milliseconds(1));
   scheduler_->EnsureUrgentPolicyUpdatePostedOnMainThread();
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
@@ -2043,8 +2027,7 @@
 
 TEST_F(MainThreadSchedulerImplTest, OneUrgentAndOnePendingDelayedUpdatePolicy) {
   scheduler_->EnsureUrgentPolicyUpdatePostedOnMainThread();
-  scheduler_->ScheduleDelayedPolicyUpdate(Now(),
-                                          base::TimeDelta::FromMilliseconds(1));
+  scheduler_->ScheduleDelayedPolicyUpdate(Now(), base::Milliseconds(1));
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
   // We expect both the urgent and the delayed updates to run.
@@ -2066,7 +2049,7 @@
       WebInputEventResult::kHandledSystem);
   EXPECT_EQ(1, scheduler_->update_policy_count_);
 
-  test_task_runner_->AdvanceMockTickClock(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->AdvanceMockTickClock(base::Seconds(1));
   base::RunLoop().RunUntilIdle();
   // We finally expect a delayed policy update 100ms later.
   EXPECT_EQ(2, scheduler_->update_policy_count_);
@@ -2117,7 +2100,7 @@
       FakeInputEvent(blink::WebInputEvent::Type::kTouchMove),
       WebInputEventResult::kHandledSystem);
   EXPECT_EQ(2, scheduler_->update_policy_count_);
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   // We finally expect a delayed policy update.
   EXPECT_EQ(3, scheduler_->update_policy_count_);
 }
@@ -2138,7 +2121,7 @@
       FakeTouchEvent(blink::WebInputEvent::Type::kTouchStart),
       WebInputEventResult::kHandledSystem);
   EXPECT_EQ(1, scheduler_->update_policy_count_);
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   // We expect a delayed policy update.
   EXPECT_EQ(2, scheduler_->update_policy_count_);
 
@@ -2155,7 +2138,7 @@
       FakeInputEvent(blink::WebInputEvent::Type::kTouchMove),
       WebInputEventResult::kHandledSystem);
   EXPECT_EQ(3, scheduler_->update_policy_count_);
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   // We finally expect a delayed policy update.
   EXPECT_EQ(4, scheduler_->update_policy_count_);
 }
@@ -2247,7 +2230,7 @@
 }
 
 TEST_F(MainThreadSchedulerImplTest, TestBeginMainFrameNotExpectedUntil) {
-  base::TimeDelta ten_millis(base::TimeDelta::FromMilliseconds(10));
+  base::TimeDelta ten_millis(base::Milliseconds(10));
   base::TimeTicks expected_deadline = Now() + ten_millis;
   base::TimeTicks deadline_in_task;
   int run_count = 0;
@@ -2286,7 +2269,7 @@
 }
 
 TEST_F(MainThreadSchedulerImplTest, TestLongIdlePeriodWithPendingDelayedTask) {
-  base::TimeDelta pending_task_delay = base::TimeDelta::FromMilliseconds(30);
+  base::TimeDelta pending_task_delay = base::Milliseconds(30);
   base::TimeTicks expected_deadline = Now() + pending_task_delay;
   base::TimeTicks deadline_in_task;
   int run_count = 0;
@@ -2304,7 +2287,7 @@
 
 TEST_F(MainThreadSchedulerImplTest,
        TestLongIdlePeriodWithLatePendingDelayedTask) {
-  base::TimeDelta pending_task_delay = base::TimeDelta::FromMilliseconds(10);
+  base::TimeDelta pending_task_delay = base::Milliseconds(10);
   base::TimeTicks deadline_in_task;
   int run_count = 0;
 
@@ -2312,8 +2295,7 @@
                                         pending_task_delay);
 
   // Advance clock until after delayed task was meant to be run.
-  test_task_runner_->AdvanceMockTickClock(
-      base::TimeDelta::FromMilliseconds(20));
+  test_task_runner_->AdvanceMockTickClock(base::Milliseconds(20));
 
   // Post an idle task and BeginFrameNotExpectedSoon to initiate a long idle
   // period. Since there is a late pending delayed task this shouldn't actually
@@ -2335,7 +2317,7 @@
 
   g_max_idle_task_reposts = 3;
   base::TimeTicks clock_before = Now();
-  base::TimeDelta idle_task_runtime(base::TimeDelta::FromMilliseconds(10));
+  base::TimeDelta idle_task_runtime(base::Milliseconds(10));
   idle_task_runner_->PostIdleTask(
       FROM_HERE,
       base::BindOnce(&RepostingUpdateClockIdleTestTask,
@@ -2416,7 +2398,7 @@
   // Should return false for a long idle period which is shortened due to a
   // pending delayed task.
   default_task_runner_->PostDelayedTask(FROM_HERE, base::BindOnce(&NullTask),
-                                        base::TimeDelta::FromMilliseconds(10));
+                                        base::Milliseconds(10));
   idle_task_runner_->PostIdleTask(
       FROM_HERE,
       base::BindOnce(&TestCanExceedIdleDeadlineIfRequiredTask, scheduler_.get(),
@@ -2441,7 +2423,7 @@
   // CanExceedIdleDeadlineIfRequired should return true.
   scheduler_->WillBeginFrame(viz::BeginFrameArgs::Create(
       BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, Now(),
-      base::TimeTicks(), base::TimeDelta::FromMilliseconds(1000),
+      base::TimeTicks(), base::Milliseconds(1000),
       viz::BeginFrameArgs::NORMAL));
   EXPECT_FALSE(scheduler_->CanExceedIdleDeadlineIfRequired());
 }
@@ -2474,7 +2456,7 @@
       base::BindOnce(&RepostingIdleTestTask,
                      base::RetainedRef(idle_task_runner_), &run_count));
   test_task_runner_->FastForwardBy(end_idle_when_hidden_delay() +
-                                   base::TimeDelta::FromMilliseconds(10));
+                                   base::Milliseconds(10));
   EXPECT_EQ(2, run_count);
 }
 
@@ -2568,8 +2550,7 @@
   ASSERT_FALSE(scheduler_->BeginMainFrameOnCriticalPath());
   viz::BeginFrameArgs begin_frame_args = viz::BeginFrameArgs::Create(
       BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, Now(),
-      base::TimeTicks(), base::TimeDelta::FromMilliseconds(1000),
-      viz::BeginFrameArgs::NORMAL);
+      base::TimeTicks(), base::Milliseconds(1000), viz::BeginFrameArgs::NORMAL);
   scheduler_->WillBeginFrame(begin_frame_args);
   ASSERT_TRUE(scheduler_->BeginMainFrameOnCriticalPath());
 
@@ -2636,8 +2617,7 @@
       blink::WebInputEvent::Type::kGestureScrollUpdate);
   viz::BeginFrameArgs begin_frame_args = viz::BeginFrameArgs::Create(
       BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, Now(),
-      base::TimeTicks(), base::TimeDelta::FromMilliseconds(16),
-      viz::BeginFrameArgs::NORMAL);
+      base::TimeTicks(), base::Milliseconds(16), viz::BeginFrameArgs::NORMAL);
   begin_frame_args.on_critical_path = false;
   scheduler_->WillBeginFrame(begin_frame_args);
 
@@ -2645,14 +2625,13 @@
       FROM_HERE,
       base::BindOnce(&MainThreadSchedulerImplTest::
                          SimulateMainThreadInputHandlingCompositorTask,
-                     base::Unretained(this),
-                     base::TimeDelta::FromMilliseconds(5)));
+                     base::Unretained(this), base::Milliseconds(5)));
 
   base::RunLoop().RunUntilIdle();
   EXPECT_EQ(UseCase::kMainThreadGesture, CurrentUseCase());
 
   // 16ms frame - 5ms compositor work = 11ms for other stuff.
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(11),
+  EXPECT_EQ(base::Milliseconds(11),
             scheduler_->EstimateLongestJankFreeTaskDuration());
 }
 
@@ -2661,8 +2640,7 @@
     EstimateLongestJankFreeTaskDuration_UseCase_MAIN_THREAD_CUSTOM_INPUT_HANDLING) {
   viz::BeginFrameArgs begin_frame_args = viz::BeginFrameArgs::Create(
       BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, Now(),
-      base::TimeTicks(), base::TimeDelta::FromMilliseconds(16),
-      viz::BeginFrameArgs::NORMAL);
+      base::TimeTicks(), base::Milliseconds(16), viz::BeginFrameArgs::NORMAL);
   begin_frame_args.on_critical_path = false;
   scheduler_->WillBeginFrame(begin_frame_args);
 
@@ -2670,14 +2648,13 @@
       FROM_HERE,
       base::BindOnce(&MainThreadSchedulerImplTest::
                          SimulateMainThreadInputHandlingCompositorTask,
-                     base::Unretained(this),
-                     base::TimeDelta::FromMilliseconds(5)));
+                     base::Unretained(this), base::Milliseconds(5)));
 
   base::RunLoop().RunUntilIdle();
   EXPECT_EQ(UseCase::kMainThreadCustomInputHandling, CurrentUseCase());
 
   // 16ms frame - 5ms compositor work = 11ms for other stuff.
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(11),
+  EXPECT_EQ(base::Milliseconds(11),
             scheduler_->EstimateLongestJankFreeTaskDuration());
 }
 
@@ -2687,8 +2664,7 @@
 
   viz::BeginFrameArgs begin_frame_args = viz::BeginFrameArgs::Create(
       BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, Now(),
-      base::TimeTicks(), base::TimeDelta::FromMilliseconds(16),
-      viz::BeginFrameArgs::NORMAL);
+      base::TimeTicks(), base::Milliseconds(16), viz::BeginFrameArgs::NORMAL);
   begin_frame_args.on_critical_path = true;
   scheduler_->WillBeginFrame(begin_frame_args);
 
@@ -2696,13 +2672,13 @@
       FROM_HERE,
       base::BindOnce(
           &MainThreadSchedulerImplTest::SimulateMainThreadCompositorTask,
-          base::Unretained(this), base::TimeDelta::FromMilliseconds(5)));
+          base::Unretained(this), base::Milliseconds(5)));
 
   base::RunLoop().RunUntilIdle();
   EXPECT_EQ(UseCase::kSynchronizedGesture, CurrentUseCase());
 
   // 16ms frame - 5ms compositor work = 11ms for other stuff.
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(11),
+  EXPECT_EQ(base::Milliseconds(11),
             scheduler_->EstimateLongestJankFreeTaskDuration());
 }
 
@@ -2712,8 +2688,7 @@
     scoped_refptr<base::TestMockTimeTaskRunner> task_runner,
     int task_duration,
     scoped_refptr<base::SingleThreadTaskRunner> throttleable_queue) {
-  task_runner->AdvanceMockTickClock(
-      base::TimeDelta::FromMilliseconds(task_duration));
+  task_runner->AdvanceMockTickClock(base::Milliseconds(task_duration));
   if (++(*count) < 500) {
     throttleable_queue->PostTask(
         FROM_HERE, base::BindOnce(SlowCountingTask, count, task_runner,
@@ -2740,8 +2715,7 @@
   for (int i = 0; i < 1000; i++) {
     viz::BeginFrameArgs begin_frame_args = viz::BeginFrameArgs::Create(
         BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, Now(),
-        base::TimeTicks(), base::TimeDelta::FromMilliseconds(16),
-        viz::BeginFrameArgs::NORMAL);
+        base::TimeTicks(), base::Milliseconds(16), viz::BeginFrameArgs::NORMAL);
     begin_frame_args.on_critical_path = true;
     scheduler_->WillBeginFrame(begin_frame_args);
     scheduler_->DidHandleInputEventOnCompositorThread(
@@ -2752,8 +2726,7 @@
         FROM_HERE,
         base::BindOnce(&MainThreadSchedulerImplTest::
                            SimulateMainThreadCompositorAndQuitRunLoopTask,
-                       base::Unretained(this),
-                       base::TimeDelta::FromMilliseconds(10)));
+                       base::Unretained(this), base::Milliseconds(10)));
 
     base::RunLoop().RunUntilIdle();
     EXPECT_EQ(UseCase::kSynchronizedGesture, CurrentUseCase()) << "i = " << i;
@@ -2794,8 +2767,7 @@
   for (int i = 0; i < 1000; i++) {
     viz::BeginFrameArgs begin_frame_args = viz::BeginFrameArgs::Create(
         BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, Now(),
-        base::TimeTicks(), base::TimeDelta::FromMilliseconds(16),
-        viz::BeginFrameArgs::NORMAL);
+        base::TimeTicks(), base::Milliseconds(16), viz::BeginFrameArgs::NORMAL);
     begin_frame_args.on_critical_path = true;
     scheduler_->WillBeginFrame(begin_frame_args);
     scheduler_->DidHandleInputEventOnCompositorThread(
@@ -2806,8 +2778,7 @@
         FROM_HERE,
         base::BindOnce(&MainThreadSchedulerImplTest::
                            SimulateMainThreadCompositorAndQuitRunLoopTask,
-                       base::Unretained(this),
-                       base::TimeDelta::FromMilliseconds(10)));
+                       base::Unretained(this), base::Milliseconds(10)));
 
     base::RunLoop().RunUntilIdle();
     EXPECT_EQ(UseCase::kSynchronizedGesture, CurrentUseCase()) << "i = " << i;
@@ -2834,7 +2805,7 @@
 
   // Check again at a time past the TOUCHSTART expiration. We should still get a
   // non-negative delay to when to check again.
-  now += base::TimeDelta::FromMilliseconds(500);
+  now += base::Milliseconds(500);
   EXPECT_FALSE(idle_delegate->CanEnterLongIdlePeriod(now, &next_time_to_check));
   EXPECT_GE(next_time_to_check, base::TimeDelta());
 }
@@ -2868,8 +2839,7 @@
   for (int i = 0; i < 100; i++) {
     viz::BeginFrameArgs begin_frame_args = viz::BeginFrameArgs::Create(
         BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, Now(),
-        base::TimeTicks(), base::TimeDelta::FromMilliseconds(16),
-        viz::BeginFrameArgs::NORMAL);
+        base::TimeTicks(), base::Milliseconds(16), viz::BeginFrameArgs::NORMAL);
     begin_frame_args.on_critical_path = true;
     scheduler_->WillBeginFrame(begin_frame_args);
     scheduler_->DidHandleInputEventOnCompositorThread(
@@ -2880,8 +2850,7 @@
         FROM_HERE,
         base::BindOnce(&MainThreadSchedulerImplTest::
                            SimulateMainThreadCompositorAndQuitRunLoopTask,
-                       base::Unretained(this),
-                       base::TimeDelta::FromMilliseconds(20)));
+                       base::Unretained(this), base::Milliseconds(20)));
 
     base::RunLoop().RunUntilIdle();
     EXPECT_EQ(UseCase::kSynchronizedGesture, CurrentUseCase()) << "i = " << i;
@@ -2909,8 +2878,7 @@
   for (int i = 0; i < 100; i++) {
     viz::BeginFrameArgs begin_frame_args = viz::BeginFrameArgs::Create(
         BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, Now(),
-        base::TimeTicks(), base::TimeDelta::FromMilliseconds(16),
-        viz::BeginFrameArgs::NORMAL);
+        base::TimeTicks(), base::Milliseconds(16), viz::BeginFrameArgs::NORMAL);
     begin_frame_args.on_critical_path = true;
     scheduler_->WillBeginFrame(begin_frame_args);
     scheduler_->DidHandleInputEventOnCompositorThread(
@@ -2921,8 +2889,7 @@
         FROM_HERE,
         base::BindOnce(&MainThreadSchedulerImplTest::
                            SimulateMainThreadCompositorAndQuitRunLoopTask,
-                       base::Unretained(this),
-                       base::TimeDelta::FromMilliseconds(20)));
+                       base::Unretained(this), base::Milliseconds(20)));
 
     base::RunLoop().RunUntilIdle();
     EXPECT_EQ(UseCase::kMainThreadCustomInputHandling, CurrentUseCase())
@@ -2952,8 +2919,7 @@
   for (int i = 0; i < 100; i++) {
     viz::BeginFrameArgs begin_frame_args = viz::BeginFrameArgs::Create(
         BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, Now(),
-        base::TimeTicks(), base::TimeDelta::FromMilliseconds(16),
-        viz::BeginFrameArgs::NORMAL);
+        base::TimeTicks(), base::Milliseconds(16), viz::BeginFrameArgs::NORMAL);
     begin_frame_args.on_critical_path = true;
     scheduler_->WillBeginFrame(begin_frame_args);
     scheduler_->DidHandleInputEventOnCompositorThread(
@@ -2964,8 +2930,7 @@
         FROM_HERE,
         base::BindOnce(&MainThreadSchedulerImplTest::
                            SimulateMainThreadCompositorAndQuitRunLoopTask,
-                       base::Unretained(this),
-                       base::TimeDelta::FromMilliseconds(20)));
+                       base::Unretained(this), base::Milliseconds(20)));
 
     base::RunLoop().RunUntilIdle();
     EXPECT_EQ(UseCase::kMainThreadGesture, CurrentUseCase()) << "i = " << i;
@@ -3093,8 +3058,7 @@
   for (int i = 0; i < 1000; i++) {
     viz::BeginFrameArgs begin_frame_args = viz::BeginFrameArgs::Create(
         BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, Now(),
-        base::TimeTicks(), base::TimeDelta::FromMilliseconds(16),
-        viz::BeginFrameArgs::NORMAL);
+        base::TimeTicks(), base::Milliseconds(16), viz::BeginFrameArgs::NORMAL);
     begin_frame_args.on_critical_path = true;
     scheduler_->WillBeginFrame(begin_frame_args);
     scheduler_->DidHandleInputEventOnCompositorThread(
@@ -3105,8 +3069,7 @@
         FROM_HERE,
         base::BindOnce(&MainThreadSchedulerImplTest::
                            SimulateMainThreadCompositorAndQuitRunLoopTask,
-                       base::Unretained(this),
-                       base::TimeDelta::FromMilliseconds(10)));
+                       base::Unretained(this), base::Milliseconds(10)));
 
     base::RunLoop().RunUntilIdle();
     EXPECT_EQ(UseCase::kSynchronizedGesture, CurrentUseCase()) << "i = " << i;
@@ -3334,8 +3297,7 @@
   throttleable_task_runner_->PostTask(FROM_HERE, base::BindOnce(NullTask));
 
   loading_task_queue()->GetTaskRunnerWithDefaultTaskType()->PostDelayedTask(
-      FROM_HERE, base::BindOnce(NullTask),
-      base::TimeDelta::FromMilliseconds(10));
+      FROM_HERE, base::BindOnce(NullTask), base::Milliseconds(10));
 
   scheduler_->CreateTraceEventObjectSnapshot();
 }
@@ -3600,8 +3562,8 @@
   base::TimeTicks start_time = Now();
   RecordingTaskTimeObserver observer;
 
-  const base::TimeDelta kTaskTime = base::TimeDelta::FromMilliseconds(100);
-  const base::TimeDelta kMicrotaskTime = base::TimeDelta::FromMilliseconds(200);
+  const base::TimeDelta kTaskTime = base::Milliseconds(100);
+  const base::TimeDelta kMicrotaskTime = base::Milliseconds(200);
   default_task_runner_->PostTask(
       FROM_HERE, WTF::Bind(&MainThreadSchedulerImplTest::AdvanceMockTickClockBy,
                            base::Unretained(this), kTaskTime));
@@ -3656,7 +3618,7 @@
             log->emplace_back("non-waking", clock->NowTicks());
           },
           &log, scheduler_->GetTickClock()),
-      base::TimeDelta::FromSeconds(3));
+      base::Seconds(3));
   scheduler_->DefaultTaskQueue()
       ->GetTaskRunnerWithDefaultTaskType()
       ->PostDelayedTask(
@@ -3667,7 +3629,7 @@
                 log->emplace_back("regular (delayed)", clock->NowTicks());
               },
               &log, scheduler_->GetTickClock()),
-          base::TimeDelta::FromSeconds(5));
+          base::Seconds(5));
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
@@ -3676,12 +3638,10 @@
   // Note: the exact order of these tasks is not fixed and depends on the time
   // domain iteration order.
   EXPECT_THAT(
-      log,
-      testing::UnorderedElementsAre(
-          std::make_pair("regular (immediate)", start),
-          std::make_pair("non-waking", start + base::TimeDelta::FromSeconds(5)),
-          std::make_pair("regular (delayed)",
-                         start + base::TimeDelta::FromSeconds(5))));
+      log, testing::UnorderedElementsAre(
+               std::make_pair("regular (immediate)", start),
+               std::make_pair("non-waking", start + base::Seconds(5)),
+               std::make_pair("regular (delayed)", start + base::Seconds(5))));
 }
 
 class BestEffortPriorityForFindInPageExperimentTest
@@ -3727,15 +3687,13 @@
   // Simulate a really long find-in-page task that takes 30% of CPU time
   // (300ms out of 1000 ms).
   base::TimeTicks task_start_time = Now();
-  base::TimeTicks task_end_time =
-      task_start_time + base::TimeDelta::FromMilliseconds(300);
+  base::TimeTicks task_end_time = task_start_time + base::Milliseconds(300);
   FakeTask fake_task;
   fake_task.set_enqueue_order(
       base::sequence_manager::EnqueueOrder::FromIntForTesting(42));
   FakeTaskTiming task_timing(task_start_time, task_end_time);
   scheduler_->OnTaskStarted(find_in_page_task_queue(), fake_task, task_timing);
-  AdvanceMockTickClockTo(task_start_time +
-                         base::TimeDelta::FromMilliseconds(1000));
+  AdvanceMockTickClockTo(task_start_time + base::Milliseconds(1000));
   scheduler_->OnTaskCompleted(find_in_page_task_queue()->AsWeakPtr(), fake_task,
                               &task_timing, nullptr);
 
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_unittest.cc b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_unittest.cc
index 712e2d0..cc7a4648 100644
--- a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_unittest.cc
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_unittest.cc
@@ -51,7 +51,7 @@
   MainThreadTest& operator=(const MainThreadTest&) = delete;
 
   void SetUp() override {
-    clock_.Advance(base::TimeDelta::FromMicroseconds(5000));
+    clock_.Advance(base::Microseconds(5000));
     scheduler_ = std::make_unique<MainThreadSchedulerImpl>(
         base::sequence_manager::CreateSequenceManagerOnCurrentThreadWithPump(
             base::MessagePump::Create(base::MessagePumpType::DEFAULT),
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/memory_purge_manager.cc b/third_party/blink/renderer/platform/scheduler/main_thread/memory_purge_manager.cc
index 8164d61..40d72a14 100644
--- a/third_party/blink/renderer/platform/scheduler/main_thread/memory_purge_manager.cc
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/memory_purge_manager.cc
@@ -24,8 +24,7 @@
           &blink::features::kFreezePurgeMemoryAllPagesFrozen,
           "delay-in-minutes",
           MemoryPurgeManager::kDefaultTimeToPurgeAfterFreezing};
-  return base::TimeDelta::FromMinutes(
-      kFreezePurgeMemoryAllPagesFrozenDelayInMinutes.Get());
+  return base::Minutes(kFreezePurgeMemoryAllPagesFrozenDelayInMinutes.Get());
 }
 
 int MinTimeToPurgeAfterBackgroundedInSeconds() {
@@ -179,8 +178,7 @@
 base::TimeDelta MemoryPurgeManager::GetTimeToPurgeAfterBackgrounded() const {
   int min_time_in_seconds = MinTimeToPurgeAfterBackgroundedInSeconds();
   int max_time_in_seconds = MaxTimeToPurgeAfterBackgroundedInSeconds();
-  return base::TimeDelta::FromSeconds(
-      base::RandInt(min_time_in_seconds, max_time_in_seconds));
+  return base::Seconds(base::RandInt(min_time_in_seconds, max_time_in_seconds));
 }
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/memory_purge_manager_unittest.cc b/third_party/blink/renderer/platform/scheduler/main_thread/memory_purge_manager_unittest.cc
index c298db27..ee97bdb 100644
--- a/third_party/blink/renderer/platform/scheduler/main_thread/memory_purge_manager_unittest.cc
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/memory_purge_manager_unittest.cc
@@ -17,8 +17,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kDelayForPurgeAfterFreeze =
-    base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kDelayForPurgeAfterFreeze = base::Minutes(1);
 
 class MemoryPurgeManagerTest : public testing::Test {
  public:
@@ -81,7 +80,7 @@
   memory_purge_manager_.OnPageCreated(PageLifecycleState::kActive);
   memory_purge_manager_.SetRendererBackgrounded(true);
   memory_purge_manager_.OnPageFrozen();
-  FastForwardBy(base::TimeDelta::FromMinutes(0));
+  FastForwardBy(base::Minutes(0));
   EXPECT_EQ(1U, MemoryPressureCount());
 }
 
@@ -95,7 +94,7 @@
   memory_purge_manager_.OnPageCreated(PageLifecycleState::kActive);
   memory_purge_manager_.SetRendererBackgrounded(false);
   memory_purge_manager_.OnPageFrozen();
-  FastForwardBy(base::TimeDelta::FromMinutes(0));
+  FastForwardBy(base::Minutes(0));
   EXPECT_EQ(0U, MemoryPressureCount());
 }
 
@@ -108,7 +107,7 @@
 
   memory_purge_manager_.SetRendererBackgrounded(true);
   memory_purge_manager_.OnPageFrozen();
-  FastForwardBy(base::TimeDelta::FromMinutes(0));
+  FastForwardBy(base::Minutes(0));
   EXPECT_EQ(1U, MemoryPressureCount());
 
   EXPECT_TRUE(base::MemoryPressureListener::AreNotificationsSuppressed());
@@ -132,17 +131,17 @@
   memory_purge_manager_.OnPageCreated(PageLifecycleState::kActive);
 
   memory_purge_manager_.OnPageFrozen();
-  FastForwardBy(base::TimeDelta::FromMinutes(0));
+  FastForwardBy(base::Minutes(0));
   EXPECT_EQ(1U, MemoryPressureCount());
   EXPECT_FALSE(base::MemoryPressureListener::AreNotificationsSuppressed());
 
   memory_purge_manager_.OnPageFrozen();
-  FastForwardBy(base::TimeDelta::FromMinutes(0));
+  FastForwardBy(base::Minutes(0));
   EXPECT_EQ(2U, MemoryPressureCount());
   EXPECT_FALSE(base::MemoryPressureListener::AreNotificationsSuppressed());
 
   memory_purge_manager_.OnPageFrozen();
-  FastForwardBy(base::TimeDelta::FromMinutes(0));
+  FastForwardBy(base::Minutes(0));
   EXPECT_EQ(3U, MemoryPressureCount());
   EXPECT_TRUE(base::MemoryPressureListener::AreNotificationsSuppressed());
 
@@ -173,17 +172,17 @@
   memory_purge_manager_.OnPageCreated(PageLifecycleState::kActive);
 
   memory_purge_manager_.OnPageFrozen();
-  FastForwardBy(base::TimeDelta::FromMinutes(0));
+  FastForwardBy(base::Minutes(0));
   EXPECT_EQ(0U, MemoryPressureCount());
   EXPECT_FALSE(base::MemoryPressureListener::AreNotificationsSuppressed());
 
   memory_purge_manager_.OnPageFrozen();
-  FastForwardBy(base::TimeDelta::FromMinutes(0));
+  FastForwardBy(base::Minutes(0));
   EXPECT_EQ(0U, MemoryPressureCount());
   EXPECT_FALSE(base::MemoryPressureListener::AreNotificationsSuppressed());
 
   memory_purge_manager_.OnPageFrozen();
-  FastForwardBy(base::TimeDelta::FromMinutes(0));
+  FastForwardBy(base::Minutes(0));
   EXPECT_EQ(1U, MemoryPressureCount());
   EXPECT_TRUE(base::MemoryPressureListener::AreNotificationsSuppressed());
 
@@ -210,7 +209,7 @@
   memory_purge_manager_.OnPageFrozen();
 
   // The memory pressure notification should not occur immediately
-  FastForwardBy(base::TimeDelta::FromMinutes(0));
+  FastForwardBy(base::Minutes(0));
   EXPECT_EQ(0U, MemoryPressureCount());
 
   // The memory pressure notification should occur after 1 minute
@@ -227,13 +226,13 @@
 
   memory_purge_manager_.SetRendererBackgrounded(true);
   memory_purge_manager_.OnPageFrozen();
-  FastForwardBy(base::TimeDelta::FromSeconds(40));
+  FastForwardBy(base::Seconds(40));
   EXPECT_EQ(0U, MemoryPressureCount());
 
   // If the page is resumed before the memory purge timer expires, the purge
   // should be cancelled.
   memory_purge_manager_.OnPageResumed();
-  FastForwardBy(base::TimeDelta::FromMinutes(0));
+  FastForwardBy(base::Minutes(0));
   EXPECT_EQ(0U, MemoryPressureCount());
 
   memory_purge_manager_.OnPageDestroyed(PageLifecycleState::kActive);
@@ -246,7 +245,7 @@
 
   memory_purge_manager_.SetRendererBackgrounded(true);
   memory_purge_manager_.OnPageFrozen();
-  FastForwardBy(base::TimeDelta::FromSeconds(40));
+  FastForwardBy(base::Seconds(40));
   EXPECT_EQ(0U, MemoryPressureCount());
 
   // All pages are no longer frozen, the memory purge should be cancelled.
@@ -265,7 +264,7 @@
 
   memory_purge_manager_.SetRendererBackgrounded(true);
   memory_purge_manager_.OnPageFrozen();
-  FastForwardBy(base::TimeDelta::FromSeconds(40));
+  FastForwardBy(base::Seconds(40));
   EXPECT_EQ(0U, MemoryPressureCount());
 
   // All pages are still frozen and the memory purge should occur.
@@ -283,7 +282,7 @@
       {} /* disabled */);
 
   memory_purge_manager_.SetRendererBackgrounded(true);
-  FastForwardBy(base::TimeDelta::FromMinutes(
+  FastForwardBy(base::Minutes(
       MemoryPurgeManager::kDefaultMaxTimeToPurgeAfterBackgrounded));
   // No page, no memory pressure.
   EXPECT_EQ(0U, MemoryPressureCount());
@@ -306,7 +305,7 @@
       {} /* disabled */);
 
   memory_purge_manager_.SetRendererBackgrounded(true);
-  FastForwardBy(base::TimeDelta::FromSeconds(30));
+  FastForwardBy(base::Seconds(30));
   EXPECT_EQ(0U, MemoryPressureCount());
 
   memory_purge_manager_.SetRendererBackgrounded(false);
@@ -315,10 +314,9 @@
 }
 
 TEST_F(MemoryPurgeManagerTest, PageFrozenAndResumedWhileBackgrounded) {
-  constexpr base::TimeDelta kFreezePurgeDelay =
-      base::TimeDelta::FromMinutes(10);
+  constexpr base::TimeDelta kFreezePurgeDelay = base::Minutes(10);
   constexpr base::TimeDelta kBeforeBackgroundPurgeDelay =
-      base::TimeDelta::FromMinutes(
+      base::Minutes(
           MemoryPurgeManager::kDefaultMinTimeToPurgeAfterBackgrounded) /
       2;
 
@@ -338,7 +336,7 @@
 
   memory_purge_manager_.OnPageResumed();
   FastForwardBy(
-      base::TimeDelta::FromMinutes(
+      base::Minutes(
           MemoryPurgeManager::kDefaultMaxTimeToPurgeAfterBackgrounded) -
       kBeforeBackgroundPurgeDelay);
   // Since the renderer is still backgrounded, the memory purge should happen
@@ -350,8 +348,7 @@
 
 TEST_F(MemoryPurgeManagerTest,
        PageFrozenAndRendererBackgroundedShorterBackgroundedDelay) {
-  constexpr base::TimeDelta kFreezePurgeDelay =
-      base::TimeDelta::FromMinutes(10);
+  constexpr base::TimeDelta kFreezePurgeDelay = base::Minutes(10);
   scoped_feature_list_.InitWithFeaturesAndParameters(
       {{features::kFreezePurgeMemoryAllPagesFrozen,
         {{"delay-in-minutes",
@@ -363,7 +360,7 @@
 
   memory_purge_manager_.SetRendererBackgrounded(true);
   memory_purge_manager_.OnPageFrozen();
-  FastForwardBy(base::TimeDelta::FromMinutes(
+  FastForwardBy(base::Minutes(
       MemoryPurgeManager::kDefaultMaxTimeToPurgeAfterBackgrounded));
   EXPECT_EQ(1U, MemoryPressureCount());
 
@@ -375,7 +372,7 @@
 
 TEST_F(MemoryPurgeManagerTest,
        PageFrozenAndRendererBackgroundedShorterFreezeDelay) {
-  constexpr base::TimeDelta kFreezePurgeDelay = base::TimeDelta::FromMinutes(
+  constexpr base::TimeDelta kFreezePurgeDelay = base::Minutes(
       MemoryPurgeManager::kDefaultMinTimeToPurgeAfterBackgrounded);
   scoped_feature_list_.InitWithFeaturesAndParameters(
       {{features::kFreezePurgeMemoryAllPagesFrozen,
@@ -409,7 +406,7 @@
   memory_purge_manager_.OnPageFrozen();
   memory_purge_manager_.OnPageDestroyed(PageLifecycleState::kFrozen);
 
-  FastForwardBy(base::TimeDelta::FromMinutes(0));
+  FastForwardBy(base::Minutes(0));
   EXPECT_EQ(0U, MemoryPressureCount());
 }
 
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc b/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc
index 9a12434..1ba1f06 100644
--- a/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc
@@ -46,13 +46,13 @@
 
 // Delay for fully throttling the page after backgrounding.
 constexpr base::TimeDelta kThrottlingDelayAfterBackgrounding =
-    base::TimeDelta::FromSeconds(10);
+    base::Seconds(10);
 
 // The amount of time to wait before suspending shared timers, and loading
 // etc. after the renderer has been backgrounded. This is used only if
 // background suspension is enabled.
 constexpr base::TimeDelta kDefaultDelayForBackgroundTabFreezing =
-    base::TimeDelta::FromMinutes(5);
+    base::Minutes(5);
 
 // The amount of time to wait before checking network idleness
 // after the page has been backgrounded. If network is idle,
@@ -60,20 +60,18 @@
 // freeze-background-tab-on-network-idle feature is enabled.
 // This value should be smaller than kDefaultDelayForBackgroundTabFreezing.
 constexpr base::TimeDelta kDefaultDelayForBackgroundAndNetworkIdleTabFreezing =
-    base::TimeDelta::FromMinutes(1);
+    base::Minutes(1);
 
 // Duration of a throttled wake up.
-constexpr base::TimeDelta kThrottledWakeUpDuration =
-    base::TimeDelta::FromMilliseconds(3);
+constexpr base::TimeDelta kThrottledWakeUpDuration = base::Milliseconds(3);
 
 // The duration for which intensive throttling should be inhibited for
 // same-origin frames when the page title or favicon is updated.
 constexpr base::TimeDelta
-    kTimeToInhibitIntensiveThrottlingOnTitleOrFaviconUpdate =
-        base::TimeDelta::FromSeconds(3);
+    kTimeToInhibitIntensiveThrottlingOnTitleOrFaviconUpdate = base::Seconds(3);
 
 constexpr base::TimeDelta kDefaultDelayForTrackingIPCsPostedToCachedFrames =
-    base::TimeDelta::FromSeconds(15);
+    base::Seconds(15);
 
 // Values coming from the field trial config are interpreted as follows:
 //   -1 is "not set". Scheduler should use a reasonable default.
@@ -104,7 +102,7 @@
 absl::optional<base::TimeDelta> DoubleToOptionalTime(double value) {
   if (value == 0)
     return absl::nullopt;
-  return base::TimeDelta::FromSecondsD(value);
+  return base::Seconds(value);
 }
 
 BackgroundThrottlingSettings GetBackgroundThrottlingSettings() {
@@ -137,8 +135,7 @@
   static const base::FeatureParam<int> kDelayForBackgroundTabFreezingMillis{
       &features::kStopInBackground, "DelayForBackgroundTabFreezingMills",
       static_cast<int>(kDefaultDelayForBackgroundTabFreezing.InMilliseconds())};
-  return base::TimeDelta::FromMilliseconds(
-      kDelayForBackgroundTabFreezingMillis.Get());
+  return base::Milliseconds(kDelayForBackgroundTabFreezingMillis.Get());
 }
 
 base::TimeDelta GetDelayForBackgroundAndNetworkIdleTabFreezing() {
@@ -148,7 +145,7 @@
           "DelayForBackgroundAndNetworkIdleTabFreezingMills",
           static_cast<int>(kDefaultDelayForBackgroundAndNetworkIdleTabFreezing
                                .InMilliseconds())};
-  return base::TimeDelta::FromMilliseconds(
+  return base::Milliseconds(
       kDelayForBackgroundAndNetworkIdleTabFreezingMillis.Get());
 }
 
@@ -161,7 +158,7 @@
             "delay_before_tracking_ms",
             static_cast<int>(kDefaultDelayForTrackingIPCsPostedToCachedFrames
                                  .InMilliseconds())};
-    return base::TimeDelta::FromMilliseconds(
+    return base::Milliseconds(
         kDelayForLoggingUnexpectedIPCPostedToBckForwardCacheMillis.Get());
   }
   return kDefaultDelayForTrackingIPCsPostedToCachedFrames;
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.h b/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.h
index ead8ed57..abd5276 100644
--- a/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.h
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.h
@@ -51,11 +51,11 @@
  public:
   // Interval between throttled wake ups, without intensive throttling.
   static constexpr base::TimeDelta kDefaultThrottledWakeUpInterval =
-      base::TimeDelta::FromSeconds(1);
+      base::Seconds(1);
 
   // Interval between throttled wake ups, with intensive throttling.
   static constexpr base::TimeDelta kIntensiveThrottledWakeUpInterval =
-      base::TimeDelta::FromMinutes(1);
+      base::Minutes(1);
 
   PageSchedulerImpl(PageScheduler::Delegate*, AgentGroupSchedulerImpl&);
   PageSchedulerImpl(const PageSchedulerImpl&) = delete;
@@ -226,8 +226,7 @@
   // silence during which a logo and button are shown after a YouTube ad. Since
   // most pages don't play audio in background, it was decided that the delay
   // can be increased to 30 seconds without significantly affecting performance.
-  static constexpr base::TimeDelta kRecentAudioDelay =
-      base::TimeDelta::FromSeconds(30);
+  static constexpr base::TimeDelta kRecentAudioDelay = base::Seconds(30);
 
   static const char kHistogramPageLifecycleStateTransition[];
 
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl_unittest.cc b/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl_unittest.cc
index 9fc104b..e6090772 100644
--- a/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl_unittest.cc
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl_unittest.cc
@@ -110,8 +110,7 @@
     test_task_runner_ = base::WrapRefCounted(new base::TestMockTimeTaskRunner(
         base::TestMockTimeTaskRunner::Type::kBoundToThread));
     // A null clock triggers some assertions.
-    test_task_runner_->AdvanceMockTickClock(
-        base::TimeDelta::FromMilliseconds(5));
+    test_task_runner_->AdvanceMockTickClock(base::Milliseconds(5));
     scheduler_ = std::make_unique<MainThreadSchedulerImpl>(
         base::sequence_manager::SequenceManagerForTest::Create(
             nullptr, test_task_runner_, test_task_runner_->GetMockTickClock()),
@@ -339,10 +338,10 @@
       FROM_HERE,
       MakeRepeatingTask(
           ThrottleableTaskQueue()->GetTaskRunnerWithDefaultTaskType(),
-          &run_count, base::TimeDelta::FromMilliseconds(1)),
-      base::TimeDelta::FromMilliseconds(1));
+          &run_count, base::Milliseconds(1)),
+      base::Milliseconds(1));
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_EQ(1000, run_count);
 }
 
@@ -354,10 +353,10 @@
       FROM_HERE,
       MakeRepeatingTask(
           ThrottleableTaskQueue()->GetTaskRunnerWithDefaultTaskType(),
-          &run_count, base::TimeDelta::FromMilliseconds(20)),
-      base::TimeDelta::FromMilliseconds(20));
+          &run_count, base::Milliseconds(20)),
+      base::Milliseconds(20));
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_EQ(1, run_count);
 
   // Make sure there's no delay in throttling being removed for pages that have
@@ -365,7 +364,7 @@
   page_scheduler_->SetPageVisible(true);
 
   run_count = 0;
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_EQ(50, run_count);
 }
 
@@ -376,10 +375,10 @@
   LoadingTaskQueue()->GetTaskRunnerWithDefaultTaskType()->PostDelayedTask(
       FROM_HERE,
       MakeRepeatingTask(LoadingTaskQueue()->GetTaskRunnerWithDefaultTaskType(),
-                        &run_count, base::TimeDelta::FromMilliseconds(1)),
-      base::TimeDelta::FromMilliseconds(1));
+                        &run_count, base::Milliseconds(1)),
+      base::Milliseconds(1));
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_EQ(1000, run_count);  // Loading tasks should not be throttled
 }
 
@@ -399,8 +398,8 @@
       FROM_HERE,
       MakeRepeatingTask(
           ThrottleableTaskQueue()->GetTaskRunnerWithDefaultTaskType(),
-          &run_count1, base::TimeDelta::FromMilliseconds(20)),
-      base::TimeDelta::FromMilliseconds(20));
+          &run_count1, base::Milliseconds(20)),
+      base::Milliseconds(20));
   ThrottleableTaskQueueForScheduler(frame_scheduler2.get())
       ->GetTaskRunnerWithDefaultTaskType()
       ->PostDelayedTask(
@@ -408,10 +407,10 @@
           MakeRepeatingTask(
               ThrottleableTaskQueueForScheduler(frame_scheduler2.get())
                   ->GetTaskRunnerWithDefaultTaskType(),
-              &run_count2, base::TimeDelta::FromMilliseconds(20)),
-          base::TimeDelta::FromMilliseconds(20));
+              &run_count2, base::Milliseconds(20)),
+          base::Milliseconds(20));
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_EQ(50, run_count1);
   EXPECT_EQ(1, run_count2);
 }
@@ -453,32 +452,30 @@
       MakeVirtualTimeRecorderTask(test_task_runner_->GetMockTickClock(),
                                   scheduler_.get(), &real_times,
                                   &virtual_times),
-      base::TimeDelta::FromMilliseconds(2));
+      base::Milliseconds(2));
 
   ThrottleableTaskRunner()->PostDelayedTask(
       FROM_HERE,
       MakeVirtualTimeRecorderTask(test_task_runner_->GetMockTickClock(),
                                   scheduler_.get(), &real_times,
                                   &virtual_times),
-      base::TimeDelta::FromMilliseconds(20));
+      base::Milliseconds(20));
 
   ThrottleableTaskRunner()->PostDelayedTask(
       FROM_HERE,
       MakeVirtualTimeRecorderTask(test_task_runner_->GetMockTickClock(),
                                   scheduler_.get(), &real_times,
                                   &virtual_times),
-      base::TimeDelta::FromMilliseconds(200));
+      base::Milliseconds(200));
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
   EXPECT_THAT(real_times, ElementsAre(initial_real_time, initial_real_time,
                                       initial_real_time));
-  EXPECT_THAT(
-      virtual_times,
-      ElementsAre(
-          initial_virtual_time + base::TimeDelta::FromMilliseconds(2),
-          initial_virtual_time + base::TimeDelta::FromMilliseconds(20),
-          initial_virtual_time + base::TimeDelta::FromMilliseconds(200)));
+  EXPECT_THAT(virtual_times,
+              ElementsAre(initial_virtual_time + base::Milliseconds(2),
+                          initial_virtual_time + base::Milliseconds(20),
+                          initial_virtual_time + base::Milliseconds(200)));
 }
 
 TEST_F(PageSchedulerImplTest, VirtualTime_LoadingTaskFastForwarding) {
@@ -496,32 +493,30 @@
       MakeVirtualTimeRecorderTask(test_task_runner_->GetMockTickClock(),
                                   scheduler_.get(), &real_times,
                                   &virtual_times),
-      base::TimeDelta::FromMilliseconds(2));
+      base::Milliseconds(2));
 
   LoadingTaskRunner()->PostDelayedTask(
       FROM_HERE,
       MakeVirtualTimeRecorderTask(test_task_runner_->GetMockTickClock(),
                                   scheduler_.get(), &real_times,
                                   &virtual_times),
-      base::TimeDelta::FromMilliseconds(20));
+      base::Milliseconds(20));
 
   LoadingTaskRunner()->PostDelayedTask(
       FROM_HERE,
       MakeVirtualTimeRecorderTask(test_task_runner_->GetMockTickClock(),
                                   scheduler_.get(), &real_times,
                                   &virtual_times),
-      base::TimeDelta::FromMilliseconds(200));
+      base::Milliseconds(200));
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
   EXPECT_THAT(real_times, ElementsAre(initial_real_time, initial_real_time,
                                       initial_real_time));
-  EXPECT_THAT(
-      virtual_times,
-      ElementsAre(
-          initial_virtual_time + base::TimeDelta::FromMilliseconds(2),
-          initial_virtual_time + base::TimeDelta::FromMilliseconds(20),
-          initial_virtual_time + base::TimeDelta::FromMilliseconds(200)));
+  EXPECT_THAT(virtual_times,
+              ElementsAre(initial_virtual_time + base::Milliseconds(2),
+                          initial_virtual_time + base::Milliseconds(20),
+                          initial_virtual_time + base::Milliseconds(200)));
 }
 
 TEST_F(PageSchedulerImplTest,
@@ -536,8 +531,8 @@
       FROM_HERE,
       MakeRepeatingTask(
           ThrottleableTaskQueue()->GetTaskRunnerWithDefaultTaskType(),
-          &run_count, base::TimeDelta::FromMilliseconds(1)),
-      base::TimeDelta::FromMilliseconds(1));
+          &run_count, base::Milliseconds(1)),
+      base::Milliseconds(1));
 
   test_task_runner_->RunUntilIdle();
   // Virtual time means page visibility is ignored.
@@ -582,7 +577,7 @@
           &DelayedRunOrderTask, 1,
           ThrottleableTaskQueue()->GetTaskRunnerWithDefaultTaskType(),
           base::Unretained(&run_order)),
-      base::TimeDelta::FromMilliseconds(2));
+      base::Milliseconds(2));
 
   ThrottleableTaskQueue()->GetTaskRunnerWithDefaultTaskType()->PostDelayedTask(
       FROM_HERE,
@@ -590,7 +585,7 @@
           &DelayedRunOrderTask, 3,
           ThrottleableTaskQueue()->GetTaskRunnerWithDefaultTaskType(),
           base::Unretained(&run_order)),
-      base::TimeDelta::FromMilliseconds(4));
+      base::Milliseconds(4));
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
@@ -614,7 +609,7 @@
           &DelayedRunOrderTask, 1,
           ThrottleableTaskQueue()->GetTaskRunnerWithDefaultTaskType(),
           base::Unretained(&run_order)),
-      base::TimeDelta::FromMilliseconds(2));
+      base::Milliseconds(2));
 
   ThrottleableTaskQueue()->GetTaskRunnerWithDefaultTaskType()->PostDelayedTask(
       FROM_HERE,
@@ -622,7 +617,7 @@
           &DelayedRunOrderTask, 3,
           ThrottleableTaskQueue()->GetTaskRunnerWithDefaultTaskType(),
           base::Unretained(&run_order)),
-      base::TimeDelta::FromMilliseconds(4));
+      base::Milliseconds(4));
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
@@ -638,10 +633,10 @@
       FROM_HERE,
       MakeRepeatingTask(
           ThrottleableTaskQueue()->GetTaskRunnerWithDefaultTaskType(),
-          &run_count, base::TimeDelta::FromMilliseconds(1)),
-      base::TimeDelta::FromMilliseconds(1));
+          &run_count, base::Milliseconds(1)),
+      base::Milliseconds(1));
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_EQ(1000, run_count);
 }
 
@@ -660,7 +655,7 @@
       ->PostDelayedTask(
           FROM_HERE,
           base::BindOnce(&RunOrderTask, 1, base::Unretained(&run_order)),
-          base::TimeDelta::FromMilliseconds(1));
+          base::Milliseconds(1));
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
   EXPECT_TRUE(run_order.IsEmpty());
@@ -689,7 +684,7 @@
     ThrottleableTaskQueueForScheduler(frame_scheduler)
         ->GetTaskRunnerWithDefaultTaskType()
         ->PostDelayedTask(FROM_HERE, MakeDeletionTask(frame_scheduler),
-                          base::TimeDelta::FromMilliseconds(1));
+                          base::Milliseconds(1));
   }
   test_task_runner_->FastForwardUntilNoTasksRemain();
 }
@@ -714,16 +709,15 @@
   timer_task_queue->GetTaskRunnerWithDefaultTaskType()->PostDelayedTask(
       FROM_HERE,
       MakeRepeatingTask(timer_task_queue->GetTaskRunnerWithDefaultTaskType(),
-                        &run_count, base::TimeDelta::FromMilliseconds(100)),
-      base::TimeDelta::FromMilliseconds(100));
+                        &run_count, base::Milliseconds(100)),
+      base::Milliseconds(100));
 
   // Note this will run at time t = 10s since we start at time t = 5000us.
   // However, we still should run all tasks after frame scheduler deletion.
   timer_task_queue->GetTaskRunnerWithDefaultTaskType()->PostDelayedTask(
-      FROM_HERE, MakeDeletionTask(frame_scheduler),
-      base::TimeDelta::FromMilliseconds(9990));
+      FROM_HERE, MakeDeletionTask(frame_scheduler), base::Milliseconds(9990));
 
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(20));
+  test_task_runner_->FastForwardBy(base::Seconds(20));
   EXPECT_EQ(110, run_count);
 }
 
@@ -835,23 +829,20 @@
           &PauseAndUnpauseVirtualTime, base::Unretained(scheduler_.get()),
           base::Unretained(frame_scheduler.get()),
           base::Unretained(&time_paused), base::Unretained(&time_unpaused)),
-      base::TimeDelta::FromMilliseconds(3));
+      base::Milliseconds(3));
 
   // Will run after the first task has advanced virtual time past 5ms.
   ThrottleableTaskRunner()->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&RecordVirtualTime, base::Unretained(scheduler_.get()),
                      base::Unretained(&time_second_task)),
-      base::TimeDelta::FromMilliseconds(5));
+      base::Milliseconds(5));
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
-  EXPECT_EQ(time_paused,
-            initial_virtual_time + base::TimeDelta::FromMilliseconds(3));
-  EXPECT_EQ(time_unpaused,
-            initial_virtual_time + base::TimeDelta::FromMilliseconds(13));
-  EXPECT_EQ(time_second_task,
-            initial_virtual_time + base::TimeDelta::FromMilliseconds(13));
+  EXPECT_EQ(time_paused, initial_virtual_time + base::Milliseconds(3));
+  EXPECT_EQ(time_unpaused, initial_virtual_time + base::Milliseconds(13));
+  EXPECT_EQ(time_second_task, initial_virtual_time + base::Milliseconds(13));
 }
 
 TEST_F(PageSchedulerImplTest,
@@ -941,31 +932,31 @@
       MakeVirtualTimeRecorderTask(test_task_runner_->GetMockTickClock(),
                                   scheduler_.get(), &real_times,
                                   &virtual_times),
-      base::TimeDelta::FromMilliseconds(1));
+      base::Milliseconds(1));
 
   ThrottleableTaskRunner()->PostDelayedTask(
       FROM_HERE,
       MakeVirtualTimeRecorderTask(test_task_runner_->GetMockTickClock(),
                                   scheduler_.get(), &real_times,
                                   &virtual_times),
-      base::TimeDelta::FromMilliseconds(2));
+      base::Milliseconds(2));
 
   ThrottleableTaskRunner()->PostDelayedTask(
       FROM_HERE,
       MakeVirtualTimeRecorderTask(test_task_runner_->GetMockTickClock(),
                                   scheduler_.get(), &real_times,
                                   &virtual_times),
-      base::TimeDelta::FromMilliseconds(5));
+      base::Milliseconds(5));
 
   ThrottleableTaskRunner()->PostDelayedTask(
       FROM_HERE,
       MakeVirtualTimeRecorderTask(test_task_runner_->GetMockTickClock(),
                                   scheduler_.get(), &real_times,
                                   &virtual_times),
-      base::TimeDelta::FromMilliseconds(7));
+      base::Milliseconds(7));
 
   page_scheduler_->GrantVirtualTimeBudget(
-      base::TimeDelta::FromMilliseconds(5),
+      base::Milliseconds(5),
       base::BindOnce(
           [](PageScheduler* scheduler) {
             scheduler->SetVirtualTimePolicy(VirtualTimePolicy::kPause);
@@ -978,11 +969,10 @@
   // expires will not run.
   EXPECT_THAT(real_times, ElementsAre(initial_real_time, initial_real_time,
                                       initial_real_time));
-  EXPECT_THAT(
-      virtual_times,
-      ElementsAre(initial_virtual_time + base::TimeDelta::FromMilliseconds(1),
-                  initial_virtual_time + base::TimeDelta::FromMilliseconds(2),
-                  initial_virtual_time + base::TimeDelta::FromMilliseconds(5)));
+  EXPECT_THAT(virtual_times,
+              ElementsAre(initial_virtual_time + base::Milliseconds(1),
+                          initial_virtual_time + base::Milliseconds(2),
+                          initial_virtual_time + base::Milliseconds(5)));
 }
 
 namespace {
@@ -1016,10 +1006,10 @@
       FROM_HERE,
       base::BindOnce(DelayedTask, base::Unretained(&count),
                      base::Unretained(&delayed_task_run_at_count)),
-      base::TimeDelta::FromMilliseconds(10));
+      base::Milliseconds(10));
 
   page_scheduler_->GrantVirtualTimeBudget(
-      base::TimeDelta::FromMilliseconds(1000),
+      base::Milliseconds(1000),
       base::BindOnce(
           [](PageScheduler* scheduler) {
             scheduler->SetVirtualTimePolicy(VirtualTimePolicy::kPause);
@@ -1055,10 +1045,10 @@
       FROM_HERE,
       base::BindOnce(DelayedTask, base::Unretained(&count),
                      base::Unretained(&delayed_task_run_at_count)),
-      base::TimeDelta::FromMilliseconds(10));
+      base::Milliseconds(10));
 
   page_scheduler_->GrantVirtualTimeBudget(
-      base::TimeDelta::FromMilliseconds(1000),
+      base::Milliseconds(1000),
       base::BindOnce(
           [](PageScheduler* scheduler) {
             scheduler->SetVirtualTimePolicy(VirtualTimePolicy::kPause);
@@ -1084,10 +1074,10 @@
       FROM_HERE,
       base::BindOnce(DelayedTask, base::Unretained(&count),
                      base::Unretained(&delayed_task_run_at_count)),
-      base::TimeDelta::FromMilliseconds(10));
+      base::Milliseconds(10));
 
   page_scheduler_->GrantVirtualTimeBudget(
-      base::TimeDelta::FromMilliseconds(1000),
+      base::Milliseconds(1000),
       base::BindOnce(
           [](PageScheduler* scheduler) {
             scheduler->SetVirtualTimePolicy(VirtualTimePolicy::kPause);
@@ -1107,7 +1097,7 @@
 void ExpensiveTestTask(scoped_refptr<base::TestMockTimeTaskRunner> task_runner,
                        Vector<base::TimeTicks>* run_times) {
   run_times->push_back(task_runner->GetMockTickClock()->NowTicks());
-  task_runner->AdvanceMockTickClock(base::TimeDelta::FromMilliseconds(250));
+  task_runner->AdvanceMockTickClock(base::Milliseconds(250));
 }
 
 void InitializeTrialParams() {
@@ -1141,49 +1131,47 @@
   page_scheduler_->SetPageVisible(true);
   EXPECT_FALSE(page_scheduler_->IsCPUTimeThrottled());
 
-  FastForwardTo(base::TimeTicks() + base::TimeDelta::FromMilliseconds(2500));
+  FastForwardTo(base::TimeTicks() + base::Milliseconds(2500));
 
   ThrottleableTaskQueue()->GetTaskRunnerWithDefaultTaskType()->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&ExpensiveTestTask, test_task_runner_, &run_times),
-      base::TimeDelta::FromMilliseconds(1));
+      base::Milliseconds(1));
   ThrottleableTaskQueue()->GetTaskRunnerWithDefaultTaskType()->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&ExpensiveTestTask, test_task_runner_, &run_times),
-      base::TimeDelta::FromMilliseconds(1));
+      base::Milliseconds(1));
 
-  FastForwardTo(base::TimeTicks() + base::TimeDelta::FromMilliseconds(3500));
+  FastForwardTo(base::TimeTicks() + base::Milliseconds(3500));
 
   // Check that these tasks are aligned, but are not subject to budget-based
   // throttling.
-  EXPECT_THAT(
-      run_times,
-      ElementsAre(base::TimeTicks() + base::TimeDelta::FromMilliseconds(2501),
-                  base::TimeTicks() + base::TimeDelta::FromMilliseconds(2751)));
+  EXPECT_THAT(run_times,
+              ElementsAre(base::TimeTicks() + base::Milliseconds(2501),
+                          base::TimeTicks() + base::Milliseconds(2751)));
   run_times.clear();
 
   page_scheduler_->SetPageVisible(false);
   EXPECT_FALSE(page_scheduler_->IsCPUTimeThrottled());
 
   // Ensure that the page is fully throttled.
-  FastForwardTo(base::TimeTicks() + base::TimeDelta::FromSeconds(15));
+  FastForwardTo(base::TimeTicks() + base::Seconds(15));
   EXPECT_TRUE(page_scheduler_->IsCPUTimeThrottled());
 
   ThrottleableTaskQueue()->GetTaskRunnerWithDefaultTaskType()->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&ExpensiveTestTask, test_task_runner_, &run_times),
-      base::TimeDelta::FromMicroseconds(1));
+      base::Microseconds(1));
   ThrottleableTaskQueue()->GetTaskRunnerWithDefaultTaskType()->PostDelayedTask(
       FROM_HERE,
       base::BindOnce(&ExpensiveTestTask, test_task_runner_, &run_times),
-      base::TimeDelta::FromMicroseconds(1));
+      base::Microseconds(1));
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
   // Check that tasks are aligned and throttled.
-  EXPECT_THAT(run_times,
-              ElementsAre(base::TimeTicks() + base::TimeDelta::FromSeconds(16),
-                          start_time + base::TimeDelta::FromSeconds(25)));
+  EXPECT_THAT(run_times, ElementsAre(base::TimeTicks() + base::Seconds(16),
+                                     start_time + base::Seconds(25)));
 
   base::FieldTrialParamAssociator::GetInstance()->ClearAllParamsForTesting();
 }
@@ -1206,7 +1194,7 @@
   page_scheduler->SetPageVisible(false);
 
   // Wait for 20s to avoid initial throttling delay.
-  FastForwardTo(base::TimeTicks() + base::TimeDelta::FromMilliseconds(20500));
+  FastForwardTo(base::TimeTicks() + base::Milliseconds(20500));
 
   for (size_t i = 0; i < 3; ++i) {
     ThrottleableTaskQueueForScheduler(frame_scheduler1.get())
@@ -1214,16 +1202,15 @@
         ->PostDelayedTask(
             FROM_HERE,
             base::BindOnce(&ExpensiveTestTask, test_task_runner_, &run_times),
-            base::TimeDelta::FromMilliseconds(1));
+            base::Milliseconds(1));
   }
 
-  FastForwardTo(base::TimeTicks() + base::TimeDelta::FromMilliseconds(55500));
+  FastForwardTo(base::TimeTicks() + base::Milliseconds(55500));
 
   // Check that tasks are throttled.
-  EXPECT_THAT(run_times,
-              ElementsAre(base::TimeTicks() + base::TimeDelta::FromSeconds(21),
-                          start_time + base::TimeDelta::FromSeconds(25),
-                          start_time + base::TimeDelta::FromSeconds(50)));
+  EXPECT_THAT(run_times, ElementsAre(base::TimeTicks() + base::Seconds(21),
+                                     start_time + base::Seconds(25),
+                                     start_time + base::Seconds(50)));
   run_times.clear();
 
   FrameScheduler::SchedulingAffectingFeatureHandle websocket_feature =
@@ -1237,19 +1224,17 @@
         ->PostDelayedTask(
             FROM_HERE,
             base::BindOnce(&ExpensiveTestTask, test_task_runner_, &run_times),
-            base::TimeDelta::FromMilliseconds(1));
+            base::Milliseconds(1));
   }
 
-  FastForwardTo(base::TimeTicks() + base::TimeDelta::FromMilliseconds(58500));
+  FastForwardTo(base::TimeTicks() + base::Milliseconds(58500));
 
   // Check that the timer task queue from the first frame is aligned,
   // but not throttled.
-  EXPECT_THAT(
-      run_times,
-      ElementsAre(
-          base::TimeTicks() + base::TimeDelta::FromMilliseconds(56000),
-          base::TimeTicks() + base::TimeDelta::FromMilliseconds(56250),
-          base::TimeTicks() + base::TimeDelta::FromMilliseconds(56500)));
+  EXPECT_THAT(run_times,
+              ElementsAre(base::TimeTicks() + base::Milliseconds(56000),
+                          base::TimeTicks() + base::Milliseconds(56250),
+                          base::TimeTicks() + base::Milliseconds(56500)));
   run_times.clear();
 
   for (size_t i = 0; i < 3; ++i) {
@@ -1258,24 +1243,22 @@
         ->PostDelayedTask(
             FROM_HERE,
             base::BindOnce(&ExpensiveTestTask, test_task_runner_, &run_times),
-            base::TimeDelta::FromMilliseconds(1));
+            base::Milliseconds(1));
   }
 
-  FastForwardTo(base::TimeTicks() + base::TimeDelta::FromMilliseconds(59500));
+  FastForwardTo(base::TimeTicks() + base::Milliseconds(59500));
 
   // Check that the second frame scheduler becomes unthrottled.
-  EXPECT_THAT(
-      run_times,
-      ElementsAre(
-          base::TimeTicks() + base::TimeDelta::FromMilliseconds(59000),
-          base::TimeTicks() + base::TimeDelta::FromMilliseconds(59250),
-          base::TimeTicks() + base::TimeDelta::FromMilliseconds(59500)));
+  EXPECT_THAT(run_times,
+              ElementsAre(base::TimeTicks() + base::Milliseconds(59000),
+                          base::TimeTicks() + base::Milliseconds(59250),
+                          base::TimeTicks() + base::Milliseconds(59500)));
   run_times.clear();
 
   websocket_feature.reset();
 
   // Wait for 10s to enable throttling back.
-  FastForwardTo(base::TimeTicks() + base::TimeDelta::FromMilliseconds(70500));
+  FastForwardTo(base::TimeTicks() + base::Milliseconds(70500));
 
   for (size_t i = 0; i < 3; ++i) {
     ThrottleableTaskQueueForScheduler(frame_scheduler1.get())
@@ -1283,18 +1266,16 @@
         ->PostDelayedTask(
             FROM_HERE,
             base::BindOnce(&ExpensiveTestTask, test_task_runner_, &run_times),
-            base::TimeDelta::FromMilliseconds(1));
+            base::Milliseconds(1));
   }
 
   test_task_runner_->FastForwardUntilNoTasksRemain();
 
   // WebSocket is closed, budget-based throttling now applies.
-  EXPECT_THAT(
-      run_times,
-      ElementsAre(
-          base::TimeTicks() + base::TimeDelta::FromMilliseconds(84500),
-          base::TimeTicks() + base::TimeDelta::FromMilliseconds(109500),
-          base::TimeTicks() + base::TimeDelta::FromMilliseconds(134500)));
+  EXPECT_THAT(run_times,
+              ElementsAre(base::TimeTicks() + base::Milliseconds(84500),
+                          base::TimeTicks() + base::Milliseconds(109500),
+                          base::TimeTicks() + base::Milliseconds(134500)));
 
   base::FieldTrialParamAssociator::GetInstance()->ClearAllParamsForTesting();
 }
@@ -1373,21 +1354,21 @@
 
   // The background signal will not immediately suspend the timer queue.
   page_scheduler_->SetPageVisible(false);
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(1100));
+  test_task_runner_->FastForwardBy(base::Milliseconds(1100));
   EXPECT_FALSE(page_scheduler_->IsFrozen());
   EXPECT_EQ(2, counter);
 
   counter = 0;
   ThrottleableTaskQueue()->GetTaskRunnerWithDefaultTaskType()->PostTask(
       FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter)));
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_FALSE(page_scheduler_->IsFrozen());
   EXPECT_EQ(1, counter);
 
   // Advance the time until after the scheduled timer queue suspension.
   counter = 0;
   test_task_runner_->FastForwardBy(delay_for_background_tab_freezing() +
-                                   base::TimeDelta::FromMilliseconds(10));
+                                   base::Milliseconds(10));
   EXPECT_TRUE(page_scheduler_->IsFrozen());
   EXPECT_EQ(0, counter);
 
@@ -1398,20 +1379,20 @@
       FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter)));
   UnpausableTaskQueue()->GetTaskRunnerWithDefaultTaskType()->PostTask(
       FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter)));
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(10));
+  test_task_runner_->FastForwardBy(base::Seconds(10));
   EXPECT_EQ(1, counter);
 
   counter = 0;
   page_scheduler_->SetPageVisible(true);
   EXPECT_FALSE(page_scheduler_->IsFrozen());
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_EQ(2, counter);
 
   // Subsequent timer tasks should fire as usual.
   counter = 0;
   ThrottleableTaskQueue()->GetTaskRunnerWithDefaultTaskType()->PostTask(
       FROM_HERE, base::BindOnce(&IncrementCounter, base::Unretained(&counter)));
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->FastForwardBy(base::Seconds(1));
   EXPECT_EQ(1, counter);
 }
 
@@ -1429,14 +1410,14 @@
   EXPECT_FALSE(ShouldFreezePage());
 
   test_task_runner_->FastForwardBy(recent_audio_delay() +
-                                   base::TimeDelta::FromMilliseconds(100));
+                                   base::Milliseconds(100));
   // Audio is finally silent. The page should be eligible for freezing.
   EXPECT_FALSE(page_scheduler_->IsAudioPlaying());
   EXPECT_TRUE(ShouldFreezePage());
   EXPECT_FALSE(page_scheduler_->IsFrozen());
 
   test_task_runner_->FastForwardBy(delay_for_background_tab_freezing() +
-                                   base::TimeDelta::FromMilliseconds(100));
+                                   base::Milliseconds(100));
   EXPECT_TRUE(page_scheduler_->IsFrozen());
 
   // Page should unfreeze if audio starts playing.
@@ -1453,7 +1434,7 @@
   page_scheduler_->SetPageVisible(false);
   EXPECT_TRUE(ShouldFreezePage());
   test_task_runner_->FastForwardBy(delay_for_background_tab_freezing() +
-                                   base::TimeDelta::FromMilliseconds(100));
+                                   base::Milliseconds(100));
   EXPECT_TRUE(page_scheduler_->IsFrozen());
 
   // Page should unfreeze when it becomes visible.
@@ -1465,11 +1446,11 @@
   page_scheduler_->SetPageVisible(false);
   EXPECT_TRUE(ShouldFreezePage());
   test_task_runner_->FastForwardBy(delay_for_background_tab_freezing() -
-                                   base::TimeDelta::FromMilliseconds(100));
+                                   base::Milliseconds(100));
   EXPECT_FALSE(page_scheduler_->IsFrozen());
   page_scheduler_->SetPageVisible(true);
   test_task_runner_->FastForwardBy(delay_for_background_tab_freezing() +
-                                   base::TimeDelta::FromMilliseconds(100));
+                                   base::Milliseconds(100));
   EXPECT_FALSE(page_scheduler_->IsFrozen());
 }
 
@@ -1498,7 +1479,7 @@
   page_scheduler_->SetPageVisible(false);
   test_task_runner_->FastForwardBy(
       delay_for_background_and_network_idle_tab_freezing() +
-      base::TimeDelta::FromMilliseconds(100));
+      base::Milliseconds(100));
   EXPECT_TRUE(page_scheduler_->IsFrozen());
 }
 
@@ -1513,7 +1494,7 @@
   page_scheduler_->SetPageVisible(false);
   EXPECT_TRUE(ShouldFreezePage());
   test_task_runner_->FastForwardBy(delay_for_background_tab_freezing() +
-                                   base::TimeDelta::FromMilliseconds(100));
+                                   base::Milliseconds(100));
   EXPECT_TRUE(page_scheduler_->IsFrozen());
 }
 
@@ -1528,11 +1509,11 @@
   EXPECT_TRUE(ShouldFreezePage());
   test_task_runner_->FastForwardBy(
       delay_for_background_and_network_idle_tab_freezing() +
-      base::TimeDelta::FromMilliseconds(100));
+      base::Milliseconds(100));
   EXPECT_FALSE(page_scheduler_->IsFrozen());
 
   NotifyLocalMainFrameNetworkIsAlmostIdle();
-  test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  test_task_runner_->FastForwardBy(base::Milliseconds(100));
   EXPECT_TRUE(page_scheduler_->IsFrozen());
 }
 
@@ -1547,7 +1528,7 @@
   EXPECT_TRUE(ShouldFreezePage());
   test_task_runner_->FastForwardBy(
       delay_for_background_and_network_idle_tab_freezing() +
-      base::TimeDelta::FromMilliseconds(100));
+      base::Milliseconds(100));
   EXPECT_FALSE(page_scheduler_->IsFrozen());
 
   // Page should not freeze after delay for background tab freezing, because
@@ -1584,13 +1565,13 @@
 
   void WaitForFreezingDelay() {
     test_task_runner_->FastForwardBy(delay_for_background_tab_freezing() +
-                                     base::TimeDelta::FromMilliseconds(100));
+                                     base::Milliseconds(100));
   }
 
   void DisableAudioAndWaitForSilent() {
     page_scheduler_->AudioStateChanged(false);
     test_task_runner_->FastForwardBy(recent_audio_delay() +
-                                     base::TimeDelta::FromMilliseconds(100));
+                                     base::Milliseconds(100));
   }
 
  protected:
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/user_model.cc b/third_party/blink/renderer/platform/scheduler/main_thread/user_model.cc
index dbcf2d7..23fb8af 100644
--- a/third_party/blink/renderer/platform/scheduler/main_thread/user_model.cc
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/user_model.cc
@@ -64,7 +64,7 @@
 
 base::TimeDelta UserModel::TimeLeftInUserGesture(base::TimeTicks now) const {
   base::TimeDelta escalated_priority_duration =
-      base::TimeDelta::FromMilliseconds(kGestureEstimationLimitMillis);
+      base::Milliseconds(kGestureEstimationLimitMillis);
 
   // If the input event is still pending, go into input prioritized policy and
   // check again later.
@@ -98,12 +98,12 @@
     if (IsGestureExpectedToContinue(now, prediction_valid_duration))
       return false;
     *prediction_valid_duration =
-        base::TimeDelta::FromMilliseconds(kExpectSubsequentGestureMillis);
+        base::Milliseconds(kExpectSubsequentGestureMillis);
     return true;
   } else {
     // If we have finished a gesture then a subsequent gesture is deemed likely.
     base::TimeDelta expect_subsequent_gesture_for =
-        base::TimeDelta::FromMilliseconds(kExpectSubsequentGestureMillis);
+        base::Milliseconds(kExpectSubsequentGestureMillis);
     if (last_continuous_gesture_time_.is_null() ||
         last_continuous_gesture_time_ + expect_subsequent_gesture_for <= now) {
       return false;
@@ -121,7 +121,7 @@
     return false;
 
   base::TimeDelta median_gesture_duration =
-      base::TimeDelta::FromMilliseconds(kMedianGestureDurationMillis);
+      base::Milliseconds(kMedianGestureDurationMillis);
   base::TimeTicks expected_gesture_end_time =
       last_gesture_start_time_ + median_gesture_duration;
 
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/user_model_unittest.cc b/third_party/blink/renderer/platform/scheduler/main_thread/user_model_unittest.cc
index 6727476a0..4ceaf941 100644
--- a/third_party/blink/renderer/platform/scheduler/main_thread/user_model_unittest.cc
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/user_model_unittest.cc
@@ -20,20 +20,18 @@
 
   void SetUp() override {
     clock_ = std::make_unique<base::SimpleTestTickClock>();
-    clock_->Advance(base::TimeDelta::FromMicroseconds(5000));
+    clock_->Advance(base::Microseconds(5000));
 
     user_model_ = std::make_unique<UserModel>();
   }
 
  protected:
   static base::TimeDelta priority_escalation_after_input_duration() {
-    return base::TimeDelta::FromMilliseconds(
-        UserModel::kGestureEstimationLimitMillis);
+    return base::Milliseconds(UserModel::kGestureEstimationLimitMillis);
   }
 
   static base::TimeDelta subsequent_input_expected_after_input_duration() {
-    return base::TimeDelta::FromMilliseconds(
-        UserModel::kExpectSubsequentGestureMillis);
+    return base::Milliseconds(UserModel::kExpectSubsequentGestureMillis);
   }
 
   std::unique_ptr<base::SimpleTestTickClock> clock_;
@@ -57,7 +55,7 @@
   user_model_->DidStartProcessingInputEvent(
       blink::WebInputEvent::Type::kTouchStart, clock_->NowTicks());
   user_model_->DidFinishProcessingInputEvent(clock_->NowTicks());
-  base::TimeDelta delta(base::TimeDelta::FromMilliseconds(10));
+  base::TimeDelta delta(base::Milliseconds(10));
   clock_->Advance(delta);
   EXPECT_EQ(priority_escalation_after_input_duration() - delta,
             user_model_->TimeLeftInUserGesture(clock_->NowTicks()));
@@ -81,7 +79,7 @@
             user_model_->TimeLeftInUserGesture(clock_->NowTicks()));
 
   user_model_->DidFinishProcessingInputEvent(clock_->NowTicks());
-  base::TimeDelta delta(base::TimeDelta::FromMilliseconds(10));
+  base::TimeDelta delta(base::Milliseconds(10));
   clock_->Advance(delta);
 
   EXPECT_EQ(priority_escalation_after_input_duration() - delta,
@@ -100,15 +98,13 @@
       blink::WebInputEvent::Type::kGestureScrollBegin, clock_->NowTicks());
   user_model_->DidFinishProcessingInputEvent(clock_->NowTicks());
 
-  base::TimeDelta delta(base::TimeDelta::FromMilliseconds(10));
+  base::TimeDelta delta(base::Milliseconds(10));
   clock_->Advance(delta);
 
   base::TimeDelta prediction_valid_duration;
   EXPECT_FALSE(user_model_->IsGestureExpectedSoon(clock_->NowTicks(),
                                                   &prediction_valid_duration));
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(
-                UserModel::kMedianGestureDurationMillis) -
-                delta,
+  EXPECT_EQ(base::Milliseconds(UserModel::kMedianGestureDurationMillis) - delta,
             prediction_valid_duration);
 }
 
@@ -117,15 +113,14 @@
       blink::WebInputEvent::Type::kGestureScrollBegin, clock_->NowTicks());
   user_model_->DidFinishProcessingInputEvent(clock_->NowTicks());
 
-  base::TimeDelta delta(base::TimeDelta::FromMilliseconds(
-      UserModel::kMedianGestureDurationMillis * 2));
+  base::TimeDelta delta(
+      base::Milliseconds(UserModel::kMedianGestureDurationMillis * 2));
   clock_->Advance(delta);
 
   base::TimeDelta prediction_valid_duration;
   EXPECT_TRUE(user_model_->IsGestureExpectedSoon(clock_->NowTicks(),
                                                  &prediction_valid_duration));
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(
-                UserModel::kExpectSubsequentGestureMillis),
+  EXPECT_EQ(base::Milliseconds(UserModel::kExpectSubsequentGestureMillis),
             prediction_valid_duration);
 }
 
@@ -146,7 +141,7 @@
       blink::WebInputEvent::Type::kGestureScrollEnd, clock_->NowTicks());
   user_model_->DidFinishProcessingInputEvent(clock_->NowTicks());
 
-  base::TimeDelta delta(base::TimeDelta::FromMilliseconds(10));
+  base::TimeDelta delta(base::Milliseconds(10));
   clock_->Advance(delta);
 
   base::TimeDelta prediction_valid_duration;
@@ -173,7 +168,7 @@
       blink::WebInputEvent::Type::kGesturePinchEnd, clock_->NowTicks());
   user_model_->DidFinishProcessingInputEvent(clock_->NowTicks());
 
-  base::TimeDelta delta(base::TimeDelta::FromMilliseconds(10));
+  base::TimeDelta delta(base::Milliseconds(10));
   clock_->Advance(delta);
 
   base::TimeDelta prediction_valid_duration;
@@ -188,7 +183,7 @@
       blink::WebInputEvent::Type::kGestureTap, clock_->NowTicks());
   user_model_->DidFinishProcessingInputEvent(clock_->NowTicks());
 
-  base::TimeDelta delta(base::TimeDelta::FromMilliseconds(10));
+  base::TimeDelta delta(base::Milliseconds(10));
   clock_->Advance(delta);
 
   base::TimeDelta prediction_valid_duration;
@@ -210,8 +205,7 @@
   base::TimeDelta prediction_valid_duration;
   EXPECT_TRUE(user_model_->IsGestureExpectedToContinue(
       clock_->NowTicks(), &prediction_valid_duration));
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(
-                UserModel::kMedianGestureDurationMillis),
+  EXPECT_EQ(base::Milliseconds(UserModel::kMedianGestureDurationMillis),
             prediction_valid_duration);
 }
 
@@ -228,15 +222,13 @@
   user_model_->DidStartProcessingInputEvent(
       blink::WebInputEvent::Type::kGestureScrollBegin, clock_->NowTicks());
 
-  base::TimeDelta delta(base::TimeDelta::FromMilliseconds(10));
+  base::TimeDelta delta(base::Milliseconds(10));
   clock_->Advance(delta);
 
   base::TimeDelta prediction_valid_duration;
   EXPECT_TRUE(user_model_->IsGestureExpectedToContinue(
       clock_->NowTicks(), &prediction_valid_duration));
-  EXPECT_EQ(base::TimeDelta::FromMilliseconds(
-                UserModel::kMedianGestureDurationMillis) -
-                delta,
+  EXPECT_EQ(base::Milliseconds(UserModel::kMedianGestureDurationMillis) - delta,
             prediction_valid_duration);
 }
 
@@ -244,8 +236,8 @@
   user_model_->DidStartProcessingInputEvent(
       blink::WebInputEvent::Type::kGestureScrollBegin, clock_->NowTicks());
 
-  base::TimeDelta delta(base::TimeDelta::FromMilliseconds(
-      UserModel::kMedianGestureDurationMillis * 2));
+  base::TimeDelta delta(
+      base::Milliseconds(UserModel::kMedianGestureDurationMillis * 2));
   clock_->Advance(delta);
 
   base::TimeDelta prediction_valid_duration;
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/web_scoped_virtual_time_pauser.cc b/third_party/blink/renderer/platform/scheduler/main_thread/web_scoped_virtual_time_pauser.cc
index fc3b30b..d3c27ee 100644
--- a/third_party/blink/renderer/platform/scheduler/main_thread/web_scoped_virtual_time_pauser.cc
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/web_scoped_virtual_time_pauser.cc
@@ -83,7 +83,7 @@
   scheduler_->DecrementVirtualTimePauseCount();
   if (duration_ == VirtualTaskDuration::kNonInstant) {
     scheduler_->MaybeAdvanceVirtualTime(virtual_time_when_paused_ +
-                                        base::TimeDelta::FromMilliseconds(10));
+                                        base::Milliseconds(10));
   }
   if (virtual_time_enabled_when_paused_) {
     TRACE_EVENT_NESTABLE_ASYNC_END0(
diff --git a/third_party/blink/renderer/platform/scheduler/public/aggregated_metric_reporter.h b/third_party/blink/renderer/platform/scheduler/public/aggregated_metric_reporter.h
index 18c32d6..4ff104b 100644
--- a/third_party/blink/renderer/platform/scheduler/public/aggregated_metric_reporter.h
+++ b/third_party/blink/renderer/platform/scheduler/public/aggregated_metric_reporter.h
@@ -36,7 +36,7 @@
   // to histogram and modifies the passed value.
   // Example: aggregate(time) {
   //   return time.InMilliseconds();
-  //   time %= base::TimeDelta::FromMilliseconds(1);
+  //   time %= base::Milliseconds(1);
   // }
   using AggregatorFuncPtr = int (*)(ValueType&);
 
diff --git a/third_party/blink/renderer/platform/scheduler/test/fake_task_runner.h b/third_party/blink/renderer/platform/scheduler/test/fake_task_runner.h
index 9da6f4b..1207c5b 100644
--- a/third_party/blink/renderer/platform/scheduler/test/fake_task_runner.h
+++ b/third_party/blink/renderer/platform/scheduler/test/fake_task_runner.h
@@ -23,7 +23,7 @@
 
   void SetTime(base::TimeTicks new_time);
   void SetTime(double new_time) {
-    SetTime(base::TimeTicks() + base::TimeDelta::FromSecondsD(new_time));
+    SetTime(base::TimeTicks() + base::Seconds(new_time));
   }
 
   // base::SingleThreadTaskRunner implementation:
@@ -32,7 +32,7 @@
   void RunUntilIdle();
   void AdvanceTimeAndRun(base::TimeDelta delta);
   void AdvanceTimeAndRun(double delta_seconds) {
-    AdvanceTimeAndRun(base::TimeDelta::FromSecondsD(delta_seconds));
+    AdvanceTimeAndRun(base::Seconds(delta_seconds));
   }
 
   using PendingTask = std::pair<base::OnceClosure, base::TimeTicks>;
diff --git a/third_party/blink/renderer/platform/scheduler/test/fuzzer/sequence_manager_fuzzer_processor.cc b/third_party/blink/renderer/platform/scheduler/test/fuzzer/sequence_manager_fuzzer_processor.cc
index e0dcc55..fada4a1 100644
--- a/third_party/blink/renderer/platform/scheduler/test/fuzzer/sequence_manager_fuzzer_processor.cc
+++ b/third_party/blink/renderer/platform/scheduler/test/fuzzer/sequence_manager_fuzzer_processor.cc
@@ -19,7 +19,7 @@
 SequenceManagerFuzzerProcessor::SequenceManagerFuzzerProcessor(
     bool log_for_testing)
     : log_for_testing_(log_for_testing),
-      initial_time_(base::TimeTicks() + base::TimeDelta::FromMilliseconds(1)),
+      initial_time_(base::TimeTicks() + base::Milliseconds(1)),
       thread_pool_manager_(std::make_unique<ThreadPoolManager>(this)),
       main_thread_manager_(
           std::make_unique<ThreadManager>(initial_time_, this)) {}
diff --git a/third_party/blink/renderer/platform/scheduler/test/fuzzer/thread_manager.cc b/third_party/blink/renderer/platform/scheduler/test/fuzzer/thread_manager.cc
index 368669b..256b444 100644
--- a/third_party/blink/renderer/platform/scheduler/test/fuzzer/thread_manager.cc
+++ b/third_party/blink/renderer/platform/scheduler/test/fuzzer/thread_manager.cc
@@ -69,7 +69,7 @@
 }
 
 base::TimeDelta ThreadManager::NextPendingTaskDelay() {
-  return std::max(base::TimeDelta::FromMilliseconds(0),
+  return std::max(base::Milliseconds(0),
                   test_task_runner_->NextPendingTaskDelay());
 }
 
@@ -212,7 +212,7 @@
       FROM_HERE,
       BindOnce(&Task::Execute, pending_task->weak_ptr_factory_.GetWeakPtr(),
                task),
-      base::TimeDelta::FromMilliseconds(delay_ms));
+      base::Milliseconds(delay_ms));
 
   {
     AutoLock lock(lock_);
@@ -371,9 +371,8 @@
 
   base::TimeTicks next_time =
       start_time +
-      std::max(base::TimeDelta(),
-               base::TimeDelta::FromMilliseconds(task.duration_ms()) -
-                   (end_time - start_time));
+      std::max(base::TimeDelta(), base::Milliseconds(task.duration_ms()) -
+                                      (end_time - start_time));
 
   while (NowTicks() != next_time) {
     processor_->thread_pool_manager()->AdvanceClockSynchronouslyToTime(
diff --git a/third_party/blink/renderer/platform/scheduler/worker/compositor_thread_scheduler.cc b/third_party/blink/renderer/platform/scheduler/worker/compositor_thread_scheduler.cc
index 0c4c6c67..d69eeeb 100644
--- a/third_party/blink/renderer/platform/scheduler/worker/compositor_thread_scheduler.cc
+++ b/third_party/blink/renderer/platform/scheduler/worker/compositor_thread_scheduler.cc
@@ -122,7 +122,7 @@
   // TODO(flackr): Return the next frame time as the deadline instead.
   // TODO(flackr): Ensure that oilpan GC does happen on the compositor thread
   // even though we will have no long idle periods. https://crbug.com/609531
-  return base::TimeTicks::Now() + base::TimeDelta::FromMillisecondsD(16.7);
+  return base::TimeTicks::Now() + base::Milliseconds(16.7);
 }
 
 void CompositorThreadScheduler::DidProcessIdleTask() {}
diff --git a/third_party/blink/renderer/platform/scheduler/worker/worker_scheduler_proxy_unittest.cc b/third_party/blink/renderer/platform/scheduler/worker/worker_scheduler_proxy_unittest.cc
index 97c6cec7..e3e84bcc 100644
--- a/third_party/blink/renderer/platform/scheduler/worker/worker_scheduler_proxy_unittest.cc
+++ b/third_party/blink/renderer/platform/scheduler/worker/worker_scheduler_proxy_unittest.cc
@@ -171,7 +171,7 @@
          SchedulingLifecycleState::kHidden);
 
   // Trigger full throttling.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(30));
+  task_environment_.FastForwardBy(base::Seconds(30));
   throtting_state_changed.Wait();
   DCHECK(worker_thread->GetWorkerScheduler()->lifecycle_state() ==
          SchedulingLifecycleState::kThrottled);
diff --git a/third_party/blink/renderer/platform/scheduler/worker/worker_scheduler_unittest.cc b/third_party/blink/renderer/platform/scheduler/worker/worker_scheduler_unittest.cc
index 6b6db45..1fdb0b0c 100644
--- a/third_party/blink/renderer/platform/scheduler/worker/worker_scheduler_unittest.cc
+++ b/third_party/blink/renderer/platform/scheduler/worker/worker_scheduler_unittest.cc
@@ -57,7 +57,7 @@
       FROM_HERE,
       base::BindOnce(&RunChainedTask, task_queue, count - 1, duration,
                      environment, base::Unretained(tasks)),
-      base::TimeDelta::FromMilliseconds(50));
+      base::Milliseconds(50));
 }
 
 class WorkerThreadSchedulerForTest : public WorkerThreadScheduler {
@@ -99,8 +99,7 @@
         scheduler_(new WorkerThreadSchedulerForTest(ThreadType::kTestThread,
                                                     sequence_manager_.get(),
                                                     nullptr /* proxy */)) {
-    mock_task_runner_->AdvanceMockTickClock(
-        base::TimeDelta::FromMicroseconds(5000));
+    mock_task_runner_->AdvanceMockTickClock(base::Microseconds(5000));
     start_time_ = mock_task_runner_->NowTicks();
   }
 
@@ -240,12 +239,11 @@
 
   RunUntilIdle();
 
-  EXPECT_THAT(tasks,
-              ElementsAre(base::TimeTicks() + base::TimeDelta::FromSeconds(1),
-                          base::TimeTicks() + base::TimeDelta::FromSeconds(2),
-                          base::TimeTicks() + base::TimeDelta::FromSeconds(3),
-                          base::TimeTicks() + base::TimeDelta::FromSeconds(4),
-                          base::TimeTicks() + base::TimeDelta::FromSeconds(5)));
+  EXPECT_THAT(tasks, ElementsAre(base::TimeTicks() + base::Seconds(1),
+                                 base::TimeTicks() + base::Seconds(2),
+                                 base::TimeTicks() + base::Seconds(3),
+                                 base::TimeTicks() + base::Seconds(4),
+                                 base::TimeTicks() + base::Seconds(5)));
 }
 
 TEST_F(WorkerSchedulerTest,
@@ -267,17 +265,16 @@
   worker_scheduler_->ThrottleableTaskQueue()->task_runner()->PostTask(
       FROM_HERE, base::BindOnce(&RunChainedTask,
                                 worker_scheduler_->ThrottleableTaskQueue(), 5,
-                                base::TimeDelta::FromMilliseconds(100),
-                                mock_task_runner_, base::Unretained(&tasks)));
+                                base::Milliseconds(100), mock_task_runner_,
+                                base::Unretained(&tasks)));
 
   RunUntilIdle();
 
-  EXPECT_THAT(tasks,
-              ElementsAre(base::TimeTicks() + base::TimeDelta::FromSeconds(1),
-                          start_time_ + base::TimeDelta::FromSeconds(10),
-                          start_time_ + base::TimeDelta::FromSeconds(20),
-                          start_time_ + base::TimeDelta::FromSeconds(30),
-                          start_time_ + base::TimeDelta::FromSeconds(40)));
+  EXPECT_THAT(tasks, ElementsAre(base::TimeTicks() + base::Seconds(1),
+                                 start_time_ + base::Seconds(10),
+                                 start_time_ + base::Seconds(20),
+                                 start_time_ + base::Seconds(30),
+                                 start_time_ + base::Seconds(40)));
 }
 
 TEST_F(WorkerSchedulerTest, MAYBE_PausableTasks) {
diff --git a/third_party/blink/renderer/platform/scheduler/worker/worker_thread_scheduler.cc b/third_party/blink/renderer/platform/scheduler/worker/worker_thread_scheduler.cc
index 5190879..41d07a6 100644
--- a/third_party/blink/renderer/platform/scheduler/worker/worker_thread_scheduler.cc
+++ b/third_party/blink/renderer/platform/scheduler/worker/worker_thread_scheduler.cc
@@ -45,10 +45,9 @@
 const char kWorkerThrottlingRecoveryRateParam[] = "recovery_rate";
 const char kWorkerThrottlingMaxDelayParam[] = "max_delay_ms";
 
-constexpr base::TimeDelta kDefaultMaxBudget = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kDefaultMaxBudget = base::Seconds(1);
 constexpr double kDefaultRecoveryRate = 0.01;
-constexpr base::TimeDelta kDefaultMaxThrottlingDelay =
-    base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kDefaultMaxThrottlingDelay = base::Seconds(60);
 
 absl::optional<base::TimeDelta> GetMaxBudgetLevel() {
   int max_budget_level_ms;
@@ -60,7 +59,7 @@
   }
   if (max_budget_level_ms < 0)
     return absl::nullopt;
-  return base::TimeDelta::FromMilliseconds(max_budget_level_ms);
+  return base::Milliseconds(max_budget_level_ms);
 }
 
 double GetBudgetRecoveryRate() {
@@ -84,7 +83,7 @@
   }
   if (max_throttling_delay_ms < 0)
     return absl::nullopt;
-  return base::TimeDelta::FromMilliseconds(max_throttling_delay_ms);
+  return base::Milliseconds(max_throttling_delay_ms);
 }
 
 std::unique_ptr<ukm::MojoUkmRecorder> CreateMojoUkmRecorder() {
@@ -106,7 +105,7 @@
       idle_helper_(helper(),
                    this,
                    "WorkerSchedulerIdlePeriod",
-                   base::TimeDelta::FromMilliseconds(300),
+                   base::Milliseconds(300),
                    helper()->NewTaskQueue(TaskQueue::Spec("worker_idle_tq"))),
       lifecycle_state_(proxy ? proxy->lifecycle_state()
                              : SchedulingLifecycleState::kNotThrottled),
diff --git a/third_party/blink/renderer/platform/scheduler/worker/worker_thread_scheduler_unittest.cc b/third_party/blink/renderer/platform/scheduler/worker/worker_thread_scheduler_unittest.cc
index 62db1f5..f8d488a 100644
--- a/third_party/blink/renderer/platform/scheduler/worker/worker_thread_scheduler_unittest.cc
+++ b/third_party/blink/renderer/platform/scheduler/worker/worker_thread_scheduler_unittest.cc
@@ -254,7 +254,7 @@
 
   default_task_runner_->PostDelayedTask(
       FROM_HERE, base::BindOnce(&AppendToVectorTestTask, &run_order, "DELAYED"),
-      base::TimeDelta::FromMilliseconds(1000));
+      base::Milliseconds(1000));
 
   RunUntilIdle();
   EXPECT_THAT(run_order,
@@ -295,7 +295,7 @@
       FROM_HERE,
       base::BindOnce(&RecordTimelineTask, base::Unretained(&timeline_),
                      base::Unretained(task_environment_.GetMockTickClock())),
-      base::TimeDelta::FromMilliseconds(20));
+      base::Milliseconds(20));
   idle_task_runner_->PostIdleTask(
       FROM_HERE,
       base::BindOnce(&TimelineIdleTestTask, base::Unretained(&timeline_)));
@@ -322,7 +322,7 @@
       FROM_HERE,
       base::BindOnce(&RecordTimelineTask, base::Unretained(&timeline_),
                      base::Unretained(task_environment_.GetMockTickClock())),
-      base::TimeDelta::FromMilliseconds(500));
+      base::Milliseconds(500));
   idle_task_runner_->PostIdleTask(
       FROM_HERE,
       base::BindOnce(&TimelineIdleTestTask, base::Unretained(&timeline_)));
@@ -342,9 +342,8 @@
 }
 
 TEST_F(WorkerThreadSchedulerTest, TestPostIdleTaskAfterRunningUntilIdle) {
-  default_task_runner_->PostDelayedTask(
-      FROM_HERE, base::BindOnce(&NopTask),
-      base::TimeDelta::FromMilliseconds(1000));
+  default_task_runner_->PostDelayedTask(FROM_HERE, base::BindOnce(&NopTask),
+                                        base::Milliseconds(1000));
   RunUntilIdle();
 
   Vector<String> run_order;
@@ -386,7 +385,7 @@
       base::BindOnce(&PostIdleTask, base::Unretained(&timeline_),
                      base::Unretained(task_environment_.GetMockTickClock()),
                      base::Unretained(idle_task_runner_.get())),
-      base::TimeDelta::FromMilliseconds(30));
+      base::Milliseconds(30));
 
   timeline_.push_back("PostFirstIdleTask");
   idle_task_runner_->PostIdleTask(
@@ -422,8 +421,8 @@
 }
 
 TEST_F(WorkerThreadSchedulerTest, TestMicrotaskCheckpointTiming) {
-  const base::TimeDelta kTaskTime = base::TimeDelta::FromMilliseconds(100);
-  const base::TimeDelta kMicrotaskTime = base::TimeDelta::FromMilliseconds(200);
+  const base::TimeDelta kTaskTime = base::Milliseconds(100);
+  const base::TimeDelta kMicrotaskTime = base::Milliseconds(200);
 
   base::TimeTicks start_time = task_environment_.NowTicks();
   default_task_runner_->PostTask(
@@ -502,7 +501,7 @@
         sequence_manager_.get(), task_environment_.GetMockTickClock(),
         &timeline_, worker_scheduler_proxy_.get());
 
-    task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(5));
+    task_environment_.FastForwardBy(base::Milliseconds(5));
 
     scheduler_->Init();
     scheduler_->AttachToCurrentThread();
@@ -544,10 +543,10 @@
   base::sequence_manager::FakeTask task(
       static_cast<int>(TaskType::kJavascriptTimerDelayedLowNesting));
   base::sequence_manager::FakeTaskTiming task_timing(
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(200),
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(700),
-      base::ThreadTicks() + base::TimeDelta::FromMilliseconds(250),
-      base::ThreadTicks() + base::TimeDelta::FromMilliseconds(500));
+      base::TimeTicks() + base::Milliseconds(200),
+      base::TimeTicks() + base::Milliseconds(700),
+      base::ThreadTicks() + base::Milliseconds(250),
+      base::ThreadTicks() + base::Milliseconds(500));
 
   scheduler_->OnTaskCompleted(nullptr, task, &task_timing, nullptr);
 
diff --git a/third_party/blink/renderer/platform/scheduler/worker/worker_thread_unittest.cc b/third_party/blink/renderer/platform/scheduler/worker/worker_thread_unittest.cc
index a320a2f4..6497c07 100644
--- a/third_party/blink/renderer/platform/scheduler/worker/worker_thread_unittest.cc
+++ b/third_party/blink/renderer/platform/scheduler/worker/worker_thread_unittest.cc
@@ -157,7 +157,7 @@
       *thread_->GetTaskRunner(), FROM_HERE,
       CrossThreadBindOnce(&MockTask::Run,
                           WTF::CrossThreadUnretained(&delayed_task)),
-      base::TimeDelta::FromMilliseconds(50));
+      base::Milliseconds(50));
   thread_.reset();
 }
 
diff --git a/third_party/blink/renderer/platform/testing/shape_result_perf_test.cc b/third_party/blink/renderer/platform/testing/shape_result_perf_test.cc
index 32e03c7..2985ee6a 100644
--- a/third_party/blink/renderer/platform/testing/shape_result_perf_test.cc
+++ b/third_party/blink/renderer/platform/testing/shape_result_perf_test.cc
@@ -43,7 +43,7 @@
 
   ShapeResultPerfTest()
       : timer(kWarmupRuns,
-              base::TimeDelta::FromMilliseconds(kTimeLimitMillis),
+              base::Milliseconds(kTimeLimitMillis),
               kTimeCheckInterval) {}
 
  protected:
diff --git a/third_party/blink/renderer/platform/testing/shaping_line_breaker_perf_test.cc b/third_party/blink/renderer/platform/testing/shaping_line_breaker_perf_test.cc
index 4fb43e6a..746e3db 100644
--- a/third_party/blink/renderer/platform/testing/shaping_line_breaker_perf_test.cc
+++ b/third_party/blink/renderer/platform/testing/shaping_line_breaker_perf_test.cc
@@ -71,7 +71,7 @@
  public:
   ShapingLineBreakerPerfTest()
       : timer_(kWarmupRuns,
-               base::TimeDelta::FromMilliseconds(kTimeLimitMillis),
+               base::Milliseconds(kTimeLimitMillis),
                kTimeCheckInterval) {}
 
   void SetUp() override {
diff --git a/third_party/blink/renderer/platform/testing/testing_platform_support_with_mock_scheduler.cc b/third_party/blink/renderer/platform/testing/testing_platform_support_with_mock_scheduler.cc
index e8bb79b..d06988f 100644
--- a/third_party/blink/renderer/platform/testing/testing_platform_support_with_mock_scheduler.cc
+++ b/third_party/blink/renderer/platform/testing/testing_platform_support_with_mock_scheduler.cc
@@ -16,7 +16,7 @@
     : test_task_runner_(base::MakeRefCounted<base::TestMockTimeTaskRunner>(
           base::TestMockTimeTaskRunner::Type::kStandalone)) {
   DCHECK(IsMainThread());
-  test_task_runner_->AdvanceMockTickClock(base::TimeDelta::FromSeconds(1));
+  test_task_runner_->AdvanceMockTickClock(base::Seconds(1));
   std::unique_ptr<base::sequence_manager::SequenceManagerForTest>
       sequence_manager = base::sequence_manager::SequenceManagerForTest::Create(
           nullptr, test_task_runner_, test_task_runner_->GetMockTickClock());
@@ -60,7 +60,7 @@
 
 void TestingPlatformSupportWithMockScheduler::RunForPeriodSeconds(
     double seconds) {
-  RunForPeriod(base::TimeDelta::FromSecondsD(seconds));
+  RunForPeriod(base::Seconds(seconds));
 }
 
 void TestingPlatformSupportWithMockScheduler::RunForPeriod(
@@ -70,7 +70,7 @@
 
 void TestingPlatformSupportWithMockScheduler::AdvanceClockSeconds(
     double seconds) {
-  AdvanceClock(base::TimeDelta::FromSecondsD(seconds));
+  AdvanceClock(base::Seconds(seconds));
 }
 
 void TestingPlatformSupportWithMockScheduler::AdvanceClock(
diff --git a/third_party/blink/renderer/platform/timer_test.cc b/third_party/blink/renderer/platform/timer_test.cc
index 924641f4..46ef1937 100644
--- a/third_party/blink/renderer/platform/timer_test.cc
+++ b/third_party/blink/renderer/platform/timer_test.cc
@@ -38,7 +38,7 @@
 
   void SetUp() override {
     run_times_.clear();
-    platform_->AdvanceClock(base::TimeDelta::FromSeconds(10));
+    platform_->AdvanceClock(base::Seconds(10));
     start_time_ = Now();
   }
 
@@ -198,25 +198,24 @@
 TEST_F(TimerTest, StartOneShot_NonZero) {
   TaskRunnerTimer<TimerTest> timer(GetTaskRunner(), this,
                                    &TimerTest::CountingTask);
-  timer.StartOneShot(base::TimeDelta::FromSeconds(10), FROM_HERE);
+  timer.StartOneShot(base::Seconds(10), FROM_HERE);
 
   base::TimeDelta run_time;
   EXPECT_TRUE(TimeTillNextDelayedTask(&run_time));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(10), run_time);
+  EXPECT_EQ(base::Seconds(10), run_time);
 
   platform_->RunUntilIdle();
-  EXPECT_THAT(run_times_,
-              ElementsAre(start_time_ + base::TimeDelta::FromSeconds(10)));
+  EXPECT_THAT(run_times_, ElementsAre(start_time_ + base::Seconds(10)));
 }
 
 TEST_F(TimerTest, StartOneShot_NonZeroAndCancel) {
   TaskRunnerTimer<TimerTest> timer(GetTaskRunner(), this,
                                    &TimerTest::CountingTask);
-  timer.StartOneShot(base::TimeDelta::FromSeconds(10), FROM_HERE);
+  timer.StartOneShot(base::Seconds(10), FROM_HERE);
 
   base::TimeDelta run_time;
   EXPECT_TRUE(TimeTillNextDelayedTask(&run_time));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(10), run_time);
+  EXPECT_EQ(base::Seconds(10), run_time);
 
   timer.Stop();
   EXPECT_TRUE(TimeTillNextDelayedTask(&run_time));
@@ -228,11 +227,11 @@
 TEST_F(TimerTest, StartOneShot_NonZeroAndCancelThenRepost) {
   TaskRunnerTimer<TimerTest> timer(GetTaskRunner(), this,
                                    &TimerTest::CountingTask);
-  timer.StartOneShot(base::TimeDelta::FromSeconds(10), FROM_HERE);
+  timer.StartOneShot(base::Seconds(10), FROM_HERE);
 
   base::TimeDelta run_time;
   EXPECT_TRUE(TimeTillNextDelayedTask(&run_time));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(10), run_time);
+  EXPECT_EQ(base::Seconds(10), run_time);
 
   timer.Stop();
   EXPECT_TRUE(TimeTillNextDelayedTask(&run_time));
@@ -241,139 +240,127 @@
   EXPECT_FALSE(run_times_.size());
 
   base::TimeTicks second_post_time = Now();
-  timer.StartOneShot(base::TimeDelta::FromSeconds(10), FROM_HERE);
+  timer.StartOneShot(base::Seconds(10), FROM_HERE);
 
   EXPECT_TRUE(TimeTillNextDelayedTask(&run_time));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(10), run_time);
+  EXPECT_EQ(base::Seconds(10), run_time);
 
   platform_->RunUntilIdle();
-  EXPECT_THAT(run_times_,
-              ElementsAre(second_post_time + base::TimeDelta::FromSeconds(10)));
+  EXPECT_THAT(run_times_, ElementsAre(second_post_time + base::Seconds(10)));
 }
 
 TEST_F(TimerTest, StartOneShot_NonZero_RepostingAfterRunning) {
   TaskRunnerTimer<TimerTest> timer(GetTaskRunner(), this,
                                    &TimerTest::CountingTask);
-  timer.StartOneShot(base::TimeDelta::FromSeconds(10), FROM_HERE);
+  timer.StartOneShot(base::Seconds(10), FROM_HERE);
 
   base::TimeDelta run_time;
   EXPECT_TRUE(TimeTillNextDelayedTask(&run_time));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(10), run_time);
+  EXPECT_EQ(base::Seconds(10), run_time);
 
   platform_->RunUntilIdle();
-  EXPECT_THAT(run_times_,
-              ElementsAre(start_time_ + base::TimeDelta::FromSeconds(10)));
+  EXPECT_THAT(run_times_, ElementsAre(start_time_ + base::Seconds(10)));
 
-  timer.StartOneShot(base::TimeDelta::FromSeconds(20), FROM_HERE);
+  timer.StartOneShot(base::Seconds(20), FROM_HERE);
 
   EXPECT_TRUE(TimeTillNextDelayedTask(&run_time));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(20), run_time);
+  EXPECT_EQ(base::Seconds(20), run_time);
 
   platform_->RunUntilIdle();
-  EXPECT_THAT(run_times_,
-              ElementsAre(start_time_ + base::TimeDelta::FromSeconds(10),
-                          start_time_ + base::TimeDelta::FromSeconds(30)));
+  EXPECT_THAT(run_times_, ElementsAre(start_time_ + base::Seconds(10),
+                                      start_time_ + base::Seconds(30)));
 }
 
 TEST_F(TimerTest, PostingTimerTwiceWithSameRunTimeDoesNothing) {
   TaskRunnerTimer<TimerTest> timer(GetTaskRunner(), this,
                                    &TimerTest::CountingTask);
-  timer.StartOneShot(base::TimeDelta::FromSeconds(10), FROM_HERE);
-  timer.StartOneShot(base::TimeDelta::FromSeconds(10), FROM_HERE);
+  timer.StartOneShot(base::Seconds(10), FROM_HERE);
+  timer.StartOneShot(base::Seconds(10), FROM_HERE);
 
   base::TimeDelta run_time;
   EXPECT_TRUE(TimeTillNextDelayedTask(&run_time));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(10), run_time);
+  EXPECT_EQ(base::Seconds(10), run_time);
 
   platform_->RunUntilIdle();
-  EXPECT_THAT(run_times_,
-              ElementsAre(start_time_ + base::TimeDelta::FromSeconds(10)));
+  EXPECT_THAT(run_times_, ElementsAre(start_time_ + base::Seconds(10)));
 }
 
 TEST_F(TimerTest, PostingTimerTwiceWithNewerRunTimeCancelsOriginalTask) {
   TaskRunnerTimer<TimerTest> timer(GetTaskRunner(), this,
                                    &TimerTest::CountingTask);
-  timer.StartOneShot(base::TimeDelta::FromSeconds(10), FROM_HERE);
+  timer.StartOneShot(base::Seconds(10), FROM_HERE);
   timer.StartOneShot(base::TimeDelta(), FROM_HERE);
 
   platform_->RunUntilIdle();
-  EXPECT_THAT(run_times_,
-              ElementsAre(start_time_ + base::TimeDelta::FromSeconds(0)));
+  EXPECT_THAT(run_times_, ElementsAre(start_time_ + base::Seconds(0)));
 }
 
 TEST_F(TimerTest, PostingTimerTwiceWithLaterRunTimeCancelsOriginalTask) {
   TaskRunnerTimer<TimerTest> timer(GetTaskRunner(), this,
                                    &TimerTest::CountingTask);
   timer.StartOneShot(base::TimeDelta(), FROM_HERE);
-  timer.StartOneShot(base::TimeDelta::FromSeconds(10), FROM_HERE);
+  timer.StartOneShot(base::Seconds(10), FROM_HERE);
 
   platform_->RunUntilIdle();
-  EXPECT_THAT(run_times_,
-              ElementsAre(start_time_ + base::TimeDelta::FromSeconds(10)));
+  EXPECT_THAT(run_times_, ElementsAre(start_time_ + base::Seconds(10)));
 }
 
 TEST_F(TimerTest, StartRepeatingTask) {
   TaskRunnerTimer<TimerTest> timer(GetTaskRunner(), this,
                                    &TimerTest::CountingTask);
-  timer.StartRepeating(base::TimeDelta::FromSeconds(1), FROM_HERE);
+  timer.StartRepeating(base::Seconds(1), FROM_HERE);
 
   base::TimeDelta run_time;
   EXPECT_TRUE(TimeTillNextDelayedTask(&run_time));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(1), run_time);
+  EXPECT_EQ(base::Seconds(1), run_time);
 
-  RunUntilDeadline(start_time_ + base::TimeDelta::FromMilliseconds(5500));
-  EXPECT_THAT(run_times_,
-              ElementsAre(start_time_ + base::TimeDelta::FromSeconds(1),
-                          start_time_ + base::TimeDelta::FromSeconds(2),
-                          start_time_ + base::TimeDelta::FromSeconds(3),
-                          start_time_ + base::TimeDelta::FromSeconds(4),
-                          start_time_ + base::TimeDelta::FromSeconds(5)));
+  RunUntilDeadline(start_time_ + base::Milliseconds(5500));
+  EXPECT_THAT(run_times_, ElementsAre(start_time_ + base::Seconds(1),
+                                      start_time_ + base::Seconds(2),
+                                      start_time_ + base::Seconds(3),
+                                      start_time_ + base::Seconds(4),
+                                      start_time_ + base::Seconds(5)));
 }
 
 TEST_F(TimerTest, StartRepeatingTask_ThenCancel) {
   TaskRunnerTimer<TimerTest> timer(GetTaskRunner(), this,
                                    &TimerTest::CountingTask);
-  timer.StartRepeating(base::TimeDelta::FromSeconds(1), FROM_HERE);
+  timer.StartRepeating(base::Seconds(1), FROM_HERE);
 
   base::TimeDelta run_time;
   EXPECT_TRUE(TimeTillNextDelayedTask(&run_time));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(1), run_time);
+  EXPECT_EQ(base::Seconds(1), run_time);
 
-  RunUntilDeadline(start_time_ + base::TimeDelta::FromMilliseconds(2500));
-  EXPECT_THAT(run_times_,
-              ElementsAre(start_time_ + base::TimeDelta::FromSeconds(1),
-                          start_time_ + base::TimeDelta::FromSeconds(2)));
+  RunUntilDeadline(start_time_ + base::Milliseconds(2500));
+  EXPECT_THAT(run_times_, ElementsAre(start_time_ + base::Seconds(1),
+                                      start_time_ + base::Seconds(2)));
 
   timer.Stop();
   platform_->RunUntilIdle();
 
-  EXPECT_THAT(run_times_,
-              ElementsAre(start_time_ + base::TimeDelta::FromSeconds(1),
-                          start_time_ + base::TimeDelta::FromSeconds(2)));
+  EXPECT_THAT(run_times_, ElementsAre(start_time_ + base::Seconds(1),
+                                      start_time_ + base::Seconds(2)));
 }
 
 TEST_F(TimerTest, StartRepeatingTask_ThenPostOneShot) {
   TaskRunnerTimer<TimerTest> timer(GetTaskRunner(), this,
                                    &TimerTest::CountingTask);
-  timer.StartRepeating(base::TimeDelta::FromSeconds(1), FROM_HERE);
+  timer.StartRepeating(base::Seconds(1), FROM_HERE);
 
   base::TimeDelta run_time;
   EXPECT_TRUE(TimeTillNextDelayedTask(&run_time));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(1), run_time);
+  EXPECT_EQ(base::Seconds(1), run_time);
 
-  RunUntilDeadline(start_time_ + base::TimeDelta::FromMilliseconds(2500));
-  EXPECT_THAT(run_times_,
-              ElementsAre(start_time_ + base::TimeDelta::FromSeconds(1),
-                          start_time_ + base::TimeDelta::FromSeconds(2)));
+  RunUntilDeadline(start_time_ + base::Milliseconds(2500));
+  EXPECT_THAT(run_times_, ElementsAre(start_time_ + base::Seconds(1),
+                                      start_time_ + base::Seconds(2)));
 
   timer.StartOneShot(base::TimeDelta(), FROM_HERE);
   platform_->RunUntilIdle();
 
-  EXPECT_THAT(
-      run_times_,
-      ElementsAre(start_time_ + base::TimeDelta::FromSeconds(1),
-                  start_time_ + base::TimeDelta::FromSeconds(2),
-                  start_time_ + base::TimeDelta::FromMilliseconds(2500)));
+  EXPECT_THAT(run_times_, ElementsAre(start_time_ + base::Seconds(1),
+                                      start_time_ + base::Seconds(2),
+                                      start_time_ + base::Milliseconds(2500)));
 }
 
 TEST_F(TimerTest, IsActive_NeverPosted) {
@@ -394,7 +381,7 @@
 TEST_F(TimerTest, IsActive_AfterPosting_OneShotNonZero) {
   TaskRunnerTimer<TimerTest> timer(GetTaskRunner(), this,
                                    &TimerTest::CountingTask);
-  timer.StartOneShot(base::TimeDelta::FromSeconds(10), FROM_HERE);
+  timer.StartOneShot(base::Seconds(10), FROM_HERE);
 
   EXPECT_TRUE(timer.IsActive());
 }
@@ -402,7 +389,7 @@
 TEST_F(TimerTest, IsActive_AfterPosting_Repeating) {
   TaskRunnerTimer<TimerTest> timer(GetTaskRunner(), this,
                                    &TimerTest::CountingTask);
-  timer.StartRepeating(base::TimeDelta::FromSeconds(1), FROM_HERE);
+  timer.StartRepeating(base::Seconds(1), FROM_HERE);
 
   EXPECT_TRUE(timer.IsActive());
 }
@@ -419,7 +406,7 @@
 TEST_F(TimerTest, IsActive_AfterRunning_OneShotNonZero) {
   TaskRunnerTimer<TimerTest> timer(GetTaskRunner(), this,
                                    &TimerTest::CountingTask);
-  timer.StartOneShot(base::TimeDelta::FromSeconds(10), FROM_HERE);
+  timer.StartOneShot(base::Seconds(10), FROM_HERE);
 
   platform_->RunUntilIdle();
   EXPECT_FALSE(timer.IsActive());
@@ -428,9 +415,9 @@
 TEST_F(TimerTest, IsActive_AfterRunning_Repeating) {
   TaskRunnerTimer<TimerTest> timer(GetTaskRunner(), this,
                                    &TimerTest::CountingTask);
-  timer.StartRepeating(base::TimeDelta::FromSeconds(1), FROM_HERE);
+  timer.StartRepeating(base::Seconds(1), FROM_HERE);
 
-  RunUntilDeadline(start_time_ + base::TimeDelta::FromSeconds(10));
+  RunUntilDeadline(start_time_ + base::Seconds(10));
   EXPECT_TRUE(timer.IsActive());  // It should run until cancelled.
 }
 
@@ -445,9 +432,9 @@
 TEST_F(TimerTest, NextFireInterval_OneShotNonZero) {
   TaskRunnerTimer<TimerTest> timer(GetTaskRunner(), this,
                                    &TimerTest::CountingTask);
-  timer.StartOneShot(base::TimeDelta::FromSeconds(10), FROM_HERE);
+  timer.StartOneShot(base::Seconds(10), FROM_HERE);
 
-  EXPECT_EQ(base::TimeDelta::FromSeconds(10), timer.NextFireInterval());
+  EXPECT_EQ(base::Seconds(10), timer.NextFireInterval());
 }
 
 TEST_F(TimerTest, NextFireInterval_OneShotNonZero_AfterAFewSeconds) {
@@ -455,18 +442,18 @@
 
   TaskRunnerTimer<TimerTest> timer(GetTaskRunner(), this,
                                    &TimerTest::CountingTask);
-  timer.StartOneShot(base::TimeDelta::FromSeconds(10), FROM_HERE);
+  timer.StartOneShot(base::Seconds(10), FROM_HERE);
 
-  platform_->AdvanceClock(base::TimeDelta::FromSeconds(2));
-  EXPECT_EQ(base::TimeDelta::FromSeconds(8), timer.NextFireInterval());
+  platform_->AdvanceClock(base::Seconds(2));
+  EXPECT_EQ(base::Seconds(8), timer.NextFireInterval());
 }
 
 TEST_F(TimerTest, NextFireInterval_Repeating) {
   TaskRunnerTimer<TimerTest> timer(GetTaskRunner(), this,
                                    &TimerTest::CountingTask);
-  timer.StartRepeating(base::TimeDelta::FromSeconds(20), FROM_HERE);
+  timer.StartRepeating(base::Seconds(20), FROM_HERE);
 
-  EXPECT_EQ(base::TimeDelta::FromSeconds(20), timer.NextFireInterval());
+  EXPECT_EQ(base::Seconds(20), timer.NextFireInterval());
 }
 
 TEST_F(TimerTest, RepeatInterval_NeverStarted) {
@@ -487,7 +474,7 @@
 TEST_F(TimerTest, RepeatInterval_OneShotNonZero) {
   TaskRunnerTimer<TimerTest> timer(GetTaskRunner(), this,
                                    &TimerTest::CountingTask);
-  timer.StartOneShot(base::TimeDelta::FromSeconds(10), FROM_HERE);
+  timer.StartOneShot(base::Seconds(10), FROM_HERE);
 
   EXPECT_TRUE(timer.RepeatInterval().is_zero());
 }
@@ -495,28 +482,27 @@
 TEST_F(TimerTest, RepeatInterval_Repeating) {
   TaskRunnerTimer<TimerTest> timer(GetTaskRunner(), this,
                                    &TimerTest::CountingTask);
-  timer.StartRepeating(base::TimeDelta::FromSeconds(20), FROM_HERE);
+  timer.StartRepeating(base::Seconds(20), FROM_HERE);
 
-  EXPECT_EQ(base::TimeDelta::FromSeconds(20), timer.RepeatInterval());
+  EXPECT_EQ(base::Seconds(20), timer.RepeatInterval());
 }
 
 TEST_F(TimerTest, AugmentRepeatInterval) {
   TaskRunnerTimer<TimerTest> timer(GetTaskRunner(), this,
                                    &TimerTest::CountingTask);
-  timer.StartRepeating(base::TimeDelta::FromSeconds(10), FROM_HERE);
-  EXPECT_EQ(base::TimeDelta::FromSeconds(10), timer.RepeatInterval());
-  EXPECT_EQ(base::TimeDelta::FromSeconds(10), timer.NextFireInterval());
+  timer.StartRepeating(base::Seconds(10), FROM_HERE);
+  EXPECT_EQ(base::Seconds(10), timer.RepeatInterval());
+  EXPECT_EQ(base::Seconds(10), timer.NextFireInterval());
 
-  platform_->AdvanceClock(base::TimeDelta::FromSeconds(2));
-  timer.AugmentRepeatInterval(base::TimeDelta::FromSeconds(10));
+  platform_->AdvanceClock(base::Seconds(2));
+  timer.AugmentRepeatInterval(base::Seconds(10));
 
-  EXPECT_EQ(base::TimeDelta::FromSeconds(20), timer.RepeatInterval());
-  EXPECT_EQ(base::TimeDelta::FromSeconds(18), timer.NextFireInterval());
+  EXPECT_EQ(base::Seconds(20), timer.RepeatInterval());
+  EXPECT_EQ(base::Seconds(18), timer.NextFireInterval());
 
-  RunUntilDeadline(start_time_ + base::TimeDelta::FromSeconds(50));
-  EXPECT_THAT(run_times_,
-              ElementsAre(start_time_ + base::TimeDelta::FromSeconds(20),
-                          start_time_ + base::TimeDelta::FromSeconds(40)));
+  RunUntilDeadline(start_time_ + base::Seconds(50));
+  EXPECT_THAT(run_times_, ElementsAre(start_time_ + base::Seconds(20),
+                                      start_time_ + base::Seconds(40)));
 }
 
 TEST_F(TimerTest, AugmentRepeatInterval_TimerFireDelayed) {
@@ -524,15 +510,14 @@
 
   TaskRunnerTimer<TimerTest> timer(GetTaskRunner(), this,
                                    &TimerTest::CountingTask);
-  timer.StartRepeating(base::TimeDelta::FromSeconds(10), FROM_HERE);
-  EXPECT_EQ(base::TimeDelta::FromSeconds(10), timer.RepeatInterval());
-  EXPECT_EQ(base::TimeDelta::FromSeconds(10), timer.NextFireInterval());
+  timer.StartRepeating(base::Seconds(10), FROM_HERE);
+  EXPECT_EQ(base::Seconds(10), timer.RepeatInterval());
+  EXPECT_EQ(base::Seconds(10), timer.NextFireInterval());
 
-  platform_->AdvanceClock(
-      base::TimeDelta::FromSeconds(123));  // Make the timer long overdue.
-  timer.AugmentRepeatInterval(base::TimeDelta::FromSeconds(10));
+  platform_->AdvanceClock(base::Seconds(123));  // Make the timer long overdue.
+  timer.AugmentRepeatInterval(base::Seconds(10));
 
-  EXPECT_EQ(base::TimeDelta::FromSeconds(20), timer.RepeatInterval());
+  EXPECT_EQ(base::Seconds(20), timer.RepeatInterval());
   // The timer is overdue so it should be scheduled to fire immediatly.
   EXPECT_TRUE(timer.NextFireInterval().is_zero());
 }
@@ -542,41 +527,39 @@
 
   TaskRunnerTimer<TimerTest> timer(GetTaskRunner(), this,
                                    &TimerTest::RecordNextFireTimeTask);
-  timer.StartRepeating(base::TimeDelta::FromSeconds(2), FROM_HERE);
+  timer.StartRepeating(base::Seconds(2), FROM_HERE);
 
   RecordNextFireTimeTask(
       &timer);  // Next scheduled task to run at |start_time_| + 2s
 
   // Simulate timer firing early. Next scheduled task to run at
   // |start_time_| + 4s
-  platform_->AdvanceClock(base::TimeDelta::FromMilliseconds(1900));
-  RunUntilDeadline(Now() + base::TimeDelta::FromMilliseconds(200));
+  platform_->AdvanceClock(base::Milliseconds(1900));
+  RunUntilDeadline(Now() + base::Milliseconds(200));
 
   // Next scheduled task to run at |start_time_| + 6s
-  platform_->RunForPeriod(base::TimeDelta::FromSeconds(2));
+  platform_->RunForPeriod(base::Seconds(2));
   // Next scheduled task to run at |start_time_| + 8s
-  platform_->RunForPeriod(base::TimeDelta::FromMilliseconds(2100));
+  platform_->RunForPeriod(base::Milliseconds(2100));
   // Next scheduled task to run at |start_time_| + 10s
-  platform_->RunForPeriod(base::TimeDelta::FromMilliseconds(2900));
+  platform_->RunForPeriod(base::Milliseconds(2900));
   // Next scheduled task to run at |start_time_| + 14s (skips a beat)
-  platform_->AdvanceClock(base::TimeDelta::FromMilliseconds(3100));
+  platform_->AdvanceClock(base::Milliseconds(3100));
   platform_->RunUntilIdle();
   // Next scheduled task to run at |start_time_| + 18s (skips a beat)
-  platform_->AdvanceClock(base::TimeDelta::FromSeconds(4));
+  platform_->AdvanceClock(base::Seconds(4));
   platform_->RunUntilIdle();
   // Next scheduled task to run at |start_time_| + 28s (skips 5 beats)
-  platform_->AdvanceClock(base::TimeDelta::FromSeconds(10));
+  platform_->AdvanceClock(base::Seconds(10));
   platform_->RunUntilIdle();
 
-  EXPECT_THAT(next_fire_times_,
-              ElementsAre(start_time_ + base::TimeDelta::FromSeconds(2),
-                          start_time_ + base::TimeDelta::FromSeconds(4),
-                          start_time_ + base::TimeDelta::FromSeconds(6),
-                          start_time_ + base::TimeDelta::FromSeconds(8),
-                          start_time_ + base::TimeDelta::FromSeconds(10),
-                          start_time_ + base::TimeDelta::FromSeconds(14),
-                          start_time_ + base::TimeDelta::FromSeconds(18),
-                          start_time_ + base::TimeDelta::FromSeconds(28)));
+  EXPECT_THAT(
+      next_fire_times_,
+      ElementsAre(
+          start_time_ + base::Seconds(2), start_time_ + base::Seconds(4),
+          start_time_ + base::Seconds(6), start_time_ + base::Seconds(8),
+          start_time_ + base::Seconds(10), start_time_ + base::Seconds(14),
+          start_time_ + base::Seconds(18), start_time_ + base::Seconds(28)));
 }
 
 template <typename TimerFiredClass>
@@ -715,16 +698,15 @@
 
   base::TimeTicks start_time = Now();
 
-  timer.StartOneShot(base::TimeDelta::FromSeconds(1), FROM_HERE);
+  timer.StartOneShot(base::Seconds(1), FROM_HERE);
 
-  platform_->RunForPeriod(base::TimeDelta::FromMilliseconds(500));
+  platform_->RunForPeriod(base::Milliseconds(500));
 
   timer.MoveToNewTaskRunner(task_runner2);
 
   platform_->RunUntilIdle();
 
-  EXPECT_THAT(run_times_,
-              ElementsAre(start_time + base::TimeDelta::FromSeconds(1)));
+  EXPECT_THAT(run_times_, ElementsAre(start_time + base::Seconds(1)));
 
   EXPECT_THAT(run_order, ElementsAre(task_runner2));
 
@@ -755,19 +737,18 @@
 
   base::TimeTicks start_time = Now();
 
-  timer.StartRepeating(base::TimeDelta::FromSeconds(1), FROM_HERE);
+  timer.StartRepeating(base::Seconds(1), FROM_HERE);
 
-  platform_->RunForPeriod(base::TimeDelta::FromMilliseconds(2500));
+  platform_->RunForPeriod(base::Milliseconds(2500));
 
   timer.MoveToNewTaskRunner(task_runner2);
 
-  platform_->RunForPeriod(base::TimeDelta::FromSeconds(2));
+  platform_->RunForPeriod(base::Seconds(2));
 
-  EXPECT_THAT(run_times_,
-              ElementsAre(start_time + base::TimeDelta::FromSeconds(1),
-                          start_time + base::TimeDelta::FromSeconds(2),
-                          start_time + base::TimeDelta::FromSeconds(3),
-                          start_time + base::TimeDelta::FromSeconds(4)));
+  EXPECT_THAT(run_times_, ElementsAre(start_time + base::Seconds(1),
+                                      start_time + base::Seconds(2),
+                                      start_time + base::Seconds(3),
+                                      start_time + base::Seconds(4)));
 
   EXPECT_THAT(run_order, ElementsAre(task_runner1, task_runner1, task_runner2,
                                      task_runner2));
diff --git a/third_party/blink/renderer/platform/video_capture/video_capture_impl.h b/third_party/blink/renderer/platform/video_capture/video_capture_impl.h
index e454fe1..9b5c9bf 100644
--- a/third_party/blink/renderer/platform/video_capture/video_capture_impl.h
+++ b/third_party/blink/renderer/platform/video_capture/video_capture_impl.h
@@ -123,8 +123,7 @@
   // The returned weak pointer can only be dereferenced on the IO thread.
   base::WeakPtr<VideoCaptureImpl> GetWeakPtr();
 
-  static constexpr base::TimeDelta kCaptureStartTimeout =
-      base::TimeDelta::FromSeconds(10);
+  static constexpr base::TimeDelta kCaptureStartTimeout = base::Seconds(10);
 
  private:
   friend class VideoCaptureImplTest;
diff --git a/third_party/blink/renderer/platform/video_capture/video_capture_impl_test.cc b/third_party/blink/renderer/platform/video_capture/video_capture_impl_test.cc
index c5e4630..25dae93 100644
--- a/third_party/blink/renderer/platform/video_capture/video_capture_impl_test.cc
+++ b/third_party/blink/renderer/platform/video_capture/video_capture_impl_test.cc
@@ -471,7 +471,7 @@
       FROM_HERE, base::BindLambdaForTesting(create_and_queue_buffer));
 
   // Wait until OnFrameReady is called on |testing_io_thread|.
-  EXPECT_TRUE(frame_ready_event.TimedWait(base::TimeDelta::FromSeconds(3)));
+  EXPECT_TRUE(frame_ready_event.TimedWait(base::Seconds(3)));
 
   testing_io_thread.task_runner()->PostTask(
       FROM_HERE, base::BindLambdaForTesting(stop_capture_and_destroy_buffer));
diff --git a/third_party/blink/renderer/platform/widget/compositing/layer_tree_settings.cc b/third_party/blink/renderer/platform/widget/compositing/layer_tree_settings.cc
index 408d9e5d..895b440 100644
--- a/third_party/blink/renderer/platform/widget/compositing/layer_tree_settings.cc
+++ b/third_party/blink/renderer/platform/widget/compositing/layer_tree_settings.cc
@@ -384,8 +384,8 @@
   // emulator. Aura Overlay Scrollbar will override below.
   settings.scrollbar_animator = cc::LayerTreeSettings::ANDROID_OVERLAY;
   settings.solid_color_scrollbar_color = SkColorSetARGB(128, 128, 128, 128);
-  settings.scrollbar_fade_delay = base::TimeDelta::FromMilliseconds(300);
-  settings.scrollbar_fade_duration = base::TimeDelta::FromMilliseconds(300);
+  settings.scrollbar_fade_delay = base::Milliseconds(300);
+  settings.scrollbar_fade_duration = base::Milliseconds(300);
 
   if (cmd.HasSwitch(cc::switches::kCCScrollAnimationDurationForTesting)) {
     const int kMinScrollAnimationDuration = 0;
@@ -395,8 +395,7 @@
                             cc::switches::kCCScrollAnimationDurationForTesting,
                             kMinScrollAnimationDuration,
                             kMaxScrollAnimationDuration, &duration)) {
-      settings.scroll_animation_duration_for_testing =
-          base::TimeDelta::FromSeconds(duration);
+      settings.scroll_animation_duration_for_testing = base::Seconds(duration);
     }
   }
 
diff --git a/third_party/blink/renderer/platform/widget/compositing/layer_tree_view_unittest.cc b/third_party/blink/renderer/platform/widget/compositing/layer_tree_view_unittest.cc
index c170064..eac27e0e 100644
--- a/third_party/blink/renderer/platform/widget/compositing/layer_tree_view_unittest.cc
+++ b/third_party/blink/renderer/platform/widget/compositing/layer_tree_view_unittest.cc
@@ -397,7 +397,7 @@
   // Respond with a failed presentation feedback for frame 1 and verify that the
   // callback is not called
   base::TimeTicks fail_timestamp =
-      base::TimeTicks::Now() + base::TimeDelta::FromMicroseconds(2);
+      base::TimeTicks::Now() + base::Microseconds(2);
   gfx::PresentationFeedback fail_feedback(fail_timestamp, base::TimeDelta(),
                                           gfx::PresentationFeedback::kFailure);
   layer_tree_view.DidPresentCompositorFrame(1, fail_feedback);
@@ -406,8 +406,7 @@
   // Respond with a successful presentation feedback for frame 2 and verify that
   // the callback for frame 1 is now called with presentation timestamp for
   // frame 2.
-  base::TimeTicks success_timestamp =
-      fail_timestamp + base::TimeDelta::FromMicroseconds(3);
+  base::TimeTicks success_timestamp = fail_timestamp + base::Microseconds(3);
   gfx::PresentationFeedback success_feedback(success_timestamp,
                                              base::TimeDelta(), 0);
   layer_tree_view.DidPresentCompositorFrame(2, success_feedback);
diff --git a/third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller_bezier.cc b/third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller_bezier.cc
index c4dd90d..116a203 100644
--- a/third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller_bezier.cc
+++ b/third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller_bezier.cc
@@ -43,13 +43,13 @@
 
 base::TimeDelta CalculateBounceForwardsDuration(
     double bounce_forwards_distance) {
-  return base::TimeDelta::FromMillisecondsD(
+  return base::Milliseconds(
       std::min(kOverbounceMaxDurationMilliseconds,
                kOverbounceMillisecondsPerPixel * bounce_forwards_distance));
 }
 
 base::TimeDelta CalculateBounceBackDuration(double bounce_back_distance) {
-  return base::TimeDelta::FromMillisecondsD(std::min(
+  return base::Milliseconds(std::min(
       kBounceBackMaxDurationMilliseconds,
       kBounceBackMillisecondsPerPixel * std::abs(bounce_back_distance)));
 }
diff --git a/third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller_bezier_unittest.cc b/third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller_bezier_unittest.cc
index 1e5c446..9fdacbe 100644
--- a/third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller_bezier_unittest.cc
+++ b/third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller_bezier_unittest.cc
@@ -179,16 +179,14 @@
   helper_.SetScrollOffsetAndMaxScrollOffset(gfx::ScrollOffset(0, 20),
                                             gfx::ScrollOffset(100, 100));
   controller_.ReconcileStretchAndScroll();
-  controller_.bounce_forwards_duration_x_ =
-      base::TimeDelta::FromMilliseconds(1000);
-  controller_.bounce_forwards_duration_y_ =
-      base::TimeDelta::FromMilliseconds(1000);
+  controller_.bounce_forwards_duration_x_ = base::Milliseconds(1000);
+  controller_.bounce_forwards_duration_y_ = base::Milliseconds(1000);
   controller_.momentum_animation_initial_stretch_ = gfx::Vector2dF(10.f, 10.f);
 
   // Verify that the momentum_animation_start_time_ doesn't get reset when the
   // animation ticks.
   const base::TimeTicks animation_start_time =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(32);
+      base::TimeTicks() + base::Milliseconds(32);
 
   // After 2 frames.
   controller_.Animate(animation_start_time);
@@ -198,16 +196,14 @@
             ElasticOverscrollController::State::kStateMomentumAnimated);
 
   // After 8 frames.
-  controller_.Animate(animation_start_time +
-                      base::TimeDelta::FromMilliseconds(128));
+  controller_.Animate(animation_start_time + base::Milliseconds(128));
   helper_.ScrollBy(Vector2dF(0, 8));
   EXPECT_NE(controller_.momentum_animation_start_time_, animation_start_time);
   EXPECT_EQ(controller_.state_,
             ElasticOverscrollController::State::kStateMomentumAnimated);
 
   // After 64 frames the forward animation should no longer be active.
-  controller_.Animate(animation_start_time +
-                      base::TimeDelta::FromMilliseconds(1024));
+  controller_.Animate(animation_start_time + base::Milliseconds(1024));
   helper_.ScrollBy(Vector2dF(0, 64));
   EXPECT_NE(controller_.momentum_animation_start_time_, animation_start_time);
   EXPECT_EQ(controller_.state_,
@@ -247,17 +243,17 @@
   SendGestureScrollEnd(now);
 
   // Frame 2.
-  controller_.Animate(now + base::TimeDelta::FromMilliseconds(32));
+  controller_.Animate(now + base::Milliseconds(32));
   EXPECT_EQ(controller_.state_,
             ElasticOverscrollController::kStateMomentumAnimated);
   ASSERT_FLOAT_EQ(helper_.StretchAmount().y(), -14);
 
   // Frame 5. The stretch amount moving closer to 0 proves that we're animating.
-  controller_.Animate(now + base::TimeDelta::FromMilliseconds(80));
+  controller_.Animate(now + base::Milliseconds(80));
   ASSERT_FLOAT_EQ(helper_.StretchAmount().y(), -8);
 
   // Frame 15. StretchAmount < abs(1), so snap to 0. state_ is kStateInactive.
-  controller_.Animate(now + base::TimeDelta::FromMilliseconds(240));
+  controller_.Animate(now + base::Milliseconds(240));
   EXPECT_EQ(Vector2dF(0, 0), helper_.StretchAmount());
 
   EXPECT_EQ(controller_.state_, ElasticOverscrollController::kStateInactive);
@@ -269,17 +265,17 @@
   SendGestureScrollEnd(now);
 
   // Frame 2.
-  controller_.Animate(now + base::TimeDelta::FromMilliseconds(32));
+  controller_.Animate(now + base::Milliseconds(32));
   ASSERT_FLOAT_EQ(helper_.StretchAmount().x(), -10);
 
   // Frame 5. The stretch amount moving closer to 0 proves that we're animating.
-  controller_.Animate(now + base::TimeDelta::FromMilliseconds(80));
+  controller_.Animate(now + base::Milliseconds(80));
   EXPECT_EQ(controller_.state_,
             ElasticOverscrollController::kStateMomentumAnimated);
   ASSERT_FLOAT_EQ(helper_.StretchAmount().x(), -5);
 
   // Frame 15. StretchAmount < abs(1), so snap to 0. state_ is kStateInactive.
-  controller_.Animate(now + base::TimeDelta::FromMilliseconds(240));
+  controller_.Animate(now + base::Milliseconds(240));
   EXPECT_EQ(Vector2dF(0, 0), helper_.StretchAmount());
   EXPECT_EQ(controller_.state_, ElasticOverscrollController::kStateInactive);
 }
@@ -306,7 +302,7 @@
       -37, -30, -25, -20, -16, -13, -10, -7,  -5,  -4,  -2,  -1,  -1,  0};
 
   for (int i = 0; i < TOTAL_FRAMES; i++) {
-    controller_.Animate(now + base::TimeDelta::FromMilliseconds(i * 16));
+    controller_.Animate(now + base::Milliseconds(i * 16));
     EXPECT_EQ(controller_.state_,
               (stretch_amount_y[i] == 0
                    ? ElasticOverscrollController::kStateInactive
@@ -325,7 +321,7 @@
       -30, -25, -20, -17, -13, -10, -8,  -6,  -4,  -3,  -2,  -1,  0,   0};
 
   for (int i = 0; i < TOTAL_FRAMES; i++) {
-    controller_.Animate(now + base::TimeDelta::FromMilliseconds(i * 16));
+    controller_.Animate(now + base::Milliseconds(i * 16));
     EXPECT_EQ(controller_.state_,
               (stretch_amount_x[i] == 0
                    ? ElasticOverscrollController::kStateInactive
@@ -378,11 +374,11 @@
   EXPECT_EQ(Vector2dF(0, -19), helper_.StretchAmount());
 
   // Frame 2.
-  controller_.Animate(now + base::TimeDelta::FromMilliseconds(32));
+  controller_.Animate(now + base::Milliseconds(32));
   ASSERT_FLOAT_EQ(helper_.StretchAmount().y(), -14);
 
   // Frame 5. The stretch amount moving closer to 0 proves that we're animating.
-  controller_.Animate(now + base::TimeDelta::FromMilliseconds(80));
+  controller_.Animate(now + base::Milliseconds(80));
   ASSERT_FLOAT_EQ(helper_.StretchAmount().y(), -8);
 
   // While the animation is still ticking, initiate a scroll.
@@ -407,7 +403,7 @@
   SendGestureScrollEnd(now);
 
   // Frame 2.
-  controller_.Animate(now + base::TimeDelta::FromMilliseconds(32));
+  controller_.Animate(now + base::Milliseconds(32));
   EXPECT_EQ(Vector2dF(0, 0), helper_.StretchAmount());
 }
 }  // namespace blink
diff --git a/third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller_exponential_unittest.cc b/third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller_exponential_unittest.cc
index 8b2f449..69e08ca 100644
--- a/third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller_exponential_unittest.cc
+++ b/third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller_exponential_unittest.cc
@@ -91,7 +91,7 @@
   ElasticOverscrollControllerExponentialTest()
       : controller_(&helper_),
         current_time_(base::TimeTicks() +
-                      base::TimeDelta::FromMicroseconds(INT64_C(100000000))) {}
+                      base::Microseconds(INT64_C(100000000))) {}
   ~ElasticOverscrollControllerExponentialTest() override {}
 
   void SendGestureScrollBegin(InertialPhaseState inertialPhase) {
@@ -140,7 +140,7 @@
   }
 
   const base::TimeTicks& TickCurrentTime() {
-    current_time_ += base::TimeDelta::FromSecondsD(1 / 60.f);
+    current_time_ += base::Seconds(1 / 60.f);
     return current_time_;
   }
   void TickCurrentTimeAndAnimate() {
diff --git a/third_party/blink/renderer/platform/widget/input/input_event_prediction_unittest.cc b/third_party/blink/renderer/platform/widget/input/input_event_prediction_unittest.cc
index 54bc32f8..1d2c6ae 100644
--- a/third_party/blink/renderer/platform/widget/input/input_event_prediction_unittest.cc
+++ b/third_party/blink/renderer/platform/widget/input/input_event_prediction_unittest.cc
@@ -328,11 +328,11 @@
   HandleEvents(mouse_move);
   mouse_move = SyntheticWebMouseEventBuilder::Build(
       WebInputEvent::Type::kMouseMove, 11, 9, 0);
-  mouse_move.SetTimeStamp(event_time += base::TimeDelta::FromMilliseconds(8));
+  mouse_move.SetTimeStamp(event_time += base::Milliseconds(8));
   HandleEvents(mouse_move);
   mouse_move = SyntheticWebMouseEventBuilder::Build(
       WebInputEvent::Type::kMouseMove, 12, 8, 0);
-  mouse_move.SetTimeStamp(event_time += base::TimeDelta::FromMilliseconds(8));
+  mouse_move.SetTimeStamp(event_time += base::Milliseconds(8));
   HandleEvents(mouse_move);
 
   {
@@ -340,7 +340,7 @@
     // and 3 predicted events.
     mouse_move = SyntheticWebMouseEventBuilder::Build(
         WebInputEvent::Type::kMouseMove, 13, 7, 0);
-    mouse_move.SetTimeStamp(event_time += base::TimeDelta::FromMilliseconds(8));
+    mouse_move.SetTimeStamp(event_time += base::Milliseconds(8));
     blink::WebCoalescedInputEvent coalesced_event(mouse_move,
                                                   ui::LatencyInfo());
     base::TimeTicks frame_time =
@@ -356,7 +356,7 @@
     EXPECT_EQ(coalesced_event.PredictedEventSize(), 3u);
     // First predicted event time stamp is 8ms from original event timestamp.
     EXPECT_EQ(coalesced_event.PredictedEvent(0).TimeStamp(),
-              event_time + base::TimeDelta::FromMilliseconds(8));
+              event_time + base::Milliseconds(8));
   }
 
   {
@@ -365,12 +365,12 @@
     // off to the maximum allowed by the predictor
     mouse_move = SyntheticWebMouseEventBuilder::Build(
         WebInputEvent::Type::kMouseMove, 14, 6, 0);
-    mouse_move.SetTimeStamp(event_time += base::TimeDelta::FromMilliseconds(8));
+    mouse_move.SetTimeStamp(event_time += base::Milliseconds(8));
     blink::WebCoalescedInputEvent coalesced_event(mouse_move,
                                                   ui::LatencyInfo());
     base::TimeTicks frame_time =
         event_time + predictor_max_resample_time +
-        base::TimeDelta::FromMilliseconds(10);  // overpredict on purpose
+        base::Milliseconds(10);  // overpredict on purpose
     event_predictor_->HandleEvents(coalesced_event, frame_time);
 
     // We expect the prediction to be cut off to the max resampling time of
@@ -384,7 +384,7 @@
     EXPECT_EQ(coalesced_event.PredictedEventSize(), 3u);
     // First predicted event time stamp is 8ms from original event timestamp.
     EXPECT_EQ(coalesced_event.PredictedEvent(0).TimeStamp(),
-              event_time + base::TimeDelta::FromMilliseconds(8));
+              event_time + base::Milliseconds(8));
   }
 }
 
@@ -401,17 +401,17 @@
   HandleEvents(mouse_move);
   mouse_move = SyntheticWebMouseEventBuilder::Build(
       WebInputEvent::Type::kMouseMove, 11, 9, 0);
-  mouse_move.SetTimeStamp(event_time += base::TimeDelta::FromMilliseconds(6));
+  mouse_move.SetTimeStamp(event_time += base::Milliseconds(6));
   HandleEvents(mouse_move);
   mouse_move = SyntheticWebMouseEventBuilder::Build(
       WebInputEvent::Type::kMouseMove, 12, 8, 0);
-  mouse_move.SetTimeStamp(event_time += base::TimeDelta::FromMilliseconds(6));
+  mouse_move.SetTimeStamp(event_time += base::Milliseconds(6));
   HandleEvents(mouse_move);
 
   {
     mouse_move = SyntheticWebMouseEventBuilder::Build(
         WebInputEvent::Type::kMouseMove, 13, 7, 0);
-    mouse_move.SetTimeStamp(event_time += base::TimeDelta::FromMilliseconds(6));
+    mouse_move.SetTimeStamp(event_time += base::Milliseconds(6));
     blink::WebCoalescedInputEvent coalesced_event(mouse_move,
                                                   ui::LatencyInfo());
     event_predictor_->HandleEvents(coalesced_event, event_time);
@@ -419,7 +419,7 @@
     EXPECT_EQ(coalesced_event.PredictedEventSize(), 4u);
     // First predicted event time stamp is 6ms from original event timestamp.
     EXPECT_EQ(coalesced_event.PredictedEvent(0).TimeStamp(),
-              event_time + base::TimeDelta::FromMilliseconds(6));
+              event_time + base::Milliseconds(6));
   }
 }
 
diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_proxy_unittest.cc b/third_party/blink/renderer/platform/widget/input/input_handler_proxy_unittest.cc
index 603ee49..084beab 100644
--- a/third_party/blink/renderer/platform/widget/input/input_handler_proxy_unittest.cc
+++ b/third_party/blink/renderer/platform/widget/input/input_handler_proxy_unittest.cc
@@ -528,7 +528,7 @@
   }
 
   void DeliverInputForBeginFrame() {
-    constexpr base::TimeDelta interval = base::TimeDelta::FromMilliseconds(16);
+    constexpr base::TimeDelta interval = base::Milliseconds(16);
     base::TimeTicks frame_time =
         WebInputEvent::GetStaticTimeStampForTests() +
         (next_begin_frame_number_ - viz::BeginFrameArgs::kStartingFrameNumber) *
@@ -2026,7 +2026,7 @@
   }
 
   void BeginFrame() {
-    constexpr base::TimeDelta interval = base::TimeDelta::FromMilliseconds(16);
+    constexpr base::TimeDelta interval = base::Milliseconds(16);
     base::TimeTicks frame_time =
         TimeForInputEvents() +
         (next_begin_frame_number_ - viz::BeginFrameArgs::kStartingFrameNumber) *
@@ -2744,17 +2744,17 @@
   EXPECT_CALL(mock_input_handler_, RecordScrollEnd(_)).Times(1);
 
   HandleGestureEvent(WebInputEvent::Type::kGestureScrollBegin);
-  tick_clock.Advance(base::TimeDelta::FromMicroseconds(10));
+  tick_clock.Advance(base::Microseconds(10));
   HandleGestureEvent(WebInputEvent::Type::kGestureScrollUpdate, -20);
-  tick_clock.Advance(base::TimeDelta::FromMicroseconds(40));
+  tick_clock.Advance(base::Microseconds(40));
   HandleGestureEvent(WebInputEvent::Type::kGestureScrollUpdate, -40);
-  tick_clock.Advance(base::TimeDelta::FromMicroseconds(20));
+  tick_clock.Advance(base::Microseconds(20));
   HandleGestureEvent(WebInputEvent::Type::kGestureScrollUpdate, -10);
-  tick_clock.Advance(base::TimeDelta::FromMicroseconds(10));
+  tick_clock.Advance(base::Microseconds(10));
   HandleGestureEvent(WebInputEvent::Type::kGestureScrollEnd);
 
   // Dispatch all queued events.
-  tick_clock.Advance(base::TimeDelta::FromMicroseconds(70));
+  tick_clock.Advance(base::Microseconds(70));
   DeliverInputForBeginFrame();
   EXPECT_EQ(0ul, event_queue().size());
   EXPECT_EQ(5ul, event_disposition_recorder_.size());
@@ -3181,15 +3181,15 @@
       .WillOnce(testing::Return(scroll_result_did_scroll_));
 
   // No prediction when start with a GSB
-  tick_clock.Advance(base::TimeDelta::FromMilliseconds(8));
+  tick_clock.Advance(base::Milliseconds(8));
   HandleGestureEvent(WebInputEvent::Type::kGestureScrollBegin);
   DeliverInputForBeginFrame();
   EXPECT_FALSE(GestureScrollEventPredictionAvailable());
 
   // Test predictor returns last GSU delta.
-  tick_clock.Advance(base::TimeDelta::FromMilliseconds(8));
+  tick_clock.Advance(base::Milliseconds(8));
   HandleGestureEvent(WebInputEvent::Type::kGestureScrollUpdate, -20);
-  tick_clock.Advance(base::TimeDelta::FromMilliseconds(8));
+  tick_clock.Advance(base::Milliseconds(8));
   HandleGestureEvent(WebInputEvent::Type::kGestureScrollUpdate, -15);
   DeliverInputForBeginFrame();
   auto result = GestureScrollEventPredictionAvailable();
@@ -3212,7 +3212,7 @@
       mock_input_handler_,
       RecordScrollBegin(_, cc::ScrollBeginThreadState::kScrollingOnCompositor))
       .Times(1);
-  tick_clock.Advance(base::TimeDelta::FromMilliseconds(8));
+  tick_clock.Advance(base::Milliseconds(8));
   HandleGestureEvent(WebInputEvent::Type::kGestureScrollBegin);
   DeliverInputForBeginFrame();
   EXPECT_FALSE(GestureScrollEventPredictionAvailable());
@@ -3934,7 +3934,7 @@
   }
 
   void AdvanceClock(uint32_t milliseconds) {
-    tick_clock_.Advance(base::TimeDelta::FromMilliseconds(milliseconds));
+    tick_clock_.Advance(base::Milliseconds(milliseconds));
   }
 
   void AddNonJankyEvents(uint32_t count) {
@@ -3946,7 +3946,7 @@
   }
 
   void DeliverInputForBeginFrame() {
-    constexpr base::TimeDelta interval = base::TimeDelta::FromMilliseconds(16);
+    constexpr base::TimeDelta interval = base::Milliseconds(16);
     base::TimeTicks frame_time =
         base::TimeTicks() +
         (next_begin_frame_number_ - viz::BeginFrameArgs::kStartingFrameNumber) *
diff --git a/third_party/blink/renderer/platform/widget/input/main_thread_event_queue.cc b/third_party/blink/renderer/platform/widget/input/main_thread_event_queue.cc
index 050f800..05755f7 100644
--- a/third_party/blink/renderer/platform/widget/input/main_thread_event_queue.cc
+++ b/third_party/blink/renderer/platform/widget/input/main_thread_event_queue.cc
@@ -19,8 +19,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kMaxRafDelay =
-    base::TimeDelta::FromMilliseconds(5 * 1000);
+constexpr base::TimeDelta kMaxRafDelay = base::Milliseconds(5 * 1000);
 
 class QueuedClosure : public MainThreadEventQueueTask {
  public:
@@ -43,8 +42,7 @@
 
 // Time interval at which touchmove events during scroll will be skipped
 // during rAF signal.
-constexpr base::TimeDelta kAsyncTouchMoveInterval =
-    base::TimeDelta::FromMilliseconds(200);
+constexpr base::TimeDelta kAsyncTouchMoveInterval = base::Milliseconds(200);
 
 }  // namespace
 
diff --git a/third_party/blink/renderer/platform/widget/input/main_thread_event_queue_unittest.cc b/third_party/blink/renderer/platform/widget/input/main_thread_event_queue_unittest.cc
index 756693b..56f4ac2 100644
--- a/third_party/blink/renderer/platform/widget/input/main_thread_event_queue_unittest.cc
+++ b/third_party/blink/renderer/platform/widget/input/main_thread_event_queue_unittest.cc
@@ -26,7 +26,7 @@
 namespace {
 
 // Simulate a 16ms frame signal.
-const base::TimeDelta kFrameInterval = base::TimeDelta::FromMilliseconds(16);
+const base::TimeDelta kFrameInterval = base::Milliseconds(16);
 
 bool Equal(const WebTouchEvent& lhs, const WebTouchEvent& rhs) {
   auto tie = [](const WebTouchEvent& e) {
diff --git a/third_party/blink/renderer/platform/widget/input/momentum_scroll_jank_tracker.h b/third_party/blink/renderer/platform/widget/input/momentum_scroll_jank_tracker.h
index 382c1ab..a29b6028 100644
--- a/third_party/blink/renderer/platform/widget/input/momentum_scroll_jank_tracker.h
+++ b/third_party/blink/renderer/platform/widget/input/momentum_scroll_jank_tracker.h
@@ -29,8 +29,7 @@
   // The amount of time elapsed between coalescing an event and dispatching the
   // event for which we consider the coalescing to be "recent" for the purposes
   // of https://crbug.com/952930.
-  static constexpr base::TimeDelta kRecentEventCutoff =
-      base::TimeDelta::FromMilliseconds(2);
+  static constexpr base::TimeDelta kRecentEventCutoff = base::Milliseconds(2);
 
   // |jank_count_| is the number of coalesced momentum input events above
   // kExptectedMomentumEventsPerFrame.
diff --git a/third_party/blink/renderer/platform/widget/input/scroll_predictor_unittest.cc b/third_party/blink/renderer/platform/widget/input/scroll_predictor_unittest.cc
index 326b098..6f5f31ffe 100644
--- a/third_party/blink/renderer/platform/widget/input/scroll_predictor_unittest.cc
+++ b/third_party/blink/renderer/platform/widget/input/scroll_predictor_unittest.cc
@@ -52,7 +52,7 @@
     auto gesture = std::make_unique<WebGestureEvent>(
         WebInputEvent::Type::kGestureScrollUpdate, WebInputEvent::kNoModifiers,
         WebInputEvent::GetStaticTimeStampForTests() +
-            base::TimeDelta::FromMillisecondsD(time_delta_in_milliseconds),
+            base::Milliseconds(time_delta_in_milliseconds),
         WebGestureDevice::kTouchscreen);
     gesture->data.scroll_update.delta_x = delta_x;
     gesture->data.scroll_update.delta_y = delta_y;
@@ -87,12 +87,11 @@
         base::TimeTicks(), base::NullCallback(), nullptr);
     event_with_callback->original_events() = std::move(original_events_);
 
-    base::TimeDelta frame_interval =
-        base::TimeDelta::FromSecondsD(1.0f / display_refresh_rate);
+    base::TimeDelta frame_interval = base::Seconds(1.0f / display_refresh_rate);
     event_with_callback = scroll_predictor_->ResampleScrollEvents(
         std::move(event_with_callback),
         WebInputEvent::GetStaticTimeStampForTests() +
-            base::TimeDelta::FromMillisecondsD(time_delta_in_milliseconds),
+            base::Milliseconds(time_delta_in_milliseconds),
         frame_interval);
 
     event = event_with_callback->event().Clone();
@@ -100,9 +99,8 @@
 
   std::unique_ptr<ui::InputPredictor::InputData> PredictionAvailable(
       double time_delta_in_milliseconds = 0) {
-    base::TimeTicks frame_time =
-        WebInputEvent::GetStaticTimeStampForTests() +
-        base::TimeDelta::FromMillisecondsD(time_delta_in_milliseconds);
+    base::TimeTicks frame_time = WebInputEvent::GetStaticTimeStampForTests() +
+                                 base::Milliseconds(time_delta_in_milliseconds);
     // Tests with 60Hz.
     return scroll_predictor_->predictor_->GeneratePrediction(frame_time);
   }
@@ -361,7 +359,7 @@
                      ->data.scroll_update.delta_y);
   EXPECT_EQ(
       WebInputEvent::GetStaticTimeStampForTests() +
-          base::TimeDelta::FromMillisecondsD(8 /* ms */),
+          base::Milliseconds(8 /* ms */),
       static_cast<const WebGestureEvent*>(gesture_update.get())->TimeStamp());
 
   // Send 2nd GSU, no prediction available, event aligned at original timestamp.
@@ -371,7 +369,7 @@
                      ->data.scroll_update.delta_y);
   EXPECT_EQ(
       WebInputEvent::GetStaticTimeStampForTests() +
-          base::TimeDelta::FromMillisecondsD(16 /* ms */),
+          base::Milliseconds(16 /* ms */),
       static_cast<const WebGestureEvent*>(gesture_update.get())->TimeStamp());
   EXPECT_FALSE(PredictionAvailable(24 /* ms */));
 
@@ -383,7 +381,7 @@
                      ->data.scroll_update.delta_y);
   EXPECT_EQ(
       WebInputEvent::GetStaticTimeStampForTests() +
-          base::TimeDelta::FromMillisecondsD(32 /* ms */),
+          base::Milliseconds(32 /* ms */),
       static_cast<const WebGestureEvent*>(gesture_update.get())->TimeStamp());
   auto result = PredictionAvailable(32 /* ms */);
   EXPECT_TRUE(result);
@@ -395,7 +393,7 @@
                      ->data.scroll_update.delta_y);
   EXPECT_EQ(
       WebInputEvent::GetStaticTimeStampForTests() +
-          base::TimeDelta::FromMillisecondsD(40 /* ms */),
+          base::Milliseconds(40 /* ms */),
       static_cast<const WebGestureEvent*>(gesture_update.get())->TimeStamp());
   result = PredictionAvailable(40 /* ms */);
   EXPECT_TRUE(result);
@@ -415,7 +413,7 @@
                     ->data.scroll_update.delta_y);
   EXPECT_EQ(
       WebInputEvent::GetStaticTimeStampForTests() +
-          base::TimeDelta::FromMillisecondsD(10 /* ms */),
+          base::Milliseconds(10 /* ms */),
       static_cast<const WebGestureEvent*>(gesture_update.get())->TimeStamp());
 
   // Prediction using fixed +3.3ms latency.
@@ -426,7 +424,7 @@
                       ->data.scroll_update.delta_y);
   EXPECT_EQ(
       WebInputEvent::GetStaticTimeStampForTests() +
-          base::TimeDelta::FromMillisecondsD(23.3 /* ms */),
+          base::Milliseconds(23.3 /* ms */),
       static_cast<const WebGestureEvent*>(gesture_update.get())->TimeStamp());
 
   // Test kResamplingScrollEventsExperimentalLatencyVariable
@@ -440,7 +438,7 @@
                     ->data.scroll_update.delta_y);
   EXPECT_EQ(
       WebInputEvent::GetStaticTimeStampForTests() +
-          base::TimeDelta::FromMillisecondsD(10 /* ms */),
+          base::Milliseconds(10 /* ms */),
       static_cast<const WebGestureEvent*>(gesture_update.get())->TimeStamp());
 
   // Prediction at 60Hz: uses experimental latency of 0.5 * 1/60 seconds.
@@ -452,7 +450,7 @@
                       ->data.scroll_update.delta_y);
   EXPECT_EQ(
       WebInputEvent::GetStaticTimeStampForTests() +
-          base::TimeDelta::FromMillisecondsD(10 + 10 - 5 + 8.333 /* ms */),
+          base::Milliseconds(10 + 10 - 5 + 8.333 /* ms */),
       static_cast<const WebGestureEvent*>(gesture_update.get())->TimeStamp());
 }
 
diff --git a/third_party/blink/renderer/platform/widget/input/widget_input_handler_manager.cc b/third_party/blink/renderer/platform/widget/input/widget_input_handler_manager.cc
index e0351db..1d92ede 100644
--- a/third_party/blink/renderer/platform/widget/input/widget_input_handler_manager.cc
+++ b/third_party/blink/renderer/platform/widget/input/widget_input_handler_manager.cc
@@ -48,8 +48,7 @@
 // To avoid blocking the main thread, we need a timer to send the data
 // intermittently. The time delay of the timer is 10X of the threshold of
 // long tasks which block the main thread 50 ms or longer.
-const base::TimeDelta kEventCountsTimerDelay =
-    base::TimeDelta::FromMilliseconds(500);
+const base::TimeDelta kEventCountsTimerDelay = base::Milliseconds(500);
 
 mojom::blink::DidOverscrollParamsPtr ToDidOverscrollParams(
     const InputHandlerProxy::DidOverscrollParams* overscroll_params) {
diff --git a/third_party/blink/renderer/platform/wtf/date_math.cc b/third_party/blink/renderer/platform/wtf/date_math.cc
index ecd868b..ec0cf240 100644
--- a/third_party/blink/renderer/platform/wtf/date_math.cc
+++ b/third_party/blink/renderer/platform/wtf/date_math.cc
@@ -718,8 +718,7 @@
   UErrorCode status = U_ZERO_ERROR;
   timezone->getOffset(ms, false, raw_offset, dst_offset, status);
   DCHECK(U_SUCCESS(status));
-  return base::TimeDelta::FromMillisecondsD(
-      ms + static_cast<double>(raw_offset + dst_offset));
+  return base::Milliseconds(ms + static_cast<double>(raw_offset + dst_offset));
 }
 
 }  // namespace WTF
diff --git a/third_party/leveldatabase/env_chromium.cc b/third_party/leveldatabase/env_chromium.cc
index b9181f1..565b970 100644
--- a/third_party/leveldatabase/env_chromium.cc
+++ b/third_party/leveldatabase/env_chromium.cc
@@ -60,7 +60,7 @@
 
 // The maximum time for the |Retrier| to indicate that an operation should
 // be retried.
-constexpr auto kMaxRetryDuration = base::TimeDelta::FromMilliseconds(1000);
+constexpr auto kMaxRetryDuration = base::Milliseconds(1000);
 
 const FilePath::CharType table_extension[] = FILE_PATH_LITERAL(".ldb");
 
@@ -91,7 +91,7 @@
       : start_(base::subtle::TimeTicksNowIgnoringOverride()),
         limit_(start_ + kMaxRetryDuration),
         last_(start_),
-        time_to_sleep_(base::TimeDelta::FromMilliseconds(10)) {}
+        time_to_sleep_(base::Milliseconds(10)) {}
 
   Retrier(const Retrier&) = delete;
   Retrier& operator=(const Retrier&) = delete;
@@ -1019,7 +1019,7 @@
 
 void ChromiumEnv::SleepForMicroseconds(int micros) {
   // Round up to the next millisecond.
-  base::PlatformThread::Sleep(base::TimeDelta::FromMicroseconds(micros));
+  base::PlatformThread::Sleep(base::Microseconds(micros));
 }
 
 class Thread : public base::PlatformThread::Delegate {
diff --git a/third_party/libaddressinput/chromium/chrome_address_validator.cc b/third_party/libaddressinput/chromium/chrome_address_validator.cc
index 70ae4d2..d41a7e5 100644
--- a/third_party/libaddressinput/chromium/chrome_address_validator.cc
+++ b/third_party/libaddressinput/chromium/chrome_address_validator.cc
@@ -163,7 +163,7 @@
 AddressValidator::AddressValidator() : load_rules_listener_(nullptr) {}
 
 base::TimeDelta AddressValidator::GetBaseRetryPeriod() const {
-  return base::TimeDelta::FromSeconds(8);
+  return base::Seconds(8);
 }
 
 void AddressValidator::Validated(bool success,
diff --git a/third_party/libaddressinput/chromium/chrome_address_validator_unittest.cc b/third_party/libaddressinput/chromium/chrome_address_validator_unittest.cc
index 8b95ea5..ef488aa 100644
--- a/third_party/libaddressinput/chromium/chrome_address_validator_unittest.cc
+++ b/third_party/libaddressinput/chromium/chrome_address_validator_unittest.cc
@@ -857,7 +857,7 @@
 
    protected:
     base::TimeDelta GetBaseRetryPeriod() const override {
-      return base::TimeDelta::FromSeconds(0);
+      return base::Seconds(0);
     }
   };
 
diff --git a/third_party/libaddressinput/chromium/chrome_metadata_source.cc b/third_party/libaddressinput/chromium/chrome_metadata_source.cc
index 6bc02079..e7b9298 100644
--- a/third_party/libaddressinput/chromium/chrome_metadata_source.cc
+++ b/third_party/libaddressinput/chromium/chrome_metadata_source.cc
@@ -95,7 +95,7 @@
       network::SimpleURLLoader::Create(std::move(resource_request),
                                        traffic_annotation);
   // Limit the request duration to 5 seconds.
-  loader->SetTimeoutDuration(base::TimeDelta::FromSeconds(5));
+  loader->SetTimeoutDuration(base::Seconds(5));
 
   auto it = requests_.insert(
       requests_.begin(),
diff --git a/third_party/webrtc_overrides/rtc_base/event.cc b/third_party/webrtc_overrides/rtc_base/event.cc
index f81232c..6fd11878 100644
--- a/third_party/webrtc_overrides/rtc_base/event.cc
+++ b/third_party/webrtc_overrides/rtc_base/event.cc
@@ -34,7 +34,7 @@
     return true;
   }
 
-  return event_.TimedWait(base::TimeDelta::FromMilliseconds(give_up_after_ms));
+  return event_.TimedWait(base::Milliseconds(give_up_after_ms));
 }
 
 }  // namespace rtc
diff --git a/third_party/webrtc_overrides/task_queue_factory.cc b/third_party/webrtc_overrides/task_queue_factory.cc
index 8c5ef9c2..0f533feb 100644
--- a/third_party/webrtc_overrides/task_queue_factory.cc
+++ b/third_party/webrtc_overrides/task_queue_factory.cc
@@ -122,13 +122,13 @@
         FROM_HERE,
         base::BindOnce(&WebrtcTaskQueue::ResumeAndRunTask,
                        base::Unretained(this), is_active_, std::move(task)),
-        base::TimeDelta::FromMilliseconds(milliseconds));
+        base::Milliseconds(milliseconds));
   } else {
     task_runner_->PostDelayedTask(
         FROM_HERE,
         base::BindOnce(&WebrtcTaskQueue::RunTask, base::Unretained(this),
                        is_active_, std::move(task)),
-        base::TimeDelta::FromMilliseconds(milliseconds));
+        base::Milliseconds(milliseconds));
   }
 }
 
diff --git a/third_party/zlib/google/zip_unittest.cc b/third_party/zlib/google/zip_unittest.cc
index daaad21..d10ec05 100644
--- a/third_party/zlib/google/zip_unittest.cc
+++ b/third_party/zlib/google/zip_unittest.cc
@@ -646,7 +646,7 @@
   EXPECT_TRUE(zip::Zip({.src_dir = src_dir,
                         .dest_file = zip_file,
                         .progress_callback = std::move(progress_callback),
-                        .progress_period = base::TimeDelta::FromHours(1)}));
+                        .progress_period = base::Hours(1)}));
 
   // We expect only 2 progress reports: the first one, and the last one.
   EXPECT_EQ(progress_count, 2);
diff --git a/tools/android/io_benchmark/io_benchmark.cc b/tools/android/io_benchmark/io_benchmark.cc
index de89809..b028846 100644
--- a/tools/android/io_benchmark/io_benchmark.cc
+++ b/tools/android/io_benchmark/io_benchmark.cc
@@ -96,7 +96,7 @@
     // Sleeping, as posix_fadvise() is asynchronous. On the other hand, we
     // don't need to sleep for too long, as all the pages are already clean
     // after the fsync() above, so no writeback is required here.
-    base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(1));
+    base::PlatformThread::Sleep(base::Seconds(1));
   }
 
   // Read.
@@ -198,7 +198,7 @@
     std::string path = base::StringPrintf("%s-noisy_neighbor-%d", filename, i);
     noisy_neighbors.emplace_back(
         [=]() { RandomlyReadWrite(should_stop_ptr, path, i); });
-    base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(2));
+    base::PlatformThread::Sleep(base::Seconds(2));
   }
 
   for (int i = 0; i < 12; i++) {  // Max 1 << 11 pages = 8MiB.
diff --git a/tools/ipc_fuzzer/message_replay/replay_process.cc b/tools/ipc_fuzzer/message_replay/replay_process.cc
index a985a25..13697fc 100644
--- a/tools/ipc_fuzzer/message_replay/replay_process.cc
+++ b/tools/ipc_fuzzer/message_replay/replay_process.cc
@@ -178,7 +178,7 @@
 
 void ReplayProcess::Run() {
   base::RepeatingTimer timer;
-  timer.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(1),
+  timer.Start(FROM_HERE, base::Milliseconds(1),
               base::BindRepeating(&ReplayProcess::SendNextMessage,
                                   base::Unretained(this)));
   base::RunLoop().Run();
diff --git a/tools/mac/power/power_sampler/sampling_controller_unittest.cc b/tools/mac/power/power_sampler/sampling_controller_unittest.cc
index e93454b..faf4249 100644
--- a/tools/mac/power/power_sampler/sampling_controller_unittest.cc
+++ b/tools/mac/power/power_sampler/sampling_controller_unittest.cc
@@ -103,7 +103,7 @@
 
   last_seen_samples.clear();
 
-  task_environment.FastForwardBy(base::TimeDelta::FromMilliseconds(1500));
+  task_environment.FastForwardBy(base::Milliseconds(1500));
   base::TimeTicks second_now = base::TimeTicks::Now();
   // Terminate the sampling session on the next sample.
   EXPECT_CALL(*monitor, OnSample(second_now, _))
diff --git a/ui/accelerated_widget_mac/ca_transaction_observer.mm b/ui/accelerated_widget_mac/ca_transaction_observer.mm
index 03bdf5f..d0006f48 100644
--- a/ui/accelerated_widget_mac/ca_transaction_observer.mm
+++ b/ui/accelerated_widget_mac/ca_transaction_observer.mm
@@ -28,7 +28,7 @@
 
 namespace {
 NSString* kRunLoopMode = @"Chrome CATransactionCoordinator commit handler";
-constexpr auto kPostCommitTimeout = base::TimeDelta::FromMilliseconds(50);
+constexpr auto kPostCommitTimeout = base::Milliseconds(50);
 }  // namespace
 
 CATransactionCoordinator& CATransactionCoordinator::Get() {
@@ -78,7 +78,7 @@
       break;  // success
 
     base::TimeDelta time_left = deadline - clock->NowTicks();
-    if (time_left <= base::TimeDelta::FromSeconds(0))
+    if (time_left <= base::Seconds(0))
       break;  // timeout
 
     ui::WindowResizeHelperMac::Get()->WaitForSingleTaskToRun(time_left);
@@ -101,7 +101,7 @@
       break;  // success
 
     base::TimeDelta time_left = deadline - clock->NowTicks();
-    if (time_left <= base::TimeDelta::FromSeconds(0))
+    if (time_left <= base::Seconds(0))
       break;  // timeout
 
     ui::WindowResizeHelperMac::Get()->WaitForSingleTaskToRun(time_left);
diff --git a/ui/accelerated_widget_mac/window_resize_helper_mac.cc b/ui/accelerated_widget_mac/window_resize_helper_mac.cc
index 776761a3..2e25d321 100644
--- a/ui/accelerated_widget_mac/window_resize_helper_mac.cc
+++ b/ui/accelerated_widget_mac/window_resize_helper_mac.cc
@@ -234,7 +234,7 @@
     // Calculate how much time we have left before we have to stop waiting or
     // until a currently-enqueued task will be ready to run.
     base::TimeDelta max_sleep_time = next_task_time - current_time;
-    if (max_sleep_time <= base::TimeDelta::FromMilliseconds(0))
+    if (max_sleep_time <= base::Milliseconds(0))
       break;
 
     event_timed_wait_callback_.Run(&event_, max_sleep_time);
diff --git a/ui/android/delegated_frame_host_android.h b/ui/android/delegated_frame_host_android.h
index c7109d60..9affcac 100644
--- a/ui/android/delegated_frame_host_android.h
+++ b/ui/android/delegated_frame_host_android.h
@@ -65,7 +65,7 @@
   // display a placeholder for a longer period of time is preferable to drawing
   // nothing, and the first frame can take a while on low-end systems.
   static constexpr base::TimeDelta FirstFrameTimeout() {
-    return base::TimeDelta::FromSeconds(5);
+    return base::Seconds(5);
   }
   static int64_t FirstFrameTimeoutFrames() {
     return TimeDeltaToFrames(FirstFrameTimeout());
@@ -77,7 +77,7 @@
   // stops waiting. Otherwise a rotated version of the previous frame will be
   // displayed with a large black region where there is no content yet.
   static constexpr base::TimeDelta ResizeTimeout() {
-    return base::TimeDelta::FromMilliseconds(175);
+    return base::Milliseconds(175);
   }
   static int64_t ResizeTimeoutFrames() {
     return TimeDeltaToFrames(ResizeTimeout());
diff --git a/ui/android/edge_effect.cc b/ui/android/edge_effect.cc
index bc09abc4..5647fc3 100644
--- a/ui/android/edge_effect.cc
+++ b/ui/android/edge_effect.cc
@@ -136,7 +136,7 @@
   state_ = STATE_PULL;
 
   start_time_ = current_time;
-  duration_ = base::TimeDelta::FromMilliseconds(kPullTimeMs);
+  duration_ = base::Milliseconds(kPullTimeMs);
 
   float abs_delta_distance = std::abs(delta_distance);
   pull_distance_ += delta_distance;
@@ -172,7 +172,7 @@
   glow_scale_y_finish_ = 0.f;
 
   start_time_ = current_time;
-  duration_ = base::TimeDelta::FromMilliseconds(kRecedeTimeMs);
+  duration_ = base::Milliseconds(kRecedeTimeMs);
 }
 
 void EdgeEffect::Absorb(base::TimeTicks current_time, float velocity) {
@@ -182,7 +182,7 @@
 
   start_time_ = current_time;
   // This should never be less than 1 millisecond.
-  duration_ = base::TimeDelta::FromMilliseconds(0.15f + (velocity * 0.02f));
+  duration_ = base::Milliseconds(0.15f + (velocity * 0.02f));
 
   // The glow depends more on the velocity, and therefore starts out
   // nearly invisible.
@@ -216,7 +216,7 @@
       case STATE_ABSORB:
         state_ = STATE_RECEDE;
         start_time_ = current_time;
-        duration_ = base::TimeDelta::FromMilliseconds(kRecedeTimeMs);
+        duration_ = base::Milliseconds(kRecedeTimeMs);
 
         glow_alpha_start_ = glow_alpha_;
         glow_scale_y_start_ = glow_scale_y_;
@@ -227,7 +227,7 @@
       case STATE_PULL:
         state_ = STATE_PULL_DECAY;
         start_time_ = current_time;
-        duration_ = base::TimeDelta::FromMilliseconds(kPullDecayTimeMs);
+        duration_ = base::Milliseconds(kPullDecayTimeMs);
 
         glow_alpha_start_ = glow_alpha_;
         glow_scale_y_start_ = glow_scale_y_;
diff --git a/ui/aura/gestures/gesture_recognizer_unittest.cc b/ui/aura/gestures/gesture_recognizer_unittest.cc
index 26555d7..f513413 100644
--- a/ui/aura/gestures/gesture_recognizer_unittest.cc
+++ b/ui/aura/gestures/gesture_recognizer_unittest.cc
@@ -477,24 +477,21 @@
  public:
   // Use a non-zero start time to pass DCHECKs which ensure events have had a
   // time assigned.
-  TimedEvents() {
-    tick_clock_.Advance(base::TimeDelta::FromMilliseconds(1));
-  }
+  TimedEvents() { tick_clock_.Advance(base::Milliseconds(1)); }
 
   base::TimeTicks Now() {
     base::TimeTicks t = tick_clock_.NowTicks();
-    tick_clock_.Advance(base::TimeDelta::FromMilliseconds(1));
+    tick_clock_.Advance(base::Milliseconds(1));
     return t;
   }
 
   base::TimeTicks LeapForward(int time_in_millis) {
-    tick_clock_.Advance(base::TimeDelta::FromMilliseconds(time_in_millis));
+    tick_clock_.Advance(base::Milliseconds(time_in_millis));
     return tick_clock_.NowTicks();
   }
 
   base::TimeTicks InFuture(int time_in_millis) {
-    return tick_clock_.NowTicks() +
-        base::TimeDelta::FromMilliseconds(time_in_millis);
+    return tick_clock_.NowTicks() + base::Milliseconds(time_in_millis);
   }
 
   void SendScrollEvents(ui::EventSink* sink,
@@ -517,7 +514,7 @@
           ui::PointerDetails(ui::EventPointerType::kTouch, touch_id));
       ui::EventDispatchDetails details = sink->OnEventFromSource(&move);
       ASSERT_FALSE(details.dispatcher_destroyed);
-      tick_clock_.Advance(base::TimeDelta::FromMilliseconds(time_step_ms));
+      tick_clock_.Advance(base::Milliseconds(time_step_ms));
     }
   }
 
@@ -1188,7 +1185,7 @@
     ui::TouchEvent release(
         ui::ET_TOUCH_RELEASED,
         gfx::Point(kPositionX + kScrollAmount, kPositionY + kScrollAmount),
-        press.time_stamp() + base::TimeDelta::FromMilliseconds(50),
+        press.time_stamp() + base::Milliseconds(50),
         ui::PointerDetails(ui::EventPointerType::kTouch, kTouchId));
     DispatchEventUsingWindowDispatcher(&release);
     EXPECT_EQ(
@@ -1782,7 +1779,7 @@
   queued_delegate->Reset();
   ui::TouchEvent release(
       ui::ET_TOUCH_RELEASED, gfx::Point(101, 201),
-      press.time_stamp() + base::TimeDelta::FromMilliseconds(50),
+      press.time_stamp() + base::Milliseconds(50),
       ui::PointerDetails(ui::EventPointerType::kTouch, kTouchId1));
   DispatchEventUsingWindowDispatcher(&release);
   EXPECT_FALSE(queued_delegate->tap());
@@ -2510,9 +2507,7 @@
   const gfx::Point end(150, 150);
   const gfx::Vector2d window_offset =
       window->bounds().origin().OffsetFromOrigin();
-  generator.GestureScrollSequence(begin, end,
-                                  base::TimeDelta::FromMilliseconds(20),
-                                  10);
+  generator.GestureScrollSequence(begin, end, base::Milliseconds(20), 10);
   EXPECT_EQ((begin - window_offset).ToString(),
             delegate.scroll_begin_position().ToString());
   EXPECT_EQ((end - window_offset).ToString(),
diff --git a/ui/aura/native_window_occlusion_tracker_win.cc b/ui/aura/native_window_occlusion_tracker_win.cc
index 0922a33..ddd8e9a 100644
--- a/ui/aura/native_window_occlusion_tracker_win.cc
+++ b/ui/aura/native_window_occlusion_tracker_win.cc
@@ -34,8 +34,7 @@
 namespace {
 
 // ~16 ms = time between frames when frame rate is 60 FPS.
-const base::TimeDelta kUpdateOcclusionDelay =
-    base::TimeDelta::FromMilliseconds(16);
+const base::TimeDelta kUpdateOcclusionDelay = base::Milliseconds(16);
 
 // This global variable can be accessed only on main thread.
 NativeWindowOcclusionTrackerWin* g_tracker = nullptr;
diff --git a/ui/aura/window_event_dispatcher_unittest.cc b/ui/aura/window_event_dispatcher_unittest.cc
index bb93010..1c29455 100644
--- a/ui/aura/window_event_dispatcher_unittest.cc
+++ b/ui/aura/window_event_dispatcher_unittest.cc
@@ -1092,7 +1092,7 @@
 
   ui::test::EventGenerator generator(root_window());
   generator.GestureScrollSequence(gfx::Point(60, 60), gfx::Point(10, 60),
-                                  base::TimeDelta::FromMilliseconds(100), 25);
+                                  base::Milliseconds(100), 25);
 
   // |handler| will have reset |filter| and started holding the touch-move
   // events when scrolling started. At the end of the scroll (i.e. upon
@@ -1763,8 +1763,7 @@
 
   ui::test::EventGenerator scroll_generator(root_window(), repost_target.get());
   scroll_generator.GestureScrollSequence(
-      gfx::Point(80, 80), gfx::Point(100, 100),
-      base::TimeDelta::FromMilliseconds(100), 3);
+      gfx::Point(80, 80), gfx::Point(100, 100), base::Milliseconds(100), 3);
   RunAllPendingInMessageLoop();
 
   int tap_down_count = 0;
@@ -2530,7 +2529,7 @@
 
   ui::test::EventGenerator generator(root_window());
   generator.GestureScrollSequence(gfx::Point(120, 120), gfx::Point(20, 120),
-                                  base::TimeDelta::FromMilliseconds(100), 25);
+                                  base::Milliseconds(100), 25);
 
   // |handler| will have reset |filter| and started holding the touch-move
   // events when scrolling started. At the end of the scroll (i.e. upon
@@ -3047,10 +3046,10 @@
   recorder.Reset();
 
   // Delay the release to avoid fling generation.
-  ui::TouchEvent release(
-      ui::ET_TOUCH_RELEASED, location + gfx::Vector2d(200, 200),
-      ui::EventTimeForNow() + base::TimeDelta::FromSeconds(1),
-      ui::PointerDetails(ui::EventPointerType::kTouch, 0));
+  ui::TouchEvent release(ui::ET_TOUCH_RELEASED,
+                         location + gfx::Vector2d(200, 200),
+                         ui::EventTimeForNow() + base::Seconds(1),
+                         ui::PointerDetails(ui::EventPointerType::kTouch, 0));
   DispatchEventUsingWindowDispatcher(&release);
   EXPECT_TRUE(recorder.LastTouchMayCauseScrolling());
   EXPECT_TRUE(recorder.HasReceivedEvent(ui::ET_TOUCH_RELEASED));
diff --git a/ui/aura/window_occlusion_tracker_unittest.cc b/ui/aura/window_occlusion_tracker_unittest.cc
index af30968..85537a5 100644
--- a/ui/aura/window_occlusion_tracker_unittest.cc
+++ b/ui/aura/window_occlusion_tracker_unittest.cc
@@ -32,7 +32,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kTransitionDuration = base::TimeDelta::FromSeconds(3);
+constexpr base::TimeDelta kTransitionDuration = base::Seconds(3);
 
 class MockWindowDelegate : public test::ColorTestWindowDelegate {
  public:
diff --git a/ui/aura/window_unittest.cc b/ui/aura/window_unittest.cc
index b331431..f941886 100644
--- a/ui/aura/window_unittest.cc
+++ b/ui/aura/window_unittest.cc
@@ -1110,7 +1110,7 @@
 
   // On move We will get TOUCH_MOVED, GESTURE_TAP_CANCEL,
   // GESTURE_SCROLL_START and GESTURE_SCROLL_UPDATE.
-  time += base::TimeDelta::FromMilliseconds(kTimeDelta);
+  time += base::Milliseconds(kTimeDelta);
   ui::TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(10, 20), time,
                       ui::PointerDetails(ui::EventPointerType::kTouch, 0));
   DispatchEventUsingWindowDispatcher(&move);
@@ -1125,7 +1125,7 @@
   delegate.ResetCounts();
 
   // On move we still get TOUCH_MOVED and GESTURE_SCROLL_UPDATE.
-  time += base::TimeDelta::FromMilliseconds(kTimeDelta);
+  time += base::Milliseconds(kTimeDelta);
   ui::TouchEvent move2(ui::ET_TOUCH_MOVED, gfx::Point(10, 30), time,
                        ui::PointerDetails(ui::EventPointerType::kTouch, 0));
   DispatchEventUsingWindowDispatcher(&move2);
@@ -1134,7 +1134,7 @@
   delegate.ResetCounts();
 
   // And on release we get TOUCH_RELEASED, GESTURE_SCROLL_END, GESTURE_END
-  time += base::TimeDelta::FromMilliseconds(kTimeDelta);
+  time += base::Milliseconds(kTimeDelta);
   ui::TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(10, 20), time,
                          ui::PointerDetails(ui::EventPointerType::kTouch, 0));
   DispatchEventUsingWindowDispatcher(&release);
@@ -1960,7 +1960,7 @@
   base::TimeTicks start_time =
       w1->layer()->GetAnimator()->last_step_time();
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(1000));
+  animator->Step(start_time + base::Milliseconds(1000));
 
   EXPECT_EQ("0,0 100x100", w1->bounds().ToString());
 }
@@ -2902,7 +2902,7 @@
   ui::ScopedAnimationDurationScaleMode test_duration_mode(
       ui::ScopedAnimationDurationScaleMode::NON_ZERO_DURATION);
   ui::ScopedLayerAnimationSettings settings1(child.layer()->GetAnimator());
-  settings1.SetTransitionDuration(base::TimeDelta::FromMilliseconds(100));
+  settings1.SetTransitionDuration(base::Milliseconds(100));
   gfx::Rect new_bounds(gfx::Rect(35, 35, 50, 50));
   child.SetBounds(new_bounds);
 
@@ -3080,7 +3080,7 @@
   base::TimeTicks start_time =
       window->layer()->GetAnimator()->last_step_time();
   ui::LayerAnimator* animator = window->layer()->GetAnimator();
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(1000));
+  animator->Step(start_time + base::Milliseconds(1000));
   EXPECT_TRUE(delegate.bounds_changed());
   EXPECT_NE("0,0 100x100", window->bounds().ToString());
 }
@@ -3121,7 +3121,7 @@
   base::TimeTicks start_time =
       window->layer()->GetAnimator()->last_step_time();
   ui::LayerAnimator* animator = window->layer()->GetAnimator();
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(1000));
+  animator->Step(start_time + base::Milliseconds(1000));
 
   // No bounds changed notification at the end of animation since layer
   // delegate is NULL.
diff --git a/ui/base/accelerators/accelerator_unittest.cc b/ui/base/accelerators/accelerator_unittest.cc
index c87f8a43..4d23005 100644
--- a/ui/base/accelerators/accelerator_unittest.cc
+++ b/ui/base/accelerators/accelerator_unittest.cc
@@ -31,8 +31,7 @@
   const Accelerator accelerator_a(VKEY_A, EF_NONE);
   EXPECT_EQ(base::TimeTicks(), accelerator_a.time_stamp());
 
-  const base::TimeTicks event_time =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(1);
+  const base::TimeTicks event_time = base::TimeTicks() + base::Milliseconds(1);
   KeyEvent keyevent(ET_KEY_PRESSED, VKEY_SPACE, EF_NONE, event_time);
 
   const Accelerator accelerator_b(keyevent);
diff --git a/ui/base/accelerators/mojom/accelerator_mojom_traits_unittest.cc b/ui/base/accelerators/mojom/accelerator_mojom_traits_unittest.cc
index f3c6c446..571dbcd 100644
--- a/ui/base/accelerators/mojom/accelerator_mojom_traits_unittest.cc
+++ b/ui/base/accelerators/mojom/accelerator_mojom_traits_unittest.cc
@@ -12,10 +12,9 @@
 namespace ui {
 
 TEST(AcceleratorStructTraitsTest, SerializeAndDeserialize1) {
-  Accelerator accelerator(
-      KeyboardCode::VKEY_TAB, EF_NUM_LOCK_ON,
-      ui::Accelerator::KeyState::RELEASED,
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(1));
+  Accelerator accelerator(KeyboardCode::VKEY_TAB, EF_NUM_LOCK_ON,
+                          ui::Accelerator::KeyState::RELEASED,
+                          base::TimeTicks() + base::Milliseconds(1));
   Accelerator deserialized;
   ASSERT_TRUE(mojom::Accelerator::Deserialize(
       mojom::Accelerator::Serialize(&accelerator), &deserialized));
diff --git a/ui/base/class_property.h b/ui/base/class_property.h
index 88b4938..1ee9a32f 100644
--- a/ui/base/class_property.h
+++ b/ui/base/class_property.h
@@ -190,9 +190,7 @@
 class ClassPropertyCaster<base::TimeDelta> {
  public:
   static int64_t ToInt64(base::TimeDelta x) { return x.InMicroseconds(); }
-  static base::TimeDelta FromInt64(int64_t x) {
-    return base::TimeDelta::FromMicroseconds(x);
-  }
+  static base::TimeDelta FromInt64(int64_t x) { return base::Microseconds(x); }
 };
 
 namespace subtle {
diff --git a/ui/base/clipboard/clipboard_ozone.cc b/ui/base/clipboard/clipboard_ozone.cc
index 384e4a8..0c246a71 100644
--- a/ui/base/clipboard/clipboard_ozone.cc
+++ b/ui/base/clipboard/clipboard_ozone.cc
@@ -36,7 +36,7 @@
 namespace {
 
 // The amount of time to wait for a request to complete before aborting it.
-constexpr base::TimeDelta kRequestTimeout = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kRequestTimeout = base::Seconds(1);
 
 // Depending on the backend, the platform clipboard may or may not be
 // available.  Should it be absent, we provide a dummy one.  It always calls
diff --git a/ui/base/cocoa/defaults_utils.mm b/ui/base/cocoa/defaults_utils.mm
index f3017b0..d45cc404 100644
--- a/ui/base/cocoa/defaults_utils.mm
+++ b/ui/base/cocoa/defaults_utils.mm
@@ -31,10 +31,9 @@
       period_ms > kMaximumReasonableIntervalMs) {
     *delta = base::TimeDelta();
   } else if (on_period_ms || off_period_ms) {
-    *delta = base::TimeDelta::FromMillisecondsD(
-        (on_period_ms + off_period_ms) / 2);
+    *delta = base::Milliseconds((on_period_ms + off_period_ms) / 2);
   } else {
-    *delta = base::TimeDelta::FromMilliseconds(period_ms);
+    *delta = base::Milliseconds(period_ms);
   }
   return true;
 }
diff --git a/ui/base/cursor/cursor_loader.cc b/ui/base/cursor/cursor_loader.cc
index 7529e8e..3bc7ba9f 100644
--- a/ui/base/cursor/cursor_loader.cc
+++ b/ui/base/cursor/cursor_loader.cc
@@ -26,8 +26,7 @@
 constexpr mojom::CursorType kAnimatedCursorTypes[] = {
     mojom::CursorType::kWait, mojom::CursorType::kProgress};
 
-constexpr base::TimeDelta kAnimatedCursorFrameDelay =
-    base::TimeDelta::FromMilliseconds(25);
+constexpr base::TimeDelta kAnimatedCursorFrameDelay = base::Milliseconds(25);
 
 }  // namespace
 
diff --git a/ui/base/ime/ash/ime_keyboard_impl.cc b/ui/base/ime/ash/ime_keyboard_impl.cc
index 72ed054..c5b9bf2 100644
--- a/ui/base/ime/ash/ime_keyboard_impl.cc
+++ b/ui/base/ime/ash/ime_keyboard_impl.cc
@@ -24,8 +24,8 @@
 
 bool ImeKeyboardImpl::SetAutoRepeatRate(const AutoRepeatRate& rate) {
   input_controller_->SetAutoRepeatRate(
-      base::TimeDelta::FromMilliseconds(rate.initial_delay_in_ms),
-      base::TimeDelta::FromMilliseconds(rate.repeat_interval_in_ms));
+      base::Milliseconds(rate.initial_delay_in_ms),
+      base::Milliseconds(rate.repeat_interval_in_ms));
   return true;
 }
 
diff --git a/ui/base/ime/ash/typing_session_manager.cc b/ui/base/ime/ash/typing_session_manager.cc
index 0da45b5..3903ae8 100644
--- a/ui/base/ime/ash/typing_session_manager.cc
+++ b/ui/base/ime/ash/typing_session_manager.cc
@@ -18,8 +18,7 @@
 
 const uint64_t INACTIVITY_TIMEOUT_FOR_SESSION_IN_MS = 3000;
 const uint64_t MIN_CHARACTERS_COMMITTED = 10;
-const base::TimeDelta MIN_SESSION_DURATION_IN_MS =
-    base::TimeDelta::FromSeconds(1);
+const base::TimeDelta MIN_SESSION_DURATION_IN_MS = base::Seconds(1);
 
 // TODO: We cannot assume that the time will always increase, it can decrease if
 // system clock is explicitly set. Invalidate sessions where system clock
@@ -45,8 +44,8 @@
   // If too much time has passed, then end the previous session and
   // start a new one.
   if (is_active_) {
-    if (last_user_action_time_ + base::TimeDelta::FromMilliseconds(
-                                     INACTIVITY_TIMEOUT_FOR_SESSION_IN_MS) <
+    if (last_user_action_time_ +
+            base::Milliseconds(INACTIVITY_TIMEOUT_FOR_SESSION_IN_MS) <
         current_time) {
       EndAndRecordSession();
     }
diff --git a/ui/base/ime/ash/typing_session_manager_unittest.cc b/ui/base/ime/ash/typing_session_manager_unittest.cc
index de39d7c..14de8b82 100644
--- a/ui/base/ime/ash/typing_session_manager_unittest.cc
+++ b/ui/base/ime/ash/typing_session_manager_unittest.cc
@@ -37,9 +37,9 @@
   histogram_tester.ExpectTotalCount("InputMethod.CharactersPerSession", 0);
 
   typing_session_manager_.CommitCharacters(15);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
   typing_session_manager_.CommitCharacters(20);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(2));
+  test_clock_.Advance(base::Seconds(2));
 
   typing_session_manager_.EndAndRecordSession();
 
@@ -50,10 +50,10 @@
                                       1);
 
   typing_session_manager_.CommitCharacters(25);
-  test_clock_.Advance(base::TimeDelta::FromMilliseconds(500));
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Milliseconds(500));
+  test_clock_.Advance(base::Seconds(1));
   typing_session_manager_.CommitCharacters(30);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(2));
+  test_clock_.Advance(base::Seconds(2));
 
   typing_session_manager_.EndAndRecordSession();
 
@@ -71,9 +71,9 @@
   histogram_tester.ExpectTotalCount("InputMethod.CharactersPerSession", 0);
 
   typing_session_manager_.CommitCharacters(15);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
   typing_session_manager_.CommitCharacters(20);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(4));
+  test_clock_.Advance(base::Seconds(4));
 
   typing_session_manager_.CommitCharacters(25);
 
@@ -83,10 +83,10 @@
   histogram_tester.ExpectUniqueSample("InputMethod.CharactersPerSession", 35,
                                       1);
 
-  test_clock_.Advance(base::TimeDelta::FromMilliseconds(500));
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Milliseconds(500));
+  test_clock_.Advance(base::Seconds(1));
   typing_session_manager_.CommitCharacters(30);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(4));
+  test_clock_.Advance(base::Seconds(4));
 
   typing_session_manager_.Heartbeat();
 
@@ -103,9 +103,9 @@
   histogram_tester.ExpectTotalCount("InputMethod.CharactersPerSession", 0);
 
   typing_session_manager_.CommitCharacters(1);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
   typing_session_manager_.CommitCharacters(2);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(2));
+  test_clock_.Advance(base::Seconds(2));
 
   typing_session_manager_.EndAndRecordSession();
 
@@ -113,10 +113,10 @@
   histogram_tester.ExpectTotalCount("InputMethod.CharactersPerSession", 0);
 
   typing_session_manager_.CommitCharacters(3);
-  test_clock_.Advance(base::TimeDelta::FromMilliseconds(500));
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Milliseconds(500));
+  test_clock_.Advance(base::Seconds(1));
   typing_session_manager_.CommitCharacters(4);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(2));
+  test_clock_.Advance(base::Seconds(2));
 
   typing_session_manager_.EndAndRecordSession();
 
@@ -132,19 +132,19 @@
   histogram_tester.ExpectTotalCount("InputMethod.CharactersPerSession", 0);
 
   typing_session_manager_.CommitCharacters(1);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Seconds(1));
   typing_session_manager_.CommitCharacters(2);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(4));
+  test_clock_.Advance(base::Seconds(4));
 
   typing_session_manager_.CommitCharacters(3);
 
   histogram_tester.ExpectTotalCount("InputMethod.SessionDuration", 0);
   histogram_tester.ExpectTotalCount("InputMethod.CharactersPerSession", 0);
 
-  test_clock_.Advance(base::TimeDelta::FromMilliseconds(500));
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Milliseconds(500));
+  test_clock_.Advance(base::Seconds(1));
   typing_session_manager_.CommitCharacters(4);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(4));
+  test_clock_.Advance(base::Seconds(4));
 
   typing_session_manager_.Heartbeat();
 
@@ -159,9 +159,9 @@
   histogram_tester.ExpectTotalCount("InputMethod.CharactersPerSession", 0);
 
   typing_session_manager_.CommitCharacters(15);
-  test_clock_.Advance(base::TimeDelta::FromMilliseconds(500));
+  test_clock_.Advance(base::Milliseconds(500));
   typing_session_manager_.CommitCharacters(20);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(2));
+  test_clock_.Advance(base::Seconds(2));
 
   typing_session_manager_.EndAndRecordSession();
 
@@ -169,10 +169,10 @@
   histogram_tester.ExpectTotalCount("InputMethod.CharactersPerSession", 0);
 
   typing_session_manager_.CommitCharacters(25);
-  test_clock_.Advance(base::TimeDelta::FromMilliseconds(500));
-  test_clock_.Advance(base::TimeDelta::FromSeconds(1));
+  test_clock_.Advance(base::Milliseconds(500));
+  test_clock_.Advance(base::Seconds(1));
   typing_session_manager_.CommitCharacters(30);
-  test_clock_.Advance(base::TimeDelta::FromSeconds(2));
+  test_clock_.Advance(base::Seconds(2));
 
   typing_session_manager_.EndAndRecordSession();
 
diff --git a/ui/base/ime/linux/input_method_auralinux.cc b/ui/base/ime/linux/input_method_auralinux.cc
index 7176556..81769b2a4 100644
--- a/ui/base/ime/linux/input_method_auralinux.cc
+++ b/ui/base/ime/linux/input_method_auralinux.cc
@@ -15,8 +15,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kIgnoreCommitsDuration =
-    base::TimeDelta::FromMilliseconds(100);
+constexpr base::TimeDelta kIgnoreCommitsDuration = base::Milliseconds(100);
 
 bool IsEventFromVK(const ui::KeyEvent& event) {
   if (event.HasNativeEvent())
diff --git a/ui/base/ime/win/on_screen_keyboard_display_manager_tab_tip.cc b/ui/base/ime/win/on_screen_keyboard_display_manager_tab_tip.cc
index a856874..0cbbba9 100644
--- a/ui/base/ime/win/on_screen_keyboard_display_manager_tab_tip.cc
+++ b/ui/base/ime/win/on_screen_keyboard_display_manager_tab_tip.cc
@@ -27,10 +27,9 @@
 
 namespace {
 
-constexpr base::TimeDelta kCheckOSKDelay =
-    base::TimeDelta::FromMilliseconds(1000);
+constexpr base::TimeDelta kCheckOSKDelay = base::Milliseconds(1000);
 constexpr base::TimeDelta kDismissKeyboardRetryTimeout =
-    base::TimeDelta::FromMilliseconds(100);
+    base::Milliseconds(100);
 constexpr int kDismissKeyboardMaxRetries = 5;
 
 constexpr wchar_t kOSKClassName[] = L"IPTip_Main_Window";
diff --git a/ui/base/ime/win/on_screen_keyboard_display_manager_unittest.cc b/ui/base/ime/win/on_screen_keyboard_display_manager_unittest.cc
index fd89c6f..dd2bce1 100644
--- a/ui/base/ime/win/on_screen_keyboard_display_manager_unittest.cc
+++ b/ui/base/ime/win/on_screen_keyboard_display_manager_unittest.cc
@@ -131,8 +131,7 @@
   void WaitForEventsWithTimeDelay(int64_t time_delta_ms = 10) {
     base::RunLoop run_loop;
     task_environment_.GetMainThreadTaskRunner()->PostDelayedTask(
-        FROM_HERE, run_loop.QuitClosure(),
-        base::TimeDelta::FromMilliseconds(time_delta_ms));
+        FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(time_delta_ms));
     run_loop.Run();
   }
 
diff --git a/ui/base/ime/win/virtual_keyboard_debounce_timer.cc b/ui/base/ime/win/virtual_keyboard_debounce_timer.cc
index 1caa0bf..3dc1a765 100644
--- a/ui/base/ime/win/virtual_keyboard_debounce_timer.cc
+++ b/ui/base/ime/win/virtual_keyboard_debounce_timer.cc
@@ -15,7 +15,7 @@
   // Null callback isn't a valid scenario.
   DCHECK(callback);
   callback_ = std::move(callback);
-  base::TimeDelta delay(base::TimeDelta::FromMilliseconds(delay_ms_));
+  base::TimeDelta delay(base::Milliseconds(delay_ms_));
   delay -= base::TimeTicks::Now() - time_last_run_;
   // If delay is <= 0, then it is run immediately asynchronously.
   timer_.Start(
diff --git a/ui/base/l10n/l10n_util_unittest.cc b/ui/base/l10n/l10n_util_unittest.cc
index 7347d4d..236d16f 100644
--- a/ui/base/l10n/l10n_util_unittest.cc
+++ b/ui/base/l10n/l10n_util_unittest.cc
@@ -584,7 +584,7 @@
 
   // Verify that base::TimeDurationFormat() works for all available locales:
   // http://crbug.com/707515
-  base::TimeDelta kDelta = base::TimeDelta::FromMinutes(15 * 60 + 42);
+  base::TimeDelta kDelta = base::Minutes(15 * 60 + 42);
   for (const std::string& locale : l10n_util::GetAvailableICULocales()) {
     base::i18n::SetICUDefaultLocale(locale);
     std::u16string str;
diff --git a/ui/base/prediction/input_filter_unittest_helpers.cc b/ui/base/prediction/input_filter_unittest_helpers.cc
index b02b9f0..a295dd4 100644
--- a/ui/base/prediction/input_filter_unittest_helpers.cc
+++ b/ui/base/prediction/input_filter_unittest_helpers.cc
@@ -20,7 +20,7 @@
 void InputFilterTest::TestCloneFilter() {
   gfx::PointF point;
   base::TimeTicks ts = PredictionUnittestHelpers::GetStaticTimeStampForTests();
-  base::TimeDelta delta = base::TimeDelta::FromMilliseconds(8);
+  base::TimeDelta delta = base::Milliseconds(8);
 
   for (int i = 0; i < 100; i++) {
     point.SetPoint(base::RandDouble(), base::RandDouble());
@@ -54,7 +54,7 @@
   std::vector<gfx::PointF> results;
   gfx::PointF point;
   base::TimeTicks ts = PredictionUnittestHelpers::GetStaticTimeStampForTests();
-  base::TimeDelta delta = base::TimeDelta::FromMilliseconds(8);
+  base::TimeDelta delta = base::Milliseconds(8);
 
   for (int i = 0; i < 100; i++) {
     point.SetPoint(base::RandDouble(), base::RandDouble());
diff --git a/ui/base/prediction/input_predictor.h b/ui/base/prediction/input_predictor.h
index a77491a..4c47abd 100644
--- a/ui/base/prediction/input_predictor.h
+++ b/ui/base/prediction/input_predictor.h
@@ -52,7 +52,7 @@
   // concludes that a frame-dependent latency isn't better.
   virtual std::unique_ptr<InputData> GeneratePrediction(
       base::TimeTicks predict_time,
-      base::TimeDelta frame_interval = base::TimeDelta::FromSeconds(0)) = 0;
+      base::TimeDelta frame_interval = base::Seconds(0)) = 0;
 
   // Returns the maximum of prediction available for resampling
   // before having side effects (jitter, wrong orientation, etc..)
@@ -66,22 +66,17 @@
   virtual base::TimeDelta TimeInterval() const = 0;
 
  protected:
-  static constexpr base::TimeDelta kMaxTimeDelta =
-      base::TimeDelta::FromMilliseconds(20);
+  static constexpr base::TimeDelta kMaxTimeDelta = base::Milliseconds(20);
 
   // Default time interval between events.
-  static constexpr base::TimeDelta kTimeInterval =
-      base::TimeDelta::FromMilliseconds(8);
+  static constexpr base::TimeDelta kTimeInterval = base::Milliseconds(8);
   // Minimum time interval between events.
-  static constexpr base::TimeDelta kMinTimeInterval =
-      base::TimeDelta::FromMillisecondsD(2.5);
+  static constexpr base::TimeDelta kMinTimeInterval = base::Milliseconds(2.5);
 
   // Maximum amount of prediction when resampling.
-  static constexpr base::TimeDelta kMaxResampleTime =
-      base::TimeDelta::FromMilliseconds(20);
+  static constexpr base::TimeDelta kMaxResampleTime = base::Milliseconds(20);
   // Maximum time delta for prediction.
-  static constexpr base::TimeDelta kMaxPredictionTime =
-      base::TimeDelta::FromMilliseconds(25);
+  static constexpr base::TimeDelta kMaxPredictionTime = base::Milliseconds(25);
 };
 
 }  // namespace ui
diff --git a/ui/base/prediction/input_predictor_unittest_helpers.h b/ui/base/prediction/input_predictor_unittest_helpers.h
index c39bf6ff..df5361a 100644
--- a/ui/base/prediction/input_predictor_unittest_helpers.h
+++ b/ui/base/prediction/input_predictor_unittest_helpers.h
@@ -12,8 +12,7 @@
 
 namespace ui {
 
-constexpr base::TimeDelta kExpectedDefaultTimeInterval =
-    base::TimeDelta::FromMilliseconds(8);
+constexpr base::TimeDelta kExpectedDefaultTimeInterval = base::Milliseconds(8);
 
 // Base class for predictor unit tests
 class InputPredictorTest : public testing::Test {
@@ -27,7 +26,7 @@
 
   static base::TimeTicks FromMilliseconds(double ms) {
     return test::PredictionUnittestHelpers::GetStaticTimeStampForTests() +
-           base::TimeDelta::FromMillisecondsD(ms);
+           base::Milliseconds(ms);
   }
 
   void ValidatePredictor(const std::vector<double>& x,
diff --git a/ui/base/prediction/kalman_predictor.cc b/ui/base/prediction/kalman_predictor.cc
index 2678cfe6..270d506 100644
--- a/ui/base/prediction/kalman_predictor.cc
+++ b/ui/base/prediction/kalman_predictor.cc
@@ -119,8 +119,8 @@
 
 base::TimeDelta KalmanPredictor::TimeInterval() const {
   return time_filter_.GetPosition()
-             ? std::max(kMinTimeInterval, base::TimeDelta::FromMilliseconds(
-                                              time_filter_.GetPosition()))
+             ? std::max(kMinTimeInterval,
+                        base::Milliseconds(time_filter_.GetPosition()))
              : kTimeInterval;
 }
 
diff --git a/ui/base/prediction/kalman_predictor.h b/ui/base/prediction/kalman_predictor.h
index 041fcb3c..aefbcf5 100644
--- a/ui/base/prediction/kalman_predictor.h
+++ b/ui/base/prediction/kalman_predictor.h
@@ -75,8 +75,7 @@
   std::deque<InputData> last_points_;
 
   // Maximum time interval between first and last events in last points queue.
-  static constexpr base::TimeDelta kMaxTimeInQueue =
-      base::TimeDelta::FromMilliseconds(40);
+  static constexpr base::TimeDelta kMaxTimeInQueue = base::Milliseconds(40);
 
   // Flags to determine the enabled prediction options.
   const unsigned int prediction_options_;
diff --git a/ui/base/prediction/kalman_predictor_unittest.cc b/ui/base/prediction/kalman_predictor_unittest.cc
index 1ffc8e6..05aa22d 100644
--- a/ui/base/prediction/kalman_predictor_unittest.cc
+++ b/ui/base/prediction/kalman_predictor_unittest.cc
@@ -143,7 +143,7 @@
     predictor_->Update(data);
   }
   EXPECT_EQ(predictor_->TimeInterval().InMillisecondsF(),
-            base::TimeDelta::FromMilliseconds(7).InMillisecondsF());
+            base::Milliseconds(7).InMillisecondsF());
 }
 
 // Test the benefit from the heuristic approach on noisy data.
diff --git a/ui/base/prediction/least_squares_predictor_unittest.cc b/ui/base/prediction/least_squares_predictor_unittest.cc
index 7c87aa8..ddbf039 100644
--- a/ui/base/prediction/least_squares_predictor_unittest.cc
+++ b/ui/base/prediction/least_squares_predictor_unittest.cc
@@ -99,8 +99,7 @@
                                       FromMilliseconds(t[i])};
     predictor_->Update(data);
   }
-  EXPECT_EQ(predictor_->TimeInterval(),
-            base::TimeDelta::FromMillisecondsD((t[2] - t[0]) / 2));
+  EXPECT_EQ(predictor_->TimeInterval(), base::Milliseconds((t[2] - t[0]) / 2));
 }
 
 }  // namespace test
diff --git a/ui/base/prediction/linear_predictor_unittest.cc b/ui/base/prediction/linear_predictor_unittest.cc
index 0b33329..135b0c5f 100644
--- a/ui/base/prediction/linear_predictor_unittest.cc
+++ b/ui/base/prediction/linear_predictor_unittest.cc
@@ -132,8 +132,7 @@
   for (size_t i = 0; i < n; i++) {
     predictor_->Update({gfx::PointF(x[i], y[i]), FromMilliseconds(t[i])});
   }
-  EXPECT_EQ(predictor_->TimeInterval(),
-            base::TimeDelta::FromMilliseconds(t[1] - t[0]));
+  EXPECT_EQ(predictor_->TimeInterval(), base::Milliseconds(t[1] - t[0]));
 }
 
 // Test time interval in second order
@@ -146,8 +145,7 @@
   for (size_t i = 0; i < n; i++) {
     predictor_->Update({gfx::PointF(x[i], y[i]), FromMilliseconds(t[i])});
   }
-  EXPECT_EQ(predictor_->TimeInterval(),
-            base::TimeDelta::FromMillisecondsD((t[2] - t[0]) / 2));
+  EXPECT_EQ(predictor_->TimeInterval(), base::Milliseconds((t[2] - t[0]) / 2));
 }
 
 }  // namespace test
diff --git a/ui/base/prediction/linear_resampling.cc b/ui/base/prediction/linear_resampling.cc
index 740f5fcd..5880fc2 100644
--- a/ui/base/prediction/linear_resampling.cc
+++ b/ui/base/prediction/linear_resampling.cc
@@ -16,22 +16,21 @@
 namespace {
 // Minimum time difference between last two consecutive events before attempting
 // to resample.
-constexpr auto kResampleMinDelta = base::TimeDelta::FromMilliseconds(2);
+constexpr auto kResampleMinDelta = base::Milliseconds(2);
 // Maximum time to predict forward from the last event, to avoid predicting too
 // far into the future. This time is further bounded by 50% of the last time
 // delta.
-constexpr auto kResampleMaxPrediction = base::TimeDelta::FromMilliseconds(8);
+constexpr auto kResampleMaxPrediction = base::Milliseconds(8);
 // Align events to a few milliseconds before frame_time. This is to make the
 // resampling either doing interpolation or extrapolating a closer future time
 // so that resampled result is more accurate and has less noise. This adds some
 // latency during resampling but a few ms should be fine.
-constexpr auto kResampleLatency = base::TimeDelta::FromMilliseconds(-5);
+constexpr auto kResampleLatency = base::Milliseconds(-5);
 // The optimal prediction anticipation from experimentation: In the study
 // https://bit.ly/3iyQf8V we found that, on a machine with VSync at 60Hz, adding
 // 1/2 * frame_interval (on top of kResampleLatency) minimizes the Lag on touch
 // scrolling. + 1/2 * (1/60) - 5ms = 3.3ms.
-constexpr auto kResampleLatencyExperimental =
-    base::TimeDelta::FromMillisecondsD(3.3);
+constexpr auto kResampleLatencyExperimental = base::Milliseconds(3.3);
 
 // Get position at |sample_time| by linear interpolate/extrapolate a and b.
 inline gfx::PointF lerp(const InputPredictor::InputData& a,
@@ -135,7 +134,7 @@
   double latency;
   if (base::StringToDouble(latency_value, &latency)) {
     return prediction_type == ::features::kPredictionTypeTimeBased
-               ? base::TimeDelta::FromMillisecondsD(latency)
+               ? base::Milliseconds(latency)
                : latency * frame_interval_ + kResampleLatency;
   }
 
diff --git a/ui/base/prediction/linear_resampling_unittest.cc b/ui/base/prediction/linear_resampling_unittest.cc
index 848a44b..a1c8fb5e 100644
--- a/ui/base/prediction/linear_resampling_unittest.cc
+++ b/ui/base/prediction/linear_resampling_unittest.cc
@@ -31,8 +31,7 @@
       const double vsync_frequency) {
     // LinearResampling* predictor =
     // dynamic_cast<LinearResampling*>(predictor_.get());
-    base::TimeDelta frame_interval =
-        base::TimeDelta::FromSecondsD(1.0f / vsync_frequency);
+    base::TimeDelta frame_interval = base::Seconds(1.0f / vsync_frequency);
 
     predictor_->Reset();
     std::vector<double> computed_x;
@@ -162,8 +161,7 @@
   for (size_t i = 0; i < t.size(); i++) {
     predictor_->Update({gfx::PointF(x[i], y[i]), FromMilliseconds(t[i])});
   }
-  EXPECT_EQ(predictor_->TimeInterval(),
-            base::TimeDelta::FromMilliseconds(t[1] - t[0]));
+  EXPECT_EQ(predictor_->TimeInterval(), base::Milliseconds(t[1] - t[0]));
 }
 
 // Tests resampling with the experimental latency if +3.3ms instead of
diff --git a/ui/base/prediction/prediction_metrics_handler_unittest.cc b/ui/base/prediction/prediction_metrics_handler_unittest.cc
index e8933464..a62845a2 100644
--- a/ui/base/prediction/prediction_metrics_handler_unittest.cc
+++ b/ui/base/prediction/prediction_metrics_handler_unittest.cc
@@ -21,7 +21,7 @@
 
 base::TimeTicks MillisecondsToTestTimeTicks(int64_t ms) {
   return PredictionUnittestHelpers::GetStaticTimeStampForTests() +
-         base::TimeDelta::FromMilliseconds(ms);
+         base::Milliseconds(ms);
 }
 
 }  // namespace
@@ -82,7 +82,7 @@
 TEST_F(PredictionMetricsHandlerTest, CanComputeMetricsTest) {
   base::TimeTicks start_time =
       PredictionUnittestHelpers::GetStaticTimeStampForTests();
-  base::TimeDelta dt = base::TimeDelta::FromMilliseconds(8);
+  base::TimeDelta dt = base::Milliseconds(8);
 
   // Need at least 2 real events to start comput metrics.
   {
@@ -122,7 +122,7 @@
 TEST_F(PredictionMetricsHandlerTest, InterpolationTest) {
   base::TimeTicks start_time =
       PredictionUnittestHelpers::GetStaticTimeStampForTests();
-  base::TimeDelta dt = base::TimeDelta::FromMilliseconds(8);
+  base::TimeDelta dt = base::Milliseconds(8);
   gfx::PointF interpolated;
 
   metrics_handler_->AddRealEvent(gfx::PointF(2, 2), start_time + 1 * dt,
diff --git a/ui/base/scoped_visibility_tracker_unittest.cc b/ui/base/scoped_visibility_tracker_unittest.cc
index 94160b1..bbc0d358 100644
--- a/ui/base/scoped_visibility_tracker_unittest.cc
+++ b/ui/base/scoped_visibility_tracker_unittest.cc
@@ -18,44 +18,44 @@
   auto tick_clock = std::make_unique<base::SimpleTestTickClock>();
   ScopedVisibilityTracker tracker(tick_clock.get(), false /* is_shown */);
 
-  tick_clock->Advance(base::TimeDelta::FromMinutes(10));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(0), tracker.GetForegroundDuration());
+  tick_clock->Advance(base::Minutes(10));
+  EXPECT_EQ(base::Minutes(0), tracker.GetForegroundDuration());
 }
 
 TEST_F(ScopedVisibilityTrackerTest, SimpleVisibility) {
   auto tick_clock = std::make_unique<base::SimpleTestTickClock>();
   ScopedVisibilityTracker tracker(tick_clock.get(), true /* is_shown */);
 
-  tick_clock->Advance(base::TimeDelta::FromMinutes(10));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(10), tracker.GetForegroundDuration());
+  tick_clock->Advance(base::Minutes(10));
+  EXPECT_EQ(base::Minutes(10), tracker.GetForegroundDuration());
 }
 
 TEST_F(ScopedVisibilityTrackerTest, HiddenThenShown) {
   auto tick_clock = std::make_unique<base::SimpleTestTickClock>();
   ScopedVisibilityTracker tracker(tick_clock.get(), true /* is_shown */);
 
-  tick_clock->Advance(base::TimeDelta::FromMinutes(1));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(1), tracker.GetForegroundDuration());
+  tick_clock->Advance(base::Minutes(1));
+  EXPECT_EQ(base::Minutes(1), tracker.GetForegroundDuration());
 
   tracker.OnHidden();
-  tick_clock->Advance(base::TimeDelta::FromMinutes(2));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(1), tracker.GetForegroundDuration());
+  tick_clock->Advance(base::Minutes(2));
+  EXPECT_EQ(base::Minutes(1), tracker.GetForegroundDuration());
 
   tracker.OnShown();
-  tick_clock->Advance(base::TimeDelta::FromMinutes(3));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(4), tracker.GetForegroundDuration());
+  tick_clock->Advance(base::Minutes(3));
+  EXPECT_EQ(base::Minutes(4), tracker.GetForegroundDuration());
 }
 
 TEST_F(ScopedVisibilityTrackerTest, InitiallyHidden) {
   auto tick_clock = std::make_unique<base::SimpleTestTickClock>();
   ScopedVisibilityTracker tracker(tick_clock.get(), false /* is_shown */);
 
-  tick_clock->Advance(base::TimeDelta::FromMinutes(1));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(0), tracker.GetForegroundDuration());
+  tick_clock->Advance(base::Minutes(1));
+  EXPECT_EQ(base::Minutes(0), tracker.GetForegroundDuration());
 
   tracker.OnShown();
-  tick_clock->Advance(base::TimeDelta::FromMinutes(2));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(2), tracker.GetForegroundDuration());
+  tick_clock->Advance(base::Minutes(2));
+  EXPECT_EQ(base::Minutes(2), tracker.GetForegroundDuration());
 }
 
 // The object should be robust to double hidden and shown notification
@@ -63,20 +63,20 @@
   auto tick_clock = std::make_unique<base::SimpleTestTickClock>();
   ScopedVisibilityTracker tracker(tick_clock.get(), false /* is_shown */);
 
-  tick_clock->Advance(base::TimeDelta::FromMinutes(1));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(0), tracker.GetForegroundDuration());
+  tick_clock->Advance(base::Minutes(1));
+  EXPECT_EQ(base::Minutes(0), tracker.GetForegroundDuration());
 
   tracker.OnHidden();
-  tick_clock->Advance(base::TimeDelta::FromMinutes(1));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(0), tracker.GetForegroundDuration());
+  tick_clock->Advance(base::Minutes(1));
+  EXPECT_EQ(base::Minutes(0), tracker.GetForegroundDuration());
 
   tracker.OnShown();
-  tick_clock->Advance(base::TimeDelta::FromMinutes(2));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(2), tracker.GetForegroundDuration());
+  tick_clock->Advance(base::Minutes(2));
+  EXPECT_EQ(base::Minutes(2), tracker.GetForegroundDuration());
 
   tracker.OnShown();
-  tick_clock->Advance(base::TimeDelta::FromMinutes(2));
-  EXPECT_EQ(base::TimeDelta::FromMinutes(4), tracker.GetForegroundDuration());
+  tick_clock->Advance(base::Minutes(2));
+  EXPECT_EQ(base::Minutes(4), tracker.GetForegroundDuration());
 }
 
 }  // namespace ui
diff --git a/ui/base/user_activity/user_activity_detector.cc b/ui/base/user_activity/user_activity_detector.cc
index c45121d..722002f 100644
--- a/ui/base/user_activity/user_activity_detector.cc
+++ b/ui/base/user_activity/user_activity_detector.cc
@@ -84,8 +84,8 @@
 }
 
 void UserActivityDetector::OnDisplayPowerChanging() {
-  honor_mouse_events_time_ = GetCurrentTime() +
-      base::TimeDelta::FromMilliseconds(kDisplayPowerChangeIgnoreMouseMs);
+  honor_mouse_events_time_ =
+      GetCurrentTime() + base::Milliseconds(kDisplayPowerChangeIgnoreMouseMs);
 }
 
 void UserActivityDetector::HandleExternalUserActivity() {
diff --git a/ui/base/user_activity/user_activity_detector_unittest.cc b/ui/base/user_activity/user_activity_detector_unittest.cc
index b6887cf1..68a3bdc 100644
--- a/ui/base/user_activity/user_activity_detector_unittest.cc
+++ b/ui/base/user_activity/user_activity_detector_unittest.cc
@@ -99,8 +99,8 @@
   EXPECT_EQ(1, observer_->num_invocations());
   observer_->reset_stats();
 
-  base::TimeDelta advance_delta = base::TimeDelta::FromMilliseconds(
-      UserActivityDetector::kNotifyIntervalMs);
+  base::TimeDelta advance_delta =
+      base::Milliseconds(UserActivityDetector::kNotifyIntervalMs);
   AdvanceTime(advance_delta);
   ui::MouseEvent mouse_event(ui::ET_MOUSE_MOVED, gfx::Point(), gfx::Point(),
                              ui::EventTimeForNow(), ui::EF_NONE, ui::EF_NONE);
@@ -120,9 +120,8 @@
   EXPECT_EQ(0, observer_->num_invocations());
   observer_->reset_stats();
 
-  const base::TimeDelta kIgnoreMouseTime =
-      base::TimeDelta::FromMilliseconds(
-          UserActivityDetector::kDisplayPowerChangeIgnoreMouseMs);
+  const base::TimeDelta kIgnoreMouseTime = base::Milliseconds(
+      UserActivityDetector::kDisplayPowerChangeIgnoreMouseMs);
   AdvanceTime(kIgnoreMouseTime / 2);
   OnEvent(&mouse_event);
   EXPECT_FALSE(mouse_event.handled());
@@ -176,8 +175,7 @@
 
   // Advance the time, but not quite enough for another notification to be sent.
   AdvanceTime(
-      base::TimeDelta::FromMilliseconds(
-          UserActivityDetector::kNotifyIntervalMs - 100));
+      base::Milliseconds(UserActivityDetector::kNotifyIntervalMs - 100));
   OnEvent(&event);
   EXPECT_FALSE(event.handled());
   EXPECT_EQ(0, observer_->num_invocations());
@@ -185,8 +183,7 @@
 
   // Advance time by the notification interval, definitely moving out of the
   // rate limit. This should let us trigger another notification.
-  AdvanceTime(base::TimeDelta::FromMilliseconds(
-      UserActivityDetector::kNotifyIntervalMs));
+  AdvanceTime(base::Milliseconds(UserActivityDetector::kNotifyIntervalMs));
 
   OnEvent(&event);
   EXPECT_FALSE(event.handled());
@@ -210,15 +207,15 @@
   EXPECT_EQ(1, observer_->num_invocations());
   observer_->reset_stats();
 
-  base::TimeDelta advance_delta = base::TimeDelta::FromMilliseconds(
-      UserActivityDetector::kNotifyIntervalMs);
+  base::TimeDelta advance_delta =
+      base::Milliseconds(UserActivityDetector::kNotifyIntervalMs);
   AdvanceTime(advance_delta);
   detector_->HandleExternalUserActivity();
   EXPECT_EQ(1, observer_->num_invocations());
   observer_->reset_stats();
 
-  base::TimeDelta half_advance_delta = base::TimeDelta::FromMilliseconds(
-      UserActivityDetector::kNotifyIntervalMs / 2);
+  base::TimeDelta half_advance_delta =
+      base::Milliseconds(UserActivityDetector::kNotifyIntervalMs / 2);
   AdvanceTime(half_advance_delta);
   detector_->HandleExternalUserActivity();
   EXPECT_EQ(0, observer_->num_invocations());
diff --git a/ui/base/x/selection_owner.cc b/ui/base/x/selection_owner.cc
index d3da89b..53b7d3036 100644
--- a/ui/base/x/selection_owner.cc
+++ b/ui/base/x/selection_owner.cc
@@ -222,7 +222,7 @@
       // selection requestor indicates this by deleting |property|.
       base::TimeTicks timeout =
           base::TimeTicks::Now() +
-          base::TimeDelta::FromMilliseconds(kIncrementalTransferTimeoutMs);
+          base::Milliseconds(kIncrementalTransferTimeoutMs);
       incremental_transfers_.emplace_back(
           requestor, target, property,
           std::make_unique<x11::XScopedEventSelector>(
@@ -234,9 +234,8 @@
       // the data transfer.
       if (!incremental_transfer_abort_timer_.IsRunning()) {
         incremental_transfer_abort_timer_.Start(
-            FROM_HERE,
-            base::TimeDelta::FromMilliseconds(KSelectionOwnerTimerPeriodMs),
-            this, &SelectionOwner::AbortStaleIncrementalTransfers);
+            FROM_HERE, base::Milliseconds(KSelectionOwnerTimerPeriodMs), this,
+            &SelectionOwner::AbortStaleIncrementalTransfers);
       }
     } else {
       auto& mem = it->second;
@@ -258,9 +257,8 @@
   std::vector<uint8_t> buf(data, data + chunk_length);
   SetArrayProperty(transfer->window, transfer->property, transfer->target, buf);
   transfer->offset += chunk_length;
-  transfer->timeout =
-      base::TimeTicks::Now() +
-      base::TimeDelta::FromMilliseconds(kIncrementalTransferTimeoutMs);
+  transfer->timeout = base::TimeTicks::Now() +
+                      base::Milliseconds(kIncrementalTransferTimeoutMs);
 
   // When offset == data->size(), we still need to transfer a zero-sized chunk
   // to notify the selection requestor that the transfer is complete. Clear
diff --git a/ui/base/x/selection_requestor.cc b/ui/base/x/selection_requestor.cc
index 99ac567..43acc2b 100644
--- a/ui/base/x/selection_requestor.cc
+++ b/ui/base/x/selection_requestor.cc
@@ -55,8 +55,7 @@
     std::vector<uint8_t>* out_data,
     x11::Atom* out_type) {
   base::TimeTicks timeout =
-      base::TimeTicks::Now() +
-      base::TimeDelta::FromMilliseconds(kRequestTimeoutMs);
+      base::TimeTicks::Now() + base::Milliseconds(kRequestTimeoutMs);
   Request request(selection, target, timeout);
   requests_.push_back(&request);
   if (current_request_index_ == (requests_.size() - 1))
@@ -134,8 +133,8 @@
     request->data_sent_incrementally = true;
     request->out_data.clear();
     request->out_type = x11::Atom::None;
-    request->timeout = base::TimeTicks::Now() +
-                       base::TimeDelta::FromMilliseconds(kRequestTimeoutMs);
+    request->timeout =
+        base::TimeTicks::Now() + base::Milliseconds(kRequestTimeoutMs);
   } else {
     CompleteRequest(current_request_index_, success);
   }
@@ -173,8 +172,8 @@
   // Delete the property to tell the selection owner to send the next chunk.
   x11::DeleteProperty(x_window_, x_property_);
 
-  request->timeout = base::TimeTicks::Now() +
-                     base::TimeDelta::FromMilliseconds(kRequestTimeoutMs);
+  request->timeout =
+      base::TimeTicks::Now() + base::Milliseconds(kRequestTimeoutMs);
 
   if (!out_data->size())
     CompleteRequest(current_request_index_, true);
diff --git a/ui/base/x/x11_cursor_loader.cc b/ui/base/x/x11_cursor_loader.cc
index 0ecc6f7..6dd76b0 100644
--- a/ui/base/x/x11_cursor_loader.cc
+++ b/ui/base/x/x11_cursor_loader.cc
@@ -589,9 +589,9 @@
     bitmap.allocN32Pixels(image.width, image.height);
     if (!ReadU32s(bitmap.getPixels(), bitmap.computeByteSize()))
       continue;
-    images.push_back(
-        XCursorLoader::Image{bitmap, gfx::Point(image.xhot, image.yhot),
-                             base::TimeDelta::FromMilliseconds(image.delay)});
+    images.push_back(XCursorLoader::Image{bitmap,
+                                          gfx::Point(image.xhot, image.yhot),
+                                          base::Milliseconds(image.delay)});
   }
   return images;
 }
diff --git a/ui/base/x/x11_display_util.cc b/ui/base/x/x11_display_util.cc
index d251ca7..24ef036 100644
--- a/ui/base/x/x11_display_util.cc
+++ b/ui/base/x/x11_display_util.cc
@@ -334,8 +334,7 @@
 }
 
 base::TimeDelta GetPrimaryDisplayRefreshIntervalFromXrandr() {
-  constexpr base::TimeDelta kDefaultInterval =
-      base::TimeDelta::FromSecondsD(1. / 60);
+  constexpr base::TimeDelta kDefaultInterval = base::Seconds(1. / 60);
   x11::RandR randr = x11::Connection::Get()->randr();
   auto root = ui::GetX11RootWindow();
   auto resources = randr.GetScreenResourcesCurrent({root}).Sync();
@@ -378,7 +377,7 @@
     if (refresh_rate == 0)
       continue;
 
-    return base::TimeDelta::FromSecondsD(1. / refresh_rate);
+    return base::Seconds(1. / refresh_rate);
   }
   return kDefaultInterval;
 }
diff --git a/ui/base/x/x11_drag_drop_client.cc b/ui/base/x/x11_drag_drop_client.cc
index 6bf4ba8..e389f5a 100644
--- a/ui/base/x/x11_drag_drop_client.cc
+++ b/ui/base/x/x11_drag_drop_client.cc
@@ -508,8 +508,8 @@
 }
 
 void XDragDropClient::StartEndMoveLoopTimer() {
-  end_move_loop_timer_.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(1000),
-                             this, &XDragDropClient::EndMoveLoop);
+  end_move_loop_timer_.Start(FROM_HERE, base::Milliseconds(1000), this,
+                             &XDragDropClient::EndMoveLoop);
 }
 
 void XDragDropClient::StopEndMoveLoopTimer() {
@@ -673,7 +673,7 @@
   // the Xdnd protocol both recommend that drag events should be sent
   // periodically.
   repeat_mouse_move_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(350),
+      FROM_HERE, base::Milliseconds(350),
       base::BindOnce(&XDragDropClient::ProcessMouseMove, base::Unretained(this),
                      screen_point, event_time));
 }
diff --git a/ui/base/x/x11_xrandr_interval_only_vsync_provider.cc b/ui/base/x/x11_xrandr_interval_only_vsync_provider.cc
index 03e4f76..3f3461b 100644
--- a/ui/base/x/x11_xrandr_interval_only_vsync_provider.cc
+++ b/ui/base/x/x11_xrandr_interval_only_vsync_provider.cc
@@ -11,7 +11,7 @@
 namespace ui {
 
 XrandrIntervalOnlyVSyncProvider::XrandrIntervalOnlyVSyncProvider()
-    : interval_(base::TimeDelta::FromSeconds(1 / 60.)) {}
+    : interval_(base::Seconds(1 / 60.)) {}
 
 void XrandrIntervalOnlyVSyncProvider::GetVSyncParameters(
     UpdateVSyncCallback callback) {
diff --git a/ui/compositor/animation_throughput_reporter_unittest.cc b/ui/compositor/animation_throughput_reporter_unittest.cc
index 99f6b19..817eb3ff 100644
--- a/ui/compositor/animation_throughput_reporter_unittest.cc
+++ b/ui/compositor/animation_throughput_reporter_unittest.cc
@@ -35,7 +35,7 @@
                                          checker.repeating_callback());
 
     ScopedLayerAnimationSettings settings(animator);
-    settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(48));
+    settings.SetTransitionDuration(base::Milliseconds(48));
     layer.SetOpacity(1.0f);
   }
   // The animation starts in next frame (16ms) and ends 48 ms later.
@@ -55,7 +55,7 @@
                                          checker.repeating_callback());
 
     ScopedLayerAnimationSettings settings(animator);
-    settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(48));
+    settings.SetTransitionDuration(base::Milliseconds(48));
     layer.SetOpacity(1.0f);
   }
 
@@ -77,7 +77,7 @@
 
   animator->ScheduleAnimation(
       new LayerAnimationSequence(LayerAnimationElement::CreateOpacityElement(
-          1.0f, base::TimeDelta::FromMilliseconds(48))));
+          1.0f, base::Milliseconds(48))));
 
   EXPECT_TRUE(checker.WaitUntilReported());
 }
@@ -89,8 +89,7 @@
   root_layer()->Add(layer.get());
 
   // Set a persisted animator to |layer|.
-  LayerAnimator* animator =
-      new LayerAnimator(base::TimeDelta::FromMilliseconds(48));
+  LayerAnimator* animator = new LayerAnimator(base::Milliseconds(48));
   layer->SetAnimator(animator);
 
   // |reporter| keeps reporting as long as it is alive.
@@ -123,7 +122,7 @@
                                          checker.repeating_callback());
 
     ScopedLayerAnimationSettings settings(animator);
-    settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(48));
+    settings.SetTransitionDuration(base::Milliseconds(48));
     layer->SetOpacity(1.0f);
   }
 
@@ -131,7 +130,7 @@
   layer.reset();
 
   // Wait a bit to ensure that report does not happen.
-  Advance(base::TimeDelta::FromMilliseconds(100));
+  Advance(base::Milliseconds(100));
 
   // TODO(crbug.com/1158510): Test the scenario where the report exists when the
   // layer is removed.
@@ -148,7 +147,7 @@
   AnimationThroughputReporter reporter(animator, checker.repeating_callback());
   {
     ScopedLayerAnimationSettings settings(animator);
-    settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(48));
+    settings.SetTransitionDuration(base::Milliseconds(48));
     layer->SetOpacity(1.0f);
   }
 
@@ -156,7 +155,7 @@
   layer.reset();
 
   // Wait a bit to ensure that report does not happen.
-  Advance(base::TimeDelta::FromMilliseconds(100));
+  Advance(base::Milliseconds(100));
 }
 
 // Tests animation throughput not reported when detached from timeline.
@@ -171,7 +170,7 @@
     AnimationThroughputReporter reporter(animator,
                                          checker.repeating_callback());
     ScopedLayerAnimationSettings settings(animator);
-    settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(48));
+    settings.SetTransitionDuration(base::Milliseconds(48));
     layer->SetOpacity(1.0f);
   }
 
@@ -180,7 +179,7 @@
   root_layer()->Add(layer.get());
 
   // Wait a bit to ensure that report does not happen.
-  Advance(base::TimeDelta::FromMilliseconds(100));
+  Advance(base::Milliseconds(100));
 }
 
 // Tests animation throughput not reported and no leak when animation is stopped
@@ -196,7 +195,7 @@
     AnimationThroughputReporter reporter(animator,
                                          checker.repeating_callback());
     ScopedLayerAnimationSettings settings(animator);
-    settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(50));
+    settings.SetTransitionDuration(base::Milliseconds(50));
     layer->SetOpacity(1.0f);
   }
 
@@ -204,7 +203,7 @@
   animator->StopAnimating();
 
   // Wait a bit to ensure that report does not happen.
-  Advance(base::TimeDelta::FromMilliseconds(100));
+  Advance(base::Milliseconds(100));
 
   // AnimationTracker in |reporter| should not leak in asan.
 }
@@ -224,7 +223,7 @@
     AnimationThroughputReporter reporter(animator,
                                          checker.repeating_callback());
     ScopedLayerAnimationSettings settings(animator);
-    settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(50));
+    settings.SetTransitionDuration(base::Milliseconds(50));
     layer->SetOpacity(0.5f);
     layer->SetBounds(gfx::Rect(0, 0, 3, 4));
   }
@@ -237,7 +236,7 @@
     ScopedLayerAnimationSettings settings(animator);
     settings.SetPreemptionStrategy(
         LayerAnimator::IMMEDIATELY_ANIMATE_TO_NEW_TARGET);
-    settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(48));
+    settings.SetTransitionDuration(base::Milliseconds(48));
     layer->SetOpacity(1.0f);
     layer->SetBounds(gfx::Rect(0, 0, 5, 6));
   }
diff --git a/ui/compositor/compositor.h b/ui/compositor/compositor.h
index 60424363..d484574 100644
--- a/ui/compositor/compositor.h
+++ b/ui/compositor/compositor.h
@@ -303,8 +303,7 @@
   // timeout is null, then no timeout is used.
   std::unique_ptr<CompositorLock> GetCompositorLock(
       CompositorLockClient* client,
-      base::TimeDelta timeout =
-          base::TimeDelta::FromMilliseconds(kCompositorLockTimeoutMs)) {
+      base::TimeDelta timeout = base::Milliseconds(kCompositorLockTimeoutMs)) {
     return lock_manager_.GetCompositorLock(client, timeout,
                                            host_->DeferMainFrameUpdate());
   }
diff --git a/ui/compositor/compositor_lock_unittest.cc b/ui/compositor/compositor_lock_unittest.cc
index 4589fd6..5903dc9 100644
--- a/ui/compositor/compositor_lock_unittest.cc
+++ b/ui/compositor/compositor_lock_unittest.cc
@@ -49,7 +49,7 @@
 TEST_F(CompositorLockTest, LocksTimeOut) {
   std::unique_ptr<CompositorLock> lock;
 
-  base::TimeDelta timeout = base::TimeDelta::FromMilliseconds(100);
+  base::TimeDelta timeout = base::Milliseconds(100);
 
   {
     testing::StrictMock<MockCompositorLockClient> lock_client;
@@ -81,7 +81,7 @@
   testing::StrictMock<MockCompositorLockClient> lock_client2;
   std::unique_ptr<CompositorLock> lock2;
 
-  base::TimeDelta timeout = base::TimeDelta::FromMilliseconds(1);
+  base::TimeDelta timeout = base::Milliseconds(1);
   // Both locks are grabbed from the Compositor with a separate client.
   lock1 = lock_manager()->GetCompositorLock(&lock_client1, timeout, nullptr);
   lock2 = lock_manager()->GetCompositorLock(&lock_client2, timeout, nullptr);
@@ -100,7 +100,7 @@
   testing::StrictMock<MockCompositorLockClient> lock_client2;
   std::unique_ptr<CompositorLock> lock2;
 
-  base::TimeDelta timeout = base::TimeDelta::FromMilliseconds(1);
+  base::TimeDelta timeout = base::Milliseconds(1);
 
   // One lock is grabbed from the compositor with a client. The other
   // extends its lifetime past that of the first.
@@ -126,8 +126,8 @@
   testing::StrictMock<MockCompositorLockClient> lock_client2;
   std::unique_ptr<CompositorLock> lock2;
 
-  base::TimeDelta timeout1 = base::TimeDelta::FromMilliseconds(1);
-  base::TimeDelta timeout2 = base::TimeDelta::FromMilliseconds(10);
+  base::TimeDelta timeout1 = base::Milliseconds(1);
+  base::TimeDelta timeout2 = base::Milliseconds(10);
 
   // The first lock has a short timeout.
   lock1 = lock_manager()->GetCompositorLock(&lock_client1, timeout1, nullptr);
@@ -150,8 +150,8 @@
   testing::StrictMock<MockCompositorLockClient> lock_client2;
   std::unique_ptr<CompositorLock> lock2;
 
-  base::TimeDelta timeout1 = base::TimeDelta::FromMilliseconds(1);
-  base::TimeDelta timeout2 = base::TimeDelta::FromMilliseconds(10);
+  base::TimeDelta timeout1 = base::Milliseconds(1);
+  base::TimeDelta timeout2 = base::Milliseconds(10);
 
   // The first lock has a short timeout.
   lock1 = lock_manager()->GetCompositorLock(&lock_client1, timeout1, nullptr);
@@ -182,14 +182,14 @@
   testing::StrictMock<MockCompositorLockClient> lock_client2;
   std::unique_ptr<CompositorLock> lock2;
 
-  base::TimeDelta timeout1 = base::TimeDelta::FromMilliseconds(5);
-  base::TimeDelta timeout2 = base::TimeDelta::FromMilliseconds(10);
+  base::TimeDelta timeout1 = base::Milliseconds(5);
+  base::TimeDelta timeout2 = base::Milliseconds(10);
 
   // The first lock has a short timeout.
   lock1 = lock_manager()->GetCompositorLock(&lock_client1, timeout1, nullptr);
   EXPECT_TRUE(lock_manager()->IsLocked());
 
-  base::TimeDelta time_elapse = base::TimeDelta::FromMilliseconds(1);
+  base::TimeDelta time_elapse = base::Milliseconds(1);
   task_runner()->FastForwardBy(time_elapse);
   task_runner()->RunUntilIdle();
 
@@ -219,8 +219,8 @@
   testing::StrictMock<MockCompositorLockClient> lock_client2;
   std::unique_ptr<CompositorLock> lock2;
 
-  base::TimeDelta timeout1 = base::TimeDelta::FromMilliseconds(10);
-  base::TimeDelta timeout2 = base::TimeDelta::FromMilliseconds(1);
+  base::TimeDelta timeout1 = base::Milliseconds(10);
+  base::TimeDelta timeout2 = base::Milliseconds(1);
 
   // The first lock has a longer timeout.
   lock1 = lock_manager()->GetCompositorLock(&lock_client1, timeout1, nullptr);
@@ -251,8 +251,8 @@
   testing::StrictMock<MockCompositorLockClient> lock_client2;
   std::unique_ptr<CompositorLock> lock2;
 
-  base::TimeDelta timeout1 = base::TimeDelta::FromMilliseconds(1);
-  base::TimeDelta timeout2 = base::TimeDelta::FromMilliseconds(10);
+  base::TimeDelta timeout1 = base::Milliseconds(1);
+  base::TimeDelta timeout2 = base::Milliseconds(10);
 
   lock1 = lock_manager()->GetCompositorLock(&lock_client1, timeout1, nullptr);
   EXPECT_TRUE(lock_manager()->IsLocked());
@@ -276,7 +276,7 @@
 }
 
 TEST_F(CompositorLockTest, LockIsDestroyedDoesntTimeout) {
-  base::TimeDelta timeout = base::TimeDelta::FromMilliseconds(1);
+  base::TimeDelta timeout = base::Milliseconds(1);
 
   testing::StrictMock<MockCompositorLockClient> lock_client1;
   std::unique_ptr<CompositorLock> lock1;
@@ -297,8 +297,8 @@
   testing::StrictMock<MockCompositorLockClient> lock_client2;
   std::unique_ptr<CompositorLock> lock2;
 
-  base::TimeDelta timeout1 = base::TimeDelta::FromMilliseconds(1);
-  base::TimeDelta timeout2 = base::TimeDelta::FromMilliseconds(10);
+  base::TimeDelta timeout1 = base::Milliseconds(1);
+  base::TimeDelta timeout2 = base::Milliseconds(10);
 
   // The first lock has a short timeout.
   lock1 = lock_manager()->GetCompositorLock(&lock_client1, timeout1, nullptr);
diff --git a/ui/compositor/compositor_unittest.cc b/ui/compositor/compositor_unittest.cc
index a74b9940..885bd6310 100644
--- a/ui/compositor/compositor_unittest.cc
+++ b/ui/compositor/compositor_unittest.cc
@@ -122,7 +122,7 @@
       gfx::ColorSpace::CreateDisplayP3D65());
   display_color_spaces.SetSDRWhiteLevel(1.f);
   base::TimeTicks vsync_timebase(base::TimeTicks::Now());
-  base::TimeDelta vsync_interval(base::TimeDelta::FromMilliseconds(250));
+  base::TimeDelta vsync_interval(base::Milliseconds(250));
   compositor()->SetDisplayColorMatrix(color_matrix);
   compositor()->SetDisplayColorSpaces(display_color_spaces);
   compositor()->SetDisplayVSyncParameters(vsync_timebase, vsync_interval);
diff --git a/ui/compositor/layer_animation_element_unittest.cc b/ui/compositor/layer_animation_element_unittest.cc
index 43dcea63..19eb8e4a9 100644
--- a/ui/compositor/layer_animation_element_unittest.cc
+++ b/ui/compositor/layer_animation_element_unittest.cc
@@ -76,7 +76,7 @@
   target_transform.Rotate(30.0);
   base::TimeTicks start_time;
   base::TimeTicks effective_start_time;
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
 
   std::unique_ptr<LayerAnimationElement> element =
       LayerAnimationElement::CreateTransformElement(target_transform, delta);
@@ -127,7 +127,7 @@
   start.set_x(-90);
   target.set_x(90);
   base::TimeTicks start_time;
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
 
   std::unique_ptr<LayerAnimationElement> element =
       LayerAnimationElement::CreateBoundsElement(target, delta);
@@ -171,7 +171,7 @@
   float target = 1.0;
   base::TimeTicks start_time;
   base::TimeTicks effective_start_time;
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
   std::unique_ptr<LayerAnimationElement> element =
       LayerAnimationElement::CreateOpacityElement(target, delta);
 
@@ -214,7 +214,7 @@
   bool start = true;
   bool target = false;
   base::TimeTicks start_time;
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
   std::unique_ptr<LayerAnimationElement> element =
       LayerAnimationElement::CreateVisibilityElement(target, delta);
 
@@ -256,7 +256,7 @@
   float middle = 0.5;
   float target = 1.0;
   base::TimeTicks start_time;
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
   std::unique_ptr<LayerAnimationElement> element =
       LayerAnimationElement::CreateBrightnessElement(target, delta);
 
@@ -298,7 +298,7 @@
   float middle = 0.5;
   float target = 1.0;
   base::TimeTicks start_time;
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
   std::unique_ptr<LayerAnimationElement> element =
       LayerAnimationElement::CreateGrayscaleElement(target, delta);
 
@@ -341,7 +341,7 @@
       LayerAnimationElement::GRAYSCALE;
 
   base::TimeTicks start_time;
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
 
   std::unique_ptr<LayerAnimationElement> element =
       LayerAnimationElement::CreatePauseElement(properties, delta);
@@ -389,7 +389,7 @@
   start.set_width(70);
   target.set_width(30);
   base::TimeTicks start_time;
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
 
   std::unique_ptr<LayerAnimationElement> element =
       LayerAnimationElement::CreateClipRectElement(target, delta);
@@ -433,7 +433,7 @@
   gfx::RoundedCornersF middle(6.0f, 7.0f, 8.0f, 9.0f);
 
   base::TimeTicks start_time;
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
 
   std::unique_ptr<LayerAnimationElement> element =
       LayerAnimationElement::CreateRoundedCornersElement(target, delta);
@@ -476,7 +476,7 @@
   float target = 1.0;
   base::TimeTicks start_time;
   base::TimeTicks effective_start_time;
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
   std::unique_ptr<LayerAnimationElement> element =
       LayerAnimationElement::CreateOpacityElement(target, delta);
 
@@ -520,7 +520,7 @@
   target_transform.Rotate(30.0);
   base::TimeTicks start_time;
   base::TimeTicks effective_start_time;
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
   std::unique_ptr<LayerAnimationElement> element =
       LayerAnimationElement::CreateTransformElement(target_transform, delta);
 
@@ -565,7 +565,7 @@
   float target = 1.0;
   delegate.SetOpacityFromAnimation(start,
                                    PropertyChangeReason::NOT_FROM_ANIMATION);
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
   std::unique_ptr<LayerAnimationElement> element =
       LayerAnimationElement::CreateOpacityElement(target, delta);
   EXPECT_TRUE(element->IsThreaded(&delegate));
@@ -585,7 +585,7 @@
 
 TEST(LayerAnimationElementTest, ToString) {
   float target = 1.0;
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
   std::unique_ptr<LayerAnimationElement> element =
       LayerAnimationElement::CreateOpacityElement(target, delta);
   element->set_animation_group_id(42);
diff --git a/ui/compositor/layer_animation_sequence_unittest.cc b/ui/compositor/layer_animation_sequence_unittest.cc
index 61ce039..7ff0fc75 100644
--- a/ui/compositor/layer_animation_sequence_unittest.cc
+++ b/ui/compositor/layer_animation_sequence_unittest.cc
@@ -26,7 +26,7 @@
 TEST(LayerAnimationSequenceTest, NoElement) {
   LayerAnimationSequence sequence;
   base::TimeTicks start_time;
-  start_time += base::TimeDelta::FromSeconds(1);
+  start_time += base::Seconds(1);
   sequence.set_start_time(start_time);
   EXPECT_TRUE(sequence.IsFinished(start_time));
   EXPECT_EQ(static_cast<LayerAnimationElement::AnimatableProperties>(
@@ -44,7 +44,7 @@
   float middle = 0.5f;
   float target = 1.0f;
   base::TimeTicks start_time;
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
   sequence.AddElement(
       LayerAnimationElement::CreateBrightnessElement(target, delta));
 
@@ -56,12 +56,10 @@
     sequence.Start(&delegate);
     sequence.Progress(start_time, &delegate);
     EXPECT_FLOAT_EQ(start, delegate.GetBrightnessForAnimation());
-    sequence.Progress(start_time + base::TimeDelta::FromMilliseconds(500),
-                      &delegate);
+    sequence.Progress(start_time + base::Milliseconds(500), &delegate);
     EXPECT_FLOAT_EQ(middle, delegate.GetBrightnessForAnimation());
     EXPECT_TRUE(sequence.IsFinished(start_time + delta));
-    sequence.Progress(start_time + base::TimeDelta::FromMilliseconds(1000),
-                      &delegate);
+    sequence.Progress(start_time + base::Milliseconds(1000), &delegate);
     EXPECT_FLOAT_EQ(target, delegate.GetBrightnessForAnimation());
   }
 
@@ -80,7 +78,7 @@
   float target = 1.0f;
   base::TimeTicks start_time;
   base::TimeTicks effective_start;
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
   sequence.AddElement(
       LayerAnimationElement::CreateOpacityElement(target, delta));
 
@@ -122,7 +120,7 @@
   base::TimeTicks start_time;
   base::TimeTicks opacity_effective_start;
   base::TimeTicks transform_effective_start;
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
   sequence.AddElement(
       LayerAnimationElement::CreateOpacityElement(target_opacity, delta));
 
@@ -205,7 +203,7 @@
   float start_brightness = 0.0f;
   float target_brightness = 1.0f;
   base::TimeTicks start_time;
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
   sequence.AddElement(
       LayerAnimationElement::CreateBrightnessElement(target_brightness, delta));
 
@@ -220,18 +218,16 @@
   start_time += delta;
   sequence.set_start_time(start_time);
   sequence.Start(&delegate);
-  sequence.Progress(start_time + base::TimeDelta::FromMilliseconds(101000),
-                    &delegate);
+  sequence.Progress(start_time + base::Milliseconds(101000), &delegate);
   EXPECT_FLOAT_EQ(target_brightness, delegate.GetBrightnessForAnimation());
   sequence.Abort(&delegate);
 
   // Should be able to reuse the sequence after aborting.
   delegate.SetBrightnessFromAnimation(start_brightness,
                                       PropertyChangeReason::NOT_FROM_ANIMATION);
-  start_time += base::TimeDelta::FromMilliseconds(101000);
+  start_time += base::Milliseconds(101000);
   sequence.set_start_time(start_time);
-  sequence.Progress(start_time + base::TimeDelta::FromMilliseconds(100000),
-                    &delegate);
+  sequence.Progress(start_time + base::Milliseconds(100000), &delegate);
   EXPECT_FLOAT_EQ(start_brightness, delegate.GetBrightnessForAnimation());
 }
 
@@ -242,7 +238,7 @@
   TestLayerAnimationDelegate delegate;
   float start_opacity = 0.0f;
   float target_opacity = 1.0f;
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
   sequence.AddElement(
       LayerAnimationElement::CreateOpacityElement(target_opacity, delta));
 
@@ -259,7 +255,7 @@
 
 TEST(LayerAnimationSequenceTest, AddObserver) {
   base::TimeTicks start_time;
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
   LayerAnimationSequence sequence;
   sequence.AddElement(
       LayerAnimationElement::CreateBrightnessElement(1.0f, delta));
@@ -277,7 +273,7 @@
 }
 
 TEST(LayerAnimationSequenceTest, ToString) {
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
   LayerAnimationSequence sequence;
   EXPECT_EQ(
       "LayerAnimationSequence{size=0, properties=, elements=[], "
diff --git a/ui/compositor/layer_animator.cc b/ui/compositor/layer_animator.cc
index 23c6bb80..6c9406cb 100644
--- a/ui/compositor/layer_animator.cc
+++ b/ui/compositor/layer_animator.cc
@@ -63,13 +63,13 @@
 
 // static
 LayerAnimator* LayerAnimator::CreateDefaultAnimator() {
-  return new LayerAnimator(base::TimeDelta::FromMilliseconds(0));
+  return new LayerAnimator(base::Milliseconds(0));
 }
 
 // static
 LayerAnimator* LayerAnimator::CreateImplicitAnimator() {
-  return new LayerAnimator(base::TimeDelta::FromMilliseconds(
-      kLayerAnimatorDefaultTransitionDurationMs));
+  return new LayerAnimator(
+      base::Milliseconds(kLayerAnimatorDefaultTransitionDurationMs));
 }
 
 // This macro provides the implementation for the setter and getter (well,
diff --git a/ui/compositor/layer_animator_unittest.cc b/ui/compositor/layer_animator_unittest.cc
index ba11c14..934c141 100644
--- a/ui/compositor/layer_animator_unittest.cc
+++ b/ui/compositor/layer_animator_unittest.cc
@@ -244,8 +244,7 @@
 class TestLayerAnimator : public LayerAnimator {
  public:
   TestLayerAnimator()
-      : LayerAnimator(base::TimeDelta::FromSeconds(0)),
-        destruction_observer_(nullptr) {}
+      : LayerAnimator(base::Seconds(0)), destruction_observer_(nullptr) {}
 
   TestLayerAnimator(const TestLayerAnimator&) = delete;
   TestLayerAnimator& operator=(const TestLayerAnimator&) = delete;
@@ -401,7 +400,7 @@
   base::TimeTicks now = base::TimeTicks::Now();
   animator->SetBrightness(0.5);
   EXPECT_TRUE(animator->is_animating());
-  animator->Step(now + base::TimeDelta::FromSeconds(1));
+  animator->Step(now + base::Seconds(1));
   EXPECT_FLOAT_EQ(delegate.GetBrightnessForAnimation(), 0.5);
   delegate.ExpectLastPropertyChangeReason(PropertyChangeReason::FROM_ANIMATION);
 }
@@ -485,7 +484,7 @@
   double middle_brightness(0.5);
   double target_brightness(1.0);
 
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
 
   delegate.SetBrightnessFromAnimation(start_brightness,
                                       PropertyChangeReason::NOT_FROM_ANIMATION);
@@ -500,12 +499,12 @@
 
   base::TimeTicks start_time = animator->last_step_time();
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(500));
+  animator->Step(start_time + base::Milliseconds(500));
 
   EXPECT_TRUE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetBrightnessForAnimation(), middle_brightness);
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(1000));
+  animator->Step(start_time + base::Milliseconds(1000));
 
   EXPECT_FALSE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetBrightnessForAnimation(), target_brightness);
@@ -522,7 +521,7 @@
   double start_opacity(0.0);
   double target_opacity(1.0);
 
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
 
   delegate.SetOpacityFromAnimation(start_opacity,
                                    PropertyChangeReason::NOT_FROM_ANIMATION);
@@ -572,7 +571,7 @@
   start_bounds.set_x(-90);
   target_bounds.set_x(90);
 
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
 
   delegate.SetBrightnessFromAnimation(start_brightness,
                                       PropertyChangeReason::NOT_FROM_ANIMATION);
@@ -594,13 +593,13 @@
 
   base::TimeTicks start_time = animator->last_step_time();
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(500));
+  animator->Step(start_time + base::Milliseconds(500));
 
   EXPECT_TRUE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetBrightnessForAnimation(), middle_brightness);
   CheckApproximatelyEqual(delegate.GetBoundsForAnimation(), middle_bounds);
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(1000));
+  animator->Step(start_time + base::Milliseconds(1000));
 
   EXPECT_FALSE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetBrightnessForAnimation(), target_brightness);
@@ -624,7 +623,7 @@
   start_bounds.set_x(-90);
   target_bounds.set_x(90);
 
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
 
   delegate.SetOpacityFromAnimation(start_opacity,
                                    PropertyChangeReason::NOT_FROM_ANIMATION);
@@ -681,7 +680,7 @@
   double middle_brightness(0.5);
   double target_brightness(1.0);
 
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
 
   delegate.SetBrightnessFromAnimation(start_brightness,
                                       PropertyChangeReason::NOT_FROM_ANIMATION);
@@ -701,22 +700,22 @@
 
   base::TimeTicks start_time = animator->last_step_time();
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(500));
+  animator->Step(start_time + base::Milliseconds(500));
 
   EXPECT_TRUE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetBrightnessForAnimation(), middle_brightness);
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(1000));
+  animator->Step(start_time + base::Milliseconds(1000));
 
   EXPECT_TRUE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetBrightnessForAnimation(), target_brightness);
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(1500));
+  animator->Step(start_time + base::Milliseconds(1500));
 
   EXPECT_TRUE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetBrightnessForAnimation(), middle_brightness);
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(2000));
+  animator->Step(start_time + base::Milliseconds(2000));
 
   EXPECT_FALSE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetBrightnessForAnimation(), start_brightness);
@@ -738,7 +737,7 @@
   start_bounds.set_x(-90);
   target_bounds.set_x(90);
 
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
 
   delegate.SetGrayscaleFromAnimation(start_grayscale,
                                      PropertyChangeReason::NOT_FROM_ANIMATION);
@@ -769,31 +768,31 @@
 
   base::TimeTicks start_time = animator->last_step_time();
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(500));
+  animator->Step(start_time + base::Milliseconds(500));
 
   EXPECT_TRUE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetGrayscaleForAnimation(), middle_grayscale);
   CheckApproximatelyEqual(delegate.GetBoundsForAnimation(), start_bounds);
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(1000));
+  animator->Step(start_time + base::Milliseconds(1000));
 
   EXPECT_TRUE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetGrayscaleForAnimation(), target_grayscale);
   CheckApproximatelyEqual(delegate.GetBoundsForAnimation(), start_bounds);
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(2000));
+  animator->Step(start_time + base::Milliseconds(2000));
 
   EXPECT_TRUE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetGrayscaleForAnimation(), start_grayscale);
   CheckApproximatelyEqual(delegate.GetBoundsForAnimation(), start_bounds);
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(3000));
+  animator->Step(start_time + base::Milliseconds(3000));
 
   EXPECT_TRUE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetGrayscaleForAnimation(), start_grayscale);
   CheckApproximatelyEqual(delegate.GetBoundsForAnimation(), target_bounds);
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(4000));
+  animator->Step(start_time + base::Milliseconds(4000));
 
   EXPECT_FALSE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetGrayscaleForAnimation(), start_grayscale);
@@ -815,7 +814,7 @@
   start_bounds.set_x(-90);
   target_bounds.set_x(90);
 
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
 
   delegate.SetGrayscaleFromAnimation(start_grayscale,
                                      PropertyChangeReason::NOT_FROM_ANIMATION);
@@ -841,13 +840,13 @@
 
   base::TimeTicks start_time = animator->last_step_time();
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(1000));
+  animator->Step(start_time + base::Milliseconds(1000));
 
   EXPECT_TRUE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetGrayscaleForAnimation(), target_grayscale);
   CheckApproximatelyEqual(delegate.GetBoundsForAnimation(), start_bounds);
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(2000));
+  animator->Step(start_time + base::Milliseconds(2000));
 
   EXPECT_FALSE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetGrayscaleForAnimation(), start_grayscale);
@@ -864,7 +863,7 @@
   double middle_brightness(0.5);
   double target_brightness(1.0);
 
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
 
   delegate.SetBrightnessFromAnimation(start_brightness,
                                       PropertyChangeReason::NOT_FROM_ANIMATION);
@@ -879,12 +878,12 @@
 
   base::TimeTicks start_time = animator->last_step_time();
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(500));
+  animator->Step(start_time + base::Milliseconds(500));
 
   EXPECT_TRUE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetBrightnessForAnimation(), middle_brightness);
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(1000));
+  animator->Step(start_time + base::Milliseconds(1000));
 
   EXPECT_FALSE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetBrightnessForAnimation(), target_brightness);
@@ -901,7 +900,7 @@
   double start_opacity(0.0);
   double target_opacity(1.0);
 
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
 
   delegate.SetOpacityFromAnimation(start_opacity,
                                    PropertyChangeReason::NOT_FROM_ANIMATION);
@@ -943,7 +942,7 @@
   double start_opacity(0.0);
   double target_opacity(1.0);
 
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
 
   delegate.SetOpacityFromAnimation(start_opacity,
                                    PropertyChangeReason::NOT_FROM_ANIMATION);
@@ -971,7 +970,7 @@
   double middle_brightness(0.5);
   double target_brightness(1.0);
 
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
 
   delegate.SetBrightnessFromAnimation(start_brightness,
                                       PropertyChangeReason::NOT_FROM_ANIMATION);
@@ -986,7 +985,7 @@
 
   base::TimeTicks start_time = animator->last_step_time();
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(500));
+  animator->Step(start_time + base::Milliseconds(500));
 
   animator->StartAnimation(
       new LayerAnimationSequence(
@@ -1003,13 +1002,13 @@
 
   EXPECT_TRUE(animator->is_animating());
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(1000));
+  animator->Step(start_time + base::Milliseconds(1000));
 
   EXPECT_TRUE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetBrightnessForAnimation(),
                   0.5 * (start_brightness + middle_brightness));
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(1500));
+  animator->Step(start_time + base::Milliseconds(1500));
 
   EXPECT_FALSE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetBrightnessForAnimation(), start_brightness);
@@ -1027,7 +1026,7 @@
   double middle_opacity(0.5);
   double target_opacity(1.0);
 
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
 
   delegate.SetOpacityFromAnimation(start_opacity,
                                    PropertyChangeReason::NOT_FROM_ANIMATION);
@@ -1093,7 +1092,7 @@
   double middle_brightness(0.5);
   double target_brightness(1.0);
 
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
 
   delegate.SetBrightnessFromAnimation(start_brightness,
                                       PropertyChangeReason::NOT_FROM_ANIMATION);
@@ -1107,7 +1106,7 @@
 
   base::TimeTicks start_time = animator->last_step_time();
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(500));
+  animator->Step(start_time + base::Milliseconds(500));
 
   animator->StartAnimation(
       new LayerAnimationSequence(
@@ -1119,17 +1118,17 @@
 
   EXPECT_TRUE(animator->is_animating());
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(1000));
+  animator->Step(start_time + base::Milliseconds(1000));
 
   EXPECT_TRUE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetBrightnessForAnimation(), target_brightness);
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(1500));
+  animator->Step(start_time + base::Milliseconds(1500));
 
   EXPECT_TRUE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetBrightnessForAnimation(), middle_brightness);
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(2000));
+  animator->Step(start_time + base::Milliseconds(2000));
 
   EXPECT_FALSE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetBrightnessForAnimation(), start_brightness);
@@ -1146,7 +1145,7 @@
   double middle_brightness(0.5);
   double target_brightness(1.0);
 
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
 
   delegate.SetBrightnessFromAnimation(start_brightness,
                                       PropertyChangeReason::NOT_FROM_ANIMATION);
@@ -1160,7 +1159,7 @@
 
   base::TimeTicks start_time = animator->last_step_time();
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(500));
+  animator->Step(start_time + base::Milliseconds(500));
 
   animator->StartAnimation(
       new LayerAnimationSequence(
@@ -1177,17 +1176,17 @@
   EXPECT_TRUE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetBrightnessForAnimation(), middle_brightness);
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(1000));
+  animator->Step(start_time + base::Milliseconds(1000));
 
   EXPECT_TRUE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetBrightnessForAnimation(), target_brightness);
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(1500));
+  animator->Step(start_time + base::Milliseconds(1500));
 
   EXPECT_TRUE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetBrightnessForAnimation(), middle_brightness);
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(2000));
+  animator->Step(start_time + base::Milliseconds(2000));
 
   EXPECT_FALSE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetBrightnessForAnimation(), start_brightness);
@@ -1202,7 +1201,7 @@
   double start_brightness(0.1);
   double target_brightness(0.9);
 
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
 
   delegate.SetGrayscaleFromAnimation(start_grayscale,
                                      PropertyChangeReason::NOT_FROM_ANIMATION);
@@ -1227,7 +1226,7 @@
   // should be enormous. Arbitrarily choosing 1 minute as the threshold,
   // though a much smaller value would probably have sufficed.
   delta = base::TimeTicks::Now() - animator->last_step_time();
-  EXPECT_LT(delta, base::TimeDelta::FromMinutes(1));
+  EXPECT_LT(delta, base::Minutes(1));
 }
 
 //-------------------------------------------------------
@@ -1241,7 +1240,7 @@
   double start_brightness(0.1);
   double target_brightness(0.9);
 
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
 
   delegate.SetOpacityFromAnimation(start_opacity,
                                    PropertyChangeReason::NOT_FROM_ANIMATION);
@@ -1282,7 +1281,7 @@
   double middle_brightness(0.2);
   double target_brightness(0.3);
 
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
 
   delegate.SetGrayscaleFromAnimation(start_grayscale,
                                      PropertyChangeReason::NOT_FROM_ANIMATION);
@@ -1302,7 +1301,7 @@
 
   base::TimeTicks start_time = animator->last_step_time();
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(500));
+  animator->Step(start_time + base::Milliseconds(500));
 
   animator->StartTogether(
       CreateMultiSequence(
@@ -1322,7 +1321,7 @@
 
   EXPECT_TRUE(animator->is_animating());
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(1000));
+  animator->Step(start_time + base::Milliseconds(1000));
 
   EXPECT_TRUE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetGrayscaleForAnimation(),
@@ -1330,7 +1329,7 @@
   EXPECT_FLOAT_EQ(delegate.GetBrightnessForAnimation(),
                   0.5 * (start_brightness + middle_brightness));
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(1500));
+  animator->Step(start_time + base::Milliseconds(1500));
 
   EXPECT_FALSE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetGrayscaleForAnimation(), start_grayscale);
@@ -1353,7 +1352,7 @@
   double middle_brightness(0.2);
   double target_brightness(0.3);
 
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
 
   delegate.SetOpacityFromAnimation(start_opacity,
                                    PropertyChangeReason::NOT_FROM_ANIMATION);
@@ -1437,7 +1436,7 @@
   double middle_brightness(0.2);
   double target_brightness(0.3);
 
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
 
   delegate.SetGrayscaleFromAnimation(start_grayscale,
                                      PropertyChangeReason::NOT_FROM_ANIMATION);
@@ -1455,7 +1454,7 @@
 
   base::TimeTicks start_time = animator->last_step_time();
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(500));
+  animator->Step(start_time + base::Milliseconds(500));
 
   animator->StartTogether(
       CreateMultiSequence(
@@ -1469,19 +1468,19 @@
 
   EXPECT_TRUE(animator->is_animating());
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(1000));
+  animator->Step(start_time + base::Milliseconds(1000));
 
   EXPECT_TRUE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetGrayscaleForAnimation(), target_grayscale);
   EXPECT_FLOAT_EQ(delegate.GetBrightnessForAnimation(), target_brightness);
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(1500));
+  animator->Step(start_time + base::Milliseconds(1500));
 
   EXPECT_TRUE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetGrayscaleForAnimation(), middle_grayscale);
   EXPECT_FLOAT_EQ(delegate.GetBrightnessForAnimation(), middle_brightness);
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(2000));
+  animator->Step(start_time + base::Milliseconds(2000));
 
   EXPECT_FALSE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetGrayscaleForAnimation(), start_grayscale);
@@ -1503,7 +1502,7 @@
   double middle_brightness(0.2);
   double target_brightness(0.3);
 
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
 
   delegate.SetGrayscaleFromAnimation(start_grayscale,
                                      PropertyChangeReason::NOT_FROM_ANIMATION);
@@ -1521,7 +1520,7 @@
 
   base::TimeTicks start_time = animator->last_step_time();
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(500));
+  animator->Step(start_time + base::Milliseconds(500));
 
   animator->StartTogether(
       CreateMultiSequence(
@@ -1542,19 +1541,19 @@
   EXPECT_FLOAT_EQ(delegate.GetGrayscaleForAnimation(), middle_grayscale);
   EXPECT_FLOAT_EQ(delegate.GetBrightnessForAnimation(), middle_brightness);
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(1000));
+  animator->Step(start_time + base::Milliseconds(1000));
 
   EXPECT_TRUE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetGrayscaleForAnimation(), target_grayscale);
   EXPECT_FLOAT_EQ(delegate.GetBrightnessForAnimation(), target_brightness);
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(1500));
+  animator->Step(start_time + base::Milliseconds(1500));
 
   EXPECT_TRUE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetGrayscaleForAnimation(), middle_grayscale);
   EXPECT_FLOAT_EQ(delegate.GetBrightnessForAnimation(), middle_brightness);
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(2000));
+  animator->Step(start_time + base::Milliseconds(2000));
 
   EXPECT_FALSE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetGrayscaleForAnimation(), start_grayscale);
@@ -1569,7 +1568,7 @@
   double start_brightness(0.0);
   double target_brightness(1.0);
 
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
 
   delegate.SetBrightnessFromAnimation(start_brightness,
                                       PropertyChangeReason::NOT_FROM_ANIMATION);
@@ -1587,29 +1586,29 @@
 
   base::TimeTicks start_time = animator->last_step_time();
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(1000));
+  animator->Step(start_time + base::Milliseconds(1000));
 
   EXPECT_TRUE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetBrightnessForAnimation(), target_brightness);
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(2000));
+  animator->Step(start_time + base::Milliseconds(2000));
 
   EXPECT_TRUE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetBrightnessForAnimation(), start_brightness);
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(3000));
+  animator->Step(start_time + base::Milliseconds(3000));
 
   EXPECT_TRUE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetBrightnessForAnimation(), target_brightness);
 
   // Skip ahead by a lot.
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(1000000000));
+  animator->Step(start_time + base::Milliseconds(1000000000));
 
   EXPECT_TRUE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetBrightnessForAnimation(), start_brightness);
 
   // Skip ahead by a lot.
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(1000001000));
+  animator->Step(start_time + base::Milliseconds(1000001000));
 
   EXPECT_TRUE(animator->is_animating());
   EXPECT_FLOAT_EQ(delegate.GetBrightnessForAnimation(), target_brightness);
@@ -1629,7 +1628,7 @@
   double start_opacity(0.0);
   double target_opacity(1.0);
 
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
 
   delegate.SetOpacityFromAnimation(start_opacity,
                                    PropertyChangeReason::NOT_FROM_ANIMATION);
@@ -1716,7 +1715,7 @@
 
   EXPECT_TRUE(!observer.last_ended_sequence());
 
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
 
   delegate.SetBrightnessFromAnimation(0.0f,
                                       PropertyChangeReason::NOT_FROM_ANIMATION);
@@ -1730,7 +1729,7 @@
 
   base::TimeTicks start_time = animator->last_step_time();
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(1000));
+  animator->Step(start_time + base::Milliseconds(1000));
 
   EXPECT_EQ(observer.last_ended_sequence(), sequence);
 
@@ -1763,7 +1762,7 @@
 
   EXPECT_FALSE(observer.animations_completed());
   base::TimeTicks start_time = animator->last_step_time();
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(1000));
+  animator->Step(start_time + base::Milliseconds(1000));
   EXPECT_TRUE(observer.animations_completed());
   EXPECT_TRUE(observer.WasAnimationCompletedForProperty(
       LayerAnimationElement::BRIGHTNESS));
@@ -2371,7 +2370,7 @@
     ScopedLayerAnimationSettings settings(animator);
     base::TimeTicks now = base::TimeTicks::Now();
     animator->SetBrightness(0.5);
-    animator->Step(now + base::TimeDelta::FromSeconds(1));
+    animator->Step(now + base::Seconds(1));
     EXPECT_FALSE(destruction_observer.IsAnimatorDeleted());
   }
   // ScopedLayerAnimationSettings was destroyed, so Animator should be deleted.
@@ -2451,7 +2450,7 @@
   TestLayerAnimationObserver observer;
   TestLayerAnimationObserver removed_observer;
 
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
 
   LayerAnimationSequence* sequence = new LayerAnimationSequence(
       LayerAnimationElement::CreateBrightnessElement(1.0f, delta));
@@ -2471,7 +2470,7 @@
 
   base::TimeTicks start_time = animator->last_step_time();
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(1000));
+  animator->Step(start_time + base::Milliseconds(1000));
 
   EXPECT_EQ(observer.last_ended_sequence(), sequence);
   EXPECT_TRUE(!removed_observer.last_ended_sequence());
@@ -2487,7 +2486,7 @@
   delegate.SetOpacityFromAnimation(0.0f,
                                    PropertyChangeReason::NOT_FROM_ANIMATION);
 
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
   LayerAnimationSequence* sequence = new LayerAnimationSequence(
       LayerAnimationElement::CreateOpacityElement(1.0f, delta));
 
@@ -2515,20 +2514,20 @@
   {
     ScopedLayerAnimationSettings setter(animator.get());
 
-    base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+    base::TimeDelta delta = base::Seconds(1);
     LayerAnimationSequence* sequence = new LayerAnimationSequence(
         LayerAnimationElement::CreateBrightnessElement(1.0f, delta));
 
     animator->StartAnimation(sequence);
     base::TimeTicks start_time = animator->last_step_time();
-    animator->Step(start_time + base::TimeDelta::FromMilliseconds(500));
+    animator->Step(start_time + base::Milliseconds(500));
 
     setter.AddObserver(&observer);
 
     // Start observing an in-flight animation.
     sequence->AddObserver(&observer);
 
-    animator->Step(start_time + base::TimeDelta::FromMilliseconds(1000));
+    animator->Step(start_time + base::Milliseconds(1000));
   }
 
   EXPECT_TRUE(observer.animations_completed());
@@ -2544,7 +2543,7 @@
 
   delegate.SetBrightnessFromAnimation(0.0f,
                                       PropertyChangeReason::NOT_FROM_ANIMATION);
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
   LayerAnimationSequence* sequence = new LayerAnimationSequence(
       LayerAnimationElement::CreateBrightnessElement(1.0f, delta));
 
@@ -2554,7 +2553,7 @@
 
     animator->StartAnimation(sequence);
     base::TimeTicks start_time = animator->last_step_time();
-    animator->Step(start_time + base::TimeDelta::FromMilliseconds(500));
+    animator->Step(start_time + base::Milliseconds(500));
   }
 
   EXPECT_FALSE(observer.animations_completed());
@@ -2595,9 +2594,9 @@
   delegate.SetBoundsFromAnimation(start_bounds,
                                   PropertyChangeReason::NOT_FROM_ANIMATION);
 
-  base::TimeDelta brightness_delta = base::TimeDelta::FromSeconds(1);
-  base::TimeDelta halfway_delta = base::TimeDelta::FromSeconds(2);
-  base::TimeDelta bounds_delta = base::TimeDelta::FromSeconds(3);
+  base::TimeDelta brightness_delta = base::Seconds(1);
+  base::TimeDelta halfway_delta = base::Seconds(2);
+  base::TimeDelta bounds_delta = base::Seconds(3);
 
   std::unique_ptr<DeletingLayerAnimationObserver> observer(
       new DeletingLayerAnimationObserver(animator.get()));
@@ -2662,10 +2661,10 @@
   delegate.SetBoundsFromAnimation(start_bounds,
                                   PropertyChangeReason::NOT_FROM_ANIMATION);
 
-  base::TimeDelta bounds_delta1 = base::TimeDelta::FromMilliseconds(333);
-  base::TimeDelta bounds_delta2 = base::TimeDelta::FromMilliseconds(666);
-  base::TimeDelta bounds_delta = base::TimeDelta::FromMilliseconds(1000);
-  base::TimeDelta final_delta = base::TimeDelta::FromMilliseconds(1500);
+  base::TimeDelta bounds_delta1 = base::Milliseconds(333);
+  base::TimeDelta bounds_delta2 = base::Milliseconds(666);
+  base::TimeDelta bounds_delta = base::Milliseconds(1000);
+  base::TimeDelta final_delta = base::Milliseconds(1500);
 
   animator->StartAnimation(new LayerAnimationSequence(
       LayerAnimationElement::CreateBoundsElement(
@@ -2702,8 +2701,8 @@
   double target_brightness(1.0);
   gfx::Rect start_bounds(0, 0, 50, 50);
   gfx::Rect target_bounds(5, 5, 5, 5);
-  base::TimeDelta brightness_delta = base::TimeDelta::FromSeconds(1);
-  base::TimeDelta bounds_delta = base::TimeDelta::FromSeconds(2);
+  base::TimeDelta brightness_delta = base::Seconds(1);
+  base::TimeDelta bounds_delta = base::Seconds(2);
 
   delegate.SetBrightnessFromAnimation(start_brightness,
                                       PropertyChangeReason::NOT_FROM_ANIMATION);
@@ -2747,7 +2746,7 @@
   double start_opacity(0.0);
   double target_opacity(1.0);
 
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
 
   delegate.SetOpacityFromAnimation(start_opacity,
                                    PropertyChangeReason::NOT_FROM_ANIMATION);
@@ -2787,7 +2786,7 @@
   EXPECT_TRUE(animator->IsAnimatingProperty(LayerAnimationElement::BOUNDS));
 
   int num_live_instances = 0;
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
   std::unique_ptr<TestLayerAnimationSequence> sequence =
       std::make_unique<TestLayerAnimationSequence>(
           LayerAnimationElement::CreateBoundsElement(target_bounds, delta),
@@ -2873,7 +2872,7 @@
   SkColor middle_color = SkColorSetARGB(128, 35, 70, 120);
   SkColor target_color = SkColorSetARGB(192, 40, 80, 140);
 
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
 
   delegate.SetColorFromAnimation(start_color,
                                  PropertyChangeReason::NOT_FROM_ANIMATION);
@@ -2888,13 +2887,13 @@
 
   base::TimeTicks start_time = animator->last_step_time();
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(500));
+  animator->Step(start_time + base::Milliseconds(500));
 
   EXPECT_TRUE(animator->is_animating());
   EXPECT_EQ(ColorToString(middle_color),
             ColorToString(delegate.GetColorForAnimation()));
 
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(1000));
+  animator->Step(start_time + base::Milliseconds(1000));
 
   EXPECT_FALSE(animator->is_animating());
   EXPECT_EQ(ColorToString(target_color),
@@ -2906,7 +2905,7 @@
   scoped_refptr<LayerAnimator> animator(CreateDefaultTestAnimator());
   animator->set_preemption_strategy(LayerAnimator::ENQUEUE_NEW_ANIMATION);
   animator->SchedulePauseForProperties(
-      base::TimeDelta::FromMilliseconds(100),
+      base::Milliseconds(100),
       LayerAnimationElement::TRANSFORM | LayerAnimationElement::BOUNDS);
   EXPECT_TRUE(animator->IsAnimatingProperty(LayerAnimationElement::TRANSFORM));
   EXPECT_TRUE(animator->IsAnimatingProperty(LayerAnimationElement::BOUNDS));
@@ -3031,18 +3030,18 @@
   delegate.SetBoundsFromAnimation(start_bounds,
                                   PropertyChangeReason::NOT_FROM_ANIMATION);
 
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
   LayerAnimationSequence* brightness_sequence = new LayerAnimationSequence(
       LayerAnimationElement::CreateBrightnessElement(1.0f, delta));
   animator->StartAnimation(brightness_sequence);
 
-  delta = base::TimeDelta::FromSeconds(2);
+  delta = base::Seconds(2);
   LayerAnimationSequence* bounds_sequence = new LayerAnimationSequence(
       LayerAnimationElement::CreateBoundsElement(target_bounds, delta));
   animator->StartAnimation(bounds_sequence);
 
   base::TimeTicks start_time = animator->last_step_time();
-  animator->Step(start_time + base::TimeDelta::FromMilliseconds(1500));
+  animator->Step(start_time + base::Milliseconds(1500));
 
   EXPECT_TRUE(observer_was_deleted);
 }
@@ -3065,12 +3064,12 @@
   delegate.SetBoundsFromAnimation(start_bounds,
                                   PropertyChangeReason::NOT_FROM_ANIMATION);
 
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
   LayerAnimationSequence* opacity_sequence = new LayerAnimationSequence(
       LayerAnimationElement::CreateOpacityElement(1.0f, delta));
   animator->StartAnimation(opacity_sequence);
 
-  delta = base::TimeDelta::FromSeconds(2);
+  delta = base::Seconds(2);
   LayerAnimationSequence* bounds_sequence = new LayerAnimationSequence(
       LayerAnimationElement::CreateBoundsElement(target_bounds, delta));
   animator->StartAnimation(bounds_sequence);
@@ -3099,11 +3098,11 @@
 
   std::vector<LayerAnimationSequence*> to_start;
 
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
   to_start.push_back(new LayerAnimationSequence(
       LayerAnimationElement::CreateOpacityElement(1.0f, delta)));
 
-  delta = base::TimeDelta::FromSeconds(2);
+  delta = base::Seconds(2);
   to_start.push_back(new LayerAnimationSequence(
       LayerAnimationElement::CreateBoundsElement(target_bounds, delta)));
 
@@ -3133,11 +3132,11 @@
 
   std::vector<LayerAnimationSequence*> to_start;
 
-  base::TimeDelta delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta delta = base::Seconds(1);
   to_start.push_back(new LayerAnimationSequence(
       LayerAnimationElement::CreateOpacityElement(1.0f, delta)));
 
-  delta = base::TimeDelta::FromSeconds(2);
+  delta = base::Seconds(2);
   to_start.push_back(new LayerAnimationSequence(
       LayerAnimationElement::CreateBoundsElement(target_bounds, delta)));
 
@@ -3166,7 +3165,7 @@
   ScopedLayerAnimationSettings settings(animator.get());
   settings.SetPreemptionStrategy(
       LayerAnimator::IMMEDIATELY_ANIMATE_TO_NEW_TARGET);
-  settings.SetTransitionDuration(base::TimeDelta::FromSeconds(1));
+  settings.SetTransitionDuration(base::Seconds(1));
   animator->SetOpacity(target_opacity);
 
   EXPECT_EQ(start_opacity, delegate.GetOpacityForAnimation());
@@ -3229,7 +3228,7 @@
   test::CountCheckingLayerAnimationObserver counting_observer(
       &aborting_observer);
 
-  const base::TimeDelta sequence_duration = base::TimeDelta::FromSeconds(1);
+  const base::TimeDelta sequence_duration = base::Seconds(1);
 
   animator->ScheduleAnimation(new LayerAnimationSequence(
       LayerAnimationElement::CreateBrightnessElement(1.f, sequence_duration)));
@@ -3255,7 +3254,7 @@
   TestLayerAnimationDelegate test_delegate;
   animator->SetDelegate(&test_delegate);
   double target_opacity = 1.0;
-  base::TimeDelta time_delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta time_delta = base::Seconds(1);
   animator->ScheduleAnimation(new LayerAnimationSequence(
       LayerAnimationElement::CreateOpacityElement(target_opacity, time_delta)));
   EXPECT_FALSE(animator->is_started_);
@@ -3275,7 +3274,7 @@
   animator->SetDelegate(&collection_delegate);
 
   double target_opacity = 1.0;
-  base::TimeDelta time_delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta time_delta = base::Seconds(1);
   animator->ScheduleAnimation(new LayerAnimationSequence(
       LayerAnimationElement::CreateOpacityElement(target_opacity, time_delta)));
 
@@ -3327,7 +3326,7 @@
 
   LayerAnimator* animator = layer.GetAnimator();
   double target_opacity = 1.0;
-  base::TimeDelta time_delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta time_delta = base::Seconds(1);
 
   animator->ScheduleAnimation(new LayerAnimationSequence(
       LayerAnimationElement::CreateOpacityElement(target_opacity, time_delta)));
@@ -3371,7 +3370,7 @@
 
   LayerAnimator* animator = layer.GetAnimator();
   double target_opacity = 1.0;
-  base::TimeDelta time_delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta time_delta = base::Seconds(1);
 
   animator->ScheduleAnimation(new LayerAnimationSequence(
       LayerAnimationElement::CreateOpacityElement(target_opacity, time_delta)));
@@ -3437,18 +3436,17 @@
   delegate->SetBoundsFromAnimation(start_bounds,
                                    PropertyChangeReason::NOT_FROM_ANIMATION);
 
-  base::TimeDelta time_delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta time_delta = base::Seconds(1);
   LayerAnimationSequence* opacity = new LayerAnimationSequence(
       LayerAnimationElement::CreateOpacityElement(target_opacity, time_delta));
   opacity->AddObserver(&observer);
   animator->ScheduleAnimation(opacity);
-  time_delta = base::TimeDelta::FromSeconds(2);
+  time_delta = base::Seconds(2);
   LayerAnimationSequence* move = new LayerAnimationSequence(
       LayerAnimationElement::CreateBoundsElement(target_bounds, time_delta));
   animator->ScheduleAnimation(move);
   EXPECT_TRUE(animator->is_animating());
-  animator->Step(animator->last_step_time() +
-                 base::TimeDelta::FromMilliseconds(500));
+  animator->Step(animator->last_step_time() + base::Milliseconds(500));
   animator->StopAnimating();
 
   EXPECT_EQ(nullptr, observer.animator_layer());
@@ -3465,13 +3463,12 @@
   delegate->SetOpacityFromAnimation(0.0f,
                                     PropertyChangeReason::NOT_FROM_ANIMATION);
 
-  base::TimeDelta time_delta = base::TimeDelta::FromSeconds(1);
+  base::TimeDelta time_delta = base::Seconds(1);
   LayerAnimationSequence* opacity = new LayerAnimationSequence(
       LayerAnimationElement::CreateOpacityElement(target_opacity, time_delta));
   opacity->AddObserver(&observer);
   animator->ScheduleAnimation(opacity);
-  animator->Step(animator->last_step_time() +
-                 base::TimeDelta::FromMilliseconds(500));
+  animator->Step(animator->last_step_time() + base::Milliseconds(500));
   EXPECT_TRUE(animator->is_animating());
 
   animator->SetOpacity(1.0f);
@@ -3513,8 +3510,7 @@
   scoped_refptr<LayerAnimator> animator(CreateDefaultTestAnimator(&delegate));
   CountCyclesObserver observer(animator.get());
 
-  constexpr base::TimeDelta kAnimationDuration =
-      base::TimeDelta::FromSeconds(1);
+  constexpr base::TimeDelta kAnimationDuration = base::Seconds(1);
   LayerAnimationSequence* sequence = new LayerAnimationSequence(
       LayerAnimationElement::CreateBrightnessElement(1.0f, kAnimationDuration));
   sequence->set_is_repeating(true);
@@ -3538,8 +3534,7 @@
         CreateDefaultTestAnimator(&delegate, &observer));
     observer.set_requires_notification_when_animator_destroyed(true);
 
-    const base::TimeDelta animation_duration =
-        base::TimeDelta::FromSeconds(100);
+    const base::TimeDelta animation_duration = base::Seconds(100);
 
     LayerAnimationSequence* sequence = new LayerAnimationSequence(
         LayerAnimationElement::CreateBrightnessElement(1.0f,
@@ -3589,7 +3584,7 @@
       CreateDefaultTestAnimator(&delegate, &observer));
   observer.set_requires_notification_when_animator_destroyed(true);
 
-  const base::TimeDelta animation_duration = base::TimeDelta::FromSeconds(100);
+  const base::TimeDelta animation_duration = base::Seconds(100);
 
   LayerAnimationSequence* sequence = new LayerAnimationSequence(
       LayerAnimationElement::CreateBrightnessElement(1.0f, animation_duration));
@@ -3636,8 +3631,7 @@
         CreateDefaultTestAnimator(&delegate, &observer));
     observer.set_requires_notification_when_animator_destroyed(true);
 
-    const base::TimeDelta animation_duration =
-        base::TimeDelta::FromSeconds(100);
+    const base::TimeDelta animation_duration = base::Seconds(100);
 
     LayerAnimationSequence* first_sequence = new LayerAnimationSequence(
         LayerAnimationElement::CreateBrightnessElement(1.0f,
@@ -3710,7 +3704,7 @@
       CreateDefaultTestAnimator(&delegate, &observer));
   observer.set_requires_notification_when_animator_destroyed(true);
 
-  const base::TimeDelta animation_duration = base::TimeDelta::FromSeconds(100);
+  const base::TimeDelta animation_duration = base::Seconds(100);
 
   LayerAnimationSequence* first_sequence = new LayerAnimationSequence(
       LayerAnimationElement::CreateBrightnessElement(1.0f, animation_duration));
@@ -3761,8 +3755,7 @@
     TestLayerAnimationDelegate delegate;
     scoped_refptr<LayerAnimator> animator(CreateDefaultTestAnimator(&delegate));
 
-    constexpr base::TimeDelta kAnimationDuration =
-        base::TimeDelta::FromSeconds(1);
+    constexpr base::TimeDelta kAnimationDuration = base::Seconds(1);
     LayerAnimationSequence* sequence = new LayerAnimationSequence(
         LayerAnimationElement::CreateBrightnessElement(1.0f,
                                                        kAnimationDuration));
diff --git a/ui/compositor/layer_owner_unittest.cc b/ui/compositor/layer_owner_unittest.cc
index ed3bf26..9c21b34 100644
--- a/ui/compositor/layer_owner_unittest.cc
+++ b/ui/compositor/layer_owner_unittest.cc
@@ -135,7 +135,7 @@
           ui::ScopedAnimationDurationScaleMode::SLOW_DURATION));
   {
     ui::ScopedLayerAnimationSettings animation(child->GetAnimator());
-    animation.SetTransitionDuration(base::TimeDelta::FromMilliseconds(1000));
+    animation.SetTransitionDuration(base::Milliseconds(1000));
     animation.AddObserver(observer.get());
     gfx::Transform transform;
     transform.Scale(0.5f, 0.5f);
@@ -169,7 +169,7 @@
           ui::ScopedAnimationDurationScaleMode::SLOW_DURATION));
   {
     ui::ScopedLayerAnimationSettings animation(child->GetAnimator());
-    animation.SetTransitionDuration(base::TimeDelta::FromMilliseconds(1000));
+    animation.SetTransitionDuration(base::Milliseconds(1000));
     animation.AddObserver(observer.get());
     gfx::Transform transform;
     transform.Scale(0.5f, 0.5f);
diff --git a/ui/compositor/layer_unittest.cc b/ui/compositor/layer_unittest.cc
index ca0b9c15..5ef81ed 100644
--- a/ui/compositor/layer_unittest.cc
+++ b/ui/compositor/layer_unittest.cc
@@ -2520,7 +2520,7 @@
           ui::ScopedAnimationDurationScaleMode::SLOW_DURATION);
   {
     ui::ScopedLayerAnimationSettings animation(root->GetAnimator());
-    animation.SetTransitionDuration(base::TimeDelta::FromMilliseconds(1000));
+    animation.SetTransitionDuration(base::Milliseconds(1000));
     root->SetFillsBoundsOpaquely(false);
     root->SetColor(transparent);
   }
@@ -2619,7 +2619,7 @@
   {
     ui::ScopedLayerAnimationSettings animation(l1->GetAnimator());
     animation.AddObserver(&animation_observer);
-    animation.SetTransitionDuration(base::TimeDelta::FromMilliseconds(1000));
+    animation.SetTransitionDuration(base::Milliseconds(1000));
     l1->SetOpacity(0.f);
   }
 
@@ -2657,7 +2657,7 @@
   {
     ui::ScopedLayerAnimationSettings animation(layer_to_delete->GetAnimator());
     animation.AddObserver(&animation_observer);
-    animation.SetTransitionDuration(base::TimeDelta::FromMilliseconds(1000));
+    animation.SetTransitionDuration(base::Milliseconds(1000));
     layer_to_delete->SetTransform(transform);
   }
 
@@ -2678,7 +2678,7 @@
   {
     ui::ScopedLayerAnimationSettings animation(layer_to_delete->GetAnimator());
     animation.AddObserver(&animation_observer);
-    animation.SetTransitionDuration(base::TimeDelta::FromMilliseconds(1000));
+    animation.SetTransitionDuration(base::Milliseconds(1000));
     layer_to_delete->SetTransform(transform);
   }
 
@@ -2700,7 +2700,7 @@
   {
     ui::ScopedLayerAnimationSettings animation(child->GetAnimator());
     animation.AddObserver(&animation_observer);
-    animation.SetTransitionDuration(base::TimeDelta::FromMilliseconds(1000));
+    animation.SetTransitionDuration(base::Milliseconds(1000));
     child->SetTransform(transform);
   }
 
@@ -2723,7 +2723,7 @@
   {
     ui::ScopedLayerAnimationSettings animation(child->GetAnimator());
     animation.AddObserver(&animation_observer);
-    animation.SetTransitionDuration(base::TimeDelta::FromMilliseconds(1000));
+    animation.SetTransitionDuration(base::Milliseconds(1000));
     child->SetTransform(transform);
   }
 
@@ -2776,7 +2776,7 @@
     {
       ui::ScopedLayerAnimationSettings animation(child->GetAnimator());
       animation.AddObserver(&animation_observer);
-      animation.SetTransitionDuration(base::TimeDelta::FromMilliseconds(1000));
+      animation.SetTransitionDuration(base::Milliseconds(1000));
       child->SetBounds(gfx::Rect(10, 20, 100, 100));
     }
 
@@ -2880,8 +2880,7 @@
   child->GetAnimator()->AddObserver(&observer);
 
   std::unique_ptr<LayerAnimationElement> element =
-      ui::LayerAnimationElement::CreateOpacityElement(
-          0.5f, base::TimeDelta::FromSeconds(1));
+      ui::LayerAnimationElement::CreateOpacityElement(0.5f, base::Seconds(1));
   LayerAnimationSequence* sequence =
       new LayerAnimationSequence(std::move(element));
 
@@ -2974,8 +2973,8 @@
 
   // Start the animation.
   std::unique_ptr<LayerAnimationElement> element =
-      LayerAnimationElement::CreateBoundsElement(
-          kTargetBounds, base::TimeDelta::FromSeconds(1));
+      LayerAnimationElement::CreateBoundsElement(kTargetBounds,
+                                                 base::Seconds(1));
   ASSERT_FALSE(element->IsThreaded(layer.get()));
   LayerAnimationElement* element_raw = element.get();
   animator->StartAnimation(new LayerAnimationSequence(std::move(element)));
@@ -3080,7 +3079,7 @@
   // Start the animation.
   std::unique_ptr<LayerAnimationElement> element =
       LayerAnimationElement::CreateInterpolatedTransformElement(
-          std::move(interpolated_transform), base::TimeDelta::FromSeconds(1));
+          std::move(interpolated_transform), base::Seconds(1));
   // The LayerAnimationElement returned by CreateInterpolatedTransformElement()
   // is non-threaded.
   ASSERT_FALSE(element->IsThreaded(layer.get()));
@@ -3147,8 +3146,8 @@
   gfx::Transform target_transform;
   target_transform.Skew(10.0f, 5.0f);
   std::unique_ptr<LayerAnimationElement> element =
-      LayerAnimationElement::CreateTransformElement(
-          target_transform, base::TimeDelta::FromSeconds(1));
+      LayerAnimationElement::CreateTransformElement(target_transform,
+                                                    base::Seconds(1));
   ASSERT_TRUE(element->IsThreaded(layer.get()));
   LayerAnimationElement* element_raw = element.get();
   // At the beginning, setting the transform actually does not change, so
@@ -3214,8 +3213,8 @@
   const float initial_opacity = layer->opacity();
   const float kTargetOpacity = 0.5f;
   std::unique_ptr<LayerAnimationElement> element =
-      LayerAnimationElement::CreateOpacityElement(
-          kTargetOpacity, base::TimeDelta::FromSeconds(1));
+      LayerAnimationElement::CreateOpacityElement(kTargetOpacity,
+                                                  base::Seconds(1));
   ASSERT_TRUE(element->IsThreaded(layer.get()));
   LayerAnimationElement* element_raw = element.get();
   EXPECT_CALL(delegate,
diff --git a/ui/compositor/scoped_layer_animation_settings.cc b/ui/compositor/scoped_layer_animation_settings.cc
index fba4d7b4..ba4f370 100644
--- a/ui/compositor/scoped_layer_animation_settings.cc
+++ b/ui/compositor/scoped_layer_animation_settings.cc
@@ -118,8 +118,8 @@
       old_transition_duration_(animator->GetTransitionDuration()),
       old_tween_type_(animator->tween_type()),
       old_preemption_strategy_(animator->preemption_strategy()) {
-  SetTransitionDuration(base::TimeDelta::FromMilliseconds(
-      kScopedLayerAnimationDefaultTransitionDurationMs));
+  SetTransitionDuration(
+      base::Milliseconds(kScopedLayerAnimationDefaultTransitionDurationMs));
 }
 
 ScopedLayerAnimationSettings::~ScopedLayerAnimationSettings() {
diff --git a/ui/compositor/test/animation_throughput_reporter_test_base.cc b/ui/compositor/test/animation_throughput_reporter_test_base.cc
index dc796ee..f3549ec 100644
--- a/ui/compositor/test/animation_throughput_reporter_test_base.cc
+++ b/ui/compositor/test/animation_throughput_reporter_test_base.cc
@@ -35,7 +35,7 @@
   compositor()->SetRootLayer(&root_);
 
   frame_generation_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(16), this,
+      FROM_HERE, base::Milliseconds(16), this,
       &AnimationThroughputReporterTestBase::GenerateOneFrame);
 }
 
diff --git a/ui/compositor/test/in_process_context_factory.cc b/ui/compositor/test/in_process_context_factory.cc
index da8d7bf..90c6b14 100644
--- a/ui/compositor/test/in_process_context_factory.cc
+++ b/ui/compositor/test/in_process_context_factory.cc
@@ -359,8 +359,7 @@
         compositor->task_runner().get());
     time_source->SetTimebaseAndInterval(
         base::TimeTicks(),
-        base::TimeDelta::FromMicroseconds(base::Time::kMicrosecondsPerSecond /
-                                          refresh_rate_));
+        base::Microseconds(base::Time::kMicrosecondsPerSecond / refresh_rate_));
     begin_frame_source = std::make_unique<viz::DelayBasedBeginFrameSource>(
         std::move(time_source), viz::BeginFrameSource::kNotRestartableId);
   }
diff --git a/ui/compositor/test/multi_layer_animator_test_controller.cc b/ui/compositor/test/multi_layer_animator_test_controller.cc
index a7a6669..dec8f76 100644
--- a/ui/compositor/test/multi_layer_animator_test_controller.cc
+++ b/ui/compositor/test/multi_layer_animator_test_controller.cc
@@ -38,7 +38,7 @@
     // StepAnimations() will only progress the current running animations. Thus
     // each queued animation will require at least one 'Step' call and we cannot
     // just use a large duration here.
-    StepAnimations(base::TimeDelta::FromMilliseconds(20));
+    StepAnimations(base::Milliseconds(20));
   }
 }
 
diff --git a/ui/compositor/test/throughput_report_checker.cc b/ui/compositor/test/throughput_report_checker.cc
index 5559b7d7..aac62f3 100644
--- a/ui/compositor/test/throughput_report_checker.cc
+++ b/ui/compositor/test/throughput_report_checker.cc
@@ -11,7 +11,7 @@
 
 bool ThroughputReportChecker::WaitUntilReported() {
   DCHECK(!reported_);
-  test_base_->Advance(base::TimeDelta::FromSeconds(5));
+  test_base_->Advance(base::Seconds(5));
   return reported_;
 }
 
diff --git a/ui/compositor/throughput_tracker_unittest.cc b/ui/compositor/throughput_tracker_unittest.cc
index 8036264..2831baf 100644
--- a/ui/compositor/throughput_tracker_unittest.cc
+++ b/ui/compositor/throughput_tracker_unittest.cc
@@ -17,8 +17,7 @@
   Layer layer;
   root_layer()->Add(&layer);
 
-  LayerAnimator* animator =
-      new LayerAnimator(base::TimeDelta::FromMilliseconds(32));
+  LayerAnimator* animator = new LayerAnimator(base::Milliseconds(32));
   layer.SetAnimator(animator);
 
   ThroughputReportChecker checker(this);
diff --git a/ui/compositor/total_animation_throughput_reporter_unittest.cc b/ui/compositor/total_animation_throughput_reporter_unittest.cc
index 0fc452d..66a5dc91 100644
--- a/ui/compositor/total_animation_throughput_reporter_unittest.cc
+++ b/ui/compositor/total_animation_throughput_reporter_unittest.cc
@@ -35,8 +35,7 @@
 // the `start + duration` time.
 base::TimeDelta DeltaFromNowToTarget(const base::TimeTicks start,
                                      int duration) {
-  return start + base::TimeDelta::FromMilliseconds(duration) -
-         base::TimeTicks::Now();
+  return start + base::Milliseconds(duration) - base::TimeTicks::Now();
 }
 #endif
 
@@ -56,10 +55,10 @@
   {
     LayerAnimator* animator = layer.GetAnimator();
     ScopedLayerAnimationSettings settings(animator);
-    settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(48));
+    settings.SetTransitionDuration(base::Milliseconds(48));
     layer.SetOpacity(1.0f);
   }
-  Advance(base::TimeDelta::FromMilliseconds(32));
+  Advance(base::Milliseconds(32));
   EXPECT_FALSE(checker.reported());
   EXPECT_TRUE(checker.WaitUntilReported());
 }
@@ -77,10 +76,10 @@
     LayerAnimator* animator = layer.GetAnimator();
 
     ScopedLayerAnimationSettings settings(animator);
-    settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(64));
+    settings.SetTransitionDuration(base::Milliseconds(64));
     layer.SetOpacity(1.0f);
   }
-  Advance(base::TimeDelta::FromMilliseconds(32));
+  Advance(base::Milliseconds(32));
   EXPECT_FALSE(checker.reported());
   layer.GetAnimator()->StopAnimating();
   EXPECT_TRUE(checker.WaitUntilReported());
@@ -100,7 +99,7 @@
     LayerAnimator* animator = layer1.GetAnimator();
 
     ScopedLayerAnimationSettings settings(animator);
-    settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(48));
+    settings.SetTransitionDuration(base::Milliseconds(48));
     layer1.SetOpacity(1.0f);
   }
   Layer layer2;
@@ -111,13 +110,13 @@
     LayerAnimator* animator = layer2.GetAnimator();
 
     ScopedLayerAnimationSettings settings(animator);
-    settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(96));
+    settings.SetTransitionDuration(base::Milliseconds(96));
     layer2.SetOpacity(1.0f);
   }
 #if !defined(SANITIZER_ENABLED)
   auto start = base::TimeTicks::Now();
 #endif
-  Advance(base::TimeDelta::FromMilliseconds(32));
+  Advance(base::Milliseconds(32));
   EXPECT_FALSE(checker.reported());
 
   // The following check may fail on sanitizer builds which
@@ -145,18 +144,18 @@
     LayerAnimator* animator = layer.GetAnimator();
 
     ScopedLayerAnimationSettings settings(animator);
-    settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(48));
+    settings.SetTransitionDuration(base::Milliseconds(48));
     layer.SetOpacity(1.0f);
   }
   {
     LayerAnimator* animator = layer.GetAnimator();
 
     ScopedLayerAnimationSettings settings(animator);
-    settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(96));
+    settings.SetTransitionDuration(base::Milliseconds(96));
     layer.SetLayerBrightness(1.0f);
   }
 
-  Advance(base::TimeDelta::FromMilliseconds(64));
+  Advance(base::Milliseconds(64));
   EXPECT_FALSE(checker.reported());
   EXPECT_TRUE(checker.WaitUntilReported());
 }
@@ -176,13 +175,13 @@
     LayerAnimator* animator = layer1.GetAnimator();
 
     ScopedLayerAnimationSettings settings(animator);
-    settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(48));
+    settings.SetTransitionDuration(base::Milliseconds(48));
     layer1.SetOpacity(1.0f);
   }
 #if !defined(SANITIZER_ENABLED)
   base::TimeTicks start = base::TimeTicks::Now();
 #endif
-  Advance(base::TimeDelta::FromMilliseconds(32));
+  Advance(base::Milliseconds(32));
   EXPECT_FALSE(checker.reported());
 
   // Add new animation while animating.
@@ -194,7 +193,7 @@
     LayerAnimator* animator = layer2.GetAnimator();
 
     ScopedLayerAnimationSettings settings(animator);
-    settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(48));
+    settings.SetTransitionDuration(base::Milliseconds(48));
     layer2.SetOpacity(1.0f);
   }
 
@@ -224,7 +223,7 @@
     LayerAnimator* animator = layer1->GetAnimator();
 
     ScopedLayerAnimationSettings settings(animator);
-    settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(100));
+    settings.SetTransitionDuration(base::Milliseconds(100));
     layer1->SetOpacity(1.0f);
   }
 
@@ -236,10 +235,10 @@
     LayerAnimator* animator = layer2.GetAnimator();
 
     ScopedLayerAnimationSettings settings(animator);
-    settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(48));
+    settings.SetTransitionDuration(base::Milliseconds(48));
     layer2.SetOpacity(1.0f);
   }
-  Advance(base::TimeDelta::FromMilliseconds(48));
+  Advance(base::Milliseconds(48));
   EXPECT_FALSE(checker.reported());
   layer1.reset();
   // Aborting will be processed in next frame.
@@ -257,10 +256,10 @@
     LayerAnimator* animator = layer.GetAnimator();
 
     ScopedLayerAnimationSettings settings(animator);
-    settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(96));
+    settings.SetTransitionDuration(base::Milliseconds(96));
     layer.SetOpacity(1.0f);
   }
-  Advance(base::TimeDelta::FromMilliseconds(32));
+  Advance(base::Milliseconds(32));
   ThroughputReportChecker checker(this);
   TotalAnimationThroughputReporter reporter(compositor(),
                                             checker.repeating_callback());
@@ -275,8 +274,7 @@
   root_layer()->Add(&layer);
 
   // Set a persisted animator to |layer|.
-  LayerAnimator* animator =
-      new LayerAnimator(base::TimeDelta::FromMilliseconds(48));
+  LayerAnimator* animator = new LayerAnimator(base::Milliseconds(48));
   layer.SetAnimator(animator);
 
   // |reporter| keeps reporting as long as it is alive.
@@ -327,8 +325,7 @@
   root_layer()->Add(&layer);
 
   // Set a persisted animator to |layer|.
-  LayerAnimator* animator =
-      new LayerAnimator(base::TimeDelta::FromMilliseconds(32));
+  LayerAnimator* animator = new LayerAnimator(base::Milliseconds(32));
   layer.SetAnimator(animator);
 
   ThroughputReportChecker checker(this);
@@ -346,7 +343,7 @@
   // Report data for animation of opacity goes to 0.5.
   checker.reset();
   layer.SetOpacity(1.0f);
-  Advance(base::TimeDelta::FromMilliseconds(100));
+  Advance(base::Milliseconds(100));
   EXPECT_FALSE(checker.reported());
 }
 
@@ -373,8 +370,7 @@
   root_layer()->Add(&layer);
 
   // Set a persisted animator to |layer|.
-  LayerAnimator* animator =
-      new LayerAnimator(base::TimeDelta::FromMilliseconds(32));
+  LayerAnimator* animator = new LayerAnimator(base::Milliseconds(32));
   layer.SetAnimator(animator);
 
   // |reporter| keeps reporting as long as it is alive.
@@ -401,8 +397,7 @@
   root_layer()->Add(&layer);
 
   // Set a persisted animator to |layer|.
-  LayerAnimator* animator =
-      new LayerAnimator(base::TimeDelta::FromMilliseconds(32));
+  LayerAnimator* animator = new LayerAnimator(base::Milliseconds(32));
   layer.SetAnimator(animator);
 
   ui::Compositor* c = compositor();
diff --git a/ui/compositor/transform_animation_curve_adapter_unittest.cc b/ui/compositor/transform_animation_curve_adapter_unittest.cc
index e042faa5..12476f6 100644
--- a/ui/compositor/transform_animation_curve_adapter_unittest.cc
+++ b/ui/compositor/transform_animation_curve_adapter_unittest.cc
@@ -12,7 +12,7 @@
 namespace {
 
 TEST(TransformAnimationCurveAdapterTest, MaximumAnimationScale) {
-  auto duration = base::TimeDelta::FromSeconds(1);
+  auto duration = base::Seconds(1);
   float kArbitraryScale = 123.f;
   float scale = kArbitraryScale;
   EXPECT_TRUE(TransformAnimationCurveAdapter(gfx::Tween::LINEAR,
diff --git a/ui/compositor_extra/shadow.cc b/ui/compositor_extra/shadow.cc
index cc35406..c6487c63 100644
--- a/ui/compositor_extra/shadow.cc
+++ b/ui/compositor_extra/shadow.cc
@@ -62,7 +62,7 @@
     ui::ScopedLayerAnimationSettings settings(fading_layer()->GetAnimator());
     settings.AddObserver(this);
     settings.SetTransitionDuration(
-        base::TimeDelta::FromMilliseconds(kShadowAnimationDurationMs));
+        base::Milliseconds(kShadowAnimationDurationMs));
     fading_layer()->SetOpacity(0.f);
   }
 
@@ -70,7 +70,7 @@
     // We don't care to observe this one.
     ui::ScopedLayerAnimationSettings settings(shadow_layer()->GetAnimator());
     settings.SetTransitionDuration(
-        base::TimeDelta::FromMilliseconds(kShadowAnimationDurationMs));
+        base::Milliseconds(kShadowAnimationDurationMs));
     shadow_layer()->SetOpacity(1.f);
   }
 }
diff --git a/ui/display/fake/fake_display_delegate.cc b/ui/display/fake/fake_display_delegate.cc
index f941343..e1e18bc2 100644
--- a/ui/display/fake/fake_display_delegate.cc
+++ b/ui/display/fake/fake_display_delegate.cc
@@ -31,8 +31,7 @@
 constexpr uint32_t kProductCodeHash = 3692486807;
 
 // Delay for Configure().
-constexpr base::TimeDelta kConfigureDisplayDelay =
-    base::TimeDelta::FromMilliseconds(200);
+constexpr base::TimeDelta kConfigureDisplayDelay = base::Milliseconds(200);
 
 bool AreModesEqual(const display::DisplayMode& lhs,
                    const display::DisplayMode& rhs) {
diff --git a/ui/display/mac/display_link_mac.cc b/ui/display/mac/display_link_mac.cc
index 6b0e734a..5c3f89c2 100644
--- a/ui/display/mac/display_link_mac.cc
+++ b/ui/display/mac/display_link_mac.cc
@@ -207,7 +207,7 @@
   timebase_and_interval_valid_ = true;
 
   // Don't restart the display link for 10 seconds.
-  recalculate_time_ = base::TimeTicks::Now() + base::TimeDelta::FromSeconds(10);
+  recalculate_time_ = base::TimeTicks::Now() + base::Seconds(10);
   StopDisplayLink();
 }
 
diff --git a/ui/display/manager/content_protection_manager.cc b/ui/display/manager/content_protection_manager.cc
index f5672901..7705bc16 100644
--- a/ui/display/manager/content_protection_manager.cc
+++ b/ui/display/manager/content_protection_manager.cc
@@ -21,7 +21,7 @@
 namespace {
 
 // HDCP requires suppressing content within 2 seconds when authentication drops.
-constexpr auto kDisplaySecurityPollingPeriod = base::TimeDelta::FromSeconds(2);
+constexpr auto kDisplaySecurityPollingPeriod = base::Seconds(2);
 
 }  // namespace
 
diff --git a/ui/display/manager/display_configurator.cc b/ui/display/manager/display_configurator.cc
index 43d42fe..db168d9e 100644
--- a/ui/display/manager/display_configurator.cc
+++ b/ui/display/manager/display_configurator.cc
@@ -879,9 +879,8 @@
 
   // Configure displays with |kConfigureDelayMs| delay,
   // so that time-consuming ConfigureDisplays() won't be called multiple times.
-  configure_timer_.Start(FROM_HERE,
-                         base::TimeDelta::FromMilliseconds(kConfigureDelayMs),
-                         this, &DisplayConfigurator::ConfigureDisplays);
+  configure_timer_.Start(FROM_HERE, base::Milliseconds(kConfigureDelayMs), this,
+                         &DisplayConfigurator::ConfigureDisplays);
 }
 
 void DisplayConfigurator::OnDisplaySnapshotsInvalidated() {
@@ -932,8 +931,7 @@
     // before configuration is performed, so we won't immediately resize the
     // desktops and the windows on it to fit on a single display.
     configure_timer_.Start(
-        FROM_HERE,
-        base::TimeDelta::FromMilliseconds(kResumeConfigureMultiDisplayDelayMs),
+        FROM_HERE, base::Milliseconds(kResumeConfigureMultiDisplayDelayMs),
         this, &DisplayConfigurator::ConfigureDisplays);
   }
 
@@ -1012,8 +1010,7 @@
 
   if (success && !configure_timer_.IsRunning() &&
       ShouldRunConfigurationTask()) {
-    configure_timer_.Start(FROM_HERE,
-                           base::TimeDelta::FromMilliseconds(kConfigureDelayMs),
+    configure_timer_.Start(FROM_HERE, base::Milliseconds(kConfigureDelayMs),
                            this, &DisplayConfigurator::RunPendingConfiguration);
   } else {
     // If a new configuration task isn't scheduled respond to all queued
diff --git a/ui/display/manager/display_configurator_unittest.cc b/ui/display/manager/display_configurator_unittest.cc
index aa8cdfd..7e4704da 100644
--- a/ui/display/manager/display_configurator_unittest.cc
+++ b/ui/display/manager/display_configurator_unittest.cc
@@ -49,11 +49,11 @@
 };
 
 // Expected immediate configurations should be done without any delays.
-constexpr base::TimeDelta kNoDelay = base::TimeDelta::FromMilliseconds(0);
+constexpr base::TimeDelta kNoDelay = base::Milliseconds(0);
 
 // The expected configuration delay when resuming from suspend while in 2+
 // display mode.
-constexpr base::TimeDelta kLongDelay = base::TimeDelta::FromMilliseconds(
+constexpr base::TimeDelta kLongDelay = base::Milliseconds(
     DisplayConfigurator::kResumeConfigureMultiDisplayDelayMs);
 
 class TestObserver : public DisplayConfigurator::Observer {
@@ -1305,9 +1305,8 @@
             log_->GetActionsAndClear());
 
   config_waiter_.Reset();
-  EXPECT_EQ(
-      base::TimeDelta::FromMilliseconds(DisplayConfigurator::kConfigureDelayMs),
-      config_waiter_.Wait());
+  EXPECT_EQ(base::Milliseconds(DisplayConfigurator::kConfigureDelayMs),
+            config_waiter_.Wait());
   EXPECT_EQ(CALLBACK_NOT_CALLED, config_waiter_.callback_result());
   EXPECT_EQ(kNoDelay, config_waiter_.Wait());
   EXPECT_EQ(CALLBACK_SUCCESS, config_waiter_.callback_result());
@@ -1572,9 +1571,8 @@
   EXPECT_EQ(CALLBACK_SUCCESS, config_waiter_.callback_result());
   config_waiter_.Reset();
   // Run the task posted by OnConfigured().
-  EXPECT_EQ(
-      base::TimeDelta::FromMilliseconds(DisplayConfigurator::kConfigureDelayMs),
-      config_waiter_.Wait());
+  EXPECT_EQ(base::Milliseconds(DisplayConfigurator::kConfigureDelayMs),
+            config_waiter_.Wait());
   EXPECT_EQ(CALLBACK_NOT_CALLED, config_waiter_.callback_result());
   config_waiter_.Reset();
   // Run the task posted by TestNativeDisplayDelegate::GetDisplays().
diff --git a/ui/display/manager/display_manager.cc b/ui/display/manager/display_manager.cc
index 4b278ce..b35e1c4 100644
--- a/ui/display/manager/display_manager.cc
+++ b/ui/display/manager/display_manager.cc
@@ -1560,7 +1560,7 @@
         base::BindOnce(&OnInternalDisplayZoomChanged, zoom_factor));
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
         FROM_HERE, on_display_zoom_modify_timeout_.callback(),
-        base::TimeDelta::FromSeconds(kDisplayZoomModifyTimeoutSec));
+        base::Seconds(kDisplayZoomModifyTimeoutSec));
   }
 
   iter->second.set_zoom_factor(zoom_factor);
diff --git a/ui/display/manager/touch_device_manager_unittest.cc b/ui/display/manager/touch_device_manager_unittest.cc
index 3665047..b72e67d 100644
--- a/ui/display/manager/touch_device_manager_unittest.cc
+++ b/ui/display/manager/touch_device_manager_unittest.cc
@@ -33,7 +33,7 @@
 TouchDeviceManager::TouchAssociationInfo CreateTouchAssociationInfo(
     int days_old) {
   TouchDeviceManager::TouchAssociationInfo info;
-  info.timestamp = base::Time::Now() - base::TimeDelta::FromDays(days_old);
+  info.timestamp = base::Time::Now() - base::Days(days_old);
   return info;
 }
 
diff --git a/ui/display/screen.cc b/ui/display/screen.cc
index 4317bc0..b2d5cbc 100644
--- a/ui/display/screen.cc
+++ b/ui/display/screen.cc
@@ -82,7 +82,7 @@
 
 base::TimeDelta Screen::CalculateIdleTime() const {
   NOTIMPLEMENTED_LOG_ONCE();
-  return base::TimeDelta::FromSeconds(0);
+  return base::Seconds(0);
 }
 
 gfx::Rect Screen::ScreenToDIPRectInWindow(gfx::NativeWindow window,
diff --git a/ui/events/android/motion_event_android.cc b/ui/events/android/motion_event_android.cc
index 1dbd068..a208598 100644
--- a/ui/events/android/motion_event_android.cc
+++ b/ui/events/android/motion_event_android.cc
@@ -160,8 +160,7 @@
 }
 
 base::TimeTicks FromAndroidTime(int64_t time_ms) {
-  base::TimeTicks timestamp =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(time_ms);
+  base::TimeTicks timestamp = base::TimeTicks() + base::Milliseconds(time_ms);
   ValidateEventTimeClock(&timestamp);
   return timestamp;
 }
diff --git a/ui/events/android/motion_event_android_unittest.cc b/ui/events/android/motion_event_android_unittest.cc
index 8714dab..64abf05 100644
--- a/ui/events/android/motion_event_android_unittest.cc
+++ b/ui/events/android/motion_event_android_unittest.cc
@@ -60,7 +60,7 @@
 TEST(MotionEventAndroidTest, Constructor) {
   constexpr int kEventTimeMS = 5;
   base::TimeTicks event_time =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(kEventTimeMS);
+      base::TimeTicks() + base::Milliseconds(kEventTimeMS);
   ui::test::ScopedEventTestTickClock clock;
   clock.SetNowTicks(event_time);
 
@@ -129,7 +129,7 @@
 TEST(MotionEventAndroidTest, Cancel) {
   constexpr const int kEventTimeMS = 5;
   base::TimeTicks event_time =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(kEventTimeMS);
+      base::TimeTicks() + base::Milliseconds(kEventTimeMS);
   ui::test::ScopedEventTestTickClock clock;
   clock.SetNowTicks(event_time);
 
diff --git a/ui/events/base_event_utils.cc b/ui/events/base_event_utils.cc
index 29d057f..28368362 100644
--- a/ui/events/base_event_utils.cc
+++ b/ui/events/base_event_utils.cc
@@ -65,7 +65,7 @@
 }
 
 base::TimeTicks EventTimeStampFromSeconds(double time_stamp_seconds) {
-  return base::TimeTicks() + base::TimeDelta::FromSecondsD(time_stamp_seconds);
+  return base::TimeTicks() + base::Seconds(time_stamp_seconds);
 }
 
 bool IsValidTimebase(base::TimeTicks now, base::TimeTicks timestamp) {
diff --git a/ui/events/blink/blink_event_util.cc b/ui/events/blink/blink_event_util.cc
index 9076f55..a4b0be59 100644
--- a/ui/events/blink/blink_event_util.cc
+++ b/ui/events/blink/blink_event_util.cc
@@ -792,7 +792,7 @@
   }
   auto web_event = std::make_unique<WebGestureEvent>(
       event_type, WebInputEvent::kNoModifiers,
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(event.time()));
+      base::TimeTicks() + base::Milliseconds(event.time()));
   // NOTE: Source gesture events are synthetic ones that simulate
   // gesture from keyboard (zoom in/out) for now. Should populate Blink
   // event's fields better when extended to handle more cases.
diff --git a/ui/events/blink/fling_booster.cc b/ui/events/blink/fling_booster.cc
index 5e5d6c80..7509de02 100644
--- a/ui/events/blink/fling_booster.cc
+++ b/ui/events/blink/fling_booster.cc
@@ -23,8 +23,7 @@
 // ticks, scrolls or flings of sufficient velocity relative to the current fling
 // are received. The default value on Android native views is 40ms, but we use a
 // slightly increased value to accomodate small IPC message delays.
-constexpr base::TimeDelta kFlingBoostTimeoutDelay =
-    base::TimeDelta::FromSecondsD(0.05);
+constexpr base::TimeDelta kFlingBoostTimeoutDelay = base::Seconds(0.05);
 }  // namespace
 
 namespace ui {
diff --git a/ui/events/blink/fling_booster_unittest.cc b/ui/events/blink/fling_booster_unittest.cc
index 1fe81c9..f2fd6ec 100644
--- a/ui/events/blink/fling_booster_unittest.cc
+++ b/ui/events/blink/fling_booster_unittest.cc
@@ -25,8 +25,7 @@
 // Constants from fling_booster.cc
 static constexpr double kMinBoostScrollSpeed = 150.;
 static constexpr double kMinBoostFlingSpeed = 350.;
-static constexpr base::TimeDelta kFlingBoostTimeoutDelay =
-    base::TimeDelta::FromSecondsD(0.05);
+static constexpr base::TimeDelta kFlingBoostTimeoutDelay = base::Seconds(0.05);
 
 class FlingBoosterTest : public testing::Test {
  public:
diff --git a/ui/events/blink/web_input_event_builders_win_unittest.cc b/ui/events/blink/web_input_event_builders_win_unittest.cc
index 97feeb3..9013363b 100644
--- a/ui/events/blink/web_input_event_builders_win_unittest.cc
+++ b/ui/events/blink/web_input_event_builders_win_unittest.cc
@@ -32,7 +32,7 @@
   // Synthesize a mouse move with x = 300 and y = 200.
   WebMouseEvent mouse_move = ui::WebMouseEventBuilder::Build(
       ::GetDesktopWindow(), WM_MOUSEMOVE, 0, MAKELPARAM(300, 200),
-      base::TimeTicks() + base::TimeDelta::FromSeconds(100),
+      base::TimeTicks() + base::Seconds(100),
       blink::WebPointerProperties::PointerType::kMouse);
 
   // The WebMouseEvent.position field should be in pixels on return and hence
@@ -65,7 +65,7 @@
 
   WebMouseWheelEvent mouse_wheel = WebMouseWheelEventBuilder::Build(
       ::GetDesktopWindow(), WM_MOUSEWHEEL, MAKEWPARAM(0, -WHEEL_DELTA),
-      MAKELPARAM(0, 0), base::TimeTicks() + base::TimeDelta::FromSeconds(100),
+      MAKELPARAM(0, 0), base::TimeTicks() + base::Seconds(100),
       blink::WebPointerProperties::PointerType::kMouse);
   EXPECT_EQ(ui::ScrollGranularity::kScrollByPercentage,
             mouse_wheel.delta_units);
@@ -78,7 +78,7 @@
   // For a horizontal scroll, Windows is <- -/+ ->, WebKit <- +/- ->.
   mouse_wheel = WebMouseWheelEventBuilder::Build(
       ::GetDesktopWindow(), WM_MOUSEHWHEEL, MAKEWPARAM(0, -WHEEL_DELTA),
-      MAKELPARAM(0, 0), base::TimeTicks() + base::TimeDelta::FromSeconds(100),
+      MAKELPARAM(0, 0), base::TimeTicks() + base::Seconds(100),
       blink::WebPointerProperties::PointerType::kMouse);
   EXPECT_EQ(ui::ScrollGranularity::kScrollByPercentage,
             mouse_wheel.delta_units);
@@ -103,8 +103,7 @@
     WebMouseWheelEventBuilder::Build(
         ::GetDesktopWindow(), message, MAKEWPARAM(0, -WHEEL_DELTA),
         MAKELPARAM(0, 0),
-        base::TimeTicks() + base::TimeDelta::FromMilliseconds(event_timestamp),
-        type);
+        base::TimeTicks() + base::Milliseconds(event_timestamp), type);
   }
 
   for (std::map<int, int>::iterator it = histogram_expectations.begin();
diff --git a/ui/events/event_unittest.cc b/ui/events/event_unittest.cc
index 91ed7386..591ba9f 100644
--- a/ui/events/event_unittest.cc
+++ b/ui/events/event_unittest.cc
@@ -85,8 +85,8 @@
   LocatedEventTestApi test_event2(&event2);
 
   base::TimeTicks start = base::TimeTicks::Now();
-  base::TimeTicks soon = start + base::TimeDelta::FromMilliseconds(1);
-  base::TimeTicks later = start + base::TimeDelta::FromMilliseconds(1000);
+  base::TimeTicks soon = start + base::Milliseconds(1);
+  base::TimeTicks later = start + base::Milliseconds(1000);
 
   // Same time stamp (likely the same native event).
   test_event1.set_location(gfx::Point(0, 0));
@@ -124,9 +124,9 @@
 // and reliable.
 TEST(EventTest, RepeatedKeyEvent) {
   base::TimeTicks start = base::TimeTicks::Now();
-  base::TimeTicks time1 = start + base::TimeDelta::FromMilliseconds(1);
-  base::TimeTicks time2 = start + base::TimeDelta::FromMilliseconds(2);
-  base::TimeTicks time3 = start + base::TimeDelta::FromMilliseconds(3);
+  base::TimeTicks time1 = start + base::Milliseconds(1);
+  base::TimeTicks time2 = start + base::Milliseconds(2);
+  base::TimeTicks time3 = start + base::Milliseconds(3);
 
   KeyEvent event1(ET_KEY_PRESSED, VKEY_A, 0, start);
   KeyEvent event2(ET_KEY_PRESSED, VKEY_A, 0, time1);
@@ -155,9 +155,9 @@
   KeyEvent::SetSynthesizeKeyRepeatEnabled(false);
 
   base::TimeTicks start = base::TimeTicks::Now();
-  base::TimeTicks time1 = start + base::TimeDelta::FromMilliseconds(1);
-  base::TimeTicks time2 = start + base::TimeDelta::FromMilliseconds(2);
-  base::TimeTicks time3 = start + base::TimeDelta::FromMilliseconds(3);
+  base::TimeTicks time1 = start + base::Milliseconds(1);
+  base::TimeTicks time2 = start + base::Milliseconds(2);
+  base::TimeTicks time3 = start + base::Milliseconds(3);
 
   KeyEvent event1(ET_KEY_PRESSED, VKEY_A, 0, start);
   KeyEvent event2(ET_KEY_PRESSED, VKEY_A, 0, time1);
@@ -181,7 +181,7 @@
 TEST(EventTest, DoubleClickRequiresUniqueTimestamp) {
   const gfx::Point point(0, 0);
   base::TimeTicks time1 = base::TimeTicks::Now();
-  base::TimeTicks time2 = time1 + base::TimeDelta::FromMilliseconds(1);
+  base::TimeTicks time2 = time1 + base::Milliseconds(1);
 
   // Re-processing the same press doesn't yield a double-click.
   MouseEvent event(ET_MOUSE_PRESSED, point, point, time1, 0, 0);
@@ -222,8 +222,8 @@
 TEST(EventTest, SingleClickRightLeft) {
   const gfx::Point point(0, 0);
   base::TimeTicks time1 = base::TimeTicks::Now();
-  base::TimeTicks time2 = time1 + base::TimeDelta::FromMilliseconds(1);
-  base::TimeTicks time3 = time1 + base::TimeDelta::FromMilliseconds(2);
+  base::TimeTicks time2 = time1 + base::Milliseconds(1);
+  base::TimeTicks time3 = time1 + base::Milliseconds(2);
 
   MouseEvent event(ET_MOUSE_PRESSED, point, point, time1,
                    ui::EF_RIGHT_MOUSE_BUTTON, ui::EF_RIGHT_MOUSE_BUTTON);
@@ -955,8 +955,7 @@
 
  protected:
   void UpdateTickClock(DWORD timestamp) {
-    tick_clock_.SetNowTicks(base::TimeTicks() +
-                            base::TimeDelta::FromMilliseconds(timestamp));
+    tick_clock_.SetNowTicks(base::TimeTicks() + base::Milliseconds(timestamp));
   }
 
   base::test::TaskEnvironment task_environment_{
@@ -992,12 +991,11 @@
                                         base::TimeTicks::Now());
     ComputeEventLatencyOSFromPOINTER_INFO(ET_TOUCH_PRESSED, pointer_info,
                                           base::TimeTicks::Now());
-    histogram_tester.ExpectUniqueSample(
-        "Event.Latency.OS.TOUCH_PRESSED",
-        base::TimeDelta::FromMilliseconds(5).InMicroseconds(), 2);
-    histogram_tester.ExpectUniqueTimeSample(
-        "Event.Latency.OS2.TOUCH_PRESSED", base::TimeDelta::FromMilliseconds(5),
-        2);
+    histogram_tester.ExpectUniqueSample("Event.Latency.OS.TOUCH_PRESSED",
+                                        base::Milliseconds(5).InMicroseconds(),
+                                        2);
+    histogram_tester.ExpectUniqueTimeSample("Event.Latency.OS2.TOUCH_PRESSED",
+                                            base::Milliseconds(5), 2);
   }
 
   // Simulate ::GetTickCount advancing 15 msec, which wraps around past 0.
@@ -1011,12 +1009,11 @@
                                         base::TimeTicks::Now());
     ComputeEventLatencyOSFromPOINTER_INFO(ET_TOUCH_PRESSED, pointer_info,
                                           base::TimeTicks::Now());
-    histogram_tester.ExpectUniqueSample(
-        "Event.Latency.OS.TOUCH_PRESSED",
-        base::TimeDelta::FromMilliseconds(15).InMicroseconds(), 2);
-    histogram_tester.ExpectUniqueTimeSample(
-        "Event.Latency.OS2.TOUCH_PRESSED",
-        base::TimeDelta::FromMilliseconds(15), 2);
+    histogram_tester.ExpectUniqueSample("Event.Latency.OS.TOUCH_PRESSED",
+                                        base::Milliseconds(15).InMicroseconds(),
+                                        2);
+    histogram_tester.ExpectUniqueTimeSample("Event.Latency.OS2.TOUCH_PRESSED",
+                                            base::Milliseconds(15), 2);
   }
 
   // Simulate an event with a bogus timestamp. The delta should be recorded as
@@ -1037,7 +1034,7 @@
 TEST_F(EventLatencyTest, ComputeEventLatencyOSFromPerformanceCounter) {
   // Make sure there's enough time before Now() to create an event that's
   // several minutes old.
-  task_environment_.AdvanceClock(base::TimeDelta::FromMinutes(5));
+  task_environment_.AdvanceClock(base::Minutes(5));
 
   // Convert the current time to units directly compatible with the Performance
   // Counter.
@@ -1063,11 +1060,10 @@
     base::HistogramTester histogram_tester;
     ComputeEventLatencyOSFromPOINTER_INFO(ET_TOUCH_PRESSED, pointer_info,
                                           base::TimeTicks::Now());
-    histogram_tester.ExpectUniqueSample(
-        "Event.Latency.OS.TOUCH_PRESSED",
-        base::TimeDelta::FromSeconds(1).InMicroseconds(), 1);
+    histogram_tester.ExpectUniqueSample("Event.Latency.OS.TOUCH_PRESSED",
+                                        base::Seconds(1).InMicroseconds(), 1);
     histogram_tester.ExpectUniqueTimeSample("Event.Latency.OS2.TOUCH_PRESSED",
-                                            base::TimeDelta::FromSeconds(1), 1);
+                                            base::Seconds(1), 1);
   }
 
   // Event created several minutes before now (IsValidTimebase should return
@@ -1127,11 +1123,10 @@
     base::HistogramTester histogram_tester;
     ComputeEventLatencyOSFromPOINTER_INFO(ET_TOUCH_PRESSED, pointer_info,
                                           base::TimeTicks::Now());
-    histogram_tester.ExpectUniqueSample(
-        "Event.Latency.OS.TOUCH_PRESSED",
-        base::TimeDelta::FromSeconds(1).InMicroseconds(), 1);
+    histogram_tester.ExpectUniqueSample("Event.Latency.OS.TOUCH_PRESSED",
+                                        base::Seconds(1).InMicroseconds(), 1);
     histogram_tester.ExpectUniqueTimeSample("Event.Latency.OS2.TOUCH_PRESSED",
-                                            base::TimeDelta::FromSeconds(1), 1);
+                                            base::Seconds(1), 1);
   }
 }
 
diff --git a/ui/events/event_utils.cc b/ui/events/event_utils.cc
index f8ee007..46c21e01 100644
--- a/ui/events/event_utils.cc
+++ b/ui/events/event_utils.cc
@@ -27,10 +27,9 @@
 
 int g_custom_event_types = ET_LAST;
 
-#define UMA_HISTOGRAM_EVENT_LATENCY_TIMES(name, sample)            \
-  UMA_HISTOGRAM_CUSTOM_TIMES(name, sample,                         \
-                             base::TimeDelta::FromMilliseconds(1), \
-                             base::TimeDelta::FromMinutes(1), 50)
+#define UMA_HISTOGRAM_EVENT_LATENCY_TIMES(name, sample)           \
+  UMA_HISTOGRAM_CUSTOM_TIMES(name, sample, base::Milliseconds(1), \
+                             base::Minutes(1), 50)
 
 }  // namespace
 
diff --git a/ui/events/fraction_of_time_without_user_input_recorder.cc b/ui/events/fraction_of_time_without_user_input_recorder.cc
index d00e95c..8733301d 100644
--- a/ui/events/fraction_of_time_without_user_input_recorder.cc
+++ b/ui/events/fraction_of_time_without_user_input_recorder.cc
@@ -10,10 +10,8 @@
 
 namespace {
 
-constexpr base::TimeDelta DEFAULT_WINDOW_SIZE =
-    base::TimeDelta::FromSecondsD(10);
-constexpr base::TimeDelta DEFAULT_IDLE_TIMEOUT =
-    base::TimeDelta::FromSecondsD(0.05);
+constexpr base::TimeDelta DEFAULT_WINDOW_SIZE = base::Seconds(10);
+constexpr base::TimeDelta DEFAULT_IDLE_TIMEOUT = base::Seconds(0.05);
 
 }  // namespace
 
diff --git a/ui/events/fraction_of_time_without_user_input_recorder_unittest.cc b/ui/events/fraction_of_time_without_user_input_recorder_unittest.cc
index 74a7a1b..fb4efbc 100644
--- a/ui/events/fraction_of_time_without_user_input_recorder_unittest.cc
+++ b/ui/events/fraction_of_time_without_user_input_recorder_unittest.cc
@@ -48,8 +48,7 @@
 
 TEST(FractionOfTimeWithoutUserInputRecorderTest, IntervalIncludesIdleTimeout) {
   TestFractionOfTimeWithoutUserInputRecorder idle_fraction_recorder;
-  idle_fraction_recorder.set_idle_timeout_for_test(
-      base::TimeDelta::FromSecondsD(0.1));
+  idle_fraction_recorder.set_idle_timeout_for_test(base::Seconds(0.1));
 
   idle_fraction_recorder.RecordEventAtTime(EventTimeStampFromSeconds(0.5));
 
@@ -65,26 +64,25 @@
 
 TEST(FractionOfTimeWithoutUserInputRecorderTest, TwoLongIntervals) {
   TestFractionOfTimeWithoutUserInputRecorder idle_fraction_recorder;
-  idle_fraction_recorder.set_idle_timeout_for_test(
-      base::TimeDelta::FromSecondsD(0.1));
+  idle_fraction_recorder.set_idle_timeout_for_test(base::Seconds(0.1));
 
   // Send events regularly between 0.1 seconds and 0.1 + 20 * 0.05 = 1.10
   // seconds.
-  base::TimeTicks time = base::TimeTicks() + base::TimeDelta::FromSecondsD(0.1);
+  base::TimeTicks time = base::TimeTicks() + base::Seconds(0.1);
   idle_fraction_recorder.RecordEventAtTime(time);
 
   for (int i = 0; i < 20; ++i) {
-    time += base::TimeDelta::FromSecondsD(0.05);
+    time += base::Seconds(0.05);
     idle_fraction_recorder.RecordEventAtTime(time);
   }
 
   // Send events regularly between 2.2 seconds and 2.2 + 20 * 0.05 = 3.20
   // seconds.
-  time = base::TimeTicks() + base::TimeDelta::FromSecondsD(2.2);
+  time = base::TimeTicks() + base::Seconds(2.2);
   idle_fraction_recorder.RecordEventAtTime(time);
 
   for (int i = 0; i < 20; ++i) {
-    time += base::TimeDelta::FromSecondsD(0.05);
+    time += base::Seconds(0.05);
     idle_fraction_recorder.RecordEventAtTime(time);
   }
 
@@ -101,8 +99,7 @@
 
 TEST(FractionOfTimeWithoutUserInputRecorderTest, SingleShortRange) {
   TestFractionOfTimeWithoutUserInputRecorder idle_fraction_recorder;
-  idle_fraction_recorder.set_window_size_for_test(
-      base::TimeDelta::FromSecondsD(1));
+  idle_fraction_recorder.set_window_size_for_test(base::Seconds(1));
 
   base::HistogramTester tester;
   // Start window at 1 second.
@@ -121,8 +118,7 @@
 
 TEST(FractionOfTimeWithoutUserInputRecorderTest, SingleLongRange) {
   TestFractionOfTimeWithoutUserInputRecorder idle_fraction_recorder;
-  idle_fraction_recorder.set_window_size_for_test(
-      base::TimeDelta::FromSecondsD(1));
+  idle_fraction_recorder.set_window_size_for_test(base::Seconds(1));
 
   base::HistogramTester tester;
 
@@ -144,8 +140,7 @@
 
 TEST(FractionOfTimeWithoutUserInputRecorderTest, TwoLongRanges) {
   TestFractionOfTimeWithoutUserInputRecorder idle_fraction_recorder;
-  idle_fraction_recorder.set_window_size_for_test(
-      base::TimeDelta::FromSecondsD(1));
+  idle_fraction_recorder.set_window_size_for_test(base::Seconds(1));
 
   base::HistogramTester tester;
 
diff --git a/ui/events/gesture_detection/filtered_gesture_provider_unittest.cc b/ui/events/gesture_detection/filtered_gesture_provider_unittest.cc
index be29cff9..79c86d1 100644
--- a/ui/events/gesture_detection/filtered_gesture_provider_unittest.cc
+++ b/ui/events/gesture_detection/filtered_gesture_provider_unittest.cc
@@ -78,7 +78,7 @@
   EXPECT_FALSE(result.moved_beyond_slop_region);
 
   // A fling should set the bit right away.
-  time += base::TimeDelta::FromMilliseconds(10);
+  time += base::Milliseconds(10);
   event.MovePoint(0, kSlopRegion * 50, 0);
   event.set_event_time(time);
   result = provider.OnTouchEvent(event);
diff --git a/ui/events/gesture_detection/gesture_detector.cc b/ui/events/gesture_detection/gesture_detector.cc
index f2489f9..8623f1dc 100644
--- a/ui/events/gesture_detection/gesture_detector.cc
+++ b/ui/events/gesture_detection/gesture_detector.cc
@@ -38,10 +38,10 @@
 // versions found in Android's ViewConfiguration. Do not change these default
 // values without explicitly consulting an OWNER.
 GestureDetector::Config::Config()
-    : longpress_timeout(base::TimeDelta::FromMilliseconds(500)),
-      showpress_timeout(base::TimeDelta::FromMilliseconds(180)),
-      double_tap_timeout(base::TimeDelta::FromMilliseconds(300)),
-      double_tap_min_time(base::TimeDelta::FromMilliseconds(40)),
+    : longpress_timeout(base::Milliseconds(500)),
+      showpress_timeout(base::Milliseconds(180)),
+      double_tap_timeout(base::Milliseconds(300)),
+      double_tap_min_time(base::Milliseconds(40)),
       touch_slop(8),
       double_tap_slop(100),
       minimum_fling_velocity(50),
@@ -51,7 +51,7 @@
       maximum_swipe_deviation_angle(20.f),
       two_finger_tap_enabled(false),
       two_finger_tap_max_separation(300),
-      two_finger_tap_timeout(base::TimeDelta::FromMilliseconds(700)),
+      two_finger_tap_timeout(base::Milliseconds(700)),
       single_tap_repeat_interval(1),
 #if BUILDFLAG(IS_CHROMEOS_ASH)
       stylus_button_accelerated_longpress_enabled(true),
diff --git a/ui/events/gesture_detection/gesture_provider_config_helper.cc b/ui/events/gesture_detection/gesture_provider_config_helper.cc
index 7f27cee84..1c9809c 100644
--- a/ui/events/gesture_detection/gesture_provider_config_helper.cc
+++ b/ui/events/gesture_detection/gesture_provider_config_helper.cc
@@ -25,11 +25,11 @@
     scoped_refptr<base::SequencedTaskRunner> task_runner) {
   GestureDetector::Config config;
   config.longpress_timeout =
-      base::TimeDelta::FromMilliseconds(gesture_config.long_press_time_in_ms());
-  config.showpress_timeout = base::TimeDelta::FromMilliseconds(
-      gesture_config.show_press_delay_in_ms());
-  config.double_tap_timeout = base::TimeDelta::FromMilliseconds(
-      gesture_config.double_tap_timeout_in_ms());
+      base::Milliseconds(gesture_config.long_press_time_in_ms());
+  config.showpress_timeout =
+      base::Milliseconds(gesture_config.show_press_delay_in_ms());
+  config.double_tap_timeout =
+      base::Milliseconds(gesture_config.double_tap_timeout_in_ms());
   config.touch_slop = gesture_config.max_touch_move_in_pixels_for_click();
   config.double_tap_slop =
       gesture_config.max_distance_between_taps_for_double_tap();
@@ -42,7 +42,7 @@
   config.two_finger_tap_enabled = gesture_config.two_finger_tap_enabled();
   config.two_finger_tap_max_separation =
       gesture_config.max_distance_for_two_finger_tap_in_pixels();
-  config.two_finger_tap_timeout = base::TimeDelta::FromMilliseconds(
+  config.two_finger_tap_timeout = base::Milliseconds(
       gesture_config.max_touch_down_duration_for_click_in_ms());
   config.single_tap_repeat_interval = gesture_config.max_tap_count();
   config.velocity_tracker_strategy = gesture_config.velocity_tracker_strategy();
diff --git a/ui/events/gesture_detection/motion_event_buffer.cc b/ui/events/gesture_detection/motion_event_buffer.cc
index c6cdb471..216ec06 100644
--- a/ui/events/gesture_detection/motion_event_buffer.cc
+++ b/ui/events/gesture_detection/motion_event_buffer.cc
@@ -179,9 +179,8 @@
 
     const base::TimeTicks time1 = event1->GetEventTime();
     base::TimeTicks max_predict =
-        time1 +
-        std::min((event1->GetEventTime() - event0->GetEventTime()) / 2,
-                 base::TimeDelta::FromMilliseconds(kResampleMaxPredictionMs));
+        time1 + std::min((event1->GetEventTime() - event0->GetEventTime()) / 2,
+                         base::Milliseconds(kResampleMaxPredictionMs));
     if (resample_time > max_predict) {
       TRACE_EVENT_INSTANT2("input",
                            "MotionEventBuffer::TryResample prediction adjust",
@@ -204,7 +203,7 @@
   const base::TimeTicks time0 = event0->GetEventTime();
   const base::TimeTicks time1 = event1->GetEventTime();
   base::TimeDelta delta = time1 - time0;
-  if (delta < base::TimeDelta::FromMilliseconds(kResampleMinDeltaMs)) {
+  if (delta < base::Milliseconds(kResampleMinDeltaMs)) {
     TRACE_EVENT_INSTANT1("input",
                          "MotionEventBuffer::TryResample failure",
                          TRACE_EVENT_SCOPE_THREAD,
@@ -275,7 +274,7 @@
   // Shifting the sample time back slightly minimizes the potential for
   // misprediction when extrapolating events.
   if (resample_)
-    frame_time -= base::TimeDelta::FromMilliseconds(kResampleLatencyMs);
+    frame_time -= base::Milliseconds(kResampleLatencyMs);
 
   // TODO(jdduke): Use a persistent MotionEventVector vector for temporary
   // storage.
diff --git a/ui/events/gesture_detection/motion_event_buffer_unittest.cc b/ui/events/gesture_detection/motion_event_buffer_unittest.cc
index 7ce6d0a5..9314493 100644
--- a/ui/events/gesture_detection/motion_event_buffer_unittest.cc
+++ b/ui/events/gesture_detection/motion_event_buffer_unittest.cc
@@ -68,15 +68,15 @@
   }
 
   static base::TimeDelta LargeDelta() {
-    return base::TimeDelta::FromMilliseconds(kLargeDeltaMs);
+    return base::Milliseconds(kLargeDeltaMs);
   }
 
   static base::TimeDelta SmallDelta() {
-    return base::TimeDelta::FromMilliseconds(kSmallDeltaMs);
+    return base::Milliseconds(kSmallDeltaMs);
   }
 
   static base::TimeDelta ResampleDelta() {
-    return base::TimeDelta::FromMilliseconds(kResampleDeltaMs);
+    return base::Milliseconds(kResampleDeltaMs);
   }
 
   static void ExpectEqualsImpl(const MotionEvent& a,
@@ -169,8 +169,7 @@
     base::TimeTicks event_time = base::TimeTicks::Now();
     base::TimeTicks flush_time =
         event_time + flush_time_delta - event_time_offset;
-    base::TimeTicks max_event_time =
-        event_time + base::TimeDelta::FromSecondsD(0.5f);
+    base::TimeTicks max_event_time = event_time + base::Seconds(0.5f);
     const size_t min_expected_events =
         base::ClampFloor<size_t>((max_event_time - flush_time) /
                                  std::max(event_time_delta, flush_time_delta));
@@ -279,7 +278,7 @@
   EXPECT_TRUE(GetAndResetNeedsFlush());
   EXPECT_FALSE(GetLastEvent());
 
-  event_time += base::TimeDelta::FromMilliseconds(5);
+  event_time += base::Milliseconds(5);
 
   // The second move should remain buffered.
   MockMotionEvent move1(MotionEvent::Action::MOVE, event_time, 2.f, 2.f);
@@ -319,7 +318,7 @@
   EXPECT_TRUE(GetAndResetNeedsFlush());
   EXPECT_FALSE(GetLastEvent());
 
-  event_time += base::TimeDelta::FromMilliseconds(5);
+  event_time += base::Milliseconds(5);
 
   // The second move has a different pointer count, flushing the first.
   MockMotionEvent move1(MotionEvent::Action::MOVE, event_time, 2.f, 2.f, 3.f,
@@ -329,7 +328,7 @@
   ASSERT_TRUE(GetLastEvent());
   EXPECT_EVENT_EQ(move0, *GetLastEvent());
 
-  event_time += base::TimeDelta::FromMilliseconds(5);
+  event_time += base::Milliseconds(5);
 
   // The third move has differing tool types, flushing the second.
   MockMotionEvent move2(move1);
@@ -338,7 +337,7 @@
   EXPECT_FALSE(GetAndResetNeedsFlush());
   EXPECT_EVENT_EQ(move1, *GetLastEvent());
 
-  event_time += base::TimeDelta::FromMilliseconds(5);
+  event_time += base::Milliseconds(5);
 
   // The flushed event should only include the latest move event.
   buffer.Flush(event_time);
@@ -348,7 +347,7 @@
   EXPECT_EVENT_EQ(move2, *events.back());
   EXPECT_FALSE(GetAndResetNeedsFlush());
 
-  event_time += base::TimeDelta::FromMilliseconds(5);
+  event_time += base::Milliseconds(5);
 
   // Events with different pointer ids should not combine.
   PointerProperties pointer0(5.f, 5.f, 1.f);
@@ -425,7 +424,7 @@
   EXPECT_TRUE(GetAndResetNeedsFlush());
   ASSERT_FALSE(GetLastEvent());
 
-  event_time += base::TimeDelta::FromMilliseconds(5);
+  event_time += base::Milliseconds(5);
 
   // The second move should remain buffered even if the logical pointers are
   // in a different order.
@@ -490,7 +489,7 @@
 
   // Flushing again with a similar timestamp should have no effect other than
   // triggering another flush request.
-  flush_time += base::TimeDelta::FromMilliseconds(1);
+  flush_time += base::Milliseconds(1);
   buffer.Flush(flush_time);
   EXPECT_FALSE(GetLastEvent());
   EXPECT_TRUE(GetAndResetNeedsFlush());
@@ -514,7 +513,7 @@
   ASSERT_FALSE(GetLastEvent());
   EXPECT_TRUE(GetAndResetNeedsFlush());
 
-  event_time += base::TimeDelta::FromMilliseconds(5);
+  event_time += base::Milliseconds(5);
   MockMotionEvent move1(MotionEvent::Action::MOVE, event_time, 15.f, 30.f);
   buffer.OnMotionEvent(move1);
   ASSERT_FALSE(GetLastEvent());
@@ -549,7 +548,7 @@
   EXPECT_TRUE(GetAndResetNeedsFlush());
 
   // The second move should remain buffered.
-  event_time += base::TimeDelta::FromMilliseconds(5);
+  event_time += base::Milliseconds(5);
   move1 = MockMotionEvent(MotionEvent::Action::MOVE, event_time, 10.f, 20.f);
   buffer.OnMotionEvent(move1);
   ASSERT_FALSE(GetLastEvent());
@@ -581,7 +580,7 @@
   EXPECT_TRUE(GetAndResetNeedsFlush());
 
   // The second move should remain buffered.
-  event_time += base::TimeDelta::FromMilliseconds(10);
+  event_time += base::Milliseconds(10);
   MockMotionEvent move1(MotionEvent::Action::MOVE, event_time, 10.f, 20.f);
   buffer.OnMotionEvent(move1);
   ASSERT_FALSE(GetLastEvent());
@@ -608,14 +607,14 @@
 
   // Try enqueuing an event *after* the second event but *before* the
   // extrapolated event. It should be dropped.
-  event_time = move1.GetEventTime() + base::TimeDelta::FromMilliseconds(1);
+  event_time = move1.GetEventTime() + base::Milliseconds(1);
   MockMotionEvent move2(MotionEvent::Action::MOVE, event_time, 15.f, 25.f);
   buffer.OnMotionEvent(move1);
   ASSERT_FALSE(GetLastEvent());
   EXPECT_FALSE(GetAndResetNeedsFlush());
 
   // Finally queue an event *after* the extrapolated event.
-  event_time = expected_time + base::TimeDelta::FromMilliseconds(1);
+  event_time = expected_time + base::Milliseconds(1);
   MockMotionEvent move3(MotionEvent::Action::MOVE, event_time, 15.f, 25.f);
   buffer.OnMotionEvent(move3);
   ASSERT_FALSE(GetLastEvent());
@@ -704,7 +703,7 @@
   EXPECT_TRUE(GetAndResetNeedsFlush());
 
   // The second move should remain buffered.
-  event_time += base::TimeDelta::FromMilliseconds(5);
+  event_time += base::Milliseconds(5);
   MockMotionEvent move1(MotionEvent::Action::MOVE, event_time, 15.f, 30.f);
   buffer.OnMotionEvent(move1);
   ASSERT_FALSE(GetLastEvent());
@@ -750,7 +749,7 @@
   EXPECT_TRUE(GetAndResetNeedsFlush());
 
   // The second move should remain buffered.
-  event_time += base::TimeDelta::FromMilliseconds(5);
+  event_time += base::Milliseconds(5);
   MockMotionEvent move1(MotionEvent::Action::MOVE, event_time, 10.f, 20.f);
   buffer.OnMotionEvent(move1);
   ASSERT_FALSE(GetLastEvent());
@@ -796,15 +795,14 @@
   EXPECT_TRUE(GetAndResetNeedsFlush());
 
   // The second move should remain buffered.
-  event_time += base::TimeDelta::FromMilliseconds(24);
+  event_time += base::Milliseconds(24);
   MockMotionEvent move1(MotionEvent::Action::MOVE, event_time, 10.f, 20.f);
   buffer.OnMotionEvent(move1);
   ASSERT_FALSE(GetLastEvent());
   EXPECT_FALSE(GetAndResetNeedsFlush());
 
   // Sample at a time beyond the first and second events.
-  base::TimeTicks extrapolated_time =
-      event_time + base::TimeDelta::FromMilliseconds(24);
+  base::TimeTicks extrapolated_time = event_time + base::Milliseconds(24);
   base::TimeTicks flush_time = extrapolated_time + ResampleDelta();
   buffer.Flush(flush_time);
   ASSERT_TRUE(GetLastEvent());
@@ -813,8 +811,7 @@
   // There should only be one flushed event, with the event extrapolated from
   // the two events. The first and second events should be in the history.
   // Note that the maximum extrapolation is limited by 8 ms.
-  base::TimeTicks expected_time =
-      move1.GetEventTime() + base::TimeDelta::FromMilliseconds(8);
+  base::TimeTicks expected_time = move1.GetEventTime() + base::Milliseconds(8);
   const float expected_alpha = (expected_time - move0.GetEventTime()) /
                                (move1.GetEventTime() - move0.GetEventTime());
   MockMotionEvent extrapolated_event(
@@ -831,32 +828,32 @@
 }
 
 TEST_F(MotionEventBufferTest, Resampling30to60) {
-  constexpr auto kFlushTimeDelta = base::TimeDelta::FromSeconds(1) / 60;
-  constexpr auto kEventTimeDelta = base::TimeDelta::FromSeconds(1) / 30;
+  constexpr auto kFlushTimeDelta = base::Seconds(1) / 60;
+  constexpr auto kEventTimeDelta = base::Seconds(1) / 30;
   RunResample(kFlushTimeDelta, kEventTimeDelta);
 }
 
 TEST_F(MotionEventBufferTest, Resampling60to60) {
-  constexpr auto kFlushTimeDelta = base::TimeDelta::FromSeconds(1) / 60;
-  constexpr auto kEventTimeDelta = base::TimeDelta::FromSeconds(1) / 60;
+  constexpr auto kFlushTimeDelta = base::Seconds(1) / 60;
+  constexpr auto kEventTimeDelta = base::Seconds(1) / 60;
   RunResample(kFlushTimeDelta, kEventTimeDelta);
 }
 
 TEST_F(MotionEventBufferTest, Resampling100to60) {
-  constexpr auto kFlushTimeDelta = base::TimeDelta::FromSeconds(1) / 60;
-  constexpr auto kEventTimeDelta = base::TimeDelta::FromSeconds(1) / 100;
+  constexpr auto kFlushTimeDelta = base::Seconds(1) / 60;
+  constexpr auto kEventTimeDelta = base::Seconds(1) / 100;
   RunResample(kFlushTimeDelta, kEventTimeDelta);
 }
 
 TEST_F(MotionEventBufferTest, Resampling120to60) {
-  constexpr auto kFlushTimeDelta = base::TimeDelta::FromSeconds(1) / 60;
-  constexpr auto kEventTimeDelta = base::TimeDelta::FromSeconds(1) / 120;
+  constexpr auto kFlushTimeDelta = base::Seconds(1) / 60;
+  constexpr auto kEventTimeDelta = base::Seconds(1) / 120;
   RunResample(kFlushTimeDelta, kEventTimeDelta);
 }
 
 TEST_F(MotionEventBufferTest, Resampling150to60) {
-  constexpr auto kFlushTimeDelta = base::TimeDelta::FromSeconds(1) / 60;
-  constexpr auto kEventTimeDelta = base::TimeDelta::FromSeconds(1) / 150;
+  constexpr auto kFlushTimeDelta = base::Seconds(1) / 60;
+  constexpr auto kEventTimeDelta = base::Seconds(1) / 150;
   RunResample(kFlushTimeDelta, kEventTimeDelta);
 }
 
diff --git a/ui/events/gesture_detection/motion_event_generic_unittest.cc b/ui/events/gesture_detection/motion_event_generic_unittest.cc
index c1eb776..cd24fb0a 100644
--- a/ui/events/gesture_detection/motion_event_generic_unittest.cc
+++ b/ui/events/gesture_detection/motion_event_generic_unittest.cc
@@ -41,7 +41,7 @@
   event.set_action(MotionEvent::Action::POINTER_DOWN);
   EXPECT_EQ(MotionEvent::Action::POINTER_DOWN, event.GetAction());
 
-  event_time += base::TimeDelta::FromMilliseconds(5);
+  event_time += base::Milliseconds(5);
   event.set_event_time(event_time);
   EXPECT_EQ(event_time, event.GetEventTime());
 
@@ -60,15 +60,15 @@
   PointerProperties historical_pointer0(1.2f, 2.4f, 1.f);
   PointerProperties historical_pointer1(2.4f, 4.8f, 2.f);
   PointerProperties historical_pointer2(4.8f, 9.6f, 3.f);
-  MotionEventGeneric historical_event(
-      MotionEvent::Action::MOVE,
-      event_time - base::TimeDelta::FromMilliseconds(5), historical_pointer0);
+  MotionEventGeneric historical_event(MotionEvent::Action::MOVE,
+                                      event_time - base::Milliseconds(5),
+                                      historical_pointer0);
   historical_event.PushPointer(historical_pointer1);
   historical_event.PushPointer(historical_pointer2);
 
   event.PushHistoricalEvent(historical_event.Clone());
   EXPECT_EQ(1U, event.GetHistorySize());
-  EXPECT_EQ(event_time - base::TimeDelta::FromMilliseconds(5),
+  EXPECT_EQ(event_time - base::Milliseconds(5),
             event.GetHistoricalEventTime(0));
   EXPECT_EQ(1.2f, event.GetHistoricalX(0, 0));
   EXPECT_EQ(2.4f, event.GetHistoricalY(0, 0));
@@ -94,8 +94,7 @@
 
 TEST(MotionEventGenericTest, CloneWithHistory) {
   base::TimeTicks event_time = base::TimeTicks::Now();
-  base::TimeTicks historical_event_time =
-      event_time - base::TimeDelta::FromMilliseconds(5);
+  base::TimeTicks historical_event_time = event_time - base::Milliseconds(5);
 
   PointerProperties pointer(8.3f, 4.7f, 10.1f);
   MotionEventGeneric event(MotionEvent::Action::MOVE, event_time, pointer);
@@ -223,10 +222,8 @@
 
 TEST(MotionEventGenericTest, ToString) {
   base::TimeTicks event_time = base::TimeTicks::Now();
-  base::TimeTicks historical_event_time0 =
-      event_time - base::TimeDelta::FromMilliseconds(10);
-  base::TimeTicks historical_event_time1 =
-      event_time - base::TimeDelta::FromMilliseconds(5);
+  base::TimeTicks historical_event_time0 = event_time - base::Milliseconds(10);
+  base::TimeTicks historical_event_time1 = event_time - base::Milliseconds(5);
 
   PointerProperties pointer0(1, 2, 3);
   pointer0.id = 7;
diff --git a/ui/events/gesture_detection/velocity_tracker.cc b/ui/events/gesture_detection/velocity_tracker.cc
index 77f7d9c3..c8db9b4 100644
--- a/ui/events/gesture_detection/velocity_tracker.cc
+++ b/ui/events/gesture_detection/velocity_tracker.cc
@@ -283,7 +283,7 @@
 
   if ((current_pointer_id_bits_.value & id_bits.value) &&
       (event_time - last_event_time_) >=
-          base::TimeDelta::FromMilliseconds(kAssumePointerMoveStoppedTimeMs)) {
+          base::Milliseconds(kAssumePointerMoveStoppedTimeMs)) {
     // We have not received any movements for too long. Assume that all pointers
     // have stopped.
     strategy_->Clear();
@@ -328,7 +328,7 @@
       // because of (difficult albeit possible) prolonged stationary screen
       // contact, assume that motion has stopped.
       if ((event.GetEventTime() - last_event_time_) >=
-          base::TimeDelta::FromMilliseconds(kAssumePointerUpStoppedTimeMs))
+          base::Milliseconds(kAssumePointerUpStoppedTimeMs))
         strategy_->Clear();
       return;
     default:
@@ -600,7 +600,7 @@
   float time[kHistorySize];
   uint32_t m = 0;
   uint32_t index = index_;
-  const base::TimeDelta horizon = base::TimeDelta::FromMilliseconds(kHorizonMS);
+  const base::TimeDelta horizon = base::Milliseconds(kHorizonMS);
   const Movement& newest_movement = movements_[index_];
   const Movement* first_movement = nullptr;
 
diff --git a/ui/events/gesture_detection/velocity_tracker_unittest.cc b/ui/events/gesture_detection/velocity_tracker_unittest.cc
index a9dd69f..bb2b731 100644
--- a/ui/events/gesture_detection/velocity_tracker_unittest.cc
+++ b/ui/events/gesture_detection/velocity_tracker_unittest.cc
@@ -229,7 +229,7 @@
   VelocityTrackerState state_unrestricted(VelocityTracker::LSQ2);
   VelocityTrackerState state_restricted(VelocityTracker::LSQ2_RESTRICTED);
   const base::TimeTicks t0 = base::TimeTicks::Now();
-  const base::TimeDelta dt = base::TimeDelta::FromMilliseconds(1);
+  const base::TimeDelta dt = base::Milliseconds(1);
   const size_t samples = 60;
 
   gfx::PointF p(0, 0);
diff --git a/ui/events/gestures/blink/web_gesture_curve_impl.cc b/ui/events/gestures/blink/web_gesture_curve_impl.cc
index 03e775b..38a1cfc 100644
--- a/ui/events/gestures/blink/web_gesture_curve_impl.cc
+++ b/ui/events/gestures/blink/web_gesture_curve_impl.cc
@@ -127,8 +127,7 @@
     ++ticks_since_first_animate_;
   }
 
-  const base::TimeTicks time_ticks =
-      base::TimeTicks() + base::TimeDelta::FromSecondsD(time);
+  const base::TimeTicks time_ticks = base::TimeTicks() + base::Seconds(time);
   gfx::Vector2dF offset;
   bool still_active =
       curve_->ComputeScrollOffset(time_ticks, &offset, &out_current_velocity);
diff --git a/ui/events/gestures/fling_curve_unittest.cc b/ui/events/gestures/fling_curve_unittest.cc
index 540dc63..2ea8b34 100644
--- a/ui/events/gestures/fling_curve_unittest.cc
+++ b/ui/events/gestures/fling_curve_unittest.cc
@@ -14,23 +14,21 @@
   FlingCurve curve(velocity, now);
 
   gfx::Vector2dF delta;
-  EXPECT_TRUE(curve.ComputeScrollDeltaAtTime(
-      now + base::TimeDelta::FromMilliseconds(20), &delta));
+  EXPECT_TRUE(
+      curve.ComputeScrollDeltaAtTime(now + base::Milliseconds(20), &delta));
   EXPECT_EQ(0, delta.x());
   EXPECT_NEAR(delta.y(), 96, 1);
 
-  EXPECT_TRUE(curve.ComputeScrollDeltaAtTime(
-      now + base::TimeDelta::FromMilliseconds(250), &delta));
+  EXPECT_TRUE(
+      curve.ComputeScrollDeltaAtTime(now + base::Milliseconds(250), &delta));
   EXPECT_EQ(0, delta.x());
   EXPECT_NEAR(delta.y(), 705, 1);
 
-  EXPECT_FALSE(curve.ComputeScrollDeltaAtTime(
-      now + base::TimeDelta::FromSeconds(10), &delta));
+  EXPECT_FALSE(curve.ComputeScrollDeltaAtTime(now + base::Seconds(10), &delta));
   EXPECT_EQ(0, delta.x());
   EXPECT_NEAR(delta.y(), 392, 1);
 
-  EXPECT_FALSE(curve.ComputeScrollDeltaAtTime(
-      now + base::TimeDelta::FromSeconds(20), &delta));
+  EXPECT_FALSE(curve.ComputeScrollDeltaAtTime(now + base::Seconds(20), &delta));
   EXPECT_TRUE(delta.IsZero());
 }
 
diff --git a/ui/events/gestures/gesture_provider_aura_unittest.cc b/ui/events/gestures/gesture_provider_aura_unittest.cc
index 180c4822..a797994 100644
--- a/ui/events/gestures/gesture_provider_aura_unittest.cc
+++ b/ui/events/gestures/gesture_provider_aura_unittest.cc
@@ -46,7 +46,7 @@
                     PointerDetails(ui::EventPointerType::kTouch, 0));
   EXPECT_TRUE(provider()->OnTouchEvent(&press1));
 
-  time += base::TimeDelta::FromMilliseconds(10);
+  time += base::Milliseconds(10);
   TouchEvent press2(ET_TOUCH_PRESSED, gfx::Point(30, 40), time,
                     PointerDetails(ui::EventPointerType::kTouch, 0));
   EXPECT_FALSE(provider()->OnTouchEvent(&press2));
@@ -58,17 +58,17 @@
                     PointerDetails(ui::EventPointerType::kTouch, 0));
   EXPECT_TRUE(provider()->OnTouchEvent(&press1));
 
-  time += base::TimeDelta::FromMilliseconds(10);
+  time += base::Milliseconds(10);
   TouchEvent release1(ET_TOUCH_RELEASED, gfx::Point(30, 40), time,
                       PointerDetails(ui::EventPointerType::kTouch, 0));
   EXPECT_TRUE(provider()->OnTouchEvent(&release1));
 
-  time += base::TimeDelta::FromMilliseconds(10);
+  time += base::Milliseconds(10);
   TouchEvent release2(ET_TOUCH_RELEASED, gfx::Point(30, 45), time,
                       PointerDetails(ui::EventPointerType::kTouch, 0));
   EXPECT_FALSE(provider()->OnTouchEvent(&release1));
 
-  time += base::TimeDelta::FromMilliseconds(10);
+  time += base::Milliseconds(10);
   TouchEvent move1(ET_TOUCH_MOVED, gfx::Point(70, 75), time,
                    PointerDetails(ui::EventPointerType::kTouch, 0));
   EXPECT_FALSE(provider()->OnTouchEvent(&move1));
@@ -81,27 +81,27 @@
   TouchEvent touch_press(ET_TOUCH_PRESSED, gfx::Point(10, 10), time,
                          PointerDetails(ui::EventPointerType::kTouch, 0));
   EXPECT_TRUE(provider()->OnTouchEvent(&touch_press));
-  time += base::TimeDelta::FromMilliseconds(10);
+  time += base::Milliseconds(10);
 
   TouchEvent pen_press1(ET_TOUCH_PRESSED, gfx::Point(20, 20), time,
                         PointerDetails(ui::EventPointerType::kPen, 1));
   EXPECT_TRUE(provider()->OnTouchEvent(&pen_press1));
-  time += base::TimeDelta::FromMilliseconds(10);
+  time += base::Milliseconds(10);
 
   TouchEvent touch_cancel(ET_TOUCH_CANCELLED, gfx::Point(30, 30), time,
                           PointerDetails(ui::EventPointerType::kTouch, 0));
   EXPECT_TRUE(provider()->OnTouchEvent(&touch_cancel));
-  time += base::TimeDelta::FromMilliseconds(10);
+  time += base::Milliseconds(10);
 
   TouchEvent pen_release1(ET_TOUCH_RELEASED, gfx::Point(40, 40), time,
                           PointerDetails(ui::EventPointerType::kPen, 1));
   EXPECT_FALSE(provider()->OnTouchEvent(&pen_release1));
-  time += base::TimeDelta::FromMilliseconds(10);
+  time += base::Milliseconds(10);
 
   TouchEvent pen_press2(ET_TOUCH_PRESSED, gfx::Point(10, 10), time,
                         PointerDetails(ui::EventPointerType::kPen, 0));
   EXPECT_TRUE(provider()->OnTouchEvent(&pen_press2));
-  time += base::TimeDelta::FromMilliseconds(10);
+  time += base::Milliseconds(10);
 
   TouchEvent pen_release2(ET_TOUCH_RELEASED, gfx::Point(10, 10), time,
                           PointerDetails(ui::EventPointerType::kPen, 0));
@@ -115,37 +115,37 @@
   TouchEvent touch_press1(ET_TOUCH_PRESSED, gfx::Point(10, 10), time,
                           PointerDetails(ui::EventPointerType::kTouch, 0));
   EXPECT_TRUE(provider()->OnTouchEvent(&touch_press1));
-  time += base::TimeDelta::FromMilliseconds(10);
+  time += base::Milliseconds(10);
 
   TouchEvent touch_press2(ET_TOUCH_PRESSED, gfx::Point(20, 20), time,
                           PointerDetails(ui::EventPointerType::kTouch, 1));
   EXPECT_TRUE(provider()->OnTouchEvent(&touch_press2));
-  time += base::TimeDelta::FromMilliseconds(10);
+  time += base::Milliseconds(10);
 
   TouchEvent touch_move1(ET_TOUCH_MOVED, gfx::Point(30, 30), time,
                          PointerDetails(ui::EventPointerType::kTouch, 0));
   EXPECT_TRUE(provider()->OnTouchEvent(&touch_move1));
-  time += base::TimeDelta::FromMilliseconds(10);
+  time += base::Milliseconds(10);
 
   TouchEvent touch_move2(ET_TOUCH_MOVED, gfx::Point(40, 40), time,
                          PointerDetails(ui::EventPointerType::kTouch, 1));
   EXPECT_TRUE(provider()->OnTouchEvent(&touch_move2));
-  time += base::TimeDelta::FromMilliseconds(10);
+  time += base::Milliseconds(10);
 
   TouchEvent touch_cancel(ET_TOUCH_CANCELLED, gfx::Point(50, 50), time,
                           PointerDetails(ui::EventPointerType::kTouch, 1));
   EXPECT_TRUE(provider()->OnTouchEvent(&touch_cancel));
-  time += base::TimeDelta::FromMilliseconds(10);
+  time += base::Milliseconds(10);
 
   TouchEvent touch_move3(ET_TOUCH_MOVED, gfx::Point(60, 60), time,
                          PointerDetails(ui::EventPointerType::kTouch, 0));
   EXPECT_TRUE(provider()->OnTouchEvent(&touch_move3));
-  time += base::TimeDelta::FromMilliseconds(10);
+  time += base::Milliseconds(10);
 
   TouchEvent touch_release(ET_TOUCH_RELEASED, gfx::Point(70, 70), time,
                            PointerDetails(ui::EventPointerType::kTouch, 0));
   EXPECT_TRUE(provider()->OnTouchEvent(&touch_release));
-  time += base::TimeDelta::FromMilliseconds(10);
+  time += base::Milliseconds(10);
 }
 
 TEST_F(GestureProviderAuraTest, ContinueGestureDetectionAfterMultipleCancel) {
@@ -155,62 +155,62 @@
   TouchEvent touch_press1(ET_TOUCH_PRESSED, gfx::Point(10, 10), time,
                           PointerDetails(ui::EventPointerType::kTouch, 0));
   EXPECT_TRUE(provider()->OnTouchEvent(&touch_press1));
-  time += base::TimeDelta::FromMilliseconds(10);
+  time += base::Milliseconds(10);
 
   TouchEvent touch_press2(ET_TOUCH_PRESSED, gfx::Point(20, 20), time,
                           PointerDetails(ui::EventPointerType::kTouch, 1));
   EXPECT_TRUE(provider()->OnTouchEvent(&touch_press2));
-  time += base::TimeDelta::FromMilliseconds(10);
+  time += base::Milliseconds(10);
 
   TouchEvent touch_press3(ET_TOUCH_PRESSED, gfx::Point(30, 30), time,
                           PointerDetails(ui::EventPointerType::kTouch, 2));
   EXPECT_TRUE(provider()->OnTouchEvent(&touch_press3));
-  time += base::TimeDelta::FromMilliseconds(10);
+  time += base::Milliseconds(10);
 
   TouchEvent touch_move1(ET_TOUCH_MOVED, gfx::Point(40, 40), time,
                          PointerDetails(ui::EventPointerType::kTouch, 0));
   EXPECT_TRUE(provider()->OnTouchEvent(&touch_move1));
-  time += base::TimeDelta::FromMilliseconds(10);
+  time += base::Milliseconds(10);
 
   TouchEvent touch_move2(ET_TOUCH_MOVED, gfx::Point(50, 50), time,
                          PointerDetails(ui::EventPointerType::kTouch, 1));
   EXPECT_TRUE(provider()->OnTouchEvent(&touch_move2));
-  time += base::TimeDelta::FromMilliseconds(10);
+  time += base::Milliseconds(10);
 
   TouchEvent touch_move3(ET_TOUCH_MOVED, gfx::Point(60, 60), time,
                          PointerDetails(ui::EventPointerType::kTouch, 2));
   EXPECT_TRUE(provider()->OnTouchEvent(&touch_move3));
-  time += base::TimeDelta::FromMilliseconds(10);
+  time += base::Milliseconds(10);
 
   TouchEvent touch_cancel1(ET_TOUCH_CANCELLED, gfx::Point(70, 70), time,
                            PointerDetails(ui::EventPointerType::kTouch, 1));
   EXPECT_TRUE(provider()->OnTouchEvent(&touch_cancel1));
-  time += base::TimeDelta::FromMilliseconds(10);
+  time += base::Milliseconds(10);
 
   TouchEvent touch_move4(ET_TOUCH_MOVED, gfx::Point(80, 80), time,
                          PointerDetails(ui::EventPointerType::kTouch, 0));
   EXPECT_TRUE(provider()->OnTouchEvent(&touch_move4));
-  time += base::TimeDelta::FromMilliseconds(10);
+  time += base::Milliseconds(10);
 
   TouchEvent touch_move5(ET_TOUCH_MOVED, gfx::Point(90, 90), time,
                          PointerDetails(ui::EventPointerType::kTouch, 2));
   EXPECT_TRUE(provider()->OnTouchEvent(&touch_move5));
-  time += base::TimeDelta::FromMilliseconds(10);
+  time += base::Milliseconds(10);
 
   TouchEvent touch_cancel2(ET_TOUCH_CANCELLED, gfx::Point(100, 100), time,
                            PointerDetails(ui::EventPointerType::kTouch, 2));
   EXPECT_TRUE(provider()->OnTouchEvent(&touch_cancel2));
-  time += base::TimeDelta::FromMilliseconds(10);
+  time += base::Milliseconds(10);
 
   TouchEvent touch_move6(ET_TOUCH_MOVED, gfx::Point(110, 110), time,
                          PointerDetails(ui::EventPointerType::kTouch, 0));
   EXPECT_TRUE(provider()->OnTouchEvent(&touch_move6));
-  time += base::TimeDelta::FromMilliseconds(10);
+  time += base::Milliseconds(10);
 
   TouchEvent touch_release(ET_TOUCH_RELEASED, gfx::Point(120, 120), time,
                            PointerDetails(ui::EventPointerType::kTouch, 0));
   EXPECT_TRUE(provider()->OnTouchEvent(&touch_release));
-  time += base::TimeDelta::FromMilliseconds(10);
+  time += base::Milliseconds(10);
 }
 
 TEST_F(GestureProviderAuraTest, IgnoresIdenticalMoveEvents) {
@@ -232,7 +232,7 @@
                       pointer_details2);
   EXPECT_TRUE(provider()->OnTouchEvent(&press1_1));
 
-  time += base::TimeDelta::FromMilliseconds(10);
+  time += base::Milliseconds(10);
   pointer_details1 = PointerDetails(EventPointerType::kTouch, kTouchId0,
                                     kRadiusX, kRadiusY, kForce, kAngle);
   TouchEvent move0_1(ET_TOUCH_MOVED, gfx::Point(10, 10), time, pointer_details1,
@@ -245,7 +245,7 @@
                      pointer_details2, 0);
   EXPECT_TRUE(provider()->OnTouchEvent(&move1_1));
 
-  time += base::TimeDelta::FromMilliseconds(10);
+  time += base::Milliseconds(10);
   TouchEvent move0_2(ET_TOUCH_MOVED, gfx::Point(10, 10), time, pointer_details1,
                      0);
   // Nothing has changed, so ignore the move.
@@ -256,14 +256,14 @@
   // Nothing has changed, so ignore the move.
   EXPECT_FALSE(provider()->OnTouchEvent(&move1_2));
 
-  time += base::TimeDelta::FromMilliseconds(10);
+  time += base::Milliseconds(10);
   TouchEvent move0_3(ET_TOUCH_MOVED, gfx::Point(), time, pointer_details1, 0);
   move0_3.set_location_f(gfx::PointF(70, 75.1f));
   move0_3.set_root_location_f(gfx::PointF(70, 75.1f));
   // Position has changed, so don't ignore the move.
   EXPECT_TRUE(provider()->OnTouchEvent(&move0_3));
 
-  time += base::TimeDelta::FromMilliseconds(10);
+  time += base::Milliseconds(10);
   pointer_details2.radius_y += 1;
   TouchEvent move0_4(ET_TOUCH_MOVED, gfx::Point(), time, pointer_details2, 0);
   move0_4.set_location_f(gfx::PointF(70, 75.1f));
diff --git a/ui/events/gestures/motion_event_aura_unittest.cc b/ui/events/gestures/motion_event_aura_unittest.cc
index ebe607bc..b0e09198 100644
--- a/ui/events/gestures/motion_event_aura_unittest.cc
+++ b/ui/events/gestures/motion_event_aura_unittest.cc
@@ -44,7 +44,7 @@
 }
 
 base::TimeTicks MsToTicks(int ms) {
-  return base::TimeTicks() + base::TimeDelta::FromMilliseconds(ms);
+  return base::TimeTicks() + base::Milliseconds(ms);
 }
 
 ui::TouchEvent TouchWithTime(ui::EventType type, int id, int ms) {
diff --git a/ui/events/gestures/physics_based_fling_curve.cc b/ui/events/gestures/physics_based_fling_curve.cc
index d480d7c4..2e1f8ac 100644
--- a/ui/events/gestures/physics_based_fling_curve.cc
+++ b/ui/events/gestures/physics_based_fling_curve.cc
@@ -157,6 +157,6 @@
     p1_.set_x(p1_.y() / slope);
   }
 
-  return base::TimeDelta::FromSecondsD(duration);
+  return base::Seconds(duration);
 }
 }  // namespace ui
\ No newline at end of file
diff --git a/ui/events/gestures/physics_based_fling_curve_unittest.cc b/ui/events/gestures/physics_based_fling_curve_unittest.cc
index 010da57..0055593 100644
--- a/ui/events/gestures/physics_based_fling_curve_unittest.cc
+++ b/ui/events/gestures/physics_based_fling_curve_unittest.cc
@@ -26,37 +26,36 @@
   gfx::Vector2dF delta;
   gfx::Vector2dF cumulative_scroll;
 
-  EXPECT_TRUE(curve.ComputeScrollOffset(
-      now - base::TimeDelta::FromMilliseconds(20), &offset, &velocity));
+  EXPECT_TRUE(curve.ComputeScrollOffset(now - base::Milliseconds(20), &offset,
+                                        &velocity));
   delta = offset - cumulative_scroll;
   EXPECT_EQ(0, delta.x());
   EXPECT_EQ(0, delta.y());
   cumulative_scroll = offset;
 
-  EXPECT_TRUE(curve.ComputeScrollOffset(
-      now + base::TimeDelta::FromMilliseconds(20), &offset, &velocity));
+  EXPECT_TRUE(curve.ComputeScrollOffset(now + base::Milliseconds(20), &offset,
+                                        &velocity));
   delta = offset - cumulative_scroll;
   EXPECT_EQ(0, delta.x());
   EXPECT_NEAR(delta.y(), 98, 1);
   cumulative_scroll = offset;
 
-  EXPECT_TRUE(curve.ComputeScrollOffset(
-      now + base::TimeDelta::FromMilliseconds(250), &offset, &velocity));
+  EXPECT_TRUE(curve.ComputeScrollOffset(now + base::Milliseconds(250), &offset,
+                                        &velocity));
   delta = offset - cumulative_scroll;
   EXPECT_EQ(0, delta.x());
   EXPECT_NEAR(delta.y(), 923, 1);
   cumulative_scroll = offset;
 
   EXPECT_FALSE(curve.ComputeScrollOffset(
-      now + base::TimeDelta::FromSeconds(curve.curve_duration()), &offset,
-      &velocity));
+      now + base::Seconds(curve.curve_duration()), &offset, &velocity));
   delta = offset - cumulative_scroll;
   EXPECT_EQ(0, delta.x());
   EXPECT_NEAR(delta.y(), 2218, 1);
   cumulative_scroll = offset;
 
-  EXPECT_FALSE(curve.ComputeScrollOffset(now + base::TimeDelta::FromSeconds(10),
-                                         &offset, &velocity));
+  EXPECT_FALSE(
+      curve.ComputeScrollOffset(now + base::Seconds(10), &offset, &velocity));
   delta = offset - cumulative_scroll;
   EXPECT_TRUE(delta.IsZero());
 }
@@ -76,36 +75,36 @@
   gfx::Vector2dF delta;
   gfx::Vector2dF cumulative_scroll;
 
-  EXPECT_TRUE(curve.ComputeScrollOffset(
-      now - base::TimeDelta::FromMilliseconds(20), &offset, &velocity));
+  EXPECT_TRUE(curve.ComputeScrollOffset(now - base::Milliseconds(20), &offset,
+                                        &velocity));
   delta = offset - cumulative_scroll;
   EXPECT_EQ(0, delta.x());
   EXPECT_EQ(0, delta.y());
   cumulative_scroll = offset;
 
-  EXPECT_TRUE(curve.ComputeScrollOffset(
-      now + base::TimeDelta::FromMilliseconds(20), &offset, &velocity));
+  EXPECT_TRUE(curve.ComputeScrollOffset(now + base::Milliseconds(20), &offset,
+                                        &velocity));
   delta = offset - cumulative_scroll;
   EXPECT_NEAR(delta.x(), 99, 1);
   EXPECT_EQ(0, delta.y());
   cumulative_scroll = offset;
 
-  EXPECT_TRUE(curve.ComputeScrollOffset(
-      now + base::TimeDelta::FromMilliseconds(250), &offset, &velocity));
+  EXPECT_TRUE(curve.ComputeScrollOffset(now + base::Milliseconds(250), &offset,
+                                        &velocity));
   delta = offset - cumulative_scroll;
   EXPECT_NEAR(delta.x(), 1054, 1);
   EXPECT_EQ(0, delta.y());
   cumulative_scroll = offset;
 
-  EXPECT_FALSE(curve.ComputeScrollOffset(now + base::TimeDelta::FromSeconds(10),
-                                         &offset, &velocity));
+  EXPECT_FALSE(
+      curve.ComputeScrollOffset(now + base::Seconds(10), &offset, &velocity));
   delta = offset - cumulative_scroll;
   EXPECT_NEAR(delta.x(), 3571, 1);
   EXPECT_EQ(0, delta.y());
   cumulative_scroll = offset;
 
-  EXPECT_FALSE(curve.ComputeScrollOffset(now + base::TimeDelta::FromSeconds(20),
-                                         &offset, &velocity));
+  EXPECT_FALSE(
+      curve.ComputeScrollOffset(now + base::Seconds(20), &offset, &velocity));
   delta = offset - cumulative_scroll;
   EXPECT_TRUE(delta.IsZero());
 }
@@ -125,36 +124,36 @@
   gfx::Vector2dF delta;
   gfx::Vector2dF cumulative_scroll;
 
-  EXPECT_TRUE(curve.ComputeScrollOffset(
-      now - base::TimeDelta::FromMilliseconds(20), &offset, &velocity));
+  EXPECT_TRUE(curve.ComputeScrollOffset(now - base::Milliseconds(20), &offset,
+                                        &velocity));
   delta = offset - cumulative_scroll;
   EXPECT_EQ(0, delta.x());
   EXPECT_EQ(0, delta.y());
   cumulative_scroll = offset;
 
-  EXPECT_TRUE(curve.ComputeScrollOffset(
-      now + base::TimeDelta::FromMilliseconds(20), &offset, &velocity));
+  EXPECT_TRUE(curve.ComputeScrollOffset(now + base::Milliseconds(20), &offset,
+                                        &velocity));
   delta = offset - cumulative_scroll;
   EXPECT_NEAR(delta.x(), 19, 1);
   EXPECT_NEAR(delta.y(), 79, 1);
   cumulative_scroll = offset;
 
-  EXPECT_TRUE(curve.ComputeScrollOffset(
-      now + base::TimeDelta::FromMilliseconds(250), &offset, &velocity));
+  EXPECT_TRUE(curve.ComputeScrollOffset(now + base::Milliseconds(250), &offset,
+                                        &velocity));
   delta = offset - cumulative_scroll;
   EXPECT_NEAR(delta.x(), 200, 1);
   EXPECT_NEAR(delta.y(), 803, 1);
   cumulative_scroll = offset;
 
-  EXPECT_FALSE(curve.ComputeScrollOffset(now + base::TimeDelta::FromSeconds(10),
-                                         &offset, &velocity));
+  EXPECT_FALSE(
+      curve.ComputeScrollOffset(now + base::Seconds(10), &offset, &velocity));
   delta = offset - cumulative_scroll;
   EXPECT_NEAR(delta.x(), 535, 1);
   EXPECT_NEAR(delta.y(), 2141, 1);
   cumulative_scroll = offset;
 
-  EXPECT_FALSE(curve.ComputeScrollOffset(now + base::TimeDelta::FromSeconds(20),
-                                         &offset, &velocity));
+  EXPECT_FALSE(
+      curve.ComputeScrollOffset(now + base::Seconds(20), &offset, &velocity));
   delta = offset - cumulative_scroll;
   EXPECT_TRUE(delta.IsZero());
 }
diff --git a/ui/events/mobile_scroller.cc b/ui/events/mobile_scroller.cc
index 1de9f66..2a9cfaa 100644
--- a/ui/events/mobile_scroller.cc
+++ b/ui/events/mobile_scroller.cc
@@ -218,7 +218,7 @@
                                  float dy,
                                  base::TimeTicks start_time) {
   StartScroll(start_x, start_y, dx, dy, start_time,
-              base::TimeDelta::FromMilliseconds(kDefaultDurationMs));
+              base::Milliseconds(kDefaultDurationMs));
 }
 
 void MobileScroller::StartScroll(float start_x,
@@ -463,8 +463,7 @@
   const double l = GetSplineDeceleration(velocity);
   const double decel_minus_one = kDecelerationRate - 1.0;
   const double time_seconds = std::exp(l / decel_minus_one);
-  return base::TimeDelta::FromMicroseconds(time_seconds *
-                                           base::Time::kMicrosecondsPerSecond);
+  return base::Microseconds(time_seconds * base::Time::kMicrosecondsPerSecond);
 }
 
 double MobileScroller::GetSplineFlingDistance(float velocity) const {
diff --git a/ui/events/mojom/mojom_traits_unittest.cc b/ui/events/mojom/mojom_traits_unittest.cc
index aab23d2..6a6aaae 100644
--- a/ui/events/mojom/mojom_traits_unittest.cc
+++ b/ui/events/mojom/mojom_traits_unittest.cc
@@ -106,9 +106,9 @@
       {'Z', VKEY_Z, DomCode::NONE, EF_CAPS_LOCK_ON},
       {'z', VKEY_Z, DomCode::NONE, EF_NONE},
       {ET_KEY_PRESSED, VKEY_Z, EF_NONE,
-       base::TimeTicks() + base::TimeDelta::FromMicroseconds(101)},
+       base::TimeTicks() + base::Microseconds(101)},
       {'Z', VKEY_Z, DomCode::NONE, EF_NONE,
-       base::TimeTicks() + base::TimeDelta::FromMicroseconds(102)},
+       base::TimeTicks() + base::Microseconds(102)},
   };
 
   for (size_t i = 0; i < base::size(kTestData); i++) {
@@ -126,29 +126,27 @@
 TEST(StructTraitsTest, MouseEvent) {
   const MouseEvent kTestData[] = {
       {ET_MOUSE_PRESSED, gfx::Point(10, 10), gfx::Point(20, 30),
-       base::TimeTicks() + base::TimeDelta::FromMicroseconds(201), EF_NONE, 0,
+       base::TimeTicks() + base::Microseconds(201), EF_NONE, 0,
        PointerDetails(EventPointerType::kMouse, kPointerIdMouse)},
       {ET_MOUSE_DRAGGED, gfx::Point(1, 5), gfx::Point(5, 1),
-       base::TimeTicks() + base::TimeDelta::FromMicroseconds(202),
-       EF_LEFT_MOUSE_BUTTON, EF_LEFT_MOUSE_BUTTON,
+       base::TimeTicks() + base::Microseconds(202), EF_LEFT_MOUSE_BUTTON,
+       EF_LEFT_MOUSE_BUTTON,
        PointerDetails(EventPointerType::kMouse, kPointerIdMouse)},
       {ET_MOUSE_RELEASED, gfx::Point(411, 130), gfx::Point(20, 30),
-       base::TimeTicks() + base::TimeDelta::FromMicroseconds(203),
+       base::TimeTicks() + base::Microseconds(203),
        EF_MIDDLE_MOUSE_BUTTON | EF_RIGHT_MOUSE_BUTTON, EF_RIGHT_MOUSE_BUTTON,
        PointerDetails(EventPointerType::kMouse, kPointerIdMouse)},
       {ET_MOUSE_MOVED, gfx::Point(0, 1), gfx::Point(2, 3),
-       base::TimeTicks() + base::TimeDelta::FromMicroseconds(204), EF_ALT_DOWN,
-       0, PointerDetails(EventPointerType::kMouse, kPointerIdMouse)},
+       base::TimeTicks() + base::Microseconds(204), EF_ALT_DOWN, 0,
+       PointerDetails(EventPointerType::kMouse, kPointerIdMouse)},
       {ET_MOUSE_ENTERED, gfx::Point(6, 7), gfx::Point(8, 9),
-       base::TimeTicks() + base::TimeDelta::FromMicroseconds(205), EF_NONE, 0,
+       base::TimeTicks() + base::Microseconds(205), EF_NONE, 0,
        PointerDetails(EventPointerType::kMouse, kPointerIdMouse)},
       {ET_MOUSE_EXITED, gfx::Point(10, 10), gfx::Point(20, 30),
-       base::TimeTicks() + base::TimeDelta::FromMicroseconds(206),
-       EF_BACK_MOUSE_BUTTON, 0,
+       base::TimeTicks() + base::Microseconds(206), EF_BACK_MOUSE_BUTTON, 0,
        PointerDetails(EventPointerType::kMouse, kPointerIdMouse)},
       {ET_MOUSE_CAPTURE_CHANGED, gfx::Point(99, 99), gfx::Point(99, 99),
-       base::TimeTicks() + base::TimeDelta::FromMicroseconds(207),
-       EF_CONTROL_DOWN, 0,
+       base::TimeTicks() + base::Microseconds(207), EF_CONTROL_DOWN, 0,
        PointerDetails(EventPointerType::kMouse, kPointerIdMouse)},
   };
 
@@ -166,16 +164,16 @@
 TEST(StructTraitsTest, MouseWheelEvent) {
   const MouseWheelEvent kTestData[] = {
       {gfx::Vector2d(11, 15), gfx::PointF(3, 4), gfx::PointF(40, 30),
-       base::TimeTicks() + base::TimeDelta::FromMicroseconds(301),
-       EF_LEFT_MOUSE_BUTTON, EF_LEFT_MOUSE_BUTTON, gfx::Vector2d(1320, 1800)},
+       base::TimeTicks() + base::Microseconds(301), EF_LEFT_MOUSE_BUTTON,
+       EF_LEFT_MOUSE_BUTTON, gfx::Vector2d(1320, 1800)},
       {gfx::Vector2d(-5, 3), gfx::PointF(40, 3), gfx::PointF(4, 0),
-       base::TimeTicks() + base::TimeDelta::FromMicroseconds(302),
+       base::TimeTicks() + base::Microseconds(302),
        EF_MIDDLE_MOUSE_BUTTON | EF_RIGHT_MOUSE_BUTTON,
        EF_MIDDLE_MOUSE_BUTTON | EF_RIGHT_MOUSE_BUTTON,
        gfx::Vector2d(-600, 360)},
       {gfx::Vector2d(1, 0), gfx::PointF(3, 4), gfx::PointF(40, 30),
-       base::TimeTicks() + base::TimeDelta::FromMicroseconds(303), EF_NONE,
-       EF_NONE, gfx::Vector2d(120, -15)},
+       base::TimeTicks() + base::Microseconds(303), EF_NONE, EF_NONE,
+       gfx::Vector2d(120, -15)},
   };
 
   for (size_t i = 0; i < base::size(kTestData); i++) {
@@ -247,20 +245,15 @@
   pinch_update_details.set_scale(1.23f);
 
   const GestureEvent kTestData[] = {
-      {10, 20, EF_NONE,
-       base::TimeTicks() + base::TimeDelta::FromMicroseconds(401),
+      {10, 20, EF_NONE, base::TimeTicks() + base::Microseconds(401),
        GestureEventDetails(ET_SCROLL_FLING_START)},
-      {10, 20, EF_NONE,
-       base::TimeTicks() + base::TimeDelta::FromMicroseconds(401),
+      {10, 20, EF_NONE, base::TimeTicks() + base::Microseconds(401),
        GestureEventDetails(ET_GESTURE_TAP)},
-      {10, 20, EF_NONE,
-       base::TimeTicks() + base::TimeDelta::FromMicroseconds(401),
+      {10, 20, EF_NONE, base::TimeTicks() + base::Microseconds(401),
        pinch_begin_details},
-      {10, 20, EF_NONE,
-       base::TimeTicks() + base::TimeDelta::FromMicroseconds(401),
+      {10, 20, EF_NONE, base::TimeTicks() + base::Microseconds(401),
        pinch_end_details},
-      {10, 20, EF_NONE,
-       base::TimeTicks() + base::TimeDelta::FromMicroseconds(401),
+      {10, 20, EF_NONE, base::TimeTicks() + base::Microseconds(401),
        pinch_update_details},
   };
 
@@ -282,33 +275,32 @@
 TEST(StructTraitsTest, ScrollEvent) {
   const ScrollEvent kTestData[] = {
       {ET_SCROLL, gfx::Point(10, 20),
-       base::TimeTicks() + base::TimeDelta::FromMicroseconds(501), EF_NONE, 1,
-       2, 3, 4, 5, EventMomentumPhase::NONE, ScrollEventPhase::kNone},
+       base::TimeTicks() + base::Microseconds(501), EF_NONE, 1, 2, 3, 4, 5,
+       EventMomentumPhase::NONE, ScrollEventPhase::kNone},
       {ET_SCROLL, gfx::Point(10, 20),
-       base::TimeTicks() + base::TimeDelta::FromMicroseconds(501), EF_NONE, 1,
-       2, 3, 4, 5, EventMomentumPhase::NONE, ScrollEventPhase::kUpdate},
+       base::TimeTicks() + base::Microseconds(501), EF_NONE, 1, 2, 3, 4, 5,
+       EventMomentumPhase::NONE, ScrollEventPhase::kUpdate},
       {ET_SCROLL, gfx::Point(10, 20),
-       base::TimeTicks() + base::TimeDelta::FromMicroseconds(501), EF_NONE, 1,
-       2, 3, 4, 5, EventMomentumPhase::NONE, ScrollEventPhase::kBegan},
+       base::TimeTicks() + base::Microseconds(501), EF_NONE, 1, 2, 3, 4, 5,
+       EventMomentumPhase::NONE, ScrollEventPhase::kBegan},
       {ET_SCROLL, gfx::Point(10, 20),
-       base::TimeTicks() + base::TimeDelta::FromMicroseconds(501), EF_NONE, 1,
-       2, 3, 4, 5, EventMomentumPhase::NONE, ScrollEventPhase::kEnd},
+       base::TimeTicks() + base::Microseconds(501), EF_NONE, 1, 2, 3, 4, 5,
+       EventMomentumPhase::NONE, ScrollEventPhase::kEnd},
       {ET_SCROLL, gfx::Point(10, 20),
-       base::TimeTicks() + base::TimeDelta::FromMicroseconds(501), EF_NONE, 1,
-       2, 3, 4, 5, EventMomentumPhase::BEGAN, ScrollEventPhase::kNone},
+       base::TimeTicks() + base::Microseconds(501), EF_NONE, 1, 2, 3, 4, 5,
+       EventMomentumPhase::BEGAN, ScrollEventPhase::kNone},
       {ET_SCROLL, gfx::Point(10, 20),
-       base::TimeTicks() + base::TimeDelta::FromMicroseconds(501), EF_NONE, 1,
-       2, 3, 4, 5, EventMomentumPhase::INERTIAL_UPDATE,
-       ScrollEventPhase::kNone},
+       base::TimeTicks() + base::Microseconds(501), EF_NONE, 1, 2, 3, 4, 5,
+       EventMomentumPhase::INERTIAL_UPDATE, ScrollEventPhase::kNone},
       {ET_SCROLL, gfx::Point(10, 20),
-       base::TimeTicks() + base::TimeDelta::FromMicroseconds(501), EF_NONE, 1,
-       2, 3, 4, 5, EventMomentumPhase::END, ScrollEventPhase::kNone},
+       base::TimeTicks() + base::Microseconds(501), EF_NONE, 1, 2, 3, 4, 5,
+       EventMomentumPhase::END, ScrollEventPhase::kNone},
       {ET_SCROLL_FLING_START, gfx::Point(10, 20),
-       base::TimeTicks() + base::TimeDelta::FromMicroseconds(502), EF_NONE, 1,
-       2, 3, 4, 5, EventMomentumPhase::MAY_BEGIN, ScrollEventPhase::kNone},
+       base::TimeTicks() + base::Microseconds(502), EF_NONE, 1, 2, 3, 4, 5,
+       EventMomentumPhase::MAY_BEGIN, ScrollEventPhase::kNone},
       {ET_SCROLL_FLING_CANCEL, gfx::Point(10, 20),
-       base::TimeTicks() + base::TimeDelta::FromMicroseconds(502), EF_NONE, 1,
-       2, 3, 4, 5, EventMomentumPhase::END, ScrollEventPhase::kNone},
+       base::TimeTicks() + base::Microseconds(502), EF_NONE, 1, 2, 3, 4, 5,
+       EventMomentumPhase::END, ScrollEventPhase::kNone},
   };
 
   for (size_t i = 0; i < base::size(kTestData); i++) {
diff --git a/ui/events/ozone/evdev/event_converter_evdev.cc b/ui/events/ozone/evdev/event_converter_evdev.cc
index 1daf7ba..d8d00342 100644
--- a/ui/events/ozone/evdev/event_converter_evdev.cc
+++ b/ui/events/ozone/evdev/event_converter_evdev.cc
@@ -210,7 +210,7 @@
     const input_event& event) {
   base::TimeTicks timestamp =
       ui::EventTimeStampFromSeconds(event.input_event_sec) +
-      base::TimeDelta::FromMicroseconds(event.input_event_usec);
+      base::Microseconds(event.input_event_usec);
   ValidateEventTimeClock(&timestamp);
   return timestamp;
 }
diff --git a/ui/events/ozone/evdev/libgestures_glue/gesture_timer_provider.cc b/ui/events/ozone/evdev/libgestures_glue/gesture_timer_provider.cc
index 5a98308..c63e3a9 100644
--- a/ui/events/ozone/evdev/libgestures_glue/gesture_timer_provider.cc
+++ b/ui/events/ozone/evdev/libgestures_glue/gesture_timer_provider.cc
@@ -19,10 +19,8 @@
     callback_ = callback;
     callback_data_ = callback_data;
     timer_.Start(FROM_HERE,
-                 base::TimeDelta::FromMicroseconds(
-                     delay * base::Time::kMicrosecondsPerSecond),
-                 this,
-                 &GesturesTimer::OnTimerExpired);
+                 base::Microseconds(delay * base::Time::kMicrosecondsPerSecond),
+                 this, &GesturesTimer::OnTimerExpired);
   }
 
   void Cancel() { timer_.Stop(); }
@@ -32,11 +30,10 @@
     // Run the callback and reschedule the next run if requested.
     stime_t next_delay = callback_(ui::StimeNow(), callback_data_);
     if (next_delay >= 0) {
-      timer_.Start(FROM_HERE,
-                   base::TimeDelta::FromMicroseconds(
-                       next_delay * base::Time::kMicrosecondsPerSecond),
-                   this,
-                   &GesturesTimer::OnTimerExpired);
+      timer_.Start(
+          FROM_HERE,
+          base::Microseconds(next_delay * base::Time::kMicrosecondsPerSecond),
+          this, &GesturesTimer::OnTimerExpired);
     }
   }
 
diff --git a/ui/events/ozone/evdev/touch_event_converter_evdev_unittest.cc b/ui/events/ozone/evdev/touch_event_converter_evdev_unittest.cc
index 9967f69..830f0b28 100644
--- a/ui/events/ozone/evdev/touch_event_converter_evdev_unittest.cc
+++ b/ui/events/ozone/evdev/touch_event_converter_evdev_unittest.cc
@@ -47,7 +47,7 @@
 
 // Returns a fake TimeTicks based on the given microsecond offset.
 base::TimeTicks ToTestTimeTicks(int64_t micros) {
-  return base::TimeTicks() + base::TimeDelta::FromMicroseconds(micros);
+  return base::TimeTicks() + base::Microseconds(micros);
 }
 
 void InitPixelTouchscreen(TouchEventConverterEvdev* device) {
@@ -316,9 +316,8 @@
   void DestroyDevice() { device_.reset(); }
 
   void SetTestNowTime(timeval time) {
-    base::TimeTicks ticks = base::TimeTicks() +
-                            base::TimeDelta::FromSeconds(time.tv_sec) +
-                            base::TimeDelta::FromMicroseconds(time.tv_usec);
+    base::TimeTicks ticks = base::TimeTicks() + base::Seconds(time.tv_sec) +
+                            base::Microseconds(time.tv_usec);
     test_clock_->SetNowTicks(ticks);
   }
 
@@ -2010,13 +2009,12 @@
   device()->ReadNow();
   EXPECT_EQ(4u, size());
   const base::TimeTicks base_ticks =
-      base::TimeTicks() + base::TimeDelta::FromSeconds(time.tv_sec);
+      base::TimeTicks() + base::Seconds(time.tv_sec);
 
   for (unsigned i = 0; i < size(); ++i) {
     ui::TouchEventParams event = dispatched_touch_event(i);
     EXPECT_EQ(1795 + i, event.location.x());
-    EXPECT_EQ(base::TimeDelta::FromMicroseconds(8000 * i),
-              (event.timestamp - base_ticks));
+    EXPECT_EQ(base::Microseconds(8000 * i), (event.timestamp - base_ticks));
   }
   EXPECT_THAT(histogram_tester_.GetAllSamples(
                   TouchEventConverterEvdev::kHoldCountAtReleaseEventName),
@@ -2141,7 +2139,7 @@
   // We expect the first 3 items to have been emitted, and then a cancel.
   EXPECT_EQ(4u, size());
   const base::TimeTicks base_ticks =
-      base::TimeTicks() + base::TimeDelta::FromSeconds(time.tv_sec);
+      base::TimeTicks() + base::Seconds(time.tv_sec);
   for (unsigned i = 0; i < size(); ++i) {
     ui::TouchEventParams event = dispatched_touch_event(i);
     EventType expected_touch_type;
@@ -2156,8 +2154,7 @@
     EXPECT_EQ(expected_touch_type, event.type);
     if (i != size() - 1) {
       EXPECT_EQ(1795 + i, event.location.x());
-      EXPECT_EQ(base::TimeDelta::FromMicroseconds(8000 * i),
-                (event.timestamp - base_ticks));
+      EXPECT_EQ(base::Microseconds(8000 * i), (event.timestamp - base_ticks));
     }
   }
   EXPECT_THAT(histogram_tester_.GetAllSamples(
diff --git a/ui/events/ozone/evdev/touch_filter/false_touch_finder_unittest.cc b/ui/events/ozone/evdev/touch_filter/false_touch_finder_unittest.cc
index 9c2bce0..1df22ddc 100644
--- a/ui/events/ozone/evdev/touch_filter/false_touch_finder_unittest.cc
+++ b/ui/events/ozone/evdev/touch_filter/false_touch_finder_unittest.cc
@@ -59,8 +59,8 @@
       touches.push_back(touch);
 
       if (i == count - 1 || entry.time_ms != entries[i + 1].time_ms) {
-        false_touch_finder_->HandleTouches(touches, base::TimeTicks() +
-            base::TimeDelta::FromMilliseconds(entry.time_ms));
+        false_touch_finder_->HandleTouches(
+            touches, base::TimeTicks() + base::Milliseconds(entry.time_ms));
 
         for (size_t j = 0; j < touches.size(); ++j) {
           bool expect_delay = entries[j + start_index].expect_delay;
diff --git a/ui/events/ozone/evdev/touch_filter/heuristic_stylus_palm_detection_filter_unittest.cc b/ui/events/ozone/evdev/touch_filter/heuristic_stylus_palm_detection_filter_unittest.cc
index f7aba7b..bb77cc4 100644
--- a/ui/events/ozone/evdev/touch_filter/heuristic_stylus_palm_detection_filter_unittest.cc
+++ b/ui/events/ozone/evdev/touch_filter/heuristic_stylus_palm_detection_filter_unittest.cc
@@ -35,11 +35,10 @@
 
  protected:
   const int hold_sample_count = 5;
-  const base::TimeDelta hold_time = base::TimeDelta::FromSecondsD(1.0);
-  const base::TimeDelta suppress_time = base::TimeDelta::FromSecondsD(0.4);
+  const base::TimeDelta hold_time = base::Seconds(1.0);
+  const base::TimeDelta suppress_time = base::Seconds(0.4);
 
-  const base::TimeDelta sample_interval =
-      base::TimeDelta::FromMillisecondsD(7.5);
+  const base::TimeDelta sample_interval = base::Milliseconds(7.5);
 
   std::unique_ptr<SharedPalmDetectionFilterState> shared_palm_state;
   std::unique_ptr<PalmDetectionFilter> palm_detection_filter_;
@@ -52,11 +51,10 @@
 
 TEST_F(HeuristicStylusPalmDetectionFilterDeathTest, TestDCheck) {
   // We run with a time where hold_time < suppress_time, which should DCHECK.
-  EXPECT_DCHECK_DEATH(
-      palm_detection_filter_ =
-          std::make_unique<HeuristicStylusPalmDetectionFilter>(
-              shared_palm_state.get(), hold_sample_count, hold_time,
-              hold_time + base::TimeDelta::FromMillisecondsD(0.1)));
+  EXPECT_DCHECK_DEATH(palm_detection_filter_ =
+                          std::make_unique<HeuristicStylusPalmDetectionFilter>(
+                              shared_palm_state.get(), hold_sample_count,
+                              hold_time, hold_time + base::Milliseconds(0.1)));
 }
 
 TEST_F(HeuristicStylusPalmDetectionFilterTest, TestSetsToZero) {
@@ -91,8 +89,7 @@
   EXPECT_TRUE(suppress.none());
 
   // Now, what if we keep going with these strokes for a long time.
-  for (;
-       start_time < test_start_time_ + base::TimeDelta::FromMillisecondsD(1000);
+  for (; start_time < test_start_time_ + base::Milliseconds(1000);
        start_time += sample_interval) {
     palm_detection_filter_->Filter(touches_, start_time, &hold, &suppress);
     EXPECT_TRUE(hold.none());
@@ -160,7 +157,7 @@
   touches_[0].tool_code = 0;
   touches_[1].touching = true;
   base::TimeTicks start_time =
-      test_start_time_ + hold_time + base::TimeDelta::FromMillisecondsD(1e-2);
+      test_start_time_ + hold_time + base::Milliseconds(1e-2);
   palm_detection_filter_->Filter(touches_, start_time, &hold, &suppress);
   EXPECT_EQ(2u, shared_palm_state->active_finger_touches);
   EXPECT_TRUE(hold.none());
@@ -180,7 +177,7 @@
   touches_[0].tool_code = 0;
   touches_[0].touching = true;
   base::TimeTicks start_time =
-      test_start_time_ + hold_time - base::TimeDelta::FromMillisecondsD(1e-2);
+      test_start_time_ + hold_time - base::Milliseconds(1e-2);
   palm_detection_filter_->Filter(touches_, start_time, &hold, &suppress);
   EXPECT_TRUE(hold.test(0));
   EXPECT_TRUE(suppress.none());
diff --git a/ui/events/ozone/evdev/touch_filter/neural_stylus_palm_detection_filter_unittest.cc b/ui/events/ozone/evdev/touch_filter/neural_stylus_palm_detection_filter_unittest.cc
index 5e3b390..f04d49f 100644
--- a/ui/events/ozone/evdev/touch_filter/neural_stylus_palm_detection_filter_unittest.cc
+++ b/ui/events/ozone/evdev/touch_filter/neural_stylus_palm_detection_filter_unittest.cc
@@ -43,8 +43,7 @@
     model_config_.max_neighbor_distance_in_mm = 20;
     model_config_.heuristic_palm_touch_limit = 40;
     model_config_.heuristic_palm_area_limit = 1000;
-    model_config_.max_dead_neighbor_time =
-        base::TimeDelta::FromMillisecondsD(100);
+    model_config_.max_dead_neighbor_time = base::Milliseconds(100);
     EXPECT_CALL(*model_, config())
         .Times(testing::AnyNumber())
         .WillRepeatedly(testing::ReturnRef(model_config_));
@@ -129,7 +128,7 @@
   touch_[0].major = 34;  // 34 * 32 = 1088
   touch_[0].minor = 32;
   base::TimeTicks touch_time =
-      base::TimeTicks::UnixEpoch() + base::TimeDelta::FromMillisecondsD(10.0);
+      base::TimeTicks::UnixEpoch() + base::Milliseconds(10.0);
   palm_detection_filter_->Filter(touch_, touch_time, &actual_held,
                                  &actual_cancelled);
   EXPECT_TRUE(actual_held.none());
@@ -138,7 +137,7 @@
   touch_[0].was_touching = true;
   touch_[0].touching = false;
   touch_[0].tracking_id = -1;
-  touch_time += base::TimeDelta::FromMillisecondsD(8.0f);
+  touch_time += base::Milliseconds(8.0f);
   palm_detection_filter_->Filter(touch_, touch_time, &actual_held,
                                  &actual_cancelled);
   EXPECT_TRUE(actual_held.none());
@@ -155,7 +154,7 @@
   touch_[0].major = 25;
   touch_[0].minor = 17;
   base::TimeTicks touch_time =
-      base::TimeTicks::UnixEpoch() + base::TimeDelta::FromMillisecondsD(10.0);
+      base::TimeTicks::UnixEpoch() + base::Milliseconds(10.0);
   palm_detection_filter_->Filter(touch_, touch_time, &actual_held,
                                  &actual_cancelled);
   EXPECT_TRUE(actual_held.none());
@@ -164,13 +163,13 @@
   touch_[0].was_touching = true;
   touch_[0].touching = false;
   touch_[0].tracking_id = -1;
-  touch_time += base::TimeDelta::FromMillisecondsD(8.0f);
+  touch_time += base::Milliseconds(8.0f);
   palm_detection_filter_->Filter(touch_, touch_time, &actual_held,
                                  &actual_cancelled);
   EXPECT_TRUE(actual_held.none());
   EXPECT_TRUE(actual_cancelled.none());
 
-  touch_time += base::TimeDelta::FromSecondsD(3600);
+  touch_time += base::Seconds(3600);
   touch_[0].touching = true;
   touch_[0].major = 57;
   touch_[0].tracking_id = 601;
@@ -182,7 +181,7 @@
   touch_[0].was_touching = true;
   touch_[0].touching = false;
   touch_[0].tracking_id = -1;
-  touch_time += base::TimeDelta::FromMillisecondsD(8.0f);
+  touch_time += base::Milliseconds(8.0f);
   palm_detection_filter_->Filter(touch_, touch_time, &actual_held,
                                  &actual_cancelled);
   EXPECT_TRUE(actual_held.none());
@@ -199,7 +198,7 @@
   std::bitset<kNumTouchEvdevSlots> actual_held, actual_cancelled;
   std::bitset<kNumTouchEvdevSlots> expected_cancelled;
 
-  model_config_.max_blank_time = base::TimeDelta::FromMillisecondsD(100);
+  model_config_.max_blank_time = base::Milliseconds(100);
   model_config_.use_tracking_id_count = true;
   model_config_.use_active_tracking_id_count = true;
 
@@ -211,7 +210,7 @@
   touch_[0].y = 10;
   touch_[0].slot = 0;
   base::TimeTicks touch_time =
-      base::TimeTicks::UnixEpoch() + base::TimeDelta::FromMillisecondsD(10.0);
+      base::TimeTicks::UnixEpoch() + base::Milliseconds(10.0);
   palm_detection_filter_->Filter(touch_, touch_time, &actual_held,
                                  &actual_cancelled);
   EXPECT_TRUE(actual_held.none());
@@ -238,7 +237,7 @@
   touch_[2].tracking_id = 502;
   touch_[2].slot = 2;
 
-  touch_time += base::TimeDelta::FromMillisecondsD(8.0f);
+  touch_time += base::Milliseconds(8.0f);
   palm_detection_filter_->Filter(touch_, touch_time, &actual_held,
                                  &actual_cancelled);
   EXPECT_TRUE(actual_held.none());
@@ -263,7 +262,7 @@
               Inference(testing::Pointwise(testing::FloatEq(), features)))
       .Times(1)
       .WillOnce(testing::Return(0.5));
-  touch_time += base::TimeDelta::FromMillisecondsD(8.0f);
+  touch_time += base::Milliseconds(8.0f);
   palm_detection_filter_->Filter(touch_, touch_time, &actual_held,
                                  &actual_cancelled);
   EXPECT_TRUE(actual_held.none());
@@ -285,7 +284,7 @@
               Inference(testing::Pointwise(testing::FloatEq(), features)))
       .Times(1)
       .WillOnce(testing::Return(0.5));
-  touch_time += base::TimeDelta::FromMillisecondsD(8.0f);
+  touch_time += base::Milliseconds(8.0f);
   palm_detection_filter_->Filter(touch_, touch_time, &actual_held,
                                  &actual_cancelled);
   EXPECT_TRUE(actual_held.none());
@@ -296,7 +295,7 @@
 TEST_F(NeuralStylusPalmDetectionFilterTest, InferenceOnceNotPalm) {
   std::bitset<kNumTouchEvdevSlots> actual_held, actual_cancelled;
   base::TimeTicks touch_time =
-      base::TimeTicks::UnixEpoch() + base::TimeDelta::FromMillisecondsD(10.0);
+      base::TimeTicks::UnixEpoch() + base::Milliseconds(10.0);
 
   touch_[0].touching = true;
   touch_[0].tracking_id = 600;
@@ -311,7 +310,7 @@
     if (i != 0) {
       touch_[0].was_touching = true;
     }
-    touch_time += base::TimeDelta::FromMillisecondsD(8.0f);
+    touch_time += base::Milliseconds(8.0f);
     palm_detection_filter_->Filter(touch_, touch_time, &actual_held,
                                    &actual_cancelled);
     ASSERT_TRUE(actual_held.none()) << " Failed at " << i;
@@ -323,7 +322,7 @@
   std::bitset<kNumTouchEvdevSlots> actual_held, actual_cancelled;
   std::bitset<kNumTouchEvdevSlots> expected_cancelled;
   base::TimeTicks touch_time =
-      base::TimeTicks::UnixEpoch() + base::TimeDelta::FromMillisecondsD(10.0);
+      base::TimeTicks::UnixEpoch() + base::Milliseconds(10.0);
   expected_cancelled.set(0, true);
   touch_[0].touching = true;
   touch_[0].tracking_id = 600;
@@ -335,17 +334,15 @@
       .Times(1)
       .WillOnce(testing::Return(0.5));
 
-  base::TimeTicks original_finger_time =
-      touch_time + base::TimeDelta::FromMillisecondsD(8.0f);
+  base::TimeTicks original_finger_time = touch_time + base::Milliseconds(8.0f);
   base::TimeTicks original_palm_time =
-      touch_time +
-      model_config_.max_sample_count * base::TimeDelta::FromMillisecondsD(8.0f);
+      touch_time + model_config_.max_sample_count * base::Milliseconds(8.0f);
 
   for (size_t i = 0; i < 5000; ++i) {
     if (i != 0) {
       touch_[0].was_touching = true;
     }
-    touch_time += base::TimeDelta::FromMillisecondsD(8.0f);
+    touch_time += base::Milliseconds(8.0f);
     palm_detection_filter_->Filter(touch_, touch_time, &actual_held,
                                    &actual_cancelled);
     ASSERT_EQ(original_finger_time,
@@ -377,7 +374,7 @@
   touch_[0].major = 39;
   touch_[0].minor = 21;
   base::TimeTicks touch_time =
-      base::TimeTicks::UnixEpoch() + base::TimeDelta::FromMillisecondsD(10.0);
+      base::TimeTicks::UnixEpoch() + base::Milliseconds(10.0);
   palm_detection_filter_->Filter(touch_, touch_time, &actual_held,
                                  &actual_cancelled);
 
@@ -397,7 +394,7 @@
   touch_[0].major = 39;
   touch_[0].minor = 30;
   base::TimeTicks touch_time =
-      base::TimeTicks::UnixEpoch() + base::TimeDelta::FromMillisecondsD(10.0);
+      base::TimeTicks::UnixEpoch() + base::Milliseconds(10.0);
   palm_detection_filter_->Filter(touch_, touch_time, &actual_held,
                                  &actual_cancelled);
 
@@ -408,7 +405,7 @@
   // Delay continues even afterwards, until inference time: then it's off.
   for (uint32_t i = 1; i < model_config_.max_sample_count - 1; ++i) {
     touch_[0].was_touching = true;
-    touch_time += base::TimeDelta::FromMillisecondsD(10.0);
+    touch_time += base::Milliseconds(10.0);
     touch_[0].major = 15;
     touch_[0].minor = 15;
     touch_[0].x += 1;
@@ -422,8 +419,7 @@
   EXPECT_CALL(*model_, Inference(testing::_))
       .Times(1)
       .WillOnce(testing::Return(-0.1));
-  touch_time =
-      base::TimeTicks::UnixEpoch() + base::TimeDelta::FromMillisecondsD(10.0);
+  touch_time = base::TimeTicks::UnixEpoch() + base::Milliseconds(10.0);
   palm_detection_filter_->Filter(touch_, touch_time, &actual_held,
                                  &actual_cancelled);
   expected_held.set(0, false);
diff --git a/ui/events/ozone/evdev/touch_filter/neural_stylus_palm_detection_filter_util_unittest.cc b/ui/events/ozone/evdev/touch_filter/neural_stylus_palm_detection_filter_util_unittest.cc
index 519fbf3..d2c92c0 100644
--- a/ui/events/ozone/evdev/touch_filter/neural_stylus_palm_detection_filter_util_unittest.cc
+++ b/ui/events/ozone/evdev/touch_filter/neural_stylus_palm_detection_filter_util_unittest.cc
@@ -96,7 +96,7 @@
 }
 
 TEST_F(NeuralStylusPalmDetectionFilterUtilTest, PalmFilterSampleTest) {
-  base::TimeTicks time = base::TimeTicks() + base::TimeDelta::FromSeconds(30);
+  base::TimeTicks time = base::TimeTicks() + base::Seconds(30);
   const PalmFilterDeviceInfo nocturne_distilled =
       CreatePalmFilterDeviceInfo(nocturne_touchscreen_);
   const PalmFilterSample sample =
@@ -112,7 +112,7 @@
 
 TEST_F(NeuralStylusPalmDetectionFilterUtilTest, LinkTouchscreenSampleTest) {
   EventDeviceInfo link_touchscreen;
-  base::TimeTicks time = base::TimeTicks() + base::TimeDelta::FromSeconds(30);
+  base::TimeTicks time = base::TimeTicks() + base::Seconds(30);
   ASSERT_TRUE(CapabilitiesToDeviceInfo(kLinkTouchscreen, &link_touchscreen));
   const PalmFilterDeviceInfo link_distilled =
       CreatePalmFilterDeviceInfo(link_touchscreen);
@@ -132,7 +132,7 @@
   // With no points, center is 0.
   EXPECT_EQ(gfx::PointF(0., 0.), stroke.GetCentroid());
 
-  base::TimeTicks time = base::TimeTicks() + base::TimeDelta::FromSeconds(30);
+  base::TimeTicks time = base::TimeTicks() + base::Seconds(30);
   const PalmFilterDeviceInfo nocturne_distilled =
       CreatePalmFilterDeviceInfo(nocturne_touchscreen_);
   // Deliberately long test to ensure floating point continued accuracy.
@@ -170,7 +170,7 @@
   PalmFilterStroke no_minor_stroke(3);  // maxsize: 3.
   EXPECT_EQ(0, stroke.BiggestSize());
 
-  base::TimeTicks time = base::TimeTicks() + base::TimeDelta::FromSeconds(30);
+  base::TimeTicks time = base::TimeTicks() + base::Seconds(30);
   const PalmFilterDeviceInfo nocturne_distilled =
       CreatePalmFilterDeviceInfo(nocturne_touchscreen_);
   for (int i = 0; i < 500; ++i) {
@@ -194,8 +194,7 @@
 TEST_F(NeuralStylusPalmDetectionFilterUtilTest, StrokeGetMaxMajorTest) {
   PalmFilterStroke stroke(3);
   EXPECT_FLOAT_EQ(0, stroke.MaxMajorRadius());
-  base::TimeTicks time =
-      base::TimeTicks::UnixEpoch() + base::TimeDelta::FromSeconds(30);
+  base::TimeTicks time = base::TimeTicks::UnixEpoch() + base::Seconds(30);
   const PalmFilterDeviceInfo nocturne_distilled =
       CreatePalmFilterDeviceInfo(nocturne_touchscreen_);
   for (int i = 1; i < 50; ++i) {
@@ -203,7 +202,7 @@
     touch_.minor = i - 1;
     PalmFilterSample sample =
         CreatePalmFilterSample(touch_, time, model_config_, nocturne_distilled);
-    time += base::TimeDelta::FromMilliseconds(8);
+    time += base::Milliseconds(8);
     EXPECT_EQ(static_cast<uint64_t>(i - 1), stroke.samples_seen());
     stroke.AddSample(sample);
     EXPECT_FLOAT_EQ(i, stroke.MaxMajorRadius());
@@ -213,8 +212,7 @@
 TEST_F(NeuralStylusPalmDetectionFilterUtilTest, SampleRadiusConversion) {
   // A single number: a _constant_.
   model_config_.radius_polynomial_resize = {71.3};
-  base::TimeTicks time =
-      base::TimeTicks::UnixEpoch() + base::TimeDelta::FromSeconds(30);
+  base::TimeTicks time = base::TimeTicks::UnixEpoch() + base::Seconds(30);
   const PalmFilterDeviceInfo nocturne_distilled =
       CreatePalmFilterDeviceInfo(nocturne_touchscreen_);
   PalmFilterSample sample =
diff --git a/ui/events/ozone/evdev/touch_filter/neural_stylus_palm_report_filter_unittest.cc b/ui/events/ozone/evdev/touch_filter/neural_stylus_palm_report_filter_unittest.cc
index b58879ea..399af036 100644
--- a/ui/events/ozone/evdev/touch_filter/neural_stylus_palm_report_filter_unittest.cc
+++ b/ui/events/ozone/evdev/touch_filter/neural_stylus_palm_report_filter_unittest.cc
@@ -81,11 +81,11 @@
 
   shared_palm_state->active_palm_touches = 2;
   shared_palm_state->latest_stylus_touch_time =
-      sample_t - base::TimeDelta::FromMillisecondsD(10.0);
+      sample_t - base::Milliseconds(10.0);
   shared_palm_state->latest_palm_touch_time =
-      sample_t - base::TimeDelta::FromMillisecondsD(15.0);
+      sample_t - base::Milliseconds(15.0);
   shared_palm_state->latest_finger_touch_time =
-      sample_t - base::TimeDelta::FromMillisecondsD(20.0);
+      sample_t - base::Milliseconds(20.0);
 
   inputs[0].altered = true;
   inputs[0].stylus_button = true;
@@ -95,13 +95,11 @@
   histogram_tester.ExpectTotalCount(NeuralStylusReportFilter::kNeuralPalmAge,
                                     1);
   histogram_tester.ExpectTimeBucketCount(
-      NeuralStylusReportFilter::kNeuralPalmAge,
-      base::TimeDelta::FromMillisecondsD(15.0), 1);
+      NeuralStylusReportFilter::kNeuralPalmAge, base::Milliseconds(15.0), 1);
   histogram_tester.ExpectTotalCount(NeuralStylusReportFilter::kNeuralFingerAge,
                                     1);
   histogram_tester.ExpectTimeBucketCount(
-      NeuralStylusReportFilter::kNeuralFingerAge,
-      base::TimeDelta::FromMillisecondsD(20.0), 1);
+      NeuralStylusReportFilter::kNeuralFingerAge, base::Milliseconds(20.0), 1);
   histogram_tester.ExpectTotalCount(
       NeuralStylusReportFilter::kNeuralPalmTouchCount, 1);
   histogram_tester.ExpectBucketCount(
@@ -109,9 +107,8 @@
   // We should now get a bunch of updates.
 
   // Ensure no more updates.
-  palm_detection_filter_->Filter(
-      inputs, sample_t + base::TimeDelta::FromMillisecondsD(5.0), &hold,
-      &suppress);
+  palm_detection_filter_->Filter(inputs, sample_t + base::Milliseconds(5.0),
+                                 &hold, &suppress);
   histogram_tester.ExpectTotalCount(NeuralStylusReportFilter::kNeuralPalmAge,
                                     1);
   histogram_tester.ExpectTotalCount(NeuralStylusReportFilter::kNeuralFingerAge,
@@ -121,32 +118,26 @@
 
   // Set to 0 again, filter, then set to touching again.
   inputs[0] = inputs[1];
-  palm_detection_filter_->Filter(
-      inputs, sample_t + base::TimeDelta::FromMillisecondsD(10.0), &hold,
-      &suppress);
+  palm_detection_filter_->Filter(inputs, sample_t + base::Milliseconds(10.0),
+                                 &hold, &suppress);
 
   inputs[0].altered = true;
   inputs[0].stylus_button = true;
-  palm_detection_filter_->Filter(
-      inputs, sample_t + base::TimeDelta::FromMillisecondsD(15.0), &hold,
-      &suppress);
+  palm_detection_filter_->Filter(inputs, sample_t + base::Milliseconds(15.0),
+                                 &hold, &suppress);
   histogram_tester.ExpectTotalCount(NeuralStylusReportFilter::kNeuralPalmAge,
                                     2);
   histogram_tester.ExpectTimeBucketCount(
-      NeuralStylusReportFilter::kNeuralPalmAge,
-      base::TimeDelta::FromMillisecondsD(15.0), 1);
+      NeuralStylusReportFilter::kNeuralPalmAge, base::Milliseconds(15.0), 1);
   histogram_tester.ExpectTimeBucketCount(
-      NeuralStylusReportFilter::kNeuralPalmAge,
-      base::TimeDelta::FromMillisecondsD(30.0), 1);
+      NeuralStylusReportFilter::kNeuralPalmAge, base::Milliseconds(30.0), 1);
 
   histogram_tester.ExpectTotalCount(NeuralStylusReportFilter::kNeuralFingerAge,
                                     2);
   histogram_tester.ExpectTimeBucketCount(
-      NeuralStylusReportFilter::kNeuralFingerAge,
-      base::TimeDelta::FromMillisecondsD(20.0), 1);
+      NeuralStylusReportFilter::kNeuralFingerAge, base::Milliseconds(20.0), 1);
   histogram_tester.ExpectTimeBucketCount(
-      NeuralStylusReportFilter::kNeuralFingerAge,
-      base::TimeDelta::FromMillisecondsD(35.0), 1);
+      NeuralStylusReportFilter::kNeuralFingerAge, base::Milliseconds(35.0), 1);
 
   histogram_tester.ExpectTotalCount(
       NeuralStylusReportFilter::kNeuralPalmTouchCount, 2);
diff --git a/ui/events/ozone/evdev/touch_filter/palm_detection_filter_factory.cc b/ui/events/ozone/evdev/touch_filter/palm_detection_filter_factory.cc
index 1e2a97eb..dca2652 100644
--- a/ui/events/ozone/evdev/touch_filter/palm_detection_filter_factory.cc
+++ b/ui/events/ozone/evdev/touch_filter/palm_detection_filter_factory.cc
@@ -109,9 +109,9 @@
       HeuristicStylusPalmDetectionFilter::
           CompatibleWithHeuristicStylusPalmDetectionFilter(devinfo)) {
     const base::TimeDelta hold_time =
-        base::TimeDelta::FromSecondsD(kHeuristicHoldThresholdSeconds.Get());
+        base::Seconds(kHeuristicHoldThresholdSeconds.Get());
     const base::TimeDelta cancel_time =
-        base::TimeDelta::FromSecondsD(kHeuristicCancelThresholdSeconds.Get());
+        base::Seconds(kHeuristicCancelThresholdSeconds.Get());
     const int stroke_count = kHeuristicStrokeCount.Get();
     return std::make_unique<HeuristicStylusPalmDetectionFilter>(
         shared_palm_state, stroke_count, hold_time, cancel_time);
diff --git a/ui/events/ozone/evdev/touch_filter/palm_detection_filter_factory_unittest.cc b/ui/events/ozone/evdev/touch_filter/palm_detection_filter_factory_unittest.cc
index 43edd14f..053107f 100644
--- a/ui/events/ozone/evdev/touch_filter/palm_detection_filter_factory_unittest.cc
+++ b/ui/events/ozone/evdev/touch_filter/palm_detection_filter_factory_unittest.cc
@@ -142,9 +142,8 @@
             palm_filter->FilterNameForTesting());
   HeuristicStylusPalmDetectionFilter* heuristic_filter =
       static_cast<HeuristicStylusPalmDetectionFilter*>(palm_filter.get());
-  EXPECT_EQ(base::TimeDelta::FromSecondsD(0.8), heuristic_filter->CancelTime());
-  EXPECT_EQ(base::TimeDelta::FromSecondsD(15.327),
-            heuristic_filter->HoldTime());
+  EXPECT_EQ(base::Seconds(0.8), heuristic_filter->CancelTime());
+  EXPECT_EQ(base::Seconds(15.327), heuristic_filter->HoldTime());
 }
 TEST_F(PalmDetectionFilterFactoryTest, NeuralReportNoNeuralDetectSet) {
   scoped_feature_list_->InitWithFeatures(
diff --git a/ui/events/ozone/evdev/touch_filter/palm_model/onedevice_train_palm_detection_filter_model.cc b/ui/events/ozone/evdev/touch_filter/palm_model/onedevice_train_palm_detection_filter_model.cc
index fc4a4c05..1b43b43 100644
--- a/ui/events/ozone/evdev/touch_filter/palm_model/onedevice_train_palm_detection_filter_model.cc
+++ b/ui/events/ozone/evdev/touch_filter/palm_model/onedevice_train_palm_detection_filter_model.cc
@@ -55,10 +55,10 @@
   config_.max_neighbor_distance_in_mm = 100.0f;
   config_.min_sample_count = 6;
   config_.max_sample_count = 12;
-  config_.max_dead_neighbor_time = base::TimeDelta::FromMillisecondsD(100.0f);
+  config_.max_dead_neighbor_time = base::Milliseconds(100.0f);
   config_.heuristic_palm_touch_limit = 20.0f;
   config_.heuristic_palm_area_limit = 400.0f;
-  config_.max_blank_time = base::TimeDelta::FromMillisecondsD(100.0f);
+  config_.max_blank_time = base::Milliseconds(100.0f);
 }
 
 OneDeviceTrainNeuralStylusPalmDetectionFilterModel::
diff --git a/ui/events/ozone/keyboard/event_auto_repeat_handler.cc b/ui/events/ozone/keyboard/event_auto_repeat_handler.cc
index 14a1de5..0d142aea 100644
--- a/ui/events/ozone/keyboard/event_auto_repeat_handler.cc
+++ b/ui/events/ozone/keyboard/event_auto_repeat_handler.cc
@@ -19,8 +19,8 @@
 }  // namespace
 
 EventAutoRepeatHandler::EventAutoRepeatHandler(Delegate* delegate)
-    : repeat_delay_(base::TimeDelta::FromMilliseconds(kRepeatDelayMs)),
-      repeat_interval_(base::TimeDelta::FromMilliseconds(kRepeatIntervalMs)),
+    : repeat_delay_(base::Milliseconds(kRepeatDelayMs)),
+      repeat_interval_(base::Milliseconds(kRepeatIntervalMs)),
       delegate_(delegate) {
   DCHECK(delegate_);
 }
diff --git a/ui/events/test/event_generator.cc b/ui/events/test/event_generator.cc
index 0f77c94..d6a41d8 100644
--- a/ui/events/test/event_generator.cc
+++ b/ui/events/test/event_generator.cc
@@ -44,8 +44,7 @@
   // Unconditionally returns a tick count that is 1ms later than the previous
   // call, starting at 1ms.
   base::TimeTicks NowTicks() const override {
-    static constexpr base::TimeDelta kOneMillisecond =
-        base::TimeDelta::FromMilliseconds(1);
+    static constexpr base::TimeDelta kOneMillisecond = base::Milliseconds(1);
     return ticks_ += kOneMillisecond;
   }
 
@@ -324,7 +323,7 @@
 
   ui::TouchEvent release(
       ui::ET_TOUCH_RELEASED, converted_location,
-      press.time_stamp() + base::TimeDelta::FromMilliseconds(50),
+      press.time_stamp() + base::Milliseconds(50),
       ui::PointerDetails(ui::EventPointerType::kTouch, kTouchId));
   Dispatch(&release);
 }
@@ -342,7 +341,7 @@
 
   ui::TouchEvent release(
       ui::ET_TOUCH_RELEASED, converted_location,
-      press.time_stamp() + base::TimeDelta::FromMilliseconds(1000),
+      press.time_stamp() + base::Milliseconds(1000),
       ui::PointerDetails(ui::EventPointerType::kTouch, kTouchId));
   Dispatch(&release);
 }
@@ -354,7 +353,7 @@
     int steps) {
   const float kGestureDistance = (start - end).Length();
   const float kFlingStepDelay = (kGestureDistance / velocity) / steps * 1000000;
-  return base::TimeDelta::FromMicroseconds(kFlingStepDelay);
+  return base::Microseconds(kFlingStepDelay);
 }
 
 void EventGenerator::GestureScrollSequence(const gfx::Point& start,
@@ -439,17 +438,16 @@
   bool pressed[kMaxTouchPoints];
   for (int i = 0; i < count; ++i) {
     pressed[i] = false;
-    press_time[i] = press_time_first +
-        base::TimeDelta::FromMilliseconds(delay_adding_finger_ms[i]);
-    release_time[i] = press_time_first + base::TimeDelta::FromMilliseconds(
-                                             delay_releasing_finger_ms[i]);
+    press_time[i] =
+        press_time_first + base::Milliseconds(delay_adding_finger_ms[i]);
+    release_time[i] =
+        press_time_first + base::Milliseconds(delay_releasing_finger_ms[i]);
     DCHECK_LE(press_time[i], release_time[i]);
   }
 
   for (int step = 0; step < steps; ++step) {
     base::TimeTicks move_time =
-        press_time_first +
-        base::TimeDelta::FromMilliseconds(event_separation_time_ms * step);
+        press_time_first + base::Milliseconds(event_separation_time_ms * step);
 
     for (int i = 0; i < count; ++i) {
       if (!pressed[i] && move_time >= press_time[i]) {
@@ -485,8 +483,7 @@
   }
 
   base::TimeTicks default_release_time =
-      press_time_first +
-      base::TimeDelta::FromMilliseconds(event_separation_time_ms * steps);
+      press_time_first + base::Milliseconds(event_separation_time_ms * steps);
   // Ensures that all pressed fingers are released in the end.
   for (int i = 0; i < count; ++i) {
     if (pressed[i]) {
diff --git a/ui/events/test/scoped_event_test_tick_clock.h b/ui/events/test/scoped_event_test_tick_clock.h
index a2cc531..5cc66de 100644
--- a/ui/events/test/scoped_event_test_tick_clock.h
+++ b/ui/events/test/scoped_event_test_tick_clock.h
@@ -31,8 +31,7 @@
   ~ScopedEventTestTickClock() { ui::SetEventTickClockForTesting(nullptr); }
 
   void SetNowSeconds(int64_t seconds) {
-    test_clock_.SetNowTicks(base::TimeTicks() +
-                            base::TimeDelta::FromSeconds(seconds));
+    test_clock_.SetNowTicks(base::TimeTicks() + base::Seconds(seconds));
   }
 
   void SetNowTicks(base::TimeTicks ticks) { test_clock_.SetNowTicks(ticks); }
diff --git a/ui/events/win/events_win_utils.cc b/ui/events/win/events_win_utils.cc
index 7b6a8f9..7d319db 100644
--- a/ui/events/win/events_win_utils.cc
+++ b/ui/events/win/events_win_utils.cc
@@ -162,8 +162,7 @@
   ~GetTickCountClock() override = default;
 
   base::TimeTicks NowTicks() const override {
-    return base::TimeTicks() +
-           base::TimeDelta::FromMilliseconds(::GetTickCount());
+    return base::TimeTicks() + base::Milliseconds(::GetTickCount());
   }
 };
 
@@ -265,15 +264,14 @@
     g_tick_count_clock = default_tick_count_clock.get();
 
   base::TimeTicks time_stamp =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(event_time);
+      base::TimeTicks() + base::Milliseconds(event_time);
 
   base::TimeTicks current_tick_count = g_tick_count_clock->NowTicks();
   // Check if the 32-bit tick count wrapped around after the event.
   if (current_tick_count < time_stamp) {
     // ::GetTickCount returns an unsigned 32-bit value, which will fit into the
     // signed 64-bit base::TimeTicks.
-    current_tick_count +=
-        base::TimeDelta::FromMilliseconds(std::numeric_limits<DWORD>::max());
+    current_tick_count += base::Milliseconds(std::numeric_limits<DWORD>::max());
   }
 
   // |time_stamp| is from the GetTickCount clock, which has a different 0-point
diff --git a/ui/events/x/events_x_utils.cc b/ui/events/x/events_x_utils.cc
index 86902388..0b71434a 100644
--- a/ui/events/x/events_x_utils.cc
+++ b/ui/events/x/events_x_utils.cc
@@ -337,8 +337,7 @@
 
   g_last_seen_timestamp_ms = timestamp64;
   if (!had_recent_rollover)
-    return base::TimeTicks() +
-           base::TimeDelta::FromMilliseconds(g_rollover_ms + timestamp32);
+    return base::TimeTicks() + base::Milliseconds(g_rollover_ms + timestamp32);
 
   DCHECK(timestamp64 <= UINT32_MAX)
       << "X11 Time does not roll over 32 bit, the below logic is likely wrong";
@@ -348,7 +347,7 @@
 
   g_rollover_ms = now_ms & ~static_cast<int64_t>(UINT32_MAX);
   uint32_t delta = static_cast<uint32_t>(now_ms - timestamp32);
-  return base::TimeTicks() + base::TimeDelta::FromMilliseconds(now_ms - delta);
+  return base::TimeTicks() + base::Milliseconds(now_ms - delta);
 }
 
 base::TimeTicks TimeTicksFromXEvent(const x11::Event& xev) {
diff --git a/ui/gfx/android/android_surface_control_compat.cc b/ui/gfx/android/android_surface_control_compat.cc
index 092fa66a3..a92788e7 100644
--- a/ui/gfx/android/android_surface_control_compat.cc
+++ b/ui/gfx/android/android_surface_control_compat.cc
@@ -339,7 +339,7 @@
           stats));
   transaction_stats.latch_time =
       base::TimeTicks() +
-      base::TimeDelta::FromNanoseconds(
+      base::Nanoseconds(
           SurfaceControlMethods::Get().ASurfaceTransactionStats_getLatchTimeFn(
               stats));
   if (transaction_stats.latch_time == base::TimeTicks())
diff --git a/ui/gfx/animation/animation_container_unittest.cc b/ui/gfx/animation/animation_container_unittest.cc
index 81335cc..9322e210 100644
--- a/ui/gfx/animation/animation_container_unittest.cc
+++ b/ui/gfx/animation/animation_container_unittest.cc
@@ -53,7 +53,7 @@
 class TestAnimation : public LinearAnimation {
  public:
   explicit TestAnimation(AnimationDelegate* delegate)
-      : LinearAnimation(base::TimeDelta::FromMilliseconds(20), 20, delegate) {}
+      : LinearAnimation(base::Milliseconds(20), 20, delegate) {}
 
   TestAnimation(const TestAnimation&) = delete;
   TestAnimation& operator=(const TestAnimation&) = delete;
diff --git a/ui/gfx/animation/animation_runner_unittest.cc b/ui/gfx/animation/animation_runner_unittest.cc
index 174fe72..632740e 100644
--- a/ui/gfx/animation/animation_runner_unittest.cc
+++ b/ui/gfx/animation/animation_runner_unittest.cc
@@ -19,7 +19,7 @@
       base::test::TaskEnvironment::TimeSource::MOCK_TIME);
 
   auto runner = AnimationRunner::CreateDefaultAnimationRunner();
-  constexpr auto kDelay = base::TimeDelta::FromMilliseconds(20);
+  constexpr auto kDelay = base::Milliseconds(20);
   int call_count = 0;
   runner->Start(kDelay, base::TimeDelta(),
                 base::BindLambdaForTesting([&](base::TimeTicks ticks) {
diff --git a/ui/gfx/animation/animation_unittest.cc b/ui/gfx/animation/animation_unittest.cc
index 4f021f1..130390db 100644
--- a/ui/gfx/animation/animation_unittest.cc
+++ b/ui/gfx/animation/animation_unittest.cc
@@ -96,7 +96,7 @@
 TEST_F(AnimationTest, RunCase) {
   TestAnimationDelegate ad;
   RunAnimation a1(150, &ad);
-  a1.SetDuration(base::TimeDelta::FromSeconds(2));
+  a1.SetDuration(base::Seconds(2));
   a1.Start();
   base::RunLoop().Run();
 
@@ -106,7 +106,7 @@
 
 TEST_F(AnimationTest, CancelCase) {
   TestAnimationDelegate ad;
-  CancelAnimation a2(base::TimeDelta::FromSeconds(2), 150, &ad);
+  CancelAnimation a2(base::Seconds(2), 150, &ad);
   a2.Start();
   base::RunLoop().Run();
 
@@ -118,7 +118,7 @@
 // right delegate methods invoked.
 TEST_F(AnimationTest, EndCase) {
   TestAnimationDelegate ad;
-  EndAnimation a2(base::TimeDelta::FromSeconds(2), 150, &ad);
+  EndAnimation a2(base::Seconds(2), 150, &ad);
   a2.Start();
   base::RunLoop().Run();
 
@@ -150,7 +150,7 @@
 
 // Test that current value is always 0 after Start() is called.
 TEST_F(AnimationTest, StartState) {
-  LinearAnimation animation(base::TimeDelta::FromMilliseconds(100), 60, NULL);
+  LinearAnimation animation(base::Milliseconds(100), 60, NULL);
   EXPECT_EQ(0.0, animation.GetCurrentValue());
   animation.Start();
   EXPECT_EQ(0.0, animation.GetCurrentValue());
diff --git a/ui/gfx/animation/keyframe/keyframed_animation_curve_unittest.cc b/ui/gfx/animation/keyframe/keyframed_animation_curve_unittest.cc
index 0242882..f60c08b 100644
--- a/ui/gfx/animation/keyframe/keyframed_animation_curve_unittest.cc
+++ b/ui/gfx/animation/keyframe/keyframed_animation_curve_unittest.cc
@@ -28,13 +28,11 @@
       KeyframedColorAnimationCurve::Create());
   curve->AddKeyframe(ColorKeyframe::Create(base::TimeDelta(), color, nullptr));
 
-  EXPECT_SKCOLOR_EQ(color,
-                    curve->GetValue(base::TimeDelta::FromSecondsD(-1.f)));
-  EXPECT_SKCOLOR_EQ(color, curve->GetValue(base::TimeDelta::FromSecondsD(0.f)));
-  EXPECT_SKCOLOR_EQ(color,
-                    curve->GetValue(base::TimeDelta::FromSecondsD(0.5f)));
-  EXPECT_SKCOLOR_EQ(color, curve->GetValue(base::TimeDelta::FromSecondsD(1.f)));
-  EXPECT_SKCOLOR_EQ(color, curve->GetValue(base::TimeDelta::FromSecondsD(2.f)));
+  EXPECT_SKCOLOR_EQ(color, curve->GetValue(base::Seconds(-1.f)));
+  EXPECT_SKCOLOR_EQ(color, curve->GetValue(base::Seconds(0.f)));
+  EXPECT_SKCOLOR_EQ(color, curve->GetValue(base::Seconds(0.5f)));
+  EXPECT_SKCOLOR_EQ(color, curve->GetValue(base::Seconds(1.f)));
+  EXPECT_SKCOLOR_EQ(color, curve->GetValue(base::Seconds(2.f)));
 }
 
 // Tests that a color animation with two keyframes works as expected.
@@ -46,19 +44,14 @@
       KeyframedColorAnimationCurve::Create());
   curve->AddKeyframe(
       ColorKeyframe::Create(base::TimeDelta(), color_a, nullptr));
-  curve->AddKeyframe(ColorKeyframe::Create(base::TimeDelta::FromSecondsD(1.0),
-                                           color_b, nullptr));
+  curve->AddKeyframe(
+      ColorKeyframe::Create(base::Seconds(1.0), color_b, nullptr));
 
-  EXPECT_SKCOLOR_EQ(color_a,
-                    curve->GetValue(base::TimeDelta::FromSecondsD(-1.f)));
-  EXPECT_SKCOLOR_EQ(color_a,
-                    curve->GetValue(base::TimeDelta::FromSecondsD(0.f)));
-  EXPECT_SKCOLOR_EQ(color_midpoint,
-                    curve->GetValue(base::TimeDelta::FromSecondsD(0.5f)));
-  EXPECT_SKCOLOR_EQ(color_b,
-                    curve->GetValue(base::TimeDelta::FromSecondsD(1.f)));
-  EXPECT_SKCOLOR_EQ(color_b,
-                    curve->GetValue(base::TimeDelta::FromSecondsD(2.f)));
+  EXPECT_SKCOLOR_EQ(color_a, curve->GetValue(base::Seconds(-1.f)));
+  EXPECT_SKCOLOR_EQ(color_a, curve->GetValue(base::Seconds(0.f)));
+  EXPECT_SKCOLOR_EQ(color_midpoint, curve->GetValue(base::Seconds(0.5f)));
+  EXPECT_SKCOLOR_EQ(color_b, curve->GetValue(base::Seconds(1.f)));
+  EXPECT_SKCOLOR_EQ(color_b, curve->GetValue(base::Seconds(2.f)));
 }
 
 // Tests that a color animation with three keyframes works as expected.
@@ -74,25 +67,18 @@
       KeyframedColorAnimationCurve::Create());
   curve->AddKeyframe(
       ColorKeyframe::Create(base::TimeDelta(), color_a, nullptr));
-  curve->AddKeyframe(ColorKeyframe::Create(base::TimeDelta::FromSecondsD(1.0),
-                                           color_b, nullptr));
-  curve->AddKeyframe(ColorKeyframe::Create(base::TimeDelta::FromSecondsD(2.0),
-                                           color_c, nullptr));
+  curve->AddKeyframe(
+      ColorKeyframe::Create(base::Seconds(1.0), color_b, nullptr));
+  curve->AddKeyframe(
+      ColorKeyframe::Create(base::Seconds(2.0), color_c, nullptr));
 
-  EXPECT_SKCOLOR_EQ(color_a,
-                    curve->GetValue(base::TimeDelta::FromSecondsD(-1.f)));
-  EXPECT_SKCOLOR_EQ(color_a,
-                    curve->GetValue(base::TimeDelta::FromSecondsD(0.f)));
-  EXPECT_SKCOLOR_EQ(color_midpoint1,
-                    curve->GetValue(base::TimeDelta::FromSecondsD(0.5f)));
-  EXPECT_SKCOLOR_EQ(color_b,
-                    curve->GetValue(base::TimeDelta::FromSecondsD(1.f)));
-  EXPECT_SKCOLOR_EQ(color_midpoint2,
-                    curve->GetValue(base::TimeDelta::FromSecondsD(1.5f)));
-  EXPECT_SKCOLOR_EQ(color_c,
-                    curve->GetValue(base::TimeDelta::FromSecondsD(2.f)));
-  EXPECT_SKCOLOR_EQ(color_c,
-                    curve->GetValue(base::TimeDelta::FromSecondsD(3.f)));
+  EXPECT_SKCOLOR_EQ(color_a, curve->GetValue(base::Seconds(-1.f)));
+  EXPECT_SKCOLOR_EQ(color_a, curve->GetValue(base::Seconds(0.f)));
+  EXPECT_SKCOLOR_EQ(color_midpoint1, curve->GetValue(base::Seconds(0.5f)));
+  EXPECT_SKCOLOR_EQ(color_b, curve->GetValue(base::Seconds(1.f)));
+  EXPECT_SKCOLOR_EQ(color_midpoint2, curve->GetValue(base::Seconds(1.5f)));
+  EXPECT_SKCOLOR_EQ(color_c, curve->GetValue(base::Seconds(2.f)));
+  EXPECT_SKCOLOR_EQ(color_c, curve->GetValue(base::Seconds(3.f)));
 }
 
 // Tests that a color animation with multiple keys at a given time works sanely.
@@ -104,32 +90,26 @@
       KeyframedColorAnimationCurve::Create());
   curve->AddKeyframe(
       ColorKeyframe::Create(base::TimeDelta(), color_a, nullptr));
-  curve->AddKeyframe(ColorKeyframe::Create(base::TimeDelta::FromSecondsD(1.0),
-                                           color_a, nullptr));
-  curve->AddKeyframe(ColorKeyframe::Create(base::TimeDelta::FromSecondsD(1.0),
-                                           color_b, nullptr));
-  curve->AddKeyframe(ColorKeyframe::Create(base::TimeDelta::FromSecondsD(2.0),
-                                           color_b, nullptr));
+  curve->AddKeyframe(
+      ColorKeyframe::Create(base::Seconds(1.0), color_a, nullptr));
+  curve->AddKeyframe(
+      ColorKeyframe::Create(base::Seconds(1.0), color_b, nullptr));
+  curve->AddKeyframe(
+      ColorKeyframe::Create(base::Seconds(2.0), color_b, nullptr));
 
-  EXPECT_SKCOLOR_EQ(color_a,
-                    curve->GetValue(base::TimeDelta::FromSecondsD(-1.f)));
-  EXPECT_SKCOLOR_EQ(color_a,
-                    curve->GetValue(base::TimeDelta::FromSecondsD(0.f)));
-  EXPECT_SKCOLOR_EQ(color_a,
-                    curve->GetValue(base::TimeDelta::FromSecondsD(0.5f)));
+  EXPECT_SKCOLOR_EQ(color_a, curve->GetValue(base::Seconds(-1.f)));
+  EXPECT_SKCOLOR_EQ(color_a, curve->GetValue(base::Seconds(0.f)));
+  EXPECT_SKCOLOR_EQ(color_a, curve->GetValue(base::Seconds(0.5f)));
 
-  SkColor value = curve->GetValue(base::TimeDelta::FromSecondsD(1.0f));
+  SkColor value = curve->GetValue(base::Seconds(1.0f));
   EXPECT_EQ(255u, SkColorGetA(value));
   int red_value = SkColorGetR(value);
   EXPECT_LE(64, red_value);
   EXPECT_GE(192, red_value);
 
-  EXPECT_SKCOLOR_EQ(color_b,
-                    curve->GetValue(base::TimeDelta::FromSecondsD(1.5f)));
-  EXPECT_SKCOLOR_EQ(color_b,
-                    curve->GetValue(base::TimeDelta::FromSecondsD(2.f)));
-  EXPECT_SKCOLOR_EQ(color_b,
-                    curve->GetValue(base::TimeDelta::FromSecondsD(3.f)));
+  EXPECT_SKCOLOR_EQ(color_b, curve->GetValue(base::Seconds(1.5f)));
+  EXPECT_SKCOLOR_EQ(color_b, curve->GetValue(base::Seconds(2.f)));
+  EXPECT_SKCOLOR_EQ(color_b, curve->GetValue(base::Seconds(3.f)));
 }
 
 // Tests that a float animation with one keyframe works as expected.
@@ -137,11 +117,11 @@
   std::unique_ptr<KeyframedFloatAnimationCurve> curve(
       KeyframedFloatAnimationCurve::Create());
   curve->AddKeyframe(FloatKeyframe::Create(base::TimeDelta(), 2.f, nullptr));
-  EXPECT_FLOAT_EQ(2.f, curve->GetValue(base::TimeDelta::FromSecondsD(-1.f)));
-  EXPECT_FLOAT_EQ(2.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.f)));
-  EXPECT_FLOAT_EQ(2.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.5f)));
-  EXPECT_FLOAT_EQ(2.f, curve->GetValue(base::TimeDelta::FromSecondsD(1.f)));
-  EXPECT_FLOAT_EQ(2.f, curve->GetValue(base::TimeDelta::FromSecondsD(2.f)));
+  EXPECT_FLOAT_EQ(2.f, curve->GetValue(base::Seconds(-1.f)));
+  EXPECT_FLOAT_EQ(2.f, curve->GetValue(base::Seconds(0.f)));
+  EXPECT_FLOAT_EQ(2.f, curve->GetValue(base::Seconds(0.5f)));
+  EXPECT_FLOAT_EQ(2.f, curve->GetValue(base::Seconds(1.f)));
+  EXPECT_FLOAT_EQ(2.f, curve->GetValue(base::Seconds(2.f)));
 }
 
 // Tests that a float animation with two keyframes works as expected.
@@ -149,13 +129,12 @@
   std::unique_ptr<KeyframedFloatAnimationCurve> curve(
       KeyframedFloatAnimationCurve::Create());
   curve->AddKeyframe(FloatKeyframe::Create(base::TimeDelta(), 2.f, nullptr));
-  curve->AddKeyframe(
-      FloatKeyframe::Create(base::TimeDelta::FromSecondsD(1.0), 4.f, nullptr));
-  EXPECT_FLOAT_EQ(2.f, curve->GetValue(base::TimeDelta::FromSecondsD(-1.f)));
-  EXPECT_FLOAT_EQ(2.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.f)));
-  EXPECT_FLOAT_EQ(3.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.5f)));
-  EXPECT_FLOAT_EQ(4.f, curve->GetValue(base::TimeDelta::FromSecondsD(1.f)));
-  EXPECT_FLOAT_EQ(4.f, curve->GetValue(base::TimeDelta::FromSecondsD(2.f)));
+  curve->AddKeyframe(FloatKeyframe::Create(base::Seconds(1.0), 4.f, nullptr));
+  EXPECT_FLOAT_EQ(2.f, curve->GetValue(base::Seconds(-1.f)));
+  EXPECT_FLOAT_EQ(2.f, curve->GetValue(base::Seconds(0.f)));
+  EXPECT_FLOAT_EQ(3.f, curve->GetValue(base::Seconds(0.5f)));
+  EXPECT_FLOAT_EQ(4.f, curve->GetValue(base::Seconds(1.f)));
+  EXPECT_FLOAT_EQ(4.f, curve->GetValue(base::Seconds(2.f)));
 }
 
 // Tests that a float animation with three keyframes works as expected.
@@ -163,17 +142,15 @@
   std::unique_ptr<KeyframedFloatAnimationCurve> curve(
       KeyframedFloatAnimationCurve::Create());
   curve->AddKeyframe(FloatKeyframe::Create(base::TimeDelta(), 2.f, nullptr));
-  curve->AddKeyframe(
-      FloatKeyframe::Create(base::TimeDelta::FromSecondsD(1.0), 4.f, nullptr));
-  curve->AddKeyframe(
-      FloatKeyframe::Create(base::TimeDelta::FromSecondsD(2.0), 8.f, nullptr));
-  EXPECT_FLOAT_EQ(2.f, curve->GetValue(base::TimeDelta::FromSecondsD(-1.f)));
-  EXPECT_FLOAT_EQ(2.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.f)));
-  EXPECT_FLOAT_EQ(3.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.5f)));
-  EXPECT_FLOAT_EQ(4.f, curve->GetValue(base::TimeDelta::FromSecondsD(1.f)));
-  EXPECT_FLOAT_EQ(6.f, curve->GetValue(base::TimeDelta::FromSecondsD(1.5f)));
-  EXPECT_FLOAT_EQ(8.f, curve->GetValue(base::TimeDelta::FromSecondsD(2.f)));
-  EXPECT_FLOAT_EQ(8.f, curve->GetValue(base::TimeDelta::FromSecondsD(3.f)));
+  curve->AddKeyframe(FloatKeyframe::Create(base::Seconds(1.0), 4.f, nullptr));
+  curve->AddKeyframe(FloatKeyframe::Create(base::Seconds(2.0), 8.f, nullptr));
+  EXPECT_FLOAT_EQ(2.f, curve->GetValue(base::Seconds(-1.f)));
+  EXPECT_FLOAT_EQ(2.f, curve->GetValue(base::Seconds(0.f)));
+  EXPECT_FLOAT_EQ(3.f, curve->GetValue(base::Seconds(0.5f)));
+  EXPECT_FLOAT_EQ(4.f, curve->GetValue(base::Seconds(1.f)));
+  EXPECT_FLOAT_EQ(6.f, curve->GetValue(base::Seconds(1.5f)));
+  EXPECT_FLOAT_EQ(8.f, curve->GetValue(base::Seconds(2.f)));
+  EXPECT_FLOAT_EQ(8.f, curve->GetValue(base::Seconds(3.f)));
 }
 
 // Tests that a float animation with multiple keys at a given time works sanely.
@@ -181,24 +158,21 @@
   std::unique_ptr<KeyframedFloatAnimationCurve> curve(
       KeyframedFloatAnimationCurve::Create());
   curve->AddKeyframe(FloatKeyframe::Create(base::TimeDelta(), 4.f, nullptr));
-  curve->AddKeyframe(
-      FloatKeyframe::Create(base::TimeDelta::FromSecondsD(1.0), 4.f, nullptr));
-  curve->AddKeyframe(
-      FloatKeyframe::Create(base::TimeDelta::FromSecondsD(1.0), 6.f, nullptr));
-  curve->AddKeyframe(
-      FloatKeyframe::Create(base::TimeDelta::FromSecondsD(2.0), 6.f, nullptr));
+  curve->AddKeyframe(FloatKeyframe::Create(base::Seconds(1.0), 4.f, nullptr));
+  curve->AddKeyframe(FloatKeyframe::Create(base::Seconds(1.0), 6.f, nullptr));
+  curve->AddKeyframe(FloatKeyframe::Create(base::Seconds(2.0), 6.f, nullptr));
 
-  EXPECT_FLOAT_EQ(4.f, curve->GetValue(base::TimeDelta::FromSecondsD(-1.f)));
-  EXPECT_FLOAT_EQ(4.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.f)));
-  EXPECT_FLOAT_EQ(4.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.5f)));
+  EXPECT_FLOAT_EQ(4.f, curve->GetValue(base::Seconds(-1.f)));
+  EXPECT_FLOAT_EQ(4.f, curve->GetValue(base::Seconds(0.f)));
+  EXPECT_FLOAT_EQ(4.f, curve->GetValue(base::Seconds(0.5f)));
 
   // There is a discontinuity at 1. Any value between 4 and 6 is valid.
-  float value = curve->GetValue(base::TimeDelta::FromSecondsD(1.f));
+  float value = curve->GetValue(base::Seconds(1.f));
   EXPECT_TRUE(value >= 4 && value <= 6);
 
-  EXPECT_FLOAT_EQ(6.f, curve->GetValue(base::TimeDelta::FromSecondsD(1.5f)));
-  EXPECT_FLOAT_EQ(6.f, curve->GetValue(base::TimeDelta::FromSecondsD(2.f)));
-  EXPECT_FLOAT_EQ(6.f, curve->GetValue(base::TimeDelta::FromSecondsD(3.f)));
+  EXPECT_FLOAT_EQ(6.f, curve->GetValue(base::Seconds(1.5f)));
+  EXPECT_FLOAT_EQ(6.f, curve->GetValue(base::Seconds(2.f)));
+  EXPECT_FLOAT_EQ(6.f, curve->GetValue(base::Seconds(3.f)));
 }
 
 // Tests that a transform animation with one keyframe works as expected.
@@ -210,11 +184,11 @@
   curve->AddKeyframe(
       TransformKeyframe::Create(base::TimeDelta(), operations, nullptr));
 
-  ExpectTranslateX(2.f, curve->GetValue(base::TimeDelta::FromSecondsD(-1.f)));
-  ExpectTranslateX(2.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.f)));
-  ExpectTranslateX(2.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.5f)));
-  ExpectTranslateX(2.f, curve->GetValue(base::TimeDelta::FromSecondsD(1.f)));
-  ExpectTranslateX(2.f, curve->GetValue(base::TimeDelta::FromSecondsD(2.f)));
+  ExpectTranslateX(2.f, curve->GetValue(base::Seconds(-1.f)));
+  ExpectTranslateX(2.f, curve->GetValue(base::Seconds(0.f)));
+  ExpectTranslateX(2.f, curve->GetValue(base::Seconds(0.5f)));
+  ExpectTranslateX(2.f, curve->GetValue(base::Seconds(1.f)));
+  ExpectTranslateX(2.f, curve->GetValue(base::Seconds(2.f)));
 }
 
 // Tests that a transform animation with two keyframes works as expected.
@@ -228,13 +202,13 @@
 
   curve->AddKeyframe(
       TransformKeyframe::Create(base::TimeDelta(), operations1, nullptr));
-  curve->AddKeyframe(TransformKeyframe::Create(
-      base::TimeDelta::FromSecondsD(1.0), operations2, nullptr));
-  ExpectTranslateX(2.f, curve->GetValue(base::TimeDelta::FromSecondsD(-1.f)));
-  ExpectTranslateX(2.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.f)));
-  ExpectTranslateX(3.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.5f)));
-  ExpectTranslateX(4.f, curve->GetValue(base::TimeDelta::FromSecondsD(1.f)));
-  ExpectTranslateX(4.f, curve->GetValue(base::TimeDelta::FromSecondsD(2.f)));
+  curve->AddKeyframe(
+      TransformKeyframe::Create(base::Seconds(1.0), operations2, nullptr));
+  ExpectTranslateX(2.f, curve->GetValue(base::Seconds(-1.f)));
+  ExpectTranslateX(2.f, curve->GetValue(base::Seconds(0.f)));
+  ExpectTranslateX(3.f, curve->GetValue(base::Seconds(0.5f)));
+  ExpectTranslateX(4.f, curve->GetValue(base::Seconds(1.f)));
+  ExpectTranslateX(4.f, curve->GetValue(base::Seconds(2.f)));
 }
 
 // Tests that a transform animation with three keyframes works as expected.
@@ -249,17 +223,17 @@
   operations3.AppendTranslate(8.f, 0.f, 0.f);
   curve->AddKeyframe(
       TransformKeyframe::Create(base::TimeDelta(), operations1, nullptr));
-  curve->AddKeyframe(TransformKeyframe::Create(
-      base::TimeDelta::FromSecondsD(1.0), operations2, nullptr));
-  curve->AddKeyframe(TransformKeyframe::Create(
-      base::TimeDelta::FromSecondsD(2.0), operations3, nullptr));
-  ExpectTranslateX(2.f, curve->GetValue(base::TimeDelta::FromSecondsD(-1.f)));
-  ExpectTranslateX(2.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.f)));
-  ExpectTranslateX(3.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.5f)));
-  ExpectTranslateX(4.f, curve->GetValue(base::TimeDelta::FromSecondsD(1.f)));
-  ExpectTranslateX(6.f, curve->GetValue(base::TimeDelta::FromSecondsD(1.5f)));
-  ExpectTranslateX(8.f, curve->GetValue(base::TimeDelta::FromSecondsD(2.f)));
-  ExpectTranslateX(8.f, curve->GetValue(base::TimeDelta::FromSecondsD(3.f)));
+  curve->AddKeyframe(
+      TransformKeyframe::Create(base::Seconds(1.0), operations2, nullptr));
+  curve->AddKeyframe(
+      TransformKeyframe::Create(base::Seconds(2.0), operations3, nullptr));
+  ExpectTranslateX(2.f, curve->GetValue(base::Seconds(-1.f)));
+  ExpectTranslateX(2.f, curve->GetValue(base::Seconds(0.f)));
+  ExpectTranslateX(3.f, curve->GetValue(base::Seconds(0.5f)));
+  ExpectTranslateX(4.f, curve->GetValue(base::Seconds(1.f)));
+  ExpectTranslateX(6.f, curve->GetValue(base::Seconds(1.5f)));
+  ExpectTranslateX(8.f, curve->GetValue(base::Seconds(2.f)));
+  ExpectTranslateX(8.f, curve->GetValue(base::Seconds(3.f)));
 }
 
 // Tests that a transform animation with multiple keys at a given time works
@@ -278,26 +252,25 @@
   operations4.AppendTranslate(6.f, 0.f, 0.f);
   curve->AddKeyframe(
       TransformKeyframe::Create(base::TimeDelta(), operations1, nullptr));
-  curve->AddKeyframe(TransformKeyframe::Create(
-      base::TimeDelta::FromSecondsD(1.0), operations2, nullptr));
-  curve->AddKeyframe(TransformKeyframe::Create(
-      base::TimeDelta::FromSecondsD(1.0), operations3, nullptr));
-  curve->AddKeyframe(TransformKeyframe::Create(
-      base::TimeDelta::FromSecondsD(2.0), operations4, nullptr));
+  curve->AddKeyframe(
+      TransformKeyframe::Create(base::Seconds(1.0), operations2, nullptr));
+  curve->AddKeyframe(
+      TransformKeyframe::Create(base::Seconds(1.0), operations3, nullptr));
+  curve->AddKeyframe(
+      TransformKeyframe::Create(base::Seconds(2.0), operations4, nullptr));
 
-  ExpectTranslateX(4.f, curve->GetValue(base::TimeDelta::FromSecondsD(-1.f)));
-  ExpectTranslateX(4.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.f)));
-  ExpectTranslateX(4.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.5f)));
+  ExpectTranslateX(4.f, curve->GetValue(base::Seconds(-1.f)));
+  ExpectTranslateX(4.f, curve->GetValue(base::Seconds(0.f)));
+  ExpectTranslateX(4.f, curve->GetValue(base::Seconds(0.5f)));
 
   // There is a discontinuity at 1. Any value between 4 and 6 is valid.
-  gfx::Transform value =
-      curve->GetValue(base::TimeDelta::FromSecondsD(1.f)).Apply();
+  gfx::Transform value = curve->GetValue(base::Seconds(1.f)).Apply();
   EXPECT_GE(value.matrix().get(0, 3), 4.f);
   EXPECT_LE(value.matrix().get(0, 3), 6.f);
 
-  ExpectTranslateX(6.f, curve->GetValue(base::TimeDelta::FromSecondsD(1.5f)));
-  ExpectTranslateX(6.f, curve->GetValue(base::TimeDelta::FromSecondsD(2.f)));
-  ExpectTranslateX(6.f, curve->GetValue(base::TimeDelta::FromSecondsD(3.f)));
+  ExpectTranslateX(6.f, curve->GetValue(base::Seconds(1.5f)));
+  ExpectTranslateX(6.f, curve->GetValue(base::Seconds(2.f)));
+  ExpectTranslateX(6.f, curve->GetValue(base::Seconds(3.f)));
 }
 
 // Tests that a discrete transform animation (e.g. where one or more keyframes
@@ -317,32 +290,32 @@
 
   curve->AddKeyframe(
       TransformKeyframe::Create(base::TimeDelta(), operations1, nullptr));
-  curve->AddKeyframe(TransformKeyframe::Create(
-      base::TimeDelta::FromSecondsD(1.0), operations2, nullptr));
-  curve->AddKeyframe(TransformKeyframe::Create(
-      base::TimeDelta::FromSecondsD(2.0), operations3, nullptr));
+  curve->AddKeyframe(
+      TransformKeyframe::Create(base::Seconds(1.0), operations2, nullptr));
+  curve->AddKeyframe(
+      TransformKeyframe::Create(base::Seconds(2.0), operations3, nullptr));
 
   gfx::TransformOperations result;
 
   // Between 0 and 0.5 seconds, the first keyframe should be returned.
-  result = curve->GetValue(base::TimeDelta::FromSecondsD(0.01f));
+  result = curve->GetValue(base::Seconds(0.01f));
   ExpectTransformationMatrixEq(non_invertible_matrix, result.Apply());
 
-  result = curve->GetValue(base::TimeDelta::FromSecondsD(0.49f));
+  result = curve->GetValue(base::Seconds(0.49f));
   ExpectTransformationMatrixEq(non_invertible_matrix, result.Apply());
 
   // Between 0.5 and 1.5 seconds, the middle keyframe should be returned.
-  result = curve->GetValue(base::TimeDelta::FromSecondsD(0.5f));
+  result = curve->GetValue(base::Seconds(0.5f));
   ExpectTransformationMatrixEq(identity_matrix, result.Apply());
 
-  result = curve->GetValue(base::TimeDelta::FromSecondsD(1.49f));
+  result = curve->GetValue(base::Seconds(1.49f));
   ExpectTransformationMatrixEq(identity_matrix, result.Apply());
 
   // Between 1.5 and 2.0 seconds, the last keyframe should be returned.
-  result = curve->GetValue(base::TimeDelta::FromSecondsD(1.5f));
+  result = curve->GetValue(base::Seconds(1.5f));
   ExpectTransformationMatrixEq(non_invertible_matrix, result.Apply());
 
-  result = curve->GetValue(base::TimeDelta::FromSecondsD(2.0f));
+  result = curve->GetValue(base::Seconds(2.0f));
   ExpectTransformationMatrixEq(non_invertible_matrix, result.Apply());
 }
 
@@ -365,34 +338,34 @@
       base::TimeDelta(), operations1,
       CubicBezierTimingFunction::Create(0.75f, 0.25f, 0.9f, 0.4f)));
   curve->AddKeyframe(TransformKeyframe::Create(
-      base::TimeDelta::FromSecondsD(1.0), operations2,
+      base::Seconds(1.0), operations2,
       CubicBezierTimingFunction::Create(0.75f, 0.25f, 0.9f, 0.4f)));
   curve->AddKeyframe(TransformKeyframe::Create(
-      base::TimeDelta::FromSecondsD(2.0), operations3,
+      base::Seconds(2.0), operations3,
       CubicBezierTimingFunction::Create(0.75f, 0.25f, 0.9f, 0.4f)));
 
   gfx::TransformOperations result;
 
   // Due to the cubic-bezier, the first keyframe is returned almost all the way
   // to 1 second.
-  result = curve->GetValue(base::TimeDelta::FromSecondsD(0.01f));
+  result = curve->GetValue(base::Seconds(0.01f));
   ExpectTransformationMatrixEq(non_invertible_matrix, result.Apply());
 
-  result = curve->GetValue(base::TimeDelta::FromSecondsD(0.8f));
+  result = curve->GetValue(base::Seconds(0.8f));
   ExpectTransformationMatrixEq(non_invertible_matrix, result.Apply());
 
   // Between ~0.85 and ~1.85 seconds, the middle keyframe should be returned.
-  result = curve->GetValue(base::TimeDelta::FromSecondsD(0.85f));
+  result = curve->GetValue(base::Seconds(0.85f));
   ExpectTransformationMatrixEq(identity_matrix, result.Apply());
 
-  result = curve->GetValue(base::TimeDelta::FromSecondsD(1.8f));
+  result = curve->GetValue(base::Seconds(1.8f));
   ExpectTransformationMatrixEq(identity_matrix, result.Apply());
 
   // Finally the last keyframe only takes effect after ~1.85 seconds.
-  result = curve->GetValue(base::TimeDelta::FromSecondsD(1.85f));
+  result = curve->GetValue(base::Seconds(1.85f));
   ExpectTransformationMatrixEq(non_invertible_matrix, result.Apply());
 
-  result = curve->GetValue(base::TimeDelta::FromSecondsD(2.0f));
+  result = curve->GetValue(base::Seconds(2.0f));
   ExpectTransformationMatrixEq(non_invertible_matrix, result.Apply());
 }
 
@@ -400,18 +373,16 @@
 TEST(KeyframedAnimationCurveTest, UnsortedKeyframes) {
   std::unique_ptr<KeyframedFloatAnimationCurve> curve(
       KeyframedFloatAnimationCurve::Create());
-  curve->AddKeyframe(
-      FloatKeyframe::Create(base::TimeDelta::FromSecondsD(2.f), 8.f, nullptr));
+  curve->AddKeyframe(FloatKeyframe::Create(base::Seconds(2.f), 8.f, nullptr));
   curve->AddKeyframe(FloatKeyframe::Create(base::TimeDelta(), 2.f, nullptr));
-  curve->AddKeyframe(
-      FloatKeyframe::Create(base::TimeDelta::FromSecondsD(1.f), 4.f, nullptr));
-  EXPECT_FLOAT_EQ(2.f, curve->GetValue(base::TimeDelta::FromSecondsD(-1.f)));
-  EXPECT_FLOAT_EQ(2.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.f)));
-  EXPECT_FLOAT_EQ(3.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.5f)));
-  EXPECT_FLOAT_EQ(4.f, curve->GetValue(base::TimeDelta::FromSecondsD(1.f)));
-  EXPECT_FLOAT_EQ(6.f, curve->GetValue(base::TimeDelta::FromSecondsD(1.5f)));
-  EXPECT_FLOAT_EQ(8.f, curve->GetValue(base::TimeDelta::FromSecondsD(2.f)));
-  EXPECT_FLOAT_EQ(8.f, curve->GetValue(base::TimeDelta::FromSecondsD(3.f)));
+  curve->AddKeyframe(FloatKeyframe::Create(base::Seconds(1.f), 4.f, nullptr));
+  EXPECT_FLOAT_EQ(2.f, curve->GetValue(base::Seconds(-1.f)));
+  EXPECT_FLOAT_EQ(2.f, curve->GetValue(base::Seconds(0.f)));
+  EXPECT_FLOAT_EQ(3.f, curve->GetValue(base::Seconds(0.5f)));
+  EXPECT_FLOAT_EQ(4.f, curve->GetValue(base::Seconds(1.f)));
+  EXPECT_FLOAT_EQ(6.f, curve->GetValue(base::Seconds(1.5f)));
+  EXPECT_FLOAT_EQ(8.f, curve->GetValue(base::Seconds(2.f)));
+  EXPECT_FLOAT_EQ(8.f, curve->GetValue(base::Seconds(3.f)));
 }
 
 // Tests that a linear timing function works as expected.
@@ -420,11 +391,10 @@
       KeyframedFloatAnimationCurve::Create());
   curve->AddKeyframe(FloatKeyframe::Create(base::TimeDelta(), 0.f,
                                            LinearTimingFunction::Create()));
-  curve->AddKeyframe(
-      FloatKeyframe::Create(base::TimeDelta::FromSecondsD(1.0), 1.f, nullptr));
+  curve->AddKeyframe(FloatKeyframe::Create(base::Seconds(1.0), 1.f, nullptr));
 
-  EXPECT_FLOAT_EQ(0.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.f)));
-  EXPECT_FLOAT_EQ(0.75f, curve->GetValue(base::TimeDelta::FromSecondsD(0.75f)));
+  EXPECT_FLOAT_EQ(0.f, curve->GetValue(base::Seconds(0.f)));
+  EXPECT_FLOAT_EQ(0.75f, curve->GetValue(base::Seconds(0.75f)));
 }
 
 // Tests that a cubic bezier timing function works as expected.
@@ -434,17 +404,15 @@
   curve->AddKeyframe(FloatKeyframe::Create(
       base::TimeDelta(), 0.f,
       CubicBezierTimingFunction::Create(0.25f, 0.f, 0.75f, 1.f)));
-  curve->AddKeyframe(
-      FloatKeyframe::Create(base::TimeDelta::FromSecondsD(1.0), 1.f, nullptr));
+  curve->AddKeyframe(FloatKeyframe::Create(base::Seconds(1.0), 1.f, nullptr));
 
-  EXPECT_FLOAT_EQ(0.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.f)));
-  EXPECT_LT(0.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.25f)));
-  EXPECT_GT(0.25f, curve->GetValue(base::TimeDelta::FromSecondsD(0.25f)));
-  EXPECT_NEAR(curve->GetValue(base::TimeDelta::FromSecondsD(0.5f)), 0.5f,
-              0.00015f);
-  EXPECT_LT(0.75f, curve->GetValue(base::TimeDelta::FromSecondsD(0.75f)));
-  EXPECT_GT(1.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.75f)));
-  EXPECT_FLOAT_EQ(1.f, curve->GetValue(base::TimeDelta::FromSecondsD(1.f)));
+  EXPECT_FLOAT_EQ(0.f, curve->GetValue(base::Seconds(0.f)));
+  EXPECT_LT(0.f, curve->GetValue(base::Seconds(0.25f)));
+  EXPECT_GT(0.25f, curve->GetValue(base::Seconds(0.25f)));
+  EXPECT_NEAR(curve->GetValue(base::Seconds(0.5f)), 0.5f, 0.00015f);
+  EXPECT_LT(0.75f, curve->GetValue(base::Seconds(0.75f)));
+  EXPECT_GT(1.f, curve->GetValue(base::Seconds(0.75f)));
+  EXPECT_FLOAT_EQ(1.f, curve->GetValue(base::Seconds(1.f)));
 }
 
 // Tests a step timing function if the change of values occur at the start.
@@ -456,24 +424,21 @@
       base::TimeDelta(), 0.f,
       StepsTimingFunction::Create(num_steps,
                                   StepsTimingFunction::StepPosition::START)));
-  curve->AddKeyframe(FloatKeyframe::Create(base::TimeDelta::FromSecondsD(1.0),
-                                           num_steps, nullptr));
+  curve->AddKeyframe(
+      FloatKeyframe::Create(base::Seconds(1.0), num_steps, nullptr));
 
   const float time_threshold = 0.0001f;
 
   for (float i = 0.f; i < num_steps; i += 1.f) {
-    const base::TimeDelta time1 =
-        base::TimeDelta::FromSecondsD(i / num_steps - time_threshold);
-    const base::TimeDelta time2 =
-        base::TimeDelta::FromSecondsD(i / num_steps + time_threshold);
+    const base::TimeDelta time1 = base::Seconds(i / num_steps - time_threshold);
+    const base::TimeDelta time2 = base::Seconds(i / num_steps + time_threshold);
     EXPECT_FLOAT_EQ(std::ceil(i), curve->GetValue(time1));
     EXPECT_FLOAT_EQ(std::ceil(i) + 1.f, curve->GetValue(time2));
   }
-  EXPECT_FLOAT_EQ(num_steps,
-                  curve->GetValue(base::TimeDelta::FromSecondsD(1.0)));
+  EXPECT_FLOAT_EQ(num_steps, curve->GetValue(base::Seconds(1.0)));
 
   for (float i = 0.5f; i <= num_steps; i += 1.0f) {
-    const base::TimeDelta time = base::TimeDelta::FromSecondsD(i / num_steps);
+    const base::TimeDelta time = base::Seconds(i / num_steps);
     EXPECT_FLOAT_EQ(std::ceil(i), curve->GetValue(time));
   }
 }
@@ -487,25 +452,22 @@
       base::TimeDelta(), 0.f,
       StepsTimingFunction::Create(num_steps,
                                   StepsTimingFunction::StepPosition::END)));
-  curve->AddKeyframe(FloatKeyframe::Create(base::TimeDelta::FromSecondsD(1.0),
-                                           num_steps, nullptr));
+  curve->AddKeyframe(
+      FloatKeyframe::Create(base::Seconds(1.0), num_steps, nullptr));
 
   const float time_threshold = 0.0001f;
 
   EXPECT_FLOAT_EQ(0.f, curve->GetValue(base::TimeDelta()));
   for (float i = 1.f; i <= num_steps; i += 1.f) {
-    const base::TimeDelta time1 =
-        base::TimeDelta::FromSecondsD(i / num_steps - time_threshold);
-    const base::TimeDelta time2 =
-        base::TimeDelta::FromSecondsD(i / num_steps + time_threshold);
+    const base::TimeDelta time1 = base::Seconds(i / num_steps - time_threshold);
+    const base::TimeDelta time2 = base::Seconds(i / num_steps + time_threshold);
     EXPECT_FLOAT_EQ(std::floor(i) - 1.f, curve->GetValue(time1));
     EXPECT_FLOAT_EQ(std::floor(i), curve->GetValue(time2));
   }
-  EXPECT_FLOAT_EQ(num_steps,
-                  curve->GetValue(base::TimeDelta::FromSecondsD(1.0)));
+  EXPECT_FLOAT_EQ(num_steps, curve->GetValue(base::Seconds(1.0)));
 
   for (float i = 0.5f; i <= num_steps; i += 1.0f) {
-    const base::TimeDelta time = base::TimeDelta::FromSecondsD(i / num_steps);
+    const base::TimeDelta time = base::Seconds(i / num_steps);
     EXPECT_FLOAT_EQ(std::floor(i), curve->GetValue(time));
   }
 }
@@ -520,7 +482,7 @@
       TransformKeyframe::Create(base::TimeDelta(), operations1, nullptr));
   operations1.AppendScale(2.f, -3.f, 1.f);
   curve->AddKeyframe(TransformKeyframe::Create(
-      base::TimeDelta::FromSecondsD(1.f), operations1,
+      base::Seconds(1.f), operations1,
       CubicBezierTimingFunction::CreatePreset(
           CubicBezierTimingFunction::EaseType::EASE)));
 
@@ -532,7 +494,7 @@
   gfx::TransformOperations operations2;
   operations2.AppendScale(6.f, 3.f, 2.f);
   curve->AddKeyframe(TransformKeyframe::Create(
-      base::TimeDelta::FromSecondsD(2.f), operations2,
+      base::Seconds(2.f), operations2,
       CubicBezierTimingFunction::CreatePreset(
           CubicBezierTimingFunction::EaseType::EASE)));
 
@@ -543,7 +505,7 @@
   gfx::TransformOperations operations3;
   operations3.AppendRotate(1.f, 0.f, 0.f, 90.f);
   curve->AddKeyframe(TransformKeyframe::Create(
-      base::TimeDelta::FromSecondsD(3.f), operations3,
+      base::Seconds(3.f), operations3,
       CubicBezierTimingFunction::CreatePreset(
           CubicBezierTimingFunction::EaseType::EASE)));
 
@@ -564,7 +526,7 @@
   gfx::TransformOperations operations6;
   operations6.AppendScale(0.5f, 0.3f, -0.8f);
   curve2->AddKeyframe(TransformKeyframe::Create(
-      base::TimeDelta::FromSecondsD(1.f), operations6,
+      base::Seconds(1.f), operations6,
       CubicBezierTimingFunction::CreatePreset(
           CubicBezierTimingFunction::EaseType::EASE)));
 
@@ -578,11 +540,11 @@
   gfx::TransformOperations operations4;
   operations4.AppendPerspective(3.f);
   curve->AddKeyframe(TransformKeyframe::Create(
-      base::TimeDelta::FromSecondsD(1.f), operations4,
+      base::Seconds(1.f), operations4,
       CubicBezierTimingFunction::CreatePreset(
           CubicBezierTimingFunction::EaseType::EASE)));
   curve->AddKeyframe(TransformKeyframe::Create(
-      base::TimeDelta::FromSecondsD(1.f), operations4,
+      base::Seconds(1.f), operations4,
       CubicBezierTimingFunction::CreatePreset(
           CubicBezierTimingFunction::EaseType::EASE)));
 
@@ -609,19 +571,16 @@
   std::unique_ptr<KeyframedFloatAnimationCurve> curve(
       KeyframedFloatAnimationCurve::Create());
   curve->AddKeyframe(FloatKeyframe::Create(base::TimeDelta(), 0.f, nullptr));
-  curve->AddKeyframe(
-      FloatKeyframe::Create(base::TimeDelta::FromSecondsD(1.f), 1.f, nullptr));
+  curve->AddKeyframe(FloatKeyframe::Create(base::Seconds(1.f), 1.f, nullptr));
   curve->SetTimingFunction(
       CubicBezierTimingFunction::Create(0.75f, 0.f, 0.25f, 1.f));
-  EXPECT_FLOAT_EQ(0.f, curve->GetValue(base::TimeDelta::FromSecondsD(-1.f)));
-  EXPECT_FLOAT_EQ(0.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.f)));
-  EXPECT_NEAR(0.05f, curve->GetValue(base::TimeDelta::FromSecondsD(0.25f)),
-              0.005f);
-  EXPECT_FLOAT_EQ(0.5f, curve->GetValue(base::TimeDelta::FromSecondsD(0.5f)));
-  EXPECT_NEAR(0.95f, curve->GetValue(base::TimeDelta::FromSecondsD(0.75f)),
-              0.005f);
-  EXPECT_FLOAT_EQ(1.f, curve->GetValue(base::TimeDelta::FromSecondsD(1.f)));
-  EXPECT_FLOAT_EQ(1.f, curve->GetValue(base::TimeDelta::FromSecondsD(2.f)));
+  EXPECT_FLOAT_EQ(0.f, curve->GetValue(base::Seconds(-1.f)));
+  EXPECT_FLOAT_EQ(0.f, curve->GetValue(base::Seconds(0.f)));
+  EXPECT_NEAR(0.05f, curve->GetValue(base::Seconds(0.25f)), 0.005f);
+  EXPECT_FLOAT_EQ(0.5f, curve->GetValue(base::Seconds(0.5f)));
+  EXPECT_NEAR(0.95f, curve->GetValue(base::Seconds(0.75f)), 0.005f);
+  EXPECT_FLOAT_EQ(1.f, curve->GetValue(base::Seconds(1.f)));
+  EXPECT_FLOAT_EQ(1.f, curve->GetValue(base::Seconds(2.f)));
 }
 
 // Tests that an animation with a curve and keyframe timing function works as
@@ -632,24 +591,23 @@
   curve->AddKeyframe(FloatKeyframe::Create(
       base::TimeDelta(), 0.f,
       CubicBezierTimingFunction::Create(0.35f, 0.f, 0.65f, 1.f)));
-  curve->AddKeyframe(
-      FloatKeyframe::Create(base::TimeDelta::FromSecondsD(1.f), 1.f, nullptr));
+  curve->AddKeyframe(FloatKeyframe::Create(base::Seconds(1.f), 1.f, nullptr));
   // Curve timing function producing outputs outside of range [0,1].
   curve->SetTimingFunction(
       CubicBezierTimingFunction::Create(0.5f, -0.5f, 0.5f, 1.5f));
-  EXPECT_FLOAT_EQ(0.f, curve->GetValue(base::TimeDelta::FromSecondsD(-1.f)));
-  EXPECT_FLOAT_EQ(0.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.f)));
-  EXPECT_FLOAT_EQ(0.f, curve->GetValue(base::TimeDelta::FromSecondsD(
-                           0.25f)));  // Clamped. c(.25) < 0
-  EXPECT_NEAR(0.17f, curve->GetValue(base::TimeDelta::FromSecondsD(0.42f)),
+  EXPECT_FLOAT_EQ(0.f, curve->GetValue(base::Seconds(-1.f)));
+  EXPECT_FLOAT_EQ(0.f, curve->GetValue(base::Seconds(0.f)));
+  EXPECT_FLOAT_EQ(
+      0.f, curve->GetValue(base::Seconds(0.25f)));  // Clamped. c(.25) < 0
+  EXPECT_NEAR(0.17f, curve->GetValue(base::Seconds(0.42f)),
               0.005f);  // c(.42)=.27, k(.27)=.17
-  EXPECT_FLOAT_EQ(0.5f, curve->GetValue(base::TimeDelta::FromSecondsD(0.5f)));
-  EXPECT_NEAR(0.83f, curve->GetValue(base::TimeDelta::FromSecondsD(0.58f)),
+  EXPECT_FLOAT_EQ(0.5f, curve->GetValue(base::Seconds(0.5f)));
+  EXPECT_NEAR(0.83f, curve->GetValue(base::Seconds(0.58f)),
               0.005f);  // c(.58)=.73, k(.73)=.83
-  EXPECT_FLOAT_EQ(1.f, curve->GetValue(base::TimeDelta::FromSecondsD(
-                           0.75f)));  // Clamped. c(.75) > 1
-  EXPECT_FLOAT_EQ(1.f, curve->GetValue(base::TimeDelta::FromSecondsD(1.f)));
-  EXPECT_FLOAT_EQ(1.f, curve->GetValue(base::TimeDelta::FromSecondsD(2.f)));
+  EXPECT_FLOAT_EQ(
+      1.f, curve->GetValue(base::Seconds(0.75f)));  // Clamped. c(.75) > 1
+  EXPECT_FLOAT_EQ(1.f, curve->GetValue(base::Seconds(1.f)));
+  EXPECT_FLOAT_EQ(1.f, curve->GetValue(base::Seconds(2.f)));
 }
 
 // Tests that a linear timing function works as expected for inputs outside of
@@ -658,16 +616,13 @@
   std::unique_ptr<KeyframedFloatAnimationCurve> curve(
       KeyframedFloatAnimationCurve::Create());
   curve->AddKeyframe(FloatKeyframe::Create(base::TimeDelta(), 0.f, nullptr));
-  curve->AddKeyframe(
-      FloatKeyframe::Create(base::TimeDelta::FromSecondsD(1.0), 2.f, nullptr));
+  curve->AddKeyframe(FloatKeyframe::Create(base::Seconds(1.0), 2.f, nullptr));
   // Curve timing function producing timing outputs outside of range [0,1].
   curve->SetTimingFunction(
       CubicBezierTimingFunction::Create(0.5f, -0.5f, 0.5f, 1.5f));
 
-  EXPECT_NEAR(-0.076f, curve->GetValue(base::TimeDelta::FromSecondsD(0.25f)),
-              0.001f);
-  EXPECT_NEAR(2.076f, curve->GetValue(base::TimeDelta::FromSecondsD(0.75f)),
-              0.001f);
+  EXPECT_NEAR(-0.076f, curve->GetValue(base::Seconds(0.25f)), 0.001f);
+  EXPECT_NEAR(2.076f, curve->GetValue(base::Seconds(0.75f)), 0.001f);
 }
 
 // If a curve cubic-bezier timing function produces timing outputs outside
@@ -680,20 +635,19 @@
   curve->AddKeyframe(FloatKeyframe::Create(
       base::TimeDelta(), 0.f,
       CubicBezierTimingFunction::Create(0.5f, 0.25f, 0.5f, 0.75f)));
-  curve->AddKeyframe(
-      FloatKeyframe::Create(base::TimeDelta::FromSecondsD(1.f), 1.f, nullptr));
+  curve->AddKeyframe(FloatKeyframe::Create(base::Seconds(1.f), 1.f, nullptr));
   // Curve timing function producing timing outputs outside of range [0,1].
   curve->SetTimingFunction(
       CubicBezierTimingFunction::Create(0.5f, -0.5f, 0.5f, 1.5f));
 
-  EXPECT_NEAR(-0.02f, curve->GetValue(base::TimeDelta::FromSecondsD(0.25f)),
+  EXPECT_NEAR(-0.02f, curve->GetValue(base::Seconds(0.25f)),
               0.002f);  // c(.25)=-.04, -.04*0.5=-0.02
-  EXPECT_NEAR(0.33f, curve->GetValue(base::TimeDelta::FromSecondsD(0.46f)),
+  EXPECT_NEAR(0.33f, curve->GetValue(base::Seconds(0.46f)),
               0.002f);  // c(.46)=.38, k(.38)=.33
 
-  EXPECT_NEAR(0.67f, curve->GetValue(base::TimeDelta::FromSecondsD(0.54f)),
+  EXPECT_NEAR(0.67f, curve->GetValue(base::Seconds(0.54f)),
               0.002f);  // c(.54)=.62, k(.62)=.67
-  EXPECT_NEAR(1.02f, curve->GetValue(base::TimeDelta::FromSecondsD(0.75f)),
+  EXPECT_NEAR(1.02f, curve->GetValue(base::Seconds(0.75f)),
               0.002f);  // c(.75)=1.04 1+.04*0.5=1.02
 }
 
@@ -706,14 +660,13 @@
       FloatKeyframe::Create(base::TimeDelta(), 0.f,
                             StepsTimingFunction::Create(
                                 4, StepsTimingFunction::StepPosition::START)));
-  curve->AddKeyframe(
-      FloatKeyframe::Create(base::TimeDelta::FromSecondsD(1.0), 2.f, nullptr));
+  curve->AddKeyframe(FloatKeyframe::Create(base::Seconds(1.0), 2.f, nullptr));
   // Curve timing function producing timing outputs outside of range [0,1].
   curve->SetTimingFunction(
       CubicBezierTimingFunction::Create(0.5f, -0.5f, 0.5f, 1.5f));
 
-  EXPECT_FLOAT_EQ(0.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.25f)));
-  EXPECT_FLOAT_EQ(2.5f, curve->GetValue(base::TimeDelta::FromSecondsD(0.75f)));
+  EXPECT_FLOAT_EQ(0.f, curve->GetValue(base::Seconds(0.25f)));
+  EXPECT_FLOAT_EQ(2.5f, curve->GetValue(base::Seconds(0.75f)));
 }
 
 TEST(KeyframedAnimationCurveTest, StepsTimingEndInputsOutsideZeroOneRange) {
@@ -722,14 +675,13 @@
   curve->AddKeyframe(FloatKeyframe::Create(
       base::TimeDelta(), 0.f,
       StepsTimingFunction::Create(4, StepsTimingFunction::StepPosition::END)));
-  curve->AddKeyframe(
-      FloatKeyframe::Create(base::TimeDelta::FromSecondsD(1.0), 2.f, nullptr));
+  curve->AddKeyframe(FloatKeyframe::Create(base::Seconds(1.0), 2.f, nullptr));
   // Curve timing function producing timing outputs outside of range [0,1].
   curve->SetTimingFunction(
       CubicBezierTimingFunction::Create(0.5f, -0.5f, 0.5f, 1.5f));
 
-  EXPECT_FLOAT_EQ(-0.5f, curve->GetValue(base::TimeDelta::FromSecondsD(0.25f)));
-  EXPECT_FLOAT_EQ(2.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.75f)));
+  EXPECT_FLOAT_EQ(-0.5f, curve->GetValue(base::Seconds(0.25f)));
+  EXPECT_FLOAT_EQ(2.f, curve->GetValue(base::Seconds(0.75f)));
 }
 
 // Tests that an animation with a curve timing function and multiple keyframes
@@ -738,27 +690,20 @@
   std::unique_ptr<KeyframedFloatAnimationCurve> curve(
       KeyframedFloatAnimationCurve::Create());
   curve->AddKeyframe(FloatKeyframe::Create(base::TimeDelta(), 0.f, nullptr));
-  curve->AddKeyframe(
-      FloatKeyframe::Create(base::TimeDelta::FromSecondsD(1.f), 1.f, nullptr));
-  curve->AddKeyframe(
-      FloatKeyframe::Create(base::TimeDelta::FromSecondsD(2.f), 3.f, nullptr));
-  curve->AddKeyframe(
-      FloatKeyframe::Create(base::TimeDelta::FromSecondsD(3.f), 6.f, nullptr));
-  curve->AddKeyframe(
-      FloatKeyframe::Create(base::TimeDelta::FromSecondsD(4.f), 9.f, nullptr));
+  curve->AddKeyframe(FloatKeyframe::Create(base::Seconds(1.f), 1.f, nullptr));
+  curve->AddKeyframe(FloatKeyframe::Create(base::Seconds(2.f), 3.f, nullptr));
+  curve->AddKeyframe(FloatKeyframe::Create(base::Seconds(3.f), 6.f, nullptr));
+  curve->AddKeyframe(FloatKeyframe::Create(base::Seconds(4.f), 9.f, nullptr));
   curve->SetTimingFunction(
       CubicBezierTimingFunction::Create(0.5f, 0.f, 0.5f, 1.f));
-  EXPECT_FLOAT_EQ(0.f, curve->GetValue(base::TimeDelta::FromSecondsD(-1.f)));
-  EXPECT_FLOAT_EQ(0.f, curve->GetValue(base::TimeDelta::FromSecondsD(0.f)));
-  EXPECT_NEAR(0.42f, curve->GetValue(base::TimeDelta::FromSecondsD(1.f)),
-              0.005f);
-  EXPECT_NEAR(1.f, curve->GetValue(base::TimeDelta::FromSecondsD(1.455f)),
-              0.005f);
-  EXPECT_FLOAT_EQ(3.f, curve->GetValue(base::TimeDelta::FromSecondsD(2.f)));
-  EXPECT_NEAR(8.72f, curve->GetValue(base::TimeDelta::FromSecondsD(3.5f)),
-              0.01f);
-  EXPECT_FLOAT_EQ(9.f, curve->GetValue(base::TimeDelta::FromSecondsD(4.f)));
-  EXPECT_FLOAT_EQ(9.f, curve->GetValue(base::TimeDelta::FromSecondsD(5.f)));
+  EXPECT_FLOAT_EQ(0.f, curve->GetValue(base::Seconds(-1.f)));
+  EXPECT_FLOAT_EQ(0.f, curve->GetValue(base::Seconds(0.f)));
+  EXPECT_NEAR(0.42f, curve->GetValue(base::Seconds(1.f)), 0.005f);
+  EXPECT_NEAR(1.f, curve->GetValue(base::Seconds(1.455f)), 0.005f);
+  EXPECT_FLOAT_EQ(3.f, curve->GetValue(base::Seconds(2.f)));
+  EXPECT_NEAR(8.72f, curve->GetValue(base::Seconds(3.5f)), 0.01f);
+  EXPECT_FLOAT_EQ(9.f, curve->GetValue(base::Seconds(4.f)));
+  EXPECT_FLOAT_EQ(9.f, curve->GetValue(base::Seconds(5.f)));
 }
 
 // Tests that an animation with a curve timing function that overshoots works as
@@ -767,20 +712,16 @@
   std::unique_ptr<KeyframedFloatAnimationCurve> curve(
       KeyframedFloatAnimationCurve::Create());
   curve->AddKeyframe(FloatKeyframe::Create(base::TimeDelta(), 0.f, nullptr));
-  curve->AddKeyframe(
-      FloatKeyframe::Create(base::TimeDelta::FromSecondsD(1.0), 1.f, nullptr));
-  curve->AddKeyframe(
-      FloatKeyframe::Create(base::TimeDelta::FromSecondsD(2.0), 3.f, nullptr));
-  curve->AddKeyframe(
-      FloatKeyframe::Create(base::TimeDelta::FromSecondsD(3.0), 6.f, nullptr));
-  curve->AddKeyframe(
-      FloatKeyframe::Create(base::TimeDelta::FromSecondsD(4.0), 9.f, nullptr));
+  curve->AddKeyframe(FloatKeyframe::Create(base::Seconds(1.0), 1.f, nullptr));
+  curve->AddKeyframe(FloatKeyframe::Create(base::Seconds(2.0), 3.f, nullptr));
+  curve->AddKeyframe(FloatKeyframe::Create(base::Seconds(3.0), 6.f, nullptr));
+  curve->AddKeyframe(FloatKeyframe::Create(base::Seconds(4.0), 9.f, nullptr));
   // Curve timing function producing outputs outside of range [0,1].
   curve->SetTimingFunction(
       CubicBezierTimingFunction::Create(0.5f, -0.5f, 0.5f, 1.5f));
-  EXPECT_LE(curve->GetValue(base::TimeDelta::FromSecondsD(1.f)),
+  EXPECT_LE(curve->GetValue(base::Seconds(1.f)),
             0.f);  // c(.25) < 0
-  EXPECT_GE(curve->GetValue(base::TimeDelta::FromSecondsD(3.f)),
+  EXPECT_GE(curve->GetValue(base::Seconds(3.f)),
             9.f);  // c(.75) > 1
 }
 
@@ -789,14 +730,10 @@
   std::unique_ptr<KeyframedFloatAnimationCurve> curve(
       KeyframedFloatAnimationCurve::Create());
   curve->AddKeyframe(FloatKeyframe::Create(base::TimeDelta(), 0.f, nullptr));
-  curve->AddKeyframe(
-      FloatKeyframe::Create(base::TimeDelta::FromSecondsD(1.f), 1.f, nullptr));
-  curve->AddKeyframe(
-      FloatKeyframe::Create(base::TimeDelta::FromSecondsD(2.f), 3.f, nullptr));
-  curve->AddKeyframe(
-      FloatKeyframe::Create(base::TimeDelta::FromSecondsD(3.f), 6.f, nullptr));
-  curve->AddKeyframe(
-      FloatKeyframe::Create(base::TimeDelta::FromSecondsD(4.f), 9.f, nullptr));
+  curve->AddKeyframe(FloatKeyframe::Create(base::Seconds(1.f), 1.f, nullptr));
+  curve->AddKeyframe(FloatKeyframe::Create(base::Seconds(2.f), 3.f, nullptr));
+  curve->AddKeyframe(FloatKeyframe::Create(base::Seconds(3.f), 6.f, nullptr));
+  curve->AddKeyframe(FloatKeyframe::Create(base::Seconds(4.f), 9.f, nullptr));
   curve->SetTimingFunction(
       CubicBezierTimingFunction::Create(0.5f, 0.f, 0.5f, 1.f));
 
@@ -805,25 +742,14 @@
 
   EXPECT_DOUBLE_EQ(scale * 4, curve->Duration().InSecondsF());
 
-  EXPECT_FLOAT_EQ(0.f,
-                  curve->GetValue(base::TimeDelta::FromSecondsD(scale * -1.f)));
-  EXPECT_FLOAT_EQ(0.f,
-                  curve->GetValue(base::TimeDelta::FromSecondsD(scale * 0.f)));
-  EXPECT_NEAR(0.42f,
-              curve->GetValue(base::TimeDelta::FromSecondsD(scale * 1.f)),
-              0.005f);
-  EXPECT_NEAR(1.f,
-              curve->GetValue(base::TimeDelta::FromSecondsD(scale * 1.455f)),
-              0.005f);
-  EXPECT_FLOAT_EQ(3.f,
-                  curve->GetValue(base::TimeDelta::FromSecondsD(scale * 2.f)));
-  EXPECT_NEAR(8.72f,
-              curve->GetValue(base::TimeDelta::FromSecondsD(scale * 3.5f)),
-              0.01f);
-  EXPECT_FLOAT_EQ(9.f,
-                  curve->GetValue(base::TimeDelta::FromSecondsD(scale * 4.f)));
-  EXPECT_FLOAT_EQ(9.f,
-                  curve->GetValue(base::TimeDelta::FromSecondsD(scale * 5.f)));
+  EXPECT_FLOAT_EQ(0.f, curve->GetValue(base::Seconds(scale * -1.f)));
+  EXPECT_FLOAT_EQ(0.f, curve->GetValue(base::Seconds(scale * 0.f)));
+  EXPECT_NEAR(0.42f, curve->GetValue(base::Seconds(scale * 1.f)), 0.005f);
+  EXPECT_NEAR(1.f, curve->GetValue(base::Seconds(scale * 1.455f)), 0.005f);
+  EXPECT_FLOAT_EQ(3.f, curve->GetValue(base::Seconds(scale * 2.f)));
+  EXPECT_NEAR(8.72f, curve->GetValue(base::Seconds(scale * 3.5f)), 0.01f);
+  EXPECT_FLOAT_EQ(9.f, curve->GetValue(base::Seconds(scale * 4.f)));
+  EXPECT_FLOAT_EQ(9.f, curve->GetValue(base::Seconds(scale * 5.f)));
 }
 
 // Tests that a size animation with one keyframe works as expected.
@@ -833,11 +759,11 @@
       KeyframedSizeAnimationCurve::Create());
   curve->AddKeyframe(SizeKeyframe::Create(base::TimeDelta(), size, nullptr));
 
-  EXPECT_SIZEF_EQ(size, curve->GetValue(base::TimeDelta::FromSecondsD(-1.f)));
-  EXPECT_SIZEF_EQ(size, curve->GetValue(base::TimeDelta::FromSecondsD(0.f)));
-  EXPECT_SIZEF_EQ(size, curve->GetValue(base::TimeDelta::FromSecondsD(0.5f)));
-  EXPECT_SIZEF_EQ(size, curve->GetValue(base::TimeDelta::FromSecondsD(1.f)));
-  EXPECT_SIZEF_EQ(size, curve->GetValue(base::TimeDelta::FromSecondsD(2.f)));
+  EXPECT_SIZEF_EQ(size, curve->GetValue(base::Seconds(-1.f)));
+  EXPECT_SIZEF_EQ(size, curve->GetValue(base::Seconds(0.f)));
+  EXPECT_SIZEF_EQ(size, curve->GetValue(base::Seconds(0.5f)));
+  EXPECT_SIZEF_EQ(size, curve->GetValue(base::Seconds(1.f)));
+  EXPECT_SIZEF_EQ(size, curve->GetValue(base::Seconds(2.f)));
 }
 
 // Tests that a size animation with two keyframes works as expected.
@@ -848,15 +774,13 @@
   std::unique_ptr<KeyframedSizeAnimationCurve> curve(
       KeyframedSizeAnimationCurve::Create());
   curve->AddKeyframe(SizeKeyframe::Create(base::TimeDelta(), size_a, nullptr));
-  curve->AddKeyframe(SizeKeyframe::Create(base::TimeDelta::FromSecondsD(1.0),
-                                          size_b, nullptr));
+  curve->AddKeyframe(SizeKeyframe::Create(base::Seconds(1.0), size_b, nullptr));
 
-  EXPECT_SIZEF_EQ(size_a, curve->GetValue(base::TimeDelta::FromSecondsD(-1.f)));
-  EXPECT_SIZEF_EQ(size_a, curve->GetValue(base::TimeDelta::FromSecondsD(0.f)));
-  EXPECT_SIZEF_EQ(size_midpoint,
-                  curve->GetValue(base::TimeDelta::FromSecondsD(0.5f)));
-  EXPECT_SIZEF_EQ(size_b, curve->GetValue(base::TimeDelta::FromSecondsD(1.f)));
-  EXPECT_SIZEF_EQ(size_b, curve->GetValue(base::TimeDelta::FromSecondsD(2.f)));
+  EXPECT_SIZEF_EQ(size_a, curve->GetValue(base::Seconds(-1.f)));
+  EXPECT_SIZEF_EQ(size_a, curve->GetValue(base::Seconds(0.f)));
+  EXPECT_SIZEF_EQ(size_midpoint, curve->GetValue(base::Seconds(0.5f)));
+  EXPECT_SIZEF_EQ(size_b, curve->GetValue(base::Seconds(1.f)));
+  EXPECT_SIZEF_EQ(size_b, curve->GetValue(base::Seconds(2.f)));
 }
 
 // Tests that a size animation with three keyframes works as expected.
@@ -871,20 +795,16 @@
   std::unique_ptr<KeyframedSizeAnimationCurve> curve(
       KeyframedSizeAnimationCurve::Create());
   curve->AddKeyframe(SizeKeyframe::Create(base::TimeDelta(), size_a, nullptr));
-  curve->AddKeyframe(SizeKeyframe::Create(base::TimeDelta::FromSecondsD(1.0),
-                                          size_b, nullptr));
-  curve->AddKeyframe(SizeKeyframe::Create(base::TimeDelta::FromSecondsD(2.0),
-                                          size_c, nullptr));
+  curve->AddKeyframe(SizeKeyframe::Create(base::Seconds(1.0), size_b, nullptr));
+  curve->AddKeyframe(SizeKeyframe::Create(base::Seconds(2.0), size_c, nullptr));
 
-  EXPECT_SIZEF_EQ(size_a, curve->GetValue(base::TimeDelta::FromSecondsD(-1.f)));
-  EXPECT_SIZEF_EQ(size_a, curve->GetValue(base::TimeDelta::FromSecondsD(0.f)));
-  EXPECT_SIZEF_EQ(size_midpoint1,
-                  curve->GetValue(base::TimeDelta::FromSecondsD(0.5f)));
-  EXPECT_SIZEF_EQ(size_b, curve->GetValue(base::TimeDelta::FromSecondsD(1.f)));
-  EXPECT_SIZEF_EQ(size_midpoint2,
-                  curve->GetValue(base::TimeDelta::FromSecondsD(1.5f)));
-  EXPECT_SIZEF_EQ(size_c, curve->GetValue(base::TimeDelta::FromSecondsD(2.f)));
-  EXPECT_SIZEF_EQ(size_c, curve->GetValue(base::TimeDelta::FromSecondsD(3.f)));
+  EXPECT_SIZEF_EQ(size_a, curve->GetValue(base::Seconds(-1.f)));
+  EXPECT_SIZEF_EQ(size_a, curve->GetValue(base::Seconds(0.f)));
+  EXPECT_SIZEF_EQ(size_midpoint1, curve->GetValue(base::Seconds(0.5f)));
+  EXPECT_SIZEF_EQ(size_b, curve->GetValue(base::Seconds(1.f)));
+  EXPECT_SIZEF_EQ(size_midpoint2, curve->GetValue(base::Seconds(1.5f)));
+  EXPECT_SIZEF_EQ(size_c, curve->GetValue(base::Seconds(2.f)));
+  EXPECT_SIZEF_EQ(size_c, curve->GetValue(base::Seconds(3.f)));
 }
 
 // Tests that a size animation with multiple keys at a given time works sanely.
@@ -895,25 +815,22 @@
   std::unique_ptr<KeyframedSizeAnimationCurve> curve(
       KeyframedSizeAnimationCurve::Create());
   curve->AddKeyframe(SizeKeyframe::Create(base::TimeDelta(), size_a, nullptr));
-  curve->AddKeyframe(SizeKeyframe::Create(base::TimeDelta::FromSecondsD(1.0),
-                                          size_a, nullptr));
-  curve->AddKeyframe(SizeKeyframe::Create(base::TimeDelta::FromSecondsD(1.0),
-                                          size_b, nullptr));
-  curve->AddKeyframe(SizeKeyframe::Create(base::TimeDelta::FromSecondsD(2.0),
-                                          size_b, nullptr));
+  curve->AddKeyframe(SizeKeyframe::Create(base::Seconds(1.0), size_a, nullptr));
+  curve->AddKeyframe(SizeKeyframe::Create(base::Seconds(1.0), size_b, nullptr));
+  curve->AddKeyframe(SizeKeyframe::Create(base::Seconds(2.0), size_b, nullptr));
 
-  EXPECT_SIZEF_EQ(size_a, curve->GetValue(base::TimeDelta::FromSecondsD(-1.f)));
-  EXPECT_SIZEF_EQ(size_a, curve->GetValue(base::TimeDelta::FromSecondsD(0.f)));
-  EXPECT_SIZEF_EQ(size_a, curve->GetValue(base::TimeDelta::FromSecondsD(0.5f)));
+  EXPECT_SIZEF_EQ(size_a, curve->GetValue(base::Seconds(-1.f)));
+  EXPECT_SIZEF_EQ(size_a, curve->GetValue(base::Seconds(0.f)));
+  EXPECT_SIZEF_EQ(size_a, curve->GetValue(base::Seconds(0.5f)));
 
-  gfx::SizeF value = curve->GetValue(base::TimeDelta::FromSecondsD(1.0f));
+  gfx::SizeF value = curve->GetValue(base::Seconds(1.0f));
   EXPECT_FLOAT_EQ(100.0f, value.width());
   EXPECT_LE(64.0f, value.height());
   EXPECT_GE(192.0f, value.height());
 
-  EXPECT_SIZEF_EQ(size_b, curve->GetValue(base::TimeDelta::FromSecondsD(1.5f)));
-  EXPECT_SIZEF_EQ(size_b, curve->GetValue(base::TimeDelta::FromSecondsD(2.f)));
-  EXPECT_SIZEF_EQ(size_b, curve->GetValue(base::TimeDelta::FromSecondsD(3.f)));
+  EXPECT_SIZEF_EQ(size_b, curve->GetValue(base::Seconds(1.5f)));
+  EXPECT_SIZEF_EQ(size_b, curve->GetValue(base::Seconds(2.f)));
+  EXPECT_SIZEF_EQ(size_b, curve->GetValue(base::Seconds(3.f)));
 }
 
 // Tests that a rect animation with one keyframe works as expected.
@@ -923,11 +840,11 @@
       KeyframedRectAnimationCurve::Create());
   curve->AddKeyframe(RectKeyframe::Create(base::TimeDelta(), rect, nullptr));
 
-  EXPECT_EQ(rect, curve->GetValue(base::TimeDelta::FromSecondsD(-1.f)));
-  EXPECT_EQ(rect, curve->GetValue(base::TimeDelta::FromSecondsD(0.f)));
-  EXPECT_EQ(rect, curve->GetValue(base::TimeDelta::FromSecondsD(0.5f)));
-  EXPECT_EQ(rect, curve->GetValue(base::TimeDelta::FromSecondsD(1.f)));
-  EXPECT_EQ(rect, curve->GetValue(base::TimeDelta::FromSecondsD(2.f)));
+  EXPECT_EQ(rect, curve->GetValue(base::Seconds(-1.f)));
+  EXPECT_EQ(rect, curve->GetValue(base::Seconds(0.f)));
+  EXPECT_EQ(rect, curve->GetValue(base::Seconds(0.5f)));
+  EXPECT_EQ(rect, curve->GetValue(base::Seconds(1.f)));
+  EXPECT_EQ(rect, curve->GetValue(base::Seconds(2.f)));
 }
 
 // Tests that a rect animation with two keyframes works as expected.
@@ -938,15 +855,13 @@
   std::unique_ptr<KeyframedRectAnimationCurve> curve(
       KeyframedRectAnimationCurve::Create());
   curve->AddKeyframe(RectKeyframe::Create(base::TimeDelta(), rect_a, nullptr));
-  curve->AddKeyframe(RectKeyframe::Create(base::TimeDelta::FromSecondsD(1.0),
-                                          rect_b, nullptr));
+  curve->AddKeyframe(RectKeyframe::Create(base::Seconds(1.0), rect_b, nullptr));
 
-  EXPECT_EQ(rect_a, curve->GetValue(base::TimeDelta::FromSecondsD(-1.f)));
-  EXPECT_EQ(rect_a, curve->GetValue(base::TimeDelta::FromSecondsD(0.f)));
-  EXPECT_EQ(rect_midpoint,
-            curve->GetValue(base::TimeDelta::FromSecondsD(0.5f)));
-  EXPECT_EQ(rect_b, curve->GetValue(base::TimeDelta::FromSecondsD(1.f)));
-  EXPECT_EQ(rect_b, curve->GetValue(base::TimeDelta::FromSecondsD(2.f)));
+  EXPECT_EQ(rect_a, curve->GetValue(base::Seconds(-1.f)));
+  EXPECT_EQ(rect_a, curve->GetValue(base::Seconds(0.f)));
+  EXPECT_EQ(rect_midpoint, curve->GetValue(base::Seconds(0.5f)));
+  EXPECT_EQ(rect_b, curve->GetValue(base::Seconds(1.f)));
+  EXPECT_EQ(rect_b, curve->GetValue(base::Seconds(2.f)));
 }
 
 // Tests that a rect animation with three keyframes works as expected.
@@ -959,20 +874,16 @@
   std::unique_ptr<KeyframedRectAnimationCurve> curve(
       KeyframedRectAnimationCurve::Create());
   curve->AddKeyframe(RectKeyframe::Create(base::TimeDelta(), rect_a, nullptr));
-  curve->AddKeyframe(RectKeyframe::Create(base::TimeDelta::FromSecondsD(1.0),
-                                          rect_b, nullptr));
-  curve->AddKeyframe(RectKeyframe::Create(base::TimeDelta::FromSecondsD(2.0),
-                                          rect_c, nullptr));
+  curve->AddKeyframe(RectKeyframe::Create(base::Seconds(1.0), rect_b, nullptr));
+  curve->AddKeyframe(RectKeyframe::Create(base::Seconds(2.0), rect_c, nullptr));
 
-  EXPECT_EQ(rect_a, curve->GetValue(base::TimeDelta::FromSecondsD(-1.f)));
-  EXPECT_EQ(rect_a, curve->GetValue(base::TimeDelta::FromSecondsD(0.f)));
-  EXPECT_EQ(rect_midpoint1,
-            curve->GetValue(base::TimeDelta::FromSecondsD(0.5f)));
-  EXPECT_EQ(rect_b, curve->GetValue(base::TimeDelta::FromSecondsD(1.f)));
-  EXPECT_EQ(rect_midpoint2,
-            curve->GetValue(base::TimeDelta::FromSecondsD(1.5f)));
-  EXPECT_EQ(rect_c, curve->GetValue(base::TimeDelta::FromSecondsD(2.f)));
-  EXPECT_EQ(rect_c, curve->GetValue(base::TimeDelta::FromSecondsD(3.f)));
+  EXPECT_EQ(rect_a, curve->GetValue(base::Seconds(-1.f)));
+  EXPECT_EQ(rect_a, curve->GetValue(base::Seconds(0.f)));
+  EXPECT_EQ(rect_midpoint1, curve->GetValue(base::Seconds(0.5f)));
+  EXPECT_EQ(rect_b, curve->GetValue(base::Seconds(1.f)));
+  EXPECT_EQ(rect_midpoint2, curve->GetValue(base::Seconds(1.5f)));
+  EXPECT_EQ(rect_c, curve->GetValue(base::Seconds(2.f)));
+  EXPECT_EQ(rect_c, curve->GetValue(base::Seconds(3.f)));
 }
 
 // Tests that a rect animation with multiple keys at a given time works sanely.
@@ -983,18 +894,15 @@
   std::unique_ptr<KeyframedRectAnimationCurve> curve(
       KeyframedRectAnimationCurve::Create());
   curve->AddKeyframe(RectKeyframe::Create(base::TimeDelta(), rect_a, nullptr));
-  curve->AddKeyframe(RectKeyframe::Create(base::TimeDelta::FromSecondsD(1.0),
-                                          rect_a, nullptr));
-  curve->AddKeyframe(RectKeyframe::Create(base::TimeDelta::FromSecondsD(1.0),
-                                          rect_b, nullptr));
-  curve->AddKeyframe(RectKeyframe::Create(base::TimeDelta::FromSecondsD(2.0),
-                                          rect_b, nullptr));
+  curve->AddKeyframe(RectKeyframe::Create(base::Seconds(1.0), rect_a, nullptr));
+  curve->AddKeyframe(RectKeyframe::Create(base::Seconds(1.0), rect_b, nullptr));
+  curve->AddKeyframe(RectKeyframe::Create(base::Seconds(2.0), rect_b, nullptr));
 
-  EXPECT_EQ(rect_a, curve->GetValue(base::TimeDelta::FromSecondsD(-1.f)));
-  EXPECT_EQ(rect_a, curve->GetValue(base::TimeDelta::FromSecondsD(0.f)));
-  EXPECT_EQ(rect_a, curve->GetValue(base::TimeDelta::FromSecondsD(0.5f)));
+  EXPECT_EQ(rect_a, curve->GetValue(base::Seconds(-1.f)));
+  EXPECT_EQ(rect_a, curve->GetValue(base::Seconds(0.f)));
+  EXPECT_EQ(rect_a, curve->GetValue(base::Seconds(0.5f)));
 
-  gfx::Rect value = curve->GetValue(base::TimeDelta::FromSecondsD(1.0f));
+  gfx::Rect value = curve->GetValue(base::Seconds(1.0f));
   EXPECT_EQ(100, value.width());
   EXPECT_LE(64, value.height());
   EXPECT_GE(192, value.height());
@@ -1003,9 +911,9 @@
   EXPECT_LE(20, value.y());
   EXPECT_GE(40, value.y());
 
-  EXPECT_EQ(rect_b, curve->GetValue(base::TimeDelta::FromSecondsD(1.5f)));
-  EXPECT_EQ(rect_b, curve->GetValue(base::TimeDelta::FromSecondsD(2.f)));
-  EXPECT_EQ(rect_b, curve->GetValue(base::TimeDelta::FromSecondsD(3.f)));
+  EXPECT_EQ(rect_b, curve->GetValue(base::Seconds(1.5f)));
+  EXPECT_EQ(rect_b, curve->GetValue(base::Seconds(2.f)));
+  EXPECT_EQ(rect_b, curve->GetValue(base::Seconds(3.f)));
 }
 
 // Tests that the computing of tick interval for STEPS TimingFunction works
@@ -1016,8 +924,8 @@
   std::unique_ptr<KeyframedFloatAnimationCurve> curve(
       KeyframedFloatAnimationCurve::Create());
   curve->AddKeyframe(FloatKeyframe::Create(base::TimeDelta(), 2.0, nullptr));
-  curve->AddKeyframe(FloatKeyframe::Create(
-      base::TimeDelta::FromSecondsD(kDuration), 4.0, nullptr));
+  curve->AddKeyframe(
+      FloatKeyframe::Create(base::Seconds(kDuration), 4.0, nullptr));
   curve->SetTimingFunction(StepsTimingFunction::Create(
       kNumSteps, StepsTimingFunction::StepPosition::START));
   EXPECT_FLOAT_EQ(kDuration / kNumSteps, curve->TickInterval().InSecondsF());
@@ -1033,8 +941,8 @@
       KeyframedColorAnimationCurve::Create());
   curve->AddKeyframe(
       ColorKeyframe::Create(base::TimeDelta(), color_a, nullptr));
-  curve->AddKeyframe(ColorKeyframe::Create(
-      base::TimeDelta::FromSecondsD(kDuration), color_b, nullptr));
+  curve->AddKeyframe(
+      ColorKeyframe::Create(base::Seconds(kDuration), color_b, nullptr));
   curve->SetTimingFunction(
       CubicBezierTimingFunction::Create(0.75f, 0.25f, 0.9f, 0.4f));
   EXPECT_FLOAT_EQ(0, curve->TickInterval().InSecondsF());
@@ -1059,12 +967,11 @@
       StepsTimingFunction::Create(kNumStepsAB,
                                   StepsTimingFunction::StepPosition::START)));
   curve->AddKeyframe(SizeKeyframe::Create(
-      base::TimeDelta::FromSecondsD(kDurationAB), size_b,
+      base::Seconds(kDurationAB), size_b,
       StepsTimingFunction::Create(kNumStepsBC,
                                   StepsTimingFunction::StepPosition::START)));
   curve->AddKeyframe(SizeKeyframe::Create(
-      base::TimeDelta::FromSecondsD(kDurationAB + kDurationBC), size_c,
-      nullptr));
+      base::Seconds(kDurationAB + kDurationBC), size_c, nullptr));
 
   // Without explicitly setting a timing function, the default is linear.
   EXPECT_FLOAT_EQ(kDurationBC / kNumStepsBC,
@@ -1076,8 +983,7 @@
   // Add a 4th keyframe.
   // Now the 3rd keyframe's "easing" into the 4th isn't STEPS.
   curve->AddKeyframe(SizeKeyframe::Create(
-      base::TimeDelta::FromSecondsD(kDurationAB + kDurationBC + kDurationCD),
-      size_d, nullptr));
+      base::Seconds(kDurationAB + kDurationBC + kDurationCD), size_d, nullptr));
   EXPECT_FLOAT_EQ(0, curve->TickInterval().InSecondsF());
 }
 
diff --git a/ui/gfx/animation/keyframe/test/animation_utils.cc b/ui/gfx/animation/keyframe/test/animation_utils.cc
index d8f0c07..d0b7098 100644
--- a/ui/gfx/animation/keyframe/test/animation_utils.cc
+++ b/ui/gfx/animation/keyframe/test/animation_utils.cc
@@ -79,11 +79,11 @@
 
 base::TimeTicks MicrosecondsToTicks(uint64_t us) {
   base::TimeTicks to_return;
-  return base::TimeDelta::FromMicroseconds(us) + to_return;
+  return base::Microseconds(us) + to_return;
 }
 
 base::TimeDelta MicrosecondsToDelta(uint64_t us) {
-  return base::TimeDelta::FromMicroseconds(us);
+  return base::Microseconds(us);
 }
 
 base::TimeTicks MsToTicks(uint64_t ms) {
diff --git a/ui/gfx/animation/keyframe/transition.cc b/ui/gfx/animation/keyframe/transition.cc
index cd548ec..f2305f0 100644
--- a/ui/gfx/animation/keyframe/transition.cc
+++ b/ui/gfx/animation/keyframe/transition.cc
@@ -11,8 +11,7 @@
 }  // namespace
 
 Transition::Transition()
-    : duration(
-          base::TimeDelta::FromMilliseconds(kDefaultTransitionDurationMs)) {}
+    : duration(base::Milliseconds(kDefaultTransitionDurationMs)) {}
 
 Transition::Transition(const Transition&) = default;
 Transition::Transition(Transition&&) = default;
diff --git a/ui/gfx/animation/linear_animation.cc b/ui/gfx/animation/linear_animation.cc
index ac3b535..39f3671 100644
--- a/ui/gfx/animation/linear_animation.cc
+++ b/ui/gfx/animation/linear_animation.cc
@@ -22,7 +22,7 @@
   int timer_interval = 1000000 / frame_rate;
   if (timer_interval < 10000)
     timer_interval = 10000;
-  return base::TimeDelta::FromMicroseconds(timer_interval);
+  return base::Microseconds(timer_interval);
 }
 
 const int LinearAnimation::kDefaultFrameRate = 60;
diff --git a/ui/gfx/animation/multi_animation.h b/ui/gfx/animation/multi_animation.h
index 191b26a..870e92f 100644
--- a/ui/gfx/animation/multi_animation.h
+++ b/ui/gfx/animation/multi_animation.h
@@ -58,8 +58,7 @@
   };
   using Parts = std::vector<Part>;
 
-  static constexpr auto kDefaultTimerInterval =
-      base::TimeDelta::FromMilliseconds(20);
+  static constexpr auto kDefaultTimerInterval = base::Milliseconds(20);
 
   explicit MultiAnimation(
       const Parts& parts,
diff --git a/ui/gfx/animation/multi_animation_unittest.cc b/ui/gfx/animation/multi_animation_unittest.cc
index 15da7183..dec64d9 100644
--- a/ui/gfx/animation/multi_animation_unittest.cc
+++ b/ui/gfx/animation/multi_animation_unittest.cc
@@ -13,10 +13,9 @@
 TEST(MultiAnimationTest, Basic) {
   // Create a MultiAnimation with two parts.
   MultiAnimation::Parts parts;
-  parts.push_back(MultiAnimation::Part(base::TimeDelta::FromMilliseconds(100),
-                                       Tween::LINEAR));
-  parts.push_back(MultiAnimation::Part(base::TimeDelta::FromMilliseconds(100),
-                                       Tween::EASE_OUT));
+  parts.push_back(MultiAnimation::Part(base::Milliseconds(100), Tween::LINEAR));
+  parts.push_back(
+      MultiAnimation::Part(base::Milliseconds(100), Tween::EASE_OUT));
 
   MultiAnimation animation(parts);
   AnimationContainerElement* as_element =
@@ -24,18 +23,16 @@
   as_element->SetStartTime(base::TimeTicks());
 
   // Step to 50, which is half way through the first part.
-  as_element->Step(base::TimeTicks() + base::TimeDelta::FromMilliseconds(50));
+  as_element->Step(base::TimeTicks() + base::Milliseconds(50));
   EXPECT_EQ(.5, animation.GetCurrentValue());
 
   // Step to 120, which is 20% through the second part.
-  as_element->Step(base::TimeTicks() +
-                   base::TimeDelta::FromMilliseconds(120));
+  as_element->Step(base::TimeTicks() + base::Milliseconds(120));
   EXPECT_DOUBLE_EQ(Tween::CalculateValue(Tween::EASE_OUT, .2),
                    animation.GetCurrentValue());
 
   // Step to 320, which is 20% through the second part.
-  as_element->Step(base::TimeTicks() +
-                   base::TimeDelta::FromMilliseconds(320));
+  as_element->Step(base::TimeTicks() + base::Milliseconds(320));
   EXPECT_DOUBLE_EQ(Tween::CalculateValue(Tween::EASE_OUT, .2),
                    animation.GetCurrentValue());
 }
@@ -43,8 +40,7 @@
 // Makes sure multi-animation stops if cycles is false.
 TEST(MultiAnimationTest, DontCycle) {
   MultiAnimation::Parts parts;
-  parts.push_back(MultiAnimation::Part(base::TimeDelta::FromMilliseconds(200),
-                                       Tween::LINEAR));
+  parts.push_back(MultiAnimation::Part(base::Milliseconds(200), Tween::LINEAR));
   MultiAnimation animation(parts);
   AnimationContainerElement* as_element =
       static_cast<AnimationContainerElement*>(&animation);
@@ -52,7 +48,7 @@
   animation.set_continuous(false);
 
   // Step to 300, which is greater than the cycle time.
-  as_element->Step(base::TimeTicks() + base::TimeDelta::FromMilliseconds(300));
+  as_element->Step(base::TimeTicks() + base::Milliseconds(300));
   EXPECT_EQ(1.0, animation.GetCurrentValue());
   EXPECT_FALSE(animation.is_animating());
 }
@@ -76,8 +72,7 @@
 // and not running continuously.
 TEST(MultiAnimationTest, ExceedCycleNonContinuous) {
   MultiAnimation::Parts parts;
-  parts.push_back(MultiAnimation::Part(base::TimeDelta::FromMilliseconds(200),
-                                       Tween::LINEAR));
+  parts.push_back(MultiAnimation::Part(base::Milliseconds(200), Tween::LINEAR));
   MultiAnimation animation(parts);
   CurrentValueDelegate delegate;
   animation.set_delegate(&delegate);
@@ -87,22 +82,21 @@
   as_element->SetStartTime(base::TimeTicks());
 
   // Step to 300, which is greater than the cycle time.
-  as_element->Step(base::TimeTicks() + base::TimeDelta::FromMilliseconds(300));
+  as_element->Step(base::TimeTicks() + base::Milliseconds(300));
   EXPECT_EQ(1.0, delegate.latest_current_value());
 }
 
 // Makes sure multi-animation cycles correctly.
 TEST(MultiAnimationTest, Cycle) {
   MultiAnimation::Parts parts;
-  parts.push_back(MultiAnimation::Part(base::TimeDelta::FromMilliseconds(200),
-                                       Tween::LINEAR));
+  parts.push_back(MultiAnimation::Part(base::Milliseconds(200), Tween::LINEAR));
   MultiAnimation animation(parts);
   AnimationContainerElement* as_element =
       static_cast<AnimationContainerElement*>(&animation);
   as_element->SetStartTime(base::TimeTicks());
 
   // Step to 300, which is greater than the cycle time.
-  as_element->Step(base::TimeTicks() + base::TimeDelta::FromMilliseconds(300));
+  as_element->Step(base::TimeTicks() + base::Milliseconds(300));
   EXPECT_EQ(.5, animation.GetCurrentValue());
 }
 
@@ -114,11 +108,9 @@
   constexpr double kSecondPartStart = 0.8;
   constexpr double kSecondPartEnd = 0.4;
   MultiAnimation::Parts parts;
-  parts.push_back(MultiAnimation::Part(base::TimeDelta::FromMilliseconds(100),
-                                       Tween::LINEAR));
-  parts.push_back(MultiAnimation::Part(base::TimeDelta::FromMilliseconds(100),
-                                       Tween::EASE_OUT, kSecondPartStart,
-                                       kSecondPartEnd));
+  parts.push_back(MultiAnimation::Part(base::Milliseconds(100), Tween::LINEAR));
+  parts.push_back(MultiAnimation::Part(base::Milliseconds(100), Tween::EASE_OUT,
+                                       kSecondPartStart, kSecondPartEnd));
 
   MultiAnimation animation(parts);
   animation.set_continuous(false);
@@ -127,7 +119,7 @@
   as_element->SetStartTime(base::TimeTicks());
 
   // Step to 150, which is half way through the second part.
-  as_element->Step(base::TimeTicks() + base::TimeDelta::FromMilliseconds(150));
+  as_element->Step(base::TimeTicks() + base::Milliseconds(150));
   const double current_animation_value =
       Tween::CalculateValue(Tween::EASE_OUT, .5);
   EXPECT_DOUBLE_EQ(Tween::DoubleValueBetween(current_animation_value,
@@ -136,7 +128,7 @@
 
   // Step to 200 which is at the end. The final value should now be kPartEnd as
   // the animation is not continuous.
-  as_element->Step(base::TimeTicks() + base::TimeDelta::FromMilliseconds(200));
+  as_element->Step(base::TimeTicks() + base::Milliseconds(200));
   EXPECT_DOUBLE_EQ(kSecondPartEnd, animation.GetCurrentValue());
 }
 
diff --git a/ui/gfx/animation/slide_animation.h b/ui/gfx/animation/slide_animation.h
index 535a15a..35e86f62 100644
--- a/ui/gfx/animation/slide_animation.h
+++ b/ui/gfx/animation/slide_animation.h
@@ -22,7 +22,7 @@
 //  public:
 //   MyClass() {
 //     animation_ = std::make_unique<SlideAnimation>(this);
-//     animation_->SetSlideDuration(base::TimeDelta::FromMilliseconds(500));
+//     animation_->SetSlideDuration(base::Milliseconds(500));
 //   }
 //   void OnMouseOver() {
 //     animation_->Show();
@@ -123,7 +123,7 @@
 
   // How long a hover in/out animation will last for. This can be overridden
   // with SetSlideDuration().
-  base::TimeDelta slide_duration_ = base::TimeDelta::FromMilliseconds(120);
+  base::TimeDelta slide_duration_ = base::Milliseconds(120);
 
   // Dampens the reduction in duration for animations which start partway.
   double dampening_value_ = 1.0;
diff --git a/ui/gfx/animation/slide_animation_unittest.cc b/ui/gfx/animation/slide_animation_unittest.cc
index 6f9d3bf..9a53c86 100644
--- a/ui/gfx/animation/slide_animation_unittest.cc
+++ b/ui/gfx/animation/slide_animation_unittest.cc
@@ -59,7 +59,7 @@
   slide_animation_->SetTweenType(Tween::LINEAR);
 
   // Duration can be set after construction.
-  slide_animation_->SetSlideDuration(base::TimeDelta::FromMilliseconds(100));
+  slide_animation_->SetSlideDuration(base::Milliseconds(100));
   EXPECT_EQ(100, slide_animation_->GetSlideDuration().InMilliseconds());
 
   // Show toggles the appropriate state.
@@ -68,7 +68,7 @@
   EXPECT_FALSE(slide_animation_->IsClosing());
 
   // Simulate running the animation.
-  RunAnimationFor(base::TimeDelta::FromMilliseconds(50));
+  RunAnimationFor(base::Milliseconds(50));
   EXPECT_EQ(0.5, slide_animation_->GetCurrentValue());
 
   // We can start hiding mid-way through the animation.
@@ -105,22 +105,22 @@
 TEST_F(SlideAnimationTest,
        AnimationWithPartialProgressAndDefaultDampeningFactor) {
   slide_animation_->SetTweenType(Tween::LINEAR);
-  slide_animation_->SetSlideDuration(base::TimeDelta::FromMilliseconds(100));
+  slide_animation_->SetSlideDuration(base::Milliseconds(100));
   slide_animation_->Show();
   EXPECT_EQ(slide_animation_->GetCurrentValue(), 0.0);
 
   // Advance the animation to halfway done.
-  RunAnimationFor(base::TimeDelta::FromMilliseconds(50));
+  RunAnimationFor(base::Milliseconds(50));
   EXPECT_EQ(0.5, slide_animation_->GetCurrentValue());
 
   // Reverse the animation and run it for half of the remaining duration.
   slide_animation_->Hide();
-  RunAnimationFor(base::TimeDelta::FromMilliseconds(25));
+  RunAnimationFor(base::Milliseconds(25));
   EXPECT_EQ(0.25, slide_animation_->GetCurrentValue());
 
   // Reverse the animation again and run it for half of the remaining duration.
   slide_animation_->Show();
-  RunAnimationFor(base::TimeDelta::FromMillisecondsD(37.5));
+  RunAnimationFor(base::Milliseconds(37.5));
   EXPECT_EQ(0.625, slide_animation_->GetCurrentValue());
 }
 
@@ -130,16 +130,16 @@
        AnimationWithPartialProgressAndNonDefaultDampeningFactor) {
   slide_animation_->SetTweenType(Tween::LINEAR);
   slide_animation_->SetDampeningValue(2.0);
-  slide_animation_->SetSlideDuration(base::TimeDelta::FromMilliseconds(100));
+  slide_animation_->SetSlideDuration(base::Milliseconds(100));
   slide_animation_->Show();
   // Advance the animation to halfway done.
-  RunAnimationFor(base::TimeDelta::FromMilliseconds(50));
+  RunAnimationFor(base::Milliseconds(50));
   EXPECT_EQ(0.5, slide_animation_->GetCurrentValue());
 
   // Reverse the animation and run it for the same duration, it should be
   // sub-linear with dampening.
   slide_animation_->Hide();
-  RunAnimationFor(base::TimeDelta::FromMilliseconds(50));
+  RunAnimationFor(base::Milliseconds(50));
   EXPECT_GT(slide_animation_->GetCurrentValue(), 0);
 }
 
@@ -148,25 +148,25 @@
 TEST_F(SlideAnimationTest, DampenedAnimationMostlyComplete) {
   slide_animation_->SetTweenType(Tween::LINEAR);
   slide_animation_->SetDampeningValue(2.0);
-  slide_animation_->SetSlideDuration(base::TimeDelta::FromMilliseconds(100));
+  slide_animation_->SetSlideDuration(base::Milliseconds(100));
   slide_animation_->Show();
   // Advance the animation to 1/10th of the way done.
-  RunAnimationFor(base::TimeDelta::FromMilliseconds(10));
+  RunAnimationFor(base::Milliseconds(10));
   EXPECT_EQ(0.1, slide_animation_->GetCurrentValue());
 
   // Reverse the animation and run it for 1/10th of the duration, it should not
   // be complete.
   slide_animation_->Hide();
-  RunAnimationFor(base::TimeDelta::FromMilliseconds(10));
+  RunAnimationFor(base::Milliseconds(10));
   EXPECT_GT(slide_animation_->GetCurrentValue(), 0);
 
   // Finish the animation and set up the test for a mostly complete show
   // animation.
-  RunAnimationFor(base::TimeDelta::FromMilliseconds(100));
+  RunAnimationFor(base::Milliseconds(100));
   EXPECT_EQ(0, slide_animation_->GetCurrentValue());
   slide_animation_->Show();
   // Advance the animation to 9/10th of the way done.
-  RunAnimationFor(base::TimeDelta::FromMilliseconds(90));
+  RunAnimationFor(base::Milliseconds(90));
   EXPECT_EQ(0.9, slide_animation_->GetCurrentValue());
 
   // Hide and then Show the animation to force the duration to be recalculated,
@@ -174,10 +174,10 @@
   // complete.
   slide_animation_->Hide();
   slide_animation_->Show();
-  RunAnimationFor(base::TimeDelta::FromMilliseconds(10));
+  RunAnimationFor(base::Milliseconds(10));
   EXPECT_LT(slide_animation_->GetCurrentValue(), 1);
 
-  RunAnimationFor(base::TimeDelta::FromMilliseconds(40));
+  RunAnimationFor(base::Milliseconds(40));
   EXPECT_EQ(1, slide_animation_->GetCurrentValue());
 }
 
@@ -186,10 +186,10 @@
 TEST_F(SlideAnimationTest, DampenedAnimationMostlyIncomplete) {
   slide_animation_->SetTweenType(Tween::LINEAR);
   slide_animation_->SetDampeningValue(2.0);
-  slide_animation_->SetSlideDuration(base::TimeDelta::FromMilliseconds(100));
+  slide_animation_->SetSlideDuration(base::Milliseconds(100));
   slide_animation_->Show();
   // Advance the animation to 1/10th of the way done.
-  RunAnimationFor(base::TimeDelta::FromMilliseconds(10));
+  RunAnimationFor(base::Milliseconds(10));
   EXPECT_EQ(0.1, slide_animation_->GetCurrentValue());
 
   // Hide and then Show the animation to force the duration to be recalculated,
@@ -197,15 +197,15 @@
   // complete.
   slide_animation_->Hide();
   slide_animation_->Show();
-  RunAnimationFor(base::TimeDelta::FromMilliseconds(90));
+  RunAnimationFor(base::Milliseconds(90));
   EXPECT_LT(slide_animation_->GetCurrentValue(), 1);
 
   // Finish the animation and set up the test for a mostly incomplete hide
   // animation.
-  RunAnimationFor(base::TimeDelta::FromMilliseconds(100));
+  RunAnimationFor(base::Milliseconds(100));
   EXPECT_EQ(1, slide_animation_->GetCurrentValue());
   slide_animation_->Hide();
-  RunAnimationFor(base::TimeDelta::FromMilliseconds(10));
+  RunAnimationFor(base::Milliseconds(10));
   EXPECT_EQ(0.9, slide_animation_->GetCurrentValue());
 
   // Show and then hide the animation to recompute the duration, then run the
@@ -213,10 +213,10 @@
   // complete.
   slide_animation_->Show();
   slide_animation_->Hide();
-  RunAnimationFor(base::TimeDelta::FromMilliseconds(90));
+  RunAnimationFor(base::Milliseconds(90));
   EXPECT_GT(slide_animation_->GetCurrentValue(), 0);
 
-  RunAnimationFor(base::TimeDelta::FromMilliseconds(100));
+  RunAnimationFor(base::Milliseconds(100));
   EXPECT_EQ(0, slide_animation_->GetCurrentValue());
 }
 
@@ -226,7 +226,7 @@
 
   slide_animation_->SetContainer(container.get());
   slide_animation_->SetTweenType(Tween::LINEAR);
-  slide_animation_->SetSlideDuration(base::TimeDelta::FromMilliseconds(100));
+  slide_animation_->SetSlideDuration(base::Milliseconds(100));
 
   slide_animation_->Reset(0.5);
   EXPECT_FALSE(slide_animation_->is_animating());
@@ -235,7 +235,7 @@
   slide_animation_->Hide();
   ASSERT_TRUE(slide_animation_->is_animating());
 
-  test_api.IncrementTime(base::TimeDelta::FromMilliseconds(100));
+  test_api.IncrementTime(base::Milliseconds(100));
   EXPECT_EQ(0.0, slide_animation_->GetCurrentValue());
 }
 
diff --git a/ui/gfx/animation/throb_animation.h b/ui/gfx/animation/throb_animation.h
index 77cc371..6e9d0940a 100644
--- a/ui/gfx/animation/throb_animation.h
+++ b/ui/gfx/animation/throb_animation.h
@@ -59,7 +59,7 @@
   base::TimeDelta slide_duration_ = GetSlideDuration();
 
   // Duration of the slide animation when throbbing.
-  base::TimeDelta throb_duration_ = base::TimeDelta::FromMilliseconds(400);
+  base::TimeDelta throb_duration_ = base::Milliseconds(400);
 
   // If throbbing, this is the number of cycles left.
   int cycles_remaining_ = 0;
diff --git a/ui/gfx/animation/tween_unittest.cc b/ui/gfx/animation/tween_unittest.cc
index 44b4c53..19ff9eb1 100644
--- a/ui/gfx/animation/tween_unittest.cc
+++ b/ui/gfx/animation/tween_unittest.cc
@@ -143,12 +143,12 @@
 
   const auto t0 = base::TimeTicks();
 
-  base::TimeTicks from = t0 + base::TimeDelta::FromSecondsD(1);
-  base::TimeTicks to = t0 + base::TimeDelta::FromSecondsD(2);
+  base::TimeTicks from = t0 + base::Seconds(1);
+  base::TimeTicks to = t0 + base::Seconds(2);
 
-  base::TimeTicks t_before = t0 + base::TimeDelta::FromSecondsD(0.9);
-  base::TimeTicks t_between = t0 + base::TimeDelta::FromSecondsD(1.6);
-  base::TimeTicks t_after = t0 + base::TimeDelta::FromSecondsD(2.2);
+  base::TimeTicks t_before = t0 + base::Seconds(0.9);
+  base::TimeTicks t_between = t0 + base::Seconds(1.6);
+  base::TimeTicks t_after = t0 + base::Seconds(2.2);
 
   EXPECT_EQ(v1, Tween::ClampedFloatValueBetween(t_before, from, v1, to, v2));
   EXPECT_EQ(16.0, Tween::ClampedFloatValueBetween(t_between, from, v1, to, v2));
diff --git a/ui/gfx/delegated_ink_unittest.cc b/ui/gfx/delegated_ink_unittest.cc
index fea2b73..455d4bf 100644
--- a/ui/gfx/delegated_ink_unittest.cc
+++ b/ui/gfx/delegated_ink_unittest.cc
@@ -74,7 +74,7 @@
 
   DelegatedInkMetadata metadata_different_timestamp(
       point_location, /*diameter=*/10, SK_ColorGREEN,
-      timestamp + base::TimeDelta::FromMilliseconds(10), gfx::RectF(0, 0, 0, 0),
+      timestamp + base::Milliseconds(10), gfx::RectF(0, 0, 0, 0),
       /*hovering*/ true);
   EXPECT_FALSE(
       ink_point.MatchesDelegatedInkMetadata(&metadata_different_timestamp));
diff --git a/ui/gfx/gpu_fence.cc b/ui/gfx/gpu_fence.cc
index 032fd8a0..e52f6077 100644
--- a/ui/gfx/gpu_fence.cc
+++ b/ui/gfx/gpu_fence.cc
@@ -79,7 +79,7 @@
     LOG(ERROR) << "No timestamp provided from sync_pt_info for fd : " << fd;
     return FenceStatus::kInvalid;
   }
-  *time = base::TimeTicks() + base::TimeDelta::FromNanoseconds(timestamp_ns);
+  *time = base::TimeTicks() + base::Nanoseconds(timestamp_ns);
   return FenceStatus::kSignaled;
 #endif
   NOTREACHED();
diff --git a/ui/gfx/mojom/mojom_traits_unittest.cc b/ui/gfx/mojom/mojom_traits_unittest.cc
index 96fb0ca5..1797139e 100644
--- a/ui/gfx/mojom/mojom_traits_unittest.cc
+++ b/ui/gfx/mojom/mojom_traits_unittest.cc
@@ -240,18 +240,14 @@
 }
 
 TEST_F(StructTraitsTest, PresentationFeedback) {
-  base::TimeTicks timestamp =
-      base::TimeTicks() + base::TimeDelta::FromSeconds(12);
-  base::TimeDelta interval = base::TimeDelta::FromMilliseconds(23);
+  base::TimeTicks timestamp = base::TimeTicks() + base::Seconds(12);
+  base::TimeDelta interval = base::Milliseconds(23);
   uint32_t flags =
       PresentationFeedback::kVSync | PresentationFeedback::kZeroCopy;
   PresentationFeedback input{timestamp, interval, flags};
-  input.available_timestamp =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(20);
-  input.ready_timestamp =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(21);
-  input.latch_timestamp =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(22);
+  input.available_timestamp = base::TimeTicks() + base::Milliseconds(20);
+  input.ready_timestamp = base::TimeTicks() + base::Milliseconds(21);
+  input.latch_timestamp = base::TimeTicks() + base::Milliseconds(22);
   PresentationFeedback output;
   mojo::test::SerializeAndDeserialize<gfx::mojom::PresentationFeedback>(input,
                                                                         output);
diff --git a/ui/gfx/paint_throbber.cc b/ui/gfx/paint_throbber.cc
index fee3e9a..04f2336 100644
--- a/ui/gfx/paint_throbber.cc
+++ b/ui/gfx/paint_throbber.cc
@@ -24,11 +24,11 @@
 constexpr int64_t kMaxArcSize = 270;
 
 // The amount of time it takes to grow the "spinning" arc from 0 to 270 degrees.
-constexpr auto kArcTime = base::TimeDelta::FromSecondsD(2.0 / 3.0);
+constexpr auto kArcTime = base::Seconds(2.0 / 3.0);
 
 // The amount of time it takes for the "spinning" throbber to make a full
 // rotation.
-constexpr auto kRotationTime = base::TimeDelta::FromMilliseconds(1568);
+constexpr auto kRotationTime = base::Milliseconds(1568);
 
 void PaintArc(Canvas* canvas,
               const Rect& bounds,
@@ -69,7 +69,7 @@
   // the throbber spins counter-clockwise. The finish angle starts at 12 o'clock
   // (90 degrees) and rotates steadily. The start angle trails 180 degrees
   // behind, except for the first half revolution, when it stays at 12 o'clock.
-  constexpr auto kRevolutionTime = base::TimeDelta::FromMilliseconds(1320);
+  constexpr auto kRevolutionTime = base::Milliseconds(1320);
   int64_t twelve_oclock = 90;
   int64_t finish_angle_cc =
       twelve_oclock +
@@ -187,7 +187,7 @@
     for (int64_t arc_ms = 0; arc_ms <= kArcTime.InMillisecondsRoundedUp();
          ++arc_ms) {
       const base::TimeDelta arc_time =
-          std::min(base::TimeDelta::FromMilliseconds(arc_ms), kArcTime);
+          std::min(base::Milliseconds(arc_ms), kArcTime);
       if (kMaxArcSize * Tween::CalculateValue(Tween::FAST_OUT_SLOW_IN,
                                               arc_time / kArcTime) >=
           waiting_sweep) {
@@ -199,7 +199,7 @@
   }
 
   // Blend the color between "waiting" and "spinning" states.
-  constexpr auto kColorFadeTime = base::TimeDelta::FromMilliseconds(900);
+  constexpr auto kColorFadeTime = base::Milliseconds(900);
   const float color_progress = static_cast<float>(Tween::CalculateValue(
       Tween::LINEAR_OUT_SLOW_IN, std::min(elapsed_time / kColorFadeTime, 1.0)));
   const SkColor blend_color =
@@ -221,7 +221,7 @@
                                         SkColor color,
                                         const base::TimeDelta& elapsed_time) {
   // Cycle time for the waiting throbber.
-  constexpr auto kNewThrobberWaitingCycleTime = base::TimeDelta::FromSeconds(1);
+  constexpr auto kNewThrobberWaitingCycleTime = base::Seconds(1);
 
   // The throbber bounces back and forth. We map the elapsed time to 0->2. Time
   // 0->1 represents when the throbber moves left to right, time 1->2 represents
diff --git a/ui/gfx/win/direct_write.cc b/ui/gfx/win/direct_write.cc
index 5d135a7..fc7356b 100644
--- a/ui/gfx/win/direct_write.cc
+++ b/ui/gfx/win/direct_write.cc
@@ -75,8 +75,7 @@
     // Windows (win7_rtm) may fail to map the service sections
     // (crbug.com/956064).
     constexpr int kMaxRetries = 5;
-    constexpr base::TimeDelta kRetrySleepTime =
-        base::TimeDelta::FromMicroseconds(500);
+    constexpr base::TimeDelta kRetrySleepTime = base::Microseconds(500);
     while (iteration < kMaxRetries) {
       base::PlatformThread::Sleep(kRetrySleepTime);
       direct_write_font_mgr = SkFontMgr_New_DirectWrite(factory.Get());
diff --git a/ui/gl/angle_platform_impl.cc b/ui/gl/angle_platform_impl.cc
index 8825241..78647ba 100644
--- a/ui/gl/angle_platform_impl.cc
+++ b/ui/gl/angle_platform_impl.cc
@@ -61,8 +61,7 @@
     const unsigned char* arg_types,
     const unsigned long long* arg_values,
     unsigned char flags) {
-  base::TimeTicks timestamp_tt =
-      base::TimeTicks() + base::TimeDelta::FromSecondsD(timestamp);
+  base::TimeTicks timestamp_tt = base::TimeTicks() + base::Seconds(timestamp);
   base::trace_event::TraceArguments args(num_args, arg_names, arg_types,
                                          arg_values);
   base::trace_event::TraceEventHandle handle =
diff --git a/ui/gl/delegated_ink_point_renderer_gpu_unittest.cc b/ui/gl/delegated_ink_point_renderer_gpu_unittest.cc
index 666f027de..5470766 100644
--- a/ui/gl/delegated_ink_point_renderer_gpu_unittest.cc
+++ b/ui/gl/delegated_ink_point_renderer_gpu_unittest.cc
@@ -48,7 +48,7 @@
     SendDelegatedInkPoint(gfx::DelegatedInkPoint(
         last_point.point() + gfx::Vector2dF(5, 5),
         last_point.timestamp() +
-            base::TimeDelta::FromMicroseconds(kMicrosecondsBetweenEachPoint),
+            base::Microseconds(kMicrosecondsBetweenEachPoint),
         last_point.pointer_id()));
   }
 
@@ -219,7 +219,7 @@
       ink_renderer()->DelegatedInkPointsForTesting(kPointerId).rbegin()->first;
   metadata = gfx::DelegatedInkMetadata(
       last_point.point() + gfx::Vector2dF(2, 2), /*diameter=*/3, SK_ColorBLACK,
-      last_point.timestamp() + base::TimeDelta::FromMicroseconds(20),
+      last_point.timestamp() + base::Microseconds(20),
       gfx::RectF(0, 0, 100, 100), /*hovering=*/false);
   SendMetadata(metadata);
   EXPECT_EQ(ink_renderer()->DelegatedInkPointPointerIdCountForTesting(), 0u);
@@ -260,8 +260,7 @@
   gfx::DelegatedInkPoint last_point =
       ink_renderer()->DelegatedInkPointsForTesting(kPointerId).rbegin()->first;
   gfx::DelegatedInkPoint outside_point(
-      gfx::PointF(5, 5),
-      last_point.timestamp() + base::TimeDelta::FromMicroseconds(10),
+      gfx::PointF(5, 5), last_point.timestamp() + base::Microseconds(10),
       /*pointer_id=*/1);
   EXPECT_FALSE(metadata.presentation_area().Contains(outside_point.point()));
   SendDelegatedInkPoint(outside_point);
@@ -298,9 +297,8 @@
       gfx::DelegatedInkPoint(gfx::PointF(16, 22), timestamp, kPointerId1));
   SendDelegatedInkPoint(gfx::DelegatedInkPoint(
       gfx::PointF(40, 13.3f),
-      timestamp +
-          base::TimeDelta::FromMicroseconds(kPointerId2PointsAheadOfPointerId1 *
-                                            kMicrosecondsBetweenEachPoint),
+      timestamp + base::Microseconds(kPointerId2PointsAheadOfPointerId1 *
+                                     kMicrosecondsBetweenEachPoint),
       kPointerId2));
 
   uint64_t pointer_id_1_count = 1u;
@@ -348,9 +346,8 @@
   const int kPointerId3PointsAheadOfPointerId1 = 5;
   SendDelegatedInkPoint(gfx::DelegatedInkPoint(
       gfx::PointF(23, 64),
-      timestamp +
-          base::TimeDelta::FromMicroseconds(kPointerId3PointsAheadOfPointerId1 *
-                                            kMicrosecondsBetweenEachPoint),
+      timestamp + base::Microseconds(kPointerId3PointsAheadOfPointerId1 *
+                                     kMicrosecondsBetweenEachPoint),
       kPointerId3));
 
   const uint64_t kPointsWithPointerId3 = 4u;
@@ -388,7 +385,7 @@
   // make sure they are all correctly added separately.
   const base::TimeTicks kEarliestTimestamp =
       base::TimeTicks::Now() -
-      base::TimeDelta::FromMicroseconds(kMicrosecondsBetweenEachPoint);
+      base::Microseconds(kMicrosecondsBetweenEachPoint);
   const int32_t kEarliestTimestampPointerId = 4;
 
   base::TimeTicks timestamp = base::TimeTicks::Now();
@@ -403,8 +400,7 @@
                                                   : timestamp,
         pointer_id));
     point += gfx::Vector2dF(5, 5);
-    timestamp +=
-        base::TimeDelta::FromMicroseconds(kMicrosecondsBetweenEachPoint);
+    timestamp += base::Microseconds(kMicrosecondsBetweenEachPoint);
   }
 
   EXPECT_EQ(ink_renderer()->DelegatedInkPointPointerIdCountForTesting(),
@@ -425,7 +421,7 @@
   // Finally, add a point with a earlier timestamp than everything else and make
   // sure that it is not added to the map of pointer ids.
   point += gfx::Vector2dF(5, 5);
-  timestamp = kEarliestTimestamp + base::TimeDelta::FromMicroseconds(5);
+  timestamp = kEarliestTimestamp + base::Microseconds(5);
   const int32_t kEarlyTimestampPointerId = kMaxNumberOfPointerIds + 1;
   SendDelegatedInkPoint(
       gfx::DelegatedInkPoint(point, timestamp, kEarlyTimestampPointerId));
diff --git a/ui/gl/dual_gpu_state_mac.cc b/ui/gl/dual_gpu_state_mac.cc
index af4de0e..302dfbc 100644
--- a/ui/gl/dual_gpu_state_mac.cc
+++ b/ui/gl/dual_gpu_state_mac.cc
@@ -54,7 +54,7 @@
 
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
         FROM_HERE, cancelable_delay_callback_.callback(),
-        base::TimeDelta::FromSeconds(kDelayLengthSeconds));
+        base::Seconds(kDelayLengthSeconds));
   } else {
     SwitchToLowPowerGPU();
   }
diff --git a/ui/gl/gl_context.cc b/ui/gl/gl_context.cc
index cc8adf0..d4a6739 100644
--- a/ui/gl/gl_context.cc
+++ b/ui/gl/gl_context.cc
@@ -251,7 +251,7 @@
   bool fence_completed = false;
   for (int poll_iter = 0; !fence_completed && poll_iter < 32; ++poll_iter) {
     if (poll_iter > 0) {
-      base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(1));
+      base::PlatformThread::Sleep(base::Milliseconds(1));
     }
     {
       TRACE_EVENT0("gpu", "GLFence::HasCompleted");
diff --git a/ui/gl/gl_image_egl.cc b/ui/gl/gl_image_egl.cc
index 60dd4067..230b5bf 100644
--- a/ui/gl/gl_image_egl.cc
+++ b/ui/gl/gl_image_egl.cc
@@ -60,8 +60,8 @@
   const GLenum error = glGetError();
   UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
       "Gpu.GL.GetErrorDuration.GLImageEGL.BindTexImage",
-      thread_blocked_timer.Elapsed(), base::TimeDelta::FromMicroseconds(10),
-      base::TimeDelta::FromMilliseconds(16), 100);
+      thread_blocked_timer.Elapsed(), base::Microseconds(10),
+      base::Milliseconds(16), 100);
 
   DLOG_IF(ERROR, error != GL_NO_ERROR)
       << "Error binding EGLImage: " << GLEnums::GetStringError(error);
diff --git a/ui/gl/gl_surface_egl.cc b/ui/gl/gl_surface_egl.cc
index e47f8523..48b044ab 100644
--- a/ui/gl/gl_surface_egl.cc
+++ b/ui/gl/gl_surface_egl.cc
@@ -1764,7 +1764,7 @@
   // Add an epsilon since the trace viewer interprets timestamp ranges
   // as closed on the left and open on the right. i.e.: [begin, end).
   // The last sub event isn't nested properly without the epsilon.
-  auto epsilon = base::TimeDelta::FromMicroseconds(1);
+  auto epsilon = base::Microseconds(1);
   static const char* SwapEvents = "SwapEvents";
   const int64_t trace_id = oldFrameId;
   TRACE_EVENT_NESTABLE_ASYNC_BEGIN_WITH_TIMESTAMP0(
@@ -1916,8 +1916,8 @@
   // reporting purpose.
   if (!eglGetCompositorTimingANDROID(GetDisplay(), surface_, 1, &interval_name,
                                      &composite_interval_ns)) {
-    *composite_interval = base::TimeDelta::FromNanoseconds(
-        base::TimeTicks::kNanosecondsPerSecond / 60);
+    *composite_interval =
+        base::Nanoseconds(base::TimeTicks::kNanosecondsPerSecond / 60);
     // If we couldn't get the correct presentation time due to some errors,
     // return the current time.
     *presentation_time = base::TimeTicks::Now();
@@ -1929,7 +1929,7 @@
     return false;
   }
   DCHECK_GT(composite_interval_ns, 0);
-  *composite_interval = base::TimeDelta::FromNanoseconds(composite_interval_ns);
+  *composite_interval = base::Nanoseconds(composite_interval_ns);
 
   // Get the all available timestamps for the frame. If a frame is invalid or
   // an error is generated,  we will treat it as a frame done for timestamp
@@ -1972,12 +1972,12 @@
         presentation_time_ns == EGL_TIMESTAMP_PENDING_ANDROID) {
       *presentation_time = base::TimeTicks::Now();
     } else {
-      *presentation_time = base::TimeTicks() + base::TimeDelta::FromNanoseconds(
-                                                   presentation_time_ns);
+      *presentation_time =
+          base::TimeTicks() + base::Nanoseconds(presentation_time_ns);
     }
   } else {
-    *presentation_time = base::TimeTicks() +
-                         base::TimeDelta::FromNanoseconds(presentation_time_ns);
+    *presentation_time =
+        base::TimeTicks() + base::Nanoseconds(presentation_time_ns);
     *presentation_flags = presentation_flags_;
   }
 
@@ -1987,8 +1987,8 @@
       writes_done_time_ns == EGL_TIMESTAMP_PENDING_ANDROID) {
     *writes_done_time = base::TimeTicks();
   } else {
-    *writes_done_time = base::TimeTicks() +
-                        base::TimeDelta::FromNanoseconds(writes_done_time_ns);
+    *writes_done_time =
+        base::TimeTicks() + base::Nanoseconds(writes_done_time_ns);
   }
 
   return true;
diff --git a/ui/gl/gl_surface_egl_surface_control.cc b/ui/gl/gl_surface_egl_surface_control.cc
index b5f1a32..902dcc8 100644
--- a/ui/gl/gl_surface_egl_surface_control.cc
+++ b/ui/gl/gl_surface_egl_surface_control.cc
@@ -612,7 +612,7 @@
         weak_factory_.GetWeakPtr()));
     gpu_task_runner_->PostDelayedTask(
         FROM_HERE, check_pending_presentation_callback_queue_task_.callback(),
-        base::TimeDelta::FromSeconds(1) / 60);
+        base::Seconds(1) / 60);
   }
 }
 
@@ -722,9 +722,8 @@
       base::BindOnce(&GLSurfaceEGLSurfaceControl::TransactionAckTimeoutManager::
                          OnTransactionTimeout,
                      base::Unretained(this), current_transaction_id_));
-  gpu_task_runner_->PostDelayedTask(
-      FROM_HERE, hang_detection_cb_.callback(),
-      base::TimeDelta::FromSeconds(kIdleDelaySeconds));
+  gpu_task_runner_->PostDelayedTask(FROM_HERE, hang_detection_cb_.callback(),
+                                    base::Seconds(kIdleDelaySeconds));
 }
 
 void GLSurfaceEGLSurfaceControl::TransactionAckTimeoutManager::
diff --git a/ui/gl/gl_surface_presentation_helper.cc b/ui/gl/gl_surface_presentation_helper.cc
index 901e025..dc19d0c 100644
--- a/ui/gl/gl_surface_presentation_helper.cc
+++ b/ui/gl/gl_surface_presentation_helper.cc
@@ -96,7 +96,7 @@
     int64_t start = 0;
     int64_t end = 0;
     frame.timer->GetStartEndTimestamps(&start, &end);
-    *timestamp = base::TimeTicks() + base::TimeDelta::FromMicroseconds(start);
+    *timestamp = base::TimeTicks() + base::Microseconds(start);
   } else {
     if (!frame.fence->HasCompleted())
       return false;
@@ -391,9 +391,8 @@
   // If the |vsync_provider_| can not notify us for the next VSync
   // asynchronically, we have to compute the next VSync time and post a delayed
   // task so we can check the VSync later.
-  base::TimeDelta interval = vsync_interval_.is_zero()
-                                 ? base::TimeDelta::FromSeconds(1) / 60
-                                 : vsync_interval_;
+  base::TimeDelta interval =
+      vsync_interval_.is_zero() ? base::Seconds(1) / 60 : vsync_interval_;
   auto now = base::TimeTicks::Now();
   auto next_vsync = now.SnappedToNextTick(vsync_timebase_, interval);
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
diff --git a/ui/gl/gpu_timing.cc b/ui/gl/gpu_timing.cc
index f2a03a3..02f9d3dbcf 100644
--- a/ui/gl/gpu_timing.cc
+++ b/ui/gl/gpu_timing.cc
@@ -371,8 +371,7 @@
       // We cannot expect these instructions to run with the accuracy
       // within 1 microsecond, instead discard differences which are less
       // than a single millisecond.
-      base::TimeDelta delta =
-          base::TimeDelta::FromMicroseconds(micro_offset - offset_);
+      base::TimeDelta delta = base::Microseconds(micro_offset - offset_);
 
       if (delta.magnitude().InMilliseconds() >= 1) {
         offset_ = micro_offset;
diff --git a/ui/gl/swap_chain_presenter.cc b/ui/gl/swap_chain_presenter.cc
index 6cf9f88..bfd2667 100644
--- a/ui/gl/swap_chain_presenter.cc
+++ b/ui/gl/swap_chain_presenter.cc
@@ -32,8 +32,7 @@
 
 // When in BGRA888 overlay format, wait for this time delta before retrying
 // YUV format.
-constexpr base::TimeDelta kDelayForRetryingYUVFormat =
-    base::TimeDelta::FromMinutes(10);
+constexpr base::TimeDelta kDelayForRetryingYUVFormat = base::Minutes(10);
 
 // Some drivers fail to correctly handle BT.709 video in overlays. This flag
 // converts them to BT.601 in the video processor.
@@ -1127,9 +1126,9 @@
           stats.CompositionMode);
       if (frame_rate_ != 0) {
         // [1ms, 10s] covers the fps between [0.1hz, 1000hz].
-        base::UmaHistogramTimes("GPU.DirectComposition.ApprovedPresentDuration",
-                                base::TimeDelta::FromMilliseconds(
-                                    stats.ApprovedPresentDuration / 10000));
+        base::UmaHistogramTimes(
+            "GPU.DirectComposition.ApprovedPresentDuration",
+            base::Milliseconds(stats.ApprovedPresentDuration / 10000));
       }
       presentation_history_.AddSample(stats.CompositionMode);
       mode = stats.CompositionMode;
diff --git a/ui/gl/sync_control_vsync_provider.cc b/ui/gl/sync_control_vsync_provider.cc
index bc90cd8..d035fca 100644
--- a/ui/gl/sync_control_vsync_provider.cc
+++ b/ui/gl/sync_control_vsync_provider.cc
@@ -30,7 +30,7 @@
   // On platforms where we can't get an accurate reading on the refresh
   // rate we fall back to the assumption that we're displaying 60 frames
   // per second.
-  last_good_interval_ = base::TimeDelta::FromSeconds(1) / 60;
+  last_good_interval_ = base::Seconds(1) / 60;
 #endif
 }
 
@@ -107,7 +107,7 @@
     return false;
 
   const base::TimeTicks timebase =
-      base::TimeTicks() + base::TimeDelta::FromMicroseconds(system_time);
+      base::TimeTicks() + base::Microseconds(system_time);
 
   // Only need the previous calculated interval for our filtering.
   while (last_computed_intervals_.size() > 1)
@@ -115,8 +115,7 @@
 
   int32_t numerator, denominator;
   if (GetMscRate(&numerator, &denominator) && numerator) {
-    last_computed_intervals_.push(base::TimeDelta::FromSeconds(denominator) /
-                                  numerator);
+    last_computed_intervals_.push(base::Seconds(denominator) / numerator);
   } else if (!last_timebase_.is_null()) {
     base::TimeDelta timebase_diff = timebase - last_timebase_;
     int64_t counter_diff = media_stream_counter - last_media_stream_counter_;
diff --git a/ui/gl/vsync_provider_win.cc b/ui/gl/vsync_provider_win.cc
index 959ae12..a80e2a0 100644
--- a/ui/gl/vsync_provider_win.cc
+++ b/ui/gl/vsync_provider_win.cc
@@ -55,10 +55,9 @@
     if (timing_info.rateRefresh.uiDenominator > 0 &&
         timing_info.rateRefresh.uiNumerator > 0) {
       // Swap the numerator/denominator to convert frequency to period.
-      rate_interval = base::TimeDelta::FromMicroseconds(
-          timing_info.rateRefresh.uiDenominator *
-          base::Time::kMicrosecondsPerSecond /
-          timing_info.rateRefresh.uiNumerator);
+      rate_interval = base::Microseconds(timing_info.rateRefresh.uiDenominator *
+                                         base::Time::kMicrosecondsPerSecond /
+                                         timing_info.rateRefresh.uiNumerator);
     }
 
     if (base::TimeTicks::IsHighResolution()) {
@@ -70,7 +69,7 @@
           static_cast<LONGLONG>(timing_info.qpcRefreshPeriod));
       // Check for interval values that are impossibly low. A 29 microsecond
       // interval was seen (from a qpcRefreshPeriod of 60).
-      if (interval < base::TimeDelta::FromMilliseconds(1)) {
+      if (interval < base::Milliseconds(1)) {
         interval = rate_interval;
       }
       // Check for the qpcRefreshPeriod interval being improbably small
@@ -105,7 +104,7 @@
       if (EnumDisplaySettings(monitor_info.szDevice, ENUM_CURRENT_SETTINGS,
                               &display_info) &&
           display_info.dmDisplayFrequency > 1) {
-        interval = base::TimeDelta::FromMicroseconds(
+        interval = base::Microseconds(
             (1.0 / static_cast<double>(display_info.dmDisplayFrequency)) *
             base::Time::kMicrosecondsPerSecond);
       }
diff --git a/ui/gl/vsync_thread_win.cc b/ui/gl/vsync_thread_win.cc
index c24b708..399e430 100644
--- a/ui/gl/vsync_thread_win.cc
+++ b/ui/gl/vsync_thread_win.cc
@@ -111,8 +111,7 @@
   // WaitForVBlank and fallback to Sleep() if it returns before that.  This
   // could happen during normal operation for the first call after the vsync
   // thread becomes non-idle, but it shouldn't happen often.
-  constexpr auto kVBlankIntervalThreshold =
-      base::TimeDelta::FromMilliseconds(1);
+  constexpr auto kVBlankIntervalThreshold = base::Milliseconds(1);
   const base::TimeDelta wait_for_vblank_elapsed_time =
       base::TimeTicks::Now() - wait_for_vblank_start_time;
   if (!wait_for_vblank_succeeded ||
diff --git a/ui/gtk/gtk_ui.cc b/ui/gtk/gtk_ui.cc
index 2949f49..8e25f1a 100644
--- a/ui/gtk/gtk_ui.cc
+++ b/ui/gtk/gtk_ui.cc
@@ -497,9 +497,9 @@
   gboolean cursor_blink = TRUE;
   g_object_get(gtk_settings_get_default(), "gtk-cursor-blink-time",
                &cursor_blink_time, "gtk-cursor-blink", &cursor_blink, nullptr);
-  return cursor_blink ? base::TimeDelta::FromSecondsD(
-                            cursor_blink_time / kGtkCursorBlinkCycleFactor)
-                      : base::TimeDelta();
+  return cursor_blink
+             ? base::Seconds(cursor_blink_time / kGtkCursorBlinkCycleFactor)
+             : base::TimeDelta();
 }
 
 ui::NativeTheme* GtkUi::GetNativeTheme(aura::Window* window) const {
diff --git a/ui/latency/latency_histogram_macros.h b/ui/latency/latency_histogram_macros.h
index e4f162a..1f63cb8 100644
--- a/ui/latency/latency_histogram_macros.h
+++ b/ui/latency/latency_histogram_macros.h
@@ -36,9 +36,9 @@
 #define UMA_HISTOGRAM_INPUT_LATENCY_CUSTOM_MICROSECONDS(name, start, end) \
   CONFIRM_EVENT_TIMES_EXIST(start, end)                                   \
   base::TimeDelta frame_difference = end - start;                         \
-  UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(                                \
-      name, frame_difference, base::TimeDelta::FromMicroseconds(1),       \
-      base::TimeDelta::FromMilliseconds(100), 100);
+  UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(name, frame_difference,         \
+                                          base::Microseconds(1),          \
+                                          base::Milliseconds(100), 100);
 
 // Event latency that is mostly under 1 second. We should only use 100 buckets
 // when needed. This drops reports on clients with low-resolution clocks.
@@ -46,9 +46,9 @@
     name, start, end)                                                 \
   CONFIRM_EVENT_TIMES_EXIST(start, end)                               \
   base::TimeDelta frame_difference = end - start;                     \
-  UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(                            \
-      name, frame_difference, base::TimeDelta::FromMicroseconds(1),   \
-      base::TimeDelta::FromMilliseconds(1000), 100);
+  UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(name, frame_difference,     \
+                                          base::Microseconds(1),      \
+                                          base::Milliseconds(1000), 100);
 
 #define UMA_HISTOGRAM_INPUT_LATENCY_MILLISECONDS(name, start, end)             \
   CONFIRM_EVENT_TIMES_EXIST(start, end)                                        \
diff --git a/ui/latency/latency_info_unittest.cc b/ui/latency/latency_info_unittest.cc
index 833f6c3..b41be5b1 100644
--- a/ui/latency/latency_info_unittest.cc
+++ b/ui/latency/latency_info_unittest.cc
@@ -14,7 +14,7 @@
 
 // Returns a fake TimeTicks based on the given microsecond offset.
 base::TimeTicks ToTestTimeTicks(int64_t micros) {
-  return base::TimeTicks() + base::TimeDelta::FromMicroseconds(micros);
+  return base::TimeTicks() + base::Microseconds(micros);
 }
 
 }  // namespace
diff --git a/ui/lottie/animation.cc b/ui/lottie/animation.cc
index 8e205804..23ac6407 100644
--- a/ui/lottie/animation.cc
+++ b/ui/lottie/animation.cc
@@ -27,7 +27,7 @@
       cycle_duration_(end_offset_ - start_offset_),
       total_duration_(total_duration),
       previous_tick_(start_timestamp),
-      progress_(base::TimeDelta::FromMilliseconds(0)),
+      progress_(base::Milliseconds(0)),
       current_cycle_progress_(start_offset_),
       should_reverse_(should_reverse) {}
 
@@ -77,7 +77,7 @@
 }
 
 base::TimeDelta Animation::GetAnimationDuration() const {
-  return base::TimeDelta::FromSecondsD(skottie_->duration());
+  return base::Seconds(skottie_->duration());
 }
 
 gfx::Size Animation::GetOriginalSize() const {
diff --git a/ui/lottie/animation_unittest.cc b/ui/lottie/animation_unittest.cc
index b4d44f4..ceade949 100644
--- a/ui/lottie/animation_unittest.cc
+++ b/ui/lottie/animation_unittest.cc
@@ -52,7 +52,7 @@
     "}";
 constexpr float kAnimationWidth = 400.f;
 constexpr float kAnimationHeight = 200.f;
-constexpr auto kAnimationDuration = base::TimeDelta::FromSeconds(5);
+constexpr auto kAnimationDuration = base::Seconds(5);
 
 class TestAnimationObserver : public AnimationObserver {
  public:
@@ -216,7 +216,7 @@
   TestAnimationObserver observer;
   animation_->SetAnimationObserver(&observer);
 
-  AdvanceClock(base::TimeDelta::FromMilliseconds(300));
+  AdvanceClock(base::Milliseconds(300));
 
   EXPECT_TRUE(IsStopped());
   animation_->Start(Animation::Style::kLinear);
@@ -234,7 +234,7 @@
 
   EXPECT_EQ(GetTimerTotalDuration(), kAnimationDuration);
 
-  constexpr auto kAdvance = base::TimeDelta::FromMilliseconds(50);
+  constexpr auto kAdvance = base::Milliseconds(50);
   AdvanceClock(kAdvance);
   EXPECT_EQ(TimeDeltaSince(GetTimerPreviousTick()), kAdvance);
 
@@ -245,7 +245,7 @@
 
   // Advance the clock to the end of the animation.
   constexpr auto kAdvanceToEnd =
-      kAnimationDuration - kAdvance + base::TimeDelta::FromMilliseconds(1);
+      kAnimationDuration - kAdvance + base::Milliseconds(1);
   AdvanceClock(kAdvanceToEnd);
   EXPECT_EQ(TimeDeltaSince(GetTimerPreviousTick()), kAdvanceToEnd);
   animation_->Paint(canvas(), NowTicks(), animation_->GetOriginalSize());
@@ -258,7 +258,7 @@
   TestAnimationObserver observer;
   animation_->SetAnimationObserver(&observer);
 
-  AdvanceClock(base::TimeDelta::FromMilliseconds(300));
+  AdvanceClock(base::Milliseconds(300));
 
   animation_->Start(Animation::Style::kLinear);
 
@@ -266,7 +266,7 @@
   EXPECT_TRUE(IsPlaying());
   EXPECT_FLOAT_EQ(animation_->GetCurrentProgress(), 0);
 
-  constexpr auto kAdvance = base::TimeDelta::FromMilliseconds(50);
+  constexpr auto kAdvance = base::Milliseconds(50);
   AdvanceClock(kAdvance);
   animation_->Paint(canvas(), NowTicks(), animation_->GetOriginalSize());
   EXPECT_FLOAT_EQ(animation_->GetCurrentProgress(),
@@ -278,14 +278,14 @@
 }
 
 TEST_F(AnimationTest, PlaySubsectionOfLinearAnimation) {
-  constexpr auto kStartTime = base::TimeDelta::FromMilliseconds(400);
-  constexpr auto kDuration = base::TimeDelta::FromMilliseconds(1000);
+  constexpr auto kStartTime = base::Milliseconds(400);
+  constexpr auto kDuration = base::Milliseconds(1000);
 
   TestAnimationObserver observer;
 
   animation_->SetAnimationObserver(&observer);
 
-  AdvanceClock(base::TimeDelta::FromMilliseconds(300));
+  AdvanceClock(base::Milliseconds(300));
 
   EXPECT_FALSE(observer.animation_cycle_ended());
   animation_->StartSubsection(kStartTime, kDuration, Animation::Style::kLinear);
@@ -305,7 +305,7 @@
 
   EXPECT_EQ(GetTimerTotalDuration(), kAnimationDuration);
 
-  constexpr auto kAdvance = base::TimeDelta::FromMilliseconds(100);
+  constexpr auto kAdvance = base::Milliseconds(100);
   AdvanceClock(kAdvance);
   EXPECT_EQ(TimeDeltaSince(GetTimerPreviousTick()), kAdvance);
 
@@ -316,7 +316,7 @@
   EXPECT_FALSE(observer.animation_cycle_ended());
 
   // Advance clock another 300 ms.
-  constexpr auto kAdvance2 = base::TimeDelta::FromMilliseconds(300);
+  constexpr auto kAdvance2 = base::Milliseconds(300);
   AdvanceClock(kAdvance2);
   EXPECT_EQ(TimeDeltaSince(GetTimerPreviousTick()), kAdvance2);
 
@@ -328,7 +328,7 @@
 
   // Reach the end of animation.
   constexpr auto kAdvanceToEnd =
-      kDuration - kAdvance - kAdvance2 + base::TimeDelta::FromMilliseconds(1);
+      kDuration - kAdvance - kAdvance2 + base::Milliseconds(1);
   AdvanceClock(kAdvanceToEnd);
   EXPECT_EQ(TimeDeltaSince(GetTimerPreviousTick()), kAdvanceToEnd);
   animation_->Paint(canvas(), NowTicks(), animation_->GetOriginalSize());
@@ -338,18 +338,18 @@
 }
 
 TEST_F(AnimationTest, PausingLinearAnimation) {
-  constexpr auto kStartTime = base::TimeDelta::FromMilliseconds(400);
-  constexpr auto kDuration = base::TimeDelta::FromMilliseconds(1000);
+  constexpr auto kStartTime = base::Milliseconds(400);
+  constexpr auto kDuration = base::Milliseconds(1000);
 
   TestAnimationObserver observer;
   animation_->SetAnimationObserver(&observer);
 
-  AdvanceClock(base::TimeDelta::FromMilliseconds(200));
+  AdvanceClock(base::Milliseconds(200));
 
   animation_->StartSubsection(kStartTime, kDuration, Animation::Style::kLinear);
   animation_->Paint(canvas(), NowTicks(), animation_->GetOriginalSize());
 
-  constexpr auto kAdvance = base::TimeDelta::FromMilliseconds(100);
+  constexpr auto kAdvance = base::Milliseconds(100);
   AdvanceClock(kAdvance);
   animation_->Paint(canvas(), NowTicks(), animation_->GetOriginalSize());
 
@@ -382,7 +382,7 @@
   EXPECT_FLOAT_EQ(animation_->GetCurrentProgress(),
                   (kStartTime + kAdvance * 2) / kAnimationDuration);
 
-  AdvanceClock(kDuration - kAdvance * 2 + base::TimeDelta::FromMilliseconds(1));
+  AdvanceClock(kDuration - kAdvance * 2 + base::Milliseconds(1));
   animation_->Paint(canvas(), NowTicks(), animation_->GetOriginalSize());
 }
 
@@ -390,7 +390,7 @@
   TestAnimationObserver observer;
   animation_->SetAnimationObserver(&observer);
 
-  AdvanceClock(base::TimeDelta::FromMilliseconds(300));
+  AdvanceClock(base::Milliseconds(300));
 
   EXPECT_TRUE(IsStopped());
   animation_->Start(Animation::Style::kLoop);
@@ -409,7 +409,7 @@
 
   EXPECT_EQ(GetTimerTotalDuration(), kAnimationDuration);
 
-  constexpr auto kAdvance = base::TimeDelta::FromMilliseconds(50);
+  constexpr auto kAdvance = base::Milliseconds(50);
   AdvanceClock(kAdvance);
   EXPECT_EQ(TimeDeltaSince(GetTimerPreviousTick()), kAdvance);
 
@@ -430,13 +430,13 @@
 }
 
 TEST_F(AnimationTest, PlaySubsectionOfLoopAnimation) {
-  constexpr auto kStartTime = base::TimeDelta::FromMilliseconds(400);
-  constexpr auto kDuration = base::TimeDelta::FromMilliseconds(1000);
+  constexpr auto kStartTime = base::Milliseconds(400);
+  constexpr auto kDuration = base::Milliseconds(1000);
 
   TestAnimationObserver observer;
   animation_->SetAnimationObserver(&observer);
 
-  AdvanceClock(base::TimeDelta::FromMilliseconds(300));
+  AdvanceClock(base::Milliseconds(300));
 
   EXPECT_TRUE(IsStopped());
   animation_->StartSubsection(kStartTime, kDuration, Animation::Style::kLoop);
@@ -457,7 +457,7 @@
 
   EXPECT_EQ(GetTimerTotalDuration(), kAnimationDuration);
 
-  constexpr auto kAdvance = base::TimeDelta::FromMilliseconds(100);
+  constexpr auto kAdvance = base::Milliseconds(100);
   AdvanceClock(kAdvance);
   EXPECT_EQ(TimeDeltaSince(GetTimerPreviousTick()), kAdvance);
   EXPECT_FALSE(observer.animation_cycle_ended());
@@ -467,7 +467,7 @@
   EXPECT_FLOAT_EQ(animation_->GetCurrentProgress(),
                   (kStartTime + kAdvance) / kAnimationDuration);
 
-  constexpr auto kAdvance2 = base::TimeDelta::FromMilliseconds(300);
+  constexpr auto kAdvance2 = base::Milliseconds(300);
   AdvanceClock(kAdvance2);
   EXPECT_EQ(TimeDeltaSince(GetTimerPreviousTick()), kAdvance2);
 
@@ -489,13 +489,13 @@
 }
 
 TEST_F(AnimationTest, PausingLoopAnimation) {
-  constexpr auto kStartTime = base::TimeDelta::FromMilliseconds(400);
-  constexpr auto kDuration = base::TimeDelta::FromMilliseconds(1000);
+  constexpr auto kStartTime = base::Milliseconds(400);
+  constexpr auto kDuration = base::Milliseconds(1000);
 
   TestAnimationObserver observer;
   animation_->SetAnimationObserver(&observer);
 
-  AdvanceClock(base::TimeDelta::FromMilliseconds(200));
+  AdvanceClock(base::Milliseconds(200));
 
   animation_->StartSubsection(kStartTime, kDuration, Animation::Style::kLoop);
   animation_->Paint(canvas(), NowTicks(), animation_->GetOriginalSize());
@@ -503,7 +503,7 @@
   EXPECT_FLOAT_EQ(animation_->GetCurrentProgress(),
                   kStartTime / kAnimationDuration);
 
-  constexpr auto kAdvance = base::TimeDelta::FromMilliseconds(100);
+  constexpr auto kAdvance = base::Milliseconds(100);
   AdvanceClock(kAdvance);
   animation_->Paint(canvas(), NowTicks(), animation_->GetOriginalSize());
 
@@ -548,7 +548,7 @@
   TestAnimationObserver observer;
   animation_->SetAnimationObserver(&observer);
 
-  AdvanceClock(base::TimeDelta::FromMilliseconds(300));
+  AdvanceClock(base::Milliseconds(300));
 
   animation_->Start(Animation::Style::kThrobbing);
   EXPECT_TRUE(IsScheduledToPlay());
@@ -566,7 +566,7 @@
 
   EXPECT_EQ(GetTimerTotalDuration(), kAnimationDuration);
 
-  constexpr auto kAdvance = base::TimeDelta::FromMilliseconds(50);
+  constexpr auto kAdvance = base::Milliseconds(50);
   AdvanceClock(kAdvance);
   EXPECT_EQ(TimeDeltaSince(GetTimerPreviousTick()), kAdvance);
 
@@ -598,13 +598,13 @@
 }
 
 TEST_F(AnimationTest, PlaySubsectionOfThrobbingAnimation) {
-  constexpr auto kStartTime = base::TimeDelta::FromMilliseconds(400);
-  constexpr auto kDuration = base::TimeDelta::FromMilliseconds(1000);
+  constexpr auto kStartTime = base::Milliseconds(400);
+  constexpr auto kDuration = base::Milliseconds(1000);
 
   TestAnimationObserver observer;
   animation_->SetAnimationObserver(&observer);
 
-  AdvanceClock(base::TimeDelta::FromMilliseconds(300));
+  AdvanceClock(base::Milliseconds(300));
 
   animation_->StartSubsection(kStartTime, kDuration,
                               Animation::Style::kThrobbing);
@@ -624,7 +624,7 @@
 
   EXPECT_EQ(GetTimerTotalDuration(), kAnimationDuration);
 
-  constexpr auto kAdvance = base::TimeDelta::FromMilliseconds(100);
+  constexpr auto kAdvance = base::Milliseconds(100);
   AdvanceClock(kAdvance);
   EXPECT_EQ(TimeDeltaSince(GetTimerPreviousTick()), kAdvance);
 
@@ -634,7 +634,7 @@
   EXPECT_FLOAT_EQ(animation_->GetCurrentProgress(),
                   (kStartTime + kAdvance) / kAnimationDuration);
 
-  constexpr auto kAdvance2 = base::TimeDelta::FromMilliseconds(300);
+  constexpr auto kAdvance2 = base::Milliseconds(300);
   AdvanceClock(kAdvance2);
   EXPECT_EQ(TimeDeltaSince(GetTimerPreviousTick()), kAdvance2);
 
@@ -654,7 +654,7 @@
   EXPECT_FLOAT_EQ(animation_->GetCurrentProgress(), GetTimerEndOffset());
   EXPECT_FALSE(observer.animation_cycle_ended());
 
-  constexpr auto kAdvance3 = base::TimeDelta::FromMilliseconds(500);
+  constexpr auto kAdvance3 = base::Milliseconds(500);
   AdvanceClock(kAdvance3);
   animation_->Paint(canvas(), NowTicks(), animation_->GetOriginalSize());
   EXPECT_FLOAT_EQ(animation_->GetCurrentProgress(),
@@ -678,10 +678,10 @@
 }
 
 TEST_F(AnimationTest, PausingThrobbingAnimation) {
-  constexpr auto kStartTime = base::TimeDelta::FromMilliseconds(400);
-  constexpr auto kDuration = base::TimeDelta::FromMilliseconds(1000);
+  constexpr auto kStartTime = base::Milliseconds(400);
+  constexpr auto kDuration = base::Milliseconds(1000);
 
-  AdvanceClock(base::TimeDelta::FromMilliseconds(200));
+  AdvanceClock(base::Milliseconds(200));
 
   animation_->StartSubsection(kStartTime, kDuration,
                               Animation::Style::kThrobbing);
@@ -692,7 +692,7 @@
   EXPECT_FLOAT_EQ(animation_->GetCurrentProgress(),
                   kStartTime / kAnimationDuration);
 
-  constexpr auto kAdvance = base::TimeDelta::FromMilliseconds(100);
+  constexpr auto kAdvance = base::Milliseconds(100);
   AdvanceClock(kAdvance);
   animation_->Paint(canvas(), NowTicks(), animation_->GetOriginalSize());
 
@@ -751,7 +751,7 @@
   animation_->Paint(canvas(), NowTicks(), animation_->GetOriginalSize());
   EXPECT_TRUE(IsPlaying());
 
-  constexpr auto kAdvance2 = base::TimeDelta::FromMilliseconds(500);
+  constexpr auto kAdvance2 = base::Milliseconds(500);
   AdvanceClock(kAdvance2);
   animation_->Paint(canvas(), NowTicks(), animation_->GetOriginalSize());
   EXPECT_FLOAT_EQ(
@@ -775,7 +775,7 @@
   TestAnimationObserver observer;
   animation_->SetAnimationObserver(&observer);
 
-  AdvanceClock(base::TimeDelta::FromMilliseconds(300));
+  AdvanceClock(base::Milliseconds(300));
 
   animation_->Start();
   EXPECT_TRUE(IsScheduledToPlay());
@@ -783,17 +783,17 @@
   animation_->Pause();
   EXPECT_TRUE(IsPaused());
 
-  AdvanceClock(base::TimeDelta::FromMilliseconds(100));
+  AdvanceClock(base::Milliseconds(100));
   animation_->Paint(canvas(), NowTicks(), animation_->GetOriginalSize());
 
   animation_->ResumePlaying();
   EXPECT_TRUE(IsScheduledToResume());
 
-  AdvanceClock(base::TimeDelta::FromMilliseconds(100));
+  AdvanceClock(base::Milliseconds(100));
   animation_->Paint(canvas(), NowTicks(), animation_->GetOriginalSize());
   EXPECT_TRUE(IsPlaying());
 
-  constexpr auto kAdvance = base::TimeDelta::FromMilliseconds(100);
+  constexpr auto kAdvance = base::Milliseconds(100);
   AdvanceClock(kAdvance);
   animation_->Paint(canvas(), NowTicks(), animation_->GetOriginalSize());
   EXPECT_FLOAT_EQ(animation_->GetCurrentProgress(),
@@ -803,28 +803,28 @@
 TEST_F(AnimationTest, PaintTest) {
   gfx::Canvas canvas(gfx::Size(kAnimationWidth, kAnimationHeight), 1.f, false);
 
-  AdvanceClock(base::TimeDelta::FromMilliseconds(300));
+  AdvanceClock(base::Milliseconds(300));
 
   animation_->Start(Animation::Style::kLinear);
   animation_->Paint(&canvas, NowTicks(), animation_->GetOriginalSize());
 
-  AdvanceClock(base::TimeDelta::FromMilliseconds(50));
+  AdvanceClock(base::Milliseconds(50));
   animation_->Paint(&canvas, NowTicks(), animation_->GetOriginalSize());
   IsAllSameColor(SK_ColorGREEN, canvas.GetBitmap());
 
-  AdvanceClock(base::TimeDelta::FromMilliseconds(2450));
+  AdvanceClock(base::Milliseconds(2450));
   animation_->Paint(&canvas, NowTicks(), animation_->GetOriginalSize());
   IsAllSameColor(SK_ColorGREEN, canvas.GetBitmap());
 
-  AdvanceClock(base::TimeDelta::FromMilliseconds(50));
+  AdvanceClock(base::Milliseconds(50));
   animation_->Paint(&canvas, NowTicks(), animation_->GetOriginalSize());
   IsAllSameColor(SK_ColorBLUE, canvas.GetBitmap());
 
-  AdvanceClock(base::TimeDelta::FromMilliseconds(1000));
+  AdvanceClock(base::Milliseconds(1000));
   animation_->Paint(&canvas, NowTicks(), animation_->GetOriginalSize());
   IsAllSameColor(SK_ColorBLUE, canvas.GetBitmap());
 
-  AdvanceClock(base::TimeDelta::FromMilliseconds(1400));
+  AdvanceClock(base::Milliseconds(1400));
   animation_->Paint(&canvas, NowTicks(), animation_->GetOriginalSize());
   IsAllSameColor(SK_ColorBLUE, canvas.GetBitmap());
 }
diff --git a/ui/lottie/resource.cc b/ui/lottie/resource.cc
index 71d0f31a..8fc18f4 100644
--- a/ui/lottie/resource.cc
+++ b/ui/lottie/resource.cc
@@ -73,9 +73,8 @@
 
   UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
       "UncompressAndParseSkiaVectorAsset",
-      base::TimeTicks::Now() - start_timestamp,
-      base::TimeDelta::FromMicroseconds(1),
-      base::TimeDelta::FromMilliseconds(50), 100);
+      base::TimeTicks::Now() - start_timestamp, base::Microseconds(1),
+      base::Milliseconds(50), 100);
   auto inserted = GetVectorAssetCache().emplace(resource_id, skottie);
   DCHECK(inserted.second);
   return std::make_unique<Animation>(inserted.first->second);
diff --git a/ui/message_center/message_center_impl_unittest.cc b/ui/message_center/message_center_impl_unittest.cc
index 3a2c02b..23650658 100644
--- a/ui/message_center/message_center_impl_unittest.cc
+++ b/ui/message_center/message_center_impl_unittest.cc
@@ -417,8 +417,7 @@
 TEST_F(MessageCenterImplTest, PopupTimersControllerStartTimer) {
   std::unique_ptr<MockPopupTimersController> popup_timers_controller =
       std::make_unique<MockPopupTimersController>(message_center(), closure());
-  popup_timers_controller->StartTimer("test",
-                                      base::TimeDelta::FromMilliseconds(1));
+  popup_timers_controller->StartTimer("test", base::Milliseconds(1));
   run_loop()->Run();
   EXPECT_EQ(popup_timers_controller->timer_finished(), 1);
 }
@@ -426,8 +425,7 @@
 TEST_F(MessageCenterImplTest, PopupTimersControllerCancelTimer) {
   std::unique_ptr<MockPopupTimersController> popup_timers_controller =
       std::make_unique<MockPopupTimersController>(message_center(), closure());
-  popup_timers_controller->StartTimer("test",
-                                      base::TimeDelta::FromMilliseconds(1));
+  popup_timers_controller->StartTimer("test", base::Milliseconds(1));
   popup_timers_controller->CancelTimer("test");
   run_loop()->RunUntilIdle();
 
@@ -437,8 +435,7 @@
 TEST_F(MessageCenterImplTest, PopupTimersControllerPauseAllTimers) {
   std::unique_ptr<MockPopupTimersController> popup_timers_controller =
       std::make_unique<MockPopupTimersController>(message_center(), closure());
-  popup_timers_controller->StartTimer("test",
-                                      base::TimeDelta::FromMilliseconds(1));
+  popup_timers_controller->StartTimer("test", base::Milliseconds(1));
   popup_timers_controller->PauseAll();
   run_loop()->RunUntilIdle();
 
@@ -448,8 +445,7 @@
 TEST_F(MessageCenterImplTest, PopupTimersControllerStartAllTimers) {
   std::unique_ptr<MockPopupTimersController> popup_timers_controller =
       std::make_unique<MockPopupTimersController>(message_center(), closure());
-  popup_timers_controller->StartTimer("test",
-                                      base::TimeDelta::FromMilliseconds(1));
+  popup_timers_controller->StartTimer("test", base::Milliseconds(1));
   popup_timers_controller->PauseAll();
   popup_timers_controller->StartAll();
   run_loop()->Run();
@@ -461,8 +457,7 @@
   std::unique_ptr<MockPopupTimersController> popup_timers_controller =
       std::make_unique<MockPopupTimersController>(message_center(), closure());
   popup_timers_controller->StartTimer("test", base::TimeDelta::Max());
-  popup_timers_controller->StartTimer("test2",
-                                      base::TimeDelta::FromMilliseconds(1));
+  popup_timers_controller->StartTimer("test2", base::Milliseconds(1));
   popup_timers_controller->StartTimer("test3", base::TimeDelta::Max());
   popup_timers_controller->PauseAll();
   popup_timers_controller->StartAll();
@@ -503,7 +498,7 @@
 
   // Fast forward the |task_runner| by one second less than the auto-close timer
   // frequency for Web Notifications. (As set by the |notifier_id|.)
-  task_runner->FastForwardBy(base::TimeDelta::FromSeconds(dismiss_time - 1));
+  task_runner->FastForwardBy(base::Seconds(dismiss_time - 1));
   ASSERT_EQ(popup_timers_controller->timer_finished(), 0);
 
   // Trigger a replacement of the notification in the timer controller.
@@ -511,12 +506,12 @@
 
   // Fast forward the |task_runner| by one second less than the auto-close timer
   // frequency for Web Notifications again. It should have been reset.
-  task_runner->FastForwardBy(base::TimeDelta::FromSeconds(dismiss_time - 1));
+  task_runner->FastForwardBy(base::Seconds(dismiss_time - 1));
   ASSERT_EQ(popup_timers_controller->timer_finished(), 0);
 
   // Now fast forward the |task_runner| by two seconds (to avoid flakiness),
   // after which the timer should have fired.
-  task_runner->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  task_runner->FastForwardBy(base::Seconds(2));
   ASSERT_EQ(popup_timers_controller->timer_finished(), 1);
 
   base::CurrentThread::Get()->SetTaskRunner(old_task_runner);
diff --git a/ui/message_center/notification_list_unittest.cc b/ui/message_center/notification_list_unittest.cc
index 058a3a0..b54f3a6 100644
--- a/ui/message_center/notification_list_unittest.cc
+++ b/ui/message_center/notification_list_unittest.cc
@@ -568,12 +568,12 @@
   optional.priority = 2;
   std::string max_id = AddNotification(optional);
 
-  now += base::TimeDelta::FromSeconds(1);
+  now += base::Seconds(1);
   optional.timestamp = now;
   optional.priority = 1;
   std::string high_id = AddNotification(optional);
 
-  now += base::TimeDelta::FromSeconds(1);
+  now += base::Seconds(1);
   optional.timestamp = now;
   optional.priority = 0;
   std::string default_id = AddNotification(optional);
diff --git a/ui/message_center/popup_timers_controller.cc b/ui/message_center/popup_timers_controller.cc
index c660112..501d70d 100644
--- a/ui/message_center/popup_timers_controller.cc
+++ b/ui/message_center/popup_timers_controller.cc
@@ -95,10 +95,9 @@
 
 base::TimeDelta PopupTimersController::GetTimeoutForNotification(
     Notification* notification) {
-  return base::TimeDelta::FromSeconds(
-      UseHighPriorityDelay(notification)
-          ? notification_timeout_high_priority_seconds_
-          : notification_timeout_default_seconds_);
+  return base::Seconds(UseHighPriorityDelay(notification)
+                           ? notification_timeout_high_priority_seconds_
+                           : notification_timeout_default_seconds_);
 }
 
 int PopupTimersController::GetNotificationTimeoutDefault() {
diff --git a/ui/message_center/views/message_popup_collection.cc b/ui/message_center/views/message_popup_collection.cc
index aa82e63..086e1a4b 100644
--- a/ui/message_center/views/message_popup_collection.cc
+++ b/ui/message_center/views/message_popup_collection.cc
@@ -26,15 +26,13 @@
 namespace {
 
 // Animation duration for FADE_IN and FADE_OUT.
-constexpr base::TimeDelta kFadeInFadeOutDuration =
-    base::TimeDelta::FromMilliseconds(200);
+constexpr base::TimeDelta kFadeInFadeOutDuration = base::Milliseconds(200);
 
 // Animation duration for MOVE_DOWN.
-constexpr base::TimeDelta kMoveDownDuration =
-    base::TimeDelta::FromMilliseconds(120);
+constexpr base::TimeDelta kMoveDownDuration = base::Milliseconds(120);
 
 // Time to wait until we reset |recently_closed_by_user_|.
-constexpr base::TimeDelta kWaitForReset = base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kWaitForReset = base::Seconds(10);
 
 }  // namespace
 
diff --git a/ui/message_center/views/notification_header_view_unittest.cc b/ui/message_center/views/notification_header_view_unittest.cc
index 84476a9..c62a477 100644
--- a/ui/message_center/views/notification_header_view_unittest.cc
+++ b/ui/message_center/views/notification_header_view_unittest.cc
@@ -89,28 +89,27 @@
   auto* timestamp_view =
       notification_header_view_->timestamp_view_for_testing();
 
-  notification_header_view_->SetTimestamp(base::Time::Now() +
-                                          base::TimeDelta::FromHours(3) +
-                                          base::TimeDelta::FromMinutes(30));
+  notification_header_view_->SetTimestamp(base::Time::Now() + base::Hours(3) +
+                                          base::Minutes(30));
   EXPECT_EQ(l10n_util::GetPluralStringFUTF16(
                 IDS_MESSAGE_NOTIFICATION_DURATION_HOURS_SHORTEST_FUTURE, 3),
             timestamp_view->GetText());
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromHours(3));
+  task_environment()->FastForwardBy(base::Hours(3));
   task_environment()->RunUntilIdle();
 
   EXPECT_EQ(l10n_util::GetPluralStringFUTF16(
                 IDS_MESSAGE_NOTIFICATION_DURATION_MINUTES_SHORTEST_FUTURE, 30),
             timestamp_view->GetText());
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromMinutes(30));
+  task_environment()->FastForwardBy(base::Minutes(30));
   task_environment()->RunUntilIdle();
 
   EXPECT_EQ(
       l10n_util::GetStringUTF16(IDS_MESSAGE_NOTIFICATION_NOW_STRING_SHORTEST),
       timestamp_view->GetText());
 
-  task_environment()->FastForwardBy(base::TimeDelta::FromDays(2));
+  task_environment()->FastForwardBy(base::Days(2));
   task_environment()->RunUntilIdle();
 
   EXPECT_EQ(l10n_util::GetPluralStringFUTF16(
diff --git a/ui/native_theme/overlay_scrollbar_constants_aura.h b/ui/native_theme/overlay_scrollbar_constants_aura.h
index b9408b5..88dedec 100644
--- a/ui/native_theme/overlay_scrollbar_constants_aura.h
+++ b/ui/native_theme/overlay_scrollbar_constants_aura.h
@@ -13,13 +13,12 @@
 constexpr int kOverlayScrollbarStrokeWidth = 1;
 constexpr int kOverlayScrollbarThumbWidthPressed = 10;
 
-constexpr base::TimeDelta kOverlayScrollbarFadeDelay =
-    base::TimeDelta::FromMilliseconds(500);
+constexpr base::TimeDelta kOverlayScrollbarFadeDelay = base::Milliseconds(500);
 constexpr base::TimeDelta kOverlayScrollbarFadeDuration =
-    base::TimeDelta::FromMilliseconds(200);
+    base::Milliseconds(200);
 // TODO(bokan): This is still undetermined. crbug.com/652520.
 constexpr base::TimeDelta kOverlayScrollbarThinningDuration =
-    base::TimeDelta::FromMilliseconds(200);
+    base::Milliseconds(200);
 
 }  // namespace ui
 
diff --git a/ui/ozone/demo/software_renderer.cc b/ui/ozone/demo/software_renderer.cc
index d3c0c323..9c3163b 100644
--- a/ui/ozone/demo/software_renderer.cc
+++ b/ui/ozone/demo/software_renderer.cc
@@ -31,8 +31,7 @@
     const gfx::Size& size)
     : RendererBase(widget, size),
       window_surface_(std::move(window_surface)),
-      vsync_period_(
-          base::TimeDelta::FromMilliseconds(kFrameDelayMilliseconds)) {}
+      vsync_period_(base::Milliseconds(kFrameDelayMilliseconds)) {}
 
 SoftwareRenderer::~SoftwareRenderer() = default;
 
diff --git a/ui/ozone/platform/cast/gl_surface_cast.cc b/ui/ozone/platform/cast/gl_surface_cast.cc
index 37d13eba..4fffa687 100644
--- a/ui/ozone/platform/cast/gl_surface_cast.cc
+++ b/ui/ozone/platform/cast/gl_surface_cast.cc
@@ -22,7 +22,7 @@
 // or make it dynamic that throttles framerate if device is overheating.
 base::TimeDelta GetVSyncInterval() {
   if (chromecast::IsFeatureEnabled(chromecast::kTripleBuffer720)) {
-    return base::TimeDelta::FromSeconds(1) / 59.94;
+    return base::Seconds(1) / 59.94;
   }
 
   base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
@@ -31,11 +31,11 @@
         command_line->GetSwitchValueASCII(switches::kVSyncInterval);
     double interval = 0;
     if (base::StringToDouble(interval_str, &interval) && interval > 0) {
-      return base::TimeDelta::FromSeconds(1) / interval;
+      return base::Seconds(1) / interval;
     }
   }
 
-  return base::TimeDelta::FromSeconds(2) / 59.94;
+  return base::Seconds(2) / 59.94;
 }
 
 }  // namespace
diff --git a/ui/ozone/platform/drm/gpu/drm_device.cc b/ui/ozone/platform/drm/gpu/drm_device.cc
index be38b264..94df670 100644
--- a/ui/ozone/platform/drm/gpu/drm_device.cc
+++ b/ui/ozone/platform/drm/gpu/drm_device.cc
@@ -105,10 +105,10 @@
         DCHECK_EQ(base::TimeTicks::GetClock(),
                   base::TimeTicks::Clock::LINUX_CLOCK_MONOTONIC);
         const base::TimeTicks timestamp =
-            base::TimeTicks() + base::TimeDelta::FromMicroseconds(
-                                    static_cast<int64_t>(vblank.tv_sec) *
-                                        base::Time::kMicrosecondsPerSecond +
-                                    vblank.tv_usec);
+            base::TimeTicks() +
+            base::Microseconds(static_cast<int64_t>(vblank.tv_sec) *
+                                   base::Time::kMicrosecondsPerSecond +
+                               vblank.tv_usec);
         callback.Run(vblank.sequence, timestamp, vblank.user_data);
       } break;
       case DRM_EVENT_VBLANK:
diff --git a/ui/ozone/platform/drm/gpu/hardware_display_controller.cc b/ui/ozone/platform/drm/gpu/hardware_display_controller.cc
index 0abc1923..89866ecb 100644
--- a/ui/ozone/platform/drm/gpu/hardware_display_controller.cc
+++ b/ui/ozone/platform/drm/gpu/hardware_display_controller.cc
@@ -421,8 +421,7 @@
 base::TimeDelta HardwareDisplayController::GetRefreshInterval() const {
   // If there are multiple CRTCs they should all have the same refresh rate.
   float vrefresh = ModeRefreshRate(crtc_controllers_[0]->mode());
-  return vrefresh ? base::TimeDelta::FromSeconds(1) / vrefresh
-                  : base::TimeDelta();
+  return vrefresh ? base::Seconds(1) / vrefresh : base::TimeDelta();
 }
 
 base::TimeTicks HardwareDisplayController::GetTimeOfLastFlip() const {
diff --git a/ui/ozone/platform/drm/gpu/hardware_display_controller.h b/ui/ozone/platform/drm/gpu/hardware_display_controller.h
index 242c46b..10498841 100644
--- a/ui/ozone/platform/drm/gpu/hardware_display_controller.h
+++ b/ui/ozone/platform/drm/gpu/hardware_display_controller.h
@@ -33,8 +33,7 @@
 
 // The maximum amount of time we will wait for a new modeset attempt before we
 // crash the GPU process.
-constexpr base::TimeDelta kWaitForModesetTimeout =
-    base::TimeDelta::FromSeconds(15);
+constexpr base::TimeDelta kWaitForModesetTimeout = base::Seconds(15);
 
 class CrtcController;
 class DrmFramebuffer;
diff --git a/ui/ozone/platform/drm/gpu/hardware_display_controller_unittest.cc b/ui/ozone/platform/drm/gpu/hardware_display_controller_unittest.cc
index 9edf08c6..9908798 100644
--- a/ui/ozone/platform/drm/gpu/hardware_display_controller_unittest.cc
+++ b/ui/ozone/platform/drm/gpu/hardware_display_controller_unittest.cc
@@ -912,7 +912,7 @@
   EXPECT_EQ(0, successful_page_flips_count_);
 
   // Some time passes.
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1623));
+  task_environment_.FastForwardBy(base::Milliseconds(1623));
 
   // A modeset event occurs and prevents the GPU process from crashing.
   modeset_planes.clear();
diff --git a/ui/ozone/platform/scenic/scenic_window_canvas.cc b/ui/ozone/platform/scenic/scenic_window_canvas.cc
index 7f5f9edd..f8b9802a 100644
--- a/ui/ozone/platform/scenic/scenic_window_canvas.cc
+++ b/ui/ozone/platform/scenic/scenic_window_canvas.cc
@@ -18,8 +18,7 @@
 namespace ui {
 
 // How long we want to wait for release-fence from scenic for previous frames.
-constexpr base::TimeDelta kFrameReleaseTimeout =
-    base::TimeDelta::FromMilliseconds(500);
+constexpr base::TimeDelta kFrameReleaseTimeout = base::Milliseconds(500);
 
 ScenicWindowCanvas::Frame::Frame() = default;
 ScenicWindowCanvas::Frame::~Frame() = default;
diff --git a/ui/ozone/platform/wayland/host/org_gnome_mutter_idle_monitor.cc b/ui/ozone/platform/wayland/host/org_gnome_mutter_idle_monitor.cc
index 75dda521..39a9239 100644
--- a/ui/ozone/platform/wayland/host/org_gnome_mutter_idle_monitor.cc
+++ b/ui/ozone/platform/wayland/host/org_gnome_mutter_idle_monitor.cc
@@ -65,14 +65,14 @@
             base::BindOnce(&OrgGnomeMutterIdleMonitor::OnServiceHasOwner,
                            weak_factory_.GetWeakPtr()));
       }
-      return base::TimeDelta::FromSeconds(0);
+      return base::Seconds(0);
 
     case ServiceState::kInitializing:
-      return base::TimeDelta::FromSeconds(0);
+      return base::Seconds(0);
 
     case ServiceState::kWorking:
       if (idle_timestamp_.is_null())
-        return base::TimeDelta::FromSeconds(0);
+        return base::Seconds(0);
       return base::Time::Now() - idle_timestamp_;
 
     case ServiceState::kNotAvailable:
@@ -193,8 +193,7 @@
   }
 
   if (id == idle_watch_id_) {
-    idle_timestamp_ =
-        base::Time::Now() - base::TimeDelta::FromMilliseconds(kIdleThresholdMs);
+    idle_timestamp_ = base::Time::Now() - base::Milliseconds(kIdleThresholdMs);
     dbus::MethodCall call(kInterface, kMethodAddUserActiveWatch);
     proxy_->CallMethod(
         &call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
@@ -213,8 +212,7 @@
   uint64_t idletime;
   if (!reader.PopUint64(&idletime) || reader.HasMoreData())
     return false;
-  idle_timestamp_ =
-      base::Time::Now() - base::TimeDelta::FromMilliseconds(idletime);
+  idle_timestamp_ = base::Time::Now() - base::Milliseconds(idletime);
   return true;
 }
 
diff --git a/ui/ozone/platform/wayland/host/org_kde_kwin_idle.cc b/ui/ozone/platform/wayland/host/org_kde_kwin_idle.cc
index 7cff69b..4746aa7 100644
--- a/ui/ozone/platform/wayland/host/org_kde_kwin_idle.cc
+++ b/ui/ozone/platform/wayland/host/org_kde_kwin_idle.cc
@@ -100,7 +100,7 @@
 
 base::TimeDelta OrgKdeKwinIdle::Timeout::GetIdleTime() const {
   if (idle_timestamp_.is_null())
-    return base::TimeDelta::FromSeconds(0);
+    return base::Seconds(0);
   return base::Time::Now() - idle_timestamp_;
 }
 
@@ -110,7 +110,7 @@
     struct org_kde_kwin_idle_timeout* org_kde_kwin_idle_timeout) {
   auto* self = static_cast<OrgKdeKwinIdle::Timeout*>(data);
   self->idle_timestamp_ =
-      base::Time::Now() - base::TimeDelta::FromMicroseconds(kIdleThresholdMs);
+      base::Time::Now() - base::Microseconds(kIdleThresholdMs);
 }
 
 // static
diff --git a/ui/ozone/platform/wayland/host/wayland_buffer_manager_host.cc b/ui/ozone/platform/wayland/host/wayland_buffer_manager_host.cc
index 5a65cf3..ae5f13b 100644
--- a/ui/ozone/platform/wayland/host/wayland_buffer_manager_host.cc
+++ b/ui/ozone/platform/wayland/host/wayland_buffer_manager_host.cc
@@ -559,7 +559,7 @@
         wp_presentation_feedback,
         gfx::PresentationFeedback(self->connection_->ConvertPresentationTime(
                                       tv_sec_hi, tv_sec_lo, tv_nsec),
-                                  base::TimeDelta::FromNanoseconds(refresh),
+                                  base::Nanoseconds(refresh),
                                   GetPresentationKindFlags(flags)));
   }
 
diff --git a/ui/ozone/platform/wayland/host/wayland_connection.cc b/ui/ozone/platform/wayland/host/wayland_connection.cc
index cf7d6923..cd00153e 100644
--- a/ui/ozone/platform/wayland/host/wayland_connection.cc
+++ b/ui/ozone/platform/wayland/host/wayland_connection.cc
@@ -625,9 +625,8 @@
   // base::TimeTicks::Now() uses CLOCK_MONOTONIC, no need to convert clock
   // domain if wp_presentation also uses it.
   if (presentation_clk_id_ == CLOCK_MONOTONIC) {
-    return base::TimeTicks() +
-           base::TimeDelta::FromMicroseconds(
-               ConvertTimespecResultToMicros(tv_sec_hi, tv_sec_lo, tv_nsec));
+    return base::TimeTicks() + base::Microseconds(ConvertTimespecResultToMicros(
+                                   tv_sec_hi, tv_sec_lo, tv_nsec));
   }
 
   struct timespec presentation_now;
@@ -647,7 +646,7 @@
       ConvertTimespecResultToMicros(tv_sec_hi, tv_sec_lo, tv_nsec) -
       ConvertTimespecToMicros(presentation_now);
 
-  return now + base::TimeDelta::FromMicroseconds(delta_us);
+  return now + base::Microseconds(delta_us);
 }
 
 // static
diff --git a/ui/ozone/platform/wayland/host/wayland_cursor.cc b/ui/ozone/platform/wayland/host/wayland_cursor.cc
index 31256cc..28a10fc 100644
--- a/ui/ozone/platform/wayland/host/wayland_cursor.cc
+++ b/ui/ozone/platform/wayland/host/wayland_cursor.cc
@@ -134,9 +134,8 @@
   if (cursor_data_->image_count > 1 && cursor_image->delay > 0) {
     // If we have multiple frames, then we have animated cursor.  Schedule
     // sending the next frame.  See also the comment above.
-    animation_timer_.Start(
-        FROM_HERE, base::TimeDelta::FromMilliseconds(cursor_image->delay), this,
-        &WaylandCursor::SetPlatformShapeInternal);
+    animation_timer_.Start(FROM_HERE, base::Milliseconds(cursor_image->delay),
+                           this, &WaylandCursor::SetPlatformShapeInternal);
     ++current_image_index_;
   }
 }
diff --git a/ui/ozone/platform/wayland/host/wayland_event_source.cc b/ui/ozone/platform/wayland/host/wayland_event_source.cc
index 8dccdeeb..476c1ca0 100644
--- a/ui/ozone/platform/wayland/host/wayland_event_source.cc
+++ b/ui/ozone/platform/wayland/host/wayland_event_source.cc
@@ -490,7 +490,7 @@
     }
     if (frame.dx == 0 && frame.dy == 0)
       break;
-    if (dt + frame.dt > base::TimeDelta::FromMilliseconds(200))
+    if (dt + frame.dt > base::Milliseconds(200))
       break;
 
     dx += frame.dx;
diff --git a/ui/ozone/platform/wayland/host/wayland_keyboard.cc b/ui/ozone/platform/wayland/host/wayland_keyboard.cc
index b5453db..e1523db 100644
--- a/ui/ozone/platform/wayland/host/wayland_keyboard.cc
+++ b/ui/ozone/platform/wayland/host/wayland_keyboard.cc
@@ -206,8 +206,8 @@
   handler.SetAutoRepeatEnabled(rate != 0);
   if (handler.IsAutoRepeatEnabled()) {
     // The rate is in characters per second.
-    handler.SetAutoRepeatRate(base::TimeDelta::FromMilliseconds(delay),
-                              base::TimeDelta::FromSecondsD(1.0 / rate));
+    handler.SetAutoRepeatRate(base::Milliseconds(delay),
+                              base::Seconds(1.0 / rate));
   }
 }
 
diff --git a/ui/ozone/platform/wayland/host/wayland_keyboard_unittest.cc b/ui/ozone/platform/wayland/host/wayland_keyboard_unittest.cc
index ec8ef4f..3b08e97e 100644
--- a/ui/ozone/platform/wayland/host/wayland_keyboard_unittest.cc
+++ b/ui/ozone/platform/wayland/host/wayland_keyboard_unittest.cc
@@ -401,14 +401,13 @@
 
   // First key repeat event happens after |delay| milliseconds.
   EXPECT_CALL(delegate_, DispatchEvent(_)).WillOnce(check_repeat_event);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(delay));
+  task_environment_.FastForwardBy(base::Milliseconds(delay));
   SyncDisplay();
   Mock::VerifyAndClearExpectations(&delegate_);
 
   // The next key event happens after 1/|rate| seconds.
   EXPECT_CALL(delegate_, DispatchEvent(_)).WillOnce(check_repeat_event);
-  task_environment_.FastForwardBy(
-      base::TimeDelta::FromMilliseconds(1000 / rate));
+  task_environment_.FastForwardBy(base::Milliseconds(1000 / rate));
   SyncDisplay();
   Mock::VerifyAndClearExpectations(&delegate_);
 
@@ -445,7 +444,7 @@
     EXPECT_TRUE(event->flags() & EF_IS_REPEAT);
     EXPECT_EQ(KeyboardCode::VKEY_A, event->AsKeyEvent()->key_code());
   });
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(delay));
+  task_environment_.FastForwardBy(base::Milliseconds(delay));
   SyncDisplay();
   Mock::VerifyAndClearExpectations(&delegate_);
 
@@ -455,8 +454,7 @@
 
   // After that, no key repeat events are expected.
   EXPECT_CALL(delegate_, DispatchEvent(NotNull())).Times(0);
-  task_environment_.FastForwardBy(
-      base::TimeDelta::FromMilliseconds(1000 / rate));
+  task_environment_.FastForwardBy(base::Milliseconds(1000 / rate));
   Sync();
   Mock::VerifyAndClearExpectations(&delegate_);
 
diff --git a/ui/ozone/platform/wayland/host/wayland_pointer_unittest.cc b/ui/ozone/platform/wayland/host/wayland_pointer_unittest.cc
index 30428f6..258c878e 100644
--- a/ui/ozone/platform/wayland/host/wayland_pointer_unittest.cc
+++ b/ui/ozone/platform/wayland/host/wayland_pointer_unittest.cc
@@ -216,24 +216,24 @@
 
   SendAxisEvents(pointer_->resource(), ++time, WL_POINTER_AXIS_SOURCE_WHEEL,
                  WL_POINTER_AXIS_VERTICAL_SCROLL, rand() % 20);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_environment_.FastForwardBy(base::Milliseconds(1));
   Sync();
 
   SendAxisEvents(pointer_->resource(), ++time, WL_POINTER_AXIS_SOURCE_FINGER,
                  WL_POINTER_AXIS_VERTICAL_SCROLL, rand() % 20);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_environment_.FastForwardBy(base::Milliseconds(1));
   Sync();
 
   SendAxisEvents(pointer_->resource(), ++time,
                  WL_POINTER_AXIS_SOURCE_CONTINUOUS,
                  WL_POINTER_AXIS_VERTICAL_SCROLL, rand() % 20);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_environment_.FastForwardBy(base::Milliseconds(1));
   Sync();
 
   SendAxisEvents(pointer_->resource(), ++time,
                  WL_POINTER_AXIS_SOURCE_WHEEL_TILT,
                  WL_POINTER_AXIS_VERTICAL_SCROLL, rand() % 20);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_environment_.FastForwardBy(base::Milliseconds(1));
   Sync();
 
   ASSERT_TRUE(event1);
@@ -387,18 +387,18 @@
   // 1st axis event.
   SendAxisEvents(pointer_->resource(), ++time, WL_POINTER_AXIS_SOURCE_FINGER,
                  WL_POINTER_AXIS_VERTICAL_SCROLL, 10);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_environment_.FastForwardBy(base::Milliseconds(1));
   Sync();
 
   // 2nd axis event.
   SendAxisEvents(pointer_->resource(), ++time, WL_POINTER_AXIS_SOURCE_FINGER,
                  WL_POINTER_AXIS_VERTICAL_SCROLL, 10);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_environment_.FastForwardBy(base::Milliseconds(1));
   Sync();
 
   // axis_stop event which should trigger fling scroll.
   SendAxisStopEvents(pointer_->resource(), ++time);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_environment_.FastForwardBy(base::Milliseconds(1));
   Sync();
 
   // Usual axis events should follow before the fling event.
@@ -441,18 +441,18 @@
   // 1st axis event.
   SendAxisEvents(pointer_->resource(), ++time, WL_POINTER_AXIS_SOURCE_FINGER,
                  WL_POINTER_AXIS_HORIZONTAL_SCROLL, 10);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_environment_.FastForwardBy(base::Milliseconds(1));
   Sync();
 
   // 2nd axis event.
   SendAxisEvents(pointer_->resource(), ++time, WL_POINTER_AXIS_SOURCE_FINGER,
                  WL_POINTER_AXIS_HORIZONTAL_SCROLL, 10);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_environment_.FastForwardBy(base::Milliseconds(1));
   Sync();
 
   // axis_stop event which should trigger fling scroll.
   SendAxisStopEvents(pointer_->resource(), ++time);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_environment_.FastForwardBy(base::Milliseconds(1));
   Sync();
 
   // Usual axis events should follow before the fling event.
@@ -496,25 +496,25 @@
   // 1st axis event.
   SendAxisEvents(pointer_->resource(), ++time, WL_POINTER_AXIS_SOURCE_FINGER,
                  WL_POINTER_AXIS_VERTICAL_SCROLL, 10);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_environment_.FastForwardBy(base::Milliseconds(1));
   Sync();
 
   // 2nd axis event.
   SendAxisEvents(pointer_->resource(), ++time, WL_POINTER_AXIS_SOURCE_FINGER,
                  WL_POINTER_AXIS_VERTICAL_SCROLL, 10);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_environment_.FastForwardBy(base::Milliseconds(1));
   Sync();
 
   // 3rd axis event, whose offset is 0, should make the following axis_stop
   // trigger fling cancel.
   SendAxisEvents(pointer_->resource(), ++time, WL_POINTER_AXIS_SOURCE_FINGER,
                  WL_POINTER_AXIS_VERTICAL_SCROLL, 0);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_environment_.FastForwardBy(base::Milliseconds(1));
   Sync();
 
   // axis_stop event which should trigger fling cancel.
   SendAxisStopEvents(pointer_->resource(), ++time);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_environment_.FastForwardBy(base::Milliseconds(1));
   Sync();
 
   // Usual axis events should follow before the fling event.
@@ -561,18 +561,18 @@
   // 1st axis event notifies scrolls both in vertical and horizontal.
   SendDiagonalAxisEvents(pointer_->resource(), ++time,
                          WL_POINTER_AXIS_SOURCE_FINGER, 20, 10);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_environment_.FastForwardBy(base::Milliseconds(1));
   Sync();
 
   // 2st axis event notifies scrolls both in vertical and horizontal.
   SendDiagonalAxisEvents(pointer_->resource(), ++time,
                          WL_POINTER_AXIS_SOURCE_FINGER, 20, 10);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_environment_.FastForwardBy(base::Milliseconds(1));
   Sync();
 
   // axis_stop event which should trigger fling scroll.
   SendAxisStopEvents(pointer_->resource(), ++time);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(1));
+  task_environment_.FastForwardBy(base::Milliseconds(1));
   Sync();
 
   // Usual axis events should follow before the fling event.
diff --git a/ui/ozone/platform/wayland/host/wayland_screen.cc b/ui/ozone/platform/wayland/host/wayland_screen.cc
index 022b970e..bac7711 100644
--- a/ui/ozone/platform/wayland/host/wayland_screen.cc
+++ b/ui/ozone/platform/wayland/host/wayland_screen.cc
@@ -334,7 +334,7 @@
   NOTIMPLEMENTED_LOG_ONCE();
 
   // No providers.  Return 0 which means the system never gets idle.
-  return base::TimeDelta::FromSeconds(0);
+  return base::Seconds(0);
 }
 
 void WaylandScreen::AddObserver(display::DisplayObserver* observer) {
diff --git a/ui/ozone/platform/wayland/host/wayland_serial_tracker_unittest.cc b/ui/ozone/platform/wayland/host/wayland_serial_tracker_unittest.cc
index afeaa65..7b6825e0 100644
--- a/ui/ozone/platform/wayland/host/wayland_serial_tracker_unittest.cc
+++ b/ui/ozone/platform/wayland/host/wayland_serial_tracker_unittest.cc
@@ -68,11 +68,11 @@
   absl::optional<Serial> serial;
 
   serial_tracker.UpdateSerial(SerialType::kMouseEnter, 1u);
-  env.FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  env.FastForwardBy(base::Milliseconds(100));
   serial_tracker.UpdateSerial(SerialType::kMousePress, 2u);
-  env.FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  env.FastForwardBy(base::Milliseconds(100));
   serial_tracker.UpdateSerial(SerialType::kTouchPress, 3u);
-  env.FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  env.FastForwardBy(base::Milliseconds(100));
   serial_tracker.UpdateSerial(SerialType::kKeyPress, 4u);
 
   serial = serial_tracker.GetSerial(
diff --git a/ui/ozone/platform/wayland/host/wayland_touch.cc b/ui/ozone/platform/wayland/host/wayland_touch.cc
index 6a03179a..77629d7 100644
--- a/ui/ozone/platform/wayland/host/wayland_touch.cc
+++ b/ui/ozone/platform/wayland/host/wayland_touch.cc
@@ -48,8 +48,7 @@
 
   WaylandWindow* window = wl::RootWindowFromWlSurface(surface);
   gfx::PointF location(wl_fixed_to_double(x), wl_fixed_to_double(y));
-  base::TimeTicks timestamp =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(time);
+  base::TimeTicks timestamp = base::TimeTicks() + base::Milliseconds(time);
   touch->delegate_->OnTouchPressEvent(window, location, timestamp, id);
 }
 
@@ -61,8 +60,7 @@
   WaylandTouch* touch = static_cast<WaylandTouch*>(data);
   DCHECK(touch);
 
-  base::TimeTicks timestamp =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(time);
+  base::TimeTicks timestamp = base::TimeTicks() + base::Milliseconds(time);
   touch->delegate_->OnTouchReleaseEvent(timestamp, id);
 
   // Reset kTouchPress serial only after dispatching touch-up event, so popups
@@ -82,8 +80,7 @@
   DCHECK(touch);
 
   gfx::PointF location(wl_fixed_to_double(x), wl_fixed_to_double(y));
-  base::TimeTicks timestamp =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(time);
+  base::TimeTicks timestamp = base::TimeTicks() + base::Milliseconds(time);
   touch->delegate_->OnTouchMotionEvent(location, timestamp, id);
 }
 
diff --git a/ui/ozone/platform/wayland/host/wayland_zwp_pointer_gestures.cc b/ui/ozone/platform/wayland/host/wayland_zwp_pointer_gestures.cc
index 6f86447f..5d96c89 100644
--- a/ui/ozone/platform/wayland/host/wayland_zwp_pointer_gestures.cc
+++ b/ui/ozone/platform/wayland/host/wayland_zwp_pointer_gestures.cc
@@ -87,8 +87,7 @@
     uint32_t fingers) {
   auto* thiz = static_cast<WaylandZwpPointerGestures*>(data);
 
-  base::TimeTicks timestamp =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(time);
+  base::TimeTicks timestamp = base::TimeTicks() + base::Milliseconds(time);
 
   thiz->delegate_->OnPinchEvent(ET_GESTURE_PINCH_BEGIN,
                                 gfx::Vector2dF() /*delta*/, timestamp,
@@ -106,8 +105,7 @@
     wl_fixed_t rotation) {
   auto* thiz = static_cast<WaylandZwpPointerGestures*>(data);
 
-  base::TimeTicks timestamp =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(time);
+  base::TimeTicks timestamp = base::TimeTicks() + base::Milliseconds(time);
 
   gfx::Vector2dF delta = {static_cast<float>(wl_fixed_to_double(dx)),
                           static_cast<float>(wl_fixed_to_double(dy))};
@@ -123,8 +121,7 @@
     int32_t cancelled) {
   auto* thiz = static_cast<WaylandZwpPointerGestures*>(data);
 
-  base::TimeTicks timestamp =
-      base::TimeTicks() + base::TimeDelta::FromMilliseconds(time);
+  base::TimeTicks timestamp = base::TimeTicks() + base::Milliseconds(time);
 
   thiz->delegate_->OnPinchEvent(ET_GESTURE_PINCH_END,
                                 gfx::Vector2dF() /*delta*/, timestamp,
diff --git a/ui/ozone/platform/x11/x11_screen_ozone.cc b/ui/ozone/platform/x11/x11_screen_ozone.cc
index 7ee253c..7ff156b 100644
--- a/ui/ozone/platform/x11/x11_screen_ozone.cc
+++ b/ui/ozone/platform/x11/x11_screen_ozone.cc
@@ -125,7 +125,7 @@
 
 base::TimeDelta X11ScreenOzone::CalculateIdleTime() const {
   IdleQueryX11 idle_query;
-  return base::TimeDelta::FromSeconds(idle_query.IdleTime());
+  return base::Seconds(idle_query.IdleTime());
 }
 
 void X11ScreenOzone::AddObserver(display::DisplayObserver* observer) {
diff --git a/ui/ozone/public/platform_screen.cc b/ui/ozone/public/platform_screen.cc
index eae7351c..a5fa843 100644
--- a/ui/ozone/public/platform_screen.cc
+++ b/ui/ozone/public/platform_screen.cc
@@ -35,7 +35,7 @@
 
 base::TimeDelta PlatformScreen::CalculateIdleTime() const {
   NOTIMPLEMENTED_LOG_ONCE();
-  return base::TimeDelta::FromSeconds(0);
+  return base::Seconds(0);
 }
 
 std::vector<base::Value> PlatformScreen::GetGpuExtraInfo(
diff --git a/ui/platform_window/x11/test/events_x_unittest.cc b/ui/platform_window/x11/test/events_x_unittest.cc
index 1bb87036..2363d011 100644
--- a/ui/platform_window/x11/test/events_x_unittest.cc
+++ b/ui/platform_window/x11/test/events_x_unittest.cc
@@ -222,8 +222,8 @@
   x11::Event event;
   gfx::Point location(5, 10);
 
-  base::TimeDelta time_stamp = base::TimeTicks::Now().since_origin() -
-                               base::TimeDelta::FromMilliseconds(10);
+  base::TimeDelta time_stamp =
+      base::TimeTicks::Now().since_origin() - base::Milliseconds(10);
   for (int i = 1; i <= 3; ++i) {
     InitButtonEvent(&event, true, location, 1, {});
     {
@@ -242,7 +242,7 @@
       EXPECT_EQ(ui::ET_MOUSE_RELEASED, mouseev->type());
       EXPECT_EQ(i, mouseev->GetClickCount());
     }
-    time_stamp += base::TimeDelta::FromMilliseconds(1);
+    time_stamp += base::Milliseconds(1);
   }
 }
 
@@ -518,7 +518,7 @@
 
 // Returns a fake TimeTicks based on the given millisecond offset.
 base::TimeTicks TimeTicksFromMillis(int64_t millis) {
-  return base::TimeTicks() + base::TimeDelta::FromMilliseconds(millis);
+  return base::TimeTicks() + base::Milliseconds(millis);
 }
 
 }  // namespace
diff --git a/ui/shell_dialogs/select_file_dialog_win_unittest.cc b/ui/shell_dialogs/select_file_dialog_win_unittest.cc
index d4bcc94..daa71efd 100644
--- a/ui/shell_dialogs/select_file_dialog_win_unittest.cc
+++ b/ui/shell_dialogs/select_file_dialog_win_unittest.cc
@@ -50,7 +50,7 @@
 
   HWND result = nullptr;
   base::TimeDelta max_wait_time = TestTimeouts::action_timeout();
-  base::TimeDelta retry_interval = base::TimeDelta::FromMilliseconds(20);
+  base::TimeDelta retry_interval = base::Milliseconds(20);
   while (!result && (max_wait_time.InMilliseconds() > 0)) {
     result = ::FindWindow(kDialogClassName, dialog_title.c_str());
     base::PlatformThread::Sleep(retry_interval);
@@ -104,7 +104,7 @@
   // whose owner is the file dialog.
   EnumWindowsParam param = {owner, nullptr};
   base::TimeDelta max_wait_time = TestTimeouts::action_timeout();
-  base::TimeDelta retry_interval = base::TimeDelta::FromMilliseconds(20);
+  base::TimeDelta retry_interval = base::Milliseconds(20);
   while (!param.result && (max_wait_time.InMilliseconds() > 0)) {
     ::EnumWindows(&EnumWindowsCallback, reinterpret_cast<LPARAM>(&param));
     base::PlatformThread::Sleep(retry_interval);
@@ -134,7 +134,7 @@
   // Make sure the window is visible first or the WM_COMMAND may not have any
   // effect.
   base::TimeDelta max_wait_time = TestTimeouts::action_timeout();
-  base::TimeDelta retry_interval = base::TimeDelta::FromMilliseconds(20);
+  base::TimeDelta retry_interval = base::Milliseconds(20);
   while (!::IsWindowVisible(window) && (max_wait_time.InMilliseconds() > 0)) {
     base::PlatformThread::Sleep(retry_interval);
     max_wait_time -= retry_interval;
diff --git a/ui/snapshot/screenshot_grabber.cc b/ui/snapshot/screenshot_grabber.cc
index 3f57cc1e..0513976 100644
--- a/ui/snapshot/screenshot_grabber.cc
+++ b/ui/snapshot/screenshot_grabber.cc
@@ -99,7 +99,7 @@
 bool ScreenshotGrabber::CanTakeScreenshot() {
   return last_screenshot_timestamp_.is_null() ||
          base::TimeTicks::Now() - last_screenshot_timestamp_ >
-             base::TimeDelta::FromMilliseconds(kScreenshotMinimumIntervalInMS);
+             base::Milliseconds(kScreenshotMinimumIntervalInMS);
 }
 
 void ScreenshotGrabber::GrabWindowSnapshotAsyncCallback(
diff --git a/ui/touch_selection/longpress_drag_selector.cc b/ui/touch_selection/longpress_drag_selector.cc
index df96825..46096e3 100644
--- a/ui/touch_selection/longpress_drag_selector.cc
+++ b/ui/touch_selection/longpress_drag_selector.cc
@@ -120,7 +120,7 @@
   if (state_ == LONGPRESS_PENDING &&
       // Ensure the down event occurs *before* the longpress event. Use a
       // small time epsilon to account for floating point time conversion.
-      (touch_down_time_ < event_time + base::TimeDelta::FromMicroseconds(10)) &&
+      (touch_down_time_ < event_time + base::Microseconds(10)) &&
       client_->IsWithinTapSlop(touch_down_position_ - position)) {
     SetState(SELECTION_PENDING);
   }
diff --git a/ui/touch_selection/longpress_drag_selector_unittest.cc b/ui/touch_selection/longpress_drag_selector_unittest.cc
index badb2697..1898568 100644
--- a/ui/touch_selection/longpress_drag_selector_unittest.cc
+++ b/ui/touch_selection/longpress_drag_selector_unittest.cc
@@ -221,8 +221,8 @@
 
   // Activate a longpress-triggered selection, but at a time before the current
   // touch down event.
-  selector.OnLongPressEvent(
-      event.GetEventTime() - base::TimeDelta::FromSeconds(1), gfx::PointF());
+  selector.OnLongPressEvent(event.GetEventTime() - base::Seconds(1),
+                            gfx::PointF());
   selector.OnSelectionActivated();
   EXPECT_FALSE(GetAndResetActiveStateChanged());
   EXPECT_FALSE(IsDragging());
diff --git a/ui/touch_selection/touch_handle.cc b/ui/touch_selection/touch_handle.cc
index e027d5b..ee3269e1 100644
--- a/ui/touch_selection/touch_handle.cc
+++ b/ui/touch_selection/touch_handle.cc
@@ -17,7 +17,7 @@
 namespace {
 
 // Maximum duration of a fade sequence.
-constexpr auto kFadeDuration = base::TimeDelta::FromMilliseconds(200);
+constexpr auto kFadeDuration = base::Milliseconds(200);
 
 // Maximum amount of travel for a fade sequence. This avoids handle "ghosting"
 // when the handle is moving rapidly while the fade is active.
diff --git a/ui/touch_selection/touch_handle_unittest.cc b/ui/touch_selection/touch_handle_unittest.cc
index 2f951cc..5c4fe9a 100644
--- a/ui/touch_selection/touch_handle_unittest.cc
+++ b/ui/touch_selection/touch_handle_unittest.cc
@@ -104,7 +104,7 @@
   }
 
   base::TimeDelta GetMaxTapDuration() const override {
-    return base::TimeDelta::FromMilliseconds(kDefaultTapDurationMs);
+    return base::Milliseconds(kDefaultTapDurationMs);
   }
 
   bool IsAdaptiveHandleOrientationEnabled() const override {
@@ -116,7 +116,7 @@
     needs_animate_ = false;
     base::TimeTicks now = base::TimeTicks::Now();
     while (handle.Animate(now))
-      now += base::TimeDelta::FromMilliseconds(16);
+      now += base::Milliseconds(16);
   }
 
   bool GetAndResetHandleDragged() {
@@ -296,7 +296,7 @@
   base::TimeTicks now = base::TimeTicks::Now();
   while (handle.Animate(now)) {
     EXPECT_EQ(old_focus_bottom - koffset_vector, drawable().rect.origin());
-    now += base::TimeDelta::FromMilliseconds(16);
+    now += base::Milliseconds(16);
   }
 
   // Even after the animation terminates, the new position will not be pushed.
@@ -532,7 +532,7 @@
   // Action::CANCEL shouldn't trigger a tap.
   MockMotionEvent event(MockMotionEvent::Action::DOWN, event_time, 0, 0);
   EXPECT_TRUE(handle.WillHandleTouchEvent(event));
-  event_time += base::TimeDelta::FromMilliseconds(50);
+  event_time += base::Milliseconds(50);
   event = MockMotionEvent(MockMotionEvent::Action::CANCEL, event_time, 0, 0);
   EXPECT_TRUE(handle.WillHandleTouchEvent(event));
   EXPECT_FALSE(GetAndResetHandleTapped());
diff --git a/ui/touch_selection/touch_selection_controller.cc b/ui/touch_selection/touch_selection_controller.cc
index 984501c..769b8319 100644
--- a/ui/touch_selection/touch_selection_controller.cc
+++ b/ui/touch_selection/touch_selection_controller.cc
@@ -46,7 +46,7 @@
 }  // namespace
 
 TouchSelectionController::Config::Config()
-    : max_tap_duration(base::TimeDelta::FromMilliseconds(300)),
+    : max_tap_duration(base::Milliseconds(300)),
       tap_slop(8),
       enable_adaptive_handle_orientation(false),
       enable_longpress_drag_selection(false),
@@ -703,10 +703,8 @@
   if (selection_handle_dragged_) {
     base::TimeDelta duration = base::TimeTicks::Now() - selection_start_time_;
     UMA_HISTOGRAM_CUSTOM_TIMES("Event.TouchSelection.WasDraggedDuration",
-                               duration,
-                               base::TimeDelta::FromMilliseconds(500),
-                               base::TimeDelta::FromSeconds(60),
-                               60);
+                               duration, base::Milliseconds(500),
+                               base::Seconds(60), 60);
   }
 }
 
diff --git a/ui/touch_selection/touch_selection_controller_unittest.cc b/ui/touch_selection/touch_selection_controller_unittest.cc
index ac0d6006..eb23b3f 100644
--- a/ui/touch_selection/touch_selection_controller_unittest.cc
+++ b/ui/touch_selection/touch_selection_controller_unittest.cc
@@ -202,7 +202,7 @@
     base::TimeTicks now = base::TimeTicks::Now();
     while (needs_animate_) {
       needs_animate_ = controller_->Animate(now);
-      now += base::TimeDelta::FromMilliseconds(16);
+      now += base::Milliseconds(16);
     }
   }
 
@@ -255,8 +255,7 @@
     // |enable_longpress_drag_selection| is set to false by default, and should
     // be overriden for explicit testing.
     TouchSelectionController::Config config;
-    config.max_tap_duration =
-        base::TimeDelta::FromMilliseconds(kDefaultTapTimeoutMs);
+    config.max_tap_duration = base::Milliseconds(kDefaultTapTimeoutMs);
     config.tap_slop = kDefaulTapSlop;
     config.enable_longpress_drag_selection = false;
     return config;
@@ -478,7 +477,7 @@
   event = MockMotionEvent(MockMotionEvent::Action::DOWN, event_time, 0, 0);
   EXPECT_TRUE(controller().WillHandleTouchEvent(event));
   event = MockMotionEvent(MockMotionEvent::Action::UP,
-                          event_time + base::TimeDelta::FromSeconds(1), 0, 0);
+                          event_time + base::Seconds(1), 0, 0);
   EXPECT_TRUE(controller().WillHandleTouchEvent(event));
   EXPECT_THAT(GetAndResetEvents(), ElementsAre(INSERTION_HANDLE_DRAG_STARTED,
                                                INSERTION_HANDLE_DRAG_STOPPED));
@@ -1260,7 +1259,7 @@
   EXPECT_EQ(test_controller.GetEndHandleOrientation(),
             TouchHandleOrientation::RIGHT);
 
-  event_time += base::TimeDelta::FromMilliseconds(2 * kDefaultTapTimeoutMs);
+  event_time += base::Milliseconds(2 * kDefaultTapTimeoutMs);
   event = MockMotionEvent(MockMotionEvent::Action::UP, event_time,
                           offset_rect.x(), offset_rect.bottom());
   EXPECT_TRUE(controller().WillHandleTouchEvent(event));
@@ -1284,7 +1283,7 @@
   EXPECT_EQ(test_controller.GetEndHandleOrientation(),
             TouchHandleOrientation::LEFT);
 
-  event_time += base::TimeDelta::FromMilliseconds(2 * kDefaultTapTimeoutMs);
+  event_time += base::Milliseconds(2 * kDefaultTapTimeoutMs);
   event = MockMotionEvent(MockMotionEvent::Action::UP, event_time,
                           offset_rect.x(), offset_rect.bottom());
   EXPECT_TRUE(controller().WillHandleTouchEvent(event));
@@ -1308,7 +1307,7 @@
   EXPECT_EQ(test_controller.GetEndHandleOrientation(),
             TouchHandleOrientation::RIGHT);
 
-  event_time += base::TimeDelta::FromMilliseconds(2 * kDefaultTapTimeoutMs);
+  event_time += base::Milliseconds(2 * kDefaultTapTimeoutMs);
   event = MockMotionEvent(MockMotionEvent::Action::UP, event_time,
                           offset_rect.x(), offset_rect.bottom());
   EXPECT_TRUE(controller().WillHandleTouchEvent(event));
@@ -1332,7 +1331,7 @@
   EXPECT_EQ(test_controller.GetEndHandleOrientation(),
             TouchHandleOrientation::RIGHT);
 
-  event_time += base::TimeDelta::FromMilliseconds(2 * kDefaultTapTimeoutMs);
+  event_time += base::Milliseconds(2 * kDefaultTapTimeoutMs);
   event = MockMotionEvent(MockMotionEvent::Action::UP, event_time,
                           offset_rect.x(), offset_rect.bottom());
   EXPECT_TRUE(controller().WillHandleTouchEvent(event));
@@ -1381,7 +1380,7 @@
             TouchHandleOrientation::RIGHT);
 
   // Release.
-  event_time += base::TimeDelta::FromMilliseconds(2 * kDefaultTapTimeoutMs);
+  event_time += base::Milliseconds(2 * kDefaultTapTimeoutMs);
   event = MockMotionEvent(MockMotionEvent::Action::UP, event_time,
                           offset_rect.x(), offset_rect.bottom());
   EXPECT_TRUE(controller().WillHandleTouchEvent(event));
@@ -1408,7 +1407,7 @@
             TouchHandleOrientation::LEFT);
 
   // Release.
-  event_time += base::TimeDelta::FromMilliseconds(2 * kDefaultTapTimeoutMs);
+  event_time += base::Milliseconds(2 * kDefaultTapTimeoutMs);
   event = MockMotionEvent(MockMotionEvent::Action::UP, event_time,
                           offset_rect.x(), offset_rect.bottom());
   EXPECT_TRUE(controller().WillHandleTouchEvent(event));
@@ -1456,7 +1455,7 @@
   // Don't follow the y-coordinate change.
   EXPECT_EQ(gfx::PointF(11.f, 6.f), GetLastDragUpdatePosition());
 
-  event_time += base::TimeDelta::FromMilliseconds(2 * kDefaultTapTimeoutMs);
+  event_time += base::Milliseconds(2 * kDefaultTapTimeoutMs);
   event = MockMotionEvent(MockMotionEvent::Action::UP, event_time, 0, 0);
   EXPECT_TRUE(controller().WillHandleTouchEvent(event));
   EXPECT_THAT(GetAndResetEvents(), ElementsAre(INSERTION_HANDLE_DRAG_STOPPED));
@@ -1493,7 +1492,7 @@
   // Don't follow the y-coordinate change but only x-coordinate change.
   EXPECT_EQ(gfx::PointF(16.f, 5.f), GetLastDragUpdatePosition());
 
-  event_time += base::TimeDelta::FromMilliseconds(2 * kDefaultTapTimeoutMs);
+  event_time += base::Milliseconds(2 * kDefaultTapTimeoutMs);
   event = MockMotionEvent(MockMotionEvent::Action::UP, event_time, 15, 5);
   EXPECT_TRUE(controller().WillHandleTouchEvent(event));
   EXPECT_THAT(GetAndResetEvents(), ElementsAre(SELECTION_HANDLE_DRAG_STOPPED));
@@ -1513,7 +1512,7 @@
   EXPECT_THAT(GetAndResetEvents(), ElementsAre(SELECTION_HANDLES_MOVED));
   EXPECT_EQ(gfx::PointF(45.f, 5.f), GetLastDragUpdatePosition());
 
-  event_time += base::TimeDelta::FromMilliseconds(2 * kDefaultTapTimeoutMs);
+  event_time += base::Milliseconds(2 * kDefaultTapTimeoutMs);
   event = MockMotionEvent(MockMotionEvent::Action::UP, event_time, 45, 5);
   EXPECT_TRUE(controller().WillHandleTouchEvent(event));
   EXPECT_THAT(GetAndResetEvents(), ElementsAre(SELECTION_HANDLE_DRAG_STOPPED));
@@ -1612,7 +1611,7 @@
   EXPECT_TRUE(controller().WillHandleTouchEvent(event));
   EXPECT_EQ(0.f, test_controller.GetInsertionHandleAlpha());
 
-  event_time += base::TimeDelta::FromMilliseconds(2 * kDefaultTapTimeoutMs);
+  event_time += base::Milliseconds(2 * kDefaultTapTimeoutMs);
   // UP will reset the alpha to visible.
   event = MockMotionEvent(MockMotionEvent::Action::UP, event_time, 0, 0);
   EXPECT_TRUE(controller().WillHandleTouchEvent(event));
@@ -1652,7 +1651,7 @@
   EXPECT_EQ(1.f, test_controller.GetStartAlpha());
   EXPECT_EQ(1.f, test_controller.GetEndAlpha());
 
-  event_time += base::TimeDelta::FromMilliseconds(2 * kDefaultTapTimeoutMs);
+  event_time += base::Milliseconds(2 * kDefaultTapTimeoutMs);
   event = MockMotionEvent(MockMotionEvent::Action::UP, event_time, 50, 5);
   EXPECT_TRUE(controller().WillHandleTouchEvent(event));
   EXPECT_EQ(1.f, test_controller.GetStartAlpha());
@@ -1686,7 +1685,7 @@
   EXPECT_EQ(0.f, test_controller.GetStartAlpha());
   EXPECT_EQ(1.f, test_controller.GetEndAlpha());
 
-  event_time += base::TimeDelta::FromMilliseconds(2 * kDefaultTapTimeoutMs);
+  event_time += base::Milliseconds(2 * kDefaultTapTimeoutMs);
   // UP will reset alpha to be visible.
   event = MockMotionEvent(MockMotionEvent::Action::UP, event_time, 10, 5);
   EXPECT_TRUE(controller().WillHandleTouchEvent(event));
@@ -1705,7 +1704,7 @@
   EXPECT_EQ(1.f, test_controller.GetStartAlpha());
   EXPECT_EQ(0.f, test_controller.GetEndAlpha());
 
-  event_time += base::TimeDelta::FromMilliseconds(2 * kDefaultTapTimeoutMs);
+  event_time += base::Milliseconds(2 * kDefaultTapTimeoutMs);
   // UP will reset alpha to be visible.
   event = MockMotionEvent(MockMotionEvent::Action::UP, event_time, 50, 5);
   EXPECT_TRUE(controller().WillHandleTouchEvent(event));
diff --git a/ui/views/animation/animation_builder_unittest.cc b/ui/views/animation/animation_builder_unittest.cc
index b2ef8c4e..be042508 100644
--- a/ui/views/animation/animation_builder_unittest.cc
+++ b/ui/views/animation/animation_builder_unittest.cc
@@ -102,7 +102,7 @@
       second_animating_view->delegate();
 
   gfx::RoundedCornersF rounded_corners(12.0f, 12.0f, 12.0f, 12.0f);
-  constexpr auto kDelay = base::TimeDelta::FromSeconds(3);
+  constexpr auto kDelay = base::Seconds(3);
 
   {
     AnimationBuilder()
@@ -147,7 +147,7 @@
       second_animating_view->delegate();
 
   gfx::RoundedCornersF rounded_corners(12.0f, 12.0f, 12.0f, 12.0f);
-  constexpr auto kDelay = base::TimeDelta::FromSeconds(3);
+  constexpr auto kDelay = base::Seconds(3);
 
   {
     AnimationBuilder()
@@ -192,7 +192,7 @@
       second_animating_view->delegate();
 
   gfx::RoundedCornersF rounded_corners(12.0f, 12.0f, 12.0f, 12.0f);
-  constexpr auto kDelay = base::TimeDelta::FromSeconds(3);
+  constexpr auto kDelay = base::Seconds(3);
 
   {
     AnimationBuilder()
@@ -237,7 +237,7 @@
       second_animating_view->delegate();
 
   gfx::RoundedCornersF rounded_corners(12.0f, 12.0f, 12.0f, 12.0f);
-  constexpr auto kDelay = base::TimeDelta::FromSeconds(3);
+  constexpr auto kDelay = base::Seconds(3);
 
   {
     AnimationBuilder()
@@ -269,7 +269,7 @@
   gfx::RoundedCornersF first_corners(6.0f, 6.0f, 6.0f, 6.0f);
   gfx::RoundedCornersF second_corners(12.0f, 12.0f, 12.0f, 12.0f);
 
-  constexpr auto kDelay = base::TimeDelta::FromSeconds(3);
+  constexpr auto kDelay = base::Seconds(3);
 
   {
     AnimationBuilder()
@@ -297,7 +297,7 @@
 TEST_F(AnimationBuilderTest, CheckTweenType) {
   TestAnimatibleLayerOwner* first_animating_view = CreateTestLayerOwner();
   gfx::Tween::Type tween_type = gfx::Tween::EASE_IN;
-  constexpr auto kDelay = base::TimeDelta::FromSeconds(4);
+  constexpr auto kDelay = base::Seconds(4);
   // Set initial opacity.
   first_animating_view->delegate()->SetOpacityFromAnimation(
       0.0f, ui::PropertyChangeReason::NOT_FROM_ANIMATION);
@@ -321,7 +321,7 @@
   TestAnimatibleLayerOwner* first_animating_view = CreateTestLayerOwner();
   TestAnimatibleLayerOwner* second_animating_view = CreateTestLayerOwner();
 
-  constexpr auto kDelay = base::TimeDelta::FromSeconds(3);
+  constexpr auto kDelay = base::Seconds(3);
   bool started = false;
   bool ended = false;
 
@@ -362,7 +362,7 @@
   int second_repeat_count = 0;
 
   TestAnimatibleLayerOwner* first_animating_view = CreateTestLayerOwner();
-  constexpr auto kDelay = base::TimeDelta::FromSeconds(3);
+  constexpr auto kDelay = base::Seconds(3);
   gfx::RoundedCornersF first_rounded_corners(12.0f, 12.0f, 12.0f, 12.0f);
   gfx::RoundedCornersF second_rounded_corners(5.0f, 5.0f, 5.0f, 5.0f);
 
@@ -407,8 +407,8 @@
   TestAnimatibleLayerOwner* view = CreateTestLayerOwner();
   ui::LayerAnimationDelegate* delegate = view->delegate();
 
-  constexpr auto kDelay = base::TimeDelta::FromSeconds(1);
-  constexpr auto kDuration = base::TimeDelta::FromSeconds(1);
+  constexpr auto kDelay = base::Seconds(1);
+  constexpr auto kDuration = base::Seconds(1);
 
   {
     // clang-format off
@@ -432,7 +432,7 @@
   TestAnimatibleLayerOwner* view = CreateTestLayerOwner();
   ui::LayerAnimationDelegate* delegate = view->delegate();
 
-  constexpr auto kDuration = base::TimeDelta::FromSeconds(1);
+  constexpr auto kDuration = base::Seconds(1);
 
   {
     AnimationBuilder()
@@ -455,7 +455,7 @@
   TestAnimatibleLayerOwner* view = CreateTestLayerOwner();
   ui::LayerAnimationDelegate* delegate = view->delegate();
 
-  constexpr auto kDuration = base::TimeDelta::FromSeconds(1);
+  constexpr auto kDuration = base::Seconds(1);
 
   {
     AnimationBuilder()
@@ -485,7 +485,7 @@
   gfx::RoundedCornersF rounded_corners(12.0f, 12.0f, 12.0f, 12.0f);
   // Make sure that the opacity keyframe finishes at the middle of the rounded
   // corners keyframe.
-  constexpr auto kDurationShort = base::TimeDelta::FromSeconds(1);
+  constexpr auto kDurationShort = base::Seconds(1);
   constexpr auto kDurationLong = kDurationShort * 2;
 
   {
@@ -516,7 +516,7 @@
   gfx::RoundedCornersF rounded_corners(12.0f, 12.0f, 12.0f, 12.0f);
   // Make sure that the opacity keyframe finishes at the middle of the rounded
   // corners keyframe.
-  constexpr auto kDelay = base::TimeDelta::FromSeconds(1);
+  constexpr auto kDelay = base::Seconds(1);
   constexpr auto kDuration = kDelay * 2;
 
   {
@@ -552,7 +552,7 @@
   gfx::RoundedCornersF rounded_corners2(5.0f, 5.0f, 5.0f, 5.0f);
   // Make sure that the first opacity keyframe finishes at the middle of the
   // first rounded corners keyframe.
-  constexpr auto kDelay = base::TimeDelta::FromSeconds(1);
+  constexpr auto kDelay = base::Seconds(1);
   constexpr auto kDuration = kDelay * 2;
 
   {
@@ -590,7 +590,7 @@
   TestAnimatibleLayerOwner* view = CreateTestLayerOwner();
   ui::LayerAnimationDelegate* delegate = view->delegate();
 
-  constexpr auto kDuration = base::TimeDelta::FromSeconds(1);
+  constexpr auto kDuration = base::Seconds(1);
 
   {
     AnimationBuilder()
@@ -617,7 +617,7 @@
   TestAnimatibleLayerOwner* view = CreateTestLayerOwner();
   ui::LayerAnimationDelegate* delegate = view->delegate();
 
-  constexpr auto kDuration = base::TimeDelta::FromSeconds(1);
+  constexpr auto kDuration = base::Seconds(1);
 
   {
     AnimationBuilder()
@@ -653,7 +653,7 @@
 
   gfx::RoundedCornersF rounded_corners1(12.0f, 12.0f, 12.0f, 12.0f);
   gfx::RoundedCornersF rounded_corners2(5.0f, 5.0f, 5.0f, 5.0f);
-  constexpr auto kDuration = base::TimeDelta::FromSeconds(1);
+  constexpr auto kDuration = base::Seconds(1);
 
   {
     AnimationBuilder()
@@ -691,7 +691,7 @@
   gfx::RoundedCornersF rounded_corners2(4.0f, 4.0f, 4.0f, 4.0f);
   // Make sure that the first opacity keyframe finishes at the middle of the
   // first rounded corners keyframe.
-  constexpr auto kDelay = base::TimeDelta::FromSeconds(1);
+  constexpr auto kDelay = base::Seconds(1);
   constexpr auto kDuration = kDelay * 2;
 
   {
@@ -736,7 +736,7 @@
   gfx::RoundedCornersF rounded_corners(12.0f, 12.0f, 12.0f, 12.0f);
   // Make sure that the first opacity keyframe finishes at the middle of the
   // first rounded corners keyframe.
-  constexpr auto kDelay = base::TimeDelta::FromSeconds(1);
+  constexpr auto kDelay = base::Seconds(1);
   constexpr auto kDuration = kDelay * 2;
 
   {
@@ -776,7 +776,7 @@
   gfx::RoundedCornersF rounded_corners2(4.0f, 4.0f, 4.0f, 4.0f);
   // Make sure that the second opacity keyframe finishes at the middle of the
   // second rounded corners keyframe.
-  constexpr auto kDurationShort = base::TimeDelta::FromSeconds(1);
+  constexpr auto kDurationShort = base::Seconds(1);
   constexpr auto kDurationLong = kDurationShort * 2;
 
   {
@@ -819,7 +819,7 @@
   TestAnimatibleLayerOwner* view = CreateTestLayerOwner();
   ui::LayerAnimationDelegate* delegate = view->delegate();
 
-  constexpr auto kDuration = base::TimeDelta::FromSeconds(1);
+  constexpr auto kDuration = base::Seconds(1);
   constexpr float kOpacity[] = {0.4f, 0.9f, 0.6f};
 
   {
@@ -841,8 +841,8 @@
   TestAnimatibleLayerOwner* view = CreateTestLayerOwner();
   ui::LayerAnimationDelegate* delegate = view->delegate();
 
-  constexpr auto kStepSize = base::TimeDelta::FromSeconds(1);
-  constexpr auto kDuration = base::TimeDelta::FromSeconds(5);
+  constexpr auto kStepSize = base::Seconds(1);
+  constexpr auto kDuration = base::Seconds(5);
 
   // Set the initial value to animate.
   delegate->SetBrightnessFromAnimation(
@@ -912,7 +912,7 @@
   ui::LayerAnimationDelegate* delegate = view->delegate();
   std::unique_ptr<AnimationAbortHandle> abort_handle;
 
-  constexpr auto kStepSize = base::TimeDelta::FromSeconds(1);
+  constexpr auto kStepSize = base::Seconds(1);
   constexpr auto kDuration = kStepSize * 2;
 
   {
diff --git a/ui/views/animation/bounds_animator.h b/ui/views/animation/bounds_animator.h
index 74f66f3..f2c1609 100644
--- a/ui/views/animation/bounds_animator.h
+++ b/ui/views/animation/bounds_animator.h
@@ -198,7 +198,7 @@
   // to repaint these bounds.
   gfx::Rect repaint_bounds_;
 
-  base::TimeDelta animation_duration_ = base::TimeDelta::FromMilliseconds(200);
+  base::TimeDelta animation_duration_ = base::Milliseconds(200);
 
   gfx::Tween::Type tween_type_ = gfx::Tween::EASE_OUT;
 };
diff --git a/ui/views/animation/bounds_animator_unittest.cc b/ui/views/animation/bounds_animator_unittest.cc
index 4054b4a..f6e469a 100644
--- a/ui/views/animation/bounds_animator_unittest.cc
+++ b/ui/views/animation/bounds_animator_unittest.cc
@@ -157,7 +157,7 @@
  protected:
   void RecreateAnimator(bool use_transforms) {
     animator_ = std::make_unique<BoundsAnimator>(&parent_, use_transforms);
-    animator_->SetAnimationDuration(base::TimeDelta::FromMilliseconds(10));
+    animator_->SetAnimationDuration(base::Milliseconds(10));
   }
 
   // Animates |child_| to |target_bounds|. Returns the repaint time.
@@ -168,7 +168,7 @@
     child()->set_repaint_count(0);
 
     const base::TimeDelta animation_duration =
-        base::TimeDelta::FromMilliseconds(use_long_duration ? 2000 : 10);
+        base::Milliseconds(use_long_duration ? 2000 : 10);
     animator()->SetAnimationDuration(animation_duration);
 
     animator()->AnimateViewTo(child(), target_bounds);
@@ -402,7 +402,7 @@
 
   child()->SetBoundsRect(initial_bounds);
 
-  const base::TimeDelta duration = base::TimeDelta::FromMilliseconds(200);
+  const base::TimeDelta duration = base::Milliseconds(200);
   animator()->SetAnimationDuration(duration);
   // Use a linear tween so we can estimate the expected bounds.
   animator()->set_tween_type(gfx::Tween::LINEAR);
@@ -415,7 +415,7 @@
   // Stop halfway and cancel. The child should have its bounds updated to
   // exactly halfway between |initial_bounds| and |target_bounds|.
   const gfx::Rect expected_bounds(5, 5, 10, 10);
-  task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+  task_environment_.FastForwardBy(base::Milliseconds(100));
   EXPECT_EQ(initial_bounds, child()->bounds());
   animator()->Cancel();
   EXPECT_EQ(expected_bounds, child()->bounds());
@@ -434,8 +434,7 @@
   child()->SetBoundsRect(initial_bounds);
   const gfx::Rect target_bounds(10, 10, 10, 10);
 
-  const base::TimeDelta animation_duration =
-      base::TimeDelta::FromMilliseconds(10);
+  const base::TimeDelta animation_duration = base::Milliseconds(10);
   animator()->SetAnimationDuration(animation_duration);
   child()->set_repaint_count(0);
   animator()->AnimateViewTo(child(), target_bounds);
diff --git a/ui/views/animation/bubble_slide_animator.cc b/ui/views/animation/bubble_slide_animator.cc
index 115b71e..f1e5c7092 100644
--- a/ui/views/animation/bubble_slide_animator.cc
+++ b/ui/views/animation/bubble_slide_animator.cc
@@ -18,7 +18,7 @@
   widget_observation_.Observe(widget);
 
   constexpr base::TimeDelta kDefaultBubbleSlideAnimationTime =
-      base::TimeDelta::FromMilliseconds(200);
+      base::Milliseconds(200);
   slide_animation_.SetDuration(kDefaultBubbleSlideAnimationTime);
 }
 
diff --git a/ui/views/animation/bubble_slide_animator_unittest.cc b/ui/views/animation/bubble_slide_animator_unittest.cc
index 2744c41..658d7d4 100644
--- a/ui/views/animation/bubble_slide_animator_unittest.cc
+++ b/ui/views/animation/bubble_slide_animator_unittest.cc
@@ -20,8 +20,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kSlideDuration =
-    base::TimeDelta::FromMilliseconds(1000);
+constexpr base::TimeDelta kSlideDuration = base::Milliseconds(1000);
 constexpr base::TimeDelta kHalfSlideDuration = kSlideDuration / 2;
 
 // This will be the size of the three horizontally-oriented anchor views as well
diff --git a/ui/views/animation/compositor_animation_runner_unittest.cc b/ui/views/animation/compositor_animation_runner_unittest.cc
index 8b20337e4..329dd984 100644
--- a/ui/views/animation/compositor_animation_runner_unittest.cc
+++ b/ui/views/animation/compositor_animation_runner_unittest.cc
@@ -16,7 +16,7 @@
 namespace views {
 namespace test {
 namespace {
-constexpr base::TimeDelta kDuration = base::TimeDelta::FromMilliseconds(100);
+constexpr base::TimeDelta kDuration = base::Milliseconds(100);
 }
 
 using CompositorAnimationRunnerTest = WidgetTest;
diff --git a/ui/views/animation/flood_fill_ink_drop_ripple.cc b/ui/views/animation/flood_fill_ink_drop_ripple.cc
index 8c66c9e..212bede 100644
--- a/ui/views/animation/flood_fill_ink_drop_ripple.cc
+++ b/ui/views/animation/flood_fill_ink_drop_ripple.cc
@@ -448,8 +448,8 @@
     state_override = HIDDEN_TRANSFORM;
   }
 
-  return base::TimeDelta::FromMilliseconds(
-      kAnimationDurationInMs[state_override] * duration_factor_);
+  return base::Milliseconds(kAnimationDurationInMs[state_override] *
+                            duration_factor_);
 }
 
 }  // namespace views
diff --git a/ui/views/animation/ink_drop_highlight_unittest.cc b/ui/views/animation/ink_drop_highlight_unittest.cc
index a5ac480..32ea1cd3 100644
--- a/ui/views/animation/ink_drop_highlight_unittest.cc
+++ b/ui/views/animation/ink_drop_highlight_unittest.cc
@@ -92,13 +92,13 @@
 }
 
 TEST_F(InkDropHighlightTest, IsHighlightedStateTransitions) {
-  ink_drop_highlight()->FadeIn(base::TimeDelta::FromSeconds(1));
+  ink_drop_highlight()->FadeIn(base::Seconds(1));
   EXPECT_TRUE(ink_drop_highlight()->IsFadingInOrVisible());
 
   test_api()->CompleteAnimations();
   EXPECT_TRUE(ink_drop_highlight()->IsFadingInOrVisible());
 
-  ink_drop_highlight()->FadeOut(base::TimeDelta::FromSeconds(1));
+  ink_drop_highlight()->FadeOut(base::Seconds(1));
   EXPECT_FALSE(ink_drop_highlight()->IsFadingInOrVisible());
 
   test_api()->CompleteAnimations();
@@ -111,7 +111,7 @@
   if (!gfx::Animation::ShouldRenderRichAnimation())
     return;
 
-  ink_drop_highlight()->FadeIn(base::TimeDelta::FromSeconds(1));
+  ink_drop_highlight()->FadeIn(base::Seconds(1));
 
   EXPECT_EQ(1, observer()->last_animation_started_ordinal());
   EXPECT_FALSE(observer()->AnimationHasEnded());
@@ -124,7 +124,7 @@
 
 TEST_F(InkDropHighlightTest,
        VerifyObserversAreNotifiedWithCorrectAnimationType) {
-  ink_drop_highlight()->FadeIn(base::TimeDelta::FromSeconds(1));
+  ink_drop_highlight()->FadeIn(base::Seconds(1));
 
   EXPECT_TRUE(observer()->AnimationHasStarted());
   EXPECT_EQ(InkDropHighlight::AnimationType::kFadeIn,
@@ -135,7 +135,7 @@
   EXPECT_EQ(InkDropHighlight::AnimationType::kFadeIn,
             observer()->last_animation_started_context());
 
-  ink_drop_highlight()->FadeOut(base::TimeDelta::FromSeconds(1));
+  ink_drop_highlight()->FadeOut(base::Seconds(1));
   EXPECT_EQ(InkDropHighlight::AnimationType::kFadeOut,
             observer()->last_animation_started_context());
 
@@ -145,7 +145,7 @@
 }
 
 TEST_F(InkDropHighlightTest, VerifyObserversAreNotifiedOfSuccessfulAnimations) {
-  ink_drop_highlight()->FadeIn(base::TimeDelta::FromSeconds(1));
+  ink_drop_highlight()->FadeIn(base::Seconds(1));
   test_api()->CompleteAnimations();
 
   EXPECT_EQ(2, observer()->last_animation_ended_ordinal());
@@ -159,8 +159,8 @@
   if (!gfx::Animation::ShouldRenderRichAnimation())
     return;
 
-  ink_drop_highlight()->FadeIn(base::TimeDelta::FromSeconds(1));
-  ink_drop_highlight()->FadeOut(base::TimeDelta::FromSeconds(1));
+  ink_drop_highlight()->FadeIn(base::Seconds(1));
+  ink_drop_highlight()->FadeOut(base::Seconds(1));
 
   EXPECT_EQ(2, observer()->last_animation_ended_ordinal());
   EXPECT_EQ(InkDropHighlight::AnimationType::kFadeIn,
@@ -173,10 +173,10 @@
 TEST_F(InkDropHighlightTest, NullObserverIsSafe) {
   ink_drop_highlight()->set_observer(nullptr);
 
-  ink_drop_highlight()->FadeIn(base::TimeDelta::FromSeconds(1));
+  ink_drop_highlight()->FadeIn(base::Seconds(1));
   test_api()->CompleteAnimations();
 
-  ink_drop_highlight()->FadeOut(base::TimeDelta::FromMilliseconds(0));
+  ink_drop_highlight()->FadeOut(base::Milliseconds(0));
   test_api()->CompleteAnimations();
   EXPECT_FALSE(ink_drop_highlight()->IsFadingInOrVisible());
 }
@@ -189,7 +189,7 @@
   if (!gfx::Animation::ShouldRenderRichAnimation())
     return;
 
-  ink_drop_highlight()->FadeIn(base::TimeDelta::FromSeconds(1));
+  ink_drop_highlight()->FadeIn(base::Seconds(1));
   DestroyHighlight();
   EXPECT_EQ(1, observer()->last_animation_started_ordinal());
   EXPECT_EQ(2, observer()->last_animation_ended_ordinal());
@@ -203,7 +203,7 @@
 TEST_F(InkDropHighlightTest, AnimatingAZeroSizeHighlight) {
   InitHighlight(std::make_unique<InkDropHighlight>(
       gfx::Size(0, 0), 3, gfx::PointF(), SK_ColorBLACK));
-  ink_drop_highlight()->FadeOut(base::TimeDelta::FromMilliseconds(0));
+  ink_drop_highlight()->FadeOut(base::Milliseconds(0));
 }
 
 TEST_F(InkDropHighlightTest, TransformIsPixelAligned) {
diff --git a/ui/views/animation/ink_drop_impl.cc b/ui/views/animation/ink_drop_impl.cc
index a5b2734f..1a01437 100644
--- a/ui/views/animation/ink_drop_impl.cc
+++ b/ui/views/animation/ink_drop_impl.cc
@@ -22,10 +22,8 @@
 
 // The duration for the highlight state fade in/out animations when they are
 // triggered by a hover changed event.
-constexpr auto kHighlightFadeInOnHoverChangeDuration =
-    base::TimeDelta::FromMilliseconds(250);
-constexpr auto kHighlightFadeOutOnHoverChangeDuration =
-    base::TimeDelta::FromMilliseconds(250);
+constexpr auto kHighlightFadeInOnHoverChangeDuration = base::Milliseconds(250);
+constexpr auto kHighlightFadeOutOnHoverChangeDuration = base::Milliseconds(250);
 
 // The duration for the highlight state fade in/out animations when they are
 // triggered by a focus changed event.
@@ -34,22 +32,20 @@
 
 // The duration for showing/hiding the highlight when triggered by ripple
 // visibility changes for the HIDE_ON_RIPPLE AutoHighlightMode.
-constexpr auto kHighlightFadeInOnRippleHidingDuration =
-    base::TimeDelta::FromMilliseconds(250);
+constexpr auto kHighlightFadeInOnRippleHidingDuration = base::Milliseconds(250);
 constexpr auto kHighlightFadeOutOnRippleShowingDuration =
-    base::TimeDelta::FromMilliseconds(120);
+    base::Milliseconds(120);
 
 // The duration for showing/hiding the highlight when triggered by ripple
 // visibility changes for the SHOW_ON_RIPPLE AutoHighlightMode.
 constexpr auto kHighlightFadeInOnRippleShowingDuration =
-    base::TimeDelta::FromMilliseconds(250);
+    base::Milliseconds(250);
 constexpr auto kHighlightFadeOutOnRippleHidingDuration =
-    base::TimeDelta::FromMilliseconds(120);
+    base::Milliseconds(120);
 
 // The amount of time that |highlight_| should delay after a ripple animation
 // before fading in, for highlight due to mouse hover.
-constexpr auto kHoverFadeInAfterRippleDelay =
-    base::TimeDelta::FromMilliseconds(1000);
+constexpr auto kHoverFadeInAfterRippleDelay = base::Milliseconds(1000);
 
 // Returns true if an ink drop with the given |ink_drop_state| should
 // automatically transition to the InkDropState::HIDDEN state.
diff --git a/ui/views/animation/scroll_animator.cc b/ui/views/animation/scroll_animator.cc
index 47f3224..ce63f04b 100644
--- a/ui/views/animation/scroll_animator.cc
+++ b/ui/views/animation/scroll_animator.cc
@@ -52,7 +52,7 @@
   velocity_y_ = velocity_y;
   duration_ = -v / acceleration_;  // in seconds
   animation_ = std::make_unique<gfx::SlideAnimation>(this);
-  animation_->SetSlideDuration(base::TimeDelta::FromSecondsD(duration_));
+  animation_->SetSlideDuration(base::Seconds(duration_));
   animation_->Show();
 }
 
diff --git a/ui/views/animation/slide_out_controller.cc b/ui/views/animation/slide_out_controller.cc
index 1dfba1b7..91c575c 100644
--- a/ui/views/animation/slide_out_controller.cc
+++ b/ui/views/animation/slide_out_controller.cc
@@ -18,8 +18,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kSwipeRestoreDuration =
-    base::TimeDelta::FromMilliseconds(150);
+constexpr base::TimeDelta kSwipeRestoreDuration = base::Milliseconds(150);
 constexpr int kSwipeOutTotalDurationMs = 150;
 gfx::Tween::Type kSwipeTweenType = gfx::Tween::EASE_IN;
 
@@ -165,8 +164,8 @@
 
   int swipe_out_duration = kSwipeOutTotalDurationMs * opacity_;
   SetOpacityIfNecessary(0.f);
-  SetTransformWithAnimationIfNecessary(
-      transform, base::TimeDelta::FromMilliseconds(swipe_out_duration));
+  SetTransformWithAnimationIfNecessary(transform,
+                                       base::Milliseconds(swipe_out_duration));
 }
 
 void SlideOutController::SetOpacityIfNecessary(float opacity) {
diff --git a/ui/views/animation/slide_out_controller_unittest.cc b/ui/views/animation/slide_out_controller_unittest.cc
index 473d5154..03cd959 100644
--- a/ui/views/animation/slide_out_controller_unittest.cc
+++ b/ui/views/animation/slide_out_controller_unittest.cc
@@ -98,7 +98,7 @@
 
   void PostSequentialGestureEvent(const ui::GestureEventDetails& details) {
     // Set the timestamp ahead one microsecond.
-    sequential_event_timestamp_ += base::TimeDelta::FromMicroseconds(1);
+    sequential_event_timestamp_ += base::Microseconds(1);
 
     ui::GestureEvent gesture_event(
         0, 0, ui::EF_NONE, base::TimeTicks() + sequential_event_timestamp_,
diff --git a/ui/views/animation/square_ink_drop_ripple.cc b/ui/views/animation/square_ink_drop_ripple.cc
index 9af7c9e..bb1a6b8b 100644
--- a/ui/views/animation/square_ink_drop_ripple.cc
+++ b/ui/views/animation/square_ink_drop_ripple.cc
@@ -121,19 +121,19 @@
   // Duration constants for InkDropStateSubAnimations. See the
   // InkDropStateSubAnimations enum documentation for more info.
   constexpr base::TimeDelta kAnimationDuration[] = {
-      base::TimeDelta::FromMilliseconds(150),  // HIDDEN_FADE_OUT
-      base::TimeDelta::FromMilliseconds(200),  // HIDDEN_TRANSFORM
-      base::TimeDelta(),                       // ACTION_PENDING_FADE_IN
-      base::TimeDelta::FromMilliseconds(160),  // ACTION_PENDING_TRANSFORM
-      base::TimeDelta::FromMilliseconds(150),  // ACTION_TRIGGERED_FADE_OUT
-      base::TimeDelta::FromMilliseconds(160),  // ACTION_TRIGGERED_TRANSFORM
-      base::TimeDelta::FromMilliseconds(200),  // ALTERNATE_ACTION_PENDING
-      base::TimeDelta::FromMilliseconds(150),  // ALTERNAT..._TRIGGERED_FADE_OUT
-      base::TimeDelta::FromMilliseconds(200),  // ALTERNA..._TRIGGERED_TRANSFORM
-      base::TimeDelta::FromMilliseconds(200),  // ACTIVATED_CIRCLE_TRANSFORM
-      base::TimeDelta::FromMilliseconds(160),  // ACTIVATED_RECT_TRANSFORM
-      base::TimeDelta::FromMilliseconds(150),  // DEACTIVATED_FADE_OUT
-      base::TimeDelta::FromMilliseconds(200),  // DEACTIVATED_TRANSFORM
+      base::Milliseconds(150),  // HIDDEN_FADE_OUT
+      base::Milliseconds(200),  // HIDDEN_TRANSFORM
+      base::TimeDelta(),        // ACTION_PENDING_FADE_IN
+      base::Milliseconds(160),  // ACTION_PENDING_TRANSFORM
+      base::Milliseconds(150),  // ACTION_TRIGGERED_FADE_OUT
+      base::Milliseconds(160),  // ACTION_TRIGGERED_TRANSFORM
+      base::Milliseconds(200),  // ALTERNATE_ACTION_PENDING
+      base::Milliseconds(150),  // ALTERNAT..._TRIGGERED_FADE_OUT
+      base::Milliseconds(200),  // ALTERNA..._TRIGGERED_TRANSFORM
+      base::Milliseconds(200),  // ACTIVATED_CIRCLE_TRANSFORM
+      base::Milliseconds(160),  // ACTIVATED_RECT_TRANSFORM
+      base::Milliseconds(150),  // DEACTIVATED_FADE_OUT
+      base::Milliseconds(200),  // DEACTIVATED_TRANSFORM
   };
   return kAnimationDuration[state];
 }
diff --git a/ui/views/animation/widget_fade_animator.h b/ui/views/animation/widget_fade_animator.h
index a4f4361..161f108 100644
--- a/ui/views/animation/widget_fade_animator.h
+++ b/ui/views/animation/widget_fade_animator.h
@@ -103,11 +103,11 @@
 
   // Duration for fade-in animations. The default should be visually pleasing
   // for most applications.
-  base::TimeDelta fade_in_duration_ = base::TimeDelta::FromMilliseconds(200);
+  base::TimeDelta fade_in_duration_ = base::Milliseconds(200);
 
   // Duration for fade-out animations. The default should be visually pleasing
   // for most applications.
-  base::TimeDelta fade_out_duration_ = base::TimeDelta::FromMilliseconds(150);
+  base::TimeDelta fade_out_duration_ = base::Milliseconds(150);
 
   // The tween type to use. The default value should be pleasing for most
   // applications.
diff --git a/ui/views/animation/widget_fade_animator_unittest.cc b/ui/views/animation/widget_fade_animator_unittest.cc
index bc5e1787e..c7268e3 100644
--- a/ui/views/animation/widget_fade_animator_unittest.cc
+++ b/ui/views/animation/widget_fade_animator_unittest.cc
@@ -16,8 +16,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kFadeDuration =
-    base::TimeDelta::FromMilliseconds(1000);
+constexpr base::TimeDelta kFadeDuration = base::Milliseconds(1000);
 constexpr base::TimeDelta kHalfFadeDuration = kFadeDuration / 2;
 
 class TestWidgetFadeAnimator : public WidgetFadeAnimator {
diff --git a/ui/views/bubble/bubble_frame_view_unittest.cc b/ui/views/bubble/bubble_frame_view_unittest.cc
index c280c1b..893ea62 100644
--- a/ui/views/bubble/bubble_frame_view_unittest.cc
+++ b/ui/views/bubble/bubble_frame_view_unittest.cc
@@ -1272,8 +1272,7 @@
   test::ButtonTestApi(frame->close_)
       .NotifyClick(ui::MouseEvent(
           ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(),
-          ui::EventTimeForNow() +
-              base::TimeDelta::FromMilliseconds(GetDoubleClickInterval()),
+          ui::EventTimeForNow() + base::Milliseconds(GetDoubleClickInterval()),
           ui::EF_NONE, ui::EF_NONE));
   EXPECT_TRUE(bubble->IsClosed());
 }
@@ -1299,8 +1298,7 @@
   test::ButtonTestApi(frame->minimize_)
       .NotifyClick(ui::MouseEvent(
           ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(),
-          ui::EventTimeForNow() +
-              base::TimeDelta::FromMilliseconds(GetDoubleClickInterval()),
+          ui::EventTimeForNow() + base::Milliseconds(GetDoubleClickInterval()),
           ui::EF_NONE, ui::EF_NONE));
   EXPECT_TRUE(bubble->IsMinimized());
 }
diff --git a/ui/views/bubble/tooltip_icon.cc b/ui/views/bubble/tooltip_icon.cc
index 92bb750..038bad76 100644
--- a/ui/views/bubble/tooltip_icon.cc
+++ b/ui/views/bubble/tooltip_icon.cc
@@ -45,7 +45,7 @@
 
 void TooltipIcon::OnMouseEntered(const ui::MouseEvent& event) {
   mouse_inside_ = true;
-  show_timer_.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(150), this,
+  show_timer_.Start(FROM_HERE, base::Milliseconds(150), this,
                     &TooltipIcon::ShowBubble);
 }
 
diff --git a/ui/views/controls/button/button.cc b/ui/views/controls/button/button.cc
index 4d6fc3c..0689987 100644
--- a/ui/views/controls/button/button.cc
+++ b/ui/views/controls/button/button.cc
@@ -592,7 +592,7 @@
 
   SetFocusBehavior(PlatformStyle::kDefaultFocusBehavior);
   SetProperty(kIsButtonProperty, true);
-  hover_animation_.SetSlideDuration(base::TimeDelta::FromMilliseconds(150));
+  hover_animation_.SetSlideDuration(base::Milliseconds(150));
   SetInstallFocusRingOnFocus(true);
   button_controller_ = std::make_unique<ButtonController>(
       this, std::make_unique<DefaultButtonControllerDelegate>(this));
diff --git a/ui/views/controls/button/label_button.cc b/ui/views/controls/button/label_button.cc
index 673ccbf..57e3a7d 100644
--- a/ui/views/controls/button/label_button.cc
+++ b/ui/views/controls/button/label_button.cc
@@ -54,7 +54,7 @@
   label_->SetAutoColorReadabilityEnabled(false);
   label_->SetHorizontalAlignment(gfx::ALIGN_TO_HEAD);
 
-  SetAnimationDuration(base::TimeDelta::FromMilliseconds(170));
+  SetAnimationDuration(base::Milliseconds(170));
   SetTextInternal(text);
 }
 
diff --git a/ui/views/controls/button/toggle_button.cc b/ui/views/controls/button/toggle_button.cc
index e41576f..b8dade0 100644
--- a/ui/views/controls/button/toggle_button.cc
+++ b/ui/views/controls/button/toggle_button.cc
@@ -128,7 +128,7 @@
 
 ToggleButton::ToggleButton(PressedCallback callback)
     : Button(std::move(callback)) {
-  slide_animation_.SetSlideDuration(base::TimeDelta::FromMilliseconds(80));
+  slide_animation_.SetSlideDuration(base::Milliseconds(80));
   slide_animation_.SetTweenType(gfx::Tween::LINEAR);
   thumb_view_ = AddChildView(std::make_unique<ThumbView>());
   InkDrop::Get(this)->SetMode(views::InkDropHost::InkDropMode::ON);
diff --git a/ui/views/controls/menu/menu_closure_animation_mac.mm b/ui/views/controls/menu/menu_closure_animation_mac.mm
index f74acc5..472e4ee6 100644
--- a/ui/views/controls/menu/menu_closure_animation_mac.mm
+++ b/ui/views/controls/menu/menu_closure_animation_mac.mm
@@ -68,12 +68,12 @@
   if (step_ == AnimationStep::kUnselected ||
       step_ == AnimationStep::kSelected) {
     item_->SetForcedVisualSelection(step_ == AnimationStep::kSelected);
-    timer_.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(80),
+    timer_.Start(FROM_HERE, base::Milliseconds(80),
                  base::BindRepeating(&MenuClosureAnimationMac::AdvanceAnimation,
                                      base::Unretained(this)));
   } else if (step_ == AnimationStep::kFading) {
     auto fade = std::make_unique<gfx::LinearAnimation>(this);
-    fade->SetDuration(base::TimeDelta::FromMilliseconds(200));
+    fade->SetDuration(base::Milliseconds(200));
     fade_animation_ = std::move(fade);
     fade_animation_->Start();
   } else if (step_ == AnimationStep::kFinish) {
diff --git a/ui/views/controls/menu/menu_controller.cc b/ui/views/controls/menu/menu_controller.cc
index 53373de..f8fcfeb 100644
--- a/ui/views/controls/menu/menu_controller.cc
+++ b/ui/views/controls/menu/menu_controller.cc
@@ -129,8 +129,7 @@
 // considered intentional. This is to prevent spurious mouse releases from
 // activating controls, especially when some UI element is revealed under the
 // source of the activation (ex. menus showing underneath menu buttons).
-base::TimeDelta menu_selection_hold_time =
-    base::TimeDelta::FromMilliseconds(200);
+base::TimeDelta menu_selection_hold_time = base::Milliseconds(200);
 
 // Amount of time from when the drop exits the menu and the menu is hidden.
 constexpr int kCloseOnExitTime = 1200;
@@ -150,7 +149,7 @@
 
 // Time to complete a cycle of the menu item alert animation.
 constexpr base::TimeDelta kAlertAnimationThrobDuration =
-    base::TimeDelta::FromMilliseconds(1000);
+    base::Milliseconds(1000);
 
 // Returns true if the mnemonic of |menu| matches key.
 bool MatchesMnemonic(MenuItemView* menu, char16_t key) {
diff --git a/ui/views/controls/menu/menu_runner_unittest.cc b/ui/views/controls/menu/menu_runner_unittest.cc
index 7139c73..66c19910 100644
--- a/ui/views/controls/menu/menu_runner_unittest.cc
+++ b/ui/views/controls/menu/menu_runner_unittest.cc
@@ -254,7 +254,7 @@
   EXPECT_TRUE(IsItemSelected(3));
 
   // Wait out the PrefixSelector's timeout.
-  clock.Advance(base::TimeDelta::FromSeconds(10));
+  clock.Advance(base::Seconds(10));
 
   // Send Space to activate the selected menu item.
   generator.PressKey(ui::VKEY_SPACE, 0);
diff --git a/ui/views/controls/prefix_selector.cc b/ui/views/controls/prefix_selector.cc
index a124aca..9d1811c 100644
--- a/ui/views/controls/prefix_selector.cc
+++ b/ui/views/controls/prefix_selector.cc
@@ -36,7 +36,7 @@
 
 bool PrefixSelector::ShouldContinueSelection() const {
   const base::TimeTicks now(tick_clock_->NowTicks());
-  constexpr auto kTimeBeforeClearing = base::TimeDelta::FromSeconds(1);
+  constexpr auto kTimeBeforeClearing = base::Seconds(1);
   return (now - time_of_last_key_) < kTimeBeforeClearing;
 }
 
diff --git a/ui/views/controls/progress_bar.cc b/ui/views/controls/progress_bar.cc
index 7cb18f18d..401dcfa 100644
--- a/ui/views/controls/progress_bar.cc
+++ b/ui/views/controls/progress_bar.cc
@@ -138,7 +138,7 @@
   current_value_ = adjusted_value;
   if (IsIndeterminate()) {
     indeterminate_bar_animation_ = std::make_unique<gfx::LinearAnimation>(this);
-    indeterminate_bar_animation_->SetDuration(base::TimeDelta::FromSeconds(2));
+    indeterminate_bar_animation_->SetDuration(base::Seconds(2));
     indeterminate_bar_animation_->Start();
   } else {
     indeterminate_bar_animation_.reset();
diff --git a/ui/views/controls/resize_area_unittest.cc b/ui/views/controls/resize_area_unittest.cc
index 8aab3c86..5253cd29 100644
--- a/ui/views/controls/resize_area_unittest.cc
+++ b/ui/views/controls/resize_area_unittest.cc
@@ -193,7 +193,7 @@
   gfx::Point start = widget()->GetNativeView()->bounds().CenterPoint();
   event_generator()->GestureScrollSequenceWithCallback(
       start, gfx::Point(start.x() + kGestureScrollDistance, start.y()),
-      base::TimeDelta::FromMilliseconds(200), kGestureScrollSteps,
+      base::Milliseconds(200), kGestureScrollSteps,
       base::BindRepeating(&ResizeAreaTest::ProcessGesture,
                           base::Unretained(this)));
 }
diff --git a/ui/views/controls/scrollbar/cocoa_scroll_bar.mm b/ui/views/controls/scrollbar/cocoa_scroll_bar.mm
index e2456ec..af545b73 100644
--- a/ui/views/controls/scrollbar/cocoa_scroll_bar.mm
+++ b/ui/views/controls/scrollbar/cocoa_scroll_bar.mm
@@ -143,7 +143,7 @@
 CocoaScrollBar::CocoaScrollBar(bool horizontal)
     : ScrollBar(horizontal),
       hide_scrollbar_timer_(FROM_HERE,
-                            base::TimeDelta::FromMilliseconds(500),
+                            base::Milliseconds(500),
                             base::BindRepeating(&CocoaScrollBar::HideScrollbar,
                                                 base::Unretained(this))),
       thickness_animation_(this),
@@ -154,7 +154,7 @@
   bridge_.reset([[ViewsScrollbarBridge alloc] initWithDelegate:this]);
   scroller_style_ = [ViewsScrollbarBridge getPreferredScrollerStyle];
 
-  thickness_animation_.SetSlideDuration(base::TimeDelta::FromMilliseconds(240));
+  thickness_animation_.SetSlideDuration(base::Milliseconds(240));
 
   SetPaintToLayer();
   has_scrolltrack_ = scroller_style_ == NSScrollerStyleLegacy;
@@ -448,7 +448,7 @@
   did_start_dragging_ = false;
 
   ui::ScopedLayerAnimationSettings animation(layer()->GetAnimator());
-  animation.SetTransitionDuration(base::TimeDelta::FromMilliseconds(240));
+  animation.SetTransitionDuration(base::Milliseconds(240));
   animation.AddObserver(this);
   layer()->SetOpacity(0.0f);
 }
diff --git a/ui/views/controls/slider.cc b/ui/views/controls/slider.cc
index 6d36f18..142dc3ed 100644
--- a/ui/views/controls/slider.cc
+++ b/ui/views/controls/slider.cc
@@ -74,7 +74,7 @@
 }  // namespace
 
 Slider::Slider(SliderListener* listener) : listener_(listener) {
-  highlight_animation_.SetSlideDuration(base::TimeDelta::FromMilliseconds(150));
+  highlight_animation_.SetSlideDuration(base::Milliseconds(150));
   SetFlipCanvasOnPaintForRTLUI(true);
 #if defined(OS_MAC)
   SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
@@ -188,7 +188,7 @@
     if (!move_animation_) {
       initial_animating_value_ = old_value;
       move_animation_ = std::make_unique<gfx::SlideAnimation>(this);
-      move_animation_->SetSlideDuration(base::TimeDelta::FromMilliseconds(150));
+      move_animation_->SetSlideDuration(base::Milliseconds(150));
       move_animation_->Show();
     }
     OnPropertyChanged(&value_, kPropertyEffectsNone);
diff --git a/ui/views/controls/slider_unittest.cc b/ui/views/controls/slider_unittest.cc
index a0110d4d..e425332 100644
--- a/ui/views/controls/slider_unittest.cc
+++ b/ui/views/controls/slider_unittest.cc
@@ -322,14 +322,14 @@
   slider()->SetValue(0.5);
   event_generator()->GestureScrollSequence(
       gfx::Point(0.5 * max_x(), 0.5 * max_y()), gfx::Point(0, 0),
-      base::TimeDelta::FromMilliseconds(10), 5 /* steps */);
+      base::Milliseconds(10), 5 /* steps */);
   EXPECT_EQ(GetMinValue(), slider()->GetValue());
 
   // Scroll above the maximum.
   slider()->SetValue(0.5);
   event_generator()->GestureScrollSequence(
       gfx::Point(0.5 * max_x(), 0.5 * max_y()), gfx::Point(max_x(), max_y()),
-      base::TimeDelta::FromMilliseconds(10), 5 /* steps */);
+      base::Milliseconds(10), 5 /* steps */);
   EXPECT_EQ(GetMaxValue(), slider()->GetValue());
 
   // Scroll somewhere in the middle.
@@ -337,8 +337,8 @@
   slider()->SetValue(0.25);
   event_generator()->GestureScrollSequence(
       gfx::Point(0.25 * max_x(), 0.25 * max_y()),
-      gfx::Point(0.78 * max_x(), 0.78 * max_y()),
-      base::TimeDelta::FromMilliseconds(10), 5 /* steps */);
+      gfx::Point(0.78 * max_x(), 0.78 * max_y()), base::Milliseconds(10),
+      5 /* steps */);
   if (GetParam() == TestSliderType::kContinuousTest) {
     // Continuous slider.
     EXPECT_NEAR(0.78, slider()->GetValue(), 0.03);
@@ -407,8 +407,8 @@
 
   event_generator()->GestureScrollSequence(
       gfx::Point(0.25 * max_x(), 0.25 * max_y()),
-      gfx::Point(0.75 * max_x(), 0.75 * max_y()),
-      base::TimeDelta::FromMilliseconds(0), 5 /* steps */);
+      gfx::Point(0.75 * max_x(), 0.75 * max_y()), base::Milliseconds(0),
+      5 /* steps */);
 
   EXPECT_EQ(1, slider_listener().last_drag_started_epoch());
   EXPECT_GT(slider_listener().last_drag_ended_epoch(),
diff --git a/ui/views/controls/tabbed_pane/tabbed_pane.cc b/ui/views/controls/tabbed_pane/tabbed_pane.cc
index f9100a1d..d1b16f26 100644
--- a/ui/views/controls/tabbed_pane/tabbed_pane.cc
+++ b/ui/views/controls/tabbed_pane/tabbed_pane.cc
@@ -316,8 +316,8 @@
   // These durations are taken from the Paper Tabs source:
   // https://github.com/PolymerElements/paper-tabs/blob/master/paper-tabs.html
   // See |selectionBar.expand| and |selectionBar.contract|.
-  expand_animation_->SetDuration(base::TimeDelta::FromMilliseconds(150));
-  contract_animation_->SetDuration(base::TimeDelta::FromMilliseconds(180));
+  expand_animation_->SetDuration(base::Milliseconds(150));
+  contract_animation_->SetDuration(base::Milliseconds(180));
 }
 
 TabStrip::~TabStrip() = default;
diff --git a/ui/views/controls/textfield/textfield.cc b/ui/views/controls/textfield/textfield.cc
index 39b811a..0911d60 100644
--- a/ui/views/controls/textfield/textfield.cc
+++ b/ui/views/controls/textfield/textfield.cc
@@ -155,7 +155,7 @@
     uint8_t is_mirroring =
         fromVKPropertyArray[ui::kPropertyFromVKIsMirroringIndex];
     if (!is_mirroring)
-      return base::TimeDelta::FromSeconds(1);
+      return base::Seconds(1);
   }
   return base::TimeDelta();
 }
@@ -196,16 +196,15 @@
 #if defined(OS_WIN)
   static const size_t system_value = ::GetCaretBlinkTime();
   if (system_value != 0) {
-    return (system_value == INFINITE)
-               ? base::TimeDelta()
-               : base::TimeDelta::FromMilliseconds(system_value);
+    return (system_value == INFINITE) ? base::TimeDelta()
+                                      : base::Milliseconds(system_value);
   }
 #elif defined(OS_MAC)
   base::TimeDelta system_value;
   if (ui::TextInsertionCaretBlinkPeriod(&system_value))
     return system_value;
 #endif
-  return base::TimeDelta::FromMilliseconds(500);
+  return base::Milliseconds(500);
 }
 
 // static
diff --git a/ui/views/controls/throbber.cc b/ui/views/controls/throbber.cc
index 2c7f69f..9608dde 100644
--- a/ui/views/controls/throbber.cc
+++ b/ui/views/controls/throbber.cc
@@ -39,7 +39,7 @@
 
   start_time_ = base::TimeTicks::Now();
   timer_.Start(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(30),
+      FROM_HERE, base::Milliseconds(30),
       base::BindRepeating(&Throbber::SchedulePaint, base::Unretained(this)));
   SchedulePaint();  // paint right away
 }
@@ -96,8 +96,8 @@
 // Smoothed throbber ---------------------------------------------------------
 
 SmoothedThrobber::SmoothedThrobber()
-    : start_delay_(base::TimeDelta::FromMilliseconds(200)),
-      stop_delay_(base::TimeDelta::FromMilliseconds(50)) {}
+    : start_delay_(base::Milliseconds(200)),
+      stop_delay_(base::Milliseconds(50)) {}
 
 SmoothedThrobber::~SmoothedThrobber() = default;
 
diff --git a/ui/views/corewm/tooltip_controller.cc b/ui/views/corewm/tooltip_controller.cc
index 3e6838df..dc3b6f7 100644
--- a/ui/views/corewm/tooltip_controller.cc
+++ b/ui/views/corewm/tooltip_controller.cc
@@ -26,8 +26,7 @@
 namespace corewm {
 namespace {
 
-constexpr auto kDefaultHideTooltipTimeoutInMs =
-    base::TimeDelta::FromSeconds(10);
+constexpr auto kDefaultHideTooltipTimeoutInMs = base::Seconds(10);
 
 // Returns true if |target| is a valid window to get the tooltip from.
 // |event_target| is the original target from the event and |target| the window
diff --git a/ui/views/corewm/tooltip_state_manager.cc b/ui/views/corewm/tooltip_state_manager.cc
index 83a5630f..9a7b31c 100644
--- a/ui/views/corewm/tooltip_state_manager.cc
+++ b/ui/views/corewm/tooltip_state_manager.cc
@@ -20,7 +20,7 @@
 namespace corewm {
 namespace {
 
-constexpr auto kDelayForTooltipUpdate = base::TimeDelta::FromMilliseconds(500);
+constexpr auto kDelayForTooltipUpdate = base::Milliseconds(500);
 #if defined(OS_WIN)
 // Drawing a long word in tooltip is very slow on Windows. crbug.com/513693
 constexpr size_t kMaxTooltipLength = 1024;
@@ -105,8 +105,7 @@
 }
 
 void TooltipStateManager::SetTooltipShowDelayedForTesting(bool is_delayed) {
-  tooltip_show_delay_ =
-      is_delayed ? kDelayForTooltipUpdate : base::TimeDelta::FromSeconds(0);
+  tooltip_show_delay_ = is_delayed ? kDelayForTooltipUpdate : base::Seconds(0);
 }
 
 void TooltipStateManager::ShowNow(const std::u16string& trimmed_text,
diff --git a/ui/views/examples/animation_example.cc b/ui/views/examples/animation_example.cc
index 7622490..c90117e6 100644
--- a/ui/views/examples/animation_example.cc
+++ b/ui/views/examples/animation_example.cc
@@ -156,7 +156,7 @@
 
 void SquaresLayoutManager::OnInstalled(View* host) {
   bounds_animator_ = std::make_unique<BoundsAnimator>(host, true);
-  bounds_animator_->SetAnimationDuration(base::TimeDelta::FromSeconds(1));
+  bounds_animator_->SetAnimationDuration(base::Seconds(1));
 }
 
 void AnimationExample::CreateExampleView(View* container) {
@@ -181,13 +181,13 @@
       // Property setting calls on the builder would be replaced with
       // view->SetOpacity(..) after animation integration with view::View class
       b.Once()
-          .SetDuration(base::TimeDelta::FromSeconds(10))
+          .SetDuration(base::Seconds(10))
           .SetRoundedCorners(view, rounded_corners);
       b.Repeatedly()
-          .SetDuration(base::TimeDelta::FromSeconds(2))
+          .SetDuration(base::Seconds(2))
           .SetOpacity(view, 0.4f, gfx::Tween::LINEAR_OUT_SLOW_IN)
           .Then()
-          .SetDuration(base::TimeDelta::FromSeconds(2))
+          .SetDuration(base::Seconds(2))
           .SetOpacity(view, 0.9f, gfx::Tween::EASE_OUT_3);
     }
   }
diff --git a/ui/views/examples/colored_dialog_example.cc b/ui/views/examples/colored_dialog_example.cc
index aa52409..aad8ad6 100644
--- a/ui/views/examples/colored_dialog_example.cc
+++ b/ui/views/examples/colored_dialog_example.cc
@@ -146,8 +146,7 @@
 }
 
 void ColoredDialogChooser::OnFeedbackSubmit(std::u16string text) {
-  constexpr base::TimeDelta kConfirmationDuration =
-      base::TimeDelta::FromSeconds(3);
+  constexpr base::TimeDelta kConfirmationDuration = base::Seconds(3);
 
   confirmation_label_->SetText(l10n_util::GetStringFUTF16(
       IDS_COLORED_DIALOG_CHOOSER_CONFIRM_LABEL, text));
diff --git a/ui/views/examples/fade_animation.cc b/ui/views/examples/fade_animation.cc
index a50a1e1..beeb93d5 100644
--- a/ui/views/examples/fade_animation.cc
+++ b/ui/views/examples/fade_animation.cc
@@ -96,12 +96,12 @@
 
   AnimationBuilder()
       .Repeatedly()
-      .Offset(base::TimeDelta::FromSeconds(2))
-      .SetDuration(base::TimeDelta::FromSeconds(1))
+      .Offset(base::Seconds(2))
+      .SetDuration(base::Seconds(1))
       .SetOpacity(primary_view_, 0.0f)
       .SetOpacity(secondary_view_, 1.0f)
-      .Offset(base::TimeDelta::FromSeconds(2))
-      .SetDuration(base::TimeDelta::FromSeconds(1))
+      .Offset(base::Seconds(2))
+      .SetDuration(base::Seconds(1))
       .SetOpacity(primary_view_, 1.0f)
       .SetOpacity(secondary_view_, 0.0f);
 }
diff --git a/ui/views/input_event_activation_protector.cc b/ui/views/input_event_activation_protector.cc
index 1167642..fd907009 100644
--- a/ui/views/input_event_activation_protector.cc
+++ b/ui/views/input_event_activation_protector.cc
@@ -30,7 +30,7 @@
     return false;
 
   const base::TimeDelta kShortInterval =
-      base::TimeDelta::FromMilliseconds(GetDoubleClickInterval());
+      base::Milliseconds(GetDoubleClickInterval());
   const bool short_event_after_last_event =
       event.time_stamp() < last_event_timestamp_ + kShortInterval;
   last_event_timestamp_ = event.time_stamp();
diff --git a/ui/views/layout/animating_layout_manager.h b/ui/views/layout/animating_layout_manager.h
index b2ec1aaf..015fb0e1 100644
--- a/ui/views/layout/animating_layout_manager.h
+++ b/ui/views/layout/animating_layout_manager.h
@@ -297,7 +297,7 @@
 
   // How long each animation takes. Depending on how far along an animation is,
   // a new target layout will either cause the animation to restart or redirect.
-  base::TimeDelta animation_duration_ = base::TimeDelta::FromMilliseconds(250);
+  base::TimeDelta animation_duration_ = base::Milliseconds(250);
 
   // The motion curve of the animation to perform.
   gfx::Tween::Type tween_type_ = gfx::Tween::EASE_IN_OUT;
diff --git a/ui/views/layout/animating_layout_manager_test_util.cc b/ui/views/layout/animating_layout_manager_test_util.cc
index 432f5ec..eb1d758 100644
--- a/ui/views/layout/animating_layout_manager_test_util.cc
+++ b/ui/views/layout/animating_layout_manager_test_util.cc
@@ -27,8 +27,7 @@
 }
 
 void ReduceAnimationDuration(AnimatingLayoutManager* layout_manager) {
-  static constexpr base::TimeDelta kSmallDuration =
-      base::TimeDelta::FromMilliseconds(1);
+  static constexpr base::TimeDelta kSmallDuration = base::Milliseconds(1);
   layout_manager->SetAnimationDuration(kSmallDuration);
 }
 
diff --git a/ui/views/layout/animating_layout_manager_unittest.cc b/ui/views/layout/animating_layout_manager_unittest.cc
index e7106bfb..25c9b61 100644
--- a/ui/views/layout/animating_layout_manager_unittest.cc
+++ b/ui/views/layout/animating_layout_manager_unittest.cc
@@ -145,8 +145,7 @@
 
     // Use linear transitions to make expected values predictable.
     animating_layout_manager_->SetTweenType(gfx::Tween::Type::LINEAR);
-    animating_layout_manager_->SetAnimationDuration(
-        base::TimeDelta::FromSeconds(1));
+    animating_layout_manager_->SetAnimationDuration(base::Seconds(1));
 
     if (UseContainerTestApi()) {
       container_test_api_ = std::make_unique<gfx::AnimationContainerTestApi>(
@@ -310,7 +309,7 @@
   SizeAndLayout();
 
   // Advance the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(250));
+  animation_api()->IncrementTime(base::Milliseconds(250));
   SizeAndLayout();
   ProposedLayout expected = ProposedLayoutBetween(0.25, layout1(), layout2());
   EXPECT_TRUE(layout()->is_animating());
@@ -318,7 +317,7 @@
   EnsureLayout(expected);
 
   // Advance again.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(250));
+  animation_api()->IncrementTime(base::Milliseconds(250));
   SizeAndLayout();
   expected = ProposedLayoutBetween(0.5, layout1(), layout2());
   EXPECT_TRUE(layout()->is_animating());
@@ -326,7 +325,7 @@
   EnsureLayout(expected);
 
   // Advance to completion.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   SizeAndLayout();
   expected = layout2();
   EXPECT_FALSE(layout()->is_animating());
@@ -408,21 +407,21 @@
   EnsureLayout(layout1());
 
   // Advance the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(250));
+  animation_api()->IncrementTime(base::Milliseconds(250));
   view()->Layout();
   ProposedLayout expected = ProposedLayoutBetween(0.25, layout1(), layout2());
   EXPECT_TRUE(layout()->is_animating());
   EnsureLayout(expected);
 
   // Advance again.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(250));
+  animation_api()->IncrementTime(base::Milliseconds(250));
   view()->Layout();
   expected = ProposedLayoutBetween(0.5, layout1(), layout2());
   EXPECT_TRUE(layout()->is_animating());
   EnsureLayout(expected);
 
   // Advance to completion.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
   expected = layout2();
   EXPECT_FALSE(layout()->is_animating());
@@ -459,7 +458,7 @@
   EnsureLayout(initial_layout);
 
   // Advance the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(250));
+  animation_api()->IncrementTime(base::Milliseconds(250));
   SizeAndLayout();
   ProposedLayout expected =
       ProposedLayoutBetween(0.25, initial_layout, final_layout);
@@ -476,7 +475,7 @@
   EnsureLayout(expected);
 
   // Advance the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(250));
+  animation_api()->IncrementTime(base::Milliseconds(250));
   SizeAndLayout();
   expected = ProposedLayoutBetween(0.5, initial_layout, final_layout);
   DCHECK_EQ(expected.child_layouts[1].child_view, child(1));
@@ -492,7 +491,7 @@
   EnsureLayout(expected);
 
   // Advance the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(250));
+  animation_api()->IncrementTime(base::Milliseconds(250));
   SizeAndLayout();
   expected = ProposedLayoutBetween(0.75, initial_layout, final_layout);
   // At this point the layout is still animating but the middle view is below
@@ -502,7 +501,7 @@
   EnsureLayout(expected);
 
   // Advance to completion.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(250));
+  animation_api()->IncrementTime(base::Milliseconds(250));
   SizeAndLayout();
   EXPECT_FALSE(layout()->is_animating());
   EXPECT_EQ(final_layout.host_size, view()->size());
@@ -539,7 +538,7 @@
   EnsureLayout(initial_layout);
 
   // Advance the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(250));
+  animation_api()->IncrementTime(base::Milliseconds(250));
   SizeAndLayout();
   ProposedLayout expected =
       ProposedLayoutBetween(0.25, initial_layout, final_layout);
@@ -556,7 +555,7 @@
   EnsureLayout(expected);
 
   // Advance the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(250));
+  animation_api()->IncrementTime(base::Milliseconds(250));
   SizeAndLayout();
   expected = ProposedLayoutBetween(0.5, initial_layout, final_layout);
   // At this point the layout is still animating but the middle view is below
@@ -566,7 +565,7 @@
   EnsureLayout(expected);
 
   // Advance to completion.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   SizeAndLayout();
   EXPECT_FALSE(layout()->is_animating());
   EXPECT_EQ(final_layout.host_size, view()->size());
@@ -603,7 +602,7 @@
   EnsureLayout(initial_layout);
 
   // Advance the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(250));
+  animation_api()->IncrementTime(base::Milliseconds(250));
   SizeAndLayout();
   ProposedLayout expected =
       ProposedLayoutBetween(0.25, initial_layout, final_layout);
@@ -618,7 +617,7 @@
   EnsureLayout(expected);
 
   // Advance the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(250));
+  animation_api()->IncrementTime(base::Milliseconds(250));
   SizeAndLayout();
   expected = ProposedLayoutBetween(0.5, initial_layout, final_layout);
   // At this point the layout is still animating but the middle view is below
@@ -628,7 +627,7 @@
   EnsureLayout(expected);
 
   // Advance to completion.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   SizeAndLayout();
   EXPECT_FALSE(layout()->is_animating());
   EXPECT_EQ(final_layout.host_size, view()->size());
@@ -667,7 +666,7 @@
   EnsureLayout(initial_layout);
 
   // Advance the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   SizeAndLayout();
   ProposedLayout expected =
       ProposedLayoutBetween(0.5, initial_layout, final_layout);
@@ -678,7 +677,7 @@
   EnsureLayout(expected);
 
   // Advance the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(250));
+  animation_api()->IncrementTime(base::Milliseconds(250));
   SizeAndLayout();
   expected = ProposedLayoutBetween(0.75, initial_layout, final_layout);
   DCHECK_EQ(expected.child_layouts[2].child_view, child(2));
@@ -694,7 +693,7 @@
   EnsureLayout(expected);
 
   // Advance to completion.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   SizeAndLayout();
   EXPECT_FALSE(layout()->is_animating());
   EXPECT_EQ(final_layout.host_size, view()->size());
@@ -732,7 +731,7 @@
   EnsureLayout(initial_layout);
 
   // Advance the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(250));
+  animation_api()->IncrementTime(base::Milliseconds(250));
   SizeAndLayout();
   ProposedLayout expected =
       ProposedLayoutBetween(0.25, initial_layout, final_layout);
@@ -749,7 +748,7 @@
   EnsureLayout(expected);
 
   // Advance the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(250));
+  animation_api()->IncrementTime(base::Milliseconds(250));
   SizeAndLayout();
   expected = ProposedLayoutBetween(0.5, initial_layout, final_layout);
   // At this point the layout is still animating but the middle view is below
@@ -759,7 +758,7 @@
   EnsureLayout(expected);
 
   // Advance to completion.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   SizeAndLayout();
   EXPECT_FALSE(layout()->is_animating());
   EXPECT_EQ(final_layout.host_size, view()->size());
@@ -797,7 +796,7 @@
   EnsureLayout(initial_layout);
 
   // Advance the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(250));
+  animation_api()->IncrementTime(base::Milliseconds(250));
   view()->Layout();
   ProposedLayout expected =
       ProposedLayoutBetween(0.25, initial_layout, final_layout);
@@ -813,7 +812,7 @@
   EnsureLayout(expected);
 
   // Advance the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(250));
+  animation_api()->IncrementTime(base::Milliseconds(250));
   SizeAndLayout();
   expected = ProposedLayoutBetween(0.5, initial_layout, final_layout);
   // At this point the layout is still animating but the middle view is below
@@ -822,7 +821,7 @@
   EnsureLayout(expected);
 
   // Advance to completion.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   SizeAndLayout();
   EXPECT_FALSE(layout()->is_animating());
   EnsureLayout(final_layout);
@@ -855,7 +854,7 @@
   layout()->FadeOut(child(1));
   EXPECT_TRUE(layout()->is_animating());
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
 
   const ProposedLayout middle_layout{
@@ -863,7 +862,7 @@
       {{child(0), true, {5, 5, 10, 10}}, {child(1), false}, {child(2), false}}};
   EnsureLayout(middle_layout);
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
   const ProposedLayout final_layout{{20, 35},
                                     {{child(0), true, {5, 5, 10, 10}},
@@ -899,7 +898,7 @@
   layout()->FadeOut(child(1));
   EXPECT_TRUE(layout()->is_animating());
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(1000));
+  animation_api()->IncrementTime(base::Milliseconds(1000));
   view()->Layout();
 
   const ProposedLayout final_layout{{20, 35},
@@ -973,21 +972,21 @@
   EnsureLayout(expected_layout);
 
   // Advance the animation 20%.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(200));
+  animation_api()->IncrementTime(base::Milliseconds(200));
   SizeAndLayout();
   expected_layout.host_size = {38, 20};
   expected_layout.child_layouts[2].bounds = {23, 5, 10, 10};
   EnsureLayout(expected_layout);
 
   // Advance the animation 60%.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(600));
+  animation_api()->IncrementTime(base::Milliseconds(600));
   SizeAndLayout();
   expected_layout.host_size = {47, 20};
   expected_layout.child_layouts[2].bounds = {32, 5, 10, 10};
   EnsureLayout(expected_layout);
 
   // Advance the animation to completion.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(200));
+  animation_api()->IncrementTime(base::Milliseconds(200));
   SizeAndLayout();
   EnsureLayout(final_layout);
 }
@@ -1021,21 +1020,21 @@
   EnsureLayout(expected_layout);
 
   // Advance the animation 20%.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(200));
+  animation_api()->IncrementTime(base::Milliseconds(200));
   SizeAndLayout();
   expected_layout.host_size = {20, 38};
   expected_layout.child_layouts[2].bounds = {5, 23, 10, 10};
   EnsureLayout(expected_layout);
 
   // Advance the animation 60%.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(600));
+  animation_api()->IncrementTime(base::Milliseconds(600));
   SizeAndLayout();
   expected_layout.host_size = {20, 47};
   expected_layout.child_layouts[2].bounds = {5, 32, 10, 10};
   EnsureLayout(expected_layout);
 
   // Advance the animation to completion.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(200));
+  animation_api()->IncrementTime(base::Milliseconds(200));
   SizeAndLayout();
   EnsureLayout(final_layout);
 }
@@ -1069,7 +1068,7 @@
   EnsureLayout(expected_layout);
 
   // Advance the animation 20%.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(200));
+  animation_api()->IncrementTime(base::Milliseconds(200));
   SizeAndLayout();
   expected_layout.host_size = {47, 20};
   expected_layout.child_layouts[1].bounds = {18, 5, 5, 10};
@@ -1077,7 +1076,7 @@
   EnsureLayout(expected_layout);
 
   // Advance the animation 60%.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(600));
+  animation_api()->IncrementTime(base::Milliseconds(600));
   SizeAndLayout();
   expected_layout.host_size = {38, 20};
   expected_layout.child_layouts[1].bounds = {12, 5, 5, 10};
@@ -1085,7 +1084,7 @@
   EnsureLayout(expected_layout);
 
   // Advance the animation to completion.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(200));
+  animation_api()->IncrementTime(base::Milliseconds(200));
   SizeAndLayout();
   EnsureLayout(final_layout);
 }
@@ -1120,7 +1119,7 @@
   EnsureLayout(expected_layout);
 
   // Advance the animation 20%.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(200));
+  animation_api()->IncrementTime(base::Milliseconds(200));
   SizeAndLayout();
   expected_layout.host_size = {38, 20};
   expected_layout.child_layouts[1].bounds = {17, 5, 5, 10};
@@ -1128,7 +1127,7 @@
   EnsureLayout(expected_layout);
 
   // Advance the animation 60%.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(600));
+  animation_api()->IncrementTime(base::Milliseconds(600));
   SizeAndLayout();
   expected_layout.host_size = {47, 20};
   expected_layout.child_layouts[1].bounds = {8, 5, 5, 10};
@@ -1136,7 +1135,7 @@
   EnsureLayout(expected_layout);
 
   // Advance the animation to completion.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(200));
+  animation_api()->IncrementTime(base::Milliseconds(200));
   SizeAndLayout();
   EnsureLayout(final_layout);
 }
@@ -1170,7 +1169,7 @@
   EnsureLayout(expected_layout);
 
   // Advance the animation 20%.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(200));
+  animation_api()->IncrementTime(base::Milliseconds(200));
   SizeAndLayout();
   expected_layout.host_size = {47, 20};
   expected_layout.child_layouts[1].bounds = {20, 5, 5, 10};
@@ -1178,7 +1177,7 @@
   EnsureLayout(expected_layout);
 
   // Advance the animation 60%.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(600));
+  animation_api()->IncrementTime(base::Milliseconds(600));
   SizeAndLayout();
   expected_layout.host_size = {38, 20};
   expected_layout.child_layouts[1].bounds = {20, 5, 5, 10};
@@ -1186,7 +1185,7 @@
   EnsureLayout(expected_layout);
 
   // Advance the animation to completion.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(200));
+  animation_api()->IncrementTime(base::Milliseconds(200));
   SizeAndLayout();
   EnsureLayout(final_layout);
 }
@@ -1233,7 +1232,7 @@
   EXPECT_TRUE(layout()->is_animating());
   EnsureLayout(expected_start);
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
   EXPECT_TRUE(layout()->is_animating());
   ProposedLayout expected =
@@ -1244,7 +1243,7 @@
       expected.child_layouts[1].bounds.x() - 10);
   EnsureLayout(expected);
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
   EXPECT_FALSE(layout()->is_animating());
   EnsureLayout(expected_end);
@@ -1293,7 +1292,7 @@
   EXPECT_TRUE(layout()->is_animating());
   EnsureLayout(expected_start);
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
   EXPECT_TRUE(layout()->is_animating());
   ProposedLayout expected =
@@ -1304,7 +1303,7 @@
       expected.child_layouts[1].bounds.x() - 10);
   EnsureLayout(expected);
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
   EXPECT_FALSE(layout()->is_animating());
   EnsureLayout(expected_end);
@@ -1358,7 +1357,7 @@
   EXPECT_TRUE(layout()->is_animating());
   EnsureLayout(expected_start);
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
   EXPECT_TRUE(layout()->is_animating());
   ProposedLayout expected =
@@ -1369,7 +1368,7 @@
       expected.child_layouts[1].bounds.x() - 10);
   EnsureLayout(expected);
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
   EXPECT_FALSE(layout()->is_animating());
   EnsureLayout(expected_end);
@@ -1424,7 +1423,7 @@
   EXPECT_TRUE(layout()->is_animating());
   EnsureLayout(expected_start);
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
   EXPECT_TRUE(layout()->is_animating());
   ProposedLayout expected =
@@ -1435,7 +1434,7 @@
       expected.child_layouts[1].bounds.x() - 10);
   EnsureLayout(expected);
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
   EXPECT_FALSE(layout()->is_animating());
   EnsureLayout(expected_end);
@@ -1470,7 +1469,7 @@
 
   layout()->FadeOut(child(1));
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
   EXPECT_TRUE(layout()->is_animating());
 
@@ -1478,11 +1477,11 @@
   view()->RemoveChildView(child1);
   delete child1;
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(250));
+  animation_api()->IncrementTime(base::Milliseconds(250));
   view()->Layout();
   EXPECT_TRUE(layout()->is_animating());
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(250));
+  animation_api()->IncrementTime(base::Milliseconds(250));
   view()->Layout();
   EXPECT_FALSE(layout()->is_animating());
 }
@@ -1510,7 +1509,7 @@
 
   layout()->FadeIn(child(1));
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
   EXPECT_TRUE(layout()->is_animating());
 
@@ -1518,11 +1517,11 @@
   view()->RemoveChildView(child1);
   delete child1;
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(250));
+  animation_api()->IncrementTime(base::Milliseconds(250));
   view()->Layout();
   EXPECT_TRUE(layout()->is_animating());
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(250));
+  animation_api()->IncrementTime(base::Milliseconds(250));
   view()->Layout();
   EXPECT_FALSE(layout()->is_animating());
 }
@@ -1554,7 +1553,7 @@
   child(1)->SetVisible(true);
 
   EXPECT_TRUE(layout()->is_animating());
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
   EXPECT_TRUE(layout()->is_animating());
 
@@ -1566,7 +1565,7 @@
   EnsureLayout(expected_middle, "during first slide");
 
   // Complete the layout.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
 
   EXPECT_FALSE(layout()->is_animating());
@@ -1582,13 +1581,13 @@
   child(1)->SetVisible(false);
 
   EXPECT_TRUE(layout()->is_animating());
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
   EXPECT_TRUE(layout()->is_animating());
   EnsureLayout(expected_middle, "during second slide");
 
   // Complete the layout.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
   EXPECT_FALSE(layout()->is_animating());
   EnsureLayout(expected_start, "after second slide");
@@ -1637,7 +1636,7 @@
   layout()->FadeIn(child(2));
 
   // Advance the layout most of the way.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(750));
+  animation_api()->IncrementTime(base::Milliseconds(750));
   view()->Layout();
 
   // Verify that the two views are visible and that they have passed each other.
@@ -1655,7 +1654,7 @@
   layout()->FadeOut(child(2));
 
   // Advance the layout most of the way.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(150));
+  animation_api()->IncrementTime(base::Milliseconds(150));
   view()->Layout();
 
   EXPECT_TRUE(child(1)->GetVisible());
@@ -1693,7 +1692,7 @@
   EXPECT_FALSE(action_run);
 
   // Advance the animation to the end.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(1000));
+  animation_api()->IncrementTime(base::Milliseconds(1000));
   SizeAndLayout();
   // We should be done and tasks will post.
   EXPECT_FALSE(layout()->is_animating());
@@ -1734,7 +1733,7 @@
   EXPECT_FALSE(action_run);
 
   // Advance the animation to the end.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(1000));
+  animation_api()->IncrementTime(base::Milliseconds(1000));
   view()->Layout();
   // We should be done and tasks will post.
   EXPECT_FALSE(layout()->is_animating());
@@ -1783,7 +1782,7 @@
   EXPECT_FALSE(action_run);
 
   // Advance the animation to the end.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(1000));
+  animation_api()->IncrementTime(base::Milliseconds(1000));
   view()->Layout();
   // We should be done and tasks will post.
   EXPECT_FALSE(layout()->is_animating());
@@ -1820,7 +1819,7 @@
 
   // Advance the animation. Second view should still be visible, third view
   // should be hidden.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
 
   // Remove third view.
   View* const child2 = child(2);
@@ -1880,7 +1879,7 @@
   EXPECT_TRUE(layout()->is_animating());
   EnsureLayout(after_add);
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
   EXPECT_TRUE(layout()->is_animating());
   ProposedLayout expected = ProposedLayoutBetween(0.5, after_add, expected_end);
@@ -1890,7 +1889,7 @@
       expected.child_layouts[1].bounds.x() - 10);
   EnsureLayout(expected);
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
   EXPECT_FALSE(layout()->is_animating());
   EnsureLayout(expected_end);
@@ -1939,7 +1938,7 @@
   EXPECT_TRUE(layout()->is_animating());
   EnsureLayout(expected_start);
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
   EXPECT_TRUE(layout()->is_animating());
   ProposedLayout expected =
@@ -1950,7 +1949,7 @@
       expected.child_layouts[1].bounds.x() - 10);
   EnsureLayout(expected);
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
   EXPECT_FALSE(layout()->is_animating());
   EnsureLayout(expected_end);
@@ -1998,7 +1997,7 @@
   EXPECT_TRUE(layout()->is_animating());
   EnsureLayout(expected_start);
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
   EXPECT_TRUE(layout()->is_animating());
   ProposedLayout expected =
@@ -2009,7 +2008,7 @@
       expected.child_layouts[1].bounds.x() - 10);
   EnsureLayout(expected);
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
   EXPECT_FALSE(layout()->is_animating());
   EnsureLayout(expected_end);
@@ -2063,14 +2062,14 @@
   EXPECT_TRUE(layout()->is_animating());
   EnsureLayout(after_remove);
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
   EXPECT_TRUE(layout()->is_animating());
   ProposedLayout expected =
       ProposedLayoutBetween(0.5, after_remove, expected_end);
   EnsureLayout(expected);
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
   EXPECT_FALSE(layout()->is_animating());
   EnsureLayout(expected_end);
@@ -2118,14 +2117,14 @@
   EXPECT_TRUE(layout()->is_animating());
   EnsureLayout(expected_start);
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
   EXPECT_TRUE(layout()->is_animating());
   ProposedLayout expected =
       ProposedLayoutBetween(0.5, expected_start, expected_end);
   EnsureLayout(expected);
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
   EXPECT_FALSE(layout()->is_animating());
   EnsureLayout(expected_end);
@@ -2174,13 +2173,13 @@
       ProposedLayoutBetween(0.0, expected_start, expected_end);
   EnsureLayout(expected);
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
   EXPECT_TRUE(layout()->is_animating());
   expected = ProposedLayoutBetween(0.5, expected_start, expected_end);
   EnsureLayout(expected);
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
   EXPECT_FALSE(layout()->is_animating());
   EnsureLayout(expected_end);
@@ -2229,13 +2228,13 @@
       ProposedLayoutBetween(0.0, expected_start, expected_end);
   EnsureLayout(expected);
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
   EXPECT_TRUE(layout()->is_animating());
   expected = ProposedLayoutBetween(0.5, expected_start, expected_end);
   EnsureLayout(expected);
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
   EXPECT_FALSE(layout()->is_animating());
   EnsureLayout(expected_end);
@@ -2282,7 +2281,7 @@
 
   child(0)->SetVisible(false);
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
   EXPECT_TRUE(layout()->is_animating());
   ProposedLayout expected =
@@ -2291,13 +2290,13 @@
 
   child(2)->SetVisible(false);
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(250));
+  animation_api()->IncrementTime(base::Milliseconds(250));
   view()->Layout();
   EXPECT_TRUE(layout()->is_animating());
   expected = ProposedLayoutBetween(0.5, expected, expected_end2);
   EnsureLayout(expected);
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(250));
+  animation_api()->IncrementTime(base::Milliseconds(250));
   view()->Layout();
   EXPECT_FALSE(layout()->is_animating());
   EnsureLayout(expected_end2);
@@ -2344,7 +2343,7 @@
 
   child(0)->SetVisible(false);
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(900));
+  animation_api()->IncrementTime(base::Milliseconds(900));
   view()->Layout();
   EXPECT_TRUE(layout()->is_animating());
   ProposedLayout expected =
@@ -2357,13 +2356,13 @@
   expected = ProposedLayoutBetween(0.0, expected, expected_end2);
   EnsureLayout(expected);
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
   EXPECT_TRUE(layout()->is_animating());
   expected = ProposedLayoutBetween(0.5, expected, expected_end2);
   EnsureLayout(expected);
 
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   view()->Layout();
   EXPECT_FALSE(layout()->is_animating());
   EnsureLayout(expected_end2);
@@ -2389,7 +2388,7 @@
   EXPECT_EQ(expected1, logger.events());
 
   // Advance to completion.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(1000));
+  animation_api()->IncrementTime(base::Milliseconds(1000));
   EXPECT_TRUE(layout()->is_animating());
   EXPECT_EQ(expected1, logger.events());
 
@@ -2430,7 +2429,7 @@
   EXPECT_FALSE(action2_called);
 
   // Advance partially.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   SizeAndLayout();
   EXPECT_TRUE(layout()->is_animating());
   RunCurrentTasks();
@@ -2438,7 +2437,7 @@
   EXPECT_FALSE(action2_called);
 
   // Advance to completion.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   EXPECT_TRUE(layout()->is_animating());
   RunCurrentTasks();
   EXPECT_FALSE(action1_called);
@@ -2481,7 +2480,7 @@
   EXPECT_FALSE(action2_called);
 
   // Advance partially.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(850));
+  animation_api()->IncrementTime(base::Milliseconds(850));
   SizeAndLayout();
   EXPECT_TRUE(layout()->is_animating());
   RunCurrentTasks();
@@ -2493,7 +2492,7 @@
   view()->InvalidateLayout();
 
   // Advance partially.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   SizeAndLayout();
   EXPECT_TRUE(layout()->is_animating());
   RunCurrentTasks();
@@ -2501,7 +2500,7 @@
   EXPECT_FALSE(action2_called);
 
   // Advance to completion.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   EXPECT_TRUE(layout()->is_animating());
   RunCurrentTasks();
   EXPECT_FALSE(action1_called);
@@ -2541,7 +2540,7 @@
   EXPECT_TRUE(layout()->is_animating());
 
   // Advance partially.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   SizeAndLayout();
   EXPECT_TRUE(layout()->is_animating());
 
@@ -2596,14 +2595,14 @@
   EXPECT_FALSE(action2_called);
 
   // Advance partially.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   SizeAndLayout();
   EXPECT_TRUE(layout()->is_animating());
   RunCurrentTasks();
   EXPECT_FALSE(action2_called);
 
   // Advance to completion.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   EXPECT_TRUE(layout()->is_animating());
   RunCurrentTasks();
   EXPECT_FALSE(action2_called);
@@ -2639,12 +2638,12 @@
   EXPECT_EQ(view()->children(), view()->GetChildrenInZOrder());
 
   // Advance partially.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   SizeAndLayout();
   EXPECT_EQ(view()->children(), view()->GetChildrenInZOrder());
 
   // Advance to end.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   SizeAndLayout();
   EXPECT_EQ(view()->children(), view()->GetChildrenInZOrder());
 }
@@ -2679,12 +2678,12 @@
   EXPECT_EQ(expected_order, view()->GetChildrenInZOrder());
 
   // Advance partially.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   SizeAndLayout();
   EXPECT_EQ(expected_order, view()->GetChildrenInZOrder());
 
   // Advance to end (restores Z order).
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   SizeAndLayout();
   EXPECT_EQ(view()->children(), view()->GetChildrenInZOrder());
 }
@@ -2719,12 +2718,12 @@
   EXPECT_EQ(expected_order, view()->GetChildrenInZOrder());
 
   // Advance partially.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   SizeAndLayout();
   EXPECT_EQ(expected_order, view()->GetChildrenInZOrder());
 
   // Advance to end (restores Z order).
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   SizeAndLayout();
   EXPECT_EQ(view()->children(), view()->GetChildrenInZOrder());
 }
@@ -2743,7 +2742,7 @@
   SizeAndLayout();
 
   // Advance the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   // Layout 2 is 200 across. Halfway is 150. Getting less should halt the
   // animation. Note that calling SetSize() should result in a Layout() call.
   view()->SetSize({140, 200});
@@ -2770,7 +2769,7 @@
   EXPECT_FALSE(action_called);
 
   // Advance the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   // Layout 2 is 200 across. Halfway is 150. Getting less should halt the
   // animation. Note that calling SetSize() should result in a Layout() call.
   view()->SetSize({140, 200});
@@ -2793,7 +2792,7 @@
   SizeAndLayout();
 
   // Advance the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   // Layout 2 is 200 across. Halfway is 150. Getting less should halt the
   // animation. Note that calling SetSize() should result in a Layout() call.
   view()->SetSize({140, 200});
@@ -2803,15 +2802,14 @@
   EXPECT_TRUE(layout()->is_animating());
 
   // And this should halt it again.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(200));
+  animation_api()->IncrementTime(base::Milliseconds(200));
   view()->Layout();
   EXPECT_FALSE(layout()->is_animating());
 }
 
 namespace {
 
-constexpr base::TimeDelta kMinimumAnimationTime =
-    base::TimeDelta::FromMilliseconds(50);
+constexpr base::TimeDelta kMinimumAnimationTime = base::Milliseconds(50);
 
 // Layout manager which immediately lays out its child views when it is
 // invalidated.
@@ -2993,7 +2991,7 @@
 
   // Complete the animation.
   AnimationEventLogger logger(layout());
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(1000));
+  animation_api()->IncrementTime(base::Milliseconds(1000));
   EXPECT_FALSE(layout()->is_animating());
   EXPECT_EQ(gfx::Size(35, 20), view()->size());
   EXPECT_TRUE(child(0)->GetVisible());
@@ -3033,14 +3031,14 @@
 
   // Complete the animation.
   AnimationEventLogger logger(layout());
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(1000));
+  animation_api()->IncrementTime(base::Milliseconds(1000));
   EXPECT_FALSE(layout()->is_animating());
 
   // Unconstrain the bounds and do another layout.
   root_layout()->SetSizeBounds({80, 30});
   root_view()->Layout();
   EXPECT_TRUE(layout()->is_animating());
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(1000));
+  animation_api()->IncrementTime(base::Milliseconds(1000));
   EXPECT_FALSE(layout()->is_animating());
   EXPECT_EQ(gfx::Size(50, 20), view()->GetPreferredSize());
   EXPECT_EQ(gfx::Size(50, 20), view()->size());
@@ -3076,7 +3074,7 @@
 
   // Complete the animation.
   AnimationEventLogger logger(layout());
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(1000));
+  animation_api()->IncrementTime(base::Milliseconds(1000));
   EXPECT_FALSE(layout()->is_animating());
   EXPECT_TRUE(child(0)->GetVisible());
   EXPECT_EQ(gfx::Rect(5, 5, 10, 10), child(0)->bounds());
@@ -3088,7 +3086,7 @@
   root_layout()->SetSizeBounds({30, 80});
   root_view()->Layout();
   EXPECT_TRUE(layout()->is_animating());
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(1000));
+  animation_api()->IncrementTime(base::Milliseconds(1000));
   EXPECT_FALSE(layout()->is_animating());
   EXPECT_EQ(gfx::Size(20, 50), view()->GetPreferredSize());
   EXPECT_EQ(gfx::Size(20, 50), view()->size());
@@ -3131,13 +3129,13 @@
   // animation (35 px wide), but smaller than the target (50px wide).
   AnimationEventLogger logger(layout());
   root_layout()->SetSizeBounds({45, 25});
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
 
   // This should redirect the animation.
   EXPECT_TRUE(layout()->is_animating());
 
   // Finish the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   EXPECT_FALSE(layout()->is_animating());
   EXPECT_EQ(gfx::Size(35, 20), view()->size());
   EXPECT_TRUE(child(0)->GetVisible());
@@ -3177,7 +3175,7 @@
   // animation (35 px wide).
   AnimationEventLogger logger(layout());
   root_layout()->SetSizeBounds({25, 25});
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
 
   // This should stop the animation.
   EXPECT_FALSE(layout()->is_animating());
@@ -3288,7 +3286,7 @@
   EXPECT_TRUE(layout()->is_animating());
 
   // Finish the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(1000));
+  animation_api()->IncrementTime(base::Milliseconds(1000));
   EXPECT_FALSE(layout()->is_animating());
   EXPECT_EQ(gfx::Size(50, 20), view()->size());
   EXPECT_TRUE(child(0)->GetVisible());
@@ -3339,7 +3337,7 @@
 
   // Complete the animation.
   AnimationEventLogger logger(layout());
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(1000));
+  animation_api()->IncrementTime(base::Milliseconds(1000));
   EXPECT_FALSE(layout()->is_animating());
   EXPECT_EQ(gfx::Size(45, 20), view()->size());
   EXPECT_TRUE(child(0)->GetVisible());
@@ -3381,14 +3379,14 @@
 
   // Complete the animation.
   AnimationEventLogger logger(layout());
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(1000));
+  animation_api()->IncrementTime(base::Milliseconds(1000));
   EXPECT_FALSE(layout()->is_animating());
 
   // Unconstrain the bounds and do another layout.
   root_layout()->SetSizeBounds({80, 30});
   root_view()->Layout();
   EXPECT_TRUE(layout()->is_animating());
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(1000));
+  animation_api()->IncrementTime(base::Milliseconds(1000));
   EXPECT_FALSE(layout()->is_animating());
   EXPECT_EQ(gfx::Size(50, 20), view()->GetPreferredSize());
   EXPECT_EQ(gfx::Size(50, 20), view()->size());
@@ -3426,13 +3424,13 @@
   // animation (35 px wide), but smaller than the target (50px wide).
   AnimationEventLogger logger(layout());
   root_layout()->SetSizeBounds({45, 25});
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
 
   // This should redirect the animation.
   EXPECT_TRUE(layout()->is_animating());
 
   // Finish the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   EXPECT_FALSE(layout()->is_animating());
   EXPECT_EQ(gfx::Size(45, 20), view()->size());
   EXPECT_TRUE(child(0)->GetVisible());
@@ -3475,7 +3473,7 @@
   // animation (35 px wide).
   AnimationEventLogger logger(layout());
   root_layout()->SetSizeBounds({25, 25});
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
 
   // This should stop the animation.
   EXPECT_FALSE(layout()->is_animating());
@@ -3591,7 +3589,7 @@
   EXPECT_TRUE(layout()->is_animating());
 
   // Finish the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(1000));
+  animation_api()->IncrementTime(base::Milliseconds(1000));
   EXPECT_FALSE(layout()->is_animating());
   EXPECT_EQ(gfx::Size(50, 20), view()->size());
   EXPECT_TRUE(child(0)->GetVisible());
@@ -3636,12 +3634,12 @@
   EXPECT_TRUE(layout()->is_animating());
 
   // Advance the animation halfway.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   EXPECT_TRUE(layout()->is_animating());
   EXPECT_EQ(gfx::Size(25, 5), view()->size());
 
   // Finish the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   EXPECT_FALSE(layout()->is_animating());
   EXPECT_EQ(gfx::Size(20, 5), view()->size());
   EXPECT_TRUE(child(0)->GetVisible());
@@ -3684,12 +3682,12 @@
   EXPECT_TRUE(layout()->is_animating());
 
   // Advance the animation halfway.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   EXPECT_TRUE(layout()->is_animating());
   EXPECT_EQ(gfx::Size(5, 25), view()->size());
 
   // Finish the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   EXPECT_FALSE(layout()->is_animating());
   EXPECT_EQ(gfx::Size(5, 20), view()->size());
   EXPECT_TRUE(child(0)->GetVisible());
@@ -3730,7 +3728,7 @@
   EXPECT_TRUE(layout()->is_animating());
 
   // Advance the animation halfway.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   EXPECT_TRUE(layout()->is_animating());
   EXPECT_EQ(gfx::Size(25, 5), view()->size());
 
@@ -3779,7 +3777,7 @@
   EXPECT_TRUE(layout()->is_animating());
 
   // Advance the animation halfway.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   EXPECT_TRUE(layout()->is_animating());
   EXPECT_EQ(gfx::Size(5, 25), view()->size());
 
@@ -3822,7 +3820,7 @@
   EXPECT_TRUE(layout()->is_animating());
 
   // Finish the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(1000));
+  animation_api()->IncrementTime(base::Milliseconds(1000));
   EXPECT_FALSE(layout()->is_animating());
   EXPECT_EQ(gfx::Size(30, 20), view()->size());
   EXPECT_TRUE(child(0)->GetVisible());
@@ -3836,7 +3834,7 @@
   EXPECT_TRUE(layout()->is_animating());
 
   // Finish the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(1000));
+  animation_api()->IncrementTime(base::Milliseconds(1000));
   EXPECT_FALSE(layout()->is_animating());
   EXPECT_EQ(gfx::Size(30, 20), view()->size());
   EXPECT_TRUE(child(0)->GetVisible());
@@ -3850,7 +3848,7 @@
   EXPECT_TRUE(layout()->is_animating());
 
   // Finish the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(1000));
+  animation_api()->IncrementTime(base::Milliseconds(1000));
   EXPECT_FALSE(layout()->is_animating());
   EXPECT_EQ(gfx::Size(30, 20), view()->size());
   EXPECT_TRUE(child(0)->GetVisible());
@@ -3890,7 +3888,7 @@
   EXPECT_TRUE(layout()->is_animating());
 
   // Finish the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(1000));
+  animation_api()->IncrementTime(base::Milliseconds(1000));
   EXPECT_FALSE(layout()->is_animating());
   EXPECT_EQ(gfx::Size(20, 30), view()->size());
   EXPECT_TRUE(child(0)->GetVisible());
@@ -3904,7 +3902,7 @@
   EXPECT_TRUE(layout()->is_animating());
 
   // Finish the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(1000));
+  animation_api()->IncrementTime(base::Milliseconds(1000));
   EXPECT_FALSE(layout()->is_animating());
   EXPECT_EQ(gfx::Size(20, 30), view()->size());
   EXPECT_TRUE(child(0)->GetVisible());
@@ -3918,7 +3916,7 @@
   EXPECT_TRUE(layout()->is_animating());
 
   // Finish the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(1000));
+  animation_api()->IncrementTime(base::Milliseconds(1000));
   EXPECT_FALSE(layout()->is_animating());
   EXPECT_EQ(gfx::Size(20, 30), view()->size());
   EXPECT_TRUE(child(0)->GetVisible());
@@ -4177,7 +4175,7 @@
   // Shrink the view by hiding a child view.
   child(0)->SetVisible(false);
   EXPECT_TRUE(layout()->is_animating());
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(1000));
+  animation_api()->IncrementTime(base::Milliseconds(1000));
   root_view()->Layout();
   EXPECT_FALSE(layout()->is_animating());
   EXPECT_EQ(target_layout()->GetPreferredSize(view()), view()->size());
@@ -4187,7 +4185,7 @@
   // Grow the view back to its original size.
   child(0)->SetVisible(true);
   EXPECT_TRUE(layout()->is_animating());
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(1000));
+  animation_api()->IncrementTime(base::Milliseconds(1000));
   root_view()->Layout();
   EXPECT_FALSE(layout()->is_animating());
   EXPECT_EQ(target_layout()->GetPreferredSize(view()), view()->size());
@@ -4210,7 +4208,7 @@
 
   // Shrink the view by hiding a child view.
   child(0)->SetVisible(false);
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(1000));
+  animation_api()->IncrementTime(base::Milliseconds(1000));
   root_view()->Layout();
   // Do an extra layout.
   root_view()->Layout();
@@ -4219,7 +4217,7 @@
 
   // Grow the view back to its original size.
   child(0)->SetVisible(true);
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(1000));
+  animation_api()->IncrementTime(base::Milliseconds(1000));
   root_view()->Layout();
   // Do an extra layout.
   root_view()->Layout();
@@ -4243,7 +4241,7 @@
   child(0)->SetVisible(false);
   child(1)->SetVisible(false);
   EXPECT_TRUE(layout()->is_animating());
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(1000));
+  animation_api()->IncrementTime(base::Milliseconds(1000));
   root_view()->Layout();
   EXPECT_FALSE(layout()->is_animating());
   EXPECT_EQ(gfx::Size(20, 20), view()->size());
@@ -4253,7 +4251,7 @@
   child(0)->SetVisible(true);
   child(1)->SetVisible(true);
   EXPECT_TRUE(layout()->is_animating());
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(1000));
+  animation_api()->IncrementTime(base::Milliseconds(1000));
   root_view()->Layout();
   EXPECT_FALSE(layout()->is_animating());
   EXPECT_EQ(gfx::Size(35, 20), view()->size());
@@ -4278,7 +4276,7 @@
   // Shrink the view by hiding child views.
   child(0)->SetVisible(false);
   child(1)->SetVisible(false);
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(1000));
+  animation_api()->IncrementTime(base::Milliseconds(1000));
   root_view()->Layout();
   // Do an extra layout.
   root_view()->Layout();
@@ -4288,7 +4286,7 @@
   // Grow the view back to a constrained size.
   child(0)->SetVisible(true);
   child(1)->SetVisible(true);
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(1000));
+  animation_api()->IncrementTime(base::Milliseconds(1000));
   root_view()->Layout();
   // Do an extra layout.
   root_view()->Layout();
@@ -4320,7 +4318,7 @@
   // Grow the view back to full size.
   child(0)->SetVisible(true);
   child(1)->SetVisible(true);
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
 
   // Constrain the layout before continuing.
   other_view()->SetPreferredSize({5, 5});
@@ -4328,7 +4326,7 @@
   EXPECT_TRUE(layout()->is_animating());
 
   // Finish the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   root_view()->Layout();
   EXPECT_FALSE(layout()->is_animating());
   EXPECT_EQ(gfx::Size(35, 20), view()->size());
@@ -4361,7 +4359,7 @@
   // Grow the view back to full size.
   child(0)->SetVisible(true);
   child(1)->SetVisible(true);
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
 
   // Constrain the layout before continuing, killing the animation.
   other_view()->SetPreferredSize({20, 5});
@@ -4390,7 +4388,7 @@
   child(0)->SetVisible(false);
   child(1)->SetVisible(false);
   EXPECT_TRUE(layout()->is_animating());
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
 
   // Constrain the layout before continuing, but not enough to affect the
   // current frame or target layout.
@@ -4399,7 +4397,7 @@
   EXPECT_TRUE(layout()->is_animating());
 
   // Finish the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   root_view()->Layout();
   EXPECT_FALSE(layout()->is_animating());
   EXPECT_EQ(gfx::Size(20, 20), view()->size());
@@ -4425,14 +4423,14 @@
   child(0)->SetVisible(false);
   child(1)->SetVisible(false);
   EXPECT_TRUE(layout()->is_animating());
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
 
   // Further unconstrain the layout before continuing.
   root_view()->SetSize({preferred.width() + 5, preferred.height()});
   EXPECT_TRUE(layout()->is_animating());
 
   // Finish the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
   root_view()->Layout();
   EXPECT_FALSE(layout()->is_animating());
   EXPECT_EQ(gfx::Size(20, 20), view()->size());
@@ -4458,7 +4456,7 @@
   child(0)->SetVisible(false);
   child(1)->SetVisible(false);
   EXPECT_TRUE(layout()->is_animating());
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
 
   // Constrain the layout before continuing.
   other_view()->SetPreferredSize({20, 5});
@@ -4486,7 +4484,7 @@
   // Shrink the view by hiding child views.
   child(0)->SetVisible(false);
   EXPECT_TRUE(layout()->is_animating());
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(500));
+  animation_api()->IncrementTime(base::Milliseconds(500));
 
   // Constrain the layout before continuing.
   other_view()->SetPreferredSize({20, 5});
@@ -4515,7 +4513,7 @@
   child(0)->SetVisible(false);
   child(1)->SetVisible(false);
   EXPECT_TRUE(layout()->is_animating());
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(750));
+  animation_api()->IncrementTime(base::Milliseconds(750));
 
   // Constrain the layout before continuing.
   other_view()->SetPreferredSize({20, 5});
@@ -4524,7 +4522,7 @@
   EXPECT_TRUE(layout()->is_animating());
 
   // Finish the animation.
-  animation_api()->IncrementTime(base::TimeDelta::FromMilliseconds(250));
+  animation_api()->IncrementTime(base::Milliseconds(250));
   root_view()->Layout();
   EXPECT_FALSE(layout()->is_animating());
   EXPECT_EQ(gfx::Size(20, 20), view()->size());
diff --git a/ui/views/layout/composite_layout_tests.cc b/ui/views/layout/composite_layout_tests.cc
index f4aa1e68..256f80e0 100644
--- a/ui/views/layout/composite_layout_tests.cc
+++ b/ui/views/layout/composite_layout_tests.cc
@@ -37,8 +37,7 @@
 
 namespace {
 
-constexpr base::TimeDelta kDefaultAnimationDuration =
-    base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kDefaultAnimationDuration = base::Seconds(1);
 constexpr int kIconDimension = 20;
 constexpr gfx::Size kIconSize(kIconDimension, kIconDimension);
 constexpr int kLabelWidth = 70;
@@ -407,7 +406,7 @@
   }
 
   void AdvanceAnimations(int ms) {
-    const auto delta = base::TimeDelta::FromMilliseconds(ms);
+    const auto delta = base::Milliseconds(ms);
     if (avatar()->layout()->is_animating())
       avatar_test_api_->IncrementTime(delta);
     if (extensions()->layout()->is_animating())
diff --git a/ui/views/mouse_constants.h b/ui/views/mouse_constants.h
index ce8e6de..fb0b1bf5 100644
--- a/ui/views/mouse_constants.h
+++ b/ui/views/mouse_constants.h
@@ -11,8 +11,7 @@
 
 // The amount of time, in milliseconds, between clicks until they're
 // considered intentionally different.
-constexpr auto kMinimumTimeBetweenButtonClicks =
-    base::TimeDelta::FromMilliseconds(100);
+constexpr auto kMinimumTimeBetweenButtonClicks = base::Milliseconds(100);
 
 }  // namespace views
 
diff --git a/ui/views/mouse_watcher.cc b/ui/views/mouse_watcher.cc
index 567aa36..6b4a1bb 100644
--- a/ui/views/mouse_watcher.cc
+++ b/ui/views/mouse_watcher.cc
@@ -24,7 +24,7 @@
 
 // Amount of time between when the mouse moves outside the Host's zone and when
 // the listener is notified.
-constexpr auto kNotifyListenerTime = base::TimeDelta::FromMilliseconds(300);
+constexpr auto kNotifyListenerTime = base::Milliseconds(300);
 
 class MouseWatcher::Observer : public ui::EventObserver {
  public:
diff --git a/ui/views/repeat_controller.h b/ui/views/repeat_controller.h
index 0c2c50e..2b44a92 100644
--- a/ui/views/repeat_controller.h
+++ b/ui/views/repeat_controller.h
@@ -53,12 +53,10 @@
 
  private:
   // Initial time required before the first callback occurs.
-  static constexpr base::TimeDelta kInitialWait =
-      base::TimeDelta::FromMilliseconds(250);
+  static constexpr base::TimeDelta kInitialWait = base::Milliseconds(250);
 
   // Period of callbacks after the first callback.
-  static constexpr base::TimeDelta kRepeatingWait =
-      base::TimeDelta::FromMilliseconds(50);
+  static constexpr base::TimeDelta kRepeatingWait = base::Milliseconds(50);
 
   // Called when the timer expires.
   void Run();
diff --git a/ui/views/repeat_controller_unittest.cc b/ui/views/repeat_controller_unittest.cc
index abab352..6f4b19c7 100644
--- a/ui/views/repeat_controller_unittest.cc
+++ b/ui/views/repeat_controller_unittest.cc
@@ -26,8 +26,7 @@
   // Short wait that must be below both
   // RepeatController::GetInitialWaitForTesting() and
   // RepeatController::GetRepeatingWaitForTesting().
-  static constexpr base::TimeDelta kShortWait =
-      base::TimeDelta::FromMilliseconds(10);
+  static constexpr base::TimeDelta kShortWait = base::Milliseconds(10);
   static_assert(
       kShortWait < RepeatController::GetInitialWaitForTesting(),
       "kShortWait must be shorter than the RepeatController initial wait.");
diff --git a/ui/views/selection_controller.cc b/ui/views/selection_controller.cc
index 1679e0e..2803044c 100644
--- a/ui/views/selection_controller.cc
+++ b/ui/views/selection_controller.cc
@@ -123,8 +123,8 @@
     SelectThroughLastDragLocation();
 
     drag_selection_timer_.Start(
-        FROM_HERE, base::TimeDelta::FromMilliseconds(drag_selection_delay),
-        this, &SelectionController::SelectThroughLastDragLocation);
+        FROM_HERE, base::Milliseconds(drag_selection_delay), this,
+        &SelectionController::SelectThroughLastDragLocation);
   }
 
   return true;
diff --git a/ui/views/selection_controller_unittest.cc b/ui/views/selection_controller_unittest.cc
index 7079ca9..f3261c7 100644
--- a/ui/views/selection_controller_unittest.cc
+++ b/ui/views/selection_controller_unittest.cc
@@ -125,8 +125,7 @@
     mouse_location_ = location;
     // Ensure that mouse presses are spaced apart by at least the double-click
     // interval to avoid triggering a double-click.
-    last_event_time_ +=
-        base::TimeDelta::FromMilliseconds(views::GetDoubleClickInterval() + 1);
+    last_event_time_ += base::Milliseconds(views::GetDoubleClickInterval() + 1);
     controller_->OnMousePressed(
         ui::MouseEvent(ui::ET_MOUSE_PRESSED, location, location,
                        last_event_time_, mouse_flags_, button),
diff --git a/ui/views/touchui/touch_selection_controller_impl.cc b/ui/views/touchui/touch_selection_controller_impl.cc
index 75c90d5..24eeaa1 100644
--- a/ui/views/touchui/touch_selection_controller_impl.cc
+++ b/ui/views/touchui/touch_selection_controller_impl.cc
@@ -578,8 +578,7 @@
   // Note that we only log the duration stats for the 'successful' selections,
   // i.e. selections ending with the execution of a command.
   UMA_HISTOGRAM_CUSTOM_TIMES("Event.TouchSelection.Duration", duration,
-                             base::TimeDelta::FromMilliseconds(500),
-                             base::TimeDelta::FromSeconds(60), 60);
+                             base::Milliseconds(500), base::Seconds(60), 60);
   client_view_->ExecuteCommand(command_id, event_flags);
 }
 
@@ -644,8 +643,7 @@
 void TouchSelectionControllerImpl::StartQuickMenuTimer() {
   if (quick_menu_timer_.IsRunning())
     return;
-  quick_menu_timer_.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(200),
-                          this,
+  quick_menu_timer_.Start(FROM_HERE, base::Milliseconds(200), this,
                           &TouchSelectionControllerImpl::QuickMenuTimerFired);
 }
 
diff --git a/ui/views/view_unittest.cc b/ui/views/view_unittest.cc
index 15b9646a..c2ef1c00 100644
--- a/ui/views/view_unittest.cc
+++ b/ui/views/view_unittest.cc
@@ -3856,7 +3856,7 @@
 };
 
 TestLayerAnimator::TestLayerAnimator()
-    : ui::LayerAnimator(base::TimeDelta::FromMilliseconds(0)) {}
+    : ui::LayerAnimator(base::Milliseconds(0)) {}
 
 void TestLayerAnimator::SetBounds(const gfx::Rect& bounds) {
   last_bounds_ = bounds;
diff --git a/ui/views/widget/desktop_aura/desktop_drag_drop_client_win.cc b/ui/views/widget/desktop_aura/desktop_drag_drop_client_win.cc
index 9307934a..d8280fdf 100644
--- a/ui/views/widget/desktop_aura/desktop_drag_drop_client_win.cc
+++ b/ui/views/widget/desktop_aura/desktop_drag_drop_client_win.cc
@@ -93,10 +93,10 @@
     // detect the failure case when a drag drop lasts more than one second, and
     // QueryContinueDrag was not called more than once.
     // See crbug.com/1126230.
-    UMA_HISTOGRAM_BOOLEAN("Windows.TouchDrag.Success",
-                          drag_source_->num_query_continues() > 1 ||
-                              (base::TimeTicks::Now() - start_time <
-                               base::TimeDelta::FromSeconds(1)));
+    UMA_HISTOGRAM_BOOLEAN(
+        "Windows.TouchDrag.Success",
+        drag_source_->num_query_continues() > 1 ||
+            (base::TimeTicks::Now() - start_time < base::Seconds(1)));
     desktop_host_->FinishTouchDrag(touch_screen_point);
     // Move the mouse cursor to where the drag drop started, to avoid issues
     // when the drop is outside of the Chrome window.
diff --git a/ui/views/widget/native_widget_aura_unittest.cc b/ui/views/widget/native_widget_aura_unittest.cc
index de02d82..3d9f4c1 100644
--- a/ui/views/widget/native_widget_aura_unittest.cc
+++ b/ui/views/widget/native_widget_aura_unittest.cc
@@ -217,7 +217,7 @@
   ui::test::EventGenerator generator(widget.GetNativeView()->GetRootWindow());
   generator.GestureScrollSequenceWithCallback(
       center_point, target_point,
-      /*duration=*/base::TimeDelta::FromMilliseconds(100), step_count,
+      /*duration=*/base::Milliseconds(100), step_count,
       base::BindRepeating(scroll_callback, &generator, &step_count));
 
   // Verify that `child_view` receives gesture end events.
diff --git a/ui/views/widget/widget_interactive_uitest.cc b/ui/views/widget/widget_interactive_uitest.cc
index 931df20..656c7c54 100644
--- a/ui/views/widget/widget_interactive_uitest.cc
+++ b/ui/views/widget/widget_interactive_uitest.cc
@@ -280,7 +280,7 @@
     }
   }
 
-  const base::TimeDelta kTimeout = base::TimeDelta::FromSeconds(1);
+  const base::TimeDelta kTimeout = base::Seconds(1);
   base::RepeatingCallback<bool(void)> callback_;
   const bool expected_value_;
   bool success_ = false;
diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc
index 81132959..fc96a04 100644
--- a/ui/views/win/hwnd_message_handler.cc
+++ b/ui/views/win/hwnd_message_handler.cc
@@ -297,8 +297,7 @@
   return ui::GetModifiersFromKeyState() | flags;
 }
 
-constexpr auto kTouchDownContextResetTimeout =
-    base::TimeDelta::FromMilliseconds(500);
+constexpr auto kTouchDownContextResetTimeout = base::Milliseconds(500);
 
 // Windows does not flag synthesized mouse messages from touch or pen in all
 // cases. This causes us grief as we don't want to process touch and mouse
@@ -1547,7 +1546,7 @@
         FROM_HERE,
         base::BindOnce(&HWNDMessageHandler::ForceRedrawWindow,
                        msg_handler_weak_factory_.GetWeakPtr(), attempts),
-        base::TimeDelta::FromMilliseconds(500));
+        base::Milliseconds(500));
     return;
   }
   InvalidateRect(hwnd(), nullptr, FALSE);
diff --git a/ui/views/window/dialog_client_view_unittest.cc b/ui/views/window/dialog_client_view_unittest.cc
index 0624becf..e4008e30 100644
--- a/ui/views/window/dialog_client_view_unittest.cc
+++ b/ui/views/window/dialog_client_view_unittest.cc
@@ -531,8 +531,7 @@
 
   cancel_button.NotifyClick(ui::MouseEvent(
       ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(),
-      ui::EventTimeForNow() +
-          base::TimeDelta::FromMilliseconds(GetDoubleClickInterval()),
+      ui::EventTimeForNow() + base::Milliseconds(GetDoubleClickInterval()),
       ui::EF_NONE, ui::EF_NONE));
   EXPECT_TRUE(widget()->IsClosed());
 }
@@ -545,7 +544,7 @@
 
   const base::TimeTicks kNow = ui::EventTimeForNow();
   const base::TimeDelta kShortClickInterval =
-      base::TimeDelta::FromMilliseconds(GetDoubleClickInterval());
+      base::Milliseconds(GetDoubleClickInterval());
 
   // Should ignore clicks right after the dialog is shown.
   ui::MouseEvent mouse_event(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(),
diff --git a/ui/views/window/frame_caption_button.cc b/ui/views/window/frame_caption_button.cc
index 825104d..3479404 100644
--- a/ui/views/window/frame_caption_button.cc
+++ b/ui/views/window/frame_caption_button.cc
@@ -148,8 +148,7 @@
 
   if (animate == Animate::kYes) {
     swap_images_animation_->Reset(0);
-    swap_images_animation_->SetSlideDuration(
-        base::TimeDelta::FromMilliseconds(200));
+    swap_images_animation_->SetSlideDuration(base::Milliseconds(200));
     swap_images_animation_->Show();
   } else {
     swap_images_animation_->Reset(1);
diff --git a/ui/wm/core/visibility_controller_unittest.cc b/ui/wm/core/visibility_controller_unittest.cc
index 4e6aa8c..2400d7a8 100644
--- a/ui/wm/core/visibility_controller_unittest.cc
+++ b/ui/wm/core/visibility_controller_unittest.cc
@@ -35,7 +35,7 @@
   std::unique_ptr<aura::Window> window(aura::test::CreateTestWindowWithDelegate(
       &d, -2, gfx::Rect(0, 0, 50, 50), root_window()));
   ui::ScopedLayerAnimationSettings settings(window->layer()->GetAnimator());
-  settings.SetTransitionDuration(base::TimeDelta::FromMilliseconds(5));
+  settings.SetTransitionDuration(base::Milliseconds(5));
 
   EXPECT_TRUE(window->layer()->visible());
   EXPECT_TRUE(window->IsVisible());
@@ -70,8 +70,7 @@
       &d, -2, expected_bounds, root_window()));
   window->Show();
   SetWindowVisibilityChangesAnimated(window.get());
-  SetWindowVisibilityAnimationDuration(window.get(),
-                                       base::TimeDelta::FromMilliseconds(5));
+  SetWindowVisibilityAnimationDuration(window.get(), base::Milliseconds(5));
   SetWindowVisibilityAnimationType(window.get(),
                                    WINDOW_VISIBILITY_ANIMATION_TYPE_DROP);
   // Check that the bound is correct after the hide animation has finished.
@@ -99,8 +98,7 @@
   ASSERT_FALSE(window->IsVisible());
 
   SetWindowVisibilityChangesAnimated(window.get());
-  SetWindowVisibilityAnimationDuration(window.get(),
-                                       base::TimeDelta::FromMilliseconds(5));
+  SetWindowVisibilityAnimationDuration(window.get(), base::Milliseconds(5));
   SetWindowVisibilityAnimationType(window.get(),
                                    WINDOW_VISIBILITY_ANIMATION_TYPE_FADE);
   window->Show();
diff --git a/ui/wm/core/window_animations.cc b/ui/wm/core/window_animations.cc
index c749a83..7e711a6 100644
--- a/ui/wm/core/window_animations.cc
+++ b/ui/wm/core/window_animations.cc
@@ -211,8 +211,7 @@
       window.GetProperty(kWindowVisibilityAnimationDurationKey);
   if (duration.is_zero() &&
       window.GetType() == aura::client::WINDOW_TYPE_MENU) {
-    return base::TimeDelta::FromMilliseconds(
-        kDefaultAnimationDurationForMenuMS);
+    return base::Milliseconds(kDefaultAnimationDurationForMenuMS);
   }
   return duration;
 }
@@ -389,9 +388,9 @@
   std::unique_ptr<ui::LayerAnimationElement> transition =
       ui::LayerAnimationElement::CreateInterpolatedTransformElement(
           std::move(scale_about_pivot),
-          base::TimeDelta::FromMilliseconds(
-              kWindowAnimation_Bounce_DurationMS *
-              kWindowAnimation_Bounce_GrowShrinkDurationPercent / 100));
+          base::Milliseconds(kWindowAnimation_Bounce_DurationMS *
+                             kWindowAnimation_Bounce_GrowShrinkDurationPercent /
+                             100));
   transition->set_tween_type(grow ? gfx::Tween::EASE_OUT : gfx::Tween::EASE_IN);
   return transition;
 }
@@ -406,10 +405,10 @@
   sequence->AddElement(CreateGrowShrinkElement(window, true));
   sequence->AddElement(ui::LayerAnimationElement::CreatePauseElement(
       ui::LayerAnimationElement::BOUNDS,
-      base::TimeDelta::FromMilliseconds(
-        kWindowAnimation_Bounce_DurationMS *
-            (100 - 2 * kWindowAnimation_Bounce_GrowShrinkDurationPercent) /
-            100)));
+      base::Milliseconds(
+          kWindowAnimation_Bounce_DurationMS *
+          (100 - 2 * kWindowAnimation_Bounce_GrowShrinkDurationPercent) /
+          100)));
   sequence->AddElement(CreateGrowShrinkElement(window, false));
   window->layer()->GetAnimator()->StartAnimation(sequence.release());
 }
@@ -451,8 +450,8 @@
   if (show)
     window->layer()->SetOpacity(kWindowAnimation_HideOpacity);
 
-  base::TimeDelta duration = base::TimeDelta::FromMilliseconds(
-      kWindowAnimation_Rotate_DurationMS);
+  base::TimeDelta duration =
+      base::Milliseconds(kWindowAnimation_Rotate_DurationMS);
 
   if (!show) {
     window->layer()->GetAnimator()->SchedulePauseForProperties(
diff --git a/ui/wm/core/window_animations_unittest.cc b/ui/wm/core/window_animations_unittest.cc
index 61e497d..94776974 100644
--- a/ui/wm/core/window_animations_unittest.cc
+++ b/ui/wm/core/window_animations_unittest.cc
@@ -344,7 +344,7 @@
                                        WINDOW_VISIBILITY_ANIMATION_TYPE_ROTATE);
   AnimateOnChildWindowVisibilityChanged(window.get(), true);
   window->layer()->GetAnimator()->Step(base::TimeTicks::Now() +
-                                       base::TimeDelta::FromSeconds(5));
+                                       base::Seconds(5));
   AnimateOnChildWindowVisibilityChanged(window.get(), false);
   animating_layer->GetAnimator()->StopAnimating();
 }
diff --git a/weblayer/browser/ads_page_load_metrics_observer_browsertest.cc b/weblayer/browser/ads_page_load_metrics_observer_browsertest.cc
index 0b7c267..97e30714 100644
--- a/weblayer/browser/ads_page_load_metrics_observer_browsertest.cc
+++ b/weblayer/browser/ads_page_load_metrics_observer_browsertest.cc
@@ -445,8 +445,7 @@
       on_blocklist_cleared_run_loop.QuitClosure());
   base::Time now = base::Time::Now();
   GetProfile()->ClearBrowsingData(
-      {BrowsingDataType::COOKIES_AND_SITE_DATA},
-      now - base::TimeDelta::FromDays(1), now,
+      {BrowsingDataType::COOKIES_AND_SITE_DATA}, now - base::Days(1), now,
       on_browsing_data_cleared_run_loop.QuitClosure());
   on_blocklist_cleared_run_loop.Run();
 
diff --git a/weblayer/browser/android/metrics/metrics_browsertest.cc b/weblayer/browser/android/metrics/metrics_browsertest.cc
index 5a523d9..e1e8fbb 100644
--- a/weblayer/browser/android/metrics/metrics_browsertest.cc
+++ b/weblayer/browser/android/metrics/metrics_browsertest.cc
@@ -53,7 +53,7 @@
                                              base::Unretained(this)));
     WebLayerMetricsServiceClient::GetInstance()->SetFastStartupForTesting(true);
     WebLayerMetricsServiceClient::GetInstance()->SetUploadIntervalForTesting(
-        base::TimeDelta::FromMilliseconds(10));
+        base::Milliseconds(10));
     WebLayerBrowserTest::SetUp();
   }
 
diff --git a/weblayer/browser/background_fetch/background_fetch_delegate_impl.cc b/weblayer/browser/background_fetch/background_fetch_delegate_impl.cc
index 38e53036c..7a9ccf1 100644
--- a/weblayer/browser/background_fetch/background_fetch_delegate_impl.cc
+++ b/weblayer/browser/background_fetch/background_fetch_delegate_impl.cc
@@ -42,7 +42,7 @@
     // requested in a short span of time, so make sure the completed state is
     // reflected in the UI after a brief delay. See
     // https://developer.android.com/training/notify-user/build-notification#Updating
-    static constexpr auto kDelay = base::TimeDelta::FromMilliseconds(1500);
+    static constexpr auto kDelay = base::Milliseconds(1500);
     base::SequencedTaskRunnerHandle::Get()->PostDelayedTask(
         FROM_HERE,
         base::BindOnce(&BackgroundFetchDelegateImpl::DoUpdateUi,
diff --git a/weblayer/browser/background_sync/background_sync_browsertest.cc b/weblayer/browser/background_sync/background_sync_browsertest.cc
index a2ea49b..6407ae80 100644
--- a/weblayer/browser/background_sync/background_sync_browsertest.cc
+++ b/weblayer/browser/background_sync/background_sync_browsertest.cc
@@ -136,7 +136,7 @@
   // min interval >=0 implies Periodic Background Sync.
   blink::mojom::SyncRegistrationOptions options(
       kTag,
-      /* min_interval= */ base::TimeDelta::FromHours(12).InMilliseconds());
+      /* min_interval= */ base::Hours(12).InMilliseconds());
   *registration.options() = std::move(options);
   // First attempt.
   registration.set_num_attempts(0);
diff --git a/weblayer/browser/browser_controls_navigation_state_handler.cc b/weblayer/browser/browser_controls_navigation_state_handler.cc
index 7ccd0adb..474a77a 100644
--- a/weblayer/browser/browser_controls_navigation_state_handler.cc
+++ b/weblayer/browser/browser_controls_navigation_state_handler.cc
@@ -30,7 +30,7 @@
 base::TimeDelta GetBrowserControlsAllowHideDelay() {
   if (base::FeatureList::IsEnabled(kImmediatelyHideBrowserControlsForTest))
     return base::TimeDelta();
-  return base::TimeDelta::FromSeconds(3);
+  return base::Seconds(3);
 }
 
 }  // namespace
diff --git a/weblayer/browser/client_hints_browsertest.cc b/weblayer/browser/client_hints_browsertest.cc
index 9038a10..f7e6c01b 100644
--- a/weblayer/browser/client_hints_browsertest.cc
+++ b/weblayer/browser/client_hints_browsertest.cc
@@ -23,8 +23,7 @@
     WebLayerBrowserTest::SetUpOnMainThread();
     BrowserProcess::GetInstance()
         ->GetNetworkQualityTracker()
-        ->ReportRTTsAndThroughputForTesting(
-            base::TimeDelta::FromMilliseconds(500), 100);
+        ->ReportRTTsAndThroughputForTesting(base::Milliseconds(500), 100);
 
     EXPECT_TRUE(embedded_test_server()->Start());
   }
diff --git a/weblayer/browser/content_browser_client_impl.cc b/weblayer/browser/content_browser_client_impl.cc
index e4510517..7d49191 100644
--- a/weblayer/browser/content_browser_client_impl.cc
+++ b/weblayer/browser/content_browser_client_impl.cc
@@ -493,8 +493,7 @@
         net::DefineNetworkTrafficAnnotation("undefined", "Nothing here yet."));
   }
   if (command_line->HasSwitch(embedder_support::kShortReportingDelay)) {
-    context_params->reporting_delivery_interval =
-        base::TimeDelta::FromMilliseconds(100);
+    context_params->reporting_delivery_interval = base::Milliseconds(100);
   }
 }
 
diff --git a/weblayer/browser/cookie_manager_impl.cc b/weblayer/browser/cookie_manager_impl.cc
index 0c594c8..a3217c3f 100644
--- a/weblayer/browser/cookie_manager_impl.cc
+++ b/weblayer/browser/cookie_manager_impl.cc
@@ -17,7 +17,7 @@
 
 namespace weblayer {
 namespace {
-constexpr base::TimeDelta kCookieFlushDelay = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kCookieFlushDelay = base::Seconds(1);
 
 void GetCookieComplete(CookieManager::GetCookieCallback callback,
                        const net::CookieAccessResultList& cookies,
diff --git a/weblayer/browser/favicon/favicon_backend_wrapper.cc b/weblayer/browser/favicon/favicon_backend_wrapper.cc
index 96ca488..d68108dc9 100644
--- a/weblayer/browser/favicon/favicon_backend_wrapper.cc
+++ b/weblayer/browser/favicon/favicon_backend_wrapper.cc
@@ -19,7 +19,7 @@
 // entries that can be removed, so the timer is restarted with a shorter time
 // out (|kTimeDeltaForRunningExpireWithRemainingWork|).
 constexpr base::TimeDelta kTimeDeltaForRunningExpireNoRemainingWork =
-    base::TimeDelta::FromHours(1);
+    base::Hours(1);
 constexpr int kMaxNumberOfEntriesToRemoveAtATime = 100;
 
 FaviconBackendWrapper::FaviconBackendWrapper(
@@ -167,7 +167,7 @@
 void FaviconBackendWrapper::ScheduleCommit() {
   if (!commit_timer_.IsRunning()) {
     // 10 seconds matches that of HistoryBackend.
-    commit_timer_.Start(FROM_HERE, base::TimeDelta::FromSeconds(10), this,
+    commit_timer_.Start(FROM_HERE, base::Seconds(10), this,
                         &FaviconBackendWrapper::Commit);
   }
 }
diff --git a/weblayer/browser/favicon/favicon_backend_wrapper.h b/weblayer/browser/favicon/favicon_backend_wrapper.h
index 39d3b94..95ef111 100644
--- a/weblayer/browser/favicon/favicon_backend_wrapper.h
+++ b/weblayer/browser/favicon/favicon_backend_wrapper.h
@@ -114,12 +114,11 @@
 
 // Amount of time before favicons are removed. That is, any favicons downloaded
 // before this amount of time are removed.
-constexpr base::TimeDelta kTimeDeltaWhenEntriesAreRemoved =
-    base::TimeDelta::FromDays(30);
+constexpr base::TimeDelta kTimeDeltaWhenEntriesAreRemoved = base::Days(30);
 
 // See comment near kMaxNumberOfEntriesToRemoveAtATime for details on this.
 constexpr base::TimeDelta kTimeDeltaForRunningExpireWithRemainingWork =
-    base::TimeDelta::FromMinutes(2);
+    base::Minutes(2);
 
 }  // namespace weblayer
 
diff --git a/weblayer/browser/favicon/favicon_backend_wrapper_unittest.cc b/weblayer/browser/favicon/favicon_backend_wrapper_unittest.cc
index 517b684..60ed436 100644
--- a/weblayer/browser/favicon/favicon_backend_wrapper_unittest.cc
+++ b/weblayer/browser/favicon/favicon_backend_wrapper_unittest.cc
@@ -114,7 +114,7 @@
   // Fast forward such the first entry is expired and should be removed, but
   // not the second.
   task_environment_.FastForwardBy(kTimeDeltaWhenEntriesAreRemoved +
-                                  base::TimeDelta::FromDays(1));
+                                  base::Days(1));
   EXPECT_FALSE(db->GetFaviconHeader(favicon_id1, nullptr, nullptr));
   EXPECT_FALSE(db->HasMappingFor(favicon_id1));
   EXPECT_TRUE(db->GetFaviconHeader(favicon_id2, nullptr, nullptr));
@@ -122,7 +122,7 @@
 
   // Fast forward enough such that second is removed.
   task_environment_.FastForwardBy(kTimeDeltaWhenEntriesAreRemoved +
-                                  base::TimeDelta::FromDays(1));
+                                  base::Days(1));
   EXPECT_FALSE(db->GetFaviconHeader(favicon_id2, nullptr, nullptr));
   EXPECT_FALSE(db->HasMappingFor(favicon_id2));
 }
diff --git a/weblayer/browser/profile_browsertest.cc b/weblayer/browser/profile_browsertest.cc
index e4fe35d..6c069ad 100644
--- a/weblayer/browser/profile_browsertest.cc
+++ b/weblayer/browser/profile_browsertest.cc
@@ -93,7 +93,7 @@
   base::Time now = base::Time::Now();
   ProfileImpl* profile = static_cast<TabImpl*>(shell()->tab())->profile();
   profile->ClearBrowsingData({BrowsingDataType::COOKIES_AND_SITE_DATA},
-                             now - base::TimeDelta::FromMinutes(5), now,
+                             now - base::Minutes(5), now,
                              run_loop.QuitClosure());
   run_loop.Run();
 
diff --git a/weblayer/browser/safe_browsing/safe_browsing_token_fetcher_impl_unittest.cc b/weblayer/browser/safe_browsing/safe_browsing_token_fetcher_impl_unittest.cc
index 6afeefac..53ebc61 100644
--- a/weblayer/browser/safe_browsing/safe_browsing_token_fetcher_impl_unittest.cc
+++ b/weblayer/browser/safe_browsing/safe_browsing_token_fetcher_impl_unittest.cc
@@ -203,7 +203,7 @@
   EXPECT_EQ("dummy", access_token);
 
   // Fast-forward to trigger the token fetch timeout.
-  task_environment()->FastForwardBy(base::TimeDelta::FromMilliseconds(
+  task_environment()->FastForwardBy(base::Milliseconds(
       safe_browsing::kTokenFetchTimeoutDelayFromMilliseconds));
 
   // Even though the delegate has not yet responded,
@@ -280,7 +280,7 @@
   EXPECT_EQ("dummy", access_token2);
 
   task_environment()->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(delay_before_second_request_from_ms));
+      base::Milliseconds(delay_before_second_request_from_ms));
   fetcher.Start(base::BindOnce(&OnAccessTokenFetched, run_loop2.QuitClosure(),
                                &access_token2));
   EXPECT_EQ(2, delegate.get_num_outstanding_requests());
@@ -295,7 +295,7 @@
       safe_browsing::kTokenFetchTimeoutDelayFromMilliseconds -
       delay_before_second_request_from_ms;
   task_environment()->FastForwardBy(
-      base::TimeDelta::FromMilliseconds(time_to_trigger_first_timeout_from_ms));
+      base::Milliseconds(time_to_trigger_first_timeout_from_ms));
 
   // Verify that the first request's timeout was handled by
   // SafeBrowsingTokenFetcherImpl.
diff --git a/weblayer/browser/site_isolation_browsertest.cc b/weblayer/browser/site_isolation_browsertest.cc
index 22ba8b58..4247687 100644
--- a/weblayer/browser/site_isolation_browsertest.cc
+++ b/weblayer/browser/site_isolation_browsertest.cc
@@ -264,7 +264,7 @@
   base::RunLoop run_loop;
   base::Time now = base::Time::Now();
   GetProfile()->ClearBrowsingData({BrowsingDataType::COOKIES_AND_SITE_DATA},
-                                  now - base::TimeDelta::FromDays(1), now,
+                                  now - base::Days(1), now,
                                   run_loop.QuitClosure());
   run_loop.Run();
 
diff --git a/weblayer/browser/ssl_browsertest.cc b/weblayer/browser/ssl_browsertest.cc
index c6fdafd..49a1f8d 100644
--- a/weblayer/browser/ssl_browsertest.cc
+++ b/weblayer/browser/ssl_browsertest.cc
@@ -372,9 +372,9 @@
 
   // Set network time back ten minutes.
   BrowserProcess::GetInstance()->GetNetworkTimeTracker()->UpdateNetworkTime(
-      base::Time::Now() - base::TimeDelta::FromMinutes(10),
-      base::TimeDelta::FromMilliseconds(1),   /* resolution */
-      base::TimeDelta::FromMilliseconds(500), /* latency */
+      base::Time::Now() - base::Minutes(10),
+      base::Milliseconds(1),   /* resolution */
+      base::Milliseconds(500), /* latency */
       base::TimeTicks::Now() /* posting time of this update */);
 
   // Now navigating to a page with an expired cert should cause the bad clock
diff --git a/weblayer/browser/subresource_filter_browsertest.cc b/weblayer/browser/subresource_filter_browsertest.cc
index 7bcba9b4..e948377 100644
--- a/weblayer/browser/subresource_filter_browsertest.cc
+++ b/weblayer/browser/subresource_filter_browsertest.cc
@@ -550,14 +550,14 @@
   // Advance the clock by less than kAdsInterventionDuration and trigger another
   // intervention. This intervention is a no-op.
   test_clock->Advance(subresource_filter::kAdsInterventionDuration.Get() -
-                      base::TimeDelta::FromMinutes(30));
+                      base::Minutes(30));
   GetPrimaryPageThrottleManager()->OnAdsViolationTriggered(
       web_contents->GetMainFrame(),
       subresource_filter::mojom::AdsViolation::kMobileAdDensityByHeightAbove30);
 
   // Advance the clock to to kAdsInterventionDuration from the first
   // intervention, this clear the intervention.
-  test_clock->Advance(base::TimeDelta::FromMinutes(30));
+  test_clock->Advance(base::Minutes(30));
   NavigateAndWaitForCompletion(url, shell());
 
   EXPECT_TRUE(WasParsedScriptElementLoaded(web_contents->GetMainFrame()));
@@ -630,7 +630,7 @@
       web_contents->GetMainFrame(),
       subresource_filter::mojom::AdsViolation::kMobileAdDensityByHeightAbove30);
 
-  const base::TimeDelta kRenavigationDelay = base::TimeDelta::FromHours(2);
+  const base::TimeDelta kRenavigationDelay = base::Hours(2);
   test_clock->Advance(kRenavigationDelay);
   NavigateAndWaitForCompletion(url, shell());
 
diff --git a/weblayer/renderer/weblayer_render_frame_observer.cc b/weblayer/renderer/weblayer_render_frame_observer.cc
index 7cdcd93..dbca103d 100644
--- a/weblayer/renderer/weblayer_render_frame_observer.cc
+++ b/weblayer/renderer/weblayer_render_frame_observer.cc
@@ -33,8 +33,7 @@
 
 // For a page that auto-refreshes, we still show the bubble, if
 // the refresh delay is less than this value (in seconds).
-static constexpr base::TimeDelta kLocationChangeInterval =
-    base::TimeDelta::FromSeconds(10);
+static constexpr base::TimeDelta kLocationChangeInterval = base::Seconds(10);
 }  // namespace
 
 WebLayerRenderFrameObserver::WebLayerRenderFrameObserver(